CN107423135B - 均衡装置以及均衡方法 - Google Patents

均衡装置以及均衡方法 Download PDF

Info

Publication number
CN107423135B
CN107423135B CN201710666890.3A CN201710666890A CN107423135B CN 107423135 B CN107423135 B CN 107423135B CN 201710666890 A CN201710666890 A CN 201710666890A CN 107423135 B CN107423135 B CN 107423135B
Authority
CN
China
Prior art keywords
execution
hardware accelerator
time
busy
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.)
Active
Application number
CN201710666890.3A
Other languages
English (en)
Other versions
CN107423135A (zh
Inventor
齐宗普
韩雪花
胡迪
王峥
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Shanghai Zhaoxin Semiconductor Co Ltd
Original Assignee
VIA Alliance Semiconductor Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by VIA Alliance Semiconductor Co Ltd filed Critical VIA Alliance Semiconductor Co Ltd
Priority to CN201710666890.3A priority Critical patent/CN107423135B/zh
Priority to TW106134025A priority patent/TWI641950B/zh
Priority to US15/797,565 priority patent/US10331494B2/en
Publication of CN107423135A publication Critical patent/CN107423135A/zh
Application granted granted Critical
Publication of CN107423135B publication Critical patent/CN107423135B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation 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/5044Allocation 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5083Techniques for rebalancing the load in a distributed system
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/04Generating or distributing clock signals or signals derived directly therefrom
    • G06F1/08Clock generators with changeable or programmable clock frequency
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/40Bus structure
    • G06F13/4004Coupling between buses
    • G06F13/4022Coupling between buses using switching circuits, e.g. switching matrix, connection or expansion network
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation 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/505Allocation 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5061Partitioning or combining of resources
    • G06F9/5072Grid computing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5083Techniques for rebalancing the load in a distributed system
    • G06F9/5088Techniques for rebalancing the load in a distributed system involving task migration
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/36Handling requests for interconnection or transfer for access to common bus or bus system

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所述的均衡方法,其特征在于,上述根据上述第一工作周期以及上述第二工作周期迁移上述第一硬件加速器以及上述第二硬件加速器的命令队列的步骤还包括:
判断上述第一工作周期与上述第二工作周期的差值是否超过差异临限值;以及
当上述差值超过上述差异临限值时,将上述第一命令队列以及上述第二命令队列中的一者迁移至上述第二硬件加速器,并且将上述第三命令队列以及上述第四命令队列中的一者迁移至上述第一硬件加速器。
CN201710666890.3A 2017-08-07 2017-08-07 均衡装置以及均衡方法 Active CN107423135B (zh)

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 CN107423135A (zh) 2017-12-01
CN107423135B true 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)

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102453689B1 (ko) * 2017-12-13 2022-10-11 삼성전자주식회사 주기적 프로세스 처리 시스템 및 시스템 온 칩
CN110032452B (zh) 2019-04-19 2021-08-24 上海兆芯集成电路有限公司 处理系统与异构处理器加速方法
CN110046053B (zh) * 2019-04-19 2021-11-12 上海兆芯集成电路有限公司 用以分配任务的处理系统及其访存方法
CN110083388B (zh) * 2019-04-19 2021-11-12 上海兆芯集成电路有限公司 用于调度的处理系统及其访存方法
CN110083387B (zh) 2019-04-19 2021-11-12 上海兆芯集成电路有限公司 使用轮询机制的处理系统及其访存方法
CN110032453B (zh) * 2019-04-19 2022-05-03 上海兆芯集成电路有限公司 用以任务调度与分配的处理系统及其加速方法
CN110058931B (zh) * 2019-04-19 2022-03-22 上海兆芯集成电路有限公司 用以任务调度的处理系统及其加速方法
US20230409239A1 (en) * 2022-06-21 2023-12-21 Micron Technology, Inc. Efficient command fetching in a memory sub-system

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
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 联想(北京)有限公司 加速器、用于加速器的内存管理方法以及数据处理系统

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7075541B2 (en) * 2003-08-18 2006-07-11 Nvidia Corporation Adaptive load balancing in a multi-processor graphics processing system
US8706914B2 (en) * 2007-04-23 2014-04-22 David D. Duchesneau Computing infrastructure
US8910153B2 (en) * 2009-07-13 2014-12-09 Hewlett-Packard Development Company, L. P. Managing virtualized accelerators using admission control, load balancing and scheduling
US20140052965A1 (en) 2012-02-08 2014-02-20 Uzi Sarel 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
EP3400688B1 (en) * 2016-01-04 2020-05-20 Gray Research LLC Massively parallel computer, accelerated computing clusters, and two dimensional router and interconnection network for field programmable gate arrays, and applications

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
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 联想(北京)有限公司 加速器、用于加速器的内存管理方法以及数据处理系统

Also Published As

Publication number Publication date
US10331494B2 (en) 2019-06-25
TW201911059A (zh) 2019-03-16
CN107423135A (zh) 2017-12-01
US20190042327A1 (en) 2019-02-07
TWI641950B (zh) 2018-11-21

Similar Documents

Publication Publication Date Title
CN107423135B (zh) 均衡装置以及均衡方法
CN110678847A (zh) 用于gpu任务调度的连续分析任务
US20140115603A1 (en) Method, apparatus, and system for scheduling processor core in multiprocessor core system
Abdulrahim et al. A new improved round robin (NIRR) CPU scheduling algorithm
JP2018503995A (ja) スイッチ内のデータをバッファリングするための装置および方法
CN113032152B (zh) 用于深度学习框架的调度方法、调度装置、电子设备、存储介质和程序产品
CN104035818A (zh) 多任务调度的方法及装置
WO2005072444A3 (en) Intelligent memory device
Muraleedharan et al. Dynamic time slice round robin scheduling algorithm with unknown burst time
CN111240813A (zh) 一种dma调度方法、装置和计算机可读存储介质
CN103077140B (zh) 一种机器人运动控制卡与上位机的通信方法及通信装置
US20110173629A1 (en) Thread Synchronization
Behera et al. A new dynamic round robin and SRTN algorithm with variable original time slice and intelligent time slice for soft real time systems
US20170286168A1 (en) Balancing thread groups
CN109491780A (zh) 多任务调度方法及装置
CN105242954A (zh) 一种虚拟cpu与物理cpu之间的映射方法及电子设备
JP2013149221A (ja) プロセッサの制御装置およびその方法
CN110837415A (zh) 一种基于risc-v多核处理器的线程调度方法和装置
EP3974976A1 (en) Facilitation of guest application display from host operating system
CN110955616B (zh) 用于访问共享资源的系统和方法
CN105957131A (zh) 图形处理系统及其方法
CN114691311A (zh) 一种执行异步任务的方法、设备和计算机程序产品
KR102149171B1 (ko) 산업용 로봇 시스템의 실시간 스케줄링 방법 및 장치
Pachchigar et al. Design and Implementation of Deadline based EDF Algorithm on ARM LPC2148
US11068294B2 (en) Balancing processing loads of virtual machines

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

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.

CP03 Change of name, title or address