CN200610147060.1
2006.11.14
CN1967694A
2007.05.23
授权
有权
授权|||实质审查的生效|||公开
G11B19/02(2006.01); G11B19/14(2006.01); G11B20/10(2006.01); G06F12/00(2006.01)
G11B19/02
联想(新加坡)私人有限公司;
达里尔·C.·克罗默; 霍华德·J.·洛克; 廷·卢普·翁
新加坡新加坡
2005.11.14 US 11/273,360
北京银龙知识产权代理有限公司
许静
揭示了用于缓存写数据的设备,系统和方法。运动感应器模块感应运动敏感存储装置的运动。方向模块在运动超过阈值运动的情况下写数据到缓存器。方向模块进一步在运动没有超过阈值运动的情况下写数据到运动敏感存储装置。在一个实施例中,写模块在运动没有超过阈值运动的情况下从缓存器写数据到运动敏感存储装置。
1. 一种用于缓存写数据的设备,所述设备包括:运动感应器模块,配置为感应运动敏感存储装置的运动;以及方向模块,配置为在运动超过阈值运动的情况下写数据到缓存器,并且在运动没有超过阈值运动的情况下写数据到运动敏感存储装置。2. 根据权利要求1所述的设备,进一步包括写模块,配置为在运动没有超过阈值运动的情况下从缓存器写数据到运动敏感存储装置。3. 根据权利要求1所述的设备,其中方向模块进一步配置为轮询运动感应器模块以获得运动数据。4. 根据权利要求1所述的设备,其中运动感应器模块进一步配置为将运动数据发送到方向模块。5. 根据权利要求1所述的设备,其中运动感应器模块配置为将运动超过阈值运动通知方向模块。6. 根据权利要求1所述的设备,其中方向模块进一步配置为与操作系统和运动敏感存储装置驱动器通信的中间驱动器。7. 根据权利要求1所述的设备,进一步包括阈值修改模块,配置为响应于软件进程的存储需求修改阈值运动。8. 根据权利要求1所述的设备,其中运动感应器模块包括加速度计。9. 一种缓存写数据的系统,所述系统包括:处理器模块,配置为处理数据;存储器模块,配置为存储数据;运动敏感存储装置,配置为存储数据;运动感应器模块,配置为感应运动敏感存储装置的运动;以及方向模块,配置为在运动超过阈值运动的情况下写数据到存储器模块,并且在运动没有超过阈值运动的情况下写数据到运动敏感存储装置。10. 根据权利要求9所述的系统,进一步包括写模块,配置为在运动没有超过阈值运动的情况下从存储器模块写数据到运动敏感存储装置。11. 根据权利要求9所述的系统,其中运动敏感存储装置为硬盘驱动器。12. 根据权利要求9所述的系统,其中所述系统为膝上型计算机。13. 一种信号承载介质,有形地体现数字处理设备可执行的机器可读指令程序以执行操作来缓存写数据,所述操作包括:感应运动敏感存储装置的运动;以及在运动超过阈值运动的情况下写数据到缓存器,并且在运动没有超过阈值运动的情况下写数据到运动敏感存储装置。14. 根据权利要求13所述的信号承载介质,其中指令进一步包括在运动没有超过阈值运动的情况下从缓存器写数据到运动敏感存储装置的操作。15. 根据权利要求13所述的信号承载介质,其中指令进一步包括轮询运动数据的操作。16. 根据权利要求13所述的信号承载介质,其中指令进一步包括发送运动数据的操作。17. 根据权利要求13所述的信号承载介质,其中指令进一步包括通知运动超过阈值运动的操作。18. 根据权利要求13所述的信号承载介质,其中指令进一步包括与操作系统和运动敏感存储装置驱动器通信的操作。19. 根据权利要求13所述的信号承载介质,其中指令进一步包括响应于软件进程的存储需求修改阈值运动的操作。20. 根据权利要求13所述的信号承载介质,其中指令进一步包括响应于软件进程的存储需求修改缓存器大小的操作。21. 根据权利要求13所述的信号承载介质,其中加速度计感应运动。22. 一种用于配置计算机基础结构的方法,包括将计算机可读代码嵌入到计算系统,其中代码与计算机结合可以执行下列步骤:感应运动敏感存储装置的运动;以及在运动超过阈值运动的情况下写数据到缓存器,并且在运动没有超过阈值运动的情况下写数据到运动敏感存储装置。23. 根据权利要求22所述的方法,进一步包括在运动没有超过阈值运动的情况下从缓存器写数据到运动敏感存储装置。24. 根据权利要求22所述的方法,进一步包括响应于软件进程的存储需求修改阈值运动。
响应于运动缓存写入数据的设备,系统和方法 技术领域 本发明涉及缓存写入数据,特别是涉及响应于运动缓存写入数据。 背景技术 在计算装置本身运动的情况下执行计算功能的情况不断增加。例如,经常在用户运动或者车辆运动中使用诸如膝上型计算机,个人数字助理(PDA),便携音乐播放器,手机,平板个人电脑之类的计算装置。 通常,这些计算装置包括具有机械运动部件的一个或者多个内部设备。即使诸如PDA等的通常包括非运动部件的内部设备的装置也可能临时包括诸如微硬盘驱动器(“HDD”)的包括机械运动部件的存储设备。在这里将这些内置于计算装置,或者与计算装置协同工作的具有机械运动部件的装置称为“运动敏感装置”。 不幸的是,运动敏感装置在其操作与自身运动相结合时非常容易损坏。通常,计算装置的运动也移动运动敏感装置。这些运动可能包括仔细计算的运动,碰撞,震动,跌落,计算装置基座的运动之类。通常这些运动不利地影响运动敏感装置的内部部件的运动。计算装置的运动引起的干扰可以引起对运动敏感装置中的内部运动部件以及其它部件的严重损坏。 运动敏感装置运动导致的实际损坏以及潜在损坏典型地在运动敏感装置最活跃和运动敏感装置同时在运动的情况下最大。使运动装置运动增加了损坏运动的可能性。在运动中操作运动敏感装置增加了由运动敏感装置的运动导致损坏的风险。 由于经常通过计算功能使用运动敏感存储装置(MSSD),诸如HDD之类的运动敏感装置特别容易受到运动相关的损坏。例如,计算装置频繁地向HDD写入数据,增加了在计算装置和HDD运动中写入数据的机会。 从前述讨论中,应当清楚需要一种在MSSD运动中对MSSD的写入进行缓存的设备,系统和方法。有利的是,这种设备,系统和方法将减少对MSSD的运动相关的损坏。 发明内容 本发明针对本领域的现有状况而提出,特别是针对本领域中现有可用于写数据到MSSD的方法没有完全解决的问题和需求而提出。因此,本发明提供了一种用于在运动期间缓存写数据的设备,系统和方法,克服了以上讨论的现有技术中多个或全部缺陷。 该缓存写入的设备具有包括多个模块的逻辑单元,配置为执行感应运动和在运动超过阈值运动的情况下写数据到缓存器的必要步骤。在描述的实施例中的这些模块包括运动感应器模块和方向模块。 运动感应器模块感应MSSD的运动。运动感应器模块可以包括连接到MSSD的加速度计。MSSD可以为HDD,光存储驱动器之类。在一个实施例中,运动感应器模块发送诸如加速度的运动数据。在替代实施例中,以阈值运动对运动感应器进行编程,运动感应器通知运动超过阈值运动。 方向模块在运动超过阈值运动的情况下写数据到缓存器,并且在运动没有超过阈值运动的情况下写数据到MSSD。在一个实施例中,方向模块从运动感应器模块接收运动数据并确定运动是否超过阈值运动。在一替代实施例中,方向模块从运动感应器模块接收运动超过阈值运动的通知。 上述设备感应MSSD的运动并在MSSD的运动没有超过阈值运动的情况下写数据到MSSD,而在MSSD的运动超过阈值运动的情况下写数据到缓存器。通过避免在MSSD的运动超过阈值运动的情况下写数据到MSSD,上述设备可以减小MSSD的运动相关损坏的风险。 本发明还提出了一种缓存写数据的系统。该系统可以在诸如膝上型计算机的运动计算装置中实现。特别是,在一个实施例中,该系统包括计算模块,存储器模块,MSSD,运动感应器模块,以及方向模块。该系统可以进一步包括写模块。 计算模块执行软件指令并处理数据。存储器模块存储软件指令和数据。MSSD也可以存储软件指令和数据。MSSD可以配置为非易失性存储装置,而存储器模块以较小的存取延时存储较少数量的软件指令和数据。 计算模块可以周期性地写数据到MSSD。运动感应器模块感应MSSD的运动。方向模块在运动超过阈值运动的情况下写数据到缓存器,并且在运动没有超过阈值运动的情况下写数据到MSSD。在一个实施例中,存储器模块包括缓存器。 在一个实施例中,写模块在运动没有超过阈值运动的情况下从缓存器写数据到MSSD。通过将目的地为MSSD的数据写到缓存器中直到MSSD的运动下降到阈值运动之下,本系统减少了对MSSD的运动相关的损坏。 本发明还提出了一种缓存写数据的方法。揭示的实施例中的方法大致包括执行关于上述设备和系统所描述功能的必需步骤。在一个实施例中,该方法包括感应运动并且在运动超过阈值运动的情况下写数据到缓存器。该方法还可以包括修改阈值运动,修改缓存器大小,以及写缓存数据到MSSD。 在一个实施例中,阈值修改模块响应于软件进程的存储请求修改阈值运动。此外,缓存器修改模块可以响应于软件进程的存储请求修改缓存器大小。运动感应器模块感应MSSD的运动。方向模块在运动超过阈值运动的情况下写数据到缓存器。此外,方向模块在运动没有超过阈值运动的情况下写数据到MSSD。 在一个实施例中,写模块在运动没有超过阈值运动的情况下从缓存器写数据到MSSD。该方法允许软件进程在需要的时候写数据,尽管在MSSD的运动没有超过阈值运动的情况下该数据仅写到MSSD。 本说明书中提及的特征、优点或类似的语言并不意味者本发明能够实现的全部特征和优点都应当或者已包括在了本发明任一单个实施例中。实际上,提及特征和优点的语言应理解为意思是与特定实施例一起描述的具体特征、优点或特性包括在本发明至少一个实施例中。因此,本说明书中特征和优点,和类似语言的讨论可以,但不必须,指同一个实施例。 此外,本发明中描述的特征、优点和特性可以通过任何适当的方式在一个或多个实施例中相结合。本领域技术人员应认识到本发明可以通过具体实施例的一个或多个具体特征和优点来实行。在其他情况中,没有在本发明的全部实施例中提出的附加的特征和优点可以在特定实施例中认识到。 本发明在MSSD的运动超过阈值运动的情况下缓存目标为MSSD的写入数据。此外,通过在MSSD的运动时减少数据写入MSSD,本发明可以减少对于MSSD的运动相关的损坏。本发明的这些特征和优点将在以下叙述和所附权利要求中变得更加清楚,或者可通过之后所述本发明的实施来了解。 附图说明 为了更加易于理解本发明的优点,将通过参考所附附图中示出的具体实施例给出以上概括描述的本发明的更具体的描述。应理解这些附图仅描述了本发明的典型实施例,并不因而可认为是对本发明范围的限制,本发明将通过使用所附附图更加具体和详细地进行描述和解释,附图中: 图1为描述本发明的计算装置的一个实施例的示意框图; 图2为描述本发明的写缓存设备的一个实施例的示意框图; 图3为描述本发明的移动计算装置的一个实施例的示意框图; 图4为描述根据本发明的膝上型计算机的一个实施例的透视图; 图5为描述根据本发明的HDD的一个实施例的透视图; 图6为描述根据本发明的软件栈的一个实施例的示意框图; 图7为描述本发明的写缓存方法的一个实施例的示意流程图。 具体实施方式 本说明书中描述的许多功能单元都标注为模块,以更加具体地强调它们实施的独立性。例如,模块可以作为硬件电路具体实现,该硬件电路包括定制超大规模集成(VLSI)电路或门阵列,诸如逻辑芯片、晶体管或者其他分立元件的成品半导体。模块也可以通过可编程硬件装置实现,诸如可编程场栅阵列,可编程阵列逻辑,可编程逻辑器件等等。 模块还可以由软件实现,通过各种处理器执行。例如,一种可执行代码的识别组件包括一个或多个计算机指令的物理或逻辑块,可以例如组织成一个对象、程序或函数。不过,识别模块的执行可以不需要物理上位于一起,而是可以包括一些存储在不同位置的全异指令,可以在逻辑上联合在一起时包括该模块并实现所述模块的目的。 实际上,可执行代码组件可以是单个指令或者许多指令,而且甚至可以分布在几个不同的代码区段上、在几个不同的程序之间以及在几个内存装置之间。类似地,此处操作数据可以在组件内识别和示出,且可以通过任何适当的形式具体实现和以任何适当的数据结构类型组织。操作数据可以作为单独的数据集收集,或者可以分布在不同位置上,包括分布在不同存储装置上,还可以至少部分地仅作为系统或网络上的电子信号存在。 本说明书中述及的“一个实施例”、“一实施例”或者类似语言意思是关于该实施例描述的具体特征、结构或者性质包括在本发明的至少一个实施例中。因此,本说明书中出现的短语“在一个实施例中”、“在一实施例中”或者类似语言可以,但不是必须,都指同一个实施例。 此外,本发明描述的特征、结构或者性质可以在一个或多个实施例中以任何适当的方式组合。在以下叙述中,提供了多个具体细节,诸如编程、软件模块、用户选择、网络交易、数据库查询、数据库结构、硬件模块、硬件电路、硬件芯片等的例子,以提供对本发明实施例深刻的理解。然而,本领域技术人员应当认识到本发明可以不使用一个或多个这些具体细节来实施,而是可以使用其他方法、组件、材料等等。在其他情况下,没有具体示出或描述公知的结构、材料或操作以避免遮避本发明的各方面。 图1为示例说明本发明的计算装置100的一个实施例的示意框图。装置100包括计算模块105,缓存器110,MSSD 115,以及运动感应器模块120。计算装置100可以为膝上型计算机,PDA,蜂窝电话,平板计算机,无线电子邮件装置等等。 计算模块105存储并执行软件指令并处理数据,这里软件指令和数据称为数据。MSSD 115存储用于计算模块105的数据。MSSD 115可以为诸如HDD的非易失性存储装置,光存储装置等等。缓存器110可以是诸如动态随机存取存储器(“DRAM”),静态随机存取存储器(“SRAM”),闪存随机存取存储器(“Flash RAM”)等的存储装置。在一个实施例中,计算模块105包括缓存器110。在替代的实施例中,MSSD 115包括缓存器110。缓存器110可以不包括运动部件。 MSSD 115包括一个或者多个运动组件。运动组件在MSSD 115运动时以较小的容许度(tolerance)工作并且工作时容易受到损坏。因此,MSSD 115相比于缓存器110更容易受到运动相关的损坏。 计算模块105可以在各种时间向MSSD 115写入数据,包括在计算装置100以及MSSD 115处于运动中的时候。如果计算模块105在计算装置100和MSSD 115处于明显的运动中时写数据到MSSD 115,MSSD 115可能损坏。 装置100在计算模块105将要写数据到MSSD 115时,用运动感应器模块120感应MSSD 115的运动。如果MSSD 115的运动超过了指定的阈值运动,装置100向缓存器110写数据,而不向MSSD 115写数据。因此,MSSD 115在容易受到运动相关的损坏的情况下不写数据。 图2为示例说明本发明的写缓存设备200的一个实施例的示意框图。在一个实施例中,图1的计算模块105以及运动感应器模块120包括设备200。设备200包括运动感应器模块120,方向模块210,写模块215,缓存器修改模块220,以及阈值修改模块225。 运动感应器模块120感应MSSD 115的运动,诸如图1的MSSD 115的运动。运动感应器模块120可以包括对于本领域技术人员来说公知的加速度计。在一个实施例中,运动感应器模块120感应MSSD 115的加速度作为运动数据。在替代实施例中,运动感应器模块120感应加速度相对于时间的导数(derivation)作为运动数据。 在一个实施例中,运动感应器模块120将运动数据发送到方向模块210。例如,运动感应器模块120可以将两个重力加速度(2g)的加速度发送到方向模块210。在替代实施例中,运动感应器模块120配置为具有阈值运动,并且将MSSD 115的运动超过阈值运动报告给方向模块210。例如,如果阈值运动是一个重力加速度(1g),运动感应器模块120可以在MSSD 115的运动超过一个重力加速度(1g)的时候通知方向模块210。 如果MSSD 115的运动超过阈值运动,方向模块210从计算模块105写数据到缓存器110,诸如图1的缓存器110,而如果MSSD 115的运动不超过阈值运动,方向模块210从计算模块105写数据到MSSD 115。例如,如果阈值运动为一个重力加速度(1g)并且运动感应器模块120将指示MSSD 115的运动为两个重力加速度(2g)的运动数据传送给方向模块210,则方向模块210可以将从计算模块105发送到MSSD 115的数据转向,并替代地将数据写到缓存器110。 在一个实施例中,写模块215在MSSD 115的运动没有超过阈值运动时从缓存器110写数据到MSSD 115。在上面的例子中,如果写模块215确定MSSD 115的运动下降到一个重力加速度(1g)的阈值运动以下,则写模块215可以从缓存器110读取数据并将数据写入MSSD 115。从而数据写入到了MSSD 115,但是,数据是在MSSD 115不那么容易受到运动相关的损坏时写入,而不是在MSSD 115容易受到运动相关的损坏的时候写入。 在一个实施例中,阈值修改模块225修改阈值运动。例如,阈值修改模块225可以将阈值运动从一个重力加速度(1g)修改到两个重力加速度(2g)。阈值修改模块225可以响应于软件进程的存储需求修改阈值运动。例如,软件进程可能要求数据以最小的延迟从计算模块105写入到MSSD 115。因此,阈值修改模块225可以将阈值运动从一个重力加速度(1g)修改到两个重力加速度(2g)以允许计算模块105更频繁地直接写入MSSD 115。 在一个实施例中,缓存器修改模块220修改缓存器的大小。例如,缓存器110可以包括DRAM存储器的一部分,诸如一兆(1MB)的存储器。缓存器修改模块220可以将缓存器110的大小从一兆(1MB)存储器修改到两兆(2MB)存储器。在一个实施例中,缓存器修改模块220可以响应于软件进程的存储需求修改缓存器110的大小。例如,如果软件进程需要将四兆(4MB)量的数据保存到MSSD 115中,缓存器修改模块220可以将缓存器大小修改到五兆(5MB)。 通过将目的地为MSSD 115的数据写到缓存器110中直到MSSD 115的运动下降到阈值运动以下,设备200减少了MSSD 115的运动相关的损坏。此外,设备200允许软件进程没有延迟地发送数据到MSSD 115,而这些延迟可能影响软件进程的性能。 图3为示例说明根据本发明的移动计算装置300的一个实施例的示意性框图。装置300可以为膝上型计算机等。在一个实施例中,装置300为图1的计算装置100。如同所描绘的,装置300包括处理器模块305,高速缓存器模块310,存储器模块315,北桥模块320,南桥模块325,图形模块330,显示器模块335,基本输入/输出系统(“BIOS”)模块340,网络模块345,通用串行总线(“USB”)模块350,音频模块355,周边组件互连(“PCI”)模块360,MSSD 115,以及运动感应器模块120。 此处称为组件的处理器模块305,高速缓存器模块310,存储器模块315,北桥模块320,南桥模块325,图形模块330,显示器模块335,BIOS模块340,网络模块345,USB模块350,音频模块355,PCI模块360可以由一个或者多个半导体衬底上的半导体门电路来制造。每个半导体衬底可以封装在电路卡上的一个或者多个半导体器件中。组件之间的连接可以通过连接半导体器件的半导体金属层,衬底到衬底的线路,或者电路卡路线(trace)或者线路(wire)来进行。 存储器模块315存储数据。在一个实施例中,存储器模块315包括图1的缓存器110。处理器模块305如同对于本领域技术人员公知的那样运行数据。图1的计算模块105可以包括处理器模块305以及北桥模块320和南桥模块325。 在一个实施例中,运动感应器模块120对于加速度高度敏感。运动感应器模块120可以包括单独的运动感应组件或者可以包括与现有的硬件,诸如现有的加速度计等,进行通信的逻辑。跟踪模块302中可用的加速度计的例子包括可以从Norwood,Massachusetts的Analog Devices获得的iMEMS加速度计。 在一个实施例中,运动感应器模块120包括物理地连接到MSSD 115的加速度计。加速度计响应于MSSD 115的加速度生成模拟电信号。运动感应器模块120可以进一步包括模拟到数字转换器以将模拟信号转换为数字值。在特定实施例中,运动感应器模块120进一步处理数字值来产生代表加速度计和MSSD 115的加速度的运动数据。 在一个实施例中,存储器模块315存储并且处理器模块305执行包括图2的方向模块210,写模块215,缓存器修改模块220以及阈值修改模块225的一个或者多个软件进程。此外,存储器模块315可以存储并且处理器模块305执行包括软件应应用程序,操作系统,中间驱动器,以及诸如MSSD 115装置驱动器等装置驱动器的一个或者多个软件进程。 软件应用程序或操作系统可以通过MSSD 115驱动器,北桥模块320以及南桥模块325写数据到MSSD 115。在一个实施例中,处理器模块305上运行的方向模块210通过南桥模块325和北桥模块320从运动感应器模块120接收运动数据。如果运动数据超过阈值运动,处理器模块305上运行的方向模块210可以将从操作系统或者软件应用程序发送(direct)的数据转向到位于存储器模块315上的缓存器110。如果来自运动感应器模块120的运动数据没有超过阈值运动,处理器模块305上运行的方向模块210可以进一步通过北桥模块320和南桥模块325将数据从缓存器110写到MSSD。 图4为示例说明根据本发明的膝上型计算机400的一个实施例的透视图。在一个实施例中,计算机400为图1的计算装置100以及图3的移动计算装置300。计算机400配置为执行移动计算。例如,可以在运动车辆、机等上使用计算机400,使得计算机400处于运动。 图5为示例说明根据本发明的HDD 500的一个实施例的透视图。HDD500可以为图1和3的MSSD 115。此外,图4的膝上型计算机400可以包括HDD 500。HDD 500描绘为物理地连接到加速度计530。加速度计5309可以包括图1-3的运动感应器模块120。HDD 500由多个子组件构成,包括至少一个安装在轴杆(spindle)510上的盘片505。盘片505由允许在盘片的上表面和下表面施加磁极化的材料制成。HDD 500配置为通过马达(未示出)以几千转每分钟转动轴杆510和盘片505。HDD 500进一步包括至少一个臂515,该臂515延伸在盘片505的表面上。如同所描绘的,上臂515a和下臂515b分别正好延伸在盘片505的上表面上和下表面下。每个臂515配置为具有磁头525,能够在盘片505的表面产生磁极化,同时也能够检测盘片505表面的磁极化。 上臂515a和下臂515b装在枢轴上连接到HDD 500,从而当盘片505围绕轴杆510旋转的时候磁头525可以在跨越盘片505表面的弧形上运动,允许磁头525在盘片505的任何位置产生并检测磁极化。可以垂直地堆叠多个盘片505,每个盘片505同心地安装在相同的轴杆510上,并为每个盘片505提供上臂515a和下臂515b。 HDD 500对于突发运动,震动,撞击等敏感。典型的盘片505可能以7200转每分钟转动。臂515以极高的速度跨越盘片505运动。磁头525通常描述为飞过盘片505,由很薄的空气垫与盘片505隔开。硬盘500的突然运动可能引起磁头525接触盘片505或者“碰撞”。磁头525与盘片505的物理接触可能引起对盘片505的损坏,对磁头525的损坏,以及存储在盘片505上的数据不可恢复的损失。 为了防止磁头碰撞,可以停放磁头525。停放将臂515运动到不允许磁头525与盘片505有物理接触的位置。在一个实施例中,停放保护HDD 500防止受到诸如磁头525碰撞的损坏。 在一个实施例中,方向模块210在方向模块210不将数据写入HDD 500时停放HDD 500的磁头525。停放磁头525可以在HDD 500运动的间隔期间保护磁头525。方向模块210可以进一步解除磁头525的停放以从图1的缓存器110或者从图1的计算模块105写数据。 图6为示例说明根据本发明的软件栈600的一个实施例的示意性框图。软件栈600代表在图1的计算装置100或者图3的运动计算装置300上执行的一个或者多个软件进程。在描绘的实施例中,软件栈600包括软件应用程序605,应用程序编程接口(“API”)610,操作系统615,中间驱动器620以及装置驱动器625。 软件栈600描绘为与诸如图1的MSSD 115的MSSD 115进行通信。软件栈600可以在图3的处理器305上执行并通过图3的北桥模块320和南桥模块325与MSSD 115通信。 如同对于本领域技术人员所公知的,操作系统615可以包括配置为管理和命令(direct)计算装置100操作的一个或者多个软件进程。操作系统615通过一个或者多个API 610与一个或者多个软件应用程序605通信。每个API610可以包括在软件应用程序和操作系统615之间通信的特定数据值组。 软件应用程序605或者操作系统615可以通过调用包括API 610的函数,和发送作为数据值或者作为数据值阵列的指针的特定数据值来通过API 610通信。例如,软件应用程序605可以通过调用API 610函数并将数据和一个或多个控制数据值发送到API 610,写数据到MSSD 115。 操作系统615管理软件应用程序605和MSSD 115之间的通信,并且作为软件应用程序605和MSSD 115之间的交互接口。操作系统605配置为使用一个或者多个装置驱动器625以多个独特的模块工作,诸如图3的BIOS模块340,网络模块345,USB模块350,音频模块355,PCI模块360,MSSD115以及运动感应器模块120。每个装置驱动器625可以专用于一个模块。例如,包括音频模块355的音频电路可以具有用于与操作系统615通信的专用装置驱动器625。操作系统615使用专用于音频模块355的装置驱动器625与音频模块355交互。 操作系统615使用装置驱动器625与MSSD 115通信。装置驱动器625将来自操作系统615的一个或者多个通用指令和协议转换为特定于MSSD115的一个或者多个指令和协议。装置驱动器625还将MSSD 115专用的指令和协议转换为一个或者多个操作系统615通用指令和协议。 在描绘的实施例中,操作系统615和MSSD 115装置驱动器625通过中间驱动器620通信。中间驱动器620对于操作系统615表现为装置驱动器625,而对于装置驱动器625表现为操作系统615。从而操作系统615可以如同中间驱动器620即为装置驱动器625那样将通用指令和协议发送到中间驱动器620。中间驱动器620可以如同中间驱动器620即为操作系统615那样将通用指令和协议转发到装置驱动器625。 此外,装置驱动器625可以如同中间驱动器620为操作系统615那样将MSSD 115专用指令和协议发送到中间驱动器620。中间驱动器620可以如同中间驱动器620为装置驱动器625那样将MSSD 115专用指令和协议转发到操作系统615。 在一个实施例中,中间驱动器620包括图2的方向模块210。方向模块210在MSSD 115的运动超过阈值运动时可以中断从操作系统615到装置驱动器625的数据写入。在一个实施例中,方向模块210修改数据写入,使得中间驱动器620将数据写入图1的缓存器110而不是装置驱动器625。方向模块210还在数据写入缓存器110时通知操作系统615数据写入了MSSD 115。 在一个实施例中,中间驱动器620包括图2的写模块215。写模块215可以将数据从缓存器110写入装置驱动器625,并修改数据写入使得装置驱动器625可以如同从操作系统615那样接收数据。在替代实施例中,写模块215也可以在数据通过装置驱动器625写入MSSD 115时通知操作系统615数据写入了MSSD 115。 下面的示意流程图作为逻辑流程图概括描述。如所指出的,描绘的顺序和标记的步骤表示了本方法的一个实施例。可以预见其他步骤和方法,与所示方法的一个或多个步骤,或其一部分在功能、逻辑或效果上等价。另外,使用的形式和符号用于解释方法的逻辑步骤,应理解并不限制本方法的范围。尽管流程图中可以使用各种类型的箭头和线条,应理解它们并不限制相应方法的范围。实际上,一些箭头或其他连接可以用于仅指示方法的逻辑流程。例如,箭头可以指示所描述方法列举步骤之间的未指明的等待或监视时间。另外,具体方法发生的顺序可以或者可以不严格按照示出的相应顺序。 图7为示例说明本发明的写缓存方法700的一个实施例的示意性流程图。方法700大致包括需要用来执行参照图1系统100和图2设备200的操作来说明的功能的必要步骤。 在一个实施例中,方法700开始,阈值修改模块225响应于软件进程的存储需求修改705阈值运动。在一个实施例中,将阈值运动预先设定到诸如一个重力加速度(1g)的特定值。软件进程可以是软件应用程序605,诸如图6的软件应用程序。在特定实施例中,阈值修改模块225配置为中间驱动器620,诸如图6的中间驱动器620。软件应用程序605可以通过诸如图6API610的API 610将存储需求通知操作系统615,诸如图6的操作系统615。操作系统615可以将操作要求通知阈值修改模块225,从而阈值修改模块225可以响应于操作要求修改705阈值运动。 在替代实施例中,软件应用程序605链接到阈值修改模块225所包括的动态链接库(“DLL”)。软件应用程序605可以将存储需求通知DLL,从而阈值修改模块225可以响应于存储需求修改705阈值运动。 在一个实施例中,存储需求配置为反应时间要求,指定软件应用程序605在向诸如图1MSSD 115的MSSD 115写入之间的最大容许时间间隔。阈值修改模块225可以修改705阈值运动从而MSSD 115的运动在最大时间间隔内通常落在阈值运动之下。例如,如果存储需求为五秒钟(5s)的反应时间,阈值模块可以确定在五秒钟(5s)的间隔上90%的时间MSSD 115的运动将落在一点五重力加速度(1.5g)的阈值运动之下,从而有足够的时间从缓存器110写数据到MSSD 115,从而修改705阈值运动为一点五重力加速度(1.5g)。 在替代实施例中,存储需求可以配置为运动值。例如,软件应用程序605可以指定两个重力加速度(2g)的存储需求,从而阈值修改模块225可以修改阈值运动到两个重力加速度(2g)。在一个实施例中,阈值修改模块225跟踪软件应用程序605写操作之间的时间间隔,并修改705阈值运动使得写入包含在指定比例的时间内。例如,如果阈值修改模块225确定三个重力加速度(3g)的阈值运动将允许在95%的时间内数据从缓存器110写到MSSD 115,那么阈值修改模块225将阈值运动修改为三个重力加速度(3g)。 在一个实施例中,阈值修改模块225通过将新的阈值运动值写入方向模块210来修改阈值运动。在替代实施例中,阈值修改模块225通过将新的阈值运动值写入运动感应器模块120来修改阈值运动。 在一个实施例中,缓存器修改模块220可以响应于诸如软件应用程序605的软件进程的存储需求修改710诸如图1缓存器110的缓存器110的大小。在特定实施例中,缓存器修改模块220配置为中间驱动器620。软件应用程序605可以通过API610将存储需求通知操作系统615。操作系统615可以将操作要求通知缓存器修改模块220,从而缓存器修改模块220响应于操作要求修改710缓存器110的大小。 在替代实施例中,软件应用程序605链接到缓存器修改模块220所包括的DLL。软件应用程序605可以将存储需求通知DLL,从而缓存器修改模块220可以响应于存储需求修改710缓存器110的大小。 在特定实施例中,缓存器修改模块220响应于观测的软件应用程序605的存储需求修改缓存器110的大小。例如,缓存器修改模块220可以跟踪软件应用程序605写入MSSD 115的最大数据量。缓存器修改模块220可以进一步修改710缓存器110的大小为超过最大量10%。在一个实施例中,存储需求配置为诸如两兆(2MB)的数据量。缓存器修改模块220可以通过在诸如图3的存储器模块315的存储器中分配等价于两兆(2MB)的数据块来修改710缓存器110的大小。 运动感应器模块120感应715MSSD 115的运动。在一个实施例中,运动感应器模块120包括微机械运动感应器,诸如在半导体衬底上制造的一个或者多个硅悬臂梁(cantilever beam)等,其中运动感应器模块120从构成电路的一个或多个梁计算运动。在替代实施例中,运动感应器210包括激光陀螺仪并从激光陀螺仪位置的二阶导数计算MSSD 115的运动。 方向模块210确定720MSSD 115的运动是否超过阈值运动。在一个实施例中,如果MSSD 115运动超过阈值运动,运动感应器模块120通知方向模块210。在替代实施例中,运动感应器模块120将运动数据发送到方向模块210,从而如果运动数据值超过阈值运动值,运动方向模块210确定720MSSD115运动超过阈值运动。 如果方向模块210确定720MSSD 115运动超过阈值运动,方向模块210将目标为MSSD 115的数据写入730缓存器110。在一个实施例中,方向模块210配置为中间驱动器620并中断目标为MSSD 115的写数据。方向模块210可以将写数据转向到缓存器110,并通知软件应用程序605数据写入了MSSD115。 在一个实施例中,写模块215确定735MSSD 115的运动是否超过阈值运动。如果MSSD 115运动超过阈值运动,运动感应器模块120通知写模块215。在替代实施例中,运动感应器模块120将运动数据发送到写模块215,从而如果运动数据值超过阈值运动值,写模块215确定735MSSD 115运动超过阈值运动。如果MSSD 115运动没有超过阈值运动,写模块215将数据从缓存器110写入740MSSD 115,从而方法700结束。如果MSSD 115运动超过阈值运动,写模块215循环确定MSSD 115的运动是否超过阈值运动。 如果方向模块210确定720MSSD 115的运动没有超过阈值运动,方向模块210将数据从缓存器110写入725MSSD 115,从而方法700结束。方法700在MSSD 115的运动没有超过阈值运动的情况下写数据到MSSD 115,而在MSSD 115的运动超过阈值运动的情况下写数据到缓存器110,从而减少了对于MSSD 115的运动相关的损坏的可能性。 本发明首先在MSSD 115的运动超过阈值运动时缓存目的地为MSSD115的写数据。此外,本发明通过在MSSD 115运动时减少数据写入MSSD115,减少了MSSD 115的运动相关损坏。在不脱离本发明精神或实质特征的情况下,可以通过其他具体形式实现本发明。所描述的实施例在各个方面仅认为是示例性的而非限制性的。因此,本发明的范围有所附权利要求指明而非前面的叙述。权利要求等价含义和范围内的改变应包含在权利要求范围内。
《响应于运动缓存写入数据的设备,系统和方法.pdf》由会员分享,可在线阅读,更多相关《响应于运动缓存写入数据的设备,系统和方法.pdf(23页珍藏版)》请在专利查询网上搜索。
揭示了用于缓存写数据的设备,系统和方法。运动感应器模块感应运动敏感存储装置的运动。方向模块在运动超过阈值运动的情况下写数据到缓存器。方向模块进一步在运动没有超过阈值运动的情况下写数据到运动敏感存储装置。在一个实施例中,写模块在运动没有超过阈值运动的情况下从缓存器写数据到运动敏感存储装置。 。
copyright@ 2017-2020 zhuanlichaxun.net网站版权所有经营许可证编号:粤ICP备2021068784号-1