首页> 中国专利> 基于硬件实现闪存的FTL功能的方法及其数据存储装置

基于硬件实现闪存的FTL功能的方法及其数据存储装置

摘要

本发明实施例公开了一种基于硬件实现闪存的FTL功能的方法及数据存储装置,其中,该方法包括:当所述数据存储装置上电时,所述状态机对所述闪存芯片进行辨认处理以获取所述闪存芯片的芯片资讯;所述状态机根据所述芯片资讯建立目标表格;所述状态机根据所述目标表格实现所述闪存控制器的FTL功能,该FTL功能包括地址映射功能、坏块管理功能及垃圾回收功能。本发明实施例通过状态机、基于硬件的方式实现了闪存控制器的上述三大功能,加快了产品上市流程,降低了闪存控制器功耗及产品制造成本。此外,本发明实施例基于纯硬件实现FTL功能的过程,不需要程序代码,因此提高了工作效率。

著录项

  • 公开/公告号CN107678686A

    专利类型发明专利

  • 公开/公告日2018-02-09

    原文格式PDF

  • 申请/专利权人 山东存储之翼电子科技有限公司;

    申请/专利号CN201710852048.9

  • 发明设计人 毕鉴忠;

    申请日2017-09-19

  • 分类号G06F3/06(20060101);

  • 代理机构11514 北京酷爱智慧知识产权代理有限公司;

  • 代理人安娜

  • 地址 264006 山东省烟台市经济技术开发区金沙江路163号

  • 入库时间 2023-06-19 04:31:42

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2020-07-14

    授权

    授权

  • 2018-03-09

    实质审查的生效 IPC(主分类):G06F3/06 申请日:20170919

    实质审查的生效

  • 2018-02-09

    公开

    公开

说明书

技术领域

本发明涉及计算机技术领域,具体涉及一种基于硬件实现闪存的FTL功能的方法及其数据存储装置。

背景技术

通常,固态硬盘等存储装置的系统厂商拿到控制器之后,必须进行韧件移植,即实现闪存控制器的FTL(Flash Translation Layer,闪存转换层)功能,该FTL功能包括地址映射、坏块管理及垃圾回收。但,目前都是通过纯软件实现上述FTL功能的,该种方式存在以下问题:(1)系统厂商移植需要时间,从而延缓了产品上市流程;(2)由于程序代码冗长,因此费时费力,工作效率低下。

发明内容

本发明实施例的目的在于提供一种基于硬件实现闪存的FTL功能的方法及其数据存储装置,以加快产品上市流程及提高工作效率。

为实现上述目的,第一方面,本发明实施例提供了一种基于硬件实现闪存的FTL功能的方法,适用于数据存储装置,所述数据存储装置包括闪存控制器及闪存芯片,所述闪存控制器包括状态机,所述方法包括:

当所述数据存储装置上电时,所述状态机对所述闪存芯片进行辨认处理以获取所述闪存芯片的芯片资讯;

所述状态机根据所述芯片资讯建立目标表格;

所述状态机根据所述目标表格实现所述闪存控制器的FTL功能,所述FTL功能包括地址映射功能、坏块管理功能及垃圾回收功能。

作为一种可选的实施方式,所述状态机对所述闪存芯片进行辨认处理以获取所述闪存芯片的芯片资讯具体包括:

所述状态机采用通道及片选读取所述闪存芯片的编号及制造商信息;

根据所述编号及制造商信息查找预设的硬件表格以获取所述闪存芯片的芯片资讯。

作为一种可选的实施方式,所述芯片资讯包括所述闪存芯片的区块数量、区块大小、页数量及页大小,所述目标表格包括第一表格及第二表格,所述第一表格根据每个通道上所有闪存芯片的区块所建,所述第二表格根据所述闪存芯片的页所建。

作为一种可选的实施方式,所述状态机根据所述目标表格实现所述地址映射功能具体包括:

所述状态机采用第一索引查找第一表格或第二表格,并采用第二索引比对逻辑地址以实现地址映射功能。

作为一种可选的实施方式,所述第二表格用于管理页的好坏,所述状态机根据所述目标表格实现所述坏块管理功能具体包括:

所述状态机根据所述第二表格中每一个页的坏位元数目及错误检查纠正技术确定每一个页的好坏;

根据每一个页的好坏实现坏块管理功能。

作为一种可选的实施方式,所述第二表格用于管理页的使用分配,所述状态机根据所述目标表格实现所述垃圾回收功能具体包括:

所述状态机根据所述第一表格确定耗损均衡值,并根据所述耗损均衡值实现垃圾回收功能。

作为一种可选的实施方式,所述方法还包括:

所述状态机根据垃圾回收结果建立串列。

第二方面,本发明实施例提供了一种数据存储装置,包括进行数据交互的闪存控制器及闪存芯片,所述闪存控制器包括状态机,所述状态机用于:

当所述数据存储装置上电时,对所述闪存芯片进行辨认处理以获取所述闪存芯片的芯片资讯;

根据所述芯片资讯建立目标表格;

根据所述目标表格实现所述闪存控制器的FTL功能,所述FTL功能包括地址映射功能、坏块管理功能及垃圾回收功能。

作为一种可选的实施方式,所述状态机还用于:

采用通道及片选读取所述闪存芯片的编号及制造商信息;

根据所述编号及制造商信息查找预设的硬件表格以获取所述闪存芯片的芯片资讯;

将所述芯片资讯加载至所述闪存芯片。

作为一种可选的实施方式,所述目标表格包括第一表格及第二表格,所述第一表格根据每个通道上所有闪存芯片的块数量所建,所述第二表格根据每个区块所建,所述状态机还用于:

采用第一索引查找第一表格或第二表格,并采用第二索引比对逻辑地址以实现地址映射功能;

根据所述第二表格中每一个页的坏位元数目及错误检查纠正技术实现坏块管理功能;

根据所述第一表格确定耗损均衡值,并根据所述耗损均衡值实现垃圾回收功能。

本发明实施例所提供的基于硬件实现闪存的FTL功能的方法及其数据存储装置,先通过状态机对闪存芯片进行辨认处理以获取闪存芯片的芯片资讯,再根据芯片资讯建立目标表格,最后根据目标表格实现闪存控制器的FTL功能,所述FTL功能包括地址映射功能、坏块管理功能及垃圾回收功能。即,本发明实施例通过状态机、基于硬件的方式实现了闪存控制器的上述三大功能,加快了产品上市流程。此外,本发明实施例基于纯硬件实现FTL功能的过程,不需要程序代码,因此提高了工作效率。

附图说明

为了更清楚地说明本发明具体实施方式或现有技术中的技术方案,下面将对具体实施方式或现有技术描述中所需要使用的附图作简单地介绍。在所有附图中,类似的元件或部分一般由类似的附图标记标识。附图中,各元件或部分并不一定按照实际的比例绘制。

图1是本发明第一实施例提供的基于硬件实现闪存的FTL功能的方法的流程示意图;

图2是本发明第二实施提供的基于硬件实现闪存的FTL功能的方法的流程示意图;

图3是读取动作示意图;

图4是串列示意图;

图5是本发明第一实施例提供的数据存储装置的结构示意图;

图6是本发明第二实施例提供的数据存储装置的结构示意图。

具体实施方式

下面将结合附图对本发明技术方案的实施例进行详细的描述。以下实施例仅用于更加清楚地说明本发明的技术方案,因此只是作为示例,而不能以此来限制本发明的保护范围。

需要注意的是,除非另有说明,本申请使用的技术术语或者科学术语应当为本发明所属领域技术人员所理解的通常意义。

本发明实施例的方法适用于数据存储装置,该数据存储装置包括闪存控制器及闪存芯片,该闪存控制器包括状态机。

请参考图1,是本发明第一实施例所提供的基于硬件实现闪存的FTL功能的方法流程示意图,如图所示,该方法可以包括以下步骤:

S101,当数据存储装置时,状态机对闪存芯片进行辨认处理以获取闪存芯片的芯片资讯;

S102,状态机根据芯片资讯建立目标表格;

S103,状态机根据目标表格实现闪存控制器的FTL功能,该FTL功能包括地址映射功能、坏块管理功能及垃圾回收功能。

本发明实施例通过状态机、基于硬件的方式实现了闪存控制器的上述三大功能,加快了产品上市流程。此外,本发明实施例基于纯硬件实现FTL功能的过程,不需要程序代码,因此提高了工作效率。

请参考图2,是本发明第二实施例所提供的基于硬件实现闪存的FTL功能的方法流程示意图,如图所示,该方法可以包括以下步骤:

S201,当数据存储装置上电时,状态机对闪存芯片进行辨认处理以获取闪存芯片的芯片资讯。

