直插式非易失性存储器盘读取高速缓存和写入缓冲器.pdf

上传人:g**** 文档编号:966458 上传时间:2018-03-21 格式:PDF 页数:31 大小:1.48MB
返回 下载 相关 举报
摘要
申请专利号:

CN200680011143.6

申请日:

2006.04.13

公开号:

CN101506776A

公开日:

2009.08.12

当前法律状态:

撤回

有效性:

无权

法律详情:

发明专利申请公布后的视为撤回IPC(主分类):G06F 11/00公开日:20090812|||实质审查的生效|||公开

IPC分类号:

G06F11/00

主分类号:

G06F11/00

申请人:

微软公司

发明人:

C·D·尼科尔森; M·R·福汀; S·B·威尔利; C·厄冈

地址:

美国华盛顿州

优先权:

2005.4.15 US 11/107,551

专利代理机构:

上海专利商标事务所有限公司

代理人:

顾嘉运

PDF下载: PDF下载
内容摘要

呈现了一种改善硬驱动器的读/写性能的方法和装置。具有固态、非易失性(NV)存储器的设备被直插地附加给常规硬驱动器并且用作读/写高速缓存。由操作系统指定的数据存储在该NV存储器内。操作系统提供要放入NV存储器的数据列表。该数据包括被钉入NV存储器的数据以及动态数据。被钉住的数据在NV存储器内持续存在,直到操作系统命令该NV存储器刷新。动态数据可由硬驱动器控制器刷新。由应用程序发送以供存储的数据以数据块的形式被临时存储在NV存储器内,直到操作系统将其提交给磁盘。

权利要求书

1.  一种直插式持续性存储设备,包括:
适于与磁盘驱动器的磁盘驱动器连接器相连接的外壳;
安装在所述外壳内并与所述磁盘驱动器和控制器通信的一固态、非易失性(“NV”)存储器块阵列,所述控制器与所述磁盘驱动器通信,所述控制器用于控制所述NV存储器并且适于将从计算设备中接收的至少一个数据块存储在NV存储器内的至少一个存储器块中并且响应于接收到刷新命令而将所述至少一个数据块从所述固态NV存储器块阵列中刷新。

2.
  如权利要求1所述的直插式持续性存储设备,其特征在于,所述控制器在所述外壳内。

3.
  如权利要求1所述的直插式持续性存储设备,其特征在于,还包括比所述NV存储器更快的易失性存储器缓冲器以及储能设备。

4.
  如权利要求3所述的直插式持续性存储设备,其特征在于,设计所述储能设备的大小以使其带有能够维持对所述易失性缓冲器和所述NV存储器缓冲器供电足够长时间的充足电力,从而能够在突然断电的情况下将数据从所述易失性存储器和所述NV存储器阵列的至少一个中移至所述磁盘驱动器。

5.
  如权利要求3所述的直插式持续性存储设备,其特征在于,所述储能设备是电池或电容器。

6.
  如权利要求1所述的直插式持续性存储设备,其特征在于,还包括一对连接器,所述一对连接器之一连接至所述磁盘驱动器连接器而所述一对连接器中的另一个连接至与主板相连接的电缆。

7.
  如权利要求1所述的直插式持续性存储设备,其特征在于,所述外壳整体附至所述磁盘驱动器。

8.
  如权利要求1所述的直插式持续性存储设备,其特征在于,还包括一对电源连接器,所述一对电源连接器之一连接至磁盘驱动器的电源连接器而所述一对连接器中的另一个连接至电源电缆。

9.
  如权利要求1所述的直插式持续性存储设备,其特征在于,所述控制器截取来自操作系统的命令并且将写入内容缓冲至所述NVM存储器。

10.
  如权利要求1所述的直插式持续性存储设备,其特征在于,所述控制器还适于响应于接收到要被预高速缓存的数据列表而将至少一个数据块从所述磁盘驱动器载入NV存储器。

11.
  如权利要求1所述的直插式持续性存储设备,其特征在于,所述控制器还适于将数据块钉入所述NV存储器。

12.
  如权利要求1所述的直插式持续性存储设备,其特征在于,所述控制器还适于立刻命令所述磁盘驱动器加速旋转以载入NV存储器内的所述至少一个数据块。

13.
  如权利要求1所述的直插式持续性存储设备,其特征在于,每个存储器块都是被钉住的数据块和未被钉住的数据块中的一种,并且所述控制器还适于响应于接收到刷新被钉住的数据块的命令而刷新被钉住的数据块。

14.
  如权利要求1所述的直插式持续性存储设备,其特征在于,每个存储器块都是被钉住的数据块和未被钉住的数据块中的一种,并且所述控制器还适于响应于接收到刷新动态高速缓存的命令而刷新未被钉住的数据块。

15.
  如权利要求1所述的直插式持续性存储设备,其特征在于,每个存储器块都是被钉住的数据块和未被钉住的数据块中的一种,并且所述控制器还适于响应于接收到刷新所有数据块的命令而刷新被钉住的数据块和未被钉住的数据块。

16.
  如权利要求1所述的直插式持续性存储设备,其特征在于,所述控制器还适于响应于接收提供容量的请求向所述计算机系统提供容量。

17.
  如权利要求16所述的直插式持续性存储设备,其特征在于,当所述控制器向所述计算机系统提供容量时,所述控制器提供所述NV存储器的大小、由所述NV存储器支持的特征、以及所述磁盘驱动器的所述状态。

18.
  如权利要求1所述的直插式持续性存储设备,其特征在于,所述控制器还适于:
确定何时所述NV存储器的可用空间位于阈值之下;以及
如果所述NV存储器的可用空间位于所述阈值之下,则将所述NV存储器的至少一部分刷新至所述磁盘驱动器。

