CN101213519A - 多处理器系统以及用于使计算机执行多处理器系统的中断控制方法的程序 - Google Patents

多处理器系统以及用于使计算机执行多处理器系统的中断控制方法的程序 Download PDF

Info

Publication number
CN101213519A
CN101213519A CNA200780000064XA CN200780000064A CN101213519A CN 101213519 A CN101213519 A CN 101213519A CN A200780000064X A CNA200780000064X A CN A200780000064XA CN 200780000064 A CN200780000064 A CN 200780000064A CN 101213519 A CN101213519 A CN 101213519A
Authority
CN
China
Prior art keywords
semaphore
request
processed
units device
mentioned
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
Application number
CNA200780000064XA
Other languages
English (en)
Inventor
轰晃成
田中克哉
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Seiko Epson Corp
Original Assignee
Seiko Epson Corp
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Seiko Epson Corp filed Critical Seiko Epson Corp
Publication of CN101213519A publication Critical patent/CN101213519A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/52Program synchronisation; Mutual exclusion, e.g. by means of semaphores
    • G06F9/526Mutual exclusion algorithms
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/36Handling requests for interconnection or transfer for access to common bus or bus system
    • G06F13/368Handling requests for interconnection or transfer for access to common bus or bus system with decentralised access control
    • G06F13/376Handling requests for interconnection or transfer for access to common bus or bus system with decentralised access control using a contention resolving method, e.g. collision detection, collision avoidance
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Multi Processors (AREA)

Abstract

具备多个单位处理器的多处理器系统,具有可识别地设定与资源对应的多个旗语的HW旗语部(13),当单位处理器(P0)对HW旗语部(13)进行了旗语的取得请求时,判断该请求是否为请求由单位处理器(P1)取得的旗语即取得中旗语的请求,当判断该请求为请求取得中旗语的请求时,使单位处理器(P0)的请求等待,另一方面,当判定请求为请求取得中旗语以外的旗语的请求时,程序控制部(105)允许所请求的旗语的取得。

Description

