非易失性存储器模块、具有其的计算系统及其操作方法与流程

文档序号:11627687阅读:355来源:国知局
非易失性存储器模块、具有其的计算系统及其操作方法与流程

相关申请的交叉引用

本专利申请要求2015年12月14日提交的韩国专利申请第10-2015-0178365号的优先权,其公开在此通过引入整体并入。

本发明构思的实施例涉及非易失性存储器模块、具有该非易失性存储器模块的计算系统及其操作方法。



背景技术:

与现有计算系统的各种接口兼容的非易失性存储器正在被开发。例如,正在开发通过将闪存存储器安装在与主存储器或工作存储器相同的槽或通道上来作为数据存储设备或工作存储器使用的闪存存储器。在这种实施例中,正在考虑与传统使用的易失性随机存取存储器(ram)(例如dram)的兼容。



技术实现要素:

本发明构思的实施例提供一种技术,能够提供最佳的数据完整性和低功率特征且同时维持与易失性ram的兼容。

本发明构思的实施例提供一种非易失性存储器模块、具有该非易失性存储器模块的计算系统及其操作方法。

在一方面中,本发明构思的实施例专注于一种非易失性存储器模块,其包括至少一个非易失性存储器;至少一个非易失性存储器控制器,被配置为控制至少一个非易失性存储器;至少一个动态随机存取存储器(dram),用作至少一个非易失性存储器的缓存;数据缓冲器,被配置为存储在至少一个dram与外部设备之间交换的数据;以及存储器模块控制设备,被配置为控制非易失性存储器控制器、至少一个dram和数据缓冲器。至少一个dram存储对应于缓存数据的标签并且比较存储的标签与输入的标签信息以确定是否输出缓存数据。

在另一方面中,本发明构思的实施例专注于一种非易失性存储器模块,其包括至少一个第一非易失性存储器;至少一个第二非易失性存储器;第一非易失性存储器控制器,被配置为控制至少一个第一非易失性存储器;第二非易失性存储器控制器,被配置为控制至少一个第二非易失性存储器;第一dram,连接到第一非易失性存储器控制器;第二dram,连接到第二非易失性存储器控制器;数据缓冲器,连接到第一和第二dram;以及存储器模块控制设备,被配置为响应于来自外部设备的命令/地址产生第一命令/地址和第二命令/地址,使用第一命令/地址控制第一和第二非易失性存储器控制器,并且使用第二命令/地址控制第一和第二dram。第一和第二dram中的每一个存储缓存并且确定针对该缓存是否产生缓存命中。

在另一方面中,本发明构思的实施例专注于一种计算系统,其包括处理器;和至少一个非易失性存储器模块,其基于双倍数据率(ddr)接口连接到该处理器。非易失性存储器模块包括至少一个非易失性存储器;以及至少一个dram,其被配置为执行至少一个非易失性存储器的缓存功能,存储缓存的标签,并且通过标签比较确定针对该缓存是否产生命中/未命中。

在另一方面中,本发明构思的实施例专注于一种包括至少一个缓存dram和至少一个非易失性存储器的非易失性存储器模块的操作方法。该方法包括:从处理器接收命令/地址,产生对应于该命令/地址的dram命令/地址或非易失性存储器命令/地址,响应于dram命令/地址在至少一个缓存dram处确定是否产生缓存命中,并且当确定结果指示未产生缓存命中时,响应于非易失性存储器命令/地址控制非易失性存储器。

在另一方面中,本发明构思的实施例专注于一种非易失性存储器模块,其包括至少一个非易失性存储器;至少一个非易失性存储器控制器,被配置为控制至少一个非易失性存储器;至少一个动态随机存取存储器(dram),用作至少一个非易失性存储器的缓存;和存储器模块控制设备,被配置为控制非易失性存储器控制器和至少一个dram,并且被配置为输出标签信息到至少一个dram。至少一个dram存储对应于缓存数据的标签并且比较存储的标签与来自存储器模块控制设备的标签信息,以通过标签比较确定针对缓存是否产生命中/未命中。

附图说明

通过结合附图的实施例的以下描述,本总的发明构思的这些和/或其他方面和优点将变得清楚和更容易理解,附图中:

图1是示出根据本发明构思的一些实施例的计算系统的框图。

图2是示出根据本发明构思的一些实施例的非易失性存储器模块的框图。

图3是示出根据本发明构思的一些实施例的标签dram和数据dram的框图。

图4是示出根据本发明构思的一些实施例的非易失性存储器模块的图。

图5是示出在图4中示出的dram之一的框图。

图6是示出在图4中示出的非易失性存储器模块的写操作的图。

图7是示出图4的非易失性存储器模块的读操作的图。