19.
  如权利要求1所述的直插式持续性存储设备,其特征在于,所述控制器还适于截取送往所述磁盘驱动器的命令,解释所述命令,并且将所述命令传递至所述磁盘驱动器。

20.
  如权利要求1所述的直插式持续性存储设备,其特征在于,所述控制器还适于接收来自所述操作系统的命令,翻译命令,并将它们传递至所述HDD。

21.
  如权利要求1所述的直插式持续性存储设备,其特征在于,所述直插式存储设备具有与其相关联的跨接或粘合剂以使其能够被固定至所述磁盘驱动器。

说明书

直插式非易失性存储器盘读取高速缓存和写入缓冲器
发明领域
本发明一般涉及计算机系统,尤其涉及改善硬盘驱动器的性能。
发明背景
计算机系统上使用某些永久性存储设备以便为该计算机系统的功能提供永久性的存储。例如本领域内周知的磁性硬盘驱动器组合件。然而,这些永久性存储器具有一些缺点。磁性硬盘驱动器准备读取或写入数据所需的时间很长。为了读写数据,在大多数情况下,需要物理地启动磁盘旋转,并且需要在磁盘的适当位置上定位读/写头。
尽管如此,计算机系统的微处理器仅执行来自诸如DRAM的快速随机可寻址存储器或者其他类型的易失性电子存储器的指令。为了初始化该可寻址存储器以使其引导操作系统,通常会在EPROM(电可编程只读存储器)或类似设备上提供小量的非易失性引导存储器。当引导计算机时,就使用存储在上述非易失性存储器上的引导程序。该引导程序包含用于读取在硬盘上该操作系统启动部分的代码,上述启动部分用于该操作系统其余部分的载入与初始化。
从硬盘中传送操作系统、可执行文件及数据很慢,尤其是当该操作系统是大型操作系统,或者文件很大等时。这种情况不但在引导计算机系统时常常出现,而且在计算机系统从休眠模式中恢复时也会出现。传送时间的一个重要因素应归于磁盘驱动器的起转速度。以相对较慢RPM旋转的相对较小的磁盘需要5至6秒加速至可使用。诸如多盘片设备的大型磁盘以及以更快RPM旋转的磁盘需要10至12秒甚至更多的时间来加速。在具有主要以顺序方式加速的数百至数千个磁盘驱动器的服务器系统上,磁盘加速旋转时间能够占据服务器系统总引导时间的90%以上。硬驱动器消耗了很大一部分由计算机系统使用的功率,产生大量热负载,并且会由于冷却系统所需的风扇噪音引起PC噪声。
业已开发出用于增加计算机系统引导速度以及增加计算机系统从休眠中恢复速度的方法。公开的一个示例是Feigenbaum等人的美国专利No.5,307,497。′497专利教示了可以将操作系统的一部分存储在只读存储器(ROM)中用以在加电或重启期间对该部分的快速访问。然而,存储在ROM内的该部分无法被改变。换句话说,在′497专利中公开的方法不适于改变与操作系统设置和所使用应用程序有关的用户参数,不适于计算机系统从休眠中恢复,也不适于操作系统的更新或新版本。
业界研发的另一示例是将计算机存储器的状态存储到与磁盘驱动器分离的备份存储器中,并且储存整个计算机存储器。该备份存储器很大,因为它存储了整个计算机存储器。
发明概述
本发明改善了硬驱动器的读/写性能并且减少了访问该硬驱动器的次数。该操作系统提供了将放入固态、非易失性(“NV”)存储器的数据的列表,其中该固态、非易失性存储器位于直插在硬驱动器和主板上的一设备内并且附连至该硬盘驱动器,由此允许将标准机械驱动器与标准主板一并使用。该数据包括要钉入NV存储器的数据以及动态数据。被钉住的数据在NV存储器内持续存在,直到操作系统命令该NV存储器刷新(flush)。动态数据是由操作系统按优先级排列的数据,但可由硬驱动器控制器控制。
NV存储器由安装在硬驱动器的IDE连接器或者等效结构上的单元提供。该单元可以跨接在硬驱动器上,从而使得将该单元从硬驱动器中移除变得相对困难。跨接降低了断电之后该驱动器被从计算机系统中移除及被损坏的可能性。在一个实施例中,该设备包括用于缓冲写入磁盘的数据突发脉冲串的快速易失性存储器,以及在突然断电的情况下提供能够维持设备足够长的供电时间用以将数据从易失性存储器中移至NV存储器移至磁盘驱动器盘片的储能设备,诸如小电池。操作期间,单元的控制器高速缓存来自操作系统的命令并且缓冲写入,以便机械磁盘得以减速旋转,由此缩短等待时间、减小功耗、并且减轻对驱动器的磨损。
NV存储器在系统工作期间使用以临时缓冲写入驱动器数据。当NV存储器上的可用资源降至阈值之下时,存储在NV存储器内的数据被传送至磁盘驱动器。这样就减少了系统操作时磁盘驱动器加速旋转的次数。
还提供了一种用以使得操作系统能控制单元内的NV存储器高速缓存的接口程序。该接口程序包括用于操作系统、单元和硬驱动器通信的命令。该接口程序包括确定硬驱动器容量的命令;将块列表钉入NV存储器的命令;将块列表预高速缓存入NV存储器的命令、将各命令从NV存储器刷新至硬驱动器磁盘的命令、将包含写入事务的一组块的集合写入NV存储器的命令、以及将该写入事务提交给所述硬驱动器磁盘的命令。
本发明的其他特征和优点在阅读了参考附图的以下详细描述之后将变得显而易见。

