一种用于管理高速串行链路的通道资源的方法及装置的制造方法

文档序号:9648932阅读:646来源:国知局
一种用于管理高速串行链路的通道资源的方法及装置的制造方法
【技术领域】
[0001]本发明涉及数字信息的传输技术领域,具体涉及一种用于管理高速串行链路的通道资源的方法及装置。
【背景技术】
[0002]目前高速10通信协议的物理层设计一般采用多通道串行链路,比如PCI Express协议、Fiber Channel等。一条链路(link)可包含一条或多条通道(lane),每条通道由两对差分信号线组成的双单工的串行传输通路(line),没有专用的数据、地址、控制和时钟线,总线上各种事务组织成信息包来传送。每条通路由相互独立的transmitter和receiver组成,由于两者之间相互独立,因此两者可以处于不同的功耗状态(可参考PCI Express3.0协议规范中的解释)。
[0003]近期研究表明,传统数据中心的链路利用率差异很大,网络带宽利用率随时间变化明显,大部分时间都处于1K左右。如图1(a)和1(b)所示,是在Yunti平台上运行淘宝日常业务(排名系统,推荐系统,广告系统,用户行为分析等Hadoop任务)记录了两周的真实运营数据。由图1(a)和1(b)可以看出网络带宽利用率随时间变化明显,但是带宽最低的时候链路也没有空闲。由此可以看出,为了满足所有应用的带宽需求,通信协议一般依据worst case的链路需求进行设计,使得在链路带宽中发送和接收的带宽利用率极其不对称,带宽利用率随时间变化非常明显,没有考虑带宽的按需分配,造成带宽的浪费。由于链路的带宽与功耗挂钩,所以带宽的浪费也就带来了功耗的浪费。
[0004]现有技术中有一些对通道资源进行管理的方法,以PCI Express为例,具体为PCIe设备在启动之初,在链路两端通过链路训练状态机进行宽度的协商,也就是说完全是由硬件决定。如果8个Lane均正常工作,则为8x链路;否则,依次降级尝试4x、2x、lx等宽度。这种方法的缺点是一旦链路宽度确定,在链路正常工作期间均不能改变。重训练是唯一一种可能改变链路宽度的方法,但是由于PCIe链路状态机的局限性,系统管理员不可能控制或干扰链路宽度的协商过程,不能对其进行重新设定,不能对链路的带宽/功耗进行优化。

【发明内容】

