半导体存储器模块和存储器系统的制作方法

文档序号:18904321发布日期:2019-10-18 22:28阅读:172来源:国知局
半导体存储器模块和存储器系统的制作方法

本公开涉及半导体电路,更具体地讲,涉及半导体存储器模块和包括半导体存储器模块的存储器系统。



背景技术:

半导体存储器可包括用于存储数据的半导体装置。半导体存储器可包括易失性存储器(例如,动态随机存取存储器装置和静态随机存取存储器装置)和非易失性存储器(例如,闪存装置、相变存储器装置、铁电存储器装置、磁存储器装置和电阻式存储器装置)。一般来说,易失性存储器通常支持高速随机存取,并用作计算系统(诸如,个人计算机、服务器或工作站)的主存储器。相反,非易失性存储器通常支持大存储容量,并用作计算系统的辅助存储装置。

近来,正在对存储级存储器(scm)进行研究和开发。特别地,存储级存储器正被开发以支持非易失性大存储容量和高速随机存取。通常,提供存储级存储器以具有比传统上用作主存储器的易失性存储器的存储器容量更大的存储器容量。在用作主存储器时,存储级存储器的使用可造成存储器容量的快速增大。因此,必须开发一种允许对大容量主存储器的有效访问的新颖的装置和/或方法。



技术实现要素:

本发明构思的一些实施例提供了一种存储器系统,其中,所述存储器系统被配置为当发生页故障时,更快地在大容量主存储器上执行故障处理。此外,本发明构思的一些实施例提供了一种半导体存储器模块,其中,所述半导体存储器模块被配置为:执行故障处理,并允许跟随将被更快地执行的故障处理的访问。

根据本发明构思的一些实施例,一种存储器系统可包括:第一半导体存储器模块和处理器,其中,处理器被配置为:将第一半导体存储器模块的存储空间划分为多个页,并以页为单位访问第一半导体存储器模块。当在与作为访问目标的虚拟地址相关联的特定页中发生页故障时,处理器可被配置为:调整与所述虚拟地址相关联的页的数量并分配第一半导体存储器模块的与调整的页的数量对应的页,使得分配的页与所述虚拟地址相关联。

根据本发明构思的一些实施例,一种存储器系统可包括:第一半导体存储器模块和处理器,其中,处理器被配置为:将第一半导体存储器模块的存储空间划分为多个页,并以页为单位访问第一半导体存储器模块。当由处理器驱动的应用被分配给m个页时,处理器可被配置为:执行n次故障处理,这里,m是正整数并且n是小于m的正整数。

通过将被执行n次的故障处理中的每个被彼此映射的逻辑地址的数量和虚拟地址的数量可被顺序地增大。

根据本发明构思的一些实施例,一种半导体存储器模块可包括:非易失性存储器、随机存取存储器以及控制器,其中,控制器被配置为:根据从外部装置发送的写入命令和写入地址在非易失性存储器或随机存取存储器上执行写入操作,并根据从外部装置发送的读取命令和读取地址在非易失性存储器或随机存取存储器上执行读取操作。当非易失性存储器的地址以与写入命令(或读取命令)和写入地址(或读取地址)的格式不同的格式接收时,控制器可被配置为:执行将非易失性存储器的对应于所述地址的存储空间映射到随机存取存储器的高速缓存分配。

附图说明

将从以下结合附图的简要描述更加清楚地理解示例实施例。附图表示在此描述的非限制性示例实施例。

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

图2示出第一存储器模块和第三存储器模块被处理器访问的示例。

图3示出在存储器系统中发生的页故障(pagefault)的示例。

图4示出将在存储器系统中被执行的故障处理的示例。

图5示出利用虚拟地址“01”至虚拟地址“16”标识的虚拟存储空间被分配给第一应用的示例。

图6示出根据第一实施例的将在图5的步骤之后被执行的虚拟地址分配的示例。

图7示出根据第一实施例的通过页故障处理器在虚拟地址“01”至虚拟地址“16”上执行的页故障处理的示例。

图8示出根据本发明构思的第二实施例的执行故障处理的方法。

图9示出根据第二实施例的将在图5的步骤之后被执行的虚拟地址分配的示例。

图10示出根据第二实施例的将在图9的步骤之后被执行的虚拟地址分配的示例。

图11示出根据第二实施例的通过页故障处理器在虚拟地址“01”至虚拟地址“16”上执行的页故障处理的示例。

图12示出根据本发明构思的一些实施例的调整页数的方法的示例。

图13示出通过故障处理获得的结果被提供给第一存储器模块的示例。

图14示出根据本发明构思的一些实施例的第一类型存储器模块的框图。

应该注意,这些附图意在示出特定示例实施例中利用的方法、结构和/或材料的一般特性,并补充以下提供的书面描述。然而,这些附图不一定按比例绘制,不会精确地反映任何给定实施例的精确结构或性能特性,并且不应被解释为限定或限制由示例实施例包含的值的范围或属性。例如,为了清楚,层、区域和/或结构元件的相对厚度和位置可被减小或夸大。

具体实施方式

现将参照本发明的优选实施例在其中被示出的附图更全面地描述本发明。然而,本发明可以以许多不同的形式来实现,并不应被解释为限于在此阐述的实施例;相反,提供这些实施例使得本公开彻底并完整,并且将本发明的范围全面地传递给本领域的技术人员。相同的参考标记始终表示相同的元件。

将理解,虽然术语第一、第二、第三等可在此用于描述各种元件、组件、区域、层和/或部分,但是这些元件、组件、区域、层和/或部分不应被这些术语限制。这些术语仅用于将一个元件、组件、区域、层或部分与另一个元件、组件、区域、层或部分区分开来。因此,在不脱离本发明的教导的情况下,以下讨论的第一元件、组件、区域、层或部分也可被称为第二元件、组件、区域、层或部分。

