一种SAS控制器PHY端口极性自适应的方法、系统与流程

文档序号:23052623发布日期:2020-11-25 17:28阅读:348来源:国知局
一种SAS控制器PHY端口极性自适应的方法、系统与流程

本发明涉及硬盘通信链路设计技术领域,具体涉及一种sas控制器phy端口极性自适应的方法、系统。



背景技术:

在云计算数据中心领域,随着互联网技术的发展,网络数据剧增,对网络存储要求越来越高,基于sas协议的sascontroller配合expander实现对硬盘的扩展和管理。sas(serialattachedscsi)具备目前磁盘通道技术里面的最高接口速率,通过采用通道合并技术,sas支持将多个phy(portphysicallayer,中文可称之为端口物理层,是一个对osi模型物理层的共同简称)合入一个port,可提供高达几十g的通道带宽,比如常用的4*sas宽端口,带宽可达12gbit/s;sas的交换构架支持多个设备的扩展,一个sas域理论上最多可接16128个设备,同时sas设备支持24×7的多线程设计,可满足多任务的应用;sas设备基于目前存储领域最成熟的scsi技术,可兼容sata,这使得sas通道技术具备广泛的适用范围和良好兼容性。

目前有很多用于硬盘扩展的sas卡,不同厂家以及不同型号都有不同的phy数量及phy极性。目前多款基于pm80xx系列sas自研卡的物理phy口tx、rx极性与其他sas卡极性不一致,另外有些存储机器上是板载的sas扩展槽,其phy口的tx、rx极性也可能不尽相同,这样就导致每次进行产品开发时都需要先确认物理phy的极性是否一致,不一致的话需要对驱动进行适配,通过修改逻辑phy极性的方法来达到phy极性的一致,这种方法虽然解决了问题,但却耗费大量人力资源,而且需要维护多个驱动版本,增加了开发看护成本。



技术实现要素:

针对现有技术虽然解决了phy极性的一致的问题,但却耗费大量人力资源,而且需要维护多个驱动版本,增加了开发看护成本的问题,本发明提供一种sas控制器phy端口极性自适应的方法、系统。

本发明的技术方案是:

一方面,本发明技术方案提供一种sas控制器phy端口极性自适应的方法,应用于自适应系统,该系统包括sas控制器和与sas控制器连接的下行设备,该方法包括如下步骤:

读取sas控制器phy端口的极性配置信息;

根据获取的极性配置信息对下行设备的端口发起链路训练操作;

链路训练完成后,读取链路训练的结果;

根据读取链路训练的结果进行下行设备的端口链路状态的判断;

若下行设备的端口链路为激活状态,则认为sas控制器与下行设备之间链路处于连通状态,保持phy端口的极性并设置phy端口的极性标志为默认值。

进一步的,根据判断结果进行phy端口的极性的自适应设置的步骤还包括:

若下行设备的端口链路为禁用状态,设置下行设备的phy端口的极性反转;

重新发起链路训练操作并根据链路训练的结果进行判断;

若下行设备的端口链路为激活状态,则认为sas控制器与下行设备之间链路处于连通状态,保持phy端口的极性并设置phy端口的极性标志为反选值。方便完成对phy极性的确认。

进一步的,重新发起链路训练操作并根据链路训练的结果进行判断的步骤还包括:

重新发起设定阈值次数的链路训练操作后,若下行设备的端口链路为禁用状态,退出驱动的加载并输出提示信息。

进一步的,该方法还包括:

将phy端口的极性标志存入eeprom;

系统重新上电启动时,读取eeprom中存储的phy端口的极性标志进行设置,完成对phy极性的确认。

进一步的,读取sas控制器phy端口的极性配置信息的步骤之前包括:

读取sas控制器phy端口信息以及下行设备端口信息;

根据读取的端口信息确定待进行极性自适应的phy端口id。确定需要极性自适应的phy端口。

进一步的,读取sas控制器phy端口的极性配置信息的步骤包括:

根据phy端口id读取eeprom中保存的对应phy端口的极性配置信息。方便后续按照极性配置信息进行自适应设置。

进一步的,读取sas控制器phy端口信息以及下行设备端口信息的步骤之前还包括:

使能pcie设备;

将该pcie设备设置为主设备;主设备连接sas控制器。

另一方面,本发明技术方案还提供一种sas控制器phy端口极性自适应的系统,包括pcie设备,所述pcie设备包括主设备和若干下行设备,主设备通过sas控制器与下行设备连接;

该系统还包括极性配置信息读取模块、链路训练模块、训练结果读取模块、判断模块和自适应设置模块;

极性配置信息读取模块,用于读取sas控制器phy端口的极性配置信息;

