CN111930300A - 数据写入方法、装置、计算机可读存储介质及电子设备 - Google Patents
数据写入方法、装置、计算机可读存储介质及电子设备 Download PDFInfo
- Publication number
- CN111930300A CN111930300A CN202010598419.7A CN202010598419A CN111930300A CN 111930300 A CN111930300 A CN 111930300A CN 202010598419 A CN202010598419 A CN 202010598419A CN 111930300 A CN111930300 A CN 111930300A
- Authority
- CN
- China
- Prior art keywords
- data
- slc
- mlc
- block
- written
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
- 238000000034 method Methods 0.000 title claims abstract description 49
- 230000015654 memory Effects 0.000 claims abstract description 28
- 238000004590 computer program Methods 0.000 claims description 15
- 239000013256 coordination polymer Substances 0.000 description 32
- 238000013507 mapping Methods 0.000 description 6
- 230000008878 coupling Effects 0.000 description 3
- 238000010168 coupling process Methods 0.000 description 3
- 238000005859 coupling reaction Methods 0.000 description 3
- 238000010586 diagram Methods 0.000 description 3
- 230000009286 beneficial effect Effects 0.000 description 2
- 238000004891 communication Methods 0.000 description 2
- 238000004364 calculation method Methods 0.000 description 1
- 125000004122 cyclic group Chemical group 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000002035 prolonged effect Effects 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/0614—Improving the reliability of storage systems
-
- 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
- G06F12/06—Addressing a physical block of locations, e.g. base addressing, module addressing, memory dedication
- G06F12/0615—Address space extension
- G06F12/0623—Address space extension for memory modules
-
- 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
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/10—Address translation
- G06F12/1009—Address translation using page tables, e.g. page table structures
-
- 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/0646—Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
- G06F3/0652—Erasing, e.g. deleting, data cleaning, moving of data to a wastebasket
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)
- Read Only Memory (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
Abstract
本发明公开一种数据写入方法、装置、计算机可读存储介质及电子设备,数据写入方法包括接收数据写入请求,根据所述数据写入请求将待写入的数据同时写入闪存中预先组合的SLC块和MLC块,在数据写入过程中,更新写入的数据的物理地址为所述写入的数据对应的SLC地址;待所述预先组合的SLC块和MLC块的数据写入完成后,根据所述写入的数据对应的SLC地址确定所述写入的数据对应的MLC地址,并更新所述写入的数据的物理地址为所述MLC地址;释放写入所述SLC块的数据及所述SLC块与所述MLC块的组合关系;在减少数据的总体写入时间的同时减少了对存储空间的消耗,提高了存储性能的稳定性。
Description
技术领域
本发明涉及闪存技术领域,尤其涉及一种数据写入方法、装置、计算机可读存储介质及电子设备。
背景技术
当前闪存数据的写入方法的一般流程如下:先将待写入的数据写入闪存的SLC(single-level cell,单层单元)块,接着读取SLC块中写入的数据,将读取的数据写入MLC(multi-level cell,双层单元)块,最后***修改对应的存储映射表,擦除SLC块中的数据。由于这种写入方法需要进行SLC块中的数据到MLC块的搬移,影响了闪存数据的写入速度。
发明内容
本发明所要解决的技术问题是:提供一种数据写入方法、装置、计算机可读存储介质及电子设备,提高闪存数据的写入速度。
为了解决上述技术问题,本发明采用的一种技术方案为:
一种数据写入方法,包括步骤:
接收数据写入请求,根据所述数据写入请求将待写入的数据同时写入闪存中预先组合的SLC块和MLC块,在数据写入过程中,更新写入的数据的物理地址为所述写入的数据对应的SLC地址;
待所述预先组合的SLC块和MLC块的数据写入完成后,根据所述写入的数据对应的SLC地址确定所述写入的数据对应的MLC地址,并更新所述写入的数据的物理地址为所述MLC地址;
释放写入所述SLC块的数据及所述SLC块与所述MLC块的组合关系。
为了解决上述技术问题,本发明采用的另一种技术方案为:
一种数据写入装置,包括:
数据写入模块,用于接收数据写入请求,根据所述数据写入请求将待写入的数据同时写入闪存中预先组合的SLC块和MLC块,在数据写入过程中,更新写入的数据的物理地址为所述写入的数据对应的SLC地址;
地址更新模块,用于待所述预先组合的SLC块和MLC块的数据写入完成后,根据所述写入的数据对应的SLC地址确定所述写入的数据对应的MLC地址,并更新所述写入的数据的物理地址为所述MLC地址;
释放模块,用于释放写入所述SLC块的数据及所述SLC块与所述MLC块的组合关系。
为了解决上述技术问题,本发明采用的另一种技术方案为:
一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现上述数据写入方法中的各个步骤。
为了解决上述技术问题,本发明采用的另一种技术方案为:
一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述数据写入方法中的各个步骤。
本发明的有益效果在于:在闪存数据写入的时候,将SLC和MLC的写入操作同时进行,不仅减少了数据的总体写入时间,而且能够解决flash突然从高速转换为低速,造成flash写入数据不稳定,对硬件损坏较大的问题,提高存储性能的稳定性,同时为了避免同时写入SLC和MLC需要同时记录SLC和MLC的物理地址造成需要同时存储两倍的地址数据,造成存储空间消耗大的问题,在同时写入SLC和MLC的过程中,仅记录SLC的物理地址,待数据写入完成后,根据SLC物理地址确定MLC物理地址,令MLC物理地址替换SLC物理地址,并及时将SLC块中的数据释放,解决了小容量存储装置没有足够空间存储过多地址列表的问题;在减少数据的总体写入时间的同时减少了对存储空间的消耗,提高了存储性能的稳定性。
附图说明
图1为本发明实施例的一种数据写入方法的步骤流程图;
图2为本发明实施例的一种数据写入装置的结构示意图;
图3为本发明实施例的一种电子设备的结构示意图;
图4为本发明实施例的闪存数据写入的详细步骤流程图。
具体实施方式
为详细说明本发明的技术内容、所实现目的及效果,以下结合实施方式并配合附图予以说明。
请参照图1,本发明实施例提供了一种数据写入方法,包括步骤:
接收数据写入请求,根据所述数据写入请求将待写入的数据同时写入闪存中预先组合的SLC块和MLC块,在数据写入过程中,更新写入的数据的物理地址为所述写入的数据对应的SLC地址;
待所述预先组合的SLC块和MLC块的数据写入完成后,根据所述写入的数据对应的SLC地址确定所述写入的数据对应的MLC地址,并更新所述写入的数据的物理地址为所述MLC地址;
释放写入所述SLC块的数据及所述SLC块与所述MLC块的组合关系。
由上述描述可知,本发明的有益效果在于:在闪存数据写入的时候,将SLC和MLC的写入操作同时进行,不仅减少了数据的总体写入时间,而且能够解决flash突然从高速转换为低速,造成flash写入数据不稳定,对硬件损坏较大的问题,提高存储性能的稳定性,同时为了避免同时写入SLC和MLC需要同时记录SLC和MLC的物理地址造成需要同时存储两倍的地址数据,造成存储空间消耗大的问题,在同时写入SLC和MLC的过程中,仅记录SLC的物理地址,待数据写入完成后,根据SLC物理地址确定MLC物理地址,令MLC物理地址替换SLC物理地址,并及时将SLC块中的数据释放,解决了小容量存储装置没有足够空间存储过多地址列表的问题;在减少数据的总体写入时间的同时减少了对存储空间的消耗,提高了存储性能的稳定性。
进一步的,所述接收数据写入请求之前还包括步骤:
从数据块队列中选取数据块,以三个数据块为一组进行组合,设置其中两个数据块采用SLC模式写入数据,剩余的一个数据块采用MLC模式写入数据,并将其组合信息写入组合数据表;
每写完一个组合,立即执行写入的数据对应的MLC地址的确定、物理地址的更新、所述组合中SLC块的数据的释放以及组合的释放;
所述根据所述写入的数据对应的SLC地址确定所述写入的数据对应的MLC地址包括:
根据写入的数据所在的组合的组合信息和写入的数据对应的SLC地址确定所述写入的数据对应的MLC地址;
所述组合的释放包括将所述组合信息从所述组合数据表中删除。
由上述描述可知,数据写入之前,事先以三个数据块为一组进行组合,形成一组组的数据块CP,在后续数据写入中,以数据块CP组合为单位进行数据写入、MLC地址的确定、物理地址的更新、所述组合中SLC块的数据的释放以及组合的释放,能够及时的将SLC块的数据和数据块CP组合进行释放,保证数据块队列里一直存在SLC和MLC CP组合可以使用,有足够的数据块空间供调用,能够进一步提高数据写入速度。
进一步的,所述从数据块队列中选取数据块包括:
确定选取的数据块的擦除次数,判断所述擦除次数是否大于或者等于最小擦除次数并且小于或者等于最大擦除次数,若是,则所述选取的数据块可用,将所述选取的数据库作为待组合数据块,并更新所述选取的数据块的擦除次数,若否,则所述选取的数据块不可用。
由上述描述可知,对数据块的擦除次数进行记录,在数据块选取时,将其擦除次数与允许使用的次数进行比较,在允许使用次数范围内才进行选取,并且选取后,对其擦除次数进行实时更新,基于擦除次数来进行数据块的选取,能够均衡数据块的使用压力,延长数据块的使用寿命,放置数据块提前报废。
进一步的,已写入数据对应的MLC地址的确定和待写入数据的写入同时进行。
由上述描述可知,不需要等待上一数据块CP组合已经数据写入并释放结束后才能够进行下一数据块CP组合的数据写入,上一数据块CP组合的物理地址的更新与下一数据块CP组合的数据写入可以同时进行,并行处理各个操作,进一步提高了数据写入速度,减少整体数据写入时间。
进一步的,判断MLC块的数据是否写满,若写满,则判断其所在的组合的数据写入完成。
由上述描述可知,根据MLC块的数据写入情况能够准确的判断其所在的组合的数据写入是否完成,可靠便捷。
进一步的,所述组合信息包括SLC块的编号和与其组合的MLC块的编号;
所述根据写入的数据所在的组合的组合信息和写入的数据对应的SLC地址确定所述写入的数据对应的MLC地址包括:
根据所述写入的数据所在的MLC块的编号和所述组合信息确定与所述MLC块组合的SLC块的编号;
根据所述SLC块的编号确定其写入的数据对应的SLC地址;
根据所述SLC地址和所述SLC块的编号确定写入的数据对应的MLC地址。
进一步的,所述根据所述SLC地址和所述SLC块的编号确定写入的数据对应的MLC地址包括:
MLC地址=SLC地址+SLC块的编号除以2的余数*SLC块的数据页数。
由上述描述可知,根据写入的数据所在的MLC块的编号及其对应的组合信息能够方便快捷地确定出其对应的MLC地址。
请参照图2,本发明另一实施例提供了一种数据写入装置,包括:
数据写入模块,用于接收数据写入请求,根据所述数据写入请求将待写入的数据同时写入闪存中预先组合的SLC块和MLC块,在数据写入过程中,更新写入的数据的物理地址为所述写入的数据对应的SLC地址;
地址更新模块,用于待所述预先组合的SLC块和MLC块的数据写入完成后,根据所述写入的数据对应的SLC地址确定所述写入的数据对应的MLC地址,并更新所述写入的数据的物理地址为所述MLC地址;
释放模块,用于释放写入所述SLC块的数据及所述SLC块与所述MLC块的组合关系。
本发明另一实施例提供了一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现上述数据写入方法中的各个步骤。
请参照图3,本发明另一实施例提供了一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述数据写入方法中的各个步骤。
本发明上述数据写入方法、装置、计算机可读存储介质及电子设备适用于各种类型的闪存的数据写入,特别适用于对稳定性能要求高,存储空间较小的应用场景的闪存数据写入,比如小汽车上的存储卡,儿童手表内的存储卡以及小区视频记录仪等,以下结合具体的实施例进行说明:
实施例一
请参照图1,一种数据写入方法,包括步骤:
S1、从数据块队列中选取数据块,以三个数据块为一组进行绑定组合,设置其中两个数据块采用SLC模式写入数据,剩余的一个数据块采用MLC模式写入数据,并将其组合信息写入组合数据表CP TABLE,如表1所示:
表1
表1中,显示了三个数据块为一组的数据块组合CP,SLC QUEUE表示SLC block队列,使用SLC mode写入数据,MLC QUEUE标识MLC block队列,使用MLC mode写入数据,CPTABLE记录两个slc mode的block和一个mlc mode的block组成CP总数的统计表,CP TABLE还记载了组合成组合的SLC和MLC的信息,包括SLC块的编号和与其组合的MLC块的编号,比如对于表1中的CP_0,则CP TABLE记载了SLC块的编号为数据块标号0和1以及与SLC组合的MLC块的编号为0;
S2、接收数据写入请求,根据所述数据写入请求将待写入的数据同时写入闪存中预先组合的SLC块和MLC块,在数据写入过程中,更新写入的数据的物理地址为所述写入的数据对应的SLC地址;
S3、待所述预先组合的SLC块和MLC块的数据写入完成后,根据所述写入的数据对应的SLC地址确定所述写入的数据对应的MLC地址,并更新所述写入的数据的物理地址为所述MLC地址;
S4、释放写入所述SLC块的数据及所述SLC块与所述MLC块的组合关系;
在进行数据写入给的过程中,每写完一个组合,立即执行写入的数据对应的MLC地址的确定、物理地址的更新、所述组合中SLC块的数据的释放以及组合的释放,如图4所示,在写入数据的过程中,根据组合数据表CP TABLE将数据同时写入一个个组合中,在写入数据的过程中,写入的数据的物理地址为其对应的SLC地址,每写完一个组合,则根据写入到所述组合的数据的SLC地址确定其对应的MLC地址,然后将其物理地址更新为所述MLC地址,然后将所述CP释放,将SLC块中的数据释放,释放后的SLC数据块可以继续用于组CP,进行循环利用;
具体的,当一对CP中的SLC块和MLC块都写完后(SLC和MLC均写完表示MLC处于关闭状态,其无法再进行数据写入),就进入close状态,这个时候可以根据所写入的数据的地址映射表中对应的SLC地址确定出其对应的数据存储在MLC中的地址,更新写入的数据的地址映射表,使其只对应MLC块的物理地址,释放SLC block,这样SLC块及时进行释放,队列里就会一直存在SLC块可以用于组成CP使用;
其中,已写入数据对应的MLC地址的确定和待写入数据的写入同时进行,即组合CP的地址更改可以和数据写入同时进行;
在一个可选的实施方式中,可以通过判断MLC块的数据是否写满,若写满,则判断其所在的组合的数据写入完成;
其中,在确定写入的数据对应的MLC地址时,可以根据写入的数据所在的组合的组合信息和写入的数据对应的SLC地址确定所述写入的数据对应的MLC地址;
比如表1中,要确定写入MLC block0的数据的MLC地址,则先根据记载的其所在的组合CP_0的组合信息,确定与其组合的SLC块是SLC block0和SLC block1,然后根据写入的数据在SLC块中的地址就可以推算出其对应的在MLC块的地址;
待CP_0写入的数据对应的MLC地址确定后,可以将CP_0进行释放,将其从组合数据表CP TABLE中删除,并且将其对应的SLC块中存储的数据进行擦除以释放SLC block。
实施例二
本实施例进一步限定了如何所述从数据块队列中选取数据块,具体的包括:
刚开始时,初始化数据块队列中的所有数据块,将其擦除次数初始化为0,并设置数据块队列中的数据块的最小擦除次数为Min,最大擦除次数为Max;
对于每次从数据块队列中选取出的数据块,确定其擦除次数,判断所述擦除次数是否大于或者等于最小擦除次数并且小于或者等于最大擦除次数,若是,则所述选取的数据块可用,将所述选取的数据库作为待组合数据块,并更新所述选取的数据块的擦除次数,即将其擦除次数加1,若否,则所述选取的数据块不可用,继续从数据块队列中寻找其它数据块直至无任何可以使用的数据块为止;
在从数据块队列选取出数据块时,可以按照数据块标号依次取出来,也可以随机选取,还可以先遍历完所有数据块,确定各个数据块的已擦除次数,按照已擦除次数有小到大的顺序进行选取。
实施例三
本实施例进一步限定了如何根据SLC地址确定MLC地址:
组合信息包括SLC块的编号和与其组合的MLC块的编号,具体可以参见表1;
首先,根据写入的数据所在的MLC块的编号和其所在的组合的组合信息确定与所述MLC块组合的SLC块的编号;
比如表1中,要确定MLC block1写入的数据的MLC地址,则先根据其编号1和其所在的组合CP_1的组合信息(SLC块的编号为数据块标号2和3以及与SLC块组合的MLC块的编号为1)确定其对应的SLC块的标号为2和3;
接着根据所述SLC块的编号确定其写入的数据对应的SLC地址;
假设写入的数据写入到SLC block 2的page 128,则其对应的SLC地址为SLCblock 2,page 128;
最后根据所述SLC地址和所述SLC块的编号确定写入的数据对应的MLC地址;
具体的,MLC地址=SLC地址+SLC块的编号除以2的余数*SLC块的数据页数;
在本实施例中SLC块有256个数据页,MLC块有512块;
则当写入的数据的SLC地址为SLC block 2,page 128时,则其对应的MLC地址=128+0*256=128,即BLC block page128;
根据上述的确定方式,对于CP_0,其对应的逻辑地址到物理地址的映射表更新前后的示意图如表2所示:
表2
通过表2可以看到,当MLC block写满后,修改映射表地址:
MLC Physical address=SLC_Physicaladdress+CP_Type_Offset_number(1或0)*256;
其中,CP_Type_Offset_number可以根据SLC block的编号除以2取余确定,因为SLC block按照编号0,1,2,3,4……的顺序依次递增,则对于每一组CP组合,第一个SLCblock对应的CP_Type_Offset_number为0,第二个SLC block对应的CP_Type_Offset_number为1;具体的计算方式可以根据具体的SLC block的编号进行自适应的改动,或者直接设置对于与一个MLC块对应的两个SLC块,数据写入的第一个SLC块的CP_Type_Offset_number设置为0,数据写入的第二个SLC块的CP_Type_Offset_number设置为1;
比如,表2中,SLC地址为SLC block2page 113,对应的MLC地址为113+256*1=369,即其对应的MLC物理地址为MLC Block page 369;
SLC地址为SLC block1 page 113,对应的MLC地址为113+256*0=113,即其对应的MLC物理地址为MLC Block page113。
实施例四
请参照图2,一种数据写入装置,包括:
数据写入模块,用于接收数据写入请求,根据所述数据写入请求将待写入的数据同时写入闪存中预先组合的SLC块和MLC块,在数据写入过程中,更新写入的数据的物理地址为所述写入的数据对应的SLC地址;
地址更新模块,用于待所述预先组合的SLC块和MLC块的数据写入完成后,根据所述写入的数据对应的SLC地址确定所述写入的数据对应的MLC地址,并更新所述写入的数据的物理地址为所述MLC地址;
释放模块,用于释放写入所述SLC块的数据及所述SLC块与所述MLC块的组合关系。
实施例五
一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现实施例一至实施例三中任一所述的数据写入方法中的各个步骤。
实施例六
请参照图3,一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现实施例一至实施例三中任一所述的一种数据写入方法中的各个步骤。
综上所述,本发明提供的数据写入方法、装置、计算机可读存储介质及电子设备,在闪存数据写入的时候,将SLC和MLC的写入操作同时进行,不仅减少了数据的总体写入时间,而且能够解决flash突然从高速转换为低速,造成flash写入数据不稳定,对硬件损坏较大的问题,提高存储性能的稳定性,同时为了避免同时写入SLC和MLC需要同时记录SLC和MLC的物理地址造成需要同时存储两倍的地址数据,造成存储空间消耗大的问题,在同时写入SLC和MLC的过程中,仅记录SLC的物理地址,待数据写入完成后,根据SLC物理地址确定MLC物理地址,令MLC物理地址替换SLC物理地址以更新地址映射表,并及时释放SLC和MLC的组合,将SLC块中的数据释放,释放的SLC块可以继续循环利用,解决了小容量存储装置没有足够空间存储过多地址列表的问题;在减少数据的总体写入时间的同时减少了对存储空间的消耗,提高了存储性能的稳定性。
在本申请所提供的上述实施例中,应该理解到,所揭露的方法、装置、计算机可读存储介质以及电子设备,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述模块的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个组件或模块可以结合或者可以集成到另一个装置,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或组件或模块的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的组件可以是或者也可以不是物理上分开的,作为组件显示的部件可以是或者也可以不是物理模块,即可以位于一个地方,或者也可以分布到多个网络模块上。可以根据实际的需要选择其中的部分或者全部组件来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能模块可以集成在一个处理模块中,也可以是各个组件单独物理存在,也可以两个或两个以上模块集成在一个模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。
所述集成的模块如果以软件功能模块的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-OnlyMemory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
需要说明的是,对于前述的各方法实施例,为了简便描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明并不受所描述的动作顺序的限制,因为依据本发明,某些步骤可以采用其它顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定都是本发明所必须的。
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其它实施例的相关描述。
以上所述仅为本发明的实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等同变换,或直接或间接运用在相关的技术领域,均同理包括在本发明的专利保护范围内。
Claims (10)
1.一种数据写入方法,其特征在于,包括步骤:
接收数据写入请求,根据所述数据写入请求将待写入的数据同时写入闪存中预先组合的SLC块和MLC块,在数据写入过程中,更新写入的数据的物理地址为所述写入的数据对应的SLC地址;
待所述预先组合的SLC块和MLC块的数据写入完成后,根据所述写入的数据对应的SLC地址确定所述写入的数据对应的MLC地址,并更新所述写入的数据的物理地址为所述MLC地址;
释放写入所述SLC块的数据及所述SLC块与所述MLC块的组合关系。
2.根据权利要求1所述的一种数据写入方法,其特征在于,所述接收数据写入请求之前还包括步骤:
从数据块队列中选取数据块,以三个数据块为一组进行组合,设置其中两个数据块采用SLC模式写入数据,剩余的一个数据块采用MLC模式写入数据,并将其组合信息写入组合数据表;
每写完一个组合,立即执行写入的数据对应的MLC地址的确定、物理地址的更新、所述组合中SLC块的数据的释放以及组合的释放;
所述根据所述写入的数据对应的SLC地址确定所述写入的数据对应的MLC地址包括:
根据写入的数据所在的组合的组合信息和写入的数据对应的SLC地址确定所述写入的数据对应的MLC地址;
所述组合的释放包括将所述组合信息从所述组合数据表中删除。
3.根据权利要求2所述的一种数据写入方法,其特征在于,所述从数据块队列中选取数据块包括:
确定选取的数据块的擦除次数,判断所述擦除次数是否大于或者等于最小擦除次数并且小于或者等于最大擦除次数,若是,则所述选取的数据块可用,将所述选取的数据库作为待组合数据块,并更新所述选取的数据块的擦除次数,若否,则所述选取的数据块不可用。
4.根据权利要求1至3中任一项所述的一种数据写入方法,其特征在于,已写入数据对应的MLC地址的确定和待写入数据的写入同时进行。
5.根据权利要求1至3中任一项所述的一种数据写入方法,其特征在于,判断MLC块的数据是否写满,若写满,则判断其所在的组合的数据写入完成。
6.根据权利要求2或3所述的一种数据写入方法,其特征在于,所述组合信息包括SLC块的编号和与其组合的MLC块的编号;
所述根据写入的数据所在的组合的组合信息和写入的数据对应的SLC地址确定所述写入的数据对应的MLC地址包括:
根据所述写入的数据所在的MLC块的编号和所述组合信息确定与所述MLC块组合的SLC块的编号;
根据所述SLC块的编号确定其写入的数据对应的SLC地址;
根据所述SLC地址和所述SLC块的编号确定写入的数据对应的MLC地址。
7.根据权利要求6所述的一种数据写入方法,其特征在于,所述根据所述SLC地址和所述SLC块的编号确定写入的数据对应的MLC地址包括:
MLC地址=SLC地址+SLC块的编号除以2的余数*SLC块的数据页数。
8.一种数据写入装置,其特征在于,包括:
数据写入模块,用于接收数据写入请求,根据所述数据写入请求将待写入的数据同时写入闪存中预先组合的SLC块和MLC块,在数据写入过程中,更新写入的数据的物理地址为所述写入的数据对应的SLC地址;
地址更新模块,用于待所述预先组合的SLC块和MLC块的数据写入完成后,根据所述写入的数据对应的SLC地址确定所述写入的数据对应的MLC地址,并更新所述写入的数据的物理地址为所述MLC地址;
释放模块,用于释放写入所述SLC块的数据及所述SLC块与所述MLC块的组合关系。
9.一种计算机可读存储介质,其上存储有计算机程序,其特征在于:所述计算机程序被处理器执行时实现如权利要求1-7任意一项所述的一种数据写入方法中的各个步骤。
10.一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现如权利要求1-7任意一项所述的一种数据写入方法中的各个步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010598419.7A CN111930300B (zh) | 2020-06-28 | 2020-06-28 | 数据写入方法、装置、计算机可读存储介质及电子设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010598419.7A CN111930300B (zh) | 2020-06-28 | 2020-06-28 | 数据写入方法、装置、计算机可读存储介质及电子设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111930300A true CN111930300A (zh) | 2020-11-13 |
CN111930300B CN111930300B (zh) | 2024-07-30 |
Family
ID=73316709
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010598419.7A Active CN111930300B (zh) | 2020-06-28 | 2020-06-28 | 数据写入方法、装置、计算机可读存储介质及电子设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111930300B (zh) |
Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20080215801A1 (en) * | 2005-09-29 | 2008-09-04 | Trek 2000 International Ltd. | Portable Data Storage Using Slc and Mlc Flash Memory |
CN101331463A (zh) * | 2005-12-16 | 2008-12-24 | 微软公司 | 优化存储器的写入和磨损性能 |
CN101419573A (zh) * | 2008-12-01 | 2009-04-29 | 成都市华为赛门铁克科技有限公司 | 一种存储管理的方法、***和存储设备 |
JP2010198252A (ja) * | 2009-02-24 | 2010-09-09 | Nec Corp | 不揮発メモリ装置、不揮発メモリの書込み方法、及び不揮発メモリ書込みプログラム |
US20120250408A1 (en) * | 2011-03-28 | 2012-10-04 | Kabushiki Kaisha Toshiba | Memory system, controller, and method for controlling memory system |
US20130282955A1 (en) * | 2012-04-19 | 2013-10-24 | Liam M. Parker | System and method for limiting fragmentation |
CN107562381A (zh) * | 2017-08-30 | 2018-01-09 | 紫光华山信息技术有限公司 | 一种数据处理方法及装置 |
CN108509355A (zh) * | 2018-03-31 | 2018-09-07 | 北京联想核芯科技有限公司 | 一种用于SSD的SLC Cache的方法和装置 |
CN108681435A (zh) * | 2018-05-25 | 2018-10-19 | 郑州云海信息技术有限公司 | 一种固态硬盘的磨损均衡方法、装置、设备及存储介质 |
-
2020
- 2020-06-28 CN CN202010598419.7A patent/CN111930300B/zh active Active
Patent Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20080215801A1 (en) * | 2005-09-29 | 2008-09-04 | Trek 2000 International Ltd. | Portable Data Storage Using Slc and Mlc Flash Memory |
CN101331463A (zh) * | 2005-12-16 | 2008-12-24 | 微软公司 | 优化存储器的写入和磨损性能 |
CN101419573A (zh) * | 2008-12-01 | 2009-04-29 | 成都市华为赛门铁克科技有限公司 | 一种存储管理的方法、***和存储设备 |
JP2010198252A (ja) * | 2009-02-24 | 2010-09-09 | Nec Corp | 不揮発メモリ装置、不揮発メモリの書込み方法、及び不揮発メモリ書込みプログラム |
US20120250408A1 (en) * | 2011-03-28 | 2012-10-04 | Kabushiki Kaisha Toshiba | Memory system, controller, and method for controlling memory system |
US20130282955A1 (en) * | 2012-04-19 | 2013-10-24 | Liam M. Parker | System and method for limiting fragmentation |
CN107562381A (zh) * | 2017-08-30 | 2018-01-09 | 紫光华山信息技术有限公司 | 一种数据处理方法及装置 |
CN108509355A (zh) * | 2018-03-31 | 2018-09-07 | 北京联想核芯科技有限公司 | 一种用于SSD的SLC Cache的方法和装置 |
CN108681435A (zh) * | 2018-05-25 | 2018-10-19 | 郑州云海信息技术有限公司 | 一种固态硬盘的磨损均衡方法、装置、设备及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN111930300B (zh) | 2024-07-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11853549B2 (en) | Index storage in shingled magnetic recording (SMR) storage system with non-shingled region | |
US11243709B2 (en) | Data storage apparatus and operating method thereof | |
CN104238962B (zh) | 向缓存中写入数据的方法及装置 | |
US8892812B2 (en) | Flash memory device and data writing method for a flash memory | |
CN113094003B (zh) | 数据处理方法、数据存储装置及电子设备 | |
CN107391544B (zh) | 列式存储数据的处理方法、装置、设备及计算机储存介质 | |
US8347052B2 (en) | Initializing of a memory area | |
CN112181902B (zh) | 数据库的存储方法、装置及电子设备 | |
CN108733324B (zh) | 一种固态硬盘的数据读写方法、装置、设备及存储介质 | |
US20090319721A1 (en) | Flash memory apparatus and method for operating the same | |
CN106980665A (zh) | 数据字典实现方法、装置及数据字典管理*** | |
US7409527B2 (en) | Bidirectional data storing method | |
CN104598161A (zh) | 数据读取、写入方法和装置及数据存储结构 | |
CN104408126B (zh) | 一种数据库的持久化写入方法、装置和*** | |
CN114647658A (zh) | 一种数据检索方法、装置、设备及机器可读存储介质 | |
CN114721594A (zh) | 一种分布式存储方法、装置、设备及机器可读存储介质 | |
CN112905496A (zh) | 垃圾回收的方法、装置、可读存储介质及电子设备 | |
CN111399753B (zh) | 写入图片的方法和装置 | |
CN111782153A (zh) | 一种基于读取数据的方法、***、设备以及介质 | |
CN111930300B (zh) | 数据写入方法、装置、计算机可读存储介质及电子设备 | |
CN109243517B (zh) | 一种用于NAND Flash不良区块的查找方法、固态硬盘 | |
CN113778911B (zh) | L2p数据缓存方法、装置、可读存储介质及电子设备 | |
CN109960611A (zh) | 数据恢复的方法、装置、电子设备及机器可读存储介质 | |
US20150120991A1 (en) | Data processing system and operating method thereof | |
CN116383098B (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 | ||
CB02 | Change of applicant information |
Address after: 518000 floors 1-3 and 4 of buildings 4 and 8, zone 2, Zhongguan honghualing Industrial South Zone, No. 1213 Liuxian Avenue, Pingshan community, Taoyuan Street, Nanshan District, Shenzhen, Guangdong Applicant after: BIWIN STORAGE TECHNOLOGY Co.,Ltd. Address before: 518000 1st, 2nd, 4th and 6th floors of No.4 factory building of tongfuyu industrial city, Taoyuan Street, Nanshan District, Shenzhen City, Guangdong Province Applicant before: BIWIN STORAGE TECHNOLOGY Co.,Ltd. |
|
CB02 | Change of applicant information | ||
GR01 | Patent grant |