一种服务器BMCI2C异常恢复方法及相关装置与流程

文档序号:26278277发布日期:2021-08-13 19:34阅读:287来源:国知局
一种服务器BMC I2C异常恢复方法及相关装置与流程

本申请涉及i2c异常处理领域,尤其涉及一种服务器bmci2c异常恢复方法及相关装置。



背景技术:

i2c总线是服务器bmc嵌入式系统中最为常用的串行总线,bmc对其它硬件设备监控功能很多都是通过i2c通信实现的。

i2c协议的优点是兼容性好,管脚占用少,芯片实现简单,i2c协议虽然简单,但实际使用过程问题也很多,最为常见的是i2c总线挂死。i2c总线是由时钟线scl和数据线sda组成的多主多从串行同步通信总线,按照i2c协议规范,接入i2c的器件的scl时钟线和sda数据线都是双向漏开结构,通过总线上的上拉电阻拉到逻辑高电平,一般情况下i2c的sda只有在scl为低电平的时候改变,在scl为高电平时保持,i2c总线由主机发出总线起始条件(scl为高,sda由高变低)和停止条件(scl为高,sda由低变高)。只要i2c总线上任何一个器件拉低了sda或者scl,不释放总线,则整个总线上的通讯都会被暂停,这种情况称之为i2c总线挂死。i2c总线挂死多为主设备异常复位或从设备异常导致的sda或者scl持续低电平,因此我们可以通过检测sda或者scl低电平状态设置i2c挂死自恢复逻辑,通常为主设备控制scl时钟线产生9个时钟脉冲或直接重置i2c控制器。但因为硬件链路或驱动程序某些异常处理也会导致i2c主设备状态异常,区别于i2c总线挂死的场景,此场景下sda或者scl并不是持续低电平,往往无法据此判断i2c发生异常,也就无法触发i2c挂死自恢复逻辑进行异常自恢复,这种情况下需要手动进行主设备复位。



技术实现要素:

为了解决上述技术问题或者至少部分地解决上述技术问题,一方面本申请提供了一种服务器bmci2c异常恢复方法,本申请以计数器统计i2c状态机的状态持续时间,步骤包括:

s1,按时序获取各路i2c总线当前i2c状态机状态;

s2,比较当前i2c状态机状态与上一i2c状态机状态是否相同,如果不相同则执行s3,如果相同则执行s4;

s3,更新上一i2c状态机状态为当前i2c状态机状态,所述计数器复位,执行步骤s1;

s4,判断当前i2c状态机状态是否为idle状态,如果是idle状态,则执行步骤s3,如果不是idle状态则执行步骤s5;

s5,判断所述计数器是否超时,如果超时,则执行步骤s6,否则执行步骤s1;

s6,记录异常日志,复位bmci2c,进入步骤s1。

更进一步地,所述计数器采用独立于bmci2c的时钟作为参考时钟,参考时钟的时钟频率高于i2c时钟频率,以使计数器能够对i2c状态机的持续最短状态计时。

更进一步地,bmc的i2c状态寄存器中存储包含表示i2c状态机状态的比特位,表示i2c状态机状态的比特位数值与i2c状态机的状态一一对应,解析表示i2c状态机状态的比特位数值获取i2c状态机状态。

更进一步地,轮询各路i2c总线或者周期性的采集每路i2c总线的bmc的i2c状态寄存器实现获取i2c状态机状态。

更进一步地,轮询各路i2c总线的轮询周期或者周期性采集每路i2c总线的采集周期小于正常状态下i2c状态机各状态的状态持续时间的最小值。

更进一步地,设定超时阈值,所述计数器的技术与所述超时阈值比较判断所述计数器是否超时,所述超时阈值大于正常状态下i2c状态机非idle的各个状态持续时间的最大值。

更进一步地,记录异常日志内容包括发生异常的i2c总线和记录异常发生的时间。

更进一步地,统计异常日志中内容,计算各路i2c总线发生异常的平均频率,设定频率阈值,比较各路i2c总线发生异常的平均频率是否超过所述频率阈值,如果超过所述频率阈值则生成通知用户的报警信息。

