一种半导体存储装置及计算机系统的制作方法

文档序号:18239528发布日期:2019-07-24 08:55阅读:155来源:国知局
一种半导体存储装置及计算机系统的制作方法

本发明涉及半导体存储技术领域,尤其涉及应用于计算机中意外掉电时具有应急备份功能的一种半导体存储装置,以及基于该半导体存储装置的一种计算机系统。



背景技术:

随着半导体器件制程技术的不断发展,中央处理器(CPU)和内存(Memory)的线宽和频率大幅提升,传统的机械硬盘(HDD)的IO瓶颈问题越来越严重地制约计算机性能的提升,于是人们开始使用闪存(FLASH)代替HDD。闪存通常采用单层单元结构(Single-level cell,SLC)或者多层单元结构(Multi-level Cell,MLC)。但是SLC型闪存的制造成本普遍较高,所以目前通常使用MLC型闪存,但是这种类型的闪存存在一定的使用寿命,通常为三千次左右。同时,由于DRAM是一种易失性存储器,因此当计算机掉电时,内存中临时存储的数据会消失;因此可将内存和闪存相结合成为一种非易失性内存(NVM,Non-volatile Memory)。当计算机正常供电时,NVM可利用其包含的内存(例如DRAM)快速地处理数据;当计算机正常关机或者意外掉电时,可将计算机操作系统中的元数据通过该NVM的内部总线保存至闪存中。

元数据可以包括用于管理逻辑地址与物理地址之间的映射、劣块管理、损耗均衡、用于检测或校正数据错误的纠错码(“ECC”)数据、或者它们的任何组合的任何信息。元数据可以包括与用户数据一起由计算机中的文件系统所提供的数据,比如逻辑地址。这样,一般来说,元数据可以是关于或相关于用户数据的任何信息,或者是通常用于管理非易失性存储器的操作和存储单元的任何信息。但是,当计算在正常关机以及意外掉电的时,通常需要将电源状态数据通过控制芯片保存至闪存中。当计算机上电自检时,首先判断上次计算机关机是正常关机还是意外掉电,从而由控制芯片从闪存中读取电源状态数据读取并确定自检顺序,上述电源状态数据通常占用一页(Page)大小的存储空间,该页大小为4KB。

由于任何数据在写入闪存时,首先需要先擦除某一Block(块数据)上的原有数据,并将需要写入的数据写入到擦除数据的Block中。通常,一个Block的大小为512KB(4KB*128)或者1024KB(4KB*256),甚至更大。这样就导致了在计算机正常关机的使用情况下,需要向闪存频繁地写入电源状态数据,从而加剧了闪存的磨损,影响闪存使用寿命。

同时,Ceph集群是目前最流行的开源分布式存储架构,其在一套基础架构中同时支持块存储、对象存储和文件存储,支持PB级的扩展能力,广泛应用于云计算环境中。然而,在固态存储介质(例如NAND存储器)的配置下,Ceph集群所体现的存储性能只有硬件极限性能的40%左右,因此极大地限制了计算机系统或者基于计算机系统所构建的云平台的存储能力,尤其是在读取大文件时存在一定的性能缺陷。



技术实现要素:

本发明的目的在于公开一种半导体存储装置,用以在计算机在正常关机时避免频繁地向闪存中写入电源状态数据,用以提高半导体存储装置中闪存的使用寿命,并实现在异常断电时保存内存中的临时数据;同时本发明还揭示了一种计算机系统,用以缩短IO路径,提升CPU的IOPS,以提高Ceph集群的存储性能。

为实现上述发明目的,本发明首先提供了一种半导体存储装置,所述半导体存储装置通过系统总线与主机相连,包括:

易失性存储器、第一非易失性存储器、通过接口模块与主机通讯的存储控制器,所述存储控制器响应于所述主机的电源信号和控制信号,并择一地与所述易失性存储器或第一非易失性存储器进行数据存取操作;

所述半导体存储装置还包括与所述存储控制器相连的第二非易失性存储器,所述存储控制器根据主机的电源信号,并以电源状态数据的形式保存至所述第二非易失性存储器,所述存储控制器与主机之间设置内核旁路模块。