在此使用的术语仅为了描述特定实施例的目的,而不意在对本发明进行限制。如在此使用的,除非上下文另有清楚地指示,否则单数形式也意在包括复数形式。还将理解,当术语“包括”、“包含”、“具有”及其变形用在本说明书中时,术语“包括”、“包含”、“具有”及其变形表明存在陈述的特征、步骤、操作、元件和/或组件,但不排除存在或增加一个或多个其它特征、步骤、操作、元件、组件和/或它们的组。相反,当“由……组成”用在本说明书中时,表明陈述的特征、步骤、操作、元件和/或组件,并且排除另外的特征、步骤、操作、元件和/或组件。

除非另有定义,否则在此使用的所有术语(包括技术术语和科学术语)具有与由本发明所属领域的普通技术人员通常理解的含义相同的含义。还将理解,除非在此明确地定义,否则术语(诸如通用词典中定义的术语)应被解释为具有与相关领域的上下文中的含义一致的含义,并且不会被理想化或过于形式化地解释。

图1是示出根据本发明构思的一些实施例的存储器系统100的框图。例如,存储器系统100可包括服务器系统,诸如,应用服务器、客户服务器或数据服务器。可选地,存储器系统100可包括个人计算机、工作站等。

参照图1,存储器系统100可包括可如示出那样电连接的处理器110、第一存储器模块(memorymodule)120至第四存储器模块150、根复合体(rootcomplex)160以及存储装置(storagedevice)170。处理器110可被配置为控制存储器系统100的元件和元件的操作。此外,处理器110可被配置为执行操作系统和各种应用,并使用操作系统或应用来处理数据。

处理器110可包括存储器控制器(memorycontroller)111、高速缓冲存储器(cachememory)112以及一个或多个核(core)(未示出)。存储器控制器111可通过主通道mch和补充(supplementary)通道sch来访问第一存储器模块120、第二存储器模块130、第三存储器模块140以及第四存储器模块150。高速缓冲存储器112可包括高速可靠的存储器装置(例如,静态随机存取存储器(sram)装置)。

存储器控制器111可包括寄存器r。寄存器r可被配置为存储在存储器控制器111访问第一存储器模块120至第四存储器模块150时需要的各种数据。存储器控制器111可基于存储在寄存器r中的数据来访问第一存储器模块120至第四存储器模块150。

如示出的那样,第一存储器模块120至第四存储器模块150可通过主通道mch和补充通道sch连接到存储器控制器111。主通道mch可用于将数据写入到存储器模块120至150(例如,半导体存储器模块)或用于从存储器模块120至150读取数据。主通道mch可包括分别针对第一存储器模块120至第四存储器模块150提供的多个通道。

补充通道sch(亦称,次要通道)可用于支持除了经由主通道mch写入/读取数据的功能以外的与第一存储器模块120至第四存储器模块150相关联的附加功能。例如,第一存储器模块120至第四存储器模块150可通过补充通道sch将它们自己特有的数据提供给存储器控制器111。补充通道sch可包括分别针对第一存储器模块120至第四存储器模块150提供的多个通道。

第一存储器模块120、第二存储器模块130、第三存储器模块140和第四存储器模块150可共同地用作存储器系统100的主存储器。第一存储器模块120至第四存储器模块150可被配置为根据各种标准(诸如,用于双列直插式存储器模块(dimm)、带寄存器的dimm(rdimm)和低负载dimm(lrdimm)的标准)中的一个与存储器控制器111通信。

根复合体160可被配置为提供允许处理器110访问包括示出的存储装置170的各种外围装置的通道,其中,存储装置170可作为硬盘驱动器、光盘驱动器、固态硬盘等中的至少一个进行操作。

然而,连接到根复合体160的外围装置的类型不限于存储装置170。例如,根复合体160可连接到一个或多个其它装置(诸如,调制解调器、图形处理单元(gpu)和神经形态处理器)。

处理器110可被配置为分级地管理高速缓冲存储器112、作为主存储器的第一存储器模块120至第四存储器模块150、以及存储装置170。例如,处理器110可被配置为将必要数据从存储装置170加载到由存储器模块120至存储器模块150支持的主存储器。处理器110还可被配置为将存储在主存储器中的将被备份的数据刷入(flush)到存储装置170。

由第一存储器模块120至第四存储器模块150支持的主存储器的部分存储区域可被映射到高速缓冲存储器112。在这种必须访问主存储器的特定存储空间情况下,处理器110可确定特定存储空间是否被映射到高速缓冲存储器112。

如果特定存储空间被映射到高速缓冲存储器112,则处理器110可快速并直接访问高速缓冲存储器112的对应于特定存储空间的存储空间。然而,如果特定存储空间未被映射到高速缓冲存储器,则处理器110可将第一存储器模块120至第四存储器模块150的特定存储空间映射到或提取到高速缓冲存储器112。

如果高速缓冲存储器112的存储空间具有不足的存储容量,则处理器110可释放先前映射到高速缓冲存储器112的现有存储空间的至少部分。并且,如果将被释放的存储空间的数据被更新,则处理器110可将更新的数据刷入到第一存储器模块120至第四存储器模块150。

第一存储器模块120至第四存储器模块150可以是异构的存储器模块。例如,第一存储器模块120和第二存储器模块130可以是第一类型存储器模块,而第三存储器模块140和第四存储器模块150可以是第二类型存储器模块。

