欢迎来到天天文库
浏览记录
ID:49996737
大小:1.35 MB
页数:24页
时间:2020-03-07
《计算机组成原理_存储子系统-6-三级存储体系.ppt》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、4.6三级存储体系计算机中的存储系统,分为三个层次:外存内存Cache外存:存储运行期指令/数据,确保CPU能快速读取;强化CPU快速读取指令和数据的速度;确保计算机具有足够大的存储容量;确保数据能脱机保存;内存:CACHE:硬盘光盘U盘1/24内存Cache※Cache和内存的关联内存中的数据,调入CacheCache中的数据,写回内存以数据块为单位整体操作:直接映射、全相联映射、组相联映射外存内存※内存和外存的关联虚拟存储技术:页式、段式、段页式外存中的数据,调入内存内存中的数据,写回外存2/2
2、44.6.1Cache与主存映射1.设置Cache的原因※为解决CPU和主存速度不匹配而采用的一项技术,使访问主存的平均速度接近于访问Cache的速度。※由硬件系统实现,对用户透明。※已在CPU内集成,两级以上的Cache系统。3/242.Cache的前提条件※指令的执行具有局部性特征:因此可以将正在使用的部分(热点区指令和数据),提前预取并存储到一个高速的、小容量的Cache中。CPU从主存中取指令、数据,在一定时间内地址范围常局限于主存的某个小区域。CPU访存CPU访问Cache[技术效果]能使
3、CPU读写指令、数据的速度大大提高。4/243.主存与Cache的地址映射[说明]主存↔Cache之间是以固定大小的数据块为单位进行整体调度(交换);基于下列条件,分析3种主存↔Cache映射:存储器均按字节编址:1B/每个地址;数据块大小:512B;Cache容量:8KB主存容量大小:1MB→分成16块(213/29)→分成2048块(220/29)5/24(1)直接映射[映射规则]主存的每一个数据块,只能映射到与其组内序号相同的Cache数据块位置。直接映射的规则,如图4-47示Cache:只分
4、块、不分组主存:既分块、也分组(每组的块数=Cache块数)如果:K为Cache的块序号,J为主存块的序号,C为Cache块号的位数。则K=Jmod2c=Jmod246/24011501150115标记0块标记1块……标记15块0块1块…15块16块17块…31块2032块2033块…2047块……第0组第1组第127组分组的组号组内块序号块内字节地址图4-47直接映射C=4、Na=20,每块512字节7位Cache块7位4位9位00000011111000001110定位Cache的第15块,读取
5、其标记字段相等吗?据此判断目标内存块是否在Cache中主存地址A组号+块号+块内字节偏移;=157/24(2)全相联映射[映射规则]主存任何一个块都可以映射到Cache的任何一个数据块位置上,如图4-48示。存在的缺点:Cache标记太长,判断时间太长。硬件复杂、成本高、实现相对困难。Cache:只分块、不分组主存:只分块、不分组8/24标记0块标记1块……标记15块11位Cache块0块1块…15块16块…2046块2047块主存主存块号块内地址11位9位将主存块的块号与Cache块的标记字段比较
6、,判断主存块是否已映射到缓存中图4-48全相联映射Na=20,每块512字节00000011111000001110主存地址A第几块中的第几个地址?=319/24(3)组相联映射Cache:既分块、也分组定位Cache的分组:直接映射;速度快、硬件简单、成本低、易实现[映射规则]主存:既分块、也分组(组内块数=Cache组数)→直接映射和全相联映射的折衷主存数据块,映射到与自己组内块序号相同的Cache分组,可占据Cache分组中的任意数据块位置。定位Cache数据块:全相联映射;(图4-49示)1
7、0/2400000011111000001110标记0块标记1块标记2块标记3块……标记12块标记13块标记14块标记15块0组0块1块…7块8块9块…15块16块17块……2045块2046块2047块0组1组255组组号组内块号块内地址8位Cache块8位3位9位主存地址比较Cache组内的各标记字段图4-49组相联映射Na=20,每块512字节定位到Cache的第7组据此判断所在内存块是否已映射到缓存中定位组:直接映射定位块:全相联映射1组6组7组2路-组相联映射=7=311/24[举例]某计
8、算机的Cache共有16块,采用2路-组相联映射方式(即每组包括2块)。存储器按字节编址,每个主存块大小为32字节,那么129号主存单元所在的主存块应装入到的Cache组号是():A.0B.2C.4D.6[解题分析]129=100000010…010000001Cache分8组,每组2块,每块32B主存分若干组,每组又分成8块Cache如何分组、分块?主存如何分组、分块?(组内块序号100)12/244.常用的替换算法(1)最不经常使用(LFU,Least-Frequ
此文档下载收益归作者所有