CPU是计算机的大脑英语,计算机的大脑:实现简易的 CPU

我们已经看了基本逻辑电路,运算电路,内存的概述。今天我们用着几个东西来组装 CPU。

CPU 简易结构图

df793eecd9778ef5e243501968a1c04b.png

我们看到这张图,我们的简易 CPU 有运算逻辑部件、寄存器部件和控制部件(图中的指令解析)

CPU 工作流程

CPU 的运行有读取指令,解析指令,运行三个阶段。

我们模拟一下使用计算机来计算一个 1+1,看看计算机是如何工作的!

假设我们已经写好了我们的程序,并放到了内存中,如下图所示:770be166e5b2cf497ce3feb9bf032e5d.png

假如我们 指令地址寄存器 的地址为 00000000

CPU 通电首先读取指令地址寄存器的地址(可以理解成系统第一条指令),然后读取相应的内存数据。

得到 00010001 ,然后拆分命令是 0001 数据是 0001(假设 0001 是加载到 寄存器1 中)

执行命令把 0001 存储到 寄存器1 中,把下一个地址 00000001 存到 指令地址寄存器 中

然后开始第二轮 读取内存地址 00000001 的数据

得到 00110001 ,然后拆分命令是 0011 数据是 0001(假设 0011 是加载到 寄存器2 中)

执行命令把 0001 存储到 寄存器2 中,把下一个地址 00000011 存到 指令地址寄存器 中

然后开始第三轮 读取内存地址 00000011 的数据

得到 10000111 ,然后拆分命令是 1000 数据是 0111(假设 1000 是对两个寄存器进行加法运算)

执行命令把 寄存器1 寄存器2 的值进行相加。

OK! 我们看了上边流程,我们还有几个问题?

我们还隐约的发现还缺个东西没有说也就是「指令表」,每款 CPU 都需要一定的指令表,写好程序来让计算机去运算。

晶振的频率来推进 CPU 的运算速度,如果 CPU 早就计算完了晶振还不继续往下运算,就拖慢了整体运行速度。晶振这个词我们可能听着比较生疏,我们平常买 CPU 上面写的多少多少 HZ 就是指的这个。( 1GHZ = 十亿赫兹 现代的 CPU 运算速度都比较快)

小结

看完了上面,我就理解了为什么 C 语言之类程序不同的平台需要进行移植,因为不同的 CPU 指令集不一样。然而像 Java 这些虚拟机语言,是在虚拟机上提供了通用的指令表,虚拟机还是需要针对不同的 CPU 平台进行单独编码!

你们还看了什么,欢迎留言一起讨论。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值