CN105573681A - 一种ssd盘片内部raid组建方法及系统 - Google Patents

一种ssd盘片内部raid组建方法及系统 Download PDF

Info

Publication number
CN105573681A
CN105573681A CN201511023235.3A CN201511023235A CN105573681A CN 105573681 A CN105573681 A CN 105573681A CN 201511023235 A CN201511023235 A CN 201511023235A CN 105573681 A CN105573681 A CN 105573681A
Authority
CN
China
Prior art keywords
raid
data
superpage
write
superblock
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
Application number
CN201511023235.3A
Other languages
English (en)
Other versions
CN105573681B (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.)
Hunan Goke Microelectronics Co Ltd
Original Assignee
Hunan Goke Microelectronics 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 Hunan Goke Microelectronics Co Ltd filed Critical Hunan Goke Microelectronics Co Ltd
Priority to CN201511023235.3A priority Critical patent/CN105573681B/zh
Publication of CN105573681A publication Critical patent/CN105573681A/zh
Application granted granted Critical
Publication of CN105573681B publication Critical patent/CN105573681B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

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/0604Improving or facilitating administration, e.g. storage management
    • G06F3/0607Improving or facilitating administration, e.g. storage management by facilitating the process of upgrading existing storage systems, e.g. for improving compatibility between host and storage device
    • 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/0644Management of space entities, e.g. partitions, extents, pools
    • 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)
  • Techniques For Improving Reliability Of Storages (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明公开了一种SSD盘片内部RAID组建方法,该方法主要实现过程如下:将NandFlashBlock抽象为SuperBlock,将Page抽象为SuperPage,以SuperPage作为RAID条带单元,在SuperPage上进行RAID组建;FTL转换层将SuperBlock等效为NandFlashBlock:在写入操作时按照SuperPage号从小到大依次写入,在擦除操作时对SuperBlock内的各个NandFlashBlock同时擦除;FTL转换层将SuperPage等效为NandFlashPage:在写入操作时按照die号从小到大对SuperPage内的各个NandFlashPage依次写入;此外,FTL转换层还记录各个SuperBlock内的baddie和RAIDdie,在进行RAID组建写入数据时,跳过badpage所在的die;在RAID条带内所有用户数据写入完成后确定该条带的最终RAID校验数据,并将RAID校验数据写入到SuperPage的RAIDdie上。本发明所需DRAM资源减少、成本低、效率高。

Description

一种SSD盘片内部RAID组建方法及系统
技术领域
本发明涉及一种SSD盘片内部RAID组建方法及系统。
背景技术
SSD(SolidStateDrive,固态硬盘)是一种由固态电子存储芯片阵列作为存储介质、控制芯片进行数据读写、存储介质管理的数据存储设备,由于其具有读写速度快、功耗低、无噪音、抗震性好等特点而广泛应用于消费电子、数据中心、军事、车载等领域,呈现出替代机械硬盘的趋势。
NANDFlash作为当前主流SSD所采用的存储介质,其所存储数据由于颗粒磨损(PECycle)、数据存储时间(DataRetention)、高温环境等原因会发生比特翻转。因此,SSD控制器内部都设计了错误纠正算法,在翻转比特数较少时通过BCH或LDPC等错误纠正算法对错误数据进行纠正;如果翻转比特数超过错误纠正极限则会发生不可纠错误(UncorrectableError)。
独立冗余磁盘阵列(RedundantArraysofIndependentDisks,RAID)由于其在容量、性能、冗余数据保护上的优势而广泛应用于存储系统中。为了解决SSD中NANDFlash比特翻转不可纠错误导致的数据丢失问题,申请号为201210038141.1的发明专利将RAID技术引入到SSD中,通过将闪存页组成RAID条带以达到数据保护的目的;但该发明中未说明RAID条带的具体组织形式。申请号为201210481988.9和申请号为201310746661.4的发明专利将主机数据按照主机逻辑地址组成RAID条带,通过将主机数据按照固定大小切片后再映射到不同的NANDFlash通道上以提高后端并发度;在条带更新时根据主机数据切片数量以区分条带大写和小写,进而确定更新RAID校验值所需读取的条带成员,以达到减小条带更新的读操作、提升性能的目的。
上述基于主机逻辑地址的SSD盘片内部RAID组建方案存在以下缺点:
1)DRAM资源增加、成本上升、效率降低;SSD的数据读取主要依靠映射表,而基于主机逻辑地址的RAID组建方法由于需要映射表对条带校验数据进行物理寻址,因此其映射表需要在原有主机容量寻址空间基础上添加RAID校验数据寻址部分;对于外置DRAM的SSD而言,将导致系统所需的DRAM资源增加、成本上升;对于无外置DRAM的SSD而言,由于需要从NandFlash中加载RAID校验数据的映射表,从而导致性能降低。
2)盘片随机写性能下降:对于基于主机逻辑地址的RAID组建方法,主机随机写业务引起条带内成员数据更新时,需要读取条带成员数据并重新计算该条带的RAID校验值,而读取条带成员数据需要占用NANDFlash带宽、重新计算条带RAID校验值将占用CPU的调度时间;此外,为了保证数据一致性,条带内任一成员的数据更新都将导致整个条带所包含的主机逻辑地址添加互斥锁。以上缺陷都将大大降低盘片的随机写性能(4K随机写IOPS下降80%)。虽然申请号为201210481988.9的发明通过区分条带更新大小写以减少所需读取的条带成员数,但该方法仍然不可避免地需要读取条带成员数据。
3)盘片写放大增加:对于基于主机逻辑地址的RAID组建方法,条带内任一成员的数据更新都需要更新RAID校验值(重新计算并写到NANDFlash中),这必然导致盘片的写放大增加、NANDFlash磨损加剧。
发明内容
本发明所要解决的技术问题是,针对现有技术不足,提供一种SSD盘片内部RAID组建方法及系统。
为解决上述技术问题,本发明所采用的技术方案如下:一种SSD盘片内部RAID组建方法,该方法主要实现过程如下:将SSD盘片上所有通道内所有die上块号相同的物理块抽象为逻辑块SuperBlock;将SuperBlock内所有页号相同的物理页抽象为逻辑页SuperPage;以SuperPage作为RAID条带,在SuperPage上进行RAID组建;对于每个SuperBlock,FTL转换层记录其中的baddie和RAIDdie,在RAID组建写入数据时跳过baddie;在RAID条带内所有用户数据写入完成后,确定最终的RAID校验数据并写入到RAIDdie上;所述RAID组建原则为:SSD盘片内部的FTL转换层将SuperBlock内的各个物理块等效为NandFlashBlock:在写入操作时按照SuperPage号从小到大依次进行数据写入,在擦除操作时对SuperBlock内的各个NandFlashBlock同时擦除;FTL转换层将SuperPage内的各个物理页等效为NandFlashPage:在写入操作时按照die号从小到大对SuperPage内的各个NandFlashPage依次进行数据写入。
确定最终的RAID校验数据并写入到RAIDdie上的具体实现过程包括以下步骤:
1)确定RAID计算阈值;
2)SuperPage内每写入一个用户数据物理页后,将该用户数据物理页所对应的用户数据缓冲区添加到RAID计算任务的buffer列表中;
3)SuperPage内写入的用户数据物理页数量达到RAID计算阈值后,启动RAID异或引擎进行一次RAID校验数据计算,将计算结果保留在RAID校验数据缓冲区中,并在RAID计算任务的buffer列表中将相应用户数据缓冲区删除;如果SuperPage内所有的用户数据物理页都已经被写入,但RAID计算任务的buffer列表中的用户数据缓冲区数未达到RAID计算阈值,则继续进行RAID校验数据计算;
4)当SuperPage内所有用户数据物理页都完成写入、RAID校验数据计算完成后,将最终的RAID校验数据写入到RAIDdie上。
上述组建过程简单,容易实现。
本发明还提供了一种SSD盘片内部RAID组建系统,包括:
逻辑块SuperBlock:由SSD盘片上所有通道内所有die上块号相同的物理块抽象而成;
逻辑页SuperPage:由SuperBlock内所有页号相同的物理页抽象而成,并用于进行RAID组建;
FTL转换层:记录SuperBlock中的baddie和RAIDdie,在RAID组建写入数据时跳过baddie;用于在RAID条带内所有用户数据写入完成后,确定最终的RAID校验数据并写入到RAIDdie上。
与现有技术相比,本发明所具有的有益效果为:
1)本发明所需DRAM资源减少、成本低、效率高:相较于基于主机逻辑地址的RAID组建方案,本发明不需要映射表单元对RAID校验数据进行映射管理,每个SuperBlock只需两个字节以记录其RAIDDie;对于外置DRAM的SSD,以主机容量为256GB的盘片、Die中Block数为1024的NandFlash颗粒为例,对于基于主机逻辑地址的RAID组建方案,假设其对主机数据以4KB为单位进行切片、在条带深度为16的情况下,其RAID校验数据的映射所需DRAM空间为256GB/4KB/16*4Byte=16MB,而本发明所需DRAM空间仅为1024*2Byte=2048KB;对于无外置DRAM的SSD,在条带更新及数据恢复时不需读取映射表,因而效率提高;
2)RAID对盘片随机性能影响减小:由于是基于SuperPage组建条带,条带的组成单元不是主机逻辑地址,而是NANDFlash物理页;并且在本发明中,盘片所接收的主机数据在NANDFlash中依次存放,因此对本发明的SuperPageRAID条带而言,只有RAID条带的组建而没有条带的更新:当一个条带组建完成后,如果接收到新的主机数据则直接在下一SuperPage中组建新的RAID条带,因此本发明在主机逻辑地址数据更新时,不需要对条带添加互斥锁、不需要读取相应的用户数据单元数据和RAID校验单元数据来更新RAID校验数据,并且无论主机是顺序写还是随机写,盘片内处于组建状态的条带只有一个,因而本发明RAID组建对盘片随机性能无影响;
3)盘片写放大减小:相较于基于主机逻辑地址的RAID组建方案,其条带的每次更新都涉及到RAID校验数据的下刷,而本发明仅在每个条带构建完成后才写一次RAID校验数据,因而校验数据的写次数减少,盘片写放大减小,NANDFlash磨损减小。
附图说明
图1为本发明实施例NANDFlash物理组织结构图;
图2为本发明实施例SuperBlock抽象示意图;
图3为本发明实施例SuperPage抽象示意图;
图4为本发明实施例SuperPageRAID条带示意图;
图5为本发明实施例SuperPage、SuperBlock使用顺序图;
图6为本发明实施例SuperBlock的坏块和RAID块记录示意图;
图7为本发明实施例SuperPageRAID校验数据计算与写入过程图;
图8为本发明实施例RAID异或引擎结构图。
具体实施方式
以下结合附图说明本发明的具体实施过程。
在以NANDFlash为存储介质的SSD盘片中,为了提高对存储介质的访问带宽都会将NANDFlash访问控制器设计为支持一定数量的NANDFlash通道,并在每个通道上挂接一定数量的NANDFlash颗粒,从而提高盘片对NANDFlash的访问并发度。由NANDFlash颗粒物理组织结构可知:每片NANDFlash颗粒包含一个或多个Target(NandFlash颗粒中可通过一个芯片使能(ChipEnable)信号进行访问的单元),每个Target中包含一个或多个Die(LogicalUnit,NandFlash颗粒中可独立执行命令并上报命令执行状态的最小单元),每个Die中包含一定数量的块,每个块中包含一定数量的页,其中块为NANDFlash擦除操作的最小单元,页为NANDFlash读写操作的最小单元;此外,对每个Die中的块按照序号划分为不同的Plane,Plane为NANDFlash颗粒可执行相同命令的最细粒度并发单元。本发明的核心思想即是以NANDFlash物理页为单位组织RAID条带。基于此,如图2和图3所示,本发明将SSD盘片内所有Die(所有通道、所有Target上)内块号相同的块抽象为一个逻辑块:SuperBlock;然后再将SuperBlock内所有块中页号相同的页抽象为一个逻辑页:SuperPage。本发明则以SuperPage作为一个RAID条带(如图4所示),SuperPage中位于不同Die上的物理页则作为RAID条带的组成单元。
在本发明的FTL转换层(FlashTranslationLayer,FTL)中,抽象后的SuperPage和SuperBlock分别等效于多个物理页和多个物理块。因此在执行数据写入操作时,对SuperPage和SuperBlock的使用顺序如图5所示:SuperPage内各物理页按照die号从小到大顺序使用;SuperBlock内的SuperPage按照页号从小到大顺序使用;当数据缓冲区每填满一个物理页大小的数据后,即将该数据写入到SuperPage内未使用的物理页中die号最小的物理页,当一个SuperPage被写满后则继续使用下一SuperPage,当一个SuperBlock被写满后则使用其他SuperBlock。垃圾回收和擦除操作的基本单位为一个SuperBlock:当所回收的SuperBlock内所有有效数据回收完成后,再擦除该SuperBlock内的所有block。
对于RAID条带,其中包含用户数据单元和RAID校验数据单元;对于SuperBlock,其中可能包含坏块(原始坏块、擦失败和编程失败导致的新增坏块),这些坏块上的物理页则成为相应SuperPage中的坏页,在向SuperPage中写入数据时需要跳过这些坏页。因此,对每个SuperPage条带而言,需要相应的数据以定位其中的RAID校验数据物理页和坏页。为了使记录坏页和RAID页的数据量尽可能小以降低对DRAM的需求,本发明不以SuperPage为单位记录其中的坏页和RAID校验数据页,而是以SuperBlock为单位记录其中的坏块和RAID校验数据块。盘片每获取一个空白SuperBlock,首先根据其中的坏块分布确定RAID校验数据块;然后在SuperPage中写入用户数据时跳过其中的坏页和校验数据页。
RAID校验数据是由条带内所有用户数据计算得到,本发明中的SuperPage条带基于闪存页物理地址组织,RAID校验数据必须在条带内所有的用户数据都写入到相应用户物理页后才能写入条带内的RAID校验数据页。如果在条带内的所有用户数据都写入到闪存页后再计算RAID校验数据,对于条带内用户数据的获取有两种方法:1.从相应的闪存页上读取用户数据;这将导致RAID校验数据的计算效率降低,并且因读取用户数据而占用额外的NANDFlash带宽导致盘片内其他业务效率降低;2.在执行用户数据写入时,将所有用户数据单元保留在以物理页为大小切分的用户数据缓冲区中,在RAID数据计算完成后再释放这些缓冲区;这将导致RAID模块对数据缓冲区占用时间增大,降低缓冲区利用效率,进而降低盘片读写性能。因此,本发明综合考虑数据缓冲区利用效率与RAID校验数据计算频率,在用户数据写入过程中计算RAID校验数据:
①根据主机接口写带宽、SSD盘片NANDFlash写带宽、RAID异或引擎带宽和用户数据缓冲区大小确定RAID计算阈值:SuperPage内每写入的用户数据物理页数达到该阈值则启动RAID校验数据计算,本发明的实施例中所采用的阈值为4,即SuperPage内每写入4个物理页后启动一次RAID校验值计算;
②SuperPage内每写入一个物理页后,该物理页所对应的用户数据缓冲区不释放,而是添加到RAID计算任务的buffer列表中;
③SuperPage中每写入RAID计算阈值数量的用户数据物理页后,启动一次RAID计算,并将RAID计算结果缓存在RAID校验数据缓冲区中,并在RAID计算任务的buffer列表中将相应用户数据物理页对应的缓冲区删除;此外,如果SuperPage内所有的用户数据物理页都已经被写入、但RAID计算任务buffer列表中的用户数据缓冲区数未达到RAID计算阈值,仍然启动RAID校验数据计算;
④如果SuperPage内所有用户数据页都写入完成且RAID校验数据也计算完成,将最终的RAID校验数据写入到SuperPage的校验数据页,该过程如图6所示。
由本发明的SuperPage可知,SuperPage条带深度即为盘片中die个数;盘片内die数量越多、条带深度就越大,条带内用户数据的可靠性就越低;并且对于SSD盘片而言,不同类型的数据所要求的可靠性不同(例如,映射表数据的可靠性要求就比主机数据高)。因此,为了解决盘片内die数量较多造成的可靠性降低,满足不同数据的可靠性要求,本发明针对不同的SuperBlock可支持RAID5和RAID6,在盘片出厂时按照不同类型数据的可靠性要求进行设置。
实施例1:
本实施例采用SuperPage中物理页较少(10个物理页)且没有坏页的情况下的RAID5条带,具体实施步骤如下:
1)在获取到空白SuperBlock后,挑选出一个物理块以存放RAID校验数据,并将物理块的Die号(本例中为Die0)记录在SuperBlock的块状态表中;
2)盘片在执行主机的写命令时将所接收的数据存放到用户数据缓冲区中,而用户数据缓冲区按照NANDFlash物理页大小划分,当一个缓冲区所接收的用户数据量达到物理页中所能存放的最大用户数据量(物理页大小减去用户数据所需的错误纠错数据量)后,该缓冲区的数据将被写入到SuperPage0的Die1;
3)将用户数据缓冲区buffer0添加到RAID计算任务的buffer列表中,并判断是否达到启动RAID计算的条件:buffer列表中的用户数据缓冲区个数达到RAID计算阈值(本实施例中为4)或该条带的所有用户数据页全部写入到NANDFlash;显然,用户数据缓冲区buffer0未达到RAID计算条件;
4)主机继续向盘片下发写命令,盘片进而分别完成对SuperPage0的die2、die3、die4的用户数据缓冲区buffer1、buffer2、buffer3的填充、写入到NANDFlash和RAID计算任务的buffer列表添加;当buffer3的用户数据填充完成后,RAID计算任务的buffer列表中buffer数达到RAID计算阈值,因而启动RAID异或引擎进行异或运算,然后将计算结果写入到RAID校验数据缓冲区。此外,由于SuperPage0是第一次计算RAID校验数据,因而RAID异或引擎的输入通道中不包含RAID校验数据缓冲区;RAID校验数据计算完成后,将用户数据缓冲区buffer0、1、2、3释放以用于新数据的接收;
5)主机继续向盘片下发写命令,盘片进而分别完成对SuperPage0的die5、die6、die7、die8的用户数据缓冲区buffer0、1、2、3的填充、写入到NANDFlash和RAID计算任务的buffer列表添加;当buffer3的用户数据填充完成后,RAID计算任务的buffer列表中buffer数达到RAID计算阈值,因而启动RAID异或引擎进行异或运算,然后将计算结果写入到RAID校验数据缓冲区。由于此次不是SuperPage0第一次计算RAID校验数据,因而RAID异或引擎的输入数据包含RAID校验数据缓冲区;
6)主机继续向盘片下发写命令,盘片完成对SuperPage0的die9的用户数据缓冲区buffer0的填充、写入到NANDFlash和RAID计算任务的buffer列表添加;由于die9为SuperPage中最后一个用户数据页,因而启动RAID异或引擎计算RAID校验数据,再将RAID校验数据写入到SuperPage0的die0中;至此,SuperPage0条带写入完成;
7)主机继续向盘片下发写命令,盘片按照步骤2到6写SuperPage1、2等。
实施例2:
本实施例采用SuperPage中物理页较少(10个物理页)且有一个坏页的情况下的RAID5条带,具体实施步骤如下:
1)在获取到空白SuperBlock后,挑选出一个物理块以存放RAID校验数据,并将物理块的Die号(本例中为Die0)记录在SuperBlock的块状态表中;
2)盘片在执行主机的写命令时将所接收的数据存放到以物理页大小切分的用户数据缓冲区中,当一个缓冲区所接收的用户数据量达到物理页中所能存放的最大用户数据量(物理页大小减去用户数据所需的错误纠错数据量)后,该用户数据缓冲区的数据将被写入到SuperPage0的Die1;
3)将用户数据缓冲区buffer0添加到RAID计算任务的buffer列表中,并判断是否达到启动RAID计算的条件:buffer列表中的用户数据缓冲区个数达到RAID计算阈值或该条带的所有用户数据页全部写入到NANDFlash;显然,用户数据缓冲区buffer0未达到RAID计算条件;
4)主机继续向盘片下发写命令,盘片进而分别完成对SuperPage0的die2、die3、die4的用户数据缓冲区buffer1、buffer2、buffer3的填充、写入到NANDFlash和RAID计算任务的buffer列表添加;当buffer3的用户数据填充完成后,RAID计算任务的buffer列表中buffer数达到RAID计算阈值,因而启动RAID异或引擎进行异或运算,然后将计算结果写入到RAID校验数据缓冲区,此外,由于SuperPage0是第一次计算RAID校验数据,因而RAID异或引擎的输入通道中不包含RAID校验数据缓冲区;RAID校验数据计算完成后,将用户数据缓冲区buffer0、1、2、3释放以用于新数据的接收;
5)主机继续向盘片下发写命令,由于die5所在的物理页为坏页,因此盘片将该物理页跳过而分别完成对SuperPage0的die6、die7、die8、die9的用户数据缓冲区buffer0、1、2、3的填充、写入到NANDFlash和RAID计算任务的buffer列表添加;当buffer3的用户数据填充完成后,RAID计算任务的buffer列表中buffer数达到RAID计算阈值,因而启动RAID异或引擎进行异或运算,然后将计算结果写入到RAID校验数据缓冲区。由于此次不是SuperPage0第一次计算RAID校验数据,因而RAID异或引擎的输入数据包含RAID校验数据缓冲区;此外,由于die9为SuperPage中最后一个用户数据页,因而将RAID校验数据写入到SuperPage0的die0中;至此,SuperPage0条带完成;
6)主机继续向盘片下发写命令,盘片按照步骤2到5顺序使用SuperPage0、1、2……。
实施例3:
本实施例采用SuperPage中为了提高某些数据(如映射表)的可靠性而采用的RAID6条带,具体实施步骤如下:
1)在获取到空白SuperBlock后,挑选出两个物理块以存放RAID校验数据,并将物理块的Die号(本例中为Die0和Die1)记录在SuperBlock的块状态表中;
2)盘片在执行主机的写命令时将所接收的数据存放到用户数据缓冲区中,而用户数据缓冲区按照NANDFlash物理页大小划分,当一个缓冲区所接收的用户数据量达到物理页中所能存放的最大用户数据量(物理页大小减去用户数据所需的错误纠错数据量)后,该用户数据缓冲区的数据将被写入到SuperPage0的Die2;
3)将用户数据缓冲区buffer0添加到RAID计算任务的buffer列表中,并判断是否达到启动RAID计算的条件:buffer列表中的用户数据缓冲区个数达到RAID计算阈值或该条带的所有用户数据页全部写入到NANDFlash;显然,用户数据缓冲区0未达到RAID计算条件;
4)主机继续向盘片下发写命令,盘片进而分别完成对SuperPage0的die3、die4、die5的用户数据缓冲区buffer1、buffer2、buffer3的填充、写入到NANDFlash和RAID计算任务的buffer列表添加;当buffer3的用户数据填充完成后,RAID计算任务的buffer列表中buffer数达到RAID计算阈值,因而启动RAID异或引擎进行异或运算,然后将计算结果写入到RAID校验数据缓冲区(其中RAID6I和RAID6II数据写入到校验数据缓冲区RAIDbuffer0和RAIDbuffer1中)。此外,由于SuperPage0是第一次计算RAID校验数据,因而RAID异或引擎的输入通道中不包含RAID校验数据缓冲区;RAID校验数据计算完成后,将用户数据缓冲区buffer0、1、2、3释放以用于新数据的接收;
5)主机继续向盘片下发写命令,盘片进而分别完成对SuperPage0的die6、die7、die8、die9的用户数据缓冲区buffer0、1、2、3的填充、写入到NANDFlash和RAID计算任务的buffer列表添加;当buffer3的用户数据填充完成后,由于die9为SuperPage中最后一个用户数据页,因而启动RAID异或引擎进行异或运算,然后将计算结果写入到RAID校验数据缓冲区。由于此次不是SuperPage0第一次计算RAID校验数据,因而RAID异或引擎的输入数据包含RAID校验数据缓冲区;当校验数据计算完成后,分别将RAID6校验数据RAID6I和RAID6II写入到SuperPage0的die0和die1;至此,SuperPage0条带完成;
6)主机继续向盘片下发写命令,盘片按照步骤2到5顺序使用SuperPage0、1、2……。

