cpu是啥和啥组成

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了cpu是啥和啥组成相关的知识,希望对你有一定的参考价值。

CPU组成:运算逻辑部件、寄存器部件和控制部件。 参考技术A

cpu是一块超大规模的集成电路,是一台计算机的运算核心(Core)和控制核心( Control Unit)。它的功能主要是解释计算机指令以及处理计算机软件中的数据。它是由控制器和运算器组成。

中央处理器(CPU,Central Processing Unit)是一块超大规模的集成电路,是一台计算机的运算核心(Core)和控制核心( Control Unit)。它的功能主要是解释计算机指令以及处理计算机软件中的数据。

中央处理器主要包括运算器(算术逻辑运算单元,ALU,Arithmetic Logic Unit)和高速缓冲存储器(Cache)及实现它们之间联系的数据(Data)、控制及状态的总线(Bus)。它与内部存储器(Memory)和输入/输出(I/O)设备合称为电子计算机三大核心部件。

物理结构

CPU包括运算逻辑部件、寄存器部件和控制部件等。

逻辑部件

英文Logic components;运算逻辑部件。可以执行定点或浮点算术运算操作、移位操作以及逻辑操作,也可执行地址运算和转换。

寄存器

寄存器部件,包括寄存器、专用寄存器和控制寄存器。 通用寄存器又可分定点数和浮点数两类,它们用来保存指令执行过程中临时存放的寄存器操作数和中间(或最终)的操作结果。 通用寄存器是中央处理器的重要部件之一。

控制部件

英文Control unit;控制部件,主要是负责对指令译码,并且发出为完成每条指令所要执行的各个操作的控制信号。

其结构有两种:一种是以微存储为核心的微程序控制方式;一种是以逻辑硬布线结构为主的控制方式。

微存储中保持微码,每一个微码对应于一个最基本的微操作,又称微指令;各条指令是由不同序列的微码组成,这种微码序列构成微程序。中央处理器在对指令译码以后,即发出一定时序的控制信号,按给定序列的顺序以微周期为节拍执行由这些微码确定的若干个微操作,即可完成某条指令的执行。

简单指令是由(3~5)个微操作组成,复杂指令则要由几十个微操作甚至几百个微操作组成。

主要功能

处理指令

英文Processing instructions;这是指控制程序中指令的执行顺序。程序中的各指令之间是有严格顺序的,必须严格按程序规定的顺序执行,才能保证计算机系统工作的正确性。

执行操作

英文Perform an action;一条指令的功能往往是由计算机中的部件执行一系列的操作来实现的。CPU要根据指令的功能,产生相应的操作控制信号,发给相应的部件,从而控制这些部件按指令的要求进行动作。

控制时间

英文Control time;时间控制就是对各种操作实施时间上的定时。在一条指令的执行过程中,在什么时间做什么操作均应受到严格的控制。只有这样,计算机才能有条不紊地工作。

处理数据

即对数据进行算术运算和逻辑运算,或进行其他的信息处理。

其功能主要是解释计算机指令以及处理计算机软件中的数据, 并执行指令。在微型计算机中又称微处理器,计算机的所有操作都受CPU控制,CPU的性能指标直接决定了微机系统的性能指标。CPU具有以下4个方面的基本功能:数据通信,资源共享,分布式处理,提供系统可靠性。运作原理可基本分为四个阶段:提取(Fetch)、解码(Decode)、执行(Execute)和写回(Writeback)。

工作过程

CPU从存储器或高速缓冲存储器中取出指令,放入指令寄存器,并对指令译码。它把指令分解成一系列的微操作,然后发出各种控制命令,执行微操作系列,从而完成一条指令的执行。指令是计算机规定执行操作的类型和操作数的基本命令。指令是由一个字节或者多个字节组成,其中包括操作码字段、一个或多个有关操作数地址的字段以及一些表征机器状态的状态字以及特征码。有的指令中也直接包含操作数本身。

提取

第一阶段,提取,从存储器或高速缓冲存储器中检索指令(为数值或一系列数值)。由程序计数器(Program Counter)指定存储器的位置。(程序计数器保存供识别程序位置的数值。换言之,程序计数器记录了CPU在程序里的踪迹。)

解码

CPU根据存储器提取到的指令来决定其执行行为。在解码阶段,指令被拆解为有意义的片段。根据CPU的指令集架构(ISA)定义将数值解译为指令。一部分的指令数值为运算码(Opcode),其指示要进行哪些运算。其它的数值通常供给指令必要的信息,诸如一个加法(Addition)运算的运算目标。

执行

在提取和解码阶段之后,紧接着进入执行阶段。该阶段中,连接到各种能够进行所需运算的CPU部件。

例如,要求一个加法运算,算术逻辑单元(ALU,Arithmetic Logic Unit)将会连接到一组输入和一组输出。输入提供了要相加的数值,而输出将含有总和的结果。ALU内含电路系统,易于输出端完成简单的普通运算和逻辑运算(比如加法和位元运算)。如果加法运算产生一个对该CPU处理而言过大的结果,在标志暂存器里可能会设置运算溢出(Arithmetic Overflow)标志。

写回

最终阶段,写回,以一定格式将执行阶段的结果简单的写回。运算结果经常被写进CPU内部的暂存器,以供随后指令快速存取。在其它案例中,运算结果可能写进速度较慢,但容量较大且较便宜的主记忆体中。某些类型的指令会操作程序计数器,而不直接产生结果。这些一般称作“跳转”(Jumps),并在程式中带来循环行为、条件性执行(透过条件跳转)和函式。许多指令会改变标志暂存器的状态位元。这些标志可用来影响程式行为,缘由于它们时常显出各种运算结果。例如,以一个“比较”指令判断两个值大小,根据比较结果在标志暂存器上设置一个数值。这个标志可藉由随后跳转指令来决定程式动向。在执行指令并写回结果之后,程序计数器值会递增,反覆整个过程,下一个指令周期正常的提取下一个顺序指令。

