1、微机原理与接口技术根据微处理器的最新发展(超线程技术、双核技术,从Intel系列微处理器整体着眼,又落实到最基本、最常用的8086处理器,介绍了微机系统原理、Intel 系列微处理器结构、8086 指令系统和汇编语 言程序设计、主存 储器及与CPU 的接口、输入输出、中断以及常用的微机接口电路和数模(D/A转换与模数 (A/D转换接口。超线程技术(HT 即超线程技术超线程技术就是利用特殊的硬件指令,把两个逻辑内核模拟成两个物理芯片,让单个处理器都能使用线程级并行计算,进而兼容多线程操作系统和软件,减少了CPU的闲置时间,提高的CPU的运行效率。1效能提升一般很多人都会认为,采用超线程技术,就能
2、使得系统效能大幅提升,但是事实真是如此么?不要忘了我 们前面 说到的超线程技术实现 的必要条件,这可是超线程技术发挥应有效能的前提条件。除了操作系统支持之外,还必须要软件的支持。从这点我们就可以看出,就软件现状来说,支持双处理器技术的软件毕竟还在少数。对于大多数软件来说,由于设计的原理不同,还并不能从超线程技术上得到直接的好处。因为超线程技术是在线程级别上并行处理命令,按线程动态分配处理器等资源。该技术的核心理念是“ 并行度(Parallelism”,也就是提高命令执行的并行度、提高每个时钟的效率。这就需要软件在设计上 线程化,提高并行处理的能力。而PC上的应用程序几乎没有为此作出相应的优化,
3、采用超线程技术并不能获得效能的大幅提升。上面说的只是软件支持的现状,操作系统在这个方面则没有太大的问题,毕竟Windows的某些版本、Linux都是支持多处理器的操作系统。并且随着Intel 支持超线程技术的处理器面世之后,凭借Intel 处 理器的号召力 ,必然会引起应用程序设计 上的改变,必然会有更多的支持并行线程处理的软件面世,届时,当然是支持超线程处理器大显身手的时候了。那时候,普通用户才能够从超线程技术中得到最直接的好处。2必然性提升CPU性能需要。尽管提高CPU的时钟频率和增加 缓存容量后的确可以改善CPU性能 ,但这样的CPU性能提高在技术上存在较大的 难度。 实际上在应用中基于
4、很多原因,CPU的执行单元都没有被充分使用。如果 CPU不能正常读取数据(总线/ 内存的瓶颈,其执行单元利用率会明显下降。另外就是大多数执行线程缺乏ILP(Instruction-Level Parallelism,多种指令同时执 行支持。这些都造成了CPU的性能没有得到全部的发挥。因此,Intel则采用另一个思路去提高CPU的性能,让 CPU可以同时执行多重线程,就能够让CPU发挥更大效率 ,即所谓“超线程(Hyper-Threading,简称“HT” 技术。超线程技术是在一颗CPU同时执行多个程序而共同分享一颗CPU内的资源,理论上要像两颗CPU一样在同一时间执行两个线程,P4 处理器需要
5、多加入一个Logical CPU Pointer(逻辑处理单元。因此新一代的 P4(奔腾4 HT的面 积比以往的P4增大了5%。而其余部分如 ALU(整数运算单元、FPU(浮点运算单元、L2 Cache(二级缓 存则保持不 变,这些部分是被分享的。虽然采用超线程技术能同时执行两个线程,但它并不象两个真正的CPU那样,每个CPU都具有独立的资源。当两个 线程都同时需要某一个资源时,其中一个要暂时停止,并让出资源,直到这些资源闲置后才能继续。因此超线程的性能并不等于两颗CPU的性能。英特 尔P4 超线程有两个运行模式,Single Task Mode(单任务模式及Multi Task Mode (
6、多任务模式,当程序不支持Multi-Processing(多 处理器作业时 ,系统会停止其中一个逻辑CPU的运行,把资源集中于单个逻辑CPU中,让单线程程序不会因其中一个逻辑CPU 闲置而减低性能,但由于被停止运行的逻辑CPU还是会等待工作,占用一定的资源,因此Hyper-Threading CPU运行 Single Task Mode程序模式时,有可能达不到不带超线程功能的CPU性能,但性能差距不会太大。也就是说,当运行单线程运用软件时,超线程技术甚至会降低系统性能,尤其在多线程操作系统运行单线程软件时容易出现此问题。需要注意的是,含有超线程技术的CPU需要芯片组、软件支持,才能比较理想的发
7、挥该项技术的优势。操作系 统如:Microsoft Windows XP、Microsoft Windows 2003,Linuxkernel 2.4.x 以后的版本也支持超线程技术。支持超线程技术的芯片组包括如:Intel芯片 组:845、845D和 845GL是不支持支持超线程技术的;845E 芯片组自身是支持超线程技术的,但许多主板都需要升级BIOS才能支持;在845E之后推出的所有芯片组都支持支持超线程技术,例如845PE/GE/GV以及所有的865/875 系列以及915/925 系列芯片组都支持超线程技术。A芯片 组:P4X266、P4X266A、P4M266、P4X266E和P4
8、X333是不支持支持超线程技术的,在P4X400之后推出的所有芯片组都支持支持超线程技术,例如P4X400、P4X533 、PT800、PT880、PM800和PM880都支持超线程技术。SIS芯片组:SIS645、SIS645DX、SIS650、SIS651和早期SIS648 是不支持支持超 线程技术的;后期的SIS648、SIS655 、SIS648FX、SIS661FX、SIS655FX、SIS655TX、SIS649和SIS656则都支持超线程技术。ULI芯片组:M1683和M1685都支持超线程技术。ATI芯片组:ATI在Intel 平台所推出的所有芯片组都支持超线程技术,包括Rad
9、eon 9100 IGP、Radeon 9100 Pro IGP和RX330。nVidia芯片组:即将推出的nForce5系列芯片 组都支持超线程技术。3工作原理在处理多个线程的过程中,多线程处理器内部的每个逻辑处理器均可以单独对中断做出响应,当第一个逻辑处理器跟踪一个软件线程时,第二个逻辑处理器也开始对另外一个软件线程进行跟踪和处理了。另外,为了避免CPU处理资源冲突,负责处理第二个线程的那个逻辑处理器,其使用的是仅是运行第一个线程时被暂时闲置的处理单元。例如:当一个逻辑处理器在执行浮点运算(使用处理器的浮点运算 单元时,另一个逻辑处理器可以执行加法运算(使用处理器的整数运算单元。这样做,无
10、疑大大提高了处理器内部处理单元的利用率和相应的数据、指令处吞吐能力。对于Prescott处理器,发热量大也主要是因为它。4前提条件需要CPU支持正式支持超线程技术的CPU 有Pentium4 3.06GHz 、2.40C、2.60C、2.80C 、3.0GHz、3.2GHz以及Prescott核心的Pentium4处理器 ,还有部分型号的Xeon。2009年,Intel 新一代 顶级处 理器Core i7也支持超线程技术,超线程技术令Core i7可以由四核模拟出八核。主板芯片组支持正式支持超线程技术的主板芯片组的主要型号包括Intel的875P,E7205,850E,865PE/G/P, 8
11、45PE/GE/GV,845G(B-stepping,845E。875P,E7205,865PE/G/P,845PE/GE/GV芯片组均可正常支持超线程技术的使用,而早前的845E以及850E芯片组只要升级BIOS就可以解决支持的问题;2009年,与Core i7相配的X58 芯片 组也支持超线程技术。SIS方面有SiS645DX(B版、SiS648(B版、SIS655 、SIS658、SIS648FX;威盛方面有P4X400A、P4X600、P4X800。主板BIOS支持主板厂商必须在BIOS中支持超线程才行。操作系统支持微软的操作系统中Windows XP专业版,Windows Vista
12、,Windows 7,Windows server 2003,Windows Server 2008支持此功能,而在Windows 2000上实现对超线程支持的计划已经取消了。另外,系统核心代号高于2.4.x的Linux系统也支持超线程技术。应用软件支持一般来说,只要能够支持多处理器的软件均可支持超线程技术,但是实际上这样的软件并不多,而且偏向于图形、视频处理等专业软件方面,游戏软件极少有支持的。应用软件有 Office 2000、OfficeXP等。另外Linuxkernel 2.4.x以后的版本也支持超线程技术。小结超线程技术就是利用特殊的硬件指令,把两个逻辑内核模拟成两个物理芯片,让单个
13、处理器都能使用线程级并行计算,从而兼容多线程操作系统和软件,提高处理器的性能。操作系统或者应用 软件的多线程可以同时运行于一个HTT 处理器上,两个逻辑处理器共享一组处理器执行单元,并行完成加、乘、 负载等操作。 这样就可以使得运行性能提高30%,这是因为在同一时间里,应用程序可以使用芯片的不同部分。虽然单线程芯片每秒钟能够处理成千上万条指令,但是在任一时刻只能够对一条指令进行操作。而“ 超线程”技术可以使芯片同时进行多线程处理,使芯片性能得到提升。5优缺点HT技术优 点超线程技术的优势在于同时进行多任务批处理工作,尽管支持超线程技术的软件不多,也只有少数的软件可以享受到由超线程技术带来的性能
14、提升,但是这符合今后软件等技术的发展方向,今后更多的软件将受益于超线程技术。从目前来看,部分客户发可以发觉在运行某些特定软件时,超线程技术让系统有了30% 的性能提升,为超线程技术优化的软件都能够享受到超线程技术的好处。客户同时运行两个以上的软件软件时候,将可以明显的感受到这两个软件的性能都得到提升相比关闭超线程技术的情况下都有很大的提升,超线程技术的效率优势只有在多任务操作时候才能得到发挥。另外支持超线程技术的Windows XP操作系统, 其中的很多系统软件都已经针对超线程技术优化过,因此在使用Windows操作系 统的时候可以很好的享受到超线程技术带来好处。HT技术缺点因为超线程技术是对
15、多任务处理有优势,因此当运行单线程运用软件时,超线程技术将会降低系统性能,尤其在多线程操作系统运行单线程软件时将容易出现此问题( 这 也是在 WindowsXP中运行显卡的测试软件时候,得分下降了一点。在打开超线程支持后,如果处理器以双处理器模式工作,那么处理器内部缓存就会被划分成几区域,互相共享内部资源。对于不支持多处理器工作的软件在双处理器上运行时出错的概率要比单处理器上高很多。因为很多工作站软件为Windows 2000操作系统进行过优化,但是采用Windows2000这样的操作系统的工作站无法完全利用超线程技术的优势,也带来不了高的工作效率。通过上面的解答,我们应该知道了超线程技术的确
16、实对系统性能提升有好处,但是这仅对多任务处理的时候有优势,在进行单各任务处理的时候,优势表现不出来,而且因为打开超线程,处理器内部缓存就会被划分成几区域,互相共享内部资源,造成单个的子系统性能下降。个人 认为,用户在进行单任务操作时候,没有必要打开超线程,只有多任务操作时候可以适时打开超线程,享受超线程技术带来的好处。6超线程起源超线程(HT是 Intel在奔腾和现在流行的酷睿 i3 i7 系列具有的一项功能,这项技术能显著提高计算机在多任务并行时的处理能力。但大多数人所使用的CPU并不具 备这个功能。超线程技术最早出现于奔腾4系列的xeon服务器处理器上双核技术双核简单来说就是2个核心,核心
17、(core又称为内核,是 CPU最重要的组成部分。CPU中心那块隆起的芯片就是核心,是由单晶硅以一定的生 产工艺制造出来的,CPU 所有的计算、接受/存储命令、处理数据都由核心执行。各种CPU核心都具有固定的逻辑结构,一级缓存、二级缓 存、 执行单元、指令 级单元和 总线接口等逻辑单元都会有科学的布局。从双核技术本身来看,到底什么是双内核?毫无疑问双内核应该具备两个物理上的运算内核,而这两个内核的设计应用方式却大有文章可作。据现有的资料显示,AMDOpteron处理器从一开始 设计时就考虑到了添加第二个内核,两个CPU内核使用相同的系统请求接口SRI 、HyperTransport技术和内存控
18、制器,兼容90纳米单内核处理器所使用的940引脚接口。而英特尔的双核心却仅仅是使用两个完整的CPU封装在一起,连接到同一个前端总线上。可以说,AMD的解决方案是真正的“双核”,而英特尔的解决方案则是“ 双芯” 。可以设想,这样的两个核心必然会产生总线争抢,影响性能。不仅如此,还对于未来更多核心的集成埋下了隐患,因为会加剧处理器争用前端总线带宽,成为提升系统性能的瓶颈,而这是由架构决定的。因此可以说,AMD的技术架构为实现双核和多核奠定了坚实的基础。AMD直连架构 (也就是通过超传输技术让CPU内核直接跟外部I/O相连,不通过前端总线和集成内存控制器技术,使得每个内核都有自己的高速缓存可资遣用,
19、都有自己的专用车道直通I/O,没有资源争抢的问题,实现双核和多核更容易。而Intel是多个核心共享二级缓 存、共同使用前端总线的,当内核增多,核心的处理能力增强时,肯定要遇到堵的问题。简而言之,双核处理器就是基于单个半导体的一个处理器上拥有两个一样功能的处理器核心。换句话说, 将两个物理处理器核心整合入一个核中。企业IT 管理者们也一直坚持寻求增进性能而不用提高实际硬件覆盖区的方法。多核处理器解决方案针对这些需求,提供更强的性能而不需要增大能量或实际空间。双核心处理器技术的引入是提高处理器性能的有效方法。因为处理器实际性能是处理器在每个时钟周期内所能处理器指令数的总量,因此增加一个内核,处理器
20、每个时钟周期内可执行的单元数将增加一倍。在这里我们必须强调一点的是,如果你想让系统达到最大性能,你必须充分利用两个内核中的所有可执行单元:即让所有执行单元都有活可干!8086处理器Intel 8086是一个由Intel于1978 年所设计的16位微处理器芯片,是x86架构的鼻祖。不久 ,Intel 8088就推出了,拥有一个外部的8位数据总线,允许便宜的芯片用途。它是以8080和8085的设计为基础,拥有类似的寄存器组,但是数据总线扩充为16位。总线界面单元(Bus Interface Unit透过6字节预存(prefecth 的队列(queue 位指令给执行单元(Execution Unit
21、,所以取指令和执行是同步的,8086 CPU有20条地址 线,可直接寻址1MB 的存储空间,每一个存储单元可以存放一个字节(8位二进制信息。1简介Intel 8086拥有四个16位的通用寄存器,也能够当作八个8位寄存器来存取,以及四个16位索引寄存器( 包含了堆栈指标。 资料寄存器通常由指令隐含地使用,针对暂存值需要复杂的寄存器配置。它提供64K 8 位元的输出输入(或 32K 16 位元,以及固定的向量中断。大部分的指令只能够存取一个内存位址,所以其中一个操作数必须是一个寄存器。运算结果会储存在操作数中的一个寄存器。Intel 8086有四个内存区段(segment 寄存器,可以从索引寄存器
22、来设定。区段寄存器可以让 CPU 利用特殊的方式存取 1 MB内存。8086 把段地址左移 4 位然后把它加上偏移地址。大部分的人都认为这是一个很不好的设计,因为这样的结果是会让各分段有重叠。尽管 这样对组合语言而言大部分被接受(也甚至有用,可以完全地控制分段,使在编程中使用指针(如C编程语言变得困难。它导致指针的高效率表示变得困难,且有可能产生两个指向同一个地方的指针拥有不同的地址。更坏的是,这种方式产生要让内存扩充到大于 1 MB 的困难 。而 8086 的寻址方式改变让内存扩充较有效率。8086处理器的时钟频率介于4.77MHz(在原先的IBM PC频率和10 MHz之 间。 8086
23、没有包含浮点指令部分(FPU, 但是可以通过外接数学 辅助处理器来增强浮点计算能力。Intel 8087 是标准版本。2微处理器i8086处理器8086是Intel 系列的 16位微 处理器,芯片上有4万个晶体管,采用 NMOS工艺制造 ,用单一的 +5V电源,时钟频率为4.77MHz10MHz。8086有16根数据线和20根地址线,它既能处理16位数据,也能处理8位数据。可寻址的内存空间为1MB 。在取得IBM个人电脑部门敲定的重要销售合约之后 ,Intel 8088处理器不仅成为了IBM个人电脑的大脑,而且还让 IBM个人电脑成为新款畅销产品。为 此,Intel 8088处理器的成功,也将
24、英特尔进入“财富杂志500大企 业排行榜”, 财富杂志将英特尔评为“70年代最成功的企业” 之一。 Intel 8088晶体管数目约为2.9万颗。1978年英特尔公司生产的8086是第一个16位的微处理器。很快Zilog 公司和摩托罗拉公司也宣布计划生产Z8000和68000。这就是第三代微处理器的起点。8086微处理器最高主频速度为8MHz,具有16位数据通道,内存寻址能力为1MB。同时,英特尔还生产出与之相配合的数学协处理器i8087, 这两种芯片使用相互兼容的指令集,但intel8087指令集中增加了一些专门用于对数、指数和三角函数等数学计算的指令。人们将这些指令集 统一称之为 x86指
25、令集。虽然以后英特 尔又陆续生产出第二代、第三代等更先进和更快的新型CPU,但都仍然兼容原来的x86指令,而且英特尔在后续CPU的命名上沿用了原先的x86序列,直到后来因商标注册问题,才放弃了继续用阿拉伯数字命名。1979年,英特尔公司又开发出了8088。8086和8088在芯片内部均采用16位数据传输,所以都称为16位微处理器,但8086每周期能传送或接收16位数据,而8088每周期只能传输8位。因为最初的大部分设备和芯片是8位的,而8088的外部8位的数据传送、接收能与这些设备相兼容。 8088采用40针的DIP封装,工作频率为6.66MHz 、7.16MHz或8MHz,微处 理器集成了大
26、约29000个晶体管。8086和8088问世后不久,英特尔公司就开始对他们进行改进。他们将更多功能集成在芯片上,这样就诞生了80186和80188。这两款微处理器内部均以16位工作,在外部输入输出上80186采用16位,而80188和8088一样是采用8位工作。1981年,IBM公司将8088芯片用于其研制的PC 机中 ,从而开创了全新的微机时代。也正是从8088开始,个人 电脑(PC 的概念开始在全世界范围内发展起来。从8088应用到IBM PC 机上开始,个人电脑真正走进了人们的工作和生活之中,它也标志着一个新时代的开始3结构总线接口单元 (BIU bus interface unit总线
27、接口单元BIU1总线接口部件由下列各部分组成:4个段地址寄存器:CS(code segment16位的代 码段寄存器;DS(data segment16位的数据段寄存器;ES(extra segment16位的扩展段寄存器;SS(stack segment16位的堆 栈段寄存器;16位的指令指针寄存器IP;20位的地址加法器;6字节的指令队列缓冲器。执行单元执行部件由下列几个部分组成:8个通用寄存器:即AX、BX、 CX、DX,BP,SP,SI,DI ;其中,4个数据寄存器:AX、BX、 CX、DX;2个地址指针寄存器:BP(base pointer,SP(stack pointer;2个变址
28、寄存器:SI(source index,DI(destination index2;标志寄存器FR(flags register;算术逻辑单元ALU(arithmetic logic unit。EU负责 全部指令的执行,同时向BIU输出数据(操作 结果,并对寄存器和标志寄存器进行管理。在ALU 中进行16位运算,数据传送和处 理均在EU控制下执行。3BIU和EU 的管理BIU和EU 可以并行工作,提高CPU效率。 BIU监视着指令队列。当指令队列中有2个空字节时,就自动把指令取到队列中。 EU执行指令 时 ,从指令队列头部取指令,然后执行。如需访问存储器,则EU向BIU发出请求,由BIU访问存
29、储器。在执行转移、调用、返回指令时,需改变队列中的指令,要等新指令装入队列中后,EU 才继续执 行指令。4引脚概念在学习8086 CPU的引脚信号前,必须弄清 CPU最小模式和最大模式的概念。所 谓最小模式,就是在系统中只有一个8086微处理器,所有的总线控制信号都直接由8086 CPU产 生,因此,系统中的总线 控制电路被减到最少。最大模式是相对最小模式而言的。在最大模式系统中,总 是包含两个或多个微处理器,其中一个主处理器就是8086,其他的处理器称为协处理器,它们是协助主处理器工作的。如数学运算协处理器8087,输入/ 输出协处理器8089。 8086 CPU 到底工作在最大模式还是最小
30、模式,完全由硬件决定。当CPU处于不同工作模式时,其部分引脚的功能是不同的。实际分析下Intel系列CPU的流水线结构与性能流水线技术早在Intel的X86芯片中均得到了实现。流水线的使用使CPU 的性能得到了很大的提升,而Pentium系列CPU产品更是一个高级的超标量处理器。当然CPU流水线性能是有限制,影响CPU 流水线性能的因素有:1、多个任务在同一时间周期内争用同一个流水段例如,假如在指令流水线中,如果数据和指令是放在同一个储存器中,并且访问接口也只有一个,那么,两条指令就会争用储存器;在一些算数流水 线中,有些运算会同时访问一个运算部件。2、数据依赖比如,A运算必须得到B运算的结果
31、,但是,B运算还没有开始,A 运算动作就必须等待,直到A运算完成,两次运算不能同时执行。3、条件转移的影响如果第一条指令是一个条件转移指令,那么系统就会不清楚下面应该执行那一条指令。这时就必须等第一条指令的判断结果出来才能执行第二条指令。条件转移所造成的流水线停顿甚至比相关还要严重的多。越是长的流水线,相关和转移两大问题也越严重,所以,流水线并不是越长越好,超标量也不是越多越好,找到一个速度与效率的平衡点才是最重要的。为了解决这些影响流水线性能的因素和提高CPU性能,Intel 公司采取了一系列技术手段。在Pentium III的时候主要采用的技 术1.采用超标量双流水线结构超标量流水线设计是
32、Pentium微处理器技术的核心。所谓超标量就是处理器内部含有多个执行单元来完成多条指令的同时执行。Pentium有两条分别称为U 和V 的指令流水线,各自有独立的算术逻辑单元ALU及高速缓存结构。 这种双流水线并行作业的方式,使得Pentium在每个时钟周期内可同时执行两条指令。此外,还有一个执行单元,保证同时完成一条浮点运算指令。在Pentium III时 采用3条独立的12级超标量流水线。2.分支预测技术为了减少由于转移导致流水线的效率损失,Pentium采用分支预测技术来动态预测指令的目标地址,从而节省了CPU的执行时间。通常在用户程序中包含不少的条件转移指令,在流水线计算机中,这些转
33、移指令由于产生分支可能使予取和予译码指令作废。Pentium内部有两个予取指令 缓冲队列,在执行条件转移指令前,一个以顺序方式予取指令,另一个以转移方式予取指令,后者也称作分支目标缓冲器BTB(Branch Target Buffer,这是一个小的 cache,它基于转移指令,尤其是循环转移的固有特点,可以认为在大多数情况下,当一条转移指令被再次执行时,其成功与否及转移目标与上次相同。据此可构造动态的分支目标预测硬件。 BTB是一种效果 较好的硬件机制,统计表明BTB 的容量较大时(如超过256项预测准确率可达90%。通 过这种动态分支预测技术,不管是否产生转移,所需指令都在执行前予取好。3.
34、通过乱序来优化指令流水线在执行中采取了无序执行(out-of-order processing技术。即当某条指令需要一些数据而未能立即执行完毕时,它将被剔出流水线并等待数据,CPU则马 上执行下条指令,就好比在装配线上发现某件产品不太合格,而被淘汰,等待返工一个道理。这样,可以防止一条指令不能执行而影响了整个流水线的效率。4. 将指令划分为更细的阶段在P6架构的CPU中将指令划分成了更细的阶段,从而使逻辑设计、工序等等更为简化,提高了速度。在486芯片中,一条指令一般被划分为五个标准的部分,奔腾亦是如此。而在P6中 ,由于采用了近似于RISC的技术,一条指令被划分成了 创纪录的十四个阶段。这极
35、大地提高了流水线的速度。在Pentium IV中增加采用的技术如下1. 使用高级动态执行(Advanced Dynamic Execution为支持乱序执行和提高分支预测精度, 高级动态执行机制可以检查126条指令, 并决定执行次序, 配合128个重命名寄存器, 具有更高的预测精度。与PIII 相比, 大约可减少1/3的预测错误。 动态执行技术一般指集分支 预测、数据流分析(即乱序执行和猜测执行三种技术于一身。2. 执行跟踪缓存(Execution Trace Cache用于存储已解码的微指令( OPs, 加快运行速率。当下次再执行到相同指令时, 不必再一次重复解码, 只需要取相关数据直接执行
36、即可。这对于循环执行的程序有很高的效率。此外, 当分支预测出错, 需要回到分支处重新开始运行另一路时, 之前的译码阶段已经把另一分支指令缓冲进了Trace Cache, 而不用再译码,可节约12个时钟周期。3. 快速执行引擎(Rapid Execution Engine采用了称为Double Pumped的双重并发技术(即两组ALU , 每个时钟ALU能执行两次, 效率相应提升一倍。因此, Pentium 4的双ALU 在一个周期内可以执行4条指令。4. 超长管道处理技术(超管线技术 (Hyper Pipelined Technology采用超长管道处理技术, 使流水线深度达20级。Presc
37、ott(Pentium IV 的一种核心更是达到了31级。5.超线程(HT 技术资源不冲突时,可同时运行2个线程。在Core架构时 ,由于Core 架构是 Pentium III的 P6架构的 扩展,所以采用的技术和Pentium III差不多,为3路,12级流水 线,同时采用了微指令融合技术,主要是为了减少微指令数量,精简硬件设计。到了Core2时 主要采用了1. 高级智能高速缓存技术各Core可动态 支配L2 Cache,可提高L2命中率;减少FSB使用频率(通信量。2.智能内存访问技术根据软件需求,用预取器预取指令和数据。3.宽位动态执行技术CPU内部增加新操作类型,将多条指令合并为1个
38、操作,实现更大解码带宽、更少空间占用、更低调度负载。微指令融合(Micro-Op Fusion技术CPU 内部优化uop控制,将多个uop合并为1个uop;4. 优化流水线的技术优化分支预测技术:采用二级BTB、返回堆 栈缓冲器(RSB满时可导入ROB,平衡BTB/RSB中指令数量与速度的矛盾;64位宏指令融合技术:支持64位宏指令融合、增加了可融合宏指令个数。上面提到的技术基本上是以提高CPU流水线的性能为目的的,但是其中有一个技术确违背了这个意愿,就是在Pentium中使用超长 流水线技术使流水线深度达到20级,在Prescott 架构中甚至达到了31级。关于这个技术就不得不提到CPU发展
39、史上有名的频率之争。Intel 和AMD 在桌面CPU市场上的激烈 竞争,使双方都千方百计地拿出更强大产品来压制对方,而最引人瞩目的就是CPU的 频率之争。随着 CPU频率不断地攀升 ,Intel 总是在自己某个核心的处理器到达极限之时采用新的、更长流水线的核心来消除频率的瓶颈( 流水 线越长,频率能更高。但是这样做势必会带来一系列的问题。首先,由于现有芯片制造工艺的限制,频率的提升带来高功耗、高发热 量的问题。尽管流水 线 增长,频率提升的空间相应增大,但是处理器频率提升的其它瓶颈却无法解决。而且过长的流水线意味着更加复杂的内部结构,生产的良品率也难以保证。其次,在CPU的工作中,指令往往不
40、是孤立的,许多指令按一定的顺序执行才能完成一个任务。而一旦某个指令在运算过程中发生了错误,或者执行了没有用的指令,那么其后与之相关的指令就都没有用了。这些指令必须清除掉,然后再执行其它的指令,CPU 相当于做了许多无用功!流水线越长,一旦出错影响也就越大,比如一个指令在最后一级出错,那么可能在后续流水线中的所有指令都要被清除,Northwood核心处理器要浪费20级工序的时间,而Prescott 核心处理器就要浪费31级工序的时间!流水线深度一直是影响处理器效率的重要因素,流水线深度的增加可以让处理器时钟频率进一步提高,但是在有些实际应用中, 已经被证明了处理器流水线的长度与性能成反比。同时容
41、易产生分支预测等问题,Prescott核心的 P4达到的31级流水线长度,要比当年的Pentium III和 Athlon处理器高出许 多, Netburst 微架构已无法解决这一问题, 原本计划使基于Netburst 微架构的下一代 处理器Tejas突破5GHz, 但最终止步于3.8GHz 。Prescott最终走上失败之路。最后Intel 公司不得不放弃Pentium IV,频率至上的CPU 理论也被推翻。随后就进入了Core 架构,也就是多核 时代,多个CPU封装在一个芯片中,协调工作,来达到更高的性能,Netburst架构和Prescott 架构被完全抛弃,流水线的深度再次回到了Pen
42、tium III时代的3段12 级。对于未来的CPU流水线技术的发展,个人认为可能会有以下的几个方面。1. CPU线程的提高CPU线程会越来越多,多线程的使用,使CPU 的流水线效率和速度得到了很大的提高,所以未来CPU可能会出 现一个CPU8 个、16个、 32个甚至64个线程的情况。2. 更多条数的流水线就像GPU那样已经发展到32条流水线并行工作,流水 线条数的增加,使CPU在相同的时间内完成更多的工作,相当于提高了CPU的性能。3. 提供更新的Cache搜索算法和轮换算法Cache不是越大越好,因为CPU 性能和Cache的大小呈 负指数二项式增长。当Cache大小达到一定水平后 ,如
43、果不及 时更新Cache的搜索算法和 Cache的轮换算法,CPU的性能没法得到本质的提高。4. 一定量地减少流水线深度后PC 时代,是移动运算高发 展的时代,所以CPU 应该向低功率,高性能的方向发展,所以流水线深度可能更小,但CPU采用更好的架构以及更高的工艺来制造,达到和长流水线一样甚至更高的性能。5. 异步架构流水线的使用个人认为异步架构的使用是未来的一个必然趋势。同步架构的使用已经开始限制芯片的发展,基于时钟的芯片设计,只有在系统所有部分同时得到时钟才能正确操作,这只有在时钟线上的延时可以忽略时才可以做到。然而随着工艺的进步系统越来越大,从而使时钟线上的延时不再可以忽略不计。对于芯片
44、设计者来说,时钟歪斜已经成为了一个瓶颈,不跨越这个瓶颈,可以说未来的CPU发展很难有质的飞跃。而异步式架构设计就是一个很好的出路,使用异步架构,流水线不再依赖于时钟,采用自定时系统,不用担心时钟消耗的能量也不用为了避免时钟歪斜而付出大功耗的代价。对于异步式流水线 ,只有数据通过时才会产生功耗,空闲时没有动态功耗。同时异步式CPU在计算方面速度也是有很大的优势。据称在1997年,Intel 开发了一颗与奔腾系统兼容的异步测试芯片,其运行速度是同步芯片的三倍,而功耗只是后者的一半。最后写点自己的一点体会1. 不能一味地走极端就像当初Intel制造Pentium IV一 样 就是走了很大的一个极端,
45、不停地提高流水线 深度,不排除当初Intel 急切地想打败竞争对手AMD的原因。但是 这样做的后果就只有一个很快地失败,当时的事实也证明了这一点。人也一样,做任何事情不能走极端,不然就会陷入死胡同。2. 要善于取其精华,弃其糟粕就像Intel 研发 Core架构的 CPU时,虽然完全抛弃了Pentium IV的 Netburst架构,但是还 是使用了其中可取的部分,比如说超线程,动态执行等等的技术。因此 对任何事情要善于分析,看得到好的也要看得到坏的,不能一味地否认或肯定,这样才能有更好的收获。3. 做好承上启下的工作计算机的知识也是在不断拓展,计算机事业的发展离不开开放性思维,凡事都要动动脑
46、子,也许你就会走出一条别人没走过的路。在计算机的发展中我们要做好的就是“承上启下 ”,承接上一代的知 识,打开下一代技术 的大门。参考资料何小海严华.微机原理与接口技术.北京:科学出版社双核CPU工作原理以及使用方法.果粉手机网.网络服务器技术双通道和双核技术的介绍.果粉手机网.Intel 现 代 CPU 结构与技术 作者:东南大学计算机学院 任国林 影响流水线性能的因素和解决方法 作者:余伦静 结合 Intel 奔腾系列微处理器谈流水线技术 来源:http:/ Pentium 微处理器 来源:百度文库 http:/ 现代微机结构_Pentium and core2 来源:百度文库 http:/