目录
发展历史
CPU出现于大规模集成电路时代,处理器架构设计的迭代更新以及集成电路工艺的不断提升促使其不断发展完善。从最初专用于数学计算到广泛应用于通用计算,从4位到8位、16位、32位处理器,最后到64位处理器,从各厂商互不兼容到不同指令集架构规范的出现,CPU自诞生以来一直在飞速发展。 [1]
CPU发展已经有50多年的历史了。我们通常将其分成六个阶段。 [3]
(1)第一阶段(1971年-1973年)。这是4位和8位低档微处理器时代,代表产品是Intel 4004处理器。 [3]
1971年,Intel生产的4004微处理器将运算器和控制器集成在一个芯片上,标志着CPU的诞生; 1978年,8086处理器的出现奠定了X86指令集架构, 随后8086系列处理器被广泛应用于个人计算机终端、高性能服务器以及云服务器中。 [1]
(2)第二阶段(1974年-1977年)。这是8位中高档微处理器时代,代表产品是Intel 8080。此时指令系统已经比较完善了。 [3]
(3)第三阶段(1978年-1984年)。这是16位微处理器的时代,代表产品是Intel 8086。相对而言已经比较成熟了。 [3]
(4)第四阶段(1985年-1992年)。这是32位微处理器时代,代表产品是Intel 80386。已经可以胜任多任务、多用户的作业。 [3]
1989 年发布的80486处理器实现了5级标量流水线,标志着CPU的初步成熟,也标志着传统处理器发展阶段的结束。 [1]
(5)第五阶段(1993年-2005年)。这是奔腾系列微处理器的时代。 [3]
1995 年11 月,Intel发布了Pentium处理器,该处理器首次采用超标量指令流水结构,引入了指令的乱序执行和分支预测技术,大大提高了处理器的性能, 因此,超标量指令流水线结构一直被后续出现的现代处理器,如AMD(Advanced Micro devices)的锐龙、Intel的酷睿系列等所采用。 [1]
(6)第六阶段(2005年后)。处理器逐渐向更多核心,更高并行度发展。典型的代表有英特尔的酷睿系列处理器和AMD的锐龙系列处理器。 [3]
为了满足操作系统的上层工作需求,现代处理器进一步引入了诸如并行化、多核化、虚拟化以及远程管理系统等功能,不断推动着上层信息系统向前发展。 [1]
工作原理
冯诺依曼体系结构是现代计算机的基础。在该体系结构下,程序和数据统一存储,指令和数据需要从同一存储空间存取,经由同一总线传输,无法重叠执行。根据冯诺依曼体系,CPU的工作分为以下 5 个阶段:取指令阶段、指令译码阶段、执行指令阶段、访存取数和结果写回。 [1]
取指令(IF,instruction fetch),即将一条指令从主存储器中取到指令寄存器的过程。程序计数器中的数值,用来指示当前指令在主存中的位置。当一条指令被取出后,程序计数器(PC)中的数值将根据指令字长度自动递增。 [1]
指令译码阶段(ID,instruction decode),取出指令后,指令译码器按照预定的指令格式,对取回的指令进行拆分和解释,识别区分出不同的指令类别以及各种获取操作数的方法。现代CISC处理器会将拆分已提高并行率和效率。 [1]
执行指令阶段(EX,execute),具体实现指令的功能。CPU的不同部分被连接起来,以执行所需的操作。
访存取数阶段(MEM,memory),根据指令需要访问主存、读取操作数,CPU得到操作数在主存中的地址,并从主存中读取该操作数用于运算。部分指令不需要访问主存,则可以跳过该阶段。 [1]
结果写回阶段(WB,write back),作为最后一个阶段,结果写回阶段把执行指令阶段的运行结果数据“写回”到某种存储形式。结果数据一般会被写到CPU的内部寄存器中,以便被后续的指令快速地存取;许多指令还会改变程序状态字寄存器中标志位的状态,这些标志位标识着不同的操作结果,可被用来影响程序的动作。 [1]
在指令执行完毕、结果数据写回之后,若无意外事件(如结果溢出等)发生,计算机就从程序计数器中取得下一条指令地址,开始新一轮的循环,下一个指令周期将顺序取出下一条指令。 [1]许多复杂的CPU可以一次提取多个指令、解码,并且同时执行。
简介
中央处理器(CPU),是电子计算机的主要设备之一,电脑中的核心配件。其功能主要是解释计算机指令以及处理计算机软件中的数据。CPU是计算机中负责读取指令,对指令译码并执行指令的核心部件。中央处理器主要包括两个部分,即控制器、运算器,其中还包括高速缓冲存储器及实现它们之间联系的数据、控制的总线。电子计算机三大核心部件就是CPU、内部存储器、输入/输出设备。中央处理器的功效主要为处理指令、执行操作、控制时间、处理数据。 [2]
在计算机体系结构中,CPU是对计算机的所有硬件资源(如存储器、输入输出单元) 进行控制调配、执行通用运算的核心硬件单元。CPU是计算机的运算和控制核心。计算机系统中所有软件层的操作,最终都将通过指令集映射为CPU的操作。 [1]
性能结构
性能衡量指标
对于CPU而言,影响其性能的指标主要有主频、 CPU的位数、CPU的缓存指令集、CPU核心数和IPC(每周期指令数)。所谓CPU的主频,指的就是时钟频率,它直接的决定了CPU的性能,可以通过超频来提高CPU主频来获得更高性能。而CPU的位数指的就是处理器能够一次性计算的浮点数的位数,通常情况下,CPU的位数越高,CPU进行运算时候的速度就会变得越快。21世纪20年代后个人电脑使用的CPU一般均为64位,这是因为64位处理器可以处理范围更大的数据并原生支持更高的内存寻址容量,提高了人们的工作效率。而CPU的缓存指令集是存储在CPU内部的,主要指的是能够对CPU的运算进行指导以及优化的硬程序。一般来讲,CPU 的缓存可以分为一级缓存、二级缓存和三级缓存,缓存性能直接影响CPU处理性能。部分特殊职能的CPU可能会配备四级缓存。 [4]
CPU结构
通常来讲,CPU的结构可以大致分为运算逻辑部件、寄存器部件和控制部件等。所谓运算逻辑部件,主要能够进行相关的逻辑运算,如:可以执行移位操作以及逻辑操作,除此之外还可以执行定点或浮点算术运算操作以及地址运算和转换等命令,是一种多功能的运算单元。而寄存器部件则是用来暂存指令、数据和地址的。控制部件则是主要用来对指令进行分析并且能够发出相应的控制信号。
对于中央处理器来说,可将其看作一个规模较大的集成电路,其主要任务是加工和处理各种数据。传统计算机的储存容量相对较小,其对大规模数据的处理过程中具有一定难度,且处理效果相对较低。随着我国信息技术水平的迅速发展,随之出现了高配置的处理器计算机,将高配置处理器作为控制中心,对提高计算机CPU的结构功能发挥重要作用。中央处理器中的核心部分就是控制器、运算器,其对提高计算机的整体功能起着重要作用,能够实现寄存控制、逻辑运算、信号收发等多项功能的扩散,为提升计算机的性能奠定良好基础。 [2]
集成电路在计算机内起到了调控信号的作用,根据用户操作指令执行不同的指令任务。中央处理器是一块超大规模的集成电路。它由运算器、控制器、寄存器等组成,如下图,关键操作在于对各类数据的加工和处理。 [5]
中央处理器结构 [5]
传统计算机存储容量较小,面对大规模数据集的操作效率偏低。新一代计算机采用高配置处理器作为控制中心,CPU在结构功能方面有了很大的提升空间。中央处理器以运算器、控制器为主要装置,逐渐扩散为逻辑运算、寄存控制、程序编码、信号收发等多项功能。这些都加快了CPU调控性能的优化升级。 [5]
CPU总线
CPU总线是在计算机系统中最快的总线,同时也是芯片组与主板的核心。人们通常把和CPU直接相连的局部总线叫做CPU总线或者称之为内部总线,将那些和各种通用的扩展槽相接的局部总线叫做系统总线或者是外部总线。在内部结构比较单一的CPU中,往往只设置一组数据传送的总线即CPU内部总线,用来将CPU内部的寄存器和算数逻辑运算部件等连接起来,因此也可以将这一类的总线称之为ALU总线。而部件内的总线,通过使用一组总线将各个芯片连接到一起,因此可以将其称为部件内总线,一般会包含地址线以及数据线这两组线路。系统总线指的是将系统内部的各个组成部分连接在一起的线路,是将系统的整体连接到一起的基础;而系统外的总线,是将计算机和其他的设备连接到一起的基础线路。 [4]
核心部分
运算器
运算器是指计算机中进行各种算术和逻辑运算操作的部件, 其中算术逻辑单元是中央处理核心的部分。 [2]
(1)算术逻辑单元(ALU)。算术逻辑单元是指能实现多组 算术运算与逻辑运算的组合逻辑电路,其是中央处理中的重要组成部分。算术逻辑单元的运算主要是进行二位元算术运算,如加法、减法、乘法。在运算过程中,算术逻辑单元主要是以计算机指令集中执行算术与逻辑操作,通常来说,ALU能够发挥直接读入读出的作用,具体体现在处理器控制器、内存及输入输出设备等方面,输入输出是建立在总线的基础上实施。输入指令包含一 个指令字,其中包括操作码、格式码等。 [2]
(2)中间寄存器(IR)。其长度为 128 位,其通过操作数来决定实际长度。IR 在“进栈并取数”指令中发挥重要作用,在执行该指令过程中,将ACC的内容发送于IR,之后将操作数取到ACC,后将IR内容进栈。 [2]
(3)运算累加器(ACC)。当前的寄存器一般都是单累加器,其长度为128位。对于ACC来说,可以将它看成可变长的累加器。在叙述指令过程中,ACC长度的表示一般都是将ACS的值作为依据,而ACS长度与 ACC 长度有着直接联系,ACS长度的加倍或减半也可以看作ACC长度加倍或减半。 [2]
(4)描述字寄存器(DR)。其主要应用于存放与修改描述字中。DR的长度为64位,为了简化数据结构处理,使用描述字发挥重要作用。 [2]
(5)B寄存器。其在指令的修改中发挥重要作用,B 寄存器长度为32位,在修改地址过程中能保存地址修改量,主存地址只能用描述字进行修改。指向数组中的第一个元素就是描述字, 因此,访问数组中的其它元素应当需要用修改量。对于数组成员来说,其是由大小一样的数据或者大小相同的元素组成的,且连续存储,常见的访问方式为向量描述字,因为向量描述字中的地址为字节地址,所以,在进行换算过程中,首先应当进行基本地址 的相加。对于换算工作来说,主要是由硬件自动实现,在这个过程中尤其要注意对齐,以免越出数组界限。 [2]
控制器
控制器是指按照预定顺序改变主电路或控制电路的接线和 改变电路中电阻值来控制电动机的启动、调速、制动与反向的主令装置。控制器由程序状态寄存器PSR,系统状态寄存器SSR, 程序计数器PC,指令寄存器等组成,其作为“决策机构”,主要任务就是发布命令,发挥着整个计算机系统操作的协调与指挥作用。 控制的分类主要包括两种,分别为组合逻辑控制器、微程序控制器,两个部分都有各自的优点与不足。其中组合逻辑控制器结构相对较复杂,但优点是速度较快;微程序控制器设计的结构简单,但在修改一条机器指令功能中,需对微程序的全部重编。 [2]
品牌介绍
“龙芯”系列芯片
“龙芯”系列芯片是由中国科学院中科技术有限公司设计研制的,采用MIPS体系结构,具有自主知识产权,产品现包括龙芯1号小CPU、龙芯2号中CPU和龙芯3号大CPU三个系列,此外还包括龙芯7A1000桥片。 龙芯1号系列32/64位处理器专为嵌入式领域设计,主要应用于云终端、工业控制、数据采集、手持终端、网络安全、消费电子等领域,具有低功耗、高集成度及高性价比等特点。其中龙芯lA 32位处理器和龙芯1C 64位处理器稳定工作在266~300 MHz,龙芯1B处理器是一款轻量级32位芯片。龙芯1D处理器是超声波热表、水表和气表的专用芯片。2015年,新一代北斗导航卫星搭载着我国自主研制的龙芯1E和1F芯片,这两颗芯片主要用于完成星间链路的数据处理任务一。 [6]
龙芯2号系列是面向桌面和高端嵌入式应用的64位高性能低功耗处理器。龙芯2号产品包括龙芯2E、2F、2H和2K1000等芯片。龙芯2E首次实现对外生产和销售授权。龙芯2F平均性能比龙芯 2E高20%以上,可用于个人计算机、行业终端、工业控制、数据采集、网络安全等领域。龙芯2H于2012年推出正式产品,适用计算机、云终端、网络设备、消费类电子等领域需求,同时可作为HT或者 PCI-e接口的全功能套片使用。2018年,龙芯推出龙芯2K1000处理器,它主要是面向网络安全领域及移动智能领域的双核处理芯片,主频可达1 GHz,可满足工业物联网快速发展、自主可控工业安全体系的需求。 [6]
龙芯3号系列是面向高性能计算机、服务器和高端桌面应用的多核处理器,具有高带宽,高性能,低功耗的特征。龙芯3A3000/3B3000处理器采用自主微结构设计,主频可达到1.5 GHz以上;计划2019年面向市场的龙芯3A4000为龙芯第三代产品的首款四核芯片,该芯片基于28nm工艺,采用新研发的GS464V 64位高性能处理器核架构,并实现 256位向量指令,同时优化片内互连和访存通路, 集成64位DDR3/4内存控制器,集成片内安全机 制,主频和性能将再次得到大幅提升。 [6]
龙芯7A1000桥片是龙芯的第一款专用桥片组产品,目标是替代AMD RS780+SB710桥片组,为龙芯处理器提供南北桥功能。它于2018年2月份发布,目前搭配龙芯3A3000以及紫光4G DDR3内存应用在一款高性能网络平台上。该方案整体性能相较于3A3000+780e平台有较大提升,具有高国产率、高性能、高可靠性等特点。 [6]
Intel
根据Intel产品线规划,截止2021年Intel十一代消费级酷睿有六类产品:i9/i7/i5/i3/奔腾/赛扬。此外还有面向服务器的至强铂金/金牌/银牌/铜牌和面向HEDT平台的至强W系列。
AMD
根据AMD产品线规划,截至2021年AMD锐龙5000系列处理器有Ryzen 9/Ryzen 7/Ryzen 5/Ryzen 3四个消费级产品线。此外还有面向服务器市场的第三代霄龙EPYC处理器和面向HEDT平台的线程撕裂者系列。 [7]
上海兆芯
上海兆芯集成电路有限公司是成立于2013年的国资控股公司,其生产的处理器采用x86架构,产品主要有开先ZX-A、ZX-c/ZX-C+、 ZX-D、开先KX一 5000和KX一6000;开胜ZX—C+、ZX—D、KH一20000 等。其中开先KX一5000系列处理器采用28 nm工艺,提供4核或8核两种版本,整体性能较上一代产品提升高达140%,达到国际主流通用处理器性能水准,能够全面满足党政桌面办公应用,以及包括4K超高清视频观影等多种娱乐应用需求。开胜KH-20000系列处理器是兆芯面向服务器等设备推出的CPU产品。开先KX-6000系列处理器主频高达3.0 GHz,兼容全系列Windows操作系统及中科方德、中标麒麟、普华等国产自主可控操作系统,性能与Intel第七代的酷睿i5相当。 [6]
上海申威
申威处理器简称“Sw处理器”,出自于DEC的Alpha 21164,采用Alpha架构,具有完全自主知识产权,其产品有单核Sw-1、双核Sw-2、四核Sw-410、十六核SW-1600/SW-1610等。神威蓝光超级计算机使用了8704片SW一1600,搭载神威睿思操作系统,实现了软件和硬件全部国产化。而基于Sw-26010构建的“神威·太湖之光”超级计算机自2016 年6月发布以来,已连续四次占据世界超级计算机TOP 500榜单第一,“神威·太湖之光”上的两项千万 核心整机应用包揽了2016、2017年度世界高性能计算应用领域最高奖“戈登·贝尔”奖。 [6]
分类
指令集的方式
CPU的分类还可以按照指令集的方式将其分为精简指令集计算机(RISC)和复杂指令集计算机(CISC)。RISC指令长度和执行时间恒定,CISC指令长度和执行时间不一定。 RISC 指令的并行的执行程度更好,并且编译器的效率也较高。CISC指令则对不同的任务有着更好的优化,代价是电路复杂且较难提高并行度。典型的CISC指令集有x86微架构,典型的RISC指令集有ARM微架构。但在现代处理器架构中RISC和CISC指令均会在译码环节进行转换,拆分成CPU内部的类RISC指令 [4]
嵌入式系统CPU
传统的嵌入式领域所指范畴非常广泛,是处理器除了服务器和PC领域之外的主要应用领域。所谓“嵌入式”是指在很多芯片中,其所包含的处理器就像嵌入在里面不为人知一样。 [8]
近年来随着各种新技术新领域的进一步发展,嵌入式领域本身也被发展成了几个不同的子领域而产生了分化。 [8]
首先是随着智能手机(Mobile Smart Phone)和手持设备(Mobile Device)的发展,移动(Mobile)领域逐渐发展成了规模匹敌甚至超过PC领域的一个独立领域。由于Mobile领域的处理器需要加载Linux操作系统,同时涉及复杂的软件生态,因此,其具有和PC领域一样对软件生态的严重依赖。 [8]
其次是实时(Real Time)嵌入式领域。该领域相对而言没有那么严重的软件依赖性,因此没有形成绝对的垄断,但是由于ARM处理器IP商业推广的成功,目前仍然以ARM的处理器架构占大多数市场份额,其他处理器架构譬如Synopsys ARC等也有不错的市场成绩。 [8]
最后是深嵌入式领域。该领域更像前面所指的传统嵌入式领域。该领域的需求量非常之大,但往往注重低功耗、低成本和高能效比,无须加载像Linux这样的大型应用操作系统,软件大多是需要定制的裸机程序或者简单的实时操作系统,因此对软件生态的依赖性相对比较低。 [8]
大型机CPU
大型机,或者称大型主机。大型机使用专用的处理器指令集、操作系统和应用软件。大型机一词,最初是指装在非常大的带框铁盒子里的大型计算机系统,以用来同小一些的小型机和微型机有所区别。 [9]
减少大型机CPU消耗是个重要工作。节约每个CPU周期,不仅可以延缓硬件升级,还可以降低基于使用规模的软件授权费。
大型机体系结构主要包括以下两点:高度虚拟化,系统资源全部共享。大型机可以整合大量的负载于一体,并实现资源利用率的最大化;异步I/O操作。即当执行I/O操作时CPU将I/O指令交给I/O子系统来完成,CPU自己被释放执行其它指令。因此主机在执行繁重的I/O任务的同时,还可以同时执行其它工作。 [9]
控制技术形式
中央处理器强大的数据处理功有效提升了计算机的工作效率,在数据加工操作时,并不仅仅只是一项简单的操作,中央处理器的操作是建立在计算机使用人员下达的指令任务基础上,在执行指令任务过程中,实现用户输入的控制指令与CPU的相对应。随着我国信息技术的快速发展,计算机在人们生活、工作 以及企业办公自动化中得到广泛应用,其作为一种主控设备,为促进电子商务网络的发展起着促进作用,使 CPU 控制性能的升级进程得到很大提高。指令控制、实际控制、操作控制等就是计算机CPU技术应用作用表现。 [2]
(1)选择控制。集中处理模式的操作,是建立在具体程序指令的基础上实施,以此满足计算机使用者的需求,CPU 在操作过程中可以根据实际情况进行选择,满足用户的数据流程需求。 指令控制技术发挥的重要作用。根据用户的需求来拟定运算方式,使数据指令动作的有序制定得到良好维持。CPU在执行当中,程序各指令的实施是按照顺利完成,只有使其遵循一定顺序,才能保证计算机使用效果。CPU主要是展开数据集自动化处理,其 是实现集中控制的关键,其核心就是指令控制操作。 [2]
(2)插入控制。CPU 对于操作控制信号的产生,主要是通过指令的功能来实现的,通过将指令发给相应部件,达到控制这些部件的目的。实现一条指令功能,主要是通过计算机中的部件执行一序列的操作来完成。较多的小控制元件是构建集中处理模式的关键,目的是为了更好的完成CPU数据处理操作。 [2]
(3)时间控制。将时间定时应用于各种操作中,就是所谓的时间控制。在执行某一指令时,应当在规定的时间内完成,CPU的指令是从高速缓冲存储器或存储器中取出,之后再进行指令译码操作,主要是在指令寄存器中实施,在这个过程中,需要注意严格控制程序时间。 [2]
与GPU比较
GPU
GPU即图像处理器,CPU和GPU的工作流程和物理结构大致是类似的,相比于CPU而言,GPU的工作更为单一。在大多数的个人计算机中,GPU仅仅是用来绘制图像的。如果CPU想画一个二维图形,只需要发个指令给GPU,GPU就可以迅速计算出该图形的所有像素,并且在显示器上指定位置画出相应的图形。由于GPU会产生大量的热量,所以通常显卡上都会有独立的散热装置。 [3]
设计结构
CPU有强大的算术运算单元,可以在很少的时钟周期内完成算术计算。同时,有很大的缓存可以保存很多数据在里面。此外,还有复杂的逻辑控制单元,当程序有多个分支的时候, 通过提供分支预测的能力来降低延时。GPU是基于大的吞吐量设计,有很多的算术运算单元和很少的缓存。同时GPU支持大量的线程同时运行,如果他们需要访问同一个数据,缓存会合并这些访问,自然会带来延时的问题。尽管有延时,但是因为其算术运算单元的数量庞大,因此能够达到一个非常大的吞吐量的效果。 [3]
使用场景
显然,因为CPU有大量的缓存和复杂的逻辑控制单元,因此它非常擅长逻辑控制、串行的运算。相比较而言,GPU因为有大量的算术运算单元,因此可以同时执行大量的计算工作,它所擅长的是大规模的并发计算, 计算量大但是没有什么技术含量,而且要重复很多次。这样一说,我们利用GPU来提高程序运算速度的方法就显而易见了。使用CPU来做复杂的逻辑控制,用GPU来做简单但是量大的算术运算,就能够大大地提高程序的运行速度。 [3]
安全问题
CPU 蓬勃发展的同时也带来了许多的安全问题。1994 年出现在Pentium处理器上的 FDIV bug(奔腾浮点除错误)会导致浮点数除法出现错误;1997年Pentium处理器上的F00F异常指令可导致CPU死机;2011年Intel处理器可信执行技术(TXT,trusted execution technology)存在缓冲区溢出问题,可被攻击者用于权限提升;2017年 Intel管理引擎(ME,management engine)组件中的漏洞可导致远程非授权的任意代码执行;2018年,Meltdown 和Spectre两个CPU漏洞几乎影响到过去20年制造的每一种计算设备,使得存储在数十亿设备上的隐私信息存在被泄露的风险。这些安全问题严重危害国家网络安全、关键基础设施安全及重要行业的信息安全,已经或者将要造成巨大损失。 [1]
未来发展
通用中央处理器(CPU)芯片是信息产业的基础部件,也是武器装备的核心器件。我国缺少具有自主知识产权的CPU技术和产业,不仅造成信息 产业受制于人,而且国家安全也难以得到全面保障。 “十五”期间,国家“863计划”开始支持自主研发CPU。“十一五”期间,“核心电子器件、高端通用芯片及基础软件产品”(“核高基”)重大专项将“863计 划”中的CPU成果引入产业。从“十二五”开始,我国在多个领域进行自主研发CPU的应用和试点,在一定范围内形成了自主技术和产业体系,可满足武器装备、信息化等领域的应用需求。但国外CPU垄断已久,我国自主研发CPU产品和市场的成熟还需要一定时间。 [10]