1、5.3 5.3 并行主存储器并行主存储器 所谓并行主存储器,是指在一个主存周期内可以并所谓并行主存储器,是指在一个主存周期内可以并行读取多个数据字的主存储器。通常采用单体多字和行读取多个数据字的主存储器。通常采用单体多字和交叉存取方式。交叉存取方式。寻址方式有单体多字寻址方式、多体存储器的寻址寻址方式有单体多字寻址方式、多体存储器的寻址方式和多体交叉寻址方式。方式和多体交叉寻址方式。下一页下一页上一页上一页 当并行的存储器共用一套地址寄存器和地址译码电路当并行的存储器共用一套地址寄存器和地址译码电路时称为单体方式,其结构原理图如下。时称为单体方式,其结构原理图如下。下一页下一页上一页上一页单体
2、多字寻址方式单体多字寻址方式 多个并行存储器与同一地址寄存器连接,所以同时被一个多个并行存储器与同一地址寄存器连接,所以同时被一个单元地址驱动,一次访问读出的是沿单元地址驱动,一次访问读出的是沿n n个存储器顺序排列的个存储器顺序排列的n n个字,故也称单体多字方式。与单体单字结构的存储器相比,个字,故也称单体多字方式。与单体单字结构的存储器相比,单体多字寻址方式在存取速度方面有明显的优点,因为,单单体多字寻址方式在存取速度方面有明显的优点,因为,单体单字存储器的每一个主存周期只能读出一条指令或一个数体单字存储器的每一个主存周期只能读出一条指令或一个数据,在取指和读取数据的周期内,据,在取指和
3、读取数据的周期内,CPUCPU处于等待状态,因此处于等待状态,因此工作效率低。在本例所示的单体工作效率低。在本例所示的单体4 4字的寻址方式中,一次能字的寻址方式中,一次能读出读出4 4个字长为个字长为w w位的数据或指令,然后再以单字长的形式送位的数据或指令,然后再以单字长的形式送给给CPUCPU执行。当然,若处理的数据不是连续地存放在主存中,执行。当然,若处理的数据不是连续地存放在主存中,或者在程序中经常使用转移指令,单体多字寻址方式的效果或者在程序中经常使用转移指令,单体多字寻址方式的效果就不显著了。就不显著了。下一页下一页上一页上一页下一页下一页上一页上一页多体存储器的寻址方式多体存储
4、器的寻址方式下图是多体存储器原理图下图是多体存储器原理图下一页下一页上一页上一页 计算机系统中的大容量主存是由多个存储体组成的,计算机系统中的大容量主存是由多个存储体组成的,每个存储体都有自己的读写线路、地址寄存器和数据寄每个存储体都有自己的读写线路、地址寄存器和数据寄存器,能以同等的方式与存器,能以同等的方式与CPUCPU交换信息,每个存储体容交换信息,每个存储体容量相等,它们既能同时工作又独立编址。图中量相等,它们既能同时工作又独立编址。图中MARMAR为模为模块地址寄存器,块地址寄存器,MDRMDR为模块数据寄存器,主存地址寄存为模块数据寄存器,主存地址寄存器的高位表示模块号,低位表示块
5、内地址。这种结构的器的高位表示模块号,低位表示块内地址。这种结构的寻址方式有利于并行处理,能够实现多个分体的并行操寻址方式有利于并行处理,能够实现多个分体的并行操作,一次访问并行处理的作,一次访问并行处理的n n个字,不像单体方式那样一定个字,不像单体方式那样一定是沿存储器顺序排列的存储单元内容,而是分别由各分是沿存储器顺序排列的存储单元内容,而是分别由各分体的地址寄存器指示的存储单元的内容。因为各分体工体的地址寄存器指示的存储单元的内容。因为各分体工作独立,因此,只要进行合理的调度,就能实现并行处作独立,因此,只要进行合理的调度,就能实现并行处理,两个存储体可以同时进行不同的操作。理,两个存
6、储体可以同时进行不同的操作。例如一个存例如一个存储体被储体被CPUCPU访问时,另一个存储体可用来与外部设备进访问时,另一个存储体可用来与外部设备进行直接存储器存取(行直接存储器存取(DMADMA)操作。)操作。多体交叉是多体存储器的另一种组织形式,下面以一个四多体交叉是多体存储器的另一种组织形式,下面以一个四体交叉存储器的组织形式为例,来说明多体交叉存储器的体交叉存储器的组织形式为例,来说明多体交叉存储器的工作原理。下图是四体交叉原理图。工作原理。下图是四体交叉原理图。下一页下一页上一页上一页多体交叉寻址方式多体交叉寻址方式 多体交叉寻址方式与多体存储器寻址方式不同,多多体交叉寻址方式与多体
7、存储器寻址方式不同,多体存储器是以高位地址作为模块号,低位地址作为体体存储器是以高位地址作为模块号,低位地址作为体内地址,每个模块体内地址是连续的;内地址,每个模块体内地址是连续的;多体交叉寻址多体交叉寻址方式是以低位地址作为模块号,高位地址作为体内地方式是以低位地址作为模块号,高位地址作为体内地址,各模块间地址编号采用交叉方式。址,各模块间地址编号采用交叉方式。上图所示的上图所示的4 4个模块个模块M0M0、M1M1、M2M2、M3M3的编址如下表所示。框内序号的编址如下表所示。框内序号表示存储单元的地址编号表示存储单元的地址编号J=0J=0,1 1,2 2。下一页下一页上一页上一页 地址连
8、续的两个单元分布在相邻的两个模块中地址连续的两个单元分布在相邻的两个模块中,地址按模,地址按模块号方向顺序编号。块号方向顺序编号。同一模块内相邻的两个单元地址之差等于同一模块内相邻的两个单元地址之差等于n n。例如在四体交。例如在四体交叉存储器结构方式下,两个单元地址之差等于叉存储器结构方式下,两个单元地址之差等于4 4。任何一个存储单元的二进制地址编号的末任何一个存储单元的二进制地址编号的末2 2位正好指示该单位正好指示该单元所属模块的编号,元所属模块的编号,访问主存时只要判断这几位就能决定访访问主存时只要判断这几位就能决定访问的是那个存储模块。在四体交叉存储器结构方式下,问的是那个存储模块
9、。在四体交叉存储器结构方式下,M0M0模块的每个单元地址的二进制编码最后两位都是模块的每个单元地址的二进制编码最后两位都是0000,M1M1模模块的每个单元地址最后两位都是块的每个单元地址最后两位都是0101,M2M2模块的每个单元地模块的每个单元地址最后两位都是址最后两位都是0202,M3M3模块的每个单元地址最后两位都是模块的每个单元地址最后两位都是0303。同一模块内每个单元地址除去模块号后的高位地址正好是同一模块内每个单元地址除去模块号后的高位地址正好是模块内单元的顺序号,模块内单元的顺序号,由此就可决定访问单元在模块中的位由此就可决定访问单元在模块中的位置。置。下一页下一页上一页上一
10、页n n体交叉寻址方式的规则满足以下体交叉寻址方式的规则满足以下4 4点点5.5 Cache5.5 Cache存储器存储器5.5.1 5.5.1 多级存储体系结构多级存储体系结构5.5.2 Cache5.5.2 Cache工作原理工作原理5.5.3 5.5.3 主存与主存与CacheCache的地址映射和地址变换的地址映射和地址变换5.5.4 Cache5.5.4 Cache的替换策略及写操作策略的替换策略及写操作策略中央处理器中央处理器主存主存外存外存cachecacheCPUCPUM1M1M2M3M3辅助辅助硬件硬件辅助辅助软硬件软硬件5.5.1 5.5.1 多级存储体系结构多级存储体系结
11、构为解决存储容量、存取速度和价格之间的矛盾为解决存储容量、存取速度和价格之间的矛盾,通常通常将各种不同存储容量、不同存取速度的存储器将各种不同存储容量、不同存取速度的存储器,按一按一定的体系结构组织起来定的体系结构组织起来,形成一个统一整体形成一个统一整体.典型的三级存储系统典型的三级存储系统:图图5.25 三级存储系统示意图三级存储系统示意图 Cache-Cache-主存层次主存层次 CacheCache一般由一般由SRAMSRAM构成构成,容量小容量小,存取速度快,依存取速度快,依据程序局部性原理据程序局部性原理,存放的是主存中当前最需要执存放的是主存中当前最需要执行的信息副本行的信息副本
12、.目的:主存容量不足的问题目的:主存容量不足的问题.利用辅助硬件和操作系统中的存储管理软件利用辅助硬件和操作系统中的存储管理软件,将将 主存和辅存构成一个整体主存和辅存构成一个整体.目的:解决目的:解决CPUCPU和主存速度不匹配的问题和主存速度不匹配的问题.主存主存-辅存层次辅存层次 总体效果:存取速度接近总体效果:存取速度接近Cache,Cache,而存储容量接而存储容量接 近于辅存近于辅存,整体价格也较合理整体价格也较合理.5.5 Cache5.5 Cache存储器存储器5.5.1 5.5.1 多级存储体系结构多级存储体系结构5.5.2 Cache5.5.2 Cache工作原理工作原理5
13、.5.3 5.5.3 主存与主存与CacheCache的地址映射和地址变换的地址映射和地址变换5.5.4 Cache5.5.4 Cache的替换策略及写操作策略的替换策略及写操作策略1.1.问题的提出问题的提出避免避免 CPU“空等空等”现象现象CPU 和主存(和主存(DRAM)的速度差异)的速度差异缓存缓存CPU主存主存容量小容量小速度高速度高容量大容量大速度低速度低字字块块主存块主存块 调入调入 缓存缓存主存块与缓存块主存块与缓存块 建立建立 了对应关系了对应关系标记记录标记记录 与某缓存块建立了对应关系的与某缓存块建立了对应关系的 主存块号主存块号命中命中未命中未命中主存块与缓存块主存块
14、与缓存块 未建立未建立 对应关系对应关系主存块主存块 未调入未调入 缓存缓存2.2.CacheCache的命中率的命中率命中率命中率CPU 欲访问的信息在欲访问的信息在 Cache 中的中的 比率比率命中率命中率 与与 Cache 的的 容量容量 与与 块长块长 有关有关 CH命中率命中率CPU 欲访问的信息在欲访问的信息在 Cache 中的中的 比率比率命中率命中率 与与 Cache 的的 容量容量 与与 块长块长 有关有关 容量大BC1H容量小Cache 主存系统的效率主存系统的效率效率效率 e 与与 命中率命中率 有关有关 设设 Cache 命中率命中率 为为 h,访问访问 Cache
15、的时间为的时间为 tc ,访问访问 主存主存 的时间为的时间为 tm 则则 e=100%tc h tc+(1h)tm 访问访问 Cache 的时间的时间 平均访问时间平均访问时间 e=100%3.Cache 3.Cache 的的 读读 操作操作 访问访问CacheCache取出信息送取出信息送CPUCPU 访问主存访问主存取出信息送取出信息送CPUCPU将新的主存块将新的主存块调入调入CacheCache中中执行替换算法执行替换算法 腾出空位腾出空位 结束结束命中?命中?CacheCache满?满?CPUCPU发出访问地址发出访问地址 开始开始是是否否是是否否4.Cache 4.Cache 的
16、基本结构的基本结构Cache替换机构替换机构Cache存储体存储体主存主存Cache地址映像地址映像变换机构变换机构由由CPU完成完成 5.5.2 Cache5.5.2 Cache工作原理工作原理1.1.CacheCache的工作机制的工作机制 CacheCache工作是以工作是以程序访问的局部性原理程序访问的局部性原理为基础的为基础的,即即,一个程序的指令大都顺序存放、顺序执行一个程序的指令大都顺序存放、顺序执行,与程序与程序相关的数据在存储器中也相对集中相关的数据在存储器中也相对集中.所以程序运行时所以程序运行时,尤其有循环程序段和子程序段时尤其有循环程序段和子程序段时,在在较短时间区间内
17、较短时间区间内,常会对局部范围的存储器频繁访问常会对局部范围的存储器频繁访问,而此范围之外的地址访问甚少而此范围之外的地址访问甚少.这种现象称为这种现象称为程序访程序访问的局部性问的局部性.把局部范围的主存内容从主存放到一个高速小容量把局部范围的主存内容从主存放到一个高速小容量存储器中存储器中,使使CPUCPU在这一段时间内直接访问它在这一段时间内直接访问它,以减少以减少或不去访问慢速的主存或不去访问慢速的主存 ,程序运行速度将明显提高程序运行速度将明显提高.2.Cache2.Cache工作原理工作原理例例:某机主存容量为某机主存容量为1MB,Cache1MB,Cache容量为容量为8KB,8
18、KB,若以字节编若以字节编址址,每每512B512B为一块为一块,则主存有则主存有20482048块块,Cache,Cache有有1616块块.块块0 000000H 00001H.001FFH块块20472047FFE00HFFE01HFFFFFH主存主存块块0 00000H 0001H.01FFH块块15151E00H1E01H1FFFH Cache Cache 块的概念块的概念一般将主存和一般将主存和CacheCache的存储空间分块的存储空间分块,每块大小相同每块大小相同,包括相同数量的存储单元包括相同数量的存储单元.Cache Cache构成及工作过程构成及工作过程CPUCPU主主存
19、存主存主存地址地址寄存寄存器器MARMAR主存主存CacheCache地址变换地址变换机构机构(块表块表)CacheCache存储器存储器CacheCache地址地址寄存器寄存器替换控制部件替换控制部件ABDB单字宽单字宽多多字字宽宽不不命命中中命命中中(块块)CacheCache包括包括CacheCache存储器及存储器及相应控制部件相应控制部件,全部由全部由硬件组成硬件组成,速度快速度快,对所有程序员均透明对所有程序员均透明.CARCAR CacheCache命中率命中率 设设NcNc为为Cache Cache 完成存取的总次数完成存取的总次数,Nm,Nm为主存完为主存完成存取的总次数成存
20、取的总次数,h h为命中率为命中率,则有则有:设设r=tm/tcr=tm/tc表示主存慢于表示主存慢于CacheCache的倍率的倍率,e e表示访问表示访问效率效率,则有则有:高速缓存命中率高速缓存命中率:CPU:CPU访存时访存时,信息恰巧在信息恰巧在CacheCache中的概率中的概率.h=Nc/(Nc+Nm)h=Nc/(Nc+Nm)若若tc tc表示命中时的表示命中时的CacheCache访问时间访问时间,tm,tm表示未命中表示未命中时的主存访问时间时的主存访问时间,1-h,1-h表示未命中率表示未命中率,则则Cache/Cache/主存系主存系统的统的平均访问时间平均访问时间tat
21、a为为:ta=htc+(1-h)tmta=htc+(1-h)tm e=tc/ta=tc/htc+(1-h)tm=1/h+(1-h)r=1/r+(1-r)he=tc/ta=tc/htc+(1-h)tm=1/h+(1-h)r=1/r+(1-r)h例:例:CPUCPU执行一段程序时执行一段程序时,Cache,Cache完成存取的次完成存取的次数数19001900次次,主存完成存取的次数为主存完成存取的次数为100100次次,已知已知CacheCache的存取周期为的存取周期为1ns,1ns,主存存取周期为主存存取周期为5ns,5ns,求求Cache/Cache/主存系统的效率和平均访问时间主存系统的
22、效率和平均访问时间.解:解:h=Nc/(Nc+Nm)=1900/(1900+100)h=Nc/(Nc+Nm)=1900/(1900+100)=0.95=0.95 r=tm/tc=5ns/1ns=5r=tm/tc=5ns/1ns=5 e=1/r+(1-r)h=1/5+(1-5)X0.95=83.3%e=1/r+(1-r)h=1/5+(1-5)X0.95=83.3%ta=tc/e=1ns/0.833=1.2ns ta=tc/e=1ns/0.833=1.2ns例例:某计算机的存储系统由某计算机的存储系统由CacheCache和主存组成和主存组成,某程某程序执行过程中访存序执行过程中访存1000100
23、0次次,其中访问其中访问CacheCache缺失缺失(未命中未命中)50)50次次,则则CacheCache的命中率是的命中率是().().A.5%B.9.5%C.50%D.95%A.5%B.9.5%C.50%D.95%影响影响 CacheCache命中率的因素命中率的因素 Cache的大小的大小 容量相对较大的容量相对较大的Cache,命中率也相应提高命中率也相应提高,但容量但容量太大太大,成本会变得不合理成本会变得不合理.程序的特点程序的特点 遵循局部性原理的程序在运行时遵循局部性原理的程序在运行时Cache的命中率的命中率也会很高也会很高,相反相反,在程序中频繁且无规则地使用在程序中频繁
24、且无规则地使用Call或或JMP命令命令,将严重影响基于将严重影响基于Cache的系统性能的系统性能.Cache的组织结构的组织结构 Cache组织结构的好坏组织结构的好坏,对命中率也会产生较大影对命中率也会产生较大影响响.Cache的组织结构有三种类型的组织结构有三种类型:全相联映射、直接映全相联映射、直接映射和组相联映射射和组相联映射.5.5 Cache5.5 Cache存储器存储器5.5.1 5.5.1 多级存储体系结构多级存储体系结构5.5.2 Cache5.5.2 Cache工作原理工作原理5.5.3 5.5.3 主存与主存与CacheCache的地址映射和地址变换的地址映射和地址变
25、换5.5.4 Cache5.5.4 Cache的替换策略及写操作策略的替换策略及写操作策略 5.5.3 5.5.3 主存与主存与CacheCache的地址映射和地址变换的地址映射和地址变换1.1.全相联映射全相联映射:允许主存中的每一个块可以映射到允许主存中的每一个块可以映射到CacheCache的任何一块位置上的任何一块位置上.映射过程如下图所示映射过程如下图所示:一一.全相联映射及其地址变换全相联映射及其地址变换l 二者密切相关二者密切相关-地址变换由地址映射方式决定地址变换由地址映射方式决定.主存主存-Cache-Cache地址变换地址变换:程序运行时程序运行时,根据地址映射把主根据地址
26、映射把主存地址变换成存地址变换成CacheCache地址地址.主存主存-Cache-Cache地址映射地址映射(mapping):(mapping):把存放在主存中的把存放在主存中的程序按某种规则装入程序按某种规则装入CacheCache中中,并依此建立主存地址与并依此建立主存地址与CacheCache地址的对应关系地址的对应关系,即块表即块表.块表块表存放数据或指令在内存中所在单元地址的存储存放数据或指令在内存中所在单元地址的存储器器,用于判断用于判断CacheCache命中以及实现地址映射命中以及实现地址映射,其字数等于其字数等于CacheCache的块数的块数.块块0 块块1块块15块块
27、0块块1块块2047CacheCache主存主存全相联映射全相联映射 2.2.全相联映射方式下的地址变换全相联映射方式下的地址变换主存块号主存块号块内地址块内地址(1)(1)主存地址格式主存地址格式:(标志字段标志字段)图图5.26 全相联映射示意图全相联映射示意图l例例:某机主存容量为某机主存容量为1MB,Cache1MB,Cache容量为容量为8KB8KB,若以字,若以字节编址,每节编址,每512B512B为一块为一块,则主存有则主存有20482048块块,Cache,Cache有有1616块。块。v主存地址格式:主存地址格式:0000 0000 000 0000 0000 000 0 0
28、000 00000 0000 0000 0000 0000 000 0000 0000 000 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1块号块号(0块块)块内存储单元块内存储单元(0-511)(0-511)块号块号(1块块)块内存储单元块内存储单元(0-511)(0-511)0000 0000 001 0000 0000 001 0 0000 00000 0000 00000000 0000 001 0000 0000 001 1 1 1 1 1 1 1 1 11 1 1 1 1 1 1 1 1块号块号(2047块块)块内存储单元块内存储单元(0-511)(0-5
29、11)1 1 1 1 1 1 1 1 111 1 1 1 1 1 1 1 1 111 0 0000 00000 0000 00001 1 1 1 1 1 1 1 111 1 1 1 1 1 1 1 1 111 1 1 1 1 1 1 1 1 11 1 1 1 1 1 1 1 1CacheCache块号块号块内地址块内地址 主存块号转换为主存块号转换为CacheCache块号块号,块内地址不变块内地址不变(3)(3)地址变换地址变换(将主存地址转换为将主存地址转换为CacheCache地址地址):):(2)Cache(2)Cache地址格式地址格式:块号块号(0块块)块内存储单元块内存储单元(0
30、-511)(0-511)块号块号(1块块)块内存储单元块内存储单元(0-511)(0-511)0 00 1 0 00 1 0 0000 00000 0000 0000 0 00 1 0 00 1 1 1 1 1 1 1 1 1 11 1 1 1 1 1 1 1 1块号块号(15块块)块内存储单元块内存储单元(0-511)(0-511)1 1 1 1 1 1 1 1 0 0000 00000 0000 0000 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 11 1 1 1 1 1 1 1 1 0 00 0 0 0000 0000 0 00 0 0 0000 0000 0 00
31、 0 1 1 1 1 1 1 1 1 10 00 0 1 1 1 1 1 1 1 1 1主存块号主存块号B(B(标志字段标志字段)块内地址块内地址WWCacheCache块号块号b b块内地址块内地址ww主存块号主存块号B BCacheCache块号块号b bB Bb b比较比较命中命中MARMARCARCAR 图图5.27 5.27 全相联映射的地址变换全相联映射的地址变换块表块表(块表容块表容量的计算:量的计算:字数等于字数等于高缓块数,高缓块数,字长由主字长由主存块数和存块数和高缓块数高缓块数决定决定)不命中则不命中则访问主存访问主存注意注意:在全相联映射中在全相联映射中,主存块号作为主
32、存块号作为识别是否命中的标志识别是否命中的标志,标志位的长度由主存块数决定标志位的长度由主存块数决定.字块字块0 0字块字块1 1字块字块2 2C C-1-1标记标记标记标记标记标记设设CacheCache有有2 2C C-1-1块块,主存有主存有2 2mm-1-1块块,即即CacheCache块地址有块地址有c c位位,主存块地址有主存块地址有mm位位.字块字块0 0字块字块1 1字块字块2 2C C-1-1字块字块2 2mm-1-1主存地址格式:主存地址格式:主存字块标记主存字块标记 块内地址块内地址mm位位图图5.28 5.28 全相联映射的另一种常见图解全相联映射的另一种常见图解 3.
33、3.全相联映射的优缺点全相联映射的优缺点 i=j mod m (m(m为为CacheCache中总块数中总块数)映射规则映射规则:主存中任何一组的第主存中任何一组的第i i块只能放入块只能放入Cache Cache 的的第第i i块块.主存第主存第j j块块(大排块数大排块数)和和CacheCache第第i i块有如下函数关块有如下函数关系系:1.1.直接映射直接映射:首先首先,主存在分块的基础上分组主存在分块的基础上分组,每组大小与每组大小与CacheCache的大小相同。的大小相同。二二.直接映射及其地址变换直接映射及其地址变换(2)(2)缺点缺点:块表的查找时间长块表的查找时间长,速度慢
34、速度慢.(1)1)优点优点:块冲突概率最低块冲突概率最低,只有当只有当CacheCache中全部装满后中全部装满后,才有可能出现块冲突才有可能出现块冲突,块分配灵活;块分配灵活;其中其中,商为主存第商为主存第j块所在主存的组数块所在主存的组数,余数为在该组的块数余数为在该组的块数.块块0块块1块块15CacheCache.0 0组组1 1组组127127组组块块 0 块块 1 块块15 块块16块块17 块块31 块块2047主存主存块块2032块块2033图图5.29 直接映射示意直接映射示意图图2.2.直接联映射方式下的地址变换直接联映射方式下的地址变换 CacheCache块号块号 组组
35、号号块内地址块内地址CacheCache块号块号块内地址块内地址组内块号组内块号(2)Cache(2)Cache地址格式地址格式:(1)(1)主存地址格式主存地址格式:块号块号(0块块)块内存储单元块内存储单元(0-511)(0-511)块号块号(1块块)块内存储单元块内存储单元(0-511)(0-511)0000 0000000 0000 0010 001 0 0000 00000 0000 00000000 0000000 0000 0010 001 1 1 1 1 1 1 1 1 11 1 1 1 1 1 1 1 1块号块号(2047块块)块内存储单元块内存储单元(0-511)(0-51
36、1)1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1111 111 0 0000 00000 0000 00001 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1111 111 1 1 1 1 1 1 1 1 11 1 1 1 1 1 1 1 1主存地址格式:主存地址格式:0000 0000000 0000 0 000000 0 0000 00000 0000 00000000 0000000 0000 0 000000 1 1 1 1 1 1 1 1 11 1 1 1 1 1 1 1 1组号组号(0-127)组内块号组内块号(0-15)(3)(3)地址变换地址变换(
37、将主存地址转换为将主存地址转换为CacheCache地址地址):):CacheCache块号块号b b组号组号G G(标志字段标志字段)MARMARCache块号块号b块内地址块内地址w w CAR CAR命中命中不命中不命中访问主存访问主存块内地址块内地址W W比较比较组号组号GCache地址地址根据根据CARCAR的内容访问的内容访问CacheCache 主存地址中的主存地址中的“组内块号组内块号(Cache(Cache块号块号)+)+块内地址块内地址”=Cache=Cache地址地址注意:在直接映射中注意:在直接映射中,主存组号主存组号作为识别是否命中的标志,标作为识别是否命中的标志,标
38、志位的长度由主存组数决定志位的长度由主存组数决定.3.3.直接映射的优缺点:直接映射的优缺点:块内地址块内地址(9位位)组内块号组内块号(4位位)组号组号(7位位)CacheCache地址格式地址格式块内地址块内地址(9位位)块号块号(4位位)解解:(1):(1)主存地址格式主存地址格式 (1)(1)分别写出主存地址格式和分别写出主存地址格式和CacheCache地址格式地址格式;(2)(2)画出直接映射及地址变换图画出直接映射及地址变换图;(3)(3)主存地址为主存地址为0022AH0022AH的单元在的单元在CacheCache中什么位置中什么位置?例题例题:某机主存容量为某机主存容量为1
39、MB,Cache1MB,Cache容量为容量为8KB8KB,每块,每块512B,512B,如果采用直接映射如果采用直接映射,请回答请回答:(2)(2)缺点缺点:Cache:Cache的空间利用率低的空间利用率低,块冲突较多块冲突较多,命中率也低命中率也低.(1)(1)优点优点:硬件实现简单硬件实现简单,成本低成本低.块块0块块1块块15Cache.0组组1组组块块 0 块块 1 块块15 块块16块块17 块块31 块块2047块块2032块块2033 127组组主存主存7位位4位位9位位组号组号G组内块号组内块号b块内地址块内地址主存地址主存地址比较比较组号组号不命不命中中,访访问主问主存存
40、Cache地址地址01b15(2)(2)直接映射及地址变换示意图直接映射及地址变换示意图命中命中,MARCAR4位位9位位则根据则根据CAR的内容访问的内容访问Cache地址映射地址映射地址变换地址变换 (3)主存地址为主存地址为0022AH的单元在的单元在Cache中什么中什么位置位置组组(0组组)组内块号组内块号(1块块)块内地址块内地址(42字字)另外一种求法另外一种求法:0022AH=(0000 0000 0010 0010 1010)2因为主存第因为主存第j块和块和Cache第第i块有如下函数关系块有如下函数关系:i=j mod m (m为为Cache中总块数中总块数)这里这里,j=
41、1,m=16,所以所以i=1 mod 16=1例例:设一个设一个CacheCache中有中有8 8个块个块,访问主存进行读操作的块地址访问主存进行读操作的块地址序列为序列为2222、2626、2222、2626、1616、4 4、1616、18,18,求每次访问后求每次访问后CacheCache中的内容中的内容.解:解:地址地址命中与否命中与否地址转换关系地址转换关系2222 不命中不命中 22 MOD 8=622 MOD 8=62626 不命中不命中 26 MOD 8=226 MOD 8=2 22 22 命中命中 22 MOD 8=6 22 MOD 8=62626 命中命中 26 MOD 8
42、=226 MOD 8=216 16 不命中不命中 16 MOD 8=016 MOD 8=04 4 不命中不命中 4 MOD 8=4 4 MOD 8=4 16 16 命中命中 16 MOD 8=016 MOD 8=0 18 18 不命中不命中 18 MOD 8=2 18 MOD 8=2 直接映象下直接映象下CacheCache访问情况访问情况 直接映象的块分配情况直接映象的块分配情况访问顺序访问顺序 1 2 3 4 5 6 7 8地址地址 22 26 22 26 16 4 16 18块分配块分配 情况情况 22操作操作状态状态调调进进2226调调进进2226命命中中2226命命中中222616调
43、调进进2241626调调进进2216264命命中中2216184替替换换练习练习1.1.设有一个设有一个CacheCache的容量为的容量为2K2K字字,每块每块1616字字,在直接映在直接映象方式下象方式下,求求:(1)(1)该该CacheCache可容纳多少个块可容纳多少个块?(2)(2)如果主存的容量为如果主存的容量为256K256K字字,则有多少个块则有多少个块?(3)(3)主存的地址格式主存的地址格式?Cache?Cache的地址格式的地址格式?(4)(4)主存中的第主存中的第032AB032AB单元映象到单元映象到CacheCache中哪一块中哪一块?练习练习2.2.设计算机的存储
44、器为设计算机的存储器为64K64K1616位位,直接地址映射直接地址映射的的CacheCache容量为容量为1K1K字字,每块每块4 4字字,问问:(1)(1)主存中地址的标志字段、块号和块内地址字段分主存中地址的标志字段、块号和块内地址字段分别有多少位?别有多少位?(2 2)CacheCache中可装入多少块数据?中可装入多少块数据?三三.组相联映射组相联映射及其地址变换及其地址变换n n路组相联路组相联:每组中有每组中有n n块块.有有全相联映射全相联映射:主存第主存第g g组第组第i i块可映射到块可映射到CacheCache第第i i组中任组中任一块的位置一块的位置.有直接映射有直接映
45、射:主存第主存第g g组第组第i块只能映射到块只能映射到Cache第第i组组.1.1.组相联映射组相联映射:Cache:Cache分成大小相等的组分成大小相等的组,各组再分成大各组再分成大小相等的块小相等的块.主存在分块的基础上分组主存在分块的基础上分组,每组块数等于每组块数等于Cache Cache 组数组数.映射规则映射规则:Cahe分为分为m组组,每组有每组有n块块,则有以下关系则有以下关系:i=j mod m 其中其中,i为为Cache组号组号,j为主存块号为主存块号(大排大排).商为主存第商为主存第j块所在组数块所在组数,余数为该组所在块数余数为该组所在块数.块块0块块1块块2块块3
46、块块14块块15 0组组1组组7组组Cache主存主存块块0块块1块块2块块3块块7块块8块块15块块16块块17块块2047图图5.30 5.30 组相联映射示意图组相联映射示意图同上例同上例,采用采用2路组相联路组相联 块块90组组1组组 2.2.组相联映射方式下的地址变换组相联映射方式下的地址变换块内地址块内地址 (CacheCache组号组号)(1)(1)主存地址格式主存地址格式:(主存字块标记主存字块标记)(2)Cache(2)Cache地址格式地址格式:块内地址块内地址组号组号组内块号组内块号 组号组号组内块号组内块号(3)(3)地址变换地址变换(将主存地址转换为将主存地址转换为C
47、acheCache地址地址):):块内地址块内地址组号组号组内块号组内块号块内地址块内地址 (CacheCache组号组号)(主存字块标记主存字块标记)组号组号组内块号组内块号主存字块标记主存字块标记组号组号G G块内地址块内地址WWMARMAR组号组号g g组内块号组内块号b b块内地址块内地址wwCARCAR比较比较不命中不命中访问主存访问主存命中命中主存字块标记主存字块标记CacheCache组内块号组内块号b b访问访问CacheCache图图5.31 5.31 组相联映射的地址变换示意图组相联映射的地址变换示意图块表块表v 例例:某计算机的某计算机的CacheCache共有共有161
48、6块块,采用采用2 2路路组相联组相联(即每组即每组2 2块块).).每个主存块大小为每个主存块大小为3232字节字节,按字节编址按字节编址.主存主存129129号单元所在号单元所在主存应装入到得主存应装入到得CacheCache组号是组号是().().vA.0 B.2 C.4 D.6A.0 B.2 C.4 D.6v 例例:在下列因素中在下列因素中,与与CacheCache的命中率无关的命中率无关的是的是().().v A.Cache A.Cache块的大小块的大小v B.CacheB.Cache的容量的容量v C.C.主存的存取时间主存的存取时间v 例:假设主存容量为例:假设主存容量为512
49、K512K1616位位,Cache,Cache容量容量为为409640961616位位,块长为块长为4 4个个1616位的字位的字,访存地址访存地址为字地址为字地址.v(1)(1)在直接映射方式下在直接映射方式下,设计主存地址格式设计主存地址格式.v(2)(2)在全相联映射方式下在全相联映射方式下,设计主存地址格式设计主存地址格式.v(3)(3)在在2 2路组相联映射方式下路组相联映射方式下,设计主存地址格设计主存地址格式式.v 解解:(1):(1)在直接映射方式下在直接映射方式下,Cache,Cache分分4096/4=24096/4=21010块块,主存分主存分2 21919/4=2/4=
50、21717块块,主存分主存分2 21919/2/21212=2=27 7组组.v 故主存地址格式故主存地址格式:主存组数主存组数(7(7位位)组内块数组内块数(10(10位位)块内地址块内地址(2(2位位)v(2)(2)在全相联方式下在全相联方式下,CacheCache分分4096/4=24096/4=21010块块,主存分主存分2 21919/4=2/4=21717块块.v故主存地址格式故主存地址格式:主存块数主存块数(17(17位位)块内地址块内地址(2(2位位)(3)(3)在组相联映射方式下在组相联映射方式下,CacheCache分分4096/4=24096/4=21010块块,2,2块