一种ssd盘片内部raid组建方法及系统的制作方法

文档序号:9810213阅读:1205来源:国知局
一种ssd盘片内部raid组建方法及系统的制作方法【
技术领域
】[0001]本发明涉及一种SSD盘片内部RAID组建方法及系统。【
背景技术
】[0002]SSDCSolidStateDrive,固态硬盘)是一种由固态电子存储芯片阵列作为存储介质、控制芯片进行数据读写、存储介质管理的数据存储设备,由于其具有读写速度快、功耗低、无噪音、抗震性好等特点而广泛应用于消费电子、数据中心、军事、车载等领域,呈现出替代机械硬盘的趋势。[0003]NANDFlash作为当前主流SSD所采用的存储介质,其所存储数据由于颗粒磨损(PECycle)、数据存储时间(DataRetent1n)、高温环境等原因会发生比特翻转。因此,SSD控制器内部都设计了错误纠正算法,在翻转比特数较少时通过BCH或LDPC等错误纠正算法对错误数据进行纠正;如果翻转比特数超过错误纠正极限则会发生不可纠错误(UncorrectableError)。[0004]独立冗余磁盘阵列(RedundantArraysofIndependentDisks,RAID)由于其在容量、性能、冗余数据保护上的优势而广泛应用于存储系统中。为了解决SSD中NANDFlash比特翻转不可纠错误导致的数据丢失问题,申请号为201210038141.1的发明专利将RAID技术引入到SSD中,通过将闪存页组成RAID条带以达到数据保护的目的;但该发明中未说明RAID条带的具体组织形式。申请号为201210481988.9和申请号为201310746661.4的发明专利将主机数据按照主机逻辑地址组成RAID条带,通过将主机数据按照固定大小切片后再映射到不同的NANDFlash通道上以提高后端并发度;在条带更新时根据主机数据切片数量以区分条带大写和小写,进而确定更新RAID校验值所需读取的条带成员,以达到减小条带更新的读操作、提升性能的目的。[0005]上述基于主机逻辑地址的SSD盘片内部RAID组建方案存在以下缺点:I)DRAM资源增加、成本上升、效率降低;SSD的数据读取主要依靠映射表,而基于主机逻辑地址的RAID组建方法由于需要映射表对条带校验数据进行物理寻址,因此其映射表需要在原有主机容量寻址空间基础上添加RAID校验数据寻址部分;对于外置DRAM的SSD而言,将导致系统所需的DRAM资源增加、成本上升;对于无外置DRAM的SSD而言,由于需要从NandFIash中加载RAID校验数据的映射表,从而导致性能降低。[0006]2)盘片随机写性能下降:对于基于主机逻辑地址的RAID组建方法,主机随机写业务引起条带内成员数据更新时,需要读取条带成员数据并重新计算该条带的RAID校验值,而读取条带成员数据需要占用NANDFlash带宽、重新计算条带RAID校验值将占用CPU的调度时间;此外,为了保证数据一致性,条带内任一成员的数据更新都将导致整个条带所包含的主机逻辑地址添加互斥锁。以上缺陷都将大大降低盘片的随机写性能(4K随机写1PS下降80%)。虽然申请号为201210481988.9的发明通过区分条带更新大小写以减少所需读取的条带成员数,但该方法仍然不可避免地需要读取条带成员数据。[0007]3)盘片写放大增加:对于基于主机逻辑地址的RAID组建方法,条带内任一成员的数据更新都需要更新RAID校验值(重新计算并写到NANDFlash中),这必然导致盘片的写放大增加、NANDFlash磨损加剧。【
发明内容】[0008]本发明所要解决的技术问题是,针对现有技术不足,提供一种SSD盘片内部RAID组建方法及系统。[0009]为解决上述技术问题,本发明所采用的技术方案如下:一种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依次进行数据写入。[0010]确定最终的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上。[0011]上述组建过程简单,容易实现。[0012]本发明还提供了一种SSD盘片内部RAID组建系统,包括:逻辑块SuperBlock:由SSD盘片上所有通道内所有die上块号相同的物理块抽象而成;逻辑页SuperPage:由SuperBlock内所有页号相同的物理页抽象而成,并用于进行RAID组建;FTL转换层:记录SuperBlock中的baddie和RAIDdie,在RAID组建写入数据时跳过baddie;用于在RAID条带内所有用户数据写入完成后,确定最终的RAID校验数据并写入到RAIDdie上。[0013]与现有技术相比,本发明所具有的有益效果为:I)本发明所需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磨损减小。【附图说明】[0014]图1为本发明实施例NANDFlash物理组织结构图;图2为本发明实施例SuperBlock抽象示意图;图3为本发明实施例SuperPage抽象示意图;图4为本发明实施例SuperPageRAID条带示意图;图5为本发明实施例SuperPage、SuperBlock使用顺序图;图6为本发明实施例SuperBlock的坏块和RAID块记录示意图;图7为本发明实施例SuperPageRAID校验数据计算与写入过程图;图8为本发明实施例RAID异或引擎结构图。【具体实施方式】[0015]以下结合【附图说明】本发明的具体实施过程。[0016]在以NANDFlash为存储介质的SSD盘片中,为了提高对存储介质的访问带宽都会将NANDFlash访问控制器设计为支持一定数量的NANDFlash通道,并在每个通道上挂接一定数量的NANDFlash颗粒,从而提高盘片对NANDFlash的访问并发度。由当前第1页1 2 3 
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1