CN101310257A - 多处理器***和用于使计算机执行多处理器***的控制方法的程序 - Google Patents
多处理器***和用于使计算机执行多处理器***的控制方法的程序 Download PDFInfo
- Publication number
- CN101310257A CN101310257A CNA2007800001125A CN200780000112A CN101310257A CN 101310257 A CN101310257 A CN 101310257A CN A2007800001125 A CNA2007800001125 A CN A2007800001125A CN 200780000112 A CN200780000112 A CN 200780000112A CN 101310257 A CN101310257 A CN 101310257A
- Authority
- CN
- China
- Prior art keywords
- processed
- request
- task
- units device
- units
- 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.)
- Pending
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]
-
- 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]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5027—Allocation 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/5044—Allocation 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
-
- 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/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4843—Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
- G06F9/4881—Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2209/00—Indexing scheme relating to G06F9/00
- G06F2209/48—Indexing scheme relating to G06F9/48
- G06F2209/483—Multiproc
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2209/00—Indexing scheme relating to G06F9/00
- G06F2209/50—Indexing scheme relating to G06F9/50
- G06F2209/5021—Priority
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Multi Processors (AREA)
Abstract
本发明公开一种一边挪用现有技术的功能分布式处理器的OS等程序的资产、一边能够进行考虑了任务在单位处理器的固定和非固定且能够进行并行处理的多处理器***。在包括多个单位处理器的多处理器***中,设置了OS1和中断控制部(201),所述OS1和中断控制部(201)用于根据动态中断请求和静态中断请求的优先度,将由中断信号受理部(2)受理的动态中断请求和静态中断请求分配到单位处理器(P0~P3)。
Description
技术领域
本发明涉及多处理器***和用于使计算机执行多处理器***的控制方法的程序,特别涉及能够平滑并行处理任务的多处理器***和用于使计算机执行多处理器***的控制方法的程序。
背景技术
用于特定装置的处理器被称为内部***。近年来,内部***中采用多处理器和多线程(multi-thread)处理器的情况也很多。多处理器的采用在装置的低同步信号(clock)化和响应性的提高方面是有利的。特别地,在便携式装置中,由于在降低耗电上也是有利的,希望采用多处理器。
但是,在有关新开发的处理器是否正常动作的判断中需要花费时间和成本。因此,在软件领域,如果具有其使用实际效果的某处理器能够挪用的话,则一般认为希望挪用它。因此,在将内部***进行多处理化的情况下,则存在挪用在先所使用的单一处理器的软件的需求。
作为将单一处理器(功能分布式处理器)的软件挪用在多处理器中的现有技术,例如具有专利文献1。专利文献1的发明是将使μITRON(注册商标)作为基础的功能分布式处理器用的OS(操作***)移植到多处理器中的发明。对于专利文献1的发明,在功能分布式处理器中,在对用于呼叫OS的***调用进行发行的期间也受理不需要***调用的发行的中断处理,由此可以优先处理紧急性高的内部处理。
专利文献1:特开平8-297581号公报。
然而,如上述,在仅仅通过功能分布式的操作***使多处理器工作时,使多个处理器并行工作是困难的。另一方面,如果假设仅仅通过SMP(对称多处理器)式处理器用的OS来使多处理器工作,则存在单一处理器的资产即应用程序的移植作业的作业量变得庞大之类的缺点。
在内部(組込み)装置的多处理器中,有时在多处理器中设置功能和特征不同的多个处理器(单位处理器),并且将特定的任务分配给规定的单位处理器。而且,将仅仅由特定的单位处理器执行的(由单位处理器固定的)任务称为静态任务,被分配给其中一个单位处理器的任务(单位处理器非固定的)称为动态任务。但是,在专利文献1中所记载的发明由于是将功能分布式OS简单地挪用在多处理器中的发明,因此并不是考虑了在多处理器的静态任务的并行处理中的操作的发明。
本发明是鉴于上述问题提出的,目的为提供一种多处理器***,以及用于使多处理器***的控制方法在计算机中执行的程序,其能够在挪用现有技术的功能分布式处理器的OS等程序的资产的同时进行考虑了任务的单位处理器的固定和非固定的并行处理。
发明内容
根据本发明的多处理器***是备有多个单位处理器的多处理器***,其特征在于,备有:请求受理机构,其用于受理:能够在所述单位处理器的任何一个中执行的程序的执行请求即第一请求以及仅仅能够在所述单位处理器中被指定的单位处理器中执行的程序的执行请求即第二请求;单位处理器分配机构,其根据第一请求、第二请求的优先度,将由所述请求受理机构所受理的第一请求和第二请求,分配到所述单位处理器。
另外,本发明的多处理器***的特征在于,所述单位处理器分配机构在第一请求和第二请求之间比较优先度并将第一请求和第二请求分配给一个所述单位处理器。
另外,本发明的多处理器***的特征在于,所述单位处理器分配机构对于单位处理器,与第一请求相比,更优先分配第二请求。
另外,本发明的多处理器***的特征在于,包括:分配单位处理器决定机构,其用于在第一请求执行时,决定能被分配所述第一请求的单位处理器。
另外,本发明的多处理器***的特征在于,包括:分配单位处理器设定机构,其用于预先设定能够分配所述第二请求的单位处理器。
另外,本发明的多处理器***的特征在于,所述单位处理器分配机构将任务执行请求分配到所述单位处理器。
另外,本发明的多处理器***的特征在于,所述单位处理器分配机构将用于请求其他任务中断的中断处理执行请求分配到所述单位处理器。
本发明的用于使多处理器***控制方法在计算机上执行的程序,是用于使包括多个单位处理器的多处理器***所适用的多处理器***控制方法在计算机上执行的程序,特征在于,所述控制方法包括:请求受理步骤,其中受理:能够在所述单位处理器的任何一个中执行的程序的执行请求即第一请求和仅仅能够在所述单位处理器中被指定的单位处理器中执行的程序的执行请求即第二请求;单位处理器分配步骤,其根据第一请求、第二请求的优先度,将在所述请求受理步骤中被受理的第一请求和第二请求分配到所述单位处理器。
附图说明
图1(a)和(b)是用于说明与多个单位处理器的组合相关的一般构成例子的图。
图2是用于说明本发明一个实施形式的多处理器的图。
图3是用于说明图2所示的单位处理器的动作的图。
图4是用于说明由本实施形式的多处理器执行的中断处理的图。
图5是用于说明由本实施形式的多处理器执行的中断处理的另一图。
图6是用于说明由本实施形式的多处理器执行的中断处理的另一图。
图7是用于说明由本实施形式的多处理器执行的中断处理的另一图。
图8是用于说明本发明一个实施形式的通过OS处理静态任务、动态任务时的动作的流程图。
图9是用于说明本发明一个实施形式的对基于OS的静态任务、动态任务进行处理时的动作的另一个流程图。
图10是用于说明本发明一个实施形式的对基于OS的静态任务、动态任务进行处理时的动作的另一个流程图。
图11是用于说明本发明一个实施形式的对基于外部中断的静态中断、动态中断进行处理时的动作的流程图。
图12是用于说明本发明一个实施形式的对基于外部中断的静态中断、动态中断进行处理时的动作的另一个流程图。
图中:1-OS;2-中断信号受理部;201-中断控制部;202-处理处理器选择部;203a、203b、203c、203d-优先度判定部;204a、204b、204c、204d-动态设定部;205a-中断许可控制部;206a、206b、206c、206d-优先度控制部;207-动态中断优先度判定部;A、B、C、D、E-周边装置;P0、P1、P2、P3-单位处理器。
具体实施方式
下面,参考附图,说明本发明所涉及的多处理器***、用于使多处理器***的控制方法在计算机上执行的程序的实施方式。本实施方式的多处理器***包括多个单位处理器。
图1是用于说明多个单位处理器的组合所涉及的一般构成例的图。图1(a)、(b)所示的多处理器***通过以共有存储器的方式结合所有的多个单位处理器Pu而构成。(a)所示的构成是被称为多处理器的构成,(b)所示的构成被称为多线程处理器。可以认为,多线程处理器与多处理器相比,在共有运算器这点上,单位处理器Pu更紧密地结合。
即使在处于图1所示的多处理器、多线程处理器的任何一个上,多个单位处理器Pu共用存储器101,OS(操作***)1被保存在存储器101中。OS1在本实施方式的多处理器***中用于控制任务和中断处理程序(handler)的中断。
另外,虽然在本实施方式中说明了将多处理器***构成作为多处理器的例子,但是,即使采用多线程处理器,其构成也是可能的。
图2是用于说明本发明一个实施方式的多处理器的图。图示的多处理器包括多个单位处理器P0~P3和用于对面向单位处理器P0~P3的中断处理进行控制的中断控制部201,并且通过中断控制部201,与用于在单位处理器P0~P3上请求中断处理的5个周边装置A,B,C,D,E(周边装置D是外部存储器的I/F)相连接。这种多处理器适用于例如便携式电话被使用的内部处理器。在便携式电话被适用的情况下,周边装置A~D适合于操作按钮或者摄像机装置、无线装置。
单位处理器P0~P3,包括:状态寄存器(PSR)210,其用于存储各个单位处理器的状态(例如,可否中断状态,单位处理器中的溢出发生状态等);程序计数器(PC)211,其用于对存储了单位处理器下一个应该执行的命令的存储器地址进行保存。
单位处理器P0~P3还包括:例外处理用程序计数器(EPC)212;例外处理用状态寄存器(EPSR)213;中断矢量(Int Vector)214。EPC 212是在通过周边装置A~D请求中断时对PC211中所存储的地址的寄存器进行保存的存储器,EPSR213是对PSR210中所存储的信息进行保存的寄存器。另外,IntVector 214以表格形式保存与中断处理的种类相对应的转入目的地的程序地址。
对于周边装置A~D的每一个,中断控制部201包括中断信号受理部2。第一请求,一般指示被称为动态任务的任务的执行请求。在本实施方式中,将由中断引起的请求记为动态中断。另外,第二请求一般指示被称为静态任务的任务的执行请求。在本实施方式中,将由中断引起的请求记为静态中断。而且,在本实施方式中,存在:由OS1生成的调度程序等所管理的任务和由于从外部请求而不能够由OS1管理的非任务。在本实施方式中,将非任务的中断处理记为中断处理程序。
而且,上述的动态任务、静态任务的任务针对程序的处理单位的情况也很多。但是,在本实施方式中,仅仅将由OS1生成的调度程序等管理的处理记为任务,将由于从外部请求而不能由OS1管理的处理记为非任务。在本实施方式中,将非任务的中断处理也记为中断处理程序。静态中断、动态中断都是中断处理程序。
图示的四个中断信号受理部2都是同样构成的(因此,在这里,对周边装置A的中断信号受理部2进行说明)。即,中断信号受理部2,包括:用于受理周边装置A输出的中断信号的中断优先度控制部206a;中断许可控制部205a;静态/动态设定部204a。
中断信号,是周边装置A用于对多处理器请求执行中断处理的信号。中断优先度控制部206a是根据中断信号的内容来设定中断的优先度的构成。中断许可控制部205a,是根据针对多处理器全体的中断禁止的设定等,来判定是否许可周边装置A的中断请求的构成。
静态/动态设定部204a是用于确定由中断处理程序的中断信号引起的处理请求是静态中断还是动态中断、并且将该结果送到中断控制侧的构成。静态/动态设定部204a~204d是在每个中断处理程序上存在的定义寄存器,例如,假定为以下这样的寄存器。
位4静态中断[0]/动态中断[1]
位3~0在静态中断时所执行的单位处理器编号。
另外,在静态中断时,中断执行上所分配的单位处理器由请求了中断的周边装置预先设定。用于生成用来确定该单位处理器的信息的静态/动态设定部204a,成为用于对如下信息进行预先设定的分配单位处理器设定机构:即对静态中断中所分配的单位处理器的进行设定的信息。
静态/动态设定部204a的设定,通过多处理器的初始化的处理被指定。如果将μITRON(注册商标)采用为例子,作为各个中断处理程序的定义,存在***调用(DEF_INH)。通过扩展该***调用,将单位处理器设定在静态定义寄存器(IO寄存器)中。
而且,动态任务、静态任务的判断通过在μITRON(注册商标)中扩展任务生成的***调用CRE_TSK来实现。
中断控制部201包括与四个处理器P0~P3的每个相对应的四个静态中断优先度判定部203a,203b,203c,203d和动态中断优先度判定部207。
静态中断优先度判定部203a~203d,受理在单位处理器P0~P3中仅仅在被指定的单位处理器中能够执行的静态中断的请求。动态中断优先度判定部207,受理在单位处理器P0~P3的任何一个中能够执行的动态中断的请求。这种静态中断优先度判定部203a~203d和动态中断优先度判定部207,构成了本实施方式的请求受理机构。
静态中断优先度判定部203a~203d和动态中断优先度判定部207是对由对应的处理器所执行的处理的优先度进行管理的寄存器。作为该寄存器的内容,例如能够按如下假定。
位6表示处理器的状态。(RUN[1]/HALT[0])
位4在为RUN状态时,表示中断[1]/任务执行[0]的状态。
位3~0在为RUN状态时,表示RUN状态的任务的优先度。
向寄存器的写入通过软件进行。
OS1将此次受理的静态任务的请求和动态任务的请求分配到单位处理器P0~P3。对于静态任务、动态任务所分配的单位处理器的选择,OS1根据静态任务、动态任务的请求的优先度进行。
即,基于由静态中断优先度判定部203a~203d和动态中断优先度判定部207所管理的信息,通过将此次已经发生的处理的优先度和当前正在处理的任务及中断处理程序的优先度进行比较,OS1选择单位处理器。这种OS1变成本实施方式的单位处理器分配机构。OS1在单位处理器P0~P3上进行静态任务和动态任务的执行请求。有时任务是通过对其他任务进行中断而执行的中断处理。而且,后面描述通过OS1进行单位处理器的选择的细节。
下面,说明图2所示的构成的动作。
单位处理器P0~P3从没有图示的外部存储器等中读出命令,并对每个任务进行处理。对于任务,存在在单位处理器P0~P3中仅仅在被指定的单位处理器上能够执行的静态任务和在多个单位处理器的任何一个上能够执行的动态任务。
对于这种多处理器,周边装置A~E进行中断处理并对每个请求必要的处理。周边装置A~D的每一个输出用于对于中断信号受理部2来确定自身装置的信息以及用于表示任务的处理内容等的信息,从而实现处理的请求。
输入了中断信号的中断信号受理部2,基于中断信号而生成用于表示中断处理程序的优先度或静态、动态之别的信号。然后,在许可了向多处理器的中断的情况下,将所生成的信号送出到静态中断优先度判定部203a和动态中断优先度判定部207。
在被送出的信号是用于请求静态中断的信号的情况下,静态中断优先度判定部203a~c判定当前由该处理器动作的任务和中断处理程序的优先度。在请求了动态中断的情况下,动态中断优先度判定部207,判定由全部的处理器动作的任务和中断处理程序的优先度。中断处理处理器选择部202,基于静态中断优先度判定部203a~203c、动态中断优先度判定部207的判定结果,决定用于执行中断处理的单位处理器。
这样,中断处理处理器选择部202在静态中断和动态中断之间比较优先度,并且将静态中断和动态中断分配到一个单位处理器(例如单位处理器P0)。通过该构成,即使在挪用了功能分布式OS的情况下,本实施方式也能够将静态任务的概念引入到并行处理。
而且,动态任务所分配的单位处理器由OS1在任务的执行时决定。为此,在本实施方式中,OS1还起作为分配单位处理器决定机构的功能。
即,OS1基于作为中断处理程序以外的处理而被执行的动态任务、静态任务的优先度来生成任务的执行调度程式(schedule)。任务的执行调度程式,例如根据在各个单位处理器中所执行的任务的顺序,按照被执行的顺序而并列记录的就绪队列,而被表示。
以上所述本实施方式的各个单位处理器例如按照图3所示那样动作。
在图3所示的例子中,由Dynamic_a等表记表示的处理部分,表示是动态任务并且不是中断处理程序的情况。由Dynamic_IntA等表记表示的处理部分,表示是动态中断并且表示作为中断处理程序而被执行的处理。
由Static_a等表记表示的处理部分,表示是静态任务并且不是中断处理程序的情况。由Static_IntA等表记表示的处理部分表示是静态中断并且表示作为中断处理程序而被执行的处理。而且,在静态任务的Static_之后接着的序号表示被固定的单位处理器(表示Static_1被分配给单位处理器P0、Static_2被分配给单位处理器P1、Static_3被分配给单位处理器P2、Static_4被分配给单位处理器P3的情况)。
下面,更具体地说明本实施方式的多处理器的由OS1执行的处理。图4到图7是用于说明本实施方式的多处理器所执行的任务处理的图。
在图4所示的例子中,单位处理器P0执行优先度5的动态任务,单位处理器P1执行优先度6的动态任务,单位处理器P2执行优先度7的动态任务。并且,单位处理器P3执行优先度8的静态任务。另外,在图4~图7中,假设数字越少,任务的优先度越高。
在这种状态中,当任何一个任务对优先度5的动态任务进行了请求时,OS1按以下动作。即,OS1检测出:在单位处理器P0~P3中,正在执行当前所执行的任务中最低优先度的单位处理器是单位处理器P3。
接着,OS1判定此次被请求的任务和由单位处理器P3执行的任务的静态、动态之别。在图4所示的例子中,由单位处理器P3执行的任务是静态任务,此次被要求的任务是动态任务。
在图4所示的例子中,由于动态任务的优先度比静态任务的优先度更高,因此代替由单位处理器P3执行的任务,使新被请求的任务执行于单位处理器P3中。
在图5所示的例子中,单位处理器P0执行优先度5的动态任务,单位处理器P1执行优先度6的动态任务,单位处理器P2执行优先度7的动态任务,单位处理器P3执行优先度7的静态任务。
在这种状态中,当对于任何一个任务为优先度7的动态任务进行了请求时,OS1检测在由单位处理器P0~P3当前正在执行的任务当中优先度比此次所请求的任务优先度更低的任务的有无。
接着,OS1判定此次被请求的任务和由单位处理器P3执行的任务的静态、动态之别。在图5所示的例子中,没有优先度比此次被请求的任务更低的任务。并检测出:由单位处理器P3执行的优先度相等的任务是静态任务,被请求的任务是动态任务。
在这种情况下,在本实施方式中,静态任务原则上优先于动态任务而被执行。另外,在先执行的处理和此次被要求的处理的优先度相等的情况下,不执行任务切换,是μITRON(注册商标)的标准。
在图5所示的例子中,由于动态任务的优先度和静态任务的优先度相等,继续在单位处理器P3中的任务的执行,不存在将新请求的任务移动到执行状态(追加到就绪队列)的情况。
通过如此进行处理,对于可能执行静态分配的单位处理器,本实施方式,使得与动态分配相比,优先分配静态分配。如果这样,能够一边执行优先度高的中断处理,一边防止静态中断的延迟。
而且,在这里,假设当优先度相等时,通过优先于动态任务而处理静态任务。但是,本发明并不限定于这种构成,也可以是,当动态任务和静态任务在一个处理器上竟争时,常常使静态任务优先。
在图6所示的例子中,单位处理器P0执行优先度5的动态任务,单位处理器P1执行优先度6的动态任务,单位处理器P2执行优先度7的动态任务,单位处理器P3执行优先度7的静态任务。
在这种状态中,当任何一个任务对仅仅能够在单位处理器P2中动作的优先度5的静态任务进行了请求时,OS1将由单位处理器P2当前正在执行的任务的优先度和此次被请求的任务的优先度进行比较。
在图6所示的例子中,由于此次被请求的任务的优先度比由单位处理器P2当前正在执行的任务的优先度高,因此代替由单位处理器P2正执行的任务,在单位处理器P2中执行新请求的任务。
在图7所示的例子中,单位处理器P0执行优先度5的动态任务,单位处理器P1执行优先度6的动态任务,单位处理器P2执行优先度7的动态任务,单位处理器P3执行优先度7的静态任务。
在这种状态中,当任何一个任务对仅仅能够在单位处理器P1中动作的优先度6的静态任务进行了请求时,OS1将由单位处理器P1当前正在执行的任务的优先度和此次被请求的中断的任务的优先度进行比较。
在图7所示的例子中,由于此次被请求的任务的优先度比由单位处理器P2当前正在执行的任务的优先度低,因此继续单位处理器P1中的任务的执行,而不将新请求的任务转移到执行状态。
接着,说明在以上描述的本实施方式的多处理器中所执行的多处理器***的控制方法。
图8是用于说明对基于OS1的静态任务、动态任务进行处理时的动作的流程图。在满足了就绪队列的注册条件时,OS1假设新的任务发生了,并且将该任务注册到就绪队列中(S801)。而且,所谓就绪队列的注册条件,例如,是指通过单位处理器P0~P3的任何一个来实现发送消息的执行等。
接着,OS1判定被注册的任务是动态任务还是静态任务(S802)。在任务是静态任务的情况下(静态任务),判断任务所预先分配的单位处理器是否是处于HALT(停止)中(S803)。如果单位处理器是处于HALT中(S803:是),则在任务所分配的单位处理器中产生内部中断请求(S807),并待机,直至被内部中断请求的单位处理器的启动结束(S808)。而且,在单位处理器的启动结束之后,单位处理器从基于OS的处理(OS处理)返回,并返回到执行任务的处理。
另一方面,在步骤S802,当判断任务是动态任务时(动态任务),开始图9的流程图所示的处理。即,OS1判断在多处理器内是否存在处于HALT中的单位处理器(S901),如图9的流程图所示。在存在处于HALT中的单位处理器的情况下(S901:是),OS1使该单位处理器产生内部中断请求(S905)。并在被内部中断请求的单位处理器的启动结束之前待机(S906)。
在步骤S901,在判断为不存在处于HALT中的单位处理器的情况下(S901:否),将由单位处理器P0~P3的全体所执行的任务的优先度和此次被中断请求的任务的优先度进行比较(S902)。当其结果为目前执行的任务全部具有比此次被请求的任务更高的优先度时(S903:否),返回到不产生任务切换时的任务处理。
另一方面,当目前执行的任务当中有比此次被请求的任务更低的优先度时,使任务切换发生(S903:是)。在任务切换发生之后,OS1执行伴随任务切换而执行的一般的任务切换共同处理(S904)。
当预先分配于任务中的单位处理器不是处于HALT中时(S803:否),OS1将由该单位处理器当前执行的任务的优先度和此次被请求的任务的优先度进行比较(S804)。其结果,在当前被执行的任务具有比此次被请求的任务更高的优先度的情况下(S805:否),返回到不发生任务切换的任务处理。
另一方面,当在当前执行的任务具有比此次被请求的任务更低的优先度时,使任务切换发生(S905:是)。在任务切换发生之后,OS1执行伴随任务切换而执行的一般的任务切换共同处理(S806)。
图10是用于说明图8、图9所示的任务切换共同处理的流程图。任务切换共同处理是在发生了任务切换时单位处理器P0~P3的全体执行的处理。单位处理器P0~P3首先对执行任务切换的单位处理器(S1001)进行检索、确定。在检索的结果为进行任务切换的单位处理器是自身处理器的情况下,执行当前正执行任务的数据的保存等、以及切换处理(S1005)。然后使任务转移到切换后应该进行处理的任务(S1006)。
另一方面,在步骤S1002,当判断为进行任务切换的单位处理器是其他单位处理器时(S1002:否),在应该进行任务切换的其他的处理器中产生中断处(S1003)。不构成此次任务切换之对象的单位处理器,等待进行任务切换的单位处理器的任务切换的处理结束(S1004),返回到从OS处理返回的任务处理。
图11是用于说明在处理由中断控制部201引起的静态中断、动态中断时的动作的流程图。中断控制部201在外部中断发生时,判断所发生的外部中断是动态中断、静态中断的哪一个(S1101)。判断的结果,在中断处理程序是静态中断时(S1101:静态中断),将在由静态中断所分配的单位处理器(指定单位处理器)所执行中的任务和中断处理程序的优先度与此次被请求的静态中断的中断处理程序的优先度进行比较(S1102)。
当步骤S1102的判断结果为此次被请求的静态中断的优先度高时(S1103:是),指定单位处理器保存与在先被执行的处理相关的信息(PSR210,PC211)(S1104)。信息保存之后,中断控制部201使在指定单位处理器上发生外部中断(S1105)。
另外,在判断为此次被请求的静态中断的优先度比先前在指定单位处理器中所执行的任务及中断处理程序的优先度低时(S1103:否),中断控制部201保留此次的中断请求(S1106)。
在判断为所发生的外部中断是动态中断时(动态中断),中断控制部201执行图12的流程图所示的处理。即,中断控制部201检索在多处理器所包括的单位处理器中是否存在处于HALT中的单位处理器(S1201)。当该检索的结果为存在处于HALT中的单位处理器时(S1202:是),使在该单位处理器中发生外部中断(1208)。
在步骤S1202中,当判断为不存在处于HALT中的单位处理器时(S1202:否),将由单位处理器P0~P3的全体所执行的任务及中断处理程序的优先度和此次被中断请求的优先度进行比较。然后,判断是否没有执行比此次发生的外部中断的任务的优先度更低优先度的任务及中断处理程序(S1203)。当其结果为不存在该种单位处理器时(S1204:否),保留此次发生的外部中断(S1207)。
另一方面,当存在用于执行比此次发生的中断处理程序的优先度更低优先度的任务及中断处理程序的单位处理器时(S1204:是),该单位处理器保存与在先被执行的处理相关的信息(PSR210,PC211)(S1205)。在信息保存之后,中断控制部201使在指定单位处理器上发生外部中断(S1206)。
而且,用于使图8到图12所述的本实施方式的多处理器***的控制方法在计算机上执行的程序以可安装形式或者可执行形式的文件被提供记录在CD-ROM、软盘(FD)(注册商标)、DVD等计算机可读取的记录媒体上。而且,可是构成为,将使本实施方式的多处理器***的控制方法在计算机上执行的程序,存储在因特网等网络上所连接的计算机上,并通过经由网络下载来提供。
用于使以上所述的本实施方式的多处理器***的控制方法在计算机上执行的程序还可以被提供记录在计算机可读取的ROM、快闪存储器、存储卡、USB连接型快闪存储器等存储器设备上。
对于以上所述的本实施方式,能够受理在单位处理器的任何一个中能够执行的动态任务和动态中断、在单位处理器当中仅仅在被指定的单位处理器中能够执行的静态任务和静态中断。并且,能够将被受理的各个处理根据任务和中断处理程序的优先度分配到单位处理器P0~P3。
工业实用性
根据本发明,能够受理:能够在单位处理器的任何一个中执行的程序的执行请求即第一请求和仅仅能够在前述单位处理器中指定的单位处理器中执行的程序的执行请求即第二请求。能够将被受理的第一请求和第二请求根据第一请求、第二请求的优先度分配到多处理器的单位处理器。
通过追加根据第一请求、第二请求的优先度而分配到多处理器的单位处理器的构成,本发明能够提供一种即使挪用现有技术的功能分布式处理器的OS等程序的资产也能够进行考虑了任务在单位处理器的固定和非固定的并行处理的多处理器***。
根据本发明,能够一元地管理第一请求和第二请求,能够平滑地执行被并行执行的中断处理。
根据本发明,在第一请求和第二请求竞争时,使不能够分配到其他单位处理器的第二请求的优先,从而能够防止第二请求的处理与第一请求相比的大的延迟。
根据本发明,能够柔性地执行将第一请求动态地分配到单位处理器的处理。
根据本发明,对于固定于单位处理器的第二请求,能够预先设定该单位处理器。因此,能够省略在中断发生时选择单位处理器的处理,以及能够使中断处理高效率。
根据本发明,能够平滑地执行将任务假设为单位的并行处理。
根据本发明,能够平滑地执行外部中断等以及当中断处理发生时的并行处理。
根据本发明,通过追加根据第一请求、第二请求的优先度而分配到多处理器的单位处理器的步骤,本发明能够提供一种用于将多处理器***控制方法在计算机中执行的程序,即使挪用现有技术的功能分布式处理器的OS等程序的资产,考虑了任务在单位处理器的固定和非固定的并行处理也是可能的。
Claims (8)
1.一种多处理器***,是备有多个单位处理器的多处理器***,备有:
请求受理机构,其用于受理:能够在所述单位处理器的任何一个中执行的程序的执行请求即第一请求以及仅仅能够在所述单位处理器中被指定的单位处理器中执行的程序的执行请求即第二请求;
单位处理器分配机构,其根据第一请求、第二请求的优先度,将由所述请求受理机构所受理的第一请求和第二请求分配到所述单位处理器。
2.根据权利要求1所述的多处理器***,其特征在于,
所述单位处理器分配机构,在第一请求和第二请求之间比较优先度并将第一请求和第二请求分配给一个所述单位处理器。
3.根据权利要求1或者2所述的多处理器***,其特征在于,
所述单位处理器分配机构,对单位处理器,与第一请求相比,更优先分配第二请求。
4.根据权利要求1至3中任何一项所述的多处理器***,其特征在于,包括:
分配单位处理器决定机构,其在第一请求执行时,决定能被分配所述第一请求的单位处理器。
5.根据权利要求1至4中任何一项所述的多处理器***,其特征在于,包括:
分配单位处理器设定机构,其用于预先设定能被所述第二请求所分配的单位处理器。
6.根据权利要求1至5中任何一项所述的多处理器***,其特征在于,
所述单位处理器分配机构,将任务执行请求分配到所述单位处理器。
7.根据权利要求1至6中任何一项所述的多处理器***,其特征在于,
所述单位处理器分配机构,将用于请求其他任务中断的中断处理的执行请求,分配到所述单位处理器。
8.一种用于使多处理器***的控制方法在计算机上执行的程序,所述多处理器***备有多个单位处理器,所述控制方法包括:
请求受理步骤,其中受理:能够在所述单位处理器的任何一个中执行的程序的执行请求即第一请求、和仅仅能够在所述单位处理器当中在被指定的单位处理器中执行的程序的执行请求即第二请求;
单位处理器分配步骤,其中根据第一请求、第二请求的优先度,将在所述请求受理步骤中被受理的第一请求和第二请求分配到所述单位处理器。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2006007302A JP2007188398A (ja) | 2006-01-16 | 2006-01-16 | マルチプロセッサシステム、マルチプロセッサシステムの制御方法をコンピュータに実行させるためのプログラム。 |
JP007302/2006 | 2006-01-16 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN101310257A true CN101310257A (zh) | 2008-11-19 |
Family
ID=38256423
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNA2007800001125A Pending CN101310257A (zh) | 2006-01-16 | 2007-01-16 | 多处理器***和用于使计算机执行多处理器***的控制方法的程序 |
Country Status (6)
Country | Link |
---|---|
US (1) | US7979861B2 (zh) |
EP (1) | EP1876531A4 (zh) |
JP (1) | JP2007188398A (zh) |
KR (1) | KR20070106773A (zh) |
CN (1) | CN101310257A (zh) |
WO (1) | WO2007081022A1 (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103699444A (zh) * | 2013-12-17 | 2014-04-02 | 华为技术有限公司 | 中央处理器热插拔的实现方法及装置 |
CN106560794A (zh) * | 2016-08-08 | 2017-04-12 | 柏建民 | 基于远程智能存储单元的分布式多处理器单元*** |
Families Citing this family (18)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2007108944A (ja) * | 2005-10-12 | 2007-04-26 | Renesas Technology Corp | 半導体集積回路装置 |
US7841967B1 (en) | 2006-04-26 | 2010-11-30 | Dp Technologies, Inc. | Method and apparatus for providing fitness coaching using a mobile device |
US8902154B1 (en) | 2006-07-11 | 2014-12-02 | Dp Technologies, Inc. | Method and apparatus for utilizing motion user interface |
US8620353B1 (en) | 2007-01-26 | 2013-12-31 | Dp Technologies, Inc. | Automatic sharing and publication of multimedia from a mobile device |
US8949070B1 (en) | 2007-02-08 | 2015-02-03 | Dp Technologies, Inc. | Human activity monitoring device with activity identification |
US8555282B1 (en) | 2007-07-27 | 2013-10-08 | Dp Technologies, Inc. | Optimizing preemptive operating system with motion sensing |
CN102077181B (zh) * | 2008-04-28 | 2014-07-02 | 惠普开发有限公司 | 用于在多核处理器中和在某些共享存储器多处理器***中产生并输送处理器间中断的方法和*** |
US8285344B2 (en) | 2008-05-21 | 2012-10-09 | DP Technlogies, Inc. | Method and apparatus for adjusting audio for a user environment |
US8996332B2 (en) | 2008-06-24 | 2015-03-31 | Dp Technologies, Inc. | Program setting adjustments based on activity identification |
US8887159B2 (en) * | 2008-10-01 | 2014-11-11 | Microsoft Corporation | Flexible and scalable operating system achieving a fast boot and reliable operation |
US8872646B2 (en) | 2008-10-08 | 2014-10-28 | Dp Technologies, Inc. | Method and system for waking up a device due to motion |
CN101782862B (zh) * | 2009-01-16 | 2013-03-13 | 鸿富锦精密工业(深圳)有限公司 | 处理器分配控制***及其控制方法 |
TWI448847B (zh) * | 2009-02-27 | 2014-08-11 | Foxnum Technology Co Ltd | 處理器分配控制系統及其控制方法 |
US9529437B2 (en) | 2009-05-26 | 2016-12-27 | Dp Technologies, Inc. | Method and apparatus for a motion state aware device |
JP2011210201A (ja) * | 2010-03-30 | 2011-10-20 | Toshiba Corp | 情報処理装置 |
US9515899B2 (en) * | 2012-12-19 | 2016-12-06 | Veritas Technologies Llc | Providing optimized quality of service to prioritized virtual machines and applications based on quality of shared resources |
JP7226064B2 (ja) * | 2019-04-23 | 2023-02-21 | 株式会社デンソー | 電子制御装置 |
US11449339B2 (en) * | 2019-09-27 | 2022-09-20 | Red Hat, Inc. | Memory barrier elision for multi-threaded workloads |
Family Cites Families (26)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS5423341A (en) | 1977-07-25 | 1979-02-21 | Nippon Telegr & Teleph Corp <Ntt> | Microprogram sequence control system |
JPH0789323B2 (ja) | 1985-12-20 | 1995-09-27 | 日本電気株式会社 | 多重割込制御方式 |
US4959781A (en) * | 1988-05-16 | 1990-09-25 | Stardent Computer, Inc. | System for assigning interrupts to least busy processor that already loaded same class of interrupt routines |
JPH02122365A (ja) | 1988-10-31 | 1990-05-10 | Hitachi Ltd | プロセッサ割当て方式 |
US5613128A (en) * | 1990-12-21 | 1997-03-18 | Intel Corporation | Programmable multi-processor interrupt controller system with a processor integrated local interrupt controller |
DE69531270T2 (de) | 1994-05-31 | 2004-04-22 | Advanced Micro Devices, Inc., Sunnyvale | Unterbrechungssteuerungsgeräte in symmetrischen Mehrprozessorsystemen |
US5568649A (en) * | 1994-05-31 | 1996-10-22 | Advanced Micro Devices | Interrupt cascading and priority configuration for a symmetrical multiprocessing system |
US5905898A (en) | 1994-05-31 | 1999-05-18 | Advanced Micro Devices, Inc. | Apparatus and method for storing interrupt source information in an interrupt controller based upon interrupt priority |
US5555430A (en) | 1994-05-31 | 1996-09-10 | Advanced Micro Devices | Interrupt control architecture for symmetrical multiprocessing system |
US5613126A (en) | 1994-05-31 | 1997-03-18 | Advanced Micro Devices, Inc. | Timer tick auto-chaining technique within a symmetrical multiprocessing system |
US5564060A (en) * | 1994-05-31 | 1996-10-08 | Advanced Micro Devices | Interrupt handling mechanism to prevent spurious interrupts in a symmetrical multiprocessing system |
US5781187A (en) | 1994-05-31 | 1998-07-14 | Advanced Micro Devices, Inc. | Interrupt transmission via specialized bus cycle within a symmetrical multiprocessing system |
US5530891A (en) | 1994-05-31 | 1996-06-25 | Advanced Micro Devices | System management interrupt mechanism within a symmetrical multiprocessing system |
JPH08297581A (ja) | 1995-02-28 | 1996-11-12 | Nec Corp | リアルタイム・オペレーティングシステムにおける割り込み管理方式 |
JPH09282188A (ja) | 1996-04-16 | 1997-10-31 | Mitsubishi Electric Corp | 割込処理方法およびこの方法を用いたシステム |
US5826081A (en) * | 1996-05-06 | 1998-10-20 | Sun Microsystems, Inc. | Real time thread dispatcher for multiprocessor applications |
US5918057A (en) * | 1997-03-20 | 1999-06-29 | Industrial Technology Research Institute | Method and apparatus for dispatching multiple interrupt requests simultaneously |
US6289369B1 (en) * | 1998-08-25 | 2001-09-11 | International Business Machines Corporation | Affinity, locality, and load balancing in scheduling user program-level threads for execution by a computer system |
US6665699B1 (en) * | 1999-09-23 | 2003-12-16 | Bull Hn Information Systems Inc. | Method and data processing system providing processor affinity dispatching |
US6633940B1 (en) * | 1999-10-11 | 2003-10-14 | Ati International Srl | Method and apparatus for processing interrupts in a computing system |
US6928646B1 (en) * | 2000-02-02 | 2005-08-09 | Sony Corporation | System and method for efficiently performing scheduling operations in an electronic device |
US6834385B2 (en) * | 2001-01-04 | 2004-12-21 | International Business Machines Corporation | System and method for utilizing dispatch queues in a multiprocessor data processing system |
US7159216B2 (en) * | 2001-11-07 | 2007-01-02 | International Business Machines Corporation | Method and apparatus for dispatching tasks in a non-uniform memory access (NUMA) computer system |
JP2005004562A (ja) | 2003-06-13 | 2005-01-06 | Canon Inc | マルチプロセッサシステム、マルチプロセッサシステムの制御方法、およびマルチプロセッサシステムの制御プログラム |
JP3893136B2 (ja) | 2004-05-13 | 2007-03-14 | ファームウェアシステム株式会社 | 組込みコンピュータ制御プログラム、そのプログラムを記録した記録媒体、及び組込みシステム |
JP4609113B2 (ja) | 2005-03-01 | 2011-01-12 | セイコーエプソン株式会社 | プロセッサ |
-
2006
- 2006-01-16 JP JP2006007302A patent/JP2007188398A/ja active Pending
-
2007
- 2007-01-10 US US11/651,471 patent/US7979861B2/en not_active Expired - Fee Related
- 2007-01-16 KR KR1020077020954A patent/KR20070106773A/ko not_active Application Discontinuation
- 2007-01-16 CN CNA2007800001125A patent/CN101310257A/zh active Pending
- 2007-01-16 WO PCT/JP2007/050508 patent/WO2007081022A1/ja active Application Filing
- 2007-01-16 EP EP07706835A patent/EP1876531A4/en not_active Withdrawn
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103699444A (zh) * | 2013-12-17 | 2014-04-02 | 华为技术有限公司 | 中央处理器热插拔的实现方法及装置 |
CN103699444B (zh) * | 2013-12-17 | 2017-03-15 | 华为技术有限公司 | 中央处理器热插拔的实现方法及装置 |
CN106560794A (zh) * | 2016-08-08 | 2017-04-12 | 柏建民 | 基于远程智能存储单元的分布式多处理器单元*** |
Also Published As
Publication number | Publication date |
---|---|
EP1876531A1 (en) | 2008-01-09 |
US7979861B2 (en) | 2011-07-12 |
WO2007081022A1 (ja) | 2007-07-19 |
EP1876531A4 (en) | 2009-07-01 |
KR20070106773A (ko) | 2007-11-05 |
JP2007188398A (ja) | 2007-07-26 |
US20070169126A1 (en) | 2007-07-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101310257A (zh) | 多处理器***和用于使计算机执行多处理器***的控制方法的程序 | |
JP6294586B2 (ja) | 命令スレッドを組み合わせた実行の管理システムおよび管理方法 | |
CN101702134B (zh) | 无操作***干预情况下调度os隔离定序器上的线程的机制 | |
TWI537831B (zh) | 多核心處理器、用於執行處理程序切換之方法、用於保全一記憶體區塊之方法、用於致能使用一多核心裝置之異動處理之設備、以及用於執行記憶體異動處理之方法 | |
TWI520056B (zh) | Virtual queue processing circuit and work processing device | |
TWI416413B (zh) | Work processing device | |
TWI426452B (zh) | Work processing device | |
US20060130062A1 (en) | Scheduling threads in a multi-threaded computer | |
CN108920267B (zh) | 任务处理装置 | |
JP2007520825A (ja) | 待機状態にあるプロセッサ実行リソースの共有 | |
US8321874B2 (en) | Intelligent context migration for user mode scheduling | |
JP6296678B2 (ja) | ソフトリアルタイムオペレーティングシステムの実時間性を確保する方法及び装置 | |
KR20120070303A (ko) | 실시간 멀티코어 시스템의 동기화 스케쥴링 장치 및 방법 | |
US9354934B2 (en) | Partitioned shared processor interrupt-intensive task segregator | |
KR20110075296A (ko) | 멀티코어 시스템 상에서 단위 작업을 할당하는 방법 및 그 장치 | |
KR20110106717A (ko) | 재구성 가능 어레이 및 재구성 가능 어레이의 제어 방법 | |
KR20070090649A (ko) | 멀티 코어 시스템에서 협력적 스케줄링을 제공하는 장치 및방법 | |
JP6135392B2 (ja) | キャッシュメモリ制御プログラム,キャッシュメモリを内蔵するプロセッサ及びキャッシュメモリ制御方法 | |
CN101847128A (zh) | 管理tlb的方法和装置 | |
US20130104141A1 (en) | Divided central data processing, | |
US7603673B2 (en) | Method and system for reducing context switch times | |
JP5678347B2 (ja) | Itシステムの構成方法、そのコンピュータプログラムおよびitシステム | |
JP4017005B2 (ja) | 演算装置 | |
JP5859472B2 (ja) | プロセスの待ち行列を共有する複数のプロセッサを有する計算機、及び、プロセスディスパッチ処理方法 | |
JP4325466B2 (ja) | タスク実行システム |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C02 | Deemed withdrawal of patent application after publication (patent law 2001) | ||
WD01 | Invention patent application deemed withdrawn after publication |
Application publication date: 20081119 |