一种SLCBlock到XLCBlock数据迁移方法与流程

文档序号:14713910发布日期:2018-06-16 00:57阅读:373来源:国知局
一种SLC Block到XLC Block数据迁移方法与流程

本申请涉及数据迁移技术领域,尤其涉及一种SLC Block到XLC Block数据迁移方法。



背景技术:

XLC颗粒写的特点决定了直接写XLC期间需要缓存大量的源数据,若使用芯片内部 RAM来缓存这些数据,将导致芯片成本上升。为降低成本,主流做法是将数据缓存到先写到 SLC Block中,然后再将数据从SLC Block迁移到XLC Block的方式来来解决。

目前SLC Block迁移数据到XLC Block的方法主要有两种:CopyBack方式、读写方式。

Copyback方法通过使用颗粒CopyBack命令先从NAND介质读取数据到NAND内部的 data register中,然后再将数据从dataregister下刷到NAND介质。该方法实现原理如图1所示。图中浅色箭头代表Copyback的读操作,深色箭头代表CopyBack的写操作。

由图1可知,该方法中数据无需经过SSD主控中转,即不需要在主控端缓存,而是通过 NAND内部的dataregister来中转这些数据。由于每个LUN的的数据迁移可同时进行,具备性能良好且不需要消耗主控的RAM资源的特点。然而dataregister中的数据未做纠错处理,所以这些数据中的误码会叠加到XLC Page中。

读写方式,假设XLC page一次编程需要传输N个page,根据XLC的编程特点可知对某个LUN执行XLC写时,该N个Page的下刷不能被其他操作打断;首先选择1个LUN,从 SLC Block读取N个SLC Page到芯片内部ram,然后将ram中的这些数据下刷到该LUN的 XLC Block中。该方法实现原理如图2所示,图中浅色箭头代表连续N个SLC page读的数据传输,深色箭头代表1次XLC写时的N个page数据传输。

由图2可知,数据被读到芯片内部,且传输时经过LDPC纠错处理,所以来自介质中的误码不会通过写叠加到XLC page,即没有EBC放大问题;另外,该方法的最大并发数为 RamSize/(PageSize*N),在为满足规定性能指标下,需要很大的ram空间。例如,2plane PageSize为32KB,一次tlc编程需要传输3个Page数据,则达到32并发时,ram size大小需要32KB*3*32KB=3MB,若为削减成本而强行减小RamSize,则必然会牺牲性能。

综上,可知现有技术存在以下缺点:

EBC放大问题,在Copyback方法中,由于从SLC page中读取的数据未经过SSD主控 LDPC纠错,使得SLC Page的误码叠加写入到XLC Page,加重XLC page数据的出错率,严重时,可能导致TLC page数据超过SSD主控LDPC的纠错能力,反映到SSD整盘为盘片可靠性降低、寿命降低。

RAM资源需求过多或性能低下。为确保NAND要求的1次XLC写要求N个page的传输不能被打断,在读写方式中,每个LUN都需要连续读N个SLC Page数据,然后再下刷到这N个Page的数据来执行一次XLC写。意味着每个并发单元都需要N个page size的ram空间,对满足一定性能指标下,对芯片内部ram资源需求过多,加剧芯片成本。若为降低成本强行减小ram空间,必然导致并发数减小,从而导致数据迁移过程的性能低下。



技术实现要素:

本申请提供了一种SLC Block到XLC Block数据迁移方法,本发明目的旨在解决现有方案中EBC放大、RAM资源需求过多或迁移性能低下的问题,进而提升SSD可靠性和寿命,同时在满足相同性能指标时降低芯片成本。

为此,本发明提供了下述技术方案:一种SLC Block到XLC Block数据迁移方法,其特征在于,包括以下步骤:

步骤1:将M个LUN划分为两组,第一组LUN 0~LUN M/2-1记为bank0,第二组LUN M/2~LUN M记为Bank1;将bank内相对第一个LUN编号的偏移记为Offset;每次XLC写需要N个page数据传输,将XLC写的序号记为progOrder;

步骤2:设置数据源为bank0,数据目的地位bank1,offset值为0,programOrder为0;