当闪存芯片插入闪存控制器时,状态机可采用通道(channel)及片选(chipselection)读取该闪存芯片的编号(ID)及其制造商信息,该读取动作的示意图如图3所示。之后,状态机根据编号及制造商信息查找预设的硬件表格以获取闪存芯片的芯片资讯,从而实现状态机对闪存芯片的自动辨认。也就是说,状态机对闪存芯片进行辨认处理的过程就是获取闪存芯片的芯片资讯的过程,后续的基于硬件实现闪存控制器功能的处理步骤都是基于芯片资讯进行的。其中,该芯片资讯包括闪存芯片的区块(block)数量、区块大小、页(page)的数量及页的大小。

需要说明的是,上述读取操作,每个闪存芯片都是独立的,多个制造商的产品可以混合使用。且,采用上述方式,对于不同制造商的闪存芯片,状态机都可以自动完成辨认,不需要对软件做任何修改。

还需要说明的是,上述闪存控制器及闪存芯片是打件在印刷电路板上的,在进行本发明实施例的方法之前,是先做一次初始化动作,以将基于区块或页的表格建立起来。

S202,状态机将芯片资讯加载至闪存芯片。

状态机将闪存芯片的区块(block)数量、区块大小、页(page)的数量及页的大小等芯片资讯加载至闪存芯片。

S203,状态机根据芯片资讯建立目标表格。

该目标表格包括第一表格及第二表格,第一表格是根据每个通道上的所有闪存芯片的区块所建,第二表格根据闪存芯片的页所建,第二表格用于管理页的使用分配及页的使用。

具体地,状态机将每个通道(channel)所有闪存芯片的区块(block)建立一个表格(即第一表格,表1),表1中的每个栏位表示区别是好的或坏的。

芯片0blkO0。。。。。。blkN0(区块0)芯片1blk01。。。。。。blkN1(区块1)芯片2blk02。。。。。。blkN2(区块2)芯片3blk03。。。。。。blkN3(区块3)

表1

每个区块(block)再建立一个表格(即第二表格,表2)。

区块0pgO0。。。。。。pgN0(页0)区块1pg01。。。。。。pgN1(页1)区块2pg02。。。。。。pgN2(页2)区块3pg03。。。。。。pgN3(页3)

表2

S204,状态机采用第一索引查找第一表格,并采用第二索引比对逻辑地址以实现地址映射功能。

以将32bit的地址映射至13bit的地址为例进行描述。地址为32bit,当区块大小为512字节(byte)时,用索引[21:9]当作第一表格或第二表格的索引;当区块大小为2048字节时,则用索引[24:12]当作第一表格或第二表格的索引。需要说明的是,地址映射主要指的是有逻辑地址映射为物理地址。具体地,状态机先用第一索引[21:9]或[24:12]查找第一表格或第二表格,再用第二索引[31:22][31:25]当资料比对逻辑地址,如果发现是新的地址,则添加该地址至串列之后,从而形成新的串列。其中,串列示意图如图4所示。对图4需要做如下说明:图中的每个描述元有栏位:block/page表示这个地址以block或page为单位;地址栏存储逻辑地址和物理地址;长度栏位表示资料长度。进一步地,举例来说,将32bit的地址映射至13bit表格,将13bit地址定义为第一序列,将剩余19bit数目扣除block/page的bit数目定义为第二序列,映射时,若有重复的entry,则依照先后顺序建立串列。

S205,状态机根据第二表格中每一个页的坏位元数目及错误检查纠正技术实现坏块管理功能。

当前述基于区块建立的表2用于管理页(page)的好坏时,对表2做如下说明:(1)栏位表示页的好/坏,当一个页的坏位元数目在错误检查及纠正技术(Error CorrectionCode,ECC)可以更正错误的能力之前,都当作是好的,则标示为好的,当坏位元数据在ECC可以更正错误能力之后,都当作是坏的,则标示为坏的;(2)坏位元数目:每次做完ECC之后,可以得到的资料错误的数目。

根据表2的说明,状态机根据第二表格中每一个页的坏位元数目及错误检查纠正技术课确定区块中页的好坏。当区块中所有页都被标示为坏的时候,则对第一表格中区块所属的位置,标注该区块为坏块,且以后不再清除使用,从而实现坏块管理功能。

S206,状态机根据第一表格确定耗损均衡值,并根据耗损均衡值实现垃圾回收功能。

当第一表格(表1)用于垃圾回收时,第一表格中包括多个栏位,每个栏位有下列描述元以记录每个区块的特性:(1)有无使用;(2)抹除次数;(3)页使用数目;(4)资料使用频率;(5)综合分数。进一步地,状态机在进行垃圾回收时,每个区块会再建立如表2的表格来管理页的分配。此时,表2中每个栏位的描述元如下:1代表页被使用,0代表页没有使用。