作为本发明的进一步改进,所述第二非易失性存储器为ReRAM、FRAM;所述第一非易失性存储器为NAND存储器、相变存储器。

作为本发明的进一步改进,还包括电源管理模块以及与其连接备用储能装置,所述备用储能装置选自超级电容或者锂电池,所述电源管理模块与第一非易失性存储器、第二非易失性存储器、易失性存储器及存储控制器提供电源。

作为本发明的进一步改进,所述接口模块基于PCI-e通讯协议或者I2C通讯协议与系统总线相互通信。

作为本发明的进一步改进,所述第二非易失性存储器的容量不小于1MB。

作为本发明的进一步改进,所述存储控制器基于FPGA芯片或者ASIC芯片平台,并采用Verilog或者VHDL编程技术所形成。

作为本发明的进一步改进,所述内核旁路模块选自DPDK模块、SPDK模块或者RDMA模块。

作为本发明的进一步改进,所述存储控制器配置MMAP接口,并通过所述MMAP接口与接口模块相通信。

基于上述相同发明思想,本发明还揭示了一种计算机系统,其特征在于,包括:处理器,以及通过系统总线与主机相连的半导体存储装置;

所述半导体存储装置包括易失性存储器、第一非易失性存储器、通过接口模块与主机通讯的存储控制器,所述存储控制器响应于所述主机的电源信号和控制信号,并择一地与所述易失性存储器或第一非易失性存储器进行数据存取操作;

所述半导体存储装置还包括与所述存储控制器相连的第二非易失性存储器,存储控制器根据主机的电源信号以电源状态数据的形式保存至所述第二非易失性存储器,所述存储控制器与主机之间设置内核旁路模块。

作为本发明的进一步改进,所述内核旁路模块选自DPDK模块、SPDK模块或者RDMA模块;所述存储控制器配置MMAP接口,并通过所述MMAP接口与接口模块相通信;所述第一非易失性存储器为NAND存储器、相变存储器;所述第二非易失性存储器为ReRAM、FRAM。

与现有技术相比,本发明的有益效果是:在本发明中,可在计算机在正常关机时可将电源状态数据写入第二非易失性存储器中,避免频繁地向第一非易失性存储器中写入电源状态数据,从而显著地提高了半导体存储装置中第一非易失性存储器的使用寿命,实现了在异常断电时保存内存中的临时数据;同时,通过设置内核旁路模块,显著地缩短了IO路径,提升CPU的IOPS,从而显著地提高了基于该半导体存储装置所组建的Ceph集群的存储性能。

附图说明

图1为本发明一种半导体存储装置的结构图;

图2为本发明一种半导体存储装置在一种变形例中的结构图;

图3为本发明一种计算机系统的结构图;

其中,说明书中的附图标记说明如下:

100-半导体存储装置;200-计算机系统;101-控制器;102-第一非易失性存储器;103-易失性存储器;104-电源管理模块;105-第二非易失性存储器;106-外部电源;107-主机;109-内核旁路模块;108-接口模块;111-MMAP接口;112-系统总线;110-CPU(处理器);118-物理网卡(NIC);130-外网网络。

具体实施方式

下面结合附图所示的各实施方式对本发明进行详细说明,但应当说明的是,这些实施方式并非对本发明的限制,本领域普通技术人员根据这些实施方式所作的功能、方法、或者结构上的等效变换或替代,均属于本发明的保护范围之内。

在详细阐述本发明各个实施例之前,对说明书具体实施例中的部分技术术语进行定义。术语“固态存储介质”与“非易失性存储器”具等同含义。术语“第一”、“第二”仅用于区分不同技术特征,不能理解为对本发明技术方案的具体限制。

实施例一:

参图1所示,本实施例揭示了一种半导体存储装置100,该半导体存储装置100通过系统总线112与主机107相连,包括:

易失性存储器103、第一非易失性存储器102、通过接口模块108与主机107通讯的存储控制器101。存储控制器101响应于所述主机107的电源信号和控制信号,并择一地与易失性存储器103或第一非易失性存储器102进行数据存取操作。

