CN114258534B - 阶层式存储器系统 - Google Patents

阶层式存储器系统 Download PDF

Info

Publication number
CN114258534B
CN114258534B CN202080059065.7A CN202080059065A CN114258534B CN 114258534 B CN114258534 B CN 114258534B CN 202080059065 A CN202080059065 A CN 202080059065A CN 114258534 B CN114258534 B CN 114258534B
Authority
CN
China
Prior art keywords
memory device
data
persistent memory
logic circuitry
request
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN202080059065.7A
Other languages
English (en)
Other versions
CN114258534A (zh
Inventor
A·科尔日
V·S·拉梅什
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Micron Technology Inc
Original Assignee
Micron Technology Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Micron Technology Inc filed Critical Micron Technology Inc
Publication of CN114258534A publication Critical patent/CN114258534A/zh
Application granted granted Critical
Publication of CN114258534B publication Critical patent/CN114258534B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/10Address translation
    • G06F12/109Address translation for multiple virtual address spaces, e.g. segmentation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/10Address translation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/06Addressing a physical block of locations, e.g. base addressing, module addressing, memory dedication
    • G06F12/0638Combination of memories, e.g. ROM and RAM such as to permit replacement or supplementing of words in one module by words in another module
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/20Handling requests for interconnection or transfer for access to input/output bus
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45579I/O management, e.g. providing access to device drivers or storage
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/65Details of virtual memory and virtual address translation
    • G06F2212/657Virtual address space management

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Memory System (AREA)
  • Debugging And Monitoring (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Abstract

描述对应于阶层式存储器系统的设备、系统和方法。逻辑电路系统可驻留在持久存储器装置上,借此缩短与在所述逻辑电路系统和所述持久存储器装置之间传递数据相关联的时延。持久存储器装置上的逻辑电路系统可包含被配置成存储对应于所存储数据的逻辑地址的地址寄存器。所述逻辑电路系统可接收检索存储在所述持久存储器装置中的所述数据的部分的重定向请求(例如,在重定向之前,定向到非持久存储器装置),响应于接收到检索所述所存储数据的所述部分的所述请求基于存储在所述地址寄存器中的所述逻辑地址确定对应于所述数据的所述部分的物理地址,且致使从所述持久存储器装置检索所述数据。

Description

阶层式存储器系统
技术领域
本公开大体上涉及半导体存储器和方法,且更具体地说涉及与阶层式存储器系统有关的设备、系统和方法。
背景技术
存储器系统通常被提供为计算机或其它电子系统中的内部半导体集成电路。存在许多不同类型的存储器,包含易失性和非易失性存储器。易失性存储器可需要功率以维持其数据(例如主机数据、错误数据等)且包含随机存取存储器(RAM)、动态随机存取存储器(DRAM)、静态随机存取存储器(SRAM)、同步动态随机存取存储器(SDRAM)等等。非易失性存储器可以通过在未供电时保留所存储数据来提供持久数据,且可以包含NAND快闪存储器、NOR快闪存储器和电阻可变存储器,例如相变随机存取存储器(PCRAM)、电阻式随机存取存储器(RRAM)和磁阻式随机存取存储器(MRAM),比如自旋力矩转移随机存取存储器(STTRAM)等等。
存储器装置可耦合到主机(例如主机计算装置)以存储数据、命令和/或指令以在操作计算机或电子系统时供主机使用。举例来说,数据、命令和/或指令可以在计算或其它电子系统的操作期间在主机与存储器装置之间传递。
附图说明
图1是根据本公开的若干实施例的呈包含逻辑电路系统的设备的形式的功能框图。
图2是根据本公开的若干实施例的呈包含驻留在持久存储器装置上的逻辑电路系统的计算系统的形式的功能框图。
图3是根据本公开的若干实施例的呈包含驻留在持久存储器装置上的逻辑电路系统的计算系统的形式的另一功能框图。
图4是根据本公开的若干实施例的表示数据读取操作的流程图。
图5是根据本公开的若干实施例的表示数据写入操作的流程图。
图6是根据本公开的若干实施例的表示用于存储器中的逻辑电路系统的实例方法的流程图。
具体实施方式
描述对应于阶层式存储器系统的设备、系统和方法。逻辑电路系统可驻留在持久存储器装置上,借此缩短与在逻辑电路系统和持久存储器装置之间传递数据相关联的时延。实例设备包含持久存储器装置和驻留在持久存储器装置上的逻辑电路系统。逻辑电路系统包含被配置成存储对应于存储在持久存储器装置中的数据的逻辑地址的地址寄存器。逻辑电路系统被配置成接收检索存储在持久存储器装置中的数据的一部分的重定向请求(例如,在重定向之前,定向到非持久存储器装置),响应于接收到检索存储在持久存储器装置中的数据的所述部分的请求而基于存储在地址寄存器中的逻辑地址确定对应于数据的所述部分的物理地址,以及基于所确定的地址致使从持久存储器装置检索数据。
计算系统在操作期间利用各种类型的存储器资源。举例来说,计算系统可在操作期间利用易失性(例如随机存取存储器)存储器资源和非易失性(例如存储)存储器资源的组合。一般来说,易失性存储器资源可在比非易失性存储器资源快得多的速度下操作,且可具有比非易失性存储器资源更长的寿命;然而,易失性存储器资源通常比非易失性存储器资源昂贵。如本文所使用,易失性存储器资源在替代方案中可称为“非持久存储器装置”,而非易失性存储器资源在替代方案中可称为“持久存储器装置”。
然而,持久存储器装置可更广泛地指代以持久方式存取数据的能力。作为实例,在持久存储器上下文中,存储器装置可将多个逻辑到物理映射或转译数据和/或查找表存储在存储器阵列中以便跟踪存储器装置中的数据位置,而与存储器是否为非易失性的无关。此外,持久存储器装置可指代存储器的非易失性,还有通过包含服务于用于连续过程的命令(例如,通过使用逻辑到物理映射、查找表等)的能力来使用所述非易失性。
这些特性可能需要计算系统中的折衷,以便提供具有充分资源以根据消费者和计算资源提供者的不断增大的需求起作用的计算系统。举例来说,在多用户计算网络(例如,基于云的计算系统部署、软件限定的数据中心等)中,可提供相对大量的易失性存储器来提供在多用户网络中运行的虚拟机。然而,通过依赖于易失性存储器向多用户网络提供存储器资源(正如在一些方法中常见的),与向网络提供存储器资源相关联的成本可能增加,尤其是因为网络的用户需要使计算资源的越来越大的集区变得可用。
此外,在依赖于易失性存储器提供存储器资源以在多用户网络中提供虚拟机的方法中,一旦易失性存储器资源耗尽(例如,一旦易失性存储器资源分配给多用户网络的用户),在额外易失性存储器资源可用或被添加之前,不能将额外用户添加到多用户网络。这可能导致潜在用户离开,从而可能导致在额外存储器资源可供多用户网络使用的情况下可生成的收益的损失。
易失性存储器资源(例如,动态随机存取存储器(DRAM))趋向于以确定性方式操作,而非易失性存储器资源(例如,存储类存储器(例如,NAND快闪存储器装置、固态驱动器、电阻可变存储器装置等))趋向于以非确定性方式操作。举例来说,归因于对从存储类存储器装置检索的数据执行的错误校正操作、加密操作、RAID操作等,向存储类存储器装置请求数据与数据可用之间的时间量可在读取之间变化,借此使从存储类存储器装置进行的数据检索为非确定性的。相比之下,向DRAM装置请求数据与数据可用之间的时间量可在读取之间保持固定,借此使从DRAM装置进行的数据检索为确定性的。
此外,由于易失性存储器资源的确定性行为和非易失性存储器资源的非确定性行为之间的差异,传递进出存储器资源的数据通常穿越与正使用的存储器的类型相关联的特定接口(例如,总线)。举例来说,传递进出DRAM装置的数据通常经由双数据速率(DDR)总线传送,而传递进出NAND装置的数据通常经由外围组件互连高速(PCI-e)总线传送。如将了解,然而,数据可借以传递进出易失性存储器资源和非易失性存储器资源的接口的实例不限于这些所枚举的特定实例。
由于非易失性存储器装置和易失性存储器装置的不同行为,一些方法选择将某些类型的数据存储在易失性或非易失性存储器中。这可以缓解可能归因于例如易失性存储器装置的确定性行为相较于非易失性存储器装置的非确定性行为而产生的问题。举例来说,计算系统在一些方法中将在计算系统的操作期间有规律地存取的少量数据存储在易失性存储器装置中,而更大或较不频繁存取的数据存储在非易失性存储器装置中。然而,在多用户网络部署中,绝大部分数据可存储在易失性存储器装置中。相比之下,本文的实施例可允许从部署在多用户网络中的非易失性存储器装置进行数据存储和检索。
如本文所描述,本公开的一些实施例是针对计算系统,在所述计算系统中,来自非易失性且因此非确定性存储器资源的数据经由在其它方法中限于由易失性且确定性存储器资源使用的接口传送。举例来说,在一些实施例中,数据可经由在一些方法中被预留用于进出易失性确定性存储器资源的数据传递的接口(例如DDR接口)传递进出非易失性非确定性存储器资源,例如NAND快闪装置、电阻可变存储器装置,比如相变存储器装置和/或电阻式存储器装置(例如,三维交叉点(3D XP)存储器装置)、固态驱动器(SSD)、自选存储器(SSM)装置等。因此,与使用易失性确定性存储器装置将主存储器提供到计算系统的方法相比,本文的实施例可允许将非易失性非确定性存储器装置用作用于计算系统的主存储器的至少一部分。
在一些实施例中,数据可经由中介从非易失性存储器资源传递到高速缓存(例如,小型静态随机存取存储器(SRAM)高速缓存)或缓冲器,且随后使所述数据可供请求数据的应用使用。通过将通常以确定性方式提供的数据存储在非确定性存储器资源中且允许如此处所描述存取所述数据,可通过(例如)相比于使用易失性存储器资源操作的方法允许较大量的存储器资源以大大减小的成本可供多用户网络使用来改进计算系统性能。
此外,本公开的若干实施例可通过将阶层式存储器系统的若干组件紧密地耦合在一起来减少通常在传递数据进出非易失性存储器资源的过程中实行的步骤的数目。举例来说,在若干实施例中,协调在主机和非易失性存储器资源之间路由数据请求(且暂时存储正传递进出非易失性存储器资源的数据)的逻辑电路系统可部署在具有非易失性存储器资源的存储器装置(例如持久存储器装置)内。相应地,在本公开的若干实施例中,具有可比的较大大小的数据可经由减小数目的外部总线(例如,持久存储器装置外部的数据总线)传递进出持久存储器装置,这改进与持久存储器装置相关联的读取/写入请求的总体处理速度。
为了促进本公开的实施例,可使针对非易失性存储器资源的可见性对于其中部署阶层式存储器系统的计算系统的各个装置是模糊的。举例来说,部署在计算系统或多用户网络中的主机、网络接口卡、虚拟机等可能不能够区分数据由计算系统的易失性存储器资源还是非易失性存储器资源存储。举例来说,硬件电路系统可部署在计算系统中,其可寄存对应于数据的地址,使得主机、网络接口卡、虚拟机等不能够区分数据由易失性还是非易失性存储器资源存储。
如本文中更详细描述,阶层式存储器系统可包含硬件电路系统(例如,逻辑电路系统),其可拦截经重定向的数据请求,将地址寄存在与所请求数据相关联的逻辑电路系统中(即使硬件电路系统未由其自身的存储器资源备份以存储数据),并使用逻辑电路系统将寄存在逻辑电路系统中的地址映射到对应于非易失性存储器装置中的数据的物理地址。
在本公开的以下详细描述中,参考形成本公开的部分的附图,且图中通过图示的方式展示了可实践本公开的一或多个实施例的方式。足够详细地描述这些实施例以使所属领域的一般技术人员能够实践本公开的实施例,且应理解,可利用其它实施例且可在不脱离本公开的范围的情况下作出过程、电气和结构性改变。
如本文所使用,例如“N”、“M”等特定地关于图式中的参考标号的指定符指示可包含若干如此指定的特定特征。还应理解,本文中所使用的术语仅仅是出于描述特定实施例的目的,且并不意图为限制性的。如本文中所使用,除非上下文另外明确规定,否则单数形式“一(a/an)”和“所述(the)”可包含单数和复数个指代物两者。另外,“若干”、“至少一个”和“一或多个”(例如,若干存储器组)可指一或多个存储器组,而“多个”意在指代超过一个此类事物。
此外,贯穿本申请以许可的意义(即,有可能、能够)而非以强制性的意义(即,必须)使用词语“可能”和“可”。术语“包含”和其派生词指代“包含(但不限于)”。视上下文而定,术语“耦合(coupled/coupling)”意味着物理上直接或间接地连接或用于访问和移动(发射)命令和/或数据。视上下文而定,术语“数据”及“数据值”在本文中可互换地使用且可具有相同含义。
本文中的图式遵循编号惯例,其中前一或多个数字对应于图号,且其余数字标识图中的元件或组件。可通过使用类似数字来标识不同图式之间的类似的元件或组件。举例来说,104可表示图1中的元件“04”,且类似元件在图2中可表示为204。通常在本文中可用单个元件编号指代一组或多个类似元件或组件。举例来说,多个参考元件106-1、106-2、…、106-N(例如,106-1到106-N)可通常表示为106。如将了解,可添加、交换和/或去除本文中的各个实施例中展示的元件,以便提供本公开的若干额外实施例。另外,图中提供的元件的比例和/或相对尺度意图说明本公开的某些实施例,并且不应在限制性意义上看待。
图1是根据本公开的若干实施例的呈包含包括逻辑电路系统104的设备的计算系统100的形式的功能框图。如本文所使用,“设备”可以指但不限于多种结构或结构的组合中的任何一种,例如电路或电路系统、一或多个裸片、一或多个模块、一或多个装置,或者一或多个系统。在一些实施例中,逻辑电路系统104可提供为现场可编程门阵列(FPGA)、专用集成电路(ASIC)、若干离散电路组件等,并且可在本文中在替代方案中称为“逻辑电路系统”。
如图1中所示出,逻辑电路系统104可包含存储器资源102,所述存储器资源可包含读取缓冲器103、写入缓冲器105,和/或输入/输出I/O装置存取组件107。在一些实施例中,存储器资源102可以是随机存取存储器资源,例如块RAM,其可允许在其中逻辑电路系统104为FPGA的实施例中将数据存储在逻辑电路系统104内。然而,实施例不限于此,且存储器资源102可包括各种寄存器、高速缓存、存储器阵列、锁存器和SRAM、DRAM、EPROM,或可存储包含对应于其中数据被存储在逻辑电路系统104外部的物理位置的所寄存地址的数据(例如,位串)的其它合适的存储器技术。存储器资源102在逻辑电路系统104内部且通常小于逻辑电路系统104外部的存储器,例如可在逻辑电路系统104外部的持久和/或非持久存储器资源。
读取缓冲器103可包含存储器资源102的一部分,其被预留用于存储已由逻辑电路系统104接收但尚未由逻辑电路系统104处理的数据。在一些实施例中,读取缓冲器103的大小可为约4千字节(KB),但实施例不限于此特定大小。读取缓冲器103可缓冲待寄存在地址寄存器106-1到106-N中的一个中的数据。
写入缓冲器105可包含存储器资源102的一部分,其被预留用于存储正等待发射到逻辑电路系统104外部的位置的数据。在一些实施例中,写入缓冲器105的大小可为约4千字节(KB),但实施例不限于此特定大小。写入缓冲器103可缓冲待寄存在地址寄存器106-1到106-N中的一个中的数据。
I/O存取组件107可包含存储器资源102的一部分,其被预留用于存储对应于对逻辑电路系统104外部的组件(例如,本文中,图2和3中示出的I/O装置210/310)的存取的数据。I/O存取组件107可存储对应于I/O装置的地址的数据,其可用于从I/O装置读取数据和/或将数据写入到I/O装置。此外,在一些实施例中,I/O存取组件107可接收、存储和/或发射对应于管理程序(例如,图3中所示出的管理程序312)的状态的数据,如本文中结合图3更详细描述。
逻辑电路系统104可进一步包含存储器存取多路复用器(MUX)109、状态机111,和/或阶层式存储器控制器113(或为简单起见,“控制器”)。如图1所示,阶层式存储器控制器113可包含多个地址寄存器106-3到106-N和/或中断组件115。存储器存取MUX 109可包含电路系统,所述电路系统可包括一或多个逻辑门并且可被配置成控制针对逻辑电路系统104的数据和/或地址汇流。举例来说,存储器存取MUX 109可传递消息进出存储器资源102,以及与阶层式存储器控制器113和/或状态机111通信,如下文更详细地描述。
在一些实施例中,MUX 109可使来自主机(例如,主机计算装置、虚拟机等)的接收到逻辑电路系统104的传入消息和/或命令重定向。举例来说,MUX 109可将对应于从I/O装置到地址寄存器中的一个(例如,地址寄存器106-N,其可以是阶层式存储器控制器113的BAR4区,如下文所描述)的存取请求(例如,经由例如本文中图2和3中示出的接口208/308等接口接收)的传入消息重定向到读取缓冲器103和/或写入缓冲器105。
此外,MUX 109可使由逻辑电路系统104接收的请求(例如,读取请求、写入请求)重定向。在一些实施例中,所述请求可由逻辑电路系统104从管理程序(例如,本文中图3中所示出的管理程序312)、裸机服务器或以通信方式耦合到逻辑电路系统104的主机计算装置接收。此些请求可由MUX 109从读取缓冲器103、写入缓冲器105和/或I/O存取组件107重定向到地址寄存器(例如,地址寄存器106-2,其可以是阶层式存储器控制器113的BAR2区,如下文所描述)。
MUX 109可作为操作的一部分使此些请求重定向以确定待存取的地址寄存器106中的地址。在一些实施例中,MUX 109可响应于管理程序中断的断言(例如,由中断组件115生成的针对耦合到逻辑电路系统104的管理程序断言的中断)作为操作的一部分使此些请求重定向以确定待存取的地址寄存器中的地址。
响应于确定请求对应于存储在逻辑电路系统104外部的数据(例如,与正写入到逻辑电路系统104外部的位置(例如,正写入到本文中图2和3中示出的中间存储器组件220/320和/或持久存储器装置216/316的阵列222/322)的地址相关联的数据),MUX 109可促进数据的检索、数据到写入缓冲器105的传递,和/或数据到逻辑电路系统104外部的位置(例如,比如本文中图2和3中示出的持久存储器装置216/316等持久存储器装置的存储器单元阵列)的传递。响应于确定请求对应于正从逻辑电路系统104外部的位置(例如,从持久存储器装置)读取的数据,MUX 109可促进数据的检索、数据到读取缓冲器103的传递,和/或数据或与数据相关联的地址信息到逻辑电路系统104内部的位置(例如地址寄存器106)的传递。
作为非限制性实例,如果逻辑电路系统104从I/O装置接收读取请求,则MUX 109可通过选择从逻辑电路系统104发送适当的消息经由管理程序促进数据从持久存储器装置的检索。举例来说,MUX 109可促进使用中断组件115生成中断,致使在管理程序上断言中断,将从持久存储器装置接收的数据缓冲到读取缓冲器103中,和/或以已满足读取请求的指示响应于I/O装置。在其中逻辑电路系统104从I/O装置接收写入请求的非限制性实例中,MUX109可通过选择从逻辑电路系统104发送适当的消息经由管理程序促进数据到持久存储器装置的传递。举例来说,MUX 109可促进使用中断组件115生成中断,致使在管理程序上断言中断,将待传递到持久存储器装置的数据缓冲到写入缓冲器105中,和/或以已满足写入请求的指示响应于I/O装置。
状态机111可包含被配置成对输入执行操作且产生输出的一或多个处理装置、电路组件和/或逻辑。在一些实施例中,状态机111可以是有限状态机(FSM)或硬件状态机,其可被配置成接收改变的输入且基于所接收输入产生所得输出。举例来说,状态机111可传递存取信息(例如,“I/O ACCESS INFO”)进出存储器存取多路复用器109,以及中断配置信息(例如,“INTERRUPT CONFIG”)和/或中断请求消息(例如,“INTERRUPT REQUEST”)进出阶层式存储器控制器113。在一些实施例中,状态机111可进一步传递控制消息(例如,“MUXCTRL”)进出存储器存取多路复用器109。
ACCESS INFO消息可包含对应于从逻辑电路系统104外部的I/O装置接收的数据存取请求的信息。在一些实施例中,ACCESS INFO可包含对应于待存储在持久存储器装置中的数据的逻辑寻址信息,或对应于待从持久存储器装置检索的数据的寻址信息。
INTERRUPT CONFIG消息可由状态机111在阶层式存储器控制器113上断言以配置待在逻辑电路系统104外部断言的适当中断消息。举例来说,当逻辑电路系统104作为满足重定向的读取或写入请求的一部分在耦合到逻辑电路系统104的管理程序上断言中断时,INTERRUPT CONFIG消息可由状态机111生成以基于所述操作是从持久存储器装置检索数据的操作还是将数据写入到持久存储器装置的操作而生成适当的中断消息。
INTERRUPT REQUEST消息可由状态机111生成且在中断组件115上断言以致使在管理程序(或裸机服务器或其它计算装置)上断言中断消息。如本文中更详细描述,中断115可在管理程序上断言以致使管理程序作为阶层式存储器系统的操作的一部分对数据检索或数据到持久存储器装置的写入区分优先级。
MUX CTRL消息可由状态机111生成且在MUX 109上断言以控制MUX 109的操作。在一些实施例中,MUX CTRL消息可由状态机111在MUX 109上断言(反之亦然),作为上文描述的MUX 109操作的执行的一部分。
阶层式存储器控制器113可包含核心,例如集成电路、芯片、芯片上系统或其组合。在一些实施例中,阶层式存储器控制器113可以是外围组件互连高速(PCIe)核心。如本文中所使用,“核心”指代接收指令且基于所接收指令执行任务或动作的逻辑、处理器和/或协同处理器的可重复使用单元。
阶层式存储器控制器113可包含地址寄存器106-1到106-N和/或中断组件115。地址寄存器106-1到106-N可以是基地址寄存器(BAR),其可存储由逻辑电路系统104或计算系统(例如,本文中图2和3中示出的计算系统201/301)使用的存储器地址。地址寄存器中的至少一个(例如,地址寄存器106-1)可存储提供从例如图3中所示出的管理程序312等外部位置对逻辑电路系统104的内部寄存器的存取的存储器地址。
不同地址寄存器(例如,地址寄存器106-2)可用于存储对应于中断控制的地址,如本文中更详细描述。在一些实施例中,地址寄存器106-2可映射直接存储器存取(DMA)读取和DMA写入控制和/或状态寄存器。举例来说,地址寄存器106-2可包含对应于用于DMA命令链的描述符和/或控制位的地址,其可包含作为阶层式存储器系统的操作的一部分生成可向管理程序断言的一或多个中断消息,如本文中结合图3所描述。
地址寄存器中的又一个(例如,地址寄存器106-3)可存储对应于进出管理程序(例如,本文中图3中所示出的管理程序312)的存取的地址。在一些实施例中,可经由与逻辑电路系统104相关联的先进可扩展接口(AXI)DMA提供进出管理程序的存取。在一些实施例中,地址寄存器可映射对应于经由逻辑电路系统104的DMA(例如,AXI DMA)传递到逻辑电路系统104外部的位置的数据的地址。
在一些实施例中,至少一个地址寄存器(例如,地址寄存器106-N)可存储对应于I/O装置(例如,图2中所示出的I/O装置210)对逻辑电路系统104的存取的地址。地址寄存器106-N可存储被与逻辑电路系统104相关联的DMA组件绕过的地址。可提供地址寄存器106-N使得映射到其上的地址不由逻辑电路系统104的物理存储器位置“备份”。也就是说,在一些实施例中,逻辑电路系统104可配置有地址空间,所述地址空间存储对应于存储在持久存储器装置(例如,图2中所示出的持久存储器装置216)中的数据且不对应于由逻辑电路系统104存储的数据的地址。举例来说,地址寄存器106-N可被配置成虚拟地址空间,其可存储对应于其中存储数据的物理存储器位置(例如,存储器装置中)的逻辑地址。
在一些实施例中,地址寄存器106-N可包含对应于存储器装置(例如,本文中图2和3中示出的持久存储器装置216/316)的大小的一定数量的地址空间。举例来说,如果存储器装置含有一万亿字节的存储容量,则地址寄存器106-N可被配置成具有可包含一万亿字节的地址空间的地址空间。然而,如上文所描述,地址寄存器106-N实际上不包含一万亿字节的存储容量,而是被配置成表现为具有一万亿字节的存储空间。
尽管图1中未明确展示,逻辑电路系统104可耦合到主机计算系统。主机计算系统可包含系统母板和/或底板,且可包含若干处理资源(例如,一或多个处理器、微处理器或某一其它类型的控制电路系统)。举例来说,主机和设备100可以是服务器系统和/或高性能计算(HPC)系统和/或其一部分。在一些实施例中,计算系统可具有冯诺伊曼体系结构,然而,本公开的实施例可实施于可不包含常常与冯诺伊曼体系结构相关联的一或多个组件(例如,CPU、ALU等)的非冯诺伊曼体系结构中。
如图2和3中进一步展示,逻辑电路系统104可驻留在阶层式存储器系统的特定存储器装置上,例如持久存储器装置(例如,本文中图2和3中示出的持久存储器装置216/316)。如本文中所使用,术语“驻留于……上”是指某物物理上位于特定组件上。举例来说,逻辑电路系统104“驻留在持久存储器装置216/316上”指代逻辑电路系统104以物理方式耦合到持久存储器装置216/316的状况。术语“驻留于……上”可在本文中与例如“部署在……上”或“位于……上”等其它术语互换使用。如本文所描述,本公开的若干实施例可通过将逻辑电路系统部署在持久存储器装置内来缩短与传递数据进出持久存储器装置相关联的时延。因为传递进出持久存储器装置的数据通常具有可比的较大大小,这可大大改进阶层式存储器系统(例如,本文中图2和3中示出的阶层式存储器系统201/301)的总体处理速度。逻辑电路系统驻留在持久存储器装置上的另外细节结合图2和3描述。
图2是根据本公开的若干实施例的呈包含驻留在持久存储器装置216上的逻辑电路系统204(例如,逻辑电路系统)的计算系统201的形式的功能框图。如图2所示,计算系统201可包含上面驻留逻辑电路系统204的持久存储器装置216。逻辑电路系统204可类似于图1中所示出的逻辑电路系统104。此外,计算系统201可包含输入/输出(I/O)装置210、非持久存储器装置230、中间存储器组件220和存储器管理组件214。可经由接口208促进I/O装置210和持久存储器装置216(以及逻辑电路系统204)、非持久存储器装置230、中间存储器组件220和/或存储器管理组件214之间的通信。
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功能性。
持久存储器装置216可包含若干存储器单元阵列,例如阵列222。举例来说,阵列可以是具有NAND架构的快闪阵列。然而,实施例不限于特定类型的存储器阵列或阵列架构。存储器单元可例如分组成包含若干物理页的若干块。若干块可包含于存储器单元的平面中,且阵列可包含若干平面。
持久存储器装置216可包含易失性存储器和/或非易失性存储器。在若干实施例中,持久存储器装置216可包含多芯片装置。多芯片装置可以包含若干不同的存储器类型和/或存储器模块。举例来说,存储器系统可以包含在任何类型的模块上的非易失性或易失性存储器。在其中持久存储器装置216包含非易失性存储器的实施例中,持久存储器装置216可以是例如NAND或NOR快闪存储器装置等快闪存储器装置。
然而,实施例不限于此,且持久存储器装置216可包含其它非易失性存储器装置,例如非易失性随机存取存储器装置(例如,NVRAM、ReRAM、FeRAM、MRAM、PCM)、比如电阻可变存储器装置(例如,电阻式和/或相变存储器装置,比如3D交叉点(3D XP)存储器装置)等“新兴”存储器装置、包含自选存储器(SSM)单元的阵列的存储器装置等,或其组合。非易失性存储器的电阻式和/或相变阵列可结合可堆叠交叉网格化数据存取阵列基于体电阻的改变来执行位存储。此外,与许多基于快闪的存储器对比,电阻式和/或相变存储器装置可执行就地写入操作,其中可在不预先擦除非易失性存储器单元的情况下对非易失性存储器单元进行编程。与基于快闪的存储器相比,自选存储器单元可包含具有充当存储器单元的开关和存储元件两者的单个硫族化物材料的存储器单元。
持久存储器装置216可为计算系统201提供(例如,经由阵列222)存储容量,且因此可用作整个计算系统201的额外存储器或存储装置、计算系统201的主存储器,或其组合。然而,实施例不限于特定类型的存储器装置,且持久存储器装置216可包含RAM、ROM、SRAMDRAM、SDRAM、PCRAM、RRAM和快闪存储器等等。此外,尽管在图2中示出单个持久存储器装置216,但实施例不限于此,且计算系统201可包含一或多个持久存储器装置216,其中的每一个可或可不具有与其相关联的相同架构。作为非限制性实例,在一些实施例中,持久存储器装置216可包括具有不同架构的两个离散存储器装置,例如NAND存储器装置和电阻可变存储器装置。
如本文所描述和图2中示出,逻辑电路系统204可驻留在持久存储器装置216上。相应地,正传递到(例如,待存储到)阵列222的数据可经由持久存储器装置216内部的数据总线218从逻辑电路系统204传递到阵列222(而不利用持久存储器装置216外部的数据总线)。类似地,正从阵列222传递(例如,待从阵列222读取)的数据可经由数据总线218从阵列222直接传递到逻辑电路系统204。这可改进与数据传递进出持久存储器装置216相关联的读取/写入请求的处理速度,从而可进一步改进阶层式存储器系统201的总体速度。
非持久存储器装置230可包含易失性存储器,例如易失性存储器单元的阵列。在若干实施例中,非持久存储器装置230可包含多芯片装置。多芯片装置可以包含若干不同的存储器类型和/或存储器模块。在一些实施例中,非持久存储器装置230可充当计算系统201的主存储器。举例来说,非持久存储器装置230可以是用于向计算系统230提供主存储器的动态随机存取(DRAM)存储器装置。然而,实施例不限于包括DRAM存储器装置的非持久存储器装置230,且在一些实施例中,非持久存储器装置230可包含其它非持久存储器装置,例如RAM、SRAM DRAM、SDRAM、PCRAM和/或RRAM等等。
非持久存储器装置230可存储可例如由主机计算装置作为计算系统201的操作的一部分请求的数据。举例来说,当计算系统201是多用户网络的一部分时,非持久存储器装置230可存储在计算系统201的操作期间可在主机计算装置(例如,部署在多用户网络中的虚拟机)之间传递的数据。
在一些方法中,例如非持久存储器装置230等非持久存储器可存储由主机(例如,部署在多用户网络中的虚拟机)存取的所有用户数据。举例来说,归因于非持久存储器的速度,一些方法依赖于非持久存储器为部署在多用户网络中的虚拟机提供存储器资源。然而,在此些方法中,归因于非持久存储器通常比持久存储器(例如,持久存储器装置216)昂贵,成本可能成问题。
相比之下,如下文更详细地描述,本文中的实施例可允许将存储在非持久存储器装置230中的至少一些数据存储在持久存储器装置216中。这可允许以比依赖于非持久存储器进行用户数据存储的方法低的成本将额外存储器资源提供到计算系统201,例如多用户网络。
计算系统201可包含存储器管理组件214,其可以通信方式耦合到非持久存储器装置230和/或接口208。在一些实施例中,存储器管理组件214可以是可以通信方式将例如接口208等直接存储器存取总线耦合到非持久存储器装置230的输入/输出存储器管理单元(IO MMU)。然而,实施例不限于此,且存储器管理组件214可以是促进接口208和非持久存储器装置230之间的通信的其它类型的存储器管理硬件。
存储器管理组件214可将装置可见虚拟地址映射到物理地址。举例来说,存储器管理组件214可将与I/O装置210相关联的虚拟地址映射到非持久存储器装置230和/或持久存储器装置216中的物理地址。在一些实施例中,可通过本文在图1中所示出的读取缓冲器、写入缓冲器和/或I/O存取缓冲器来促进映射与I/O装置210相关联的虚拟条目。
在一些实施例中,存储器管理组件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地址寄存器。
重定向的读取(或写入)请求可经由接口208从存储器管理组件214传递到逻辑电路系统204。在一些实施例中,接口208可以是PCIe接口,且因此可根据PCIe协议在存储器管理组件214和逻辑电路系统204之间传送信息。然而,实施例不限于此,且在一些实施例中,接口208可以是根据另一合适的协议运作的接口或总线。
在虚拟NIC地址存储在逻辑电路系统204中之后,可将对应于虚拟NIC地址的数据写入到持久存储器装置216。举例来说,对应于存储在逻辑电路系统204中的虚拟NIC地址的数据可存储在持久存储器装置216的物理地址位置中。在一些实施例中,可通过如本文中结合图3-5所描述的管理程序促进数据进出持久存储器装置216的传递。
当数据例如由主机计算装置(例如计算系统201中部署的虚拟机)请求时,所述请求可由存储器管理组件214经由接口208从I/O装置210重定向到逻辑电路系统204。因为对应于持久存储器装置216中的数据的物理位置的虚拟NIC地址存储在逻辑电路系统204的地址寄存器206-N中,所以逻辑电路系统204可结合如本文中结合图3-5更详细描述的管理程序促进数据从持久存储器装置216的检索。
在一些实施例中,当已存储在持久存储器装置216中的数据传递离开持久存储器装置216时(例如,当已存储在持久存储器装置216中的数据被主机计算装置请求时),数据可在提供到主机计算装置之前传递到中间存储器组件220和/或非持久存储器装置230。举例来说,因为传递到主机计算装置的数据可以确定性方式(例如,经由DDR接口)传递,所以数据可在满足数据请求之前暂时传递到使用DDR总线操作的存储器,例如中间存储器组件220和/或非持久存储器装置230。
图3是根据本公开的若干实施例的呈包含驻留在持久存储器装置316上的逻辑电路系统304的计算系统的形式的另一功能框图。逻辑电路系统304可类似于图1和2中示出的逻辑电路系统104/204。此外,计算系统301可包含I/O装置310、非持久存储器装置330、中间存储器组件320、存储器管理组件314和管理程序312。
如图3中所示,计算系统301可包含上面驻留逻辑电路系统304的持久存储器装置316。持久存储器装置316可包含若干存储器单元阵列,例如阵列322。阵列322可经由位于持久存储器装置316内部的数据总线耦合到逻辑电路系统304。如本文所描述,阵列322可包含电阻性存储器单元阵列、相变存储器装置、自选存储器单元阵列,或其它合适的非易失性存储器资源,或其组合。
在一些实施例中,计算系统301可以是多用户网络,例如软件限定的数据中心、云计算环境等。在此些实施例中,计算系统可被配置成具有在其上运行的一或多个虚拟机317。举例来说,在一些实施例中,一或多个虚拟机317可部署在管理程序312上并且可由多用户网络的用户存取。
I/O装置310、持久存储器装置316、非持久存储器装置330、中间存储器组件320和存储器管理组件314可类似于图2中所示出的I/O装置210、持久存储器装置216、非持久存储器装置230、中间存储器组件220和存储器管理组件214。可经由可类似于图2中所示出的接口208的接口308来促进I/O装置310和持久存储器装置316(以及逻辑电路系统304)、非持久存储器装置330、管理程序312和存储器管理组件314之间的通信。
如上文结合图2所描述,存储器管理组件314可致使将与I/O装置310相关联的读取请求或写入请求重定向到逻辑电路系统304。逻辑电路系统304可生成和/或存储对应于所请求数据的逻辑地址。如上文所描述,逻辑电路系统304可将对应于所请求数据的逻辑地址存储在基地址寄存器中,例如逻辑电路系统304的地址寄存器306-N。
如图3中所示,管理程序312可经由接口308与I/O装置310通信。另外,管理程序312可与持久存储器装置316(以及逻辑电路系统304)、非持久存储器装置330、中间存储器组件320和存储器管理组件314通信。管理程序可被配置成执行专门指令来执行本文中所描述的操作和/或任务。举例来说,管理程序312可执行指令以致使经由接口308在逻辑电路系统304和I/O装置310之间发射数据,同时数据经由持久存储器装置216内部的数据总线218在阵列222和逻辑电路系统204之间发射。
此外,管理程序312可执行指令以监视数据业务和数据业务模式以确定数据是否应存储在非持久存储器装置330中或数据是否应传递到持久存储器装置316。也就是说,在一些实施例中,管理程序312可执行指令以随时间学习用户数据请求模式,且基于所述模式选择性地将数据的部分存储在非持久存储器装置330或持久存储器装置316中。此可允许较频繁存取的数据被存储在非持久存储器装置330中,而较不频繁存取的数据被存储在持久存储器装置316中。
因为相比于较久前使用或较久前检视的数据,用户可更频繁地存取最近使用或检视的数据,所以管理程序可执行专门指令以致使较久前使用或检视的数据被存储在持久存储器装置316中,和/或致使较近存取或检视的数据被存储在非持久存储器装置330中。在非限制性实例中,相比于较久前拍摄(例如,一个月以前、一年以前等)的照片,用户可更频繁地检视社交媒体上的最近拍摄(例如,一周内等)的照片。基于此信息,管理程序312可执行专门指令以致使较久前检视或拍摄的照片被存储在持久存储器装置316中,借此减小存储在非持久存储器装置330中的数据量。此可减少必需为计算系统301提供的非持久存储器的总量,借此减小成本且允许更多用户存取非持久存储器装置330。
在操作中,计算系统301可被配置成拦截来自I/O装置310的数据请求且将请求重定向到逻辑电路系统304。在一些实施例中,管理程序312可控制对应于数据请求的数据将存储在非持久存储器装置330中还是持久存储器装置316中(或从哪一个检索)。举例来说,管理程序312可执行指令以选择性地控制数据存储在持久存储器装置316还是非持久存储器装置330中(或从哪一个检索)。
作为控制数据被存储在持久存储器装置316和/或非持久存储器装置330中(或从哪一个检索)的一部分,管理程序312可致使存储器管理组件314映射与待重定向到逻辑电路系统304且存储在逻辑电路系统304的地址寄存器306中的数据相关联的逻辑地址。举例来说,管理程序312可执行指令来控制涉及待经由存储器管理组件314选择性地重定向到逻辑电路系统304的数据的读取和写入请求。
存储器管理组件314可将邻接虚拟地址映射到基础的片段物理地址。相应地,在一些实施例中,存储器管理组件314可允许将虚拟地址映射到物理地址,而不必要求物理地址为邻接的。此外,在一些实施例中,存储器管理组件314可允许在存储器管理组件314中寻址不能足够长地支持存储器地址以寻址其相应物理存储器空间的装置。
归因于与持久存储器装置316相关联的数据传递的非确定性性质,逻辑电路系统304可在一些实施例中被配置成告知计算系统301可能引发传递数据进出持久存储器装置316的过程中的延迟。作为初始化延迟的一部分,逻辑电路系统304可在数据请求重定向到逻辑电路系统304时为计算系统301提供页面错误处理。在一些实施例中,逻辑电路系统304可生成且向管理程序312断言中断以起始传递数据进出持久存储器装置316的操作。举例来说,归因于与持久存储器装置316相关联的数据检索和存储的非确定性性质,逻辑电路系统304可在请求传递存储在持久存储器装置316中的数据时生成管理程序中断315。
响应于由逻辑电路系统304生成的页面错误中断,管理程序312可从逻辑电路系统304检索对应于数据的信息。举例来说,管理程序312可从逻辑电路系统接收NIC存取数据,其可包含对应于存储在逻辑电路系统304的地址寄存器306中的数据的逻辑到物理地址映射。
一旦数据已存储在持久存储器装置316中,非持久存储器装置330的一部分(例如,页、块等)就可以标记为不可被逻辑电路系统304存取,使得计算系统301不去尝试从非持久存储器装置330存取数据。这可允许数据请求因为页面错误而被拦截,当已存储在持久存储器装置316中的数据被I/O装置310请求时,所述页面错误可由逻辑电路系统304生成并向管理程序312断言。
相比于其中响应于应用请求存取不由存储器管理单元(例如,存储器管理组件314)映射的存储器页而发生页面错误异常的方法,在本公开的实施例中,上文所描述的页面错误可由逻辑电路系统304响应于数据在存储器管理组件314中映射到逻辑电路系统304而生成,所述逻辑电路系统继而将数据映射到持久存储器装置316。
在一些实施例中,中间存储器组件320可用于响应于由I/O装置310起始的数据请求缓冲存储在持久存储器装置316中的数据。与可经由PCIe接口传送数据的持久存储器装置316相比,中间存储器组件320可采用DDR接口来传送数据。相应地,在一些实施例中,中间存储器组件320可以确定性方式操作。举例来说,在一些实施例中,存储在持久存储器装置316中的所请求的数据可经由将中间存储器组件320耦合到I/O装置310的DDR接口暂时从持久存储器装置316传递到中间存储器组件320且随后传递到主机计算装置。
在一些实施例中,中间存储器组件可包括部署在计算系统301中的离散存储器组件(例如,SRAM高速缓存)。然而,实施例不限于此,并且在一些实施例中,中间存储器组件320可以是非持久存储器装置330中的可分配用于响应于数据请求而从持久存储器装置316传递数据的部分。
在非限制性实例中,逻辑电路系统(例如,逻辑电路系统304)可驻留在持久存储器装置(例如,持久存储器装置316)上。逻辑电路系统可包含被配置成存储对应于存储在持久存储器装置中的数据的逻辑地址的地址寄存器。逻辑电路系统可被配置成接收检索存储在持久存储器装置中的数据的部分的重定向请求。在重定向之前,请求定向到非持久存储器装置。逻辑电路系统可被配置成响应于接收到检索存储在持久存储器装置中的所述数据的所述部分的请求而基于存储在地址寄存器中的逻辑地址确定对应于所述数据的所述部分的物理地址。逻辑电路系统可被配置成基于所确定的地址致使从持久存储器装置检索数据。
在一些实施例中,逻辑电路系统可被配置成基于所确定的地址生成从持久存储器装置检索所存储的所述数据的所述部分的请求。逻辑电路系统可进一步被配置成经由将逻辑电路系统耦合到管理程序的接口将请求(例如,先前生成的请求)传递到管理程序。响应于在管理程序处接收到所述请求,管理程序可被配置成促进所述数据的所述部分的检索。逻辑电路系统可被配置成生成中断信号,且经由接口向管理程序断言中断信号,作为从持久存储器装置检索所述数据的所述部分的请求的一部分。响应于将请求传递到管理程序,逻辑电路系统可被配置成从持久存储器装置接收所述数据的所述部分,且经由接口将所述数据的所述部分传递到输入/输出(I/O)装置。
在一些实施例中,持久存储器装置可以是各种非易失性存储器资源中的一个和/或其组合。举例来说,持久存储器装置可包含电阻性存储器单元阵列、相变存储器装置、自选存储器单元阵列,或其它合适的非易失性存储器资源,或其组合。
在一些实施例中,逻辑电路系统可被配置成基于接收到请求而使指示所述数据的所述部分不可被非持久存储器装置存取的指示与所述数据的所述部分相关联。逻辑电路系统可包含状态机。
在另一非限制性实例中,系统可包含具有驻留在其上的逻辑电路系统的持久存储器装置,以及耦合到持久存储器装置和逻辑电路系统的存储器管理电路系统。逻辑电路系统可被配置成响应于接收到从存储器管理电路系统重定向的将数据写入到持久存储器装置的请求而将将数据写入到持久存储器装置的请求传递到管理程序。逻辑电路系统可进一步被配置成致使将与请求相关联的数据从逻辑电路系统写入到持久存储器装置。逻辑电路系统可包含缓冲器(例如,本文中图1中所示出的写入缓冲器105),其被配置成存储待写入到持久存储器装置的数据。
在一些实施例中,在逻辑电路系统处经由将逻辑电路系统耦合到存储器管理电路系统的接口接收所述请求。相比之下(例如,接口被用于在逻辑电路系统处接收请求),逻辑电路系统可被配置成致使经由不同于所述接口的数据总线将数据从逻辑电路系统写入到持久存储器装置。
在一些实施例中,逻辑电路系统被配置成接收从存储器管理电路系统重定向的从持久存储器装置检索数据的请求。响应于接收到所述请求,逻辑电路系统可被配置成将从持久存储器装置检索数据的请求传递到管理程序,且向管理程序断言中断信号作为所传递请求的一部分。
响应于接收到所传递的请求,管理程序可被配置成致使从持久存储器装置检索数据且经由将持久存储器装置耦合到非持久存储器装置的接口将数据传递到非持久存储器装置。此外,响应于接收到从持久存储器装置检索的数据,逻辑电路系统可被配置成经由将持久存储器装置耦合到I/O装置的接口将数据传递到输入/输出(I/O)装置。
在一些实施例中,逻辑电路系统可被配置成从输入/输出(I/O)装置接收虚拟I/O装置存取信息,且将虚拟I/O装置存取信息传递到管理程序,作为将数据写入到持久存储器装置的请求的一部分。逻辑电路系统可包含被配置成存储虚拟I/O装置存取信息的存储器单元阵列。
图4是根据本公开的若干实施例的表示数据读取操作的流程图440。在框441处,例如图2和3中示出的I/O装置210/310等I/O装置可使用对应于数据请求的地址起始读取操作。在一些实施例中,地址可以是物理地址,例如虚拟机物理地址。数据请求可包含读取与对应于其中存储数据的逻辑地址的特定地址相关联的数据的请求。物理地址可对应于持久存储器装置(例如,本文中图2和3中示出的持久存储器装置216/316)中的位置或非持久存储器装置(例如,本文中图2和3中示出的非持久存储器装置230/330)中的位置。
如果数据存储在非持久存储器装置中,则数据可被检索,且可满足数据请求。然而,如果数据存储在持久存储器装置中(例如,如果数据的物理地址对应于持久存储器装置中的位置),则在框442处,存储器管理组件(例如,本文中图2和3中示出的存储器管理组件214/314)可将数据请求重定向到逻辑电路系统(例如,本文中图1-3中示出的逻辑电路系统104/204/304)。如上文所描述,数据请求可基于信息(例如,所执行的命令或指令)由管理程序(例如,本文中图3中所示出的管理程序312)重定向。
在框443处,逻辑电路系统可接收对应于数据请求的地址寄存器存取信息。在一些实施例中,地址寄存器存取信息可对应于地址寄存器(例如,本文中图1-3中示出的地址寄存器106/206/306)中的位置。举例来说,地址寄存器存取信息可对应于逻辑电路系统中的地址寄存器中的位置,其中逻辑地址对应于其中存储数据的持久存储器装置中的物理地址。
逻辑电路系统可在框444处生成管理程序中断。举例来说,如上文结合图3所描述,一旦逻辑电路系统已从存储器管理组件接收重定向的数据请求,逻辑电路系统就可生成中断且在管理程序(例如,本文中图3中所示出的管理程序312)上断言所述中断。在一些实施例中,中断可以是在管理程序上断言以告知管理程序事件需要即时关注的信号。举例来说,中断信号可在管理程序上断言以致使管理程序中断当前正执行的指令,且改为执行与在框445处聚集地址寄存器存取信息相关联的指令。
在框445处,管理程序可从逻辑电路系统搜集地址寄存器存取信息。举例来说,管理程序可从逻辑电路系统接收对应于所请求数据的物理地址的逻辑地址信息。逻辑地址信息可存储在逻辑电路系统中在逻辑电路系统的地址寄存器(例如,基地址寄存器)中,例如本文中图1-3中示出的地址寄存器106/206/306。
在框446处,管理程序可确定所请求数据的物理位置。举例来说,基于地址寄存器存取信息及因此与从逻辑电路系统搜集的数据相关联的逻辑地址,管理程序可确定存储在持久存储器装置中的数据的物理位置。
在框447处,管理程序可读取对应于地址寄存器存取信息的数据。也就是说,在一些实施例中,管理程序可致使从持久存储器装置读取(例如,检索)所请求数据。
在框448处,管理程序可致使将数据传递到非持久存储器装置。在一些实施例中,非持久存储器装置可以是本文中图2和3中示出的非持久存储器装置230/330。
在框449处,管理程序可将对应于所请求数据的I/O装置数据写入到逻辑电路系统。I/O装置数据可存储在逻辑电路系统的地址寄存器中,如上文所描述。在一些实施例中,管理程序可在进一步将数据传递到I/O装置之前,将I/O装置数据从逻辑电路系统传递到中间存储器组件,例如本文中分别在图2和3中示出的中间存储器组件220/320。
在框450处,逻辑电路系统可完成数据读取事务。举例来说,逻辑电路系统可将命令传递到I/O装置以告知I/O装置已满足数据读取请求,且数据将经由确定性接口传递以满足数据读取请求。
在框451处,管理程序可更新存储器管理组件以将I/O装置地址定向到非持久存储器装置。举例来说,因为数据在框450处从持久存储器装置传递到非持久存储器装置(例如,非持久存储器装置和/或中间存储器组件),所以管理程序可更新存储器管理组件使得对应于所请求的数据的地址映射到非持久存储器装置。在一些实施例中,地址可以是物理地址,例如虚拟机物理地址。
在框452处,管理程序可记录哪一存储器被用于满足数据请求。举例来说,管理程序可记录在从I/O装置接收数据请求的时候数据已经存储在持久存储器装置中。在一些实施例中,管理程序可使用随时间的信息将数据写入选择性地定向到持久存储器装置或非持久存储器装置。
图5是根据本公开的若干实施例的表示数据写入操作的流程图560。在框561处,I/O装置,例如图2和3中示出的I/O装置210/310,可使用对应于数据写入请求的地址起始写入操作。地址可以是物理地址,例如虚拟机物理地址。数据写入请求可包含写入与对应于其中将存储数据的逻辑地址的特定虚拟地址相关联的数据的请求。物理地址可对应于持久存储器装置(例如,本文中图2和3中示出的持久存储器装置216/316)中的位置或非持久存储器装置(例如,本文中图2和3中示出的非持久存储器装置230/330)中的位置。举例来说,物理地址可对应于持久存储器装置的若干存储器单元阵列(例如,本文中图2和3中示出的阵列222/322)。
如果数据将存储在非持久存储器装置中,则数据可写入到非持久存储器装置且可满足数据写入请求。然而,如果数据将存储在持久存储器装置中,则在框442处存储器管理组件(例如,本文中图2和3中示出的存储器管理组件214/314)可经由接口(例如,图2和3中示出的接口208/308)将数据写入请求重定向到逻辑电路系统(例如,本文中图1-3中示出的逻辑电路系统104/204/304)。如上文所描述,数据请求可基于信息(例如,所执行的命令或指令)由管理程序(例如,本文中图3中所示出的管理程序312)重定向。
在框563处,逻辑电路系统可接收对应于数据写入请求的地址寄存器存取信息。在一些实施例中,地址寄存器存取信息可对应于地址寄存器(例如,本文中图1-3中示出的地址寄存器106/206/306)中的位置。举例来说,地址寄存器存取信息可对应于逻辑电路系统中的地址寄存器中的位置,其中逻辑地址对应于其中将存储数据的持久存储器装置中的物理地址。
逻辑电路系统可在框564处生成管理程序中断。举例来说,如上文结合图3所描述,一旦逻辑电路系统已从存储器管理组件接收重定向的数据写入请求,逻辑电路系统就可生成中断且在管理程序(例如,本文中图3中所示出的管理程序312)上断言所述中断。
在框565处,管理程序可从逻辑电路系统搜集地址寄存器存取信息。举例来说,管理程序可从逻辑电路系统接收对应于其中将存储数据的物理地址的逻辑地址信息。
在框566处,管理程序可任选地将数据写入(或致使数据被写入)到持久存储器装置。举例来说,基于重定向的数据写入请求,管理程序可确定数据将写入到持久存储器装置,且致使数据被写入到持久存储器装置。在其中任选地执行框566的实施例中,数据可经由中介写入到非持久存储器装置。此外,对应于数据的I/O装置数据可任选地写入到非持久存储器装置,作为将数据写入到非持久存储器装置的一部分。
可选地,在框567处,管理程序可将数据写入(或致使数据被写入)到非持久存储器装置。在一些实施例中,管理程序可将数据写入到非持久存储器装置,使得在接收到对应于数据的读取请求的情况下可经由确定性接口或总线检索数据。
在框568处,管理程序可更新存储器管理组件以将I/O装置虚拟地址定向到非持久存储器装置。举例来说,如果在框567处数据被写入到非持久存储器装置,则管理程序可在框处568更新由存储器管理组件存储的虚拟地址,使得与数据相关联且由存储器管理组件存储的虚拟地址映射到其中存储数据的非持久存储器装置中的物理地址。
图6是根据本公开的若干实施例的表示用于存储器中的逻辑电路系统的实例方法670的流程图。在框672处,方法670可包含在驻留在持久存储器装置(例如,本文中图2和3中示出的持久存储器装置216/316)上的逻辑电路系统(例如,本文中图1-3中示出的逻辑电路系统104/204/304)处接收经由接口(例如,本文中图2和3中所示出的接口208/308)从持久存储器装置检索数据的重定向请求。所述请求可最初在重定向之前定向到非持久存储器装置(例如,本文中图2和3中示出的非持久存储器装置230/330)。
在框674处,方法670可包含将从持久存储器装置检索数据的请求传递到耦合到逻辑电路系统的管理程序(例如,本文中图3中所示出的管理程序312)。在框676处,方法670可包含将从持久存储器装置检索到的数据发射到逻辑电路系统或非持久存储器装置(例如,经由接口发射到非持久存储器装置),或这两者。可经由将持久存储器装置(例如,的阵列)耦合到逻辑电路系统的数据总线检索从持久存储器装置(例如,持久存储器装置的存储器单元阵列)到逻辑电路系统的数据。
检索到管理程序的数据可传递到阶层式存储器系统的各个组件。举例来说,在一些实施例中,从持久存储器装置检索到的数据可经由将逻辑电路系统耦合到I/O装置的接口传递到输入/输出(I/O)装置(例如,本文中图2和3中示出的I/O装置210/310)。
在一些实施例中,方法670可进一步包含通过逻辑电路系统基于接收到从持久存储器装置检索数据的请求使指示数据不可被非持久存储器装置存取的指示与所述数据相关联。在一些实施例中,方法670可进一步包含由逻辑电路系统响应于接收到所述请求生成对应于数据的逻辑地址,且将逻辑地址存储在逻辑电路系统内的地址寄存器中。
虽然已经在本文中说明并描述了特定实施例,但是所属领域的一般技术人员将了解,经计算以实现相同结果的布置可以替代所展示的特定实施例。本公开既定涵盖本公开的一或多个实施例的调适或变化。应理解,已以说明性方式而非限制性方式作出以上描述。所属领域的技术人员在审阅以上描述后将显而易见上述实施例的组合及本文中未特定描述的其它实施例。本公开的所述一或多个实施例的范围包含在其中使用以上结构和过程的其它应用。因此,本公开的一或多个实施例的范围应参考所附权利要求书以及此类权利要求被赋予的等效物的完整范围来确定。
在以上具体实施方式中,出于简化本公开的目的而将一些特征一并归到单个实施例中。这一公开方法不应被理解为反映以下意图:本公开的所公开实施例必须使用比每一权利要求中明确陈述的特征更多的特征。实际上,如所附权利要求书所反映,本发明主题在于单个所公开实施例的不到全部的特征。因此,所附权利要求书特此并入于具体实施方式中,其中每项权利要求就其自身而言作为单独实施例存在。

Claims (18)

1.一种设备,其包括:
持久存储器装置;以及
逻辑电路系统,其驻留在所述持久存储器装置上且包括被配置成存储对应于存储在所述持久存储器装置中的数据的逻辑地址的地址寄存器,其中所述逻辑电路系统被配置成:
接收检索存储在所述持久存储器装置中的所述数据的部分的重定向请求,其中在重定向之前,所述请求定向到非持久存储器装置;
响应于接收到检索存储在所述持久存储器装置中的所述数据的所述部分的所述请求而基于存储在所述地址寄存器中的所述逻辑地址确定对应于所述数据的所述部分的物理地址;以及
致使基于所确定的地址从所述持久存储器装置检索所述数据。
2.根据权利要求1所述的设备,其中所述逻辑电路系统被配置成:
基于所述所确定的地址生成从所述持久存储器装置检索所存储的所述数据的所述部分的请求;
经由将所述逻辑电路系统耦合到管理程序的接口将所述请求传递到所述管理程序;且
其中所述管理程序被配置成响应于在所述管理程序处接收到所述请求而促进所述数据的所述部分的检索。
3.根据权利要求2所述的设备,其中所述逻辑电路系统被配置成:
响应于将所述请求传递到所述管理程序而从所述持久存储器装置接收所述数据的所述部分;以及
经由所述接口将所述数据的所述部分传递到输入/输出(I/O)装置。
4.根据权利要求2所述的设备,其中所述逻辑电路系统被配置成:
产生中断信号;以及
经由所述接口向所述管理程序断言所述中断信号,作为从所述持久存储器装置检索所述数据的所述部分的所述请求的一部分。
5.根据权利要求1所述的设备,其中所述持久存储器装置包括电阻性存储器单元阵列、相变存储器装置、自选存储器单元阵列,或其组合。
6.根据权利要求1所述的设备,其中所述逻辑电路系统被配置成基于接收到所述请求使指示所述数据的所述部分不可被所述非持久存储器装置存取的指示与所述数据的所述部分相关联。
7.根据权利要求1所述的设备,其中所述逻辑电路系统包含状态机。
8.一种系统,其包括:
持久存储器装置,其具有驻留在其上的逻辑电路系统;以及
存储器管理电路系统,其耦合到所述持久存储器装置和所述逻辑电路系统;
其中所述逻辑电路系统被配置成:
响应于接收到从所述存储器管理电路系统重定向的将数据写入到所述持久存储器装置的请求而将将所述数据写入到所述持久存储器装置的请求传递到管理程序;以及
其中所述管理程序被配置成致使将与所述请求相关联的所述数据从所述逻辑电路系统写入到所述持久存储器装置;
其中
所述请求由所述逻辑电路系统经由将所述逻辑电路系统耦合到所述存储器管理电路系统的接口接收;且
其中所述逻辑电路系统被配置成致使经由不同于所述接口的数据总线将所述数据从所述逻辑电路系统写入到所述持久存储器装置。
9.根据权利要求8所述的系统,其中所述逻辑电路系统包括被配置成存储待写入到所述持久存储器装置的所述数据的缓冲器。
10.一种方法,其包括:
在驻留在持久存储器装置上的逻辑电路系统处经由接口接收从所述持久存储器装置检索数据的重定向请求,其中,在重定向之前,所述请求定向到非持久存储器装置;
将从所述持久存储器装置检索所述数据的请求传递到耦合到所述逻辑电路系统的管理程序;以及
将从所述持久存储器装置检索的所述数据发射到所述逻辑电路系统或经由所述接口发射到所述非持久存储器装置,或这两者;
其中所述方法进一步包括,在经由所述接口传递所述数据之前,致使经由将所述持久存储器装置耦合到所述逻辑电路系统的数据总线将所述数据从所述持久存储器装置检索到所述逻辑电路系统。
11.一种系统,其包括:
持久存储器装置,其具有驻留在其上的逻辑电路系统;以及
存储器管理电路系统,其耦合到所述持久存储器装置和所述逻辑电路系统;
其中所述逻辑电路系统被配置成:
响应于接收到从所述存储器管理电路系统重定向的将数据写入到所述持久存储器装置的请求而将将所述数据写入到所述持久存储器装置的请求传递到管理程序;
其中所述管理程序被配置成致使将与所述请求相关联的所述数据从所述逻辑电路系统写入到所述持久存储器装置;
接收从所述存储器管理电路系统重定向的从所述持久存储器装置检索所述数据的请求;
将从所述持久存储器装置检索所述数据的请求传递到所述管理程序;以及
向所述管理程序断言中断信号,作为所传递请求的一部分。
12.根据权利要求11所述的系统,其中所述管理程序被配置成响应于接收到所述所传递的请求致使从所述持久存储器装置检索所述数据且经由将所述持久存储器装置耦合到非持久存储器装置的接口将所述数据传递到所述非持久存储器装置。
13.根据权利要求11所述的系统,其中所述逻辑电路系统被配置成响应于接收到从所述持久存储器装置检索的所述数据,经由将所述持久存储器装置耦合到输入/输出(I/O)装置的接口将所述数据传递到所述I/O装置。
14.一种系统,其包括:
持久存储器装置,其具有驻留在其上的逻辑电路系统;以及
存储器管理电路系统,其耦合到所述持久存储器装置和所述逻辑电路系统;
其中所述逻辑电路系统被配置成:
响应于接收到从所述存储器管理电路系统重定向的将数据写入到所述持久存储器装置的请求而将将所述数据写入到所述持久存储器装置的请求传递到管理程序;以及
其中所述管理程序被配置成致使将与所述请求相关联的所述数据从所述逻辑电路系统写入到所述持久存储器装置,且
其中所述逻辑电路系统进一步被配置成:
从输入/输出(I/O)装置接收虚拟I/O装置存取信息;以及
将所述虚拟I/O装置存取信息传递到所述管理程序,作为将所述数据写入到所述持久存储器装置的所述请求的一部分。
15.根据权利要求14所述的系统,其中所述逻辑电路系统包括被配置成存储所述虚拟I/O装置存取信息的存储器单元阵列。
16.一种方法,其包括:
在驻留在持久存储器装置上的逻辑电路系统处经由接口接收从所述持久存储器装置检索数据的重定向请求,其中,在重定向之前,所述请求定向到非持久存储器装置;
将从所述持久存储器装置检索所述数据的请求传递到耦合到所述逻辑电路系统的管理程序;
将从所述持久存储器装置检索的所述数据发射到所述逻辑电路系统或经由所述接口发射到所述非持久存储器装置,或这两者;以及
经由将所述逻辑电路系统耦合到输入/输出(I/O)装置的接口将从所述持久存储器装置检索的所述数据传递到所述I/O装置。
17.一种方法,其包括:
在驻留在持久存储器装置上的逻辑电路系统处经由接口接收从所述持久存储器装置检索数据的重定向请求,其中,在重定向之前,所述请求定向到非持久存储器装置;
将从所述持久存储器装置检索所述数据的请求传递到耦合到所述逻辑电路系统的管理程序;
将从所述持久存储器装置检索的所述数据发射到所述逻辑电路系统或经由所述接口发射到所述非持久存储器装置,或这两者;以及
由所述逻辑电路系统基于接收到从所述持久存储器装置检索所述数据的所述请求使指示所述数据不可被所述非持久存储器装置存取的指示与所述数据相关联。
18.一种方法,其包括:
在驻留在持久存储器装置上的逻辑电路系统处经由接口接收从所述持久存储器装置检索数据的重定向请求,其中,在重定向之前,所述请求定向到非持久存储器装置;
将从所述持久存储器装置检索所述数据的请求传递到耦合到所述逻辑电路系统的管理程序;
将从所述持久存储器装置检索的所述数据发射到所述逻辑电路系统或经由所述接口发射到所述非持久存储器装置,或这两者
由所述逻辑电路系统响应于接收到所述请求生成对应于所述数据的逻辑地址;以及
将所述逻辑地址存储在所述逻辑电路系统内的地址寄存器中。
CN202080059065.7A 2019-08-22 2020-08-21 阶层式存储器系统 Active CN114258534B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US16/547,667 US11016903B2 (en) 2019-08-22 2019-08-22 Hierarchical memory systems
US16/547,667 2019-08-22
PCT/US2020/047334 WO2021035116A1 (en) 2019-08-22 2020-08-21 Hierarchical memory systems

Publications (2)

Publication Number Publication Date
CN114258534A CN114258534A (zh) 2022-03-29
CN114258534B true CN114258534B (zh) 2022-11-18

Family

ID=74647550

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202080059065.7A Active CN114258534B (zh) 2019-08-22 2020-08-21 阶层式存储器系统

Country Status (5)

Country Link
US (2) US11016903B2 (zh)
EP (1) EP4018323A4 (zh)
KR (1) KR102444562B1 (zh)
CN (1) CN114258534B (zh)
WO (1) WO2021035116A1 (zh)

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106575271A (zh) * 2014-06-23 2017-04-19 谷歌公司 管理存储设备
CN109388588A (zh) * 2017-08-07 2019-02-26 英特尔公司 用于高速缓存持久二级存储器数据的技术

Family Cites Families (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5537350A (en) 1993-09-10 1996-07-16 Intel Corporation Method and apparatus for sequential programming of the bits in a word of a flash EEPROM memory array
US6938144B2 (en) 2001-03-22 2005-08-30 Matsushita Electric Industrial Co., Ltd. Address conversion unit for memory device
US8286162B2 (en) 2005-12-30 2012-10-09 Intel Corporation Delivering interrupts directly to a virtual processor
US7613876B2 (en) 2006-06-08 2009-11-03 Bitmicro Networks, Inc. Hybrid multi-tiered caching storage system
US7930513B2 (en) 2006-11-04 2011-04-19 Virident Systems Inc. Writing to asymmetric memory
EP2433217B1 (en) 2009-05-19 2019-10-16 VMware, Inc. Shortcut input/output in virtual machine systems
KR101081907B1 (ko) 2010-01-05 2011-11-09 성균관대학교산학협력단 가상화 장치
US20120047313A1 (en) 2010-08-19 2012-02-23 Microsoft Corporation Hierarchical memory management in virtualized systems for non-volatile memory models
US8892802B2 (en) 2012-01-01 2014-11-18 International Business Machines Corporation Enhancing interrupt handling in a virtual environment
US20150261686A1 (en) 2014-03-14 2015-09-17 Qualcomm Incorporated Systems and methods for supporting demand paging for subsystems in a portable computing environment with restricted memory resources
US9921750B2 (en) * 2014-11-20 2018-03-20 Samsung Electronics Co., Ltd. Solid state drive (SSD) memory cache occupancy prediction
US10417031B2 (en) * 2015-03-31 2019-09-17 Fireeye, Inc. Selective virtualization for security threat detection
US9720846B2 (en) * 2015-05-28 2017-08-01 Red Hat Israel, Ltd. Memory swap for direct memory access by a device assigned to a guest operating system
US10089320B2 (en) * 2015-07-31 2018-10-02 Hiveio Inc. Method and apparatus for maintaining data consistency in an in-place-update file system with data deduplication
US20170220592A1 (en) 2016-02-01 2017-08-03 Microsoft Technology Licensing, Llc Modular data operations system
US10204053B2 (en) * 2016-09-30 2019-02-12 Oracle International Corporation Modeling processor shared memory using a cacheability status
US11030132B2 (en) 2018-02-05 2021-06-08 Micron Technology, Inc. Synchronous memory bus access to storage media
US10635598B2 (en) 2018-03-30 2020-04-28 Intel Corporation Memory-addressed maps for persistent storage device

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106575271A (zh) * 2014-06-23 2017-04-19 谷歌公司 管理存储设备
CN109388588A (zh) * 2017-08-07 2019-02-26 英特尔公司 用于高速缓存持久二级存储器数据的技术

Also Published As

Publication number Publication date
US20210056040A1 (en) 2021-02-25
US20210248083A1 (en) 2021-08-12
WO2021035116A1 (en) 2021-02-25
KR102444562B1 (ko) 2022-09-20
EP4018323A1 (en) 2022-06-29
US11016903B2 (en) 2021-05-25
KR20220044606A (ko) 2022-04-08
US11537525B2 (en) 2022-12-27
EP4018323A4 (en) 2023-09-20
CN114258534A (zh) 2022-03-29

Similar Documents

Publication Publication Date Title
US20230072589A1 (en) Hierarchical memory systems
CN114341816A (zh) 三层层次型存储器系统
CN114258528A (zh) 阶层式存储器设备
CN114341817A (zh) 分层存储器系统
CN114258534B (zh) 阶层式存储器系统
CN114341818B (zh) 分级存储器设备
CN114303124B (zh) 分级存储器设备
US11614894B2 (en) Hierarchical memory systems
US11106595B2 (en) Hierarchical memory systems
CN114270442A (zh) 层次型存储器系统

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant