(计算机系统结构专业论文)多线程处理器存储结构研究.pdf_第1页
(计算机系统结构专业论文)多线程处理器存储结构研究.pdf_第2页
(计算机系统结构专业论文)多线程处理器存储结构研究.pdf_第3页
(计算机系统结构专业论文)多线程处理器存储结构研究.pdf_第4页
(计算机系统结构专业论文)多线程处理器存储结构研究.pdf_第5页
已阅读5页,还剩60页未读 继续免费阅读

(计算机系统结构专业论文)多线程处理器存储结构研究.pdf.pdf 免费下载

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

文档简介

两北t 业夫掌倾 论义摘要 摘要 本论文的研究内容是受到国防十五预研课题“研究高性能微处理器系统 结构”的一部分。 本课题先研究并设计了3 2 位嵌入式微处理器a r m p 的执行部件。接着, 本文以a r m p 为基础深入了解国内外目前最先进的多线程处理器系统结构研 究工作,明确了该领域研究的发展方向和研究难点。在这种背景下,本文研 究了高性能微处理器中转移预测技术和多线程系统结构中选择性双路径执行 中取指部将的研究。 本论文的研究工作包括: 1 、多线程处理器系统结构的进行分析;介绍多线程处理器的定义及 其优势所在,同时介绍了同时多线程结构和前瞻多线程结构。最 后,了解多线程处理器的设计空间。 2 、对a r m p 中数据通路的设计与实现;包括a l u 的设计、寄存器 文件( r e g i s t e rf i l e ) 的设计、移位器( s h i f t e r ) 的设计、乘法器的设计等 等。 3 、 对转移预测的分析;根据转移的静态和动态特性,对简单的静态、 复杂的动态和混合转移预测在误预测率和硬件开销等方面上进行 了分析比较。 4 、 分析了高性能转移预测设计中的问题;对未来设计高性能转移预 测器所面临的问题以及解决这些问题的可能的办法,包括制造工 艺、流水线的深度和处理器的微体系结构等 5 、对选择双路径系统结构的分析:介绍选择性双路径执行中的硬件 机制一转移置信度评估和选择转移策略。 6 、设计分析适合选择双路径结构的取指部件:通过研究多路径执行 中的p c 仲裁机制,设计适合双路径执行结构的取指部件。 本论文紧密结合国防十五预研课题,在国内实现了多线程处理器中选择 性双路径执行的研究,这对我国具有自主知识产权的高性能微处理器具有十 分重要的意义。该文的研究成果对迸一步研究更高级处理器提供了方法和思 路。 关键字:多线程,转移预测,选择性双路径执行,取指部件,数据通路 两北t 业大学碗i 论史 摘要 a b s t r a c t t h ew o r ki nt h i sd i s s e r t a t i o ni sp a r to fn a t i o n a l0 5 p r o j e c te n t i t l e d “h i g l l p e r f o r n l a n c em i c r o p r o c e s s o ra r c h i t e c t u r e ” f i r s to fa l l ,t h ew o r kr e s e a r c h e sa n dd e s i g n sa3 2 b i te m b e d d e d m i c r o p r o c e s s o ra r m p se x e c u t i o np a r t t h e n ,t h ew o r kr e s e a r c h e sm u l t i t h r e a d p r o c e s s o ra r c h i t e c t u r eb a s e do nt h ea r m p t h i sd i s s e r t a t i o nf o c u s e do nt h eb r a n c h p r e d i c t o ro fh i 吐p e r f o r m a n c ep r o c e s s o ra n df e t c hu n i to fs e l e c t i v ee x e c u t i o no f m u l t i t h r e a da r c h i t e c t u r e t h ew o r ko f t h i sp a p e ri sa sf o u o w s 1 a n a l y z e rm u l t i t h r e a d e dp r o c e s s o ra r c h i t e c t u r e i n t r o d u c i n gt h ed e f i n i t i o no f m u l t i t h r e a d e dp r o c e s s o ra n dt h ea d v a n t a g eo fm u l t i t h r e a dp r o c e s s o ra r c h i t e c t u r e a l s oi n c l u d i n gs i m u l t a n e o u sm u l t i t h r e a d e da r c h i t e c t u r ea n dp r e 1 0 0 km u l t i t h r e a d e d a r c h i t e c t u r e 2 d e s i g na n dr e a l i z a t i o nt h ed a t a - p a t ho fa r m pp r o c e s s o r i n c l u d i n g a r i t h m e t i cl o g i c a lu h i t ( a l u ) ,r e g i s t e rf i l e s ,s h i f t e r , m u l t i p l i e ra n ds oo n 3 , a n a l y z e rh i 血p e r f o r m a n c eb r a n c hp r e d i c t o r b a s e do nt h es t a t i ca n d d y n a m i cc h a r a c t e r i s t i co fb r a n c hi n s t r u c t i o n ,c o m p a r i n gt h em i s p r e d i c t i o nr a t e a n dh a r d w a r es p e n d i n go fs i m p l es t a t i cp r e d i c t i o n ,c o m p l e xd y n a m i cp r e d i c t i o n a n d h y b r i dp r e d i c t i o n 4 ,r e s e a r c h t h ei s s u eo fd e s i g n h i g hp e r f o r m a n c eb r a n c hp r e d i c t i o n i n t r o d u c i n gs a m ei d e a so nf u t u r ed e s i g nh i g hp e r f o r m a n c eb r a n c hp r e d i c t i o n , i n c l u d i n gm a n u f a c t u r et e c h n o l o g y , d e p t ho f p i p e l i n e ,m i c r o a r c h i t e c t u r ea n ds oo n 5 ,r e s e a r c hs e l e c t i v ed u a lp a t he x e c u t i o na r c h i t e c t u r e i n t r o d u c i n gh a r d w a r e m e c h a n i s mo fm u l t i - p a t he x e c u t i o n ,i n c l u d i n gb r a n c hf o r k i n gs t r a t e g ya n db r a n c h p r e d i c t i o nc o n f i d e n c e 6 d e s i g ns e l e c t i v ed u a lp a t he x e c u t i o nf e t c hi n s t r u c t i o nu n i t b a s e do nt h e ( p r o g r a mc o u n t e r ) p ca r b i t r a g es t r a t e g yo fm u l t i p a t he x e c u t i o n ,d e s i g n i n gf e t c h i n s t r u c t i o nu n i ts u i tf u rs e l e c t i v ed u a lp a t he x e c u t i o n t h ed i s s e r t a t i o nw o r kp l a y sag r e a ts i g n i f i c a n c ef o rs t u d y i n gt h eh i g h p e r f o r m a n c em i c r o p r o c e s s o r s t h er e s e a r c hw o r ko f f e r sd e s i g nc o n s i d e r a t i o n sa n d t e c h n o l o g i c a lr e s e r v e sf o rf u r t h e ra d v a n c e dm i c r o p r o c e s s o rd e s i g n s k e yw o r d :m u l t i t h r e a da r c h i t e c t u r e ,b r a n c hp r e d i c t i o n ,s e l e c t i v e d u a l p a t h e x e c u t i o n ,f e t c hi n s t r u c t i o nu n i t ( f i u ) ,d a t a - p a t h ,b r a n c hp r e d i c t i o nc o n f i d e n c e 两北工业大学硕 一论文锖一常绪论 第一章绪论 1 1 课题的背景及来源 耱藩半导体技术的发展,单芯片上能够集成的晶体管数目不断增长。到 2 0 0 9 年,单片上将可以放置1 0 亿个晶体管。这就为系统结构研究者们提供很 大的挑战:设计出最优的系统结构束充分利用这些晶体管满足未来应用的需 求。 另一方面,由l b m 在1 9 9 9 年提出普适计算( p e r v a s i v ec o m p u t i n g ) 概念 强调无所不在的、随时随地可以进行计算的能力,主要是针对移动设备,比 衡信息家电或某种嵌入式设备,如掌上电脑、b p 机、车载智能设各、笔记本 计算机、手表、智能卡、机顶盒等新一代智能设备提出的。普适计算具有高 实时性、低功耗、高带宽的特征,为处理器系统结构的设计提出新的要求, 而对于高性能计算来说,随着时钟频率的增加,功耗相应上升到目前封 装技术能承受的阈值。所以高性能处理器设计同样需要考虑性能,功耗比。 为了满足这些需求,不能完全依赖于传统的处理器设计技术。传统的处 理器设计技术关注更高的处理器主频和指令级并行。这些技术能够提高性能, 但是效率有限。现代超标量处理器能够在一个时钟周期内发射4 条指令甚至 多于4 条指令,目的是充分利用指令级并行性( 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 ) 。但是由于现有程序中指令级并行性有限,所以通常每拍完成的指令 数目( i p c - - i n s t r u c t i o nc o m m i t t e d p e r c y c l e ) 不超过2 。 “8 6 p e n a u m f t m p e n t i u f 州t m ) 3p e r t t w m ( t m ) 4 p r r o rp m c e s s o f帅o o r 图1 - 1i n t e l 处理器性能和造价比较 而很多提高处理器性能的技术都使得芯片面积和功耗显著增加。图1 - 1 夕二 吲 彳一 曼 塑1,j,j, 嚣 俘 5 o 西北t 业人学坝i 跄史第一章绪论 给出了过去l o 年间,i n t e l 处理器的性能和造价增加的相对关系。为了消除微 系统结构的影响,该比较假定四代处理器都是在相同的硅工艺上实现,加速 比被规格化到i n t e l 4 8 6 t m 上。尽管使用i n t e l 处理器的历史发展作为例子,但 是相同时期,其它高性能处理器的发展有相同的趋势。 仅仅考虑微系统结构发展的影响,i n t e l 处理器对整数性能的处理都提高 了5 到6 倍。主要原因是大多数整数应用程序只有有限的指令级并行性。但 是同一时期,相对面积提高了1 5 倍,是性能增加的3 倍。而相对功耗在同一 时期几乎增加了1 8 倍。 论文课题是西北工业大学航空微电子中心所承担的十五预研项目之 一一一国防十五预研课题的资助下,研究高陛能微处理器系统结构,在国内 率先研究并设计了3 2 位嵌入式微处理器a r m p 。 1 2 国内外研究现状 国外一些著名大学在线程级并行的研究上已有相当深入的工作,m i t 等 院校已经有了数年乃至十余年的积累。m i t 早些年对数据流计算机的研究对 现在的多线程计算机有很大的影响。目前,在多线程研究领域有影响的研究 单位主要包括美国的w a s h i n g t o n 大学、m i t 、s t a n f o r d 大学、p u r d u e 大学等。 m i t 在数据流处理器m i t t a g g e d t o k e n 基础上,研究了多线程并行系统 结构+ t ,之后又研制了采用m i t m u l t i a l up r o c e s s o r 系统结构的m m a c h i n e 。 m m a c h i n e 中有效的集群间交互使得指令调度可以跨越集群中的算术单元。 z e r o c y c l e 多线程能够很好地容忍长时延操作,而不影响单线程性能。 s t a n d f o r d 大学研究的h y d r a 处理器是一种片上多处理器( c m p - - c h i p m u l t i p r o c e s s o r ) 结构。h y d r a 综合了共享c a c h e 多处理器系统结构、革新性的 同步机制、高级集成电路技术和并行编译技术。h y d r a 将4 个高性能处理器集 成在单个芯片d i e 上。即使在执行顺序应用程序时,h y d r a 也能比宽发射超标 量微处理器取得更好的性价比。h y d r a 使用单片共享的c a c h e 来提高通信带宽。 美国w a s h i n g t o n 大学f 在展开同时多线程s m t 项目的研究,其核心思 想是扩充现有的乱序执行超标量处理器,让多个独立的线程在单拍内送到超 标量地执行单元中,通过资源竞争、动态共享的方式使所有的硬件现场资源 同时活跃,将线程级并行与指令级并行结合起来,最终目的是提高处理机的 利用率。 p u r d u e 大学提出了p u m p ( p u r d u eu n i v e r s i t ym u l t i t h r e a d e dp r o c e s s o r ) 和 两北t 业人学碗卜葩义 第一章绪论 m t - h p a m ( m u l t i t h r e a d e dh i e r a r c h i c a lp r o c e s s o r - a n d - m e m o r y l 。前者在整个系 统内作折中,考虑硬件、操作系统、和应用软件能带来最好的性价比,但是 不一定适合市场,所以只是为学术研究提供最大灵活性。m t - h p a m 的目的 是只改变硬件和操作系统,而保持应用软件不需要修改。p u m p 支持每拍线 程切换,支持1 0 2 4 个片上线程现场。 其他的关于线程级并行的研究还有很多。例如法国的i r i s a 研究中心展 开了同时多线程的研究;日本的t a k a n o b u 大学在进行二进制代码转换的研究; 日本的k y u s h u 大学和t s u k u b a 大学研究f u c e 处理器,目标是使得处理器内 部执行和处理器间的通信相结合。 国内对线程级并行的研究中,最著名的是国防科技大学并行与分布处理 国家重点实验室。该实验室在周兴铭教授的带领下,进行了一系列关于多线 程技术的研究。肖刚等提出的前瞻性多线程结构综合了前瞻性执行和多线程 的优点,通过线程的前瞻性执行形成大的指令窗口,提高了资源的利用率, 并且能有效隐藏存储延迟。我们航空微电子中心也在积极丌展这一领域的研 究工作,主要面向适合多线程处理器的微系统结构的设计。 1 3 论文研究内容 我国的处理器设计刚刚起步,大多数采用的方式都是仿制主流处理器的 系统结构,设计水平和对系统结构的研究与国际先进水平存在差距。西北工 业大学航空微电子中心是我国最早开展微处理器设计的单位之一,对处理器 系统结构进行了大量的研究,目前已经设计成功了多款8 位、1 6 位和3 2 位的 c i s c 、r i s c 和d s p 处理器,具备了对微处理器系统结构进一步研究的能力, 在此基础上我们开展了高性能微处理器系统结构和设计方法的研究。 线程级并行支持在单片上执行多个线程,有望在未来十年中占支配地位。 所以,线程级并行将会是下代高性能处理器的核心技术。f 是在这样的背 景下,本文提出了多线程处理器存储结构研究,研究并设计了3 2 位嵌入式微 处理器a r m p 的执行部件,对多线程处理器中选择性双路径执行的取指机制 和存储相关等问题进行了深入的研究和具体设计,为今后高性能微处理器的 设计提供了相关的研究基础,提出了值得钻研的研究方向。 1 4 论文结构 本文所研究的选择性双路径执行的内容,是继续本教研室朱霞博士完成 两北下业人学倾 一论义 第一章绪论 的“线程级并行的硬件技术研究”,主要研究选择性双路径执行中的取指机制。 以下说明本文所阐明的主要研究内容: 第一章为绪论,综合介绍课题的选题背景及意义。 第二章述计算机系统结构的发展,重点讨论了多线程处理器系统结构。 在这章中首先介绍了多线程处理器的定义,就其相对单片多处理器的优势进 行了分析。对同时多线程和前瞻性多线程处理器的结构进行了分析。最后分 析了目前多线程处理器的设计空| - 白j 。 第三章讨论了a r m p 处理器执行部件的设计,通过陔处理器执行部件的 设计为研究选择性双路径执行提供基础。 第四章讨论高性能转移预测的j 殳计,通过分析转移指令的静态和动态特 性,介绍简单的转移预测器,复杂的动态转移预测器,到混合转移预测器, 并对设计转移预测中从在的问题提出了一些解决办法。 第五章讨论了选择性双路径执行的结构,通过分析双路径执行的特点以 及罱信度评估方案的特点,在研究多路径执行结构中的指令取指机制的基础 上,提出了选择双路径执行中的取指机制。 第六章结束语,总结本文所作的研究工作和论文价值 4 西北t 业人学硕卜论文 第二章多线程处理群体系结构 第二章多线程处理器体系结构 为了进一步提高处理器资源的利用率,同时利用指令级并行和线程级并 行。需要采用采用多线程处理器,就是在处理器中设计多个硬件现场,多个 现场共享所有的功能部件。 2 1 利用线程级并行的原因 尽管超标量处理器每个时钟周期可以发射多条指令,但是带宽仍然很低, 无法达到足够的指令级并行性。这主要是由访存时延( 由c a c h em i s s 引起) 或者流水线损失( 例如,多个时钟周期才能完成的指令) 引起的。处理器核 的速度和存储器速度之间的差异使得存储时延成为了提高处理器性能的主要 障碍,同时也使得处理器资源不能得到充分利用。线程级并行( t l p n l r e a d l e v e lp a r a l l e l ) 可以在一个线程遇到长时延操作( 例如访存指令) 时,用另外 一个线程的执行来掩盖长时延,从而提高处理器资源的利用率,增加处理器 的吞吐量,减少长时延操作的副作用。硬件多线程处理器通过增加线程级并 行来弥补低发射带宽。使用其它线程中的指令来掩盖单个线程的时延,它们 同时保留多个线程和程序的状态。 为了同时利用指令级并行和线程级并行,研究者提出了两种思路。第一 i 种是将多个超标量处理器放在同一个芯片上,也称为单片多处理器s c m 。第 萎静是在处理器中设计多个硬件现场,多个现场共享所有的功能部件,也就 是綮用多线程处理器。 并行多线程处理器的提出是基于同时丌发线程级和指令级的指令并行 性,它既具有超标量结构的优点,同时发射多条指令,充分利用单线程中的 i l p ;又发挥多线程结构的优点,从不同的线程中取出指令执行,从而隐去因 长延迟操作引起的线程阻塞。如图2 1 所示。s m t 处理器可以从所有的线程 中选择指令来执行,在多个线程中动态调度指令,充分利用硬件资源。 s m t 有很高的并行度,但它把难题留给了软件,目前还没有足够成熟的 编译器技术提供给s m r 以足够的并行线程。 西北丁业人掌硕1 论文 第一章多线程处理器体系结构 ( a ) 超标量( b ) f i l l 粒度多线程( c ) 并行多线程 幽2 1 并行多线程时隙槽的分配及与其它结构的比较 2 2 多线程处理器的定义 微处理器可以被视为一个状态机,每个微处理器都含有硬件现场和执行 核。硬件现场负责存储处理器的执行状态,而执行核对存储的状态进行计算。 随着时间的推移,执行核根据指令执行的结果更新处理器的状态。 根据b y r d 和h o l l i d a y 的定义,硬件现场是和执行程序相关的处理器状 态,包括程序计数器,数据寄存器和状态寄存器等信息。而执行核可以看作 是接收指令和数据为输入,将运算结果输出的黑盒子。 在硬件现场和执行核的定义基础上,可以根据硬件现场和执行核的数目 对不同的系统结构进行分类,如图2 - 2 所示。 硬件现场数目一执行核的数目 厂占 1 1 单处理器 p o w e r p c p e n t i u m a 和h a n 一1 多线程处理器 s ! 订r s m a n n 多处理器 ( 单片多处理器) h y d r a p o w e r 4 图2 - 2 根据硬件现场数目和执行核对处理器结构进行的划分 最简单的结构是单个硬件现场和单个执行核组成一个单处理器。例如 p o w e r p c 系列处理器、p e n t i u m 处理器和a l p h a 处理器都属于单处理器。 西北丁业人学硼i 论文 第二章多线程处删器体系结构 而多处理器中有多个处理器,其中每个处理器包含个硬件现场和一个 与之对应的执行核。集成电路技术的发展已经能够在单个芯片上集成多个处 理器,从而成为单片多处理器。例如,s t a n f o r d 大学研究的h y d r a 以及i b m 公司生产的p o w e r 4 都属于单片多处理器结构。 而多线程处理器介于单处理器和多处理器之间,多线程处理器包含多个 硬件现场,但是多现场硬件共享一个执行核。例如,w a s h i n g t o n 大学提出的 同时多线程s m t ,以及国防科技大学提出的前瞻性多线程结构( s m a s p e c u l a t i v em u l t i t h r e a d e da r c h i t e c t u r e ) 都属于多线程处理器。 2 3 多线程处理器的优势 多线程处理器相对单片多处理器来说,性价比优势在于,多线程处理器 能够在每拍同时利用线程级并行性和指令级并行性,动态分配执行单元给需 要资源的线程。在多线程处理器中,线程级并行可以来自多线程多个并行程 序;或者多程序负载时,多个程序间的并行性:以及单个独立程序中的并行 模块。指令级并行来自单个程序或者线程。由于多线程处理器充分利用各种 并行性,所以能够提高资源的利用率,指令的吞吐量和执行速度都很高。 假定一个单片多处理器s c m 是出相同的8 个基本处理器组成,而且它的 总资源与多线程处理器相同。对于多线程工作负载,单片多处理器和多线程 处理器可以得到相当的性能。但是对于单线程负载,多线程处理器能够利用 所有的功能部件而单片多处理器只能利用1 1 8 的资源。 由于下一代的处理器能够使用更多的晶体管数目,多线程技术能够被用 来充分提高处理器性能。在1 0 亿晶体管的芯片上,2 0 到4 0 个多线程处理器 能够相邻放置,获得的性能比更多数目的传统超标量处理器的性能更高。和 i r a m 技术结合,多线程处理器的高执行速率可以充分利用增加的带宽。 此外,减少功耗已经是处理器最计的重要目标之一。许多研究者提出动 念电压调整d y n a m i cv o l t a g es c a l i n g ( d v s ) 来减少功耗。d v s 减少电压能够减 少功耗,但是需要降低频率,从而增加执行时问。另一种技术是调整系统结 构来减少有效电容。 而多线程处理器是一种本质上省能量的系统结构。该结构可以进行在单 线程处理器上不可能实现的功耗性能的折中。多线程处理器在多个线程中提 取并行性,减少功能部件空运转造成的能量浪费。同时多线程可以在单个处 理器中同时执行多个线程而不需要切换。这一方法能够有效的使用处理器资 两北丁业人学硕卜论殳第一:帝多线程处理瓣体系结构 源,它的性能( 晶体管数目+ 功耗) 的比率最高。s e n g 等人的研究表明,含 有8 个硬件现场的多线程处理器执行每条指令消耗的能量比单线程系统结构 执行一条指令消耗的能量少2 2 。 2 4 同时多线程结构 2 4 1 同时多线程模型 w a s h i n g t o n 大学提出了同时多线程s m t 模型,其执行核是基于m i p s r 1 0 0 0 0 的动态调度超标量系统结构。处理器每拍从指令c a c h e 中取入8 条指 令。指令译码之后,寄存器重命名逻辑将系统结构寄存器映象到物理寄存器, 来消除伪相关。为支持乱序执行,处理器检测指令和操作数间的相关,确定 是否能发射。当操作数准备好,相应功能部件可用时,将指令发射到执行单 元。指令执行完成后,处理器按程序顺序将其撤出流水线,同时释放不再使 用的物理寄存嚣。 为了能够在一拍内同时执行多个线程中的指令,s m t 需要复制一些超标 量资源。主要有: 1 硬件现场资源,包括寄存器和程序计数器; 2 每线程的流水线冲刷机制; 3 指令执行结束后的撤出机制; 4 每线程的精确中断和子程序返回机制; 5 在转移目标缓冲器和转换后援缓冲器t l b 中增加线程标志。 同时多线程可以使用当前乱序超标量处理器中的动态指令调度硬件将多 个线程中的指令调度到功能部件。寄存器重命名之后,发射逻辑动态发射指 令,功能部件不需要考虑指令来自哪个线程。 同时多线程在超标量的基础上改进得到,这有利于单线程程序充分利用 硬件资源,也有利于从超标量到同时多线程的平滑转换。 2 4 2 同时多线程的工作机制 超标量、细粒度多线程和同时多线程之间的差异如图2 3 所示。图中给 出来同一段执行序列在三种系统结构下运行时的时空图。图中每行代表每个 时钟周期的能够接收指令的功能部件,填充了的方框表示一条指令在该时钟 周期在那个功能部件中执行,空的方框表示空闲的功能部件。 两北丁业人学坝卜论文 第一章多线程处理 体系结构 ( a 1 超标量 f b ) 身i i 粒度多线程l c ) i 刊时多线程 图2 3 三种系统结构对功能部件的利用 将空闲的功能部件分为水平浪费和垂直浪费。如果一拍内,不是所有的 功能部件都被使用,就会出现水平浪费。通常由于指令级并行性有限,会产 生水平浪费。如果一拍内所有的功能部件都没有被使用,就称为垂直浪费。 通常由阻塞后续指令发射的长时延指令引起垂直浪费。 图中( a ) 是传统超标量的执行情况。超标量处理器执行单个程序或者单个 线程,每拍尽可能地利用指令级并行使用功能部件。当指令级并行有限时, 无法充分使用功能部件,会同时产生水平浪费和垂直浪费。 图中( b ) 是细粒度多线程处理器的执行情况。细粒度多线程处理器包含多 个线程的硬件现场。每拍只执行一个线程中的指令:下一拍则切换到不同的 线程,执行新线程中的指令。细粒度多线程处理器的主要优势在于能够通过 线程切换,容忍长时延操作,从而消除垂直浪费。但是浚系统结构不能消除 水平浪费。随着发射宽度的增加,细粒度多线程处理器也会受到指令级并行 性的制约。 图中( c ) 是同时多线程的运行情况。同时多线程每拍从多个线程中选择能 够并行发射的指令发射,从而获得最高的硬件利用率。如果单个线程有很高 的指令级并行性,那么能够满足发射带宽要求;如果多个线程的指令级并行 有限,那么它们可以同时执行来弥补指令级并行性的不足。于是,同时多线 程能够有效的减少水平浪费和垂直浪费。 2 4 3 同时多线程中的取指 传统处理器中,取指部件从单个线程中取指令到功能部件,增加取入的 两北t 业人学钡i 论殳第二章多线程处理器体系结构 有用指令数目能够提高性能。在同时多线程处理器中,由于s m t 能够更有效 地从多个线程中发射指令,所以取指部件必须工作得更快束满足动态调度器 的需求。取指部件是影响s m t 性能的瓶颈。 由于转移指令和c a c h e 行宽的限制,如果取指部件次只从一个线程中 取指令,则不容易充分利用功能部件。每拍从两个线程中驳指能够增加取回 有用指令的概率。 同时从两个线程中取指,也可以有多种实现方式。t u l l s e n 等对不同的实 现方式进行仿真,得到的结果是r r 2 8 方案性能最好。砌也8 方案每拍选择 两个线程取指令,从每个线程中取入8 条指令。由于处理器的指令带宽是8 , 所以需要从1 6 条指令中选择出8 条指令译码。从第个线程中选择尽可能多 的指令,如果在第一个线程中遇到转移指令或者是到达c a c h e 行顶端,则从 第二个线程中选择指令补充指令带宽。r r 2 8 方案相对每拍从一个线程中取 指,能使性能提高1 0 。 由于一拍内能从多个线程中取指,所以同时多线程处理器需要有效地选 择进行取指的线程。i c o u n t 是最有效的线程选择机制。i c o u n t 方案统计每个线 程当前处在译码、重命名和指令队列中的指令数目,对于指令总数最小的线 程赋予最高的取指优先级。 事实上,i c o u n t 方案赋予最高优先级的线程是在流水线中移动最快的指 令,避免填充跟在长时延指令之后的指令。其次,i c o u n t 方案保持快速移动 线程在队列中的均匀分布,从而增加线程删的并行性,更有效的掩盖长时延 操作。最后,该方案能够避免线程饥饿。因为指令没有被执行的线程最终会 被选择取指。 2 4 4 同时多线程的寄存器文件 w a s h i n g t o n 大学提出的同时多线程模型中,每个线程可以有3 2 个系统结 构寄存器。寄存器重命名机制将这些系统结构寄存器映象到物理寄存器。物 理寄存器文件的大小取决于所有线程现场寄存器数目的和,还需要额外的一 组重命名寄存器。s m t 中的大寄存器文件需要更长的访存时间,为了不改变 处理器的主频,需要将寄存器的读写都分成两拍。 大的寄存器文件能够满足对多个线程进行重命名的需求,但是小的寄存 器文件的访存速度更快,所以设计同时多线程时,需要对寄存器文件的大小 做很好的折中。s m t 处理器需要有效地利用寄存器资源,柬优化处理器面积 两北t 业太学顺l 论文 第一:章多线程处理器体系绱构 和性能。 乱序超标量处理器在进行寄存器重命名时,清楚地知道何时需要分配一 个新的物理寄存器。但是对于何时释放一个物理寄存器却所知有限。l o 等人 提出了软件支持的方式来加速寄存器的释放,以提高寄存器文件的利用效率。 同时多线程处理器中,一个线程执行结束并且没有其他线程等待执行时, 该线程的硬件资源变为空闲态。但是直到新线程进行寄存器映象时,当前线 程的寄存器才会被释放。l o 等提出用特权指令在当日 f 线程结束时,释放它占 用的寄存器资源。r 对于活动线程中的寄存器资源,则通过在某些指令中增加标记位表明源 操作数是否是最后一次使用菜寄存器,以及由编译器在小段程序之后插入 特殊韵爨教寄存器的指令来提前释放寄存器资源。 2 4 5 同时多线程中同步机制 s m t 采用共享的线程调度逻辑,在同步单元中容易实现基于硬件的阻塞 锁机制( b l o c k i n gl o c k s ) 。没有得到锁的线程被阻塞,释放它使用的硬件资源, 但是保留自己使用的硬件现场。如果一个线程释放的锁资源,正有其他线程 在等待使用,则重启被阻塞的线程。同步原语包含两条指令: a c q u i r e ( 1 0 c k ) 该指令请求一个基于存储器的锁。直到成功地获得锁 为止,浚撸令彳+ 能究成执行。 ,? 划e 赫e ( 1 0 c k ) 该指令在没有其他线程等待该锁时,对存储器写0 ;否 贝q 唤醒等待锁的线程,不改变存储器的值。 通过在同时多线程处理器中实现一个功能单元可以实现同步机制。该功 能部件是一个表,每行包括锁地址、由于没得到该锁而被阻塞的指令的地址 和个有效位。 如果个线程没有得到一个锁( r e a d m o d i f y w r i t e 一个存储器地址返回非 零) ,就将锁地址、指令地址记录在表中。没有得到锁的线程在锁指令之后, 被冲刷。当其他线程释放锁时,硬件使用锁地址在表中进行相联查找。一旦 找到被阻塞的线程,硬件使得该线程的锁指令结束,允许该线程继续执行, 并且使得表中相应表项无效。如果释放的是一个没有其他线程等待的锁,则 将结果写回存储器。 只要a c q u i r e 指令没有成功执行结束,该指令就不从流水线中撤出,所以 即使一个线程因为锁阻塞被切换出去,a c q u i r e 指令还在s m t 的活动指令队列 西北工业人学颁i j 论文第二章多线程处删器体系结构 中,之后也能通过将程序计数器指向a c q u i r e 指令来重启该线程。 将被锁阻塞的线程从流水线中冲刷是避免死锁的关键操作。冲刷的机制 和转移误预测时的冲刷机制一样。 2 5 前瞻性多线程结构 “ 。 雷防科技大学提出的前瞻性多线程系统结构s m a 有机地结合前瞻性执 行和多线程技术。s m a 将程序分为一系列线程,线程间可以存在数据和控制 相关。s m a 以线程为步长,前瞻性执行程序。处理器每次预测将要执行的线 程,将该线程分配给一个逻辑处理器执行。通过将指令的执行提前到其控制 相关性消除之前,来获得更高的i l p 。同时,s m a 采用多线程来隐藏访存操 作的长时延。处理器通过组合每个线程的指令窗口形成一个大的动态指令窗 口,从而使得处理器中功能单元的利用率得到很大的提高。 在s m a 中,线程执行的顺序f 确语义由处理器保证。首先,每个逻辑 处理器内部严格按照程序的顺序语义执行;其次,按照循环队列的方式组织 逻辑处理器,对它们施加一种顺序关系,从而对线程施加一种顺序关系。如 果线程前瞻错误,那么后续线程的执行必须取消并且恢复正确的线程执行。 s m a 处理器中每个线程的执行由个现场单元控制,所有的现场单元 。组织成一个环形队列。线程调度单元控制线程的预测、启动、执行、恢复和 结束。 誓 s m a 处理器采用分布式的寄存器重命名机制。全局寄存器重命名逻辑 包含叠譬奎局自由寄存器表和全局物理寄存器申请表。而每个现场单元中还 包含一个局部映射逻辑。局部映射逻辑中含有局部活动表、局部寄存器映射 表和局部屏蔽寄存器m a s k 。其中m a s k 由编译生成,标识一个逻辑寄存器 可能在后续线程中被使用。m a s k 用来控制是否将一个线程中的寄存器重命 名信息传递到下一个线程。 s m a 中在每个物理寄存器中设计一个f u l l e m p t y 位,来实现寄存器 间的数据同步。指令译码并且进行重命名之后,相应目的物理寄存器的 f u l l e m p t y 位就被置为0 :直到指令执行结束并且提交数据,其目的物 理寄存器的f u l l e m p t y 位置为1 。 与同时多线程s m t 类似,s m a 处理器中所有的线程共享取指单元、运 算单元,从而能够灵活地使用程序中的线程级并行和指令级并行。 s m a 模型综合了前瞻性执行和多线程的优点。通过前瞻性执行线程来实 两北t 业大学颂l 。论文 第一带多线程处理器体系结构 现深度的前瞻执行将每个线程的指令窗口组合成个大的指令窗口。另一 方面,s m a 通过线程切换有效地隐藏访存操作的长时延,提高资源的利用率。 2 6 多线程撕遐器的设计空问 爹线黢壹蠛器韵设计空问如图2 - 4 所示,主要包括:1 ) 执行核的设计: ,福婚灞瓣壤略;3 ) 线程模型:4 ) 同步机制。 j 执符援的设计可以分为流水、v l l w 和超标量这三种类型。例如商业 爱箭纽粒度多线程处理器d e n e l c o rh e p 属于流水型:t e r n 的执行核采用v l i w 结构:而w a s h i n g t o n 大学提出的s m t 和国防科技大学提出的s m a 都采用超 标量结构作为执行核。 多线程设计空间 执行核 指令发射线程模型同步 图2 4 多线程处理器的设计空间 指令发射策略又分为交织发射和同时发射。其中交织发射可以根据现场 ? 一甥换的不同方式分为逐拍切换和按事件切换。h e p 是逐拍切换,包含很长的 流水线,每个流水线阶段包含的是来自不同线程的指令。而s u n 公司的s p a r c 采用按事件切换的方式。而采用超标量结构的执行核可以同时发射多个线程, 例如前面提到的s m t 和s m a 。 线程模型包括线程类型以及线程的生成机制。线程可以分为冯诺依曼型、 数据流型。冯诺依曼型中来自不同线程中的指令顺序执行,控制流和数据流分 离,例壶i i h e p 就是采用这种方式。数据流模型将数据流和控制流结合起来。该 模型可以将程序表示为有向图,用图中的结点表示数据,而有向图中的边表示 数据流。数据流模型易于表示并行性,但实现起来比冯诺依曼模型难。m i t 研 究的m o n s o o n 属于数据流模型。 线程的生成机制分为推测性和非推测性。推测性线程是在执行己存在的线 程的同时推测性执行新线程。例如,遇到循环时,不同的线程推测性地执行不 同的循环迭代。处理器必须检测线程问的动态相关,如果发生相关则废除推测 两北工业人学颂i 论文 第二章多线程处理器体系结构 性线程。 同步机制主要以下几种形式:原子指令、删栏b a r r i e r s 、标志位、结构化存 储器、数据流。通常,复杂的同步机制由更简单的机制柬实现。“表示位”通常 由原子指令来实现,结构化存储器由“表示位”来实现,数据流由结构化存储 器实现。 2 , 7 小结 本章讨论多线程处理器的定义及其模型、工作原理、取指机制、寄存器 文件等方面的内容。最后分析多线程处理器的设计空间。 4 两北t 业入学硕l 一论文第_ 三章a r m p 执行部件的设计 第三章a r m p 执行部件的设计 本章重点介绍a r m p 系统的执行部件的设计。在对指令系统,流水线和 时序分析的基础上,设计出合理的执行部件,并实现这些部件。 3 1 数据通路的设计 数据通路包括处理器中的执行单元如算术逻辑单元( a l u ) 、移位器、乘法 器等和寄存器组以及它们之间的连接通路;从程序员的角度来看,数据通路 包括处理器用于程序挂起、恢复所需保存的大量处理器状态:用户可见的通 用寄存器组、特殊寄存器。 数据通路的设计是依据指令集进行的,在给定性能的前提下,确定数据 通路中各功能单元的设置及它们之间的连接方式,包括:a l u 的设计、寄存 器文件( r e g i s t e rf i l e ) 的设计、移位器( s h i f t e r ) 的设计、乘法器的设计等等。 在微处理器中,出于数据通路决定时钟周期且占据相当大的芯片面积, 因此,数据通路是决定微处理器性能和价格的主要因素。图3 一l 是根据a r m p 指令集所设计的数据通路。 3 1 数据通路的结构图 西北丁业大学硕。l 论文 第三帝a r m p 执行部件的设计 a r m p 数据通路的特点为: 定点运算和浮点运算分丌进行: 设置了三总线结构的定点。算术逻辑操作可以在一个周期之内完 成: 设置了多端口寄存器文件:两个读端口和一个写端口。提供双端 口读寄存器文件的原因是:同时准备两个操作数,减少指令的执行周 期。 设置单独的乘法器、移位器来实现快速的乘法和移位操作。 下面来详细介绍数据通路的确定,以及数据通路上各个功能单元的设计。 包括a l u 、阵列乘法器、移位器、前导零模块等。 3 。2 a l u 的设计 浚摸块的主要功艇是完成算术运算、逻辑运算和除法等指令。a l u 运算 采用经典的函数发生器和加法器的方式来实现。 3 2 1a l u 功能结构 a r m p 确定a l u 的基本结构如下图3 - - 2 所示: 图3 2 a l u 模块框图 从图中可以看出,a l u 可划分为三个部分:操作数准备、函数发生器、 两北t 业凡学坝卜论殳 船兰章a r m f 执行部件的吐汁 全加器。为了使硬件结构尽量规整,采用1 位的补码加减交替法实现除法。 但是该算法是进行小数除法,被除数和除数都是小数。为了能正确表示商而 不发生溢出,商的绝对值不能大于l 。这就要求被除数( t e m p b ) 的绝对值一定 要小于除数( t e m p a ) 的绝对值。而a r m p 的定点指令中要实现的是整数除法, 所以需要对操作数进行处理。设计中,将被除数( t e

温馨提示

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

评论

0/150

提交评论