内存通道故障检测方法及装置、内存系统及计算机系统制造方法及图纸

技术编号:37631216 阅读:8 留言:0更新日期:2023-05-20 08:52
本申请公开了一种内存通道故障检测方法及装置、内存系统及计算机系统,属于计算机技术领域。控制设备获取内存控制器对内存通道的ECC错误统计信息。当内存通道发生ECC错误的次数超出第一次数阈值时,控制设备控制内存控制器对该内存通道中的内存通道链路进行CRC传输校验,以确定该内存通道链路是否发生故障。控制设备能够基于内存控制器对内存通道的ECC错误统计信息判断该内存通道是否频繁发生错误。控制设备可以触发对频繁发生错误的内存通道中的内存通道链路的CRC传输校验流程,以确定内存通道链路是否发生故障,进而能够明确该内存通道中的故障点在内存通道链路上还是内存模块上,提高了故障定位效率。提高了故障定位效率。提高了故障定位效率。

【技术实现步骤摘要】
内存通道故障检测方法及装置、内存系统及计算机系统


[0001]本申请涉及计算机
,特别涉及一种内存通道故障检测方法及装置、内存系统及计算机系统。

技术介绍

[0002]内存系统包括内存控制器(memory controller)和内存通道(memory channel)。一个内存控制器能够控制一个或多个内存通道。每个内存通道包括一条内存通道链路以及一个或多个内存模块(memory module)。其中,内存通道链路为物理链路,内存通道链路的一端连接内存控制器,另一端连接一个或多个内存模块,以实现内存控制器与内存模块之间的电连接。内存控制器可以通过内存通道链路向内存模块写入数据以及从内存模块读取数据。
[0003]由于数据在内存通道链路上传输或在内存模块中存储时都有可能发生错误,因此通常会在内存模块和内存控制器上设计相应的错误检测和纠错功能。目前通常采用错误检查和纠正(error checking and correction,ECC)校验技术对数据进行校验和纠错。内存控制器为传输到内存模块的数据计算ECC码,在向内存模块写入该数据时,这个ECC码会与该数据一起存储在内存模块中。内存控制器从内存模块读取数据时,会连同读取存储的ECC码,并使用该ECC码来校验读取的数据的正确性,并尝试纠正发生的错误。
[0004]但是,ECC校验技术只能检测出数据在传输和存储的整个过程中发生错误,而无法区分数据错误是发生在传输过程还是存储过程中的,因此需要人工进一步排查内存通道中的故障位置,故障定位效率较低。/>
技术实现思路

