同时多线程技术及应用_第1页
同时多线程技术及应用_第2页
同时多线程技术及应用_第3页
全文预览已结束

下载本文档

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

文档简介

同步多线程技术分析同步多线程技术 (SMT) 的诞生 研究人员一直在致力于提高程序的运行速度,扩大内存容量,提升处理器的工作频率,提供缓存等等。其中处理器的频率提升是最直观的,但是其瓶颈和散热量的问题也已非常明显。多线程和多核处理器成为另外一种提升性能的方式。通过查阅资料,我们发现如果要发挥多核处理器的优势,很多时候程序员需要修改已有的代码(特别是那些卓越的大型程序),而处理器内部的多线程是对指令的优化,无需再次编程,这使得它更容易投入使用,这也许意味着它比多核更容易给开发人员提供帮助。同步多线程技术(SMT)正是这样一种可以提高处理器的效率和性能体系结构模型,其目的是在现有硬件条件下,通过提高计算能力来提高处理器的性能。SMT是对以前技术的改进,下面是几个同步多线程技术出现之前的处理器技术: 多重启动处理器(Multiple Issue Processors):运用在超标量和VLIW上的多重启动处理器,其目的是为了降低平均CPI,通过在一个周期内启动多条指令,充分利用处理器的功能单元。多线程处理器(Multithreaded Processors):多线程处理器主要通过降低操作延迟以提高处理器的效率,比如说cache失效和需要长执行周期的指令。一个多线程处理器通过分配给每个线程独立的PC(program counter)和寄存器来保持线程间相互独立的状态。 由于每个处理器在切换上下文时几乎没有延迟,所以每个周期可以启动来自不同线程的指令。由于存在分离的、独立的上下文和指令资源,多线程体系结构才能利用线程级并行性(TLP),从而提高处理器的效率。就如同多重启动结构依赖于指令级并行性(ILP)一样,多线程处理器更依赖于线程级并行性(TLP)。但是多线程处理器不能在同一个周期内启动来自不同线程的指令。因此,当一个周期内,单线程无法找到足够的指令级并行性,处理器资源就被浪费了。 多处理器Multiprocessors (CMP and SMP) :多处理器结构可能是一个包含了多处理器核心(AKA芯片多处理器或者CMP)的包,也可能是在同一个计算机上的两个或多个物理处理器包(AKA对称多处理器SMP) 。多处理器结构通过允许线程同步执行来提高总体的性能。就如同多线程处理器,多处理器也要依赖于线程级并行性来提高性能。但是多处理器结构并没有提高总体的处理器资源利用率,因为在当前线程没有足够的并行性时,处理器资源还是闲置了。 在这些处理器有缺陷的情况下,”simultaneous multi-threading“的概念由一些科研人员提出。同步多线程技术 (SMT) 的原理同步多线程技术试图解决上面提到的几种缺点。同步多线程技术通过两种途径来提高处理器的总体性能。 1) 同步多线程技术允许处理器在一个周期内执行多个线程的指令而不需要切换上下文。因为,我们可以在这种模型中,同时利用线程级并行性(TLP)和指令级并行性(ILP)。我们可以在任何一个周期内,更有效地利用处理器的资源从而减少水平浪费。2) 同时多线程技术不会由于不同的处于激活状态的线程的结合而阻止指令的启动。也就是说如果由于产生了高延迟的操作或资源冲突,而使得一个线程挂起,仅有一个线程处于激活状态,那该线程就可以使用所有可用的发射槽。由于在这个线程中的指令没有被阻塞,结果垂直浪费就消除了。一个基于同时多线程技术的处理器,每个周期都从所有线程中挑选指令,启动并执行更多的指令,这样能够更好的利用处理器资源。多重启动处理器能够在每个周期内执行多条指令,当单个时钟周期内指令级并行性很低时,这种处理器的效率是很低的。多线程和多处理器结构减少了由于长延迟操作和资源冲突而产生的限制,但是也增加了开销(经济上的和规模上的开销),还未必能够十分有效的使用处理器资源。 同时多线程技术融合了多线程处理器和超标量体系结构处理器技术,既具有超标量体系结构的每个时钟周期执行多条指令的性能 , 又具有硬件多线程处理器的同时能执行多个程序 (线程)的性能从而在一个时钟周期内既能执行来 自同一线 程的多个指令 , 也能执行多条来自不同线程的指令 。 所以当 某一线程指令级并行程度高时 , 处理器可以满足它的要求。 而当每个线程都是低指令级并行时 , 处理器可以从不同的线 程中选择指令来执行 , 并且能够在这些指令中动态地安排机器资源 , 使机器资源得到最有效的利用 。同步多线程技术 (SMT) 的优势指令级和线程级并行操作由于SMT有成功的支持指令级和线程级并行操作,所以SMT能够更有效的利用资源, 既加大了吞吐量,也提高了速度。低功耗多线程处理器由于它的高吞吐率这一原因,使得它在很多低功耗和功率受限设备的设计和应用中具有很大的吸引力。首先,它通过多线程提供了额外的并行性,使得处理器并不太依赖于大量的指令预测,因此,它在预测和从不提交指令上消耗很小;其次,当运行多线程时, 由于它较高而且更多的并行性,使得没有被充分利用的资源的能耗也减少了。另外,多线程结构允许线程选择机制和指令动态分配机制有更大的设计调整和权衡空间,以适应降低功耗 的需求目标。在编译器和操作系统设计时可以充分利用多线程结构的优势和对低功耗的支持 对应用程序进行低功耗优化和线程调度,以获得通过软件和体系结构相结合来降低功耗的效 果。同步多线程技术 (SMT) 的缺点在共享资源使得SMT获得性能提高的同时,它也存在着潜在的缺点。由于它的同时多线程 指令发射, SMT 可能更强调了片内硬件的共享 ,这就有可能带来冲突的增加和竞争现象。当多个线程或进程的操作集在共享结构和分支预测表上发生冲突时,就会出现第一种现象;这种共享结构的主要任务是“暂存”线程的某些执行状态,包括存储状态、寻址变换、或分支历史。随着多个线程的执行,冲突会降低硬件资源的有效性, 由于操作系统要在多个线程之间进行切换,大多可运行多个线程的现代系统己经看到了这种现象。但是,对于细粒度多线程, SMT处理器可能加剧共享资源的冲突, 因而降低了局部性。最突出的可能就是对共享cache命中率的影响。当多个线程产生过分的资源竞争而不是冲突 时,就会引起第二种现象的出现。SMT可能要比传统的处理器经历更多的竞争,因为,多个线程要竞争共享功能部件,比如cache、端口等资源。现代的软件很可能加剧这一问题,因为这些应用程序并没有为要在SMT 上运行而设计。因此,软件不可能有效地共享资源,甚至更坏的情况是在SMT 上引起剧烈的资源竞争。结论 从处理器工业的今天

温馨提示

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

评论

0/150

提交评论