CN114270311A - 分级存储器系统 - Google Patents
分级存储器系统 Download PDFInfo
- Publication number
- CN114270311A CN114270311A CN202080059173.4A CN202080059173A CN114270311A CN 114270311 A CN114270311 A CN 114270311A CN 202080059173 A CN202080059173 A CN 202080059173A CN 114270311 A CN114270311 A CN 114270311A
- Authority
- CN
- China
- Prior art keywords
- data
- memory device
- persistent memory
- address
- logic circuitry
- 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.)
- Pending
Links
Images
Classifications
-
- 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/061—Improving I/O performance
- G06F3/0611—Improving I/O performance in relation to response time
-
- 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
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/38—Information transfer, e.g. on bus
- G06F13/382—Information transfer, e.g. on bus using universal interface adapter
- G06F13/385—Information transfer, e.g. on bus using universal interface adapter for adaptation of a particular data processing system to different peripheral devices
-
- 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/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/0659—Command handling arrangements, e.g. command buffers, queues, command scheduling
-
- 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
- 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/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
-
- 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/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
- G06F2009/45579—I/O management, e.g. providing access to device drivers or storage
-
- 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/30—Providing cache or TLB in specific location of a processing system
- G06F2212/303—In peripheral interface, e.g. I/O adapter or channel
-
- 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/31—Providing disk cache in a specific location of a storage system
- G06F2212/313—In storage device
-
- 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/7203—Temporary buffering, e.g. using volatile buffer or dedicated buffer blocks
-
- 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/7206—Reconfiguration of flash memory system
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2213/00—Indexing scheme relating to interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F2213/0026—PCI express
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Human Computer Interaction (AREA)
- Memory System (AREA)
Abstract
描述了用于分级存储器系统的设备、系统和方法。分级存储器系统可以利用持久性存储器来存储通常存储在非持久性存储器中的数据,从而以比仅依赖于非持久性存储器的方法更低的成本增加分配给计算系统的存储空间量。在一个示范性设备中,输入/输出(I/O)装置可以接收包含将数据写入与非持久性存储器装置相对应的地址或从其读取数据的命令的信令,并且可以确定将所述请求重定向到哪里。例如,所述I/O装置可以至少部分地基于数据的一或多个特性来确定将所述数据写入所述非持久性存储器装置或所述持久性存储器装置和/或从其读取所述数据。
Description
技术领域
本公开一般涉及半导体存储器和方法,并且更具体地涉及与分级存储器系统相关的设备、系统和方法。
背景技术
存储器装置通常被提供为计算机或其它电子系统中的内部、半导体、集成电路。存在许多不同类型的存储器,包含易失性和非易失性存储器。易失性存储器可能需要电力来维护其数据(例如,主机数据、错误数据等),并且包含随机存取存储器(RAM)、动态随机存取存储器(DRAM)、静态随机存取存储器(SRAM)和同步动态随机存储器存取存储器(SDRAM)等等。非易失性存储器可以通过在未被供电时保存所存储数据来提供持久性数据,并且可以包含NAND闪速存储器、NOR闪速存储器及电阻可变存储器,例如相变随机存取存储器(PCRAM)、电阻式随机存取存储器(RRAM)及磁阻式随机存取存储器(MRAM),例如自旋力矩转移随机存取存储器(STT RAM)等等。
存储器装置可以耦合到主机(例如,主机计算装置)以存储数据、命令和/或指令以在计算机或电子系统操作时供主机使用。例如,数据、命令和/或指令可以在计算或其它电子系统的操作期间在主机与存储器装置之间转移。
附图说明
图1是根据本公开的多个实施例的包含逻辑电路系统的设备的形式的功能框图。
图2是根据本公开的多个实施例的包含逻辑电路系统和输入/输出(I/O)装置的计算系统的形式的功能框图。
图3是根据本公开的多个实施例的包含逻辑电路系统和输入/输出(I/O)装置的计算系统的形式的另一个功能框图。
图4是根据本公开的多个实施例的表示数据读取操作的流程图。
图5是根据本公开的多个实施例的表示数据写入操作的流程图。
图6是根据本公开的多个实施例的表示用于分级存储器系统的示范性方法的流程图。
具体实施方式
描述了用于分级存储器系统的设备、系统和方法。分级存储器系统可以利用持久性存储器来存储通常存储在非持久性存储器中的数据,从而以比仅依赖于非持久性存储器的方法更低的成本增加分配给计算系统的存储空间量。在一个示范性设备中,输入/输出(I/O)装置可以接收包含将数据写入与非持久性存储器装置相对应的地址或从其读取数据的命令的信令,并且可以确定将所述请求重定向到哪里。例如,所述I/O装置可以至少部分地基于数据的一或多个特性来确定将所述数据写入所述非持久性存储器装置或所述持久性存储器装置和/或从其读取所述数据。
计算系统在操作期间利用各种类型的存储器资源。例如,计算系统可以在操作期间利用易失性(例如,随机存取存储器)存储器资源和非易失性(例如,存储)存储器资源的组合。一般来说,易失性存储器资源可以以比非易失性存储器资源快得多的速度操作,并且可以具有比非易失性存储器资源更长的寿命;然而,易失性存储器资源通常比非易失性存储器资源更昂贵。如本文使用,易失性存储器资源在替代方案中可以被称为“非持久性存储器装置”,而非易失性存储器资源在替代方案中可以被称为“持久性存储器装置”。
然而,持久性存储器装置可以更广泛地指代以持久性方式存取数据的能力。作为一个实例,在持久性存储器的上下文中,存储器装置可以将复数个逻辑到物理映射或转换数据和/或查找表存储在存储器阵列中,以便跟踪存储器装置中的数据的位置,无论存储器是否是非易失性的。此外,持久性存储器装置可以指代存储器的非易失性,还有通过包含服务于用于连续过程的命令(例如,通过使用逻辑到物理映射、查找表等)的能力来使用所述非易失性。
这些特性可能需要在计算系统中进行权衡,以便为计算系统提供足够的资源以根据消费者和计算资源提供商的不断增长的需求来运行。例如,在多用户计算网络(例如,基于云的计算系统部署、软件定义的数据中心等)中,可以提供相对大量的易失性存储器来提供在多用户网络中运行的虚拟机。然而,如在一些方法中所常见,通过依赖易失性存储器来为多用户网络提供存储器资源,与为网络提供存储器资源相关联的成本可能会增加,尤其是当网络的用户要求越来越大的计算资源池可供使用时。
此外,在依赖易失性存储器来提供存储器资源以在多用户网络中提供虚拟机的方法中,一旦易失性存储器资源用尽(例如,一旦易失性存储器资源被分配给多用户网络的用户),在额外的易失性存储器资源可供使用或添加之前,可能无法将额外的用户添加到多用户网络。这可能会导致潜在用户被拒之门外,从而可能在多用户网络本可使用额外的存储器资源的情况下造成了收入损失。
易失性存储器资源,例如动态随机存取存储器(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是根据本公开的多个实施例的计算系统100的形式的功能框图,所述计算系统包含包含逻辑电路系统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处理的数据。在一些实施例中,读取缓冲器103的大小可以在4千字节(KB)左右,但实施例不限于此特定大小。读取缓冲器103可以缓冲待寄存在地址寄存器106-1到106-N中的一个中的数据。
写入缓冲器105可以包含存储器资源102的一部分,其被保留用于存储等待传输到逻辑电路系统104外部的位置的数据。在一些实施例中,写入缓冲器105的大小可以在4千字节(KB)左右,但实施例不限于此特定大小。写入缓冲器105可以缓冲寄存在地址寄存器106-1到106-N中的一个中的数据。
I/O存取组件107可以包含存储器资源102的一部分,其被保留用于存储与存取逻辑电路系统104外部的组件(例如,本文的图2和3中示出的I/O装置210/310)相对应的数据。I/O存取组件107可以存储与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)装置(例如,本文的图2和3中示出的I/O装置210/310)对地址寄存器中的一个(例如,地址寄存器106-N,其可以是分级存储器控制器113的BAR4区域,如下所述)的存取请求相对应的传入消息重定向到读取缓冲器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可以重定向此类请求作为操作的一部分,以确定待响应于管理程序中断的断言(例如,向耦合到逻辑电路系统104的管理程序断言的中断,其由中断组件115生成)而存取的地址寄存器中的地址。
响应于确定所述请求对应于数据(例如,与地址相关联的数据被写入逻辑电路系统104外部的位置(例如,写入持久性存储器装置,例如本文的图2和3中示出的持久性存储器装置216/316)),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或计算系统(例如,本文的图2和3中示出的计算系统201/301)使用的存储器地址的基地址寄存器(BAR)。地址寄存器中的至少一个(例如,地址寄存器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)的大小相对应的数量的地址空间。例如,如果存储器装置含有1太字节的存储,则地址寄存器106-N可以被配置成具有可以包含1太字节地址空间的地址空间。然而,如上所述,地址寄存器106-N实际上并不包含1太字节的存储,但却被配置成看起来具有1太字节存储空间。
尽管未在图1中明确示出,但逻辑电路系统104可以耦合到主机计算系统。主机计算系统可以包含系统主板和/或背板,并且可以包含多个处理资源(例如,一或多个处理器、微处理器或一些其它类型的控制电路系统)。主机和设备100例如可以是服务器系统和/或高性能计算(HPC)系统和/或其一部分。在一些实施例中,计算系统可以具有冯诺依曼架构,然而,本公开的实施例可以以非冯诺依曼架构实施,其通常可以不包含通常与冯诺依曼架构相关联的一或多个组件(例如,CPU、ALU等)。
如本文所述,逻辑电路系统104可以经由I/O装置(例如,本文的图2和3中示出的I/O装置210/310)接收来自主机(例如,主机计算装置、虚拟机等)的传入消息和/或命令,这将消息和/或命令重定向到逻辑电路系统104和/或非持久性存储器装置(例如,本文的图2和3中示出的非持久性存储器装置230/330)。从I/O装置重定向到逻辑电路系统的传入消息和/或命令可以包含对待从/向持久性存储器装置(例如,本文的图2和3中示出的持久性存储器装置216/316)读取和/或写入的数据的请求以及待写入持久性存储器装置的数据。
由于向/从持久性存储器装置转移的数据通常具有相当大的大小,因此减少(为了从/向持久性存储器装置读取数据和/或写入数据)计算系统(例如,图2和3中示出的计算系统201/301)的组件之间进行的数据转移次数可以显著改善计算系统的整体处理速度。因此,在多个实施例中,首先从主机接收请求的计算系统的特定装置,例如I/O装置,可以被配置为用于确定将请求重定向到哪里的装置。与使用不同的装置(例如,与首先从主机接收请求的I/O装置不同)来确定将请求重定向到哪里相比,这可以提供更少的转移次数。下面结合图2-6描述利用I/O装置重定向请求和数据的另外的细节。
图2是根据本公开的多个实施例的包含逻辑电路系统204(例如,逻辑电路系统)和输入/输出(I/O)装置的计算系统201的形式的功能框图。如图2中所示,计算系统201可以包含逻辑电路系统204,其可以类似于图1中示出的逻辑电路系统104。此外,计算系统201可以包含I/O装置210、持久性存储器装置216、非持久性存储器装置230和中间存储器组件220。逻辑电路系统204、I/O装置210和持久性存储器装置216和非持久性存储器装置230之间的通信可以经由接口208促进。
持久性存储器装置216可以包含多个存储器单元阵列。例如,阵列可以是具有NAND架构的闪存阵列。然而,实施例不限于特定类型的存储器阵列或阵列架构。存储器单元可以例如分组成包含多个物理页的多个块。多个块可以包含于存储器单元的平面中,并且阵列可以包含多个平面。
持久性存储器装置216可以包含易失性存储器和/或非易失性存储器。在多个实施例中,持久性存储器装置216可以包含多芯片装置。多芯片装置可以包含多个不同的存储器类型和/或存储器模块。例如,存储器系统可以包含任何类型的模块上的非易失性或易失性存储器。在持久性存储器装置216包含非易失性存储器的实施例中,持久性存储器装置216可以是闪速存储器装置,例如NAND或NOR闪速存储器装置。
然而,实施例不限于此,并且持久性存储器装置216可以包含其它非易失性存储器装置,例如非易失性随机存取存储器装置(例如,NVRAM、ReRAM、FeRAM、MRAM、PCM)、“新兴”存储器装置,例如电阻可变存储器装置(例如,电阻式和/或相变存储器装置,例如3D交叉点(3D XP)存储器装置)、包含自选存储器(SSM)单元阵列等的存储器装置等或其组合。非易失性存储器的电阻式和/或相变阵列可以结合可堆叠的交叉网格数据存取阵列,基于体电阻的变化来进行位存储。此外,与许多基于闪存的存储器相比,电阻式和/或相变存储器装置可以进行原位写入操作,其中可以对非易失性存储器单元进行编程,而无需预先擦除非易失性存储器单元。与基于闪存的存储器相比,自选存储器单元可以包含具有单一硫族化物材料的存储器单元,所述硫族化物材料用作存储器单元的开关和存储元件。
持久性存储器装置216可以为计算系统201提供存储卷,并且因此可以用作整个计算系统201的附加存储器或存储、计算系统201的主存储器或其组合。然而,实施例不限于特定类型的存储器装置,并且持久性存储器装置216可以包含RAM、ROM、SRAM DRAM、SDRAM、PCRAM、RRAM和闪速存储器等。此外,尽管在图2中示出了单个持久性存储器装置216,但实施例不限于此,并且计算系统201可以包含一或多个持久性存储器装置216,其中每个可以具有或不具有与其相关联的相同架构。作为一个非限制性实例,在一些实施例中,持久性存储器装置216可以包括不同架构的两个分立存储器装置,例如NAND存储器装置和电阻可变存储器装置。
非持久性存储器装置230可以包含易失性存储器,例如易失性存储器单元阵列。在多个实施例中,非持久性存储器装置230可以包含多芯片装置。多芯片装置可以包含多个不同的存储器类型和/或存储器模块。在一些实施例中,非持久性存储器装置230可以用作计算系统201的主存储器。例如,非持久性存储器装置230可以是动态随机存取(DRAM)存储器装置,其用于为计算系统230提供主存储器。然而,实施例不限于包括DRAM存储器装置的非持久性存储器装置230,并且在一些实施例中,非持久性存储器装置230可以包含其它非持久性存储器装置,例如RAM、SRAM DRAM、SDRAM、PCRAM和/或RRAM等。
非持久性存储器装置230可以存储可以由例如主机计算装置请求的数据作为计算系统201的操作的一部分。例如,当计算系统201是多用户网络的一部分时,非持久性存储器装置230可以存储在计算系统201的操作期间可以在主机计算装置(例如,多用户网络中部署的虚拟机)之间转移的数据。
在一些方法中,诸如非持久性存储器装置230的非持久性存储器可以存储由主机(例如,多用户网络中部署的虚拟机)存取的所有用户数据。例如,由于非持久性存储器的速度,一些方法依赖非持久性存储器来为多用户网络中部署的虚拟机提供存储器资源。然而,在此类方法中,由于非持久性存储器通常比持久性存储器(例如,持久性存储器装置216)更昂贵,因此成本可能成为问题。
相比之下,如下文所更详细描述,本文的实施例可以允许非持久性存储器装置230中存储的至少一些数据存储在持久性存储器装置216中。这可以允许将额外的存储器资源以比依赖于非持久性存储器来进行用户数据存储的方法更低的成本提供给计算系统201,例如多用户网络。
计算系统201可以包含I/O装置210,其可以经由接口208通信地耦合到逻辑电路系统204和非持久性存储器装置。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功能。
I/O装置210可以包含多个映射表214(例如,映射表214-1、…、214-N),其可以用于将装置可见的虚拟地址映射到物理地址。例如,当从主机计算装置接收对I/O装置210的读取/写入请求时,I/O装置可以将与请求的数据相关联的虚拟地址映射到非持久性存储器装置230中的物理地址和/或逻辑电路系统204中的地址,其可以进一步映射到持久性存储器装置216中的相对应物理地址。通过利用映射表214,I/O装置210可以确定将从主机计算装置接收的请求重定向到哪里。例如,如果映射表214指示与请求的数据相关联的地址被映射到非持久性存储器装置230的物理地址,则I/O装置210可以将请求重定向到非持久性存储器230。例如,如果映射表214指示与请求的数据相关联的地址被映射到逻辑电路系统204中的地址,则I/O装置210可以将请求重定向到逻辑电路系统204,其可以将从I/O装置210重定向的请求转移到持久性存储器装置216。
在一些实施例中,映射与I/O装置210相关联的虚拟条目可以通过本文的图1中示出的读取缓冲器、写入缓冲器和/或I/O存取缓冲器促进。逻辑电路系统204可以将与在I/O装置210处接收的读取/写入请求相关联的虚拟地址信息存储在逻辑电路系统204的地址寄存器(例如,地址寄存器206-1、206-1、…、和/或206-N)中。在一些实施例中,地址寄存器206-N可以是逻辑电路系统204的特定基地址寄存器,例如BAR4地址寄存器。
在一些实施例中,接口208可以是PCIe接口,并且因此可以根据PCIe协议在I/O装置210和逻辑电路系统204之间传递信息。然而,实施例不限于此,并且在一些实施例中,接口208可以是根据另一个合适协议起作用的接口或总线。
在将虚拟NIC地址存储在逻辑电路系统204中之后,与虚拟NIC地址相对应的数据可以写入持久性存储器装置216。例如,与逻辑电路系统204中存储的虚拟NIC地址相对应的数据可以存储在持久性存储器装置216的物理地址位置中。在一些实施例中,向和/或从持久性存储器装置216转移数据可以通过管理程序促进,如结合本文的图3-5所描述。
例如,当数据由诸如计算系统201中部署的虚拟机的主机计算装置请求时,可以将请求从I/O装置210重定向到逻辑电路系统204。因为与持久性存储器装置216中的数据的物理位置相对应的虚拟NIC地址被存储在逻辑电路系统204的地址寄存器206中的一个(例如,地址寄存器206-N)中,逻辑电路系统204可以结合管理程序促进从持久性存储器装置216检索数据,如本文的图3-5所更详细描述。
在一些实施例中,当已存储在持久性存储器装置216中的数据被转移出持久性存储器装置216时(例如,当已存储在持久性存储器装置216中的数据由主机计算装置请求时),在提供给主机计算装置之前,数据可以转移到中间存储器组件220和/或非持久性存储器装置230。例如,因为转移到主机计算装置的数据可以以确定性方式转移(例如,经由DDR接口),所以在数据请求满足之前,数据可以临时转移到使用DDR总线操作的存储器,例如中间存储器组件220和/或非持久性存储器装置230。
图3是根据本公开的多个实施例的包含逻辑电路系统和I/O装置的计算系统的形式的另一个功能框图。如图3中所示,计算系统301可以包含逻辑电路系统304,其可以类似于图1和2中示出的逻辑电路系统104/204。此外,计算系统301可以包含I/O装置310、持久性存储器装置316、非持久性存储器装置330、中间存储器组件320和管理程序312。
在一些实施例中,计算系统301可以是多用户网络,例如软件定义的数据中心、云计算环境等。在此类实施例中,计算系统可以被配置成在其上运行一或多个虚拟机317。例如,在一些实施例中,一或多个虚拟机317可以部署在管理程序312上并且可以由多用户网络的用户存取。
I/O装置310、持久性存储器装置316、非持久性存储器装置330和中间存储器组件320可以类似于图2中示出的I/O装置210、持久性存储器装置216、非持久性存储器装置230和中间存储器组件220。逻辑电路系统304、I/O装置310和持久性存储器装置316、非持久性存储器装置330和管理程序312之间的通信可以经由接口308促进,所述接口可以类似于图2中示出的接口208。
如上面结合图2所描述,I/O装置310可以使从主机(例如,主机计算装置、虚拟机等)接收的读取请求或写入请求重定向到逻辑电路系统304。逻辑电路系统304可以生成和/或存储与请求数据相对应的逻辑地址。如上所述,逻辑电路系统304可以将与请求数据相对应的逻辑地址存储在基地址寄存器中,例如逻辑电路系统304的地址寄存器306-N。
如图3中所示,管理程序312可以经由接口308与逻辑电路系统304和/或I/O装置310通信。管理程序312可以经由逻辑电路系统304的NIC存取组件(例如,图1中示出的NIC存取组件107)在逻辑电路系统304之间传输数据。此外,管理程序312可以与持久性存储器装置316、非持久性存储器装置330和中间存储器组件320通信。管理程序可以被配置成执行专门的指令以进行本文描述的操作和/或任务。
例如,管理程序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可以使I/O装置310将与数据相关联的地址映射以重定向到逻辑电路系统304并存储在逻辑电路系统304的地址寄存器306中。例如,管理程序312可以执行指令以控制读取和写入请求,所述请求涉及待经由I/O装置310选择性地重定向到逻辑电路系统304的数据。
I/O装置310可以将连续的虚拟地址映射到底层的分段物理地址。因此,在一些实施例中,I/O装置310可以允许虚拟地址映射到物理地址而不要求物理地址是连续的。此外,在一些实施例中,I/O装置310可以允许不支持足够长的存储器地址来寻址其相对应的物理存储器空间的装置在I/O装置310中被寻址。
由于与持久性存储器装置316相关联的数据转移的非确定性性质,在一些实施例中,逻辑电路系统304可以被配置成向计算系统301通知向或从持久性存储器装置316转移数据可能会发生延迟。作为初始化延迟的一部分,当数据请求被重定向到逻辑电路系统304时,逻辑电路系统304可以为计算系统301提供页错误处理。在一些实施例中,逻辑电路系统304可以生成中断并向管理程序312断言中断以发起将数据转移入或转移出持久性存储器装置316的操作。例如,由于与持久性存储器装置316相关联的数据检索和存储的非确定性性质,当请求持久性存储器装置316中存储的数据的转移时,逻辑电路系统304可以生成管理程序中断315。
响应于由逻辑电路系统304生成的页错误中断,管理程序312可以从逻辑电路系统304检索与数据相对应的信息。例如,管理程序312可以从逻辑电路系统接收NIC存取数据,所述数据可以包含与逻辑电路系统304的地址寄存器306中存储的数据相对应的逻辑到物理地址映射。
一旦数据已存储在持久性存储器装置316中,非持久性存储器装置330的一部分(例如,页、块等)可以被逻辑电路系统304标记为不可存取,使得计算系统301不尝试从非持久性存储器装置330存取数据。这可以允许通过页错误来拦截数据请求,所述页错误可以由逻辑电路系统304生成并且在已存储在持久性存储器装置316中的数据由I/O装置310请求时向管理程序312断言。
与响应于应用请求存取未由I/O装置310映射的存储器页而引发页错误异常的方法相比,在本公开的实施例中,上述页错误可以是由逻辑电路系统304响应于数据在I/O装置310中被映射到逻辑电路系统304而生成,所述逻辑电路系统继而将数据映射到持久性存储器装置316。
在一些实施例中,中间存储器组件320可以用于响应于由I/O装置310发起的数据请求而缓冲持久性存储器装置316中存储的数据。与可以经由PCIe接口传递数据的持久性存储器装置316相比,中间存储器组件320可以采用DDR接口来传递数据。因此,在一些实施例中,中间存储器组件320可以以确定性方式操作。例如,在一些实施例中,持久性存储器装置316中存储的请求数据可以暂时地从持久性存储器装置316转移到中间存储器组件320并且随后经由将中间存储器组件320耦合到I/O装置310的DDR接口转移到主机计算装置。
在一些实施例中,中间存储器组件可以包括计算系统301中部署的分立存储器组件(例如,SRAM高速缓存)。然而,实施例不限于此,并且在一些实施例中,中间存储器组件320可以是可以被分配用于响应于数据请求从持久性存储器装置316转移数据的非持久性存储器装置330的一部分。
在一个非限制性实例中,I/O装置(例如,I/O装置310)可以耦合到逻辑电路系统(例如,逻辑电路系统304)和非持久性存储器装置(例如,非持久性存储器装置330)。I/O装置可以被配置成接收包含将数据写入与非持久性存储器装置相对应的地址的命令的信令。I/O装置可以进一步被配置成至少部分地基于数据的一或多个特性将所接收的地址映射到逻辑电路系统中的地址或非持久性存储器装置中的物理地址。数据的一或多个特性可以包含数据被请求或存取的频率、自上次存取或请求数据以来经过的时间量、数据类型(例如,数据是否对应于特定文件类型,例如照片、文档、音频文件、应用文件等)等等。I/O装置可以进一步被配置成至少部分地基于所接收的地址被映射到逻辑电路系统中的地址来将数据写入逻辑电路系统,以使逻辑电路系统将数据写入持久性存储器装置中。在一些实施例中,I/O装置可以被配置成至少部分地基于所接收的地址被映射到非持久性存储器中的物理地址将数据写入与物理地址相对应的非持久性存储器装置的位置。
在一些实施例中,I/O装置可以包含映射表(例如,映射表314)。I/O装置可以被配置成在映射表中存储所接收的地址和所接收的地址映射到的相对应地址。因此,I/O装置可以响应于接收存取持久性存储器装置(例如,持久性存储器装置316)中先前存储的数据的请求而确定所接收的地址基于映射表被映射到逻辑电路系统中的地址,并且将存取数据的请求重定向到逻辑电路系统,例如以使逻辑电路系统从持久性存储器装置存取数据。
在另一个非限制性实例中,I/O装置(例如,I/O装置310),所述I/O装置可以耦合到逻辑电路系统(例如,逻辑电路系统304),所述逻辑电路系统耦合到持久性存储器装置(例如,持久性存储器装置316)和非持久性存储器装置(例如,非持久性存储器装置330)。I/O装置可以包含映射到非持久性存储器装置中的相应物理地址的第一地址和映射到逻辑电路系统中的相应地址的第二地址。I/O装置可以被配置成接收包含从与非持久性存储器装置相对应的地址存取数据的命令的信令,并且确定所接收的地址是第二地址中的一个。I/O装置可以进一步被配置成至少部分地基于所接收的地址被确定为第二地址中的一个而将命令重定向到逻辑电路系统,以使逻辑电路系统从持久性存储器装置存取数据。
在一些实施例中,I/O可以被配置成确定所接收的地址是第一地址中的一个,并且将命令重定向到非持久性存储器装置。I/O装置可以进一步被配置成响应于将命令重定向到非持久性存储器装置而从非持久性存储器装置接收数据。
在一些实施例中,第一地址和第二地址可以是相应的虚拟机物理地址。在一些实施例中,第一地址和第二地址可以存储在映射表(例如,映射表314)中。
在另一个非限制性实例中,系统可以包含逻辑电路系统(例如,逻辑电路系统304)、经由接口(例如,接口308)耦合到逻辑电路系统的非持久性存储器装置(例如,非持久性存储器装置330)以及耦合到逻辑电路系统并经由接口耦合到非持久性存储器装置的I/O装置(例如,I/O装置310)。I/O装置可以被配置成从主机接收包含从与非持久性存储器装置相对应的地址存取数据的命令的信令,并且至少部分地基于I/O装置中存储的映射表(例如,映射表314)而确定所接收的地址是对应于逻辑电路系统中的地址还是对应于非持久性存储器装置中的物理地址。I/O装置可以进一步被配置成基于所述确定而将命令重定向到逻辑电路系统或非持久性存储器装置或两者。例如,I/O装置可以被配置成响应于所接收的地址对应于逻辑电路系统中的地址而将命令重定向到逻辑电路系统。例如,I/O装置可以进一步被配置成响应于所接收的地址对应于非持久性存储器装置中的物理地址而将命令重定向到非持久性存储器装置。
在一些实施例中,响应于命令被从I/O装置重定向到逻辑电路系统,逻辑电路系统可以被配置成经由接口从持久性存储器装置检索数据并将所检索的数据转移到I/O装置。在一些实施例中,逻辑电路系统可以被配置成接收从I/O装置重定向的命令。响应于命令被从I/O装置重定向到逻辑电路系统,逻辑电路系统可以被配置成将命令转移到经由接口通信地耦合到逻辑电路系统的管理程序(例如,管理程序312)。逻辑电路系统可以进一步被配置成作为所转移命令的一部分通信地向管理程序断言中断信号。所述接口可以包含PCIe接口。
在一些实施例中,逻辑电路系统可以被配置成接收包含将数据写入与非持久性存储器装置相对应的地址的命令的信令。响应于从主机接收的命令,管理程序可以被配置成至少部分地基于数据的一或多个特性使I/O装置将与写入数据的命令相关联的地址映射到非持久性存储器装置中的物理地址或逻辑电路系统中的地址。如本文所述,数据的特性可以包含数据被请求或存取的频率、自上次存取或请求数据以来经过的时间量、数据类型(例如,数据是否对应于特定文件类型,例如照片、文档、音频文件、应用文件等)等等。
在一些实施例中,逻辑电路系统可以被配置成响应于所接收的地址对应于逻辑电路系统中的地址而将指示数据不可由非持久性存储器装置存取的信息与数据相关联。逻辑电路系统可以包含缓冲器,其被配置成存储待写入持久性存储器装置或转移到I/O装置的数据。
在一些实施例中,非持久性存储器装置可以包含动态随机存取存储器(DRAM)单元,而持久性存储器装置可以包含电阻式存储器单元阵列、相变存储器装置、自选存储器单元阵列或其组合。
图4是根据本公开的多个实施例的表示数据读取操作的流程图440。在框441,I/O装置,例如图2和3中示出的I/O装置210/310,可以使用与数据请求相对应的地址来发起读取操作。在一些实施例中,地址可以是物理地址,例如虚拟机物理地址。数据请求可以包含读取数据和相对应地址(例如,物理地址)的请求,所述相对应地址可以对应于持久性存储器装置(例如,本文的图2和3中示出的持久性存储器装置216/316)中的位置或非持久性存储器装置(例如,本文的图2和3中示出的非持久性存储器装置230/330)中的位置。如本文所述,关于物理地址是对应于持久性存储器装置中的位置还是对应于非持久性存储器装置中的位置的信息可以存储在I/O装置的多个映射表(例如,本文的图2和3中示出的映射表214/314)中。
通过利用映射表,I/O装置可以确定请求数据是存储在非持久性存储器装置中还是存储在持久性存储器装置中。如果数据存储在非持久性存储器装置中,则可以检索数据,并且可以满足数据请求。然而,如果数据存储在持久性存储器装置中(例如,如果数据的物理地址对应于持久性存储器装置中的位置),则在框442,I/O装置可以将数据请求重定向到逻辑电路系统(例如,本文的图1-3中示出的逻辑电路系统104/204/304)。如上所述,数据请求可以基于管理程序(例如,本文的图3中示出的管理程序312)的信息(例如,由其执行的命令或指令)重定向。
在框443,逻辑电路系统可以接收与数据请求相对应的地址寄存器存取信息。在一些实施例中,地址寄存器存取信息可以对应于地址寄存器(例如,本文的图1-3中示出的地址寄存器106/206/306)中的位置。例如,地址寄存器存取信息可以对应于逻辑电路系统中的地址寄存器中的位置,其中逻辑地址对应于存储数据的持久性存储器装置中的物理地址。
在框444,逻辑电路系统可以生成管理程序中断。例如,如上面结合图3所描述,一旦逻辑电路系统已从I/O装置接收重定向的数据请求,逻辑电路系统可以生成中断并且在管理程序(例如,本文的图3中示出的管理程序312)上断言中断。在一些实施例中,中断可以是在管理程序上断言以向管理程序通知事件需要立即关注的信号。例如,中断信号可以在管理程序上断言,以使管理程序中断当前正在执行的指令,但却执行与在框445收集地址寄存器存取信息相关联的指令。
在框445,管理程序可以从逻辑电路系统收集地址寄存器存取信息。例如,管理程序可以从逻辑电路系统接收与请求数据的物理地址相对应的逻辑地址信息。逻辑地址信息可以存储在逻辑电路系统中,逻辑电路系统的地址寄存器(例如,基地址寄存器)中,例如本文的图1-3中示出的地址寄存器106/206/306。
在框446,管理程序可以确定请求数据的物理位置。例如,基于地址寄存器存取信息以及因此与从逻辑电路系统收集的数据相关联的逻辑地址,管理程序可以确定持久性存储器装置中存储的数据的物理位置。
在框447,管理程序可以读取与地址寄存器存取信息相对应的数据。也就是说,在一些实施例中,管理程序可以使请求数据从持久性存储器装置读取(例如,检索)。
在框448,管理程序可以使数据转移到非持久性存储器装置。在一些实施例中,非持久性存储器装置可以是本文的图2和3中示出的非持久性存储器装置230/330,然而,实施例不限于此,并且在一些实施例中,管理程序可以使数据转移到中间存储器组件,例如本文的图2和3中示出的中间存储器组件220/320。
在框449,管理程序可以将与请求数据相对应的I/O装置数据写入逻辑电路系统。如上所述,I/O装置数据可以存储在逻辑电路系统的地址寄存器中。
在框450,逻辑电路系统可以完成数据读取事务。例如,逻辑电路系统可以将命令转移到I/O装置以向I/O装置通知数据读取请求已满足,并且数据将经由确定性接口转移以满足数据读取请求。
在框451,管理程序可以更新I/O装置(例如,本文的图2和3中示出的映射表214/314)以将I/O装置地址定向到非持久性存储器装置。例如,由于数据在框450从持久性存储器装置转移到非持久性存储器装置(例如,非持久性存储器装置和/或中间存储器组件),管理程序可以更新I/O装置的映射表,使得与请求数据相对应的地址映射到非持久性存储器装置。在一些实施例中,地址可以是物理地址,例如虚拟机物理地址。
在框452,管理程序可以记录使用哪个存储器来满足数据请求。例如,管理程序可以记录在从I/O装置接收数据请求时数据已存储在持久性存储器装置中。在一些实施例中,管理程序可以随时间使用所述信息来选择性地将数据写入定向到持久性存储器装置或非持久性存储器装置。
图5是根据本公开的多个实施例的表示数据写入操作的流程图560。在框561,I/O装置,例如图2和3中示出的I/O装置210/310,可以使用连同数据写入请求一起接收的地址来发起写入操作。地址可以是物理地址,例如虚拟机物理地址。所接收的地址(例如,物理地址)可以对应于持久性存储器装置(例如,本文的图2和3中示出的持久性存储器装置216/316)中的位置或非持久性存储器装置(例如,本文的图2和3中示出的非持久性存储器装置230/330)。如本文所述,关于所接收的地址是对应于持久性存储器装置中的位置还是对应于非持久性存储器装置中的位置的信息可以存储在I/O装置的多个映射表(例如,本文的图2和3中示出的映射表214/314)中。
如果数据应存储在非持久性存储器装置中,则可以将数据写入非持久性存储器装置,并且可以满足数据写入请求。然而,如果数据应存储在持久性存储器装置中,则在框562,I/O装置可以将数据写入请求重定向到逻辑电路系统(例如,本文的图1-3中示出的逻辑电路系统104/204/304)。如上所述,数据请求可以基于管理程序(例如,本文的图3中示出的管理程序312)提供的信息(例如,由其执行的命令或指令)重定向,所述信息可以用于确定所接收的地址应被映射到非持久性存储器装置中的位置还是持久性存储器装置中的位置。
在框563,逻辑电路系统可以接收与数据写入请求相对应的地址寄存器存取信息。在一些实施例中,地址寄存器存取信息可以对应于地址寄存器(例如,本文的图1-3中示出的地址寄存器106/206/306)中的位置。例如,地址寄存器存取信息可以对应于逻辑电路系统中的地址寄存器中的位置,其中逻辑地址对应于应存储数据的持久性存储器装置中的物理地址。
在框564,逻辑电路系统可以生成管理程序中断。例如,如上面结合图3所描述,一旦逻辑电路系统已从I/O装置接收重定向的数据写入请求,逻辑电路系统可以生成中断并且在管理程序(例如,本文的图3中示出的管理程序312)上断言中断。
在框565,管理程序可以从逻辑电路系统收集地址寄存器存取信息。例如,管理程序可以从逻辑电路系统接收与应存储数据的物理地址相对应的逻辑地址信息。
在框566,管理程序可以任选地将数据写入(或使数据被写入)持久性存储器装置。例如,基于重定向的数据写入请求,管理程序可以确定数据应被写入持久性存储器装置并使数据被写入持久性存储器装置。在任选地进行框566的实施例中,可以将数据在中间写入非持久性存储器装置。此外,与数据相对应的I/O装置数据可以任选地写入非持久性存储器装置,作为将数据写入非持久性存储器装置的一部分。
任选地,在框567,管理程序可以将数据写入(或使数据被写入)非持久性存储器装置。在一些实施例中,管理程序可以将数据写入非持久性存储器装置,使得在接收与数据相对应的读取请求的情况下可以经由确定性接口或总线检索数据。
在框568,管理程序可以更新I/O装置(例如,本文的图2和3中示出的映射表214/314)以将I/O装置虚拟地址定向到非持久性存储器装置。例如,如果数据在框567写入非持久性存储器装置,则管理程序可以在框568更新I/O装置的映射表,使得与写入非持久性存储器装置的数据相关联的虚拟地址被映射到非持久性存储器装置中的相应物理地址。因此,当I/O装置随后接收存取非持久性存储器装置中先前存储的相同数据的请求时,I/O装置可以基于映射表中存储的信息确定所述数据存储在非持久性存储器装置中,并将存取数据的请求重定向到非持久性存储器装置。
图6是根据本公开的多个实施例的表示用于分级存储器系统的示范性方法670的流程图。在框672,方法670可以包含接收包含写入与非持久性存储器装置(例如,本文的图2和3中示出的非持久性存储器装置230/330)相对应的数据的命令的信令。在框674,方法670可以包含至少部分地基于数据的一或多个特性来确定是将数据写入非持久性存储器装置还是写入持久性存储器装置(例如,本文的图2和3中示出的持久性存储器装置216/316)。
在框676,方法670可以包含响应于数据被确定为写入持久性存储器装置而通过将所接收的与非持久性存储器装置相对应的地址映射到逻辑电路系统(例如,本文的图2和3中示出的逻辑电路系统204/304)中的地址来更新输入/输出(I/O)装置中存储的映射表(例如,本文的图2和3中示出的映射表214/314)。在框678,方法670可以包含至少部分地基于将与非持久性存储器装置相对应的地址映射到逻辑电路系统中的地址而将数据写入逻辑电路系统。
在一些实施例中,方法670可以进一步包含确定(至少部分地基于数据的特性)数据应被写入非持久性存储器装置并且通过将所接收的地址映射到非持久性存储器装置中的物理地址来更新I/O装置中存储的映射表。响应于将所接收的地址映射到非持久性存储器装置中的物理地址,方法670可以进一步包含将数据写入非持久性存储器装置。在本实例中,数据可以经由非持久性存储器装置和I/O装置耦合到的接口(例如,本文的图2和3中示出的接口208/308)转移到非持久性存储器装置。
尽管已在本文中示出并描述了具体实施例,但所属领域的一般技术人员将了解,经计算以实现相同结果的布置可以取代所示出的具体实施例。本公开旨在覆盖本公开的一或多个实施例的修改或变化。应理解,以说明方式而非限制方式进行了以上描述。在查阅以上描述后,以上实施例和本文未具体描述的其它实施例的组合对于所属领域的技术人员来说将显而易见。本公开的一或多个实施例的范围包含其中使用以上结构和过程的其它应用。因此,应参考所附权利要求书连同此类权利要求所赋予的等效物的全范围确定本公开的一或多个实施例的范围。
在前述具体实施方式中,出于简化本公开的目的而将一些特征一起分组在单个实施例中。本公开的此方法不应被理解为反映本公开的所公开实施例必须比在每项权利要求中明确叙述那样使用更多特征的意图。实际上,如以下权利要求所反映,本发明主题在于单个所公开实施例的少于全部的特征。因此,以下权利要求由此并入具体实施方式中,其中每项权利要求作为单独的实施例独立存在。
Claims (20)
1.一种设备,其包括:
输入/输出(I/O)装置,其耦合到逻辑电路系统和非持久性存储器装置,其中所述I/O装置被配置成:
接收包括将数据写入与非持久性存储器装置相对应的地址的命令的信令;
至少部分地基于所述数据的一或多个特性,将所接收的地址映射到所述逻辑电路系统中的地址或所述非持久性存储器装置中的物理地址;并且
至少部分地基于所接收的地址被映射到所述逻辑电路系统中的所述地址,将所述数据写入所述逻辑电路系统,以使所述逻辑电路系统将所述数据写入所述持久性存储器装置中。
2.根据权利要求1所述的设备,其中所述I/O装置被配置成至少部分地基于所接收的地址被映射到所述非持久性存储器装置中的所述物理地址,将所述数据写入与所述物理地址相对应的所述非持久性存储器装置的位置。
3.根据权利要求1到2中任一权利要求所述的设备,其中所述I/O装置包括映射表,并且所述I/O装置被配置成在所述映射表中存储所接收的地址和所接收的地址被映射到的相对应地址。
4.根据权利要求1到2中任一权利要求所述的设备,其中所述I/O装置被配置成:
接收包括存取所述持久性存储器装置中先前存储的所述数据的命令的信令;
基于所述映射表,确定与待存取的所述数据相关联的地址被映射到所述逻辑电路系统中的所述地址;并且
将存取所述数据的所述命令重定向到所述逻辑电路系统。
5.一种设备,其包括:
输入/输出(I/O)装置,其耦合到逻辑电路系统,所述逻辑电路系统耦合到持久性存储器装置和非持久性存储器装置,所述I/O装置包括:
第一地址,其被映射到所述非持久性存储器装置中的相应物理地址;和
第二地址,其被映射到所述逻辑电路系统中的相应地址;
其中所述I/O装置被配置成:
接收包括从与非持久性存储器装置相对应的地址存取数据的命令的信令;
确定所接收的地址是所述第二地址中的一个;并且
至少部分地基于所接收的数据被确定为所述第二地址中的一个,将所述命令重定向到所述逻辑电路系统,以使所述逻辑电路系统从所述持久性存储器装置存取所述数据。
6.根据权利要求5所述的设备,其中所述第一地址和所述第二地址是相应虚拟机物理地址。
7.根据权利要求5到6中任一权利要求所述的设备,其中所述I/O装置被配置成:
确定所接收的地址是所述第一地址中的一个;
将所述命令重定向到所述非持久性存储器装置;并且
响应于将所述命令重定向到所述非持久性存储器装置,从所述非持久性存储器装置接收所述数据。
8.一种方法,其包括:
接收包括将数据写入与非持久性存储器装置相对应的地址的命令的信令;
至少部分地基于所述数据的一或多个特性,确定是将所述数据写入所述非持久性存储器装置还是写入持久性存储器装置;
响应于所述数据被确定为写入所述持久性存储器装置,通过将所接收的与所述非持久性存储器装置相对应的地址映射到逻辑电路系统中的地址来更新输入/输出(I/O)装置中存储的映射表;和
至少部分地基于将所接收的与所述非持久性存储器装置相对应的地址映射到所述逻辑电路系统中的所述地址,将所述数据写入所述逻辑电路系统。
9.根据权利要求8所述的方法,其进一步包括:
至少部分地基于所述数据的一或多个特性,确定所述数据应被写入所述非持久性存储器装置;和
通过将所接收的地址映射到所述非持久性存储器装置中的物理地址来更新所述I/O装置中存储的所述映射表;和
响应于将所接收的地址映射到所述非持久性存储器装置中的所述物理地址,将所述数据写入所述非持久性存储器装置。
10.根据权利要求9所述的方法,其中将所述数据写入所述逻辑电路系统包括经由所述非持久性存储器装置和所述I/O装置耦合到的接口将所述数据转移到所述逻辑电路系统。
11.一种系统,其包括:
逻辑电路系统;
非持久性存储器装置,其经由接口耦合到所述逻辑电路系统;和
输入/输出(I/O)装置,其耦合到所述逻辑电路系统并经由所述接口耦合到所述非持久性存储器装置;
其中所述I/O装置被配置成:
从主机接收包括从与非持久性存储器装置相对应的地址存取数据的命令的信令;
至少部分地基于所述I/O装置中存储的映射表,确定所接收的地址是对应于所述逻辑电路系统中的地址还是对应于所述非持久性存储器装置中的物理地址;并且
基于所述确定,将所述命令重定向到所述逻辑电路系统或所述非持久性存储器装置或两者。
12.根据权利要求11所述的系统,其中所述I/O装置被配置成:
响应于所接收的地址对应于所述逻辑电路系统中的所述地址,将所述请求重定向到所述逻辑电路系统;并且
响应于所接收的地址对应于所述非持久性存储器装置中的所述物理地址,将所述请求重定向到所述非持久性存储器装置。
13.根据权利要求11所述的系统,其中所述逻辑电路系统被配置成响应于所述命令被从所述I/O装置重定向到所述逻辑电路系统,经由所述接口从所述持久性存储器装置检索所述数据并将所检索的数据转移到所述I/O装置。
14.根据权利要求11到13中任一权利要求所述的系统,其中所述逻辑电路系统被配置成响应于所述命令被从所述I/O装置重定向到所述逻辑电路系统:
将所述命令转移到经由接口通信地耦合到所述逻辑电路系统的管理程序;并且
作为所转移命令的一部分,通信地向所述管理程序断言中断信号。
15.根据权利要求11到13中任一权利要求所述的系统,其中
所述逻辑电路系统被配置成接收包括将数据写入与所述非持久性存储器装置相对应的地址的命令的信令;并且
所述管理程序被配置成响应于从所述主机接收的所述请求:
至少部分地基于所述数据的一或多个特性,使所述I/O装置将与写入所述数据的所述命令相关联的所述地址映射到所述非持久性存储器装置中的物理地址或所述逻辑电路系统中的地址。
16.根据权利要求11到13中任一权利要求所述的系统,其中所述逻辑电路系统被配置成
响应于所接收的地址对应于所述逻辑电路系统中的所述地址,将指示所述数据不可由所述非持久性存储器装置存取的信息与所述数据相关联。
17.根据权利要求11到13中任一权利要求所述的系统,其中所述逻辑电路系统包括缓冲器,所述缓冲器被配置成存储待写入所述持久性存储器装置或转移到所述I/O装置的所述数据。
18.根据权利要求11到13中任一权利要求所述的系统,其中所述非持久性存储器装置包括动态随机存取存储器(DRAM)单元。
19.根据权利要求11到13中任一权利要求所述的系统,其中所述持久性存储器装置包括电阻式存储器单元阵列、相变存储器装置、自选存储器单元阵列或其组合。
20.根据权利要求11到13中任一权利要求所述的系统,其中所述接口包括外围组件互连快速(PCIe)接口。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US16/547,837 US11036434B2 (en) | 2019-08-22 | 2019-08-22 | Hierarchical memory systems |
US16/547,837 | 2019-08-22 | ||
PCT/US2020/046350 WO2021034654A1 (en) | 2019-08-22 | 2020-08-14 | Hierarchical memory systems |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114270311A true CN114270311A (zh) | 2022-04-01 |
Family
ID=74645764
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202080059173.4A Pending CN114270311A (zh) | 2019-08-22 | 2020-08-14 | 分级存储器系统 |
Country Status (5)
Country | Link |
---|---|
US (2) | US11036434B2 (zh) |
EP (1) | EP4018322A4 (zh) |
KR (1) | KR20220051229A (zh) |
CN (1) | CN114270311A (zh) |
WO (1) | WO2021034654A1 (zh) |
Family Cites Families (22)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH0785219B2 (ja) * | 1990-11-15 | 1995-09-13 | インターナショナル・ビジネス・マシーンズ・コーポレイション | データ処理システム及びデータ制御方法 |
US7889544B2 (en) * | 2004-04-05 | 2011-02-15 | Super Talent Electronics, Inc. | High-speed controller for phase-change memory peripheral device |
EP1182562B1 (en) * | 2000-08-21 | 2011-05-11 | Texas Instruments France | Smartcache with interruptible block prefetch |
US7269708B2 (en) | 2004-04-20 | 2007-09-11 | Rambus Inc. | Memory controller for non-homogenous memory system |
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 |
KR101498673B1 (ko) * | 2007-08-14 | 2015-03-09 | 삼성전자주식회사 | 반도체 드라이브, 그것의 데이터 저장 방법, 그리고 그것을포함한 컴퓨팅 시스템 |
JP5592942B2 (ja) | 2009-05-19 | 2014-09-17 | ヴイエムウェア インク | 仮想マシンシステムにおけるショートカット入出力 |
KR101081907B1 (ko) | 2010-01-05 | 2011-11-09 | 성균관대학교산학협력단 | 가상화 장치 |
US8892802B2 (en) | 2012-01-01 | 2014-11-18 | International Business Machines Corporation | Enhancing interrupt handling in a virtual environment |
JP2013142947A (ja) * | 2012-01-10 | 2013-07-22 | Sony Corp | 記憶制御装置、記憶装置および記憶制御装置の制御方法 |
KR20150020384A (ko) | 2013-08-13 | 2015-02-26 | 에스케이하이닉스 주식회사 | 데이터 저장 장치 및 그것의 동작 방법 |
KR102218712B1 (ko) | 2014-02-11 | 2021-02-22 | 삼성전자주식회사 | 저장 장치의 어드레스 맵핑 방법 및 저장 장치의 데이터 독출 방법 |
US9892037B2 (en) * | 2014-12-29 | 2018-02-13 | International Business Machines Corporation | Efficient and secure direct storage device sharing in virtualized environments |
US9690716B2 (en) | 2015-02-13 | 2017-06-27 | Intel Corporation | High performance persistent memory for region-centric consistent and atomic updates |
US10222990B2 (en) * | 2015-07-24 | 2019-03-05 | Sandisk Technologies Llc | Optimistic read operation |
US10579534B2 (en) * | 2015-12-21 | 2020-03-03 | Hewlett Packard Enterprise Development Lp | Caching IO requests |
US20170220592A1 (en) | 2016-02-01 | 2017-08-03 | Microsoft Technology Licensing, Llc | Modular data operations system |
US10296256B2 (en) * | 2016-07-14 | 2019-05-21 | Google Llc | Two stage command buffers to overlap IOMMU map and second tier memory reads |
US10489299B2 (en) * | 2016-12-09 | 2019-11-26 | Stormagic Limited | Systems and methods for caching data |
JP7003562B2 (ja) * | 2017-10-16 | 2022-01-20 | 富士通株式会社 | ミラーパケット制御プログラム、ミラーパケット制御方法、およびミラーパケット制御装置 |
KR102540964B1 (ko) * | 2018-02-12 | 2023-06-07 | 삼성전자주식회사 | 입출력 장치의 활용도 및 성능을 조절하는 메모리 컨트롤러, 애플리케이션 프로세서 및 메모리 컨트롤러의 동작 |
-
2019
- 2019-08-22 US US16/547,837 patent/US11036434B2/en active Active
-
2020
- 2020-08-14 EP EP20854046.8A patent/EP4018322A4/en active Pending
- 2020-08-14 CN CN202080059173.4A patent/CN114270311A/zh active Pending
- 2020-08-14 KR KR1020227009475A patent/KR20220051229A/ko not_active Application Discontinuation
- 2020-08-14 WO PCT/US2020/046350 patent/WO2021034654A1/en unknown
-
2021
- 2021-05-04 US US17/307,873 patent/US11614894B2/en active Active
Also Published As
Publication number | Publication date |
---|---|
US11036434B2 (en) | 2021-06-15 |
EP4018322A4 (en) | 2023-08-30 |
KR20220051229A (ko) | 2022-04-26 |
US20210055884A1 (en) | 2021-02-25 |
WO2021034654A1 (en) | 2021-02-25 |
US11614894B2 (en) | 2023-03-28 |
EP4018322A1 (en) | 2022-06-29 |
US20210255807A1 (en) | 2021-08-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20230072589A1 (en) | Hierarchical memory systems | |
CN114341816A (zh) | 三层层次型存储器系统 | |
US10996975B2 (en) | Hierarchical memory systems | |
CN114258528A (zh) | 阶层式存储器设备 | |
CN114258534B (zh) | 阶层式存储器系统 | |
CN114303124B (zh) | 分级存储器设备 | |
CN114341818B (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 |