CN105518631B - 内存管理方法、装置和系统、以及片上网络 - Google Patents

内存管理方法、装置和系统、以及片上网络 Download PDF

Info

Publication number
CN105518631B
CN105518631B CN201480037710.XA CN201480037710A CN105518631B CN 105518631 B CN105518631 B CN 105518631B CN 201480037710 A CN201480037710 A CN 201480037710A CN 105518631 B CN105518631 B CN 105518631B
Authority
CN
China
Prior art keywords
physical
physical page
memory
page number
page
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
Application number
CN201480037710.XA
Other languages
English (en)
Other versions
CN105518631A (zh
Inventor
蔡卫光
程德华
吴祖光
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Huawei Technologies Co Ltd
Original Assignee
Huawei Technologies Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Huawei Technologies Co Ltd filed Critical Huawei Technologies Co Ltd
Publication of CN105518631A publication Critical patent/CN105518631A/zh
Application granted granted Critical
Publication of CN105518631B publication Critical patent/CN105518631B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/10Address translation
    • G06F12/1027Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1016Performance improvement

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)

Abstract

本发明实施例提供了一种内存管理方法、装置和系统、以及片上网络。该内存管理方法包括:从空闲的物理页中确定分配给所述进程的第一物理页;向内存管理器发送调整指令,该调整指令用于指示内存管理器对物理内存中的至少一对第二物理页进行交换处理,每对第二物理页包括物理页号不连续的第一物理页中的一个和一个非空闲的物理页,使得交换后得到的第一物理页与至少另一个第一物理页是连续的;在进程的TLB页表中添加一条表项,该表项中记录了至少两个连续的第一物理页合并为一个大物理页后与进程的虚拟页的映射关系,大物理页包括交换后得到的第一物理页。本发明能够减小大内存的应用中,由于TLB缺页造成的性能损失。

Description