[0005]因此,本发明要解决的技术问题在于克服现有技术中的高速串行链路的通道资源无法根据当前使用状态来实时调整的缺陷。
[0006]为此,本发明的一种用于管理高速串行链路的通道资源的方法,包括如下步骤:
[0007]确定所述高速串行链路是否支持通道关闭功能;
[0008]当支持通道关闭功能时,判断所述高速串行链路的当前应用状态是否为空闲;
[0009]当所述高速串行链路的当前应用状态为空闲时,将零值写入控制寄存器组中的部分的控制开闭配置项,所述控制开闭配置项用于当其值是零值时表示控制相应通道关闭,当其值是非零值时表示控制相应通道开启。
[0010]优选地,所述确定所述高速串行链路是否支持通道关闭功能的步骤包括:
[0011]读取能力寄存器中的通道关闭配置项中的值;
[0012]判断所述通道关闭配置项中的值是否是非零值;
[0013]当所述通道关闭配置项中的值是非零值时,获得支持通道关闭功能的判断结果。
[0014]优选地,所述判断所述高速串行链路的当前应用状态是否为空闲的步骤包括:
[0015]获取所述高速串行链路当前的带宽需求和所述高速串行链路的传输速率;
[0016]根据公式:链路宽度=链路带宽/链路传输速率,计算当前所需的链路宽度;
[0017]判断所述当前所需的链路宽度是否是8x宽度;
[0018]当所述当前所需的链路宽度不是8x宽度时,获得所述高速串行链路的当前应用状态为空闲的判断结果。
[0019]优选地,还包括如下步骤:
[0020]确定所述高速串行链路是否支持通道分组绑定功能;
[0021]当支持通道分组绑定功能时,获取所需拓展的链路宽度;
[0022]将具有所述链路宽度的其他链路的链路编号写入控制寄存器组中的部分组中的控制绑定配置项,所述控制绑定配置项用于表示相应通道所绑定到的链路编号。
[0023]优选地,所述确定所述高速串行链路是否支持通道分组绑定功能的步骤包括:
[0024]读取能力寄存器中的分组绑定配置项中的值;
[0025]判断所述分组绑定配置项中的值是否是非零值;
[0026]当所述分组绑定配置项中的值是非零值时,获得支持通道分组绑定功能的判断结果Ο
[0027]优选地,还包括如下步骤:
[0028]确定所述高速串行链路是否支持通道共享功能;
[0029]当支持通道共享功能时,获取共享链路编号;
[0030]将所述共享链路编号写入控制寄存器组中的部分组中的链路分配配置项,所述链路分配配置项用于表示共享相应通道资源的链路编号。
[0031]优选地,所述确定所述高速串行链路是否支持通道共享功能的步骤包括:
[0032]读取能力寄存器中的共享配置项中的值;
[0033]判断所述共享配置项中的值是否是非零值;
[0034]当所述共享配置项中的值是非零值时,获得支持通道共享功能的判断结果。
[0035]优选地,还包括如下步骤:对所述高速串行链路进行初始化;
[0036]其中,对所述高速串行链路进行初始化包括:分别在能力寄存器中的通道开启配置项、通道关闭配置项、分组绑定配置项和共享配置项中写入相应的预设值,所述通道开启配置项用于表示支持/不支持通道开启功能,所述通道关闭配置项用于表示支持/不支持通道关闭功能,所述分组绑定配置项用于表示支持/不支持通道分组绑定功能,所述共享配置项用于表示支持/不支持通道共享功能;
[0037]分别在状态寄存器组中的每一组的共享状态配置项、开闭状态配置项和绑定状态配置项中写入相应的预设值,所述状态寄存器组中的每一组对应于表示一条通道的状态,所述共享状态配置项用于表示相应通道的共享/不共享状态,所述开闭状态配置项用于表示相应通道的开启/关闭状态,所述绑定状态配置项用于表示相应通道所绑定到的链路编号;
[0038]分别在控制寄存器组中的每一组的控制开闭配置项、控制共享配置项、控制绑定配置项和多个链路分配配置项中写入相应的预设值,所述控制共享配置项用于表示控制相应通道共享/不共享。
[0039]本发明的一种用于管理高速串行链路的通道资源的装置,包括:
[0040]第一确定单元,用于确定所述高速串行链路是否支持通道关闭功能;
[0041]第一判断单元,用于当支持通道关闭功能时,判断所述高速串行链路的当前应用状态是否为空闲;
[0042]第一写入单元,用于当所述高速串行链路的当前应用状态为空闲时,将零值写入控制寄存器组中的部分的控制开闭配置项,所述控制开闭配置项用于当其值是零值时表示控制相应通道关闭,当其值是非零值时表示控制相应通道开启。
[0043]优选地,所述第一确定单元包括:
[0044]第一读取单元,用于读取能力寄存器中的通道关闭配置项中的值;
[0045]第二判断单元,用于判断所述通道关闭配置项中的值是否是非零值;
[0046]第一结果获得单元,用于当所述通道关闭配置项中的值是非零值时,获得支持通道关闭功能的判断结果。
[0047]优选地,所述第一判断单元包括:
[0048]第一获取单元,用于获取所述高速串行链路当前的带宽需求和所述高速串行链路的传输速率;
[0049]计算单元,用于根据公式:链路宽度=链路带宽/链路传输速率,计算当前所需的链路宽度;
[0050]第三判断单元,用于判断所述当前所需的链路宽度是否是8x宽度;
[0051]第三结果获得单元,用于当所述当前所需的链路宽度不是8x宽度时,获得所述高速串行链路的当前应用状态为空闲的判断结果。
[0052]优选地,还包括:
[0053]第二确定单元,用于确定所述高速串行链路是否支持通道分组绑定功能;
[0054]第二获取单元,用于当支持通道分组绑定功能时,获取所需拓展的链路宽度;
[0055]第二写入单元,用于将具有所述链路宽度的其他链路的链路编号写入控制寄存器组中的部分组中的控制绑定配置项,所述控制绑定配置项用于表示相应通道所绑定到的链路编号。
[0056]优选地,所述第二确定单元包括:
[0057]第二读取单元,用于读取能力寄存器中的分组绑定配置项中的值;
[0058]第四判断单元,用于判断所述分组绑定配置项中的值是否是非零值;
[0059]第五结果获得单元,用于当所述分组绑定配置项中的值是非零值时,获得支持通道分组绑定功能的判断结果。
[0060]优选地,还包括:
[0061]第三确定单元,用于确定所述高速串行链路是否支持通道共享功能;
[0062]第三获取单元,用于当支持通道共享功能时,获取共享链路编号;
[0063]第三写入单元,用于将所述共享链路编号写入控制寄存器组中的部分组中的链路分配配置项,所述链路分配配置项用于表示共享相应通道资源的链路编号。
[0064]优选地,所述第三确定单元包括:
[0065]第三读取单元,用于读取能力寄存器中的共享配置项中的值;
[0066]第五判断单元,用于判断所述共享配置项中的值是否是非零值;
[0067]第七结果获得单元,用于当所述共享配置项中的值是非零值时,获得支持通道共享功能的判断结果
当前第1页1 2 3 4 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1