在本实施例中,该半导体存储装置100还包括与存储控制器101相连的第二非易失性存储器105,存储控制器10根据主机107的电源信号,并以电源状态数据的形式保存至所述第二非易失性存储器105,存储控制器101与主机107之间设置内核旁路模块109。具体的,该内核旁路模块109选自DPDK模块、SPDK模块或者RDMA模块。

DPDK模块(Data Plane Development Kit)基于Linux系统运行,用于快速数据包处理的函数库与驱动集合,可以极大提高数据处理性能和吞吐量,提高数据平面应用程序的工作效率。DPDK模块使用了轮询(polling)而非中断来处理数据包。在收到数据包时,经DPDK模块重载的网卡驱动(嵌入运行于图3中的物理网卡(NIC)118中)不会通过中断通知CPU,而是直接将数据包写入易失性存储器103,交付应用层软件通过DPDK模块提供的接口来直接处理,这样节省了大量的CPU中断时间和易失性存储器103的拷贝时间。交付应用层软件可通过API与主机107对该半导体存储装置100进行数据访问,所述数据访问可包括数据写入操作、数据读取操作、数据修改操作、数据删除操作或者数据备份操作。

SPDK模块(Storage Performance Development Kit)用于加速使用第一非易失性存储器102(例如采用NVMe SSD形式)作为后端存储的应用软件加速库,该软件库的核心是用户态、异步、轮询方式的NVMe驱动。通过配置该SPDK模块可以大幅度降低延迟(Latency),同时提升单CPU核的IOPS。所述后端存储可采用一个或者多个本实施例所揭示的一种半导体存储装置100组成。

RDMA模块(Remote Direct Memory Access)全称远程直接数据存取,就是为了解决网络传输中服务器端数据处理的延迟而产生的。RDMA模块通过网络把数据直接传入计算机系统的后端存储,将数据从一个计算机系统快速移动到对端的计算机系统的后端存储中,而不对操作系统(OS)造成任何影响,以消除了外部的后端存储中所执行的数据复制和上下文切换的开销,因而能解放内存带宽和CPU周期用于改进应用系统性能。

在本实施例中,术语“内存”与术语“易失性存储器103”具等同含义,且包括DDR2~DDR5等各种规格的内存。

本实施例所揭示的一种半导体存储装置100可配置于计算机系统200(参图3所示)中,并由多个计算机系统组成一个Ceph集群,通过设置内核旁路模块109,显著地缩短了IO路径,提升CPU的IOPS,从而显著地提高了基于该半导体存储装置100所组建的Ceph集群的存储性能。

具体的,该第二非易失性存储器105为ReRAM(电阻式随机存取存储器)、FRAM(磁性随机存取存储器)。第一非易失性存储器102为NAND存储器、相变存储器,并最优选为NAND存储器。该半导体存储装置100还包括电源管理模块104以及与其连接备用储能装置106,备用储能装置106选自超级电容或者锂电池,电源管理模块104与第一非易失性存储器102、第二非易失性存储器105、易失性存储器103及存储控制器101提供电源。进一步优选的,该备用储能装置106可由五个工作电压为2.5V,电容量为500法拉串联而成,以形成12.5V且电容量为100法拉的超级电容组。

通常情况下,即计算机系统正常供电时,可通过该电源管理模块104将220VAC通过镇流、逆变、稳压处理后,转换为+5.0VDC、+3.3VDC等电源规格,以向与第一非易失性存储器102、第二非易失性存储器105、易失性存储器103及存储控制器101提供电源,以维持易失性存储器103的自刷新(Self-refresh),以临时存储数据,并被处理器110或者其他设备执行读取操作和/或写入操作。同时,该电源管理模块104还内置有电压实时侦测逻辑,以检测计算机系统的外部电源是否正常。当发生计算机异常掉电时,外部电源不会立即从220VAC降低至0,因此当电源管理模块104检测到外部电源的电压低于一定的范围时,就会立即调用备用储能装置106向第一非易失性存储器102、第二非易失性存储器105、易失性存储器103及存储控制器101提供符合各自规格的工作电源规格,从而在存储控制器101的引导下在第一非易失性存储器102与易失性存储器103之间建立一个或者多个并列的数据传输通道(未图示),以将易失性存储器103临时保存的数据写入第一非易失性存储器102。