内存管理方法、装置和系统、以及片上网络
技术领域
本发明涉及计算机技术领域,特别涉及一种内存管理方法、装置和系统、以及片上网络。
背景技术
基于页的虚拟内存技术是当前计算系统中内存管理的核心部分。在该技术中,操作系统将物理内存的地址空间划分为多个连续的物理页,并将程序将会用到的虚拟内存的地址空间划分为多个连续的虚拟页。在程序运行过程中,内存管理单元会将程序需要访问的虚拟地址转换为物理地址,然后根据物理地址访问物理内存。
该地址转换的过程通常采用TLB(Translation Look-aside Buffer,翻译后备缓冲区)实现。具体地,CPU获得虚拟地址后,会根据虚拟地址确定虚拟页号,然后在该进程的TLB表项(保存有虚拟页号和物理页号的映射关系)中查找该虚拟页号,若在TLB表项中查找到该虚拟页号,则称为TLB命中(即TLB Hit),则输出该虚拟页号对应的物理页号并根据该物理页号确定物理地址;若查找不到该虚拟页号,则表明发生了TLB缺页(TLB Miss),此时,需要从内存中寻找该虚拟页号对应的映射信息(包括虚拟页号和物理页号的映射关系),并将内存中找到的该虚拟页号的映射信息重新装填入TLB,以便下次使用。
在实现本发明的过程中,发明人发现现有技术至少存在以下问题:
设备配置的物理内存越来越大(例如,一台服务器能够集成数十GB甚至上TB的物理内存),而TLB的资源有限,其中能够保存的TLB表项有限,因此在大内存应用中,TLB缺页的情况十分严重,由此带来的系统开销很大。现有技术中,通常采用大页面技术来减少TLB缺页带来的系统开销。所谓大页面技术,即增大页面尺寸,增大页面尺寸相当于增大了TLB中每个表项所能映射的地址空间,对于程序而言,相当于减少了其使用的页面数量,因此,大页面技术在一定程度上能减少缺页开销,但是,实验证明,当页面大小增加到一定限度,缺页开销将不再变化,也就是说,采用大页面技术对减少缺页开销作用有限。
发明内容
为了解决现有技术中大内存应用中TLB缺页开销大的问题,本发明实施例提供了一种内存管理方法、装置和系统、以及片上网络。所述技术方案如下:
第一方面,本发明实施例提供了一种内存管理方法,所述方法包括:
当需要为进程分配物理内存时,从空闲的物理页中确定分配给所述进程的第一物理页;
当确定出的所述第一物理页为至少两个,且确定出的所述第一物理页中存在物理页号不连续的第一物理页时,向内存管理器发送调整指令,所述调整指令用于指示所述内存管理器对所述物理内存中的至少一对第二物理页进行交换处理,每对所述第二物理页包括所述物理页号不连续的第一物理页中的一个和一个非空闲的物理页,使得交换后得到的第一物理页与至少另一个所述第一物理页是连续的;
在所述进程的地址转换缓冲区TLB页表中添加一条表项,所述表项中记录了至少两个连续的所述第一物理页合并为一个大物理页后与所述进程的虚拟页的映射关系,所述大物理页包括所述交换后得到的第一物理页。
在第一方面的第一种可能的实施方式中,所述内存管理器中设有物理页号和内部页号的映射表,所述调整指令携带第一物理页号和第二物理页号,所述存储指令用于指示所述内存管理器交换所述第一物理页号和所述第二物理页号对应的内部页号,所述内存管理器用于根据所述内部页号访问所述物理内存。
进一步地,在该第一种可能的实施方式中,所述方法还可以包括:向所述内存管理器发送复位指令,所述复位指令用于指示所述内存管理器创建所述物理页号和内部页号的映射表。
在第一方面的第二种可能的实施方式中,所述调整指令携带第一物理页号和第二物理页号,所述调整指令用于指示所述内存管理器交换所述第一物理页号对应的物理页内的数据和所述第二物理页号对应的物理页内的数据。
第二方面,本发明实施例提供了一种内存管理方法,所述方法包括:
内存管理器接收调整指令,所述调整指令用于指示所述内存管理器对所述物理内存中的至少一对第二物理页进行交换处理,每对所述第二物理页包括所述物理页号不连续的第一物理页中的一个和一个非空闲的物理页,所述第一物理页为待分配给进程的空闲的物理页;
根据所述调整指令对物理内存中的物理页进行交换处理,使得交换后得到的第一物理页与至少另一个所述第一物理页是连续的。
在第二方面的第一种可能的实施方式中,所述内存管理器中设有物理页号和内部页号的映射表,所述调整指令携带第一物理页号和第二物理页号,所述存储指令用于指示所述内存管理器交换所述第一物理页号和所述第二物理页号对应的内部页号,所述内存管理器用于根据所述内部页号访问所述物理内存。
进一步地,在该第一种可能的实施方式中,所述方法还可以包括:
接收复位指令,所述复位指令用于指示所述内存管理器创建所述物理页号和内部页号的映射表;
根据复位指令创建所述物理页号和内部页号的映射表。
更进一步地,该方法还可以包括:
接收访存指令,所述访存指令包括起始物理地址和长度信息;
根据所述物理页号和内部页号的映射表,将所述访存指令中的的起始物理地址转换为内部地址;
根据所述内部地址访问所述物理内存。
在第二方面的第二种可能的实施方式中,所述调整指令携带第一物理页号和第二物理页号,所述调整指令用于指示所述内存管理器交换所述第一物理页号对应的物理页内的数据和所述第二物理页号对应的物理页内的数据。
第三方面,本发明实施例提供了一种内存管理装置,所述装置包括:
内存分配模块,用于当需要为进程分配物理内存时,从空闲的物理页中确定分配给所述进程的第一物理页;
发送模块,用于当所述内存分配模块确定出的所述第一物理页为至少两个,且确定出的所述第一物理页中存在物理页号不连续的第一物理页时,向内存管理器发送调整指令,所述调整指令用于指示所述内存管理器对所述物理内存中的至少一对第二物理页进行交换处理,每对所述第二物理页包括所述物理页号不连续的第一物理页中的一个和一个非空闲的物理页,使得交换后得到的第一物理页与至少另一个所述第一物理页是连续的;
表项处理模块,用于在所述进程的地址转换缓冲区TLB页表中添加一条表项,所述表项中记录了至少两个连续的所述第一物理页合并为一个大物理页后与所述进程的虚拟页的映射关系,所述大物理页包括所述交换后得到的第一物理页。
在第三方面的第一种可能的实施方式中,所述内存管理器中设有物理页号和内部页号的映射表,所述调整指令携带第一物理页号和第二物理页号,所述存储指令用于指示所述内存管理器交换所述第一物理页号和所述第二物理页号对应的内部页号,所述内存管理器用于根据所述内部页号访问所述物理内存。
进一步地,在该第一种可能的实施方式中,所述发送模块还可以用于,向所述内存管理器发送复位指令,所述复位指令用于指示所述内存管理器创建所述物理页号和内部页号的映射表。
在第三方面的第二种可能的实施方式中,所述调整指令携带第一物理页号和第二物理页号,所述调整指令用于指示所述内存管理器交换所述第一物理页号对应的物理页内的数据和所述第二物理页号对应的物理页内的数据。
第四方面,本发明实施例提供了一种内存管理装置,所述装置包括:
接收模块,用于接收调整指令,所述调整指令用于指示所述内存管理器对所述物理内存中的至少一对第二物理页进行交换处理,每对所述第二物理页包括所述物理页号不连续的第一物理页中的一个和一个非空闲的物理页,所述第一物理页为待分配给进程的空闲的物理页;
执行模块,用于根据所述接收模块接收到的所述调整指令,对物理内存中的物理页进行交换处理,使得交换后得到的第一物理页与至少另一个所述第一物理页是连续的。
在第四方面的第一种可能的实施方式中,所述内存管理器中设有物理页号和内部页号的映射表,所述调整指令携带第一物理页号和第二物理页号,所述存储指令用于指示所述内存管理器交换所述第一物理页号和所述第二物理页号对应的内部页号,所述内存管理器用于根据所述内部页号访问所述物理内存。
进一步地,在该第一种可能的实施方式中,所述接收模块还用于,接收复位指令,所述复位指令用于指示所述内存管理器创建所述物理页号和内部页号的映射表;所述执行模块还用于,根据复位指令创建所述物理页号和内部页号的映射表。
更进一步地,所述接收模块还用于,接收访存指令,所述访存指令包括起始物理地址和长度信息;
相应地,所述装置还包括:
地址转换模块,用于根据所述物理页号和内部页号的映射表,将所述访存指令中的的起始物理地址转换为内部地址;
访存模块,用于根据所述地址转换模块得到的所述内部地址访问所述物理内存。
在第四方面的第二种可能的实施方式中,所述调整指令携带第一物理页号和第二物理页号,所述调整指令用于指示所述内存管理器交换所述第一物理页号对应的物理页内的数据和所述第二物理页号对应的物理页内的数据。
第五方面,本发明实施例提供了一种内存管理装置,所述装置包括:处理器、存储器、总线和通信接口;所述存储器用于存储计算机执行指令,所述处理器与所述存储器通过所述总线连接,当所述计算机运行时,所述处理器执行所述存储器存储的所述计算机执行指令,以使所述计算机执行如第一方面所述的方法。
第六方面,本发明实施例提供了一种内存管理装置,其特征在于,所述装置包括:所述装置包括:处理器、存储器、总线和通信接口;所述存储器用于存储计算机执行指令,所述处理器与所述存储器通过所述总线连接,当所述计算机运行时,所述处理器执行所述存储器存储的所述计算机执行指令,以使所述计算机执行如第二方面所述的方法。
第七方面,本发明实施例提供了一种内存管理系统,所述系统包括中央处理器和内存控制器;
其中,所述中央处理器包括第三方面或第五方面所述的内存管理装置;
所述内存控制器包括第四方面或第六方面所述的内存管理装置。
第八方面,本发明实施例提供了一种片上网络,所述片上网络包括:
多个处理器、多个路由器和多个内存控制器,所述处理器通过所述路由器与所述内存控制器连接;
所述处理器包括如第三方面或第五方面所述的内存管理装置;
所述路由器包括如第四方面或第六方面所述的内存管理装置。
本发明实施例提供的技术方案的有益效果是:通过先确定分配给进程的第一物理页,然后对物理页号不连续的第一物理页进行交换处理,进而使得交换后得到的第一物理页与另一个物理页是连续的,这样,可以将连续的至少两个第一物理页合并为一个大物理页,作为一个表项添加到进程的TLB页表中,从而可以减少该进程在地址映射时,所使用的TLB表项的数量,进而减少TLB缺页开销。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是计算机系统中的内存管理系统的结构示意图;
图2是本发明实施例一提供的内存管理方法的流程图;
图3是本发明实施例二提供的内存管理方法的流程图;
图4是本发明实施例三提供的内存管理方法的流程图;
图5是本发明实施例四提供的内存管理方法的流程图;
图6是本发明实施例五提供的内存管理装置的结构框图;
图7是本发明实施例六提供的内存管理装置的结构框图;
图8是本发明实施例七提供的内存管理装置的结构框图;
图9是本发明实施例八提供的内存管理装置的结构框图;
图10是本发明实施例九提供的内存管理装置的结构框图;
图11是本发明实施例十提供的内存管理装置的结构框图;
图12是本发明实施例十一提供的内存管理系统的结构框图;
图13是本发明实施例十二提供的片上网络的结构框图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明实施方式作进一步地详细描述。
本发明实施例提供了一种内存管理方法、装置和系统,适用于计算机系统中的内存管理系统。下面先结合图1介绍内存管理系统的结构。
参见图1,内存管理系统100包括中央处理器110(Center Prossecing Unit,简称CPU)、存储控制器120(Memory Controller)、物理内存130(又称主存,例如动态随机存取存储器(Dynamic Random Access Memory,简称DRAM))。其中,CPU110内设有地址生成单元111(Address Generation Unit,简称AGU)和内存管理单元112(Memory Management Unit,简称MMU),其中,MMU112的核心部分为翻译后备缓冲器(Translation Look-aside Buffer,简称TLB)。
其中,物理内存130中保存有各个进程的页表,进程的页表用于记录进程的虚拟页调入主存时被安排在主存中的物理页的物理页号。通常,每个进程对应一个页表,进程的完整的页表存储在主存的特定区域中,而该页表中最活跃的部分则会同时存放在TLB中(即TLB页表)。
当CPU执行指令时,由AGU111计算出待访问的虚拟地址,并将该虚拟地址送入TLB内查询对应的物理地址,若在TLB内查询到物理地址,则根据该物理地址生成访存请求并向MMU112发出访存请求。若在TLB内未查询到对应的物理地址,则CPU110需要在物理内存130中查找虚拟地址对应的物理地址,并将查找到的映射关系添加到TLB页表中。
实施例一
本发明实施例提供了一种内存管理方法,适用于图1所示的内存管理系统,该方法可以由CPU执行。如图2所示,该方法包括:
步骤101:当需要为进程分配物理内存时,从空闲的物理页中确定分配给进程的第一物理页。
实现时,在进程启动时,操作系统需要为进程分配物理内存;或者,
在进程启动后,进程会根据需要向操作系统申请物理内存,此时,操作系统也需要为进程分配物理内存。
步骤102:当确定出的所述第一物理页为至少两个,且确定出的第一物理页中存在物理页号不连续的第一物理页时,向内存管理器发送调整指令。
该调整指令用于指示内存管理器对物理内存中的至少一对第二物理页进行交换处理,每对第二物理页包括物理页号不连续的第一物理页中的一个和一个非空闲的物理页,使得交换后得到的第一物理页与至少另一个第一物理页是连续的。
其中,该内存管理器可以为图1中的内存控制器,也可以为片上网络中的路由器。
步骤103:在进程的TLB页表中添加一条表项,该表项中记录了至少两个连续的第一物理页合并为一个大物理页后与进程的虚拟页的映射关系。
该大物理页包括交换后得到的第一物理页。
可以理解地,在进程的TLB页表中添加一条表项之前,会先更新物理内存中的该进程的页表。
本发明实施例通过先确定分配给进程的第一物理页,然后对物理页号不连续的第一物理页进行交换处理,进而使得交换后得到的第一物理页与另一个物理页是连续的,这样,可以将连续的至少两个第一物理页合并为一个大物理页,作为一个表项添加到进程的TLB页表中,从而可以减少该进程在地址映射时,所使用的TLB表项的数量,进而减少TLB缺页开销。另外,本发明实施例对操作系统的改动少,易于推广应用。
实施例二
本发明实施例提供了一种内存管理方法,适用于图1所示的内存管理系统。该方法可以由内存控制器执行。如图3所示,该方法包括:
步骤201:接收调整指令。
调整指令用于指示内存管理器对物理内存中的至少一对第二物理页进行交换处理,每对第二物理页包括物理页号不连续的第一物理页中的一个和一个非空闲的物理页,第一物理页为待分配给进程的空闲的物理页。
步骤202:根据调整指令对物理内存中的物理页进行交换处理,使得交换后得到的第一物理页与至少另一个第一物理页是连续的。
本发明实施例通过先确定分配给进程的第一物理页,然后对物理页号不连续的第一物理页进行交换处理,进而使得交换后得到的第一物理页与另一个物理页是连续的,这样,可以将连续的至少两个第一物理页合并为一个大物理页,作为一个表项添加到进程的TLB页表中,从而可以减少该进程在地址映射时,所使用的TLB表项的数量,进而减少TLB缺页开销。
实施例三
本发明实施例提供了一种内存管理方法,适用于图1所示的内存管理系统。在本实施例中,内存管理器为存储控制器,操作系统将主存的物理地址空间划分为多个物理页,并为每个物理页分配一个物理页号,存储控制器为每个物理页分配一个内部页号,存储控制器用于根据该内部页号访问物理内存,物理页号与内部页号一一对应。参见图4,该方法包括:
步骤301:系统初始化时,CPU划分物理页和虚拟页。
具体地,在系统初始化时,操作系统将整个物理内存的物理地址空间划分为连续的多个物理页,为各个物理页分配物理页号,并将程序将会用到的整个虚拟地址空间划分为多个连续的虚拟页,为各个虚拟页分配虚拟页号。
其中,物理页号为操作系统可见,虚拟页号为程序可见。不同的物理页的物理页号各不相同。
具体地,操作系统可以按照相同的页面大小,例如4KB,将整个物理内存的物理地址空间划分为连续的多个物理页,也就是说,各个物理页的大小是相同的,便于维护和管理。虚拟页按照与物理页相同的页面大小划分。可以理解地,物理页的大小也可以是不同的。
在操作系统的运行过程中,各个物理页的物理页号是固定不变的。
步骤302:CPU向存储控制器发送复位指令,该复位指令用于指示存储控制器建立物理页号和内部页号的映射关系。
例如,该复位指令可以为page_reset指令,当存储控制器收到该指令时,即会建立物理页号和内部页号的映射关系。
通过步骤302即可为各个物理页分配内部页号,内部页号为存储控制器可见。不同的物理页的内部页号各不相同。至此,每个物理页都具有一个物理页号和一个内部页号。
步骤303:当需要为进程分配物理内存时,CPU确定需分配给进程的物理内存的大小。
通常,在进程启动时,操作系统会根据进程的镜像(二进制文件)中的信息,确定进程所需的物理内存的大小;或者在进程运行过程中,进程会向操作系统申请虚拟内存空间,操作系统会根据进程申请的虚拟内存空间的大小,确定需分配给进程的物理内存的大小。
步骤304:CPU扫描空闲的物理页。
空闲的物理页即未分配的物理页。在CPU中,通常会保存一个物理页表,用于记录物理内存中物理页的分配情况,实现时,可以通过该表确定出空闲的物理页。
步骤305:CPU根据确定出的物理内存的大小,从空闲的物理页中确定待分配给该进程的第一物理页。
通过步骤302~305即可实现当需要为进程分配物理内存时,从空闲的物理页中确定分配给进程的第一物理页。
步骤306:当确定出的第一物理页为至少两个,且确定出的第一物理页中存在物理页号不连续的第一物理页时,CPU向存储控制器发送调整指令。
该调整指令用于指示存储控制器对物理内存中的至少一对第二物理页进行交换处理,每对第二物理页包括物理页号不连续的第一物理页中的一个和一个非空闲物理页,使得交换后得到的第一物理页与至少与另一个第一物理页连续。
在本实施例中,该调整指令携带第一物理页号和第二物理页号,该存储指令用于指示存储控制器交换第一物理页号对应的内部页号和第二物理页号对应的内部页号。
具体地,该调整指令可以为page_swap(pfn1,pfn2)指令,其中pfn1用于指示第一物理页号(例如可以为第二物理页中第一物理页的物理页号),pfn2用于指示第二物理页号(例如可以为第二物理页中非空闲的物理页的物理页号)。
实现时,每个调整指令中可以包括一对或多对第二物理页的物理页号(即包括多个第一物理页号和多个第二物理页号),当一个调整指令中包括多对第二物理页的物理页号时,例如,可以采用分号将多对第二物理页的物理页号隔开。
其中,物理页号不连续的第一物理页,可以是与第一物理页中比当前第一物理页的物理页号小的物理页号不连续,也可以是与第一物理页中比当前第一物理页的物理页号大的物理页号不连续,还可以是与第一物理页中比当前第一物理页的物理页号大以及比当前第一物理页的物理页号小的物理页号均不连续。具体对哪些第一物理页进行调整,可以根据实际需要配置调整策略,本发明对比不作限制。
步骤307:存储控制器执行调整指令。
在本实施例中,如前所述,存储控制器中设有物理页号和内部页号的映射表,当存储控制器收到该page_swap(pfn1,pfn2)指令时,即将映射表中,第一物理页号对应的内部页号修改为第二物理页号对应的内部页号,同时将第二物理页号对应的内部页号修改为第一物理页号对应的内部页号,修改后,第一物理页号对应的物理页变为非空闲的物理页,而第二物理页号对应的物理页即为交换后得到的第一物理页。
执行该步骤307以后,操作系统所看到的效果是对两个物理页的数据进行了交换。
可选地,在实现时,存储控制器执行调整指令之后,还可以向CPU发送响应消息,该响应消息用于指示调整指令是否执行成功。
步骤308:CPU在该进程的TLB页表中添加一条表项,添加的该条表项中记录了至少两个连续的第一物理页合并为一个大物理页后与该进程的虚拟页的映射关系。
容易知道,在该步骤308之前,该方法还包括更新主存中的该进程的页表。进程的页表中对应进程的每一个虚拟页有一个表项,表项的内容包含该虚拟页所在的主存页面的地址(物理页号),以及指示该虚拟页是否调入主存的有效位。在本实施例中,表项还可以包括页的大小。
需要说明的是,在实际应用中,对于连续的多个第一物理页,CPU可以将其作为一个表项添加到TLB页表中,也可以将连续的多个第一物理页分为多个表项添加到该进程的TLB页表中,例如,对于连续的10个第一物理页,CPU可以将10个第一物理页拼接为一个大物理页,然后将其作为一个表项添加到TLB页表中,也可以将10个第一物理页拼接为两个大物理页(例如,两个大物理页包括5个物理页,或者,两个大物理页中,一个包括4个物理页,一个包括6个物理页)。也就是说,构成大物理页的个数可以根据实际需要进行设置,本发明对此不作限制,只要满足包括至少两个连续的第一物理页的条件即可。
下面对前述步骤305-308进行举例说明。三个物理页的物理页号分别为Page_A、Page_B和Page_C,其对应的内部页号分别为Page_0、Page_1和Page_2,Page_A、Page_B和Page_C连续。
假设扫描空闲的物理页后,得到Page_A和Page_C对应的物理页为空闲的物理页,而Page_B对应的物理页已被其他进程占用,此时确定将Page_A和Page_C对应的物理页分配给该进程(即作为第一物理页)。
若按照现有的内存分配方式,需要使用2个TLB表项对Page_A和Page_C对应的物理页分别进行映射,而在本实施例中,两个第一物理页的物理页号(Page_A和Page_C)是不连续的,在这种情况下,CPU向存储控制器发送page_swap(Page_B,Page_C)指令,存储控制器收到该指令后,修改其中存储的物理页号和内部页号的对应表,将Page_B修改为与Page2对应,而将Page_C修改为与page1对应,由于物理页对应的物理页号是固定不变的,所以该操作实际上相当于两个物理页(Page_B和Page_C对应的物理页)对应的内部页号有所改变,从而使得两个第一物理页对应的物理页号变为连续。将这两个物理页号连续的第一物理页合并为一个大物理页,添加到TLB表项中。也就是说,原本需要采用两条TLB表项进行映射的情况变为只需要采用一条TLB表项即可实现,该大物理页包括Page_A对应的物理页和交换后得到的Page_B对应的物理页,也就是说,该大物理页与该进程的两个虚拟页对应。
步骤309:CPU向存储控制器发送访存请求,该访存请求包括进程号、起始物理地址和长度信息。
容易知道,该访存请求通常还包括操作类型,例如读操作、写操作。
实现时,当进程需要访问虚拟内存时,CPU会产生待访问的虚拟地址,虚拟地址的高位为逻辑页号,低位为页内偏移量;然后,CPU会将虚拟地址转换为物理地址,转换过程如下:首先根据页表查找到逻辑页号对应的物理页号,用物理页号作为物理地址的高字段,在与虚拟地址的页内偏移量拼接,就构成了完整的物理地址。CPU得到完整的物理地址后,根据该物理地址生成访存请求,并将生成的访存请求发送给存储控制器。
步骤310:存储控制器将访存请求中的起始物理地址转化为内部地址。
如前所述,物理地址的高位为物理页号,低位为页内偏移量;具体地,该步骤310可以包括:
存储控制器根据起始物理地址确定出物理页号;
然后根据物理页号和内部页号的映射表确定起始物理页号对应的内部页号;
将内部页号与页内偏移量拼接,得到起始物理地址对应的内部地址。
在实现时,该步骤310可以在访存请求位于存储控制器的队列中时完成,因此,不会影响物理内存的访问效率。
步骤311:存储控制器根据得到的内部地址访问物理内存。
存储控制器访问物理内存后,将该内部地址对应的数据调入缓存(Cache)中。
需要说明的是,在本实施例中,物理页号和内部页号的映射表保存在存储控制器中,由存储控制器执行复位指令、调整指令以及物理地址和内部地址的转换,在其他实施例中,本发明的方法还可以应用于例如片上网络(Network-on-chip,简称NoC),在NoC中,物理页号和内部页号的映射表可以保存在片内路由器中,由片内路由器执行复位指令、调整指令以及物理地址和内部地址的转换。
本发明实施例通过先确定分配给进程的第一物理页,然后对物理页号不连续的第一物理页进行交换处理,进而使得交换后得到的第一物理页与另一个物理页是连续的,这样,可以将连续的至少两个第一物理页合并为一个大物理页,作为一个表项添加到进程的TLB页表中,由于表项对应的页面尺寸变大,所以可以减少该进程在地址映射时,所使用的TLB表项的数量,进而减小TLB缺页开销,并且由于TLB表项对应的页面尺寸是根据实际情况实时调整的,与现有的大页面技术相比,因此能够更有效地减少缺页开销。此外,本发明实施例通过为物理页配置物理页号和内部页号,并在存储控制器内设置物理页号和物理页号的映射表,在对物理页号不连续的第一物理页进行调整时,只需修改映射表中的映射关系,不需要在存储控制器内部进行数据传输,所以系统延迟小。另外,本发明实施例对操作系统的改动少,易于推广应用。
实施例四
本发明实施例提供了一种内存管理方法,适用于图1所示的内存管理系统。在本实施例中,内存管理器为存储控制器,操作系统将主存的物理地址空间划分为多个物理页,并为每个物理页分配一个物理页号,存储控制器根据该物理页号访问物理内存。参见图5,该方法包括:
步骤401:系统初始化时,CPU划分物理页和虚拟页。
该步骤401与前述步骤301相同,在此省略详细描述。
步骤402:当需要为进程分配物理内存时,CPU从空闲的物理页中确定分配给进程的第一物理页。
该步骤402的实现过程与前述步骤302~305相同,在此不再赘述。
步骤403:当确定出的第一物理页为至少两个,且确定出的第一物理页中存在物理页号不连续的第一物理页时,CPU向存储控制器发送调整指令。
该调整指令用于指示存储控制器对物理内存中的至少一对第二物理页进行交换处理,每对第二物理页包括物理页号不连续的第一物理页中的一个和一个非空闲的物理页,使得交换后得到的第一物理页与至少与另一个第一物理页连续。
在本实施例中,该调整指令携带第一物理页号和第二物理页号,该存储指令用于指示存储控制器交换交换第一物理页号对应的物理页内的数据和第二物理页号对应的物理页内的数据。
步骤404:存储控制器执行调整指令。
具体地,在实现时,假设第一物理页号对应的物理页为第一物理页,第二物理页号的物理页为非空闲的物理页,由于第一物理页是空闲的物理页,所以存储控制器通过将第二物理页号对应的物理页的数据传输到第一物理页号对应的物理页,即可完成该调整指令。交换后,第一物理页号对应的物理页变为非空闲的物理页,而第二物理页号对应的物理页为空闲的物理页,即交换后得到的第一物理页。
可选地,在实现时,存储控制器执行调整指令之后,还可以向CPU发送响应消息,该响应消息用于指示调整指令是否执行成功。
步骤405:CPU在该进程的TLB页表中添加一条表项,添加的该条表项中记录了至少两个连续的第一物理页合并为一个大物理页后与该进程的虚拟页的映射关系。
容易知道,在该步骤405之前,该方法还包括更新主存中的该进程的页表。
步骤406:CPU向存储控制器发送访存请求,该访存请求包括进程号、起始物理地址和长度信息。
该步骤406与前述步骤309相同,在此不再赘述。
步骤407:存储控制器根据访存请求中的起始物理地址和长度信息,访问物理内存。
本发明实施例通过先确定分配给进程的第一物理页,然后对物理页号不连续的第一物理页进行交换处理,进而使得交换后得到的第一物理页与另一个物理页是连续的,这样,可以将连续的至少两个第一物理页合并为一个大物理页,作为一个表项添加到进程的TLB页表中,由于表项对应的页面尺寸变大,所以可以减少该进程在地址映射时,所使用的TLB表项的数量,进而减小TLB缺页开销,并且由于TLB表项对应的页面尺寸是根据实际情况实时调整的,与现有的大页面技术相比,因此能够更有效地减少缺页开销。另外,本发明实施例对操作系统的改动少,易于推广应用。
实施例五
本发明实施例提供了一种内存管理装置,可以用于实现实施例一提供的方法,如图6所示,该装置包括:内存分配模块501、发送模块502和表项处理模块503。
其中,内存分配模块501,用于当需要为进程分配物理内存时,从空闲的物理页中确定分配给所述进程的第一物理页。
发送模块502,用于当内存分配模块501确定出的第一物理页为至少两个,且确定出的第一物理页中存在物理页号不连续的第一物理页时,向内存管理器发送调整指令,该调整指令用于指示内存管理器对物理内存中的至少一对第二物理页进行交换处理,每对第二物理页包括物理页号不连续的第一物理页中的一个和一个非空闲的物理页,使得交换后得到的第一物理页与至少另一个所述第一物理页是连续的;
表项处理模块503,用于在进程的TLB页表中添加一条表项,该表项中记录了至少两个连续的第一物理页合并为一个大物理页后与进程的虚拟页的映射关系,该大物理页包括交换后得到的第一物理页。
本发明实施例通过先确定分配给进程的第一物理页,然后对物理页号不连续的第一物理页进行交换处理,进而使得交换后得到的第一物理页与另一个物理页是连续的,这样,可以将连续的至少两个第一物理页合并为一个大物理页,作为一个表项添加到进程的TLB页表中,从而可以减少该进程在地址映射时,所使用的TLB表项的数量,进而减少TLB缺页开销。另外,本发明实施例对操作系统的改动少,易于推广应用。
实施例六
本发明实施例提供了一种内存管理装置,可以用于实现实施例三或四中CPU执行的步骤。如图7所示,该装置包括:
内存分配模块601、发送模块602和表项处理模块603。
其中,内存分配模块601,用于当需要为进程分配物理内存时,从空闲的物理页中确定分配给所述进程的第一物理页。
发送模块602,用于当内存分配模块601确定出的第一物理页为至少两个,且确定出的第一物理页中存在物理页号不连续的第一物理页时,向内存管理器发送调整指令,该调整指令用于指示内存管理器对物理内存中的至少一对第二物理页进行交换处理,每对第二物理页包括物理页号不连续的第一物理页中的一个和一个非空闲的物理页,使得交换后得到的第一物理页与至少另一个所述第一物理页是连续的;
表项处理模块603,用于在进程的TLB页表中添加一条表项,该表项中记录了至少两个连续的第一物理页合并为一个大物理页后与进程的虚拟页的映射关系,该大物理页包括交换后得到的第一物理页。
在本发明实施例的第一种实现方式中,内存管理器中设有物理页号和内部页号的映射表,调整指令携带第一物理页号和第二物理页号,存储指令用于指示内存管理器交换第一物理页号和第二物理页号对应的内部页号,内存管理器用于根据内部页号访问物理内存(该实现方式可以参见实施例二,在此省略详细描述)。
在该第一种实现方式中,发送模块602还可以用于,向内存管理器发送复位指令,该复位指令用于指示内存管理器创建物理页号和内部页号的映射表。
在该第一种实现方式中,内存管理器可以为内存控制器或者片上网络的路由器。
在本发明实施例的第二种实现方式中,调整指令携带第一物理页号和第二物理页号,调整指令用于指示内存管理器交换第一物理页号对应的物理页内的数据和第二物理页号对应的物理页内的数据(该实现方式可以参见实施例三,在此省略详细描述)。
在该第二种实现方式中,内存管理器可以为内存控制器。
本发明实施例通过先确定分配给进程的第一物理页,然后对物理页号不连续的第一物理页进行交换处理,进而使得交换后得到的第一物理页与另一个物理页是连续的,这样,可以将连续的至少两个第一物理页合并为一个大物理页,作为一个表项添加到进程的TLB页表中,从而可以减少该进程在地址映射时,所使用的TLB表项的数量,进而减少TLB缺页开销。另外,本发明实施例对操作系统的改动少,易于推广应用。
实施例七
本发明实施例提供了一种内存管理装置,可以用于实现实施例二提供的方法,如图8所示,该装置包括:接收模块701和执行模块702。
其中,接收模块701用于接收调整指令,该调整指令用于指示内存管理器对所述物理内存中的至少一对第二物理页进行交换处理,每对第二物理页包括物理页号不连续的第一物理页中的一个和一个非空闲的物理页,第一物理页为待分配给进程的空闲的物理页。
执行模块702,用于根据接收模块701接收到的调整指令,对物理内存中的物理页进行交换处理,使得交换后得到的第一物理页与至少另一个第一物理页是连续的。
本发明实施例通过先确定分配给进程的第一物理页,然后对物理页号不连续的第一物理页进行交换处理,进而使得交换后得到的第一物理页与另一个物理页是连续的,这样,可以将连续的至少两个第一物理页合并为一个大物理页,作为一个表项添加到进程的TLB页表中,从而可以减少该进程在地址映射时,所使用的TLB表项的数量,进而减少TLB缺页开销。另外,本发明实施例对操作系统的改动少,易于推广应用。
实施例八
本发明实施例提供了一种内存管理装置,可以用于实现实施例三或四中内存控制器执行的步骤。参见图9,该装置包括:接收模块801和执行模块802。
其中,接收模块801用于接收调整指令,该调整指令用于指示内存管理器对所述物理内存中的至少一对第二物理页进行交换处理,每对第二物理页包括物理页号不连续的第一物理页中的一个和一个非空闲的物理页,第一物理页为待分配给进程的空闲的物理页。
执行模块802,用于根据接收模块801接收到的调整指令,对物理内存中的物理页进行交换处理,使得交换后得到的第一物理页与至少另一个第一物理页是连续的。
在本发明实施例的第一种实现方式中,内存管理器中设有物理页号和内部页号的映射表,该调整指令携带第一物理页号和第二物理页号,该调整指令用于指示内存管理器交换第一物理页号和所述第二物理页号对应的内部页号,内存管理器用于根据内部页号访问物理内存。
在该第一种实现方式中,接收模块801还可以用于,接收复位指令,所述复位指令用于指示所述内存管理器创建所述物理页号和内部页号的映射表;
执行模块802还可以用于,根据复位指令创建物理页号和内部页号的映射表。
在该第一种实现方式中,内存管理器可以为内存控制器或者片上网络的路由器(该实现方式可以参见实施例四,在此省略详细描述)。
进一步地,在该第一种实现方式中,该装置还可以包括:地址转换模块803和访存模块804。
此时,接收模块801还可以用于,接收访存指令,该访存指令包括起始物理地址和长度信息。地址转换模块803用于根据所述物理页号和内部页号的映射表,将访存指令中的的起始物理地址转换为内部地址。访存模块804,用于根据地址转换模块803得到的内部地址访问物理内存。
在本发明实施例的第二种实现方式中,调整指令携带第一物理页号和第二物理页号,调整指令用于指示内存管理器交换第一物理页号对应的物理页内的数据和第二物理页号对应的物理页内的数据(该实现方式可以参见实施例四,在此省略详细描述)。
在该第二种实现方式中,内存管理器可以为内存控制器。
本发明实施例通过先确定分配给进程的第一物理页,然后对物理页号不连续的第一物理页进行交换处理,进而使得交换后得到的第一物理页与另一个物理页是连续的,这样,可以将连续的至少两个第一物理页合并为一个大物理页,作为一个表项添加到进程的TLB页表中,从而可以减少该进程在地址映射时,所使用的TLB表项的数量,进而减少TLB缺页开销。另外,本发明实施例对操作系统的改动少,易于推广应用。
实施例九
本发明实施例提供了一种内存管理装置,参见图10,该装置包括处理器1001、存储器1002、总线1003和通信接口1004。其中,存储器1002用于存储计算机执行指令,处理器1001与存储器1002通过总线1003连接,当所述计算机运行时,处理器1001执行存储器1002存储的所述计算机执行指令,以使所述计算机执行实施例一或实施例三或实施例四中CPU所执行的方法。
本发明实施例通过先确定分配给进程的第一物理页,然后对物理页号不连续的第一物理页进行交换处理,进而使得交换后得到的第一物理页与另一个物理页是连续的,这样,可以将连续的至少两个第一物理页合并为一个大物理页,作为一个表项添加到进程的TLB页表中,从而可以减少该进程在地址映射时,所使用的TLB表项的数量,进而减少TLB缺页开销。另外,本发明实施例对操作系统的改动少,易于推广应用。
实施例十
本发明实施例提供了一种内存管理装置,参见图11,该装置包括处理器1101、存储器1102、总线1103和通信接口1104。其中,存储器1102用于存储计算机执行指令,处理器1101与存储器1102通过总线1103连接,当所述计算机运行时,处理器1101执行存储器1102存储的所述计算机执行指令,以使所述计算机执行实施例二或实施例三或实施例四中内存控制器所执行的方法。
本发明实施例通过先确定分配给进程的第一物理页,然后对物理页号不连续的第一物理页进行交换处理,进而使得交换后得到的第一物理页与另一个物理页是连续的,这样,可以将连续的至少两个第一物理页合并为一个大物理页,作为一个表项添加到进程的TLB页表中,从而可以减少该进程在地址映射时,所使用的TLB表项的数量,进而减少TLB缺页开销。另外,本发明实施例对操作系统的改动少,易于推广应用。
实施例十一
本发明实施例提供了一种内存管理系统,参见图12,该系统包括:CPU1201和内存控制器1202;
其中,CPU1201包括实施例五、六或九提供的内存管理装置;
内存控制器1202包括实施例七、八或十提供的内存管理装置。
本发明实施例通过先确定分配给进程的第一物理页,然后对物理页号不连续的第一物理页进行交换处理,进而使得交换后得到的第一物理页与另一个物理页是连续的,这样,可以将连续的至少两个第一物理页合并为一个大物理页,作为一个表项添加到进程的TLB页表中,从而可以减少该进程在地址映射时,所使用的TLB表项的数量,进而减少TLB缺页开销。另外,本发明实施例对操作系统的改动少,易于推广应用。
实施例十二
本发明实施例提供了一种片上网络,参见图13,该片上网络包括:
多个处理器1301、多个路由器1302和多个内存控制器1303,处理器1301通过路由器1302与内存控制器1303连接;
其中,处理器1301包括实施例五、六或九提供的内存管理装置;路由器1302包括实施例七、八或十提供的内存管理装置。
本发明实施例通过先确定分配给进程的第一物理页,然后对物理页号不连续的第一物理页进行交换处理,进而使得交换后得到的第一物理页与另一个物理页是连续的,这样,可以将连续的至少两个第一物理页合并为一个大物理页,作为一个表项添加到进程的TLB页表中,从而可以减少该进程在地址映射时,所使用的TLB表项的数量,进而减少TLB缺页开销。另外,本发明实施例对操作系统的改动少,易于推广应用。
需要说明的是:上述实施例提供的内存管理装置在进行内存管理时,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将装置的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。另外,上述实施例提供的内存管理装置与内存管理方法实施例属于同一构思,其具体实现过程详见方法实施例,这里不再赘述。
上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。
以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