图8是示出根据本发明构思的一些实施例的支持多个缓存路径(way)操作的缓存线的配置的图。

图9a和9b是示出根据本发明构思的一些实施例的具有奇偶校验的缓存配置的图。

图10是示出根据本发明构思的一些实施例的用于基于缓存dram的2路集合关联方法输出缓存的方法的图。

图11是示出根据本发明构思的一些实施例的非易失性存储器模块的框图。

图12是示出根据本发明构思的一些实施例的非易失性存储器模块的框图。

图13是示出根据本发明构思的一些实施例的分层存储器的框图。

图14是示出根据本发明构思的一些实施例的处理器的软件架构的框图。

图15是示出根据本发明构思的一些实施例的计算系统的图。

图16是示出根据本发明构思的一些实施例的计算系统的图。

图17是示出根据本发明构思的一些实施例的计算系统的图。

图18是示出根据本发明构思的一些实施例的计算系统的图。

图19是示出根据本发明构思的一些实施例的数据服务器系统的框图;以及

图20是示出根据本发明构思的一些实施例的计算系统的图。

具体实施方式

现在详细参考本总的发明构思的实施例,在附图中示出了实施例的示例,其中各参考数字始终指代相同的元件,下面描述各实施例以便通过参考附图解释本总的发明构思。

图1是示出根据本发明构思的一些实施例的计算系统10的框图。参照图1,计算系统10可以包括处理器(cpu)100、至少一个存储器模块(dimm)200以及至少一个非易失性存储器模块(nvdimm)300。

在一些实施例中,计算系统10例如可包括多个设备中的一个,诸如计算机、便携式计算机、超移动个人计算机(umpc)、工作站、数据服务器、上网本、个人数据助理(pda)、网络平板设备、无线电话、移动电话、智能电话、电子书、便携式多媒体播放器(pmp)、数码相机、数字音频记录器/播放器、数字图片/视频记录器/播放器、便携式游戏机、导航系统、黑盒子、3d电视机、能够在无线环境下发送和接收信息的设备、可佩戴设备、构成家庭网络的各种电子设备中的一个、构成计算机网络的各种电子设备中的一个、构成远程通信网络的各种电子设备中的一个、射频识别(rfid)、构成计算系统的各种电子设备中的一个等等。

处理器100可控制计算系统10的整体操作。处理器100例如可以是中央处理单元(cpu)、协处理器、算术处理单元(apu)、图形处理单元(gpu)、数字信号处理器(dsp)、存储器控制器集线器(mch)、平台控制器集线器(pch)等。处理器100可通过执行计算系统10的各种操作处理数据。虽然在图1中未示出,但处理器100还可以包括存储器管理单元(mmu),用于管理存储器模块200和非易失性存储器模块300。

存储器模块200可以通过例如双倍数据率(ddr)接口连接到处理器100。在一些实施例中,ddr接口可以符合联合电子设备工程委员会(jedec)的存储器标准规范。图1中所示的存储器模块200可以根据ddr接口被连接到处理器100。然而,本发明构思的实施例不限于此。即,存储器模块200可以通过ddr接口以外的各种类型的通信接口被连接到处理器100。例如,通信接口可以利用通信接口来实现,所述通信接口例如非易失性快速存储器nvme、外围组件快速互连pcie、串行at附件sata、小型计算机系统接口scsi、串行附接scsisas、通用存储总线usb附接的scsiuas、互联网小型计算机系统接口iscsi、光纤通道、通过以太网的光纤通道fcoe等等。

存储器模块200例如可以是双列直插存储器模块(dimm)。存储器模块200可以包括至少一个动态随机存取存储器(dram)。存储器模块200可以被用作处理器100的工作存储器。

非易失性存储器模块300可以通过例如ddr接口连接到处理器100。图1中所示的非易失性存储器模块300根据ddr接口被连接到处理器100。然而,本发明构思的实施例不限于此。即,根据本发明构思的一些实施例的非易失性存储器模块300可以通过ddr接口以外的各种类型的通信接口被连接到处理器100。

非易失性存储器模块300例如可以是双列直插存储器模块(dimm)。非易失性存储器模块300可以被用作处理器100的工作存储器。非易失性存储器模块300可包括至少一个非易失性存储器((一个或多个)nvm)310和用作至少一个非易失性存储器310的缓存的至少一个缓存dram330。

在一些实施例中,至少一个非易失性存储器310例如可以是nand闪存存储器、垂直nand闪存存储器(vnand)、nor闪存存储器、电阻随机存取存储器(rram)、相变存储器(pram)、磁阻随机存取存储器(mram)、铁电随机存取存储器(fram)、自旋转移力矩随机存取存储器(stt-ram)等等。

