美文网首页
CPU的结构和功能

CPU的结构和功能

作者: Gentler | 来源:发表于2019-10-31 19:22 被阅读0次

功能依赖于结构,结构决定了功能。

CPU的全称是Central Processing Unit,直译是中央处理单元,我们一般叫它中央处理器。作为主机中最贵的元器件(不考虑显卡氪金族),它承担了几乎全部的计算工作,毕竟“能力越大,责任越大”。

那么CPU的超能力到底体现在哪里呢?答:它巨快,“天下武功,唯快不破”。目前民用主机CPU的最高主频大约是5GHz,也就是说它能在1秒钟里振动5 000 000 000次。我们在路上见到的汽车轮胎,转速一般为5转每秒(不严谨地说,1Hz=1转每秒);电风扇的转速一般为10转每秒;显示器刷新的频率一般是60Hz,而这频率足以让人眼看不出闪烁。这个数量级差别,不多说了,自行体会。

当然,如果CPU只是在空转,做无意义的振动,那也不值得我们对它肃然起敬,实际情况是它的振动是有信息输出的。这输出的信息就有两类:数据信息和控制信息。这两类信息对应了CPU的两大功能:计算和控制

计算

要不是为了应付大量复杂计算,计算机恐怕不会出现在这世上。

显然,计算是CPU的重要使命。但是它无法进行高层次计算(比如“快,直接告诉我233后面第一个质数是多少”),只能进行简单计算。即便如此,它已然能够解决极其复杂的问题。事实上,对CPU来说,它的计算其实只是通过电路完成“一串二进制数输入”在特定运算规则下的“一串二进制数输出”而已,换言之,就是在电路上实现一系列信息转换,完成输入到输出的映射。

CPU并非铁板一块,内部精细的构造使得它能够完成复杂的计算任务。其中,完成运算的主要部分被称为运算器,包括算术逻辑部件(ALU)、状态字寄存器(PSW)等等。我画了一张图:

CPU的内部结构(图示)

为了更好地理解CPU的计算过程,我想先请你做道算术题——“198+231=?”。你可以列竖式,但是打草稿算完之后请再口算一遍。

如果没算错的话,答案应该是429。不过正确性不重要,关键是计算的过程。回想一下,一般来说,你计算的时候,是从低到高一位一位加的;在十位进行相加的时候,你会“额外标记一下”这里有个到百位的进位;然后在百位进行相加的时候,你会提醒自己把进位给加上。

这里,请注意,尽管整个计算仅仅实现了从“198、231”这两个输入到“429”的输出,但是在整个计算过程中有先后顺序之分,还有很多其他信息产生,这些临时信息也需要保存。既然如此,CPU内部有上面那些个计算部件也就不难理解了。

控制

2509885——“爱我你就抱抱我”。“好的!你这么说,我就这么做。”

CPU承担着主机几乎所有的控制工作,因为不严谨地说,它是那堆零件中唯一有脑子的。为什么那些零件需要控制,它们不会自己工作吗?当然不会,想象生活中的这两种情况:你刷牙的时候得用牙膏,牙膏会自动打开盖子喷出适量牙膏吗?不会,需要你亲手驱动,对它进行控制;你拥有一家图书馆,里面配备了管理员,有一天你想看《钢铁是怎样炼成的》,如果你不声不响,管理员会把书送到你手上吗?不会,你至少得告诉他你要啥,然后他才去取,这也是控制。

我们可以从以上例子中很明显地看到,主体若要有效使用客体,必须与客体之间产生信息交流,其中控制信息不可或缺。(这看上去是一句废话,但很多人在学习计算机的原理时会忽略)。

回到前面的例子,一个完整的计算过程实际上是:使用电脑的人把“198+231”这个加法程序编写好,通过一系列编译链接过程加载进内存。然后CPU从内存中读出这条指令{一串二进制数},根据指令中的操作码生成具有先后顺序的控制信息,从而保证相关数据能进行有效地流动。控制信息的典型例子包括使能信号、读写信号等等。

也就是说,CPU的初始输入是有限长度的一条条指令,它看到指令就会明白自己该做什么。那么问题来了,谁告诉它的呢?它怎么知道看到“2509885”就要抱抱我呢?答案当然是:设计CPU的人在它里面放了本字典,每条指令的操作码都对应一系列特定的操作步骤。有些设计者是这么写的:“2509885——爱我你就抱抱我”“2509775——爱我你就亲亲我”。一条指令对应一套步骤,尽管两条指令有部分相似,但它们仍然是被看待成完全不同的两个系列操作,这就是硬布线方式。有些设计者是这么写的:“2509885——2509后面是885,那爱了之后就抱抱我”“2019885——2509后面是775,那爱了之后就亲亲我”。一条指令对应一段微程序,即一系列步骤,每个步骤叫一个微操作,会发出一轮控制信号(也叫微命令)。比如再看加法的例子,它把“向前进一”视为一个可以直接完成而不需要临时信息的微操作,这就是微指令方式