具体地,状态机进行垃圾回收时,综合分数会依据前面的描述元,如抹除次数得出耗损均衡值,再根据该耗损均衡值进行垃圾回收。

S207,根据垃圾回收结果建立串列。

状态机进行垃圾回收之后,会得到页被使用或没有被使用的垃圾回收结果,如果页是没有使用的,每个通道(channel)建立串列,该串列会有描述元说明是哪个闪存芯片、哪个区块。

本发明实施例所提供的基于硬件实现闪存控制器的FTL功能的方法,先通过状态机对闪存芯片进行辨认处理以获取闪存芯片的芯片资讯,再根据芯片资讯建立目标表格,最后根据目标表格实现闪存控制器的地址映射功能、坏块管理功能及垃圾回收功能。即,本发明实施例通过状态机、基于硬件的方式实现了闪存控制器的上述三大功能,加快了产品上市流程。此外,本发明实施例基于纯硬件实现FTL功能的过程,不需要程序代码,因此提高了工作效率。且该方法降低了闪存控制器功耗及产品制造成本。

此外,实施本发明实施例所提供的方法,就像使用者不用去管网络实体层速度是10Mbps、100Mbps还是1000Mbps,材质是同轴还是光纤,只要一插入网线,底层就会自动协商,让厂商更换闪存芯片就像使用网络,插上去便能够使用,给使用者带来了极大的方便。

相应地,本发明实施例还提供了一种数据存储装置的结构示意图,如图5所示,该数据存储装置可以包括进行数据交互的闪存控制器10及闪存芯片11,该闪存控制器10包括状态机101。

其中,状态机103用于:

当数据存储装置上电时,对闪存芯片进行辨认处理以获取闪存芯片的芯片资讯;

根据芯片资讯建立目标表格;

根据目标表格实现闪存控制器的FTL功能,所述FTL功能包括地址映射功能、坏块管理功能及垃圾回收功能。

进一步地,状态机103具体用于:

采用通道及片选读取所述闪存芯片的编号及制造商信息;

根据所述编号及制造商信息查找预设的硬件表格以获取所述闪存芯片的芯片资讯;

将所述芯片资讯加载至所述闪存芯片。

进一步地,目标表格包括第一表格及第二表格,所述第一表格根据每个通道上所有闪存芯片的块数量所建,所述第二表格根据每个区块所建,状态机13具体用于:

采用第一索引查找第一表格或第二表格,并采用第二索引比对逻辑地址以实现地址映射功能;

根据所述第二表格中每一个页的坏位元数目及错误检查纠正技术实现坏块管理功能;

根据所述第一表格确定耗损均衡值,并根据所述耗损均衡值实现垃圾回收功能;

根据垃圾回收处理结果建立串列。

需要说明的是,本发明实施所提供的数据存储装置是用在以快闪记忆体为主体的产品上,具体实施可以是以下中的任意一种,但不仅限于以下几种:(1)通用序列总线闪存装置(USB flash device);(2)固态硬盘(SSD);(3)嵌入式快闪存储器模块(如eMMC,eMCP);(4)通用快闪记忆体存储(如UFS);(5)SD卡或安全数字输入输出卡(Secure Digital Inputand Output Card,SDIO)。

实施本发明实施例所提供的数据存储装置,通过状态机、基于硬件的方式实现了闪存控制器的上述三大功能,加快了产品上市流程,降低了闪存控制器功耗及产品制造成本。此外,本发明实施例基于纯硬件实现FTL功能的过程,不需要程序代码,因此提高了工作效率。

请参考图6,在本发明另一实施例中,数据存储装置包括闪存控制器及多个闪存芯片。进一步地,闪存控制器内部集成有FTL状态机、多个LDPC(Low Density Parity CheckCode,低密度奇偶校验码)、多个NFC(NAND Flash Controller,NAND Flash控制器)。其中,FTL状态机用于执行地址映射、坏块管理及垃圾回收功能;每一个LDPC及NFC对应一闪存芯片及一通道(channel),且LDPC0及NFC0对应闪存芯片0及数据通道(data>n及NFCn对应闪存芯片n及数据通道(data>n+1及NFCn+1进行数据交互,并进一步地对应于闪存芯片n+1,且闪存芯片n+1对应于管理通道(management>

以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围,其均应涵盖在本发明的权利要求和说明书的范围当中。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号