附图简述
虽然所附权利要求书具体阐明了本发明的各个特征,但是本发明及其目标和优点通过参考以下考虑了各附图的详细描述就可得到最佳理解,在附图:
图1是一般地示出了本发明驻留其上的示例性计算机系统的框图;
图2是一般地示出了在其中可以执行本发明的各位置的图1所示示例性计算机系统的框图;
图3是示出了在本发明实施例中具体实现的连接至标准磁盘驱动器的直插式NV存储器的框图;
图4a和4b是示出了连接至标准磁盘驱动器的图3所示直插式NV存储器的等距视图;
图5是示出了用于在断电或进入休眠模式期间存储静态和动态配置数据以缩短引导时间及计算机系统觉醒时间的一进程的第一部分的流程图;
图6是示出了用于在断电或进入休眠模式期间存储静态和动态配置数据以缩短引导时间及计算机系统觉醒时间的一进程的其余部分的流程图;
图7是示出了用于缩短计算机系统引导时间及计算机系统从休眠中觉醒时间的一进程的流程图;
图8是示出了与本发明交互作用的操作系统的存储网络栈的框图;
图9是示出了根据本发明的控制NVM存储器的存储网络栈的框图;
图10是示出了根据本发明的控制NVM存储器的另一存储网络栈的框图;以及
图11是示出了根据本发明的教示用于在NV存储器内存储数据的一进程的流程图。
本发明的详细描述
本发明降低了传统硬盘驱动器的功耗、改善了硬盘驱动器的读/写性能、并且缩短了计算机系统的引导时间以及休眠觉醒时间。静态和动态配置数据被存储在诸如闪存的固态、易失性存储器技术中。静态配置数据是除了在更新已安装操作系统或已安装应用程序之后,在每次操作系统引导或应用程序装入时都不改变的操作系统和应用程序的指令及数据。动态配置数据是会随着操作系统的每次引导或者应用程序的每次装入改变,并且可以在执行期间的任何时刻变化的程序指令和数据。在随后的描述中,术语“NV存储器”将用于指示固态非易失性存储器。NV存储器指的是移除供电时能保持其数据,能被擦除并且能用新数据重新编程的任何类型的存储器。NV存储器可以包括有后备电池的存储器。NV存储器直插在主板和硬盘驱动器之间的磁盘驱动器接口上。
未来用于移动系统的磁盘可以在无需实际获取电力以保持磁盘旋转的情况下从电池中获得保持其存储器供电的电能。NV存储器可以存储文件数据、文件元数据、以及已知的磁盘扇区,诸如引导扇区及分区表。在断电或进入休眠模式期间,计算机系统基于先前使用的历史确定要存储在NV存储器内的静态和动态配置数据。也可以在系统工作期间存储数据,从而减少磁盘驱动器加速旋转的次数。对于移动PC及其类似设备而言,减少磁盘驱动器加速旋转的次数会改善用户体验,这是因为功率降低了,从而能够在给定电池容量的情况下实现待机时间更长的更小更轻的移动PC。它还能减少对运行有噪声并会打扰用户的高速风扇的需要。当计算机系统加电或从休眠中醒来时,在NV存储器内的配置数据被用来初始化动态系统存储器,从而无需磁盘驱动器的加速。在需要从磁盘中获取额外文件的情况下,磁盘驱动器可以在NV存储器初始化的同时加速旋转,由此该磁盘加速不会减缓该初始化进程。
现在转到附图,其中类似的附图标号指示类似的单元,将示出在合适的计算环境中实现的本发明。尽管没有要求,但本发明仍可在诸如由个人计算机执行的程序模块等计算机可执行指令的通用语境中描述。一般而言,程序模块包括例程、程序、对象、组件、数据结构等,它们执行特定任务或实现特定抽象数据类型。此外,本领域的技术人员可以理解,本发明可以使用其它计算机系统配置来实现,包括手持式设备、多处理器系统、基于微处理器或可编程消费者电子产品、网络PC、小型机、大型计算机等。本发明也可以在分布式计算环境中实现,其中任务由通过通信网络连接的远程处理设备来执行。在分布式计算环境中,程序模块可以位于本地和远程存储器存储设备中。
图1示出了可在其上实现本发明的合适的计算系统环境100的示例。计算系统环境100只是合适的计算环境的一个示例,并不旨在对本发明的使用范围或功能提出任何限制。也不应该把计算环境100解释为对示例性操作环境100中示出的任一组件或其组合有任何依赖性或要求。
本发明可用众多其它通用或专用计算系统环境或配置来操作。适合在本发明中使用的公知的计算系统、环境和/或配置的示例包括,但不限于,个人计算机、服务器计算机、手持或膝上型设备、多处理器系统、基于微处理器的系统、机顶盒、可编程消费者电子产品、网络PC、小型机、大型机、包含上述系统或设备中的任一个的分布式计算机环境等。
本发明可在诸如程序模块等由计算机执行的计算机可执行指令的通用语境中描述。一般而言,程序模块包括例程、程序、对象、组件、数据结构等,它们执行特定任务或实现特定抽象数据类型。本发明也可以在分布式计算环境中实现,其中任务由通过通信网络连接的远程处理设备执行。在分布式计算环境中,程序模块可以位于包括存储器存储设备在内的本地和远程计算机存储介质中。
参考图1,用于实现本发明的一个示例性系统包括计算机110形式的通用计算设备。计算机110的组件可以包括但不限于,处理单元120、系统存储器130和将包括系统存储器在内的各种系统组件耦合至处理单元120的系统总线121。系统总线121可以是若干类型的总线结构中的任一种,包括存储器总线或存储器控制器、外围总线和使用各种总线体系结构中的任一种的局部总线。作为示例而非限制,这样的体系结构包括工业标准体系结构(ISA)总线、微通道体系结构(MCA)总线、扩展的ISA(EISA)总线、视频电子技术标准协会(VESA)局部总线和外围部件互连(PCI)总线(也被称为Mezzanine总线)。
计算机110通常包括各种计算机可读介质。计算机可读介质可以是能够被计算机110访问的任何可用介质,且包括易失性和非易失性介质、可移动和不可移动介质。作为示例,而非限制,计算机可读介质可以包括计算机存储介质和通信介质。计算机存储介质包括以任何方法或技术实现的用于存储诸如计算机可读指令、数据结构、程序模块或其它数据等信息的易失性和非易失性、可移动和不可移动介质。计算机存储介质包括,但不限于,RAM、ROM、EEPROM、闪存或其它存储器技术;CD-ROM、数字多功能盘(DVD)或其它光盘存储;磁带盒、磁带、磁盘存储或其它磁性存储设备;或能用于存储所需信息且可以由计算机110访问的任何其它介质。通信介质通常体现为诸如载波或其它传输机制等已调制数据信号中的计算机可读指令、数据结构、程序模块或其它数据,且包含任何信息传递介质。术语“已调制数据信号”指的是这样一种信号,其一个或多个特征以在信号中编码信息的方式被设定或更改。作为示例,而非限制,通信介质包括诸如有线网络或直接线连接的有线介质,以及诸如声学、RF、红外线和其它无线介质的无线介质。上述中任一个的组合也应包括在计算机可读介质的范围之内。
系统存储器130包括易失性或非易失性存储器形式的计算机存储介质,诸如只读存储器(ROM)131和随机存取存储器(RAM)132。基本输入/输出系统133(BIOS)包含有助于诸如启动时在计算机110中元件之间传递信息的基本例程,它通常存储在ROM 131中。RAM 132通常包含处理单元120可以立即访问和/或目前正在操作的数据和/或程序模块。作为示例,而非限制,图1示出了操作系统134、应用程序135、其它程序模块136和程序数据137。
计算机110也可以包括其它可移动/不可移动、易失性/非易失性计算机存储介质。仅作为示例,图1示出了从不可移动、非易失性磁介质中读取或向其写入的硬盘驱动器141,从可移动、非易失性磁盘152中读取或向其写入的磁盘驱动器151,以及从诸如CD ROM或其它光学介质等可移动、非易失性光盘156中读取或向其写入的光盘驱动器155。可以在示例性操作环境下使用的其它可移动/不可移动、易失性/非易失性计算机存储介质包括,但不限于,盒式磁带、闪存卡、数字多功能盘、数字录像带、固态RAM、固态ROM等。硬盘驱动器141通常由诸如接口140的不可移动存储器接口连接至系统总线121,磁盘驱动器151和光盘驱动器155通常由诸如接口150的可移动存储器接口连接至系统总线121。
以上描述和在图1中示出的驱动器及其相关联的计算机存储介质为计算机110提供了对计算机可读指令、数据结构、程序模块和其它数据的存储。例如,在图1中,硬盘驱动器141被示为存储操作系统144、应用程序145、其它程序模块146和程序数据147。注意,这些组件可以与操作系统134、应用程序135、其它程序模块136和程序数据137相同或不同。操作系统144、应用程序145、其它程序模块146和程序数据147在这里被标注了不同的标号是为了说明它们至少是不同的副本。用户可以通过输入设备,诸如键盘162和定点设备161(通常指鼠标、跟踪球或触摸垫)向计算机110输入命令和信息。其它输入设备(未示出)可以包括麦克风、操纵杆、游戏垫、圆盘式卫星天线、扫描仪等。这些和其它输入设备通常由耦合至系统总线的用户输入接口160连接至处理单元120,但也可以由其它接口或总线结构,诸如并行端口、游戏端口或通用串行总线(USB)连接。监视器191或其它类型的显示设备也经由接口,诸如视频接口190连接至系统总线121。除监视器以外,计算机也可以包括其它外围输出设备,诸如扬声器197和打印机196,它们可以通过输出外围接口195连接。
计算机110可使用至一个或多个远程计算机,诸如远程计算机180的逻辑连接在网络化环境下操作。远程计算机180可以是个人计算机、服务器、路由器、网络PC、对等设备或其它常见网络节点,且通常包括上文相对于计算机110描述的许多或所有元件,尽管在图1中只示出存储器存储设备181。图1中所示逻辑连接包括局域网(LAN)171和广域网(WAN)173,但也可以包括其它网络。这样的连网环境在办公室、企业范围计算机网络、内联网和因特网中是常见的。
当在LAN连网环境中使用时,计算机110通过网络接口或适配器170连接至LAN 171。当在WAN连网环境中使用时,计算机110通常包括调制解调器172或用于在诸如因特网等WAN 173上建立通信的其它装置。调制解调器172可以是内置或外置的,它可以通过用户输入接口160或其它合适的机制连接至系统总线121。在网络化环境中,相对于计算机110描述的程序模块或其部分可以存储在远程存储器存储设备中。作为示例,而非限制,图1示出了远程应用程序185驻留在存储器设备181上。可以理解,所示的网络连接是示例性的,且可以使用在计算机之间建立通信链路的其它手段。
在如下的描述中除非另加指示,将参考由一个或更多计算机执行的操作的动作和符号表示来描述本发明的实施例。这样就可以理解,这些有时被称为计算机执行的动作和操作包括由计算机处理单元对以结构化形式表示数据的电信号的处理。以本领域技术人员熟知的方式重新构造或者以另外方式改变计算机操作的该处理,变换所述数据或者在计算机存储器系统的存储单元处保持这些数据。其中保持有数据的数据结构是具有由该数据格式定义的特定属性的存储器物理存储单元。虽然将在下文中描述本发明原理,但这并不意味着限制本领域技术人员能够意识到此后描述的动作和操作也可在硬件内实现。
现转向图2,NV存储器200可以作为直插在主板和硬盘驱动器之间的磁盘驱动器接口上的分离组件200而位于计算机110之内。作为分离组件220的NV存储器200能够改善不具备NV存储器200的旧版本系统性能,而无需安装具有NV存储器的硬驱动器。
现转向图3和图4a、4b,永久性存储设备300(即,硬盘驱动器141)具有磁盘组合件302,该组合件302包括诸如一个或多个磁盘304的非易失性存储器存储介质、用于读写磁盘304的读/写头306、以及用于将读/写头306移至磁盘304上位置的主轴/电枢组合件308。控制器310命令该磁盘组合件从存储介质中读取数据或者向该存储介质写入数据。NV存储器200由安装在磁盘驱动器的IDE连接器320或其等效结构(以及电源连接322)上的设备220提供。ATA(先进技术附加)电缆324连接设备220与主板111。电力经由连接器326提供给设备220。虽然图4a和4b示出了安装在标准台式机硬驱动器的IDE连接器320上并经由分离连接器供电的设备220,但是本领域普通技术人员会认识到设备220不限于这些连接器,并且设备200也可以安装在其他的一个或多个连接器上,例如但不限于移动设备(诸如,膝上型计算机的硬盘驱动器)的硬盘驱动器连接器。设备220可以跨接或永久性地安装在磁盘驱动器上,以使其难以或几乎无法从磁盘驱动器中移除。跨接/永久安装降低了在断电之后驱动器300被从计算机系统中移除及被损坏的可能性。
在一个实施例中,提供了诸如小型电池的储能设备222,用以在突然断电的情况下向易失性存储器226和非易失性存储器提供足够长时间的充足电力,从而能将数据从易失性存储器移至NV存储器。
工作期间,设备的控制器224高速缓存或者截取来自操作系统的命令并将写入缓冲至NV M存储器200而不是磁盘304,以便机械磁盘304能够减速旋转,从而缩短等待时间、减小功耗、并且减轻对驱动器的磨损。控制器224还解释来自操作系统的命令,并将这些命令传递至控制器310。
计算机110通过观察对磁盘304较大区域的500微秒或者更短的存取时间,而不是通常约10毫秒的存取时间,就能够检测NV存储器的存在。在一个可选实施例中,NV存储器200暴露在操作系统中,使得该操作系统和其他组件能够询问该NV存储器200的大小,控制NV存储器200的状态,使用事务过程向NV存储器200写入数据并如上所述将该NV存储器200用作写入缓冲器。API的一个实施例在共同代理的于2004年5月3日提交的题为“Non-VolatileMemory Cache Performance Improvement”美国专利申请No.10/837,986中有所使用,该专利申请全文结合在此作为参考。
如下将参考图5至图7描述本发明的操作。应该注意到上述步骤可以按照顺序、并行、或者顺序与并行结合的方式执行。确定磁盘304的加速旋转时间(步骤500)。对于以相对较慢速度旋转的相对较小的磁盘而言,加速旋转时间通常为3至6秒。对于更大的磁盘、多盘片磁盘以及以更快速度旋转的磁盘而言,加速旋转时间可达到10至12秒。在一个实施例中,加速旋转时间可由确定一页面从未旋转的(即,未被存取的)磁盘驱动器载入系统存储器所需的时间来推断。加速旋转时间约等于载入时间,因为载入时间主要由加速旋转时间决定。
当计算机系统要断电时(步骤502),就确定要存储在NV存储器中的静态配置数据和动态配置数据(步骤504)。选择静态配置数据和动态配置数据以使得该静态配置数据和动态配置数据的初始化时间约等于磁盘驱动器的加速旋转时间。静态和动态配置数据是无需来自磁盘驱动器的数据被初始化的配置数据。它可以包括用于键盘设备、定点设备、USB子系统、视频子系统等的配置数据。所需NV存储器的大小等于静态配置数据和动态配置数据的大小。在许多操作系统中,所需NV存储器的大小范围在16MB至64MB之间,在某些操作系统中可能需要128MB的NV存储器来降低CPU压缩的成本。
静态配置数据是用于所有用户的系统配置数据。例如,在WindowsTM操作系统中,静态配置数据包括加载存储在NV存储器上的静态和动态配置数据以及存储在磁盘驱动器上的配置数据的启动引导代码。在WindowsTM操作系统中的其他静态配置数据包括初始化内核所必需的文件,诸如登记初始化(smss.exe)、视频初始化(csrss.exe)、外壳、从动态链接库中运行的服务(svchost.exe)、诸如IPSec和网络登录的安全服务(lsass.exe)。对于正在断电的计算机系统而言,存储在NV存储器内的静态配置数据包括在磁盘驱动器正加速时所需要的启动引导代码、内核初始化文件、视频初始化文件、外壳和服务(例如,动态链接库)。
动态配置数据是每一单用户为基础的系统配置数据。例如,动态配置数据包括桌面设置(例如,背景图像、图标位置等)、安全凭证、互联网收藏夹、字体、启动程序、键盘设置、及诸如预定任务、财务信息之类个人数据文件等。对于正在断电的计算机系统而言,存储在NV存储器内的动态配置数据包括桌面设置、键盘设置和安全凭证。
所选的静态配置数据和动态配置数据被存储在NV存储器200内(步骤506)。剩余的配置数据则被存储在磁盘驱动器上(步骤508)。在一个实施例中,NV存储器的量要大于所需的最小尺寸。系统断电可以通过存储正送至磁盘以供储存且操作系统无法控制的数据来减少,诸如将写入磁盘的应用程序储存在NV存储器200内以供储存(步骤510)。这减少了磁盘写入次数,从而导致了更快的断电时间。随后该计算机系统断电。
如果该系统正在进入休眠(步骤514),会出现类似的步骤。确定要存储在NV存储器内的静态配置数据和动态配置数据(步骤516)并在存储器中存储这些数据(步骤518)。该数据是快速“重画”(例如,恢复)图形用户界面所必需的数据。静态配置数据包括在休眠之前处于使用中的内核初始化文件、视频初始化文件、外壳、从动态链接库中运行的服务。动态配置数据包括在休眠之前正被使用的桌面设置、键盘设置、字体和个人数据文件。
其余配置数据存储在磁盘驱动器上(步骤520)。从应用程序中接收的写入首先存储在可用NV存储器并在NV存储器不可用的情况下存储在磁盘驱动器上(步骤522)。随后该计算机系统进入休眠模式(步骤524)。
在一个实施例中,NV存储器在系统工作期间被使用。如果应用程序或操作系统正将数据送入磁盘以供存储(步骤526),就在NV存储器200中存储该数据(步骤528)。当系统正在断电或进入休眠时,存储在NV存储器200内的数据被传送至磁盘驱动器。直插式设备可以接收用于控制包括NV存储器高速缓存在内的混合驱动器的新命令。这些新命令将由直插式设备控制器224翻译成硬盘驱动器控制器310能够解释的旧版本命令(步骤530)。如果NV存储器的可用空间降至阈值以下(步骤532),就把NV存储器内的数据传送至磁盘驱动器(步骤534)。将数据传送至磁盘驱动器的一个原因是为从休眠中恢复操作或者引导系统所需的配置数据让出空间。在NV存储器中存储数据减少了磁盘驱动器在工作期间的加速次数。这就改善了用户对计算设备,特别是口袋大小设备的体验,这是因为功耗下降了,从而降低了对有噪音的高速风扇的需要。此外,也不会像往常那样频繁地听见磁盘驱动器旋转以及将数据写入磁盘所产生的噪声。
图7示出了用于引导计算机系统或从休眠模式中恢复计算机系统所采取的步骤。当计算机系统从磁盘驱动器中引导或从休眠模式中醒来时,计算机系统通过用存储在NV存储器200内的静态配置数据和动态配置数据载入系统DRAM来初始化该系统DRAM(步骤700)。如果在NV存储器内没有存储所有的必需初始化数据并且需要从磁盘中载入额外信息,则首先从NV存储器中载入配置数据并在这一时间段内加速磁盘驱动器(步骤702)。这就有效地从引导时间和唤醒时间中去除了加速旋转时间。一旦磁盘驱动器已加速,就载入存储在该磁盘驱动器上的其余配置数据以初始化该系统DRAM(步骤704)。而用户体验是当该用户按下电源开关按钮时,他会在监视器191或其他类型显示设备打开之时或之后立刻看到响应的交互式登录屏幕,而不是等待磁盘驱动器加速。在用户点击他的用户图标并键入密码期间,初始化显示桌面所需的服务。响应的且可用的桌面在磁盘加速之后向用户显示,并且验证在该NV中的数据是否与磁盘驱动器上的数据一致。在一个实施例中,并未压缩所有被高速缓存的数据。然而,如果在分区或文件系统元数据中存在不匹配,该计算机系统就需要错误检查并进入服务/帮助模式,从而在下一次引导时尝试慢速引导。帮助按钮或开关可用于绕过该NV存储器并以用于恢复和向后兼容的安全模式打开计算机系统。
在一个可选实施例中,NV存储器200暴露在操作系统中,使得该操作系统和其他组件能够询问NV存储器200的大小,控制NV存储器200的状态,使用事务过程向NV存储器200写入数据并将该NV存储器200用作写入缓冲器。该实施例能够以各种方式执行。NV存储器可以如图3所示位于设备220内。如果数据高速缓存在NV存储器内并且还位于跨接至磁盘的设备上,则处理器操作系统使用在NV存储器200内高速缓存的数据,而不是来自磁盘的数据。
图8示出了在供执行的一个实施例中与硬件交互作用的操作系统的存储软件栈,其中直插式设备220让该硬盘驱动器看上去像含有旋转的磁性介质和固态非易失性存储器的并且响应于为混合磁盘定义的一组新命令的集合的混合驱动器。预测易失性读取高速缓存控制模块802预测在即将到来的时间间隔中所必需的数据并且将该数据从硬盘驱动器141读入易失性系统存储器130,由此将来自磁盘的读取降至最低。这允许磁盘盘片在与直插式NV高速缓存设备220的写入缓冲能力相结合时长时间地减速旋转。
现转向图9,示出了在其中操作系统和驱动程序控制非易失性存储器的本发明的可选实施例。操作系统的存储驱动程序栈800如图示。在以下的描述中,硬驱动器300和直插式NV存储器设备220与图3所示相同。操作系统134、应用程序135、其他程序模块136向存储驱动程序栈800发送数据(例如,文档、电子表格、文件、图形等)。预测高速缓存控制模块802控制易失性存储器132、硬驱动器300和NV存储器200内所含内容。文件系统过滤器驱动程序804接收来自预测高速缓存控制模块802的数据。文件系统过滤器驱动程序804的主要功能是适度地处理差错,诸如当NV存储器高速缓存200全满时。文件系统过滤器驱动程序804通过文件系统(即,NTFS)806传递数据,该文件系统806是操作系统134用来存储并检索来自硬驱动器300硬盘中的文件。
写入高速缓存过滤器驱动程序808接收来自文件系统806及预测高速缓存控制模块802的数据。写入高速缓存过滤器驱动程序808将在NV存储器200内缓冲的数据送至NVM驱动器224(例如,控制器224)。NVM驱动器224检测NV存储器200何时不再有容量(即,全满)并且向文件系统过滤器驱动程序804发送一消息来指示NV存储器200全满。作为响应,文件系统过滤器驱动程序804通知预测高速缓存控制模块802停止向NV存储器200发送数据直到NV存储器200具有存储容量。另外,预测高速缓存控制模块802可以向NVM驱动器224提供可将其从NV存储器200中刷新至硬驱动器300的数据块的列表。
写入高速缓存过滤器驱动程序200同步NV存储器200和硬驱动器300。如果数据存储在NV存储器200和硬驱动器300内,则写入高速缓存过滤器驱动程序808在其需要将NV存储器200内的写入高速缓存与硬驱动器300同步时对NV存储器200进行读取。数据被事务性地写入NV存储器200并从NV存储器200事务性地写入硬驱动器300。这就允许系统100无缝地持续工作。当写入完成时,事务完成消息被送至写入高速缓存驱动程序808。事务写入允许在写入失败或被中断时(即,接收到未完成消息)重新尝试写入。如果系统在从NV存储器200到硬驱动器300之间的事务处理期间由于掉电或其他任何原因而重启,写入高速缓存过滤器驱动程序808就在该系统重新运行之后将硬驱动器300与NV存储器200内存储的数据进行同步。对于在其中硬驱动器具有NV存储器的系统而言,在硬驱动器内的控制器同步数据。
存储驱动程序810接收要送至硬驱动器300的数据。存储驱动程序810按块发送数据。这可以是iSCSI或其等效结构。iSCSI能够允许块存储传送。这是一种将SCSI命令密封入TCP/IP以实现优于标准网络技术的高性能存储区域网(SAN)的协议。存储驱动程序810将数据转换成数据块(如果使用iSCSI,该数据块为SCSI-3数据)并且将这些数据块送至硬驱动器300。
如前所述,预测高速缓存控制模块802确定NV存储器200内所存储的内容。一般而言,预测高速缓存控制模块802长期观察用户行为,确定用户频繁访问的程序和数据并且将这些数据(包括静态和动态配置数据)存储在NV存储器200内。在此使用的数据包括诸如预定任务、财务信息之类的个人数据文件以及数据文件等。模块802由默认值开始,直到能够预测用户行为。上述静态和动态配置数据是基于先前使用历史,并且包含该用户频繁要求的数据。静态配置数据是不会周期性变化的数据。动态配置数据是会周期性变化的数据并且以每个单用户为基础。配置数据包括键盘设备、定点设备、USB子系统、视频子系统、输出外围设备驱动程序(例如,打印机驱动程序)、操作系统、应用程序、数据文件等。
NVM驱动程序812和存储驱动程序810在NV存储器200附连至硬驱动器226的情况下组合成单个模块1000(参见图10),其中硬驱动器226由设备220和硬驱动器300组成。硬驱动器驱动程序1000与控制器224和硬驱动器控制器310通信,以确定磁盘容量和磁盘状态,指定哪些块位于NV存储器200内以及这些块的优先级、哪些块将在NV存储器内无限制地保存、何时将NV存储器200刷新至磁盘304以及何时把一块写入操作送入磁盘304。这样通过在NV存储器200内保有可被快速载入系统存储器的块就能够改善用户体验的性能。例如,操作系统134可以请求硬驱动器226将该操作系统134引导计算机110所需的文件放入NV存储器200。在计算机系统下次加电时,等到BIOSPOST(上电自检)完成之后,操作系统134就能够从NV存储器200中引导而无需等待磁盘304旋转加速。NV存储器高速缓存200可以含有用户经由接口程序已识别的数据(诸如,Microsoft Outlook中用户的联系人列表)以保证立即可用。用户在引导不具备用作存储介质的NV存储器的计算机的情况下,需要打开他的计算机,检索联系人信息,并且再次关机。
NV存储器高速缓存200由一被高速缓存的存储器块阵列(例如,一被高速缓存的磁盘块、页面、扇区、文件等的阵列)组成,其中每个块都能够被钉住。在一个实施例中,每个块都具有与其相关联用来指示该块是否被钉住的标志和钉住位。未被钉住的块含有可由操作系统134按优先级排列的数据,但在其他方面受控于磁盘控制器310。被钉住的块是由操作系统134控制的一阵列中的块并且无法由控制器310移出NV存储器,除非操作系统134许可被钉住的块移出NV存储器。被钉住的块内的数据继续在NV存储器内存在直到操作系统解除钉住(unpin)。存储器是以这样一种方式被钉住:即它在计算机系统引导之间存留。被钉入的块内的数据通常包括静态配置数据和动态配置数据。
存储设备226(硬驱动器300和设备220的组合)向操作系统134报告它的NVM容量以及旋转介质的当前状态。容量和当前状态包括各类信息,诸如NV存储器200的大小、由NV存储器支持的各种特征(例如,它是否能够“钉入”各个块)、以及磁盘304的状态(例如,停止、旋转、加速旋转或减速旋转)。
操作系统134与硬驱动器控制器和设备控制器224通信以便向控制器310提供信息和命令。上述信息包括钉入NV存储器200由此得以在各次引导之间在高速缓存中持续存在的块的列表、用户工作时“预高速缓存”在NV存储器200内的块的列表、以及含有预高速缓存的各个块的优先级的列表。该操作系统基于使用场景预测将被写入访问的下一组块的集合,并且将该块的集合的列表提供给NV存储器200用于预高速缓存。预先高速缓存的各个块的优先级包括预高速缓存是应该立刻进行(包括在必要时加速旋转磁盘304),还是应该在磁盘304下一次旋转时进行。
该信息还包括从NV存储器200刷新至磁盘304的块的列表、将所有NV存储器200刷新至磁盘304的指令、将NV存储器200内的被钉住的块刷新至磁盘304的指令、将NV存储器200内动态(即,未被钉住)的块刷新至磁盘304的指令、表示写入事务的一组块或段集合的指定(这些块被写入NV存储器内的临时位置并且直到接收到来自操作系统134的委托命令才被永久性地存储)、以及提交将最近一次的写入事务送入NV存储器200内的永久性存储的指令。
现转向图11,操作系统134在操作期间用各种命令确定NV存储器200的大小、由NV存储器支持的各特征以及磁盘的状态(步骤1100)。操作系统134基于NV存储器的大小改变操作模式。如果其大小足以从NV存储器中引导而无需使用磁盘304,该操作系统就在系统关闭之前或在进入休眠之前命令硬驱动器将引导所需的文件移至NV存储器(步骤1102)。除了引导文件之外,操作系统134还经由预测高速缓存控制模块确定该用户在启动时通常使用的数据,并且在NV存储器内有充足可用空间的情况下在关闭之前或在进入休眠之前命令硬驱动器将这些文件移至NV存储器。如果设备220具有将各个块钉入NV存储器的容量,操作系统134就确定应该将什么钉入NV存储器并且将应该被钉住的块的列表送至硬驱动器(步骤1104)。操作系统134随着条件变化周期性地将该列表送至控制器310。例如,如果该用户最近没有使用过去常常使用的某一应用程序,就将该程序从列表中移除并且该程序也不再被钉入存储器。
预测高速缓存控制模块802基于使用场景确定用户将会需要什么数据(步骤1106)。一数据列表被送至硬驱动器300(步骤1108)。这些数据根据操作系统134基于用户正在干的事情所设置的优先级而被高速缓存在NV存储器内。例如,如果用户已经启动了诸如Microsoft Word的一特定应用程序,提供给控制器310的列表就含有马上将需要的文件的列表。
NV存储器200的可用空间被监视。当可用空间降至阈值之下时,就刷新该NV存储器(步骤1110)。操作系统134可以指示控制器224将NV存储器200内的所有数据刷新至磁盘304、将被钉住的块刷新至磁盘304、将动态的块刷新至磁盘304、或者是上述这些动作的组合。操作系统134还会在使用变化时发送刷新命令。刷新能够在磁盘304已经旋转用以处理不在NV存储器200中的读取时在后台进行,或者磁盘304可以加速旋转以进行刷新。
当应用程序发送存储在硬驱动器300内的数据时,操作系统命令控制器224将该数据按数据块的形式存储在NV存储器300的临时位置内(步骤1112)。这些数据块表示写入事务。实现在NV存储器200内的数据存储以减少硬驱动器加速旋转的次数,这就能导致功耗的降低。此外,预测高速缓存模块800可以基于使用场景指示该数据马上就会被使用。这些数据块被存储在NV存储器内直到操作系统134发送指令将这些写入事务提交给磁盘304内的永久性存储。数据的临时存储允许操作系统以块存储模式操作并且根据操作系统的需要管理数据块的存储。将要送至操作系统的尚未在NV存储器内高速缓存的数据直接从硬驱动器送入操作系统。
可以了解到已经提供了一种通过降低硬驱动器内磁盘旋转次数来降低硬驱动器内高速缓存的方法和装置。此外,NV存储器内的数据预高速缓存提高了用户体验。与从正旋转的磁盘中载入数据相比,存储在NV存储器内的数据几乎是立刻呈现在用户面前。
考虑到本发明可以应用于的许多可能的实施例,应该认识到参考附图在此描述的实施例仅是示例性的并且不应该用作对本发明范围的限制。例如,本领域普通技术人员将会认识到所示实施例中以软件示出的各元素可以由硬件实现并且反之亦然,或者可以对所示实施例做出排列和细节上的修改而不背离本发明的精神。此外,上述步骤可以顺序、并行、以不同次序、或者以顺序和并行相结合的方式执行。因此,在此描述的本发明旨在包括所有这些位于所附权利要求书及其等效技术方案范围内的实施例。

