一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

分层存储器系统的制作方法

2022-04-14 04:32:27 来源:中国专利 TAG:


1.本公开大体上涉及半导体存储器及方法,且更特定来说涉及与分层存储器系统相关的设备、系统及方法。


背景技术:

2.存储器装置通常作为计算机或其它电子系统中的内部半导体集成电路提供。存在许多不同类型的存储器,其包含易失性及非易失性存储器。易失性存储器可能需要电力来维护其数据(例如,主机数据、错误数据等)且包含随机存取存储器(ram)、动态随机存取存储器(dram)、静态随机存取存储器(sram)及同步动态随机存取存储器(sdram)等。非易失性存储器可通过在未通电时留存所存储数据来提供持久数据并且可包含nand快闪存储器、nor快闪存储器及电阻可变存储器(例如相变随机存取存储器(pcram))、电阻式随机存取存储器(rram)及磁阻式随机存取存储器(mram),例如自旋转矩转移随机存取存储器(stt ram)等。
3.存储器装置可耦合到主机(例如,主机计算装置),以存储数据、命令及/或指令供主机在计算机或电子系统操作时使用。举例来说,在计算或其它电子系统的操作期间,可在主机与存储器装置之间传送数据、命令及/或指令。
附图说明
4.图1是根据本公开的数个实施例的呈包含分层存储器组件的设备的形式的功能框图。
5.图2是根据本公开的数个实施例的呈包含分层存储器组件的计算系统的形式的功能框图。
6.图3是根据本公开的数个实施例的呈包含分层存储器组件的计算系统的形式的另一功能框图。
7.图4是根据本公开的数个实施例的表示数据读取操作的流程图。
8.图5是根据本公开的数个实施例的表示数据写入操作的流程图。
9.图6是根据本公开的数个实施例的表示用于分层存储器系统的实例方法的流程图。
10.图7是根据本公开的数个实施例的表示用于分层存储器系统的实例方法的另一流程图。
具体实施方式
11.描述用于分层存储器系统的设备、系统及方法。分层存储器系统可利用持久性存储器来存储通常存储在非持久性存储器中的数据,借此以比仅依赖非持久性存储器的方法更低的成本增加分配到计算系统的存储空间的量。实例方法包含经由输入/输出(i/o)装置接收存取数据的请求,确定数据是存储在非持久性存储器装置还是持久性存储器装置中,
以及响应于确定数据存储在持久性存储器装置中而将存取数据的请求重定向到逻辑电路系统。
12.计算系统在操作期间利用各种类型的存储器资源。举例来说,计算系统可在操作期间利用易失性(例如,随机存取存储器)存储器资源及非易失性(例如,存储)存储器资源的组合。一般来说,易失性存储器资源可以比非易失性存储器资源快得多的速度操作,并且可具有比非易失性存储器资源更长的寿命;然而,易失性存储器资源通常比非易失性存储器资源更昂贵。如本文所使用,易失性存储器资源可以替代方式被称为“非持久性存储器装置”,而非易失性存储器资源可以替代方式被称为“持久性存储器装置”。
13.然而,持久性存储器装置可更广泛地指以持久性方式存取数据的能力。作为实例,在持久性存储器背景内容中,存储器装置可在存储器阵列中存储多个逻辑到物理映射或转译数据及/或查找表,以便跟踪数据在存储器装置中的位置,与存储器是否为非易失性无关。此外,持久性存储器装置可指存储器的非易失性,此外还可指通过包含为连续过程服务命令的能力(例如,通过使用逻辑到物理映射、查找表等)来使用所述非易失性。
14.这些特性可能需在计算系统中进行权衡,以便为计算系统提供足够的资源以根据消费者及计算资源提供者不断增长的需求来作用。举例来说,在多用户计算网络(例如,基于云的计算系统部署、软件定义的数据中心等)中,可提供相对大量的易失性存储器来提供在多用户网络中运行的虚拟机。然而,通过依赖易失性存储器向多用户网络提供存储器资源(在一些方法中是常见的),与向网络提供存储器资源相关联的成本可能会增加,尤其是当网络的用户要求越来越大的计算资源池可用时。
15.此外,在依赖易失性存储器来提供存储器资源以在多用户网络中提供虚拟机的方法中,一旦易失性存储器资源耗尽(例如,一旦将易失性存储器资源分配到多用户网络的用户),在额外易失性存储器资源可用或添加之前,额外用户可能不被添加到多用户网络。这可能导致潜在用户被拒绝,这可能导致收入损失,如果额外存储器资源可用于多用户网络,可能产生所述收入损失。
16.易失性存储器资源(例如动态随机存取存储器(dram))倾向于以确定性方式操作,而非易失性存储器资源(例如存储类存储器(例如,nand快闪存储器装置、固态驱动器、电阻可变存储器装置等))倾向于以非确定性方式操作。举例来说,由于对从存储类存储器装置检索的数据执行错误校正操作、加密操作、raid操作等,从存储类存储器装置请求数据与数据可用之间的时间量可随读取而变化,借此使得从存储类存储器装置的数据检索具有非确定性。相比之下,从dram装置请求数据与数据可用之间的时间量可随读取保持固定,借此使从dram装置的数据检索具有确定性。
17.另外,由于易失性存储器资源的确定性行为与非易失性存储器资源的非确定性行为之间的区别,传送到存储器资源及从存储器资源传送的数据通常经过与所使用的存储器类型相关联的特定接口(例如,总线)。举例来说,传送到dram装置及从dram装置传送的数据通常经由双数据速率(ddr)总线传递,而传送到nand装置及从nand装置传送的数据通常经由外围组件互连快速(pci-e)总线传递。然而,如将了解,可通过其将数据传送到易失性存储器资源及非易失性存储器资源及从易失性存储器资源及非易失性存储器资源传送数据的接口的实例不限于这些特定列举的实例。
18.由于非易失性存储器装置及易失性存储器装置的不同行为,一些方法选择在易失
性或非易失性存储器中存储某些类型的数据。与非易失性存储器装置的非确定性行为相比,这可缓解由于例如易失性存储器装置的确定性行为而可能出现的问题。举例来说,在一些方法中,计算系统将计算系统操作期间定期存取的少量数据存储在易失性存储器装置中,而较大或存取频率较低的数据存储在非易失性存储器装置中。然而,在多用户网络部署中,绝大多数数据可存储在易失性存储器装置中。相比之下,本文中的实施例可允许从部署在多用户网络中的非易失性存储器装置进行数据存储及检索。
19.如本文描述,本公开的一些实施例是针对计算系统,其中来自非易失性(且因此是非确定性)存储器资源的数据经由接口传递,所述接口在其它方法中限于由易失性及确定性存储器资源使用。举例来说,在一些实施例中,数据可经由例如ddr接口的接口传送到非易失性、非确定性存储器资源或从非易失性、非确定性存储器资源传送,例如nand快闪装置、电阻可变存储器装置,例如相变存储器装置及/或电阻式存储器装置(例如,三维交叉点(3d xp)存储器装置)、固态驱动器(ssd),自选择存储器(ssm)装置等,在一些方法中,ddr接口预留用于将数据传送到易失性、确定性存储器资源及从易失性、确定性存储器资源传送数据。因此,与使用易失性、确定性存储器装置向计算系统提供主存储器的方法相比,本文中的实施例可允许将非易失性、非确定性存储器装置用作计算系统的主存储器的至少一部分。
20.在一些实施例中,数据可从非易失性存储器资源在中间传送到高速缓存(例如,小型静态随机存取存储器(sram)高速缓存)或缓冲器,并随后使其可用于请求数据的应用程序。通过将通常以确定性方式提供的数据存储在非确定性存储器资源中,并允许如本文中描述那样存取所述数据,计算系统性能可例如通过以下来改进:与使用易失性存储器资源操作的方法相比,允许以显著降低的成本使更大量存储器资源可用于多用户网络。
21.为促进本公开的实施例,可模糊非易失性存储器资源对在其中部署分层存储器系统的计算系统的各种装置的可见性。举例来说,部署在计算系统或多用户网络中的主机、网络接口卡、虚拟机等可能无法区分数据是由计算系统的易失性存储器资源存储还是由非易失性存储器资源存储。举例来说,可在计算系统中部署硬件电路系统,其可以使得主机、网络接口卡、虚拟机等无法区分数据是由易失性存储器资源还是非易失性存储器资源存储的方式来注册对应于数据的地址。
22.如本文更详细地描述,分层存储器系统可包含硬件电路系统(例如,逻辑电路系统),其可拦截重定向的数据请求,在与所请求数据相关联的逻辑电路系统中注册地址(尽管硬件电路系统未由其自己的存储器资源备份以存储数据),以及使用逻辑电路系统将在所述逻辑电路系统中注册的地址映射到对应于非易失性存储器装置中的数据的物理地址。
23.在本公开的以下详细描述中,参考形成本公开的一部分的附图,并且在附图中通过说明的方式展示可如何实践本公开的一或多个实施例。对这些实施例进行足够详细的描述,以使所属领域的一般技术人员能够实践本公开的实施例,并且应理解,可利用其它实施例,并且在不脱离本公开的范围的情况下可进行过程改变、电气改变及结构改变。
24.如本文所使用,特别是关于图式中的参考数字的指示符(例如“n”、“m”等)指示可包含如此指定的特定特征的数目。还应理解,本文使用的术语是仅出于描述特定实施例的目的,并且不希望为限制性的。如本文所使用,除非上下文另有明确指示,单数形式“一”及“所述”可包含单数及复数个指示物。另外,“数个”、“至少一个”及“一或多个”(例如,数个存
储器存储体)可指一或多个存储器存储体,而“多个”希望指多于一个此类事物。
25.此外,贯穿此申请案以允许意义(即,有可能、能够)并且不以强制意义(即必须)使用词语“能”及“可”。术语“包含”及其派生词意指“包含(但不限于)”。术语“经耦合”及“耦合”意指直接或间接物理连接,或用于存取及移动(传输)命令及/或数据,视上下文而定。术语“数据”及“数据值”在本文中可互换使用,并且可具有相同含义,视上下文而定。
26.本文中的图式遵循编号惯例,其中第一个或前几个数字对应于图式图号,并且其余数字标识图式中的元件或组件。可通过使用类似数字来标识不同图式之间的类似元件或组件。举例来说,104可参考图1中的元件“04”,且类似元件在图2中可参考为204。在本文中,一群组或多个类似元件或组件通常可用单个元件号来指代。举例来说,多个参考元件106-1、106-2、

