首页 / 均衡装置以及均衡方法

均衡装置以及均衡方法有效专利 发明

技术领域

[0001] 本发明有关于一种用以均衡多个硬件加速器的均衡装置及其方法。

相关背景技术

[0002] 硬件加速器主要用于加速一些特定的计算任务,这些计算任务如果由中央处理器的软件进行运算,将使得效率低下。而硬件加速器通过分析计算过程,设计专门的硬件逻辑处理计算的任务,以达到加速效果。在当前多用户多任务并行的操作系统平台下,存在着多个应用程序或执行流皆有硬件加速的需求。
[0003] 为了满足多个应用程序或执行流共用硬件加速器的需求,往往在一颗芯片中放置多个相同功能的硬件加速器。然而若是多个硬件加速器之间没有协同调度,将使得硬件加速器的负载不均衡,则多个硬件加速器的能力将无法充分发挥。因此,我们有需要针对多个硬件加速器的负载进行均衡,进而发挥多个硬件加速器的功效。

具体实施方式

[0024] 以下说明为本发明的实施例。其目的是要举例说明本发明一般性的原则,不应视为本发明的限制,本发明的范围当以权利要求书所界定的为准。
[0025] 值得注意的是,以下所揭露的内容可提供多个用以实践本发明的不同特点的实施例或范例。以下所述的特殊的元件范例与安排仅用以简单扼要地阐述本发明的精神,并非用以限定本发明的范围。此外,以下说明书可能在多个范例中重复使用相同的元件符号或文字。然而,重复使用的目的仅为了提供简化并清楚的说明,并非用以限定多个以下所讨论的实施例以及/或配置之间的关系。此外,以下说明书所述的一个特征连接至、耦接至以及/或形成于另一特征的上等的描述,实际可包含多个不同的实施例,包括该等特征直接接触,或者包含其它额外的特征形成于该等特征之间等等,使得该等特征并非直接接触。
[0026] 图1是显示根据本发明的一实施例所述的均衡加速装置的方块图。如图1所示,均衡加速装置100包括第一硬件加速器110、第二硬件加速器120以及均衡装置130。第一硬件加速器110于第一忙碌时间内,执行第一命令队列CM1以及第二命令队列CM2。第二硬件加速器120于一第二忙碌时间内,执行第三命令队列CM3以及第四命令队列CM4。
[0027] 此外,均衡装置130包括负载监控器131以及负载平衡器132。负载监控器131用以监控第一硬件加速器110于第一忙碌时间内执行第一命令队列CM1以及第二命令队列CM2、第一命令队列CM1的第一执行时间以及第二命令队列CM2的第二执行时间。并且,负载监控器131还用以监控第二硬件加速器120于第二忙碌时间内执行第三命令队列CM3以及第四命令队列CM4、第三命令队列CM3的第三执行时间以及第四命令队列CM4的第四执行时间。
[0028] 根据本发明的一实施例,均衡装置130可包括两个负载监控器131,用以分别监控第一硬件加速器110以及第二硬件加速器120,在此仅以均衡装置130包括一个负载监控器131作为说明解释之用。负载监控器131如何监控第一忙碌时间、第二忙碌时间、第一执行时间、第二执行时间、第三执行时间以及第四执行时间,将于下文中详细描述。
[0029] 负载平衡器132根据第一忙碌时间以及第二忙碌时间,计算第一硬件加速器110的第一工作周期以及第二硬件加速器120的第二工作周期。并且,负载平衡器132根据第一工作周期以及第二工作周期,迁移第一硬件加速器110的第一命令队列CM1或第二命令队列CM2至第二硬件加速器120,或是迁移第二硬件加速器120的第三命令队列CM3或第四命令队列CM4至第一硬件加速器110。
[0030] 第一硬件加速器110以及第二硬件加速器120、第一硬件加速器110执行第一命令队列CM1以及第二命令队列CM2、以及第二硬件加速器120执行第三命令队列CM3以及第四命令队列CM4在此仅作为说明解释之用,均衡加速装置100可包括任意数量的硬件加速器,并且每一硬件加速器可用以执行任意数量的命令队列。本发明并非以任何形式,限定于此。
[0031] 图2是显示根据本发明的一实施例所述的负载监控器的方块图。如图2所示,负载监控器200包括时脉计数器210、第一开关220、第一忙碌计数器230、第一执行计数器240、第二开关250、第二忙碌计数器260、第二执行计数器270以及控制器280,其中图2的负载监控器200对应至图1的负载监控器131。
[0032] 根据本发明的一实施例,当图1的均衡装置130包括二个负载监控器131用以分别监控第一硬件加速器110以及第二硬件加速器120时,负载监控器200包括时脉计数器210、第一开关220、第一忙碌计数器230、第一执行计数器240以及控制器280。
[0033] 时脉计数器210根据时脉CLK,而计数既定时间TD。当第一忙碌位BT1为第一逻辑状态时,第一开关220导通而将时脉CLK提供至第一执行时脉CLKe1;当第一忙碌位BT1为第二逻辑状态时,第一开关220不导通而不将时脉CLK提供至第一执行时脉CLKe1。根据本发明的一实施例,当图1的第一硬件加速器110为忙碌状态时,第一忙碌位BT1为第一逻辑状态;当图1的第一硬件加速器110为待机状态时,第一忙碌位BT1为第二逻辑状态。
[0034] 第一忙碌计数器230根据第一执行时脉CLKe1,计数图1的第一硬件加速器110的第一忙碌时间TB1。第一执行计数器240根据第一执行时脉CLKe1,分别计数第一命令队列CM1的第一执行时间TE1以及第二命令队列CM2的第二执行时间TE2。根据本发明的一实施例,当第一硬件加速器110完成第一命令队列CM1时,控制器280读取第一执行时间TE1后将第一执行计数器240重置,使得第一执行计数器240能够继续计数第二执行时间TE2。
[0035] 当第二忙碌位BT2为第一逻辑状态时,第二开关250将时脉CLK提供至第二执行时脉CLKe2;当第二忙碌位BT2为第二逻辑状态时,第二开关250不导通而不将时脉CLK提供至第二执行时脉CLKe2。根据本发明的一实施例,当图1的第二硬件加速器120为忙碌状态时,第二忙碌位BT2为第一逻辑状态;当图1的第二硬件加速器120为待机状态时,第二忙碌位BT2为第二逻辑状态。
[0036] 第二忙碌计数器260根据第二执行时脉CLKe2,计数图1的第二硬件加速器120的第二忙碌时间TB2。第二执行计数器270根据第二执行时脉CLKe2,分别计数第三命令队列CM3的第三执行时间TE3以及第四命令队列CM4的第四执行时间TE4。根据本发明的一实施例,当第二硬件加速器120完成第三命令队列CM3时,控制器280读取第三执行时间TE3后将第二执行计数器270重置,使得第二执行计数器270能够继续计数第四执行时间TE4。
[0037] 根据本发明的一实施例,当第一硬件加速器110执行完成第一命令队列CM1或第二硬件加速器120执行完成第三命令队列CM3时,控制器280分别将第一执行时间TE1以及第三执行时间TE3储存至存储器。根据本发明的一实施例,当时脉计数器210计数至既定时间TD时,控制器280将既定时间TD、第一忙碌时间TB1以及第二忙碌时间TB2储存至存储器后,再将时脉计数器210、第一忙碌计数器230以及第二忙碌计数器260归零。
[0038] 根据本发明的一实施例,图1的负载平衡器132根据既定时间TD、第一忙碌时间TB1、第二忙碌时间TB2、第一执行时间TE1、第二执行时间TE2、第三执行时间TE3以及第四执行时间TE4,计算第一工作周期、第二工作周期、第一执行周期、第二执行周期、第三执行周期以及第四执行周期,其中第一工作周期为第一忙碌时间TB1与既定时间TD的商,第二工作周期为第二忙碌时间TB2与既定时间TD的商,第一执行周期为第一执行时间TE1与既定时间TD的商,第二执行周期为第二执行时间TE2与既定时间TD的商,第三执行周期为第三执行时间TE3与既定时间TD的商,第四执行周期为第四执行时间TE4与既定时间TD的商。
[0039] 为了详细说明均衡装置130如何均衡多个硬件加速器的工作周期的均衡方法,以下叙述是根据本发明的一些实施例进行描述,并未以任何形式限定于此。
[0040] 图3是显示根据本发明的一实施例所述的均衡加速装置的示意图。如图3所示,均衡加速装置300包括第一硬件加速器310、第二硬件加速器320以及均衡装置330,其中均衡装置330包括负载监控器331以及负载平衡器332。
[0041] 第一硬件加速器310用以执行第一命令队列CM1、第二命令队列CM2以及第三命令队列CM3,第二硬件加速器320用以执行第四命令队列CM4、第五命令队列CM5以及第六命令队列CM6。根据本发明的一实施例,第一硬件加速器310执行第一命令队列CM1、第二命令队列CM2以及第三命令队列CM3而第二硬件加速器320执行第四命令队列CM4、第五命令队列CM5以及第六命令队列CM6,仅用以说明解释之用,并非以任何形式限定于此。
[0042] 根据本发明的一实施例,第一命令队列CM1的第一执行周期为20%、第二命令队列CM2的第二执行周期为30%以及第三命令队列CM3的第三执行周期为40%,使得第一硬件加速器310的第一工作周期为90%。根据本发明的一实施例,第四命令队列CM4的第四执行周期为10%、第五命令队列CM5的第五执行周期为30%以及第六命令队列CM6的第六执行周期为10%,使得第二硬件加速器320的第二工作周期为50%。
[0043] 根据本发明的一实施例,当负载平衡器332判断第一工作周期与第二工作周期的差值超过差异临限值时,负载平衡器332则开始针对第一硬件加速器310以及第二硬件加速器320进行负载平衡。
[0044] 举例来说,差异临限值为30%,而第一工作周期(90%)与第二工作周期(50%)的差值为40%,超过差异临限值(30%)。因此,负载平衡器332开始针对第一硬件加速器310以及第二硬件加速器320进行负载平衡。
[0045] 根据本发明的一实施例,负载平衡器332可选择第一硬件加速器310上执行周期等于第一工作周期与第二工作周期的差值的一半的命令队列,迁移至第二硬件加速器320。由于第一工作周期与第二工作周期的差值的一半为20%,因此负载平衡器332将第一命令队列CM1(20%)迁移至第二硬件加速器320,使得第一工作周期以及第二工作周期皆为70%。
[0046] 根据本发明的另一实施例,由于命令队列的执行周期可能不会恰巧等于差值的一半,因此负载平衡器332选择第一工作周期与第二工作周期的差值的一半加上弹性区间的执行周期。举例来说,弹性区间假设为5%,代表负载平衡器332迁移执行周期为15%至25%的命令队列。
[0047] 根据本发明的另一实施例,当负载平衡器332判断第一工作周期与第二工作周期的差值超过差异临限值时,负载平衡器332可选择第一硬件加速器310上执行周期最小的命令队列,迁移至第二硬件加速器320。由于第一硬件加速器310的命令队列中执行周期最小者为第一命令队列CM1,因此负载平衡器332迁移第一命令队列CM1至第二硬件加速器320。
[0048] 根据本发明的另一实施例,当负载平衡器332判断第一工作周期与第二工作周期的差值超过差异临限值时,负载平衡器332可将第一硬件加速器310上的一命令队列与第二硬件加速器320上的一命令队列交换,借以均衡第一工作周期与第二工作周期。
[0049] 图4是显示根据本发明的一实施例所述的均衡方法的流程图。图4的流程图将搭配图1,以利详细说明。首先,利用负载监控器130监控第一硬件加速器110的第一忙碌时间以及第二硬件加速器120的第二忙碌时间(步骤S1)。根据第一忙碌时间,计算第一硬件加速器110的第一工作周期(步骤S2),其中第一工作周期为第一忙碌时间与既定时间的商。
[0050] 根据第二忙碌时间,计算第二工作周期(步骤S3),其中第二工作周期为第二忙碌时间与既定时间的商。根据第一工作周期以及第二工作周期,迁移第一硬件加速器以及第二硬件加速器的命令队列(步骤S4),使得第一工作周期与第二工作周期相近。
[0051] 图5是显示根据本发明的一实施例所述的系统的架构图。如图5所示,系统500包括第一核510、第二核520、命令解码器530、权限表541、P位图(P bitmap)542、Q位图(Q bitmap)543、微处理器550、第一硬件加速器560、第二硬件加速器570以及存取单元580。
[0052] 第一核510以及第二核520为中央处理器的核,在此仅以第一核510以及第二核520作为说明解释的目的。根据本发明的其他实施例,中央处理器可包括任意数量的核。根据本发明的一实施例,当第一核510或第二核520存取主机存储器(图中并未显示)储存的指令封包时,会将所存取的指令封包送交至命令解码器530。
[0053] 命令解码器530对指令封包进行解译,且在权限表541中进行权限检查。当命令解码器530将指令封包解译为多条微指令后,将解译的多条微指令放置于各个命令队列中,并同步修改P位图542以及Q位图543。微处理器550根据P位图542以及Q位图543,将对应的命令队列分派给第一硬件加速器560或第二硬件加速器570。
[0054] 根据本发明的其他实施例,第一硬件加速器560以及第二硬件加速器570作为说明解释之用,系统500可包括任意数量的硬件加速器。第一硬件加速器560以及第二硬件加速器570通过存取单元580,存取对应命令队列的命令封包,其中命令封包储存于主机存储器(图中并未显示)。
[0055] 根据本发明的一实施例,当图1的负载平衡器132为图5的微处理器550时,命令队列储存于图5的微处理器550的静态随机存取存储器中。根据本发明的另一实施例,当图1的负载平衡器132为图5的第一核510以及第二核520中的一者时,命令队列储存于主机存储器中。
[0056] 根据本发明的一实施例,图2的控制器280将既听时间TD、第一忙碌时间TB1、第二忙碌时间TB2、第一执行时间TE1、第二执行时间TE2、第三执行时间TE3以及第四执行时间TE4储存至图5的主机存储器。
[0057] 由于本发明硬件加速器迁移的是命令队列中的封包(packet)或有效载荷(payload),因此图1的负载平衡器132可利用硬件实现,并且操作系统将工作交给硬件加速气候,具体如何实现并不会干扰到操作系统的运行。然而中央处理器进行同步多线程(Simultaneous multithreading,SMT)时,中央处理器迁移的是线程中的指令,若是使用纯硬件进行迁移的话将会造成操作系统崩溃。
[0058] 此外,硬件加速器利用交换命令队列而达到均衡负载的方式可能无法在复杂的操作系统(例如,WINDOWS)中执行,因此本发明所述的均衡装置与均衡方法皆与同步多线程有明显的区隔。
[0059] 以上所述为实施例的概述特征。所属技术领域技术人员应可以轻而易举地利用本发明为基础设计或调整以实行相同的目的和/或达成此处介绍的实施例的相同优点。所属技术领域技术人员也应了解相同的配置不应背离本发明的精神与范围,在不背离本发明的精神与范围下他们可作出各种改变、取代和交替。说明性的方法仅表示示范性的步骤,但这些步骤并不一定要以所表示的顺序执行。可另外加入、取代、改变顺序和/或消除步骤以视情况而作调整,并与所揭露的实施例精神和范围一致。

当前第1页 第1页 第2页 第3页
相关技术
均衡装置相关技术
装置均衡相关技术
齐宗普发明人的其他相关专利技术