内存管理方法和设备技术

技术编号:12398321 阅读:67 留言:0更新日期:2015-11-26 03:59
本发明专利技术实施例提供一种内存管理方法和设备,包括:内存管理器接收内存访问请求,所述内存访问请求携带虚地址;若所述内存管理器在页表缓存TLB和内存中没有查找到所述虚地址对应的页表项,则判断所述虚地址的缺页类型;若所述虚地址的缺页类型为空白页缺页,则所述内存管理器为所述虚地址分配对应的页面,所述空白页缺页是指所述虚地址未被分配对应的页面;所述内存管理器将所述虚地址对应的页表项更新到所述内存和所述TLB中。内存管理器通过判断虚地址的缺页类型,在空白页缺页时并不产生缺页中断,而是为该虚地址分配对应的页面,因此,本实施例的方法能够降低缺页中断发生的次数,从而提高了内存管理效率。

【技术实现步骤摘要】

本专利技术实施例涉及计算机技术,尤其涉及一种内存管理方法和设备
技术介绍
在现代计算机系统中,内存管理任务由操作系统和内存管理单元(MemoryManagement Unit,简称 MMU)、页表缓存(Translat1n Lookaside Buffer,简称 TLB)共同实现。现有的内存管理流程中,操作系统负责绝大部分的内存管理任务,而操作最频繁的虚实地址映射和查页面的任务由TLB和MMU等硬件来实现。这种内存管理方式有两个固有的瓶颈:(I)TLB与MMU处在处理器访问cache的关键路径上,处理器每次访问cache必须先访问TLB,一旦TLB miss增多,MMU会频繁的查页面,很容易造成系统瓶颈。(2)缺页中断处理与绑定,一旦MMU查页面失败,将触发缺页中断,处理器将花大量时间处理缺页中断。Iinux系统查页面的平均时间是35.8个处理周期,Iinux系统执行缺页中断的平均时间是2687个处理周期。如果能够避免或降低上述两种瓶颈的发生次数,将会对整个计算机系统的内存管理效率有很大的提升。现有技术中,提出了一种有效的内存管理技术:全虚cache (Virtual indexedVirtual Tagged)技术。全虚cache的主要思想是将TLB和MMU等硬件从访问cache的关键路径中移除,程序直接采用虚地址索引cache,只有cache miss后才由TLB进行虚实地址翻译,采用实地址访问cache。该方法能够缩短处理器访问cache的关键路径,同时,由于TLB不在访问cache的关键路径上,TLB可以做得很大,TLB的命中率增高,从而有效地降低了 TLB miss的次数。因此,全虚cache可以有效地缓解上述的第一个固有瓶颈。但是,其缺页中断的处理方式仍然和处理器绑定,无论是由MMU硬件还是操作系统执行查页面,只要查页面失败,就会产生缺页中断,处理器将大量时间浪费在处理缺页中断,使得内存管理效率低。
技术实现思路
本专利技术实施例提供一种内存管理方法和设备,能够提高内存管理效率。本专利技术第一方面提供一种内存管理方法,包括:内存管理器接收内存访问请求,所述内存访问请求携带虚地址,所述虚地址为操作系统在调用进程时为所述进程分配的;若所述内存管理器在页表缓存TLB和内存中没有查找到所述虚地址对应的页表项,则所述内存管理器判断所述虚地址的缺页类型;若所述虚地址的缺页类型为空白页缺页,则所述内存管理器为所述虚地址分配对应的页面,所述空白页缺页是指所述虚地址未被分配对应的页面;所述内存管理器将所述虚地址对应的页表项更新到所述内存和所述TLB中,所述页表项包括所述虚地址和所述页面的实地址的映射关系。结合本专利技术第一方面,在本专利技术第一方面的第一种可能的实现方式中,所述内存访问请求还携带所述进程的进程号,所述内存管理器根据所述进程号在所述内存中查找所述进程对应的页面,并根据所述虚地址在所述进程对应的页面中查找所述虚地址对应的页表项。结合本专利技术第一方面以及第一方面的第一种可能的实现方式,在本专利技术第一方面的第二种可能的实现方式中,所述内存管理器为所述虚地址分配对应的页面,包括:如果所述内存中有空白页面,所述内存管理器将所述空白页面作为所述虚地址对应的页面;如果所述内存中没有空白页面,所述内存管理器从已分配的页面中选择一个待替换页面,将所述待替换页面的虚地址修改为所述内存访问请求携带的虚地址,所述修改后的待替换页面为所述虚地址对应的页面。结合本专利技术第一方面的第二种可能的实现方式,在本专利技术第一方面的第三种可能的实现方式中,所述方法还包括:所述内存管理器判断所述待替换页面内是否有脏数据;如果所述待替换页面内没有脏数据,所述内存管理器将所述待替换页面的虚地址修改为所述内存访问请求携带的虚地址;如果所述待替换页面内有脏数据,所述内存管理器将所述待替换页面的地址信息发送给所述操作系统,以使所述操作系统根据所述待替换页面的地址信息将所述待替换页面的数据从所述内存中替换至空闲位置,在所述操作系统将所述待替换页面的数据从所述内存中替换至所述空闲位置之后,所述内存管理器将所述待替换页面的虚地址修改为所述内存访问请求携带的虚地址。结合本专利技术第一方面的第二种可能的实现方式,在本专利技术第一方面的第四种可能的实现方式中,所述方法还包括:所述内存管理器判断所述待替换页面内是否有脏数据;如果所述待替换页面内没有脏数据,所述内存管理器将所述待替换页面的虚地址修改为所述内存访问请求携带的虚地址;如果所述待替换页面内有脏数据,所述内存管理器根据所述待替换页面的地址信息将所述待替换页面的数据从所述内存中替换至空闲位置,其中,所述内存管理器和所述空闲位置的访问器位于同一个设备中,所述空闲位置的访问器用于在所述内存管理器的控制下访问所述空闲位置;在所述内存管理器将所述待替换页面的数据从所述内存中替换至所述空闲位置之后,所述内存管理器将所述待替换页面的虚地址修改为所述内存访问请求携带的虚地址。结合本专利技术第一方面,在本专利技术第一方面的第五种可能的实现方式中,所述方法还包括:如果所述虚地址的缺页类型为已有数据缺页,则所述内存管理器通知所述操作系统发生缺页中断,所述已有数据缺页是指所述虚地址已被分配对应的页面;所述内存管理器为所述虚地址分配对应的页面,更新所述内存和所述TLB中所述虚地址对应的页表项,所述页表项包括所述虚地址和所述页面的实地址的映射关系。结合本专利技术第一方面以及第一方面的第一种至第五种可能的实现方式,在本专利技术第一方面的第六种可能的实现方式中,若执行所述进程的处理器核发生了变化,所述方法还包括:所述内存管理器接收所述操作系统发送的所述变化后的处理器核的信息。结合本专利技术第一方面以及第一方面的第一种至第六种可能的实现方式,在本专利技术第一方面的第七种可能的实现方式中,当所述操作系统结束所述进程时,所述方法还包括:所述内存管理器接收所述操作系统发送的内存释放指令,并根据所述内存释放指令释放所述进程占用的内存。结合本专利技术第一方面以及第一方面的第一种至第七种可能的实现方式,在本专利技术第一方面的第八种可能的实现方式中,所述内存管理器集成在内存控制器中,或者,集成在基于消息式内存系统的缓冲调度器中。本专利技术第二方面提供一种内存管理方法,所述方法包括:操作系统接收内存管理器发送的待替换页面的地址信息,根据所述待替换页面的地址信息将所述待替换页面的数据从内存中替换至空闲位置,所述待替换页面的地址信息是内存管理器在为内存访问请求携带的虚地址选择的所述待替换页面内有脏数据时发送的;在所述操作系统将所述待替换页面的数据从所述内存中替换至所述空闲位置后,所述操作系统通知所述内存管理器所述待替换页面可以使用,以使所述内存管理器将所述待替换页面的虚地址修改为所述内存访问请求携带的虚地址。结合本专利技术第二方面,在本专利技术第二方面的第一种可能的实现方式中,当发生缺页中断时,所述方法还包括:所述操作系统接收所述内存管理器发送的缺页中断通知,根据所述缺页中断通知保护现场,其中,所述缺页中断通知是所述内存管理器确定所述虚地址的缺页类型为已有数据缺页时发送的。本专利技术第三方面提供一种内存管理器,包括:接收模块,用于接收内存访问请求,所述内存访问请求携带虚地址,所述虚地址为操作系统在调用进程时为本文档来自技高网
...

【技术保护点】
一种内存管理方法,其特征在于,包括:内存管理器接收内存访问请求,所述内存访问请求携带虚地址,所述虚地址为操作系统在调用进程时为所述进程分配的;若所述内存管理器在页表缓存TLB和内存中没有查找到所述虚地址对应的页表项,则所述内存管理器判断所述虚地址的缺页类型;若所述虚地址的缺页类型为空白页缺页,则所述内存管理器为所述虚地址分配对应的页面,所述空白页缺页是指所述虚地址未被分配对应的页面;所述内存管理器将所述虚地址对应的页表项更新到所述内存和所述TLB中,所述页表项包括所述虚地址和所述页面的实地址的映射关系。

【技术特征摘要】

【专利技术属性】
技术研发人员:刘垚黄永兵陈明宇崔泽汉陈荔城阮元
申请(专利权)人:华为技术有限公司中国科学院计算技术研究所
类型:发明
国别省市:广东;44

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1