多处理器系统以及用于在计算机中执行多处理器系统的控制方法的程序的制作方法

文档序号:6618560阅读:196来源:国知局
专利名称:多处理器系统以及用于在计算机中执行多处理器系统的控制方法的程序的制作方法
技术领域
本发明涉及多处理器系统以及用于在计算机中执行多处理器系统的 控制方法的程序,特别涉及灵活运用多个处理器而提高处理效率的多处理 器系统以及用于在计算机中执行多处理器系统的控制方法的程序。
背景技术
在特定的装置中使用的处理器被称为嵌入系统。近年来,多在嵌入系 统中采用多处理器或多线程处理器。多处理器的采用有利于提高装置的短 时钟化或响应性。此外,特别在便携式的装置中,由于还有利于消耗功率 的降低,所以期望采用多处理器。
但是,为了判断新开发的处理器是否正常动作需要花费时间和成本。 因此,在软件领域中,只要使用结果具有实际成绩的处理器可以转用,则 期望转用该处理器。因此,在将嵌入系统多处理器化时,有转用先前使用 过的单个处理器的软件的要求。
作为将单处理器转用作多处理器的以往技术,例如有专利文献l。专
利文献1的发明,将以u ITRON (注册商标)为基础的单处理器用的操作 系统(OS: Operating System)移用到多处理器中。 专利文献1:特开平8-297581号公报
但是,在处理器中,调用OS功能的机构之一中具有称为服务调用 (service call)的机构。根据服务调用,可控制对处理器的中断、或处理 器中的任务切换等。另外,服务调用的称呼是在"ITRON (注册商标)中 使用的称呼,也可称为系统调用。
但是,在将使用在单处理器中的系统调用直接转用到多处理器系统中 时,有可能无法充分地发挥多处理器系统的资源。
艮口,禁止单处理器的任务切换的服务调用(dis—dsp),当然无法设想
任务并行地动作的情况。因此,在请求任务切换,但dis—dsp禁止任务切 换的情况下,在先前的任务的处理完成之前任务切换不会发生。
此外,禁止单处理器的中断处理的服务调用(loc一cpu)占有唯一的处 理器。因此,在请求中断处理,根据loc一cpu而禁止中断时,在先前的处
理完成之前不会执行中断。
可并行动作的多处理器系统,若直接使用上述dis_dsp或loc一cpu的服 务调用,则会妨碍并行动作而无法充分发挥系统的资源。

发明内容
本发明是鉴于上述问题点而提出的,目的在于提供一种可流畅地进行 多处理器系统的并行处理且通过有效地利用资源而得到高处理效率的多 处理器系统以及多处理系统的控制方法。
本发明的多处理器系统,具有多个单位处理器,且单位处理器可并行
动作,该多处理器系统具有中断处理禁止机构,其根据上述单位处理器 的至少一部分的要求,而仅在有要求的上述单位处理器中禁止中断处理, 该中断处理中断在上述单位处理器中正执行的处理。
另外,本发明的多处理器系统的特征在于,上述中断处理禁止机构禁 止对单位处理器的外部中断、处理器中断、以及任务切换。
另外,本发明的多处理器系统的特征在于,通过上述中断处理禁止机 构而被禁止中断处理的区间即占有区间,在禁止上述处理的期间内,以该 单位处理器所执行的处理为基准,在程序上进行定义。
另外,本发明的多处理器系统的特征在于,上述中断处理禁止机构, 将同时禁止上述中断处理的单位处理器的数目,限定在一定的数目即限定 数以内。
另外,本发明的多处理器系统的特征在于,上述中断处理禁止机构, 在请求中断处理的禁止的请求单位处理器的数目超过限定数时,让更靠后 的禁止中断处理的请求进行等待,直到上述请求单位处理器的数目变为限 定数以下。
另外,本发明的多处理器系统的特征在于,上述中断处理禁止机构, 在请求中断处理的禁止的请求单位处理器的数目超过了限定数时,向更靠
后的请求禁止中断处理的单位处理器通知请求单位处理器超过了限定数 这一情况。
另外,本发明的多处理器系统的特征在于,具有中断禁止处理解除机 构,其根据被上述中断处理禁止机构禁止了中断处理的单位处理器的请 求,仅对有请求的单位处理器解除中断处理的禁止。
另外,本发明的用于在计算机中执行多处理器系统的控制方法的程 序,该多处理器系统的控制方法适用于具有多个单位处理器且单位处理器 可并行地动作的多处理器系统,上述程序包括中断处理禁止步骤,其根 据上述单位处理器的至少一部分的请求,而仅对有请求的单位处理器禁止 中断处理,该中断处理中断在该单位处理器中正执行的处理。


