数据存储控制器及用于管理其中的高速缓存数据的方法技术

技术编号:2842403 阅读:288 留言:0更新日期:2012-04-11 18:40
在数据存储控制器中,将被存取的轨道临时存储在高速缓存中,其中写入数据存储在第一和第二高速缓存中,并且读取数据存储在第二高速缓存中。维护对应的最近最少使用(LRU)列表,以保存识别存储在高速缓存中的轨道的条目。当保存用于第一高速缓存的条目的列表(A列表)满时,扫描该列表,以识别未修改(读取)数据,其可以从高速缓存丢弃,以便为新数据腾出空间。在扫描之前或期间,将修改(写入)数据条目移动到列表的最近使用(MRU)端,从而允许扫描以高效的方式进行,并且减少扫描必须跳过修改条目的次数。可选地,可以将状态位与每个修改数据条目相关联。当将修改条目移动到A列表的MRU端而没有被请求读取时,将其状态位从初始状态改变为第二状态,从而表示它是要被丢弃的候选者。如果已经将状态位设置为第二状态,则让其保持不变。如果由于被请求读取而将修改轨道移动到A列表的MRU端,则将对应的A列表条目的状态位改变回到第一状态,从而防止该轨道被丢弃。这样,仅仅在必要时才允许将写入轨道保留在第一高速缓存中。

【技术实现步骤摘要】

