CN105373342A - 异构统一存储器 - Google Patents
异构统一存储器 Download PDFInfo
- Publication number
- CN105373342A CN105373342A CN201510508031.2A CN201510508031A CN105373342A CN 105373342 A CN105373342 A CN 105373342A CN 201510508031 A CN201510508031 A CN 201510508031A CN 105373342 A CN105373342 A CN 105373342A
- Authority
- CN
- China
- Prior art keywords
- memory
- page
- pages
- unified
- space
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/12—Replacement control
- G06F12/121—Replacement control using replacement algorithms
- G06F12/123—Replacement control using replacement algorithms with age lists, e.g. queue, most recently used [MRU] list or least recently used [LRU] list
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0866—Addressing 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/0871—Allocation or management of cache space
-
- 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
-
- 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/10—Providing a specific technical effect
- G06F2212/1041—Resource optimization
- G06F2212/1044—Space efficiency improvement
-
- 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/10—Providing a specific technical effect
- G06F2212/1048—Scalability
-
- 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/22—Employing cache memory using specific memory technology
- G06F2212/225—Hybrid cache memory, e.g. having both volatile and non-volatile portions
-
- 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/28—Using a specific disk cache architecture
- G06F2212/282—Partitioned cache
-
- 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/40—Specific encoding of data in memory or cache
- G06F2212/401—Compressed data
-
- 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/7205—Cleaning, compaction, garbage collection, erase control
-
- 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/7208—Multiple device management, e.g. distributing data over multiple flash devices
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Memory System Of A Hierarchy Structure (AREA)
- Memory System (AREA)
- Storage Device Security (AREA)
Abstract
本发明的各方面包括一种异构统一存储器部件和一种用于管理横跨多个物理异构存储器模块的扩展统一存储器空间的方法。所述异构统一存储器部件包括横跨多个物理异构存储器模块的扩展统一存储器空间。冷页面回收逻辑部件可以从系统存储器接收冷页面并为其指定优先级。冷页面可以包括具有第一类存储器数据的存储器页面第一子集以及具有第二类存储器数据的存储器页面第二子集。例如,冷页面可以包括匿名类型存储器页面和文件类型存储器页面。动态调整逻辑部件可以在扩展统一存储器空间内对空间分配进行管理。智能页面排序逻辑部件可以基于各池的不同特性并基于指定的优先级在物理异构存储器模块的不同的池中分布各冷页面。
Description
相关申请的交叉引用
本发明要求于2014年8月19日提交的美国专利申请No.62/039,339的优先权,该申请以引用方式并入本文中。
技术领域
本发明构思涉及计算机化的存储器接口技术,更具体地,涉及一种异构统一存储器系统及方法。
背景技术
传统上,计算机系统的主系统存储器是动态随机存取存储器(DRAM),其用于提供对应用或文件系统的活动数据的快速访问。当计算机系统需要更多存储器资源而DRAM已满时,将存储器中的非活动页面(“冷”页面)从DRAM中移出。
存储器页面具有不同的类型,不同类型的存储器页面通常由不同的子系统管理。对于非活动的匿名类型存储器页面(即,用户栈或堆页面),会使用管理所谓“交换空间”的交换子系统。另一方面,对于非活动的文件类型存储器页面(即,文件系统数据或页面),会使用管理格式化块缓存的磁盘缓存子系统。使用传统技术,无法在两个子系统之间对物理空间起到杠杆作用或共享信息。当应用的行为或输入/输出(I/O)模式发生变化时,或者需要调整交换子系统和/或磁盘缓存子系统时,常常需要为每个子系统重新配置物理空间,这一行为通常要求对计算机系统进行硬关机和重启。这样的技术不灵活、不方便或者不可扩展。本发明构思的实施例着眼于现有技术中的这些以及其他局限。
发明内容
本发明构思的各实施例可包括一种异构统一存储器部件。异构统一存储器部件可以包括横跨多个物理异构存储器模块的扩展统一存储器空间。异构统一存储器部件可以包括冷页面回收逻辑部件,其配置为从系统存储器接收多个冷页面并为其指定优先级。多个冷页面可以包括具有第一类存储器数据的存储器页面第一子集以及具有第二类存储器数据的存储器页面第二子集。异构统一存储器部件可以包括动态调整逻辑部件,其配置为在扩展统一存储器空间内对具有第一类存储器数据的存储器页面第一子集与具有第二类存储器数据的存储器页面第二子集之间的空间分配进行管理。异构统一存储器部件可以包括智能页面排序逻辑部件,其配置为至少在来自多个物理异构存储器模块中的第一存储器模块池和来自多个物理异构存储器模块中的第二存储器模块池之中分布所述多个冷页面。第一存储器模块池可以具有第一特性集合,第二存储器模块池可以具有第二特性集合。
在一些实施例中,第一类存储器数据对应于匿名类型存储器页面,第二类存储器数据对应于文件类型存储器页面。在一些实施例中,扩展统一存储器空间包括跨越多个物理异构存储器模块的单个统一逻辑存储器空间,其配置为存储匿名类型存储器页面和文件类型存储器页面。多个物理异构存储器模块可以包括下列中的至少之一:自旋转移力矩磁阻随机存取存储器(STTMRAM)、固态盘(SSD)、闪速存储器(例如,NAND闪存)、电阻型存储器、相变存储器(PCM)或动态随机存取存储器(DRAM)。
本发明构思的各实施例可以包括一种用于管理横跨多个物理异构存储器模块的扩展统一存储器空间的方法。该方法可以包括步骤:由冷页面回收逻辑部件从系统存储器接收被逐出的冷页面。该方法可以包括步骤:由冷页面回收逻辑部件为被逐出的冷页面指定优先级。该方法可以包括步骤:由智能页面排序逻辑部件至少基于第一存储器模块池的第一特性集合与第二存储器模块池的第二特性集合,并至少基于为被逐出的冷页面指定的优先级,来选择多个物理异构存储器模块中的第一存储器模块池或多个物理异构存储器模块中的第二存储器模块池中的一个。该方法可以包括步骤:从选定的存储器模块池中选择目标模块。该方法可以包括步骤:由智能页面排序逻辑部件确定被逐出的冷页面具有第一类存储器数据还是第二类存储器数据。该方法可以包括步骤:由智能页面排序逻辑部件确定扩展统一存储器空间已满还是未满。该方法可以包括步骤:响应于确定被逐出的冷页面具有第一类存储器数据并且扩展统一存储器空间未满的情况,在目标存储器模块上分配存储器页面,并将具有第一类存储器数据的被逐出的冷页面写入目标存储器模块。该方法可以包括步骤:响应于确定被逐出的冷页面具有第二类存储器数据并且扩展统一存储器空间未满的情况,在目标存储器模块上分配存储器页面,并将具有第二类存储器数据的被逐出的冷页面写入目标存储器模块。
本发明构思的各实施例可以包括一种用于管理横跨多个物理异构存储器模块的扩展统一存储器空间的方法。该方法可以包括步骤:从系统存储器接收目标读取页面。该方法可以包括步骤:由智能页面排序逻辑部件确定目标读取页面对应于匿名类型存储器页面还是文件类型存储器页面。该方法可以包括步骤:响应于确定目标读取页面对应于匿名类型存储器页面的情况:检索分页表;基于分页表确定匿名类型存储器页面位于系统存储器中还是位于扩展统一存储器空间中;以及响应于确定匿名类型存储器页面位于扩展统一存储器空间中的情况,将匿名类型存储器页面从扩展统一存储器空间转移至系统存储器。该方法可以包括步骤:响应于确定目标读取页面对应于文件类型存储器页面的情况:检索文件地址空间;基于被检索的检索文件地址空间确定文件类型存储器页面位于系统存储器中还是位于扩展统一存储器空间中;以及响应于确定文件类型存储器页面位于扩展统一存储器空间中的情况,将文件类型存储器页面从扩展统一存储器空间转移至系统存储器。
通过与例如ARM处理器核中的处理器关联来实现本发明的特定发明特征,可以取得最好的效果。其他类型的存储器模块、处理器、专用集成电路(ASIC)和/或硬件可以实现本文中公开的发明原理。可以在处理器和/或多种移动设备(例如,智能手机、平板电脑、笔记本电脑等)或多种固定设备(例如,台式计算机、路由器等)的存储器模块中实现本发明构思。
附图说明
通过下面参照附图的详细描述,本发明原理的上述特征和优点及另外的特征和优点将变得更加显而易见,其中:
图1是根据本发明构思的实施例的系统栈的示例框图,该系统栈包括应用空间、内核空间、系统存储器和异构统一存储器部件。
图2是可与图1的异构统一存储器部件关联的物理异构存储器模块的多种不同的示例的示例示图。
图3是图1的异构统一存储器部件的示例框图,其中包括根据本发明构思的实施例的智能页面排序逻辑部件的操作。
图4是图1的异构统一存储器部件的示例框图,其中包括根据本发明构思的实施例的智能页面排序逻辑部件的另一个操作示例。
图5是根据本发明构思的实施例的图1的异构统一存储器部件的动态调整逻辑部件的操作的示例示图。
图6是示出根据本发明构思的实施例的冷页面回收技术的流程图。
图7是示出根据本发明构思的实施例的存储器页面读取技术的流程图。
图8是根据本发明构思的实施例的一种文件的示例示图,该文件包括存储在系统存储器中的部分和异构统一存储器部件中的部分。
图9是根据本发明构思的实施例的紧凑元数据逻辑部件和紧凑元数据技术的示例示图。
图10至图15是可在其中嵌入了根据本发明构思的实施例的图1的异构统一存储器部件的不同设备的原理示图。
图16是包括了根据本文公开的本发明构思的实施例的图1的异构统一存储器部件的计算系统的框图。
具体实施方式
下面将参照示出了实施例示例的附图详细描述本发明构思的实施例。为了深入理解本发明构思,在下文的详细描述中阐述了大量具体细节。然而,应当理解,所属技术领域的普通技术人员无需这些具体细节即可实施本发明构思。在其他实例中,没有详细描述公知的方法、过程、部件、电路和网络,以避免使各实施例的各个方面不必要地模糊。
应当理解,虽然可以在本文中使用术语第一、第二等描述不同的元件,但是这些元件不应受限于这些术语。这些术语仅用于将一个元件同另一个元件区分开。例如,第一电源开关单元可以被称作第二电源开关单元,类似地,第二电源开关单元可以被称作第一电源开关单元,而没有脱离本发明构思的范围。
在本发明构思的描述中使用的术语仅用于描述特定实施例,并非旨在限定本发明构思。如同在本发明构思的描述和权利要求书中使用的那样,除非另外明确表示,否则单数形式“一个”、“一”和“该”也旨在包括复数形式。应当理解,本文中使用的术语“和/或”表示并且涵盖相关的所列项目中的一个或多个的任何和所有可能的组合。还应当理解,当在本说明书中使用术语“包含”和/或“包含……的”时,其指示了存在所述特征、整体、步骤、操作、元件和/或部件,但并不排除存在或增加其他一个或多个特征、整体、步骤、操作、元件、部件和/或它们的组。附图中的部件和特征无需按比例绘制。
本发明构思的实施例包括一种异构统一存储器部件,其可配置为在涵盖了多个物理异构存储器模块的扩展统一存储器空间上明确地为不同类型的非活动页面(“冷”页面)管理空间分配和/或空间释放。异构统一存储器部件还可以对系统存储器(例如,DRAM)与扩展统一存储器空间之间的数据传输进行初始化和跟踪。此外,异构统一存储器部件可以对不同类型的非活动页面空间中的空间使用需求进行分析,并相应地收缩和/或扩展正在分配的空间。因而,可以自动适应不同的正在运行的应用和输入/输出(I/O)工作负载。
图1是根据本发明构思的实施例的系统栈100的示例框图,系统栈100包括应用空间105、内核空间110、系统存储器115和异构统一存储器部件120。
应用空间105可以包括一个或多个应用集合125,其包括可与内核空间110进行通信的应用130。另外,应用空间105可以包括一个或多个外部库集合135,其包括可与一个或多个应用集合125和/或内核空间110进行通信的外部库140。内核空间110可以包括例如内核,但是应当理解,可以使用其他适宜的操作系统内核而没有脱离本文中公开的发明构思。
系统存储器115可以包括可存储热页面145和冷页面150的一个或多个动态随机存取存储器(DRAM)模块117。热页面145是应用集合125或外部库集合135最近访问过的存储器页面。冷页面150是应用集合125或外部库集合135最近没有访问过的实质上非活动存储器页面。
异构统一存储器部件120可以包括横跨多个物理异构存储器模块(例如,M1、M2、M3至MN)的扩展统一存储器空间180,所述多个物理异构存储器模块可布置在池(例如,池A、池B等)中,如下文进一步描述的那样。扩展统一存储器空间180可以包括跨越各物理异构存储器模块(例如,M1、M2、M3至MN)的单个统一逻辑存储器空间180,其配置为存储匿名类型存储器页面152和文件类型存储器页面154。在一些实施例中,扩展统一存储器空间180在物理和/或逻辑上与系统存储器115分离。在替代实施例中,扩展统一存储器空间180包括系统存储器115的至少一部分。
异构统一存储器部件120可以包括冷页面回收逻辑部件160,以从系统存储器115接收各冷页面155并对其指定优先级。各冷页面155可以包括具有第一类存储器数据(例如,152)的存储器页面第一子集和含有具有第二类存储器数据(例如,154)的存储器页面第二子集。第一类存储器数据152可以是匿名类型存储器页面(即,用户栈或堆页面)。第二类存储器数据154可以是文件类型存储器页面(即,文件系统数据或页面)。冷页面回收逻辑部件160可以为各冷页面155中的每一个以及/或者下层的池或物理异构存储器模块(例如,M1、M2、M3直至MN)指定优先级。
异构统一存储器部件120可以包括动态调整逻辑部件170,以在扩展统一存储器空间180内对具有第一类存储器数据152的存储器页面第一子集与具有第二类存储器数据154的存储器页面第二子集之间的空间分配进行管理,如下文进一步描述的那样。
异构统一存储器部件120可以包括智能页面排序逻辑部件175,来至少基于指定的优先级至少在来自各物理异构存储器模块(例如,M1、M2、M3至MN)中的第一存储器模块池(例如,池A)和来自各物理异构存储器模块(例如,M1、M2、M3至MN)中的第二存储器模块池(例如,池B)分布冷页面155。应当理解,可以在来自各物理异构存储器模块中的三个或更多的存储器模块池之中分布冷页面155。第一存储器模块池(例如,池A)可以具有第一特性集合,第二存储器模块池(例如,池B)可以具有第二特性集合。例如,第一特性集合和第二特性集合可以包括:性能特性、安全特性、寿命特性、耐磨性特性、功耗特性、与鉴于电源故障的数据持久性相关的特性、吞吐量特性、延迟特性等。与池A关联的第一特性集合可以完全不同于或部分不同于与另一池(例如,池B)关联的第二特性集合。智能页面排序逻辑部件175可以根据下层存储器模块的特性以及/或者数据特性选择提供了与即将要写入的用于分数据分配与数据写入的数据匹配池和/或特定的物理存储器模块。
异构统一存储器部件120可以包括紧凑元数据逻辑部件165。紧凑元数据逻辑部件165可以将各元数据页面内的不同的修改部分压缩为单个紧凑元数据页面,并将该单个紧凑元数据页面存储在扩展统一存储器空间180中,如下文进一步描述的那样。
在异构统一存储器部件120内,可以统一管理扩展统一存储器空间180,在匿名类型存储器页面与文件类型存储器页面之间无需具有明确的使用分区。为了实现这一功能,异构统一存储器部件120可以在内部确定数据类型,并标记以不同的方式为匿名类型存储器页面152和文件类型存储器页面154分配的条目。
如图1所示,可以根据各个存储池的不同特性,横跨不同的存储池(池A、池B等)管理扩展统一存储器空间180。对于不同的存储池而言,异构统一存储器部件120可以为各存储池和/或输入的存储器页面指定不同的优先级值。基于指定的优先级,可以选择特定的池和目标存储器模块来分配空间。在一些实施例中,更高优先级的池或存储器模块优先用于新的存储器分配。对于每个独立的存储器模块,可以将空间划分为4KB的页面或块。异构统一存储器部件120可以将已占用的页面或块明确标记为ANON_BLK(由匿名页面使用)或FILE_BLK(由文件页面使用)。
图2是与图1中的异构统一存储器部件120关联的扩展统一存储器空间180内的物理异构存储器模块的多种不同的示例的示例框图。物理异构存储器模块可以包括至少一个非易失性存储器模块和/或易失性存储器模块。例如,扩展统一存储器空间180可以包括池A、B、C、D、E、F或G中的一个或多个。每个池可以在其内部对具有相同或相似的特性的物理存储器模块进行分组。例如,池A可以包括一个或多个自旋转移力矩磁阻随机存取存储器(STTMRAM)模块。池B可以包括例如一个或多个动态随机存取存储器(DRAM)模块。池C可以包括例如一个或多个固态盘(SSD)模块。池D可以包括例如一个或多个闪速(例如,NAND闪存)存储器模块。池E可以包括例如一个或多个电阻型存储器模块。池F可以包括例如一个或多个相变存储器(PCM)模块。池G可以包括例如两个或两个以上的不同类型的模块(例如,类型1和类型2)。换言之,每个池可以包括具有相同类型和相同特性的存储器模块或者具有不同类型和相似特性的存储器模块。
每个池可以具有与其关联的特性集合,例如高性能、低延时、高安全性、高耐久性、永久性存储等。可以基于存储器模块的下层和存储器页面内包含的数据的下层特性分配存储器页面,并将其写入各个物理异构存储器模块。例如,匿名类型存储器页面可以要求高于文件类型存储器页面的性能和安全性。特定类型的匿名类型存储器页面可以要求高于其他类型的存储器页面的安全性和性能。文件类型存储器页面也可以需要安全存储,并偶尔要求高性能存储。可以由异构统一存储器部件120管理下述任务,即,寻求针对存储器页面的每个类型与下层存储的每个类型的最佳适配,并且该任务可随时间而演变。
图3是图1中的异构统一存储器部件120的示例框图,其中包括根据本发明构思的实施例的智能页面排序逻辑部件175的操作。智能页面排序逻辑部件175可以从各物理异构存储器模块中选择目标存储器模块(例如,M1)。智能页面排序逻辑部件175可以确定各冷页面155中的每一个冷页面是匿名类型存储器页面152还是文件类型存储器页面154。对于各冷页面155中对应于匿名类型存储器页面152的每一个冷页面,智能页面排序逻辑部件175可以在目标存储器模块M1上分配匿名类型存储器页面152。对于各冷页面155中对应于文件类型存储器页面154的每一个冷页面,智能页面排序逻辑部件175可以在目标存储器模块M1上分配文件类型存储器页面154。选定的存储器模块M1可以只包括匿名类型存储器页面,可以只包括文件类型存储器页面,或者包括匿名类型页面与文件类型页面的混合。选定的存储器模块M1可以包括一个或多个空闲页面。在一些实施例中,页面大小为4千字节(KB)。应当理解,可以使用其他适宜的页面大小。在一些实施例中,磁盘存储310可以通信地耦接至异构统一存储器部件120。智能页面排序逻辑部件175可以使得匿名类型存储器页面152和文件类型存储器页面154写入磁盘存储310并从磁盘存储310中读取。在替代实施例中,磁盘存储310的存储空间可以是(图2中的)扩展统一存储器空间180的存储部分。
图4是图1中的异构统一存储器部件120的示例框图,其中包括根据本发明构思的实施例的智能页面排序逻辑部件175的另一个示例操作。
智能页面排序逻辑部件175可以从不同的池中选择存储器模块池(例如,池A)。例如,智能页面排序逻辑部件175可以至少基于池A的特性和/或其他池(例如,池B和池C)的特性选择池A。所述特性可以包括性能特性、寿命特性、耐磨性特性、功耗特性、与鉴于电源故障的数据持久性相关的特性、吞吐量特性、延迟特性等。例如,匿名类型存储器页面通常拥有高于文件类型存储器页面的优先级,这是因为对于匿名类型存储器页面的服务失败会导致计算机化的系统发生故障或冻结。此外,智能页面排序逻辑部件175可以基于为特定冷页面155指定的优先级405选择池。
通过使用器件描述符410,智能页面排序逻辑部件175可以从来自各物理异构存储器模块中的选定的存储器模块池(例如,池A)之中选择目标存储器模块(例如,M2)。智能页面排序逻辑部件175可以确定各冷页面155中的每一个冷页面是匿名类型存储器页面152还是文件类型存储器页面154。对于各冷页面155中对应于匿名类型存储器页面152的每一个冷页面,智能页面排序逻辑部件175可以在目标存储器模块M2上分配匿名类型存储器页面152。对于各冷页面155中对应于文件类型存储器页面154的每一个冷页面,智能页面排序逻辑部件175可以在目标存储器模块M2上分配文件类型存储器页面154。选定的存储器模块M2可以只包括匿名类型存储器页面,可以只包括文件类型存储器页面,或者包括匿名类型页面与文件类型页面的混合。选定的存储器模块M2可以包括一个或多个空闲页面。在一些实施例中,页面大小为4千字节(KB)。应当理解,可以使用其他适宜的页面大小。在一些实施例中,磁盘存储310可以通信地耦接至异构统一存储器部件120。智能页面排序逻辑部件175可以使得匿名类型存储器页面152和文件类型存储器页面154写入磁盘存储310并从磁盘存储310中读取。
对于各冷页面155中对应于匿名类型存储器页面152的每一个冷页面,智能页面排序逻辑部件175可以将匿名类型存储器页面152写入目标存储器模块M2。对于各冷页面155中对应于文件类型存储器页面154的每一个冷页面,智能页面排序逻辑部件175可以将文件类型存储器页面154写入目标存储器模块M2(或其他为文件类型存储器页面154选定的目标存储器模块)。
换言之,智能页面排序逻辑部件175可以至少基于选定的存储器模块池(例如,池A)的特性集合和/或其他存储器模块池(例如,池B、池C等)的其他特性集合,并且至少基于指定的优先级,将对应于匿名类型存储器页面152的存储器页面第一子集分布至选定的存储器模块池(例如,池A)。此外,智能页面排序逻辑部件175可以至少基于选定的存储器模块池(例如,池A)的特性集合和/或其他存储器模块池(例如,池B、池C等)的其他特性集合,并且至少基于指定的优先级,将对应于文件类型存储器页面154的存储器页面第二子集分布至选定的存储器模块池(例如,池A或用于文件类型存储器页面的其他选定的存储器池)。
图5是根据本发明构思的实施例的图1中的异构统一存储器部件120的动态调整逻辑部件170的操作的示例示图。动态调整逻辑部件170可以在扩展统一存储器空间180内增加一定量的为匿名类型存储器页面152分配的空间505,并且在扩展统一存储器空间180内减少相应量的为文件类型存储器页面154分配的空间510。另外,动态调整逻辑部件170可以在扩展统一存储器空间180内减少一定量的为匿名类型存储器页面152分配的空间505,并且在扩展统一存储器空间180内增加相应量的为文件类型存储器页面154分配的空间510。换言之,可以将总扩展统一存储器空间180的特定百分比分配给匿名类型存储器页面,并且将总扩展统一存储器空间180的另一百分比分配给文件类型存储器页面。这些百分比合并的结果等于100%。可以至少基于需要服务的匿名类型存储器页面的数量相对于文件类型存储器页面的数量来动态调整这些各自的百分比。
图6是示出根据本发明构思的实施例的冷页面回收技术的流程图600。换言之,图6示出了将被逐出的存储器页面写入扩展统一存储器空间180的过程。该技术从步骤605开始,在此冷页面回收逻辑部件(例如,图1中的冷页面回收逻辑部件160)从系统存储器(例如,图1中的系统存储器115)接收被逐出的冷页面(例如,图1中的冷页面155)。在步骤610中,冷页面回收逻辑部件160可以为被逐出的冷页面155指定优先级。在步骤615中,智能页面排序逻辑部件(例如,图1中的智能页面排序逻辑部件175)可以至少基于指定的优先级和每个池的特性选择目标存储器模块池(例如,图1的扩展统一存储器空间180中的池A、池B等)。在步骤620中,智能页面排序逻辑部件175可以从选定的池中选择目标存储器模块。
在步骤625中可以确定被逐出的冷页面是匿名类型存储器页面还是文件类型存储器页面。响应于确定冷页面为匿名类型存储器页面,流程进行至步骤630,在此可以进行另一判定,即,异构统一存储器部件120的扩展统一存储器空间180关于匿名空间是否已满。如果未满,则流程进行至步骤640,在此可以分配匿名类型存储器页面,然后进行至步骤645,在此可以将匿名类型存储器页面写入扩展统一存储器空间180。另一方面,如果异构统一存储器部件120的扩展统一存储器空间180已满,则流程进行至步骤650,在此可以在扩展统一存储器空间180内收缩或减少为文件类型存储器页面分配的一定量的空间,并且可以动态地增加为匿名类型存储器页面分配的相应量的空间。
在这些调整之后,可以在步骤655进行另一判定,即,异构统一存储器部件120的扩展统一存储器空间180是否已满。如果未满,则流程可以进行至步骤640以分配并写入匿名类型存储器页面。另一方面,如果已满,则流程可以进行至步骤660,并且可以产生错误信息(例如,ERR_NOSPACE)并将其返回至应用或扩展库。
回到在步骤625进行的判定,如果确定冷页面155是文件类型存储器页面,则流程进行至步骤635,在此进行另一判断,即,异构统一存储器部件120的扩展统一存储器空间180关于可用文件空间是否已满。如果未满,则流程进行至步骤665,在此可以分配文件类型存储器页面,然后进行至步骤670,在此可以将文件类型存储器页面写入扩展统一存储器空间180。另一方面,如果已满,则流程进行至步骤675,在此可以替换文件类型存储器页面。例如,可以用被逐出的冷页面(即,需要存储的另一文件类型存储器页面)替换最近最少使用(LRU)的文件类型存储器页面。在步骤670中,可以将被逐出的文件类型存储器页面写入扩展统一存储器空间180。
应当理解,流程图600中的要素和步骤无需按照示出的特定顺序发生,而是可以按照不同的顺序发生,或者在其中插入其他步骤。
在扩展统一存储器空间180中,匿名类型存储器页面的分配请求可以拥有高于文件类型存储器页面的优先级,这是因为匿名存储页面的插入失败会导致源应用发生故障或被终止。另一方面,文件类型存储器页面的插入失败只会影响I/O工作负载的性能。优选地,异构统一存储器部件120不应当使匿名类型存储器页面的分配请求等待。如果扩展统一存储器空间180具有较高的利用率,则可以禁止新的文件类型存储器页面的分配,以避免影响对于匿名类型存储器页面的分配请求。在这种情况中,可以将最近最少使用(LRU)的文件类型存储器页面替换掉,以便插入新的文件类型存储器页面。为了实现这一目的,可以将所有文件类型存储器页面插入LRU列表中并相应地对其进行管理。在读取操作期间,任何对于特定的文件类型存储器页面的请求均可以将这个文件类型存储器页面推动至列表中最近最常使用(MRU)的位置。
在替代实施例中,步骤625的文件分支可以拥有实质上与匿名空间一侧的分支相仿的过程。换言之,在替代实施例中,响应于在步骤635确定扩展统一存储器空间180已满,可以在扩展统一存储器空间180内收缩或减少为匿名类型存储器页面分配的一定量的空间,并且可以动态地增加为文件类型存储器页面分配的相应量的空间。在这些调整之后,可以进行另一判定,即,异构统一存储器部件120的扩展统一存储器空间180是否已满。如果未满,则可以分配并写入文件类型文件存储器页面。另一方面,如果已满,则可以产生错误信息(例如,ERR_NOSPACE)并将其返回至应用或扩展库。
图7是示出根据本发明构思的实施例的存储器页面读取技术的流程图700。换言之,图7示出了从扩展统一存储器空间180读取存储器页面的过程。该技术从步骤705开始,在此由例如异构统一存储器部件120接收目标读取页面。然后,在步骤710,可以由智能页面排序逻辑部件(例如,图1中的智能页面排序逻辑部件175)确定目标读取页面是匿名类型存储器页面还是文件类型存储器页面。如果确定为匿名类型存储器页面,则流程进行至步骤715,在此可以检索分页表。在步骤720可以基于分页表进行另一判定,即,目标读取页面(即,匿名类型存储器页面)位于系统存储器(例如,图1中的系统存储器115)还是位于扩展统一存储器空间180。如果位于扩展统一存储器空间180,则流程进行至步骤725,在此可以将匿名类型存储器页面从扩展统一存储器空间180转移至系统存储器115,在这之后应用(例如,图1中的应用130)或外部库(图1中的外部库140)可以在步骤730中从系统存储器115读取匿名类型存储器页面。另一方面,如果在步骤720确定目标读取页面(即,匿名类型存储器页面)位于系统存储器115,则流程进行至步骤745,在此应用(例如,图1中的应用130)或外部库(图1中的外部库140)可以从系统存储器115读取匿名类型存储器页面。
回到在步骤710进行的判定,如果确定目标读取页面为文件类型存储器页面,则流程进行至步骤735,在此对文件地址空间进行检索。在步骤740可以至少基于检索到的文件地址空间确定目标读取页面(即,文件类型存储器页面)位于系统存储器115还是位于扩展统一存储器空间180。如果确定文件类型存储器页面位于系统存储器115,则流程进行至步骤745,在此应用(例如,图1中的应用130)或外部库(图1中的外部库140)可以从系统存储器115读取文件类型存储器页面。另一方面,如果确定文件类型存储器页面没有位于系统存储器115,则流程进行至步骤750。
在步骤750可以确定目标读取页面(即,文件类型存储器页面)是否位于异构统一存储器部件120的扩展统一存储器空间180。如果“是”,则流程进行至步骤755中,在此可以将文件类型存储器页面从扩展统一存储器空间180转移至系统存储器115,然后由应用(例如,图1中的应用130)或外部库(图1中的外部库140)在步骤760从系统存储器115读取。另一方面,如果“否”,则意味着目标读取页面即不位于扩展统一存储器空间180也不位于系统存储器115,流程进行至步骤765,在此可以使得从存储磁盘(例如,图3中的磁盘存储310)读取文件类型存储器页面,并将其转移至系统存储器115。在步骤770中,可以将文件类型存储器页面插入异构统一存储器部件120的扩展统一存储器空间180。
应当理解,流程图700中的要素和步骤无需按照示出的特定顺序发生,而是可以按照不同的顺序发生,或者在其中插入其他步骤。
图8是根据本发明构思的实施例的文件815的示例示图800,文件815包括存储在系统存储器(例如,图1中的系统存储器115)中的部分和存储在异构统一存储器部件120的扩展统一存储器空间180中的部分。如果目标读取页面是文件类型存储器页面,则可以检索扩展文件地址空间,其可以在系统存储器空间和扩展统一存储器空间两者内进行数据索引。文件815可以拥有一个或多个系统存储器页面805以及一个或多个扩展统一存储器页面810。换言之,文件815可以包括在系统存储器(例如,图1中的系统存储器115)和扩展统一存储器空间(例如,图1中的扩展统一存储器空间180)两者中的存储器页面。扩展统一存储器空间180可以存储与文件815关联的一个或多个存储器页面,同时系统存储器115存储与文件815关联的一个或多个不同的存储器页面。
如果尝试读取与文件815关联的存储器页面,但该页面既不存在于系统存储器115中也不存储于扩展统一存储器空间180中,则会发生漏失820,并且可以从磁盘存储310访问目标读取页面。换言之,如果在系统存储器或扩展文件地址空间中都没有找到目标读取文件页面,则可以从磁盘存储310读取数据。在这种情况下,可以将读取请求页面异步地插入扩展统一存储器空间180中以针对未来的访问来提高I/O性能。
图9是根据本发明构思的实施例的紧凑元数据逻辑部件165和紧凑元数据技术的示例示图900。异构统一存储器部件120的紧凑元数据逻辑部件165可以将来自各冷页面(例如,图1中的冷页面155)的各元数据页面(例如,元数据页面915、920和925)内的最近修改的部分910压缩到单个紧凑元数据页面940中。紧凑元数据逻辑部件165可以使得单个紧凑元数据页面存储在(图1中的)扩展统一存储器空间180中。
各元数据页面(例如,元数据页面915、920和925)中的每一个可以包括最近修改的部分910和最近未修改的部分905。例如,元数据页面925的部分930可为最近修改的。在一些实施例中,每个部分(例如,部分930)可以是大于4KB的存储器页面内的128字节的值。应当理解,每个部分(例如,部分930)无需一定是128字节的,而可以是不同的大小。还应当理解,紧凑元数据页面940无需一定是4KB,而可以是不同的大小。紧凑元数据页面940的大小优选地为部分930的大小的数学倍数。
不同的元数据页面可以包括例如索引节点。例如,元数据页面915可以包括索引节点A、B、B+1、B+2到B+N。按照另一示例的方式,元数据页面920可以包括索引节点X、Y、Y+1、Y+2到Y+N。按照又一示例的方式,元数据页面925可以包括索引节点M、K、K+1、K+2到K+N。每个索引节点可以对应于独立的部分(例如,部分930),无论其最近修改过还是未修改过。紧凑元数据页面940可以包括来自多个不同的元数据页面(例如,元数据页面915、920和925)的不同的索引节点或部分。
在传统技术中,在通用块层实现磁盘缓存方案。因而,没有关于被缓存数据的具体信息。将插入的数据按照与其经过时完全一致地写入缓存器件。因而,就算例如在4KB的页面上有非常小的更新,传统磁盘缓存方法也不得不将完整的4KB的块写入缓存器件。这样的传统方法特别不利,这是因为闪存和/或SSD存储器的储存器件可以用作磁盘缓存,而这样的器件具有有限的写入耐久性,并潜在地降低了写入性能。
通过使用本发明构思的实施例,可以对文件系统层的信息起到杠杆作用,以减少对扩展物理异构存储器模块(例如,用于文件类型存储器页面的空间)的非必需的写入。因而,只有实际修改的部分可以写入扩展统一存储器空间180,这减少了整体写入次数,从而在减少磨损和改进存储器模块自身的使用寿命的同时改进了性能。
图10至图15是根据本发明构思的实施例的可在其中嵌入图1的异构统一存储器部件的不同设备的示意图。
例如,如图10中可见的那样,智能手机1005可以包括异构统一存储器部件120,如上文具体描述的那样。类似地,图11中示出的平板电脑1105、图12中示出的笔记本电脑1205、图13中示出的移动电话1305、图14中示出的数码摄像机1405以及图15中示出的台式电脑1505都可以包括异构统一存储器部件120,如上文具体描述的那样。应当理解,任何使用一个或多个存储器装置的适宜的计算机化设备都可以包括异构统一存储器部件120,或者对异构统一存储器部件120进行操作,如上文具体描述的那样。
图16是根据本文公开的本发明构思的实施例的包括了异构统一存储器部件1630(例如,对应于图1中的异构统一存储器部件120)的计算系统1600的框图。
参照图16,计算系统1600还可以包括时钟1610、随机存取存储器(RAM)1615、用户接口1620、调制解调器1625(例如基带芯片组)、固态驱动器/固态盘(SSD)1640、存储器控制器1645和/或电池1635,它们当中的任何或所有可以电耦接至系统总线1605。异构统一存储器部件1630可对应于上文具体描述的异构统一存储器部件120,如本文阐述的那样,并且也可以电耦接至系统总线1605。
如果计算系统1600是移动设备,则电池1635可以为计算系统1600供电。虽然未在图16中示出,但是计算系统1600还可以包括应用芯片组、摄影图像处理器(CIS)、移动DRAM等。
在示例实施例中,计算系统1600可以用作计算机、便携计算机、超级移动PC(UMPC)、工作站、上网本、PDA、上网平板电脑、无线电话、移动电话、智能手机、电子书、PMP(便携媒体播放器)、数码相机、数字音频记录器/播放器、数字图像记录器/播放器或数字视频记录器/播放器、便携游戏机、导航系统、黑匣子、3维电视、能够在无线环境中传输和接收信息的设备、构成家庭网络的多种不同的电子设备中的一种、构成计算机网络的多种电子设备中的一种、构成通讯网络的多种不同的电子设备中的一种、RFID或者构成计算系统的多种不同的电子设备中的一种。
以下公开内容旨在提供对可在其中实现本发明构思的特定方面的适宜的机器或各个机器的简要的一般性说明。通常,所述机器或各个机器包括系统总线,其上附接了各处理器、存储器(例如,随机存取存储器(RAM)、只读存储器(ROM)或其他状态保留介质)、储存器件、视频接口和输入/输出接口端。所述机器或各个机器可以至少部分地受控于来自传统输入设备(例如,键盘、鼠标等)的输入,以及从另一机器接收的指示、与虚拟现实(VR)环境的交互、生物计量反馈或其他输入信号。如本文中使用的那样,术语“机器”旨在广义地涵盖单机、虚拟机,或者以通信方式耦合的各个机器、虚拟机或共同操作的设备所组成的系统。示例性机器包括计算设备(例如个人计算机、工作站、服务器、便携电脑、手持设备、电话、平板电脑等)以及交通设备(例如个人交通或公共交通,如汽车、火车、出租车等)。
所述机器或各个机器可以包括嵌入式控制器,例如可编程逻辑器件/阵列或非可编程逻辑器件/阵列、专用集成电路(ASIC)、嵌入式计算机、智能卡等。所述机器或各个机器可以使用到一个或多个远程机器的一个或多个连接,例如通过网络接口、调制解调器或其他通信耦接方式。各个机器可以通过物理网络和/或逻辑网络的方式互连,例如内联网、互联网、局域网、广域网等。所属技术领域的技术人员应当理解,网络通信可以使用多种不同的有线和/或无线的短距离或长距离的载波和协议,包括射频(RF)、卫星、微波、电气与电子工程师协会(IEEE)545.11协议、光学、红外线、电缆、激光等。
可以参照或结合包括函数、过程、数据结构、应用程序等在内的相关数据描述本发明构思的实施例,当由机器进行访问时,该相关数据会使得机器执行任务或者定义抽象数据类型或底层硬件内容。相关数据可以存储于例如易失性和/或非易失性存储器(例如,RAM、ROM等)中,或者存储于其他储存器件和它们的相关储存媒介中,包括硬盘、软盘、光存储器、磁带、闪速存储器、记忆棒、数字视频光盘、生物存储等。相关数据能够在包括物理和/或逻辑网络在内的传输环境中以数据包、串行数据、并行数据、传播信号等的形式传递,并且能够以压缩或加密的格式使用。可以在分布式环境中使用相关数据,并可以对其进行本地和/或远程存储以用于机器访问。
虽然已经参照示出的实施例描述和说明了本发明构思的原理,但是应当理解,可以在不背离这些原理的情况下在布置和细节上对示出的实施例进行修改,也可以按照任何期望的方式对其进行组合。虽然上述论述集中于特定的实施例,但是可以考虑其他实施例。特别地,尽管本文使用了诸如“根据本发明构思的实施例”之类的措辞,但是这些词语意味着一般性地参照实施例的可能性,而不是旨在以特定的实施例配置限定本发明构思。如本文所使用的那样,这些术语可以参照相同的实施例,或者可组合成其他实施例的不同的实施例。
本发明构思的实施例可以包括非永久性的机器可读介质,其包含可由一个或多个处理器执行的指令,所述指令包括用于执行本发明构思的要素的指令,如前文所描述的那样。
上述说明性实施例不应被理解为将发明构思限定其中。虽然已经描述了几个实施例,但是所属技术领域的技术人员将易于理解,可以对那些实施例进行多种修改,而不实质性背离本发明公开的新颖性指教和优点。因此,所有这些修改都旨在被包括在权利要求定义的本发明构思的范围内。
Claims (18)
1.一种异构统一存储器部件,包括:
横跨多个物理异构存储器模块的扩展统一存储器空间;
冷页面回收逻辑部件,其配置为从系统存储器接收多个冷页面并为其指定优先级,所述多个冷页面包括具有第一类存储器数据的存储器页面第一子集以及具有第二类存储器数据的存储器页面第二子集;
动态调整逻辑部件,其配置为在扩展统一存储器空间内对具有第一类存储器数据的存储器页面第一子集与具有第二类存储器数据的存储器页面第二子集之间的空间分配进行管理;以及
智能页面排序逻辑部件,其配置为至少在来自多个物理异构存储器模块中的第一存储器模块池和来自多个物理异构存储器模块中的第二存储器模块池之中分布所述多个冷页面,所述第一存储器模块池具有第一特性集合,所述第二存储器模块池具有第二特性集合。
2.根据权利要求1所述的异构统一存储器部件,其中,所述第一类存储器数据对应于匿名类型存储器页面,所述第二类存储器数据对应于文件类型存储器页面。
3.根据权利要求2所述的异构统一存储器部件,其中,扩展统一存储器空间包括跨越多个物理异构存储器模块的单个统一逻辑存储器空间,其配置为存储匿名类型存储器页面和文件类型存储器页面。
4.根据权利要求1所述的异构统一存储器部件,其中,所述多个物理异构存储器模块包括至少一个非易失性存储器模块。
5.根据权利要求1所述的异构统一存储器部件,其中,所述多个物理异构存储器模块包括下列中的至少一个:自旋转移力矩磁阻随机存取存储器(STTMRAM)、固态盘(SSD)、闪速存储器、电阻型存储器、相变存储器(PCM)或动态随机存取存储器(DRAM)。
6.根据权利要求1的异构统一存储器部件,其中:
所述第一类存储器数据对应于匿名类型存储器页面;
所述第二类存储器数据对应于文件类型存储器页面;
所述冷页面回收逻辑部件配置为向所述多个冷页面中的每一个指定优先级;
所述智能页面排序逻辑部件配置为至少基于第一存储器模块池的第一特性集合与第二存储器模块池的第二特性集合,并且至少基于为所述多个冷页面中的每一个指定的优先级,来选择第一存储器模块池或第二存储器模块池中的一个;
所述智能页面排序逻辑部件被配置为从多个物理异构存储器模块中选定的存储器模块池之中选择目标存储器模块;
所述智能页面排序逻辑部件配置为确定各冷页面中的每一个是匿名类型存储器页面还是文件类型存储器页面;
对于各冷页面中对应于匿名类型存储器页面的每一个冷页面,所述智能页面排序逻辑部件配置为在所述目标存储器模块上分配匿名类型存储器页面;以及
对于各冷页面中对应于文件类型存储器页面的每一个冷页面,所述智能页面排序逻辑部件配置为在所述目标存储器模块上分配文件类型存储器页面。
7.根据权利要求6所述的异构统一存储器部件,其中:
对于各冷页面中对应于匿名类型存储器页面的每一个冷页面,所述智能页面排序逻辑部件配置为将匿名类型存储器页面写入所述目标存储器模块;以及
对于各冷页面中对应于文件类型存储器页面的每一个冷页面,所述智能页面排序逻辑部件配置为将文件类型存储器页面写入所述目标存储器模块。
8.根据权利要求6所述的异构统一存储器部件,其中:
所述智能页面排序逻辑部件配置为至少基于第一存储器模块池的第一特性集合与第二存储器模块池的第二特性集合,并且至少基于指定的优先级,将对应于匿名类型存储器页面的存储器页面第一子集分布至选定的第一存储器模块池或第二存储器模块池;以及
所述智能页面排序逻辑部件配置为至少基于第一存储器模块池的第一特性集合与第二存储器模块池的第二特性集合,并且至少基于指定的优先级,将对应于文件类型存储器页面的存储器页面第二子集分布至选定的第一存储器模块池或第二存储器模块池。
9.根据权利要求1所述的异构统一存储器部件,其中:
所述动态调整逻辑部件配置为在扩展统一存储器空间内增加一定量的为具有第一类存储器数据的存储器页面分配的空间,并且在扩展统一存储器空间内减少相应量的为具有第二类存储器数据的存储器页面分配的空间。
10.根据权利要求1所述的异构统一存储器部件,其中:
所述动态调整逻辑部件配置为在扩展统一存储器空间内减少一定量的为具有第一类存储器数据的存储器页面分配的空间,并且在扩展统一存储器空间内增加相应量的为具有第二类存储器数据的存储器页面分配的空间。
11.根据权利要求1所述的异构统一存储器部件,其中:
扩展统一存储器空间配置为存储与特定文件关联的一个或多个存储器页面,同时系统存储器存储与所述特定文件关联的一个或多个不同的存储器页面。
12.根据权利要求1所述的异构统一存储器部件,还包括:
紧凑元数据逻辑部件,其配置为:
将在来自所述多个冷页面中的元数据页面内的不同修改部分压缩为单个紧凑元数据页面;以及
使得所述单个紧凑元数据页面存储在扩展统一存储器空间中。
13.一种用于管理横跨多个物理异构存储器模块的扩展统一存储器空间的方法,所述方法包括步骤:
由冷页面回收逻辑部件从系统存储器接收被逐出的冷页面;
由冷页面回收逻辑部件为所述被逐出的冷页面指定优先级;
由智能页面排序逻辑部件至少基于第一存储器模块池的第一特性集合与第二存储器模块池的第二特性集合,并至少基于为所述被逐出的冷页面指定的优先级,来选择多个物理异构存储器模块中的第一存储器模块池或多个物理异构存储器模块中的第二存储器模块池中的一个;以及
从选定的存储器模块池中选择目标模块。
14.根据权利要求13所述的方法,还包括步骤:
由所述智能页面排序逻辑部件确定所述被逐出的冷页面具有第一类存储器数据还是第二类存储器数据;
由所述智能页面排序逻辑部件确定扩展统一存储器空间已满还是未满;
响应于确定所述被逐出的冷页面具有第一类存储器数据并且扩展统一存储器空间未满的情况,在目标存储器模块上分配存储器页面,并将具有第一类存储器数据的被逐出的冷页面写入目标存储器模块;以及
响应于确定所述被逐出的冷页面具有第二类存储器数据并且扩展统一存储器空间未满的情况,在目标存储器模块上分配存储器页面,并将具有第二类存储器数据的被逐出的冷页面写入目标存储器模块。
15.根据权利要求14所述的方法,其中,第一类存储器数据对应于匿名类型存储器页面,第二类存储器数据对应于文件类型存储器页面,所述方法还包括步骤:
响应于确定所述被逐出的冷页面是匿名类型存储器页面并且扩展统一存储器空间未满的情况,在目标存储器模块上分配匿名类型存储器页面,并将匿名类型存储器页面写入目标存储器模块;以及
响应于确定所述被逐出的冷页面是文件类型存储器页面并且扩展统一存储器空间未满的情况,在目标存储器模块上分配文件类型存储器页面,并将文件类型存储器页面写入目标存储器模块。
16.根据权利要求14所述的方法,还包括步骤:
响应于确定所述被逐出的冷页面具有第一类存储器数据并且扩展统一存储器空间已满的情况,在扩展统一存储器空间内增加一定量的为具有第一类存储器数据的存储器页面分配的空间,并且在扩展统一存储器空间内减少相应量的为具有第二类存储器数据的存储器页面分配的空间;以及
响应于确定所述被逐出的冷页面具有第二类存储器数据并且扩展统一存储器空间已满的情况,用具有第二类存储器数据的被逐出的冷页面替换最近最少使用的文件类型存储器页面。
17.一种用于管理横跨多个物理异构存储器模块的扩展统一存储器空间的方法,所述方法包括步骤:
从系统存储器接收目标读取页面;
由智能页面排序逻辑部件确定目标读取页面对应于匿名类型存储器页面还是文件类型存储器页面;
响应于确定目标读取页面对应于匿名类型存储器页面的情况:
检索分页表;
基于所述分页表确定匿名类型存储器页面位于系统存储器中还是位于扩展统一存储器空间中;以及
响应于确定匿名类型存储器页面位于扩展统一存储器空间中的情况,将匿名类型存储器页面从扩展统一存储器空间转移至系统存储器;
响应于确定目标读取页面对应于文件类型存储器页面的情况:
检索文件地址空间;
基于被检索的检索文件地址空间确定文件类型存储器页面位于系统存储器中还是位于扩展统一存储器空间中;以及
响应于确定文件类型存储器页面位于扩展统一存储器空间中的情况,将文件类型存储器页面从扩展统一存储器空间转移至系统存储器。
18.根据权利要求17所述的方法,还包括步骤:
响应于确定文件类型存储器页面既不位于扩展统一存储器空间中也不位于系统存储器中的情况:
使得文件类型存储器页面从存储磁盘转移至系统存储器;以及
将文件类型存储器页面插入扩展统一存储器空间中。
Applications Claiming Priority (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201462039399P | 2014-08-19 | 2014-08-19 | |
US62/039,399 | 2014-08-19 | ||
US14/547,126 | 2014-11-18 | ||
US14/547,126 US9792227B2 (en) | 2014-08-19 | 2014-11-18 | Heterogeneous unified memory |
Publications (2)
Publication Number | Publication Date |
---|---|
CN105373342A true CN105373342A (zh) | 2016-03-02 |
CN105373342B CN105373342B (zh) | 2019-09-24 |
Family
ID=55348423
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510508031.2A Active CN105373342B (zh) | 2014-08-19 | 2015-08-18 | 异构统一存储器 |
Country Status (4)
Country | Link |
---|---|
US (1) | US9792227B2 (zh) |
JP (1) | JP6496626B2 (zh) |
KR (1) | KR102137761B1 (zh) |
CN (1) | CN105373342B (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109213448A (zh) * | 2018-08-30 | 2019-01-15 | 东信和平科技股份有限公司 | 一种智能卡的擦写数据的方法、装置、设备及存储介质 |
CN110781098A (zh) * | 2018-07-31 | 2020-02-11 | 爱思开海力士有限公司 | 用于彼此接合多个存储器系统的设备和方法 |
WO2023151432A1 (en) * | 2022-02-10 | 2023-08-17 | International Business Machines Corporation | Partitional data compression |
Families Citing this family (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9792227B2 (en) * | 2014-08-19 | 2017-10-17 | Samsung Electronics Co., Ltd. | Heterogeneous unified memory |
JP6706159B2 (ja) * | 2016-06-22 | 2020-06-03 | キヤノン株式会社 | 情報処理装置、及びその制御方法 |
US11003381B2 (en) * | 2017-03-07 | 2021-05-11 | Samsung Electronics Co., Ltd. | Non-volatile memory storage device capable of self-reporting performance capabilities |
KR102482896B1 (ko) | 2017-12-28 | 2022-12-30 | 삼성전자주식회사 | 이종 휘발성 메모리 칩들을 포함하는 메모리 장치 및 이를 포함하는 전자 장치 |
KR20190113437A (ko) | 2018-03-28 | 2019-10-08 | 에스케이하이닉스 주식회사 | 메모리 시스템, 그것의 동작방법 및 메모리 시스템을 포함하는 컴퓨팅 시스템 |
TWI707230B (zh) * | 2018-11-22 | 2020-10-11 | 瑞昱半導體股份有限公司 | 電腦系統、記憶體管理方法與非暫態電腦可讀取媒體 |
CN109992451A (zh) * | 2019-03-28 | 2019-07-09 | 联想(北京)有限公司 | 非易失性内存和易失性内存混合管理方法及其系统 |
US11650742B2 (en) * | 2019-09-17 | 2023-05-16 | Micron Technology, Inc. | Accessing stored metadata to identify memory devices in which data is stored |
US11269780B2 (en) | 2019-09-17 | 2022-03-08 | Micron Technology, Inc. | Mapping non-typed memory access to typed memory access |
US10963396B1 (en) | 2019-09-17 | 2021-03-30 | Micron Technology, Inc. | Memory system for binding data to a memory namespace |
US11726681B2 (en) * | 2019-10-23 | 2023-08-15 | Samsung Electronics Co., Ltd. | Method and system for converting electronic flash storage device to byte-addressable nonvolatile memory module |
CN111124291B (zh) * | 2019-12-09 | 2023-05-30 | 北京金山云网络技术有限公司 | 分布式存储系统的数据存储处理方法、装置、电子设备 |
CN111240898B (zh) * | 2020-01-09 | 2023-08-15 | 中瓴智行(成都)科技有限公司 | 一种基于Hypervisor的黑匣子实现方法及系统 |
KR20210156617A (ko) * | 2020-06-18 | 2021-12-27 | 삼성전자주식회사 | 데이터 스와핑 방법 및 이를 지원하는 전자 장치 |
US11429518B2 (en) * | 2020-12-08 | 2022-08-30 | Microsoft Technology Licensing, Llc | Paging in thin-provisioned disaggregated memory |
CN113778662B (zh) * | 2021-07-28 | 2022-12-06 | 荣耀终端有限公司 | 内存回收方法及装置 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5956751A (en) * | 1995-06-28 | 1999-09-21 | Industrial Technology Research Institute | Computer memory management system using physical segmentation space allocation |
US7409518B2 (en) * | 2004-05-21 | 2008-08-05 | International Business Machines Corporation | Method for improving disk space allocation |
US20110161562A1 (en) * | 2009-12-24 | 2011-06-30 | National Taiwan University | Region-based management method of non-volatile memory |
CN102576569A (zh) * | 2009-08-21 | 2012-07-11 | 拉姆伯斯公司 | 原位内存退火 |
CN103729305A (zh) * | 2012-10-11 | 2014-04-16 | 财团法人工业技术研究院 | 虚拟机的存储器管理的方法和计算机系统 |
Family Cites Families (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH0756800A (ja) * | 1993-08-12 | 1995-03-03 | Toshiba Corp | メモリ領域の動的管理装置 |
US20050251617A1 (en) | 2004-05-07 | 2005-11-10 | Sinclair Alan W | Hybrid non-volatile memory system |
KR100761066B1 (ko) * | 2006-02-16 | 2007-09-28 | 주식회사 엠트론 | 다수 개의 플래시 메모리카드를 이용한 하드디스크 |
JP5575474B2 (ja) | 2006-08-22 | 2014-08-20 | コンバーサント・インテレクチュアル・プロパティ・マネジメント・インコーポレイテッド | スケーラブルメモリシステム |
KR100855467B1 (ko) * | 2006-09-27 | 2008-09-01 | 삼성전자주식회사 | 이종 셀 타입을 지원하는 비휘발성 메모리를 위한 맵핑장치 및 방법 |
US8239629B2 (en) | 2009-03-31 | 2012-08-07 | Micron Technology, Inc. | Hierarchical memory architecture to connect mass storage devices |
JP2011186562A (ja) | 2010-03-04 | 2011-09-22 | Toshiba Corp | メモリ管理装置及び方法 |
KR20110080480A (ko) * | 2010-01-06 | 2011-07-13 | 주식회사 태진인포텍 | 가상 스토리지 장치 및 이를 이용한 제어 방법 |
US8990538B2 (en) | 2010-11-05 | 2015-03-24 | Microsoft Corporation | Managing memory with limited write cycles in heterogeneous memory systems |
US9009392B2 (en) | 2012-04-25 | 2015-04-14 | International Business Machines Corporation | Leveraging a hybrid infrastructure for dynamic memory allocation and persistent file storage |
US20130329491A1 (en) | 2012-06-12 | 2013-12-12 | Jichuan Chang | Hybrid Memory Module |
US9524248B2 (en) | 2012-07-18 | 2016-12-20 | Micron Technology, Inc. | Memory management for a hierarchical memory system |
US9460008B1 (en) * | 2013-09-20 | 2016-10-04 | Amazon Technologies, Inc. | Efficient garbage collection for a log-structured data store |
US9792227B2 (en) | 2014-08-19 | 2017-10-17 | Samsung Electronics Co., Ltd. | Heterogeneous unified memory |
-
2014
- 2014-11-18 US US14/547,126 patent/US9792227B2/en active Active
-
2015
- 2015-04-08 KR KR1020150049722A patent/KR102137761B1/ko active IP Right Grant
- 2015-07-17 JP JP2015143035A patent/JP6496626B2/ja active Active
- 2015-08-18 CN CN201510508031.2A patent/CN105373342B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5956751A (en) * | 1995-06-28 | 1999-09-21 | Industrial Technology Research Institute | Computer memory management system using physical segmentation space allocation |
US7409518B2 (en) * | 2004-05-21 | 2008-08-05 | International Business Machines Corporation | Method for improving disk space allocation |
CN102576569A (zh) * | 2009-08-21 | 2012-07-11 | 拉姆伯斯公司 | 原位内存退火 |
US20110161562A1 (en) * | 2009-12-24 | 2011-06-30 | National Taiwan University | Region-based management method of non-volatile memory |
CN103729305A (zh) * | 2012-10-11 | 2014-04-16 | 财团法人工业技术研究院 | 虚拟机的存储器管理的方法和计算机系统 |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110781098A (zh) * | 2018-07-31 | 2020-02-11 | 爱思开海力士有限公司 | 用于彼此接合多个存储器系统的设备和方法 |
CN110781098B (zh) * | 2018-07-31 | 2023-03-28 | 爱思开海力士有限公司 | 用于彼此接合多个存储器系统的设备和方法 |
CN109213448A (zh) * | 2018-08-30 | 2019-01-15 | 东信和平科技股份有限公司 | 一种智能卡的擦写数据的方法、装置、设备及存储介质 |
CN109213448B (zh) * | 2018-08-30 | 2022-04-05 | 东信和平科技股份有限公司 | 一种智能卡的擦写数据的方法、装置、设备及存储介质 |
WO2023151432A1 (en) * | 2022-02-10 | 2023-08-17 | International Business Machines Corporation | Partitional data compression |
US11777519B2 (en) | 2022-02-10 | 2023-10-03 | International Business Machines Corporation | Partitional data compression |
Also Published As
Publication number | Publication date |
---|---|
CN105373342B (zh) | 2019-09-24 |
US9792227B2 (en) | 2017-10-17 |
KR102137761B1 (ko) | 2020-07-27 |
KR20160022226A (ko) | 2016-02-29 |
JP2016045940A (ja) | 2016-04-04 |
JP6496626B2 (ja) | 2019-04-03 |
US20160055097A1 (en) | 2016-02-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105373342A (zh) | 异构统一存储器 | |
CN102782683B (zh) | 用于数据库服务器的缓冲池扩展 | |
US11874815B2 (en) | Key-value storage device and method of operating the same | |
US20230229791A1 (en) | Memory system and method of controlling nonvolatile memory | |
US11513707B2 (en) | Memory system and method of controlling nonvolatile memory | |
US8250310B2 (en) | Assigning data to NVRAM of shared access hybrid hard drives | |
CN108628753B (zh) | 内存空间管理方法和装置 | |
US11797436B2 (en) | Memory system and method for controlling nonvolatile memory | |
CN102799534A (zh) | 基于固态存储介质的存储系统及方法、冷热数据识别方法 | |
CN105593828A (zh) | 管理文件的方法、分布式存储系统和管理节点 | |
CN103593477A (zh) | 一种哈希数据库的配置方法和装置 | |
US10503647B2 (en) | Cache allocation based on quality-of-service information | |
CN105117355A (zh) | 存储器、存储器系统及其数据处理方法 | |
US20160253257A1 (en) | Data processing system and operating method thereof | |
US11093143B2 (en) | Methods and systems for managing key-value solid state drives (KV SSDS) | |
US11200159B2 (en) | System and method for facilitating efficient utilization of NAND flash memory | |
CN104866428A (zh) | 数据存取方法和数据存取装置 | |
US20150169570A1 (en) | Method and device for managing data | |
CN104054071A (zh) | 访问存储设备的方法和存储设备 | |
CN109478181A (zh) | 用于使得能够修改文件系统卷内的多个数据对象的系统和方法 | |
US10108636B2 (en) | Data deduplication method | |
CN101510146A (zh) | 基于独立冗余磁盘阵列的虚拟空间创建方法、装置和系统 | |
US11880593B2 (en) | Host, operating method of host and storage system | |
KR102210536B1 (ko) | 비휘발성 메모리 장치의 데이터 관리 시스템 및 그 방법 | |
KR20230025322A (ko) | 호스트, 호스트의 동작 방법 및 스토리지 시스템 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | 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 |