掌桥专利:专业的专利平台
掌桥专利
首页

一种基于MRAM缓存的混合型NVME SSD存储系统

文献发布时间:2023-06-19 16:08:01



技术领域

本发明涉及移动存储领域,具体是一种基于MRAM缓存的混合型NVME SSD存储系统。

背景技术

NVME是一种应用于非易失性存储器的主机控制器接口规范。目前广泛应用于PCIExpress总线实现的应用层协议,用于与非易失性存储介质进行连接。NVME SSD与传统的SATA SSD硬盘可提供的最大32组命令队列相比,它提供了数千个并行队列控制IO数据流,可大幅降低延迟,并大幅提升SSD的IOPS能力。

目前的NVME SSD中采用NAND FLASH作为非易失性存储器,但是NAND FLASH闪在应用时,需要结合其使用限制完成SSD软件代码的开发。同时由于3D TLC NAND 的出错率太高,BCH 没办法解决,则必须使用LDPC。另外,如果在SSD读、写、删除等正常工作的情况下出现异常掉电,有可能会导致FTL映射表因为来不及更新而丢失,从而出现SSD无法被系统识别的故障。

发明内容

针对现有技术的缺陷,本发明提供一种基于MRAM缓存的混合型NVME SSD存储系统,提高NVME SSD控制器随机性能及可靠性,保障数据安全,解决掉电保护问题,减少掉电恢复时间。

为了解决所述技术问题,本发明采用的技术方案是:一种基于MRAM缓存的混合型NVME SSD存储系统,包括SSD控制器、易失存储层和非易失存储层,SSD控制器包括PCIe接口、NVME命令解析器、FTL映射管理器、NAND控制器、MRAM控制器和DRAM控制器,易失存储层包括外置DRAM,非易存储层包括外置NAND和外置MRAM,PCIe接口、NVME命令解析器、FTL映射管理器依次连接,NAND控制器、MRAM控制器和DRAM控制器均与FTL映射管理器相连,外置DRAM与DRAM控制器相连,外置NAND与NAND控制器相连,外置MRAM与MRAM控制器相连;PCIE接口用于与上层应用层进行数据传输,NVME控制器用于处理NVME协议并完成在非易失存储层中的外置MRAM中管理SSD控制器内部的存储缓冲区CMB以及永久性内存区PMR的创建和使用;FTL映射管理器负责维护易失存储层和非易失存储层的逻辑块地址LBA到存储介质物理块地址PBA的映射关系;外置DRAM用来存放读缓冲数据、FTL映射表,外置NAND用于存放普通应用中的用户数据以及FTL映射表,外置MRAM用于存放CMB数据、PMR数据、写缓冲数据、FTL映射表变化量Delta和日志信息;在使用外置DRAM易失存储层时,FTL映射管理器将映射表、读数据缓存通过DRAM控制器放在外置DRAM中;在使用非易失存储层中的MRAM存储区时,FTL映射管理器将写数据缓存、Delta数据、Log数据通过MRAM控制器放在外置MRAM中;在使用非易失存储层中的NAND FLASH存储区时,FTL映射管理器将用户数据通过NAND控制器放在外置NAND中。

进一步的,基于该系统的组件间数据流路径为:用户数据流的写方向为由FTL映射管理器至MRAM控制器或者由FTL映射管理器至NAND控制器;用户数据流的读方向由NAND控制器至DRAM控制器,再由DRAM控制器至外置DRAM或者由DRAM控制器至FTL映射管理器;映射表数据流的写方向为由NAND控制器至DRAM控制器,映射表数据流的读方向为由DRAM控制器至NAND控制器;Delta数据流的写方向为由DRAM控制器至MRAM控制器,Delta数据流的读方向为由MRAM控制器至DRAM控制器;Log数据流的写方向为由FTL映射管理器至MRAM控制器,Log数据流的读方向为由MRAM控制器至FTL映射管理器。

进一步的,SSD控制器的内存地址中设有存储缓冲区CMB,通过NVME Identify命令向主机端提交SSD控制器所支持的CMB配置,主机端通过PCIE接口配置NVME寄存器中的CMBLOC配置存储缓冲区CMB的基地址及偏移地址,并通过CMBSZ配置存储缓冲区CMB的大小;基于CMB实现的发送队列,则是主机将发送队列中的命令直接写入SSD控制器的内部存储缓冲区CMB中。

