一种自动处理故障内存条的方法技术

技术编号:16038028 阅读:53 留言:0更新日期:2017-08-19 19:50
本发明专利技术提供了一种自动处理故障内存条的方法,每条DIMM插槽对应设置一个LED指示灯,每个LED指示灯的负极均接地,每个LED指示灯的正极均与CPLD连接,系统南桥PCH通过GPIO与CPLD连接;系统在开机过程中,CPLD控制DIMM插槽的指示灯状态,并对内存进行在位检测,初始化内存条,发现有内存条故障、内存条类型不被支持等问题,软件程序将对故障内存条进行禁止,通过设置的指示灯来指示对应出现故障的内存条,且程序将进行对下一根内存条进行初始化,直到所有内存条初始化完成,启动系统。采用此技术方案,系统不会因为存在故障内存条而宕机,不影响系统的正常使用,同时将故障内存条通过指示灯进行标识。

【技术实现步骤摘要】
一种自动处理故障内存条的方法
本专利技术属于计算机
,尤其涉及一种自动处理故障内存条的方法。
技术介绍
内存条是服务器主板最重要的部件之一,主板上电启动以后,内存资源还没有被初始化,没有内存资源可以使用,程序在非易失性存储介质中缓慢运行,为了能尽早获取内存资源,将程序复制到内存中快速运行,主板启动后,会优先初始化内存设备,把其他设备初始化工作放在后面。主板上,至少会配置一根内存条,满配时可以达到几十根内存条,主板逐一对每一根内存条初始化,任何一根内存条出现故障,都无法初始化完成,系统就会宕机。主板上电启动后,进行最必要的初始化后,就开始检测内存条是否正常,如果所有插入DIMM插槽上的内存条都是正常的,然后再检查其他设备,例如显示控制器等。在检测内存条过程中,如果检测出没有内存条、有内存条损坏或者有内存条类型不被主板支持等错误,BIOS将停止运行,此时显示控制器还没有被检测,因此显示器不会被点亮。用户所能看到的是主板已经上电,风扇旋转,但是显示器不亮,鼠标键盘无法使用,没有故障点线索,这给用户带来了比较大的麻烦,需要逐一排查问题点,即使排查到内存条的问题,几十根内存条,逐条排查,整个过程需要耗费大量时间,甚至需要设备厂商的技术支持才行。
技术实现思路
针对以上技术问题,本专利技术公开了一种自动处理故障内存条的方法,系统不会因为存在故障内存条而宕机,不影响系统的正常使用,同时将故障内存条通过指示灯进行标识,方便用户排查故障内存条进行替换,大大降低了排查主板错误的技术难度,简单便捷,快速高效。对此,本专利技术采用的技术方案为:一种自动处理故障内存条的方法,每条DIMM插槽对应设置一个LED指示灯,每个LED指示灯的负极均接地,每个LED指示灯的正极均与CPLD连接,系统南桥PCH通过GPIO与CPLD连接;系统在开机过程中,CPLD将GPIO信号解码到对应的DIMM插槽状态,控制对应DIMM插槽的指示灯状态,并采用以下步骤自动处理故障内存条:步骤S1,启动BIOS,对GPIO进行初始化;步骤S2,初始化SMI,初始化内存控制器;步骤S3,将当前的处理器寄存器状态进行保存到存储区,逐一侦测各个DIMM插槽内的内存条是否在位;如果该DIMM插槽的内存条在位,则将该DIMM插槽对应的LED设置为闪烁,并注册周期性SMI程序,初始化该DIMM插槽的内存条;如果该DIMM插槽的内存条不在位,则将该DIMM插槽对应的LED设置为不点亮;步骤S4,如果DIMM插槽内的内存初始化正常,通过CPLD控制该DIMM插槽对应的LED指示灯为点亮状态,清除保存在存储区的处理器寄存器状态数据,卸载周期性内存处理的SMI程序;如果内存初始化在SMI程序的周期时间间隔到来时未完成,则认为内存条初始化出现故障,周期性SMI中断触发,进入SMM系统,执行周期性内存处理的SMI程序,将该故障DIMM插槽的内存禁止,将DIMM插槽的号码n增加1,指向下一个DIMM插槽,并读取存储区中的寄存器状态的数据,退出SMI程序,将所有寄存器值恢复成存储区读取出来的寄存器的值;步骤S5,重复步骤S3~步骤S4的内容进行下一个DIMM插槽的内存的检查。采用此技术方案,针对内存条无法初始化完成,导致系统宕机的问题,给出了解决方案。主板初始化内存条,发现有内存条故障、内存条类型不被支持等问题,软件程序将对故障内存条进行禁止,同时设置指示灯来表明对应DIMM内存条出现故障,程序将进行对下一根内存条进行初始化,直到所有内存条初始化完成,启动系统。应用此方法,系统不会因为存在故障内存条而宕机,不影响系统的正常使用,同时将故障内存条通过指示灯进行标识,方便用户排查故障内存条进行替换,大大降低排查主板错误的技术难度,简单便捷,快速高效。作为本专利技术的进一步改进,所述系统南桥PCH通过LED片选GPIO、LED控制GPIO与CPLD连接;步骤S1中,对GPIO进行初始化后将LED片选GPIO、LED控制GPIO设置为输出功能。作为本专利技术的进一步改进,步骤S3中,所述逐一侦测各个DIMM插槽内的内存条是否在位是通过BIOS读取DIMM插槽的SPD数据,来检测DIMM插槽内存条的在位状态;如果能正常获取有效的SPD数据,表明DIMM的内存条在位,如果不能获取有效SPD数据,表明DIMM插槽上没有内存条在位,并根据DIMM插槽的序号n值,来设置该DIMM插槽对应的LED片选GPIO的输出电平值,传送给CPLD处理,将该DIMM插槽对应的LED设置为不点亮。作为本专利技术的进一步改进,如果该DIMM插槽的内存条不在位,则将该DIMM插槽对应的LED片选GPIO设置为低电平,传送给CPLD处理,将该DIMM插槽对应的LED设置为不点亮;清除存储区存储的处理器寄存器状态数据,接下来判断是否周期性内存处理的SMI程序已经注册,如果有,就将周期性SMI程序卸载掉,如果没有,继续检测是否所有DIMM插槽都完成在位检测。作为本专利技术的进一步改进,步骤S3中,所述处理器寄存器包括CS和IP两个寄存器。作为本专利技术的进一步改进,步骤S5还包括判断是否所有DIMM插槽的内存检查完毕,如果检查完毕,程序结束;如果还有DIMM插槽的内存未检查完成,循环执行步骤S3~步骤S4的内容进行下一个DIMM插槽的内存的检查。作为本专利技术的进一步改进,所述DIMM插槽的数量为n,所述LED指示灯的数量为n,所述LED片选GPIO的数量为x,其中x=log2n;所述LED控制GPIO为1个。作为本专利技术的进一步改进,所述SMI程序的周期为DIMM插槽的内存初始化需要的时间与预留余量时间之和。与现有技术相比,本专利技术的有益效果为:采用本专利技术的技术方案,主板初始化内存条,发现有内存条故障、内存条类型不被支持等问题,软件程序将对故障内存条进行禁止,通过设置的指示灯来指示对应出现故障的DIMM内存条,且程序将进行对下一根内存条进行初始化,直到所有内存条初始化完成,启动系统。应用此方法,解决了现有技术内存条故障无法完成初始化,导致系统宕机的问题;系统不会因为存在故障内存条而宕机,不影响系统的正常使用,同时将故障内存条通过指示灯进行标识,方便用户排查故障内存条进行替换,大大降低排查主板错误的技术难度,简单便捷,快速高效。附图说明图1是本专利技术一种实施例的主板硬件部分改进的结构示意图。图2是本专利技术一种自动处理故障内存条的方法的流程图。具体实施方式下面对本专利技术的较优的实施例作进一步的详细说明。一种自动处理故障内存条的方法,其包括硬件设计部分和BIOS程序部分。如图1所示,硬件设计上,将主板上每一根DIMM插槽旁边放置一个发光二极管,作为指示灯,用以表示DIMM插槽上内存条的状态,有n个DIMM插槽就用n个发光二极管,所有发光二极管负极统一接地,每个发光二极管的正极都连接到CPLD的pin上面,n个发光二极管对应n个CPLDpin角,n个DIMM,需要x个GPIO进行片选,2x=n,x=log2n,例如有32根DIMM,需要片选GPIO的数量x=log232=5,再加上一个指示灯控制GPIO,就是6个GPIO,这6个GPIO从PCH,连接到CPLD,每次当软件设置完GPIO后,CPLD将GPIO信号解码到对应的DIMM插槽和控制指示灯状态。使用CP本文档来自技高网...
一种自动处理故障内存条的方法