Claims (22)

1.一种内存分配方法,其特征在于,所述方法包括:
当需要为进程分配物理内存时,从空闲的物理页中确定分配给所述进程的第一物理页;
当确定出的所述第一物理页为至少两个,且确定出的所述至少两个第一物理页中存在物理页号不连续的第一物理页时,向内存管理器发送调整指令,所述调整指令用于指示所述内存管理器对所述物理内存中的至少一对第二物理页进行交换处理,每对所述第二物理页包括所述物理页号不连续的第一物理页中的一个和一个非空闲的物理页,使得交换后得到的第一物理页与至少另一个所述第一物理页是连续的;
在所述进程的地址转换缓冲区TLB页表中添加一条表项,所述表项中记录了至少两个连续的所述第一物理页合并为一个大物理页后与所述进程的虚拟页的映射关系,所述大物理页包括所述交换后得到的第一物理页。
2.根据权利要求1所述的方法,其特征在于,所述内存管理器中设有物理页号和内部页号的映射表,所述调整指令携带第一物理页号和第二物理页号,所述调整指令用于指示所述内存管理器交换所述第一物理页号和所述第二物理页号对应的内部页号,所述内存管理器用于根据所述内部页号访问所述物理内存。
3.根据权利要求2所述的方法,其特征在于,所述方法还包括:
向所述内存管理器发送复位指令,所述复位指令用于指示所述内存管理器创建所述物理页号和内部页号的映射表。
4.根据权利要求1所述的方法,其特征在于,所述调整指令携带第一物理页号和第二物理页号,所述调整指令用于指示所述内存管理器交换所述第一物理页号对应的物理页内的数据和所述第二物理页号对应的物理页内的数据。
5.一种内存管理方法,其特征在于,所述方法包括:
内存管理器接收调整指令,所述调整指令用于指示所述内存管理器对物理内存中的至少一对第二物理页进行交换处理,每对所述第二物理页包括物理页号不连续的第一物理页中的一个和一个非空闲的物理页,所述第一物理页为待分配给进程的空闲的物理页;
根据所述调整指令对物理内存中的物理页进行交换处理,使得交换后得到的第一物理页与至少另一个所述第一物理页是连续的。
6.根据权利要求5所述的方法,其特征在于,所述内存管理器中设有物理页号和内部页号的映射表,所述调整指令携带第一物理页号和第二物理页号,所述调整指令用于指示所述内存管理器交换所述第一物理页号和所述第二物理页号对应的内部页号,所述内存管理器用于根据所述内部页号访问所述物理内存。
7.根据权利要求6所述的方法,其特征在于,所述方法还包括:
接收复位指令,所述复位指令用于指示所述内存管理器创建所述物理页号和内部页号的映射表;
根据复位指令创建所述物理页号和内部页号的映射表。
8.根据权利要求6所述的方法,其特征在于,所述方法还包括:
接收访存指令,所述访存指令包括起始物理地址和长度信息;
根据所述物理页号和内部页号的映射表,将所述访存指令中的的起始物理地址转换为内部地址;
根据所述内部地址访问所述物理内存。
9.根据权利要求5所述的方法,其特征在于,所述调整指令携带第一物理页号和第二物理页号,所述调整指令用于指示所述内存管理器交换所述第一物理页号对应的物理页内的数据和所述第二物理页号对应的物理页内的数据。
10.一种内存管理装置,其特征在于,所述装置包括:
内存分配模块,用于当需要为进程分配物理内存时,从空闲的物理页中确定分配给所述进程的第一物理页;
发送模块,用于当所述内存分配模块确定出的所述第一物理页为至少两个,且确定出的所述第一物理页中存在物理页号不连续的第一物理页时,向内存管理器发送调整指令,所述调整指令用于指示所述内存管理器对所述物理内存中的至少一对第二物理页进行交换处理,每对所述第二物理页包括所述物理页号不连续的第一物理页中的一个和一个非空闲的物理页,使得交换后得到的第一物理页与至少另一个所述第一物理页是连续的;
表项处理模块,用于在所述进程的地址转换缓冲区TLB页表中添加一条表项,所述表项中记录了至少两个连续的所述第一物理页合并为一个大物理页后与所述进程的虚拟页的映射关系,所述大物理页包括所述交换后得到的第一物理页。
11.根据权利要求10所述的装置,其特征在于,所述内存管理器中设有物理页号和内部页号的映射表,所述调整指令携带第一物理页号和第二物理页号,所述调整指令用于指示所述内存管理器交换所述第一物理页号和所述第二物理页号对应的内部页号,所述内存管理器用于根据所述内部页号访问所述物理内存。
12.根据权利要求11所述的装置,其特征在于,所述发送模块还用于,向所述内存管理器发送复位指令,所述复位指令用于指示所述内存管理器创建所述物理页号和内部页号的映射表。
13.根据权利要求10所述的装置,其特征在于,所述调整指令携带第一物理页号和第二物理页号,所述调整指令用于指示所述内存管理器交换所述第一物理页号对应的物理页内的数据和所述第二物理页号对应的物理页内的数据。
14.一种内存管理装置,其特征在于,所述装置包括:
接收模块,用于接收调整指令,所述调整指令用于指示内存管理器对物理内存中的至少一对第二物理页进行交换处理,每对所述第二物理页包括物理页号不连续的第一物理页中的一个和一个非空闲的物理页,所述第一物理页为待分配给进程的空闲的物理页;
执行模块,用于根据所述接收模块接收到的所述调整指令,对物理内存中的物理页进行交换处理,使得交换后得到的第一物理页与至少另一个所述第一物理页是连续的。
15.根据权利要求14所述的装置,其特征在于,所述内存管理器中设有物理页号和内部页号的映射表,所述调整指令携带第一物理页号和第二物理页号,所述调整指令用于指示所述内存管理器交换所述第一物理页号和所述第二物理页号对应的内部页号,所述内存管理器用于根据所述内部页号访问所述物理内存。
16.根据权利要求15所述的装置,其特征在于,所述接收模块还用于,接收复位指令,所述复位指令用于指示所述内存管理器创建所述物理页号和内部页号的映射表;
所述执行模块还用于,根据复位指令创建所述物理页号和内部页号的映射表。
17.根据权利要求15所述的装置,其特征在于,所述接收模块还用于,接收访存指令,所述访存指令包括起始物理地址和长度信息;
所述装置还包括:
地址转换模块,用于根据所述物理页号和内部页号的映射表,将所述访存指令中的的起始物理地址转换为内部地址;
访存模块,用于根据所述地址转换模块得到的所述内部地址访问所述物理内存。
18.根据权利要求14所述的装置,其特征在于,所述调整指令携带第一物理页号和第二物理页号,所述调整指令用于指示所述内存管理器交换所述第一物理页号对应的物理页内的数据和所述第二物理页号对应的物理页内的数据。
19.一种内存管理装置,其特征在于,所述装置包括:处理器、存储器、总线和通信接口;所述存储器用于存储计算机执行指令,所述处理器与所述存储器通过所述总线连接,当所述计算机运行时,所述处理器执行所述存储器存储的所述计算机执行指令,以使所述计算机执行如权利要求1~4任意一项所述的方法。
20.一种内存管理装置,其特征在于,所述装置包括:处理器、存储器、总线和通信接口;所述存储器用于存储计算机执行指令,所述处理器与所述存储器通过所述总线连接,当所述计算机运行时,所述处理器执行所述存储器存储的所述计算机执行指令,以使所述计算机执行如权利要求5~9任意一项所述的方法。
21.一种内存管理系统,其特征在于,所述系统包括:
中央处理器和内存控制器;
其中,所述中央处理器包括如权利要求10-13任一项或权利要求19所述的内存管理装置;
所述内存控制器包括如权利要求14-18任一项或权利要求20所述的内存管理装置。
22.一种片上网络,其特征在于,所述片上网络包括:
多个处理器、多个路由器和多个内存控制器,所述处理器通过所述路由器与所述内存控制器连接;
所述处理器包括如权利要求10-13任一项或权利要求19所述的内存管理装置;
所述路由器包括如权利要求14-18任一项或权利要求20所述的内存管理装置。
CN201480037710.XA 2014-08-08 2014-08-08 内存管理方法、装置和系统、以及片上网络 Active CN105518631B (zh)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/CN2014/083966 WO2016019566A1 (zh) 2014-08-08 2014-08-08 内存管理方法、装置和系统、以及片上网络

