计算机系统结构(2012年春) ----存储层次: Cache基本概念 山东大学计算机学院 戴鸿君 dahogn@sdu.edu.cn
大纲 存储层次 Cache的基本概念 Pa-C.1 2019/4/22 dahogn@sdu.edu.cn
存储层次 CPU regs Memory disk size: speed: $/Mbyte: block size: 200 B 3 ns a c h e Memory disk size: speed: $/Mbyte: block size: 200 B 3 ns 8 B Register Cache Disk Memory 32 KB / 4MB 6 ns $100/MB 32 B 128 MB 60 ns $1.50/MB 4 KB 20 GB 8 ms $0.05/MB larger, slower, cheaper 8 KB cache virtual memory 2019/4/22 dahogn@sdu.edu.cn
存储层次 Registers Level 1 cache Level 2 Cache Memory Disk Typical Size 4 - 64 <16K bytes <2 Mbytes <16 Gigabytes > 5 Gigabytes Access Time 1 nsec 3 nsec 15 nsec 150 nsec 5,000,000 nsec Bandwidth (in MB/sec) 10,000 – 50,000 2000 - 5000 500 - 1000 100 Managed By Compiler Hardware OS OS/User 2019/4/22 dahogn@sdu.edu.cn
iMac’s PowerPC 970: All caches on-chip L1 (64K Instruction) (1K) Registers 512K L2 2019/4/22 dahogn@sdu.edu.cn L1 (32K Data)
存储层次 Cache 虚拟存储器 Cache不可以软件编程 Cache以块(Block)为单位 和Buffer的区别 在磁盘上,内存不足时出现 以页(Page)为单位 页缺失,任务挂起,CPU运行其他任务 2019/4/22 dahogn@sdu.edu.cn
基本概念 Cache的概念 数据Cache、指令Cache Cache 命中(hit)/Cache缺失(miss) 靠近CPU的最近的存储层次,一般用来缓 存数据 数据Cache、指令Cache Cache 命中(hit)/Cache缺失(miss) 2019/4/22 dahogn@sdu.edu.cn
局部性原理 Cache能够发挥作用的根本原因 空间局部性 时间局部性 块内的其他数据很有可能即将被使用 数据很有可能不久再被使用 2019/4/22 dahogn@sdu.edu.cn
Cache缺失的分析 存储器停顿周期数( memory stall cycles) CPU execution time = (CPU clock cycles + Memory stall cycles) × Clock cycle time 2019/4/22 dahogn@sdu.edu.cn
Cache缺失的分析 Cache缺失的代价取决于存储访问的带 宽和时延 缺失率(miss rate),对某种类型的CPU ,可以仿真确定 读、写操作的缺失率和缺失代价都会不同 2019/4/22 dahogn@sdu.edu.cn
映象方式(块放置策略) 全相联映象 直接映象 组相联映像 块地址%总块数(%即取余操作) 一个组里有n块,称作n路 2019/4/22 dahogn@sdu.edu.cn
映象方式 2019/4/22 dahogn@sdu.edu.cn
Cache的地址 块地址 块内偏移 标记了Cache的位置 包括标志字段和索引字段(组内地址) 组相连,只要根据标志字段(定位到组) ,即可判断是否命中 块内偏移 定位到具体需要访问的数据 2019/4/22 dahogn@sdu.edu.cn
Cache的替换策略 基本替换策略 还有一些高级替换策略 随机替换 先进先出(FIFO) 最近最少使用(LRU) 温度相关 校验相关 2019/4/22 dahogn@sdu.edu.cn
Cache写操作 写策略 两者的各自特点 写直达(同时写入Memory) 写回(发生Cache替换,写回Memory) 写停顿 写缓冲(仍然会停顿) 写回(发生Cache替换,写回Memory) 脏位(dirty bit)标识是否写回 两者的各自特点 2019/4/22 dahogn@sdu.edu.cn
写缺失时的策略 写分配 不按写分配 将块读入到Cache中,再进行操作 直接对内存操作 2019/4/22 dahogn@sdu.edu.cn