Claims (4)

1.一种SSD盘片内部RAID组建方法,其特征在于,该方法主要实现过程如下:将SSD盘片上所有通道内所有die上块号相同的物理块抽象为逻辑块SuperBlock;将SuperBlock内所有页号相同的物理页抽象为逻辑页SuperPage;以SuperPage作为RAID条带,在SuperPage上进行RAID组建;对于每个SuperBlock,SSD盘片内部的FTL转换层记录其中的baddie和RAIDdie,在RAID组建写入数据时跳过baddie;在RAID条带内所有用户数据写入完成后,确定最终的RAID校验数据并写入到RAIDdie上;所述RAID组建原则为:FTL转换层将SuperBlock内的各个物理块等效为NandFlashBlock:在写入操作时按照SuperPage号从小到大依次进行数据写入,在擦除操作时对SuperBlock内的各个NandFlashBlock同时擦除;FTL转换层将SuperPage内的各个物理页等效为NandFlashPage:在写入操作时按照die号从小到大对SuperPage内的各个NandFlashPage依次进行数据写入。
2.根据权利要求1所述的SSD盘片内部RAID组建方法,其特征在于,确定最终的RAID校验数据并写入到RAIDdie上的具体实现过程包括以下步骤:
1)确定RAID计算阈值;
2)SuperPage内每写入一个用户数据物理页后,将该用户数据物理页所对应的用户数据缓冲区添加到RAID计算任务的buffer列表中;
3)SuperPage内写入的用户数据物理页数量达到RAID计算阈值后,启动RAID异或引擎进行一次RAID校验数据计算,将计算结果保留在RAID校验数据缓冲区中,并在RAID计算任务的buffer列表中将相应用户数据缓冲区删除;如果SuperPage内所有的用户数据物理页都已经被写入,但RAID计算任务的buffer列表中的用户数据缓冲区数未达到RAID计算阈值,则继续进行RAID校验数据计算;
4)当SuperPage内所有用户数据物理页都完成写入、RAID校验数据计算完成后,将最终的RAID校验数据写入到RAIDdie上。
3.根据权利要求2所述的SSD盘片内部RAID组建方法,其特征在于,RAID计算阈值为4。
4.一种SSD盘片内部RAID组建系统,其特征在于,包括:
逻辑块SuperBlock:由SSD盘片上所有通道内所有die上块号相同的物理块抽象而成;
逻辑页SuperPage:由SuperBlock内所有页号相同的物理页抽象而成,并用于进行RAID组建;
FTL转换层:记录SuperBlock中的baddie和RAIDdie,在RAID组建写入数据时跳过baddie;用于在RAID条带内所有用户数据写入完成后,确定最终的RAID校验数据并写入到RAIDdie上。
CN201511023235.3A 2015-12-31 2015-12-31 一种ssd盘片内部raid组建方法及系统 Active CN105573681B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201511023235.3A CN105573681B (zh) 2015-12-31 2015-12-31 一种ssd盘片内部raid组建方法及系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201511023235.3A CN105573681B (zh) 2015-12-31 2015-12-31 一种ssd盘片内部raid组建方法及系统

