CN103003799B - 用于验证存储器器件完整性的方法和系统 - Google Patents
用于验证存储器器件完整性的方法和系统 Download PDFInfo
- Publication number
- CN103003799B CN103003799B CN201180022727.4A CN201180022727A CN103003799B CN 103003799 B CN103003799 B CN 103003799B CN 201180022727 A CN201180022727 A CN 201180022727A CN 103003799 B CN103003799 B CN 103003799B
- Authority
- CN
- China
- Prior art keywords
- memory block
- verification
- memory
- processor
- previous verification
- 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
Links
Classifications
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C29/00—Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
- G11C29/04—Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
- G11C29/08—Functional testing, e.g. testing during refresh, power-on self testing [POST] or distributed testing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/08—Error detection or correction by redundancy in data representation, e.g. by using checking codes
- G06F11/10—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
- G06F11/1004—Adding 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
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C29/00—Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
- G11C29/04—Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
- G11C2029/0401—Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals in embedded memories
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C29/00—Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
- G11C29/04—Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
- G11C2029/0409—Online test
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C29/00—Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
- G11C29/04—Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
- G11C2029/0411—Online error correction
Landscapes
- Engineering & Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Quality & Reliability (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
- Debugging And Monitoring (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 (19)
1.一种用于验证存储器器件的完整性的方法,所述方法包括:
通过耦合于所述存储器器件的处理器,标识与所述存储器器件内的至少一个存储器位置相对应的至少一个存储器块,所述至少一个存储器块包括与先前校验和相关联的第一存储器块,其中,所述先前校验和表示在先前时刻存储器块内所包含的数据;
通过所述处理器确定与所述第一存储器块相关联的写操作是否自所述先前校验和被计算以来已经被执行;
通过所述处理器,至少部分地基于所述第一存储器块内的数据计算当前校验和;
确定所述当前校验和是否等于所述先前校验和;
当所述当前校验和不等于所述先前校验和时,经由通知接口指示对所述第一存储器块的验证失败;
当所述当前校验和等于所述先前校验和时,经由所述处理器指示对所述第一存储器块的验证成功,并且记录第一时间,在所述第一时间处所述当前校验和被确定为等于所述先前校验和;
在所述第一时间之后的第二时间处,通过所述处理器确定所述第一时间是否比预定的阈值使用期限长;以及
当所述第一时间比所述预定的阈值使用期限长并且没有与所述第一存储器块相关联的写操作已被执行时,计算新的当前校验和。
2.如权利要求1所述的方法,其中确定与所述第一存储器块相关联的写操作是否自所述先前校验和被计算以来已经被执行包括确定所述第一存储器块被指定为只读。
3.如权利要求1所述的方法,其中确定与所述第一存储器块相关联的写操作是否自所述先前校验和被计算以来已经被执行包括确定与所述第一存储器块相关联的先前文件写计数等于与所述第一存储器块相关联的当前文件写计数。
4.如权利要求1所述的方法,还包括,对于多个存储器块中的每个存储器块,确定与所述存储器块相关联的写操作是否自所述先前校验和被计算以来已经被执行,确定当前校验和,确定所述当前校验和是否等于所述先前校验和,以及指示对所述存储器块的验证失败。
5.如权利要求1所述的方法,还包括,当所述先前校验和不表示所述第一存储器内的预期数据时,将所述当前校验和定义为所述第一存储器块的先前校验和。
6.如权利要求1所述的方法,还包括,在确定与所述第一存储器块相关联的写操作是否自所述先前校验和被计算以来已经被执行之前,禁止所述处理器内的中断信号。
7.如权利要求6所述的方法,还包括,在确定所述当前校验和是否等于所述先前校验和之后,使能所述处理器内的中断信号。
8.如权利要求1所述的方法,还包括:
通过所述处理器,登记所述处理器内的中断信号的通知;以及
当在确定与所述第一存储器块相关联的写操作是否自所述先前校验和被计算以来已经被执行之后接收到中断信号的通知时,中止以下中的一个或多个:计算所述当前校验和;以及确定所述当前校验和是否等于所述先前校验和。
9.如权利要求1所述的方法,其中经由通知接口指示验证失败包括以下中的一个或多个:经由呈现接口呈现可见警告,经由呈现接口呈现可听警告,以及经由通信接口传送验证失败消息。
10.如权利要求1所述的方法,还包括通过确定所述第一存储器块是否被分配到操作系统内核文本来确定所述先前校验和是否表示所述第一存储器块内的预期数据。
11.如权利要求1所述的方法,其中标识至少一个存储器块包括标识表示单个文件的内容的多个存储器块。
12.一种用于验证存储器器件的完整性的系统,所述系统包括:
存储器器件,包括多个存储器位置;
耦合于所述存储器器件的处理器,并且对于与所述多个存储器位置中的一个或多个存储器位置相对应的多个存储器块中的每个存储器块,所述处理器被编程成:
确定与所述存储器块相关联的写操作是否自先前校验和被计算以来已经被执行,所述先前校验和表示在前面时间的所述存储器块内的数据;
计算表示所述存储器块内的数据的当前校验和,所述存储器块与所述先前校验和相关联;
确定所述当前校验和是否等于所述先前校验和;
当所述当前校验和等于所述先前校验和时,指示对所述存储器块的验证成功,并且记录第一时间,在所述第一时间处所述当前校验和被确定为等于所述先前校验和;
在所述第一时间之后的第二时间处,确定所述第一时间是否比预定的阈值使用期限长;以及当所述第一时间比所述预定的阈值使用期限长并且没有与所述存储器块相关联的写操作已被执行时,计算新的当前校验和;以及
耦合于所述处理器的通知接口,并且,当针对所述多个存储器块的第一存储器块的当前校验和不等于针对所述第一存储器块的先前校验和时,所述通知接口被配置成指示验证失败。
13.如权利要求12所述的系统,其中所述处理器被进一步编程成通过标识与所述存储器器件内的所有存储器位置相对应的多个存储器块来标识所述多个存储器块。
14.如权利要求12所述的系统,其中所述处理器被进一步编程成通过标识与单个文件相对应的多个存储器块来标识所述多个存储器块。
15.如权利要求12所述的系统,其中所述处理器被进一步编程成为针对所述多个存储器块中的每个存储器块重复地执行以下步骤:确定与所述存储器块相关联的写操作是否自所述先前校验和被计算以来已经被执行,计算当前校验和,以及确定所述当前校验和是否等于所述先前校验和。
16.如权利要求12所述的系统,其中当与存储器块相关联的先前校验和不表示所述存储器块内的预期数据时,所述处理器被进一步编程成将所述当前校验和定义为所述存储器块的先前校验和。
17.如权利要求12所述的系统,其中,对于所述多个存储器块中的每个存储器块,所述处理器被进一步编程成:
在确定与所述存储器块相关联的写操作是否自所述先前校验和被计算以来已经被执行之前禁止所述处理器内的中断信号;以及
在确定所述当前校验和是否等于所述先前校验和之后使能所述处理器内的中断信号。
18.如权利要求12所述的系统,其中确定与所述存储器块相关联的写操作是否自所述先前校验和被计算以来已经被执行包括确定所述存储器块被指定为只读。
19.如权利要求12所述的系统,其中确定与所述存储器块相关联的写操作是否自所述先前校验和被计算以来已经被执行包括确定与所述存储器块相关联的先前文件写计数等于与所述存储器块相关联的当前文件写计数。
Applications Claiming Priority (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US12/775,213 US8335951B2 (en) | 2010-05-06 | 2010-05-06 | Methods and system for verifying memory device integrity |
US12/775213 | 2010-05-06 | ||
US12/775,213 | 2010-05-06 | ||
PCT/US2011/034570 WO2012012007A2 (en) | 2010-05-06 | 2011-04-29 | Methods and system for verifying memory device integrity |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103003799A CN103003799A (zh) | 2013-03-27 |
CN103003799B true CN103003799B (zh) | 2016-08-03 |
Family
ID=44902771
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201180022727.4A Expired - Fee Related CN103003799B (zh) | 2010-05-06 | 2011-04-29 | 用于验证存储器器件完整性的方法和系统 |
Country Status (7)
Country | Link |
---|---|
US (1) | US8335951B2 (zh) |
EP (1) | EP2567319B1 (zh) |
CN (1) | CN103003799B (zh) |
CA (1) | CA2789169C (zh) |
ES (1) | ES2641311T3 (zh) |
PL (1) | PL2567319T3 (zh) |
WO (1) | WO2012012007A2 (zh) |
Families Citing this family (19)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8370689B2 (en) | 2010-05-06 | 2013-02-05 | Utc Fire & Security Americas Corporation, Inc. | Methods and system for verifying memory device integrity |
US9021336B1 (en) | 2012-05-22 | 2015-04-28 | Pmc-Sierra, Inc. | Systems and methods for redundantly storing error correction codes in a flash drive with secondary parity information spread out across each page of a group of pages |
US8996957B1 (en) | 2012-05-22 | 2015-03-31 | Pmc-Sierra, Inc. | Systems and methods for initializing regions of a flash drive having diverse error correction coding (ECC) schemes |
US9176812B1 (en) | 2012-05-22 | 2015-11-03 | Pmc-Sierra, Inc. | Systems and methods for storing data in page stripes of a flash drive |
US9183085B1 (en) | 2012-05-22 | 2015-11-10 | Pmc-Sierra, Inc. | Systems and methods for adaptively selecting from among a plurality of error correction coding schemes in a flash drive for robustness and low latency |
US8788910B1 (en) | 2012-05-22 | 2014-07-22 | Pmc-Sierra, Inc. | Systems and methods for low latency, high reliability error correction in a flash drive |
US9021333B1 (en) | 2012-05-22 | 2015-04-28 | Pmc-Sierra, Inc. | Systems and methods for recovering data from failed portions of a flash drive |
US9047214B1 (en) * | 2012-05-22 | 2015-06-02 | Pmc-Sierra, Inc. | System and method for tolerating a failed page in a flash device |
US8972824B1 (en) | 2012-05-22 | 2015-03-03 | Pmc-Sierra, Inc. | Systems and methods for transparently varying error correction code strength in a flash drive |
US8793556B1 (en) | 2012-05-22 | 2014-07-29 | Pmc-Sierra, Inc. | Systems and methods for reclaiming flash blocks of a flash drive |
US9021337B1 (en) | 2012-05-22 | 2015-04-28 | Pmc-Sierra, Inc. | Systems and methods for adaptively selecting among different error correction coding schemes in a flash drive |
US9117552B2 (en) * | 2012-08-28 | 2015-08-25 | Kingtiger Technology(Canada), Inc. | Systems and methods for testing memory |
US20150278010A1 (en) * | 2012-11-23 | 2015-10-01 | Freescale Semiconductor, Inc. | Digital device |
US9009565B1 (en) | 2013-03-15 | 2015-04-14 | Pmc-Sierra, Inc. | Systems and methods for mapping for solid-state memory |
US9081701B1 (en) | 2013-03-15 | 2015-07-14 | Pmc-Sierra, Inc. | Systems and methods for decoding data for solid-state memory |
US9208018B1 (en) | 2013-03-15 | 2015-12-08 | Pmc-Sierra, Inc. | Systems and methods for reclaiming memory for solid-state memory |
US9026867B1 (en) | 2013-03-15 | 2015-05-05 | Pmc-Sierra, Inc. | Systems and methods for adapting to changing characteristics of multi-level cells in solid-state memory |
US9053012B1 (en) | 2013-03-15 | 2015-06-09 | Pmc-Sierra, Inc. | Systems and methods for storing data for solid-state memory |
FR3121765A1 (fr) * | 2021-04-08 | 2022-10-14 | Proton World International N.V. | Procédé d'authentification |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN201319186Y (zh) * | 2008-11-14 | 2009-09-30 | 北京东方瑞安科技有限公司 | 数据安全交换移动存储装置 |
Family Cites Families (33)
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 |
GB2290890B (en) * | 1994-06-29 | 1999-03-24 | Mitsubishi Electric Corp | Information processing system |
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 |
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 |
US20030120858A1 (en) * | 2000-09-15 | 2003-06-26 | Matrix Semiconductor, Inc. | Memory devices and methods for use therewith |
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 |
US7000151B2 (en) * | 2002-07-18 | 2006-02-14 | Hewlett-Packard Development Company, L.P. | System and method for providing run-time type checking |
US7152193B2 (en) * | 2002-08-13 | 2006-12-19 | Lsi Logic Corporation | Embedded sequence checking |
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 |
US20080235501A1 (en) * | 2007-03-19 | 2008-09-25 | James Ray Bailey | Method For Detecting and Correcting Firmware Corruption |
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 |
US8370689B2 (en) | 2010-05-06 | 2013-02-05 | Utc Fire & Security Americas Corporation, Inc. | Methods and system for verifying memory device integrity |
-
2010
- 2010-05-06 US US12/775,213 patent/US8335951B2/en active Active
-
2011
- 2011-04-29 EP EP11810013.0A patent/EP2567319B1/en active Active
- 2011-04-29 WO PCT/US2011/034570 patent/WO2012012007A2/en active Application Filing
- 2011-04-29 PL PL11810013T patent/PL2567319T3/pl unknown
- 2011-04-29 CA CA2789169A patent/CA2789169C/en active Active
- 2011-04-29 CN CN201180022727.4A patent/CN103003799B/zh not_active Expired - Fee Related
- 2011-04-29 ES ES11810013.0T patent/ES2641311T3/es active Active
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN201319186Y (zh) * | 2008-11-14 | 2009-09-30 | 北京东方瑞安科技有限公司 | 数据安全交换移动存储装置 |
Also Published As
Publication number | Publication date |
---|---|
PL2567319T3 (pl) | 2018-01-31 |
CA2789169C (en) | 2019-05-21 |
CN103003799A (zh) | 2013-03-27 |
WO2012012007A3 (en) | 2012-04-19 |
US20110276844A1 (en) | 2011-11-10 |
EP2567319A4 (en) | 2014-01-01 |
WO2012012007A2 (en) | 2012-01-26 |
US8335951B2 (en) | 2012-12-18 |
EP2567319A2 (en) | 2013-03-13 |
EP2567319B1 (en) | 2017-09-06 |
CA2789169A1 (en) | 2012-01-26 |
ES2641311T3 (es) | 2017-11-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103003799B (zh) | 用于验证存储器器件完整性的方法和系统 | |
CN103026342B (zh) | 用于验证存储器器件完整性的方法和系统 | |
CN102929750B (zh) | 非易失性介质肮脏区段跟踪 | |
KR100873943B1 (ko) | 비휘발성 컴퓨터 메모리를 독출하기 위한 시스템 및 방법 | |
US9372743B1 (en) | System and method for storage management | |
KR101870521B1 (ko) | 스토리지 저널링을 개선하는 방법 및 시스템 | |
CN105843699A (zh) | 用于错误监视与校正的动态随机存取存储器设备与方法 | |
US10489066B1 (en) | Systems and methods for ensuring right-to-erasure compliance during data recovery | |
US20140173357A1 (en) | Salvaging event trace information in power loss interruption scenarios | |
CN118244989A (zh) | 一种日志处理方法、装置、设备及可读存储介质 | |
CN109801668A (zh) | 数据储存装置及应用于其上的操作方法 | |
US11501423B2 (en) | Dot-matrix product information encoding for food traceability | |
CN109144766B (zh) | 一种数据存储、重构方法和装置、及电子设备 | |
US7577804B2 (en) | Detecting data integrity | |
CN107301109A (zh) | 一种硬盘质量筛选方法及装置 | |
US8656066B2 (en) | Monitoring input/output operations to specific storage locations | |
CN111143125B (zh) | 一种mce错误处理方法、装置及电子设备和存储介质 | |
US20210034503A1 (en) | A method of accessing metadata when debugging a program to be executed on processing circuitry | |
CN102591733B (zh) | 用于验证存储器器件完整性的方法和系统 | |
US9418100B1 (en) | System and method for storage management | |
CN118565513A (zh) | 里程参数的写入方法、装置、计算机设备和存储介质 | |
CN105320614A (zh) | 一种保护用量数据的存储处理方法及装置 | |
CN112162709A (zh) | 查询数据正确性的方法、装置、计算机设备及存储介质 | |
CN105637493A (zh) | 频繁使用的去重复对象的完整性 |
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 | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20160803 Termination date: 20170429 |