CN107368257A - 固态存储器中的数据巡检方法及装置 - Google Patents
固态存储器中的数据巡检方法及装置 Download PDFInfo
- Publication number
- CN107368257A CN107368257A CN201610319569.3A CN201610319569A CN107368257A CN 107368257 A CN107368257 A CN 107368257A CN 201610319569 A CN201610319569 A CN 201610319569A CN 107368257 A CN107368257 A CN 107368257A
- Authority
- CN
- China
- Prior art keywords
- chained list
- memory block
- carry
- list group
- data page
- 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
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
- G06F3/0616—Improving the reliability of storage systems in relation to life time, e.g. increasing Mean Time Between Failures [MTBF]
-
- 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
-
- 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
- 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/0647—Migration mechanisms
-
- 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]
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)
- Data Exchanges In Wide-Area Networks (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
Abstract
本发明公开了一种固态存储器中的数据巡检方法及装置,属于存储技术领域。该方法包括:在当前巡检周期内,根据所述第一链表组中所挂载的存储块被挂载至所述第一链表组的时间,读取所述第一链表组中所挂载的存储块中存储的有效数据页;将所读取的有效数据页存储至所述启用存储块;将巡检周期内的所启用的启用存储块按照被启用的时间挂载至所述第二链表组,在当前巡检周期的下一个巡检周期开始时,将所述第二链表组作为所述第一链表组,将所述第一链表组作为所述第二链表组。本发明基于数据稳定性的优化,将稳定数据内聚到部分存储块中,非稳定数据可使用的存储块增多,从而提升冗余比,减小写放大及对SSD的磨损,延长SSD使用寿命。
Description
技术领域
本发明涉及存储技术领域,特别涉及一种固态存储器中的数据巡检方法及装置。
背景技术
固态硬盘(Solid State Disk或Solid State Drive),也称作电子硬盘或者固态电子盘,是采用固态电子存储器件实现的硬盘,主要由控制器和存储器组成。固态硬盘在接口规范、物理尺寸、使用方式上和普通硬盘相同,其特别之处在于没有机械结构,利用独有的存储介质NAND Flash特性,以存储块(block)为单位执行写入操作,以页为单位执行擦除操作。SSD固态硬盘摆脱了机械硬盘的磁头,盘片转轴及控制电机等机械部件,没有电机加速旋转的过程,内部不存在任何机械活动部件,不会发生机械故障,也不怕碰撞、冲击和振动。
NAND Flash是一种非易失性随机访问存储介质,其特点是断电后数据不消失。NAND Flash是基于浮栅(Floating Gate)晶体管设计。通过向存储器中的浮置栅极进行充放电来达到写入“0”或者“1”的目的,而通过判决浮置栅极中的电荷量来获得当前存储单元中所存储的数据。
各种泄漏机理的存在,使得电子在浮栅上保存的特性受到严重影响,伴随反复地擦写,通道绝缘层会发生损伤,浮栅中的电子会因为绝缘层受损而加快泄漏电荷,称应力诱导漏电流(SILC),同样使内部阈值电压减小;绝缘层中捕获的电子可能被浮栅反捕获,并且温度越高而越明显,称固有电荷损失(ICL),这会使内部阈值电压减小;这些均被成为数据保持(Data Retention)错误。
数据长时间存放于NAND Flash中存在产生Data Retention错误造成数据丢失的风险,特别是在主机长时间不更新数据的情况下,这种风险也会变大。为了防止Data Retention错误的发生,需采用巡检的方式刷新数据,避免数据被长时间存放。
目前,SSD实现巡检的方法可以为:根据存储逻辑地址到物理地址的映射表,按映射表中逻辑地址的排列顺序,将逻辑地址映射到的物理地址所对应的存储块中的有效数据依次读取出来,并写入新的空白存储块中(空白存储块为没有写入数据的存储块,例如通过垃圾回收模块回收并擦除的存储块)。
现有的SSD巡检方法至少存在以下问题:
由于上述巡检方法为根据逻辑地址对SSD中的存储块进行巡检,这样会使长时间未被擦除的稳定数据和刚被写入的活跃数据在巡检过程中被迁移至同一存储块,由于存储块中活跃数据可能很快就会被更新而变成无效数据页,而稳定数据不会被更新,仍然为有效数据页,这样,在擦除存储块时,需要对未被更新的有效数据页进行迁移,从而增加了写放大。
发明内容
为了解决现有技术的问题,本发明实施例提供了一种固态存储器中的数据巡检方法及装置。所述技术方案如下:
第一方面,提供了一种固态存储器中的数据巡检方法,所述固态存储器包括多个存储块,每个存储块用于存储多个数据页,所述固态存储器中还存储有第一链表组和第二链表组,所述第一链表组挂载有多个存储块,所述第二链表组用于挂载启用存储块,所述启用存储块为被启用以写入数据页的存储块;所述方法包括:在当前巡检周期内,根据所述第一链表组中所挂载的存储块被挂载至所述第一链表组的时间,读取所述第一链表组中所挂载的存储块中存储的有效数据页;将所读取的有效数据页存储至所述启用存储块,所述启用存储块为被用于写入数据页的空白存储块;将巡检周期内的所启用的启用存储块按照启用存储块被启用的时间挂载至所述第二链表组,在当前巡检周期的下一个巡检周期开始时,将所述第二链表组作为所述第一链表组,将所述第一链表组作为所述第二链表组。通过基于数据稳定性的优化,能够将稳定数据内聚到部分存储块中,非稳定数据可使用的存储块增多,从而能够明显提升SSD的冗余比,进而能够达到减小SSD的写放大,减少对SSD的磨损,延长SSD使用寿命的目的。
在本发明的第一方面的第一种可能实现方式中,所述第一链表组包括多个链表,每个链表用于挂载被启用的时间在同一时间段内的存储块;所述根据所述第一链表组中所挂载的存储块被挂载至所述第一链表的时间,读取所述第一链表组中所挂载的存储块中存储的有效数据页包括:根据所述第一链表组中各链表对应的时间段的顺序读取各链表中挂载的存储块中存储的有效数据页;所述将巡检周期内所启用的启用存储块按照存储块被启用的时间挂载至所述第二链表组包括:将所述启用存储块挂载至所述启用存储块被启用的时间所在的时间段对应的链表中。通过根据第一链表组中各时间段的顺序读取各时间段对应的链表中挂载的存储快中存储的有效数据页,以及将所述启用存储块挂载至所述启用存储块被启用的时间所在的时间段对应的链表中,能够保证在每次巡检操作时,都能够按照存储块的启用时间对存储块执行巡检操作。
在本发明的第一方面的第二种可能实现方式中,在读取所述第一链表组中的目标链表所挂载的存储块中的有效数据页时,所述方法进一步包括:为所述目标链表建立多个子链表,每个子链表对应一个无效数据页的个数,且所述子链表按照无效数据页的个数进行排序;确定所述目标链表所挂载的存储块中的无效数据页的个数;根据所确定的无效数据页的个数将目标链表中的存储块挂载至与所确定的无效数据页的个数对应的子链表中;根据所述目标链表中的子链表中对应的无效数据页的个数从多到少的顺序读取各子链表中所挂载的存储块中的有效数据页。通过按照该多个存储块中所包含无效页面的数量从多到少的顺序,依次读取该多个存储块中每个存储块的有效数据页,能够尽快腾出空白存储块,以供写入新数据或者供巡检过程中搬迁数据所用。
在本发明的第一方面的第三种可能实现方式中,在将所读取的有效数据页存储至启用存储块时,所述方法还包括:当所述启用存储块已经存满之后,则获取下一个启用存储块存储所读取的有效数据页。通过将有效数据页存储至启用存储块,并待该启用存储块存满后,获取下一个启用存储块,都能够达到稳定数据的内聚,降低写放大的目的。
在本发明的第一方面的第四种可能实现方式中,所述方法还包括:在在所述存储块中的有效数据页被全部读取之后,将所述存储块从所述第一链表组中摘除。过将在巡检之前,执行回收操作的存储块从该第一链表组中摘除,能够避免在巡检过程中再次对该存储块中的数据进行巡检,从而能够进一步减少巡检过程中的读写次数。
第二方面,提供一种固态存储器中的数据巡检装置,所述装置包括多个功能模块用于执行上述第一方面所述的方法。在一种可能的实现方式中,所述装置还包括其他功能模块用于执行上述第一方面中多种可能的实现方式所述的方法。
第三方面,提供了一种固态存储器中的数据巡检装置,所述装置包括:
处理器;
用于存储处理器可执行指令的存储器;
其中,所述处理器被配置为:在当前巡检周期内,根据所述第一链表组中所挂载的存储块被挂载至所述第一链表组的时间,读取所述第一链表组中所挂载的存储块中存储的有效数据页;将所读取的有效数据页存储至所述启用存储块,所述启用存储块为被用于写入数据页的空白存储块;将巡检周期内的所启用的启用存储块按照启用存储块被启用的时间挂载至所述第二链表组,在当前巡检周期的下一个巡检周期开始时,将所述第二链表组作为所述第一链表组,将所述第一链表组作为所述第二链表组。通过基于数据稳定性的优化,能够将稳定数据内聚到部分存储块中,非稳定数据可使用的存储块增多,从而能够明显提升SSD的冗余比,进而能够达到减小SSD的写放大,减少对SSD的磨损,延长SSD使用寿命的目的。
在本发明的第一方面的第一种可能实现方式中,所述第一链表组包括多个链表,每个链表用于挂载被启用的时间在同一时间段内的存储块;所述根据所述第一链表组中所挂载的存储块被挂载至所述第一链表的时间,读取所述第一链表组中所挂载的存储块中存储的有效数据页包括:根据所述第一链表组中各链表对应的时间段的顺序读取各链表中挂载的存储块中存储的有效数据页;所述将巡检周期内所启用的启用存储块按照存储块被启用的时间挂载至所述第二链表组包括:将所述启用存储块挂载至所述启用存储块被启用的时间所在的时间段对应的链表中。通过根据第一链表组中各时间段的顺序读取各时间段对应的链表中挂载的存储快中存储的有效数据页,以及将所述启用存储块挂载至所述启用存储块被启用的时间所在的时间段对应的链表中,能够保证在每次巡检操作时,都能够按照存储块的启用时间对存储块执行巡检操作。
在本发明的第一方面的第二种可能实现方式中,在读取所述第一链表组中的目标链表所挂载的存储块中的有效数据页时,所述方法进一步包括:为所述目标链表建立多个子链表,每个子链表对应一个无效数据页的个数,且所述子链表按照无效数据页的个数进行排序;确定所述目标链表所挂载的存储块中的无效数据页的个数;根据所确定的无效数据页的个数将目标链表中的存储块挂载至与所确定的无效数据页的个数对应的子链表中;根据所述目标链表中的子链表中对应的无效数据页的个数从多到少的顺序读取各子链表中所挂载的存储块中的有效数据页。通过按照该多个存储块中所包含无效页面的数量从多到少的顺序,依次读取该多个存储块中每个存储块的有效数据页,能够尽快腾出空白存储块,以供写入新数据或者供巡检过程中搬迁数据所用。
在本发明的第一方面的第三种可能实现方式中,在将所读取的有效数据页存储至启用存储块时,所述方法还包括:当所述启用存储块已经存满之后,则获取下一个启用存储块存储所读取的有效数据页。通过将有效数据页存储至启用存储块,并待该启用存储块存满后,获取下一个启用存储块,都能够达到稳定数据的内聚,降低写放大的目的。
在本发明的第一方面的第四种可能实现方式中,所述方法还包括:在在所述存储块中的有效数据页被全部读取之后,将所述存储块从所述第一链表组中摘除。过将在巡检之前,执行回收操作的存储块从该第一链表组中摘除,能够避免在巡检过程中再次对该存储块中的数据进行巡检,从而能够进一步减少巡检过程中的读写次数。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明实施例提供的一种固态存储器的结构示意图;
图2A是本发明实施例提供的一种固态存储器中的数据巡检方法流程图;
图2B是本发明实施例提供的一种第一链表组的示意图;
图2C是本发明实施例提供的一种目标链表的示意图;
图3是本发明实施例提供的一种固态存储器中的数据巡检装置框图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明实施方式作进一步地详细描述。
图1是本发明实施例提供的一种固态存储器的结构示意图,该固态存储器包括多个存储块,每个存储块用于存储多个数据页,所述固态存储器中还存储有第一链表组和第二链表组,所述第一链表组挂载有多个存储块,所述第二链表组用于挂载启用存储块,所述启用存储块为被启用以写入数据页的存储块。
参见图1,该固态存储器主要由控制器、存储器及内存组成。存储器用于提供数据存储服务,控制器为数据写入操作分配数据处理路径,以供主机或服务器通过对固态存储器中存储的数据进行访问,从而进行如数据读取、写入、删除等过程,该存储器即为固态存储阵列,该固态存储阵列可以是闪存阵列或者DRAM(Dynamic Random Access Memory,动态随机存储器)阵列,该控制器是具有硬件写保护功能的固态硬盘的核心部件,用于发出固态存储器的读取、写入数据和垃圾回收等请求,该内存中存储有程序指令,该控制器执行内存中的程序指令以对存储器中数据的进行处理。
由于数据长时间存放于NAND Flash中存在产生Data Retention错误造成数据丢失的风险,特别是在主机长时间不更新数据的情况下,这种风险也会变大。为了防止Data Retention错误的发生,需采用巡检的方式刷新数据,避免数据被长时间存放。
为了避免由于存储介质发生电子泄露,造成存储数据发生错误的情况,通常SSD会周期性地对已存储的数据执行巡检搬移操作,以解决上述问题。由于SSD的使用寿命与该SSD的可擦写次数有关,而在巡检过程中,会对SSD中的存储块(block)重复执行擦除操作,因此会影响SSD的使用寿命。为了尽量减小巡检操作对SSD寿命的影响,本发明提供了一种数据巡检方法,该方法通过引入链表组,管理不同时间段内被用于存储数据的存储块,通过挂载顺序执行巡检操作,以达到稳定数据内聚的目的,从而使得在后续巡检过程中,降低写放大,减小对SSD的擦写次数,进而减小巡检操作对SSD寿命的影响。
图2A是本发明实施例提供的一种固态存储器中的数据巡检方法流程图,所述固态存储器包括多个存储块,每个存储块用于存储多个数据页,所述固态存储器中还存储有第一链表组和第二链表组,所述第一链表组挂载有多个存储块,所述第二链表组用于挂载启用存储块,所述启用存储块为被启用以写入数据页的存储块;参见图2A,该方法包括:
201、在当前巡检周期内,根据第一链表组中所挂载的存储块被挂载至该第一链表组的时间,读取该第一链表组中所挂载的存储块中存储的有效数据页。
该第一链表组存储于该固态存储器中,该第一链表组包括多个链表,每个链表用于挂载被启用的时间在同一时间段内的存储块;该被启用时间可以是存储块写入数据的时间,也可以是存储块执行擦除操作的时间;该第一链表组所包括链表数量由巡检周期和该第一链表组内挂载时间段的跨度确定。对于确定该挂载时间段的跨度,可以设置为任一固定值,本发明实施例对该挂载时间段跨度的具体数值及确定方法均不作限定。
需要说明的是,SSD的所有存储块中的每个存储块对应一个索引值,根据每个索引值能够唯一确定对应的存储块;例如,该SSD中所有存储块组成一个一维数组,每个存储块在该一维数组中的逻辑位置即为对应存储块的索引值。为了实现SSD中存储块的挂载操作,每个存储块对应一个结构体,每个存储块对应的结构体均包括一个前驱结点指针和后继结点指针,在存储块挂载至链表后,则获取被挂载的存储块的在所述链表中的前一个存储块的索引值,将该索引值存储至被挂载的存储块的结构体的前驱指针处,并将被挂载的存储块的索引值存储至所述前一个存储块的后驱指针处。例如,某一链表下挂载有顺序挂载的a、b和c三个存储块,则b存储块对应结构体的前驱结点指针中存储有a存储块的索引值,b存储块对应结构体的后继结点指针中存储有c存储块的索引值。
需要说明的是,在根据第一链表组中所挂载的存储块被挂载至该第一链表组的时间,读取该第一链表组中所挂载的存储块中存储的有效数据页之前,根据每个存储块的启用时间从先到后的顺序,将存储块挂载至第一链表组的相应时间段对应的链表下。
通过根据巡检周期和挂载时间段跨度,确定该第一链表组所包括链表数量,能够实现将存储块按启用时间的先后顺序依次挂载至该第一链表组的相应链表下,便于对该第一链表组下所挂载的存储块中的数据进行巡检和管理。
例如,当一个巡检周期为7个自然日,且该第一链表组的挂载时间段的跨度为一个小时,即同一个小时内启用的存储块挂载在同一个链表下,则该第一链表组所包括的链表数量为7*24个。需要说明的是,如果在某一个小时内,未启用任何存储块,则该段时间对应的该第一链表组中的链表下可以不挂载存储块。
通过根据每个存储块的启用时间从先到后的顺序,将存储块挂载至该第一链表组中,能够在后续对已存储数据进行巡检时,按照该第一链表组所挂载的存储块的挂载顺序巡检该第一链表组中已挂载的存储块。
该根据第一链表组中所挂载的存储块被挂载至该第一链表的时间,读取该第一链表组中所挂载的存储块中存储的有效数据页包括:根据第一链表组中各时间段的顺序读取各时间段对应的链表中挂载的存储块中存储的有效数据页。也即是,根据挂载时间段的跨度,在巡检周期的第一时间段对该第一链表组的第一个链表下所挂载的存储块进行巡检,在巡检周期的第二时间段对该第一链表组的第二个链表下所挂载的存储块进行巡检,以此类推,直至完成对该第一链表组下所挂载的所有存储块的巡检操作。
如图2B所示,该图为该第一链表组的示意图,其中,链表A、B、C、D分别表示该第一链表组中各挂载时间段对应的用于挂载存储块的链表,a1、a2、a3、a4表示依次挂载在该第一链表组中A链表下的存储块,同理,b1、b2、b3表示依次挂载在该第一链表组中B链表下的存储块,c1、c2、c3、c4表示依次挂载在该第一链表组中C链表下的存储块,d1、d2表示依次挂载在该第一链表组中D链表下的存储块。
在图2B中,根据该第一链表组中所挂载存储块的写入时间从先到后的顺序,读取该第一链表组中所挂载存储块内的有效数据页,即为依次读取A、B、C、D链表下所挂载存储块中的数据,具体地,对于A链表下所挂载的存储块,a1存储块中数据的启用时间先于a2,a2存储块中数据的启用时间先于a3,a3存储块中数据的启用时间先于a4,因此,挂载顺序依次为a1、a2、a3、a4,在读取该链表下所挂载存储块中的数据时,也按照该启用时间的先后顺序依次读取a1、a2、a3、a4存储块的有效数据页。
在读取该第一链表组中的目标链表所挂载的存储块中的有效数据页时,该方法进一步包括:为该目标链表建立多个子链表,每个子链表对应一个无效数据页的个数,且该子链表按照无效数据页的个数进行排序;确定该目标链表所挂载的存储块中的无效数据页的个数;根据所确定的无效数据页的个数将目标链表中的存储块挂载至与所确定的无效数据页的个数对应的子链表中;根据该目标链表中的子链表中对应的无效数据页的个数从多到少的顺序读取各子链表中所挂载的存储块中的有效数据页。
例如,当每个存储块包含128个页面时,该目标链表中包含129个子链表,也即是,每个存储块中包含有效数据页的个数可以为0-128个,有129种情况,不包含有效数据页的存储块挂载在该目标链表中的第1个子链表下,含有1个无效数据页的存储块挂载在该目标链表的第2个子链表下,含有128个无效数据页的存储块挂载在该目标链表的第129个子链表下,该目标链表可以用图2C表示,在图2C中,如果需要按照无效数据页多少进行排序的存储块中不存在包含对应数量无效数据页的存储块,则在该目标链表的对应子链表下不挂载存储块。对于该目标链表所挂载存储块的情况,依次按顺序遍历并回收相应存储块中的有效数据页,对于不包含有效数据页的存储块,也即是挂载在该目标链表的第一个子链表下的存储块,由于不包含有效数据页的存储块,在回收时,只需直接擦除即可作为空白存储块使用,无需进行有效数据搬迁操作,因此,在进行存储块回收时,优先处理该目标链表的第一个子链表下的存储块,再依次按该目标链表的挂载顺序依次对其他存储块进行处理。
例如,在图2C中,方框中的数字表示用于挂载包含相应个数有效数据页的存储块的子链表,不包含有效数据页的存储块a1、a2、a3和a4挂载在该目标链表的第一个子链表下,即标号为0的子链表,包含1个有效数据页的存储块b1、b2和b3挂载在该目标链表的第二个子链表下,即标号为1的子链表,依次类推,包含128个有效数据页的存储块n1、n2、n3和n4挂载在该目标链表的第129个子链表下,即标号为128的子链表。
需要说明的是,对于该目标链表的任一子链表下所挂载的多个无效数据页数量相同的多个存储块,可以按照挂载顺序依次读取每个存储块中的有效数据页,也可以不按照挂载顺序,随机读取该多个存储块中每个存储块的有效数据页,还可以按照其他顺序读取该多个存储块中每个存储块的数据,本发明实施例对此不作限定。
通过当该第一链表组内的一个链表中挂载有多个存储块时,按照该多个存储块中所包含无效数据页的数量从多到少的顺序,依次读取该多个存储块中每个存储块的有效数据页,能够尽快腾出空白存储块,以供写入新数据或者供巡检过程中搬迁数据所用。
202、将所读取的有效数据页存储至启用存储块,该启用存储块为被用于写入数据页的空白存储块。
该启用存储块可以用于存储巡检过程中搬迁的数据,也可以用于存储新写入的数据,本发明实施例对此不作限定。通过将巡检过程中读取到的该第一链表组中的有效数据页存储至启用存储块,而由于该第一链表组是将存储块按启用时间挂载,因此按照该第一链表组的挂载顺序进行巡检,能够将启用时间较早的存储块中的数据存储至同一启用存储块中,达到了稳定数据内聚的目的,当再次对该存储块进行巡检时,能够将该存储块中所存储的全部稳定数据进行迁移,如果该存储块中的稳定数据分散在多个存储块中,就需要对该多个存储块中的稳定数据进行迁移,因此将稳定数据内聚到一个存储块中,能够避免对数据进行分次写入、擦除操作,进而能够减小写入放大,延长SSD的使用寿命。其中,稳定数据是指SSD已存储数据中,长时间未被覆盖写或者删除的数据,即可认为是稳定数据,反之则为非稳定数据。
203、将巡检周期内的所启用的启用存储块按照启用存储块被启用的时间挂载至第二链表组。
该将巡检周期内启用存储块按照存储块被启用的时间挂载至第二链表组的具体方法为:将该启用存储块挂载至该启用存储块被启用的时间所在的时间段对应的链表中。
当该启用存储块未填满时,按照该第一链表组中存储块的挂载顺序,继续读取下一存储块中的有效数据页,并将该有效数据页写入该启用存储块中,直至填满该启用存储块。当该启用存储块已经存满之后,则获取下一个启用存储块存储所读取的有效数据页,并将已存满的该启用存储块挂载至第二链表组的对应链表下。
在启用该启用存储块时,按照该启用存储块的启用时间将该启用存储块挂载至第二链表组下,该第二链表组用于按照存储块的启用时间进行挂载。需要说明的是,该启用存储块的启用时间可以是指对该启用存储块执行写入操作的时间,也可以是指对该启用存储块执行擦除操作的时间,该擦除操作是指在执行本次写入操作之前执行的擦除操作。
在该SSD中维持第一链表组和第二链表组两个链表组,当在当前巡检周期内,对该第一链表组中所挂载存储块中的数据执行巡检操作时,将在该当前巡检周期内执行写入操作的存储块,按照启用时间顺序依次挂载至该第二链表组中;在该当前巡检周期的下一巡检周期内,对该第二链表组中所挂载存储块中的数据执行巡检操作时,将在该巡检周期内执行写入操作的存储块,按照启用时间顺序依次挂载至该第一链表组中。
需要说明的是,由于对任一存储块中的数据执行巡检操作是指将该存储块中的有效数据从该存储块读出,并写入另一存储块中的过程;因此,在对第一链表组中所挂载存储块中的数据执行巡检操作时,在该当前巡检周期内执行写入操作的存储块即启用存储块,既包括根据应用的写入请求写入数据的存储块,也包括巡检过程中写入从所述第一链表组中挂载的存储块搬迁的数据的存储块。
如果在该SSD中维持两个用于管理巡检过程的链表组,包括第一链表组和第二链表组,使得在巡检过程中能够按照该两个链表组中所挂载的存储块的挂载顺序执行巡检操作。通过上述数据巡检方法进行巡检的过程可以为:如果一个巡检周期为7个自然日,且该第一链表组及第二链表组内挂载时间段的跨度为一个小时,该第一链表组和该第二链表组分别包含7*24个链表,按照该存储块的启用时间顺序,将该写入数据的存储块依次挂载至该第一链表组的对应链表下,例如,在第一个小时内启用的存储块挂载至该第一链表组的第一个链表中,在第二个小时内启用的存储块挂载至该第一链表组的第二个链表中,以此类推,挂载至同一链表下的存储块,启用时间间隔不超过一个小时。
也即是,在第一个巡检周期内,不执行巡检操作,仅将新写入数据的存储块执行挂载操作,在第二个巡检周期内,对该第一链表组所挂载存储块中的数据执行巡检操作,并将新写入数据的存储块挂载至该第二链表组中,该新写入存储块中的数据包括巡检过程中搬迁的有效数据和根据应用的写入请求新写入的数据。
在对该第一链表组执行巡检操作时,在该第二链表组的第一个挂载时间段,对该第一链表组的第一个链表下所挂载存储块中的有效数据进行搬迁,在该第二链表组的第二个挂载时间段,向该第二链表组的第二个链表下挂载存储块时,对该第一链表组的第二个链表下所挂载存储块中的有效数据进行搬迁,以此类推。
当第二巡检周期结束后,对该第一链表组所挂载存储块中的数据巡检完毕,挂载在该第一链表组下的存储块中的有效数据被搬迁后,这些存储块被回收或被擦除后,挂载至擦除块链表组或空白块链表组下,以等待被擦除或重新写入数据。在第三巡检周期,对该第二链表组所挂载存储块中的数据进行巡检,并将新写入数据的存储块挂载至该第一链表组中。
通过按照启用时间将存储块挂载至该第二链表组的对应链表下,能够达到稳定数据内聚的目的,当再次对该存储块进行巡检时,能够将该存储块中所存储的全部稳定数据进行迁移,如果该存储块中的稳定数据分散在多个存储块中,就需要对该多个存储块中的稳定数据进行迁移,因此将稳定数据内聚到一个存储块中,能够避免对数据进行分次写入、擦除操作,进而能够在对第一链表组中所挂载存储块中的数据进行巡检的过程中减小SSD写放大,延长SSD的使用寿命。
在本发明另一实施例中,在SSD的运行过程中,该第一链表组中所挂载的任一存储块在未被巡检之前被回收时,该存储块从该第一链表组中摘除,如果该存储块中有效数据搬迁完毕,但未执行擦除操作,将该存储块从该第一链表中摘除,并将该存储块挂载至擦除块链表组中,如果该存储块执行了擦除操作,将该存储块挂载至空白块链表组中。
通过将在巡检之前,执行回收操作的存储块从该第一链表组中摘除,能够避免在巡检过程中再次对该存储块中的数据进行巡检,从而能够进一步减少巡检过程中的读写次数。
在巡检周期的预设时间段内,执行对该第一链表组中所挂载的全部存储块的巡检操作。该预设时间段可以设置为任一时间段,本发明实施例对此不作限定。例如,如果一个巡检周期为7个自然日,且该第一链表组内挂载时间段的跨度为一个小时,该第一链表组包含7*24个链表,在该第二链表组中的第6*24+1个链表对应的挂载时间段,对该第一链表组的第1~7个链表下所挂载存储块中的数据进行巡检,该7个链表下所挂载存储块中的数据在一个小时内巡检完毕,在该第二链表组中的第6*24+2个链表对应的挂载时间段,对该第一链表组的第8~14个链表下所挂载存储块中的数据进行巡检,该7个链表下所挂载存储块中的数据在一个小时内巡检完毕,以此类推,可以根据巡检周期,确定一个挂载时间跨度内需要完成巡检的链表数量。
也即是,在该巡检周期的最后一天,完成对该第一链表组中所挂载存储块中所有数据的巡检过程。在下一个巡检周期,前6天将执行写入操作的存储块按照写入时间顺序依次挂载至该第二链表组的对应链表下,第7天根据上述方法对该第一链表组中所挂载存储块中的数据执行巡检操作。
在SSD不同的使用环境下,对新启用的存储块按照写入时间或擦除时间挂载至相应的链表组下,并在不同的巡检周期,对挂载在不同链表组的数据进行数据巡检,都能够达到稳定数据的内聚,降低写放大的目的。
204、在当前巡检周期的下一个巡检周期开始时,将该第二链表组作为该第一链表组,将该第一链表组作为该第二链表组,重复执行步骤201。
在下一个巡检周期,采用与巡检第一链表组中所挂载存储块相同的方法,执行下一周期的巡检操作,依次类推。
通过根据启用时间从先到后的顺序,读取所述第一链表组中所挂载存储块内的有效数据,并将读取到的有效数据存储至空白存储块,能够在巡检过程中,将稳定数据和非稳定数据分开存储到不同的存储块中,能够极大地减少稳定数据所占据的容量,提升非稳定数据对应的冗余空间,从而能够有效地降低写放大,减少磨损,提升性能和稳定性,延长使用寿命;进一步地,通过将在巡检之前,执行回收操作的存储块从该第一链表组中摘除,能够避免在巡检过程中再次对该存储块中的数据进行巡检,从而能够进一步减少巡检过程中的读写次数;通过按照所包含无效页面数量从多到少的顺序,依次对多个待回收的存储块执行回收操作,能够使含有无效页面数量最多的存储块较快地被回收,进而能够达到优化垃圾回收的目的。
例如,容量为100GB的SSD,实际物理容量为128GB,如果该SSD中已存储了100GB的有效数据,整盘冗余比为(128-100)/100=28%,在这100GB的有效数据中,有50GB的数据为稳定数据,很少被修改或删除,另外50GB数据为非稳定数据,存储时间较短,且经常被修改或删除,需要说明的是,128GB的实际容量均参与了读写过程。
在执行巡检操作时,50GB稳定数据对应的存储块中包含部分无效页面,也即是,该50GB稳定数据实际占据约(50/100)*128=64GB的存储块,通过上述巡检操作后,有效数据被搬迁到空白存储块中,这些有效数据之前占据的存储块被释放,该巡检过程,即为将稳定数据内聚到新的存储块中,并将原来有效数据占据的存储块中所包含的无效数据释放出来的过程。
经过巡检操作后,该SSD中原来100GB的有效数据,其中50GB的稳定数据内聚至接近于50GB的存储块中,另外50GB的非稳定数据的可用容量为128-50=78GB,冗余比为(78-50)/50=56%,该冗余比为原来整盘冗余比的2倍,由于此时该盘相当于这样一块逻辑盘,逻辑容量为50GB,物理容量为78GB,已用容量50GB,该盘实际冗余比为56%,因此该盘具有更多的存储空间可供垃圾回收时存储有效数据使用,能够有效减少垃圾回收时搬迁的数据量,从而减小该SSD的写放大,延长该SSD的使用寿命。
进一步地,该100GB有效数据中50GB的非稳定数据也内聚到新的存储块中,由于非稳定数据存储时间较短,且经常被修改或删除,因此存储非稳定数据的存储块中的无效页面会较快地成为无效数据,通过在垃圾回收时,优先回收包含无效页面多的存储块,能够使得包含无效页面数量较多的存储块能够较快地被回收。
通过基于数据稳定性的优化,能够将稳定数据内聚到部分存储块中,非稳定数据可使用的存储块增多,从而能够明显提升SSD的冗余比,通过按照多个待回收存储块中每个存储块包含无效页面从多到少的顺序,依次回收该多个待回收存储块,能够较快得到可供使用的空白存储块,进而能够优化垃圾回收的效果,从而达到减小SSD的写放大,减少对SSD的磨损,延长SSD使用寿命的目的。
图3是本发明实施例提供的一种固态存储器中的数据巡检装置框图。参照图3,该装置包括读取模块301,存储模块302和处理模块303。
读取模块301,用于在当前巡检周期内,根据第一链表组中所挂载的存储块被挂载至所述第一链表组的时间,读取所述第一链表组中所挂载的存储块中存储的有效数据页;
存储模块302,用于将所读取的有效数据页存储至启用存储块;
处理模块303,用于将巡检周期内的所启用的启用存储块按照启用存储块被启用的时间挂载至第二链表组,在当前巡检周期的下一个巡检周期开始时,将所述第二链表组作为所述第一链表组,将所述第一链表组作为所述第二链表组。
在本发明提供的第一种可能实现方式中,所述第一链表组包括多个链表,每个链表用于挂载被启用的时间在同一时间段内的存储块;
所述读取模块301用于根据第一链表组中各链表对应的时间段的顺序读取各链表中挂载的存储块中存储的有效数据页;
所述处理模块303用于将所述启用存储块挂载至所述启用存储块被启用的时间所在的时间段对应的链表中。
在本发明提供的第二种可能实现方式中,所述装置进一步包括:
链表建立模块,用于为所述目标链表建立多个子链表,每个子链表对应一个无效数据页的个数,且所述子链表按照无效数据页的个数进行排序;
确定模块,用于确定所述目标链表所挂载的存储块中的无效数据页的个数;
挂载模块,用于根据所确定的无效数据页的个数将目标链表中的存储块挂载至与所确定的无效数据页的个数对应的子链表中;
所述读取模块301还用于根据所述目标链表中的子链表中对应的无效数据页的个数从多到少的顺序读取各子链表中所挂载的存储块中的有效数据页。
在本发明提供的第三种可能实现方式中,所述装置还包括:
获取模块,当所述启用存储块已经存满之后,则获取下一个启用存储块存储所读取的有效数据页。
在本发明提供的第四种可能实现方式中,所述装置还包括:
摘除模块,用于在所述存储块中的有效数据页被全部读取之后,将所述存储块从所述第一链表组中摘除。
需要说明的是:上述实施例提供的数据巡检装置在进行数据巡检时,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将设备的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。另外,上述实施例提供的数据巡检装置与数据巡检方法实施例属于同一构思,其具体实现过程详见方法实施例,这里不再赘述。
本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。
以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (10)
1.一种固态存储器中的数据巡检方法,所述固态存储器包括多个存储块,每个存储块用于存储多个数据页,所述固态存储器中还存储有第一链表组和第二链表组,所述第一链表组挂载有多个存储块,所述第二链表组用于挂载启用存储块,所述启用存储块为被启用以写入数据页的存储块;其特征在于,所述方法包括:
在当前巡检周期内,根据所述第一链表组中所挂载的存储块被挂载至所述第一链表组的时间,读取所述第一链表组中所挂载的存储块中存储的有效数据页;将所读取的有效数据页存储至所述启用存储块;
将巡检周期内的所启用的启用存储块按照被启用的时间挂载至所述第二链表组,在当前巡检周期的下一个巡检周期开始时,将所述第二链表组作为所述第一链表组,将所述第一链表组作为所述第二链表组。
2.根据权利要求1所述的方法,其特征在于,所述第一链表组包括多个链表,每个链表用于挂载被启用的时间在同一时间段内的存储块;
所述根据所述第一链表组中所挂载的存储块被挂载至所述第一链表的时间,读取所述第一链表组中所挂载的存储块中存储的有效数据页包括:
根据所述第一链表组中各链表对应的时间段的顺序读取各链表中挂载的存储块中存储的有效数据页;
所述将巡检周期内所启用的启用存储块按照被启用的时间挂载至所述第二链表组包括:
将所述启用存储块挂载至所述启用存储块被启用的时间所在的时间段对应的链表中。
3.根据权利要求2所述的方法,其特征在于,在读取所述第一链表组中的目标链表所挂载的存储块中的有效数据页时,所述方法进一步包括:
为所述目标链表建立多个子链表,每个子链表对应一个无效数据页的个数,且所述子链表按照无效数据页的个数进行排序;
确定所述目标链表所挂载的存储块中的无效数据页的个数;
根据所确定的无效数据页的个数将目标链表中的存储块挂载至与所确定的无效数据页的个数对应的子链表中;
根据所述目标链表中的子链表中对应的无效数据页的个数从多到少的顺序读取各子链表中所挂载的存储块中的有效数据页。
4.根据权利要求1所述的方法,其特征在于,在将所读取的有效数据页存储至启用存储块时,所述方法还包括:
当所述启用存储块已经存满之后,则获取下一个启用存储块存储所读取的有效数据页。
5.根据权利要求1所述的方法,其特征在于,在所述存储块中的有效数据页被全部读取之后,将所述存储块从所述第一链表组中摘除。
6.一种固态存储器中的数据巡检装置,所述固态存储器包括多个存储块,每个存储块用于存储多个数据页,所述固态存储器中还存储有第一链表组和第二链表组,所述第一链表组挂载有多个存储块,所述第二链表组用于挂载启用存储块,所述启用存储块为被启用以写入数据页的存储块;其特征在于,所述装置包括:
读取模块,用于在当前巡检周期内,根据所述第一链表组中所挂载的存储块被挂载至所述第一链表组的时间,读取所述第一链表组中所挂载的存储块中存储的有效数据页;
存储模块,用于将所读取的有效数据页存储至所述启用存储块,所述启用存储块为被用于写入数据页的空白存储块;
处理模块,用于将巡检周期内的所启用的启用存储块按照启用存储块被启用的时间挂载至所述第二链表组,在当前巡检周期的下一个巡检周期开始时,将所述第二链表组作为所述第一链表组,将所述第一链表组作为所述第二链表组。
7.根据权利要求6所述的装置,其特征在于,所述第一链表组包括多个链表,每个链表用于挂载被启用的时间在同一时间段内的存储块;
所述读取模块用于根据第一链表组中各链表对应的时间段的顺序读取各链表中挂载的存储块中存储的有效数据页;
所述处理模块用于将所述启用存储块挂载至所述启用存储块被启用的时间所在的时间段对应的链表中。
8.根据权利要求7所述的装置,其特征在于,所述装置进一步包括:
链表建立模块,用于为要被读取的目标链表建立多个子链表,每个子链表对应一个无效数据页的个数,且所述子链表按照无效数据页的个数进行排序;
确定模块,用于确定所述目标链表所挂载的存储块中的无效数据页的个数;
挂载模块,用于根据所确定的无效数据页的个数将所述目标链表中的存储块挂载至与所确定的无效数据页的个数对应的子链表中;
所述读取模块还用于根据所述目标链表中的子链表中对应的无效数据页的个数从多到少的顺序读取各子链表中所挂载的存储块中的有效数据页。
9.根据权利要求6所述的装置,其特征在于,所述装置还包括:
获取模块,当所述启用存储块已经存满之后,则获取下一个启用存储块存储所读取的有效数据页。
10.根据权利要求6所述的装置,其特征在于,所述装置还包括:
摘除模块,用于在所述存储块中的有效数据页被全部读取之后,将所述存储块从所述第一链表组中摘除。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610319569.3A CN107368257B (zh) | 2016-05-12 | 2016-05-12 | 固态存储器中的数据巡检方法及装置 |
PCT/CN2017/083988 WO2017193967A1 (zh) | 2016-05-12 | 2017-05-11 | 固态存储器中的数据巡检方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610319569.3A CN107368257B (zh) | 2016-05-12 | 2016-05-12 | 固态存储器中的数据巡检方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN107368257A true CN107368257A (zh) | 2017-11-21 |
CN107368257B CN107368257B (zh) | 2019-11-12 |
Family
ID=60266187
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201610319569.3A Active CN107368257B (zh) | 2016-05-12 | 2016-05-12 | 固态存储器中的数据巡检方法及装置 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN107368257B (zh) |
WO (1) | WO2017193967A1 (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110058795A (zh) * | 2018-01-19 | 2019-07-26 | 慧荣科技股份有限公司 | 管理闪存模块的方法及相关的闪存控制器及电子装置 |
CN111078122A (zh) * | 2018-10-18 | 2020-04-28 | 阿里巴巴集团控股有限公司 | 数据处理方法、装置和设备 |
CN111324288A (zh) * | 2018-12-14 | 2020-06-23 | 北京兆易创新科技股份有限公司 | 一种存储器 |
CN116126254A (zh) * | 2023-04-19 | 2023-05-16 | 苏州浪潮智能科技有限公司 | 磁盘冗余阵列巡检方法、装置、计算机设备及存储介质 |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111324284B (zh) * | 2018-12-14 | 2024-02-23 | 兆易创新科技集团股份有限公司 | 一种存储器 |
CN110597469A (zh) * | 2019-10-23 | 2019-12-20 | Oppo广东移动通信有限公司 | 一种存储分区写保护方法、装置及计算机可读存储介质 |
CN111078498A (zh) * | 2019-12-03 | 2020-04-28 | 山东华芯半导体有限公司 | 一种ssd中数据巡检的方法 |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5826046A (en) * | 1994-12-30 | 1998-10-20 | International Business Machines Corporation | Method and apparatus for polling and selecting any paired device in any drawer |
CN1400531A (zh) * | 2001-08-03 | 2003-03-05 | 华为技术有限公司 | 快速存储器文件的处理方法 |
CN101329656A (zh) * | 2008-05-06 | 2008-12-24 | 无锡紫芯集成电路系统有限公司 | 一种Nand-Flash存储系统的管理方法 |
CN101425041A (zh) * | 2007-10-30 | 2009-05-06 | 安凯(广州)软件技术有限公司 | 在nand flash存储器上建立fat文件系统的优化方法 |
CN102097128A (zh) * | 2010-11-25 | 2011-06-15 | 中国人民大学 | 一种基于闪存的自适应缓冲区置换方法 |
CN102768645A (zh) * | 2012-06-14 | 2012-11-07 | 国家超级计算深圳中心(深圳云计算中心) | 混合缓存的固态硬盘预取方法和固态硬盘ssd |
CN103049713A (zh) * | 2012-12-20 | 2013-04-17 | 华为技术有限公司 | 对存储设备中数据进行巡检的方法、设备及系统 |
CN103226516A (zh) * | 2012-01-31 | 2013-07-31 | 上海华虹集成电路有限责任公司 | 将Nandflash的物理块按无效页数量进行排序的方法 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101354681B (zh) * | 2008-09-23 | 2010-12-01 | 美商威睿电通公司 | 存储器系统、非易失性存储器的磨损均衡方法及装置 |
KR20160008365A (ko) * | 2014-07-14 | 2016-01-22 | 삼성전자주식회사 | 저장 매체, 메모리 시스템 및 메모리 시스템에서의 저장 영역 관리 방법 |
-
2016
- 2016-05-12 CN CN201610319569.3A patent/CN107368257B/zh active Active
-
2017
- 2017-05-11 WO PCT/CN2017/083988 patent/WO2017193967A1/zh active Application Filing
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5826046A (en) * | 1994-12-30 | 1998-10-20 | International Business Machines Corporation | Method and apparatus for polling and selecting any paired device in any drawer |
CN1400531A (zh) * | 2001-08-03 | 2003-03-05 | 华为技术有限公司 | 快速存储器文件的处理方法 |
CN101425041A (zh) * | 2007-10-30 | 2009-05-06 | 安凯(广州)软件技术有限公司 | 在nand flash存储器上建立fat文件系统的优化方法 |
CN101329656A (zh) * | 2008-05-06 | 2008-12-24 | 无锡紫芯集成电路系统有限公司 | 一种Nand-Flash存储系统的管理方法 |
CN102097128A (zh) * | 2010-11-25 | 2011-06-15 | 中国人民大学 | 一种基于闪存的自适应缓冲区置换方法 |
CN103226516A (zh) * | 2012-01-31 | 2013-07-31 | 上海华虹集成电路有限责任公司 | 将Nandflash的物理块按无效页数量进行排序的方法 |
CN102768645A (zh) * | 2012-06-14 | 2012-11-07 | 国家超级计算深圳中心(深圳云计算中心) | 混合缓存的固态硬盘预取方法和固态硬盘ssd |
CN103049713A (zh) * | 2012-12-20 | 2013-04-17 | 华为技术有限公司 | 对存储设备中数据进行巡检的方法、设备及系统 |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110058795A (zh) * | 2018-01-19 | 2019-07-26 | 慧荣科技股份有限公司 | 管理闪存模块的方法及相关的闪存控制器及电子装置 |
CN110058795B (zh) * | 2018-01-19 | 2022-04-05 | 慧荣科技股份有限公司 | 管理闪存模块的方法及相关的闪存控制器及电子装置 |
CN111078122A (zh) * | 2018-10-18 | 2020-04-28 | 阿里巴巴集团控股有限公司 | 数据处理方法、装置和设备 |
CN111078122B (zh) * | 2018-10-18 | 2024-01-12 | 阿里巴巴集团控股有限公司 | 数据处理方法、装置和设备 |
CN111324288A (zh) * | 2018-12-14 | 2020-06-23 | 北京兆易创新科技股份有限公司 | 一种存储器 |
CN111324288B (zh) * | 2018-12-14 | 2024-02-23 | 兆易创新科技集团股份有限公司 | 一种存储器 |
CN116126254A (zh) * | 2023-04-19 | 2023-05-16 | 苏州浪潮智能科技有限公司 | 磁盘冗余阵列巡检方法、装置、计算机设备及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
WO2017193967A1 (zh) | 2017-11-16 |
CN107368257B (zh) | 2019-11-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107368257A (zh) | 固态存储器中的数据巡检方法及装置 | |
DE102017104150B4 (de) | Abnutzungsausgleich in Speichervorrichtungen | |
CN107967121A (zh) | 数据写入方法和存储设备 | |
CN104484283B (zh) | 一种降低固态硬盘写放大的方法 | |
CN104317742B (zh) | 一种优化空间管理的自动精简配置方法 | |
US20140089564A1 (en) | Method of data collection in a non-volatile memory | |
CN101354681B (zh) | 存储器系统、非易失性存储器的磨损均衡方法及装置 | |
CN111638852A (zh) | 将数据写入固态硬盘的方法及固态硬盘 | |
CN103678150B (zh) | 固态硬盘使用方法及装置 | |
CN106469122B (zh) | 有效数据合并方法、存储器控制器与存储器储存装置 | |
US20140129758A1 (en) | Wear leveling in flash memory devices with trim commands | |
US20160328179A1 (en) | Multiple virtually over-provisioned, virtual storage devices created from a single physical storage device | |
CN106326133A (zh) | 存储系统、存储管理装置、存储器、混合存储装置及存储管理方法 | |
CN101030167A (zh) | 闪存的区块管理方法 | |
CN107357534A (zh) | 一种闪存块模式的动态切换方法及系统 | |
CN101419573A (zh) | 一种存储管理的方法、系统和存储设备 | |
US20080120456A1 (en) | Method for flash memory data management | |
CN104899154B (zh) | 基于嵌入式系统混合主存的页面管理方法 | |
CN109960471B (zh) | 数据存储方法、装置、设备以及存储介质 | |
CN104598386B (zh) | 通过追踪和利用二级映射索引重复利用固态驱动器块 | |
CN110096221A (zh) | 存储器系统及其控制方法 | |
WO2023116235A1 (zh) | 数据处理方法、系统、设备、存储系统及介质 | |
CN107291405A (zh) | 一种NorFlash的数据管理方法与装置 | |
CN112130749A (zh) | 数据储存装置以及非挥发式存储器控制方法 | |
CN106528443A (zh) | 适用于星载数据管理的flash管理系统及方法 |
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 |