我们常见的计算机,如笔记本。我们不常见的计算机,如服务器,大部分都遵守冯诺依曼体系结构。
简单聊一下,我们所认识的计算机,都是有一个个的硬件组件组成
中央处理器(CPU):
a.运算器 :算数运算,逻辑运算
b.控制器等:响应外部事件,协调外部就绪事件
输入单元:包括键盘, 鼠标,摄像头,话题,磁盘等
输出单元:显示器,音响,磁盘等
关于冯诺依曼,必须了解几点:
- 这里的存储器指的是内存
- 不考虑缓存情况,这里的CPU能且只能对内存进行读写,不能访问外设(输入或输出设备)
- 外设(输入或输出设备)要输入或者输出数据,也只能写入内存或者从内存中读取。
- 一句话,所有设备都只能直接和内存打交道
这里可以思考一个问题,那就是存储器存在的理由是什么?为什么不能直接让cpu与外设直接交互???
从两个方面来回答:
a. cpu内部的寄存器 > 存储器 > 磁盘 / 固态硬盘 > 光盘 > 磁带
这里运算效率是递减的,但是存储空间是递增的。存储器相当于是运算效率相对减少,但是内存相对增高。
b.如果没有存储器参与进来,那么cpu就没有操作的空间,只能与外设直接交互,有存储器的话,可以让软件(系统)参与进来,进行更加合理的分配。
存储器存在的意义就是:预先把输入设备的数据放进存储器,cpu可以直接在存储器上读取数据,不用直接与外设交互,以防止被拖慢速度。
总结:
1.
cpu读取数据(数据+代码),都是要在内存(存储器)中读取。站在数据的角度,我们认为cpu不和外设直接交互
2.cpu处理数据,需要先将外设中的数据,加载到存储器。站在外设的角度,我们认为外设只和存储器交互
所以需要知道:
程序(文件,磁盘)如果要运行,必须要被加载至内存(存储器)中,这是因为冯诺伊曼体系结构决定的。
示例:qq聊天中,小a发送一行信息"xxx"给小b,数据是如何流向的???
我们可以把信息"xxx"想象成快递,根据冯诺依曼体系结构:
小a:键盘输入(制造产品)--- > 加载到内存 --- > 内存交给cpu(进行打包,封装,填写收件人信息)--- > 加载到内存 --- > 输出设备(通过网卡发出快递)
小b:网卡输入(收到产品)--- > 加载到内存 --- > 内存交给cpu(拆掉快递,撕开包装)--- > 加载到内存 --- > 输出设备(显示器打印信息)
以上仅代表个人观点,仅供参考