第三章-存储系统
DRAM:动态RAM,用于主存
SRAM:静态RAM,用于Cache
DRAM刷新周期一般为2ms,每次刷新以行为单元,每次刷新一行存储单元。(减少选通线数量)有硬件支持,读出一行的信息后重新写入,占用一个读/写周期
三种刷新策略:
- 分散刷新
- 集中刷新
- 异步刷新
地址线复用技术:行、列地址分两次送,可使地址线更少,芯片引脚更少。 - MROM:掩模式只读存储器
- PROM:可编程只读存储器
- EPROM:可擦除可编程只读存储器
- UVEPROM:紫外线擦除
- EEPROM:可用“电擦除”擦除特定的字
- Flash Memory:闪速存储器,“写”比“读”速度更慢
- SSD:有控制单元+存储单元构成,可进行多次快速擦除重写
BIOS芯片为ROM芯片,存储了“自举装入程序”,负责引导装入操作系统。
双端口RAM
需要由两组完全独立的数据线、地址线、控制线。CPU、RAM中也要有更复杂的控制电路。
作用:优化多核CPU访问一根内存条的速度
对于“写入错误”和“读入错误”的解决办法:置“忙”信号为0,、由判断逻辑决定暂时关闭一个端口,未被关闭的端口正常访问,被关闭的端口延长一个很短的时间段后再访问。
多体并行存储器
高位交叉编址:连续读取n个存储字耗时nT
低位交叉编址:连续读取n个存储字耗时T+(n-1)r
判断可能发生访存冲突的规则:给定的访存地址在相邻的四次访问中出现在同一个存储模块内
主存容量扩展
- 位扩展
- 字扩展
- 线选法:n个片选信号
- 译码片:用译码器选择片选信号
Cache
主存与Cache之间以“块”为单位进行数据交换
Cache用来缓和CPU与主存之间的速度矛盾
Cache映射:
- 全相联映射:“标记”、有效位
- 优点:Cache存储空间利用充分,命中率高
- 缺点:查找“标记”最慢,有可能需要对比所有行的标记
- 直接映射:Cache块号:主存块号%Cache总块数
- 优点:对于任意一个地址,只需对比一个“标记”速度最快
- 缺点:Cache存储空间利用不充分,命中率低
- 组相联映射:组号=主存块号%分组数
- 另外两种方式的折中,综合效果最好
给出Cache的容量和主存块大小可以用来计算Cache的行数,以及块内地址位数即为
- 另外两种方式的折中,综合效果最好
替换算法
- 随机算法(RAND):若Cache已满,则随机选择一块替换
- 实现简单,但完全不考虑局部性原理
- 先进先出算法(FIFO):若Cache已满,则替换最先被调入Cache的块
- 实现简单,依然没考虑局部性原理,会出现抖动现象:频繁的换入换出
- 近期最少使用(LRU):为每一个Cache块设置一个“计数器”,用于记录每个Cache块已经有多久没被访问。当Cache满后替换“计数器”最大的。
- 基于“局部性原理”,实际运行效果优秀,Cache命中率高,也可能出现抖动现象
- 最近不经常使用算法(LFU):为每一个Cache块设置一个“计数器”,用于记录每个Cache块被访问过多少次。当Cache满后替换“计数器”最小的。
- 实际效果不如LRU
一致性问题
写回法:当CPU对Cache写命中时,只修改Cache的内容,而不立即写入主存,只有当此块被换出时才写回主存
全写法:当CPU对Cache写命中时,必须把数据同时写入Cache和主存,一般使用写缓冲。(CPU写的速度很快,若写操作很频繁,可能会因为写缓冲饱和而发生阻塞)
写分配法:当CPU对Cache写不命中时,把主存中的块调入Cache,在Cache中修改。通常搭配写回法使用。
非写分配法:当CPU对Cache写不命中时只写入主存,不调入Cache。搭配全写法使用。
- 标题: 第三章-存储系统
- 作者: XCurry
- 创建于 : 2024-09-24 13:15:00
- 更新于 : 2024-09-29 15:03:30
- 链接: https://github.com/XYXMichael/2024/09/24/计算机组成原理/第三章-存储系统/
- 版权声明: 本文章采用 CC BY-NC-SA 4.0 进行许可。
评论