链路训练模块,用于根据极性配置信息对下行设备的端口发起链路训练操作;

训练结果读取模块,用于链路训练完成后,读取链路训练模块输出的链路训练的结果;

判断模块,用于根据读取链路训练的结果进行下行设备的端口链路状态的判断;

自适应设置模块包括保持设置单元;

保持设置单元,用于若判断模块输出下行设备的端口链路为激活状态,则认为sas控制器与下行设备之间链路处于连通状态,保持phy端口的极性并设置phy端口的极性标志为默认值。

进一步的,自适应设置模块还包括反转设置单元;

反转设置单元,用于若判断模块输出下行设备的端口链路为禁用状态,则设置下行设备的phy端口的极性反转;

链路训练模块,还用于重新发起链路训练操作;

保持设置单元,还用于若判断模块对重新发起的链路训练的训练结果进行判断后,输出下行设备的端口链路为激活状态,则认为sas控制器与下行设备之间链路处于连通状态,保持phy端口的极性并设置phy端口的极性标志为反选值。

进一步的,该系统还包括提示信息输出模块;

提示信息输出模块,用于重新发起设定阈值次数的链路训练操作后,若下行设备的端口链路为禁用状态,退出驱动的加载并输出提示信息。

进一步的,该系统还包括eeprom;

保持设置单元,还用于将phy端口的极性标志存入eeprom;

配置信息读取模块,用于系统重新上电启动时,读取eeprom中存储的phy端口的极性标志。

进一步的,该系统还包括信息读取模块和确定模块;

信息读取模块,用于读取sas控制器phy端口信息以及下行设备端口信息;

确定模块,用于根据读取的端口信息确定待进行极性自适应的phy端口id;

配置信息读取模块,具体还用于根据phy端口id读取eeprom中保存的对应phy端口的极性配置信息。

从以上技术方案可以看出,本发明具有以下优点:解决了不同型号机器使用不同phy极性sas卡都需要进行提前适配的问题,节省了开发人员的适配、测试的时间,缩短了产品开发周期,提升了产品的竞争力。

此外,本发明设计原理可靠,结构简单,具有非常广泛的应用前景。

由此可见,本发明与现有技术相比,具有突出的实质性特点和显著地进步,其实施的有益效果也是显而易见的。

附图说明

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

图1是本发明一个实施例的方法的示意性流程图。

图2是本发明一个实施例的系统的示意性框图。

具体实施方式

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

如图1所示,本发明实施例提供一种sas控制器phy端口极性自适应的方法,应用于自适应系统,该系统包括sas控制器和与sas控制器连接的下行设备,该方法包括如下步骤:

s1:读取sas控制器phy端口的极性配置信息;

s2:根据获取的极性配置信息对下行设备的端口发起链路训练操作;

s3:链路训练完成后,读取链路训练的结果;

s4:根据读取链路训练的结果进行下行设备的端口链路状态的判断;

s5:若下行设备的端口链路为激活状态,则认为sas控制器与下行设备之间链路处于连通状态,保持phy端口的极性并设置phy端口的极性标志为默认值。

在有些实施例中,该方法还包括s6,具体的步骤s6包括:

s61:若下行设备的端口链路为禁用状态,设置下行设备的phy端口的极性反转;

s62:重新发起链路训练操作并根据链路训练的结果进行判断;

s63:若下行设备的端口链路为激活状态,则认为sas控制器与下行设备之间链路处于连通状态,保持phy端口的极性并设置phy端口的极性标志为反选值。方便完成对phy极性的确认。

在有些实施例中,步骤s62中,重新发起链路训练操作并根据链路训练的结果进行判断的步骤还包括:

重新发起设定阈值次数的链路训练操作后,若下行设备的端口链路为禁用状态,退出驱动的加载并输出提示信息。

在有些实施例中,该方法还包括:

将phy端口的极性标志存入eeprom;

系统重新上电启动时,读取eeprom中存储的phy端口的极性标志进行设置,完成对phy极性的确认。

进一步需要说明的是,读取sas控制器phy端口的极性配置信息的步骤之前包括:

使能pcie设备;

将该pcie设备设置为主设备;主设备连接sas控制器;

读取sas控制器phy端口信息以及下行设备端口信息;

根据读取的端口信息确定待进行极性自适应的phy端口id。确定需要极性自适应的phy端口。

在有些实施例中,读取sas控制器phy端口的极性配置信息的步骤包括:

根据phy端口id读取eeprom中保存的对应phy端口的极性配置信息。方便后续按照极性配置信息进行自适应设置。

