同步多线程技术基础_第1页
同步多线程技术基础_第2页
同步多线程技术基础_第3页
同步多线程技术基础_第4页
全文预览已结束

下载本文档

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

文档简介

1、同步多线程(SMT)技术基础介绍微处理器设计的发展和我们对速度的需求,诞生了很多新技术并使它们迅速发展,也 使现在的以及下一代的处理器的效率和性能都有了提升。一定的体系结构下,在提高性能、 降低开销和指令级并行性(ILP之间)加以平衡,可以降低平均CPI。同步多线程技术(SMT)是一种体系结构模型,其目的是在现有硬件条件下,通过提 高计算能力来提高处理器的性能。因此,同步多线程技术结合了多重启动处理器(超标量 和V LIW)和多线程处理器的思想来增加并行度,进而提高性能。多重启动处理器可以在一个周期内执行多条2, 4甚至8条)指令,而多线程和多处理 器(SMP和CMP)结构可以同时或者在很少的

2、延迟内执行来自不同线程的指令SMT结构 中,不仅在一周期内启动多条指令,而且也能在同一周期内启动来自相互独立的线程(或 上下文)的指令。在理论上,这种改进运用了指令级并行性ILP)和线程级并行性(TLP) 技术来提高执行功能单元的效率。同步多线程技术之前的研究多重启动处理器(Multiple Issue Processors)运用在超标量和VLIW上的多重启动处理器,其目的是为了降低平均CPI,通过在一个 周期内启动多条指令,充分利用处理器的功能单元。要想有效利用多重启动处理器资源的 关键就是在运行的程序中,发现足够的指令级并行性,通常这种并行性是由硬件决定的。 超长指令字(VLIW)处理器每

3、周期启动固定数目的操作,而这些操作是由编译器决定的。超标量处理器通常是指“动态调度” (dynamically scheduled)的多重启动处理器,因 为他们是通过硬件来发现代码中的并行性。不同的是,VLIW处理器通常是“静态调度” (statically scheduled)的,因为他们依靠编译器来发现并优化指令级并行性。无论是动态或是静态调度,如何有效利用多重启动处理器,依赖于发现并利用指令级 并行性。指令级并行性来自同一个上下文环境、程序或线程。?。和编译器重新安排和启 动指令,以此来最大限度的利用资源而不改变应用程序的完整性。在多重启动处理器中, 如果不能发现足够的并行指令来填满发射

4、槽issue slot),那么资源就被浪费了。超标量处理器现在大致 有DEC/Compaq 21164, PowerPC, MIPS R10000, Sun UltraSparc 和 Hewlett Packard PA-8000,而VLIW处理器则包括Intel IA-64 (Itanium)和Transmeta Crusoeo对多重启动处理器和使用记分牌(scoreboarding)和Tomasulo算法的动态调度已经 有了很多研究,我将不再花费时间分析他们。多线程处理器(Multithreaded Processors)多线程处理器主要通过降低操作延迟以提高处理器的效率,比如谕che失效

5、和需要长 执行周期的指令。一个多线程处理器通过分配给每个线程独立白PC (program counter)和 寄存器来保持线程间相互独立的状态。由于每个处理器在切换上下文时几乎没有延迟,所 以每个周期可以启动来自不同线程的指令。如果处理器在每个周期切换上下文,这就叫做 细颗粒(fine-grained)的多线程或交叉(interleaving)。粗颗粒(Course grain)的多线程 处理器则是在某一线程出现长延迟时,才切换线程,以保证指令的持续启动。正是由于存 在分离的、独立的上下文和指令资源,多线程体系结构才能利用线程级并行性TLP), 从而提高处理器的效率。多线程处理器通过比传统处理

6、器更精细地共享处理器资源,从而有效的提高了处理器的利用率。就如同多重启动结构依赖于指令级并行性ILP) 一样,多 线程处理器更依赖于线程级并行性(TLP)。线程级并行性来源于多个线程,并行程序或 者是多程序环境下的独立的程序。但是多线程处理器不能在同一个周期内启动来自不同线 程的指令。因此,当一个周期内,单线程无法找到足够的指令级并行性,处理器资源就被 浪费了。多线程处理器现在包括Denelcor HEP, Tera, MASA和Alewife。多处理器 Multiprocessors (CMP and SMP)多处理器结构可能是一个包含了多处理器核心(AKA芯片多处理器或者CMP)的包,也

7、可能是在同一个计算机上的两个或多个物理处理器诳对称多处理器SMP)。多处理器 结构通过允许线程同步执行来提高总体的性能。就如同多线程处理器,多处理器也要依赖 于线程级并行性来提高性能。但是多处理器结构并没有提高总体的处理器资源利用率,因 为在当前线程没有足够的并行性时,处理器资源还是闲置了。IBM 的 Power4, Sun的MAJ C 和 CradleOUniversal Microsystem是 多处理器或 CMP 的典型 例子。而 Intel 的Pentium Pro, Pentium II, Pentium II和 Xeon处理器,包括AMD 的 Athlon XP 都支持对称多处理器

8、(SMP)。小结多重启动结构只要有足够的指令并行度ILP)就能够保证有效利用处理器的资源。多线程和多处 理器结构提供 了更为广阔的 指令集以挖掘 ILP,并且在长 延迟操作产生 时能够有效的 利用处理器,但 前提是有足够 的线程级并行 性。如图1所示,由于资源冲突导致了处理器无法启动之后的周期,垂直浪费Vertical waste)就产生了,而当没有足够的指令级并行性时,处理器无法最大限度的同时启动各种操作,这 就导致了水平浪费(horizontal waste)。同步多线程技术(SMT)同步多线程技术试图解决上面提到的两种浪费。同步多线程技术通过两种途径来提高处 理器的总体性能。1)同步多线