本专利技术一般涉及数据存储控制器,特别涉及建立高速缓存丢弃和降级策略。
技术介绍
诸如国际商业机器公司企业级存储服务器的数据存储控制器接收定向于附连存储系统的输入/输出(I/O)请求。附连存储系统可以包括一个或多个机盒(enclosure),其包括大量互连的盘驱动器,例如,随机存取存储设备(DASD)、独立盘冗余阵列(RAID阵列)、简单盘集群(JBOD)等。如果接收I/O读取和写入请求的速率快于能够处理它们的速率,则存储控制器将使I/O请求在初级高速缓存中排队,其中初级高速缓存可以包括一吉或多吉字节的易失性存储装置,例如,随机存取存储器(RAM)、动态随机存取存储器(DRAM)等。还可以将某些修改(写入)数据的拷贝放置在次级非易失性存储(NVS)高速缓存如电池供电易失性存储器中,以在存储控制器发生故障的情况下提供对写入数据的额外保护。典型地,次级高速缓存由于NVS存储器的成本而小于初级高速缓存。在很多目前系统中,对于存储在初级高速缓存中的每个轨道,在最近最少使用(LRU)列表内包括一个条目。标题为“Method,System,andProgram for Destaging Data in Cache”的、共同转让的美国专利No.6,785,771描述了这样的一种系统,在此将其引作参考。轨道可以从存储系统升级到高速缓存,以回答读请求。另外,轨道的写数据在被传输到附连存储系统之前可以存储在初级高速缓存中,以在传输失败的情况下保存该数据。LRU列表条目中的每个条目包括控制块,其表示轨道的当前状态、轨道在高速缓存中的位置、以及轨道在存储系统中的位置。对于次级NVS高速缓存中的轨道,维护独立的NVS LRU列表,并且以相同的方式对其进行管理。总之,初级高速缓存包括读取和修改(写入)的轨道,而次级高速缓存仅仅包括修改(写入)的轨道。这样,初级LRU列表(也被称作‘A’列表)包括表示读取和写入轨道的条目,而次级LRU列表(也被称作‘N’列表)包括仅仅表示写入轨道的条目。虽然初级和次级LRU每个可以被划分成用于顺序数据的列表(“加速”列表)、以及用于随机数据的列表(“活动”列表),但是对于本公开内容而言,将不作这样的区分。参考图1A-1F、以及图2A和2B中所示的现有技术的高速缓存管理序列,标有撇号(‘)的列表条目表示修改轨道条目,而不带撇号的列表条目表示未修改或读取条目。图1A示出了A和N列表的示例,其已经被部分填充了读取和写入条目。将新条目添加到LRU列表的最近使用(MRU)端,以表示添加到初级高速缓存的每个轨道。在图1B中,已经将新写入条目E′添加到两个列表的MRU端。当将新条目添加到MRU端时,现有条目朝向该列表的LRU端“贬降(demote)”。当接收到存取轨道的请求时,在初级高速缓存中进行搜索,并且如果找到所请求轨道的条目(被称为“命中”),则该条目提升到列表的MRU端(图1C)。当需要初级高速缓存中的附加空间以缓冲附加的被请求读取数据和修改数据时,从高速缓存丢弃由LRU列表的LRU端的条目表示的一个或多个轨道,并且从初级LRU列表移除对应条目(图1F,其中在添加新条目H′时从两个高速缓存中都丢弃了条目A′)。可以快速地从高速缓存中丢弃初级高速缓存中的读取数据轨道,因为该数据已经存储在存储系统中的盘上,并且不需要被降级。然而,只有在已经安全地将初级和次级高速缓存中的修改(写入)数据轨道降级到存储系统之后,才可以将其从高速缓存和列表中丢弃。这样的降级过程可能花费与100倍丢弃未修改的读取数据的时间那样长的时间。由于初级和次级高速缓存之间的大小差异,如果在已经从次级高速缓存降级相关联的轨道之后,从次级(NVS)列表丢弃写入数据条目,则有可能该条目和轨道保留在初级LRU列表和高速缓存中(图2A和2B,其中写入条目D′从次级列表中被丢弃但保留在初级列表中)。在这样的情况下,将条目状态从“修改”改变成“未修改”,并且保持对读请求有效(图2B;条目D′被改变成D)。如上所述,如果初级高速缓存没有足够的空闲空间来接收附加的数据轨道(从图1D到1E开始),丢弃现有轨道。在一个目前使用的处理中,从LRU端扫描初级LRU列表中的一个或多个未修改(读取)数据条目,其对应的轨道可以被快速丢弃。在扫描期间,跳过修改(写入)数据条目,这是由于降级这样的轨道需要较长的时间(图1E;未修改条目C已被丢弃)。即使不跳过修改数据条目而是对其进行降级,它们也可能不能为新条目而快速地释放足够的空间;并且只要降级正在进行中,就将必须跳过这些修改条目。结果,在繁重的写入负荷期间,一些修改轨道可能被修改若干次,并且保留在次级高速缓存中相对长的时间。这样的轨道在被降级之前,还将以“修改”状态保留在初级高速缓存中。此外,甚至在这样的轨道最终从次级高速缓存降级之后,它们也可能作为“未修改”而保留在初级高速缓存中,并且如果靠近初级列表的MRU端,则它们可能得到在初级列表中移动的另一机会(或“生命”)。当在初级高速缓存中存在很多修改轨道时,列表扫描必须跳过多个条目,并且不能识别足够的未修改轨道,以便丢弃而为新轨道腾出空间。应当理解,跳过如此多的高速缓存轨道花费大量的时间,并且浪费处理器周期。由于这些因素,读取替换和写入退休策略是相互依赖的,并且写入高速缓存管理与读取高速缓存管理相结合。这样,尽管利用LRU列表来管理高速缓存降级操作,本领域还存在对用于管理高速缓存中的数据并执行降级操作的改进技术的需要。
技术实现思路
本专利技术提供用于更高效的高速缓存管理丢弃/降级策略的系统、方法和程序产品。在扫描之前或期间,将修改(写入)数据条目移动到列表的最近使用(MRU)端,允许扫描以高效的方式前进,而不必跳过修改数据条目。可选地,可以将状态位与每个修改数据条目相关联。当将条目移动到A列表的MRU端时,将其状态位从初始状态(例如,0)改变为第二状态(例如,1),从而表示它是要被丢弃的候选者。如果在初级高速缓存中找到被请求存取的写入轨道(“命中”),则将对应A列表条目的状态位改变回到第一状态,从而防止该轨道被丢弃。这样,仅仅在必要时才允许将写入轨道保留在初级高速缓存中。附图说明图1A-1F示出了现有技术的高速缓存管理序列;图2A和2B示出了另一现有技术的高速缓存管理序列;图3是其中可以实现本专利技术的数据处理环境的框图;图4示出了本专利技术中采用的LRU列表的示例;图5A和5B示出了根据本专利技术的一方面的高速缓存管理序列;图6A-6F示出了根据本专利技术的另一方面的高速缓存管理序列;以及图7A-7E示出了根据本专利技术的另一方面的高速缓存管理序列。具体实施例方式图3是其中可以实现本专利技术的数据处理环境300的框图。存储控制器310从一个或多个主机302A、302B、302C接收输入/输出(I/O)请求,其中存储控制器310通过网络304附连到该一个或多个主机302A、302B、302C。I/O请求被定向到存储系统306中的轨道,其中存储系统306具有若干配置中的任一个的盘驱动器,例如,随机存取存储设备(DASD)、独立磁盘冗余阵列(RAID阵列)、简单盘集群(JBOD)等。存储控制器310包括处理器312、高速缓存管理器314和高速缓存320。高速缓存管理器314可以包括由处理器3本文档来自技高网
...