图1是表示一般的多处理器系统中的单位处理器的结合的例子的图。 图2是表示使用本发明的一实施方式的多处理器系统的便携式电话的 功能结构的框图。
图3是用于说明图2中作为CPU10而示出的本发明的一实施方式的 多处理器的图。
图4是用于说明通过本发明的一实施方式的ocp—cpu的发出而执行的 程序的流程图。
图5是用于说明通过本发明的一实施方式的unl—ocp的发出而执行的 程序的流程图。
图6是用于说明通过本发明的一实施方式的unl一ocp的发出而执行的 程序的其他的流程图。
图中l...OS, ll...中断控制部,12...存储器控制部,13...信号机部, 30...存储器,101...取出部,102...译码部,103...ALU, 104…寄存器堆, 105...程序控制部,106...清除禁止标志
具体实施例方式
以下,参照

本发明的多处理器系统、以及用于在计算机中执 行多处理器系统的控制方法的程序的一实施方式。
本实施方式,将本实施方式的多处理器系统作为使用在便携电话中的 嵌入系统而构成。多处理器系统,结合多个处理器(单位处理器)而构成。 在图1中表示一般的多处理器系统中的单位处理器的结合的例子。
图1 (a)、 (b)所示的多处理器,都是称为对称型多处理器(SMP: symmetric multi-processor)的结构,以共有存储器的方式结合多个单位处 理器Pu而构成。(a)所示的结构称为多处理器。此外,(b)所示的结构 称为多线程处理器。多线程处理器,在与多处理器相比还共有运算器这一 点上将单位处理器Pu紧密地结合。
在本实施方式中,举例说明多处理器系统为多处理器而构成的例子。 另外,本实施方式,可为多处理器、多线程处理器的任意一种而构成。
图2是表示使用本发明的一实施方式的多处理器系统的便携式电话的 功能结构的框图。在图2中,便携电话包括CPU (Central Processing Unit) 10、闪烁ROM20、存储器30、缓冲存储器40、无线部50、 IrDA (Infrared Date Association)部60、音频(Audio)部70、计时器(Timer) 80、 USB (Universal Serial Bus)接口部90、键(KEY)操作部100、 LCD (Liquid Crystal Display) 110、照相(Camera)部120, CPU10、闪烁ROM20、存 储器30以及缓冲存储器40通过总线连接。此外,无线部50、 IrDA部60、 音频部70、计时器80、 USB接口部90、键操作部100、 LCD110以及照 相部120与CPU直接连接。
CPU10 —边并行处理多个任务一边控制便携式电话整体,对应于从键 操作部100输入的各种指示信号,读出存储在存储器30中的操作系统程 序(OS: Operating System)或各种应用程序并执行,对应于从无线部50、 音频部70或者照相部120等的周边芯片输入的中断信号,执行中断处理 程序。另外,OS是与多处理器对应的OS。 OS保存在包含在多处理器中 的单位处理器公共的存储器30中。此外,CPUIO,将各种处理结果存储 在闪烁ROM20或存储器30中。
图3是用于说明图2中作为CPU10而示出的本实施方式的多处理器 的图。本实施方式的多处理器,是组合多个单位处理器P0、 Pl、 P2、 P3 而通过一个操作系统并行动作的多处理器。如图3所示,多处理器包括多 个单位处理器P0 P3、中断控制部11、存储器控制部12、硬件信号机(以
下称为HW信号机)部13。
此外,多处理器具有单位处理器P0 P3公共的存储器30,在存储器 30中保存0S1。 0S1是总体控制多处理器的操作系统,通过服务调用等而 被读出,根据服务调用的种类,设定单位处理器的状态。
HW信号机部13,对某个单位处理器赋予进行OS处理权利即信号机 (本实施方式中为HW信号机)。中断控制部ll,在从无线部50等的周
边芯片输入外部中断的中断信号时,调停中断信号并将给定的中断信号输 出到单位处理器P0 P3中被指定的单位处理器中。存储器控制部12,存 在于CPU和存储器30之间,在从CPU10对存储器30进行数据的读出以 及写入时,控制存储器30而进行数据的输入输出。存储器控制部12,控 制作为单位处理器P0 P3的共有区域的存储器30。
接着,对各单位处理器P0 P3的内部构成进行说明。另外,单位处 理器P0 P3,由于为相同的构成,所以仅对单位处理器PO的内部构成进 行说明,代替其他单位处理器的说明。
单位处理器PO,包括取出部101、译码部102、 ALU (Arithmetic and Logical Unit) 103、寄存器堆104、程序控制部105。取出部101从后述的 程序控制部105的程序计数器所表示的存储器地址读出命令代码,并输出 到译码部102。
译码部102,对通过取出部101而输入的命令代码进行译码,并将译 码结果(命令内容以及源寄存器、目标寄存器的地址等)输出到ALU103。
ALU103对应于由译码部102输入的译码结果,进行给定的运算,将 运算结果写入寄存器堆104中,或将分支命令等的运算结果即分支目标的 地址输出到程序控制部105。
寄存器堆104,是存储根据装载命令从存储器30读出的数据、或作为 ALU103的运算结果的数据的寄存器组。如下所述,寄存器堆103,包括 通用寄存器组和特殊寄存器组,特殊寄存器组是写入用于本实施方式的引 导处理的地址的区域。
程序控制部105,控制单位处理器PO整体,包括存储单位处理器PO 的状态(例如,可否中断的状态、单位处理器PO的溢出的发生状态等) 的状态寄存器(PSR),与存储用来保存单位处理器PO接下来应执行的命
令的存储器地址的程序计数器(PC) 230。而且,程序控制部105,在单 位处理器P0向中断处理移动的时刻,将PSR的值改变为中断处理禁止状 态、或在执行分支命令时将程序计数器的值改变为分支目标的地址。
此外,程序控制部105,具有清除禁止标志106。清除禁止标志106, 是用于禁止在自单位处理器中引起任务的切换或外部中断、当下正在执行 的处理从单位处理器清除的机构。
艮口,单位处理器执行任务的处理或由任务管理的中断(处理器中断) 非任务的外部中断。0S1,通过令各单位处理器的清除禁止标志106为1 而禁止将当下处理器中的任务或中断处理切换为其他的任务或中断处理。 将禁止单位处理器中的任务的清除的状态称为锁定状态。
此外,本实施方式的程序控制部105,发出服务调用,调用0S1。在 本实施方式中,单位处理器P0 P3的至少一部分通过程序控制部105而 发出服务调用。通过服务调用而调用0S1,被调用的0S1仅对调用了 0S1 的单位处理器禁止用来中断在该处理器中正执行的处理的中断处理。这样 的0S1,为本实施方式的中断处理禁止机构。
在本实施方式中,将在0S1中请求禁止中断处理的服务调用记作 ocp一cpn。此外,根据被ocp一cpu禁止了中断处理的单位处理器的请求而仅 对有请求的单位处理器解除中断处理的禁止。将0S1中请求解除中断处理 禁止的服务调用记作unl_0Cp。
接着,对ocp—cpu、 unl—ocp进行详细说明。 (ocp—cpu)
ocp—cpu是将所发出的单位处理器中的接下来的处理作为中断处理禁
止的服务调用。以下将中断处理被禁止的单位处理器的状态记作ocp一cpu
状态
外部中断
用于进行任务切换的处理器中断(内部中断) 处理器内的任务切换
外部中断是由图1所示的照相部120或键操作部100等请求的中断。 此外,处理器中断是根据任务的优先级而在多处理器的内部产生的中断。 处理器内的任务切换是指无论什么原因地切换单位处理器中正执行的任
务。在本说明书中,任务是根据在多处理器内部发生的事件而执行的程序 的单位。
ocp—cpu,是用于在单位处理器中优先处理任务而定义的服务调用,
以令任务维持RUN状态为目的而设定。因此,ocp—cpu, 一方面仅在发出 ocp一cpu的服务调用的单位处理器中禁止中断处理,另一方面对其他的单 位处理器不产生任何的影响。
ocp—cpu的状态,直到处于ocp—cpu状态的单位处理器发出unl—ocp 为止有效。从ocp—cpu到unl—ocp之间的区间,发出ocp—cpu的单位处理 器,以中断处理被禁止的期间内所执行的处理为基准在程序上进行定义。
因此,本实施方式,与处理所需时间无关,可直到不想中断的处理结 束为止可靠地禁止中断处理。此外,本实施方式中程序任意设定从ocp一cpu 到unl—cpu的区间,可任意设定单位处理器的占有区间。
另外,在本实施方式中,将ocp—cpu、 unl一ocp作为服务调用定义,所 以用户程序可自由地使用。
此外,本实施方式中,程序控制部105以及OSl,将通过ocp一cpu同 时被禁止了中断处理的单位处理器的数目限定为一定的数目(限定数以 内)。限定数由程序员而作为初始参数设定。在本实施方式中,为了在处 于ocp一cpu状态的CPU的数目已经到达限定数的时刻应对发出了 ocp—cpu 的单位处理器,定义同步式的服务调用和轮询式(polling)的服务调用。
同步式的服务调用,在请求禁止中断处理的单位处理器(请求单位处 理器)的数目超过了限定数时,令更靠后的中断处理禁止请求等到请求单 位处理器的数目变为限定数以下为止。
此外,轮询式的服务调用,在请求中断处理的禁止的单位处理器的数 目超过限定数时,向更靠后提出中断处理禁止的请求的单位处理器通知请 求单位处理器超过了限定数这一情况。
图4是说明用于在计算机中执行根据ocp—cpu的发出而执行OSl的多 处理器系统的控制方法的程序的流程图。
通过基于程序控制部105的ocp—cpu的发出而调用的OSl,首先判断 当下处于ocp一cpu状态的单位处理器的数目是否在限定数以内(S401)。 在判断结果为限定数以内时(S401: Yes),将发出了 ocp—cpu的单位处理
器设定为禁止该处理器中的全部的中断(设置清除禁止标志)(S409)。
接着,OSl将发出了ocp—cpu的单位处理器设定为ocp一cpu状态,通 过将返回值设定为OK而将确保了 ocp一cpu状态这一情况通知给程序控制 部105 (S4U)。
此外,OSl,在步骤S401中判断ocp—cpu状态的单位处理器超过了限 定值时(S401: No),对发出了 ocp一cpu的单位处理器是否发出了同步式 服务调用进行判断(S402)。在单位处理器所发出的服务调用为同步式的 服务调用且是任务发出的请求时(S402: Yes),在服务调用内令该单位处 理器变为WAIT状态。此外,0S1,将WAIT状态解除时的分支目标设定 为图中所示的分支A (S404)。通过步骤S404,单位处理器可在WAIT状 态解除时直接变为ocp一cpu状态。
此外,0S1,在令单位处理器为WAIT状态后,检索READY队列而 判断是否存在等待执行的任务(S405)。在存在的情况下(S406: Yes), 令单位处理器变为HALT状态(S408),成为任务可执行状态。此外,在 不存在等待执行的任务时(S406: No),改变单位处理器的任务前后关系 (context) (S407)。
另一方面,在步骤S402中,在判断单位处理器没有发出同步式服务 调用时(S402: No),在本实施方式中,0S1将返回值返回程序控制部105, 通知请求单位处理器的数目超过限定值这一情况(S403)。之后的处理, 由程序控制部105侧决定。该情况下,程序控制部105也可发出轮询式的 服务调用。在通过轮询而检测到请求源单位处理器为限定值以内时,单位 处理器可转移到ocp—cpu状态。 (unl—ocp )
unl一ocp是处于ocp—cpu状态的处理器的用户程序所发出的服务调用。 单位处理器,通过发出unl—ocp而从ocp—cpu状态恢复。此外,在请求单 位处理器为限定数以上时发出了 unl—ocp的情况下,等待变为ocp—cpu状 态的单位处理器中最先发出了 ocp—cpu的单位处理器变为0Cp_Cpu状态。
通过这样的处理,本实施方式可令ocp—cpu状态的单位处理器的数目 总在限定数以下。因此,能够可靠地进行不想中断的处理,并且可防止单 位处理器的多个变为无法接受中断处理的状态而令多处理器整体的处理
效率降低。
图5、图6是用于在计算机中执行通过unl—ocp的发出而执行0S1的 多处理器系统的控制方法的程序。另外,图5的流程,表示根据任务请求 而发出了unl—ocp时的OSl的动作。此外,图6的流程图,表示根据中断 处理程序的请求而发出了 unl_ocp时的OS1的动作。
通过任务的请求而发出的un1—ocp所调用的OSl,如图5所示,解除 发出了 ocp—cpu的单位处理器的ocp—cpu状态(S501)。而且,解除对单位 处理器的处理器中断禁止(S502),检查是否有等待变为ocp—cpu状态的 任务(S503)。
在检查的结果是有这样的任务时(S504: Yes),检测与之相应的任务 (S510)。令取出的任务变为READY状态(S511),将所检测到的任务切 换为ocp—cpu状态(S512)。
此外,在步骤S504中,在判断没有等待变为ocp—cpu状态的任务时 (S504: No),检索READY队列并判断在多处理器中是否有比正在执行 的任务优先级高的任务(S505)。在有优先级更高的任务时(S506: Yes), 检测该任务,并令正在执行的任务变为READY状态(S508)。而且,将 恢复了的单位处理器切换到所检测出的任务的前后任务(S509)。
此外,如图6所示,被根据中断处理程序的请求而发出的im1—ocp所 调用的OSl,解除发出了 ocp—cpu的单位处理器的ocp—cpu状态(S601)。 而且,解除对单位处理器的处理器中断禁止(S602),返回unl—ocp发出前 的状态。单位处理器中的以后的处理由中断处理程序侧控制。
另外,基于中断处理程序的un1—ocp的发出,限定为同时变为unLocp 状态的单位处理器的数目不超过预先设定的给定数目。在发出了给定数 目以上的unl—ocp时,之后发出的unl一ocp作为错误而无法被程序控制部 105受理。
另外,用于在计算机中执行图4、图5、图6所述的本实施方式的多 处理器系统的控制方法的程序,通过可安装的形式或可执行的形式的文件 记录在CD—ROM、软盘(fl叩py,注册商标)(FD)、 DVD等的计算机可 读取的存储介质中而提供。此外,也可将用于在计算机中执行本实施方式 的多处理器系统的控制方法的程序存储在与因特网等的网络连接的计算
机上,并通过经由网络下载而提供。
进而,用于在计算机中执行以上所述的本实施方式的多处理器系统的
控制方法的程序,也可存储在计算机可读取的ROM、闪烁存储器、存储 卡、USB连接型闪烁存储器等存储设备中而提供。
如上所述,本实施方式,在多处理器中包含的多个单位处理器P0 P3中可仅在有请求的单位处理器中,禁止中断在单位处理器中正执行的处 理。因此,可最优先且可靠地处理优先级高的处理,另一方面可在其他处 理器中受理中断。因此,本发明可流畅地进行多处理器系统中的并行处理, 可有效地利用多处理器的资源。因此,能够提供可得到高处理效率的多处 理器以及在计算机中执行该多处理器的控制方法的程序。
根据本发明,在多个单位处理器中可仅在有请求的单位处理器中禁止 在单位处理器中正执行的处理的中断。因此,可最优先地处理优先级高的 处理,另一方面可在其他处理器中受理中断。
因此,本发明可提供一种多处理器系统,可令多处理器系统的并行处 理顺畅,并可通过有效地利用资源而得到高处理效率。
此外,根据本发明,可有效地防止单位处理器中的任务以及中断处理 的中断。
此外,根据本发明,与处理时间无关,能够可靠地防止期望的处理被 中断,可流畅地进行并行处理。
此外,根据本发明,可一边可靠地进行必要的处理一边防止整体的处 理效率的降低。
此外,根据本发明,可将中断处理的禁止的必要性高的处理优先设定 为中断处理禁止的状态。
此外,根据本发明,可让没有变为中断处理禁止状态的单位处理器之 后的处理在单位处理器侧进行。因此,可减轻OS处理的负荷,并且可提 高对单位处理器的处理的自由度。
此外,根据本发明,在禁止了中断处理的单位处理器中可仅对有请求 的单位处理器解除中断处理的禁止。因此,可确保在单位处理器侧可靠地 禁止中断处理的区间。
此外,根据本发明,可仅对多个单位处理器中有请求的单位处理器禁
止中断在单位处理器中正执行的处理。因此,可最优先且可靠地处理优先 级高的处理,另一方面可在其他处理器中受理中断。
因此,本发明可提供一种用来在计算机中执行多处理器系统的控制方 法的程序,所述多处理器系统可通过流畅地进行多处理器系统的并行处理 并有效地利用资源而得到高处理效率。
权利要求
1.一种多处理器系统,具有多个单位处理器,且单位处理器可并行动作,该多处理器系统具有中断处理禁止机构,其根据上述单位处理器的至少一部分的要求,而仅在有要求的上述单位处理器中禁止中断处理,该中断处理中断在上述单位处理器中正执行的处理。
2. 如权利要求1所述的多处理器系统,其特征在于, 上述中断处理禁止机构禁止对单位处理器的外部中断、处理器中断、以及任务切换。
3. 如权利要求1或2所述的多处理器系统,其特征在于,通过上述中断处理禁止机构而被禁止中断处理的区间即占有区间,在 禁止上述处理的期间内,以该单位处理器所执行的处理为基准,在程序上 进行定义。
4. 如权利要求1至3的任意一项所述的多处理器系统,其特征在于, 上述中断处理禁止机构,将同时禁止上述中断处理的单位处理器的数目,限定在一定的数目即限定数以内。
5. 如权利要求3所述的多处理器系统,其特征在于, 上述中断处理禁止机构,在请求中断处理的禁止的请求单位处理器的数目超过限定数时,让更靠后的禁止中断处理的请求进行等待,直到上述 请求单位处理器的数目变为限定数以下。
6. 如权利要求3所述的多处理器系统,其特征在于, 上述中断处理禁止机构,在请求中断处理的禁止的请求单位处理器的数目超过了限定数时,向更靠后的请求禁止中断处理的单位处理器通知请 求单位处理器超过了限定数这一情况。
7. 如权利要求1至6的任意一项所述的多处理器系统,其特征在于, 具有中断禁止处理解除机构,其根据被上述中断处理禁止机构禁止了中断处理的单位处理器的请求,仅对有请求的单位处理器解除中断处理的
8. —种用于在计算机中执行多处理器系统的控制方法的程序,该多 处理器系统的控制方法适用于具有多个单位处理器且单位处理器可并行地动作的多处理器系统,上述程序包括中断处理禁止步骤,其根据上述单位处理器的至少一部分的请求,而 仅对有请求的单位处理器禁止中断处理,该中断处理中断在该单位处理器 中正执行的处理。
全文摘要
本发明提供一种可顺利地进行多处理器系统的并行处理且可通过有效地利用资源而得到高处理效率的多处理器系统。构成具有多个单位处理器(P0~P3),并可令单位处理器(P0~P3)并行动作的多处理器。对该多处理器,OS以及程序控制部(105)根据单位处理器(P0~P3)的至少一部分的请求,仅在有请求的单位处理器中禁止中断处理,该中断处理中断在单位处理器中正执行的处理。
文档编号G06F9/48GK101366008SQ20078000017
公开日2009年2月11日 申请日期2007年1月29日 优先权日2006年1月31日
发明者田中克哉, 轰晃成 申请人:精工爱普生株式会社
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1