存储 频道

缓存的更多讨论-磁盘缓存的组件

磁盘缓存的组件

磁盘缓存的组件相对较少,其目的是为了增强性能。设计和实现缓存控制器有许多不同的方法。大部分缓存控制器提供的基本组件为:
      • 数据存储设备,通常为内存。
      • 定位缓存数据的索引。
      • 数据装入器。
      • 老化指示器。
      • 丢弃处理器。
      • “脏”块指示器(用于回写缓存)。
      • 回写处理器。
 
      下面分别简要地介绍它们。
 
1.     缓存设备
 
磁盘缓存通常把数据存放在易失存储设备中。内存技术由设备、子系统或系统的制造商们决定。一般而言,磁盘缓存内存是市场上出售的最昂贵的内存之一。
 
2.     定位缓存数据的索引
 
存储在磁盘缓存中的数据必须能很快地恢复。如果缓存未命中,需要的数据将必须从慢速的非易失存储中读出,因此,很长时间的缓存数据搜索是不可接受的。缓存的索引方法是决定数据如何被放置在缓存中。
 
基本的索引方法有两种:一种为直接映射,另一种为联合索引。直接索引保留一些位来表示非易失存储的每一个可用块。假如这个块在缓存中,它被标为“l i t”,否则为“o ff”。根据这些位地址,可以立即检查块I / O请求。联合映射稍为复杂一些,它建立在缓存中的若干非易失存储段范围搜索的基础上。对比这两种映射,直接映射的缓存更快,但要求为存储设备或子系统的每一个存储块(段)保留一位,以表明这些块或段的位置(即在缓存中,还是在非易失存储中),因此,在可扩展性上受到了限制。联合缓存则需要花更长的时间确定数据是否在缓存中,但对索引缓存的资源要求更少。
 
3.     数据装入器
 
缓存必须以某种方式存放数据,否则,它就做不了任何工作。缓存数据的存放既可能发生在正常的I / O操作(L R U缓存)中,也可以作为一个分离的进程(预先读缓存)而进行。当作为写操作的一部分而将数据拷贝到缓存中时,缓存的数据装入器也可能被激活。
 
4.     老化指示器/丢弃处理器
 
老化指示器的作用是决定什么数据需要被丢弃。本质上,数据装入器总是试图把新的数据装入缓存,这就意味着必须有某种办法丢弃认为近期最不可能使用的数据。为了完成这个任务,就需要有某种量度(或方法)确定数据丢弃的先后顺序,并把这个顺序展示给缓存处理器。
 
丢弃处理器按照老化指示器的标记,决定将撤除哪些老化数据。
 
5.     脏”块指示器(用于回写缓存)
 
在回写缓存包含的数据中,有一些还没有写到非易失存储。为了保证它们最终被写入非易失存储,需要给它们做上标志,这个标志就是所谓的“脏”位。在正常情况下,“脏”位是缓存索引的一部分,类似于文件系统中的备份位,标志新的数据需要保存。
 
6.     回写处理器
 
回写处理器定期地在回写缓存的缓存控制器中运行,负责完成所有对非易失存储的写操作,包括在断电以后产生的写。回写处理器也能利用脏位或其他办法决定写什么和什么时候写。
0
相关文章