番外

CPU再牛逼,还不是得为人类服务。

是的,CPU只是人类的工具,而人对CPU的操作并非直接通过双手不停地拨弄节拍发生器,而是通过“操作系统”。顾名思义,操作系统,就是替人操作计算机元器件的系统,其本质就是一段段程序。与普通程序不同的是,操作系统具有对CPU的完全控制权。那么问题来了,同为一段段程序,操作系统为什么能控制CPU而普通程序不用呢?我们先明确一下控制的含义,控制的意思是不仅有使用权,还有所有权,能把决定把CPU分配给谁。接下来回答“为什么操作系统能控制CPU而普通程序不能?”

首先要知道的一点是,自己能够标志自己是核心态还是用户态,在用户态只能执行非特权指令。

于是,操作系统能够控制CPU的原因有三:

1.操作系统是最先加载进内存的程序(这个时候CPU处于核心态),因此操作系统可以率先掌握CPU的控制权,同时它还告诉了CPU:“如果执行指令遇到异常时,就来执行我的程序哦!”;

2.当CPU运行其他程序时,如果发生内中断就会转去执行系统程序同时主动切换为核心态。具体说来,如果遇到系统调用,就会执行软中断,转去执行系统程序;如果遇到其他异常(比如除0、缺页),CPU就按照操作系统最初吩咐的,转去执行系统程序;

3.指令周期中安排了中断周期,在中断周期,CPU会默认去执行系统程序,同时切换为核心态。

当CPU执行系统程序的时候,系统程序能够运行内存区上的所有程序,包括那些与硬件驱动相关的程序。同时,系统程序也能执行那些特权指令,比如清内存、设置时钟、切换进程。特权指令的执行权就是操作系统控制CPU的标志。

另外还有一个深刻的哲学问题值得思考——CPU是执行程序的,但程序竟会反过来控制CPU。异化理论的又一生动写照。

结语

总的来说,CPU承担了计算机的主要计算和控制任务,它的行为以设计者设计的物理结构为基础,由指令和节拍决定。指令包括特权指令和非特权指令,特权指令涉及其他硬件和CPU的使用权。操作系统的出现是为了让人机交互更加友好和高效,它具有执行特权指令的能力,同时负责管理计算机的各种资源分配,普通程序必须通过它才能使用外设。

CPU真是跟简单数字打交道的不简单的玩意儿。

相关文章

  • CPU结构和功能

    MARMBRPCIR

  • CPU的结构和功能

    功能依赖于结构,结构决定了功能。 CPU的全称是Central Processing Unit,直译是中央处理单元...

  • 计算机组成原理(五)中央处理器

    5.1 CPU的功能和基本结构 5.1.1 CPU的功能 CPU由运算器和控制器构成。控制器负责协调并控制计算机各...

  • 汇编常见名称英文缩写

    cpu:微处理器cpu基本结构ALU:算术逻辑单元REG:寄存器8088/8086功能结构BIU:总线接口单元EU...

  • CPU和GPU的区别

    通过阅读本文你可以知道CPU和GPU的区别是什么。 结构 上图是CPU和GPU的结构对比图。通过对比可以看出: C...

  • 二.组织学知识

    组织学知识 (一)细胞的基本结构和功能 1.细胞膜的结构和功能 2.细胞质的结构和功能 3.细胞核的结构和功能 (...

  • 移动端图像处理

    Soc 嵌入CPU和Gpu CPU 功能大于Gpu Gpu适合重复工作 CPU功耗大于Gpu 硬件板子 dsp 适...

  • CPU结构

    CPU组成 CPU主要由运算器和控制器组成 运算器包括 算数逻辑单元ALU累加寄存器AC(辅助算数逻辑单元计算的寄...

  • 图形渲染流程

    一、CPU 和 GPU CPU 是计算机整个系统的运算核⼼、控制核⼼。CPU 内部采用的是流水线结构, 使其拥有一...

  • 操作系统复习(四)存储器管理

    一、层次结构 1. 通用层次结构: CPU 主存 辅存 2. 具体功能划分 寄存器、高速寄存器cache、主存储器...

网友评论

      本文标题:CPU的结构和功能

      本文链接:https://www.haomeiwen.com/subject/hwatbctx.html