CPU 执行程序的秘密,藏在了这 15 张图里
文章插图
作者 | 小林coding
来源 | 小林coding(ID:CodingLin)
文章插图
前言代码写了那么多 , 你知道 a = 1 + 2 这条代码是怎么被 CPU 执行的吗?
软件用了那么多 , 你知道软件的 32 位和 64 位之间的区别吗?再来 32 位的操作系统可以运行在 64 位的电脑上吗?64 位的操作系统可以运行在 32 位的电脑上吗?如果不行 , 原因是什么?
CPU 看了那么多 , 我们都知道 CPU 通常分为 32 位和 64 位 , 你知道 64 位相比 32 位 CPU 的优势在哪吗?64 位 CPU 的计算性能一定比 32 位 CPU 高很多吗?
不知道也不用慌张 , 接下来就循序渐进的、一层一层的攻破这些问题 。
文章插图
文章插图
图灵机的工作方式要想知道程序执行的原理 , 我们可以先从「图灵机」说起 , 图灵的基本思想是用机器来模拟人们用纸笔进行数学运算的过程 , 而且还定义了计算机由哪些部分组成 , 程序又是如何执行的 。
图灵机长什么样子呢?你从下图可以看到图灵机的实际样子:
文章插图
图来源自:
图灵机的基本组成如下:
- 有一条「纸带」 , 纸带由一个个连续的格子组成 , 每个格子可以写入字符 , 纸带就好比内存 , 而纸带上的格子的字符就好比内存中的数据或程序;
- 有一个「读写头」 , 读写头可以读取纸带上任意格子的字符 , 也可以把字符写入到纸带的格子;
- 读写头上有一些部件 , 比如存储单元、控制单元以及运算单元:
1、存储单元用于存放数据;
2、控制单元用于识别字符是数据还是指令 , 以及控制程序的流程等;
3、运算单元用于执行运算指令;
- 首先 , 用读写头把 「1、2、+」这 3 个字符分别写入到纸带上的 3 个格子 , 然后读写头先停在 1 字符对应的格子上;
文章插图
- 接着 , 读写头读入 1 到存储设备中 , 这个存储设备称为图灵机的状态;
文章插图
- 然后读写头向右移动一个格 , 用同样的方式把 2 读入到图灵机的状态 , 于是现在图灵机的状态中存储着两个连续的数字 ,1 和 2;
文章插图
- 读写头再往右移动一个格 , 就会碰到 + 号 , 读写头读到 + 号后 , 将 + 号传输给「控制单元」 , 控制单元发现是一个 + 号而不是数字 , 所以没有存入到状态中 , 因为 + 号是运算符指令 , 作用是加和目前的状态 , 于是通知「运算单元」工作 。
运算单元收到要加和状态中的值的通知后 , 就会把状态中的 1 和 2 读入并计算 , 再将计算的结果 3 存放到状态中;
文章插图
推荐阅读
- 程序员为教师妻子开发应用:将iPhone变成文档摄像头
- 飞书文档微信小程序审核被卡?字节跳动副总裁谢欣:希望腾讯停止无理由封杀
- 多家快递暂停发往河北省快件,顺丰表示先暂停三天,京东小程序已无法下单
- 2021年换手机哪个配置最重要,CPU只能排第三位
- 8核Zen3 AMD新CPU现身:锐龙7 5700G
- 全新8核国产CPU深入探秘:马上能买到
- 字节跳动高管喊话腾讯,称“飞书文档”小程序审核被卡近两月
- 悔哭!一程序员误把7500个比特币当垃圾扔掉,估算约2.4亿美元
- 苹果改变立场 称macOS实用程序Amphetamine可继续留在Mac应用商店中
- 2.4亿美元打水漂!程序员小哥把7500个比特币当垃圾扔掉 硬盘找不回