因此,第一存储器模块120可包括第一类型存储器121、第二类型存储器122、媒体控制器123、串行存在检测(spd)装置125。第二存储器模块130可包括第一类型存储器131、第二类型存储器132、媒体控制器133、串行存在检测(spd)装置135。在下文中,将参照第一存储器模块120更详细地描述第一类型存储器模块120和130。

第一类型存储器121可包括高速易失性存储器(例如,动态随机存取存储器(dram)装置)。第二类型存储器122可包括比第一类型存储器121具有更低的速度和更大的存储容量的非易失性存储器。例如,第二类型存储器122可包括闪存、相变存储器、铁电存储器、磁存储器、电阻式存储器等中的至少一个。

媒体控制器123可被配置为传送访问命令,其中,访问命令通过主通道mch的相应通道从外部主机装置(例如,存储器控制器111或处理器110)发送至第一类型存储器121或第二类型存储器122。根据访问命令,媒体控制器123可通过主通道mch的相应通道与外部主机装置(例如,存储器控制器111或处理器110)交换数据。

媒体控制器123可将第二类型存储器122的存储容量或存储空间提供给外部主机装置(例如,存储器控制器111或处理器110)。在媒体控制器123的控制下,第一类型存储器121可用作第二类型存储器122的高速缓冲存储器。

例如,媒体控制器123可被配置为将第二类型存储器122的部分存储空间映射到第一类型存储器121。如果与从外部主机装置(例如,存储器控制器111或处理器110)提供的访问命令相关联的存储空间被映射到第一类型存储器121,则媒体控制器123可将访问命令传送至第一类型存储器121。

如果与从外部主机装置(例如,存储器控制器111或处理器110)提供的访问命令相关联的存储空间未被映射到第一类型存储器121,则媒体控制器123可将相应的存储空间从第二类型存储器122映射或备份到第一类型存储器121。

如果第一类型存储器121的存储空间不足,则媒体控制器123可释放先前映射到第一类型存储器121的现有存储空间中的至少部分。如果将被释放的存储空间的数据被更新,则媒体控制器123可将更新的数据刷入到第二类型存储器122。

spd装置125可通过补充通道sch的相应通道与外部主机装置(例如,存储器控制器111或处理器110)通信。例如,当第一存储器模块120被初始化时,spd装置125可通过补充通道sch的相应通道将存储在其中的数据提供给外部主机装置(例如,存储器控制器111或处理器110)。

例如,spd装置125可存储关于提供给外部主机装置(例如,存储器控制器111或处理器110)的第一存储器模块120的存储容量的信息。例如,spd装置125可存储关于第二类型存储器122的存储容量的信息。当初始化被执行时,spd装置125可将关于第二类型存储器122的存储容量的信息提供给外部主机装置(例如,存储器控制器111或处理器110)。

例如,存储在spd装置125中的容量信息可包含关于第二类型存储器122的用户容量的信息。第二类型存储器122的存储容量可包括用户容量、元容量(meta-capacity)以及预留容量。用户容量可以是通过第二类型存储器122提供给外部主机装置(例如,存储器控制器111)的存储容量。

元容量可以是被提供以存储用于管理第二类型存储器122的各种类型的元数据并且不暴露于外部主机装置(例如,存储器控制器111)的存储容量。预留容量可以是被提供以管理第二类型存储器122并且不暴露于外部主机装置(例如,存储器控制器111)的存储容量。

存储在spd装置125中的容量信息可包含关于第二类型存储器122的用户容量的信息。在下文中,除非另有定义,否则第二类型存储器122的容量可被解释为指示第二类型存储器122的用户容量。

第三存储器模块140可包括第一类型存储器141和spd装置145。相似地,第四存储器模块150可包括第一类型存储器151和spd装置155。在下文中,将参照第三存储器模块140更详细地描述第二类型存储器模块140和150。

与第一存储器模块120的第一类型存储器121相似,第一类型存储器141可包括动态随机存取存储器。spd装置145可通过补充通道sch的相应通道与外部主机装置(例如,存储器控制器111或处理器110)通信。例如,当第三存储器模块140被初始化时,spd装置145可通过补充通道sch的相应通道将存储在其中的数据提供给外部主机装置(例如,存储器控制器111或处理器110)。

例如,spd装置145可存储关于提供给外部主机装置(例如,存储器控制器111或处理器110)的第三存储器模块140的存储容量的信息。例如,spd装置145可存储关于第一类型存储器141的存储容量的信息。当初始化被执行时,spd装置145可将关于第一类型存储器141的存储容量的信息提供给外部主机装置(例如,存储器控制器111或处理器110)。

如果向存储器系统100供电,则存储器控制器111可初始化第一存储器模块120至第四存储器模块150。例如,第一存储器模块120至第四存储器模块150的spd装置125、spd装置135、spd装置145以及spd装置155可通过补充通道sch将各自的容量信息提供给存储器控制器111。

第一类型存储器模块120和130的spd装置125和135可将第二类型存储器122和132的各自的存储容量提供给存储器控制器111。第二类型存储器模块140和150的spd装置145和155可将第一类型存储器141和151的各自的存储容量提供给存储器控制器111。例如,存储器控制器111可从spd装置125、spd装置135、spd装置145和spd装置155读取各自的存储容量。

在上述实施例中,存储装置170连接到根复合体160的结构被示出。然而,连接到根复合体160的装置不限于存储装置170。

图2示出第一存储器模块120和第三存储器模块140被处理器110访问的示例。为了减小附图的复杂度,除了处理器110、第一存储器模块120和第三存储器模块140以外的其它元件将被省略。

