资源描述
第 16 章,高性能微处理器的先进技术 及典型结构,本章主要内容,高性能微处理器的先进技术 高性能微处理器的典型结构,16.1 高性能微处理器所采用的先进技术,16.1.1流水线中的“相关”及其处理技术 流水线技术是实现多条指令并行执行的重要技术。现在,它已成为建造高速CPU的一项基本实现技术。 流水级数为n的流水线,在理想情况下可以使处理器性能提高n倍。但是,在实际中,有一些情况会阻止指令流中的下一条指令在预定的时钟周期内执行,这种情况称为指令间的“相关”(dependency)或“险态”(hazard)。 指令间的“相关”会造成流水线的停顿,使指令不能连续不断地进入流水线,其结果是降低了流水线的工作效率。,指令间的“相关”是指后面一条指令需要等前面一条(或几条)指令的执行结果,或者要等前面的一条(或几条)指令用完它们所需要的硬件资源(如存储器)后才能执行完。也就是说,后面一条指令必须等待前面一条(或几条)指令流过流水线后才能执行完。 指令间的“相关”可分为:结构相关、数据相关和控制相关。 下面分别说明这三种“相关”的不同特性、产生原因及处理方法。,1. 结构相关,结构相关(structural dependency)亦称资源相关。它是指令流水线中在不同流水级(stage)上重叠执行的指令之间争用同一硬件资源时所产生的相关。例如,在流水线执行过程中出现访问存储器冲突就是结构相关的一个例子。 要缓解结构相关引起的流水线停顿问题,可以采用把具有访问冲突的资源配置成多套的办法来实现。例如,可以采用分开式的Cache,即由指令Cache和数据Cache分别提供指令和数据(即所谓哈佛结构),而且可以把这两个Cache的总线及存储器地址寄存器也分开成两套,使得当一条指令在某流水级上访问指令Cache时,另一条指令在其他流水级上可以在同一时间访问数据Cache。,2. 数据相关,在流水线中重叠执行的指令中,如果后一条指令依赖于前面一条指令的执行结果,就会出现数据相关(data dependency)。 在指令流水线中重叠执行的读数和写数指令之间,若要使用同一个存储单元或同一个通用寄存器时,就可能发生数据相关。这可通过下面的例子来说明。 设有相继的两条算术运算指令如下: ADD R3 , R2 , R1;(R3)+(R2)R1 SUB R4 , R1 , R5 ;(R4)-(R1)R5 假设采用4级流水,且分别是: 取指(F)、译码(D)、执行(E)和写结果(W),则上述两条指令在流水线中执行的时间图可能会出现如图16.1(a)所示的情况。,图16.1 数据相关及其处理方法,从图16.1(a)中可以看到,指令2从寄存器R1中取操作数是在流水级D,而指令1把结果送入寄存器R1是在流水级W。显然,指令2取操作数是在指令1把结果送入R1之前,所以指令2取来的是R1中先前(未执行指令1时)的旧内容,从而发生错误。 要解决数据相关,需要设置专门的检查数据相关的硬件,在每次取操作数时,把取数的地址同它前面正在流水线中尚未完成写数操作的所有写数指令的写数地址进行比较,如果有相同的,说明有数据相关存在,就必须采取相应措施。 就本例而言,解决数据相关最简单的办法就是推迟执行读数操作,等待相关的写数指令完成写数操作之后,再执行读数操作。如图16.1(b)所示。,从图16.1(b)可见,指令2要等待指令1在流水级W的操作完成之后才启动流水级D的操作,指令2在流水线中停顿了两个时钟周期。这种机制称为流水线互锁(pipeline interlock),是通过硬件实现的。也有的用软件(编译程序)的办法来实现。无论是通过软件还是硬件,显然,推迟执行读数操作的办法总要影响流水线的效率。为了尽量缩短数据相关时指令在流水线中停顿的时间,还有其他一些方法,在此不再详述。 共有三种类型的数据相关,分别是:先写后读相关(读-写相关),即RAW(Read After Write);先读后写相关(写-读相关),即WAR(Write After Read)和先写后写相关(写-写相关),即WAW(Write After Write)。 上面给出的例子属于“先写后读”(RAW)相关。,3. 控制相关,控制相关(control dependency)主要是由转移指令或其他能够改变程序计数器(PC)内容的指令在流水线中进行处理时引起的。以转移指令为例,如果发生转移,则流水线中在转移指令之后的指令要全部作废,需要重新按转移地址取指令后才开始执行。 转移指令又分为无条件转移和条件转移两种类型,它们对指令流水线效率产生的影响有所不同。无条件转移指令在指令译码发现它的同时已经知道了转移地址,可以较早地采取措施,因而对流水线效率的影响比条件转移指令要小。,对于条件转移指令,虽然在指令流水线前端的指令译码时就能发现,但是确定转移方向的条件码却要在指令流水线的末端的执行部件中产生。所以一旦在指令部件中发现条件转移指令,指令部件就要停顿下来,等待转移指令前面一条指令在执行部件中执行完毕,产生条件码以后,才能确定转移方向,此时整个流水线已经排空,没有指令在里面流动了。 如果转移条件成立,执行新的指令流,就要从指令部件预取新指令开始;如果转移条件不成立,虽然指令部件中原来预取的指令还有用,但也要从指令部件分析指令开始。等到指令流到执行部件时,执行部件已经停顿了相当一段时间,所以条件转移指令对流水线效率的影响很大。,为了改进由于条件转移指令引起的流水线“断流”现象,减少条件转移指令造成的执行部件停顿时间,可采用多项措施和技术: (1) 双分支预取。对于条件转移指令而言,共有两个分支方向,一个是顺序执行的方向,一个是转移目标的方向。双分支预取就是在发现条件转移指令后,同时向两个分支方向预取指令。即除了继续顺序预取指令外,还要按转移方向预取指令,最后根据条件码所确定的方向选取其中的一个分支的指令,进行分析和执行。 这样,无论是否发生转移,总有一个分支的指令可以使用,从而节省了等待读取指令的时间,即减少了流水线的停顿时间。,(2) 加快和提前形成条件码。有的指令的条件码并不一定要等待指令执行完毕得到运算结果后才能形成。例如,对于乘法和除法指令,其结果(积和商)是正还是负的条件码在相乘(或除)前就能够根据两个操作数的符号位来确定。乘法和除法指令的执行时间很长,所以这种提前形成条件码的措施对减少条件转移指令引起的流水线停顿时间很有益处。 (3) 转移预测。转移预测有静态预测和动态预测两种。静态预测是在程序编译时进行预测,而在硬件设计中则规定条件转移指令总是向一个固定方向执行指令。在编译时应尽可能使程序的转移方向与硬件规定的方向一致。,动态转移预测用硬件来实现,它是在现代微处理器设计中普遍采用的一种行之有效的方法。 在前面第7章介绍Pentium处理器结构时曾介绍过这种方法。,16.1.2 指令级并行,要提高计算机系统的整体性能,可以在两个方面做出努力,一是改进构成计算机的器件性能(如微电子电路的速度、功耗等),二是要采用先进的系统结构设计。而在系统结构设计方面,一个重要的手段就是要采用并行处理技术,设法以各种方式挖掘计算机工作中的并行性。 并行性有粗粒度并行性和细粒度并行性之分。所谓粗粒度并行性是在多个处理器上分别运行多个进程,由多个处理器合作完成一个程序。所谓细粒度并行性是指在一个进程中实现操作一级或指令一级的并行处理。 高性能处理器在指令处理方面采用了一系列关键技术,大多是围绕指令级并行处理这个核心问题发挥作用的。,下面通过两个例子来说明指令级并行性的特点和含义: (1)Add R1R12 (2) Add R1R13 Sub C2C2C1 并行度=3 Sub R3R1R2 并行度=1 Load C350R2 Store R0R3 在上面的例子中,(1)的三条指令是互相独立的,它们之间不存在数据相关,所以可以并行(同时)执行。即(1)存在指令级并行性,其并行度为3(可并行执行三条指令)。 (2)的情况则完全不同,在其三条指令中,第二条要用到第一条的结果,第三条又要用到第二条的结果,它们都不能并行执行。即(2)的并行度为1,指令间没有并行性。,与指令级并行性有关的一个指标是每条指令的时钟周期数CPI(Clock Per Instruction),它是在流水线中执行一条指令所需的时钟周期数。CPI随指令的不同而异,比如在RISC机器中,大多数指令的CPI等于1,但有些复杂指令需要几个时钟周期才能执行完,则其CPI大于1。 通常可以用平均CPI来说明一个处理器的速度性能。平均CPI是把各种类型的指令所需的时钟周期数按一定的混合比(出现的频度)加权后计算得到。它同另一种表示处理器速度的指标MIPS(每秒百万条指令)的关系是:f/CPI=MIPS,其中f为时钟频率(以MHz为单位)。例如,f=300MHz,CPI=0.6,则处理器的速度可达300/0.6=500MIPS.,需要说明的是,在单处理器中挖掘指令级并行性,实现指令级并行处理,提高系统总体运算速度,是通过处理器和编译程序的结合来实现的,对于用户是完全透明的,用户不必考虑如何使自己编写的程序去适应指令级并行处理的需要,即处理器中实现指令级并行处理是由编译程序和处理器硬件电路负责实现的。 目前,已有几种典型的开发指令级并行的系统结构,如超标量结构、超长指令字结构及超级流水线结构。,16.1.3 超标量技术,在早期采用流水线方式的处理器中只有一条流水线,它是通过指令的重叠执行来提高计算机的处理能力的。而在采用超标量结构的处理器中则有多条流水线,即在处理器中配有多套取指、译码及执行等功能部件,在寄存器组中设有多个端口,总线也安排了多套,使在同一个机器周期中可以向几条流水线同时送出多条指令,并且能够并行地存取多个操作数和操作结果,执行多个操作。这就是所谓超标量技术(Superscalar)。 采用超标量结构的处理器中流水线的条数称为超标度。例如,Pentium处理器中的流水线为两条,其超标度为2;P/P处理器的超标度为3等。,采用超标量技术,不仅要考虑单条流水线中的重叠执行,还要考虑在流水线之间的并行执行,其“相关”问题比单流水线的处理器要复杂得多。这需要通过专门的技术来解决。 超标量处理器工作的大致过程是:首先,取指部件从指令Cache中取出多条指令,并送至分发部件的指令缓冲器中,这个指令缓冲器有时又称为指令窗口;在每个机器周期,分发部件都对指令窗口进行扫描,一旦发现可以并行发送的指令,并且和这些指令相对应的功能部件是空闲的,则同时将它们送到功能部件去处理。,一般地说,超标量计算机具有如下特点: (1) 处理器中配有多套取指、译码及执行等功能部件,采用多条流水线进行并行处理; (2)能同时将可以并行执行的指令送往不同的功能部件,从而达到每一个时钟周期启动多条指令的目的; (3) 对程序代码的顺序可通过编译程序进行静态调度,或通过处理器硬件在程序执行期间进行动态调度,以达到并行执行指令的目的。 从原理上讲,超标量技术主要是借助硬件资源的重复来实现空间上的并行操作。,16.1.4 超长指令字结构,超长指令字VLIW(Very Long Instruction Word)技术是1983年由美国耶鲁大学的Josh Fisher在研制ELI-512机器时首先实现的。 采用VLIW技术的计算机在开发指令级并行上与上面介绍的超标量计算机有所不同,它是由编译程序在编译时找出指令间潜在的并行性,进行适当调整安排,把多个能并行执行的操作组合在一起,构成一条具有多个操作段的超长指令,由这条超长指令控制VLIW机器中多个互相独立工作的功能部件,每个操作段控制一个功能部件,相当于同时执行多条指令。 VLIW指令的长度和机器结构的硬件资源情况有关,往往长达上百位。,VLIW技术的主要特点: (1) 只有一个控制器(单一控制流),每个时钟周期启动一条长指令; (2) 超长指令字被分成多个控制字段,每个字段直接地、独立地控制特定的功能部件; (3) 含有大量的数据通路及功能部件,由于编译程序在编译时已考虑到可能出现的“相关”问题,所以控制硬件较简单; (4) 在编译阶段完成超长指令中多个可并行执行操作的调度。,16.1.5 超级流水线技术,资源重复和流水线技术是开发计算机并行性的两个基本手段。通过上面介绍的超标量技术和超长指令字结构可以看到,这两种技术主要是依赖资源的重复来开发指令级并行性,从而提高处理器性能的。 而超级流水线技术则是通过另一种途径来改进处理器执行程序的能力。 一个程序在计算机中总的执行时间T可用如下公式表示: T=N*CPI*t 式中N是被执行程序的指令总条数,CPI是每条指令所需的平均时钟周期数,t是时钟周期。,可见,改变CPI和改变时钟周期t可能对机器速度产生等效的影响。虽然不可能孤立地通过改变N、CPI和时钟周期t中的某一因素来改进处理器的性能,但是,不同体系结构对于这三个因素的侧重程度是可以存在差异的。 超级流水线技术是从减小t着手的,即它是把执行一条指令过程中的操作划分得更细,把流水线中的流水级分得更多,由于每个操作要做的事情少了,可以执行得更快些,因而可以使流水线的时钟周期缩短,即可以把上式中的 t 缩短。这样的流水线就是超级流水线(Superpipeline)。 如果设法把t缩短一半,则相当于起到了CPI减少一半的作用。如果一个处理器具有较高的时钟频率和较深的流水级,那么就称它采用了超级流水线技术。,超级流水线技术的实现方式一般是将通常流水线中的若干流水级进一步细分为两个或更多个流水小级,然后,通过在一个机器时钟内发送多条指令,在一定的流水线调度和控制下,使得每个流水小级和其他指令的不同流水小级并行执行,从而在形式上好像每个流水周期都可以发送一条指令。 对于超级流水线结构的处理器,其机器时钟和流水线时钟是不同的。在这种情况下,流水线时钟频率通常是机器时钟频率的整数倍,具体数值决定于流水级划分为流水小级的程度。 例如,在MIPS R4000处理器中,流水线时钟频率就是外部机器时钟频率的两倍。,16.1.6 RISC技术,1. RISC结构对传统计算机结构的挑战 在计算机技术的发展过程中,为了保证同一系列内各机种的向前兼容和向后兼容,后来推出机种的指令系统往往只能增加新的指令和寻址方式,而不能取消老的指令和寻址方式。于是新设计计算机的指令系统变得越来越庞大,寻址方式和指令种类越来越多,CPU的控制硬件也变得越来越复杂。 然而往基本的简单指令集中不断添加进去的一些复杂指令,其使用频率却往往很低。人们研究了大量的统计资料后发现:复杂指令系统中仅占20%的简单指令,竟覆盖了程序全部执行时间的80%。,这是一个重要的发现,它启发人们产生了这样一种设想:能否设计一种指令系统简单的计算机,它只用少数简单指令,使CPU的控制硬件变得很简单,能够比较方便地使处理器在执行简单的常用指令时实现最优化,把CPU的时钟频率提得很高,并且设法使每个时钟周期能完成一条指令,从而可以使整个系统的性能达到最高,甚至超过传统的指令系统庞大复杂的计算机。 用这种想法设计的计算机就是精简指令集计算机,简称RISC(Reduced Instruction Set Computer)。它的对立面传统的指令系统复杂的计算机被称作复杂指令集计算机,简称CISC (Complex Instruction Set Computer)。,为了说明RISC的基本特性,再看一下前面给出的计算程序总的执行时间T的公式:T=N*CPI*t。实际上,为了减少程序的执行时间,CISC机器采取的办法是减少N,但要略微增加CPI,同时可能增加t;而RISC机器采取的办法是减少CPI和t,但通常会引起N的增加。 1980年,Patterson和Ditzel首先提出了精简指令集计算机RISC的概念,并由Patterson和Sequin领导的一个小组于1981年在美国加州大学伯克莱分校首先推出第一台这种类型的机器RISC机。 RISC结构是计算机技术发展中的重要变革,对传统的计算机结构的技术和概念提出了挑战。RISC不仅代表着一类计算机,它的特性、所涉及的关键技术还代表着一种设计哲学。,概括而言,RISC机器的主要特点有: (1) 指令种类少; (2) 寻址方式少; (3) 指令格式少,而且长度一致; (4) 除存数(Store)和取数(Load)指令外,所有指令都能在不多于一个CPU时钟周期的时间内执行完毕; (5) 只有存数(Store)和取数(Load)指令能够访问存储器; (6) RISC处理器中有较大的通用寄存器组,绝大多数指令是面向寄存器操作的,通常支持较大的片载高速缓冲存储器(Cache);,(7) 完全的硬连线控制,或仅使用少量的微程序; (8) 采用流水线技术,并能很好地发挥指令流水线的功效; (9) 机器设计过程中,对指令系统仔细选择,采用优化的编译程序,以弥补指令种类减少后带来的程序膨胀的弊病; (10) 将一些功能的完成从执行时间转移到编译时间,以提高处理器性能。 * RISC机并没有公认的严格定义,以上只是大多数RISC机具有的特点。有的机器虽然有其中的几条不符合,但仍称作RISC机。,16.2 高性能微处理器举例,16.2.1 64位处理器Alpha 21064,Alpha 21064是Alpha处理器系列的首次实现。其组成结构框图如图16.2所示。 图16.2 Alpha芯片组成结构框图,Alpha 21064的主要性能参数如下: (1) 字长64位,外部数据通道64/128位; (2) 32位物理地址,可直接寻址的物理存储空间为4GB; (3) 64位虚拟地址,使虚拟存储空间可达161018B; (4) 分别有8KB的指令高速缓存和8KB的数据高速缓存; (5) 整数流水线:7级流水线; (6) 浮点流水线:10级流水线; (7) 片内时钟频率200MHz,外部时钟频率400MHz,峰值速度400MIPS。,由图16.2可见,Alpha 21064处理器由四个独立的功能部件(I盒、E盒、F盒及A盒)及片上高速缓存组成,主要包括: (1) 中央控制部件I box(I盒); (2) 整数执行部件 E box(E盒); (3) 浮点部件F box(F盒); (4) 地址转换和装入/存储部件 A box(A盒); (5) 指令高速缓存(8KB)和数据高速缓存(8KB)。,下面对Alpha 21064的各组成部件做概要说明。 1. 片内高速缓存 Alpha 21064片内分开设立两个高速缓存。一个为指令高速缓存,包含指令转移历程表、标志及指令代码。指令高速缓存的大小为8K字节;另一个为数据高速缓存,大小也为8K字节。此外,还允许在片外配置高速缓存(第二级高速缓存)。 2. 四个功能部件 (1) 整数部件。整数部件称为E盒,即常规定点运算部件,包括加法器、乘法器、移位器及逻辑运算部件。此外,整数部件还有一个由32个64位整数寄存器构成的整数寄存器堆。,(2) 浮点部件。浮点部件称为F盒,即浮点运算器,包括加法器、乘法器和专门的浮点除法器。 (3) 地址转换和装入/存储部件。地址转换和装入/存储部件称为A盒,负责将整数/浮点数装入整数寄存器/浮点寄存器,或者将寄存器中的数写入数据高速缓存。 (4) 控制部件。控制部件称为I盒,它采用了超标量流水线技术。Alpha处理器采用多级流水,并分设两条流水线:整数流水线及浮点流水线。从预取指令开始,随后进行资源冲突分析,通过流水线控制,使指令按流水处理方式执行。,3. 总线接口部件 Alpha处理器的总线接口部件允许用户配置64位或128位的外部数据通道,调整所需要的外部高速缓存容量和访问时间,控制总线接口部件的时钟频率,使用TTL电平或ECL电平等。 Alpha是真正的64位体系结构。它的所有寄存器都是64位宽。它绝不是扩展成64位的32位体系结构。 Alpha的设计目标是高性能、长寿命并能运行多种操作系统。,16.2.2 Itanium(安腾)处理器,Itanium处理器的基本设计思想是: (1)提供一种新的机制,利用编译程序和处理器协同能力来提高指令并行度。采用创新的技术充分利用编译程序提供的信息和调度能力来提高指令并行度。 (2)简化芯片逻辑结构,为提高主频和性能开辟道路。信守工程设计上的一条基本原则,即“不是越复杂越好,而是越简捷越好”。事实上,简捷的构思比复杂的构思更困难。 (3)提供足够的资源来实现EPIC,包括存储编译程序提供的信息以及提高并行计算效率所需的处理单元、高速缓存和其他资源。 (4)充分利用丰富的寄存器资源,采用寄存器轮转技术,让指令按顺序循环使用寄存器,使得处理器在非常繁忙的情况下也不会出现寄存器不足的情况。,Itanium处理器能够提供远比RISC处理器丰富得多的资源,后继推出的Itanium处理器比前期的Itanium处理器所提供的资源还有进一步增加。图16.3 展示了了Itanium 2处理器的外观,图16.4 给出了Itanium 2的组成结构方框图。 Itanium 2的晶体管数已达214M (2.14亿)只,主频1GHz,线宽(工艺)0.18 m,系统总线接口128位,片内3级缓存(L1 Cache 为32KB,L2 Cache为256KB,L3 Cache已达3MB),8级流水,指令/时钟周期(IPC)数为6,即每个时钟周期可以处理6条指令,片内寄存器数达328个等。,图16.3 Itanium 2 外观,图16.4 Itanium 2的框图,Itanium 处理器具有64位内存寻址能力,能提供近180GB物理内存。当处理非常庞大的数据集时,这种巨大的物理内存空间对于服务器应用是非常重要的。 由于该处理器有充裕的并行处理能力,其内部有9个功能通道(Itanium 2为11个),包括2个整数通道(I)、2个浮点通道(F)、3个分支单元(B)、2个存取单元(M),所以对于执行代码中出现的分支,处理器采用了一种非常有趣的处理方式:同时并行执行分支判断、左分支和右分支。 当分支判断执行完毕后,根据分支判断的结果,放弃没有被转向的分支,继续执行保留的分支。这样就避免了由于分支预测错误造成的流水线清空这种大大影响系统执行效率的操作。,16.3 多核处理器简介,16.3.1 复杂单处理器结构所遇到的挑战 在过去几十年里,处理器的设计主要采用复杂单处理器结构,设计人员一直通过不断提高处理器结构的复杂度和提升工作频率来改进处理器的运算能力。 随着半导体制造工艺的不断发展,硅片上能够利用的晶体管和连线资源越来越多。同时,随着晶体管特征尺寸的不断减小,晶体管本身的延迟越来越小,而硅片上的互联线延迟相对于门延迟则不断加大,因此设计人员越来越倾向于将片上的晶体管资源分开管理,借此平衡门电路的延迟和互联线的延迟。,另一方面,处理器晶体管数量的不断增长及运行频率的提升导致了处理器的功耗越来越大,甚至已经到了无法容忍的程度。芯片的功耗在很大程度上影响着芯片的封装、测试及系统的可靠性。对于目前的主流处理器来说,芯片产生的热量已经严重影响到处理器工作频率的提高,这个问题甚至被业界人士认为是对摩尔定律的一大挑战。,16.3.2 多核处理器的出现,在公元2000年以前,由于功耗问题还没有特别严重地影响到处理器的设计,所以设计人员利用晶体管的方案一直是复杂的单处理器结构,并在此基础上相继推出了多种复杂的微体系结构设计,如指令转移预测、寄存器重命名、动态指令调度和复杂的Cache结构等。然而,这种复杂的单处理器结构所带来的性能上的提高相比以前已经大大降低了。 事实说明,必须采用新的处理器设计思路,即通过在单个芯片上放置多个相对简单的处理单元,通过片上互联网络将这些处理单元连接起来,充分利用应用程序的并行性来提高处理器的运算能力,而不是单纯地依靠提升单个处理器的硬件复杂度和工作频率来提高处理器性能。这就是多核处理器的基本设计理念,并由此导致了多核处理器的出现。,产生多核处理器设计理念的基本原因: 复杂单处理器结构提高性能的途径通常是充分地利用负载程序内在的指令级并行性(ILP),采用的方法是加大流水线的发射宽度、采用更加激进的推测执行和更为复杂的Cache结构。这样做的结果是使处理器的硬件复杂度越来越高,从而导致消耗庞大的晶体管资源和大量的设计验证时间。 目前负载程序的ILP的利用已渐渐逼近极限,而负载程序的另一种并行性线程级并行性(TLP)则无法在复杂单处理器结构中得到有效利用。 虽然晶体管特征尺寸的减小会使晶体管的延迟进一步缩小,但片内互连线延迟占每一级流水线的延迟比重则越来越大。, 目前一些高性能的复杂单处理器的功耗已经高达上百瓦特了,这样巨大的能量密度对于晶体管工作的可靠性和稳定性带来极不利的影响。 上述原因导致了设计人员必须把目光转向新型的处理器结构单芯片多核处理器结构(Single-Chip Multi Processor),简称CMP结构。 CMP结构在单芯片上放置多个彼此独立的处理器核心,并且通过片上互联网络将这些核心连接起来,使得这些处理器单元之间可以高带宽、低延迟地交换数据。CMP的结构特点可以很好解决前述复杂单处理器结构的技术瓶颈,给现代处理器的设计展现出一片光明前景。,16.3.3 多核处理器结构的主要特点,1. 降低了硬件设计的复杂度 CMP可以通过重用先前的单处理器设计作为处理器核,这样可以仅需微小的改动就可以搭建起一个高效的系统。而复杂单处理器的设计为了达到很少的性能上的提高就需重新设计整个控制逻辑和数据通路,这些控制逻辑由于紧密耦合而异常复杂,因此需要耗费设计人员大量时间和精力。 2. 充分利用应用程序的并行性 复杂单处理器结构通过多发射和推测执行来利用ILP以提高处理器性能,但它无法利用应用程序的线程级并行性(TLP)。相反,CMP将注意力集中于TLP的有效利用,通过多处理器核并行执行应用程序的多个线程来提高处理器的整个性能。,3.降低全局连线延迟 晶体管特征尺寸的缩小导致了互连线延迟占据处理器周期延迟的比例在增大。在复杂单处理器结构中,由于各个功能模块紧密地耦合在一起,运算部件的结果总线需要把运算结果传递到许多模块,由于多发射的原因,造成模块之间频繁地交换数据,从而导致处理器整体性能下降。 相反,CMP结构的各处理器核是松散地耦合在一起的,处理器核之间的数据交换通过片上互联网络来完成,虽然全局连线延迟的增大同样会损失CMP的性能,但是相比复杂单处理器结构,这种交换共享数据的行为并不是经常发生的,因此性能损失相对较小。 另外,通过软件的方法仔细地分配各处理器核上的数据也可以减少需要在核间交互共享数据的频度,从而获得处理器整体性能的提升。,4. 具有良好的功耗有效性 复杂单处理器的紧密耦合结构及频繁的全局数据交换使其受到了难以逾越的功耗制约。而CMP结构利用多个处理器核并发执行多个线程,这样就减轻了每个处理器核的性能压力,所以CMP不需要设计象复杂单处理器那样明显高功耗的复杂硬件。 CMP也不需要象复杂处理器那样竭力提高运行频率来换取高性能。相反,可以适当降低空闲处理器核的工作频率,这样虽然牺牲了单处理器核的性能,但CMP的整体性能并不会受到明显影响,即CMP结构具有较好的功耗有效性。,16.4 现代PC机主板典型结构,主板(Motherboard)是PC机系统的核心组成部件,它包括了构成现代PC机的一系列关键部件和设备,如CPU(或CPU插座)、主存、高速缓存、芯片组(Chipset)及连接各种适配卡的扩展插槽等。 采用先进的主板结构及设计技术,是提高现代PC机整体性能的重要环节之一。 图16.5给出了一个PC机主板的外观图示。,图16.5 PC机主板外观图示,16.4.1芯片组、桥芯片及接口插座,在微型计算机系统中,芯片组实际上就是除CPU外所必需的系统控制逻辑电路。在微型计算机发展的初期,虽然没有单独提出芯片组的概念和技术,但已具雏形,如IBM PC/XT 系统中的各种接口芯片,如并行接口芯片8255A、串行接口芯片8251、定时/计数器8253、中断控制器8259及DMA控制器8237等。 现代微型计算机中的芯片组就是在这些芯片的基础上,不断完善与扩充功能、提高集成度与可靠性、降低功耗而发展起来的。用少量几片VLSI芯片即可完成主板上主要的接口及支持功能,这几片VLSI芯片的组合就称为芯片组。,采用芯片组技术,可以简化主板的设计,降低系统的成本,提高系统的可靠性,同时对今后的测试、维护和维修等都提供了极大的方便。 芯片组有的由一块大规模集成电路芯片组成,有的由两块芯片组成,有的由三块或更多芯片组成。它们在完成微型计算机所需要的逻辑控制的功能上是基本相同的,只是在芯片的集成形式上有所区别。 在现代微型计算机中,芯片组多数是由两块称为“北桥”及“南桥”的桥芯片组成的。,北桥芯片也称为系统控制器,负责管理微处理器、高速缓存、主存和PCI总线之间的信息传送。该芯片具有对高速缓存和主存的控制功能,如Cache的一致性、控制主存的动态刷新以及信号的缓冲、电平转换和CPU总线到PCI总线的控制协议的转换等功能。 南桥芯片的主要作用是将PCI总线标准(协议)转换成外设的其他接口标准,如IDE接口标准、ISA接口标准、USB接口标准等。此外,还负责微型计算中一些系统控制与管理功能,如对中断请求的管理、对DMA传输的控制、负责系统的定时与计数等,即完成传统的中断控制器8259、DMA控制器8237以及定时/计数器8253的基本功能。,早期通常是将微处理器直接焊在主板上,而现代微处理器则往往是通过一个焊接在主板上的符合一定标准的接口插座与主板相连,这样便于在不更换主板的前提下就可以升级微处理器,以提高整机的性能价格比。 常见的微处理器接口插座的主要类型有Socket5、Socket7、Socket8、Socket370等。 Pentium/ 微处理器则采用了与过去微处理器不同的封装形式,在主板上采用了Slot1接口标准,该接口标准一改过去将微处理器贴在主板上的方法,而是通过SEC封装形式将微处理器模块插接到主板的Slot1插槽内,该插槽在外形上类似PCI总线插槽,但引脚定义、内部连接则完全不同。,16.4.2 Pentium PC主板结构,Pentium PC主板结构框图如图16.6所示。该图中插在Socket7插座上的是Pentium 75200或Pentium MMX处理器。 由该图可见,整个主板结构是由CPU总线、PCI总线及ISA总线构成的三层次总线结构。,图16.6 Pentium PC主板结构框图,CPU总线是一个64位数据线、32位地址线的同步总线,总线时钟频率为66.6MHz。该总线连接4128MB的主存。 扩充主存容量是以内存条的形式插入主板SIMM或DIMM插座来实现的。另外,CPU总线还接有256512KB的第二级Cache。主存与Cache控制器芯片用来管理CPU对主存和Cache的存取操作。CPU是这个总线的主控者,实际上可以把该总线看成是CPU引脚信号的延伸。 PCI总线用于连接各种高速的I/O设备模块,如图形显示适配器、硬盘控制器、网络接口控制器等。通过“桥”芯片上面与更高速的CPU总线相连,下面与低速的ISA总线相连。,Pentium PC使用ISA总线与低速I/O设备相连。在“南桥”芯片的控制下,ISA总线可支持7个DMA通道和15级可屏蔽硬件中断。此外,南桥控制逻辑还通过主板上的X总线(也称片级总线)与时钟/日历、CMOS RAM电路和键盘、鼠标控制器(8042微处理器)以及ROM BIOS芯片相接。 支持这种Pentium PC主板的芯片组是Intel 82430系列(简称430系列)。该系列的芯片组已先后开发出LX、NX、FX、HX、VX、TX六个版本,每个版本的芯片组都是由北桥芯片和南桥芯片组成。,16.4.3 Pentium-1GHz处理器典型主板布局,图16.7给出的是使用Pentium-1GHz处理器的典型主板布局图。从中可以直观地看到现代PC机主板及微型计算机系统的组成结构情况。,图16.7 Pentium-1GHz处理器典型主板布局图,Pentium-1GHz处理器主板采用VIA Apollo Pro266芯片组,包括VT8633(北桥)和VT8233(南桥),提供了性能优越、功能强大、性价比优良的PC机硬件操作平台。 该系列主板还采用了ITE IT8712F I/O芯片,提供了一个智能卡读写器(SCR)接口。该系列主板还提供其他先进的功能,如网络唤醒功能、调制解调器唤醒功能、ACPI电源管理模式及AGP Pro插槽等。 本系列主板提供了灵活多样的性能组合方式,可选配置包括:AC97软件音效Codec(编码解码器)、高级音效和板载网络接口。另外,该系列主板还提供了防止电脑病毒(如CIH病毒)保护BIOS免遭破坏的功能、加快电脑启动速度的Boot Easy等新型技术。,该系列的主板中的北桥芯片(VT 8633)负责管理CPU、高速缓存(Cache)、主存和PCI总线之间的信息传输,并具有对主存和高速缓存的控制功能,如维持Cache的一致性、控制主存的动态刷新以及CPU总线到PCI总线的控制协议转换等功能。另外,由图16.12可见,VT8633还提供了一个32位、66MHz的高级图形端口AGP,用以支持高性能的视频显示。 南桥芯片(VT8233)的基本功能是将PCI总线标准转换成其他类型的外设接口标准,如ISA总线接口标准、USB接口标准、IEEE1394以及IDE接口标准等。 另外,VT8233还负责完成系统中的中断请求的管理、DMA传送的控制以及定时/计数等功能。,第16章 作业,P498 1题 2题 3题 4题 8题 9题,
展开阅读全文