多核处理器系统、分配程序、控制程序、分配方法以及控制方法

文档序号:10569862阅读:484来源:国知局
多核处理器系统、分配程序、控制程序、分配方法以及控制方法
【专利摘要】CPU#0检测进程1的分配指示。CPU#0取得残余时间,该残余时间是从作为对CPU#1分配的中断处理的句柄B的事件的产生时刻到句柄B的执行期限为止的时间(句柄B的Dt)减去句柄A的处理时间即句柄B的CP后的时间。CPU#0判断所取得的残余时间是否为进程1的被定义禁止中断的处理的处理时间(进程1的CP)以上。即,在对CPU#1分配了进程1的情况下,即使在进程1的执行中产生句柄B的事件,也判断是否能够遵守句柄B的Dt。若在进程1的执行中产生句柄B的事件,则判断为能够遵守句柄B的Dt。因此,CPU#0将进程1向CPU#1分配。
【专利说明】多核处理器系统、分配程序、控制程序、分配方法以及控制方法
[0001 ] 本申请是国家申请号为201080068231.6,进入中国国家阶段日期为2013年I月24日,发明名称为“多核处理器系统、分配程序、控制程序、分配方法以及控制方法”的发明专利申请的分案申请。
技术领域
[0002]本发明涉及对进程分配或驱动程序分配进行控制的多核处理器系统、分配程序以及分配方法。而且,本发明涉及对向处理器供给的时钟的频率进行控制的多核处理器系统、控制程序以及控制方法。
【背景技术】
[0003]以往,已知有一种在计算机系统中通过针对来自设备的中断信号,使由CPU(Central Processing Unit)正在执行的进程退避,进行针对中断信号的中断处理,来高速进行与设备对应的处理的技术。将与设备对应的处理称为设备驱动程序,作为设备驱动程序的动作,存在:用I次中断信号完结的单动作型驱动程序、和当产生I次中断信号时以一定时间间隔等连续产生中断信号的连续动作型驱动程序。
[0004]单动作型的驱动程序针对设备的寄存器组操作,变更成软件友好(softwarefriendly)的接口。单动作型的驱动程序例如适合于键盘驱动程序、鼠标驱动程序等。连续动作型的驱动程序通过针对利用FIF0(First In,First Out)进行管理的缓冲器的缺乏和缓冲器满状态的中断信号进行DMA(Direct Memory Access)设定,来进行数据传输。连续动作型的驱动程序例如适合于显示器驱动程序、照相机驱动程序等。
[0005]在连续动作型的驱动程序中,根据作为数据传输的对象数据的标准,存在最后期限时间(deadline time)的情况较多。例如,显示器的驱动程序具有在显示器以60[Hz]更新的情况下,作为最后期限时间在约0.017[秒]以内传输数据这一标准。
[0006]若以照相机驱动程序为例,则照相机设备作为输入装置被安装于终端,在拍摄的同时将一行一行来自照相机设备的输入数据储存于行缓冲器(line buffer)。当行缓冲器变为该行缓冲器的容量的1/2时,产生中断处理,该行缓冲器中储存的数据为了图像处理或压缩,被使用DMA(Direct Memory Access)向共享存储器传输。
[0007]另外,在单核处理器系统中,已知有由一个CPU基于多个进程的处理时间来切换该进程的执行的技术(例如参照下述专利文献I)。
[0008]另外,在多核处理器系统中,各驱动程序的分配在该系统起动时决定。例如已知有一种通过将多核处理器中的一个CPU作为驱动程序专用的CPU,来实现即使产生中断处理也能够不使进程退避而执行的技术(例如参照下述专利文献2。)。
[0009]专利文献1:日本特开2005 — 285093号公报
[0010]专利文献2:日本特开平4一33130号公报
[0011]然而,有时在进程中具有被定义禁止中断的处理。在执行该被定义禁止中断的处理过程中,即使产生驱动程序的中断处理,该中断处理也不被立即执行。如上所述,由于连续动作型的驱动程序存在最后期限时间,所以如果被定义禁止中断的处理的处理时间比该最后期限时间长,则存在连续动作型的驱动程序不能够遵守最后期限时间的问题。
[0012]例如,如上述的照相机驱动程序那样,若不能够遵守向共享存储器传输行缓冲器的数据的功能的最后期限时间,则由于丢失不能够传输的数据,所以导致拍摄的图像的数据缺失,使得图像变得模糊。
[0013]如上所述,在多核处理器系统中,通过设置驱动程序专用的CPU,不会与进程的被定义禁止中断的处理发生重叠。然而,当在进程专用的CPU中起动多个进程,且没有利用驱动程序专用的CPU执行任何驱动程序时,存在负荷仅集中于进程专用的CPU的问题。

【发明内容】

