CN114490441A - 一种内存管理方法及混合内存管理单元 - Google Patents
一种内存管理方法及混合内存管理单元 Download PDFInfo
- Publication number
- CN114490441A CN114490441A CN202011155544.7A CN202011155544A CN114490441A CN 114490441 A CN114490441 A CN 114490441A CN 202011155544 A CN202011155544 A CN 202011155544A CN 114490441 A CN114490441 A CN 114490441A
- Authority
- CN
- China
- Prior art keywords
- memory
- hmmu
- scm
- address
- page table
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/06—Addressing a physical block of locations, e.g. base addressing, module addressing, memory dedication
- G06F12/0615—Address space extension
- G06F12/0623—Address space extension for memory modules
-
- 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/06—Addressing a physical block of locations, e.g. base addressing, module addressing, memory dedication
- G06F12/0638—Combination of memories, e.g. ROM and RAM such as to permit replacement or supplementing of words in one module by words in another module
-
- 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/0877—Cache access modes
- G06F12/0882—Page mode
-
- 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/10—Address translation
- G06F12/1009—Address translation using page tables, e.g. page table structures
Abstract
本申请实施例公开了一种内存管理方法以及混合内存管理单元,用于减少存储器的访问时延。本申请实施例中的内存子系统包括混合内存管理单元HMMU、储存级存储器SCM的控制器和动态存储器,所述HMMU接收处理器发送的存储器访问请求,所述存储器访问请求用于访问所述SCM或所述动态存储器;所述HMMU基于所述存储器访问请求查询页表确定所述存储器访问请求对应的所述SCM或所述动态存储器的地址;所述HMMU访问所述地址。
Description
技术领域
本申请实施例涉及计算机领域,尤其涉及一种内存管理管理方法及混合内存管理单元。
背景技术
高带宽存储器(high bandwidth memory,HBM)是一种利用硅穿孔(throughsilicon vias,TSV)技术实现同步动态随机存取内存(synchronous dynamic random-access memory,SDRAM)三维(three dimensional,3D)堆叠的计算机内存,相对当前SDRAM具有更高密度、更大带宽、更低时延的特性。储存级记忆体(storage class memory,SCM)一种新型存储介质,兼具SDRAM的低时延,和闪存(Flash)的持久存储特性。
虚拟内存技术是计算机内存管理的一种技术,中央处理器(central processingunit,CPU)的内存管理单元(Memory Management Unit,MMU)和操作系统(OperatingSystem,OS)通过物理内存与外置存储的换入换出实现虚拟内存,从而扩展了物理内存空间。
随着增强现实(augmented reality,AR)、虚拟现实(Virtual Realit,VR)、物联网(Internet of Things,IOT)以及流计算技术的发展,只有纯内存计算才能够满足这类应用场景的需求,此类场景下CPU访问存储器的过程中数百个微秒的波动都会造成部分关键应用在实时性上无法满足处理的时延需求。现有技术中,由于SCM完全异于当前存储介质的特性,目前的CPU内存系统无法完全支持并发挥SCM的全部特性,而传统的CPU访问存储器的流程中,CPU通过MMU访问物理内存的访问时延较大,特别是当物理内存中不存在所需的页面数据时,MMU会发生缺页异常,需要在操作系统上进行缺页中断例程调度,缺页中断例程把页面数据从外置盘加载到内存,此过程开销较大,导致存储器的访问时延大。
发明内容
本申请实施例提供了一种内存管理方法以及混合内存管理单元,用于降低CPU对存储器的访问时延。
本申请实施例第一方面提供了一种内存管理方法,应用于处理器的内存子系统,该内存子系统包括混合内存管理单元HMMU、储存级存储器SCM的控制器和动态存储器。在内存管理过程中,HMMU获取处理器CPU发送的存储器访问请求,该存储器访问请求指示HMMU访问动态存储器或SCM的物理地址,HMMU基于该存储器访问请求查询页表确定存储访问请求所访问的动态存储器或SCM中的物理地址,HMMU访问该物理地址。
从以上技术方案可以看出,本申请实施例提供了一种新的内存子系统,该内存子系统中的混合内存管理单元HMMU可以支持访问内置于CPU的动态存储器和储存级记忆体SCM,由于动态存储器以及SCM的高带宽、低时延特性和本申请实施例提供的内存子系统对动态存储器和SCM的适配,降低了CPU访问物理内存的时延。
在一种可能的实施方式中,本申请实施例中的动态存储器可以是高带宽存储器HBM,也可以是动态随机存储器DRAM,不做限定。
结合第一方面,本申请实施例第一方面的第一种实施方式中,SCM的控制器、动态存储器与处理器封装在同一块芯片。
结合第一方面、第一方面的第一种实施方式,本申请实施例第一方面的第二种实施方式中SCM的控制器与动态存储器均内置于处理器。
本申请实施例中内存子系统支持访问外置于处理器的SCM,而该SCM的控制器、HBM以及HMMU与处理封装在同一块芯片上,或者内置于处理器,提升了芯片集成度。
结合第一方面、第一方面的第一种至第二种实施方式,本申请实施例第一方面的第三种实施方式中,HMMU的页表可以提供不同粒度的地址映射,地址映射是指逻辑地址与物理地址之间的映射关系,地址映射的粒度可以由物理页的页大小确定,物理页的页大小可以是64字节或者64字节的整数倍,此处不做限定。例如当物理页的页大小为64字节时,对应HMMU的页表的最后一级页表的位数为6位。
本申请实施例中页表可以提供多种不同页大小的物理页,提升了物理内存在不同数据粒度场景下的内存利用率,该物理内存可以是HBM、DRAM或SCM,具体不做限定。
结合第一方面、第一方面的第一种至第三种实施方式,本申请实施例第一方面的第四种实施方式中,如果HMMU访问的物理地址为SCM中的物理地址,HMMU通过SCM的控制器访问SCM的物理地址。
结合第一方面、第一方面的第一种至第四种实施方式,本申请实施例第一方面的第五种实施方式中,HMMU访问所述物理地址为SCM中的物理地址,HMMU将物理地址中的数据加载到动态存储器,HMMU访问动态存储器中的该数据。
本申请实施例中当HMMU访问的物理地址不是动态存储器的物理地址而是SCM的物理地址,HMMU将SCM中的数据加载到动态存储器,由于SCM相比磁盘具有极短的存取时间,降低了数据从外存加载到动态存储器的时延。
结合第一方面、第一方面的第一种至第五种实施方式,本申请实施例第一方面的第六种实施方式中,处理器为中央处理单元CPU。
结合第一方面、第一方面的第一种至第六种实施方式,本申请实施例第一方面的第七种实施方式中,页表的页表项包括物理地址、内存类型和有效位。
本申请实施例中页表项中新增了内存类型的属性位,HMMU查询快表和页表时可以根据页表项中内存类型判断逻辑地址对应的物理地址位于动态存储器还是SCM,提升页表查询速度,减少了内存访问时延。
本申请实施例第二方面提供了一种混合内存管理单元HMMU,该HMMU应用于内存子系统,内存子系统包括该HMMU之外,还包括储存级存储器SCM的控制器和高带宽存储器动态存储器,HMMU包括:
获取单元,用于获取处理器发送的存储器访问请求,存储器访问请求用于访问位于SCM或所述动态存储器中的地址。
查询单元,用于基于存储器访问请求查询页表确定存储器访问请求所访问的SCM或动态存储器中的地址。
访问单元,用于访问地址。
在一种可能的实施方式中,动态存储器可以是高带宽存储器HBM,也可以是动态随机存储器DRAM,不做限定。
结合第二方面,本申请实施例第二方面的第一种实施方式中,SCM的控制器与动态存储器以及处理器封装在同一块芯片。
结合第二方面、第二方面的第一种实施方式,本申请实施例第二方面的第二种实施方式中,SCM的控制器与动态存储器均内置于处理器。
结合第二方面、第二方面的第一种至第二种实施方式,本申请实施例第二方面的第三种实施方式中,页表可以提供不同粒度的地址映射。
结合第二方面、第二方面的第一种至第三种实施方式,本申请实施例第二方面的第四种实施方式中,访问单元具体用于:
如果物理地址为SCM中的物理地址,访问单元通过SCM的控制器访问物理地址。
结合第二方面、第二方面的第一种至第四种实施方式,本申请实施例第二方面的第五月种实施方式中,访问单元具体用于:
如果物理地址为SCM中的物理地址,访问单元将物理地址中的数据加载到动态存储器,访问单元访问动态存储器中的数据。
结合第二方面、第二方面的第一种至第五种实施方式,本申请实施例第二方面的第六月种实施方式中,处理器为中央处理单元CPU。
结合第二方面、第二方面的第一种至第六种实施方式,本申请实施例第二方面的第七月种实施方式中,页表的页表项包括所述物理地址、内存类型和有效位。
本申请实施例第三方面提供了一种芯片,该芯片包含内存子系统,内存系统包括混合内存管理单元HMMU、储存级记忆体SCM控制器和动态存储器,其中,HMMU用于执行上述第一方面的方法。
本申请实施例第四方面提供了一种电子设备,该电子设备包含上述第三方面的芯片。
本申请实施例第五方面提供了一种芯片模组,该芯片模组包含上述第三方面的芯片。
本申请实施例第六方面提供了一种集成电路,所述集成电路应用于内存子系统中,所述内存子系统包括混合内存管理单元HMMU、储存级记忆体SCM的控制器和动态存储器,其中,所述集成电路用于实现所述HMMU所执行的第一方面的方法。
附图说明
图1为本申请实施例提供的一种处理器系统结构示意图;
图2为本申请实施例提供的一种内存管理方法示意图;
图3为本申请实施例提供的一种内存访问流程示意图;
图4为本申请实施例提供的一种页表结构示意图;
图5为本申请实施例提供的另一种页表结构示意图;
图6为本申请实施例提供的一种混合内存管理单元结构示意图;
图7为本申请实施例提供的一种电子设备结构示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。
在本申请实施例中,“示例性的”或者“例如”等词用于表示作例子、例证或说明。本申请实施例中被描述为“示例性的”或者“例如”的任何实施例或设计方案不应被解释为比其它实施例或设计方案更优选或更具优势。确切而言,使用“示例性的”或者“例如”等词旨在以具体方式呈现相关概念。
以下,对本申请中的部分用语进行解释说明,以便于本领域技术人员理解。
高带宽存储器(high bandwidth memory,HBM)是一种利用硅穿孔(throughsilicon vias,TSV)技术实现同步动态随机存取内存(synchronous dynamic random-access memory,SDRAM)三维(three dimensional,3D)堆叠的计算机内存,相对当前SDRAM具有更高密度、更大带宽、更低时延的特性,适用于高存储器带宽需求的应用场合,像是图形处理器、网络交换及转发设备等。
储存级记忆体(storage class memory,SCM)一种一种同时结合传统储存装置与存储器特性的新型存储技术,兼具SDRAM的低时延,和闪存(Flash)的持久存储特性。按照所构成的材料,一般分为变相存储器(phase change memory,PCM)、磁阻式随机存储器(magnetoresistive random access memory,MRAM)、电阻式随机存储器(resistiverandom access memory,ReRAM)、铁电随机存储器(ferroelectric random accessmemory,FeRAM)、碳纳米管随机存储器(nanotube random access memory,NRAM)。
虚拟内存是计算机系统内存管理的一种技术。它使得应用程序认为它拥有连续的可用的完整的地址空间,而实际上,它通常是被分隔成多个物理内存碎片,还有部分暂时存储在外部磁盘存储器上,在需要时进行数据交换。目前,大多数操作系统都使用了虚拟内存,例如,Windows的“虚拟内存”,Linux的“交换空间”等。
页表是一种特殊的数据结构,放在系统空间的页表区,存放逻辑页与物理页的对应关系,即地址映射,在页表中,一个页码与其对应的物理页码称之为一个页表项。
逻辑地址为CPU所生成的地址,CPU产生的逻辑地址分为页码和页内偏移量,页码包含每个页在物理内存中的基址,用来作为页表的索引。页内偏移量与基址相结合,用来确定内存的物理地址。所有逻辑地址的集合成为逻辑地址空间。
物理地址为内存的实际地址,与逻辑地址相对应的内存中所有物理地址的集合为物理地址空间。
为更好的理解本申请实施例所提供的内存管理方法,以下首先结合图1所示,对本申请所示方法所应用的处理器内存系统进行说明。
请参阅图1,图1为本申请实施例提供的一种处理器系统的结构示意图。本申请实施例中的处理器单元包括处理器和内存子系统,内存子系统中集成了混合内存管理单元HMMU、HBM和SCM控制器,其中HBM包含HBM的控制器和HBM内存介质。HMMU、HBM和SCM控制器采用半导体集成分装工艺与处理器封装在同一块芯片上。示例性的,本发明实施例以处理器为CPU作为示例进行描述。处理器还可以是图形处理单元(graphics processing unit,GPU)等其他处理器,本发明实施例对此不作限定。
本申请实施例中的SCM外置于CPU芯片,可通过内存总线或串行总线连接CPU单元,CPU发起的load/store指令可以无需软件驱动通过SCM的控制器直接访问SCM上的存储内容,SCM的控制器内置于CPU芯片。内存子系统内置的SCM控制器以及外置SCM,提供了相对DRAM更大的容量以及相对硬盘更低时延的扩展内存空间。
本申请实施例中内置于CPU的HBM存储器可以是HBM、HBM2或HBM2e,不做限定,HBM的内存空间可以直接被映射到页表上,HBM与SCM的数据交换通过HMMU管理实现。CPU内置的HBM存储器提供基于页表的存储访问以及数据的高速缓存,HBM提供了相对DRAM更低的时延和更大的带宽。
本申请实施例提供的内存子系统中,HMMU是本申请实施例提供的一种新型的内存管理单元,HMMU实现了把HBM、SCM进行统一页表管理。HMMU的主要功能包括查找和维护转移后备缓冲区(translation lookaside buffer,TLB)、页表查找的逻辑实现以及页表的页表项维护逻辑实现。在HMMU页表查找的逻辑实现过程中,HMMU采用多级页表通过进程的逻辑地址查找对应的物理地址,物理地址可以是HBM的地址空间,也可以是SCM的地址空间,HMMU的页表的最后一级也表的位数可以是6至12位,对应的最后一级页表的页大小为64字节或者64字节的整数倍,因此,HMMU管理的页表可以提供不同粒度的地址映射,即用多种管理粒度进行逻辑地址到物理地址的映射管理,例如,HMMU可以用最小64字节的管理粒度进行逻辑地址到物理地址的映射。
在另一个处理器系统的结构示例中,内存子系统包含了HMMU、动态随机存储器DRAM和SCM控制器,其中DRAM包含DRAM的控制器和DRAM内存介质。HMMU、DRAM和SCM控制器采用半导体集成分装工艺与处理器封装在同一块芯片上。
本发明实施例中的处理器系统以及内存子系统可以为芯片或芯片模组等,可以应用于各种电子设备中。电子设备可以是存储设备、服务器等,本发明实施例对此不作限定。本发明实施例中的处理器系统以及内存子系统可以由集成电路实现。
请参阅图2,图2为本申请实施例提供的内存管理方法的一个实施例示意图。
201、HMMU获取处理器发送的储存器访问请求。
HMMU获取处理器发送的存储器访问请求,该访问请求中包含应用或进程的逻辑地址,逻辑地址为应用或进程侧所看到的内存地址,HMMU通过对该逻辑地址计算或变换得到存储器中的实际有效地址,即存储器的物理地址。本发明实施例中,以处理器为CPU作为示例进行说明。
应用于图1所示的CPU系统,本申请实施例中的存储器访问请求可以是对内置于CPU系统的HBM的访问请求,也可以是外置的SCM的访问请求,具体此处不做限定。基于图1所示的实施例,存储器的物理地址可以为HBM的物理地址或SCM的物理地址。
202、HMMU根据存储器访问请求查询页表确定存储器的物理地址。
以下结合图3对本申请实施例中的内存子系统下HMMU根据存储器访问请求查询页表确定存储器的物理地址的过程进行介绍。
请参阅图3,图3示出了本申请实施例中HMMU访问HBM和SCM流程示意图。HMMU根据CPU发出的逻辑地址查询快表和页表,快表为存放在高速缓冲存储器的部分页表,作为页表的缓存,位于HMMU,快表作用页表相似,但提高了查询效率。该逻辑地址被分成为两个部分,包括页码以及页内偏移量,页码被用于查询上述快表和页表,快表在CPU实现中可以是TLB。
HMMU根据CPU发出的逻辑地址优先查询TLB快表,HMMU查询TLB快表结果分为以下两种情况:
1、如果TLB快表命中逻辑地址的页码,则说明要访问的页表项在TLB快表中存储在副本,HMMU确定出该页码对应的物理页码,即图3中的页框码。物理页码与逻辑地址的原页内偏移量拼接成物理地址,如果该物理地址在HBM的物理地址空间,HMMU可以通过该物理地址访问内置于CPU的HBM,如果该物理地址在SCM的物理地址空间,HMMU可以通过该物理地址访问外置于CPU的SCM。
2、如果TLB快表未命中逻辑地址的页码,则HMMU在操作系统维护的页表中查找逻辑地址的页码对应的页表项,相应的,HMMU确定出该页码对应的物理页码,物理页码与逻辑地址的原页内偏移量拼接成物理地址,该物理地址为HMMU所要访问存储器的物理地址。
可以理解的是,HMMU在页表中找到相应的页表之后,同时将该页表项加载到TLB快表的空项中,完成TLB快表的更新,以方便HMMU以后可能的再次查询。当TLB快表已满的时候,HMMU按照一定算法对TLB快表中旧的页表项替换。
本申请实施例中的TLB快表存放了页表中常用的页表项,由于TLB快表位于HMMU,而页表位于HBM,查询快表耗时较短,若TLB命中逻辑地址的页码,HMMU访问逻辑地址仅需要一次访问内存,引入TLB快表机制体提升了HMMU的逻辑地址查询速度。
下面对本申请实施例中HMMU所查询的页表进行介绍,本申请实施例中所提供的页表可以是多级页表,具体此处不做限定。以下分别对本申请实施例中的四级页表和三级页表进行介绍:
请参阅图4,图4是本申请实施例中的一种页表结构示意图,该页表结构具有四级页表,最后一级页表的位数是6位,相应的,最后一级页表的的页大小为64字节。图4所示页表结构中,逻辑地址为36位,“bit26~35”的内容为一级页表,“bit16~25”的内容二级页表,“bit6~15”的内容为三级页表,“bit0~5”的内容为四级页表。由于图4所示页表的最后一级页大小为64字节,在该页表机制下,HMMU可以用64字节的管理粒度进行虚拟地址空间到物理地址空间的映射管理。
图4所示的四级页表机制可以用多种小数据粒度的场景,例如,联机事务处理过程(on-line transaction processing,OLTP)、数据库、图计算、稀疏矩阵或物联网(internetof things,IoT)应用,具体不做限定。
本申请实施例中HMMU用64字节粒度管理虚拟地址空间到物理地址空间的映射,减少了虚拟内存所占用的物理内存空间开销,节约了物理内存资源。
请参阅图5,图5是本申请实施例中的另一种页表结构示意图,该页表结构具有四级页表,最后一级页表的位数是12位,相应的,最后一级页表的的页大小为4096字节。图5所示页表结构中,逻辑地址为32位,“bit22~31”的内容为一级页表,“bit12~21”的内容为二级页表,“bit0~11”的内容为三级页表,在该页表机制下,HMMU可以用64字节的管理粒度进行虚拟地址空间到物理地址空间的映射管理。
可以理解的是,本申请实施例多种页表中除了上述页表之外,页表中的最后一级页表的位数可以是6至12位,相应的,最后一级页表的的页大小可以是64字节、128字节、256字节、512字节、1024字节、2048字节或4096字节。
本申请实施例中HMMU可以多种页表大小粒度管理虚拟地址空间到物理地址空间的映射,提升了物理内存在不同数据粒度场景下的内存利用率。
本申请实施例提供一种新的页表项结构,下面本申请实施例中的页表的页表项结构进行介绍:
请参阅表1,表1是本申请实施例中页表的最后一级页表项结构,页表项中“Physical Memory Address”为最后一级页表项指向的物理内存地址,“Memory Type”为最后一级页表项所指向的物理内存类型,物理内存类型包括HBM、DRAM或SCM,不做限定。“Valide”为有效位,指示对应的页表项当前是否有对应的物理内存。物理内存地址、内存类型和有效位都可以称作页表项的属性位。
本申请实施例在最后一级页表的表项结构中增加了内存类型的属性位,使得HMMU在进行页表查询时能够判断出页码对应的物理页码为哪一种类型的内存介质上,HMMU查找逻辑地址,读取到对应的的页表项之后,根据跟页表项的属性位分别发起对HBM控制器或SCM控制器的数据读写操作指令,数据的读写可以在不用调度软件的情况下一次性在HMMU中完成。
表1
203、HMMU访问存储器的物理地址。
HMMU根据步骤202确定的物理地址对存储器进行访问,下面结合图3对本申请实施例中HMMU访问存储器的物理地址进行介绍:
HMMU查询页表的页表项时,可以根据最后一级页表的页表项中的物理内存类型判断所要访问存储器,HMMU访问存储器包括以下几种情况:
1、HMMU查询TLB快表或页表确定逻辑地址页码对应的目标页表项,如果该目标页表项的内存类型为HBM,并且该目标页表项中的有效位指示物理地址有效,则HMMU通过HBM控制器直接访问HBM。
具体的,HMMU将逻辑地址的页码转换为物理页码,物理页码与逻辑地址的原页内偏移量拼接成物理地址,HMMU通过该物理地址访问内置于CPU的HBM。
2、HMMU查询TLB快表或页表确定逻辑地址页码对应的目标页表项,如果该目标页表项的内存类型为SCM,并且该目标页表项中的有效位指示物理地址有效,则HMMU通过SCM控制器直接访问SCM。同时,HMMU可以将位于SCM内存范围内的该物理地址对应的数据加载到HBM,具体的,HMMU根据最近最少使用(least recently used,LRU)算法将HBM的数据换出到SCM,HMMU将页表所命中的SCM的物理地址的数据换入到HBM,HMMU将加载后的HBM内存起始地址和内存类型更新到该逻辑地址的页码所对应的页表项,方便HMMU下一次查询页表,并直接发起对HBM的访问。
本申请实施例中的访问存储器包括了对存储器数据的读取和写入。
本申请实施例中提供的内存系统通过HMMU的内存管理逻辑,在当需要读取的数据未缓存在HBM上时,HMMU在硬件逻辑层完全实现页表查询,以及通过SCM控制器实现了CPU对SCM访问,由于HMMU可以在不陷入缺页异常的的情况下直接实现SCM的读取,消除了由于缺页异常导致的软件上下文切换及软件异常例程的运行,减少了CPU内存系统读取外部内存的时延。
本申请实施例还提供一种与图1所示的硬件机制对应的内存子系统,下面对该内存子系统的功能进行介绍,该内存子系统的功能包括:
1、维护更新各进程页表,具体的,在进程需要分配或删除物理页面时,例如某一个物理页面在HBM中分配,则把最后一级页表对应页表项的内存类型的属性位设置成HBM,又例如对应的物理页面在SCM上,则把最后一级页表对应页表项的内存类型属性位设置成SCM,最后页表项的有效位置位成有效。
2、进程切换时各进程基地址寄存器的加载,具体的,在需要进行进程切换时把对应待换入的进程的页表基地址加载到页表基地址寄存器。
下面对本申请实施例中混合内存管理单元HMMU进行描述:
请参阅图6,图6为本申请实施例中混合内存管理单元600的一个示意图,本申请中混合内存管理单元600的一个实施例包括:
获取单元601,用于获取处理器发送的存储器访问请求,存储访问请求用于访问位于SCM或动态存储器中的物理地址;
查询单元602,用于基于存储器访问请求查询页表确定存储访问请求所访问的SCM或动态存储器中的物理地址;
访问单元603,用于访问所述物理地址。
在本申请一些可选的实施例中,SCM的控制器与动态存储器与处理器封装在同一块芯片,或者SCM的控制器与动态存储器均内置于处理器。
在本申请一些可选的实施例中,动态随机存储器可以是HBM。
在本申请一些可选的实施例中,页表可以提供不同粒度的地址映射。
在本申请一些可选的实施例中,访问单元603具体用于:
当物理地址为SCM中的物理地址,访问单元603通过SCM的控制器访问物理地址。
在本申请一些可选的实施例中,访问单元603具体用于:
当所述物理地址为SCM中的物理地址,访问单元603将物理地址中的数据加载到动态存储器,所述访问单元访问动态存储器中的数据。
在本申请一些可选的实施例中,处理器为中央处理单元CPU。
在本申请一些可选的实施例中,页表的页表项包括物理地址、内存类型和有效位。
本实施例中,混合内存管理单元HMMU可以执行前述图2所示实施例中HMMU所执行的操作,具体此处不再赘述。
本申请实施例提供的一种电子设备,电子设备包含处理器系统。示例性的,电子设备结构示意图如图7所示,包含中央处理器701和内存子系统702。进一步的,电子设备还可以包括一个或一个以上电源,一个或一个以上有线或无线网络接口,一个或一个以上输入输出接口等。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统,装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本申请所提供的几个实施例中,应该理解到,所揭露的系统,装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,read-onlymemory)、随机存取存储器(RAM,random access memory)、磁碟或者光盘等各种可以存储程序代码的介质。
Claims (22)
1.一种内存管理方法,其特征在于,应用于内存子系统,所述内存子系统包括混合内存管理单元HMMU、储存级存储器SCM的控制器和动态存储器,所述方法包括:
所述HMMU接收处理器发送的存储器访问请求,所述存储器访问请求用于访问所述SCM或所述动态存储器;
所述HMMU基于所述存储器访问请求查询页表确定所述存储器访问请求对应的所述SCM或所述动态存储器的地址;
所述HMMU访问所述地址。
2.根据权利要求1所述的方法,其特征在于,所述动态存储器为高带宽存储器HBM。
3.根据权利要求1或2所述的方法,其特征在于,所述SCM的控制器、所述动态存储器与所述处理器封装在同一块芯片上。
4.根据权利要求1或2所述的方法,其特征在于,所述SCM的控制器与所述动态存储器均内置于所述处理器。
5.根据权利要求1至4任一所述的方法,其特征在于,所述页表可以提供不同粒度的地址映射。
6.根据权利要求1至5任一所述的方法,所述HMMU访问所述地址,具体包括:
当所述地址为指向所述SCM的地址,所述HMMU通过所述SCM的控制器访问所述地址。
7.根据权利要求1至5任一所述的方法,其特征在于,所述HMMU访问所述地址,具体包括:
当所述地址为指向所述SCM的地址,所述HMMU将所述SCM中的所述地址中的数据加载到所述动态存储器,所述HMMU访问所述动态存储器中的所述数据。
8.根据权利要求1至7任一所述的方法,其特征在于,所述处理器为中央处理单元CPU。
9.根据权利要求1至8所述的方法,其特征在于,所述页表的页表项包括物理地址、内存类型和有效位。
10.一种混合内存管理单元HMMU,其特征在于,应用于内存子系统,所述内存子系统包括所述HMMU、储存级存储器SCM的控制器和动态存储器,所述HMMU包括:
获取单元,用于获取处理器发送的存储器访问请求,所述存储访问请求用于访问所述SCM或所述动态存储器中的地址;
查询单元,用于基于所述存储器访问请求查询页表确定所述存储访问请求所访问的所述SCM或所述动态存储器中的地址;
访问单元,用于访问所述地址。
11.根据权利要求10所述的HMMU,其特征在于,所述动态存储器为高带宽存储器HBM。
12.根据权利要求10或11所述的HMMU,其特征在于,所述SCM的控制器与所述动态存储器与所述处理器封装在同一块芯片。
13.根据权利要求10至12任一项所述的HMMU,其特征在于,所述SCM的控制器与所述动态存储器均内置于所述处理器。
14.根据权利要求10至13任一所述的HMMU,其特征在于,所述页表可以提供不同粒度的地址映射。
15.根据权利要求10至14任一所述的HMMU,所述访问单元具体用于:
当所述地址为所述SCM中的地址,所述访问单元通过所述SCM的控制器访问所述地址。
16.根据权利要求10至14所述的HMMU,其特征在于,所述访问单元具体用于:
当所述地址为所述SCM中的地址,所述访问单元将所述地址中的数据加载到所述动态存储器,所述访问单元访问所述动态存储器中的所述数据。
17.根据权利要求10至16任一所述的HMMU,其特征在于,所述处理器为中央处理单元CPU。
18.根据权利要求10至17所述的HMMU,其特征在于,所述页表的页表项包括物理地址、内存类型和有效位。
19.一种芯片,其特征在于,所述芯片包含内存子系统,所述内存子系统包括混合内存管理单元HMMU、储存级记忆体SCM的控制器和动态存储器,其中,所述HMMU用于执行权利要求1至9中任一项所述的方法。
20.一种电子设备,其特征在于,所述电子设备包含权利要求19所述的芯片。
21.一种芯片模组,其特征在于,所述芯片模组包含权利要求19所述的芯片。
22.一种集成电路,其特征在于,所述集成电路应用于内存子系统中,所述内存子系统包括混合内存管理单元HMMU、储存级记忆体SCM的控制器和动态存储器,其中,所述集成电路用于实现所述HMMU所执行的权利要求1至9中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011155544.7A CN114490441A (zh) | 2020-10-26 | 2020-10-26 | 一种内存管理方法及混合内存管理单元 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011155544.7A CN114490441A (zh) | 2020-10-26 | 2020-10-26 | 一种内存管理方法及混合内存管理单元 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114490441A true CN114490441A (zh) | 2022-05-13 |
Family
ID=81471135
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011155544.7A Pending CN114490441A (zh) | 2020-10-26 | 2020-10-26 | 一种内存管理方法及混合内存管理单元 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114490441A (zh) |
-
2020
- 2020-10-26 CN CN202011155544.7A patent/CN114490441A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108804350B (zh) | 一种内存访问方法及计算机系统 | |
US5956756A (en) | Virtual address to physical address translation of pages with unknown and variable sizes | |
CN102792285B (zh) | 用于处理数据的装置和方法 | |
US11341059B2 (en) | Using multiple memory elements in an input-output memory management unit for performing virtual address to physical address translations | |
US10891241B2 (en) | Cache memory that supports tagless addressing | |
US10282309B2 (en) | Per-page control of physical address space distribution among memory modules | |
US8543792B1 (en) | Memory access techniques including coalesing page table entries | |
US11422944B2 (en) | Address translation technologies | |
US8335908B2 (en) | Data processing apparatus for storing address translations | |
EP3553665B1 (en) | Non-volatile memory access method, device, and system | |
CN111512290B (zh) | 文件页表管理技术 | |
WO2021061466A1 (en) | Memory management unit, address translation method, and processor | |
EP3382558B1 (en) | Apparatus, method and system for just-in-time cache associativity | |
CN107870867B (zh) | 32位cpu访问大于4gb内存空间的方法与装置 | |
US10366008B2 (en) | Tag and data organization in large memory caches | |
US20200233814A1 (en) | Programmable address range engine for larger region sizes | |
CN114490441A (zh) | 一种内存管理方法及混合内存管理单元 | |
CN107870870B (zh) | 访问超过地址总线宽度的内存空间 | |
US20160103766A1 (en) | Lookup of a data structure containing a mapping between a virtual address space and a physical address space | |
Jing et al. | Construction and optimization of heterogeneous memory system based on NUMA architecture | |
US20230052700A1 (en) | Memory expansion with persistent predictive prefetching | |
WO2020237409A1 (en) | Technologies for memory-efficient key-value lookup | |
WO2023064609A1 (en) | Translation tagging for address translation caching |
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 |