存储系统,总线系统,输入输出系统和可靠性 2月22日 – 天气:阴转晴
济南下大雪,居家办公两天。
1. 计算机存储器的分类
- 根据存储位置划分:
- 内存/主存:用来保存当前正在运行的程序所需要的数据,速度快,容量小
- 外存/辅存:用于保存当前不参与运行的程序,容量大但是速度慢
- 按照材料可以划分:
- 磁存储器:例如磁带和磁盘
- 半导体存储器:MOS,高速缓存
- 光存储器:光盘💿
- 按照工作方式划分:
- RAM:随机存储器,支持读取和写入。断电后内容消失
- ROM:只读存储器,通常由厂家生产的时候写入固定的数据,一般用于存储程序的BIOS信息和微程序控制
- RPOM:可编程的ROM,只允许用户写入一次数据,之后就不能再次修改
- EPROM:可擦除可编程的只读存储器。允许写入和读取数据,通过紫外线照射可以清除信息
- EEPROM:电子可擦除可编程的只读存储器。和上面的类似,数据通过电擦除的方式进行擦除
- FLASH:删除存储器,比如U盘,速度要快于EPROM
2. 高速缓存Cache
高速缓存利用了程序的局部性原理,所谓程序的局部性原理是指:
- 空间局部性:程序执行过程中,将来要用到的程序和数据很有可能和现在正在使用的程序在存储空间上是临近的。比如顺序执行的程序
- 时间局部性:在程序的执行过程中,现在用到的信息,将来也可能要用到。例如程序中的循环语句。
3. Cache和主存之间的地址映射
我们知道,cache中保存的是主存中数据的部分副本,因此存在一种映射关系将主存的数据映射到cache中。映射的方式主要有三种:
3.1 直接映射
直接映射就是将主存的块和cache中的块的对应关系是固定的,比如主存中的第一块就只能映射到cache中的第一块中。
这种方式的优点是地址映射比较简单,但是灵活性差。
3.2 全相连映射
这种方式允许主存中的任意一块空间映射到cache中的任意一块空间。优点是主存中的块存入cache中不受限制,非常灵活。缺点是无法通过主存直接获取到其对应在cache中的块号,地址变换比较复杂,因此速度比较慢。
3.3 组相连映射
这种方式综合了前两种方式,具体操作是将cache进行分块,块内部采用的是全相连的方式,而对于块与块之间还是采用的是全相连的模式。
注意这三种方式的主存地址结构
4. 缓存的替换算法
当缓存已满的时候,如果有新的内容要写入缓存,则必须遵循一定的缓存替换策略,下面是常用的几种策略:
- 随机替换算法(RAND):使用随机数发生器随机生成一个要替换的块号,然后替换出去。
- 先进先出(FIFO):根据进入cache的先后进行替换
- 最近最少使用(LRU):选择cache中最近最少使用的块替换出去
- 优化替换(OPT):首先先执行一边程序,了解何时需要替换哪一个块,然后基于这个结构,在第二次执行该程序的时候可以使用最有效的方式进行替换。
5. Cache相关计算题
6.Cache相关习题和总结
Cache知识点总结
位于CPU和主存之间,由硬件来实现
容量较小,一般在几KB到几MB之间
速度一般会比主存快5到10倍,由快速的半导体存储器制成
保存的内容是主存内容的副本,因此cache无法用来扩充主存的容量
对于程序员来说,是透明的
cache既可以存放程序,也可以存放数据
当CPU访问数据时,会首先到cache中寻找数据,如果找到了数据,则为命中。如果找不到时且命令为读取数据操作,则需要从主存中获取。若此时缓存已满,则需要根据一定的缓存替换策略进行替换。如果是写入操作,则直接将数据写入主存即可。高速缓存的特点
位于CPU和主存之间,由硬件来实现
容量较小,一般在几KB到几MB之间
速度一般会比主存快5到10倍,由快速的半导体存储器制成
保存的内容是主存内容的副本,因此cache无法用来扩充主存的容量
对于程序员来说,是透明的
cache既可以存放程序,也可以存放数据
当CPU访问数据时,会首先到cache中寻找数据,如果找到了数据,则为命中。如果找不到时且命令为读取数据操作,则需要从主存中获取。若此时缓存已满,则需要根据一定的缓存替换策略进行替换。如果是写入操作,则直接将数据写入主存即可。
7. 主存的编址
关于字扩展和位扩展
- 字扩展实际上增加了存储单元的数量,上图中最右边采用的就是字扩展,字扩展实际上是增加了存储字的数量
- 位扩展实际上是扩展了存储字长,由之前的4位扩展到了8位
相关资料https://blog.csdn.net/redRnt/article/details/83503547
主存编址涉及到的相关计算题:
https://blog.csdn.net/qq_40572023/article/details/124286318
8. 硬盘
硬盘考的比较少,设计的考点主要是硬盘存取时间的计算。
9. 总线
总线的分类主要有:
- 片内总线:片内总线主要负责芯片内部通讯。他是CPU芯片内部寄存器与寄存器之间,寄存器与ALU之间进行数据交换的连接线
- 系统总线:是计算机内部各个部件之间进行传输数据的通讯线路。根据传输的信息不同,可以分为以下三类:
- 数据总线 传输地址信息,包括主存单元或I/O端口的地址
- 控制总线 传输各功能部件之间的数据信息,包括指令和操作数。
- 地址总线 一根控制线传输一个控制信号
- 通信总线:计算机系统之间或计算机系统与其他系统(如远程通信设备、测试设备)之间信息传送的总线,通信总线也称为外部总线或设备总线。
10. 输入输出技术
程序查询和中断方式的区别是:
- 程序查询需要CPU每隔一段时间就是访问输入输出设备,看看是否已经准备好可以使用
- 中断是输入输出设备就绪后发送消息给CPU
- 也就是说第一种是CPU主动询问,第二种是CPU被动接收
11. 可靠性的计算
这里主要掌握可靠性的计算公式即可