大容量固态硬盘逻辑地址到物理地址映射方法

文档序号:10654512阅读:415来源:国知局
大容量固态硬盘逻辑地址到物理地址映射方法
【专利摘要】本发明公开了一种大容量固态硬盘逻辑地址到物理地址映射方法,包括:定义逻辑映射单元由若干个逻辑块组成;将主机的写请求分解为对逻辑映射单元的写请求;判断逻辑映射单元是否已经在缓存中,将逻辑映射单元添加到缓存中,并判断缓存是否已满;如果缓存已满,判断最早进入缓存的逻辑映射单元是否已经写入闪存,如没有写入闪存,则将最早进入缓存的逻辑映射单元映射到能并行写入的物理映射单元,并写入闪存;如果该映射单元之前已经写入闪存,则将该映射单元从闪存中读出,与缓存中的数据合并,将合并后的逻辑映射单元映射到能并行写入的物理映射单元,并写入闪存。从而达到控制映射表大小的目的。
【专利说明】
大容量固态硬盘逻辑地址到物理地址映射方法[0001]
技术领域
[0002]本发明涉及数据储存领域,具体地,涉及一种大容量固态硬盘逻辑地址到物理地址映射方法。【背景技术】
[0003]目前,以NAND闪存为基础的固态硬盘(SSD)需要将主机采用的逻辑地址(LBA)映射为闪存的实际物理地址。通常为了提高读写的吞吐量,闪存的芯片被置于不同的通道 (Channel)上,同时在闪存芯片内通常会有若干个Target,每个Target会有若干个LUN,而每个LUN会有若干个Plane,每个Plane会有若干个块(Block),而每个Block会有若干个页 (Page)。位于不同通道,不同芯片,不同Target,不同LUN和不同Plane上的块和页可以进行并行的读写。所以闪存的物理地址包括通道号,芯片号,Target地址,LUN地址,Plane地址,块地址和页地址。
[0004]在大容量固态硬盘的设计中,一个突出的问题是映射表可能过大。映射表太大意味着需要更大的双倍速率同步动态随机存储器(DDR),更大的内存寻址,更大的空间来安放 DDR,更大的功耗,从而使设计更复杂。
【发明内容】