性能参数

计算机的性能在很大程度上由CPU的性能决定,而CPU的性能主要体现在其运行程序的速度上。影响运行速度的性能指标包括CPU的工作频率、Cache容量、指令系统和逻辑结构等参数。

主频

主频也叫时钟频率,单位是兆赫(MHz)或千兆赫(GHz),用来表示CPU的运算、处理数据的速度。通常,主频越高,CPU处理数据的速度就越快。

CPU的主频=外频×倍频系数。主频和实际的运算速度存在一定的关系,但并不是一个简单的线性关系。 所以,CPU的主频与CPU实际的运算能力是没有直接关系的,主频表示在CPU内数字脉冲信号震荡的速度。在Intel的处理器产品中,也可以看到这样的例子:1 GHz Itanium芯片能够表现得差不多跟2.66 GHz至强(Xeon)/Opteron一样快,或是1.5 GHz Itanium 2大约跟4 GHz Xeon/Opteron一样快。CPU的运算速度还要看CPU的流水线、总线等各方面的性能指标。

外频

外频是CPU的基准频率,单位是MHz。CPU的外频决定着整块主板的运行速度。通俗地说,在台式机中,所说的超频,都是超CPU的外频(当然一般情况下,CPU的倍频都是被锁住的)相信这点是很好理解的。但对于服务器CPU来讲,超频是绝对不允许的。前面说到CPU决定着主板的运行速度,两者是同步运行的,如果把服务器CPU超频了,改变了外频,会产生异步运行,(台式机很多主板都支持异步运行)这样会造成整个服务器系统的不稳定。

绝大部分电脑系统中外频与主板前端总线不是同步速度的,而外频与前端总线(FSB)频率又很容易被混为一谈。

总线频率

前端总线(FSB)是将CPU连接到北桥芯片的总线。前端总线(FSB)频率(即总线频率)是直接影响CPU与内存直接数据交换速度。有一条公式可以计算,即数据带宽=(总线频率×数据位宽)/8,数据传输最大带宽取决于所有同时传输的数据的宽度和传输频率。比方,支持64位的至强Nocona,前端总线是800MHz,按照公式,它的数据传输最大带宽是6.4GB/秒。

外频与前端总线(FSB)频率的区别:前端总线的速度指的是数据传输的速度,外频是CPU与主板之间同步运行的速度。也就是说,100MHz外频特指数字脉冲信号在每秒钟震荡一亿次;而100MHz前端总线指的是每秒钟CPU可接受的数据传输量是100MHz×64bit÷8bit/Byte=800MB/s。

倍频系数

倍频系数是指CPU主频与外频之间的相对比例关系。在相同的外频下,倍频越高CPU的频率也越高。但实际上,在相同外频的前提下,高倍频的CPU本身意义并不大。这是因为CPU与系统之间数据传输速度是有限的,一味追求高主频而得到高倍频的CPU就会出现明显的“瓶颈”效应-CPU从系统中得到数据的极限速度不能够满足CPU运算的速度。一般除了工程样版的Intel的CPU都是锁了倍频的,少量的如Intel酷睿2核心的奔腾双核E6500K和一些至尊版的CPU不锁倍频,而AMD之前都没有锁,AMD推出了黑盒版CPU(即不锁倍频版本,用户可以自由调节倍频,调节倍频的超频方式比调节外频稳定得多)。

缓存

缓存大小也是CPU的重要指标之一,而且缓存的结构和大小对CPU速度的影响非常大,CPU内缓存的运行频率极高,一般是和处理器同频运作,工作效率远远大于系统内存和硬盘。实际工作时,CPU往往需要重复读取同样的数据块,而缓存容量的增大,可以大幅度提升CPU内部读取数据的命中率,而不用再到内存或者硬盘上寻找,以此提高系统性能。但是由于CPU芯片面积和成本的因素来考虑,缓存都很小。

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

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

L3 Cache(三级缓存),分为两种,早期的是外置,内存延迟,同时提升大数据量计算时处理器的性能。降低内存延迟和提升大数据量计算能力对游戏都很有帮助。而在服务器领域增加L3缓存在性能方面仍然有显著的提升。比方具有较大L3缓存的配置利用物理内存会更有效,故它比较慢的磁盘I/O子系统可以处理更多的数据请求。具有较大L3缓存的处理器提供更有效的文件系统缓存行为及较短消息和处理器队列长度。

其实最早的L3缓存被应用在AMD发布的K6-III处理器上,当时的L3缓存受限于制造工艺,并没有被集成进芯片内部,而是集成在主板上。在只能够和系统总线频率同步的L3缓存同主内存其实差不了多少。后来使用L3缓存的是英特尔为服务器市场所推出的Itanium处理器。接着就是P4EE和至强MP。Intel还打算推出一款9MB L3缓存的Itanium2处理器,和以后24MB L3缓存的双核心Itanium2处理器。

但基本上L3缓存对处理器的性能提高显得不是很重要,比方配备1MB L3缓存的Xeon MP处理器却仍然不是Opteron的对手,由此可见前端总线的增加,要比缓存增加带来更有效的性能提升。