当电源管理模块104监测到电源信号VSS,VCC的电压超出正常电压范围90%后,发送计算机系统掉电信号至存储控制器101。存储控制器101接收电源管理模块104所发送的计算机系统掉电信号或者Power_OK(两者均为数字信号)。电源信号VSS,VCC是主机107的电源信号。

当存储控制器101接收到掉电信号时,将易失性存储器103中的数据备份至第一非易失性存储器102中;当存储控制器101接收到Power_OK时,将第一非易失性存储器102中备份的数据重写入易失性存储器103中,并经由串行接口被处理器110(参图3所示)或者主机107所直接访问。在本申请中主机107可以被理解为处理器(CPU)或者其他能够被由用户发送主控命令的平台、装置或者系统,甚至可以是虚拟机或者虚拟操作界面、操作接口,还可以为接收用户指令并通过网络连接的用户界面(UI)。

具体的,本实施例中的控制信号是RAS\CAS\WE\CS\CKE\ODT;数据信号是DQ[63:0]、DQS[0:17];地址信号是A[15:0]、BA[2:0]。

本实施例中所指的电源状态数据是指上文所述的“掉电信号”(或者称之为“异常掉电信号”)及“电源恢复信号”(或者称之为“Power_OK”)所形成的状态数据。通过记录电源状态数据,可以表征部署有本实施例所揭示的一种半导体存储装置100的计算机系统200(参图3所示)的开关机情况及异常掉电情况,以仅在异常掉电时将易失性存储器103中临时保存的数据写入第一非易失性存储器102中,而在正常开关机时不将易失性存储器103中临时保存的数据写入第一非易失性存储器102中。由于计算机系统出现异常断电的几率通常较小,因此基于本实施例所揭示的技术方案,能够有效地阻止在计算机系统正常开关机的场景中向第一非易失性存储器102频繁地写入电源状态数据的发生,从而有效地延长了第一非易失性存储器102的使用寿命,并在一定程度上也能降低第一非易失性存储器102存储空间的消耗。

同时,在本实施例中,该第二非易失性存储器105的容量不小于1MB,例如可128BM或者更小的规格,以降低第二非易失性存储器105的成本。

本实施例所揭示的接口模块108基于PCI-e通讯协议或者I2C通讯协议与系统总线112相互通信,并最优选为PCI-e通讯协议,并以串行方式传输数据,PCI-e通讯协议的工作模式是一种称之为“电压差式传输”的方式。两条铜线,通过相互间的电压差来表示逻辑符号0和1,并最高支持100Gbps的传输速率。存储控制器101基于FPGA芯片或者ASIC芯片平台,且最优选为FPGA芯片;存储控制器101采用Verilog或者VHDL编程技术所形成。

实施例二:

参图2所示出的本发明一种半导体存储装置100的第二种具体实施方式。本实施例所揭示的一种半导体存储装置100与实施例一相比,其主要区别在于,在本实施例中,存储控制器101配置MMAP接口111,并通过MMAP接口111与接口模块108相通信。

当计算机系统异常崩溃或异常掉电时,易失性存储器103中的数据会发生丢失。对于诸如数据库的对数据一致性要求很高的应用程序,可能会造成致命打击。为解决上述问题,在本实施例中通过设置MMAP接口111,为应用程序提供像访问普通内存一般,直接访问易失性存储器103中的逻辑块,从而绕过了操作系统页面缓存机制,提高对易失性存储器103的访问效率,避免因操作系统异常崩溃或者异常掉电所导致引起的数据库中的数据不一致问题。在本实施例中,所谓的“应用程序”可被理解为数据库,也可被理解为可运行计算机代码并具有一定功能的计算机程序。

