基于nvm的固态硬盘元数据管理方法及系统

文档序号:1296035 发布日期:2020-08-07 浏览:6次 >En<

阅读说明:本技术 基于nvm的固态硬盘元数据管理方法及系统 (NVM-based solid state hard disk metadata management method and system ) 是由 毕鉴忠 于 2019-01-31 设计创作,主要内容包括:本发明公开了基于NVM的固态硬盘元数据管理方法,属于固态硬盘管理领域,解决的问题是如何满足使用者从外部了解固态硬盘的内部状况并对固态硬盘进行配置设定;其方法包括通过NVM存储闪存芯片的标识信息、闪存芯片的分配信息、闪存芯片的配置信息以及元数据信息,外部操作系统下发指令并通过硬盘控制器对NVM进行读写操作,根据指令硬盘控制器与NVM进行信息交互并对闪存芯片进行读写操作或配置操作。其结构包括外部操作系统、NVM和固态硬盘,固态硬盘至少配置有硬盘控制器、闪存芯片、总线接口、FTL层、读取操作模块和加密模块。通过NVM存储闪存芯片的相关信息,可减轻闪存的磨耗。(The invention discloses a solid state disk metadata management method based on NVM (non volatile memory), which belongs to the field of solid state disk management and solves the problem of how to satisfy the requirement of a user to know the internal condition of a solid state disk from the outside and configure and set the solid state disk, wherein the method comprises the steps of storing identification information of a flash memory chip, distribution information of the flash memory chip, configuration information of the flash memory chip and metadata information by the NVM, issuing an instruction by an external operating system, carrying out read-write operation on the NVM by a hard disk controller, carrying out information interaction with the NVM according to the instruction and carrying out read-write operation or configuration operation on the flash memory chip.)

基于NVM的固态硬盘元数据管理方法及系统

技术领域

本发明涉及固态硬盘管理领域,具体地说是基于NVM的固态硬盘元数据管理方法及系统。

背景技术

一般固态硬盘都由CPU执行固件(英文全称为Firmware,由产品厂商在量产程序时写入闪存中),使用者若想知道固态硬盘内部状态如闪存寿命、磨损状况等,需要和CPU沟通,控制器实现FTL(FTL是Flash translation layer(闪存转换)的英文缩写,FTL是一种软件中间层,最初是由Intel提出的,用于将闪存模拟成为虚拟块设备,从而能够在闪存上实现FAT等等块设备类文件系统)。

如何满足使用者从外部了解固态硬盘的内部状况并对固态硬盘进行配置设定,是需要解决的技术问题。

发明内容

本发明的技术任务是提供基于NVM的固态硬盘元数据管理方法及系统,来解决如何满足使用者从外部了解固态硬盘的内部状况并对固态硬盘进行配置设定的问题。

本发明的技术任务是按以下方式实现的:

基于NVM的固态硬盘元数据管理方法,应用于至少由外部操作系统、NVM(英文全称为Non-Volatile Memory,中文翻译为非挥发性记忆体)以及配置有硬盘控制器、闪存芯片以及总线接口的固态硬盘组成的硬件系统,所述NVM为不包含NAND FLASH的Non-NAND NVM,闪存芯片为NAND闪存芯片,元数据管理方法为:通过NVM存储闪存芯片的设备信息、闪存芯片的分配信息、闪存芯片的配置信息以及元数据信息,外部操作系统下发指令并通过硬盘控制器对NVM进行读写操作,根据指令硬盘控制器与NVM进行信息交互并对闪存芯片进行读写操作或配置操作。

其中,本发明中限定NVM为可随机读写、容量相对不大、成本高于NAND的除NANDFLASH之外的NVM,即Non-NAND NVM。该Non-NAND NVM包括常见的EEPROM(英文全称为Electrically Erasable Programmable read only memory,中文翻译为带电可擦可编程读写存储器)、NOR FLASH、FRAM(英文全称为Ferroelectric RAM,中文翻译为铁电存储器)、MRAM(英文全称为Magnetic Random Access Memory,中文翻译为磁性随机存储器)、RRAM(英文全称为Resistive Random Access Memory,中文翻译为阻变式存储器)等。

闪存芯片的设备信息用于识别闪存芯片的型号、生产厂商等信息;闪存芯片的分配信息用于标识闪存芯片的块划分、页划分情况,以及页物理映射表地址,便于对闪存芯片进行访问和读写操作;闪存芯片的配置信息用于通过参数设定对闪存芯片进行配置,如闪存芯片的颗粒类型以及不同颗粒对应的ReadRetry电压;元数据信息用于记载闪存芯片的耗损状态以及通过硬盘控制器对闪存芯片进行读写操作、分配操作或者配置操作等的执行反馈。外部操作系统通过硬盘控制器向NVM下发指令,根据指令,硬盘控制器从NVM中中获取相关信息并访问闪存芯片,以实现对闪存芯片的读写操作、分配操作、配置操作等,与上述操作相关的元数据信息存储在闪存芯片中,同时元数据信息在闪存芯片中的位址存储在NVM中,便于外部操作系统通过硬盘控制器从NVM中调用元数据信息的位址,以快速实现闪存芯片的查看和配置。

进一步的,闪存芯片的设备信息包括但不限于设备ID、设备序列号、设备版本号、设备制造商、设备型号、支持协议;硬件开启时,通过硬盘控制器逐个对闪存芯片进行设备信息核对;

通过闪存芯片中的页存储与上述设备信息核对相关的元数据信息,并将上述元数据信息在闪存芯片中的位址写入NVM。

进一步的,闪存芯片的分配信息包括但不限于块数量、块容量、页数量、页容量和页物理映射表的地址;

通过硬盘控制器对闪存芯片进行块重新分配和页重新分配后,对存储于闪存芯片中的页物理映射表以及存储于NVM中的页物理映射表的地址进行实时更新;

通过闪存芯片存储与上述重分配相关的元数据信息,并将上述元数据信息在闪存芯片中的位址写入NVM。

进一步的,硬件开启后,通过硬盘控制器将存储于NVM中的分配信息加载至FTL相关的结构中;

通过闪存芯片存储与上述加载相关的元数据信息,并将上述元数据信息在闪存芯片中的位址写入NVM。

进一步的,分配信息还包括部分常用的页物理映射地址表。

进一步的,闪存芯片的配置信息包括但不限于时序模式参数、颗粒类型参数以及操作模式参数,时序模式参数用于选取并设定闪存芯片的时序,颗粒类型参数用于选取并设定闪存芯片的存储颗粒类型,操作模式参数用于选取并设定闪存芯片的操作模式;通过硬盘控制器获取配置信息并根据配置信息对闪存芯片进行配置;通过闪存芯片存储与上述配置相关的元数据信息,并将上述元数据信息在闪存芯片中的位址写入NVM。

进一步的,固态硬盘配置有读取资料模块,通过NVM存储存储颗粒对应的ReadRetry电压;通过硬盘控制器将存储于NVM中的ReadRetry电压加载至读取资料模块;

通过闪存芯片存储与上述ReadRetry电压加载相关的元数据信息,并将上述元数据信息在闪存芯片中的位址写入NVM。

进一步的,固态硬盘配置有加密模块,通过NVM存储由外部操作系统下发的加密密钥;当硬件开启后,通过硬盘控制器将加密密钥加载至加密模块;

通过闪存芯片存储与上述加密密钥加载相关的元数据信息,并将上述元数据信息在闪存芯片中的位址写入NVM。

进一步的,元数据信息存储于闪存芯片的页中,存储元数据信息的页的页地址存储于NVM中。

基于NVM的固态硬盘元数据管理系统,包括外部操作系统、NVM和固态硬盘,固态硬盘至少配置有硬盘控制器、闪存芯片、总线接口、FTL层、读取操作模块和加密模块,外部操作系统通过总线接口与硬盘控制器电连接,FTL层配置于硬盘控制器上,硬盘控制器分别与NVM、闪存芯片、读取操作模块和加密模块电连接;NVM用于存储闪存芯片的标识信息、闪存芯片的分配信息、闪存芯片的配置信息以及元数据信息。

本发明的基于NVM的固态硬盘元数据管理方法及系统具有以下优点:

1、NVM的寿命大于闪存芯片的寿命,鉴于闪存芯片异地更新的特性,导致元数据存放的位址无法固定,通过NVM存储元数据的位址,便于到闪存芯片中查找元数据信息,并减轻闪存芯片的磨耗,延长闪存芯片的寿命;

2、在NVM中存储有部分常用的页映射地址表,便于快速启动程序,并减少了对闪存芯片的损耗;

3、实时对页映射地址表的地址进行更新,避免意外掉电造成的信息丢失,并可确保下次开机功能的正常启动;