步骤3:从bank0中选取LUN Offset作为数据源,从bank1中选取LUN M/2+offset作为数据目的地;从LUN offset中读取第一个Slc Page,向LUN M/2+offset中下发第progOrder 次tlc写的一个page下刷请求;从LUN offset中读取第二个Slc Page,向LUN M/2+offset中下发第progOrder次tlc写的二个page下刷请求;依次类推,直到第progOrder次tlc写的第N 个page下刷请求下发完毕;

步骤4:Offset++,若offset>=M/2,则意味着bank0的LUN遍历完毕,则进入步骤5;否则跳转到步骤3;

步骤5:ProgOrder++,若ProgOrder为XLC block的最后一次编程,则进入步骤6;否则设置offset值为0并跳转到步骤3;

步骤6:若源数据为bank1,则跳转到步骤8,否则跳转到步骤7;

步骤7:设置数据源为bank1,数据目的地位bank0,设置offset值为0,设置progOrder 为0;跳转到步骤3;

步骤8:迁移结束。

进一步地,所述XLC包括MLC、TLC或QLC。

本申请提供的技术方案包括以下有益技术效果:

(1)有效提升芯片内部RAM资源利用率;本发明中通过将多个LUN划分为两个或多个BANK的方式,实现了读写操作分别位于不同的LUN,从而使得不用连续读取N个SLC Page后在下刷到XLC,而是每读取1个SLC Page及下刷到XLC。做一次XLC写,Ram资源的需求从N个page size降为1个Page Size,极大提升RAM使用效率,芯片成本亦随之减少。

(2)提高数据迁移的并发度;在本方案中有于读写操作位于不同的LUN,相比于读写方案中的源数据和目的数据在相同LUN而言,数据迁移的并发度翻倍。

(3)无EBC放大,由于读数据时都经过LDPC进行纠错,所有本方案中无Copy back 方法中具有的EBC放大问题,从而提升盘片可靠性及寿命。

附图说明

为了更清楚地说明本申请的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,对于本领域普通技术人员而言,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。

图1为本发明提供的现有技术中的Copy back数据传输原理。

图2为本发明提供的现有技术中的读写方式数据传输原理。

图3为本申请实施例提供的一种SLC Block到XLC Block数据迁移方法的原理框图。

具体实施方式

此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本申请的实施例,并与说明书一起用于解释本申请的原理。

为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,对于本领域普通技术人员而言,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

实施例一

为了解决EBC放大问题,即意味着数据传输必须经过LDPC进行纠错。

读路径的数据都会经过LDPC纠错,所有本方案中不存在EBC放大问题。

由于颗粒1次XLC写要求与该次写相关的N个page数据传输不能被其他操作打断,本方案结合图3通过以下流程来予以保障。

如图3所示,图中读浅色箭头为单个SLC page读,深色箭头为1次XLC编程中的单个 XLC传输。

一种SLC Block到XLC Block数据迁移方法,其特征在于,包括以下步骤:

步骤1:将M个LUN划分为两组,第一组LUN 0~LUN M/2-1记为bank0,第二组LUN M/2~LUN M记为Bank1;将bank内相对第一个LUN编号的偏移记为Offset;每次XLC写需要N个page数据传输,将XLC写的序号记为progOrder;

步骤2:设置数据源为bank0,数据目的地位bank1,offset值为0,programOrder为0;

步骤3:从bank0中选取LUN Offset作为数据源,从bank1中选取LUN M/2+offset作为数据目的地;从LUN offset中读取第一个Slc Page,向LUN M/2+offset中下发第progOrder 次tlc写的一个page下刷请求;从LUN offset中读取第二个Slc Page,向LUN M/2+offset中下发第progOrder次tlc写的二个page下刷请求;依次类推,直到第progOrder次tlc写的第N 个page下刷请求下发完毕;

步骤4:Offset++,若offset>=M/2,则意味着bank0的LUN遍历完毕,则进入步骤5;否则跳转到步骤3;

步骤5:ProgOrder++,若ProgOrder为XLC block的最后一次编程,则进入步骤6;否则设置offset值为0并跳转到步骤3;

步骤6:若源数据为bank1,则跳转到步骤8,否则跳转到步骤7;

步骤7:设置数据源为bank1,数据目的地位bank0,设置offset值为0,设置progOrder 为0;跳转到步骤3;

步骤8:迁移结束。

作为本实施例技术方案的一大改进,所述XLC包括MLC、TLC或QLC。

