CN117953936A - 一种存储设备、数据查找方法及系统 - Google Patents
一种存储设备、数据查找方法及系统 Download PDFInfo
- Publication number
- CN117953936A CN117953936A CN202211714014.0A CN202211714014A CN117953936A CN 117953936 A CN117953936 A CN 117953936A CN 202211714014 A CN202211714014 A CN 202211714014A CN 117953936 A CN117953936 A CN 117953936A
- Authority
- CN
- China
- Prior art keywords
- data
- target data
- media
- search result
- search
- 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.)
- Pending
Links
- 238000003860 storage Methods 0.000 title claims abstract description 209
- 238000000034 method Methods 0.000 title claims description 46
- 238000012545 processing Methods 0.000 claims description 90
- 238000004364 calculation method Methods 0.000 claims description 59
- 230000006870 function Effects 0.000 description 43
- 238000003491 array Methods 0.000 description 20
- 238000010586 diagram Methods 0.000 description 15
- 238000012937 correction Methods 0.000 description 13
- 238000013507 mapping Methods 0.000 description 13
- 230000008569 process Effects 0.000 description 11
- 238000004590 computer program Methods 0.000 description 10
- 230000004044 response Effects 0.000 description 9
- 238000013500 data storage Methods 0.000 description 7
- 230000002829 reductive effect Effects 0.000 description 6
- 230000002441 reversible effect Effects 0.000 description 4
- 230000004907 flux Effects 0.000 description 3
- 239000008187 granular material Substances 0.000 description 3
- 238000007726 management method Methods 0.000 description 3
- 238000004458 analytical method Methods 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 2
- 238000007405 data analysis Methods 0.000 description 2
- 230000009977 dual effect Effects 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 238000002360 preparation method Methods 0.000 description 2
- 239000004065 semiconductor Substances 0.000 description 2
- 239000007787 solid Substances 0.000 description 2
- 230000003068 static effect Effects 0.000 description 2
- 238000012795 verification Methods 0.000 description 2
- 235000014676 Phragmites communis Nutrition 0.000 description 1
- 230000004931 aggregating effect Effects 0.000 description 1
- 230000002776 aggregation Effects 0.000 description 1
- 238000004220 aggregation Methods 0.000 description 1
- 230000004075 alteration Effects 0.000 description 1
- 230000003190 augmentative effect Effects 0.000 description 1
- 238000012512 characterization method Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 230000007613 environmental effect Effects 0.000 description 1
- 230000002427 irreversible effect Effects 0.000 description 1
- 238000010801 machine learning Methods 0.000 description 1
- 230000007257 malfunction Effects 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 238000003062 neural network model Methods 0.000 description 1
- 239000013307 optical fiber Substances 0.000 description 1
- 230000036961 partial effect Effects 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 239000013589 supplement Substances 0.000 description 1
- 230000000007 visual effect Effects 0.000 description 1
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
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C11/00—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
- G11C11/21—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements
- G11C11/34—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices
- G11C11/40—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors
- G11C11/401—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors forming cells needing refreshing or charge regeneration, i.e. dynamic cells
- G11C11/4063—Auxiliary circuits, e.g. for addressing, decoding, driving, writing, sensing or timing
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Quality & Reliability (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Microelectronics & Electronic Packaging (AREA)
- Computer Hardware Design (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
一种存储设备、数据查找方法及系统,本申请中,存储设备中介质控制器指示存储设备中的介质芯片存储第一目标数据。介质芯片将第一目标数据扩展后、存储。介质控制器向介质芯片发送查找指令,请求查找第一目标数据。介质芯片对查找指令中携带第一目标数据进行扩展,并对扩展后的第一目标数据与已存储的第二目标数据进行比对,获得查找结果,向介质控制器反馈查找结果。对第一目标数据扩展,增大第一目标数据的比特数,存储设备所存储的任意两个数据的差异程度变大。查找该第一目标数据时,即便第二目标数据中存在出错比特,由于介质芯片中存储的数据的差异程度较大,仍能准确的查找到与该第一目标数据匹配的第二目标数据,提升数据查找的准确性。
Description
相关申请的交叉引用
本申请要求在2022年10月27日提交中华人民共和国知识产权局、申请号为202211325925.4、发明名称为“一种存储装置”的中国专利申请的优先权,其全部内容通过引用结合在本申请中。
技术领域
本申请涉及存储技术领域,尤其涉及一种存储设备、数据查找方法及系统。
背景技术
存内处理(process in memory,PIM)技术是指将数据存储和计算能力结合起来,在离数据最近的位置完成计算,以减少无效数据搬移。PIM技术借助靠近数据侧的计算单元完成数据计算,并不需要占用设备中的处理器,还能够协助处理器完成一部分数据计算的工作,在一定程度上补充了处理器的算力。
数据查找是靠近数据侧的计算单元可以完成的一类计算。当处理器等处理设备需要在存储设备中查找某数据时,处理设备会向存储设备发起查找请求,以请求存储设备查找已存储的、与该数据匹配的数据。但由于一些环境因素或者存储设备自身的故障,会导致存储设备中已存储的数据出错,即便该已存储的数据在写入之前的原始数据与该数据为同一数据,在查找该数据的过程中,存储设备仍会认为已存储的数据与该数据不匹配,导致无法获得准确的查找结果。
发明内容
本申请提供一种存储设备、数据查找方法及系统,用以提升数据查找的准确性。
第一方面,本申请实施例提供了一种存储设备,该存储设备包括介质控制器、以及介质芯片。在该存储设备中,介质控制器能够接收该存储设备之外的设备发送的写入请求,用于请求写入第一目标数据。介质控制器在接收到该写入请求后,可以指示介质芯片存储第一目标数据。介质芯片在接收到该介质控制器的指示后,将第一目标数据扩展后、存储到介质芯片中。介质控制器还能够接收该存储设备之外的设备发送的查找请求,用于请求查找第一目标数据。介质控制器在接收到该查找请求后,介质控制器可以向介质芯片发送查找指令,查找指令用于请求查找第一目标数据。介质芯片在接收查找指令后,对查找指令中携带第一目标数据进行扩展。介质芯片对扩展后的第一目标数据与介质芯片已存储的第二目标数据进行比对,获得查找结果,向介质控制器反馈查找结果。
通过上述设备,存储设备内部在存储第一目标数据时,会对第一目标数据进行扩展,增大第一目标数据的比特数。通过数据扩展,能够增大介质芯片所存储的任意两个数据间的差异比特数,任意两个数据的差异程度变大,在数据出错的情况下,这两个数据也不容易变为相同的数据。在后续查找该第一目标数据时,介质芯片能够对需要查找第一目标数据进行扩展后,再与已存储的第二目标数据进行对比,即便第二目标数据中存在出错比特,但由于介质芯片中存储的数据的差异程度较大,仍能够准确的查找到与该第一目标数据匹配的第二目标数据,提升数据查找的准确性。
在一种可能的实现方式中,介质芯片包括计算与控制电路逻辑、以及介质阵列。介质阵列能够用于存储数据。计算与控制电路逻辑能够控制该介质阵列,如在该介质阵列中写入数据,或在该介质阵列中查找数据。在计算与控制电路逻辑中,实现数据写入以及数据查找功能的部分可以通过数字电路实现。
计算与控制电路逻辑能够接收来自介质控制器的写入指令,将写入指令中携带的第一目标数据扩展后、存储到介质阵列中。计算与控制电路逻辑能够接收来自介质控制器的查找指令。计算与控制电路逻辑对查找请求中携带第一目标数据扩展后,对扩展后的第一目标数据与介质阵列已存储的第二目标数据进行比对,获得查找结果;向介质控制器反馈查找结果。
通过上述设备,在介质芯片内部设置有计算与控制电路逻辑,以实现数据存储以及数据查找,实现了PIM,减少对外部处理设备(如处理器)的占用。
在一种可能的实现方式中,计算与控制电路逻辑将写入指令中携带的第一目标数据扩展时,可以在第一目标数据中增加扩展位,该扩展位为一个或多个比特,本申请并不限该扩展位在第一目标数据中的位置,可以位于第一目标数据之前,也可以位于第一目标数据之后。计算与控制电路逻辑将增加了扩展为的第一目标数据存储在介质阵列中。
计算与控制电路逻辑在查找第一目标数据时,也可以采用同样的方式在查找指令中携带第一目标数据增加扩展位。将增加了扩展位的第一目标数据与第二目标数据进行比对。
通过上述设备,计算与控制电路逻辑可以将任意需要存储在介质阵列中的第一目标数据的数据量扩大,相较于不对数据进行扩展的情况,这样能够保证存储在介质阵列中所存储的任意两个数据之间的差异程度变大,两个数据的距离值也会变大。即便在数据出错的情况下,出错后的数据仍能够与未出错的数据匹配,不容易被认为是与其他数据匹配的数据。
在一种可能的实现方式中,介质芯片(或介质阵列)中已存储的任意两个数据的距离值大于或等于设定距离,已存储的任意两个数据的距离值指示了任意两个数据的差异程度;设定距离大于或等于最小距离,最小距离为两个数据的差异比特数等于存储设备的最大允许出错比特数时两个数据的距离值。
通过上述设备,介质芯片中已存储的任意两个数据的距离值均大于或等于设定距离,使得任意两个数据的差异程度较大,提升介质芯片查找到数据的概率。
在一种可能的实现方式中,介质控制器向介质芯片发送的查找指令可以携带有地址范围,该地址范围可以为物理地址范围,该物理地址范围可以是介质控制器根据接收到的查找请求所携带的逻辑地址范围确定的。在介质芯片内部,计算与控制电路逻辑可以从地址范围所指示的位置处读取第二目标数据。
通过上述设备,介质芯片只需对某个地址范围内的一个或多个第二目标数据与第一目标数据进行比对,减少数据查找的工作量,提升数据查找效率。
在一种可能的实现方式中,计算与控制电路逻辑在对扩展后的第一目标数据以及介质芯片已存储的第二目标数据进行比对,获得查找结果时,可以确定扩展后的第一目标数据与第二目标数据的距离值,为方便说明,扩展后的第一目标数据与第二目标数据的距离值可以称为目标距离值。计算与控制电路逻辑根据目标距离值与阈值的比较结果,确定查找结果。
通过上述设备,计算与控制电路逻辑将目标距离值与阈值比较即可获得查找结果,数据查找过程较为简单、快捷。
在一种可能的实现方式中,与目标距离值比较的阈值可以包括两个阈值,一个阈值为最小距离,最小距离为两个数据的差异比特数等于存储设备的最大允许出错比特数时两个数据的距离值。另一个阈值为设定距离。该设定距离可以为两个数据的差异比特数等于最大允许出错比特数的二倍加一时两个数据的距离值。
当目标距离值小于或等于最小距离,查找结果指示查找到第一目标数据,查找结果的准确度等于1。
当目标距离值大于最小距离,且不大于设定距离,查找结果指示查找到第一目标数据,查找结果的准确度小于1。
当目标距离值大于设定距离,查找结果指示查找到第一目标数据,查找结果的准确度等于0。或者查找结果指示未查找到第一目标数据。
通过上述设备,对第一目标数据的查找可以根据目标距离值与两个阈值的关系,简单的分为精确匹配(准确查找到该第一目标数据)、概率匹配(可能查找到该第一目标数据),查找结果以及其准确度的确定方式较为高效,在提升数据查找的准确性的同时也提升了数据查找的效率。
在一种可能的实现方式中,两个数据的距离值可以是对两个数据的差异比特数进行处理后确定的,也可以直接以两个数据的差异比特数作为该两个数据的距离值。也即已存储的任意两个数据的距离值等于任意两个数据的差异比特数,最小距离等于最大允许出错比特数,设定距离等于最大允许出错比特的二倍加一。
通过上述设备,距离值的设置较为灵活,适用于不同的场景,而将以两个数据的差异比特数作为该两个数据的距离值,能够有效减少距离值的计算量,提升数据查找的效率。
在一种可能的实现方式中,计算与控制电路逻辑向介质控制器反馈查找结果时,还可以反馈查找结果的准确度,查找结果的准确度用于指示查找结果的准确程度。
通过上述设备,介质控制器在获取查找结果的情况下,还能够获知该查找结果的准确程度。介质控制器可以向发起查找请求的设备反馈该查找结果,也可以同时反馈查找结果以及查找结果的准确度,以保证发起查找请求的设备能够明确该查找结果的准确性。
在一种可能的实现方式中,介质芯片向介质控制器反馈的查找结果可以为下列的部分或全部;第二目标数据的地址(该地址可以为物理地址)、指示查找到第一目标数据的指示信息。介质控制器可以向发起查找请求的设备反馈该查找结果,其中介质控制器向该设备反馈的查找结果中携带的第二目标数据的地址可以为第二目标数据的逻辑地址。
通过上述设备,查找结果可以具备不同的表征方式,适用于不同的场景。
第二方面,本申请还提供了一种数据查找方法,在该数据查找方法中,存储设备具有实现上述第一方面以及任一可能的是实现方式中的功能,有益效果可以参见第一方面的描述此处不再赘述。存储设备包括介质控制器、以及介质芯片,在该方法中,介质控制器指示介质芯片存储第一目标数据。介质芯片将第一目标数据扩展后、存储到介质芯片中。
介质控制器向介质芯片发送查找指令,查找指令用于请求查找第一目标数据。介质芯片接收查找指令,对查找指令中携带第一目标数据扩展后,对扩展后的第一目标数据与介质芯片已存储的第二目标数据进行比对,获得查找结果,向介质控制器反馈查找结果。
在一种可能的实现方式中,介质芯片包括计算与控制电路逻辑、以及介质阵列。介质芯片中数据存储以及数据查找的操作可以由计算与控制电路逻辑执行。也就是说,介质芯片在存储第一目标数据时,计算与控制电路逻辑将第一目标数据扩展后、存储到介质阵列。介质芯片在查找数据时,计算与控制电路逻辑接收查找指令,对查找请求中携带第一目标数据扩展后,对扩展后的第一目标数据与介质阵列已存储的第二目标数据进行比对,获得查找结果,向介质控制器反馈该查找结果。
在一种可能的实现方式中,所述计算与控制电路逻辑将所述第一目标数据扩展后、存储到所述介质阵列中时,所述计算与控制电路逻辑在所述第一目标数据中增加扩展位,将增加了扩展位的所述第一目标数据存储到所述介质阵列中,所述扩展位为一个或多个比特。
在一种可能的实现方式中,介质芯片中已存储的任意两个数据的距离值大于或等于设定距离,已存储的任意两个数据的距离值指示了任意两个数据的差异程度;设定距离大于或等于最小距离,最小距离为两个数据的差异比特数等于存储方法的最大允许出错比特数时两个数据的距离值。
在一种可能的实现方式中,查找指令携带有地址范围,计算与控制电路逻辑可以从地址范围所指示的位置处读取第二目标数据。
在一种可能的实现方式中,介质芯片对扩展后的第一目标数据以及介质芯片已存储的第二目标数据进行比对,获得查找结果时,计算与控制电路逻辑确定扩展后的第一目标数据与第二目标数据的目标距离值,计算与控制电路逻辑根据目标距离值与阈值的比较结果,确定查找结果。
在一种可能的实现方式中,若设定距离为两个数据的差异比特数等于最大允许出错比特数的二倍加一时两个数据的距离值。
当目标距离值小于或等于最小距离,查找结果指示查找到第一目标数据,查找结果的准确度等于1。
当目标距离值大于最小距离,且不大于设定距离,查找结果指示查找到第一目标数据,查找结果的准确度小于1。
在一种可能的实现方式中,已存储的任意两个数据的距离值等于任意两个数据的差异比特数,最小距离等于最大允许出错比特数,设定距离等于最大允许出错比特的二倍加一。
在一种可能的实现方式中,介质芯片向介质控制器反馈查找结果时,还可以反馈查找结果的准确度,查找结果的准确度用于指示查找结果的准确程度。
在一种可能的实现方式中,查找结果为下列的部分或全部:
第二目标数据的地址、指示查找到第一目标数据的指示信息。
第三方面,本申请还提供了一种数据处理系统,该数据处理系统中包括处理设备以及存储设备,存储设备具有实现上述第一方面以及任一可能的是实现方式中的功能,有益效果可以参见第一方面的描述此处不再赘述。
处理设备,用于向存储设备发送写入请求,写入请求用于请求写入第一目标数据。
存储设备,用于将第一目标数据扩展后、存储到存储设备中。
处理设备,还用于向存储设备发送查找请求,查找请求用于请求查找第一目标数据。
存储设备,还用于接收查找请求,对查找请求中携带第一目标数据扩展后,对扩展后的第一目标数据与介质芯片已存储的第二目标数据进行比对,获得查找结果;向处理设备反馈查找结果。
在一种可能的实现方式中,存储设备包括介质控制器、以及介质芯片。
介质控制器在接收到写入请求后,指示介质芯片存储第一目标数据;介质芯片将第一目标数据扩展后、存储到介质芯片中。
介质控制器在接收到查找请求后,向介质芯片发送查找指令,查找指令用于请求查找第一目标数据。介质芯片接收查找指令,对查找指令中携带第一目标数据扩展后,对扩展后的第一目标数据与介质芯片已存储的第二目标数据进行比对,获得查找结果;向介质控制器反馈查找结果。介质控制器在获取介质芯片反馈的查询结果后,可以向处理设备反馈查找结果。
存储设备内部,数据查找以及数据存储的过程可以参见前述第一方面以及其任一可能的实现方式的相关描述,此处不再赘述。
在一种可能的实现方式中,存储设备向处理设备反馈查找结果时,存储设备可以向处理设备发送查找响应,该查找响应中携带有查找结果以及查找结果的准确度。
该查找结果可以为下列的部分或全部:
第二目标数据的地址(反馈给处理设备的查找结果中该第二目标数据的地址可以为第二目标数据的逻辑地址)、指示查找到第一目标数据的指示信息。
第四方面,本申请还提供了一种数据查找装置,功能可以通过硬件实现,也可以通过硬件执行相应的软件实现。硬件或软件包括一个或多个与上述功能相对应的单元。在一个可能的设计中,装置的结构中包括存储模块、查找模块以及反馈模块,这些模块可以执行上述第二方面以及第二方面的各个可能的实现方式中的方法示例中存储设备的相应功能,具体参见前述示例中的详细描述,此处不做赘述。
第五方面,本申请还提供一种计算机可读存储介质,计算机可读存储介质中存储有指令,当其在计算机上运行时,使得计算机执行上述第二方面以及第二方面的各个可能的实现方式中的方法。
第六方面,本申请还提供一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述第二方面以及第二方面的各个可能的实现方式中的方法。
第七方面,本申请还提供一种计算机芯片,芯片与存储器相连,芯片用于读取并执行存储器中存储的软件程序,执行上述第二方面以及第二方面的各个可能的实现方式中的方法。
附图说明
图1为本申请提供的一种数据处理系统的架构示意图;
图2为本申请提供的一种存储设备的结构示意图;
图3A~图3B为本申请提供的一种介质阵列以及计算与控制电路逻辑的结构示意图;
图4为本申请提供的一种数据运查找方法示意图;
图5A为本申请提供的一种数据与出错数据的关系示意图;
图5B为本申请提供的一种一组数据及其出错数据、与另一组数据及其出错数据的关系与示意图;
图5C为本申请提供的一种一组数据000(11)及其出错数据、与另一组数据001(00)及其出错数据的关系与示意图;
图6为本申请提供的一种数据查找装置的结构示意图。
具体实施方式
如图1所示,为本申请实施例提供的一种数据处理系统的结构示意图。在该数据处理系统10中包括处理设备100以及存储设备200。
处理设备100是该数据处理系统中最主要的计算核心和管理核心。作为计算核心,处理设备100能够完成主要的数据计算操作。例如,处理设备100能够实现音视频数据编解码、海量数据的聚类、人脸识别、语音识别、大数据分析、数据库服务、文件管理服务等。作为管理核心,处理设备100还能够对存储设备200进行管理。例如,处理设备100能够对存储设备200进行数据读写、管理存储设备200中的存储空间等。
在本申请实施例中,处理设备100将数据(如第一目标数据)存储在存储设备200中,处理设备100还能够向存储设备200发送查找请求,该查找请求用于请求查找存储设备200是否存储有该数据,并从存储设备200接收查找响应,该查找响应携带了查找结果,可选的,该查找响应中还会携带查找结果的准确度,以指示该查找结果的准确程度。
处理设备100可以是中央处理器(central processing unit,CPU),也可以是其他特定的集成电路。处理设备100还可以是其他通用处理器、数字信号处理器(digitalsignal processing,DSP)、专用集成电路(application specific integrated circuit,ASIC)、现场可编程门阵列(field programmable gate array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。
存储设备200在该数据处理系统中具备数据存储功能的设备,存储设备200能够在处理设备100进行数据计算时,向处理设备100提供数据计算所需的数据。存储设备200还能够存储处理设备100进行数据计算后获得数据。
在本申请实施例中,存储设备200能够在处理设备100的请求下存储数据。存储设备200在存储该数据时,存储设备200可以在将该数据扩展后,存储该扩展后的数据。存储设备200还可以接收处理设备100发送的查找请求,根据该查询请求在已存储的数据中查找是否有与查找请求中携带的数据匹配的数据,向处理设备100反馈查找响应,该查找响应携带有查找结果,可选的,还可以携带查找结果的准确度。
本申请实施例并不限定存储设备200具体形态,凡是具备存储功能的设备均适用于本申请实施例。该存储设备200可以为内存,如只读存储器(read only memory,ROM)、动态随机存取存储器(dynamic random access memory,DRAM),或者存储级存储器(storageclass memory,SCM)、如静态随机存取存储器(static random access memory,SRAM)、双列直插式存储器模块或双线存储器模块(dual in-line memory module,DIMM)。存储设备200还可以是固态硬盘(solid state disk,SSD)。
在该数据处理系统中,存储设备200和处理设备100的部署方式有很多种。该存储设备200与处理设备100可以位于同一装置内部,通过系统总线连接。举例来说,处理设备100可以为CPU、图形处理器(graphics processing unit,GPU)、数据处理单元(dataprocessing unit,DPU)等处理器,存储设备200可以为与处理器通过系统总线(如数据总线、控制总线以及地址总线)连接的内存,存储设备200也可以为与处理设备100通过高速串行计算机扩展总线标准(peripheral component interconnect express,PCIe)等总线连接的SSD。
存储设备200以及处理设备100也可以分别位于不同的装置,通过网络连接。例如,处理设备100可以部署在用户侧,存储设备200部署在云端,处理设备100通过网络与存储设备200建立连接。
下面结合附图2对本申请实施例提供的存储设备200的结构进行说明。如图2所示,该存储设备200包括介质芯片210以及介质控制器220,该介质芯片210包括计算与控制电路逻辑211、以及介质阵列212。可选的,该存储设备200中还包括缓存230。缓存230用于暂时保存数据,如缓存230可以保存各个计算与控制电路逻辑211向介质控制器220反馈的查找结果以及查找结果的准确度。
介质芯片210包括一个或多个介质阵列212,该介质阵列212用于存储数据。本申请实施例并不限定该介质芯片的类型。以存储设备200为内存为例,该介质芯片可以为内存颗粒,该内存颗粒中可以包括一个或多个介质阵列212。以存储设备200为SSD为例,该介质芯片210可以为闪存芯片,该内存颗粒中可以包括一个或多个介质阵列212。
在存储设备200中,为每个介质阵列212设置一个对应的计算与控制电路逻辑211。介质阵列212与计算与控制电路逻辑211之间的对应关系可以是一一对应的,也就是说,一个介质阵列212对应一个计算与控制电路逻辑211,不同介质阵列212对应的计算与控制电路逻辑211不同。介质阵列212与计算与控制电路逻辑211之间的对应关系可以是多对一,多个介质阵列212对应一个计算与控制电路逻辑211,不同介质阵列212可以对应同一个计算与控制电路逻辑211。
计算与控制电路逻辑211能够对所对应的介质阵列212进行数据读写。在本申请实施例中,计算与控制电路逻辑211能够对需要写入到介质阵列212中的数据(如第一目标数据)进行扩展,为数据增加扩展位,将扩展后的数据写入到介质阵列212中。计算与控制电路逻辑211还能够根据介质控制器220发送的查找指令在所对应的介质阵列212中查找数据,并向介质控制器220反馈查找结果以及查找结果的准确度。计算与控制电路逻辑211在查找该数据时,可以将该数据扩展,对扩展后的数据以及所对应的介质阵列212中的数据进行比对,确定扩展后的数据与该数据的物理地址处的数据是否匹配,若匹配,则说明查找到该数据,若不匹配,则说明未查找到该数据。
在前述说明中,计算与控制电路逻辑211具备数据查找的功能,能够确定介质阵列212中的数据中是否存在与需要查找的数据(如第一目标数据)匹配的数据,反馈查找结果以及查找结果的准确度。存储设备200中,也可以将数据查找的功能部署在介质阵列212中,也即由介质阵列212确定扩展后的数据与已存储的数据是否匹配,介质阵列212可以通过计算与控制电路逻辑211向介质控制器220反馈查找结果以及查找结果的准确度。
介质控制器220是存储设备200的控制核心,负责一些复杂的任务,如管理数据存储(例如为待写入的数据分配存储空间;又例如,确定数据所在的介质阵列212、维护存储设备200的性能和使用寿命(例如,及时回收介质阵列212中的数据)等。
在本申请实施例中,介质控制器220能够接收来自处理设备100的读取请求或写入请求,通过计算与控制电路逻辑211从介质阵列212中读取数据(如在接收到读取请求的情况下)或向介质阵列212写入数据(如在接收到写入请求的情况下)。
介质控制器220还能够接收来自存储设备200之外的设备(如图1中的处理设备100)的查找请求,处理该查找请求。介质控制器220在接收到查找请求后,介质控制器220可以向计算与控制电路逻辑211发送查找指令,该查找指令携带有该数据,请求计算与控制电路逻辑211在该介质阵列212中查找数据。
在存储设备200内部,介质阵列212以及计算与控制电路逻辑211的部署方式有很多种,下面列举其中可能的两种部署方式。
方式一、介质阵列212与计算与控制电路逻辑211位于同一平面。
如图3A所示,存储设备200中包括多个介质阵列212与以及该多个介质阵列212对应的计算与控制电路逻辑211。介质阵列212与计算与控制电路逻辑211位于同一平面。
采用这种部署方式的存储设备200,介质阵列212与计算与控制电路逻辑211的部署方式较为简单,能够简化存储设备200的生成过程,提高存储设备200的制备良率,在一定程度上能够控制存储设备200的制备成本。
方式二、介质阵列212与计算与控制电路逻辑211堆叠。
如图3B所示,存储设备200中包括多个介质阵列212与以及该多个介质阵列212对应的计算与控制电路逻辑211。介质阵列212与其对应计算与控制电路逻辑211采用堆叠的方式设置会在存储设备200中,介质阵列212与其对应的计算与控制电路逻辑211位于不同平面。
采用这种部署方式的存储设备200,介质阵列212与计算与控制电路逻辑211堆叠在一起,能够有效减少整个存储设备200的面积,有效保证介质阵列212的数量,也即保证了存储设备200的存储空间。另外,计算与控制电路逻辑211与介质阵列212之间的解耦,使得计算与控制电路逻辑211不再依附于介质阵列212,计算与控制电路逻辑211中能够基于更加复杂、精细的电路构建,保证计算与控制电路逻辑211的运算效率。
在本申请实施例中,存储设备200在存储数据时,对需要存储的数据进行扩展,将扩展后的数据存储在存储设备200中。当存储设备200需要查找该数据时,可以对已存储的数据以及扩展后的数据进行比对,确定已存储的数据与扩展后的数据是否匹配,实现数据查找。由于存储设备200在存储数据时进行了扩展,增加了额外的比特。这些额外的比特作为扩展位,拉大了存储设备200所存储的任意两个数据间的差异比特数。使得即便是已存储的数据包含了出错数据,已存储的数据仍容易被认为是与原始数据(也即需要写入到存储设备的数据)匹配的数据,这样,便于后续在进行需要查找原始数据时,较容易找到与该原始数据匹配的数据,数据查找的过程能够容忍数据出错的情况。
如图4所示,为本申请实施例提供的一种数据查找方法,在图4所示的方式中,仅是以需要的存储的第一目标数据的数据量等于该存储设备200一次能够写入的数据量为例进行说明,其中,存储设备200一次能够写入的数据量也可以称为存储设备200的数据读写粒度,存储设备200的数据读写粒度等于存储设备200在一个时钟内能够传输的数据。该方法包括两部分,第一部分为目标数据的写入过程,参见步骤401~步骤403。第二部分为处理设备100请求存储设备200查找目标数据的过程,参见步骤404~步骤407。
步骤401:处理设备100向存储设备200发送写入请求,该写入请求用于请求写入第一目标数据,该写入请求携带有该第一目标数据以及该第一目标数据的逻辑地址。
处理设备100在需要存储第一目标数据时,可以执行步骤401,处理设备100需要存储第一目标数据的情况有许多种。处理设备100可以在对数据进行运算后生成第一目标数据,将运算后生成的第一目标数据存储到存储设备200。例如,在视频数据编解码场景中,处理设备100需要对获取的视频数据进行编码,生成编码后的视频数据,这些编码后的视频数据可以先存储到存储设备200。又例如,在语音识别场景中,处理设备100可以对用户提供的语音数据进行识别,转换为文本数据,该文本数据可以先存储在存储设备200中。又例如,在大数据分析场景中,处理设备100能够对获取的数据量级庞大的数据进行分析,基于预先配置的机器学习模型或者神经网络模型,输出分析结果,并将这些分析结果存储在存储设备200中。处理设备100可以在用户的指示下确定需要存储该第一目标数据。例如,处理设备100能够面向用户提供数据库服务,能够将用户的数据保存在数据库中,还能够对该数据库中的数据进行处理。当用户需要将第一目标数据存储到数据库中,用户会通过用户侧部署的设备(如部署在用户侧的移动终端、笔记本电脑或专用的客户端设备)向处理设备100发送指示,该指示用于指示存储第一目标数据。当用户需要修改数据库中的数据,将数据修改为第一目标数据,用户会通过用户侧部署的设备(如部署在用户侧的移动终端、笔记本电脑或专用的客户端设备)向处理设备100发送指示,该指示用于将数据库中的数据修改为第一目标数据。
步骤402:存储设备200接收该写入请求,存储设备200对该第一目标数据进行扩展,为该第一目标数据增加扩展位。
在本申请实施例中,存储设备200在存储第一目标数据时,并非直接存储该第一目标数据,而是先对该第一目标数据进行扩展,为该第一目标数据增加扩展位。这里所提及的“为该第一目标数据增加扩展位”是指增加该第一目标数据的数据量,为该第一目标数据增加一个或多个比特。该一个或多个比特即为该第一目标数据的扩展位。存储设备200可以在该第一目标数据之前增加扩展位,也可以在该第一目标数据之后增加扩展位,还可以在该第一目标数据的中间位置增加扩展位。本申请并不限定该扩展位的具体位置。
以第一目标数据为0000,存储设备200能够对该第一目标数据增加两个比特的扩展位,增加了扩展位的第一目标数据为0000(11),其中括号内的数据即为扩展位。
具体到存储设备200内部,介质控制器220在接收到该写入请求后,根据该写入请求中携带的第一目标数据的逻辑地址,确定该第一目标数据的物理地址以及该物理地址所在的介质阵列212,向该介质阵列212对应的计算与控制电路逻辑211发送写入指令,该写入指令携带有该第一目标数据以及该第一目标数据的物理地址,指示在该物理地址存储该第一目标数据。计算与控制电路逻辑211在接收到该写入指令后,为该第一目标数据增加扩展位。
在存储设备200内部,介质控制器220可以将该第一目标数据分布在多个介质阵列212中。也就是说,该多个介质阵列212中的每个介质阵列212中只用于存储该第一目标数据中的部分数据。介质控制器220可以向该多个介质阵列212对应的计算与控制电路逻辑211发送写入指令。该写入指令中携带有该第一目标数据中的部分数据,以及该部分数据的物理地址。对于任一计算与控制电路逻辑211,该任一计算与控制电路逻辑211在接收到该写入指令后,可以对该部分数据进行扩展,增加扩展位,并将该扩展后的部分数据存储在所对应的介质阵列212中该部分数据的物理地址所指示的位置处。计算与控制电路逻辑211对该部分数据进行扩展时,可以先对该部分数据进行补位,也即增加一个或多个比特。保证补位后的部分数据的数据量等于存储设备200的数据读写粒度。在补位后,再对补位后的部分数据进行扩展、存储。
本申请并不限定存储设备200对第一目标数据进行扩展的方式,凡是能够为第一目标数据增加一个或多个比特的方式均适用于本申请实施例,下面列举两种扩展方式。
方式一、存储设备200借助冗余函数对第一目标数据进行扩展。
冗余函数表征了一种为数据增加扩展位的规则。该冗余函数可以为哈希函数,也可以为误差纠错码(error correcting code,ECC)中生成纠错码的编码部分,如该冗余函数能够为数据生成汉明码、或里德-所罗门码(reed solomo,RS)码等纠错码,所生成的纠错码即为该数据的扩展位。该冗余函数也可以为其他能够增加扩展位的函数,本申请实施例并不限定该冗余函数的具体类型。
ECC中生成纠错码的编码部分是一种可逆函数。所谓可逆函数是指借助该可逆函数生成的纠错码能够对出错的数据进行纠错,修正出错的数据,将数据恢复到未出错的状态。在本申请实施例中,冗余函数可以为这类可逆函数,也可以为不可逆函数。也就是说,本申请实施例中,存储设备200借助冗余函数对第一目标数据进行扩展,产生的扩展位,允许不具备纠错码的功能。
存储设备200借助冗余函数对第一目标数据进行扩展,为该第一目标数据增加扩展位。在冗余函数以及第一目标数据确定的情况下,存储设备200为该第一目标数据增加的扩展位也是确定的。在存储设备200内部,计算与控制电路逻辑211能够借助该冗余函数对第一目标函数进行扩展。
需要说明的是,在前述说明中,虽然提及了冗余函数能够为ECC中生成纠错码的编码部分,存储设备200内部可以不设置ECC中生成纠错码的解密部分。也就是说,存储设备200只需保留生成纠错码的功能,且不需要具备对数据的纠错功能。对于ECC来说,对数据的校验以及纠错会消耗较多的算力,存储设备200内部需要部署有相应的硬件模块以实现对数据的校验以及纠错,在本申请实施例中,不再需要再设置这样的硬件模块,能够有效简化存储设备200的硬件结构,减少存储设备200的占用面积。
通过冗余函数生成扩展后的数据的方式更加便捷,使得存储设备200仅需调用冗余函数即可实现数据的扩展。
方式二、存储设备200基于预设的映射信息对第一目标数据进行扩展。
存储设备200内部预设有映射关系,该映射信息记录了扩展前的数据与扩展后的数据之间的映射关系。该映射信息可以记录一个或多个数据以及该一个或多个数据扩展后的数据。当存储设备200在需要对第一目标数据进行扩展时,可以从该映射信息中查找该第一目标数据,进而确定扩展后的第一目标数据(也即增加了扩展位的第一目标数据)。在存储设备200内部,计算与控制电路逻辑211能够获取该映射信息,并根据该映射信息确定扩展后的第一目标数据,该映射信息可以保存在计算与控制电路逻辑211中,也可以保存在该计算与控制电路逻辑211所对应的介质阵列212中,在计算与控制电路逻辑211在接收到写入指令时,可以从该介质阵列212中获取该映射信息。
相较于冗余函数,通过映射信息记录扩展前的数据与扩展后的数据的方式更加直观,使得存储设备200能够快速通过映射信息确定扩展后的第一目标数据扩展。在实际应用中,总是存在一些无法将为数据增加扩展位的规则表现为冗余函数的情况,在这些情况中,存储设备200可以基于映射信息实现对数据的扩展,方式二的适用范围更广泛。
存储设备200对不同数据进行扩展需要满足特定的条件,在该条件说明之前,先引入最大允许出错比特数T的概念。
最大允许出错比特数T是指存储设备200中数据量为数据读写粒度的数据中允许出错的比特数。最大允许出错比特数T是存储设备200的一种固有属性,只有存储设备200满足最大允许出错比特数T的存储设备200才能够出厂使用。当数据中的出错比特数小于或等于最大允许出错比特数T,认为该数据被正确写入到存储设备200中的,存储设备200满足出厂标准。数据中的出错比特数大于最大允许出错比特数T,认为该数据在写入到存储设备200中出错,存储设备200存在问题,达不到出厂标准。
存储设备200对不同数据进行扩展需要满足如下条件:不同数据扩展后形成的不同数据之间的差异比特数大于设定值D,该设定值D大于最大允许出错比特数为T。
例如,存储设备200需要对数据0000以及数据0001进行扩展,需要保证数据0000扩展后的数据与数据0001扩展后的数据之间的差异比特数大于最大允许出错比特数T。以最大允许出错比特数T为1,设定值D为2,当存储数据将数据0000扩展为0000(11),将数据0001扩展为0001(00)。0000(11)和0001(00)之间的差异比特数为3,大于设定值2。当存储数据将数据0000扩展为0000(00),其中括号中的比特即为扩展位,将数据0001扩展为0001(00)。0000(00)和0001(00)之间的差异比特数为1,小于设定值2,这种扩展是不满足条件的。
下面对该条件的原理进行说明,存储设备200对数据扩展后,相当于增加了该数据的比特数,而存储设备200的最大允许出错比特数为T,说明增加了扩展位的数据中最多允许存在T个比特的数据出错。如图5A所示,任一扩展后的数据与扩展后的数据出错的数据之间的关系可以看做是以扩展后的数据为圆心以及一组同心圆。任一同心圆是由与扩展后的数据的差异比特数相等的数据构成的。其中,靠近圆心的第一个同心圆是由与圆心所代表的数据(也即扩展后的数据)的差异比特数等于1的数据构成的,该第一个同心圆的半径为比特数1,该第一个同心圆上的一点代表了一个与圆心所代表的数据的差异比特数等于1的数据。靠近圆心的第二个同心圆是由与圆心所代表的数据(也即扩展后的数据)的差异比特数等于2的数据构成的,该第二个同心圆的半径为比特数2,该第二个同心圆上的一点代表了一个与圆心所代表的数据的差异比特数等于2的数据。半径越大的同心圆上的点所代表的数据与圆心所代表的数据差异越大。
任两组同心圆的圆心之间的距离表征了对这两个圆心所代表的数据之间的差异比特数。这两组同心圆的圆心之间的距离越大,这两组同心圆相交的可能性就越小,那么,任一组同心圆中某一个同心圆上的点所代表的数据更容易被认为是与圆心所代表的数据匹配的数据,而不容易被认为是与另一组同心圆的圆心所代表的数据匹配的数据。这里所提及的匹配是指在数据出错的情况下同心圆上的点所代表的数据可以认为是圆心所代表的数据,并非是指同心圆上的点所代表的数据与圆心所代表的数据的完全相同。
由于该存储设备200的最大允许出错比特数T,最大允许出错比特T约束了一组同心圆中同心圆的数量,最大允许出错比特数T越大,一组同心圆中同心圆的数量越多。当这两组同心圆的圆心之间的距离等于最大允许出错比特数T,则会使得这两组同心圆存在较多的交点,这两个圆心所代表的数据在出错的情况下,可能无法区分出错后的数据是哪一组同心圆上点所代表的数据。例如,当需要查找的数据某个圆心所代表的数据,但存储设备200读取的数据为这两组同心圆的交点所代表的数据,由于该交点同时属于两组同心圆上的数据,该交点所代表的数据有一定概率是该圆心所代表的数据出错后形成,也有一定概率是另一个圆心所代表的数据出错后形成的。这种情况称为概率匹配,也即查找结果的准确度不是百分之百。
如图5B示出了,两组同心圆的圆心之间的距离分别等于1、2、3时,这两组同心圆的相交情况。以最大允许出错比特数T等于1为例,当两组同心圆的圆心之间的距离等于1时,一组同心圆的圆心将落在另一组同心圆的第一个同心圆上。这两组同心圆的交点较多,在圆心所代表的数据出错了一个比特或未出错的情况下,将很难确定交点所代表的出错后的数据是哪一个圆心所代表的数据,也即形成了概率匹配的情况。在这种情况下,该交点所代表的出错后的数据是某一个圆心所代表的数据的概率为1/2。
当两组同心圆的圆心之间的距离等于2时,这两组同心圆之间的交点变少,但仍存在交点,如这两组同心圆的第一个同心圆存在交点,在圆心所代表的数据出错了一个比特的情况下,将很难确定交点所代表的出错后的数据是哪一个圆心所代表的数据,也即形成了概率匹配的情况。在这种情况下,该交点所代表的数据与某一个圆心所代表的数据匹配的概率为1/2(因为该交点距离圆心的距离均相同)。
当两组同心圆的圆心之间的距离等于3时,这两组同心圆之间的交点进一步变少,但仍存在交点,如一组同心圆的第一个同心圆与另一组同心圆的第二个同心圆存在交点。在圆心所代表的数据出错的情况下,由于最大允许出错比特为1,也即数据中最多只有一个比特出错,即便第一个同心圆与另一组同心圆的第二个同心圆存在交点,但一组第一个同心圆与另一组同心圆的第二个同心圆的交点所代表的数据仍能够被任务是与该组同心圆的圆心所代表的数据匹配的数据,形成了精确匹配的情况。
由此可推断,当两组同心圆的圆心之间的距离大于3时,其中一组同心圆的第一个同心圆与另一组同心圆之间的交点将进一步减少,一组同心圆中第一个同心圆与另一组同心圆的第一个同心圆或第二个同心圆之间将不再存在交点。
可见,为了减少两组同心圆之间的交点,至少需要保证任一两组同心圆的圆心之间的距离大于最大允许出错比特数T,也即不同数据扩展后的不同数据之间的差异比特数大于最大允许出错比特数T。在本申请实施例中,任一两组同心圆的圆心之间的距离大于或等于2T+1,也即同数据扩展后的不同数据之间的差异比特数大于或等于2T+1,在这种情况下,能够有效提高数据查找的准确程度,减少概率匹配的情况。
图5C中左侧的一组同心圆的圆心所代表的数据为扩展后的数据0000(11),靠近圆心的第一个同心圆是由与扩展后的数据0000(11)的差异比特数等于1的数据构成的,该第一个同心圆上的点代表的数据包括但不限于:0000(10)、0001(11)、0000(01)、1000(11)。靠近圆心的第二个同心圆是由与扩展后的数据0000(11)的差异比特数等于2的数据构成的通,该第二个同心圆上的点代表的数据包括但不限于:0000(00)、0001(01)、0001(10)、1000(10)。靠近圆心的第三个同心圆是由与扩展后的数据0000(11)的差异比特数等于3的数据构成的通,该第三个同心圆上的点代表的数据包括但不限于:0001(00)、0010(00)、0011(10)、1000(00)。
图5C中右侧的一组同心圆的圆心为扩展后的数据0001(00),靠近圆心的第一个同心圆是由与扩展后的数据0001(00)的差异比特数等于1的数据构成的,该第一个同心圆上的数据包括但不限于:0000(00)、0001(01)、0001(10)、0011(00)。靠近圆心的第二个同心圆是由与扩展后的数据0001(00)的差异比特数等于2的数据构成的,该第二个同心圆上的点代表的数据包括但不限于:0000(01)、0000(10)、0001(11)、0111(00)。靠近圆心的第三个同心圆是由与扩展后的数据0001(00)的差异比特数等于3的数据构成的通,该第三个同心圆上的点代表的数据包括但不限于:0000(11)、0011(11)、0100(10)、0010(01)。
这两组同心圆的距离为3,以数据0001(00)为圆心的一组同心圆与以数据0000(11)为圆心的一组同心圆之间的相交情况如图5C所示,以数据0001(00)为圆心的一组同心圆中的第一个同心圆与数据0000(11)为圆心的一组同心圆的第二个同心圆之间存在交点,其中一个交点所代表的数据为0000(00)。若存储设备200读取的数据为0000(00),由于最大允许出错比特为1,在出错了一个比特的情况下,该数据为0000(00)是与数据0001(00)匹配的数据,并非是与数据0000(11)匹配的数据。
步骤403:存储设备200将增加了扩展位的第一目标数据写入到该第一目标数据的逻辑地址指示的位置处。
存储设备200在对第一目标数据进行扩展之后,可以存储该增加了扩展位的第一目标数据,将其写入到第一目标数据的逻辑地址指示的位置处。在存储设备200内部,计算与控制电路逻辑211在对第一目标数据扩展后,可以将增加了扩展位的第一目标数据写入到第一目标数据的物理地址所指示的位置处。其中,该第一目标数据的物理地址为介质控制器220确定的、并携带在写入指令发送给计算与控制电路逻辑211的。该第一目标数据的物理地址是介质控制器220考虑了第一目标数据需要增加扩展位所确定的,介质控制器220能够确定扩展位的比特数,进而确定该第一目标数据的物理地址。
至此,第一目标数据已存储在存储设备200中。在存储设备200写入了第一目标数据后,处理设备100还可以查找该第一目标数据。具体可以参见如下步骤。
步骤404:处理设备100向存储设备200发送查找请求,该查找请求用于请求查找第一目标数据,该查找请求携带有该第一目标数据。
处理设备100在需要查找第一目标数据时,可以执行步骤404,以确定该第一目标数据是否已存储在存储设备200中,或确定存储在存储设备200中的第一目标数据是否出错。为了加快存储设备200查找的速度或者增大数据查找的精确度,处理设备100可以在该查找请求中携带逻辑地址范围。该逻辑地址范围为第一目标数据的逻辑地址所属的范围。存储设备200只需在该逻辑地址范围内查找是否存储与第一目标数据匹配的数据。
处理设备100查找第一目标数据的情况有许多种。处理设备100在将运算后生成的第一目标数据存储到存储设备200后,可以查找第一目标数据,以确定该第一目标数据是否已存储在存储设备200中,或确定存储在存储设备200中的第一目标数据是否出错。例如,在视频数据编解码场景中,处理设备100在将编码后的视频数据存储到存储设备200后,可以确定该编码后的视频数据成存储到存储设备200后是否出错。处理设备100可以在用户的指示下确定查找该第一目标数据。例如,处理设备100能够面向用户提供数据库服务,能够将用户的数据保存在数据库,对该数据库中的数据进行处理。当用户在数据库中查找第一目标数据时,用户会通过用户侧部署的设备(如部署在用户侧的移动终端、笔记本电脑或专用的客户端设备)向处理设备100发送指示,该指示用于指示查找第一目标数据,处理设备100在接收到该指示后,可以发送查找请求。
步骤405:存储设备200接收该查找请求,读取已存储的第二目标数据。
由于第一目标数据的数据量为存储设备200的数据读写粒度,存储设备200在查找第一目标数据时,也需要分多次的读取数据量等于存储设备200的数据读写粒度与扩展位的大小之和的数据,将每次读取的数据与第一目标数据进行比对,这里将每次读取的数据称为第二目标数据。也即第二目标数据的数据量为第一目标数据增加了扩展位后的数据量。若该查找请求中携带了逻辑地址范围,存储设备200在该逻辑地址范围所指示的位置上每次读取的数据为第二目标数据。
存储设备200内部,由于介质芯片210本身的故障或者介质芯片210所处的环境(如温度、压力)等原因,会导致介质芯片210中的一些数据出错,数据0变成1,数据1变成0。故而每次读取的第二目标数据可能是出错的数据,也可能是未出错的数据。
在存储设备200内部,介质控制器220在接收到查找请求后,介质控制器220向部分或全部计算与控制电路逻辑211发送查找指令,该查找指令携带该第一目标数据,指示查找该第一目标数据,计算与控制电路逻辑211在接收到该查找指令后,从所对应的介质阵列212读取该第二目标数据。
若该查找请求中携带了逻辑地址范围,介质控制请求在接收到查找请求后,可以根据该逻辑地址范围确定对应的物理地址范围,并确定该物理地址范围所属的介质阵列212,向该介质阵列212所对应的计算与控制电路逻辑211发送查找指令,该查找指令携带该第一目标数据,指示查找该第一目标数据。该查找指令还可以携带物理地址范围或者该物理地址范围中属于该介质阵列212的地址,计算与控制电路逻辑211在接收到该查找指令后,根据查找指令所携带的物理范围或该物理地址范围中属于该介质阵列212的地址从所对应的介质阵列212读取该第二目标数据。
若在存储设备200内部,介质控制器220按照一定的规则将该第一目标数据分布在多个介质阵列212中。介质控制器220在接收到查找请求后,介质控制器220也以按照相同的规则,确定第一目标数据可能分布的多个介质阵列212,分别向每个介质阵列212所对应的计算与控制电路逻辑211发送查找指令,该查找指令携带该第一目标数据的部分数据,指示查找该第一目数据的部分数据。
步骤406:存储设备200对第一目标数据扩展后,根据增加了扩展位的第一目标数据与第二目标数据的差异比特数确定查找结果以及该查找结果的准确度。增加了扩展位的第一目标数据与第二目标数据的差异比特数是指增加了扩展位的第一目标数据与第二目标数据中相同位置的比特的数据不同的数目。例如,增加了扩展位的第一目标数据为0000(11),其中,最后两个比特为扩展位,若第二目标数据为0001(11),那么,增加了扩展位的第一目标数据与第二目标数据中第四个比特不同,增加了扩展位的第一目标数据与第二目标数据的差异比特数为1。若第二目标数据为0001(10),那么,增加了扩展位的第一目标数据与第二目标数据中第四个比特以及最后一个比特不同,增加了扩展位的第一目标数据与第二目标数据的差异比特数为2。为了方便说明,将增加了扩展位的第一目标数据与第二目标数据的差异比特数简称为差异比特数。
以设定值D等于2T+1为例,当差异比特数小于或等于最大允许出错比特数T,说明第二目标数据的出错比特数小于或等于最大允许出错比特数T,未超过该存储设备200允许的最大出错比特数。这种情况下,认为增加了扩展位的第一目标数据与第二目标数据是匹配的,这种情况下查找结果为存储设备200查找到了第一目标数据。
这种情况反应到图5B所示扩展后的数据与扩展后的数据出错的数据之间的关系中,该第二目标数据可能是圆心所代表的数据,也可能为半径小于或等于T的同心圆上的点所代表的数据,在扩展后的不同数据之间的距离大于最大允许出错比特数T前提下,该组同心圆中半径小于或等于T的同心圆与其他组同心圆中半径小于或等于T的同心圆之间是不存在交点的。如当最大允许出错比特数T等于1的情况下,一组同心圆中半径等于1的同心圆与另一组半径等于1的同心圆之间是不存在交点的,这种情况属于精确匹配。也即能够确定即便第二目标数据可能出错,但第二目标数据被认为是第一目标数据扩展后写入到存储设备200的数据。这种情况下,认为第二目标数据是与增加了扩展位后的第一目标数据匹配的数据,这里的匹配是在考虑了存在数据出错的情况下的匹配,并非指示的是增加了扩展后的第一目标数据与第二目标数据完全相同,换句话说,也可以认为查找到第一目标数据。该查找结果的准确度是百分之百。
当差异比特数大于最大允许出错比特数T、且差异比特数不大于设定值D,说明第二目标数据的出错比特数已经大于最大允许出错比特数T,超出了该存储设备200允许的最大出错比特数。这种情况下,认为增加了扩展位的第一目标数据与第二目标数据可能是匹配的,也即查找到第一目标数据,但查找到第一目标数据的概率并非百分之百。
这种情况反应到图5B所示扩展后的数据与扩展后的数据出错的数据之间的关系中,该第二目标数据为半径大于或等于T的同心圆上的点所代表的数据,在扩展后的不同数据之间的距离大于设定值D(其中,设定值D大于T)前提下,该组同心圆中大于或等于T的同心圆与其他组同心圆之间是存在交点的。如当最大允许出错比特数T等于1、设定值D等于3的情况下,一组同心圆中半径等于2的同心圆与另一组半径等于1的同心圆之间是存在交点的,这种情况属于概率匹配。也就是说,在第二目标数据出错的情况下,该第二目标数据可能为第一目标数据扩展后写入到存储设备200的数据,也可能为其他数据扩展后写入到存储设备200的数据。这种情况下,认为第二目标数据存在一定概率是与增加了扩展位后的第一目标数据匹配的数据。换句话说,可以认为查找到第一目标数据,该查找结果的准确度并非是百分之百。
当差异比特数大于设定值D,说明第二目标数据的出错比特数已达超出了该存储设备200中任一两个扩展后数据的最小距离,这种情况下,认为增加了扩展位的第一目标数据与第二目标数据不匹配的,也即未查找到第一目标数据,查找到第一目标数据的概率为0。
在本申请实施例中对于概率查找的情况下,查找结果的准确度可以统一设置为百分之五十。查找结果的准确度也可以是基于第二目标数据与各个候选数据之间的差异比特数确定的,候选数据即为与第二目标数据的差异比特数大于T、且不大于D的数据;例如,查找结果的准确度可以等于A/B,其中,A等于第二目标数据与增加了扩展位的第一目标数据的差异比特数,B等于第二目标数据与各个候选数据之间的差异比特数的总和。例如,查找结果的准确度也可以是基于第二目标数据与第一目标数据之间的差异比特数确定,如查找结果的准确度可以等于差异比特数的倒数。又例如,在大于T、且大不于D的范围内,再进一步划分为几个小的范围,每个小的范围设置一个查找结果的准确度,每个小的范围的查找结果的准确度不同,第二目标数据与第一目标数据之间的差异比特数位于哪一个小的范围,最终的查找结果的准确度等于该小的范围的查找结果的准确度。
步骤406中,存储设备200直接确定了扩展位的第一目标数据与第二目标数据的差异比特数,利用差异比特数与两个阈值(分别为最大允许出错比特数T、以及设定值D)的大小关系确定查找结果以及该查找结果的准确度。在实际应该中,可以对差异比特数以及这两个阈值进行相应的转换。例如,存储设备200可以定义两个数据的距离值,该两个数据的距离值表征了该两个数据的差异程度,该两个数据的距离值是基于这两个数据的差异比特数生成的。相应的,设置两个阈值,分别为最小距离、以及设定距离值,该最小距离是基于最大允许出错比特数T确定的,该最小距离可以为两个数据之间的差异比特数等于T时两个数据的距离值。该设定距离值可以为任意两个数据差异比特数等于设定值D时两个数据的距离值。
当存储设备200需要查找第一目标数据时,存储设备200可以计算扩展位的第一目标数据与第二目标数据的距离值,当该距离值小于或等于最小举例,那么,能够实现精确匹配,查找结果为查找到该第一目标数据,查找结果的准确度为百分之百。当该距离值大于最小距离,且不大于设定距离值,那么,能够实现概率匹配,查找结果为查找到该第一目标数据,但查找结果的准确度并非百分之百,查找结果的准确度的取值可以参见前述描述此处不再赘述。当该距离值大于设定距离值,那么,扩展位的第一目标数据与第二目标数据不匹配,查找结果为未查找到该第一目标数据。
在对步骤406的说明中,在存储设备200内部可以主要由计算与控制电路逻辑211确定增加了扩展位的第一目标数据与第二目标数据是否匹配,也即由计算与控制电路逻辑211完成数据查找的主要步骤。计算与控制电路逻辑211对增加了扩展位的第一目标数据与第二目标数据进行比对,确定查找结果以及查找结果的准确度,并向介质控制器220反馈该查找结果以及查找结果的准确度。
在实际应用中,也可以有由介质阵列212实现确定增加了扩展位的第一目标数据与第二目标数据是否匹配,对这两个数据进行比对。介质阵列212针对两个数据(也即扩展后的第一目标数据以及第二目标数据)的比对可以通过电流大小来判断是否该两个数据是否匹配。介质阵列212可以将表征第一目标数据的电压作用到存储有第二目标数据的位置上,检测表征第一目标数据的电压作用后产生的电流值。若这两个数据匹配,则该电流最小,随着这两个数据之间的差异比特数增大,该电流也会变得越大。介质阵列212对增加了扩展位的第一目标数据与第二目标数据进行比对,确定查找结果以及查找结果的准确度,并通过计算与控制电路逻辑211向介质控制器220反馈该查找结果以及查找结果的准确度。
为此,可以设置电流阈值,该电流阈值可以是考虑到最大允许出错比特数T以及设定值D设置的。这里以是指了两个电流阈值为例进行说明,例如当测量到的电流小于或等于第一电流阈值(该第一电流阈值与最大允许出错比特数T有关,例如,该第一电流阈值为当两个数据的差异比特数等于最大允许出错比特数T时这两个数据比对时产生的电流值),则认为查找到该数据,该两个数据是匹配的。当测量的电流大于第一电流阈值,不大于第二电流阈值(该第二电流阈值与设定值D有关,例如,该第二电流阈值为当两个数据的差异比特数等于设定值D时这两个数据比对时产生的电流值),则认为查找到该数据,但该查找结果的准确度并非百分之百,或者认为存在一定概率查找到该数据。
往往在介质阵列212中的数据出错的情况下,比对的两个数据也会认为不匹配,因此对介质阵列212中的是否出错会影响到两个数据的比对结果,对数据出错的情况较为敏感。而在本申请实施例中,由于在存储第一目标数据时,增加了扩展位,可以有效提高电流阈值,提高介质的容错率。
步骤407:存储设备200向处理设备100发送查找响应,该查找响应携带有该查找结果以及查找结构的准确度。该查找结果指示已查找第一目标数据,本申请实施例并不限定该查找结果指示已查找第一目标数据的方式。例如,该查找结果可以为与第一目标数据匹配的第二目标数据的逻辑地址,还可以为用于指示查找到第一目标数据的指示信息。
在存储设备200内部,计算与控制电路逻辑211向介质控制器220反馈该查找结果以及查找结果的准确度,介质控制器220向处理设备100发送查找响应。
对于存储设备200来说,存储设备200通常是按照时钟周期读取或写入数据的,存储设备200在一个时钟内所传输的数据量为该存储设备200的数据读写粒度。例如,当存储设备200为SDRAM、DDR等存储器时,该数据读写粒度可以称为位宽。例如,当存储设备200为SSD时,数据读写粒度为一个时钟周期内向SSD中的闪存芯片所写入的数据量。
在上述说明中是以第一目标数据的数据量等于存储设备200的数据读写粒度为例进行说明的,当第一目标数据的数据量大于存储设备200的数据读写粒度,存储设备200一般会分多次将该第一目标数据存储该存储设备200中介质芯片210中,也即每次只存储该第一目标数据中的一部分。同样的,存储设备200在查找第一目标数据时,也可以分次查找该第一目标数据,每次只查找该第一目标数据中的一部分。
也就是说,对于第一目标数据的数据量大于存储设备200的数据读写粒度的情况,与图4所示的方式的类似,区别在于在写入第一目标数据时,存储设备200可以按照数据读写粒度将该第一目标数据分为多个第一目标子数据,分别对每个第一目标子数据进行扩展并存储(对每个第一目标子数据进行扩展并存储的操作可以由计算与控制电路逻辑211执行),在查找第一目标数据时,需要分别对第一目标子数据进行查找(对第一目标子数据进行查找,获得第一目标子数据的查找结果以及查找结果的准确度的操作可以由计算与控制电路逻辑211执行),并将第一目标子数据的查找结果(第一目标子数据的查找结果是指对第一目标子数据查找的结果)聚合为最终的查找结果(聚合的步骤可以由介质控制器220执行),将第一目标子数据的查找结果的准确度聚合为最终的准确度,再将该最终的查找结果以及最终的准确度携带在查找响应中发送给处理设备100,这里并不限定对多个第一目标子数据的查找结果聚合的方式,也不限定将多个第一目标子数据的查找结果的准确度聚合的方式。
这里列举一种对多个第一目标子数据的查找结果聚合的方式,在对多个第一目标子数据的查找结果聚合时,若该多个第一目标子数据的查找结果中存在指示未查找到第一目标子数据的查找结果,则最终的查找结果即为未查找到第一目标数据或未查找到第一目标子数据。若该多个第一目标子数据的查找结果均指示查找到第一目标子数据,则最终的查找结果即为查找到第一目标数据。
对多个第一目标子数据的查找结果的准确度聚合时,若多个第一目标子数据的查找结果的准确度聚中存在等于0的准确度,则最终的查找结果的准确度可以为0。若多个第一目标子数据的查找结果的准确度存在大于0、且小于1的准确度,可以对多个第一目标子数据的查找结果的准确度求平均,将平均值作为最终的查找结果的准确度。若多个第一目标子数据的查找结果的准确度均等于1或百分之百,则最终的查找结果的准确度可以为1。
基于与方法实施例同一发明构思,本申请实施例还提供了一种数据查找装置,该数据查找装置用于执行上述如图4所示的方法实施例中存储设备200执行的方法,相关特征可参见上述方法实施例,此处不再赘述。如图6所示,数据查找装置600包括存储模块601、查找模块602、以及反馈模块603。
存储模块601,用于将第一目标数据扩展后、存储到存储设备的介质芯片中。
查找模块602,用于接收处理设备的查找请求,查找请求,用于请求查找第一目标数据;对查找请求中携带第一目标数据扩展后,对扩展后的第一目标数据与介质芯片已存储的第二目标数据进行比对,获得查找结果。
反馈模块603,用于向介质控制器反馈查找结果。
在一种可能的实施方式中,存储模块601将第一目标数据扩展时,可以在第一目标数据中增加扩展位,该扩展位可以为一个或多个比特。
查找模块602在对查找请求中携带第一目标数据扩展时,也可以采用相同的方式在第一目标数据中增加扩展位。
在一种可能的实施方式中,介质芯片中已存储的任意两个数据的距离值大于或等于设定距离,已存储的任意两个数据的距离值指示了任意两个数据的差异程度;设定距离大于或等于最小距离,最小距离为两个数据的差异比特数等于存储装置的最大允许出错比特数时两个数据的距离。
在一种可能的实施方式中,查找请求携带有地址范围,查找模块602可以从地址范围所指示的位置处读取第二目标数据。
在一种可能的实施方式中,查找模块602对扩展后的第一目标数据以及介质芯片已存储的第二目标数据进行比对,获得查找结果时,确定扩展后的第一目标数据与第二目标数据的目标距离值;根据目标距离值与阈值的比较结果,确定查找结果。
在一种可能的实施方式中,设定距离为两个数据的差异比特数等于最大允许出错比特数的二倍加一时两个数据的距离值,查找模块602根据目标距离值与阈值的比较结果,确定查找结果时,当目标距离值小于或等于最小距离,查找结果指示查找到第一目标数据,查找结果的准确度等于1。当目标距离值大于最小距离,且不大于设定距离,查找结果指示查找到第一目标数据,查找结果的准确度小于1。
在一种可能的实施方式中,已存储的任意两个数据的距离值等于任意两个数据的差异比特数,最小距离等于最大允许出错比特数,设定距离等于最大允许出错比特的二倍加一。
在一种可能的实施方式中,查找模块602向处理设备反馈查找结果时,可以向处理设备发送查找结果,以及查找结果的准确度,查找结果的准确度用于指示查找结果的准确程度。
在一种可能的实施方式中,查找结果为下列的部分或全部;第二目标数据的地址、指示查找到第一目标数据的指示信息。
需要说明的是,本申请实施例中对模块的划分是示意性的,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式。在本申请的实施例中的各功能模块可以集成在一个处理模块中,也可以是各个模块单独物理存在,也可以两个或两个以上模块集成在一个模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。
上述实施例,可以全部或部分地通过软件、硬件、固件或其他任意组合来实现。当使用软件实现时,上述实施例可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机指令。在计算机上加载或执行所述计算机程序指令时,全部或部分地产生按照本发明实施例所述的流程或功能。所述计算机可以为通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(DSL))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集合的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质(例如,软盘、硬盘、磁带)、光介质(例如,DVD)、或者半导体介质。半导体介质可以是固态硬盘(solid state drive,SSD)。
本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本申请是参照根据本申请的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
显然,本领域的技术人员可以对本申请进行各种改动和变型而不脱离本申请范围。这样,倘若本申请的这些修改和变型属于本申请权利要求及其等同技术的范围之内,则本申请也意图包含这些改动和变形在内。
Claims (22)
1.一种存储设备,其特征在于,所述存储设备包括介质控制器、以及介质芯片;
所述介质控制器,用于指示所述介质芯片存储第一目标数据;
所述介质芯片,用于将所述第一目标数据扩展后、存储到所述介质芯片中;
所述介质控制器,还用于向所述介质芯片发送查找指令,所述查找指令用于请求查找所述第一目标数据;
所述介质芯片,还用于接收所述查找指令,对所述查找指令中携带所述第一目标数据扩展后,对扩展后的所述第一目标数据与所述介质芯片已存储的第二目标数据进行比对,获得查找结果;向所述介质控制器反馈所述查找结果。
2.如权利要求1所述的设备,其特征在于,所述介质芯片包括计算与控制电路逻辑、以及介质阵列;
所述介质阵列,用于存储数据;
所述计算与控制电路逻辑,用于将所述第一目标数据扩展后、存储到所述介质阵列中;接收所述查找指令,对所述查找请求中携带所述第一目标数据扩展后,对扩展后的所述第一目标数据与所述介质阵列已存储的第二目标数据进行比对,获得查找结果;向所述介质控制器反馈所述查找结果。
3.如权利要求2所述的设备,其特征在于,所述计算与控制电路逻辑将所述第一目标数据扩展后、存储到所述介质阵列中,用于:
在所述第一目标数据中增加扩展位,将增加了扩展位的所述第一目标数据存储到所述介质阵列中,所述扩展位为一个或多个比特。
4.如权利要求1~3任一项所述的设备,其特征在于,所述介质芯片中已存储的任意两个数据的距离值大于或等于设定距离,所述已存储的任意两个数据的距离值指示了所述任意两个数据的差异程度;所述设定距离大于或等于最小距离,所述最小距离为两个数据的差异比特数等于所述存储设备的最大允许出错比特数时所述两个数据的距离值。
5.如权利要求2~4任一项所述的设备,其特征在于,所述查找指令携带有地址范围,所述计算与控制电路逻辑,还用于:
从所述地址范围所指示的位置处读取所述第二目标数据。
6.如权利要求2~5任一项所述的设备,其特征在于,所述计算与控制电路逻辑在对扩展后的所述第一目标数据以及所述介质芯片已存储的所述第二目标数据进行比对,获得查找结果时,用于:
确定所述扩展后的所述第一目标数据与所述第二目标数据的目标距离值;
根据所述目标距离值与阈值的比较结果,确定所述查找结果。
7.如权利要求6所述的设备,其特征在于,所述设定距离为两个数据的差异比特数等于所述最大允许出错比特数的二倍加一时所述两个数据的距离值,所述计算与控制电路逻辑在根据所述目标距离值与阈值的比较结果,确定所述查找结果时,用于;
当所述目标距离值小于或等于所述最小距离,所述查找结果指示查找到所述第一目标数据,所述查找结果的准确度等于1;
当所述目标距离值大于所述最小距离,且不大于所述设定距离,所述查找结果指示查找到所述第一目标数据,所述查找结果的准确度小于1。
8.如权利要求4所述的设备,其特征在于,所述已存储的任意两个数据的距离值等于所述任意两个数据的差异比特数,所述最小距离等于所述最大允许出错比特数,所述设定距离等于所述最大允许出错比特的二倍加一。
9.如权利要求2~8任一项所述的设备,其特征在于,所述计算与控制电路逻辑向所述介质控制器反馈所述查找结果时,用于:
向所述介质控制器发送所述查找结果以及所述查找结果的准确度,所述查找结果的准确度用于指示所述查找结果的准确程度。
10.如权利要求1~8任一项所述的设备,其特征在于,所述查找结果为下列的部分或全部;
所述第二目标数据的地址、指示查找到所述第一目标数据的指示信息。
11.一种数据查找方法,其特征在于,所述方法应用于存储设备,所述存储设备包括介质控制器、以及介质芯片,所述方法包括:
所述介质控制器指示所述介质芯片存储第一目标数据;
所述介质芯片将所述第一目标数据扩展后、存储到所述介质芯片中;
所述介质控制器向所述介质芯片发送查找指令,所述查找指令用于请求查找所述第一目标数据;
所述介质芯片接收所述查找指令,对所述查找指令中携带所述第一目标数据扩展后,对扩展后的所述第一目标数据与所述介质芯片已存储的第二目标数据进行比对,获得查找结果;向所述介质控制器反馈所述查找结果。
12.如权利要求11所述的方法,其特征在于,所述介质芯片包括计算与控制电路逻辑、以及介质阵列,所述介质芯片将所述第一目标数据扩展后、存储到所述介质芯片中,包括;
所述计算与控制电路逻辑将所述第一目标数据扩展后、存储到所述介质阵列中;
所述介质芯片获得查找结果,包括:
所述计算与控制电路逻辑对所述查找请求中携带所述第一目标数据扩展后,对扩展后的所述第一目标数据与所述介质阵列已存储的第二目标数据进行比对,获得查找结果。
13.如权利要求12所述的方法,其特征在于,所述计算与控制电路逻辑将所述第一目标数据扩展后、存储到所述介质阵列中,包括:
所述计算与控制电路逻辑在所述第一目标数据中增加扩展位,将增加了扩展位的所述第一目标数据存储到所述介质阵列中,所述扩展位为一个或多个比特。
14.如权利要求11~13任一项所述的方法,其特征在于,所述介质芯片中已存储的任意两个数据的距离值大于或等于设定距离,所述已存储的任意两个数据的距离值指示了所述任意两个数据的差异程度;所述设定距离大于或等于最小距离,所述最小距离为两个数据的差异比特数等于所述存储方法的最大允许出错比特数时所述两个数据的距离值。
15.如权利要求12~14任一项所述的方法,其特征在于,所述查找指令携带有地址范围,所述方法还包括:
所述计算与控制电路逻辑从所述地址范围所指示的位置处读取所述第二目标数据。
16.如权利要求12~15任一项所述的方法,其特征在于,所述介质芯片对扩展后的所述第一目标数据以及所述介质芯片已存储的所述第二目标数据进行比对,获得查找结果,包括:
所述计算与控制电路逻辑确定所述扩展后的所述第一目标数据与所述第二目标数据的目标距离值;
所述计算与控制电路逻辑根据所述目标距离值与阈值的比较结果,确定所述查找结果。
17.如权利要求16所述的方法,其特征在于,所述设定距离为两个数据的差异比特数等于所述最大允许出错比特数的二倍加一时所述两个数据的距离值,所述计算与控制电路逻辑根据所述目标距离值与阈值的比较结果,确定所述查找结果,包括;
当所述目标距离值小于或等于所述最小距离,所述查找结果指示查找到所述第一目标数据,所述查找结果的准确度等于1;
当所述目标距离值大于所述最小距离,且不大于所述设定距离,所述查找结果指示查找到所述第一目标数据,所述查找结果的准确度小于1。
18.如权利要求14所述的方法,其特征在于,所述已存储的任意两个数据的距离值等于所述任意两个数据的差异比特数,所述最小距离等于所述最大允许出错比特数,所述设定距离等于所述最大允许出错比特的二倍加一。
19.如权利要求12-18任一项所述的方法,其特征在于,所述介质芯片向所述介质控制器反馈所述查找结果时,包括:
所述计算与控制电路逻辑向所述介质控制器发送所述查找结果以及所述查找结果的准确度,所述查找结果的准确度用于指示所述查找结果的准确程度。
20.如权利要求12~19任一项所述的方法,其特征在于,所述查找结果为下列的部分或全部;
所述第二目标数据的地址、指示查找到所述第一目标数据的指示信息。
21.一种数据查找系统,其特征在于,所述系统包括处理设备以及存储设备;
所述处理设备,用于向所述存储设备发送写入请求,所述写入请求用于请求写入所述第一目标数据;
所述存储设备,用于将所述第一目标数据扩展后、存储到所述存储设备中;
所述处理设备,还用于向所述存储设备发送查找请求,所述查找请求用于请求查找所述第一目标数据;
所述存储设备,还用于接收所述查找请求,对所述查找请求中携带所述第一目标数据扩展后,对扩展后的所述第一目标数据与所述介质芯片已存储的第二目标数据进行比对,获得查找结果;向所述处理设备反馈所述查找结果。
22.如权利要求21所述的系统,其特征在于,所述存储设备包括介质控制器、以及介质芯片;
所述介质控制器,用于在接收到所述写入请求后,指示所述介质芯片存储第一目标数据;
所述介质芯片,用于将所述第一目标数据扩展后、存储到所述介质芯片中;
所述介质控制器,还用于在接收到所述查找请求后,向所述介质芯片发送查找指令,所述查找指令用于请求查找所述第一目标数据;
所述介质芯片,还用于接收所述查找指令,对所述查找指令中携带所述第一目标数据扩展后,对扩展后的所述第一目标数据与所述介质芯片已存储的第二目标数据进行比对,获得查找结果;向所述介质控制器反馈所述查找结果;
所述介质控制器,还用于向所述处理设备反馈所述查找结果。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/CN2023/116125 WO2024087877A1 (zh) | 2022-10-27 | 2023-08-31 | 一种存储设备、数据查找方法及系统 |
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2022113259254 | 2022-10-27 | ||
CN202211325925 | 2022-10-27 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117953936A true CN117953936A (zh) | 2024-04-30 |
Family
ID=90802375
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211714014.0A Pending CN117953936A (zh) | 2022-10-27 | 2022-12-29 | 一种存储设备、数据查找方法及系统 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN117953936A (zh) |
WO (1) | WO2024087877A1 (zh) |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR101208312B1 (ko) * | 2006-05-12 | 2012-12-05 | 애플 인크. | 조절가능한 용량을 가진 메모리 디바이스 |
CN102110117B (zh) * | 2009-12-29 | 2013-06-12 | 华为技术有限公司 | 用于最长匹配的b树的表项添加、查找、删除方法及装置 |
US10063263B2 (en) * | 2015-05-20 | 2018-08-28 | International Business Machines Corporation | Extended error correction coding data storage |
CN109144409B (zh) * | 2018-07-11 | 2020-02-21 | 华为技术有限公司 | 数据处理方法及装置、存储介质、数据系统 |
-
2022
- 2022-12-29 CN CN202211714014.0A patent/CN117953936A/zh active Pending
-
2023
- 2023-08-31 WO PCT/CN2023/116125 patent/WO2024087877A1/zh unknown
Also Published As
Publication number | Publication date |
---|---|
WO2024087877A1 (zh) | 2024-05-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20230015404A1 (en) | Memory system and data processing system including the same | |
US8635402B2 (en) | Storage system and storage access method and program | |
US20100262772A1 (en) | Transfer control of a storage volume between storage controllers in a cluster | |
US20160203041A1 (en) | Track error-correcting code extension | |
US10990291B2 (en) | Software assist memory module hardware architecture | |
US10395750B2 (en) | System and method for post-package repair across DRAM banks and bank groups | |
US11688453B2 (en) | Memory device, memory system and operating method | |
US10657052B2 (en) | Information handling system with priority based cache flushing of flash dual in-line memory module pool | |
US11614869B2 (en) | Controller for preventing uncorrectable error in memory device, memory device having the same, and operating method thereof | |
US20210334037A1 (en) | Integrated circuit memory devices with enhanced buffer memory utilization during read and write operations and methods of operating same | |
CN103218271A (zh) | 一种数据纠错方法及装置 | |
US8566689B2 (en) | Data integrity units in nonvolatile memory | |
CN107632779B (zh) | 数据处理方法和装置、服务器 | |
US20120017116A1 (en) | Memory control device, memory device, and memory control method | |
US20230325276A1 (en) | Error correction method and apparatus | |
CN117953936A (zh) | 一种存储设备、数据查找方法及系统 | |
CN109828722B (zh) | 异构分布式键值存储系统Raft组数据自适应分布方法 | |
KR20240025451A (ko) | 데이터 캐싱을 위한 방법 및 장치 | |
US9348744B2 (en) | Implementing enhanced reliability of systems utilizing dual port DRAM | |
JP2019083082A (ja) | フラッシュメモリモジュール及びフラッシュメモリ | |
US20190042364A1 (en) | Technologies for maintaining data integrity during data transmissions | |
KR20170042522A (ko) | 비식별 요청을 처리하는 저장 장치 및 그것의 동작 방법 | |
WO2023109571A1 (zh) | 存储级内存、数据处理方法和处理器系统 | |
US11922035B2 (en) | Read-disturb-based read temperature adjustment system | |
US11983431B2 (en) | Read-disturb-based read temperature time-based attenuation system |
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 |