参考技术B 一、CPU的内核
从结构上讲CPU内核分为两部分:运算器和控制器。
?
(一) 运算器
?
1、 算术逻辑运算单元ALU(Arithmetic and Logic Unit)
?
ALU主要完成对二进制数据的定点算术运算(加减乘除)、逻辑运算(与或非异或)以及移位操作。在某些CPU中还有专门用于处理移位操作的移位器。
?
通常ALU由两个输入端和一个输出端。整数单元有时也称为IEU(Integer Execution Unit)。我们通常所说的“CPU是XX位的”就是指ALU所能处理的数据的位数。
?
2、 浮点运算单元FPU(Floating Point Unit)
?
FPU主要负责浮点运算和高精度整数运算。有些FPU还具有向量运算的功能,另外一些则有专门的向量处理单元。
?
3、 通用寄存器组
?
通用寄存器组是一组最快的存储器,用来保存参加运算的操作数和中间结果。
?
对于x86指令集只支持8个通用寄存器的缺点,Intel最新CPU采用了一种叫做“寄存器重命名”的技术,这种技术使x86CPU的寄存器可以突破8个的限制,达到32个甚至更多。
?
4、 专用寄存器
?
专用寄存器通常是一些状态寄存器,不能通过程序改变,由CPU自己控制,表明某种状态。
(二) 控制器
?
运算器只能完成运算,而控制器用于控制着整个CPU的工作。
?
1、 指令控制器
?
指令控制器是控制器中相当重要的部分,它要完成取指令、分析指令等操作,然后交给执行单元(ALU或FPU)来执行,同时还要形成下一条指令的地址。
?
2、 时序控制器
?
时序控制器的作用是为每条指令按时间顺序提供控制信号。时序控制器包括时钟发生器和倍频定义单元,其中时钟发生器由石英晶体振荡器发出非常稳定的脉冲信号,就是CPU的主频;而倍频定义单元则定义了CPU主频是存储器频率(总线频率)的几倍。
?
3、 总线控制器
?
总线控制器主要用于控制CPU的内外部总线,包括地址总线、数据总线、控制总线等等。
?
4、中断控制器
?
中断控制器用于控制各种各样的中断请求,并根据优先级的高低对中断请求进行排队,逐个交给CPU处理。
二、CPU的外核
?
1、解码器(Decode Unit)
?
这是x86CPU特有的设备,它的作用是把长度不定的x86指令转换为长度固定的指令,并交由内核处理。解码分为硬件解码和微解码,对于简单的x86指令只要硬件解码即可,速度较快,而遇到复杂的x86指令则需要进行微解码,并把它分成若干条简单指令,速度较慢且很复杂。好在这些复杂指令很少会用到。
?
2、一级缓存和二级缓存(Cache)
?
一级缓存和二级缓存是为了缓解较快的CPU与较慢的存储器之间的矛盾而产生的,以及缓存通常集成在CPU内核,而二级缓存则是以OnDie或OnBoard的方式以较快于存储器的速度运行。对于一些大数据交换量的工作,CPU的Cache显得尤为重要。
?
三、指令系统
?
要讲CPU,还要了解一下指令系统。指令系统指的是一个CPU所能够处理的全部指令的集合,是一个CPU的根本属性,因为指令系统决定了一个CPU能够运行什么样的程序。我们常说的CPU都是X86系列及兼容CPU ,所谓X86指令集是美国Intel公司为其第一块16位CPU(i8086)专门开发的,虽然随着CPU技术的不断发展,Intel陆续研制出更新型的i80386、i80486直到今天的Pentium4系列,但为了保证电脑能继续运行以往开发的各类应用程序以保护和继承丰富的软件资源(如Windows系列),Intel公司所生产的所有CPU仍然继续使用X86指令集。 另外除Intel 公司之外,AMD和Cyrix等厂家也相继生产出能使用X86指令集的CPU,由于这些CPU能运行所有的为Intel CPU所开发的各种软件,所以电脑业内人士就将这些CPU列为Intel的CPU兼容产品。
?
四、CPU主要技术浅析
?
1、流水线技术
?
流水线(pipeline)是 InteI首次在486芯片中开始使用的。流水线的工作方式就象工业生产上的装配流水线。在CPU中由5~6个不同功能的电路单元组成一条指令处理流水线,然后将一条X86指令分成5~6步后再由这些电路单元分别执行,这样就能实现在一个CPU时钟周期完成一条指令,从而提高了CPU的运算速度。
?
2、超流水线和超标量技术
?
超流水线是指某些CPU内部的流水线超过通常的5~6步以上,例如Intel Pentium 4的流水线就长达20步。将流水线设计的步(级)数越多,其完成一条指令的速度越快,因此才能适应工作主频更高的CPU。超标量(supe rscalar)是指在 CPU中有一条以上的流水线,并且每时钟周期内可以完成一条以上的指令,这种设计就叫超标量技术。
?
3、乱序执行技术
?
乱序执行(out-of-orderexecution)是指CPU采用了允许将多条指令不按程序规定的顺序分开发送给各相应电路单元处理的技术。比方说程序某一段有7条指令,此时CPU将根据各单元电路的空闹状态和各指令能否提前执行的具体情况分析后,将能提前执行的指令立即发送给相应电路执行。当然在各单元不按规定顺序执行完指令后还必须由相应电路再将运算结果重新按原来程序指定的指令顺序排列后才能返回程序。这种将各条指令不按顺序拆散后执行的运行方式就叫乱序执行(也有叫错序执行)技术。采用乱序执行技术的目的是为了使CPU内部电路满负荷运转并相应提高了CP U的运行程序的速度。
?
4、分技预溯和推测执行技术
?
分枝预测(branch prediction)和推测执行(speculatlon execution) 是CPU动态执行技术中的主要内容,动态执行是目前CPU主要采用的先进技术之一。采用分枝预测和动态执行的主要目的是为了提高CPU的运算速度。推测执行是依托于分枝预测基础上的,在分枝预测程序是否分枝后所进行的处理也就是推测执行.
5、指令特殊扩展技术
?
自最简单的计算机开始,指令序列便能取得运算对象,并对它们执行计算。对大多数计算机而言,这些指令同时只能执行一次计算。如需完成一些并行操作,就要连续执行多次计算。此类计算机采用的是“单指令单数据”(SISD)处理器。在介绍CPU性能中还经常提到“扩展指令”或“特殊扩展”一说,这都是指该CPU是否具有对X86指令集进行指令扩展而言。扩展指令中最早出现的是InteI公司的“MMX”,然后是Pentium III中的“SSE”,以及现在Pentium 4中的SSE2指令集。
?
五、CPU的构架和封装方式
(一) CPU的构架
?
CPU架构是按CPU的安装插座类型和规格确定的。目前常用的CPU按其安装插座规范可分为Socket x和Slot x两大架构。
?
以Intel处理器为例,Socket 架构的CPU中分为Socket 370、Socket 423和Socket 478三种,分别对应Intel PIII/Celeron处理器、P4 Socket 423处理器和P4 Socket 478处理器。Slot x架构的CPU中可分为Slot 1、Slot 2两种,分别使用对应规格的Slot槽进行安装。其中Slot 1是早期Intel PII、PIII和Celeron处理器采取的构架方式,Slot 2是尺寸较大的插槽,专门用于安装PⅡ和P Ⅲ序列中的Xeon。Xeon是一种专用于工作组服务器上的CPU。
?
(二) CPU的封装方式
所谓封装是指安装半导体集成电路芯片用的外壳,通过芯片上的接点用导线连接到封装外壳的引脚上,这些引脚又通过印刷电路板上的插槽与其他器件相连接。它起着安装、固定、密封、保护芯片及增强电热性能等方面的作用。
?
CPU的封装方式取决于CPU安装形式,通常采用Socket插座安装的CPU使用PGA(栅格阵列)的形式进行封装,而采用Slot X槽安装的CPU则全部采用SEC(单边接插盒)的形式进行封装。
?
1. PGA(Pin Grid Arrax)引脚网格阵列封装
目前CPU的封装方式基本上是采用PGA封装,在芯片下方围着多层方阵形的插针,每个方阵形插针是沿芯片的四周,间隔一定距离进行排列的。它的引脚看上去呈针状,是用插件的方式和电路板相结合。安装时,将芯片插入专门的PGA插座。PGA封装具有插拔操作更方便,可靠性高的优点,缺点是耗电量较大。PGA也衍生出多种封装方式,最早的PGA封装适用于Intel Pentium、Intel Pentium PRO和Cxrix/IBM 6x86处理器; CPGA(Ceramic Pin Grid Arrax,陶瓷针形栅格阵列)封装,适用于Intel Pentium MMX、AMD K6、AMD K6-2、AMD K6 Ⅲ、VIA Cxrix Ⅲ处理器;PPGA(Plastic Pin Grid Arrax,塑料针状矩阵)封装,适用于Intel Celeron处理器(Socket 370);FC-PGA(Flip Chip Pin Grid Arrax,反转芯片针脚栅格阵列)封装,适用于Coppermine系列Pentium Ⅲ、Celeron Ⅱ和Pentium4处理器。
?
2. SEC(单边接插卡盒)封装
Slot X架构的CPU不再用陶瓷封装,而是采用了一块带金属外壳的印刷电路板,该印刷电路板集成了处理器部件。SEC卡的塑料封装外壳称为SEC(Single Edgecontact Cartridge)单边接插卡盒。这种SEC卡设计是插到Slot X(尺寸大约相当于一个ISA插槽那么大)插槽中。所有的Slot X主板都有一个由两个塑料支架组成的固定机构,一个SEC卡可以从两个塑料支架之间插入Slot X槽中。
?
其中,Intel Celeron处理器(Slot 1)是采用(SEPP)单边处理器封装;Intel的PentiumⅡ是采用SECC(Single Edge Contact Connector,单边接触连接)的封装;Intel的PentiumⅢ是采用SECC2封装。
参考技术C CPU的组成
CPU内部结构大概可以分为控制单元、运算单元、存储单元和时钟等几个主要部分。
运算器是计算机对数据进行加工处理的中心,它主要由算术逻辑部件(ALU:Arithmetic and Logic Unit)、寄存器组和状态寄存器组成。
ALU主要完成对二进制信息的定点算术运算、逻辑运算和各种移位操作。
通用寄存器组是用来保存参加运算的操作数和运算的中间结果。
状态寄存器在不同的机器中有不同的规定,程序中,状态位通常作为转移指令的判断条件。
控制器是计算机的控制中心,它决定了计算机运行过程的自动化。
它不仅要保证程序的正确执行,而且要能够处理异常事件。
控制器一般包括指令控制逻辑、时序控制逻辑、总线控制逻辑、中断控制逻辑等几个部分。
指令控制逻辑要完成取指令、分析指令和执行指令的操作。
时序控制逻辑要为每条指令按时间顺序提供应有的控制信号。
一般时钟脉冲就是最基本的时序信号,是整个机器的时间基准,称为机器的主频。
执行一条指令所需要的时间叫做一个指令周期,不同指令的周期有可能不同。
一般为便于控制,根据指令的操作性质和控制性质不同,会把指令周期划分为几个不同的阶段,每个阶段就是一个CPU周期。
早期CPU同内存在速度上的差异不大,所以CPU周期通常和存储器存取周期相同,后来,随着CPU的发展现在速度上已经比存储器快很多了,于是常常将CPU周期定义为存储器存取周期的几分之一。
总线逻辑是为多个功能部件服务的信息通路的控制电路。
就CPU而言一般分为内部总线和CPU对外联系的外部总线,外部总线有时候又叫做系统总线、前端总线(FSB)等。
中断是指计算机由于异常事件,或者一些随机发生需要马上处理的事件,引起CPU暂时停止现在程序的执行,转向另一服务程序去处理这一事件,处理完毕再返回原程序的过程。
由机器内部产生的中断,把它叫做陷阱(内部中断),由外部设备引起的中断叫外部中断。
参考技术D CPU的组成
CPU内部结构大概可以分为控制单元、运算单元、存储单元和时钟等几个主要部分。
运算器是计算机对数据进行加工处理的中心,它主要由算术逻辑部件(ALU:Arithmetic and Logic Unit)、寄存器组和状态寄存器组成。ALU主要完成对二进制信息的定点算术运算、逻辑运算和各种移位操作。通用寄存器组是用来保存参加运算的操作数和运算的中间结果。状态寄存器在不同的机器中有不同的规定,程序中,状态位通常作为转移指令的判断条件。
控制器是计算机的控制中心,它决定了计算机运行过程的自动化。它不仅要保证程序的正确执行,而且要能够处理异常事件。控制器一般包括指令控制逻辑、时序控制逻辑、总线控制逻辑、中断控制逻辑等几个部分。
指令控制逻辑要完成取指令、分析指令和执行指令的操作。时序控制逻辑要为每条指令按时间顺序提供应有的控制信号。一般时钟脉冲就是最基本的时序信号,是整个机器的时间基准,称为机器的主频。执行一条指令所需要的时间叫做一个指令周期,不同指令的周期有可能不同。一般为便于控制,根据指令的操作性质和控制性质不同,会把指令周期划分为几个不同的阶段,每个阶段就是一个CPU周期。早期CPU同内存在速度上的差异不大,所以CPU周期通常和存储器存取周期相同,后来,随着CPU的发展现在速度上已经比存储器快很多了,于是常常将CPU周期定义为存储器存取周期的几分之一。
总线逻辑是为多个功能部件服务的信息通路的控制电路。就CPU而言一般分为内部总线和CPU对外联系的外部总线,外部总线有时候又叫做系统总线、前端总线(FSB)等。
中断是指计算机由于异常事件,或者一些随机发生需要马上处理的事件,引起CPU暂时停止现在程序的执行,转向另一服务程序去处理这一事件,处理完毕再返回原程序的过程。由机器内部产生的中断,把它叫做陷阱(内部中断),由外部设备引起的中断叫外部中断。