进一步的, PRP list或SGL list需要在PCIe接口上进行单独的读取操作,通过将PRP或SGL写入SSD控制器的内部存储缓冲区CMB来减少控制器的读取动作。

进一步的,外置MRAM中设有永久性内存区PMR,永久性内存区PMR通过 NVME协议进行管理,采用MRAM介质实现按1/2/4/8字节读写,同时,永久性内存区PMR向NVME主机端提供可预测的低延迟模式。

进一步的,NAND控制器包括NAND ECC单元及NAND接口,NAND接口负责与底层存储介质层中的外置NAND完成数据交互, NAND ECC单元采用低密度前向校验码LDPC纠错算法,对数据块进行保护。

进一步的,DRAM控制器包括DRAM ECC单元及DRAM接口,DRAM接口负责与底层存储介质层中的外置DRAM完成数据交互, DRAM ECC单元采用汉明码算法按字节进行保护,支持纠正一位检测两位。

进一步的,MRAM控制器包括MRAM ECC单元及MRAM接口,MRAM接口负责与底层存储介质层中的外置MRAM完成数据交互,MRAM ECC单元采用简化版的BCH算法按单字节或双字节进行保护,支持纠正2位检测3位。

进一步的,MRAM ECC单元采用里所码RS算法按4字节或8字节进行保护,支持纠正3位检测4位。

本发明的有益效果:

1、数据更安全,将缓存数据和关键管理数据还在MRAM里面,掉电再次上电后继续用。关机或重启时不会丢失数据,系统恢复后可立即重新载入,将服务器重启时间从分钟级别缩短到秒级别。

2、提供更广泛的应用场景,并提高系统的稳定性。随着NAND FLASH需求容量的提高,在传统方案中,为了能在DRAM中缓存更多的映射表或者写数据,需要增加足够多的电容用来维持在系统掉电前将缓存中的数据全部写入到NAND FLASH中。本发明基于MRAM介质,将最后更新的映射表保存在MRAM中,当SSD重新上电后,寻找上次映射表保存后写入的新数据,重新构建映射表,迅速使SSD进入正常状态。

3、作为写入缓冲器,可以实现更高效的I/O管理。将缓存由DRAM更换为MRAM可以提升SSD的I/O性能,使SSD制造商能够更好地管理I/O流,减少读、写并发时对于NAND控制器的管理压力,从而实现更好地延迟确定性,提高QoS。

4、解决包括计算机或服务器启动慢、数据丢失、数据装载缓慢、电池寿命短等问题。

5、在MRAM控制器中,根据实际用户数据的可靠性等级要求以及SSD控制器内各部件的访存要求,满足同时读写1/2/4/8字节的ECC要求,保证系统整体的可靠性。

附图说明

图1为本发明的原理框图。

具体实施方式

下面结合附图和具体实施例对本发明作进一步的说明。

实施例1

本实施例公开一种基于MRAM缓存的混合型NVME SSD存储系统,有针对性的提高NVME SSD控制器随机性能及可靠性,保障数据安全,解决掉电保护问题,减少掉电恢复时间。

如图1所示,本系统包括SSD控制器、易失存储层和非易失存储层,SSD控制器包括PCIe接口、NVME命令解析器、FTL映射管理器、NAND控制器、MRAM控制器和DRAM控制器,易失存储层包括外置DRAM,非易存储层包括外置NAND和外置MRAM,PCIe接口、NVME命令解析器、FTL映射管理器依次连接,NAND控制器、MRAM控制器和DRAM控制器均与FTL映射管理器相连,外置DRAM与DRAM控制器相连,外置NAND与NAND控制器相连,外置MRAM与MRAM控制器相连。

PCIE接口用于与上层应用层进行数据传输。

NVME控制器用于处理NVME协议,完成NVME协议识别、读、写、控制等命令的解析,并完成在非易失存储层中的外置MRAM中管理SSD控制器内部的存储缓冲区CMB以及永久性内存区PMR的创建和使用。

FTL映射管理器负责维护易失存储层和非易失存储层的逻辑块地址LBA到存储介质物理块地址PBA的映射关系。