图2的执行区域“ea”示出将在处理器110中被执行的实体(entity)。如执行区域ea中所示,操作系统os可在处理器110(例如,一个或多个核)中被执行。此外,在处理器110中,第一应用app1至第三应用app3可在操作系统os上被执行。

操作系统os可包括页故障处理器(pagefaulthandler)pfh。页故障处理器pfh可被配置为处理可在第一应用app1至第三应用app3访问第一存储器模块120和第三存储器模块140时发生的页故障(pagefault)。将参照图3和图4更详细地描述页故障处理器pfh的操作。

第一存储器模块120可将第二类型存储器122的存储空间提供给处理器110。与第一存储器模块120的用户容量对应的存储空间将被示出为第一存储区域sa1。第一存储区域sa1可包括第一子存储区域sa1_1至第三子存储区域sa1_3。

第一子存储区域sa1_1至第三子存储区域sa1_3可以是包括在第二类型存储器122的存储空间中并在逻辑上或物理上彼此区分的存储区域。不同的地址可用于对第一子存储区域sa1_1至第三子存储区域sa1_3的访问。

除了第一存储区域sa1以外,与第一存储器模块120的元容量对应的存储空间将被示出为第一元存储区域sa1_m。媒体控制器123可将对第一存储区域sa1的访问所需的各种数据存储在第一元存储区域sa1_m。

第三存储器模块140可将第一类型存储器141的存储空间提供给处理器110。第三存储器模块140的存储空间将被示出为第二存储区域sa2。第二存储区域sa2可小于第一存储区域sa1。

如果存储器系统100被初始化,则处理器110的存储器控制器111可通过补充通道sch来区分第一存储器模块120至第四存储器模块150的存储空间。处理器110(例如,操作系统os)可将地址(例如,虚拟地址va)分配给区分的存储空间。

处理器110(例如,操作系统os)可使用虚拟地址va来访问第一存储区域sa1和第二存储区域sa2。处理器110(例如,操作系统os)可使用虚拟地址va将第一存储器模块120至第四存储器模块150的存储空间分配给第一应用app1至第三应用app3。

存储器控制器111可从处理器110(例如,一个或多个核)接收基于虚拟地址va的访问命令。存储器控制器111可将虚拟地址va转换为第一存储器模块120至第四存储器模块150的实际地址。存储器控制器111可基于实际地址通过主通道mch访问第一存储器模块120至第四存储器模块150。例如,存储器控制器111可分别通过第一主通道mch1和第二主通道mch2来访问第一存储器模块120和第三存储器模块140。

存储器控制器111可将页表pt存储在第三存储器模块140,其中,页表pt包含由处理器110分配的虚拟地址va与第一存储器模块120至第四存储器模块150的实际地址之间的映射信息。页表pt可包括第一表t1至第四表t4,其中,第一表t1至第四表t4的每个与第一存储器模块120至第四存储器模块150中的相应的一个相关联。

在一些示例中,存储器控制器111可将页表pt存储在第二类型存储器模块140和150中的一个。在某些实施例中,存储器控制器111可将页表pt存储在第一存储器模块120至第四存储器模块150中的一个。例如,存储器控制器111可将第一存储器模块120至第四存储器模块150上的第一表t1至第四表t4存储在单个存储器模块。

第二类型存储器模块140和150可被存储器控制器111直接访问。在存储器控制器111访问第二类型存储器模块140和150的情况下,访问可基于第一类型存储器141和151的物理地址pa来执行。因此,用于第二类型存储器模块140和150的第三表t3和第四表t4可包含第二类型存储器模块140和150的虚拟地址va与物理地址pa之间的映射信息。

第一类型存储器模块120和130不能被存储器控制器111直接访问。存储器控制器111可通过媒体控制器123或133来访问第一类型存储器模块120和130。在存储器控制器111访问第一类型存储器模块120和130的情况下,访问可基于与第二类型存储器122和132的物理地址pa不同的逻辑地址la来执行。

媒体控制器123或133可将将被存储器控制器111使用的第二类型存储器122或132的逻辑地址la与物理地址pa之间的映射信息存储在第一元存储区域sa1_m。媒体控制器123或133可使用存储在第一元存储区域sa1_m中的映射信息,将从存储器控制器111提供的访问命令转换为用于第二类型存储器122或132的访问命令。

由于存储器控制器111使用第一类型存储器模块120和130的逻辑地址la,所以第一类型存储器模块120和130的第一表t1和第二表t2可包含虚拟地址va与逻辑地址la之间的映射信息。

存储器控制器111可将存储有页表pt的第三存储器模块140的存储空间的开始地址和关于页表pt的大小的信息存储在寄存器r。在“操作系统os和第一应用app1至第三应用app3”中的至少一个基于虚拟地址va请求对第一存储器模块120至第四存储器模块150的访问的情况下,存储器控制器111最初可参照寄存器r来搜索页表pt被存储的位置(例如,地址),然后可根据搜索的结果将访问命令发送至第一存储器模块120至第四存储器模块150。

图3示出存储器系统100中的页故障的发生的示例。参照图1和图3,在由虚线示出的步骤s110中,第一应用app1可请求对第一存储器模块120的存储器访问。来自第一应用app1的请求可通过操作系统os发送至存储器控制器111。在由虚线示出的步骤s120中,存储器控制器111可参照寄存器r来搜索页表pt。

如果在第一表t1中不存在被请求存储器访问的第一存储器模块120的虚拟地址va的映射信息,则在步骤s130中可发生由突出显示的“星形”示出的页故障。例如,如果第一应用app1请求新存储器的分配,则操作系统os可指示存储器控制器111执行针对这样的存储器分配的存储器访问。