【技术保护点】
一种用于管理数据存储控制器中的高速缓存数据的方法,包括:将存储器空间分配给数据存储控制器中的第一高速缓存,第一高速缓存具有最近使用(MRU)端和最近最少使用端(LRU);将存储器空间分配给数据存储控制器中的第二高速缓存,第二高速缓存具有比第一高速缓存更少的存储器空间,并且具有最近使用(MRU)端和最近最少使用端(LRU);将读取数据条目临时存储在第一高速缓存中;将写入数据条目临时存储在第一和第二高速缓存中;接收存取第一和第二高速缓存中的数据条目的请求;在读取期间,将被存取并且在第一高速缓存中找到的数据条目从第一高速缓存中的其当前位置移动到第一高速缓存的MRU端;在写入期间,将被存取并且在第二高速缓存中找到的数据条目从第二高速缓存中的其当前位置移动到第二高速缓存的MRU端;当第一读取数据条目要被升级到第一高速缓存时: 如果在第一高速缓存中可获得存储器空间,则将存在于第一高速缓存中的所有数据条目朝向第一高速缓存的LRU端移动,以容纳第一读取数据条目;如果在第一高速缓存中不可获得存储器空间:将最靠近第一高速缓存的LRU端的写入数据条目中的至少一个,从第一高速缓存中的当前位置移动到第一高速缓存的MRU端,同时将读取数据条目从第一高速缓存中的当前位置移动到第一高速缓存的LRU端;以及从第一高速缓存的LRU端丢弃读取数据条目;以及将第一读取数据条目升级到第一高速缓存的MRU端中;而当第一写入数据条目要被升级到第一高速缓存时:如果在第一高速缓存和第二高速缓存中都可获得存储器空间,则将存在于第一和第二高速缓存中的所有数据条目分别朝向第一和第二高速缓存的LRU端移动,以容纳第一写入数据条目;如果在第一高速缓存中不可获得存储器空间:将最靠近第一高速缓存的LRU端的写入数据条目中的至少一个,从第一高速缓存中的当前位置移动到第一高速缓存的MRU端,同时将读取数据条目从第一高速缓存中的当前位置移动到第一高速缓存的LRU端;以及从第一高速缓存的LRU端丢弃读取数据条目;以及将第一写入数据条目升级到第二高速缓存的MRU端中,以及到第一高速缓存的MRU端中。...

【技术特征摘要】
...

【专利技术属性】
技术研发人员:斯蒂文R鲁维达尔蒙德拉S莫哈宾尼S吉尔约瑟夫S海德二世
申请(专利权)人:国际商业机器公司
类型:发明
国别省市:US[]

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1