CN114303124A - 分级存储器设备 - Google Patents
分级存储器设备 Download PDFInfo
- Publication number
- CN114303124A CN114303124A CN202080059330.1A CN202080059330A CN114303124A CN 114303124 A CN114303124 A CN 114303124A CN 202080059330 A CN202080059330 A CN 202080059330A CN 114303124 A CN114303124 A CN 114303124A
- Authority
- CN
- China
- Prior art keywords
- data
- memory device
- request
- persistent memory
- memory
- 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.)
- Granted
Links
- 230000015654 memory Effects 0.000 claims abstract description 257
- 230000002085 persistent effect Effects 0.000 claims abstract description 239
- 238000000034 method Methods 0.000 claims abstract description 38
- 239000000872 buffer Substances 0.000 claims description 40
- 230000004044 response Effects 0.000 claims description 39
- 230000011664 signaling Effects 0.000 claims description 15
- 238000003860 storage Methods 0.000 abstract description 38
- 238000013459 approach Methods 0.000 abstract description 9
- 238000007726 management method Methods 0.000 description 49
- 238000012546 transfer Methods 0.000 description 25
- 238000010586 diagram Methods 0.000 description 12
- 230000008859 change Effects 0.000 description 6
- 230000006399 behavior Effects 0.000 description 5
- 238000003491 array Methods 0.000 description 4
- 238000013507 mapping Methods 0.000 description 4
- 238000004891 communication Methods 0.000 description 3
- 230000014759 maintenance of location Effects 0.000 description 3
- 238000012545 processing Methods 0.000 description 3
- 230000003139 buffering effect Effects 0.000 description 2
- 238000013500 data storage Methods 0.000 description 2
- 238000012432 intermediate storage Methods 0.000 description 2
- 239000002184 metal Substances 0.000 description 2
- 230000002093 peripheral effect Effects 0.000 description 2
- 230000008569 process Effects 0.000 description 2
- 239000004065 semiconductor Substances 0.000 description 2
- 239000007787 solid Substances 0.000 description 2
- 230000003068 static effect Effects 0.000 description 2
- 101100004179 Schizophyllum commune BAR2 gene Proteins 0.000 description 1
- 230000006978 adaptation Effects 0.000 description 1
- 150000004770 chalcogenides Chemical class 0.000 description 1
- 238000010924 continuous production Methods 0.000 description 1
- 238000012937 correction Methods 0.000 description 1
- 230000008878 coupling Effects 0.000 description 1
- 238000010168 coupling process Methods 0.000 description 1
- 238000005859 coupling reaction Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 238000011065 in-situ storage Methods 0.000 description 1
- 239000000463 material Substances 0.000 description 1
- 238000009877 rendering Methods 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
- 238000013519 translation Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/023—Free address space management
- G06F12/0238—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
- G06F12/0246—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0604—Improving or facilitating administration, e.g. storage management
- G06F3/0607—Improving or facilitating administration, e.g. storage management by facilitating the process of upgrading existing storage systems, e.g. for improving compatibility between host and storage device
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/062—Securing storage systems
- G06F3/0623—Securing storage systems in relation to content
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
- G06F3/0656—Data buffering arrangements
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0673—Single storage device
- G06F3/0679—Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30098—Register arrangements
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/72—Details relating to flash memory management
- G06F2212/7201—Logical to physical mapping or translation of blocks or pages
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Human Computer Interaction (AREA)
- Software Systems (AREA)
- Storage Device Security (AREA)
- Memory System Of A Hierarchy Structure (AREA)
Abstract
本文描述了与分级存储器相关的系统、设备和方法。分级存储器可以利用持久性存储器来存储通常存储在非持久性存储器中的数据,从而以比仅依赖于非持久性存储器的方法更低的成本增加分配给计算系统的存储空间量。分级存储器可以包含地址寄存器,其被配置成存储与持久性存储器装置中存储的数据相对应的地址;和电路系统,其被配置成从存储器管理电路系统接收存取所述持久性存储器装置中存储的所述数据的一部分的请求,使用所述寄存器确定与所述数据的所述部分相对应的地址,生成存取所述数据的所述部分的另一个请求,并且将所述另一个请求发送到所述持久性存储器装置以存取所述数据的所述部分。
Description
技术领域
本公开一般涉及半导体存储器和方法,并且更具体地涉及一种分级存储器设备。
背景技术
存储器装置通常被提供为计算机或其它电子系统中的内部、半导体、集成电路。存在许多不同类型的存储器,包含易失性和非易失性存储器。易失性存储器可能需要电力来维护其数据(例如,主机数据、错误数据等),并且包含随机存取存储器(RAM)、动态随机存取存储器(DRAM)、静态随机存取存储器(SRAM)和同步动态随机存储器存取存储器(SDRAM)等等。非易失性存储器可以通过在未被供电时保存所存储数据来提供持久性数据,并且可以包含NAND闪速存储器、NOR闪速存储器及电阻可变存储器,例如相变随机存取存储器(PCRAM)、电阻式随机存取存储器(RRAM)及磁阻式随机存取存储器(MRAM),例如自旋力矩转移随机存取存储器(STT RAM)等等。
存储器装置可以耦合到主机(例如,主机计算装置)以存储数据、命令和/或指令以在计算机或电子系统操作时供主机使用。例如,数据、命令和/或指令可以在计算或其它电子系统的操作期间在主机与存储器装置之间转移。
附图说明
图1是根据本公开的多个实施例的分级存储器设备的功能框图。
图2是根据本公开的多个实施例的分级存储器设备的功能框图。
图3是根据本公开的多个实施例的包含分级存储器设备的计算系统的形式的功能框图。
图4是根据本公开的多个实施例的包含分级存储器设备的计算系统的形式的另一个功能框图。
图5是根据本公开的多个实施例的表示用于分级存储器设备的示范性方法的流程图。
图6是根据本公开的多个实施例的表示用于分级存储器设备的示范性方法的另一个流程图。
具体实施方式
本文描述了一种分级存储器设备。根据本公开的分级存储器设备可以是分级存储器系统的一部分,其可以利用持久性存储器来存储通常存储在非持久性存储器中的数据,从而以比仅依赖于非持久性存储器的方法更低的成本增加分配给计算系统的存储空间量。一种示范性设备包含地址寄存器,其被配置成存储与持久性存储器装置中存储的数据相对应的地址,其中每个相应地址对应于所述持久性存储器装置中存储的所述数据的不同部分;和电路系统,其被配置成:经由接口从存储器管理电路系统接收存取所述持久性存储器装置中存储的所述数据的一部分的第一请求;响应于接收所述第一请求,使用所述寄存器确定与所述数据的所述部分相对应的地址;响应于接收所述第一请求,生成存取所述数据的所述部分的第二请求,其中所述第二请求包含所确定的地址;并且将所述第二请求发送到所述持久性存储器装置以存取所述数据的所述部分。
计算系统在操作期间利用各种类型的存储器资源。例如,计算系统可以在操作期间利用易失性(例如,随机存取存储器)存储器资源和非易失性(例如,存储)存储器资源的组合。一般来说,易失性存储器资源可以以比非易失性存储器资源快得多的速度操作,并且可以具有比非易失性存储器资源更长的寿命;然而,易失性存储器资源通常比非易失性存储器资源更昂贵。如本文使用,易失性存储器资源在替代方案中可以被称为“非持久性存储器装置”,而非易失性存储器资源在替代方案中可以被称为“持久性存储器装置”。
然而,持久性存储器装置可以更广泛地指代以持久性方式存取数据的能力。作为一个实例,在持久性存储器的上下文中,存储器装置可以将复数个逻辑到物理映射或转换数据和/或查找表存储在存储器阵列中,以便跟踪存储器装置中的数据的位置,无论存储器是否是非易失性的。此外,持久性存储器装置可以指代存储器的非易失性,还有通过包含服务于用于连续过程的命令(例如,通过使用逻辑到物理映射、查找表等)的能力来使用所述非易失性。
这些特性可能需要在计算系统中进行权衡,以便为计算系统提供足够的资源以根据消费者和计算资源提供商的不断增长的需求来运行。例如,在多用户计算网络(例如,基于云的计算系统部署、软件定义的数据中心等)中,可以提供相对大量的易失性存储器来提供在多用户网络中运行的虚拟机。然而,如在一些方法中所常见,通过依赖易失性存储器来为多用户网络提供存储器资源,与为网络提供存储器资源相关联的成本可能会增加,尤其是当网络的用户要求越来越大的计算资源池可供使用时。
此外,在依赖易失性存储器来提供存储器资源以在多用户网络中提供虚拟机的方法中,一旦易失性存储器资源用尽(例如,一旦易失性存储器资源被分配给多用户网络的用户),在额外的易失性存储器资源可供使用或添加之前,可能无法将额外的用户添加到多用户网络。这可能会导致潜在用户被拒之门外,从而可能在多用户网络本可使用额外的存储器资源的情况下造成了收入损失。
易失性存储器资源,例如动态随机存取存储器(DRAM)往往以确定性方式操作,而非易失性存储器资源,例如存储级存储器(例如,NAND闪速存储器装置、固态驱动器、电阻可变存储器装置等)往往以非确定性方式操作。例如,由于对从存储级存储器装置检索的数据进行的纠错操作、加密操作、RAID操作等,从存储级存储器装置请求数据和数据变得可用之间的时间量可能在每次读取时都有所不同,从而使从存储级存储器装置检索数据具有非确定性。相比之下,从DRAM装置请求数据和数据变得可用之间的时间量可能在每次读取时都保持固定,从而使从DRAM装置检索数据具有确定性。
此外,由于易失性存储器资源的确定性行为和非易失性存储器资源的非确定性行为之间的区别,转移到存储器资源和从其转移的数据通常要经过与所使用的存储器类型相关联的特定接口(例如,总线)。例如,转移到DRAM装置和从其转移的数据通常经由双倍数据速率(DDR)总线传递,而转移到NAND装置和从其转移的数据通常经由外围组件互连快速(PCI-e)总线传递。然而,如将理解,数据可以转移到易失性存储器资源和非易失性存储器资源和从其转移所通过的接口的实例不限于这些具体列举的实例。
由于非易失性存储器装置和易失性存储器装置的不同行为,一些方法选择将某些类型的数据存储在易失性或非易失性存储器中。这可以减轻由于例如易失性存储器装置的确定性行为相较于非易失性存储器装置的非确定性行为而可能出现的问题。例如,在一些方法中,计算系统将在计算系统的操作期间定期存取的少量数据存储在易失性存储器装置中,而较大或不太频繁存取的数据存储在非易失性存储器装置中。然而,在多用户网络部署中,绝大多数数据可能存储在易失性存储器装置中。相比之下,本文的实施例可以允许从多用户网络中部署的非易失性存储器装置进行数据存储和检索。
如本文所述,在其它方法中,本公开的一些实施例涉及计算系统,其中来自非易失性和因此非确定性存储器资源的数据经由被限制为由易失性和确定性存储器资源使用的接口传递。例如,在一些实施例中,数据可以经由如DDR接口等接口转移到非易失性、非确定性存储器资源和从其转移,所述存储器资源例如NAND闪速存储器装置、电阻可变存储器装置,例如相变存储器装置和/或电阻式存储器装置(例如,三维交叉点(3DXP)存储器装置)、固态驱动器(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的功能框图,分级存储器设备104可以是计算系统的一部分,如将在本文中进一步描述。如本文使用,“设备”可以指代但不限于多种结构或结构组合中的任何一种,例如电路或电路系统、一或多个管芯、一或多个模块、一或多个装置或一或多个系统。在一些实施例中,分级存储器设备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处理的数据。例如,与对分级存储器设备104外部的存储器(例如,持久性存储器)进行感测(例如,读取)操作相关联(例如,在其期间和/或作为其一部分),读取缓冲器可以存储已被分级存储器设备104接收的数据。在一些实施例中,读取缓冲器103的大小可以在4千字节(KB)左右,但实施例不限于此特定大小。读取缓冲器103可以缓冲待寄存在地址寄存器106-1到106-N中的一个中的数据。
写入缓冲器105可以包含存储器资源102的一部分,其被保留用于存储等待传输到分级存储器设备104外部的位置的数据。例如,与对外部存储器进行编程(例如,写入)操作相关联,写入缓冲器可以存储应传输到分级存储器设备104外部的存储器(例如,持久性存储器)的数据。在一些实施例中,写入缓冲器105的大小可以在4千字节(KB)左右,但实施例不限于此特定大小。写入缓冲器103可以缓冲寄存在地址寄存器106-1到106-N中的一个中的数据。
I/O存取组件107可以包含存储器资源102的一部分,其被保留用于存储与存取分级存储器设备104外部的组件(例如,本文的图3和4中示出的I/O装置310/410)相对应的数据。I/O存取组件107可以存储与I/O装置的地址相对应的数据,所述地址可以用于向和从I/O装置读取和/或写入数据。此外,在一些实施例中,I/O存取组件107可以接收、存储和/或传输与管理程序(例如,图4中示出的管理程序412)的状态相对应的数据,如结合本文的图4所更详细描述。
分级存储器设备104可以进一步包含存储器存取多路复用器(MUX)109、状态机111和/或分级存储器控制器113(或简称“控制器”)。如图1中所示,分级存储器控制器113可以包含复数个地址寄存器106-1到106-N和/或中断组件115。存储器存取MUX 109可以包含电路系统,所述电路系统可以包括一或多个逻辑门并且可以被配置成控制分级存储器设备104的数据和/或地址总线连接。例如,存储器存取MUX 109可以将消息转移到存储器资源102和从其转移消息,以及与分级存储器控制器113和/或状态机111通信,如下面所更详细描述。
在一些实施例中,MUX 109可以将所接收的来自主机(例如,主机计算装置、虚拟机等)的传入消息和/或命令重定向到分级存储器设备104。例如,MUX 109可以将与输入/输出(I/O)装置(例如,本文的图3和4中示出的I/O装置310/410)对地址寄存器中的一个(例如,地址寄存器106-N,其可以是分级存储器控制器113的BAR4区域,如下所述)的存取(例如,读取)或编程(例如,写入)请求相对应的传入消息重定向到读取缓冲器103和/或写入缓冲器105。
此外,MUX 109可以重定向由分级存储器设备104接收的请求(例如,读取请求、写入请求)。在一些实施例中,请求可以由分级存储器设备104从管理程序(例如,本文的图4中示出的管理程序412)、裸金属服务器、或通信地耦合到分级存储器设备104的主机计算装置接收。此类请求可以由MUX 109从读取缓冲器103、写入缓冲器105和/或I/O存取组件107重定向到地址寄存器(例如,地址寄存器106-2,其可以是分级存储器控制器113的BAR2区域,如下所述)。
MUX 109可以重定向此类请求作为操作的一部分,以确定待存取的地址寄存器106中的地址。在一些实施例中,MUX 109可以重定向此类请求作为操作的一部分,以确定待响应于管理程序中断的断言(例如,向耦合到分级存储器设备104的管理程序断言的中断,其由中断组件115生成)而存取的地址寄存器中的地址。
响应于确定所述请求对应于与地址相关联的数据被写入分级存储器设备104外部的位置(例如,写入持久性存储器装置,例如本文的图3和4中示出的持久性存储器装置316/416),MUX 109可以促进数据检索、将数据转移到写入缓冲器105和/或将数据转移到分级存储器设备104外部的位置。响应于确定所述请求对应于数据被从分级存储器设备104外部的位置(例如,从持久性存储器装置)读取,MUX 109可以促进数据检索、将数据转移到读取缓冲器103,和/或将数据或与数据相关联的地址信息转移到分级存储器设备104内部的位置,例如地址寄存器106。
作为一个非限制性实例,如果分级存储器设备104从I/O装置接收读取请求,则MUX109可以通过选择待从分级存储器设备104发送的适当消息来促进经由管理程序从持久性存储器装置检索数据。例如,MUX 109可以促进使用中断组件115生成中断,使中断在管理程序上断言,将从持久性存储器装置接收的数据缓冲到读取缓冲器103中,和/或以读取请求已满足的指示对I/O装置作出响应。在分级存储器设备104从I/O装置接收写入请求的一个非限制性实例中,MUX 109可以通过选择待从分级存储器设备104发送的适当消息来促进经由管理程序将数据转移到持久性存储器装置。例如,MUX 109可以促进使用中断组件115生成中断,使中断在管理程序上断言,将待转移到持久性存储器装置的数据缓冲到写入缓冲器105中,和/或以写入请求已满足的指示对I/O装置作出响应。分别响应于接收读取和写入请求而进行这种数据检索和转移的实例将在本文中进一步描述。
状态机111可以包含一或多个处理装置、电路组件和/或被配置成对输入进行操作并产生输出的逻辑。在一些实施例中,状态机111可以是有限状态机(FSM)或硬件状态机,其可以被配置成接收变化的输入并基于所接收的输入产生所得输出。例如,状态机111可以向和从存储器存取多路复用器109转移存取信息(例如,“I/O ACCESS INFO”),以及向和从分级存储器控制器113转移中断配置信息(例如,“INTERRUPT CONFIG”)和/或中断请求消息(例如,“INTERRUPT REQUEST”)。在一些实施例中,状态机111可以进一步向和从存储器存取多路复用器109转移控制消息(例如,“MUX CTRL”)。
ACCESS INFO消息可以包含与从分级存储器设备104外部的I/O装置接收的数据存取请求相对应的信息。在一些实施例中,ACCESS INFO可以包含与待存储在持久性存储器装置中的数据相对应的逻辑寻址信息或与待从持久性存储器装置检索的数据相对应的寻址信息。
INTERRUPT CONFIG消息可以由分级存储器控制器113上的状态机111断言,以将适当的中断消息配置成在分级存储器设备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可以是可以存储由分级存储器设备104或计算系统(例如,本文的图3和4中示出的计算系统301/401)使用的存储器地址的基地址寄存器(BAR)。地址寄存器中的至少一个(例如,地址寄存器106-1)可以存储提供从诸如图4中示出的管理程序412的外部位置对分级存储器设备104的内部寄存器的存取的存储器地址。
不同的地址寄存器(例如,地址寄存器106-2)可以用于存储与中断控制相对应的地址,如本文所更详细描述。在一些实施例中,地址寄存器106-2可以映射直接存储器存取(DMA)读取和DMA写入控制和/或状态寄存器。例如,地址寄存器106-2可以包含与用于DMA命令链的描述符和/或控制位相对应的地址,所述命令链可以包含一或多个中断消息的生成,所述中断消息可以向管理程序断言作为分级存储器系统的操作的一部分,如结合本文的图4所描述。
地址寄存器中的又一个(例如,地址寄存器106-3)可以存储与对和从管理程序(例如,本文的图4中示出的管理程序412)的存取相对应的地址。在一些实施例中,可以经由与分级存储器设备104相关联的高级可扩展接口(AXI)DMA来提供对和/或从管理程序的存取。在一些实施例中,地址寄存器可以将与经由分级存储器设备104的DMA(例如,AXI DMA)转移的数据相对应的地址映射到分级存储器设备104外部的位置。
在一些实施例中,至少一个地址寄存器(例如,地址寄存器106-N)可以存储与I/O装置(例如,图3/4中示出的I/O装置310/410)存取信息(对分级存储器设备104的存取)相对应的地址。地址寄存器106-N可以存储被与分级存储器设备104相关联的DMA组件绕过的地址。地址寄存器106-N可以被提供为使得映射到其的地址不被分级存储器设备104的物理存储器位置“备份”。也就是说,在一些实施例中,分级存储器设备104可以配置有地址空间,所述地址空间存储与持久性存储器装置和持久性存储器装置(例如,图3/4中示出的持久性存储器装置316/416)中存储的数据相对应而不与由分级存储器设备104存储的数据相对应的地址(例如,逻辑地址)。每个相应的地址可以对应于持久性存储器装置中的不同位置和/或持久性存储器装置中存储的数据的不同部分的位置。例如,地址寄存器106-N可以被配置为虚拟地址空间,所述虚拟地址空间可以存储与数据可能被编程到或存储数据的物理存储器位置(例如,存储器装置中)相对应的逻辑地址。
在一些实施例中,地址寄存器106-N可以包含与存储器装置(例如,本文的图3和4中示出的持久性存储器装置316/416)的大小相对应的数量的地址空间。例如,如果存储器装置含有1太字节的存储,则地址寄存器106-N可以被配置成具有可以包含1太字节地址空间的地址空间。然而,如上所述,地址寄存器106-N实际上并不包含1太字节的存储,但却被配置成看起来具有1太字节存储空间。
作为一个实例,分级存储器设备104(例如,MUX 109和/或状态机111)可以接收存取(例如,读取)持久性存储器装置中存储的数据的一部分的第一请求。在一些实施例中,持久性存储器装置可以在分级存储器设备104的外部。例如,持久性存储器装置可以是图3/4中示出的持久性存储器装置316/416。然而,在一些实施例中,持久性存储器装置可以包含在分级存储器设备104中(例如,在其内部)。
分级存储器设备104可以例如经由接口从存储器管理电路系统(例如,经由接口308/408从存储器管理电路系统314/414,如本文的图3和4中所示)接收第一请求。例如,第一请求可以是来自I/O装置(例如,本文的图3和4中示出的I/O装置310/410)的重定向请求。
响应于接收第一请求,分级存储器设备104可以使用地址寄存器106-N来确定与所述数据部分相对应的持久性存储器装置中的地址(例如,所述数据在持久性存储器装置中的位置)。例如,MUX 109和/或状态机111可以存取寄存器106-N以从寄存器106-N检索(例如,捕捉)地址。分级存储器设备104(例如,MUX 109和/或状态机111)还可以响应于接收第一请求而检测对I/O装置的存取,并且接收(例如,捕捉)与来自从I/O装置的第一请求相对应的I/O装置存取信息,包含例如虚拟I/O装置存取信息。I/O装置存取信息可以存储在寄存器106-N和/或I/O存取组件107中(例如,虚拟I/O装置存取信息可以存储在I/O存取组件107中)。此外,在一些实施例中,分级存储器设备104可以将指示所述数据部分不可由非持久性存储器装置(例如,本文的图3和4中示出的非持久性存储器装置330/430)存取的信息与所述数据部分相关联。
然后,分级存储器设备104(例如,MUX 109和/或状态机111)可以生成存取(例如,读取)所述数据部分的第二请求。第二请求可以包含被确定为对应于所述数据的持久性存储器装置中的地址(例如,指示所述数据在持久性存储器装置中的位置的地址)。与第二请求一起,分级存储器设备104还可以使用地址寄存器106-2生成中断信号(例如,消息)。例如,MUX 109和/或状态机111可以通过存取地址寄存器102和使用中断组件115来生成中断信号。
然后,分级存储器设备104(例如,MUX 109和/或状态机111)可以将中断信号和存取所述数据的所述部分的第二请求发送到持久性存储器装置。例如,中断信号可以作为第二请求的一部分发送。在持久性存储器装置在分级存储器设备104外部的实施例中,中断信号和第二请求可以经由通过其接收第一请求的接口(例如,经由本文的图3和4中示出的接口308/408)发送。作为一个附加实例,在持久性存储器装置包含在分级存储器设备104中的实施例中,中断信号可以经由接口发送,而第二请求可以直接发送到持久性存储器装置。此外,分级存储器设备104还可以经由接口发送来自寄存器106-N的I/O装置存取信息和/或来自I/O存取组件107的虚拟I/O装置存取信息作为第二请求的一部分。
在发送中断信号和第二请求之后,分级存储器设备104可以从持久性存储器装置接收(例如,从其读取)所述数据的所述部分。例如,在持久性存储器装置在分级存储器设备104外部的实施例中,可以经由接口从持久性存储器装置接收数据,并且在持久性存储器装置包含在分级存储器设备104中的实施例中,可以直接从持久性存储器装置接收数据。在接收所述数据的所述部分之后,分级存储器设备104可以将所述数据发送到I/O装置(例如,本文的图3和4中示出的I/O装置310/410)。此外,分级存储器设备104可以将所述数据存储在读取缓冲器103中(例如,在将所述数据发送到I/O装置之前)。
作为一个附加实例,分级存储器设备104(例如,MUX 109和/或状态机111)可以接收将数据编程(例如,写入)到持久性存储器装置的第一请求。例如,所述请求可以以类似于本文先前描述的第一存取请求的方式经由接口从存储器管理电路系统(例如,经由接口308/408从存储器管理电路系统314/414,如本文的图3和4中所示)接收,并且可以是来自I/O装置(例如,本文的图3和4中示出的I/O装置310/410)的重定向请求。待被编程到持久性存储器装置的数据可以存储在写入缓冲器105中(例如,在被发送到持久性存储器装置以被编程之前)。
响应于接收第一请求,分级存储器设备104可以使用地址寄存器106-N确定与数据相对应的持久性存储器装置中的地址(例如,数据应被编程到的持久性存储器装置中的位置)。例如,MUX 109和/或状态机111可以存取寄存器106-N以从寄存器106-N检索(例如,捕捉)地址。分级存储器设备104(例如,MUX 109和/或状态机111)还可以响应于接收第一请求而检测对I/O装置的存取,并且接收(例如,捕捉)与来自I/O装置的第一请求相对应的I/O装置存取信息,包含例如虚拟I/O装置存取信息。I/O装置存取信息可以存储在寄存器106-N和/或I/O存取组件107中(例如,虚拟I/O装置存取信息可以存储在I/O存取组件107中)。此外,在一些实施例中,分级存储器设备104可以响应于接收第一请求而将指示所述数据不可由非持久性存储器装置(例如,本文的图3和4中示出的非持久性存储器装置330/430)存取的信息与所述数据相关联。
然后,分级存储器设备104(例如,MUX 109和/或状态机111)可以生成将所述数据编程(例如,写入)到持久性存储器装置的第二请求。第二请求可以包含待被编程到持久性存储器装置的数据,以及被确定为对应于所述数据的持久性存储器装置中的地址(例如,数据应被编程到的地址)。与第二请求一起,分级存储器设备104还可以以类似于先前针对第二存取请求所描述的方式使用地址寄存器106-2来生成中断信号(例如,消息)。
然后,分级存储器设备104(例如,MUX 109和/或状态机111)可以将中断信号和编程数据的第二请求发送到持久性存储器装置。例如,中断信号可以作为第二请求的一部分发送。在持久性存储器装置在分级存储器设备104外部的实施例中,中断信号和第二请求可以经由通过其接收第一请求的接口(例如,经由本文的图3和4中示出的接口308/408)发送。作为一个附加实例,在持久性存储器装置包含在分级存储器设备104中的实施例中,中断信号可以经由接口发送,而第二请求可以直接发送到持久性存储器装置。此外,分级存储器设备104还可以经由接口发送来自寄存器106-N的I/O装置存取信息和/或来自I/O存取组件107的虚拟I/O装置存取信息作为第二请求的一部分。
尽管未在图1中明确示出,但分级存储器设备104可以耦合到主机计算系统。主机计算系统可以包含系统主板和/或背板,并且可以包含多个处理资源(例如,一或多个处理器、微处理器或一些其它类型的控制电路系统)。主机和分级存储器设备104例如可以是服务器系统和/或高性能计算(HPC)系统和/或其一部分。在一些实施例中,计算系统可以具有冯诺依曼架构,然而,本公开的实施例可以以非冯诺依曼架构实施,其通常可以不包含通常与冯诺依曼架构相关联的一或多个组件(例如,CPU、ALU等)。
图2是根据本公开的多个实施例的分级存储器设备204的功能框图。分级存储器设备204可以是计算系统的一部分,和/或可以以类似于先前结合图1描述的分级存储器设备104的方式提供为FPGA、ASIC、多个分立电路组件等。
如图2中所示,分级存储器设备204可以包含存储器资源202,其可以包含数据缓冲器218和/或输入/输出(I/O)装置存取组件207。存储器资源202可以类似于先前结合图1描述的存储器资源102,只是数据缓冲器218可以代替读取缓冲器103和写入缓冲器105。例如,先前结合读取缓冲器103和写入缓冲器105描述的功能可以组合到数据缓冲器218的的功能中。在一些实施例中,数据缓冲器218的大小可以在4KB左右,但实施例不限于此特定大小。
分级存储器设备104可以进一步包含存储器存取多路复用器(MUX)109、状态机111和/或分级存储器控制器113(或简称“控制器”)。如图1中所示,分级存储器控制器113可以包含复数个地址寄存器106-1到106-N和/或中断组件115。存储器存取MUX 109可以包含电路系统,所述电路系统可以包括一或多个逻辑门并且可以被配置成控制分级存储器设备104的数据和/或地址总线连接。例如,存储器存取MUX 109可以将消息转移到存储器资源102和从其转移消息,以及与分级存储器控制器113和/或状态机111通信,如下面所更详细描述。
分级存储器设备204可以进一步包含存储器存取多路复用器(MUX)209、状态机211和/或分级存储器控制器213(或简称“控制器”)。如图1中所示,分级存储器控制器113可以包含复数个地址寄存器206-1到206-N和/或中断组件115。
存储器存取MUX 209可以包含类似于先前结合图1描述的MUX 109的电路系统,并且可以似于先前针对MUX 109所描述的方式重定向由分级存储器设备204接收(例如,从主机、I/O装置或管理程序)的传入消息、命令和/或请求(例如,读取和/或写入请求)。例如,MUX 209可以重定向此类请求作为操作的一部分,以确定待存取的地址寄存器106中的地址,如先前结合图1所描述。例如,响应于确定所述请求对应于与地址相关联的数据被写入分级存储器设备204外部的位置,MUX 209可以促进数据检索、将数据转移到数据缓冲器218和/或将数据转移到分级存储器设备204外部的位置,如先前结合图1所描述。此外,响应于确定所述请求对应于数据被从分级存储器设备204外部的位置读取,MUX 209可以促进数据检索、将数据转移到数据缓冲器218和/或将数据或与数据相关联的地址信息转移到分级存储器设备204内部的位置,例如地址寄存器206,如先前结合图1所描述。
状态机211可以以类似于先前结合图1描述的状态机111的方式包含一或多个处理装置、电路组件和/或被配置成对输入进行操作并产生输出的逻辑。例如,状态机211可以向和从存储器存取多路复用器209转移存取信息(例如,“I/O ACCESS INFO”)和控制消息(例如,“MUX CTRL”),以及向和从分级存储器控制器213转移中断请求消息(例如,“INTERRUPTREQUEST”),如先前结合图1所描述。然而,与状态机111相比,应注意,状态机211可能不向和从控制器213转移中断配置信息(例如,“INTERRUPT CONFIG”)。
分级存储器控制器213可以以类似于先前结合图1描述的控制器113的方式包含核心。在一些实施例中,分级存储器控制器213可以以类似于控制器113的方式是PCIe核心。
分级存储器控制器213可以包含地址寄存器206-1到206-N和/或中断组件215。地址寄存器206-1到206-N可以是可以存储由分级存储器设备204或计算系统(例如,本文的图3和4中示出的计算系统301/401)使用的存储器地址的基地址寄存器(BAR)。
地址寄存器中的至少一个(例如,地址寄存器206-1)可以以类似于先前结合图1描述的地址寄存器106-1的方式存储提供从诸如图4中示出的管理程序412的外部位置对分级存储器设备204的内部寄存器的存取的存储器地址。地址寄存器中的又一个(例如,地址寄存器206-2)可以以类似于先前结合图1描述的地址寄存器106-3的方式存储与对和从管理程序的存取相对应的地址。此外,至少一个地址寄存器(例如,地址寄存器206-N)可以以类似于先前结合图1描述的地址寄存器106-N的方式存储地址并包含地址空间。然而,与控制器113相比,应注意,控制器213可能不包含类似于如结合图1描述的可以存储与中断控制相对应的地址并映射DMA读取和DMA写入控制和/或状态寄存器的地址寄存器106-2的地址寄存器。
如图2中所示(并且与分级存储器设备104相比),分级存储器设备204可以包含清除中断寄存器222和管理程序完成寄存器224。清除中断寄存器222可以存储由中断组件215生成的中断信号作为读取或写入数据的请求的一部分,如本文先前所述;并且管理程序完成寄存器224可以(例如,向状态机211)提供管理程序(例如,图4中示出的管理程序412)正在存取分级存储器设备204的内部寄存器的指示,以映射待读取或写入数据的地址,如本文先前所述。一旦读取或写入请求已经完成,中断信号可以从寄存器222清除,并且寄存器224可以(例如,向状态机211)提供管理程序不再存取分级存储器设备204的内部寄存器的指示。
如图2中所示(并且与分级存储器设备104相比),分级存储器设备204可以包含存取保持组件226。存取保持组件226可以限制地址寄存器206-N的地址空间。例如,存取保持组件226可以将地址寄存器206-N的地址限制为低于4k。
尽管未在图2中明确示出,但分级存储器设备204可以以类似于针对分级存储器设备104所描述的方式耦合到主机计算系统。主机和分级存储器设备204可以例如是服务器系统和/或高性能计算(HPC)系统和/或其一部分,如结合图1所描述。
图3是根据本公开的多个实施例的包含分级存储器设备304的计算系统301的形式的功能框图。分级存储器设备304可以类似于分别在图1和2中示出的分级存储器设备104和/或204。此外,计算系统201可以包含输入/输出(I/O)装置310、持久性存储器装置316、非持久性存储器装置330、中间存储器组件320和存储器管理组件314。分级存储器设备304、I/O装置310和持久性存储器装置316、非持久性存储器装置230和存储器管理组件314之间的通信可以经由接口308促进。
I/O装置310可以是被配置成经由物理地址和/或虚拟机物理地址提供直接存储器存取的装置。在一些实施例中,I/O装置310可以是网络接口卡(NIC)或网络接口控制器、存储装置、图形渲染装置或其它I/O装置。I/O装置310可以是物理I/O装置,或者I/O装置310可以是虚拟化I/O装置310。例如,在一些实施例中,I/O装置310可以是物理卡,其经由诸如PCIe接口或其它合适接口的总线或接口物理地耦合到计算系统。在I/O装置310是虚拟化I/O装置310的实施例中,虚拟化I/O装置310可以以分布式方式提供I/O功能。
持久性存储器装置316可以包含多个存储器单元阵列。例如,阵列可以是具有NAND架构的闪存阵列。然而,实施例不限于特定类型的存储器阵列或阵列架构。存储器单元可以例如分组成包含多个物理页的多个块。多个块可以包含于存储器单元的平面中,并且阵列可以包含多个平面。
持久性存储器装置316可以包含易失性存储器和/或非易失性存储器。在多个实施例中,持久性存储器装置316可以包含多芯片装置。多芯片装置可以包含多个不同的存储器类型和/或存储器模块。例如,存储器系统可以包含任何类型的模块上的非易失性或易失性存储器。在持久性存储器装置316包含非易失性存储器的实施例中,持久性存储器装置316可以是闪速存储器装置,例如NAND或NOR闪速存储器装置。
然而,实施例不限于此,并且持久性存储器装置316可以包含其它非易失性存储器装置,例如非易失性随机存取存储器装置(例如,NVRAM、ReRAM、FeRAM、MRAM、PCM)、“新兴”存储器装置,例如电阻可变存储器装置(例如,电阻式和/或相变存储器装置,例如3D交叉点(3D XP)存储器装置)、包含自选存储器(SSM)单元阵列等的存储器装置等或其组合。非易失性存储器的电阻式和/或相变阵列可以结合可堆叠的交叉网格数据存取阵列,基于体电阻的变化来进行位存储。此外,与许多基于闪存的存储器相比,电阻式和/或相变存储器装置可以进行原位写入操作,其中可以对非易失性存储器单元进行编程,而无需预先擦除非易失性存储器单元。与基于闪存的存储器相比,自选存储器单元可以包含具有单一硫族化物材料的存储器单元,所述硫族化物材料用作存储器单元的开关和存储元件。
持久性存储器装置316可以为计算系统301提供存储卷,并且因此可以用作整个计算系统301的附加存储器或存储、计算系统301的主存储器或其组合。然而,实施例不限于特定类型的存储器装置,并且持久性存储器装置316可以包含RAM、ROM、SRAM DRAM、SDRAM、PCRAM、RRAM和闪速存储器等。此外,尽管在图3中示出了单个持久性存储器装置316,但实施例不限于此,并且计算系统301可以包含一或多个持久性存储器装置316,其中每个可以具有或不具有与其相关联的相同架构。作为一个非限制性实例,在一些实施例中,持久性存储器装置316可以包括不同架构的两个分立存储器装置,例如NAND存储器装置和电阻可变存储器装置。
非持久性存储器装置330可以包含易失性存储器,例如易失性存储器单元阵列。在多个实施例中,非持久性存储器装置330可以包含多芯片装置。多芯片装置可以包含多个不同的存储器类型和/或存储器模块。在一些实施例中,非持久性存储器装置330可以用作计算系统301的主存储器。例如,非持久性存储器装置330可以是动态随机存取(DRAM)存储器装置,其用于为计算系统301提供主存储器。然而,实施例不限于包括DRAM存储器装置的非持久性存储器装置330,并且在一些实施例中,非持久性存储器装置330可以包含其它非持久性存储器装置,例如RAM、SRAM DRAM、SDRAM、PCRAM和/或RRAM等。
非持久性存储器装置330可以存储可以由例如主机计算装置请求的数据作为计算系统301的操作的一部分。例如,当计算系统301是多用户网络的一部分时,非持久性存储器装置330可以存储在计算系统301的操作期间可以在主机计算装置(例如,多用户网络中部署的虚拟机)之间转移的数据。
在一些方法中,诸如非持久性存储器装置330的非持久性存储器可以存储由主机(例如,多用户网络中部署的虚拟机)存取的所有用户数据。例如,由于非持久性存储器的速度,一些方法依赖非持久性存储器来为多用户网络中部署的虚拟机提供存储器资源。然而,在此类方法中,由于非持久性存储器通常比持久性存储器(例如,持久性存储器装置316)更昂贵,因此成本可能成为问题。
相比之下,如下文所更详细描述,本文的实施例可以允许非持久性存储器装置330中存储的至少一些数据存储在持久性存储器装置316中。这可以允许将额外的存储器资源以比依赖于非持久性存储器来进行用户数据存储的方法更低的成本提供给计算系统301,例如多用户网络。
计算系统301可以包含存储器管理组件314,其可以通信地耦合到非持久性存储器装置330和/或接口308。在一些实施例中,存储器管理组件314可以是输入/输出存储器管理单元(IO MMU),其可以将诸如接口308的直接存储器存取总线通信地耦合到非持久性存储器装置330。然而,实施例不限于此,并且存储器管理组件314可以是促进接口308和非持久性存储器装置330之间的通信的其它类型的存储器管理硬件。
存储器管理组件314可以将装置可见的虚拟地址映射到物理地址。例如,存储器管理组件314可以将与I/O装置310相关联的虚拟地址映射到非持久性存储器装置330和/或持久性存储器装置316中的物理地址。在一些实施例中,映射与I/O装置310相关联的虚拟条目可以由本文的图1中示出的读取缓冲器、写入缓冲器和/或I/O存取缓冲器或本文的图2中示出的数据缓冲器和/或I/O存取缓冲器来促进。
在一些实施例中,存储器管理组件314可以读取与I/O装置310相关联的虚拟地址和/或将虚拟地址映射到非持久性存储器装置330中的物理地址或分级存储器设备中的地址304。在存储器管理组件314将虚拟I/O装置310地址映射到分级存储器设备304中的地址的实施例中,存储器管理组件314可以将从I//O装置310接收的读取请求(或写入请求)重定向到分级存储器设备304,其可以将与I/O装置310读取或写入请求相关联的虚拟地址信息存储在分级存储器设备304的地址寄存器(例如,地址寄存器306-N)中,如先前结合图1和2所描述。在一些实施例中,地址寄存器306-N可以是分级存储器设备304的特定基地址寄存器,例如BAR4地址寄存器。
重定向的读取(或写入)请求可以经由接口308从存储器管理组件314转移到分级存储器设备304。在一些实施例中,接口308可以是PCIe接口,并且因此可以根据PCIe协议在存储器管理组件314和分级存储器设备304之间传递信息。然而,实施例不限于此,并且在一些实施例中,接口308可以是根据另一个合适协议起作用的接口或总线。
在将虚拟NIC地址存储在分级存储器设备304中之后,与虚拟NIC地址相对应的数据可以写入持久性存储器装置316。例如,与分级存储器设备304中存储的虚拟NIC地址相对应的数据可以存储在持久性存储器装置316的物理地址位置中。在一些实施例中,向和/或从持久性存储器装置316转移数据可以通过管理程序促进,如结合本文的图4所描述。
例如,当数据由诸如计算系统301中部署的虚拟机的主机计算装置请求时,可以由存储器管理组件314将请求从I/O装置310重定向到分级存储器设备304。因为与持久性存储器装置316中的数据的物理位置相对应的虚拟NIC地址被存储在分级存储器设备304的地址寄存器306-N中,分级存储器设备304可以促进从持久性存储器装置316检索数据,如本文先前所述。例如,分级存储器设备304可以结合管理程序促进从持久性存储器装置316检索数据,如本文的图4所更详细描述。
在一些实施例中,当已存储在持久性存储器装置316中的数据被转移出持久性存储器装置316时(例如,当已存储在持久性存储器装置316中的数据由主机计算装置请求时),在提供给主机计算装置之前,数据可以转移到中间存储器组件320和/或非持久性存储器装置330。例如,因为转移到主机计算装置的数据可以以确定性方式转移(例如,经由DDR接口),所以在数据请求满足之前,数据可以临时转移到使用DDR总线操作的存储器,例如中间存储器组件320和/或非持久性存储器装置330。
图4是根据本公开的多个实施例的包含分级存储器设备的计算系统的形式的另一个功能框图。如图4中所示,计算系统401可以包含分级存储器设备404,其可以类似于图1、2和3中示出的分级存储器设备104/204/304。此外,计算系统401可以包含I/O装置410、持久性存储器装置416、非持久性存储器装置430、中间存储器组件420、存储器管理组件414和管理程序412。
在一些实施例中,计算系统401可以是多用户网络,例如软件定义的数据中心、云计算环境等。在此类实施例中,计算系统可以被配置成在其上运行一或多个虚拟机417。例如,在一些实施例中,一或多个虚拟机417可以部署在管理程序412上并且可以由多用户网络的用户存取。
I/O装置410、持久性存储器装置416、非持久性存储器装置430、中间存储器组件420和存储器管理组件414可以类似于图3中示出的I/O装置310、持久性存储器装置316、非持久性存储器装置330、中间存储器组件320和存储器管理组件314。分级存储器设备404、I/O装置410和持久性存储器装置416、非持久性存储器装置430、管理程序412和存储器管理组件414之间的通信可以经由接口408促进,所述接口可以类似于图3中示出的接口308。
如上面结合图3所描述,存储器管理组件414可以与I/O装置410相关联的读取请求或写入请求重定向到分级存储器设备404。分级存储器设备404可以生成和/或存储与请求数据相对应的逻辑地址。如上所述,分级存储器设备404可以将与请求数据相对应的逻辑地址存储在基地址寄存器中,例如分级存储器设备404的地址寄存器406-N。
如图4中所示,管理程序412可以经由接口408与分级存储器设备404和/或I/O装置410通信。管理程序412可以经由分级存储器设备404的NIC存取组件(例如,图1和2中示出的NIC存取组件107/207)在分级存储器设备404之间传输数据。此外,管理程序412可以与持久性存储器装置416、非持久性存储器装置430、中间存储器组件420和存储器管理组件414通信。管理程序可以被配置成执行专门的指令以进行本文描述的操作和/或任务。
例如,管理程序412可以执行指令来监控数据流量和数据流量模式,以确定数据是否应存储在非持久性存储器装置430中,或者数据是否应被转移到持久性存储器装置416。也就是说,在在一些实施例中,管理程序412可以执行指令以随时间学习用户数据请求模式并且基于所述模式选择性地将部分数据存储在非持久性存储器装置430或持久性存储器装置416中。这可以允许更频繁地存取的数据存储在非持久性存储器装置430中,而不太频繁地存取的数据存储在持久性存储器装置416中。
因为用户可能比最近较少使用或最近较少查看的数据更频繁地存取最近使用或查看的数据,所以管理程序可以执行专门的指令以使最近较少使用或查看的数据存储在持久性存储器装置416中,和/或使最近存取或查看的数据存储在非持久性存储器装置430中。在一个非限制性实例中,用户可能比非最近(例如,一个月前、一年前等)拍摄的照片更频繁地查看最近(例如,一周内等)拍摄的社交媒体上的照片。基于本信息,管理程序412可以执行专门的指令以使非最近查看或拍摄的照片存储在持久性存储器装置416中,从而减少非持久性存储器装置430中存储的数据量。这可以减少提供计算系统401所需的非持久性存储器的总量,从而降低成本并允许更多用户存取非持久性存储器装置430。
在操作中,计算系统401可以被配置成拦截来自I/O装置410的数据请求并将所述请求重定向到分级存储器设备404。在一些实施例中,管理程序412可以控制与数据请求相对应的数据是存储在非持久性存储器装置430中(或从其检索)还是存储在持久性存储器装置416中。例如,管理程序412可以执行指令以选择性地控制数据是存储在持久性存储器装置416中(或从其检索)还是存储在非持久性存储器装置430中。
作为控制数据是否存储在持久性存储器装置416和/或非持久性存储器装置430中(或从其检索)的一部分,管理程序412可以使存储器管理组件414将与数据相关联的逻辑地址映射以重定向到分级存储器设备404并存储在分级存储器设备404的地址寄存器406中。例如,管理程序412可以执行指令以控制读取和写入请求,所述请求涉及待经由存储器管理组件414选择性地重定向到分级存储器设备404的数据。
存储器管理组件414可以将连续的虚拟地址映射到底层的分段物理地址。因此,在一些实施例中,存储器管理组件414可以允许虚拟地址映射到物理地址而不要求物理地址是连续的。此外,在一些实施例中,存储器管理组件414可以允许不支持足够长的存储器地址来寻址其相对应的物理存储器空间的装置在存储器管理组件414中被寻址。
由于与持久性存储器装置416相关联的数据转移的非确定性性质,在一些实施例中,分级存储器设备404可以被配置成向计算系统401通知向或从持久性存储器装置316转移数据可能会发生延迟。作为初始化延迟的一部分,当数据请求被重定向到分级存储器设备404时,分级存储器设备404可以为计算系统401提供页错误处理。在一些实施例中,分级存储器设备404可以生成中断并向管理程序412断言中断,如本文先前所述,以发起将数据转移入或转移出持久性存储器装置416的操作。例如,由于与持久性存储器装置416相关联的数据检索和存储的非确定性性质,当请求持久性存储器装置416中存储的数据的转移时,分级存储器设备404可以生成管理程序中断415。
响应于由分级存储器设备404生成的页错误中断,管理程序412可以从分级存储器设备404检索与数据相对应的信息。例如,管理程序412可以从分级存储器设备接收NIC存取数据,所述数据可以包含与分级存储器设备404的地址寄存器406中存储的数据相对应的逻辑到物理地址映射,如本文先前所述。
一旦数据已存储在持久性存储器装置416中,非持久性存储器装置430的一部分(例如,页、块等)可以被分级存储器设备404标记为不可存取,如本文先前所述,使得计算系统401不尝试从非持久性存储器装置430存取数据。这可以允许通过页错误来拦截数据请求,所述页错误可以由分级存储器设备404生成并且在已存储在持久性存储器装置416中的数据由I/O装置410请求时向管理程序412断言。
与响应于应用请求存取未由存储器管理单元(例如,存储器管理组件414)映射的存储器页而引发页错误异常的方法相比,在本公开的实施例中,上述页错误可以是由分级存储器设备404响应于数据在存储器管理组件414中被映射到分级存储器设备404而生成,所述分级存储器设备继而将数据映射到持久性存储器装置316。
在一些实施例中,中间存储器组件420可以用于响应于由I/O装置410发起的数据请求而缓冲持久性存储器装置416中存储的数据。与可以经由PCIe接口传递数据的持久性存储器装置416相比,中间存储器组件420可以采用DDR接口来传递数据。因此,在一些实施例中,中间存储器组件420可以以确定性方式操作。例如,在一些实施例中,持久性存储器装置416中存储的请求数据可以暂时地从持久性存储器装置416转移到中间存储器组件420并且随后经由将中间存储器组件420耦合到I/O装置410的DDR接口转移到主机计算装置。
在一些实施例中,中间存储器组件可以包括计算系统401中部署的分立存储器组件(例如,SRAM高速缓存)。然而,实施例不限于此,并且在一些实施例中,中间存储器组件420可以是可以被分配用于响应于数据请求从持久性存储器装置416转移数据的非持久性存储器装置430的一部分。
在一个非限制性实例中,存储器管理电路系统(例如,存储器管理组件414)可以耦合到分级存储器组件404(例如,逻辑电路系统)。存储器管理电路系统可以被配置成接收将具有与其相关联的相对应虚拟网络接口控制器地址的数据写入非持久性存储器装置(例如,非持久性存储器装置430)的请求。存储器管理电路系统可以进一步被配置成至少部分地基于数据的特性将写入数据的请求重定向到逻辑电路系统。数据的特性可以包含数据被请求或存取的频率、自上次存取或请求数据以来经过的时间量、数据类型(例如,数据是否对应于特定文件类型,例如照片、文档、音频文件、应用文件等)等等。
在一些实施例中,存储器管理电路系统可以被配置成基于由管理程序412生成的命令和/或由其执行的指令将请求重定向到逻辑电路系统。例如,如上所述,管理程序412可以执行指令来控制与数据请求(例如,由I/O装置410生成的数据请求)相对应的数据是存储在持久性存储器装置416中还是存储在非持久性存储器装置430中。
在一些实施例中,管理程序412可以通过将地址(例如,逻辑地址)写入存储器管理电路系统来促进请求的重定向。例如,如果管理程序412确定与特定数据请求相对应的数据存储在持久性存储器装置416中(或从其检索),则管理程序412可以使与请求的重定向相对应的地址由存储器管理电路系统存储,使得数据请求重定向到逻辑电路系统。
在接收重定向请求时,逻辑电路系统可以被配置成响应于重定向请求的接收而确定(例如,生成)与数据相对应的地址和/或将地址存储在逻辑电路系统内的地址寄存器406中,如本文先前所述。在一些实施例中,逻辑电路系统可以被配置成基于重定向请求的接收而将指示数据不可由非持久性存储器装置430存取的指示与数据相关联,如本文先前所述。
逻辑电路系统可以被配置成至少部分地基于重定向请求的接收使数据写入持久性存储器装置(例如,持久性存储器装置416)。在一些实施例中,逻辑电路系统可以被配置成生成中断信号并向耦合到逻辑电路系统的管理程序(例如,管理程序412)断言中断信号作为使数据写入持久性存储器装置416的一部分,如本文先前所述。如上所述,持久性存储器装置416可以包括3D XP存储器装置、自选存储器单元阵列、NAND存储器装置或其它合适的持久性存储器或其组合。
在一些实施例中,逻辑电路系统可以被配置成从存储器管理电路系统接收重定向请求以从持久性存储器装置416检索数据,将从持久性存储器装置416检索数据的请求转移到管理程序412,和/或向管理程序412断言中断信号作为从持久性存储器装置416检索数据的请求的一部分,如本文先前所述。管理程序412可以被配置成从持久性存储器装置416检索数据和/或将数据转移到非持久性存储器装置430。一旦已从持久性存储器装置416检索数据,管理程序412可以被配置以使与数据相关联的更新地址转移到存储器管理电路系统414。
在另一个非限制性实例中,计算系统401可以是多用户网络,例如软件定义的数据中心、云计算环境等。多用户网络可以包含计算资源池,其包含非持久性存储器装置430和持久性存储器装置416。多用户网络可以进一步包含接口408,其耦合到包括复数个地址寄存器406的分级存储器组件404(例如,逻辑电路系统)。在一些实施例中,用户网络可以进一步包含耦合到接口408的管理程序412。
管理程序412可以被配置成接收存取与非持久性存储器组件430相对应的数据的请求,确定数据存储在持久性存储器装置中,并且使存取数据的请求重定向到逻辑电路系统。存取数据的请求可以是从持久性存储器装置或非持久性存储器装置读取数据的请求或将数据写入持久性存储器装置或非持久性存储器装置的请求。
在一些实施例中,逻辑电路系统可以被配置成响应于确定数据存储在持久性存储器装置416中而将请求转移到管理程序412以从持久性存储器装置416存取数据。逻辑电路系统可以是被配置成向管理程序断言中断作为管理程序412存取与持久性存储器装置416相对应的数据的请求的一部分,如本文先前所述。
管理程序412可以被配置成基于从逻辑电路系统接收的请求而使用持久性存储器装置416来存取数据。如上所述,持久性存储器装置416可以包括电阻可变存储器装置,例如电阻式存储器、相变存储器、自选存储器单元阵列或其组合。在一些实施例中,管理程序412可以被配置成使数据转移到非持久性存储器装置430作为使用持久性存储器装置416来存取数据的一部分。
管理程序412可以进一步被配置成响应于使用持久性存储器装置416来存取数据而更新与多用户网络相关联的存储器管理组件414中存储的信息。例如,管理程序412可以被配置成使与数据相对应的更新虚拟地址存储在存储器管理组件414中。
在一些实施例中,多用户网络可以包含耦合到逻辑电路系统的I/O装置410。在此类实施例中,逻辑电路系统可以被配置成响应于管理程序412使用持久性存储器装置416存取数据而向I/O装置410发送通知。
图5是根据本公开的多个实施例的表示用于分级存储器设备的示范性方法540的流程图。分级存储器设备可以是例如先前结合图1、2、3和4描述的分级存储器设备104/204/304/404。
在框542,方法540可以包含由分级存储器设备经由接口从存储器管理电路系统接收存取持久性存储器装置中存储的数据的第一请求。存储器管理电路系统、接口和持久性存储器装置可以例如分别是先前结合图3和4描述的存储器管理电路系统(例如,组件)314/414、接口308/408和持久性存储器装置316/416。第一请求可以是例如来自I/O装置的重定向请求,如本文先前所述。
在框544,方法540可以包含响应于接收第一请求而使用分级存储器设备的第一地址寄存器来确定与持久性存储器装置中的数据相对应的地址。例如,第一地址寄存器可以是先前结合图1和2描述的地址寄存器106-N/206-N,并且可以用于以类似于结合图1和2描述的方式确定与数据相对应的地址。
在框546,方法540可以包含响应于接收第一请求而使用分级存储器设备的第二地址寄存器来生成中断信号,并且生成存取数据的第二请求,其中第二请求包含在框544确定的地址。例如,第二地址寄存器可以是先前结合图1和2描述的地址寄存器106-2/206-2,并且可以用于以类似于先前结合图1和2描述的方式生成中断信号。
在框548,方法540可以包含发送中断信号和存取数据的第二请求。中断信号和第二请求可以以类似于先前结合图1和2描述的方式发送。
图6是根据本公开的多个实施例的表示用于分级存储器设备的示范性方法660的另一个流程图。分级存储器设备可以是例如先前结合图1、2、3和4描述的分级存储器设备104/204/304/404。
在框662,方法660可以包含接收包括将数据写入持久性存储器装置的第一命令的第一信令。持久性存储器装置可以例如分别是先前结合图3和4描述的持久性存储器装置316/416。第一命令可以是例如来自I/O装置的重定向请求,如本文先前描述。
在框664,方法660可以包含响应于接收第一信令而标识与数据相对应的地址。例如,与数据相对应的地址可以以类似于结合图1和2描述的方式使用地址寄存器106-N/206-N来标识。
在框666,方法660可以包含响应于接收第一命令而生成包括在框664标识的地址和将数据写入持久性存储器装置的第二命令的第二信令。第二信令可以以类似于先前结合图1和2描述的方式与中断信号一起生成。
在框668,方法660可以包含发送第二信令以将数据写入持久性存储器装置。第二信令可以以类似于先前结合图1和2描述的方式发送。
尽管已在本文中示出并描述了具体实施例,但所属领域的一般技术人员将了解,经计算以实现相同结果的布置可以取代所示出的具体实施例。本公开旨在覆盖本公开的一或多个实施例的修改或变化。应理解,以说明方式而非限制方式进行了以上描述。在查阅以上描述后,以上实施例和本文未具体描述的其它实施例的组合对于所属领域的技术人员来说将显而易见。本公开的一或多个实施例的范围包含其中使用以上结构和过程的其它应用。因此,应参考所附权利要求书连同此类权利要求所赋予的等效物的全范围确定本公开的一或多个实施例的范围。
在前述具体实施方式中,出于简化本公开的目的而将一些特征一起分组在单个实施例中。本公开的此方法不应被理解为反映本公开的所公开实施例必须比在每项权利要求中明确叙述那样使用更多特征的意图。实际上,如以下权利要求所反映,本发明主题在于单个所公开实施例的少于全部的特征。因此,以下权利要求由此并入具体实施方式中,其中每项权利要求作为单独的实施例独立存在。
Claims (20)
1.一种设备,其包括:
地址寄存器,其被配置成存储与持久性存储器装置中存储的数据相对应的地址,其中每个相应地址对应于所述持久性存储器装置中存储的所述数据的不同部分;和
电路系统,其被配置成:
经由接口从存储器管理电路系统接收存取所述持久性存储器装置中存储的所述数据的一部分的第一请求;
响应于接收所述第一请求,使用所述寄存器确定与所述数据的所述部分相对应的地址;
响应于接收所述第一请求,生成存取所述数据的所述部分的第二请求,其中所述第二请求包含所确定的地址;并且
将所述第二请求发送到所述持久性存储器装置以存取所述数据的所述部分。
2.根据权利要求1所述的设备,其中:
所述设备包含附加地址寄存器,其被配置成存储与中断控制相对应的地址;并且
所述电路系统被配置成:
响应于接收所述第一请求,使用所述附加寄存器生成中断信号;并且
经由所述接口发送所述中断信号作为所述第二请求的一部分。
3.根据权利要求1所述的设备,其中:
所述地址寄存器被配置成存储与输入/输出(I/O)装置存取信息相对应的地址;并且
所述地址寄存器被配置成经由所述接口发送与存取所述数据的所述第一请求相对应的I/O装置存取信息。
4.根据权利要求1所述的设备,其中所述电路系统被配置成将指示所述数据部分不可由非持久性存储器装置存取的信息与所述数据部分相关联。
5.根据权利要求1到4中任一权利要求所述的设备,其中所述电路系统包括状态机。
6.根据权利要求1到4中任一权利要求所述的设备,其中所述设备包含所述持久性存储器装置。
7.一种方法,其包括:
由分级存储器设备经由接口从存储器管理电路系统接收存取持久性存储器装置中存储的数据的第一请求;
响应于接收所述第一请求,使用所述分级存储器设备的第一地址寄存器确定与所述持久性存储器装置中的所述数据相对应的地址;
响应于接收所述第一请求:
使用所述分级存储器设备的第二地址寄存器生成中断信号;并且
生成存取所述数据的第二请求,其中所述第二请求包含所确定的地址;和
发送所述中断信号和存取所述数据的所述第二请求。
8.根据权利要求7所述的方法,其中所述方法包含:
在发送所述中断信号和存取所述数据的所述第二请求之后,接收所述数据;和
将所接收的数据发送到输入/输出(I/O)装置。
9.根据权利要求8所述的方法,其中所述方法包含响应于接收所述第一请求而检测对所述I/O装置的存取。
10.根据权利要求8到9中任一权利要求所述的方法,其中所述方法包含从所述I/O装置接收与存取所述数据的所述第一请求相对应的I/O装置存取信息。
11.一种设备,其包括:
地址寄存器,其被配置成存储与持久性存储器装置相对应的地址,其中每个相应地址对应于所述持久性存储器装置中的不同位置;和
电路系统,其被配置成:
经由接口从存储器管理电路系统接收将数据编程到所述持久性存储器装置的第一请求;
响应于接收所述第一请求,使用所述寄存器确定与所述数据相对应的地址;
响应于接收所述第一请求,生成将所述数据编程到所述持久性存储器装置的第二请求,其中所述第二请求包含所确定的地址;并且
发送所述第二请求以将所述数据编程到所述持久性存储器装置。
12.根据权利要求11所述的设备,其中所述电路系统被配置成响应于接收将所述数据编程到所述持久性存储器装置的所述第一请求而将指示所述数据不可由非持久性存储器装置存取的信息与所述数据相关联。
13.根据权利要求11所述的设备,其中所述电路系统被配置成:
从输入/输出(I/O)装置接收虚拟I/O装置存取信息;并且
发送所述虚拟I/O装置存取信息作为所述第二请求的一部分。
14.根据权利要求13所述的设备,其中:
所述设备包含非持久性存储器装置,其被配置成存储所述虚拟I/O装置存取信息;并且
所述非持久性存储器装置包含缓冲器,其被配置成存储待编程到所述持久性存储器装置的所述数据。
15.根据权利要求11到14中任一权利要求所述的设备,其中所述电路系统被配置成经由所述接口发送将所述数据编程到所述持久性存储器装置的所述第二请求。
16.一种方法,其包括:
接收包括将数据写入持久性存储器装置的第一命令的第一信令;
响应于接收所述第一信令,标识与所述数据相对应的地址;
响应于接收所述第一命令,生成包括所标识的地址和将所述数据写入所述持久性存储器装置的第二命令的第二信令;和
发送所述第二信令以将所述数据写入所述持久性存储器装置。
17.根据权利要求16所述的方法,其中所述第一命令是来自输入/输出(I/O)装置的重定向命令。
18.根据权利要求16到17中任一权利要求所述的方法,其中所述方法包含:
接收包括从所述持久性存储器装置检索所述数据的第三命令的第三信令;
响应于接收所述第三信令,标识与所述持久性存储器装置中的所述数据相对应的地址;
响应于接收所述第三命令,生成包括所标识的地址和从所述持久性存储器装置检索所述数据的第四命令的第四信令;和
发送所述第四信令以从所述持久性存储器装置检索所述数据。
19.根据权利要求16到17中任一权利要求所述的方法,其中所述方法包含将将所述数据写入所述持久性存储器装置的所述第二信令直接发送到所述持久性存储器装置。
20.根据权利要求16到17中任一权利要求所述的方法,其中所述方法包含发送与所述第一命令相对应的输入/输出(I/O)装置存取信息。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US16/547,648 US20210055882A1 (en) | 2019-08-22 | 2019-08-22 | Hierarchical memory apparatus |
US16/547,648 | 2019-08-22 | ||
PCT/US2020/046644 WO2021034754A1 (en) | 2019-08-22 | 2020-08-17 | Hierarchical memory apparatus |
Publications (2)
Publication Number | Publication Date |
---|---|
CN114303124A true CN114303124A (zh) | 2022-04-08 |
CN114303124B CN114303124B (zh) | 2024-04-30 |
Family
ID=74645767
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202080059330.1A Active CN114303124B (zh) | 2019-08-22 | 2020-08-17 | 分级存储器设备 |
Country Status (5)
Country | Link |
---|---|
US (1) | US20210055882A1 (zh) |
EP (1) | EP4018325A4 (zh) |
KR (1) | KR20220047825A (zh) |
CN (1) | CN114303124B (zh) |
WO (1) | WO2021034754A1 (zh) |
Citations (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20020051394A1 (en) * | 1993-04-08 | 2002-05-02 | Tsunehiro Tobita | Flash memory control method and apparatus processing system therewith |
US20020126539A1 (en) * | 2001-03-09 | 2002-09-12 | Micron Technology, Inc. | Non-volatile memory device with erase address register |
US6487654B2 (en) * | 1997-08-01 | 2002-11-26 | Micron Technology, Inc. | Virtual shadow registers and virtual register windows |
US20060242333A1 (en) * | 2005-04-22 | 2006-10-26 | Johnsen Bjorn D | Scalable routing and addressing |
US20070300038A1 (en) * | 2004-04-20 | 2007-12-27 | Ware Frederick A | Memory Controller for Non-Homogeneous Memory System |
US20080109593A1 (en) * | 2006-11-04 | 2008-05-08 | Virident Systems Inc. | Writing to asymmetric memory |
US20110041039A1 (en) * | 2009-08-11 | 2011-02-17 | Eliyahou Harari | Controller and Method for Interfacing Between a Host Controller in a Host and a Flash Memory Device |
WO2015047266A1 (en) * | 2013-09-26 | 2015-04-02 | Intel Corporation | Block storage apertures to persistent memory |
US20160019004A1 (en) * | 2011-03-11 | 2016-01-21 | Microsoft Technology Licensing, Llc | Virtual disk storage techniques |
US9424155B1 (en) * | 2016-01-27 | 2016-08-23 | International Business Machines Corporation | Use efficiency of platform memory resources through firmware managed I/O translation table paging |
US20170293573A1 (en) * | 2014-10-31 | 2017-10-12 | Hewlett Packard Enterprise Development Lp | Systems and methods for restricting write access to non-volatile memory |
US20180219777A1 (en) * | 2016-05-31 | 2018-08-02 | Brocade Communications Systems LLC | Multichannel input/output virtualization |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR100706246B1 (ko) * | 2005-05-24 | 2007-04-11 | 삼성전자주식회사 | 읽기 성능을 향상시킬 수 있는 메모리 카드 |
US7653803B2 (en) * | 2006-01-17 | 2010-01-26 | Globalfoundries Inc. | Address translation for input/output (I/O) devices and interrupt remapping for I/O devices in an I/O memory management unit (IOMMU) |
US10114675B2 (en) * | 2015-03-31 | 2018-10-30 | Toshiba Memory Corporation | Apparatus and method of managing shared resources in achieving IO virtualization in a storage device |
-
2019
- 2019-08-22 US US16/547,648 patent/US20210055882A1/en not_active Abandoned
-
2020
- 2020-08-17 WO PCT/US2020/046644 patent/WO2021034754A1/en unknown
- 2020-08-17 EP EP20854623.4A patent/EP4018325A4/en not_active Withdrawn
- 2020-08-17 KR KR1020227008644A patent/KR20220047825A/ko active Search and Examination
- 2020-08-17 CN CN202080059330.1A patent/CN114303124B/zh active Active
Patent Citations (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20020051394A1 (en) * | 1993-04-08 | 2002-05-02 | Tsunehiro Tobita | Flash memory control method and apparatus processing system therewith |
US6487654B2 (en) * | 1997-08-01 | 2002-11-26 | Micron Technology, Inc. | Virtual shadow registers and virtual register windows |
US20020126539A1 (en) * | 2001-03-09 | 2002-09-12 | Micron Technology, Inc. | Non-volatile memory device with erase address register |
US20070300038A1 (en) * | 2004-04-20 | 2007-12-27 | Ware Frederick A | Memory Controller for Non-Homogeneous Memory System |
US20060242333A1 (en) * | 2005-04-22 | 2006-10-26 | Johnsen Bjorn D | Scalable routing and addressing |
US20080109593A1 (en) * | 2006-11-04 | 2008-05-08 | Virident Systems Inc. | Writing to asymmetric memory |
US20110041039A1 (en) * | 2009-08-11 | 2011-02-17 | Eliyahou Harari | Controller and Method for Interfacing Between a Host Controller in a Host and a Flash Memory Device |
US20160019004A1 (en) * | 2011-03-11 | 2016-01-21 | Microsoft Technology Licensing, Llc | Virtual disk storage techniques |
WO2015047266A1 (en) * | 2013-09-26 | 2015-04-02 | Intel Corporation | Block storage apertures to persistent memory |
US20170293573A1 (en) * | 2014-10-31 | 2017-10-12 | Hewlett Packard Enterprise Development Lp | Systems and methods for restricting write access to non-volatile memory |
US9424155B1 (en) * | 2016-01-27 | 2016-08-23 | International Business Machines Corporation | Use efficiency of platform memory resources through firmware managed I/O translation table paging |
US20180219777A1 (en) * | 2016-05-31 | 2018-08-02 | Brocade Communications Systems LLC | Multichannel input/output virtualization |
Also Published As
Publication number | Publication date |
---|---|
CN114303124B (zh) | 2024-04-30 |
EP4018325A1 (en) | 2022-06-29 |
WO2021034754A1 (en) | 2021-02-25 |
KR20220047825A (ko) | 2022-04-19 |
US20210055882A1 (en) | 2021-02-25 |
EP4018325A4 (en) | 2023-08-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US12079139B2 (en) | Hierarchical memory systems | |
CN114341816A (zh) | 三层层次型存储器系统 | |
US11221873B2 (en) | Hierarchical memory apparatus | |
US10996975B2 (en) | Hierarchical memory systems | |
CN114303124B (zh) | 分级存储器设备 | |
CN114341818B (zh) | 分级存储器设备 | |
CN114258534B (zh) | 阶层式存储器系统 | |
US11614894B2 (en) | Hierarchical memory systems | |
US11586556B2 (en) | Hierarchical memory systems | |
US11782843B2 (en) | Hierarchical memory systems |
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 |