外置DRAM用来存放读缓冲数据、FTL映射表,外置NAND用于存放普通应用中的用户数据以及FTL映射表,外置MRAM用于存放CMB数据、PMR数据、写缓冲数据、FTL映射表变化量Delta和日志信息;在使用外置DRAM易失存储层时,FTL映射管理器将映射表、读数据缓存通过DRAM控制器放在外置DRAM中;在使用非易失存储层中的MRAM存储区时,FTL映射管理器将写数据缓存、Delta数据、Log数据通过MRAM控制器放在外置MRAM中;在使用非易失存储层中的NAND FLASH存储区时,FTL映射管理器将用户数据通过NAND控制器放在外置NAND中。

本实施例中,NAND控制器包括NAND ECC单元及NAND接口,NAND接口负责与底层存储介质层中的外置NAND完成数据交互, NAND ECC单元采用低密度前向校验码LDPC纠错算法,对数据块进行保护。

DRAM控制器包括DRAM ECC单元及DRAM接口,DRAM接口负责与底层存储介质层中的外置DRAM完成数据交互, DRAM ECC单元采用汉明码算法按字节进行保护,支持纠正一位检测两位。

MRAM控制器包括MRAM ECC单元及MRAM接口,MRAM接口负责与底层存储介质层中的外置MRAM完成数据交互,MRAM ECC单元采用简化版的BCH算法按单字节或双字节进行保护,支持纠正2位检测3位。为了进一步提高可靠性,MRAM ECC单元也采用里所码RS算法按4字节或8字节进行保护,支持纠正3位检测4位。

本实施例中,基于该系统的组件间数据流路径为:用户数据流的写方向为由FTL映射管理器至MRAM控制器或者由FTL映射管理器至NAND控制器;用户数据流的读方向由NAND控制器至DRAM控制器,再由DRAM控制器至外置DRAM或者由DRAM控制器至FTL映射管理器;映射表数据流的写方向为由NAND控制器至DRAM控制器,映射表数据流的读方向为由DRAM控制器至NAND控制器;Delta数据流的写方向为由FTL映射管理器至MRAM控制器,Delta数据流的读方向为由MRAM控制器至DRAM控制器;Log数据流的写方向为由FTL映射管理器至MRAM控制器,Log数据流的读方向为由MRAM控制器至FTL映射管理器。

本实施例中,SSD控制器的内存地址中设有存储缓冲区CMB,通过NVME Identify命令向主机端提交SSD控制器所支持的CMB配置,主机端通过PCIE接口配置NVME寄存器中的CMBLOC配置存储缓冲区CMB的基地址及偏移地址,并通过CMBSZ配置存储缓冲区CMB的大小;基于CMB实现的发送队列,则是主机将发送队列中的命令直接写入SSD控制器的内部存储缓冲区CMB,这样减少了一个控制器从主机读取命令的动作,可以减少命令执行的延迟。

同样,PRP list或SGL list需要在PCIe接口上进行单独的读取操作,这也可以通过将PRP或SGL写入控制器内存缓冲区来减少控制器的读取动作。不采用这种模式主机端会把PRP或者SGL list写入到上位机的DRAM中,开启CMB这种模式以后,上位机就可以把PRP或者SGL list写入到SSD控制器中的CMB中,达到减少延迟的目的。

外置MRAM中设有永久性内存区PMR,永久性内存区PMR通过NVME协议进行管理,采用MRAM介质实现按1/2/4/8字节读写,MRAM的读写访问,可以使用内置MCU或者CPU进行按字节的访问,不需要向NAND FLASH这种永久性存储介质一样需要按照一定的page size进行读写,提高了灵活度。达到低延时,MRAM介质的读写延迟都是固定的,所以是可预测的;同时这种介质的读写速度与DRAM相近,是一种低延迟访问的介质,因此可以提供可预测的低延迟模式,且断电后数据不会丢失。用于存储需要改动较多的用户数据,提高系统的耐用性,减少对NAND FLASH的编程及擦写次数,专门用于需要频繁访问复杂数据集的环境。同时,向NVME主机端提供可预测的低延迟模式,因为该区域中的数据不需要考虑垃圾回收、磨损均衡的因素,因此大幅降低闪存垃圾回收等维护作业对随机读取延迟的影响。

以上描述的仅是本发明的基本原理和优选实施例,本领域技术人员根据本发明做出的改进和替换,属于本发明的保护范围。

技术分类

06120114715499