涡轮引导系统和方法

xiaoxiao2020-7-22  4

专利名称:涡轮引导系统和方法
技术领域
本公开涉及引导系统。
背景技术
在此所提供的背景技术是为了概括地呈现本公开内容的上下文的目的。对于在此背景技术部分中描述的工作的程度,目前所称的发明人的工作、以及在提交时没有另外认作现有技术的本说明书的方面,既不被明示也不被默示作为针对本公开内容的现有技术。计算机在切换到加电状态之后执行引导过程。引导过程包括基本输入/输出系统 (BIOS)模式和操作系统模式。在BIOS模式期间,在引导加载程序过程之后执行预引导或加电自检(POST)过程。POST过程初始化某些硬件并且执行主引导记录以加载和执行引导加载程序过程。引导加载程序过程加载操作系统内核以及包括引导盘控制器驱动器和盘驱动器的各种设备驱动器。用于Windows NT 的示例引导加载程序是NT加载程序(NTLDR)。 引导加载程序或NTLDR加载并且执行操作系统(OS)内核,诸如Windows NT OS内核 (NT0SKRNL)。在操作系统模式期间,配置OS并且加载和初始化自启动驱动器。自启动驱动器和其他软件代码从HDD加载并执行。其他软件代码可以与OS的配置相关联,和/或可以与各种服务和程序应用相关联。服务可以包括设备管理器服务、安全服务、网络连接服务、打印服务、电子邮件(email)服务等。程序应用例如可以包括web浏览、电子邮件和文字处理应用。在操作系统模式期间,在配置OS之后激活图形用户界面(GUI)并且使能登录模式。登录模式包括服务的加载和执行。登录模式基于输入的用户名和口令来用于加载用户简档。在完成登录之后可以执行程序应用。操作系统在大小和复杂性上日益增加。软件驱动器、服务和应用的数量以及引导期间访问的关联代码和/或数据的量也在增加。因此,操作系统引导时间在增加。

发明内容
在一个实施方式中,提供一种包括硬盘驱动和非易失性半导体存储器的计算机系统。硬盘驱动存储包括引导数据的第一数据集合。非易失性半导体存储器与硬盘驱动的半导体存储器和计算机系统的主机的半导体存储器不同。涡轮引导驱动器模块在非易失性半导体存储器中存储引导数据,并且在主机的引导模式期间从非易失性半导体存储器向主机的文件系统传送引导数据。
在其他特征中,涡轮引导驱动器模块在包括引导数据的非易失性半导体存储器中存储第二数据集合。在其他特征中,涡轮引导驱动器模块包括学习模块,该学习模块在主机的第一引导期间捕获引导数据,并且将其存储在非易失性半导体存储器中。涡轮引导驱动器模块在主机的第二引导期间向文件系统传送存储在非易失性半导体存储器中的引导数据。在其他特征中,计算机系统还包括文件系统和盘存储驱动器中的至少一个,盘存储驱动器生成用以访问存储在硬盘驱动中数据的数据访问请求。涡轮引导驱动器模块访问存储在非易失性半导体存储器中的数据以满足数据访问请求。在其他特征中,计算机系统还包括文件系统和盘存储驱动器中的至少一个,盘存储驱动器生成用以更新存储在硬盘驱动中数据的数据访问请求。涡轮引导驱动器模块基于数据访问请求来更新存储在非易失性半导体存储器中的数据。在其他特征中,涡轮引导驱动器模块从硬盘驱动访问第一引导数据集合,并且从非易失性半导体存储器访问第二引导数据集合。在其他特征中,涡轮引导驱动器模块基于来自于文件系统和盘存储驱动器中至少一个的数据访问请求,来访问第一引导数据集合和第二引导数据集合。在其他特征中,涡轮引导驱动器模块包括存储映射模块,该存储映射模块将硬盘驱动中存储的数据映射到非易失性半导体存储器中存储的数据。在其他特征中,计算机系统还包括盘存储驱动器,从文件系统接收硬盘驱动数据访问请求。涡轮引导驱动器模块,基于硬盘驱动数据访问请求来生成非易失性半导体存储器数据访问请求。半导体存储器驱动器,基于非易失性半导体存储器数据访问请求,来经由半导体控制驱动器和半导体存储器接口访问非易失性半导体存储器。在其他特征中,计算机系统还包括存储驱动器,从文件系统接收硬盘驱动数据访问请求。涡轮引导驱动器模块基于硬盘驱动数据访问请求,来生成非易失性半导体存储器数据访问请求。存储控制模块,基于非易失性半导体存储器数据访问请求,来经由半导体存储器接口访问非易失性半导体存储器。在其他特征中,涡轮引导驱动器模块包括具有预定引导时段的引导定时器。涡轮引导驱动器模块在引导模式期间在非易失性半导体存储器中存储从硬盘驱动捕获的所有或某些弓I导数据,直到预定引导时段失效。在其他特征中,涡轮引导驱动器模块包括压缩和解压缩模块,该压缩和解压缩模块在非易失性半导体存储器中存储之前压缩引导数据;以及在从非易失性半导体存储器访问时将存储的弓I导数据解压缩。在又一其他特征中,可以通过一个或多个处理器执行的计算机程序来实现上述系统和方法。该计算机程序可以驻留在计算机可读介质上,诸如但不限于存储器、非易失性数据存储设备和/或其他合适的有形存储介质。本公开的其他应用领域将从详细的描述、权利要求书和附图中变得明显。详细的描述和特定示例仅出于示范的目的而不旨在限制本公开的范围。


