一种M.3SSD上电初始化的方法及系统与流程

文档序号:15998897发布日期:2018-11-20 19:11阅读:392来源:国知局

本申请涉及SSD(Solid State Drives,固态硬盘)技术领域,特别是涉及一种M.3SSD上电初始化的方法及系统。



背景技术:

随着硬盘技术的发展,新的固态硬盘M.3 SSD逐渐问世。M.3 SSD专为服务器和数据中心而打造,所提供的容量能够达到240GB、480GB、960GB、1920GB不等,持续读写速度最高可达3.2GB/s、1.8GB/s。为确保M.3 SSD的顺利使用,其上电初始化是个非常重要的问题。

目前对M.3 SSD进行初始化的方法,通常如图1所示,具体地,采用Initiator(初始化发起端)直连M.3 SSD,然后通过Initiator将配置文件导入M.3 SSD,进行初始化。

然而,目前对M.3 SSD进行初始化的方法中,由于Initiator是公用的,并非针对M.3 SSD初始化而产生,在上电初始化过程中容易产生初始化码流混乱的情况,从而导致初始化概率性失败,初始化较慢等问题。更有甚者,上电时如果没有M.3 SSD存在,会导致Initiator初始化程序以及后续程序运行错误,从而导致初始化失败。因此,采用目前对M.3 SSD进行初始化的方法,M.3 SSD初始化效率较低。



技术实现要素:

本申请提供了一种M.3 SSD上电初始化的方法及系统,以解决现有技术中M.3 SSD初始化概率性失败和初始化速率低的问题。

为了解决上述技术问题,本申请实施例公开了如下技术方案:

一种M.3 SSD上电初始化的方法,在Initiator与M.3 SSD之间设置一CPLD(Complex Programmable Logic Device,复杂可编程逻辑器件),所述方法包括:

CPLD作为从端,响应Initiator下发的第一上电初始化码流,所述第一上电初始化码流为Initiator产生的M.3 SSD上电初始化码流;

CPLD作为主控端,向M.3 SSD发送第二上电初始化码流,并对M.3 SSD进行上电初始化,所述第二上电初始化码流为CPLD产生的M.3 SSD上电初始化码流。

可选地,所述CPLD作为从端,响应Initiator下发的第一上电初始化码流,包括:

在上电起始时刻,CPLD作为从端,检测并锁存M.3 SSD的在位信息,并将M.3 SSD的在位信息上传至Initiator;

Initiator作为主控端,根据M.3 SSD的在位信息,向CPLD下发M.3 SSD上电初始化信息,所述M.3 SSD上电初始化信息包括M.3 SSD的总线地址和第一上电初始化码流;

CPLD根据所述M.3 SSD的总线地址,向Initiator下发的第一上电初始化码流发出ACK响应信号;

CPLD滤除Initiator下发的第一上电初始化码流。

可选地,CPLD根据所述M.3 SSD的总线地址,向Initiator下发的第一上电初始化码流发出ACK(Acknowledgement,确认字符)响应信号的方法,具体为:

当M.3 SSD上电初始化信息中M.3 SSD的总线地址正确时,CPLD无条件向Initiator发出ACK响应信号。

可选地,所述CPLD作为主控端,向M.3 SSD发送第二上电初始化码流,并对M.3 SSD进行上电初始化,包括:

CPLD作为主控端,根据M.3 SSD的在位信息中M.3 SSD的盘位,依次对在位的M.3 SSD发送第二上电初始化码流;

CPLD根据所述第二上电初始化码流,对M.3 SSD进行上电初始化。

可选地,所述方法还包括,CPLD终止M.3 SSD上电初始化过程,并发出M.3 SSD上电初始化完毕的标志。

一种M.3 SSD上电初始化的系统,所述系统包括:Initiator模块和CPLD模块,所述CPLD模块设置于Initiator模块与M.3 SSD之间;

所述Initiator模块,用于下发第一上电初始化码流,所述第一上电初始化码流为Initiator模块产生的M.3 SSD上电初始化码流;

所述CPLD模块,用于作为从端,响应Initiator模块下发的第一上电初始化码流;

所述CPLD模块,还用于作为主控端,向M.3 SSD发送第二上电初始化码流,并对M.3 SSD进行上电初始化,所述第二上电初始化码流为CPLD模块产生的M.3 SSD上电初始化码流。

可选地,所述CPLD模块包括检测与锁存单元、响应单元和过滤单元;

所述检测与锁存单元,用于检测并锁存M.3 SSD的在位信息,并将M.3 SSD的在位信息上传至Initiator模块;

所述响应单元,用于响应Initiator模块下发的M.3 SSD的上电初始化信息,并向Initiator模块发出ACK响应信号,所述M.3 SSD的上电初始化信息包括M.3 SSD的总线地址和第一上电初始化码流;

所述过滤单元,用于滤除Initiator模块下发的第一上电初始化码流。

可选地,所述CPLD模块还包括:初始化码流发送单元和上电初始化单元;

所述初始化码流发送单元,用于根据M.3 SSD的在位信息中M.3 SSD的盘位,依次对在位的M.3 SSD发送第二上电初始化码流;

所述上电初始化单元,用于根据第二上电初始化码流,对M.3 SSD进行上电初始化。

本申请的实施例提供的技术方案可以包括以下有益效果:

本申请提供一种M.3 SSD上电初始化的方法,该方法在Initiator与M.3 SSD之间设置一CPLD。首先,CPLD作为从端响应Initiator下发的第一上电初始化码流,然后CPLD作为主控端向M.3 SSD发送第二上电初始化码流,并对M.3 SSD进行上电初始化。本申请通过在Initiator与M.3 SSD之间设置一CPLD,设计一种CPLD参与的M.3 SSD上电初始化的方法,利用CPLD分别作为Initiator的从端和M.3 SSD的主控端。作为Initiator从端的CPLD向Initiator发出ACK响应信号后,会滤除Initiator下发的所有的第一上电初始化码流,然后作为主控端的CPLD根据锁存的M.3 SSD的盘位,依次对在位的M.3 SSD发送第二上电初始化码流,从而使公用的Initiator转化为专门针对M.3 SSD初始化而设计的主控端,进而逐步完成M.3 SSD上电初始化。由于本申请中CPLD会滤除Initiator下发的所有的第一上电初始化码流,并根据锁存的盘位向M.3 SSD发送第二上电初始化码流,因此能够大大减少无效码流的数量,从而提高M.3 SSD初始化的成功率和M.3 SSD初始化的速率。

本申请还提供一种M.3 SSD上电初始化的系统,该系统包括Initiator模块和CPLD模块,其中,CPLD模块设置于Initiator模块与M.3 SSD之间。本申请中CPLD模块分别作为Initiator的从端和M.3 SSD的主控端。作为Initiator从端的CPLD模块向Initiator发出ACK响应信号后,会滤除Initiator下发的所有的第一上电初始化码流,然后作为主控端的CPLD模块根据锁存的M.3 SSD的盘位,依次对在位的M.3 SSD发送第二上电初始化码流,因此,本申请中的M.3 SSD上电初始化的系统,能够大大减少无效码流的数量,从而提高M.3 SSD初始化的成功率和M.3 SSD初始化的速率,进而提高M.3 SSD初始化的效率。

应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本申请。

附图说明

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

图1为现有技术中Initiator初始化M.3 SSD的拓扑图;

图2为本申请实施例所提供的一种M.3 SSD上电初始化的方法的流程示意图;

图3为本申请实施例所提供的一种M.3 SSD上电初始化的系统的结构示意图。

具体实施方式

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

为了更好地理解本申请,下面结合附图来详细解释本申请的实施方式。

实施例一

参见图2,图2为本申请实施例所提供的一种M.3 SSD上电初始化的方法的流程示意图。由图2可知,本申请中M.3 SSD上电初始化的方法,包括如下步骤:

S1:CPLD作为从端,响应Initiator下发的第一上电初始化码流。其中,第一上电初始化码流为Initiator产生的M.3 SSD上电初始化码流。

本实施例在Initiator与M.3 SSD之间设置一CPLD,该CPLD首先作为Initiator的从端,响应Initiator下发的第一上电初始化码流,从而保证Initiator能够正常运行。

具体地,步骤S1包括如下过程:

S11:在上电起始时刻,CPLD作为从端,检测并锁存M.3 SSD的在位信息,并将M.3 SSD的在位信息上传至Initiator。

本实施例中,M.3 SSD的在位信息用于判断M.3 SSD的总线地址。CPLD与M.3 SSD连接,且M.3 SSD中自带信号线,根据CPLD的检测请求,M.3 SSD中的信号线通过高低电平向CPLD传输其自身是否在位的信息。然后,CPLD将M.3 SSD的在位信息上传至Initiator,以便于Initiator下发M.3 SSD上电初始化信息。

S12:Initiator作为主控端,根据M.3 SSD的在位信息,向CPLD下发M.3 SSD上电初始化信息。

其中,M.3 SSD上电初始化信息包括M.3 SSD的总线地址和第一上电初始化码流。

S13:CPLD根据所述M.3 SSD的总线地址,向Initiator下发的第一上电初始化码流发出ACK响应信号。

具体地,当M.3 SSD上电初始化信息中M.3 SSD的总线地址正确时,CPLD无条件向Initiator发出ACK响应信号。

也就是说,Initiator作为主控端,其下发的所有M.3 SSD上电初始化信息,只要这些信息中总线地址这一字段正确,无论所有M.3 SSD上电初始化信息所对应的盘位是否存在,为确保Initiator的正常运行,CPLD作为Target端,会无条件向Initiator发出ACK响应信号。

S14:CPLD滤除Initiator下发的第一上电初始化码流。

继续参见图2可知,CPLD作为从端响应Initiator下发的第一上电初始化码流之后,执行步骤S2:CPLD作为主控端,向M.3 SSD发送第二上电初始化码流,并对M.3 SSD进行上电初始化。

其中,第二上电初始化码流为CPLD产生的M.3 SSD上电初始化码流。

具体地,步骤S2包括如下过程:

S21:CPLD作为主控端,根据M.3 SSD的在位信息中M.3 SSD的盘位,依次对在位的M.3 SSD发送第二上电初始化码流。

由步骤S11可知,在上电起始时刻,CPLD作为从端,已经检测并锁存M.3 SSD的在位信息,也就是CPLD已经检测M.3 SSD的在位信息,并对M.3 SSD的在位信息中的盘位进行锁存。在此基础上执行步骤S21,CPLD作为主控端时,根据锁存的M.3 SSD的盘位,依次对在位的M.3 SSD发送第二上电初始化码流。

S22:CPLD根据第二上电初始化码流,对M.3 SSD进行上电初始化。

进一步地,本实施例中M.3 SSD上电初始化的方法,还包括如下过程:

S3:CPLD终止M.3 SSD上电初始化过程,并发出M.3 SSD上电初始化完毕的标志。

具体地,通过CPLD代码中状态机制的控制,利用程序控制M.3 SSD从上电初始化状态跳转至空闲状态,从而结束M.3 SSD上电初始化过程。

由于Initiator为公用的主控端,Initiator下发的第一上电初始化码流中存在初始化码流混乱的问题。本实施例中CPLD无条件向Initiator发出ACK响应信号之后,确保不对Initiator的运行造成影响的前提下,滤除Initiator下发的第一上电初始化码流,然后作为主控端的CPLD根据锁存的M.3 SSD的盘位,依次对在位的M.3 SSD发送第二上电初始化码流。因此,本实施例中的方法能够大大减少无效码流的数量,从而提高M.3 SSD初始化的成功率和M.3 SSD初始化的速率。

另外,本申请采用CPLD对M.3 SSD进行上电处理化,其实时性好,有利于提高初始化效率。且CPLD相对于FPGA性价比高,有利于降低成本,便于本申请中M.3 SSD上电初始化方法的推广使用。

实施例二

在图2所示实施例的基础之上参见图3,图3为本申请实施例所提供的一种M.3 SSD上电初始化的系统的结构示意图。图3中粗虚线框代表在M.3 SSD上电初始化前段过程中,CPLD模块作为从端,细虚线框代表在M.3 SSD上电初始化后段过程中,CPLD模块作为主控端。

由图3可知,本实施例中的M.3 SSD上电初始化的系统主要包括Initiator模块和CPLD模块两部分,其中,CPLD模块设置于Initiator模块与M.3 SSD之间。

Initiator模块用于下发第一上电初始化码流,第一上电初始化码流为Initiator模块产生的M.3 SSD上电初始化码流;CPLD模块用于作为从端,响应Initiator模块下发的第一上电初始化码流;CPLD模块还用于作为主控端,向M.3 SSD发送第二上电初始化码流,并对M.3 SSD进行上电初始化,第二上电初始化码流为CPLD模块产生的M.3 SSD上电初始化码流。

其中,CPLD模块包括检测与锁存单元、响应单元和过滤单元。检测与锁存单元用于检测并锁存M.3 SSD的在位信息,并将M.3 SSD的在位信息上传至Initiator模块;响应单元用于响应Initiator模块下发的M.3 SSD的上电初始化信息,并向Initiator模块发出ACK响应信号,M.3 SSD的上电初始化信息包括M.3 SSD的总线地址和第一上电初始化码流;过滤单元用于滤除Initiator模块下发的第一上电初始化码流。

进一步地,CPLD模块还包括:初始化码流发送单元和上电初始化单元;初始化码流发送单元用于根据M.3 SSD的在位信息中M.3 SSD的盘位,依次对在位的M.3 SSD发送第二上电初始化码流;上电初始化单元用于根据第二上电初始化码流,对M.3 SSD进行上电初始化。

本实施中M.3 SSD上电初始化系统的工作原理和方法,在图2所示的实施例一中已经详细阐述,两者可以互相参照,在此不再赘述。

以上所述仅是本申请的具体实施方式,使本领域技术人员能够理解或实现本申请。对这些实施例的多种修改对本领域的技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本申请的精神或范围的情况下,在其它实施例中实现。因此,本申请将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。

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