用于在硬件中跨多个处理单元/处理器划分并同步处理任务的系统和方法技术方案

技术编号:13679458 阅读:43 留言:0更新日期:2016-09-08 07:04
本申请公开在硬件中的共享计数器资源,诸如寄存器,其中该寄存器表示在命令队列中存在多少可供一个或多个处理单元访问的自由空间。在处理单元读出“预约”寄存器时,硬件自动使可用自由空间递减预配置量(例如,1)并且紧在读出/预约之前返回自由空间的值。如果读出值返回0(或小于预配置量的数值),则没有足够的自由空间来满足请求。在没有足够空间来满足请求的情况下,预约寄存器可以被配置成预约无论多少可用空间或根本不预约任何空间。任何数量的处理单元可以读出这些寄存器,并且描述在其中输入队列和输出队列可以经由各种处理单元可访问的多种情形。

【技术实现步骤摘要】
【国外来华专利技术】
本专利技术大体涉及负荷分配的领域。更具体地,本专利技术涉及用于在硬件中跨多个处理单元/处理器划分并同步处理任务的系统和方法
技术介绍
在现有技术中,确定发出什么命令的(处理单元的)处理负荷是相对高的。确定发出什么命令的处理负荷可以被部分或完全地负荷分流(offload)到多个其它处理单元(例如,处理器、处理器核或定制的处理电路)。不过,这种负荷分配导致命令要从多个处理单元确定。确保模块命令队列(FIFO)不溢出变得具有挑战性,因此,需要在多个处理单元之间同步。在现有技术中,使用软件技术来执行此同步,该软件技术诸如至存储器中的共享可用空间计数变量的信号量(semaphore)和互斥(mutex)。不过,这花费另外的处理时间,使得该过程不是最优的。为进一步和解该问题,有可能需要将从命令发出到执行的时间保持最小化,这往往使命令队列保持浅的。本专利技术的实施例为对现有系统和方法的改进。
技术实现思路
在一个实施例中,本专利技术提供用于跨多个处理单元划分并同步处理任务的系统,其包括:在硬件中实现的输入队列;在硬件中实现的输出队列;对输入队列和输出队列具有访问权的第一处理单元;与第一处理单元通信的至少一个第二处理单元;在硬件中实现的存储表示在命令队列中的可用空间的值的预约寄存器,该预约寄存器可由第一处理单元和至少第二处理单元两者访问;存储指令的计算机存储装置,该指令在由至少一个第二处理单元执行时,以:访问该预约寄存器并读出存储的值;确定该读出值何时指示输入队列中的可用空间以用于第一处理单元发出命令;通知第一处理单元向该输入队列发出命令;并且其中第一处理单元接收来自至少第二处理单元的关于发出命令的通知、向输入队列发出命令,并且接收来自输出队列的对应于该命令的响应。在另一实施例中,本专利技术提供用于跨多个处理单元划分并同步处理任务
的系统,其包括:在硬件中实现的输入队列;在硬件中实现的输出队列;对输入队列和输出队列具有访问权的第一处理单元;与输入队列通信的至少一个第二处理单元;在硬件中实现的存储表示在命令队列中的可用空间的值的预约寄存器,该预约寄存器可由第一处理单元和至少第二处理单元两者访问;存储指令的计算机存储装置,该指令在由至少一个第二处理单元执行时,以:访问预约寄存器并读出存储的值;确定该读出值何时指示输入队列中的可用空间以用于第一处理单元发出命令;向输入队列发出命令;并且其中第一处理单元接收来自输出队列的对应于该命令的响应。在另一实施例中,本专利技术提供用于跨多个处理单元划分并同步处理任务的系统,其包括:在硬件中实现的输入队列;在硬件中实现的输出队列;对输入队列和输出队列具有访问权的第一处理单元;与输入队列和输出队列通信的至少一个第二处理单元;在硬件中实现的存储表示在命令队列中的可用空间的值的预约寄存器,该预约寄存器可由第一处理单元和至少第二处理单元两者访问;存储指令的计算机存储装置,该指令在由至少一个第二处理单元执行时,以:访问预约寄存器并读出存储的值;确定该读出值何时指示输入队列中的可用空间以用于第一处理单元发出命令;向输入队列发出命令;并且接收来自输出队列的对应于该命令的响应。附图说明根据一个或多个不同的示例,本公开参考附图来详细描述。仅为图示说明的目的来提供附图,并且该附图只描绘本公开的示例。这些附图被提供以有利于读者理解本公开,并且不应被视为对本公开的广度、范围或适用性的限制。应指出,为清楚和易于图示说明起见,这些附图不必要按比例绘制。图1绘出可由多个处理单元访问本专利技术的“预约”寄存器的非限制性示例。图2绘出可由多个处理器访问本专利技术的预约寄存器的另一非限制性示例。图3至图5绘出用于跨多个处理单元划分和同步处理任务的本专利技术的各种实施例。具体实施方式虽然本专利技术在优选实施例中被图示说明和描述,但是本专利技术可在许多不
同的配置中实施。本专利技术的优选实施例在附图中被绘出并且将在本文中详细描述,通过理解,本公开应视为本专利技术的原理及其构造的相关功能描述的示例,并不旨在将本专利技术限制到所示出的实施例。本领域的技术人员将设想在本专利技术的范围内的许多其它可能的变型。应指出,在本描述中,参考“一个实施例”或“实施例”意指被参考的特征被包含在本专利技术的至少一个实施例中。另外,在本描述中单独参考“一个实施例”不一定指相同的实施例;然而,正如对于本领域的普通技术人员来说显而易见的是,此类实施例不是互相排斥的,除非另有说明。因此,本专利技术可以包含本文描述的实施例的任何种类的组合和/或集成。本专利技术考虑软件必须向硬件模块发出命令的情况。在此情况下,确定发出什么命令的处理负荷是相对高的,并且也可能存在必要的附加后台任务。确定发出什么命令的处理负荷可以被部分或完全地负荷分流到多个其它处理单元(例如,处理器、处理器核或定制的处理电路)。然而,这种负荷分配导致命令要从多个处理单元确定。确保模块命令队列(FIFO)不溢出变得具有挑战性,因此,需要在多个处理单元之间同步。如上所述,在现有技术中,该同步使用软件技术来执行,该软件技术诸如至共享可用空间计数变量的信号量和互斥。不过,这花费额外的处理时间。为进一步和解该问题,有可能需要使从命令发出到执行的时间保持最小化,这往往使命令队列保持浅的。本专利技术提供在硬件中的共享计数器资源(例如,寄存器),其表示在命令队列中存在多少可供一个或多个处理单元访问的自由空间。图1绘出可由多个处理单元1到n 104-108访问本专利技术的“预约(reservation)”寄存器102的非限制性示例。应指出,虽然本文的论述参考处理单元,但是本专利技术的教导也等同适用于不同的处理器。例如,图2绘出可由多个处理器1到n 204-208访问本专利技术的预约寄存器202的另一非限制性示例。在处理单元读出“预约”寄存器时,硬件使可用的自由空间自动递减预配置量(例如,1)并且紧跟在读出/预约之前返回该自由空间的值。如果该读出返回0(或小于预配置量的数值),则没有足够的自由空间来满足请求。在没有足够空间来满足请求的情况下,该预约寄存器可以被配置成预约无论多少可用的空间或者根本不预约任何空间。有时可以存在在不实际进行预约的情况下来测试预约是否成功,即在预约寄存器处的“窥视”的需要。该窥视可以经由替代的镜像的预约寄存器来实现,该镜像的预约寄存器对能够由
处理单元读出的预约寄存器的值进行镜像,但是实际上不预约,由此该替代寄存器不自动更改可用的自由空间。任何数量的处理单元可以读出这些寄存器(通过使用针对多个处理单元的标准仲裁,硬件内部地同步这些读出以确保它们不重叠)。因此,存在不“过度预订”命令队列的保障。在命令被实际发给预约之后的队列时,该命令可以保留在那里直到耗用这些命令的硬件模块或实体能够处理它们,将它们从该队列移出。在从该队列移出这些命令后,硬件将自动递增该预约自由空间。该预约技术允许在队列中进行空间预约和实际向该队列发出命令之间的固定或可变时间延迟,并且允许不同的处理单元进行(多个)判定并随后发出(多个)命令。预约自由空间不同于命令队列中的实际实时自由空间,因为空间在被发出的命令实际占用之前“被预约”。因此,软件只需要读出寄存器并检查进行预约的返回值并知道该预约是否成功。在多个处理单元之间的所有仲裁和互相排斥的任务在硬件中被处理。本文档来自技高网
...

