当我们在选购电脑、手机的时候,销售人员都会告诉我们电脑、手机的配置,都会提到CPU,朋友也会提醒注意下CPU。那么CPU到底是什么?
CPU的英文全称是Central Processing Unit,翻译成中文也就是中央处理器。cpu有着处理指令、执行操作、控制时间、处理数据四大作用,打个比喻来说,cpu就像我们的大脑,帮我们完成各种各样的生理活动。因此如果没有cpu,那么电脑就是一堆废物,无法工作。
CPU从存储器或高速缓冲存储器中取出指令,放入指令寄存器,并对指令译码。它把指令分解成一系列的微操作,然后发出各种控制命令,执行微操作系列,从而完成一条指令的执行。指令是计算机规定执行操作的类型和操作数的基本命令。指令是由一个字节或者多个字节组成,其中包括操作码字段、一个或多个有关操作数地址的字段以及一些表征机器状态的状态字以及特征码。有的指令中也直接包含操作数本身。
处理器基本知识
处理器:超大规模集成电路,就是模电里说的集成电路,不同的是它所要做的就是处理机器码,对应机器码的不同做出不同的处理。比较出名的处理器厂商有inter ,AMD ,IBM,以及ARM~~ 其中inter主要是PC机上,而ARM主要在手机上。
处理器:Center Process Unit - 》 中央处理器 具有运算器跟控制器功能的大规模集成电路。
处理器的基本组成包括:
1.运算器(ALU,Arithmetic Logic Unit)
2.高速缓存储器(Cache)
3.实现ALU与Data联系的Data
4.控制及状态总线(Bus)
处理器架构:
处理器架构代表了各个部件的排列组合方式,处理器就像是计算机的心脏,它除了可以运算一些东西外其实也不会什么,真正要把它计算出来的东西实现出来的还是要依靠外面的设备。而如何把CPU跟外面的设备有序的链接起来就是处理器架构要做的事情了。处理器架构是有一些规范的,没有规范的话,拿给别人用别人也不知道怎么用,现在主流的处理器架构分为两类:一个是intel系列CPU,另一个是AMD系列CPU,了解这些架构对于这些架构怎么用以后把CPU的说明书拿来看就清楚了。
中央处理器cpu由什么组成
CPU包括运算逻辑部件、寄存器部件和控制部件等。
逻辑部件
英文Logic components;运算逻辑部件。可以执行定点或浮点算术运算操作、移位操作以及逻辑操作,也可执行地址运算和转换。
寄存器
寄存器部件,包括寄存器、专用寄存器和控制寄存器。 通用寄存器又可分定点数和浮点数两类,它们用来保存指令执行过程中临时存放的寄存器操作数和中间(或最终)的操作结果。 通用寄存器是中央处理器的重要部件之一。
控制部件
英文Control unit;控制部件,主要是负责对指令译码,并且发出为完成每条指令所要执行的各个操作的控制信号。
其结构有两种:一种是以微存储为核心的微程序控制方式;一种是以逻辑硬布线结构为主的控制方式。
微存储中保持微码,每一个微码对应于一个最基本的微操作,又称微指令;各条指令是由不同序列的微码组成,这种微码序列构成微程序。中央处理器在对指令译码以后,即发出一定时序的控制信号,按给定序列的顺序以微周期为节拍执行由这些微码确定的若干个微操作,即可完成某条指令的执行。
简单指令是由(3~5)个微操作组成,复杂指令则要由几十个微操作甚至几百个微操作组成。
中央处理器的作用
CPU从存储器或高速缓冲存储器中取出指令,放入指令寄存器,并对指令译码。它把指令分解成一系列的微操作,然后发出各种控制命令,执行微操作系列,从而完成一条指令的执行。指令是计算机规定执行操作的类型和操作数的基本命令。指令是由一个字节或者多个字节组成,其中包括操作码字段、一个或多个有关操作数地址的字段以及一些表征机器状态的状态字以及特征码。有的指令中也直接包含操作数本身。
提取
第一阶段,提取,从存储器或高速缓冲存储器中检索指令(为数值或一系列数值)。由程序计数器(Program Counter)指定存储器的位置。(程序计数器保存供识别程序位置的数值。换言之,程序计数器记录了CPU在程序里的踪迹。)
解码
CPU根据存储器提取到的指令来决定其执行行为。在解码阶段,指令被拆解为有意义的片段。根据CPU的指令集架构(ISA)定义将数值解译为指令。一部分的指令数值为运算码(Opcode),其指示要进行哪些运算。其它的数值通常供给指令必要的信息,诸如一个加法(Addition)运算的运算目标。
执行
在提取和解码阶段之后,紧接着进入执行阶段。该阶段中,连接到各种能够进行所需运算的CPU部件。
例如,要求一个加法运算,算术逻辑单元(ALU,Arithmetic Logic Unit)将会连接到一组输入和一组输出。输入提供了要相加的数值,而输出将含有总和的结果。ALU内含电路系统,易于输出端完成简单的普通运算和逻辑运算(比如加法和位元运算)。如果加法运算产生一个对该CPU处理而言过大的结果,在标志暂存器里可能会设置运算溢出(Arithmetic Overflow)标志。
写回
最终阶段,写回,以一定格式将执行阶段的结果简单的写回。运算结果经常被写进CPU内部的暂存器,以供随后指令快速存取。在其它案例中,运算结果可能写进速度较慢,但容量较大且较便宜的主记忆体中。某些类型的指令会操作程序计数器,而不直接产生结果。这些一般称作“跳转”(Jumps),并在程式中带来循环行为、条件性执行(透过条件跳转)和函式。许多指令会改变标志暂存器的状态位元。这些标志可用来影响程式行为,缘由于它们时常显出各种运算结果。例如,以一个“比较”指令判断两个值大小,根据比较结果在标志暂存器上设置一个数值。这个标志可藉由随后跳转指令来决定程式动向。在执行指令并写回结果之后,程序计数器值会递增,反覆整个过程,下一个指令周期正常的提取下一个顺序指令。
处理器工作过程
比如我们写的C语言代码亦或者是汇编代码,在通过编译器编译成机器码后发送给内存,而处理器就是从内存里拿那些机器码来一条一条执行,具体执行过程如下
取址,译码,执行--》CUP上处理数据通过这种三级流水线操作来实现机器码内部的功能 不排除有些CPU有多于3级的流水线(多一级流水线就多一个准备,会提升执行质量与效率),但这三个流水线是必须存在的
每一级流水线要做的工作如下:
取址:从存储器中找到机器码
译码:把机器码翻译成有意义的片段
执行:执行所翻译后的代码段
指令集:
就是CPU能够识别的有意义的机器码段的集合(举个例子,比如机器码0X000112120780,CPU会读取这个机器码,然后再对比自己的指令集,查出这个机器码具体要做什么,而这具体要做什么的信息的集合就是指令集)。主要有它们之间的区别 前两者主要是指令长度,其实RISC指令集是从CISC指令集里比较常用的指令的一个集合,ARM就是用RISC,而X86是用CISC,其实RISC是从CISC中提炼出来的,但通过RISC指令间的配合也能实现CISC中的指令。
1.CISC指令集,也称为复杂指令集,英文名是CISC(Complex Instruction Set Computer) 使用此类指令集的CPU用 inter 的X86
2.RISC指令集,精简指令集,英文名(Reduced Instruction Set Computing ) 使用此类指令集的CPU用ARM大多数芯片
3.IA-64指令集,精确并行指令计算机。
处理器技术:
如何让处理器更加高效的工作。
多线程,简称SMT,线程其实就是正在运行的程序。而多线程就是让多个程序同时在CPU上跑,当然我们知道单核CUP一次只能执行一个程序的,那么我们要如何才能够让多个程序在一个CPU上跑?道理很简单,就是你跑一下,我再跑一下。让多个线程一个跑一下,由于跑的很快,所以我们使用者是不会感觉他们之间的停顿的,也就是说,我们会认为他们同时在跑。
多核心,简称CMP(Chip Multiprocessors,简称CMP ),单芯片多处理器,就是多个处理器在同一个芯片中,可以这样做的原因是元器件越来越小制成越来越高,这样做可以节省芯片体积,又能提高程序运行效率。这就是我们的手机为什么越多核卖的又并不是很贵的原因,当然也并不是越多核心越好,这个买多核心手机的人应该可以体会,因为指令分在不同处理器里运行,虽然增加了它的执行效率但是最后要把它们的数据组装起来也是要费一番功夫的,所以并不是越多核心越好。
评论
查看更多