混合存储设备的制作方法

文档序号:6349238阅读:170来源:国知局
专利名称:混合存储设备的制作方法
技术领域
本发明总体上涉及数据存储设备。
背景技术
在包括处理服务器、存储服务器和各种嵌入式计算机系统的计算机系统中,在正常上电或系统复位之后完成起动(startup)过程和进入可操作状态花费的时间、系统对于尤其由对系统的启动(boot-up)配置的未授权修改的安全隐患是脆弱的程度以及从系统故障恢复的能力通常是关键性能因素。启动过程和文件访问是影响这些性能因素的方面。通常,当将计算机上电时,驻存于只读存储器(ROM)中的BIOS(基本输入输出系统)程序开始执行。BIOS执行其许多起动活动,包括硬件检测和验证测试,并且试图调用驻存在诸如引导设备的主引导记录(MBR)的已知区域中的程序,然后将控制传递给该程序。引导设备是本地或网络附接的存储设备,其被配置成是可引导的并且被计算机注释为如此。例如,驻存于MBR中的程序可以是允许加载不同操作系统的引导加载器程序。诸如 Linux操作系统和UNIX操作系统的许多其他变体的一些计算机操作系统可以具有启动过程,其中当上电时,相对较小的操作系统内核(初始内核)起动,然后根文件系统在计算机变成完全可操作之前被安装。初始内核映像典型地由引导加载器从预定义的存储位置加载入存储器,所述引导加载器诸如在Linux系统中通常使用的GRUB或LILO引导加载器。初始内核映像然后可以从许多位置中的一个加载根文件系统,所述许多位置包括本地盘、附接于计算机的可移动存储设备或网络位置。通常情况下,根文件系统驻存于引导设备上。 根文件系统包括计算机的有用操作所需的大部分软件模块,包括各种硬件组件的设备驱动器、用户访问信息以及安装和访问文件的软件和配置。总的来说,尽管每一种类型的计算机必需的根文件系统可能不同,但是该多步启动过程是在许多计算机的操作中较慢方面之一,并且通常寻求进行优化。词语“计算机”在此包括包含至少一个处理器和具有访问存储设备上的文件的能力的任何计算设备。根文件系统可以是相当大的,以及加载根文件系统的很大部分可能很费时。对于这和其他原因,通常优选从本地盘或附接的可移动存储设备加载根文件系统,而不是通过网络加载根文件系统。然而,对于许多计算机,完整根文件系统对于功能不是必需的。例如,许多嵌入式设备不需要完整根文件系统的功能,因为那些设备通常致力于处理功能的有限集。移动电话、机顶盒(例如,线缆盒)、游戏控制台、路由器等是可以不需要完整文件系统的功能的嵌入式设备的一些示例。在许多情况下,除嵌入式设备外的计算机,诸如个人计算机和存储服务器,也可能不需要完整根文件系统。许多计算机,尤其需要快速启动和快速访问数据的那些,使用诸如闪存盘的固态存储器设备,在其上存储有时包括操作系统映像的根文件系统的压缩映像。然而,尽管固态驱动器提供比它们的磁盘对应物和其他持久存储器设备显著更高的可靠性,但是经常发现读写速度减慢这些嵌入式系统的操作速度。
许多计算机,尤其使用Linux或另一个UNIX变体的那些,能够将整个文件系统从诸如磁盘或固态盘的持久存储介质加载到计算机的本地随机存取存储器(本地RAM),然后加载入RAM中的虚拟盘,即RAM盘。一旦文件系统在RAM盘中,操作系统就能够如同它访问任何本地盘一样访问其。创建RAM盘以及使计算机以与它访问任何盘驱动相同或相似的方式访问RAM盘能够提高计算机的操作速度。RAM盘使得能够快速访问文件,因为文件在易失性存储器中被访问,以及相对较慢盘访问来检索文件的需求被显著减少。但是,因为整个文件系统被带入本地RAM,对于需要该RAM空间的应用和其他过程,宝贵的RAM容量被拒绝给予。有一个长久以来感到的需要以增加的速度、效率和可靠性提供存储容量和对已存储的信息的访问。尤其,需要提供对存储的访问的系统和方法,其可以使得能够以增加的速度、可靠性和可服务性起动计算机系统。