[0014]为了消除上述现有技术的问题点,本发明的目的在于,提供能够遵守驱动程序的最后期限时间并且向有余力的CPU分配进程的多核处理器系统、分配程序以及分配方法。
[0015]根据本发明的一个观点,提供下述的多核处理器系统、分配程序以及分配方法,其中,对进程的分配指示进行检测,当检测出上述进程的分配指示时,取得残余时间,该残余时间是从对多核处理器中任意的核心分配的中断处理的调出时刻到上述中断处理的执行期限为止的时间中减去了上述中断处理的处理时间的时间,并判断取得的残余时间是否为上述进程的被定义了禁止中断的处理的处理时间以上,在判断为上述残余时间为上述进程的被定义了禁止中断的处理的处理时间以上时,向上述任意核心分配上述进程。
[0016]根据本发明的其他观点,提供下述的多核处理器系统、分配程序以及分配方法,其中,将对象中断处理的执行时间、与对多核处理器中的任意核心分配的分配完毕的中断处理的执行时间相加,基于加法结果来判断上述任意核心是否能够遵守从上述对象中断处理调出时起的执行期限、以及从上述分配完毕的中断处理调出时起的执行期限,在判断为能够遵守从上述对象中断处理调出时起的执行期限、以及从上述分配完毕的中断处理调出时起的执行期限时,向上述任意核心分配上述对象中断处理。
[0017]根据本发明的其他观点,提供下述的多核处理器系统、控制程序以及控制方法,其中,对分配给多核处理器中的任意核心的分配完毕的进程的结束进行检测,当检测出上述分配完毕的进程的结束时,判断是否没有对上述任意核心分配任何进程,在判断为没有对上述任意核心分配任何进程时,取得残余时间,该残余时间是从对上述任意核心分配的中断处理的调出时刻到上述中断处理的执行期限为止的时间中减去了上述中断处理的处理时间后的时间,根据由上述取得单元取得的残余时间与上述中断处理的处理时间的比率,来决定向上述任意核心供给的时钟频率,并将决定结果赋予给上述时钟的供给源。
[0018]根据本多核处理器系统、分配程序以及分配方法,起到可将进程分配给能够遵守驱动程序的最后期限时间的CPU这一效果。另外,根据本多核处理器系统、分配程序以及分配方法,起到即使调出多个驱动程序,也能够遵守各驱动程序的最后期限时间这一效果。另夕卜,根据本多核处理器系统、控制程序以及控制方法,起到能够遵守各驱动程序的最后期限时间并且可实现低消耗电力这一效果。
【附图说明】
[0019]图1是表示本发明的一个例子的说明图。
[0020]图2是表示本发明的另一个例子的说明图。
[0021 ]图3是表示ESL模型的一个例子的说明图。
[0022]图4是表示实施方式I所涉及的设计辅助装置的硬件的框图。
[0023]图5是表示ESL模拟例的说明图。
[0024]图6是表示驱动程序的CP以及Dt的输出例的说明图。
[0025]图7是表示进程的CP的输出例的说明图。
[0026]图8是表示由设计辅助装置进行的驱动程序的CP记忆Dt的计算处理步骤的流程图。
[0027]图9是表示多核处理器系统的硬件的框图。
[0028]图10是与起动时相关的多核处理器系统900的功能框图。
[0029 ]图11是表示句柄(hand I er)的分配例的说明图。
[0030]图12是表示多核处理器系统900起动时的驱动程序的分配处理步骤的流程图。
[0031]图13是与运行时相关的多核处理器系统900的功能框图。
[0032]图14是表示App的计算例的说明图。
[0033]图15是表示进程A的分配例的说明图。
[0034]图16是表示进程B的分配例的说明图。
[0035]图17是表示进程C的分配例的说明图。
[0036]图18是表示计算处理步骤的流程图。
[0037]图19是表示主OS的分配处理步骤例I的流程图。
[0038]图20是表示0S911的分配处理步骤例2流程图。
[0039]图21是与时钟频率相关的多核处理器系统900的功能框图。
[0040]图22是表示OS的时钟频率的控制处理步骤的流程图。
【具体实施方式】
[0041]下面,参照附图对本发明所涉及的多核处理器系统、分配程序以及分配方法的优选实施方式进行详细说明。
[0042]图1是表示本发明的一个例子的说明图。首先,CPU#0检测进程I的分配指示。然后,CPU#0取得残余时间,该残余时间是从作为对CPU#0分配的中断处理的句柄A的事件的产生时刻到句柄A的执行期限为止的时间(句柄A的Dt)除去了作为句柄A的处理时间的句柄A的CP后的时间。
[0043]接着,CPU#0判断所取得的残余时间是否为进程I的被定义禁止中断的处理的处理时间(进程I的CP)以上。即,此处在对CPU#0分配了进程I的情况下,即使在进程I的执行中产生句柄A的事件,也判断是否能够遵守句柄A的Dt。
[0044]如图1所示,在对CPU#0分配了进程I的情况下,若在进程I的被定义禁止中断的处理的执行中产生句柄A的事件,则判定为存在不能够遵守句柄A的Dt的情况。因此,CPU#0不向CPU#0分配进程I。
[0045]图2是表示本发明的另一个例子的说明图。首先,CPU#0检测进程I的分配指示。然后,CPU#0取得残余时间,该残余时间是从作为对CPU#1分配的中断处理的句柄B的事件的产生时刻到句柄B的执行期限为止的时间(句柄B的Dt)除去了作为句柄B的处理时间的句柄B的CP后的时间。
[0046]接着,CPU#0判断所取得的残余时间是否为进程I的被定义禁止中断的处理的处理时间(进程I的CP)以上。即,此处在进程I被分配给CPU#1的情况下,即使在进程I的执行中产生句柄B的事件,也判断是否能够遵守句柄B的Dt。
[0047]如图2所示,若在进程I的执行中产生句柄B的事件,则判断为能够遵守句柄B的Dt。因此,CPU#0向CPU# I分配进程I。
[0048]首先,在实施方式I中对各驱动程序的执行时间的计算和各驱动程序的最后期限进行说明。接着,在实施方式中2对多核处理器的起动时、中断处理程序的分配以及进程的分配进行说明。
[0049](实施方式I)
[0050]在实施方式I中,使用ESL(Electronic System Level)模型对各驱动程序的执行时间的计算进行说明。此处,ESL模型是指通过根据硬件设备的行为(动作-behav1r)为基础进行记述,来将硬件环境模拟化的技术。例如,在CPU的ESL模型中并不是将指令发送的电气电路的机理原样进行模拟,而是用发行命令和其需要的时间来表现。
[0051]另外,在总线的ESL模型中同样不是利用电路机理来严格地计算数据传播的延迟,而是根据访问要求将设计上的潜在模式相乘,将动作和时间概念作为行为(动作)来进行模拟。
[0052]以往,模拟是指根据RTL(RegisterTransfer Level)等电路设计信息,不实际安装半导体地进行模拟的情况,被用于通过实现与实际设备等同的动作来进行验证。
[0053]然而,为了实施电路等级的详细模拟是非常耗时的(通常,针对实际设备的速度为数千万?数亿分之一的处理时间),现实中难以在使应用程序运行的同时对系统整体的举动进行解析。另一方面,在ESL模型中,由于将处理和时间的概念作为动作进行解析,所以是不需要进行电路的模拟就能够评价大体的处理时间的环境。
[0054](ESL 模型)
[0055]图3是表示ESL模型的一个例子的说明图。ESL模型300具有评价对象的外围电路模型301、外围电路模型302、中断控制器模型303以及CPU模型304。
[0056]评价对象的外围电路模型301例如是照相机设备模型或动态图像再生设备模型。若评价对象的外围电路模型301是照相机设备模型,则评价对象驱动程序是照相机驱动程序。另外,外围电路模型301和外围电路模型302只要是向共享存储器模型305访问的模型即可。
[0057]此处,通过增加总线缓冲器(busbuffer)的个数,来使针对CPU模型304的负荷增大。例如,总线缓冲器的深度为2是表示在总线模型306的比特宽度为128比特的情况下,CPU模型304以外的硬件(评价对象的外围电路模型301和外围电路模型302)占有16比特的总线模型306。缓冲器的深度为16表示在总线模型306的比特宽度为128比特的情况下,CPU模型304以外的硬件(评价对象的外围电路模型301与外围电路模型302)占有128比特的总线模型 306。
[0058](设计辅助装置的硬件)
[0059]图4是表示实施方式I所涉及的设计辅助装置的硬件的框图。在图4中,设计辅助装置具有CPU(Central Processing Unit)401、R0M(Read Only Memory:只读存储器)402、RAM(Random Access Memory:随机存储器)403、磁盘驱动程序404、磁盘405、光盘驱动程序406、光盘407、显示器408、I/F(Interface)409、键盘410、鼠标411、扫描仪412以及打印机413。而且,各部通过总线400分别连接。
[0060]此处,CPU401掌管分配装置的整体控制。R0M402存储有引导程序等程序。RAM403作为CPU401的工作区域被使用。磁盘驱动程序404根据CPU401的控制,控制针对磁盘405的数据的读/写。磁盘405存储通过磁盘驱动程序404的控制而写入的数据。
[0061 ] 光盘驱动程序406根据CPU401的控制,控制针对光盘407的数据的读/写。光盘407存储通过光盘驱动程序406的控制而写入的数据,或使计算机读取光盘407中存储的数据。
[0062]以光标、图标或者工具箱为代表,显示器408显示文档、图像以及功能信息等数据。该显示器408例如能够采用CRT、TFT液晶显示器、等离子显示器等。
[0063]I/F409通过通信线路与LAN(Local Area Network:局域网)、WAN(Wide AreaNetwork:广域网)、因特网等网络414连接,并经由该网络414与其他的装置连接。而且,I/F409掌管网络414与内部的接口,控制来自外部装置的数据的输入输出。I/F409例如能够采用调制解调器、LAN适配器等。
[0064]键盘410具备用于输入文字、数字、各种指示等的键,进行数据的输入。另外,也可以是触摸面板式的输入板、数字键等。鼠标411进行光标的移动、范围选择、或者窗口的移动、尺寸的变更等。只要是具备与作为定点设备一样的功能的设备即可,也可以是跟踪球、操纵杆等。
[0065]扫描仪412以光学方式读取图像,向分配装置内取入图像数据。此外,可以使扫描仪412具备0CR(0ptical Character Reader)功能。另外,打印机413打印图像数据、文档数据。打印机413例如能够采用激光打印机、喷墨打印机。
[0066]首先,对各对象驱动程序的Dt的计算进行说明。CPU401按每一个对象驱动程序取得对象外围电路的动作频率,CPU401将I/动作频率的计算结果作为最后期限。例如,显示器的动作规格为60[Hz],声音处理的动作使用为44.l[kHz]。
[0067].显示器驱动程序的Dt = l/60 = 16.6[ms]
[0068].音频驱动程序的Dt = l/44.1 = 22[ys]
[0069]接着,对各对象驱动程序的CP进行说明。
[0070]图5是表示ESL模拟例的说明图。CPU401使用ESL模拟器在ESL模型300的CPU模型304上分配并执行评价对象驱动程序。将总线缓冲器的深度为2时的执行时间作为理论执行值。将显示器驱动程序的理论执行值设为10.0[ms],将音频驱动程序的理论执行值设定为10.0|>s] O
[0071]在曲线图500中,执行结果表示了显示器驱动程序的性能比和音频驱动程序的性能比。曲线图500的横轴为总线缓冲器的深度,曲线图500的纵轴为性能比。性能比是将总线缓冲器的深度为2时的性能作为I时的执行时间的比率。
[0072]具体而言,例如CPU401根据曲线图500检测各驱动程序的最低性能比。此处,对显示器驱动程序和音频驱动程序而言,都在总线缓冲器的深度为16时为0.98这一最低性能比。即,判明为性能最大劣化2[%]。此处,显示器驱动程序和音频驱动程序的劣化率为102[% ]。而且,如下式那样计算ESL的实效值(CP)。
[0073].CP =理论执行值X劣化率[% ]
[0074]因此,显示器驱动程序的CP是10.0[ms]X102[%]的结果10.2[ms]。音频驱动程序的〇?是10.0卜8]\102[%]的结果10.2卜8]。由此,正在执行驱动程序的0?1]能够得到与其他的CPU、其他的硬件对共享存储器的访问发生了竞争时的驱动程序的执行时间。因此,在实施方式2中,能够基于性能低时的执行时间来决定进程的分配、驱动程序的分配。
[0075]另外,CPU401针对被定义禁止中断的进程,计算出该进程内的被定义禁止中断的处理的执行时间(CP)。具体而言,例如CPU401向ESL模型300内的CPU模型304分配该进程,通过使用ESL模拟器执行ESL模拟,来计算该执行时间(CP)。
[0076]CPU401输出各驱动程序的CP及Dt、进程的CP。作为输出形式,例如有向显示器408的显示、向打印机413的打印输出以及利用I/F409向外部装置的发送。另外,也可以存储在RAM403、磁盘405以及光盘407等的存储区域。
[0077]图6是表示驱动程序的CP以及Dt的输出例的说明图。在表600中,按每一各中断驱动程序保持Dt和CP。表600具有驱动程序名项目601、Dt项目602以及CP项目603。在驱动程序名项目601中保持驱动程序的识别信息、在Dt项目602中保持Dt,在CP项目603中保持CP。例如,在驱动程序名项目601内的识别信息是视频驱动程序时,Dt项目602的值为16.6[ms]、CP项目603的值为10.2[ms]。其中,句柄I?句柄5被用于驱动程序的分配的说明。
[0078]图7是表示进程的CP的输出例的说明图。表700中按每一个被定义禁止中断的进程保持该进程的被定义禁止中断的处理的执行时间。表700具有进程名项目701和CP项目702。进程名项目701中保持进程的识别信息,CP项目702中保持被定义禁止中断的处理的执行时间。
[0079](驱动程序的CP和Dt的计算处理步骤)
[0080]图8是表示由设计辅助装置进行的驱动程序的CP和Dt的计算处理步骤的流程图。首先,设计辅助装置取得ESL模型(步骤S801)、判断是否有未选择的驱动程序(步骤S802)。然后,在设计辅助装置判断为没有未选择的驱动程序时(步骤S802: “是”),从未选择的驱动程序中选择一个驱动程序(步骤S803)。
[0081 ]设计辅助装置取得对象驱动程序的动作规格(步骤S804),使Dt= I/动作规格(步骤S805) ο设计辅助装置输出对象驱动程序的Dt (步骤S806),使用ESL模拟器向ESL模型的CPU模型供给对象驱动程序而执行ESL模拟(步骤S807)。然后,设计辅助装置判断ESL模拟是否结束(步骤S808)。
[0082]在设计辅助装置判断为ESL模拟没有结束时(步骤S808: “否”),返回到步骤S808。另一方面,在设计辅助装置判断为ESL模拟已结束时(步骤S808:“是”),根据模拟结果来检测劣化率(步骤S809)。
[0083]然后,设计辅助装置取得对象驱动程序的理论执行值(步骤S810),计算出CP =理论执行值X劣化率(步骤S811)。例如,设计者可以基于对象程序的步骤数等来计算出对象驱动程序的理论执行值。另外,计算出的对象驱动程序的理论执行值被存储在CPU401能够访问的存储装置。然后,设计辅助装置输出对象驱动程序的CP(步骤S812),返回到步骤S802。在步骤S802中,当设计辅助装置判断为没有未选择的驱动程序时(步骤S802: “否”),结束一系列的处理。
[0084](实施方式2)
[0085]接着,在实施方式2中,对驱动程序的分配和应用程序的分配进行说明。此处,在多核处理器系统中,多核处理器是指搭载了多个核心的处理器。只要搭载了多个核心即可,可以是搭载了多个核心的单一处理器,也可以是单核心的处理器并列而成的处理器组。其中,在本实施方式中,为了使说明简化,以单核心处理器并列而成的处理器组为例进行说明。
[0086](多核处理器系统的硬件)
[0087]图9是表示多核处理器系统的硬件的框图。多核处理器系统900中具有外围电路901、外围电路902、中断控制器903、0?1]#0、0?1]#1、共享存储器905以及时钟供给电路906。各部通过总线904连接。
[0088]CPU#0和CPU#1分别具有核心、寄存器以及高速缓冲存储器。CPU#0执行作为主OS的0S911,管理多核处理器系统900的整体的控制。0S911控制将产生了分配指示的进程分配给哪个CPU,并且具有对CPU#0中的进程的切换进行控制的分配程序和决定向CPU#0供给的时钟的频率的控制程序。并且,0S911具有在多核处理器系统900起动时决定驱动程序的分配的分配程序。
[0089]CPU#1执行作为从OS的0S912AS912具有对分配给CPU#1的进程的切换进行控制的分配程序和决定向CPU#1供给的时钟的频率的控制程序。
[0090]时钟供给电路906对各CPU、外围电路901、外围电路902、中断控制器903以及共享存储器905分别供给时钟。而且,在实施方式2中,时钟供给电路906例如按各部的每一个具有CPU能够设定向该各部供给的时钟频率的寄存器。时钟供给电路906基于寄存器中设定的值来生成时钟,向各部供给时钟。
[0091]外围电路901和外围电路902例如是照相机设备、音频设备、键盘等。
[0092]中断控制器903若接收到来自外围电路901、外围电路902的中断信号,则基于中断表使各(PU调出与该中断信号对应的中断处理程序。
[0093]共享存储器905是CPU#0和CPU#1共享的存储器。共享存储器905例如具有R0M(ReadOnly Memory)、RAM (Random Access Memory)和闪存ROM等。共享存储器905例如存储有进程管理表922、0S911与0S912的引导程序等程序、上述表600以及上述表700、驱动程序921组、和未图不的中断表。
[0094]例如,ROM或闪存ROM存储该程序、驱动程序组等,1^1作为0?1]#0和0?1]#1的工作区域被使用。通过共享存储器905中存储的0S911和0S912被加载到各CPU中,使各CPU执行正被译码的处理。
[0095]驱动程序组921有与各外围电路对应的驱动程序。各OS选择从驱动程序组921调出的驱动程序。
[0096]进程管理表922例如是表示各进程被分配给哪个CPU、被分配的CPU是否正在执行该进程的信息。各CHJ读出进程管理表922,预先将其存储在各CHJ的高速缓冲存储器。若0S911将进程分配给CPU#0和CPU#1中的任意一个CPU,则对进程管理表922登记该进程被分配给哪个CPU。另外,各OS在对该OS分配的进程的执行结束时,将关于该进程的记述从该进程管理表922中削除。
[0097]接着,在实施方式2中,对驱动程序的分配进行说明。在实施方式2中,在多核处理器系统900起动时进行驱动程序的分配。另外,并不局限于此,也可以在多核处理器的OS更新后决定驱动程序的分配,还可以在下载任意驱动程序时决定。
[0098](与起动时相关的多核处理器系统900的功能框图)
[0099]图10是与起动时相关的多核处理器系统900的功能框图。多核处理器系统900中具有加法部1001、确定部1002、判断部1003以及分配部1004。加法部1001?分配部1004具有0S911,CPU#0从共享存储器905加载0S911后,在该0S911内执行正被译码(coding)的处理。
[0100]加法部1001将对象中断处理的执行时间、与对多核处理器中的任意CPU分配的分配完毕的中断处理的执行时间相加。
[0101]判断部1003基于加法部1001的加法结果,判断任意的CPU是否能够遵守从上述对象中断处理调出时开始的执行期限、以及从分配完毕的中断处理的调出时开始的执行期限。
[0102]在利用判断部1003判断为能够遵守从对象中断处理的调出时开始的执行期限、以及从分配完毕的中断处理的调出时开始的执行期限时,分配部1004向任意的CPU分配上述对象中断处理。
[0103]另外,确定部1002从对象中断处理的调出时刻到执行期限为止的时间、和每一个分配完毕的中断处理的分配完毕的中断处理的调出时刻到执行期限的时间中,确定最短时间。在实施方式2中将最短时间称为最短Dt。
[0104]判断部1003判断由确定部1002确定出的最短时间是否在加法部1001的加法结果以下。
[0105]在利用判断部1003判断为最短时间在加法结果以下时,分配部1004向任意的CPU分配对象中断处理。
[0106]鉴于以上步骤,使用附图进行详细的说明。
[0107]图11是表示句柄的分配例的说明图。句柄3和句柄4被分配给CPU#0,句柄I和句柄2被分配给CPU#1。若各句柄被分配,则0S911通过从表600中检索正被分配的所有句柄的CP,来取得该所有句柄的CP。然后,0S911通过对取得的CP进行加法运算来计算CP的合计值。〇卩1]#0中的0?的合计值为15[!118] ,CPUSl中的CP的合计值为21 [ms]。
[0108]首先,0S911从多个句柄中选择未分配的句柄5。此处,多个句柄是决定了CP和Dt的连续动作型驱动程序。接着,0S911从共享存储器905取得句柄5。然后,通过0S911从表600中检索句柄5的CP和句柄5的Dt,来取得句柄5的CP和句柄5的Dt。
[0109]0S911按每一个CPU将CP的合计值和句柄5的CP进行加法运算。CPU#0的加法结果为20 [ms], CPU# I的加法结果为26 [ ms ]。然后,0S911确定加法结果为句柄5的Dt以下的CPU。此处,CPU#0被确定。然后,0S911向确定出的CPU#0分配句柄5。
[0110](驱动程序的分配处理步骤)
[0111]图12是表示多核处理器系统900起动时的驱动程序的分配处理步骤的流程图。在上述例子中,同时检测出所有CPU的CP的合计值和最短Dt,但在本流程图中,从CPU#0开始按顺序检测CPU的合计值和最短Dt,并判断是否能够向CPU分配。
[0112]首先,0S911开始系统起动、驱动程序分配处理(步骤S1201)。然后,0S911使k = 0(步骤S1202),判断所有驱动程序是否分配结束(步骤S1203)。在0S911判断为未分配所有驱动程序时(步骤S1203: “否”),从未分配的驱动程序中选择一个驱动程序作为对象驱动程序(步骤 S1204)。
[0113]然后,0S911对分配给CPU#k的驱动程序的CP和对象驱动程序的CP进行加法运算(计算CP的合计值)(步骤S1205) AS911从分配给CPU#k的驱动程序的Dt和对象驱动程序的Dt中确定最短Dt(步骤S1206)。然后,0S911判断是否CP的合计值 < 最短Dt(步骤S1207)。
[0114]在0S911判断为不是CP的合计值彡最短Dt时(步骤S1207: “否”),使k = k+l(步骤S1208)、使k彡所有CPU个数(步骤S1209)。在0S911判断为k彡所有CPU个数时(步骤S1209:“是”),返回到步骤S1205。另一方面,在0S911判断为不是k彡所有CPU个数时(步骤S1209:“否”),输出错误(Error)(步骤S1210 ),结束一系列的处理。在0S911判断为CP的合计值彡最短Dt时(步骤SI 207: “是”),向CPU#k分配对象驱动程序(步骤SI 211)。另外,在分配时,将该对象驱动程序被分配到哪个CHJ存储到中断表中。然后,CPU#k的0S912起动对象驱动程序(步骤 S1212)。
[0115]另外,在0S911判断为已被分配了所有驱动程序时(步骤S1203:“是”),结束系统起动(步骤S1213),并结束一系列的处理。
[0116]另外,对即使多核处理器系统900的设计者在设计时将所有驱动程序分配给多核处理器,所有驱动程序也能够工作进行确认。由此,设计者能够验证在多核处理器系统900中是否没有产生设计上的破绽。
[0117]接着,对多核处理器系统900运行时的进程的分配进行说明。
[0118](与运行时相关的多核处理器系统900的功能框图)
[0119]图13是与运行时相关的多核处理器系统900的功能框图。多核处理器系统900具有检测部1301、取得部1302、判断部1303以及分配部1304。检测部1301?分配部1304具有0S911,CPU#0从共享存储器905加载0S911,并在该0S911内执行正被译码的处理。
[0120]检测部1301检测进程的分配指示。
[0121]若利用检测部1301检测出进程的分配指示,则取得部1302取得残余时间,该残余时间是从多核处理器中的任意CPU被分配的中断处理的调出时刻到中断处理的执行期限的时间中减去中断处理的处理时间后的时间。此处,从中断处理的调出时刻到中断处理的执行期限的时间为Dt O将残余时间设定为App。
[0122]判断部1303判断由取得部1302取得的残余时间是否为进程的被定义禁止中断的处理的处理时间以上。
[0123]在利用判断部1303判断为残余时间为进程的被定义禁止中断的处理的处理时间以上时,分配部1304向该任意CPU分配进程。
[0124]鉴于以上步骤,使用附图进行说明。
[0125]图14是表示App的计算例的说明图。在图14中,视频驱动程序被分配给CPU#0,音频驱动程序被分配给CPU#1。首先,若驱动程序的分配处理结束,则各OS通过检索表600来取得已被分配的所有驱动程序的CP和该驱动程序的Dt。
[0126]然后,各OS计算出CP的合计值。在图14中,由于各OS分别仅被分配一个驱动程序,所以0S911中的CP的合计值为10.2[ms],0S912中的CP的合计值为10.2[ys]。然后,各OS从已被分配的驱动程序的Dt中检索最短的Dt、即最短DU0S911中的最短Dt为16.6[ms],0S912中的最短Dt为22[ys]。
[0127]然后,各OS从最短Dt中减去CP的合计值。将0S911中的减法结果设定为App(O)J^0S912中的减法结果设定为App(l) WS912将App(l)与CP的合计值建立关联地向作为主OS的0S911通知。另外,各OS输出CP的合计值和App。作为输出形式,例如可以存储到共享存储器905。
[0128]图15是表示进程A的分配例的说明图。若0S911检测出进程A的分配指示,则0S911通过从表700检索进程A的CP,来取得进程A的CP AS911确定进程A的CP以上的App的CPU。此处CPU#0被确定。然后,0S911向确定出的CPU#0分配进程A。
[0129]图16是表示进程B的分配例的说明图。接着,若0S911检测出进程B的分配指示,则0S911通过从表700检索进程B的CP,来取得进程B的CP AS911确定进程B的CP以上的App的CPU。此处CPU#0和CPU#1被确定。然后,0S911向确定出的CPU#1分配进程B。
[0130]图17是表示进程C的分配例的说明图。接着,若0S911检测出进程C的分配指示,则0S911通过从表700检索进程C的CP,来取得进程C的CP AS911确定进程C的CP以上的App的CPUο此处CPU#0被确定。然后,0S911向确定出的CPU#0分配进程C。
[0131](多核处理器系统900的计算处理步骤和分配处理步骤)
[0132]图18是表示计算处理步骤的流程图。各OS执行App的计算处理,此处以0S912为例进行说明。首先,0S912判断驱动程序的分配是否已结束(步骤S1801)。在0S912判断为驱动程序的分配未结束时(步骤S1801:“否”),返回到步骤S1801。接着,在0S912判断为驱动程序的分配已结束时(步骤S1801: “是”),取得已被分配的所有驱动程序的CP和Dt(步骤S1802)。
[0133]然后,0S912计算已被分配的所有驱动程序的CP的合计值(步骤S1803),从已被分配的驱动程序的Dt中检测最短Dt(步骤S1804K0S912计算出App =最短Dt — CP的合计值(步骤S1805),向主OS通知App与CP的合计值(步骤S1806)。
[0134]图19是表示主OS的分配处理步骤例I的流程图。首先,作为主OS的0S911判断是否接收到进程的分配指示(步骤S1901)。在0S911判断为没有接收到进程的分配指示时(步骤S1901:“否”),返回到步骤S1901。另一方面,在0S911判断为接收到进程的分配指示时(步骤S1901: “是”),取得接收到分配指示的进程的CP(步骤S1902)。
[0135]然后,0S911使i=0(步骤S1903),判断是否存在CPU#i(步骤S1904)。在0S911判断为存在CPU#i时(步骤S1904: “是”),计算出SUB = CPU#i的App —所取得的CP(步骤S1905),然后判断是否SUB彡0(步骤S1906)。
[0136]在0S911判断为SUB彡O时(步骤S1906:“是”),将CPU#i确定为能够分配的CPU(步骤S1907),将SUB建立关联地向CPU#i输出(步骤S1908),使i = i+l (步骤S1909)。另一方面,在0S911判断为不是SUB彡O时(步骤S1906: “否”),移至步骤S1909。
[0137]另外,在0S911判断为不存在CPU#i时(步骤S1904:“否”),判断确定出的CPU是否有多个(步骤S1910)。在0S911判断为确定出的CPU有多个时(步骤S1910:“是”),从确定出的CHJ中确定SUB最大的CPU(步骤S1911 ),向确定出的CPU分配进程(步骤S1912 ),并返回到步骤 S1901。
[0138]在0S911判断为确定出的CPU不是多个时(步骤S1910:“否”),向确定出的CPU分配进程(步骤S1913),然后返回到步骤S1901。
[0139]图20是表示0S911的分配处理步骤例2的流程图。首先,0S911判断是否已接收到进程的分配指示(步骤S2001)。在0S911判断为未接收到进程的分配指示时(步骤S2001:“否”),返回到步骤S2001。另一方面,在0S911判断为接收到进程的分配指示时(步骤S2001:“是”),取得接收到分配指示的进程的CP(步骤S2002)。
[0140]然后,0S911使i=0(步骤S2003),判断是否存在CPU#i(步骤S2004)。在0S911判断为存在CPU#i时(步骤S2004: “是”),判断是否CPU#i的A卯彡所取得的CP(步骤S2005)。在0S911判断为CPU#i的App彡所取得的CP时(步骤S2005: “是”),向CPU#i分配进程(步骤S2006),然后返回到步骤S2001。
[0141]在0S911判断为不是CPU#i的App彡所取得的CP时(步骤S2005:“否”),使i = i+l (步骤S2007),并返回到步骤S2004。另外,当在步骤S2004中0S911判断为不存在CPU#i时(步骤S2004: “否”),输出错误(步骤S2008),并返回到步骤S2001。
[0142]接着,对将向未被分配进程的CPU供给的时钟频率降低的例子进行说明。
[0143](与时钟频率相关的多核处理器系统900的功能框图)
[0144]图21是与时钟频率相关的多核处理器系统900的功能框图。多核处理器系统900的各OS具有检测部、判断部、取得部、决定部以及设定部。0S911具有检测部2101、判断部2102、取得部2103、决定部2104以及设定部2105,0S912具有检测部2111、判断部2112、取得部2113、决定部2114以及设定部2115。各CPU从共享存储器905加载各自的OS,在该OS内执行正被译码的处理。
[0145]检测部2101和检测部2111为相同处理,判断部2102和判断部2112为相同处理。并且,取得部2103和取得部2113为相同处理,决定部2104和决定部2114为相同处理,设定部2105和设定部2115为相同处理。此处,以检测部2101?设定部2105为例进行说明。
[0146]检测部2101检测对多核处理器中的任意CPU分配的分配完毕的进程的结束。此处,将任意CPU设定为CPU#0。
[0147]当利用检测部2101检测出分配完毕的进程的结束时,判断部2102判断是否不向任意的CPU分配任何进程。
[0148]在利用判断部2102判断为不向CPU#0分配任何进程时,取得部2103取得残余时间,该残余时间是从已对CPU#0分配的中断处理的调出时刻到中断处理的执行期限为止的时间中减去上述中断处理的处理时间后的时间。此处,残余时间为App。
[0149]决定部2104根据由取得部2103取得的残余时间与中断处理的处理时间的比率,来决定向CPU#0供给的时钟频率。
[0150]设定部2105向时钟的供给源供给决定部2104的决定结果。此处,时钟供给源为时钟供给电路906。因此,具体例如由CPU#0对时钟供给电路906内的寄存器中与向该CPU#0供给的时钟频率对应的寄存器设定决定结果。
[0151]另外,检测部2101检测未分配的进程向CPU#0的分配。
[0152]若利用检测部2101检测出上述未分配的进程向CPU#0的分配,则设定部2105将由CPU#0的规格定义的频率向上述时钟的供给源供给。
[0153]例如,将CPU#0的App设定为6.4[ms]、将CP的合计值设定为10.2[ms]。此时,相对于10.2[ms],由于到6.4[ms]之前是CPU#0的余力,所以能够将时钟降低到余力为O。此处,将用CPU#0的规格定义的向该CPU#0供给的时钟频率设定为CMAX。该情况下,能够将向CPU#0供给的时钟频率降低到C。
[0154].C = CMAX.{l—App/CP的合计值}
[0155]此处,CMAX为 I OOMHz,
[0156]C=10.{1-6.4/10.2}=37.25[MHz]o
[0157]此处,在共享存储器905内保持有每个CPU的CMAX。使用流程图对详细的处理进行说明。
[0158](时钟频率的控制处理步骤)
[0159]图22是表示OS的对时钟频率的控制处理步骤的流程图。由各OS执行控制处理,这里以0S911为例进行说明。首先,0S911判断是否检测出进程的分配或进程的执行结束(步骤S2201)。在0S911判断为没有检测出进程的分配一级进程的执行结束时(步骤S2201:“否”),返回到步骤S2201。
[0160]接着,在0S911判断为检测出进程的分配时(步骤S2201:进程的分配),取得由规格定义的时钟频率(CMAX)(步骤S2202)。关于进程的分配,能够通过0S911参照进程管理表922来检测。
[0161 ] 然后,0S911向时钟供给电路906赋予CMAX(步骤S2203),并返回到步骤S2201。向时钟供给电路906赋予CMAX是指对与向时钟供给电路906内的CPU#0供给的时钟频率对应的寄存器设定CMAX。
[0162]另一方面,在0S911判断为检测出进程的执行结束时(步骤S2201:进程的执行结束),判断是否存在已被分配的进程(步骤S2204K0S911能够通过参照进程管理表922来检测出进程的结束。
[0163]在0S911判断为存在已被分配的进程时(步骤S2204: “是”),返回到步骤S2201。在0S911判断为不存在已被分配的进程时(步骤S2204:“否”),取得由规格定义的时钟频率(CMAX)(步骤 S2205)。
[0164]然后,0S911计算出? = 01^\(1—六??/^的合计值)(步骤32206),向时钟供给电路906赋予C(步骤S2207)。向时钟供给电路906赋予C是指将与向时钟供给电路906内的CPU#O赋予的时钟频率对应的寄存器设定为C。
[0165]如以上说明那样,根据多核处理器系统、分配程序以及分配方法,进程被分配到任意的核心,通过判断向该任意核心分配完毕的中断处理是否能够遵守从该中断处理的调出时起的执行期限,来决定是否向任意的核心分配该进程。由此,即使分配被定义禁止中断的进程,也能够遵守从中断处理的调出时起的执行期限。即,能够不为了驱动程序专用而确保CPU。
[0166]如上说明那样,根据多核处理器系统、分配程序以及分配方法,将对象中断处理的执行时间与对任意核心分配的I个或多个中断处理的执行时间相加。然后,通过基于加法运算结果,判断该对象中断处理以及I或者多个中断处理是否能够遵守从各自的调出时起的执行期限,能够判断是否向该任意的核心分配对象中断处理。由此,即使同时调出多个中断处理,也能够遵守从各中断处理的调出时起的执行期限。
[0167]另外,从该对象中断处理的调出时刻到执行期限的时间、和每个分配完毕的中断处理的上述分配完毕的中断处理的调出时刻到执行期限为止的时间中,确定最短时间。然后,判断该确定出的最短时间是否为加法结果以下。由此,能够判断该对象中断处理以及分配完毕的中断处理是否能够遵守从各自的调出时起的执行期限。因此,可以使判断处理高速化,能够高速地进行中断处理的分配。
[0168]如上说明那样,根据多核处理器系统、控制程序以及控制方法,若检测出已对任意CPU分配的分配完毕的进程的执行结束,则判断为对该任意CPU没有分配任何进程。如果没有被分配任何进程,则基于从已对该任意CPU分配的中断处理的调出时起的执行期限,来决定向该任意CPU供给的时钟频率。由此,能够遵守各驱动程序的最后期限时间,同时实现低电力消耗。
[0169]另外,若检测出未分配的进程向该任意CPU的分配,则将向该任意CPU赋予的时钟频率返回到由规格决定的频率。由此,能够遵守各驱动程序的最后期限时间。
[0170]符号说明:900...多核处理器系统;1001...加法部;1002...确定部;1003、1303、2102、2112...判断部;1004、1304..?分配部;1301、2101、2111..?检测部;1302、2103、2113...取得部;2104、2114...决定部;2105、2115...设定部。
【主权项】
1.一种多核处理器系统,具有: 多个核心,执行被分配的中断处理;以及 存储部,存储每一个中断处理的处理时间信息以及执行期限信息, 所述多个核心的第I核心在检测出第I中断处理的情况下,基于存储于所述存储部的所述处理时间信息计算对所述多个核心的各个分配的中断处理以及所述第I中断处理的合计处理时间,并且根据基于存储于所述存储部的所述执行期限信息的所述第I中断处理的执行期限和所述合计处理时间来将所述第I中断处理分配至能够在所述执行期限内执行的所述多个核心中的任意一个。2.—种多核处理器系统的控制方法, 所述多核处理器系统具有: 多个核心,执行被分配的中断处理;以及 存储部,存储每一个中断处理的处理时间信息以及执行期限信息, 所述多个核心的第I核心执行如下处理: 在检测出第I中断处理的情况下,基于存储于所述存储部的所述处理时间信息计算对所述多个核心的各个分配的中断处理以及所述第I中断处理的合计处理时间, 根据基于存储于所述存储部的所述执行期限信息的所述第I中断处理的执行期限和所述合计处理时间来将所述第I中断处理分配至能够在所述执行期限内执行的所述多个核心中的任意一个。
【文档编号】G06F13/26GK105930289SQ201610236777
【公开日】2016年9月7日
【申请日】2010年7月30日
【发明人】山下浩郎, 山下浩一郎, 铃木贵久, 山内宏真, 栗原康志
【申请人】富士通株式会社
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1