一、存储系统概述 & 半导体存储器(第一部分)
3.1 存储系统概述
- 存储系统的层次结构
计算机存储采用分层结构,速度越快,容量越小,价格越高;从CPU向外依次:寄存器 → Cache → 主存 → 辅存。
• 高速缓存Cache:CPU和主存之间,速度接近CPU,容量小。
• 主存(内存):DRAM,存放当前运行程序与数据,CPU可直接访问。
• 辅存(外存,硬盘/U盘):大容量,速度慢,CPU不能直接访问。
- 存储器分类
• 按存储介质:半导体存储器、磁存储器、光存储器。
• 按读写特性:随机存取存储器RAM(断电丢失)、只读存储器ROM(断电保存)。
• 按存取方式:随机存取、顺序存取、直接存取。
- 存储器技术指标
• 存储容量:存储单元总数,单位位bit /字节Byte。
• 存取时间:收到读命令到数据读出的时间。
• 存储周期:连续两次访问存储器的最小间隔,大于存取时间。
• 可靠性:平均故障间隔时间MTBF。
- 编址与端模式
• 字节编址:每个存储单元对应1字节。
• 大端模式:高字节存低地址;小端模式:低字节存低地址。
3.2 静态随机存取存储器 SRAM
存储单元:触发器构成,只要不断电,数据保持不变。
特点:速度快,不需要刷新;电路复杂,集成度低,功耗高,成本高。
用途:用于Cache。
基本结构:存储单元阵列、地址译码、读写控制电路。
存储器容量扩展
◦ 位扩展:增加存储字长。
◦ 字扩展:增加存储单元数量。
◦ 字位同时扩展:既扩容又增加字长。
3.3 动态随机存取存储器 DRAM
存储单元:电容存储电荷表示0/1,电容漏电,必须定期刷新。
特点:集成度高、容量大、功耗低、价格便宜;速度比SRAM慢,需要刷新电路。用作计算机主存。
刷新方式
◦ 集中刷新:集中一段时间一次性刷新,刷新期间不能访问,存在死区。
◦ 分散刷新:每次读写后附带刷新,无死区,但降低存取速度。
◦ 异步刷新:兼顾两者,常用。
- DRAM衍生:SDRAM、DDR SDRAM(双倍数据率,上升沿+下降沿都传输数据)。
3.4 只读存储器 ROM
断电信息不丢失,只读(部分可擦写)
• ROM:出厂固化,不可修改。
• PROM:一次性可编程。
• EPROM:紫外线擦除。
• EEPROM(E²PROM):电可擦除,按字节擦写。
• Flash闪存:块擦除,U盘、固态硬盘。
3.5 并行存储器
双端口存储器:两套独立读写端口,两个端口可同时访问,解决并行访问冲突。
多模块交叉存储器:多个存储模块,流水线并行存取,提高主存带宽。
二、Cache 高速缓存 & 虚拟存储器(第二部分)
3.6 Cache存储器
3.6.1 Cache基本原理
依据局部性原理(时间局部性:刚访问过的数据短期内会再次访问;空间局部性:访问某单元,相邻单元大概率被访问)。
CPU访问流程:先查Cache,命中直接读Cache;未命中(Cache缺失),去主存读取,同时把这块数据调入Cache。
3.6.2 主存与Cache地址映射
直接映射:主存块只能固定放到Cache唯一行。
优点:硬件简单、速度快;缺点:冲突缺失多。全相联映射:主存块可以放到Cache任意一行。
优点:冲突少;缺点:比较电路复杂,成本高,速度慢。组相联映射:Cache分组,主存块映射到固定组,组内任意行。折中方案,最常用。
3.6.3 Cache替换策略(未命中且Cache满时)
• 随机算法RAND:随机淘汰,简单,效果差。
• 先进先出FIFO:淘汰最早调入Cache的块,不考虑使用频率,会发生Belady异常。
• LRU最近最少使用:淘汰最久没有访问的块,硬件开销适中,效果最好,考试重点。
3.6.4 Cache写策略
写直达(全写法):写Cache同时写主存,一致性好;但写速度慢。
写回法:只写Cache,替换时才写回主存,速度快;但存在数据不一致风险,需要修改位。
降低Cache缺失的方法:增加Cache容量、增大块大小、提高相联度、多级Cache。
3.7 虚拟存储器基本概念:把主存+辅存看成一个统一虚拟内存,程序员看到巨大虚拟地址空间。由操作系统+硬件MMU存储管理部件共同实现。
• 虚拟地址(逻辑地址):程序使用的地址。
• 物理地址:内存真实地址。
• 缺页中断:访问页面不在主存,触发中断,操作系统从外存调入页面。
分页式虚拟存储器
页面大小固定;虚拟页号+页内偏移;页表存放虚拟页→物理页映射,页表存在内存。段式虚拟存储器
段长度不固定,按逻辑模块分段;段表保存段基址、段限长。优点:符合程序逻辑;缺点:碎片多。段页式:先分段,段内再分页,综合两者优点。
替换算法:LRU、FIFO等,和Cache替换算法思想类似。
3.8 鲲鹏920处理器存储系统(了解)
鲲鹏920采用多层次存储架构,片上L1/L2/L3 Cache,搭配大容量DDR内存,有地址映射变换机制。
本章小结
SRAM:触发器、无需刷新、Cache;DRAM:电容、需要刷新、做主存。
并行存储器:双端口、多模块交叉,提升带宽。
Cache核心:局部性原理,三种地址映射、替换算法、写策略。
虚拟存储器:逻辑地址转物理地址,分页、段式、段页式,缺页中断。
习题重点:存储器扩展计算、Cache命中率计算、地址映射计算题。