中央处理器(CPU)制造商的发展过程

CPU这个名称最初是对一系列能够执行复杂计算机程序或计算机程序的逻辑机器的描述。在“CPU”这个名字被广泛使用之前,这个模糊的定义很容易就包括了计算机本身。

然而,从20世纪70年代开始,由于集成电路的大规模使用,原本需要由几个独立单元组成的CPU被集成到一个微小但功能强大的微处理器中。这个名字和它的缩写在电子计算机行业中确实被广泛使用。虽然与早期相比,CPU在物理形式、设计和制造以及特定任务的执行方面取得了巨大的发展,但其基本工作原理并没有改变。

1971年,当时还处于开发阶段的英特尔公司推出了世界上第一款真正意义上的微处理器——4004。这不仅是第一个用于计算器的4位微处理器,也是第一个个人买得起的电脑处理器!

4004包含2300个晶体管,功能相当有限,速度还很慢。被当时的蓝色巨人IBM和大部分商业用户所不齿,但毕竟是划时代的产品。从那时起,英特尔就与微处理器结下了不解之缘。可以说,CPU的历史发展其实就是英特尔X86系列CPU的发展,也就是“CPU历史之旅”。1978年,Intel再次引领潮流,首次生产出16位的微处理器,命名为i8086。同时还出了配套的数学协处理器i8087。这两个芯片使用了兼容的指令集,但在i8087指令集上增加了一些专门用于对数、指数和三角函数等数学计算的指令。因为这些指令集应用于i8086和i8087,所以人们也统称这些指令为X86指令集。

虽然英特尔生产了第二代和第三代更先进、更快的新CPU,但它们仍然兼容原来的X86指令,英特尔在命名后续CPU时遵循了原来的X86序列,直到后来由于商标注册问题,放弃了用阿拉伯数字命名CPU。至于后来发展起来的其他公司,比如AMD、Cyrix,486之前(含486)的CPU都是以自己的X86 CPU命名的,但是到了586的时候,市场竞争越来越激烈。由于商标注册问题,他们不能再使用与英特尔的X86 CPU相同或相似的命名,因此他们必须命名自己的586和686兼容CPU。

1979年,Intel推出8088芯片,仍然属于16位微处理器,包含29000个晶体管。时钟频率4.77MHz,地址总线20位,可使用1MB内存。8088的内部数据总线是16位,外部数据总线是8位,而它的兄弟8086是16位。1981年,8088芯片首次用于IBM的PC(个人电脑),开创了一个全新的微机时代。也是从8088年开始,PC的概念开始在全球范围内发展。

早期的CPU通常是为大型专用计算机定制的。然而,这种为特定应用定制CPU的昂贵方法已经在很大程度上让位于开发适用于一种或多种用途的廉价、标准化的处理器类别。

这种标准化趋势始于由单个晶体管组成的大型机和微型计算机时代,并随着集成电路的出现而加速。集成电路使得更复杂的CPU能够在非常小的空间(微米量级)内被设计和制造。

1982年,很多年轻读者还在襁褓中的时候,Intel公司已经推出了最新的划时代产品Zao 80286芯片,相比8086和8088有了很大的发展。虽然当时还是16位结构,但是CPU里有134000个晶体管。其内部和外部数据总线均为16位,地址总线为24位,可寻址16MB内存。从80286开始,CPU演变为两种工作模式:实模式和保护模式。

1985年,Intel推出了80386芯片,这是80X86系列的第一款32位微处理器,其制造工艺也有了很大的进步。与80286相比,80386包含275000个晶体管,时钟频率为12.5MHz,之后提升到20MHz、25MHz、33MHz。80386的内部和外部数据总线都是32位,地址总线也是32位,最高可寻址4GB内存。除了实模式和保护模式之外,它还增加了一种叫做虚拟86的工作模式,可以通过同时模拟多个8086处理器来提供多任务能力。

除了标准的80386芯片,也就是人们常说的80386DX,出于不同的市场和应用考虑,Intel还陆续推出了一些其他类型的80386芯片:80386SX、80386SL、80386DL等等。

1988年,Intel推出了80386SX,这是市场上定位在80286和80386DX之间的芯片。与80386DX的区别在于外部数据总线和地址总线与80286相同,分别为16位和24位(即寻址能力为16MB)。在1990中,Intel公司推出的80386 SL和80386 DL是低功耗节能芯片,主要用于便携式电脑和节能台式机。80386 SL和80386 DL的区别在于,前者基于80386SX,后者基于80386DX,但两者都增加了新的工作模式:系统管理模式。进入系统管理模式时,CPU会自动降低运行速度,控制显示屏、硬盘等部件停止工作,甚至停止运行,进入“睡眠”状态,达到节能的目的。