另一方面,本申请提供一种i2c异常自恢复的bmc,包括:

采集模块,所述采集模块用于按时序采集bmci2c状态寄存器的数据;

第一判断模块,所述第一判断模块用于判断i2c状态机的状态是否发生变化;

计数模块,所述计数模块根据所述第一判断模块的结果对非idle状态的状态持续时间进行计时;

第二判断模块,所述第二判断模块判断所述计数模块记录的时间是否超时;

解析模块,所述解析模块用于解析所述bmci2c状态寄存器中表示i2c状态机状态的比特位获取i2c状态机状态,解析过程按照bmc采用的i2c状态机的状态与i2c状态寄存器中表示状态机状态的比特位的映射关系进行,所述解析模块根据表示i2c状态机状态的比特位解析出超时的i2c状态机状态;

执行模块,所述执行模块在所述第二判断模块判断超时时,记录异常日志并复位bmci2c,记录的异常日志包括发生异常的i2c总线,所述解析模块解析的所卡的i2c状态机状态以及发生异常的时间。

优选地,本申请提供的i2c异常自恢复的bmc还包括统计模块,所述统计模块获取所述异常日志中的内容,统计各路i2c总线异常的平均频率;

对比模块,所述对比模块比较平均频率与设定频率阈值,如果所述平均频率超过示所述频率阈值,则由通信模块发送报警信息。

本申请实施例提供的上述技术方案与现有技术相比具有如下优点:

申请实施例提供的该服务器bmci2c异常恢复方法通过所述计数器对i2c状态机状态的持续时间进行统计;采用按时序从bmc的i2c状态寄存器中采集数据的方式获取当前i2c状态机状态,通过比较时序采集地当前i2c状态机状态与上一i2c状态机状态是否改变判断上一i2c状态机的状态持续是否结束,如果上一i2c状态机状态结束,则所述计数器计数复位,对当前i2c状态机状态的持续时间进行统计。对于i2c状态机的非idle状态,本申请通过设定超时阈值判断其状态持续时间是否超时,如果i2c状态机任意非idle状态超时则认为发生超时的i2c总线挂死,记录异常日志并复位bmci2c以解决挂死问题,使服务器bmci2c异常时自动恢复。而对于持续的idle状态本申请通过每次采集到idle状态持续则复位计数器的方法,使得持续idle状态的计数器计数永远不会超时,从而避免误报异常的情况。

相比现有技术利用数据线sda或者时钟线scl的电平判断i2c是否挂死,本申请通过i2c状态机非idle状态的持续时间判断i2c总线是否发生挂死,因此能够确定由于硬件链路或驱动程序异常导致i2c主设备状态异常进而导致i2c挂死的情况,能确定的异常范围更大,对于通过测量数据线sda或者时钟线scl电平无法判断为i2c挂死的i2c异常有较好的恢复效果。

在复位修复后,由于对i2c异常的检测过程仍在起作用,能对复位是否修复异常起到自检作用。一般情况下,复位对于驱动程序问题带来的i2c异常有比较好的修复作用,而无法修复硬件链路问题造成的i2c异常。

另外,本申请利用日志记录每路i2c的异常以及异常发生的时刻,用户根据日志可以清楚每路i2c的异常发生情况;本申请还通过对日志内容进行统计,计算每路i2c异常发生的平均频率,如果平均频率超出频率阈值,本申请能生成相应的报警信息通知用户,在自行复位修复没有解决问题,通过这种方式可以使用户及时干预修复。尤其对于对于复位不能解决的因硬件链路问题导致的i2c异常,报警信息能及时通知到用户。

附图说明

此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本发明的实施例,并与说明书一起用于解释本发明的原理。

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,对于本领域普通技术人员而言,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。

图1为i2c总线架构的示意图;

图2为i2c总线通信过程中数据线sda和时钟线scl波形示意图;

图3为一种满足i2c协议实现i2c通信的i2c状态机状态转移示意图;

图4为本申请实施例提供的一种服务器bmci2c异常恢复方法的流程图;

图5为本申请实施例提供的一种分析异常日志内容的流程图;

图6为本申请实施例提供的i2c异常自恢复的bmc示意图。

具体实施方式

为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请的一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本申请保护的范围。

下面结合附图对本申请实施例进行说明。其中,图1为i2c总线架构的示意图;图2为i2c总线通信过程中数据线sda和时钟线scl波形示意图;图3为一种满足i2c协议实现i2c通信的i2c状态机状态转移示意图;图4为本申请实施例提供的一种服务器bmci2c异常恢复方法的流程图;图5为本申请实施例提供的一种分析异常日志内容的流程图;图6为本申请实施例提供的i2c异常自恢复的bmc示意图。

首先对i2c的相关知识进行介绍。

参阅图1所示,i2c串行总线包括两根信号线,其中一根为双向的数据线sda,另一根为双向的时钟线scl。连接在i2c总线上的设备的数据接口都接在数据线sda上,设备的时钟接口连接在时钟线scl上。数据线sda和时钟线scl都是双向漏开结构,有总线上的上拉电阻拉到逻辑高电平,由主设备或者从设备的数据接口或者时钟接口拉低产生逻辑第电平。

连接在i2c总线上的主设备负责产生数据的条件条件和结束条件、发送寻址命令以及产生时钟信号,受主设备控制通信的设备为从设备。从设备和主设备均能够发送和接收消息。

参阅图2所示,在利用i2c总线进行数据传输时,其传递的内容包括起始条件(时钟线scl高电平,而数据线sda由高电平变为低电平),紧跟起始条件的是8位从设备寻址数据,从设备寻址数据中包含7位地址位和一位读写设定位,所述读写设定位写0或1决定数据由主设备传向从设备,还是由从设备传向主设备,如果有从设备地址于7位地址位匹配则该从设备为接下来通信的参与者。从设备寻址数据之后是通信数据。i2c总线在进行数据传输时,每8位数据(包括从设备寻址数据)需要跟随一个应答位(在时钟线scl为高电平时应答),在数据传输结束后有结束条件(时钟线scl为高电平,数据线sda由低电平变为高电平)。

在进行除起始条件和结束条件的数据传输过程中,当时钟线scl为高电平时,数据线sda上的数据保持,数据有效;当时钟线scl为低电平时,数据线sda上的数据可以变化,此时数据无效。

而起始条件则是在时钟线scl为高电平时,数据线sda由高电平转为低电平;结束条件是在时钟线scl为高电平时,数据线sda由低电平转为高电平。

由于i2c总线采用了双向漏开结构,因此总线上的任意一个设备拉低了数据线sda或者时钟线scl,其他的设备不可能在拉高总线,产生i2c挂死的问题。然而在设备使用过程中,但因为硬件链路或驱动程序某些异常处理也会导致i2c主设备状态异常,区别于拉低i2c总线挂死的场景,此场景下数据线sda或者时钟线scl并不是持续低电平,往往无法根据数据线sda或者时钟线scl持续低电平判断i2c挂死,也就无法触发基于此的i2c挂死自恢复逻辑进行异常自恢复。

i2c状态机控制i2c总线在数据传输时的状态转移,使整个过程符合i2c协议的规定。参阅图3所示,一种可行的i2c状态机的状态包括:header(数据头状态)、ack_header(数据头应答状态)、rcv_data(接收数据状态)、xmit_data(发送数据状态)、ack_data(应答状态)、wait_ack(等待应答状态)、stop(结束状态)以及idle(空闲状态)。

在idle状态,总线空闲,复位(reset)进入idle状态;当检测到起始条件(detect_start=1)时,i2c状态机进入header状态,进入header状态后发送8位数据头,当传输的数据头的位数达到8位(bit_cht=8)进入到ack_header状态,采样数据线sda数值,判断是否有应答,如果没有应答则进入stop状态,等待一段时间进入idle状态,如果有应答则根据数据头中的读写设定为判断是发送数据还是接收数据,发送则进入xmit_data状态,接收则进入rcv_data状态;在xmit_data状态当检测到起始条件时,进入header状态,接收sda总线上的数据头,判断数据头中的地址是否匹配自身;在xmit_data状态当检测到结束条件时(detect_stop=1)进入stop状态,在xmit_data状态每发送8位数据进入wait_ack状态,等待收信端应答,wait_ack状态如果应答为0则进入xmit_data状态,如果应答为1则结束;在rcv_data状态检测到起始条件时,进入header状态,接收sda总线上的数据头,判断数据头中的地址是否匹配自身;在rcv_data状态,当监测到结束条件时,进入stop状态,在rcv_data状态每接收8位数据进入ack_data状态,向发信端应答。传输8位数据的时间和产生相应应答的时间一定是有限的,stop状态维持到时限后会进入idle状态,因此除了idle状态,正常情况下i2c状态机的其余状态持续时间都是有限的。因此一旦任意i2c状态机的非idle状态持续时间超时,说明i2c发生异常,影响i2c总线的通信。

实施例1

参阅图4所示,本发明提供一种服务器bmci2c异常恢复方法,以计数器统计i2c状态机的状态持续时间,所述计数器采用独立于bmci2c的时钟作为参考时钟,且其频率高于bmci2c的时钟频率,使得所述计数器能够对应答(ack)相关状态计时。步骤包括:

s1,按时序获取各路i2c总线当前i2c状态机状态;bmc的i2c状态寄存器中存储包含表示i2c状态机状态的比特位,表示i2c状态机状态的比特位数值与i2c状态机的状态一一对应,解析表示i2c状态机状态的比特位数值获取i2c状态机状态。具体实施过程中,可行的按时序获取各路i2c总线当前i2c状态机状态的方式包括:

1、轮询各路i2c总线在bmc中i2c状态寄存器;轮询各路i2c总线的轮询周期小于正常状态下i2c状态机各状态的状态持续时间的最小值,以避免轮询周期过长对导致漏采集状态机状态的情况;采用轮询的方式对于bmc硬件资源消耗少,但是轮询周期随着轮询i2c状态寄存器的数量增加而变长,轮询周期长导致获取i2c状态机的状态的时间间隔变长,当i2c总线过多可能导致间隔大于状态持续时间造成状态的漏采集。因此当i2c总线过多时采用分组轮询的方式,减少轮询i2c总线数量,保证轮询周期合适,避免周期过程导致i2c状态机状态漏采集的情况。

2、周期性采集每路i2c总线在bmc中i2c状态寄存器。周期性采集每路i2c总线的采集周期小于正常状态下i2c状态机各状态的状态持续时间的最小值,以保证能够采集到i2c状态机的各个状态。周期性采集相比较轮询硬件开销较多,但采集针对每个i2c状态寄存器单独进行,周期固定,不存在因i2c总线连接过多导致周期过长、进而出现i2c状态机状态漏采集的情况。

s2,比较当前i2c状态机状态与上一i2c状态机状态是否相同,如果不相同则执行s3,如果相同则执行s4;具体实施过程中分别对比各路i2c总线的当前i2c状态机状态与上一i2c状态机状态是否相同。

s3,更新上一i2c状态机状态为当前i2c状态机状态,所述计数器复位,执行步骤s1;具体实施过程中,如果当前i2c状态机状态与上一i2c状态机状态不同,则说明i2c状态机状态改变,上一i2c状态机状态不再持续,所述计数器停止对上一i2c状态机状态持续时间的计数,复位开始记录当前i2c状态机状态持续时间。

s4,判断当前i2c状态机状态是否为idle状态,如果是idle状态,则执行步骤s3,如果不是idle状态则执行步骤s5;具体实施过程中,由于idle状态持续时间可以不限,当i2c状态机状态没发生改变时,需要排除idle状态。由于本申请轮询周期小于i2c状态机中最短状态的持续时间,所以本申请轮询到相邻的idle状态的计数器计时肯定没有超时,所以重新复位计数器能够保证不会产生因idle状态维持而产生超时。

