[发明专利]一种双端口PCIe SSD链路容错装置及方法有效
申请号: | 202110376732.0 | 申请日: | 2021-04-08 |
公开(公告)号: | CN113114595B | 公开(公告)日: | 2022-11-18 |
发明(设计)人: | 吴斌;孙中琳;段好强;乔子龙 | 申请(专利权)人: | 山东华芯半导体有限公司 |
主分类号: | H04L49/552 | 分类号: | H04L49/552;H04L49/55;H04L49/111;H04L45/28;H04L45/247;H04L45/00 |
代理公司: | 济南泉城专利商标事务所 37218 | 代理人: | 赵玉凤 |
地址: | 250101 山东省济南市高新*** | 国省代码: | 山东;37 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 端口 pcie ssd 容错 装置 方法 | ||
1.一种双端口PCIe SSD链路容错装置,其特征在于:本装置在SSD主控芯片内部实现,实现SSD链路状态的主动预测,包括双端口使能单元、链路预测逻辑单元、中断控制单元和smbus主从设备;
双端口使能单元通过配置寄存器使能PCIe的双端口模式,将所有数据通道平均分为两组,每一组配置为一个端口,每组独立传输数据并不受另一组影响;
链路预测逻辑单元用于实现链路状态的评估,该单元将接收端数据包的ECRC和LCRC的结果作为输入信号来判断当前数据传输是否发生错误,当ECRC和LCRC校验失败时认定存在错误,启动误码率错误统计,当误码率超过阈值时认定为链路异常,并将判断结果输出给中断控制单元;
中断控制单元以链路预测逻辑单元的输出作为输入信号,根据不同的输入结果,通过内部总线向CPU发送不同的中断请求信号,触发固件的异常处理程序;
Smbus主从设备作为带外管理接口,用于向服务器带外管理控制器发送设备的故障请求并接收命令。
2.根据权利要求1所述的双端口PCIe SSD链路容错装置,其特征在于:链路预测逻辑单元包括一个缓存buffer、一个运算单元、一个阈值表和一个链路状态信号,缓存buffer用于存放错误数据,当依据ECRC和LCRC结果判断到有数据传输错误时,将此次错误数据缓存到该buffer内,运算单元用于将重传的正确数据与buffer中记录的错误数据进行比较,计算出错误比特个数,当误码率超过阈值时判断链路信号异常,当误码率低于阈值时,认为链路恢复正常,阈值表记录参考误码率,链路状态信号记录当前两个端口的链路状态,用于链路信号质量的异常与正常切换的标识。
3.根据权利要求1所述的双端口PCIe SSD链路容错装置,其特征在于:SSD内部设置两个NVMe控制器用来配合双端口设计。
4.根据权利要求1所述的双端口PCIe SSD链路容错装置,其特征在于:通过PCIeswitch实现多台主机访问SSD的效果。
5.一种双端口PCIe SSD链路容错方法,其特征在于:本方法在SSD主控芯片内部实现,实现SSD链路状态的主动预测,包括以下步骤:
S01)、SSD固件通过配置双端口使能单元的寄存器,使能当前的工作模式为双端口模式,在插入服务器后,链路两端进行链路训练及协商,使SSD工作在双端口模式;所述双端口模式是将所有数据通道平均分为两组,每一组配置为一个端口,每组独立传输数据并不受另一组影响;
S02)、SSD正常读写的过程中,链路预测逻辑单元自动进入运行状态,当SSD接收的数据包发生ECRC或者LCRC错误时,启动误码率错误统计,当误码率超过阈值时认定为链路异常,并将判断结果输出给中断控制单元;
S03)、中断控制单元通过内部总线向CPU发起中断异常请求信号;
S04)、CPU响应中断异常请求信号后,判断到链路出现异常,将已接收到的读写命令全部完成并保存到Nand Flash中,并将控制器0置位为只读模式,同时通过smbus驱动主动向服务器带外管理发送告警,等待服务器查询SSD的错误寄存器和日志;
S05)、服务器带外管理单元通知驱动切换到备用端口发送请求,并通过带外管理命令向SSD发送确认信息;
S06)、SSD收到信息后开始发起故障链路的重新训练请求,链路两端在链路训练状态机控制下重新进行参数调整,若重新训练后的链路指令满足要求,链路重新进入正常模式,此时CPU收到新的中断请求,表示链路恢复,固件修改控制器0的工作模式由只读变为正常,恢复读写请求的处理,同时通过smbus向对端服务器带外管理控制器发送请求,关闭告警状态;若重新训练后的链路指令仍然不能满足,此链路被服务器剔除。
6.根据权利要求5所述的双端口PCIe SSD链路容错方法,其特征在于:当SSD接收的数据包发生ECRC或者LCRC错误时,将本次传输的数据缓存到指定buffer中,同时数据链路层按照协议规定进行重传处理,当重传数据判定无误后,逻辑运算单元将缓存在buffer中的数据与重传数据进行比较,统计出误码率,并将此次误码率与参考阈值进行比较,如果连续N次中有超过70%发生错误,则认为链路异常,输出有效电平给中断控制单元。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于山东华芯半导体有限公司,未经山东华芯半导体有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202110376732.0/1.html,转载请声明来源钻瓜专利网。