3.3.4 Cache存储系统的加速比
( Cache存储系统的主要目标:
Cache存储系统的加速比
Cache存储系统的一致性问题
1、加速比与命中率的关系
( Cache存储系统的加速比SP(Speedup)为:

其中:Tm为主存储器的访问周期,Tc为Cache的访问周期,T为Cache存储系统的等效访问周期,H为命中率。
( 提高Cache存储系统加速比的最好途径是提高命中率实际上,Cache存储系统的加速比SP能够接近于它的期望值。

Cache存储系统的加速比SP与命中率H的关系
( 命中率H主要与如下几个因素有关:
程序在执行过程中的地址流分布情况所采用的替换算法
Cache的容量在组相联映象方式中,块的大小在组相联映象方式中,分组的数目所采用的Cache预取算法
2、Cache命中率与容量的关系
Cache的命中率随它的容量的增加而提高。
关系曲线可以近似地表示为H=1-S-0.5。

命中率H与它的容量S的关系
3、Cache命中率与块大小的关系在组相联映象方式中,块的大小对命中率的影响非常敏感块很小时,命中率很低。
随着块大小的增加,由于程序的局部性,命中率增加。
当块非常大时,进入Cache中的许多数据可能用不上。
当块大小等于Cache的容量时,命中率将趋近于零。

Cache的命中率与块大小的关系
4、Cache命中率与组数的关系在组相联映象中,分组的数目对命中率的影响很明显。
随着组数的增加,Cache的命中率要降低。
当组数不太大时(512组以下),命中率的降低相当少,
当组数超过一定数量时,命中率的下降非常快。
3.3.5 Cache的一致性问题本节讨论的内容仅限于单处理机、单存储器。
( 造成Cache与主存的不一致的原因:
(1) 由于CPU写Cache,没有立即写主存
(2) 由于IO处理机或IO设备写主存
CPU
I/O
CPU
I/O
Cache
X’
Cache
X
主存储器
X
主存储器
X’
(a) CPU写Cache (b) I/O写主存
Cache与主存不一致的两种情况
( Cache的更新算法
(1) 写直达法,又称写通过法,WT(Write-through)
CPU在执行写操作时,把数据同时写入Cache和主存。
(2) 写回法,又称为抵触修改法,WB(Write-Back)
CPU的数据只写入Cache,不写入主存。
仅当替换时,才把修改过的Cache块写回到主存。
( 写回法与写直达法的优缺点比较:
(1) 可靠性,写直达法优于写回法。
(2) 与主存的通信量,写回法少于写直达法。
例如:写操作占总访存次数的20%,Cache的命中率为99%,每块为4个字。当Cache发生块替换时,有30%块需要写回到主存,其余的块因为没有被修改过而不必写回主存。
则对于写直达法,写主存次数占总访存次数的20%
而对于写回法,(1-99%)×30%×4=1.2%。
因此,与主存的通信量,写回法要必写直达法少10多倍。
(3) 控制的复杂性,写直达法比写回法简单。
(4) 硬件实现的代价,写回法要比写直达法好。
( 写Cache的两种方法:
(1) 不按写分配法:在写Cache不命中时,只把所要写的字写入主存。
(2) 按写分配法:在写Cache不命中时,还把一个块从主存读入Cache。
目前,在写回法中采用按写分配法,在写直达法中采用不按写分配法。
3.3.6 Cache的预取算法
( 预取算法有如下几种:
1、按需取。在出现Cache不命中时,把一个块取到Cache中来。
2、恒预取。无论Cache是否命中,都把紧接着的下一块取到Cache中。
3、不命中预取。当Cache不命中,把本块和下一块取到Cache中。
( 主要考虑因素:命中率的提高和Cache与主存之间通信量的增加从模拟实验的结果看:
采用恒预取能使Cache的不命中率降低75~85%,
采用不命中预取能使Cache的不命中率降低30~40%。
3.4 三级存储系统在大部分计算机系统中,既有虚拟存储器,也有Cache存储系统。
存储系统可以有多种构成方法。
不同的构成只是实现技术不同。
系统程序员看: 应用程序员看:
速度接近Cache, 速度接近主存储器,
存储容量等于主存, 存储容量是虚拟地址空间,
每位价格接近主存储器。 每位价格接近磁盘存储器。
Cache存储系统 虚拟存储系统
存储系统的几种组织方式:
1、两个存储系统的组织方式:
物理地址Cache存储系统目前的大部分处理机均采用这种两级存储系统。
虚拟地址
MMU
物理地址
高速缓存
物理地址
CPU
Cache
数据或指令
主存储器
数据或指令
物理地址Cache存储系统
2、一个存储系统组织方式:
虚拟地址Cache存储系统如Intel公司的i860等处理机采用这种组织方式。
虚拟地址
MMU
物理地址
CPU
主存储器
数据或指令
Cache
数据或指令
虚拟地址Cache存储系统
3、全Cache系统。
没有主存储器,“Cache—磁盘”存储系统。
3.4.1 虚拟地址Cache
虚拟存储器采用位选择组相联映象和地址变换方式。
虚拟存储器中的一页恰好等于主存储器的一个区。
用虚拟地址中的虚页号访问快表。
虚拟地址
虚页号P
区内块号B
块内地址W
查快表
按地址访问块表
读出区号
命中?
Y
N
修改组内块
地址比较
的使用状态
选择要替换
保存虚地址
修改快表页
的快表字
到页表中
的使用状态
命中?
Y
命中
N
未命中
把虚页号变换成实页号
用实地址访问主存
访问Cache
读出一块
调一页到主
存,并选择要替换的页
用虚、实页号修改快表
装入或替换
Cache
选择一个字送往CPU
一种虚拟地址Cache的地址变换过程
如果快表命中,把块表中的主存区号E与快表中的主存实页号P进行比较。
若比较结果相等,则Cache命中。
从块表中读出Cache的组内块号b,并用B、b、W拼接得到Cache地址。
若Cache不命中,则用主存实页号P、及B和W拼接,得到主存实地址。
如果快表没有命中,通过软件去查存放在主存中的慢表。
3.4.2 全Cache存储系统从系统结构看,存储系统的速度接近Cache,容量等于虚拟地址空间。
这个存储器如何构成,具体分成几级来实现,只是具体的实现方法。
随着硬件和软件技术的发展,存储系统的实现技术也在不断改变。
最直接的实现方法是:用一个速度很高,存储容量很大的存储器来实现。
全Cache(all-Cache)存储系统是一种理想的存储系统。
多处理机系统中的一种全Cache存储系统方案。
处理机
P1
P2
……
Pn
IOP1
……
IOPm
局部Cache
C1
C2
……
Cn
Cio1
……
Ciom
共享Cache
Cg
多处理机系统中的全Cache存储系统
本章重点:
存储系统的定义及主要性能。
并行存储器和无冲突访问存储器的工作原理。
虚拟存储系统的工作原理。
虚拟存储器中加快地址变换的方法。
虚拟存储系统的页面替换算法。
Cache存储系统的地址映象及变换方法。
Cache存储系统的块替换算法。
Cache存储系统的一致性问题。
习题:
3.2 3.5 3.8 3.13 3.14 3.20 3.23