飞腾平台实现NVME硬盘数量拓展及热插拔的系统的制作方法

文档序号:32601864发布日期:2022-12-17 16:29阅读:63来源:国知局
飞腾平台实现NVME硬盘数量拓展及热插拔的系统的制作方法
飞腾平台实现nvme硬盘数量拓展及热插拔的系统
技术领域
1.本发明属于服务器设计领域,具体涉及一种飞腾平台实现nvme硬盘数量拓展及热插拔的系统。


背景技术:

2.通用服务器通常要求具备连续工作时间长、宕机概率低、运维便捷等特点。在该类设计要求下,nvme硬盘可热插拔更换是一个极为重要的设计指标。其中,nvme硬盘热插拔的实现可有效避免更换坏盘时首先要进行主机掉电停机的问题。最大程度降低服务器进行业务处理时因掉电换盘造成的经济损失,降低运维成本。
3.飞腾是目前中国主流的cpu生产厂商。其服务器多路cpu s2500和单路cpu ft2000+以高性能,低功耗的特点在竞争激烈的服务器cpu领域占据了较大的市场份额。但其与x86架构的服务器仍然存在较大差距。首先飞腾平台的pcie_lane数量较少,以s2500为例,共包含pcie 3.0x16 port一个,pcie 3.0x1 port两个,且pcie3.0 x16只能往下划分为2个pcie3.0 x8,若用户需要使用pcie3.0 x4的nvme硬盘,则只能接入到x8的port上,造成严重的资源浪费,也导致其无法外接更多数量的nvme硬盘。其次飞腾平台不支持nvme热插拔功能。上述两个缺陷极大程度上限制了飞腾平台在某些对硬盘读写速度及硬盘容量有较高要求领域的应用。本发明通过增加一个pcie_switch的芯片,搭配外围的cpld控制电路可有效解决飞腾平台无法外接数量较多的nvme硬盘和nvme硬盘无法热插拔的问题。


技术实现要素:

4.(一)要解决的技术问题
5.本发明要解决的技术问题是如何提供一种飞腾平台实现nvme硬盘数量拓展及热插拔的系统,以解决飞腾平台的pcie_lane数量较少,不支持nvme热插拔功能,飞腾平台无法外接数量较多的nvme硬盘和nvme硬盘无法热插拔的问题。
6.(二)技术方案
7.为了解决上述技术问题,本发明提出一种飞腾平台实现nvme硬盘数量拓展及热插拔的系统,该系统包括:pex8764、bmc、nvme硬盘背板和指示灯,pex8764用作pcie_swi tch,nvme硬盘背板包括板载cpld、nvme硬盘和u.2硬盘连接器;
8.pex8764作为pcie_switch共有4个x16的port,分别为port0、port1、port2、port3;默认选择port0作为上行pcie通道,用来和处理器进行数据交互;port1、port2、port3作为下行pcie通道;下行port1、port2、port3的48条lane最大可接入12个x4的nvme硬盘;
9.硬盘背板上的u.2硬盘连接器用于接入nvme硬盘,硬盘背板上的cpld内部搭建模拟pca9555的功能模块,并通过iic及gpio与pex8764进行连接,实现热插拔信息的交互及热插拔中断信号的处理;每一个cpld模拟的pca9555模块控制两个nvme硬盘的热插拔操作;cpld模拟的每一个pca9555还需要分配iic给对应硬盘,每一个硬盘都有一个固定的iic地址,cpld还通过iic、gpio与bmc进行通讯,实现硬盘在位信息的交互;cpld还控制外围的led
指示灯,对pex8764上的每一个port的pcie l ink状态进行亮灯提示;
10.硬盘背板上的u.2硬盘连接器上的在位侦测pin ifdet#、present#通过板载走线连接到cpld的io上。
11.进一步地,处理器为s2500或者ft2000+/64。
12.进一步地,用户根据对nvme硬盘的实际需求选择接入pex8764下行pcie port的数量,若用户只需要8个nvme硬盘,则只需要接入port1、port2、port3中的任意两个;若只需要4个nvme硬盘,则只需要接入port1、port2、port3中的任意一个。
13.进一步地,ifdet#和present#上拉至高电平时,默认逻辑值为1,在nvme硬盘插入或拔出过程中,这两个pin的逻辑值会发生一定变化:硬盘不在位时ifdet#的逻辑值为1,present#的逻辑值为1,硬盘在位时ifdet#的逻辑值为0,present#的逻辑值为1。
14.进一步地,ifdet#为u.2硬盘连接器p4 pin,present#为u.2硬盘连接器p10 pin。
15.进一步地,每一个硬盘需要一个单独的寄存器,每个pca9555需设置2个寄存器,每一个寄存器共8位。
16.进一步地,寄存器包括:pcie_reset、link_status、slot_numbe[2]、slot_numbe[1]、slot_numbe[0]、present_n、power_fault和power_good;pcie_reset、link_status的信号方向为output,slot_numbe[2]、slot_numbe[1]、slot_numbe[0]、present_n、power_fault和power_good的信号方向为input,信号方向为input则为cpld需要向寄存器写入的值,信号方向为output则表示需要pex8764写入到cpld中的数值;pcie_reset为cpld对nvme硬盘进行复位的信号,link_status表示当前nvme硬盘的pcie l ink状态;slot_numer用来指示具体硬盘的挂载slot号,pex8764根据该号来对某一个pcie设备进行初始化或者断掉通信,present_n为硬盘在位信号,power_fault硬盘供电异常信号,power_good用来指示当前硬盘供电状态。
[0017]
进一步地,cpld和bmc进行iic通讯,cpld将与硬盘有关的所有信息均写入到多个8bit寄存器中,bmc通过寄存器获得所有nvme硬盘的状态信息,运维人员在进行远程维护时通过寄存器信息确定某一个硬盘是否在位及当前硬盘是否有数据传输。
[0018]
进一步地,当拔出nvme硬盘时,ifdet#内部和gnd短接的线路被断开,此时ifdet#被上拉至高电平;cpld侦测到该pin由低变为高,则判断此时nvme硬盘被拔出;此时cpld拉低其与pex8764连接的中断信号int#,pex8764侦测到该中断pin发生变化时,会主动通过iic读cpld内部寄存的各nvme硬盘的在位信息;若pex8764检测到某一nvme硬盘的在位变为不在位,则pex8764会对主动断掉对应硬盘pcie的链接;同时cpld也会主动判断pex8764在读取cpld中寄存的各硬盘在位信息时,是否有当前被拔掉盘对应的iic地址,如果cpld读取到该地址,则拉起热插拔中断信号int#,100ms后,cpld通过控制供电模块切断该硬盘的供电,并将被拔掉硬盘的在位信息写入到对应的寄存器中,后拉低其与bmc连接的gpio中断信号,bmc接收到中断信号后,通过iic读取cpld中各硬盘在位信息,并于后台报告运维人员。
[0019]
进一步地,硬盘不在位时,ifdet#和present#逻辑值均为1,当插入nvme硬盘后,ifdet#内部和gnd短接,此时ifdet#信逻辑值变为0;cpld侦测到该pin由高变为低,则判断此时nvme硬盘被插入;此时cpld拉低连接至pex8764的int#信号,pex8764侦测到该中断pin发生变化时,会主动通过iic读取cpld内部寄存的各nvme硬盘的在位信息;若pex8764检测到某一nvme硬盘的不在位变为在位,则pex8764会对主动与对应硬盘建立pcie的链接;同时
cpld也会主动判断pex8764在读取cpld中寄存的各硬盘在位信息时,是否有与插入盘对应的iic地址,如果cpld读取到该地址,则拉起热插拔中断信号int#,完成热插入过程。
[0020]
(三)有益效果
[0021]
本发明提出一种飞腾平台实现nvme硬盘数量拓展及热插拔的系统,本发明通过增加一个pcie_switch的芯片,搭配外围的cpld控制电路可有效解决飞腾平台无法外接数量较多的nvme硬盘和nvme硬盘无法热插拔的问题。
附图说明
[0022]
图1为本发明系统结构图;
[0023]
图2为本发明的硬盘热拔出过程示意图;
[0024]
图3为本发明的硬盘热插入过程示意图;
[0025]
图4为本发明的寄存器设置示意图。
具体实施方式
[0026]
为使本发明的目的、内容和优点更加清楚,下面结合附图和实施例,对本发明的具体实施方式作进一步详细描述。
[0027]
本发明基于飞腾s2500进行方案阐述(该方案适用ft2000+/64)。该飞腾平台实现nvme硬盘数量拓展及热插拔的系统包括pex8764、bmc、nvme硬盘背板和指示灯,pex8764用作pcie_swi tch,nvme硬盘背板包括板载cpld、nvme硬盘和u.2硬盘连接器。结构如图1所示。
[0028]
pex8764作为pcie_switch共有4个x16的port,分别为port0、port1、port2、port3。默认选择port0作为上行pcie通道(可根据实际需求改变上行port),用来和处理器进行数据交互,处理器为s2500或者ft2000+/64。port1、port2、port3可作为下行pcie通道。下行port1、port2、port3的48条lane最大可接入12个x4的nvme硬盘。用户可根据对nvme硬盘的实际需求选择接入pex8764下行pcie port的数量,例如若用户只需要8个nvme硬盘,则只需要接入port1、port2、port3中的任意两个。若只需要4个nvme硬盘,则只需要接入port1、port2、port3中的任意一个。
[0029]
硬盘背板上的u.2硬盘连接器用于接入nvme硬盘,硬盘背板上的cpld内部搭建模拟pca9555的功能模块,并通过iic及gpio与pex8764进行连接,实现热插拔信息的交互及热插拔中断信号的处理。每一个cpld模拟的pca9555模块可控制两个nvme硬盘的热插拔操作,即若需要控制4个硬盘,则需cpld模拟两个pca9555模块。cpld模拟的每一个pca9555还需要分配iic给对应硬盘,也就是说每一个硬盘都有一个固定的iic地址,cpld还通过iic、gpio与bmc进行通讯,实现硬盘在位等信息的交互。cpld也控制外围的led指示灯,对pex8764上的每一个port的pcie l ink状态进行亮灯提示。
[0030]
硬盘背板上的u.2硬盘连接器上的在位侦测pin ifdet#、present#通过板载走线连接到cpld的io上。
[0031]
根据sff-8639定义的u.2硬盘连接器标准,ifdet#(u.2硬盘连接器p4 pin)和present#(u.2硬盘连接器p10 pin)上拉至高电平时,默认逻辑值为1,在nvme硬盘插入或拔出过程中,这两个pin的逻辑值会发生一定变化,变化结果如表1、表2所示,硬盘不在位时
ifdet#的逻辑值为1,present#的逻辑值为1,硬盘在位时ifdet#的逻辑值为0,present#的逻辑值为1。
[0032]
表1.nvme硬盘插入/拔出时ifdet#信号状态表
[0033]
ifdet#硬盘不在位硬盘在位逻辑值10
[0034]
表2.nvme硬盘插入/拔出时present#信号状态表
[0035]
present#硬盘不在位硬盘在位逻辑值11
[0036]
如图2所示,当拔出nvme硬盘时,ifdet#内部和gnd短接的线路被断开,此时ifdet#被上拉至高电平。cpld侦测到该pin由低变为高,则判断此时nvme硬盘被拔出。此时cpld拉低其与pex8764连接的中断信号int#,pex8764侦测到该中断pin发生变化时,会主动通过iic读cpld内部寄存的各nvme硬盘的在位信息。若pex8764检测到某一nvme硬盘的在位变为不在位,则pex8764会对主动断掉对应硬盘pcie的链接。同时cpld也会主动判断pex8764在读取cpld中寄存的各硬盘在位信息时,是否有当前被拔掉盘对应的iic地址,如果cpld读取到该地址,则拉起热插拔中断信号int#,100ms后,cpld通过控制供电模块切断该硬盘的供电,并将被拔掉硬盘的在位信息写入到对应的寄存器中,后拉低其与bmc连接的gpio中断信号,bmc接收到中断信号后,通过iic读取cpld中各硬盘在位信息,并于后台报告运维人员。
[0037]
如图3所示,硬盘不在位时,ifdet#和present#逻辑值均为1,当插入nvme硬盘后,ifdet#内部和gnd短接,此时ifdet#信逻辑值变为0。cpld侦测到该pin由高变为低,则判断此时nvme硬盘被插入。此时cpld拉低连接至pex8764的int#信号,pex8764侦测到该中断pin发生变化时,会主动通过iic读取cpld内部寄存的各nvme硬盘的在位信息。若pex8764检测到某一nvme硬盘的不在位变为在位,则pex8764会对主动与对应硬盘建立pcie的链接。同时cpld也会主动判断pex8764在读取cpld中寄存的各硬盘在位信息时,是否有与插入盘对应的iic地址,如果cpld读取到该地址,则拉起热插拔中断信号int#,完成热插入过程。
[0038]
在上述的热插拔描述过程中,cpld首先需要将表1中的数据写入到寄存器中,每一个硬盘都需要一个单独的寄存器。例如使用pex8764拓展了4个nvme硬盘,则cpld需要模拟两个pca9555模块,并分配相应iic地址给pca9555,每个pca9555需设置2个寄存器,(寄存器0和寄存器1)每一个寄存器共8位。寄存器设置示意图如图4所示。寄存器表如表3所示。表3中信号方向为input则为cpld需要向寄存器写入的值,信号方向为output则表示需要pex8764写入到cpld中的数值。pcie_reset为cpld对nvme硬盘进行复位的信号,link_status表示当前nvme硬盘的pcie link状态。slot_numer用来指示具体硬盘的挂载slot号,pex8764可根据该号来对某一个pcie设备进行初始化或者断掉通信,present_n为硬盘在位信号,power_fault硬盘供电异常信号,power_good用来指示当前硬盘供电状态。
[0039]
表3寄存器表
[0040]
[0041][0042]
本发明中需要cpld和bmc进行iic通讯,cpld将与硬盘有关的所有信息均写入到多个8bit寄存器中,并定义寄存器地址(地址长度可根据实际需求调整)。其中包括nvme硬盘的pcie link信息、硬盘在位状态、硬盘电源状态等。通过这样的逻辑处理,bmc既可以通过寄存器获得所有nvme硬盘的状态信息。运维人员在进行远程维护时通过寄存器信息确定某一个硬盘是否在位及当前硬盘是否有数据传输。
[0043]
本发明通过增加一个pcie_switch的芯片,搭配外围的cpld控制电路可有效解决飞腾平台无法外接数量较多的nvme硬盘和nvme硬盘无法热插拔的问题。
[0044]
以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明技术原理的前提下,还可以做出若干改进和变形,这些改进和变形也应视为本发明的保护范围。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1