Publications (2)

Publication Number Publication Date
CN105518631A CN105518631A (zh) 2016-04-20
CN105518631B true CN105518631B (zh) 2019-04-12

Family

ID=55263043

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201480037710.XA Active CN105518631B (zh) 2014-08-08 2014-08-08 内存管理方法、装置和系统、以及片上网络

Country Status (2)

Country Link
CN (1) CN105518631B (zh)
WO (1) WO2016019566A1 (zh)

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108139966B (zh) * 2016-05-03 2020-12-22 华为技术有限公司 管理转址旁路缓存的方法和多核处理器
CN108139981B (zh) * 2016-08-11 2020-08-14 华为技术有限公司 一种页表缓存tlb中表项的访问方法,及处理芯片
WO2018094675A1 (en) 2016-11-25 2018-05-31 The Procter & Gamble Company Wearable article having elastic belt
CN107066393B (zh) * 2017-01-12 2020-06-09 安徽大学 提高地址映射表中映射信息密度的方法
CN108205472B (zh) * 2017-08-15 2021-11-05 珠海市魅族科技有限公司 内存释放方法、释放装置、计算机装置以及可读存储介质
CN112560086B (zh) * 2020-12-11 2022-11-08 海光信息技术股份有限公司 一种用于密码协处理器的配置方法、装置、cpu及电子设备
CN115129459A (zh) * 2021-03-24 2022-09-30 华为技术有限公司 一种内存管理的方法及设备
CN113778688B (zh) * 2021-09-17 2024-06-14 Oppo广东移动通信有限公司 内存管理系统、内存管理方法、内存管理装置
CN116266159B (zh) * 2021-12-17 2024-07-05 华为技术有限公司 一种缺页异常处理方法和电子设备

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7277999B1 (en) * 2004-08-12 2007-10-02 Vmware, Inc. Restricting memory access to protect data when sharing a common address space
CN101859279A (zh) * 2010-05-21 2010-10-13 北京星网锐捷网络技术有限公司 一种内存分配、释放方法及装置
CN102122268A (zh) * 2010-01-07 2011-07-13 华为技术有限公司 一种虚拟机内存分配访问方法、装置和系统
CN102567228A (zh) * 2010-11-25 2012-07-11 三星电子株式会社 存储系统以及相关的操作方法

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8417913B2 (en) * 2003-11-13 2013-04-09 International Business Machines Corporation Superpage coalescing which supports read/write access to a new virtual superpage mapping during copying of physical pages

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7277999B1 (en) * 2004-08-12 2007-10-02 Vmware, Inc. Restricting memory access to protect data when sharing a common address space
CN102122268A (zh) * 2010-01-07 2011-07-13 华为技术有限公司 一种虚拟机内存分配访问方法、装置和系统
CN101859279A (zh) * 2010-05-21 2010-10-13 北京星网锐捷网络技术有限公司 一种内存分配、释放方法及装置
CN102567228A (zh) * 2010-11-25 2012-07-11 三星电子株式会社 存储系统以及相关的操作方法