发明内容
在一个实施例中,一种混合存储设备包括持久性存储器;易失性存储器;处理器;存储器加载器模块,其使处理器能够从持久性存储器设备加载例如文件系统的第一信息集,以及在易失性存储器设备中根据预确定的格式来组织第一信息集;以及存储驱动接口控制器。存储驱动接口控制器使处理器能够从耦接到混合存储设备的主计算机接收信息访问请求、使用易失性存储器设备中的第一信息集来对信息访问请求作出响应、以及向主计算机提供描述第一信息集的元数据。在该实施例中,使主计算机能够使用元数据来开始访问第一信息集,而不用使第一信息集在主计算机的本地存储器中,以及通过使第一信息集在易失性存储器中减少了访问第一信息集所需的时间。在另一个实施例中,一种系统包括主计算机和耦接到主计算机的混合存储设备。 混合存储设备包括持久性存储器;易失性存储器;处理器;存储器加载器模块,其使处理器能够将第一信息集从持久性存储器设备加载到易失性存储器设备,以及在易失性存储器设备中根据预确定的格式来组织第一信息集;以及存储驱动接口控制器。存储驱动接口控制器使处理器能够从主计算机接收信息访问请求以及使用易失性存储器中的第一信息集来对信息访问请求作出响应。在又一个实施例中,一种方法包括以下阶段将混合存储设备耦接到主计算机、将第一信息集从持久性存储器设备加载到位于混合存储设备中的易失性存储器设备、以及在易失性存储器设备中根据预确定的格式来组织第一信息集、将访问信息从易失性存储器设备加载到位于主计算机中的本地随机存取存储器(本地RAM)、以及使用位于本地RAM中的访问信息来访问第二信息集,其中第一信息集包括第二信息集。在下面参考附图详细描述本发明的进一步特征和优势以及其各种实施例的结构和操作。应注意,本发明不限于在此描述的特定实施例。仅为了说明性的目的,在此提供了这样的实施例。基于包含在此的教导,另外的实施例对相关领域的技术人员是显而易见的。


