JP3976065B2 - マルチプロセッサシステム及びマルチプロセッサシステムの割込み制御方法をコンピュータに実行させるためのプログラム - Google Patents

マルチプロセッサシステム及びマルチプロセッサシステムの割込み制御方法をコンピュータに実行させるためのプログラム Download PDF

Info

Publication number
JP3976065B2
JP3976065B2 JP2006007301A JP2006007301A JP3976065B2 JP 3976065 B2 JP3976065 B2 JP 3976065B2 JP 2006007301 A JP2006007301 A JP 2006007301A JP 2006007301 A JP2006007301 A JP 2006007301A JP 3976065 B2 JP3976065 B2 JP 3976065B2
Authority
JP
Japan
Prior art keywords
semaphore
unit
request
processor
acquired
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.)
Expired - Fee Related
Application number
JP2006007301A
Other languages
English (en)
Other versions
JP2007188397A (ja
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
Priority to JP2006007301A priority Critical patent/JP3976065B2/ja
Priority to US11/651,451 priority patent/US7877753B2/en
Priority to CNA200780000064XA priority patent/CN101213519A/zh
Priority to KR1020077018140A priority patent/KR20070095395A/ko
Priority to PCT/JP2007/050530 priority patent/WO2007081029A1/ja
Priority to EP07706857A priority patent/EP1855204A4/en
Publication of JP2007188397A publication Critical patent/JP2007188397A/ja
Application granted granted Critical
Publication of JP3976065B2 publication Critical patent/JP3976065B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

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)

Description

