CN112470113B - 存储器***中的隔离性能域 - Google Patents

存储器***中的隔离性能域 Download PDF

Info

Publication number
CN112470113B
CN112470113B CN201980046118.9A CN201980046118A CN112470113B CN 112470113 B CN112470113 B CN 112470113B CN 201980046118 A CN201980046118 A CN 201980046118A CN 112470113 B CN112470113 B CN 112470113B
Authority
CN
China
Prior art keywords
memory
instructions
context
amount
virtual
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
CN201980046118.9A
Other languages
English (en)
Other versions
CN112470113A (zh
Inventor
A·拉伊
P·哈拉纳
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 CN112470113A publication Critical patent/CN112470113A/zh
Application granted granted Critical
Publication of CN112470113B publication Critical patent/CN112470113B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • 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
    • 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/1009Address translation using page tables, e.g. page table structures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0629Configuration or reconfiguration of storage systems
    • G06F3/0631Configuration or reconfiguration of storage systems by allocating resources to storage systems
    • 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/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • 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/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • G06F12/0238Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
    • G06F12/0246Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
    • 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/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0893Caches characterised by their organisation or structure
    • G06F12/0897Caches characterised by their organisation or structure with two or more cache hierarchy levels
    • 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
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0659Command handling arrangements, e.g. command buffers, queues, command scheduling
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0662Virtualisation aspects
    • G06F3/0664Virtualisation aspects at device level, e.g. emulation of a storage device or system
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0662Virtualisation aspects
    • G06F3/0665Virtualisation aspects at area level, e.g. provisioning of virtual or logical volumes
    • 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30003Arrangements for executing specific machine instructions
    • 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/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5011Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
    • G06F9/5016Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals the resource being the memory
    • 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/45583Memory management, e.g. access or allocation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1041Resource optimization
    • G06F2212/1044Space efficiency improvement
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/15Use in a specific computing environment
    • G06F2212/152Virtualized environment, e.g. logically partitioned system
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/50Control mechanisms for virtual memory, cache or TLB
    • G06F2212/502Control mechanisms for virtual memory, cache or TLB using adaptive policy
    • 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)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Memory System (AREA)

Abstract

一种计算***,其包含具有存储器组件的第一存储器和第二存储器。所述计算***进一步包含处理装置,其可操作地与所述存储器组件耦合,以:与执行指令的上下文相关联地存储存储器比率;在所述上下文中执行一组指令;为所述上下文中所述一组指令的执行分配存储器的量,包含所述第一存储器的量和所述第二存储器的量;以及在所述上下文中所述一组指令的所述执行期间,经由所述第一存储器的所述量存取所述第二存储器的所述量。为在所述上下文中所述一组指令的所述执行分配的所述第一存储器的所述量与所述第二存储器的量之间的比率与所述存储器比率一致。

Description

