CN109656483B - 一种固态盘静态磨损均衡方法及装置 - Google Patents
一种固态盘静态磨损均衡方法及装置 Download PDFInfo
- Publication number
- CN109656483B CN109656483B CN201811554144.6A CN201811554144A CN109656483B CN 109656483 B CN109656483 B CN 109656483B CN 201811554144 A CN201811554144 A CN 201811554144A CN 109656483 B CN109656483 B CN 109656483B
- Authority
- CN
- China
- Prior art keywords
- wear
- flash memory
- domain
- data
- blist
- 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
- 230000003068 static effect Effects 0.000 title claims abstract description 41
- 238000000034 method Methods 0.000 title claims abstract description 40
- 230000005012 migration Effects 0.000 claims abstract description 55
- 238000013508 migration Methods 0.000 claims abstract description 55
- 230000008569 process Effects 0.000 claims abstract description 22
- 238000011084 recovery Methods 0.000 claims abstract description 16
- 239000007787 solid Substances 0.000 claims description 22
- 238000013500 data storage Methods 0.000 claims description 16
- 238000005299 abrasion Methods 0.000 claims description 9
- 230000007246 mechanism Effects 0.000 claims description 5
- 230000001960 triggered effect Effects 0.000 claims description 5
- 238000013507 mapping Methods 0.000 claims description 4
- 238000004064 recycling Methods 0.000 claims description 4
- 230000009191 jumping Effects 0.000 claims description 3
- 230000009467 reduction Effects 0.000 claims description 3
- 238000006116 polymerization reaction Methods 0.000 abstract description 3
- 235000012431 wafers Nutrition 0.000 description 10
- XRKZVXDFKCVICZ-IJLUTSLNSA-N SCB1 Chemical compound CC(C)CCCC[C@@H](O)[C@H]1[C@H](CO)COC1=O XRKZVXDFKCVICZ-IJLUTSLNSA-N 0.000 description 8
- 101100439280 Saccharomyces cerevisiae (strain ATCC 204508 / S288c) CLB1 gene Proteins 0.000 description 8
- 230000000694 effects Effects 0.000 description 5
- 230000008859 change Effects 0.000 description 4
- 238000010586 diagram Methods 0.000 description 4
- 101100243745 Schizosaccharomyces pombe (strain 972 / ATCC 24843) ptb1 gene Proteins 0.000 description 3
- 238000007726 management method Methods 0.000 description 3
- 238000013519 translation Methods 0.000 description 3
- 230000005540 biological transmission Effects 0.000 description 2
- 101000622430 Homo sapiens Vang-like protein 2 Proteins 0.000 description 1
- 102100023520 Vang-like protein 2 Human genes 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 238000011217 control strategy Methods 0.000 description 1
- 238000007796 conventional method Methods 0.000 description 1
- 238000013523 data management Methods 0.000 description 1
- 230000007423 decrease Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012545 processing Methods 0.000 description 1
- 230000007704 transition 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
- 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
- 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
-
- 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
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C16/00—Erasable programmable read-only memories
- G11C16/02—Erasable programmable read-only memories electrically programmable
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Human Computer Interaction (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
Abstract
本发明公开了一种固态盘静态磨损均衡方法及装置,本发明基于热数据轮转放置的静态磨损均衡策略,从减少数据迁移量和提升数据迁移效率两个方面降低静态磨损均衡过程中的数据迁移开销,将固态盘空间划分为多个域采用轮转的方式进行静态磨损均衡,在对一个域进行静态磨损均衡时,将负载中的热数据集中写入到该域中,以利用热数据提升低磨损块中冷数据的聚合度,减少冷数据迁移量,利用闪存的内部并行性提高静态磨损均衡过程中的冷数据迁移效率,在数据迁移总量一定的情况下快速高效的完成数据迁移的任务,利用热数据加速磨损低磨损块,提升此过程中对低磨损块垃圾回收的效率,进一步减少静态磨损均衡过程中的数据迁移量。
Description
技术领域
本发明涉及闪存固态盘存储领域,具体涉及一种固态盘静态磨损均衡方法及装置。
背景技术
闪存固态盘内部主要分为前端和后端两部分,如图1所示。固态盘的前端主要包含主机接口逻辑(Host Interface Logic)、DRAM缓存单元、闪存芯片控制器(Flash ChipController)、闪存转换层(Flash Translation Layer)等模块。
主机接口逻辑实现了固态盘与主机之间进行通信的协议,例如传统的AHCI协议和支持多队列的NVMe协议等。DRAM缓存单元用来缓存应用程序数据和闪存管理所需要的数据结构等。闪存芯片控制器负责将指令和数据发送到后端闪存芯片中,或者将数据从后端闪存芯片中读出。闪存转换层负责处理固态盘的I/O请求,并实现了一系列面向后端闪存的管理算法,如地址映射、垃圾回收、磨损均衡、坏块管理等。
固态盘后端呈层次式结构,如图1所示。这种层次式结构使得固态盘可以通过通道级、芯片级、晶圆级、分组级并行性并行执行访问固态盘的I/O请求。
固态盘后端的通道(Channel)通过闪存芯片控制器与固态盘前端相连接。每个通道可以独立工作,不同通道可以完全并发的进行命令、地址、数据的传输。
每个通道上连接了多个闪存芯片(Chip)。连接在同一通道上的闪存芯片可以相互独立工作,但是需要共享所连接的通道进行命令、地址、数据的传输。
每个闪存芯片内部集成了多个晶圆(Die)。同一闪存芯片内的每个晶圆拥有独立的R/B工作状态信号线,可以相互独立的执行闪存读写指令,但是需要共享闪存芯片与通道之间进行信息传输的接口电路。
每个晶圆内部集成了多个分组(Plane)。同一晶圆内的多个分组可以并行的将数据从各自的目标页中读取到寄存器中,或者将各自寄存器中的数据并行的写入到目标页中。但是这种多分组读(Multi-Plane Read)和多分组写(Multi-Plane Write)操作不仅要求并行执行的请求具有相同的读/写类型,还要求目标地址具有相同的块内偏移。
每个分组内部包含了多个块(Block),每个块内包含了多个页(Page)。页是闪存芯片的最小读写单位,块是闪存芯片的最小擦除单元。闪存芯片中每个页在被写入数据后,在其所在块被擦除之前不能被写入新的数据。闪存芯片内的每个块的可擦除次数是一定的,当达到最大可擦除次数后会被标记为坏块并结束其使用寿命。
磨损均衡是固态盘闪存转换层中一种可延长固态盘整体使用寿命的数据管理方法。磨损均衡通过均匀分布固态盘中每个块的擦除次数防止部分块提前达到最大可擦除次数,是提升固态盘使用寿命的主要技术之一。固态盘磨损均衡分为两大类,即动态磨损均衡和静态磨损均衡。动态磨损均衡总是将新数据写入到磨损次数最少的可用块中,从而避免对磨损较严重块的擦除。动态磨损均衡不会在固态盘内部产生额外的数据迁移开销,但是会导致冷数据占据的块长时间不被擦除,最终导致冷数据块与其它块之间的磨损不均衡问题不断加重。
静态磨损均衡将磨损次数较少的块中的冷数据定期迁移到擦除次数最多的块中,从而降低磨损最严重的块被再次擦除的机率。静态磨损均衡可以达到更好的全盘磨损均衡效果,但是会在固态盘内引入了大量的数据迁移操作,对固态盘的整体性能产生影响。
固态盘静态磨损可以达到更好的全盘磨损均衡效果,但是会在固态盘内引入了大量的数据迁移操作,对固态盘的整体性能产生影响。
发明内容
本发明要解决的技术问题是:针对现有技术的上述问题,提供一种固态盘静态磨损均衡方法及装置,本发明从减少数据迁移量和提升数据迁移效率两个方面降低静态磨损均衡过程中的数据迁移开销,能够减少冷数据迁移量,提高冷数据迁移效率,在数据迁移总量一定的情况下快速高效的完成数据迁移的任务。
为了解决上述技术问题,本发明采用的技术方案为:
一种固态盘静态磨损均衡方法,其特征在于实施步骤包括:
1)在固态盘中基于轮询原则指定一个域作为热数据放置域,其余域则作为冷热数据放置域,所述域为将固态盘中空间进行逻辑划分的单位;
2)接收针对固态盘的I/O请求;
3)判断I/O请求的类型是否为写,如果为写则跳转执行步骤5);否则跳转执行步骤4);
4)根据I/O请求的地址映射信息获取物理地址,读取并返回数据,结束并退出;
5)针对I/O请求中的数据页进行识别分类为热数据和冷数据,将热数据写入热数据放置域中,将冷数据写入冷数据放置域中;
6)检测获取热数据放置域内所有闪存块的磨损次数,根据各个闪存块的磨损次数确定热数据放置域的状态为磨损均衡状态、次磨损均衡状态、磨损极度不平衡状态之一,如果处于磨损均衡状态或者次磨损均衡状态则跳转执行步骤2);如果处于磨损极度不平衡状态则跳转执行步骤7);
7)对热数据放置域内的闪存块进行冷数据迁移操作;
8)对热数据放置域内的低磨损块进行加速磨损,使得热数据放置域从极度磨损不均衡状态再次回到磨损均衡状态;跳转执行步骤1)。
可选地,步骤5)中针对I/O请求中的数据页进行识别分类为热数据和冷数据具体是指将I/O请求中的数据页中更新更频繁的前1/R部分的数据页作为热数据,其余部分数据页作为冷数据,其中R为将固态盘中空间进行逻辑划分为域的数量。
可选地,步骤6)的详细步骤包括:检测获取热数据放置域内所有闪存块的磨损次数x中的最小值a,如果热数据放置域内所有闪存块的磨损次数x均满足a≤x≤a+t,则判定热数据放置域处于磨损均衡状态,热数据放置域可以继续接收写请求,并对热数据放置域内任意块进行垃圾回收,跳转执行步骤2);如果热数据放置域内任意闪存块的磨损次数x大于a+t,则判定热数据放置域处于次磨损均衡状态,热数据放置域可以继续接收写请求,并对热数据放置域内磨损次数达到a+t+m次的闪存块采取保护机制禁止垃圾回收操作进行擦除,跳转执行步骤2);如果热数据放置域内磨损次数x大于a+t+m/2以上的闪存块超过热数据放置域内闪存块总数的一半时,则判定热数据放置域处于磨损极度不平衡状态,跳转执行步骤7);其中,t为预设的域内最大可容许的磨损差异度,m为不同域之间的最大磨损次数差。
可选地,热数据放置域内所有闪存块的磨损次数按照其擦除次数分别记录在相应链表中,每个链表标记为Blist(i),其中i表示这个链表中块的擦除次数;一个磨损次数为n的闪存块在被垃圾回收并擦除后,则从块链表Blist(n)移动到块链表Blist(n+1)中。
可选地,所述热数据放置域内磨损次数x大于a+t+m/2以上的闪存块超过热数据放置域内闪存块总数的一半具体是指链表Blist(a+m+t/2)到链表Blist(a+m+t)中闪存块的总数达到该热数据放置域内闪存块总数的一半;其中,t为预设的域内最大可容许的磨损差异度,m为不同域之间的最大磨损次数差。
可选地,步骤7)的详细步骤包括:
7.1)在Blist(a)链表到Blist(a+m-1)链表中选择属于同一个晶圆但不同分组的多个块同时作为数据迁移的源闪存块SCB;在每个分组中设置两个空闲闪存块分别作为数据迁移的串行写入目标闪存块STB和并行写入目标闪存块PTB;
7.2)在源闪存块SCB中寻找可以并行读取的有效页,将这些有效页通过Multi-Plane Read指令读出后,再调用Multi-Plane Write指令写入到各自对应的并行写入目标闪存块PTB中;对于剩下的有效页则每次从各分组的源闪存块SCB中读出一个有效页,然后将这些有效页利用Multi-Plane Write指令写入到并行写入目标闪存块PTB中;当一个分组中的源闪存块SCB中有效数据都迁移完毕的时候,将转换为用串行写入目标闪存块STB接收剩余分组中的有效页,在串行写入目标闪存块STB接收有效页时,数据迁移操作转化为完全串行的读取和写入方式进行;
7.3)在完成对Blist(a)链表到Blist(a+m-1)链表中有效数据的迁移后,将这些闪存块擦除并分别上移到Blist(a+1)链表到Blist(a+m)链表中,此时热数据放置域中所有块的最低磨损次数由a变为a+1,其中热数据放置域内所有闪存块的磨损次数x中的最小值。
可选地,步骤8)中对热数据放置域内的低磨损块进行加速磨损的详细步骤包括:继续使用热数据对Blist(a+1)链表到Blist(a+m-1)链表中的闪存块进行填充,热数据写入的顺序为先写Blist(a+1)链表中的闪存块、再写Blist(a+2)链表中的闪存块,随着热数据放置域内的可用块总数的减少,垃圾回收操作被触发;在垃圾回收的过程中,优先对Blist(a+1)链表中的块进行垃圾回收,在垃圾回收过程中,选择将被回收块中的有效页迁移到Blist(a+m+t/2)链表中的块,如果Blist(a+m+t/2)中无可用空闲闪存块,则从Blist(a+m+t/2+1)链表进行寻找;当完成对Blist(a+1)链表中闪存块的垃圾回收和磨损后,这些闪存块从Blist(a+1)链表上移到Blist(a+2)链表中,此时热数据放置域内所有块进一步规整到Blist(a+2)链表到Blist(a+m+t)链表中;继续利用热数据从Blist(a+2)链表中的块开始向该域中写入热数据,直到Blist(a+1)链表到Blist(a+m-1)链表中的块都被清空之后,完成对该热数据放置域的静态磨损均衡过程,在此过程中热数据放置域内所有块的最大磨损差异度从m+t减少到t次,该热数据放置域从极度磨损不均衡状态再次回到磨损均衡状态。
本发明还提供一种固态盘静态磨损均衡装置,包括固态盘和设于固态盘中的控制设备,所述控制设备被编程以执行本发明前述固态盘静态磨损均衡方法的步骤。
和现有技术相比,本发明具有下述优点:本发明基于热数据轮转放置的静态磨损均衡策略,从减少数据迁移量和提升数据迁移效率两个方面降低静态磨损均衡过程中的数据迁移开销,将固态盘空间划分为多个域采用轮转的方式进行静态磨损均衡,在对一个域进行静态磨损均衡时,将负载中的热数据集中写入到该域中,以利用热数据提升低磨损块中冷数据的聚合度,减少冷数据迁移量,利用闪存的内部并行性提高静态磨损均衡过程中的冷数据迁移效率,在数据迁移总量一定的情况下快速高效的完成数据迁移的任务,利用热数据加速磨损低磨损块,提升此过程中对低磨损块垃圾回收的效率,进一步减少静态磨损均衡过程中的数据迁移量。
附图说明
图1为现有闪存固态盘内部结构示意图。
图2为本发明实施例方法的基本流程示意图。
图3为本发明实施例中基于域的固态盘内部空间划分示意图。
图4为本发明实施例中磨损均衡状态变化及块磨损次数变化过程。
图5为本发明实施例中数据迁移时的并(串)行写入目标闪存块。
图6为本发明实施例中热数据放置域内的冷数据迁移流程图。
具体实施方式
如图2所示,本实施例固态盘静态磨损均衡方法的实施步骤包括:
1)在固态盘中基于轮询原则指定一个域(Region)作为热数据放置域,其余域则作为冷热数据放置域,域为将固态盘中空间进行逻辑划分的单位;如图3所示,本实施例中将固态盘中空间进行逻辑划分为Region0~Region3一共四个域,基于轮询原则指定一个域(Region)作为热数据放置域时,第一次指定Region0为热数据放置域,下一次则指定Region1为热数据放置域,依次类推完成针对Region0~Region3的一轮操作,实现域间的一轮静态磨损均衡。
2)接收针对固态盘的I/O请求;
3)判断I/O请求的类型是否为写,如果为写则跳转执行步骤5);否则跳转执行步骤4);
4)根据I/O请求的地址映射信息获取物理地址,读取并返回数据,结束并退出;
5)针对I/O请求中的数据页进行识别分类为热数据和冷数据,将热数据写入热数据放置域中,将冷数据写入冷数据放置域中;
6)检测获取热数据放置域内所有闪存块的磨损次数,根据各个闪存块的磨损次数确定热数据放置域的状态为磨损均衡状态、次磨损均衡状态、磨损极度不平衡状态之一,如果处于磨损均衡状态或者次磨损均衡状态则跳转执行步骤2);如果处于磨损极度不平衡状态则跳转执行步骤7);
7)对热数据放置域内的闪存块进行冷数据迁移操作;
8)对热数据放置域内的低磨损块进行加速磨损,使得热数据放置域从极度磨损不均衡状态再次回到磨损均衡状态;跳转执行步骤1)。
本实施例中,热数据集中写入可以利用热数据更新频率高的特性,提升热数据放置域内低磨损块中冷数据的聚合度。此外,还可以在加速磨损低磨损块时提升垃圾回收效率,减少数据迁移量。
针对I/O请求中的数据页进行识别分类为热数据和冷数据可以利用传统方法来进行区分,本实施例中热数据是由负载的写请求量和域的数量决定的,步骤5)中针对I/O请求中的数据页进行识别分类为热数据和冷数据具体是指将I/O请求中的数据页中更新更频繁(一段时间内写请求量更多)的前1/R部分的数据页作为热数据,其余部分数据页作为冷数据,其中R为将固态盘中空间进行逻辑划分为域的数量。
本实施例中,步骤6)的详细步骤包括:检测获取热数据放置域内所有闪存块的磨损次数x中的最小值a,如果热数据放置域内所有闪存块的磨损次数x均满足a≤x≤a+t,则判定热数据放置域处于磨损均衡状态,热数据放置域可以继续接收写请求,并对热数据放置域内任意块进行垃圾回收,跳转执行步骤2);如果热数据放置域内任意闪存块的磨损次数x大于a+t,则判定热数据放置域处于次磨损均衡状态,热数据放置域可以继续接收写请求,并对热数据放置域内磨损次数达到a+t+m次的闪存块采取保护机制禁止垃圾回收操作进行擦除,跳转执行步骤2);如果热数据放置域内磨损次数x大于a+t+m/2以上的闪存块超过热数据放置域内闪存块总数的一半时,则判定热数据放置域处于磨损极度不平衡状态,跳转执行步骤7);其中,t为预设的域内最大可容许的磨损差异度,m为不同域之间的最大磨损次数差。
本实施例中,引入磨损差异度作为评估热数据放置域磨损状态的主要标准。热数据放置域的磨损差异度是指该域内所有块磨损次数的最大差异值。域内磨损差异度可以将热数据放置域内的块擦除次数分布控制在一个特定的范围内,以保证域内任意两个块的磨损度不会相差过大,使域内各块处于近似磨损均衡的效果。各域间同样使用粗粒度的磨损差异度控制策略,使域间各块处于近似磨损均衡的效果,从而达到固态盘全盘磨损均衡的效果。本实施例中设定热数据放置域内最大可容许的磨损差异度为t,不同域之间的最大磨损次数差为m,即:固态盘内各域间的最大磨损次数可以最多相差m次。图4所示为热数据放置域磨损均衡状态变化及磨损次数变化过程,且每一轮静态磨损均衡之间磨损次数最多相差m次。热数据放置域根据其内部块的擦除次数分布情况,在磨损均衡、次磨损均衡、极度不均衡三种状态间循环变化。
如图2所示,假设热数据放置域内所有块的磨损次数的最小值为a,则当域内每个块的磨损次数x满足a<=x<=a+t时,该域处于磨损均衡状态。此时,该域可以继续接收写请求,并对域内任意块进行垃圾回收。如果热数据放置域内有块的磨损次数超过a+t次,则该域进入次磨损均衡状态。此时,该域可以继续接收写请求。但需要对磨损次数达到a+t+m次的块采取保护机制,禁止垃圾回收操作再次对这些块进行擦除。如果热数据放置域内擦除次数达到a+t+m/2次以上的块达到该域内闪存块总数的一半时,这个域进入磨损极度不平衡状态。对处于极度不平衡状态的域触发冷数据迁移操作。
本实施例中,热数据放置域内所有闪存块的磨损次数按照其擦除次数分别记录在相应链表中,每个链表标记为Blist(i),其中i表示这个链表中块的擦除次数;一个磨损次数为n的闪存块在被垃圾回收并擦除后,则从块链表Blist(n)移动到块链表Blist(n+1)中。
本实施例中,热数据放置域内磨损次数x大于a+t+m/2以上的闪存块超过热数据放置域内闪存块总数的一半具体是指链表Blist(a+m+t/2)到链表Blist(a+m+t)中闪存块的总数达到该热数据放置域内闪存块总数的一半;其中,t为预设的域内最大可容许的磨损差异度,m为不同域之间的最大磨损次数差。
本实施例中,步骤7)的详细步骤包括:
7.1)在Blist(a)链表到Blist(a+m-1)链表中选择属于同一个晶圆但不同分组的多个块同时作为数据迁移的源闪存块SCB(Source Block);在每个分组中设置两个空闲闪存块分别作为数据迁移的串行写入目标闪存块STB(Serial Target Block)和并行写入目标闪存块PTB(Parallel Target Block),如图5所示,其中源闪存块0(SCB0)和源闪存块1(SCB1)为属于同一个晶圆但不同分组(一个属于分组Plane0、另一个属于分组Plane1)的多个块同时作为数据迁移的源闪存块SCB;分组Plane0中的并行写入目标块0(PTB0)中Page0~Page1为有效页、其余页为空白页,串行写入目标块0(STB0)中Page0~Page3为有效页、其余页为空白页;分组Plane1中的并行写入目标块1(PTB1)中Page0~Page1为有效页、其余页为空白页,串行写入目标块1(STB1)中Page0~Page2为有效页、其余页为空白页;
7.2)在源闪存块SCB中寻找可以并行读取的有效页,将这些有效页通过Multi-Plane Read指令读出后,再调用Multi-Plane Write指令写入到各自对应的并行写入目标闪存块PTB中;对于剩下的有效页则每次从各分组的源闪存块SCB中读出一个有效页,然后将这些有效页利用Multi-Plane Write指令写入到并行写入目标闪存块PTB中;当一个分组中的源闪存块SCB中有效数据都迁移完毕的时候,将转换为用串行写入目标闪存块STB接收剩余分组中的有效页,在串行写入目标闪存块STB接收有效页时,数据迁移操作转化为完全串行的读取和写入方式进行;如图5和图6所示,以完成SCB0、SCB1迁移为例,如果SCB0、SCB1存在可以并行读取的有效页,则从SCB0、SCB1并行读取的有效页,然后并行写入PTB0、PTB1中;否则,如果SCB0、SCB1都存在有效页成立,则从SCB0、SCB1中串行读取,然后再并行写入PTB0、PTB1中;如果SCB0、SCB1都存在有效页不能成立,则从SCB0、SCB1中串行读取,然后再串行写入PTB0、PTB1中,从而完成SCB0、SCB1的迁移;
7.3)在完成对Blist(a)链表到Blist(a+m-1)链表中有效数据的迁移后,将这些闪存块擦除并分别上移到Blist(a+1)链表到Blist(a+m)链表中,此时热数据放置域中所有块的最低磨损次数由a变为a+1,其中热数据放置域内所有闪存块的磨损次数x中的最小值。
在冷数据迁移过程中,利用闪存的内部并行性提高静态磨损均衡过程中的数据迁移效率,在数据迁移总量一定的情况下快速高效的完成数据迁移的任务。每个域的基本组成单元为晶圆,以便于利用闪存芯片的Mult-Plane高级指令实现静态磨损均衡过程中数据的并行迁移。每个域可以包含多个不同通道上不同芯片内的晶圆,因此不会对固态盘内部通道级和芯片级并行性的利用产生影响。在完成冷数据迁移操作后,对该域内低磨损块进行加速磨损。通过加速磨损过程,该域内所有块的磨损差异度从m+t逐渐减小到t次,该域从极度磨损不均衡状态再次回到磨损均衡状态。在当前热数据放置域重新恢复到磨损均衡状态后,将下一个域作为新的热数据放置域,并开始对下一个域中闪存块的磨损次数分布进行规整。在每一次完整的状态变换过程中,该域内最低磨损次数将会被提升m次。参见图4,当所有域内的最低块擦除次数都被提升m次之后,表明完成了一次完整的热数据轮转过程,并重新开始下一轮的热数据轮转放置。在每一轮热数据轮转放置开始时,将第一个域作为热数据放置域,并将识别的热数据不断写入到该域中。随着更新频率极高的热数据不断写入,该域中多数块的擦除次数会逐步增加,并最终到达Blist(a+m+t)链表中。此时,对这些磨损最为严重的闪存块采取保护机制,禁止垃圾回收操作再次对这些块进行擦除。继续将热数据注入到该区域中,直到Blist(a+m+t/2)链表到Blist(a+m+t)链表中闪存块的总数达到该域内闪存块总数的一半时,这个域进入磨损极度不平衡状态,开始触发冷数据迁移操作。
本实施例中,步骤8)中对热数据放置域内的低磨损块进行加速磨损的详细步骤包括:继续使用热数据对Blist(a+1)链表到Blist(a+m-1)链表中的闪存块进行填充,热数据写入的顺序为先写Blist(a+1)链表中的闪存块、再写Blist(a+2)链表中的闪存块,随着热数据放置域内的可用块总数的减少,垃圾回收操作被触发;在垃圾回收的过程中,优先对Blist(a+1)链表中的块进行垃圾回收(以加速对低擦除次数块的磨损),在垃圾回收过程中,选择将被回收块中的有效页迁移到Blist(a+m+t/2)链表中的块,如果Blist(a+m+t/2)中无可用空闲闪存块,则从Blist(a+m+t/2+1)链表进行寻找;当完成对Blist(a+1)链表中闪存块的垃圾回收和磨损后,这些闪存块从Blist(a+1)链表上移到Blist(a+2)链表中,此时热数据放置域内所有块进一步规整到Blist(a+2)链表到Blist(a+m+t)链表中;继续利用热数据从Blist(a+2)链表中的块开始向该域中写入热数据,直到Blist(a+1)链表到Blist(a+m-1)链表中的块都被清空之后,完成对该热数据放置域的静态磨损均衡过程,在此过程中热数据放置域内所有块的最大磨损差异度从m+t减少到t次,该热数据放置域从极度磨损不均衡状态再次回到磨损均衡状态。
此外,本实施例还提供一种固态盘静态磨损均衡装置,包括固态盘和设于固态盘中的控制设备,该控制设备被编程以执行本实施例前述固态盘静态磨损均衡方法的步骤。
以上所述仅是本发明的优选实施方式,本发明的保护范围并不仅局限于上述实施例,凡属于本发明思路下的技术方案均属于本发明的保护范围。应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理前提下的若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。
Claims (7)
1.一种固态盘静态磨损均衡方法,其特征在于实施步骤包括:
1)在固态盘中基于轮询原则指定一个域作为热数据放置域,其余域则作为冷热数据放置域,所述域为将固态盘中空间进行逻辑划分的单位;
2)接收针对固态盘的I/O请求;
3)判断I/O请求的类型是否为写,如果为写则跳转执行步骤5);否则跳转执行步骤4);
4)根据I/O请求的地址映射信息获取物理地址,读取并返回数据,结束并退出;
5)针对I/O请求中的数据页进行识别分类为热数据和冷数据,将热数据写入热数据放置域中,将冷数据写入冷数据放置域中;
6)检测获取热数据放置域内所有闪存块的磨损次数,根据各个闪存块的磨损次数确定热数据放置域的状态为磨损均衡状态、次磨损均衡状态、磨损极度不平衡状态之一,如果处于磨损均衡状态或者次磨损均衡状态则跳转执行步骤2);如果处于磨损极度不平衡状态则跳转执行步骤7);
7)对热数据放置域内的闪存块进行冷数据迁移操作;
8)对热数据放置域内的低磨损块进行加速磨损,使得热数据放置域从极度磨损不均衡状态再次回到磨损均衡状态;跳转执行步骤1);
步骤6)的详细步骤包括:检测获取热数据放置域内所有闪存块的磨损次数x中的最小值a,如果热数据放置域内所有闪存块的磨损次数x均满足a≤x≤a+t,则判定热数据放置域处于磨损均衡状态,热数据放置域可以继续接收写请求,并对热数据放置域内任意块进行垃圾回收,跳转执行步骤2);如果热数据放置域内任意闪存块的磨损次数x大于a+t,则判定热数据放置域处于次磨损均衡状态,热数据放置域可以继续接收写请求,并对热数据放置域内磨损次数达到a+t+m次的闪存块采取保护机制禁止垃圾回收操作进行擦除,跳转执行步骤2);如果热数据放置域内磨损次数x大于a+t+m/2以上的闪存块超过热数据放置域内闪存块总数的一半时,则判定热数据放置域处于磨损极度不平衡状态,跳转执行步骤7);其中,t为预设的域内最大可容许的磨损差异度,m为不同域之间的最大磨损次数差。
2.根据权利要求1所述的固态盘静态磨损均衡方法,其特征在于,步骤5)中针对I/O请求中的数据页进行识别分类为热数据和冷数据具体是指将I/O请求中的数据页中更新更频繁的前1/R部分的数据页作为热数据,其余部分数据页作为冷数据,其中R为将固态盘中空间进行逻辑划分为域的数量。
3.根据权利要求2所述的固态盘静态磨损均衡方法,其特征在于,热数据放置域内所有闪存块的磨损次数按照其擦除次数分别记录在相应链表中,每个链表标记为Blist(i),其中i表示这个链表中块的擦除次数;一个磨损次数为n的闪存块在被垃圾回收并擦除后,则从块链表Blist(n)移动到块链表Blist(n+1)中。
4.根据权利要求3所述的固态盘静态磨损均衡方法,其特征在于,所述热数据放置域内磨损次数x大于a+t+m/2以上的闪存块超过热数据放置域内闪存块总数的一半具体是指链表Blist(a+m+t/2)到链表Blist(a+m+t)中闪存块的总数达到该热数据放置域内闪存块总数的一半;其中,t为预设的域内最大可容许的磨损差异度,m为不同域之间的最大磨损次数差。
5.根据权利要求3所述的固态盘静态磨损均衡方法,其特征在于,步骤7)的详细步骤包括:
7.1)在Blist(a) 链表到Blist(a+m-1)链表中选择属于同一个晶圆但不同分组的多个块同时作为数据迁移的源闪存块SCB;在每个分组中设置两个空闲闪存块分别作为数据迁移的串行写入目标闪存块STB和并行写入目标闪存块PTB;
7.2)在源闪存块SCB中寻找可以并行读取的有效页,将这些有效页通过Multi-PlaneRead指令读出后,再调用Multi-Plane Write指令写入到各自对应的并行写入目标闪存块PTB中;对于剩下的有效页则每次从各分组的源闪存块SCB中读出一个有效页,然后将这些有效页利用Multi-Plane Write指令写入到并行写入目标闪存块PTB中;当一个分组中的源闪存块SCB中有效数据都迁移完毕的时候,将转换为用串行写入目标闪存块STB接收剩余分组中的有效页,在串行写入目标闪存块STB接收有效页时,数据迁移操作转化为完全串行的读取和写入方式进行;
7.3)在完成对Blist(a) 链表到Blist(a+m-1)链表中有效数据的迁移后,将这些闪存块擦除并分别上移到Blist(a+1) 链表到Blist(a+m)链表中,此时热数据放置域中所有块的最低磨损次数由a变为a+1,其中热数据放置域内所有闪存块的磨损次数x中的最小值。
6.根据权利要求3所述的固态盘静态磨损均衡方法,其特征在于,步骤8)中对热数据放置域内的低磨损块进行加速磨损的详细步骤包括:继续使用热数据对Blist(a+1) 链表到Blist(a+m-1) 链表中的闪存块进行填充,热数据写入的顺序为先写Blist(a+1) 链表中的闪存块、再写Blist(a+2) 链表中的闪存块,随着热数据放置域内的可用块总数的减少,垃圾回收操作被触发;在垃圾回收的过程中,优先对Blist(a+1)链表中的块进行垃圾回收,在垃圾回收过程中,选择将被回收块中的有效页迁移到Blist(a+m+t/2) 链表中的块,如果Blist(a+m+t/2)中无可用空闲闪存块,则从Blist(a+m+t/2+1) 链表进行寻找;当完成对Blist(a+1) 链表中闪存块的垃圾回收和磨损后,这些闪存块从Blist(a+1) 链表上移到Blist(a+2) 链表中,此时热数据放置域内所有块进一步规整到Blist(a+2) 链表到Blist(a+m+t)链表中;继续利用热数据从Blist(a+2)链表中的块开始向该域中写入热数据,直到Blist(a+1) 链表到Blist(a+m-1) 链表中的块都被清空之后,完成对该热数据放置域的静态磨损均衡过程,在此过程中热数据放置域内所有块的最大磨损差异度从m+t减少到t次,该热数据放置域从极度磨损不均衡状态再次回到磨损均衡状态。
7.一种固态盘静态磨损均衡装置,包括固态盘和设于固态盘中的控制设备,其特征在于,所述控制设备被编程以执行权利要求1~6中任意一项所述固态盘静态磨损均衡方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811554144.6A CN109656483B (zh) | 2018-12-19 | 2018-12-19 | 一种固态盘静态磨损均衡方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811554144.6A CN109656483B (zh) | 2018-12-19 | 2018-12-19 | 一种固态盘静态磨损均衡方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109656483A CN109656483A (zh) | 2019-04-19 |
CN109656483B true CN109656483B (zh) | 2022-02-15 |
Family
ID=66114881
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811554144.6A Active CN109656483B (zh) | 2018-12-19 | 2018-12-19 | 一种固态盘静态磨损均衡方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109656483B (zh) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111159058B (zh) * | 2019-12-27 | 2022-03-04 | 深圳大普微电子科技有限公司 | 一种磨损均衡方法、装置及非易失性的存储设备 |
US11494111B2 (en) * | 2020-12-17 | 2022-11-08 | Micron Technology, Inc. | Data operation based on valid memory unit count |
CN114356213B (zh) * | 2021-11-29 | 2023-07-21 | 重庆邮电大学 | 一种numa架构下nvm磨损均衡的并行空间管理方法 |
CN114924690B (zh) * | 2022-02-23 | 2024-04-19 | 华东师范大学 | 一种基于非均衡磨损闪存的读性能优化方法 |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102081576A (zh) * | 2011-03-01 | 2011-06-01 | 华中科技大学 | 一种闪存的磨损平衡方法 |
CN102508785A (zh) * | 2011-11-02 | 2012-06-20 | 清华大学 | 一种磨损均衡方法及装置 |
US9348761B1 (en) * | 2014-06-30 | 2016-05-24 | Emc Corporation | Weighted-value consistent hashing for balancing device wear |
CN106610901A (zh) * | 2015-10-21 | 2017-05-03 | 深圳市江波龙电子有限公司 | 存储器的磨损次数平衡方法及装置 |
CN106951187A (zh) * | 2017-03-07 | 2017-07-14 | 记忆科技(深圳)有限公司 | 一种固态存储静态磨损均衡的实现方法 |
CN107220185A (zh) * | 2017-05-23 | 2017-09-29 | 建荣半导体(深圳)有限公司 | 基于闪存的数据存储方法、装置以及闪存芯片 |
CN107562378A (zh) * | 2017-08-28 | 2018-01-09 | 记忆科技(深圳)有限公司 | 一种提升固态存储设备寿命的方法 |
CN107797936A (zh) * | 2017-10-25 | 2018-03-13 | 记忆科技(深圳)有限公司 | 一种实现固态硬盘磨损均衡的方法 |
-
2018
- 2018-12-19 CN CN201811554144.6A patent/CN109656483B/zh active Active
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102081576A (zh) * | 2011-03-01 | 2011-06-01 | 华中科技大学 | 一种闪存的磨损平衡方法 |
CN102508785A (zh) * | 2011-11-02 | 2012-06-20 | 清华大学 | 一种磨损均衡方法及装置 |
US9348761B1 (en) * | 2014-06-30 | 2016-05-24 | Emc Corporation | Weighted-value consistent hashing for balancing device wear |
CN106610901A (zh) * | 2015-10-21 | 2017-05-03 | 深圳市江波龙电子有限公司 | 存储器的磨损次数平衡方法及装置 |
CN106951187A (zh) * | 2017-03-07 | 2017-07-14 | 记忆科技(深圳)有限公司 | 一种固态存储静态磨损均衡的实现方法 |
CN107220185A (zh) * | 2017-05-23 | 2017-09-29 | 建荣半导体(深圳)有限公司 | 基于闪存的数据存储方法、装置以及闪存芯片 |
CN107562378A (zh) * | 2017-08-28 | 2018-01-09 | 记忆科技(深圳)有限公司 | 一种提升固态存储设备寿命的方法 |
CN107797936A (zh) * | 2017-10-25 | 2018-03-13 | 记忆科技(深圳)有限公司 | 一种实现固态硬盘磨损均衡的方法 |
Non-Patent Citations (5)
Title |
---|
EDM: An Endurance-Aware Data Migration Scheme for Load Balancing in SSD Storage Clusters;Jiaxin Ou等;《2014 IEEE 28th International Parallel and Distributed Processing Symposium》;20140814;第787-795页 * |
具有磨损均衡意识的混合固态硬盘FTL算法;姚英彪等;《计算机学报》;20170728;第2379-2393页 * |
固态盘写性能优化技术研究;宋振龙等;《第十七届计算机工程与工艺年会暨第三届微处理器技术论坛论文集(上册)》;20130720;第144-148页 * |
磨损均衡在提高SSD使用寿命中的应用与改进;王增辉;《中国优秀博硕士学位论文全文数据库(硕士)信息科技辑》;20150515;第39页-59页 * |
面向缓存的固态盘垃圾回收策略;魏登萍等;《第十九届计算机工程与工艺年会暨第五届微处理器技术论坛论文集》;20151018;第385-389页 * |
Also Published As
Publication number | Publication date |
---|---|
CN109656483A (zh) | 2019-04-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109656483B (zh) | 一种固态盘静态磨损均衡方法及装置 | |
US10209902B1 (en) | Method and apparatus for selecting a memory block for writing data, based on a predicted frequency of updating the data | |
EP2761471B1 (en) | Statistical wear leveling for non-volatile system memory | |
US6571326B2 (en) | Space allocation for data in a nonvolatile memory | |
KR101087308B1 (ko) | 비휘발성 메모리에 대한 초기 웨어 레벨링 | |
US10049040B2 (en) | Just in time garbage collection | |
US9223693B2 (en) | Memory system having an unequal number of memory die on different control channels | |
US7188228B1 (en) | Hybrid mapping implementation within a non-volatile memory system | |
EP1559113B1 (en) | Tracking the most frequently erased blocks in non-volatile storage systems | |
KR101563875B1 (ko) | 호스트 기록 작업과 캐시 플러싱을 균형화하기 위한 방법과 시스템 | |
US20160378379A1 (en) | Multi-layer memory system having multiple partitions in a layer | |
US20120173797A1 (en) | Method for performing block management/flash memory management, and associated memory device and controller thereof | |
US11249903B2 (en) | Memory system for garbage collection operation and operating method thereof | |
US20140185376A1 (en) | Method and system for asynchronous die operations in a non-volatile memory | |
KR20090131146A (ko) | 불휘발성 메모리 시스템 및 그것의 데이터 관리 방법 | |
CN104090847A (zh) | 一种固态存储设备的地址分配方法 | |
CN106873912A (zh) | Tlc芯片固态硬盘的动态分区存储方法及装置、系统 | |
CN103902475B (zh) | 一种基于队列管理机制的固态硬盘并行访问方法及装置 | |
US11487658B2 (en) | Memory system including plural regions storing data and operating method thereof | |
CN108829346A (zh) | 一种适应闪存页差异的固态硬盘的用户写请求处理方法 | |
US11435944B2 (en) | Dynamic memory address write policy translation based on performance needs | |
CN114415962A (zh) | 一种静态磨损均衡方法、系统、设备和存储介质 | |
US10628045B2 (en) | Internal data transfer management in a hybrid data storage device | |
US11023170B2 (en) | Writing method for multi-stream write solid state drive | |
CN116450036A (zh) | 一种面向nand闪存存储器的数据分离放置方法 |
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 |