非淡泊无以明志,非宁静无以致远
全部博文(408)
分类:
2010-03-04 17:14:06
Cache位于主存储器与CPU通用寄存器组之间,全部由硬件来调度,用于提高CPU的数据I/O效率,对程序员和系统程序员都是透明的。Cache容量小但速度快,它在计算机的存储体系中是访问速度最快的层次。
使用Cache改善系统性能的依据是程序的局部性原理,即程序的地址访问流有很强的时序相关性,未来的访问模式与最近已发生的访问模式相似。根据这一局部性原理,把主存储器中访问概率最高的内容存放在Cache中,当CPU需要读取数据时就首先在Cache中查找是否有所需内容,如果有则直接从Cache中读取;若没有再从主存中读取该数据,然后同时送往CPU和Cache。
系统的平均存储周期t3与命中率h有很密切的关系,如下的公式:
t3=h×t1+(1-h)×t2
其中,t1表示Cache的周期时间,t2表示主存的周期时间。
当CPU发出访存请求后,存储器地址先被送到Cache控制器以确定数据是否已在Cache中,若命中则直接对Cache进行访问,否则直接进行主存访问。
Cache的地址映射是指把主存地址空间映射到Cache地址空间,Cache和主存都使用同样大小的块为单位。Cache中常见的映射方法有三种。
Ø 直接映射:一对一,(不需要替换算法)
Ø 全相联映射:多对多
Ø 组相联映射:将块划分成组,主存中的一组与Cache相对应,根据高位地址标志符来访问数据,组相联可以允许相同的Block和word标志,而tag标志不同。
随着程序的执行,访问频繁地区将逐渐迁移,Cache中的内容逐渐变得陈旧,访问命中率下降,就需要更新内容。常用的替换算法有三种。
Ø 随机淘汰法:
Ø 先进先出法FIFO:
Ø 近期最少使用法LRU:
对于这个算法可以从整体上把握,每个的优点、缺点,不需要记算法的过程。
另外,为了保证环存在Cache中得数据与主存中的内容一致,对写操作来说有以下几种方法:
Ø 写直达:同时
Ø 写回:
Ø 标记法
例题:
● 一般来说,Cache 的功能__(53)__。某 32 位计算机的 cache 容量为 16KB,cache 块的大小为16B,若主存与 cache 的地址映射采用直接映射方式,则主存地址为 1234E8F8(十六进制)的单元装入的 cache地址为__(54)__。在下列 cache 替换算法中,平均命中率最高的是__(55)__。
53) A.全部由软件实现
B.全部由硬件实现
C.由硬件和软件相结合实现
D.有的计算机由硬件实现,有的计算机由软件实现
(54) A. 00 0100 0100 1101 (二进制)
B. 01 0010 0011 0100 (二进制)
C. 10 1000 1111 1000 (二进制)
D. 11 0100 1110 1000 (二进制)
(55) A.先入后出(FILO)算法
B.随机替换(RAND)算法
C.先入先出(FIFO)算法
D.近期最少使用(LRU)算法
附录:cache与主存的地址映射方式详解如下面的链接所示:
http://hi.baidu.com/ghoul0813/blog/item/79855ece8358bb0693457e40.html