s5,判断所述计数器是否超时,如果超时,则执行步骤s6,否则执行步骤s1;具体实施过程中,设定超时阈值,所述计数器的技术与所述超时阈值比较判断所述计数器是否超时,所述超时阈值大于正常状态下i2c状态机非idle的各个状态持续时间的最大值。

根据前文对i2c的基础知识介绍,由于传输8比特数据和产生1比特的应答时间都是有限的,stop状态持续时间到达后会自动到idle状态,所以对于i2c状态机的非idle状态,在正常情况下其持续时间应该是有限的。如果i2c总线挂死,使得i2c状态机维持在一稳定状态,导致所述计数器无法复位,经历多个周期之后计数器的计数会超过所述超时阈值,那么可以根据计数器超时判定i2c总线发生使i2c状态机卡死的异常。

s6,记录异常日志,自动复位bmci2c以修复i2c异常,进入步骤s1。具体实施过程中,记录异常日志内容包括发生异常的i2c总线、记录发生卡死的i2c状态机状态,记录异常发生的时间。

对于记录的异常日志进行分析,参阅图5所示,初始化一个设定频率阈值,获取异常日志中内容,通过异常发生的时间和异常发生的次数来计算各路i2c总线在固定的时间间隔内发生异常的平均频率,比较各路i2c总线发生异常的平均频率是否超过所述频率阈值,如果超过所述频率阈值则生成通知用户的报警信息。由于复位bmci2c之后,本申请提供的方法仍然执行,如果问题没有被复位修复,异常的i2c在下次进行通信时仍然会发生卡死的情况,本申请会自动再次记录异常日志并复位修复。这就使异常日志所记录的异常平均频率变高。通过报警信息通知用户可以使用户获知并干预,解决复位处理不了的i2c异常。

具体实施过程中,可以在bmc后台构建一个i2c异常报警模块,bmc将报警信息发送到i2c异常报警模块,用户可通过bmc后台获知异常情况。

实施例2

参阅图6所示,本申请还提供一种i2c异常自恢复的bmc,本申请的i2c异常自恢复的bmc能够实现所述服务器bmci2c异常恢复方法,包括:

采集模块,所述采集模块用于按时序采集bmci2c状态寄存器的数据。具体实施过程中,所述采集模块轮询采集全部bmci2c状态寄存器的数据,所述采集模块执行轮询采集的周期小于i2c状态机的状态中最短状态持续时间,以能够采集到i2c状态机的最短状态。或者,所述采集模块周期性采集每个bmci2c状态寄存器的数据,所述采集模块采集每个i2c状态寄存器的周期小于i2c状态机最短状态持续时间,以能够采集到i2c状态机的最短状态。

第一判断模块,所述第一判断模块用于判断i2c状态机的状态是否发生变化;具体实施过程中,所述第一判断模块对比所述采集模块当前采集的数据和上一采集的数据,如果当前采集的数据与上一采集的数据不同,则说明上一i2c状态机状态不再持续,如果当前采集的数据与上一采集的数据相同,则说明上一i2c状态机状态仍在持续。

所述第一判断模块判断仍在持续的状态是否为idle状态。

计数模块,所述计数模块根据所述第一判断模块的结果对非idle状态的状态持续时间进行计时;具体实施过程中,所述计数模块采用频率高于i2c时钟的参考时钟,在所述参考时钟的上升沿或者下降沿触发计数,所述计数模块对仍在持续的i2c状态机非idle状态进行计时。对于仍在持续的idle状态所述计数模块在每次轮询或者每次采集到持续的idle状态时复位。通过计数模块复位,使得idle的计数模块计时永远低于设定的超时阈值。

第二判断模块,所述第二判断模块判断所述计数模块记录的时间是否超时;具体实施过程中,设定所述超时阈值,所述第二判断模块将所述计数模块记录的时间与所述超时阈值对比,如果所述计数模块记录的时间大于超时阈值则判断i2c发生异常。

解析模块,所述解析模块用于解析所述bmci2c状态寄存器中表示i2c状态机状态的比特位获取i2c状态机状态,解析过程按照bmc采用的i2c状态机的状态与i2c状态寄存器中表示状态机状态的比特位的映射关系进行;当所述第二判断模块判断i2c发生异常时,所述解析模块获取i2c状态寄存器的数值,根据所述数值通过映射关系解析出相应的i2c状态机状态。