此外,非易失性存储器例如可以具有三维阵列结构。在本发明构思的实施例中,提供了一种三维(3d)存储器阵列。3d存储器阵列在存储器单元的阵列的一个或多个物理级别中整体形成的,具有例如布置在硅衬底上的有源区域和与那些存储器单元的操作关联的电路。关联的电路可以在衬底上方或内部。即,与存储器单元的操作关联的电路可以位于衬底中或在衬底上。术语“整体”的意思是该阵列的每一级的层被直接沉积在所述阵列的每个底层级别的层上。

在本发明构思的一些实施例中,3d存储器阵列例如包括被垂直定向以使得存储器单元的至少一个位于另一存储器单元之上的垂直nand串。至少一个存储单元例如可以包括电荷陷阱层。每个垂直nand串可以包括位于存储器单元之上的至少一个选择晶体管。至少一个选择晶体管可以具有与存储器单元相同的结构,并且被整体地与存储器单元形成在一起。

3d存储器阵列由多个级别形成并具有在各级之间共享的字线和/或位线。在此通过引用并入的下面的专利文献描述了用于3d存储器阵列的合适的配置,其中,3d存储器阵列被配置为多个级别,在各级之间共享字线和/或位线:美国专利号7,679,133;美国专利号8,553,466;美国专利号8,654,587;美国专利号8,559,235;和美国专利公开号2011/0233648。根据本发明构思的一些实施例的非易失性存储器可以适用于电荷陷阱闪存(ctf),其中绝缘层被用作电荷存储层;以及适用于闪存存储器设备,其中导电浮置栅极被用作电荷存储层。

至少一个缓存dram330可以执行该至少一个非易失性存储器310的缓存功能。至少一个缓存dram330可存储对应于缓存数据的标签或通过标签比较生成指示缓存命中或缓存未命中的匹配信号。

根据本发明构思的一些实施例的计算系统10可使用具有缓存dram330的非易失性存储器模块300作为工作存储器,从而实现比传统的计算系统更低的成本和更高的容量和性能。

图2是示出根据本发明构思的一些实施例的图1的非易失性存储器模块300的框图。参考图2,非易失性存储器模块300可以包括非易失性存储器(nvm)310-1和310-2,非易失性存储器控制器320-1和320-2,dram330-1和330-2,数据缓冲器(db)340-1和340-2,以及存储器模块控制设备(mmcd)350。在图2中所示的非易失性存储器模块300中,第一和第二非易失性存储器310-1和310-2、第一和第二非易失性存储器控制器320-1和320-2、第一和第二dram330-1和330-2以及第一和第二数据缓冲器340-1和340-2可以分别安排在例如相对于存储器模块控制设备mmcd350的左侧和右侧;然而,本发明构思的实施例不限于此。第一和第二非易失性存储器310-1和310-2可每一个包括多个非易失性存储器(nvm)。第一和第二dram330-1和330-2可每一个包括多个dram。第一和第二数据缓冲器340-1和340-2可每一个包括多个数据缓冲器。第一和第二非易失性存储器控制器320-1和320-2可以分别在第一和第二非易失性存储器310-1和310-2与第一和第二dram330-1和330-2之间。第一和第二dram330-1和330-2可以分别在第一和第二非易失性存储器控制器320-1和320-2与第一和第二数据缓冲器340-1和340-2之间。

非易失性存储器控制器320-1和320-2可以基于第一命令/地址can或非易失性存储器命令/地址控制非易失性存储器310-1和310-2的操作。第一命令/地址can可以从存储器模块控制设备350输出到第一和第二非易失性存储器控制器320-1和320-2。图2的非易失性存储器模块300中示出的非易失性存储器310-1和310-2的数目不限于此。

dram330-1和330-2可以基于第二命令/地址cad或dram命令/地址执行输入/输出操作,例如写/读操作。第二命令/地址cad可以从存储器模块控制设备350输出到第一和第二dram330-1和330-2。dram330-1和330-2中的每一个可以包括双端口dram。例如,dram330-1和330-2中的每一个可以包括第一输入/输出端口和第二输入/输出端口。第一和第二dram330-1和330-2的第一输入/输出端口可以被连接到在dram330-1/330-2和与之对应的非易失性存储器控制器320-1/320-2之间的数据路径,并且第一和第二dram330-1和330-2的第二输入/输出端口可以连接到在dram330-1/330-2和与之对应的数据缓冲器340-1/340-2之间的数据路径。在一些实施例中,第一输入/输出端口可输出4个字节(或32位),并且第二输入/输出端口可输出4个字节(或32位)。dram330-1和330-2的第一和第二输入/输出端口的输出数据不限于本发明构思的图2的实施例。

多个第一dram330-1和多个第二dram330-2中的至少一个dram331可以存储对应于缓存线的标签并且将存储的标签信息与输入的标签信息进行比较。余下的dram可以实现来存储对应于该标签的缓存数据。下文中,存储标签的dram可以被称为“标签dram”,而余下的dram中的每一个可以被称为“数据dram”。至少一个dram331可以是标签dram。dram332可以是数据dram。

在一些实施例中,标签dram331可存储4字节的标签。在一些实施例中,标签dram331可以按照2路、1:8的直接映射方案存储标签。该标签可以包括关于存储在数据dram中的缓存数据的位置信息和表示缓存数据的有效性的脏/干净信息。在一些实施例中,标签可以包括用于纠错的纠错值。因此,标签dram331还可以包括用于纠错的纠错电路。存储器模块控制设备350可提供标签信息到dram330-2。

标签dram331可以不限于这里描述的2路以及1:8的直接映射方案。但是应当理解的是,标签dram331的路径或映射方案是根据各种组合来确定的。

在一些实施例中,标签dram和数据dram可以包括相同的元件。在一些实施例中,标签dram和数据dram可以包括不同的元件。图2的非易失性存储器模块300中所示的第一和第二dram330-1和330-2的数目不限于此。

第一和第二数据缓冲器(db)340-1和340-2可以分别连接到第一和第二dram330-1和330-2,并且可以被配置为将从处理器100(如图1中所示)提供的数据dq分别发送到第一和第二dram330-1和330-2,并且分别将来自第一和第二dram330-1和330-2的数据dq发送到处理器100。

在一些实施例中,第一和第二数据缓冲器340-1和340-2可以适用于ddr接口规范。例如,第一和第二数据缓冲器340-1和340-2中的每一个可以输入和输出八个数据信号和两个数据选通信号。虽然在图2中未示出,但第一和第二数据缓冲器340-1和340-2中的每一个可响应于缓冲器命令向与之对应的dram输出从处理器100提供的数据。在一些实施例中,数据缓冲器340-1和340-2中的每一个可以包括先入先出(fifo)或双端口静态随机存取存储器(sram)。

存储器模块控制设备350可控制非易失性存储器模块(nvdimm)300的整体操作。存储器模块控制设备可最佳地控制第一和第二非易失性存储器控制器320-1和320-2,第一和第二dram330-1和330-2,以及第一和第二数据缓冲器340-1和340-2,使得非易失性存储器模块300被用作工作存储器。存储器模块控制设备350可从处理器100(如图1中所示)接收命令/地址ca,以产生第一命令/地址can即非易失性存储器命令/地址,或者第二命令/地址cad即dram命令/地址。存储器模块控制设备350可产生并管理对应于缓存线的标签。

图3是概念示出图2的标签dram331和数据dram332的框图。参照图3,标签dram331和数据dram332可以包括相同的元件,例如存储器单元阵列331-1和332-1、标签比较电路331-5和332-5以及多路复用器(mux电路)331-6和332-6。在一些实施例中,标签dram331和数据dram332中的每一个可以包括双端口dram。双端口dram可以包括输入/输出端口,其分别对应于不同种类的设备,例如数据缓冲器/非易失性存储器控制器。双端口dram的数据路径可基于多路复用器(即多路复用器331-6和332-6)的选择而被连接到第一外部设备(例如,数据缓冲器)或者第二外部设备(例如,非易失性存储器控制器)。

标签dram331可以包括第一存储器单元阵列331-1、第一标签比较电路331-5和第一多路复用器331-6。第一存储器单元阵列331-1可存储缓存的标签。在一些实施例中,在多路方案中,第一存储器单元阵列331-1可存储多个缓存的标签。第一存储器单元阵列331-1可包括多个dram单元。

第一标签比较电路331-5可以比较接收到的标签信息与存储的标签。第一标签比较电路331-5可从存储器模块控制设备350接收标签信息。在一些实施例中,当存储器模块300被制造时,第一标签比较电路331-5可以根据物理方法,例如熔丝切断或电子熔丝,来激活。在一些实施例中,第一标签比较电路331-5可以通过模式寄存器组(mrs)设置被激活。为了便于描述,图3示出了其中标签比较电路331-5响应于对应于mrs设置的激活信号en而被激活的实施例。

在一些实施例中,第一标签比较电路331-5的输出值即匹配信号match可通过至少一个管脚331-7输出到外部设备。

第一多路复用器331-6可以根据熔丝切断或mrs设置而被停用。例如,当第一标签比较电路331-5被激活时,第一多路复用器331-6可以被停用。为了便于描述,图3示出了其中多路复用器331-6响应于对应于mrs设置的停用信号enb而被停用的实施例。在一些实施例中,标签dram331可以包括与多路复用器331-6的输入关联的至少一个管脚331-8。

在一些实施例中,标签dram331还可以包括用于纠正标签的误差的纠错电路。