存储器***中的隔离性能域
相关申请
本申请主张于2018年7月13日提交的题为“存储器***中的隔离性能域(IsolatedPerformance Domains in a Memory System)”第16/035,469号美国专利申请的优先权益,其全部公开内容通过引用并入本文。
技术领域
本文公开的至少一些实施例总体上涉及存储器***,并且更具体地,但不限于存储器***中的隔离性能域。
背景技术
存储器子***可为存储器模块,诸如双列直插存储器模块(DIMM)、小外形DIMM(SO-DIMM)或非易失性双列直插存储器模块(NVDIMM)。存储器子***可为存储***,诸如固态驱动器(SSD)或硬盘驱动器(HDD)。存储器子***可包含存储数据的一或多个存储器组件。存储器组件例如可为非易失性存储器组件和易失性存储器组件。存储器组件的实例包含存储器集成电路。一些存储器集成电路是易失性的并且需要电源来维持所存储的数据。一些存储器集成电路是非易失性的,即使在未通电时也可保留所存储的数据。非易失性存储器的实例包含快闪存储器、只读存储器(ROM)、可编程只读存储器(PROM)、可擦除可编程只读存储器(EPROM)和电可擦除可编程只读存储器(EEPROM)等。易失性存储器的实例包含动态随机存取存储器(DRAM)和静态随机存取存储器(SRAM)。通常,主机***可利用存储器子***将数据存储在存储器组件处并从存储器组件检索数据。
例如,计算机可包含主机***和附接到主机***的一或多个存储器子***。主机***可具有与一或多个存储器子***通信以存储和/或检索数据和指令的中央处理单元(CPU)。计算机的指令可包含操作***、装置驱动程序和应用程序。操作***管理计算机中的资源并为应用程序提供公用应用服务,诸如资源的存储器分配和时间共享。装置驱动程序操作或控制计算机中的特定类型的装置;操作***使用装置驱动程序来提供由装置类型提供的资源和/或服务。计算机***的中央处理单元(CPU)可运行操作***和装置驱动程序以向应用程序提供服务和/或资源。中央处理单元(CPU)可运行使用服务和/或资源的应用程序。例如,实现一种类型的计算机***应用程序的应用程序可指示中央处理单元(CPU)将数据存储在存储器子***的存储器组件中并从存储器组件检索数据。
计算机***的操作***可允许应用程序使用存储器的虚拟地址以将数据存储在计算机***的一或多个存储器子***的存储器组件中或从其检索数据。操作***将虚拟地址映射到连接到计算机***的中央处理单元(CPU)的一或多个存储器子***的物理地址。操作***使用存储器子***的物理地址来实现在虚拟地址处指定的存储器存取。
虚拟地址空间可划分为页面。虚拟存储器页面可映射到存储器子***中的物理存储器页面。操作***可使用分页技术以经由存储器模块中的存储器页面存取存储装置中的存储器页面。在不同的时刻,存储器模块中的同一存储器页面可用作代理以存取存储器装置或计算机***中的另一存储器装置中的不同存储器页面。
计算机***可包含管理程序(或虚拟机监视器)以创建或供应虚拟机。虚拟机是使用计算机***中可用的资源和服务虚拟地实施的计算装置。管理程序将虚拟机呈现给操作***,就好像虚拟机的组件是专用物理组件一样。客户操作***以类似于在计算机***中运行的主机操作***的方式在虚拟机中运行,以管理虚拟机中可用的资源和服务。管理程序允许多个虚拟机共享计算机***的资源,并允许虚拟机基本上彼此独立地在计算机上操作。
附图说明
在附图的图中通过实例而非限制的方式示出了实施例,其中相同的附图标记表示相似的元件。
图1示出了根据本公开的一些实施例的具有存储器子***的实例计算***。
图2示出了根据本文公开的至少一些实施例的具有不同类型的存储器和隔离存储器存取中的性能域的性能管理器的计算***。
图3示出了使用不同的存储器比率控制存储器存取性能的性能策略。
图4示出了具有经配置以经由管理程序和/或装置驱动程序管理存储器存取性能的性能管理器的***。
图5示出了耦合到装置驱动程序以管理存储器存取性能的性能管理器。
图6示出了用于管理存储器存取性能的方法。
图7是可在其中操作本公开的实施例的实例计算机***的框图。
具体实施方式
本公开的至少一些方面涉及使用根据预定存储器比率分配不同类型/性能的存储器以存取一或多个存储器子***中的存储器的性能策略。存储器子***在下文中也称为“存储器装置”。存储器子***的实例是经由存储器总线连接到中央处理单元(CPU)的存储器模块。存储器模块的实例包含双列直插存储器模块(DIMM)、小外形DIMM(SO-DIMM)、非易失性双列直插存储器模块(NVDIMM)等。存储器子***的另一实例是经由***互连(例如,输入/输出总线、存储区域网络)连接到中央处理单元(CPU)的存储装置。存储装置的实例包含固态驱动器(SSD)、闪存驱动器、通用串行总线(USB)闪存驱动器和硬盘驱动器(HDD)。在一些实施例中,存储器子***是提供存储器功能和存储功能两者的混合存储器/存储子***。通常,主机***可利用包含一或多个存储器组件的存储器子***。主机***可提供将存储在存储器子***处的数据,并且可请求将从存储器子***检索的数据。
传统的***可使用诸如硬盘驱动器的存储装置作为通过诸如DRAM的存储器模块存取的虚拟存储器。当应用程序存取硬盘驱动器上的虚拟存储器页面时,操作***可将页面从硬盘驱动器加载到DRAM并将虚拟存储器页面重新映射到DRAM。存取DRAM中的数据比存取硬盘驱动器中的数据更快。因此,在虚拟存储器页面被重新映射到DRAM之后,应用程序可以以改进的性能存取虚拟存储器页面中的数据。然而,在***中运行的不同应用程序可以竞争对DRAM的存取。因此,在***中运行的一组应用程序的存储器存取性能可彼此干扰。
本公开的至少一些方面通过实施指定不同类型/性能的存储器比率的性能策略来解决上述和其它缺陷。根据不同性能层中的指令的执行比率来分配存储器。例如,可以为根据用于高性能层的性能策略运行的应用程序提供在快速存储器与慢速存储器之间具有高比率的存储器;并且可以为根据用于低性能层的性能策略运行的另一应用程序分配在快速存储器和慢速存储器之间具有低存储器比率的存储器。当两个应用程序同时运行时,应用程序中的每一个根据其性能层分配其快速存储器的份额。因此,每个应用程序的存储器存取性能基本上由存储器比率确定;并且减少和/或消除了一个应用程序的存储器存取操作对另一应用程序的存储器性能的影响。因此,应用程序可在其各自的由存储器比率表征的隔离存储器性能域中运行。
图1示出了根据本公开的一些实施例的具有存储器子***110的实例计算***100。存储器子***110可包含介质,诸如存储器组件109A至109N。存储器组件109A至109N可为易失性存储器组件、非易失性存储器组件或其组合。在一些实施例中,存储器子***110是存储器模块。存储器模块的实例包含DIMM、NVDIMM和NVDIMM-P。在一些实施例中,存储器子***是存储***。存储***的实例是SSD。在一些实施例中,存储器子***110是混合存储器/存储子***。通常,计算环境可包含使用存储器子***110的主机***120。例如,主机***120可将数据写入存储器子***110并从存储器子***110读取数据。
主机***120可为诸如台式计算机、膝上型计算机、网络服务器、移动装置的计算装置,或者包含存储器和处理装置的此类计算装置。主机***120可包含或耦合到存储器子***110,使得主机***120可从存储器子***110读取数据或将数据写入存储器子***110。主机***120可经由物理主机接口耦合到存储器子***110。如本文所使用的,“耦合到”通常是指组件之间的连接,其可以是间接通信连接或直接通信连接(例如,没有中间组件),无论是有线的还是无线的,包含诸如电、光、磁等连接。物理主机接口的实例包含但不限于串行高级技术附件(SATA)接口、***组件互连高速(PCIe)接口、通用串行总线(USB)接口、光纤通道、串行连接SCSI(SAS)、双倍数据速率(DDR)存储器总线等。物理主机接口可用于在主机***120与存储器子***110之间传输数据。主机***120可进一步利用NVM高速(NVMe)接口,以在存储器子***110通过PCIe接口与主机***120耦合时存取存储器组件109A至109N。物理主机接口可提供用于在存储器子***110与主机***120之间传递控制、地址、数据和其它信号的接口。图1示出了作为实例的存储器子***110。通常,主机***120可经由同一通信连接、多个独立通信连接和/或通信连接的组合存取多个存储器子***。
主机***120包含处理装置118和控制器116。例如,主机***120的处理装置118可为微处理器、中央处理单元(CPU)、处理器的处理核心、执行单元等。在一些实例中,控制器116可被称为存储器控制器、存储器管理单元和/或启动器。在一个实例中,控制器116控制在主机***120与存储器子***110之间耦合的总线上的通信。
通常,控制器116可将命令或请求发送到存储器子***110以用于对存储器组件109A至109N的所需存取。控制器116可进一步包含接口电路以与存储器子***110通信。接口电路可将从存储器子***110接收的响应转换为用于主机***120的信息。
主机***120的控制器116可与存储器子***110的控制器115通信以执行操作,诸如在存储器组件109A至109N处读取数据、写入数据或擦除数据和其它此类操作。在一些实例中,控制器116集成在处理装置118的同一封装内。在其它实例中,控制器116与处理装置118的封装分离。控制器116和/或处理装置118可包含诸如一或多个集成电路和/或分立组件的硬件、缓冲存储器、高速缓冲存储器或其组合。控制器116和/或处理装置118可为微控制器、专用逻辑电路(例如,现场可编程门阵列(FPGA)、专用集成电路(ASIC)等)或另一合适的处理器。
存储器组件109A至109N可包含不同类型的非易失性存储器组件和/或易失性存储器组件的任何组合。非易失性存储器组件的实例包含负与(NAND)型快闪存储器。存储器组件109A至109N中的每一个可包含存储器单元的一或多个阵列,诸如单级单元(SLC)或多级单元(MLC)(例如,三级单元(TLC)或四级单元(QLC))。在一些实施例中,特定存储器组件可包含存储器单元的SLC部分和MLC部分两者。存储器单元中的每一个可存储主机***120所使用的一或多个数据位(例如,数据块)。尽管描述了诸如NAND型快闪存储器的非易失性存储器组件,但是存储器组件109A至109N可基于诸如易失性存储器的任何其它类型的存储器。在一些实施例中,存储器组件109A至109N可以是但不限于随机存取存储器(RAM)、只读存储器(ROM)、动态随机存取存储器(DRAM)、同步动态随机存取存储器(SDRAM)、相变存储器(PCM)、磁随机存取存储器(MRAM)、自旋转移矩(STT)-MRAM、铁电随机存取存储器(FeTRAM)、铁电RAM(FeRAM)、导电桥接RAM(CBRAM)、电阻随机存取存储器(RRAM)、基于氧化物的RRAM(OxRAM)、负或(NOR)快闪存储器、电可擦除可编程只读存储器(EEPROM)、基于纳米线的非易失性存储器、结合忆阻器技术的存储器和非易失性存储器单元的交叉点阵列。非易失性存储器的交叉点阵列可结合可堆叠的交叉网格数据存取阵列来基于体电阻的改变执行位存储。另外,与许多基于快闪的存储器相比,交叉点非易失性存储器可执行现场写入操作,其中可在不预先擦除非易失性存储器单元的情况下对非易失性存储器单元进行编程。此外,可将存储器组件109A至109N的存储器单元分组成存储器页面或数据块,其可指用于存储数据的存储器组件的单元。
存储器子***110的控制器115可与存储器组件109A至109N通信以执行操作,诸如在存储器组件109A至109N处读取数据、写入数据或擦除数据和其它此类操作(例如,响应于控制器116在命令总线上调度的命令)。控制器115可包含诸如一或多个集成电路和/或分立组件的硬件、缓冲存储器或其组合。控制器115可为微控制器、专用逻辑电路(例如现场可编程门阵列(FPGA)、专用集成电路(ASIC)等)或另一合适的处理器。控制器115可包含处理装置117(处理器),其经配置以执行存储在本地存储器119中的指令。在所示的实例中,控制器115的本地存储器119包含嵌入式存储器,其经配置以存储用于执行控制存储器子***110的操作(包含处理存储器子***110与主机***120之间的通信)的各种过程、操作、逻辑流程和例程的指令。在一些实施例中,本地存储器119可包含存储存储器指针、获取数据等的存储器寄存器。本地存储器119还可包含用于存储微代码的只读存储器(ROM)。虽然图1中的实例存储器子***110被示为包含控制器115,但在本公开的另一实施例中,存储器子***110可不包含控制器115,而是可依赖于外部控制(例如,由外部主机提供,或者由与存储器子***分离的处理器或控制器提供)。
通常,控制器115可从主机***120接收命令或操作,并且可将该命令或操作转换为指令或适当命令以实现对存储器组件109A至109N的所需存取。控制器115可负责其它操作,诸如损耗均衡操作、垃圾收集操作、误差检测和误差校正码(ECC)操作、加密操作、高速缓存操作以及与存储器组件109A至109N相关联的逻辑块地址与物理块地址之间的地址转换。控制器115可进一步包含主机接口电路,以经由物理主机接口与主机***120通信。主机接口电路可将从主机***接收的命令转换为命令指令以存取存储器组件109A至109N,并将与存储器组件109A至109N相关联的响应转换为用于主机***120的信息。
存储器子***110还可包含未示出的额外电路或组件。在一些实施例中,存储器子***110可包含高速缓存或缓冲器(例如,DRAM)和地址电路(例如,行解码器和列解码器),其可从控制器115接收地址并解码地址以存取存储器组件109A至109N。
计算***100包含性能管理器113,其在主机***120中,可通过强制分配用于执行指令的较快存储器(例如,109A)对较慢存储器(例如,109N)的比率来管理执行指令的存储器存取性能。在一些实施例中,主机***120中的控制器116和/或处理装置118包含性能管理器113的至少一部分。例如,控制器116和/或处理装置118可包含实施性能管理器113的逻辑电路。例如,主机***120的处理装置118(处理器)可经配置以执行存储在存储器中的指令,用于执行本文描述的性能管理器113的操作。在一些实施例中,性能管理器113是主机***120的操作***、装置驱动程序或应用程序的一部分。
性能管理器113可将一组指令的执行的性能层与分配给该组指令的不同类型/性能的存储器之间的存储器比率相关联。当在需要特定性能层的上下文中执行该组指令时,根据性能层的存储器比率将不同类型/性能的存储器分配给该组指令的执行。所分配的不同类型/性能的存储器可通过使用虚拟地址的该组指令来统一地寻址,就好像为执行该组指令分配相同类型/性能的存储器一样。分页技术的使用仅限于所分配的不同类型/性能的存储器之间的存储器交换内。存储器比率确定在使用分页技术时由存储器交换引起的性能影响;并且将存储器交换限制在性能层的存储器比率内隔离了执行一个应用程序对另一应用程序的性能影响。下文描述关于性能管理器113的操作的进一步细节。
在一个实例中,中央处理单元(CPU)可存取在连接到CPU的一或多个存储器子***中提供的两组存储器。例如,一组存储器可能比另一组存储器慢;并且中央处理单元(CPU)可经配置以使用分页技术经由较快存储器组存取较慢存储器组。例如,一组存储器不能由CPU直接寻址,并且耦合到可由CPU直接寻址的另一组存储器;并且中央处理单元(CPU)可经配置以以类似于使用分页技术的方式经由可直接寻址的存储器组存取不可直接寻址的存储器组。当前正在存取的虚拟存储器页面位于较慢存储器组中而不是较快存储器组中时,较快存储器组中的页面可用于为较慢存储器组中的页面提供服务;并且装置驱动程序用于从较慢存储器组中获取页面的数据,将获取的数据页面存储在较快存储器组中的分配页面中,使得可经由存取较快存储器组中的分配页面完成对虚拟存储器的页面的数据存取。当根据正在运行的应用程序的存储器比率分配和使用较快存储器组中的页数和较慢存储器组中的页数时,性能管理器113可限制正在运行的应用程序以使用不超过根据存储器比率分配的较快存储器组中的页数。结果,防止了正在运行的应用程序使用较快存储器组的过多页面并降低了其它正在运行的应用程序的存储器存取性能。
图2示出了根据本文公开的至少一些实施例的具有不同类型的存储器和隔离存储器存取中的性能域的性能管理器113的计算***。
图2的计算***包含主机***120、经由存储器总线203连接到主机***120的存储器模块205,以及经由***互连207连接到主机***120的存储装置209。存储装置209和存储器模块205是图1所示的存储器子***110的实例。
主机***120具有处理装置118,其可为中央处理单元或具有一或多个处理核心的微处理器。主机***120可具有存储器管理单元213和高速缓冲存储器211。存储器管理单元213和/或高速缓冲存储器211的至少一部分可任选地集成在处理装置118的同一集成电路封装内。
图2所示的存储器模块205具有多种类型的存储器(例如,221和223)。例如,A型存储器221比B型存储器223快。
存储器总线203通常以比***互连207更快的速度操作。例如,存储器总线203可为双倍数据速率总线;并且***互连207可为***组件互连高速(PCIe)总线、串行高级技术附件(SATA)总线、通用串行总线(USB)总线和/或存储区域网络。存储模块205中的B型存储器223的存取速度可比存取存储装置209中的B型存储器223快。
图2所示的存储装置209具有多种类型的存储器(例如,223和225)。例如,B型存储器223比C型存储器225快。
通常,多个存储器模块(例如,205)可耦合到存储器总线203;并且多个存储装置(例如,209)可耦合到***互连207。在一些实例中,***互连207和存储装置(例如,209)是任选的,并且可不存在于计算***中。在其它实例中,存储器总线203和存储器模块(例如,205)是任选的,并且可不存在于计算***中。
在可能的配置中,当多个存储器模块(例如,205)耦合到存储器总线203时,存储器模块(例如,205)中的一个具有A型存储器221;并且另一存储器模块具有B型存储器223,其可以以低于独立存储器模块(例如,205)中的A型存储器221的速度存取。
类似地,在可能的配置中,当多个存储装置(例如,205)耦合到***互连207时,存储装置(例如,209)中的一个具有B型存储器223,并且存储装置中的另一个具有C型存储器225,其可以以低于独立存储装置(例如,209)中的B型存储器221的速度存取。
处理装置118和/或MMU 213经配置以经由指令(例如,操作***和/或一或多个装置驱动程序)使用分页技术和/或存储器映射接口经由计算机***中的存储器的另一部分存取计算机***中的存储器的一部分。
例如,可经由存储器模块205(或另一存储器模块)的A型存储器221来存取存储器模块205的B型存储器223。
例如,可经由存储器模块205的A型存储器221和/或经由存储器模块205的B型存储器223来存取存储装置209的B型存储器223。
例如,可经由存储模块205的A型存储器221、经由存储模块205的B型存储器223,和/或经由存储装置209(或另一存储装置)的B型存储器223来存取存储装置209的C型存储器225。
例如,在一些实例中,同一存储器模块205(或不同的存储器模块)中的A型存储器221和B型存储器223可由处理装置118的存储器管理单元213通过存储器总线203直接且单独地寻址。然而,由于B型存储器223比A型存储器221慢,因此希望经由A型存储器221存取B型存储器223。
在其它实例中,仅可通过寻址存储器模块205的A型存储器221来存取存储器模块205的B型存储器223(例如,由于存储器总线203的地址部分中的大小限制)。
控制器X 227可设置在存储器模块205中,以管理存储器模块205内的A型存储器221与B型存储器223之间的数据传送,尤其是当存储器模块205的B型存储器223不能使用存储器总线203直接寻址时。
在一个变型中,存储器模块205的存储器(例如,221和223)可在存储器模块205内单独地具有相同的性能;然而,存储器管理单元213和/或处理装置118被限制为经由存储器223或经由存储器221存取(例如,由于存储器总线203的地址部分中的大小限制)。因此,对于处理装置118,存储器223看起来比存储器221慢。
通常,存储器子***(例如,205和209)可包含诸如存储器(例如,221,…,223,…,225)的介质。存储器(例如,221,…,223,…,225)可包含易失性存储器、非易失性存储器(NVM)和/或其组合。在一些实施例中,计算机***包含作为存储装置209的至少一个存储器子***。存储装置209的实例是固态驱动器(SSD)。在一些实施例中,计算机***包含至少一个存储器子***,其经配置为存储器模块205的混合存储器/存储***。处理装置118可将数据写入存储器子***(例如,205和209)的每一个,并且直接或间接地从存储器子***(例如,205和209)读取数据。
图2的计算***可用于实施台式计算机、膝上型计算机、网络服务器、移动装置或包含存储器和处理装置的此类计算装置。处理装置118可从存储器子***(例如,205和209)读取数据或向其写入数据。
处理装置118可经由一或多个物理接口(例如,203、207)耦合到存储器子***(例如,209)。
如本文所使用的,“耦合到”通常是指组件之间的连接,其可以是间接通信连接或直接通信连接(例如,没有中间组件),无论是有线的还是无线的,包含诸如电、光、磁等连接。
物理主机接口的实例包括但不限于串行高级技术附件(SATA)接口、***组件互连高速(PCIe)接口、通用串行总线(USB)接口、光纤通道、小型计算机***接口(SCSI)、串行连接SCSI(SAS)等。
物理主机接口可用于在处理装置118与存储器子***(例如,209)之间传输数据。当存储器子***209经由PCIe接口与***互连207耦合时,该计算机***还可利用NVM高速(NVMe)接口来存取存储器(例如,223,…,225)。物理主机接口可提供用于在存储器子***(例如,209)与处理装置118之间传递控制、地址、数据和其它信号的接口。
通常,存储器子***(例如,205和209)包含印刷电路板,其连接一组提供存储器(例如,221,…,223,…,225)的存储器装置,诸如存储器集成电路。存储器子***(例如,205和209)上的存储器(例如,221,…,223,…,225)可包含不同类型的非易失性存储器装置和/或易失性存储器装置的任意组合。
非易失性存储器装置的实例包含负和(NAND)型快闪存储器或负或(NOR)型快闪存储器。存储器集成电路可包含一或多个存储器单元阵列,诸如单级单元(SLC)、多级单元(MLC)、三级单元(TLC)、四级单元(QLC)等。在一些实施方案中,特定存储器装置可包含存储器单元的SLC部分和MLC(或TLC或QLC)部分两者。存储器单元中的每一个可存储由主机***120使用的一或多个数据位。尽管描述了诸如NAND型快闪存储器的非易失性存储器装置,但存储器集成电路可基于诸如易失性存储器的任何其它类型的存储器。在一些实施方案中,存储器(例如,221,…,223,…,225)可包含但不限于随机存取存储器(RAM)、只读存储器(ROM)、动态随机存取存储器(DRAM)、静态随机存取存储器(SRAM)、同步动态随机存取存储器(SDRAM)、相变存储器(PCM)、磁随机存取存储器(MRAM)、负或(NOR)快闪存储器、电可擦除可编程只读存储器(EEPROM)和/或非易失性存储器单元的交叉点阵列。非易失性存储器的交叉点阵列可结合可堆叠的交叉网格数据存取阵列来基于体电阻的改变执行位存储。另外,与许多基于快闪的存储器相比,交叉点非易失性存储器可执行现场写入操作,其中可在不预先擦除非易失性存储器单元的情况下对非易失性存储器单元进行编程。此外,可将存储器装置的存储器单元分组成存储器页面或数据块,其可指用于存储数据的存储器装置的单元。
存储器子***(例如,205或209)可具有控制器(例如,227或229),其与存储器(例如,221,…,223,…,225)通信以响应于来自处理装置118和/或存储器管理单元(MMU)213的请求、命令或指令而执行操作,诸如读取数据、写入数据或擦除存储器(例如,221,…,223,…,225)中的数据和其它此类操作。控制器(例如,227或229)可包含诸如一或多个集成电路和/或分立组件的硬件、缓冲存储器或其组合。控制器(例如,227或229)可为微控制器、专用逻辑电路(例如,现场可编程门阵列(FPGA)、专用集成电路(ASIC)等)或另一合适的处理器。控制器(例如,227或229)可包含经配置以执行存储在本地存储器中的指令的一或多个处理器(处理装置)。
控制器(例如,227或229)的本地存储器可包含嵌入式存储器,其经配置以存储用于执行控制存储器子***(例如,205或209)的操作(包含处理存储器子***(例如,205或209)与处理装置118/MMU 213之间的通信,以及下文更详细描述的其它功能)的各种过程、操作、逻辑流程和例程的指令。控制器(例如,227或229)的本地存储器219可包含用于存储微代码的只读存储器(ROM)和/或存储例如存储器指针、获取数据等的存储器寄存器。
虽然图2中的实例存储器子***(例如,205和209)被示为包含控制器(例如,227和229),但在本公开的另一实施例中,存储器子***(例如,205或209)可不包含控制器(例如,227或229),而是可依赖于外部控制(例如,由MMU 213提供,或者由与存储器子***(例如,205或209)分离的处理器或控制器提供)。
通常,控制器(例如,227或229)可根据用于通信信道(例如,203或207)的标准通信协议从处理装置118或MMU 213接收命令、请求或指令,并且可遵照标准协议将命令、请求或指令转换为存储器子***(例如,205或209)内的详细指令或适当的命令,以实现对存储器(例如,221,…,223,…,225)的所需存取。例如,控制器(例如,227或229)可负责诸如损耗均衡操作、垃圾收集操作、误差检测和误差校正码(ECC)操作、加密操作、高速缓存操作以及与存储器(例如,221,…,223,…,225)相关联的逻辑块地址与物理块地址之间的地址转换等操作。控制器(例如,227或229)可进一步包含主机接口电路,以经由物理主机接口与处理装置118通信。主机接口电路可将从处理装置118接收的命令转换为用以存取存储器装置(例如,221,…,223,…,225)以及将与存储器装置(例如,221,…,223,…,225)相关联的响应转换为用于处理装置118的信息的命令指令。
存储器子***(例如,205或209)还可包含未示出的额外电路或组件。在一些实施方案中,存储器子***(例如,205或209)可包含高速缓存或缓冲器(例如,DRAM)和地址电路(例如,行解码器和列解码器),其可从控制器(例如,227或229)或MMU 213接收地址的并对地址进行解码以存取存储器(例如,221,…,223,…,225)。
在一个实例中,***互连207或存储器总线203具有一或多个连接器,以向存储器子***(例如,209或205)供电和/或经由预定协议与存储器子***(例如,209或205)通信;并且存储器子***(例如,209或205)具有一或多个连接器以接收来自处理装置118的电源、数据和命令。例如,***互连207上的连接器与存储器子***(例如,209)上的连接器之间的连接可利用PCIe总线或SATA总线。
通常,处理装置118可执行一或多个操作***以提供服务,包含加速存储器存取,其中使用分页技术和/或存储器映射接口经由计算机***中的存储器的另一部分存取计算机***中的存储器的一部分,如下文进一步讨论的。
性能管理器213基于在诸如图3所示的性能策略的性能策略中指定的预定存储器比率来限制由一组指令的运行实例使用的较快存储器与较慢存储器之间的比率。
图3示出了使用不同存储器比率来控制存储器存取性能的性能策略131。
性能策略131标识可在其中执行指令的不同上下文(例如,141,143,…,147)。上下文是形成执行指令的设置的环境。可基于用户、应用程序、帐户和/或虚拟机来标识上下文。例如,一个上下文可以是特定应用程序的执行;另一上下文可以是特定帐户中的任何应用程序的执行;并且又一上下文可以是由特定虚拟机中的特定用户的任何应用程序的执行。
对于上下文141(143,…或147),性能策略131标识较快存储器271与较慢存储器273之间的存储器比率151(153,…或157)。例如,每个虚拟机或用户帐户可被标识为上下文141(143,…或147),并为在虚拟机或用户帐户中运行的操作***和/或应用程序分配存储器比率151(153,…或157)。
例如,较慢存储器273可为存储器模块205中的存储器223,而较快存储器271是同一存储器模块205(或连接到与存储器模块205相同的存储器总线203的另一存储器模块)中的存储器221。
例如,较慢存储器可为存储装置209中的存储器223;较快存储器可为存储器模块205中的同一类型的存储器223,或存储器模块205中的存储器221。
例如,较慢存储器可为存储装置209中的存储器225;较快存储器可为同一存储装置209或连接到***互连207的另一存储装置中的存储器223,或存储器模块205中的存储器(例如,223或221)。
例如,当上下文141中的指令执行实例需要一定量的存储器时,用于执行实例的较快存储器271和较慢存储器273的组合受到比率151的限制。当经由较快存储器271存取用于执行实例的较慢存储器273时,从较慢存储器273向较快存储器271加载页面以存取分配给执行实例的较慢存储器273的次数由比率151确定。
例如,较快存储器271与较慢存储器273之间的比率可以是1:1、1:2、1:4等。当比率为1:4时,较慢存储器273的四页共享较快存储器271的一页;并且较快存储器271的一页负责通过分页技术或存储器交换来提供对较慢存储器273的平均四页的存储器存取。
通常,一组指令可在不同上下文中执行。例如,当在需要存储器比率为1:2的上下文中执行指令时,较慢存储器273的四页可通过较快存储器271的两页存取。当在需要存储器比率为1:4的上下文中执行指令时,较慢存储器273的四页可通过较快存储器271的一页存取,从而提供比存储器比率为1:2更低的存储器存取性能层。
在一些实例中,在较慢存储器273上分配指令所请求的存储器;并且当存取较慢存储器273时,分配较快存储器271。然而,较快存储器271的分配受到用于执行指令的存储器比率的限制。例如,当指令需要四页存储器时,为指令分配四页较慢存储器273。当指令有效且用于其执行的存储器比率为1:2时,可使用最多2页的较快存储器271存取较慢存储器273的四页。当指令在一段时间内主动使用少于两页的较快存储器271时,较快存储器271的一或多页可卸载到较慢存储器273。
在一些实例中,分配用于执行指令的存储器是较快存储器271和较慢存储器273的组合,其中存储器比率由执行的上下文确定。当存取较慢存储器273中的页面时执行交换。
例如,指令的执行请求当前在较慢存储器273的页面中的地址处的存储器存取,分配用于执行指令的较快存储器271中的内容页面可与较慢存储器273的页面交换,使得该地址现在重新映射到较快存储器271的页面。在交换之后,先前参考较快存储器的页面的地址被重新映射到较慢存储器273的页面;并且先前参考较慢存储器273的页面的地址被重新映射到较快存储器271的页面。
在一些实例中,较快存储器271的页面中的内容与较慢存储器273的页面中的内容的交换可通过使用较慢存储器273或较快存储器271中的空闲页面来执行。
例如,可将较快存储器271的页面中的内容复制到较慢存储器273中的空闲页面;在将较慢存储器273的页面中的内容复制到较快存储器273的页面之后,可释放较慢存储器273的页面。在交换之前映射到慢速存储器273的页面的地址可在交换之后重新映射到较快存储器271的页面;并且在交换之前映射到较快存储器271的页面的地址可在交换之后重新映射到空闲页面,其中较快存储器273的页面的内容被复制到该空闲页面。
例如,可将慢速存储器273的页面中的内容复制到较快存储器271中的空闲页面;在将较快存储器271的页面中的内容复制到慢速存储器273的页面之后,可释放较快存储器273的页面。在交换之前映射到慢速存储器273的页面的地址可在交换之后重新映射到空闲页面,其中慢速存储器273的页面的内容被复制到该空闲页面;并且在交换之前映射到较快存储器271的页面的地址可在交换之后重新映射到较慢存储器273的页面。
图3示出了为上下文141,143,…,147指定存储器比率151,153,…,157的实例。在一些实施方案中,这些上下文141,143,…,147中的每一个被分配一个性能层;并且不同的性能层与不同的存储器比率预先相关联。因此,可根据上下文的性能层确定上下文的存储器比率。
图4示出了具有经配置以经由管理程序和/或装置驱动程序管理存储器存取性能的性能管理器113的***。例如,可使用图3的性能策略在图1或2的计算机***中实施图4的***。
图4的***包含主机操作***241,其可在图1或2的计算机***的处理装置118中运行。主机操作***241包含一或多个装置驱动程序(例如,247),其使用存储器子***(诸如存储器模块205和/或存储装置209)的存储器(例如,221,…,223,…,225)提供存储器服务。
主机操作***241包含提供虚拟机249的管理程序245。虚拟机249具有使用图1或2的计算***的硬件经由主机操作***241提供的资源和服务实现的虚拟硬件。例如,管理程序245可使用存储器子***(诸如存储器模块205和/或存储装置209)的存储器(例如,221,…,223,…,225)的一部分提供虚拟存储器作为虚拟机249的一部分。
虚拟机249允许客户操作***243向运行在客户操作***243中的应用程序(例如,251,…,253)提供资源和/或服务,其方式如同在物理计算机上运行的操作***243,该物理计算机具有与虚拟机中的配置相同或相似的硬件集。管理程序245管理在虚拟机中提供的虚拟硬件和由主机操作***241管理的计算***中的硬件的服务之间的映射。
图4示出了其中由管理程序245供应虚拟机249的实例。通常,管理程序245可供应多个虚拟机(例如,249),这些虚拟机可运行同一客户操作***243或不同的客户操作***(例如,243)。可以分配不同组的用户和/或应用程序以使用不同的虚拟机。
虚拟机(例如,249)可用于标识执行上下文(例如,141,143,…,147)。性能管理器113强制执行上下文(例如,141,143,…,147)的存储器比率(例如,151,153,…,157)。
在一些实例中,主机操作***241专用于提供用于供应虚拟机的服务,而不运行其它应用程序。替代地,主机操作***241可提供额外服务来支持其它应用程序,诸如应用程序(例如,251,…,253)。
应用程序的标识还可用于执行上下文(例如,141,143,…,147)的标识。
装置驱动程序247可经配置以通过将页面加载到较快存储器271中来存取较慢存储器273的页面,从而在较快存储器271上对虚拟机249中执行的存储器操作进行操作。优选地,装置驱动程序247可预测较慢存储器273的页面何时将被虚拟机249使用,从而可在虚拟机249请求存取该页面之前执行存储器交换。
优选地,较慢存储器273的页面与较快存储器271的页面之间的存储器交换在同一存储器子***内执行,诸如在同一存储器模块205或同一存储装置209内,以避免或减少连接到处理装置118(诸如存储器总线203和/或***互连207)的通信信道中的拥塞。
例如,响应于来自装置驱动程序247和/或存储器管理单元(MMU)213的一或多个命令、请求或指令,在存储器模块205中的控制器227的控制下,可通过在存储器模块205中的较慢存储器223与存储器模块205中的较快存储器221之间交换数据来执行存储器交换。
例如,响应于来自装置驱动程序247和/或存储器管理单元(MMU)213的一或多个命令、请求或指令,在存储装置209中的控制器229的控制下,可通过在存储装置209中的较慢存储器225与存储装置209中的较快存储器223之间交换数据来执行存储器交换。
在一个实施例中,管理程序245不仅请求装置驱动程序247存取存储器子***(例如,存储器模块205或存储装置209)中的存储器(例如,221,…,223,…或225),而且还向装置驱动程序247和/或性能管理器113提供可用于标识存储器存取的上下文的信息,从而可强制用于上下文的存储器比率。
图5示出了耦合到装置驱动程序247以管理存储器存取性能的性能管理器113。
图5中的管理程序245耦合到转换后备缓冲器(TLB)267,其定义由管理程序245供应给虚拟机(例如,249)的虚拟存储器的页面与存储器(例如,271或273)中的页面之间的映射。
处理装置118可以比在物理地址263处的较慢存储器273的页面更快地存取在物理地址261处的较快存储器271的页面。期望并且在一些实例中需要经由较快存储器271的页面服务于较慢存储器273的页面的数据260。
性能管理器113具有一组性能策略131,其标识用于诸如由管理程序245设置的虚拟机249等上下文的较快存储器271与较慢存储器273之间存储器比率。
当虚拟机249正在存取数据260时,该数据在较慢存储器273中但不在较快存储器271中,管理程序245请求装置驱动程序247将数据260从较慢存储器273加载到较快存储器271。装置驱动程序247与控制器228(例如,存储器模块205的控制器227、存储装置229的控制器229,和/或存储器管理单元(MMU)213)通信以将数据260加载到较快存储器271。一旦数据260在较快存储器271中,管理程序245就可更新转换后备缓冲器(TLB)267,以允许将页面的虚拟地址转换为较快存储器271的物理地址261,从而可在较快存储器271中读取和/或修改数据260。
当不使用数据260时,可将数据260卸载回较慢存储器273,以保存在较快存储器271中对数据260进行使用时对数据260的更改。
基于较慢存储器273用于执行上下文的页数大小和存储器比率,性能管理器113使用存储器比率(例如,141)来确定可在较快存储器271中同时使用多少页面用于执行上下文,诸如虚拟机249。例如,如果在慢速存储器273中为虚拟机249供应n个页面并且存储器比率为1:x,则性能管理器113限制虚拟机在存取n页的较慢存储器273时使用不超过n/x页的较快存储器271。
管理程序245向性能管理器113提供与执行上下文有关的信息。性能管理器113控制装置驱动程序247在性能策略131中指定的用于执行上下文的存储器比率的限制下执行页面交换。
图6示出了用于管理存储器存取性能的方法。图6的方法可由处理逻辑执行,其可包含硬件(例如,处理装置、电路、专用逻辑、可编程逻辑、微代码、装置的硬件、集成电路等)、软件(例如,在处理装置上运行或执行的指令)或其组合。在一些实施例中,图6的方法至少部分地由图1或2的性能管理器113执行。尽管以特定的顺序或次序示出,但是除非另有说明,否则可修改过程的次序。因此,所示的实施例应当仅被理解为实例,并且可以以不同次序执行所示的过程且可并行执行一些过程。另外,可在各种实施例中省略一或多个过程。因此,并非在每一实施例中都需要所有过程。其它过程流程也是可能的。
在框181,性能管理器113与执行指令的上下文(例如,141,143,…,147)相关联地存储存储器比率(例如,151,153,…,或157)。
在框183,处理装置118在上下文(例如,143)中执行一组指令。例如,该组指令可实施虚拟机249和/或在虚拟机249中为用户帐户运行应用程序。
在框185,处理装置118为上下文中该组指令的执行分配存储器的量,包含第一存储器(例如,271)的量和第二存储器(例如,273)的量。
在框187,性能管理器113根据与上下文相关联的存储器比率来维持为上下文中该组指令的执行分配的第一存储器的量与第二存储器的量之间的比率。
在框189,在上下文中该组指令的执行期间,处理装置118经由第一存储器(例如,273)的量存取第二存储器(例如,271)的量。
在一些实施方案中,处理装置118与存储器子***之间的通信信道包含计算机网络,诸如局域网、无线局域网、无线个域网、蜂窝通信网络、宽带高速始终连接的无线通信连接(例如,当前或未来一代的移动网络链路);并且处理装置118和存储器子***可经配置以使用与NVMe协议中类似的数据存储管理和使用命令来彼此通信。
存储器子***通常可具有非易失性存储介质。非易失性存储介质的实例包含形成在集成电路中的存储器单元和涂覆在硬盘上的磁性材料。非易失性存储介质可保持存储在其中的数据/信息而不消耗功率。可使用各种存储器/存储技术来实施存储器单元,诸如NAND逻辑门、NOR逻辑门、相变存储器(PCM)、磁性存储器(MRAM)、电阻式随机存取存储器、交叉点存储和存储器装置(例如,3D XPoint存储器)。交叉点存储器装置使用无晶体管存储器元件,无晶体管存储器元件中的每一个具有堆叠在一起作为列的存储器单元和选择器。存储器元件列经由两个垂直布线层连接,其中一个布线层在存储器元件列上方而另一布线层在存储器元件列下方。可在两个层中的每一个上的一个导线的交叉点处分别选择每一存储器元件。交叉点存储装置是快速且非易失性的,并且可用作用于处理和存储的统一存储器池。
存储器子***(例如,205或209)的控制器(例如,228、227或229)可运行固件以响应于来自处理装置118的通信执行操作。固件通常是提供工程计算装置的控制、监视和数据操作的一种计算机程序。
可使用由控制器228(诸如控制器228的固件)执行的计算机指令来实施涉及控制器228的操作的一些实施例。在一些实例中,硬件电路可用于实现至少一些功能。固件最初可存储在非易失性存储介质或另一非易失性装置中,并加载到易失性DRAM和/或处理器内高速缓冲存储器中以供控制器228执行。
非暂时性计算机存储介质通常可用于存储存储器子***(例如,209或205)的固件的指令和/或操作***(例如,241、243)的指令,特别是装置驱动程序247和管理程序245的指令。当由控制器228和/或处理装置118执行指令时,指令致使控制器228和/或处理装置118执行上述方法。
图7示出了计算机***600的实例机器,在其中可执行用于致使机器执行本文所讨论的方法中的任何一或多个的一组指令。在一些实施例中,计算机***600可对应于主机***(例如,图1的主机***120),其包含、耦合到或利用存储器子***(例如,图1的存储器子***110)或可用于执行性能管理器113的操作(例如,执行指令以执行对应于参考图1-6所述的性能管理器113的操作)。在替代实施例中,机器可连接(例如,联网)到LAN、内联网、外联网和/或因特网中的其它机器。机器可在客户端-服务器网络环境中以服务器或客户端机器的身份运行,可作为对等(或分布式)网络环境中的对等机器,也可作为云计算基础架构或环境中的服务器或客户端机器运行。
机器可以是个人计算机(PC)、平板PC、机顶盒(STB)、个人数字助理(PDA)、蜂窝电话、web设备、服务器、网络路由器、交换机或网桥,或者能够执行指定该机器要采取的动作的一组指令(顺序或其它方式)的任何机器。此外,尽管示出了单个机器,但术语“机器”还应当被理解为包含单独地或联合地执行一组(或多组)指令以执行本文所讨论的方法中的任何一或多个的机器的任何集合。
实例计算机***600包含处理装置602、主存储器604(例如,只读存储器(ROM)、快闪存储器、诸如同步DRAM(SDRAM)或Rambus DRAM(RDRAM)的动态随机存取存储器(DRAM)、静态随机存取存储器(SRAM)等),以及数据存储***618,它们经由总线630(其可包含多条总线)彼此通信。
处理装置602表示一或多个通用处理装置,诸如微处理器、中央处理单元等。更具体地,处理装置可为复杂指令集计算(CISC)微处理器、精简指令集计算(RISC)微处理器、超长指令字(VLIW)微处理器,或者实施其它指令集的处理器,或者实施指令集组合的处理器。处理装置602还可为一或多个专用处理装置,诸如专用集成电路(ASIC)、现场可编程门阵列(FPGA)、数字信号处理器(DSP)、网络处理器等。处理装置602经配置以执行用于执行本文所讨论的操作和步骤的指令626。计算机***600可进一步包含网络接口装置608以通过网络620进行通信。
数据存储***618可包含机器可读存储介质624(也被称为计算机可读介质),在其上存储体现本文描述的方法或功能中的任何一或多个的一或多组指令626或软件。指令626还可完全地或至少部分地驻留在主存储器604内和/或处理装置602内,在其由计算机***600执行期间,主存储器604和处理装置602也构成机器可读存储介质。机器可读存储介质624、数据存储***618和/或主存储器604可对应于图1的存储器子***110。
在一个实施例中,指令626包含实现对应于性能管理器113(例如,参考图1-6描述的性能管理器113)的功能的指令。虽然机器可读存储介质624在实例实施例中被示为单个介质,但术语“机器可读存储介质”应被认为包含存储一或多组指令的单个介质或多个介质。术语“机器可读存储介质”还应被认为包含能够存储或编码由机器执行的一组指令并且致使机器执行本公开的方法中的任何一或多个的任何介质。因此,术语“机器可读存储介质”应被认为包含但不限于固态存储器、光介质和磁介质。
已经根据对计算机存储器内的数据位的操作的算法和符号表示呈现了前面的详细描述的一些部分。这些算法描述和表示为数据处理领域的技术人员通常使用的,从而最有效地将它们的工作实质传递到其它领域的技术人员。本文的算法通常是指得到期望结果的操作的自相容序列。这些操作是需要对物理量进行物理操纵的操作。通常,尽管不是必须的,这些量采用能够被存储、组合、比较以及以其它方式***纵的电或磁信号的形式。有时主要是为了公共使用的原因,将这些信号称为位、值、元素、符号、字符、项、数字、或者类似名称,经证实这是方便的。
然而,应当记住,所有这些和类似的术语要与适当的物理量相关联,并且仅仅是应用于这些量的方便的标签。本公开可涉及计算机***或类似的电子计算设备的动作和过程,其操纵计算机***的寄存器和存储器内表示为物理(电子)量的数据并将其转换成计算机***存储器或寄存器或其它这样的信息存储***内类似地表示为物理量的其它数据。
本公开还涉及用于执行本文的操作的设备。该设备可为预期目的而专门构造,或其可包含由存储在计算机中的计算机程序选择性地激活或重新配置的通用计算机。此类计算机程序可存储在计算机可读存储介质中,诸如但不限于,包含软盘、光盘、CD-ROM和磁光盘的任何类型的盘、只读存储器(ROM)、随机存取存储器(RAM)、EPROM、EEPROM、磁或光卡、或适合于存储电子指令的任何类型的介质,其中每一个都耦合到计算机***总线。
本文呈现的算法和显示并不固有地与任何特定计算机或其它设备相关。各种通用***可与根据本文的教示的程序一起使用,或者其可证明构造更专用的设备以执行该方法是方便的。多种这些***的结构从下文描述将是显而易见的。另外,未参考任何特定编程语言来描述本公开。应当理解,可使用各种编程语言来实施如本文描述的本公开的教示。
本公开可被提供作为计算机程序产品或软件,其可包含其上存储有指令的机器可读介质,指令可用于对计算机***(或其它电子装置)编程以执行根据本公开的过程。机器可读介质包含用于以机器(例如,计算机)可读形式存储信息的任何机制。在一些实施例中,机器可读(例如,计算机可读)介质包含机器(例如,计算机)可读存储介质,诸如只读存储器(“ROM”)、随机存取存储器(“RAM”)、磁盘存储介质、光存储介质、快闪存储器组件等。
在该描述中,各种功能和操作被描述为由计算机指令执行或引起以简化描述。然而,本领域技术人员将认识到,此类表达意味着这些功能是由诸如微处理器的一或多个控制器或处理器执行计算机指令而产生的。替代地或组合地,可使用具有或不具有软件指令(诸如使用专用集成电路(ASIC)或现场可编程门阵列(FPGA))的专用电路来实施功能和操作。可使用不具有软件指令或与软件指令组合的硬连线电路来实施实施例。因此,技术既不限于硬件电路和软件的任何特定组合,也不限于由数据处理***执行的指令的任何特定源。
在前述说明书中,已参考本公开的特定实例实施例描述了本公开的实施例。显然,可在不脱离如在所附权利要求中阐述的本公开的实施例的更广泛的精神和范围的情况下对其进行各种修改。因此,说明书和附图被认为是说明性的而非限制性的。

Claims (15)

1.一种计算***,其包括:
具有第一存储器和第二存储器的多个存储器组件;以及
处理装置,其可操作地与所述多个存储器组件耦合,以:
与执行指令的上下文相关联地存储存储器比率;
在所述上下文中执行一组指令;
为所述上下文中所述一组指令的执行分配存储器的量,包含所述第一存储器的量和所述第二存储器的量,其中为所述上下文中所述一组指令的所述执行分配的所述第一存储器的所述量与所述第二存储器的量之间的比率与所述存储器比率一致;以及
在所述上下文中所述一组指令的所述执行期间,经由所述第一存储器的所述量存取所述第二存储器的所述量。
2.根据权利要求1所述的计算***,其中所述上下文至少部分地由账户的标识来指定;以及当在所述账户中执行所述一组指令时,根据所述存储器比率为所述一组指令分配所述第二存储器的所述量和所述第一存储器的所述量。
3.根据权利要求1所述的计算***,其中所述上下文至少部分地由虚拟机的标识来指定;以及当在所述虚拟机中执行所述一组指令时,为所述一组指令的所述执行分配的所述第二存储器的所述量与所述第一存储器的所述量之间的比率与所述存储器比率一致。
4.根据权利要求1所述的计算***,其中所述处理装置进一步用以:
将一组虚拟存储器地址指派给所述一组指令的所述执行,其中所述虚拟存储器地址的至少一部分映射到所述第二存储器的一部分;以及
响应于所述一组指令使用所述虚拟存储器地址的所述部分作出的存储器存取请求,
将所述虚拟存储器地址的所述部分重新映射到所述第一存储器的一部分;以及
响应于所述一组指令存取所述虚拟存储器地址的所述部分,存取所述第一存储器的所述部分。
5.根据权利要求4所述的计算***,其中所述处理装置至少通过以下各项将所述虚拟存储器地址的所述部分重新映射到所述第一存储器:
将内容从所述第二存储器的所述部分复制到所述第一存储器的所述部分;以及
调整地址映射以将所述虚拟存储器地址的所述部分与所述第一存储器的所述部分相关联;
其中所述存储器存取请求包含使用所述虚拟存储器地址的所述部分中的虚拟存储器地址来存储或检索数据的请求;以及
响应于所述请求,所述处理装置根据所述地址映射和所述虚拟存储器地址确定所述第一存储器中的物理地址,并使用所述物理地址存储或检索所述数据。
6.根据权利要求1所述的计算***,其中所述处理装置进一步用以:
指派一组虚拟存储器地址,所述一组虚拟存储器地址表示为所述上下文中所述一组指令的执行分配的所述第二存储器的所述量;
存储将所述虚拟存储器地址的第一部分映射到所述第二存储器的第一部分并将所述虚拟存储器地址的第二部分映射到所述第一存储器的一部分的地址映射;
响应于在使用所述虚拟存储器地址的所述第一部分存取存储器的所述上下文中所述一组指令的所述执行:
将所述第一存储器的所述部分的内容存储到所述第二存储器的第二部分;
将所述第二存储器的所述第一部分的内容加载到所述第一存储器的所述部分;以及
调整所述地址映射以将所述虚拟存储器地址的所述第一部分映射到所述第一存储器的所述部分并将所述虚拟存储器地址的所述第二部分映射到所述第二存储器的所述第二部分。
7.根据权利要求6所述的计算***,其中所述第二存储器的所述第二部分与所述第二存储器的所述第一部分相同;以及在加载所述第二存储器的所述第一部分的所述内容和存储所述第一存储器的所述部分的所述内容时,交换所述第一存储器的所述部分的所述内容和所述第二存储器的所述第一部分的所述内容。
8.根据权利要求1所述的计算***,其中所述第一存储器和所述第二存储器在同一存储器模块中,所述存储器模块经由存储器总线连接到中央处理单元。
9.根据权利要求8所述的计算***,其中所述第二存储器不能由所述中央处理单元在所述存储器总线上直接寻址;且所述第一存储器可在所述存储器总线上直接寻址。
10.根据权利要求8所述的计算***,其中所述第一存储器是易失性动态随机存取存储器,且所述第二存储器是非易失***叉点存储器。
11.根据权利要求1所述的计算***,其中所述第一存储器和所述第二存储器是:
在经由同一存储器总线连接到中央处理单元的分离的存储器模块中,或
在经由分离的通信信道连接到中央处理单元的分离的存储器***中。
12.一种方法,其包括:
在包括第一存储器和第二存储器的计算装置中,分别与多个上下文相关联地存储多个存储器比率;
在所述计算装置中,在所述多个上下文的第一上下文中执行一组指令;
由所述计算装置标识与所述第一上下文相关联的第一存储器比率;
为在所述第一上下文中所述一组指令的执行分配存储器的量,包含根据所述第一存储器比率从所述第一存储器分配第一量和从所述第二存储器分配第二量;以及
使用从所述第一存储器分配的所述第一量和从所述第二存储器分配的所述第二量,提供对在所述第一上下文中执行的所述一组指令的存储器存取。
13.根据权利要求12所述的方法,其进一步包括:
在所述计算装置中,在所述多个上下文的第二上下文中执行所述一组指令;
由所述计算装置标识与所述第二上下文相关联的第二存储器比率,所述第二存储器比率不同于所述第一存储器比率;
为在所述第一上下文中所述一组指令的执行分配存储器的量,包含根据所述第二存储器比率从所述第一存储器分配第三量和从所述第二存储器分配第四量;以及
使用从所述第一存储器分配的所述第三量和从所述第二存储器分配的所述第四量,提供对在所述第二上下文中执行的所述一组指令的存储器存取。
14.根据权利要求13所述的方法,其进一步包括:
将多个存储器性能层分别与所述多个存储器比率相关联;
响应于所述第一上下文具有第一存储器性能层,将所述第一上下文与所述第一存储器比率相关联;以及
响应于所述第二上下文具有第二存储器性能层,将所述第二上下文与所述第二存储器比率相关联;以及
其中所述多个上下文经由以下中的至少一个标识:用户、应用程序、账户和虚拟机。
15.根据权利要求12所述的方法,其进一步包括:
响应于来自在所述第一上下文中执行的所述一组指令以存取地址的请求,
将存储在所述第一存储器中的数据卸载到所述第二存储器;
将与所述地址相关联的数据从所述第二存储器加载到所述第一存储器;以及
通过对所述第一存储器进行寻址,提供对所述地址的存取。
CN201980046118.9A 2018-07-13 2019-07-02 存储器***中的隔离性能域 Active CN112470113B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US16/035,469 US10691611B2 (en) 2018-07-13 2018-07-13 Isolated performance domains in a memory system
US16/035,469 2018-07-13
PCT/US2019/040427 WO2020014054A1 (en) 2018-07-13 2019-07-02 Isolated performance domains in a memory system