1989年,众所周知的80486芯片由Intel公司推出。这款芯片的伟大之处在于,它实际上打破了1万个晶体管的界限,集成了1.2万个晶体管。80486的时钟频率从25MHz逐渐提高到33MHz和50MHz。80486将80386、数学协处理器80387和一个8KB缓存集成在一个芯片中,80X86系列首次采用RISC(精简指令集)技术,一个时钟周期可以执行一条指令。它还采用了突发总线模式,大大提高了与存储器的数据交换速度。

由于这些改进,80486的性能比带有80387数学协处理器的80386DX高4倍。和80386一样,80486也有几种类型。上面介绍的原型号是80486DX。

1990年,Intel推出了80486 SX,这是一款486类型的低价机型。它和80486DX的区别在于它没有数学协处理器。80486 DX2采用时钟倍频技术,这意味着芯片内部的运行速度是外部总线的两倍,即内部芯片以两倍于系统时钟的速度运行,但仍以原来的时钟速度与外界通信。80486 DX2的内部时钟频率主要包括40MHz、50MHz和66MHz。80486 DX4也是一款采用时钟倍频技术的芯片,可以让其内部单元以两倍或三倍于外部总线的速度运行。为了支持这种提高的内部工作频率,其片内高速缓存扩展到16KB。80486 DX4的时钟频率为100MHz,比80486 DX2的66MHz快40%。80486还有SL增强型,有系统管理模式,用于便携式电脑或节能台式机。

CPU的标准化和小型化,使得这类数码设备(香港翻译为“电子零件”)在现代生活中出现的频率,比应用有限的电脑还要高。现代微处理器出现在从汽车到手机到儿童玩具的所有东西中。主频也叫时钟频率,单位是兆赫(MHz)或千兆赫(GHz),用来表示CPU运行和数据处理的速度。

CPU主频=外部频率×倍频系数。很多人认为主频决定了CPU的运行速度,这不仅是片面的,对于服务器来说也是偏颇的。到目前为止,还没有一个确定的公式可以实现主频与实际运行速度之间的数值关系。甚至两大处理器厂商Intel和AMD在这一点上也有很大的争议。从英特尔产品的发展趋势可以看出,英特尔非常重视加强自身主频的发展。和其他处理器厂商一样,曾经有人拿一款1GHz的全美达处理器做对比,运行效率相当于2GHz的Intel处理器。

主频和实际运行速度有一定的关系,但不是简单的线性关系。所以CPU的主频与CPU的实际运算能力没有直接关系,主频表示的是CPU中数字脉冲信号振荡的速度。在英特尔的处理器产品中,我们也可以看到这样的例子:1 GHz的安腾芯片几乎可以和2.66 GHz的至强/骁龙一样快,或者说1.5 GHz的安腾2大约和4 GHz的至强/骁龙一样快。CPU的运行速度取决于CPU流水线、总线等的性能指标。

主频与实际运行速度有关。只能说主频只是CPU性能的一个方面,并不代表CPU的整体性能。外部频率是CPU的参考频率,单位是MHz。CPU的外接频率决定了整个主板的运行速度。一般来说,在台式机中,超频就是超级CPU的外频(当然,一般来说,是锁定CPU的倍频)。我相信这是很好理解的。但是对于服务器CPU来说,超频是绝对不允许的。前面说过,CPU决定主板的运行速度,两者同步运行。如果服务器CPU超频,改变外部频率,就会出现异步运行(很多台式电脑的主板都支持异步运行),造成整个服务器系统的不稳定。

目前,在大多数计算机系统中,外部频率和主板前端总线不同步,外部频率和前端总线(FSB)频率很容易混淆。下面前端总线介绍两者的区别。前端总线(FSB)的频率直接影响CPU与内存直接数据交换的速度。有一个公式可以计算出来,就是数据带宽=(总线频率×数据位宽)/8,数据传输的最大带宽取决于同时传输的所有数据的宽度和传输频率。比如目前支持64位的Xeon Nocona,其前端总线为800MHz。根据公式,其最大数据传输带宽为6.4GB/ s..

外频和FSB频率的区别:FSB的速度是指数据传输的速度,外频是指CPU和主板同步运行的速度。换句话说,100MHz的外部频率意味着数字脉冲信号每秒振荡1亿次;100MHz前端总线是指CPU每秒可接受的数据传输能力为100 MHz×64 bit÷8 bit/byte = 800 MB/s。

