1.5 存储器的层次结构
计算机存储器的设计受到三个因素的限制
- 容量
- 速度
- 成本
但各项技术之间又往往存在着以下的关系
- 存期时间越快,每“位”价格越高
- 容量越大,每“位”价格越低
- 容量越大,存取速度越慢
对一个实际的计算机系统,存储器的价格与计算机其他部件的价格相比应该是合理的,因而存储器的设计往往需要在各项技术之间找到一个平衡点,但同时存储器的速度必须能跟得上处理器的速度。解决这些问题的方法在于使用存储器层次结构
自上而下
- 每个比特的价格递减
- 容量递增
- 存取时间递增
- 处理器访问存储器的频率递减
容量较大、价格较便宜的慢速存储器,是容量较小、价格较贵的快速存储器的后备。
存储器层次结构能够成功的关键是低层访问频率递减。
假定有一个二级存储器(内存+高速缓存),内存存取时间为1us,高速缓存存取时间为0.1us,且高
速缓存的命中率为95%,则访问一个字节的平均存取时间为:0.95×0.1+0.05×(0.1+1)=0.15(us) ```
程序访问的局部性原理
在执行程序期间,处理器的指令访存和数据访存呈现“簇”状(一组数据集合),例如:
- 循环:重复访问一小范围的指令集合;
- 数组操作:存取一簇数据。
经过很长一段时间,程序访问的**“簇”** 会改变,但在较短时间内,处理器主要访问存储器中固定的 “簇”。
如二级存储结构,程序当前访问的“簇”暂时存放在第一级存储器中,而第二级存储器包含所有指令和数据。
时间局部性:被引用过一次的存储器位置在最近的未来会被多次引用(通常在循环中)。
空间局部性:如果一个存储器的位置被引用,那么在最近的将来它附近的位置也会被引用
二级存储器
也称为辅助存储器,为非易失性外部存储器
用于存储程序或数据文件,其表现形式是程序员可以看到文件和记录,而不是单个字节或字
1.6 高速缓存
高速缓存对操作系统不可见,但它与其他存储管理硬件相互影响
1.6.1 动机
指令执行期间,处理器在取指时至少要访问一次内存,通常要多次访问内存用于取操作数或保存结果。但是处理器和内存的速度不匹配,处理器速度的提高一直快于内存访问速度的提高,即处理器执行指令的速度受限。为了解决这个问题,利用局部性原理,在处理器和内存之间提供一个容量小而速度快的存储器,也就是高速缓存。
1.6.2 高速缓存原理
高速缓存的目的是使访问速度接近现有最快的存储器(寄存器组),同时保持价格便宜的大存储容量。
1.6.3 高速缓存设计
此内容这里只简单的概括主要设计因素
在进行虚拟存储器和磁盘高速缓冲设计时,还需要解决如下六类问题
- 高速缓存大小
- 块大小
- 映射函数
- 置换算法
- 写策略
- 高速缓存的级数
高速缓存大小:小容量高速缓存会对性能产生明显的影响
块大小:高速缓存与内存之间的数据
映射函数:决定数据块占据哪个高速缓存单元
- 设计时要考虑两方面的约束:
- 读入一个块时,另一个块可能会被置换出高速缓存
- 映射函数越灵活,完成搜索以确定某个指定块是否位于高速缓存中的功能所需要的逻辑电路越复杂
1.7 直接内存存取
执行I/O操作三种可能的技术:可编程I/O、中断驱动I/O、 直接内存存取(DMA)
可编程I/O
I/O模块执行请求的动作并设置I/O状态寄存器中相应的位; 处理器执行I/O指令后,要定期检查I/O的状态,以确定I/O操作是否已经完成。
问题: 处理器在等待I/O操作完成期间需不断询问I/O模块的状态,严重降低了整个系统的性能。
中断驱动I/O
处理器给I/O模块发送I/O命令,然后继续做其它有用的工作, 当I/O模块准备好与处理器交换数据时,将打断处理器的执行并请求服务,处理器执行数据传送,然后恢复以前的执行过程
尽管比可编程I/O更有效,但处理器仍需要主动干预在存储器和I/O模块之间的数据传送,任何数据传送都必须完全通过处理器
直接内存存取(DMA)
由系统总线中的一个独立模块完成,或者并入一个I/O模块执行。
当处理器希望读或写一块数据时,给DMA模块产生一条命令,发送以下信息:
- 是否请求一次读或写
- 所涉I/O设备的地址
- 进行读或写的存储器起始位置
- 需要读或写的字数
DMA模块直接与存储器交互,传送整个数据块,一次传送一个字,无须处理器参与。传送完成,DMA模块发一个中断信号给处理器。因此,只在开始传送和传送结束时处理器才会参与
问题:在DMA传送过程中,当处理器需要访问总线时,因存在竞争,处理器将暂停一个总线周期,处理器的执行速度会变慢。尽管如此,仍比中断驱动和可编程I/O更有效
1.8 多处理器和多核计算机组织结构
对称多处理器(SMP)
SMP是具有以下特点的独立计算机系统:
- 具有两个或两个以上可比性能的处理器;
- 所有处理器共享内存和I/O设备,并通过总线或其他内部连接方式互连,从而每个处理器的访存时间大致上相同;
- 所有处理器共享对I/O设备的访问,通过相同的通道或者可以连接到相同设备的不同通道;
- 所有处理器可以执行相同的功能;
整个系统由一个统一的操作系统控制,为多个处理器及其程序提供作业、进程、文件和数据元素等各种级别的交互。
SMPd的突出特点是多处理器的存在对用户是透明的。
优点:
- 性能:如果计算机要做的工作包 含可以并行完成的部分, 那么它能提供更好的性能
- 可伸缩性:厂商可以提供一系列不同 价格和性能指标的产品, 其中产品性能可通过系统 中的处理器数量来配置
- 可用性:单个处理器的失效不会导 致停机
- 渐增式成长:用户可通过增加处理器的 数量来提高系统的性能
下图为其组织结构
多核计算机
多核(muliticore)计算机是指将两个或多个处 理器(核)组装在同一块芯片上。也称为芯片多处理器。
每个核上通常会包含组成一个独立处理器的所有零部件,如寄存器、流水线硬件、控制单元,以 及L1指令和数据高速缓存。现代多核芯片还可以包含L2高速缓存,甚至在某些芯片中包含L3高速缓存。
集群
附:计算机体系结构发展的五个时代
参考教材
《操作系统——精髓与设计原理(第九版)》 [美] William Stallings 著 陈向群 陈渝 译 电子工业出版社
课堂笔记,如有错误之处,敬请指正!