应用程序可以将结构化的数据以正常文件的形式创建,读写,删除。当应用程序以MMP接口111映射一个文件时,首先在该应用程序的用户空间分配虚拟地址(Virtual address),建立文件与虚拟地址的映射关系。然后由运行于存储控制器101中的文件系统(file system)为这些虚拟空间分配逻辑块(即,真实的物理内存)。这样,每一段虚拟地址便与一逻辑块在文件中的偏移位置产生了一对一的关系。这种一对一且唯一的对应关系,最终用来构建该段地址空间的页表,通过MMU(Memory Management Unit,内存管理单元)的地址转换功能,以实现应用程序在用户空间直接访问该半导体存储装置100的能力;尤其的,在通常情况下,是应用程序在用户空间直接访问该半导体存储装置100中的易失性存储器103中的数据。其中,MMU的作用就是负责虚拟地址(Virtual address)转换为物理地址(Physical address)。申请人尤其发现,通过在半导体存储装置100中配置该MMP接口111,能够显著地提高基于通过配置该半导体存储装置100的计算机系统200(参图3所示)通过底层虚拟化所形成的虚拟机Qemu-KVM的磁盘IO存取效率,尤其是在读取大文件,例如超过100MB的文件时,具有更好的实时性。

本实施例所揭示半导体存储装置与实施例一中相同部分的技术方案,请参实施例一所述,在此不再赘述。

实施例三:

配合参照3所示,本实施例揭示了一种计算机系统。本实施例所揭示的一种计算机系统可以包含一个或者多个实施例一或者实施例二或者二者的结合所揭示的一种半导体存储装置100。

该计算机系统200,包括:处理器110,以及通过系统总线112与主机107相连的半导体存储装置100。该半导体存储装置100包括易失性存储器103、第一非易失性存储器102、通过接口模块108与主机107通讯的存储控制器101,所述存储控制器101响应于所述主机107的电源信号和控制信号,并择一地与所述易失性存储器103或第一非易失性存储器102进行数据存取操作。

半导体存储装置100还包括与所述存储控制器101相连的第二非易失性存储器105,存储控制器10根据主机107的电源信号以电源状态数据的形式保存至所述第二非易失性存储器105,所述存储控制器101与主机107之间设置内核旁路模块109。内核旁路模块109选自DPDK模块、SPDK模块或者RDMA模块。存储控制器101配置MMAP接口111,并通过所述MMAP接口111与接口模块108相通信。具体的,在本实施例中,该第一非易失性存储器102为NAND存储器、相变存储器,并优选为NAND存储器。第二非易失性存储器105为ReRAM、FRAM,并优选为FRAM。

在本实施例中,计算机系统200中至少一个半导体存储装置100挂载至系统总线112,CPU110通过系统总线112对半导体存储装置100中的数据进行读取与写入操作。同时,物理网卡(NIC)118挂载至系统总线112,并与外网网络130相互通讯。

本实施例中所揭示的半导体存储装置100所依赖的技术方案参实施例一和/或实施例二所示,在此不再赘述。

在本申请所提供的几个实施例中,应该理解到,所揭露的系统,装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述模块或单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。

所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。

另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。

所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来。

上文所列出的一系列的详细说明仅仅是针对本发明的可行性实施方式的具体说明,它们并非用以限制本发明的保护范围,凡未脱离本发明技艺精神所作的等效实施方式或变更均应包含在本发明的保护范围之内。

对于本领域技术人员而言,显然本发明不限于上述示范性实施例的细节,而且在不背离本发明的精神或基本特征的情况下,能够以其他的具体形式实现本发明。因此,无论从哪一点来看,均应将实施例看作是示范性的,而且是非限制性的,本发明的范围由所附权利要求而不是上述说明限定,因此旨在将落在权利要求的等同要件的含义和范围内的所有变化囊括在本发明内。不应将权利要求中的任何附图标记视为限制所涉及的权利要求。

此外,应当理解,虽然本说明书按照实施方式加以描述,但并非每个实施方式仅包含一个独立的技术方案,说明书的这种叙述方式仅仅是为清楚起见,本领域技术人员应当将说明书作为一个整体,各实施例中的技术方案也可以经适当组合,形成本领域技术人员可以理解的其他实施方式。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1