由于先前未使用的新存储器的分配被请求,所以在第一表t1中不会存在其映射信息。换言之,当新存储器的分配被执行时,可发生页故障。例如,当第一应用app1开始运行时,新存储器的分配可被请求而导致页故障。在由图3中的处理器110的突出显示部分中的虚线示出的步骤s140中,如果发生页故障,则从第一应用app1到操作系统os的上下文切换(contextswitching)可被执行。

图4示出故障处理将在存储器系统100中被执行的示例。参照图4,在由虚线示出的步骤s150中,操作系统os的页故障处理器pfh可执行故障处理操作。例如,页故障处理器pfh可将第一存储器模块120的可用页的逻辑地址la映射到由第一应用app1请求的虚拟地址va。

例如,如果第一存储器模块120至第四存储器模块150具有不足的可用容量,则处理器110可将存储在第一存储器模块120的第一存储区域sa1中的部分数据交换到存储装置170,并可释放交换的数据的存储空间,以确保第一存储区域sa1中的增大的可用容量。

映射的逻辑地址la可被分配给第一存储区域sa1作为用于第一应用app1的第一应用存储区域sa_app1。在由虚线示出的步骤s160中,存储器控制器111可将第一应用存储区域sa_app1的映射信息写入在页表pt的第一表t1,从而更新页表。在步骤s170中,在故障处理(s150)和页表更新(s160)之后,从页故障处理器pfh到第一应用app1的上下文切换操作可被执行。

如参照图3和图4所述,如果发生页故障并且故障处理被执行,则上下文切换可被执行两次。上下文切换可造成存储器系统100中的资源消耗和存储器系统100的操作速度的降低。

图5示出利用虚拟地址“01”至虚拟地址“16”标识的虚拟存储区域vsa被分配给第一应用app1的示例。参照图1和图5,在步骤s211中,第一应用app1可请求对虚拟存储区域vsa的具有虚拟地址va“01”的部分的访问。例如,虚拟地址va“01”可对应于第一存储器模块120。

在步骤s212中,由于在第一表t1(例如,参见图3)中不存在关于虚拟地址va“01”的映射信息,所以可发生页故障。此后,上下文切换可被执行,并且页故障处理器pfh可被激活。在步骤s213中,页故障处理器pfh可执行故障处理。

例如,页故障处理器pfh可将第一应用存储区域sa_app1的具有逻辑地址la“21”的部分映射到虚拟地址va“01”。例如,逻辑地址la“21”可对应于第一存储器模块120。在步骤s214中,页故障处理器pfh可在第一表t1上执行页表更新,以包含虚拟地址va“01”与逻辑地址la“21”之间的映射信息。

图6示出根据第一实施例的将在图5的步骤之后被执行的分配虚拟地址va的步骤的示例。参照图6,在步骤s221中,第一应用app1可访问虚拟存储区域vsa的具有虚拟地址va“02”的下一页。在步骤s222中,可发生页故障,并且在步骤s223中,故障处理可被执行。

页故障处理器pfh可将第一应用存储区域sa_app1的具有逻辑地址la“22”的部分分配给虚拟地址va“02”。在步骤s224中,页故障处理器pfh可在第一表t1上执行页表更新,以包含虚拟地址va“02”与逻辑地址la“22”之间的映射信息。第一应用app1可以以与参照图5和图6描述的方式相同的方式请求对虚拟地址va“01”至虚拟地址va“16”的顺序的访问。

图7示出根据第一实施例的通过页故障处理器pfh在虚拟地址“01”至虚拟地址“16”上执行的页故障处理的示例。参照图7,页故障处理器pfh可通过步骤s231、步骤s232、步骤s233和步骤s234,将第一应用存储区域sa_app1的具有逻辑地址la“21”至逻辑地址la“36”的部分映射到虚拟存储区域vsa的具有虚拟地址va“01”至虚拟地址va“16”的部分。页故障处理器pfh可在虚拟地址va“01”至虚拟地址va“16”的每个上执行页故障处理。

通常,页的大小可以是4kb。被第一应用app1使用的存储器容量可从几兆字节到几千兆字节。当大容量存储级存储器(诸如,第一类型存储器模块120和130)被引入时,被第一应用app1使用的存储器容量可增大。

在为第一应用app1分配的存储器容量大的情况下,以页(即,4kb)为单位执行的故障处理可造成处理器110的资源的过度消耗和处理器110和存储器系统100的操作速度的下降。相比之下,根据本发明构思的一些实施例,处理器110(或操作系统os)执行的故障处理的数量可小于由第一应用app1请求访问的页的数量,并且在这种情况下,以上问题可被成功地克服。

图8示出根据本发明构思的第二实施例的执行故障处理的方法。参照图2和图8,在步骤s310中,页故障处理器pfh可调整页数。在步骤s320中,页故障处理器pfh可根据调整的页数来分配页。在步骤s330中,页故障处理器pfh可根据所述分配来更新页表pt。

例如,页故障处理器pfh可根据发生页故障的访问的属性来调整页数。当与特定访问相关联的故障处理被执行时,页故障处理器pfh可使两个或更多个虚拟地址va与两个或更多个逻辑地址la彼此映射。

在页故障由访问连续的多个虚拟地址的操作(例如,存储器分配)导致的情况下,页故障处理器pfh可顺序地增加在故障处理期间彼此映射的虚拟地址va和逻辑地址la的数量。

图9示出根据第二实施例的将在图5的步骤之后被执行的分配虚拟地址va的步骤的示例。参照图9,在步骤s411中,第一应用app1可访问虚拟存储区域vsa的具有虚拟地址va“02”的下一页。在步骤s412中,可发生页故障,并且在步骤s413中,故障处理可被执行。

