一种异常时序定位方法、装置及主板与流程

文档序号:11153676阅读:338来源:国知局
一种异常时序定位方法、装置及主板与制造工艺
本发明涉及服务器
技术领域
,尤其涉及一种异常时序定位方法、装置及主板。
背景技术
:当前服务器主板线路越来越复杂,对应上电时序也愈发复杂。当时序控制逻辑出现问题,或者时序信号传输通道上存在器件故障(例如,器件老化失效)、器件的参数不符合应用要求等,都会导致时序异常。目前,针对主板时序异常,主要是利用示波器按照主板的时序图进行顺次测量,确定发生异常的时序,进而排查与该异常时序相关的软硬件,找到导致时序异常的问题根源,这种做法耗时费力,无法快速找到问题根源。技术实现要素:本发明的目的在于提供一种异常时序定位方法、装置及主板,用以快速定位异常时序,进而对与该异常时序相关的软硬件进行排查,快速找到问题根源。为实现上述发明目的,本发明提供了如下技术方案:本发明提供一种异常时序定位方法,应用于主板包括的CPLD(ComplexProgrammableLogicDevice,复杂可编程逻辑器件),所述主板还包括BMC(BaseboardManagementController,基板管理控制器),所述方法包括:当检测到有时序信号跳变时,将本地信号寄存器记录的时序数据存入本地存储区,所述时序数据包括至少两个时序信号状态,所述至少两个时序信号状态按照时序顺序排列;当接收到所述BMC发送的读取指令时,将保存在所述存储区的时序数据发送给所述BMC,以使所述BMC基于所述时序顺序遍历所述时序数据包括的时序信号状态,将遍历到的首个时序信号状态为未跳变状态的时序信号确定为异常时序信号。进一步地,所述将本地信号寄存器记录的时序数据存入本地存储区之后,还包括:将时间寄存器记录的跳变时间存入本地存储区,所述跳变时间为时序信号发生跳变的时间点;所述将保存在所述存储区的时序数据发送给所述BMC之后,还包括:将导致当前时序数据存储的时序信号的跳变时间发送给BMC,以使所述BMC基于接收到的所有时序信号的跳变时间,确定任意两个时序信号的跳变时间间隔是否满足预设时间间隔要求。本发明还提供一种异常时序定位方法,应用于主板包括的BMC,所述主板还包括CPLD,所述方法包括:向所述CPLD发送读取指令;接收所述CPLD基于所述读取指令返回的时序数据,所述时序数据包括至少两个时序信号状态,所述至少两个时序信号状态按照时序顺序排列;基于所述时序顺序遍历所述时序数据包括的时序信号状态,将遍历到的首个时序信号状态为未跳变状态的时序信号确定为异常时序信号。进一步地,所述方法还包括:接收所述CPLD发送的时序信号的跳变时间;计算任意两个时序信号的跳变时间的时间间隔;确定两个时序信号的跳变时间的时间间隔是否满足预设的时间间隔要求。本发明还提供一种异常时序定位装置,应用于主板包括的CPLD,所述主板还包括BMC,所述装置包括:存储单元,用于当检测到有时序信号跳变时,将本地信号寄存器记录的时序数据存入本地存储区,所述时序数据包括至少两个时序信号状态,所述至少两个时序信号状态按照时序顺序排列;发送单元,用于当接收到所述BMC发送的读取指令时,将保存在所述存储区的时序数据发送给所述BMC,以使所述BMC基于所述时序顺序遍历所述时序数据包括的时序信号状态,将遍历到的首个时序信号状态为未跳变状态的时序信号确定为异常时序信号。进一步地,所述存储单元,还用于在将本地信号寄存器记录的时序数据存入本地存储区之后,将时间寄存器记录的跳变时间存入本地存储区,所述跳变时间为时序信号发生跳变的时间点;所述发送单元,还用于在将保存在所述存储区的时序数据发送给所述BMC之后,将导致当前时序数据存储的时序信号的跳变时间发送给BMC,以使所述BMC基于接收到的所有时序信号的跳变时间,确定任意两个时序信号的跳变时间间隔是否满足预设时间间隔要求。本发明还提供一种异常时序定位装置,应用于主板包括的BMC,所述主板还包括CPLD,所述装置包括:发送单元,用于向所述CPLD发送读取指令;接收单元,用于接收所述CPLD基于所述读取指令返回的时序数据,所述时序数据包括至少两个时序信号状态,所述至少两个时序信号状态按照时序顺序排列;确定单元,用于基于所述时序顺序遍历所述时序数据包括的时序信号状态,将遍历到的首个时序信号状态为未跳变状态的时序信号确定为异常时序信号。进一步地,所述装置还包括:所述接收单元,还用于接收所述CPLD发送的时序信号的跳变时间;计算单元,用于计算任意两个时序信号的跳变时间的时间间隔;所述确定单元,还用于确定两个时序信号的跳变时间的时间间隔是否满足预设的时间间隔要求。本发明还提供一种主板,所述主板包括CPLD和BMC,所述CPLD,用于当检测到有时序信号跳变时,将本地信号寄存器记录的时序数据存入本地存储区,所述时序数据包括至少两个时序信号状态,所述至少两个时序信号状态按照时序顺序排列;当接收到所述BMC发送的读取指令时,将保存在所述存储区的时序数据发送给所述BMC;所述BMC,用于向所述CPLD发送读取指令;接收所述CPLD基于所述读取指令返回的时序数据,所述时序数据包括至少两个时序信号状态,所述至少两个时序信号状态按照时序顺序排列;基于所述时序顺序遍历所述时序数据包括的时序信号状态,将遍历到的首个时序信号状态为未跳变状态的时序信号确定为异常时序信号。进一步地,所述CPLD,还用于将时间寄存器记录的跳变时间存入本地存储区,所述跳变时间为时序信号发生跳变的时间点;所述将保存在所述存储区的时序数据发送给所述BMC之后,将导致当前时序数据存储的时序信号的跳变时间发送给BMC;所述BMC,还用于接收所述CPLD发送的时序信号的跳变时间;计算任意两个时序信号的跳变时间的时间间隔;确定两个时序信号的跳变时间的时间间隔是否满足预设的时间间隔要求。由以上描述可以看出,本发明中,CPLD按照预设时序顺序在信号寄存器中记录每一个时序信号的状态,简称时序信号状态(跳变状态或未跳变状态),并在每一次时序信号跳变时,将信号寄存器中记录的时序信号状态保存到本地存储区中,当接收到BMC的读取指令时,将保存在存储区的时序信号状态发送给BMC,以使BMC基于时序顺序遍历接收到的每一个时序信号状态,将遍历到的首个时序信号状态为未跳变状态的时序信号确定为异常时序信号,达到快速定位异常时序的目的,进而找到导致出现该异常时序的软硬件问题。附图说明图1是本发明实施例示出的一种异常时序定位方法流程图;图2是本发明实施例示出的另一种异常时序定位方法流程图;图3是本发明实施例示出的一种主板示意图;图4是本发明实施例示出的一种异常时序定位装置的结构示意图;图5是本发明实施例示出的另一种异常时序定位装置的结构示意图;图6是本发明实施例示出的一种主板的结构示意图。具体实施方式这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本发明相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本发明的一些方面相一致的装置和方法的例子。在本发明使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本发明。在本发明和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本文中使用的术语“和/或”是指并包含一个或多个相关联的列出项目的任何或所有可能组合。应当理解,尽管在本发明可能采用术语第一、第二、第三等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本发明范围的情况下,第一信息也可以被称为第二信息,类似地,第二信息也可以被称为第一信息。取决于语境,如在此所使用的词语“如果”可以被解释成为“在……时”或“当……时”或“响应于确定”。本发明实施例提出一种异常时序定位方法,该方法由CPLD按照预设的时序顺序在信号寄存器中记录每一个时序信号的状态,并在每一次时序信号跳变时,将信号寄存器中记录的时序信号状态保存到本地存储区中,当接收到BMC的读取指令时,将保存在存储区的时序信号状态发送给BMC,以使BMC基于时序顺序遍历接收到的每一个时序信号状态,将遍历到的首个时序信号状态为未跳变状态的时序信号确定为异常时序信号。参见图1,为本发明异常时序定位方法的一个实施例流程图,该实施例从CPLD侧对异常时序定位过程进行描述。步骤101,当检测到有时序信号跳变时,将本地信号寄存器记录的时序数据存入本地存储区。主板上的时序通常由CPLD通过输出管脚的电平变化(例如,从高电平变为低电平或从低电平变为高电平)进行控制,被控制上电的器件会针对此次控制返回确认信号,该确认信号通过CPLD的输入管脚接入,当输入管脚出现电平变化时,说明此次时序控制正常,然后,CPLD按照预设时序顺序输出下一个控制信号,并确认接收到此次控制的确认信号,以此类推,直到所有时序控制完成。本申请将与时序有关的输出管脚和输入管脚按照时序顺序引到信号寄存器,例如,假设当前与时序相关的输出管脚和输入管脚为32个,其中,10个输出管脚,22个输入管脚,这里需要说明的是,一个控制信号的输出,可能会接收到返回的多个确认信号,例如,一个控制信号输出,可控制4个器件上电,这4个器件同样有上电顺序要求,可通过设计不同的硬件电路,保证这4个器件按照预设的时序顺序(这里的时序顺序包括对控制信号和确认信号的时序要求)上电,器件上电后返回确认信号,CPLD接收到按时序顺序返回的确认信号,证明此次控制正常。以下将与时序相关的控制信号和确认信号均称为时序信号,以32个时序信号(分别记为信号1~信号32)为例,预设的时序顺序为信号1到信号32,则作为一个实施例,可将信号1~信号32依次引到信号寄存器的最低位到最高位,当然,也可以按照时序顺序从最高位引到最低位,在此不做具体限定。每一个时序信号的电平变化(简称时序信号跳变)都会导致信号寄存器中与该时序信号关联的位(以下简称信号位)的值发生变化,例如,从0变为1,或从1变为0。本申请通过CPLD管脚的电平变化触发CPLD感知时序信号跳变,将当前信号寄存器中的时序数据存入本地存储区中,该时序数据由信号寄存器中每一位的值组成,代表对应时序信号的状态,其中,信号位的初始值代表对应时序信号处于未跳变状态;当信号位的值变化时,代表对应时序信号发生跳变,即对应时序信号处于跳变状态。需要补充说明的是,通过本申请可实现对较多时序信号的监控,且本申请直接利用CPLD内部存储区进行存储,无需外接其它器件,节约成本。步骤102,当接收到所述BMC发送的读取指令时,将保存在所述存储区的时序数据发送给所述BMC。本申请中,CPLD与BMC之间通过总线连接,例如,IIC、SPI等,在此不作限定。BMC接收到时序数据后,按照时序顺序遍历每一个时序信号状态,例如,按照时序顺序从时序数据的最低位开始遍历,最低位显示时序信号状态为跳变状态,则继续遍历下一位,若下一位的时序信号状态为未跳变状态,则说明当前处于未跳变状态的时序信号异常,则检测主板上与该时序信号相关部分即可,达到快速定位问题的目的。此外,本申请在每次时序信号跳变时,不仅将信号寄存器中记录的时序数据保存到存储区中,还会将时间寄存器中记录的时序信号跳变的时间点(简称跳变时间)保存到存储区中,其中,该跳变时间从主板开机时开始统计,例如,当按照时序顺序第一个时序信号发生跳变时,将当前时间寄存器中记录的跳变时间(例如,5us)保存到存储区;当第二个时序信号跳变时,将当前时间寄存器中记录的跳变时间(例如,10us)保存到存储区;以此类推。在一种较优的实施方式中,将时序信号跳变时的时序数据和跳变时间存储在相邻位置,例如,时序数据1、跳变时间1、时序数据2、跳变时间2,相当于建立了时序数据与跳变时间的对应关系。CPLD接收到BMC的读取指令后,遵循CPLD和BMC之间的总线协议将时序数据和跳变时间发送给BMC,BMC可基于时序信号的跳变时间更加明确确定时序信号的时序顺序,同时,计算任意两个时序信号的跳变时间间隔是否满足预设的时间间隔要求,例如,按照时序顺序,第一时序信号的跳变时间为5us,第二时序信号的跳变时间为13us,则这两个时序信号的跳变时间间隔为8us,假设,第一时序信号和第二时序信号的理想时间间隔为5us,临界时间间隔为8us,则可得出这两个时序信号的跳变时间间隔已达到临界状态,当前系统的时序信号传输可能存在延迟,此时,可调整CPLD输出时序信号的时间间隔,或优化时序信号传输通道中各器件的硬件参数,使这两个时序信号的跳变时间间隔达到或接近理想时间间隔。参见图2,为本发明异常时序定位方法的另一个实施例流程图,该实施例从BMC侧对异常时序定位过程进行描述。步骤201,向所述CPLD发送读取指令。BMC基于与CPLD的总线连接发送读取指令,读取CPLD中存储区保存的时序数据。步骤202,接收所述CPLD基于所述读取指令返回的时序数据,所述时序数据包括至少两个时序信号状态,所述至少两个时序信号状态按照时序顺序排列。步骤203,基于所述时序顺序遍历所述时序数据包括的时序信号状态,将遍历到的首个时序信号状态为未跳变状态的时序信号确定为异常时序信号。例如,按照时序顺序从时序数据最低位开始遍历时序信号状态,最低位时序信号状态为跳变状态,则继续遍历下一位,若下一位的时序信号状态为未跳变状态,则该位对应的时序信号为异常时序信号,检测主板上与该时序信号相关部分,达到快速定位问题的目的。此外,BMC可接收到CPLD发送的每一次时序信号跳变的跳变时间,计算任意两个时序信号的跳变时间的时间间隔,确定两个时序信号的跳变时间的时间间隔是否满足预设的时间间隔要求。具体参见CPLD侧的描述,在此不再赘述。从上述描述可以看出,本申请中,CPLD基于时序顺序记录时序信号状态,BMC基于时序顺序识别时序信号状态,从而确定按顺序应发生跳变而实际未跳变的时序信号为异常时序信号,达到快速定位异常的目的。同时,BMC基于CPLD记录的时序信号跳变时间得到任意两个时序信号的跳变时间间隔,以确定主板的实际时序控制处于如何状态,以便进一步优化。现以32个时序信号(记为信号1~信号32)为例,详细介绍异常时序定位过程。参见图3,为本发明实施例示出的主板示意图,该主板包括CPLD和BMC,两者之间通过IIC总线通信,其中,CPLD内部包括四个部分:时序控制模块、监测计时模块、双口RAM、IIC模块。时序控制模块通过输出管脚输出控制信号控制器件上电,通过输入管脚接收器件上电后返回的确认信号,以下将控制信号和确认信号均称为时序信号,图中仅示例性标出了两个时序信号,其它时序信号未标出。本申请按照预设的时序顺序(从信号1到信号32)将时序信号引到监测计时模块的32位信号寄存器iINPUT的bit0~bit31,每一位代表一个时序信号的状态。CPLD通过监测计时模块实现对32个时序信号的监测,假设,iINPUT中所有位的初始值为0,代表对应时序信号状态为未跳变状态。当信号1按照时序顺序首先发生跳变时,CPLD感知到当前有时序信号跳变,iINPUT中必定存在时序信号状态的更新(信号1的跳变导致bit0为1,即跳变状态),因此,将iINPUT中的时序数据(记为时序数据1,包含32位时序信号状态)输出到与双口RAM连接的数据线DATAA上,在地址线ADDRA(本实施例中假设为10位地址总线)上输出地址0,在读写控制线OWEA上输出写使能信号,将时序数据1写入到双口RAM的地址0的位置。同时,CPLD的监测计时模块还对输入的系统时钟进行计时,计时时间存放在时间寄存器wvTICKS中,假设,在检测到信号1跳变时,wvTICKS中的计时时间为5us,CPLD将该计时时间(记为跳变时间1)输出到数据线DATAA,在地址线ADDRA上输出地址1,在读写控制线OWEA上输出写使能信号,将跳变时间1写入到双口RAM的地址1的位置。以此类推,在检测到每一个时序信号跳变时,都将跳变时iINPUT中的时序数据和wvTICKS中的跳变时间顺序保存到双口RAM中,参见表1,为RAM中地址与数据的对应关系。地址0时序数据1地址1跳变时间1地址2时序数据2地址3跳变时间2地址4时序数据3地址5跳变时间3表1其中,时序数据2和跳变时间2是信号2发生跳变时,iINPUT中的时序数据和wvTICKS中的跳变时间;时序数据3和跳变时间3是信号3发生跳变时,iINPUT中的时序数据和wvTICKS中的跳变时间。本申请中,BMC为IIC通信的主设备Master,CPLD通过内部IIC模块作为IIC通信的从设备Slave,BMC主动读取CPLDRAM中保存的时序数据和跳变时间。由于IIC总线支持8位读取格式,为了便于BMC读取数据,在前述CPLD写RAM时,可将32位数据分别存储到4个RAM块(BLOCK0~BLOCK3)中,例如,将时序数据1的第0位~第7位写入BLOCK0的地址0;第8位~第15位写入BLOCK1的地址0;第16位~第23位写入BLOCK2的地址0;第24位~第31位写入BLOCK3的地址0。当BMC读取数据时,具体可通过如下方式实现:首先发送8位校验数据,使CPLD可以判断出BMC对其发起访问;然后,BMC发送要读取的RAM地址以及读使能信号,假设,CPLD内部IIC模块与RAM之间的地址线ADDRB为12位地址总线,则BMC需要通过两帧数据发送,第一帧发送低8位地址,第二帧发送高4位地址以及1位读使能信号。需要说明的是,这高4位地址中可使用最高两位标识想要读取的BLOCK,例如,最高两位为00时,读取BLOCK0中的某个地址(BLOCK内的地址由剩下10位地址决定),也就是说,如果BMC想要读取RAM中的时序数据1,需要通过控制12位地址分4次分别读取BLOCK0的地址0、BLOCK1的地址0、BLOCK2的地址0以及BLOCK3的地址0来完成时序数据1的读取。CPLD获取到上述地址及读使能信号后,在双口RAM的地址线ADDRB上输出12位地址,在读写控制线OWEB上输出读使能信号,双口RAM将对应地址上的8位数据输出到数据线DATAB上,通过IIC模块发送给BMC,至此,BMC完成一次8位数据的接收。通过上述IIC读取方式,BMC顺序读取到RAM中保存的时序数据和跳变时间,参见表2,为BMC维护的时序记录表。时序数据(以32位二进制位表示)跳变时间时序数据1:00000000000000000000000000000001跳变时间1:5us时序数据2:00000000000000000000000000000011跳变时间2:10us时序数据3:00000000000000000000000000000111跳变时间3:18us表2假设,主板无法正常启动,BMC解析表2中最后一条记录表项,按照时序顺序从最低位向最高位遍历,bit0为1,说明信号1跳变正常;bit1为1,说明信号2跳变正常;bit2为1,说明信号3跳变正常;bit3为0,说明信号4未发生跳变,则确定异常时序信号为信号4,检查与信号4相关的软硬件,提高定位及解决问题的效率。同时,根据跳变时间1和跳变时间2的时间间隔10us-5us=5us(假设,设计的理想时间间隔为5us),可知,信号1和信号2的跳变时间间隔已达到最优状态;计算信号2和信号3的跳变时间间隔18us-10us=8us(假设,临界时间间隔为8us),说明时序控制模块的控制逻辑可能有问题,或者,信号3传输通道上某个器件的参数有问题,因此,可针对与信号3相关的软硬件进行排查,进而定位到问题根源所在,及时解决问题。与前述异常时序定位方法的实施例相对应,本发明还提供了异常时序定位装置的实施例。请参考图4,为本发明一个实施例中的异常时序定位装置的结构示意图。该异常时序定位装置应用于CPLD,该异常时序定位装置包括存储单元401和发送单元402,其中:存储单元401,用于当检测到有时序信号跳变时,将本地信号寄存器记录的时序数据存入本地存储区,所述时序数据包括至少两个时序信号状态,所述至少两个时序信号状态按照时序顺序排列;发送单元402,用于当接收到所述BMC发送的读取指令时,将保存在所述存储区的时序数据发送给所述BMC,以使所述BMC基于所述时序顺序遍历所述时序数据包括的时序信号状态,将遍历到的首个时序信号状态为未跳变状态的时序信号确定为异常时序信号。进一步地,所述存储单元401,还用于在将本地信号寄存器记录的时序数据存入本地存储区之后,将时间寄存器记录的跳变时间存入本地存储区,所述跳变时间为时序信号发生跳变的时间点;所述发送单元402,还用于在将保存在所述存储区的时序数据发送给所述BMC之后,将导致当前时序数据存储的时序信号的跳变时间发送给BMC,以使所述BMC基于接收到的所有时序信号的跳变时间,确定任意两个时序信号的跳变时间间隔是否满足预设时间间隔要求。请参考图5,为本发明另一个实施例中的异常时序定位装置的结构示意图。该异常时序定位装置应用于BMC,该异常时序定位装置包括发送单元501、接收单元502及确定单元503,其中:发送单元501,用于向所述CPLD发送读取指令;接收单元502,用于接收所述CPLD基于所述读取指令返回的时序数据,所述时序数据包括至少两个时序信号状态,所述至少两个时序信号状态按照时序顺序排列;确定单元503,用于基于所述时序顺序遍历所述时序数据包括的时序信号状态,将遍历到的首个时序信号状态为未跳变状态的时序信号确定为异常时序信号。进一步,所述装置还包括:所述接收单元502,还用于接收所述CPLD发送的时序信号的跳变时间;计算单元,用于计算任意两个时序信号的跳变时间的时间间隔;所述确定单元503,还用于确定两个时序信号的跳变时间的时间间隔是否满足预设的时间间隔要求。上述装置中各个单元的功能和作用的实现过程具体详见上述方法中对应步骤的实现过程,在此不再赘述。请参考图6,为本发明一个实施例中的主板的结构示意图。该主板包括CPLD61和BMC62,其中:所述CPLD61,用于当检测到有时序信号跳变时,将本地信号寄存器记录的时序数据存入本地存储区,所述时序数据包括至少两个时序信号状态,所述至少两个时序信号状态按照时序顺序排列;当接收到所述BMC发送的读取指令时,将保存在所述存储区的时序数据发送给所述BMC;所述BMC62,用于向所述CPLD发送读取指令;接收所述CPLD基于所述读取指令返回的时序数据,所述时序数据包括至少两个时序信号状态,所述至少两个时序信号状态按照时序顺序排列;基于所述时序顺序遍历所述时序数据包括的时序信号状态,将遍历到的首个时序信号状态为未跳变状态的时序信号确定为异常时序信号。进一步地,所述CPLD61,还用于将时间寄存器记录的跳变时间存入本地存储区,所述跳变时间为时序信号发生跳变的时间点;所述将保存在所述存储区的时序数据发送给所述BMC之后,将导致当前时序数据存储的时序信号的跳变时间发送给BMC;所述BMC62,还用于接收所述CPLD发送的时序信号的跳变时间;计算任意两个时序信号的跳变时间的时间间隔;确定两个时序信号的跳变时间的时间间隔是否满足预设的时间间隔要求。CPLD和BMC的功能和作用的实现过程具体详见上述方法中的实现过程,在此不再赘述。以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明保护的范围之内。当前第1页1 2 3 
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1