计算机组成原理是啥

计算机组成原理是什么

  计算机组成指的是系统结构的逻辑实现,包括机器机内的数据流和控制流的组成及逻辑设计等。计算机由什么组成的,有什么原理呢?下面我为大家分析一下!

  【计算机性能指标】

  计算机的性能指标主要是CPU性能指标、存储器性能指标和I/O吞吐率。

  处理机字长:是指处理机运算器中一次能够完成二进制运算的位数。

  总线宽度:一般指CPU中运算器与存储器之间进行互连的内部总线二进制位数。

  存储器带宽:单位时间内从存储器读出事物二进制数信息量,一般用字节数/秒表示。

  主频/时钟周期:CPU的工作节拍受主时钟控制,主时钟不断产生固定频率的时钟,主时钟的频率(f)叫CPU的主频。主频的倒数称为CPU的周期(T)。

  CPI:表示每条指令周期数,即执行一般程序所占用的CPU时间,

  CPU执行时间=CPU时钟周期数*CPU时钟周期

  MIPS:表示平均每秒执行多少百万条定点指令数,

  FLOPS:表示每秒执行浮点操作的次数,用来衡量机器浮点操作的性能。

  FLOPS=程序中的浮点操作次数/程序执行时间(s)

  【定点数的表示和运算】

  一个定点数由符号位和数值域两部分组成。按小数点位置不同,定点数有纯小数和纯整数两种表示方法。在定点计算机中,两个原码表示的数相乘的运算规则是:乘积的符号位由两数的符号位按异或运算得到,而乘积的数值部分则是两个正数相乘之积。两个原码表示的数相除时,商的符号位由两数的符号按位相加求得,商的数值部分由两数的数值部分相除求得。

  【算数逻辑单元ALU】

  为运算器构造的简单性,运算方法中算数运算通常采用补码加、减法,原码乘除法或补码乘除法。为了运算器的高速性和控制的简单性,采用了先行进位、阵列乘除法、流水线等并行技术措施。ALU不仅具有多种算术运算和逻辑运算的功能,而且具有先行进位逻辑,从而能实现高速运算。

  【存储器的分类】

  按存储介质,用半导体器件组成的存储器称为半导体存储器,用磁性材料做成的存储器称为磁表面存储器;作为存储介质的基本要求,必须有两个明显区别的物理状态,分别用来表示二进制的代码0和1。另一方面,存储器的存取速度又取决于这种物理状态的改变速度。

  按存取方式,存储器中任何存储单元的内容都能被随机存取,且存取时间和存储单元的位置无关的存储器称为随机存储器,存储器只能按某种顺序来存取,即存取时间和存储单元的物理位置有关的存储器称为顺序存储器;半导体存储器是随机存储器,RAM和ROM都是采用随机存取的方式进行信息访问,磁带存储器是顺序存储器。

  按信息易失性,断电后信息消失的存储器称为易失性存储器,断电后仍能保存信息的存储器称为非易失性存储器;半导体读写存储器RAM是易失性存储器,ROM是非易失性存储器,磁性材料做成的存储器是非易失性存储器。

  按存储内容可变性,有些半导体存储器存储的内容是固定不变的,即只能读出而不能写入,这种半导体存储器称为只读存储器(ROM),既能读出又能写入的半导体存储器称为随机读写存储器(RAM);

  按系统中的作用,可分为内部存储器、外部存储器;又可分为主存储器、高速缓冲存储器、辅助存储器、控制存储器;半导体存储器是内部存储器,磁盘是外部存储器,又是辅助存储器。

  【存储器的层次化结构】

  目前在计算机系统中,通常采用多级存储器体系结构,即使用高级缓冲存储器(cache)、主存储器和外存储器。CPU能直接访问的存储器称为内存储器,它包括cache和主存储器。CPU不能直接访问外存储器,外存储器的信息必须调入内存储器后才能为CPU进行处理。cache是计算机系统中的一个高速小容量半导体存储器,在计算机中利用cache来高速存取指令和数据。cache的工作原理基于程序运行中具有的空间局部性和时间局部性特征。cache能高速地向CPU提供指令和数据,从而加快了程序的执行速度。从功能上看,它是主存的缓冲存储器,由高速的SRAM组成。为追求高速,包括管理在内的全部功能由硬件实现,因而对程序员是透明的。与主存容量相比。cache的容量很小,它保存的内容只是主存内容的一个子集,且cache与主存的数据交换是以块为单位。主存储器是计算机系统的主要存储器,由MOS半导体存储器组成,用来存放计算机运行期间的大量程序和数据,能和cache交换数据和指令。外存储器是大容量辅助存储器,通常用来存放系统程序和大型数据文件及数据库。

  存储器的技术指标有存储容量、存取时间、存储周期、存储器带宽。存取时间、存储周期、存储器带宽三个概念反映了主存的速度指标。

  存取时间:指一次读操作命令发出到该操作完成,将数据读出到数据总线上所经历的时间。通常取写操作时间等于读操作时间,故称为存储器存取时间,存取时间又称存储器访问时间。

  存储周期:指连续两次读操作所需间隔的最小时间。通常,存储周期略大于存取时间。

  “位(bit)”是电子计算机中最小的数据单位,每一位的状态只能是0或1。8个二进制位构成一个“字节(Byte)”,字节是储存空间的基本计量单位,一个字节可以储存一个英文字母,2个字节可以储存一个汉子。“字”由若干字节构成,字的位数叫作字长,不同档次的机器有不同的字长。存储器的基本单位字节的长度是8 bit。表示主存容量的常用单位字节B,是基本单位。此外还有KB、MB、GB、TB。一个双稳态半导体电路或一个CMOS晶体管或磁性材料的存储元,均可以存储一位二进制代码。这个二进制代码位是存储器中最小的存储单位,称为存储位元。

  所有的SRAM的特征是用一个锁存器(触发器)作为存储元,触发器具有两个稳定的状态,只要直流供电电源一直加在这个记忆电路上,它就无限期地保持记忆的1或0状态;如果电源断电,那么存储的数据(1或0)就会丢失。SRAM是易失性存储器。半导体静态存储器 SRAM 的存储原理是依靠双稳态电路。SRAM存储器的存储元是一个触发器,它具有两个稳定的状态。SRAM的优点是存取速度快,但存储容量不如DRAM大。动态MOS随机读写存储器DRAM的存储容量极大,通常用作计算机的主存储器。主存也可以用SRAM实现,只是成本高。与SRAM相比,DRAM成本低、功耗低,但需要刷新。动态RAM存储信息依靠的是电容。DRAM存储器的存储元是由一个MOS晶体管和电容器组成的记忆电路,其中MOS晶体管作为开关使用,而所存储的信息1或0则是由电容器上的电荷量来体现--当电容器充满电荷时,代表储存了1,当电容器放电没有电荷时,代表存储了0。读出过程也是刷新过程。输入缓冲期与输出缓冲器总是互锁的。这是因为读操作和写操作是互斥的,不会同时发生。与SRAM不同的是:DRAM增加了行地址锁存器和列地址锁存器,增加了刷新计数器和相应的控制电路。DRAM比SRAM集成度更高。DRAM读出后必须刷新,而未读写的存储元也要定期刷新,而且要按行刷新,所以刷新计数器的长度等于行地址锁存器。DRAM存储位元是基于电容器上的电荷量存储,这个电荷量随着时间和温度而减少,因此必须定期地刷新,以保持它们原来记忆的信息。DRAM是易失性存储器。一次读操作会自动地刷新选中行中的所有存储位元。然而通常情况下,人们不能准确地预知读操作出现的频率,因此无法阻止数据丢失。在这种情况下,必须对DRAM进行定期刷新。DRAM使用电容存储,所以必须隔一段时间刷新(refresh)一次,如果存储单元没有被刷新,存储的信息就会丢失。DRAM存储器有读周期、写周期和刷新周期,刷新周期比读/写周期有更高的优先权。DRAM存储器需要逐行进行定时刷新,以使不因存储信息的电容漏电而造成信息丢失。另外,DRAM芯片的读出是一种破坏性读出,因此在读取之后要立即按读出信息予以充电再生。动态MOS随机读写存储器DRAM的存储容量极大,通常用作计算机的主存储器。SRAM和DRAM都是随机读写存储器,它们的特点是数据可读可写。ROM叫作只读存储器,在它工作时只能读出,不能写入,其中存储的原始数据必须在它工作以前写入。FLASH叫作闪存存储器,是高密度非易失性的读/写存储器,高密度意味着它具有巨大比特数目的存储容量,非易失性意味着存放的数据在没有电源的情况下可以长期保存。FLASH存储元是在EPROM存储元基础上发展起来的。闪存存储器有三个主要的基本操作,它们是编程操作、读取操作和擦除操作。可编程ROM有PROM、EPROM、EEPROM。其中,PROM是一次性编程。EPROM叫作光擦除可编程只读存储器,它的存储内容可以根据需要写入,当需要更新时将原存储内容抹去,再写入新的内容。EEPROM叫作电擦除可编程只读存储器,其储存元是一个具有两个栅极的NMOS管,这种存储器在出厂时,存储器内容为全“1”状态。使用时,可根据要求把某些存储元写“0”。EPROM是可改写的,但它不能用作为随机存储器用。

  【主存储器与CPU的连接】

  主储存器和CPU之间增加cache的目的是解决CPU和主存之间的`速度匹配问题。程序和数据存储在主存中,主存通常采用多体交叉存储器,以提高访问速度。cache是一个高速缓冲存储器,用以弥补主存和CPU速度上的差异。指令部件本身又构成一个流水线,它由取指令、指令译码、计算操作数地址、取操作数等几个过程段组成。指令队伍是一个先进先出(FIFO)的寄存器栈,用于存放经过译码的指令和取来的操作数。它也是由若干个过程段组成的流水线。执行部件可以具有多个算数逻辑运算部件,这些部件本身又用流水线方式构成。为了使存储器的存取时间能与流水线的其他各过程段的速度匹配,一般采用多体交叉存储器。执行段的速度匹配问题,通常采用并行的运算部件以及部件流水线的工作方式来解决。一般采用的方法包括:将执行部件分为定点执行部件和浮点执行部件两个可并行执行的部分,分别处理定点运算指令和浮点运算指令;在浮点执行部件中,又有浮点加法部件和浮点乘/除部件,它们也可以同时执行不同的指令;浮点运算部件都以流水线方式工作。所谓资源相关,是指多条指令进入流水线后在同一机器时钟周期内争用同一个功能部件所发生的冲突。在一个程序中,如果必须等前一条指令 执行完毕后,才能执行后一条指令,那么这两条指令就是数据相关的。为了解决数据相关冲突,流水CPU的运算器中特意设置若干运算结果缓冲寄存器,暂时保留运算结果,以便于后继指令直接使用,这称为“向前”或定向传送技术。控制相关冲突是由转移指令引起的。当执行转移指令时,依据转移条件的产生结果,可能为顺序取下条指令;也可能转移到新的目标地址取指令,从而使流水线发生断流。为了减小转移指令对流水线性能的影响,常采用以下两种转移处理技术:由编译程序重排指令序列来实现的延迟转移法、硬件方法来实现的转移预测法。

  【双口RAM和多模块存储器】

  双端口存储器采用空间并行技术,能进行高速读/写操作。双端口存储器提供了两个相互独立的读写电路,可以对存储器中任意位置上的数据进行独立的存取操作。事实上双端口存储器也可以由DRAM构成。当两个端口的地址不相同时,在两个端口上进行读写操作,一定不会发生冲突。当两个端口同时存取存储器同一存储单元时,便发生冲突。总之,当两个端口均为开放状态且存取地址相同时,发生读写冲突。

  一个由若干模块组成的主存储器是线性编址的,这些地址在各模块中的安排方式有两种:一种是顺序方式,一种是交叉方式。从定性分析,对连续字的成块传送,交叉方式的存储器可以实现多模块流水式并行存取,大大提高存储器的带宽,由于CPU的速度比主存快,假如能同时从主存取出n条指令,这必然会提高机器的运行速度。多模块交叉存储器是一种并行存储器结构。

  【高速缓冲存储器(cache)】

  cache是一种高速缓冲存储器,是为了解决CPU和主存之间速度不匹配而采用的一项重要技术。其原理基于程序运行中具有的空间局部性和时间局部性特征。cache能高速地向CPU提供指令和数据,从而加快了程序的执行速度。从功能上看,它是主存的缓冲存储器,由高速的SRAM组成。为追求高速,包括管理在内的全部功能由硬件实现,因而对程序员是透明的。当前随着半导体器件集成度的进一步提高,cache已放入到CPU中,其工作速度接近于CPU的速度,从而能组成两级以上的cache系统。cache除包含SRAM外,还要有控制逻辑。若cache在CPU芯片外,它的控制逻辑一般与主存控制逻辑合成在一起,成为主存/cache控制器;若cache在CPU内,则由CPU提供它的控制逻辑。CPU与cache之间的数据交换是以字为单位,而cache与主存之间的数据交换是以块为单位。一个块由若干字组成,是定长的。当CPU读取内存中一个字时,便发出此字的内存地址到cache和主存。此时cache控制逻辑依据地址判断此字是否在cache中:若是,此字立即传送给CPU;若非,则用主存读周期把此字从主存读出送到CPU,与此同时,把含有这个字的整个数据块从主存读出送到cache中。从CPU看,增加一个cache的目的,就是在性能上使主存的平均读出时间尽可能接近cache的读出时间。为了达到这个目的,在所有的存储器访问中由cache满足CPU需要的部分应占很高的比例,即cache的命中率应接近于1.由于程序访问的局部性,实现这个目标是可能的。运算器由算数逻辑单元(ALU)、通用寄存器、数据缓冲寄存器DR和状态条件寄存器PSW组成,它是数据加工处理部件。运算器接受控制器的命令而进行动作,即运算器所进行的全部操作都是由控制器发出的控制信号来指挥的,所以它是执行部件。运算器有两个主要功能:(1)执行所有的算数运算;(2)执行所有的逻辑运算,并进行逻辑测试,如零值测试或两个值的比较。通常,一个算数操作产生一个运算结果,而一个逻辑操作则产生一个判决。

  与主存容量相比,cache的容量很小,它保存的内容只是主存内容的一个子集,且cache与主存的数据交换是以块为单位。为了把主存块放到cache中,必须应用某种方法把主存地址定为到cache中,称做地址映射。“映射”的物理含义是确定位置的对应关系,并用硬件来实现。这样当CPU访问存储器时,它所给出的一个字的内存地址会自动变换成cache的地址。由于采用硬件,这个地址变换过程很快,软件人员丝毫感觉不到cache的存在,这种特性成为cache的透明性。地址映射方式有全相联方式、直接方式和组相联方式三种。在全相联映射中,将主存中一个块的地址(块号)与块的内容(字)一起存于cache的行中,其中块地址存于cache行的标记部分中。这种带全部块地址一起保存的方法,可使主存的一个块直接拷贝到cache中的任意一行上。全相联映射方式的检索过程:CPU访存指令指定了一个内存地址(包括主存和cache),为了快速检,指令中的块号与cache中所有行的标记同时在比较器中进行比较。如果块号命中,则按字地址从cache中读取一个字;如果块号未命中,则按内存地址从主存中读取这个字。在全相联cache中,全部标记用一个相联存储器来实现,全部数据用一个普通RAM来实现。全相联方式的主要缺点是比较器电路难于设计和实现,因此只适合于小容量cache采用。直接映射方式也是一种多对一的映射关系,但一个主存块只能拷贝到cache的一个特定行位置上去。直接映射方式的优点是硬件简单,成本低。缺点是每个主存块只有一个固定的行位置可存放,如果块号相距m整数倍的两个块存于同一cache行时,就要发生冲突。发生冲突时就要将原先存入的行换出去,但很可能过一段时间又要换入。频繁的置换会使cache的效率下降。因此直接映射方式适合于需要大容量cache的场合,更多的行数可以减小冲突的机会。采用直接映射时,cache无需考虑替换问题。从存放位置的灵活性和命中率来看,全相联映射方式为优;从比较器电路简单及硬件投资来说,直接映射方式为佳。组相联映射方式将cache分成u组,每组v行,主存块存放到哪个组是固定的,至于存到该组哪一行是灵活的。组相联映射方式的比较器电路容易设计和实现,而块在组中的排放又有一定的灵活性,使冲突减少。全相联映射方式和组相联映射方式速度较低,通常适合于小容量cache。

  cache工作原理要求它尽量保存最新数据。当一个新的主存块需要拷贝到cache,而允许存放此块的行位置都被其他主存块占满时,就要产生替换。对直接映射方式来说,因一个主存块只有一个特定的行位置可存放,所以只要把此特定位置上的原主存块换出cache即可。对全相联和组相联cache来说,就要允许存放新主存块的若干特定行中选取一行换出。cache的替换全部靠硬件实现。

  如何选取就涉及替换策略,又称替换算法,硬件实现的常用算法主要有以下三种:1)近期最少使用(LRU)算法:将近期内长久未被访问的行换出;2)最不经常使用(LFU)算法:将一段时间内被访问次数最少的那行数据换出;3)随机替换:实际上是不要什么算法,从特定的行位置中随机地选出一行换出即可。在Cache替换算法中,近期最少使用法比较正确地利用了程序访存局部性原理,替换出近期用得最少的存储块,命中率较高,是一种比较好的替换算法;随机法是随机地确定替换的存储单元,先进先出法是替换最早调入的存储单元,它们都没有根据程序访存局部性原理,命中率较低;而后进先出法不是cache所使用的替换算法,此法在堆栈存储结构中使用。

  【虚拟存储器】

  常用的虚拟存储系统由主存-辅存两级存储器组成,其中辅存是大容量的磁表面存储器。在虚拟存储器中,主存的内容只是辅存的一部分内容。虚拟存储系统是为了提高存储系统的性能价格比而构造的分层存储体系,力图使存储系统的性能接近高速存储器,而价格和容量接近低速存储器。虚拟存储利用了程序运行时的局部性原理把最近常用的信息块从相对慢速而大容量的存储器调入相对高速而小容量的存储器。虚拟存储主要是解决存储容量问题,另外还包括存储管理、主存分配和存储保护等方面。虚存所依赖的辅存与CPU之间不存在直接的数据通路,当主存不命中时只能通过调页解决,CPU最终还是要访问主存。虚存管理由软件(操作系统)和硬件共同完成,由于软件的介入,虚存对实现存储管理的系统程序员不透明,而只对应用程序员透明(段式和段页式管理对应用程序员“半透明”)。主存未命中时系统的性能损失要远大于cache未命中时的损失。

  【虚拟内存管理】

  虚存机制也要解决一些关键问题:(1)调度问题:决定哪些程序和数据应被调入主存;(2)地址映射问题:在访问主存时把虚地址变为主存物理地址,在访问辅存时把虚地址变为辅存的物理地址,以便换页;(3)替换问题:解决哪些程序和数据应被调出主存;虚拟存储器的替换算法与cache的替换算法类似,有FIFO算法、LRU算法、LFU算法,虚拟存储器的替换有操作系统的支持(4)更新问题:确保主存和辅存的一致性。虚拟存储器分为页式、段式、段页式三种。

  页式虚拟存储系统中,虚地址空间被分成等长大小的页,称为逻辑页;主存空间也被分成同样大小的页,称为物理页。相应地,虚地址分为两个字段:高字段为逻辑页号,低字段为页内地址(偏移量);实存地址也分为两个字段:高字段为物理页号,低字段为页内地址。通过页表可以把虚地址(逻辑地址)转换成物理地址。在大多数系统中,每个进程对应一个页表。现代的中央处理机通常有专门的硬件支持地址变换。每个进程所需的页数并不固定,所以页表的长度是可变的,因此通常的实现方法是把页表的基地址保存在寄存器中,而页表本身则放在主存中。由于虚地址空间可以很大,因而每个进程的页表有可能非常长。由于页表通常在主存中,因而即使逻辑页已经在主存中,也要至少访问两次物理存储器才能实现一次访存,这将使虚拟存储器的存取时间加倍。为了避免对主存访问次数的增多,可以对页表本身实行二级缓存,把页表中的最活跃部分存放在高速存储器中。这个专用于页表缓存的高速存储部件通常称为转换后援缓冲器(TLB),又称快表。而保存在主存中的完整页表则称为慢表。快表的作用是加快地址转换。TLB的作用和与主存与CPU之间的cache作用相似,通常由相联存储器实现,容量比慢表小得多,存储慢表中部分信息的副本,可以完成硬件高速检索操作。地址转换时,根据逻辑页号同时查快表和慢表,当在快表中有此逻辑号时,就能很快地找到对应的物理页号。根据程序的局部性原理,多数虚拟存储器访问都将通过TLB进行,从而有效降低访存的时间延迟。由于TLB的缓冲过程与cache的缓冲过程是独立的,所以在每次存储器访问过程中有可能要经历多次变换。

;
参考技术A 计算机组成原理是什么
是一门假大空的课程。
根本不实用。

以上是关于cpu是啥和啥组成的主要内容,如果未能解决你的问题,请参考以下文章

变量名只能由啥和啥三种字符组成,字符个数不得超过?

主键约束是啥和啥组合?

在java中JDBC的主要作用是啥和他的组成都有哪些?

cpu的主要组成部分是啥?

CPU包含哪些部件,各个组成部件的功能是啥?

CPU由哪些部件组成?表征CPU性能的特征是啥?CPU的运行速度由啥来决定?