从上述操作流程可知,本方案具有如下特点:

通过将LUN划分为两个BANK,将一个BANK作为数据源,另一个BANK做为数据目的地,使得一个BANK只做SLC page读,而另外一个BANK只做XLC写,进而确保1次 XLC写的N个page数据传输不能被其他操作打断的需求。

读路径的数据都会经过LDPC进行纠错处理,SLC Page数据中的误码不会叠加到XLC 中。

经过本方案完成数据迁移后,BANK0和BANK1的数据发生了位置交换,这种差异在系统中通过简单偏移映射即可处理掉。

本方案中在1次XLC写中,每读取1个SLC Page即可下刷到XLC。

由于源和目的位于不同的LUN,即意味着每消耗单个pageSize的ram空间即可获得2个 LUN并发度,所以,该方法的最大并发数为[RamSize/(PageSize)]*2;显然,若在相同RAM size条件下,本方案较读写方案在并发度上提升了2*N倍;若在相同的并发度指标下,本方案需要的ramSize为读写方案所需ramSize的1/(2*N)。例如,2plane page size为32KB,一次tlc编程需要传输3个page条件下,则达到32并发时,RamSize大小需要32*32KB/2=512KB,显然芯片成本得到大量节省。

作为本实施例技术方案的一大改进,也可以将M个LUN划分为两组,提供一种高效的 SLC BLOCK到XLC BLK的数据迁移方法,具有以下特点:

1、本发明提供一种高效的SLC BLOCK到XLC BLK的数据迁移方法,XLC指MLC 或TLC或QLC。

2、在1的基础之上,将M个LUN划分为两个或多个BANK,将一部分BANK作为源数据BANK,另外一部分BANK作为数据目的地BANK。

3、在2的基础之上,所有源SLC Page读取都需经过LDPC纠错。

4、在3的基础之上,从源BANK中每读取一个SLC page数据立即将该数据下刷到目的BAND的XLC Block中。

综上,本发明有以优点:

(1)有效提升芯片内部RAM资源利用率;本发明中通过将多个LUN划分为两个或多个BANK的方式,实现了读写操作分别位于不同的LUN,从而使得不用连续读取N个SLC Page后在下刷到XLC,而是每读取1个SLC Page及下刷到XLC。做一次XLC写,Ram资源的需求从N个page size降为1个Page Size,极大提升RAM使用效率,芯片成本亦随之减少。

(2)提高数据迁移的并发度;在本方案中有于读写操作位于不同的LUN,相比于读写方案中的源数据和目的数据在相同LUN而言,数据迁移的并发度翻倍。

(3)无EBC放大,由于读数据时都经过LDPC进行纠错,所有本方案中无Copy back 方法中具有的EBC放大问题,从而提升盘片可靠性及寿命,。

关于本实施例中出现的英文缩写释义如下:

NAND闪存是一种比硬盘驱动器更好的存储设备,在不超过4GB的低容量应用中表现得犹为明显。随着人们持续追求功耗更低、重量更轻和性能更佳的产品,NAND被证明极具吸引力。NAND闪存是一种非易失性存储技术,即断电后仍能保存数据。它的发展目标就是降低每比特存储成本、提高存储容量。

SSD,Solid State Drive,固态硬盘,一种利用Flash介质存储用户数据的存储设备。

EBC,Error Bit Count,错误比特数。

SLC,Single Level Cell,1个Cell存放1个比特信息的颗粒。

MLC,Muti-Level Cell,1个Cell存放2个比特信息的颗粒。

TLC,Tirpel-Level Cell,1个Cell存放3个比特信息的颗粒。

QLC,Quad-Level Cell,1个Cell存放4个比特信息的颗粒。

PAGE,页,非易失介质编程的最小单位。

BLOCK,块,一个块由多个page组成。

LUN,Logic unit number,可独立操作的逻辑单元。

需要说明的是,诸如“第一”和“第二”等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。

以上所述仅是本申请的具体实施方式,使本领域技术人员能够理解或实现本申请。对这些实施例的多种修改对本领域的技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本申请的精神或范围的情况下,在其它实施例中实现。因此,本申请将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。

应当理解的是,本申请并不局限于上面已经描述并在附图中示出的内容,并且可以在不脱离其范围进行各种修改和改变。本申请的范围仅由所附的权利要求来限制。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1