CPU的工作原理
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了CPU的工作原理相关的知识,希望对你有一定的参考价值。
您们好,我想知道CPU的工作原理、越详细越好、
CPU工作原理一·CPU的基本概念及组成
CPU(Central Processing Unit 中央处理器)
世界上第一台PC机中的CPU-i8086是美国IBM公司1981年推出的·
其执行指令为X86指令集·同时为提高浮点运算能力,增加X87指令集,以后的X86及X87统称为X86指令集·该指令集一直沿用到现在的PIIICPU·
CPU主要包含运算器及控制器,其内部结构可分为控制单元,逻辑单元和存储单元·运算器主要完成各种算数(加,减,乘,除)和逻辑运算(逻辑加,逻辑减和非运算)·控制器不具有运算功能,它只是读取各种指令,并对指令分析,作出相应的控制·
二·CPU的主要参数
1·位,字节和字长
通常我们提到的16位,32位机是指CPU可以同时处理16位,32位的二进制数据·CPU按照其处理信息的字长可分为8位微处理器,16位微处理器
32位微处理器及64位微处理器·
位:在数字电路中和电脑技术中采用二进制,代码只有“0“和“1“,“0“和“1“在CPU中都是一“位“·
字节和字长:CPU在单位时间内(同一时间)能处理的二进制数的位数叫字长·一个字节等于八位(1byte=8bit)·如32位的CPU能在单位时间内同时处理字长为32位的二进制·通常8位称一个字节·32位的CPU一次只能同时处理4个字节·
2·CPU的外频
CPU的外频是指CPU的总线频率,是由主板提供的基准时钟频率·CPU的主频是按CPU的外频乘以倍频系数而来的·CPU的外频从过去的66MHZ发展到现在的100MHZ,133MHZ甚至200MHZ,随著外频的不断提高,CPU与内存数据之交换速度也随之不断提高·
3·前端总线(FSB-Front Site Bus)
前端总线的频率就是CPU的总线频率,内存的总线频率与前端总线频率相同,也就是CPU与L2 CACHE及内存之间交换数据的工作时钟·数据传输最大带宽取决于所同时传输的数据位宽度和传输频率,即数据带宽=(总线频率*数据宽度)/8·如前端总线的频率为100MHZ,CPU的数据宽度为64位,则其数据带宽=(100*64)/8=800MHZ,目前AMD公司已经推出前端总线频率为200MHZ的K7CPU,但CPU内核与内存之间的数据交换时钟仍然是100MHZ·
4·CPU的主频
CPU主频就是CPU的工作频率,是CPU内核(整数和浮点运算器)电路的实际运行的频率·在486DX2 CPU之前,CPU的主频与外频相等,在486DX2 CPU开始,所有的CPU主频等于外频乘上倍频系数·
5·L1和L2CACHE的容量和速度
L1和L2 CACHE的容量和工作速率起著决定性的作用·L2CACHE是从486时代开始的,目的是弥补L1CACHE(一级高速缓存)容量的不足,最大程度减少主内存对CPU运行造成的延缓·PII的L1的容量为64K,L2的容量为256K或512K,K6III的L1CACHE为64K,L2的容量为256K,在板的L3CACHE高达2M·设在CPU芯片内部L2CACHE运行速度与主频相同,而采用PII方式安装在CPU外部的L2CACHE运行频率一般为主频的二分之一,其效率要比芯片内的L2CACHE要低·
6·CPU执行指令步骤及其方式
1)·从RAM或CACHE中读出指令(FETCH)
2)·将读出的指令解成微指令(DECODE)
3)·将执行指令所需的控制质料读出(FECCH OPERANDS)
4)·执行解码后的微指令(EXECUTE)
5)·执行后的结果存回RAM中(WRITE BACK)
CPU执行指令方式可分为以下两种:
1)·非管线处理方式(NO-PIPELINE)
必须等前一个指令的上述5个步骤完成后,才进入下一个指令·
2)·管线处理方式(PIPELINE)
可以在前一个指令进入第二个步骤同时,下一个指令便可进入第一个步骤·
7·CPU的指令集
1)MMX:多媒体指令集·其使用了SIMD(Single Instruction,Multiple Data)
技术,MMX增强多媒体信息处理,提高CPU处理3D图形视频和音频能力·优化整数运算,但没有加强浮点运算·(共57条指令)
2)SSE:因特网数据流单指令序列扩展(Internet Streaming SIMD Extensions 的缩写·该指令增加了浮点预算能力,提高了内存的使用效率,优化了3D几何运算及动画处理,视频编辑/压缩/解压(图像DVD等)语音识别等功能·(70条指令)
3)3DNOW:AMD公司开发的多媒体扩展指令集,针对MMX指令集没有加强浮点处理能力的弱点,重点提高了AMD公司K6系列CPU对3D图像的处理能力,该指令主要是应用于3D游戏·对其它商业图形应用处理支持不足
参考资料:老师讲的
参考技术A 众所周知,CPU是电脑的“心脏”,是整个微机系统的核心,因此,它也往往成了各种档次微机的代名词,如昔日的286、386、486,奔腾、PⅡ、K6到今天的PⅢ、P4、K7、K8等。回顾CPU的发展历史,CPU在制造技术上已经获得了极大的提高,主要表现在集成的电子元件越来越多,从开始集成几千个晶体管,到现在的几百万、几千万个晶体管,这么多晶体管,它们是如何处理数据的呢?CPU的原始工作模式
在了解CPU工作原理之前,我们先简单谈谈CPU是如何生产出来的。CPU是在特别纯净的硅材料上制造的。一个CPU芯片包含上百万个精巧的晶体管。人们在一块指甲盖大小的硅片上,用化学的方法蚀刻或光刻出晶体管。因此,从这个意义上说,CPU正是由晶体管组合而成的。简单而言,晶体管就是微型电子开关,它们是构建CPU的基石,你可以把一个晶体管当作一个电灯开关,它们有个操作位,分别代表两种状态:ON(开)和OFF(关)。这一开一关就相当于晶体管的连通与断开,而这两种状态正好与二进制中的基础状态“0”和“1”对应!这样,计算机就具备了处理信息的能力。
但你不要以为,只有简单的“0”和“1”两种状态的晶体管的原理很简单,其实它们的发展是经过科学家们多年的辛苦研究得来的。在晶体管之前,计算机依靠速度缓慢、低效率的真空电子管和机械开关来处理信息。后来,科研人员把两个晶体管放置到一个硅晶体中,这样便创作出第一个集成电路,再后来才有了微处理器。
看到这里,你一定想知道,晶体管是如何利用“0”和“1”这两种电子信号来执行指令和处理数据的呢?其实,所有电子设备都有自己的电路和开关,电子在电路中流动或断开,完全由开关来控制,如果你将开关设置为OFF,电子将停止流动,如果你再将其设置为ON,电子又会继续流动。晶体管的这种ON与OFF的切换只由电子信号控制,我们可以将晶体管称之为二进制设备。这样,晶体管的ON状态用“1”来表示,而OFF状态则用“0”来表示,就可以组成最简单的二进制数。众多晶体管产生的多个“1”与“0”的特殊次序和模式能代表不同的情况,将其定义为字母、数字、颜色和图形。举个例子,十进位中的1在二进位模式时也是“1”,2在二进位模式时是“10”,3是“11”,4是“100”,5是“101”,6是“110”等等,依此类推,这就组成了计算机工作采用的二进制语言和数据。成组的晶体管联合起来可以存储数值,也可以进行逻辑运算和数字运算。加上石英时钟的控制,晶体管组就像一部复杂的机器那样同步地执行它们的功能。
CPU的内部结构
现在我们已经大概知道CPU是负责些什么事情,但是具体由哪些部件负责处理数据和执行程序呢?
1.算术逻辑单元ALU(Arithmetic Logic Unit)
ALU是运算器的核心。它是以全加器为基础,辅之以移位寄存器及相应控制逻辑组合而成的电路,在控制信号的作用下可完成加、减、乘、除四则运算和各种逻辑运算。就像刚才提到的,这里就相当于工厂中的生产线,负责运算数据。
2.寄存器组 RS(Register Set或Registers)
RS实质上是CPU中暂时存放数据的地方,里面保存着那些等待处理的数据,或已经处理过的数据,CPU访问寄存器所用的时间要比访问内存的时间短。采用寄存器,可以减少CPU访问内存的次数,从而提高了CPU的工作速度。但因为受到芯片面积和集成度所限,寄存器组的容量不可能很大。寄存器组可分为专用寄存器和通用寄存器。专用寄存器的作用是固定的,分别寄存相应的数据。而通用寄存器用途广泛并可由程序员规定其用途。通用寄存器的数目因微处理器而异。(图)
3.控制单元(Control Unit)
正如工厂的物流分配部门,控制单元是整个CPU的指挥控制中心,由指令寄存器IR(Instruction Register)、指令译码器ID(Instruction Decoder)和操作控制器0C(Operation Controller)三个部件组成,对协调整个电脑有序工作极为重要。它根据用户预先编好的程序,依次从存储器中取出各条指令,放在指令寄存器IR中,通过指令译码(分析)确定应该进行什么操作,然后通过操作控制器OC,按确定的时序,向相应的部件发出微操作控制信号。操作控制器OC中主要包括节拍脉冲发生器、控制矩阵、时钟脉冲发生器、复位电路和启停电路等控制逻辑。
4.总线(Bus)
就像工厂中各部位之间的联系渠道,总线实际上是一组导线,是各种公共信号线的集合,用于作为电脑中所有各组成部分传输信息共同使用的“公路”。直接和CPU相连的总线可称为局部总线。其中包括: 数据总线DB(Data Bus)、地址总线AB(Address Bus) 、控制总线CB(Control Bus)。其中,数据总线用来传输数据信息;地址总线用于传送CPU发出的地址信息;控制总线用来传送控制信号、时序信号和状态信息等。
CPU的工作流程
由晶体管组成的CPU是作为处理数据和执行程序的核心,其英文全称是:Central Processing Unit,即中央处理器。首先,CPU的内部结构可以分为控制单元,逻辑运算单元和存储单元(包括内部总线及缓冲器)三大部分。CPU的工作原理就像一个工厂对产品的加工过程:进入工厂的原料(程序指令),经过物资分配部门(控制单元)的调度分配,被送往生产线(逻辑运算单元),生产出成品(处理后的数据)后,再存储在仓库(存储单元)中,最后等着拿到市场上去卖(交由应用程序使用)。在这个过程中,我们注意到从控制单元开始,CPU就开始了正式的工作,中间的过程是通过逻辑运算单元来进行运算处理,交到存储单元代表工作的结束。
数据与指令在CPU中的运行
刚才已经为大家介绍了CPU的部件及基本原理情况,现在,我们来看看数据是怎样在CPU中运行的。我们知道,数据从输入设备流经内存,等待CPU的处理,这些将要处理的信息是按字节存储的,也就是以8位二进制数或8比特为1个单元存储,这些信息可以是数据或指令。数据可以是二进制表示的字符、数字或颜色等等。而指令告诉CPU对数据执行哪些操作,比如完成加法、减法或移位运算。
我们假设在内存中的数据是最简单的原始数据。首先,指令指针(Instruction Pointer)会通知CPU,将要执行的指令放置在内存中的存储位置。因为内存中的每个存储单元都有编号(称为地址),可以根据这些地址把数据取出,通过地址总线送到控制单元中,指令译码器从指令寄存器IR中拿来指令,翻译成CPU可以执行的形式,然后决定完成该指令需要哪些必要的操作,它将告诉算术逻辑单元(ALU)什么时候计算,告诉指令读取器什么时候获取数值,告诉指令译码器什么时候翻译指令等等。
假如数据被送往算术逻辑单元,数据将会执行指令中规定的算术运算和其他各种运算。当数据处理完毕后,将回到寄存器中,通过不同的指令将数据继续运行或者通过DB总线送到数据缓存器中。
基本上,CPU就是这样去执行读出数据、处理数据和往内存写数据3项基本工作。但在通常情况下,一条指令可以包含按明确顺序执行的许多操作,CPU的工作就是执行这些指令,完成一条指令后,CPU的控制单元又将告诉指令读取器从内存中读取下一条指令来执行。这个过程不断快速地重复,快速地执行一条又一条指令,产生你在显示器上所看到的结果。我们很容易想到,在处理这么多指令和数据的同时,由于数据转移时差和CPU处理时差,肯定会出现混乱处理的情况。为了保证每个操作准时发生,CPU需要一个时钟,时钟控制着CPU所执行的每一个动作。时钟就像一个节拍器,它不停地发出脉冲,决定CPU的步调和处理时间,这就是我们所熟悉的CPU的标称速度,也称为主频。主频数值越高,表明CPU的工作速度越快。
如何提高CPU工作效率
既然CPU的主要工作是执行指令和处理数据,那么工作效率将成为CPU的最主要内容,因此,各CPU厂商也尽力使CPU处理数据的速度更快。
根据CPU的内部运算结构,一些制造厂商在CPU内增加了另一个算术逻辑单元(ALU),或者是另外再设置一个处理非常大和非常小的数据浮点运算单元(Floating Point Unit,FPU),这样就大大加快了数据运算的速度。
而在执行效率方面,一些厂商通过流水线方式或以几乎并行工作的方式执行指令的方法来提高指令的执行速度。刚才我们提到,指令的执行需要许多独立的操作,诸如取指令和译码等。最初CPU在执行下一条指令之前必须全部执行完上一条指令,而现在则由分布式的电路各自执行操作。也就是说,当这部分的电路完成了一件工作后,第二件工作立即占据了该电路,这样就大大增加了执行方面的效率。
另外,为了让指令与指令之间的连接更加准确,现在的CPU通常会采用多种预测方式来控制指令更高效率地执行。
参考资料:http://www.21wing.com/
晶振工作原理
晶振是石英晶体谐振器(quartzcrystal oscillator)的简称,也称有源晶振,它能够产生中央处理器(CPU)执行指令所必须的时钟频率信号,CPU一切指令的执行都是建立在这个基础上的,时钟信号频率越高,通常CPU的运行速度也就越快。
只要是包含CPU的电子产品,都至少包含一个时钟源,就算外面看不到实际的振荡电路,也是在芯片内部被集成,它被称为电路系统的心脏。
如下图所示的有源晶振,在外部施加适当的电压后,就可以输出预先设置好的周期性时钟信号,
这个周期性输出信号的标称频率(Normal Frequency),就是晶体元件规格书中所指定的频率,也是工程师在电路设计和元件选购时首要关注的参数。晶振常用标称频率在1~200MHz之间,比如32768Hz、8MHz、12MHz、24MHz、125MHz等,更高的输出频率也常用PLL(锁相环)将低频进行倍频至1GHz以上。
输出信号的频率不可避免会有一定的偏差,我们用频率误差(FrequencyTolerance)或频率稳定度(Frequency Stability),用单位ppm来表示,即百万分之一(partsper million)(1/106),是相对标称频率的变化量,此值越小表示精度越高。
比如,12MHz晶振偏差为±20ppm,表示它的频率偏差为12×20Hz=±240Hz,即频率范围是(11999760~12000240Hz)
另外,还有一个温度频差(Frequency Stability vs Temp)表示在特定温度范围内,工作频率相对于基准温度时工作频率的允许偏离,它的单位也是ppm。
我们经常还看到其它的一些参数,比如负载电容、谐振电阻、静电容等参数,是神马情况?这些与晶体的物理特性有关。我们先了解一下晶体,如下图所示
石英晶体有一种特性,如果在晶片某轴向上施加压力时,相应施力的方向会产生一定的电位
相反的,在晶体的某些轴向施加电场时,会使晶体产生机械变形;
如果在石英晶片上加上交变电压,晶体就会产生机械振动,机械形变振动又会产生交变电场,尽管这种交变电场的电压极其微弱,但其振动频率是十分稳定的。当外加交变电压的频率与晶片的固有频率(与切割后的晶片尺寸有关,晶体愈薄,切割难度越大,谐振频率越高)相等时,机械振动的幅度将急剧增加,这种现象称为“压电谐振”。
将石英晶片按一定的形状进行切割后,再用两个电极板夹住就形成了无源晶振,其符号图如下所示:
下图是一个在谐振频率附近有与晶体谐振器具有相同阻抗特性的简化电路。
其中:C1为动态等效串联电容;
L1为动态等效串联电感;
R1为动态等效串联电阻,它是晶体内部摩擦性当量
C0为静态电容,相当于两个电极板之间的电容量;
这个等效电路有如下图所示的频响特性曲线:
当R1、L1、C1串联支路发生谐振的频率即串联谐振频率(Fr),此时容抗与感抗相互抵消,因此,支路相当于只有等效串联电阻R1。
这个频率是晶体的自然谐振频率,它在高稳晶振的设计中,是作为使晶振稳定工作于标称频率、确定频率调整范围、设置频率微调装置等要求时的设计参数(但不是标称频率),其表达式如下所示:
等效串联电阻R1决定晶体元件的品质因数,品质因数又称机械Q值,它是反映谐振器性能好坏的重要参数,它与L1和C1有如下关系:
R1越大,Q值越低,会导致频率不稳定,反之,Q值越高,频率越稳定,晶体的特点在于它具有很高的品质因素。
等效电路还有一个反谐振频率fL(并联谐振频率),此时串联支路呈现为感抗,相当于一个电感,如下图所示:
此时的频率如下图所示:
通常厂家的晶振元件数据手册给出的标称频率不是Fr或FL,实际的晶体元件应用于振荡电路中时,它一般还会与负载电容相联接,共同作用使晶体工作于Fr和FL之间的某个频率,这个频率由振荡电路的相位和有效电抗确定,通过改变电路的电抗条件,就可以在有限的范围内调节晶体频率。
当负载电容与晶体串联时,如下图所示:
串接的小电容CL可以使石英晶体的谐振频率在一个小范围内调整,此时新的负载谐振频率如下式所示:
其中,C1远远小于C0+CL
当负载电容与晶体并联时,如下图所示:
同样,并联的负载CL也可以小范围调整谐振频率,相应的负载谐振频率如下式:
从实际效果上看,对于给定的负载电容值,F’r与F’L两个频率是相同的,这个频率是晶体的绝大多数应用时所表现的实际频率,也是制造厂商为满足用户对产品符合标称频率要求的测试指标参数,也就是本文最开头介绍的晶振标称频率,
当晶体元件与外部电容相连接时(并联或串联),在负载谐振频率时的电阻即为负载谐振电阻RL,它总是大于晶体元件本身的谐振电阻。
晶体本身是不能产生振荡信号的,必须借助于相应的外部振荡器电路才能实现,下图是一个串联型振荡器电路,其中,晶体管Q1、Q2构成的两级放大器,石英晶体X1与电容CL构成LC电路。在这个电路中,石英晶体相当于一个电感,CL为可变电容器,调节其容量即可使电路进入谐振状态,输出波形为方波。
并联型振荡器电路如下图所示,这种形式读者可能见得更多些,一般单片机都会有这样的电路。晶振的两个引脚与芯片(如单片机)内部的反相器相连接,再结合外部的匹配电容CL1、CL2、R1、R2,组成一个皮尔斯振荡器(Pierce oscillator)
上图中,U1为增益很大的反相放大器,CL1、CL2为匹配电容,是电容三点式电路的分压电容,接地点就是分压点。以接地点即分压点为参考点,输入和输出是反相的,但从并联谐振回路即石英晶体两端来看,形成一个正反馈以保证电路持续振荡,它们会稍微影响振荡频率,主要用与微调频率和波形,并影响幅度。 X1是晶体,相当于三点式里面的电感
R1是反馈电阻(一般≥1MΩ),它使反相器在振荡初始时处于线性工作区,R2与匹配电容组成网络,提供180度相移,同时起到限制振荡幅度,防止反向器输出对晶振过驱动将其损坏。
这里涉及到晶振的一个非常重要的参数,即负载电容CL(Load capacitance),它是电路中跨接晶体两端的总的有效电容(不是晶振外接的匹配电容),主要影响负载谐振频率和等效负载谐振电阻,与晶体一起决定振荡器电路的工作频率,通过调整负载电容,就可以将振荡器的工作频率微调到标称值。
负载电容的公式如下所示:
其中,CS为晶体两个管脚间的寄生电容(Shunt Capacitance)
CD表示晶体振荡电路输出管脚到地的总电容,包括PCB走线电容CPCB、芯片管脚寄生电容CO、外加匹配电容CL2,即CD=CPCB+CO+CL2
CG表示晶体振荡电路输入管脚到地的总电容,包括PCB走线电容CPCB、芯片管脚寄生电容CI、外加匹配电容CL1,即CG=CPCB+CI+CL1
一般CS为1pF左右,CI与CO一般为几个皮法,具体可参考芯片或晶振的数据手册
(这里假设CS=0.8pF,CI=CO=5pF,CPCB=4pF)。
比如规格书上的负载电容值为18pF,则有
则CD=CG=34.4pF,计算出来的匹配电容值CL1=CL2=25pF
这么复杂,我看不懂,我想用更简单更稳定更精确的器件,有木有?有!
有源晶振将所有与无源晶振及相关的振荡电路封装在一个“盒子”里,不必手动精确匹配外围电路,不同的输出频率应用时,只需要采购一个相应频率的“盒子”即可,不再使用繁杂的公式计算来计算去,可以节省很多脑细胞做其它更多意义的工作。
封装后的“盒子”示意图如下所示:
以上是关于CPU的工作原理的主要内容,如果未能解决你的问题,请参考以下文章