Publications (2)

Publication Number Publication Date
CN105573681A true CN105573681A (zh) 2016-05-11
CN105573681B CN105573681B (zh) 2017-03-22

Family

ID=55883875

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201511023235.3A Active CN105573681B (zh) 2015-12-31 2015-12-31 一种ssd盘片内部raid组建方法及系统

Country Status (1)

Country Link
CN (1) CN105573681B (zh)

Cited By (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107678690A (zh) * 2017-09-29 2018-02-09 山东超越数控电子有限公司 一种固态硬盘及其冗余独立磁盘阵列的实现方法
CN108595125A (zh) * 2018-04-27 2018-09-28 江苏华存电子科技有限公司 一种纠正闪存写入错误处理方法
CN108647110A (zh) * 2018-03-30 2018-10-12 深圳忆联信息系统有限公司 一种增强型raid保护方法及ssd
CN108664418A (zh) * 2017-03-27 2018-10-16 慧荣科技股份有限公司 数据储存装置以及其操作方法
CN109240604A (zh) * 2018-08-16 2019-01-18 郑州云海信息技术有限公司 基于raid5的固态硬盘中用户数据的写入方法、系统
CN109542671A (zh) * 2018-11-30 2019-03-29 湖南国科微电子股份有限公司 校验数据生成方法及固态硬盘
CN109558078A (zh) * 2018-11-15 2019-04-02 深圳忆联信息系统有限公司 闪存管理方法、装置、计算机设备和存储介质
CN109725824A (zh) * 2017-10-27 2019-05-07 伊姆西Ip控股有限责任公司 用于向存储系统中的盘阵列写入数据的方法和设备
US10509697B2 (en) 2017-08-30 2019-12-17 Silicon Motion, Inc. Data storage device and operating method therefor
WO2020007030A1 (zh) * 2018-07-06 2020-01-09 华为技术有限公司 一种系统控制器和系统垃圾回收方法
CN111338982A (zh) * 2020-02-11 2020-06-26 上海威固信息技术股份有限公司 一种大容量固态盘内地址映射方法
CN113420341A (zh) * 2021-06-11 2021-09-21 联芸科技(杭州)有限公司 一种数据保护方法、数据保护设备及计算机系统
CN113590038A (zh) * 2021-07-27 2021-11-02 联芸科技(杭州)有限公司 固态硬盘的管理方法和固态硬盘
CN115329399A (zh) * 2022-10-13 2022-11-11 江苏华存电子科技有限公司 基于nand的垂直水平raid4数据保护管理方法及系统

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103034458A (zh) * 2012-12-25 2013-04-10 华为技术有限公司 固态硬盘中实现独立磁盘冗余阵列的方法及装置
CN104156174A (zh) * 2014-07-31 2014-11-19 记忆科技(深圳)有限公司 基于条带的固态硬盘raid实现方法及装置
US20150006792A1 (en) * 2013-06-28 2015-01-01 Samsung Electronics Co., Ltd. Memory controller, method of operating, and apparatus including same

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103034458A (zh) * 2012-12-25 2013-04-10 华为技术有限公司 固态硬盘中实现独立磁盘冗余阵列的方法及装置
US20150006792A1 (en) * 2013-06-28 2015-01-01 Samsung Electronics Co., Ltd. Memory controller, method of operating, and apparatus including same
CN104156174A (zh) * 2014-07-31 2014-11-19 记忆科技(深圳)有限公司 基于条带的固态硬盘raid实现方法及装置

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
彭军: "《基于NAND Flash的多路并行存储系统的研究与实现》", 《中国优秀硕士学位论文全文数据库》 *

Cited By (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108664418A (zh) * 2017-03-27 2018-10-16 慧荣科技股份有限公司 数据储存装置以及其操作方法
US10509697B2 (en) 2017-08-30 2019-12-17 Silicon Motion, Inc. Data storage device and operating method therefor
CN107678690A (zh) * 2017-09-29 2018-02-09 山东超越数控电子有限公司 一种固态硬盘及其冗余独立磁盘阵列的实现方法
CN109725824A (zh) * 2017-10-27 2019-05-07 伊姆西Ip控股有限责任公司 用于向存储系统中的盘阵列写入数据的方法和设备
US11775226B2 (en) 2017-10-27 2023-10-03 EMC IP Holding Company LLC Methods and devices for writing data into a degraded array using a persistent cache
CN108647110A (zh) * 2018-03-30 2018-10-12 深圳忆联信息系统有限公司 一种增强型raid保护方法及ssd
CN108595125A (zh) * 2018-04-27 2018-09-28 江苏华存电子科技有限公司 一种纠正闪存写入错误处理方法
WO2020007030A1 (zh) * 2018-07-06 2020-01-09 华为技术有限公司 一种系统控制器和系统垃圾回收方法
US11321229B2 (en) 2018-07-06 2022-05-03 Huawei Technologies Co., Ltd. System controller and system garbage collection method
CN109240604B (zh) * 2018-08-16 2021-06-11 郑州云海信息技术有限公司 基于raid5的固态硬盘中用户数据的写入方法、系统
CN109240604A (zh) * 2018-08-16 2019-01-18 郑州云海信息技术有限公司 基于raid5的固态硬盘中用户数据的写入方法、系统
CN109558078A (zh) * 2018-11-15 2019-04-02 深圳忆联信息系统有限公司 闪存管理方法、装置、计算机设备和存储介质
CN109542671A (zh) * 2018-11-30 2019-03-29 湖南国科微电子股份有限公司 校验数据生成方法及固态硬盘
CN109542671B (zh) * 2018-11-30 2022-06-07 湖南国科微电子股份有限公司 校验数据生成方法及固态硬盘
CN111338982B (zh) * 2020-02-11 2021-01-05 上海威固信息技术股份有限公司 一种大容量固态盘内地址映射方法
CN111338982A (zh) * 2020-02-11 2020-06-26 上海威固信息技术股份有限公司 一种大容量固态盘内地址映射方法
CN113420341A (zh) * 2021-06-11 2021-09-21 联芸科技(杭州)有限公司 一种数据保护方法、数据保护设备及计算机系统
CN113420341B (zh) * 2021-06-11 2023-08-25 联芸科技(杭州)股份有限公司 一种数据保护方法、数据保护设备及计算机系统
CN113590038A (zh) * 2021-07-27 2021-11-02 联芸科技(杭州)有限公司 固态硬盘的管理方法和固态硬盘
CN113590038B (zh) * 2021-07-27 2024-08-13 联芸科技(杭州)股份有限公司 固态硬盘的管理方法和固态硬盘
CN115329399A (zh) * 2022-10-13 2022-11-11 江苏华存电子科技有限公司 基于nand的垂直水平raid4数据保护管理方法及系统

Also Published As

Publication number Publication date
CN105573681B (zh) 2017-03-22

Similar Documents

Publication Publication Date Title
CN105573681A (zh) 一种ssd盘片内部raid组建方法及系统
US10884914B2 (en) Regrouping data during relocation to facilitate write amplification reduction
US9298534B2 (en) Memory system and constructing method of logical block
US7856528B1 (en) Method and apparatus for protecting data using variable size page stripes in a FLASH-based storage system
KR101623119B1 (ko) 솔리드 스테이트 드라이브의 에러 제어 방법
US10365859B2 (en) Storage array management employing a merged background management process
US7941696B2 (en) Flash-based memory system with static or variable length page stripes including data protection information and auxiliary protection stripes
US9195541B2 (en) Controlling nonvolatile memory device and nonvolatile memory system
CN109358809B (zh) 一种raid数据存储系统及方法
CN101916173B (zh) 一种基于raid的数据读写方法及其系统
US9898215B2 (en) Efficient management of page retirement in non-volatile memory utilizing page retirement classes
TWI569139B (zh) 有效資料合併方法、記憶體控制器與記憶體儲存裝置
EP2983087A1 (en) Junk data recycling method and storage device
US20130073798A1 (en) Flash memory device and data management method
CN103218274B (zh) 一种预防故障累加的方法和固态硬盘
US9740609B1 (en) Garbage collection techniques for a data storage system
JP2019502987A (ja) 不揮発性メモリ・システムにおけるマルチページ障害の回復
CN110347613B (zh) 多租户固态盘中实现raid的方法、控制器及多租户固态盘
US20160266798A1 (en) Cache memory for hybrid disk drives
US10115472B1 (en) Reducing read disturb effect on partially programmed blocks of non-volatile memory
CN103198020B (zh) 一种提高闪存使用寿命的方法
CN102981969A (zh) 重复数据删除的方法及其固态硬盘
US20170115900A1 (en) Dummy page insertion for flexible page retirement in flash memory storing multiple bits per memory cell
US9417809B1 (en) Efficient management of page retirement in non-volatile memory utilizing page retirement classes
CN110658994A (zh) 一种基于hdd和ssd混合磁盘阵列的数据处理方法及装置

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
EE01 Entry into force of recordation of patent licensing contract

Application publication date: 20160511

Assignee: Jiangsu Xinsheng Intelligent Technology Co., Ltd.

Assignor: GOKE MICROELECTRONICS CO., LTD.

Contract record no.: 2018430000021

Denomination of invention: Method and system for establishing RAID in SSD

Granted publication date: 20170322

License type: Common License

Record date: 20181203

EE01 Entry into force of recordation of patent licensing contract