数据dram332可以包括第二存储器单元阵列332-1、第二标签比较电路332-5以及第二多路复用器332-6。第二存储器单元阵列332-1可存储对应于标签的缓存数据。在一些实施例中,在多路方案中,第二存储器单元阵列332-1可存储对应于多个缓存的缓存数据。

第二标签比较电路332-5可以根据熔丝切断或mrs设置而被停用。例如,当第二多路复用器332-6被激活时,第二标签比较电路332-5可以被停用。为了便于描述,图3示出了其中第二标签比较电路332-5响应于对应于mrs设置的停用信号enb被停用的实施例。在一些实施例中,数据dram332可以包括与第二标签比较电路332-5的输出关联的至少一个管脚332-7。

第二多路复用器332-6可以根据熔丝切断或mrs设置而被激活。为了便于描述,图3示出其中第二多路复用器332-6响应于对应于mrs设置的激活信号en而被激活的实施例。

在一些实施例中,第二多路复用器332-6可从标签dram331的管脚331-7通过至少一个管脚332-8接收标签比较结果值,即,匹配信号match。如果标签比较结果值match指示缓存命中(hit),则第二多路复用器332-6可以向处理器100(如图1中所示)输出与缓存线关联的数据dq。提供给处理器100的缓存数据dq可以包括指示数据有效的值。如果标签比较结果值match指示缓存未命中(miss),则第二多路复用器332-6可能不输出与缓存操作关联的数据到处理器100。在这样的实施例中,数据dram332可以相对于缓存线的数据执行刷新操作并且可以试图改变该缓存线。也就是说,第二多路复用器332-6可以被实现来响应于标签比较结果值match选择对应的数据缓冲器db340-1/340-2和对应的非易失性存储器控制器nvm控制器320-1/320-2中的一个作为数据路径。

根据本发明构思的一些实施例的标签dram331和数据dram332可以包括相同的元件,然而,在标签dram331中的元件的操作可以互补于在数据dram332中的元件的操作。

在图2和3的实施例中,标签被存储在第一和第二dram330-1和330-2的一个(例如标签dram331)中。然而,本发明构思的实施例不限于此。根据本发明构思的一些实施例的非易失性存储器模块可以包括标签阵列,所述标签阵列在每个dram中存储标签。

图4是示出根据本发明构思的一些实施例的非易失性存储器模块400的框图。参照图4,非易失性存储器模块400可包括多个nvm、第一和第二非易失性存储器控制器420-1和420-2、多个dram以及多个数据缓冲器db。

除了每个dram可以包括存储标签的标签阵列和存储对应于每个标签的缓存数据的数据阵列以外,非易失性存储器模块400可包括图1的非易失性存储器模块300的元件。每个dram可以执行标签比较,并且可以响应于标签比较结果match针对缓存线的数据输出来确定数据路径。drams包括至少一个dram431。

图5是示出在图4中示出的dram431之一的框图。参照图5,dram431可以包括标签阵列431-1、数据阵列431-2、行解码器(rowdec)431-3、列解码器和感测放大器(coldec+sa)431-4、标签比较电路431-5以及多路复用器(mux电路)431-6。

行解码器431-3可以响应于行地址激活字线wl。多个dram单元可以连接到字线wl。连接到字线wl的dram单元可以包括在标签阵列431-1中包括的第一dram单元和在数据阵列431-2中包括的第二dram单元。

列解码器和感测放大器431-4可以读取与字线wl和列选择线对应的dram单元或在dram单元中写入数据。列解码器和感测放大器431-4可以响应于列地址激活对应于标签阵列431-1的第一列选择线csl_tag和对应于数据阵列431-2的第二列选择线csl_data。例如,列解码器和感测放大器431-4可响应于列地址激活连接到标签阵列431-1的第一dram单元的第一列选择线csl_tag和连接到数据阵列431-2的第二dram单元的第二列选择线csl_data,并且可以从标签阵列431-1的第一dram单元读取标签或从数据阵列431-2的第二dram单元读取与标签对应的缓存数据。

在一些实施例中,第一列选择线csl_tag和第二列选择线csl_data可以响应于列地址同时被激活。也就是说,根据本发明构思的一些实施例的dram431可以激活在存储体(bank)中的两个列选择线csl_tag和csl_data。

标签比较电路431-5可以比较存储在标签阵列431-1中的标签与接收的标签信息,并输出比较结果match&dirty(匹配和脏)。存储在标签阵列431-1中的标签可以包括至少一个比特,指示数据是否是脏的。

多路复用器431-6可以响应于标签比较电路431-5的输出值将数据路径连接到数据缓冲器db(即数据缓冲器340-1/340-2)或非易失性存储器(nvm)控制器(即非易失性存储器控制器320-1/320-2)。

