用于验证存储器器件完整性的方法和系统的制作方法

文档序号:6442464阅读:108来源:国知局
专利名称:用于验证存储器器件完整性的方法和系统的制作方法
技术领域
这里所述的实施例通常涉及验证存储器器件完整性并且更具体地涉及在线计算设备中的存储器验证。
背景技术
已知使用基于校验和的系统来在有限的情景中验证计算机存储器的完整性。例如,纠错码(ECC)随机存取存储器(RAM)检测存储器差错但是仅当存储器的特定部分被存取时,才执行这样的差错检测。也已知在离线模式下验证存储器完整性,例如通过执行存储器测试实用程序(memory test utility)代替常规的操作系统。然而,在计算机在线,在请求分页操作系统(demand paged operating system)内执行一个或多个应用程序时,现有系统和方法不提供连续的存储器验证。尤其是在要求在延长的周期上的高可靠性的计算设备中,对正常的存储器器件功能的验证是基本的。例如, 一些高可靠性系统以小的活动性操作数月或数年但是被预期在紧急情况下无缺陷地起作用。

发明内容
在一个方面,提供一种用于确认(val i date )在嵌入式请求分页存储器操作系统环境内对存储器器件的验证的合格性的方法。该方法包括从由耦合到存储器器件的处理器执行的应用接收请求,用以利用至少一个存储单元的请求。该方法包括通过处理器识别至少一个与存储器器件内的至少一个存储单元对应的存储块,通过处理器确定该至少一个存储块对于验证是否是合格的,并且基于处理器的确定产生合格性结果。在另一方面,提供一种用于确认存储器器件的验证的合格性的系统。该系统包括包含多个存储单元的存储器器件和耦合到存储器器件的处理器,其中所述存储单元包含多个与所述多个存储单元的一个或多个存储单元对应的存储块。处理器被编程以便从由处理器执行的应用中接收请求,用以利用至少一个存储单元的请求,并且识别至少一个与存储器器件内的至少一个存储单元对应的存储块。该处理器也被编程用于确定所述至少一个存储块对于验证是否是合格的并且基于处理器的确定产生合格性结果。在又一方面,提供一个或多个计算机可读存储介质。计算机可读存储介质具有用于确认嵌入式请求分页存储器操作系统环境内存储器器件的验证的合格性的计算机可执行组件。所述组件包括控制组件,所述控制组件在由至少一个处理器执行时使所述至少一个处理器从由处理器执行的应用接收请求,用以利用至少一个存储单元,并且识别至少一个与存储器器件内的至少一个存储单元对应的存储块。所述组件还包括确认组件,所述确认组件在由至少一个处理器执行时使所述至少一个处理器确定所述至少一个存储块对于验证是否是合格的。所述组件另外包括通知组件,所述通知组件在由所述至少一个处理器执行时使所述至少一个处理器基于处理器的确定产生合格性结果。


