CN108595115B - 一种提高ssd垃圾回收效率的方法 - Google Patents

一种提高ssd垃圾回收效率的方法 Download PDF

Info

Publication number
CN108595115B
CN108595115B CN201810258215.1A CN201810258215A CN108595115B CN 108595115 B CN108595115 B CN 108595115B CN 201810258215 A CN201810258215 A CN 201810258215A CN 108595115 B CN108595115 B CN 108595115B
Authority
CN
China
Prior art keywords
data
block
time
tlc
read
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
Application number
CN201810258215.1A
Other languages
English (en)
Other versions
CN108595115A (zh
Inventor
肖锐
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Shenzhen Union Memory Information System Co Ltd
Original Assignee
Shenzhen Union Memory Information System Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Shenzhen Union Memory Information System Co Ltd filed Critical Shenzhen Union Memory Information System Co Ltd
Priority to CN201810258215.1A priority Critical patent/CN108595115B/zh
Publication of CN108595115A publication Critical patent/CN108595115A/zh
Application granted granted Critical
Publication of CN108595115B publication Critical patent/CN108595115B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/061Improving I/O performance
    • G06F3/0611Improving I/O performance in relation to response time
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0608Saving storage space on storage systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0638Organizing or formatting or addressing of data
    • G06F3/064Management of blocks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • G06F3/0679Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]

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)
  • Memory System (AREA)

Abstract

本发明公开了一种提高SSD垃圾回收效率的方法,其特征在于预先将每个die都分配若干block,将这些block强制转化为SLC模式,作为缓冲区,在垃圾回收时,将数据迁移块选择在与垃圾回收的目标块不同的die的缓冲区。通过引入该方案,使用cache read/write操作降低了顺序读写时的读时间和写时间,提高了读写带宽;使用SLC block作为存放有效数据的迁移块,利用SLC block相对于TLC block较低的读时间和写时间,提高迁移有效数据的速度;将数据迁移块选择在与GC目标块不同的通道die中,并行操作,充分利用每个通道die的读写带宽。

Description

