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

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

Info

Publication number
CN105518631A
CN105518631A CN201480037710.XA CN201480037710A CN105518631A CN 105518631 A CN105518631 A CN 105518631A CN 201480037710 A CN201480037710 A CN 201480037710A CN 105518631 A CN105518631 A CN 105518631A
Authority
CN
China
Prior art keywords
physical page
page number
physical
memory
instruction
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
Application number
CN201480037710.XA
Other languages
English (en)
Other versions
CN105518631B (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 ( fnl , pfn2 )指令, 其中 pfnl用 于指示第一物理页号(例如可以为第二物理页中第一物理页的物理页号), pfn2 用于指示第二物理页号 (例如可以为第二物理页中非空闲的物理页的物理页 号)。
实现时, 每个调整指令中可以包括一对或多对第二物理页的物理页号(即 包括多个第一物理页号和多个第二物理页号), 当一个调整指令中包括多对第 二物理页的物理页号时, 例如, 可以釆用分号将多对第二物理页的物理页号隔 开。
其中, 物理页号不连续的第一物理页, 可以是与第一物理页中比当前第一 物理页的物理页号小的物理页号不连续, 也可以是与第一物理页中比当前第一 物理页的物理页号大的物理页号不连续,还可以是与第一物理页中比当前第一 物理页的物理页号大以及比当前第一物理页的物理页号小的物理页号均不连 续。 具体对哪些第一物理页进行调整, 可以根据实际需要配置调整策略, 本发 明对比不作限制。
步骤 307: 存储控制器执行调整指令。
在本实施例中, 如前所述, 存储控制器中设有物理页号和内部页号的映射 表, 当存储控制器收到该 page_swap ( pfnl , 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_l 和 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 '爹改为与 pagel对应, 由于物理页对应的物理页号是固定不变的, 所以 该操作实际上相当于两个物理页( 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: 存储控制器执行调整指令。
具体地, 在实现时, H没第一物理页号对应的物理页为第一物理页, 第二 物理页号的物理页为非空闲的物理页, 由于第一物理页是空闲的物理页, 所以 存储控制器通过将第二物理页号对应的物理页的数据传输到第一物理页号对 应的物理页, 即可完成该调整指令。 交换后, 第一物理页号对应的物理页变为 非空闲的物理页, 而第二物理页号对应的物理页为空闲的物理页, 即交换后得 到的第一物理页。
可选地, 在实现时, 存储控制器执行调整指令之后, 还可以向 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 (21)

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

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107066393A (zh) * 2017-01-12 2017-08-18 安徽大学 提高地址映射表中映射信息密度的方法
CN108139966A (zh) * 2016-05-03 2018-06-08 华为技术有限公司 管理转址旁路缓存的方法和多核处理器
CN108139981A (zh) * 2016-08-11 2018-06-08 华为技术有限公司 一种页表缓存tlb中表项的访问方法,及处理芯片
CN108205472A (zh) * 2017-08-15 2018-06-26 珠海市魅族科技有限公司 内存释放方法、释放装置、计算机装置以及可读存储介质
CN112560086A (zh) * 2020-12-11 2021-03-26 海光信息技术股份有限公司 一种用于密码协处理器的配置方法、装置、cpu及电子设备
CN113778688A (zh) * 2021-09-17 2021-12-10 Oppo广东移动通信有限公司 内存管理系统、内存管理方法、内存管理装置
WO2022199560A1 (zh) * 2021-03-24 2022-09-29 华为技术有限公司 一种内存管理的方法及设备
CN116266159A (zh) * 2021-12-17 2023-06-20 华为技术有限公司 一种缺页异常处理方法和电子设备

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2018094675A1 (en) 2016-11-25 2018-05-31 The Procter & Gamble Company Wearable article having elastic belt

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20070067604A1 (en) * 2003-11-13 2007-03-22 Elnozahy Elmootazbellah N Hardware support for superpage coalescing
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 三星电子株式会社 存储系统以及相关的操作方法

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20070067604A1 (en) * 2003-11-13 2007-03-22 Elnozahy Elmootazbellah N Hardware support for superpage coalescing
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 三星电子株式会社 存储系统以及相关的操作方法

Cited By (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10795826B2 (en) 2016-05-03 2020-10-06 Huawei Technologies Co., Ltd. Translation lookaside buffer management method and multi-core processor
CN108139966A (zh) * 2016-05-03 2018-06-08 华为技术有限公司 管理转址旁路缓存的方法和多核处理器
CN108139981A (zh) * 2016-08-11 2018-06-08 华为技术有限公司 一种页表缓存tlb中表项的访问方法,及处理芯片
US10740247B2 (en) 2016-08-11 2020-08-11 Huawei Technologies Co., Ltd. Method for accessing entry in translation lookaside buffer TLB and processing chip
CN107066393A (zh) * 2017-01-12 2017-08-18 安徽大学 提高地址映射表中映射信息密度的方法
CN107066393B (zh) * 2017-01-12 2020-06-09 安徽大学 提高地址映射表中映射信息密度的方法
CN108205472A (zh) * 2017-08-15 2018-06-26 珠海市魅族科技有限公司 内存释放方法、释放装置、计算机装置以及可读存储介质
CN108205472B (zh) * 2017-08-15 2021-11-05 珠海市魅族科技有限公司 内存释放方法、释放装置、计算机装置以及可读存储介质
CN112560086A (zh) * 2020-12-11 2021-03-26 海光信息技术股份有限公司 一种用于密码协处理器的配置方法、装置、cpu及电子设备
CN112560086B (zh) * 2020-12-11 2022-11-08 海光信息技术股份有限公司 一种用于密码协处理器的配置方法、装置、cpu及电子设备
WO2022199560A1 (zh) * 2021-03-24 2022-09-29 华为技术有限公司 一种内存管理的方法及设备
CN113778688A (zh) * 2021-09-17 2021-12-10 Oppo广东移动通信有限公司 内存管理系统、内存管理方法、内存管理装置
CN116266159A (zh) * 2021-12-17 2023-06-20 华为技术有限公司 一种缺页异常处理方法和电子设备
CN116266159B (zh) * 2021-12-17 2024-07-05 华为技术有限公司 一种缺页异常处理方法和电子设备

Also Published As

Publication number Publication date
CN105518631B (zh) 2019-04-12
WO2016019566A1 (zh) 2016-02-11

Similar Documents

Publication Publication Date Title
CN105518631A (zh) 内存管理方法、装置和系统、以及片上网络
CN105740164B (zh) 支持缓存一致性的多核处理器、读写方法、装置及设备
US8250254B2 (en) Offloading input/output (I/O) virtualization operations to a processor
US10114749B2 (en) Cache memory system and method for accessing cache line
US7623134B1 (en) System and method for hardware-based GPU paging to system memory
US20210089470A1 (en) Address translation methods and systems
US20230195633A1 (en) Memory management device
CN112506823B (zh) 一种fpga数据读写方法、装置、设备及可读存储介质
CN101201933B (zh) 绘图处理单元及方法
CN112465689B (zh) 基于可见显存交换区的gpu不可见显存管理方法及系统
CN115374046B (zh) 一种多处理器数据交互方法、装置、设备及存储介质
CN115456862B (zh) 一种用于图像处理器的访存处理方法及设备
CN113836054A (zh) 用于gpu的内存页管理方法和内存页转换方法
US9158692B2 (en) Cache injection directing technique
CN113010452A (zh) 一种高效且支持QoS的虚拟内存架构
CN112256598B (zh) 一种内存分配的方法及装置、内存寻址的方法及装置
JP2003281079A (ja) ページ・テーブル属性によるバス・インタフェース選択
US9081764B2 (en) Iimplementing DMA migration of large system memory areas
CN113157606A (zh) 一种缓存器实现方法、装置和数据处理设备
WO2017031637A1 (zh) 一种内存访问方法、装置和系统
CN116383101A (zh) 内存访问方法、内存管理单元、芯片、设备和存储介质
CN105488012B (zh) 一种基于独占数据的一致性协议设计方法
CN105095105A (zh) 一种Cache分区的方法及装置
CN107861815A (zh) 一种多gpu环境下的数据通信性能优化方法
US11281612B2 (en) Switch-based inter-device notational data movement system

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