CN107765994A - 在智能存储器装置内部执行数据擦除的方法 - Google Patents

在智能存储器装置内部执行数据擦除的方法 Download PDF

Info

Publication number
CN107765994A
CN107765994A CN201710570653.7A CN201710570653A CN107765994A CN 107765994 A CN107765994 A CN 107765994A CN 201710570653 A CN201710570653 A CN 201710570653A CN 107765994 A CN107765994 A CN 107765994A
Authority
CN
China
Prior art keywords
data
attribute
erasing
error correcting
search criterion
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.)
Granted
Application number
CN201710570653.7A
Other languages
English (en)
Other versions
CN107765994B (zh
Inventor
邱晟
奇亮奭
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.)
Samsung Electronics Co Ltd
Original Assignee
Samsung Electronics Co Ltd
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 Samsung Electronics Co Ltd filed Critical Samsung Electronics Co Ltd
Publication of CN107765994A publication Critical patent/CN107765994A/zh
Application granted granted Critical
Publication of CN107765994B publication Critical patent/CN107765994B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0646Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
    • G06F3/0652Erasing, e.g. deleting, data cleaning, moving of data to a wastebasket
    • 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/1008Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
    • G06F11/1048Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices using arrangements adapted for a specific error detection or correction feature
    • G06F11/106Correcting systematically all correctable errors, i.e. scrubbing
    • 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/1008Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
    • G06F11/1012Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices using codes or arrangements adapted for a specific type of error
    • G06F11/1016Error in accessing a memory location, i.e. addressing error
    • 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/1076Parity data used in redundant arrays of independent storages, e.g. in RAID systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/17Details of further file system functions
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0614Improving the reliability of storage systems
    • G06F3/0619Improving the reliability of storage systems in relation to data integrity, e.g. data losses, bit errors
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0638Organizing or formatting or addressing of data
    • G06F3/064Management of blocks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0658Controller construction arrangements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device

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)
  • Quality & Reliability (AREA)
  • Computer Security & Cryptography (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Detection And Correction Of Errors (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)
  • User Interface Of Digital Computer (AREA)

Abstract

一种在智能存储器装置内部执行数据擦除的方法。根据本公开的方面,智能存储器装置可基于由应用传递的包括属性而不是数据位置的信息来智能地选择数据,对那些数据执行读取擦除,并且向应用报告结果。

Description

在智能存储器装置内部执行数据擦除的方法
本申请要求发明名称为“在智能存储器装置内部执行数据清除的方法”,于2016年8月15日提交的,序列号为62/375,411的美国临时申请的优先权和权益,所述申请的全部内容通过引用合并于此。
技术领域
本公开涉及数据存储器装置的领域,特别是擦除数据存储器装置中的数据。
背景技术
数据擦除是一种周期性地检查内存或存储器的错误的后台任务,然后以校验和、错误纠正码或数据副本的形式使用冗余数据来纠正它们。
许多应用都使用数据擦除。例如,文件系统可利用数据擦除来检查存储器装置上存储的数据的完整性,并且数据库可利用数据擦除来检查数据库记录的完整性。
作为数据擦除操作的一部分,应用通常可通过将数据的位置传递给存储器装置(诸如开始逻辑块地址和长度)来标识对哪些数据执行擦除操作。然后,存储器装置可读取指定的数据并检查其完整性。
在背景技术部分中公开的以上信息只是为了增进对发明背景的理解,因此它可能包含不形成本领域中的普通技术人员已知的现有技术的信息。
发明内容
根据本公开的方面,一种智能存储器装置可基于由应用传递的信息(包括属性而非数据位置)来智能地选择数据,并对那些数据执行擦除(例如,读擦除),并且向应用报告结果。
在本公开的一方面中,提供了一种电子装置。所述电子装置包括:存储器控制器,被配置为接收擦除搜索标准。存储器控制器包括:数据分析引擎和错误检测引擎。数据分析引擎被配置为访问与计算机可读介质中包含的数据元相关联的数据属性对象,其中,每个数据元与数据属性对象相关联地被存储,每个数据元包含数据对象和错误纠正对象,数据分析引擎还被配置为寻找计算机可读介质中包含的与相应于擦除搜索标准的数据属性对象相关联的数据元。错误检测引擎被配置为针对寻找到的与相应于擦除搜索标准的数据属性对象相关联的每个数据元,将数据对象与错误纠正对象相比较以确定数据对象是否包含错误。
在一个实施例中,所述电子装置还包括所述计算机可读介质。
在一个实施例中,错误检测引擎还被配置为输出指示哪些数据元包括包含错误的数据对象的报告。
在一个实施例中,存储器控制器还被配置为接收标识的缓冲器位置,并且错误检测引擎还被配置为将所述报告输出到标识的缓冲器位置。
在一个实施例中,所述电子装置包括针对数据属性对象中包含的每个属性的属性索引。数据分析引擎通过访问属性索引来访问与数据元相关联的数据属性对象。数据分析引擎通过利用属性索引寻找与相应于擦除搜索标准的数据属性对象相关联的数据元,确定哪些数据元与擦除搜索标准相应。
在一个实施例中,属性索引是排序树。
在一个实施例中,存储器控制器还被配置为接收数据和描述接收的数据的属性值,并且存储器控制器被配置为产生新数据元和与新数据元相关联的新数据属性对象,其中,新数据属性对象包含接收的属性值,新数据元的数据对象包含接收的数据。
在一个实施例中,存储器控制器还被配置为产生一个或更多个属性值,并且,与新数据元相关联的新数据属性对象包含产生的所述一个或更多个属性值。
在一个实施例中,存储器控制器还被配置为产生与接收的数据相应的错误纠正值,并且,新数据元的错误纠正对象包含所述错误纠正值。
在一个实施例中,所述电子装置包括针对数据属性对象中包含的每个属性的属性索引,并且,存储器控制器还被配置为更新每个数据属性索引以包括与新数据元相应的节点。
在本公开的另一方面中,提供了一种在数据存储器装置上执行擦除的方法。所述数据存储器装置上存储有一个或更多个数据元,每个数据元被与一个或更多个数据属性相关联地存储,每个数据元包括数据对象和错误纠正对象。所述方法包括以下步骤:由处理器接收擦除搜索标准;由处理器定位具有相应于擦除搜索标准的数据属性的数据元;由处理器确定定位的具有相应于擦除搜索标准的数据属性的数据元是否需要被擦除;由处理器输出指示哪些数据元在它们的数据对象中包含错误的报告。
在本公开的另一方面中,提供了一种数据擦除装置。所述数据擦除装置包括:计算机可读介质,包含数据元,其中,每个数据元被与数据属性对象相关联地存储,每个数据元包括数据对象和错误纠正对象,每个数据属性对象包括设置数量的属性。所述数据擦除装置还包括针对数据属性对象中包含的每个属性的属性索引。所述数据擦除装置还包括存储器控制器。所述存储器控制器包括数据分析引擎和错误检测引擎。数据分析引擎被配置为利用属性索引寻找计算机可读介质中包含的与相应于擦除搜索标准的数据属性对象相关联的数据元。错误检测引擎被配置为针对寻找到的与相应于擦除搜索标准的数据属性对象相关联的数据元,将数据对象与错误纠正对象相比较以确定数据对象是否包含错误,并且还被配置为将指示哪些数据元包括包含错误的数据对象的报告输出到标识的缓冲器位置。
附图说明
附图与说明书示出了本公开的示例实施例,并且并连同描述一起,解释了本发明的原理。
图1是根据本公开的实施例的存储器装置的框图。
图2是根据本公开的实施例的数据属性对象的示图。
图3是根据本公开的实施例的第一属性索引和第二属性索引的示图。
图4是描绘根据本公开的实施例的用于对要擦除的数据进行定位的处理的流程图。
图5是根据本公开的实施例的从外部控制器接收写入命令的示图。
图6是描绘根据本公开的实施例的将数据写入存储器装置的流程图。
具体实施方式
在下面的详细描述中,通过举例说明仅示出并描述了本发明的特定的示例实施例。如本领域的技术人员将理解的,本发明可以以许多不同的形式被实施,并且不应被理解为限于在此阐述的实施例。每个示例实施例中的特征或方面的描述通常应被视为可用于其他示例实施例中的其他类似的特征或方面。贯穿说明书,相同的标号表示相同的元件。
本公开是针对智能存储器装置的。智能存储器装置与描述数据的属性值以及可被用于确定数据是否已损坏的错误纠正值相关联地存储数据。智能存储器装置可从外部装置或应用接收擦除搜索标准。擦除搜索标准描述属于将被擦除的数据的属性,但是可不包含将被擦除的数据的位置。智能存储器装置对符合擦除搜索标准的数据执行数据擦除,并且可输出指示存储在智能存储器装置中的那个数据符合擦除搜索标准并且被损坏的报告。
图1是根据本公开的实施例的存储器装置的框图。存储器装置100包括:存储器控制器110(例如,硬盘控制器)和存储介质120。存储器控制器110可与外部控制器130进行通信。在一些实施例中,外部控制器130运行管理存储介质120上包含的数据的文件系统。在其他实施例中,外部控制器130以数据库管理存储介质120上包含的数据。
数据以数据元125a-d(一般被称为“数据元125”)的形式被存储在存储介质120上。每个数据元125包括:数据属性对象121a-121d(共同被称为“数据属性对象121”)、数据对象122a-122d(共同被称为“数据对象122”)、错误纠正对象123a-123d(共同被称为“错误纠正对象123”)(例如,校验和值)。
数据对象122包含诸如外部控制器130的装置已在存储介质120上存储的实质性的数据。
错误纠正对象123包含针对相应的数据对象中包含的数据的冗余数据(例如,错误纠正对象123a包含针对数据对象122a中包含的数据的冗余数据,错误纠正对象123b包含针对数据对象122b中包含的数据的冗余数据,等)。在一些实施例中,例如,错误纠正对象123包含校验和值。在实施例中,错误纠正对象123可包含从循环冗余检查、擦除代码、散列码、BCH码、汉明码和/或其他错误检测或纠正方法导出的值。注意,虽然在各种实施例中被描述为“冗余数据”,但是错误纠正对象123中存储的数据可不真地包含在相应的数据对象122中包含的数据或部分数据。在各种实施例中,冗余数据可以比相应的数据对象122中包含的数据少或者比相应的数据对象中包含的数据多。因此,“冗余数据”可被数据对象122中包含的数据多。错误纠正对象123中包含的数据可被与相应的数据对象122种包含的数据进行比较,以确定数据对象是否已被损坏。在提交本申请时的本领域中的普通技术人员将熟悉针对错误纠正对象123的多个可能的配置。
注意,在一些实施例中,虽然数据对象122和错误纠正对象123被表示为分离的对象,但是数据对象122中存储的数据和错误纠正对象123中存储的冗余数据可采用单个的不可分离的数据段的形式。例如,在各种错误检测或错误纠正码或方法中,冗余数据可被穿插在数据中,或者冗余数据可被用于转换数据,从而导致数据和冗余数据形成数据对象的不可分离的组成部分。
数据属性对象121包括针对描述相应数据对象122的属性的值(例如,数据属性对象121a包含描述数据对象122a的值,数据属性对象121b包含描述数据对象122b的值,等等)。在一些实施例中,数据属性对象121可包括指示数据对象122中包含的数据的创建日期、最后修改日期和/或大小的值。在一些实施例中,数据属性对象121可指示创建数据对象122中包含的数据的用户或程序、或尝试将数据对象122中包含的数据存储在存储介质120中的用户或程序。
在一个实施例中,数据属性对象121包括针对数据对象122中包含的数据的灵敏度属性的值。灵敏度可被划分为任意等级。关键数据或针对其小的损坏错误是较大问题的数据可被分配较高的灵敏度等级。在一些实施例中,具有较高灵敏度等级的数据可被更频繁地擦除。
在一些实施例中,数据属性对象121可包括指示对数据对象122中包含的数据进行擦除的最后时间和日期的值。
图2是数据属性对象200的一个实施例的示图。数据属性对象200包括块204,其中,块204包含指示下个块206的大小的值。块206包含是数据元125的唯一标识符(在下文中称为“UID”)的值,其中,数据元125包含数据属性对象200。存储介质中的每个数据元125可具有唯一UID。
块208包含指示下个块210的大小的值。块210包含描述与数据属性对象200相应的数据对象122的属性(或,例如,包含在数据对象122中的数据的属性)的值,其中,数据对象122的属性可被描述为属性1。
诸如数据属性对象200的数据属性对象的实施例可包括各种数量的属性。每个属性可包括:包含指示下个块的大小的值的块以及包含属性的值的块。例如,数据属性对象200包括X个属性;因此,数据属性对象200包括一直到且包括块208’和块210’的块,其中,块208’包含指示描述属性X的值的大小的值,块210’包含描述属性X的值。
在示例数据属性对象200中,描述相应的数据对象的属性的值可具有各种大小。在可选实施例中,每个值可具有指定长度。因此,在这样的实施例中,数据属性对象可不包含描述值的大小的块。
返回图1,存储器控制器110包括:固件112、错误检测引擎114和数据分析引擎116。
存储器控制器110可从外部控制器130接收擦除搜索标准。擦除搜索标准可包含至少一个指定属性、指定属性的值以及相关标识符(例如,小于、大于、等于、大于或等于、或者小于或等于)。在一些实施例中,擦除搜索标准包含多个指定属性、相应的属性值、相应的相关标识符,以及“和(AND)”、“或(OR)”、“异或(XOR)”或彼此之间的其他关系。接收的任何擦除搜索标准与相应的相关标识符一起形成数据匹配规则。数据属性对象121中包含的属性值可被与数据匹配规则比较,以确定数据属性对象121是否符合数据匹配规则。
例如,擦除搜索标准可包括:属性1(与文件大小相应)小于50mb,AND属性2(与创建日期相应)晚于2016年1月1日,AND属性2早于2016年1月31日。因此,与包含在2016年1月期间创建的小于50mb的数据的数据对象122相应的数据属性对象121可通过数据匹配规则。与包含大于50mb的数据或包含不在2016年1月期间创建的数据的数据对象122相应的数据属性对象121不会通过数据匹配规则。
数据分析引擎116可访问数据属性对象121中包含的值。当存储器控制器110接收擦除搜索标准时,数据分析引擎116确定哪些数据元125包含符合数据匹配规则的数据属性对象121。数据分析引擎116向错误检测引擎114指示哪些数据元125被发现具有符合数据匹配规则的数据属性对象121。这可通过将每个数据元125的UID传递给错误检测引擎114来实现,或通过将数据元125中包含的数据直接传递给错误检测引擎114来实现,其中,数据元125中包含的数据至少包括在数据对象122和错误纠正对象123中包含的数据。
错误检测引擎114基于错误纠正对象123中包含的数据和数据对象122中包含的数据之间的比较来确定符合数据匹配规则的数据元125中的哪些(如果存在)数据元包含错误或被损坏。例如,错误纠正对象123中包含数据与数据对象122中包含的数据之间的比较可采用被称为通过用于创建错误纠正对象123中包含的数据的编码方案的错误检测方法或机制的形式。本领域的普通技术人员将熟悉用于执行这样的比较的方法或机制。这些方法或机制可包括且不限于:校验和、循环冗余校验、擦除码、散列码、BCH码或汉明码。在一些实施例中,错误检测引擎114是校验和引擎。
在一些实施例中,错误检测引擎114产生标识数据元125的报告,其中,数据元125既(1)包含符合数据匹配规则的数据属性对象122,也(2)包含当被比较时指示数据对象122中包含的数据被损坏的数据对象122和错误纠正对象123。在一些实施例中,外部控制器130可将缓冲器与擦除搜索标准一起标识,存储器控制器110可将报告写入标识的缓冲器。外部控制器130可从标识的缓冲器读取报告。外部控制器130可逐步地修复标识的被损坏的数据。
在一些实施例中,错误纠正对象123包含足够的冗余数据,以当数据对象122中包含的数据被确定为是损坏的时修复数据对象122中包含的数据。例如,错误纠正对象123可包含从汉明码推导出的值。在这样的实施例中,当确定数据对象122中存储的数据是损坏的时,错误检测引擎114可在其能够修复损坏的数据的情况下修复损坏的数据。在一些这样的实施例中,报告可指示:(1)错误被发现并被纠正;或者(2)错误被发现并且不能被纠正。
图3是根据本公开的一些实施例的第一属性索引310和第二属性索引320的示图。在一些实施例中,存储器装置100针对在存储介质120中存储的数据元125的数据属性对象121中包括的每个属性包含一个属性索引。例如,在图3中,数据属性对象121包含针对属性1和针对属性2的值。因此,存储器装置100包括与属性1相应的第一属性索引310和与属性2相应的第二属性索引。在这样的实施例中,数据分析引擎116可使用数据属性索引来确定哪些数据元125包含符合数据匹配规则的数据属性对象121。
属性索引包括针对存储介质120中存储的每个数据元125的节点。针对给定数据元125的节点包含针对在给定数据元125的数据属性对象121中包含的属性索引的相应属性的值(例如,在与属性1相应的第一属性索引310中的节点包含存储在每个数据属性对象121中的属性1值)。每个节点还包括给定数据元125的标识符,诸如,UID或针对数据元在存储介质120上的位置的指示器。
可基于节点中包含的属性的值来对属性索引进行排序。在一些实施例中,属性索引是排序树。当数据分析引擎116接收到具有指定属性的擦除搜索标准时,数据分析引擎116可使用与指定属性相应的属性索引来返回所有数据元125的标识符(诸如UID),其中,所述所有数据元125具有针对满足指定属性的值和相关标识符的与指定属性相应的属性的值。
在一些实施例中,属性索引的节点是数据属性对象121。在一些这样的实施例中,数据元125与属性索引中存储的数据属性对象121相关联,但是数据元125不包含数据属性对象121,并且描述数据对象122中包含的数据的属性不存储在数据元125中。
图4是描绘根据本公开的实施例的用于对要擦除的数据进行定位的处理的流程图。该处理可例如通过图1的装置执行。
在402,接收擦除搜索标准。擦除搜索标准包含数据匹配规则。例如,擦除搜索标准可包含至少一个指定属性、指定属性的指定值以及相关标识符(诸如小于、大于、等于、大于或等于、或者小于或等于)。在一些实施例中,擦除搜索标准包含多个指定属性、相应的属性值和相应的相关标识符、以及“AND”、“OR”、“XOR”或必须被满足以便符合数据匹配规则的在彼此之间定义的其他关系。在一些实施例中,也可在402接收标识的缓冲器的位置,402可例如通过存储器控制器110(或与存储器控制器110相关联的处理器)执行。
在404,定位符合数据匹配规则的数据元125。404可例如通过数据分析引擎116(或与数据分析引擎116相关联的处理器)执行。
在一些实施例中,使用属性索引(诸如参照图3所描述的那些属性索引)定位数据元125。针对数据匹配规则中的每个指定的访问项,在与相同的属性相应的属性索引中搜索满足指定属性的值和相关标识符的节点。
在一个实施例中,例如,属性索引是排序树。为了在属性索引中搜索满足指定属性和相关标识符的节点,与针对指定属性的指定值相应的新节点被添加到排序树并且被作为根节点。根据相关标识符(例如,小于或大于)而在根节点的左边或右边的节点中包含的诸如UID的标识符中的所有标识符被返回为指示满足指定属性的指定值以及相关标识符的数据元125。如果单个数据匹配规则中包括指定属性的多个指定值,则一旦满足上述每个数据匹配规则的数据元125被找到,则基于“AND”、“OR”、“XOR”或彼此间的其他关系来比较数据元125的列表以建立满足全部数据匹配规则的数据元125的列表。
然而,在可选实施例中,存储介质120中包含的每个数据元125的数据属性对象121被检查以确定其是否通过数据匹配规则。
在406,确定在404中被定位的满足数据匹配规则的数据元125是否包含错误。406可例如通过错误检测引擎114(或与错误检测引擎114相关联的处理器)执行。数据对象122中包含的数据被与错误纠正对象123中包含的冗余数据进行比较。基于该比较,确定数据对象122中包含的数据是否已被损坏或有错误。包含错误的每个数据元125的标识符(诸如,UID或针对数据元125在存储介质120上的位置的指示器)的列表被返回。
在408,报告定位的数据元125的状态。408可例如通过存储器控制器110(或与存储器控制器110相关联的处理器)执行。在一些实施例中,产生数据元125的列表。该列表可包括每个数据元125的标识符(诸如UID或针对数据元125在存储介质120上的位置的指示器)。在一些实施例中,该列表包括被发现有错误的每个数据元125。错误可以是未纠正的。在其他实施例中,该列表包括通过数据匹配规则的每个数据元125和每个数据元125的状态(例如,包含或不包含错误)。
在诸如在402期间标识缓冲器的一些实施例中,报告被存储在标识的缓冲器位置。在一些实施例中,如果错误纠正对象123包含足够的冗余数据,则在数据对象123中存储的数据中检测到的任何错误都可被修复。
图5是根据本公开的实施例的由存储器控制110从外部控制器130接收的写命令500的示图。该命令包括操作块502,其中,操作块502包含向存储器控制110指示什么操作将被执行的值。这里,操作块502中的值指示存储器控制器应该响应于命令500将数据写入存储介质。
块504包含针对属性1的值。块506包含针对属性2的值。块508包含针对属性3的值。在一些实施例中,包含针对属性的值块的数量被设置,并且每个写命令应包含针对每个属性的值。块510包含将被存储在存储介质120上的数据。属性(诸如属性1、属性2和属性3)的值描述块510中包含的数据。
图6是描绘根据本公开的实施例的将数据写入存储器装置100的流程图。该处理可例如通过图1的装置执行。
在602,接收写命令。写命令可以是例如图5的写命令500。可通过存储器控制器110(或与存储器控制器110相关联的处理器)执行602。写命令可包含将被写入存储介质120的数据以及描述数据的属性的属性值。
在604,产生错误纠正值。可通过存储器控制器110(或与存储器控制器110相关联的处理器)执行604。在创建时,错误纠正值与将被存储在存储介质120中的数据的值相应。如果在之后的时间,数据变得被损坏或包含错误,则将错误纠正值比较与数据比较可示出数据已被破坏或从它的原始形式被不适当地改变。在一些实施例中,错误纠正值是校验和值。在其他实施例中,错误纠正值可以是数据的复本或数据的部分。在进一步的可选实施例中,错误纠正值可通过应用循环冗余校验、擦除码、散列码、BCH码、汉明码和/或其他错误检测或纠正方法来推导。
在可选实施例中,错误纠正值作为写命令的一部分在602被接收。
在606,产生数据元125,可通过例如存储器控制器110(或与存储器控制器110相关联的处理器)执行606。
数据元125可包括数据属性对象121。数据属性对象121可包含描述将使用数据元125存储的数据的属性值。在一些实施例中,数据属性对象121中包含的属性值可以是在602接收的写命令中包含的属性值。在一些实施例中,数据属性对象121可额外地包括不是在写命令中接收的属性值。例如,数据属性对象121可包含针对以下项的属性值:被添加到存储介质120的日期和时间、数据被检查错误的最后日期和时间、数据被擦除的最后时间或无需从写命令接收它们就能被标识的其他数据属性。
在数据属性对象121之后,数据元125可包括数据对象122。数据对象122可包括将被存储在存储介质120上的数据,其中,所述数据在602作为写命令的一部分被接收。在数据对象122之后,数据元125可包括错误纠正对象123。错误纠正对象123可包含在604产生的错误纠正值。
在608,产生的数据元125可被存储在存储介质120中。可通过存储器控制器110(或与存储器控制器110相关联的处理器)执行608。
在610,在存储器装置100包括用于定位数据元125的数据属性索引的一些实施例中,每个属性索引用与产生的数据元125相应的新节点进行更新。每个新节点可包含与属性索引相应的数据属性对象121中包含的值、以及给定数据元125的标识符(诸如UID或针对数据元在存储介质120上的位置的指示器)相应。在属性索引被排序的实施(诸如,属性索引是排序树的实施例)中,属性索引按照它保持排序的方式被更新。
将理解,尽管这里可使用术语“第一”、“第二”、“第三”等来描述各种元件、组件、区域、层和/或部分,但是这些元件、组件、区域、层和/或部分不应被这些术语所限制。这些术语用于将一个元件、组件、区域、层或部分与另一元件、组件、区域、层或部分进行区分。因此,在不脱本发明的精神和范围的情况下,下面描述的第一元件、组件、区域、层或部分可被称为第二元件、组件、区域、层或部分。
将理解,当元件或层被称作在另一元件或层“上”、“连接到”或“耦接到”另一元件或层时,该元件或层可直接在所述另一元件或层上、直接连接或耦接到另一元件或层,或者可存在一个或更多个中间元件或层。此外,也将理解,当元件或层被称作在两个元件或层之间时,该元件或层可以是所述两个元件或层之间仅有的元件或层,或者还可存在一个或更多个中间元件或层。
在这里使用的术语仅用于描述特定实施例的目的,而不是意图限制本发明。如在此所使用的,单数形式也意图包括复数形式,除非上下文另有清楚的指示。还将理解,当在本说明书中使用术语“包括”和“包含”时,表示存在叙述的特征、整数、步骤、操作、元件和/或组件,但不排除存在或添加一个或更多个其他特征、整数、步骤、操作、元件、组件和/或它们的组。如在此所使用的,术语“和/或”包括一个或更多个相关列出项的任何组合和全部组合。
如在此所使用的,术语“实质上”、“关于”和类似的术语被用作近似的术语而不是程度的术语,并且意图说明可由本领域的普通技术人员理解的测量值或计算值的固有变化。此外,当描述本发明的实施例时的“可”的使用表示“本发明的一个或更多个实施例”。如在此所使用的,术语“使用”可被理解为与术语“利用”是同义的。此外,术语“示例性的”意图表示示例或例证。
在此处描述的根据本发明的实施例的电子或电气装置和/或任何其他相关装置或组件可利用任何合适的硬件、固件(例如,专用集成电路)、软件、或软件、固件与硬件的组合来实现。例如,这些装置的各种组件可形成在一个集成电路(IC)芯片上或形成于单独的IC芯片上。此外,这些装置的各种组件可被实现在柔性印刷电路薄膜、磁带载体封装(TCP)、印刷电路板(PCB)上,或被形成在一个基板上。此外,这些装置的各种组件可以是在一个或更多个计算机装置中的一个或更多个处理器上运行的处理或线程,其中,所述一个或更多个处理器执行计算机程序指令并且与其他系统组件进行交互以执行此处描述的各种功能。例如,存储器控制器110可包括一个处理器,其中,在处理器中实现了固件112、错误检测引擎114和数据分析引擎116。可选地,存储器控制器110可包括:实现了固件112的第一处理器;实现了错误检测引擎114的第二处理器;实现了数据分析引擎116的第三处理器。计算机程序指令被存储在存储器中,其中,存储器可通过使用标准存储器装置(诸如,例如,随机存取存储器)在计算机装置中实现。计算机程序指令也可被存储在其他非暂时性计算机可读介质(诸如,例如,CDROM、闪存盘等)中。此外,在不脱离本发明的示例实施例的精神和范围的情况下,本领域中的技术人员应该理解:各种计算装置的功能可被组合或集成在单个计算装置中,或者特定计算装置的功能可被分布在一个或更多个其它计算装置上。
虽然已参照本发明的示例性的实施例详细地描述了本发明,但是此处描述的实施例不意图是穷举的或将本发明的范围限于公开的准确形式。本发明所属领域和技术中的技术人员将意识到:在不脱离在权利要求和它们的等同物中阐述的本发明的原理、精神和范围的情况下可实践在描述的装配的结构和方法以及操作上的变化和改变。

Claims (20)

1.一种电子装置,包括:
存储器控制器,被配置为接收擦除搜索标准,其中,存储器控制器包括:数据分析引擎,被配置为访问与计算机可读介质中包含的数据元相关联的数据属性对象,其中,每个数据元与数据属性对象相关联地被存储,每个数据元包含数据对象和错误纠正对象,数据分析引擎还被配置为寻找计算机可读介质中包含的与相应于擦除搜索标准的数据属性对象相关联的数据元;错误检测引擎,被配置为针对寻找到的与相应于擦除搜索标准的数据属性对象相关联的每个数据元,将数据对象与错误纠正对象相比较以确定数据对象是否包含错误。
2.如权利要求1所述的电子装置,所述电子装置还包括所述计算机可读介质。
3.如权利要求1所述的电子装置,其中,错误检测引擎还被配置为:输出指示哪些数据元包括包含错误的数据对象的报告。
4.如权利要求3所述的电子装置,其中,存储器控制器还被配置为接收标识的缓冲器位置,其中,错误检测引擎还被配置为将所述报告输出到标识的缓冲器位置。
5.如权利要求1所述的电子装置,还包括针对数据属性对象中包含的每个属性的属性索引,
其中,数据分析引擎通过访问属性索引来访问与数据元相关联的数据属性对象,并且
其中,数据分析引擎通过利用属性索引寻找与相应于擦除搜索标准的数据属性对象相关联的数据元,确定哪些数据元与擦除搜索标准相应。
6.如权利要求5所述的电子装置,其中,属性索引是排序树。
7.如权利要求1所述的电子装置,其中:
存储器控制器还被配置为接收数据和描述接收的数据的属性值,
存储器控制器还被配置为产生新数据元以及与新数据元相关联的新数据属性对象,其中,新数据属性对象包含接收的属性值,新数据元的数据对象包含接收的数据。
8.如权利要求7所述的电子装置,其中,存储器控制器还被配置为产生一个或更多个属性值,其中,与新数据元相关联的新数据属性对象包含产生的所述一个或更多个属性值。
9.如权利要求7所述的电子装置,其中,存储器控制器还被配置为产生与接收的数据相应的错误纠正值,其中,新数据元的错误纠正对象包含所述错误纠正值。
10.如权利要求7所述的电子装置,还包括针对数据属性对象中包含的每个属性的属性索引,其中,存储器控制器还被配置为更新每个数据属性索引以包括与新数据元相应的节点。
11.一种在数据存储器装置上执行擦除的方法,所述数据存储器装置上存储有一个或更多个数据元,每个数据元与一个或更多个数据属性相关联地被存储,每个数据元包括数据对象和错误纠正对象,所述方法包括:
由处理器接收擦除搜索标准;
由处理器定位具有相应于擦除搜索标准的数据属性的数据元;
由处理器确定定位的具有相应于擦除搜索标准的数据属性的数据元中的每个数据元是否需要被擦除;
由处理器输出指示哪些数据元在它们的数据对象中包含错误的报告。
12.如权利要求11所述的方法,其中,数据元包含在计算机可读介质上。
13.如权利要求11所述方法,还包括:接收标识的缓冲器位置,其中,输出所述报告是将所述报告输出到标识的缓冲器位置。
14.如权利要求11所述的方法,其中,定位具有相应于擦除搜索标准的数据属性的数据元的步骤包括:在属性索引中搜索相应于擦除搜索标准的节点。
15.如权利要求14所述的方法,其中,属性索引是排序树。
16.如权利要求11所述的方法,还包括:
由处理器接收数据和描述接收的数据的属性值;
由处理器产生新数据元,其中,新数据元与接收的属性值相关联地被存储,新数据元的数据对象包含接收的数据。
17.如权利要求16所述的方法,还包括:由处理器产生一个或更多个属性值,其中,新数据元与产生的所述一个或更多个属性值相关联地被存储。
18.如权利要求16所述的方法,还包括:由处理器产生与接收的数据相应的错误纠正值,其中,新数据元的错误纠正对象包含所述错误纠正值。
19.如权利要求16所述的方法,还包括:由处理器更新属性索引以包含与新数据元相应的节点。
20.一种数据擦除装置,包括:
计算机可读介质,包含数据元,其中,每个数据元与数据属性对象相关联地被存储,每个数据元包括数据对象和错误纠正对象,每个数据属性对象包含设置数量的属性;
针对数据属性对象中包含的每个属性的属性索引;
存储器控制器,被配置为接收擦除搜索标准和标识的缓冲器位置,存储器控制器包括:
数据分析引擎,被配置为利用属性索引寻找所述计算机可读介质中包含的与相应于擦除搜索标准的数据属性对象相关联的数据元;
错误检测引擎,被配置为针对寻找到的与相应于擦除搜索标准的数据属性对象相关联的数据元,将数据对象与错误纠正对象相比较以确定数据对象是否包含错误,并且还被配置为将指示哪些数据元包括包含错误的数据对象的报告输出到标识的缓冲器位置。
CN201710570653.7A 2016-08-15 2017-07-13 在智能存储器装置内部执行数据擦除的方法 Active CN107765994B (zh)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US201662375411P 2016-08-15 2016-08-15
US62/375,411 2016-08-15
US15/284,478 2016-10-03
US15/284,478 US10241860B2 (en) 2016-08-15 2016-10-03 Method of executing data scrubbing inside a smart storage device

Publications (2)

Publication Number Publication Date
CN107765994A true CN107765994A (zh) 2018-03-06
CN107765994B CN107765994B (zh) 2023-01-03

Family

ID=61160167

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201710570653.7A Active CN107765994B (zh) 2016-08-15 2017-07-13 在智能存储器装置内部执行数据擦除的方法

Country Status (6)

Country Link
US (1) US10241860B2 (zh)
JP (1) JP6788554B2 (zh)
KR (1) KR102094932B1 (zh)
CN (1) CN107765994B (zh)
DE (1) DE102017122216A1 (zh)
TW (1) TWI699644B (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114168068A (zh) * 2020-09-10 2022-03-11 美光科技公司 存储器搜索组件

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10437501B1 (en) * 2018-03-23 2019-10-08 EMC IP Holding Company LLC Storage system with detection and correction of reference count based leaks in physical capacity
US10901847B2 (en) * 2018-07-31 2021-01-26 EMC IP Holding Company LLC Maintaining logical to physical address mapping during in place sector rebuild
US11163886B2 (en) * 2018-09-28 2021-11-02 Dell Products L.P. Information handling system firmware bit error detection and correction
DE102020129606A1 (de) 2020-11-10 2022-05-12 nxtbase technologies GmbH Verfahren zur steuerung von prozessen mittels einer sprachbefehlseingabe

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5956473A (en) * 1996-11-25 1999-09-21 Macronix International Co., Ltd. Method and system for managing a flash memory mass storage system
US20040122873A1 (en) * 2002-12-20 2004-06-24 International Business Machines Corporation Free space management
CN102184211A (zh) * 2011-05-03 2011-09-14 成都市华为赛门铁克科技有限公司 文件系统和检索、写入、修改或删除文件的方法与装置
CN104484427A (zh) * 2014-12-19 2015-04-01 武汉长江通信智联技术有限公司 一种录像文件存储装置及方法
US9026869B1 (en) * 2012-11-01 2015-05-05 Amazon Technologies, Inc. Importance-based data storage verification
CN105630808A (zh) * 2014-10-31 2016-06-01 北京奇虎科技有限公司 基于分布式文件系统的文件读取、写入方法及节点服务器

Family Cites Families (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7496823B2 (en) 2005-03-16 2009-02-24 Hewlett-Packard Development Company, L.P. Hardware based memory scrubbing
US8145941B2 (en) * 2006-10-31 2012-03-27 Hewlett-Packard Development Company, L.P. Detection and correction of block-level data corruption in fault-tolerant data-storage systems
JP5076488B2 (ja) * 2006-12-22 2012-11-21 富士通株式会社 情報処理装置、履歴管理方法、履歴管理プログラム
US7661045B2 (en) 2007-12-19 2010-02-09 International Business Machines Corporation Method and system for enterprise memory management of memory modules
US8280858B2 (en) 2009-06-29 2012-10-02 Oracle America, Inc. Storage pool scrubbing with concurrent snapshots
US8407191B1 (en) * 2010-06-29 2013-03-26 Emc Corporation Priority based data scrubbing on a deduplicated data store
US8229901B2 (en) 2010-09-04 2012-07-24 International Business Machines Corporation Disk scrubbing
US8694719B2 (en) * 2011-06-24 2014-04-08 Sandisk Technologies Inc. Controller, storage device, and method for power throttling memory operations
US8687421B2 (en) * 2011-11-21 2014-04-01 Sandisk Technologies Inc. Scrub techniques for use with dynamic read
KR20140001535A (ko) 2012-06-27 2014-01-07 삼성전자주식회사 스토리지 시스템 및 그것의 데이터 관리 방법
US9081693B2 (en) 2012-08-17 2015-07-14 Freescale Semiconductor, Inc. Data type dependent memory scrubbing
WO2014110095A1 (en) * 2013-01-08 2014-07-17 Violin Memory Inc. Method and system for data storage
US9189330B2 (en) * 2013-04-11 2015-11-17 International Business Machines Corporation Stale data detection in marked channel for scrub
WO2016013076A1 (ja) * 2014-07-23 2016-01-28 富士通株式会社 情報処理装置、メモリコントローラ、記憶装置の制御プログラム及び記憶装置の制御方法
KR101609509B1 (ko) * 2015-04-10 2016-04-05 홍익대학교 산학협력단 에러를 검출하고 수정하는 컴퓨팅 방법 및 장치
US10209895B2 (en) * 2016-02-18 2019-02-19 Toshiba Memory Corporation Memory system

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5956473A (en) * 1996-11-25 1999-09-21 Macronix International Co., Ltd. Method and system for managing a flash memory mass storage system
US20040122873A1 (en) * 2002-12-20 2004-06-24 International Business Machines Corporation Free space management
CN102184211A (zh) * 2011-05-03 2011-09-14 成都市华为赛门铁克科技有限公司 文件系统和检索、写入、修改或删除文件的方法与装置
US9026869B1 (en) * 2012-11-01 2015-05-05 Amazon Technologies, Inc. Importance-based data storage verification
CN105630808A (zh) * 2014-10-31 2016-06-01 北京奇虎科技有限公司 基于分布式文件系统的文件读取、写入方法及节点服务器
CN104484427A (zh) * 2014-12-19 2015-04-01 武汉长江通信智联技术有限公司 一种录像文件存储装置及方法

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114168068A (zh) * 2020-09-10 2022-03-11 美光科技公司 存储器搜索组件
CN114168068B (zh) * 2020-09-10 2024-05-14 美光科技公司 存储器搜索组件

Also Published As

Publication number Publication date
JP2018028905A (ja) 2018-02-22
TW201807573A (zh) 2018-03-01
US10241860B2 (en) 2019-03-26
JP6788554B2 (ja) 2020-11-25
TWI699644B (zh) 2020-07-21
KR20180019051A (ko) 2018-02-23
KR102094932B1 (ko) 2020-03-30
CN107765994B (zh) 2023-01-03
US20180046546A1 (en) 2018-02-15
DE102017122216A1 (de) 2018-04-05

Similar Documents

Publication Publication Date Title
CN107765994A (zh) 在智能存储器装置内部执行数据擦除的方法
CN105446723B (zh) 用于标识源代码版本之间的语义区别的方法和装置
US20070192754A1 (en) Method for treating design errors of a layout of an integrated circuit
CN103116621B (zh) 检测计算机硬件温度的方法、系统及识别硬件型号的方法
US10971246B2 (en) Performing error correction in computer memory
CN104731696A (zh) 定位程序代码中bug的方法及相关装置
CN110716539B (zh) 一种故障诊断分析方法和装置
US20230205755A1 (en) Methods and systems for improved search for data loss prevention
US6944839B2 (en) Checking layout accuracy in integrated circuit designs
CN115061908A (zh) 缺陷代码的定位方法、装置、存储介质及计算机设备
CN113434542B (zh) 数据关系识别方法、装置、电子设备及存储介质
CN111178037A (zh) 重复缺陷报告识别方法、装置及电子设备
CN116245076A (zh) Drc测试版图库的自动构造方法及drc方法、系统、可读存储介质
CN115542067A (zh) 一种故障检测方法及装置
US9235601B2 (en) Data mining shape based data
CN112035890B (zh) 一种数据完整性验证方法及装置
US8560981B2 (en) Segmenting integrated circuit layout design files using speculative parsing
CN111382219B (zh) 高精地图数据检查方法和装置
CN112905570A (zh) 数据库页面容错方法、装置、电子设备及存储介质
CN115344494A (zh) 测试用例的元素定位方法、装置、计算机设备及介质
CN117011961A (zh) 汽车仪表总里程存储方法、读取方法、装置、设备及介质
CN113504897A (zh) 基于模型训练的数据标注方法、装置、电子设备及存储介质
CN114840438A (zh) 文本代码检测及评价方法、装置、设备及存储介质
CN114492342A (zh) 表格图标填充方法、装置、设备及存储介质
CN114978932A (zh) 故障案例推荐方法、装置和计算可读存储介质

Legal Events

Date Code Title Description
PB01 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