执行模块,所述执行模块在所述第二判断模块判断超时时,记录异常日志并复位bmci2c以修复异常。具体实施过程中,在记录异常日志时,记录发生异常的i2c,记录发生异常时所卡在的i2c状态机状态,记录异常发生的时间。

更进一步的,本申请提供的i2c异常自恢复的bmc还包括统计模块,所述统计模块获取所述异常日志中的内容,根据状态机发生的时间统计获取设定时间间隔内异常日志中记录的异常发生次数,从而计算出各路i2c总线在设定时间间隔内异常的平均频率。

根据设定时间间隔来人为设置一个频率阈值,并存储于bmc。

对比模块,所述对比模块获取所述频率阈值,所述对比模块比较平均频率与所述频率阈值,如果平均频率超过所述频率阈值,则由通信模块发送报警信息。

实施例3

本申请还提供一种计算机可读存储介质,所述计算机可读存储介质存储至少一条指令,bmc连接所述计算机可读存储介质执行所述指令实现所述服务器bmci2c异常恢复方法。

实施例4

一种处理器,所述处理器配置i2c状态机以实现i2c通信,所述处理器读取存储介质中的指令,执行所述指令实现所述服务器bmci2c异常恢复方法。

本申请实施例提供的该服务器bmci2c异常恢复方法通过所述计数器对i2c状态机状态的持续时间进行统计;采用按时序从bmc的i2c状态寄存器中采集数据的方式获取当前i2c状态机状态,通过比较时序采集地当前i2c状态机状态与上一i2c状态机状态是否改变判断上一i2c状态机的状态持续是否结束,如果上一i2c状态机状态结束,则所述计数器计数复位,对当前i2c状态机状态的持续时间进行统计。对于i2c状态机的非idle状态,本申请通过设定超时阈值判断其状态持续时间是否超时,如果i2c状态机任意非idle状态超时则认为发生超时的i2c总线挂死,记录异常日志并复位bmci2c以解决挂死问题,使服务器bmci2c异常时自动恢复。而对于持续的idle状态本申请通过每次采集到idle状态持续则复位计数器的方法,使得持续idle状态的计数器计数永远不会超时,从而避免误报异常的情况。

相比现有技术利用数据线sda或者时钟线scl的电平判断i2c是否挂死,本申请通过i2c状态机非idle状态的持续时间判断i2c总线是否发生挂死,因此能够确定由于硬件链路或驱动程序异常导致i2c主设备状态异常进而导致i2c挂死的情况,能确定的异常范围更大,对于通过测量数据线sda或者时钟线scl电平无法判断为i2c挂死的i2c异常有较好的恢复效果。

在复位修复后,由于对i2c异常的检测过程仍在起作用,能对复位是否修复异常起到自检作用。一般情况下,复位对于驱动程序问题带来的i2c异常有比较好的修复作用,而无法修复硬件链路问题造成的i2c异常。

另外,本申请利用日志记录每路i2c的异常以及异常发生的时刻,用户根据日志可以清楚每路i2c的异常发生情况;本申请还通过对日志内容进行统计,计算每路i2c异常发生的平均频率,如果平均频率超出频率阈值,本申请能生成相应的报警信息通知用户,在自行复位修复没有解决问题,通过这种方式可以使用户及时干预修复。尤其对于对于复位不能解决的因硬件链路问题导致的i2c异常,报警信息能及时通知到用户。

需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。

在本发明所提供的实施例中,应该理解到,所揭露的系统,装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。

所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。

另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。

所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(read-onlymemory,rom)、随机存取存储器(randomaccessmemory,ram)、磁碟或者光盘等各种可以存储程序代码的介质。

以上所述仅是本发明的具体实施方式,使本领域技术人员能够理解或实现本发明。对这些实施例的多种修改对本领域的技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所申请的原理和新颖特点相一致的最宽的范围。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1