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