本发明专利技术的各实施例提供用于确保可以依赖非易失性存储器设备的内容跨诸如重新引导等电源转换准确地反映存储在盘存储上的数据的技术。例如,本发明专利技术的一些实施例提供用于确定高速缓存内容和/或盘内容在电源转换期间是否被修改从而使得高速缓存内容不再准确地反映存储在盘存储中的数据的技术。此外,一些实施方式提供用于在正常操作(“稳定状态”)期间以及跨电源转换管理高速缓存元数据的技术,从而确保高速缓存元数据可跨电源转换被有效地访问并被可靠地保存和还原。
【技术实现步骤摘要】
【国外来华专利技术】管理高速缓存数据和元数据专利
本专利技术涉及用于使用非易失性存储器设备的技术,如可移动和不可移动非易失性随机存取存储器(NVRAM)设备。
技术介绍
一些常规操作系统提供采用非易失性存储器设备(即,可用于向计算机提供辅助存储和/或存储器的外围设备,如闪存USB驱动器)来作为较慢存储设备(例如,盘存储介质或可经由网络访问的一个或多个存储设备)的块或文件级高速缓存以提高操作系统和/或应用程序的性能的能力。在这一方面,因为对非易失性存储器设备(此后,为简明起见称为“高速缓存设备”)的读和写操作与对较慢存储设备的读和写操作相比可以执行得更快,所以使用高速缓存设备来对存储在这样的较慢设备上的数据进行高速缓存提供了显著地提高操作系统和/或应用程序的输入/输出(I/O)操作的速度的机会。为此,美国华盛顿州雷蒙德市的微软公司生产的微软WindowsVista操作系统包括被称为ReadyBoost(就绪推进)的特征,该特征允许用户使用高速缓存设备来对还驻留在较慢存储设备(此后为方便起见称为“盘存储”或“盘”,但应当理解,这些术语一般指I/O通常执行得比高速缓存设备慢的任何存储介质和/或设备,包括可经由网络访问的存储设备)中的数据进行高速缓存。采用高速缓存设备来对存储在盘上的数据进行高速缓存可以使用高速缓存管理器组件来实现,在一些实现中,该组件是在操作系统的I/O栈中实现的驱动程序。图1A-1B描绘示例高级过程10A-10B,其中高速缓存管理器组件100对数据在高速缓存设备110中的高速缓存进行管理。可以使用有线和/或无线通信基础结构和协议来将高速缓存设备110耦合到高速缓存管理器110所处的计算机(未示出)上。例如,高速缓存设备110可以是可从计算机(例如,包括闪存USB驱动器)移除的、不可移除的和/或可由计算机经由一个或多个有线和/或无线网络来访问。在过程10A(图1A)的开始,高速缓存管理器100接收指定数据应被写入盘存储(即,高速缓存的卷120)上的地址X的写请求。高速缓存管理器100通过在操作101使得该数据被写到高速缓存的卷120上的地址X并还在操作102使得该数据被写到高速缓存设备110上的地址Y来处理该请求。过程10B(图1B)包括在接收到指定应当读出存储在高速缓存的卷120上的地址X处的数据的读请求之后执行的操作。高速缓存管理器100确定该数据被高速缓存在高速缓存设备110上的地址Y处,并且在操作103使得在地址Y处的数据被读取。随后在操作104,从高速缓存设备来提供该数据以满足读请求。高速缓存管理器在元数据中维护盘地址(例如,地址X)到对应的高速缓存地址(例如,地址Y)的映射,并且这一“高速缓存元数据”通常被用于从高速缓存设备读取或向其写入。通常,高速缓存元数据被维护在存储器中并且在接收到I/O请求时由高速缓存管理器来访问。如此,在高速缓存管理器接收到定向到盘偏移X的读请求时,高速缓存管理器使用该高速缓存元数据来确定该数据还被存储在高速缓存偏移Y处,并且通过使得从高速缓存偏移Y而非盘偏移X读取该数据来满足该请求。在高速缓存管理器接收到定向到盘偏移X的写请求时,高速缓存管理器采用该高速缓存元数据来确定该盘地址处的数据是否也被存储在高速缓存中。如果是(例如,如果该数据被存储在高速缓存地址Y处),高速缓存管理器可以使得该数据被写到高速缓存中的适当地址或驱逐在该地址处的高速缓存内容。如果否,则高速缓存管理器可以使得该数据被写到高速缓存,并可以更新高速缓存元数据以使得将来对盘偏移X的读取可以改为从存储在高速缓存中的数据来进行服务。常规操作系统能够支持具有相对有限存储容量的高速缓存设备。例如,WindowsVista操作系统的ReadyBoost特征支持具有多达4GB存储容量的高速缓存设备。(在发行WindowsVista时,高速缓存设备的最大存储容量大约是2GB。)高速缓存设备的存储容量近年来增长迅速,其中一些高速缓存设备提供多达16GB的存储容量,在进行压缩的情况下这可存储相对于32GB数据。
技术实现思路
申请人明白,具有相对较大存储容量的高速缓存设备提供很大的机会来提高操作系统和应用程序所执行的I/O操作的速度。申请人还明白,常规操作系统只支持具有相对有限存储容量的高速缓存设备的一个原因是在发生某种类型的电源转换(例如,待机、休眠(或非微软Windows操作系统所使用的等效模式)、或重启)时高速缓存内容必须被重新填充。对于具有相对较大存储容量的高速缓存设备,重新填充高速缓存内容可花费相当长的时间并消费显著的处理资源。作为示例,在使用来自盘的大约10MB每秒的后台I/O的情况下,可保持多达16GB压缩数据的8GB闪存设备可能花费多达30分钟来重新填充。这不仅有效地否定了通过采用高速缓存设备所获得的任何性能好处,而且可显著地拖慢系统操作。高速缓存内容必须在某些电源转换之间重新填充的一个原因是在计算机重启时没有方法来可靠地确保高速缓存内容准确地表示盘存储的内容,因为高速缓存设备和/或盘的内容可能在该电源转换期间被修改。例如,在第一计算机关机时,黑客可以将可移动高速缓存设备断开连接,将其连接到另一计算机,并修改高速缓存内容,以使得在该设备随后被重新连接到第一计算机的情况下,不正确的数据(此后称为“不可信”数据)可能从该高速缓存设备提供以满足I/O请求。除黑客的恶意动作之外,在电源转换期间,高速缓存内容也可能由于计算机或高速缓存设备的硬件故障而被毁坏。在电源转换期间,高速缓存内容也可因盘上的数据在该转换期间被更新而变“旧”,使得在计算机重启时,高速缓存内容不再准确地表示盘内容。例如,在关机之后,用户可能将盘引导到不能识别该高速缓存设备的另一操作系统并且修改被高速缓存在该高速缓存设备上的存储在盘上的数据,使得在计算机重启时,高速缓存内容不再反映存储在盘上的内容。在另一示例中,在关机期间,计算机上的一些动作可在高速缓存设备被呈现为不可由操作系统访问之后发生,(例如,在高速缓存设备被关闭之后),使得操作系统在这一时间点之后所执行的对盘的任何写操作可能不能被高速缓存内容准确地反映。多个事件中的任一个可以使得高速缓存内容在电源转换之间变旧。本专利技术的各实施方式提供用于管理这些和其他问题的技术,使得在电源转换之间就准确地反映存储在盘上的数据而言高速缓存内容是可以依赖的。例如,本专利技术的一些实施方式提供用于验证高速缓存内容在电源转换之间保持可信的技术。另外,一些实施方式提供用于可靠地确保高速缓存内容在电源转换之间不变旧的技术。此外,一些实施方式提供用于在电源转换之间以及在正常操作(“稳定状态”)期间管理高速缓存元数据的技术,从而确保在电源转换发生时高速缓存元数据可被有效地访问并被可靠地保存和还原。通过提供确保在电源转换之间就准确地反映存储在盘上的数据而言高速缓存内容可被依赖的技术,本专利技术的一些实施方式可以允许采用具有大量存储容量的高速缓存设备来显著地加速操作系统和/或应用程序所执行的I/O操作。I/O操作的提高的速度可以不仅加速计算机的正常“稳定状态”操作,还可显著地加速在引导期间执行的操作,使得计算机更块地就绪。在一些实施方式中,提供了一种用于操作耦合有存储介质和高速缓存设备的计算机的方法,该计算机包括操作系统。该方法包括以下动本文档来自技高网...
【技术保护点】
1.一种操作其上耦合有存储介质(706)和高速缓存设备(110)的计算机(700)的方法,所述计算机包括操作系统,所述方法包括以下动作:(A)响应于将数据项写入所述存储介质上的地址的请求,使所述数据项被写入所述存储介质上的地址(101)以及被写入所述高速缓存设备上的对应地址(102);(B)在所述操作系统的重新引导之后,确定(270、330)存储在所述高速缓存设备上的地址处的数据项是否可被可靠地用来满足从所述存储介质上的地址读取所述数据项的请求;以及(C)如果在(B)确定存储在所述高速缓存设备上的地址处的数据项可被可靠地用来满足从所述存储介质上的地址读取所述数据项的请求,使所述数据项被从所述高速缓存设备上的地址读出(299)。
【技术特征摘要】
【国外来华专利技术】US61/097,0792008年9月15日1.一种操作其上耦合有存储介质(706)和高速缓存设备(110)的计算机(700)的方法,所述计算机包括操作系统,所述方法包括以下动作:(A)提供写记录器组件的动作,所述写记录器组件能用于标识对所述存储介质执行且未对所述高速缓存设备执行的写操作;(B)响应于将数据项写入所述存储介质上的地址的请求,使所述数据项被写入所述存储介质上的地址(101)以及被写入所述高速缓存设备上的对应地址(102);(C)在所述操作系统的重新引导之后,确定(270、330)存储在所述高速缓存设备上的地址处的数据项是否能被可靠地用来满足从所述存储介质上的地址读取所述数据项的请求,所述确定包括经由所述写记录器组件来确定存储在所述存储介质上的地址处的数据项在动作(B)完成之后是否被更改;以及(D)如果在(C)确定存储在所述高速缓存设备上的地址处的数据项能被可靠地用来满足从所述存储介质上的地址读取所述数据项的请求,使所述数据项被从所述高速缓存设备上的地址读出(299)。2.如权利要求1所述的方法,其特征在于,动作(A)-(D)是由所述操作系统执行的。3.如权利要求1所述的方法,其特征在于,所述存储介质包括盘存储设备。4.如权利要求1所述的方法,其特征在于,所述高速缓存设备能从所述计算机移除。5.如权利要求1所述的方法,其特征在于,动作(C)是响应于从所述存储介质上的地址读取所述数据项的请求来执行的,并且还包括验证存储在所述高速缓存设备上的地址处的数据项在动作(B)完成之后未被修改。6.如权利要求5所述的方法,其特征在于,(B)还包括生成至少所述数据项的表示并将所述表示写入到所述高速缓存设备,并且其中(C)中的验证动作包括:(C1)获取被写入到所述高速缓存设备的表示;(C2)重新生成所述表示;以及(C3)将在(C1)中获取到的表示与在(C2)中重新生成的表示进行比较以确定存储在所述高速缓存设备上的地址处的数据项是否能被可靠地用来满足读取所述数据项的请求。7.如权利要求1所述的方法,其特征在于,所述写记录器组件被所述操作系统启用,并且其中所述操作系统被配置成在确定所述操作系统被关机时激活所述写记录器组件。8.如权利要求1所述的方法,其特征在于,动作(B)还包括生成至少所述数据项的表示并将所述表示写入到所述高速缓存设备,并且其中(C)中的确定动作包括:(C1)获取被写入到所述高速缓存设备的表示;(C2)重新生成所述表示;以及(C3)将在(C1)中获取到的表示与在(C2)中重新生成的表示进行比较以确定存储在所述高速缓存设备...
【专利技术属性】
技术研发人员:M·伊伊京,
申请(专利权)人:微软公司,
类型:发明
国别省市:US
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。