一种提高SSD垃圾回收效率的方法
技术领域
本发明涉及存储技术领域,尤其涉及一种提高SSD垃圾回收效率的方法。
背景技术
由于NAND flash的固有特性,在写入program之前需要进行擦除erase操作,而且erase操作以块block为单位进行,写入是以页Page为单位进行,SSD使用过程中会产生碎片页,需要通过垃圾回收的方式回收失效页。2D MLC颗粒每个block只有256个page,而3D TLC颗粒每个block有768个page,在做垃圾回收GC时3D TLC颗粒的总操作时间远大于2D MLC颗粒SSD的总操作时间,所以造成使用3D TLC颗粒SSD面对HOST的平均响应时间和最大响应时间增大。
在释放一个GC目标块时,需要先将TLC block所有page的数据读出来,再将数据写入到新的数据迁移块,最后再释放GC目标块,进行erase操作。由于3D TLC颗粒本身特性,每个TLC block有768个page,而2D MLC每个block只有256个page,3D TLC颗粒释放GC目标块时间远大于2D MLC颗粒SSD。
图1是现有3D TLC FLASH垃圾回收流程,NAND Flash颗粒具有写前擦除的特性,这样导致大量碎片化的无效页,为保证SSD的正常使用,需要对无效页进行垃圾回收操作,即擦除选定的目标块以供用户再次使用。由于NAND flash的读写颗粒度(以page为单位)和擦除颗粒度(以block为单位)不一样,在擦除一个block之前,需要先将有效数据搬移到新block。主机通过文件系统访问SSD,SSD上设有闪存转换层FTL与文件系统进行交互,闪存转换层FTL上一般设有缓存管理模块、地址映射模块和垃圾回收GC模块。一次完整的GC操作包括三个步骤:1选择需要回收的失效目标块;2迁移目标块中的数据到其他块中;3擦除目标块。
图2是现有3D TLC FLASH垃圾回收耗时估算示意图,以3D TLC颗粒为例,现在3DTLC颗粒SSD释放一个GC目标块时,需要先读出目标块中的数据,假设目标块中768个page数据都需要迁移,实测tR时间为70us,NAND flash接口使用Toggle DDR1.0400MT/s,那一个page中16KB数据传输时间为16KB/400MTps,Txfer等于40us,总读出时间为:Ttotalr=768×(Tr+Txfer);现行GC方案中都是选择同一个层plane中的block作为有效数据迁移块,所以在向迁移块中写数据时占用的是同一个通道die的带宽,实测TLC block写操作时间Tprog为806us,总写入时间为:Ttotalprog=768×(Tprog+Txfer);这样可以算出3D TLC释放一个GC目标块的总时间为:Ttotal=Ttotalr+Ttotalprog=734ms。
图3是现有2D MLC FLASH释放一个目标块的总时间估算示意图,以TOSHIBA15nm2D MLC为例,tR为50us,Tprog为1400us,而每个block中只有256个page,Ttotal_r、Ttotal_prog、Ttotal分别为:
Ttotalr=256×(Tr+Txfer);
Ttotalprog=256×(Tprog+Txfer);
Ttotal=Ttotalr+Ttotalprog=392ms。
由此可见,2D MLC颗粒释放一个GC目标块使用的时间远小于3D TLC的时间。现有的3D TLC的FLASH垃圾回收效率相比于MLC垃圾回收效率低了很多。
发明内容
针对以上缺陷,本发明目的在于如何降低3D TLC颗粒SSD释放一个GC目标块的时间。
为了实现上述目的,本发明提供了一种提高SSD垃圾回收效率的方法,其特征在于预先将每个die都分配若干block,将这些block强制转化为SLC模式,作为缓冲区,在垃圾回收时,将数据迁移块选择在与垃圾回收的目标块不同的die的缓冲区。
所述的提高SSD垃圾回收效率的方法,其特征在于将垃圾回收的目标块的有效数据页pageN从NAND存储阵列NAND array中读出并放入数据寄存器data register中,再将数据从data register取出放入缓存寄存器中cache register中,并将pageN数据从cacheregister搬到系统内存system memory的同时,将下一页有效数据pageN+1数据从NANDarray取出搬入data register中;由于数据迁移块与目标块属于不同的die,pageN数据传到system memory后可立即并行启动将pageN数据写入新块的操作。
本发明通过引入该方案,使用cache read/write操作降低了顺序读写时的读时间和写时间,提高了读写带宽;使用SLC block作为存放有效数据的迁移块,利用SLC block相对于TLC block较低的读时间和写时间,提高迁移有效数据的速度;将数据迁移块选择在与GC目标块不同的通道die中,并行操作,充分利用每个通道die的读写带宽。
附图说明
图1是现有3D TLC FLASH垃圾回收流程;
图2是现有3D TLC FLASH垃圾回收耗时估算示意图;
图3是现有2D MLC FLASH释放一个目标块的总时间估算示意图;
图4是Cache read的原理示意图;
图5是Cache的读或写操作的时间消耗示意图;
图6是数据迁移到TLC区域和释放一个目标块的时间估算示意图;
图7是数据迁移到SLC区域和释放一个目标块的时间估算示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
图4是Cache read的原理示意图;cache read的原理是:第一步,先将pageN从NANDarray中取出放入data register;第二步,再将pageN从data register取出放入cacheregister中;第三步,在将pageN数据从cache register搬到system memory的同时,将pageN+1数据从NAND array取出搬入data register中,通过并行操作降低读数据的时间。同时,cache read返回操作完成的ready信号要比normal read早,也就是Tcache_r比Tr小。
同理,cache program的操作时间Tcache_prog小于Tprog。
图5是Cache的读或写操作的时间消耗示意图;3D TLC的Tcache_r是60us,T_prog是678us,(a)图中normal read的时间流程,只有在read完成NAND R/B信号置为ready时才能进行数据传输;(b)图中cache read只需要等待前一个page数据进入cache register就可以进行数据传输,这样在当前pageN+1搬移到data register的过程中可以同时进行pageN从cache register传输到system momery;(c)图中normal program的流程,必须等数据都搬移到cache register,才能进行cache register到NAND array的数据搬移,顺序执行;(d)图中cache program在pageN+1数据搬移到cache register的过程中,可以进行pageN数据从data register向NAND array的搬移。
图6是数据迁移到TLC区域和释放一个目标块的时间估算示意图;计算3D TLC颗粒选择TLC block作为数据迁移块时,数据从TLC block迁移到另外一个die的TLC block的时间消耗,在die0将第一个page使用cache read的方式读取到system momery之后,就可以并行将system momery中的数据使用cache program的方式写入到die0的TLC block,如图中所示,Tcache_r为60us,Tcache_prog为678us,总耗时为521ms。
图7是数据迁移到SLC区域和释放一个目标块的时间估算示意图。计算3D TLC颗粒选择SLC block作为数据迁移块时,数据从TLC block迁移到另外一个die的SLC block的时间消耗,如图中所示,TLC block单page的cache read时间为60us,SLC block单page的cache program时间为215us,总耗时为166ms。
如果3D TLC颗粒选择TLC block和SLC block的权重相同,那么3D TLC颗粒SSD释放一个GC目标块的平均耗时为(521+166)/2,343.5ms。小于2D MLC颗粒SSD释放一个GC目标块的时间392ms。可以达到提高3D TLC颗粒SSD垃圾回收效率的目标。
以上所揭露的仅为本发明一种实施例而已,当然不能以此来限定本发明之权利范围,本领域普通技术人员可以理解实现上述实施例的全部或部分流程,并依本发明权利要求所作的等同变化,仍属于本发明所涵盖的范围。

Claims (1)