本発明は、マルチプロセッサシステム及びマルチプロセッサシステムの割込み制御方法をコンピュータに実行させるためのプログラムに係り、特に外部の機器からの割込み処理を受付けながら並列にプログラムの処理を実行するマルチプロセッサシステム及びマルチプロセッサシステムの割込み制御方法をコンピュータに実行させるためのプログラムに関する。
特定の装置に用いられるプロセッサは、組込みシステムと呼ばれている。近年では、組込みシステムにマルチプロセッサやマルチスレッドプロセッサが採用されることも多い。マルチプロセッサの採用は、装置の低クロック化や応答性の向上に有利である。また、特に携帯型の装置では、消費電力を低減することにも有利であるためマルチプロセッサを採用することが望まれている。
ところで、新たに開発したプロセッサが正常に動作するか否かの判断に時間及びコストがかかる。このため、ソフトウェアの分野では、使用した結果実績のあるプロセッサが流用可能であるならば、これを流用することが望ましいとされている。したがって、組込みシステムをマルチプロセッサ化する場合、先に使用されていたシングルプロセッサのソフトウェアを流用する要求がある。
シングルプロセッサをマルチプロセッサに流用する従来技術として、例えば、特許文献1がある。特許文献1の発明は、μITRON(登録商標)をベースにしたシングルプロセッサ用のオペレーティングシステム(OS:Operating System)をマルチプロセッサに移植するものである。
特開平8−297581号公報
しかしながら、シングルプロセッサでは、プロセッサがプログラムを所定の単位(タスク)で実行する間、タスク側でプロセッサを割込み禁止に設定する。また、シングルプロセッサでは、割込みレベルが比較的低い割込み処理において、処理の実行中の割込みが禁止されることがある。さらに、シングルプロセッサでは、OSを呼び出すサービスコールを発行する場合、サービスコールの発行からOSの解放までの全期間割込み処理が禁止する必要があった。
上記した仕様をマルチプロセッサに流用した場合、マルチプロセッサが複数のプロセッサ部を持つにも関わらず、割込み処理とタスク処理とを並列に実行することができない。また、優先度に関わらず割込み処理が待機状態になる期間が発生するため、プログラムの処理効率が低下するという欠点がある。
図11は、割込み処理が待機状態になる従来技術を説明するための図である。低優先度のタスクの実行中、このタスクは、より優先度の高いタスクや割込み処理によって中断することを防ぐため、プロセッサを割込み禁止状態に設定する。この結果、後のタスクや割込み処理は低優先度のタスクが終了するまで起動することなく待機させられる。
本発明は、このような点に鑑みてなされたものであって、マルチプロセッサシステムにおいてタスク及び割込み処理の並列処理を可能にし、また、タスク等の待機時間を短縮できて並列処理の処理効率が高いマルチプロセッサシステム、及びマルチプロセッサシステムの割込み制御方法をコンピュータに実行させるためのプログラムを提供することを目的とする。
以上の課題を解決するため、本発明のマルチプロセッサシステムは、複数の単位プロセッサを備えたマルチプロセッサシステムであって、リソースに対応する複数のセマフォを識別可能に設定するセマフォ設定手段と、前記単位プロセッサのうちの第1単位プロセッサが前記セマフォ設定手段に設定されているセマフォの取得要求をした場合、当該要求が第2単位プロセッサによって取得されているセマフォである取得中セマフォを要求するものであるか否か判断するセマフォ要求判断手段と、前記セマフォ要求判断手段により、前記要求が取得中セマフォを要求するものであると判断された場合に第1単位プロセッサの要求を待機させる一方、前記要求が取得中セマフォ以外のセマフォを要求するものであると判断された場合には要求されたセマフォの取得を許可する排他制御手段と、を備え、前記セマフォ設定手段は、複数のセマフォの各々に識別情報を付すことによって識別可能に設定すると共に複数のセマフォの少なくとも一部のセマフォに複数の識別情報を付して前記単位プロセッサの共有メモリを管理し、前記セマフォ要求判断手段は、識別情報に応じて第1単位プロセッサが取得要求をしたセマフォが第2単位プロセッサによって取得されている取得中セマフォであるか否かを、セマフォに付された複数の識別情報に対応する前記共有メモリのエリアごとに判断することを特徴とする。
このような発明によれば、リソースに対応する複数のセマフォを識別可能に設定することができる。そして、単位プロセッサのうちの第1単位プロセッサがセマフォ設定手段に設定されているセマフォの取得要求をした場合、セマフォを識別して要求が第2単位プロセッサによって取得されているセマフォである取得中セマフォを要求するものであるか否か判断する。要求が取得中セマフォを要求するものであると判断された場合、第1単位プロセッサの要求を待機させる一方、要求が取得中セマフォ以外のセマフォを要求するものであると判断された場合には要求されたセマフォの取得を許可することができる。また、このような発明によれば、ハードウェア資源が少ない場合にも多くのセマフォを制御することが可能になる。
このため、要求されたセマフォが既に取得中である場合を除いて第1単位プロセッサが待機状態になることがなく、第2単位プロセッサと並行に動作することができる。
本発明は、単位プロセッサが待機状態になる時間を短縮し、並列動作可能な期間を増やすことができる。このような本発明は、並列処理の処理効率が高いマルチプロセッサシステムを提供することができる。
また、本発明のマルチプロセッサシステムは、セマフォの取得が許可された第1単位プロセッサに対するディスパッチによるタスクスイッチ、外部から要求される割込み処理、他の単位プロセッサによって要求される割込み処理の少なくとも1つを禁止する割込み禁止手段を備えることを特徴とする。
このような発明によれば、第1単位プロセッサに処理終了まで割込み処理が発生することがなく、デッドロック等が発生する可能性を低減することができる。
また、本発明のマルチプロセッサシステムは、単位プロセッサが、マルチプロセッサの内部で発生したタスク及び外部で発生したハンドラを処理するためにセマフォの取得を要求し、前記排他制御手段は、タスク処理のためのセマフォ取得要求同士、タスク処理のためのセマフォ取得要求とハンドラ処理のためのセマフォ取得要求との間、ハンドラ処理のためのセマフォ取得要求同士でセマフォの取得を待機または許可することを特徴とする。
このような発明によれば、タスク処理、タスク処理とハンドラ処理、ハンドラ処理同士を並列処理することができる。
また、本発明のマルチプロセッサシステムは、前記排他制御手段が前記第1単位プロセッサによって要求されたセマフォの取得を許可した場合、前記第1単位プロセッサは、前記セマフォの解放を待ってビジーウェイトする処理であるスピンロックによって第1単位プロセッサにおけるタスクの追出し禁止を実現することを特徴とする。このような発明によれば、待機状態の他の単位プロセッサが第1単位プロセッサによるセマフォの解放を周期的に検出することができる。このため、第1単位プロセッサのセマフォ解放を直ちに検出して解放されたセマフォを取得し、待機状態から脱することができる。
また、本発明のマルチプロセッサシステムの割込み制御方法をコンピュータに実行させ
るためのプログラムは、複数の単位プロセッサを備えたマルチプロセッサシステムに適用されるマルチプロセッサシステムの割込み制御方法をコンピュータに実行させるためのプログラムであって、前記単位プロセッサのうちの第1単位プロセッサがセマフォの取得要求をした場合、当該要求が第2単位プロセッサによって取得されているセマフォである取得中セマフォを要求するものであるか否か判断するセマフォ要求判断ステップと、前記セマフォ要求判断ステップにおいて前記要求が取得中セマフォを要求するものであると判断された場合には第1単位プロセッサの要求を待機させる一方、前記要求が取得中セマフォ以外のセマフォを要求するものであると判断された場合には要求されたセマフォの取得を許可する排他制御ステップと、前記排他制御ステップにおいてセマフォの取得が許可された単位プロセッサを割込み禁止に設定する割込み禁止ステップと、を含み、複数のセマフォの少なくとも一部のセマフォに複数の識別情報が付されて前記単位プロセッサの共有メモリを管理し、前記セマフォ要求判断ステップにおいて、識別情報に応じて第1単位プロセッサが取得要求をしたセマフォが第2単位プロセッサによって取得されている取得中セマフォであるか否かが、セマフォに付された複数の識別情報に対応する前記共有メモリのエリアごとに判断されることを特徴とする。
このような発明によれば、リソースに対応する複数のセマフォを識別可能に設定することができる。そして、単位プロセッサのうちの第1単位プロセッサがセマフォ設定手段に設定されているセマフォの取得要求をした場合、セマフォを識別して要求が第2単位プロセッサによって取得されているセマフォである取得中セマフォを要求するものであるか否か判断する。要求が取得中セマフォを要求するものであると判断された場合、第1単位プロセッサの要求を待機させる一方、要求が取得中セマフォ以外のセマフォを要求するものであると判断された場合には要求されたセマフォの取得を許可することができる。また、このような発明によれば、ハードウェア資源が少ない場合にも多くのセマフォを制御することが可能になる。
このため、要求されたセマフォが既に取得中である場合を除いて第1単位プロセッサが待機状態になることがなく、第2単位プロセッサと並行に動作することができる。
本発明は、単位プロセッサが待機状態になる時間を短縮し、並列動作可能な期間を増やすことができる。このような本発明は、並列処理の処理効率が高いマルチプロセッサシステムの割込み制御方法をコンピュータに実行させるためのプログラムを提供することができる。
以下、図を参照して本発明に係るマルチプロセッサシステム、及びマルチプロセッサシステムの割込み制御方法をコンピュータに実行させるためのプログラムの一実施の形態を説明する。
本実施形態は、本実施形態のマルチプロセッサシステムを、携帯電話に適用される組込みシステムとして構成したものとする。マルチプロセッサシステムは、複数のプロセッサ(単位プロセッサ)を結合して構成される。一般的なマルチプロセッサシステムにおける単位プロセッサの結合の例を図1に示す。
図1(a)、(b)に示したマルチプロセッサは、いずれも対称型マルチプロセッサ(SMP:symmetric multi-processor)と呼ばれる構成であって、複数の単位プロセッサPuを、メモリを共有するように結合して構成されている。(a)に示した構成は、マルチプロセッサと呼ばれている。また、(b)に示した構成は、マルチスレッドプロセッサと呼ばれている。マルチスレッドプロセッサは、マルチプロセッサよりも演算器を共有している点で単位プロセッサPuは密に結合しているという。
本実施形態では、マルチプロセッサシステムをマルチプロセッサとして構成した例を挙げて説明するものとする。なお、本実施形態は、マルチプロセッサ、マルチスレッドプロセッサのいずれとしても構成可能である。
図2は、本発明の一実施形態のマルチプロセッサシステムが適用される携帯電話1の機能構成を示すブロック図である。図2において、携帯電話1は、CPU(Central Processing Unit)10と、フラッシュROM20と、メモリ30と、バッファ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等の周辺チップから入力される割込み信号に応じて割込みハンドラを実行する。なお、OSは、マルチプロセッサに対応するOSである。
また、CPU10は、各種処理結果をフラッシュROM20あるいはメモリ30に格納する。
図3は、図2中にCPU10として示した本実施形態のマルチプロセッサを説明するための図である。本実施形態のマルチプロセッサは、複数の単位プロセッサP0、P1、P2、P3を組み合わせ、複数の前記単位プロセッサを複数のオペレーティングシステムで動作させるマルチプロセッサである。図3に示したように、マルチプロセッサは、複数の単位プロセッサP0〜P3と、割込み制御部11と、メモリ制御部12と、ハードウェアセマフォ(以下HWセマフォ)部13とを含んで構成される。
HWセマフォ部13は、競合する処理(本実施形態ではハードウェアリソースを占有する処理)をいずれかの単位プロセッサが優先的に実行する権利であるHWセマフォを設定する構成である。本実施形態では、HWセマフォ部13にハードウェアリソースに応じた複数のHWセマフォを識別可能に設定している。識別のため、複数のHWセマフォの各々には識別情報(ID)が付されている。HWセマフォを要求するサービスコールは、HWセマフォのIDを指定して行われる。
このサービスコールによってHWセマフォが取得できた単位プロセッサだけがこのHWセマフォに対応するハードウェアリソースを使用して処理を実行できる。また、本実施形態では、HWセマフォを取得できた単位プロセッサに対する割込みを必要な期間禁止する。
HWセマフォ部13は、後述するプログラム制御部105と協働し、単位プロセッサのうちの第1単位プロセッサ(例えば単位プロセッサP0)がHWセマフォ部13に設定されているセマフォの取得要求をした場合、この要求が第2単位プロセッサ(例えば単位プロセッサP1)によって取得されているセマフォ(取得中セマフォ)を要求するものであるか否か判断する。
また、プログラム制御部105は、HWセマフォ部13によってセマフォ取得の要求が取得中セマフォを要求するものであると判断された場合、単位プロセッサP0の要求を待機させる。一方、この要求が取得中セマフォ以外のセマフォを要求するものであると判断された場合には要求されたセマフォの取得を許可する。さらに、セマフォの取得が許可された単位プロセッサP0単位プロセッサを割込み禁止に設定する。
以上の構成において、HWセマフォ部13はセマフォ設定手段、HWセマフォ部13及びプログラム制御部105は、セマフォ要求判断手段、排他制御手段、割込み制御手段に相当する。
プログラム管理部105は、IDに応じ、要求されたHWセマフォが既に他の単位プロセッサによって使用されているか否かを管理エリアごとに判断する。このようにすれば、1つのHWセマフォを使用して複数の単位プロセッサを排他制御することができる。
また、本実施形態では、IDの付与にあたり、HWセマフォ部13が複数のHWセマフ
ォの少なくとも一部のセマフォに複数のIDを付す。また、複数のIDに対応した管理エリアを設定する。そして、プログラム管理部105が、前記したように、要求されたHWセマフォが既に他の単位プロセッサによって使用されているか否かを管理エリアごとに判断するので、ハードウェア資源が少ない場合にも多くのセマフォを制御し、単位プロセッサを排他制御することが可能になる。
すなわち、本実施形態では、HWセマフォ0〜HWセマフォ7の合計8個のHWセマフォを定義し、IDを255個設定可能にした。このため、HWセマフォ0〜6には各々1対1に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とを備えている。本実施形態では、ハードウェアリソースとHWセマフォのIDとを対応付ける情報をメモリ30に保存する。
次に、各単位プロセッサP0〜P3の内部構成について説明する。なお、単位プロセッサP0〜P3は、同様に構成されているため、単位プロセッサP0の内部構成についてのみ説明し、他の単位プロセッサの説明に代えるものとする。
単位プロセッサP0は、フェッチ部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は、単位プロセッサP0全体を制御するものであり、単位プロセッサP0のステータス(例えば、割込みの可否状態、単位プロセッサP0におけるオーバーフローの発生状態等)を記憶するステータスレジスタ(PSR)305と、単位プロセッサP0が次に実行するべき命令が格納されたメモリアドレスを記憶するプログラムカウンタおい(PC)230とを含んで構成される。そして、プログラム制御部105は、単位プロセッサP0が割込み処理に移行する時点で、PSR305の値を割込み処理の禁止状態に変更したり、分岐命令が実行された場合に、プログラムカウンタの値を分岐先のアドレスに変更したりする。
また、プログラム制御部105は、実行中のタスクによってHWセマフォの取得要求が出力された場合、先ず、HWセマフォの取得結果を受け取り、ステータスレジスタにおけるHWセマフォの取得結果を示す領域において、HWセマフォの取得に成功したことを示すフラグを更新する。一方、セマフォ取得に失敗した場合、HWセマフォの取得に失敗したことを示すフラグを更新し、HWセマフォの取得を一旦停止して待機状態から離脱する。
さらに、プログラム制御部105は、追出し禁止フラグ106を備えている。追出し禁止フラグ106は、自単位プロセッサにおいてタスクの切替えや外部割込みが起こり、タスクが単位プロセッサから追出されることを禁止するための機構である。追出し禁止フラグ106を1にすることによって現在単位プロセッサにあるタスクや割込み処理が他のタスクや割込み処理に切替えられることが禁止される。
単位プロセッサにおけるタスクの追出しが禁止された状態をロック状態といい、本実施形態では、スピンロックによってロック状態を実現する。
スピンロックとは、単位プロセッサ間で同じ資源(本実施形態ではハードウェアリソース)を使用する場合、その資源の解放を待ってビジーウェイトする方法である。単位プロセッサ間の通信を利用した排他制御に比べ、単位プロセッサ同士の同期のためのオーバーヘッドが少ない点で有利である。スピンロックは、資源を利用している排他区間が短い場合に適した方式である。
割込み制御部11は、無線部50等の周辺チップから外部割込みの割込み信号が入力された場合に、割込み信号を調停した上で、所定の割込み信号を単位プロセッサP0〜P3のうち指定された単位プロセッサに出力する。メモリ制御部12は、CPU10とメモリ30との間に備えられ、CPU10からメモリ30に対するデータの読み出し及び書込みが行われる場合に、メモリ30を制御してデータの入出力を行っている。
次に、以上述べたマルチプロセッサの動作を説明する。
図4は、本実施形態のマルチプロセッサシステムの割込み制御方法を説明するためのフローチャートであって、プログラム制御部105及びハードウェア構成であるHWセマフォ部13によって実行される処理を説明するための図である。
排他すべき処理が発生すると、HWセマフォ部13は、単位プロセッサ側のソフトウェアの要求によってHWセマフォ取得の要求を受付ける(S401)。HWセマフォの取得は、TEST&SET方式で行われる。TEST&SET方式は、1つの機械語命令で行われるから、処理の途中で他のタスク等に割込まれて競合状態になることがない。
また、HWセマフォ部13は、HWセマフォの取得が成功したか否か判断する(S402)。この判断の結果、HWセマフォの取得が成功した場合(S402:Yes)、プログラム制御部105が、HWセマフォを取得した単位プロセッサ(要求元プロセッサ)に対する割込みを禁止する(S403)。この割込み禁止は、要求元プロセッサに対して外部から要求される割込み処理、他の単位プロセッサによって要求される割込み処理の他、ディスパッチによるタスクスイッチを禁止するものである。
また、プログラム制御部105は、HWセマフォが取得できたことを、要求元プロセッサのステータスレジスタに設定することによって要求元プロセッサに通知する(S404)。また、本実施形態では、HWセマフォの取得が成功した場合は、要求元プロセッサの追出し禁止フラグ106をも同時に設定してスピンロックするものとした。一方、ステップS402においてHWセマフォが取得できなかったと判断された場合(S402:No)、要求元プロセッサのステータスレジスタにHWセマフォが取得できなかったことを設定する(S404)。
図5(a)、(b)は、HWセマフォ取得の成否について説明するための図である。図5(a)、(b)に示したように、要求元プロセッサとなる単位プロセッサは、HWセマフォを制御するHW(HWセマフォ部13)に対し、HWセマフォを取得するためTEST&SETを実行する。なお、TEST&SETの実行からPSRへ結果を書き込むまでの処理は、1サイクル分で完了する。
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セマフォとは1対1に対応付けられていることから、IDに対応するHWセマフォの取得をHWセマフォ部13に要求する(S613)。そして、この結果が書き込まれたPSRの値をリターン値に反映してプログラムに結果を返す(S614)。
また、ステップS601において、IDが8以上であると判断された場合(S601:Yes)、HWセマフォ7にHWセマフォ部の取得を要求する(S602)。そして、PSRに書き込まれた値が、HWセマフォが獲得できたことを示す場合(S603:Yes)、IDに対応するHWセマフォの管理エリアをTEST&SETする(S604)。
このように、1つのHWセマフォ7に複数のIDを付した場合、本実施形態は、1つのHWを複数の単位プロセッサが同時に、かつ互いに影響することなく使用して処理を実行することができる。
また、プログラム制御部105は、TEST&SETによってセマフォが獲得できたか否か判断し(S605)、HWセマフォ7にHWセマフォの解放を要求する(S606)。さらに、要求元プロセッサに割込み禁止を設定し(S607)、自プロセッサに対するタスク割込み、外部割込み、さらにはタスクスイッチを禁止する。以上の処理の後、HWセマフォ取得の結果が書き込まれたPSRの値をリターン値に反映してプログラムに結果を返す(S608)。
なお、プログラム制御部105は、HWセマフォを取得できなかった場合(S612:No)、HWセマフォ取得失敗を表すPSRの値をリターン値に反映してプログラムに結果を返す(S614)。また、TEST&SETによってセマフォが獲得できなかった場合にも(S605:No)、HWセマフォ7にHWセマフォの解放を要求した後、PSRの値をリターン値に反映してプログラムに結果を返す(S611)。
以上の処理をするため、本実施形態では、以下の4つのサービスコールを設定した。
・loc_spn
タスク側からHWセマフォの取得を行うサービスコールである。単位プロセッサは、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:No)、IDに対応するHWセマフォの解放をHWセマフォ部13に要求する(S803)。
一方、IDが8以上である場合(S801:Yes)、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、フロッピー(登録商標)ディスク(FD)、DVD等のコンピュータで読み取り可能な記録媒体に記録されて提供される。また、本実施形態のマルチプロセッサシステムの割込み制御方法をコンピュータに実行させるためのプログラムを、インターネット等のネットワークに接続されたコンピュータ上に格納し、ネットワーク経由でダウンロードさせることにより提供するように構成しても良い。
さらに、以上述べた本実施形態のマルチプロセッサシステムの割込み制御方法(発明の名称に対応)をコンピュータに実行させるためのプログラムは、コンピュータで読み取り可能なROM、フラッシュメモリ、メモリカード、USB接続型フラッシュメモリ等のメモリデバイスに記録されて提供してもよい。
以上述べた本実施形態によれば、8個のHWセマフォを識別可能に設定し、タスク処理や割込みハンドラが使用するHWリソースに応じたHWセマフォを指定して取得を要求する。このため、競合することがないタスクや割込み処理については並列に動作させることができる。
また、先に取得されているHWセマフォの取得が要求された場合、要求した単位プロセッサは処理を待たされる。このため、並列処理中に同一のHWリソースが使用されることがなく、処理の競合によるデッドロック等が発生することを防ぐことができる。
このような本実施形態のマルチプロセッサシステム及びマルチプロセッサシステムの割込み制御方法(発明の名称に対応)は、先に図11で示した従来例の構成に比べてタスク等が待機する期間が短いことが明らかである。待機時間が短く、並列処理の処理効率を高めることができる。
一般的なマルチプロセッサシステムにおける単位プロセッサの結合の例を示した図である。 本発明の一実施形態のマルチプロセッサが適用される携帯電話の機能構成を示すブロック図である。 本発明の一実施形態のマルチプロセッサを説明するための図である。 本実施形態のマルチプロセッサシステムの割込み制御方法(発明の名称に対応)を説明するためのフローチャートである。 図4のフローチャートに示したHWセマフォ取得の成否について説明するための図である。 本発明の一実施形態のプログラム制御部によってなされるHWセマフォ取得の処理を説明するためのフローチャートである。 図6に示したフローチャートによって実現される並列動作を説明するための図である。 本発明の一実施形態のプログラム制御部がHWセマフォを解放する処理を説明するためのフローチャートである。 本発明の一実施形態の割込み制御部がHWセマフォを解放する処理を説明するためのフローチャートである。 本発明の一実施形態のHWセマフォ解放を説明するための図である。 割込み処理が待機状態になる従来技術を説明するための図である。
符号の説明
11 割込み制御部、12 メモリ制御部、13 ハードウェアセマフォ部、30 メモリ、105 プログラム制御部、106 追出し禁止フラグ、230 PC、305 PSR、P0,P1,P2,P3 単位プロセッサ

