一种内存管理方法、装置以及内存控制器的制造方法
【技术领域】
[0001] 本发明涉及计算机领域,尤其涉及一种内存管理方法、装置W及内存控制器。
【背景技术】
[0002] 在计算机系统中,内存控制器主要负责CPU与内存之间的数据交互,而内存的实 地址管理则由操作系统来实现。操作系统为某个进程分配虚地址,若在快速翻译缓冲器 (TLB,TranslationLook-asideBuffer)中未缓存有该虚地址,且内存管理单元(MMU, Memo巧Management化it)未查找到该虚地址的页表项,则产生缺页中断(pagefault), CPU陷入操作系统内核。缺页中断后,操作系统进入中断服务程序,进行现场保护,将程序计 数器等当前指令的各种状态信息压入找,然后检查虚地址的合法性,如果判断该访问非法, 操作系统通常会向进程反馈一个信号或直接杀死该进程。
[0003] 现有技术中,一旦MMU未查找到该虚地址的页表项,直接触发缺页中断(page fault),使CPU长时间陷入操作系统内核。缺页中断后,操作系统要进行一系列的处理,加 重操作系统的负荷,并且管理效率较低。
【发明内容】
[0004] 本发明实施例提供了一种内存管理方法、装置W及内存控制器,用于提高内存的 管理效率。
[0005] 第一方面,本发明提供了一种内存管理方法,该方法应用在内存管理装置上,内存 管理装置位于内存控制器中,方法包括:
[0006] 接收处理器发送的访存请求,访存请求携带虚地址;
[0007] 查找快速翻译缓冲器TLB中是否缓存有访存请求携带的虚地址对应的页表,若 有,则从页表中获取与虚地址对应的实地址,若无,则获取页表的基地址域并查找页表,若 页表有访存请求携带的虚地址,则获取与虚地址对应的实地址,其中,页表包括虚地址与实 地址的对应关系,TLB位于内存管理装置中;
[0008] 若页表中没有访存请求携带的虚地址,则确定虚地址是否合法,并在确定虚地址 合法时,申请笠白页。
[0009] 在第一方面的第一种可能的实现方式中,还包括;若申请空白页成功,则启动内存 读写;若申请空白页失败,则选择替换页并提供给操作系统W使得操作系统对页面进行替 换。
[0010] 结合第一方面,或第一方面的第一种可能的实现方式,在第二种可能的实现方式 中,确定虚地址是否合法,具体包括;确定虚地址是否落在已分配的虚地址空间中,若是,贝U 确定虚地址合法;若否,则查找虚拟内存地址VMA空间中是否存在虚地址,若存在,则确定 虚地址合法。
[0011] 结合第一方面、第一方面的第一种可能的实现方式或第二种可能的实现方式,在 第Η种可能的实现方式中,申请空白页之前,还包括:统计缓存的每个空白页在预置时间内 的使用频率;当申请空白页时,选择在预置时间内使用频率最低的空白页。
[0012] 结合第一方面的第一种可能的实现方式,在第四种可能的实现方式中,申请空 白页成功之后,还包括:更新页表W使得页表包括访存请求携带的虚地址,并将页表存入 TLB。
[0013] 结合第一方面、第一方面的第一至第四任一种可能的实现方式,在第五种可能的 实现方式中,若查找到页表有访存请求携带的虚地址,则在获取与虚地址对应的实地址的 步骤之前,还包括;将页表存入TLB。
[0014] 第二方面,本发明提供了一种内存管理装置,该内存管理装置位于内存控制器中, 内存管理装置包括;快速翻译缓冲器TLB、内存管理单元MMU和微控制器;
[0015]TLB,用于接收处理器发送的访存请求,访存请求携带虚地址,并查找TLB中是否 缓存有访存请求携带的虚地址对应的页表,若有,则从页表中获取与虚地址对应的实地址, 其中,页表包括虚地址与实地址的对应关系;
[0016]MMU,用于当TLB中未缓存有访存请求携带的虚地址对应的页表时,获取页表的基 地址域并查找页表,并在页表有虚地址时,获取与虚地址对应的实地址;
[0017] 微控制器,用于当页表无虚地址时,确定虚地址是否合法,并在确定虚地址合法 时,申请空白页。
[0018] 在第二方面的第一种可能的实现方式中,微控制器,还用于当申请空白页成功,贝U 启动内存读写,申请空白页失败,则选择替换页并提供给操作系统W使得操作系统对页面 进行替换。
[0019] 结合第二方面,或第二方面的第一种可能的实现方式,在第二种可能的实现方式 中,微控制器,具体用于确定虚地址是否落在已分配的虚地址空间中,若是,则确定虚地址 合法,若否,则查找虚拟内存地址VMA空间中是否存在虚地址,若存在,则确定虚地址合法。
[0020] 结合第二方面、第二方面的第一种可能的实现方式或第二种可能的实现方式,在 第Η种可能的实现方式中,微控制器,还用于接收访存请求,获得与访存请求携带的虚地址 对应的进程的页表的基地址域,并将基地址域发送给MMU,W使得MMU根据基地址域查找页 表。
[0021] 结合第二方面、第二方面的第一至第Η任一种可能的实现方式,在第四种可能的 实现方式中,微控制器,还用于统计缓存的每个空白页在预置时间内的使用频率,当申请空 白页时,选择在预置时间内使用频率最低的笠白页。
[0022] 第Η方面,本发明提供了一种内存控制器,其包括:如第二方面提供的任一种内存 管理装置。
[0023] 从W上技术方案可W看出,本发明实施例具有W下优点:
[0024] 本发明的技术方案中,由存储管理装置对内存进行管理,可W减轻操作系统的负 担,当存储管理装置确定页表中没有访存请求携带的虚地址时,不触发操作系统的中断,而 是由内存管理装置对内存进行管理,其中,在确定虚地址合法时,申请空白页,该内存管理 装置位于内存控制器中,更靠近物理内存,可W有效提高内存的管理效率。
【附图说明】
[0025]为了更清楚地说明本发明实施例的技术方案,下面将对实施例描述中所需要使用 的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本 领域技术人员来讲,在不付出创造性劳动的前提下,还可W根据送些附图获得其他的附图。
[0026] 图1是本发明实施例可应用的架构示意图;
[0027] 图2是本发明实施例提供的内存管理方法的一个流程示意图;
[0028]图3是本发明实施例中提供的内存管理方法的另一个流程示意图;
[0029] 图4是本发明实施例中提供的内存管理装置的结构示意图。
【具体实施方式】
[0030] 下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完 整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于 本发明中的实施例,本领域技术人员在没有做出创造性劳动前提下所获得的所有其他实施 例,都属于本发明保护的范围。
[0031] 首先,本发明实施例提供的内存管理方法可适用于通信系统,该内存管理方法可 应用在内存管理装置上,该内存管理装置位于内存控制器中。
[0032] 具体可参阅图1,图1是本发明实施例可应用的架构示意图。本发明提出的内存控 制器100可包括内存管理装置101、映射调度器102和物理层协议PHY