CN108292265B - 对高性能存储器的存储器管理 - Google Patents
对高性能存储器的存储器管理 Download PDFInfo
- Publication number
- CN108292265B CN108292265B CN201680068363.6A CN201680068363A CN108292265B CN 108292265 B CN108292265 B CN 108292265B CN 201680068363 A CN201680068363 A CN 201680068363A CN 108292265 B CN108292265 B CN 108292265B
- Authority
- CN
- China
- Prior art keywords
- memory
- block
- blocks
- high performance
- application
- 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
Links
- 230000015654 memory Effects 0.000 title claims abstract description 251
- 238000000034 method Methods 0.000 claims abstract description 48
- 230000000694 effects Effects 0.000 claims abstract description 25
- 230000006835 compression Effects 0.000 claims description 10
- 238000007906 compression Methods 0.000 claims description 10
- 230000006870 function Effects 0.000 claims description 7
- 230000002123 temporal effect Effects 0.000 claims description 3
- 238000003860 storage Methods 0.000 description 12
- 238000010586 diagram Methods 0.000 description 8
- 238000012545 processing Methods 0.000 description 8
- 230000009471 action Effects 0.000 description 5
- 230000002093 peripheral effect Effects 0.000 description 5
- 238000004891 communication Methods 0.000 description 4
- 238000005516 engineering process Methods 0.000 description 3
- 230000005291 magnetic effect Effects 0.000 description 3
- 230000008569 process Effects 0.000 description 3
- 230000003068 static effect Effects 0.000 description 3
- XUIMIQQOPSSXEZ-UHFFFAOYSA-N Silicon Chemical compound [Si] XUIMIQQOPSSXEZ-UHFFFAOYSA-N 0.000 description 2
- 230000005540 biological transmission Effects 0.000 description 2
- 239000004020 conductor Substances 0.000 description 2
- 238000013480 data collection Methods 0.000 description 2
- 238000013461 design Methods 0.000 description 2
- 230000000977 initiatory effect Effects 0.000 description 2
- 238000004519 manufacturing process Methods 0.000 description 2
- 230000007246 mechanism Effects 0.000 description 2
- 230000006855 networking Effects 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 229910052710 silicon Inorganic materials 0.000 description 2
- 239000010703 silicon Substances 0.000 description 2
- 238000012546 transfer Methods 0.000 description 2
- 101100498818 Arabidopsis thaliana DDR4 gene Proteins 0.000 description 1
- 230000008901 benefit Effects 0.000 description 1
- 230000000295 complement effect Effects 0.000 description 1
- 238000013481 data capture Methods 0.000 description 1
- 230000007274 generation of a signal involved in cell-cell signaling Effects 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 238000002955 isolation Methods 0.000 description 1
- 238000013507 mapping Methods 0.000 description 1
- 238000005457 optimization Methods 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
- 235000012431 wafers Nutrition 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/061—Improving I/O performance
-
- 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/0804—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches with main memory updating
-
- 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/0253—Garbage collection, i.e. reclamation of unreferenced memory
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- 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
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0683—Plurality of storage devices
- G06F3/0685—Hybrid storage combining heterogeneous device types, e.g. hierarchical storage, hybrid arrays
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C7/00—Arrangements for writing information into, or reading information out from, a digital store
- G11C7/10—Input/output [I/O] data interface arrangements, e.g. I/O data control circuits, I/O data buffers
- G11C7/1072—Input/output [I/O] data interface arrangements, e.g. I/O data control circuits, I/O data buffers for memories with random access ports synchronised on clock signal pulse trains, e.g. synchronous memories, self timed memories
-
- 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/20—Employing a main memory using a specific memory technology
- G06F2212/205—Hybrid memory, e.g. using both volatile and non-volatile 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/21—Employing a record carrier using a specific recording technology
- G06F2212/217—Hybrid disk, e.g. using both magnetic and solid state storage devices
-
- 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/70—Details relating to dynamic memory management
- G06F2212/702—Conservative garbage collection
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)
- Debugging And Monitoring (AREA)
- Memory System (AREA)
Abstract
本文描述了用于对高性能存储器进行存储器管理的各种系统和方法。一种用于管理高性能存储器的系统,该系统包括:随机存取存储器;高性能存储器,该高性能存储器具有比随机存取存储器更高的性能;以及存储器管理单元,其用于:获得驻留在随机存取存储器中的多个块的执行度量;基于块的活动性从多个块中选择块;将块移至高性能存储器;以及将针对块的虚拟存储器映射从随机存取存储器更新至高性能存储器。
Description
优先权申请
本申请要求于2015年12月23日提交的美国申请第14/757,418号的优先权的权益,其全部内容通过引用并入本文。
技术领域
本文描述的实施例总体上涉及存储器管理,并且具体地涉及对高性能存储器的存储器管理。
背景技术
通过使用多种技术来获得计算能力的增加,这些技术包括增加中央处理单元(CPU)操作速度,增加CPU核心,添加一个或多个CPU高速缓存,添加每核心线程,增加存储器带宽或速度,增加主存储器的量等。
附图说明
在不一定按比例绘制的附图中,相同的附图标记可以在不同的视图中描述相似的组件。具有不同字母后缀的相同附图标记可以表示相似组件的不同实例。在附图的图中通过示例的方式而非通过限制的方式示出了一些实施例,其中:
图1是示出根据实施例的计算机系统的示例性硬件和软件架构的图,其中示出了硬件组件与软件组件之间的各种接口;
图2是示出根据实施例的控制和数据流的框图;
图3是示出根据实施例的管理高性能存储器的系统的框图;
图4是示出根据实施例的管理高性能存储器的方法的流程图;以及
图5是示出根据示例实施例的本文所讨论的技术(例如,方法)中的任何一个或多个可以在其上执行的示例机器的框图。
具体实施方式
在以下描述中,出于解释的目的,阐述了许多具体细节以便提供对一些示例实施例的透彻理解。然而,对于本领域技术人员显而易见的是,可以在没有这些具体细节的情况下实践本公开。
常规的存储器模块在两个维度上按照行和列来组织存储器单元。近年来,存储器被设计为增加数据速率(例如,双倍数据速率(DDR)SDRAM(同步动态随机存取存储器)、DDR2(2型DDR SDRAM)、DDR3(3型DDR SDRAM)等)或增加带宽(例如,DDR4)。
新的存储器设备堆叠硅晶片或管芯并使用硅通孔(TSV)垂直地将其互连。3D存储器模块的示例是混合存储器立方体(HMC),其堆叠由内部垂直导体(例如,TSV)连接的单独模块存储器管芯(例如,存储器设备)。TSV是垂直导体,其将一堆单独的存储器管芯与控制器电连接。HMC可以提供更小的形状因子,实现更高的带宽和其他效率,同时使用更少的能量来传送每比特数据。3D存储器的另一示例是高带宽存储器(HBM),其也被设计为具有堆叠配置中的多达八个DRAM管芯以及具有存储器控制器的可选基底管芯。HBM中的管芯的堆可以使用TSV进行互连。当与常规DRAM进行比较时,HBM提供了非常宽的存储器带宽。例如,在4个DRAM管芯堆叠的情况下,HBM提供每个管芯两个128位通道,总共8个通道,并且宽度为1024位。在存储器模块上使用四个这样的堆提供了4096位存储器总线;相比DDR3或DDR4总线有很大的改进。其他类型的高性能存储器也即将出现,包括3D XpointTM、通用闪速存储(UFS)、3D NAND闪存以及围绕宽I/O和相关标准构建的技术。
由于这些存储器模块的制造和生产的初始成本很高,这些先进的存储器模块可能以有限的量提供给消费者。一种设计选项是提供高性能存储器模块以及DDR3或DD4SDRAM模块。这种设计为最终用户提供了增加的速度,而没有用高性能RAM替换系统中所有RAM的全部运输成本。
本文描述的系统和方法实现对高性能存储器的存储器管理。使用应用的性能度量,存储器管理器可以将热存储器块分配给高性能存储器(HPM),同时在常规DRAM中留下冷存储器块。这种存储器管理技术显著地跨从客户到企业的宽范围的应用改进了性能。另外,本文描述的实现方式对于执行应用而言透明地进行操作。
图1是示出根据实施例的计算机系统的示例性硬件和软件架构100的图,其中示出了硬件组件与软件组件之间的各种接口。如HW指示的,硬件组件在分隔线下方表示,而由SW表示的软件组件位于分隔线上方。在硬件方面,处理设备102(其可以包括一个或多个微处理器、数字信号处理器等,各自具有一个或多个处理器核心)与存储器管理设备104和系统互连106相接合。存储器管理设备104提供在正被执行的进程所使用的虚拟存储器与物理存储器之间的映射。存储器管理装置104可以是中央处理单元的组成部分,其同样包括处理设备102。
互连106包括诸如存储器、数据和控制线之类的背板以及与输入/输出设备的接口(例如,PCI、USB等)。存储器108(例如,动态随机存取存储器(DRAM))和非易失性存储器110(例如,闪速存储器(例如,电可擦除只读存储器——EEPROM、NAND闪存、NOR闪存等))经由存储器控制器112与存储器管理设备104和互连106相接合。包括视频和音频适配器、非易失性存储装置、外部外围设备链接(例如,USB、蓝牙等)、相机/麦克风数据捕获设备、指纹读取器和其他生物识别传感器以及网络接口设备(例如,经由Wi-Fi或LTE系列接口进行通信的那些设备)的I/O设备被共同表示为I/O设备和联网114,其经由对应的I/O控制器116与互连106相接合。
在相关实施例中,输入/输出存储器管理单元IOMMU 118支持由外围设备进行安全直接存储器存取(DMA)。IOMMU 118可以通过考虑来自I/O设备114的对存储器108的存取来提供存储器保护。IOMMU 118还可以在虚拟化环境中提供DMA存储器保护,其中IOMMU 118允许将某些硬件资源分配给在系统上运行的某些客体VM,并且在其他VM与未分配给它们的外围设备之间实施隔离。
在软件方面,预操作系统(pre-OS)环境120在初始系统启动时执行并且负责发起操作系统的引导。Pre-OS环境120的一个传统示例是系统基本输入/输出系统(BIOS)。在当今的系统中,实现了统一可扩展固件接口(UEFI)。根据本发明的某些方面,在下面更详细描述的Pre-OS环境120负责发起操作系统或虚拟机管理器的启动,但是还为嵌入式应用提供执行环境。
虚拟机监视器(VMM)122是创建并控制虚拟机(VM)124A和124B的执行的系统软件。如所描绘的,VMM318可以直接在硬件HW上运行,或者VMM 122可以作为托管VMM在操作系统的控制下运行。
每个VM 124A、124B包括客体操作系统126A、126B和应用程序128A、128B。
每个客体操作系统(OS)126A、126B提供内核,该内核通过由VMM122提供的资源进行操作以控制硬件设备,管理对存储器中的程序的存储器存取,协调任务并促进多任务,组织要存储的数据,分配存储器空间和其他资源,将程序二进制代码加载到存储器中,发起对应应用程序的执行(然后应用程序与用户和硬件设备进行交互),并且检测并响应各种定义的中断。另外,每个客体OS 126A、126B提供设备驱动程序以及诸如促进与外围设备和联网相接合服务之类的各种常见服务,这些服务针对对应应用程序128A、128B提供抽象化,使得应用不需要负责处理这些常见操作的细节。每个客体OS 126A、126B另外可以提供促进经由诸如监视器、键盘、鼠标、麦克风、摄像机、触摸屏等之类的外围设备与用户进行交互的图形用户接口(GUI)。
每个客体OS 126A、126B可以提供实现执行模型的部分的运行时系统,包括诸如在函数调用之前将参数放入栈中的操作,磁盘输入/输出(I/O)的行为,以及并行执行相关的行为。
另外,每个客体OS 126A、126B可以提供包括针对应用程序提供进一步抽象化的程序函数集合的库。例如,这些库可能包括共享库、动态链接库(DLL)。
应用程序128A、128B是这样的程序:其执行除了协调计算机系统本身的基本可操作性的由较低级系统程序执行的任务以外的对用户有用的任务。
图2是示出根据实施例的控制和数据流的框图。存储器管理器200与分析器202相接合。分析器202可以是在编译时或运行时执行的应用分析器。分析器202可以用于识别或测量程序的空间或时间复杂度,特定指令或代码块的使用,或函数调用的频率或持续时间。分析器202可以使用诸如简档引导优化(PGO)之类的技术来分析热点(例如,最高CPU消耗)的应用代码块。在示例中,分析器202识别CPU密集型的可执行代码的部分。存储器管理器200和分析器202可以存在于虚拟机实例(例如,Java虚拟机)中,存在于操作系统组件中,或者存在于应用层处(与VM分离)。用于Java应用的示例分析器是针对Eclipse的Hyades数据收集引擎(Hyades Data Collection Engine for Eclipse)。另一示例分析器是的VTuneTMAmplifier XE。
中央处理单元(CPU)204耦合到动态随机存取存储器(DRAM)206和高性能存储器208。DRAM 206可以是各种类型的DRAM,例如,DDR2、DD3或DD4SDRAM。高性能存储器208具有性能比DRAM 206显著更高的类型。高性能存储器208的示例包括但不限于HMC、HBM、3DXpointTM,通用闪速存储(UFS)、3D NAND闪存以及围绕宽I/O和相关标准构建的技术。
存储器管理器200被配置为管理存储器块的分配。存储器管理器200针对高性能存储器208和DRAM 206中的每个维护活动和空闲存储器的列表。存储器管理器200还维护基于来自分析器202的数据进行更新的热块210和冷块212的列表。
存储器管理器200将被分析为高度活动的那些块放置在热块列表210中。然后将这些块分配给高性能存储器208上的空间。因此,热块总是“活动的”。
当在高性能存储器208或DRAM 206中不存在空闲存储器时,可以从存储器中清除处于冷块列表212中的冷块。
从初始状态开始,存储器管理器200可以从DRAM 206分配存储器。当热块被识别为处于DRAM 206中时,将热块移至高性能存储器208。该操作可以在垃圾收集操作期间执行。例如,在垃圾收集压缩阶段期间执行重新分配会降低存储器写入的开销,因为在一些情况下在压缩期间存储器块已经被移动。
从正在执行的应用的角度,操作是无缝且透明的。存储器管理器200处理来自应用的存储器存取请求,并且根据被写入或存取的存储器块的特性将应用的地址空间映射到高性能存储器208或DRAM 206。
图3是示出根据实施例的管理高性能存储器的系统300的框图。系统300可以包括随机存取存储器302、高性能存储器304和存储器管理单元306。
随机存取存储器302可以包括各种类型的DRAM,例如,DDR2、DDR3或DDR4SDRAM。可以使用其他类型的常规存储器,例如,SO-DIMM、SIMM等。
高性能存储器304是比随机存取存储器302显著更好的存储器。高性能存储器304的示例包括但不限于HMC、HBM、3D XpointTM、通用闪速存储(UFS)、3D NAND闪存以及围绕宽I/O和相关标准构建的技术。在实施例中,高性能存储器304是高带宽存储器(HBM)存储器模块。在另一实施例中,高性能存储器304是混合存储器立方体(HMC)存储器模块。
存储器管理单元306可以被配置为获得驻留在随机存取存储器302中的多个块的执行度量,基于块的活动性从多个块中选择块,将块移至高性能存储器304,并且将针对块的虚拟存储器映射从随机存取存储器302更新至高性能存储器304。驻留在随机存取存储器302和高性能存储器304中的块可以维持在冷块列表和热块列表中,如上面关于图2所描述的。
在实施例中,该块是存储器框架。在相关实施例中,执行度量是对存储器框架的访问。
在实施例中,为了基于块的活动性从多个块中选择块,存储器管理单元306按照访问计数对多个块中的块进行排序并且选择与未选择的块相比具有更高访问计数的块。经排序的块可以维持在单个列表或多个列表(例如,热块列表和冷块列表)中。
在实施例中,该块是来自应用的字节码的字节码块。在另一实施例中,字节码块是应用的方法。在相关实施例中,字节码块是应用的数据结构。在相关实施例中,字节码块是应用的循环。
在实施例中,执行度量是从运行应用的虚拟机获得的。在另一实施例中,为了获得执行度量,存储器管理单元306调用虚拟机的分析器来产生执行度量。在另一实施例中。执行度量是对调用字节码块进行计数的性能计数器。在又一实施例中,为了从多个块中选择块,存储器管理单元306选择适合于高性能存储器304并且具有最高性能计数器度量的块。
在实施例中,存储器管理单元306的操作在垃圾收集操作期间执行。在另一实施例中,存储器管理单元306的操作在垃圾压缩操作期间执行。
可以基于各种因素(例如,附加活动块的执行度量,从高性能存储器304或者随机存取存储器302分配或解除分配存储器的应用的执行或终止,或将先前“高活动性”块重新排名为相对于其他活动块而言相对“低活动性”块的其他情形)将块移至高性能存储器304以及从高性能存储器304移动块。因此,在实施例中,存储器管理单元306将低活动性块从高性能存储器移至随机存取存储器,并且将针对块的虚拟存储器映射从高性能存储器更新至随机存取存储器。
图4是示出根据实施例的管理高性能存储器的方法400的流程图。在操作402处,在存储器管理单元处获得驻留在随机存取存储器中的多个块的执行度量。在实施例中,执行度量是对存储器框架的访问。在另一实施例中,基于块的活动性从多个块中选择块包括按照访问计数对多个块中的块进行排序并且选择与未选择的块相比具有更高访问计数的块。
在操作404处,基于块的活动性从多个块中选择块。在实施例中,该块是存储器框架。
在实施例中,该块是来自应用的字节码的字节码块。在另一实施例中,字节码块是应用的方法。在相关实施例中,字节码块是应用的数据结构。在相关实施例中,字节码块是应用的循环。
在相关实施例中,执行度量是从运行应用的虚拟机获得的。在另一实施例中,获得执行度量包括调用虚拟机的分析器以产生执行度量。在另一实施例中,执行度量是对调用字节码块进行计数的性能计数器。在相关实施例中,从多个块中选择块包括选择适合于高性能存储器并且具有最高性能计数器度量的块。
在操作406处,将块移至高性能存储器,高性能存储器具有比随机存取存储器更高的性能。在实施例中,高性能存储器是高带宽存储器(HBM)存储器模块。在相关实施例中,高性能存储器是混合存储器立方体(HMC)存储器模块。
在操作408处,针对块的虚拟存储器映射从随机存取存储器更新至高性能存储器。
在实施例中,方法400在垃圾收集操作期间执行。在另一实施例中,方法400在垃圾压缩操作期间执行。
在实施例中,方法400包括将低活动性块从高性能存储器移至随机存取存储器并且将针对块的虚拟存储器映射从高性能存储器更新至随机存取存储器。
实施例可以以硬件、固件和软件之一或其组合来实现。实施例还可以实现为存储在机器可读存储设备上的指令,该指令可以被至少一个处理器读取和执行以执行本文描述的操作。机器可读存储设备可以包括用于以机器(例如,计算机)可读形式存储信息的任何非暂时性机构。例如,机器可读存储设备可以包括只读存储器(ROM)、随机存取存储器(RAM)、磁盘存储介质、光存储介质、闪速存储器设备以及其他存储设备和介质。
处理器子系统可以用于执行机器可读介质上的指令。处理器子系统可以包括一个或多个处理器,每个处理器具有一个或多个核心。另外,处理器子系统可以布置在一个或多个物理设备上。处理器子系统可以包括一个或多个专用处理器,例如,图形处理单元(GPU)、数字信号处理器(DSP)、现场可编程门阵列(FPGA)或固定功能处理器。
如本文描述的示例可以包括逻辑或多个组件、模块或机构或可以在逻辑或多个组件、模块或机构上进行操作。模块可以是通信地耦合到一个或多个处理器以便实现本文描述的操作的硬件、软件或固件。模块可以是硬件模块,并且因此模块可以被认为是能够执行指定操作的有形实体并且可以以特定方式来配置或布置。在示例中,电路可以以特定方式被布置(例如,在内部或相对于诸如其他电路的外部实体)为模块。在示例中,一个或多个计算机系统(例如,独立的、客户端或服务器计算机系统)或一个或多个硬件处理器的全部或一部分可以由固件或软件(例如,指令、应用部分或应用)配置为进行操作以执行指定操作的模块。在示例中,软件可以驻留在机器可读介质上。在示例中,软件在由模块的底层硬件执行时,使硬件执行指定的操作。因此,术语硬件模块被理解为包含有形实体,即物理地构造、特别地配置(例如,硬连线)或临时地(例如,暂时性地)配置(例如,编程)为以指定方式操作或执行本文描述的任何操作的部分或全部的实体。考虑临时地配置模块的示例,模块中的每个模块不需要在任一时刻实例化。例如,在模块包括使用软件配置的通用硬件处理器的情况下;通用硬件处理器可以在不同时间被配置为分别不同的模块。软件可以相应地配置硬件处理器,例如,在一个时间点构成特定模块并且在不同的时间点构成不同的模块。模块也可以是进行操作以执行本文描述的方法的软件模块或固件模块。
图5是示出根据示例实施例的以计算机系统500的示例形式的机器的框图,在该机器内可以执行一组指令或指令序列以使机器执行本文讨论的方法中的任何一种方法。在替代实施例中,机器作为独立设备操作或者可以连接(例如,联网)到其他机器。在联网部署中,机器可以在服务器-客户端网络环境中以服务器或客户端机器的能力运行,或者机器可以在对等(或分布式)网络环境中充当对等机器。该机器可以是车载系统、可穿戴设备、个人计算机(PC)、平板PC、混合平板电脑、个人数字助理(PDA)、移动电话或能够执行指定由该机器采取的动作的指令(顺序的或其他)的任何机器。此外,虽然仅示出单个机器,但术语“机器”也应被理解为包括单独或联合执行一组(或多组)指令以执行本文讨论的方法中的任何一种或多种方法的机器的任何集合。类似地,术语“基于处理器的系统”应被理解为包括由处理器(例如,计算机)控制或操作以单独或联合执行指令以便执行本文讨论的方法中的任何一种或多种方法的一个或多个机器的任何集合。
示例计算机系统500包括至少一个处理器502(例如,中央处理单元(CPU)、图形处理单元(GPU)或两者、处理器核心、计算节点等)、主存储器504和静态存储器506,其经由链路508(例如,总线)彼此通信。计算机系统500还可以包括视频显示单元510、字母数字输入设备512(例如,键盘)和用户接口(UI)导航设备514(例如,鼠标)。在一个实施例中,视频显示单元510、输入设备512和UI导航设备514并入到触摸屏显示器中。计算机系统500可以另外包括存储设备516(例如,驱动单元)、信号发生设备518(例如,扬声器)、网络接口设备520以及一个或多个传感器(未示出),例如,全球定位系统(GPS)传感器、罗盘、加速度计、陀螺仪、磁力计或其他传感器。
存储设备516包括机器可读介质522,在机器可读介质522上存储有体现本文描述的方法或功能中的任何一个或多个或由本文描述的方法或功能中的任何一个或多个使用的一组或多组数据结构和指令524(例如,软件)。在由计算机系统500执行期间,指令524还可以完全或至少部分地驻留在主存储器504、静态存储器506和/或处理器502内,其中主存储器504、静态存储器506和处理器502也构成机器可读介质。
虽然机器可读介质522在示例实施例中被示出为单个介质,但术语“机器可读介质”可以包括存储一个或多个指令524的单个介质或多个介质(例如,集中式或分布式数据库,和/或相关联的高速缓存和服务器)。术语“机器可读介质”还应被理解为包括任何有形介质,该有形介质能够存储、编码或携带指令以供机器执行,并且使机器执行本公开的方法中的任何一种或多种方法,或者能够存储、编码或携带由这些指令使用或与这些指令相关联的数据结构。术语“机器可读介质”因此应被认为包括但不限于固态存储器以及光学和磁性介质。机器可读介质的具体示例包括非易失性存储器,通过示例的方式包括但不限于半导体存储器设备(例如,电可编程只读存储器(EPROM)、电可擦除可编程只读存储器(EEPROM))和闪速存储器设备;磁盘,例如,内部硬盘和可移除盘;磁光盘;以及CD-ROM和DVD-ROM盘。
指令524可以进一步经由网络接口设备520利用多种公知的传送协议中的任一种(例如,HTTP)使用传输介质通过通信网络526来发送或接收。通信网络的示例包括局域网(LAN)、广域网(WAN)、互联网、移动电话网络、普通老式电话(POTS)网络和无线数据网络(例如,蓝牙、Wi-Fi、3G和4G LTE/LTE-A或WiMAX网络)。术语“传输介质”应被理解为包括能够存储、编码或携带指令以供机器执行的任何无形介质,并且包括促进这种软件的通信的数字或模拟通信信号或其他无形介质。
附加注释和示例:
示例1包括用于管理高性能存储器的主题(例如,设备、装置或机器),其包括:随机存取存储器;高性能存储器,该高性能存储器具有比随机存取存储器更高的性能;以及存储器管理单元,其用于:获得驻留在随机存取存储器中的多个块的执行度量;基于块的活动性从多个块中选择块;将块移至高性能存储器;以及将针对块的虚拟存储器映射从随机存取存储器更新至高性能存储器。
在示例2中,示例1的主题可以包括,其中该块是存储器框架。
在示例3中,示例1至2中的任何一个的主题可以包括,其中执行度量是对存储器框架的访问。
在示例4中,示例1至3中的任何一个的主题可以包括,其中为了基于块的活动性从多个块中选择块,存储器管理单元用于:按照访问计数对多个块进行排序;以及选择与未选择的块相比具有更高访问计数的块。
在示例5中,示例1至4中的任何一个的主题可以包括,其中该块是来自应用的字节码的字节码块。
在示例6中,示例1至5中的任何一个的主题可以包括,其中字节码块是应用的方法。
在示例7中,示例1至6中的任何一个的主题可以包括,其中字节码块是应用的数据结构。
在示例8中,示例1至7中的任何一个的主题可以包括,其中字节码块是应用的循环。
在示例9中,示例1至8中的任何一个的主题可以包括,其中执行度量是从运行应用的虚拟机获得的。
在示例10中,示例1至9中的任何一个的主题可以包括,其中为了获得执行度量,存储器管理单元调用虚拟机的分析器以产生执行度量。
在示例11中,示例1至10中的任何一个的主题可以包括,其中执行度量是对调用字节码块进行计数的性能计数器。
在示例12中,示例1至11中的任何一个的主题可以包括,其中为了从多个块中选择块,存储器管理单元用于选择适合于高性能存储器并且具有最高性能计数器度量的块。
在示例13中,示例1至12中的任何一个的主题可以包括,其中高性能存储器是高带宽存储器(HBM)存储器模块。
在示例14中,示例1至13中的任何一个的主题可以包括,其中高性能存储器是混合存储器立方体(HMC)存储器模块。
在示例15中,示例1至14中的任何一个的主题可以包括,其中在垃圾收集操作期间执行存储器管理单元的操作。
在示例16中,示例1至15中的任何一个的主题可以包括,其中在垃圾压缩操作期间执行存储器管理单元的操作。
在示例17中,示例1至16中的任何一个的主题可以包括,其中存储器管理单元用于:将低活动性块从高性能存储器移至随机存取存储器;以及将针对块的虚拟存储器映射从高性能存储器更新至随机存取存储器。
示例18包括用于管理高性能存储器的主题(例如,方法,用于执行动作的单元,包括指令的机器可读介质(指令当由机器执行时使机器执行动作),或用于执行的装置),其包括:在存储器管理单元处获得驻留在随机存取存储器中的多个块的执行度量;基于块的活动性从多个块中选择块;将块移至高性能存储器,高性能存储器具有比随机存取存储器更高的性能;以及将针对块的虚拟存储器映射从随机存取存储器更新至高性能存储器。
在示例19中,示例18的主题可以包括,其中该块是存储器框架。
在示例20中,示例18至19中的任何一个的主题可以包括,其中执行度量是对存储器框架的访问。
在示例21中,示例18至20中的任何一个的主题可以包括,其中,基于块的活动性从多个块中选择块包括:按照访问计数对多个块中的块进行排序;以及选择与未选择的块相比具有更高访问计数的块。
在示例22中,示例18至21中的任何一个的主题可以包括,其中该块是来自应用的字节码的字节码块。
在示例23中,示例18至22中的任何一个的主题可以包括,其中字节码块是应用的方法。
在示例24中,示例18至23中的任何一个的主题可以包括,其中字节码块是应用的数据结构。
在示例25中,示例18至24中的任何一个的主题可以包括,其中字节码块是应用的循环。
在示例26中,示例18至25中的任何一个的主题可以包括,其中执行度量是从运行应用的虚拟机获得的。
在示例27中,示例18至26中的任何一个的主题可以包括,其中获得执行度量包括调用虚拟机的分析器以产生执行度量。
在示例28中,示例18至27中的任何一个的主题可以包括,其中执行度量是对调用字节码块进行计数的性能计数器。
在示例29中,示例18至28中的任何一个的主题可以包括,其中从多个块中选择块包括选择适合于高性能存储器并且具有最高性能计数器度量的块。
在示例30中,示例18至29中的任何一个的主题可以包括,其中高性能存储器是高带宽存储器(HBM)存储器模块。
在示例31中,示例18至30中的任何一个的主题可以包括,其中高性能存储器是混合存储器立方体(HMC)存储器模块。
在示例32中,示例18至31中的任何一个的主题可以包括,其中该方法在垃圾收集操作期间执行。
在示例33中,示例18至32中的任何一个的主题可以包括,其中该方法在垃圾压缩操作期间执行。
在示例34中,示例18至33中的任何一个的主题可以包括:将低活动性块从高性能存储器移至随机存取存储器;以及将针对块的虚拟存储器映射从高性能存储器更新至随机存取存储器。
示例35包括至少一种机器可读介质,其包括指令,该指令当由机器执行时使机器执行示例18-34中的任何一个的操作。
示例36包括一种装置,该装置包括用于执行示例18-34中的任何一个的单元。
示例37包括用于管理高性能存储器的主题(例如,设备、装置或机器),其包括:用于在存储器管理单元处获得驻留在随机存取存储器中的多个块的执行度量的单元;用于基于所述块的活动性从所述多个块中选择块的单元;用于将块移至高性能存储器的单元,高性能存储器具有比随机存取存储器更更高的性能;以及用于将针对块的虚拟存储器映射从所述随机存取存储器更新至所述高性能存储器的单元。
在示例38中,示例37的主题可以包括,其中该块是存储器框架。
在示例39中,示例37至38中的任何一个的主题可以包括,其中执行度量是对存储器框架的访问。
在示例40中,示例37至39中的任何一个的主题可以包括,其中用于基于块的活动性从多个块中选择块的单元包括:用于按照访问计数对所述多个块中的块进行排序的单元;以及用于选择与未选择的块相比具有更高访问计数的块的单元。
在示例41中,示例37至40中的任何一个的主题可以包括,其中该块是来自应用的字节码的字节码块。
在示例42中,示例37至41中的任何一个的主题可以包括,其中字节码块是应用的方法。
在示例43中,示例37至42中的任何一个的主题可以包括,其中字节码块是应用的数据结构。
在示例44中,示例37至43中的任何一个的主题可以包括,其中字节码块是应用的循环。
在示例45中,示例37至44中的任何一个的主题可以包括,其中执行度量是从运行应用的虚拟机获得的。
在示例46中,示例37至45中的任何一个的主题可以包括,其中用于获得执行度量的单元包括用于调用虚拟机的分析器以产生执行度量的单元。
在示例47中,示例37至46中的任何一个的主题可以包括,其中执行度量是对调用字节码块进行计数的性能计数器。
在示例48中,示例37至47中的任何一个的主题可以包括,其中,用于从多个块中选择块的单元包括用于选择适合于高性能存储器并且具有最高性能计数器度量的块的单元。
在示例49中,示例37至48中的任何一个的主题可以包括,其中高性能存储器是高带宽存储器(HBM)存储器模块。
在示例50中,示例37至49中的任何一个的主题可以包括,其中高性能存储器是混合存储器立方体(HMC)存储器模块。
在示例51中,示例37至50中的任何一个的主题可以包括,其中在垃圾收集操作期间执行权利要求37的操作。
在示例52中,示例37至51中的任何一个的主题可以包括,其中在垃圾压缩操作期间执行权利要求37的操作。
在示例53中,示例37至52中的任何一个的主题可以包括:用于将低活动性块从高性能存储器移至随机存取存储器的单元;以及用于将针对块的虚拟存储器映射从所述高性能存储器更新至所述随机存取存储器的单元。
示例54包括用于管理高性能存储器的主题(例如,设备、装置或机器),其包括:处理器子系统;以及包括指令的存储器,该指令当由所述处理器子系统执行时使所述处理器子系统进行以下操作:在存储器管理单元处获得驻留在随机存取存储器中的多个块的执行度量;基于块的活动性从多个块中选择块;将块移至高性能存储器,高性能存储器具有比随机存取存储器更高的性能;以及将针对块的虚拟存储器映射从随机存取存储器更新至高性能存储器。
在示例55中,示例54的主题可以包括,其中该块是存储器框架。
在示例56中,示例54至55中的任何一个的主题可以包括,其中执行度量是对存储器框架的访问。
在示例57中,示例54至56中的任何一个的主题可以包括,其中用于基于块的活动性从多个块中选择块的指令包括用于以下操作的指令:按照访问计数对多个块中的块进行排序;以及选择与未选择的块相比具有更高访问计数的块。
在示例58中,示例54至57中的任何一个的主题可以包括,其中该块是来自应用的字节码的字节码块。
在示例59中,示例54至58中的任何一个的主题可以包括,其中字节码块是应用的方法。
在示例60中,示例54至59中的任何一个的主题可以包括,其中字节码块是应用的数据结构。
在示例61中,示例54至60中的任何一个的主题可以包括,其中字节码块是应用的循环。
在示例62中,示例54至61中的任何一个的主题可以包括,其中执行度量是从运行应用的虚拟机获得的。
在示例63中,示例54至62中的任何一个的主题可以包括,其中用于获得执行度量的指令包括用于调用虚拟机的分析器以产生执行度量的指令。
在示例64中,示例54至63中的任何一个的主题可以包括,其中执行度量是对调用字节码块进行计数的性能计数器。
在示例65中,示例54至64中的任何一个的主题可以包括,其中用于从多个块中选择块的指令包括用于选择适合于高性能存储器并且具有最高性能计数器度量的块的指令。
在示例66中,示例54至65中的任何一个的主题可以包括,其中高性能存储器是高带宽存储器(HBM)存储器模块。
在示例67中,示例54至66中的任何一个的主题可以包括,其中,高性能存储器是混合存储器立方体(HMC)存储器模块。
在示例68中,示例54至67中的任何一个的主题可以包括,其中在垃圾收集操作期间执行权利要求54的指令。
在示例69中,示例54至68中的任何一个的主题可以包括,其中在垃圾压缩操作期间执行权利要求54的指令。
在示例70中,示例54至69中的任何一个的主题可以包括用于以下操作的指令:将低活动块从高性能存储器移至随机存取存储器;以及将针对块的虚拟存储器映射从高性能存储器更新至随机存取存储器。
以上具体实施方式包括对形成具体实施方式的一部分的附图的引用。通过说明的方式,附图示出了可以实践的具体实施例。这些实施例在本文中也被称为“示例”。这样的示例可以包括除了所示出或描述的元素之外的元素。然而,也可以设想包括所示出或所描述的元素的示例。此外,还可以设想使用关于特定示例(或其一个或多个方面)或者关于所示出或所描述的其他示例(或其一个或多个方面)示出或描述的那些元素(或其一个或多个方面)的任何组合或置换的示例。
本文中提到的出版物、专利和专利文件通过引用整体并入本文,如同单独通过引用并入一样。在本文档与通过引用如此并入的那些文档之间的用法不一致的情况下,在并入的参考文献中的用法是对本文档的补充;对于不可调和的不一致,以本文档中的用法为准。
在本文档中,如在专利文件中常见的,使用术语“一”或“一个”来包括一个或多于一个,独立于“至少一个”或“一个或多个”的任何其他实例或用法。除非另有说明,否则在本文档中,术语“或者”用于指非排他性的或者,使得“A或B”包括“A但不是B”,“B但不是A”以及“A和B”。在所附权利要求中,术语“包括(including)”和“其中(in which)”用作相应术语“包含(comprising)”和“其中(wherein)”的简明英语等同物。而且,在所附权利要求中,术语“包括”和“包含”是开放式的,即,包括除了权利要求中在这样的术语之后列出的那些元素之外的元素的系统、设备、物品或过程仍然视为落入该权利要求的范围内。此外,在所附权利要求中,术语“第一”、“第二”、“第三”等仅被用作标签,而不旨在暗示其对象的数字次序。
以上描述旨在是说明性的而不是限制性的。例如,上述示例(或其一个或多个方面)可以与其他示例结合使用。本领域普通技术人员在查看以上描述时可以使用其他实施例。摘要用于允许读者快速确定技术公开的本质。摘要在理解其不会被用于解释或限制权利要求的范围或含义的情况下提交。而且,在上面的具体实施方式中,各种特征可以组合在一起以使得本公开流畅。然而,权利要求可能没有阐述本文公开的每个特征,因为实施例可能以所述特征的子集为特征。此外,实施例可以包括比在特定示例中公开的特征更少的特征。因此,所附权利要求由此并入具体实施方式中,其中权利要求本身作为单独的实施例。本文所公开的实施例的范围将参照所附权利要求以及这些权利要求赋予权利的等同物的全部范围来确定。
Claims (25)
1.一种用于管理高性能存储器的系统,所述系统包括:
随机存取存储器;
高性能存储器,所述高性能存储器具有比所述随机存取存储器更高的性能;以及
存储器管理单元,其用于:
获得驻留在随机存取存储器中的多个块的执行度量,这包括识别或测量程序的空间或时间复杂度、特定指令或代码块的使用、或函数调用的频率或持续时间;
基于块的活动性从所述多个块中选择所述块;
在垃圾收集压缩阶段期间将所述块移至高性能存储器;以及
将针对所述块的虚拟存储器映射从所述随机存取存储器更新至所述高性能存储器。
2.根据权利要求1所述的系统,其中,所述块是存储器框架。
3.根据权利要求2所述的系统,其中,所述度量是对所述存储器框架的访问。
4.根据权利要求3所述的系统,其中,为了基于所述块的活动性从所述多个块中选择所述块,所述存储器管理单元用于:
按照访问计数对所述多个块中的块进行排序;以及
选择与未选择的块相比具有更高访问计数的块。
5.根据权利要求1所述的系统,其中,所述块是来自应用的字节码的字节码块。
6.根据权利要求5所述的系统,其中,所述字节码块是所述应用的方法。
7.根据权利要求5所述的系统,其中,所述字节码块是所述应用的数据结构。
8.根据权利要求5所述的系统,其中,所述字节码块是所述应用的循环。
9.根据权利要求5所述的系统,其中,所述执行度量是从运行所述应用的虚拟机获得的。
10.根据权利要求9所述的系统,其中,为了获得所述执行度量,所述存储器管理单元调用所述虚拟机的分析器以产生所述执行度量。
11.一种管理高性能存储器的方法,所述方法包括:
在存储器管理单元处获得驻留在随机存取存储器中的多个块的执行度量,这包括识别或测量程序的空间或时间复杂度、特定指令或代码块的使用、或函数调用的频率或持续时间;
基于块的活动性从所述多个块中选择所述块;
在垃圾收集压缩阶段期间将所述块移至高性能存储器,所述高性能存储器具有比所述随机存取存储器更高的性能;以及
将针对所述块的虚拟存储器映射从所述随机存取存储器更新至所述高性能存储器。
12.根据权利要求11所述的方法,其中,所述块是存储器框架。
13.根据权利要求12所述的方法,其中,所述度量是对所述存储器框架的访问。
14.根据权利要求13所述的方法,其中,基于所述块的活动性从所述多个块中选择所述块包括:
按照访问计数对所述多个块中的块进行排序;以及
选择与未选择的块相比具有更高访问计数的块。
15.根据权利要求11所述的方法,其中,所述块是来自应用的字节码的字节码块。
16.根据权利要求15所述的方法,其中,所述字节码块是所述应用的方法。
17.根据权利要求15所述的方法,其中,所述字节码块是所述应用的数据结构。
18.根据权利要求15所述的方法,其中,所述字节码块是所述应用的循环。
19.根据权利要求15所述的方法,其中,所述执行度量是从运行所述应用的虚拟机获得的。
20.根据权利要求19所述的方法,其中,获得所述执行度量包括调用所述虚拟机的分析器以产生所述执行度量。
21.根据权利要求20所述的方法,其中,所述执行度量是对调用所述字节码块进行计数的性能计数器。
22.根据权利要求21所述的方法,其中,从所述多个块中选择所述块包括:选择适合于所述高性能存储器并且具有最高性能计数器度量的块。
23.根据权利要求11所述的方法,其中,所述高性能存储器是高带宽存储器(HBM)存储器模块。
24.至少一种机器可读介质,其包括指令,所述指令当由机器执行时使所述机器执行根据权利要求11-23所述的方法中的任一方法的操作。
25.一种用于管理高性能存储器的装置,所述装置包括用于执行根据权利要求11-23所述的方法中的任一方法的单元。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US14/757,418 | 2015-12-23 | ||
US14/757,418 US20170185292A1 (en) | 2015-12-23 | 2015-12-23 | Memory Management of High-Performance Memory |
PCT/US2016/060450 WO2017112109A1 (en) | 2015-12-23 | 2016-11-04 | Memory management of high-performance memory |
Publications (2)
Publication Number | Publication Date |
---|---|
CN108292265A CN108292265A (zh) | 2018-07-17 |
CN108292265B true CN108292265B (zh) | 2023-12-05 |
Family
ID=59086530
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201680068363.6A Active CN108292265B (zh) | 2015-12-23 | 2016-11-04 | 对高性能存储器的存储器管理 |
Country Status (4)
Country | Link |
---|---|
US (1) | US20170185292A1 (zh) |
CN (1) | CN108292265B (zh) |
DE (1) | DE112016005970T5 (zh) |
WO (1) | WO2017112109A1 (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10509721B2 (en) | 2017-11-09 | 2019-12-17 | Microsoft Technology Licensing, Llc | Performance counters for computer memory |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103946811A (zh) * | 2011-09-30 | 2014-07-23 | 英特尔公司 | 用于实现具有不同操作模式的多级存储器分级结构的设备和方法 |
CN103946816A (zh) * | 2011-09-30 | 2014-07-23 | 英特尔公司 | 作为传统大容量存储设备的替代的非易失性随机存取存储器(nvram) |
CN104520823A (zh) * | 2012-08-07 | 2015-04-15 | 高通股份有限公司 | 用于混合存储器管理的方法、系统和设备 |
CN105144106A (zh) * | 2013-02-04 | 2015-12-09 | 微软技术许可有限责任公司 | 异类存储器的动态管理 |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP1331565B1 (en) * | 2002-01-29 | 2018-09-12 | Texas Instruments France | Application execution profiling in conjunction with a virtual machine |
US8375190B2 (en) * | 2007-12-11 | 2013-02-12 | Microsoft Corporation | Dynamtic storage hierarachy management |
US9218206B2 (en) * | 2011-06-20 | 2015-12-22 | Microsoft Technology Licensing, Llc | Memory management model and interface for new applications |
US8738877B2 (en) * | 2011-12-14 | 2014-05-27 | Advance Micro Devices, Inc. | Processor with garbage-collection based classification of memory |
US9734079B2 (en) * | 2013-06-28 | 2017-08-15 | Intel Corporation | Hybrid exclusive multi-level memory architecture with memory management |
-
2015
- 2015-12-23 US US14/757,418 patent/US20170185292A1/en not_active Abandoned
-
2016
- 2016-11-04 DE DE112016005970.1T patent/DE112016005970T5/de active Pending
- 2016-11-04 WO PCT/US2016/060450 patent/WO2017112109A1/en active Application Filing
- 2016-11-04 CN CN201680068363.6A patent/CN108292265B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103946811A (zh) * | 2011-09-30 | 2014-07-23 | 英特尔公司 | 用于实现具有不同操作模式的多级存储器分级结构的设备和方法 |
CN103946816A (zh) * | 2011-09-30 | 2014-07-23 | 英特尔公司 | 作为传统大容量存储设备的替代的非易失性随机存取存储器(nvram) |
CN104520823A (zh) * | 2012-08-07 | 2015-04-15 | 高通股份有限公司 | 用于混合存储器管理的方法、系统和设备 |
CN105144106A (zh) * | 2013-02-04 | 2015-12-09 | 微软技术许可有限责任公司 | 异类存储器的动态管理 |
Also Published As
Publication number | Publication date |
---|---|
WO2017112109A1 (en) | 2017-06-29 |
DE112016005970T5 (de) | 2018-10-04 |
CN108292265A (zh) | 2018-07-17 |
US20170185292A1 (en) | 2017-06-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20220027210A1 (en) | Work Stealing in Heterogeneous Computing Systems | |
CN106056529B (zh) | 一种对用于图片识别的卷积神经网络训练的方法与设备 | |
US10877793B2 (en) | Extending the base address register by modifying the number of read-only bits associated with a device to be presented to a guest operating system | |
US20140359225A1 (en) | Multi-core processor and multi-core processor system | |
KR102277172B1 (ko) | 인공 신경망 선택 장치 및 방법 | |
US20190227936A1 (en) | Heterogeneous computing system configured to adaptively control cache coherency | |
US9588906B2 (en) | Removing cached data | |
WO2014105141A1 (en) | In-place change between transient and persistent state for data structures in non-volatile memory | |
WO2023113969A1 (en) | Methods and apparatus for performing a machine learning operation using storage element pointers | |
CN113485791B (zh) | 配置方法和访问方法、装置、虚拟化系统和存储介质 | |
US12020065B2 (en) | Hierarchical processor selection | |
KR20210011010A (ko) | 가상화를 위한 프로세서 피쳐 id 응답 | |
US9766918B2 (en) | Virtual system device identification using GPU to host bridge mapping | |
CN108292265B (zh) | 对高性能存储器的存储器管理 | |
US20230185991A1 (en) | Multi-processor simulation on a multi-core machine | |
US11043158B2 (en) | Video bandwidth optimization for multi-monitor systems | |
US11074200B2 (en) | Use-after-free exploit prevention architecture | |
CN105988954B (zh) | 区域描述元管理方法及其电子装置 | |
KR20220018499A (ko) | 비휘발성 스토리지 파티션 식별자 | |
CN111753988A (zh) | 用于多变量数据提供方的深度学习数据操纵 | |
Chang et al. | Private small-cloud computing in connection with Linux thin client | |
US9588814B2 (en) | Fast approximate conflict detection | |
US11182314B1 (en) | Low latency neural network model loading | |
KR102365261B1 (ko) | 전자시스템, 그 동작방법 및 그 메모리 장치의 동작방법 | |
US11263047B2 (en) | Metadata management for multi-core resource manager |
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 |