页交换方法、装置和电子设备与流程

文档序号:30970625发布日期:2022-08-02 21:12阅读:来源:国知局

技术特征:
1.一种页交换方法,其中,所述方法包括:为第一类型线程分配每线程页表,以记录所述第一类型线程本地访问的页面的页面映射;为所述第一类型线程所属的进程分配全局页表以记录所述进程中的线程访问的页面的页面映射;在进行页交换时执行缺页处理的情况下,检测所述全局页表的页表项在所述全局页表中的共享状态,其中,所述全局页表中的页表项附有cpu核心位图,以跟踪在转换查找缓冲区中缓存所述页表项的所有cpu核心,从而确定页表项的共享状态;根据检测到的所述全局页表的页表项在所述全局页表中的共享状态,基于所述缺页处理所涉及的每线程页表和全局页表,对调度所述缺页处理所涉及的线程的cpu核心的转换查找缓冲区执行击落处理。2.根据权利要求1所述的方法,其中,所述根据检测到的所述全局页表的页表项在所述全局页表中的共享状态,基于所述缺页处理所涉及的每线程页表和全局页表,对调度所述缺页处理所涉及的线程的cpu核心的转换查找缓冲区执行击落处理,包括:基于在对所述转换查找缓冲区执行击落时出现转换查找缓冲区未命中的情况,利用在所述转换查找缓冲区中缓存所述页表项的cpu核心中的内存管理单元遍历遵照相同的页表结构的每线程页表;基于所述cpu核心中的内存管理单元的遍历结果,基于所述缺页处理所涉及的每线程页表和全局页表,对调度所述缺页处理所涉及的线程的cpu核心的转换查找缓冲区执行击落处理。3.根据权利要求1或2所述的方法,其中,所述缺页处理包括以下处理至少之一:对于加载有每线程页表的cpu核心,在缺页错误为每线程页表中缺少对应的页表项的情况下,通过所述全局页表使得所述每线程页表获取所缺少的页表项;对于加载有每线程页表的cpu核心,在缺页错误为每线程页表和所述全局页表中缺少对应的页表项的情况下,通过操作系统内核获取有效页表项,将获取的页表项填充到所述每线程页表,利用指向所述每线程页表的所述页表项的特定前向指针标记所述全局页表中的页表项;对于加载有全局页表的cpu核心,在缺页错误为指向所述每线程页表的页表项的特定前向指针无效的情况下,通过操作系统内核将所述页表项的值复制到所述全局页表,在所述页表项的cpu核心位图将所述页表项标记为共享;对于加载有全局页表的cpu核心,在缺页错误为页表项不存在的情况下,通过操作系统内核获取有效页表项,将获取的页表项填充到所述每线程页表,利用指向所述每线程页表的所述页表项的特定前向指针标记所述全局页表中的页表项。4.根据权利要求1或2所述的方法,其中,所述根据检测到的所述全局页表的页表项在所述全局页表中的共享状态,基于所述缺页处理所涉及的每线程页表和全局页表,对调度所述缺页处理所涉及的线程的cpu核心的转换查找缓冲区执行击落处理,包括:根据检测到的所述全局页表的页表项在所述全局页表中处于私有状态,调度所述缺页处理所涉及的线程的cpu核心将从自身的转换查找缓冲区中击落所述页表项并且跳过处理器间中断广播,或者
根据检测到的所述全局页表的页表项在所述全局页表中处于共享状态,调度所述缺页处理所涉及的线程的cpu核心将仅向所述cpu核心位图中记录的cpu核心发送处理器间中断请求,并且调度所述缺页处理所涉及的线程的cpu核心和所述cpu核心位图中记录的cpu核心调度除第一类型线程以外的第二类型线程。5.根据权利要求1所述的方法,其中,所述第一类型线程由具有轻量级并发的编程语言的运行时创建和启动。6.根据权利要求5所述的方法,其中,所述方法还包括:利用操作系统内核和所述具有轻量级并发的编程语言的运行时将缺页处理中执行的换出线程导出为换出轻量级线程,以通过所述运行时将所述换出轻量级线程与所述运行时管理和调度的用户轻量级线程一起调度,使得所述换出轻量级线程被异步执行。7.根据权利要求6所述的方法,其中,所述方法还包括:为所述换出轻量级线程被执行的多个步骤插入安全点;在启动所述运行时时在操作系统内核中分配一组内存区域来存储换出状态信息;所述换出轻量级线程从该组内存区域中分配子内存区域并将所述换出轻量级线程的执行状态保存到所述子内存区域;通过应用程序内核在每个安全点向所述运行时返回作为所述子内存区域的索引的标识;通过所述运行时在重新调度所述换出轻量级线程时将所述标识传递回所述操作系统内核。8.根据权利要求6或7所述的方法,其中,所述通过所述运行时将所述换出轻量级线程与所述运行时管理和调度的用户轻量级线程一起调度,包括:通过所述运行时为所述换出轻量级线程分配比所述用户轻量级线程更低的优先级。9.根据权利要求1或2所述的方法,其中,在混合存储架构中执行页交换,所述混合存储架构为至少包括动态随机存取存储器dram和非易失性存储器nvm的混合存储架构。10.一种页交换装置,其中,所述装置包括:每线程页表分配模块,被配置为为第一类型线程分配每线程页表,以记录所述第一类型线程本地访问的页面的页面映射;全局页表分配模块,被配置为为所述第一类型线程所属的进程分配全局页表以记录所述进程中的线程访问的页面的页面映射;页表项检测模块,被配置为在进行页交换时执行缺页处理的情况下,检测所述全局页表的页表项在所述全局页表中的共享状态,其中,所述全局页表中的页表项附有cpu核心位图,以跟踪在转换查找缓冲区中缓存所述页表项的所有cpu核心,从而确定页表项的共享状态;转换查找缓冲区执行击落处理模块,被配置为根据检测到的所述全局页表的页表项在所述全局页表中的共享状态,基于所述缺页处理所涉及的每线程页表和全局页表,对调度所述缺页处理所涉及的线程的cpu核心的转换查找缓冲区执行击落处理。11.一种电子设备,包括存储器和处理器;其中,所述存储器用于存储一条或多条计算机指令,其中,所述一条或多条计算机指令被所述处理器执行以实现权利要求1-9任一项所述的方法步骤。
12.一种可读存储介质,其上存储有计算机指令,该计算机指令被处理器执行时实现权利要求1-9任一项所述的方法步骤。13.一种计算机程序产品,其包括计算机指令,该计算机指令被处理器执行时实现权利要求1-9任一项所述的方法步骤。

技术总结
本公开实施例公开了页交换方法、装置和电子设备。在本公开描述的页交换方法中,可以通过以下方式减少混合存储结构的换出开销:(1)使用每线程页表和TLB击落操作来跟踪页面映射缓存并减少TLB击落开销;(2)通过操作系统内核和具有垃圾收集和轻量级并发的编程语言运行时,将换出视为具有垃圾收集和轻量级并发的编程语言运行时调度的轻量级线程,以异步执行换出。出。出。


技术研发人员:乔一凡 陆庆达
受保护的技术使用者:阿里巴巴(中国)有限公司
技术研发日:2022.03.25
技术公布日:2022/8/1
当前第2页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1