命令超时的处理方法、处理装置与计算机可读存储介质与流程

文档序号:23628453发布日期:2021-01-12 10:42阅读:127来源:国知局
命令超时的处理方法、处理装置与计算机可读存储介质与流程

本申请涉及命令超时处理领域,具体而言,涉及一种命令超时的处理方法、处理装置、计算机可读存储介质与处理器。



背景技术:

在ssd控制器中,主机下发一个命令时,会分配相应的执行队列id和命令id,同时控制器也会根据自身的结构分配相应的命令标签、帧标签和prp标签等资源来拆分命令。

在某些情况下,命令下发后一直没有返回,如果不加处理,那各种资源得不到释放,系统运行效率下降,同时也会引发主机超时,进而复位控制器。

虽然不同的ssd控制器的资源结构可能不同,但硬件处理能力都是有限的。在各种情况下,系统需要持续稳定的运行,其对资源进行合理的回收是ssd控制器必须的。

在一般控制器方案中,根本没有超时处理机制,直接由主机处理,这种可能直接触发控制器复位。

如果由固件进行超时检测和处理,则只能处理非常单一的场景,其整体效率和效果都很难满足需求。

而现有技术中缺乏一种高效的固态硬盘控制器命令超时的处理方法。



技术实现要素:

本申请的主要目的在于提供一种命令超时的处理方法、处理装置、计算机可读存储介质与处理器,以解决现有技术中缺乏一种高效的固态硬盘控制器命令超时的处理方法的问题。

为了实现上述目的,根据本申请的一个方面,提供了一种命令超时的处理方法,包括:构建资源池,所述资源池用于存储标签,所述标签包括命令标签、帧标签和prp标签;接收主机下发的命令;确定所述命令对应的所述命令标签、所述帧标签和所述prp标签;将为所述命令分配的所述命令标签、所述帧标签和所述prp标签从所述资源池中取出;确定所述命令是否超时;在所述命令超时的情况下,将为所述命令分配的所述命令标签、所述帧标签和所述prp标签回收至所述资源池中。

进一步地,所述资源池包括命令资源池、帧资源池和prp资源池,所述命令资源池用于存储所述命令标签,所述帧资源池用于存储所述帧标签,所述prp资源池用于存储所述prp标签。

进一步地,在构建资源池之后,且在接收主机下发的命令之前,所述处理方法还包括:初始化所述资源池。

进一步地,确定所述命令是否超时,包括:获取所述命令的下发时间;获取当前时间;计算所述下发时间和所述当前时间的差值;在所述差值大于预定值的情况下,确定所述命令超时;在所述差值小于或者等于所述预定值的情况下,确定所述命令不超时。

进一步地,在将为所述命令分配的所述命令标签、所述帧标签和所述prp标签从所述资源池中取出之后,且在确定所述命令是否超时之前,所述方法还包括:构建ram,所述ram包括命令标签ram、帧标签ram和prp标签ram,所述命令标签ram用于存储所述命令的所述下发时间以及有效标识,所述有效标识用于表示所述命令是否是已经下发的命令,所述帧标签ram用于存储第一对应关系和第二对应关系,所述第一对应关系为所述帧标签与所述命令标签的对应关系,所述第二对应关系为所述帧标签与prp标签的对应关系,所述prp标签ram用于存储各所述prp标签对应的内存中的地址。

进一步地,获取所述命令的下发时间,包括:遍历所述帧标签ram;根据所述第一对应关系,确定与所述帧标签对应的所述命令标签;根据所述命令标签,在所述命令标签ram中查询到所述命令的下发时间。

进一步地,在所述命令超时的情况下,将为所述命令分配的所述命令标签、所述帧标签和所述prp标签回收至所述资源池中,包括:将所述帧标签回收至所述资源池中;根据所述第一对应关系确定所述帧标签对应的所述命令标签;回收所述命令标签;根据所述第二对应关系确定所述帧标签对应的所述prp标签;回收所述prp标签。

进一步地,所述命令标签对应于多个所述帧标签,回收所述命令标签,包括:在所述命令标签对应的多个所述帧标签全部回收的情况下,回收所述命令标签。

进一步地,所述处理方法还包括:设置超时处理时间;在所述超时处理时间内,未回收全部的所述帧标签的情况下,检测到所述命令对应的帧数据返回的情况下,丢弃所述帧数据。

根据本申请的另一个方面,提供了一种命令超时的处理装置,包括:构建资源池,所述资源池用于存储标签,所述标签包括命令标签、帧标签和prp标签;接收主机下发的命令;确定所述命令对应的所述命令标签、所述帧标签和所述prp标签;将为所述命令分配的所述命令标签、所述帧标签和所述prp标签从所述资源池中取出;确定所述命令是否超时;在所述命令超时的情况下,将为所述命令分配的所述命令标签、所述帧标签和所述prp标签回收至所述资源池中。

根据本申请的一个方面,提供了一种计算机可读存储介质,所述计算机可读存储介质包括存储的程序,其中,在所述程序运行时控制所述计算机可读存储介质所在设备执行任意一种所述的命令超时的处理方法。

根据本申请的一个方面,提供了一种处理器,所述处理器用于运行程序,其中,所述程序运行时执行任意一种所述的命令超时的处理方法。

应用本申请的技术方案,通过构建资源池,接收主机下发的命令,将为主机下发的命令分配的命令标签、帧标签和prp标签从资源池中取出,在命令超时,即命令下发后一直没有返回的情况下,将为命令分配的命令标签、帧标签和prp标签回收至资源池中,实现了在命令超时的情况下,对命令标签、帧标签和prp标签的强制回收,实现了采用ssd控制器对命令超时的高效处理,实现了对资源的合理利用,避免了对资源的不必要的占有,提高了命令超时的处理效率,进而提高系统的运行效率。相对于现有技术中的主机处理命令超时,避免了主机超时,且不会触发控制器复位,增加了控制器的稳定性。相对于现有技术中的由固件进行超时检测和处理的方法,可以满足多种命令超时的场景,提高了命令超时处理的效率,同时固件只需配置超时参数,节省了固件的资源,无需固件交互,其性能也得到了改善。

附图说明

构成本申请的一部分的说明书附图用来提供对本申请的进一步理解,本申请的示意性实施例及其说明用于解释本申请,并不构成对本申请的不当限定。在附图中:

图1示出了根据本申请的实施例的命令超时的处理方法流程图;以及

图2示出了根据本申请的实施例的命令超时的处理装置示意图。

具体实施方式

需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。下面将参考附图并结合实施例来详细说明本申请。

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

需要说明的是,本申请的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本申请的实施例。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。

应该理解的是,当元件(诸如层、膜、区域、或衬底)描述为在另一元件“上”时,该元件可直接在该另一元件上,或者也可存在中间元件。而且,在说明书以及权利要求书中,当描述有元件“连接”至另一元件时,该元件可“直接连接”至该另一元件,或者通过第三元件“连接”至该另一元件。

为了便于描述,以下对本申请实施例涉及的部分名词或术语进行说明:

固态驱动器(solidstatedisk或solidstatedrive,简称ssd),俗称固态硬盘。固态硬盘是用固态电子存储芯片阵列制成的硬盘。ssd由控制单元和存储单元组成。

根据本申请的实施例,提供了一种命令超时的处理方法。

图1是根据本申请实施例的命令超时的处理方法的流程图。如图1所示,该方法包括以下步骤:

步骤s101,构建资源池,上述资源池用于存储标签,上述标签包括命令标签、帧标签和prp标签;

步骤s102,接收主机下发的命令;

步骤s103,确定上述命令对应的上述命令标签、上述帧标签和上述prp标签;

步骤s104,将为上述命令分配的上述命令标签、上述帧标签和上述prp标签从上述资源池中取出;

步骤s105,确定上述命令是否超时;

步骤s106,在上述命令超时的情况下,将为上述命令分配的上述命令标签、上述帧标签和上述prp标签回收至上述资源池中。