根据详细描述和附图,将更全面地理解本公开,在附图中图1是根据本公开实施方式的、并入不同盘和半导体存储器控制模块的计算机系统的功能框图;图2是根据本公开实施方式的、并入存储控制模块的计算机系统的功能框图;图3是示出了根据本公开实施方式的、引导数据和软件存储的计算机系统的功能框图;图4是示出了根据本公开实施方式的、在使用不同盘和半导体存储器模块盘驱动器操作之后的涡轮引导驱动器操作的存储系统的功能框图;图5是示出了根据本公开实施方式的、在使用不同盘和半导体存储器模块盘驱动器操作之前的涡轮引导驱动器操作的存储系统的功能框图;图6是示出了根据本公开实施方式的、在存储驱动器操作之后的涡轮引导驱动器操作的存储系统的功能框图;图7是示出了根据本公开实施方式的、在存储驱动器操作之前的涡轮引导驱动器操作的存储系统的功能框图;图8是根据本公开实施方式的涡轮引导驱动器的功能框图;图9是根据本公开实施方式的引导时序图;图10示出了根据本公开实施方式的、引导期间加载数据的方法;以及图11示出了根据本公开实施方式的、基于捕获的引导数据向存储设备写入数据的方法。
具体实施例方式以下描述本质上仅是示例性的,并且不旨在以任何方式限制本公开、其应用或使用。出于清楚的目的,相同的参考标号在图中用于标识类似的元件。如此处所用,短语A、B 和C中至少一个应被认为意味着逻辑上的(A或B或C),使用非排他性逻辑OR。应该理解, 在不改变本公开的原理的情况下,方法内的步骤可以以不同的顺序执行。如这里使用的,术语模块可以表示包括执行一个或多个软件或固件程序的专用集成电路(ASIC)、电子电路、处理器(共享、专用或分组)和/或存储器(共享、专用或分组)、 组合逻辑电路和/或提供所述功能的其他合适组件,或是其一部分。同样如这里使用的,术语主机和计算机可以表示台式计算机、膝上型计算机、一体式计算机和/或手持计算机。主机或计算机可以表示PDA、便携式计算设备、蜂窝电话等。此外,如此处所用,术语非易失性半导体存储器(NVSM)可以表示任何合适类型的半导体或固态存储器,诸如闪存(包括NAND和NOR闪存)、相变存储器、磁RAM和多态存储器。在多态存储器中,每个存储器单元具有不止两个状态。术语非易失性半导体存储器不表示硬盘驱动(HDD)或HDD的半导体存储器。如此处所用,HDD可以包括具有控制模块和半导体存储器的HDD印刷电路板,以及具有磁存储介质或盘和读/写设备的HDD配件。非易失性半导体存储器可以表示固态驱动(SSD)。在以下图1至图3中,利用实线框和虚线框来示出条目。实线框标识所存储数据的原始位置。虚线框标识为了随后的使用而将所存储数据传送和/或复制到的位置。在图1中,示出了计算机系统10,该计算机系统10包括主机12、HDD 14和NVSM 16。主机12可以是在主机12引导期间和之后访问HDD 14和/或NVSM 16上的数据的计算机和/或主板。主机12包括主机控制模块18和系统存储器20。主机控制模块18经由盘控制模块22和HDD接口 M与HDD 14通信。主机控制模块18经由半导体存储器控制模块沈(例如,闪存控制)和半导体存储器接口观与NVSM 16通信。NVSM 16不同于主机14 的半导体存储器(例如,不同于主机14的半导体存储器)。NVSM可以插入半导体存储器接口 28,该半导体存储器接口洲可以连接至主机14。在引导期间,主机控制模块18从HDD 14将涡轮引导驱动器30加载到系统存储器20的随机访问存储器(RAM)32中。涡轮引导驱动器30用于捕获从HDD 14访问的引导数据、在第一引导期间在NVSM 16中存储该引导数据,以及在第一引导之后的引导期间从 NVSM 16访问引导数据。这减少了引导时间。第一引导可以表示引导计算机系统的第一时间,或可以表示在安装和使能涡轮引导之后的学习模式期间执行的引导。主机控制模块18可以包括处理器,诸如中央处理单元(CPU)。主机控制模块18可以激活或执行涡轮引导驱动器30。在涡轮引导驱动器30执行期间,主机控制模块18可以作为涡轮引导驱动器模块操作并且可以以多个模式操作,该多个模式包括学习模式、后学习模式、双存储访问模式和更新模式。在学习模式中,捕获在主机12引导期间在HDD 14中访问的数据,并且将其存储在NVSM 16中。在后学习模式中,在主机12引导期间,从HDD 14 和/或NVSM 16访问数据。在双存储访问模式中,在主机12弓丨导期间,从HDD 14和NVSM 16两者访问数据。在更新模式中,在HDD 14中更新的、在学习模式中捕获的数据也在NVSM 16中被更新。系统存储器20包括只读存储器(ROM) 34和RAM 32。ROM 34可以用于存储基本输入/输出系统¢10 36,该BIOS 36包括加电自检(POST)数据38。ROM 34可以包括可擦除可编程ROM(EPROM)。RAM 32可以包括双数据速率同步动态RAM(DDRSDRAM)、动态 RAM(DRAM)、静态 RAM(SRAM)等。盘控制模块22可以包括HDD 14的控制操作以及软件和/或硬件。半导体存储器控制模块26可以包括NVSM 16的控制操作以及软件和/或硬件。在图1的实施方式中,盘控制模块22和半导体存储器控制模块沈是不同的设备。在图2中,示出了计算机系统50。计算机系统50类似于图1的计算机系统10。计算机系统50包括存储控制模块52以代替盘控制模块和半导体存储器控制模块。仅作为示例,存储控制模块52可以包括在北桥/南桥配置中。存储控制模块52可以是或包括在南桥控制模块中。计算机系统50包括主机12' , HDD 14和NVSM 16。主机12'包括主机控制模块 18'和系统存储器20。主机控制模块18'使用HDD接口和半导体存储器接口观‘, 经由存储控制模块52与HDD 14和NVSM 16通信。HDD 14存储被配置用于向和从存储控制模块22传送数据、和从存储控制模块22传送数据的涡轮引导驱动器30'。在图3中,图示了示出引导数据和软件存储的计算机系统80。计算机系统80包括主机控制模块82、存储控制模块84、ROM 86和RAM 88,它们可以包括在主机中。主机控制模块82经由存储控制模块84以及相应的HDD和半导体存储器接口 94、96来访问HDD90 和NVSM 92。主机控制模块82可以在主机引导期间和之后,经由盘控制模块93和存储控制模块84的半导体存储器控制模块95访问HDD 90和/或NVSM 92上的数据。ROM 86、RAM 88, HDD 90和NVSM 92用于在计算机系统80引导之前、期间和之后存储某些数据。ROM 86在计算机系统80引导之前、期间和之后存储包括P0ST102的BIOS 110的第一 BIOS部分100。RAM 88可以在引导期间和之后存储第一驱动器集合104、第二驱动器集合106、0S数据108、BI0S 110、应用程序114和/或其他引导数据116。BIOS 110可以包括第一 BIOS部分100和包括引导加载程序120的第二 BIOS部分118。其他引导数据116 可以包括引导配置数据。OS数据108可以包括具有文件系统IM和其他OS数据1 的OS 内核122。其他OS数据1 可以包括OS配置数据。第一驱动器集合104可以包括盘驱动器130、半导体存储器驱动器132和涡轮引导驱动器134。盘驱动器130可以包括盘存储驱动器和盘控制驱动器,诸如图4至图7中示出的。盘存储驱动器用于控制HDD 90的操作。盘控制驱动器用于控制存储控制模块84的盘控制模块93的操作。半导体存储器驱动器132可以包括半导体存储驱动器和半导体控制驱动器,诸如图4至图7中示出的。半导体存储驱动器控制非易失性半导体存储器92的操作。半导体控制驱动器控制半导体存储器控制模块95的操作。第二驱动器集合106可以包括系统和自启动驱动器140。例如,系统和自启动驱动器140可以包括数字订户线(DSL)驱动器、线缆驱动器、通用串行总线(USB)驱动器、局域网(LAN)驱动器、安全驱动器等。第一驱动器集合104和第二 BIOS部分118可以在引导期间从HDD 90向RAM 88 加载。第二驱动器集合106、应用程序114、其他引导数据116和其他OS数据1 可以在引导期间从HDD 90和/或NVSM 92向RAM 88加载。第一 BIOS部分100可以在引导期间从 ROM 86 向 RAM 88 加载。在引导期间,主机控制模块82使用存储控制模块84从HDD 90将涡轮引导驱动器 134加载到RAM 88中。存储控制模块84可以包括盘控制模块93和半导体存储器控制模块 95。在第一引导的学习模式期间,可以捕获从HDD 90向RAM 88加载的数据并且将其存储在NVSM 92中。在第一引导之后的引导期间,可以从NVSM 92向RAM88加载数据,从而减少引导时间。计算机系统可以针对第一引导和周期性的随后的引导以学习模式操作,从而更新NVSM 92的内容。在图3的实施方式中,HDD 90被示出为引导数据的原始引导源,因为HDD 90是引导数据的初始源。NVSM 92用于对存储在HDD 90中的某些引导数据进行镜像。NVSM 92可以基于引导时间而不基于引导数据的类型,来对引导数据进行镜像。例如,主机控制模块 82可以使用NVSM 92来在预定时段期间捕获在HDD 90中访问的任何数据,这可以基于时钟 150。主机控制模块82可以在预定时段失效时独立于HDD 90中访问的数据类型来停止捕获数据。相对于HDD 90,NVSM 92可以用作备选、后备和/或补充的引导数据源。尽管HDD 90示出为初始地存储了第一驱动器集合104和第二驱动器集合106、0S数据108、第二 BIOS 部分118、应用程序114和其他引导数据116,但是NVSM 92可以初始地存储这些条目并且可以用作初级和/或原始引导源。在该备选实施方式中,HDD90可以存储第二驱动器集合 106、应用程序114、其他引导数据116和其他OS数据126。HDD 90可以不存储第一驱动器集合104、第二 BIOS部分118和OS内核122。备选实施方式可以包括在第一引导期间从 NVSM 92捕获引导数据。捕获的引导数据可以存储在HDD90中以供在第一引导之后的引导期间使用。在图4中,示出了包括涡轮引导驱动器202的存储系统200。基于文件系统206针对HDD 208中存储的数据而初始生成的数据访问请求,涡轮引导驱动器202访问NVSM 204。涡轮引导驱动器202在学习模式期间从HDD 208捕获请求的数据,并且将该数据存储在NVSM 204中。涡轮引导驱动器202在后学习模式期间向文件系统206提供存储在NVSM 204中的数据。从NVSM 204向文件系统206提供的数据可以是从HDD 208提供的数据之外的数据、可以代替从HDD 208提供的数据、可以与从HDD 208提供的数据相同和/或不同。 HDD 208和NVSM 204可以向文件系统206同时和/或在相同时段期间提供数据。存储系统200还包括盘存储驱动器210和半导体存储器驱动器212,它们可以与文件系统206直接通信(即,没有中介模块或通信设备)或直接连接至文件系统206,并且分别用于控制HDD 208和NVSM 204的操作。涡轮引导驱动器202位于盘存储驱动器210 和盘控制驱动器214之间,以及位于半导体存储器驱动器212和半导体控制驱动器216之间。盘存储驱动器210可以基于从文件系统206接收的数据访问请求来生成HDD数据访问请求。涡轮引导驱动器202基于HDD数据访问请求和操作模式,来控制对NVSM 204和HDD 208的访问。涡轮引导驱动器202可以向盘控制驱动器214和/或半导体控制驱动器1 发信号,以分别从HDD 208和/或NVSM 204读取数据,或向HDD 208和/或NVSM 204写入数据。 该信号可以基于HDD数据访问请求和操作模式。控制驱动器214、216分别控制盘控制模块 218和半导体存储器控制模块220的操作。控制模块218、220经由HDD接口 222和半导体存储器接口 2 分别与HDD 208和NVSM204通信。可以利用来自于NVSM 204和/或HDD 208的数据来满足HDD读数据访问请求。HDD写数据访问请求可以包括在NVSM 204和/或 HDD 208中写入数据。盘存储驱动器210是基于软件的并用于与用户对接且独立于硬件。盘存储驱动器 210用于可视地表示存储系统200的盘驱动(例如,硬盘驱动208)和显示器上的盘驱动内容。盘控制驱动器214是基于软件的,并用作盘存储驱动器210和盘控制模块218之间的接口且依赖于硬件。盘存储驱动器210可以生成访问请求,向盘控制驱动器214提供该请求。 盘控制驱动器214基于来自于盘存储驱动器210的访问请求,来控制盘控制模块218的操作。盘控制模块218是基于硬件的。盘存储驱动器210可以与不同盘控制驱动器通信,并且可以专用于单个盘驱动。盘控制驱动器214可以控制多个盘驱动器。盘存储驱动器210 和盘控制驱动器214可以由OS执行,其中OS由处理器或例如由图3的主机控制模块82和 /或存储控制模块84执行。半导体存储器驱动器212是基于软件的以及用于与用户对接,并且是独立于硬件的。半导体存储器驱动器212用于可视地表示存储系统200的非易失性半导体存储器(例如,非易失性半导体存储器204)和显示器上的非易失性半导体存储器内容。半导体控制驱动器216是基于软件的,并用作半导体存储器驱动器212和半导体存储器控制模块220之间的接口,并且是依赖于硬件的。半导体存储器控制模块220是基于硬件的。半导体存储器驱动器212可以生成访问请求,向半导体控制驱动器216提供该请求。半导体控制驱动器216基于来自于半导体存储器驱动器212的访问请求,来控制半导体存储器控制模块220 的操作。半导体存储器驱动器212可以与不同盘控制驱动器通信,并且可以专用于单个盘驱动。半导体控制驱动器216可以控制多个盘驱动器。半导体存储器驱动器212和半导体控制驱动器216可以由OS执行,其中OS由处理器或例如由图3的主机控制模块82和/或存储控制模块84执行。现在还参考图5,该图示出了存储系统230。存储系统230类似于图4的存储系统 200。存储系统230包括涡轮引导驱动器202'(位于文件系统206和盘存储驱动器210‘ 以及半导体存储器驱动器212 ‘之间),以代替位于盘存储驱动器210和半导体存储器驱动器212以及盘控制驱动器214和半导体控制驱动器216之间。文件系统206生成数据访问请求。涡轮引导驱动器202'基于从文件系统206接收的数据访问请求,来生成HDD和NVSM 数据访问请求。HDD和NVSM数据访问请求分别被引导到盘存储驱动器210'和半导体存储器驱动器212'。盘存储驱动器210'和半导体存储器驱动器212'分别与盘控制驱动器214‘和半导体控制驱动器216'通信。盘控制驱动器214'和半导体控制驱动器216'使用盘控制模块218和半导体存储器控制模块220以及HDD接口 222和半导体存储器接口 224,来访问 HDD 208 和 NVSM 204。在图6中,示出了存储系统250。存储系统250类似于图4的存储系统200。代替盘存储驱动器210和半导体存储器驱动器212,存储系统250包括存储驱动器252。代替盘控制驱动器214和半导体控制驱动器216,存储系统250还包括存储控制驱动器254。存储驱动器252基于从文件系统206接收的数据访问请求来生成HDD和NVSM数据访问请求。涡轮引导驱动器202"基于该HDD和NVSM数据访问请求,来控制存储控制驱动器254的操作。存储控制驱动器2M控制存储控制模块256的操作,其分别经由HDD接口 222'和半导体存储器接口 224'来访问HDD 208和NVSM 204。在图7中,示出了的存储系统270。存储系统270类似于图5的存储系统230和图6的存储系统250。存储系统270包括存储驱动器252'和存储控制驱动器254'。文件系统206生成HDD和NVSM数据访问请求。涡轮引导驱动器202〃 ‘基于该HDD和NVSM数据访问请求来控制存储驱动器252'的操作。存储驱动器252'用于控制HDD 208和NVSM 204的操作。存储控制驱动器254'控制存储控制模块256的操作,其分别经由HDD接口 222'和半导体存储器接口 224'来访问HDD 208和NVSM 204。在上述图1至图7中,与涡轮引导驱动器30、30' ,134,202,202' ,202" ,202"‘ 相关联的驱动器、模块和接口用于与相应HDD和NVSM通信。驱动器、模块和接口可以包括内部数据总线、因特网小型计算机系统接口(iSCSI)、外围组件互连快速(PCIe)接口、串行高级技术附接(SATA)接口、串行附接SCSI (SAS)接口和/或光纤信道(FC)接口。例如,盘存储驱动器210、210'、盘控制驱动器214、214'、半导体存储器驱动器212、212‘、半导体控制驱动器216、216'、盘控制模块218、半导体存储器控制模块220、存储控制模块256、HDD 接口 24、24' 94、222、222'以及半导体存储器接口 28J8‘、96、224、224'可以是 iSCSI、 PCIe, SATA、串行SAS和/或基于FC的设备。用于与HDD和NVSM通信的驱动器、模块和接口可以是相同类型或可以是不同类型。仅作为示例,用于与HDD和NVSM通信的接口可以是 SATA类型。作为另一示例,用于与HDD通信的接口可以是SATA类型,而用于与NVSM通信的接口可以是PCIe类型。在图8中,示出了可以与主机控制模块302通信的或包括在其中的涡轮引导驱动器模块300。涡轮引导驱动器模块300可以位于图1至图7的主机控制模块中。涡轮引导驱动器模块300可以在图1至图7和图10至图11的任何一个实施方式中使用。涡轮引导驱动器模块300包括涡轮引导控制模块304,该涡轮引导控制模块304控制涡轮引导驱动器模块300的操作,并且可以执行涡轮引导驱动器,诸如图1至图7中的涡轮引导驱动器。涡轮引导驱动器模块300还包括模式选择模块305、学习模块306、后学习模块308、双存储访问模块310、更新模块312、压缩/解压缩加速器模块314、存储映射模块316和引导定时器 318。模式选择模块305可以用于选择操作模式。模式选择模块305可以根据选择的操作模式来激活模块306-318中的一个或多个。学习模块306可以在以学习模式操作时使用。在学习模式期间,可以捕获和在 NVSM中存储任何类型的引导数据。后学习模块308可以在以后学习模式操作时使用。后学习模块308可以在引导模式期间基于数据访问请求来控制对HDD和NVSM的访问。涡轮引导驱动器模块300在不同的引导周期期间以学习模式和后学习模式操作。引导周期可以表示在对计算机加电时执行的引导过程。每次对计算机加电时,计算机可以执行引导过程。学习模块306可以确定何时以学习模式操作。例如,当高速缓存未命中与高速缓存命中的比和/或高速缓存未命中与高速缓存访问总数的比超过预定阈值时,可以设置学习模式标志。学习模式标志可以指示针对下一个或随后的引导,计算机系统何时将以学习模式操作。高速缓存未命中可以表示涡轮引导驱动器模块300接收对访问引导数据的请求并且数据没有存储在NVSM中的时刻。高速缓存未命中可以发生在HDD上存储或更新引导数据并且在NVSM上没有存储或更新时。高速缓存命中可以表示涡轮引导驱动器模块300 接收对访问引导数据的请求并且数据存储在NVSM中的时刻。高速缓存访问可以表示高速缓存未命中或高速缓存命中。双存储访问模块310可以在双存储访问模式操作时使用。双存储访问模块310可以在相同时段期间控制对HDD和NVSM两者的访问。可以从HDD访问第一数据集合,而从 NVSM访问第二数据集合。这减少了引导时间。更新模块312可以在更新HDD中存储的数据时使用。更新模块312检测HDD中的数据何时更新,以及还更新存储在NVSM中存储的相应数据。这保证了存储在NVSM中的某些弓I导数据被镜像,或与存储在HDD中的某些引导数据相同。在一个实施方式中,存储在NVSM 中的数据与存储在HDD中的数据同步。在另一实施方式中,HDD可以存储存储在NVSM中的数据和附加数据。NVSM可以包括存储在HDD中的数据和附加数据。换言之,存储在HDD中的数据可以不是存储在NVSM中的一切数据,并且反之亦然。压缩/解压缩加速器模块314可以用于在NVSM和/或存储器320中存储之前压缩数据,以及用于在从NVSM和/或存储器320访问之后进行解压缩。例如,可以压缩捕获的引导数据并且继而将其存储在NVSM中。类似地,映射数据可以在被存储在存储器320中之前进行压缩。压缩和解压缩过程可以用于减少与NVSM和存储器320相关联的访问时间。存储映射模块316可用于控制被捕获并且被存储在NVSM中数据的映射。基于HDD 中的存储来映射被捕获并且被存储在NVSM中的数据,以提供HDD到NVSM的映射322 (例如, 转换表)。引导定时器318用于指示何时撤销从HDD捕获并向NVSM存储引导数据。例如,涡轮引导控制模块304和/或学习模块306可以停止从HDD捕获数据和将数据存储到NVSM 中。这可以在引导定时器318的预定引导时段324失效时发生。引导定时器318可以初始化预定引导时段324,并且基于来自于系统时钟3 的时钟信号来确定引导时段3M何时失效。预定引导时段3M可以存储在存储器320中并且可以考虑不同的引导时间进行调整。执行引导的时间例如可以基于引导期间执行的任务、系统性能等来改变。作为示例,主机控制模块302可以基于来自于系统用户的输入3 来生成引导时间调整信号。引导时间调整信号可以包括更新的引导时段,其可以存储在存储器320中并且用于禁用学习模式。图1至图8的上述实施方式可以单独考虑或可以组合考虑。例如,图3的文件系统和驱动器可以是图4至图7中任意一种布置。而且,以下图9至图11的时序图和方法可以应用于图1至图8的实施方式。在图9中,示出了引导时序图。图1至图8的模块执行的引导可以包括BIOS模式和OS引导操作模式。BIOS模式和OS引导操作模式可以由模式选择模块(诸如模式选择模块30 选择。在BIOS模式期间,执行POST模式之后是引导加载程序模式。在POST模式期间,主机控制模块可以从HDD加载主引导记录(MBR)。然后,MBR可以用于加载和执行引导加载程序。在引导加载程序模式期间,引导加载程序可以加载OS内核、盘驱动器、半导体存储器驱动器、存储驱动器和涡轮引导驱动器。OS内核可以在引导加载程序模式完成时执行。可以在初始化时段期间初始化OS 内核,该初始化时段包括执行盘驱动器、半导体驱动器、存储驱动器和涡轮引导驱动器。涡轮引导驱动器可以在执行时发起引导时段,诸如关于图8的实施方式描述的引导时段。涡轮引导驱动器在引导时段期间是激活的,并且可以在引导时段之后保持激活。在引导定时器时段期间访问的引导数据可以从HDD和/或NVSM访问。OS引导操作模式包括OS配置模式。OS配置模式之后可以是登录模式。计算机系统的OS(诸如Wind0WSTM(^)可以在OS配置模式期间进行配置。可以加载和启动系统和自启动驱动器。当使用登录模式时,用户可以登录并且输入用户名和口令。登录模式可以在批准用户名和口令并且加载用户简档时完成。用户应用和服务可以在登录模式之后加载和执行。在基于Windows 的系统中,启动Windows 桌面。尽管图9示出了在引导完成时引导定时器时段失效,但是引导定时器时段可以在完成引导之前或之后失效。图10示出了引导期间加载数据的方法。尽管关于图3、图8和图9的实施方式主要描述了以下步骤,但是这些步骤可以应用于本公开的其他实施方式。该方法可以开始于 400。在步骤402中,对计算机系统加电并且发起引导过程。这可以包括从HDD加载并且执行主引导记录。可以向计算机系统的RAM中加载该主引导记录,并且从计算机系统的 RAM执行该主引导记录。在步骤404中,加载并执行BIOS。这可以包括加载和执行基于个人计算(PC)系统的可扩展固件接口(EFI)。EFI定义了操作系统和平台固件之间的软件接口。在步骤404A中,主引导记录可以用于加载和执行POST模块。POST模块可以初始地存储在ROM中,并且加载到RAM中并且从该RAM执行。在步骤404B中,主引导记录和/或POST模块可以用于初始化计算机系统硬件,以及加载和执行引导加载程序。引导加载程序可以原始地存储在HDD中,并且加载到RAM中并且从该RAM执行。引导加载程序可以在POST模块执行后执行。
在步骤404B1-40484中,引导加载程序可以分别加载OS内核、盘驱动器、半导体存储器驱动器以及涡轮引导驱动器。盘驱动器可以包括盘存储驱动器和盘控制驱动器。半导体存储器驱动器可以包括半导体存储器驱动器和半导体控制驱动器。在步骤406中,引导加载程序可以执行OS内核。OS内核可以从RAM执行并且可以配置计算机系统的OS。例如,OS内核可以配置WindOWSTM0S。服务和应用可以在执行OS内核期间和之后加载。在步骤406A-406C中,OS内核可以分别执行盘驱动器、执行半导体存储器驱动器、以及执行涡轮引导驱动器。在以下步骤中,由涡轮引导驱动器执行各种任务。任务可以由主机控制模块、涡轮引导驱动器模块和/或涡轮引导控制模块执行。在步骤408中,涡轮引导驱动器发起引导定时器。引导定时器可以发起计数器、记录初始化时间戳、以及监视从初始化时间戳起流逝的时间。在步骤409中,主机控制模块和/或文件系统生成数据访问请求,以访问存储在 HDD上的引导数据。可以向盘存储驱动器、存储驱动器和/或涡轮弓I导驱动器提供数据访问请求。在一个实施方式中,盘存储驱动器或存储驱动器生成向涡轮引导驱动器提供的数据访问信号。在另一实施方式中,涡轮引导驱动器直接从主机控制模块或文件系统接收数据访问请求。在步骤410中,涡轮引导驱动器确定与数据访问请求相关联的数据是否被存储 (被高速缓存)在NVSM中。换言之,涡轮引导驱动器确定关于数据访问请求是否存在高速缓存未命中。当数据存储在NVSM中时涡轮引导驱动器前进到步骤412,否则控制可以前进到步骤430。涡轮引导驱动器可以查找扇区号、块ID和/或HDD到NVSM映射中的LBA,从而确定数据是否存储在NVSM中。在步骤412中,涡轮引导驱动器确定计算机系统是否以学习模式操作。计算机系统(包括主机控制模块、涡轮引导驱动器、盘驱动器、半导体存储器驱动器和/或存储驱动器)可以以学习模式操作。计算机系统可以在该计算机系统第一次引导时,或在更新NVSM 中的引导数据的其他引导期间以学习模式操作。在计算机系统没有以学习模式操作时,涡轮引导驱动器前进到步骤414,否则控制前进到步骤418。在步骤414中,从HDD加载引导数据。在步骤414之后,涡轮引导驱动器可以在 416结束。在步骤418中,涡轮引导驱动器和/或学习模块从HDD加载引导数据并且前进到步骤420。在步骤420中,涡轮引导驱动器和/或学习模块从HDD捕获引导数据、记录第一地址或位置ID,并将引导数据以第二相应地址或位置ID存储在NVSM中。引导数据例如可以包括系统和自启动驱动器数据、OS数据、OS内核加载程序数据、服务和应用数据、或其他弓I 导数据。已存储数据的长度也可以在访问已存储引导数据时记录和使用。在步骤422中,涡轮引导驱动器和/或学习模块将HDD中的引导数据的位置映射到NVSM中的相应位置。该映射可以按照上文关于图8的实施方式所描述执行。在步骤似4中,涡轮引导驱动器在引导时段已经失效时可以在似6结束。在引导时段尚未失效时,涡轮引导驱动器可以前进到步骤428。在步骤428中,涡轮引导驱动器可以在从HDD加载附加引导数据时返回步骤420,或在接收附加数据访问请求时返回步骤409。在步骤430中,涡轮引导驱动器确定计算机系统是否以双存储访问模式操作。计算机系统(包括主机控制模块、涡轮引导驱动器、盘驱动器、存储驱动器和/或半导体存储器驱动器)可以以双存储访问模式操作。双存储访问模式可以包括,在访问NVSM中的数据时访问HDD中的数据。在计算机系统以双存储访问模式操作时,涡轮引导驱动器前进到步骤432,否则前进到步骤434。在步骤432中,涡轮引导驱动器从HDD和NVSM两者加载引导数据。加载的引导数据被传送到文件系统。从NVSM加载的数据可以是之前在学习模式中捕获的数据。涡轮引导驱动器可以使用HDD到NVSM映射,并且从HDD加载第一数据集合并且从NVSM加载第二数据集合。第一数据集合可以不同于和/或独立于第二数据集合。OS映像或其部分可以从HDD和NVSM两者加载。OS映像表示一种文件,该文件包括Os、可执行程序和与该可执行程序相关联的数据文件。顺序读取请求可以由涡轮引导驱动器和/或双存储访问模块生成。顺序读取可以包括HDD顺序读取和NVSM顺序读取。作为另一示例,顺序读取可以包括OS SATA HDD顺序读取和NVSM顺序读取。涡轮引导驱动器和/或双存储访问模块可以使用加载平衡算法来平衡从HDD和 NVSM进行的数据访问。加载平衡算法可以基于数据流量、从每个HDD和NVSM访问的数据量、HDD的速度和/或NVSM的速度、当前正在从每个HDD和NVSM访问的数据量等,来确定从HDD和NVSM中的哪个读取数据。这提供针对快速引导时间的、对HDD和NVSM的有效使用。在步骤434中,涡轮引导驱动器可以使用HDD到NVSM映射,并且从NVSM而不从 HDD加载引导数据。向文件系统传输加载的引导数据。从NVSM加载的数据可以是之前在学习模式中捕获的数据。在步骤436中,涡轮引导驱动器可以在引导过程完成时在438结束, 否则返回到步骤430以继续加载引导数据。图11示出了根据本公开实施方式的、基于捕获的引导数据向存储设备写入数据的方法。该方法可以由主机控制模块、涡轮引导驱动器模块和/或涡轮引导控制模块执行。 该方法可以开始于500。该方法可以在计算机系统以引导模式或在引导模式完成之后执行。 该方法可以不在学习模式期间执行。在步骤502中,HDD数据访问请求可以由盘存储驱动器、涡轮引导驱动器或存储驱动器从文件系统接收。在步骤504中,当HDD数据访问请求是写请求时,涡轮引导驱动器可以前进到步骤506,否则前进到步骤514。在步骤506中,在HDD数据访问请求对应于存储在NVSM中的引导数据时,涡轮引导驱动器可以前进到步骤508,否则前进到步骤510。在步骤508中,数据存储在HDD中并且存储在NVSM的相应位置中。相同数据存储在HDD和NVSM中。在步骤510中,数据存储在HDD中而不是NVSM中。涡轮引导驱动器可以在步骤512结束。在步骤514中,在与HDD数据访问请求相关联的数据存储在NVSM中时,涡轮引导驱动器可以前进到步骤516,否则前进到步骤518。在步骤516中,涡轮引导驱动器读取NVSM 中的数据。在步骤518中,涡轮引导驱动器读取HDD中的数据。涡轮引导驱动器可以在520 结束。图10和图11的上述步骤意味着是示范示例;这些步骤可以顺序地、同步地、同时地、连续地、在重叠时段期间或取决于应用而以不同的顺序执行。本公开的广泛教导可以通过各种形式来实现。因此,虽然本公开包括特定示例,但本公开的真实范围不应当受到限制,因为基于附图、说明书和以下的权利要求书的研究,其他修改会变得易于理解。
权利要求
1.一种计算机系统,包括硬盘驱动,存储包括引导数据的第一数据集合;非易失性半导体存储器,与所述硬盘驱动的半导体存储器和所述计算机系统的主机的半导体存储器不同;以及涡轮引导驱动器模块,在所述非易失性半导体存储器中存储所述引导数据,并且在所述主机的引导模式期间从所述非易失性半导体存储器向所述主机的文件系统传送所述引导数据。
2.根据权利要求1所述的计算机系统,其中所述涡轮引导驱动器模块在包括所述引导数据的所述非易失性半导体存储器中存储第二数据集合。
3.根据权利要求1所述的计算机系统,其中所述涡轮引导驱动器模块包括学习模块, 所述学习模块在所述主机的第一引导期间捕获所述引导数据,并且将其存储在所述非易失性半导体存储器中,以及其中所述涡轮引导驱动器模块在所述主机的第二引导期间向所述文件系统传送存储在所述非易失性半导体存储器中的所述弓I导数据。
4.根据权利要求1所述的计算机系统,还包括所述文件系统和盘存储驱动器中的至少一个,所述盘存储驱动器生成用以访问存储在所述硬盘驱动中数据的数据访问请求,其中所述涡轮引导驱动器模块访问存储在所述非易失性半导体存储器中的数据以满足所述数据访问请求。
5.根据权利要求4所述的计算机系统,其中所述涡轮引导驱动器模块不访问所述硬盘驱动以满足所述数据访问请求。
6.根据权利要求1所述的计算机系统,还包括所述文件系统和盘存储驱动器中的至少一个,所述盘存储驱动器生成用以更新存储在所述硬盘驱动中数据的数据访问请求,其中所述涡轮引导驱动器模块基于所述数据访问请求来更新存储在所述非易失性半导体存储器中的数据。
7.根据权利要求6所述的计算机系统,其中所述涡轮引导驱动器模块基于所述数据访问请求来更新存储在所述硬盘驱动中的数据。
8.根据权利要求1所述的计算机系统,其中所述涡轮引导驱动器模块从所述硬盘驱动访问第一引导数据集合,并且从所述非易失性半导体存储器访问第二引导数据集合。
9.根据权利要求8所述的计算机系统,其中所述涡轮引导驱动器模块同时访问所述第一引导数据集合和所述第二引导数据集合。
10.根据权利要求8所述的计算机系统,其中所述涡轮引导驱动器模块基于来自于所述文件系统和盘存储驱动器中至少一个的数据访问请求,来访问所述第一引导数据集合和所述第二引导数据集合。
11.根据权利要求1所述的计算机系统,其中所述涡轮引导驱动器模块包括存储映射模块,所述存储映射模块将所述硬盘驱动中存储的数据映射到所述非易失性半导体存储器中存储的数据。
12.根据权利要求1所述的计算机系统,还包括盘存储驱动器,从所述文件系统接收硬盘驱动数据访问请求,其中所述涡轮引导驱动器模块基于所述硬盘驱动数据访问请求,来生成非易失性半导体存储器数据访问请求;以及半导体存储器驱动器,基于所述非易失性半导体存储器数据访问请求,来经由半导体控制驱动器和半导体存储器接口访问所述非易失性半导体存储器。
13.根据权利要求1所述的计算机系统,还包括存储驱动器,从所述文件系统接收硬盘驱动数据访问请求,其中所述涡轮引导驱动器模块基于所述硬盘驱动数据访问请求,来生成非易失性半导体存储器数据访问请求;以及存储控制模块,基于所述非易失性半导体存储器数据访问请求,来经由半导体存储器接口访问所述非易失性半导体存储器。
14.根据权利要求1所述的计算机系统,其中所述涡轮引导驱动器模块包括具有预定引导时段的引导定时器,以及其中所述涡轮引导驱动器模块在所述引导模式期间,在所述非易失性半导体存储器中存储从所述硬盘驱动捕获的所有或某些所述引导数据,直到所述预定引导时段失效。
15.根据权利要求1所述的计算机系统,其中所述涡轮引导驱动器模块包括压缩和解压缩模块,所述压缩和解压缩模块在所述非易失性半导体存储器中存储之前压缩所述引导数据,并且在从所述非易失性半导体存储器访问时将存储的引导数据解压缩。
16.根据权利要求1所述的计算机系统,其中所述涡轮引导驱动器模块以学习模式操作,所述学习模式包括当高速缓存未命中与高速缓存命中的比大于阈值时,在所述非易失性半导体存储器中存储所述引导数据。
17.根据权利要求1所述的计算机系统,其中所述涡轮引导驱动器模块以学习模式操作,所述学习模式包括当高速缓存未命中与高速缓存访问总数的比大于阈值时,在所述非易失性半导体存储器中存储所述引导数据。
全文摘要
一种计算机系统,包括硬盘驱动和非易失性半导体存储器。硬盘驱动存储包括引导数据的第一数据集合。非易失性半导体存储器与硬盘驱动的半导体存储器和计算机系统的主机的半导体存储器不同。涡轮引导驱动器模块在非易失性半导体存储器中存储引导数据,并且在主机的引导模式期间从非易失性半导体存储器向主机的文件系统传送引导数据。
文档编号G06F9/445GK102165418SQ200980137457
公开日2011年8月24日 申请日期2009年9月24日 优先权日2008年9月24日
发明者康新海, 赵群 申请人:马维尔国际贸易有限公司

最新回复(0)