CN107423135A - 均衡装置以及均衡方法 - Google Patents
均衡装置以及均衡方法 Download PDFInfo
- Publication number
- CN107423135A CN107423135A CN201710666890.3A CN201710666890A CN107423135A CN 107423135 A CN107423135 A CN 107423135A CN 201710666890 A CN201710666890 A CN 201710666890A CN 107423135 A CN107423135 A CN 107423135A
- Authority
- CN
- China
- Prior art keywords
- mentioned
- time
- hardware accelerator
- work period
- command queue
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5027—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
- G06F9/5044—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering hardware capabilities
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5083—Techniques for rebalancing the load in a distributed system
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F1/00—Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
- G06F1/04—Generating or distributing clock signals or signals derived directly therefrom
- G06F1/08—Clock generators with changeable or programmable clock frequency
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/38—Information transfer, e.g. on bus
- G06F13/40—Bus structure
- G06F13/4004—Coupling between buses
- G06F13/4022—Coupling between buses using switching circuits, e.g. switching matrix, connection or expansion network
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5027—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
- G06F9/505—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering the load
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5061—Partitioning or combining of resources
- G06F9/5072—Grid computing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5083—Techniques for rebalancing the load in a distributed system
- G06F9/5088—Techniques for rebalancing the load in a distributed system involving task migration
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/36—Handling requests for interconnection or transfer for access to common bus or bus system
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Computer Hardware Design (AREA)
- Advance Control (AREA)
- Particle Accelerators (AREA)
Abstract
一种均衡装置以及均衡方法,该均衡装置用以均衡第一硬件加速器的第一工作周期以及第二硬件加速器的第二工作周期,且包括负载监控器以及负载平衡器。负载监控器用以监控第一硬件加速器的第一忙碌时间以及第二硬件加速器的第二忙碌时间。负载平衡器根据第一忙碌时间以及第二忙碌时间,计算第一工作周期以及第二工作周期,并且根据第一工作周期以及第二工作周期,迁移第一硬件加速器以及第二硬件加速器的命令队列,使得第一工作周期与第二工作周期相近。本发明通过对多个硬件加速器的负载进行均衡,能够充分发挥多个硬件加速器的能力。
Description
技术领域
本发明有关于一种用以均衡多个硬件加速器的均衡装置及其方法。
背景技术
硬件加速器主要用于加速一些特定的计算任务,这些计算任务如果由中央处理器的软件进行运算,将使得效率低下。而硬件加速器通过分析计算过程,设计专门的硬件逻辑处理计算的任务,以达到加速效果。在当前多用户多任务并行的操作系统平台下,存在着多个应用程序或执行流皆有硬件加速的需求。
为了满足多个应用程序或执行流共用硬件加速器的需求,往往在一颗芯片中放置多个相同功能的硬件加速器。然而若是多个硬件加速器之间没有协同调度,将使得硬件加速器的负载不均衡,则多个硬件加速器的能力将无法充分发挥。因此,我们有需要针对多个硬件加速器的负载进行均衡,进而发挥多个硬件加速器的功效。
发明内容
有鉴于此,一种均衡装置用以均衡一第一硬件加速器的一第一工作周期以及一第二硬件加速器的一第二工作周期,包括:一负载监控器以及一负载平衡器。上述负载监控器用以监控上述第一硬件加速器的一第一忙碌时间以及上述第二硬件加速器的一第二忙碌时间。上述负载平衡器根据上述第一忙碌时间以及上述第二忙碌时间,计算上述第一工作周期以及上述第二工作周期,并且根据上述第一工作周期以及上述第二工作周期,迁移上述第一硬件加速器以及上述第二硬件加速器的命令队列,使得上述第一工作周期与上述第二工作周期相近。
根据本发明的一实施例,上述第一硬件加速器用以执行一第一命令队列以及一第二命令队列,上述第二硬件加速器用以执行一第三命令队列以及一第四命令队列,其中上述负载监控器包括:一时脉计数器、一第一开关、一第一忙碌计数器、一第一执行计数器、一第二开关、一第二忙碌计数器、一第二执行计数器以及一控制器。上述时脉计数器根据一时脉计数一既定时间。当一第一忙碌位为一第一逻辑状态时,上述第一开关将上述时脉提供至一第一执行时脉,其中当上述第一硬件加速器为一忙碌状态时,上述第一忙碌位为一第一逻辑状态。上述第一忙碌计数器根据上述第一执行时脉,计数上述第一硬件加速器的一第一忙碌时间。上述第一执行计数器根据上述第一执行时脉,分别计数上述第一命令队列的一第一执行时间以及上述第二命令队列的一第二执行时间。当一第二忙碌位为上述第一逻辑状态时,上述第二开关将上述时脉提供至一第二执行时脉,其中当上述第二硬件加速器为上述忙碌状态时,上述第二忙碌位为上述第一逻辑状态。上述第二忙碌计数器根据上述第二执行时脉,计数上述第二硬件加速器的一第二忙碌时间。上述第二执行计数器根据上述第二执行时脉,分别计数上述第三命令队列的一第三执行时间以及上述第四命令队列的一第四执行时间。上述控制器将上述第一忙碌时间、上述第二忙碌时间、上述第一执行时间、上述第二执行时间、上述第三执行时间以及上述第四执行时间储存于一存储器,其中当上述时脉计数器计数至上述既定时间时,上述控制器将上述时脉计数器、上述第一忙碌计数器、上述第一执行计数器、上述第二忙碌计数器以及上述第二执行计数器归零。
根据本发明的一实施例,上述第一工作周期为上述第一执行时间与上述既定时间的商,上述第二工作周期为上述第二执行时间与上述既定时间的商,一第一执行周期为上述第一执行时间与上述既定时间的商,一第二执行周期为上述第二执行时间与上述既定时间的商,一第三执行周期为上述第三执行时间与上述既定时间的商,一第四执行周期为上述第四执行时间与上述既定时间的商。
根据本发明的一实施例,当上述负载平衡器判断上述第一工作周期与上述第二工作周期的一差值超过一差异临限值时,上述负载平衡器将上述第二命令队列迁移至上述第二硬件加速器,其中上述第二执行周期不大于上述差值的一半与弹性区间的和。
根据本发明的另一实施例,当上述负载平衡器判断上述第一工作周期与上述第二工作周期的一差值超过一差异临限值时,上述负载平衡器将上述第二命令队列迁移至上述第二硬件加速器,其中上述第二执行周期小于上述第一执行周期。
根据本发明的另一实施例,当上述负载平衡器判断上述第一工作周期与上述第二工作周期的一差值超过一差异临限值时,上述负载平衡器将上述第一命令队列以及上述第二命令队列中的一者迁移至上述第二硬件加速器,并且将上述第三命令队列以及上述第四命令队列中的一者迁移至上述第一硬件加速器。
本发明还提出一种均衡方法,用以均衡一第一硬件加速器的一第一工作周期以及一第二硬件加速器的一第二工作周期,上述均衡方法包括:监控上述第一硬件加速器的一第一忙碌时间以及上述第二硬件加速器的一第二忙碌时间;根据上述第一忙碌时间,计算上述第一工作周期;根据上述第二忙碌时间,计算上述第二工作周期;以及根据上述第一工作周期以及上述第二工作周期,迁移上述第一硬件加速器以及上述第二硬件加速器的命令队列,使得上述第一工作周期与上述第二工作周期相近。
根据本发明的一实施例,上述第一硬件加速器用以执行一第一命令队列以及一第二命令队列,上述第二硬件加速器用以执行一第三命令队列以及一第四命令队列,其中上述监控上述第一忙碌时间以及上述第二忙碌时间的步骤包括:根据一时脉计数一既定时间;当上述第一硬件加速器为一忙碌状态时,将上述时脉提供至一第一执行时脉;根据上述第一执行时脉,计数上述第一硬件加速器的一第一忙碌时间;根据上述第一执行时脉,分别计数上述第一命令队列的一第一执行时间以及上述第二命令队列的一第二执行时间;当上述第二硬件加速器为上述忙碌状态时,将上述时脉提供至一第二执行时脉;根据上述第二执行时脉,计数上述第二硬件加速器的一第二忙碌时间;根据上述第二执行时脉,分别计数上述第三命令队列的一第三执行时间以及上述第四命令队列的一第四执行时间;以及将上述第一忙碌时间、上述第二忙碌时间、上述第一执行时间、上述第二执行时间、上述第三执行时间以及上述第四执行时间储存于一存储器。
根据本发明的一实施例,上述第一工作周期为上述第一执行时间与上述既定时间的商,上述第二工作周期为上述第二执行时间与上述既定时间的商,一第一执行周期为上述第一执行时间与上述既定时间的商,一第二执行周期为上述第二执行时间与上述既定时间的商,一第三执行周期为上述第三执行时间与上述既定时间的商,一第四执行周期为上述第四执行时间与上述既定时间的商。
根据本发明的一实施例,上述根据上述第一工作周期以及上述第二工作周期迁移上述第一硬件加速器以及上述第二硬件加速器的命令队列的步骤还包括:判断上述第一工作周期与上述第二工作周期的一差值是否超过一差异临限值;以及当上述差值超过上述差异临限值时,将上述第二命令队列迁移至上述第二硬件加速器,其中上述第二执行周期不大于上述差值的一半与弹性区间的和。
根据本发明的另一实施例,上述根据上述第一工作周期以及上述第二工作周期迁移上述第一硬件加速器以及上述第二硬件加速器的命令队列的步骤还包括:判断上述第一工作周期与上述第二工作周期的一差值是否超过一差异临限值;以及当上述差值超过上述差异临限值时,将上述第二命令队列迁移至上述第二硬件加速器,其中上述第二执行周期小于上述第一执行周期。
根据本发明的另一实施例,上述根据上述第一工作周期以及上述第二工作周期迁移上述第一硬件加速器以及上述第二硬件加速器的命令队列的步骤还包括:判断上述第一工作周期与上述第二工作周期的一差值是否超过一差异临限值;以及当上述差值超过上述差异临限值时,将上述第一命令队列以及上述第二命令队列中的一者迁移至上述第二硬件加速器,并且将上述第三命令队列以及上述第四命令队列中的一者迁移至上述第一硬件加速器。
本发明通过对多个硬件加速器的负载进行均衡,能够充分发挥多个硬件加速器的能力。
附图说明
图1是显示根据本发明的一实施例所述的均衡加速装置的方块图;
图2是显示根据本发明的一实施例所述的负载监控器的方块图;
图3是显示根据本发明的一实施例所述的均衡加速装置的示意图;
图4是显示根据本发明的一实施例所述的均衡方法的流程图;以及
图5是显示根据本发明的一实施例所述的系统的架构图。
其中,附图中符号的简单说明如下:
100、300:均衡加速装置;110、310:第一硬件加速器;120、320:第二硬件加速器;130、330:均衡装置;131、200、331:负载监控器;132、332:负载平衡器;210:时脉计数器;220:第一开关;230:第一忙碌计数器;240:第一执行计数器;250:第二开关;260:第二忙碌计数器;270:第二执行计数器;280:控制器;BT1:第一忙碌位;BT2:第二忙碌位;CM1:第一命令队列;CM2:第二命令队列;CM3:第三命令队列;CM4:第四命令队列;CM5:第五命令队列;CM6:第六命令队列;CLK:时脉;CLKe1:第一执行时脉;CLKe2:第二执行时脉;TB1:第一忙碌时间;TB2:第二忙碌时间;TD:既定时间;TE1:第一执行时间;TE2:第二执行时间;TE3:第三执行时间;TE4:第四执行时间;S1~S4:步骤流程;500:系统;510:第一核;520:第二核;530:命令解码器;541:权限表;542:P位图;543:Q位图;550:微处理器;560:第一硬件加速器;570:第二硬件加速器;580:存取单元。
具体实施方式
以下说明为本发明的实施例。其目的是要举例说明本发明一般性的原则,不应视为本发明的限制,本发明的范围当以权利要求书所界定的为准。
值得注意的是,以下所揭露的内容可提供多个用以实践本发明的不同特点的实施例或范例。以下所述的特殊的元件范例与安排仅用以简单扼要地阐述本发明的精神,并非用以限定本发明的范围。此外,以下说明书可能在多个范例中重复使用相同的元件符号或文字。然而,重复使用的目的仅为了提供简化并清楚的说明,并非用以限定多个以下所讨论的实施例以及/或配置之间的关系。此外,以下说明书所述的一个特征连接至、耦接至以及/或形成于另一特征的上等的描述,实际可包含多个不同的实施例,包括该等特征直接接触,或者包含其它额外的特征形成于该等特征之间等等,使得该等特征并非直接接触。
图1是显示根据本发明的一实施例所述的均衡加速装置的方块图。如图1所示,均衡加速装置100包括第一硬件加速器110、第二硬件加速器120以及均衡装置130。第一硬件加速器110于第一忙碌时间内,执行第一命令队列CM1以及第二命令队列CM2。第二硬件加速器120于一第二忙碌时间内,执行第三命令队列CM3以及第四命令队列CM4。
此外,均衡装置130包括负载监控器131以及负载平衡器132。负载监控器131用以监控第一硬件加速器110于第一忙碌时间内执行第一命令队列CM1以及第二命令队列CM2、第一命令队列CM1的第一执行时间以及第二命令队列CM2的第二执行时间。并且,负载监控器131还用以监控第二硬件加速器120于第二忙碌时间内执行第三命令队列CM3以及第四命令队列CM4、第三命令队列CM3的第三执行时间以及第四命令队列CM4的第四执行时间。
根据本发明的一实施例,均衡装置130可包括两个负载监控器131,用以分别监控第一硬件加速器110以及第二硬件加速器120,在此仅以均衡装置130包括一个负载监控器131作为说明解释之用。负载监控器131如何监控第一忙碌时间、第二忙碌时间、第一执行时间、第二执行时间、第三执行时间以及第四执行时间,将于下文中详细描述。
负载平衡器132根据第一忙碌时间以及第二忙碌时间,计算第一硬件加速器110的第一工作周期以及第二硬件加速器120的第二工作周期。并且,负载平衡器132根据第一工作周期以及第二工作周期,迁移第一硬件加速器110的第一命令队列CM1或第二命令队列CM2至第二硬件加速器120,或是迁移第二硬件加速器120的第三命令队列CM3或第四命令队列CM4至第一硬件加速器110。
第一硬件加速器110以及第二硬件加速器120、第一硬件加速器110执行第一命令队列CM1以及第二命令队列CM2、以及第二硬件加速器120执行第三命令队列CM3以及第四命令队列CM4在此仅作为说明解释之用,均衡加速装置100可包括任意数量的硬件加速器,并且每一硬件加速器可用以执行任意数量的命令队列。本发明并非以任何形式,限定于此。
图2是显示根据本发明的一实施例所述的负载监控器的方块图。如图2所示,负载监控器200包括时脉计数器210、第一开关220、第一忙碌计数器230、第一执行计数器240、第二开关250、第二忙碌计数器260、第二执行计数器270以及控制器280,其中图2的负载监控器200对应至图1的负载监控器131。
根据本发明的一实施例,当图1的均衡装置130包括二个负载监控器131用以分别监控第一硬件加速器110以及第二硬件加速器120时,负载监控器200包括时脉计数器210、第一开关220、第一忙碌计数器230、第一执行计数器240以及控制器280。
时脉计数器210根据时脉CLK,而计数既定时间TD。当第一忙碌位BT1为第一逻辑状态时,第一开关220导通而将时脉CLK提供至第一执行时脉CLKe1;当第一忙碌位BT1为第二逻辑状态时,第一开关220不导通而不将时脉CLK提供至第一执行时脉CLKe1。根据本发明的一实施例,当图1的第一硬件加速器110为忙碌状态时,第一忙碌位BT1为第一逻辑状态;当图1的第一硬件加速器110为待机状态时,第一忙碌位BT1为第二逻辑状态。
第一忙碌计数器230根据第一执行时脉CLKe1,计数图1的第一硬件加速器110的第一忙碌时间TB1。第一执行计数器240根据第一执行时脉CLKe1,分别计数第一命令队列CM1的第一执行时间TE1以及第二命令队列CM2的第二执行时间TE2。根据本发明的一实施例,当第一硬件加速器110完成第一命令队列CM1时,控制器280读取第一执行时间TE1后将第一执行计数器240重置,使得第一执行计数器240能够继续计数第二执行时间TE2。
当第二忙碌位BT2为第一逻辑状态时,第二开关250将时脉CLK提供至第二执行时脉CLKe2;当第二忙碌位BT2为第二逻辑状态时,第二开关250不导通而不将时脉CLK提供至第二执行时脉CLKe2。根据本发明的一实施例,当图1的第二硬件加速器120为忙碌状态时,第二忙碌位BT2为第一逻辑状态;当图1的第二硬件加速器120为待机状态时,第二忙碌位BT2为第二逻辑状态。
第二忙碌计数器260根据第二执行时脉CLKe2,计数图1的第二硬件加速器120的第二忙碌时间TB2。第二执行计数器270根据第二执行时脉CLKe2,分别计数第三命令队列CM3的第三执行时间TE3以及第四命令队列CM4的第四执行时间TE4。根据本发明的一实施例,当第二硬件加速器120完成第三命令队列CM3时,控制器280读取第三执行时间TE3后将第二执行计数器270重置,使得第二执行计数器270能够继续计数第四执行时间TE4。
根据本发明的一实施例,当第一硬件加速器110执行完成第一命令队列CM1或第二硬件加速器120执行完成第三命令队列CM3时,控制器280分别将第一执行时间TE1以及第三执行时间TE3储存至存储器。根据本发明的一实施例,当时脉计数器210计数至既定时间TD时,控制器280将既定时间TD、第一忙碌时间TB1以及第二忙碌时间TB2储存至存储器后,再将时脉计数器210、第一忙碌计数器230以及第二忙碌计数器260归零。
根据本发明的一实施例,图1的负载平衡器132根据既定时间TD、第一忙碌时间TB1、第二忙碌时间TB2、第一执行时间TE1、第二执行时间TE2、第三执行时间TE3以及第四执行时间TE4,计算第一工作周期、第二工作周期、第一执行周期、第二执行周期、第三执行周期以及第四执行周期,其中第一工作周期为第一忙碌时间TB1与既定时间TD的商,第二工作周期为第二忙碌时间TB2与既定时间TD的商,第一执行周期为第一执行时间TE1与既定时间TD的商,第二执行周期为第二执行时间TE2与既定时间TD的商,第三执行周期为第三执行时间TE3与既定时间TD的商,第四执行周期为第四执行时间TE4与既定时间TD的商。
为了详细说明均衡装置130如何均衡多个硬件加速器的工作周期的均衡方法,以下叙述是根据本发明的一些实施例进行描述,并未以任何形式限定于此。
图3是显示根据本发明的一实施例所述的均衡加速装置的示意图。如图3所示,均衡加速装置300包括第一硬件加速器310、第二硬件加速器320以及均衡装置330,其中均衡装置330包括负载监控器331以及负载平衡器332。
第一硬件加速器310用以执行第一命令队列CM1、第二命令队列CM2以及第三命令队列CM3,第二硬件加速器320用以执行第四命令队列CM4、第五命令队列CM5以及第六命令队列CM6。根据本发明的一实施例,第一硬件加速器310执行第一命令队列CM1、第二命令队列CM2以及第三命令队列CM3而第二硬件加速器320执行第四命令队列CM4、第五命令队列CM5以及第六命令队列CM6,仅用以说明解释之用,并非以任何形式限定于此。
根据本发明的一实施例,第一命令队列CM1的第一执行周期为20%、第二命令队列CM2的第二执行周期为30%以及第三命令队列CM3的第三执行周期为40%,使得第一硬件加速器310的第一工作周期为90%。根据本发明的一实施例,第四命令队列CM4的第四执行周期为10%、第五命令队列CM5的第五执行周期为30%以及第六命令队列CM6的第六执行周期为10%,使得第二硬件加速器320的第二工作周期为50%。
根据本发明的一实施例,当负载平衡器332判断第一工作周期与第二工作周期的差值超过差异临限值时,负载平衡器332则开始针对第一硬件加速器310以及第二硬件加速器320进行负载平衡。
举例来说,差异临限值为30%,而第一工作周期(90%)与第二工作周期(50%)的差值为40%,超过差异临限值(30%)。因此,负载平衡器332开始针对第一硬件加速器310以及第二硬件加速器320进行负载平衡。
根据本发明的一实施例,负载平衡器332可选择第一硬件加速器310上执行周期等于第一工作周期与第二工作周期的差值的一半的命令队列,迁移至第二硬件加速器320。由于第一工作周期与第二工作周期的差值的一半为20%,因此负载平衡器332将第一命令队列CM1(20%)迁移至第二硬件加速器320,使得第一工作周期以及第二工作周期皆为70%。
根据本发明的另一实施例,由于命令队列的执行周期可能不会恰巧等于差值的一半,因此负载平衡器332选择第一工作周期与第二工作周期的差值的一半加上弹性区间的执行周期。举例来说,弹性区间假设为5%,代表负载平衡器332迁移执行周期为15%至25%的命令队列。
根据本发明的另一实施例,当负载平衡器332判断第一工作周期与第二工作周期的差值超过差异临限值时,负载平衡器332可选择第一硬件加速器310上执行周期最小的命令队列,迁移至第二硬件加速器320。由于第一硬件加速器310的命令队列中执行周期最小者为第一命令队列CM1,因此负载平衡器332迁移第一命令队列CM1至第二硬件加速器320。
根据本发明的另一实施例,当负载平衡器332判断第一工作周期与第二工作周期的差值超过差异临限值时,负载平衡器332可将第一硬件加速器310上的一命令队列与第二硬件加速器320上的一命令队列交换,借以均衡第一工作周期与第二工作周期。
图4是显示根据本发明的一实施例所述的均衡方法的流程图。图4的流程图将搭配图1,以利详细说明。首先,利用负载监控器130监控第一硬件加速器110的第一忙碌时间以及第二硬件加速器120的第二忙碌时间(步骤S1)。根据第一忙碌时间,计算第一硬件加速器110的第一工作周期(步骤S2),其中第一工作周期为第一忙碌时间与既定时间的商。
根据第二忙碌时间,计算第二工作周期(步骤S3),其中第二工作周期为第二忙碌时间与既定时间的商。根据第一工作周期以及第二工作周期,迁移第一硬件加速器以及第二硬件加速器的命令队列(步骤S4),使得第一工作周期与第二工作周期相近。
图5是显示根据本发明的一实施例所述的系统的架构图。如图5所示,系统500包括第一核510、第二核520、命令解码器530、权限表541、P位图(P bitmap)542、Q位图(Qbitmap)543、微处理器550、第一硬件加速器560、第二硬件加速器570以及存取单元580。
第一核510以及第二核520为中央处理器的核,在此仅以第一核510以及第二核520作为说明解释的目的。根据本发明的其他实施例,中央处理器可包括任意数量的核。根据本发明的一实施例,当第一核510或第二核520存取主机存储器(图中并未显示)储存的指令封包时,会将所存取的指令封包送交至命令解码器530。
命令解码器530对指令封包进行解译,且在权限表541中进行权限检查。当命令解码器530将指令封包解译为多条微指令后,将解译的多条微指令放置于各个命令队列中,并同步修改P位图542以及Q位图543。微处理器550根据P位图542以及Q位图543,将对应的命令队列分派给第一硬件加速器560或第二硬件加速器570。
根据本发明的其他实施例,第一硬件加速器560以及第二硬件加速器570作为说明解释之用,系统500可包括任意数量的硬件加速器。第一硬件加速器560以及第二硬件加速器570通过存取单元580,存取对应命令队列的命令封包,其中命令封包储存于主机存储器(图中并未显示)。
根据本发明的一实施例,当图1的负载平衡器132为图5的微处理器550时,命令队列储存于图5的微处理器550的静态随机存取存储器中。根据本发明的另一实施例,当图1的负载平衡器132为图5的第一核510以及第二核520中的一者时,命令队列储存于主机存储器中。
根据本发明的一实施例,图2的控制器280将既听时间TD、第一忙碌时间TB1、第二忙碌时间TB2、第一执行时间TE1、第二执行时间TE2、第三执行时间TE3以及第四执行时间TE4储存至图5的主机存储器。
由于本发明硬件加速器迁移的是命令队列中的封包(packet)或有效载荷(payload),因此图1的负载平衡器132可利用硬件实现,并且操作系统将工作交给硬件加速气候,具体如何实现并不会干扰到操作系统的运行。然而中央处理器进行同步多线程(Simultaneous multithreading,SMT)时,中央处理器迁移的是线程中的指令,若是使用纯硬件进行迁移的话将会造成操作系统崩溃。
此外,硬件加速器利用交换命令队列而达到均衡负载的方式可能无法在复杂的操作系统(例如,WINDOWS)中执行,因此本发明所述的均衡装置与均衡方法皆与同步多线程有明显的区隔。
以上所述为实施例的概述特征。所属技术领域技术人员应可以轻而易举地利用本发明为基础设计或调整以实行相同的目的和/或达成此处介绍的实施例的相同优点。所属技术领域技术人员也应了解相同的配置不应背离本发明的精神与范围,在不背离本发明的精神与范围下他们可作出各种改变、取代和交替。说明性的方法仅表示示范性的步骤,但这些步骤并不一定要以所表示的顺序执行。可另外加入、取代、改变顺序和/或消除步骤以视情况而作调整,并与所揭露的实施例精神和范围一致。
Claims (12)
1.一种均衡装置,其特征在于,用以均衡第一硬件加速器的第一工作周期以及第二硬件加速器的第二工作周期,且包括:
负载监控器,用以监控上述第一硬件加速器的第一忙碌时间以及上述第二硬件加速器的第二忙碌时间;以及
负载平衡器,根据上述第一忙碌时间以及上述第二忙碌时间,计算上述第一工作周期以及上述第二工作周期,并且根据上述第一工作周期以及上述第二工作周期,迁移上述第一硬件加速器以及上述第二硬件加速器的命令队列,使得上述第一工作周期与上述第二工作周期相近。
2.根据权利要求1所述的均衡装置,其特征在于,上述第一硬件加速器用以执行第一命令队列以及第二命令队列,上述第二硬件加速器用以执行第三命令队列以及第四命令队列,其中上述负载监控器包括:
时脉计数器,根据时脉计数既定时间;
第一开关,当第一忙碌位为第一逻辑状态时,上述第一开关将上述时脉提供至第一执行时脉,其中当上述第一硬件加速器为忙碌状态时,上述第一忙碌位为第一逻辑状态;
第一忙碌计数器,根据上述第一执行时脉,计数上述第一硬件加速器的第一忙碌时间;
第一执行计数器,根据上述第一执行时脉,分别计数上述第一命令队列的第一执行时间以及上述第二命令队列的第二执行时间;
第二开关,当第二忙碌位为上述第一逻辑状态时,上述第二开关将上述时脉提供至第二执行时脉,其中当上述第二硬件加速器为上述忙碌状态时,上述第二忙碌位为上述第一逻辑状态;
第二忙碌计数器,根据上述第二执行时脉,计数上述第二硬件加速器的第二忙碌时间;
第二执行计数器,根据上述第二执行时脉,分别计数上述第三命令队列的第三执行时间以及上述第四命令队列的第四执行时间;以及
控制器,将上述第一忙碌时间、上述第二忙碌时间、上述第一执行时间、上述第二执行时间、上述第三执行时间以及上述第四执行时间储存于存储器,其中当上述时脉计数器计数至上述既定时间时,上述控制器将上述时脉计数器、上述第一忙碌计数器、上述第一执行计数器、上述第二忙碌计数器以及上述第二执行计数器归零。
3.根据权利要求2所述的均衡装置,其特征在于,上述第一工作周期为上述第一执行时间与上述既定时间的商,上述第二工作周期为上述第二执行时间与上述既定时间的商,第一执行周期为上述第一执行时间与上述既定时间的商,第二执行周期为上述第二执行时间与上述既定时间的商,第三执行周期为上述第三执行时间与上述既定时间的商,第四执行周期为上述第四执行时间与上述既定时间的商。
4.根据权利要求3所述的均衡装置,其特征在于,当上述负载平衡器判断上述第一工作周期与上述第二工作周期的差值超过差异临限值时,上述负载平衡器将上述第二命令队列迁移至上述第二硬件加速器,其中上述第二执行周期不大于上述差值的一半与弹性区间的和。
5.根据权利要求3所述的均衡装置,其特征在于,当上述负载平衡器判断上述第一工作周期与上述第二工作周期的差值超过差异临限值时,上述负载平衡器将上述第二命令队列迁移至上述第二硬件加速器,其中上述第二执行周期小于上述第一执行周期。
6.根据权利要求3所述的均衡装置,其特征在于,当上述负载平衡器判断上述第一工作周期与上述第二工作周期的差值超过差异临限值时,上述负载平衡器将上述第一命令队列以及上述第二命令队列中的一者迁移至上述第二硬件加速器,并且将上述第三命令队列以及上述第四命令队列中的一者迁移至上述第一硬件加速器。
7.一种均衡方法,其特征在于,用以均衡第一硬件加速器的第一工作周期以及第二硬件加速器的第二工作周期,且包括:
监控上述第一硬件加速器的第一忙碌时间以及上述第二硬件加速器的第二忙碌时间;
根据上述第一忙碌时间,计算上述第一工作周期;
根据上述第二忙碌时间,计算上述第二工作周期;以及
根据上述第一工作周期以及上述第二工作周期,迁移上述第一硬件加速器以及上述第二硬件加速器的命令队列,使得上述第一工作周期与上述第二工作周期相近。
8.根据权利要求7所述的均衡方法,其特征在于,上述第一硬件加速器用以执行第一命令队列以及第二命令队列,上述第二硬件加速器用以执行第三命令队列以及第四命令队列,其中上述监控上述第一忙碌时间以及上述第二忙碌时间的步骤包括:
根据时脉计数既定时间;
当上述第一硬件加速器为忙碌状态时,将上述时脉提供至第一执行时脉;
根据上述第一执行时脉,计数上述第一硬件加速器的第一忙碌时间;
根据上述第一执行时脉,分别计数上述第一命令队列的第一执行时间以及上述第二命令队列的第二执行时间;
当上述第二硬件加速器为上述忙碌状态时,将上述时脉提供至第二执行时脉;
根据上述第二执行时脉,计数上述第二硬件加速器的第二忙碌时间;
根据上述第二执行时脉,分别计数上述第三命令队列的第三执行时间以及上述第四命令队列的第四执行时间;以及
将上述第一忙碌时间、上述第二忙碌时间、上述第一执行时间、上述第二执行时间、上述第三执行时间以及上述第四执行时间储存于存储器。
9.根据权利要求8所述的均衡方法,其特征在于,上述第一工作周期为上述第一执行时间与上述既定时间的商,上述第二工作周期为上述第二执行时间与上述既定时间的商,第一执行周期为上述第一执行时间与上述既定时间的商,第二执行周期为上述第二执行时间与上述既定时间的商,第三执行周期为上述第三执行时间与上述既定时间的商,第四执行周期为上述第四执行时间与上述既定时间的商。
10.根据权利要求9所述的均衡方法,其特征在于,上述根据上述第一工作周期以及上述第二工作周期迁移上述第一硬件加速器以及上述第二硬件加速器的命令队列的步骤还包括:
判断上述第一工作周期与上述第二工作周期的差值是否超过差异临限值;以及
当上述差值超过上述差异临限值时,将上述第二命令队列迁移至上述第二硬件加速器,其中上述第二执行周期不大于上述差值的一半与弹性区间的和。
11.根据权利要求9所述的均衡方法,其特征在于,上述根据上述第一工作周期以及上述第二工作周期迁移上述第一硬件加速器以及上述第二硬件加速器的命令队列的步骤还包括:
判断上述第一工作周期与上述第二工作周期的差值是否超过差异临限值;以及
当上述差值超过上述差异临限值时,将上述第二命令队列迁移至上述第二硬件加速器,其中上述第二执行周期小于上述第一执行周期。
12.根据权利要求9所述的均衡方法,其特征在于,上述根据上述第一工作周期以及上述第二工作周期迁移上述第一硬件加速器以及上述第二硬件加速器的命令队列的步骤还包括:
判断上述第一工作周期与上述第二工作周期的差值是否超过差异临限值;以及
当上述差值超过上述差异临限值时,将上述第一命令队列以及上述第二命令队列中的一者迁移至上述第二硬件加速器,并且将上述第三命令队列以及上述第四命令队列中的一者迁移至上述第一硬件加速器。
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710666890.3A CN107423135B (zh) | 2017-08-07 | 2017-08-07 | 均衡装置以及均衡方法 |
TW106134025A TWI641950B (zh) | 2017-08-07 | 2017-10-02 | 均衡裝置以及均衡方法 |
US15/797,565 US10331494B2 (en) | 2017-08-07 | 2017-10-30 | Balancing the loadings of accelerators |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710666890.3A CN107423135B (zh) | 2017-08-07 | 2017-08-07 | 均衡装置以及均衡方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN107423135A true CN107423135A (zh) | 2017-12-01 |
CN107423135B CN107423135B (zh) | 2020-05-12 |
Family
ID=60437385
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710666890.3A Active CN107423135B (zh) | 2017-08-07 | 2017-08-07 | 均衡装置以及均衡方法 |
Country Status (3)
Country | Link |
---|---|
US (1) | US10331494B2 (zh) |
CN (1) | CN107423135B (zh) |
TW (1) | TWI641950B (zh) |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110032453A (zh) * | 2019-04-19 | 2019-07-19 | 上海兆芯集成电路有限公司 | 用以任务调度与分配的处理系统及其加速方法 |
CN110046053A (zh) * | 2019-04-19 | 2019-07-23 | 上海兆芯集成电路有限公司 | 用以分配任务的处理系统及其访存方法 |
CN110058931A (zh) * | 2019-04-19 | 2019-07-26 | 上海兆芯集成电路有限公司 | 用以任务调度的处理系统及其加速方法 |
CN110083388A (zh) * | 2019-04-19 | 2019-08-02 | 上海兆芯集成电路有限公司 | 用于调度的处理系统及其访存方法 |
CN110083387A (zh) * | 2019-04-19 | 2019-08-02 | 上海兆芯集成电路有限公司 | 使用轮询机制的处理系统及其访存方法 |
US10929187B2 (en) | 2019-04-19 | 2021-02-23 | Shanghai Zhaoxin Semiconductor Co., Ltd. | Processing system and heterogeneous processor acceleration method |
TWI795475B (zh) * | 2017-12-13 | 2023-03-11 | 南韓商三星電子股份有限公司 | 週期行程執行系統以及系統晶片裝置 |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20230409239A1 (en) * | 2022-06-21 | 2023-12-21 | Micron Technology, Inc. | Efficient command fetching in a memory sub-system |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20100271375A1 (en) * | 2003-08-18 | 2010-10-28 | Nvidia Corporation | Adaptive load balancing in a multi processor graphics processing system |
US20110010721A1 (en) * | 2009-07-13 | 2011-01-13 | Vishakha Gupta | Managing Virtualized Accelerators Using Admission Control, Load Balancing and Scheduling |
CN103049927A (zh) * | 2013-01-17 | 2013-04-17 | 浙江大学 | 基于gpu集群的实时光线跟踪渲染方法 |
CN103970686A (zh) * | 2013-02-05 | 2014-08-06 | 鸿富锦精密工业(深圳)有限公司 | Gpu扩展卡及扩展方法 |
CN106572500A (zh) * | 2016-10-21 | 2017-04-19 | 同济大学 | 一种c‑ran中硬件加速器的调度方法 |
CN106959893A (zh) * | 2017-03-31 | 2017-07-18 | 联想(北京)有限公司 | 加速器、用于加速器的内存管理方法以及数据处理系统 |
US20170220499A1 (en) * | 2016-01-04 | 2017-08-03 | Gray Research LLC | Massively parallel computer, accelerated computing clusters, and two-dimensional router and interconnection network for field programmable gate arrays, and applications |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8706914B2 (en) * | 2007-04-23 | 2014-04-22 | David D. Duchesneau | Computing infrastructure |
WO2013119226A1 (en) | 2012-02-08 | 2013-08-15 | Intel Corporation | Dynamic cpu gpu load balancing using power |
US20150236959A1 (en) * | 2012-07-23 | 2015-08-20 | F5 Networks, Inc. | Autonomously adaptive flow acceleration based on load feedback |
US10078613B1 (en) * | 2014-03-05 | 2018-09-18 | Mellanox Technologies, Ltd. | Computing in parallel processing environments |
KR102375925B1 (ko) * | 2015-08-31 | 2022-03-17 | 삼성전자주식회사 | Cpu의 작동 방법과 상기 cpu를 포함하는 시스템의 작동 방법 |
WO2017049538A1 (en) * | 2015-09-24 | 2017-03-30 | Intel Corporation | Apparatus and method for pattern driven self-adaptive virtual graphics processor units |
-
2017
- 2017-08-07 CN CN201710666890.3A patent/CN107423135B/zh active Active
- 2017-10-02 TW TW106134025A patent/TWI641950B/zh active
- 2017-10-30 US US15/797,565 patent/US10331494B2/en active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20100271375A1 (en) * | 2003-08-18 | 2010-10-28 | Nvidia Corporation | Adaptive load balancing in a multi processor graphics processing system |
US20110010721A1 (en) * | 2009-07-13 | 2011-01-13 | Vishakha Gupta | Managing Virtualized Accelerators Using Admission Control, Load Balancing and Scheduling |
CN103049927A (zh) * | 2013-01-17 | 2013-04-17 | 浙江大学 | 基于gpu集群的实时光线跟踪渲染方法 |
CN103970686A (zh) * | 2013-02-05 | 2014-08-06 | 鸿富锦精密工业(深圳)有限公司 | Gpu扩展卡及扩展方法 |
US20170220499A1 (en) * | 2016-01-04 | 2017-08-03 | Gray Research LLC | Massively parallel computer, accelerated computing clusters, and two-dimensional router and interconnection network for field programmable gate arrays, and applications |
CN106572500A (zh) * | 2016-10-21 | 2017-04-19 | 同济大学 | 一种c‑ran中硬件加速器的调度方法 |
CN106959893A (zh) * | 2017-03-31 | 2017-07-18 | 联想(北京)有限公司 | 加速器、用于加速器的内存管理方法以及数据处理系统 |
Cited By (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TWI795475B (zh) * | 2017-12-13 | 2023-03-11 | 南韓商三星電子股份有限公司 | 週期行程執行系統以及系統晶片裝置 |
CN110083388B (zh) * | 2019-04-19 | 2021-11-12 | 上海兆芯集成电路有限公司 | 用于调度的处理系统及其访存方法 |
CN110058931A (zh) * | 2019-04-19 | 2019-07-26 | 上海兆芯集成电路有限公司 | 用以任务调度的处理系统及其加速方法 |
CN110083388A (zh) * | 2019-04-19 | 2019-08-02 | 上海兆芯集成电路有限公司 | 用于调度的处理系统及其访存方法 |
CN110083387A (zh) * | 2019-04-19 | 2019-08-02 | 上海兆芯集成电路有限公司 | 使用轮询机制的处理系统及其访存方法 |
US10929187B2 (en) | 2019-04-19 | 2021-02-23 | Shanghai Zhaoxin Semiconductor Co., Ltd. | Processing system and heterogeneous processor acceleration method |
CN110032453A (zh) * | 2019-04-19 | 2019-07-19 | 上海兆芯集成电路有限公司 | 用以任务调度与分配的处理系统及其加速方法 |
US11216304B2 (en) | 2019-04-19 | 2022-01-04 | Shanghai Zhaoxin Semiconductor Co., Ltd. | Processing system for scheduling and distributing tasks and its acceleration method |
US11256633B2 (en) | 2019-04-19 | 2022-02-22 | Shanghai Zhaoxin Semiconductor Co., Ltd. | Processing system with round-robin mechanism and its memory access method |
CN110058931B (zh) * | 2019-04-19 | 2022-03-22 | 上海兆芯集成电路有限公司 | 用以任务调度的处理系统及其加速方法 |
US11294716B2 (en) | 2019-04-19 | 2022-04-05 | Shanghai Zhaoxin Semiconductor Co., Ltd. | Processing system for managing process and its acceleration method |
US11301297B2 (en) | 2019-04-19 | 2022-04-12 | Shanghai Zhaoxin Semiconductor Co., Ltd. | Processing system for dispatching tasks and memory access method thereof |
CN110032453B (zh) * | 2019-04-19 | 2022-05-03 | 上海兆芯集成电路有限公司 | 用以任务调度与分配的处理系统及其加速方法 |
CN110046053A (zh) * | 2019-04-19 | 2019-07-23 | 上海兆芯集成电路有限公司 | 用以分配任务的处理系统及其访存方法 |
Also Published As
Publication number | Publication date |
---|---|
CN107423135B (zh) | 2020-05-12 |
US10331494B2 (en) | 2019-06-25 |
TWI641950B (zh) | 2018-11-21 |
US20190042327A1 (en) | 2019-02-07 |
TW201911059A (zh) | 2019-03-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107423135A (zh) | 均衡装置以及均衡方法 | |
TWI742045B (zh) | 任務的資源調度方法及裝置 | |
CN107506234B (zh) | 一种虚拟机调度方法及装置 | |
CN106293919B (zh) | 一种时间触发的嵌入式任务调度装置与方法 | |
Lerch et al. | Cognitive support for real-time dynamic decision making | |
CN103677976B (zh) | 一种基于时间轮定时器的事件处理方法及装置 | |
US9223669B2 (en) | Self-expanding test automation method | |
CN109597685A (zh) | 任务分配方法、装置和服务器 | |
CN107193649A (zh) | 一种基于numa系统的任务调度方法及装置 | |
CN105491117B (zh) | 面向实时数据分析的流式图数据处理系统及方法 | |
CN103744730B (zh) | 一种任务调度方法和装置 | |
CN103365708A (zh) | 任务调度方法和装置 | |
CN110308979A (zh) | 基于任务调度的异步处理框架及其实现方法 | |
CN107544886A (zh) | 一种模块流程化调度方法及装置 | |
CN102495804A (zh) | 软件自动化测试方法 | |
CN106886450A (zh) | 任务调度方法和系统 | |
CN102521265A (zh) | 一种海量数据管理中动态一致性控制方法 | |
CN104035786A (zh) | 一种软件定时器的优化方法及系统 | |
Wahler et al. | Non-disruptive large-scale component updates for real-time controllers | |
US20150081263A1 (en) | Production simulation apparatus and production simulation method | |
CN101729421B (zh) | 一种基于时分复用的存储方法和装置 | |
CN106445651A (zh) | 执行任务的方法及系统 | |
CN106412088B (zh) | 一种数据同步方法及终端 | |
CN103713944B (zh) | 一种内核中线程的处理方法、装置和系统 | |
Dauwe et al. | Resilience-aware resource management for exascale computing systems |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
CP03 | Change of name, title or address | ||
CP03 | Change of name, title or address |
Address after: Room 301, 2537 Jinke Road, Zhangjiang High Tech Park, Pudong New Area, Shanghai 201203 Patentee after: Shanghai Zhaoxin Semiconductor Co.,Ltd. Address before: Room 301, 2537 Jinke Road, Zhangjiang hi tech park, Pudong New Area, Shanghai 201203 Patentee before: VIA ALLIANCE SEMICONDUCTOR Co.,Ltd. |