图6是示出图4中示出的非易失性存储器模块(nvdimm)400的写操作的图。如果写请求ca_write由存储器模块控制设备450从处理器(cpu)100接收到,则存储器模块控制设备mmcd450可以生成dram专用写请求cad_write或dram命令/地址,并且可以将其与标签信息一起发送到dram。dram可接收标签信息和写请求cad_write并且可以从对应于写请求cad_write的地址获取标签。即,在步骤s100中,dram可以从对应于写请求cad_write的地址读取标签。此后,在步骤s110中,dram可比较读取的标签与接收的标签信息,以输出标签比较结果值match,其指示缓存命中或缓存未命中。如果标签比较结果值match指示缓存命中,则可能没必要执行写请求。在步骤s120中,如果标签比较结果值match指示缓存未命中,则数据可以在与写请求的地址对应的缓存线处写入。之后,脏值可被添加到dram的缓存线的标签。dram的缓存未命中及脏值miss&dirty可以输出到存储器模块控制设备mmcd450。之后,存储器模块控制设备mmcd450可以发送写请求can_write到非易失性存储器nvm,以便执行刷新操作,并且存储在dram中的缓存线的数据可以回写(或刷新)write-back(flush)到非易失性存储器nvm。

图7是示出图4的非易失性存储器模块(nvdimm)400的读操作的图。如果读请求ca_read由存储器模块控制设备mmcd450从处理器(cpu)100接收到,则存储器模块控制设备mmcd450可以生成dram专用读请求cad_read并且可以将其与标签信息一起发送到dram。dram可接收标签信息与读请求cad_read并且可以从对应于该读请求cad_read的地址获取标签。也就是说,在步骤s200中dram可以从对应于请求can_read的地址读取标签。此后,在步骤s210中,dram可比较读取的标签与所接收的标签信息以输出指示缓存命中或缓存未命中的标签比较结果值match。如果标签比较结果值match表示缓存命中,则dram的缓存线的数据可从dram输出到处理器100。如果标签比较结果值match指示缓存未命中,则存储器模块控制设备mmcd450可以产生非易失性存储器专用读请求can_read并且可以将非易失性存储器专用读请求can_read发送到非易失性存储器nvm。此后,非易失性存储器nvm可以读取对应于读请求can_read的数据,并且可以将读取的数据通过dram传送给处理器100。然后,数据可以存储在dram的缓存线中。

根据本发明构思的一些实施例的非易失性存储器模块400可以执行多个缓存路径的操作。

图8是示出根据本发明构思的一些实施例的支持多个缓存路径操作的缓存线的配置的图。参照图8,缓存线可被分类成标签阵列区域tag,其存储分别对应于多个缓存cache1至cachen的标签tag1至tagn(n是2或更大的整数);以及数据阵列区域data,其存储分别对应于缓存cache1至cachen的多条数据data1至datan。这里,各标签可能分别意味着数据data1到datan的位置信息(或地址)。

根据本发明构思的一些实施例的标签可以对应于在直接映射方法、完全关联方法或集合关联方法(setassociativemethod)中的位置信息。

根据本发明构思的一些实施例的缓存可以进一步包括奇偶校验。

图9a和9b是示出根据本发明构思的一些实施例的具有奇偶校验parity的缓存配置的图。参照图9a,缓存可以由标签、缓存数据以及用于标签的纠错的奇偶校验组成。参考图9b,缓存可以由标签和缓存数据组成,并且标签可以包括奇偶校验。

图10是示出根据本发明构思的一些实施例的用于基于缓存dram的2路集合关联方法输出缓存的方法的图。参照图10,每个包括{标签,数据}的两个缓存集合对于2路集合关联缓存会是必需的。为了描述方便,假定8位数据被输出到列选择线csl,标签具有4位的大小,并且数据具有8位的大小;然而,本发明构思不限于此。当标签列选择线csl_tag和第一列选择线csl_1同时被激活时,两个标签集合(例如tag1和tag2)可以从标签阵列区域tag输出,并且数据集合{01,11,21,31,41,51,61,71}可以在列到列的延迟时间tccd1之后从数据阵列区域data输出。从标签阵列tag输出的标签可以分别包括脏/干净信息v1和v2以及标签信息tag1和tag2。当第二列选择线csl_2在延迟时间(例如列到列的延迟时间tccd2)之后被激活时,余下的数据集合{02,12,22,32,42,52,62,72}可以被输出到数据阵列区域。在列到列的延迟时间tccd3之后,两个标签集合(例如tag3和tag4)可从标签阵列区域tag输出,并且在列到列的延迟时间tccd3之后,数据集合{03,13,23,33,43,53,63,73}可从数据阵列区域data输出。从标签阵列tag输出的标签可以分别包括脏/干净信息v3和v4以及标签信息tag3和tag4。当第二列选择线csl_2在延迟时间(例如列到列的延迟时间tccd4)之后被激活时,余下的数据集合{04,14,24,34,44,54,64,74}可以被输出到数据阵列区域。