9、程技术允许处理器在一个周期内执行多个线程的指令而不需要切换上下文因 为,我们可以在这种模型中,同时利用线程级并行性TLP)和指令级并行性(ILP)。 我们可以在任何一个周期内,更有效地利用处理器的资源从而减少水平浪费。Cjnclesno cost for oontci t swit chmg2)理论上,同步多线程技术不会由于不同的处于激活状态的线程的结合而阻止指令的启 动。这意味着如果由于产生了高延迟的操作或资源冲突,而使得一个线程挂起,仅有一 个线程处于激活状态,那该线程就可以使用所有可用的发射槽。由于在这个线程中的指 令没有被阻塞,结果垂直浪费就消除了。一个基于SMT技术的处理器,每个周期

10、都从所有线程中挑选指令,启动并执行更多的指 令,这样能够更好的利用处理器资源。而多重启动(超标量和LIW)处理器能够在每个周 期内执行多条指令,当单个时钟周期内指令级并行性很低时,这种处理器的效率是很低的。 多线程和多处理器结构减少了由于长延迟操作和资源冲突而产生的限制,但是也增加了开 销(经济上的和规模上的开销),还未必能够十分有效的使用处理器资源。SMT可以最有效的利用多重启动和多线程结构,而不必实质性的增加开销和晶体管数 量。DEC/Compaq的Alpha EV-8处理器就是利用SMT技术的典型机器。EV-8的设计者之一 Joel Emer说“它看上去像4个芯片,用起来像两个,而实际上

11、只有一个,但它相比于一个非 多线程的只增加了5%的晶体管。”调度(Scheduling)超标量机上的动态调度对于SMT机的调度同样适用。因此,寄存器重命名register renaming)仍可以在SMT机上使用。为了防止线程自身与线程之间发生寄存器名字冲突, 线程相关的结构寄存器必须与硬件寄存器相对应。取指(Instruction Fetching)由于SMT处理器上的指令可能来自不同的线程,大大增加了线程级并行性,以提高处 理器性能。有鉴于此(在任何一个周期内,有更多的指令可能被启动),取指单元必须能 够有效的填满指令缓冲区以向处理器提供足够的指令,而且还必须具备动态调度的能力。 此外,由

12、于可能在同一时刻存在多个线程同时运行,取指单元还必须知道哪个线程需要指 令。当取指单元无法在每个周期内为所有线程取得指令时,就必须在线程间作出选择,以 确定给哪个线程优先提供指令。这里将讨论两种取指模型。一个就是单循环法(round-robin),每次为一个线程取指,循环于所有激活的线程之间。另一个就是引用计 数法(Icount),使用一个算法根据线程移动的速度,来确定谁的优先级最高最后,如果 多线程要支持指令的同步请求,就可能需要增加额外的端口。寄存器文件和程序计数器(Register File and Program Counter)为了保持多线程的上下文,处理器必须将状态保存下来。这样,

13、SMT处理器需要很多 的寄存器文件。每个线程得到它自己的结构寄存器。利用寄存器重命名,我们可以假设所 需的硬件寄存器数量等于线程所需的结构寄存器乘以线程数再加上支持重命名的寄存器。 一个更大的硬件寄存器文件,通常就增加了处理器的复杂性,有时候也可能增加访问时间。(结构寄存器)(线程数)+重命名寄存器除了复制和增加的寄存器文件所需的空间之外,SMT处理器还需要为每个线程增加分离的 程序计数器。管道(Pipeline)指令管道不一定要进行实质性的改变来支持SMT。但是,由于寄存器文件的增大,从 寄存器重命名策略的角度看,可能需要管道为寄存器的读写增加额外的步骤。分支预测(Branch Predic

14、tion)分支预测和目标缓存需要一定的改进。由于同时执行的上下文,其地址空间可能很大, 分成的块数也越多。至少在一种我所碰到的设计中,需要为分支目标缓存增加一个线程标 识符。另一种改进的方法是为每个线程复制整个结构,这个方法对于一个支持比较少的线 程的处理器还是可行的,但是对于一个支持很多线程的处理器就太昂贵了。Cache处理器的cache是另一个可能发生资源竞争的部件。超线程技术不仅要求能够同时访问 数据和指令,对于带宽的需求也增加了。这样八2吊。越小,就越容易发生冲突。虽然在这 里我们讨论了这个问题,但是这个问题常常由于在其他方面效率的增加而被忽略了。在一 些情况下,L1 cache失效明

15、显增加了(在并行工作负载下达至68%),但是L2 cache能够处 理大部分的请求,所以总体的性能必1 cache失效的影响不到10%。小结从上面的介绍可以看到,同步多线程结构与早先的结构相比有很多相似之处,比如多 重启动(超标量)处理器和细颗粒的多线程处理器。实际上,通常同步多线程结构的设计 从超标量开始,并加上了上述各种改进。结论从处理器工业的今天的走向来看,同步多线程技术可能会被认为是对于处理器体系结 构的一次革命性的变迁,也可能仅仅是超标量(多重启动)处理器设计的一个突破。未来 的处理器更可能是SMT、SMP和CMP结合的产物,其性能可能远远超过现代的系统。同步 多线程技术确实能够在不扩大

温馨提示

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

评论

0/150

提交评论