7 | 中央处理器(CPU)

2020-05-20  本文已影响0人  遗忘的残酷

计算机的心脏是 “中央处理器” ,简称 “CPU”。

程序有一个个 “操作” 组成,这些操作叫 “指令”。
因为它们 “指示” 计算机去要做什么。

重点放在功能,而不是一个根线具体怎么连,一条线链接两个组件,这条线只是所有必须电路的一个抽象,这种高层次视角---叫 “微体系架构”。

如何操作的?

首先,要内存,四个寄存器

image.png

数据是以二进制存在内存里,程序也可以存在内存里。

image.png
  1. 追踪程序运行到哪里了。
    叫 “指令地址寄存器”- 当前指令的内存地址。
    2.另一个寄存器存当前指令-叫“指令寄存器”。

RAM 存放了一个程序,测试

image.png

0010 是 OPCODE 操作码 ,LOAD A 指令 :把RAM 的值放入寄存器A。
1110 :RAM 地址,十进制 14


image.png
image.png

“控制单元” 也是逻辑门组成,识别LOAD A 指令,需要有电路检测操作码是不是0010。

image.png
image.png

RAM 拿到值 ,0000 0011 ,十进制的3。

1.需要一根线,链接4个寄存器。

  1. 用检测是否 LOAD A 的指令电路,启用寄存器A 的 “允许写入线”。
image.png
  1. 就把 RAM地址 14 的值,就写进了寄存器 A。
  2. 指令完成,关闭所有电路。
  3. 去拿下一条指令。
  4. 把“指令地址寄存器 ” + 1,执行阶段结束。

LAOD A 是CPU 可以执行的指令之一。

不同的指令使用不同逻辑电路解码。

这些逻辑电路会配置 CPU 内的组件执行对应的操作。

分析解码电路有点繁琐,通过上面例子走过一遍,干脆把 “控制单元” 包成一个整体,简洁一些。

新的抽象:

image.png

控制单元“指挥”组件,取指令 -> 解码 -> 执行。

再走一次

image.png

15 对应RAM 的值是 0000 1110
十进制的14 存入 寄存器B。

image.png
image.png

下一个:
指令寄存器 是 2 ,对应RAM 是 1000 0100

1000 对应 add 指令, 后面4位不是RAM 地址,而是 两位两位代表两个寄存器。
两位可以代表4个值,可以代表四个寄存器。

第一个地址 01,代表寄存器B 。 ---还没搞明白为啥代表B
第二低地址00 ,代表寄存器A。

就是吧B的值和加到A的里面。

image.png

需要执行加指令,需要用到ALU。

控制单元:负责选择正确的寄存器作为输入,配置ALU 做正确的操作。

对“ADD” 指令,控制单元 启用控制器B作为ALU 的第一个输入。

image.png

启用A作为ALU 的第二个输入

image.png

ALU 可以执行不同的操作,需要控制单元传递ADD操作码,告诉他要做什么。

最后结果要存到寄存器A,但不能直接写入A, 因为新值会进入ALU ,不断和自己相加。

因此,控制单元用一个自己的寄存器暂时保存结果。

image.png

关闭 ALU ,把值写入正确的寄存器A。
3+14 = 17 二进制 0001 0001

image.png

最后一件事,把指令寄存器+1 。

最后一个指令 :0100 1101
把寄存器A的值 写入内存RAM 。1101地址 13

image.png

地址写入 RAM ,这次不是“允许读取” 是“允许写入” ,同时打开寄存器A的允许读取,就可以吧把寄存器A的值希尔RAM 。

image.png

CPU 执行了两个数相加,然后写入内存。

刚才过程 人工切换 CPU 的状态,取指令 - 解码 -执行。

CPU 真实切换状态的是 “时钟”,负责 管理 CPU 的节奏。

时钟:以精确的间隔触发点信号,控制单元利用这个信号,推荐CPU内部的操作。 确保按照步骤进行。

不能太快,就是电也需要一定时间传输。

CPU “取指令-解码-执行” 的速度 叫“时钟速度”,单位是-赫兹,标识频率单位。

1 赫兹 = 1秒 一个周期

前面的 4个指令,读取-读取-相加-存储,时钟速度大概是0.003 赫兹

一个指令 3步,
4 x 3/3600 = 0.003
还是 1/3600 = 0.0027 约等于 0.003

第一个单芯片CPU ,Intel 4004

1971 发布的4位CPU
时钟速度 740 赫兹,每秒74万次。
感觉很快了,但和现在处理器相比 不值一提。
1兆赫兹 = 1秒 1百万个时钟周期
现在的手机电脑都是几千兆赫兹。1秒 10亿次的时钟周期。

架构:

image.png

计算机超频

修改时钟速度,加快CPU 的速度。
芯片厂商给CPU 留有余地,可以接受一点 超频,但超频过多会让CPU 过热, 或产生乱码,因为信号跟不上时钟。

image.png

很少有人说降频,但其实降频很有用,有时候没不要让CPU 全速运行。
用户走开 ,或跑性能较低的程序,CPU 降低可以省很多电。

省电:对手机和笔记本,用电池的很重要。

为了省电,现在处理器根据需求,会加快和减慢时钟速度 -- 动态调整频率。

加上时钟CPU 才是完整的,可以放入盒子成一个独立组件。

新的抽象:

image.png

CPU 和 RAM 通过地址线、数据线、允许读/写线 进线通信

image.png

虽然设计的CPU 是简化版的,但是提到的很多机制,依然存在于现代的处理器里面。

下次讲 加强CPU ,给他它扩展更多指令,开始讲软件。

上一篇 下一篇

猜你喜欢

热点阅读