Claims (5)

  1. 複数の単位プロセッサを備えたマルチプロセッサシステムであって、
    リソースに対応する複数のセマフォを識別可能に設定するセマフォ設定手段と、
    前記単位プロセッサのうちの第1単位プロセッサが前記セマフォ設定手段に設定されているセマフォの取得要求をした場合、当該要求が第2単位プロセッサによって取得されているセマフォである取得中セマフォを要求するものであるか否か判断するセマフォ要求判断手段と、
    前記セマフォ要求判断手段により、前記要求が取得中セマフォを要求するものであると判断された場合に第1単位プロセッサの要求を待機させる一方、前記要求が取得中セマフォ以外のセマフォを要求するものであると判断された場合には要求されたセマフォの取得を許可する排他制御手段と、を備え、
    前記セマフォ設定手段は、複数のセマフォの各々に識別情報を付すことによって識別可能に設定すると共に複数のセマフォの少なくとも一部のセマフォに複数の識別情報を付して前記単位プロセッサの共有メモリを管理し、
    前記セマフォ要求判断手段は、識別情報に応じて第1単位プロセッサが取得要求をしたセマフォが第2単位プロセッサによって取得されている取得中セマフォであるか否かを、セマフォに付された複数の識別情報に対応する前記共有メモリのエリアごとに判断することを特徴とするマルチプロセッサシステム。
  2. セマフォの取得が許可された第1単位プロセッサに対するディスパッチによるタスクスイッチ、外部から要求される割込み処理、他の単位プロセッサによって要求される割込み処理の少なくとも1つを禁止する割込み禁止手段を備えることを特徴とする請求項1に記載のマルチプロセッサシステム。
  3. 単位プロセッサが、マルチプロセッサの内部で発生したタスク及び外部で発生したハンドラを処理するためにセマフォの取得を要求し、前記排他制御手段は、タスク処理のためのセマフォ取得要求同士、タスク処理のためのセマフォ取得要求とハンドラ処理のためのセマフォ取得要求、ハンドラ処理のためのセマフォ取得要求同士の間でセマフォの取得を待機させる、または許可することを特徴とする請求項1または2に記載のマルチプロセッサシステム。
  4. 前記排他制御手段が前記第1単位プロセッサによって要求されたセマフォの取得を許可した場合、前記第1単位プロセッサは、前記セマフォの解放を待ってビジーウェイトする処理であるスピンロックによって第1単位プロセッサにおけるタスクの追出し禁止を実現することを特徴とする請求項1から3のいずれか1項に記載のマルチプロセッサシステム。
  5. 複数の単位プロセッサを備えたマルチプロセッサシステムに適用されるマルチプロセッサシステムの割込み制御方法をコンピュータに実行させるためのプログラムであって、
    前記単位プロセッサのうちの第1単位プロセッサがセマフォの取得要求をした場合、当該要求が第2単位プロセッサによって取得されているセマフォである取得中セマフォを要求するものであるか否か判断するセマフォ要求判断ステップと、
    前記セマフォ要求判断ステップにおいて前記要求が取得中セマフォを要求するものであると判断された場合には第1単位プロセッサの要求を待機させる一方、前記要求が取得中セマフォ以外のセマフォを要求するものであると判断された場合には要求されたセマフォの取得を許可する排他制御ステップと、
    前記排他制御ステップにおいてセマフォの取得が許可された単位プロセッサを割込み禁止に設定する割込み禁止ステップと、を含み、
    複数のセマフォの少なくとも一部のセマフォに複数の識別情報が付されて前記単位プロセッサの共有メモリを管理し、
    前記セマフォ要求判断ステップにおいて、識別情報に応じて第1単位プロセッサが取得要求をしたセマフォが第2単位プロセッサによって取得されている取得中セマフォであるか否かが、セマフォに付された複数の識別情報に対応する前記共有メモリのエリアごとに判断されることを特徴とするマルチプロセッサシステムの割込み制御方法をコンピュータに実行させるためのプログラム。