Also Published As

Publication number Publication date
CN105518631A (zh) 2016-04-20
WO2016019566A1 (zh) 2016-02-11

Similar Documents

Publication Publication Date Title
CN105518631B (zh) 内存管理方法、装置和系统、以及片上网络
US8250254B2 (en) Offloading input/output (I/O) virtualization operations to a processor
WO2020247042A1 (en) Network interface for data transport in heterogeneous computing environments
CN102073533B (zh) 支持动态二进制翻译的多核体系结构
JP6514329B2 (ja) メモリアクセス方法、スイッチ、およびマルチプロセッサシステム
CN112632069B (zh) 哈希表数据存储管理方法、装置、介质和电子设备
CN108139966B (zh) 管理转址旁路缓存的方法和多核处理器
US9584628B2 (en) Zero-copy data transmission system
US20220179792A1 (en) Memory management device
CN113760560A (zh) 一种进程间通信方法以及进程间通信装置
Tianhua et al. The design and implementation of zero-copy for linux
US11157191B2 (en) Intra-device notational data movement system
US20200371827A1 (en) Method, Apparatus, Device and Medium for Processing Data
US9081764B2 (en) Iimplementing DMA migration of large system memory areas
CN113010452A (zh) 一种高效且支持QoS的虚拟内存架构
US10936219B2 (en) Controller-based inter-device notational data movement system
US11281612B2 (en) Switch-based inter-device notational data movement system
WO2023241655A1 (zh) 数据处理方法、装置、电子设备以及计算机可读存储介质
CN118363900B (zh) 一种具备扩展性和灵活性的数据流加速设备及方法
CN118860913A (zh) 一种gpu访问分布式存储的方法、装置及计算机设备
CN115858422A (zh) 页表的处理方法、电子设备和存储介质
CN117271107A (zh) 数据处理方法、装置、电子设备以及计算机可读存储介质
KR20230152501A (ko) 플래시 기반 저장 장치 및 그 카피백 동작 방법
CN117806526A (zh) 数据迁移方法、装置、芯片以及计算机可读存储介质
CN118484408A (zh) 基于DPU芯片virtio多Virtqueues描述符的获取方法

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant