走进计算机(学习记录)

134 阅读3分钟

持续创作,加速成长!这是我参与「掘金日新计划 · 10 月更文挑战」的第30天,点击查看活动详情

前言

这篇文章不接着上面的 lab5 来写了,补的太痛苦了,正好学校现在开了计算记组成原理的课,正好分享一下最近学到的东西。

走进计算机

两位计算机先驱的智慧

计算机之父 图灵 冯诺依曼

图灵机

图来源自:http://www.kristergustafsson.me/turing-machine/

这个大家伙就是图灵机的模型,它由几个主要部分组成:纸带、读写头、控制单元、存储单元、运算单元。那么这个大家伙和计算机有什么关系?让我们以1+2为例看看这个大家伙是怎么运作的。

img

首先我们的读写头指向了纸带上写好的数字1,这意味着我们会把读写头位置的数字读到存储单元中,这个存储单元在图灵机里的名字叫:状态。

img

同样地,我们再将2读入状态中。

1 + (2 * 3)/ 4 中缀表达式

波兰表达式

+1 * 2 3

逆波兰表达式

后缀运算符的表达式

img

继续向后读,我们读到了+,读写头读到运算符后将+号传给控制单元。控制单元识别到这不是一个数字而是一个运算符,这时不存入状态,而是通知给运算单元,让运算单元工作起来。这时运算单元读到状态中存储好的1和2并计算,将计算好的结果3通过读写头再写入纸带,这样我们就得到了运算结果。

事实上,我们的计算机本质也是这样工作的,根据图灵机的模型我们延申出了计算机领域的定海神针-冯诺依曼架构。

冯诺依曼架构

在 1945 年冯诺依曼和其他计算机科学家们提出了计算机具体实现的报告,其遵循了图灵机的设计,而且还提出用电子元件构造计算机,并约定了用二进制进行计算和存储。用电平表达二进制数。

冯诺依曼架构定义了计算机结构的五个部分:运算器、控制器、存储器、输入设备、输出设备。

img

我们先来了解以下冯诺依曼架构在现代计算机的具体部件,然后再看一下各个部件之间是怎么关联起来的。

内存:

线性存储 字节编址 1Byte = 8bit B b

数组[0 1 2 3]

&[0] &[1]

CPU(中央处理器 Core Process Unit)

32位?64位?-> 位宽 (一次可以计算的数值大小)

2bit 4bit 00-11(0-3) 0000-1111(0-15)

寄存器 控制单元 逻辑运算单元

通用寄存器 程序计数器(PC) 指令寄存器(IP)

程序是以指令 二进制 存储的

总线

地址总线 数据总线 控制总线

IO设备

外设 键盘 鼠标 显示器

img

什么是计算机 什么是程序

微观:程序是一个状态机

S1 -> S2 -> S3 -> S4

//程序的本质就是:取指 译码(我们想要的存储单元的内容 和执行什么样的操作) 执行 更新PC
while (1) {
  从PC指示的存储器位置取出指令;
  执行指令;
  更新PC;
}

宏观:计算机是一个抽象层

TRM (Turing Machine) //存储 运算 控制

IOE (I/O Extension)//输入输出设备

CTE (Context Extension) //上下文 计算机的前后状态

VME (Virtual Memory Extension) //虚拟地址

MPE (Multiple Processor Extension) //多核支持