CN112513804B - 一种数据处理方法及装置 - Google Patents
一种数据处理方法及装置 Download PDFInfo
- Publication number
- CN112513804B CN112513804B CN201880095798.9A CN201880095798A CN112513804B CN 112513804 B CN112513804 B CN 112513804B CN 201880095798 A CN201880095798 A CN 201880095798A CN 112513804 B CN112513804 B CN 112513804B
- Authority
- CN
- China
- Prior art keywords
- storage space
- data
- security level
- target data
- flash memory
- 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
- 238000003672 processing method Methods 0.000 title claims abstract description 53
- 238000000034 method Methods 0.000 claims abstract description 31
- 238000004891 communication Methods 0.000 claims description 44
- 238000012545 processing Methods 0.000 claims description 25
- 230000004044 response Effects 0.000 claims description 9
- 238000004590 computer program Methods 0.000 claims description 8
- 230000006870 function Effects 0.000 description 12
- 238000005516 engineering process Methods 0.000 description 10
- 230000008569 process Effects 0.000 description 10
- 238000012795 verification Methods 0.000 description 8
- 238000010586 diagram Methods 0.000 description 7
- 238000011084 recovery Methods 0.000 description 6
- 101150055921 CPR5 gene Proteins 0.000 description 4
- 230000009286 beneficial effect Effects 0.000 description 4
- 230000008878 coupling Effects 0.000 description 3
- 238000010168 coupling process Methods 0.000 description 3
- 238000005859 coupling reaction Methods 0.000 description 3
- 238000013500 data storage Methods 0.000 description 3
- 238000007726 management method Methods 0.000 description 3
- 101100061275 Caenorhabditis elegans cpr-4 gene Proteins 0.000 description 2
- 101100061278 Caenorhabditis elegans cpr-6 gene Proteins 0.000 description 2
- 238000004458 analytical method Methods 0.000 description 2
- 238000013461 design Methods 0.000 description 2
- 230000003993 interaction Effects 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 101100061277 Caenorhabditis elegans cpr-5 gene Proteins 0.000 description 1
- 238000012937 correction Methods 0.000 description 1
- 239000000835 fiber Substances 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
- 230000008439 repair process Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 230000035939 shock Effects 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
Images
Classifications
-
- 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/062—Securing storage systems
- G06F3/0622—Securing storage systems in relation to access
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
-
- 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
-
- 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/0629—Configuration or reconfiguration of storage systems
- G06F3/0631—Configuration or reconfiguration of storage systems by allocating resources to storage systems
-
- 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/0629—Configuration or reconfiguration of storage systems
- G06F3/0632—Configuration or reconfiguration of storage systems by initialisation or re-initialisation of storage systems
-
- 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/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0638—Organizing or formatting or addressing of data
- G06F3/0644—Management of space entities, e.g. partitions, extents, pools
-
- 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]
-
- 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/0683—Plurality of storage devices
- G06F3/0688—Non-volatile semiconductor memory arrays
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)
- Techniques For Improving Reliability Of Storages (AREA)
- Memory System (AREA)
Abstract
本申请实施例提供一种数据处理方法及装置,涉及存储技术领域,有效提高了存储空间的利用率。该方法应用于第一物理存储空间存储第一安全级别的数据块和第二安全级别的数据块,第二物理存储空间存储第二安全级别的数据块的闪存设备,第一安全级别的数据块中每个条带集合由m个相邻的条带组成,且包括一个校验数据组,第二安全级别的数据块仅用于存储用户数据。该方法包括:接收用于请求写入目标数据的写数据请求,并获取目标数据的安全级别;若目标数据的安全级别为第一安全级别,将目标数据写入第一物理存储空间;若目标数据的安全级别为第二安全级别,将目标数据写入第二物理存储空间,或将目标数据写入第二物理存储空间和第一物理存储空间。
Description
技术领域
本申请实施例涉及存储技术领域,尤其涉及一种数据处理方法及装置。
背景技术
独立NAND冗余阵列(Redundant Array of Independent NAND,RAIN)是将闪存设备内部的一个独立编程单位,如独立可编程闪存芯片Die或Plane(一个Die可以包括至少一个Plane),类比作一个独立的物理磁盘,并将多个独立可编程闪存芯片组合为一个阵列的技术。在上述阵列中,数据的存放是分条带(Strip)存放的,这样,可以将数据并行写入到多个独立可编程闪存芯片中,大大提升用户数据的写入速度,并且可以提供存储的冗余性,以提高数据的可靠性。
目前,每个条带均包括一个校验数据组,校验数据组包括至少一个校验数据,不同条带的校验数据组位于不同的独立可编程闪存芯片。也就是说,对于每个条带而言,需要至少一个独立可编程闪存芯片存储该条带中的校验数据。但是,对于体积较小的设备而言,这种存储方式导致存储空间的开销较大,存储空间的有效利用率较低。
发明内容
本申请实施例提供一种数据处理方法及装置,能够提高闪存设备存储空间的利用率。
为达到上述目的,本申请实施例采用如下技术方案:
第一方面,提供一种数据处理方法,该数据处理方法应用于非易失性存储介质(Non Volatile Memory)包括x(x为大于或等于1的整数)个独立可编程闪存芯片的闪存设备,该闪存设备的第一物理存储空间用于存储第一安全级别的数据块和第二安全级别的数据块,第二物理存储空间用于存储第二安全级别的数据块。这里,第一安全级别的数据块是由x个独立可编程闪存芯片采用预设可定制独立计算机闪存设备部分冗余阵列(Customizable Partial RAIN,CPR)形式和预设CPR级别的方式组成的,第一安全级别的数据块包括至少一个条带集合,条带集合由m(m为大于或等于2的整数)个相邻的条带组成,且包括一个校验数据组,不同的条带集合的校验数据组位于不同的独立可编程闪存芯片,预设CPR形式用于指示m个相邻的条带包括一个校验数据组。第二安全级别的数据块仅用于存储用户数据。第一安全级别高于第二安全级别。具体的,该数据处理方法包括:闪存设备接收用于请求写入目标数据的写数据请求,并根据该写数据请求,获取目标数据的安全级别,这样,若目标数据的安全级别为第一安全级别,则该闪存设备将目标数据写入上述第一物理存储空间;若目标数据的安全级别为第二安全级别,则该闪存设备将目标数据写入上述第二物理存储空间,或者,将目标数据写入第二物理存储空间和第一物理存储空间。
由于第一安全级别的数据块中每个条带集合由m个相邻的条带组成,且每个条带集合包括一个校验数据组,即m个相邻的条带中的用户数据共享一个校验数据组,相比于现有技术中每个条带均包括至少一个校验数据而言,有效的减少了校验数据占用的存储空间,提高了存储空间的利用率。第二安全级别的数据块仅用于存储用户数据,即第二安全级别的数据块不包括校验数据,相比于现有技术,也在一定程度上提高了存储空间的利用率。
此外,第一安全级别高于第二安全级别,且第一安全级别的数据块中每个条带集合均包括一个校验数据组,该校验数据组的存在有效的保证了数据的可靠性。这样,本申请中的闪存设备根据目标数据的安全级别,为该目标数据动态分配存储空间,既可以保证目标数据的可靠性,又能有效提高存储空间的利用率。
可选的,在本申请的一种可能的实现方式中,闪存设备接收到的写数据请求包括用于指示目标数据的安全级别的第一标识。
本申请采用不同取值的第一标识具体指示目标数据的安全级别。
可选的,在本申请的另一种可能的实现方式中,若上述第一标识的取值为第一预设值,则该第一标识具体用于指示目标数据的安全级别为第一安全级别。相应的,上述“若目标数据的安全级别为第一安全级别,则闪存设备将目标数据写入第一物理存储空间”的方法为:闪存设备将目标数据写入第一物理存储空间中已分配、且剩余存储空间大于存储目标数据所需存储空间的大小的第一安全级别的数据块;或者,闪存设备将目标数据写入第一物理存储空间中新分配的第一安全级别的数据块;或者,闪存设备将目标数据写入第一物理存储空间中已分配、且剩余存储空间小于存储目标数据所需存储空间的大小的第一安全级别的数据块,以及第一物理存储空间中新分配的第一安全级别的数据块。
从上面描述可知,第一物理存储空间既可以存储第一安全级别的数据块,又可以存储第二安全级别的数据块,而第二物理存储空间仅用于存储第二安全级别的数据块,因此,在目标数据的安全级别为第一安全级别的情况下,闪存设备将目标数据写入第一物理存储空间的第一安全级别的数据块中。在实际使用中,闪存设备根据存储空间的实际使用情况将目标数据写入第一安全级别的数据块中。
可选的,在本申请的另一种可能的实现方式中,若上述第一标识的取值为第二预设值,则该第一标识具体用于指示目标数据的安全级别为第二安全级别。相应的,上述“若目标数据的安全级别为第二安全级别,则闪存设备将目标数据写入第二物理存储空间,或者,将目标数据写入第二物理存储空间和第一物理存储空间”的方法为:闪存设备确定第二物理存储空间的剩余存储空间的大小;若第二物理存储空间的剩余存储空间的大小大于存储目标数据所需存储空间的大小,则该闪存设备将目标数据写入第二物理存储空间;或者,若第二物理存储空间的剩余存储空间的大小大于零、且小于存储目标数据所需存储空间的大小,则该闪存设备将目标数据写入第二物理存储空间的剩余存储空间和第一物理存储空间的第二安全级别的数据块;或者,若第二物理存储空间的剩余存储空间的大小等于零,则该闪存设备将目标数据写入第一物理存储空间的第二安全级别的数据块。
在目标数据的安全级别为第二安全级别的场景中,闪存设备优先将该目标数据写入第二物理存储空间。在第二物理存储空间的剩余存储空间不足以存储目标数据的情况下,闪存设备将目标数据写入第二物理存储空间的剩余存储空间和第一物理存储空间中。
可选的,在本申请的另一种可能的实现方式中,上述m个相邻的条带属于不同的物理页,避免了不同条带的数据同时损坏的问题,提高了闪存设备恢复正确数据的能力。
可选的,在本申请的另一种可能的实现方式中,闪存设备还接收来自主机的配置命令,该配置命令包括第一物理存储空间的大小、CPR形式和预设CPR级别,这样,闪存设备会响应该配置命令,完成初始化配置。
本申请中的第一物理存储空间是指闪存设备中用于存储第一安全级别的数据块的最大存储空间。在实际应用中,闪存设备存储第一安全级别的数据所需要的存储空间的大小可能小于第一物理存储空间的大小。
第二方面,提供一种数据处理方法,应用于非易失性存储介质包括x(x为大于或等于1的整数)个独立可编程闪存芯片的闪存设备,该闪存设备在接收到包括用于指示目标数据的安全级别的第一标识的写数据请求后,根据第一标识指示的目标数据的安全级别,为目标数据动态分配存储空间,并将目标数据写入分配的存储空间。
可选的,在本申请的一种可能的实现方式中,闪存设备的第一物理存储空间用于存储第一安全级别的数据块,第一安全级别的数据块是由x个独立可编程闪存芯片采用预设可定制独立计算机闪存设备部分冗余阵列CPR形式和预设CPR级别的方式组成的,第一安全级别的数据块包括至少一个条带集合,条带集合由m(m为大于或等于2的整数)个相邻的条带组成,条带集合包括一个校验数据组,不同的条带集合的校验数据组位于不同的独立可编程闪存芯片,预设CPR形式用于指示m个相邻的条带包括一个校验数据组,m为大于或等于2的整数。若第一标识的取值为第一预设值,则该第一标识用于指示目标数据的安全级别为第一安全级别。在第一标识的取值为第一预设值得情况下,上述“根据第一标识指示的目标数据的安全级别,为目标数据动态分配存储空间,并将目标数据写入分配的存储空间”的方法为:闪存设备将目标数据写入第一物理存储空间中已分配、且剩余存储空间大于存储目标数据所需存储空间的大小的第一安全级别的数据块;或者,闪存设备将目标数据写入第一物理存储空间中新分配的第一安全级别的数据块;或者,闪存设备将目标数据写入第一物理存储空间中已分配、且剩余存储空间小于存储目标数据所需存储空间的大小的第一安全级别的数据块,以及第一物理存储空间中新分配的第一安全级别的数据块。
在目标数据的安全级别为第一安全级别的情况下,闪存设备将目标数据写入第一安全级别的数据块中。由于第一安全级别的数据块中每个条带集合由m个相邻的条带组成,且每个条带集合包括一个校验数据组,即m个相邻的条带中的用户数据共享一个校验数据组,相比于现有技术中每个条带均包括至少一个校验数据而言,有效的减少了校验数据占用的存储空间,提高了存储空间的利用率。
此外,第一安全级别的数据块中每个条带集合均包括一个校验数据组,该校验数据组的存在有效的保证了数据的可靠性。这样,本申请中的闪存设备根据目标数据的安全级别,为该目标数据动态分配存储空间,既可以保证目标数据的可靠性,又能有效提高存储空间的利用率。
可选的,在本申请的另一种可能的实现方式中,闪存设备的第二物理存储空间用于存储第二安全级别的数据块,第二安全级别的数据块仅用于存储用户数据。此外,闪存设备的第一物理存储空间还用于存储第二安全级别的数据块,第二安全级别低于第一安全级别。若第一标识的取值为第二预设值,则该第一标识用于指示目标数据的安全级别为第二安全级别。在第一标识的取值为第二预设值的情况下,上述“根据第一标识指示的目标数据的安全级别,为目标数据动态分配存储空间,并将目标数据写入分配的存储空间”的方法为:闪存设备确定第二物理存储空间的剩余存储空间的大小;若第二物理存储空间的剩余存储空间的大小大于存储目标数据所需存储空间的大小,该闪存设备将目标数据写入第二物理存储空间;或者,若第二物理存储空间的剩余存储空间的大小大于零、且小于存储目标数据所需存储空间的大小,该闪存设备将目标数据写入第二物理存储空间的剩余存储空间和第一物理存储空间的第二安全级别的数据块;或者,若第二物理存储空间的剩余存储空间的大小等于零,该闪存设备将目标数据写入第一物理存储空间的第二安全级别的数据块。
第二安全级别的数据块仅用于存储用户数据,即第二安全级别的数据块不包括校验数据,相比于现有技术,在一定程度上提高了存储空间的利用率。
第三方面,提供一种数据处理方法,应用于包括闪存设备的终端,该闪存设备包括x(x为大于或等于1的整数)个独立可编程闪存芯片。具体的,终端的处理器向闪存设备发送包括第一标识的写数据请求,该写数据请求用于请求写入目标数据,第一标识用于指示目标数据的安全级别;在接收到写数据请求后,闪存设备根据第一标识指示的目标数据的安全级别,为目标数据动态分配存储空间,并将目标数据写入分配的存储空间。
可选的,在本申请的一种可能的实现方式中,闪存设备的第一物理存储空间用于存储第一安全级别的数据块,第一安全级别的数据块是由x个独立可编程闪存芯片采用预设可定制独立计算机闪存设备部分冗余阵列CPR形式和预设CPR级别的方式组成的,第一安全级别的数据块包括至少一个条带集合,条带集合由m(m为大于或等于2的整数)个相邻的条带组成,条带集合包括一个校验数据组,不同的条带集合的校验数据组位于不同的独立可编程闪存芯片,预设CPR形式用于指示m个相邻的条带包括一个校验数据组,m为大于或等于2的整数。若第一标识的取值为第一预设值,则该第一标识用于指示目标数据的安全级别为第一安全级别。在第一标识的取值为第一预设值得情况下,上述“闪存设备根据第一标识指示的目标数据的安全级别,为目标数据动态分配存储空间,并将目标数据写入分配的存储空间”的方法为:闪存设备将目标数据写入第一物理存储空间中已分配、且剩余存储空间大于存储目标数据所需存储空间的大小的第一安全级别的数据块;或者,闪存设备将目标数据写入第一物理存储空间中新分配的第一安全级别的数据块;或者,闪存设备将目标数据写入第一物理存储空间中已分配、且剩余存储空间小于存储目标数据所需存储空间的大小的第一安全级别的数据块,以及第一物理存储空间中新分配的第一安全级别的数据块。
在目标数据的安全级别为第一安全级别的情况下,闪存设备将目标数据写入第一安全级别的数据块中。由于第一安全级别的数据块中每个条带集合由m个相邻的条带组成,且每个条带集合包括一个校验数据组,即m个相邻的条带中的用户数据共享一个校验数据组,相比于现有技术中每个条带均包括至少一个校验数据而言,有效的减少了校验数据占用的存储空间,提高了存储空间的利用率。
此外,第一安全级别的数据块中每个条带集合均包括一个校验数据组,该校验数据组的存在有效的保证了数据的可靠性。这样,本申请中的闪存设备根据目标数据的安全级别,为该目标数据动态分配存储空间,既可以保证目标数据的可靠性,又能有效提高存储空间的利用率。
可选的,在本申请的另一种可能的实现方式中,闪存设备的第二物理存储空间用于存储第二安全级别的数据块,第二安全级别的数据块仅用于存储用户数据。此外,闪存设备的第一物理存储空间还用于存储第二安全级别的数据块,第二安全级别低于第一安全级别。若第一标识的取值为第二预设值,则该第一标识用于指示目标数据的安全级别为第二安全级别。在第一标识的取值为第二预设值的情况下,上述“闪存设备根据第一标识指示的目标数据的安全级别,为目标数据动态分配存储空间,并将目标数据写入分配的存储空间”的方法为:闪存设备确定第二物理存储空间的剩余存储空间的大小;若第二物理存储空间的剩余存储空间的大小大于存储目标数据所需存储空间的大小,该闪存设备将目标数据写入第二物理存储空间;或者,若第二物理存储空间的剩余存储空间的大小大于零、且小于存储目标数据所需存储空间的大小,该闪存设备将目标数据写入第二物理存储空间的剩余存储空间和第一物理存储空间的第二安全级别的数据块;或者,若第二物理存储空间的剩余存储空间的大小等于零,该闪存设备将目标数据写入第一物理存储空间的第二安全级别的数据块。
第二安全级别的数据块仅用于存储用户数据,即第二安全级别的数据块不包括校验数据,相比于现有技术,在一定程度上提高了存储空间的利用率。
可选的,在本申请的另一种可能的实现方式中,处理器还可以向闪存设备发送配置命令,该配置命令包括第一物理存储空间的大小、CPR形式和预设CPR级别的方式;相应的,闪存设备在接收到配置命令后,根据该配置命令,完成第一物理存储空间的初始化配置。
可选的,在本申请的另一种可能的实现方式中,处理器还可以为终端的至少一个应用程序中的每个应用程序动态分配第一物理存储空间的可用存储空间。这样,每个应用程序均能占用一定大小的第一物理存储空间,有效的均衡了各应用程序对存储资源的利用。
第四方面,提供一种闪存设备,该闪存设备包括存储模块、通信模块和处理模块。具体的,上述存储模块包括x个独立可编程闪存芯片,存储模块中的第一物理存储空间用于存储第一安全级别的数据块和第二安全级别的数据块,第一安全级别的数据块是由x个独立可编程闪存芯片采用预设可定制独立计算机闪存设备部分冗余阵列CPR形式和预设CPR级别的方式组成的,第一安全级别的数据块包括至少一个条带集合,条带集合由m个相邻的条带组成,条带集合包括一个校验数据组,不同的条带集合的校验数据组位于不同的独立可编程闪存芯片,预设CPR形式用于指示m个相邻的条带包括一个校验数据组,第二安全级别的数据块仅用于存储用户数据,存储模块中的第二物理存储空间用于存储第二安全级别的数据块,第一安全级别高于第二安全级别,x为大于或等于1的整数,m为大于或等于2的整数。上述通信模块,用于接收写数据请求,写数据请求用于请求写入目标数据。上述处理模块,用于根据上述通信模块接收到的写数据请求,获取目标数据的安全级别,以及用于若目标数据的安全级别为第一安全级别,将目标数据写入上述存储模块的第一物理存储空间,以及用于若目标数据的安全级别为第二安全级别,将目标数据写入上述存储模块的第二物理存储空间,或者,将目标数据写入上述存储模块的第二物理存储空间和第一物理存储空间。
可选的,在本申请的一种可能的实现方式中,上述写数据请求包括用于指示目标数据的安全级别的第一标识。
可选的,在本申请的另一种可能的实现方式中,若第一标识的取值为第一预设值,第一标识具体用于指示目标数据的安全级别为第一安全级别。若目标数据的安全级别为第一安全级别,上述处理模块具体用于:将目标数据写入第一物理存储空间中已分配、且剩余存储空间大于存储目标数据所需存储空间的大小的第一安全级别的数据块;或者,将目标数据写入第一物理存储空间中新分配的第一安全级别的数据块;或者,将目标数据写入第一物理存储空间中已分配、且剩余存储空间小于存储目标数据所需存储空间的大小的第一安全级别的数据块,以及第一物理存储空间中新分配的第一安全级别的数据块。
可选的,在本申请的另一种可能的实现方式中,若第一标识的取值为第二预设值,第一标识具体用于指示目标数据的安全级别为第二安全级别。若目标数据的安全级别为第二安全级别,上述处理模块具体用于:确定第二物理存储空间的剩余存储空间的大小;若第二物理存储空间的剩余存储空间的大小大于存储目标数据所需存储空间的大小,将目标数据写入第二物理存储空间;或者,若第二物理存储空间的剩余存储空间的大小大于零、且小于存储目标数据所需存储空间的大小,将目标数据写入第二物理存储空间的剩余存储空间和第一物理存储空间的第二安全级别的数据块;或者,若第二物理存储空间的剩余存储空间的大小等于零,将目标数据写入第一物理存储空间的第二安全级别的数据块。
可选的,在本申请的另一种可能的实现方式中,上述m个相邻的条带属于不同的物理页。
可选的,在本申请的另一种可能的实现方式中,上述通信模块,还用于接收来自主机的配置命令,该配置命令包括第一物理存储空间的大小、CPR形式和预设CPR级别。上述处理模块,还用于响应于上述通信模块接收到的配置命令,完成初始化配置。
第五方面,提供一种闪存设备,该闪存设备包括存储模块、通信模块和处理模块。具体的,上述存储模块包括x个独立可编程闪存芯片,x为大于或等于1的整数。上述通信模块,用于接收包括第一标识的写数据请求,该写数据请求用于请求写入目标数据,第一标识用于指示目标数据的安全级别。上述处理模块,用于根据上述通信模块接收到的写数据请求中的第一标识指示的目标数据的安全级别,为目标数据动态分配存储空间,并将目标数据写入分配的存储空间。
可选的,在本申请的一种可能的实现方式中,上述存储模块的第一物理存储空间用于存储第一安全级别的数据块,第一安全级别的数据块是由x个独立可编程闪存芯片采用预设CPR形式和预设CPR级别的方式组成的,第一安全级别的数据块包括至少一个条带集合,条带集合由m个相邻的条带组成,条带集合包括一个校验数据组,不同的条带集合的校验数据组位于不同的独立可编程闪存芯片,预设CPR形式用于指示m个相邻的条带包括一个校验数据组,m为大于或等于2的整数。若第一标识的取值为第一预设值,第一标识用于指示目标数据的安全级别为第一安全级别。在第一标识的取值为第一预设值的情况下,上述处理模块具体用于:将目标数据写入第一物理存储空间中已分配、且剩余存储空间大于存储目标数据所需存储空间的大小的第一安全级别的数据块;或者,将目标数据写入第一物理存储空间中新分配的第一安全级别的数据块;或者,将目标数据写入第一物理存储空间中已分配、且剩余存储空间小于存储目标数据所需存储空间的大小的第一安全级别的数据块,以及第一物理存储空间中新分配的第一安全级别的数据块。
可选的,在本申请的另一种可能的实现方式中,闪存设备的第二物理存储空间用于存储第二安全级别的数据块,第二安全级别的数据块仅用于存储用户数据,第一物理存储空间还用于存储第二安全级别的数据块,第二安全级别低于第一安全级别。若第一标识的取值为第二预设值,第一标识用于指示目标数据的安全级别为第二安全级别。在第一标识的取值为第二预设值的情况下,上述处理模块具体用于:确定第二物理存储空间的剩余存储空间的大小;若第二物理存储空间的剩余存储空间的大小大于存储目标数据所需存储空间的大小,将目标数据写入第二物理存储空间;或者,若第二物理存储空间的剩余存储空间的大小大于零、且小于存储目标数据所需存储空间的大小,将目标数据写入第二物理存储空间的剩余存储空间和第一物理存储空间的第二安全级别的数据块;或者,若第二物理存储空间的剩余存储空间的大小等于零,将目标数据写入第一物理存储空间的第二安全级别的数据块。
第六方面,提供一种闪存设备,该闪存设备包括:一个或多个处理器、非易失性存储介质和通信接口。所述非易失性存储介质、所述通信接口与所述一个或多个处理器连接;所述闪存设备通过所述通信接口与其他设备通信,所述非易失性存储介质用于存储计算机程序代码,所述计算机程序代码包括指令,当所述一个或多个处理器执行所述指令时,所述闪存设备执行如上述第一方面、第二方面及其各种可能的实现方式所述的数据处理方法。
第七方面,还提供一种计算机可读存储介质,该计算机可读存储介质中存储有指令;当其在上述第四方面或上述第五方面所述的闪存设备上运行时,使得该闪存设备执行如上述第一方面、第二方面及其各种可能的实现方式所述的数据处理方法。
第八方面,还提供一种包含指令的计算机程序产品,当其在上述第四方面或上述第五方面所述的闪存设备上运行时,使得该闪存设备执行如上述第一方面、第二方面及其各种可能的实现方式所述的数据处理方法。
在本申请中,上述闪存设备的名字对设备或功能模块本身不构成限定,在实际实现中,这些设备或功能模块可以以其他名称出现。只要各个设备或功能模块的功能和本申请类似,属于本申请权利要求及其等同技术的范围之内。
本申请中第四方面、第五方面、第六方面、第七方面、第八方面及其各种实现方式的具体描述,可以参考第一方面、第二方面及其各种实现方式中的详细描述;并且,第四方面、第五方面、第六方面、第七方面、第八方面及其各种实现方式的有益效果,可以参考第一方面、第二方面及其各种实现方式中的有益效果分析,此处不再赘述。
第九方面,提供一种终端,该终端包括处理器,以及如上述第四方面、第五方面及其各种可能的实现方式所述的闪存设备。该处理器,用于向闪存设备发送包括第一标识的写数据请求,以便于闪存设备根据第一标识指示的目标数据的安全级别,为目标数据动态分配存储空间,这里,写数据请求用于请求写入目标数据。
可选的,在本申请的一种可能的实现方式中,上述处理器,还用于向闪存设备发送配置命令,以便于闪存设备根据该配置命令,完成闪存设备中第一物理存储空间的初始化配置,配置命令包括所述第一物理存储空间的大小、预设CPR形式和预设CPR级别的方式。
可选的,在本申请的另一种可能的实现方式中,上述处理器,还用于为终端的至少一个应用程序中的每个应用程序动态分配第一物理存储空间的可用存储空间。
第十方面,还提供一种计算机可读存储介质,该计算机可读存储介质中存储有指令;当其在上述九方面所述的终端上运行时,使得该终端执行如上述第三方面及其各种可能的实现方式所述的数据处理方法。
第十一方面,还提供一种包含指令的计算机程序产品,当其在上述九方面所述的终端上运行时,使得该终端执行如上述第三方面及其各种可能的实现方式所述的数据处理方法。
在本申请中,上述终端的名字对设备或功能模块本身不构成限定,在实际实现中,这些设备或功能模块可以以其他名称出现。只要各个设备或功能模块的功能和本申请类似,属于本申请权利要求及其等同技术的范围之内。
本申请中第九方面、第十方面、十一方面及其各种实现方式的具体描述,可以参考第三方面及其各种实现方式中的详细描述;并且,第九方面、第十方面、十一方面及其各种实现方式的有益效果,可以参考第三方面及其各种实现方式中的有益效果分析,此处不再赘述。
附图说明
图1为本申请实施例中不同级别RAID的数据结构示意图;
图2为本申请实施例中闪存设备的硬件结构示意图;
图3为本申请实施例中非易失性存储介质的结构示意图;
图4为本申请实施例中通信系统的结构示意图;
图5为本申请实施例中数据处理方法的流程示意图一;
图6为本申请实施例中数据处理方法的流程示意图二;
图7为本申请实施例中数据处理方法的流程示意图三;
图8为本申请实施例中闪存设备的结构示意图。
具体实施方式
本申请的说明书和权利要求书及上述附图中的术语“第一”、“第二”和“第三”等是用于区别不同对象,而不是用于限定特定顺序。
在本申请实施例中,“示例性的”或者“例如”等词用于表示作例子、例证或说明。本申请实施例中被描述为“示例性的”或者“例如”的任何实施例或设计方案不应被解释为比其它实施例或设计方案更优选或更具优势。确切而言,使用“示例性的”或者“例如”等词旨在以具体方式呈现相关概念。
闪存(NAND Flash)是目前最为广泛使用的存储介质之一,它在众多领域都有着传统介质无法比拟的特点。例如:数据存储速度高、噪声小、节能、抗震、体积小等。
为了提高数据的可靠性,提出了独立磁盘冗余阵列(Redundant Array ofIndependent disks,RAID)技术。
RAID是一种把多个独立的物理磁盘(disk)组合起来形成的一个磁盘阵列,可以向用户主机提供比单个磁盘更高的存储性能,并可提供数据备份功能。多个独立的物理磁盘的组合方式可以采用RAID级别标识。
RAID技术经过不断的发展,现在已经拥有了从RAID 0到RAID 5的6种标准级别的RAID级别。另外,还有RAID 6、RAID 7、RAID 10(RAID 1与RAID 0的组合)、RAID 01(RAID 0与RAID 1的组合)等RAID级别。不同RAID级别代表着不同的存储性能、数据安全性和存储成本。
RAID 0即数据分条带技术,只需要2块以上的物理磁盘即可,成本低,可以提高整个磁盘的性能和吞吐量。RAID 0没有提供冗余或错误修复能力。
RAID 1是一种镜像磁盘阵列,其原理是将一块物理磁盘的数据以相同的位置指向另一物理磁盘的位置,能够把用户写入物理磁盘的数据百分之百地自动复制到另外一个物理磁盘上,以在成对的物理磁盘上产生互为备份的数据,当原始磁盘繁忙时,可直接从镜像磁盘中读取数据,当原始磁盘失效时,也可以自动切换到镜像磁盘上读写,而不需要重组失效的数据。不会造成业务中断,提供了数据安全保障,最大限度地保证了数据的可用性和可修复性。
示例性的,以4块物理磁盘(磁盘1、磁盘2、磁盘3、磁盘4)组成RAID 1的阵列为例,图1中的(A)示出了该阵列中数据的分布。其中,在图1中的(A)中,d0、d1、d2、d3、d4、d5分别表示用户数据,d0′为d0的备份数据,d1′为d1的备份数据,d2′为d2的备份数据,d3′为d3的备份数据,d4′为d4的备份数据,d5′为d5的备份数据。
RAID 4为带奇偶校验码的独立磁盘结构,具备一块独立的校验盘,该校验盘仅用于存储校验数据,而无法存储用户数据。在不同物理磁盘的同级用户数据通过异或(XOR)进行校验,校验得到的校验数据存储于校验盘。当某一物理磁盘发生故障,能够根据其他磁盘的数据完成数据恢复,提供了数据安全保障。
示例性的,以3块物理磁盘(磁盘1、磁盘2、磁盘3)组成的RAID 4的阵列为例,图1中的(B)示出了该阵列中数据的分布。在图1中的(B)中,磁盘3为校验盘,d0、d1、d2、d3、d4、d5分别表示用户数据,P1为d0和d1的校验数据,P2为d2和d3的校验数据,P3为d4和d5的校验数据。
RAID 5为分布式奇偶校验的独立磁盘结构。与RAID 4不同,RAID 5中的校验数据存储于不同的物理磁盘。当某一物理磁盘发生故障,RAID 5能够根据其他磁盘的数据完成数据恢复。
示例性的,以3块物理磁盘(磁盘1、磁盘2、磁盘3)组成的RAID 5的阵列为例,图1中的(C)示出了该阵列中数据的分布。在图1中的(C)中,d0、d1、d2、d3、d4、d5分别表示用户数据,P1为d0和d1的校验数据,P2为d2和d3的校验数据,P3为d4和d5的校验数据。
RAID 6为带有两种分布存储的奇偶校验码的独立磁盘结构,是在RAID 5的基础上,额外增加了一个校验位(Q)。RAID 6能够从磁盘阵列中的任意两个并发的磁盘故障中完成数据恢复。
示例性的,以4块物理磁盘(磁盘1、磁盘2、磁盘3、磁盘4)组成的RAID 6的阵列为例,图1中的(D)示出了该阵列中数据的分布。在图1中的(D)中,d0、d1、d2、d3、d4、d5分别表示用户数据,P1和Q1均为d0和d1的校验数据,P2和Q2均为d2和d3的校验数据,P3和Q3均为d4和d5的校验数据。
需要说明的是,尽管图1中的(A)和(D)示出了四个磁盘,图1中的(B)和(C)示出了三个磁盘,在其他的实施方式中,根据RAID的版本不同,还可以包括更多或者更少的磁盘。
操作系统可以把磁盘阵列视为单一的逻辑存储单元或磁盘。通过将磁盘阵列划分为多个条带(Strip),可以将数据分布到多个磁盘,从而实现低延迟、高带宽,并且其中的部分磁盘毁坏后可以在一定程度上恢复数据。
上述图1中的(A)、图1中的(B)、图1中的(C)以及图1中的(D)各自包括有条带0、条带1和条带2,每个条带均包括至少一个校验数据。
在实际应用中,在不同RAID中,条带的数量不限定。
结合上述描述可知,RAID技术需要多个物理磁盘的组合。对于体积较小的设备,如智能手机、平板电脑、上网本等,RAID技术无法充分发挥作用。
对此,后续又出现了独立NAND冗余阵列(Redundant Array of IndependentNAND,RAIN)技术。
RAIN技术是将闪存设备内部的一个独立编程单位,如独立可编程闪存芯片Die或Plane(一个Die可以包括至少一个Plane),类比作一个独立的物理磁盘,并将多个独立可编程闪存芯片组合为一个阵列的类RAID技术。常见的RAIN技术有类RAID4、类RAID 5等。
与上述图1中的(B)类似,类RAID 4中,有一个独立可编程闪存芯片专门用于存放校验数据。与上述图1中的(C)类似,类RAID 5中的校验数据存储于不同的独立可编程闪存芯片。
一般的,若上述独立可编程闪存芯片为Die,限于体积等因素,移动设备往往包括较少数量的Die,典型的,移动设备包括4个或8个Die。对于每个条带而言,需要至少一个Die用于存放校验数据,对存储空间的开销过大,降低存储空间的有效利用率。
除此之外,现有技术中,闪存设备中的某一存储空间可以被配置为单阶存储单元(Single-Level Cell,SLC),由于SLC的可擦写次数较多、可靠性和读写性能较高,因此,当某些数据需要较高的性能或可靠性时,可将该数据写到被配置为SLC的存储空间。但是,SLC的空间耗费较大。
综上所述,对于体积较小的设备而言,现有技术中不具备既能减小空间开销,又能提高数据可靠性的方法。
对此,本申请提供一种数据处理方法,该数据处理方法应用于由x(x为大于或等于1的整数)个独立可编程闪存芯片组成的闪存设备,闪存设备的第一物理存储空间用于存储第一安全级别的数据块和第二安全级别的数据块,该第一安全级别的数据块由x个独立可编程闪存芯片采用预设CPR形式和预设CPR级别的方式组成,第一安全级别的数据块包括至少一个条带集合,条带集合由m(m为大于或等于2的整数)个相邻的条带组成,条带集合包括一个校验数据组,不同的条带集合的校验数据组位于不同的独立可编程闪存芯片,该第二安全级别的数据块仅用于存储用户数据,闪存设备的第二物理存储空间用于存储第二安全级别的数据块,第一安全级别高于第二安全级别。
具体的,闪存设备在接收到用于请求写入目标数据、包括用于指示目标数据的安全级别的写数据请求后,根据该第一标识指示的目标数据的安全级别,为目标数据动态分配存储空间,并将目标数据写入分配的存储空间。由于第一安全级别的数据块中每个条带集合由m个相邻的条带组成,且每个条带集合包括一个校验数据组,即m个相邻的条带中的用户数据共享一个校验数据组,相比于现有技术中每个条带均包括至少一个校验数据而言,有效的减少了校验数据占用的存储空间,提高了存储空间的利用率。第二安全级别的数据块仅用于存储用户数据,即第二安全级别的数据块不包括校验数据,相比于现有技术,也在一定程度上提高了存储空间的利用率。
此外,第一安全级别高于第二安全级别,且第一安全级别的数据块中每个条带集合均包括一个校验数据组,该校验数据组的存在有效的保证了数据的可靠性。这样,本申请中的闪存设备根据目标数据的安全级别,为该目标数据动态分配存储空间,既可以保证目标数据的可靠性,又能有效提高存储空间的利用率。
上述组成闪存设备的独立可编程闪存芯片可以为Die,也可以为Plane,本申请实施例对此不作具体限定。
图2示出了本申请实施例中闪存设备的硬件结构。如图2所示,本申请实施例中闪存设备包括处理器20、非易失性存储介质(Non Volatile Memory)21、前端通信接口22、后端通信接口23、非易失性存储介质控制器24、系统总线25以及内存26。处理器20、非易失性存储介质21、前端通信接口22、后端通信接口23、非易失性存储介质控制器24以及内存26通过系统总线25连接。
处理器20是闪存设备的控制中心,利用各种接口和线路连接闪存设备的各个部分。处理器20可以是中央处理器(Central Processing Unit,CPU),也可以是被配置成实施本申请实施例的一个或多个集成电路。示例性的,处理器20包括至少一个CPU,每一个CPU可以是一个单核处理器(Single-core processor),也可以是一个多核处理器(Multi-coreprocessor)。
非易失性存储介质21包括x(x为大于或等于1的整数)个独立可编程闪存芯片210。x个独立可编程闪存芯片210的存储空间包括第一物理存储空间和第二物理存储空间。其中,第一物理存储空间为闪存设备初始化配置的用于存储第一安全级别的数据的最大存储空间。在该第一物理存储空间中,闪存设备可存储第一安全级别的数据块和第二安全级别的数据块。第二物理存储空间用于存储第二安全级别的数据块,第一安全级别高于第二安全级别。
第一物理存储空间用于存储第一安全级别的数据块和第二安全级别的数据块,第二物理存储空间用于存储第二安全级别的数据块,第一安全级别高于第二安全级别。
第一安全级别的数据块由x个独立可编程闪存芯片采用预设CPR形式和预设CPR级别的方式组成。第一安全级别的数据块包括至少一个条带集合,每个条带集合均由m(m为大于或等于2的整数)个相邻的条带组成,每个条带集合包括一个校验数据组,不同的条带集合的校验数据组位于不同的独立可编程闪存芯片。校验数据组中的校验数据用于错误数据的恢复。本申请实施例中的预设CPR级别与上述RAID级别类似,预设CPR级别可以为CPR 4、CPR 5或CPR 6。在预设CPR级别为CPR 6的情况下,校验数据组包括两个校验数据。在预设CPR级别为CPR 4或CPR 5的情况下,校验数据组包括一个校验数据。预设CPR形式用于指示m个相邻的条带包括一个校验数据组。
第一安全级别的数据块中每个条带集合包括一个校验数据组,即m个相邻的条带中的用户数据共享一个校验数据组,相比于现有技术中每个条带均包括至少一个校验数据而言,有效的减少了校验数据占用的存储空间,提高了存储空间的利用率。
可选的,上述m个相邻的条带属于不同的物理页,避免了不同条带的用户数据同时损坏的问题,提高了闪存设备恢复正确数据的能力。
第二安全级别的数据块不包括校验数据组,仅用于存储用户数据。相比于现有技术中每个条带均包括至少一个校验数据而言,有效的提高了存储空间的利用率。
第一物理存储空间的大小、预设CPR形式以及预设CPR级别均为闪存设备根据主机发送的配置信息进行配置的。在实际应用中,闪存设备根据需求在第一物理存储空间中分配第一安全级别的数据块或第二安全级别的数据块,以存储数据。本申请实施例对第一物理存储空间中第一安全级别的数据块和第二安全级别的数据块的分布不作具体限定。
示例性的,图3是上述非易失性存储介质21的结构示意图。图3中,非易失性存储介质21由4个Die(Die 0、Die 1、Die 2、Die 3)组成,数据块A是由这4个Die采用CPR 8x和CPR5的方式组成的。CPR 8x用于指示两个相邻的条带包括一个校验数据组,也就是说,条带0和条带1包括一个校验数据组,条带2和条带3包括一个校验数据组,以此类推。预设CPR级别为CPR 5,说明校验数据组包括一个校验数据。图3中,d0~d13均表示用户数据,条带0和条带1的校验数据组为P1,条带2和条带3的校验数据组为P2,P1和P2位于不同的Die。
上述图1的(C)表示采用RAID 5级别分布的数据结构,图3表示表示采用CPR5级别分布的数据结构。从图1的(C)和图3可以看出,本申请的闪存设备中校验数据的数量较少,有效的提高存储空间的利用率。
前端通信接口22用于闪存设备与其他设备通信,如用于闪存设备与主机通信。示例性的,前端通信接口22可以为非易失性内存主机控制器接口规范(Non-Volatile Memoryexpress,NVMe),也可以为串行高级技术附件(Serial Advanced Technology Attachment,SATA),还可以为通用闪存存储(Universal Flash Storage,UFS)等,本申请实施例对此不作具体限定。
后端通信接口23用于与非易失性存储介质21通信。
非易失性存储介质控制器24用于控制在非易失性存储介质21中写入数据,该非易失性存储介质控制器24可以是一个独立的、且功能单一的处理器。
系统总线25在图2中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
内存26用于暂时存储处理器20的运算数据,以及与非易失性存储介质21交换的数据。内存26可以为随机存储器(Random Access Memory,RAM),也可以为只读存储器(Read-Only Memory,ROM),还可以为高速缓存(Cache),本申请实施例对此不作具体限定。
需要说明的是,上述闪存设备也可以理解为包括多个存储设备的存储系统。这种情况下,存储系统中的每个存储设备相当于上述独立可编程闪存芯片。
本申请提供的数据处理方法可以适用于包括闪存设备和主机的通信系统。如图4所示,通信系统包括闪存设备40和主机41,闪存设备40与主机41通信。闪存设备40能够响应主机41下发的输入输出(Input/Output,IO)请求,例如:返回读数据请求所请求的待访问数据、写入写数据请求中的待写入数据。图4示出的通信系统包括单一的主机。在实际应用中,该通信系统也可以包括多个主机。
主机41可以是客户端设备,如计算机,也可以是服务器。这里,闪存设备40和主机41可以独立设置,也可以集成于同一设备,本申请对此不作具体限定。
若闪存设备40和主机41集成于同一设备,该设备可以为终端。在这种情况下,闪存设备40可以视为终端内部的非易失性存储器,主机41可以视为终端内部除非易失性存储器以外的其他器件的集合,如处理器。
为了便于理解,本申请主要以闪存设备40和主机41独立设置为例进行说明。
闪存设备40和主机41之间可以采用有线方式连接,也可以采用无线方式连接以形成远程存储的系统。
主机41安装有至少一个应用程序。该至少一个应用程序中的每个应用程序均为主机搭载的系统所兼容的应用程序。在任一应用程序的运行过程中,主机41可以向闪存设备40发送写数据请求,以便于闪存设备40存储该写数据请求所请求的数据;也可以向闪存设备40发送读数据请求,以便于闪存设备40获取待读取数据,并向主机41发送该待读取数据。
具体的,在软件层面,主机41包括应用层411、文件系统层412以及驱动层413。应用层411用于根据实际需求向文件系统层412发送写数据请求/读数据请求,相应的,还会接收文件系统层412发送的写数据响应/读数据响应。文件系统层412具备CPR的注册、配置、限额管理、主要服务提供、异常处理等主要功能。驱动层413负责传递包括第一标识的写数据请求,构造设备特定供应商命令(Device Specific Vendor Command)等。
闪存设备40的结构可以参考上述图2,这里不再进行详细赘述。
以下,结合上述图2示出的闪存设备、图3示出的非易失性存储介质、图4示出的通信系统对本申请提供的数据处理方法进行详细描述。
图5为本申请实施例中数据处理方法的一种流程示意图,该数据处理方法可以应用于图4示出的通信系统中。如图5所示,本申请实施例提供的数据处理方法包括:
S500、主机向闪存设备发送用于请求写入目标数据的写数据请求。
结合上述描述可知,在某一应用程序的运行过程中,若需要在闪存设备中写入目标数据,则该主机会生成用于请求写入目标数据的写数据请求,并向闪存设备发送该写数据请求。
S501、闪存设备接收到写数据请求后,解析写数据请求中的第一标识。
第一标识用于指示目标数据的安全级别。
可选的,若第一标识的取值为第一预设值,则该第一标识具体用于指示目标数据的安全级别为第一安全级别。若第一标识的取值为第二预设值,则该第一标识具体用于指示目标数据的安全级别为第二安全级别,第一安全级别高于第二安全级别。
具体的,闪存设备解析写数据请求中的第一标识,并根据第一标识的取值,存储目标数据。当第一标识的取值为第一预设值时,闪存设备根据第一安全级别将目标数据存储于第一物理存储空间,具体的,闪存设备将目标数据存储于第一物理存储空间的第一安全级别的数据块中。当第一标识的取值为第二预设值时,闪存设备根据第二安全级别将目标数据存储于第二物理存储空间和/或第一物理存储空间,具体的,闪存设备将目标数据存储于第二物理存储空间的第二安全级别的数据块和/或第一物理存储空间的第二安全级别的数据块中。这里,第一物理存储空间、第二物理存储空间、第一安全级别的数据块和第二安全级别的数据块的描述可参考上述描述,此处不再进行详细赘述。
示例性的,若第一标识为Security_flag,第一预设值为1,第二预设值为0。闪存设备解析写数据请求中的Security_flag。当Security_flag的取值为1时,闪存设备确定目标数据的安全级别为第一安全级别,则将目标数据存储于第一安全级别的数据块中。当Security_flag的取值为0时,闪存设备确定目标数据的安全级别为第二级别,则将目标数据存储于第二安全级别的数据块中。
S502、如果第一标识的取值为第一预设值,闪存设备将目标数据写入第一物理存储空间的第一安全级别的数据块中。
若第一标识的取值为第一预设值,则该第一标识具体用于指示目标数据的安全级别为第一安全级别。相应的,闪存设备将目标数据写入第一物理存储空间的第一安全级别的数据块中。
示例性的,第一安全级别的数据块的结构可以参考上述图3中数据块A的结构。
具体的,闪存设备确定第一物理存储空间中是否存在已分配、且剩余存储空间大于零的第一安全级别的数据块(后续将该数据块采用第一数据块表示)。
若第一物理存储空间中存在第一数据块,则闪存设备确定第一数据块的剩余存储空间的大小。若第一数据块的剩余存储空间的大小大于存储目标数据所需存储空间的大小,则闪存设备将目标数据写入该第一数据块,即闪存设备将目标数据写入第一物理存储空间中已分配、且剩余存储空间的大小大于存储目标数据所需存储空间的大小的第一安全级别的数据块。若第一数据块的剩余存储空间的大小小于存储目标数据所需存储空间的大小,则闪存设备将目标数据写入该第一数据块以及第一物理存储空间中新分配的第一安全级别的数据块,即闪存设备将目标数据写入第一物理存储空间中已分配、且剩余存储空间小于存储目标数据所需存储空间的大小的第一安全级别的数据块,以及第一物理存储空间中新分配的第一安全级别的数据块。
若第一物理存储空间中不存在第一数据块,则闪存设备将目标数据写入第一物理存储空间中新分配的第一安全级别的数据块。
可选的,闪存设备在写目标数据之前,还可缓存该目标数据,同时,闪存设备根据预设CPR形式和预设CPR级别生成每个条带集合中的校验数据组,并缓存每个条带集合中的校验数据组。这样,若在将目标数据写入第一安全级别的数据块的过程中某一用户数据发生错误,则该闪存设备可根据已经缓存的校验数据组和条带集合中的其他用户数据,恢复出正确的用户数据,以保证写数据过程的顺利完成。
从上述描述可知,在目标数据的安全级别为第一安全级别的情况下,不论第一物理存储空间是否存在第一数据块,闪存设备均将目标数据写入第一安全级别的数据块中。由于第一安全级别的数据块中m个相邻的条带共享一个校验数据组,因此,在这种情况下,本申请提供的数据处理方法能够有效的保证目标数据的可靠性,还能有效提高存储空间的利用率。
S503、如果第一标识的取值为第二预设值,闪存设备确定第二物理存储空间的剩余存储空间的大小。
第一标识的取值为第二预设值时,该第一标识具体用于指示目标数据的安全级别为第二安全级别。这种情况下,闪存设备需要将目标数据写入第二安全级别的数据块中。第二安全级别的数据块的描述可以参考上述描述,此处不再进行详细赘述。
示例性的,第二安全级别的数据块的结构如上述图3的数据块B的结构。
从上面描述可知,第一物理存储空间和第二物理存储空间均可用于存储第二安全级别的数据块。在目标数据的安全级别为第二安全级别的情况下,闪存设备优先将该目标数据写入第二物理存储空间的第二安全级别的数据块中。因此,如果第一标识的取值为第二预设值,闪存设备先确定第二物理存储空间的剩余存储空间的大小,以便于闪存设备确定写入目标数据的存储空间。
S504、如果第二物理存储空间的剩余存储空间的大小大于零、且小于存储目标数据所需的存储空间,闪存设备将目标数据写入第二物理存储空间的剩余存储空间和第一物理存储空间的第二安全级别的数据块中。
第二物理存储空间仅用于存储第二安全级别的数据块,如果第二物理存储空间的剩余存储空间的大小大于零、且小于存储目标数据所需的存储空间,则说明第二物理存储空间的剩余存储空间不足以存储目标数据。因此,闪存设备还需要将目标数据的部分数据写入第一物理存储空间的第二安全级别的数据块中。
可选的,这里第一物理存储空间的第二安全级别的数据块可以为第一物理存储空间中已分配、且剩余存储空间大于零的第二安全级别的数据块,也可以为第一物理存储空间中新分配的第二安全级别的数据块,还可以为第一物理存储空间中已分配、且剩余存储空间大于零的第二安全级别的数据块,以及第一物理存储空间中新分配的第二安全级别的数据块,本申请实施例对此不作具体限定。
S505、如果第二物理存储空间的剩余存储空间的大小为零,闪存设备将目标数据写入第一物理存储空间的第二安全级别的数据块中。
这里第一物理存储空间的第二安全级别的数据块与上述S504中涉及到的第一物理存储空间的第二安全级别的数据块相同,此处不再进行详细赘述。
特殊的,实际应用中,在目标数据的安全级别为第二安全级别,第二物理存储空间的剩余存储空间的大小小于存储目标数据所需的存储空间的场景中,即在S504和S505所述的场景中,如果第一物理存储空间的剩余存储空间的大小大于当前所有应用程序已注册的可用存储空间的大小总和(应用程序注册的可用存储空间的描述参考后续描述)、第一物理存储空间无可用的第二安全级别的数据块、且存在可用的第一安全级别的数据块,则闪存设备可将目标数据写入第一安全级别的数据块(已分配的第一安全级别的数据块或新分配的第一安全级别的数据块)中。此时,存储有目标数据的条带集合中的校验数据可以为垃圾数据。这样,既能保证目标数据的有效写入,又能保证第一物理存储空间中数据块结构的一致性,简化了闪存设备的处理逻辑。
S506、如果第二物理存储空间的剩余存储空间大于存储目标数据所需的存储空间,闪存设备将目标数据写入第二物理存储空间。
具体的,如果第二物理存储空间的剩余存储空间大于存储目标数据所需的存储空间,则闪存设备直接将目标数据写入第二物理存储空间的第二安全级别的数据块中。
可选的,第二物理存储空间的第二安全级别的数据块可以为第二物理存储空间中已分配、且剩余存储空间大于零的第二安全级别的数据块,也可以为第二物理存储空间中新分配的第二安全级别的数据块,还可以为第二物理存储空间中已分配、且剩余存储空间大于零的第二安全级别的数据块,以及第二物理存储空间中新分配的第二安全级别的数据块,本申请实施例对此不作具体限定。
从S503~S506的描述可知,若目标数据的安全级别为第二安全级别,则闪存设备将该目标数据写入第二安全级别的数据块中。由于第二安全级别的数据块仅用于存储用户数据,未存储校验数据组,数据存储空间的利用率较高。虽然第二安全级别的数据块未存储校验数据组,导致目标数据的可靠性不能得到有效保障,但是,由于第二安全级别低于第一安全级别,因此,在这种情况下,目标数据的可靠性的降低是可以容忍的。
后续,闪存设备将目标数据全部写入后,向主机发送写数据响应,用于通知主机目标数据已经存储。闪存设备在存储目标数据后,存储与该目标数据对应的物理块地址(Physics Block Address,PBA)以及与该目标数据对应的逻辑块地址(Logical BlockAddress,LBA)之间的对应关系,以便于闪存设备在接收到主机发送的读数据请求后,根据该对应关系,确定与该读数据请求中的LBA对应的PBA,进而根据确定出的PBA读取数据。
进一步地,在出厂或者恢复出厂配置的时候,主机和闪存设备均可完成初始化配置。结合图5,如图6所示,在S500之前,本申请实施例提供的数据处理方法还包括:
S600、主机确定第一物理存储空间的大小、CPR形式和预设CPR级别等信息。
S601、主机向闪存设备发送包括上述第一物理存储空间的大小、CPR形式和预设CPR级别的配置命令。
S602、响应于配置命令,闪存设备完成初始化配置。
具体的,响应于配置命令,闪存设备根据第一物理存储空间的大小,预留第一物理存储空间。在后续运行过程中,闪存设备根据需要从第一物理存储空间分配数据块,以存储数据。
可选的,在主机和闪存设备完成初始化配置后,本申请实施例中的主机还可以为至少一个应用程序中的每个应用程序动态预留第一物理存储空间中的可用存储空间,这样,每个应用程序均能占用一定大小的第一物理存储空间,有效的均衡了各应用程序对存储资源的利用。具体的,应用程序在运行过程,运行该应用程序的处理器向主机中的存储空间管理模块发送注册请求,请求分配第一物理存储空间中的可用存储空间。在确定接受该注册请求后,存储空间管理模块为该应用程序预留第一物理存储空间中可用存储空间的大小,并将该可用存储空间的大小向运行该应用程序的处理器发送。
每个应用程序注册的可用存储空间是指该应用程序在闪存设备中存储第一安全级别的数据所占用的最大存储空间。从上面描述可知,第一物理存储空间为闪存设备中用于存储第一安全级别的数据的最大存储空间。实际应用中,每个应用程序注册的可用存储空间的大小均小于第一物理存储空间的大小。
此外,在实际应用中,所有应用程序注册的可用存储空间的大小总和小于或等于第一物理存储空间的大小。
图5示出的数据处理方法是以主机中的某一应用程序在运行过程中,请求写入目标数据为例进行说明的,因此,图5中闪存设备在第一物理存储空间中写入目标数据的过程实质上是指闪存设备基于该应用程序在第一物理存储空间中的可用存储空间的大小,在第一物理存储空间中写入目标数据。
从图5示出的实施例可以看出,响应于写数据请求,闪存设备可以将目标数据写入第一安全级别的数据块或第二安全级别的数据块。相应的,本申请实施例中的闪存设备还可以响应于主机发送的读数据请求,读取目标数据,并采用预设的错误检查和纠正(ErrorCorrecting Code,ECC)算法检测读取到的目标数据是否存在错误数据,这样,当闪存设备确定读取到的目标数据不存在错误数据后,闪存设备向主机发送该目标数据。
具体的,如图7所示,本申请实施例提供的数据处理方法包括:
S700、主机向闪存设备发送包括第一LBA的读数据请求。
S701、响应于读数据请求,闪存设备根据第一LBA,确定与第一LBA对应的第一PBA。
S702、闪存设备根据第一PBA,读取目标数据。
S703、闪存设备根据预设的ECC算法检测读取到的目标数据是否存在错误数据。
S704、若闪存设备读取到的目标数据存在错误数据,则闪存设备执行数据恢复过程。
具体的,若上述第一PBA为某一第一安全级别的数据块的地址,则闪存设备读取所述读取到的目标数据所归属的条带集合中的校验数据组以及该条带集合中的其他用户数据,恢复当前出错的数据。相应的,在闪存设备恢复出当前出错的数据后,该闪存设备向主机发送不存在错误数据的目标数据。
容易理解的是,由于第一安全级别的数据块中每个条带集合均包括一个校验数据组,该校验数据组中的校验数据用于数据恢复,因此,在闪存设备确定读取到的目标数据存在错误数据后,该闪存设备可利用所述读取到的目标数据归属的条带集合中的校验数据组以及其他用户数据,恢复出当前出错的数据。
若上述第一PBA为某一第二安全级别的数据块的地址,则闪存设备确定数据出错或数据丢失,无法恢复。相应的,闪存设备向主机发送用于指示数据错误或数据丢失的消息。
容易理解的是,由于第二安全级别的数据块仅用于存储用户数据,未存储校验数据,因此,在目标数据属于第二安全级别的数据块中的情况下,闪存设备无法恢复数据。
S705、若闪存设备读取到的目标数据不存在错误数据,则闪存设备向主机发送读取到的目标数据。
此外,本申请实施例提供的数据处理方法还可应用于终端,这样,终端内部的器件进行交互,实现目标数据的写入或读取。在这种场景中,上述图5、图6、图7中的闪存设备可视为终端内部的非易失性存储器,主机可视为终端内部除非易失性存储器以外的其他器件的集合。闪存设备和主机集成于同一设备,该设备为终端。
终端内部器件的交互过程可参考上述图5、图6或图7,此处不再进行详细赘述。
综上所述,本申请实施例提供的数据处理方法能够有效的提高存储空间的利用率,也能在一定程度上保证数据的可靠性。
本申请实施例提供一种闪存设备,该闪存设备用于执行以上数据处理方法中的闪存设备所执行的步骤。本申请实施例提供的闪存设备可以包括相应步骤所对应的模块。
本申请实施例可以根据上述方法示例对闪存设备进行功能模块的划分,例如,可以对应各个功能划分各个功能模块,也可以将两个或两个以上的功能集成在一个处理模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。本申请实施例中对模块的划分是示意性的,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式。
在采用对应各个功能划分各个功能模块的情况下,图8示出上述实施例中所涉及的闪存设备的一种可能的结构示意图。如图8所示,闪存设备800包括通信模块80、处理模块81和存储模块82。
其中,上述通信模块80用于支持该闪存设备800执行S500、S601、S700、S705,和/或用于本文所描述的技术的其它过程。
上述处理模块81用于支持该闪存设备800执行上述实施例中的S501、S502、S503、S504、S505、S506、S602、S701、S702、S703、S704,和/或用于本文所描述的技术的其它过程。
上述存储模块82用于存储该闪存设备的程序代码和数据。
需要说明的是,上述方法实施例涉及的各步骤的所有相关内容均可以援引到对应功能模块的功能描述,在此不再赘述。
本申请实施例还提供一种计算机可读存储介质,计算机可读存储介质中存储有指令,当其在闪存设备上运行时,使得闪存设备执行上述数据写入方法实施例所示的方法流程中闪存设备执行的各个步骤。
本申请实施例提供一种终端,该终端包括闪存设备和处理器,闪存设备和处理器之间的交互实现上述数据处理方法。若图4示出的闪存设备40和主机41集成于同一设备,则该设备可以为终端。
在上述实施例中,可以全部或部分的通过软件,硬件,固件或者其任意组合来实现。当使用软件程序实现时,可以全部或部分地以计算机程序产品的形式出现。所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机程序指令时,全部或部分地产生按照本申请实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(DSL))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心传输。所述计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。该可用介质可以是磁性介质,(例如,软盘,硬盘、磁带)、光介质(例如,DVD)或者半导体介质(例如固态硬盘Solid State Disk(SSD))等。
通过以上的实施方式的描述,所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将装置的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。
在本申请所提供的几个实施例中,应该理解到,所揭露的装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述模块或单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个装置,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是一个物理单元或多个物理单元,即可以位于一个地方,或者也可以分布到多个不同地方。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个可读取存储介质中。基于这样的理解,本申请实施例的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该软件产品存储在一个存储介质中,包括若干指令用以使得一个设备(可以是单片机,芯片等)或处理器(processor)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何在本申请揭露的技术范围内的变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以所述权利要求的保护范围为准。
Claims (28)
1.一种数据处理方法,其特征在于,应用于非易失性存储介质包括x个独立可编程闪存芯片的闪存设备,所述闪存设备的第一物理存储空间用于存储第一安全级别的数据块和第二安全级别的数据块,所述第一安全级别的数据块是由所述x个独立可编程闪存芯片采用预设可定制独立计算机闪存设备部分冗余阵列CPR形式和预设CPR级别的方式组成的,所述第一安全级别的数据块包括至少一个条带集合,所述条带集合由m个相邻的条带组成,所述条带集合包括一个校验数据组,不同的所述条带集合的校验数据组位于不同的所述独立可编程闪存芯片,所述预设CPR形式用于指示所述m个相邻的条带包括一个校验数据组,所述第二安全级别的数据块仅用于存储用户数据,所述闪存设备的第二物理存储空间用于存储所述第二安全级别的数据块,所述第一安全级别高于所述第二安全级别,x为大于或等于1的整数,m为大于或等于2的整数;
所述数据处理方法包括:
接收写数据请求,所述写数据请求用于请求写入目标数据;
根据所述写数据请求,获取所述目标数据的安全级别;
若所述目标数据的安全级别为所述第一安全级别,将所述目标数据写入所述第一物理存储空间;
若所述目标数据的安全级别为所述第二安全级别,将所述目标数据写入所述第二物理存储空间,或者,将所述目标数据写入所述第二物理存储空间和所述第一物理存储空间。
2.根据权利要求1所述的数据处理方法,其特征在于,所述写数据请求包括用于指示所述目标数据的安全级别的第一标识。
3.根据权利要求2所述的数据处理方法,其特征在于,若所述第一标识的取值为第一预设值,所述第一标识具体用于指示所述目标数据的安全级别为所述第一安全级别;所述若所述目标数据的安全级别为所述第一安全级别,将所述目标数据写入所述第一物理存储空间,具体包括:
将所述目标数据写入所述第一物理存储空间中已分配、且剩余存储空间大于存储所述目标数据所需存储空间的大小的所述第一安全级别的数据块;
或者,
将所述目标数据写入所述第一物理存储空间中新分配的所述第一安全级别的数据块;
或者,
将所述目标数据写入所述第一物理存储空间中已分配、且剩余存储空间小于存储所述目标数据所需存储空间的大小的所述第一安全级别的数据块,以及所述第一物理存储空间中新分配的所述第一安全级别的数据块。
4.根据权利要求2或3所述的数据处理方法,其特征在于,若所述第一标识的取值为第二预设值,所述第一标识具体用于指示所述目标数据的安全级别为所述第二安全级别;
所述若所述目标数据的安全级别为所述第二安全级别,将所述目标数据写入所述第二物理存储空间,或者,将所述目标数据写入所述第二物理存储空间和所述第一物理存储空间,具体包括:
确定所述第二物理存储空间的剩余存储空间的大小;
若所述第二物理存储空间的剩余存储空间的大小大于存储所述目标数据所需存储空间的大小,将所述目标数据写入所述第二物理存储空间;或者,若所述第二物理存储空间的剩余存储空间的大小大于零、且小于存储所述目标数据所需存储空间的大小,将所述目标数据写入所述第二物理存储空间的剩余存储空间和所述第一物理存储空间的所述第二安全级别的数据块;或者,若所述第二物理存储空间的剩余存储空间的大小等于零,将所述目标数据写入所述第一物理存储空间的所述第二安全级别的数据块。
5.根据权利要求1所述的数据处理方法,其特征在于,
所述m个相邻的条带属于不同的物理页。
6.根据权利要求1所述的数据处理方法,其特征在于,所述数据处理方法还包括:
接收来自主机的配置命令,所述配置命令包括所述第一物理存储空间的大小、所述CPR形式和预设CPR级别;
响应于所述配置命令,完成初始化配置。
7.一种数据处理方法,其特征在于,应用于非易失性存储介质包括x个独立可编程闪存芯片的闪存设备,所述闪存设备的第一物理存储空间用于存储第一安全级别的数据块,所述第一安全级别的数据块是由所述x个独立可编程闪存芯片采用预设可定制独立计算机闪存设备部分冗余阵列CPR形式和预设CPR级别的方式组成的,所述第一安全级别的数据块包括至少一个条带集合,所述条带集合由m个相邻的条带组成,所述条带集合包括一个校验数据组,不同的所述条带集合的校验数据组位于不同的所述独立可编程闪存芯片,所述预设CPR形式用于指示所述m个相邻的条带包括一个校验数据组,m为大于或等于2的整数;若所述第一标识的取值为第一预设值,所述第一标识用于指示所述目标数据的安全级别为所述第一安全级别;x为大于或等于1的整数,所述数据处理方法包括:
接收包括第一标识的写数据请求,所述写数据请求用于请求写入目标数据,所述第一标识用于指示所述目标数据的安全级别;
根据所述第一标识指示的所述目标数据的安全级别,为所述目标数据动态分配存储空间,并将所述目标数据写入分配的存储空间;
所述将所述目标数据写入分配的存储空间,包括:将所述目标数据存储于所述第一物理存储空间的第一安全级别的数据块中。
8.根据权利要求7所述的数据处理方法,其特征在于,所述根据所述第一标识指示的所述目标数据的安全级别,为所述目标数据动态分配存储空间,并将所述目标数据写入分配的存储空间,具体包括:
将所述目标数据写入所述第一物理存储空间中已分配、且剩余存储空间大于存储所述目标数据所需存储空间的大小的所述第一安全级别的数据块;
或者,
将所述目标数据写入所述第一物理存储空间中新分配的所述第一安全级别的数据块;
或者,
将所述目标数据写入所述第一物理存储空间中已分配、且剩余存储空间小于存储所述目标数据所需存储空间的大小的所述第一安全级别的数据块,以及所述第一物理存储空间中新分配的所述第一安全级别的数据块。
9.根据权利要求8所述的数据处理方法,其特征在于,所述闪存设备的第二物理存储空间用于存储第二安全级别的数据块,所述第二安全级别的数据块仅用于存储用户数据,所述第一物理存储空间还用于存储所述第二安全级别的数据块,所述第二安全级别低于所述第一安全级别;若所述第一标识的取值为第二预设值,所述第一标识用于指示所述目标数据的安全级别为所述第二安全级别;
所述根据所述第一标识指示的所述目标数据的安全级别,为所述目标数据动态分配存储空间,并将所述目标数据写入分配的存储空间,具体包括:
确定所述第二物理存储空间的剩余存储空间的大小;
若所述第二物理存储空间的剩余存储空间的大小大于存储所述目标数据所需存储空间的大小,将所述目标数据写入所述第二物理存储空间;或者,若所述第二物理存储空间的剩余存储空间的大小大于零、且小于存储所述目标数据所需存储空间的大小,将所述目标数据写入所述第二物理存储空间的剩余存储空间和所述第一物理存储空间的所述第二安全级别的数据块;或者,若所述第二物理存储空间的剩余存储空间的大小等于零,将所述目标数据写入所述第一物理存储空间的所述第二安全级别的数据块。
10.一种数据处理方法,其特征在于,应用于包括闪存设备的终端,所述闪存设备包括x个独立可编程闪存芯片,所述闪存设备的第一物理存储空间用于存储第一安全级别的数据块,所述第一安全级别的数据块是由所述x个独立可编程闪存芯片采用预设可定制独立计算机闪存设备部分冗余阵列CPR形式和预设CPR级别的方式组成的,所述第一安全级别的数据块包括至少一个条带集合,所述条带集合由m个相邻的条带组成,所述条带集合包括一个校验数据组,不同的所述条带集合的校验数据组位于不同的所述独立可编程闪存芯片,所述预设CPR形式用于指示所述m个相邻的条带包括一个校验数据组,m为大于或等于2的整数;若所述第一标识的取值为第一预设值,所述第一标识用于指示所述目标数据的安全级别为所述第一安全级别;x为大于或等于1的整数,所述数据处理方法包括:
所述终端的处理器向所述闪存设备发送包括第一标识的写数据请求,所述写数据请求用于请求写入目标数据,所述第一标识用于指示所述目标数据的安全级别;
所述闪存设备根据所述第一标识指示的所述目标数据的安全级别,为所述目标数据动态分配存储空间,并将所述目标数据写入分配的存储空间;
所述将所述目标数据写入分配的存储空间,包括:将所述目标数据存储于所述第一物理存储空间的第一安全级别的数据块中。
11.根据权利要求10所述的数据处理方法,其特征在于,所述闪存设备根据所述第一标识指示的所述目标数据的安全级别,为所述目标数据动态分配存储空间,并将所述目标数据写入分配的存储空间,具体包括:
所述闪存设备将所述目标数据写入所述第一物理存储空间中已分配、且剩余存储空间大于存储所述目标数据所需存储空间的大小的所述第一安全级别的数据块;
或者,
所述闪存设备将所述目标数据写入所述第一物理存储空间中新分配的所述第一安全级别的数据块;
或者,
所述闪存设备将所述目标数据写入所述第一物理存储空间中已分配、且剩余存储空间小于存储所述目标数据所需存储空间的大小的所述第一安全级别的数据块,以及所述第一物理存储空间中新分配的所述第一安全级别的数据块。
12.根据权利要求11所述的数据处理方法,其特征在于,所述闪存设备的第二物理存储空间用于存储第二安全级别的数据块,所述第二安全级别的数据块仅用于存储用户数据,所述第一物理存储空间还用于存储所述第二安全级别的数据块,所述第二安全级别低于所述第一安全级别;若所述第一标识的取值为第二预设值,所述第一标识用于指示所述目标数据的安全级别为所述第二安全级别;
所述闪存设备根据所述第一标识指示的所述目标数据的安全级别,为所述目标数据动态分配存储空间,并将所述目标数据写入分配的存储空间,具体包括:
所述闪存设备确定所述第二物理存储空间的剩余存储空间的大小;
若所述第二物理存储空间的剩余存储空间的大小大于存储所述目标数据所需存储空间的大小,所述闪存设备将所述目标数据写入所述第二物理存储空间;或者,若所述第二物理存储空间的剩余存储空间的大小大于零、且小于存储所述目标数据所需存储空间的大小,所述闪存设备将所述目标数据写入所述第二物理存储空间的剩余存储空间和所述第一物理存储空间的所述第二安全级别的数据块;或者,若所述第二物理存储空间的剩余存储空间的大小等于零,所述闪存设备将所述目标数据写入所述第一物理存储空间的所述第二安全级别的数据块。
13.根据权利要求11-12中任意一项所述的数据处理方法,其特征在于,所述数据处理方法还包括:
所述处理器向所述闪存设备发送配置命令,所述配置命令包括所述第一物理存储空间的大小、预设可定制独立计算机闪存设备部分冗余阵列CPR形式和预设CPR级别的方式;
所述闪存设备根据所述配置命令,完成所述第一物理存储空间的初始化配置。
14.根据权利要求11所述的数据处理方法,其特征在于,所述数据处理方法还包括:
所述处理器为所述终端的至少一个应用程序中的每个应用程序动态分配所述第一物理存储空间的可用存储空间。
15.一种闪存设备,其特征在于,所述闪存设备包括存储模块、通信模块和处理模块;其中,
所述存储模块包括x个独立可编程闪存芯片,所述存储模块中的第一物理存储空间用于存储第一安全级别的数据块和第二安全级别的数据块,所述第一安全级别的数据块是由所述x个独立可编程闪存芯片采用预设可定制独立计算机闪存设备部分冗余阵列CPR形式和预设CPR级别的方式组成的,所述第一安全级别的数据块包括至少一个条带集合,所述条带集合由m个相邻的条带组成,所述条带集合包括一个校验数据组,不同的所述条带集合的校验数据组位于不同的所述独立可编程闪存芯片,所述预设CPR形式用于指示所述m个相邻的条带包括一个校验数据组,所述第二安全级别的数据块仅用于存储用户数据,所述存储模块中的第二物理存储空间用于存储所述第二安全级别的数据块,所述第一安全级别高于所述第二安全级别,x为大于或等于1的整数,m为大于或等于2的整数;
所述通信模块,用于接收写数据请求,所述写数据请求用于请求写入目标数据;
所述处理模块,用于根据所述通信模块接收到的所述写数据请求,获取所述目标数据的安全级别,以及用于若所述目标数据的安全级别为所述第一安全级别,将所述目标数据写入所述存储模块的所述第一物理存储空间,以及用于若所述目标数据的安全级别为所述第二安全级别,将所述目标数据写入所述存储模块的所述第二物理存储空间,或者,将所述目标数据写入所述存储模块的所述第二物理存储空间和所述第一物理存储空间。
16.根据权利要求15所述的闪存设备,其特征在于,所述写数据请求包括用于指示所述目标数据的安全级别的第一标识。
17.根据权利要求16所述的闪存设备,其特征在于,若所述第一标识的取值为第一预设值,所述第一标识具体用于指示所述目标数据的安全级别为所述第一安全级别;若所述目标数据的安全级别为所述第一安全级别,所述处理模块具体用于:
将所述目标数据写入所述第一物理存储空间中已分配、且剩余存储空间大于存储所述目标数据所需存储空间的大小的所述第一安全级别的数据块;
或者,
将所述目标数据写入所述第一物理存储空间中新分配的所述第一安全级别的数据块;
或者,
将所述目标数据写入所述第一物理存储空间中已分配、且剩余存储空间小于存储所述目标数据所需存储空间的大小的所述第一安全级别的数据块,以及所述第一物理存储空间中新分配的所述第一安全级别的数据块。
18.根据权利要求16或17所述的闪存设备,其特征在于,若所述第一标识的取值为第二预设值,所述第一标识具体用于指示所述目标数据的安全级别为所述第二安全级别;若所述目标数据的安全级别为所述第二安全级别,所述处理模块具体用于:
确定所述第二物理存储空间的剩余存储空间的大小;
若所述第二物理存储空间的剩余存储空间的大小大于存储所述目标数据所需存储空间的大小,将所述目标数据写入所述第二物理存储空间;或者,若所述第二物理存储空间的剩余存储空间的大小大于零、且小于存储所述目标数据所需存储空间的大小,将所述目标数据写入所述第二物理存储空间的剩余存储空间和所述第一物理存储空间的所述第二安全级别的数据块;或者,若所述第二物理存储空间的剩余存储空间的大小等于零,将所述目标数据写入所述第一物理存储空间的所述第二安全级别的数据块。
19.根据权利要求15所述的闪存设备,其特征在于,
所述m个相邻的条带属于不同的物理页。
20.根据权利要求15所述的闪存设备,其特征在于,
所述通信模块,还用于接收来自主机的配置命令,所述配置命令包括所述第一物理存储空间的大小、所述CPR形式和预设CPR级别;
所述处理模块,还用于响应于所述通信模块接收到的所述配置命令,完成初始化配置。
21.一种闪存设备,其特征在于,所述闪存设备包括存储模块、通信模块和处理模块;其中,
所述存储模块包括x个独立可编程闪存芯片,x为大于或等于1的整数;所述存储模块的第一物理存储空间用于存储第一安全级别的数据块,所述第一安全级别的数据块是由所述x个独立可编程闪存芯片采用预设可定制独立计算机闪存设备部分冗余阵列CPR形式和预设CPR级别的方式组成的,所述第一安全级别的数据块包括至少一个条带集合,所述条带集合由m个相邻的条带组成,所述条带集合包括一个校验数据组,不同的所述条带集合的校验数据组位于不同的所述独立可编程闪存芯片,所述预设CPR形式用于指示所述m个相邻的条带包括一个校验数据组,m为大于或等于2的整数;若所述第一标识的取值为第一预设值,所述第一标识用于指示所述目标数据的安全级别为所述第一安全级别;
所述通信模块,用于接收包括第一标识的写数据请求,所述写数据请求用于请求写入目标数据,所述第一标识用于指示所述目标数据的安全级别;
所述处理模块,用于根据所述通信模块接收到的所述写数据请求中的所述第一标识指示的所述目标数据的安全级别,为所述目标数据动态分配存储空间,并将所述目标数据写入分配的存储空间;
所述处理模块具体用于:将所述目标数据存储于所述第一物理存储空间的第一安全级别的数据块中。
22.根据权利要求21所述的闪存设备,其特征在于,在所述第一标识的取值为所述第一预设值的情况下,所述处理模块具体用于:
将所述目标数据写入所述第一物理存储空间中已分配、且剩余存储空间大于存储所述目标数据所需存储空间的大小的所述第一安全级别的数据块;
或者,
将所述目标数据写入所述第一物理存储空间中新分配的所述第一安全级别的数据块;
或者,
将所述目标数据写入所述第一物理存储空间中已分配、且剩余存储空间小于存储所述目标数据所需存储空间的大小的所述第一安全级别的数据块,以及所述第一物理存储空间中新分配的所述第一安全级别的数据块。
23.根据权利要求22所述的闪存设备,其特征在于,所述闪存设备的第二物理存储空间用于存储第二安全级别的数据块,所述第二安全级别的数据块仅用于存储用户数据,所述第一物理存储空间还用于存储所述第二安全级别的数据块,所述第二安全级别低于所述第一安全级别;若所述第一标识的取值为第二预设值,所述第一标识用于指示所述目标数据的安全级别为所述第二安全级别;
在所述第一标识的取值为所述第二预设值的情况下,所述处理模块具体用于:
确定所述第二物理存储空间的剩余存储空间的大小;
若所述第二物理存储空间的剩余存储空间的大小大于存储所述目标数据所需存储空间的大小,将所述目标数据写入所述第二物理存储空间;或者,若所述第二物理存储空间的剩余存储空间的大小大于零、且小于存储所述目标数据所需存储空间的大小,将所述目标数据写入所述第二物理存储空间的剩余存储空间和所述第一物理存储空间的所述第二安全级别的数据块;或者,若所述第二物理存储空间的剩余存储空间的大小等于零,将所述目标数据写入所述第一物理存储空间的所述第二安全级别的数据块。
24.一种闪存设备,其特征在于,所述闪存设备包括:一个或多个处理器、非易失性存储介质和通信接口;
所述非易失性存储介质、所述通信接口与所述一个或多个处理器连接;所述闪存设备通过所述通信接口与其他设备通信,所述非易失性存储介质用于存储计算机程序代码,所述计算机程序代码包括指令,当所述一个或多个处理器执行所述指令时,所述闪存设备执行如权利要求1-6中任意一项所述的数据处理方法或者执行如权利要求7-9中任意一项所述的数据处理方法。
25.一种计算机可读存储介质,包括指令,其特征在于,当所述指令在闪存设备上运行时,使得所述闪存设备执行如权利要求1-6中任意一项所述的数据处理方法或者执行如权利要求7-9中任意一项所述的数据处理方法。
26.一种终端,其特征在于,所述终端包括处理器,以及如权利要求15-20中任意一项所述的闪存设备或者如权利要求21-23中任意一项所述的闪存设备;其中,
所述处理器,用于向所述闪存设备发送包括第一标识的写数据请求,以便于所述闪存设备根据所述第一标识指示的所述目标数据的安全级别,为所述目标数据动态分配存储空间,所述写数据请求用于请求写入目标数据。
27.根据权利要求26所述的终端,其特征在于,
所述处理器,还用于向所述闪存设备发送配置命令,以便于所述闪存设备根据所述配置命令,完成所述闪存设备中第一物理存储空间的初始化配置,所述配置命令包括所述第一物理存储空间的大小、预设可定制独立计算机闪存设备部分冗余阵列CPR形式和预设CPR级别的方式。
28.根据权利要求26或27所述的终端,其特征在于,
所述处理器,还用于为所述终端的至少一个应用程序中的每个应用程序动态分配所述第一物理存储空间的可用存储空间。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/CN2018/097293 WO2020019267A1 (zh) | 2018-07-26 | 2018-07-26 | 一种数据处理方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112513804A CN112513804A (zh) | 2021-03-16 |
CN112513804B true CN112513804B (zh) | 2022-08-19 |
Family
ID=69182097
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201880095798.9A Active CN112513804B (zh) | 2018-07-26 | 2018-07-26 | 一种数据处理方法及装置 |
Country Status (3)
Country | Link |
---|---|
US (1) | US11593000B2 (zh) |
CN (1) | CN112513804B (zh) |
WO (1) | WO2020019267A1 (zh) |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112513804B (zh) * | 2018-07-26 | 2022-08-19 | 华为技术有限公司 | 一种数据处理方法及装置 |
US11775201B2 (en) * | 2018-08-08 | 2023-10-03 | Huawei Technologies Co., Ltd. | Apparatus and method for providing one time programmable memory features in a hypervisor of a computing device |
US11036887B2 (en) * | 2018-12-11 | 2021-06-15 | Micron Technology, Inc. | Memory data security |
CN112804003A (zh) * | 2021-02-19 | 2021-05-14 | 上海剑桥科技股份有限公司 | 一种基于光模块通信的存储方法、系统及终端 |
CN114415961B (zh) * | 2022-01-21 | 2023-10-27 | 珠海奔图电子有限公司 | Nand flash存储器的坏块处理方法、电子设备及存储介质 |
US11797183B1 (en) * | 2022-06-27 | 2023-10-24 | Western Digital Technologies, Inc. | Host assisted application grouping for efficient utilization of device resources |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103488583A (zh) * | 2013-09-09 | 2014-01-01 | 华中科技大学 | 一种高性能高可靠的固态盘实现方法 |
CN104267913A (zh) * | 2014-10-20 | 2015-01-07 | 北京北亚时代科技有限公司 | 一种可动态异步调整raid级别的存储方法及存储系统 |
CN105404469A (zh) * | 2015-10-22 | 2016-03-16 | 浙江宇视科技有限公司 | 一种视频数据的存储方法和系统 |
CN106845289A (zh) * | 2015-12-07 | 2017-06-13 | 国民技术股份有限公司 | 一种安全芯片及其非易失性存储控制装置、方法 |
CN112513804A (zh) * | 2018-07-26 | 2021-03-16 | 华为技术有限公司 | 一种数据处理方法及装置 |
Family Cites Families (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9632870B2 (en) * | 2007-03-29 | 2017-04-25 | Violin Memory, Inc. | Memory system with multiple striping of raid groups and method for performing the same |
US8775868B2 (en) * | 2010-09-28 | 2014-07-08 | Pure Storage, Inc. | Adaptive RAID for an SSD environment |
US9348696B2 (en) | 2010-10-01 | 2016-05-24 | Pure Storage, Inc. | Distributed multi-level protection in a raid array based storage system |
US9251154B2 (en) * | 2013-11-15 | 2016-02-02 | International Business Machines Corporation | Priority based reliability mechanism for archived data |
US9785575B2 (en) * | 2014-12-30 | 2017-10-10 | International Business Machines Corporation | Optimizing thin provisioning in a data storage system through selective use of multiple grain sizes |
WO2018138813A1 (ja) * | 2017-01-25 | 2018-08-02 | 株式会社日立製作所 | 計算機システム |
KR20180130140A (ko) * | 2017-05-29 | 2018-12-07 | 에스케이하이닉스 주식회사 | 데이터 처리 시스템 및 데이터 처리 방법 |
US11748196B2 (en) * | 2018-06-29 | 2023-09-05 | International Business Machines Corporation | Adaptive parity rotation for redundant arrays of independent disks |
US10761738B2 (en) * | 2018-07-13 | 2020-09-01 | Seagate Technology Llc | Raid performance by offloading tasks to expanders |
-
2018
- 2018-07-26 CN CN201880095798.9A patent/CN112513804B/zh active Active
- 2018-07-26 US US17/262,310 patent/US11593000B2/en active Active
- 2018-07-26 WO PCT/CN2018/097293 patent/WO2020019267A1/zh active Application Filing
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103488583A (zh) * | 2013-09-09 | 2014-01-01 | 华中科技大学 | 一种高性能高可靠的固态盘实现方法 |
CN104267913A (zh) * | 2014-10-20 | 2015-01-07 | 北京北亚时代科技有限公司 | 一种可动态异步调整raid级别的存储方法及存储系统 |
CN105404469A (zh) * | 2015-10-22 | 2016-03-16 | 浙江宇视科技有限公司 | 一种视频数据的存储方法和系统 |
CN106845289A (zh) * | 2015-12-07 | 2017-06-13 | 国民技术股份有限公司 | 一种安全芯片及其非易失性存储控制装置、方法 |
CN112513804A (zh) * | 2018-07-26 | 2021-03-16 | 华为技术有限公司 | 一种数据处理方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
WO2020019267A1 (zh) | 2020-01-30 |
US11593000B2 (en) | 2023-02-28 |
US20210303181A1 (en) | 2021-09-30 |
CN112513804A (zh) | 2021-03-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP3800554B1 (en) | Storage system managing metadata, host system controlling storage system, and storage system operating method | |
CN112513804B (zh) | 一种数据处理方法及装置 | |
US11281601B2 (en) | Multi-device storage system with hosted services on peer storage devices | |
CN111373362B (zh) | 具有分布式读取/写入处理的多设备存储系统 | |
US10860508B2 (en) | Offloaded disaggregated storage architecture | |
CN107111535B (zh) | 存储系统中的加速数据恢复 | |
KR101660150B1 (ko) | 물리 페이지, 논리 페이지, 및 코드워드 대응 | |
US8819338B2 (en) | Storage system and storage apparatus | |
CN111433746A (zh) | 使用故障存储设备的重建助手 | |
US10768838B2 (en) | Storage apparatus and distributed storage system | |
US10108359B2 (en) | Method and system for efficient cache buffering in a system having parity arms to enable hardware acceleration | |
US20160011786A1 (en) | Storage system and data write method | |
KR20220001222A (ko) | 베드 블록을 처리하는 메모리 시스템 및 동작 방법 | |
US11288183B2 (en) | Operating method of memory system and host recovering data with write error | |
CN103534688A (zh) | 数据恢复方法、存储设备和存储系统 | |
US10282116B2 (en) | Method and system for hardware accelerated cache flush | |
US11366608B2 (en) | Method, electronic device and computer readable storage medium for i/o management | |
CN117591009A (zh) | 一种数据管理方法、存储装置及服务器 | |
KR20210131058A (ko) | 메모리 시스템 내 데이터를 보호하는 장치 및 방법 | |
US11663080B1 (en) | Techniques for performing live rebuild in storage systems that operate a direct write mode | |
WO2017212514A1 (ja) | ストレージシステム及び記憶制御方法 | |
CN110659152B (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 |