图9的页故障处理器pfh可被配置为将两个或更多个逻辑地址映射到两个或更多个虚拟地址。例如,页故障处理器pfh可被配置为将第一应用存储区域sa_app1的逻辑地址la“22”分配给虚拟地址va“02”,并将逻辑地址la“23”映射到虚拟地址va“03”。

在步骤s414中,页故障处理器pfh可在第一表t1上执行页表更新,以包含虚拟地址va“02”与逻辑地址la“22”之间的映射信息和虚拟地址va“03”与逻辑地址la“23”之间的映射信息。

图10示出根据本发明的第二实施例的将在图9的步骤之后被执行的分配虚拟地址的步骤的示例。参照图10,在步骤s421中,第一应用app1可以按顺序的方式访问虚拟存储区域vsa的其虚拟地址va是“02”和“03”的页。

由于虚拟地址va“03”被映射到逻辑地址la“23”,所以当第一应用app1访问虚拟地址va“03”时不会发生页故障。然而,因为虚拟地址va“04”未被映射到逻辑地址la,所以当第一应用app1访问虚拟地址va“04”时或在步骤s422中,可发生页故障。在步骤s423中,故障处理可被执行。

页故障处理器pfh可被配置为将两个或更多个逻辑地址映射到两个或更多个虚拟地址。例如,页故障处理器pfh可被配置为将第一应用存储区域sa_app1的逻辑地址la“24”分配给虚拟地址va“04”,将逻辑地址la“25”映射到虚拟地址va“05”,将逻辑地址la“26”分配给虚拟地址va“06”,并将逻辑地址la“27”映射到虚拟地址va“07”。

在步骤s424中,页故障处理器pfh可执行页表(例如,第一表t1)的更新,以包含虚拟地址va“04”与逻辑地址la“24”之间的映射信息、虚拟地址va“05”与逻辑地址la“25”之间的映射信息、虚拟地址va“06”与逻辑地址la“26”之间的映射信息、以及虚拟地址va“07”与逻辑地址la“27”之间的映射信息。

如参照图9和图10所述,第一应用app1可顺序地增加在故障处理的执行期间彼此映射的逻辑地址la的数量和虚拟地址va的数量。

图11示出根据第二实施例的通过页故障处理器pfh在虚拟地址“01”至虚拟地址“16”上执行的页故障处理操作的示例。参照图11,页故障处理器pfh可将第一应用存储区域sa_app1的具有逻辑地址la“21”至逻辑地址la“36”的部分映射到虚拟存储区域vsa的具有虚拟地址va“01”至虚拟地址va“16”的部分。页故障处理器pfh可在虚拟地址va“01”、“02”、“04”、“08”以及“16”中的每个上执行页故障处理。

与图7的第一实施例相比,根据图11的第二实施例,可以减少故障处理的执行的数量。因此,可以减小上下文切换的执行的数量,以更快地执行故障处理,从而提高处理器110和存储器系统100的操作速度。

图12示出根据本发明构思的一些实施例的调整页数的方法的示例。参照图2和图12,在步骤s510中,页故障处理器pfh可确定页故障是否由来自相同的应用(例如,app1)的接连(或连续)访问(例如,由对连续的多个虚拟地址va的访问)而导致。

例如,页故障处理器pfh可确定导致页故障的访问的虚拟地址和先前访问的虚拟地址是否是连续的。如果页故障不是由连续访问导致(即,如果与页故障相关联的虚拟地址和先前访问的虚拟地址不是连续的),则步骤s520可被执行。在步骤s520中,页故障处理器pfh可将页数调整为默认值(例如,“1”)。此后,调整可被终止。

如果页故障由连续访问导致(即,如果与页故障相关联的虚拟地址和先前访问的虚拟地址是连续的),则步骤s530可被执行。在步骤s530中,页故障处理器pfh可确定页数是否达到阈值。如果页数未达到阈值,则步骤s540可被执行。在步骤s540中,页故障处理器pfh可将页数调整为先前分配的页的数量的两倍。此后,调整可被终止。

如果页数达到阈值,则步骤s550可被执行。在步骤s550中,页故障处理器pfh可将页数调整为先前分配的页的数量。例如,页故障处理器pfh可将页数调整为与先前故障处理操作中的页数相同的值。此后,调整可被终止。

本发明构思不限于页数被页故障处理器pfh调整为先前分配的页的数量的两倍的示例。例如,页故障处理器pfh可将页数增加预定数量。作为示例,当与连续访问相关联的故障处理被执行时,页故障处理器pfh可将页数增加2或4。

在一些实施例中,页故障处理器pfh可以以包括两个或更多个阶段的划分方式,来执行与连续访问相关联的故障处理。在第一阶段,页故障处理器pfh可调整页数,以具有为先前分配的页的数量的k倍的值,这里,k是正整数。在第二阶段,页故障处理器pfh可调整页数,以具有通过将正整数i与先前分配的页的数量相加而获得的值。

在上述实施例中,先前参照图5、图9、图10和图11描述的故障处理(即,根据第二实施例的故障处理)被描述为在第一存储器模块120上执行。然而,参照图5、图9、图10和图11描述的故障处理可用于全部第一存储器模块120至第四存储器模块150。

例如,当在第二类型存储器模块140和150上执行先前参照图5、图9、图10和图11描述的故障处理时,参照图5、图9、图10和图11描述的逻辑地址la可被改变为第三存储器模块140或第四存储器模块150的物理地址pa。