多处理器系统以及用于使计算机执行多处理器系统的中断控制方法的程序
技术领域
本发明涉及多处理器系统以及用于使计算机执行多处理器系统的中断控制方法的程序,尤其涉及一边受理来自外部设备的中断处理、一边并行执行程序处理的多处理器系统以及用于使计算机执行多处理器系统的中断控制方法的程序。
背景技术
使用于特定装置的处理器被称作嵌入式系统(built in system)。近年来,在嵌入式系统中采用多处理器或多线程处理器的情况也较多。
多处理器的采用有利于装置的低时钟化或响应性的提高。另外,尤其在便携式装置中,由于还有利于减少耗电而希望采用多处理器。
但是,在判断新开发的处理器是否正常工作时需要花费时间和成本。因此,在软件的领域上,所使用的结果只要是有实际成绩的处理器能够挪用(divert),就希望挪用它。因而,在对嵌入式系统进行多处理器化时,需要挪用以前所使用的单处理器的软件。
作为将单处理器挪用到多处理器的现有技术,例如有专利文献1。专利文献1的发明是将基于μITRON(注册商标)的单处理器用的操作系统(OS:Operating System)转用到多处理器的技术。
专利文献1:特开平8-297581号公报
但是,在单处理器中,在处理器以规定单位(任务(task))执行程序期间,在任务侧将处理器设定为中断禁止。另外,在单处理器中,有时在中断级别较低的中断处理中禁止进行处理的执行中的中断。再有,在单处理器中,当对调用OS的服务调用进行发布时,需要在服务调用的发布到OS的释放之前的整个期间内禁止中断处理。
在将上述的规格挪用到多处理器时,尽管多处理器具有多个处理器部,还是无法并行执行中断处理和任务处理。
另外,与优先级无关地发生中断处理处于等待状态的期间,因此存在程序的处理效率降低的缺点。
图11是用于对中断处理处于等待状态的现有技术进行说明的图。在低优先级的任务的执行中,为了防止该任务因更高优先级的任务或中断处理而导致中断的情况,将处理器设定为禁止中断状态。结果,后面的任务或中断处理不会起动而等待,直到低优先级的任务结束为止。
发明内容
本发明是鉴于上述问题而提出的,其目的在于提供一种在多处理器系统中能够进行任务和中断处理的并行处理,另外能够缩短任务等的等待时间,进而并行处理的处理效率高的多处理器系统以及用于使计算机执行多处理器系统的中断控制方法的程序。
为了解决以上的课题,本发明的多处理器系统,具备多个单位处理器,该多处理器系统具备:旗语设定单元,其将表示对资源竞争优先的权利的旗语与多个资源每一个建立对应而可识别地进行设定;旗语请求判断单元,当上述单位处理器中的第一单位处理器进行了在上述旗语设定单元中所设定的旗语的取得请求时,判断该请求是否为请求由第二单位处理器取得的旗语即取得中的旗语的请求;和排他控制单元,当由上述旗语请求判断单元判断上述请求为请求取得中旗语的请求时,使第一单位处理器的请求等待,另一方面,当由上述旗语请求判断单元判断上述请求为请求取得中旗语以外的旗语的请求时,允许所请求的旗语的取得。
另外,本发明的多处理器系统,其特征在于,具备中断禁止单元,该中断禁止单元禁止对允许取得旗语的第一单位处理器的基于分发的任务切换、从外部请求的中断处理、由其他单位处理器所请求的中断处理的至少一个。
另外,本发明的多处理器系统,其特征在于,单位处理器为了对在多处理器内部所发生的任务和在外部所发生的句柄进行处理而请求旗语的取得,上述排他控制单元在用于任务处理的旗语取得请求的彼此之间、用于任务处理的旗语取得请求与用于句柄处理的旗语取得请求之间、用于句柄处理的旗语取得请求的彼此之间,等待或允许旗语的取得。
另外,本发明的多处理器系统,其特征在于,当上述排他控制单元允许了由上述第一单位处理器所请求的旗语的取得时,对上述第一单位处理器进行自旋锁。
另外,本发明的多处理器系统,其特征在于,上述旗语设定单元通过对多个旗语的每一个添加识别信息而可识别地进行设定,并且对多个旗语的至少一部分的旗语添加公共的识别信息,对添加有公共的该识别信息的多个旗语的每一个设定管理区域,上述旗语请求判断单元根据识别信息,按各管理区域判断第一单位处理器进行取得请求的旗语是否为由第二单位处理器取得的取得中旗语。
另外,使计算机执行本发明的多处理器系统的中断控制方法的程序,使计算机执行适用于具备多个单位处理器的多处理器系统的多处理器系统的中断控制方法,其包括:旗语请求判断步骤,当上述单位处理器中的第一单位处理器进行了可识别地设定的旗语的取得请求时,判断该请求是否为请求由第二单位处理器取得的旗语即取得中旗语的请求;排他控制步骤,在上述旗语请求判断步骤中,当判断上述请求为请求取得中旗语的请求时,使第一单位处理器的请求等待,另一方面,当判断上述请求为请求取得中旗语以外的旗语的请求时,允许所请求的旗语的取得;和中断禁止步骤,将在上述排他控制步骤中允许取得旗语的单位处理器设定为中断禁止。
附图说明
图1是表示一般的多处理器系统中的单位处理器的结合的例子的图。
图2是表示适用了本发明的一实施方式的多处理器的便携式电话的功能结构的框图。
图3是用于对本发明的一实施方式的多处理器进行说明的图。
图4是用于对本实施方式的多处理器系统的中断控制方法进行说明的流程图。
图5是用于对图4的流程图所示的HW旗语(semaphore)的取得成功与否进行说明的图。
图6是用于对由本发明的一实施方式的程序控制部而实现的HW旗语的取得处理进行说明的流程图。
图7是用于对由图6所示的流程图而实现的并行工作进行说明的图。
图8是用于对本发明的一实施方式的程序控制部释放HW旗语的处理进行说明的流程图。
图9是用于对本发明的一实施方式的HW旗语部13释放HW旗语的处理进行说明的流程图。
图10是用于对本发明的一实施方式的HW旗语释放进行说明的图。
图11是用于对中断处理处于待机状态的现有技术进行说明的图。
符号说明:11-中断控制部;12-存储器控制部;13-硬件旗语部;30-存储器;105-程序控制部;106-驱逐禁止标志(expelling prohibitingflag);230-PC;305-PSR;P0、P1、P2、P3-单位处理器。
具体实施方式
以下,参照附图,说明本发明所涉及的多处理器系统以及用于使计算机执行多处理器系统的中断控制方法的程序的一实施方式。
本实施方式将本实施方式的多处理器系统构成为适用于便携式电话的嵌入式系统。多处理器系统结合多个处理器(单位处理器)而构成。图1表示一般多处理器系统中的单位处理器的结合的例子。
图1(a)、(b)所示的多处理器均为被称作对称型多处理器(SMP:symmetric multi-processor)的结构,构成为将多个单位处理器Pu以共享存储器的方式来结合。(a)所示的结构被称作多处理器。另外,(b)所示的结构被称作多线程处理器。多线程处理器在与多处理器相比共享预算器的这一点上来讲单位处理器Pu更密切地结合。
在本实施方式中,举出将多处理器系统构成为多处理器的例子,进行说明。此外,本实施方式也可构成为多处理器、多线程处理器的任一个。
图2是表示适用了本发明的一实施方式的多处理器系统的便携式电话1的功能结构的框图。在图2中便携式电话1包括CPU(Central ProcessingUnit)10、闪速ROM(flash ROM)20、存储器30、缓冲器(buffer)40、无线部50、IrDA(Infrared Data 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,与CPU10直接连接。
CPU10,一边并行处理多个任务、一边控制便携式电话1整体,并且根据从键操作部100所输入的各种指示信号,读出并执行存储器30所存储的操作系统程序(OS:Operating System)或各种应用程序,根据从无线部50、音频部70或相机部120等的外围芯片所输入的中断信号来执行中断句柄(handler)。此外,OS是与多处理器对应的OS。
另外,CPU10将各种处理结果保存在闪速ROM20或存储器30。
图3是用于对在图2中表示为CPU10的本实施方式的多处理器进行说明的图。本实施方式的多处理器是对多个单位处理器P0、P1、P2、P3进行组合后,使多个上述单位处理器在多个操作系统下进行工作的多处理器。如图3所示,多处理器包括多个单位处理器P0~P3、中断控制部11、存储器控制部12、硬件旗语(以下HW旗语)部13。
HW旗语部13为设定HW旗语的结构,该HW旗语是由哪一个单位处理器优先执行进行竞争的处理(在本实施方式中占用硬件资源的处理)的权利。在本实施方式中,在HW旗语部13可识别地设定有与硬件资源对应的多个HW旗语。为了识别,对多个HW旗语的每一个添加识别信息(ID)。请求HW旗语的服务调用是通过指定HW旗语的ID而进行的。
只有通过该服务调用来可取得HW旗语的单位处理器,才能够使用与该HW旗语对应的硬件资源来执行处理。另外,在本实施方式中,在必要期间内禁止对可取得HW旗语的单位处理器的中断。
HW旗语部13,与后面叙述的程序控制部105协作,当单位处理器中的第一单位处理器(例如单位处理器P0)进行了在HW旗语部13中所设定的旗语的取得请求时,判断该请求是否为请求由第二单位处理器(例如单位处理器P1)所取得的旗语的请求(取得中的旗语)。
另外,程序控制部105,当由HW旗语部13判断旗语的取得请求为请求取得中的旗语的请求时,使单位处理器P0的请求等待。另一方面,当判断该请求为请求取得中的旗语以外的旗语的请求时,允许所请求的旗语的取得。再有,将允许取得旗语的单位处理器P0设定为中断禁止。
在以上的结构中,HW旗语部13相当于旗语设定单元,HW旗语部13和程序控制部105相当于旗语请求判断单元、排他控制单元、中断控制单元。
程序管理部105根据ID按每管理区域来判断所请求的HW旗语是否已由其他单位处理器所使用。这样,可以使用一个HW旗语对多个单位处理器进行排他控制。
另外,在本实施方式中,在每次赋予ID时,HW旗语部13对多个HW旗语的至少一部分旗语添加公共ID。另外,对添加有公共ID的多个HW旗语的每一个设定管理区域。而且,程序管理部105由于如上所述那样按每管理区域来判断所请求的HW旗语是否已经由其他单位处理器所使用,因此即使在硬件资源少的情况下,也能够控制很多旗语,并且对单位处理器进行排他控制。
即,在本实施方式中,定义HW旗语0~HW旗语7总共8个HW旗语,并且可设定255个ID。因此,HW旗语0~6各自与ID一一对应,HW旗语7与8~255的ID相对应。而且,例如在存储器30中设置与8~255的ID对应的管理区域。
另外,单位处理器P0~P3为了处理在多处理器的内部所发生的任务和在外部所发生的句柄,而请求旗语的取得。中断控制部11和程序控制部105,在用于任务处理的旗语取得请求的彼此之间、或者在用于任务处理的旗语取得请求与用于句柄处理的旗语取得请求之间,进而在用于句柄处理的旗语取得请求的彼此之间,等待或允许旗语的取得。
根据这种结构,本实施方式的多处理器可对任务处理的彼此、任务处理与基于外部中断的处理、基于外部中断的处理的彼此进行并行处理,并且可根据需要进行排他控制。
即,HW旗语部13具有如下功能:在由单位处理器P0~P3发出了旗语取得请求时,如果单位处理器P0~P3所指定的HW旗语处于已被获取的状态,则针对新请求通知所指定的HW旗语的获取失败;另一方面,如果在此之前HW旗语没有处于被获取的状态,则向单位处理器返回成功获取所指定的HW旗语的通知。
这种HW旗语能够防止多个单位处理器同时使用同一硬件资源的情况。因此,能够防止因由OS所使用的存储器30的规定区域同时被访问而导致处理中断等的不良情况。
另外,本实施方式的处理器具备作为单位处理器P0~P3的公共区域的存储器30和控制存储器30的存储器控制部12。在本实施方式中,在存储器30中保存使硬件资源与HW旗语的ID相对应的信息。
接着,对单位处理器P0~P3的内部结构进行说明。此外,由于单位处理器P0~P3同样地构成,因此只对单位处理器P0的内部结构进行说明,来取代其他单位处理器的说明。
单位处理器P0包括取出(fetch)部101、解码部102、ALU(Arithmeticand Logical Unit)103、寄存器文档104、程序控制部105。取出部101根据后面叙述的程序控制部105的程序计数器所示的存储器地址读出指令码,并输出到解码部102。
解码部102对由取出部101所输入的指令码进行解码,并将解码结果(指令内容以及源寄存器、目的地寄存器的地址等)输出到ALU103。
ALU103根据由解码部102所输入的解码结果,进行规定的运算,并将运算结果写入寄存器文档104、或者将分支转移指令等的运算结果即分支转移(branch)目的地的地址输出到程序控制部105。
寄存器文档104是对由读取指令从存储器30所读出的数据或作为ALU103的运算结果的数据进行存储的寄存器组。如后面叙述那样寄存器文档104包括通用寄存器组和特殊寄存器组,特殊寄存器组是写入本实施方式的引导处理用的地址的区域。
程序控制部105控制单位处理器P0整体,包括:状态寄存器(PSR)305,其存储单位处理器P0的状态(例如,中断的可否状态、单位处理器P0中的溢出的发生状态等);和程序计数器(PC)230,其对保存有单位处理器P0下一次要执行的指令的存储器地址进行存储。而且,程序控制部105在单位处理器P0向中断处理转移的时刻,将PSR305的值变更为中断处理的禁止状态,或者在执行分支转移指令时,将程序计数器的值变更为分支转移目的地的地址。
另外,程序控制部105在由执行中的任务而输出HW旗语的取得请求时,首先收取HW旗语的取得结果,在状态寄存器中的表示HW旗语的取得结果的区域中,对表示成功取得HW旗语的标志进行更新。另一方面,当旗语取得失败时,对表示HW旗语的取得失败的标志进行更新,并暂时停止HW旗语的取得后离开等待状态。
再有,程序控制部105具备驱逐禁止标志106。驱逐禁止标志106是用于禁止在自单位处理器中发生任务的切换或外部中断,任务从单位处理器被驱逐的情况的机构。通过将驱逐禁止标志106设定为1,由此防止在当前单位处理器中的任务或中断处理切换到其他任务或中断处理的情况。
将禁止驱逐单位处理器中的任务的状态称作锁定状态,在本实施方式中利用自旋锁(spin lock)来实现锁定状态。
自旋锁是指,当单位处理器之间使用相同资源(在本实施方式中为硬件资源)时,通过等待该资源的释放而进行忙碌等待(busy wait)的方法。与利用了单位处理器之间的通信的排他控制相比其优点在于,用于单位处理器的彼此同步的开销少。自旋锁是适合于利用资源的排他区间短的情况的方式。
中断控制部11在从无线部50等的外围芯片输入了外部中断的中断信号时,在调停中断信号的基础上,将规定的中断信号输出到在单位处理器P0~P3中所指定的单位处理器。存储器控制部12配置在CPU10与存储器30之间,在由CPU10对存储器30进行数据的读出和写入时,控制存储器30进行数据的输入输出。
接着,说明以上所述的多处理器的工作。
图4是用于对本实施方式的多处理器系统的中断控制方法进行说明的流程图,是用于对由程序控制部105和硬件结构即HW旗语部13所执行的处理进行说明的图。
如果发生要排他的处理,则HW旗语部13根据单位处理器侧的软件的请求,来受理取得HW旗语的请求(S401)。HW旗语的取得通过TEST&SET方式进行。由于以一个机器语言(machine language)指令来进行,因此TEST&SET方式不会在处理的途中因其他任务等导致中断而处于竞争状态。
另外,HW旗语部13判断是否成功取得HW旗语(S402)。当该判断的结果为成功取得HW旗语时(S402:是),程序控制部105禁止对取得了HW旗语的单位处理器(请求源处理器)的中断(S403)。该中断禁止用于禁止对请求源处理器从外部所请求的中断处理、由其他单位处理器所请求的中断处理之外,还禁止基于分发(dispatch)的任务切换(taskswitch)。
另外,程序控制部105通过将可取得HW旗语的这一情况设定在请求源处理器的状态寄存器,由此通知给请求源处理器(S404)。
另外,在本实施方式中,当成功取得了HW旗语时,还同时设定请求源处理器的驱逐禁止标志106来进行自旋锁。另一方面,当在步骤S402中判断为无法取得HW旗语时(S402:否),则对请求源处理器的状态寄存器设定无法取得HW旗语的这个情况(S404)。
图5(a)、(b)是用于对取得HW旗语的成功与否进行说明的图。如图5(a)、(b)所示,作为请求源处理器的单位处理器,为了取得HW旗语而对控制HW旗语的HW(HW旗语部13)执行TEST&SET。此外,从TEST&SET的执行到向PSR写入结果之前的处理以一个周期的期间完成。
当可取得HW旗语时,HW旗语部13向请求处理器PSR305写入可取得HW旗语的这个情况。收到取得HW旗语的通知的请求源处理器确保自旋锁状态。另外,当无法取得HW旗语时,HW旗语部13向请求源处理器的PSR305写入无法取得HW旗语的这个情况。当无法取得HW旗语时,请求源处理器重复进行HW旗语的取得处理直到可取得HW旗语为止。
图6是用于对由请求源处理器的程序控制部105而实现的HW旗语的取得处理进行说明的流程图。请求源处理器首先参照存储器30所保存的HW旗语与ID之间的对应信息,并识别想要取得的HW旗语的ID(S601)。而且,当ID小于8时,由于ID与HW旗语一一对应,从而向HW旗语部13请求来取得与ID对应的HW旗语(S613)。而且,将写入有该结果的PSR值反映在返回值中,并将结果返回给程序(S614)。
另外,在步骤S601中,当判断为ID在8以上时(S601:是),则请求HW旗语7取得HW旗语部(S602)。而且,写入在PSR的值表示可获取HW旗语时(S603:是),对与ID对应的HW旗语的管理区域进行TEST&SET(S604)。
这样,当对一个HW旗语7添加多个ID时,本实施方式能够由多个单位处理器同时且互不干扰地使用一个HW来执行处理。
另外,程序控制部105判断由TEST&SET可否获取旗语(S605),并请求HW旗语7释放HW旗语(S606)。
再有,对请求源处理器设定中断禁止(S607),并禁止对自处理器的任务中断、外部中断、还有任务切换。在以上的处理后将写入有HW旗语的取得结果的PSR值反映在返回值中,并将结果返回给程序(S608)。
此外,当无法取得HW旗语时(S612:否),程序控制部105将表示HW旗语取得失败的PSR值反映在返回值中,并将结果返回给程序(S614)。另外,即使在不能通过TEST&SET获取旗语时(S605:否),也请求HW旗语7释放HW旗语,之后将PSR值反映在返回值中,并将结果返回给程序(S611)。
为了进行以上的处理,在本实施方式中设定了以下的四个服务调用。
·loc_spn
是从任务侧进行HW旗语的取得的服务调用。单位处理器不会从服务调用复原(recover)直到可取得HW旗语为止。当处理任务的单位处理器为loc_spn状态时,禁止unl_spn以外的服务调用的同时,还禁止对该单位处理器的中断和任务切换。
·iloc_spn
是从中断句柄侧进行HW旗语的取得的服务调用。单位处理器不会从服务调用复原直到可取得HW旗语为止。当执行中断句柄的单位处理器在iloc_spn状态时,禁止iunl_spn以外的服务调用的同时,还禁止对该单位处理器的中断和任务切换。
·unl_spn
是从任务侧进行HW旗语的释放的服务调用。当存在正在等待获取HW旗语的单位处理器时该单位处理器可在unl_spn的定时取得自旋锁。
·iunl_spn
是从中断句柄侧进行HW旗语的释放的服务调用。当存在正在等待获取HW旗语的单位处理器时,该单位处理器可在iunl_spn的定时取得自旋锁。
图7是用于对由图6所示的流程图实现的并行工作进行说明的图。如图7(a)所示,本实施方式在执行优先级较低的任务时,由OS对执行该任务的单位处理器进行自旋锁直到任务结束为止。在此期间,本实施方式的多处理器不会设定为中断禁止,而与执行中的任务取得的HW旗语无关地执行的任务或中断处理,可在其他单位处理器中并行工作。
另外,如图7(b)所示,在并行工作中的单位处理器中,当并行处理的任务或中断处理请求了已被取得的HW旗语的取得时,任务等等待机到所请求的HW旗语释放为止。
图8是用于对程序控制部105释放HW旗语的处理进行说明的流程图。程序控制部105判定应释放的HW旗语的ID是否在8以上(S801)。判断的结果,当ID小于8时(S801:否),请求HW旗语部13释放与ID对应的HW旗语(S803)。另一方面,当ID在8以上时(S801:是),则对写入在OS内的与ID对应的旗语管理区域中的信息进行清除(S802),并结束处理。
图9是用于对HW旗语部13释放HW旗语的处理进行说明的流程图。HW旗语部13针对要释放的ID的HW旗语进行释放请求(CLEAR)(S901)。
而且,解除请求源处理器的中断禁止(S902),并在请求源处理器的PSR305设定表示已释放了HW旗语这一情况的值并进行通知(S903)。
图10是用于对HW旗语释放进行说明的图。作为HW旗语释放的请求源处理器的单位处理器,在收取HW旗语释放的通知后从自旋锁状态释放。
此外,将用于使计算机执行用图4、图6、图8、图9叙述的本实施方式的多处理器系统的中断控制方法的程序,以可安装的形式或可执行的形式的文件记录在CD-ROM、floppy(注册商标)盘(FD)、DVD等由计算机可读取的记录介质中而进行提供。另外,也可采用下述结构:将用于使计算机执行本实施方式的多处理器系统的中断控制方法的程序,按照将其保存在与互联网等网络连接的计算机上,并经由网络进行下载的方式来提供。
再有,将用于使计算机执行以上叙述的本实施方式的多处理器系统的中断控制方法的程序,也可记录在由计算机可读取的ROM、闪存、存储卡(memory card)、USB连接型闪存等存储设备中而进行提供。
根据以上叙述的本实施方式,将8个HW旗语可识别地设定,并且指定与任务处理或中断句柄所使用的HW资源对应的HW旗语后请求取得。因此,对任务或中断处理而言可并行工作而不会发生竞争。
另外,当请求以前被取得的HW旗语的取得时,使进行请求的单位处理器等待处理。因此,在并行处理中不会使用同一HW资源,能够防止因处理的竞争而发生死锁(deadlock)。
可知,这种本实施方式的多处理器系统和多处理器系统的中断控制方法,与以前在图11中所示的现有例的结构相比,任务等进行等待的期间短。等待时间短,能够提高并行处理的处理效率。
(产业上的可利用性)
根据本发明,能够将多个旗语与资源对应地可识别地设定。而且,在单位处理器中的第一单位处理器进行了在旗语设定单元中所设定的旗语的取得请求时,对旗语进行识别,来判断请求是否为请求由第二单位处理器取得的旗语即取得中的旗语的请求。当判断请求为请求取得中旗语的请求时,使第一单位处理器的请求等待,而当判断请求为请求取得中旗语以外的旗语的请求时,允许取得所请求的旗语的取得。
因此,除了所请求的旗语为取得中的情况之外,第一单位处理器不会成为等待状态,而与第二单位处理器并行工作。
本发明,能够缩短单位处理器成为等待状态的时间,能够增加可并行工作的期间。这样本发明能够提供一种并行处理的处理效率高的多处理器系统。
另外,在第一单位处理器中处理结束之前不会发生中断处理,从而能够减小发生死锁等的可能性。
另外,能够对任务处理、任务处理与句柄处理、句柄处理的彼此进行并行处理。
另外,等待状态的其他单位处理器能够周期性地检测第一单位处理器的旗语的释放。因此,能够立即检测出第一单位处理器的旗语释放来取得所释放的旗语,从而能够脱离等待状态。
另外,即使在硬件资源少的情况下也能够控制很多旗语。
另外,根据本发明,当单位处理器之中的第一单位处理器进行了可识别地设定的旗语的取得请求时,对旗语进行识别,来判断请求是否为请求由第二单位处理器正在取得的旗语即取得中的旗语的请求。当判断请求为请求取得中旗语的请求时,使第一单位处理器的请求等待,另一方面,当判断请求为请求取得中旗语以外的旗语的请求时,允许取得所请求的旗语的取得。
因此,除了所请求的旗语为已经取得中的情况之外,第一单位处理器不会成为等待状态,而与第二单位处理器并行工作。本发明,能够缩短单位处理器成为等待状态的时间,能够增加可并行工作的期间。这种本发明能够提供一种用于使计算机执行并行处理的处理效率高的多处理器系统的中断控制方法的程序。

Claims (6)

1.一种多处理器系统,具备多个单位处理器,该多处理器系统包括:
旗语设定单元,其将表示对资源竞争优先的权利的旗语与多个资源分别对应而可识别地设定;
旗语请求判断单元,当上述单位处理器中的第一单位处理器进行了在上述旗语设定单元中所设定的旗语的取得请求时,判断该请求是否为请求由第二单位处理器取得的旗语即取得中的旗语的请求;和
排他控制单元,当由上述旗语请求判断单元判断上述请求为请求取得中旗语的请求时,使第一单位处理器的请求等待,另一方面,当由上述旗语请求判断单元判断上述请求为请求取得中旗语以外的旗语的请求时,允许所请求的旗语的取得。
2.根据权利要求1所述的多处理器系统,其特征在于,
具备中断禁止单元,该中断禁止单元禁止对允许取得旗语的第一单位处理器的由分发实现的任务切换、从外部请求的中断处理、由其他单位处理器所请求的中断处理的至少一个。
3.根据权利要求1或2所述的多处理器系统,其特征在于,
单位处理器为了对在多处理器内部所发生的任务和在外部所发生的句柄进行处理而请求旗语的取得,上述排他控制单元在用于任务处理的旗语取得请求的彼此之间、用于任务处理的旗语取得请求与用于句柄处理的旗语取得请求之间、用于句柄处理的旗语取得请求的彼此之间,等待或允许旗语的取得。
4.根据权利要求1~3中任一项所述的多处理器系统,其特征在于,
当上述排他控制单元允许了由上述第一单位处理器所请求的旗语的取得时,对上述第一单位处理器进行自旋锁。
5.根据权利要求1~4中任一项所述的多处理器系统,其特征在于,
上述旗语设定单元通过对多个旗语的每一个添加识别信息而可识别地进行设定,并且对多个旗语的至少一部分的旗语添加公共的识别信息,对添加有公共的该识别信息的多个旗语的每一个设定管理区域,
上述旗语请求判断单元根据识别信息,按各管理区域判断第一单位处理器进行取得请求的旗语是否为由第二单位处理器取得的取得中旗语。
6.一种使计算机执行多处理器系统的中断控制方法的程序,使计算机执行适用于具备多个单位处理器的多处理器系统的多处理器系统中断控制方法,其特征在于,
包括:
旗语请求判断步骤,当上述单位处理器中的第一单位处理器进行了可识别地设定的旗语的取得请求时,判断该请求是否为请求由第二单位处理器取得的旗语即取得中旗语的请求;
排他控制步骤,在上述旗语请求判断步骤中,当判断上述请求为请求取得中旗语的请求时,使第一单位处理器的请求等待,另一方面,当判断上述请求为请求取得中旗语以外的旗语的请求时,允许所请求的旗语的取得;和
中断禁止步骤,将在上述排他控制步骤中允许取得旗语的单位处理器设定为中断禁止。
CNA200780000064XA 2006-01-16 2007-01-16 多处理器系统以及用于使计算机执行多处理器系统的中断控制方法的程序 Pending CN101213519A (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2006007301A JP3976065B2 (ja) 2006-01-16 2006-01-16 マルチプロセッサシステム及びマルチプロセッサシステムの割込み制御方法をコンピュータに実行させるためのプログラム
JP007301/2006 2006-01-16

Publications (1)

Publication Number Publication Date
CN101213519A true CN101213519A (zh) 2008-07-02

Family

ID=38256431

Family Applications (1)

Application Number Title Priority Date Filing Date
CNA200780000064XA Pending CN101213519A (zh) 2006-01-16 2007-01-16 多处理器系统以及用于使计算机执行多处理器系统的中断控制方法的程序

Country Status (6)

Country Link
US (1) US7877753B2 (zh)
EP (1) EP1855204A4 (zh)
JP (1) JP3976065B2 (zh)
KR (1) KR20070095395A (zh)
CN (1) CN101213519A (zh)
WO (1) WO2007081029A1 (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102770846A (zh) * 2010-12-21 2012-11-07 松下电器产业株式会社 虚拟计算机系统及虚拟计算机系统控制方法
CN104268105B (zh) * 2014-09-23 2017-06-30 天津国芯科技有限公司 处理器局部总线互斥存取的扩展结构及操作方法

Families Citing this family (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4222370B2 (ja) * 2006-01-11 2009-02-12 セイコーエプソン株式会社 デバッグ支援装置及びデバッグ処理方法をコンピュータに実行させるためのプログラム
DE102008005124A1 (de) * 2008-01-18 2009-07-23 Kuka Roboter Gmbh Computersystem, Steuerungsvorrichtung für eine Maschine, insbesondere für einen Industrieroboter, und Industrieroboter
JP5227604B2 (ja) * 2008-02-14 2013-07-03 株式会社日立製作所 情報処理システム、ファイルの排他制御方法、及び排他制御プログラム
JP2009251802A (ja) * 2008-04-03 2009-10-29 Panasonic Corp マルチプロセッサシステムおよびマルチプロセッサシステムの割込み制御方法
US8346975B2 (en) 2009-03-30 2013-01-01 International Business Machines Corporation Serialized access to an I/O adapter through atomic operation
JP2011107799A (ja) * 2009-11-13 2011-06-02 Renesas Electronics Corp 非対称型マルチプロセッサの割込み制御方法、非対称型マルチプロセッサ
JP5745868B2 (ja) 2011-01-18 2015-07-08 トヨタ自動車株式会社 マルチプロセッサシステム
CN104239272B (zh) * 2013-08-28 2019-05-24 威盛电子股份有限公司 微处理器及其操作方法
US9507404B2 (en) 2013-08-28 2016-11-29 Via Technologies, Inc. Single core wakeup multi-core synchronization mechanism
US9465432B2 (en) 2013-08-28 2016-10-11 Via Technologies, Inc. Multi-core synchronization mechanism
US9792112B2 (en) 2013-08-28 2017-10-17 Via Technologies, Inc. Propagation of microcode patches to multiple cores in multicore microprocessor
JP2019067289A (ja) * 2017-10-04 2019-04-25 ルネサスエレクトロニクス株式会社 半導体装置

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH036654A (ja) 1989-06-02 1991-01-14 Nippon Telegr & Teleph Corp <Ntt> 相互排除方式
JPH064323A (ja) 1992-06-23 1994-01-14 Mitsubishi Electric Corp マルチプロセッサシステム
JPH08297581A (ja) 1995-02-28 1996-11-12 Nec Corp リアルタイム・オペレーティングシステムにおける割り込み管理方式
KR19990053528A (ko) 1997-12-24 1999-07-15 전주범 실시간 시스템의 다수 자원 공유 방법
US6874049B1 (en) * 2001-02-02 2005-03-29 Cradle Technologies, Inc. Semaphores with interrupt mechanism
US7058948B2 (en) 2001-08-10 2006-06-06 Hewlett-Packard Development Company, L.P. Synchronization objects for multi-computer systems
US6779090B2 (en) 2002-05-21 2004-08-17 International Business Machines Corporation Spinlock for shared memory
US7904907B2 (en) * 2003-12-31 2011-03-08 Intel Corporation Processing architecture having passive threads and active semaphores
TWI256553B (en) * 2004-12-17 2006-06-11 Ind Tech Res Inst Apparatus and method for hardware semaphore
JP4068106B2 (ja) * 2005-08-05 2008-03-26 三菱電機株式会社 リアルタイム組込み簡易モニタプログラム

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102770846A (zh) * 2010-12-21 2012-11-07 松下电器产业株式会社 虚拟计算机系统及虚拟计算机系统控制方法
CN102770846B (zh) * 2010-12-21 2016-08-31 松下电器(美国)知识产权公司 虚拟计算机系统控制装置及虚拟计算机系统控制方法
CN104268105B (zh) * 2014-09-23 2017-06-30 天津国芯科技有限公司 处理器局部总线互斥存取的扩展结构及操作方法

Also Published As

Publication number Publication date
US20070168592A1 (en) 2007-07-19
JP3976065B2 (ja) 2007-09-12
EP1855204A4 (en) 2010-03-03
WO2007081029A1 (ja) 2007-07-19
EP1855204A1 (en) 2007-11-14
JP2007188397A (ja) 2007-07-26
US7877753B2 (en) 2011-01-25
KR20070095395A (ko) 2007-09-28

Similar Documents

Publication Publication Date Title
CN101213519A (zh) 多处理器系统以及用于使计算机执行多处理器系统的中断控制方法的程序
EP3048527B1 (en) Sharing idled processor execution resources
KR920010916B1 (ko) 멀티프로세서의 레벨 변경 동기장치
TWI537831B (zh) 多核心處理器、用於執行處理程序切換之方法、用於保全一記憶體區塊之方法、用於致能使用一多核心裝置之異動處理之設備、以及用於執行記憶體異動處理之方法
US20130160028A1 (en) Method and apparatus for low latency communication and synchronization for multi-thread applications
US20020166018A1 (en) Multiprocessor interrupt handling system and method
US20060200609A1 (en) Hardware semaphore intended for a multi-processor system
US20100125717A1 (en) Synchronization Controller For Multiple Multi-Threaded Processors
CN101310257A (zh) 多处理器系统和用于使计算机执行多处理器系统的控制方法的程序
CN102822802A (zh) 多核处理器系统、控制程序以及控制方法
JP2003150574A (ja) マイクロコンピュータ
EP1820100B1 (en) Efficient switching between prioritized tasks
CN103329102A (zh) 多处理器系统
AU603876B2 (en) Multiple i/o bus virtual broadcast of programmed i/o instructions
CN101366008A (zh) 多处理器系统以及用于在计算机中执行多处理器系统的控制方法的程序
US6968410B2 (en) Multi-threaded processing of system management interrupts
US5594880A (en) System for executing a plurality of tasks within an instruction in different orders depending upon a conditional value
US11150945B2 (en) Reverse restartable sequences for lock polling scalability
CN105579963A (zh) 任务处理装置、电子设备及方法
EP0049521A2 (en) Information processing system
CN100492299C (zh) 一种嵌入式软件开发的方法及系统
WO1988002513A1 (en) Method and device to execute two instruction sequences in an order determined in advance
US20120036337A1 (en) Processor on an Electronic Microchip Comprising a Hardware Real-Time Monitor
EP1986097A1 (en) Parallel processing device and exclusive access control
US9619277B2 (en) Computer with plurality of processors sharing process queue, and process dispatch processing method

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

Open date: 20080702