同时,应当理解的是,在图10中所示的缓存输出方法不限制本发明构思的实施例。n路集合关联缓存可以在各种方法中被输出。

根据本发明构思的一些实施例的非易失性存储器模块nvdimm可以用固态驱动器(ssd)来实现。

图11是示出根据本发明构思的一些实施例的非易失性存储器模块500的框图。参照图11,非易失性存储器模块500可包括第一和第二固态驱动器ssd511和512,第一和第二缓存dram531和532,数据缓冲器541到549,和存储器模块控制设备mmcd550。

第一和第二固态驱动器511和512中的每一个可以包括非易失性存储器,以存储大量的数据。第一和第二缓存dram531和532中的每一个可以被实现为执行第一和第二固态驱动器ssd511和512中的每一个的缓存功能。第一和第二缓存dram531和532中的每一个可以用双端口来实现。两个缓存dram531和532在图11中示出;然而,本发明构思的实施例不限于此。

固态驱动器ssd511和512可以从存储器模块控制设备550接收第一命令/地址can。缓存dram531和532可以从存储器模块控制设备550接收第二命令/地址cad。缓存dram531和532的第一输入/输出端口可以被连接到在缓存dram531和532与固态驱动器ssd511和512之间的数据路径。缓存dram531和532的第二输入/输出端口可以被连接到在缓存dram531和532与数据缓冲器541到549之间的数据路径。存储器模块控制设备550可以提供标签信息到缓存dram532。数据缓冲器(db)541到549可以分别连接到缓存dram531和532,并且可以被配置为将从处理器100提供的数据dq(如图1中所示)分别发送到缓存dram531和532,以及发送分别来自缓存dram531和532的数据dq到处理器100。存储器模块控制设备550可以从处理器100(如图1中所见)接收命令/地址ca。

根据本发明构思的一些实施例的非易失性存储器模块nvdimm可以用分层存储器来实现以减少路由。

图12是示出根据本发明构思的一些实施例的非易失性存储器模块600的框图。参照图12,非易失性存储器模块600可以包括具有缓存dram的第一和第二分层存储器611和612,数据缓冲器641到649,和存储器模块控制设备650。

第一和第二分层存储器611和612中的每一个可以包括异构存储器,其包括至少一个非易失性存储器和用作至少一个缓存的至少一个缓存dram。

分层存储器611和612的数量可以是2,如图12中所示;然而,本发明构思的实施例不限于此。

第一和第二分层存储器611和612可以从存储器模块控制设备650接收第一和第二命令/地址can和cad。第一和第二分层存储器611和612可以分别连接到数据缓冲器641到649。数据缓冲器(db)641到649可以分别连接到第一和第二分层存储器611和612,并可以被配置为分别向第一和第二分层存储器611和612发送从处理器100(如图1中所示)提供的数据dq以及向处理器100发送分别来自第一和第二分层存储器611和612的数据dq。存储器模块控制设备650可从处理器100(如图1中所见)接收命令/地址ca。

图13是示出根据本发明构思的一些实施例的分层存储器611的框图。参考图13,分层存储器611可以包括多个nand快闪存储器611-1至611-4,nand快闪存储器控制器611-5,和缓存dram611-6和611-7。

nand快闪存储器控制器611-5以及缓存dram611-6和611-7可以共享输入/输出线dqx8。虽然在图13中未示出,但也可以在nand快闪存储器控制器611-5与缓存dram611-6和611-7之间提供刷新专用通道。nand控制器611-5从存储器模块控制设备650接收第一命令/地址can。缓存dram611-6和611-7从存储器模块控制设备650接收第二命令/地址cad。

图14是示出根据本发明构思的一些实施例的处理器的软件架构的框图。参照图14,应用770可通过加载/存储接口访问非易失性存储器模块nvdimm700(例如本文所描述的非易失性存储器模块nvdimm)的ram,其中加载/存储接口可通过使用非易失性存储器库nvmlibrary710访问。此外,通过非易失性存储器模块驱动器nvdimm驱动器720的应用770和760可以分别通过使用永久性存储器(pm)感知文件系统pm-awarefilesystem730或文件系统filesystem740访问非易失性存储器模块nvdimm700。这里,非易失性存储器模块驱动器(nvdimm驱动器)720可通过应用编程接口(api)与应用750通信。此外,应用可以通过使用原始设备访问接口而不经过文件系统直接访问非易失性存储器模块。这里,原始设备可以是未经文件系统设置的区域。