在一些实施例中,页故障处理器pfh可根据存储器模块的类型以不同的方式执行故障处理。例如,在第一类型存储器模块120和130中发生页故障的情况下,页故障处理器pfh可执行参照图5、图9、图10和图11描述的故障处理(即,根据在上文描述的第二实施例)。

然而,在第二类型存储器模块140和150发生页故障的情况下,页故障处理器pfh执行参照图5、图6和图7描述的故障处理(即,根据在上文描述的第一实施例)。在一些实施例中,关于第一存储器模块120至第四存储器模块150的类型的信息可在初始化时从spd装置125、spd装置135、spd装置145和spd装置155提供给处理器110。

图13示出通过故障处理获得的结果被提供给第一存储器模块120的示例。在图13中示出的步骤可在参照图3和图4描述的故障处理之后被执行。参照图1和图13,如由步骤s180所示,页故障处理器pfh可执行故障通知操作。

例如,页故障处理器pfh可指示存储器控制器111将在故障处理期间映射的逻辑地址la发送至与相应的逻辑地址la相关联的第一存储器模块120。存储器控制器111可将映射的逻辑地址la发送至第一存储器模块120的媒体控制器123。

例如,存储器控制器111可将读取命令和读取地址发送至第一存储器模块120,以请求读取操作。存储器控制器111可将写入命令和写入地址发送至第一存储器模块120,以请求写入操作。存储器控制器111可将具有与读取命令和读取地址的格式、与写入命令和写入地址的格式不同的格式的逻辑地址la发送至第一存储器模块120。

在一些实施例中,每当故障处理被执行时,页故障处理器pfh可执行故障通知。在某些实施例中,如果与连续的地址相关联的故障处理被重复特定次数,则页故障处理器pfh可执行故障通知。在某些实施例中,如果即使在先前的故障处理的完成之后经过特定时间时新故障处理仍未被执行,则页故障处理器pfh可执行故障通知。因此,页故障处理器pfh执行的故障通知的条件可被不同地修改。

如上所述,当第一应用app1请求新存储器的分配时,故障处理可被执行。如果请求的存储器分配完成,则分配的存储器可被第一应用app1利用。也就是说,如果在特定逻辑地址la上执行故障处理,则可预期特定逻辑地址la被计划访问。

如图13中的步骤s190所示,媒体控制器123可执行将第二类型存储器122的对应于特定逻辑地址la的存储空间映射到第一类型存储器121的高速缓存(cache)分配。例如,当在第二类型存储器122的第一应用存储区域sa_app1的逻辑地址la上执行故障处理时,媒体控制器123可将第一应用存储区域sa_app1映射到第一类型存储器121。

在第一应用存储区域sa_app1被媒体控制器123映射到第一类型存储器121的情况下,当在第一应用app1访问分配的存储器时,在第一类型存储器121中可发生高速缓存命中,而不是高速缓存未命中。因此,存储器系统100的速度可被增大。

图14是示出根据本发明构思的一些实施例的第一类型存储器模块200的框图。在一些实施例中,第一类型存储器模块200可以是被提供以符合lrdimm(“低负载”dimm)标准的存储器模块。参照图1和图14,第一类型存储器模块200可包括易失性存储器装置210、非易失性存储器装置220、媒体控制器230以及第一数据缓冲器241至第八数据缓冲器248。

易失性存储器装置210可包括第一易失性存储器211至第四易失性存储器214。第一易失性存储器211至第四易失性存储器214可使用彼此分离的多个封装来实现。第一易失性存储器211至第四易失性存储器214可包括动态随机存取存储器。易失性存储器装置210可以是第一类型存储器121或第一类型存储器131。

非易失性存储器装置220可包括第一非易失性存储器221至第四非易失性存储器224。第一非易失性存储器221至第四非易失性存储器224可使用彼此分离的多个封装来实现。第一非易失性存储器221至第四非易失性存储器224可以是被设置在非易失性存储器装置220中并利用不同地址标识的不同存储区域。非易失性存储器装置220可以是第二类型存储器122或第二类型存储器132。

特别地,非易失性存储器装置220可包括各种非易失性存储器装置(例如,包括闪存装置、相变存储器装置、铁电存储器装置、电阻式存储器装置和磁存储器装置)中的至少一个。

媒体控制器230可从存储器控制器111接收第一命令和地址ca1、第一时钟信号ck1以及第一控制信号ctrl1。媒体控制器230可与第一数据缓冲器241至第八数据缓冲器248交换第二数据信号dq2。媒体控制器230可根据第一命令和地址ca1、第一时钟信号ck1以及第一控制信号ctrl1,来访问易失性存储器装置210或非易失性存储器装置220。

媒体控制器230可将第二命令和地址ca2、第二时钟信号ck2以及第二控制信号ctrl2发送至易失性存储器装置210,并可与易失性存储器装置210交换第三数据信号dq3。媒体控制器230可将第三命令和地址ca3、第三时钟信号ck3以及第三控制信号ctrl3发送至非易失性存储器装置220,并可与非易失性存储器装置220交换第四数据信号dq4。

在这些实施例中的一些中,第一命令和地址ca1、第二命令和地址ca2和第三命令和地址ca3可具有不同的格式。在某些实施例中,第一命令和地址ca1、第二命令和地址ca2以及第三命令和地址ca3中的至少两个可具有相同的格式。例如,媒体控制器230用来与易失性存储器装置210通信的格式可不同于媒体控制器230用来与非易失性存储器装置220通信的格式。

媒体控制器230可发送第一缓冲器命令cmd_b1,以控制第一数据缓冲器241至第四数据缓冲器244。媒体控制器230可发送第二缓冲器命令cmd_b2,以控制第五数据缓冲器245至第八数据缓冲器248。

第一数据缓冲器241至第八数据缓冲器248可与数据选通信号(strobesignal)dqs同步地与存储器控制器111交换第一数据信号dq1。第一数据缓冲器241至第八数据缓冲器248可将从存储器控制器111接收的第一数据信号dq1发送至媒体控制器230作为第二数据信号dq2。

第一数据缓冲器241至第八数据缓冲器248可将从媒体控制器230接收的第二数据信号dq2发送至存储器控制器111作为第一数据信号dq1。第一数据缓冲器241至第八数据缓冲器248可使用彼此分离的多个封装来实现。

在一些实施例中,易失性存储器装置210可用作非易失性存储器装置220的高速缓冲存储器。非易失性存储器装置220的部分存储空间可被映射到易失性存储器装置210。

当由从存储器控制器111接收的第一命令和地址ca1指示的第一存储空间被映射到易失性存储器装置210时(即,当发生高速缓存命中时),媒体控制器230可将第二命令和地址ca2发送至易失性存储器装置210。易失性存储器装置210可根据第二命令和地址ca2执行写入或读取操作。

在由从存储器控制器111接收的第一命令和地址ca1指示的第一存储空间未被映射到易失性存储器装置210时(即,当发生高速缓存未命中时),媒体控制器230可将由第一命令和地址ca1指示的第一存储空间映射到易失性存储器装置210。

例如,可以确保易失性存储器装置210中的与非易失性存储器装置220的第一存储空间相关联的第二存储空间。如果易失性存储器装置210的存储空间不足,则媒体控制器230可丢弃映射到易失性存储器装置210的其它存储空间,或可将其它存储空间归还(return)到非易失性存储器装置220,并且在这种情况下,可以确保易失性存储器装置210中的存储空间。

如果存在存储在非易失性存储器装置220的第一存储空间中的数据,则媒体控制器230可将第一存储空间中的数据复制到易失性存储器装置210的第二存储空间。此后,媒体控制器230可将第二命令和地址ca2发送至易失性存储器装置210。易失性存储器装置210可响应于第二命令和地址ca2在第二存储空间上执行写入或读取操作。

在一些实施例中,如果故障通知通过第一命令和地址ca1来发送,则媒体控制器230可将非易失性存储器装置220的与包括在故障通知中的一个逻辑地址或多个逻辑地址对应的存储空间映射到易失性存储器装置210。故障通知可以以与用于读取操作的第一命令和地址ca1或用于写入操作的第一命令和地址ca1的格式不同的格式来发送。例如,媒体控制器230可接收用于故障通知的第一命令和地址ca1,并可执行高速缓存分配。

当第二存储空间从易失性存储器装置210释放时,媒体控制器230可检查第二存储空间是否是脏的(dirty)。例如,在已经在第二存储空间上执行写入操作的情况下,第二存储空间可被确定为是脏的。

如果第二存储空间不是“脏的”,则媒体控制器230可丢弃第二存储空间的数据,以释放第二存储空间。如果第二存储空间是“脏的”,则媒体控制器230可将第二存储空间的数据写入在非易失性存储器装置220,以归还第二存储空间。在归还第二存储空间之后,媒体控制器230可丢弃并释放第二存储空间。

在某些实施例中,易失性存储器装置210和非易失性存储器装置220可被存储器控制器111直接访问。例如,在第一命令和地址ca1或第一控制信号ctrl1指示易失性存储器装置210的情况下,媒体控制器230可将第二命令和地址ca2、第二时钟信号ck2或第二控制信号ctrl2发送至易失性存储器装置210。

在第一命令和地址ca1或第一控制信号ctrl1指示非易失性存储器装置220的情况下,媒体控制器230可将第三命令和地址ca3、第三时钟信号ck3或第三控制信号ctrl3发送至非易失性存储器装置220。

在一些实施例中,易失性存储器的数量、非易失性存储器的数量和数据缓冲器的数量不是固定的。例如,易失性存储器或非易失性存储器的数量可与数据缓冲器的数量相等,数据缓冲器的数量可被改变为九。

媒体控制器230可将逻辑地址la与物理地址pa之间的映射信息存储在非易失性存储器装置220的第一元存储区域sa1_m(例如,参见图2)。从存储器控制器111接收的第一命令和地址ca1可基于非易失性存储器装置220的逻辑地址la。

当媒体控制器230根据第一命令和地址ca1来访问非易失性存储器装置220时,媒体控制器230可根据映射信息将逻辑地址la转换为物理地址pa。媒体控制器230可使用转换的物理地址pa来访问非易失性存储器装置220。也就是说,第三命令和地址ca3可基于物理地址pa。

非易失性存储器装置220到易失性存储器装置210的高速缓存分配可基于逻辑地址la或物理地址pa来执行。也就是说,第二命令和地址ca2可基于逻辑地址la或物理地址pa。在媒体控制器230中,逻辑地址la或物理地址pa可用于确定发生高速缓存命中还是高速缓存未命中。

根据本发明构思的一些实施例,当发生页故障时,存储器系统可在单个故障处理期间分配两个或更多个页。因此,可以更快地执行故障处理,并实现具有提高的速度的存储器系统。此外,根据本发明构思的一些实施例,当故障处理被执行时,半导体存储器模块可执行地址的高速缓存分配,这通过故障处理来分配。因此,可以在故障处理之后更快地执行访问,并实现具有提高的速度的存储器系统。

尽管已经具体示出并描述了本发明构思的示例实施例,但是本领域的普通技术人员将理解,在不脱离所附权利要求的精神和范围的情况下,可在其中进行形式和细节上的改变。

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