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

一种基于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存储系统,结合MRAM自身的优势,有针对性的提高NVME SSD控制器随机性能及可靠性,保障数据安全。

为了解决所述技术问题,本发明采用的技术方案是:一种基于MRAM主存的混合型NVME SSD存储系统,包括应用层、控制层和存储层,应用层包括n个应用I、1个应用II和PCIE接口I,n为正整数,应用II采用共享缓存HMB,共享缓存HMB与应用I的缓存区域分离;控制层包括n+1个Name Space管理器、PCIE接口II、NVME控制器、FTL映射管理器、内置SRAM、NAND控制器、DRAM控制器和MRAM控制器,PCIE接口II与PCIE接口相连,用于实现应用层与控制层的数据传输,n+1个Name Space管理器分别与n个应用I和1个应用II相对应,NVME控制器连接在PCIE接口II与n+1个Name Space管理器之间,NVME控制器用于处理NVME协议并将处理后的NVME协议传输至Name Space管理器,Name Space管理器将存储系统的用户空间进行逻辑划分,在Name Space管理器的管理下每个应用单独进行操作,FTL映射管理器连接于NameSpace管理器与内置SRAM、NAND控制器、DRAM控制器、MRAM控制器之间,FTL映射管理器负责维护逻辑块地址LBA到存储介质物理块地址PBA的映射关系;存储层包括外置NAND、外置DRAM和外置MRAM,外置NAND与NAND控制器相连,用于存放应用I中的用户数据以及FTL映射表,外置DRAM与DRAM控制器相连,用于存放读缓冲数据、写缓冲数据、FTL映射表、FTL映射表变化量、用户数据标签、用户配置项、运行日志,外置MRAM与MRAM控制器相连,用于存放应用II中的用户数据以及关键日志信息;内置SRAM用于n个Name Space的NVME读命令中缓存数据。

进一步的,基于本系统的组件间数据流路径为:NAND FLASH存储区中写数据流由FTL映射管理器至DRAM控制器,再由DRAM控制器至NAND控制器,读数据流为读数据流由NAND控制器经路径③到内置SRAM,经路径①到FTL映射管理器;MRAM存储区中写数据流路径为:由FTL映射管理器至MRAM控制,读数据流由MRAM控制器至FTL映射管理器;NAND FLASH存储区关键数据备份业务数据流由NAND控制器至FTL映射管理器,再由FTL映射管理器至MRAM控制器;关键数据导出业务数据流由MRAM控制器至FTL映射管理器,再由FTL映射管理器至DRAM控制器。

进一步的,应用I向主机端操作系统申请分配一块逻辑地址连续的缓存空间给控制层使用,控制层将FTL映射表存储到主机端的这块区域中,当每一笔IO请求发送到SSD之后,控制器通过PCIE接口访问主机端的这块存储空间从而提取出FTL映射表中对应的条目来查找对应IO目标逻辑地址所被映射到的物理地址。

进一步的,应用II对应的Name Space的建立流程为:

a)根据应用需求判断是否需要新建其对应的Name Space,如果需要,则通过私有命令协商建立Name Space,如果不需要,则跳转到步骤e);

b)读取MRAM颗粒ID,识别颗粒商;

c) 读取MRAM控制器信息,识别容量及速度;

d)应用层建立共享缓存HMB;

e)加载映射管理;

f)建立成功。

进一步的,共享缓存HMB的物理地址不连续,控制层采用基地址加偏移量的寻址方式用于HMB的防存查找。

进一步的,每个Name Space拥有自身的ID,每个Name Space的 ID与应用层中的应用 ID一致。

进一步的,在使用NAND FLASH存储区时,FTL映射管理器将映射表通过DRAM控制器放在外置DRAM中;在使用MRAM存储区时,FTL映射管理器将映射表通过PCIE接口放在上层应用层中的HMB中。

进一步的,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纠错算法,对数据块进行保护。

本发明的有益效果:

实现更高效的I/O管理。将MRAM做为SSD中补充的高可靠高性能存储区域,可以提升SSD的I/O性能,使SSD制造商能够更好地管理I/O流,从而实现更好地延迟确定性,提高QoS。

高可靠高性能区写入管理简单,采用数据块操作,不需要复杂的FTL算法管理,同时对数据块采用BCH进行整体保护后,提升了数据的可靠性,保持数据读写性能稳定,满足服务器应用等关键核心业务中的应用需求。

保持高性能高可靠存储区域写入数据原子性,保障写入该区域的IO操作的原子性,则一个IO要么完整的写入,要么整个写失败,不会出现一个IO中部分数据写入,部分未写入的情况。只有当该IO所有数据写入到MRAM中,才会给上位机回复写入完成。

在高性能高可靠存储区域使用过程中,SSD控制器所产生的临时数据放置于上位机中的HMB中,减少了对于SSD控制器中SRAM以及DRAM的使用需求,避免了两种类型NameSpace共同使用带来的一致性问题。

作为主机端外设块设备使用,具备很好的兼容性。因为我们把它当做块设备来用,只需要编写相应的私有指令就可以进行NameSpace创建和使用,并不用修改操作系统。

与DRAM混合使用构成新的内存系统,成本易于接受。在增加部分SSD控制器中单元模块的特定功能后,即可使用MRAM颗粒,根据用户业务需求使用相应的普通应用区域或高性能高可靠区域,既带来了关键业务性能的增长,又没有产生昂贵的成本,使大规模应用成为现实。

附图说明

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

图2为靠NameSpace建立流程示意图。

具体实施方式

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

实施例1

本实施例公开一种基于MRAM主存的混合型NVME SSD存储系统,有针对性的提高NVME SSD控制器随机性能及可靠性,保障数据安全。

如图1所示,本系统包括上层应用层、中间控制层和底部存储层。

应用层包括n个应用I、1个应用II和PCIE接口I,n为正整数。本实施例中,应用I为普通应用,其数量无限制,应用II为高性能高可靠应用。应用II采用共享缓存HMB,共享缓存HMB与应用I的缓存区域分离,保证该应用的缓存原子性,避免同步问题。应用I向主机端操作系统申请分配一块逻辑地址连续的缓存空间给控制层使用,控制层将FTL映射表存储到主机端的这块区域中,当每一笔IO请求发送到SSD之后,控制器通过PCIE接口访问主机端的这块存储空间从而提取出FTL映射表中对应的条目来查找对应IO目标逻辑地址所被映射到的物理地址。

本实施例中,共享缓存HMB的物理地址不连续,控制层采用基地址加偏移量的寻址方式用于HMB的防存查找。

控制层包括n+1个Name Space管理器、PCIE接口II、NVME控制器、FTL映射管理器、内置SRAM、NAND控制器、DRAM控制器和MRAM控制器,PCIE接口II与PCIE接口相连,用于实现应用层与控制层的数据传输,n+1个Name Space管理器分别与n个应用I和1个应用II相对应,每个Name Space拥有自身的ID,每个Name Space的 ID与应用层中的应用 ID一致。NVME控制器连接在PCIE接口II与n+1个Name Space管理器之间,NVME控制器用于处理NVME协议并将处理后的NVME协议传输至Name Space管理器,Name Space管理器将存储系统的用户空间进行逻辑划分,在Name Space管理器的管理下每个应用单独进行格式化和加密等操作,FTL映射管理器连接于Name Space管理器与内置SRAM、NAND控制器、DRAM控制器、MRAM控制器之间,FTL映射管理器负责维护逻辑块地址LBA到存储介质物理块地址PBA的映射关系。

本实施例中,NVME控制器包括标准命令解析单元和私有命令解析单元,标准命令解析单元用于建立及使用应用I对应的Name Space;私有命令解析单元用于建立及使用应用II对应的Name Space。

存储层包括外置NAND、外置DRAM和外置MRAM,外置NAND与NAND控制器相连,用于存放应用I中的用户数据以及FTL映射表,外置DRAM与DRAM控制器相连,用于存放读缓冲数据、写缓冲数据、FTL映射表、FTL映射表变化量、用户数据标签、用户配置项、运行日志,外置MRAM与MRAM控制器相连,用于存放应用II中的用户数据以及关键日志信息;内置SRAM用于n个Name Space的NVME读命令中缓存数据。

基于本系统的组件间数据流路径为:NAND FLASH存储区中写数据流由FTL映射管理器至DRAM控制器,再由DRAM控制器至NAND控制器,读数据流为读数据流由NAND控制器到内置SRAM,在由内置SRAM到FTL映射管理器;MRAM存储区中写数据流路径为:由FTL映射管理器至MRAM控制,读数据流由MRAM控制器至FTL映射管理器;NAND FLASH存储区关键数据备份业务数据流由NAND控制器至FTL映射管理器,再由FTL映射管理器至MRAM控制器;关键数据导出业务数据流由MRAM控制器至FTL映射管理器,再由FTL映射管理器至DRAM控制器。

如图2所示,应用II对应的Name Space的建立流程为:

a)根据应用需求判断是否需要新建其对应的Name Space,如果是应用层发出的首次请求,则需要新建,则通过私有命令协商开始建立Name Space流程,如果不需要,则跳转到步骤e);

b)读取MRAM颗粒ID,识别颗粒商、序列号、颗粒健康状态等信息;

c) 读取MRAM控制器信息,识别容量及速度,配置相应的MRAM ECC功能;

d)应用层建立共享缓存HMB,用于存放中间层SSD控制器运行过程中需要的各种缓存信息;

e)加载映射管理,根据应用层逻辑块地址大小建立不同的物理地址映射关系;

f)建立成功。

在使用NAND FLASH存储区时,FTL映射管理器将映射表通过DRAM控制器放在外置DRAM中;在使用MRAM存储区时,FTL映射管理器将映射表通过PCIE接口放在上层应用层中的HMB中。内置静态存储器SRAM,用于存放普通Name Space的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纠错算法,对数据块进行保护。

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

技术分类

06120114714277