写点什么

二、程序如何执行

作者:喵叔
  • 2022 年 1 月 10 日
  • 本文字数:1005 字

    阅读完需:约 3 分钟

这篇文章我们通过图灵机和冯诺依曼模型来看看程序如何执行。

一、图灵机

图灵机的出现具体定义了计算机的边界、组成以及程序如何执行。图灵机的构造比较简单,它有一条无限长的纸带作为内存,纸带上有一个一个的格子,每个格子中可以写入字符,这些字符就相当于内存中的数据。图灵机通过读写头来获取和修改自带上的字符,读写头所在的模块中包括存储单元、控制单元和运算单元。那么图灵机是如何执行程序的呢?

我们以计算 10+20 的值为例来说一下。首先 10、20、+ 分别被我们卸载了纸带的格子中,然后读写头停止在 10 对应的单元格上,读取到 10 后将它放入存储设备中。接着,读写头向右移动一个格子,读取 20,同样放入存储设备中,读写头再次向右移动一个格子,读取到+号,这个+号传给控制单元,控制单元发现它是一个预设的控制符,因此不将它放入存储单元中。控制单元向运算单元发送通知,告知执行加运算。这时运算单元从存储单元读取到 10 和 20,并进行加运算。运算完成后将结果存入存储单元,并将结果发给控制单元,控制单元收到结果后控制读写向右移动一格,将结果写在纸带上。

二、冯诺依曼模型

图灵机虽然定义了计算机的组成和工作原理,单位给出具体的实现。因此冯诺依曼在图灵机的基础上提出了电子元件构造计算机,用二进制来计算与存储,并将计算机分解为 5 个部分:

1. 输入设备

2. 输出设备

3. 内存

4. CPU

5. 总线

这就是冯诺依曼模型。在这个模型中,程序和数据存储在内存中,它是线性排列的存储去,数据和程序以二级制的形式存储,单位是 bit。在内存中最小的存储单位是字节,一个字节对应一个内存地址。模型中的 CPU 主要用于计算和控制,它每次可以计算多个字节。如果 CPU 一次计算 4 个字节,那么它是 32 位的,如果一次计算 8 个字节,那么它是 64 位的。在 CPU 中有一个控制单元负责控制 CPU 工作,以及负责运算的逻辑运算单元。因为 CPU 远离内存,因此需要寄存器存储要计算的数据,它位于 CPU 中。寄存器包含通用寄存器、特殊寄存器和指令寄存器,通常我们只能通过程序操作通用寄存器。在 CPU 和内存之间存在一个特殊的设备,叫做总线。它用来控制 CPU 和内存以及其他设备之间的通信。一般来说总线分三种:

1. 地址总线,用来指定 CPU 要操作的内存地址

2. 数据总线,用来读写内存数据

3. 控制总线,用来发送和接收关键信号

前面这些设备的最终数据来源都是输入设备输入的,最终的归宿都是输出设备。

三、总结

本届主要计算了图灵机的结构和执行原理,以及冯诺依曼模型计算机的组成和 CPU 的原理。

发布于: 刚刚阅读数: 2
用户头像

喵叔

关注

还未添加个人签名 2020.01.14 加入

还未添加个人简介

评论

发布
暂无评论
二、程序如何执行