调度器、多核处理器系统以及调度方法

文档序号:6352390阅读:123来源:国知局
专利名称:调度器、多核处理器系统以及调度方法
技术领域
本发明涉及通过由多个核进行的并行处理来进行多任务处理时的调度器、多核处理器系统以及调度方法。
背景技术
自以往,作为储存处理器执行处理时所利用的数据的存储器区域,就采用了高速缓冲存储器、主存储器、文件系统这样的分级存储器构成。对于分级存储器构成而言,为了提高访问数据的访问速度,期待系统的高速化。在分级存储器构成的情况下,与其他的存储器相比高速地进行动作的高速缓冲存储器的存储器容量是有限的,所以使用LRU (LeastRecently Used :最近最少使用算法)等算法对储存在高速缓冲存储器中的数据进行切换(例如,参照下述专利文献I。)。另外,近几年,具备多个处理器的多核处理器系统被广泛采用。多核处理器系统通过各处理器并行执行任务,所以能够大幅提高处理性能(例如,参照下述专利文献I。)。另一方面,在多核处理器系统并行执行任务的情况下,在改写各处理器的高速缓冲存储器上的数据时,需要进行使其他处理器的高速缓冲存储器上的数据同步的处理。作为数据的同步方法,具体而言,可举出用于获取处理器间的高速缓冲存储器一致性的机构、即监听高速缓冲存储器机构。监听高速缓冲存储器机构在改写高速缓冲存储器上的、某个处理器与其他处理器共享的数据时进行动作。高速缓冲存储器上的数据的改写由搭载在其他的处理器的高速缓冲存储器上的监听控制器检测。而且,监听控制器经由高速缓冲存储器间的总线,将改写后的新值反映给其他的处理器的高速缓冲存储器(例如,参照下述专利文献2。)。另外,在嵌入式系统中也要求多个应用程序并行执行,提供了一种用于能实现并行执行的技术。具体而言,公开有利用分时等切换在一个处理器上执行的任务的多任务处理、在多个处理器上执行多个任务的分散处理、组合这些处理之后的处理(例如,参照下述专利文献3。)。专利文献1:日本特开平6 - 175923号公报专利文献2 日本特开平10 - 240698号公报专利文献3 :日本特开平11 - 212869号公报但是,在多核处理器系统的情况下,有时由多个处理器执行并行任务时所需要的高速缓冲存储器间的同步处理、由于执行多任务处理而产生的频繁的高速缓冲存储器的改写会成为性能降低的原因。图20是表示多核并行处理中的监听的动作例的说明图。在多核处理器系统2000的情况下,在多核(例如,如图20的CPU # OXPU # I)中,进行各CPU同时执行处理的并行处理。而且在并行处理中,特别是在各CPU上同时执行使用共同数据的任务的情况下,若改写了一方高速缓冲存储器(例如,高速缓冲存储器LI $ O和高速缓冲存储器LI $1中的任意一方)上的数据,则由监听120进行同步处理。具体而言,若通过CPU# O改写了配置在高速缓冲存储器LI $ O上的数据中的变量a的值,则监听120经由总线改写高速缓冲存储器LI $1的变量a的数据。若监听120对数据的改写频繁地产生,则连接高速缓冲存储器LI $0与高速缓冲存储器LI $ I的总线产生混乱,结果会引起性能恶化。进一步来说,由于频繁改写处理的产生,总线事务(Bus transaction)增加。并且,频繁改写处理的产生占用监听120的总线。在这样的状态下,在产生了具有实时制约的其他进程的执行请求的情况下,会阻碍具有实时制约的其他进程访问高速缓冲存储器,所以有可能造成严重的性能问题。图21是表示多任务处理中的高速缓冲存储器改写例的说明图。在多核处理器系统2000进行多任务处理的情况下,根据任务的执行状况来进行切换成为执行对象的任务的任务切换。例如,在图21中,多核处理器系统2000将任务# O 任务# 2设为对象并进行多任务处理。而且,如图21的左侧,假设在由CPU # O执行任务# O、由CPU # I执行任务# 2的状态下,产生了任务切换。如图21的右侧那样,由于产生任务切换,由CPU # O执行的任务从任务# O切换到任务# I。若切换成为执行对象的任务,则配置在高速缓冲存储器LI$0上的数据的内容也从任务# O所利用的数据改写为任务# I所利用的数据。在改写了配置在高速缓冲存储器LI $0的数据后,返回到在改写以前执行过的处理的执行的情况下,CPU # O需要再次从存储器140读出任务# O所利用的数据。即使由于产生任务切换从而改写了配置在成为对象的高速缓冲存储器上的数据,之后CPU不利用被配置在高速缓冲存储器上的数据的情况也较多。这样存在如下的问题,即没有再利用性的数据的改写处理对于利用高速缓冲存储器的CPU来说成为性能恶化的原因。

发明内容
本公开技术为了消除上述的现有技术的问题点,其目的在于提供一种即使在执行并行处理以及多任务处理的情况下,也能够提高高速缓冲存储器的利用效率并提高多核处理器系统的处理能力的调度器、多核处理器系统以及调度方法。为了解决上述的课题并实现目的,在本公开技术中,判断分配至多核处理器的各处理器并执行的处理组中被分配至上述各处理器的执行对象处理的优先级是否为阈值以上,将上述执行对象处理中被判断为是上述阈值以上的优先级的高优先级的执行对象处理在执行时所访问的数据,配置到执行上述高优先级的执行对象处理的各处理器的高速缓冲存储器,将上述执行对象处理中被判断为不是上述阈值以上的优先级的低优先级的执行对象处理在执行时所访问的数据,配置到比上述各处理器的高速缓冲存储器访问速度慢的其他存储器区域,在上述多核处理器中的一处理器中产生了访问在上述其他存储器区域配置的数据的访问请求的情况下,将配置在上述其他存储器区域的数据配置到上述一处理器的高速缓冲存储器。根据本调度器、多核处理器系统以及调度方法,起到即使在执行并行处理以及多任务处理的情况下,也能够提高高速缓冲存储器的利用效率并提高多核处理器系统的处理能力的效果。


图1是表示本实施方式所涉及的调度处理的一个例子的说明图。图2是表示分级存储器构成的一个例子的说明图。图3是表示多任务处理的一个例子的说明图。图4是表示通常的高速缓冲存储器一致性处理的顺序(其I)的说明图。图5是表示通常的高速缓冲存储器一致性处理的顺序(其2)的说明图。图6是表示通常的高速缓冲存储器一致性处理的顺序(其3)的说明图。图7是表示通常的高速缓冲存储器一致性处理的顺序(其4)的说明图。图8是表示低优先级并行任务中的高速缓冲存储器一致性处理的顺序的说明图。图9是表示调度器的功能性构成的框图。图10是表示共享数据的配置处理的顺序的流程图。图11是表示任务表创建处理的顺序的流程图。图12是表示任务表的数据构造例的数据表。图13是表不任务表的设定例的数据表。图14是表不任务执行处理的顺序(其I)的流程图。图15是表不任务执行处理的顺序(其2)的流程图。图16是表不任务执行处理的顺序(其3)的流程图。图17是表不任务执行处理的顺序(其4)的流程图。图18是表示同一优先级的并行任务的执行例的说明图。图19是表示优先级不同的并行任务的执行例的说明图。图20是表示多核的并行处理中的监听的动作例的说明图。图21是表示多任务处理中的高速缓冲存储器改写例的说明图。
具体实施例方式以下参照附图,对本发明所涉及的调度器、多核处理器系统以及调度方法的优选实施方式进行详细说明。图1是表示本实施方式所涉及的调度处理的一个例子的说明图。在本实施方式中,利用多核处理器系统100所具备的多个处理器,能够并行执行多个处理。因此,在多核处理器系统100中,能够从应用程序中提取能够并行执行的处理组(例如,并行任务),从而进行闻效的并行处理。另外,在本实施方式中,通过将成为执行对象的处理中与执行顺序相关的优先级设定为高优先级和低优先级,从而能够挑选再利用性较高的数据配置给高速缓冲存储器。优先级基于在执行处理时对暂时储存在高速缓冲存储器中的数据访问的频率、期限时间而被设定。各任务的优先级的设定内容存储在任务表111。此外,图1以下,将表示高优先级的任务的模块显示得比表示低优先级的任务的模块大。因此,多核处理器系统100的调度器110参照并行执行的处理中设定的优先级,分别将执行各处理时所访问的数据(以下,称为“共享数据”)配置到最佳的存储器区域。另外,调度器110在多个高速缓冲存储器中配置有同一共享数据的情况下,作为使共享数据同步的高速缓冲存储器一致性的处理,根据优先级选择使用哪一种方法。具体而言,如左侧的多核处理器系统100那样,在通过各CPU同时执行被设定为同一优先级的能够并行执行的处理的情况下,调度器110从访问速度快的存储器区域开始优先配置高优先级的处理的共享数据。例如,设定为高优先级的能够并行的任务# 0、1以及任务# 3、4的共享数据从高速缓冲存储器LI $开始按照顺序配置到访问速度快的存储器区域。而且,对于被设定为低优先级的任务# 2以及任务# 5的共享数据,在配置完高优先级的处理的共享数据之后,配置到剩余的存储器。另一方面,如右侧的多核处理器系统100那样,也在通过各CPU同时执行优先级不同的能够并行执行的处理的情况下,调度器110与左侧的多核处理器系统100同样地将设定为高优先级的处理的共享数据配置给高速缓冲存储器LI $。之后,调度器110向剩余的存储器配置设定为低优先级的任务# 2以及任务# 3的共享数据。另外,在左侧的多核处理器系统100的情况下,调度器110在通常的高速缓冲存储器被写入新值的定时进行高速缓冲存储器一致性处理。另一方面,在右侧的多核处理器系统100的情况下,调度器110在某个高速缓冲存储器(例如,高速缓冲存储器LI $0)被写入新值后,在从CPU产生了向未反映新值写入的高速缓冲存储器(高速缓冲存储器LI $ I)的读入的定时进行高速缓冲存储器一致性处理。这样,本实施方式所涉及的多核处理器系统100,将利用频率较高的共享数据优先配置到访问速度快的高速缓冲存储器中,所以能够提高处理速度。另外,被设定为低优先级的处理的共享数据延期进行高速缓冲存储器一致性的同步处理,直到产生来自CPU的访问请求。因此,能够避免将没有再利用性的共享数据写入高速缓冲存储器等成为处理性能降低的原因的动作。以下,对本实施方式所涉及的多核处理器系统100的详细构成和处理顺序进行说明。(分级存储器构成)图2是表示分级存储器构成的一个例子的说明图。如图2所示,本实施方式所涉及的多核处理器系统100具备多种存储器区域。由于来自各个处理器的访问速度、存储器容量不同,所以各存储器区域储存与各个用途对应的数据。如图2那样,在多核处理器系统100的各处理器(CPU # OXPU # I)中,准备有高速缓冲存储器LI $ (搭载在各处理器上的高速缓冲存储器)、高速缓冲存储器L2 $ (搭载在监听120上的高速缓冲存储器)、存储器140以及文件系统150这4种存储器区域。越是与各处理器连接关系近的上位的存储器区域,访问速度越快,存储器容量越小。相反,越是与各处理器的连接关系远的下位的存储器区域,访问速度越慢,存储器容量越大。因此,在多核处理器系统100中,如在图1中说明的那样,将想要优先处理的任务所利用的共享数据、利用频率较高的共享数据配置到上位的存储器。(多任务处理)图3是表示多任务处理的一个例子的说明图。本实施方式所涉及的多核处理器系统100中的多任务处理是指由多个处理器并行执行多个任务的处理。例如,在图3中,作为成为多核处理器系统100的执行对象的任务,准备有任务
#O 任务# 5。而且,根据调度器110的控制,CPU # O和CPU# I分别执行被调遣(dispatch)来的任务。调度器110利用时间切片(time-slicing)等将多个任务中成为执行对象的任务适当地进行切换并且并行执行各任务。(高速缓冲存储器一致性处理)
接下来,对由本实施方式所涉及的多核处理器系统100的监听120执行的高速缓冲存储器一致性处理的顺序进行说明。如在图1中说明的那样,监听120根据来自调度器110的指示,来设定通常的高速缓冲存储器一致性处理、和低优先级并行任务中的高速缓冲存储器一致性处理中的任意一项的相干性方式。<通常的高速缓冲存储器一致性处理(写入(write)时更新)>图4 7是表示通常的高速缓冲存储器一致性处理的顺序的说明图。在图4所示的多核处理器系统100中,基于执行对象的任务的记述400,在执行并行任务的CPU # O以及CPU # I的高速缓冲存储器(高速缓冲存储器LI $0以及高速缓冲存储器LI $ I)中储存最新数据。之后,如图5所不,假设多核处理器系统100的一个CPU改写记述400的变量a的内容。例如在图5中,通过CPU # O来改写高速缓冲存储器LI $ O的变量a的值。因此,储存有同一数据的高速缓冲存储器LI $1的变量a变为旧数据,即使是同一变量a也为不同值。因此,在通常的高速缓冲存储器一致性处理的情况下,首先如图6所示,基于记述400,清除储存有旧数据的高速缓冲存储器LI $ I的变量a的值。之后,如图7所示,经由监听120的总线,将高速缓冲存储器LI $ O的变量a的值储存为高速缓冲存储器LI $ I的变量a的值。如以上说明,在通常的高速缓冲存储器一致性处理的情况下,通过实施图4 7所例示的处理,来保持高速缓冲存储器LI $ O与高速缓冲存储器LI $1的一贯性。<低优先级并行任务中的高速缓冲存储器一致性处理(读取(read)时更新)>图8是表示低优先级并行任务中的高速缓冲存储器一致性处理的顺序的说明图。图8表示由多核处理器系统100执行被设定为低优先级的并行任务的情况的一致性处理的顺序。首先,在多核处理器系统100中,CPU # O和CPU # I执行并行任务,在高速缓冲存储器LI $0和高速缓冲存储器LI $1中配置同一数据(步骤S801)。之后,若多核处理器系统100的CPU# O改写变量a的内容(步骤S802),则清除高速缓冲存储器LI $1的变量a(步骤S803)。这样,在低优先级并行任务中的高速缓冲存储器一致性处理的情况下,也检测储存在高速缓冲存储器中的变量a的改写,并进行与通常的高速缓冲存储器一致性处理相同的顺序,直到清除旧数据为止。之后,在通过多核处理器系统100的CPU # I执行访问变量a的处理的情况下,监听120经由总线,将高速缓冲存储器LI $ O中储存的最新的变量a的值储存到高速缓冲存储器LI $ I中(步骤S804)。如以上说明,对于低优先级并行任务中的高速缓冲存储器一致性处理而言,在通过CPU # I产生了访问未反映最新的改写内容的高速缓冲存储器LI $ I的变量a的访问请求时,控制监听120,获取相关性。因此,能够避免像通常的高速缓冲存储器一致性处理那样的冗长的总线事务。如上所述,在通常的高速缓冲存储器一致性处理中,在变量a被更新了的定时开始动作。与此相对,在低优先级并行任务中的高速缓冲存储器一致性处理中,只有在通过CPU # O更新了高速缓冲存储器LI $ O的变量a之后,由CPU # I产生对变量a的读入请求,才开始动作。具体而言,监听120读入配置有最新的变量a的高速缓冲存储器LI $0的变量a的值,将读入的值配置为高速缓冲存储器LI $ I的变量a。另外,在图8所例示的步骤S804中,在高速缓冲存储器LI $ O上配置有成为CPU
#O的访问对象的数据,但根据由高速缓冲存储器LI $0执行的任务的不同,储存在其他的存储器区域的数据有时也会成为访问对象。例如,也假定如下情况,CPU# O访问配置在高速缓冲存储器L2 $、存储器140、文件系统150的数据。在那样的情况下,监听120能够从各数据区域读出成为对象的数据并配置到高速缓冲存储器LI $。以下,对图1所示的本实施方式所涉及的实现调度处理的多核处理器系统100的调度器110的功能性构成和动作内容进行说明。(调度器的功能性构成) 图9是表示调度器的功能性构成的框图。在图9中,多核901具备η个CPU(CentralProcessing Unit:中央处理器),管理多核处理器系统100的整体控制。多核901是指搭载有多个核的处理器或者处理器组。只要是搭载多个核即可,可以是搭载了多个核的单一处理器,也可以是串联了单核处理器后的处理器组。此外,在本实施方式中,为了使说明简化,举出以串联了单核处理器的处理器组为例进行说明。而且,调度器110包含判断部1001、第I配置部1002、第2配置部1003、第3配置部1004、确定部1005、提取部1006、以及分配部1007而构成。判断部1001 分配部1007具体而言,例如通过多核901中的特定CPU执行存储在多核处理器系统100的其他的存储器1008 (搭载于CPU的高速缓冲存储器以外的存储器)的程序,来实现其功能。判断部1001具有如下功能,在多核处理器系统100中,判断在成为执行对象的处理(以下,称为“执行对象处理”)中设定的优先级是否为阈值以上。具体而言,判断部1001判断分配至多核处理器系统100的各处理器(CPU # O CPU # η)并执行的处理组中分配到各处理器的执行对象处理的优先级是否为阈值以上。判断部1001的判断结果被暂时存储在其他的存储器1008等存储区域。优先级基于通过执行对象处理的模拟而得到的动作结果而被设定。例如,对各执行对象处理的截止期限(deadline)进行比较,可以以距离截止期限的时间越短的执行对象处理优先级就越高的方式进行设定。若本实施方式所涉及的调度器110将被设定为高优先级的执行对象处理的共享数据,暂时配置到访问速度快的存储器(高速缓冲存储器LI $、高速缓冲存储器L2 $),则保持锁定状态直到结束处理。因此,被设定为高优先级的执行对象处理比其他的执行对象处理优先执行。另外,其他的也可以参照动作结果,以配置在高速缓冲存储器的共享数据的更新次数越多的执行对象处理优先级就越高的方式进行设定。本实施方式所涉及的调度器110将再利用性较高的共享数据优先配置到各处理器的高速缓冲存储器(高速缓冲存储器LI$ )中,所以能够将高速缓冲存储器的利用效率维持在较高的值。另外,在判断部1001中成为判断基准的阈值可以进行调整。而且,判断部1001对于各执行对象处理,若设定的优先级是阈值以上,则设为高优先级的执行对象处理,若设定的优先级小于阈值,则设为低优先级的执行对象处理。因此,能够根据成为执行对象的应用程序设定最佳的值。另外,作为执行对象处理的单位,能够选择任务、进程、线程等任意单位。在本实施方式中,作为一个例子,将任务作为执行对象处理的单位来进行说明。
第I配置部1002具有根据判断部1001的判断结果,向搭载在各CPU上的高速缓冲存储器配置数据的功能。具体而言,第I配置部1002将由判断部1001在执行对象处理中判断为是阈值以上的优先级的高优先级的执行对象处理执行时所访问的共享数据,配置到成为对象的CPU的高速缓冲存储器。例如,作为高优先级的执行对象处理的任务A,在被多核901中的CPU # I执行的情况下,任务A执行时所访问的共享数据被第I配置部1002配置到高速缓冲存储器I。同样,作为高优先级的执行对象处理的任务B被多核901中的CPU # O执行的情况下,任务B执行时所访问的共享数据被第I配置部1002配置到高速缓冲存储器O。另外,根据应用程序1000的不同,执行对象处理中有时会由判断部1001判断为不存在高优先级的执行对象处理。在这样的情况下,若将高速缓冲存储器放置于空状态下,则高速缓冲存储器的利用效率降低。因此,即使是高优先级的执行对象处理以外的处理(例如,后述的低优先级的执行对象处理),第I配置部1002也向搭载在各CPU上的高速缓冲存储器配置共享数据。之后,在实现了高优先级的执行对象处理的情况下,第I配置部1002优先将高优先级的处理的共享数据配置到成为对象的CPU的高速缓冲存储器。另外,如上所述,在第I配置部1002将高优先级的执行对象处理的共享数据配置到成为对象的处理器的高速缓冲存储器时,也能够将共享数据的覆写设为禁止(锁定状态),直到高优先级的执行对象处理的执行结束为止。因此,第I配置部1002能够防止没有再利用性的数据覆写高优先级的执行对象处理的共享数据。第2配置部1003具有根据判断部1001的判断结果,向比各处理器的高速缓冲存储器访问速度慢的其他的存储器1008配置数据的功能。具体而言,第2配置部1003将由判断部1001判断为不是阈值以上的优先级的低优先级的执行对象处理在执行时所访问的共享数据配置到其他的存储器1008。此外,如图2中说明的那样,高速缓冲存储器以外的其他的存储器1008按照访问速度、和存储器容量分级准备有多种存储器。因此,第2配置部1003按照访问速度从高到低的存储器的顺序,依次储存可配置容量对应的量的数据。例如,在图9的情况下,按照高速缓冲存储器L2 $—存储器140—文件系统150这一顺序配置数据。另外,数据也根据预先的模拟确定出的更新频率较高的数据被优先配置到访问速度快的存储器。第3配置部1004具有将从多核901具有访问请求的共享数据,配置到搭载在请求源CPU上的高速缓冲存储器的功能。具体而言,第3配置部1004在多核901中的任意CPU(例如,CPU # I)中产生了访问在存储器1008配置的共享数据的访问请求的情况下,将在存储器1008配置的共享数据配置到CPU # I的高速缓冲存储器I。确定部1005具有如下功能若通过判断部1001进行执行对象处理的优先级是否为阈值以上的判断,则确定出多核901的各CPU的高速缓冲存储器中的可改写区域的容量。所谓的可改写区域,即是指能够覆写的区域。因此,配置有执行结束的处理的共享数据的区域、配置有低优先级的处理的共享数据的区域由于可以覆写,所以被确定为可改写区域。确定部1005的确定结果被暂时存储在其他的存储器1008等存储区域。另外,第I配置部1002也能够根据由确定部1005确定出的可改写区域的容量,来调整配置处理。例如,在可改写区域的容量比高优先级的执行对象处理在执行时所访问的共享数据的容量小的情况下,第I配置部1002无法将共享数据全部配置到高速缓冲存储器。因此,第I配置部1002按照在共享数据中更新频率从高到低的数据的顺序配置在高速缓冲存储器可配置的容量。而且,第2配置部1003将在高速缓冲存储器无法配置的共享数据配置到其他的存储器1008区域。另外相反,也存在可改写区域的容量比高优先级的执行对象处理在执行时所访问的共享数据的容量大的可能性。在这样的情况下,第I配置部1002首先按照通常那样,将高优先级的执行对象处理在执行时所访问的共享数据配置到高速缓冲存储器。之后,第I配置部1002按照低优先级的执行对象处理在执行时所访问的共享数据中更新频率从高到低的数据的顺序配置高速缓冲存储器中的空容量。提取部1006具有在应用程序1000所包含的执行对象处理中,提取满足特定条件的处理的功能。具体而言,提取部1006在执行对象处理中,提取执行时所访问的数据共同的处理(例如并行任务)。执行时所访问的数据是否共同,参照在各执行对象处理中设定的共享数据的标识符(例如,在后述的图13中说明的共享数据ID)。提取部1006的提取结果被暂时存储在存储器1008等存储区域。分配部1007具有将执行对象处理分配到多核901的各CPU的功能。若没有来自调度器110的指示,则分配部1007基于预先设定的依存关系以及执行顺序、和当前各CPU的处理负荷,将各执行对象处理分配给最佳的CPU。另外,分配部1007在存在由提取部1006提取出的处理的情况下,将作为共享数据共同的处理彼此而提取出的各处理分配给多核901中的相同的CPU。并且,分配部1007也能够将由提取部1006提取出的处理中被设定为同一优先级的处理,分配给多核901中的同一 CPU (例如,CPU # I 等)。以下,作为执行对象处理的一个例子,对多核处理器系统100通过各CPU并行执行构成应用程序100的并行任务的情况进行说明。(共享数据的配置处理)图10是表示共享数据的配置处理的顺序的流程图。图10的流程图表示决定将共享数据配置到哪一个高速缓冲存储器(高速缓冲存储器LI $、高速缓冲存储器L2 $ )的顺序。通过执行图10的各处理,能够将执行各任务时所利用的共享数据配置到与高速缓冲存储器一致性处理的内容对应的适当的高速缓冲存储器中。在图10中,依次向调度器110输入成为执行对象的任务。因此,调度器110首先判断成为执行对象的任务是否为高优先级任务(步骤S1001 )。在步骤S1001中,在判断出成为执行对象的任务是高优先级任务的情况(步骤S1001 是”)下,调度器110判断成为执行对象的任务的全部共享数据尺寸是否比高速缓冲存储器LI $尺寸小(步骤S1002)。在步骤S1002中,在判断为全部共享数据尺寸比高速缓冲存储器LI $尺寸小的情况(步骤S1002:“是”)下,调度器110将全部共享数据配置到LI $ (步骤S1003),并结束一系列的处理。即、调度器110通过步骤S1003,若成为执行对象的任务是高优先级任务,并且执行对象的任务的全部共享数据能够储存在CPU的高速缓冲存储器,则将全部共享数据配置到访问速度快的高速缓冲存储器LI $。在步骤S1002中,在判断为全部共享数据尺寸不比高速缓冲存储器LI $尺寸小的情况(步骤S1002 否”)下,调度器110无法将全部共享数据配置给高速缓冲存储器LI $。因此,调度器110按照在执行对象的任务的共享数据中更新频率从高到低的顺序配置给高速缓冲存储器LI $、L2 $(步骤S1004)。即、调度器110通过步骤S1004,从共享数据中更新频率从高到低的数据按照顺序在高速缓冲存储器LI $配置,若高速缓冲存储器LI $的容量没有了,则接着从剩余的共享数据中更新频率从高到低的数据按照顺序在高速缓冲存储器L2 $中配置。以上说明的步骤S1002 S1004的处理表示配置高优先级任务的共享数据的情况的顺序。另一方面,高优先级任务以外的任务(低优先级的任务)的共享数据,将成为更新频率大的数据作为对象,配置给高速缓冲存储器LI $的空区域。在步骤S1001中,在判断为成为执行对象的任务不是高优先级任务的情况(步骤S1001 否”)下,调度器110将共享数据中更新频率高的数据作为对象进行配置处理。首先,调度器110判断执行对象的任务的共享数据中,更新频率大的全部共享数据尺寸是否比未锁定的高速缓冲存储器LI $尺寸小(步骤S1005)。未锁定的高速缓冲存储器LI $尺寸是指在高速缓冲存储器LI $的整个区域中,已经配置有其他的执行对象的任务的共享数据的锁定区域以外的区域的容量。在步骤S1005中,在判断为更新频率大的全部共享数据尺寸比未锁定的高速缓冲存储器LI $尺寸小的情况(步骤S1005 是”)下,调度器110判断为能够将更新频率大的全部共享数据配置到高速缓冲存储器LI $。因此,调度器110将更新频率大的共享数据配置到高速缓冲存储器LI $ (步骤S1006),而结束一系列的处理。另一方面,在判断为更新频率大的全部共享数据尺寸不比未锁定的高速缓冲存储器LI $尺寸小的情况(步骤S1005 否”)下,调度器110无法将更新频率大的全部共享数据配置到高速缓冲存储器LI $。因此,调度器110将执行对象的任务的共享数据中更新频率高的数据按照顺序配置在高速缓冲存储器LI $、L2 $中(步骤S1007)。S卩、与步骤S1004相同,调度器110从共享数据中更新频率从高到低的数据按照顺序配置在高速缓冲存储器LI $中。而且,若高速缓冲存储器LI $的容量没有了,则调度器110接着从剩余的共享数据中更新频率高的数据按照顺序配置在高速缓冲存储器L2 $中。如以上说明的那样,在低优先级任务的共享数据的情况下,调度器110能够高效地将低优先级任务的共享数据配置到没有配置高优先级任务的共享数据的存储器区域。即使配置到访问速度快的存储器区域(例如,高速缓冲存储器LI $ ),也和配置高优先级任务的共享数据的情况不同,由于未锁定低优先级任务的共享数据,所以能够防止妨碍高优先级任务的处理的情况。(任务表创建处理)图11是表示任务表创建处理的顺序的流程图。图11的流程图表示进行构成由多核处理器系统100执行的应用程序的任务的模拟,基于模拟结果,创建表示任务的优先级的任务表111的顺序。通过执行图11的各处理,能够创建为了调度器110适当地配置各任务的共享数据所需要的任务表111。在图11中,调度器110首先进行执行对象的各任务中的各数据尺寸的解析(步骤SllOD0接着,调度器110进行各任务的截止期限解析(步骤S1102)。进一步,调度器110进行任务间的数据依存解析(步骤S1103)。通过以上说明的步骤SllOl S1103,调度器110能够获取用于确定出各任务的构成所需要的数据。通过步骤SllOl S1103获取的数据储存在任务表111中,利用于后述的用于设定优先级的模拟中。接着,调度器110判断在各任务之中是否存在未模拟的并行任务(步骤S1104)。在步骤S1104中,在判断为存在未模拟的并行任务的情况(步骤S1104 是”)下,调度器110执行未模拟的并行任务的任意I组的并行任务的模拟(步骤S1105)。之后,调度器110测定存在依存解析的数据的更新频率(步骤S1106),并判断存在依存关系的数据的更新频率是否比阈值大(步骤S1107)。步骤S1107是用于判断是否需要优先级的设定的处理。在步骤S1107中,在存在依存关系的数据的更新频率比阈值大的情况(步骤S1107 是”)下,调度器110以储存在任务表111中的截止期限为基础设定优先级(步骤S1108)。另一方面,在存在依存关系的数据的更新频率不比阈值大的情况(步骤S1107:“否”)下,即使暂时储存到高速缓冲存储器中更新频率也较低,所以调度器110不决定优先级,而移至步骤SI 109的处理。接下来,调度器110将处理中的并行任务设定为模拟结束任务(步骤S1109),并返回到步骤S1104的处理,判断是否存在未模拟的并行任务。在步骤S1104中,只要判断为存在未模拟的并行任务,调度器110就通过步骤S1105 S1109的处理反复进行模拟,来设定并行任务的优先级。在步骤S1104中,若判断为不存在未模拟的并行任务(步骤S1104 否”),调度器110结束全部的并行任务的模拟,所以结束一系列的处理。如以上说明的那样,调度器110通过执行图11的各处理,能够创建任务表111。此夕卜,上述的任务表创建处理,调度器110为执行主体,但也可以是其他的编译器、模拟器为执行主体而预先执行。 例如,步骤SllOl S1103进行的解析能够利用一般的编译器执行。另外,在利用了步骤SllOl S1103的解析结果的步骤S1105中的模拟,也能够利用估计在执行各任务的情况下的执行时间、更新次数的公知的模拟器来执行(例如,参照日本特开2000 -276381。)。图12是表示任务表的数据构造例的数据表。另外,图13是表示任务表的设定例的数据表。图12的数据表1200表示通过在图11中说明的任务表创建处理而创建的任务表111的数据构造例。如图12的数据表1200,任务表111由表不任务信息的下述的信息组的字段、和表示共享数据信息的下述的信息组的字段构成。此外,在任务表111中,任务名、任务ID、截止期限等值空白的字段根据每个任务输入不同的值。另外,优先级、相关性模式等值为〇/ X那样的二值的字段,可输入二值中的任意值。<任务信息> 任务名:(任务的名称).任务ID:(任务的标识符) 截止期限:(步骤S1102的解析结果) 优先级:高/低(步骤SI 108的设定内容).相关性模式:写入(Write)时更新/读取(read)时更新.对其他的CPU的复刻(fork ):允许/不允许
<共享数据信息>.共享数据名:(数据的名称) 共享数据ID:(数据的ID).更新次数:(步骤SI 106的测定结果).配置的高速缓冲存储器等级:L1 (高速缓冲存储器LI $ ) / L2 (高速缓冲存储器 L2 $ )
.数据尺寸:(步骤SllOl的解析结果)在上述的任务信息中,相关性模式、对其他的CPU的复刻以及配置的高速缓冲存储器等级在任务执行时确定。具体而言,相关性模式、对其他的CPU的复刻通过后述的利用图14 17进行说明的任务执行处理而被确定。另外,配置的高速缓冲存储器等级通过利用上述的图10说明的共享数据的配置处理而被确定。此外,图13中例示有设定了任务表111的具体数值的数据表1200。(任务执行处理)图14 17是表不任务执行处理的顺序的流程图。图14 17的流程图表不调度器110使各处理器执行成为执行对象的并行任务时的顺序。通过执行图14 17的各处理,基于在任务表111中设定的优先级、与执行中的其他的并行任务的优先级对应的相关性方法来执行成为执行对象的并行任务。在图14中,调度器110首先判断在执行对象的任务中是否产生了状态迁移(步骤S1401)。步骤S1401中的状态迁移是指“任务创建”、“任务结束”以及“任务切换”。因此,在步骤S1401中,在判断为产生了状态迁移的情况下,调度器110进一步判断是上述3种状态中的哪种状态。在步骤S1401中,调度器110直到产生状态迁移为止为一直处于待机状态(步骤S1401 否”的循环)。在步骤S1401中,在状态迁移中,判断为产生了任务创建的情况(步骤S1401 是”任务创建)下,调度器110判断执行对象的任务是否为并行任务(步骤S1402)。在步骤S1402中,在判断为执行对象的任务是并行任务的情况(步骤S1402 是”)下,调度器Iio判断新创建的并行任务是否为重要(Master)线程(步骤S1403)。重要(Master)线程是指优先执行的线程。在步骤S1403中,在判断为新创建的并行任务是重要(Master)线程的情况(步骤S1403 是”)下,调度器110进一步判断新创建的并行任务是否为高优先级任务(步骤
51404)。在步骤S1404中能够参照任务表111判断是否为高优先级任务。在步骤S1404中,在判断为新创建的并行任务是高优先级任务的情况(步骤31404:“是”)下,调度器110进一步判断在CPU中是否正在执行高优先级任务(步骤
51405)。在步骤S1405中,在判断为正在执行高优先级任务的情况(步骤S1405 是”)下,调度器110进行用于将执行对象的任务移至执行的准备处理。即、调度器110将执行中的并行任务转移(migration)(数据转移)至正在执行并行线程的CPU中负荷最小的CPU,执行中禁止新的线程对其他CPU的复刻(新的线程的复制创建)(步骤S1406)。并且,调度器110在步骤S1406中,锁定配置了转移后的任务的共享数据的高速缓冲存储器区域(步骤S1407)。而且,调度器110依次执行转移后的任务(步骤S1408),在新创建的并行任务中禁止对线程的其他CPU的复刻,并分配给负荷最小的CPU (步骤S1409)。之后,调度器110锁定配置了新创建的并行任务的共享数据的高速缓冲存储器区域,开始执行任务(步骤S1410)。若步骤S1410的处理结束,则调度器110返回到步骤S1401的处理,直到产生新的状态迁移为止为待机状态。另外,在步骤S1403中,在判断为新创建的并行任务不是重要(Master)线程的情况(步骤S1403 否”)下,调度器110判断是否禁止线程的复刻(步骤S1411)。在步骤S1403中,成为判断基准的线程是指构成新创建的任务的线程。在步骤S1403中,在判断为禁止新创建的任务的线程的复刻的情况(步骤S1411 “是”)下,调度器110使新创建的任务在与执行重要(Master)线程的CPU相同的CPU中排队(步骤S1412)。通过步骤S1412的处理而排队的任务由排队目的地CPU在当前执行中的任务结束后执行。若步骤S1412的处理结束,则调度器110返回到步骤S1401的处理,直到产生新的状态迁移为止一直为待机状态。另外,调度器110在判断为新创建的任务不是并行任务的情况(步骤S1402 否”)下,或者,在判断为未禁止线程的复刻的情况(步骤S1411 否”)下,使任务在负荷最小的CPU处排队(步骤S1413)。通过步骤S1413排队的任务是被判断为通过步骤S1401新创建的任务。若步骤S1413的处理结束,则调度器110返回到步骤S1401的处理,直到产生新的状态迁移为止一直为待机状态。图15的流程图表示在步骤S1401中,判断为产生了任务结束的情况(1401 是”任务结束)和判断为产生了任务切换的情况(步骤S1401 是”任务切换)中的调度器110的处理。在图15中,调度器110首先在步骤S1401中,在判断为产生了任务结束的情况(1401 是”任务结束)下,释放配置了锁定的并行任务的共享数据的高速缓冲存储器区域(步骤 S1501)。之后,调度器110判断是否存在等待执行的任务(步骤S1502)。在步骤S1502中,在判断为存在等待执行的任务的情况(步骤S1502 是”)下,调度器110移至步骤S1503,进行用于执行等待执行的任务的处理。另一方面,在步骤S1502中,在判断为不是等待执行的任务的情况(步骤S1502 否”)下,调度器110返回到图14的步骤S1401的处理,直到产生下一个状态迁移为止一直为待机状态。另一方面,在步骤S1401中,在判断为产生了任务切换的情况(1401 是”任务切换)下,调度器110判断交出任务的执行权的任务是否为低优先级的并行任务(步骤S1503)。此外,在步骤S1502中,在判断为存在等待执行的任务的情况(步骤S1502 是”)下,调度器110进行步骤S1503的判断处理。在步骤S1503中,在判断为交出任务的执行权的任务是低优先级的并行任务的情况(步骤S1503 是”)下,调度器110采用在执行低优先级的并行任务时的高速缓冲相关性方式。即、调度器110将CPU的高速缓冲相关性方式设定为在其他的CPU对数据进行访问时监听机构进行动作的模式(步骤S1504)。在步骤S1503中,在判断为交出任务的执行权的任务不是低优先级的并行任务的情况(步骤S1503:“否”)下,或者,若步骤S1504的处理结束,则调度器110开始执行成为执行对象的任务(步骤S1505)。若通过步骤S1505执行任务,则调度器110返回到步骤S1401的处理,直到产生下一个任务的状态迁移为止一直为待机状态。图16的流程图表示在步骤S1404中,在判断为新创建的并行任务不是高优先级任务的情况(步骤S1404 否”)下的调度器110的处理。在图16中,调度器110首先在判断为在步骤S1404中新创建的并行任务不是高优先级任务的情况(步骤S1404 否”)下,判断是否正在执行高优先级任务(步骤S1601)。此夕卜,在步骤S1601中,在执行新创建的任务的CPU中,判断当前是否在执行高优先级任务。在步骤S1601中,在判断为正在执行高优先级任务的情况(步骤S1601 是”)下,调度器110采用执行低优先级的并行任务时的高速缓冲存储器相关性方式。即、调度器110将执行中的并行任务的高速缓冲相关性方式设定为在其他的CPU对数据进行访问时监听120的监听机构进行动作的模式(步骤S1602)。之后,调度器110使成为执行对象的任务在负荷最小的CPU中排队(步骤S1603),并移至步骤S1401的处理。在步骤S1603中,在当前执行中的任务结束之后执行排队的任务。负荷最小的CPU是指排队结束的任务的处理量为最小的CPU。此外,移至步骤S1401的调度器110直到产生下一个迁移状态为止一直为待机状态。在步骤S1601中,在判断为不是正在执行高优先级任务的情况(步骤S1601 否”)下,调度器110采用执行高优先级的并行任务时的高速缓冲存储器相关性方式。即、调度器110将执行中的并行任务转移至正在执行并行任务所包含的并行线程的其他的CPU中负荷最小的CPU,在执行中禁止对并行任务所包含的新的线程的其他的CPU的复刻(步骤S1604)。并且,在步骤S1604中,调度器110依次执行转移后的任务(步骤51605)。而且,调度器110在新创建的并行任务中,禁止对并行任务所包含的线程的其他的CPU的复刻,并在负荷最小的CPU中排队(步骤S1606)。通过步骤S1606,当前执行中的任务结束之后执行排队的任务。另外,若步骤S1606结束,则调度器110移至步骤S1401的处理,直到产生新的状态迁移为止一直为待机状态。图17的流程图表示在步骤S1405中,在判断为新创建的并行任务没有正在执行高优先级任务的情况(步骤S1405 否”)下的调度器110的处理。在图17中,调度器110首先在判断为在步骤S1405中成为对象的CPU没有执行高优先级任务的情况(步骤S1405 否”)下,将新创建的任务分配给负荷最小的CPU (步骤S1701)。而且,调度器110判断新创建的并行任务若要依次执行的话是不是不满足截止期限制约(步骤S1702)。在步骤S1702中,调度器110基于任务表111中设定的截止期限制约来进行是不是不满足截止期限制约的判断。在步骤S1702中,在判断为未满足截止期限制约的情况(步骤S1702 是”)下,调度器110进一步判断当前是否正在执行低优先级的并行任务(步骤S1703)。在步骤S1703中,在判断为正在执行低优先级的并行任务的情况(步骤S1703 “是”)下,调度器110采用执行低优先级的并行任务时的高速缓冲存储器相关性方式。即、调度器110将执行中的并行任务的相关性方式设定为在其他的CPU对数据进行访问时监听机构进行动作的模式(步骤S1704)。
若步骤S1704的处理结束,则调度器110锁定配置了新创建的并行任务的共享数据的高速缓冲存储器区域(步骤S1705)。另外,在步骤S1703中,在判断为没有正在执行低优先级的并行任务的情况(步骤S1703 否”)下,调度器110采用通常的相关性方式,所以不进行步骤S1704的处理,而移至步骤S1705的处理。若结束步骤S1705的处理,则调度器110开始执行新创建的并行任务(步骤
51706),返回到步骤S1401的处理,直到产生下一个任务的状态迁移为止一直为待机状态。另一方面,在步骤S1702中,判断为满足截止期限制约的情况(步骤S1702 否”)下,调度器110锁定配置了新创建的并行任务的共享数据的高速缓冲存储器区域(步骤
51707)。而且,调度器110开始依次执行新创建的并行任务(步骤S1708)。之后,调度器110返回到步骤S1401的处理,直到产生下一个任务的状态迁移为止一直为待机状态。如以上说明那样,调度器110能够根据作为并行任务而确定出的各任务分别被设定为哪个优先级(高优先级/低优先级),并且并行任务彼此是否为相同的优先级,按照最佳的CPU执行的方式进行调度。另外,调度器110根据各任务的优先级设定共享数据的高速缓冲相关性方式,所以能够防止高速缓冲存储器(高速缓冲存储器LI $)的利用效率的降低。(应用例)接下来,对将本实施方式所涉及的调度处理应用到通信设备的情况的动作例进行说明。具体而言,对分别由智能手机等便携式通信设备、和服务器等固定型通信设备执行的并行任务进行说明。<同一优先级的并行任务的情况>图18是表示相同优先级的并行任务的执行例的说明图。在图18中,智能手机1801与其他的智能手机1802进行依据WLAN (Wireless LAN :无线局域网)标准的通信。并且,智能手机1801也与服务器1803进行依据LTE (Long Term Evolution :长期演进)标准的通信。按照WLAN的标准的任务(WLAN # 0、1)和按照LTE的标准的任务(LTE # 0、1)都具有实时制约所以为高优先级任务。因此,智能手机1801将WLAN # O、I以及LTE # O、I作为同一优先级的并行任务来执行。在智能手机1801的监听120中,执行同一优先级的并行任务,所以采用进行通常的高速缓冲存储器一致性处理的监听方式。<优先级不同的并行任务的情况>图19是表示优先级不同的并行任务的执行例的说明图。在图19中,智能手机1801与服务器1803进行依据LTE标准的通信。另外,在智能手机1801中,执行无需通信的驱动器的应用程序的任务(driver # 0、1)。由智能手机1801执行的驱动器的应用程序未设置实时制约,所以为低优先级任务。因此,智能手机1801将LTE # O、I作为高优先级的并行任务来执行,将driver # O、I作为低优先级的并行任务来执行。由于执行优先级不同的并行任务,所以在智能手机1801的监听120中,采用对LTE # O、I进行低优先级并行任务中的高速缓冲存储器一致性处理的监听方式。如以上说明的那样,根据调度器、多核处理器系统以及调度方法,能够将利用频率较高的共享数据优先配置到访问速度快的高速缓冲存储器中,所以提高处理速度。另外,在设定为低优先级的处理的共享数据的情况下,延期高速缓冲存储器一致性处理的同步处理,直到产生来自CPU的访问请求。即、能够避免将没有再利用性的共享数据写入高速缓冲存储器的、成为多核处理器系统的处理性能降低的原因的处理。因此,即使在执行并行处理以及多任务处理的情况下,也能够提高高速缓冲存储器的利用效率并提高多核处理器系统的处理能力。另外,在没有高优先级任务,并在高速缓冲存储器中存在空闲区域的情况下,也可以将低优先级任务的共享数据配置给各CPU的高速缓冲存储器。因此,即使在不存在高优先级任务的情况下,也能够高效地利用高速缓冲存储器。并且,配置到高速缓冲存储器的高优先级任务执行时所访问的共享数据也可以设定为直到高优先级任务结束为止一直被锁定。通过锁定共享数据,即使产生任务切换,也能够防止由其他任务的共享数据改写高优先级任务的共享数据这样的情况,能够高效地执行高优先级任务。另外,在高优先级任务 执行时所访问的共享数据比高速缓冲存储器的容量大,且不能完全配置到高速缓冲存储器的情况下,也可以向高速缓冲存储器以外的存储器区域中访问速度快的存储器区域配置共享数据。另外,在配置共享存储器时,在存在多个存储器区域的情况下,从访问速度快的存储器开始依次配置共享数据。因此,将高优先级任务的共享数据优先配置到访问速度快的存储器区域,所以能够期待高效的处理。并且,在高优先级任务执行时所访问的共享数据比高速缓冲存储器的容量小,且高速缓冲存储器充裕的情况下,也可以向剩余的区域配置低优先级任务的共享数据。通过向剩余的区域配置低优先级任务的共享数据,能够防止高速缓冲存储器的空闲容量,能够维持较高的利用效率。另外,在作为各CPU的高速缓冲存储器的其他的存储器区域准备有多个存储器区域的情况下,也可以从访问速度快的存储器区域依次配置共享数据。通过与优先级无关地将各任务的共享数据优先配置到访问速度快的存储器区域,能够高效地执行各任务。进一步,也可以从成为执行对象的任务中提取并行任务,并分配到同一处理器。再进一步,也可以提取并行任务中优先级也相同的并行任务并分配到同一处理器。通过将优先级相同的并行任务分配到同一处理器,能够高效地利用暂时配置到高速缓冲存储器的共享数据。此外,能够通过利用个人计算机、工作站等计算机执行预先准备的程序来实当前本实施方式中说明的调度方法。将本调度器记录在硬盘、软盘、CD - R0M、M0、DVD等计算机可读取的记录介质上,通过由计算机从记录介质中读出而被执行。另外也可以经由因特网等网络来发布本调度器。附图标记说明100…多核处理器系统;110…调度器;120…监听;130…存储器控制器;140…存储器;150…文件系统;1000…应用程序;1001…判断部;1002…第I配置部;1003…第2配置部;1004…第3配置部;1005…确定部;1006…提取部;1007…分配部;
权利要求
1.一种调度器,其特征在于, 使下述多核处理器内的特定处理器执行如下步骤: 判断步骤,判断分配至多核处理器的各处理器并执行的处理组中被分配至所述各处理器的执行对象处理的优先级是否为阈值以上; 第I配置步骤,将通过所述判断步骤在所述执行对象处理中判断为是所述阈值以上的优先级的高优先级的执行对象处理在执行时所访问的数据,配置到执行所述高优先级的执行对象处理的各处理器的高速缓冲存储器中; 第2配置步骤,将通过所述判断步骤在所述执行对象处理中判断为不是所述阈值以上的优先级的低优先级的执行对象处理在执行时所访问的数据,配置到比所述各处理器的高速缓冲存储器访问速度慢的其他的存储器区域;以及 第3配置步骤,当在所述多核处理器中的一处理器中产生了访问配置在所述其他的存储器区域的数据的访问请求的情况下,将配置在所述其他的存储器区域的数据配置到所述一处理器的高速缓冲存储器。
2.根据权利要求1所述的调度器,其特征在于, 在所述第I配置步骤中, 当在所述执行对象处理中不存在由所述判断步骤判断为是所述阈值以上的优先级的所述高优先级的执行 对象处理的情况下,将所述执行对象处理中的所述低优先级的执行对象处理在执行时所访问的数据,配置到执行所述低优先级的执行对象处理的各处理器的高速缓冲存储器。
3.根据权利要求1所述的调度器,其特征在于, 在所述第I配置步骤中, 禁止由其他的数据覆写在执行所述高优先级的执行对象处理的各处理器的高速缓冲存储器中配置的、所述高优先级的执行对象处理在执行时所访问的数据,直到所述高优先级的执行对象处理执行结束为止。
4.根据权利要求1所述的调度器,其特征在于, 当通过所述判断步骤来判断所述执行对象处理的优先级是否是阈值以上时,使所述特定处理器执行确定所述多核处理器的各处理器的高速缓冲存储器中的可改写区域的容量的确定步骤, 在所述第I配置步骤中, 在通过所述确定步骤确定出的可改写区域的容量比所述高优先级的执行对象处理在执行时所访问的数据的容量小的情况下,按照该数据中更新频率从高到低的数据的顺序来配置在所述高速缓冲存储器中可配置的容量, 在所述第2配置步骤中, 将无法通过所述第I配置步骤配置到所述高速缓冲存储器的数据,配置到所述其他的存储器区域。
5.根据权利要求4所述的调度器,其特征在于, 在所述第I配置步骤中, 在通过所述确定步骤确定出的可改写区域的容量比所述高优先级的执行对象处理在执行时所访问的数据的容量大的情况下,按照所述高优先级的执行对象处理在执行时所访问的数据的配置结束之后、所述低优先级的执行对象处理在执行时所访问的数据中的更新频率从高到低的数据的顺序,配置在所述高速缓冲存储器中可配置的容量。
6.根据权利要求1所述的调度器,其特征在于, 在所述第2配置步骤中, 在作为所述其他的存储器区域准备了访问速度不同的多种存储器的情况下,对所述低优先级的执行对象处理在执行时所访问的数据,按照所述其他的存储器区域中访问速度从快到慢的存储器的顺序,配置可配置的容量。
7.根据权利要求1 6中任意一项所述的调度器,其特征在于, 使所述特定处理器执行如下步骤: 提取步骤,在所述执行对象处理中提取执行时所访问的数据共同的处理;和 分配步骤,将通过所述提取步骤提取出的处理分配给所述多核处理器中的同一处理器。
8.根据权利要求 7所述的调度器,其特征在于, 在所述分配步骤中, 将通过所述提取步骤提取出的处理中被设定为同一优先级的处理,分配给所述多核处理器中的同一处理器。
9.一种多核处理器系统,其特征在于,具备: 判断单元,其判断分配至多核处理器的各处理器并执行的处理组中被分配至所述各处理器的执行对象处理的优先级是否为阈值以上; 第I配置单元,其将通过所述判断单元在所述执行对象处理中判断为是所述阈值以上的优先级的高优先级的执行对象处理在执行时所访问的数据,配置到执行所述高优先级的执行对象处理的各处理器的高速缓冲存储器中; 第2配置单元,其将通过所述判断单元在所述执行对象处理中判断为不是所述阈值以上的优先级的低优先级的执行对象处理在执行时所访问的数据,配置到比所述各处理器的高速缓冲存储器访问速度慢的其他的存储器区域;以及 第3配置单元,当在所述多核处理器中的一处理器中在产生了访问配置在所述其他的存储器区域的数据的访问请求的情况下,将配置在所述其他的存储器区域的数据配置到所述一处理器的高速缓冲存储器。
10.一种调度方法,其特征在于, 下述多核处理器内的特定处理器执行如下步骤: 判断步骤,判断分配至多核处理器的各处理器并执行的处理组中被分配至所述各处理器的执行对象处理的优先级是否为阈值以上; 第I配置步骤,将通过所述判断步骤在所述执行对象处理中判断为是所述阈值以上的优先级的高优先级的执行对象处理在执行时所访问的数据,配置到执行所述高优先级的执行对象处理的各处理器的高速缓冲存储器中; 第2配置步骤,将通过所述判断步骤在所述执行对象处理中判断为不是所述阈值以上的优先级的低优先级的执行对象处理在执行时所访问的数据,配置到比所述各处理器的高速缓冲存储器访问速度慢的其他的存储器区域;以及 第3配置步骤,当在所述多核处理器中的一处理器中产生了访问配置在所述其他的存储器区域的数据的访问请求的情况下,将配置在所述其他的存储器区域的数据配置到所述一处理器的高速缓 冲存储器。
全文摘要
本发明涉及调度器、多核处理器系统以及调度方法。如左侧的多核处理器系统(100)那样,在由各CPU同时执行被设定同一优先级的能够并行执行的处理的情况下,调度器(110)从访问速度快的存储器区域开始优先配置高优先级的处理的共享数据。另一方面,如右侧的多核处理器系统(100)那样,在由各CPU同时执行优先级不同的能够并行执行的处理的情况下,调度器(110)也与左侧的多核处理器系统(100)同样地,配置被设定为高优先级的处理的共享数据。之后,调度器(110)向剩余的存储器配置被设定为低优先级的任务(#2)以及任务(#3)的共享数据。
文档编号G06F9/48GK103080903SQ201080068768
公开日2013年5月1日 申请日期2010年8月27日 优先权日2010年8月27日
发明者山内宏真, 山下浩一郎, 铃木贵久, 栗原康志 申请人:富士通株式会社
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1