在不受i/o协议或目标设备支持时提供队列屏障的制作方法

文档序号:9693209阅读:357来源:国知局
在不受i/o协议或目标设备支持时提供队列屏障的制作方法
【专利说明】在不受I/O协议或目标设备支持时提供队列屏障
[0001 ]根据35 U.S.C.§119的优先权要求
[0002]本专利申请要求2013年7月23日提交的题为“Providing Queue Barriers WhenUnsupported By An I/O Protocol or Target Device(在不受 1/0协议或目标设备支持时提供队列屏障)”的美国临时专利申请N0.61/857,570的优先权,它被转让给本专利申请的受让人并且因此通过援引明确纳入于此。
[0003]领域
[0004]以下一般涉及队列内的任务执行,且更具体地涉及用于在队列屏障不受使用中的输入/输出(1/0)协议支持时提供或促成此类队列屏障的方法和设备。
[0005]背景
[0006]在主机设备中的1/0主控制器内操作的软件可将由1/0主控制器发送到目标1/0设备以供排队和执行的数个任务排入队列。在一些情况下,执行的次序可由接收方目标I/o设备确定,这在主机设备的控制之外。所以,接收方目标I/o设备可改变任务的执行次序。
[0007]在一些情况下,主机设备上的软件想要保证发送到目标1/0设备的任务的特定执行次序。例如,一些I/o通信协议提供用于指示任务是否不能被乱序处理的队列屏障。在其他情况下,目标I/o设备和/或1/0通信协议(在主机设备和目标1/0设备之间使用的1/0通信协议)可能没有提供用于实施这样的执行次序的挂钩。
[0008]因此,需要提供一种队列屏障功能性,其准许主机设备在此类功能性不受目标1/0设备或I/o通信协议支持的情况下控制目标1/0设备处的执行次序。
[0009]概述
[0010]提供了一种主控制器,包括:与目标设备通信的通信接口;以及耦合到该通信接口的处理电路。处理电路可被适配成:(a)获得用队列屏障指示符标记的第一任务;(b)延迟第一任务到目标设备的传输;和/或(c) 一旦从目标设备接收到关于所有先前发送的任务已被处理的指示,就将第一任务发送到目标设备。
[0011]在一个示例中,处理电路可被进一步适配成:(a)从任务队列顺序地获得多个任务,其中第一任务在该多个任务当中;(b)查明每一任务是否用队列屏障指示符作了标记;和/或(c)确定第一任务被用队列屏障指示符作了标记。
[0012]另外,处理电路可被进一步适配成延迟发生在第一任务之后的任何任务到目标设备的传输,直至从目标设备接收到关于所有先前发送的任务已被处理的指示。处理电路可随后一旦从目标设备接收到关于第一任务已被处理的指示,就将发生在第一任务之后的任何任务发送到目标设备。
[0013]在一个实现中,主控制器和目标设备可使用不支持队列屏障指示符功能性的协议进行通信。根据一个方面,在目标设备中不支持单独的队列屏障指示符功能性。根据另一方面,队列屏障指示符可与目标设备中或主控制器和目标设备之间的输入/输出通信协议中支持的单独的队列屏障功能性不同。
[0014]在一个实现中,主控制器可以是与目标设备分开的设备。在另一实现中,主控制器可与目标设备一起集成在单个半导体器件中。在一个示例中,目标设备可以是存储设备且任务包括读和/或写操作。
[0015]第一任务可不带队列屏障指示符地发送到目标设备。第一任务和其他任务可由处理电路从任务队列获得,且第一任务和其他任务中的每一者由处理电路按每一任务相对于用队列屏障指示符标记的其他任务被置于任务队列中的次序来处理。
[0016]还提供了一种在主控制器上操作以与目标设备通信的方法,包括:(a)获得用队列屏障指示符标记的第一任务;(b)延迟(例如,挂起、临时停止)第一任务到目标设备的传输;(c)一旦从目标设备接收到关于所有先前发送的任务已被处理的指示,就将第一任务发送到目标设备。
[0017]该方法可进一步包括:(a)从任务队列顺序地获得多个任务,其中第一任务在该多个任务当中;(b)查明每一任务是否用队列屏障指示符作了标记;(c)确定第一任务被用队列屏障指示符作了标记;和/或(d)延迟发生在第一任务之后的任何任务到目标设备的传输,直至从目标设备接收到关于所有先前发送的任务已被处理的指示。一旦从目标设备接收到第一任务已被处理的指示,就可将发生在第一任务之后的任何任务发送到目标设备。
[0018]在一个示例中,主控制器和目标设备可使用不支持队列屏障指示符功能性的协议进行通信。在另一示例中,队列屏障指示符可与目标设备中或主控制器和目标设备之间的输入/输出通信协议中支持的单独的队列屏障功能性不同。在又一示例中,在目标设备中不支持队列屏障指示符功能性。
[0019]提供了一种具有一条或多条指令的非瞬态处理器可读存储介质,该指令在由至少一个处理电路执行时使该至少一个处理电路:(a)获得用队列屏障指示符标记的第一任务;(b)延迟第一任务到目标设备的传输;(c)一旦从目标设备接收到关于所有先前发送的任务已被处理的指示,就将第一任务发送到目标设备;和/或(d)延迟发生在第一任务之后的任何任务到目标设备的传输,直至从目标设备接收到关于所有先前发送的任务已被处理的指不ο
[0020]非瞬态处理器可读存储介质还可包括在由至少一个处理电路执行时使该至少一个处理电路执行以下操作的一条或多条指令:(a)从任务队列顺序地获得多个任务,其中第一任务在该多个任务当中;(b)查明每一任务是否用队列屏障指示符作了标记;和/或(c)确定第一任务被用队列屏障指示符作了标记。一旦从目标设备接收到关于第一任务已被处理的指示,就可将发生在第一任务之后的任何任务发送到目标设备。
[0021]附图
[0022]图1是包括经由总线耦合到目标I/O设备且被适配成实现队列屏障功能性的主机设备的系统的框图。
[0023]图2是解说队列屏障功能可被如何实现的流程图。
[0024]图3(包括图3A、3B和3C)图形化地解说主机设备上的队列屏障指示符的示例性实现的处理。
[0025]图4是解说由主控制器操作以实现任务的队列屏障的方法的流程图。
[0026]图5是解说实现主机控制的队列屏障功能性的主机设备的示例的框图。
[0027]图6是解说在主机设备处操作的用于实现队列屏障功能性的示例性方法的流程图。
[0028]图7是解说被适配成促成队列屏障功能性的示例性主控制器的框图。
[0029]图8是解说由被适配成促成队列屏障功能性的主控制器操作的示例性方法的流程图。
[0030]图9是解说由被适配成促成队列屏障功能性的主控制器操作的示例性方法的另一流程图。
[0031 ] 详细描述
[0032]以下结合附图所阐述的描述旨在作为各种配置的描述,而无意代表可实践本文中所描述的概念和特征的仅有的配置。以下描述包括具体细节来提供对各种概念的透彻理解。然而,对于本领域技术人员将显而易见的是,没有这些具体细节也可实践这些概念。在一些实例中,以框图形式示出众所周知的电路、结构、技术和组件以免煙没所描述的概念和特征。
[0033]本公开中通篇给出的各种概念可跨种类繁多的电信系统、网络架构、电子设备、移动设备、计算设备和通信标准来实现。本公开的某些方面在下文参考具体协议、系统以及技术来描述。然而,本领域普通技术人员将认识到,本公开的一个或多个方面可被用在和包括在一个或多个其他无线通信协议、系统和技术中。
[0034]总览
[0035]本公开的各特征和方面涉及保证任务按特定排序执行,甚至在接收方目标设备或接口协议不提供对这样的队列排序的支持的情况下亦如此。在主机设备上操作的主机软件可以用队列屏障(
当前第1页1 2 3 4 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1