引用了本发明的实施例,其示例可以在附图中图示。这些附图意在是说明性而不是限制性的。尽管一般在这些实施例的情景下描述了本发明,应当理解的是,并不意在将本发明的范围限制在这些特定实施例。图1示出了根据本发明的实施例的包括主计算机和混合存储设备的系统。图2示出了根据本发明的实施例的混合存储设备的组件。图3示出了根据本发明的实施例的使用混合存储设备的方法的高层级流程图。图4是根据本发明的一个实施例的在图3中所示的当混合存储设备在被上电时发生的事件的更详细的流程图。图5是根据本发明的一个实施例的在图3中所示的“访问文件系统”阶段的更详细流程图。图6是根据本发明的实施例的示出当将数据块从混合存储设备带入主计算机的本地存储器时的处理流程的详细流程图。
具体实施例方式虽然在此参考用于特定应用的说明性实施例描述了本发明,应当理解的是,本发明不限于此。本领域技术人员通过在此的教导将认识到在本发明的范围内的另外修改、应用和实施例以及本发明在其中将有重大功用的另外领域。在一个实施例中,本发明使主计算机能够从以下能力获益访问易失性存储器中的文件系统,而不会通过使大量其本地存储器(例如,本地附接于CPU的随机存取存储器或 RAM—般是系统中最昂贵的存储器)专用于文件系统而不利。在本发明的一个实施例中,描述了具有诸如固态存储器设备(例如,闪存)的持久性存储器设备的混合存储设备(HSD)。 HSD包括其自身的处理器和驻存于持久性存储器设备中的文件系统可以被加载到的易失性存储器。HSD中的盘接口和盘控制器允许耦接到HSD的诸如主计算机的外部设备中的进程访问HSD的易失性存储器中的文件。在本发明的一些实施例中,HSD可以是耦接到主计算机的可移动设备,以及在其他实施例中,HSD可以是集成在主计算机中的设备。本发明的一个实施例的示例应用和使用是使用HSD来允许服务器使用存储在附接HSD上的闪存设备上的根文件系统来启动。例如,压缩的Linux 根文件系统可以被存储在HSD中的持久性存储器设备上。当HSD被耦接到服务器时,根据HSD的本地处理器的指引,Linux根文件系统被解压缩到易失性存储器中。对于主计算机,HSD的易失性存储器中的文件系统作为持久性存储器设备中的文件系统出现。例如,在被配置为引导设备的HSD 中,HSD的易失性存储器中的文件系统可以包括与包含MBR的可引导盘的第一扇区相对应的区域。文件系统的元数据,包括inode信息可以由HSD导出到主计算机的本地存储器。主计算机然后可以使用某一形式的盘接口来访问HSD的易失性存储器中的整个文件系统。主计算机将以与其访问直接附接的盘驱动的方式相同或相似的方式访问HSD的易失性存储
ο通过使主计算机中的进程能够访问根文件系统,而不具有将文件系统从闪存设备加载到易失性存储器所涉及的延迟,以及不用占据大量的本地RAM来维护托管文件系统的 RAM盘,向高效存储设备提供了可以减少故障以及减少在故障之后恢复所需的时间的可靠存储。并且,因为如在使用本发明的实施例来访问根文件系统的情况下,对文件的任何改变将在HSD的易失性存储器中发生,减少了将服务器暴露于安全威胁下,诸如特洛伊程序、病毒和对危害的启动配置文件的未授权的修改。例如,即使恶意代码在变更用户权限文件中获得成功,除非给予特定命令来将易失性存储器的内容写入持久性存储器或其已被配置为如此,系统仅仅直到下一电力周期才遭受已更改的用户权限文件的改变,因为改变仅仅对易失性存储器中的文件作出。在本发明的许多实施例中,因为HSD使用例如串行高级技术附件(SATA)的标准盘接口来与主计算机对接,所以在主计算机中,需要很少或不需要软件修改来使主计算机中的进程能够将HSD中的易失性存储器作为盘来查看。HSD中的持久性存储器设备对于主计算机中的大部分进程保持透明。通过将HSD中的易失性存储器作为标准盘向主计算机提供,HSD还可以用于如通用文件存储这样的任务、分页和虚拟存储器。如在本公开中所使用的,术语“主计算机”应用于HSD可以被耦接到的任何处理设备。在本公开的剩余部分,在所涉及的处理阶段的描述之前,描述了本发明在本发明的实施例的一些中的组成。系统组件图1示出本发明的实施例的常见使用场景100。HSD 120被耦接到主计算机110。 在下面参考图2描述了 HSD 120。主计算机110可以是任何处理设备,诸如包括但不限于商用计算机(例如,个人计算机)、个人数字助理、移动电话或具有处理器的其他移动电子设备、数字视频录像机、网络路由器、游戏控制台、机顶盒、信息亭或其他嵌入式处理平台。主计算机110包括数个组件,包括主处理器111、主存储器(本地RAM) 113、主存储114、主输入和显示接口 115、主盘接口控制器112和使组件111、112、113、114和115互连的主通信总线116。主处理器111可以是任何商用处理器或专用处理器。主存储器113包括随机存取存储器(RAM)。在本文档的余下部分,主存储器113可以被称为本地RAM以将其与其他易失性存储器设备区分开,尤其存在于HSD 120中的RAM。主存储114可以包括非易失性存储的形式,诸如磁盘或闪存盘。主输入和显示接口 115可以包括键盘、鼠标、显示设备和任何其他输入/输出设备中的一个或多个。主盘接口控制器112可以是能够与HSD 120对接的任何接口控制器。例如,主盘接口控制器112可以是与盘接口标准相对应的接口控制器,所述盘接口标准诸如串行高级技术附件(SATA)或其变体中的一个、小型计算机系统接口(SCSI)、电子集成驱动(IDE)、互联网小型计算机接口(iSCSI)、光纤通道、或其他标准或专用盘驱动接口协议。主通信总线116可以包括一个或多个标准或专用设备互连,诸如外围组件互连(PCI)或变体、工业标准架构(ISA)、扩展工业标准架构(EISA)。主计算机110 使用接口连接器130连接到HSD 120。尽管在图1中被示出为到主计算机110的直接附接的外围设备,在其他实施例中,HSD 120可以被集成到主计算机120中或可以通过网络耦接到主计算机120。图2示出了在本发明的一个实施例中的HSD 120的组件。在该实施例中,HSD 120 包括处理器201,其被耦接到持久性存储器设备(例如,固态存储器设备)203、易失性存储器设备202、静态RAM存储器设备205、存储驱动接口控制器208以及配置设备214。另外, 处理器201还被耦接到存储器加载器模块209。处理器201可以包括任何商用处理器、专用处理器或诸如Altera Cyclone II或Xilinx Spartan 芯片的现场可编程门阵列(FPGA)。 持久性存储器设备203可以包括固态存储器设备,诸如但不限于第二代安全数字闪存卡或 CompactFlash 卡和对应的驱动。易失性存储器设备202可以包括动态RAM(DRAM),诸如第二代双倍数据速率动态随机存取存储器(DDR2 DRAM)。易失性存储器设备202 (也被简称为“易失性存储器”)可以具有它自身的备用电源设备213,其可以在HSD 120没有从主计算机110接收电力时在有限持续时间提供电力。备用电源设备213可以包括可充电电池, 其可以通过在对HSD 120的电力丧失时期期间提供电力以维护易失性存储器202中的数据来帮助增加HSD 120的可靠性。存储驱动接口控制器208可以是与HSD 120待被耦接到的外部设备(例如,主计算机110)所支持的盘接口类型中的一个相对应的任何盘接口,包括诸如SATA、SCSI和IDE的标准盘接口。模块208和209中的一个或两者可以以软件、固件、硬件或使用其组合来实现。例如,实现模块208和209的功能的全部或部分的计算机程序可以以任何计算机编程语言编写,包括C、C++、Java、Assembly (汇编),或以诸如硬件定义语言(HDL)的语言编写为特定于硬件的逻辑定义。模块208和209的程序逻辑然后可以由处理器201执行。存储器加载模块209包括下述程序逻辑使处理器201能够将文件系统从持久性存储器设备203加载入易失性存储器202,并且使易失性存储器202中的该文件系统对耦接到处理器201的其他设备来说可访问。存储驱动接口控制器模块208包括用于下述的程序逻辑使处理器201 能够允许经由存储驱动接口 206访问易失性存储器202中的文件系统。存储驱动接口控制器模块208结合存储驱动接口设备206允许通过连接器211耦接到HSD 120的诸如主计算机110的外部设备以与访问对主计算机110来说是本地的文件系统相似的方式访问存储在易失性存储器202中的文件系统。例如,如果存储驱动接口控制器208遵从SATA盘接口标准,则其可以包括用于下述的程序逻辑使用处理器201来实现对应的SATA处理状态机。 在下面参考图3-5提供了如何实现该功能的详细说明。在一些实施例中,配置设备214可以用于配置和初始化HSD 120的各个方面。例如,配置设备214可以包括用于下述的功能对持久性存储器设备203进行初始化和格式化。配置设备214可以包括下述接口 连接到外部输入/输出设备以使得能够接收手动和 /或编程给予的配置命令。配置设备214可以包括到处理器201的连接,其符合允许标准配置和分析设备被耦接到HSD 120的JTAG(即,题为标准测试访问端口和边界扫描架构的 IEEE 1149. 1标准)标准。配电器设备210可以向HSD 120提供电力。在一些实施例中,配电器设备210可以包括电池充电。在一些实施例中,配电器设备210可以通过电力连接器212从诸如主计算机110的外部设备获取电力。例如,SATA盘接口标准指定通信接口以及电力接口。当HSD 120被耦接到主计算机110时,持久性存储器设备203中的压缩文件系统可以被加载到易失性存储器202,并且在易失性存储器202中解压缩。在一些实施例中,HSD 120可以在其被耦接到主计算机110之前使文件系统加载入易失性存储器202中的RAM盘中。此后,在主计算机110中执行的进程可以以与访问对主计算机110来说是本地的文件系统相似的方式访问易失性存储器202中的文件系统。通过盘接口控制器208和主计算机 110上的对应的盘接口(例如,盘接口控制器112)使访问便利。在下面描述了在实现该功能和其他功能时的处理阶段的描述。其他示例实施例在一个实施例中,主计算机在上电和基本初始化之后将前进到识别本地连接的存储。典型地,为了识别本地连接的设备,主计算机在其接口上发出探测命令。例如,在上电和基本初始化之后,主计算机110初始化主盘控制器112,并且前进到在包括接口 130的接口上发出探测命令。基于针对探测命令所接收到的响应,主计算机110可以识别诸如HSD 120的存储设备。随后,主计算机识别引导设备,以及内核被读取并且起动。在内核被起动之后,主计算机可以安装任何连接的存储,包括诸如HSD 120。在RS 120被安装之后,主计算机110可以通过发出存储命令来访问驻存在HSD 120上的任何文件系统。图3图示了使诸如主计算机110的外部设备能够访问在例如HSD120的HSD中的易失性存储器中维护的文件系统的例行程序300 (阶段301-30 。在阶段301,使HSD的起动开始。例如,当HSD被连接到已经上电的主计算机时,或当接通到已连接到HSD的主计算机的电力时,可以使HSD的起动开始。在下面参考图4可以得到阶段301的剖析。将先前存储在诸如持久性存储器设备203的持久性存储器设备中的第一信息集(诸如文件系统) 加载入诸如易失性存储器202的HSD的易失性存储器中。第一信息集可以是完整的文件系统,诸如符合文件系统格式的根文件系统,所述文件系统格式诸如但不限于第二扩展文件系统(EXT2)。文件系统格式定义在存储介质中如何组织数据。加载可以促使文件系统的数据被带入易失性存储器中并且被解压缩。在阶段302,可以在易失性存储器中创建RAM盘, 以及RAM盘可以填充有从持久性存储器设备导入的文件系统。易失性存储器可以足够大以将整个解压缩的文件系统保持在RAM盘中。在一个实施例中,HSD的易失性存储器中的RAM 盘可以包含根据诸如EXT2的文件系统格式组织的根文件系统,以及指示该RAM盘所表示的存储卷是可引导的存储设备的数据结构。例如,主计算机可以预期可引导的存储设备的第一扇区具有指示该设备是可引导的特定数据标记。在阶段302,可以将第二信息集,典型地来自第一信息集的相对较小量的数据,从 HSD上的易失性存储器导出到主计算机上的动态存储器,诸如主计算机110上的本地RAM 113。例如,可以将文件系统的inode表的一部分,即描述该文件系统的元数据,导出到主计算机。文件系统的inode表包括识别和访问文件系统中的文件所需的基本信息。对元数据的传送可以由HSD或主计算机发起。由于待被传送的数据量的减少,将仅仅元数据传送到主计算机的本地RAM通常比传送文件系统的文件快得多。在接收了元数据,在阶段303,主计算机现可以访问文件系统。例如,在Linux系统中,一旦初始内核映像接收描述RAM盘中的根文件系统的inode表,内核然后可以前进到安装根文件系统。在根文件系统被安装之后,在主计算机上执行的进程可以开始访问根文件系统中的各种文件。对根文件系统的访问可以通过主计算机向HSD发出读写命令来进行。 读写命令由例如存储接口控制器208根据选择的接口协议来处理。在使用Linux操作系统的实施例中,总的来说,在安装根文件系统的最初所需部分之后,内核定位根文件系统中的一个或多个文件(例如,/sbin/init),其然后被执行来初始化实现主计算机的大部分功能的服务和用户进程。Init文件基于在启动时间提供给内核的参数或通过内核搜索一系列预确定的位置来定位。由init文件发起的进程然后可以访问根文件系统中的其他文件(例如,在一些Linux和UNIX系统中的/etc/rc. d)以调用其他用户进程。每次内核访问目录以找到、读或写入文件,包含该文件(或该文件的部分)的存储器块通常被带入本地RAM。随着处理进行,以及本地RAM被填满,可以实现分页系统,其将一些数据块从本地RAM交换出以为从文件系统进入的新数据块腾出空间。在本发明的一些实施例中,例如,如果正从本地存储器被分页出来的数据块包含一些更新,则该块可以被可选地写入HSD中的易失性存储器中的区域。将数据块分页出到易失性存储器而不是盘存储可以通过减少访问非易失性存储介质的频率来提高执行进程的速度。在本发明的实施例中,总的来说,包括实际文件的整个文件系统目录结构(或其必要部分)在被主计算机中的内核所需要时已在HSD的易失性存储器中。存在于HSD的易失性存储器中的文件系统对于内核来说作为具有根文件系统的直接附接的盘出现。因此, 本地RAM可以保持仅仅元数据和仅仅与内核或相关应用所实际访问的那些相对应的数据块 。不必在本地RAM中维护整个根文件系统或其大部分允许本地RAM被用于大量其他处理任务。图4更详细地示出根据本发明的一些实施例的阶段301。在接收到HSD的电力时, 在阶段401,初始化HSD的处理器。处理器的初始化通常由驻存于只读存储器(ROM)中的被简称为BIOS (基本输入/输出系统)的代码开始,以及可以包括标准处理器上电步骤,诸如但不限于上电自测、其他硬件组件的初始化、初始化操作系统(一旦被加载)可以使用来访问各种设备和处理器提供的服务的低层级系统例程、以及还有初始化HSD的随带易失性存储器和RAM。例如,在HSD 120中,静态RAM设备205可以存储BIOS指令以使初始化HSD 开始。阶段402和403可以按照任何顺序或并行执行。在阶段402,HSD的处理器初始化存储驱动接口控制器。例如,参见回图2,处理器201可以执行指令来初始化存储驱动接口控制器208,其被设计成与主计算机110上的对应的盘控制器交互。存储设备接口控制器可以对从主计算机接收到的探测命令和识别命令作出响应,以使主计算机能够识别出HSD。 HSD上的处理器还可以执行持久性存储器设备的类型和完整性的检测和相关健全检查。例如,处理器可以验证带有可验证的校验和的可加载的文件系统在持久性存储器设备中可获得。在一个实施例中,该初始化可以包括例如但不限于SATA控制器状态机的初始化。在阶段403,HSD中的处理器可以触发用于将文件系统从持久性存储器设备复制入HSD的易失性存储器的信号。这样的信号还可以由主计算机产生。加载文件系统的信号可以促使处理器调用并且执行用于下述的指令将文件系统从持久性存储器设备加载入易失性存储器,并且在易失性存储器中将文件系统解压缩。例如,参见回图2,复制文件系统的信号可以促使处理器201执行存储器加载器模块209的用于下述的程序逻辑将压缩的文件系统整体或部分加载到易失性存储器202并且在易失性存储器202中将它解压缩。此后,驻存于易失性存储器202中的解压缩的文件系统对主计算机110来说如同另一个盘驱动可以是可见的,对其的访问通过存储驱动接口控制器208来协调。在本发明的实施例中, 第一信息集可以包括在HSD的易失性存储器中被解压缩并且根据文件系统格式来组织的根文件系统,以及在易失性存储器中的使主计算机能够将易失性存储器中的文件系统识别为例如可引导盘存储卷的数据结构。例如,主计算机可以预期可引导盘卷的第一盘扇区包含引导设备指示符,如果其是可引导的。基于文件系统格式和盘接口协议,引导设备指示符可以被写在例如易失性存储器中的与盘存储介质的第一扇区中的最后字相对应的区域。在阶段404,HSD为从主计算机接收到的存储命令服务。例如,可以使用在阶段402 在存储设备控制器208中初始化的SATA控制器状态机来接收并且处理从主计算机接收到的读写命令。图5是根据本发明的实施例的阶段303的分解。在涉及文件系统的元数据被传送到主计算机的本地RAM之后,主计算机的进程可以前进到访问文件系统的文件和目录。例如,在阶段501,在主计算机的处理器上执行的进程可以请求针对文件系统中的文件的读或写操作。在阶段502,检查inode表以查看HSD的主计算机的本地RAM是否已在其存储器中包含所需要的文件或文件的部分。如果所需要的文件或文件的部分不在本地RAM中,则 inode表将指向该数据在可移动存储驱动中的存在。 在阶段503,处理器确定所需要的数据在HSD的易失性存储器中的文件系统中,并且发起将相关数据块传送到主计算机的本地RAM的进程。注意到,在许多实施例中,存在于 HSD的易失性存储器中的文件系统和目录结构对主计算机来说可以作为标准盘和目录结构出现。例如,对于主计算机,HSD和其RAM盘可以作为使用SATA接口可访问的盘出现。在下面参考图6进一步描述了包括在503中的传送进程。一旦在阶段503,将所需要的数据块传送入主计算机的本地RAM,在阶段504,就根据调用进程的权限来使能对所述块的读/ 写。如果,在阶段504,调用进程执行针对数据块的写操作,在一些实施例中,在阶段505,更新将被直接写入HSD上的易失性存储器中的对应的块。在一些其他实施例中,在阶段504 进行的更新可以不以连续直接的方式执行,替代地,可以以时间间隔或在从用户接收保存更新的指令时执行。注意到,例如在阶段505,对HSD中的易失性存储器进行的更新可以在易失性存储器中保留,直到在一些实施例中用户传达保存更新的指令。为了保存更新,将易失性存储器的内容以适当的格式写入持久性存储器设备。如果在HSD中发生电力丧失(例如,顷刻之间与主计算机失去耦接),则在电力恢复之前,或在更新被写入持久性存储器设备之前,附接到HSD的易失性存储器的电源可以保护数据和更新,如果被配置成这样做。如果HSD中的易失性存储器中的数据不由HSD上的电源保护,则当重新启动主计算机时,干净的文件系统在附接的HSD上可以是可获得的。图6图示了根据本发明的实施例将数据从HSD的易失性存储器加载入主计算机的本地RAM的阶段503的分解。在从用户进程接收了例如访问一些数据的写命令,并且确定了该数据当前不存在于主计算机本地RAM中,在阶段601,在主计算机处理器中执行的内核调用负责与HSD对接的盘控制器。在阶段602,主盘控制器根据用来与HSD对接的协议来生成命令。在阶段603,在HSD中的对应的盘控制器接收检索对应的文件的命令。在阶段 604,HSD的处理器可以处理所接收到的命令来验证该命令,并且将该命令翻译成HSD中的程序和设备理解的格式。在阶段605,使用经翻译的命令,从HSD的易失性存储器检索适当的数据。在阶段606,然后HSD中的处理器将该数据提供给HSD上的盘控制器接口,以被传送给发出请求的主计算机。在阶段607,所传送的数据然后由主计算机中的盘控制器接收, 并且被加载入主计算机中的本地RAM。发出请求的进程现可以访问主计算机的本地RAM中的相关数据。在本发明的另一个实施例中,HSD可以被用作为虚拟存储器和/或分页存储器的位置。例如,因为HSD的易失性存储器对主计算机来说呈现为标准盘驱动,主计算机可以将部分或全部其虚拟存储器空间映射到HSD的易失性存储器。同样,主计算机可以将HSD的易失性存储器用于将存储器页交换入和交换出其本地RAM。使用HSD的易失性存储器相对于将本地持久性存储器设备用作为虚拟存储器和分页存储器的位置的常规方法可以导致提高的性能,因为减少了盘访问(或更一般地,对持久性存储器设备的访问)。在这些应用中,HSD中的持久性存储器设备通常对主计算机保持透明。在本文档中公开了在一些实施例中具有文件系统的压缩映像的HSD,所述文件系统的压缩映像可以被快速地解压缩入随带易失性存储器,使得易失性存储器中的文件系统可以由主计算机以与其访问盘驱动几乎一样的方式访问。如上所述,本发明的一个实施例可以是保持根文件系统的HSD。使根文件系统在相对较快的易失性存储器而不是相对较慢的闪存中改善了访问延迟。其还提高了系统对安全隐患的弹性,因为对文件系统的改变保留在易失性存储器中,直到专门指示保存到持久性存储器。其改善了部署的时间和修复使用可配置的根文件系统的设备的时间。本发明的实施例的另一个方面是需要很少或不需要对许多操作系统的编程代码的修改。例如,在Linux的许多变体中,根据本公开的教导构建的HSD将被主计算机的处理器识别为外部盘,并且可能仅仅需要托管HSD的接口在起动时被指定为内核的参数。另外,可移动存储可以用于存储和访问除根文件系统外的文件系统。HSD还可以用作快速缓存设备或虚拟存储器以对主计算机的本地存储器进行补充。发明内容和摘要部分可以阐明发明人预期的本发明的一个或多个而非所有的示例性实施例,因此发明内容和摘要部分并不意在以任何方式来限制本发明和权利要求。在上面借助于说明指定的功能及其关系的实现的功能构造块来描述了本发明。在此为了便于描述,任意地限定了这些功能构造块的边界。可以限定替选边界,只要所述指定的功能及其关系被适当地执行。 特定实施例的前述描述如此充分地揭示了本发明的一般特性,使得其他人可以在不背离本发明的一般思想的情况下,通过应用在本领域的技术内的知识而容易地修改和/ 或调整这样的特定实施例以用于各种应用,而不用进行过度的实验。因此,基于在此提供的教导和指导,这样的调整和修改意在在所公开的实施例的等同物的含义和范围内。应当明白的是,在此的措词或术语用于描述而非限制的目的,因此本说明书的术语或措词应当由技术人员根据所述教导和指导来解释。本发明的宽度和范围不应当由上述示例性实施例的任何一个限制,而是应当仅根据权利要求及其等同物来限定。
权利要求
1.一种混合存储设备,包括持久性存储器设备;易失性存储器设备;处理器,其中所述持久性存储器设备和所述易失性存储器设备耦接到所述处理器;存储器加载器模块,所述存储器加载器模块使所述处理器能够从所述持久性存储器设备加载第一信息集,以及在所述易失性存储器设备中根据预确定的格式来组织所述第一信息集;以及存储驱动接口控制器模块,所述存储驱动接口控制器模块使所述处理器能够从耦接到所述混合存储设备的主计算机接收信息访问请求、使用所述易失性存储器设备中的所述第一信息集来对所述信息访问请求作出响应、以及向所述主计算机提供描述所述第一信息集的元数据,由此,使所述主计算机能够使用所述元数据来访问所述第一信息集,而不用使所述第一信息集在所述主计算机的本地存储器中,以及由此,通过使所述第一信息集存储在所述易失性存储器设备中减少了所述主计算机访问所述第一信息集所需的时间。
2.根据权利要求1所述的混合存储设备,其中所述第一信息集包括文件系统,以及其中所述预确定的格式是文件系统格式。
3.根据权利要求2所述的混合存储设备,其中所述文件系统是根文件系统。
4.根据权利要求2所述的混合存储设备,其中所述第一信息集进一步包括根据所述文件系统格式的弓I导设备指示符。
5.根据权利要求1所述的混合存储设备,其中所述信息访问请求包括存储服务命令。
6.根据权利要求1所述的混合存储设备,其中所述持久性存储器设备包括固态存储器介质。
7.根据权利要求1所述的混合存储设备,其中所述处理器包括现场可编程门阵列 (FPGA)。
8.根据权利要求1所述的混合存储设备,进一步包括静态随机存取存储器(静态RAM)设备,其中所述静态RAM设备耦接到所述处理器。
9.根据权利要求1所述的混合存储设备,进一步包括配置设备,其中所述配置设备耦接到所述处理器,由此,所述配置设备用于配置所述持久性存储器设备。
10.根据权利要求1所述的混合存储设备,进一步包括配电器设备,所述配电器设备向所述装置提供电力。
11.根据权利要求10所述的混合存储设备,其中所述配电器设备包括电池充电,以及其中所述装置从所述电池充电来被供电。
12.根据权利要求1所述的混合存储设备,进一步包括耦接到所述易失性存储器设备的备用电源,其中如果所述装置中电力丧失则所述备用电源向所述易失性存储器设备提供电力,由此,所述易失性存储器设备中的所述第一信息集被保留,使得减少了使所述第一信息对所述主计算机可获得所需的时间。
13.根据权利要求1所述的混合存储设备,进一步包括状态监视设备,其中所述状态监视设备监视以下中的一个或多个所述处理器、所述持久性存储器设备、所述易失性存储器设备、所述存储器加载器模块以及所述存储驱动接口控制器。
14.一种系统,包括 主计算机;以及耦接到所述主计算机的混合存储设备,其中所述混合存储设备包括 持久性存储器设备; 易失性存储器设备;处理器,其中所述持久性存储器设备和所述易失性存储器设备耦接到所述处理器; 存储器加载器模块,所述存储器加载器模块使所述处理器能够从所述持久性存储器设备加载第一信息集,以及在所述易失性存储器设备中根据预确定的格式来组织所述第一信息集;以及存储驱动接口控制器,所述存储驱动接口控制器使所述处理器能够从所述主计算机接收信息访问请求、使用所述易失性存储器设备中的所述第一信息集来对所述信息访问请求作出响应、以及向所述主计算机提供描述所述第一信息集的元数据,由此,使所述主计算机能够使用所述元数据来访问所述第一信息集,而不用使所述第一信息集在所述主计算机的本地存储器中,以及由此,通过使所述第一信息集在所述易失性存储器中减少了所述主计算机访问所述第一信息集所需的时间。
15.一种方法,包括将混合存储设备耦接到主计算机;将第一信息集从持久性存储器设备加载到易失性存储器设备,以及在所述易失性存储器设备中根据预确定的格式来组织所述第一信息集,其中所述持久性存储器设备和所述易失性存储器设备位于所述混合存储设备中;将描述所述易失性存储器设备中的所述第一信息集的元数据提供给本地随机存取存储器(本地RAM),其中所述本地RAM位于所述主计算机中;以及使用位于所述本地MM中的所述元数据来访问第二信息集,其中位于所述易失性存储器设备中的所述第一信息集包括所述第二信息集。
16.根据权利要求15所述的方法,其中所述加载第一信息集包括 访问位于所述持久性存储器设备中的压缩的数据映像;以及从所述压缩的数据映像生成解压缩的数据映像,其中所述解压缩的数据映像位于所述易失性存储器设备中。
17.根据权利要求16所述的方法,其中所述第一信息集包括根文件系统。
18.根据权利要求15所述的方法,其中所述访问第二信息集包括检查目标数据块在所述本地RAM中的存在,其中所述目标数据块包括所述第二信息集;将所述目标数据块从所述易失性存储器设备加载入所述本地RAM ; 在所述本地RAM中写所述目标块;以及在所述易失性存储器设备中更新所述目标块。
19.一种方法,包括将混合存储设备耦接到主计算机;将第一信息集从持久性存储器设备加载到易失性存储器设备,以及根据预确定的格式来组织所述第一信息集,其中所述持久性存储器设备和所述易失性存储器设备位于所述混合存储设备中;将访问信息加载到本地随机存取存储器(本地RAM),其中所述本地RAM位于所述主计算机中,以及其中所述访问信息包括访问所述易失性存储器中的所述第一信息集所必需的信息;以及使用位于所述本地RAM中的所述访问信息将第二信息集从本地RAM写入所述易失性存储器设备。
全文摘要
在一个实施例中,公开了一种混合存储设备,其包括持久性存储器;易失性存储器;处理器;存储器加载器模块,其使处理器能够将第一信息集从持久性存储器设备加载到易失性存储器设备、根据预确定的格式来组织第一信息集;以及存储驱动接口控制器,其使处理器能够从主计算机接收信息访问请求、将第二信息集从易失性存储器设备提供到主计算机、以及向主计算机提供描述第一信息集的元数据。使主计算机能够使用存储驱动接口控制器提供的元数据来访问第一信息集,而不用使第一信息集在主计算机的本地存储器中。通过使第一信息集在混合存储设备中的易失性存储器中减少了访问第一信息集所需的时间。其他实施例包括具有主计算机和混合存储设备的系统以及在主计算机中使用混合存储设备的方法。
文档编号G06F3/06GK102439557SQ201080021382
公开日2012年5月2日 申请日期2010年3月19日 优先权日2009年3月20日
发明者查克·麦克马尼斯 申请人:谷歌公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1