同时,管理用户界面(ui)780可以通过使用管理库控制非易失性存储器模块驱动器。管理库managementlibrary790可以包括用于管理存储器模块dimm和/或非易失性存储器模块nvdimm的主存储器或系统存储器上的存储器分配、取消等的指令。内核空间包括非易失性存储器模块驱动器720、文件系统740和pm-aware系统730。用户空间包括应用750、760和770,非易失性存储器库710,管理ui780,以及管理库790。

根据本发明构思的一些实施例的计算系统还可以包括根据ddr-t(事务)接口的非易失性存储器。

图15是示出根据本发明构思的一些实施例的计算系统20的图。参照图15,计算系统20可以包括处理器100、存储器模块200、非易失性存储器模块nvdimm300(缓存dram)以及非易失性存储器(nvm)400(例如pram)。相比于图1的计算系统10,计算系统20还可以包括非易失性存储器800,其根据ddr-t接口输入和输出数据。在这样的实施例中,存储器模块200可以被实现来执行非易失性存储器800的缓存功能。在一些实施例中,非易失性存储器800可以是3d-xpoint存储器。

在图15中所示的计算系统20可使用存储器模块200作为非易失性存储器800的缓存;然而,本发明构思的实施例不限于此。

根据本发明构思的一些实施例的计算系统可使用包括在处理器中的dram作为非易失性存储器800的缓存。

图16是示出根据本发明构思的一些实施例的计算系统30的图。计算系统30包括处理器100a、非易失性存储器模块nvdimm300(缓存dram)以及非易失性存储器nvm800a。dram110a被包括在处理器100a中。相比于图15的计算系统20,图16的计算系统30可以执行处理器100a的dram110a内部的dimm的缓存功能。

根据本发明构思的一些实施例的计算系统可包括包含dram的处理器,该dram执行非易失性存储器模块nvdimm的缓存功能。

图17是示出根据本发明构思的一些实施例的计算系统40的图。计算系统40可以包括主机100b,其包括dram110b;以及非易失性存储器模块nvdimm(缓存dram)300-1到300-k(k是整数)。dram110b可以执行非易失性存储器模块300-1到300-k的缓存功能。主机100b可以根据ddr接口连接到非易失性存储器模块300-1到300-k。

根据本发明构思的一些实施例的计算系统可连接到各种类型的存储设备。

图18是示出根据本发明构思的一些实施例的计算系统50的框图。参照图18,计算系统50可以包括中央处理单元(cpu)51、平台控制器集线器(pch)52、dram53、非易失性存储器模块nvdimm54、三维(3d)xpointtm存储器55、快速nvm(nvme)固态驱动器ssd56、串行at附件(sata)固态驱动器ssd57以及磁盘58。

dram53和nvdimm54可以根据ddr协议与cpu51通信。3dxpoint存储器55可以根据ddr-t/pcie协议与cpu51通信。nvmessd56可根据pcie协议与cpu51通信。平台控制器集线器52可以根据各种接口与存储设备连接。例如,satassd57可以通过使用sata接口被连接到平台控制器集线器52。磁盘58可以通过使用sata接口被连接到平台控制器集线器52。

图19是示出根据本发明构思的一些实施例的数据服务器系统60的框图。参照图19,数据服务器系统60可以包括相关数据库管理系统(rdbms)610、缓存服务器620和应用服务器630以及浏览器。

缓存服务器620可以遵守来自相关数据库管理系统610的禁用通知而保持和删除彼此不同的一对密钥和值。

rdbms610、缓存服务器620和应用服务器630中的至少一个可包括参照图1到18所描述的非易失性存储器模块nvdimm中的至少一个。

参照图1-19描述了非易失性存储器模块;然而,本发明构思的实施例不限于此。本发明构思的一些实施例可以适用于使用dram作为非易失性存储器的缓存的任何种类的计算系统。

图20是示出根据本发明构思的一些实施例的计算系统70的框图。参考图20,计算系统70可以包括cpu7100、缓存dram7200以及至少一个非易失性存储器7300。缓存dram7200可以执行非易失性存储器7300的缓存功能。缓存dram7200可以被称为“近存储器”,因为其相对接近cpu7100,并且非易失性存储器7300可以被称为“远存储器”,因为其相对远离cpu7100。

根据本发明构思的一些实施例,非易失性存储器模块及其计算系统可以使用具有缓存dram的非易失性存储器模块作为工作存储器,由此实现低成本、高容量和高性能。

虽然已经示出和描述了本总的发明构思的若干实施例,但是本领域的技术人员将会理解到:在不背离总的发明构思的原理和精神的情况下,可以在这些实施例中进行改变,总的发明构思的范围在所附权利要求书及其等同物中限定。

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