图1-5示出在此所述的系统和方法的示范性实施例。图I是具有带有存储器器件的计算设备的系统的框图。图2是用于确认在图I中所示的存储器器件的验证的合格性的示范性方法的流程图。图3是图I中所示的存储器器件内的存储块的框图。图4是用于确定在图3中所示的存储块中是否包含只读数据的示范性方法的流程图。图5是包括在通过网络与多个被监控的计算设备的通信中耦合的监控计算设备的系统的框图。
具体实施例方式在此所述的系统和方法的实施例便于连续地在在线计算设备内验证存储器器件完整性(memory device integrity)。虽然一些实施例结合映射到存储设备内的文件的存储器页面来描述,但是在此所提供的实施例在任何形式的存储器器件的情况下均是可行的。而且,术语“文件”在此被用于在无限制的情况下包括无论是对计算设备是本地的还是远程的适合供在此所述的方法使用的诸如可执行应用、操作系统图像和/或对象、动态链接共享代码库和/或固定参数数据的非易失性信息的任何集合。另外,这样的实施例在不拦截对存储器器件的写操作的情况下和在对操作系统
(OS)内核的可执行指令不直接修改的情况下便于连续存储器器件验证。在示范性实施例中,使用Linux OS,但是可以使用任何OS来允许如在此所述的功能的揭露。例如,在此所述的操作中的至少一些可以由与操作系统内核交互作用的可装载内核模块和/或由在“用户空间”(也即具有分配给计算设备的用户的特权)中执行的实用程序应用来执行。在此所述的系统和方法的技术效果可以包括以下中的一个或多个Ca)识别与存储器器件内的至少一个存储单元对应的存储块,所述存储块与存储块在第一时间映射到的第一文件的第一部分和表示在第一时间在存储块内的数据的在前校验和相关联;(b)确定存储块对于验证是否是合格的JP(C)至少部分地基于存储块对于验证是合格的确定来指示合格性结果。图I是具有计算设备105的系统100的框图。计算设备105包括存储器器件110 和耦合到存储器器件Iio的用于执行指令的处理器115。在一些实施例中,可执行指令被存储在存储器器件110中。计算设备105可被配置用于由编程处理器115执行在此所述的一个或多个操作。例如,处理器115可以通过将操作编码成一个或多个可执行指令和提供在存储器器件110中的可执行指令被编程。处理器115可以包括一个或多个处理单元(例如在多核配置中)。存储器器件110是允许诸如可执行指令和/或其他数据的信息被存储和取回 (retrieve)的一个或多个设备。存储器器件110可以包括一个或多个计算机可读介质,例如、但不局限于、动态随机存取存储器(DRAM)和/或静态随机存取存储器(SRAM)。计算设备105还可以包括存储设备120。像存储器器件110—样,存储设备120 允许数据被存储和取回。存储设备120耦合到处理器115并且可选地耦合到存储器器件110。例如,计算设备105可以提供在存储设备120和存储器器件110之间的直接存储器存取(DMA)。存储设备120可以包括一个或多个计算机可读介质,例如、但不局限于、固态盘、 硬盘、电池备份SRAM和/或闪速存储器器件。存储器器件110和/或存储设备120可以被配置用于在无限制的情况下存储对应于操作系统(OS)(例如OS内核和/或内核模块)的可执行指令、对应于应用程序的可执行指令、配置数据、程序数据、动态链接共享代码库和/ 或任何其他类型的数据。存储设备120可以具有比存储器器件110的存储容量大的存储容量。在一些实施例中,存储器器件110被配置用于存储在存储设备120内所存储的数据的至少一部分的副本。例如,存储器器件Iio可以被配置用于存储在存储设备120内所存储的可执行指令的副本,并且处理器115可被配置用于存取和执行来自存储器器件110 的可执行指令。计算设备105还包括至少一个通知接口 125,其被配置用于与用户130和/或远程设备(在图I中未示出)交互作用。在一些实施例中,通知接口 125包括耦合到处理器115 的呈现接口(presentation interface) 135。呈现接口 135被配置用于向用户130呈现信息,例如验证失败和/或验证成功。例如,呈现接口 135可以包括显示器适配器(在图I中未示出),其被配置用于耦合到显示设备,例如发光二极管(LED)指示器、阴极射线管(CRT)、 液晶显示器(IXD)、有机LED (OLED)显示器和/或“电子墨水”显示器。在一些实施例中, 呈现接口 135包括一个或多个显示设备。另外或可替代地,呈现接口 135可以包括音频适配器(在图I中未示出),其被配置用于耦合到音频设备,例如扬声器。在一些实施例中,呈现接口 135包括一个或多个音频设备。在一些实施例中,通知接口 125包括耦合到处理器115的通信接口 140。通信接口 140被配置在与远程设备、例如另一计算设备105通信中被耦合。例如,通信接口 140可以在无限制的情况下包括有线网络适配器、无线网络适配器和/或移动电信适配器。图2是用于确认存储器器件110的验证的合格性的示范性方法200的流程图。方法200参照图3、即在存储器器件110和存储设备120内的数据的框图来描述。存储器器件 110和存储设备120分别包括多个存储单元150。例如,每个存储单元150可以对应于存储器器件110和/或存储设备120内的数据的一个字节。多个存储单元150被组织到存储块 155。例如,在存储器器件110中,存储块155可以被称为存储器的“页面”。在一个实施例中,存储器的页面对应于4096个存储单元150或者四千字节(4 kB),虽然其他页面大小也是设想的。方法200包括从由处理器115执行的应用接收205请求,用于利用存储器器件110 内的至少一个存储单元150的请求。方法200然后包括通过处理器115识别210存储块 155中的至少一个对应于存储器器件110内的至少一个存储单元150的存储块160。例如, 对应于存储器器件110内的所有存储单元150的存储块155可以被识别210。在另一例子中,识别210存储块160包括接收对应于存储器器件110内的存储单元150的地址并且识别存储块160,所述存储块对应于(例如包括)存储单元150。存储块160可以至少部分地基于预定义的存储块大小、例如页面大小被识别210。在一些实施例中,存储块160是对应于存储器器件110内的一个或多个存储单元150的虚拟存储器页面。一个或多个存储单元150对应于存储设备120内的一个或多个存储单元150。另外或可替代地,对应于单个文件165的一个或多个存储块155可被识别210。如在图3中所示的那样,存储块160表示文件165的一部分170。文件165的剩余部分也被存储在存储设备120内但是不被复制到存储器器件110中。识别210存储块160可以包括接收指示文件165的文件参考并且识别与文件165相关联的存储器器件110内的存储块155。在示范性实施例中,处理器115确定215存储块是否被指定为只读的,如下面关于图4所述的那样。由处理器115至少部分地基于存储块160内的数据来执行对存储块160 内的数据的验证220。例如,处理器115可以执行存储块160内的数据的校验和并且相对于由处理器115执行的之前的校验和对值进行比较。当存储块160被指定215为只读的,并且存储块160内的数据的验证220不表示存储块160内的预期的数据(例如不被验证)时,可以通过经过呈现接口 135呈现可视警报、 通过经由呈现接口 135呈现可听警报和/或通过经由通信接口 140传输验证失败消息来指示230验证失败。在一些实施例中,方法200跟踪存储块160的成功的验证。如果存储块160被指定215为只读的,并且存储块160内的数据的验证220被验证,则验证成功被指示232。如果多个存储块155被识别210,则方法200可以包括执行一个或多个步骤确定 215存储块160是否被指定为只读的,验证220存储块160内的数据,和/或为每个所识别的存储块155指示230验证失败。在处理每个所识别的存储块155之前,方法200可以包括延迟或“睡眠”短持续时间(例如从大约I毫秒至大约I秒)。这样的实施例便于允许处理器115执行不同于在方法200中所包括的那些操作的操作。一些实施例便于连续地验证存储器器件110的一个或多个存储块155。例如,方法 200可以连续地、周期性地或根据任何适当的定时被重复。在识别210存储块155之前,方法200可以包括延迟或睡眠短的周期,如上所述的那样。一些实施例便于防止由同时存取存储块160引起的假验证失败(false verification failure)。在一个实施例中,在确定215存储块160是否被指定为只读的之前,在处理器115内禁用214中断信号。在验证225存储块160内的数据之后,在处理器 115中启用234中断信号。在可替代的实施例中,方法200包括为中断信号的通知在处理器 115内注册(registering)214。当中断信号的通知在确定215存储块160是否被指定为只读的之后被接收时,对存储块160的处理被中止。例如,如果存储块160被确定215为可写的(例如不是只读的),则处理器115可以被编程以中止验证220存储块160内的数据。图4是用于确定215存储块160是否为只读的示范性方法300的流程图。在示范性实施例中,处理器115被编程用以确定215存储块是否被指定为只读的。例如处理器115 可以被编程用以将元数据与存储块160相关联来基于元数据确定215存储块160是否是只读的。在示范性实施例中,处理器115基于元数据确定302存储块160是否在方法300 中不被支持。在示范性实施例中,在元数据包括为板式(slab)页面、复合(compound)页面和不由文件备份的映射匿名页面的页面类型中的至少一个时,存储块160被确定302为不被支持。板式页面被用于高速缓存(cache)内核存储器对象,所述内核存储器对象经常是可写的并且具有改变内容的能力。复合页面是大的多页面区域,并且不由文件备份的映射匿名页面经常是可写的并且难以对可写映射进行计数。处理器115可以被编程用以至少部分地基于确定302来指示312存储块160不被方法300支持。如果存储块160被方法300支持,则处理器115确定304存储块160是否被映射。 处理器115被编码用以确定304值是否与页面映射字段相关联,使得页面映射字段不是零 (NULL)。如果处理器115确定304页面映射字段包含零值(例如不被映射),则处理器115 可以被编码来指示312存储块160不被支持。当处理器115确定302存储块160被方法300支持并且确定304存储块160包括有效页面映射,则处理器115确定306存储块160是否包含任何激活的(active)可写映射。 在确定306存储块160是否包含任何激活的可写映射中,处理器115被编程用以确认对于页面映射,写计数器是否不能递增,从而使存储块160为只读的。如果处理器115确定306 存储块160是只读的,则提供指示310 :存储块160是只读的并且对于验证220是合格的。 可替代地,如果处理器115确定306激活的可写映射与存储块160相关联,则处理器115可以被编程来指示312存储块160不是只读的。图5是包括在经由网络415与多个被监控的计算设备410通信中耦合的监控计算设备405的系统400的框图。例如,监控计算设备405和被监控的计算设备410可以经由通信接口 140 (在图I中示出)耦合到网络415。网络415可以在无限制的情况下包括因特网、局域网(LAN)、广域网(WAN)、无线LAN (WLAN)、网状网络和/或虚拟专用网络(VPN)。在该示范性实施例中,被监控的计算设备410被配置用于将验证失败消息和/或验证成功消息传输到监控计算设备405。监控计算设备405被配置用于接收验证失败消息和/或验证成功消息并且用于经由呈现接口 135 (在图I中示出)向用户130分别指示相应的验证失败和/或验证成功。这样的实施例便于远程监控多个计算设备105。用于实施存储器验证系统的方法、系统和计算机可读存储介质的示范性实施例在上面详细地予以描述。所述方法、系统和存储介质不局限于在此所述的特定实施例,而是更确切地,方法的操作和/或系统的组件可以被独立地和与在此所述的其他操作和/或组件分开地被利用。另外,所述的操作和/或组件也可以在其他系统、方法和/或存储介质中被定义或与其他系统、方法和/或存储介质组合地被使用,并且不局限于仅仅具有如在此所述的方法、系统和存储介质的实践(practice)。计算设备(例如在此所述的那些计算设备)包括至少一个处理器或处理单元和系统存储器。计算设备典型地具有计算机可读介质的至少某一形式。通过举例并且不限制地, 计算机可读介质包括计算机存储介质和通信介质。计算机存储介质包括以用于存储诸如计算机可读指令、数据结构、程序模块或其他数据的信息的任何方法或技术实施的易失性和非易失性、可拆卸和不可拆卸的物理介质。通信介质典型地具体化计算机可读指令、数据结构、程序模块或以诸如载波或其他传输机制的调制数据信号方式的其他数据,并且包括任何信息传送介质。本领域技术人员熟悉调制数据信号,所述调制数据信号具有一个或多个其特性,所述特性以这样的方式被设置或改变以便编码信号中的信息。任何上述的组合也包括在计算机可读介质的范围中。在此所述的方法可以编码为在计算机可读介质中所具体化的可执行指令,所述计算机可读介质在无限制的情况下包括计算机存储介质、存储设备和/或存储器器件。这样的指令在由处理器执行时使所述处理器至少执行在此所述的方法的一部分。虽然本发明结合示范性存储器验证系统环境被描述,但是本发明的实施例在许多其他通用或专用存储器验证系统环境或配置的情况下可用。存储器验证系统环境不用来建议关于本发明的任何方面的使用或功能性的范围的任何限制。而且,存储器验证系统环境不应被解释为具有关于在示范性操作环境中所示的任何一个组件或组件组合的任何依赖性或要求。可能适合供在此所述的实施例使用的公知的存储器验证系统、环境和/或配置的例子包括、但不局限于、嵌入式计算设备、个人计算机、服务器计算机、手持或膝上型设备、多处理器系统、基于微处理器的系统、机顶盒、可编程用户电子系统、移动电话、网络PC、 微型计算机、大型计算机、包括任何上述系统或设备的分布式计算环境等。实施例可以在诸如程序组件或模块的由一个或多个计算机或其他设备执行的计算机可执行指令的一般上下文中被描述。本发明的方面可以利用任何数量和组织的组件或模块来实施。例如,实施例不局限于在图中所示的和在此所述的特定的计算机可执行指令或特定组件或模块。可替代的实施例可以包括具有比在此所示的和所述的多或少的功能性的不同的计算机可执行指令或组件。在此所示的和所述的实施例中的操作的执行或进行的顺序不是基本的,除非另外特别说明。也就是说,操作可以以任何顺序来进行,除非另外特别说明,并且实施例可以包括附加的或比在此所公开的操作少的操作。例如,设想在另一操作之前、与另一操作同时地或在另一操作之后执行或实施特定的操作处于所述的实施例的范围内。虽然本发明的不同实施例的特定特征可以在某些附图中被示出而在其他附图中未示出,但是这仅是为了方便。根据本发明的原理,附图的任何特征可以与任何其他附图的任何特征相组合地被引用和/或请求保护。所写的该说明书使用例子来揭露本发明(包括最佳方式)并且也使本领域任何技术人员能够实践本发明,包括制造和使用任何设备或系统和执行任何所结合的方法。本发明的可专利性范围由权利要求限定并且可以包括对于本领域技术人员而言出现的其他例子。如果这样的其他例子具有不同于权利要求的文字语言的结构元素,或者如果他们包括具有与权利要求的文字语言的无实质性差别的等效结构元素,则这样的其他例子规定为处于权利要求的范围内。
权利要求
1.一种用于确认在嵌入式请求分页存储器操作系统环境内存储器器件的验证的合格性的方法,所述方法包括从由耦合到存储器器件的处理器执行的应用中接收用以利用至少一个存储单元的请求;由处理器识别至少一个与存储器器件内的至少一个存储单元对应的存储块;由处理器确定所述至少一个存储块对于验证是否是合格的;和基于处理器的确定产生合格性结果。
2.根据权利要求I所述的方法,其中确定所述至少一个存储块对于验证是否是合格的包括确定所述至少一个存储块是否被映射到文件。
3.根据权利要求2所述的方法,其中确定所述至少一个存储块对于验证是否是合格的还包括确定所述至少一个存储块是否是零。
4.根据权利要求3所述的方法,其中确定所述至少一个存储块对于验证是否是合格的还包括确定所述至少一个存储块是否是可写的。
5.根据权利要求I所述的方法,还包括确定所述至少一个存储块是否是存储块类型, 所述存储块类型至少包括复合页面。
6.根据权利要求I所述的方法,还包括确定所述至少一个存储块的内容类型,所述内容类型至少包括内核对象高速缓存。
7.根据权利要求I所述的方法,还包括确定所述至少一个存储块是否包括匿名页面。
8.一种用于确认存储器器件的验证的合格性的系统,所述系统包括存储器器件,其包括多个存储单元,所述存储单元包括多个与多个存储单元中的一个或多个存储单元对应的存储块;耦合到存储器器件的处理器,所述处理器被编程用于从由处理器执行的应用中接收请求,即用以利用至少一个存储单元的请求;识别至少一个与存储器器件内的至少一个存储单元对应的存储块;确定所述至少一个存储块对于验证是否是合格的;和基于处理器的确定产生合格性结果。
9.根据权利要求8所述的系统,其中被编程用于确定所述至少一个存储块对于验证是否是合格的处理器确定所述至少一个存储块是否被映射到文件。
10.根据权利要求9所述的系统,其中被编程用于确定所述至少一个存储块对于验证是否是合格的处理器确定所述至少一个存储块是否是零。
11.根据权利要求10所述的系统,其中被编程用于确定所述至少一个存储块对于验证是否是合格的处理器确定所述至少一个存储块是否是可写的。
12.根据权利要求8所述的系统,其中所述处理器还被编程用于确定所述至少一个存储块是否是存储块类型,使得所述存储块类型至少包括复合页面。
13.根据权利要求8所述的系统,其中所述处理器还被编程用于确定所述至少一个存储块的内容类型,使得所述内容类型至少包括内核对象高速缓存。
14.根据权利要求8所述的系统,其中所述处理器还被编程用于确定所述至少一个存储块是否包括匿名页面。
15.具有用于确认在嵌入式请求分页存储器操作系统环境内存储器器件的验证的合格性的计算机可执行组件的一个或多个计算机可读存储介质,所述组件包括控制组件,其在由至少一个处理器执行时使所述至少一个处理器从处理器执行的应用中接收请求,用以利用至少一个存储单元;和识别至少一个与存储器器件内的至少一个存储单元对应的存储块;确认组件,其在由所述至少一个处理器执行时使所述至少一个处理器确定所述至少一个存储块对于验证是否是合格的;和通知组件,其在由所述至少一个处理器执行时使所述至少一个处理器基于处理器的确定产生合格性结果。
16.根据权利要求15所述的一个或多个计算机可读存储介质,其中在由所述至少一个处理器执行时使所述至少一个处理器确定所述至少一个存储块对于验证是否是合格的确认组件确定所述至少一个存储块是否被映射到文件。
17.根据权利要求16所述的一个或多个计算机可读存储介质,其中在由所述至少一个处理器执行时使所述至少一个处理器确定所述至少一个存储块对于验证是否是合格的确认组件确定所述至少一个存储块是否是零。
18.根据权利要求17所述的一个或多个计算机可读存储介质,其中确认组件在由所述至少一个处理器执行时使所述至少一个处理器确定所述至少一个存储块是否是可写的。
19.根据权利要求15所述的一个或多个计算机可读存储介质,其中确认组件在由所述至少一个处理器执行时还使所述至少一个处理器确定所述至少一个存储块的内容类型,使得所述内容类型至少包括内核对象高速缓存。
20.根据权利要求15所述的一个或多个计算机可读存储介质,其中确认组件在由所述至少一个处理器执行时还使所述至少一个处理器确定所述至少一个存储块是否包括匿名页面。
全文摘要
本发明提供一种用于确认在嵌入式请求分页存储器操作系统环境内存储器器件的验证的合格性的方法。所述方法包括从由耦合到存储器器件的处理器执行的应用中接收请求,即用以利用至少一个存储单元的请求。所述方法包括由处理器识别至少一个与存储器器件内的至少一个存储单元对应的存储块,由处理器确定所述至少一个存储块对于验证是否是合格的,和基于处理器的确定产生合格性结果。本发明还公开一种用于确认用于验证存储器器件完整性的合格性的系统。
文档编号G06F11/00GK102591733SQ201110432589
公开日2012年7月18日 申请日期2011年12月21日 优先权日2010年12月21日
发明者B.小蒙特戈梅里, D.多普森, D.贝克, T.S.波特 申请人:Utc消防和保安美国有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1