叨叨两句
- 哀其不幸,怒其不争
- 在能够轻易改变命运的年纪,请不要随意纵容自己的欲望,不划算。
- 请不要相信努力就能成功,但请坚信不努力绝对不可能成功。
- 什么样的品质可以称之为优秀?不纵容负面情绪,经得起讨论,自律,重视健康,习惯做计划,讲信誉,包容不同思想。。。
第3讲:冯.诺依曼计算机
1. 冯.诺依曼计算机的思想与构成
基本思想
- 运算与存储分离
- 存储程序【指令(程序)和数据以同等地位事先存于存储器,可按地址寻访,连续自动执行】
- 五大部件构成:运算器、控制器、存储器、输入设备和输出设备
- 指令和数据用二进制表示,指令由操作码和地址码组成。
- 以运算器为中心,控制器负责解释指令,运算器负责执行指令。
现代计算机系统上的改进
- 冯.诺依曼提出的计算机系统结构是以运算器为中心的,那种系统在输入输出时运算器要停止工作,在运算时不能输入输出。
- 为了解决上述问题,现代计算机改为以存储器为中心(存储器有很多存储单元,一部分输入输出时,另一部分可以进行运算和程序的执行,实现并行)
冯.诺依曼计算机的工作原理
- 控制台启动控制器工作
- 取出指令:控制器向存储器发送第1条指令地址
- 取出指令:存储器根据指令地址取出指令并分析指令
- 执行指令:控制器向存储器发送操作数x所在地址
- 执行指令:存储器根据操作数地址取出操作数x并发送至运算器。
- 取出指令:发送下一条(第二条)指令地址【同2】
- 取出指令:存储器根据指令地址取出指令并分析指令【同3】
- 执行指令:控制器向存储器发送操作数a所在地址【同4】
- 执行指令:存储器根据操作数地址取出操作数a并发送至运算器。【同5】
- 执行指令:控制器通知运算器运算a乘以x
现代计算机的四大核心部件
- CPU
- 主存储器
- I/O设备
- 总线
2. 自动存储与存储器
基本概念
- 存储单元
- 存储位(存储位数是固定的,我们称其为存储器的字长)
- 输出缓冲器
- 地址编码
- 地址译码器
- 单元控制线
存储器的内部实现
存储器芯片容量的扩展
3. 机器级程序与机器指令
算法
机器指令-机器语言
- 机器指令:CPU可以直接分析并执行的指令,一般由0和1编码表示。
- 指令≈操作码 + 地址码
机器指令表达算法
机器级程序和数据装载进存储器
高级语言程序和机器之间的关系
4. 机器级程序的执行机制
运算器
- (数据)寄存器【数量有限,为充分利用,既是操作数,又保存运算结果】
- 算术逻辑部件
控制器
- 程序计数器PC——存储下一条要执行指令的地址【自动加1】
- 指令寄存器IR——存储当前指令内容
- 信号控制器——通知相关部件工作
- 时钟与信号发生器——机器的主频就描述这里
存储器
- 地址译码器
- 地址寄存器
- 内容寄存器(即输出缓冲器)
时钟周期、节拍与机器周期
计算机各部件内部的简单构成关系
5. 机器级程序的执行过程模拟(以视频中指令为例)
第一条指令的读取与执行
- 第一步:将程序计数器PC中的地址,传递给存储器的地址寄存器;同时,信号控制器发送信号通知存储器工作。
- 第二步:存储器将内容读入内容寄存器,接着传入指令寄存器IR
- 第三步:信号控制部件分析指令寄存器IR中的指令,完成后做两件事。1、控制程序计数器+1;2、读取到操作码和地址码后,将地址码传入存储器,同时信号控制部件通知存储器工作。
- 第四步:信号控制器发出指令,通知运算器中的寄存器,接收从内容寄存器中取出的内容,并存到运算器寄存器的R0位置
第二条指令的读取与执行
同1-4,地址码对应内容被取出到了内容寄存器的R1位置,同时信号控制器通知运算器运算,此时R0中数值将会变。
图灵机的思想与模型简介
图灵认为的计算
计算者(人或机器)对一条两端可无限延长的纸带上的一串0或1,执行指令一步步改变纸带上的0或者1,经过有限步骤最后得到一个满足预先规定的符号串的变换过程。
图灵机的思想
- 数据
- 基本动作
- 指令
- 程序【指令的集合】
- 执行
- 自动计算
图灵机模型
- 基本的图灵机模型为一个七元组
-
图灵机是一种思想模型,它的组成如下:
- 一个控制器(有限状态转换器)
- 一条可无限延伸的纸带
- 一个在带子上左右移动的读写头
- 程序是五元组<q,X,Y,R(或L或N),p>形式的指令集
- 图灵机模型被认为是计算机的基本理论模型——计算机是使用相应的程序来完成任何设定好的任务。图灵机是一种离散的、有穷的、构造性的问题求解思路,一个问题的求解可以通过构造其图灵机(即程序)来解决。
- 图灵认为:凡是能用算法方法解决的问题也一定能用图灵机解决;凡是图灵机解决不了的问题任何算法也解决不了【图灵可计算性问题】
我的一些思考(2017.10.02)
- 其实各种进制、各种编码方式,都是为了将数据进行表示,使机器能够识别。
- 目前,各种编码方式最后都将信息处理成了二进制的0和1。
- 0和1分别由高还是低电平表示,这是人定的规则
- 电如何传导,这是天定的规则
- 人类输入自己标定了含义0和1组合,通过计算机中电的传导,最终获得机器输出的0和1,而这0和1,人类能赋予含义。
- 数是一种客观存在的现象(或称事实),阿拉伯数字0-9只是当今世界用来表示它们较小数的“符号”,而各种进制,则是被发明出来,用于描述更大数的“规则”。
- 高级语言中的变量存的是存储单元的地址【非固定】
//该示例并不严谨,只是一时灵光乍现,想要记下自己的理解,意会即可。
int x ; //此时x存的地址还未定
x=3;//此时x中存上了内容为3的存储单元的地址,注意:你并非把3这个值给了x
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。