CN106528322B - 检测数据的无记载损坏的方法和设备 - Google Patents
检测数据的无记载损坏的方法和设备 Download PDFInfo
- Publication number
- CN106528322B CN106528322B CN201610651758.0A CN201610651758A CN106528322B CN 106528322 B CN106528322 B CN 106528322B CN 201610651758 A CN201610651758 A CN 201610651758A CN 106528322 B CN106528322 B CN 106528322B
- Authority
- CN
- China
- Prior art keywords
- data
- memory location
- entry
- physical
- information
- 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.)
- Active
Links
Images
Classifications
-
- 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/1008—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
-
- E—FIXED CONSTRUCTIONS
- E06—DOORS, WINDOWS, SHUTTERS, OR ROLLER BLINDS IN GENERAL; LADDERS
- E06B—FIXED OR MOVABLE CLOSURES FOR OPENINGS IN BUILDINGS, VEHICLES, FENCES OR LIKE ENCLOSURES IN GENERAL, e.g. DOORS, WINDOWS, BLINDS, GATES
- E06B7/00—Special arrangements or measures in connection with doors or windows
- E06B7/28—Other arrangements on doors or windows, e.g. door-plates, windows adapted to carry plants, hooks for window cleaners
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0614—Improving the reliability of storage systems
- G06F3/0619—Improving the reliability of storage systems in relation to data integrity, e.g. data losses, bit errors
-
- A—HUMAN NECESSITIES
- A47—FURNITURE; DOMESTIC ARTICLES OR APPLIANCES; COFFEE MILLS; SPICE MILLS; SUCTION CLEANERS IN GENERAL
- A47L—DOMESTIC WASHING OR CLEANING; SUCTION CLEANERS IN GENERAL
- A47L1/00—Cleaning windows
-
- E—FIXED CONSTRUCTIONS
- E06—DOORS, WINDOWS, SHUTTERS, OR ROLLER BLINDS IN GENERAL; LADDERS
- E06B—FIXED OR MOVABLE CLOSURES FOR OPENINGS IN BUILDINGS, VEHICLES, FENCES OR LIKE ENCLOSURES IN GENERAL, e.g. DOORS, WINDOWS, BLINDS, GATES
- E06B3/00—Window sashes, door leaves, or like elements for closing wall or like openings; Layout of fixed or moving closures, e.g. windows in wall or like openings; Features of rigidly-mounted outer frames relating to the mounting of wing frames
- E06B3/32—Arrangements of wings characterised by the manner of movement; Arrangements of movable wings in openings; Features of wings or frames relating solely to the manner of movement of the wing
- E06B3/34—Arrangements of wings characterised by the manner of movement; Arrangements of movable wings in openings; Features of wings or frames relating solely to the manner of movement of the wing with only one kind of movement
- E06B3/42—Sliding wings; Details of frames with respect to guiding
- E06B3/46—Horizontally-sliding wings
- E06B3/4636—Horizontally-sliding wings for doors
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0638—Organizing or formatting or addressing of data
- G06F3/064—Management of blocks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0673—Single storage device
- G06F3/0679—Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Human Computer Interaction (AREA)
- Computer Security & Cryptography (AREA)
- Quality & Reliability (AREA)
- Civil Engineering (AREA)
- Structural Engineering (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
Abstract
提供了检测数据的无记载损坏的方法和设备。接收包括第一数据以及使用第一数据而导出的第二数据的编码信息。第二数据可以用来确定第一数据的准确性。在具有第一地址的第一存储器位置中存储第一数据。在具有第二地址的第二存储器位置中存储第二数据。存储用于确定第一地址的第一信息。存储用于确定第二地址的第二信息。使用第一信息存取第一数据也造成使用第二信息存取第二数据。
Description
技术领域
本发明的示例性实施例涉及一种检测数据的无记载损坏(silent corruption)的方法和系统。
背景技术
诸如闪存型SSD的传统SSD(固态驱动器、装置或盘)在块中存储数据。每个块包括一定数量的页。SSD使用逻辑块地址(LBA)线性编址。映射表将逻辑地址或虚拟地址映射到物理地址。映射表将对数据的请求中指定的地址有效地翻译成SSD上所述数据的正确的物理位置。
当存储在SSD的块中的数据的现有版本被更新时,数据的新的(更新的)版本被写入到不同的块,数据的旧的(现有的)版本在第一块中保留不变。映射表在存储数据的新的版本时更新,使得数据的当前的(最近的)版本的合适的位置可以正确地被识别。直到第一块中的数据被其它新数据擦除和/或取代(这在一段时间内不会发生)否则它将保留在第一块中。
使用各种技术在SSD中维持数据完整性。纠错码(ECC)防止由于硬件错误造成的读取错误。循环冗余校验(CRC)确保返回的数据在从SSD读取时与被写入到SSD的数据一样。
其它的技术尝试确保从正确位置检索到数据并且确保数据的当前版本被检索,即,在上面的示例中,采用技术来帮助确保从第二块检索到数据的当前版本而不是第一块中的数据的旧版本。这些技术对于大部分情况是有效的但是不能检测被称为“无记载损坏”的一种类型的数据损坏。在存在无记载损坏的情况下,可能不能检测到数据完整性的损失,所以数据可能看起开是有效的而实际上不是。
更具体地,可能存在被称为软错误或单粒子翻转(SEU)的稀少事件,这些稀少事件会在存储新版本的数据时防止映射表正确地更新。例如,SEU可以是中断或干扰更新处理的宇宙事件或宇宙射线的结果。
如果映射表没有正确地更新,它可能错误地指向一组数据的先前的版本或现在过时的版本,或者它可以指向已经被擦除的位置或包含与先前存储在该位置处的数据无关的不同的数据的位置。因此,对特定组的数据的请求将被映射到不正确的位置,将读取并返回在所述位置处的数据而不是实际上需要的数据。类似CRC的技术将不能检测到不正确的数据正在被返回,因为CRC将指示返回的数据是正确的而将不能指示返回的数据不是实际想要的数据。因此,用户(例如,主机或应用程序)将使用返回的数据,不能意识到数据不是想要的数据。这是上面被称为无记载损坏的所述类型的数据损坏。
例如,可以在每次数据被更新时通过产生感兴趣的数据的冗余组(例如。多达三组)来检测无记载损坏。当将使用数据时,可以读取并比较两组数据;如果它们不匹配,那么可以使用第三组来确定所述其它两组数据中的哪组是当前的。然而,这样的方法极大地增加存储数据所需要的存储器资源,数据的组的额外的读写以及比较增加处理资源和带宽的负担,尤其是考虑到作为数据收集和存储的发展中的副产品正在变得更加常见的大量事务和非常大的数据组(有时被称为“大数据”)。
发明内容
在根据本发明的实施例中,接收包括第一数据以及使用第一数据而导出的第二数据的编码信息。第一数据是感兴趣的数据(需要保护并维持其准确性和完整性的数据)。第二数据可以用来确定第一数据的准确性或有效性。第一数据可以在下文中仅被称为“数据”,第二数据可以在下文中被称为“摘要”(digest)以将其与感兴趣的数据区分开。在实施例中,摘要是附加到数据并包括可用来验证数据的有效性的监视值(guard value)的数据完整性扩展。
数据存储在具有第一地址的第一存储器位置中,与所述数据有关的摘要存储在具有第二地址的第二存储器位置中。在实施例中,第一存储器位置和第二存储器位置在单个物理装置(例如,同一个SSD)上。在另一个实施例中,第一存储器位置和第二存储器位置在不同的物理装置(例如,不同的SSD)上。在后者的实施例中,不同的物理装置可以是同一计算机系统的组件,或者它们可以是不同的计算机系统的组件。
产生并存储用来确定第一地址/存储器位置的第一信息,产生并存储用来确定第二地址/存储器位置的第二信息。在实施例中,第一信息包括映射表中的第一入口,第二信息包括同一映射表中的第二入口。在另一个实施例中,第一信息包括第一映射表中的入口,第二信息包括第二映射表中的入口。可以使用不同的操作和/或在不同的时刻产生第一信息和第二信息以实际上消除单粒子翻转(single event upset)或软错误(soft error)将影响两条信息的可能性。在实施例中,第一信息与第二信息之间有确定的关系,使用第一信息(例如,第一入口)存取数据也造成使用第二信息(例如,第二入口)存取与所述数据有关的摘要。
因此,数据以及与所述数据有关的摘要存储在不同的物理存储器位置(在同一存储装置上或在不同存储装置上)中,使用各自的信息条(例如,使用一个映射表中用于数据的入口以及同一映射表中或不同的映射表中用于摘要的入口)来定位数据及其摘要。如上所述,可以分别产生(存储)用来定位数据的信息以及用来定位与数据有关的摘要的信息,所以单粒子翻转或软错误影响两条信息的可能性如果不是零的话是很小的。无论如何,如果一条信息或另一条信息不正确(例如,如果一个入口或另一个入口没有正确地加入映射表),将防止无记载损坏。例如,如果没有更新用于数据的映射入口但更新了用于与数据有关的摘要的映射入口,那么可以读取数据的过时的版本,但是将读取摘要的当前版本。在这种情况下,数据及其摘要将不匹配,所以将不使用数据。
因此根据本发明的实施例可以例如用来解决诸如但不限于SSD的装置中的无记载损坏的问题。通过使用用于感兴趣的数据及其摘要的各自的位置信息(例如,映射入口)来分别存储感兴趣的数据及其摘要,有效且优雅地实现根据本发明的实施例并且不必增加额外的存储装置以及基本不对现有存储器、处理和带宽资源增加负担。例如,根据本发明的实施例不依赖于存储和比较数据的多个备份或其摘要以检测无记载损坏。这反过来可以降低功耗和操作成本。
在读了下面在各种附图中示出的实施例的详细的描述之后,本领域的普通技术人员将意识到本发明的各种实施例的这些和其它的目标及优势。
附图说明
附图示出了本公开的实施例并且与具体实施方式一起用来解释本公开的原理,附图并入且形成本说明书的一部分并且在附图中同样的标号描述同样的元件。
图1是根据其可实现根据本发明的实施例的存储装置的示例的框图。
图2是由根据本发明的实施例中的存储装置接收的编码数据的示例。
图3是根据其可实现根据本发明的实施例的设备的框图。
图4是根据其可实现根据本发明的实施例的系统或网络的框图。
图5是示出在根据本发明的实施例中用来存储数据的方法的示例的框图。
图6是示出在根据本发明的实施例中用来存储数据的另一种方法的示例的框图。
图7A和图7B示出在根据本发明的实施例中的映射表的使用的示例。
图8A和图8B示出在根据本发明的实施例中两个映射表的使用的示例。
图9和图10是在根据本发明的实施例中用来存储并存取数据的计算机实现方法的示例的流程图。
具体实施方式
现在将详细参照本公开的各种实施例,在附图中示出了本公开的示例。当结合这些实施例描述时,将理解的是,它们不意图将本公开限制于这些实施例。相反,本公开意图覆盖可以包括在如由权利要求所限定的本公开的精神和范围内的替代物、修改和等同物。此外,在本公开的下面详细的描述中,阐述了许多具体的细节以提供对本公开的彻底的理解。然而,将理解的是,可以在没有这些具体细节的情况下实践本公开。在其它实例中,没有详细地描述公知的方法、程序、组件和电路以免不必要地模糊本公开的方面。
下面的具体实施方式的一些部分呈现在计算机存储器内对数据比特进行操作的程序、逻辑块、处理和其他符号表示方面。这些描述和表示是数据处理领域的技术人员使用以向该领域的其他技术人员有效地传达他们工作的实质的手段。在本应用中,程序、逻辑块或进程等被设计为导致期望的结果的步骤或指令的自洽序列。步骤是利用关于物理量的物理操作的那些步骤。通常,虽然不是必须的,但是这些量采用能够在计算机系统中存储、传输、组合、比较以及另外操纵的电信号或磁信号的形式。主要出于普遍使用的原因,已经证明有时将这些信号称为事务、比特、值、要素、符号、字符、样品或像素等是方便的。
然而,应该记住的是,所有的这些术语和相似的术语与适当的物理量有关,并且仅是应用于这些量的方便的标签。除非如通过下面的讨论明显的另外特别指出,否则理解的是,在整个本公开中,利用诸如“接收”、“存储”、“读取”、“写入”、“索引”、“映射”、“存取”、“使用”、“确定”或“生成”等的术语的讨论指设备或计算机系统或类似的电子计算装置或处理器的动作和进程(例如,图9的流程图900和图10的流程图1000)。计算机系统或类似电子计算装置操纵并转换表示为在存储器、寄存器或其它这种信息存储、传输或显示装置内的物理(电子)量的数据。
可以在由一个或更多个计算机或其它装置执行的以诸如程序模块的计算机可读存储媒介的形式存在的计算机可执行指令的一般情况下讨论这里描述的实施例。以示例的方式,而非限制性的,计算机可读存储媒介可以包括非瞬时性计算机存储媒介和通信媒介。通常,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、组件、数据结构等。根据在各种实施例中的需要,可以组合或分散程序模块的功能。
计算机存储媒介包括在用于诸如计算机可读指令、数据结构、程序模块或其它数据的信息的存储的以任意方法或技术实现的易失性媒介和非易失性媒介、可移动媒介和非可移动媒介。计算机存储媒介包括但不限于随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程ROM(EEPROM)、闪存或其它存储器技术、光盘ROM(CD-ROM)、数字通用光盘(DVD)或其它光学存储、磁带盒、磁带、磁盘存储或其它磁存储设备,或者可以用来存储期望的信息以及可访问以检索该信息的任何其它媒介。
通信媒介可以实现计算机可执行指令、数据结构和程序模块,并包括任何信息传递媒介。以示例的方式,而非限制性的,通信媒介包括诸如有线网络或直接线连接的有线媒介以及诸如声学、射频(RF)、红外线和其它无线媒介的无线媒介。上述的任意的组合也可以包括在计算机可读媒介的范围之内。
图1是根据其可以实现根据本发明的实施例的存储装置100的示例的框图。在实施例中,存储装置100是固态装置、固态盘或固态驱动器(SSD)。在图1的示例中,由缓冲器110从与主机装置(未示出)的接口来接收编码数据50。主机接口可以是例如NVMe(非易失性存储器快速)接口。可选择的是,主机接口可以是例如串行或并行ATA(高级技术附件)接口、PCI(外围组件互连)快速接口(PCIe)或者串行或并行SCSI(小型计算机系统接口)的接口。然而,本发明不限于这些示例。
在图1实施例中,易失性存储器125可以用来存储将主机使用的虚拟地址或逻辑地址映射到存储装置100上的物理地址(具体地,用于非易失性存储器130中的物理位置的地址)的映射表。在实施例中,非易失性存储器130实现为NAND类闪存,尽管它可以替代地实现为NOR类闪存或其它非易失性媒介。通常,非易失性存储器130持久地存储数据。
控制器120广义上包括能够执行诸如与结合图9和图10描述的操作有关的指令的计算机可读指令的任意处理装置。控制器120可以是例如实现为ASIC(应用型专用集成电路)的精简指令集处理器。控制器120运行代码(例如,固件)以执行诊断、缓存以及安全功能、寻址非易失性存储器130、管理映射表,并且执行下面描述的或者本领域已知的其它功能。在实施例中,控制器120是NVMe控制器。
图1的存储装置100可以包括除了这些示出并描述的元件之外的其它元件,刚描述的元件可以执行除了这里描述的功能之外的其它功能。
图2是在通过根据本发明的实施例中的图1的存储装置100接收的编码数据50的示例。数据50包括第一数据210(将要被存储的感兴趣的数据;将要保护并维持其准确性和完整性的数据)。在实施例中,数据210包括多达512字节的信息;然而,本发明不限于此。支持许多不同大小的数据,例如,包括但不限于4096和8192字节的信息。
数据50也包括第二数据220,第二数据220可以被称为摘要或被称为保护信息。摘要220源于或使用数据210并且可以用来校验数据210的有效性。摘要220连接或附加到数据210。在实施例中,摘要220包括多达八字节的信息。
在实施例中,摘要220包括长度上可多达两个字节的监视值(guard value)。如上所述,监视值源于或使用数据210并且可以用于确定所述数据的有效性。例如,监视值可以是循环冗余校验(CRC)值或校验和。在实施例中,摘要220是数据完整性扩展(DIX);在这样的实施例中,摘要包括诸如四字节参考值和两字节应用值的其它信息。
图3是根据其可以实现根据本发明的实施例的设备或计算机系统300的框图。计算机系统300广义上包括能够执行诸如与结合图9和图10描述的操作有关的指令的计算机可读指令的任意单处理器或多处理器计算装置或系统。在它的最基础的配置中,计算机系统300可以包括至少一个处理电路(例如,处理器310)和至少一个存储器(例如,存储器320)。
图3的处理器310通常表示能够处理数据或解译并执行指令的任意类型或形式的处理单元或电路。存储器320通常表示能够存储数据和/或其它计算机可读指令的任意类型或形式的易失性存储装置或非易失性存储装置。存储器320的示例包括但不限制RAM、ROM、闪存或任意其它适当的存储器装置。
计算机系统300也可以包括除了处理器310和系统存储器320之外的组件或元件。例如,计算机系统300可以包括输入/输出(I/O)装置(未示出)通信接口330。通信接口330广义上表示能够促进计算机系统300通过诸如因特网的网络与一个或多个其它装置的通信的任意类型或形式的有线或无线通信装置或适配器。
在图3的示例中,计算机系统300包括至少两个存储装置331和332。在实施例中,存储装置331和332是诸如图1的存储装置100的SSD。
图4是根据其可以实现根据本发明的实施例的设备(计算机系统)的系统或网络450的框图。在图4的示例中,网络450包括计算机系统300和另一个计算机系统400。网络450通常表示包括但不限于例如内部网、广域网络(WAN)、局域网网络(LAN)、个人区域网络(PAN)、存储区域网络(SAN)、PCIe交换器和装置的网或因特网的任意有线(包括光纤)或无线电信或计算机网络。网络450可以包括附加的计算机系统以及诸如路由器和交换器的其它类型的装置。
在它的最基本配置中,计算机系统400可以包括与上面描述的计算机系统300中的对应的元件类似的至少一个处理电路(例如,处理器410)、至少一个存储器(例如,存储器420)和通信接口430。计算机系统400也可以包括除了示出并描述的这些组件或元件之外的组件或元件。在图4的示例中,计算机系统400包括至少一个存储装置431。在实施例中,存储装置431是诸如图1的存储装置100的SSD。
网络450可以包括分布式或共享式存储系统(例如,网络附接存储(network-attached storage)(NAS)系统或集群)或者是它们的一部分,分布式或共享式存储系统包括将文件类数据存储服务提供到网络中的其它装置(诸如应用服务器的客户端)的许多NAS装置(例如,计算机系统300和400或者存储装置331、332和431)。这些存储服务可以包括通常被称为“大数据”的非常大的数据集的存储、管理和保持。
例如,网络450可以包括通常存储并维持事务数据的数据库的联机事务处理(OLTP)系统或是它的一部分,例如,在这种情况下,图2的数据210可以是银行、航空业、保险公司、医疗服务提供者和零售商所使用的事务相关数据。数据库管理系统(DBMS)或分布式DBMS(DDBMS)可以穿过OLTP系统中的存储装置(例如,存储装置331、332和431)或计算机系统(例如,计算机系统300和400)的集群对数据库进行分区。
通常,在根据本发明的实施例中,数据210(图2)存储在具有第一地址的第一存储器位置中,摘要220存储在具有第二地址的第二存储器位置中。在实施例中,第一存储器位置和第二存储器位置在单个物理装置(例如,同一SSD)上。在另一个实施例中,第一存储器位置和第二存储器位置在不同的物理装置(例如,不同的SSD)上。在后面的实施例中,不同的物理装置可以是同一设备或计算机系统的组件,或者它们可以是不同设备或计算机系统的组件。
图5是示出在根据本发明的实施例中用于存储数据210和摘要220的方法的示例的框图。如上述,数据210是将要被保护或维持的数据,摘要220与数据210有关。
在图5的示例中,第一存储器位置和第二存储器位置在不同的物理存储装置上;数据210存储在第一存储装置501中,摘要220存储在第二存储装置502中。第一存储装置501和第二存储装置502可以在同一设备或计算机系统上或者在不同的设备或计算机系统上。在图5的示例中,第一存储装置501可以是存储装置331并且第二存储装置502可以是图3的存储装置332,或者第一存储装置501可以是存储装置331并且第二存储装置502可以是图4的存储装置431。
图6是示出在根据本发明的实施例中用于存储数据210和摘要220(图2)另一种的方法的示例的框图。在图6的示例中,第一存储器位置和第二存储器位置在同一物理存储装置(例如,存储装置331)上。即,在该示例中,数据210和摘要220存储在同一存储装置中。在实施例中,数据210和摘要220存储在存储装置上的邻近的位置中。
通常,在根据本发明的实施例中,产生并存储用来确定第一存储器位置(确定用于第一存储器位置的第一地址)的第一信息,产生并存储用来确定第二存储器位置(确定用于第二存储器位置的第二地址)的第二信息。在实施例中,第一信息包括映射表中的第一入口,第二信息包括同一映射表中的第二入口。在另一个实施例中,第一信息包括第一映射表中的入口,第二信息包括第二映射表中的入口。
第一信息和第二信息(例如,映射表或表中的入口)可以位于存储装置本身(例如,图1的存储装置100)上并被其管理,或者被包括存储装置的设备(例如,图3和图4的计算机系统300或400)管理。
图7A和图7B示出在根据本发明的实施例中的映射表700的使用的示例。映射表700包括将逻辑地址或虚拟地址映射到一个存储装置或多个存储装置中物理地址的一些数量N的入口。在图7A的示例中,数据210和摘要220被示出为被存储在同一存储装置(例如,存储装置331)中。然而,如上所述,数据210和摘要220可以存储在如图7B中示出的不同的存储装置上,在这种情况下,如图3的示例中示出的,第二存储装置(例如,存储装置332)可以在与存储装置331相同的计算机系统上,或者如图4的示例中示出的,第二存储装置(例如,存储装置431)可以在不同的计算机系统上。
在根据本发明的实施例中,映射表700包括用于数据210的第一入口702以及用于摘要220的第二入口704(这里,术语“第一”和“第二”用作两个入口的描述符并不一定表示所述入口是映射表中的实际的第一入口和第二入口)。因此,在图7A和图7B的示例中,针对数据210和摘要220的入口在同一映射表中,但在映射表中的不同位置处。
在实施例中,在映射表700中的第一入口702的位置与映射表中的第二入口704的位置之间有固定的关系或稳定的关系。例如,如图7A中示出的,如果第一入口702是映射表的上半部中的第一实际入口,那么第二入口704可以是映射表的下半部中的第一实际入口。可选择地,如图7B中示出的,用于摘要220的入口可以跟随(邻近于)用于数据210的入口。所述两个入口之间的其它关系是可能的。在实施例中,使用第一入口702存取数据210自动地造成摘要220也将使用第二入口704来被存取。例如,图1的控制器120(或图3的处理器310或图4的处理器410)可以通过使用第一入口702来找到用于数据的地址并使用第一入口702与第二入口704之间的固定的关系来找到第二入口以及因此用于摘要的地址,获得感兴趣的数据(数据210)以及与所述数据对应的摘要(数据220)。
图8A和图8B示出在根据本发明的实施例中的两个映射表800和801的使用的示例。映射表800和801中的每个包括将逻辑地址或虚拟地址映射到一个存储装置或多个存储装置中的物理地址的一些数量的入口。在图8A的示例中,数据210和摘要220被示出为被存储在同一存储装置(例如,存储装置331)中。然而,如上所述,数据210和摘要220可以存储在如图8B中示出的不同的存储装置上,在这种情况下,如图3的示例中示出的,第二存储装置(例如,存储装置332)可以在与存储装置331相同的计算机系统上,或者如图4的示例中示出的,第二存储装置(例如,存储装置431)可以在不同的计算机系统上。
在根据本发明的实施例中,映射表800包括用于数据210的第一入口802,映射表801包括用于摘要220的第二入口804。即,用于数据210的入口和用于摘要220的入口在不同的映射表中。在实施例中,如上所述,在映射表800中的入口802的位置与映射表801中的入口804的位置之间有固定的关系或稳定的关系。例如,如图8A和图8B中示出的,如果入口802是映射表800中的第一实际入口,那么入口804可以是映射表801中的第一实际入口。所述两个入口之间的其它关系是可能的。在实施例中,如上述,使用第一入口802存取数据210自动地造成摘要220也将使用第二入口804来被存取。
在图7A、图7B、图8A和图8B的示例中,用于数据210和摘要220的映射表入口702和704或802和804可以使用不同的操作和/或在不同的时刻来产生以实质上消除单粒子翻转或软错误将影响两个入口的可能性。
图9和图10分别是在根据本发明的实施例中的用于存储和存取数据的计算机实现方法的示例的流程图900和1000。流程图900和1000可以实现为计算机可执行指令,所述计算机可执行指令以非瞬时计算机可读存储媒介的形式存在并且在使用诸如图1的控制器120、图3的处理器310或图4的处理器410的处理装置或电路的设备或计算机系统中被执行。
在图9的块902中,也参照图2,接收包括第一数据(数据210)以及使用第一数据而导出的第二数据(摘要220)的编码信息。
在图9的块904中,在具有第一地址的第一存储器位置中存储第一数据。
在块906中,在具有第二地址的第二存储器位置中存储第二数据。
如上面介绍的,第一存储器位置和第二存储器位置可以在单个物理装置上(如图6、图7A和图8A的示例中),或者第一存储器位置和第二存储器位置可以分别在第一物理装置和第二物理装置上(如图5、图7B和图8B的示例中)。在后者的示例中,第一物理装置和第二物理装置可以是同一计算机系统的组件(如图3的示例中),或者第一物理装置可以是第一计算机系统的组件,第二物理装置可以是第二计算机系统的组件,第一计算机系统和第二计算机系统可以是网络的组件(如图4的示例中)。
在图9的块908中,存储用于确定第一地址的第一信息。
在块910中,存储用于确定第二地址的第二信息。在实施例中,使用第一信息存取第一数据也造成使用第二信息存取第二数据。
如上面介绍的,在实施例中,第一信息是或者包括映射表中的第一入口,第二信息是或者包括同一映射表中的第二入口(如在图7A和图7B的示例中),或者第一信息是或者包括第一映射表中的入口,第二信息是或者包括第二映射表中的入口(如在图8A和图8B的示例中)。在这样的实施例中,映射表或表更新至包括来自块908和块910的第一信息(入口)和第二信息(入口)。
在图10的块1002中,从第一存储器位置读取第一数据(图2的数据210)。
在图10的块1004中,从第二存储器位置读取第二数据(图2的摘要220)。如上所述,在实施例中,第一存储器位置和第二存储器位置通过映射表中的分开的入口或通过各个映射表中的入口来确定,在映射表中所述入口以某种方式相关。因此,在这样的实施例中,(使用第一入口)读取第一数据自动地造成(使用第二入口)读取第二数据。
在图10的块1006中,使用第二数据确定第一数据的有效性。例如,可以通过存储装置、通过控制存储装置的计算机系统或者通过请求数据的应用来执行块1006的有效性检查。
总之,例如,可以使用根据本发明的实施例来解决诸如但不限于SSD的装置中的无记载损坏的问题。结果,数据存储装置和系统更加可靠,存储的数据的整体可信度提高。利用感兴趣的数据和所述数据的摘要的各个映射入口,通过分别存储感兴趣的数据以及所述数据的摘要,有效且优雅地实现根据本发明的实施例,而不必增加额外的存储装置且基本不会对现有的存储器或处理资源或带宽增加负担。例如,根据本发明的实施例不依赖于存储、检索以及比较数据的备份副本来检测无记载损坏。
尽管以上公开使用具体框图、流程图和示例阐述了各种实施例,但是可以单独和/或共同使用许多各种不同的硬件、软件或固件(或它们的任意组合)配置来实现这里描述和/或示出的每个框图组件、流程步骤、操作和/或组件。另外,对包含在其它组件内的组件的任意公开应该被认为成示例,因为可以实现许多其它的架构以得到相同的功能。
这里描述和/或示出的步骤的工艺参数和顺序仅通过示例的方式给出并且可以根据需要改变。例如,尽管这里示出和/或描述的步骤可以以特定顺序来示出或讨论,但是这些步骤不一定需要以示出或讨论的顺序来执行。这里描述和/或示出的各种示例方法也可以省略这里描述或示出的步骤中的一个或多个步骤或者包括除了公开的这些步骤之外的附加的步骤。
尽管这里已经在全功能计算系统的情况下描述和/或示出了各种实施例,但是这些示例实施例中的一个或多个可以被分配为各种形式的程序产品,而不管用于实际执行分配的计算机可读媒介的具体类型。这里公开的实施例也可以使用执行特定任务的软件模块来实现。这些软件模块可以包括可以存储在计算机可读存储媒介上或在计算系统中的脚本、批处理或其它可执行文件。这些软件模块可以构造计算系统以执行这里公开的示例实施例中的一个或更多个。这里公开的软件模块中的一个或更多个可以在云计算环境中实现。云计算环境可以通过因特网提供各种服务和应用。这些基于云的服务(例如,软件即服务、平台即服务、基础设施即服务等)可通过Web浏览器或其他远程接口来访问。这里描述的各种功能可以通过远程桌面环境或者任何其它基于云的计算环境来提供。
虽然本主题已经以具体到结构特征和/或方法动作的语言进行了描述,但是将理解的是,在本公开中限定的主题不必限于上述具体特征或动作。相反,上述具体特征和动作被公开为实现本公开的示例形式。
因此描述了根据本发明的实施例。尽管已经在具体的实施例中描述了本公开,但是应该理解的是,本发明不应该被解释为受这样的实施例限制,而应该根据权利要求来解释。
Claims (19)
1.一种检测数据的无记载损坏的方法,所述方法包括:
接收包括第一数据以及使用第一数据而导出的第二数据的编码信息,其中,第二数据用于确定第一数据的准确性;
在具有与第一数据有关的第一地址的第一存储器位置中存储第一数据;
在具有与第二数据有关的第二地址的第二存储器位置中存储第二数据;
存储用于确定第一地址的第一信息;
存储用于确定第二地址的第二信息,其中,使用第一信息存取第一数据也造成使用第二信息存取第二数据,
其中,根据第二数据的当前版本是否与第一数据匹配来确定第一数据的准确性,
其中,第一信息和第二信息使用不同的操作和/或在不同的时刻产生。
2.根据权利要求1所述的方法,其中,第一存储器位置和第二存储器位置在单个物理装置上。
3.根据权利要求1所述的方法,其中,第一存储器位置和第二存储器位置分别在第一物理装置和第二物理装置上。
4.根据权利要求3所述的方法,其中,第一物理装置和第二物理装置是同一计算机系统的组件。
5.根据权利要求3所述的方法,其中,第一物理装置是第一计算机系统的组件,第二物理装置是作为网络的组件的第二计算机系统的组件。
6.根据权利要求1所述的方法,其中,第一信息包括将逻辑地址映射到物理地址的映射表中的第一入口,第二信息包括映射表中的第二入口。
7.根据权利要求1所述的方法,其中,第一信息包括将逻辑地址映射到物理地址的第一映射表中的入口,第二信息包括将逻辑地址映射到物理地址的第二映射表中的入口。
8.一种检测数据的无记载损坏的设备,所述设备包括:
处理器;
存储器,结合到处理器并且存储用于由处理器执行的指令,指令在执行时造成处理器接收包括第一数据以及使用第一数据导出的第二数据的编码信息;将第一数据导向具有第一物理地址的第一存储器位置并将第二数据导向具有第二物理地址的第二存储器位置;
其中,第一存储器位置是使用将第一逻辑地址映射到第一物理地址的第一入口可访问的,其中,第二存储器位置是使用将第二逻辑地址映射到第二物理地址的第二入口可访问的,其中,从第一存储器位置读取第一数据的请求造成从第二存储器位置读取第二数据,其中,第一数据的准确性是使用第二数据可验证的,
其中,根据第二数据的当前版本是否与第一数据匹配来确定第一数据的准确性,
其中,第一入口和第二入口使用不同的操作和/或在不同的时刻产生。
9.根据权利要求8所述的设备,所述设备结合到存储装置,其中,第一存储器位置和第二存储器位置在存储装置上。
10.根据权利要求9所述的设备,其中,存储装置包括具有非易失性存储器快速控制器的闪存装置,其中,第二数据包括数据完整性扩展,数据完整性扩展与第一数据连接并包括监视值。
11.根据权利要求8所述的设备,所述设备结合到第一存储装置并结合到第二存储装置,其中,第一存储器位置在第一存储装置上,第二存储器位置在第二存储装置上。
12.根据权利要求8所述的设备,其中,第一入口和第二入口在将逻辑地址映射到物理地址的同一映射表中。
13.根据权利要求8所述的设备,其中,第一入口在将逻辑地址映射到物理地址的第一映射表中,第二入口在将逻辑地址映射到物理地址的第二映射表中。
14.一种检测数据的无记载损坏的方法,所述方法包括:
从具有第一地址的第一存储器位置读取数据,第一存储器位置通过第一映射表入口进行索引;
从具有第二地址的第二存储器位置读取摘要,第二存储器位置通过第二映射表入口进行索引;
使用摘要确定数据的有效性,
其中,根据摘要的当前版本是否与数据匹配来确定数据的有效性,
其中,第一映射表入口和第二映射表入口使用不同的操作和/或在不同的时刻产生。
15.根据权利要求14所述的方法,其中,第一存储器位置和第二存储器位置在同一装置上。
16.根据权利要求14所述的方法,其中,第一存储器位置和第二存储器位置分别在第一物理装置和第二物理装置上。
17.根据权利要求16所述的方法,其中,第一物理装置和第二物理装置分别是第一计算机系统和第二计算机系统的组件,第一计算机系统和第二计算机系统在网络中以通信方式结合。
18.根据权利要求14所述的方法,其中,第一映射表入口和第二映射表入口在同一映射表中,其中,第一映射表入口包括在映射表中,第二映射表入口包括在不同时刻的映射表中。
19.根据权利要求14所述的方法,其中,第一映射表入口和第二映射表入口在不同的映射表中。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US14/850,680 US10162537B2 (en) | 2015-09-10 | 2015-09-10 | Methods and systems to detect silent corruption of data |
US14/850,680 | 2015-09-10 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN106528322A CN106528322A (zh) | 2017-03-22 |
CN106528322B true CN106528322B (zh) | 2021-07-06 |
Family
ID=58257535
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201610651758.0A Active CN106528322B (zh) | 2015-09-10 | 2016-08-10 | 检测数据的无记载损坏的方法和设备 |
Country Status (3)
Country | Link |
---|---|
US (1) | US10162537B2 (zh) |
KR (1) | KR102437777B1 (zh) |
CN (1) | CN106528322B (zh) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10853307B2 (en) * | 2017-07-28 | 2020-12-01 | Dell Products, L.P. | System and method for a host application to access and verify contents within non-volatile storage of an information handling system |
US10997066B2 (en) * | 2018-02-20 | 2021-05-04 | Samsung Electronics Co., Ltd. | Storage devices that support cached physical address verification and methods of operating same |
CN111506451B (zh) * | 2020-04-20 | 2023-01-20 | 上海航天计算机技术研究所 | 一种基于星载操作系统的软硬件协同防护单粒子设计方法 |
KR20220147292A (ko) | 2021-04-27 | 2022-11-03 | 삼성전자주식회사 | 메타 데이터 관리를 수행하는 스토리지 장치 및 이의 동작 방법 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5790774A (en) * | 1996-05-21 | 1998-08-04 | Storage Computer Corporation | Data storage system with dedicated allocation of parity storage and parity reads and writes only on operations requiring parity information |
CN101840307A (zh) * | 2009-03-17 | 2010-09-22 | 株式会社东芝 | 控制器和存储器系统 |
CN102937922A (zh) * | 2011-09-12 | 2013-02-20 | 微软公司 | 查询和修复数据 |
CN103502960A (zh) * | 2011-04-05 | 2014-01-08 | 迈克菲股份有限公司 | 带损耗均衡的存储器设备的加密 |
Family Cites Families (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5583876A (en) * | 1993-10-05 | 1996-12-10 | Hitachi, Ltd. | Disk array device and method of updating error correction codes by collectively writing new error correction code at sequentially accessible locations |
US6886127B2 (en) * | 2001-07-12 | 2005-04-26 | Sony Corporation | Implementation of a turbo decoder |
US8954654B2 (en) * | 2008-06-18 | 2015-02-10 | Super Talent Technology, Corp. | Virtual memory device (VMD) application/driver with dual-level interception for data-type splitting, meta-page grouping, and diversion of temp files to ramdisks for enhanced flash endurance |
US8495454B2 (en) | 2008-07-14 | 2013-07-23 | Marvell World Trade Ltd. | Methods, apparatuses, systems, and architectures for quickly and reliably encoding and/or decoding system data |
US8352835B2 (en) * | 2009-06-10 | 2013-01-08 | International Business Machines Corporation | Data verification using checksum sidefile |
JP4901987B1 (ja) * | 2010-09-14 | 2012-03-21 | 株式会社東芝 | 記憶装置、電子機器及び誤りデータの訂正方法 |
US8954647B2 (en) | 2011-01-28 | 2015-02-10 | Apple Inc. | Systems and methods for redundantly storing metadata for non-volatile memory |
WO2013109640A1 (en) | 2012-01-17 | 2013-07-25 | Intel Corporation | Techniques for command validation for access to a storage device by a remote client |
KR102107723B1 (ko) * | 2012-12-03 | 2020-05-07 | 삼성전자주식회사 | 메모리 컨트롤러 및 메모리 컨트롤러의 동작 방법 |
US20140244897A1 (en) | 2013-02-26 | 2014-08-28 | Seagate Technology Llc | Metadata Update Management In a Multi-Tiered Memory |
-
2015
- 2015-09-10 US US14/850,680 patent/US10162537B2/en active Active
-
2016
- 2016-01-11 KR KR1020160003336A patent/KR102437777B1/ko active IP Right Grant
- 2016-08-10 CN CN201610651758.0A patent/CN106528322B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5790774A (en) * | 1996-05-21 | 1998-08-04 | Storage Computer Corporation | Data storage system with dedicated allocation of parity storage and parity reads and writes only on operations requiring parity information |
CN101840307A (zh) * | 2009-03-17 | 2010-09-22 | 株式会社东芝 | 控制器和存储器系统 |
CN103502960A (zh) * | 2011-04-05 | 2014-01-08 | 迈克菲股份有限公司 | 带损耗均衡的存储器设备的加密 |
CN102937922A (zh) * | 2011-09-12 | 2013-02-20 | 微软公司 | 查询和修复数据 |
Also Published As
Publication number | Publication date |
---|---|
KR102437777B1 (ko) | 2022-08-29 |
KR20170031004A (ko) | 2017-03-20 |
CN106528322A (zh) | 2017-03-22 |
US20170075619A1 (en) | 2017-03-16 |
US10162537B2 (en) | 2018-12-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9268648B1 (en) | System and method for consistency verification of replicated data in a recovery system | |
US8332367B2 (en) | Parallel data redundancy removal | |
US8086896B2 (en) | Dynamically tracking virtual logical storage units | |
CN105843551B (zh) | 高性能和大容量储存重复删除中的数据完整性和损耗电阻 | |
US8180811B2 (en) | Identifying unreferenced file system components | |
US9535807B2 (en) | Recovering from uncorrected memory errors | |
US10481988B2 (en) | System and method for consistency verification of replicated data in a recovery system | |
US8732411B1 (en) | Data de-duplication for information storage systems | |
CN106528322B (zh) | 检测数据的无记载损坏的方法和设备 | |
US9286320B2 (en) | System and method for maintaining consistency among metadata elements of filesystem's logical objects | |
US9229943B2 (en) | Addressing cross-allocated blocks in a file system | |
US8843808B2 (en) | System and method to flag a source of data corruption in a storage subsystem using persistent source identifier bits | |
US11030060B2 (en) | Data validation during data recovery in a log-structured array storage system | |
CN113377569B (zh) | 用于恢复数据的方法、设备和计算机程序产品 | |
US10304560B2 (en) | Performing error correction in computer memory | |
JP2018028905A (ja) | データスクラビングを実行する電子装置、方法、及びデータスクラビング装置 | |
CN110737395B (zh) | I/o管理方法、电子设备和计算机可读存储介质 | |
CN109144766B (zh) | 一种数据存储、重构方法和装置、及电子设备 | |
US11436200B2 (en) | Fault tolerant parallel journaling for file systems | |
US20200293196A1 (en) | Compression of page of data blocks and data integrity fields for the data blocks for storage in storage device | |
US9934094B2 (en) | Process for verification of randomly generated I/O requests | |
US10719379B2 (en) | Fault isolation in transaction logs | |
US20240248817A1 (en) | Method, device, and computer program product for data recovery | |
CN117667504A (zh) | 用于修复文件系统的方法、装置、电子设备和介质 | |
CN114721586A (zh) | 用于存储管理的方法、电子设备和计算机程序产品 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |