专利名称:多接口固态硬盘及其处理方法和系统的利记博彩app
技术领域:
本发明涉及通信领域,尤其涉及一种多接口固态硬盘及其处理方法和系统。
背景技术:
SSD(Solid State Disk,固态硬盘)以flash作为存储介质,与传统硬盘相比, 具有数据存取速度快、防震抗摔、低功耗、经久耐用、无噪音、外观轻薄等优势,在某些特 殊应用场景下,具有替代传统硬盘的良好前景。普通SATAGerialAdvanced Technology Attachment,串行高级技术附件)3. 0接口的SSD硬盘受限于SATA3. 0接口的带宽,往往不 能发挥其最大个生能,才目比之下,基于PCIe (Peripheral Component Interconnect Express, 外围设备互联较快)接口的SSD具有更大容量更高性能的优势,可以很好地应用于对容量 和性能要求较高的领域。目前市场上的PCIe接口的SSD,都是单个PCIe接口的SSD,如图1所示,SSD和主 机1 (例如PC机、或服务器等)通过PCIe接口连接,主机1通过驱动1将SSD作为自身的 存储设备,可以直接访问SSD ;主机2通过驱动2和主机1上运行的代理模块,然后再通过 主机1上的驱动1将对SSD的访问命令下发到SSD,实现对SSD的间接访问。在实现上述多个主机共享访问SSD的过程中,发明人发现现有技术中至少存在如 下问题单个PCIe接口的SSD只能插入到一台主机,只能被一个主机直接访问,其他主机 则只能间接访问该SSD,使得间接访问该SSD的主机访问带宽较小,访问延迟较大,不能很 好地满足各主机对SSD高性能、高带宽和大容量的需求。
发明内容
本发明的实施例提供一种多接口固态硬盘及其处理方法和系统,实现多个主机直 接共享访问SSD,满足各主机对SSD高性能、高带宽和大容量的需求。为达到上述目的,本发明的实施例采用如下技术方案一种多接口固态硬盘,包括多个接口控制单元、命令调度单元、flash控制单元以 及flash芯片,每个接口控制单元分别对应于一个通信接口 ;所述接口控制单元,用于通过所述通信接口接收操作命令;所述命令调度单元,用于按照调度规则从多个所述接口控制单元中获取所述操作 命令,将所述操作命令放入命令队列;所述命令调度单元还用于从所述命令队列中取出所述操作命令并发送给所述 flash控制单元;所述flash控制单元,用于将接收到的所述操作命令转化为flash操作命令,通过 所述flash操作命令对所述flash芯片进行操作。
一种多接口固态硬盘处理方法,包括通过多个通信接口接收操作命令;
按照调度规则获取从所述多个通信接口接收的所述操作命令,将所述操作命令放入命令队列;从所述命令队列中取出所述操作命令;将所述操作命令转化为flash操作命令,对所述固态硬盘中的flash芯片进行操作。一种多接口固态硬盘处理系统,包括至少一个主机和至少一个多接口固态硬 盘;所述主机包括多接口固态硬盘驱动,通过运行所述驱动,实现所述主机和所述多 接口固态硬盘的直接通信连接,所述主机用于向所述多接口固态硬盘发送操作命令;所述多接口固态硬盘包括多个接口控制单元、命令调度单元、flash控制单元以及 flash芯片,每个接口控制单元分别对应于一个通信接口 ;所述接口控制单元,用于通过所 述通信接口接收所述主机发送的操作命令;所述命令调度单元,用于按照调度规则从多个 所述接口控制单元中获取所述操作命令,将所述操作命令放入命令队列;所述命令调度单 元还用于从所述命令队列中取出所述操作命令并发送给所述flash控制单元;所述flash 控制单元,用于将接收到的所述操作命令转化为flash操作命令,通过所述flash操作命令 对所述flash芯片进行操作。本发明实施例提供的多接口固态硬盘及其处理方法和系统,在固态硬盘中设置多 个通信接口,使得不同的主机可以通过不同的通信接口与该固态硬盘接口直接通信连接, 避免了当多个主机共享SSD时,除与该SSD直接连接的主机以外的主机需要间接访问该SSD 的问题,实现不同的主机可以并发地直接访问该固态硬盘,不需要相互之间通过共享方式 进行访问,因此,提高了访问带宽,满足各主机对SSD的高性能、高带宽和大容量等特性的 需求。
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现 有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本 发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以 根据这些附图获得其他的附图。图1为现有技术中的固态硬盘处理系统的组成框图;图2为本发明实施例1中多接口固态硬盘的组成框图;图3为本发明实施例2中多接口固态硬盘的组成框图;图4为本发明实施例3中多接口固态硬盘处理方法流程图;图5为本发明实施例3中另一多接口固态硬盘处理方法流程图;图6为本发明实施例4中一种多接口固态硬盘处理系统的组成框图;图7为本发明实施例4中另一种多接口固态硬盘处理系统的组成框图;图8为本发明实施例4中另一种多接口固态硬盘处理系统的组成框图。
具体实施例方式下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于 本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他 实施例,都属于本发明保护的范围。实施例1本发明实施例提供一种多接口固态硬盘,如图2所示,包括多个接口控制单元11, 命令调度单元12,flash控制单元13以及flash芯片14 ;每个所述接口控制单元11分别对应于一个通信接口,所述接口控制单元11用于 通过所述通信接口接收操作命令;具体的,通信接口可以是PCIe接口,或者SATA接口等; 接口控制单元11接收的操作命令来自与硬盘卡相连的各种主机,例如PC、服务器等,在此 并不限定。所述命令调度单元12用于按照调度规则从多个所述接口控制单元11中获取所述 操作命令,将所述操作命令放入命令队列;具体的,所述命令调度单元12可以采用按照多 个所述通信接口轮询的原则,或者根据多个所述通信接口编号按照较低编号优先或较高编 号优先的原则,或者其他用户自定义的原则对多个接口控制单元11中的操作命令进行调 度,在此并不限定。所述命令调度单元12还用于从所述命令队列中取出所述操作命令并发送给所述 flash控制单元13 ;具体的,在将所述操作命令从所述命令队列中取出时,按照命令队列先 进先出的规则,依次将所述操作命令取出。所述flash控制单元13用于将接收到所述操作命令转化为flash操作命令,通过所述flash操作命令对所述flash芯片14进行操作;具体的,这里的flash芯片可以采用 NAND (与非)flash,以获得更好的性能;由于通过接口控制单元接收的命令并不能直接对 flash芯片进行操作,因此,需要通过flash控制单元13将操作命令进行转化成flash操作 命令后对flash芯片进行操作,如读数据或写数据或者其他控制操作等。本发明实施例中,在固态硬盘中设置多个通信接口,使得不同的主机可以通过不 同的通信接口与该固态硬盘接口直接通信连接,避免了当多个主机共享SSD时,除与该SSD 直接连接的主机以外的主机需要间接访问该SSD的问题,实现不同的主机可以并发地直接 访问该SSD,不需要相互之间通过共享方式进行访问,因此,提高了主机的访问带宽,满足各 主机对SSD高性能、高带宽和大容量的需求。实施例2本发明实施例提供一种多接口固态硬盘,如图3所示,包括多个接口控制单元11、 命令调度单元12、flash控制单元13和flash芯片14。每个所述接口控制单元11分别对应于一个通信接口,所述接口控制单元11用于 通过所述通信接口接收操作命令;具体的,所述多个通信接口可以为PCIe接口,但本发明实施例对此不进行限制, 所述通信接口还可以为SATA接口 ;根据PCIe接口和SATA接口的特性,将所述多个通信接 口设置为PCIe接口,相对于使用SATA接口,可以提高主机与所述SSD之间的传输带宽,可 以满足对带宽性能要求很高的领域;但本发明实施例对此不进行限制。所述多个通信接口 的接口类型可以根据用户的需求灵活的设置,例如,为了兼容具有不同类型接口的主机,将 所述多个通信接口一部分设置为PCIe接口,另一部分设置为SATA接口 ;为了适应对带宽的要求不是很高的应用领域,还可以将所述两个通信接口都设置为SATA接口 ;对于传输带宽 和传输性能要求比较高的应用领域,可以将所述多个通信接口都设置为PCIe接口。接口控制单元11,用于通过通信接口接收操作命令,例如,通过PCIe接口或SATA 接口接收来自主机的操作命令;其中,所述操作命令可以为读写命令,还可以为一些具有维 护功能的命令,例如,日志查询命令、坏块统计查询命令以及flash内数据块擦除次数等命 令,本发明实施例对此不进行限制。本发明实施例中,所述命令调度单元12按照调度规则从多个所述接 口控制单元 11中获取所述操作命令,将所述操作命令放入命令队列;具体的,所述命令调度单元12在按照调度规则从多个所述接口控制单元11中获 取所述操作命令,将所述操作命令放入命令队列时,可以采用以下的方法,包括命令调度单元12按照调度规则向多个所述接口控制单元发送获取操作命令的获 取命令;接口控制单元接收到命令调度单元发送的获取命令后,将操作命令发送到所述命 令调度单元12 ;命令调度单元12将接收到的操作命令放入命令队列中。具体的,命令调度 单元12可以采用按照多个所述通信接口轮询的原则,或者根据多个所述通信接口编号按 照较低编号优先或较高编号优先的原则对多个接口控制单元11中的操作命令进行调度, 在此并不限定。除了上述调度规则为,所述命令调度单元12还可以根据用户的需求使用其 他自定义的调度规则,本发明实施例对此不进行限制。例如,当所述命令调度单元12采用按照多个所述通信接口轮询的原则,从多个所 述接口控制单元11中获取操作命令,并将所述操作命令放入命令队列时,具体可以包括当所述多接口 SSD的两个接口控制单元(接口控制单元1和接口控制单元2),通 过对应的通信接口分别接收到主机1和主机2发送的操作命令(命令1和命令2)后,所述 命令调度单元12按照预定的周期向所述接口控制单元1和接口控制单元12发送获取所述 操作命令的读取命令,所述接口控制单元1和接口控制单元2在接收到该读取命令后,将其 暂存的操作命令下发给所述命令调度单元12 ;该命令调度单元12将接收的命令1先放入 命令队列中,再将接收到的命令2放入该命令队列中。例如,当所述命令调度单元12采用根据多个所述通信接口编号按照较低编号优 先的原则,从多个所述接口控制单元11中获取操作命令,并将所述操作命令放入命令队列 时,具体可以包括当所述多接口 SSD的两个接口控制单元(接口控制单元1和接口控制单元2),通 过对应的通信接口分别接收到主机1和主机2发送的操作命令(命令1和命令2)后,所述 命令调度单元12按照两个通信接口的编号从低到高的顺序或者两个通信接口的编号从高 到低的顺,依次向对应的接口控制单元1和接口控制单元2发送获取所述操作命令的读取 命令;接口控制单元1和接口控制单元2在接收到该读取命令后,将其暂存的操作命令下发 给所述命令调度单元;该命令调度单元将接收的命令1先放入命令队列中,再将接收到的 命令2放入该命令队列中。例如,当所述命令调度单元12采用根据多个所述通信接口编号按照较高编号优 先的原则,从多个所述接口控制单元11中获取操作命令,并将所述操作命令放入命令队列 时,具体可以包括当所述多接口 SSD的两个接口控制单元(接口控制单元1和接口控制单元2),通过对应的通信接口分别接收到主机1和主机2发送的操作命令(命令1和命令2)后,所述 命令调度单元12按照两个通信接口的编号从高到低的顺序,依次向对应的接口控制单元2 和接口控制单元1发送获取所述操作命令的读取命令;接口控制单元2和接口控制单元1 在接收到该读取命令后,将其暂存的操作命令下发给所述命令调度单元;该命令调度单元 将接收的命令2先放入命令队列中,再将接收到的命令1放入该命令队列中。进一步的,当需要执行所述操作命令时,所述命令调度单元12还用于从所述命令 队列中将之前入队的操作命令取出并发送给所述flash控制单元13。具体的,在将操作命 令从命令队列中取出时,按照命令队列先进先出的规则,依次将操作命令取出。
所述命令调度单元12在物理上设置有对应于接口控制单元数量的入端口和一个 出端口 ;每个入端口分别与其对应的接口控制单元的出端口相连,该出端口与flash控制 单元的入端口连接;所述命令调度单元12按照调度规则从多个所述接口控制单元11中获 取所述操作命令,并通过该入端口将所述操作命令放入命令队列中,并在将所述操作命令 从所述命令队列中取出后,通过该出端口将所述从操作命令发送给所述flash控制单元。所述flash控制单元13用于将接收到所述操作命令转化为flash操作命令,通过 所述flash操作命令对所述flash芯片14进行操作;具体的,所述flash控制单元13接收所述操作命令,将所述操作命令转化为flash 操作命令,并将所述flash操作命令发送给所述Flash芯片14,具体的,这里的flash芯片 可以采用NAND flash,以获得更好的性能;由于通过接口控制单元接收的命令并不能直接 对flash芯片进行操作,因此,需要通过flash控制单元13将操作命令进行转化成flash 操作命令后对flash芯片进行操作,如读数据或写数据等。此外,根据对容量的需求,该flash控制单元13可以与一个或多个flash芯片14 相连;或者,本发明实施例也可以包括多个flash控制单元,每个flash控制器与一个或多 个flash芯片相连,各个flash控制单元通过总线与命令调度单元12相连。进一步的,需要说明的是,在所述命令调度单元12从所述命令队列将所述操作命 令取出后,所述命令调度单元12还用于判断所述操作命令是否由多条命令组成;若判定所 述操作命令由多条命令组成,将所述操作命令划分为多条命令,并将所述多条命令发送给 所述flash控制单元;若判定所述操作命令由一条命令组成,将所述一条命令发送给所述 flash控制单元。并且,当所述flash控制单元13接收到的所述操作命令包含多条命令时,将所述 多条命令分别转化为对应的多条flash操作命令,并将所述多条flash操作命令分别发送 给flash芯片,以便所述flash芯片并行处理所述多条flash操作命令;当所述flash控制 单元13接收到的所述操作命令包含一条命令时,将所述一条命令转化为一条对应的flash 操作命令,并将所述flash操作命令发送给flash芯片处理。进一步的,当所述flash芯片执行完所述操作命令时,将所述操作命令的执行结 果返回给所述命令调度单元12,以便该命令调度单元12结束相应操作命令的执行;所述命 令调度单元12接收所述操作命令的执行结果,并将所述操作命令的执行结果通过对应的 接口控制单元11返回给所述主机。具体的,将所述操作命令的执行结果通过对应的接口控制单元返回给所述主机 时,可以采用中断方式将所述执行结果直接通过对应的接口控制单元返回给所述主机;也可以将所述执行结果发送给对应的接口控制单元,由主机周期性的检测接口控制单元中是 否保存有操作命令的执行结果,若检测到接口控制单元中保存有操作命令的执行结果,则 该主机获取所述执行结果;具体实施时本发明对此不进行限制,具体选用何种方式,可以根 据具体情况具体选用。
具体的,当组成操作命令的多条命令并发执行时,先执行完的命令先返回给所述 命令调度单元,以便该命令调度单元结束该命令的执行。本发明实施例中,上述各单元可以通过各种硬件处理芯片来实现,例如,上述接 口控制单元以及命令调度单元可以用一个PLD (Programable LogicDevice,可编程逻辑器 件)芯片(如 FPGA (Field-Programmable Gate Array,现场可编程门阵列)、CPLD (Complex Programmable Logic Device,复杂可编程逻辑器件))等来实现,flash控制单元用另一个 PLD来实现;或者各个单元都单独用一个PLD芯片来实现,在此并不限定。本发明实施例中,在固态硬盘中设置多个通信接口,使得不同的主机可以通过不 同的通信接口与该固态硬盘接口直接通信连接,避免了当多个主机共享SSD时,除与该SSD 直接连接的主机以外的主机需要间接访问该SSD的问题,实现不同的主机可以并发地直接 访问该固态硬盘,不需要相互之间通过共享方式进行访问,因此,提高了访问带宽,满足各 主机对SSD的高性能、高带宽和大容量等特性的需求。并且,本发明实施例中多接口 SSD的接口为PCIe接口时,基于PCIe接口的性能, 相对于其他接口,进一步的提高了访问带宽,使得主机可以充分的使用SSD的高性能、高带 宽和大容量等特性,从而使得系统的性能得到较大程度的提高。进一步的,在将接收到的主机发送的操作命令从命令队列中取出后,判断所述操 作命令是否由多个命令组成,在判定由多个命令组成时,将所述操作命令划分为多个命令, 并将所述多个命令同时下发,使得多命令处于并列处理中,可以提高命令的处理速度;并 且处于并列处理中的多条命令中的一条先处理完后,可以先将处理结果返回给命令调度单 元,以便该命令调度单元结束该命令的执行,使得SSD内有尽可能多空闲通道供其他命令 的处理,从而提高了 SSD的性能。实施例3本发明实施例提供一种多接口固态硬盘处理方法,如图4所示,该方法包括201、通过多个通信接口接收操作命令;具体的,本发明实施例中,多接口固态硬盘设置有多个接口控制单元,每个接口控 制单元与一种通信接口对应;接收的操作命令来自主机,用于对SSD内部的flash进行操 作。进一步的,在接收到操作命令后,先将所述操作命令暂存到该接口控制单元中,等 待后续被调度。202、按照调度规则获取从所述多个通信接口接收的所述操作命令,将所述操作命 令放入命令队列;具体的,可以通过SSD的命令调度单元按照调度规则进行调度,并将操作命令放 入命令队列中;具体可以包括如下步骤命令调度单元按照调度规则向多个所述接口控制单元发送获取操作命令的获取 命令;接口控制单元接收到获取命令后,将操作命令发送到命令调度单元;命令调度单元将接收到的操作命令放入命令队列中。其中,命令调度单元可以采用按照多个所述通信接口轮询的原则,或者根据多个 所述通信接口编号按照较低编号优先或较高编号优先的原则对多个接口控制单元中的操 作命令进行调度,除了上述调度规则为,本发明实施例还可以根据用户的需求使用其他自 定义的调度规则,本发明实施例对此不进行限制。其中,所述命令调度单元按照各种调度算法对多个接口控制单元中的操作命令进 行调度的具体实现,可以参考实施例2中的相应描述,此处将不再赘述。203、从所述命令队列中取出所述操作命令。具体的,在将所述操作命令从所述命令队列中取出时,按照命令队列先进先出的 规则,依次将所述操作命令取出。
204、将所述操作命令转化成flash操作命令,对所述固态硬盘中的flash芯片进 行操作。需要说明的是,在步骤203之后,如图5所示,还可以包括如下步骤2031、判断所述操作命令是否由多条命令组成;若判定所述操作命令由多条命令 组成,则执行步骤2032 ;若判定所述操作命令由一条命令组成,则执行步骤2033。2032、将所述操作命令划分为多条命令,并执行步骤204,即将所述多条命令转化 成对应的多条flash操作命令,对所述固态硬盘中的flash芯片进行操。2033、执行步骤204,即将所述一条命令转化成对应的一条flash操作命令,对所 述固态硬盘中的flash芯片进行操作。具体的,这里的flash芯片可以采用NAND flash,以获得更好的性能;由于通过通 信接口接收到的操作命令并不能直接对flash芯片进行操作,因此,需要将操作命令进行 转化成flash操作命令后,才能对flash芯片进行操作,如读数据或写数据或者其他控制操作等。需要说明的时,在步骤204之后,该方法还可以包括将所述操作命令的执行结果返回给所述命令调度单元,以便该命令调度单元结束 相应操作命令的执行;所述命令调度单元接收所述操作命令的执行结果,并将所述操作命 令的执行结果通过对应的接口控制单元返回给所述主机。具体的,将所述操作命令的执行结果通过对应的接口控制单元返回给所述主机 时,可以采用中断方式将所述执行结果直接通过对应的接口控制单元返回给所述主机;也 可以将所述执行结果发送给对应的接口控制单元,由主机周期性的检测接口控制单元中是 否保存有操作命令的执行结果,若检测到接口控制单元中保存有操作命令的执行结果,则 该主机获取所述执行结果;具体实施时本发明对此不进行限制,具体选用何种方式,可以根 据具体情况具体选用。具体的,当组成操作命令的多条命令并发执行时,先执行完的命令先返回给所述 命令调度单元,以便该命令调度单元结束该命令的执行。具体的,上述各步骤的实施可具体参见实施例1和实施例2中的相关描述,此处将 不再赘述。本发明实施例中,当主机通过固态硬盘的多个通信接口向所述固态硬盘发送操作 命令时,通过独立设置并与所述多个接口控制单元接收所述操作命令,并由命令调度单元按照调度规则将接收到的操作命令调度放入命令队列中,使得接收到的操作命令具有操作 的顺序,当需要操作所述操作命令时,从所述命令队列取出发送给flash控制单元控制处 理所述操作命令,得到操作结果,使得不同的主机可以通过不同的通信接口与该固态硬盘 接口直接通信连接,避免了当多个主机共享SSD时,除与该SSD直接连接的主机以外的主机 需要间接访问该SSD的问题,实现不同的主机可以并发地直接访问该固态硬盘,提高了访 问带宽,满足各主机对SSD的高性能、高带宽和大容量等特性的需求。进一步的,在将接收到的主机发送的操作命令从命令队列中取出后,判断所述操 作命令是否由多个命令组成,在判定由多个命令组成时,将所述操作命令划分为多个命令, 并将所述多个命令同时下发,使得多命令处于并列处理中,可以提高命令的处理速度;并 且处于并列处理中的多条命令中的一条先处理完后,可以先将处理结果返回给命令调度单 元,以便该命令调度单元结束该命令的执行,使得SSD内有尽可能多空闲通道供其他命令 的处理,从而提高了 SSD的性能。实施例4本发明实施例提供一种多接口固态硬盘处理系统,包括至少一个 主机和多接口 SSD,当所述主机为一个主机时,所述主机为至少可以连接多接口 SSD的两个通信接口的主 机;当所述主机为多个主机时,所述主机为可以至少连接多接口 SSD的一个通信接口的主 机。本发明实施例以该系统包含多个主机和一个多接口 SSD,每个主机包含一个通信 接口为例,具体阐述多接口 SSD处理系统,该系统如图6所示,包括多个主机和一个多接口 SSD。每个主机设置有一个与该多接口 SSD通信的接口,通过该接口实现与该多接口 SSD的连接;当所述主机成功运行多接口 SSD驱动后,便可实现主机与所述多接口 SSD的直 接通信连接,并将所述多接口 SSD作为所述主机自身的存储设备。例如,主机1、主机2...主机n,分别通过所述多接口 SSD的通信接口 1、通信接 口 2...通信接口 n(图中未标出),与所述多接口 SSD相连接;当所述主机1、主机2...主 机η向所述多接口 SSD发送操作命令时,由于所述通信接口 1、通信接口 2...通信接口 η 一一对应的接口控制单元1、接口控制单元2...接口控制单元η,分别接收所述主机1、主机 2...主机η发送的操作命令。通过不同的通信接口,实现不同的主机连接到同一个SSD;不同的主机运行其多 接口 SSD驱动,都将该多接口 SSD初始化为主机自身独立的存储设备,使连接多个主机的多 接口 SSD在不同的主机上显示为独立的存储设备,每个主机访问该多接口 SSD的访问空间 的大小和范围,都为该多接口 SSD对外呈现的存储设备的大小。具体的,该多接口 SSD对多个接口控制单元接收到的操作命令的处理,可以参考 实施例1、实施例2和实施例3中的描述,此处将不再赘述。本发明实施例中,在多接口 SSD中设置多个通信接口,使得不同的主机通过不同 的通信接口与该SSD接口直接通信连接,避免了当多个主机共享SSD时,除与该SSD直接连 接的主机以外的主机需要间接访问该SSD的问题,实现不同的主机可以并发地直接访问该 SSD,不需要相互之间通过共享方式进行访问,因此,提高了访问带宽,满足各主机对SSD的 高性能、高带宽和大容量等特性的需求。
本发明实施例还提供一种多接口 SSD处理系统,可以将与多接口 SSD直接连接的 主机设置为主备关系,本发明实施例以多接口 SSD包含两个通信接口为例,具体阐述该处 理系统;如图7所示,包括两个主机(主机1和主机2)和一个多接口 SSD。该两个主机都包含一个与所述多接口 SSD连接的接口,通过该接口实现与该多接 口 SSD的连接;当所述主机成功运行SSD的驱动后,所述主机1和主机2都可独立的访问多 接口 SSD ;在具体实施时可以将主机1设置为主用设备,将主机2设置为备用设备,并且主 机1和主机2之间保持链路联系。主机1和主机2分别通过所述多接口 SSD的通信接口 1 和通信接口 2,与所述多接口 SSD相连接。当系统正常时,仅使用主机1和所述多接口 SSD 通信,备用设备不访问所述SSD ;当主机1发生故障时,备用的主机2开始访SSD。在系统正常时,主机1通过多接口 SSD的通信接口 1向所述多接口 SSD发送操作 命令,接口控制单元1通过所述通信接口 1接收所述操作命令。当主机1出现故障时,由所述主机2通过多接口 SSD的通信接口 2向所述多接口 SSD发送操作命令,接口控制单元2通过所述通信接口 2接收所述操作命令。具体的,该多接口 SSD对多个接口控制单元接收到的操作命令的处理,可以参考 实施例1、实施例2和实施例3中的描述,此处将不再赘述。本发明实施例中,与多接口 SSD相连接的不同主机之间设置了主备关系,当主用 主机出现故障时,可以由备用主机继续执行相应的操作,从而提高了系统的可靠性。本发明实施例还提供一种多接口 SSD处理系统,可以将与多接口 SSD通信的主机 设置为多通信接口的主机,本发明实施例以将该主机设置为两个通信接口的主机为例,具 体阐述该处理系统,如图8所示,该系统包括一个主机和一个多接口 SSD ;该主机包含一个多接口 SSD的驱动和两个可与多接 口 SSD通信接口。所述主机的接口 1和接口 2分别与所述多接口 SSD的通信接口 1和通信 接口 2(图中未标出)连接,通过运行该多接口 SSD的驱动,所述主机的每个接口均可独立 的访问该多接口 SSD,并且在该主机上显示两个独立的多接口 SSD与该主机相连;在具体实 施时可以将主机可以通过两个接口中的一个向所述多接口 SSD发送操作命令,也可以通过 两个接口同时向所述多接口 SSD发送操作命令;当通过两个接口同时向所述多接口 SSD发 送操作命令时,在主机侧显示该主机可以同时访问两个多接口 SSD,使得主机和多接口 SSD 的带宽得到扩展,可以使SSD的性能更好的发挥。具体的,该多接口 SSD对多个接口控制单元接收到的操作命令的处理,可以参考 实施例1、实施例2和实施例3中的描述,此处将不再赘述。本发明实施例中,在同一个主机上设置多个接口,将所述多个接口与多接口 SSD 的不同通信接口相连接,运行主机的多接口 SSD驱动程序后,该主机的多个接口可以并发 地向该多接口 SSD发送操作命令,扩展了一台主机和SSD之间的接口带宽,不同的主机可以 并发地直接访问该固态硬盘卡固态硬盘,提高了访问带宽,满足了各主机对SSD卡SSD的高 性能、高带宽和大容量等特性的需求。通过以上的实施方式的描述,所属领域的技术人员可以清楚地了解到本发明可借助软件加必需的通用硬件的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳 的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部 分可以以软件产品的形式体现出来,该计算机软件产品存储在可读取的存储介质中,如计算机的软盘,硬盘或光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。 以上所述,仅为本发明的具体实施方式
,但本发明的保护范围并不局限于此,任何 熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵 盖在本发明的保护范围之内。因此,本发明的保护范围应以所述权利要求的保护范围为准。
权利要求
一种多接口固态硬盘,其特征在于包括多个接口控制单元、命令调度单元、flash控制单元以及flash芯片,每个接口控制单元分别对应于一个通信接口;所述接口控制单元,用于通过所述通信接口接收操作命令;所述命令调度单元,用于按照调度规则从多个所述接口控制单元中获取所述操作命令,将所述操作命令放入命令队列;所述命令调度单元还用于从所述命令队列中取出所述操作命令并发送给所述flash控制单元;所述flash控制单元,用于将接收到的所述操作命令转化为flash操作命令,通过所述flash操作命令对所述flash芯片进行操作。
2.根据权利要求1所述的多接口固态硬盘,其特征在于,所述命令调度单元,用于按照 调度规则从多个所述接口控制单元中获取操作命令,包括所述命令调度单元按照多个所述通信接口轮询的原则,或者根据多个所述通信接口编 号按照较低编号优先或较高编号优先的原则获取所述操作命令。
3.根据权利要求1所述的多接口固态硬盘,其特征在于,所述命令调度单元还用于在从所述命令队列中取出所述操作命令之后,判断所述操作命令是否由多条命令组成;若判定所述操作命令由多条命令组成,将所述操作命令划分为多条命令,并将所述多 条命令发送给所述flash控制单元;若判定所述操作命令由一条命令组成,将所述一条命令发送给所述flash控制单元。
4.根据权利要求1所述的多接口固态硬盘,其特征在于,所述通信接口为增强外围设 备互联PCIe接口。
5.一种多接口固态硬盘处理方法,其特征在于,包括通过多个通信接口接收操作命令;按照调度规则获取从所述多个通信接口接收的所述操作命令,将所述操作命令放入命 令队列;从所述命令队列中取出所述操作命令;将所述操作命令转化成flash操作命令,对所述固态硬盘中的flash芯片进行操作。
6.根据权利要求5所述的方法,其特征在于,按照调度规则获取从所述多个通信接口 接收的所述操作命令包括按照所述多个通信接口轮询的原则,或者根据多个所述通信接口编号按照较低编号优 先或较高编号优先的原则获取所述操作命令。
7.根据权利要求5所述的方法,其特征在于,在从所述命令队列中取出所述操作命令 之后,该方法还包括判断所述操作命令是否由多条命令组成;若判定所述操作命令由多条命令组成,将所述操作命令划分为多条命令,并将所述多 条命令转化成对应的多条flash操作命令,对所述固态硬盘中的flash芯片进行操作;若判定所述操作命令由一条命令组成,将所述一条命令转化成对应的一条flash操作 命令,对所述固态硬盘中的flash芯片进行操作。
8.一种多接口固态硬盘处理系统,其特征在于,包括至少一个主机和至少一个多接 口固态硬盘;所述主机包括多接口固态硬盘驱动,通过运行所述驱动,实现所述主机和所述多接口 固态硬盘的直接通信连接,所述主机用于向所述多接口固态硬盘发送操作命令;所述多接口固态硬盘包括多个接口控制单元、命令调度单元、flash控制单元以及 flash芯片,每个接口控制单元分别对应于一个通信接口 ;所述接口控制单元,用于通过所 述通信接口接收所述主机发送的操作命令;所述命令调度单元,用于按照调度规则从多个 所述接口控制单元中获取所述操作命令,将所述操作命令放入命令队列;所述命令调度单 元还用于从所述命令队列中取出所述操作命令并发送给所述flash控制单元;所述flash 控制单元,用于将接收到的所述操作命令转化为flash操作命令,通过所述flash操作命令 对所述flash芯片进行操作。
9.根据权利要求8所述的系统,其特征在于,当所述主机为两个主机,并且所述主机为 至少连接多接口固态硬盘的一个通信接口的主机时,还包括将所述一个主机设置为主用设备,将另一个主机设置为备用设备,并且主用设备和备 用设备之间保持链路通信。
10.根据权利要求7-9中任一项所述的系统,其特征在于,所述通信接口为增强外设互 联PCIe接口。
全文摘要
本发明实施例公开了一种多接口固态硬盘及其处理方法和系统,涉及通信领域,实现多个主机直接共享访问SSD,满足各主机对SSD高性能、高带宽和大容量的需求。本发明的多接口固态硬盘包括多个接口控制单元、命令调度单元、flash控制单元以及flash芯片,每个接口控制单元分别对应于一个通信接口;接口控制单元通过通信接口接收操作命令;命令调度单元按照调度规则从多个接口控制单元中获取操作命令,将该操作命令放入命令队列并从中取出该操作命令发送给flash控制单元;flash控制单元将该操作命令转化为flash操作命令对flash芯片进行操作。
文档编号G11C7/10GK101833989SQ201010184698
公开日2010年9月15日 申请日期2010年5月27日 优先权日2010年5月27日
发明者李敏秋, 童朝柱 申请人:华为技术有限公司