内容要点:高速缓存,主存
1. 存储层次结构概况
外部记录介质R,运算器CA,存储器M
-
存储器特性:非易失性,可读可写,随机访问,访问时间,容量,价格,功耗...
CPU 通用寄存器(Byte量级) 更小、更快、单位字节成本更高 SRAM 高速缓存(KB~MB量级) DRAM 主存(MB~GB量级) Disk 本地二级存储(GB~TB量级) 更大、更慢、单位字节成本更低
2. DRAM
- DRAM的基本存储单元(1bit)
- 电容存在漏电效应,经过一段时间后电容上的电荷会流失,导致所存信息丢失
- 定期对所有单元进行刷新(refresh),使原来表示逻辑"1"电容上的电荷得到补充,而原来表示逻辑"0"的电容仍保持无电荷状态
- DRAM的特点
- 优点:集成度高,功耗较低,价格较低
- 缺点:速度较慢,定时刷新
- 现代PC机大多采用DRAM作为主存
3. SRAM
- SRAM的基本存储单元
- 6个晶体管,双稳态触发器,无需更新
- SRAM的特点
- 优点:速度较快
- 缺点:集成度低,功耗较大,价格较高
- 现代CPU中的高速缓存通常用SRAM实现
4. 主存
- SDRAM的关键性能参数(PC133标准)
- tRCD(Row to Column Delay):从行选到列选的延迟时间
- 23T,约1223ns
- CL(CAS Latency):从列选到数据输出的延迟周期数
- 23T,约1223ns
- tRP(RAS Precharge):行预充电(关闭行)的延迟时间
- 23T,约1223ns
- tRCD(Row to Column Delay):从行选到列选的延迟时间
-
SDRAM读操作的典型访问过程
5. 高速缓存的工作原理
-
程序的局部性原理(经验性总结)
- 时间局部性(Temporal locality):最近被访问的存储器单元(指令或数据)很快还会被访问
- 空间局部性(Spatial locality):正在被访问的存储器单元附近的单元很快会被访问
-
Cache的基本原理
-
Cache对空间局部性的利用
- 从主存中取回待访问数据时,会同时取回与位置相邻的主存单元的数据
- 以数据块(block)为单位和主存进行数据交换
-
Cache对时间局部性的利用
- 保存近期频繁被访问的主存单元的数据
-
Cache读操作过程示例
MOV AL, [2011H] # 1.未命中,读主存地址2010H,分配表项1(倒数第2位),读出A1H(倒数第1位) MOV BL, [4011H]# 2.未命中,读主存地址4011H,分配表项1,覆盖前面的,读出B1H MOV CL, [3732H]# 3.未命中,读主存地址3732H,分配表项3,读出C2H MOV DL, [401FH]# 4.命中表项1,读出BFH
有效位 标签 (数据)字节0 字节1 字节2 字节3 ... 字节15 表项0 0 表项1 1 20H
40HA0H
B0HA1H√
B1H√A2H
B2HA3H
B3H... AFH
BFH√表项2 0 37H C0H C1H C2H√ C3H ... CFH 表项3 1 ... 表项5 0
-
-
Cache的写策略
- ”Cache命中“时的写策略
- 写穿透(Write Through):数据同时写入Cache和主存
- 写返回(Write Back):数据只写入Cache,仅当该数据块被替换时才将数据写回主存
- ”Cache失效“时的写策略
- 写不分配(Write Non-Allocate):直接将数据写入主存
- 写分配(Write Allocate):将该数据所在的块读入Cache后,再将数据写入Cache
- (写返回,写分配) (写穿透,写不分配)
- ”Cache命中“时的写策略
-
高速缓存的组织结构
- Average Memory Access Time = Hit Time + Miss Penalty * Miss Rate
- Cache Miss 原因:
- 义务时效(Compulsory Miss):无法有效避免
- 第一次访问某一数据块
- 也称为冷启失效(Cold Start Miss)
- 容量失效(Capacity Miss):可通过增加Cache容量缓解
- Cache无法保存程序访问所需的所有数据块
- 冲突失效(Conflict Miss)
- 多个存储器位置映射到同一Cache位置
- 义务时效(Compulsory Miss):无法有效避免
- Cache的映射策略
- 直接映射Cache,二路组相联Cache,...
- Cache替换算法
- 随机(Random)
- 硬件随机选择一个Cache替换
- 轮转(Round-Robin)
- 按照预先设定的顺序依次选择Cache块替换
- 最近最少使用(LRU)
- 硬件记录访问历史信息
- 选择距离现在最长时间未被访问的Cache块替换
- 随机(Random)
- 存储容量的计算
- K: , M: , G:
- 内部存储器容量
- 高速缓存:32KB = 32 * 1024Byte
- 内存:4GB = Byte
- 外部存储器容量
- 优盘:4GB = Byte
- 硬盘:1TB = Byte
- 数据传输率、时钟频率
- 以太网:100Mbps = bits per second
- CPU主频:3GHz = HZ
quiz:
- 循环通常具有很好的空间局部性 & 时间局部性
- 数组通常具有很好的空间局部性
- 64-bit数据宽度的DDR-400 SDRAM的峰值带宽为3.2GB/s,核心时钟频率为200MHz,芯片内部采用了2位数据预取技术,其接口频率是多少?200MHZ
- SRAM和DRAM区别:
- DRAM结构比SRAM简单
- DRAM要刷新,SRAM不要
- DRAM功耗比SRAM低