CN112256598A - 一种内存分配的方法及装置、内存寻址的方法及装置 - Google Patents
一种内存分配的方法及装置、内存寻址的方法及装置 Download PDFInfo
- Publication number
- CN112256598A CN112256598A CN202011163342.7A CN202011163342A CN112256598A CN 112256598 A CN112256598 A CN 112256598A CN 202011163342 A CN202011163342 A CN 202011163342A CN 112256598 A CN112256598 A CN 112256598A
- Authority
- CN
- China
- Prior art keywords
- address
- bitmap
- page table
- memory
- chip
- 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
- 230000015654 memory Effects 0.000 title claims abstract description 348
- 238000000034 method Methods 0.000 title claims abstract description 75
- 238000004590 computer program Methods 0.000 claims description 12
- 238000013519 translation Methods 0.000 claims description 8
- 238000012545 processing Methods 0.000 claims description 4
- 230000007547 defect Effects 0.000 abstract description 8
- 230000005540 biological transmission Effects 0.000 abstract description 5
- 238000010586 diagram Methods 0.000 description 10
- 238000007726 management method Methods 0.000 description 9
- 238000004891 communication Methods 0.000 description 5
- 238000006243 chemical reaction Methods 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 238000004883 computer application Methods 0.000 description 1
- 238000007796 conventional method Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
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/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/0806—Multiuser, multiprocessor or multiprocessing cache systems
- G06F12/0815—Cache consistency protocols
- G06F12/0817—Cache consistency protocols using directory methods
- G06F12/0824—Distributed directories, e.g. linked lists of caches
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5011—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
- G06F9/5016—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals the resource being the memory
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Memory System Of A Hierarchy Structure (AREA)
- Memory System (AREA)
Abstract
本发明实施例提供一种内存分配的方法及装置、内存寻址的方法及装置,其中,所述内存分配的方法包括:确定待分配的数据的分布模式;将待分配的数据按照对应的分布模式分配于片上内存的物理内存中,并建立物理内存地址对应的页表,其中,页表包括多个页表地址,且页表地址与物理内存地址相关联,从而可以支持数据在片上内存的不同分布模式的存储,解决单一的分布模式下芯片性能受制约或者访问非本地内存时速度慢的缺陷,从而在芯片内的运算核心不断增加的情况下,减轻了芯片内总线带宽的压力,降低了总线上的冲突,提高了数据传输的效率。
Description
技术领域
本发明涉及通用计算技术领域,尤其涉及一种内存分配的方法及装置、内存寻址的方法及装置、电子设备和存储介质。
背景技术
现有技术中,通用计算领域存在两种片上内存管理模型:UMA(Uniform MemoryAccess,一致内存访问)模型和NUMA(Non-uniform Memory Access,非一致内存访问)模型。
其中,UMA模型的结构方式为通用GPU或AI计算芯片将可用的芯片内的片上内存以连续的方式组织起来,芯片上的各个运算单元以同样的速度访问片上内存。参见图1,图1中的芯片包括n个运算单元CORE0~COREn,每个运算单元设置有一级缓存L1,n个运算单元均通过二级缓存L2与片上内存连接。传统的页表管理采用UMA模型,即flat memory model,如果从芯片中任意一个核心运算单元的角度来看,当它访问片上内存的时候,物理地址空间是一个连续的,没有空洞的地址空间。这种片上内存管理模型下,物理内存的管理比较简单。但随着工艺的进步和对算力的追求,越来越多的运算核心被尽可能地塞进了同一块芯片上,各个核心对于内存带宽的争抢访问成为了瓶颈。由于芯片内总线带宽的限制运算单元和存储单元数量增加的同时,并不总能获得更高的性能,严重的限制了芯片的扩展。
NUMA模型为通用GPU或AI计算芯片内的各个运算单元或运算单元簇拥有各自的本地片上内存,可以支持特别快速的本地访问。各个运算单元和各个片上内存通过总线连接起来,访问非本地片上内存速度远比访问本地片上内存慢。参见图2,图2中的芯片包括n个运算单元CORE0~COREn,但是每个运算单元拥有各自的片上内存,每个运算单元上设置有一级缓存L1,每个运算单元的第一缓存L1通过各自对应的二级缓存L2与各自的片上内存连接。各个运算单元和各个片上内存又通过总线连接。NUMA模型通过给每个运算单元提供本地存储器来解决这个问题,他的优点是很容易通过增加运算单元的数量来增加芯片的算力。对于并行运算中,存在大量分散的数据的应用,核心运算单元只需要访问本地的数据,在这种应用场景下,NUMA模型可以大大提高芯片综合性能。但缺点也同样明显,在很多应用场景中,各个运算单元间不可避免的要共享数据,当访问其他运算节点的数据时,数据传输的效率会下降的很快,这会极大的影响芯片的运算综合性能。
鉴于单独的UMA模型或NUMA模型在管理片上内存时都存在明显的缺陷,如何克服上述缺陷,保证芯片算力能够随着运算单元数量的提高而同比增加,是目前需要解决的技术问题。
发明内容
本发明实施例提供一种内存分配管理方法及装置、电子设备和存储介质,用以解决现有技术中单独的UMA模型或NUMA模型在管理片上内存时存在的技术缺陷,以保证芯片算力能够随着运算单元数量的提高而同比增加。
本发明实施例提供一种内存分配的方法,用于具有多个计算核心的芯片上,每个计算核心具有片上内存,所述方法包括:
确定待分配的数据的分布模式;
将所述待分配的数据分别按照对应的分布模式分配于所述片上内存的物理内存中,并建立所述物理内存地址对应的页表,其中,所述页表包括多个页表地址,且所述页表地址与所述物理内存地址相关联。
根据本发明一个实施例的内存分配的方法,所述分布模式包括:连续模式;
将所述待分配的数据分别按照对应的分布模式分配于所述片上内存的物理内存中,包括:
将所述待分配的数据按照所述连续模式均匀分配于各个片上内存的物理内存中。
根据本发明一个实施例的内存分配的方法,所述分布模式包括:本地模式;
将所述待分配的数据分别按照对应的分布模式分配于所述片上内存的物理内存中,包括:
将所述待分配的数据按照所述本地模式分配于单个目标本地片上内存的物理内存中。
根据本发明一个实施例的内存分配的方法,所述分布模式包括:区间模式;
将所述待分配的数据分别按照对应的分布模式分配于所述片上内存的物理内存中,包括:
将所述待分配的数据按照所述区间模式分配于多个目标片上内存的物理内存中。
根据本发明一个实施例的内存分配的方法,所述方法还包括:
在每个页表地址中添加模式标记位,其中,所述模式标记位与所述页表地址对应的物理内存中的分布模式相对应。
本发明实施例还提供一种内存寻址的方法,用于具有多个计算核心的芯片上,每个计算核心具有本地片上内存,所述方法包括:
确定要访问的片上内存的虚拟地址;
根据预设的页表进行转换,将虚拟地址转换为页表中的页表地址;
确定所述页表地址及对应的分布模式以及偏移地址;
根据所述页表地址、以及所述页表地址对应的分布模式和偏移地址在位图中进行匹配,得到片上内存的目标物理内存地址,其中,所述位图与多个所述片上内存的物理内存相对应。
根据本发明一个实施例的内存寻址的方法,确定所述页表地址及对应的分布模式以及偏移地址,包括:
根据页表地址中的模式标记位,确定所述页表地址对应的分布模式;
根据虚拟地址及地址分配的粒度,确定所述页表地址对应的偏移地址。
根据本发明一个实施例的内存寻址的方法,根据所述页表地址、以及所述页表地址对应的分布模式和偏移地址在位图中进行匹配,得到片上内存的目标物理内存地址,包括:
根据所述页表地址确定要访问的物理内存地址在所述位图中的起始地址位置;
根据所述偏移地址确定在所述位图中与所述起始地址位置的偏移量;
根据所述位图中的起始地址位置、所述页表地址对应的分布模式和所述起始地址位置的偏移量在所述位图中进行匹配,得到位图中的至少一个目标位图地址;
根据所述至少一个目标位图地址,确定对应的目标物理内存地址,其中,所述位图中的位图地址与所述片上内存的物理内存地址一一对应。
根据本发明一个实施例的内存寻址的方法,所述页表地址对应的分布模式包括:连续模式;
根据所述位图中的起始地址位置、所述页表地址对应的分布模式和所述起始地址位置的偏移量在所述位图中进行匹配,得到位图中的至少一个目标位图地址,包括:
根据连续模式,确定待匹配的位图中的连续的位图地址;
根据所述起始地址位置和偏移量,在位图中的连续的位图地址中进行匹配,得到位图中的至少一个目标位图地址。
根据本发明一个实施例的内存寻址的方法,所述页表地址对应的分布模式包括:本地模式;
根据所述位图中的起始地址位置、所述页表地址对应的分布模式和所述起始地址位置的偏移量在所述位图中进行匹配,得到位图中的至少一个目标位图地址,包括:
根据本地模式,确定待匹配的位图中的与单个目标本地片上内存对应的位图地址;
根据所述起始地址位置和偏移量,在位图中的与单个目标本地片上内存对应的位图地址中进行匹配,得到位图中的至少一个目标位图地址。
根据本发明一个实施例的内存寻址的方法,所述页表地址对应的分布模式包括:区间模式;
根据所述位图中的起始地址位置、所述页表地址对应的分布模式和所述起始地址位置的偏移量在所述位图中进行匹配,得到位图中的至少一个目标位图地址,包括:
根据区间模式,确定待匹配的位图中的多个目标片上内存对应的位图地址;
根据所述起始地址位置和偏移量,在位图中的与多个目标片上内存对应的位图地址中进行匹配,得到位图中的至少一个目标位图地址。
本发明实施例还提供一种内存分配的装置,用于具有多个计算核心的芯片上,每个计算核心具有片上内存,包括:
模式确定模块,用于确定待分配的数据的分布模式;
分配执行模块,用于将所述待分配的数据分别按照对应的分布模式分配于所述片上内存的物理内存中,并建立所述物理内存地址对应的页表,其中,所述页表包括多个页表地址,且所述页表地址与所述物理内存地址相关联。
本发明实施例还提供一种内存寻址的装置,用于具有多个计算核心的芯片上,每个计算核心具有本地片上内存,包括:
虚拟地址确定模块,用于确定要访问的片上内存的虚拟地址;
页表地址转换模块,用于根据预设的页表进行转换,将虚拟地址转换为页表中的页表地址;
页表地址处理模块,用于确定所述页表地址对应的分布模式以及偏移地址;
物理地址匹配模块,用于根据所述页表地址、以及所述页表地址对应的分布模式和偏移地址在位图中进行匹配,得到片上内存的目标物理内存地址,其中,所述位图与多个所述片上内存的物理内存地址相对应。
发明实施例还提供一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现如上述任一种所述内存分配的方法或内存寻址的方法的步骤。
本发明实施例还提供一种非暂态计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现如上述任一种所述内存分配的方法或内存寻址的方法的步骤。
本发明实施例提供的内存分配的方法及装置,通过确定待分配的数据的分布模式,并将待分配的数据分别按照对应的分布模式分配于片上内存的物理内存中,从而可以支持数据在片上内存的不同分布模式的存储,解决单一的分布模式下芯片性能受制约或者访问非本地内存时速度慢的缺陷,从而在芯片内的运算核心不断增加的情况下,减轻了芯片内总线带宽的压力,降低了总线上的冲突,提高了数据传输的效率。
本发明实施例提供的内存寻址的方法及装置,确定要访问的片上内存的虚拟地址,根据预设的页表进行转换,将虚拟地址转换为页表中的页表地址,由于本实施例的多种分布模式支持非连续的内存管理以及连续的内存管理,页表地址其实并不是真正的物理地址,还要再进行一次地址转换,即确定页表地址对应的分布模式以及偏移地址,根据页表地址、以及页表地址对应的分布模式和偏移地址在位图中进行匹配,得到片上内存的目标物理内存地址,从而针对本实施例的支持多种分布模式的结构,实现对目标物理内存地址的查找。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是现有技术中提供的采用UMA模型管理片上内存的结构示意图;
图2是现有技术中提供的采用NUMA模型管理片上内存的结构示意图;
图3是本发明实施例提供的一种内存分配的方法的流程示意图;
图4a是现有技术中的UMA模式以及NUMA模式的示意图;
图4b是本发明实施例的连续模式、本地模式以及区间模式的示意图;
图5是本发明一实施例提供的一种内存寻址的方法的流程示意图;
图6是本发明另一实施例提供的一种位图的结构示意图;
图7是本发明另一实施例提供的一种内存寻址的方法的流程示意图;
图8是本发明另一实施例提供的页表地址与位图的对应关系的示意图;
图9是本发明实施例提供的一种内存分配的装置的结构示意图;
图10是本发明实施例提供的一种内存寻址的装置的结构示意图;
图11是本发明实施例提供的一种电子设备的结构示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
在本发明一个或多个实施例中使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本发明一个或多个实施例。在本发明一个或多个实施例和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本发明一个或多个实施例中使用的术语“和/或”是指并包含一个或多个相关联的列出项目的任何或所有可能组合。
应当理解,尽管在本发明一个或多个实施例中可能采用术语第一、第二等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本发明一个或多个实施例范围的情况下,第一也可以被称为第二,类似地,第二也可以被称为第一。取决于语境,如在此所使用的词语“如果”可以被解释成为“在……时”或“当……时”或“响应于确定”。
首先,对本发明一个或多个实施例涉及的名词术语进行解释。
HBM(High Bandwidth Memory,高带宽存储器):一种基于3D堆栈工艺的高性能的DRAM内存,适用于高存储器带宽需求的应用场合,例如图形处理器、网络交换及转发设备(如路由器、交换器)等。
GDDR(Graphics Double Data Rate,图形用双倍数据传输率存储器):是一种高性能显卡使用的同步动态随机存取存储器,专为高带宽需求计算机应用所设计。
页表:是一种特殊的数据结构,放在系统空间的页表区,用于存放页表地址,表征虚拟地址与物理地址的对应关系。
位图:与所有芯片的片上内存对应的数据结构。每一个空格代表位图中的一个比特,每个空格对应分配的内存粒度为设定数值,例如128KB。
本发明实施例公开了一种内存分配的方法,参见图3,用于具有多个计算核心的芯片上,每个计算核心具有片上内存,包括步骤301~302:
301、确定待分配的数据的分布模式。
其中,分布模式包括:
连续模式——即UMA模式,以固定内存大小为粒度在不同的运算节点对应的片上内存中进行平均分配。该种模式适用于该数据需要被所有的运算节点都要访问的情形。
本地模式——即NUMA模式,以固定内存大小为粒度在单个运算节点对应的片上内存进行分配。该种模式适用于该数据只会被对应的单个运算节点访问的情形。
区间模式——即UMA_N模式,以固定内存大小为粒度在指定的几个运算节点对应的片上内存进行分配。该种模式适用于该数据只会被指定的几个运算节点访问的情形。
本实施例中,通过将待分配的数据通过不同的模式分配于运算节点的片上内存中,以满足不同模式的数据分配的需要,从而可以根据该数据被访问的情形的不同,将该数据按照对应的模式分配于相应的片上内存中。
302、将所述待分配的数据分别按照对应的分布模式分配于所述片上内存的物理内存中,并建立所述物理内存对应的页表。
具体地,对于分布模式包括连续模式的情形,步骤302包括:
将所述待分配的数据按照所述连续模式均匀分配于各个片上内存的物理内存中。
具体地,对于分布模式包括本地模式的情形,步骤302包括:
将所述待分配的数据按照所述本地模式分配于单个目标本地片上内存的物理内存中。
具体地,对于分布模式包括区间模式的情形,步骤302包括:
将所述待分配的数据按照所述区间模式分配于多个目标片上内存的物理内存中。
参见图4a和图4b,图4a所示为现有技术中的UMA模式以及NUMA模式,图4b所示为本实施例的连续模式(UMA)、本地模式(NUMA)以及区间模式(UMA_N)的对比图。
图4a中,运算核心共包括4个CORE0~CORE3,可见,在UMA模式下,数据被平均分配于4个运算核心的片上内存中,每个运算核心可以访问自身和其他运算核心的片上内存的数据;在NUMA下,数据被各自分配于每个运算核心对应的各自片上内存中,在NUMA模式下,每个运算核心只能访问自身的片上内存的数据。
参见图4b,图4b中的运算核心包括8个CORE0~CORE7,数据分配包括了三种模式:对于各个运算核心均要访问的数据,适用于UMA模式的分配;对于仅需要某单个运算核心单独访问的数据,适用于NUMA模式下的分配;对于需要某几个运算核心单独访问的数据,适用于UMA_N模式下的分配。
本实施例中,通过设置待分配的数据的分布模式,从而可以支持数据在片上内存的不同分布模式的存储,解决单一的分布模式下芯片性能受制约或者访问非本地内存时速度慢的缺陷,
其中,所述页表包括多个页表地址,且所述页表地址与所述物理内存地址相关联。
具体地,可以在每个页表地址中添加模式标记位,其中,模式标记位与页表地址对应的物理内存地址中的分布模式相对应。
例如在一种具体形式下,对于4个运算核心,总的片上内存大小为4GB,页表包括1024*1024个页表地址,每个页表地址对应有4KB的内存,以实现页表与物理内存地址的对应。
通过建立物理内存地址对应的页表,以便于对目标数据的查找,具体的方法可以参见下述实施例中的内存寻址的方法。
本发明实施例提供的内存分配的方法,通过确定待分配的数据的分布模式,并将待分配的数据分别按照对应的分布模式分配于片上内存的物理内存中,从而可以支持数据在片上内存的不同分布模式的存储,解决单一的分布模式下芯片性能受制约或者访问非本地内存时速度慢的缺陷,从而在芯片内的运算核心不断增加的情况下,减轻了芯片内总线带宽的压力,降低了总线上的冲突,提高了数据传输的效率。
本发明实施例公开了一种内存寻址的方法,参见图5,用于具有多个计算核心的芯片上,每个计算核心具有本地片上内存,包括:
501、确定要访问的片上内存的虚拟地址。
其中,虚拟地址可以根据访问命令来确定。当运算核心要访问片上内存时,根据接收到的访问命令,确定对应的虚拟地址。
502、根据预设的页表进行转换,将虚拟地址转换为页表中的页表地址。
本实施例中,与传统的虚拟地址经过页表转换后得到物理内存地址不同,由于本实施例的页表转换支持多种模式,所以得到的页表地址并非真正的物理内存地址,还要再进行一次转换。
503、确定所述页表地址对应的分布模式以及偏移地址。
其中,步骤503包括:根据页表地址中的模式标记位,确定所述页表地址对应的分布模式;根据虚拟地址及地址分配的粒度,确定所述页表地址对应的偏移地址。
其中,分布模式决定了要查找的数据的物理内存地址的排布方式;
页表地址决定了要查找的物理内存地址在位图中的起始位;
偏移地址决定了要查找的物理内存地址和起始位的相对位置。
根据上述三个参数,便可以确定要查找的物理内存地址。
为了支持UMA/NUMA混合模式,我们保留页表地址中的某些比特用来区分UMA/NUMA,如下表1所示。
表1
2bits | 分布模式 |
2b00 | UMA |
2b01 | UMA_N |
2b11 | NUMA |
504、根据所述页表地址、以及所述页表地址对应的分布模式和偏移地址在位图中进行匹配,得到片上内存的目标物理内存地址。
其中,所述位图与多个所述片上内存的物理内存地址相对应。
具体地,步骤504包括下述步骤S541~S544:
S541、根据所述页表地址确定要访问的物理内存地址在所述位图中的起始地址位置。
S542、根据所述偏移地址确定在所述位图中与所述起始地址位置的偏移量。
S543、根据所述位图中的起始地址位置、所述页表地址对应的分布模式和所述起始地址位置的偏移量在所述位图中进行匹配,得到位图中的至少一个目标位图地址。
S544、根据所述至少一个目标位图地址,确定对应的目标物理内存地址,其中,所述位图中的位图地址与所述片上内存的物理内存地址一一对应。
本发明实施例提供的内存寻址的方法,确定要访问的片上内存的虚拟地址,根据预设的页表进行转换,将虚拟地址转换为页表中的页表地址,由于本实施例的分布模式支持非连续的内存管理以及连续的内存管理,页表地址其实并不是真正的物理地址,还要再进行一次地址转换,即确定页表地址对应的分布模式以及偏移地址,根据页表地址、以及页表地址对应的分布模式和偏移地址在位图中进行匹配,得到片上内存的目标物理内存地址,从而针对本实施例的支持多种分布模式的结构,实现对目标物理内存地址的查找。
为了对本发明实施例的方法进行更为详尽的解释,本发明实施例通过一个具体的内存寻址的实例,来对本实施例的内存寻址的方法进行示意性的说明。
参见图6,图6示出了本实施例的一个位图的示意图。对于16个运算核心及其拥有单独内存节点的芯片,总的片上内存大小为128GB的系统,每个节点的上的分配粒度为128KB,我们需要维护的位图为uint16_t mem_on_chip_bitmap[128G/128K/16]。图6中每一个空格代表位图中的一个比特(128KB)。需要说明的是,该位图中的每一列位图对应一个运算核心的物理内存。位图空格按照由下到上的每一行进行顺次编码。
根据各个UMA/NUMA的内存寻址模式,本实施例定义了固定的寻址方式:
1)UMA,按照uma_patten为0xffff去位图中寻找合适的内存;
需要说明的是,0xffff代表的含义是在第1-16列进行连续的位图空格的查询,如图6中所示。
2)UMA_4_0,需要去位图中匹配四个连续的0x000f空间;
需要说明的是,0x000f代表的含义是在第1-4列进行连续的4行位图空格的查询。由于本实施例中,第1-4列没有连续的4行位图空格,所以不存在UMA_4_0对应的位图空格。
3)UMA_4_1,需要去位图中匹配四个连续的0x00f0空间;
需要说明的是,0x00f0代表的含义是在第5-8列进行连续的4行位图空格的查询,如图6中所示。
4)UMA_4_2,需要去位图中匹配四个连续的0x0f00空间;
需要说明的是,0x0f00代表的含义是在第9-12列进行连续的4行位图空格的查询,如图6中所示。
5)UMA_4_3,需要去位图中匹配四个连续的0xf000空间;
需要说明的是,0xf000代表的含义是在第13-16列进行连续的4行位图空格的查询,如图6中所示。
6)NUMA_0,需要去位图中匹配16个连续的0x0001空间;
7)NUMA_1,需要去位图中匹配16个连续的0x0002空间;
需要说明的是,0x0002代表的含义是在第2列进行连续的16行位图空格的查询,如图6中所示。
8)NUMA_15,需要去位图中匹配16个连续的0x8000空间。
参见图7,本实施例的内存寻址的方法具体包括:
701、确定要访问的片上内存的虚拟地址。
702、根据预设的页表进行转换,将虚拟地址转换为页表中的页表地址。
如表2所示,表2示出了图6中的几种模式下的页表地址的示意表达方式。
表2
Page entry | 页表地址VM_PA(单位128K) |
0 | 0x0 |
1 | 0xc00000000011 |
2 | 0x400000000014 |
3 | 0x400000000018 |
4 | 0x40000000001c |
5 | 0x000000000210 |
需要解释的是,表2中,0x0表示UMA模式,0x4表示NUMA模式。参见图8,图8示出了页表地址VM_PA与位图的对应关系。
其中,0代表编号为0的位图空格,00000000011代表编号为17的位图空格,00000000014代表编号为20的位图空格,00000000018代表编号为24的位图空格,0000000001c代表编号为28的位图空格,00000000210代表编号为272的位图空格。
703、确定所述页表地址对应的分布模式以及偏移地址。
具体地,步骤703包括:根据页表地址中的模式标记位,确定所述页表地址对应的分布模式;根据虚拟地址及地址分配的粒度,确定所述页表地址对应的偏移地址。
从页表地址到物理内存地址的转换关系参见下表3:
表3
字段 | UMA/NUMA_MODE | VM_PA | VA_OFFSET |
字段值 | UMA | xxx1 | yyy1 |
字段值 | NUMA | xxx2 | yyy2 |
其中,UMA/NUMA_MODE为分布模式,VM_PA为页表地址,VA_OFFSET为偏移地址。
704、根据所述页表地址确定要访问的物理内存地址在所述位图中的起始地址位置。
对于本实施例中起始地址位置的解释,参见上述表2以及图8的解释,在此不再赘述。
705、根据所述偏移地址确定在所述位图中与所述起始地址位置的偏移量。
706、根据所述位图中的起始地址位置、所述页表地址对应的分布模式和所述起始地址位置的偏移量在所述位图中进行匹配,得到位图中的至少一个目标位图地址。
具体地,本实施例中得到2个连续模式(UMA模式)下的目标位图地址、3个区间模式(UMA_N)下的目标位图地址、1个本地模式(NUMA模式)下的目标位图地址,如图6所示。
对于连续模式(UMA模式),步骤706包括:根据连续模式,确定待匹配的位图中的连续的位图地址;根据所述起始地址位置和偏移量,在位图中的连续的位图地址中进行匹配,得到位图中的至少一个目标位图地址。
对于本地模式(NUMA模式),步骤706包括:根据本地模式,确定待匹配的位图中的与单个目标本地片上内存对应的位图地址;根据所述起始地址位置和偏移量,在位图中的与单个目标本地片上内存对应的位图地址中进行匹配,得到位图中的至少一个目标位图地址。
对于区间模式(UMA_N),步骤706包括:根据区间模式,确定待匹配的位图中的多个目标片上内存对应的位图地址;根据所述起始地址位置和偏移量,在位图中的与多个目标片上内存对应的位图地址中进行匹配,得到位图中的至少一个目标位图地址。
707、根据所述至少一个目标位图地址,确定对应的目标物理内存地址。
其中,位图中的位图地址与片上内存的物理内存地址一一对应。
本实施例中,位图的每个空格表征128KB,通过目标位图地址,便可以确定对应的目标物理内存地址。
本发明实施例提供的内存寻址的方法,通过将虚拟地址转换为页表中的页表地址,再进行一次地址转换,即确定页表地址对应的分布模式以及偏移地址,根据页表地址、以及页表地址对应的分布模式和偏移地址在位图中进行匹配,得到片上内存的目标物理内存地址,从而针对本实施例的支持多种分布模式的结构,实现对目标物理内存地址的查找。
下面对本发明实施例提供的内存分配的装置进行描述,下文描述的内存分配的装置与上文描述的内存分配的方法可相互对应参照。
本发明实施例公开了一种内存分配的装置,参见图9,用于具有多个计算核心的芯片上,每个计算核心具有片上内存,包括:
模式确定模块901,用于确定待分配的数据的分布模式;
分配执行模块902,用于将所述待分配的数据分别按照对应的分布模式分配于所述片上内存的物理内存中,并建立所述物理内存地址对应的页表,其中,所述页表包括多个页表地址,且所述页表地址与所述物理内存地址相关联。
可选地,所述分布模式包括:连续模式;
分配执行模块902,具体用于:将所述待分配的数据按照所述连续模式均匀分配于各个片上内存的物理内存中。
可选地,所述分布模式包括:本地模式;
分配执行模块902,具体用于:将所述待分配的数据按照所述本地模式分配于单个目标本地片上内存的物理内存中。
可选地,所述分布模式包括:区间模式;
分配执行模块902,具体用于:将所述待分配的数据按照所述区间模式分配于多个目标片上内存的物理内存中。
可选地,所述内存分配的装置还包括:标记增加模块,用于在每个页表地址中添加模式标记位,其中,所述模式标记位与所述页表地址对应的物理内存地址中的分布模式相对应。
本发明实施例提供的内存分配的装置,通过确定待分配的数据的分布模式,并将待分配的数据分别按照对应的分布模式分配于片上内存的物理内存中,从而可以支持数据在片上内存的不同分布模式的存储,解决单一的分布模式下芯片性能受制约或者访问非本地内存时速度慢的缺陷,从而在芯片内的运算核心不断增加的情况下,减轻了芯片内总线带宽的压力,降低了总线上的冲突,提高了数据传输的效率。
下面对本发明实施例提供的内存寻址的装置进行描述,下文描述的内存寻址的装置与上文描述的内存寻址的方法可相互对应参照。
本发明实施例公开了一种内存寻址的装置,参见图10,用于具有多个计算核心的芯片上,每个计算核心具有本地片上内存,包括:
虚拟地址确定模块1001,用于确定要访问的片上内存的虚拟地址;
页表地址转换模块1002,用于根据预设的页表进行转换,将虚拟地址转换为页表中的页表地址;
页表地址处理模块1003,用于确定所述页表地址对应的分布模式以及偏移地址;
物理地址匹配模块1004,用于根据所述页表地址、以及所述页表地址对应的分布模式和偏移地址在位图中进行匹配,得到片上内存的目标物理内存地址,其中,所述位图与多个所述片上内存的物理内存地址相对应。
可选地,页表地址处理模块1003,具体用于:根据页表地址中的模式标记位,确定所述页表地址对应的分布模式;根据虚拟地址及地址分配的粒度,确定所述页表地址对应的偏移地址。
可选地,物理地址匹配模块1004,具体用于:
起始地址确定单元,用于根据所述页表地址确定要访问的物理内存地址在所述位图中的起始地址位置;
偏移地址确定单元,用于根据所述偏移地址确定在所述位图中与所述起始地址位置的偏移量;
位图地址匹配单元,用于根据所述位图中的起始地址位置、所述页表地址对应的分布模式和所述起始地址位置的偏移量在所述位图中进行匹配,得到位图中的至少一个目标位图地址;
物理地址确定单元,用于根据所述至少一个目标位图地址,确定对应的目标物理内存地址,其中,所述位图中的位图地址与所述片上内存的物理内存地址一一对应。
可选地,所述页表地址对应的分布模式包括:连续模式;
位图地址匹配单元,具体用于:根据连续模式,确定待匹配的位图中的连续的位图地址;
根据所述起始地址位置和偏移量,在位图中的连续的位图地址中进行匹配,得到位图中的至少一个目标位图地址。
可选地,所述页表地址对应的分布模式包括:本地模式;
位图地址匹配单元,具体用于:根据本地模式,确定待匹配的位图中的与单个目标本地片上内存对应的位图地址;
根据所述起始地址位置和偏移量,在位图中的与单个目标本地片上内存对应的位图地址中进行匹配,得到位图中的至少一个目标位图地址。
可选地,所述页表地址对应的分布模式包括:区间模式;
位图地址匹配单元,具体用于:根据区间模式,确定待匹配的位图中的多个目标片上内存对应的位图地址;
根据所述起始地址位置和偏移量,在位图中的与多个目标片上内存对应的位图地址中进行匹配,得到位图中的至少一个目标位图地址。
本发明实施例提供的内存寻址的装置,确定要访问的片上内存的虚拟地址,根据预设的页表进行转换,将虚拟地址转换为页表中的页表地址,由于本实施例的多种分布模式支持非连续的内存管理以及连续的内存管理,页表地址其实并不是真正的物理地址,还要再进行一次地址转换,即确定页表地址对应的分布模式以及偏移地址,根据页表地址、以及页表地址对应的分布模式和偏移地址在位图中进行匹配,得到片上内存的目标物理内存地址,从而针对本实施例的支持多种分布模式的结构,实现对目标物理内存地址的查找。
图11示例了一种电子设备的实体结构示意图,如图11所示,该电子设备可以包括:处理器(processor)1110、通信接口(Communications Interface)1120、存储器(memory)1130和通信总线1140,其中,处理器1110,通信接口1120,存储器1130通过通信总线1140完成相互间的通信。处理器1110可以调用存储器1130中的逻辑指令,以执行内存分配的方法或内存寻址的方法。
其中,内存分配的方法包括:
确定待分配的数据的分布模式;
将所述待分配的数据分别按照对应的分布模式分配于所述片上内存的物理内存中,并建立所述物理内存地址对应的页表,其中,所述页表包括多个页表地址,且所述页表地址与所述物理内存地址相关联。
其中,内存寻址的方法包括:
确定要访问的片上内存的虚拟地址;
根据预设的页表进行转换,将虚拟地址转换为页表中的页表地址;
确定所述页表地址对应的分布模式以及偏移地址;
根据所述页表地址、以及所述页表地址对应的分布模式和偏移地址在位图中进行匹配,得到片上内存的目标物理内存地址,其中,所述位图与多个所述片上内存的物理内存地址相对应。
此外,上述的存储器1130中的逻辑指令可以通过软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
另一方面,本发明实施例还提供一种计算机程序产品,所述计算机程序产品包括存储在非暂态计算机可读存储介质上的计算机程序,所述计算机程序包括程序指令,当所述程序指令被计算机执行时,计算机能够执行上述各方法实施例所提供的内存分配的方法或内存寻址的方法。
其中,内存分配的方法包括:
确定待分配的数据的分布模式;
将所述待分配的数据分别按照对应的分布模式分配于所述片上内存的物理内存中,并建立所述物理内存地址对应的页表,其中,所述页表包括多个页表地址,且所述页表地址与所述物理内存地址相关联。
其中,内存寻址的方法包括:
确定要访问的片上内存的虚拟地址;
根据预设的页表进行转换,将虚拟地址转换为页表中的页表地址;
确定所述页表地址对应的分布模式以及偏移地址;
根据所述页表地址、以及所述页表地址对应的分布模式和偏移地址在位图中进行匹配,得到片上内存的目标物理内存地址,其中,所述位图与多个所述片上内存的物理内存地址相对应。
又一方面,本发明实施例还提供一种非暂态计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现以执行上述各实施例提供的内存分配的方法或内存寻址的方法。
其中,内存分配的方法包括:
确定待分配的数据的分布模式;
将所述待分配的数据分别按照对应的分布模式分配于所述片上内存的物理内存中,并建立所述物理内存地址对应的页表,其中,所述页表包括多个页表地址,且所述页表地址与所述物理内存地址相关联。
其中,内存寻址的方法包括:
确定要访问的片上内存的虚拟地址;
根据预设的页表进行转换,将虚拟地址转换为页表中的页表地址;
确定所述页表地址对应的分布模式以及偏移地址;
根据所述页表地址、以及所述页表地址对应的分布模式和偏移地址在位图中进行匹配,得到片上内存的目标物理内存地址,其中,所述位图与多个所述片上内存的物理内存地址相对应。
以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性的劳动的情况下,即可以理解并实施。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件。基于这样的理解,上述技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行各个实施例或者实施例的某些部分所述的方法。
最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。
Claims (15)
1.一种内存分配的方法,其特征在于,用于具有多个计算核心的芯片上,每个计算核心具有片上内存,所述方法包括:
确定待分配的数据的分布模式;
将所述待分配的数据分别按照对应的分布模式分配于所述片上内存的物理内存中,并建立物理内存地址对应的页表,其中,所述页表包括多个页表地址,且所述页表地址与所述物理内存地址相关联。
2.根据权利要求1所述的内存分配的方法,其特征在于,所述分布模式包括:连续模式;
将所述待分配的数据分别按照对应的分布模式分配于所述片上内存的物理内存中,包括:
将所述待分配的数据按照所述连续模式均匀分配于各个片上内存的物理内存中。
3.根据权利要求1所述的内存分配的方法,其特征在于,所述分布模式包括:本地模式;
将所述待分配的数据分别按照对应的分布模式分配于所述片上内存的物理内存中,包括:
将所述待分配的数据按照所述本地模式分配于单个目标本地片上内存的物理内存中。
4.根据权利要求1所述的内存分配的方法,其特征在于,所述分布模式包括:区间模式;
将所述待分配的数据分别按照对应的分布模式分配于所述片上内存的物理内存中,包括:
将所述待分配的数据按照所述区间模式分配于多个目标片上内存的物理内存中。
5.根据权利要求1所述的内存分配的方法,其特征在于,所述方法还包括:
在每个页表地址中添加模式标记位,其中,所述模式标记位与所述页表地址对应的物理内存地址中的分布模式相对应。
6.一种内存寻址的方法,其特征在于,用于具有多个计算核心的芯片上,每个计算核心具有本地片上内存,所述方法包括:
确定要访问的片上内存的虚拟地址;
根据预设的页表进行转换,将虚拟地址转换为页表中的页表地址;
确定所述页表地址对应的分布模式以及偏移地址;
根据所述页表地址、以及所述页表地址对应的分布模式和偏移地址在位图中进行匹配,得到片上内存的目标物理内存地址,其中,所述位图与多个所述片上内存的物理内存地址相对应。
7.根据权利要求6所述的内存寻址的方法,其特征在于,确定所述页表地址对应的分布模式以及偏移地址,包括:
根据页表地址中的模式标记位,确定所述页表地址对应的分布模式;
根据虚拟地址及地址分配的粒度,确定所述页表地址对应的偏移地址。
8.根据权利要求6所述的内存寻址的方法,其特征在于,根据所述页表地址、以及所述页表地址对应的分布模式和偏移地址在位图中进行匹配,得到片上内存的目标物理内存地址,包括:
根据所述页表地址确定要访问的物理内存地址在所述位图中的起始地址位置;
根据所述偏移地址确定在所述位图中与所述起始地址位置的偏移量;
根据所述位图中的起始地址位置、所述页表地址对应的分布模式和所述起始地址位置的偏移量在所述位图中进行匹配,得到位图中的至少一个目标位图地址;
根据所述至少一个目标位图地址,确定对应的目标物理内存地址,其中,所述位图中的位图地址与所述片上内存的物理内存地址一一对应。
9.根据权利要求8所述的内存寻址的方法,其特征在于,所述页表地址对应的分布模式包括:连续模式;
根据所述位图中的起始地址位置、所述页表地址对应的分布模式和所述起始地址位置的偏移量在所述位图中进行匹配,得到位图中的至少一个目标位图地址,包括:
根据连续模式,确定待匹配的位图中的连续的位图地址;
根据所述起始地址位置和偏移量,在位图中的连续的位图地址中进行匹配,得到位图中的至少一个目标位图地址。
10.根据权利要求8所述的内存寻址的方法,其特征在于,所述页表地址对应的分布模式包括:本地模式;
根据所述位图中的起始地址位置、所述页表地址对应的分布模式和所述起始地址位置的偏移量在所述位图中进行匹配,得到位图中的至少一个目标位图地址,包括:
根据本地模式,确定待匹配的位图中的与单个目标本地片上内存对应的位图地址;
根据所述起始地址位置和偏移量,在位图中的与单个目标本地片上内存对应的位图地址中进行匹配,得到位图中的至少一个目标位图地址。
11.根据权利要求8所述的内存寻址的方法,其特征在于,所述页表地址对应的分布模式包括:区间模式;
根据所述位图中的起始地址位置、所述页表地址对应的分布模式和所述起始地址位置的偏移量在所述位图中进行匹配,得到位图中的至少一个目标位图地址,包括:
根据区间模式,确定待匹配的位图中的多个目标片上内存对应的位图地址;
根据所述起始地址位置和偏移量,在位图中的与多个目标片上内存对应的位图地址中进行匹配,得到位图中的至少一个目标位图地址。
12.一种内存分配的装置,其特征在于,用于具有多个计算核心的芯片上,每个计算核心具有片上内存,包括:
模式确定模块,用于确定待分配的数据的分布模式;
分配执行模块,用于将所述待分配的数据分别按照对应的分布模式分配于所述片上内存的物理内存中,并建立所述物理内存地址对应的页表,其中,所述页表包括多个页表地址,且所述页表地址与所述物理内存地址相关联。
13.一种内存寻址的装置,其特征在于,用于具有多个计算核心的芯片上,每个计算核心具有本地片上内存,包括:
虚拟地址确定模块,用于确定要访问的片上内存的虚拟地址;
页表地址转换模块,用于根据预设的页表进行转换,将虚拟地址转换为页表中的页表地址;
页表地址处理模块,用于确定所述页表地址对应的分布模式以及偏移地址;
物理地址匹配模块,用于根据所述页表地址、以及所述页表地址对应的分布模式和偏移地址在位图中进行匹配,得到片上内存的目标物理内存地址,其中,所述位图与多个所述片上内存的物理内存地址相对应。
14.一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时实现如权利要求1至5任一项所述内存分配的方法或如权利要求6至11任一项所述内存寻址的方法的步骤。
15.一种非暂态计算机可读存储介质,其上存储有计算机程序,其特征在于,该计算机程序被处理器执行时实现如权利要求1至5任一项所述内存分配的方法或如权利要求6至11任一项所述内存寻址的方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011163342.7A CN112256598B (zh) | 2020-10-27 | 2020-10-27 | 一种内存分配的方法及装置、内存寻址的方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011163342.7A CN112256598B (zh) | 2020-10-27 | 2020-10-27 | 一种内存分配的方法及装置、内存寻址的方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112256598A true CN112256598A (zh) | 2021-01-22 |
CN112256598B CN112256598B (zh) | 2022-10-28 |
Family
ID=74261365
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011163342.7A Active CN112256598B (zh) | 2020-10-27 | 2020-10-27 | 一种内存分配的方法及装置、内存寻址的方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112256598B (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116185910A (zh) * | 2023-04-25 | 2023-05-30 | 北京壁仞科技开发有限公司 | 访问设备内存、管理设备内存的方法、设备和介质 |
CN113535392B (zh) * | 2021-07-08 | 2023-07-11 | 中国人民解放军国防科技大学 | 基于cma实现支持大内存连续分配的内存管理方法及系统 |
Citations (24)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6085296A (en) * | 1997-11-12 | 2000-07-04 | Digital Equipment Corporation | Sharing memory pages and page tables among computer processes |
US20080005528A1 (en) * | 2006-06-30 | 2008-01-03 | Morris Robert P | Methods, Systems, and Computer Program Products for Using a Structured Data Storage System to Provide Access to Addressable Entities in Virtual Address Space |
US20080005529A1 (en) * | 2006-06-30 | 2008-01-03 | Morris Robert P | Methods, Systems, and Computer Program Products for Providing Access to Addressable Entities Using a Non-Sequential Virtual Address Space |
US20110225387A1 (en) * | 2010-03-12 | 2011-09-15 | Qualcomm Innovation Center, Inc. | Unified Virtual Contiguous Memory Manager |
CN102662869A (zh) * | 2012-04-01 | 2012-09-12 | 龙芯中科技术有限公司 | 虚拟机中的内存访问方法和装置及查找器 |
CN102792285A (zh) * | 2010-03-15 | 2012-11-21 | Arm有限公司 | 层级转换表控制 |
US20140208064A1 (en) * | 2013-01-24 | 2014-07-24 | Wisconsin Alumni Research Foundation | Virtual Memory Management System with Reduced Latency |
CN104281532A (zh) * | 2014-05-15 | 2015-01-14 | 浙江大学 | 一种基于numa架构的虚拟机内存访问监测方法 |
CN104375899A (zh) * | 2014-11-21 | 2015-02-25 | 北京应用物理与计算数学研究所 | 高性能计算机numa感知的线程和内存资源优化方法与系统 |
CN105283855A (zh) * | 2014-04-25 | 2016-01-27 | 华为技术有限公司 | 一种寻址方法及装置 |
CN105468542A (zh) * | 2014-09-03 | 2016-04-06 | 杭州华为数字技术有限公司 | 地址分配方法及装置 |
CN105677879A (zh) * | 2016-01-12 | 2016-06-15 | 诸葛晴凤 | 内存关系数据库的数据组织及访问方法 |
CN105830022A (zh) * | 2014-11-28 | 2016-08-03 | 华为技术有限公司 | 访问文件的方法和装置 |
CN105868028A (zh) * | 2015-01-23 | 2016-08-17 | 华为技术有限公司 | 一种进程间共享数据的方法、装置及终端 |
CN105893269A (zh) * | 2016-03-31 | 2016-08-24 | 武汉虹信技术服务有限责任公司 | 一种Linux系统下内存管理方法 |
US20170220482A1 (en) * | 2016-02-03 | 2017-08-03 | Nutanix, Inc. | Manipulation of virtual memory page table entries to form virtually-contiguous memory corresponding to non-contiguous real memory allocations |
CN107155306A (zh) * | 2014-09-30 | 2017-09-12 | 华为技术有限公司 | 文件页面管理单元、处理设备和文件页面管理方法 |
CN109766164A (zh) * | 2018-11-22 | 2019-05-17 | 海光信息技术有限公司 | 一种访问控制方法、内存管理方法及相关装置 |
US20190188149A1 (en) * | 2017-12-20 | 2019-06-20 | Arm Limited | Technique for determining address translation data to be stored within an address translation cache |
CN110046106A (zh) * | 2019-03-29 | 2019-07-23 | 海光信息技术有限公司 | 一种地址转换方法、地址转换模块及系统 |
CN110209603A (zh) * | 2019-05-31 | 2019-09-06 | 龙芯中科技术有限公司 | 地址转换方法、装置、设备及计算机可读存储介质 |
CN110688330A (zh) * | 2019-09-23 | 2020-01-14 | 北京航空航天大学 | 一种基于内存映射相邻性的虚拟内存地址翻译方法 |
CN111414248A (zh) * | 2019-01-04 | 2020-07-14 | 阿里巴巴集团控股有限公司 | 内存管理方法、装置及计算设备 |
CN111813710A (zh) * | 2020-09-11 | 2020-10-23 | 鹏城实验室 | 避免Linux内核内存碎片方法、设备及计算机存储介质 |
-
2020
- 2020-10-27 CN CN202011163342.7A patent/CN112256598B/zh active Active
Patent Citations (24)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6085296A (en) * | 1997-11-12 | 2000-07-04 | Digital Equipment Corporation | Sharing memory pages and page tables among computer processes |
US20080005528A1 (en) * | 2006-06-30 | 2008-01-03 | Morris Robert P | Methods, Systems, and Computer Program Products for Using a Structured Data Storage System to Provide Access to Addressable Entities in Virtual Address Space |
US20080005529A1 (en) * | 2006-06-30 | 2008-01-03 | Morris Robert P | Methods, Systems, and Computer Program Products for Providing Access to Addressable Entities Using a Non-Sequential Virtual Address Space |
US20110225387A1 (en) * | 2010-03-12 | 2011-09-15 | Qualcomm Innovation Center, Inc. | Unified Virtual Contiguous Memory Manager |
CN102792285A (zh) * | 2010-03-15 | 2012-11-21 | Arm有限公司 | 层级转换表控制 |
CN102662869A (zh) * | 2012-04-01 | 2012-09-12 | 龙芯中科技术有限公司 | 虚拟机中的内存访问方法和装置及查找器 |
US20140208064A1 (en) * | 2013-01-24 | 2014-07-24 | Wisconsin Alumni Research Foundation | Virtual Memory Management System with Reduced Latency |
CN105283855A (zh) * | 2014-04-25 | 2016-01-27 | 华为技术有限公司 | 一种寻址方法及装置 |
CN104281532A (zh) * | 2014-05-15 | 2015-01-14 | 浙江大学 | 一种基于numa架构的虚拟机内存访问监测方法 |
CN105468542A (zh) * | 2014-09-03 | 2016-04-06 | 杭州华为数字技术有限公司 | 地址分配方法及装置 |
CN107155306A (zh) * | 2014-09-30 | 2017-09-12 | 华为技术有限公司 | 文件页面管理单元、处理设备和文件页面管理方法 |
CN104375899A (zh) * | 2014-11-21 | 2015-02-25 | 北京应用物理与计算数学研究所 | 高性能计算机numa感知的线程和内存资源优化方法与系统 |
CN105830022A (zh) * | 2014-11-28 | 2016-08-03 | 华为技术有限公司 | 访问文件的方法和装置 |
CN105868028A (zh) * | 2015-01-23 | 2016-08-17 | 华为技术有限公司 | 一种进程间共享数据的方法、装置及终端 |
CN105677879A (zh) * | 2016-01-12 | 2016-06-15 | 诸葛晴凤 | 内存关系数据库的数据组织及访问方法 |
US20170220482A1 (en) * | 2016-02-03 | 2017-08-03 | Nutanix, Inc. | Manipulation of virtual memory page table entries to form virtually-contiguous memory corresponding to non-contiguous real memory allocations |
CN105893269A (zh) * | 2016-03-31 | 2016-08-24 | 武汉虹信技术服务有限责任公司 | 一种Linux系统下内存管理方法 |
US20190188149A1 (en) * | 2017-12-20 | 2019-06-20 | Arm Limited | Technique for determining address translation data to be stored within an address translation cache |
CN109766164A (zh) * | 2018-11-22 | 2019-05-17 | 海光信息技术有限公司 | 一种访问控制方法、内存管理方法及相关装置 |
CN111414248A (zh) * | 2019-01-04 | 2020-07-14 | 阿里巴巴集团控股有限公司 | 内存管理方法、装置及计算设备 |
CN110046106A (zh) * | 2019-03-29 | 2019-07-23 | 海光信息技术有限公司 | 一种地址转换方法、地址转换模块及系统 |
CN110209603A (zh) * | 2019-05-31 | 2019-09-06 | 龙芯中科技术有限公司 | 地址转换方法、装置、设备及计算机可读存储介质 |
CN110688330A (zh) * | 2019-09-23 | 2020-01-14 | 北京航空航天大学 | 一种基于内存映射相邻性的虚拟内存地址翻译方法 |
CN111813710A (zh) * | 2020-09-11 | 2020-10-23 | 鹏城实验室 | 避免Linux内核内存碎片方法、设备及计算机存储介质 |
Non-Patent Citations (3)
Title |
---|
湛辉来等: "X86体系中保护模式下的内存访问机制", 《重庆大学学报(自然科学版)》 * |
王庆民等: "ARM对SDSM操作系统虚地址转换支持研究", 《微计算机信息》 * |
陈小文等: "多核处理器中混合分布式共享存储空间的实时划分技术", 《计算机工程与科学》 * |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113535392B (zh) * | 2021-07-08 | 2023-07-11 | 中国人民解放军国防科技大学 | 基于cma实现支持大内存连续分配的内存管理方法及系统 |
CN116185910A (zh) * | 2023-04-25 | 2023-05-30 | 北京壁仞科技开发有限公司 | 访问设备内存、管理设备内存的方法、设备和介质 |
Also Published As
Publication number | Publication date |
---|---|
CN112256598B (zh) | 2022-10-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107526546B (zh) | 一种Spark分布式计算数据处理方法及系统 | |
CN112256598B (zh) | 一种内存分配的方法及装置、内存寻址的方法及装置 | |
US20160170886A1 (en) | Multi-core processor supporting cache consistency, method, apparatus and system for data reading and writing by use thereof | |
US20150113230A1 (en) | Directory storage method and query method, and node controller | |
EP3757782A1 (en) | Data accessing method and apparatus, device and medium | |
CN105518631B (zh) | 内存管理方法、装置和系统、以及片上网络 | |
CN102521150B (zh) | 一种应用程序cache分配方法及装置 | |
CN112506823B (zh) | 一种fpga数据读写方法、装置、设备及可读存储介质 | |
CN104102586B (zh) | 一种地址映射处理的方法、装置 | |
CN108647155B (zh) | 一种基于深度学习的多级cache共享的方法和装置 | |
CN104572493A (zh) | 一种存储器资源优化方法和装置 | |
CN114185818B (zh) | 基于扩展页表的gpu访存自适应优化方法及装置 | |
CN110795374B (zh) | 一种设备访问的方法、装置及可读存储介质 | |
CN108845958B (zh) | 一种交织器映射和动态内存管理系统及方法 | |
US20170364442A1 (en) | Method for accessing data visitor directory in multi-core system and device | |
WO2024093517A1 (zh) | 内存管理方法及计算设备 | |
US20220382672A1 (en) | Paging in thin-provisioned disaggregated memory | |
US20240281381A1 (en) | Data storage apparatus and data processing method | |
JP6674460B2 (ja) | 不均一メモリアーキテクチャにおける改善されたレイテンシのためのシステムおよび方法 | |
CN113010453A (zh) | 一种内存管理的方法、系统、设备及可读存储介质 | |
JP2009015509A (ja) | キャッシュメモリ装置 | |
US10366008B2 (en) | Tag and data organization in large memory caches | |
EP3227787B1 (en) | Systems and methods for providing improved latency in a non-uniform memory architecture | |
CN107209761B (zh) | 一种数据访问方法、装置及系统 | |
CN104407985B (zh) | 存储器地址映射方法及存储器地址映射系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
CP03 | Change of name, title or address | ||
CP03 | Change of name, title or address |
Address after: 201114 room 1302, 13 / F, building 16, 2388 Chenhang Road, Minhang District, Shanghai Patentee after: Shanghai Bi Ren Technology Co.,Ltd. Country or region after: China Address before: 201114 room 1302, 13 / F, building 16, 2388 Chenhang Road, Minhang District, Shanghai Patentee before: Shanghai Bilin Intelligent Technology Co.,Ltd. Country or region before: China |