[0005]本发明的目的在于,针对上述问题,提出一种大容量固态硬盘逻辑地址到物理地址映射方法,以实现控制映射表大小的优点。
[0006]为实现上述目的,本发明采用的技术方案是:一种大容量固态硬盘逻辑地址到物理地址映射方法,包括通过调整逻辑映射单元的大小,调控映射表的大小,并将逻辑映射单元内的逻辑块一起映射到同一个物理映射单元中的步骤。
[0007]一种大容量固态硬盘逻辑地址到物理地址映射方法,包括:获得主机产生的写请求,将上述获得的写请求分解为对逻辑映射单元的写请求,在上述逻辑映射单元存入缓存时,如果缓存已满,则将最早进入缓存的逻辑映射单元映射到能并行写入的物理映射单元中,然后将最早进入缓存的逻辑映射单元写入闪存的步骤。
[0008]优选的,还包括,如上述分解为对逻辑映射单元的写请求中的逻辑映射单元写入数据不足一个设定的逻辑映射单元时,且与写入数据相关的逻辑映射单元已经在缓存中, 则将写入数据合并到缓存里已经存在的相关逻辑映射单元中的步骤。
[0009]优选的,还包括,如上述分解为对逻辑映射单元的写请求中的逻辑映射单元存入缓存时,如果缓存已经不能再写入新的逻辑映射单元,但最早进入缓存的逻辑映射单元仍没有被填满,且最早进入缓存的逻辑映射单元已经被写入闪存,则将最早进入缓存的逻辑映射单元先从闪存中读出,然后将写请求数据写入最早进入缓存的逻辑映射单元,并将最早进入缓存的逻辑映射单元映射到能并行写入的物理映射单元中,最后将最早进入缓存的逻辑映射单元写入闪存的步骤。
[0010]一种大容量固态硬盘逻辑地址到物理地址映射方法,包括:获得主机产生的写请求,将上述获得的写请求分解为对逻辑映射单元的写请求,如上述逻辑映射单元写入数据不足一个设定的逻辑映射单元时,且与写入数据相关的逻辑映射单元已经在缓存中,则将写入数据合并到缓存里已经存在的相关逻辑映射单元中的步骤。
[0011]优选的,还包括,如上述分解为对逻辑映射单元的写请求中的逻辑映射单元存入缓存时,如果缓存已经不能再写入新的逻辑映射单元,但最早进入缓存的逻辑映射单元仍没有被填满,且最早进入缓存的逻辑映射单元已经被写入闪存,则将最早进入缓存的逻辑映射单元先从闪存中读出,然后将写请求数据写入最早进入缓存的逻辑映射单元,并将最早进入缓存的逻辑映射单元映射到能并行写入的物理映射单元中,最后将最早进入缓存的逻辑映射单元写入闪存的步骤。
[0012]一种大容量固态硬盘逻辑地址到物理地址映射方法,包括以下步骤:步骤1、获得主机产生的写请求;步骤2、将上述获得的写请求分解为对逻辑映射单元的写请求,转步骤3;步骤3、判断上述逻辑映射单元是否已经在缓存中,若逻辑映射单元在缓存中,则将步骤2中分解的对逻辑映射单元的写请求数据合并到缓存中的逻辑映射单元中,并转步骤9, 如逻辑映射单元不在缓存中,则转步骤4;步骤4、将逻辑映射单元添加到缓存中,并判断缓存是否已满,如缓存没满,则转步骤9, 如缓存已满,则转步骤5;步骤5、找到最早进入缓存的逻辑映射单元,并判断最早进入缓存的逻辑映射单元是否已经填满,如最早进入缓存的逻辑映射单元已经填满,则转步骤7,如最早进入缓存的逻辑映射单元没有填满,则转步骤6;步骤6、判断最早进入缓存的逻辑映射单元是否已经写入闪存,如没有写入闪存,则转步骤7,如已经写入闪存,则将最早进入缓存的逻辑映射单元从闪存中读出,并与缓存中相关逻辑映射单元合并,转步骤8;步骤7、将最早进入缓存的逻辑映射单元映射到能并行写入的物理映射单元,并写入闪存,然后转步骤9;步骤8、将合并后的逻辑映射单元映射到能并行写入的物理映射单元,并写入闪存,然后转步骤9;步骤9、判断所有的逻辑映射单元是否都已经处理完成,如没有则返回步骤2,如已经处理完成,则转步骤10;步骤10、主机产生的写请求处理完成。
[0013]优选的,还包括,如果缓存已经不能再写入新的逻辑映射单元时,但最早进入缓存的逻辑映射单元仍没有被填满,而且该逻辑映射单元之前没有被写入闪存,则直接将不满的逻辑映射单元写入闪存,但同时在映射表中记录下逻辑映射单元哪些部分是无效的,以便下次合并。
[0014]本发明的技术方案具有以下有益效果:本发明技术方案最大限度的利用闪存的并行机制的同时使得映射表的大小控制在一定的范围内,从而达到控制映射表大小的目的。
[0015]下面通过附图和实施例,对本发明的技术方案做进一步的详细描述。【附图说明】
[0016]图1为本发明实施例所述的大容量固态硬盘逻辑地址到物理地址映射方法的流程图。【具体实施方式】
[0017]以下结合附图对本发明的优选实施例进行说明,应当理解,此处所描述的优选实施例仅用于说明和解释本发明,并不用于限定本发明。
[0018]如图1所示,一种大容量固态硬盘逻辑地址到物理地址映射方法,包括以下步骤: 步骤1、获得主机产生的写请求;步骤2、将上述获得的写请求分解为对逻辑映射单元的写请求,转步骤3;步骤3、判断上述逻辑映射单元是否已经在缓存中,若逻辑映射单元在缓存中,则将步骤2中分解的对逻辑映射单元的写请求数据合并到缓存中的逻辑映射单元中,并转步骤9, 如逻辑映射单元不在缓存中,则转步骤4;步骤4、将逻辑映射单元添加到缓存中,并判断缓存是否已满,如缓存没满,则转步骤9, 如缓存已满,则转步骤5;步骤5、找到最早进入缓存的逻辑映射单元,并判断最早进入缓存的逻辑映射单元是否已经填满,如最早进入缓存的逻辑映射单元已经填满,则转步骤7,如最早进入缓存的逻辑映射单元没有填满,则转步骤6;步骤6、判断最早进入缓存的逻辑映射单元是否已经写入闪存,如没有写入闪存,则转步骤7,如已经写入闪存,则将最早进入缓存的逻辑映射单元从闪存中读出,并与缓存中相关逻辑映射单元合并,转步骤8;步骤7、将最早进入缓存的逻辑映射单元映射到能并行写入的物理映射单元,并写入闪存,然后转步骤9;步骤8、将合并后的逻辑映射单元映射到能并行写入的物理映射单元,并写入闪存,然后转步骤9;步骤9、判断所有的逻辑映射单元是否都已经处理完成,如没有则返回步骤2,如已经处理完成,则转步骤10;步骤10、主机产生的写请求处理完成。
[0019]【具体实施方式】还有:一种大容量固态硬盘逻辑地址到物理地址映射方法,包括通过调整逻辑映射单元的大小,调控映射表的大小,并将逻辑映射单元内的逻辑块一起映射到同一个物理映射单元中的步骤。
[0020]一种大容量固态硬盘逻辑地址到物理地址映射方法,包括:获得主机产生的写请求,将上述获得的写请求分解为对逻辑映射单元的写请求,在上述逻辑映射单元存入缓存时,如果缓存已满,则将最早进入缓存的逻辑映射单元映射到能并行写入的物理映射单元中,然后将最早进入缓存的逻辑映射单元写入闪存的步骤。
[0021]优选的,还包括,如上述分解为对逻辑映射单元的写请求中的逻辑映射单元写入数据不足一个设定的逻辑映射单元时,且与写入数据相关的逻辑映射单元已经在缓存中, 则将写入数据合并到缓存里已经存在的相关逻辑映射单元中的步骤。
[0022]优选的,还包括,如上述分解为对逻辑映射单元的写请求中的逻辑映射单元存入缓存时,如果缓存已经不能再写入新的逻辑映射单元,但最早进入缓存的逻辑映射单元仍没有被填满,且最早进入缓存的逻辑映射单元已经被写入闪存,则将最早进入缓存的逻辑映射单元先从闪存中读出,然后将写请求数据写入最早进入缓存的逻辑映射单元,并将最早进入缓存的逻辑映射单元映射到能并行写入的物理映射单元中,最后将最早进入缓存的逻辑映射单元写入闪存的步骤。[〇〇23] 一种大容量固态硬盘逻辑地址到物理地址映射方法,包括:获得主机产生的写请求,将上述获得的写请求分解为对逻辑映射单元的写请求,如上述逻辑映射单元写入数据不足一个设定的逻辑映射单元时,且与写入数据相关的逻辑映射单元已经在缓存中,则将写入数据合并到缓存里已经存在的相关逻辑映射单元中的步骤。
[0024]优选的,还包括,如上述分解为对逻辑映射单元的写请求中的逻辑映射单元存入缓存时,如果缓存已经不能再写入新的逻辑映射单元,但最早进入缓存的逻辑映射单元仍没有被填满,且最早进入缓存的逻辑映射单元已经被写入闪存,则将最早进入缓存的逻辑映射单元先从闪存中读出,然后将写请求数据写入最早进入缓存的逻辑映射单元,并将最早进入缓存的逻辑映射单元映射到能并行写入的物理映射单元中,最后将最早进入缓存的逻辑映射单元写入闪存的步骤。[〇〇25]本技术方案是一个关于SSD本身设计的发明,本技术方案所谓的缓存都是指SSD本身的缓存。不论SSD是直接安装在主机上,还是被主机远程访问,情况都是一样的。SSD中除了闪存(Flash),还有控制器(SSD controller )及DDR等,缓存是在SSD上的DDR中。
[0026]1)每个逻辑映射单元可以容纳若干个逻辑块(Logical Blocks)。映射单元越大,则映射表越小。通过调整映射单元的大小,可以调控映射表的大小。逻辑映射单元内的逻辑块将会一起映射到同一个物理映射单元中。[〇〇27] 比如逻辑块大小可以是4KB,而一个映射单元可以是16KB(包含4个逻辑块);16KB 为单位的映射表的大小是4KB为单位的映射表的1 /4以下。[〇〇28]2)从主机来的对逻辑地址的写请求被分解为对逻辑映射单元的写请求,将这些写请求中的主机数据放入缓存;如果缓存满,则将最早进入缓存的逻辑映射单元映射到可以并行写入的物理映射单元中,然后写入闪存。[〇〇29]比如逻辑块的大小是4KB,而映射单元和一个闪存页的大小都是16KB,那对逻辑块地址(LBA)O到15共64KB的写请求可以被分解为对4个逻辑映射单元的写请求。如果缓存已满,这4个逻辑映射单元可以被分别映射到如下的物理地址中:逻辑块地址(LBA)物理地址 0到3:Channel 0,Target 0,LUN 0,Plane 0,Block 4,Page 112;4到7:Channel 0, Target 0,LUN 0,Plane l,Block 4, Page 112;8 到 11:Channel 1, Target 0,LUN 0,Plane 0,Block 4, Page 112;12 到 15:Channel 1, Target 0,LUN 0,Plane l,Block 4, Page 112〇
[0030]3)如果主机请求写入的数据不足一个映射单元,而且相关的逻辑映射单元已经在缓存中,那么这些数据将会被合并到缓存里的相关逻辑映射单元中;如果在缓存满了之后, 多个写请求填足了最早进入缓存的映射单元,则这个映射单元按照2)介绍的方式被映射到物理地址并被写入闪存。
[0031]4)如果缓存已经不能再写入新的映射单元,但最早进入缓存的映射单元仍没有被填满,而且该映射单元之前已经被写入闪存,那就将映射单元先从闪存中读出,合并新写入的数据,然后再将合并后的映射单元按照2)介绍的方式映射到物理地址并写入闪存。
[0032]如果缓存已经不能再写入新的映射单元,但最早进入缓存的映射单元仍没有被填满,而且该映射单元之前没有被写入闪存,则直接将不满的映射单元写入闪存,但同时在映射表中记录下映射单元哪些部分是无效的,以便下次合并。
[0033]最后应说明的是:以上所述仅为本发明的优选实施例而已,并不用于限制本发明, 尽管参照前述实施例对本发明进行了详细的说明,对于本领域的技术人员来说,其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换。 凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
【主权项】
1.一种大容量固态硬盘逻辑地址到物理地址映射方法,其特征在于,包括通过调整逻辑映射单元的大小,调控映射表的大小,并将逻辑映射单元内的逻辑 块一起映射到同一个物理映射单元中的步骤。2.—种大容量固态硬盘逻辑地址到物理地址映射方法,其特征在于,包括:获得主机产 生的写请求,将上述获得的写请求分解为对逻辑映射单元的写请求,在上述逻辑映射单元 存入缓存时,如果缓存已满,则将最早进入缓存的逻辑映射单元映射到能并行写入的物理 映射单元中,然后将最早进入缓存的逻辑映射单元写入闪存的步骤。3.根据权利要求2所述的大容量固态硬盘逻辑地址到物理地址映射方法,其特征在于, 还包括,如上述分解为对逻辑映射单元的写请求中的逻辑映射单元写入数据不足一个设定 的逻辑映射单元时,且与写入数据相关的逻辑映射单元已经在缓存中,则将写入数据合并 到缓存里已经存在的相关逻辑映射单元中的步骤。4.根据权利要求2或3所述的大容量固态硬盘逻辑地址到物理地址映射方法,其特征在 于,还包括,如上述分解为对逻辑映射单元的写请求中的逻辑映射单元存入缓存时,如果缓 存已经不能再写入新的逻辑映射单元,但最早进入缓存的逻辑映射单元仍没有被填满,且 最早进入缓存的逻辑映射单元已经被写入闪存,则将最早进入缓存的逻辑映射单元先从闪 存中读出,然后将写请求数据写入最早进入缓存的逻辑映射单元,并将最早进入缓存的逻 辑映射单元映射到能并行写入的物理映射单元中,最后将最早进入缓存的逻辑映射单元写 入闪存的步骤。5.—种大容量固态硬盘逻辑地址到物理地址映射方法,其特征在于,包括:获得主机产 生的写请求,将上述获得的写请求分解为对逻辑映射单元的写请求,如上述逻辑映射单元 写入数据不足一个设定的逻辑映射单元时,且与写入数据相关的逻辑映射单元已经在缓存 中,则将写入数据合并到缓存里已经存在的相关逻辑映射单元中的步骤。6.根据权利要求5所述的大容量固态硬盘逻辑地址到物理地址映射方法,其特征在于, 还包括,如上述分解为对逻辑映射单元的写请求中的逻辑映射单元存入缓存时,如果缓存 已经不能再写入新的逻辑映射单元,但最早进入缓存的逻辑映射单元仍没有被填满,且最 早进入缓存的逻辑映射单元已经被写入闪存,则将最早进入缓存的逻辑映射单元先从闪存 中读出,然后将写请求数据写入最早进入缓存的逻辑映射单元,并将最早进入缓存的逻辑 映射单元映射到能并行写入的物理映射单元中,最后将最早进入缓存的逻辑映射单元写入 闪存的步骤。7.—种大容量固态硬盘逻辑地址到物理地址映射方法,其特征在于,包括以下步骤:步骤1、获得主机产生的写请求;步骤2、将上述获得的写请求分解为对逻辑映射单元的写请求,转步骤3;步骤3、判断上述逻辑映射单元是否已经在缓存中,若逻辑映射单元在缓存中,则将步 骤2中分解的对逻辑映射单元的写请求数据合并到缓存中的逻辑映射单元中,并转步骤9, 如逻辑映射单元不在缓存中,则转步骤4;步骤4、将逻辑映射单元添加到缓存中,并判断缓存是否已满,如缓存没满,则转步骤9, 如缓存已满,则转步骤5;步骤5、找到最早进入缓存的逻辑映射单元,并判断最早进入缓存的逻辑映射单元是否 已经填满,如最早进入缓存的逻辑映射单元已经填满,则转步骤7,如最早进入缓存的逻辑映射单元没有填满,则转步骤6;步骤6、判断最早进入缓存的逻辑映射单元是否已经写入闪存,如没有写入闪存,则转 步骤7,如已经写入闪存,则将最早进入缓存的逻辑映射单元从闪存中读出,并与缓存中相 关逻辑映射单元合并,转步骤8;步骤7、将最早进入缓存的逻辑映射单元映射到能并行写入的物理映射单元,并写入闪 存,然后转步骤9;步骤8、将合并后的逻辑映射单元映射到能并行写入的物理映射单元,并写入闪存,然 后转步骤9;步骤9、判断所有的逻辑映射单元是否都已经处理完成,如没有则返回步骤2,如已经处 理完成,则转步骤10;步骤10、主机产生的写请求处理完成。8.根据权利要求7所述的大容量固态硬盘逻辑地址到物理地址映射方法,其特征在于, 还包括,如果缓存已经不能再写入新的逻辑映射单元时,但最早进入缓存的逻辑映射单元 仍没有被填满,而且该逻辑映射单元之前没有被写入闪存,则直接将不满的逻辑映射单元 写入闪存,但同时在映射表中记录下逻辑映射单元哪些部分是无效的,以便下次合并。
【文档编号】G06F13/40GK106021159SQ201610312739
【公开日】2016年10月12日
【申请日】2016年5月12日
【发明人】孙易安
【申请人】北京匡恩网络科技有限责任公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1