直插式非易失性存储器盘读取高速缓存和写入缓冲器.pdf_第1页
第1页 / 共31页
直插式非易失性存储器盘读取高速缓存和写入缓冲器.pdf_第2页
第2页 / 共31页
直插式非易失性存储器盘读取高速缓存和写入缓冲器.pdf_第3页
第3页 / 共31页
点击查看更多>>
资源描述

《直插式非易失性存储器盘读取高速缓存和写入缓冲器.pdf》由会员分享,可在线阅读,更多相关《直插式非易失性存储器盘读取高速缓存和写入缓冲器.pdf(31页珍藏版)》请在专利查询网上搜索。

呈现了一种改善硬驱动器的读/写性能的方法和装置。具有固态、非易失性(NV)存储器的设备被直插地附加给常规硬驱动器并且用作读/写高速缓存。由操作系统指定的数据存储在该NV存储器内。操作系统提供要放入NV存储器的数据列表。该数据包括被钉入NV存储器的数据以及动态数据。被钉住的数据在NV存储器内持续存在,直到操作系统命令该NV存储器刷新。动态数据可由硬驱动器控制器刷新。由应用程序发送以供存储的数据以数据。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 物理 > 计算;推算;计数


copyright@ 2017-2020 zhuanlichaxun.net网站版权所有
经营许可证编号:粤ICP备2021068784号-1