[0005]本申请提供了一种内存通道故障检测方法及装置、内存系统及计算机系统,可以解决目前内存通道的故障定位效率较低的问题。
[0006]第一方面,提供了一种内存通道故障检测方法。该方法包括:控制设备获取内存控制器对内存通道的ECC错误统计信息。该ECC错误统计信息用于反映内存通道发生ECC错误的次数。当内存通道发生ECC错误的次数超出第一次数阈值时,控制设备控制内存控制器对内存通道中的内存通道链路进行循环冗余校验(cyclic redundancy check,CRC)传输校验,以确定该内存通道链路是否发生故障。
[0007]本申请中,控制设备能够基于内存控制器对内存通道的ECC错误统计信息判断该内存通道是否频繁发生错误。如果某个内存通道频繁发生错误,控制设备可以触发对该内存通道中的内存通道链路的CRC传输校验流程,以确定内存通道链路是否发生故障,进而能够明确该内存通道中的故障点在内存通道链路上还是内存模块上,无需人工排查内存通道中的故障位置,提高了故障定位效率。
[0008]可选地,ECC错误统计信息包括内存通道发生ECC错误的次数或对内存通道发生ECC错误的次数超出第一次数阈值的状态指示。
[0009]可选地,内存控制器对内存通道中的内存通道链路进行CRC传输校验,包括:内存控制器对内存通道链路进行写内存方向的CRC传输校验;和/或,内存通道中的内存模块具备计算CRC传输校验码的能力,内存控制器控制内存模块对内存通道链路进行读内存方向的CRC传输校验。
[0010]可选地,响应于内存通道链路发生故障,或者,内存控制器对内存通道链路进行CRC传输校验的时长达到时长阈值,控制设备控制内存控制器停止对该内存通道链路进行CRC传输校验。当内存通道链路发生CRC传输校验错误的次数超出第二次数阈值时,可以确定该内存通道链路发生故障。可选地,内存通道链路发生CRC传输校验错误的次数为内存通道链路在写内存方向上发生CRC传输校验错误的次数、内存通道链路在读内存方向上发生CRC传输校验错误的次数或内存通道链路在写内存方向和读内存方向上发生CRC传输校验错误的总次数。
[0011]本申请中,通过设置内存控制器进行CRC传输校验的结束机制,使得内存控制器能够在内存系统的运行过程中及时停止进行CRC传输校验,避免持续降低内存系统的性能,在进行内存通道故障定位的同时,尽可能降低对内存系统的性能影响,提高了内存系统的可用性。
[0012]可选地,控制设备在确定内存通道链路发生故障之后,输出第一故障检测结果。该第一故障检测结果指示内存通道链路发生故障。
[0013]本申请中,在内存通道发生故障时,控制设备能够输出故障点的具体位置。通过向运维人员提供更准确的告警信息,便于运维人员进行故障修复,从而缩短故障恢复时间,提高系统可用性。
[0014]可选地,ECC错误统计信息包括内存通道中发生ECC错误的内存地址。控制设备在确定内存通道链路未发生故障之后,输出第二故障检测结果。该第二故障检测结果指示内存地址对应的内存模块发生故障。
[0015]本申请中,在内存通道发生故障时,控制设备能够输出故障点的具体位置。通过向运维人员提供更准确的告警信息,便于运维人员进行故障修复,从而缩短故障恢复时间,提高系统可用性。
[0016]可选地,当内存通道发生ECC错误的次数超出第一次数阈值时,控制设备输出故障指示,该故障指示用于指示内存通道发生故障。控制设备控制内存控制器对内存通道中的内存通道链路进行CRC传输校验的实现方式,包括:响应于针对内存通道的内存通道链路诊断命令,控制设备控制内存控制器对该内存通道链路进行CRC传输校验。
[0017]本申请中,控制设备可以输出故障指示,由用户决定是否触发内存控制器对该内存通道中的内存通道链路进行CRC传输校验。
[0018]可选地,内存通道链路诊断命令包括第二次数阈值和/或时长阈值,其中,第二次数阈值用于:当内存通道链路发生CRC传输校验错误的次数超出第二次数阈值时,判定内存通道链路发生故障;时长阈值为对内存通道链路进行CRC传输校验的最大允许时长。
[0019]第二方面,提供了一种控制设备。所述控制设备包括多个功能模块,所述多个功能模块相互作用,实现上述第一方面及其各实施方式中的方法。所述多个功能模块可以基于软件、硬件或软件和硬件的结合实现,且所述多个功能模块可以基于具体实现进行任意组合或分割。
[0020]第三方面,提供了一种控制设备,包括:处理器和存储器;
[0021]所述存储器,用于存储计算机程序,所述计算机程序包括程序指令;
[0022]所述处理器,用于调用所述计算机程序,实现上述第一方面及其各实施方式中的方法。
[0023]第四方面,提供了一种内存系统,包括:内存控制器和内存通道。内存控制器用于对内存通道进行ECC校验,并记录内存通道发生ECC错误的次数。内存控制器还用于在接收到针对内存通道的CRC传输校验命令之后,对内存通道中的内存通道链路进行CRC传输校验。
[0024]可选地,内存控制器还用于在内存通道发生ECC错误的次数超出第一次数阈值后,记录状态指示,该状态指示用于指示该内存通道发生ECC错误的次数超出第一次数阈值。
[0025]可选地,内存控制器对内存通道中的内存通道链路进行CRC传输校验,包括:内存控制器对内存通道链路进行写内存方向本文档来自技高网...

【技术保护点】