JP2006007301A 2006-01-16 2006-01-16 マルチプロセッサシステム及びマルチプロセッサシステムの割込み制御方法をコンピュータに実行させるためのプログラム Expired - Fee Related JP3976065B2 (ja)

Priority Applications (6)

Application Number Priority Date Filing Date Title
JP2006007301A JP3976065B2 (ja) 2006-01-16 2006-01-16 マルチプロセッサシステム及びマルチプロセッサシステムの割込み制御方法をコンピュータに実行させるためのプログラム
US11/651,451 US7877753B2 (en) 2006-01-16 2007-01-10 Multi-processor system and program for causing computer to execute controlling method of interruption of multi-processor system
CNA200780000064XA CN101213519A (zh) 2006-01-16 2007-01-16 多处理器系统以及用于使计算机执行多处理器系统的中断控制方法的程序
KR1020077018140A KR20070095395A (ko) 2006-01-16 2007-01-16 멀티 프로세서 시스템 및 멀티 프로세서 시스템의 인터럽트 제어 방법을 컴퓨터에 실행시키기 위한 프로그램을 기록한 컴퓨터 판독 가능한 기록 매체
PCT/JP2007/050530 WO2007081029A1 (ja) 2006-01-16 2007-01-16 マルチプロセッサシステム及びマルチプロセッサシステムの割込み制御方法をコンピュータに実行させるためのプログラム
EP07706857A EP1855204A4 (en) 2006-01-16 2007-01-16 MULTIPROCESSOR SYSTEM AND SOFTWARE FOR RUNNING A COMPUTER WITH INTERRUPTION MULTIPROCESSOR SYSTEM

Applications Claiming Priority (1)

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

Publications (2)

Publication Number Publication Date
JP2007188397A JP2007188397A (ja) 2007-07-26
JP3976065B2 true JP3976065B2 (ja) 2007-09-12

Family

ID=38256431

Family Applications (1)

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

Country Status (6)

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

Families Citing this family (14)

* 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 非対称型マルチプロセッサの割込み制御方法、非対称型マルチプロセッサ
CN102770846B (zh) * 2010-12-21 2016-08-31 松下电器(美国)知识产权公司 虚拟计算机系统控制装置及虚拟计算机系统控制方法
JP5745868B2 (ja) 2011-01-18 2015-07-08 トヨタ自動車株式会社 マルチプロセッサシステム
US9792112B2 (en) 2013-08-28 2017-10-17 Via Technologies, Inc. Propagation of microcode patches to multiple cores in multicore microprocessor
CN104239272B (zh) * 2013-08-28 2019-05-24 威盛电子股份有限公司 微处理器及其操作方法
US9535488B2 (en) * 2013-08-28 2017-01-03 Via Technologies, Inc. Multi-core microprocessor that dynamically designates one of its processing cores as the bootstrap processor
US9465432B2 (en) 2013-08-28 2016-10-11 Via Technologies, Inc. Multi-core synchronization mechanism
CN104268105B (zh) * 2014-09-23 2017-06-30 天津国芯科技有限公司 处理器局部总线互斥存取的扩展结构及操作方法
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 三菱電機株式会社 リアルタイム組込み簡易モニタプログラム

Also Published As

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

Similar Documents

Publication Publication Date Title
JP3976065B2 (ja) マルチプロセッサシステム及びマルチプロセッサシステムの割込み制御方法をコンピュータに実行させるためのプログラム
CN108920267B (zh) 任务处理装置
JP5243711B2 (ja) プロセッサ
JP5244160B2 (ja) 複数の命令シーケンサでのスレッド実行に基づく命令セットのためのメカニズム
US20040216120A1 (en) Method and logical apparatus for rename register reallocation in a simultaneous multi-threaded (SMT) processor
CN107003896B (zh) 具有共享事务处理资源的装置和数据处理方法
WO2008062647A1 (en) Multiprocessor system, system configuration method in multiprocessor system, and program thereof
JP2010140290A (ja) マルチプロセッサシステム及びその排他制御の調停方法
JP2007188398A (ja) マルチプロセッサシステム、マルチプロセッサシステムの制御方法をコンピュータに実行させるためのプログラム。
US8413163B2 (en) Program control device including per-timeslot switching of thread execution
US7797515B2 (en) System and method for limiting the number of unit processors for which suspension of processing is prohibited
WO2009090684A1 (ja) タスク処理装置
JP4441592B2 (ja) 並列処理装置及び排他制御方法
JP2014182507A (ja) 計算機及び排他制御方法及び排他制御プログラム
JP2006285718A (ja) プロセッサおよびディスパッチ制御方法
JP2007172145A (ja) プロセッサ及びブート処理方法をコンピュータに実行させるためのプログラム
JP5017784B2 (ja) プロセッサ及びこのプロセッサ適用される割込み処理制御方法
JP2007172311A (ja) プロセッサ
JP4389797B2 (ja) プロセッサおよび情報処理方法
JPS6145348A (ja) バス優先権制御方式
JP2000235553A (ja) マルチプロセッサシステム
JP2019003710A (ja) タスク処理装置
JP2002091939A (ja) マルチプロセッサシステムにおける命令実行方法及びその装置

Legal Events

Date Code Title Description
TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20070529

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20070611

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20100629

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110629

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110629

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120629

Year of fee payment: 5

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130629

Year of fee payment: 6

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130629

Year of fee payment: 6

LAPS Cancellation because of no payment of annual fees