事实上,“HyperTransport”架构的出现在实际意义上改变了FSB的频率。IA-32架构必须具备三个重要的组件:内存控制器中枢(MCH)、I/O控制器中枢和PCI中枢,比如英特尔的典型芯片组Intel 7501和Intel7505,它们是为双至强处理器量身定制的。它们所包含的MCH为CPU提供了频率为533MHz的前端总线,配合DDR内存,前端总线的带宽可以达到4.3GB/ s,但是随着处理器性能的不断提升,给系统架构带来了很多问题。“HyperTransport”架构不仅解决了问题,还更有效地提高了总线带宽,如AMD皓龙处理器。灵活的HyperTransport I/O总线架构允许它集成内存控制器,使处理器可以直接与内存交换数据,而无需通过系统总线传输到芯片组。在这种情况下,AMD皓龙处理器中的前端总线(FSB)频率不知道从哪里开始。位:在数字电路和计算机技术中,采用二进制编码,编码只有“0”和“1”,其中“0”和“1”都是CPU中的一位。

字长:在计算机技术中,CPU在单位时间内(同时)一次能处理的二进制数的位数称为字长。因此,能够处理字长为8位的数据的CPU通常称为8位CPU。同样,32位CPU在单位时间内可以处理32位二进制数据。字节和字长的区别:由于常用的英文字符可以用8位二进制来表示,所以8位通常称为一个字节。字长的长度不是固定的,对于不同的CPU和字长是不一样的。8位CPU一次只能处理一个字节,而32位CPU一次可以处理四个字节。同样,字长为64位的CPU一次可以处理8个字节。缓存大小也是CPU的重要指标之一,缓存的结构和大小对CPU的速度影响很大。CPU中的缓存运行频率非常高,通常与处理器同频,工作效率远大于系统内存和硬盘。在实际工作中,CPU经常需要重复读取同一个数据块,缓存容量的增加可以大大提高CPU内部读取数据的命中率,而无需在内存或硬盘中寻找,从而提高系统性能。但是由于CPU芯片面积和成本的因素,缓存很小。

L1缓存是CPU的第一层缓存,分为数据缓存和指令缓存。内置L1缓存的容量和结构对CPU的性能影响很大。然而,高速缓冲存储器都是由静态RAM构成的,并且结构复杂。在CPU的管芯面积不能太大的情况下,L1级缓存的容量不能做得太大。一般服务器CPU的L1缓存容量通常为32-256 KB。

L2缓存是CPU的二级缓存,分为内部和外部芯片。内部芯片二级缓存运行速度与主频相同,而外部二级缓存只有主频的一半。L2缓存容量也会影响CPU的性能。原则是CPU越大越好。以前最大的国产CPU容量是512KB,现在在笔记本电脑上可以达到2M,而服务器和工作站使用的CPU L2缓存更高,达到8M以上。

L3缓存(三级缓存)分为两种,早期的外置,现在的内置。其实际作用在于,L3缓存的应用可以进一步降低内存延迟,提高处理器在计算大数据量时的性能。降低内存延迟,提高大数据的计算能力,对游戏很有帮助。但是,通过在服务器领域添加L3缓存,性能仍有显著提高。例如,具有较大L3缓存的配置可以更有效地使用物理内存,因此它可以比较慢的磁盘I/O子系统处理更多的数据请求。具有更大L3缓存的处理器提供了更高效的文件系统缓存行为以及更短的消息和处理器队列长度。

其实最早的L3缓存应用在AMD发布的K6-III处理器上。当时L3缓存并没有集成到芯片中,而是由于制造工艺的原因集成到主板中。L3缓存,只能和系统总线频率同步,和主存区别不大。后来,L3缓存是英特尔为服务器市场推出的安腾处理器。然后是P4EE和至强MP。英特尔还计划在未来推出9MB三级高速缓存的Itanium2处理器和24MB三级高速缓存的双核Itanium2处理器。

但是L3缓存对于提高处理器的性能并不是很重要。比如配备1MB三级缓存的至强MP处理器,依然不是骁龙的对手,这说明前端总线的增加会比缓存的增加带来更有效的性能提升。从586CPU开始,CPU的工作电压分为内核电压和I/O电压。通常,CPU的核心电压小于或等于I/O电压。其中,内核电压的大小取决于CPU的生产工艺。一般生产工艺越小,内核的工作电压越低。I/O电压一般为1.6~5V。低电压可以解决功耗过大和发热量过大的问题。