CN102822802A - 多核处理器系统、控制程序以及控制方法 - Google Patents
多核处理器系统、控制程序以及控制方法 Download PDFInfo
- Publication number
- CN102822802A CN102822802A CN2010800659004A CN201080065900A CN102822802A CN 102822802 A CN102822802 A CN 102822802A CN 2010800659004 A CN2010800659004 A CN 2010800659004A CN 201080065900 A CN201080065900 A CN 201080065900A CN 102822802 A CN102822802 A CN 102822802A
- Authority
- CN
- China
- Prior art keywords
- software interrupt
- interrupt requests
- request
- kernel
- software
- 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.)
- Granted
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/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4812—Task transfer initiation or dispatching by interrupt, e.g. masked
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/20—Handling requests for interconnection or transfer for access to input/output bus
- G06F13/24—Handling requests for interconnection or transfer for access to input/output bus using interrupt
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Debugging And Monitoring (AREA)
Abstract
管理程序(112)监控处理器间通信,当检测到软件中断请求时,判断检测到的软件中断请求的软件中断处理程序是否是优先级高的处理。管理程序(112)在判断为软件中断处理程序是优先级高的处理时,(5)使从属CPU(102)产生伪硬件中断请求。从属OS(122)(6)使执行中的任务B退避到就绪队列(142)的前端,(7)优先于任务B而执行软件中断处理程序。
Description
技术领域
本发明涉及控制中断处理的执行的多核处理器系统、控制程序以及控制方法。
背景技术
以往,CPU(Central Processing Unit)的中断请求能够大致分为硬件中断请求和软件中断请求的2类。硬件中断请求是从CPU的周边设备对CPU产生的中断请求。具体而言,例如为,在移动电话的动画再生过程中,利用者使用触摸面板通过触摸操作进行了快进操作的情况下,从触摸面板向CPU发出的硬件中断请求。软件中断请求是由于执行中的程序而产生的中断请求。
通过硬件中断请求,在该CPU上运行的OS使执行中的任务退避,立即执行该硬件中断请求的硬件中断处理程序(中断处理)。另外,还存在硬件中断处理程序调出软件中断的情况。
另外,在多核处理器系统中,在对主CPU产生硬件中断请求的情况下,主CPU使软件中断请求产生。此时存在接受软件中断请求的任务被分配给从属CPU的情况。在该任务被分配给从属CPU的情况下,使用处理器间中断通信,使从属CPU执行软件中断请求的软件中断处理程序(中断处理)。
非专利文献1:高橋浩和、小田逸郎、山幡為佐著“Linux カ一ネル解読室2.6”ソフトバンククリエイテイブ株式会社出版2006年11月30日p.62-63
然而,当通过处理器间中断通信而产生软件中断请求时,软件中断请求的软件中断处理程序通过在就绪队列排队而等待执行。由于在就绪队列中按等待顺序执行处理,所以存在当在就绪队列上登记多个任务时,软件中断处理程序的执行开始变缓这样的问题点。
即,软件中断处理程序从被调出到被开始执行为止,与硬件中断处理程序从被调出到被行开执始为止相比,存在延迟这样的问题点,并存在中断的响应较迟这样的问题点。
发明内容
本发明的目的在于,提供一种由于消除上述的以往技术的问题点,所以能够使优先级高的中断的响应时间高速化的多核处理器系统、控制程序以及控制方法。
根据本实施方式的一观点,提供一种多核处理器系统,其具备:使针对多核处理器中的一个内核的软件中断请求的中断处理进行等待,利用上述一个内核按等待顺序执行等待中的处理的第一执行单元;使针对上述一个内核的硬件中断请求的中断处理优先于利用上述一个内核执行中的处理而执行的第二执行单元;请求并判断上述软件中断请求是否是特定的软件中断请求的判断单元;通过上述请求判断单元判断为上述软件中断请求是上述特定的软件中断请求的情况下,不通过上述第一执行单元使上述软件中断请求的中断处理进行等待,而通过上述第二执行单元使上述软件中断请求的中断处理优先执行的执行控制单元。
根据本多核处理器系统、控制程序以及控制方法,起到能够使优先级高的中断的响应时间高速化这样的效果。
附图说明
图1是表示动画再生过程中的一个例子的说明图。
图2是表示产生了硬件中断请求的例子的说明图。
图3是表示立即执行查找处理的例子的说明图。
图4是表示多核处理器系统的硬件的框图。
图5是表示实施例1的用例表的一个例子的说明图。
图6是表示多核处理器系统的框图。
图7是表示实施例1的说明图。
图8是表示实施例1的多核处理器系统的控制处理顺序的流程图(其1)。
图9是表示实施例1的多核处理器系统的控制处理顺序的流程图(其2)。
图10是表示实施例2的用例表的一个例子的说明图。
图11是表示在实施例2中可中断的任务为执行状态的说明图。
图12是表示在实施例2中不可中断的任务为执行状态的说明图(其1)。
图13是表示在实施例2中不可中断的任务为执行状态的说明图(其2)。
图14是表示实施例2的多核处理器系统的控制处理顺序的流程图。
具体实施方式
以下参照附图,详细说明多核处理器系统、控制程序以及控制方法的优选的实施方式。其中,在本实施方式的多核处理器系统中,多核处理器是指安装有多个内核的处理器。只要是安装了多个内核的处理器即可,可以是安装了多个内核的单一处理器,也可以是并联单核处理器的处理器组。其中,在本实施方式中,为了简化说明,以并联单核处理器的处理器组为例进行说明。
图1是表示动画再生过程中的一个例子的说明图。在图1中,例举了多核处理器系统100为手机的情况。在主CPU101中播放器处理为执行中,GUI(Graphic User Interface:图形用户接口)处理被登记在就绪队列141中。另一方面,在从属CPU102中动画解码处理为执行中。
在此,就绪队列141(或者就绪队列142)如公知那样是指用于管理能够执行状态的任务的数据结构。通过提取登记在就绪队列141(或者就绪队列142)中的任务的上下文信息,能够执行任务。上下文信息是表示将程序的内部状态、程序配置在存储器上的何处的信息。
图2是表示产生了硬件中断请求的例子的说明图。在图2中,由于利用者对动画进行快进,所以从I/O(Input/Output)设备103(在图2中为液晶面板)产生硬件中断请求。当主CPU101检测到该硬件中断请求时,主OS121使播放器处理退避到就绪队列142,而执行作为硬件中断处理程序的触摸面板驱动程序。
接着,若要使主OS121从触摸面板驱动程序,基于软件中断请求来执行查找处理,则主OS121确定作为中断对象的动画解码处理被分配给了哪个CPU。
在此,确定为动画解码处理被分配给从属CPU102。由于主OS121将动画解码处理分配给从属CPU102,所以主CPU101通过处理器间中断通信来将调出查找处理的软件中断请求向从属CPU102通知。
管理程序112监控处理器间通信,检测该软件中断请求。管理程序112若检测到该软件中断请求,则判断该软件中断请求的软件中断处理程序、即查找处理是否是优先级高的处理。此外,管理程序112基于查找处理的优先级,判断是否是特定的软件中断请求。在此,管理程序112判断为查找处理是优先级高的处理。然后管理程序112使从属CPU102产生伪硬件中断请求。具体地说,将与预定的查找处理对应的寄存器值设定到从属CPU102内的与硬件中断相关的寄存器中。
图3表示立即执行查找处理的例子的说明图。若在从属CPU102内的与硬件中断相关的寄存器中设定了值,从属CPU102则确定与该设定的值对应的地址。然后,在从属CPU102上运行的从属OS122使执行中的动画解码处理退避在就绪队列142的前端,通过跳转到该确定的地址来执行查找处理。
由此,能够立即执行查找处理,能够提高与优先级高的处理相关的响应性。此外,如果查找处理是优先级低的处理,则与以往同样,从属OS122将该查找处理积存在就绪队列142中使其进行等待。
(多核处理器系统100的硬件)
图4是表示多核处理器系统100的硬件的框图。在图4中,多核处理器系统100具有:主CPU101、从属CPU102、共享存储器104、I/O设备103。另外,各部通过总线105连接。虽然在图1中例举了多核处理器系统100为手机,但不局限于此,还可以例举多核处理器系统100为手机、电子书阅读设备等便携式信息终端、个人计算机。
主CPU101和从属CPU102分别具有内核、寄存器和高速缓冲存储器。在各CPU的寄存器中具有与硬件中断相关的寄存器(以下,为“硬件中断寄存器”)。若硬件中断寄存器被设定值,则基于该设定的值来确定与中断处理相关的地址,CPU能够通过跳转到该地址而立即执行该中断处理。
各CPU中具有中断向量表,在该中断向量表中记述有寄存器的值和中断处理的地址的对应关系。在硬件中断请求中,在硬件中断寄存器中设定与该硬件中断请求对应的值。各CPU若在该CPU所具有的硬件中断寄存器中被设定了值,则各CPU从中断向量表检索设定的值,确定对应的地址。然后,该CPU跳转到确定的地址。
另外,在本实施方式中,中断向量表不仅记述有与硬件中断处理相关的地址,还记述有与软件中断处理相关的地址。然后,按每个硬件中断请求以及软件中断请求,预先决定在硬件中断寄存器中能够设定的值。
主CPU101执行管理程序111和主OS121,掌管多核处理器系统100的整体控制。主OS121具备调度程序131,该调度程序131控制将任务分配给哪个CPU,并控制主CPU101中的任务的切换。从属CPU102执行管理程序112和从属OS122。从属OS122具备调度程序132,该调度程序132控制从属CPU102中的任务的切换。
其次,管理程序111和管理程序112分别是在主CPU101和从属CPU102等硬件上直接运行的程序,是存储在该硬件内的寄存器中的程序。管理程序111能够实施直接参照主CPU101、读出主CPU101内的寄存器的信息、或者改写主CPU101内的寄存器的信息的特权指令。管理程序112能够实施直接参照从属CPU102内的寄存器、读出从属CPU102内的寄存器的信息、或改写从属CPU102内的寄存器的信息的特权指令。
I/O设备103是用户能够直接操作的设备、或用户能够经由网络操作的设备。例如,举出了键盘、能够进行触摸操作的液晶面板、鼠标等。例如,如果是键盘,则具备用于文字、数字、各种指示等输入的键,来进行数据的输入。例如,如果是能够进行触摸操作的液晶面板,则进行该数据的输入,进行文字、数字、图像等的输出。
共享存储器104是多核处理器所共享的存储器,其存储有进程表151和用例表500。具体地说,共享存储器104具备ROM(Read OnlyMemory:只读存储器)、RAM(Random Access Memory:随机存取存储器)、闪存ROM等。
例如,闪存ROM存储各OS的程序,ROM存储应用程序,RAM被用作主CPU101和从属CPU102的工作区使用。共享存储器104所存储的程序通过被加载到各CPU,来使该各CPU执行被编码的处理。
进程表151是指表示任务被分配给哪个CPU、CPU正执行哪个任务的信息。各OS在该OS启动后读出进程表151并将其预先存储在各CPU的高速缓冲存储器中。当调度程序131分配任务时,在进程表151中进行登记。当各调度程序产生任务切换时,向进程表151中登记哪个任务变为执行状态。另外,当各调度程序改写进程表151时,通过执行窥探(Snoop)处理,由此更新全部CPU的高速缓冲存储器所存储的进程表151。接着,使用图5来说明用例表500。
图5是表示实施例1的用例表500的一个例子的说明图。用例表500是按每个函数表示是否在执行中断时使处理强制执行的信息、和表示是否能够在该函数执行中进行中断的信息。例如,在FuncA被记述为“强制跳转”,在FuncB被记述为“处理程序处理”。即,若作为软件中断调出FuncA,则在多核处理器系统100中,立即执行FuncA。另一方面,若作为软件中断调出FuncB,则在多核处理器系统100中,将FuncB登记到就绪队列142。
在本实施方式中,被记述为“强制跳转”的函数表示优先级高的处理,被记述为“处理程序处理”的函数表示优先级不高的(优先级低的)处理。
作为优先级高的中断处理,例如举出了与特定的硬件中断请求连动的中断处理。例如,图3所示那样的查找处理是与触摸面板驱动程序连动的中断处理。特定的硬件中断请求是指例如由用户操作而产生的硬件中断请求。在此,用户操作例如举出了触摸面板操作、键盘触摸、鼠标操作等。
另外,用例表500预先在应用程序的设计者进行设计时被创建。由此,设计者也可以将想要提高优先级的处理作为优先级高的处理登记在用例表500中。
另外,将表示在用例表500中,中断时强制执行处理的信息被记述为“强制跳转”的函数的地址被登记在上述的中断向量表中。此外,用例表500还可以在与多核处理器系统100启动同时存储到各CPU的高速缓冲存储器中。
(多核处理器系统100)
图6是表示多核处理器系统100的框图。多核处理器系统100的各CPU包括第一执行部601、第二执行部602、请求判断部603、优先判断部604和执行控制部605。各部(第一执行部601~执行控制部605)例如,能够使各CPU执行共享存储器104所存储的程序。第一执行部601和第二执行部602是设置在各CPU上运行的OS(在本实施方式中为主OS121以及从属OS122)中的程序。请求判断部603、优先判断部604和执行控制部605是设置在各CPU上运行的管理程序(在本实施方式中为管理程序111以及管理程序112)中的程序。
第一执行部601使软件中断请求的软件中断处理程序进行等待,按等待顺序执行等待中的处理。
第二执行部602使硬件中断请求的软件中断处理程序优先于执行中的处理而执行。
请求判断部603判断软件中断请求是否是特定的软件中断请求。在本实施方式中,关于软件中断请求是否是特定的软件中断请求,判断软件中断请求的软件中断处理程序是否是优先级高的处理。
在通过请求判断部603判断为软件中断请求是特定的软件中断请求的情况下,执行控制部605不通过第一执行部601使软件中断请求的软件中断处理程序进行等待,而通过第二执行部602使之优先执行。
另外,在通过请求判断部603判断为软件中断请求是特定的软件中断请求的情况下,优先判断部604基于规定基准来判断执行中的处理是否允许优先于该执行中的处理而执行软件中断请求的软件中断处理程序。
在通过优先判断部604判断为执行中的处理未允许优先于执行中的处理而执行软件中断请求的软件中断处理程序的情况下,执行控制部605在执行中的处理结束后或任务切换时,通过第二执行部602使软件中断请求的软件中断处理程序优先执行。
基于上面记载,使用附图来详细说明实施例1以及实施例2。首先,在实施例1中,说明基于通过处理器间中断通信而调出的软件中断处理程序是否是优先级高的函数,来使该软件中断处理程序立即执行、或者使其等待。接着,在实施例2中,说明基于执行中的任务是否允许中断,来使软件中断处理程序立即执行、或者在该执行中的任务已结束或者任务切换时判断该软件中断处理程序的例子。
(实施例1)
图7是表示实施例1的说明图。首先,(1)若经由I/O设备103对主CPU101产生硬件中断的请求,则主OS121(2)使主CPU101执行中的任务A立即退避。
然后,主OS121(3)执行该硬件中断请求的硬件中断处理程序。然后,主OS121使用进程表151确定被分配了通过硬件中断处理程序调出的软件中断处理程序而接受中断的任务的CPU。在此,将接受该中断的任务设为任务B,确定从属CPU102为被分配了任务B的CPU。然后,主OS121(4)通过处理器间中断通信向从属CPU102通知软件中断请求。
管理程序112监控处理器间通信,检测该软件中断请求。管理程序112当检测到软件中断请求时,检索从用例表500检测到的软件中断请求的软件中断处理程序,判断该软件中断处理程序是否是优先级高的处理。在此,假设软件中断处理程序为优先级高的处理。
在判断为软件中断处理程序是优先级高的处理时,(5)管理程序112使从属CPU102产生伪硬件中断请求。产生伪硬件中断请求例如指表示管理程序112在从属CPU102的寄存器内的硬件中断寄存器设定与软件中断处理程序对应的值。从属CPU102使用中断向量表确定与设定的值对应的地址。然后,(6)从属OS122使执行中的任务B退避到就绪队列142的前端,(7)通过跳到确定的地址而执行软件中断处理程序。
(实施例1的多核处理器系统100的控制处理顺序)
图8以及图9是表示实施例1的多核处理器系统100的控制处理顺序的流程图。在此,以对主CPU101产生了硬件中断请求的情况为例进行说明。首先,主CPU101检测到硬件中断请求(步骤S801),在主CPU101上运行的主OS121中断执行中的任务,使之退避到就绪队列141(步骤S802)。然后,主OS121执行硬件中断请求的硬件中断处理程序(步骤S803),使用工序表151确定被分配了接受中断的任务的CPU(步骤S804)。
接着,主OS121判断确定的CPU是否为主CPU101(步骤S805),如果确定的CPU是主CPU101(步骤S805:是),则执行通常的中断处理(步骤S806)。另一方面,在判断为确定的CPU不是主CPU101的情况下(步骤S805:否),主OS121对确定的CPU实施处理器间中断通信(步骤S807)。在此,在处理器间中断通信中,向确定的CPU赋予与调出的函数相关的信息来通知软件中断请求。
另一方面,在从属CPU102上运行的管理程序112监控处理器间通信,判断是否检测到处理器间中断通信(步骤S808)。其中,管理程序112仅检测针对从属CPU102的处理器间中断通信。管理程序112在判断为未检测到处理器间中断通信的情况下(步骤S808:否),返回步骤S808。即,管理程序112常时监控处理器间通信,从而能够检测处理器间中断通信。
管理程序112在判断为检测到处理器间中断通信的情况下(步骤S808:是),使用用例表500判断软件中断请求的软件中断处理程序是否是优先级高的处理(步骤S809)。管理程序112在判断为软件中断请求的软件中断处理程序为优先级高的处理的情况下(步骤S809:是),在从属CPU102的硬件中断寄存器中设定与软件中断请求相关的值(步骤S810)。
接着,通过在硬件中断寄存器中设定值,从属CPU102检测硬件中断请求(步骤S811)。此外,实际上虽是软件中断请求,但由于从属CPU102仅检测在硬件中断寄存器设定值,所以对于是否是硬件中断请求并没有判断。在从属CPU102上运行的从属OS122中断执行中的任务使之退避到就绪队列142(步骤S812)。然后,从属OS122执行软件中断请求的软件中断处理程序(步骤S813),移至步骤S817。
另一方面,管理程序112在判断为软件中断请求的软件中断处理程序不是优先级高的处理的情况下(步骤S809:否),将软件中断请求通知给从属OS122(步骤S814)。在此,管理程序112通知软件中断请求是指,表示通知通过积存到就绪队列142而进行等待的指示。从属OS122若受理该通知,则将软件中断处理程序登记到就绪队列142(步骤S815),通过按登记到就绪队列142的顺序执行处理,来执行软件中断处理程序(步骤S816)。
接着步骤S813或者步骤S816,从属OS122判断该软件中断处理程序是否已结束(步骤S817)。从属OS122在判断为软件中断处理程序未结束的情况下(步骤S817:否),返回步骤S817。另一方面,从属OS122在判断为软件中断处理程序已结束的情况下(步骤S817:是),向主CPU101通知软件中断处理程序的结束(步骤S818)。
另外,在本实施方式中,在从属CPU102上运行的管理程序112常时监控处理器间通信,从而管理程序112检测处理器间中断通信。另外,例如,还可以将在主CPU101上运行的管理程序111实施处理器间中断通信的情况通知给在实施之前在从属CPU102上运行的管理程序112,然后,实施处理器间中断通信。由此,在从属CPU102上运行的管理程序112不用常时监视,管理程序112就能够检测处理器间中断通信。
(实施例2)
在实施例2中,说明基于执行中的任务是否允许中断,来判断立即执行优先级高的软件中断处理程序、或者在该执行中的任务结束或者产生任务的切换时执行该软件中断处理程序的例子。
在此,在实施例2中,在执行中的任务不允许中断的情况下,将表示执行中的任务是否已结束或者是否发生任务的切换的标志设为ProcessID。如果ProcessID为0,则表示任务处于执行中,如果ProcessID为1,则表示执行中的任务已结束或产生任务的切换。
图10是表示实施例2的用例表的一个例子的说明图。在用例表1000中,具有按每个函数表示是否在中断时强制执行处理的信息、和表示该函数在执行中是否能够中断的信息,而且,还具有按每个任务表示是否能够在执行中进行中断的信息。例如,FuncA被记述为“强制跳转”、“不可中断”,FuncB被记述为“处理程序处理”、“可中断”。
而且,例如任务A被记述为“-”、“可中断”,任务B被记述为“-”、“可中断”,任务C被记述为“-”、“不可中断”。其中,在本实施方式中,由于作为中断处理程序仅调出函数,因此在任务A~任务B中没有记述表示在中断时是否强制执行处理。
例如,如果在任务A执行中产生软件中断,与任务A相关的表示执行中是否能够中断的信息为“可中断”,因此使任务A退避,调出并执行软件中断处理程序。另一方面,与任务C相关的表示执行中是否能够中断的信息为“不可中断”。在任务C执行中产生了软件中断的情况下,从任务C的执行结束起或任务的切换产生时,调出并执行软件中断处理程序。其中,在实施例2中,在共享存储器104存储有用例表1000。用例表1000可以在多核处理器系统100启动的同时被存储在各CPU的高速缓冲存储器中。
图11是表示在实施例2中可中断的任务为执行状态的说明图。在图11中,将接受硬件中断处理程序所调出的软件中断的任务设为任务B。首先,(1)若针对主CPU101产生硬件中断请求,则主OS121(2)将任务A中断并使之退避到就绪队列141,(3)执行硬件中断请求的硬件中断处理程序。然后,主OS121确定通过硬件中断处理程序所调出的软件中断处理程序而中断的任务B被分配给了哪一个CPU。在此,任务B在从属CPU102中处于执行中,因此确定了从属CPU102。
主OS121(4)通过处理器间中断通信向从属CPU102通知软件中断请求。管理程序112监控处理器间通信,检测对从属CPU102的该处理器间中断通信。然后,管理程序112使用用例表1000判断软件中断请求的软件中断处理程序是否是优先级高的处理。在此,设软件中断请求的软件中断处理程序为优先级高的处理。
接着,管理程序112确定执行中的任务,使用用例表1000判断该执行中的任务是否允许优先于该执行中的任务而执行中断处理。在此,判断为任务B是能够中断的任务。
若判断为任务B是能够中断的任务,则管理程序112(5)对从属CPU102产生伪硬件中断请求。即,在硬件中断寄存器设定与软件中断请求对应的值。然后,从属CPU102通过检测到在硬件中断寄存器设定值,来检测硬件中断请求,从属OS122(6)使执行中的任务B退避到就绪队列142,(7)执行软件中断请求的软件中断处理程序。
图12是表示在实施例2中表示不可中断的任务为执行状态的说明图(其1)。在图12中,将接受硬件中断处理程序所调出的软件中断的任务设为任务C。由于图12的(1)~(4)与图11的(1)~(4)相同,故省略他们的说明。
管理程序112监控处理器间通信,检测对从属CPU102的该处理器间中断通信。然后,管理程序112确定执行中的任务,使用用例表1000来判断该执行中的任务C是否是能够中断的任务。在此,判断为任务C是不可中断的任务。然后,管理程序112(5)将ProcessID设定为0。从属OS122使用进程表151判断任务C是否已结束或是否产生任务的切换。
图13是表示在实施例2中的不可中断的任务为执行状态的说明图(其2)。(6)若任务C结束或产生任务的切换,则从属OS122检测任务C的结束,(7)设定为ProcessID=1。管理程序112(8)检测出ProcessID从0变化到1,从而使从属CPU102产生伪硬件中断请求。然后,若产生该伪硬件中断请求,则从属OS122(9)执行软件中断处理程序。
(实施例2的多核处理器系统100的控制处理顺序)
图14是表示实施例2的多核处理器系统100的控制处理顺序的流程图。对于主CPU101的处理,由于与图8所示的实施例1的多核处理器系统100的控制处理顺序相同,所以未图示并省略说明。在此,说明从属CPU102从主CPU101接受到处理器间中断通信的情况下的处理。其中,对于主CPU101的处理,设为步骤S1401~步骤S1407(分别与图8的步骤S801~步骤S807相同)。
首先,在从属CPU102上运行的管理程序112监控处理器间通信,判断是否检测到处理器间中断通信(步骤S1408)。管理程序112在判断为未检测到处理器间中断通信的情况下(步骤S1408:否),返回步骤S1408。即,管理程序112常时监控处理器间通信,从而能够检测处理器间中断通信。
另一方面,管理程序112在判断为检测到处理器间中断通信的情况下(步骤S1408:是),使用用例表1000判断软件中断请求的软件中断处理程序是否是优先级高的处理(步骤S1409)。管理程序112在判断为软件中断处理程序是优先级高的处理的情况下(步骤S1409:是),判断执行中的任务是否是能够中断的工序(步骤S1410)。
管理程序112在判断为执行中的任务不是能够中断的工序的情况下(步骤S1410:否),设为ProcesssID=0(步骤S1411),从属OS122判断是否执行中的任务已结束、或者是否发生任务的切换(步骤S1417)。从属OS122在判断为该任务处于执行中的情况下(步骤S1417:否),返回步骤S1413。另一方面,从属OS122在判断为执行中的任务已结束、或者产生了任务的切换的情况下(步骤S1417:是),设为ProcessID=1(步骤S1418)。
另外,接着步骤S1411,管理程序112判断ProcessID是否为1(步骤S1412),在判断为ProcessID不为1的情况下(步骤S1412:否),返回步骤S1412。另一方面,在判断为ProcessID为1的情况下(步骤S1412:是),在硬件中断寄存器中设定与软件中断请求相关的值(步骤S1413)。
从属CPU102检测硬件中断请求(步骤S1414),从属OS122中断执行中的任务使之退避到就绪队列142(步骤S1415)。接着,从属OS122执行软件中断处理程序(步骤S1416),移至步骤S1420。
另一方面,在步骤S1409中,管理程序112在判断为软件中断处理程序不是优先级高的处理的情况下(步骤S1409:否),向从属OS122通知软件中断请求(步骤S1419)。从属OS122通过将软件中断处理程序积存到就绪队列142中,从而使软件中断处理程序进行等待(步骤S1420),按等待顺序执行等待中的处理,来执行软件中断处理程序(步骤S1421)。
接着步骤S1416或者步骤S1421,从属OS122判断软件中断处理程序是否已结束(步骤S1422)。从属OS122判断为软件中断处理程序未结束的情况下(步骤S1422:否),返回步骤S1420。另一方面,从属OS122判断为软件中断处理程序已结束的情况下(步骤S1422:是),向主CPU101通知结束(步骤S1423)。
如以上说明的那样,根据多核处理器系统、控制程序以及控制方法,不使特定的软件中断请求的中断处理进行等待,而优先于执行中的处理来执行,从而能够使中断的响应时间高速化。
另外,通过特定的软件中断请求是与特定的硬件中断请求连动的软件中断请求,从而能够使从外部设备输出的中断的响应时间高速化。
另外,通过特定的硬件中断请求是基于用户操作的硬件中断请求,从而能够使基于用户操作的中断的响应时间高速化,用户能够感觉不到响应时间的压力而进行操作。
另外,在执行中的处理不允许优先于该执行中的处理而执行软件中断请求的中断处理的情况下,在执行中的处理结束后或产生任务的切换时执行该中断处理。由此,不停止优先级高的执行中的处理,就能够使中断的响应时间高速化。
附图标记说明
100多核处理器系统;601第一执行部;602第二执行部;603请求判断部;604优先判断部;605执行控制部。
Claims (6)
1.一种多核处理器系统,其特征在于,具有:
第一执行单元,其使针对多核处理器中的一个内核的软件中断请求的中断处理进行等待,利用所述一个内核按等待顺序执行等待中的处理;
第二执行单元,其使针对所述一个内核的硬件中断请求的中断处理优先于利用所述一个内核执行中的处理而执行;
请求判断单元,其判断所述软件中断请求是否是特定的软件中断请求;
执行控制单元,在通过所述请求判断单元判断为所述软件中断请求是所述特定的软件中断请求的情况下,该执行控制单元不通过所述第一执行单元使所述软件中断请求的中断处理进行等待,而通过所述第二执行单元使所述软件中断请求的中断处理优先执行。
2.根据权利要求1所述的多核处理器系统,其特征在于,
所述特定的软件中断请求是与特定的硬件中断请求连动的软件中断请求。
3.根据权利要求2所述的多核处理器系统,其特征在于,
所述特定的硬件中断请求是由用户操作而产生的硬件中断请求。
4.根据权利要求1~3中任一项所述的多核处理器系统,其特征在于,
该多核处理器系统具备优先判断单元,
在通过所述请求判断单元判断为所述软件中断请求是所述特定的软件中断请求的情况下,该优先判断单元基于特定的基准来判断所述执行中的处理是否允许优先于该执行中的处理而执行所述软件中断请求的中断处理,
在通过所述优先判断单元判断为所述执行中的处理不允许优先于所述执行中的处理而执行所述软件中断请求的中断处理的情况下,在由所述一个内核执行中的处理结束后或者进行处理的切换时,所述执行控制单元通过所述第二执行单元使所述软件中断请求的中断处理优先执行。
5.一种控制程序,其特征在于,使具有第一执行工序和第二执行工序的一个内核执行请求判断工序和执行控制工序,其中
该第一执行工序,使针对多核处理器中的一个内核的软件中断请求的中断处理进行等待,利用所述一个内核按等待顺序执行等待中的处理;该第二执行工序,使针对所述一个内核的硬件中断请求的中断处理优先于利用所述一个内核执行中的处理而执行;
所述请求判断工序,判断所述软件中断请求是否是特定的软件中断请求;
所述执行控制工序,在通过所述请求判断工序判断为所述软件中断请求是所述特定的软件中断请求的情况下,不通过所述第一执行工序使所述软件中断请求的中断处理进行等待,而通过所述第二执行工序使所述软件中断请求的中断处理优先执行。
6.一种控制方法,其特征在于,
该控制方法使具有第一执行工序和第二执行工序的一个内核执行判断工序和执行控制工序,其中,
该第一执行工序中,使针对多核处理器中的一个内核的软件中断请求的中断处理进行等待,由所述一个内核按等待顺序执行等待中的处理;该第二执行工序中,使针对所述一个内核的硬件中断请求的中断处理优先于利用所述一个内核执行中的处理而执行,
所述判断工序中,请求判断所述软件中断请求方式是否是特定的软件中断请求;
所述执行控制工序中,在通过所述请求判断工序判断为所述软件中断请求是所述特定的软件中断请求的情况下,不通过所述第一执行工序使所述软件中断请求的中断处理进行等待,而通过所述第二执行工序优先使所述软件中断请求的中断处理优先执行。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/JP2010/055711 WO2011121730A1 (ja) | 2010-03-30 | 2010-03-30 | マルチコアプロセッサシステム、制御プログラム、および制御方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102822802A true CN102822802A (zh) | 2012-12-12 |
CN102822802B CN102822802B (zh) | 2016-08-03 |
Family
ID=44711520
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201080065900.4A Expired - Fee Related CN102822802B (zh) | 2010-03-30 | 2010-03-30 | 多核处理器系统以及控制方法 |
Country Status (4)
Country | Link |
---|---|
US (1) | US9092255B2 (zh) |
JP (1) | JP5673672B2 (zh) |
CN (1) | CN102822802B (zh) |
WO (1) | WO2011121730A1 (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103559085A (zh) * | 2013-10-21 | 2014-02-05 | 福建升腾资讯有限公司 | 一种嵌入式系统中进行中断以及临界事件管理操作的方法 |
CN104156263A (zh) * | 2013-05-14 | 2014-11-19 | 国际商业机器公司 | 芯片部件管理任务中断方法、芯片及包括所述芯片的组件 |
CN109074701A (zh) * | 2016-03-18 | 2018-12-21 | 捷德货币技术有限责任公司 | 用于评估有价文件的传感器数据的装置和方法 |
CN109800073A (zh) * | 2019-01-28 | 2019-05-24 | Oppo广东移动通信有限公司 | 实时进程的调度方法、装置、终端及存储介质 |
Families Citing this family (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP2687969A3 (en) * | 2012-07-16 | 2015-11-11 | Samsung Electronics Co., Ltd | Electronic apparatus and control method of the same |
JP6190471B2 (ja) * | 2013-12-27 | 2017-08-30 | 株式会社日立製作所 | パーティション実行制御装置、パーティション実行制御方法及び計算機に読み込み可能な記憶媒体 |
US9661339B2 (en) * | 2014-01-21 | 2017-05-23 | Intel Corporation | Multi-core architecture for low latency video decoder |
FR3023047B1 (fr) | 2014-06-27 | 2016-06-24 | Continental Automotive France | Procede de gestion de messages de panne d'un vehicule automobile |
US10083134B2 (en) * | 2015-11-28 | 2018-09-25 | International Business Machines Corporation | Configurable processor interrupts for allowing an application to independently handle interrupts |
US10747565B2 (en) * | 2017-04-18 | 2020-08-18 | Amazon Technologies, Inc. | Virtualization of control and status signals |
US10692519B1 (en) * | 2019-03-04 | 2020-06-23 | Microsoft Tchnology Licensing, LLC | Adjustable seek energy settings in storage device systems |
US11726823B2 (en) | 2020-02-06 | 2023-08-15 | Samsung Electronics Co., Ltd. | Electronic device having heterogeneous processors and method of processing task using the heterogeneous processors |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH11272632A (ja) * | 1998-03-19 | 1999-10-08 | Sharp Corp | マルチプロセッサシステム |
US6108744A (en) * | 1998-04-16 | 2000-08-22 | Sun Microsystems, Inc. | Software interrupt mechanism |
JP2003044291A (ja) * | 2001-07-30 | 2003-02-14 | Mitsubishi Electric Corp | リアルタイムオペレーティングシステムシミュレータ及びリアルタイムオペレーティングシステムシミュレーション方法及びプログラム及びプログラムを記録するコンピュータ読み取り可能な記録媒体 |
CN1811718A (zh) * | 2005-01-28 | 2006-08-02 | 精工爱普生株式会社 | 处理器及信息处理方法 |
Family Cites Families (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6845419B1 (en) | 2000-01-24 | 2005-01-18 | Freescale Semiconductor, Inc. | Flexible interrupt controller that includes an interrupt force register |
US7080178B2 (en) * | 2004-02-09 | 2006-07-18 | Arm Limited | Interrupt pre-emption and ordering within a data processing system |
US7206884B2 (en) * | 2004-02-11 | 2007-04-17 | Arm Limited | Interrupt priority control within a nested interrupt system |
JP4559958B2 (ja) * | 2005-11-22 | 2010-10-13 | 株式会社日立国際電気 | マルチコアプロセッサにおけるマルチコア制御方法 |
JP4247228B2 (ja) * | 2005-11-28 | 2009-04-02 | 株式会社日立製作所 | ヘテロマルチプロセッサシステムおよびそのos構成方法 |
GB2454885B (en) * | 2007-11-21 | 2012-06-06 | Advanced Risc Mach Ltd | Interrupt jitter suppression |
JP2009301116A (ja) * | 2008-06-10 | 2009-12-24 | Yokogawa Electric Corp | 割り込み装置及びこれを備えた割り込みシステム |
JP5353227B2 (ja) | 2008-12-24 | 2013-11-27 | 富士通株式会社 | 性能測定プログラム及び性能測定方法並びに性能測定機能を有する情報処理装置。 |
-
2010
- 2010-03-30 WO PCT/JP2010/055711 patent/WO2011121730A1/ja active Application Filing
- 2010-03-30 JP JP2012507955A patent/JP5673672B2/ja not_active Expired - Fee Related
- 2010-03-30 CN CN201080065900.4A patent/CN102822802B/zh not_active Expired - Fee Related
-
2012
- 2012-09-27 US US13/628,709 patent/US9092255B2/en not_active Expired - Fee Related
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH11272632A (ja) * | 1998-03-19 | 1999-10-08 | Sharp Corp | マルチプロセッサシステム |
US6108744A (en) * | 1998-04-16 | 2000-08-22 | Sun Microsystems, Inc. | Software interrupt mechanism |
JP2003044291A (ja) * | 2001-07-30 | 2003-02-14 | Mitsubishi Electric Corp | リアルタイムオペレーティングシステムシミュレータ及びリアルタイムオペレーティングシステムシミュレーション方法及びプログラム及びプログラムを記録するコンピュータ読み取り可能な記録媒体 |
CN1811718A (zh) * | 2005-01-28 | 2006-08-02 | 精工爱普生株式会社 | 处理器及信息处理方法 |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104156263A (zh) * | 2013-05-14 | 2014-11-19 | 国际商业机器公司 | 芯片部件管理任务中断方法、芯片及包括所述芯片的组件 |
CN104156263B (zh) * | 2013-05-14 | 2017-06-16 | 国际商业机器公司 | 芯片部件管理任务中断方法、芯片及包括所述芯片的组件 |
CN103559085A (zh) * | 2013-10-21 | 2014-02-05 | 福建升腾资讯有限公司 | 一种嵌入式系统中进行中断以及临界事件管理操作的方法 |
CN103559085B (zh) * | 2013-10-21 | 2016-10-05 | 福建星网锐捷通讯股份有限公司 | 一种嵌入式系统中进行中断以及临界事件管理操作的方法 |
CN109074701A (zh) * | 2016-03-18 | 2018-12-21 | 捷德货币技术有限责任公司 | 用于评估有价文件的传感器数据的装置和方法 |
CN109800073A (zh) * | 2019-01-28 | 2019-05-24 | Oppo广东移动通信有限公司 | 实时进程的调度方法、装置、终端及存储介质 |
CN109800073B (zh) * | 2019-01-28 | 2021-06-18 | Oppo广东移动通信有限公司 | 实时进程的调度方法、装置、终端及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
US20130024589A1 (en) | 2013-01-24 |
WO2011121730A1 (ja) | 2011-10-06 |
JPWO2011121730A1 (ja) | 2013-07-04 |
CN102822802B (zh) | 2016-08-03 |
US20150081942A9 (en) | 2015-03-19 |
JP5673672B2 (ja) | 2015-02-18 |
US9092255B2 (en) | 2015-07-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102822802A (zh) | 多核处理器系统、控制程序以及控制方法 | |
US10740152B2 (en) | Technologies for dynamic acceleration of general-purpose code using binary translation targeted to hardware accelerators with runtime execution offload | |
JP6437579B2 (ja) | 仮想化環境におけるインテリジェントgpuスケジューリング | |
EP2908246B1 (en) | Method, device and system for inter-process communication of many-core processor | |
JP5710434B2 (ja) | アシスト・ハードウエア・スレッドの拡張可能な状態追跡のための方法、情報処理システム、およびプロセッサ | |
CN102067083A (zh) | 对虚拟化环境中的中断结束消息的懒惰处理 | |
US9715403B2 (en) | Optimized extended context management for virtual machines | |
CN101213519A (zh) | 多处理器系统以及用于使计算机执行多处理器系统的中断控制方法的程序 | |
US20150193249A1 (en) | Idle processor management in virtualized systems via paravirtualization | |
US20240211256A1 (en) | Partition and isolation of a processing-in-memory (pim) device | |
JP2021528730A (ja) | メタデータを使用したニューラルネットワークにおける日和見的な負荷分散のための方法及びシステム | |
CN107066331B (zh) | 一种基于TrustZone的资源分配方法及设备 | |
CN103970511A (zh) | 能够支持多模式的处理器及其多模式支持方法 | |
US11249777B2 (en) | Virtual machine context management | |
US11061730B2 (en) | Efficient scheduling for hyper-threaded CPUs using memory monitoring | |
US11182311B2 (en) | Virtualization support device, control method of virtualization support device, and calculation system | |
US20210208928A1 (en) | Interrupt servicing in userspace | |
CN109656758B (zh) | 用于异构双处理器系统芯片的调试方法及系统 | |
US20160320984A1 (en) | Information processing device, parallel processing program and method for accessing shared memory | |
US10089265B2 (en) | Methods and systems for handling interrupt requests | |
US9619277B2 (en) | Computer with plurality of processors sharing process queue, and process dispatch processing method | |
CN100492299C (zh) | 一种嵌入式软件开发的方法及系统 | |
US20080072009A1 (en) | Apparatus and method for handling interrupt disabled section and page pinning apparatus and method | |
CN112559136A (zh) | 一种计算机中断投递的方法及装置 | |
US9952895B2 (en) | Implementing pseudo non-masking interrupts behavior using a priority interrupt controller |
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 | ||
CF01 | Termination of patent right due to non-payment of annual fee | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20160803 Termination date: 20180330 |