【技术保护点】
一种用于跨多个处理单元划分并同步处理任务的系统,其包括:在硬件中实现的输入队列;在硬件中实现的输出队列;对所述输入队列和所述输出队列具有访问权的第一处理单元;与所述第一处理单元通信的至少一个第二处理单元;在硬件中实现的预约寄存器,所述预约寄存器存储指示命令队列中的可用空间的值,所述预约寄存器可由所述第一处理单元和所述至少第二处理单元两者访问;存储指令的计算机存储装置,所述指令在由所述至少一个第二处理单元执行时:访问所述预约寄存器并读出所述存储的值;确定所述读出值何时指示在所述输入队列中的可用空间以用于所述第一处理单元发出命令;通知所述第一处理单元向所述输入队列发出所述命令;并且其中所述第一处理单元接收来自所述至少第二处理单元的关于发出所述命令的通知、向所述输入队列发出所述命令并且接收来自所述输出队列的对应于所述命令的响应。

【技术特征摘要】
【国外来华专利技术】2013.12.06 US 14/099,8441.一种用于跨多个处理单元划分并同步处理任务的系统,其包括:在硬件中实现的输入队列;在硬件中实现的输出队列;对所述输入队列和所述输出队列具有访问权的第一处理单元;与所述第一处理单元通信的至少一个第二处理单元;在硬件中实现的预约寄存器,所述预约寄存器存储指示命令队列中的可用空间的值,所述预约寄存器可由所述第一处理单元和所述至少第二处理单元两者访问;存储指令的计算机存储装置,所述指令在由所述至少一个第二处理单元执行时:访问所述预约寄存器并读出所述存储的值;确定所述读出值何时指示在所述输入队列中的可用空间以用于所述第一处理单元发出命令;通知所述第一处理单元向所述输入队列发出所述命令;并且其中所述第一处理单元接收来自所述至少第二处理单元的关于发出所述命令的通知、向所述输入队列发出所述命令并且接收来自所述输出队列的对应于所述命令的响应。2.根据权利要求1所述的系统,其中所述命令队列是FIFO缓冲器。3.根据权利要求1所述的系统,其中所述系统是存储区域网络控制器即SAN控制器的部分。4.根据权利要求1所述的系统,其中所述系统是网络附接存储控制器即NAS控制器的部分。5.根据权利要求1所述的系统,其中在向所述至少一个第二处理单元返回所述存储的值之前,所述存储的值被递减预定义值。6.根据权利要求1所述的系统,其中至少一个第三处理单元执行所述命令
\t并通知所述输出队列发出所述响应。7.一种用于跨多个处理单元划分并同步处理任务的系统,其包括:在硬件中实现的输入队列;在硬件中实现的输出队列;对所述输入队列和所述输出队列具有访问权的第一处理单元;与所述输入队列通信的至少一个第二处理单元;在硬件中实现的预约寄存器,所述预约寄存器存储指示命令队列中的可用空间的值,所述预约寄存器可由所述第一处理单元和所述至少第二处理单元两者访问;存储指令的计算机存储装置,所述指令在由所述至少一个第二处理单元执行时:访问所述预约寄存器并读出...

【专利技术属性】
技术研发人员:J·D·比森J·B·耶茨
申请(专利权)人:并发投资有限责任公司
类型:发明
国别省市:美国;US

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

1