需要说明的是,每个phy有物理tx和rx,这里称为它的极性。每个phy都有一个sasaddress,和一个唯一的标识符identifier。sas卡的phy极性与所接扩展板或者硬盘的phy极性不一致时,就会导致无法与硬盘进行通信。通过改变不同phy端口的逻辑tx、rx方向,从而可以使sas的phy极性与所接设备的phy极性一致。

具体phy极性自适应的流程如下:

(1)对设备进行配置设置,具体包括:使能pcie设备;设置当前pcie设备为主设备master;通过设置pcicommand寄存器设置pcislotbusmaster;

(2)读取sas控制器phy端口及下行设备端口信息,确定需要极性自适应的phyid;

(3)首先按照默认phy极性配置信息,对下行设备端口发起链路训练操作,读取链路训练的结果,若下行设备的端口链路为激活状态active,则认为sas控制器与下行设备之间链路处于连通状态,保持phy端口的极性并设置phy端口的极性标志为默认值default。

(4)若步骤(3)中链路训练后,下行设备的端口链路为禁用状态de-active,设置下行设备的phy端口的极性反转l,然后重新发起链路训练操作linkretrain,链路训练结束后,读取链路训练的结果,若下行设备的端口的链路为激活状态active,那么说明sas控制器与下行设备之间链路处于连通状态,保持phy端口的极性,并设置phy极性标志为反选值inverse;

(5)若上述步骤(3)、(4)链路训练操作后链路状态都为禁用状态de-active,重复步骤(3)、(4),若重复三次都没能成功,打印日志,退出驱动流程。

(6)步骤(5)出现三次都不能成功,说明sas控制器有其他硬件问题存在,这种情况下需要退出驱动的加载,提示开发人员继续排查是否有其他可能导致链路连接的问题。

(7)述步骤(3)或(4)执行成功,将phy极性标志存入eeprom,下次系统重新上电启动时,有限读取eeprom中存储的phy极性标志进行设置,重复上述(3)、(4)步骤,完成对phy极性的确认。

使用同一驱动即可自动适配不同phy极性的sas卡,解决了不同型号机器使用不同phy极性sas卡都需要进行提前适配的问题。

如图2所示,本发明技术方案还提供一种sas控制器phy端口极性自适应的系统,包括pcie设备,所述pcie设备包括主设备和若干下行设备,主设备通过sas控制器与下行设备连接;

该系统还包括极性配置信息读取模块、链路训练模块、链路训练模块、判断模块和自适应设置模块;

极性配置信息读取模块,用于读取sas控制器phy端口的极性配置信息;

链路训练模块,用于根据极性配置信息对下行设备的端口发起链路训练操作;

训练结果读取模块,用于链路训练完成后,读取链路训练模块输出的链路训练的结果;

判断模块,用于根据读取链路训练的结果进行下行设备的端口链路状态的判断;

自适应设置模块包括保持设置单元;

保持设置单元,用于若判断模块输出下行设备的端口链路为激活状态,则认为sas控制器与下行设备之间链路处于连通状态,保持phy端口的极性并设置phy端口的极性标志为默认值。

在有些实施例中,自适应设置模块还包括反转设置单元;

反转设置单元,用于若判断模块输出下行设备的端口链路为禁用状态,设置下行设备的phy端口的极性反转;

链路训练模块,还用于重新发起链路训练操作;

保持设置单元,还用于若判断模块对重新发起的链路训练的训练结果进行判断后,输出下行设备的端口链路为激活状态,则认为sas控制器与下行设备之间链路处于连通状态,保持phy端口的极性并设置phy端口的极性标志为反选值。

在有些实施例中,该系统还包括提示信息输出模块;

提示信息输出模块,用于重新发起设定阈值次数的链路训练操作后,若下行设备的端口链路为禁用状态,退出驱动的加载并输出提示信息。

在有些实施例中,该系统还包括eeprom;

保持设置单元,还用于将phy端口的极性标志存入eeprom;

配置信息读取模块,用于系统重新上电启动时,读取eeprom中存储的phy端口的极性标志。

在有些实施例中,该系统还包括信息读取模块和确定模块;

信息读取模块,用于读取sas控制器phy端口信息以及下行设备端口信息;

确定模块,用于根据读取的端口信息确定待进行极性自适应的phy端口id;

配置信息读取模块,具体还用于根据phy端口id读取eeprom中保存的对应phy端口的极性配置信息。

尽管通过参考附图并结合优选实施例的方式对本发明进行了详细描述,但本发明并不限于此。在不脱离本发明的精神和实质的前提下,本领域普通技术人员可以对本发明的实施例进行各种等效的修改或替换,而这些修改或替换都应在本发明的涵盖范围内/任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以所述权利要求的保护范围为准。

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