4、因为将元数据的位址存储于NVM中,且位址是预先设计定义的,这样可避免除了NAND FLASH芯片第一个区块是要良好的限制,闪存芯片制造商不用将第一个区块是不良区块的芯片筛掉,可以大幅度降低固态硬盘NAND FLASH的成本。

附图说明

下面结合附图对本发明进一步说明。

附图1为实施例2基于NVM的固态硬盘元数据管理系统的结构框图。

具体实施方式

参照说明书附图和具体实施例对本发明的基于NVM的固态硬盘元数据管理方法及系统作以下详细地说明。

实施例1:

基于NVM的固态硬盘元数据管理方法,应用于由外部操作系统、NVM以及配置有硬盘控制器、闪存芯片以及总线接口的固态硬盘组成的硬件系统,其中,NVM为不包含NANDFLASH的Non-NAND NVM,闪存芯片为NAND闪存芯片;硬盘控制器配置有FTL层、读取操作模块以及加密模块。总线接口为PCIE接口或者SATA接口。

该元数据管理方法包括:通过NVM存储闪存芯片的设备信息、闪存芯片的分配信息、闪存芯片的配置信息以及元数据信息,外部操作系统下发指令并通过硬盘控制器对NVM进行读写操作,根据指令硬盘控制器与NVM进行信息交互并对闪存芯片进行读写操作或配置操作。

其中,闪存芯片的设备信息包括但不限于设备ID、设备序列号、设备版本号、设备制造商、设备型号、支持协议。固态硬盘制造商将闪存芯片的设备信息如设备ID、设备序列号、设备版本号、设备制造商、设备型号、支持协议等写入NVM中,硬件开卡时,基于现有的规范协议例如ONFI(英文全称为:Open NAND Flash Interface,中文翻译为:开放式NAND快闪存储器接口)规范协议或者Toggle规范协议,通过硬件控制器逐一比对每个闪存芯片与其相应的设备信息是否符合。具体的,硬盘制造商将闪存芯片的标识信息写入NVM,硬盘控制器在第一次建立闪存芯片的信息的时候,硬盘控制器会向NVM发送指令并读取闪存芯片的设备信息,然后对每个闪存芯片以及对应的设备信息进行比对。

在对闪存芯片进行核对过程中,产生元数据信息,该元数据信息以数据链表的形式存入页中,同时该数据链表的表头写入NVM中进行存储,便于外部操作系统调取查看。

闪存芯片的分配信息包括但不限于块数量、块容量、页数量、页容量和页物理映射表的地址。硬盘制造商将闪存芯片的分配信息,例如块数量、块容量、页数量、页容量、页物理映射表的地址以及部分常用页物理映射表等存入EERPOM中,当硬件开启后,硬盘控制器将存储于NVM中的上述分配信息加载至FTL相关的结构中,并将加载产生的元数据信息存储于闪存芯片在页中,上述存储元数据信息的页的页地址存储在NVM中。

当外部操作系统对页执行读写操作时,硬盘控制器通过页物理映射表的地址可迅速访问对应的页;当外部操作系统查询存储芯片的块分配以及页分配状况时,硬盘控制器可调用NVM中的页地址访问相应的元数据以通过元数据信息得知闪存芯片的块分配以及页分配的的执行情况。

当硬盘控制器对闪存芯片进行块重分配以及页重分配后,对存储于于闪存芯片中的页物理映射表以及存储于NVM中的页物理映射表的地址进行更新,并将重分配产生的元数据信息存储于闪存芯片在页中,上述存储元数据信息的页的页地址存储在NVM中。以避免意外掉电和确保下次开机功能正常。

具体的,硬盘控制器在进行块分配以及页分配时,会建立相关的队列,例如request page queue,release page queue,block info queue,page allocation queue,wear leveling queue,garbage collection queue等,并将上述队列的队列地址写入EERPROM中,当硬件开启后,硬盘控制器会读取队列地址,并建立相关链表和表格,通过链表和表格存储上述队列信息,以完成开机。当硬盘控制器进行块重分配以及列重分配后,会对上述队列进行插入或删除操作,从而导致队列的队列地址发生变化,随时更新存储于NVM中的分配信息,确保上述队列的正确无误,避免下次开机程序失败。

部分常用的页映射地址表可为硬件开启后,最先载入的页映射表;或者对于常常使用的程序功能,将其存放在闪存芯片中的页的地址对应的页映射表载入NVM。

