CN103026342B - 用于验证存储器器件完整性的方法和*** - Google Patents

用于验证存储器器件完整性的方法和*** Download PDF

Info

Publication number
CN103026342B
CN103026342B CN201180022724.0A CN201180022724A CN103026342B CN 103026342 B CN103026342 B CN 103026342B CN 201180022724 A CN201180022724 A CN 201180022724A CN 103026342 B CN103026342 B CN 103026342B
Authority
CN
China
Prior art keywords
memory block
time
file
memory
processor
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
CN201180022724.0A
Other languages
English (en)
Other versions
CN103026342A (zh
Inventor
T.S.波特
D.贝克
B.R.小蒙特戈梅里
D.多普森
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Carrier Fire and Security Americas Corp
Original Assignee
UTC Fire and Security Americas Corp Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by UTC Fire and Security Americas Corp Inc filed Critical UTC Fire and Security Americas Corp Inc
Publication of CN103026342A publication Critical patent/CN103026342A/zh
Application granted granted Critical
Publication of CN103026342B publication Critical patent/CN103026342B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0751Error or fault detection not based on redundancy
    • G06F11/0763Error or fault detection not based on redundancy by bit configuration check, e.g. of formats or tags
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0706Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment
    • G06F11/073Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment in a memory management context, e.g. virtual memory or cache management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1004Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's to protect a block of data words, e.g. CRC or checksum

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Debugging And Monitoring (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)

Abstract

一种用于验证存储器器件完整性的方法和***包括标识与存储器器件内的至少一个存储器位置相对应的至少一个存储器块。该存储器块与文件的部分和表示在第一时间的该存储器块内的数据的校验和相关联。至少部分地基于确定该存储器块在第二时间被映射到同一文件的同一部分,指示该校验和表示该存储器块内的预期数据。还公开了一种用于验证存储器器件完整性的***。

Description

用于验证存储器器件完整性的方法和***
技术领域
本文描述的实施例一般涉及验证存储器器件完整性,更具体而言,涉及在线计算设备中的存储器验证。
背景技术
在有限场景中使用基于校验和的***来验证计算机存储器的完整性是已知的。例如,纠错码(ECC)随机存取存储器(RAM)检测存储器错误但是只在访问存储器的特定部分时执行这种错误检测。以离线模式验证存储器完整性也是已知的,诸如通过执行存储器测试实用程序而不是传统的操作***。
然而,现有***和方法没有提供在计算机在线—正在需求分页的(demandpaged)操作***内执行一个或多个应用程序—时的连续存储器验证。尤其在需要长时间段内的高可靠性的计算设备中,适当的存储器器件功能的验证是必要的。例如,某些高可靠性***在很少活动的情况下运行数月或数年,但是期望这些***在紧急情况下无瑕疵地发挥功能。因此,存在对于计算设备中的连续在线存储器验证的需要。
发明内容
在一个方面,提供一种用于验证存储器器件的完整性的方法。该方法包括通过耦合于该存储器器件的处理器来标识与该存储器器件内的至少一个存储器位置相对应的存储器块。将该存储器块与该存储器块在第一时间所映射到的第一文件的第一部分以及表示在第一时间的该存储器块内的数据的校验和相关联。通过该处理器确定该所标识的存储器块在该第一时间之后的第二时间是否被映射到该第一文件的该第一部分。至少部分地基于确定该所标识的存储器块在该第二时间被映射到该第一文件的该第一部分,通过该处理器指示该先前校验和表示在该第二时间的该所标识的存储器块内的预期数据。
在另一个方面,提供一种用于验证存储器器件的完整性的***。该***包括存储器器件和耦合于该存储器器件的处理器,该存储器器件包括多个存储器位置。该处理器被编程成标识与该存储器器件内的该多个存储器位置的至少一个存储器位置相对应的存储器块,并将该所标识的存储器块与该所标识的存储器块在第一时间所映射到的第一文件的第一部分以及表示在第一时间的该所标识的存储器块内的数据的校验和相关联。该处理器还被编程成确定该所标识的存储器块在该第一时间之后的第二时间是否被映射到该第一文件的该第一部分。该处理器被进一步编程成至少部分地基于确定该所标识的存储器块在该第二时间被映射到该第一文件的该第一部分,指示该校验和表示该所标识的存储器块内的预期数据。
在又一个方面,提供一个或多个计算机可读存储介质。该计算机可读存储介质具有计算机可执行组件,该计算机可执行组件用于使用耦合于存储器器件的至少一个处理器来验证该存储器器件的完整性。该组件包括控制组件、指纹化组件和结果组件。该控制组件在由该至少一个处理器执行时致使该处理器标识与该存储器器件内的至少一个存储器位置相对应的存储器块。该指纹化组件在由该至少一个处理器执行时致使该处理器将所标识的存储器块与该所标识的存储器块在第一时间所映射到的第一文件的第一部分以及表示在第一时间的该所标识的存储器块内的数据的第一校验和相关联,以及确定该所标识的存储器块在第二时间是否被映射到该第一文件的该第一部分。该结果组件在由该至少一个处理器执行时致使该处理器在该所标识的存储器块在该第二时间被映射到该第一文件的该第一部分时计算表示在该第二时间的该所标识的存储器块内的数据的第二校验和,以及指示该第二校验和是否等于该第一校验和。
附图说明
图1-5示出了本文描述的***和方法的示例性实施例。
图1是带有具有存储器器件的计算设备的***的框图。
图2是用于验证图1中所示的存储器器件的完整性的示例性方法的流程图。
图3是图1中所示的存储器器件内的存储器块的框图。
图4是用于确定校验和是否表示图3中所示的存储器块内的预期数据的示例性方法的流程图。
图5是包括经由网络与多个被监视的计算设备通信地耦合的监视计算设备的***的框图。
具体实施方式
本文描述的***和方法的实施例便于连续地验证在线计算设备内的存储器器件的完整性。尽管某些实施例是结合被映射到存储器件内的文件的存储器的页来描述的,然而本文提供的实施例与任何形式的存储器器件均能一起工作。而且,术语“文件”在本文中被用来包括而不限于非易失性信息的任何集合,诸如可执行应用、操作***图像和/或对象、动态链接共享代码库、和/或固定参数数据,无论它们对计算设备是在本地还是远程,它们适于与本文描述的方法一起使用。
此外,这些实施例便于连续的存储器器件验证而不截取对存储器器件的写操作且不对操作***(OS)内核的可执行指令进行直接修改。例如,本文描述的操作中的至少一些操作可被与操作***交互的可加载内核模块执行,和/或被在“用户空间(即,具有被赋予计算设备的用户的特权)”中执行的实用应用执行。
本文描述的***和方法的技术效果可包括以下的一个或多个:(a)标识与存储器器件内的至少一个存储器位置相对应的存储器块,该存储器块与该存储器块在第一时间所映射到的第一文件的第一部分以及表示该第一时间的该存储器块内的数据的先前校验和相关联;(b)确定在该第一时间之后的第二时间处该存储器块是否被映射到该第一文件的第一部分;以及(c)至少部分地基于确定在第二时间处该存储器块被映射到该第一文件的第一部分,指示该先前校验和表示该第二时间处的该存储器块内的预期数据。
图1是带有计算设备105的***100的框图。计算设备105包括存储器器件110并耦合于存储器器件110的处理器115以执行指令。在某些实施例中,可执行指令被存储在存储器器件110中。计算设备105被编程成由编程处理器115执行本文中描述的一个或多个操作。例如,可以通过将操作编码为一个或多个可执行指令并在存储器器件110中提供所述可执行指令来编程处理器115。处理器115可包括一个或多个处理单元(例如,成多核配置)。
存储器器件110是允许诸如可执行指令和/或其他数据的信息被存储和取回的一个或多个器件。存储器器件110可包括一个或多个计算机可读介质,诸如但不限于:动态随机存取存储器(DRAM)和/或静态随机存取存储器(SRAM)。
计算设备105还可包括存储器件120。与存储器器件110一样,存储器件120允许数据被存储并取回。存储器件120耦合于处理器115,并可选地耦合于存储器器件110。例如,计算设备105可提供存储器件120和存储器器件110之间的直接存储器访问(DMA)。存储器件120可包括一个或多个计算机可读介质,诸如但不限于固态磁盘、硬盘、电池支持的SRAM和/或闪存器件。存储器器件110和/或存储器件120可被配置成存储(无限制地)与操作***(OS)对应的可执行指令(例如,OS内核和/或内核模块)、与应用程序对应的可执行指令、配置数据、程序数据、动态链接共享代码库、和/或任何其他类型的数据。存储器件120可具有比存储器器件110的存储器容量更大的存储器容量。
在某些实施例中,存储器器件110被配置成存储在存储器件120内存储的数据的至少一部分数据的副本。例如,存储器器件110可被配置成存储在存储器件120内存储的可执行指令的副本,而处理器115可被配置成访问并执行来自存储器器件110的可执行指令。
计算设备105还包括被配置成与用户130和/或远程设备(图1中未示出)交互的至少一个通知接口125。在某些实施例中,通知接口125包括耦合于处理器115的呈现接口135。呈现接口135被配置成向用户130呈现信息,诸如验证失败和/或验证成功。例如,呈现接口135可包括显示适配器(图1中未示出),该适配器被配置成耦合于显示设备,诸如发光二极管(LED)指示器、阴极射线管(CRT)、液晶显示器(LCD)、有机LED(OLED)显示器和/或“电子墨水”显示器。在某些实施例中,呈现接口135包括一个或多个显示设备。
附加地或替代地,呈现接口135可包括音频适配器(图1中未示出),该适配器被配置成耦合于音频设备,诸如扬声器。在某些实施例中,呈现接口135包括一个或多个音频设备。
在某些实施例中,通知接口125包括耦合于处理器115的通信接口140。通信接口140被配置成与远程设备(诸如另一计算设备105)通信地耦合。例如,通信接口140可包括而不限于有线网络适配器、无线网络适配器、和/或移动电信。
图2是用于验证存储器器件110的完整性的示例性方法200的流程图。参考图3描述了方法200,存储器器件110和存储器件120内的数据的框图。存储器器件110和存储器件120各包括多个存储器位置150。例如,每个存储器位置150可对应于存储器器件110和/或存储器件120内的一个字节的数据。多个存储器位置150被组织成存储器块155。例如,在存储器器件110中,存储器块155可被称为存储器的“页”。在一个实施例中,存储器的页对应于4096个存储器位置150或4千字节(4kB),尽管也构想了其他的页大小。
方法200包括通过处理器115标识205存储器块155中与存储器器件110内的至少一个存储器位置150对应的至少一个存储器块160。例如,与存储器器件110内的所有存储器位置150相对应的存储器块155可被标识205。在另一示例中,标识205存储器块160包括接收与存储器器件110内的存储器位置150相对应的地址以及标识存储器块160,存储器块160对应于(例如,包括)存储器位置150。可至少部分地基于预定存储器块大小(诸如页大小)来标识205存储器块160。
在某些实施例中,存储器块160是与存储器器件110内的一个或多个存储器位置150相对应的虚拟存储器的页。一个或多个存储器位置150对应于存储器件120内的一个或多个存储器位置150。
附加地或替代地,可标识205与单个文件165相对应的一个或多个存储器块155。如图3中所示,存储器块160表示文件165的部分170。文件165的剩余部分也存储在存储器件120内而不被复制到存储器器件110。标识205存储器块160可包括接收指示文件165的文件索引(filereference)以及标识存储器器件110内与文件165相关联的存储器块155。
存储器块160与先前校验和相关联,该先前校验和表示在先前时刻存储器块160内所包含的数据。通过处理器115确定210存储器块160是否被指定为只读。例如,处理器115可被编程为将元数据与存储器块160相关联并基于该元数据来确定210存储器块160是否是只读的。与存储器块160相关联的元数据可包括而不限于存储器块类型(例如,复合页)、内容类型(例如,内核对象高速缓存)、访问模式(例如,只读或读写)、文件映射属性(例如,存储器块160是否被映射到文件)和/或能够将数据写到映射文件的一些存储器块155,如果存在的话。
通过处理器115至少部分地基于存储器块160内的数据来计算215当前校验和。例如,处理器115可被编程成计算存储器块160内的数据的数学和和/或散列值。通过处理器115确定220先前校验和是否表示存储器块160内的预期数据。例如,与存储器块160相关联的元数据可被用来确定220该先前校验和是否表示预期数据,如下面参考图4所描述的。
当存储器块160被指定为只读,且先前校验和表示存储器块160内的预期数据时,通过处理器115确定225当前校验和是否等于先前校验和。当当前校验和不等于先前校验和时,存储器块160的验证失败经由通知接口125指示230。例如,验证失败可通过经由呈现接口135呈现可见警告、通过经由呈现接口135呈现可听警告、和/或通过经由通信接口140传送验证失败消息来指示230。
当确定220先前校验和不表示存储器块160内的预期数据时,当前校验和可与存储器块160相关联222。在为存储器块160后续执行方法200时,将当前校验和当作先前校验和。换言之,当前校验和可被定义为存储器块160的先前校验和。
在某些实施例中,方法200跟踪存储器块160的成功验证。如果确定225当前校验和等于先前校验和,则指示232验证成功。例如,处理器115可被编程为记录(例如,在存储器器件110内)确定225当前校验和等于先前校验和的验证成功时间。在方法200的后续执行中,在确定210存储器块160是否被指定为只读之前,处理器115可被编程为确定207存储器块160近期是否被成功验证。
在某些实施例中,基于预定义的阈值使用期限来确定207验证成功的近期性(recency)。例如,预定义阈值使用期限可被定义为5分钟、30分钟、60分钟、或适于与本文中描述的方法一起使用的任何持续时间。在一个实施例中,处理器115被编程为确定验证成功时间是否比预定义阈值使用期限长。例如,当当前时间减去验证成功时间大于预定义阈值使用期限时可认为验证成功时间比预定义阈值使用期限长。当验证成功时间比预定义阈值使用期限长时,处理器115被编程为执行以下一个或多个步骤:确定210存储器块160是否被指定为只读、计算215当前校验和、确定220先前校验和是否表示存储器块160内的预期数据、确定225当前校验和是否等于先前校验和、和/或指示230验证失败。这些实施例可有助于按优先顺序排列近期未被验证的存储器块155的验证。
如果标识205了多个存储器块155,则方法200可包括执行以下一个或多个步骤:确定210存储器块160是否被指定为只读、计算215当前校验和、确定220先前校验和是否表示存储器块160内的预期数据、确定225当前校验和是否等于先前校验和、和/或为每个所标识的存储器块155指示230验证失败。在处理每个所标识的存储器块155之前,方法200可包括延迟或“睡眠”一个短时间段(例如,从约1毫秒到约1秒)。这种实施例有助于允许处理器115来执行除了在方法200中所包括的操作之外的操作。
某些实施例有助于存储器器件110的一个或多个存储器块155的连续验证。例如,方法200可被连续地、周期性地、或根据任何适当的定时重复。在标识205存储器块155之前,方法200可包括延迟或睡眠一个短时间段,如上所述。
某些实施例有助于防止对存储器块160的并行访问引起的假验证失败。在一个实施例中,在确定210存储器块160是否被指定为只读之前,在处理器115内禁止209中断信号。在确定255当前校验和是否等于先前校验和之后,在处理器115中使能中断信号。在替代实施例中,方法200包括登记209处理器115内的中断信号的通知。当在确定210存储器块160是否被指定为只读之后接收到中断信号的通知时,中止存储器块160的处理。例如,处理器115可被编程为中止计算215当前校验和、确定220先前校验和是否表示存储器块160内的预期数据、和/或确定225当前校验和是否等于先前校验和。
图4是用于确定220校验和是否表示存储器块160内的预期数据的示例性方法300的流程图。在示例性实施例中,存储器块160与和存储器块160相关联的元数据的“指纹”175相关联。指纹175包括但不限于:指示存储器块160被映射到的文件165的文件索引180;指示存储器块160被映射到的文件部分170的页索引185;指示针对文件165执行的一些写操作的文件写计数190;和/或表示存储器块160内的数据的校验和195。指纹175可被存储在存储器器件110内。而且,附加元数据可经由文件索引180和/或页面索引185来访问。例如,处理器115可被编程为通过访问与文件索引180相关联的元数据来确定文件状态(例如,“干净”或“脏”的,分别指示未定的写操作的缺失或存在)。
在示例性实施例中,指纹175包括在第一时间生成的一个或多个静态元数据值。在第一时间之后的第二时间处,指纹175的静态元数据值被认为是先前值。方法300包括通过处理器115确定305存储器块160是否被映射到由先前文件索引180和先前页索引185所指示的先前文件部分170。至少部分地基于确定305存储器块160被映射到先前文件部分170,通过处理器115指示310先前校验和195表示存储器块160内的预期数据。替代地,至少部分地基于确定305存储器块160未被映射到先前文件部分170,可指示312先前校验和195不表示存储器块160内的预期数据。
处理器115还可被编程为确定307是否已执行与文件165相对应的任何写操作。例如,处理器115可被编程为将来自指纹175的先前文件写计数190与文件165的当前写计数进行比较。如果当前写计数大于先前文件写计数190,可以确定307因为生成和/或更新指纹175(即,在第一时间和第二时间之间)已对文件165执行一个或多个写操作。处理器115可被编程为进一步基于确定307在第一时间和第二时间之间没有执行这样的写操作,来指示310先前校验和195表示存储器块160内的预期数据。
附加地或替代地,处理器115可被编程为确定309与文件165相对应的任何写操作在第二时间是否待决。例如,处理器115可被编程为基于与文件索引180相关联的文件状态(例如,干净的或脏的)来确定309这些写操作是否待决。处理器115可被编程为进一步基于确定309在第二时间没有与文件165相对应的写操作待决,来指示310先前校验和195表示存储器块160内的预期数据。
某些实施例有助于内核相关页的简化的和/或优化的逻辑。在一个实施例中,确定305存储器块160是否被映射到先前文件部分170包括确定302存储器块160是否被分配到操作***内核(OS)文本。OS内核文本包括但不限于可执行内核指令和/或不可变的内核相关的数据结构。当存储器块160被分配到操作***内核文本时,省略其他步骤307、309,而处理器115被编程为指示310先前校验和195表示存储器块160内的预期数据。当存储器块160没有被分配到操作***内核文本时,方法300如上所述地进行。在另一实施例中,确定210(图2中示出)存储器块160是否是只读的包括确定302存储器块160是否被分配到操作***内核文本,而将存储器块160分配到操作***内核文本指示存储器块160是只读的。
某些实施例有助于将存储器块160与当前元数据值相关联。例如,当确定305存储器块160没有被映射到先前文件部分170时,方法300可包括将存储器块160与在第二时间存储器块160被映射到的文件165的另一部分或另一文件的一部分相关联306。在一个实施例中,处理器115被编程为基于在第二时间存储器块160所关联的文件的部分来更新文件索引180、页索引185、和/或文件写计数190。
图5是包括经由网络415与多个被监视的计算设备410通信地耦合的监视计算设备405的***400的框图。例如,监视计算设备405和被监视的计算设备410可经由通信接口410(在图1中示出)耦合到网络415。网络415可包括而不限于因特网、局域网(LAN)、广域网(WAN)、无线LAN(WLAN)、网状网络、和/或虚拟私人网络(VPN)。
在该示例性实施例中,被监视的计算设备410被配置成向监视计算设备405传送验证失败消息和/或验证成功消息。监视计算设备405被配置成接收验证失败消息和/或验证成功消息并经由呈现接口135(图1中示出)向用户130分别指示相应的验证失败和/或验证成功。这种实施例有助于多个计算设备105的远程监视。
上面详细描述了供实现存储器验证***之用的方法、***和计算机可读存储介质的示例性实施例。这些方法、***和存储介质不限于本文中描述的具体实施例,而是相反,可与本文中描述的其他操作和/或组件独立地或分离地使用方法的操作和/或***的组件。而且,所描述的操作和/或组件还可以被定义成其他***、方法和/或存储介质,或者与其他***、方法和/或存储介质组合使用,而不限于仅用如本文中描述的方法、***和存储介质来实现。
诸如本文中所描述的计算设备的计算设备包括至少一个处理器或处理单元和***存储器。计算设备一般具有至少某种形式的计算机可读介质。作为示例而非限制,计算机可读介质包括计算机存储介质和通信介质。计算机存储介质包括用于存储诸如计算机可读指令、数据结构、程序模块或其它数据的信息的以任何方法或技术实现的易失性与非易失性、可移动与不可移动的物理介质。通信介质一般包括计算机可读指令、数据结构、程序模块或成诸如载波或其它传输机制的调制数据信号的其它数据,并且包括任何信息传递介质。本领域技术人员熟悉调制数据信号,其以将信息编码在该信号中的方式来设置与改变其特征中的一个或多个特征。以上的任意种的组合也包括在计算机可读介质的范围之内。
本文中描述的方法可被编码为包括在计算机可读介质中的可执行指令,该计算机可读介质包括但不限于计算机存储介质、存储器件和/或存储器器件。这些指令在被处理器执行时致使该处理器执行本文中描述的方法的至少一部分。
尽管结合示例性存储器验证***环境对本发明进行了描述,但本发明的各实施例可用于众多其它通用或专用存储器验证***环境或配置。存储器验证***环境不旨在对本发明的任何方面的使用范围或功能提出任何限制。此外,存储器验证***环境也不应被解释成具有与示例性操作环境中所示出的组件中的任意组件或其组合有关的任何依赖或要求。适于与本文中所描述的实施例一起使用的公知的存储器验证***、环境和/或配置的示例包括,但不限于,嵌入式计算设备、个人计算机、服务器计算机、手持式或膝上型设备、多处理器***、基于微处理器的***、机顶盒、可编程消费电子产品、移动电话、网络PC、迷你计算机、大型计算机、包括上述***或设备中的任一个的分布式计算环境等。
可以在由一个或多个计算机或其它设备执行的诸如程序组件或模块的计算机可执行指令的一般上下文中描述实施例。可以利用任何数量的组件或模块及其组织来实现本发明的方面。例如,各实施例不仅限于附图中所示出并且在本文中所描述的特定计算机可执行指令或特定组件或模块。替代地,替换实施例可以包括具有比本文中所示出和描述的功能更多或更少功能的不同的计算机可执行指令或组件。
本文中所示出和描述的实施例中的操作的执行或实现的顺序不是必需的,除非另外指定。即,除非另外指定,否则可以按任何顺序执行操作,且实施例可以包括与本文中所公开的操作相比额外的或更少的操作。例如,构想了在一个操作之前、与一个操作同时地或在一个操作之后执行或实施另一个具体操作是在所描述的实施例的范围之内的。
尽管在某些附图中可能示出了本发明的各种实施例的具体特征而在其他附图中可能没有示出,然而这仅是为了方便。根据本发明的原理,可与附图的任何特征组合地引用和/或要求保护任何其他附图的任何特征。
所撰写本说明书使用示例来公开包括最佳模式的本发明,并且还使得本领域技术人员能够实践本发明,包括制作和使用任何设备或***,并执行任何所结合的方法。本发明的可专利范围由权利要求书来限定,并且可包括本领域技术人员想到的其他示例。此类其他示例旨在落在权利要求书的范围内,如果此类其他示例具有不偏离权利要求书的字面语言的结构元件,或者如果它们包括非本质上异于权利要求书的字面语言的等效结构元件。

Claims (26)

1.一种用于验证存储器器件的完整性的方法,所述方法包括:
通过耦合于所述存储器器件的处理器,在第一时间计算与所述存储器器件内至少一个存储器位置相对应的存储器块的第一校验和,同时所述存储器块被映射到第一文件的第一部分;
将所述存储器块与所述存储器块在所述第一时间被映射到的所述第一文件的所述第一部分以及与表示在所述第一时间的所述存储器块内的数据的所述第一校验和相关联;
通过所述处理器确定所述存储器块在所述第一时间之后的第二时间是否被映射到所述第一文件的所述第一部分;以及
至少基于确定所述存储器块在所述第二时间被映射到所述第一文件的所述第一部分,通过所述处理器指示所述第一校验和表示在所述第二时间的所述存储器块内的预期数据,
其中所述计算、所述确定以及所述指示发生在所述处理器正执行一个或多个应用程序的时间期间。
2.如权利要求1所述的方法,还包括基于确定在所述第一时间和所述第二时间之间没有执行与所述第一文件相对应的写操作而指示所述第一校验和表示在所述第二时间的所述存储器块内的预期数据。
3.如权利要求2所述的方法,还包括通过将在所述第一时间的与所述第一文件相关联的第一写计数与在所述第二时间的与所述第一文件相关联的第二写计数进行比较来确定在所述第一时间和所述第二时间之间没有执行与所述第一文件相对应的写操作。
4.如权利要求1所述的方法,还包括基于确定在所述第二时间没有与所述第一文件相对应的写操作待决而指示所述第一校验和表示在所述第二时间的所述存储器块内的预期数据。
5.如权利要求1所述的方法,其中确定所述存储器块在所述第二时间是否被映射到所述第一文件的所述第一部分包括确定所述存储器块是否被分配到操作***内核文本。
6.如权利要求1所述的方法,其中在所述第一时间计算存储器块的所述第一校验和包括:
接收与所述存储器器件内的第一存储器位置相对应的地址;以及
计算与所述第一存储器位置对应的所述存储器块的所述第一校验和。
7.如权利要求6所述的方法,还包括基于预定义的存储器块大小来计算所述存储器块的所述第一校验和。
8.如权利要求1所述的方法,其中确定所述存储器块是否在所述第二时间被映射到所述第一文件的所述第一部分包括:标识与所述存储器器件内的第一存储器位置相对应的虚拟存储器的页,所述第一存储器位置与存储器件内的第二存储器位置相对应。
9.如权利要求1所述的方法,还包括基于确定所述存储器块在所述第二时间没有被映射到所述第一文件的所述第一部分而将所述存储器块与所述存储器块在所述第二时间所映射到的第二文件的第二部分相关联。
10.如权利要求1所述的方法,还包括如果所述处理器指示所述第一校验和表示在所述第二时间的所述存储器块内的预期数据,则在所述第二时间由所述处理器计算所述存储器块的第二校验和;以及
将所述第一校验和与所述第二校验和进行比较。
11.一种用于验证存储器器件的完整性的***,所述***包括:
存储器器件,包括多个存储器位置;以及
耦合于所述存储器器件的处理器,所述处理器包括:
用于标识与所述存储器器件内的所述多个存储器位置的至少一个存储器位置相对应的存储器块的部件;
用于在第一时间计算所述存储器块的校验和、同时所述存储器块被映射到第一文件的第一部分的部件;
用于将所述存储器块与所述存储器块在所述第一时间所映射到的所述第一文件的所述第一部分以及与表示在所述第一时间的所述存储器块内的数据的校验和相关联的部件;
用于确定所述存储器块在所述第一时间之后的第二时间是否被映射到所述第一文件的所述第一部分的部件;以及
用于至少基于确定所述存储器块在所述第二时间被映射到所述第一文件的所述第一部分、指示所述校验和表示在所述第二时间的所述存储器块内的预期数据的部件。
12.如权利要求11所述的***,其中所述处理器还包括:用于当所述存储器块在所述第二时间没有被映射到所述第一文件的所述第一部分时将所述存储器块与所述存储器块在所述第二时间所映射到第二文件的第二部分相关联的部件。
13.如权利要求11所述的***,其中所述处理器还包括:用于当所述存储器块在所述第二时间没有被映射到所述第一文件的所述第一部分时指示所述校验和不表示所标识的存储器块内的预期数据的部件。
14.如权利要求11所述的***,其中所述处理器还包括:用于至少通过确定所述存储器块是否被分配到操作***内核文本来确定所述存储器块在所述第二时间是否被映射到所述第一文件的所述第一部分的部件。
15.如权利要求11所述的***,其中所述***还包括耦合于所述处理器和所述存储器器件中的至少一个的存储器件,其中所述处理器还包括:
用于通过标识与所述存储器器件内的第一存储器位置相对应的虚拟存储器的页来标识所述存储器块的部件,所述第一存储器位置与所述存储器件内的第二存储器位置相对应。
16.如权利要求15所述的***,其中所述存储器件被配置成存储所述第一文件。
17.如权利要求11所述的***,其中所述处理器还包括:
用于确定在所述第一时间和所述第二时间之间是否已经执行了与所述第一文件相对应的写操作的部件;以及
用于基于确定在所述第一时间和所述第二时间之间没有执行与所述第一文件相对应的写操作、指示所述校验和表示所标识的存储器块内的预期数据的部件。
18.如权利要求17所述的***,其中所述处理器还包括:
用于通过将在所述第一时间的与所述第一文件相关联的第一写计数与在所述第二时间的与所述第一文件相关联的第二写计数进行比较来确定在所述第一时间和所述第二时间之间是否已经执行了与所述第一文件相对应的写操作的部件。
19.如权利要求11所述的***,其中所述处理器还包括:
用于确定在所述第二时间与所述第一文件相对应的写操作是否待决的部件;以及
用于进一步基于确定在所述第二时间没有与所述第一文件相对应的写操作待决来指示所述校验和表示所标识的存储器块内的预期数据的部件。
20.一种计算机可执行装置,所述计算机可执行装置用于使用耦合于存储器器件的至少一个处理器来验证所述存储器器件的完整性,所述计算机可执行装置包括:
控制组件,所述控制组件在由所述至少一个处理器执行时致使所述至少一个处理器:
在所述处理器还在操作***内执行一个或多个应用程序的时间期间标识与所述存储器器件内的至少一个存储器位置相对应的存储器块;以及
在第一时间计算所述存储器块的校验和,同时所述存储器块被映射到第一文件的第一部分;
指纹化组件,所述指纹化组件在由所述至少一个处理器执行时致使所述至少一个处理器:
将所述存储器块与所标识的存储器块在所述第一时间所映射到的所述第一文件的所述第一部分以及与表示在所述第一时间的所标识的存储器块内的数据的所述校验和相关联;以及
确定所述存储器块在第二时间是否被映射到所述第一文件的所述第一部分;以及
结果组件,所述结果组件在由所述至少一个处理器执行时致使所述至少一个处理器:
当所述存储器块在所述第二时间被映射到所述第一文件的所述第一部分时计算表示在所述第二时间的所述存储器块内的数据的第二校验和;以及
指示所述第二校验和是否等于所述校验和。
21.一种用于验证存储器器件的完整性的方法,所述方法包括:
通过耦合于所述存储器器件的处理器,标识与所述存储器器件内的至少一个存储器位置相对应的存储器块,所述存储器块与所述存储器块在第一时间被映射到的第一文件的第一部分以及与表示在所述第一时间的所述存储器块内的数据的先前校验和相关联;
通过所述处理器确定所述存储器块在所述第一时间之后的第二时间是否被映射到所述第一文件的所述第一部分;以及
至少基于确定所述存储器块在所述第二时间被映射到所述第一文件的所述第一部分,基于通过将在所述第一时间的与所述第一文件相关联的第一写计数与在所述第二时间的与所述第一文件相关联的第二写计数进行比较来确定在所述第一时间和所述第二时间之间没有执行与所述第一文件相对应的写操作而通过所述处理器指示所述先前校验和表示在所述第二时间的所述存储器块内的预期数据。
22.一种用于验证存储器器件的完整性的方法,所述方法包括:
通过耦合于所述存储器器件的处理器,标识与所述存储器器件内的至少一个存储器位置相对应的存储器块,所述存储器块与所述存储器块在第一时间被映射到的第一文件的第一部分以及与表示在所述第一时间的所述存储器块内的数据的先前校验和相关联;
通过所述处理器确定所述存储器块在所述第一时间之后的第二时间是否被映射到所述第一文件的所述第一部分;以及
至少基于确定所述存储器块在所述第二时间被映射到所述第一文件的所述第一部分,基于确定在所述第二时间没有与所述第一文件相对应的写操作待决而通过所述处理器指示所述先前校验和表示在所述第二时间的所述存储器块内的预期数据。
23.一种用于验证存储器器件的完整性的方法,所述方法包括:
通过耦合于所述存储器器件的处理器,标识与所述存储器器件内的至少一个存储器位置相对应的存储器块,所述存储器块与所述存储器块在第一时间被映射到的第一文件的第一部分以及与表示在所述第一时间的所述存储器块内的数据的先前校验和相关联;
通过所述处理器确定所述存储器块在所述第一时间之后的第二时间是否被映射到所述第一文件的所述第一部分;
至少基于确定所述存储器块在所述第二时间被映射到所述第一文件的所述第一部分,通过所述处理器指示所述先前校验和表示在所述第二时间的所述存储器块内的预期数据;
其中标识所述存储器块包括接收与所述存储器器件内的第一存储器位置相对应的地址;以及基于预定义的存储器块大小来标识与所述第一存储器位置对应的存储器块。
24.一种用于验证存储器器件的完整性的***,所述***包括:
存储器器件,包括多个存储器位置;以及
耦合于所述存储器器件的处理器,所述处理器包括:
用于标识与所述存储器器件内的所述多个存储器位置的至少一个存储器位置相对应的存储器块的部件;
用于将所标识的存储器块与所述所标识的存储器块在第一时间所映射到的第一文件的第一部分以及表示在所述第一时间的所述所标识的存储器块内的数据的校验和相关联的部件;
用于确定所述所标识的存储器块在所述第一时间之后的第二时间是否被映射到所述第一文件的所述第一部分的部件;
用于至少基于确定所述所标识的存储器块在所述第二时间被映射到所述第一文件的所述第一部分、指示所述校验和表示所述所标识的存储器块内的预期数据的部件;以及
用于通过至少确定所述所标识的存储器块是否被分配给操作***内核文本来确定所述所标识的存储器块在所述第二时间是否被映射到所述第一文件的所述第一部分的部件。
25.一种用于验证存储器器件的完整性的***,所述***包括:
存储器器件,包括多个存储器位置;
耦合于处理器和所述存储器器件中的至少一个的存储器件;以及
耦合于所述存储器器件的所述处理器,所述处理器包括:
用于通过标识与所述存储器件内的第二存储器位置相对应的第一存储器位置的页来标识与所述存储器器件内的所述多个存储器位置的至少一个存储器位置相对应的存储器块的部件;
用于将所标识的存储器块与所述所标识的存储器块在第一时间所映射到的第一文件的第一部分以及表示在所述第一时间的所述所标识的存储器块内的数据的校验和相关联的部件;
用于确定所述所标识的存储器块在所述第一时间之后的第二时间是否被映射到所述第一文件的所述第一部分的部件;
用于至少基于确定所述所标识的存储器块在所述第二时间被映射到所述第一文件的所述第一部分、指示所述校验和表示所述所标识的存储器块内的预期数据的部件。
26.如权利要求25所述的***,其中所述存储器件被配置成存储所述第一文件。
CN201180022724.0A 2010-05-06 2011-04-29 用于验证存储器器件完整性的方法和*** Expired - Fee Related CN103026342B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US12/775205 2010-05-06
US12/775,205 US8370689B2 (en) 2010-05-06 2010-05-06 Methods and system for verifying memory device integrity
PCT/US2011/034563 WO2012015503A2 (en) 2010-05-06 2011-04-29 Methods and system for verifying memory device integrity

Publications (2)

Publication Number Publication Date
CN103026342A CN103026342A (zh) 2013-04-03
CN103026342B true CN103026342B (zh) 2016-06-22

Family

ID=44902768

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201180022724.0A Expired - Fee Related CN103026342B (zh) 2010-05-06 2011-04-29 用于验证存储器器件完整性的方法和***

Country Status (5)

Country Link
US (1) US8370689B2 (zh)
EP (1) EP2567320B1 (zh)
CN (1) CN103026342B (zh)
CA (1) CA2789339A1 (zh)
WO (1) WO2012015503A2 (zh)

Families Citing this family (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10055251B1 (en) 2009-04-22 2018-08-21 The Trustees Of Columbia University In The City Of New York Methods, systems, and media for injecting code into embedded devices
US20110107325A1 (en) * 2009-11-03 2011-05-05 Jack Matthew Early Detection of Errors in a Software Installation
US9392017B2 (en) * 2010-04-22 2016-07-12 The Trustees Of Columbia University In The City Of New York Methods, systems, and media for inhibiting attacks on embedded devices
US8335951B2 (en) 2010-05-06 2012-12-18 Utc Fire & Security Americas Corporation, Inc. Methods and system for verifying memory device integrity
DE102011108077A1 (de) * 2010-08-13 2012-03-22 Lfk-Lenkflugkörpersysteme Gmbh Verfahren zur Speicherplatzverwaltung in einem multitaskingfähigen Datenverarbeitungssystem
US20120159085A1 (en) * 2010-12-21 2012-06-21 Timothy Steven Potter Methods and system for verifying memory device integrity
KR102132501B1 (ko) 2012-02-15 2020-07-09 더 트러스티이스 오브 콜롬비아 유니버시티 인 더 시티 오브 뉴욕 매립 디바이스에 대한 공격을 금지하기 위한 방법, 시스템 및 미디어
US10657262B1 (en) 2014-09-28 2020-05-19 Red Balloon Security, Inc. Method and apparatus for securing embedded device firmware
CN108255633B (zh) * 2016-12-28 2021-07-30 旺宏电子股份有限公司 存储控制方法、存储装置
US10740186B2 (en) * 2017-05-15 2020-08-11 The Boeing Company High data integrity processing system
CN112380046B (zh) * 2020-11-10 2023-12-22 北京灵汐科技有限公司 计算结果校验方法、***、装置、设备及存储介质

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6625730B1 (en) * 2000-03-31 2003-09-23 Hewlett-Packard Development Company, L.P. System for validating a bios program and memory coupled therewith by using a boot block program having a validation routine
US6678837B1 (en) * 2000-06-30 2004-01-13 Intel Corporation Processor control flow monitoring using a signature table for soft error detection
US6839763B1 (en) * 2001-02-28 2005-01-04 Emc Corporation System and method for expediting transfer of data from a local storage facility to a remote storage facility
CN1637725A (zh) * 2004-01-09 2005-07-13 国际商业机器公司 用于保留存储器的方法、***及产品
US8676767B2 (en) * 2003-03-14 2014-03-18 International Business Machines Corporation Real time XML data update identification

Family Cites Families (29)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4727544A (en) 1986-06-05 1988-02-23 Bally Manufacturing Corporation Memory integrity checking system for a gaming device
EP0541281B1 (en) * 1991-11-04 1998-04-29 Commvault Systems, Inc. Incremental-computer-file backup using signatures
US5448719A (en) * 1992-06-05 1995-09-05 Compaq Computer Corp. Method and apparatus for maintaining and retrieving live data in a posted write cache in case of power failure
US5539879A (en) 1995-05-24 1996-07-23 Dell U.S.A., L.P. Checksum technique for verifying integrity of disk space reserved for suspend-to-disk operations
US6092229A (en) 1996-10-09 2000-07-18 Lsi Logic Corporation Single chip systems using general purpose processors
US6012063A (en) * 1998-03-04 2000-01-04 Starfish Software, Inc. Block file system for minimal incremental data transfer between computing devices
US6247151B1 (en) 1998-06-30 2001-06-12 Intel Corporation Method and apparatus for verifying that data stored in a memory has not been corrupted
TW451212B (en) 1999-12-03 2001-08-21 Macronix Int Co Ltd Read only memory chip having a built in testing circuit
US6449683B1 (en) 1999-12-14 2002-09-10 Intel Corporation Using non-volatile memory for power management in a computer
US7020835B2 (en) 2000-10-19 2006-03-28 Oracle International Corporation Enhancements to data integrity verification mechanism
US6694451B2 (en) * 2000-12-07 2004-02-17 Hewlett-Packard Development Company, L.P. Method for redundant suspend to RAM
US6671839B1 (en) * 2002-06-27 2003-12-30 Logicvision, Inc. Scan test method for providing real time identification of failing test patterns and test bist controller for use therewith
US7020798B2 (en) 2002-06-27 2006-03-28 Microsoft Corporation Detecting low-level data corruption
US7152193B2 (en) 2002-08-13 2006-12-19 Lsi Logic Corporation Embedded sequence checking
JP4399704B2 (ja) * 2003-03-27 2010-01-20 ソニー株式会社 情報処理装置および方法、プログラム、並びに記録媒体
US20050071730A1 (en) 2003-09-30 2005-03-31 Lattice Semiconductor Corporation Continuous self-verify of configuration memory in programmable logic devices
US7143314B2 (en) 2003-10-01 2006-11-28 General Motors Corporation Method and apparatus for ensuring integrity of critical RAM variables
US7434020B2 (en) 2003-12-31 2008-10-07 Microsoft Corporation Overwrite detection diagnostic for memory heap
US7831838B2 (en) * 2004-03-05 2010-11-09 Microsoft Corporation Portion-level in-memory module authentication
US7415654B2 (en) 2004-06-23 2008-08-19 Broadcom Corporation Data integrity checking
JP2006012046A (ja) 2004-06-29 2006-01-12 Oki Electric Ind Co Ltd システムlsi
US7308605B2 (en) 2004-07-20 2007-12-11 Hewlett-Packard Development Company, L.P. Latent error detection
US7424641B2 (en) 2005-04-06 2008-09-09 Delphi Technologies, Inc. Control system and method for validating operation of the control system
CN1971536A (zh) 2005-11-24 2007-05-30 鸿富锦精密工业(深圳)有限公司 基本输入输出***的纠错***及方法
US8631494B2 (en) * 2006-07-06 2014-01-14 Imation Corp. Method and device for scanning data for signatures prior to storage in a storage device
WO2008026238A1 (fr) * 2006-08-28 2008-03-06 Mitsubishi Electric Corporation Système de traitement de données, procédé de traitement de données, et programme
US7904708B2 (en) * 2008-02-18 2011-03-08 Dell Products L.P. Remote management of UEFI BIOS settings and configuration
US8140537B2 (en) * 2009-07-21 2012-03-20 International Business Machines Corporation Block level tagging with file level information
US8335951B2 (en) 2010-05-06 2012-12-18 Utc Fire & Security Americas Corporation, Inc. Methods and system for verifying memory device integrity

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6625730B1 (en) * 2000-03-31 2003-09-23 Hewlett-Packard Development Company, L.P. System for validating a bios program and memory coupled therewith by using a boot block program having a validation routine
US6678837B1 (en) * 2000-06-30 2004-01-13 Intel Corporation Processor control flow monitoring using a signature table for soft error detection
US6839763B1 (en) * 2001-02-28 2005-01-04 Emc Corporation System and method for expediting transfer of data from a local storage facility to a remote storage facility
US8676767B2 (en) * 2003-03-14 2014-03-18 International Business Machines Corporation Real time XML data update identification
CN1637725A (zh) * 2004-01-09 2005-07-13 国际商业机器公司 用于保留存储器的方法、***及产品

Also Published As

Publication number Publication date
WO2012015503A2 (en) 2012-02-02
CN103026342A (zh) 2013-04-03
EP2567320A2 (en) 2013-03-13
CA2789339A1 (en) 2012-02-02
EP2567320A4 (en) 2014-01-01
US8370689B2 (en) 2013-02-05
WO2012015503A3 (en) 2012-07-26
EP2567320B1 (en) 2019-08-28
US20110276837A1 (en) 2011-11-10

Similar Documents

Publication Publication Date Title
CN103003799B (zh) 用于验证存储器器件完整性的方法和***
CN103026342B (zh) 用于验证存储器器件完整性的方法和***
CN105843699B (zh) 用于错误监视与校正的动态随机存取存储器设备与方法
US9372743B1 (en) System and method for storage management
CN102929750B (zh) 非易失性介质肮脏区段跟踪
KR101870521B1 (ko) 스토리지 저널링을 개선하는 방법 및 시스템
US9690642B2 (en) Salvaging event trace information in power loss interruption scenarios
CN102890647B (zh) 一种数据的存储与更新方法及装置
CN106681874B (zh) 存储掉电保护功能的测试方法及装置
US20140258792A1 (en) Symmetrical Data Replication For Failure Management In Non-Volatile Memory Systems
US20060075287A1 (en) Detecting data integrity
CN109144766B (zh) 一种数据存储、重构方法和装置、及电子设备
CN116244127A (zh) 一种硬盘检测方法、装置、设备以及存储介质
US20210034503A1 (en) A method of accessing metadata when debugging a program to be executed on processing circuitry
US9418100B1 (en) System and method for storage management
CN102591733B (zh) 用于验证存储器器件完整性的方法和***
CN118244989A (zh) 一种日志处理方法、装置、设备及可读存储介质
CN105320614A (zh) 一种保护用量数据的存储处理方法及装置
CN114911408A (zh) 一种存储设备的数据处理方法、装置及存储设备
CN105637493A (zh) 频繁使用的去重复对象的完整性
JP2013161151A (ja) メモリ装置及びメモリパトロールによるデータ化け回避方法

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20160622

Termination date: 20170429

CF01 Termination of patent right due to non-payment of annual fee