CPU
中央处理器(英语:Central Processing Unit,缩写:CPU,中国大陆作中央处理器,香港作CPU,台湾作中央处理单元[1],日本及韩国作中央处理装置),为电脑的主要装置之一,功能主要是解释电脑指令以及处理电脑软件中的数据。1970年代以前,中央处理器由多个独立单元构成,后来发展出由集成电路制造的中央处理器,这些高度收缩的器件就是所谓的微处理器,其中分出的中央处理器最为复杂的电路可以做成单一微小功能强大的单元,也就是所谓的核心。
中央处理器广义上指一系列可以执行复杂的电脑程序的逻辑机器。这个空泛的定义很容易地将在“CPU”这个名称被普遍使用之前的早期电脑也包括在内。无论如何,至少从1960年代早期开始,这个名称及其缩写已开始在电脑产业中得到广泛应用。尽管与早期相比,“中央处理器”在物理形态、设计制造和具体任务的执行上有了极大的发展,但是其基本的操作原理一直没有改变。
早期的中央处理器通常是为大型及特定应用的电脑而定制。但是,这种昂贵的为特定应用定制CPU的方法很大程度上已经让位于开发便宜、标准化、适用于一个或多个目的的处理器类。这个标准化趋势始于由单个晶体管组成的大型机和微机年代,随着集成电路的出现而加速。IC使得更为复杂的中央处理器可以在很小的空间中设计和制造(在微米的数量级)。中央处理器的标准化和小型化都使这一类电子零件在现代生活中的普及程度越来越高。现代处理器出现在包括从汽车、手机到儿童玩具在内的各种物品中。
历史
在现今的CPU出现之前,如同ENIAC之类的电脑在执行不同程序时,必须经过一番线路调整才能启动。由于它们的线路必须被重设才能执行不同的程序,这些机器通常称为“固定程序电脑”(fixed-program computer)。而由于CPU这个词指称为执行软件(电脑程序)的装置,那些最早与储存程序型电脑一同登场的装置也可以被称为CPU。
储存程序型电脑的主意早已体现在ENIAC的设计上,但最终还是被省略以期早日完成。在1945年6月30日,ENIAC完成之前,著名数学家冯·诺伊曼发表名为《关于EDVAC的报告草案》的论文。它揭述储存程序型电脑的计划将在1949年8月完成。[2]EDVAC的目标是执行一定数量与种类的指令(或操作),这些指令结合产生出可以让EDVAC执行的有用程序。特别的是,为EDVAC而写的程序是储存在高速电脑内存中,而非由实体线路组合而成。这项设计克服了ENIAC的某些局限——即花费大量时间与精力重设线路以执行新程序。在冯·诺伊曼的设计下,EDVAC可以借由改变内存储存的内容,简单更换它执行的程序(软件)[注 1]。
值得注意的是,尽管冯·诺伊曼由于设计了EDVAC,使得他在发展储存程序型电脑上的贡献最为显著,但其他早于他的研究员如康拉德·楚泽(Konard Zuse)也提出过类似的想法。另外早于EDVAC完成,利用哈佛架构制造的马克一号,也利用打孔带而非电子内存用作储存程序的概念。冯·诺伊曼架构与哈佛架构最主要的不同在于后者将CPU指令与资料分开存放与处置,而前者使用相同的内存位置。大多近代的CPU依照冯·诺伊曼架构设计,但哈佛架构一样常见。
身为数码装置,所有CPU处理不连续状态,因此需要一些转换与区分这些状态的基础器件。在市场接受晶体管前,继电器与真空管常用在这些用途上。虽然这些材料速度上远优于纯粹的机械构造,但是它们有许多不可靠的地方。例如以继电器建造直流时序逻辑回路需要额外的硬件以应付接触点跳动问题。而真空管不会有接触点跳动问题,但它们必须在启用前预热,也必须同时停止运作[注 2]。通常当一根真空管坏了,CPU必须找出损坏器件以置换新管。因此早期的电子真空管式电脑快于电子继电器式电脑,但维修不便。类似EDVAC的真空管电脑每隔八小时便会损坏一次,而较慢较早期的马克一号却不太发生故障。[3]但在最后,由于速度优势,真空管电脑主宰了当时的电脑世界,尽管它们需要较多的维护照顾。大多早期的同步CPU,其时钟频率低于近代的微电子设计(见下列对于时钟频率的讨论)。那时常见的时钟频率为10万赫兹到4百万赫兹,大大受限于内建切换装置的速度。
分立晶体管与集成电路中央处理器
由于许多科技厂家投入更小更可靠的电子装置,使得设计CPU变得越来越复杂。晶体管的面世即是CPU第一个质的飞跃。1950到60年代的晶体管CPU不再以体积庞大、不可靠与易碎的开关器件(例如继电器与真空管)建造。借由这项改良,更加复杂与可靠的CPU便被建造在一个或多个包含分立(离散)器件的印刷电路板上,从而向体积小、可靠与不易损坏方向发展。
在此时期,将许多晶体管放置在拥挤空间中的方法大为普及。集成电路(IC)将大量的晶体管集中在一小块半导体片,或晶片(chip)上。刚开始只有非常基本、非特定用途的数字电路小型化到IC上(例如NOR逻辑闸)。以这些预装式IC为基础的CPU称为小规模集成电路(SSI)装置。SSI IC,例如装置在阿波罗导航电脑上的那些电脑,通常包含数十个晶体管。以SSI IC建构整个CPU需要数千个独立的晶片,但与之前的分立晶体管设计相比,依然省下很多空间与电力。肇因于微电子科技的进步,在IC上的晶体管数量越来越大,因此减少了建构一个完整CPU需要的独立IC数量。“中规模集成电路”(MSI)与“大规模集成电路”(LSI)将内含的晶体管数量增加到成百上千。
1964年IBM推出了System/360电脑架构,此架构让一系列速度与性能不同的IBM电脑可以运行相同的程序。此确实为一项创举,因为当时的电脑大多互不兼容,甚至同一家厂商制造的也是如此。为了实践此项创举,IBM提出了微程序概念,此概念依然广泛使用在现代CPU上。[4]System/360架构由于太过成功,因此主宰了大型电脑数十年之久,并留下一系列使用相似架构,名为IBM zSeries的现代主机产品。同一年(1964),迪吉多(DEC)推出另一个深具影响力且瞄准科学与研究市场的电脑,名为PDP-8。DEC稍后推出非常有名的PDP-11,此产品原先计划以SSI IC构组,但在LSI技术成熟后改为LSI IC。与之前SSI和MSI的祖先相比,PDP-11的第一个LSI产品包含了一个只用了4个LSI IC的CPU。[5]
晶体管电脑有许多前一代产品没有的优点。除了可靠度与低耗电量之外,由于晶体管的状态转换时间比继电器和真空管短得多,CPU也就拥有更快的速度。得益于可靠度的提升和晶体管转换器切换时间的缩短,CPU的时钟频率在此时期达到十几百万赫兹。另外,由于分立晶体管与IC CPU的使用量大增,新的高性能设计,例如SIMD(单指令多数据)、向量处理机开始出现。这些早期的实验性设计,刺激了之后超级计算机(例如克雷公司)的崛起。
中央处理器操作原理
CPU的主要运作原理,不论其外观,都是执行储存于被称为程序里的一系列指令。在此讨论的是遵循普遍的冯·诺伊曼结构(von Neumann architecture)设计的装置。程序以一系列数字储存在电脑存储器中。差不多所有的冯·诺伊曼CPU的运作原理可分为四个阶段:提取、解码、执行和写回。
第一阶段,提取,从程序内存中检索指令(为数值或一系列数值)。由程序计数器指定程序存储器的位置,程序计数器保存供识别目前程序位置的数值。换言之,程序计数器记录了CPU在目前程序里的踪迹。提取指令之后,PC根据指令式长度增加存储器单元[注 3]。指令的提取常常必须从相对较慢的存储器查找,导致CPU等候指令的送入。这个问题主要被论及在现代处理器的缓存和流水线架构(见下)。
CPU根据从存储器提取到的指令来决定其执行行为。在解码阶段,指令被拆解为有意义的片段。根据CPU的指令集架构(ISA)定义将数值解译为指令[注 4]。一部分的指令数值为运算码,其指示要进行哪些运算。其它的数值通常供给指令必要的资讯,诸如一个加法运算的运算目标。这样的运算目标也许提供一个常数值(即立即值),或是一个空间的寻址值:寄存器或存储器地址,以寻址模式决定。在旧的设计中,CPU里的指令解码部分是无法改变的硬体装置。不过在众多抽象且复杂的CPU和ISA中,一个微程序时常用来帮助转换指令为各种形态的讯号。这些微程序在已成品的CPU中往往可以重写,方便变更解码指令。
在提取和解码阶段之后,接着进入执行阶段。该阶段中,连接到各种能够进行所需运算的CPU部件。例如,要求一个加法运算,算术逻辑单元将会连接到一组输入和一组输出。输入提供了要相加的数值,而且在输出将含有总和结果。ALU内含电路系统,以于输出端完成简单的普通运算和逻辑运算(比如加法和位操作)。如果加法运算产生一个对该CPU处理而言过大的结果,在标志寄存器里,溢出标志可能会被设置(参见以下的数值精度探讨)。
最终阶段,写回,以一定格式将执行阶段的结果简单的写回。运算结果经常被写进CPU内部的寄存器,以供随后指令快速存取。在其它案例中,运算结果可能写进速度较慢,如容量较大且较便宜的主存储器。某些类型的指令会操作程序计数器,而不直接产生结果资料。这些一般称作“跳转”并在程序中带来循环行为、条件性执行(透过条件跳转)和函数[注 5]。许多指令也会改变标志寄存器的状态比特。这些标志可用来影响程序行为,缘由于它们时常显出各种运算结果。例如,以一个“比较”指令判断两个值的大小,根据比较结果在标志寄存器上设置一个数值。这个标志可借由随后的跳转指令来决定程序动向。
在执行指令并写回结果资料之后,程序计数器的值会递增,反复整个过程,下一个指令周期正常的提取下一个顺序指令。如果完成的是跳转指令,程序计数器将会修改成跳转到的指令地址,且程序继续正常执行。许多复杂的CPU可以一次提取多个指令、解码,并且同时执行。这个部分一般涉及“经典RISC流水线”,那些实际上是在众多使用简单CPU的电子装置中快速普及(常称为微控制器)[注 6]。
设计与实现
整数范围
CPU数字表示方法是一个设计上的选择,这个选择影响了装置的工作方式。一些早期的数字电脑内部使用电气模型来表示通用的十进制(基于10进位)记数系统数字。还有一些罕见的电脑使用三进制表示数字。几乎所有的现代的CPU使用二进制系统来表示数字,这样数字可以用具有两个值的物理量来表示,例如高低电平[注 7]等等。
与数表示相关的是一个CPU可以表示的数的大小和精度,在二进制CPU情形下,一个位(bit)指的是CPU处理的数中的一个有意义的位,CPU用来表示数的位数量常常被称作“字长”、“位宽”、“数据通路宽度”,或者当严格地涉及到整数(与此相对的是浮点数)时,称作“整数精度”,该数量因体系结构而异,且常常在完全相同的CPU的不同部件中也有所不同。例如:一个8位的CPU可处理在八个二进制数码(每个数码具有两个可能的取值,0或1)表示范围内的数,也就是说,28或256个离散的数值。 实际上,整数精度在CPU可执行的软件所能利用的整数取值范围上设置了硬件限制。[注 8]
整数精度也可影响到CPU可寻址(寻址)的内存数量。譬如,如果二进制的CPU使用32位来表示内存地址,而每一个内存地址代表一个八比特组,CPU可定位的容量便是232个比特组或4GB。以上是简单描述的CPU地址空间,通常实际的CPU设计使用更为复杂的寻址方法,例如为了以同样的整数精度寻址更多的内存而使用分页技术。
更高的整数精度需要更多线路以支持更多的数字比特,也因此结构更复杂、更巨大、更花费能源,也通常更昂贵。因此尽管市面上有许多更高精准度的CPU(如16,32,64甚至128位),但依然可见应用软件执行在4或8位的微控制器上。越简单的微控制器通常较便宜,花费较少能源,也因此产生较少热量。这些都是设计电子装置的主要考量。然而,在专业级的应用上,额外的精度给予的效益(大多是给予额外的地址空间)通常显著影响它们的设计。为了同时得到高与低位宽度的优点,许多CPU依照不同功用将各部分设计成不一样的位宽度。例如IBM System/370使用一个原为32位的CPU,但它在其浮点单元使用了128位精度,以得到更佳的精确度与浮点数的表示范围。[4]许多后来的CPU设计使用类似的混合位宽,尤其当处理器设计为通用用途,因而需要合理的整数与浮点数运算能力时。
时钟频率
主频=外频×倍频。
大部分的CPU,甚至大部分的时序逻辑装置,本质上都是同步的。[注 9]也就是说,它们被设计和使用的前题是假设都在同一个同步信号中工作。这个信号,就是众所周知的时脉讯号,通常是由一个周期性的方波(构成)。通过计算电信号在CPU众多不同电路中的分支中循环所需要的最大时间,设计者们可为时脉讯号选择一个适合的周期。
该周期必须比信号在延迟最大的情况下移动或者传播所需的时间更长。设计整个CPU在时钟信号的上升沿和下降沿附近移动数据是可能的。无论是在设计还是器件的维度看来,均对简化CPU有显著的优点。同时,它也存在CPU必须等候回应较慢器件的缺点。此限制已透过多种增加CPU并行运算的方法下被大幅的补偿了。(见下文)
无论如何,结构上的改良无法解决所有同步CPU的弊病。比方说,时脉讯号易受其它的电子信号影响。在逐渐复杂的CPU中,越来越高的时钟频率使其更难与整个单元的时脉讯号同步。是故近代的CPU倾向发展多个相同的时脉讯号,以避免单一信号的延迟使得整个CPU失灵。另一个主要的问题是,时脉讯号的增加亦使得CPU产生的热能增加。持续变动的时钟频率使得许多器件切换(Switch)而不论它们是否处于运作状态。一般来说,一个处于切换状态的器件比处于静止状态还要耗费更多的能源。因此,时钟频率的增加使得CPU需要更有效率的冷却方案。
其中一个处理切换不必要器件的方法称为时脉闸控,即关闭对不必要器件的时钟频率(有效的禁止器件)。但此法被认为太难实行而不见其低耗能通用性。[注 10]另一个对全程时钟信号的方法是同时移除时钟信号。当移除全程时钟信号;使得设计的程序更加复杂时,异步(或无时脉)设计使其在能源消耗与产生热能的维度上更有优势。罕见的是,所有的CPU建造在没有利用全程时钟信号的状况。两个值得注意的示例是ARM("Advanced RISC Machine")顺从AMULET以及MIPS R3000兼容MiniMIPS。与其完全移除时脉讯号,部分CPU的设计允许一定比例的装置不同步,比方说使用不同步算术逻辑单元连接超标量流水线以达成一部分的算术性能增进。在不将时脉讯号完全移除的情况下,不同步的设计可使其表现出比同步计数器更少的数学运算。因此,结合了不同步设计极佳的能源耗损量及热能产生率,使它更适合在嵌入式电脑上运作。[6]
并行
前面描述的CPU结构只能在同一时间点执行一个指令,这种类型的CPU被称为低标量。
这一类型的CPU有一很大的缺点:效率低。由于只能执行一个指令,此类的进程给与低标量CPU固有的低性能。由于每次仅有一个指令能够被执行,CPU必须等到上个指令完成才能继续执行。如此便造成下标量CPU延宕在需要两个以上的时钟循环才能完成的指令。即便增加第二个执行单元(见下文)也不会大幅提升性能;除了单一沟道的延宕以外,双沟道的延宕及未使用的晶体管数量亦增加了。如此的设计使得不论CPU可使用的资源有多少,都仅能一次运行一个指令并可能达到标量的性能(一个指令需一个时脉循环)。无论如何,大部分的性能均为下标量(一个指令需超过一个时脉循环)。
为了达成标量目标以及更佳的性能,导致使得CPU倾向平行运算的各种设计越来越多。提到CPU的平行,有两个字汇常用来区分这些设计的技术。指令平行处理(Instruction Level Parallelism, ILP)以增加CPU执行指令的速率(换句话说,增加on-die执行资源的利用),以及执行绪平行处理(Thread Level Parallelism, TLP)目的在增加执行绪(有效的个别程序)使得CPU可以同时执行。每种方法均可由其如何嵌入或相对有效(对CPU的性能)来区分。[注 11]
- 指令级并发(Instruction level parallelism,ILP):指令流水线与超标量架构
其中一种达成增加平行运算的方法,便是在主要指令完成执行之前,便进行指令提取及解码。这种最简易的技术,我们称为指令流水线,且其被利用在泰半现代的泛用CPU中。透过分解执行沟道至离散阶段,指令流水线可以两个以上的指令同时执行。相较于已被淘汰的组合流水线,指令流水线不再使用等候指令完全在流水线中退出才执行下一指令的技术。
指令流水线产生了下一作业需要前一作业才可完成的可能性。此类状况又常称为相依冲突。解决的方法是,对此类的情况增加额外的注意,及在相依冲突发生时延迟一部分的指令。自然地,此种解决方法需要额外的循环,是故指令流水线的处理器比低标量处理器还要复杂。(虽然不是很显著)一个指令流水线的处理器的性能可能十分接近标量,只需禁止流水线推迟即可。(在一个阶段需要超过一个以上的循环的指令)
此外,对于指令流水线的改进启发了减少CPU器件闲置时间的技术。称为超标量的设计包括了一条长指令流水线及多个相同的执行单元。上标量流水线的分派器同时读取及通过数个指令;分派器决定指令是否能够平行执行(同时执行)并分配到可执行的执行单元。大致上来说,一个上标量的CPU能够同时分派越多的指令给闲置的执行单元,就能够完成越多的指令。
上标量CPU结构的设计中,最困难的部分便是创造一个有效率的分派器。分派器必须能够快速且正确的决定指令是否能够平行执行,并且让闲置的执行单元最小化。其需要指令流水线常时的充满指令流,且提升了在上标量结构中一定数量的CPU缓存。其亦催生了危害回避的技术,如分支预测、投机执行与跨序执行以维持高层次的性能。借由尝试预测特定的指令选择何分支(路径),CPU能够最小化整个指令流水线等待特定的指令完成的次数。投机执行则是借着执行部分的指令以得知其是否在整个作业完成后仍被需要而提供适度的性能提升。跨序执行则是刷新指令执行的命令以降低资料相依。
当不是所有的CPU器件均有上标量性能时,未达上标量的器件性能便会因测序推迟而降低。奔腾的原型有两个每一时脉循环可接收一个指令的上标量算术逻辑单元,但其浮点算术处理器(Floating Point Unit, FPU)不能在每一时脉循环接收一个指令。因此P5的性能只能算是整数上标量而非浮点上标量。英特尔Pentium结构的下一代P6加入了浮点运算处理器的上标量能力,因此在浮点指令上有显著的性能提升。
此两种简单的流水线及上标量设计,均能透过允许单一处理器在一个时钟循环完成一个指令[注 12],提升指令流水线的性能。多数的近代CPU设计至少都在上标量以上,且几乎所有十年内的泛用CPU均达上标量。近年来,一些重视高指令流水线的电脑将其从CPU的硬体移至软件。超长指令字符(的策略使得一部分的指令流水线成为软件,减少CPU推动指令流水线的工作量,并降低了CPU的设计复杂度。
- 线程级并发(Thread-level parallelism,TLP):同时执行绪执行或线程级并行处理
另一个常用以增加CPU平行运算性能的策略是让CPU有同时执行多个执行绪的能力。大致上说来,高同时执行绪平行执行(TLP)CPU比高指令平行执行来的有用。许多由克雷公司(Cray)公司于1970年代及1980年代晚期所首创的同时执行绪平行执行,专于该方法而启发了庞大的计算效力。(就时间上而言)事实上,TLP多线程运算自从1950年就已经开始被运用了(Smotherman 2005)。在单处理器设计中,两种主要实现TLP的设计方法是晶片级多处理(CMP)晶片层多线程处理和同步多线程(simultaneous multithreading,SMT)。同级别层多线程处理。在更高级层中,一台电脑中有多个单独的处理器,常常运用对称多处理机(SMP)和non-uniform memory access(NUMA)非独立内存访问的方式来组织。[注 13]这些非常不同的方法,全部为了实现同一个目标,就是增加CPU同时处理多个线程的能力。
CMP和SMP这两种方法其实是非常相似的,而且是最直接的方法。这里有一些概念上的东西关于如何实两个或是两个以上完全单独的CPU。在CMP中,多个处理器内核会被放入同一个包中,有时会在非常相近的集成电路中。[注 14]另一方面SMP包含多个包在其中,NUMA和SMP很相像,但是NUMA使用非单一的内存访问方式。这些对于一台有着多个CPU的电脑来说是非常重要的,因为每个处理器访问内存的时间会很快的被SMP分享的模块消耗掉,因些会造成很严重的延迟,因为CPU要等待可用的内存.这时NUMA是个不错的选择,它可以允许有多个CPU同时存在一台电脑中而且SMP也可以同时实现.SMT有一些不同之处,就是SMT会尽可能的减少CPU处理能力的分布。TLP的实现实际上和超标量体系结构的实现有些相似,其实上它常常被用在超标量体系结构处理器中,如IBM的POWER5。相比于复制整个CPU,SMT会复制需要的部分来提取指令,加密和分配,就像电脑中的一般的寄存器一样。因此这样会使SMT CPU保持处理单位运作的连续,一些通常会提供给处理单位多个指令而且来自不同的软件线程,这和ILP结构很相似。相比于处理多个指令来自同一个线程,它会同时处理来自不同线程的多个指令。
数据并行
上面提及过的处理器都是一些常量仪器[注 15],而针对向量处理的CPU是较不常见的类型,但它的重要性却越来越高。事实上,在电脑计算上,向量处理是很常见的。顾名思义,向量处理器能在一个命令周期(one instruction)处理多项数据,这有别于只能在一个命令周期内处理单一数据的常量处理器。这两种不同处理数据的方法,普遍分别称为‘单指令,多资料’(SIMD)及‘单指令,单资料’(SISD)。向量处理器最大的优点就是能够在同一个命令周期中对不同的工作进行优化,例如:求一大堆数据的总和及向量的数量积,更典型的例子就是多媒体应用程式(画像、影像、及声音)与及众多不同总类的科学及工程上的工作。当常量处理器只能针对一组数据于单一命令周期内完全执行提取、解码、执行和写回四个阶段的同时,向量处理器已能对较大型的数据如相同时间内执行相同动作。当然,这假设了这个应用程式于单一命令周期内对处理器进行多次要求。
大多数早期的向量处理器,例如Cray-1,大多都只会用于和科研及密码学有关的应用程式。但是,随着多媒体向数码媒体转移,对于能做到‘单指令,多资料’的普通用途处理器需求大增。于是,在浮点计算器普及化不久,拥有‘单指令,多资料’功能的普通用途处理器便面世了。有些早期的‘单指令,多资料’规格,如英特尔的MMX,只能作整数运算。因为大多数要求‘单指令,多资料’的应用程式都要处理浮点数字,所以这个规格对软件开发者无疑是一个主要障碍。幸好,这些早期的设计慢慢地被改进和重新设计为现时普遍的‘单指令,多资料’新规格,AMD公司也推出了第一个真正能执行浮点SIMD指令集3DNow!,在每个时脉周期可得到4个单精确度浮点数结果,是当时一般x87浮点处理器的4倍。新规格通常都于一ISA关连着。近年,一些值得注意的例子一定要数英特尔的SSE和PowerPC相关的AltiVec(亦称为VMX)。[注 16]
多核心
多核心中央处理器是在中央处理器晶片或封装中包含多个处理器核心,以偶数为核心数目较为常见,一般共享二级缓存。现今使用双核心和四核心以上处理器的个人电脑已相当普遍。
第一颗双核心处理器为IBM POWER4处理器,2012年IBM发布了最新8核心的POWER 7+处理器,拥有80MB L3缓存/晶片。
性能
CPU的性能和速度取决于时钟频率(一般以赫兹或十亿赫兹计算,即hz与Ghz)和每周期可处理的指令(IPC),两者合并起来就是每秒可处理的指令(IPS)。[7] IPS值代表了CPU在几种人工指令序列下“高峰期”的执行率,指示和应用。而现实中CPU组成的混合指令和应用,可能需要比IPS值显示的,用更长的时间来完成。而内存层次结构的性能也大大影响中央处理器的性能。通常工程师便用各种已标准化的测试去测试CPU的性能,已标准化的测试通常被称为“基准”(Benchmarks)。如SPECint,此软仵试图模拟现实中的环境。测量各常用的应用程式,试图得出现实中CPU的绩效。
提高电脑的处理性能,亦使用多核心处理器。原理基本上是一个集成电路插入两个以上的个别处理器(意义上称为核心)[8]。在理想的情况下,双核心处理器性能将是宏内核处理器的两倍。然而,在现实中,因不完善的软件算法,多核心处理器性能增益远远低于理论,增益只有50%左右。但增加核心数量的处理器,依然可增加一台电脑可以处理的工作量。这意味着该处理器可以处理大量的不同步的指令和事件,可分担第一核心不堪重负的工作。有时,第二核心将和相邻核心同时处理相同的任务,以防止崩溃。
CPU发热原理
CPU是电脑系统中的核心组件,负责执行各种计算和指令操作。当CPU运行时,它会进行大量的电子计算和数据处理操作,这需要电流通过晶片内部的导线和晶体管进行传输和开关操作。这个过程会导致电子之间的摩擦和碰撞,产生能量损耗,进而转化为热能。
另外,现代CPU在高性能的同时也具有较高的功耗。当CPU运行时,它会消耗相当的电能,其中一部分会被转化为热能。
实际应用
中央处理器大规模应用在个人电脑上,现今电脑可进入家庭。全因集成电路的发展,令PC在大小、性能以及价位等多个方面均有长足的进步。现今中央处理器价钱平宜,用户可自行组装个人电脑。主板等主要电脑器件,均配合中央处理器设计。不同类型的中央处理器安装到主板上不同类型的CPU插槽中(如英特尔的LGA 1700、超微半导体的Socket AM5),令中央处理器变得更省电,温度更低。大多数IBM PC兼容机(Pentium以后被称为“标准PC”(Standard PC))使用x86架构的处理器,他们主要由英特尔和超微半导体两家公司生产,此外威盛电子也有参与中央处理器的生产。但与IBM PC兼容机不同,在2006年之前苹果电脑所使用的处理器一直是IBM PowerPC RISC,之后的苹果电脑转而采用英特尔的处理器,以及EFI固件。可见中央处理器在现代电脑的重要地位。[来源请求]
著名公司
以下公司曾经或正在生产中央处理器;包含已经倒闭、退出市场或被并购的公司。
- AMD(超微)
- Intel(英特尔)
- Andes (晶心科技)
- ARM(安谋)
- Apple(苹果)
- Broadcom Limited(博通)
- Cirrus Logic(凌云逻辑)
- Cyrix(赛瑞克斯)
- 龙芯(中国科学院)
- DEC(迪吉多)
- Fairchild(仙童)
- Fujitsu(富士通)
- Harris(哈瑞斯)
- Hewlett Packard(惠普)
- Hitachi(日立)
- HUAWEI (华为)
- IBM(国际商业机器)
- IDT(IDT)
- Intersil(Intersil)
- Maxwell(麦克斯韦)
- MHS(MHS)
- Microsystems International(Microsystems International)
- MIPS Technologies(美普思科技)
- Mitsubishi(三菱)
- MOS Technology(MOS Technology)
- Motorola (摩托罗拉)
- MediaTek(联发科技)
- NS(国家半导体)
- NEC(日本电气)
- NexGen(NexGen)
- OKI(冲电气)
- OPTi(OPTi)
- Philips(飞利浦)
- Qualcomm(高通)
- RCA(美国无线电)
- Renesas(瑞萨)
- Rise(Rise)
- Rockchip(瑞芯微电子)
- Rockwell(洛克威尔)
- Samsung (三星)
- SGS(SGS)
- Sharp(Sharp)
- ST(意法半导体)
- Siemens(西门子)
- Synertek(Synertek)
- Sun(昇阳)
- Thompson(托马森)
- Thomson(汤姆逊半导体)
- TSMC(台积电)
- TI(德克萨斯仪器)
- Toshiba(东芝)
- Transmeta(全美达)
- UMC(联电)
- VIA(威盛)
- Western Design Center(西部设计中心)
- Western Electric(西部电气)
- ZiLOG(ZiLOG)
注释
- ^ 虽然EDVAC在ENIAC建造之前几年(2015)就已在设计,ENIAC已在1948年改造成能执行储存程序的电脑,此时EDVAC正在建造。虽然建造时因费用与时限的关系而将储存程序功能从ENIAC的蓝图中移除,ENIAC依然早于EDVAC成为第一个储存程序型电脑。
- ^ 在正常运作时造成的阴极劣化最终将导致真空管停止运作。另外,有时候真空管的封口有缺陷也会加速阴极劣化,请参照真空管。
- ^ 因为程序计数器记录的是内存地址,而不是指令,所以它的增长取决于指令在内存中所占的单位数。在固定长度指令ISA中,每个指令所占用的内存单位是相同的。例如一个32位的ISA固定长度指令将使用8位内存单位,而且每次将增加4个PC单位。使用变量长度的ISA指令,如x86,它的PC在内存中的增长量取决于最后一个指令的长度。这里要注意的是在更复杂的CPU中,最后一个指令的运行不一定会导至PC单位的增长,特别的是在大量数据传输和超标量体系结构中。
- ^ 因为CPU指令集的结构是基于它的接口和使用方法,所以它经常用来区别CPU的"种类"。例如一个PowerPC CPU会用到许多不的Power ISA变量。有一些CPU,如英特尔Itanium,可以解译多个ISA指令;不过这项工作大多由软件来完成。多于直接将它在硬件中实现。(参见模拟器)
- ^ 一些早期的电脑如马克一号并不支持任何"jump"指令,因些而限制了程序的复杂性。这理由很大程度上导致它们不被认为是严格意义上的CPU,尽管它们和存储程序电脑相似。
- ^ 这里的描述事实上是一个简单的关于经典RISC流水线的介绍。它很大程度上没有考虑到CPU缓存的重要性,因而也少了对数据传输访问的介绍。如果想了解更多资讯请查阅相关资料。
- ^ 物理概念上的电压是一种模拟值,实际上可能的值可以有无限多种。为了物理上表达二进制数,我们把特定范围的电压的值定为1或者是0。电压的范围通常是构建CPU的部件的运作参数,例如晶体管的阈值限制,所决定。
- ^ 当CPU的整数精确度范围被限制的时候,它可以透过软件和硬件技术相互合作的方法来克服。当我们使用额外的内存时,软件可以处理比CPU限制大几个数量级的整数。有时CPU的ISA也会提供相关的指令,帮助软件更快速地处理大整数。虽然这种处理大整数的方法会比使用拥有高整数精确度的CPU要慢一些,对于处理那些需要大精确度整数的应用,它是一种可取的方法,特别是整数精确度的原生支持成本过高的时候。
- ^ 事实上所有同步运算CPU都运用了时序逻辑电路和组合逻辑电路的结合。(参见布尔逻辑)
- ^ 运用时钟门控技术的一个最近的设计是基于IBM PowerPC的Xbox 360。它大量利用时钟门控技术来减少在运行视频游戏时所需电量的消耗。
- ^ 我们要注意的是不管是ILP或TLP都不可以做为对方的上层控制。它们在增强CPU平行处理能力上有着不同的意义。它们有着各自的优缺点,而且取决于CPU可处理软件种类。High-TLP CPUs经常被用来处理一些可以很自身份解成许多小程序的软件中.因而称它为"embarrassingly parallel problems." 因此high TLP设计方法可以连续快速的处理一些运算问题,比如SMP会使用太多的时间来处理ILP装置(超标量体系结构的CPU),反之亦然。
- ^ 最佳(或最高)IPC率在超标量体系结构中是很难保持不变的,它可能导致使传输总是失败.因此在高超标量体系CPU中,平均相同IPC的方法的使用,多于最佳(或最高)IPC的使用.
- ^ 尽管SMP和NUMA都是在系统层中的TLP设计方案,但它们还是需要CPU在设计中的支持.
- ^ 因TPL的使用比ILP时间更长,所以晶片层多处理技术或多或少的只可以在以后的基于集成电路的微处理器。集成电路多处理技术中看到。导至这种情况的原因是,它不在适和早期的分立器件装置,而且也只被运用了几年(1990-2000),如今注意力都集中在设计高运算能力的CPU,这些CPU都运用了超标量结构的IPC设计方案,如英特尔Pentium 4。尽管如此,以前的技术似乎又被运用到现在CPU设计中来,又换回到稍底层的High -TLP传输中。它表现在增值双核或多核CMP的设计中,如英特尔最新的设计中少了一些超标量体系结构的设计p6,之后的CPU多运用了CMP,包括x86-64、Opteron和Athlon 64 x2,还有Sparc UltraSparc T1,IBM Power4和Power5。还有一些其它的视频游戏机的CPU,如x360中的三核PowerPC设计。
- ^ 早期scalar被用来比较不同ILP方案的IPC(instructions per cycle)的间隔数量。在这里它表示数学中用来比较向量大小的一个概念。
- ^ 虽然在英特尔的主流CPU中,MMX已经被SSE/SSE2/SSE3所取代,但在之后的CPU中仍然支持MMX技术,通常使用拥有丰富的SSE指令集的相同的硬件来提供大部分的MMX功能。
参考文献
- ^ 中央處理單元. 乐词网. 国家教育研究院. (繁体中文)
- ^ First Draft of a Report on the EDVAC (PDF). Moore School of Electrical Engineering, University of Pennsylvania. 1945 [2022-07-02]. (原始内容存档 (PDF)于2021-03-09).
- ^ Weik, Martin H. A Third Survey of Domestic Electronic Digital Computing Systems. Ballistic Research Laboratory. 1961 [2006-03-16]. (原始内容存档于2017-09-11).
- ^ 4.0 4.1 Amdahl, G. M.; Blaauw, G. A.; Brooks, F. P. Jr. Architecture of the IBM System/360. IBM Journal of Research and Development (IBM). April 1964, 8 (2): 87–101. ISSN 0018-8646. doi:10.1147/rd.82.0087.
- ^ LSI-11 Module Descriptions (PDF). LSI-11, PDP-11/03 user's manual 2nd. Maynard, Massachusetts: Digital Equipment Corporation. November 1975: 4–3 [2022-07-02]. (原始内容存档 (PDF)于2021-10-10).
- ^ Garside, J. D.; Furber, S. B.; Chung, S-H. AMULET3 Revealed. University of Manchester Computer Science Department. 1999. (原始内容存档于December 10, 2005).
- ^ "CPU Frequency". CPU World Glossary. CPU World. 25 March 2008. Retrieved 1 January 2010.
- ^ "What is (a) multi-core processor?". Data Center Definitions. SearchDataCenter.com. 27 March 2007. Retrieved 1 January 2010.
外部链接
- CPU简史
- CPU历史上的十个第一
- CMP简要介绍 (页面存档备份,存于互联网档案馆) - 简要的介绍了片上多核处理器,对常见的片上多核处理器采用的技术进行了综述
- Processor Design: An Introduction - 详尽地介绍微处理器的设计,虽然有些资料未完成和落伍,但仍具参考价值。
- 微处理器如何运作(页面存档备份,存于互联网档案馆)
- Pipelining: An Overview (页面存档备份,存于互联网档案馆) - CPU流水线技术的简介,由Ars Technica成员所写。
- SIMD Architectures (页面存档备份,存于互联网档案馆) - SIMD的介绍与说明,尤其着重于SIMD与桌面型电脑的关系。一样由Ars Technica所写。
- 微处理器生产商
- Advanced Micro Devices(页面存档备份,存于互联网档案馆) - AMD,其中一个生产兼容x86电脑的CPU生产商
- ARM Ltd(页面存档备份,存于互联网档案馆) - 安谋国际科技,少数只授权其CPU设计而没有自行制造的公司。嵌入式应用软件最常被ARM架构微处理器执行。
- Freescale Semiconductor(页面存档备份,存于互联网档案馆) -(前身是Motorola的)飞思卡尔,设计数款嵌入装置以及SoC PowerPC处理器。
- IBM Microelectronics - IBM的微电子分公司,设计出许多IBM POWER与PowerPC,包括许多游戏机的CPU。
- Intel Corp(页面存档备份,存于互联网档案馆) - 英特尔,许多著名CPU的生产者,包括IA-32、IA-64与XScale。也是许多用在他们自家CPU的周边产品的制造者。
- MIPS Technologies(页面存档备份,存于互联网档案馆) - MIPS科技公司,MIPS架构的制造者,在RISC设计领域的先锋。
- Sun Microsystems(页面存档备份,存于互联网档案馆) - 升阳,SPARC架构(RISC)的制造者。
- Transmeta(页面存档备份,存于互联网档案馆) - 全美达,低电力X86兼容CPU的创造者,例如Crusoe与Efficeon。
- VIA(页面存档备份,存于互联网档案馆) - 威盛,低功率X86兼容CPU的制造商,例如C3。