上述方案中,通过构建资源池,接收主机下发的命令,将为主机下发的命令分配的命令标签、帧标签和prp标签从资源池中取出,在命令超时,即命令下发后一直没有返回的情况下,将为命令分配的命令标签、帧标签和prp标签回收至资源池中,实现了在命令超时的情况下,对命令标签、帧标签和prp标签的强制回收,实现了采用ssd控制器对命令超时的高效处理,实现了对资源的合理利用,避免了对资源的不必要的占有,提高了命令超时的处理效率,进而提高系统的运行效率。相对于现有技术中的主机处理命令超时,避免了主机超时,且不会触发控制器复位,增加了控制器的稳定性。相对于现有技术中的由固件进行超时检测和处理的方法,可以满足多种命令超时的场景,提高了命令超时处理的效率,同时固件只需配置超时参数,节省了固件的资源,无需固件交互,其性能也得到了改善。

具体地,上述步骤s101~步骤s106的执行主体是ssd控制器,实现了采用ssd控制器对命令超时的高效处理,提高了命令超时的处理效率,实现了对资源的合理利用,避免了对资源的不必要的占有,即超时的命令不再占有相应的命令标签、帧标签和prp标签,便于对有效的命令分配对应的命令标签、帧标签和prp标签,提高命令的处理效率。

另外,本申请的命令超时的处理是一个后台轮询检测任务,不占用主通路带宽,并不会影响系统的正常运行,提高了系统的运行效率。

再者,本方案中的多命令可同时处理,无需等一个命令处理完再处理下一个。

具体地,关于任务接口,固件只需配置使能信号,返回状态等基本信息,其他硬件自动处理其对应的任务。另外可以增加查询间隔配置,在一轮查询完成后,间隔一段时间再进行下一轮。这样处理更加节省开销。

当然,在上述命令不超时的情况下,接收到主机下发的命令后,对命令分配对应的上述命令标签、上述帧标签和上述prp标签,再命令返回时,回收命令对应的上述命令标签、上述帧标签和上述prp标签至资源池中。

需要说明的是,在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。

本申请的一种实施例中,上述资源池包括命令资源池、帧资源池和prp资源池,上述命令资源池用于存储上述命令标签,上述帧资源池用于存储上述帧标签,上述prp资源池用于存储上述prp标签。实现了对命令标签、帧标签和prp标签的独立管理,进而提高了命令超时的处理效率。

本申请的另一种实施例中,在构建资源池之后,且在接收主机下发的命令之前,上述处理方法还包括:初始化上述资源池。即将资源池所有的空间都填满,例如,命令资源池有100个空间,则将命令资源池从1~100进行编号,帧资源池有200个空间,则将帧资源池从1~200进行编号,prp资源池有400个空间,则将prp资源池1~400进行编号,便于后续确定命令对应的上述命令标签、上述帧标签和上述prp标签,例如,第一个命令对应的命令标签的编号为1,对应的帧标签的编号为1~2,对应的prp标签的编号为1~4;第二个命令对应的命令标签的编号为2,对应的帧标签的编号为3~4,对应的prp标签的编号为5~8;在接收到主机下发的命令后,就对接收到每一个命令分配相应的命令标签、帧标签和prp标签,便于对命令的管理,以及命令超时时便于对命令超时的处理。另外,可以采用fifo(firstinfirstout)即先入先出队列对资源池进行初始化。

本申请的又一种实施例中,确定上述命令是否超时,包括:获取上述命令的下发时间;获取当前时间;计算上述下发时间和上述当前时间的差值;在上述差值大于预定值的情况下,确定上述命令超时;在上述差值小于或者等于上述预定值的情况下,确定上述命令不超时。具体地,预定值可以设置为20ms、30ms、50ms等,本领域技术人员可以根据实际情况设置合适的预定值。

本申请的又一种实施例中,确定上述命令是否超时,包括:任意一个上述命令对应于多个帧数据,在任意一个上述帧数据超时的情况下,确定命令超时。

本申请的再一种实施例中,在将为上述命令分配的上述命令标签、上述帧标签和上述prp标签从上述资源池中取出之后,且在确定上述命令是否超时之前,上述方法还包括:构建ram,上述ram包括命令标签ram、帧标签ram和prp标签ram,上述命令标签ram用于存储上述命令的上述下发时间以及有效标识,上述有效标识用于表示上述命令是否是已经下发的命令,即若命令是已经下发的命令则命令是有效的,若命令是未下发的命令则命令是无效的,上述帧标签ram用于存储第一对应关系和第二对应关系,上述第一对应关系为上述帧标签与上述命令标签的对应关系,上述第二对应关系为上述帧标签与prp标签的对应关系,上述prp标签ram用于存储各上述prp标签对应的内存中的地址。即采用额外的ram对命令的上述下发时间、有效标识、帧标签与上述命令标签的对应关系、述帧标签与prp标签的对应关系进行管理,提高了命令超时的处理速度。使用ram管理标签资源,以实现乱序帧的资源循环。

具体地,关于命令超时处理的任务开销。保守假设一次查表为3个时钟周期,系统频率为200mhz,三个表(表即ram)的深度均为8k,当所有命令超时了,那么查询一轮需要的最长时间为(8192×3×3)×5ns=368us。即本方案超时查询采用三级查表方式,运行高效,一轮查询可控制在1ms以内。一般主机命令超时为秒级,本系统处理效率完全满足要求。且一轮帧标签ram查询完成即代表一轮超时轮询结束,无需重复查询。

本申请的另一种实施例中,获取上述命令的下发时间,包括:遍历上述帧标签ram;根据上述第一对应关系,确定与上述帧标签对应的上述命令标签;根据上述命令标签,在上述命令标签ram中查询到上述命令的下发时间。由于命令标签ram中存储有上述命令的下发时间,命令标签与命令的下发时间一一对应,在接收主机下发的命令时,已经同步将命令的下发时间存储在命令标签ram中,且命令标签ram中还存储有命令标签,所以要想得到命令的下发时间,需要找到命令对应的命令标签,而命令又是由多个帧数据组成的,每一帧数据的帧头信息中均携带有帧标签,所以通过读取每一帧数据就可以得到帧标签,然后根据第一对应关系,就可以得到命令标签,得到命令标签后就可以得到命令的下发时间。该方案可以满足乱序帧的查询效率。

本申请的另一种实施例中,在上述命令超时的情况下,将为上述命令分配的上述命令标签、上述帧标签和上述prp标签回收至上述资源池中,包括:将上述帧标签回收至上述资源池中;根据上述第二对应关系确定上述帧标签对应的上述prp标签;回收上述prp标签;根据上述第一对应关系确定上述帧标签对应的上述命令标签;回收上述命令标签。即在确定命令超时的情况下,先将帧标签回收至上述帧资源池中,然后将帧标签对应的上述prp标签回收至上述prp资源池中,具体地,每一个帧标签对应于多个prp标签,第二对应关系其实是帧标签与第一个prp标签的对应关系,prp标签是采用链表形式进行存储的,并具有链表结束标志,所以只要得到第一个prp标签的信息,就可以得到帧标签对应的所有的prp标签的信息,例如,帧标签的编号为2,帧标签对应的第一个prp标签的编号为5,一个帧标签对应与四个prp标签,就可以得到所有的prp标签的标签为5~8;然后在根据第一对应关系确定上述帧标签对应的上述命令标签,再将命令标签回收至命令资源池中。实现对命令标签、帧标签和prp标签的回收,用于对后续的命令进行分配,实现了对资源的合理利用,避免了对资源的不必要的占有。

本申请的另一种实施例中,上述命令标签对应于多个上述帧标签,回收上述命令标签,包括:在上述命令标签对应的多个上述帧标签全部回收的情况下,回收上述命令标签。一个命令标签对应于多个帧标签,在将命令标签对应的多个帧标签全部回收的情况下,再将命令标签进行回收,例如,一个命令标签对应于四个帧标签,在四个帧标签全部回收的情况下,再将命令标签进行回收。而一个命令标签所对应的帧标签数量存储在命令标签ram中,在所有的帧标签全部回收的情况下,结束标志符会给出结束提示,以提示所有的帧标签全部回收,再进行命令标签的回收。可以采用fifo(firstinfirstout)即先入先出队列对上述命令标签、上述帧标签和上述prp标签进行回收。

本申请的另一种实施例中,上述处理方法还包括:设置超时处理时间;在上述超时处理时间内,未回收全部的上述帧标签的情况下,检测到上述命令对应的帧数据返回的情况下,丢弃上述帧数据。为提高命令的处理速度,设置超时处理时间,例如将超时处理时间设置为1s,如果在1s内未能将所有的帧标签回收,再有命令对应的帧数据返回的情况下,也不再对帧数据进行处理。

本申请的另一种实施例中,上述处理方法还包括:在对上述命令进行超时处理时,对上述命令进行上锁保护,以防止正常的帧数据返回时影响超时的帧数据,例如,例如,超时命令编号为4号(也就是命令对应的命令标签为4号),则需要在进入超时处理时将4号命令置位busy标志(即该命令正在进行超时处理),正常的帧数据返回时,查询到对应命令的busy标志,会停止正常帧处理(即该帧被丢弃)。这样可以防止正常的帧数据返回,对超时处理产生干扰。

本申请实施例还提供了一种命令超时的处理装置,需要说明的是,本申请实施例的命令超时的处理装置可以用于执行本申请实施例所提供的用于命令超时的处理方法。以下对本申请实施例提供的命令超时的处理装置进行介绍。

图2是根据本申请实施例的命令超时的处理装置的示意图。如图2所示,该装置包括:

第一构建单元10,用于构建资源池,上述资源池用于存储标签,上述标签包括命令标签、帧标签和prp标签;

接收单元20,用于接收主机下发的命令;

第一确定单元30,用于确定上述命令对应的上述命令标签、上述帧标签和上述prp标签;

取出单元40,用于将为上述命令分配的上述命令标签、上述帧标签和上述prp标签从上述资源池中取出;

第二确定单元50,用于确定上述命令是否超时;

回收单元60,用于在上述命令超时的情况下,将为上述命令分配的上述命令标签、上述帧标签和上述prp标签回收至上述资源池中。

上述方案中,第一构建单元构建资源池,接收单元接收主机下发的命令,取出单元将为主机下发的命令分配的命令标签、帧标签和prp标签从资源池中取出,在命令超时,即命令下发后一直没有返回的情况下,回收单元将为命令分配的命令标签、帧标签和prp标签回收至资源池中,实现了在命令超时的情况下,对命令标签、帧标签和prp标签的强制回收,实现了采用ssd控制器对命令超时的高效处理,实现了对资源的合理利用,避免了对资源的不必要的占有,提高了命令超时的处理效率,进而提高系统的运行效率。相对于现有技术中的主机处理命令超时,避免了主机超时,且不会触发控制器复位,增加了控制器的稳定性。相对于现有技术中的由固件进行超时检测和处理的装置,可以满足多种命令超时的场景,提高了命令超时处理的效率,同时固件只需配置超时参数,节省了固件的资源,无需固件交互,其性能也得到了改善。

另外,本申请的命令超时的处理是一个后台轮询检测任务,不占用主通路带宽,并不会影响系统的正常运行,提高了系统的运行效率。

再者,本方案中的多命令可同时处理,无需等一个命令处理完再处理下一个。

具体地,关于任务接口,固件只需配置使能信号,返回状态等基本信息,其他硬件自动处理其对应的任务。另外可以增加查询间隔配置,在一轮查询完成后,间隔一段时间再进行下一轮。这样处理更加节省开销。

当然,在上述命令不超时的情况下,接收到主机下发的命令后,对命令分配对应的上述命令标签、上述帧标签和上述prp标签,再命令返回时,回收命令对应的上述命令标签、上述帧标签和上述prp标签至资源池中。

本申请的一种实施例中,上述资源池包括命令资源池、帧资源池和prp资源池,上述命令资源池用于存储上述命令标签,上述帧资源池用于存储上述帧标签,上述prp资源池用于存储上述prp标签。实现了对命令标签、帧标签和prp标签的独立管理,进而提高了命令超时的处理效率。

本申请的另一种实施例中,上述处理装置还包括初始化单元,初始化单元用于在构建资源池之后,且在接收主机下发的命令之前,初始化上述资源池。即将资源池所有的空间都填满,例如,命令资源池有100个空间,则将命令资源池从1~100进行编号,帧资源池有200个空间,则将帧资源池从1~200进行编号,prp资源池有400个空间,则将prp资源池1~400进行编号,便于后续确定命令对应的上述命令标签、上述帧标签和上述prp标签,例如,第一个命令对应的命令标签的编号为1,对应的帧标签的编号为1~2,对应的prp标签的编号为1~4;第二个命令对应的命令标签的编号为2,对应的帧标签的编号为3~4,对应的prp标签的编号为5~8;在接收到主机下发的命令后,就对接收到每一个命令分配相应的命令标签、帧标签和prp标签,便于对命令的管理,以及命令超时时便于对命令超时的处理。另外,可以采用fifo(firstinfirstout)即先入先出队列对资源池进行初始化。

本申请的又一种实施例中,第二确定单元包括第一获取模块、第二获取模块、计算模块、第一确定模块和第二确定模块,第一获取模块用于获取上述命令的下发时间;第二获取模块用于获取当前时间;计算模块用于计算上述下发时间和上述当前时间的差值;第一确定模块用于在上述差值大于预定值的情况下,确定上述命令超时;第二确定模块用于在上述差值小于或者等于上述预定值的情况下,确定上述命令不超时。具体地,预定值可以设置为20ms、30ms、50ms等,本领域技术人员可以根据实际情况设置合适的预定值。

本申请的又一种实施例中,任意一个上述命令对应于多个帧数据,第二确定单元还用于在任意一个上述帧数据超时的情况下,确定命令超时。

本申请的再一种实施例中,上述装置还包括第二构建单元,第二构建单元用于在将为上述命令分配的上述命令标签、上述帧标签和上述prp标签从上述资源池中取出之后,且在确定上述命令是否超时之前,构建ram,上述ram包括命令标签ram、帧标签ram和prp标签ram,上述命令标签ram用于存储上述命令的上述下发时间以及有效标识,上述有效标识用于表示上述命令是否是已经下发的命令,即若命令是已经下发的命令则命令是有效的,若命令是未下发的命令则命令是无效的,上述帧标签ram用于存储第一对应关系和第二对应关系,上述第一对应关系为上述帧标签与上述命令标签的对应关系,上述第二对应关系为上述帧标签与prp标签的对应关系,上述prp标签ram用于存储各上述prp标签对应的内存中的地址。即采用额外的ram对命令的上述下发时间、有效标识、帧标签与上述命令标签的对应关系、述帧标签与prp标签的对应关系进行管理,提高了命令超时的处理速度。使用ram管理标签资源,以实现乱序帧的资源循环。

具体地,关于命令超时处理的任务开销。保守假设一次查表为3个时钟周期,系统频率为200mhz,三个表(表即ram)的深度均为8k,当所有命令超时了,那么查询一轮需要的最长时间为(8192×3×3)×5ns=368us。即本方案超时查询采用三级查表方式,运行高效,一轮查询可控制在1ms以内。一般主机命令超时为秒级,本系统处理效率完全满足要求。且一轮帧标签ram查询完成即代表一轮超时轮询结束,无需重复查询。

本申请的另一种实施例中,第一获取模块还用于遍历上述帧标签ram;根据上述第一对应关系,确定与上述帧标签对应的上述命令标签;根据上述命令标签,在上述命令标签ram中查询到上述命令的下发时间。由于命令标签ram中存储有上述命令的下发时间,命令标签与命令的下发时间一一对应,在接收主机下发的命令时,已经同步将命令的下发时间存储在命令标签ram中,且命令标签ram中还存储有命令标签,所以要想得到命令的下发时间,需要找到命令对应的命令标签,而命令又是由多个帧数据组成的,每一帧数据的帧头信息中均携带有帧标签,所以通过读取每一帧数据就可以得到帧标签,然后根据第一对应关系,就可以得到命令标签,得到命令标签后就可以得到命令的下发时间。该方案可以满足乱序帧的查询效率。

本申请的另一种实施例中,回收单元包括第一回收模块、第三确定模块、第二回收模块、第四确定模块和第三回收模块,第一回收模块用于将上述帧标签回收至上述资源池中;第三确定模块用于根据上述第二对应关系确定上述帧标签对应的上述prp标签;第二回收模块用于回收上述prp标签;第四确定模块用于根据上述第一对应关系确定上述帧标签对应的上述命令标签;第三回收模块用于回收上述命令标签。即在确定命令超时的情况下,先将帧标签回收至上述帧资源池中,然后将帧标签对应的上述prp标签回收至上述prp资源池中,具体地,每一个帧标签对应于多个prp标签,第二对应关系其实是帧标签与第一个prp标签的对应关系,prp标签是采用链表形式进行存储的,并具有链表结束标志,所以只要得到第一个prp标签的信息,就可以得到帧标签对应的所有的prp标签的信息,例如,帧标签的编号为2,帧标签对应的第一个prp标签的编号为5,一个帧标签对应与四个prp标签,就可以得到所有的prp标签的标签为5~8;然后在根据第一对应关系确定上述帧标签对应的上述命令标签,再将命令标签回收至命令资源池中。实现对命令标签、帧标签和prp标签的回收,用于对后续的命令进行分配,实现了对资源的合理利用,避免了对资源的不必要的占有。

本申请的另一种实施例中,上述命令标签对应于多个上述帧标签,第三回收模块还用于在上述命令标签对应的多个上述帧标签全部回收的情况下,回收上述命令标签。一个命令标签对应于多个帧标签,在将命令标签对应的多个帧标签全部回收的情况下,再将命令标签进行回收,例如,一个命令标签对应于四个帧标签,在四个帧标签全部回收的情况下,再将命令标签进行回收。而一个命令标签所对应的帧标签数量存储在命令标签ram中,在所有的帧标签全部回收的情况下,结束标志符会给出结束提示,以提示所有的帧标签全部回收,再进行命令标签的回收。可以采用fifo(firstinfirstout)即先入先出队列对上述命令标签、上述帧标签和上述prp标签进行回收。

本申请的另一种实施例中,上述处理装置还包括设置单元和丢弃单元,设置单元用于设置超时处理时间;丢弃单元用于在上述超时处理时间内,未回收全部的上述帧标签的情况下,检测到上述命令对应的帧数据返回的情况下,丢弃上述帧数据。为提高命令的处理速度,设置超时处理时间,例如将超时处理时间设置为1s,如果在1s内未能将所有的帧标签回收,再有命令对应的帧数据返回的情况下,也不再对帧数据进行处理。

本申请的另一种实施例中,上述处理装置还包括保护单元,保护单元用于在对上述命令进行超时处理时,对上述命令进行上锁保护,以防止正常的帧数据返回时影响超时的帧数据,例如,超时命令编号为4号(也就是命令对应的命令标签为4号),则需要在进入超时处理时将4号命令置位busy标志(即该命令正在进行超时处理),正常的帧数据返回时,查询到对应命令的busy标志,会停止正常帧处理(即该帧被丢弃)。这样可以防止正常的帧数据返回,对超时处理产生干扰。

上述命令超时的处理装置包括处理器和存储器,上述第一构建单元、接收单元、第一确定单元、取出单元、第二确定单元和回收单元等均作为程序单元存储在存储器中,由处理器执行存储在存储器中的上述程序单元来实现相应的功能。

处理器中包含内核,由内核去存储器中调取相应的程序单元。内核可以设置一个或以上,通过调整内核参数来提高固态硬盘控制器命令超时的处理效率。

存储器可能包括计算机可读介质中的非永久性存储器,随机存取存储器(ram)和/或非易失性内存等形式,如只读存储器(rom)或闪存(flashram),存储器包括至少一个存储芯片。

本发明实施例提供了一种计算机可读存储介质,上述计算机可读存储介质包括存储的程序,其中,在上述程序运行时控制上述计算机可读存储介质所在设备执行上述命令超时的处理方法。

本发明实施例提供了一种处理器,上述处理器用于运行程序,其中,上述程序运行时执行上述命令超时的处理方法。

本发明实施例提供了一种设备,设备包括处理器、存储器及存储在存储器上并可在处理器上运行的程序,处理器执行程序时实现至少以下步骤:

步骤s101,构建资源池,上述资源池用于存储标签,上述标签包括命令标签、帧标签和prp标签;

步骤s102,接收主机下发的命令;

步骤s103,确定上述命令对应的上述命令标签、上述帧标签和上述prp标签;

步骤s104,将为上述命令分配的上述命令标签、上述帧标签和上述prp标签从上述资源池中取出;

步骤s105,确定上述命令是否超时;

步骤s106,在上述命令超时的情况下,将为上述命令分配的上述命令标签、上述帧标签和上述prp标签回收至上述资源池中。

本文中的设备可以是服务器、pc、pad、手机等。

本申请还提供了一种计算机程序产品,当在数据处理设备上执行时,适于执行初始化有至少如下方法步骤的程序:

步骤s101,构建资源池,上述资源池用于存储标签,上述标签包括命令标签、帧标签和prp标签;

步骤s102,接收主机下发的命令;

步骤s103,确定上述命令对应的上述命令标签、上述帧标签和上述prp标签;

步骤s104,将为上述命令分配的上述命令标签、上述帧标签和上述prp标签从上述资源池中取出;

步骤s105,确定上述命令是否超时;

步骤s106,在上述命令超时的情况下,将为上述命令分配的上述命令标签、上述帧标签和上述prp标签回收至上述资源池中。

本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形式。

本申请是参照根据本申请实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。

这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。

这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。

在一个典型的配置中,计算设备包括一个或多个处理器(cpu)、输入/输出接口、网络接口和内存。

存储器可能包括计算机可读介质中的非永久性存储器,随机存取存储器(ram)和/或非易失性内存等形式,如只读存储器(rom)或闪存(flashram)。存储器是计算机可读介质的示例。

计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(pram)、静态随机存取存储器(sram)、动态随机存取存储器(dram)、其他类型的随机存取存储器(ram)、只读存储器(rom)、电可擦除可编程只读存储器(eeprom)、快闪记忆体或其他内存技术、只读光盘只读存储器(cd-rom)、数字多功能光盘(dvd)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitorymedia),如调制的数据信号和载波。

还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括要素的过程、方法、商品或者设备中还存在另外的相同要素。

本申请的以上实施例,已经在硬件中实现,在业务类型和返回延时可控的前提下,带宽,效率,资源和易用性均可得到平衡。

从以上的描述中,可以看出,本申请上述的实施例实现了如下技术效果:

1)、本申请的命令超时的处理方法,通过构建资源池,接收主机下发的命令,将为主机下发的命令分配的命令标签、帧标签和prp标签从资源池中取出,在命令超时,即命令下发后一直没有返回的情况下,将为命令分配的命令标签、帧标签和prp标签回收至资源池中,实现了在命令超时的情况下,对命令标签、帧标签和prp标签的强制回收,实现了采用ssd控制器对命令超时的高效处理,实现了对资源的合理利用,避免了对资源的不必要的占有,提高了命令超时的处理效率,进而提高系统的运行效率。相对于现有技术中的主机处理命令超时,避免了主机超时,且不会触发控制器复位,增加了控制器的稳定性。相对于现有技术中的由固件进行超时检测和处理的方法,可以满足多种命令超时的场景,提高了命令超时处理的效率,同时固件只需配置超时参数,节省了固件的资源,无需固件交互,其性能也得到了改善。

2)、本申请的命令超时的处理装置,第一构建单元构建资源池,接收单元接收主机下发的命令,取出单元将为主机下发的命令分配的命令标签、帧标签和prp标签从资源池中取出,在命令超时,即命令下发后一直没有返回的情况下,回收单元将为命令分配的命令标签、帧标签和prp标签回收至资源池中,实现了在命令超时的情况下,对命令标签、帧标签和prp标签的强制回收,实现了采用ssd控制器对命令超时的高效处理,实现了对资源的合理利用,避免了对资源的不必要的占有,提高了命令超时的处理效率,进而提高系统的运行效率。相对于现有技术中的主机处理命令超时,避免了主机超时,且不会触发控制器复位,增加了控制器的稳定性。相对于现有技术中的由固件进行超时检测和处理的装置,可以满足多种命令超时的场景,提高了命令超时处理的效率,同时固件只需配置超时参数,节省了固件的资源,无需固件交互,其性能也得到了改善。

以上所述仅为本申请的优选实施例而已,并不用于限制本申请,对于本领域的技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。

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