PCIE4.0链路中实现redriver参数自适应的方法及装置与流程

文档序号:18985692发布日期:2019-10-29 04:22阅读:2460来源:国知局
PCIE4.0链路中实现redriver参数自适应的方法及装置与流程

本发明服务器技术领域,具体涉及一种在pcie4.0链路中实现redriver参数自适应的方法及装置。



背景技术:

在服务器中,pcie总线速度快,带宽高,是连接cpu与各个设备的主要io总线,随着pcie技术的升级,目前pcie4.0的速率已经达到了16gbps,对信号完整性是一个很大的挑战,对链路损耗要求更严格。

在pcie4.0链路中,上行设备和下行设备之间会进行pcie链路协商,使两端设备的txeq配置为最优值。在超长链路中,两端的pcie设备中会加上一个redriver,补偿链路带来的损耗,redriver的参数通过仿真和调试确定,并把这个值固定在redriver中。

在实际应用场景下,在pcie4.0链路两端的设备在协商的过程中,不同的环境下,协商的txeq值也会有的变化,用以适应环境变化的影响,此时,由于redriver是一个纯电气器件,参数固定,在两端的pcie设备进行参数协商时,redriver并不参与pcie链路的协商,因此redriver也自然不能改变参数来适应环境。



技术实现要素:

本发明所要解决的技术问题在于针对上述现有技术的不足,提供一种在pcie4.0链路中实现redriver参数自适应的方法及装置。

本发明解决其技术问题所采取的技术方案是:

本发明实施例提供了一种pcie4.0链路中实现redriver参数自适应的方法,具体步骤包括:

步骤s1:设定redriver参数值列表,并从redriver参数值列表中选择一组参数作为初始值;

步骤s2:pcie4.0链路协商时,redriver运行初始值,与此同时,bmc读取最后一次协商的lanemargin结果作为初始结果并存储起来;

步骤s3:经过时间间隔t,bmc再次读取实时的lanemargin结果,并与步骤s2中预存的初始结果比较,当结果变差时进入下一步;

步骤s4:bmc以初始值为基准,按照由近到远的顺序遍历redriver参数值列表中的参数,并验证对应参数下的lanemargin结果;

步骤s5:bmc选择lanemargin结果最好的一组参数作为redriver的最新参数。

优选的,步骤s1中,redriver参数值列表中每一组相邻参数的eq差值为1。

优选的,步骤s1中,初始值选择redriver参数值列表位于中间的参数。

进一步的,步骤s1中,设定好的redriver参数值列表及初始值,在开机上电过程中,由bmc通过i2c写进redriver寄存器。

进一步的,在步骤s3中,时间间隔t的设置时间选择1分钟到12小时之间,且服务器所处环境的外界温度波动越大时,时间间隔t选择的时间越短。

进一步的,步骤s3中,判断结果是否变差的具体方法为:

在芯片内部serdes做电压和相位的容忍度测试,对于当前信号serdes做上下左右偏移,当偏移到出现误码是,则判定当前位置为极限值,其中,lanemargin的结果等同于上下左右偏移绝对值之和,当值变小说明容忍度变差。

本发明的实施例还提供一种在pcie4.0链路中实现redriver参数自适应的装置,所述的装置包括:

bmc,用于根据lanemargin结果修正redriver的参数值;

redriver,用于运行bmc修正后的参数值,以适应pcie4.0链路环境的变化。

进一步的,所述的bmc包括:

写入单元,用于将redriver参数值列表和初始值写入redriver寄存器;

判断单元,用于获取初始值下的lanemargin结果,并在设定的时间间隔t时再次获取实时的lanemargin结果,判断结果是否变差;

调整单元,用于在判断单元发现结果变差后,遍历redriver参数值列表中全部参数并获取相应的lanemargin结果;

选择单元,用于从调整单元获取的全部lanemargin结果中,选择结果最好的一组参数作为redriver修正后的参数。

本发明的有益效果是:

本申请中,利用pcie4.0的设备必须支持lanemargin功能这一特性,引入眼图来判断信号质量,通过比较信号质量调整redriver的参数,从而可以适应环境变化对pcie4.0链路信号质量的影响,最大化的提升pcie4.0链路信号质量,避免外部环境对pcie4.0链路的影响。

对于redriver参数预先设定的列表,尽量将相邻参数的eq差值设定为1,可以确保调整幅度的精细化,避免调整幅度过大导致信号质量变差的可能性。此外,初始值的参数选择为中间值,相比于初始值选择为边界值,可以为后期的调整预留更大的调整空间。

附图说明

图1为本申请实施例的方法流程图;

图2为本申请实施例的装置原理图。

具体实施方式

为能清楚说明本方案的技术特点,下面通过具体实施方式,并结合其附图,对本发明进行详细阐述。下文的公开提供了许多不同的实施例或例子用来实现本发明的不同结构。为了简化本发明的公开,下文中对特定例子的部件和设置进行描述。此外,本发明可以在不同例子中重复参考数字和/或字母。这种重复是为了简化和清楚的目的,其本身不指示所讨论各种实施例和/或设置之间的关系。应当注意,在附图中所图示的部件不一定按比例绘制。本发明省略了对公知组件和处理技术及工艺的描述以避免不必要地限制本发明。

