一种NVMe固态硬盘异常处理方法、装置及集成芯片制造方法及图纸

技术编号:28042102 阅读:57 留言:0更新日期:2021-04-09 23:25
本申请公开了一种NVMe固态硬盘异常处理方法、装置及集成芯片,该方法包括:当NAND FLASH控制器检测到直接传输出现错误,将与NVMe控制器的传输接口信号data_trans_err信号置为1,并将出现错误的信息上报CPU;当NVMe控制器检测到data_trans_err信号为1,将出现错误的数据从NAND FLASH控制器中读出,并发送与NAND FLASH控制器的握手信号,然后在NVMe控制器内部丢弃数据;当CPU收到信息,调用RAID模块对数据进行恢复。本申请对传输错误的情况标记和处理恢复,避免读操作流程因该错误卡顿或停止,降低了错误出现对数据传输的影响。

【技术实现步骤摘要】
一种NVMe固态硬盘异常处理方法、装置及集成芯片
本专利技术涉及固态硬盘运行领域,特别涉及一种NVMe固态硬盘异常处理方法、装置及集成芯片。
技术介绍
当前,NVMe(Non-VolatileMemoryexpress,快速非易失性存储)固态硬盘(SolidStateDisk,SSD)以其低延迟、低功耗、高带宽等诸多优势获得也存储届越来越多的关注,也成为了存储设备发展的新风向。NVMe控制器在数据路径上的对象主要包括PCIe(PeripheralComponentInterconnectexpress,高速外围组件互联),NVMe控制器、片上缓存或DDR存储器(DoubleDataRate,双倍速率同步动态随机存储器)、NANDFlash控制器、LDPC(LowDensityParityCheck,稀疏数据校验技术)编解码、RAID(RedundantArraysofIndependentDisk,独立冗余磁盘阵列技术)、CPU(CentralProcessingUnit,中央处理单元)等。为了提高读数据的带宽,最新的一种读方法是将NANDFlash控制器中,把NAND颗粒读取的零碎数据直接通过硬件电路传到NVMe控制器,这样就避免了SSD控制器的缓存或DDR上的等待时间,且通过硬件电路直接传输方式省去了CPU配置NVMeDMA(DirectMemoryAccess,直接内存存取)的时间,从而提高了固态硬盘读操作数据带宽。但此种处理下,一旦发生数据读取错误,固态硬盘的读操作会卡住无法继续进行,如何解决读取错误以及数据的异常恢复,是本领域技术人员要解决的问题。
技术实现思路
有鉴于此,本专利技术的目的在于提供一种NVMe固态硬盘异常处理方法、装置及集成芯片。其具体方案如下:一种NVMe固态硬盘异常处理方法,包括:当NANDFLASH控制器检测到直接传输出现错误,通过所述NANDFLASH控制器将与NVMe控制器的传输接口信号data_trans_err信号置为1,并将出现错误的信息上报CPU;当所述NVMe控制器检测到所述data_trans_err信号为1,通过NVMe控制器将出现错误的数据从所述NANDFLASH控制器中读出,并发送与所述NANDFLASH控制器的握手信号,然后在所述NVMe控制器内部丢弃所述数据;当所述CPU收到所述信息,通过所述CPU调用RAID模块对所述数据进行恢复。优选的,所述NVMe固态硬盘异常处理方法还包括:当所述RAID模块对所述数据进行恢复且恢复失败,进行以下操作:通过所述CPU配置DMA命令,并将所述DMA命令中的data_cmd_err域段置为1;当所述NVMe控制器接收到所述DMA命令,通过所述NVMe控制器对所述DMA命令对应的数据进行搬移,以将该数据写入主机内存,将所述DMA命令对应的第一执行结果中的data_cmd_err域段置为1后上报至所述CPU;当所述NVMe控制器完成NVMe命令对应的所有所述DMA命令的数据搬移,通过所述NVMe控制器将所述NVMe命令对应的第二执行结果中的data_cmd_err域段置为1后上报至所述CPU。优选的,所述NVMe固态硬盘异常处理方法还包括:当所述CPU收到所述第二执行结果,通过所述CPU向所述NVMe命令对应的CQ下发完成队列的具体数据,并将所述队列的错误状态置为1;通过所述NVMe控制器向所述主机内存写入所述具体数据,并根据PCIE的配置向主机发送MSI-X中断消息、MSI中断消息或PIN-Base中断消息。优选的,所述NVMe固态硬盘异常处理方法还包括:当所述RAID模块对所述数据进行恢复且恢复成功,进行以下操作:通过所述CPU将恢复成功的所述数据写入SSD控制器的片上缓存或DDR存储器,并相应配置DMA命令;当NVMe控制器接收到所述DMA命令,通过所述NVMe控制器对所述DMA命令对应的数据进行搬移,以将该数据写入主机内存,将所述DMA命令对应的第一执行结果上报至所述CPU;当所述NVMe控制器完成NVMe命令对应的所有所述DMA命令的数据搬移,通过所述NVMe控制器将所述NVMe命令对应的第二执行结果上报至所述CPU。优选的,所述NVMe固态硬盘异常处理方法还包括:通过所述NVMe控制器向主机回复执行成功的CQ数据。优选的,所述NVMe固态硬盘异常处理方法还包括:当所述CPU收到所述第二执行结果,通过所述CPU向所述NVMe命令对应的CQ下发完成队列的具体数据;通过所述NVMe控制器向所述主机内存写入所述具体数据,并根据PCIE的配置向主机发送MSI-X中断消息、MSI中断消息或PIN-Base中断消息。相应的,本申请还公开了一种NVMe固态硬盘异常处理装置,包括NANDFLASH控制器、NVMe控制器和CPU,其中:当所述NANDFLASH控制器检测到直接传输出现错误时,将与所述NVMe控制器的传输接口信号data_trans_err信号置为1,并将出现错误的信息上报所述CPU;当所述NVMe控制器检测到所述data_trans_err信号为1,将出现错误的数据从所述NANDFLASH控制器中读出,并发送与所述NANDFLASH控制器的握手信号,然后在所述NVMe控制器内部丢弃所述数据;当所述CPU收到所述信息,调用RAID模块对所述数据进行恢复。优选的,当所述RAID模块对所述数据进行恢复且恢复失败,所述CPU配置DMA命令,并将所述DMA命令中的data_cmd_err域段置为1;当所述NVMe控制器接收到所述DMA命令,对所述DMA命令对应的数据进行搬移,以将该数据写入主机内存,将所述DMA命令对应的第一执行结果中的data_cmd_err域段置为1后上报至所述CPU;当所述NVMe控制器完成NVMe命令对应的所有所述DMA命令的数据搬移,将所述NVMe命令对应的第二执行结果中的data_cmd_err域段置为1后上报至所述CPU。优选的,当所述CPU收到所述第二执行结果,向所述NVMe命令对应的CQ下发完成队列的具体数据,并将所述队列的错误状态置为1;所述NVMe控制器向所述主机内存写入所述具体数据,并根据PCIE的配置向主机发送MSI-X中断消息、MSI中断消息或PIN-Base中断消息。相应的,本申请还公开了一种集成芯片,包括:如上文任一项所述NVMe固态硬盘异常处理装置。本申请公开了一种NVMe固态硬盘异常处理方法,包括:当NANDFLASH控制器检测到直接传输出现错误,通过所述NANDFLASH控制器将与所述NVMe控制器的传输接口信号data_trans_err信号置为1,并将出现错误的信息上报CPU;当所述NVMe控制器检测到所述data_trans_err信号为1,通过NVMe控制器将出现错误的数据从所述NANDFLASH控制器中读出,并发本文档来自技高网
...

