7. 中央处理器-The Central Processing Unit(CPU)

一、cpu介绍

计算机的心脏"中央处理单元",简称 "CPU"。
CPU 负责执行程序,程序由一个个操做(又叫指令,指示"计算机要作什么)组成。
若是是数学指令,好比加/减,CPU 会让 ALU 进行数学运算,也多是内存指令,CPU 会和内存通讯,而后读/写值。架构

二、制做cpu

2.1 组件性能

  • 1个RAM :假设它只有 16 个位置,每一个位置存 8 位。
  • 四个8位寄存器:A,B,C,D。用来 临时存数据 和 操做数据。
  • 一张指令表:程序也能够以二进制存在内存里的,因此可给 CPU 支持的全部指令,分配一个 ID。
  • 一个"指令地址寄存器",踪程序运行到哪里了。(存当前指令的内存地址)
  • 一个指令寄存器,存当前指令。
  • 控制单元:用于解码
  • 时钟:用于管理 CPU 的节奏。

2.2 解析CPU执行程序的过程
如下为须要执行的四条指令
clipboard.pngfetch

2.2.1 执行第一条指令 LOAD_A
(1)当启动计算机时,全部寄存器从 0 开始。优化

clipboard.png

(2)进入第一阶段"取指令阶段"(fetch phase),负责拿到指令。
首先,将 "指令地址寄存器" 连到 RAM,寄存器的值为 0,所以 RAM 返回地址 0 的值。
clipboard.pngspa

而后,0010 1110 会复制到 "指令寄存器" 里。
clipboard.pngcode

(3) "解码阶段"
指令拿到了,要弄清是什么指令,才能执行,即 "解码阶段"。视频

8位的指令:用前四位存 "操做代码",简称 "操做码" (opcode)对应指令表中的指令。后四位表明数据来自哪里,能够是寄存器或内存地址。
  • 根据指令表,前 4 位 0010 是 LOAD_A 指令,意思是,把 RAM 的值放入寄存器 A。后 4 位 1110 是 RAM的地址, 转成十进制是 14。
  • 指令由 "控制单元" 进行解码。 "控制单元" 也是逻辑门组成的。

clipboard.png

(4) "执行阶段"
知道了是什么指令,开始 "执行阶段"。
步1:取值。用 "控制单元"打开 RAM 的 "容许读取线", 把地址 14 传过去,从RAM的地址14中拿到值0000 0011,十进制的 3。ip

clipboard.png

步二:存值。根据 LOAD_A 指令的要求 , 要把取到的值只放到寄存器 A,其余寄存器不受影响,因此使用一根线,把 RAM 连到 4 个寄存器。
步三:用 "控制单元" 启用寄存器 A 的 "容许写入线"。
步四: 内存

clipboard.png
成功把 RAM 地址 14 的值,放到了寄存器 A。数学

步五:LOAD_A 指令完成,"执行阶段"就此结束。把 "指令地址寄存器"+1,去拿下一条指令并解码执行。
clipboard.png

总结:控制单元的抽象
LOAD_A 只是 CPU 能够执行的各类指令之一,不一样指令由不一样逻辑电路(控制单元)解码。
能够将"控制单元 "包成一个总体。
控制单元就像管弦乐队的指挥,"指挥" CPU 的全部组件"取指令→解码→执行" 。会配置 CPU 内的组件来执行对应操做。

clipboard.png

2.2.2 执行 ADD指令 "1000 0100"

(1) 指令解析:
1000 是 ADD 指令,后面的 4 位不是 RAM 地址,而是表明 2 个寄存器,第一个地址是 01, 表明寄存器B,第二个地址是 00, 表明寄存器A。
所以,1000 0100,表明把寄存器 B 的值,加到寄存器 A 里。

(2) "控制单元"的做用

  • 启用寄存器B做为做为 ALU 的第一个输入。启用寄存器 A,做为 ALU 的第二个输入。
  • 传递 ADD 操做码告诉ALU 能够执行ADD操做 (由于ALU能够执行多种操做)
  • 控制单元用一个本身的寄存器暂时保存结果(由于结果应该存到寄存器 A,但不能直接写入寄存器 A,这样新值会进入 ALU ,不断和本身相加)。关闭 ALU以后,再把值写入寄存器A。

(3) 把指令地址 + 1,执行下一条指令。

clipboard.png

clipboard.png

2.2.3 执行STORE A 指令 " 0100 1101"
(1) 解码
查看指令表,STORE A 指令是把寄存器 A 的值放入RAM,RAM 地址为13.

(2) 执行

  • 把地址13传给 RAM,
  • 打开RAM的"容许写入",同时打开寄存器 A 的 "容许读取",把寄存器 A 里的值,传给 RAM。

clipboard.png

2.2.4时钟
在执行以上四条指令的时候,咱们人工切换 CPU 的状态 "取指令→解码→执行",但实际上电脑用 "时钟" 来负责管理 CPU 的节奏。

(1) 时钟的做用
时钟以精确的间隔触发电信号,控制单元会用这个信号,推动 CPU 的内部操做,确保一切按步骤进行。

(2) "时钟速度"
"时钟速度"指 CPU "取指令→解码→执行" 的速度 。单位是赫兹 ,
1hz/s表明一秒 1 个周期,

三、CPU

(1) CPU抽象
RAM是在 CPU 外面的独立组件,CPU 和 RAM 之间 用 "地址线" "数据线" 和 "容许读/写线" 进行通讯。

(2) "英特尔 4004"
第一个单芯片 CPU 是 "英特尔 4004" ,1971 年发布的 4 位CPU,它的微架构 很像咱们以前说的 CPU,它的时钟速度达到了 740 千赫兹 - 每秒 74 万次。
如今看视频的电脑或手机,可能有几千兆赫兹, 1 秒 10 亿次时钟周期。

(3) 优化

  • 超频:计算机超频,意思是修改时钟速度,加快 CPU 的速度。芯片制造商常常给 CPU 留一点余地,能够接受一点超频。但超频太多会让 CPU
    过热,或产生乱码,由于信号跟不上时钟。
  • 降频:有时不必让处理器全速运行,可能用户走开了,或者在跑一个性能要求较低的程序,把 CPU 的速度降下来,能够省不少电。
  • 动态调整频率:不少现代处理器能够按需求 加快或减慢时钟速度。
相关文章
相关标签/搜索