CN117850663A - 一种管理数据的方法及相关产品 - Google Patents
一种管理数据的方法及相关产品 Download PDFInfo
- Publication number
- CN117850663A CN117850663A CN202211214128.9A CN202211214128A CN117850663A CN 117850663 A CN117850663 A CN 117850663A CN 202211214128 A CN202211214128 A CN 202211214128A CN 117850663 A CN117850663 A CN 117850663A
- Authority
- CN
- China
- Prior art keywords
- data
- media interface
- result
- cam
- processing
- 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
- 238000000034 method Methods 0.000 title claims abstract description 26
- 238000012545 processing Methods 0.000 claims abstract description 124
- 230000004044 response Effects 0.000 claims abstract description 42
- 238000010586 diagram Methods 0.000 description 28
- 102100025580 Calmodulin-1 Human genes 0.000 description 16
- 230000008569 process Effects 0.000 description 15
- 238000007726 management method Methods 0.000 description 13
- 101150026942 CAM3 gene Proteins 0.000 description 6
- 101150058073 Calm3 gene Proteins 0.000 description 6
- 102100025926 Calmodulin-3 Human genes 0.000 description 6
- 101100118004 Arabidopsis thaliana EBP1 gene Proteins 0.000 description 5
- 101150052583 CALM1 gene Proteins 0.000 description 5
- 101100459256 Cyprinus carpio myca gene Proteins 0.000 description 5
- 101150091339 cam-1 gene Proteins 0.000 description 5
- 238000012986 modification Methods 0.000 description 5
- 230000004048 modification Effects 0.000 description 5
- 102100025579 Calmodulin-2 Human genes 0.000 description 4
- 101001077352 Homo sapiens Calcium/calmodulin-dependent protein kinase type II subunit beta Proteins 0.000 description 4
- 238000012005 ligant binding assay Methods 0.000 description 4
- COCAUCFPFHUGAA-MGNBDDOMSA-N n-[3-[(1s,7s)-5-amino-4-thia-6-azabicyclo[5.1.0]oct-5-en-7-yl]-4-fluorophenyl]-5-chloropyridine-2-carboxamide Chemical compound C=1C=C(F)C([C@@]23N=C(SCC[C@@H]2C3)N)=CC=1NC(=O)C1=CC=C(Cl)C=N1 COCAUCFPFHUGAA-MGNBDDOMSA-N 0.000 description 4
- 239000007787 solid Substances 0.000 description 4
- 238000005516 engineering process Methods 0.000 description 2
- 239000000835 fiber Substances 0.000 description 2
- 238000013507 mapping Methods 0.000 description 2
- 230000002093 peripheral effect Effects 0.000 description 2
- 238000012360 testing method Methods 0.000 description 2
- 230000004075 alteration Effects 0.000 description 1
- 230000001413 cellular effect Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 230000010365 information processing Effects 0.000 description 1
- 238000003672 processing method Methods 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
- 238000013519 translation Methods 0.000 description 1
- 238000004148 unit process Methods 0.000 description 1
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请提供了一种管理数据的方法及相关产品,相关产品包括控制部件以及介质接口控制器。其中,控制部件包括存储命令处理单元以及介质接口控制器;所述存储命令处理单元向所述介质接口控制器提供介质接口命令;所述介质接口控制器响应于对接收的介质接口命令处理从NVM芯片中读出数据;识别出所述数据的特定模式或类别,将识别结果记录到所述介质接口命令的处理结果中;所述存储命令处理单元响应于收到所述处理结果,根据所述处理结果中所记录的识别结果对所述数据进行处理。
Description
技术领域
本申请涉及存储技术,特别地,涉及管理数据的方法及相关产品。
背景技术
图1A展示了固态存储设备的框图。固态存储设备102同主机相耦合,用于为主机提供存储能力。主机同固态存储设备102之间可通过多种方式相耦合,耦合方式包括但不限于通过例如SATA(Serial Advanced Technology Attachment,串行高级技术附件)、SCSI(Small Computer System Interface,小型计算机系统接口)、SAS(Serial AttachedSCSI,串行连接SCSI)、IDE(Integrated Drive Electronics,集成驱动器电子)、USB(Universal Serial Bus,通用串行总线)、PCIE(Peripheral Component InterconnectExpress,PCIe,高速外围组件互联)、NVMe(NVM Express,高速非易失存储)、以太网、光纤通道、无线通信网络等连接主机与固态存储设备102。主机可以是能够通过上述方式同存储设备相通信的信息处理设备,例如,个人计算机、平板电脑、服务器、便携式计算机、网络交换机、路由器、蜂窝电话、个人数字助理等。存储设备102包括接口103、控制部件104、一个或多个NVM芯片105以及DRAM(Dynamic Random Access Memory,动态随机访问存储器)110。
NAND闪存、相变存储器、FeRAM(Ferroelectric RAM,铁电存储器)、MRAM(MagneticRandom Access Memory,磁阻存储器)、RRAM(Resistive Random Access Memory,阻变存储器)、XPoint存储器等是常见的NVM。
接口103可适配于通过例如SATA、IDE、USB、PCIE、NVMe、SAS、以太网、光纤通道等方式与主机交换数据。
控制部件104用于控制在接口103、NVM芯片105以及DRAM 110之间的数据传输,还用于存储管理、主机逻辑地址到闪存物理地址映射、擦除均衡、坏块管理等。控制部件104可通过软件、硬件、固件或其组合的多种方式实现,例如,控制部件104可以是FPGA(Field-programmable gate array,现场可编程门阵列)、ASIC(Application SpecificIntegrated Circuit,应用专用集成电路)或者其组合的形式。控制部件104也可以包括处理器或者控制器,在处理器或控制器中执行软件来操纵控制部件104的硬件来处理IO(Input/Output)命令。控制部件104还可以耦合到DRAM110,并可访问DRAM 110的数据。在DRAM可存储FTL表和/或缓存的IO命令的数据。
图1B展示了存储设备的控制部件的详细的框图。
主机以遵循存储协议的IO命令访问存储设备。控制部件根据来自主机的IO命令,生成一个或多个存储命令并提供给介质接口控制器。介质接口控制器根据存储命令生遵循NVM芯片的接口协议的存储介质访问命令(例如,编程命令、读命令、擦除命令)。控制部件还跟踪从一个IO命令生成的所有存储命令都被执行完成,并向主机指示IO命令的处理结果。
参看图1B,控制部件包括例如主机接口、主机命令处理单元、存储命令处理单元、介质接口控制器(或称闪存接口控制器闪存通道控制器)与存储介质管理单元。主机接口获取主机提供的IO命令,并生成存储命令提供给存储命令处理单元。存储命令例如访问相同大小的存储空间,例如4KB。将NVM芯片中记录的对应一个存储命令所访问数据的数据单元称为数据帧。物理页记录一个或多个数据帧。例如,物理页的大小17664字节,而数据帧大小为4KB,则一个物理页能存储4个数据帧。
存储介质管理单元为每个存储命令维护逻辑地址到物理地址的转换。例如,存储介质管理单元包括FTL表。对于读命令,存储介质管理单元输出存储命令所访问的逻辑地址对应的物理地址,对于写命令,存储介质管理单元为其分配可用的物理地址,并记录其访问的逻辑地址与分配的物理地址的映射关系。存储介质管理单元还维护诸如垃圾回收、磨损均衡等管理NVM芯片所需的功能。
存储命令处理单元根据存储介质管理单元提供的物理地址,操作介质接口控制器向NVM芯片发出存储介质访问命令。为了清楚的目的,将存储命令处理单元发送给介质接口控制器的命令称为介质接口命令,而将介质接口控制器发送给NVM芯片的命令称为存储介质访问命令。存储介质访问命令遵循NVM芯片的接口协议。
NVM芯片的存储单元被组织为物理块与物理页,其中,每个物理块包括多个物理页。主机提供给存储设备的IO命令中,LBA所代表的存储单元大小是例如4KB,在物理页中除了提供用户区,还提供了备用区。在用户区记录用户提供的4KB数据(记录在上图中的用户区),还提供备用区。存储设备的控制部件使用备用区来记录自身产生的信息。记录在备用区的数据例如ECC算法对用户数据产生的校验数据、用户数据的LBA、对用户数据加扰时的随机数种子、加密或解密密钥等,为了简单的目的,将记录在备用区的数据也统称为元数据。现代NVM芯片提供更大的物理页(例如16KB),使得物理页的容量同LBA所代表存储单元的容量不一致。例如,物理页中记录4个LBA所对应的用户数据,每份用户数据还有其对应的元数据。将物理页中存储的用户数据区与备用区的组合称为数据单元DU(date unit)。该物理页中记录了4个DU。
在一些应用场景中,为了实现某种特定需求,在向物理页写入数据时,通过元数据来指示特定模式或者类别。特定模式或者类别例如统计读出数据的错误比特数据,对用户区数据加密或者用户区数据中具有指定数值等。从物理页读出数据时,若识别出特定模式或类别,根据特定模式或类别指示来对读出的数据进行相应操作。例如,为了验证NVM芯片的可靠性,向物理页写入随机数,随后读出所写入的随机数,并统计读出数据的错误比特数。这种场景下,写入的随机数本身不再重要,用户仅希望获取读出数据的错误比特数。为了加速这种场景的处理,在向物理页写入数据时,在元数据中指示特定模式(统计错误比特数)。在从物理页读出数据时,若识别出元数据中所指示的统计比特数这一特定模式,则无需缓存从物理页读出的数据,而可以仅记录其错误比特数。
发明内容
控制部件在主机和NVM芯片之间传输数据时,控制部件中介质接口控制器将从NVM芯片读取的数据搬移到缓存,并生成各命令所对应的处理结果(CPL)。控制部件中存储命令处理单元(如图1B所示)再根据CPL从缓存中获取从NVM芯片读出的数据,然后还需要从读出数据中识别是否存指示了特定模式或类别。若指示了特定模式或类别,则按照特定模式或类别所对应的处理方式对读出数据处理。存储命令处理单元识别出读出数据是否具有特定类别或模式通常是由处理器(CPU)来实现的。随着应用场景以及需求不断丰富,通过元数据所指示的特定模式或者类别是多样化的,可能有成百上千种。例如每个DU中元数据的长度为128比特,通过128比特来表征特定模式或类别。存储命令处理单元识别每个DU数据是否具有特定类别或模式需要查询2128次,故从读出数据中识别是否具有特定模式或类别工作量巨大,CPU负担较重。每个命令所对应的读出数据长度与实际需求有关,可能不止一个DU大小,随着数据量增加这进一步增加了CPU的负担。
根据本申请的实施例,在介质接口控制器引入内存可寻址存储器CAM,并CAM中设置多个被匹配的比特序列,通过CAM将读出数据与比特序列对比匹配识别出特定模式或类别,并识别结果记录到命令的处理结果CPL中,控制部件中存储命令处理单元从CPL所记录的识别结果即可知晓读出数据是否具有特定模式或类别,不需要从缓存中获取数据来识别。不仅将CPU从识别缓存中的读出数据是否具有特定模式或者类别的工作中解脱出来,还提高识别特定模式或者类别的效率,进而提高了对于命令处理的效率以及存储设备的性能。
根据本申请的第一方面,提供了根据本申请第一方面的第一控制部件,该控制部件包括:存储命令处理单元以及介质接口控制器;所述存储命令处理单元向所述介质接口控制器提供介质接口命令;所述介质接口控制器响应于对接收的介质接口命令处理从NVM芯片中读出数据;识别出所述数据的特定模式或类别,将识别结果记录到所述介质接口命令的处理结果中;所述存储命令处理单元响应于收到所述处理结果,根据所述处理结果中所记录的识别结果对所述数据进行处理。
根据本申请的第一方面的第一控制部件,提供了根据本申请第一方面的第二控制部件,所述介质接口控制器包括介质接口以及内容可寻址存储器CAM;所述介质接口响应于对介质接口命令处理从NVM芯片中读出数据;所述CAM与所述介质接口耦合,响应于接收到所述数据,并识别出所述数据的特定模式或类别,并将识别结果记录到所述介质接口命令的处理结果中。
根据本申请的第一方面的第二控制部件,提供了根据本申请第一方面的第三控制部件,其中,所述CAM响应于识别出所述数据的特定模式或类别,生成指定标记,将所述指定标记记录到所述处理结果中,其中,所述指定标记用于指示所述特定模式或类别。
根据本申请的第一方面的第二或第三控制部件,提供了根据本申请第一方面的第四控制部件,其中,所述CAM包括多个条目;其中,每个条目记录一个比特序列;所述CAM将所述数据与至少一个比特序列进行匹配,将匹配结果作为所述识别结果,以及将所述匹配结果记录到所述介质接口命令的处理结果中。
根据本申请的第一方面的第四控制部件,提供了根据本申请第一方面的第五控制部件,所述CAM还包括掩码寄存器以及第一匹配单元;所述掩码寄存器指示了所述至少一个比特序列中每个比特序列与所述数据进行匹配的指定比特;所述第一匹配单元将所述数据与所述每个比特序列中指定比特进行匹配得到所述匹配结果。
根据本申请的第一方面的第五控制部件,提供了根据本申请第一方面的第六控制部件,所述掩码寄存器还指示了所述每个比特序列中指定比特的位置。
根据本申请的第一方面的第四至第六任一控制部件,提供了根据本申请第一方面的第七控制部件,其中,响应于所述至少一个比特序列中存在与所述数据匹配的比特序列,所述CAM输出匹配成功的指示,以及还指示匹配成功的比特序列的条目编号,其中,所述条目编号为所述匹配结果。
根据本申请的第一方面的第七控制部件,提供了根据本申请第一方面的第八控制部件,其中,所述数据可同时与多个比特序列匹配;若所述数据同时与多个比特序列匹配,所述CAM指示匹配的条目编号包含所述多个比特序列所对应的条目的编号。
根据本申请的第一方面的第二至第八任一控制部件,提供了根据本申请第一方面的第九控制部件,所述CAM还包括:起始位置寄存器;所述起始位置寄存器,用于指示所述数据中与所述至少一个比特序列进行匹配的起始位置。
根据本申请的第一方面的第九控制部件,提供了根据本申请第一方面的第十控制部件,其中,所述CAM中掩码寄存器、各个条目所对应的比特序列和/或所述起始位置寄存器中的数据可被修改或者被配置。
根据本申请的第一方面的第二至第十任一控制部件,提供了根据本申请第一方面的第十一控制部件,所述介质接口控制器包括多个CAM以及第二匹配单元;所述介质接口响应接收到所述数据,将所述数据发送给所述多个CAM中的部分或全部;所述第二匹配单元与所述多个CAM耦合,响应于接收每个CAM输出结果,基于所述部分或全部CAM的输出结果输出匹配结果。
根据本申请的第一方面的第十一控制部件,提供了根据本申请第一方面的第十二控制部件,其中,所述第二匹配单元接收到至少一个CAM输出结果指示匹配成功,则输出的所述匹配结果指示匹配成功。
根据本申请的第一方面的第十一或第十二控制部件,提供了根据本申请第一方面的第十三控制部件,其中,所述介质接口将所述数据拆分为多个子数据,将每个子数据发送给一个CAM;所述第二匹配单元接收到至少一个CAM输出结果指示匹配不成功,则输出的所述匹配结果指示匹配不成功。
根据本申请的第一方面的第十三控制部件,提供了根据本申请第一方面的第十四控制部件,其中,所述第二匹配单元接收到所述每个子数据所对应的CAM输出结果均指示匹配成功,则输出的所述匹配结果指示匹配成功。
根据本申请的第一方面的第四至第十四任一控制部件,提供了根据本申请第一方面的第十五控制部件,所述每个条目所记录的比特序列的长度为指定值。
根据本申请的第一方面的第四至第十五任一控制部件,提供了根据本申请第一方面的第十六控制部件,所述每个条目所记录的比特序列为连续比特序列或者不连续比特序列。
根据本申请的第一方面的第二至第十六任一控制部件,提供了根据本申请第一方面的第十七控制部件,其中,所述处理结果包括匹配类别字段,其中;所述匹配类别字段,指示了由CAM提供的对所述数据的匹配结果。
根据本申请的第一方面的第二至第十七任一控制部件,提供了根据本申请第一方面的第十八控制部件,包括:所述数据包括备用区数据和用户区数据;所述CAM响应于读取出所述数据,识别出所述备用区数据所指示的特定模式或类别,并将所述识别结果记录到所述处理结果中;所述存储命令处理单元响应于收到所述处理结果,根据所述处理结果中所记录的识别结果对所述用户区数据进行处理。
根据本申请的第一方面的第十八控制部件,提供了根据本申请第一方面的第十九控制部件,包括:所述CAM响应于识别出所述数据的特定模式或类别为统计错误比特数,并将识别结果记录在所述处理结果中;所述存储命令处理单元根据所述处理结果中所记录的识别结果指示统计所述用户区数据中错误比特数,并用所述错误比特数作为对读取出所述数据的响应。
根据本申请的第一方面的第十八控制部件,提供了根据本申请第一方面的第二十控制部件,其中,所述CAM响应于识别出所述数据的特定模式或类别为用户区数据被加密,将识别结果记录在所述处理结果中;所述存储命令处理单元根据所述处理结果中所记录的识别结果指示将所述用户区数据进行解密,并将解密后的数据发送给主机。
根据本申请的第一方面的第二十控制部件,提供了根据本申请第一方面的第二十一控制部件,其中,所述CAM响应于识别出所述数据的特定模式或类别为未对用户区数据加密,将识别结果记录在所述处理结果中;所述存储命令处理单元根据所述处理结果中所记录的识别结果指示输出所述用户区数据的原始数据。
根据本申请的第一方面的第十八控制部件,提供了根据本申请第一方面的第二十二控制部件,其中所述CAM响应于识别出所述数据的特定模式或类别为用户区数据是具有特定值的数据,将识别结果记录在所述处理结果中;所述存储命令处理单元根据所述处理结果中所记录的识别结果指示输出读出数据成功的指示或者错误比特数而不传输所述用户区数据。
根据本申请的第一方面的第十八至第二十二任一控制部件,提供了根据本申请第一方面的第二十三控制部件,其中,所述CAM响应于识别出所述数据的特定模式或类别为写入用户区数据时加入了指定数据,将识别结果记录在所述处理结果中;所述存储命令处理单元根据所述处理结果中所记录的识别结果指示根据所述指定数据获取随机数种子配置解扰单元,并对所述读出的数据解扰。
根据本申请的第一方面的第二至第二十三任一控制部件,提供了根据本申请第一方面的第二十四控制部件,所述CAM将匹配完成的所述数据存储到存储器中。
根据本申请的第一方面的第一至第二十四任一控制部件,提供了根据本申请第一方面的第二十五控制部件,其中,
所述介质接口控制器基于从所述数据中识别出特定模式或类别,而释放为所述数据分配的存储资源。
根据本申请的第二方面,提供了根据本申请第二方面的第一介质接口控制器,包括:介质接口以及CAM;所述介质接口响应于对介质接口命令处理从NVM芯片中读出数据;所述CAM与所述介质接口耦合,响应于接收到所述数据,并识别出所述数据的特定模式或类别,并将识别结果记录到所述介质接口命令的处理结果中。
根据本申请的第二方面的第一介质接口值器,提供了根据本申请第二方面的第二介质接口控制器,所述CAM包括多个条目;其中,每个条目记录一个比特序列;所述CAM将所述数据与至少一个比特序列进行匹配,将匹配结果作为所述识别结果,以及将所述匹配结果记录到所述介质接口命令的处理结果中。
根据本申请的第二方面的第二介质接口值器,提供了根据本申请第二方面的第三介质接口控制器,所述CAM还包括掩码寄存器以及第一匹配单元;所述掩码寄存器指示了所述至少一个比特序列中每个比特序列与所述数据进行匹配的指定比特;所述第一匹配单元将所述数据与所述每个比特序列中指定比特进行匹配得到所述匹配结果。
根据本申请的第三方面,提供了根据本申请第三方面的一种存储设备,包括:存储介质以及如第一方面所述的控制部件。
根据本申请的第四方面,提供了根据本申请第四方面的一种管理数据的方法,包括:响应于对接收的介质接口命令处理从NVM芯片中读出数据,识别出所述数据的特定模式或类别,将识别结果记录到所述介质接口命令的处理结果中;根据所述处理结果中所记录的识别结果对所述数据进行处理。
根据本申请的第五方面,提供了根据本申请第五方面的一种管理数据的方法,包括:响应收到介质接口命令,并对介质接口命令处理从NVM芯片中读出数据;识别出所述数据的特定模式或类别,将识别结果记录到所述介质接口命令的处理结果中。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请中记载的一些实施例,对于本领域普通技术人员来讲,还可以根据这些附图获得其他的附图。
图1A为现有技术中的存储设备的框图;
图1B展示了存储设备的控制部件的详细的框图;
图2A展示了本申请实施例所提供的一种介质接口控制器的结构示意图;
图2B展示了本申请实施例所提供的一种CAM的结构示意图;
图2C展示了本申请实施例所提供的一种介质接口命令的处理结果的数据结构示意图;
图2D展示了本申请实施例所提供的另一种CAM的结构示意图;
图3A展示了本申请实施例所提供的CAM的工作原理示意图;
图3B展示了本申请实施例所提供的另一种CAM的结构示意图;
图3C展示了本申请实施例所提供的另一种介质接口控制器的结构示意图;
图3D展示了本申请实施例所提供的另一种介质接口控制器的结构示意图;
图4展示了本申请实施例所提供的一种控制部件的结构示意图;
图5A展示了本申请实施例所提供的另一种CAM的工作过程示意图;
图5B展示了本申请实施例所提供的另一种CAM的工作过程示意图;
图5C展示了本申请实施例所提供的另一种CAM的工作过程示意图;
图6展示了本申请实施例提供的一种控制部件管理数据的方法流程示意图;
图7展示了本申请实施例提供的一种介质接口控制器管理数据的方法流程示意图。
具体实施方式
下面结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
图2A展示了本申请实施例所提供的一种介质接口控制器的结构示意图。
作为举例,在图2A中,介质接口控制器包括微指令执行单元、介质接口以及内容可寻址存储器(CAM,Content Addressable Memory)。介质接口控制器响应于接收到介质接口命令,微指令执行单元通过执行微指令序列对介质接口命令处理通过介质接口向NVM芯片发出存储介质访问命令,例如,存储介质访问命令包括读命令、编程命令、暂停命令或者读取NVM芯片特征(feature)等。微指令执行单元例如为微处理器或处理器核。NVM芯片响应于接收到存储介质访问命令会根据存储介质访问命令的指示执行相应操作。CAM与介质接口耦合,通过介质接口接收到NVM芯片的读出数据,并识别出该读出数据是否具有特定模式或类别,并将识别结果记录到介质接口命令的处理结果(CPL)中。
继续回到图2A,介质接口控制器还包括接收队列和完成队列,其中,接收队列用于存储介质接口控制器所接收到的待处理的介质接口命令。完成队列用于存储对介质接口命令所对应的处理结果中。
图2B展示了本申请实施例所提供的一种CAM的结构示意图。
作为举例,在图2B中,CAM包括多个条目(如条目0~条目15),每个条目记录一个比特序列。每个条目记录的比特序列具有指定长度(如128比特)。每个条目记录的比特序列可以是连续比特序列或者为不连续比特序列。介质接口向CAM输入从NVM芯片读出数据,CAM将输入的读出数据与CAM中的比特序列进行匹配。若存在与该输入的读出数据匹配的比特序列,CAM输出匹配成功的指示,以及还指示匹配成功的比特序列的条目编号,并将匹配成功的比特序列所对应的条目编号作为匹配结果记录在处理结果中。又作为举例,CAM将输入数据与比特序列匹配完成后(匹配成功或者匹配失败),还将该读出数据存储到存储器中(如图1A所示的DRAM)。
又作为举例,CAM响应于识别出从NVM芯片读出数据具有特定模式或类别,生成指定标记,将指定标记记录到所述处理结果中,其中,指定标记用于指示所述特定模式或类别。例如,CAM根据匹配结果(如匹配成功的条目编号)生成对应的指定标记,并记录在介质接口命令的处理结果中。
图2C展示了本申请实施例所提供的一种介质接口命令的处理结果的数据结构示意图。
作为举例,在图2C,介质接口命令的处理结果CPL中例如包括命令标识(CMD ID)字段、状态字段以及数据索引字段。命令标识字段用于区分多个被同时处理的介质接口命令。状态字段用于指示命令处理结果成功或失败,例如,用于标识读出的命令发生不可纠正错误,或者编程命令处理失败。数据索引字段指示例如读出数据在DRAM中的存储位置。根据本申请的实施例的命令处理结果还包括“匹配类别”字段,其指示了由CAM提供的对读出数据的匹配结果或者根据匹配结果生成的指定标记。
又作为举例,为了提高识别出读出数据中特定模式或者类别的效率。CAM可以将输入的读出数据与其所存储的部分条目的比特序列进行匹配,而非将读出数据与其存储的全部条目的比特序列遍历去匹配,例如,CAM中那些条目的比特序列与输入的读出数据来进行匹配可以由外部CPU来配置。又作为举例,CAM将输入的读出数据与其所存储的部分或全部条目的比特序列进行匹配时,读出数据可以同时与一个或多个比特序列匹配成功,CAM输出匹配成功的指示,以及还指示所有匹配成功的比特序列的条目编号。
图2D展示了本申请实施例所提供的另一种CAM的结构示意图。
作为举例,在图2D中,CAM还包括掩码寄存器。掩码寄存器指示了要与读出数据进行匹配的每个比特序列的指定比特(如指定比特在比特序列中的位置)。例如,若每个比特序列的长度为128位(0~127),而读出数据长度为64比特,即读出数据长度小于每个条目中所记录的比特序列的长度情况下,可以配置CAM中掩码寄存器来指示128位的比特序列中有64比特(下文统称为有效比特)来与读出数据进行匹配,即匹配结果与掩码寄存器所指示的64位有效比特有关,与剩余64比特无关。而64位有效比特可以根据实际需求配置,可以是比特序列128位中任意64比特,这64比特有效位在比特序列中可以连续,也可以不连续。又例如,若读出数据长度不小于每个条目所记录的比特序列长度,也可以配置CAM中掩码寄存器来指示比特序列指定比特序列与读出数据进行匹配,如CAM通过掩码寄存器将每个比特序列中30~75比特作为与读出数据进行匹配的比特位,即读出数据与比特序列在匹配时,匹配结果仅与30~75比特有关。本申请中,掩码寄存器所指示的指定比特可以通过CPU来调整或者修改,具体指定比特可以由用户根据实际需求来配置。CAM不关心也不关注比特序列与读出数据长度之间的关系,只需要根据配置好的掩码寄存器所指示的相应比特位将读出数据与比特序列进行匹配。另外,CAM还包括匹配单元A1,匹配单元A1将读出数据与比特序列中指定比特进行匹配。
图3A展示了本申请实施例所提供的CAM的工作原理示意图。
作为举例,在图3A中,CAM包括4个条目分别为Entry1、Entry2、Entry3以及Entry4,其中,Entry1所对应的比特序列为10101010,Entry2为10101011,Entry3为10101110,Entry4为10100010。掩码寄存器所记录的数据为mask(110000),其中,掩码寄存器所记录的数据中高电平的比特位表示指定比特位。也就是说,由Entry1、Entry2、Entry3以及Entry4中高两位比特位来决定是否与输入的读出数据匹配成功。若当前输入的读出数据(input)为10101010,则输入的读出数据与Entry1、Entry2、Entry3以及Entry4条目均匹配成功。
又作为举例,以存储介质访问命令为读命令为例,NVM芯片响应于接收到介质接口控制器发送的读命令,根据该读命令按物理页来读取数据,并将读出数据发送给介质接口。上述背景部分已经讲述过每个物理页包含一个或多个DU,而每个DU又包含用户区和备用区。也就是说,介质接口控制器根据介质接口命令从NVM芯片中读出数据可能包含一个或多个DU所对应的数据。由于每个DU包含用户区以及备用区,读出数据包含用户区数据以及备用区数据。介质接口响应于收到NVM芯片读出数据,将该读出数据发送给CAM。另外,在向NVM芯片写入数据时会向用户区写入用户数据,而向备用区写入元数据(元数据可以用来指示特定模式或者类别)。即读出数据中特定模式或类别在备用区数据(元数据)中,下文统一将备用区数据称为元数据。故CAM在接收到读出数据后,将读出数据中的元数据与CAM中的一个或多个被匹配的比特序列进行匹配。若读出数据与CAM中至少一个被匹配的比特序列匹配成功,说明读出数据的元数据至少有一种特定模式或者类别,CAM将识别出的特定模式或类别记录到该介质接口命令对应的处理结果上,以使得后续根据处理结果上所记录的识别结果所对应的处理方式对用户区数据进行处理。
图3B展示了本申请实施例所提供的另一种CAM的结构示意图。
作为举例,由于写入数据时是通过元数据来指示特定模式或类别,本申请所关注的是CAM如何将元数据与一个或多个比特序列进行匹配,以识别出特定模式或类别。要想将元数据与一个或多个比特序列进行匹配,须确定元数据的在读出数据中的位置。在图3B中,CAM还包括地起始位置寄存器,用于指示对输入的读出数据开始进行匹配的位置。例如,DU包括4KB用户数据与96字节元数据,则通过设置起始位置来从读出数据的4KB大小之后开始匹配,从而仅将96字节元数据同各条目进行匹配。又例如,若已知备用区中可能包括标记F,且标记F位于96字节的第32-35字节,则通过地起始位置寄存器设置起始位置指示4KB+31字节。以及在例如条目3中记录标记F的内容,标记F大小为4字节,可位于条目3(16字节大小)的任何位置,并由掩码寄存器指示标记F在条目3中的位置。本申请中,地起始位置寄存器所指示的读出数据开始进行匹配的位置可以根据实际需求被修改或者被配置。
又作为举例,介质接口控制器包括多个CAM单元以及匹配单元A2;介质接口响应接收到从NVM芯片读出数据,将该读出数据发送给多个CAM单元中的部分或全部;匹配单元A2与多个CAM单元耦合,响应于接收每个CAM单元输出结果,基于部分或全部CAM单元的输出结果输出匹配结果。本申请可以结合多个CAM单元来对读出数据进行匹配。
图3C展示了本申请实施例所提供的另一种介质接口控制器的结构示意图。
随着实际需求越来越多,元数据所指示的特定模式或类别呈现多样化的特征,CAM可以是产业界成熟的产品,即CAM有多少个条目是由不同CAM生产商所定好的。每个CAM所具有的条目有限有可能无法包括所有特定模式或者类别所对应的条目,此处可能需要在介质接口控制器中设置多个CAM,通过不同的CAM来记录不同特定模式或类别所对应的条目。在图3C中,假如特定模式或类别有100种,每个CAM有25个条目,每个条目记录一种特定模式或类别所对应的比特序列。为了记录100种特定模式或类别,在介质接口控制器中设置有4个CAM,分别为CAM0、CAM1、CAM2以及CAM3,其中CAM0包含条目0~条目24,CAM1包含条目25~条目49,CAM2包含条目50~条目74,CAM1包含条目75~条目99,条目0~条目99中每个条目对应一种特定模式或类别。另外,CAM0、CAM1、CAM2以及CAM3也包括掩码寄存器(图3C中简称掩码)以及地址起始位置寄存器(图3C中简称起始位置)。介质接口响应于从NVM芯片读出数据(如数据M),将数据M分别输入给CAM0~CAM3。CAM0分别将数据M与条目0~条目24所对应的比特序列进行匹配,CAM1分别将数据M与条目25~条目49所对应的比特序列进行匹配,CAM2分别将数据M与条目50~条目74所对应的比特序列进行匹配,CAM3分别将数据M与条目75~条目99所对应的比特序列进行匹配。若CAM0~CAM3中存在一条目所对应的比特序列与数据M匹配成功,则输出匹配成功的条目编号,并将匹配成功的条目编号记录到该介质接口命令的处理结果中。
为了提高对特定模式或类别识别的效率。又例如,介质接口控制器仅将数据M输入给CAM0和CAM3。CAM0分别将数据M与条目0~条目24所对应的比特序列进行匹配,CAM3分别将数据M与条目75~条目99所对应的比特序列进行匹配。若CAM0与CAM3中存在一条目所对应的比特序列与数据M匹配成功,则输出匹配成功的条目编号,并将匹配成功的条目编号记录到该介质接口命令的处理结果中。
图3D展示了本申请实施例所提供的另一种介质接口控制器的结构示意图。
又作为举例,CAM中每个条目的比特序列具有指定长度(如128位),当读出数据中元数据的长度大于128位(如为512位),通过一个CAM来对读出数据中的元数据进行匹配显然不行,此时需要4个CAM结合来对元数据进行匹配。在图3D中,介质接口控制器包括CAM11、CAM12、CAM13以及CAM14。其中,CAM11、CAM12、CAM13以及CAM14分别存储了512位中每128位所对应的所有比特序列,介质接口从NVM芯片中读出数据,按照预设的分配策略将512位中每128位输出给一个CAM,其中,输入给每个CAM的128位数据在读出数据中可以连续,也可以不连续。例如,介质接口将从NVM芯片读出的512位数据拆分为数据Q1、数据Q2、数据Q3以及数据Q4。介质接口将数据Q1发送给CAM11、数据Q2发送给CAM12、数据Q3发送给CAM13以及数据Q4发送给CAM14。另外,在图3D中,CAM11、CAM12、CAM13以及CAM14均与匹配单元A2耦合,用于接收CAM11、CAM12、CAM13以及CAM14的输出结果,若CAM11、CAM12、CAM13以及CAM14均输出匹配成功,则匹配单元A2生成一个匹配成功的指示,并指示各CAM中各数据匹配成功的条目组合。若CAM11、CAM12、CAM13以及CAM14中存在输出匹配不成功,则匹配单元A2生成一个匹配不成功的指示。若匹配不成功,则在介质接口命令所对应的处理结果中记录匹配不成功的信息。
图4展示了本申请实施例所提供的一种控制部件的结构示意图。
作为举例,在图4中,控制部件包括存储命令处理单元以及介质接口控制器。存储命令处理单元向介质接口控制器提供介质接口命令,表示为过程(1)以及过程(2),例如,存储命令处理单元和介质接口控制器通过接收队列来传递介质接口命令。介质接口控制器包括接收队列、完成队列、微指令执行单元、介质接口以及CAM。介质接口控制器响应于对接收的介质接口命令处理从NVM芯片中读出数据,表示为过程(3)和(4)。介质接口将从NVM芯片读出数据发送给CAM,表示为过程(5)。CAM识别出从NVM芯片读出数据的特定模式或类别,将识别结果记录到介质接口命令的处理结果中,并将处理结果存储到完成队列,表示过程(6)。另外,CAM还将识别完成的数据存储到存储器,表示为过程(7)。存储命令处理单元从完成队列获取介质接口命令的处理结果,根据处理结果中所记录的识别结果对数据进行相应处理(例如统计错误比特数据),表示为过程(8)。另外,介质接口控制器基于从数据中识别出特定模式或类别,而释放为数据分配的存储资源。
由于特定模式或者类别多样化,例如,特定模式或类别为对写入数据加密或者写入数据具有特定值的数据等。为了便于理解下面列举了几个实施例来对CAM的工作原理进行进一步介绍。
作为举例,CAM单元响应于读取出所述数据,识别出备份区数据所指示的特定模式或类别,并将识别结果记录到介质接口命令的处理结果中;存储命令处理单元响应于收到处理结果,根据处理结果中所记录的识别结果对用户区数据进行处理。
图5A展示了本申请实施例所提供的另一种CAM的工作过程示意图。
作为举例,在写入数据过程中,若控制部件收到主机发送的写命令,对写命令进行解析并判断写入数据是否需要加密。若需要加密,则对写入用户区数据进行加密并保存在用户区,以及在备用区的元数据中记录了对写入到用户区的数据加密。例如,在备用区记录标记F1,其中,标记F1指示了对写入到用户区的数据加密。在图5A中,介质接口从NVM芯片中读出数据,CAM识别读出数据的备用区的元数据中是否记录了对写入到用户区的数据加密(如元数据中是否有标记F1)。若识别出元数据记录了对写入到用户区的数据加密,对从用户区读出的数据进行解密并输出解密结果。若识别出元数据没有记录对写入到用户区的数据加密,则输出从用户区数据读出的原始数据。
图5B展示了本申请实施例所提供的另一种CAM的工作过程示意图。
作为举例,在写入数据过程中,若控制部件收到主机发送的写命令,对写命令进行解析并判断出写入数据中具有特定值的数据。例如,特定值数据为魔数,魔数是指为测试NVM的目的而生成的数据;或者错误比特数。若具有特定值的数据,则该数据写入到用户区,以及在备用区的元数据中记录了对写入到用户区的具有特定值的数据。例如,在备用区记录标记F2,其中,标记F2指示了写入到用户区的具有特定值的数据。在图5B中,介质接口从NVM芯片中读出数据,CAM识别读出数据的备用区的元数据中是否记录了标记F2。若识别出元数据中记录了标记F2,则输出读出数据成功或者错误比特数等数据。例如,标记F2指示写入数据中包含魔数,若CAM识别出备用区的元数据记录了标记F2,则说明写入到用户区的数据包含魔数,从用户区读出的数据为测试数据,用户不需要关心数据内容,输出例如读出数据成功的结果即可。又例如,标记F2指示统计写入数据中的错误比特数,若CAM识别出备用区的元数据记录了标记F2,则说明不关心写入到用户区的具体数据,只关心写入到用户区的数据错误比特数,输出例如错误比特数即可,不输出读出的用户区数据的原始数据。
图5C展示了本申请实施例所提供的另一种CAM的工作过程示意图。
作为举例,在写入数据过程中,若控制部件收到主机发送的写命令,对写命令进行解析并判断出写入数据中加入指定数据。例如,指定数据为加扰的随机数种子。若加入指定数值,则该数据写入到用户区,以及在备用区的元数据中记录了对写入到用户区的数据加入指定数值。例如,在备用区记录标记F3,其中,标记F3指示了写入到用户区的数据加入指定数值。在图5C中,介质接口从NVM芯片中读出数据,CAM识别读出数据的备用区的元数据中是否记录了标记F3。若识别出元数据记录了标记F3,则在处理结果加入匹配结果(如指定数据)。存储命令处理单元将该指定数据作为随机数种子配置随机化解忧单元,对读出数据解忧,而使得存储命令处理单元无需再选择要使用的随机数种子。
图6展示了本申请实施例提供的一种控制部件管理数据的方法流程示意图。应用于图4所示的控制部件,具体步骤如下所示:
步骤601,介质接口控制器响应于对接收的介质接口命令处理从NVM芯片中读出数据,识别出该数据的特定模式或类别,将识别结果记录到介质接口命令的处理结果中。
步骤602,存储命令处理单元根据处理结果中所记录的识别结果对该数据进行处理。
图7展示了本申请实施例提供的一种介质接口控制器管理数据的方法流程示意图。应用于图2A所示的介质接口控制器,具体步骤如下所示:
步骤701,介质接口响应收到介质接口命令,并对介质接口命令处理从NVM芯片中读出数据。
步骤702,CAM识别出数据的特定模式或类别,将识别结果记录到介质接口命令的处理结果中。
又作为举例,本申请实施例还提供一种存储设备,该存储包括:存储介质以及上述所述的控制部件。
尽管已描述了本申请的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本申请范围的所有变更和修改。显然,本领域的技术人员可以对本申请进行各种改动和变型而不脱离本申请的精神和范围。这样,倘若本申请的这些修改和变型属于本申请权利要求及其等同技术的范围之内,则本申请也意图包含这些改动和变型在内。
Claims (10)
1.一种控制部件,其特征在于,包括:存储命令处理单元以及介质接口控制器;
所述存储命令处理单元向所述介质接口控制器提供介质接口命令;
所述介质接口控制器响应于对接收的介质接口命令处理从NVM芯片中读出数据;识别出所述数据的特定模式或类别,将识别结果记录到所述介质接口命令的处理结果中;
所述存储命令处理单元响应于收到所述处理结果,根据所述处理结果中所记录的识别结果对所述数据进行处理。
2.如权利要求1所述的控制部件,其特征在于,所述介质接口控制器包括介质接口以及内容可寻址存储器CAM;
所述介质接口响应于对介质接口命令处理从NVM芯片中读出数据;
所述CAM与所述介质接口耦合,响应于接收到所述数据,并识别出所述数据的特定模式或类别,并将识别结果记录到所述介质接口命令的处理结果中。
3.如权利要求2所述的控制部件,其特征在于,其中,
所述CAM包括多个条目;其中,每个条目记录一个比特序列;
所述CAM将所述数据与至少一个比特序列进行匹配,将匹配结果作为所述识别结果,以及将所述匹配结果记录到所述介质接口命令的处理结果中。
4.如权利要求3所述的控制部件,其特征在于,所述CAM还包括掩码寄存器以及第一匹配单元;
所述掩码寄存器指示了所述至少一个比特序列中每个比特序列与所述数据进行匹配的指定比特;所述第一匹配单元将所述数据与所述每个比特序列中指定比特进行匹配得到所述匹配结果。
5.如权利要求3或4所述的控制部件,其特征在于,所述CAM还包括:起始位置寄存器;
所述起始位置寄存器,用于指示所述数据中与所述至少一个比特序列进行匹配的起始位置。
6.如权利要求3-5任一项所述的控制部件,其特征在于,所述介质接口控制器包括多个CAM以及第二匹配单元;
所述介质接口响应接收到所述数据,将所述数据发送给所述多个CAM中的部分或全部;
所述第二匹配单元与所述多个CAM耦合,响应于接收每个CAM输出结果,基于所述部分或全部CAM的输出结果输出匹配结果。
7.如权利要求6所述的控制部件,其特征在于,其中,
所述介质接口将所述数据拆分为多个子数据,将每个子数据发送给一个CAM;
所述第二匹配单元接收到至少一个CAM输出结果指示匹配不成功,则输出的所述匹配结果指示匹配不成功。
8.如权利要求2-7任一项所述的控制部件,其特征在于,包括:
所述数据包括备用区数据和用户区数据;
所述CAM响应于读取出所述数据,识别出所述备用区数据所指示的特定模式或类别,并将所述识别结果记录到所述处理结果中;
所述存储命令处理单元响应于收到所述处理结果,根据所述处理结果中所记录的识别结果对所述用户区数据进行处理。
9.一种介质接口控制器,其特征在于,包括:介质接口以及CAM;
所述介质接口响应于对介质接口命令处理从NVM芯片中读出数据;
所述CAM与所述介质接口耦合,响应于接收到所述数据,并识别出所述数据的特定模式或类别,并将识别结果记录到所述介质接口命令的处理结果中。
10.一种管理数据的方法,其特在于,包括:
响应于对接收的介质接口命令处理从NVM芯片中读出数据,识别出所述数据的特定模式或类别,将识别结果记录到所述介质接口命令的处理结果中;
根据所述处理结果中所记录的识别结果对所述数据进行处理。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211214128.9A CN117850663A (zh) | 2022-09-30 | 2022-09-30 | 一种管理数据的方法及相关产品 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211214128.9A CN117850663A (zh) | 2022-09-30 | 2022-09-30 | 一种管理数据的方法及相关产品 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117850663A true CN117850663A (zh) | 2024-04-09 |
Family
ID=90531688
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211214128.9A Pending CN117850663A (zh) | 2022-09-30 | 2022-09-30 | 一种管理数据的方法及相关产品 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117850663A (zh) |
-
2022
- 2022-09-30 CN CN202211214128.9A patent/CN117850663A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106448737B (zh) | 读取闪存数据的方法、装置以及固态驱动器 | |
US10437737B2 (en) | Data storage device | |
CN108874300B (zh) | 数据储存装置以及其操作方法 | |
TW201716980A (zh) | 資料儲存設備及其操作方法 | |
US11599481B2 (en) | Error recovery from submission queue fetching errors | |
US10067873B2 (en) | Data storage device and operating method thereof | |
KR101979735B1 (ko) | 비휘발성 메모리 시스템 및 이와 통신하는 호스트 | |
CN107797934B (zh) | 处理去分配命令的方法与存储设备 | |
US20130080787A1 (en) | Memory storage apparatus, memory controller and password verification method | |
KR20160105625A (ko) | 데이터 저장 장치 및 그것의 동작 방법 | |
CN107797938B (zh) | 加快去分配命令处理的方法与存储设备 | |
US11449270B2 (en) | Address translation method and system for KV storage device | |
CN112764669B (zh) | 一种硬件加速器 | |
CN112765055B (zh) | 存储设备的控制部件 | |
KR20180126656A (ko) | 데이터 저장 장치 및 그것의 동작 방법 | |
TWI722496B (zh) | 使用者資料的加解密方法及裝置 | |
US20190377693A1 (en) | Method to generate pattern data over garbage data when encryption parameters are changed | |
TWI521345B (zh) | 回應讀取方法及資料傳輸系統 | |
CN110865945B (zh) | 存储设备的扩展地址空间 | |
KR20210060867A (ko) | 데이터 저장 장치 및 그것의 동작 방법 | |
CN113721838B (zh) | 用于存储设备的写、读数据方法、存储控制器以及dma引擎 | |
CN114968849B (zh) | 提高编程缓存利用率的方法及其设备 | |
CN112148626A (zh) | 压缩数据的存储方法及其存储设备 | |
WO2018041258A1 (zh) | 去分配命令处理的方法与存储设备 | |
US11644983B2 (en) | Storage device having encryption |
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 |