WIN32汇编语言教程:第01章 背景知识 · 1.1 Win32的软硬件平台(1)
1.1.1 80x86系列处理器简史
Win32可以在多种硬件平台上运行,但使用最广泛的硬件平台是基于Intel公司80x86系列处理器的微型计算机。
自1978年6月Intel公司推出它的第一个16位微处理器8086以来,计算机技术就开始进入飞速发展的时期。8086芯片的主频为4.43 MHz,集成的晶体管数大约为2.9万个,运算器的位长为16位,采用了20条地址线,可以寻址的范围为220个字节地址,即1 MB;1982年,该公司发布了80286处理器,芯片上集成了12万个晶体管,主频提高到了12 MHz。
1985年Intel公司推出32位的80386处理器,芯片上集成的晶体管数为27.5万个,主频提高到了33 MHz,地址线则扩展为32条,直接寻址的能力达到4 GB。80386处理器在设计的时候考虑了多用户及多任务的需要,在芯片中增加了保护模式、优先级、任务切换和片内的存储单元管理等硬件单元。80386的出现使Windows和UNIX等多任务的操作系统可以在PC上运行。直到现在,运行于80x86处理器之上的多任务操作系统都是以80386的运行模式为基础的。
1989年,Intel公司推出80486处理器,在芯片内集成了浮点处理器和8 KB的一级缓存,片内的晶体管数达到了118万个,并把主频提高到50 MHz~66 MHz。80486处理器开始使用流水线技术,即在CPU中由5~6个不同功能的电路单元组成一条指令处理流水线,然后将一条指令分成5~6步后再由这些电路单元分别执行,由此提高CPU的运算速度。电路单元的数目就是流水线的深度。为了使计算机中的其他部件不至于成为CPU速度发展的瓶颈,80486处理器开始使用了倍频技术,即让处理器速度(CPU主频)数倍于系统总线速度(外频)。
从80386开始,在Intel公司向市场大量推出处理器芯片的同时,其他一些电脑公司和厂商如AMD和Cyrix等,也纷纷投入大量的人力财力进行处理器的开发和研制,并很快把研制出的产品推向市场。这些CPU芯片和80386芯片兼容,在编程上可以使用和Intel处理器相同的指令集。
1993年3月Intel公司推出80586处理器。由于无法阻止其他公司把自己的兼容产品也叫做x86,所以把产品取名为Pentium,并且进行了商标注册,同时启用了中文名称“奔腾”。Pentium芯片中集成了310万个晶体管,内置16 KB缓存,主频有60 MHz和66 MHz两个版本,后来逐步提高,到1995年6月时主频提高到了133 MHz。Pentium处理器采用许多新技术,其中最重要的变化是采用了超标量体系结构。即将两个同时工作的指令执行部件封装在同一芯片中,用两条并行的通道来执行指令,这相当于两个CPU同时工作,大大提高了处理速度。在586时代,AMD和Cyrix等其他公司也推出了相应档次的CPU,命名为5x86和K5等。
1995年11月,Intel公司推出代号为P6的新一代Pentium Pro处理器,中文名称为“高能奔腾”。Pentium Pro芯片中集成了550万个晶体管,主频分150 MHz~200 MHz多个版本。片内集成了3条平行的指令执行通道,相当于3个CPU并行工作,并用超流水线技术将流水线的深度提高到了14级。P6处理器内置16 KB一级高速缓存,并将256 KB或512 KB的二级高速缓存芯片与CPU内核芯片同时封装在一个外壳中,缩短了CPU和二级高速缓存之间的线路走线距离。同时,P6处理器开始使用乱序执行和分支预测技术,这使下一条指令不一定要等到前一条指令执行完毕后才可以开始。所有这些技术使这种CPU在运行32位指令系统时的执行效率明显高于上一代Pentium。
随着CPU和操作系统的发展,多媒体技术开始流行,表明依靠浮点处理器已经不能满足多媒体音频和视频信号的实时处理任务了。1997年初,Intel公司在Pentium Pro芯片上增加了专用于多媒体处理的57条指令和8个64位专用寄存器,命名为Pentium MMX。Pentium MMX使用了450万个晶体管,最高主频达到了233 MHz。
1997年5月,Intel公司又向市场推出了Pentium II芯片,中文名称为“奔腾II代”。Pentium II内集成了750万个晶体管,最高主频达到了300 MHz,也具有MMX的功能。这种处理器将二级高速缓存移到芯片外,以提高芯片成品率。为了照顾低端市场,1998年Intel公司推出了除去二级高速缓存的Pentium II简化版,命令为Celeron处理器。由于其缺乏片内二级高速缓存,对速度的影响非常巨大,使Celeron处理器的实际性能非常低。1998年4月,Intel公司又把128 KB二级高速缓存加回到Celeron处理器中,命名为Celeron A处理器。Celeron A的主频从300 MHz开始。
1999年,Intel公司推出集成了950万个晶体管,主频为450 MHz~500 MHz,外频为100 MHz的Pentium III处理器。这种处理器新增了SSE指令集,提供70条全新的指令,可以大大提高3D运算、动画片、影像与音效等功能,增强了视频处理和语音识别的功能。这套指令集主要为浏览WWW网页而设计。Pentium III处理器在芯片内集成了64 KB的一级缓存,并将512 KB的二级缓存安装在外壳卡盒内。
2000年11月,Intel公司发布集成4 200万个晶体管的Pentium 4处理器,主频达到了1.4 GHz,系统总线速度为400 MHz,流水线的深度提高到20级,并增加了SSE2指令集,提供144条新指令用于提高摄像、多媒体、3D图像和密集运算等方面的速度。时至今日,Intel公司已经发布了主频超过2 GHz的Pentium 4处理器。
从第一块微处理器诞生至今,处理器技术发展出不少新的体系结构。从微处理器的指令系统来看,有两种分支走向,一种是CISC;一种是RISC。CISC即复杂指令系统计算机。从PC诞生以来,人们一直沿用CISC指令集方式。它的指令不等长,指令的条数比较多,编程和设计处理器时都较为麻烦。在CISC之后,人们发明了RISC,即精简指令系统。这种指令系统采用等长的指令,且指令数较少,通过简化指令可以让计算机的结构更为简单,进而提高运算速度。
Intel的80x86系列处理器看起来属于CISC体系,但实际上,从Pentium处理器开始,都已不是单纯的CISC体系了。因为它们引入了很多RISC体系里的先进技术来大幅度提高性能。但是,好马也得配好鞍——没有软件支持的CPU再快也不是好CPU。为了兼容已有的软件,80x86系列处理器也不得不背上沉重的历史包袱。如CPU的位长还是停留在32位;在寄存器、运行模式与内存管理模式等方面还是继承了早期的80386模式;80386以后的处理器虽然增加了不少新指令,但大多用于多媒体扩展,其中很少有和操作系统密切相关的指令。所以,如果不涉及3D及密集运算方面的运算,仅从操作系统的角度看,这些处理器只能算是一个快速的80386处理器而已。