【技术特征摘要】
1.一种内存通道故障检测方法,其特征在于,应用于控制设备,所述方法包括:获取内存控制器对内存通道的错误检查和纠正ECC错误统计信息,所述ECC错误统计信息用于反映所述内存通道发生ECC错误的次数;当所述内存通道发生ECC错误的次数超出第一次数阈值时,控制所述内存控制器对所述内存通道中的内存通道链路进行循环冗余校验CRC传输校验,以确定所述内存通道链路是否发生故障。2.根据权利要求1所述的方法,其特征在于,所述ECC错误统计信息包括所述内存通道发生ECC错误的次数或对所述内存通道发生ECC错误的次数超出第一次数阈值的状态指示。3.根据权利要求1或2所述的方法,其特征在于,所述内存控制器对所述内存通道中的内存通道链路进行循环冗余校验码CRC传输校验,包括:所述内存控制器对所述内存通道链路进行写内存方向的CRC传输校验;和/或,所述内存通道中的内存模块具备计算CRC传输校验码的能力,所述内存控制器控制所述内存模块对所述内存通道链路进行读内存方向的CRC传输校验。4.根据权利要求1至3任一所述的方法,其特征在于,所述方法还包括:响应于所述内存通道链路发生故障,或者,所述内存控制器对所述内存通道链路进行CRC传输校验的时长达到时长阈值,控制所述内存控制器停止对所述内存通道链路进行CRC传输校验。5.根据权利要求1至4任一所述的方法,其特征在于,所述方法还包括:在确定所述内存通道链路发生故障之后,输出第一故障检测结果,所述第一故障检测结果指示所述内存通道链路发生故障。6.根据权利要求1至4任一所述的方法,其特征在于,所述ECC错误统计信息包括所述内存通道中发生ECC错误的内存地址,所述方法还包括:在确定所述内存通道链路未发生故障之后,输出第二故障检测结果,所述第二故障检测结果指示所述内存地址对应的内存模块发生故障。7.根据权利要求1至6任一所述的方法,其特征在于,所述方法还包括:当所述内存通道发生ECC错误的次数超出所述第一次数阈值时,输出故障指示,所述故障指示用于指示所述内存通道发生故障;所述控制所述内存控制器对所述内存通道中的内存通道链路进行循环冗余校验CRC传输校验,包括:响应于针对所述内存通道的内存通道链路诊断命令,控制所述内存控制器对所述内存通道链路进行CRC传输校验。8.根据权利要求7所述的方法,其特征在于,所述内存通道链路诊断命令包括第二次数阈值和/或时长阈值,其中,所述第二次数阈值用于:当所述内存通道链路发生CRC传输校验错误的次数超出所述第二次数阈值时,判定所述内存通道链路发生故障;所述时长阈值为对所述内存通道链路进行CRC传输校验的最大允许时长。9.一种控制设备,其特征在于,所述控制设备包括:获取模块,用于获取内存控制器对内存通道的错误检查和纠正ECC错误统计信息,所述ECC错误统计信息用于反映所述内存通道发生ECC错误的次数;控制模块,用于当所述内存通道发生ECC错误的次数超出第一次数阈值时,控制所述内
存控制器对所述内存通道中的内存通道链路进行循环冗余校验CRC传输校验,以确定所述内存通道链路是否发生故障。10.根据权利要求9所述的控制设备,其特征在于,所述ECC错误统计信息包括所述内存通道发生ECC错误的次数或对所述内存通道发生ECC错误的次数超出第一次数阈值的状态指示。11.根据权利要求9或10所述的控制设备,其特征在于,所述内存控制器对所述内存通道中的内存通道链路进行循环冗余校验码CRC传输校验,包括:所述内存控制器对所述内存通道链路进行写内存方向的CRC传输校验;和/或,所述内存通道中的内存模块具备计算CRC传输校验码的能力,所述内存控制器控制所述内存模块对所述内存通道链路进行读内存方向的CRC传输校验。12.根据权利要求9至11任一所述的控制设备,其特征在于,所述控制模块,还用于响应于所述内存通道链路发生故障,或者,所述内存控制器对所述内存通道链路进行CRC传输校验的时长达到时长阈值,控制所述内存控制器停...

【专利技术属性】
技术研发人员:韩林刁阳彬张文桂
申请(专利权)人:华为技术有限公司
类型:发明
国别省市:

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

1