闪存芯片包括多种存储颗粒类型,例如SLC(英文全称为Single-Level Cell,中文翻译为单层单元)、MLC(英文全称为Multi-Level Cell,中文翻译为多层单元)、TLC(英文全称为Trinary-Level Cell,中文翻译为三层单元)、QLC(英文全称为Quad-Level Cell,中文翻译为四层单元)等,不同的存储颗粒类型对应不同的ReadRetry(一种通过调整颗粒读电压来恢复数据的技术,ReadRetry使用的读电压档位由颗粒厂商提供,固态硬盘通过遍历这些电压值来尝试恢复数据)电压,通过NVM存储存储颗粒对应的ReadRetry电压,硬件开启后,通过硬盘控制器将存储于NVM中的ReadRetry电压加载至读取资料模块,并将ReadRetry电压加载产生的元数据信息存储于闪存芯片在页中,上述存储元数据信息的页的页地址存储在NVM中。

外部操作系统下发AES(英文全称为Advanced Encryption Standard,中文翻译为高级加密标准)、SHA(英文全称为Secure Hash Algorithm,中文翻译为安全散列算法)、SM1,(英文全称为SM1cryptographic algorithm,中文翻译为商密1号算法,亦称SCB2算法)~SM4(为中华人民共和国政府采用的一种分组密码标准)等的加密密钥,通过NVM存储加密密钥。当硬件开启后,通过硬盘控制器将加密密钥加载至加密模块,并将加密密钥加载产生的元数据信息存储于闪存芯片在页中,上述存储元数据信息的页的页地址存储在NVM中。

闪存芯片的配置信息包括但不限于时序模式参数、颗粒类型参数以及操作模式参数,时序模式参数用于选取并设定闪存芯片的时序,颗粒类型参数用于选取并设定闪存芯片的存储颗粒类型,存储颗粒的类型包括SLC,MLC,TLC,QLC等;操作模式参数用于选取并设定闪存芯片的操作模式。固态硬盘制造商将上述配置信息存储在EEPROM中,硬件开启后,通过硬盘控制器获取配置信息并根据配置信息对闪存芯片进行配置,并将配置产生的元数据信息存储于闪存芯片在页中,上述存储元数据信息的页的页地址存储在NVM中。

在外部操作系统上配置有用户界面,外部操作系统通过PCIe/NVMe或是SATA总线接口与硬盘控制器连接,使用者在用户界面上输入指令,外部操作系统通过硬盘控制器访问NVM,并对NVM进行读写操作,硬盘控制器与NVM进行信息交互,从而可根据对应的元数据信息对闪存芯片进行功耗状态查看,并可查看对闪存芯片的分配执行情况、配置执行情况等。

在对闪存芯片进行读写操作或者分配操作或者配置操作时,每次操作会产生元数据信息,元数据信息用于记录块的抹写次数、页的使用状况以及每个操作的执行状况,上述元数据信息记录在页中,从而页会不断更换,将页对应的页映射地址表的地址存入NVM中,外部操作系统获取闪存芯片的信息或者对闪存芯片进行操作时,通过页映射地址表访问对应的页,便于快速访问对应的页,并可减少对闪存芯片的损耗;

实施例2:

本发明公开了一种基于NVM的固态硬盘元数据管理系统,包括外部操作系统、NVM和固态硬盘,固态硬盘至少配置有硬盘控制器、闪存芯片、总线接口、FTL层、读取操作模块和加密模块,外部操作系统通过总线接口与硬盘控制器电连接,FTL层配置于硬盘控制器上,硬盘控制器分别与NVM、闪存芯片、读取操作模块和加密模块电连接;NVM用于存储闪存芯片的标识信息、闪存芯片的分配信息、闪存芯片的配置信息以及元数据信息。

本实施例中总线接口为SATA接口。在应用中,总线接口不限于SATA接口,也可为PCIE接口、UFS接口等总线接口或者未来的更高速率的总线接口。

该基于NVM的固态硬盘元数据管理系统可执行实施例1公开的基于NVM的固态硬盘元数据方法。

以上所述实施例仅是为充分说明本发明而所举的较佳的实施例,本发明的保护范围不限于此。本技术领域的技术人员在本发明基础上所作的等同替代或变换,均在本发明的保护范围之内。本发明的保护范围以权利要求书为准。

9页详细技术资料下载
上一篇:一种医用注射器针头装配设备
下一篇:减少写入效能变化并防止IO阻塞的方法

网友询问留言

已有0条留言

还没有人留言评论。精彩留言会获得点赞!

精彩留言,会给你点赞!

技术分类