如图1所示,本发明实施例提供了一种在pcie4.0链路中实现redriver参数自适应的方法,所述的方法通过bmc定时监控pcie4.0信号质量,并根据信号质量的变化实时调整redriver参数,形成反馈电路,达到自适应参数的目的。

该实施例中,整个方法的具体实现过程为:

步骤s1:设定redriver参数值列表,并从redriver参数值列表中选择一组参数作为初始值,这个初始值是开机上电过程中bmc通过i2c写进redriver寄存器的。

在硬件设计阶段我们会设计这个初始值,不同的redriver,不同的项目初始值都是不同的,以pericom的redriver简单举例,redriver的equalizationsetting配置表如下:

某服务器项目硬件设计预估需要在8ghz频点补偿15db插入损耗,eq值选择1010,转换为16进制为0xa,所以初始值配置为0xa。

此外,需要注意的是,redriver参数值列表中每一组相邻参数的eq差值为1,并且,一般初始值不会选择在两端,初始值选择redriver参数值列表位于中间的参数。

步骤s2:在pcie4.0链路协商的过程中,redriver使用bmc配置的初始值,与此同时,bmc通过i2c读取最后一次协商的lanemargin结果并存储起来,该存储过程可以通过i2c写进eeprom里存储起来。

之所以读取最后一次协商的lanemargin结果,是因为pcie4.0协议中规定,pcie4.0的设备必须支持lanemargin功能,使对方设备发过来的pcie信号形成眼图,通过对对眼图进行评估,可以实现判定信号质量。

步骤s3:经过一段时间的延时后,bmc每隔一定时间,bmc再次读取实时的lanemargin结果,并与步骤s2中预存的初始结果比较,当结果变差时进入下一步。

该步骤中,bmc的时间间隔设多少取决于我们想让redriver多长时间调整一次参数,在1分钟到12小时这一区间内,设置为几分钟或几小时一次都可以,比如10分钟、30分钟、1小时、6小时等等,具体多少时间取决于对服务器可靠性的要求和所处的环境,举例来说,在极端环境下,环境温度经常快速变化,对服务器可靠性要求高,则需要设置为几分钟一次;如果服务器所处环境较好,在空调机房内,则可以设置几小时一次。

其中,bmc判断lanemargin结果是否变差,所采用的具体方式为:给pcie设备发送指令,使其做lanemargin动作,读取lanemargin的结果,并和最初的lanemargin结果做比较,一旦发现结果变差,在芯片内部serdes会做电压和相位的容忍度测试,对于当前信号serdes会做上下左右偏移,当偏移到出现误码时,则判定当前位置为极限值,而lanemargin的结果可以理解为上下左右偏移绝对值之和,当值变小说明容忍度变差,这就说明经过一段时间的环境变化后,例如机器发热温度升高,湿度变化等等,当前的redriver参数已经不适合当前环境。

步骤s4:bmc以初始值为基准,按照由近到远的顺序遍历redriver参数值列表中的参数,并验证对应参数下的lanemargin结果,具体执行时,bmc通过i2c下指令给redriver,使redriver的参数在初始值附近进行微调,微调即写入另一组txeq值给redriver,策略可以灵活设定,例如一共有16组值可以选择,当前值为第7组,可以设定策略为选择参数相差不大的第6组和第8组,如果处于第一组,则只能调大到第二组。

步骤s5:bmc选择lanemargin结果最好的一组参数作为redriver的最新参数。

在服务器实际运行中,步骤s3-s5是一个不断循环执行的过程,服务器运行不停止,该循环不停止。

如图2所示,与实施例的方法相对应的,本发明的实施例还提供一种在pcie4.0链路中实现redriver参数自适应的装置,所述的装置包括bmc和redriver,其中,bmc用于根据lanemargin结果修正redriver的参数值,redriver用于运行bmc修正后的参数值,以适应pcie4.0链路环境的变化。

更进一步的,所述的bmc包括以下用于实现各个功能的单元:

写入单元,用于将redriver参数值列表和初始值写入redriver寄存器,具体原理为:开机上电过程中bmc通过i2c写进redriver寄存器。

判断单元,用于获取初始值下的lanemargin结果,并在设定的时间间隔t时再次获取实时的lanemargin结果,判断结果是否变差,具体原理为:给pcie设备发送指令,使其做lanemargin动作,读取lanemargin的结果,并和最初的lanemargin结果做比较,一旦发现结果变差,在芯片内部serdes会做电压和相位的容忍度测试,对于当前信号serdes会做上下左右偏移,当偏移到出现误码时,则判定当前位置为极限值,而lanemargin的结果可以理解为上下左右偏移绝对值之和,当值变小说明容忍度变差。

调整单元,用于在判断单元发现结果变差后,遍历redriver参数值列表中全部参数并获取相应的lanemargin结果,具体原理为:bmc通过i2c下指令给redriver,使redriver的参数在初始值附近进行微调,微调即写入另一组txeq值给redriver,策略可以灵活设定。

选择单元,用于从调整单元获取的全部lanemargin结果中,选择结果最好的一组参数作为redriver修正后的参数。

最后应说明的是:以上只是本发明的优选实施方式,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也被视为本发明的保护范围。

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