CN101403982B - 一种多核处理器的任务分配方法和系统 - Google Patents
一种多核处理器的任务分配方法和系统 Download PDFInfo
- Publication number
- CN101403982B CN101403982B CN2008102256483A CN200810225648A CN101403982B CN 101403982 B CN101403982 B CN 101403982B CN 2008102256483 A CN2008102256483 A CN 2008102256483A CN 200810225648 A CN200810225648 A CN 200810225648A CN 101403982 B CN101403982 B CN 101403982B
- Authority
- CN
- China
- Prior art keywords
- processor cores
- processor
- sub
- task
- impact damper
- 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
Links
Images
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]
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Power Sources (AREA)
- Microcomputers (AREA)
- Memory System Of A Hierarchy Structure (AREA)
Abstract
本发明公开了一种多核处理器的任务分配方法、系统及设备,属于通信技术领域。所述方法包括:任务分配器根据状态寄存器的状态判断处理器内核是否空闲;任务分配器通过传输通道向空闲的处理器内核传输消息包。所述系统包括:多个子处理系统,所述多个子处理系统分别包括任务分配器、状态寄存器及处理器内核。本发明提高了多核处理器处理任务的效率,使多核处理器在不降低对突发数据的处理能力及系统性能的前提下,实现低功耗。
Description
技术领域
本发明涉及通信技术领域,特别涉及一种多核处理器的任务分配方法和系统。
背景技术
在高性能处理器设计中,靠单纯提高主频实现处理器性能提升已经遇到瓶颈,目前主流的趋势是使用处理器多内核设计,例如PC(Personal Computer,个人计算机)通用处理器的双核以及网络处理器的几十个处理器内核的设计。在现实中,处理器的任务在时间域上往往是不均衡的,因此对处理能力的需求也有所不同。例如,网络繁忙时,可能需要网络处理器的全部处理能力,而网络较空闲时,可能只需要等效一两个处理器内核的处理能力就足够了,这种处理能力上的裕量,为降低处理器功耗提供了可能的空间。关于低功耗设计(LPD,Low Power Design),目前在器件级上已有一些比较成熟的方法,比如停止闲置器件的时钟信号或者切断该部分的电压。
现有技术中,当处理器空闲时,保存现场,然后整个处理器进入休眠状态。当有任务要处理时,恢复现场,唤醒处理器进行处理。
在实现本发明的过程中,发明人发现:现有技术中由于整个处理器进入休眠,此时无法处理任何实时数据。而当有任务需要处理时只能先唤醒处理器,然后才发送任务信息,这样处理任务的效率就受到了影响。
发明内容
为了提高多核处理器处理任务的效率,使多核处理器在不降低对突发数据的处理能力及系统性能的前提下,实现低功耗,本发明实施例提供了一种多核处理器的任务分配方法、系统及设备,所述技术方案如下:
一方面,提供了一种多核处理器的任务分配方法,所述方法包括:
任务分配器根据状态寄存器的状态判断处理器内核是否空闲,其中,空闲的处理器内核的状态包括等待状态、休眠状态或关闭状态;
当所述空闲的处理器内核的状态为等待状态时,所述任务分配器通过旁路向所述空闲的处理器内核传输消息包;
当所述空闲的处理器内核的状态为休眠或关闭状态时,所述任务分配器通过缓冲器向所述空闲的处理器内核传输所述消息包。
另一方面,还提供了一种多核处理器的任务分配方法,用于多核处理器中,所述多核处理器包括多个子处理系统,所述方法包括:
通过状态寄存器读取所述多个子处理系统的状态信息,所述状态信息显示所述多个子处理系统的当前状态,所述当前状态包括等待、休眠或关闭;
向处于休眠或关闭状态的子处理系统的缓冲器发送消息包;唤醒所述处于休眠或关闭状态的子处理系统;所述缓冲器将所述消息包发送给所述子处理系统的处理器内核;
通过旁路向处于等待状态的子处理系统的处理器内核发送消息包。
再一方面,还提供了一种多核处理器的任务分配系统,所述系统,包括:任务分配器和子处理系统,所述子处理系统包括状态寄存器、处理器内核、路径控制器及传输通道,所述传输通道包括旁路和缓冲器,其中,
所述状态寄存器,用于向所述任务分配器发送所述子处理系统的状态信息,所述状态信息包括所述子处理系统的处理器内核是否处于空闲状态,所述空闲状态包括等待、休眠或关闭;
所述任务分配器,用于向所述子处理系统发送消息包;
所述路径控制器,用于接收所述消息包;当所述处理器内核处于等待状态时,选择所述旁路作为传输通道,并将所述消息包发送给所述旁路;当所述处理器内核处于休眠或关闭状态时,选择所述缓冲器作为传输通道,并将所述消息包发送给所述缓冲器;
所述传输通道,用于将所述路径控制器发送的所述消息包传送给所述处理器内核;
其中,当所述处理器内核处于休眠或关闭状态时,所述路径控制器将所述消息包发送给所述缓冲器缓存,并唤醒所述处理器内核,当所述处理器内核被唤醒后,所述缓冲器将所述消息包发送给所述处理器内核。
本发明实施例提供的技术方案的有益效果是:
可以根据应用场景和数据流量灵活配置,提高了多核处理器处理任务的效率,在不降低系统性能的前提下实现了低功耗;屏蔽了处理器内核的开关状态,从任务分配器来看,所有的处理器内核都是可用的,确保了在降低功耗的同时,不降低对突发数据的处理能力。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明实施例1提供的多核处理器的任务分配系统示意图;
图2是本发明实施例1提供的多核处理器的任务分配系统的另一种示意图;
图3是本发明实施例2提供的多核处理器的任务分配方法流程图;
图4是本发明实施例3提供的多核处理器的任务分配方法流程图;
图5是本发明实施例4提供的路径控制器结构示意图;
图6是本发明实施例5提供的缓冲器结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
为了提高多核处理器处理任务的效率,使多核处理器在不降低对突发数据的处理能力及系统性能的前提下,实现低功耗,本发明实施例提供了一种多核处理器的任务分配方法、系统及设备,详见如下各实施例,对本发明实施例所提供的技术方案进行描述:
实施例1
请参照图1,本发明实施例提供了一种多核处理器任务分配系统100,所述多核处理器任务分配系统100,包括任务分配器20,及多个子处理系统0至X。
下面以子处理系统0为例进行说明,该子处理系统0包括一处理器内核12、一缓冲器14、及一状态寄存器16。其中,缓冲器14的输入端和输出端分别与任务分配器20和处理器内核12相通,用于自任务分配器20处接收任务信息,并将该任务信息发送给处理器内核12。状态寄存器16与缓冲器14及处理器内核12相通,用于将处理器内核12和缓冲器14的状态,反馈给任务分配器20。
而在实际应用中,所述任务分配器20根据该多核处理器任务分配系统中的各个状态寄存器所反映的判断结果,向多个子处理系统0至X分发任务。
在实际应用中,状态寄存器16保持监控处理器内核12和缓冲器14的状态。在本发明实施例中,当所述处理器内核12正在处理任务、或缓冲器14中保存有任务信息时,状态寄存器16向任务分配器20反馈其所属的子处理系统处于忙碌状态。而当处理器内核12处于等待、休眠、或关闭状态,且缓冲器14中并未保存有任务信息时,则状态寄存器16向任务分配器20反馈其所属的子处理系统处于空闲状态。
在实际应用中,状态寄存器16向任务分配器20反馈的信息中可包括第一状态位,用于表示其所属的子处理系统是否处于空闲状态。
进一步地,所述状态寄存器16向任务分配器20反馈的信息中还可包括第二状态位,用于表示其所属的子处理系统的当前状态,即在空闲状态下所处的具体的某一状态情况,如等待、休眠、或关闭等。其中,当需要分配任务时,处于等待状态的子处理系统的优先级高于处于休眠状态的子处理系统,处于休眠状态的子处理系统的优先级高于处于关闭状态的子处理系统,从而当有多个子处理系统处于空闲状态时,任务分配器20可将任务优先分配给处于等待状态的子处理系统,避免了唤醒处于休眠、关闭状态的子处理系统所带来的能源的消耗以及效率的降低。
更进一步地,当子处理系统的处理器内核12为多线程处理器内核时,所述状态寄存器16向任务分配器20反馈的信息还可包括第三状态位,用于表示所述处理器内核12的空闲程度,比如有几条线程空闲,而任务分配器20在分配任务的时候会优先向空闲程度高的处理器内核12分配任务。易于理解的是,当由于降低能耗的需要而让部分子处理系统休眠或关闭时,即使其状态寄存器中显示其有较高的空闲程度,只要其他的子处理系统的处理器内核12中仍有空闲线程,就不会唤醒处于休眠或关闭状态的子处理系统,从而降低了该系统的工作功耗。
在本发明实施例中,所述缓冲器14可以采用FIFO(First In First Out,先入先出缓存队列)形式实现,在其它可选择的实施例中,其也可以采用其它形式的缓冲器,且并不会影响到本发明实施例的实施。
本发明实施例的多核处理器任务分配系统100通过状态寄存器16来判断子处理系统的状态,如果有任务需要进行分配,而处于活动状态的子处理系统均繁忙时。任务分配器20根据处于休眠或关闭状态的子处理系统的状态寄存器16了解到这些休眠或关闭状态的子处理系统可以处理任务,于是任务分配器20可先将任务存入缓冲器14中,并唤醒处于休眠或关闭状态的子处理系统的内处理器内核12,从而提高了任务处理的效率。
在本发明实事例中,可由缓冲器14来唤醒其相应的处理器内核12。
本发明实施例充分利用多核处理器结构上的特点,利用缓冲器和状态寄存器,在处理器内核处于休眠或关闭的状态时,任务分配器也可以向其分配任务,以使得当处理器内核被唤醒后可以及时进行处理,提高了任务处理的效率。
请参照图2,本发明实施例还提供另一种多核处理器任务分配系统200。与本发明实施例提供的多核处理器任务分配系统100的相同之处省略说明,本实施例的多核处理器任务分配系统200与前一实施例中所述的多核处理器任务分配系统的区别之处在于:每个子处理系统还包括旁路(Bypass)213及路径控制器215,其中,路径控制器215与任务分配器220相通,并接受任务分配器220发送的任务信息,路径控制器215根据状态寄存器216中储存的状态信息,选择任务信息的传输通道。具体地,当待接收任务的处理器内核212在处理数据时,即该处理器内核212处于忙碌状态时,路径控制器215选择缓冲器214作为任务信息发送的路径;当处理器内核212处于等待状态时,路径控制器215选择旁路213作为任务信息发送的路径,该旁路213可以直接将接收的任务消息发送给处于等待状态的处理器内核212,以加快任务信息的处理速度;当处理器内核212处于休眠或关闭状态时,路径控制器215将任务信息通过缓冲器214发送,该缓冲器214接收并缓存任务消息的同时,唤醒处于休眠或关闭状态的处理器内核212,当该处理器内核212被唤醒后,缓冲器214将缓存的任务消息发送给处理器内核212。
本发明实施例提供的系统,通过设置状态寄存器以及传输通道,可以根据应用场景和数据流量灵活配置,提高了多核处理器处理任务的效率,在不降低系统性能的前提下实现了低功耗;屏蔽了处理器内核的开关状态,从任务分配器来看,所有的处理器内核都是可用的,确保了在降低功耗的同时,不降低对突发数据的处理能力。
实施例2
本发明实施例提供了一种多核处理器的任务分配方法,该方法包括:
首先,任务分配器根据状态寄存器的状态判断处理器内核是否空闲;
然后,通过传输通道向空闲的处理器内核传输消息包。
下面将结合附图对本发明实施例提供的多核处理器的任务分配方法进行说明:本发明实施例提供了一种多核处理器的任务分配方法,且以任务分配器和处理器内核之间设置的传输通道为缓冲器为例进行说明,参见图3,方法包括:
301:任务分配器根据每个处理器内核对应的状态寄存器的忙闲状态查找空闲的处理器内核,然后把消息包通过缓冲器发送给空闲的处理器内核处理。如果该空闲的处理器内核处于休眠或关闭状态,则执行302;如果该空闲的处理器内核处于等待状态,则执行304。
具体地,对于多线程处理器内核,则要根据内部线程的状态设置状态寄存器,以8线程处理器内核为例,一个处理器内核可以同时处理最多8个任务,以权重0-8来表示处理器内核忙闲状态,若8个线程全部为空闲,状态寄存器的第三状态位为8,若有3个被占用,5个空闲,则状态寄存器的第三状态位为5。为了避免资源竞争,任务分配器通常优先把任务发给状态寄存器空闲程度高的处理器内核,而多线程处理器内核只有内部全部线程都空闲时才能关闭处理器内核。任务分配器在活动内核中分配任务时,此时,为了在效率和功耗上取得一个平衡点,可以根据处理器内核的处理能力设定,当活动处理器内核中空闲线程比率高于关闭阈值则关掉一个处理器内核,此内核设为非活动状态,待内部全部线程运行完后,自动停止工作,在所有活动处理器内核中仍然执行空闲程度高的处理器内核优先分配算法。
302:处理器内核处于休眠或关闭状态,任务分配器发给处理器内核的消息包暂存在缓冲器中,同时唤醒处理器内核,并将状态寄存器设为忙碌状态。
其中,当处理器内核处于休眠状态时,整个系统的功耗降低且处于休眠状态的处理器内核可以很快地被唤醒,缓冲器的缓存压力较小。当处理器内核处于不活动状态时,还可以通过关掉单个处理器内核的电源来关闭处理器内核,这样做可以更为省电,但唤醒时所需要的切换时间相对较长,需要的缓存更大,具体采用哪种方式实现低功耗视应用场合而定。
303:处理器内核被唤醒后,对暂存在缓冲器中的消息包处理完毕后,状态寄存器复位为闲状态,然后结束。
其中,当状态寄存器复位为空闲状态后,从任务分配器来看,该处理器内核又处于可分配任务状态。
304:处理器内核处于等待状态,缓冲器接收任务分配器发来的消息包,并将接收的消息包直接传输给处理器内核处理,同时将状态寄存器设为忙碌状态;
其中,由于处理器内核处于等待状态,可以对通过缓冲器传输的消息包直接进行处理,不需要等待。此时,该处理器内核可处理已在接收的消息包,但不接收新消息包。
305:当处理器内核处理完消息包后,恢复等待状态,将状态寄存器复位为空闲状态,然后结束。
其中,当状态寄存器复位为空闲状态后,从任务分配器来看,该处理器内核又处于可分配任务状态。
本发明实施例中多核处理器通过状态寄存器的忙闲状态进行动态开关,屏蔽了处理器内核的开关状态对任务分配器在分配任务时的影响。即使处理器内核处于关闭状态,但从任务分配器来看,该处于关闭状态的处理器内核仍是可用的,且所有的处理器内核都是可用的,确保了在降低功耗的同时,不降低对突发数据的处理能力。
实施例3
本发明实施例还提供了一种多核处理器的任务分配的方法,且以任务分配器和处理器内核之间设置的传输通道包括旁路和缓冲器为例,进行说明,参见图4,方法包括:
401:任务分配器根据每个处理器内核对应的状态寄存器所显示的忙闲状态,查找空闲的处理器内核,然后把接收到的消息包发送给空闲的处理器内核处理。
其中,当处理器内核为单线程内核时,设置其状态寄存器的空闲或忙碌状态的定义,可以根据具体的需要实现,例如,根据该单线程处理器内核是否正在处理数据,从而定义该单线程内核的忙闲状态,如果该处理器内核正在处理任务,或缓冲器中保存有任务时,则为忙碌状态;反之,当处理器内核并未在处理任务,而缓冲器中亦未有任务时,则为空闲状态,更具体的,所述空闲状态包括处理器内核等待处理任务、休眠和关闭这三种情况。当任务分配器获取到多个内核都处于空闲状态时,可以随机任选出一个空闲内核,也可以根据预设的优化选择算法,从中选择出一个空闲内核,本发明实施例不限制具体的选择方式和方法。
其中,当处理器内核为多线程处理器内核时,则要根据内部线程的状态设置状态寄存器,以8线程处理器内核为例,即一个处理器内核可以同时处理最多8个任务,以权重0-8来表示处理器内核忙闲状态,若8个线程全部为空闲,状态寄存器的第三状态位为8,若有3个被占用,5个空闲,则状态寄存器的第三状态位为5。为了避免资源竞争,任务分配器通常优先把任务发给状态寄存器空闲程度高的处理器内核,而多线程处理器内核只有内部全部线程都空闲时才能关闭处理器内核或使处理器内核休眠。根据多线程处理器内核的状态将多线程处理器内核分为活动与非活动两种状态,任务分配器只在活动内核中分配任务,此时为了在效率和功耗上取得一个平衡点,可以根据处理器内核的处理能力设定,当处于活动的处理器内核中的空闲线程高于关闭阈值则关掉一个处理器内核,此内核设为非活动状态,待内部全部线程运行完后,自动停止工作;在所有工作的处理器内核中仍然在执行任务且空闲程度高的处理器内核优先分配任务。即当多核处理器中的处理器内核为多线程时,则根据多线程中的空闲线程数目,设定空闲程度,每个多线程处理器内核的状态寄存器根据所述空闲程度设定状态值,相应地,任务分配器根据所述空闲程度,优先选择活动内核中空闲线程数目最大的多线程处理器内核进行分配。
其中,针对处理器的内核状态进行如下说明:
(1)对于单线程内核而言,默认所有内核都可由任务分配器进行任务分配,内核为降低功耗而关闭与否对分配器是透明的。因此这种情况下只有空闲状态(包括等待、休眠、关机)和忙碌状态。
(2)对于多线程内核而言,其管理较为复杂,当一个内核中的空闲线程高于关闭阈值则关掉一个处理器内核,此内核设为非活动状态,待内部全部线程运行完后,自动停止工作,只有所有线程都空闲,才能关闭该内核。因此如果所有内核仍由任务分配器分配任务,就可能造成所有内核都工作但每个内核中平均工作线程较少,从降低功耗的角度看是不合理的。应该存在一种算法能够保证工作的内核数较少而每核内平均工作的线程数较多,同时要关掉某个内核时也需要有机制保证其内部全部线程不再分配任务。因此多线程内核有活动和非活动状态的区别,而上述“空闲”、“忙”等状态只在活动内核中有效,活动内核内部关闭与否对分配器也是透明的,任务分配器只在活动内核中分配。而对于非活动的内核也可以看成一直是″忙″状态,实际上不参与工作,任务分配器也不会向其分配。
402:与该空闲的处理器内核相对应的路径控制器收到任务分配器发送的消息包后,根据该处理器内核的空闲状态选择一个通道传输消息包。如果处理器内核处于休眠或关闭状态,则执行203,如果处理器内核处于等待状态,则执行205。
其中,如前文所述,处理器内核的空闲状态,根据空闲的时间长短可为等待状态、休眠或关闭状态,当该处理器内核不处理数据时,则由忙碌状态转为空闲状态,具体地,处理器内核首先会转为等待状态,而当该等待状态的持续时间达到设定时间值时,该处理器内核由等待状态切换到休眠或关闭状态,从而减少功耗。
403:当处理器内核处于休眠或关闭状态,选择使用缓冲器传输消息包,传输的消息包由缓冲器缓存,同时唤醒处理器内核,状态寄存器设为忙碌状态。
其中,处理器内核空闲时可以采用关掉时钟的方式来实现低功耗,该方式切换唤醒速度快;也可以采用分别关掉单个处理器内核的电源来实现低功耗,该方式更省电,节省功耗,但切换唤醒时间相对较长,需要的缓存更大,例如对于功耗要求较高时,则可以采用分别关掉单个处理器内核的电源的方式,而对于对切换唤醒时间要求较高时,则可以采用上述第一种关掉时钟的方式。其中,具体采用哪种方式实现低功耗依据具体的应用场合而定。
404:处理器内核被唤醒后,对暂存在缓冲器中的消息包处理完后,把输入通道切换到旁路,状态寄存器复位为空闲状态,然后结束。
其中,当状态寄存器复位为空闲状态后,从任务分配器来看,该处理器内核又处于可分配任务状态。
405:当处理器内核处于等待状态,选择使用旁路传输消息包,旁路开始接收任务分配器发送的消息包,状态寄存器设为忙碌状态,当前处理器内核可处理已在接收的消息包,但不接收新消息包。
其中,当处理器内核处于等待状态,选择使用旁路传输消息包,将消息包直接传送给等待状态的处理器内核,实现了处于等待状态的处理器内核对旁路传输消息包的直接处理,此时消息包的处理过程不需要等待,因此,减少传输消息包的功耗和时延。
406:当处理器内核处理旁路传输完消息包后,进入等待状态,状态寄存器复位为空闲状态,然后结束。
其中,当状态寄存器复位为空闲状态后,从任务分配器来看,该处理器内核又处于可分配任务状态。
本发明实施例中多核处理器通过状态寄存器的忙闲状态进行动态开关,任务分配器根据状态寄存器的状态分配内核任务,根据选择的传输通道(缓冲器或旁路)实现对消息包的传输,即使多核处理器处于关闭状态,从任务分配器来看,该关闭的多核处理器仍是可分配任务的状态,确保了在为降低功耗而关闭空闲的处理器内核的同时,又不会降低对突发数据的处理能力。
实施例4
参见图5,本发明实施例提供了一种路径控制器,该路径控制器,包括:
接收模块501,用于接收任务分配器发送的消息包;
选择模块502,用于选择传输通道传输消息包。
其中,当传输通道包括旁路和缓冲器时,选择模块502具体包括:
第一选择单元,用于当空闲的处理器内核的状态为等待状态时,选择旁路作为传输通道,并将接收的消息包发送给旁路;
第二选择单元,用于当空闲的处理器内核的状态为休眠或关闭状态时,选择缓冲器作为传输通道,并将接收的消息包发送给缓冲器。
本发明实施例提供的路径控制器,可以实现对传输通道的选择,进而根据选择的传输通道实现对消息包的传输,从而提高了多核处理器处理任务的效率,使多核处理器在不降低对突发数据的处理能力及系统性能的前提下,实现低功耗。
实施例5
参见图6,本发明实施例提供了一种缓冲器,该所述缓冲器,包括:
接收模块601,用于接收路径控制器传输的消息包;
缓存模块602,用于将接收模块接收到的消息包缓存;
唤醒模块603,用于唤醒休眠或关闭的处理器内核;
传输模块604,用于当唤醒模块唤醒处理器内核后,将缓冲模块缓存的消息包传输给被唤醒的处理器内核。
进一步地,当处理器内核处于空闲状态,则传输模块604还用于将接收模块接收的消息包直接发送给处于空闲状态的处理器内核。
本发明实施例提供的缓冲器,当处理器内核为休眠或关闭状态时,对接收的消息包缓存的同时,并唤醒该处理器内核,当唤醒处理器内核后,将缓存的消息包发送,从而提高了多核处理器处理任务的效率,使多核处理器在不降低对突发数据的处理能力及系统性能的前提下,实现低功耗。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到本发明可以通过硬件实现,也可以借助软件加必要的通用硬件平台的方式来实现。基于这样的理解,本发明的技术方案可以以软件产品的形式体现出来,该软件产品可以存储在一个非易失性存储介质(可以是CD-ROM,U盘,移动硬盘等)中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。
以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (5)
1.一种多核处理器的任务分配方法,其特征在于,所述方法包括:
任务分配器根据状态寄存器的状态判断处理器内核是否空闲,其中,空闲的处理器内核的状态包括等待状态、休眠状态或关闭状态;
当所述空闲的处理器内核的状态为等待状态时,所述任务分配器通过旁路向所述空闲的处理器内核传输消息包;
当所述空闲的处理器内核的状态为休眠或关闭状态时,所述任务分配器通过缓冲器向所述空闲的处理器内核传输所述消息包。
2.根据权利要求1所述的多核处理器的任务分配方法,其特征在于,所述任务分配器根据状态寄存器的状态判断处理器内核是否空闲,包括:
当所述多核处理器中包括多个多线程处理器内核时,所述多个多线程处理器内核相应的状态寄存器根据所述多线程处理器内核空闲线程的数目向所述任务分配器发送一状态信息;
所述任务分配器根据所述多个多线程处理器内核所相应的状态寄存器返回的状态信息,判断所述多个多线程处理器内核的空闲程度。
3.根据权利要求1所述的多核处理器的任务分配方法,其特征在于,所述方法还包括:
所述缓冲器将接收的所述任务分配器发送的消息包缓存;
当所述处理器内核为休眠或关闭状态时,唤醒所述休眠或关闭状态的处理器内核;
当所述休眠或关闭状态的处理器内核被唤醒后,所述缓冲器将缓存的消息包发送给被所述唤醒后的处理器内核。
4.一种多核处理器的任务分配方法,用于多核处理器中,所述多核处理器包括多个子处理系统,其特征在于,所述方法包括:
通过状态寄存器读取所述多个子处理系统的状态信息,所述状态信息显示所述多个子处理系统的当前状态,所述当前状态包括等待、休眠或关闭;
向处于休眠或关闭状态的子处理系统的缓冲器发送消息包;唤醒所述处于休眠或关闭状态的子处理系统;所述缓冲器将所述消息包发送给所述子处理系统的处理器内核;
通过旁路向处于等待状态的子处理系统的处理器内核发送消息包。
5.一种多核处理器的任务分配系统,其特征在于,所述系统,包括:任务分配器和子处理系统,所述子处理系统包括状态寄存器、处理器内核、路径控制器及传输通道,所述传输通道包括旁路和缓冲器,其中,
所述状态寄存器,用于向所述任务分配器发送所述子处理系统的状态信息,所述状态信息包括所述子处理系统的处理器内核是否处于空闲状态,所述空闲状态包括等待、休眠或关闭;
所述任务分配器,用于向所述子处理系统发送消息包;
所述路径控制器,用于接收所述消息包;当所述处理器内核处于等待状态时,选择所述旁路作为传输通道,并将所述消息包发送给所述旁路;当所述处理器内核处于休眠或关闭状态时,选择所述缓冲器作为传输通道,并将所述消息包发送给所述缓冲器;
所述传输通道,用于将所述路径控制器发送的所述消息包传送给所述处理器内核;
其中,当所述处理器内核处于休眠或关闭状态时,所述路径控制器将所述消息包发送给所述缓冲器缓存,并唤醒所述处理器内核,当所述处理器内核被唤醒后,所述缓冲器将所述消息包发送给所述处理器内核。
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2008102256483A CN101403982B (zh) | 2008-11-03 | 2008-11-03 | 一种多核处理器的任务分配方法和系统 |
PCT/CN2009/071648 WO2010060289A1 (zh) | 2008-11-03 | 2009-05-05 | 一种多核处理器的任务分配方法、系统及设备 |
US13/099,960 US8763002B2 (en) | 2008-11-03 | 2011-05-03 | Method, system, and apparatus for task allocation of multi-core processor |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2008102256483A CN101403982B (zh) | 2008-11-03 | 2008-11-03 | 一种多核处理器的任务分配方法和系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101403982A CN101403982A (zh) | 2009-04-08 |
CN101403982B true CN101403982B (zh) | 2011-07-20 |
Family
ID=40538007
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2008102256483A Active CN101403982B (zh) | 2008-11-03 | 2008-11-03 | 一种多核处理器的任务分配方法和系统 |
Country Status (3)
Country | Link |
---|---|
US (1) | US8763002B2 (zh) |
CN (1) | CN101403982B (zh) |
WO (1) | WO2010060289A1 (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101916209A (zh) * | 2010-08-06 | 2010-12-15 | 华东交通大学 | 一种多核处理器集群任务资源分配方法 |
US8763002B2 (en) | 2008-11-03 | 2014-06-24 | Huawei Technologies Co., Ltd. | Method, system, and apparatus for task allocation of multi-core processor |
Families Citing this family (50)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
NL2004392A (en) * | 2009-04-15 | 2010-10-18 | Asml Netherlands Bv | Lithographic apparatus, control system, multi-core processor, and a method to start tasks on a multi-core processor. |
CN101976208B (zh) * | 2010-10-25 | 2014-08-13 | 中兴通讯股份有限公司 | 信息投递的方法和装置 |
CN101980206A (zh) * | 2010-11-05 | 2011-02-23 | 北京云快线软件服务有限公司 | 文件任务管理工具 |
CN102023898A (zh) * | 2010-12-21 | 2011-04-20 | 中兴通讯股份有限公司 | 中央处理器热插拔的实现方法及装置 |
GB2501434B (en) * | 2011-01-10 | 2013-12-25 | Ibm | Activity recording system for a concurrent software environment |
TW201243714A (en) * | 2011-04-22 | 2012-11-01 | Feature Integration Technology Inc | A method and a system for dispatching the execution sequence of the processes in a multiprocessor system |
CN102955555A (zh) * | 2011-08-19 | 2013-03-06 | 苏州简约纳电子有限公司 | 一种多线程处理方法和装置 |
CN102955549B (zh) * | 2011-08-29 | 2016-06-29 | 华为技术有限公司 | 一种多核cpu的电源管理方法、系统及cpu |
TWI439925B (zh) * | 2011-12-01 | 2014-06-01 | Inst Information Industry | 內嵌式系統及其執行緒與緩衝區管理方法 |
US9471458B2 (en) | 2012-01-05 | 2016-10-18 | International Business Machines Corporation | Synchronization activity recording system for a concurrent software environment |
CN102566739B (zh) * | 2012-01-06 | 2014-11-26 | 威盛电子股份有限公司 | 多核处理器系统及其动态电源管理方法与控制装置 |
WO2013137865A1 (en) * | 2012-03-13 | 2013-09-19 | Intel Corporation | Method and apparatus for per core performance states |
WO2013165349A1 (en) * | 2012-04-30 | 2013-11-07 | Hewlett Packard Development Company, L.P. | Processor providing multiple system images |
CN102682741B (zh) * | 2012-05-30 | 2014-12-03 | 华为技术有限公司 | 一种多显示控制系统及多显示控制系统的实现方法 |
CN102831024B (zh) * | 2012-08-03 | 2014-12-17 | 中国人民解放军国防科学技术大学 | 一种基于随机扰动的防饿死访存请求唤醒方法 |
US9063906B2 (en) * | 2012-09-27 | 2015-06-23 | International Business Machines Corporation | Thread sparing between cores in a multi-threaded processor |
KR20140044596A (ko) * | 2012-10-05 | 2014-04-15 | 삼성전자주식회사 | 멀티 코어 프로세서를 구비한 컴퓨팅 시스템 및 그것의 로드 밸런싱 방법 |
US9223383B2 (en) | 2012-12-21 | 2015-12-29 | Advanced Micro Devices, Inc. | Guardband reduction for multi-core data processor |
US9360918B2 (en) * | 2012-12-21 | 2016-06-07 | Advanced Micro Devices, Inc. | Power control for multi-core data processor |
US20140191980A1 (en) * | 2013-01-04 | 2014-07-10 | Qualcomm Mems Technologies, Inc. | System for reuse of touch panel and controller by a secondary display |
CN104156267B (zh) * | 2013-05-14 | 2017-10-10 | 华为技术有限公司 | 任务分配方法、任务分配装置及片上网络 |
KR102110812B1 (ko) * | 2013-05-30 | 2020-05-14 | 삼성전자 주식회사 | 멀티 코어 시스템 및 멀티 코어 시스템의 작업 스케줄링 방법 |
US9612949B2 (en) * | 2013-06-13 | 2017-04-04 | Arm Limited | Memory allocation in a multi-core processing system based on a threshold amount of memory |
CN104253807B (zh) * | 2013-06-28 | 2017-12-15 | 华为技术有限公司 | 一种媒体资源控制方法及装置 |
CN103336723B (zh) * | 2013-07-21 | 2017-03-29 | 哈尔滨理工大学 | 基于关键路径的适应处理器内核紧缺调度方法 |
US20150046676A1 (en) * | 2013-08-12 | 2015-02-12 | Qualcomm Incorporated | Method and Devices for Data Path and Compute Hardware Optimization |
WO2015039320A1 (en) * | 2013-09-19 | 2015-03-26 | Intel Corporation | Techniques for distributed processing task portion assignment |
JP2015109071A (ja) * | 2013-10-25 | 2015-06-11 | トヨタ自動車株式会社 | 制御装置 |
US9244747B2 (en) | 2014-03-13 | 2016-01-26 | Qualcomm Incorporated | System and method for providing dynamic clock and voltage scaling (DCVS) aware interprocessor communication |
CN103929441A (zh) * | 2014-05-09 | 2014-07-16 | 中国银行股份有限公司 | 一种任务分配方法及装置 |
CN104216765B (zh) * | 2014-08-15 | 2017-11-03 | 东软集团股份有限公司 | 一种多线程并发处理业务的方法和系统 |
JP6128104B2 (ja) * | 2014-11-28 | 2017-05-17 | コニカミノルタ株式会社 | 画像処理装置、その制御方法、およびプログラム |
WO2016096017A1 (en) * | 2014-12-18 | 2016-06-23 | Telefonaktiebolaget Lm Ericsson (Publ) | Nodes and methods for enabling tasks to be processed |
US9710054B2 (en) * | 2015-02-28 | 2017-07-18 | Intel Corporation | Programmable power management agent |
EP3634039B1 (en) * | 2015-04-10 | 2022-06-01 | Panasonic Intellectual Property Corporation of America | System information scheduling in machine type communication |
US10284502B2 (en) * | 2015-10-12 | 2019-05-07 | Mellanox Technologies, Ltd. | Dynamic optimization for IP forwarding performance |
CN105608049A (zh) * | 2015-12-23 | 2016-05-25 | 魅族科技(中国)有限公司 | 智能终端的cpu控制方法及控制装置 |
CN106802598A (zh) * | 2016-12-30 | 2017-06-06 | 广东欧珀移动通信有限公司 | 一种基于多核心接入点架构的供电方法以及多核心接入点 |
CN106897145A (zh) * | 2017-01-23 | 2017-06-27 | 宇龙计算机通信科技(深圳)有限公司 | 内核控制方法、内核控制装置和终端 |
KR20180089093A (ko) * | 2017-01-31 | 2018-08-08 | 삼성전자주식회사 | 전자 장치 및 전자 장치의 지문 인식 방법 |
CN108009912A (zh) * | 2017-11-30 | 2018-05-08 | 中国银行股份有限公司 | 一种释放他行票可用额的释放方法及装置 |
CN108121433B (zh) * | 2017-12-06 | 2021-10-15 | 中国航空工业集团公司西安航空计算技术研究所 | 一种gpu多处理器系统的任务调度方法 |
CN109117260B (zh) * | 2018-08-30 | 2021-01-01 | 百度在线网络技术(北京)有限公司 | 一种任务调度方法、装置、设备和介质 |
CN108924027A (zh) * | 2018-09-19 | 2018-11-30 | 武汉库迪智能技术有限公司 | 一种基于ARM内核的EtherCAT主站控制器 |
CN111198765B (zh) * | 2019-12-31 | 2023-08-04 | 富联裕展科技(河南)有限公司 | 运算资源分配和管理方法及代理服务器 |
WO2021142614A1 (zh) * | 2020-01-14 | 2021-07-22 | 华为技术有限公司 | 确定芯片状态的方法、调度集群资源的方法及其装置 |
KR20220046221A (ko) * | 2020-10-07 | 2022-04-14 | 에스케이하이닉스 주식회사 | 메모리 시스템 및 메모리 시스템의 동작 방법 |
CN112817760A (zh) * | 2021-01-28 | 2021-05-18 | 深圳宏芯宇电子股份有限公司 | 多核处理器及多核处理器信号处理方法 |
CN113312605A (zh) * | 2021-04-15 | 2021-08-27 | 北京交通大学 | 一种数据传输方法、装置、电子设备及存储介质 |
CN114691326A (zh) * | 2022-03-16 | 2022-07-01 | 中国船舶重工集团公司第七一一研究所 | 多任务的调度方法、多核处理器及机旁监控系统 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20030149716A1 (en) * | 2002-02-06 | 2003-08-07 | International Business Machines Corporation | Thread dispatch mechanism and method for multiprocessor computer systems |
CN1119749C (zh) * | 1997-09-08 | 2003-08-27 | 德国汤姆逊-布朗特公司 | 高速缓存使能架构 |
CN1834950A (zh) * | 2005-03-15 | 2006-09-20 | 英特尔公司 | 具有活动和非活动执行核心的多核处理器 |
CN1906587A (zh) * | 2004-03-16 | 2007-01-31 | 索尼计算机娱乐公司 | 降低多处理器系统中的功耗的方法和装置 |
CN101166099A (zh) * | 2007-09-21 | 2008-04-23 | 杭州华三通信技术有限公司 | 分布式多核网络设备和线卡板 |
CN101231600A (zh) * | 2008-02-25 | 2008-07-30 | 浪潮电子信息产业股份有限公司 | 通用的高效率的计算机进程间通讯机制 |
Family Cites Families (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6990598B2 (en) | 2001-03-21 | 2006-01-24 | Gallitzin Allegheny Llc | Low power reconfigurable systems and methods |
US6993669B2 (en) | 2001-04-18 | 2006-01-31 | Gallitzin Allegheny Llc | Low power clocking systems and methods |
US7191349B2 (en) * | 2002-12-26 | 2007-03-13 | Intel Corporation | Mechanism for processor power state aware distribution of lowest priority interrupt |
US8020163B2 (en) * | 2003-06-02 | 2011-09-13 | Interuniversitair Microelektronica Centrum (Imec) | Heterogeneous multiprocessor network on chip devices, methods and operating systems for control thereof |
US7451333B2 (en) | 2004-09-03 | 2008-11-11 | Intel Corporation | Coordinating idle state transitions in multi-core processors |
EP1677175B1 (en) | 2004-12-31 | 2013-08-28 | ST-Ericsson SA | Dynamic power management in system on chips (SOC) |
US7733891B2 (en) * | 2005-09-12 | 2010-06-08 | Zeugma Systems Inc. | Methods and apparatus to support dynamic allocation of traffic management resources in a network element |
US7461275B2 (en) | 2005-09-30 | 2008-12-02 | Intel Corporation | Dynamic core swapping |
GB0519981D0 (en) | 2005-09-30 | 2005-11-09 | Ignios Ltd | Scheduling in a multicore architecture |
US8601103B2 (en) * | 2006-06-15 | 2013-12-03 | Intel Corporation | Method, apparatus and system for distributing and enforcing authenticated network connection policy |
JP2008084009A (ja) * | 2006-09-27 | 2008-04-10 | Toshiba Corp | マルチプロセッサシステム |
US20090228693A1 (en) * | 2007-05-22 | 2009-09-10 | Koenck Steven E | System and method for large microcoded programs |
CN101339523B (zh) | 2007-07-05 | 2011-09-21 | 国际商业机器公司 | 多处理器环境中的流水线处理方法和设备 |
TWI386814B (zh) * | 2007-12-31 | 2013-02-21 | Ind Tech Res Inst | 具動態工作管理能力之多處理器界面及其程式載卸方法 |
US20090288092A1 (en) * | 2008-05-15 | 2009-11-19 | Hiroaki Yamaoka | Systems and Methods for Improving the Reliability of a Multi-Core Processor |
CN101403982B (zh) * | 2008-11-03 | 2011-07-20 | 华为技术有限公司 | 一种多核处理器的任务分配方法和系统 |
-
2008
- 2008-11-03 CN CN2008102256483A patent/CN101403982B/zh active Active
-
2009
- 2009-05-05 WO PCT/CN2009/071648 patent/WO2010060289A1/zh active Application Filing
-
2011
- 2011-05-03 US US13/099,960 patent/US8763002B2/en active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1119749C (zh) * | 1997-09-08 | 2003-08-27 | 德国汤姆逊-布朗特公司 | 高速缓存使能架构 |
US20030149716A1 (en) * | 2002-02-06 | 2003-08-07 | International Business Machines Corporation | Thread dispatch mechanism and method for multiprocessor computer systems |
CN1906587A (zh) * | 2004-03-16 | 2007-01-31 | 索尼计算机娱乐公司 | 降低多处理器系统中的功耗的方法和装置 |
CN1834950A (zh) * | 2005-03-15 | 2006-09-20 | 英特尔公司 | 具有活动和非活动执行核心的多核处理器 |
CN101166099A (zh) * | 2007-09-21 | 2008-04-23 | 杭州华三通信技术有限公司 | 分布式多核网络设备和线卡板 |
CN101231600A (zh) * | 2008-02-25 | 2008-07-30 | 浪潮电子信息产业股份有限公司 | 通用的高效率的计算机进程间通讯机制 |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8763002B2 (en) | 2008-11-03 | 2014-06-24 | Huawei Technologies Co., Ltd. | Method, system, and apparatus for task allocation of multi-core processor |
CN101916209A (zh) * | 2010-08-06 | 2010-12-15 | 华东交通大学 | 一种多核处理器集群任务资源分配方法 |
CN101916209B (zh) * | 2010-08-06 | 2012-11-21 | 华东交通大学 | 一种多核处理器集群任务资源分配方法 |
Also Published As
Publication number | Publication date |
---|---|
WO2010060289A1 (zh) | 2010-06-03 |
CN101403982A (zh) | 2009-04-08 |
US8763002B2 (en) | 2014-06-24 |
US20110219382A1 (en) | 2011-09-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101403982B (zh) | 一种多核处理器的任务分配方法和系统 | |
US8473647B2 (en) | Methods and apparatus for decreasing power consumption and bus activity | |
US10819638B2 (en) | Reducing network latency during low power operation | |
RU2465631C2 (ru) | Способ, система и устройство для определения активности ядра процессора и кэширующий агент | |
US8478932B2 (en) | Power efficient memory management for embedded systems | |
US8112646B2 (en) | Buffering techniques for power management | |
US20130003559A1 (en) | Adaptive Power Savings for Aggregated Resources | |
US8626955B2 (en) | Directing packets to a processor unit | |
Poellabauer et al. | Energy-aware traffic shaping for wireless real-time applications | |
CN101202707A (zh) | 高速单板传输报文的方法、现场可编程门阵列及高速单板 | |
CN111200541B (zh) | 网络数据处理方法和装置 | |
US10324513B2 (en) | Control of peripheral device data exchange based on CPU power state | |
US20110158254A1 (en) | Dual scheduling of work from multiple sources to multiple sinks using source and sink attributes to achieve fairness and processing efficiency | |
CN104572498B (zh) | 报文的缓存管理方法和装置 | |
CN101964735A (zh) | 以太网方法和以太网设备中使用的方法 | |
CN101799772A (zh) | 内核调度方法、内核备份方法和多核处理器 | |
JP2004165791A (ja) | 複数の無線端末と通信可能な無線基地局用の装置、無線基地局と通信する無線端末、そのためのプログラムおよび方法 | |
US10038652B2 (en) | Self tuning buffer allocation in a shared-memory switch | |
CN101754389A (zh) | 资源控制方法、装置和系统 | |
CN101441508A (zh) | 一种设备工作模式的控制方法、设备和系统 | |
CN110650546B (zh) | 文件传输的方法、装置、存储介质以及终端 | |
US20090172440A1 (en) | Coupled low power state entry and exit for links and memory | |
US9710052B2 (en) | Dynamic energy savings for digital signal processor modules using plural energy savings states | |
US8578194B2 (en) | Green mode data buffer control | |
US8214665B2 (en) | Method and system for transmit queue management for energy efficient networking |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant |