CN116670656A - 分层持久存储器分配 - Google Patents

分层持久存储器分配 Download PDF

Info

Publication number
CN116670656A
CN116670656A CN202180088078.1A CN202180088078A CN116670656A CN 116670656 A CN116670656 A CN 116670656A CN 202180088078 A CN202180088078 A CN 202180088078A CN 116670656 A CN116670656 A CN 116670656A
Authority
CN
China
Prior art keywords
memory
global
cache memory
physical
extended
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
Application number
CN202180088078.1A
Other languages
English (en)
Inventor
O·马丁
M·沙尔兰德
E·梅德罗斯
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.)
EMC Corp
Original Assignee
EMC IP Holding Co LLC
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 EMC IP Holding Co LLC filed Critical EMC IP Holding Co LLC
Publication of CN116670656A publication Critical patent/CN116670656A/zh
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/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
    • 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/0866Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches for peripheral storage systems, e.g. disk cache
    • G06F12/0873Mapping of cache memory to specific storage devices or parts thereof
    • 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/1027Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB]
    • G06F12/1045Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB] associated with a data cache
    • G06F12/1054Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB] associated with a data cache the data cache being concurrently physically addressed
    • 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/1027Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB]
    • G06F12/1045Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB] associated with a data cache
    • G06F12/1063Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB] associated with a data cache the data cache being concurrently virtually addressed
    • 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
    • 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/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/061Improving I/O performance
    • G06F3/0611Improving I/O performance in relation to response time
    • 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/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0683Plurality of storage devices
    • G06F3/0689Disk arrays, e.g. RAID, JBOD
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/72Details relating to flash memory management
    • G06F2212/7201Logical 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)
  • Memory System Of A Hierarchy Structure (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本公开涉及一种或多种存储器管理技术。在实施例中,存储阵列的存储类存储器(SCM)的一个或多个区域被供应为扩展全局存储器。该一个或多个区域可以对应于SCM持久缓存存储器区域。存储阵列的全局存储器和扩展全局存储器可以被使用以执行被连接以服务(例如,执行)输入/输出(IO)操作的一个或多个存储相关服务。

Description

分层持久存储器分配
相关申请的交叉引用
本申请要求于2021年1月27日提交的名称为“TIERED PERSISTENT MEMORYALLOCATION”的美国非临时申请序列号17/159,327的优先权,其全部内容并入本文。
背景技术
存储系统可以包括存储类存储器(SCM)。SCM是一种像NAND闪存一样的非易失性存储装置,其提供电源以确保存储系统不会因系统崩溃或电源故障而丢失数据。SCM将非易失性存储器视为动态随机存取存储器(DRAM),并将其包括在存储系统的存储器空间中。对该空间中的数据的访问比对本地、PCI连接的固态驱动器(SSD)、直连硬盘驱动器盘(HDD)或外部存储阵列中的数据的访问快得多。SCM读/写技术比NAND闪存驱动器快高达10倍,并且更耐用。
发明内容
本公开涉及一种或多种存储器管理技术。在实施例中,存储阵列的存储类存储器(SCM)的一个或多个区域用作扩展全局存储器。该一个或多个区域可以对应于SCM持久缓存(cache)存储器区域。存储阵列的全局存储器和扩展全局存储器可以被使用以执行被连接以服务(例如,执行)输入/输出(IO)操作的一个或多个存储相关服务。
在实施例中,全局缓存存储器和扩展全局存储器可以用作存储阵列的全局存储器。此外,全局缓存存储器可以对应于存储阵列的本地存储器,并且扩展全局存储器可以对应于至少一个存储设备的持久页面缓存存储器。
在实施例中,全局缓存存储器或扩展全局存储器中的至少一个可以被指派以服务由存储阵列接收的每个IO操作。
在实施例中,与由存储阵列接收的一个或多个IO集合相关的一个或多个模式可以被标识。
在实施例中,一个或多个IO工作负载模型可以基于所标识的模式被生成。基于一个或多个IO工作负载模型指派全局缓存存储器或扩展全局存储器以服务每个IO操作。
在实施例中,虚拟存储器可搜索数据结构可以被生成并且被配置为将虚拟存储器地址呈现给一个或多个主机设备。此外,每个虚拟存储器地址可以被映射到全局缓存存储器或扩展全局存储器的物理存储器地址。另外,该虚拟存储器可搜索数据结构可以被配置为具有对物理全局缓存存储器或物理扩展全局存储器的直接访问。
在实施例中,至少一个转换后备缓冲器(TLB)可以被配置为将虚拟存储器地址的至少一部分映射到对应的物理全局缓存存储器地址。此外,该虚拟存储器可搜索数据结构可以利用每个对应的物理全局缓存存储器地址的状态而被更新。
在实施例中,该至少一个TLB可以对应于存储阵列的CPU复合体
在实施例中,SCM可搜索数据结构可以被建立并且被配置为将虚拟存储器地址的至少一部分映射到对应的物理扩展全局存储器地址。另外,虚拟存储器可搜索数据结构可以利用每个相关物理扩展全局存储器地址的状态更新。
在实施例中,IO操作可以使用每个物理全局缓存存储器地址的状态和每个物理扩展全局存储器地址来管理。
附图说明
前述和其他目的、特征和优点将从以下对实施例的更具体描述中明显,如附图中所示。相同的附图标记在不同的视图中指代相同的部分。附图不一定按比例绘制,而是强调说明实施例的原理。
图1是根据本文公开的示例实施例的存储系统的框图。
图2是根据本文公开的示例实施例的存储设备引擎的框图。
图2A是根据本文公开的示例实施例的存储阵列板的框图。
图3是根据本文公开的示例实施例的分层存储器架构的框图。
图4是根据本文公开的示例实施例的主机适配器和一个或多个存储阵列组件的框图。
图5是根据本文公开的示例实施例的存储阵列的存储器映射的框图。
图6是根据本文公开的实施例的用于供应(privision)SCM存储器的方法的流程图。
具体实施方式
存储阵列可以包括一个或多个盘,诸如硬盘驱动器(HDD)和/或固态驱动器(SSD),以提供高容量、长期的数据存储。阵列还可以包括动态随机存取存储器(DRAM),它允许比HDD或SSD更快地访问数据。该阵列可以使用DRAM为阵列的中央处理器(CPU)中的一个或多个CPU存储数据和程序代码,因为它比HDD和SSD存储快得多。然而,与HDD或SSD存储相比,DRAM每千兆字节(GB)每存储要贵得多。因此,阵列通常只配备足以存储CPU使用或在新的未来将需要的数据和/或程序代码的最少量的DRAM。另外,DRAM通常位于非常靠近CPU,或是在CPU芯片自身上或是在CPU的紧邻的主板上并通过专用数据总线连接,以允许从CPU快速读/写指令和数据。因此,物理空间限制会阻止阵列包括大量DRAM。
此外,DRAM,也称为缓存存储器,是一种易失性存储器,需要持续的电源来存储数据。中断存储阵列的电源的断电能够使DRAM丢失其存储的数据。在某些情况下,数据可能是无法恢复的。如果数据包括关键信息,企业可能会在财务上或其他方面遭受损失。
为了增加存储器,例如阵列的全局存储器(例如,图1的全局存储器27)并防止关键数据丢失,实施例利用持久存储器扩展存储阵列的全局存储器。持久存储器可以包括存储类存储器(SCM)。例如,存储阵列可以包括基于闪存的SSD(例如,NAND)。在实施例中,该阵列可以建立分层存储器架构,该分层存储器架构将NAND的持久存储器区域(PMR)(例如,持久缓存存储器)的一个或多个部分供应为扩展全局存储器。
因此,分层存储器架构可以包括全局存储器(例如,阵列的本地缓存存储器,诸如DRAM)和扩展全局存储器(例如,SCM,诸如持久缓存存储器)。该阵列可以实现一种或多种存储器管理技术,这些技术基于存储器访问模式和服务水平协议(SLA)中的偏差将数据存储在全局存储器、扩展全局存储器、或盘中。例如,这些技术可以将活动数据放置在本地缓存存储器或SCM中,并且将空闲数据放置在闪存(例如SSD)中。
关于图1,示例系统100包括数据存储阵列15,其具有执行一个或多个存储操作的一个或多个组件111。阵列15可以通过通信介质18通信地耦合到主机系统14a-n。在实施例中,主机14a-n可以访问数据存储阵列15,例如,以执行输入/输出(IO)操作或数据请求。通信介质18可以是本领域技术人员已知的多种网络或其他类型的通信连接中的任何一种或多种网络连接。在实施例中,通信介质18可以是网络连接、总线和/或其他类型的数据链路,诸如硬线或本领域已知的其他连接。例如,通信介质18可以是互联网、内联网、网络(包括存储区域网络(SAN)),或通过其主机14a-n能够访问数据存储阵列15并与之通信的(多个)其他无线或其他有线连接。主机14a-n还可以经由通信介质18与系统100中所包括的其他组件通信。通信介质18可以是将主机14a-n和阵列15互连以形成SAN的远程直接存储器访问(RDMA)结构。RDMA结构可以使用非易失性存储器快速(NVMe)通信协议向SAN设备发送数据/从SAN设备接收数据。
主机14a-n和数据存储阵列15可以通过根据通信介质18的类型可以提供和支持的多种连接中的任何一种连接到通信介质18。主机14a-n可以包括各种专有或商业可用的单处理器或多处理器系统中的任何一种处理器系统,诸如基于Intel的处理器和其他类似处理器。
主机14a-n和数据存储阵列15可以位于相同的物理大小或不同的物理位置。通信介质18可以使用各种通信协议,诸如SCSI、光纤信道、iSCSI、NVMe等。通过其主机14a-n和数据存储阵列15可以连接到通信介质的一些或所有连接能够通过其他通信设备,诸如可以存在的交换设备,诸如电话线、中继器、复用器、或者甚至卫星。
主机14a-n中的每个主机可以根据不同类型的任务执行不同类型的数据操作。在实施例中,主机14a-n中的任何一个主机都可以向数据存储阵列15发出数据请求(例如,输入/输出(IO)操作)。例如,在主机14a-n中的一个主机上执行的应用可以执行读或写操作,引起对数据存储阵列15的一个或多个数据请求。
存储阵列15还可以包括适配器或导向器,诸如HA 21(主机适配器)、RA 40(远程适配器)和/或设备接口23。适配器HA 21、RA 40中的每个都可以使用硬件实现,包括具有本地存储器的处理器。本地存储器26可以存储处理器可以执行以执行一个或多个存储阵列操作的代码。HA 21可以管理主机系统14a-n中的一个或多个主机系统之间的通信和数据操作。本地存储器26可以包括全局存储器(GM)27。
在一个实施例中,HA 21可以是光纤信道适配器(FA)或促进主机通信的另一适配器。HA 21可以从主机14a-n接收IO操作。存储阵列15还可以包括一个或多个RA(例如RA40),其可以例如促进数据存储阵列之间(例如,存储阵列12和(多个)外部存储系统之间)的通信。存储阵列15还可以包括一个或多个设备接口23,用于促进向/从数据存储盘16的数据传送。数据存储接口23可以包括设备接口模块,例如,一个或多个盘适配器(DA)30(例如,盘控制器)、闪存驱动器接口35等。DA 30可以与物理数据存储盘16接口连接。
在实施例中,存储阵列15可以包括在设备接口23、RA 40、HA 21和存储器26之间的一个或多个内部逻辑通信路径(例如,图2的路径221、222)。通信路径可以包括内部总线和/或通信模块。例如,GM 27可以使用通信路径在数据存储阵列中的设备接口23、HA 21和/或RA 40之间传送数据和/或发送其他通信。在一个实施例中,设备接口23可以使用可以被包括在GM 27中的缓存来执行数据操作,例如,当与其他设备接口和数据存储阵列的其他组件通信时。本地存储器26还可以包括附加的缓存存储器28,可以是用户定义的自适应存储器资源。
主机系统14a-n可以通过SAN 18向存储阵列15发出数据和访问控制信息。存储阵列15还可以经由SAN 18向主机系统14a-n提供数据。存储阵列15可以向主机系统14a-n提供逻辑表示,而不是呈现盘16a-n的地址空间,该逻辑表示可以包括表示盘16的一个或多个物理存储地址的逻辑设备或逻辑卷(LV)。因此,LV可以对应于盘16a-n中的一个或多个盘。此外,阵列15可以包括Enginuity数据服务(EDS)处理器24。EDS 24可以控制存储阵列组件111。响应于阵列接收到一个或多个实时IO操作,EDS 24应用自优化技术(例如,一种或多种机器学习技术)来递送性能、可用性和数据完整性服务。
存储盘16可以包括一种或多种数据存储类型。在实施例中,数据存储类型可以包括一个或多个硬盘驱动器(HDD)和/或一个或多个固态驱动器(SSD)。SSD是使用固态存储器来存储持久数据的数据存储设备。包括SRAM或DRAM而不是闪存的SSD也可以称为RAM驱动器。SSD可以指固态电子设备,区别于具有移动部件的机电设备,诸如HDD。
阵列15可以使多个主机能够共享存储在盘16a-n中的一个或多个盘上的数据。因此,HA 21可以促进存储阵列15与主机系统14a-n中的一个或多个主机系统之间的通信。RA40可以被配置为促进两个或更多个数据存储阵列之间的通信。DA 30可以是一种设备接口,被使用以实现去往/来自相关联的(多个)盘驱动器16a-n和驻留在其上的(多个)LV的数据传送。闪存设备接口35可以被配置为用于促进去往/来自闪存设备和驻留在其上的(多个)LV的数据传送的设备接口。应当注意,实施例可以针对一种或多种不同类型的设备使用与本文所描述的相同或不同的设备接口。
设备接口(诸如DA 30)在盘16a-n上执行IO操作。例如,DA 30可以接收包含在由主机14a-n中的至少一个主机发出的数据请求中的LV信息。DA 30可以针对与所接收的LV对应的盘的地址空间创建一个或多个作业记录。作业记录可以在由DA 30存储和管理的可搜索数据结构中与它们相应的LV相关联。盘16a-n中的一个或多个盘可以包括持久存储类存储器(SCM),诸如持久缓存存储器。在实施例中,HA 21可以包括控制器22,其被配置为执行如本文更详细描述的一种或多种存储器管理技术。整个控制器22或控制器22的部分也可以位于别处,诸如例如EDS 24或阵列的其他组件111中的任何组件。另外,控制器22可以是并行处理器,诸如图形处理单元(GPU)。
关于图2,存储阵列15包括被配置为提供存储服务的引擎212a-n。引擎212a-n中的每个引擎包括执行存储设备服务所需的硬件电路系统和/或软件组件。阵列15可以将每个引擎212a-n容纳在架子(例如,外壳)210a-n中,该架子与阵列的机柜和/或机架(未示出)接口连接。
在实施例中,每个引擎212a-n可以包括一个或多个板230。在图2所示的非限制性示例中,每个引擎212a-n包括一对板230a-b、235a-b。每个板230a-b、235a-b包括切片元件205,切片元件205包括板230a-b、235a-b的硬件和/或软件元件。切片元件可以包括切片A1-n1、A2-n2、A3-n3和A4-n4。每个切片A1-n1、A2-n2、A3-n3和A4-n4可以对应于由图1所示的组件111中的一个或多个组件。关于图2A,切片元件205可以例如对应于EDS 22、DA 30、HA 21和/或RA 30中的一个。在实施例中,板230可以包括对应于其他已知存储设备组件的一个或多个附加切片131。
在另外的实施例中,板230可以包括存储器200(例如,动态随机存取存储器(DRAM))。图1的控制器22可以将存储器200细分成一个或多个部分215-225。例如,控制器22可以将部分215供应为全局存储器27的全局存储器部分204N。这样,每个板230的全局存储器部分204N可以形成存储阵列的总全局存储器27。在另外的实施例中,控制器22可以分配第二部分220作为共享存储器204F。控制器22可以启用由切片元件205中的每个切片元件对共享存储器204F的访问。在另外的实施例中,控制器22可以建立剩余的DRAM部分225作为本地存储器204A-D,以供切片元件205中的每个切片元件专用。例如,控制器22可以配置本地存储器204A-D以供EDS 24、HA 21、DA 30和RA 40专用。
关于图3,图1的控制器22可以建立分层缓存存储器架构101。如本文更详细讨论的,控制器22可以将分层缓存存储器架构101呈现为到主机14a-n的虚拟远程直接存储器访问(RDMA)存储器区域。
例如,控制器22可以基于其存储器特性(例如,性能、容量、波动性)建立全局存储器27和扩展全局存储器330相应地作为第一层310(层-1)和第二层320(层-2)。在实施例中,控制器22可以将阵列的DRAM部分215建立为全局存储器27(例如,层-1存储器)。部分215可以被选择为层-1存储器,因为阵列的板DRAM可以实现超过阵列的许多(如果不是全部)备选存储器选项的存储器性能。具体而言,板DRAM部分215可以耦合到双列直插式存储器模块(DIMM),该双列直插式存储器模块(DIMM)直接连接到阵列的CPU复合体(未示出),从而实现这样的性能。然而,DRAM部分217可以是需要持续电源来存储数据的易失性存储器。因此,企业可能希望利用不需要持续电源来存储数据的持久缓存存储器来扩展其阵列的全局存储器。另外,成本和/或阵列的形状因素可能使增加阵列的DRAM容量非常昂贵和/或具有挑战性。
在实施例中,MMP 445可以静态地建立分层存储器架构101(例如,在阵列15的初始化期间)。另外,MMP 445可以基于历史的、当前的和/或预期的IO存储器访问请求模式动态地建立分层存储器架构101(例如,实时地)。
因此,控制器22可以被配置为通过建立第二全局存储器层320(例如,扩展全局存储器330)来动态地或静态地扩展全局存储器27。例如,阵列的盘16可以包括具有存储类存储器(SCM)的一个或多个SSD。SCM可以与盘的持久存储器区域(例如PMR)中的缓存对应。尽管SCM可能较慢,但它可以具有与阵列的DRAM部分215相似的许多其他性能特性,并且不需要持续供电来存储数据。因此,控制器22可以供应每个盘的持久缓存存储器部分210A-N中的一个或多个持久缓存存储器部分作为扩展全局存储器330。
关于图4,HA 21可以包括控制器22。控制器22可以包括执行一种或多种存储器管理技术的一个或多个元件201(例如,软件和/或硬件元件)。在实施例中,控制器可以包括分析由存储阵列25接收的IO工作负载405的IO分析器440。另外,控制器22可以包括存储器管理处理器(MMP)445,存储器管理处理器(MMP)445可以管理与每个工作负载的IO操作相关联的存储器访问请求。
在实施例中,MMP 445可以建立定义至少一个精简设备(TDEV)的虚拟存储器架构(VMA)480。每个TDEV 415可以与至少一个逻辑单元号(LUN)(例如,逻辑卷(LV))对应。LUN可以对应于盘16的切片或部分。MMA 445可以为每个TDEV 415供应一个或多个逻辑数据设备(即,TDAT 415A-N)。TDAT 415A-N为每个TDEV提供物理地址存储器空间405、451、460。物理地址存储器空间可以对应于阵列的全局存储器地址空间405、SCM地址空间451和页面缓存存储器地址空间460。因此,HA 21可以使用每个TDEV 415向主机14a-n提供虚拟存储和存储器表示。此外,VMA 480可以包括阵列的分层存储器分层存储器区域(例如,分层存储器)101。
在实施例中,MMP 445可以供应具有第一层(例如,图3的层320)和第二层(例如,图3的层330)的分层存储器架构101。第一层可以对应于阵列的全局存储器27。第二层是扩展全局存储器,包括持久缓存存储器210A-N。在实施例中,MMP 445可以建立持久缓存存储器210A-N。持久缓存存储器210A-N可以包括存储类存储器(SCM)451和页面缓存存储器461。
在实施例中,MMA 445可以使用经由远程直接存储器访问(RDMA)结构422可访问的持久缓存存储器210A-N来建立分层存储器架构101。RDMA结构422可以在不需要阵列的CPU复杂资源(例如,CPU、MMA 445)以减少IO响应时间的情况下实现存储器访问。因此,MMA 445可以建立包括该结构的IO路径以减少阵列的IO响应时间。
在实施例中,分析器440可以监测每个工作负载的IO虚拟存储器访问请求和对应的物理存储器地址空间。另外,分析器440可以分析每个IO的请求和元数据中包括的一个或多个参数。一个或多个参数可以对应于以下一项或多项:服务水平(SL)、IO类型、IO大小、轨道大小、活动类型、存储器访问类型、以及每个参数的模式(例如,频率)等。SL可以为涉及IO操作的读/写数据定义性能参数。性能参数可以对应阵列的IO响应时间。
在另外的实施例中,分析器440可以包括生成一个或多个预测模型的机器学习(ML)引擎460。例如,ML引擎460可以生成它预期存储阵列15接收IO工作负载405中的每个工作负载的时间窗口的预测。另外,ML引擎460可以基于每个工作负载的IO特性将每个IO工作负载405分类。特性可以对应于前述段落中定义的IO操作参数。基于这些特性,ML引擎460可以标识每个工作负载的IO操作中的模式。例如,模式可以定义存储器访问命中和未命中的频率。
此外,模式可以将每个命中与对应的物理存储器地址空间相关联,并且每个未命中与对应的物理盘地址空间相关联。ML引擎460还可以确定缓存存储器命中和/或未命中。基于存储器命中/未命中的模式,ML引擎460可以生成一个或多个存储器访问模型。
在实施例中,存储器访问模型可以定义分层存储器水平IO存储器访问预报。存储器访问预报可以确定与每个物理存储器地址空间对应的读/写存储器访问密度(例如,每单位时间的访问请求)。使用存储器访问模型,MMA 445可以动态调整分层存储器架构的全局存储器27和扩展全局存储器330的分配。
在实施例中,每个存储器访问模型可以定义存储器访问阈值。存储器访问阈值可以与命中和/或未命中的百分比对应。因此,MMA 445可以响应于满足存储器访问阈值的工作负载405而动态调整分层存储器架构的全局存储器27和扩展全局存储器330的分配。因此,每个存储器访问模型允许MMA 445可以跟踪IO层存储器访问水平以标识所预报的存储器访问模式的变化。响应于确定变化,MMA 445可以实时调整全局缓存存储器405和持久缓存存储器210A-N的分配。
关于图5,MMU 445可以通过将活动数据放置在全局存储器27和/或扩展全局存储器330中来管理分层存储器架构101。例如,MMU 445可以使用存储器访问模型中的一个或多个存储器访问模型来标识存储器访问模式中的偏斜。使用所标识的偏斜,MMU 445可以标识活动数据和空闲数据两者。响应于标识活动和空闲数据,MMU 445可以从全局存储器27和/或扩展全局存储器300分配用于活动数据的存储器并且从盘存储16分配用于空闲数据的存储器。
在实施例中,MMU 445可以生成由至少一个TDAT 415A-N存储的虚拟存储器映射表(VMMT)540。VMMT 540可以将对主机14a-n可见的每个虚拟存储器和存储表示与其相应的物理存储器和存储地址空间(例如,轨道标识符(TID))相关联。例如,VMMT 540可以将虚拟存储器与全局存储器地址空间530、SCM地址空间531和页面缓存地址空间532相关联。使用VMMT 540,MMU 445可以利用VMMT 540加载转换后备缓冲器(TLB)510以使IO操作能够具有如本文所述的直接存储器访问。具体地,TLB 510是地址转换存储器缓存,其存储虚拟存储器到物理存储器的转换。TLB 510可以驻留在阵列的CPU复合体和分层存储器架构101之间(例如,在图4的IO路径422中)。
在实施例中,MMU 445可以通过从盘16的一个或多个持久存储器区域分配SCM 451来供应用于扩展全局存储器330的持久存储器210A-N。此外,MMU 445可以建立至少一个页面缓存460。因此,持久存储器210A-N可以包括SCM 451和页面缓存460。
在实施例中,TLB 510可以具有有限的容量,因此只能存储有限量的转换。因为页面缓存460可以具有较慢的响应时间,所以MMU 445可以只将TLB 510加载有与全局存储器27和/或SCM 451对应的转换。
在实施例中,MMU 445可以确定与全局存储器和/或SCM地址空间530、531中的一项或多项相关联的数据已经变为空闲。在实施例中,MMU 445可以响应于标识SCM 451和/或全局存储器27的容量达到阈值容量而执行确定。在示例中,MMU 445可以使用最近最少使用(LRU)线程520来标识由SCM存储的空闲数据。LRU线程520可以确定哪些SCM地址空间531与时间间隔内最少量的存储器访问请求相关联。
响应于标识空闲数据,MMU 445可以从对应的地址空间清除空闲数据,并将该数据存储在页面缓存460或盘16中。响应于清除,MMU 445可以利用将清除地址空间标识为未使用(free)的更新信息来更新VMMT 540,并将分配用于存储空闲数据的新分配的地址空间与它们相应的虚拟表示相关联。
在实施例中,MMU 445可以标识已经变得活动的数据。因此,MMU 445可以标识一个或多个未使用的全局存储器和/或SCM地址空间530、531。MMU 445还可以选择可用地址空间中的一个:530和531来存储活动数据。另外,MMU 445可以更新VMMT 540并以修改后的转换加载TLB 510。
图6示出了根据本公开的一个或多个实施例的方法。为了解释的简单,图6将方法描绘和描述为一系列动作。然而,根据本公开的动作可以以各种顺序发生和/或并发发生,并且与本文未呈现和描述的其他动作一起发生。此外,并非所有示出的动作都是必须的以实现根据所公开主题的方法。
关于图6,方法600可以由例如HA 21执行。方法600在605可以包括将存储阵列的存储类存储器(SCM)的一个或多个区域供应为扩展全局存储器。该一个或多个区域可以对应于SCM持久缓存存储器区域。此外,在610,方法600可以包括使用扩展全局存储器和全局缓存存储器中的一个或多个存储器来执行一个或多个存储相关服务以服务输入/输出(IO)操作。方法600可以根据由本公开描述的、本领域技术人员已知的和/或本领域技术人员尚待知晓的任何实施例和/或技术来执行。
使用本文公开的教导,技术人员可以在数字电子电路系统、计算机硬件、固件和/或软件中实现上述系统和方法。该实现可以作为计算机程序产品。该实现例如可以在机器可读存储设备中,用于由数据处理装置执行或控制数据处理装置的操作。该实现例如可以是可编程处理器、计算机和/或多台计算机。
计算机程序可以是任何编程语言,包括编译和/或解释语言。计算机程序可以具有任何部署形式,包括独立程序或作为适用于计算环境的子例程、元素和/或其他单元。一台或多台计算机可以执行部署的计算机程序。
一个或多个可编程处理器可以通过执行计算机程序来执行方法步骤,以通过对输入数据进行操作并生成输出来执行本文描述的概念的功能。装置也可以执行方法步骤。该装置可以是专用逻辑电路系统。例如,电路系统是FPGA(现场可编程门阵列)和/或ASIC(专用集成电路)。子例程和软件代理可以指代实现该功能的计算机程序、处理器、专用电路系统、软件和/或硬件的部分。
适于执行计算机程序的处理器包括例如通用和专用微处理器两者以及任何数字计算机的任何一个或多个处理器。通常,处理器从只读存储器或随机存取存储器或两者接收指令和数据。例如,计算机的基本元件是用于执行指令的处理器和用于存储指令和数据的一个或多个存储器设备。通常,计算机可以包括,可以可操作地耦合以从用于存储数据的一个或多个大容量存储设备(例如,磁盘、磁光盘或光盘)接收数据和/或将数据传送给用于存储数据的一个或多个大容量存储设备。
数据传输和指令也可以通过通信网络发生。适用于体现计算机程序指令和数据的信息载体包括所有非易失性存储器形式,包括半导体存储器设备。信息载体例如可以是EPROM、EEPROM、闪存设备、磁盘、内部硬盘、可移动盘、磁光盘、CD-ROM和/或DVD-ROM盘。处理器和存储器可以由专用逻辑电路系统补充和/或合并到专用逻辑电路系统中。
具有使用户交互能够实现的显示设备的计算机可以实现上述技术。显示设备例如可以是阴极射线管(CRT)和/或液晶显示(LCD)监视器。与用户的交互例如可以是向用户显示信息以及用户可以通过其向计算机提供输入(例如,与用户接口元素交互)的键盘和指点设备(例如,鼠标或轨迹球)。其他种类的设备可以提供与用户的交互。其他设备可以例如是以任何形式的感官反馈(例如,视觉反馈、听觉反馈或触觉反馈)提供给用户的反馈。来自用户的输入例如可以是任何形式,包括声音、语音和/或触觉输入。
包括后端组件的分布式计算系统也可以实现上述技术。后端组件例如可以是数据服务器、中间件组件和/或应用服务器。此外,包括前端组件的分布式计算系统可以实现上述技术。前端组件例如可以是具有图形用户接口的客户端计算机、用户可以通过其与示例实现交互的Web浏览器、和/或用于发送设备的其他图形用户接口。系统的组件可以使用任何形式或数字数据通信介质(例如,通信网络)互连。通信网络的示例包括局域网(LAN)、广域网(WAN)、互联网、有线网络和/或无线网络。
该系统可以包括客户端和服务器。客户端和服务器通常彼此远离并且通常通过通信网络交互。客户端和服务器关系可以通过在相应计算机上运行并具有客户端-服务器关系的计算机程序产生。
基于分组的网络可以包括例如互联网、运营方互联网协议(IP)网络(例如,局域网(LAN)、广域网(WAN)、园区网(CAN)、城域网(MAN)、家庭区域网(HAN))、专用IP网络、IP专用分支交换机(IPBX)、无线网络(例如无线电接入网络(RAN)、802.11网络、802.16网络、通用分组无线电服务(GPRS)网络、HiperLAN)和/或其他基于分组的网络。基于电路的网络可以包括例如公共交换电话网络(PSTN)、专用分支交换机(PBX)、无线网络和/或其他基于电路的网络。无线网络可以包括RAN、蓝牙、码分多址(CDMA)网络、时分多址(TDMA)网络和全球移动通信系统(GSM)网络。
发送设备可以包括例如计算机、具有浏览器设备的计算机、电话、IP电话、移动设备(例如,蜂窝电话、个人数字助理(PDA)设备、膝上型计算机、电子邮件设备)和/或其他通信设备。浏览器设备包括例如具有万维网浏览器(例如,Internet和/>)的计算机(例如,台式计算机、膝上型计算机)。移动计算设备包括例如/>
包括(comprise)、包括(include)和/或复数形式中的每个都是开放式的并且包括列出的部分并且包括未列出的另外的元素。和/或是开放式的,包括列出的部分中的一个或多个和列出的特征的组合。
本领域的技术人员将认识到,在不脱离其精神或基本特性的情况下,其他特定形式可以体现本文所述的概念。因此,前述实施例在所有方面都是说明性的而不是限制本文所描述的概念。因此,概念的范围由所附权利要求而不是前面的描述来指示。因此,所有变化均包含权利要求等同的含义和范围。

Claims (20)

1.一种方法,包括:
将存储阵列的存储类存储器SCM的一个或多个区域供应为扩展全局存储器,所述一个或多个区域对应于SCM持久缓存存储器区域;以及
使用所述扩展全局存储器和全局缓存存储器中的一项或多项执行一个或多个存储相关服务以服务输入/输出IO操作。
2.根据权利要求1所述的方法,还包括:
将所述全局缓存存储器和所述扩展全局存储器配置为所述存储阵列的全局存储器,所述全局缓存存储器与所述存储阵列的本地存储器对应,并且所述扩展全局存储器与至少一个存储设备的持久页面缓存存储器对应。
3.根据权利要求1所述的方法,还包括指派所述全局缓存存储器或所述扩展全局存储器中的至少一项以服务由所述存储阵列接收的每个IO操作。
4.根据权利要求3所述的方法,还包括标识与由所述存储阵列接收的一个或多个IO集合相关的一个或多个模式。
5.根据权利要求4所述的方法,还包括:
基于所标识的所述模式生成一个或多个IO工作负载模型;以及
基于所述一个或多个IO工作负载模型指派所述全局缓存存储器或所述扩展全局存储器以服务每个IO操作。
6.根据权利要求1所述的方法,还包括:
生成虚拟存储器可搜索数据结构,所述虚拟存储器可搜索数据结构被配置为将虚拟存储器地址呈现给一个或多个主机设备;
将每个虚拟存储器地址映射到所述全局缓存存储器或所述扩展全局存储器的物理存储器地址;以及
将所述虚拟存储器可搜索数据结构配置为具有对所述物理全局缓存存储器或所述物理扩展全局存储器的直接访问。
7.根据权利要求6所述的方法,还包括:
配置至少一个转换后备缓冲器TLB以将所述虚拟存储器地址的至少一部分映射到对应的物理全局缓存存储器地址;以及
利用每个对应的物理全局缓存存储器地址的状态更新所述虚拟存储器可搜索数据结构。
8.根据权利要求7所述的方法,其中所述至少一个TLB对应于所述存储阵列的CPU复合体。
9.根据权利要求7所述的方法,还包括:
建立SCM可搜索数据结构,所述SCM可搜索数据结构被配置为将所述虚拟存储器地址的至少一部分映射到对应的物理扩展全局存储器地址;以及
利用每个相关物理扩展全局存储器地址的状态更新所述虚拟存储器可搜索数据结构。
10.根据权利要求9所述的方法,还包括使用每个物理全局缓存存储器地址的状态和每个物理扩展全局存储器地址来管理IO操作。
11.一种装置,包括存储器和至少一个处理器,所述至少一个处理器被配置为:
将存储阵列的存储类存储器SCM的一个或多个区域供应为扩展全局存储器,所述一个或多个区域对应于SCM持久缓存存储器区域;以及
使用所述扩展全局存储器和全局缓存存储器中的一项或多项执行一个或多个存储相关服务以服务输入/输出IO操作。
12.根据权利要求1所述的装置,还被配置为:
将所述全局缓存存储器和所述扩展全局存储器配置为所述存储阵列的全局存储器,所述全局缓存存储器与所述存储阵列的本地存储器对应,并且所述扩展全局存储器与至少一个存储设备的持久页面缓存存储器对应。
13.根据权利要求1所述的装置,还被配置为指派所述全局缓存存储器或所述扩展全局存储器中的至少一项以服务由所述存储阵列接收的每个IO操作。
14.根据权利要求3所述的装置,还被配置为标识与由所述存储阵列接收的一个或多个IO集合相关的一个或多个模式。
15.根据权利要求4所述的装置,还被配置为:
基于所标识的所述模式生成一个或多个IO工作负载模型;以及
基于所述一个或多个IO工作负载模型指派所述全局缓存存储器或所述扩展全局存储器以服务每个IO操作。
16.根据权利要求1所述的装置,还被配置为:
生成虚拟存储器可搜索数据结构,所述虚拟存储器可搜索数据结构被配置为将虚拟存储器地址呈现给一个或多个主机设备;
将每个虚拟存储器地址映射到所述全局缓存存储器或所述扩展全局存储器的物理存储器地址;以及
将所述虚拟存储器可搜索数据结构配置为具有对所述物理全局缓存存储器或所述物理扩展全局存储器的直接访问。
17.根据权利要求6所述的装置,还被配置为:
配置至少一个转换后备缓冲器TLB以将所述虚拟存储器地址的至少一部分映射到对应的物理全局缓存存储器地址;以及
利用每个对应的物理全局缓存存储器地址的状态更新所述虚拟存储器可搜索数据结构。
18.根据权利要求7所述的装置,其中所述至少一个TLB对应于所述存储阵列的CPU复合体。
19.根据权利要求7所述的装置,还被配置为:
建立SCM可搜索数据结构,所述SCM可搜索数据结构被配置为将所述虚拟存储器地址的至少一部分映射到对应的物理扩展全局存储器地址;以及
利用每个相关物理扩展全局存储器地址的状态更新所述虚拟存储器可搜索数据结构。
20.根据权利要求9所述的装置,还被配置为使用每个物理全局缓存存储器地址的状态和每个物理扩展全局存储器地址来管理IO操作。
CN202180088078.1A 2021-01-27 2021-04-23 分层持久存储器分配 Pending CN116670656A (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US17/159,327 2021-01-27
US17/159,327 US11687443B2 (en) 2013-05-15 2021-01-27 Tiered persistent memory allocation
PCT/US2021/029000 WO2022164469A1 (en) 2021-01-27 2021-04-23 Tiered persistent memory allocation

Publications (1)

Publication Number Publication Date
CN116670656A true CN116670656A (zh) 2023-08-29

Family

ID=75919415

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202180088078.1A Pending CN116670656A (zh) 2021-01-27 2021-04-23 分层持久存储器分配

Country Status (4)

Country Link
US (1) US11687443B2 (zh)
CN (1) CN116670656A (zh)
DE (1) DE112021006922T5 (zh)
WO (1) WO2022164469A1 (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20230205705A1 (en) * 2021-12-23 2023-06-29 Advanced Micro Devices, Inc. Approach for providing indirect addressing in memory modules

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11755224B2 (en) * 2017-07-27 2023-09-12 EMC IP Holding Company LLC Storing data in slices of different sizes within different storage tiers
US10360155B1 (en) * 2018-04-05 2019-07-23 Western Digital Technologies, Inc. Multi-tier memory management
JP2020071583A (ja) * 2018-10-30 2020-05-07 株式会社日立製作所 データ管理装置、データ管理方法、及びデータ管理プログラム
US11656780B2 (en) * 2019-01-08 2023-05-23 International Business Machines Corporation Increasing data performance by transferring data between storage tiers using workload characteristics
US20210011755A1 (en) * 2019-07-09 2021-01-14 Shreyas Shah Systems, methods, and devices for pooled shared/virtualized or pooled memory with thin provisioning of storage class memory modules/cards and accelerators managed by composable management software
KR102355374B1 (ko) * 2019-09-27 2022-01-25 에스케이하이닉스 주식회사 이종 메모리를 이용하여 메모리 주소 변환 테이블을 관리하는 메모리 관리 유닛 및 이의 메모리 주소 관리 방법
US20210019069A1 (en) * 2019-10-21 2021-01-21 Intel Corporation Memory and storage pool interfaces
US11182291B2 (en) * 2020-02-03 2021-11-23 International Business Machines Corporation Using multi-tiered cache to satisfy input/output requests
CN114860163B (zh) * 2020-04-28 2023-08-22 华为技术有限公司 一种存储系统、内存管理方法和管理节点
JP2022050016A (ja) * 2020-09-17 2022-03-30 キオクシア株式会社 メモリシステム

Also Published As

Publication number Publication date
WO2022164469A1 (en) 2022-08-04
US11687443B2 (en) 2023-06-27
DE112021006922T5 (de) 2023-11-16
US20220237112A1 (en) 2022-07-28

Similar Documents

Publication Publication Date Title
US11029853B2 (en) Dynamic segment allocation for write requests by a storage system
US11620060B2 (en) Unified hardware and software two-level memory
US10255177B2 (en) System and method for adaptive optimization for performance in solid state drives based on read/write intensity
KR102519904B1 (ko) 영구 메모리 할당 및 구성
US8775731B2 (en) Write spike performance enhancement in hybrid storage systems
CN109213696B (zh) 用于缓存管理的方法和设备
Niu et al. Hybrid storage systems: A survey of architectures and algorithms
CN111095188A (zh) 使用基于云的模组的动态数据重定位
US20140052925A1 (en) System and method for write-life extension of storage resources
CN111124951A (zh) 管理数据访问的方法、设备和计算机程序产品
US9747040B1 (en) Method and system for machine learning for write command selection based on technology feedback
US8583890B2 (en) Disposition instructions for extended access commands
US11762770B2 (en) Cache memory management
US11625327B2 (en) Cache memory management
Minglani et al. Kinetic action: Performance analysis of integrated key-value storage devices vs. leveldb servers
US7725654B2 (en) Affecting a caching algorithm used by a cache of storage system
CN116670656A (zh) 分层持久存储器分配
US9864688B1 (en) Discarding cached data before cache flush
US11556473B2 (en) Cache memory management
Chen et al. Co-optimizing storage space utilization and performance for key-value solid state drives
US9043533B1 (en) Sizing volatile memory cache based on flash-based cache usage
Lee et al. Mapping granularity and performance tradeoffs for solid state drive
US11853174B1 (en) Multiple drive failure data recovery
US11816354B2 (en) Persistent memory adaptation
Yang Flash-based storage management in cloud computing datacenter infrastructures

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