1.一种提高SSD垃圾回收效率的方法,其特征在于预先将每个die都分配若干块,将这些块强制转化为SLC模式作为缓冲区,在垃圾回收时,将数据迁移块选择在与垃圾回收的目标块不同的die所在的缓冲区;将垃圾回收的目标块的有效数据页pageN从NAND存储阵列中读出并放入数据寄存器中,再将数据从数据寄存器取出放入缓存寄存器中,并将pageN数据从缓存寄存器搬到系统内存的同时,将下一页有效数据pageN+1数据从NAND存储阵列取出搬入数据寄存器中;pageN数据传到系统内存后并行启动将pageN数据写入新块的操作。
CN201810258215.1A 2018-03-27 2018-03-27 一种提高ssd垃圾回收效率的方法 Active CN108595115B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201810258215.1A CN108595115B (zh) 2018-03-27 2018-03-27 一种提高ssd垃圾回收效率的方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201810258215.1A CN108595115B (zh) 2018-03-27 2018-03-27 一种提高ssd垃圾回收效率的方法

Publications (2)

Publication Number Publication Date
CN108595115A CN108595115A (zh) 2018-09-28
CN108595115B true CN108595115B (zh) 2021-10-01

Family

ID=63624653

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201810258215.1A Active CN108595115B (zh) 2018-03-27 2018-03-27 一种提高ssd垃圾回收效率的方法

Country Status (1)

Country Link
CN (1) CN108595115B (zh)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109725853B (zh) * 2018-12-04 2022-10-04 浙江大华存储科技有限公司 一种数据回收方法及装置
CN111949560B (zh) * 2019-05-16 2024-01-23 兆易创新科技集团股份有限公司 一种数据写入方法、装置及存储设备
CN111949200A (zh) * 2019-05-17 2020-11-17 北京兆易创新科技股份有限公司 一种存储器及其控制方法和控制装置
CN114217750B (zh) * 2021-12-28 2023-07-04 深圳忆联信息系统有限公司 Ssd低功耗优化方法、装置、计算机设备及存储介质
CN117234962B (zh) * 2023-11-10 2024-03-26 成都佰维存储科技有限公司 空间回收方法、装置、可读存储介质及电子设备

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104461393A (zh) * 2014-12-09 2015-03-25 华中科技大学 一种闪存存储器的混合映射方法
US9448919B1 (en) * 2012-11-13 2016-09-20 Western Digital Technologies, Inc. Data storage device accessing garbage collected memory segments
CN107122314A (zh) * 2016-02-24 2017-09-01 三星电子株式会社 大容量存储器装置、包括其的系统以及访问其的方法
CN107291381A (zh) * 2017-05-18 2017-10-24 记忆科技(深圳)有限公司 一种固态硬盘动态加速区的实现方法及固态硬盘

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9448919B1 (en) * 2012-11-13 2016-09-20 Western Digital Technologies, Inc. Data storage device accessing garbage collected memory segments
CN104461393A (zh) * 2014-12-09 2015-03-25 华中科技大学 一种闪存存储器的混合映射方法
CN107122314A (zh) * 2016-02-24 2017-09-01 三星电子株式会社 大容量存储器装置、包括其的系统以及访问其的方法
CN107291381A (zh) * 2017-05-18 2017-10-24 记忆科技(深圳)有限公司 一种固态硬盘动态加速区的实现方法及固态硬盘

Also Published As

Publication number Publication date
CN108595115A (zh) 2018-09-28

Similar Documents

Publication Publication Date Title
CN108595115B (zh) 一种提高ssd垃圾回收效率的方法
US11593259B2 (en) Directed sanitization of memory
Hu et al. Write amplification analysis in flash-based solid state drives
US20160062885A1 (en) Garbage collection method for nonvolatile memory device
US10339046B1 (en) Data moving method and storage controller
EP2565792B1 (en) Block management schemes in hybrid SLC/MLC memory
KR102467032B1 (ko) 메모리 스케줄링 방법 및 메모리 시스템의 동작방법
CN103577338B (zh) 一种回收垃圾数据的方法及存储设备
CN104866428B (zh) 数据存取方法和数据存取装置
US8225050B2 (en) Memory storage device and a control method thereof
CN109358809B (zh) 一种raid数据存储系统及方法
US20150347291A1 (en) Flash memory based storage system and operating method
US11194737B2 (en) Storage device, controller and method for operating the controller for pattern determination
KR20150139112A (ko) 가비지 컬렉션 유닛을 포함하는 메모리 시스템 및 동작 방법
US20120179859A1 (en) Nonvolatile memory apparatus performing ftl function and method for controlling the same
CN112130749B (zh) 数据储存装置以及非挥发式存储器控制方法
US20160027518A1 (en) Memory device and method for controlling the same
CN111538680A (zh) 基于逻辑饱和度选择用于垃圾收集的大容量存储装置流
US20220269602A1 (en) Storage device and storage system including the same
CN112035061A (zh) 固态硬盘资源分配方法、装置和存储介质
Kim et al. FTL design for TRIM command
CN115114180A (zh) 在快闪存储器中进行耗损平衡操作的方法和相关控制器以及储存系统
CN115203085A (zh) 用于存储装置的超小区域支持
TW202242664A (zh) 以局部清理操作來進行垃圾回收的方法與相關控制器和儲存系統
CN108877862B (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