【技术保护点】
1.一种NVMe固态硬盘异常处理方法,其特征在于,包括:/n当NAND FLASH控制器检测到直接传输出现错误,通过所述NAND FLASH控制器将与NVMe控制器的传输接口信号data_trans_err信号置为1,并将出现错误的信息上报CPU;/n当所述NVMe控制器检测到所述data_trans_err信号为1,通过所述NVMe控制器将出现错误的数据从所述NAND FLASH控制器中读出,并发送与所述NAND FLASH控制器的握手信号,然后在所述NVMe控制器内部丢弃所述数据;/n当所述CPU收到所述信息,通过所述CPU调用RAID模块对所述数据进行恢复。/n

【技术特征摘要】
1.一种NVMe固态硬盘异常处理方法,其特征在于,包括:
当NANDFLASH控制器检测到直接传输出现错误,通过所述NANDFLASH控制器将与NVMe控制器的传输接口信号data_trans_err信号置为1,并将出现错误的信息上报CPU;
当所述NVMe控制器检测到所述data_trans_err信号为1,通过所述NVMe控制器将出现错误的数据从所述NANDFLASH控制器中读出,并发送与所述NANDFLASH控制器的握手信号,然后在所述NVMe控制器内部丢弃所述数据;
当所述CPU收到所述信息,通过所述CPU调用RAID模块对所述数据进行恢复。


2.根据权利要求1所述NVMe固态硬盘异常处理方法,其特征在于,还包括:
当所述RAID模块对所述数据进行恢复且恢复失败,进行以下操作:
通过所述CPU配置DMA命令,并将所述DMA命令中的data_cmd_err域段置为1;
当所述NVMe控制器接收到所述DMA命令,通过所述NVMe控制器对所述DMA命令对应的数据进行搬移,以将该数据写入主机内存,将所述DMA命令对应的第一执行结果中的data_cmd_err域段置为1后上报至所述CPU;
当所述NVMe控制器完成NVMe命令对应的所有所述DMA命令的数据搬移,通过所述NVMe控制器将所述NVMe命令对应的第二执行结果中的data_cmd_err域段置为1后上报至所述CPU。


3.根据权利要求2所述NVMe固态硬盘异常处理方法,其特征在于,还包括:
当所述CPU收到所述第二执行结果,通过所述CPU向所述NVMe命令对应的CQ下发完成队列的具体数据,并将所述队列的错误状态置为1;
通过所述NVMe控制器向所述主机内存写入所述具体数据,并根据PCIE的配置向主机发送MSI-X中断消息、MSI中断消息或PIN-Base中断消息。


4.根据权利要求1所述NVMe固态硬盘异常处理方法,其特征在于,还包括:
当所述RAID模块对所述数据进行恢复且恢复成功,进行以下操作:
通过所述CPU将恢复成功的所述数据写入SSD控制器的片上缓存或DDR存储器,并相应配置DMA命令;
当NVMe控制器接收到所述DMA命令,通过所述NVMe控制器对所述DMA命令对应的数据进行搬移,以将该数据写入主机内存,将所述DMA命令对应的第一执行结果上报至所述CPU;
当所述NVMe控制器完成NVMe命令对应的所有所述DMA命令的数据搬移,通过所述NVMe控制器将所述NVMe命令对应的第二执...

【专利技术属性】
技术研发人员:刘海亮黄锐汪再金刘洋
申请(专利权)人:江苏国科微电子有限公司
类型:发明
国别省市:江苏;32

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1