Publications (2)

Publication Number Publication Date
CN112470113A CN112470113A (zh) 2021-03-09
CN112470113B true CN112470113B (zh) 2024-01-12

Family

ID=69139429

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201980046118.9A Active CN112470113B (zh) 2018-07-13 2019-07-02 存储器***中的隔离性能域

Country Status (5)

Country Link
US (3) US10691611B2 (zh)
EP (1) EP3821332A4 (zh)
KR (1) KR20210019580A (zh)
CN (1) CN112470113B (zh)
WO (1) WO2020014054A1 (zh)

Families Citing this family (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10691611B2 (en) 2018-07-13 2020-06-23 Micron Technology, Inc. Isolated performance domains in a memory system
US11635893B2 (en) 2019-08-12 2023-04-25 Micron Technology, Inc. Communications between processors and storage devices in automotive predictive maintenance implemented via artificial neural networks
US11748626B2 (en) 2019-08-12 2023-09-05 Micron Technology, Inc. Storage devices with neural network accelerators for automotive predictive maintenance
US11775816B2 (en) 2019-08-12 2023-10-03 Micron Technology, Inc. Storage and access of neural network outputs in automotive predictive maintenance
US11586943B2 (en) 2019-08-12 2023-02-21 Micron Technology, Inc. Storage and access of neural network inputs in automotive predictive maintenance
US11586194B2 (en) * 2019-08-12 2023-02-21 Micron Technology, Inc. Storage and access of neural network models of automotive predictive maintenance
US11853863B2 (en) 2019-08-12 2023-12-26 Micron Technology, Inc. Predictive maintenance of automotive tires
US11702086B2 (en) 2019-08-21 2023-07-18 Micron Technology, Inc. Intelligent recording of errant vehicle behaviors
US11650746B2 (en) 2019-09-05 2023-05-16 Micron Technology, Inc. Intelligent write-amplification reduction for data storage devices configured on autonomous vehicles
US11693562B2 (en) 2019-09-05 2023-07-04 Micron Technology, Inc. Bandwidth optimization for different types of operations scheduled in a data storage device
US11250648B2 (en) 2019-12-18 2022-02-15 Micron Technology, Inc. Predictive maintenance of automotive transmission
US11531339B2 (en) 2020-02-14 2022-12-20 Micron Technology, Inc. Monitoring of drive by wire sensors in vehicles
US11709625B2 (en) 2020-02-14 2023-07-25 Micron Technology, Inc. Optimization of power usage of data storage devices
CN111459660B (zh) * 2020-03-13 2023-07-07 平安科技(深圳)有限公司 云主机在宿主机上的动态分配方法、电子装置及存储介质
US11797198B2 (en) 2021-04-23 2023-10-24 Micron Technology, Inc. Memory instruction for memory tiers

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4937820A (en) * 1989-04-04 1990-06-26 Rockwell International Corporation Method and apparatus for combining direct and indirect addressing schemes to multiplex further data with traffic data

Family Cites Families (23)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3889044B2 (ja) 1995-05-05 2007-03-07 シリコン、グラフィクス、インコーポレイテッド 不均一メモリ・アクセス(numa)システムにおけるページ移動
US20030236961A1 (en) * 2000-11-07 2003-12-25 Qiu Chaoxin C. Systems and methods for management of memory in information delivery environments
US20060095679A1 (en) 2004-10-28 2006-05-04 Edirisooriya Samantha J Method and apparatus for pushing data into a processor cache
US20080276006A1 (en) 2007-05-02 2008-11-06 Telefonaktiebolaget Lm Ericsson (Publ) Systems and Methods for Providing Terminal Configuration Data
US9009384B2 (en) 2010-08-17 2015-04-14 Microsoft Technology Licensing, Llc Virtual machine memory management in systems with asymmetric memory
US8996807B2 (en) * 2011-02-15 2015-03-31 Intelligent Intellectual Property Holdings 2 Llc Systems and methods for a multi-level cache
US8793373B2 (en) * 2012-12-06 2014-07-29 Hitachi, Ltd. Network system and method for operating the same
US9176764B1 (en) * 2013-09-25 2015-11-03 Amazon Technologies, Inc. Managing memory in virtualized environments
US9569360B2 (en) * 2013-09-27 2017-02-14 Facebook, Inc. Partitioning shared caches
KR20150043102A (ko) 2013-10-14 2015-04-22 한국전자통신연구원 하이브리드 메모리의 데이터 관리 장치 및 방법
US10019368B2 (en) 2014-05-29 2018-07-10 Samsung Electronics Co., Ltd. Placement policy for memory hierarchies
CN105224475B (zh) * 2014-05-30 2018-03-09 国际商业机器公司 用于调整存储装置的分配的方法和装置
JP6196383B2 (ja) 2014-07-31 2017-09-13 株式会社東芝 階層化ストレージシステム
US9946573B2 (en) 2015-05-20 2018-04-17 Oracle International Corporation Optimizing virtual machine memory sizing for cloud-scale application deployments
US9886376B2 (en) * 2015-07-29 2018-02-06 Red Hat Israel, Ltd. Host virtual address reservation for guest memory hot-plugging
US10289544B2 (en) 2016-07-19 2019-05-14 Western Digital Technologies, Inc. Mapping tables for storage devices
US10334334B2 (en) * 2016-07-22 2019-06-25 Intel Corporation Storage sled and techniques for a data center
US20180032429A1 (en) * 2016-07-29 2018-02-01 Intel Corporation Techniques to allocate regions of a multi-level, multi-technology system memory to appropriate memory access initiators
US10866897B2 (en) 2016-09-26 2020-12-15 Samsung Electronics Co., Ltd. Byte-addressable flash-based memory module with prefetch mode that is adjusted based on feedback from prefetch accuracy that is calculated by comparing first decoded address and second decoded address, where the first decoded address is sent to memory controller, and the second decoded address is sent to prefetch buffer
US9910618B1 (en) 2017-04-10 2018-03-06 Pure Storage, Inc. Migrating applications executing on a storage system
US10379912B2 (en) * 2017-04-11 2019-08-13 International Business Machines Corporation Data storage allocation utilizing virtual machine resource allocation
US20180336131A1 (en) * 2017-05-22 2018-11-22 Dell Products L.P. Optimizing Memory/Caching Relative to Application Profile
US10691611B2 (en) 2018-07-13 2020-06-23 Micron Technology, Inc. Isolated performance domains in a memory system

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4937820A (en) * 1989-04-04 1990-06-26 Rockwell International Corporation Method and apparatus for combining direct and indirect addressing schemes to multiplex further data with traffic data

Also Published As

Publication number Publication date
US10691611B2 (en) 2020-06-23
WO2020014054A1 (en) 2020-01-16
US11275696B2 (en) 2022-03-15
US20200301848A1 (en) 2020-09-24
US20200019510A1 (en) 2020-01-16
US12001342B2 (en) 2024-06-04
EP3821332A4 (en) 2022-03-23
EP3821332A1 (en) 2021-05-19
US20220197820A1 (en) 2022-06-23
CN112470113A (zh) 2021-03-09
KR20210019580A (ko) 2021-02-22

Similar Documents

Publication Publication Date Title
CN112470113B (zh) 存储器***中的隔离性能域
CN112384890B (zh) 预测性分页以加速存储器存取
US11036625B1 (en) Host-resident translation layer write command associated with logical block to physical address of a memory device
CN111684417B (zh) 用以存取异质存储器组件的存储器虚拟化
US11573742B2 (en) Dynamic data placement for collision avoidance among concurrent write streams
US11709632B2 (en) Input/output size control between a host system and a memory sub-system
US11650917B2 (en) Adjustable buffer memory space
CN113874826A (zh) 具有多个裸片和平面的存储器子***中的多遍数据编程
US20240036768A1 (en) Partial Execution of a Write Command from a Host System
CN114631076A (zh) 加载命令的生存时间
CN115145480A (zh) 具有经分区名字空间的存储器子***的分区块暂存组件
US11922011B2 (en) Virtual management unit scheme for two-pass programming in a memory sub-system
US11734071B2 (en) Memory sub-system tier allocation
CN112131139A (zh) 固态驱动器的聚合和虚拟化
CN118092786A (zh) 可作为存储器装置附接的数据存储装置的可用存储器的识别
CN113253917A (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