、106-n(例如,106-1到106-n)可通常称为106。如将了解,在本文的各种实施例中展示的元件可被添加、交换及/或消除,以便于提供本公开的数个额外实施例。另外,在图式中提供的元件的比例及/或相对尺度希望说明本公开的某些实施例,并且不应视为具限制性意义。
27.图1是根据本公开的数个实施例的呈计算系统100的形式的功能框图,计算系统100包含含有分层存储器组件104的设备。如本文所使用,举例来说,“设备”可指(但不限于)各种结构中的任一者或结构组合,例如电路或电路系统、裸片或若干裸片、模块或若干模块、装置或若干装置,或系统或若干系统。在一些实施例中,分层存储器组件104可作为现场可编程门阵列(fpga)、专用集成电路(asic)、数个离散电路组件等提供,并且可在本文中以替代方式称为“逻辑电路系统”。
28.如图1中所说明,分层存储器组件104可包含存储器资源102,其可包含读取缓冲器103、写入缓冲器105及/或输入/输出i/o装置存取组件107。在一些实施例中,存储器资源102可为随机存取存储器资源,例如块ram,在分层存储器组件104是fpga的实施例中,块ram可允许数据存储在分层存储器组件104内。然而,实施例并不限于此,并且存储器资源102可包括各种寄存器、高速缓存、存储器阵列、锁存器及sram、dram、eprom、或者其它合适存储器技术,其可存储数据,例如包含注册地址的位串,所述注册地址对应于在逻辑电路系统104外部存储数据的物理位置。存储器资源102在分层存储器组件104内部,并且通常小于分层存储器组件104外部的存储器,例如可在分层存储器组件104外部的持久性及/或非持久性存储器资源。
29.读取缓冲器103可包含存储器资源102的一部分,其被保留用于存储已由分层存储器组件104接收但尚未由分层存储器组件104处理的数据。在一些实施例中,读取缓冲器103的大小可约为4千字节(kb),尽管实施例不限于此特定大小。读取缓冲器103可缓冲待在地址寄存器106-1到106-n中的一者中注册的数据。
30.写入缓冲器105可包含存储器资源102的一部分,其被保留用于存储等待传输到分层存储器组件104外部的位置的数据。在一些实施例中,写入缓冲器105的大小可约为4千字节(kb),尽管实施例不限于此特定大小。写入缓冲器103可缓冲在地址寄存器106-1到106-n中的一者中注册的数据。
31.i/o存取组件107可包含存储器资源102的一部分,其被保留用于存储数据(在本文中可被称为“i/o装置存取信息”),其对应于对分层存储器组件104外部的组件(例如本文中图2及3中所说明的i/o装置210/310)的存取。i/o存取组件107可存储对应于i/o装置的地址
的数据,其可用于从i/o装置读取及/或向i/o装置写入数据。另外,在一些实施例中,i/o存取组件107可接收、存储及/或传输对应于管理程序(例如,图3中所说明的管理程序312)的状态的数据,如本文结合图3更详细地描述。
32.分层存储器组件104可进一步包含存储器存取多路复用器(mux)109、状态机111及/或分层存储器控制器113(或者,为简单起见,“控制器”)。如图1所展示,分层存储器控制器113可包含多个地址寄存器106-3到106-n及/或中断组件115。存储器存取mux 109可包含电路系统,所述电路系统可包括一或多个逻辑门且可经配置以控制逻辑电路系统104的数据及/或地址总线。举例来说,存储器存取mux 109可向存储器资源102传送消息及从存储器资源102传送消息,以及与分层存储器控制器113及/或状态机111通信,如下面更详细描述。
33.在一些实施例中,mux 109可将所接收的来自主机(例如,主机计算装置、虚拟机等)的传入消息及/或命令重定向到分层存储器组件104。举例来说,mux 109可将对应于来自输入/输出(i/o)装置(例如,本文中图2及3中所说明的i/o装置210/310)的存取请求的传入消息重定向到读取缓冲器103及/或写入缓冲器105的地址寄存器中的一者(例如,地址寄存器106-n,其可为分层存储器控制器113的bar4区,如下文描述)。
34.另外,mux 109可重定向由分层存储器组件104接收的请求(例如,读取请求、写入请求)。在一些实施例中,可由分层存储器组件104从管理程序(例如,在本文图3中所说明的管理程序312)、裸机服务器或通信地耦合到分层存储器组件104的主机计算装置接收请求。此类请求可由mux 109从读取缓冲器103、写入缓冲器105及/或i/o存取组件107重定向到地址寄存器(例如,地址寄存器106-2,其可为分层存储器控制器113的bar2区域,如下文描述)。
35.mux 109可重定向此类请求,作为确定地址寄存器106中将要存取的地址的操作的部分。在一些实施例中,mux 109可重定向此类请求,作为确定地址寄存器中将响应于管理程序中断(例如,由中断组件115产生的对耦合到分层存储器组件104的管理程序断言的中断)的断言而被存取的地址的操作的部分。
36.响应于确定请求对应于数据(例如,与写入到分层存储器组件104外部的位置(例如,写入到持久性存储器装置,例如本文中图2及3中所说明的持久性存储器装置216/316)的地址相关联的数据,mux 109可促进数据的检索、数据到写入缓冲器105的传送及/或数据到分层存储器组件104外部的位置的传送。响应于确定请求对应于从分层存储器组件104外部的位置(例如,从持久性存储器装置)读取的数据,mux 109可促进数据的检索、数据到读取缓冲器103的传送,及/或数据或与所述数据相关联的地址信息到分层存储器组件104内部的位置(例如地址寄存器106)的传送。
37.作为非限制性实例,如果分层存储器组件104从i/o装置接收读取请求,那么mux 109可通过选择从分层存储器组件104发送的适当消息来促进经由管理程序从持久性存储器装置检索数据。举例来说,mux 109可促进使用中断组件115产生中断,致使中断在管理程序上被断言,将从持久性存储器装置接收的数据缓冲到读取缓冲器103中,及/或用读取请求已被满足的指示来响应i/o装置。在分层存储器组件104从i/o装置接收写入请求的非限制性实例中,mux 109可通过选择从分层存储器组件104发送的适当消息来促进经由管理程序向持久性存储器装置传送数据。举例来说,mux 109可促进使用中断组件115产生中断,致使中断在管理程序上被断言,将待传送到持久性存储器装置的数据缓冲到写入缓冲器105,
及/或用写入请求已被满足的指示来响应i/o装置。
38.状态机111可包含一或多个处理装置、电路组件及/或逻辑,其经配置以对输入执行操作并产生输出。在一些实施例中,状态机111可为有限状态机(fsm)或硬件状态机,其可经配置以接收改变的输入并基于所接收输入产生所得输出。举例来说,状态机111可将存取信息(例如,“i/o access info”)传送到存储器存取多路复用器109及从存储器存取多路复用器109传送存取信息,以及将中断配置信息(例如,“interrupt config”)及/或中断请求消息(例如,“interrupt request”)传送到分层存储器控制器113及从分层存储器控制器113传送中断配置信息及/或中断请求消息。在一些实施例中,状态机111可进一步将控制消息(例如,“mux ctrl”)传送到存储器存取多路复用器109及从存储器存取多路复用器109传送控制消息。
39.access info消息可包含对应于从分层存储器组件104外部的i/o装置接收的数据存取请求的信息。在一些实施例中,access info可包含对应于待存储在持久性存储器装置中的数据的逻辑寻址信息,或者对应于待从持久性存储器装置检索的数据的寻址信息。
40.interrupt config消息可由分层存储器控制器113上的状态机111断言以配置在分层存储器组件104外部断言适当中断消息。举例来说,当分层存储器组件104在耦合到分层存储器组件104的管理程序上断言中断作为满足重定向读取或写入请求的部分时,interrupt config消息可由状态机111产生,以基于操作是从持久性存储器装置检索数据的操作还是将数据写入到持久性存储器装置的操作来产生适当中断消息。
41.interrupt request消息可由状态机111产生,并在中断组件115上断言,以致使中断消息在管理程序(或裸机服务器或其它计算装置)上断言。如本文中更详细地描述,中断115可在管理程序上断言,以致使管理程序对数据检索或向持久性存储器装置写入数据进行优先排序,作为分层存储器系统的操作的部分。
42.mux ctrl消息可由状态机111产生并在mux 109上断言以控制mux 109的操作。在一些实施例中,可由状态机111在mux 109上断言mux ctrl消息(或反之亦然)作为上文描述的执行mux 109操作的部分。
43.分层存储器控制器113可包含核心,例如集成电路、芯片、芯片上系统或其组合。在一些实施例中,分层存储器控制器113可为外围组件互连快速(pcie)核心。如本文所使用,“核心”是指接收指令并基于所接收的指令执行任务或动作的逻辑、处理器及/或协处理器的可重用单元。
44.分层存储器控制器113可包含地址寄存器106-1到106-n及/或中断组件115。地址寄存器106-1到106-n可为基址寄存器(bar),其可存储由逻辑电路系统104或计算系统(例如,在本文图2及3中所说明的计算系统201/301)使用的存储器地址。地址寄存器中的至少一者(例如,地址寄存器106-1)可存储存储器地址,其提供从外部位置(例如图3中所说明的管理程序312)对逻辑电路系统104的内部寄存器的存取。
45.不同地址寄存器(例如,地址寄存器106-2)可用于存储对应于中断控制的地址,如本文更详细描述。在一些实施例中,地址寄存器106-2可映射直接存储器存取(dma)读取及dma写入控制及/或状态寄存器。举例来说,地址寄存器106-2可包含对应于用于dma命令链的描述符及/或控制位的地址,其可包含产生可向管理程序断言的一或多个中断消息,作为分层存储器系统的操作的部分,如本文结合图3描述。
46.地址寄存器中的又一者(例如,地址寄存器106-3)可存储对应于到及从管理程序(例如,在本文图3中所说明的管理程序312)的存取的地址。在一些实施例中,可经由与分层存储器组件104相关联的高级可扩展接口(axi)dma来提供到及/或从管理程序的存取。在一些实施例中,地址寄存器可将对应于经由分层存储器组件104的dma(例如,axi dma)传送的数据的地址映射到分层存储器组件104外部的位置。
47.在一些实施例中,至少一个地址寄存器(例如,地址寄存器106-n)可存储对应于i/o装置(例如,图2中所说明的i/o装置210)对逻辑电路系统104的存取的地址。地址寄存器106-n可存储与分层存储器组件104相关联的dma组件绕过的地址。可提供地址寄存器106-n,使得映射到其的地址不被逻辑电路系统104的物理存储器位置“备份”。也就是说,在一些实施例中,分层存储器组件104可配置有地址空间,所述地址空间存储对应于存储在持久性存储器装置(例如,图2中所说明的持久性存储器装置216)中的数据的地址,而不是对应于由分层存储器组件104存储的数据的地址。举例来说,地址寄存器106-n可经配置为虚拟地址空间,其可存储对应于在其中存储数据的物理存储器位置(例如,在存储器装置中)的逻辑地址。
48.在一些实施例中,地址寄存器106-n可包含对应于存储器装置(例如,在本文图2及3中所说明的持久性存储器装置216/316)的大小的地址空间的量。举例来说,如果存储器装置含有一个太字节(terabyte)的存储,那么地址寄存器106-n可经配置以具有可包含一个太字节的地址空间的地址空间。然而,如上文描述,地址寄存器106-n实际上不包含一个太字节的存储,而是经配置以看起来具有一个太字节的存储空间。
49.尽管图1中未明确展示,但分层存储器组件104可耦合到主机计算系统。主机计算系统可包含系统母板及/或背板,并且可包含数个处理资源(例如,一或多个处理器、微处理器或一些其它类型的控制电路系统)。主机及设备100可为例如服务器系统及/或高性能计算(hpc)系统及/或其一部分。在一些实施例中,计算系统可具有冯诺依曼体系结构,然而,本公开的实施例可在非冯诺依曼体系结构中实施,其可不包含通常与冯诺依曼体系结构相关联的一或多个组件(例如,cpu、alu等)。
50.图2是根据本公开的数个实施例的呈包含分层存储器组件204(例如,逻辑电路系统)的计算系统201的形式的功能框图。如图2中展示,计算系统201可包含分层存储器组件204,其可类似于图1中所说明的分层存储器组件104。另外,计算系统201可包含输入/输出(i/o)装置210、持久性存储器装置216、非持久性存储器装置230、中间存储器组件220及存储器管理组件214。逻辑电路系统204、i/o装置210及持久性存储器装置216、非持久性存储器装置230及存储器管理组件214之间的通信可经由接口208来促进。
51.i/o装置210可为经配置以经由物理地址及/或虚拟机物理地址提供直接存储器存取的装置。在一些实施例中,i/o装置210可为网络接口卡(nic)或网络接口控制器、存储装置、图形呈现装置或其它i/o装置。i/o装置210可为物理i/o装置,或者i/o装置210可为虚拟化i/o装置210。举例来说,在一些实施例中,i/o装置210可为经由总线或接口(例如pcie接口或其它合适接口)物理上耦合到计算系统的物理卡。在其中i/o装置210是虚拟化i/o装置210的实施例中,虚拟化i/o装置210可以分布式方式提供i/o功能性。
52.持久性存储器装置216可包含数个存储器单元阵列。举例来说,阵列可为具有nand体系结构的快闪阵列。然而,实施例不限于特定类型的存储器阵列或阵列体系结构。例如,
可将存储器单元分组为包含数个物理页面的数个块。数个块可包含在存储器单元的平面中且阵列可包含数个平面。
53.持久性存储器装置216可包含易失性存储器及/或非易失性存储器。在数个实施例中,持久性存储器装置216可包含多芯片装置。多芯片装置可包含数个不同的存储器类型及/或存储器模块。举例来说,存储器系统可在任何类型的模块上包含非易失性或易失性存储器。在其中持久性存储器装置216包含非易失性存储器的实施例中,持久性存储器装置216可为例如nand或nor快闪存储器装置的快闪存储器装置。
54.然而,实施例不限于此,并且持久性存储器装置216可包含其它非易失性存储器装置,例如非易失性随机存取存储器装置(例如,nvram、reram、feram、mram、pcm),“新兴”存储器装置,例如电阻可变存储器装置(例如,电阻式及/或相变存储器装置,例如3d交叉点(3d xp)存储器装置),包含自选择存储器(ssm)单元阵列等的存储器装置,或其组合。非易失性存储器的电阻式及/或相变阵列可基于体电阻的改变,结合可堆叠交叉网格数据存取阵列来执行位存储。另外,与许多基于快闪的存储器相比,电阻式及/或相变存储器装置可执行就地写入操作,其中可在不预先擦除非易失性存储器单元的情况下对非易失性存储器单元进行编程。与基于快闪的存储器相比,自选择存储器单元可包含具有单一硫属化物材料的存储器单元,所述硫属化物材料用作存储器单元的开关及存储元件两者。
55.持久性存储器装置216可为计算系统201提供存储卷,且因此可用作遍及计算系统201的额外存储器或存储装置、计算系统201的主存储器或其组合。然而,实施例不限于特定类型的存储器装置,并且持久性存储器装置216可包含ram、rom、sram dram、sdram、pcram、rram及快闪存储器等。此外,尽管图2中说明单个持久性存储器装置216,但实施例并不限于此,并且计算系统201可包含一或多个持久性存储器装置216,其中的每一者可具有或可不具有与之相关联的相同体系结构。作为非限制性实例,在一些实施例中,持久性存储器装置216可包括为不同体系结构的两个离散存储器装置,例如nand存储器装置及电阻可变存储器装置。
56.非持久性存储器装置230可包含易失性存储器,例如易失性存储器单元阵列。在数个实施例中,非持久性存储器装置230可包含多芯片装置。多芯片装置可包含数个不同存储器类型及/或存储器模块。在一些实施例中,非持久性存储器装置230可用作计算系统201的主存储器。举例来说,非持久性存储器装置230可为用于向计算系统230提供主存储器的动态随机存取(dram)存储器装置。然而,实施例不限于包括dram存储器装置的非持久性存储器装置230,并且在一些实施例中,非持久性存储器装置230可包含其它非持久性存储器装置,例如ram、sram dram、sdram、pcram及/或rram等。
57.作为计算系统201操作的一部分,非持久性存储器装置230可存储例如可由主机计算装置请求的数据。举例来说,当计算系统201是多用户网络的部分时,非持久性存储器装置230可存储在计算系统201的操作期间可在主机计算装置(例如,部署在多用户网络中的虚拟机)之间传送的数据。
58.在一些方法中,非持久性存储器(例如非持久性存储器装置230)可存储由主机(例如,部署在多用户网络中的虚拟机)存取的所有用户数据。举例来说,由于非持久性存储器的速度,一些方法依赖于非持久性存储器为部署在多用户网络中的虚拟机提供存储器资源。然而,在此类方法中,由于非持久性存储器通常比持久性存储器(例如,持久性存储器装
置216)更昂贵,成本可能成为问题。
59.相比之下,如下面更详细地描述,本文的实施例可允许将存储在非持久性存储器装置230中的至少一些数据存储在持久性存储器装置216中。这可允许以比依赖非持久性存储器用于用户数据存储的方法更低的成本向计算系统201(例如多用户网络)提供额外的存储器资源。
60.计算系统201可包含存储器管理组件214,其可通信地耦合到非持久性存储器装置230及/或接口208。在一些实施例中,存储器管理组件214可为输入/输出存储器管理单位(io mmu),其可通信地将例如接口208的直接存储器存取总线耦合到非持久性存储器装置230。然而,实施例不限于此,并且存储器管理组件214可为其它类型的存储器管理硬件,其促进接口208与非持久性存储器装置230之间的通信。
61.存储器管理组件214可将装置可见的虚拟地址映射到物理地址。举例来说,存储器管理组件214可将与i/o装置210相关联的虚拟地址映射到非持久性存储器装置230及/或持久性存储器装置216中的物理地址。在一些实施例中,映射与i/o装置210相关联的虚拟条目可通过本文图1中所说明的读取缓冲器、写入缓冲器及/或i/o存取缓冲器来促进。
62.在一些实施例中,存储器管理组件214可读取与i/o装置210相关联的虚拟地址及/或将虚拟地址映射到非持久性存储器装置230中的物理地址或分层存储器组件204中的地址。在其中存储器管理组件214将虚拟i/o装置210地址映射到分层存储器组件204中的地址的实施例中,存储器管理组件214可将从i/o装置210接收的读取请求(或写入请求)重定向到分层存储器组件204,其可将与i/o装置210读取或写入请求相关联的虚拟地址信息存储在分层存储器组件204的地址寄存器(例如,地址寄存器206-n)中。在一些实施例中,地址寄存器206-n可为分层存储器组件204的特定基址寄存器,例如bar4地址寄存器。
63.经重定向读取(或写入)请求可经由接口208从存储器管理组件214传送到分层存储器组件204。在一些实施例中,接口208可为pcie接口,且因此可根据pcie协议在存储器管理组件214与分层存储器组件204之间传递信息。然而,实施例不限于此,并且在一些实施例中,接口208可为根据另一合适协议起作用的接口或总线。
64.在将虚拟nic地址存储在分层存储器组件204中之后,可将对应于虚拟nic地址的数据写入到持久性存储器装置216。举例来说,对应于存储在分层存储器组件204中的虚拟nic地址的数据可存储在持久性存储器装置216的物理地址位置中。在一些实施例中,如本文结合图3到5描述,可由管理程序促进将数据传送到持久性存储器装置216及/或从持久性存储器装置216传送数据。
65.举例来说,当主机计算装置(例如部署在计算系统201中的虚拟机)请求数据时,所述请求可由存储器管理组件214从i/o装置210重定向到分层存储器组件204。由于对应于数据在持久性存储器装置216中的物理位置的虚拟nic地址存储在分层存储器组件204的地址寄存器206-n中,因此分层存储器组件204可结合管理程序来促进从持久性存储器装置216检索数据,如本文中结合图3到5更详细地描述。
66.在一些实施例中,当存储在持久性存储器装置216中的数据被从持久性存储器装置216传送出去时(例如,当存储在持久性存储器装置216中的数据被主机计算装置请求时),数据可在被提供到主机计算装置之前被传送到中间存储器组件220及/或非持久性存储器装置230。举例来说,由于传送到主机计算装置的数据可以确定性方式(例如,经由ddr
接口)传送,因此在满足数据请求之前,数据可临时传送到使用ddr总线操作的存储器,例如中间存储器组件220及/或非持久性存储器装置230。
67.图3是根据本公开的数个实施例的呈包含分层存储器组件的计算系统的形式的功能框图。如图3展示,计算系统301可包含分层存储器组件304,其可类似于图1及2中所说明的分层存储器组件104/204。另外,计算系统301可包含i/o装置310、持久性存储器装置316、非持久性存储器装置330、中间存储器组件320、存储器管理组件314及管理程序312。
68.在一些实施例中,计算系统301可为多用户网络,例如软件定义的数据中心、云计算环境等。在此类实施例中,计算系统可经配置以在其上运行一或多个虚拟机317。举例来说,在一些实施例中,一或多个虚拟机317可部署在管理程序312上,并且可由多用户网络的用户存取。
69.i/o装置310、持久性存储器装置316、非持久性存储器装置330、中间存储器组件320及存储器管理组件314可类似于图2中所说明的i/o装置210、持久性存储器装置216、非持久性存储器装置230、中间存储器组件220及存储器管理组件214。逻辑电路系统304、i/o装置310及持久性存储器装置316、非持久性存储器装置330、管理程序312及存储器管理组件314之间的通信可经由接口308来促进,接口308可类似于图2中所说明的接口208。
70.如上文结合图2描述,存储器管理组件314可致使与i/o装置310相关联的读取请求或写入请求被重定向到分层存储器组件304。分层存储器组件304可产生及/或存储对应于所请求数据的逻辑地址。如上文描述,分层存储器组件304可将对应于所请求数据的逻辑地址存储在基址寄存器中,例如分层存储器组件304的地址寄存器306-n。
71.如图3中展示,管理程序312可经由接口308与分层存储器组件304及/或i/o装置310通信。管理程序312可经由分层存储器组件304的nic存取组件(例如,图1中所说明的nic存取组件107)向分层存储器组件304传输数据及/或从分层存储器组件304传输数据。另外,管理程序312可与持久性存储器装置316、非持久性存储器装置330、中间存储器组件320及存储器管理组件314通信。管理程序可经配置以执行专用指令,以执行本文描述的操作及/或任务。
72.举例来说,管理程序312可执行指令来监测数据流量及数据流量模式,以确定数据是否应存储在非持久性存储器装置330中,或者数据是否应传送到持久性存储器装置316。也就是说,在一些实施例中,管理程序312可执行指令以随时间学习用户数据请求模式,并基于所述模式选择性地将数据的部分存储在非持久性存储器装置330或持久性存储器装置316中。
73.举例来说,数据可基于数据的类型存储在非持久性存储器装置330或持久性存储器装置316中。在一些实施例中,类型可指文件类型,例如照片、文档、音频文件、应用程序文件等。可基于特定用户数据请求模式来确定存储此类数据的位置。举例来说,在给定时刻,第一用户存取文档的可能性可比存取照片的可能性更大,而第二用户可表现出相反行为。
74.在一些实施例中,例如,更频繁地存取的数据可存储在非持久性存储器装置330中,而不太频繁地存取的数据可存储在持久性存储器装置316中。换句话说,在一些实施例中,当过去(例如,历史)请求频率超过频率阈值时,数据可存储在非持久性存储器装置330中,并且当过去请求频率超过非频率阈值时,数据可存储在持久性存储器装置316中。在一些实施例中,频率阈值及非频率阈值可为相同阈值(例如,相同数字阈值)。在此类实施例
中,低于所述阈值的频率超过非频率阈值,且高于所述阈值的频率超过频率阈值。例如,可基于特定的时间段来确定此类阈值,所述时间段可根据数据流量及/或数据模式来调整。
75.由于比起较久前使用或较久前查看的数据,用户可能更频繁地存取最近使用或查看的数据,管理程序可执行专门指令,以致使较久前使用或查看的数据存储在持久性存储器装置316中,及/或致使更近存取或查看的数据存储在非持久性存储器装置330中。在非限制性实例中,比起较久前(例如,一个月前、一年前等)拍摄的照片,用户可能更频繁地查看社交媒体上最近(例如,一周内等)拍摄的照片。基于此信息,管理程序312可执行专门指令,以致使较久前查看或拍摄的照片存储在持久性存储器装置316中,借此减少存储在非持久性存储器装置330中的数据量。换句话说,在一些实施例中,当对数据的过去请求(例如,最近的请求)超过停用阈值(例如,第一历史时间例子)时,数据可存储在持久性存储器装置316中,并且当对所述数据的过去请求超过新近性阈值(例如,第二历史时间例子)时,数据可存储在非持久性存储器装置330中。在一些实施例中,停用阈值及新近性阈值可为相同的阈值(例如,相同历史时间例子)。在此类实施例中,在所述阈值时间例子之前做出的过去请求超过停用阈值,并且在所述阈值时间例子之后做出的过去请求超过新近性阈值。例如,可基于特定时间段来确定此类阈值,所述时间段可根据数据流量及/或数据模式来调整。
76.执行指令以随时间学习用户数据请求模式,并基于所述模式选择性地将数据的部分存储在非持久性存储器装置330或持久性存储器装置316中可减少提供计算系统301所需的非持久性存储器的总量,借此降低成本并允许更多用户存取非持久性存储器装置330。
77.在操作中,计算系统301可经配置以拦截来自i/o装置310的数据请求,并将所述请求重定向到分层存储器组件304。在一些实施例中,管理程序312可控制对应于数据请求的数据是存储在非持久性存储器装置330中还是存储在持久性存储器装置316中(或从其检索)。举例来说,管理程序312可执行指令,以选择性地控制数据是否存储在持久性存储器装置316还是存储在非持久性存储器装置330中(或从其检索)。
78.作为控制数据是否存储在持久性存储器装置316及/或非持久性存储器装置330中(或从其检索)的部分,管理程序312可致使存储器管理组件314映射与数据相关联的逻辑地址以将其重定向到分层存储器组件304并存储在分层存储器组件304的地址寄存器306中。举例来说,管理程序312可执行指令,以控制涉及所述数据的读取及写入请求以经由存储器管理组件314将其选择性地重定向到分层存储器组件304。
79.存储器管理组件314可将连续虚拟地址映射到底层分段物理地址。因此,在一些实施例中,存储器管理组件314可允许虚拟地址映射到物理地址,而不需要物理地址是连续的。此外,在一些实施例中,存储器管理组件314可允许不支持足够长的存储器地址的装置来寻址其在存储器管理组件314中被寻址的对应物理存储器空间。
80.由于与持久性存储器装置316相关联的数据传送的非确定性性质,在一些实施例中,分层存储器组件304可经配置以通知计算系统301,在向持久性存储器装置316传送数据或从持久性存储器装置316传送数据时可能发生延迟。作为初始化延迟的部分,当数据请求被重定向到分层存储器组件304时,分层存储器组件304可为计算系统301提供页面故障处置。在一些实施例中,分层存储器组件304可产生并断言对管理程序312的中断,以发起将数据传送到持久性存储器装置316或从持久性存储器装置316传送出数据的操作。举例来说,由于与持久性存储器装置316相关联的数据检索及存储的非确定性性质,当请求传送存储
在持久性存储器装置316中的数据时,分层存储器组件304可产生管理程序中断315。
81.响应于由分层存储器组件304产生的页面故障中断,管理程序312可从分层存储器组件304检索对应于数据的信息。举例来说,管理程序312可从分层存储器组件接收nic存取数据,所述数据可包含对应于存储在分层存储器组件304的地址寄存器306中的数据的逻辑到物理地址映射。
82.一旦数据已存储在持久性存储器装置316中,非持久性存储器装置330的一部分(例如,页面、块等)可标记为不可由分层存储器组件304存取,使得计算系统301不尝试从非持久性存储器装置330存取数据。这可允许用页面故障拦截数据请求,所述页面故障可在由i/o装置310请求已存储在持久性存储器装置316中的数据时由分层存储器组件304产生并向管理程序312断言。
83.与响应于应用程序请求存取未被存储器管理单元(例如,存储器管理组件314)映射的存储器的页面而引发页面故障异常的方法相比,在本公开的实施例中,可响应于在存储器管理组件314中将数据映射到分层存储器组件304而由分层存储器组件304产生上文描述的页面故障,而分层存储器组件304又将数据映射到持久性存储器装置316。
84.在一些实施例中,中间存储器组件320可用于响应于由i/o装置310发起的数据请求而缓冲存储在持久性存储器装置316中的数据。与可经由pcie接口传递数据的持久性存储器装置316相比,中间存储器组件320可采用ddr接口来传递数据。因此,在一些实施例中,中间存储器组件320可以确定性方式操作。举例来说,在一些实施例中,存储在持久性存储器装置316中的所请求数据可临时从持久性存储器装置316传送到中间存储器组件320,并且随后经由将中间存储器组件320耦合到i/o装置310的ddr接口传送到主机计算装置。
85.在一些实施例中,中间存储器组件可包括部署在计算系统301中的离散存储器组件(例如,sram高速缓存)。然而,实施例不限于此,并且在一些实施例中,中间存储器组件320可为非持久性存储器装置330的一部分,其可被分配用于响应于数据请求而从持久性存储器装置316传送数据。
86.在非限制性实例中,存储器管理电路系统(例如,存储器管理组件314)可耦合到逻辑电路系统(例如,分层存储器组件304)。存储器管理电路系统可经配置以接收将具有与之相关联的对应虚拟网络接口控制器地址的数据写入到非持久性存储器装置(例如,非持久性存储器装置330)的请求。存储器管理电路系统可进一步经配置以至少部分基于数据的特性而将写入数据的请求重定向到逻辑电路系统。数据的特性可包含请求或存取数据的频率、自上次存取或请求数据以来已经过的时间量、数据类型(例如,数据是否对应于特定文件类型,例如照片、文档、音频文件、应用程序文件等)等。
87.在一些实施例中,存储器管理电路系统可经配置以基于由管理程序312产生的命令及/或执行的指令而重定向写入逻辑电路系统的请求。举例来说,如上文描述,管理程序312可执行指令,以控制对应于数据请求(例如,由i/o装置310产生的数据请求)的数据是否将存储在持久性存储器装置316或非持久性存储器装置330中。
88.在一些实施例中,管理程序312可通过将地址(例如,逻辑地址)写入到存储器管理电路系统来促进请求的重定向。举例来说,如果管理程序312确定对应于特定数据请求的数据将被存储在持久性存储器装置316中(或从其检索),管理程序312可致使对应于请求的重定向的地址由存储器管理电路系统存储,使得数据请求被重定向到逻辑电路系统。
89.在接收重定向请求后,逻辑电路系统可经配置以响应于接收重定向请求而产生对应于数据的地址及/或将地址存储在逻辑电路系统内的地址寄存器306中。在一些实施例中,其中逻辑电路系统可经配置以基于接收重定向请求而使指示(其指示数据对非持久性存储器装置330是不可存取的)与数据相关联。
90.逻辑电路系统可经配置以至少部分基于接收重定向请求而将数据写入到持久性存储器装置(例如,持久性存储器装置316)。在一些实施例中,逻辑电路系统可经配置以产生中断信号,并将中断信号断言给耦合到逻辑电路系统的管理程序(例如,管理程序312),作为致使将数据写入到持久性存储器装置316的部分。如上文描述,持久性存储器装置316可包括3d xp存储器装置、自选择存储器单元阵列、nand存储器装置或其它合适持久性存储器或其组合。
91.在一些实施例中,逻辑电路系统可经配置以从存储器管理电路系统接收重定向请求,以从持久性存储器装置316检索数据,将从持久性存储器装置316检索数据的请求传送到耦合到逻辑电路系统的管理程序312,及/或向管理程序312断言中断信号,作为从持久性存储器装置316检索数据的请求的部分。管理程序312可经配置以从持久性存储器装置316检索数据及/或将数据传送到非持久性存储器装置330。一旦已经从持久性存储器装置316检索数据,管理程序312可经配置以致使与数据相关联的更新地址被传送到存储器管理电路系统314。
92.在另一非限制性实例中,计算系统301可为多用户网络,例如软件定义的数据中心、云计算环境等。多用户网络可包含计算资源池,所述计算资源池包含非持久性存储器装置330及持久性存储器装置316。多用户网络可进一步包含接口308,接口308耦合到包括多个地址寄存器306的逻辑电路系统(例如,分层存储器组件304)。在一些实施例中,多用户网络可进一步包含耦合到接口308的管理程序312。
93.管理程序312可经配置以接收存取对应于非持久性存储器组件330的数据的请求,确定数据存储在持久性存储器装置316中,并致使存取数据的请求重定向到逻辑电路系统。存取数据的请求可为从持久性存储器装置或非持久性存储器装置读取数据的请求,或者将数据写入到持久性存储器装置或非持久性存储器装置的请求。
94.在一些实施例中,逻辑电路系统可经配置以响应于确定数据存储在持久性存储器装置316中而向管理程序312传送从持久性存储器装置316存取数据的请求。逻辑电路系统可经配置以向管理程序断言中断,作为向管理程序312请求存取对应于持久性存储器装置316的数据的部分。
95.管理程序312可经配置以致使基于从逻辑电路系统接收的请求而使用持久性存储器装置316存取数据。如上文描述,持久性存储器装置316可包括电阻可变存储器装置,例如电阻式存储器、相变存储器、自选择存储器单元阵列或其组合。在一些实施例中,管理程序312可经配置以致使数据被传送到非持久性存储器装置330,作为致使使用持久性存储器装置316存取数据的部分。
96.管理程序312可进一步经配置以响应于致使使用持久性存储器装置316存取数据而更新存储在与多用户网络相关联的存储器管理组件314中的信息。举例来说,管理程序312可经配置以致使对应于数据的经更新虚拟地址存储在存储器管理组件314中。
97.在一些实施例中,多用户网络可包含耦合到逻辑电路系统的i/o装置310。在此类
实施例中,逻辑电路系统可经配置以响应于管理程序312致使使用持久性存储器装置316存取数据而向i/o装置310发送通知。
98.图4是根据本公开的数个实施例的表示数据读取操作的框图440。在框441处,例如图2及3中所说明的i/o装置210/310的i/o装置可使用对应于数据请求的地址来发起读取操作。在一些实施例中,地址可为物理地址,例如虚拟机物理地址。数据请求可包含读取与特定地址相关联的数据的请求,所述特定地址对应于在其中存储数据的逻辑地址。物理地址可对应于持久性存储器装置(例如,在本文图2及3中所说明的持久性存储器装置216/316)中的位置或非持久性存储器装置(例如,在本文图2及3中所说明的非持久性存储器装置230/330)中的位置。
99.如果数据存储在非持久性存储器装置中,那么可检索数据,并且可满足数据请求。然而,如果数据存储在持久性存储器装置中(例如,如果数据的物理地址对应于持久性存储器装置中的位置),那么在框442处,存储器管理组件(例如,在本文中图2及3中所说明的存储器管理组件214/314)可将数据请求重定向到分层存储器组件(例如,在本文图1到3中所说明的分层存储器组件104/204/304)。如上文描述,可基于信息(例如,所执行的命令或指令)由管理程序(例如,在本文图3中所说明的管理程序312)重定向数据请求。
100.在框443处,分层存储器组件可接收对应于数据请求的地址寄存器存取信息。在一些实施例中,地址寄存器存取信息可对应于地址寄存器(例如,在本文图1到3中所说明的地址寄存器106/206/306)中的位置。举例来说,地址寄存器存取信息可对应于分层存储器组件中的地址寄存器中的位置,其中逻辑地址对应于在其中存储数据的持久性存储器装置中的物理地址。
101.在框444处,分层存储器组件可产生管理程序中断。举例来说,如上文结合图3描述,一旦分层存储器组件从存储器管理组件接收重定向的数据请求,分层存储器组件可产生中断并在管理程序(例如,在本文图3中所说明的管理程序312)上断言中断。在一些实施例中,中断可为在管理程序上断言以通知管理程序事件需要立即注意的信号。举例来说,中断信号可在管理程序上断言以致使管理程序中断当前正在执行的指令在框且代替地445处执行与收集地址寄存器存取信息相关联的指令。
102.在框445处,管理程序可从分层存储器组件收集地址寄存器存取信息。举例来说,管理程序可从分层存储器组件接收对应于所请求数据的物理地址的逻辑地址信息。逻辑地址信息可存储在分层存储器组件的地址寄存器(例如,基址寄存器)(例如在本文图1到3中所说明的地址寄存器106/206/306)中的分层存储器组件中。
103.在框446处,管理程序可确定所请求数据的物理位置。举例来说,基于地址寄存器存取信息及因此与从分层存储器组件收集的数据相关联的逻辑地址,管理程序可确定存储在持久性存储器装置中的数据的物理位置。
104.在框447处,管理程序可读取对应于地址寄存器存取信息的数据。也就是说,在一些实施例中,管理程序可致使从持久性存储器装置读取(例如,检索)所请求数据。
105.在框448处,管理程序可致使数据传送到非持久性存储器装置。在一些实施例中,非持久性存储器装置可为在本文图2及3中所说明的非持久性存储器装置230/330,然而,实施例并不限于此,且在一些实施例中,管理程序可致使数据传送到中间存储器组件,例如在本文图2及3中所说明的中间存储器组件220/320。
106.在框449处,管理程序可将对应于所请求数据的i/o装置数据写入到分层存储器组件。如上文描述,i/o装置数据可存储在分层存储器组件的地址寄存器中。
107.在框450处,分层存储器组件可完成数据读取事务。举例来说,分层存储器组件可向i/o装置传送命令,以通知i/o装置数据读取请求已满足,并且数据将经由确定性接口传送以满足数据读取请求。
108.在框451处,管理程序可更新存储器管理组件以将i/o装置地址定向到非持久性存储器装置。举例来说,由于在框450处数据从持久性存储器装置传送到非持久性存储器装置(例如,非持久性存储器装置及/或中间存储器组件),管理程序可更新存储器管理组件,使得对应于所请求的数据的地址映射到非持久性存储器装置。在一些实施例中,地址可为物理地址,例如虚拟机物理地址。
109.在框452处,管理程序可记录使用哪个存储器来满足数据请求。举例来说,管理程序可记录在从i/o装置接收数据请求时,数据已存储在持久性存储器装置中。在一些实施例中,管理程序可随时间使用信息来选择性地将数据写入定向到持久性存储器装置或非持久性存储器装置。
110.图5是根据本公开的数个实施例的表示数据写入操作的框图560。在框561处,例如图2及3中所说明的i/o装置210/310的i/o装置可使用对应于数据写入请求的地址来发起写入操作。地址可为物理地址,例如虚拟机物理地址。数据写入请求可包含写入与特定虚拟地址相关联的数据的请求,所述特定地址对应于待在其中存储数据的逻辑地址。物理地址可对应于持久性存储器装置(例如,在本文图2及3中所说明的持久性存储器装置216/316)中的位置或非持久性存储器装置(例如,在本文图2及3中所说明的非持久性存储器装置230/330中的位置。
111.如果数据将被存储在非持久性存储器装置中,那么可将数据写入非持久性存储器装置,并且可满足数据写入请求。然而,如果数据将被存储在持久性存储器装置中,那么在框442处,存储器管理组件(例如,在本文中图2及3中所说明的存储器管理组件214/314)可将数据写入请求重定向到分层存储器组件(例如,在本文图1到3中所说明的分层存储器组件104/204/304)。如上文描述,可基于信息(例如,所执行的命令或指令)由管理程序(例如,在本文图3中所说明的管理程序312)重定向数据请求。
112.在框563处,分层存储器组件可接收对应于数据写入请求的地址寄存器存取信息。在一些实施例中,地址寄存器存取信息可对应于地址寄存器(例如,在本文图1到3中所说明的地址寄存器106/206/306)中的位置。举例来说,地址寄存器存取信息可对应于分层存储器组件中的地址寄存器中的位置,其中逻辑地址对应于在其中存储数据的持久性存储器装置中的物理地址。
113.在框564处,分层存储器组件可产生管理程序中断。举例来说,如上文结合图3描述,一旦分层存储器组件从存储器管理组件接收重定向的数据写入请求,分层存储器组件可产生中断并在管理程序(例如,在本文图3中所说明的管理程序312)上断言中断。
114.在框565处,管理程序可从分层存储器组件收集地址寄存器存取信息。举例来说,管理程序可从分层存储器组件接收对应于将在其中存储数据的物理地址的逻辑地址信息。
115.在框566处,管理程序可任选地将数据写入(或致使数据被写入)到持久性存储器装置。举例来说,基于重定向的数据写入请求,管理程序可确定数据将被写入持久性存储器
装置并致使数据被写入到持久性存储器装置。在其中任选地执行框566的实施例中,可将数据中间地写入到非持久性存储器装置。另外,作为将数据写入到非持久性存储器装置的部分,可将对应于数据的i/o装置数据任选地写入到非持久性存储器装置。
116.任选地,在框567处,管理程序可将数据写入(或致使数据被写入)到非持久性存储器装置。在一些实施例中,管理程序可将数据写入到非持久性存储器装置,使得在接收对应数据的读取请求的情况下,可经由确定性接口或总线检索数据。
117.在框568处,管理程序可更新存储器管理组件以将i/o装置虚拟地址定向到非持久性存储器装置。举例来说,如果在框567处将数据写入到非持久性存储器装置,那么在框568处管理程序可更新由存储器管理组件存储的虚拟地址,使得与数据相关联并由存储器管理组件存储的虚拟地址映射到在其中存储数据的非持久性存储器装置中的物理地址。
118.图6是根据本公开的数个实施例的表示用于分层存储器系统的实例方法670的流程图。在框672处,方法670可包含由管理程序接收中断消息,所述中断消息由分层存储器组件响应于接收由输入/输出(i/o)装置发起的读取请求而产生。管理程序可类似于在本文图3中所说明的管理程序312,而分层存储器组件及i/o装置可分别类似于在本文图1到3中所说明的分层存储器组件104/204/304,以及在本文图2及3中所说明的i/o装置210/310。
119.在框674处,方法670可包含通过管理程序从分层存储器组件收集地址寄存器存取信息。地址寄存器存取信息可对应于地址寄存器(例如,在本文图1到3中所说明的地址寄存器106/206/306)中的位置。
120.在框676处,方法670可包含由管理程序确定与读取请求相关联的数据的物理位置。举例来说,基于地址寄存器存取信息及因此与从分层存储器组件收集的数据相关联的逻辑地址,管理程序可确定存储在持久性存储器装置中的数据的物理位置。
121.方法670可包含由管理程序读取与读取请求相关联且对应于地址寄存器存取信息的数据。在一些实施例中,方法670可包含响应于数据存储在非持久性存储器装置中而执行读取请求。在一些实施例中,方法670可包含响应于数据存储在持久性存储器装置中而将数据存储在非持久性存储器装置中。在一些实施例中,方法670可包含经由管理程序将数据传送到非持久性存储器装置。
122.在一些实施例中,方法670可包含经由管理程序将与i/o装置相关联的数据写入到分层存储器组件。在一些实施例中,方法670可包含更新存储器管理组件以响应于数据存储在持久性存储器装置中而将对地址的读取请求重定向到非持久性存储器装置。在一些实施例中,方法670可包含记录管理程序用于响应读取请求的存储器装置类型。举例来说,存储器装置类型可包含第一类型(例如,持久性存储器装置)或第二类型(例如,非持久性存储器装置)。
123.图7是根据本公开的数个实施例的表示用于分层存储器系统的实例方法780的另一流程图。在框782,方法780可包含由管理程序接收中断消息,所述中断消息由分层存储器组件响应于接收由输入/输出(i/o)装置发起的将数据写入到虚拟地址的请求而产生。如本文描述,举例来说,地址寄存器(例如,地址寄存器106-n)可经配置为虚拟地址空间,其可存储对应于在其中存储数据的物理存储器位置(例如,在存储器装置中)的逻辑地址。管理程序可类似于在本文图3中所说明的管理程序312,而分层存储器组件及i/o装置可分别类似于在本文图1到3中所说明的分层存储器组件104/204/304以及在本文图2及3中所说明的i/
o装置210/310。
124.在框784处,方法780可包含由管理程序从分层存储器组件收集i/o装置存取信息。i/o装置存取信息可包含在i/o存取组件(例如,i/o存取组件107)中,如在本文图1中所说明。i/o存取组件可存储对应于对分层存储器组件104外部的组件(例如i/o装置(例如,在本文图2及3中所说明的i/o装置210/310))进行存取的数据。i/o存取组件可存储对应于i/o装置的地址的数据,其可用于从i/o装置读取及/或向i/o装置写入数据。i/o装置存取信息可包含物理i/o装置存取信息及/或虚拟i/o装置存取信息。
125.在框786处,方法780可包含由管理程序将数据写入到部分基于所收集的i/o装置存取信息而选择的位置。例如,所述位置可对应于物理地址,例如虚拟机物理地址。所述位置可对应于持久性存储器装置(例如,在本文图2及3中所说明的持久性存储器装置216/316)中的位置或非持久性存储器装置(例如,在本文图2及3中所说明的非持久性存储器装置230/330中的位置。
126.在一些实施例中,方法780可包含部分基于与数据相关联的过去请求频率超过频率阈值而由管理程序将所述数据写入到非持久性存储器装置。在一些实施例中,方法780可包含部分基于与数据相关联的过去请求频率超过非频率阈值而由管理程序将所述数据写入到持久性存储器装置。在一些实施例中,方法780可包含部分基于与数据相关联的过去请求超过新近性阈值而由管理程序将所述数据写入到持久性存储器装置。在一些实施例中,方法780可包含部分基于与数据相关联的过去请求不超过新近性阈值而由管理程序将所述数据写入到非持久性存储器装置
127.尽管本文已经说明及描述特定的实施例,但是所属领域的一般技术人员将了解,经计算以实现相同结果的布置可代替所展示的特定实施例。本公开希望涵盖本公开的一或多个实施例的调适或变化。应了解,上述描述已以说明性方式而非限制性方式进行。所属领域的技术人员在检阅上文描述之后将明白上文实施例的组合及未在本文中明确描述的其它实施例。本公开的一或多个实施例的范围包含使用上述结构及过程的其它应用。因此,应参考所附权利要求书以及此权利要求书所享有的等效物的全范围确定本公开的一或多个实施例的范围。
128.在前述具体实施方式中,出于简化本公开的目的,将一些特征组合在单个实施例中。本公开的此方法不应解释为反映本公开的所揭示实施例必须使用多于在每一权利要求中明确叙述的特征的意图。而是,如所附权利要求书反映,发明主题存在于少于单个所揭示实施例的全部特征。因此,所附权利要求书特此并入到具体实施方式中,其中每一权利要求独立地作为单独实施例。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献