【技术保护点】
一种自动处理故障内存条的方法,其特征在于:每条DIMM插槽对应设置一个LED指示灯,每个LED指示灯的负极均接地,每个LED指示灯的正极均与CPLD连接,系统南桥PCH通过GPIO与CPLD连接;系统在开机过程中,CPLD将GPIO信号解码到对应的DIMM插槽状态,控制对应DIMM插槽的指示灯状态,采用以下步骤自动处理故障内存条:步骤S1,启动BIOS,对GPIO进行初始化;步骤S2,初始化SMI,初始化内存控制器;步骤S3,将当前的处理器寄存器状态进行保存到存储区,逐一侦测各个DIMM插槽内的内存条是否在位;如果该DIMM插槽的内存条在位,则将该DIMM插槽对应的LED设置为闪烁,并注册周期性SMI程序,初始化该DIMM插槽的内存条;如果该DIMM插槽的内存条不在位,则将该DIMM插槽对应的LED设置为不点亮;步骤S4,如果DIMM插槽内的内存初始化正常,通过CPLD控制该DIMM插槽对应的LED指示灯为点亮状态,清除保存在存储区的处理器寄存器状态数据,卸载周期性内存处理的SMI程序;如果内存初始化在SMI程序的周期时间间隔到来时未完成,则认为内存条初始化出现故障,周期性SMI中断触发,进入SMM系统,执行周期性内存处理的SMI程序,将该故障DIMM插槽的内存禁止,将DIMM插槽的号码n增加1,指向下一个DIMM插槽,并读取存储区中的寄存器状态的数据,退出SMI程序,将所有寄存器值恢复成存储区读取出来的寄存器的值;步骤S5,重复步骤S3~步骤S4的内容进行下一个DIMM插槽的内存的检查。...

