
表1:常见的服务器端企业级应用中的指令级并行度和线程级并行度的比较
现在,业界普遍认为,TLP将是下一代高性能处理器的主流体系结构技术,ILP将仅仅成为TLP中表示性能的辅助参数。
SMP技术
SMP的全称是“对称多处理”(Symmetrical Multi-Processing)技术,可以看作是一种从宏观角度支持TLP的体系结构技术。SMP是指在一个计算机上汇集了多个CPU,各CPU之间共享内存子系统以及总线结构。它是相对非对称多处理技术而言的、应用十分广泛的并行技术。在这种架构中,一台电脑不再由单个CPU组成,而同时由多个处理器运行操作系统的单一复本,并共享内存和一台计算机的其他资源。虽然同时使用多个CPU,但是从管理的角度来看,它们的表现就像一台单机一样。系统将任务队列地分布于多个CPU之上,从而极大地提高了整个系统的数据处理能力。所有的处理器都可以平等地访问内存、I/O和外部中断。在对称多处理系统中,系统资源被系统中所有CPU共享,工作负载能够均匀地分配到所有可用处理器之上。SMP技术是高性能服务器和工作站级主板架构中提升性能的有效手段,像某些UNIX服务器可支持高达256个CPU的SMP系统。
然而,传统的SMP系统内部的多个处理器通过片外总线互连,共享总线带宽,传统总线所固有的低带宽、高延迟已经成为SMP系统的性能瓶颈。在SMP方面的一种发展趋势就是将SMP系统搬到一块芯片内部,利用片内的高带宽总线来代替片外总线,实现片内高带宽的SMP超级计算机。
CMT=CMP+MT
CMP-单芯片多处理器=片内SMP
TLP的研究已经开展许多年了,学术界提出了多种实现方式,其中又以Stanford大学的单芯片多处理器(CMP, Chip Multi-Processor)的Hydra CMP为典型代表。CMP的基本思想是在单个芯片上实现SMP,每一个处理器核心实质上都是一个相对简单的单线程处理器。CMP允许线程在多个处理器内核上并行执行,从而利用线程级并行性来提高系统性能。下图是Hydra CMP的体系结构。可以看出CMP主要是依赖SMP体系结构来实现TLP的。
图3. Hydra CMP的结构示意图
MT-多线程处理器(Multi-threading Processor)
为了理解CMT,我们还有必要看一下多线程处理器(Hardware Multith