冯诺伊曼结构
计算机由五大组成部分构成:
运算器+控制器(CPU),存储器(内存),输入设备,输出设备
数据和指令以二进制形式,不加区分的存放在存储器中
下图是工作原理
cpu是不管内存中存储的数据是值或是地址的,cpu工作时只是从内存中取出一条指令执行,然后再取一条指令执行
在物理层面,计算机的各个部件是以以下的形式连接在一起的
各部件之间要传输的数据都是靠I/O总线来进行传输的
cpu在执行指令的过程是流水线的操作 可以简单的分为三个步骤:取指,译码,执行
cpu自身就分为3个区域:区域1就负责取指,取指后交给区域2,区域2将获取的指令译码,完成后交给区域3执行,就这样指令源源不断的进入cpu中得到了执行
cpu的执行速度是非常非常快的,比内存和硬盘开好几个数量级
为了直观的看出速度的差别,图片制作者将cpu执行一次的时间规定为1s,内存执行一次就为6min,磁盘读取一次的时间为1~12个月
时间上的差距是非常非常大的
计算机内各部件之间速度不匹配的问题是计算机系统的核心问题
解决方法有两种:
1.提升硬盘等设备的速度,使之和cpu匹配
现阶段不可能
2.承认局限,但充分压榨cpu的能力,让cpu"忙死"
将原来的同步操作变成异步操作
将程序的顺序执行变成并发执行
增加中间层
将计算机比喻为餐馆
如果是同步的操作,那餐馆一次只能接待一个人,执行效率太慢
局部性原则:
–时间局部性:是指如果程序中的某条指令一旦执行,则不久之后该指令可能再次被执行;如果某数据被访问,则不久之后该数据可能再次被访问。
–空间局部性:是指一旦程序访问了某个存储单元,则不久之后。其附近的存储单元也将被访问。
•当CPU要读取一个数据时,首先从CPU缓存中查找,找到就立即读取并送给CPU处理;
•没有找到,就从速率相对较慢的内存中读取并送给CPU处理,同时把这个数据所在的数据块调入缓存中,可以使得以后对整块数据的读取都从缓存中进行,不必再调用内存
学自:“码农翻身”微信公共号