高速存储器:
高速存储器的作用:
基本就是操作系统中cache的作用
CPU的运行速度远快于主存的存取速度, 这就使得CPU花费大量时间等待主存响应, 为了解决CPU与主存速度不匹配的问题, 在CPU与主存中设置一系列的高速存储器, 以加速CPU与存储器之间的数据传输

双端口存储器
有两对独立的访问端口, 可以并行的工作, 访问同一块存储区域
存在访问冲突问题:
- 同时对同一地址单元写入数据
- 同时对同一地址单元一边写入, 一边读取
多模块交叉存储器
这块其实书里讲的挺清楚的
单体多字:
使用一个存储体, 每个存取周期读出m个字, 逐一传送给CPU
多体并行:
使用多个存储体
-
高位交叉编址
用于提升存储器的容量, 不能提升速度
属于顺序存储器
-
低位交叉编址:
用于提升存储器的速度与容量, 在读取时可以采用流水线模式
属于交叉存储器
数据分布在所有存取模块中, 与Raid 0相似, 容易出问题
相联存储器
基本原理:
类似于map的key-value 键值对

主要用途:
高速缓冲存储器Cache:
基本原理:
Cache基于程序访问的局部性原理
由SRAM构成, 速度比主存快
所有逻辑控制全部由硬件实现, 对程序员而言透明
工作原理:
- CPU & Cache 以字为单位交换数据
- Cache & 主存 以块为单位交换数据
- 访问数据时存在cache命中率
- 按照一定的置换策略与主存交换数据
cache 命中率&效率计算:
注意这个效率的计算, 定义为全部命中的访问时间与平均访问时间的比值
地址映射策略:
这部分看书更加详细
直接映射
每段内存内容固定映射到一个cache块中
冲突概率最高, 空间利用率最低
全相联映射
每个内存块能装入任意位置的Cache
优点是比较灵活, 冲突概率低, 空间利用率高, 命中率高
缺点是标记速度慢, 实现成本高 (需使用相联存储器)
组相联映射
为上头二者的折中
每组内存块可以装入相应Cache组的任意位置
优点就是结合了上头俩的优点
替换策略:
最常考察的是LRU算法
-
LRU操作系统里已经挺熟络的了
算法消耗较高, 较为难以实现
-
LFU是为每个Cache块增加一个访问计数器, 替换掉访问次数最少的块, 导致新换入的块很快又被替换出去
效果没有LRU算法好 -
随机替换
就是完全随机
写回策略:
全写法:
如命中, 将数据同时写入Cache 与 主存
写回内存较慢, 通常需要设置一个写回缓冲区以提升速度
数据安全性较高
写回法:
设置一个脏位, 当数据被修改且将要被换出Cache时写回主存
数据安全性较低
虚拟存储器
操作系统中已经很熟络了
页式存储 & 段式存储
操作系统也
快表:
放在高速存储器中, 以加快地址转换