基于TLB‑MISS的NUMA内存管理容错方法技术

技术编号:12704145 阅读:96 留言:0更新日期:2016-01-14 00:23
本发明专利技术提供了一种基于TLB‑MISS的NUMA内存管理容错方法,包括:处理器上电进入微代码处理入口;判断内存在位情况,计算在位内存物理地址中最低地址与0的差值;保存所述差值;清除处理器上所有TLB条目;执行处理器内核的虚地址入口,以开始运行处理器内核代码;在运行处理器内核代码的过程中触发处理器TLB‑MISS异常,进入TLB‑MISS异常处理入口以执行TLB‑MISS异常处理程序;在TLB‑MISS异常处理程序中根据所述差值计算虚地址和物理地址的对应关系,并根据所述对应关系填入正确的TLB条目;退出TLB‑MISS异常处理程序,返回触发TLB‑MISS异常的代码并重新执行所述触发TLB‑MISS异常的代码。

【技术实现步骤摘要】

本专利技术涉及处理器
,具体涉及一种基于TLB-MISS的NUMA内存管理容错方法。
技术介绍
多核或者多处理器机器上具有多个内存节点时,可能由于内存控制器芯片或者内存颗粒故障导致某个或者某些内存节点无法使用,如果处理器存储控制器不具备自定义内存地址能力,而是根据内存控制器芯片编号或者内存颗粒位置固定编排内存物理地址,就将形成内存地址空洞。NUMA (Non-Uniform Memory Access,非统一内存访问)指的是这样一种技术,其中多核或者多处理器机器上具有多个内存节点,从处理器发出的对不同内存节点的访问时间不相同。NUMA操作系统一般提供了非连续物理地址的管理,但操作系统内核自身却必须处于从0开始的低段物理内存中。而操作系统内核引导对物理地址的地址编排较为敏感,尤其是系统内核自身所处内存的物理地址。操作系统内核通常假设自身所处的内存位于从0开始的物理内存的低段内存地址中,比如1MB的位置。如果机器上由于内存空洞没有配置这段物理地址,会导致内核引导的失败。
技术实现思路
本专利技术所要解决的技术问题是针对现有技术中存在上述缺陷,提出了一种基于TLB-MISS的NUMA内存管理容错方法,从而解决了 NUMA操作系统上,由于内存控制器故障或者颗粒故障导致低段物理地址缺失时的操作系统引导问题。而且,根据本专利技术的基于TLB-MISS的NUMA内存管理容错方法可以由处理器微代码实现,且对操作系统内核完全透明。根据本专利技术,提供了一种基于TLB-MISS的NUMA内存管理容错方法,其特征在于包括:第一步骤:处理器上电进入微代码处理入口 ;第二步骤:判断内存在位情况,计算在位内存物理地址中最低地址与0的差值;第三步骤:保存所述差值;第四步骤:清除处理器上所有TLB条目;第五步骤:执行处理器内核的虚地址入口,以开始运行处理器内核代码;第六步骤:在运行处理器内核代码的过程中触发处理器TLB-MISS异常,进入TLB-MISS异常处理入口以执行TLB-MISS异常处理程序;第七步骤:在TLB-MISS异常处理程序中根据所述差值计算虚地址和物理地址的对应关系,并根据所述对应关系填入正确的TLB条目;第八步骤:退出TLB-MISS异常处理程序,返回触发TLB-MISS异常的代码并重新执行所述触发TLB-MISS异常的代码。优选地,在第三步骤将所述差值填入处理器内部寄存器。由此,本专利技术能够有效地解决低段物理地址未配置的情况下操作系统内核引导的容错问题。具体地,根据本专利技术的基于TLB-MISS的NUMA内存管理容错方法解决了 NUMA操作系统上,由于内存控制器故障或者颗粒故障导致低段物理地址缺失时的操作系统引导问题。而且,根据本专利技术的基于TLB-MISS的NUMA内存管理容错方法可以由处理器微代码实现,且对操作系统内核完全透明。【附图说明】结合附图,并通过参考下面的详细描述,将会更容易地对本专利技术有更完整的理解并且更容易地理解其伴随的优点和特征,其中:图1示意性地示出了根据本专利技术优选实施例的基于TLB-MISS的NUMA内存管理容错方法的流程图。需要说明的是,附图用于说明本专利技术,而非限制本专利技术。注意,表示结构的附图可能并非按比例绘制。并且,附图中,相同或者类似的元件标有相同或者类似的标号。【具体实施方式】为了使本专利技术的内容更加清楚和易懂,下面结合具体实施例和附图对本专利技术的内容进行详细描述。 操作系统所使用的内存从逻辑上看有两个方面,一是操作系统内核自身所处的内存,二是操作系统管理的可供分配的物理内存。操作系统内核自身也是一个可执行文件构成的,当处理器引导时,会有更加底层的Bootloader代码(操作系统内核运行之前运行的一段小程序)将内核可执行文件加载到固定的物理地址区域。通常情况下,Bootloader代码和内核均假设内核所处的内存物理地址是固定的,当该段物理地址由于某种原因不存在时,会发生引导故障。本专利技术提出的技术即针对上述情况。下面将描述本专利技术的具体优选实施例。图1示意性地示出了根据本专利技术优选实施例的基于TLB-MISS的NUMA内存管理容错方法的流程图。如图1所示,根据本专利技术优选实施例的基于TLB-MISS的NUMA内存管理容错方法包括:第一步骤S1:处理器上电进入微代码处理入口 ;第二步骤S2:判断内存的可访问情况(即,针对所有内存判断内存是否可访问),并且计算在位内存(即,可访问内存)的物理地址中最低地址与0的差值;其中,例如,可能由于部分内存条未插在对应的内存插槽上而导致内存区域不可访问,或是例如由于某些焊接在PCB板上的内存颗粒因为某种故障导致的部分内存区域不可问。第三步骤S3:保存所述差值;例如,可以在第三步骤S3将所述差值填入处理器内部寄存器;第四步骤S4:清除处理器上所有TLB条目;其中,TLB (Translat1n Lookaside Buffer,段表后备缓冲器或翻译后援缓冲器)是一种处理器内部缓存,用于存放虚拟地址到物理地址的映射关系,而且还可用于存储单元加速虚拟地址到物理地址的代换速度。第五步骤S5:执行处理器内核程序的第一条指令,所述第一条指令的地址为虚地址(即,执行处理器内核的虚地址入口),由此开始运行处理器内核代码;换言之,内核的虚地址入口指的是内核的第一条指令,该指令对应的地址为虚地址。第六步骤S6:在运行处理器内核代码的过程中触发处理器TLB-MISS异常,进入TLB-MISS异常处理入口以执行TLB-MISS异常处理程序;“TLB-MISS”指的是处理器将虚拟地址在代换到物理地址时,未在TLB中查找到代换关系。第七步骤S7:在TLB-MISS异常处理程序中根据所述差值计算虚地址和物理地址的对应关系,并根据所述对应关系填入正确的TLB条目;第八步骤S8:退出TLB-MISS异常处理程序,返回触发TLB-MISS异常的代码并重新执行所述触发TLB-MISS异常的代码。上述处理流程的关键步骤有两处,一是第二步骤S2,一处是第七步骤S7。第二步骤S2是初始化时的“预处理”阶段,此时尚未运行内核代码。预先根据内存在位情况进行计算,得到在位物理地址中最低地址与0的差值。第七步骤S7是首次执行内核代码时触发,是运行时的“后处理”阶段,处理器会根据第二步骤S2中计算得到的差值装填正确的条目,确保内核可执行。根据本专利技术优选实施例的基于TLB-MISS的NUMA内存管理容错方法结合采用“预处理”和“后处理”的方式,解决了 NUMA操作系统上,由于内存控制器故障或者颗粒故障导致低段物理地址缺失时的操作系统引导问题,操作系统内核无需修改虚地址入口,对操作系统内核透明。本专利技术的优点在于针对内存控制器故障或者颗粒故障导致低段物理地址缺失时的操作系统引导问题,结合采用“预处理”和“后处理”的方式,预处理针对内存在位情况,预先计算出差值,“后处理”针对运行时的内核代码执行,触发TLB-MISS并装填正确的条目,保证内核正确执行。“预处理”和“后处理”结合进行,性能开销小。另外,该技术在处理器微代码中实现,对内核程序完全透明。可以理解的是,虽然本专利技术已以较佳实施例披露如上,然而上述实施例并非用以限定本专利技术。对于任何熟悉本领域的技术人员而言,在不脱离本专利技术技术方案范围情况下,都可利用上述揭示本文档来自技高网...
<a href="http://www.xjishu.com/zhuanli/55/CN105243029.html" title="基于TLB‑MISS的NUMA内存管理容错方法原文来自X技术">基于TLB‑MISS的NUMA内存管理容错方法</a>

【技术保护点】
一种基于TLB‑MISS的NUMA内存管理容错方法,其特征在于包括:第一步骤:处理器上电进入微代码处理入口;第二步骤:判断内存在位情况,计算在位内存物理地址中最低地址与0的差值;第三步骤:保存所述差值;第四步骤:清除处理器上所有TLB条目;第五步骤:执行处理器内核的虚地址入口,以开始运行处理器内核代码。

【技术特征摘要】

【专利技术属性】
技术研发人员:王星焱郑岩黄高阳陈斐朱蕾
申请(专利权)人:无锡江南计算技术研究所
类型:发明
国别省市:江苏;32

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

1
相关领域技术
  • 暂无相关专利