【技术特征摘要】
1.一种自动处理故障内存条的方法,其特征在于:每条DIMM插槽对应设置一个LED指示灯,每个LED指示灯的负极均接地,每个LED指示灯的正极均与CPLD连接,系统南桥PCH通过GPIO与CPLD连接;系统在开机过程中,CPLD将GPIO信号解码到对应的DIMM插槽状态,控制对应DIMM插槽的指示灯状态,采用以下步骤自动处理故障内存条:步骤S1,启动BIOS,对GPIO进行初始化;步骤S2,初始化SMI,初始化内存控制器;步骤S3,将当前的处理器寄存器状态进行保存到存储区,逐一侦测各个DIMM插槽内的内存条是否在位;如果该DIMM插槽的内存条在位,则将该DIMM插槽对应的LED设置为闪烁,并注册周期性SMI程序,初始化该DIMM插槽的内存条;如果该DIMM插槽的内存条不在位,则将该DIMM插槽对应的LED设置为不点亮;步骤S4,如果DIMM插槽内的内存初始化正常,通过CPLD控制该DIMM插槽对应的LED指示灯为点亮状态,清除保存在存储区的处理器寄存器状态数据,卸载周期性内存处理的SMI程序;如果内存初始化在SMI程序的周期时间间隔到来时未完成,则认为内存条初始化出现故障,周期性SMI中断触发,进入SMM系统,执行周期性内存处理的SMI程序,将该故障DIMM插槽的内存禁止,将DIMM插槽的号码n增加1,指向下一个DIMM插槽,并读取存储区中的寄存器状态的数据,退出SMI程序,将所有寄存器值恢复成存储区读取出来的寄存器的值;步骤S5,重复步骤S3~步骤S4的内容进行下一个DIMM插槽的内存的检查。2.一种自动处理故障内存条的方法,其特征在于:所述系统南桥PCH通过LED片选GPIO、LED控制GPIO与CPLD连接;步骤S1中,对GPIO进行初始化后将LED片选GPIO、LED控制GPIO设置为输出功能。3.根据权利要求2所述的自动处...

【专利技术属性】
技术研发人员:马井彬
申请(专利权)人:深圳市同泰怡信息技术有限公司
类型:发明
国别省市:广东,44

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

1