JP2005004562A - マルチプロセッサシステム、マルチプロセッサシステムの制御方法、およびマルチプロセッサシステムの制御プログラム - Google Patents

マルチプロセッサシステム、マルチプロセッサシステムの制御方法、およびマルチプロセッサシステムの制御プログラム Download PDF

Info

Publication number
JP2005004562A
JP2005004562A JP2003168579A JP2003168579A JP2005004562A JP 2005004562 A JP2005004562 A JP 2005004562A JP 2003168579 A JP2003168579 A JP 2003168579A JP 2003168579 A JP2003168579 A JP 2003168579A JP 2005004562 A JP2005004562 A JP 2005004562A
Authority
JP
Japan
Prior art keywords
interrupt
processor
priority
task
processors
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
JP2003168579A
Other languages
English (en)
Inventor
Naohiro Isshiki
直広 一色
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.)
Canon Inc
Original Assignee
Canon Inc
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 Canon Inc filed Critical Canon Inc
Priority to JP2003168579A priority Critical patent/JP2005004562A/ja
Publication of JP2005004562A publication Critical patent/JP2005004562A/ja
Pending legal-status Critical Current

Links

Images

Landscapes

  • Multi Processors (AREA)
  • Bus Control (AREA)

Abstract

【課題】適切に外部割り込み要求に応じて割り込み処理を実行するプロセッサを決定し、システム全体として効率的な割り込み処理を行なえるようにする。
【解決手段】プロセッサ101〜103の各々が実行中のタスクの優先度を獲得するタスク優先度獲得部104、タスク優先度獲得部104により獲得された前記プロセッサのタスクの優先度に基づき最も優先度の低いタスクを実行しているプロセッサを選択するプロセッサ選択手段105、発生した外部割り込み要求をすべて受け付ける割り込み受付部106、割り込み受付部106で受け付けた割り込み要求をプロセッサ選択手段105で決定したプロセッサに通知する割り込み通知部109を設け、前記プロセッサ選択手段により選択された最も優先度の低いタスクを実行しているプロセッサに、発生した外部割り込み要求に対応した割り込み処理を実行させる。
【選択図】 図1

Description

【0001】
【発明の属する技術分野】
本発明は外部割り込み要求を受け付ける割り込み機能を備えた複数のプロセッサを持つマルチプロセッサシステム、その制御方法、および制御プログラムに関するものである。
【0002】
【従来の技術】
従来より、単数あるいは複数のプロセッサを用いたコンピュータシステム、プリンタなどのコンピュータ応用機器において、入出力割り込み、タイマー割り込みなどの割り込み処理が広く利用されている。
【0003】
単数のプロセッサのみを用いるシステムでは、割り込み処理を行なうプロセッサは単一であるが、マルチプロセッサシステムにおいて外部割り込みが発生した場合は複数のうちのどれかのプロセッサによりこの割り込みを処理する余地があり、従来では次のような方式で割り込み処理を行なうプロセッサを決定する方式が用いられている。
【0004】
(1)発生した割り込みの種類(入出力割り込みや、タイマー割り込み等)に応じて決められた特定のプロセッサのみが割り込み処理を行なう(例えば、特許文献1を参照)。
【0005】
(2)すべてのプロセッサに対し割り込み要求を行い、最初に割り込みを受け付けたプロセッサで割り込み処理を行なう。
【0006】
【特許文献1】
特開平5―324569号公報
【0007】
【発明が解決しようとする課題】
上記の従来方式(1)では特定のプロセッサにのみ割り込みが行われるので、外部割り込みが発生した時、割り込みを受け付ける特定のプロセッサで他のプロセッサよりも優先順位の高いタスクが実行されていると、他のプロセッサのタスクよりも優先順位が高いにも関わらず、そのタスクの実行が阻害される、という問題がある。また、割り込みを受け付ける特定のプロセッサの障害がシステム全体の障害に直結する。
【0008】
従来方式(2)では、割り込みを最初に受け付けたプロセッサで実行しているタスクが必ずしも他のプロセッサで実行されているタスクよりも優先順位が低いとは限らない。また、すべてのプロセッサに対し割り込み要求を行なうため、結果的に割り込みを行わないプロセッサにおける割り込みのキャンセル処理を行わなければならないという問題がある。
【0009】
また、従来方式(1)では、特定種の外部割込みに対して特定のプロセッサにのみ割り込みが行われるので、同種の外部割込みが同時期に複数発生した時、特定のプロセッサに割り込みが集中し、他のプロセッサでは通常タスクが実行されているにも関わらず、本来通常タスクよりも優先されるべき割り込み処理が待機させられる、また、割り込みを受け付ける特定のプロセッサの障害がシステム全体の障害に直結するなどの問題がある。
【0010】
さらに、従来方式(2)では、割り込みを最初に受け付けたプロセッサが最適でない場合がある。すべてのプロセッサが割り込み状態であるとき、割り込みを受け付けたプロセッサの割込み優先順位が他のプロセッサで実行している割り込みの割り込み優先度よりも低いとは限らない。また、すべてのプロセッサに対し割込み要求を行なうため、結果的に割り込みを行わないプロセッサにおける割り込みのキャンセル処理を行わなければならない、などの問題がある。
【0011】
本発明の課題は上記の問題点を解決し、外部割り込みが発生した時に、最も低い優先度を持つタスクを実行しているプロセッサのみに割り込み要求を行なうことにより、優先度の高いタスクの実行が阻害されることが無い効率的なタスクの実行とシステム全体として効率的な割り込み処理を行なうことにある。
【0012】
また、本発明の他の課題は、外部割り込みが発生した時に、割り込み状態に無いプロセッサに割り込み要求を行なうことにより、常に割り込み処理を通常タスクよりも優先的に実行することにある。
【0013】
また、本発明の他の課題はすべてのプロセッサが割り込み状態にある時には、最も低い割り込み優先度を持つ割り込み処理を実行しているプロセッサに割込み要求を行なうことにより、割り込み優先度に従った効率的な割り込み処理の実行を行なうことにある。
【0014】
さらに、本発明の他の課題は、すべてのプロセッサが割り込みを受け付け可能にすることにより、1つのプロセッサに障害が起きてもシステム全体の障害とならないようにすることにある。
【0015】
すなわち、本発明の課題は、外部割り込み要求を受け付ける割り込み機能を備えた複数のプロセッサを持つマルチプロセッサシステム、その制御方法、および制御プログラムにおいて、適切に外部割り込み要求に応じて割り込み処理を実行するプロセッサを決定し、システム全体として効率的な割り込み処理を行なえるようにすることにある。
【0016】
【課題を解決するための手段】
上記の課題を解決するため、本発明によれば、外部割り込み要求を受け付ける割り込み機能を備えた複数のプロセッサを持つマルチプロセッサシステム、その制御方法、および制御プログラムにおいて、
プロセッサの各々で実行しているタスクの優先度を獲得するタスク優先度獲得手段(または工程)と、
タスク優先度獲得手段(または工程)により獲得されたプロセッサのタスクの優先度に基づき最も優先度の低いタスクを実行しているプロセッサを選択するプロセッサ選択手段(または工程)と、
発生した外部割り込み要求をすべて受け付ける割り込み受付手段(または工程)と、
割り込み受付手段(または工程)で受け付けた割り込み要求をプロセッサ選択手段(または工程)により決定したプロセッサに通知する割り込み通知手段(または工程)を有し、
プロセッサ選択手段(または工程)により選択されたプロセッサに、発生した外部割り込み要求に対応した割り込み処理を実行させる
構成、あるいは
各プロセッサの割り込み状態の有無をプロセッサ外部に通知する割り込み状態通知手段(または工程)と、
割り込み状態に有る時に現在実行している割り込みの優先度をプロセッサ外部に通知する割り込み優先度通知手段(または工程)と、
割り込み状態通知手段(または工程)により得られた各々のプロセッサの割り込み状態と、割り込み優先度通知手段(または工程)によって得られた各々のプロセッサの割り込み優先度から割り込み状態に無いプロセッサがあれば割り込み状態に無いプロセッサを、また、すべてのプロセッサが割り込み状態に有る時は最も低い割り込み優先度の割り込みを実行しているプロセッサを選択するプロセッサ選択手段(または工程)と、
発生した外部割り込みの要求をすべて受け付ける割り込み受付手段(または工程)と、
割り込み受付手段(または工程)で受け付けた割り込み要求をプロセッサ選択手段(または工程)により決定したプロセッサに通知する割り込み通知手段(または工程)を有し、
プロセッサ選択手段(または工程)により選択されたプロセッサに、外部割り込み要求に対応した割り込み処理を実行させる
構成を採用した。
【0017】
【発明の実施の形態】
以下、図面を参照して本発明の実施形態を詳細に説明する。
【0018】
(第1実施形態)
本発明の第1の実施形態を図1および図2にしたがって説明する。ここでは、本発明の最も基本的な構成および動作のみを説明し、より具体的な構成および動作については後述の第2および第3実施形態で説明する。
【0019】
本実施形態の特徴は、各プロセッサの実行中のタスクの優先度を獲得するタスク優先度獲得部を設け、外部割り込み発生時に最も優先度の低いタスクを実行しているプロセッサに割り込み処理を実行させる点である。
【0020】
図1の装置は、符号101、102…103で示す複数のプロセッサを有する電子機器で、このような複数プロセッサを用いる構成はコンピュータ、プリンタその他の情報処理装置に共通するものである。
【0021】
図1において、プロセッサ101、102…103(符号は103で終っているがプロセッサの数は任意である)は、不図示の割り込み信号線などの状態に応じてあらかじめ定義された割り込みタスクを実行する割り込み処理機能を有している。
【0022】
符号104は各プロセッサ101、102…103より実行しているタスクの優先度を獲得するタスク優先度獲得部、105はタスク優先度獲得部104において獲得したタスクの優先度を使用して、プロセッサ101、102…103のうち最低の優先度のタスクを実行しているプロセッサを1つ選択するプロセッサ選択手段である。
【0023】
ここでいうタスクとは、プロセッサ101、102…103が実行する処理の単位で、たとえば、採用するOS(オペレーティングシステム)の実装方式によりその「タスク」の意味が異なる場合もあるが、本実施形態の場合は、「特定のプロセス」(実行中のあるアプリケーションプログラムを意味する単位)、あるいは「プリンタヘッドへのデータ出力」、「外部記憶装置デバイスに対するデータ入出力」などの処理単位が考えられる。
【0024】
このようなタスクについては、装置の仕様や目的に応じて優先度を割り付けることができる。たとえば本装置がインクジェットプリンタであったとすれば、インクジェットヘッドへの印刷データ転送を行なうタスクには極めて高いリアルタイム性が要求され、遅延が殆ど許されない。一方で、プリンタの入力インターフェースからの印刷データの入力を行なうタスクではインクジェットヘッドへのデータ転送タスクほどは高いリアルタイム性は要求されない。たとえば、このようにプロセッサのタスクが要求されるリアルタイム性に応じてそのタスクの優先度をあらかじめ設定することができる。
【0025】
タスク優先度獲得部104の具体的な構成については後述の実施形態に譲るが、タスク優先度獲得部104は、プロセッサ101、102…103が実行しているタスクの優先度を獲得する。たとえば、タスク優先度獲得部104は、以上のように装置の仕様や目的に応じて判っている定められたタスクの優先度の情報をレジスタなどに有していれば、何らかの方法でプロセッサ101、102…103が実行しているタスク(通常、あるタイミングでプロセッサ101、102…103が実行しているタスクは刻々と変化する)を特定し、各プロセッサのタスクのいずれが最優先か、あるいは最も優先度が低いか、などを判定することができる。
【0026】
これにより、プロセッサ選択手段105はプロセッサ101、102…103のうち最低の優先度のタスクを実行しているプロセッサを1つ選択することができ、その結果により後述の割り込み通知部109のプロセッサ選択動作を制御することができる。
【0027】
一方、符号106は割り込み受付部であり、I/O回路107(ネットワークインターフェースやプリンタインターフェースなど)で発生する入出力割り込み要求、タイマー108で発生するタイマー割り込み要求、および不図示の他の外部割り込み発生要因からの外部割り込み要求をすべて受け付ける。
【0028】
符号109は割り込み通知部で、この割り込み通知部109により、割り込み受付部106で受け付けた外部割り込み要求を、プロセッサ101、102…103のうちからプロセッサ選択手段105で決定された1つのプロセッサに通知することにより、各プロセッサで実行中のタスク優先度に応じて割り込み処理を実行させる。
【0029】
符号118はROMおよびRAM(あるいはさらに仮想記憶機構なども含む)から成るメモリで、プロセッサ101、102…103のプログラムの格納、あるいはタスク実行時のワークエリアとして用いられる。
【0030】
図2は図1の構成における動作をフローチャート図として示したものである。
【0031】
図2において、I/O回路107およびタイマ108、あるいは不図示の外部割り込み発生要因から外部割り込み要求が発生すると(ステップS201)、すべてその割り込みは割り込み受付部106に通知される(ステップS202)。
【0032】
割り込み受付部106で割り込みを受け付けると、割り込み通知部109はプロセッサ選択手段105に割り込み要求を通知すべきプロセッサを問い合わせる(ステップS203)。
【0033】
割り込み要求を通知すべきプロセッサの問い合わせを受けたプロセッサ選択手段105は、タスク優先度獲得部104を使用してプロセッサ101、102…103からそれぞれで実行しているタスクの優先度を獲得し(ステップS204)、獲得したタスクの優先度を比較することにより、最も優先度の低いタスクを実行しているプロセッサをプロセッサ101、102…103の中から1つ選択し(ステップS205)、割り込み通知部109へ選択したプロセッサを通知する(ステップS206)。
【0034】
割り込みすべきプロセッサの通知を受けた割り込み通知部109は、その通知された割り込みすべきプロセッサヘ、割り込み受付部106で受け付けた外部割り込み要求を通知する(ステップS207)。割り込み通知部109から割り込み要求を受けたプロセッサはあらかじめ定義された割り込み処理を実行する(ステップS208)。
【0035】
以上のようにして、マルチプロセッサシステムにおいて、外部割り込み発生時に最も低い優先度のタスクを実行しているプロセッサのみに割り込み要求を行なうことができ、高い優先度を持つタスクが阻害されることがなく、効率的にタスクを実行し、システム全体として効率的な割り込み処理を行なえるという効果がある。また、すべてのプロセッサが割り込みを受け付け可能であることにより、1つのプロセッサに障害が起きてもシステム全体の障害とならないという効果もある。
【0036】
(第2実施形態)
以下の第2および第3実施形態ではタスク優先度獲得部104の構成をより具体的に示す。
【0037】
図3は第1実施形態の図1に相当する図で、同一部分には同一符号を付してある。
【0038】
図3において、図1と異なるのはタスク優先度獲得部104の構成で、その他の部分は図1と同じである。図3において符号110、111…112はプロセッサ101、102…103で実行しているタスクの優先度を保持するタスク優先度バッファでありプロセッサ101、102…103にそれぞれ対応している。タスク優先度バッファ110、111…112の保持するタスク優先度は対応するプロセッサのタスクが切り替わる時に一度だけ新しいタスクの優先度に書き換えられる。
【0039】
このようにタスク優先度バッファ110〜112を更新するには、種々の構成が考えられるが、たとえば、プロセッサ101、102…103のタスクの切り換え(コンテキストスイッチ)が生じる時に、プロセッサ101、102…103(あるいは別のプロセッサであってもよい)のソフトウェアにより、新しく実行中となるタスクの優先度情報をタスク優先度バッファ110〜112に書き込むようにする。このタスクの優先度情報の形式は、たとえばプロセッサ選択手段105によるプロセッサ選択が容易に行なえるように0〜255のような数値表現が考えられる。
【0040】
実施形態1においては、ステップS204でプロセッサ101、102…103からそれぞれで実行しているタスクの優先度を獲得するよう説明したが、このステップS204で、タスク優先度バッファ110、111…112に保持されているタスク優先度を使用してもプロセッサ選択手段105は割り込みを実行させるべき最低優先度のタスクを実行しているプロセッサを決定することができる。
【0041】
たとえば、上記のように、数値表現でタスクの優先度情報がタスク優先度バッファ110、111…112に保持されているのであれば、プロセッサ選択手段105は優先度情報の最大値(あるいは最小値)を求めるだけで割り込みを実行させるべき最低優先度のタスクを実行しているプロセッサを決定でき、前述の第1実施形態と同様の効果を得ることができる。
【0042】
(第3実施形態)
図4にさらに異なるタスク優先度獲得部104の構成を示す。図4において、符号113はプロセッサ選択手段105により選択された最も実行中のタスクの優先度が低いプロセッサを特定する情報を保持するプロセッサバッファである。
【0043】
本実施形態でもタスク優先度バッファ110〜112が設けられており、このタスク優先度バッファ110〜112は、第2実施形態のタスク優先度バッファ110〜112と同様のもので、プロセッサ101〜103のタスクの切り換えが生じたときこれに応じて新しいタスクの優先度が対応するタスク優先度バッファ110〜112に書き込まれるものとする。
【0044】
第1実施形態、第2実施形態では、ステップS203で割り込み通知部109からの割り込み要求を通知すべきプロセッサの問い合わせがあった時、ステップS205においてタスク優先度獲得部104で獲得したタスクの優先度を比較して最も低い優先度のタスクを実行しているプロセッサをプロセッサ101、102…103の中から1つ選択するものとしたが、本実施形態の構成では、タスク優先度バッファ110、111…112が書き換えられた時に、タスク優先度獲得部104がタスク優先度バッファ110、111…112に新たに保持されたタスク優先度を比較して、最も低い優先度のタスクを実行しているプロセッサを選択してプロセッサバッファ113に保持しておき、割り込み通知部109からの問い合わせが有った時にプロセッサバッファ113の保持内容を通知するようにする。このような構成によっても、前述の第1実施形態同様の効果を期待することができる。
【0045】
なお、本実施形態の場合、図2のステップS203が終了した後、ステップS204、ステップS205は既に実行済みで結果が得られているのでスキップして、ステップS206を実行することになる。
【0046】
以上までに、第1〜第3の3つの実施形態を示したが、タスク優先度獲得部104は、たとえばプロセッサ101〜103(あるいは他のプロセッサ)のソフトウェアモジュールや専用のハードウェア回路から構成することができる。タスク優先度獲得部104をソフトウェアモジュールとして構成する場合には、たとえば、図2に示したような割り込み制御処理をオペレーティングシステムのカーネルのソフトウェアモジュールの1つとして実装する構成が考えられる。
【0047】
タスク優先度獲得部104の一部あるいは全部をソフトウェアとして実装する場合は、そのプログラムはメモリ118に格納しておけばよい。
【0048】
要は、タスク優先度獲得部104が複数プロセッサの実行しているタスクを認識でき、そのタスクの優先度に応じて、外部割り込み発生時に最も低い優先度のタスクを実行しているプロセッサのみに割り込み要求を実行させることができればよく、このような所期の動作を実現できるものであれば、タスク優先度獲得部104の具体的な構成は当業者において任意に設計変更が可能である。
【0049】
以上の3つの実施形態(第1実施形態〜第3実施形態)は、複数のプロセッサで実行中のタスクの優先度を獲得し、タスクの優先度に応じて割り込み処理を実行させるプロセッサを決定するものであったが、以下の第4〜第8実施形態では、外部割り込み発生時に各プロセッサがどのような割り込み処理を実行しているかに応じて新たな割り込み処理をどのプロセッサに実行させるかを決定する構成を示す。すなわち、以下の実施形態では、外部割り込み発生時に割り込み状態に無いプロセッサがあれば、その割り込み状態にないプロセッサに割り込み要求を行ない、すべてのプロセッサが割り込み状態にある時は、最も低い優先度の割り込みを実行しているプロセッサに割り込み要求を行なう。
【0050】
なお、第4〜第8実施形態において、第1〜第3実施形態と同一あるいは相当する機能部分については詳細な説明は省略するものとする。
【0051】
(第4実施形態)
図5において、符号1101、1102…1103は第1〜第3実施形態同様のプロセッサで、割り込み機能を有している。
【0052】
符号1104、1105…1106は、プロセッサ1101、1102…1103にそれぞれ含まれ、プロセッサ1101、1102…1103が割り込み状態に有るのか無いのかをプロセッサ外部に通知する割り込み状態通知部である。
【0053】
また、符号1107、1108…1109は、プロセッサ1101、1102…1103にそれぞれ含まれ、プロセッサ1101、1102…1103で実行している割り込み処理の優先度をプロセッサ外部に通知する割り込み優先度通知部である。
【0054】
割り込み状態通知部1104〜1106および割り込み優先度通知部1107〜1109は、ハードウェア的に可能であればプロセッサ1101〜1103のハードウェア信号線を介して上記の割り込み状態および優先度の情報を出力する構成とする。
【0055】
あるいは、割り込み状態通知部1104〜1106および割り込み優先度通知部1107〜1109は、プロセッサ1101〜1103のソフトウェアから構成してもよい。その場合は、プロセッサ1101〜1103が実行する割り込み処理の一部に上記の割り込み状態および優先度の情報を生成するルーチンを含め、生成された割り込み状態および優先度の情報を特定の制御線やデータバスを介してプロセッサ選択部1110に出力するものとする。
【0056】
符号1110はプロセッサ選択部で、次のように動作する。すなわち、プロセッサ選択部1110は、割り込み状態通知部1104、1105…1106から通知される割り込み状態および、割り込み優先度通知部1107、1108…1109から通知される割り込み優先度を利用して、プロセッサ1101、1102…1103のうち割り込み状態に無いものがあればそのうちの1つ、また、プロセッサ1101、1102…1103がすべて割り込み状態である時は、最も優先度の低い割り込みを実行しているプロセッサを1つ選択する。
【0057】
I/O回路1111、タイマー1112、割り込み受付部1113は、第1〜第3実施形態のI/O回路107、タイマー108、割り込み受付部106と同等、また、割り込み通知部1114は第1〜第3実施形態の割り込み通知部109と同等であるのでここでは詳細な説明は省略する。
【0058】
また、符号118はROMおよびRAM(あるいはさらに仮想記憶機構なども含む)から成るメモリで、プロセッサ1101、1102…1103のプログラムの格納、あるいはタスク実行時のワークエリアとして用いられる。
【0059】
プロセッサ選択部1110は、前述の第1〜第3実施形態と同様に、たとえばプロセッサ1101〜1103(あるいは他のプロセッサ)のソフトウェアモジュールや専用のハードウェア回路から構成することができる。プロセッサ選択部1110をソフトウェアモジュールとして構成する場合には、たとえば、後述の図6に示すような割り込み制御処理をオペレーティングシステムのカーネルのソフトウェアモジュールの1つとして実装する構成が考えられる。
【0060】
次に本実施形態の動作を図6のフローチャートを参照して説明する。
【0061】
I/O回路1111、タイマー1112または不図示の他の外部割り込み発生要因から外部割り込み要求が発生すると(ステップS1201)、すべて割り込み受付部1113に通知される(ステップS1202)。割り込み受付部1113が割り込みを受け付けると、割り込み通知部1114はプロセッサ選択部1110に割り込み要求を通知すべきプロセッサを問い合わせる(ステップS1203)。
【0062】
割り込み要求を通知すべきプロセッサの問い合わせを受けたプロセッサ選択部1110は、割り込み状態通知部1104、1105…1106からプロセッサ1101、1102…1103の現在の割り込み状態をそれぞれ獲得し(ステップS1204)、割り込み状態に無いプロセッサが有るかチェックする(ステップS1205)。
【0063】
割り込み状態に無いプロセッサがあれば、割り込み状態に無いプロセッサの中から1つのプロセッサを選択し(ステップS1206)、ステップS1209へ進む。
【0064】
ステップS1205ですべてのプロセッサ1101、1102…1103が割り込み状態にあれば、割り込み優先度通知部1107、1108…1109からプロセッサ1101、1102…1103で実行している割り込み処理の優先度をそれぞれ獲得し(ステップS1207)、獲得した割り込みの優先度を比較することにより、最も低い優先度の割り込みをを実行しているプロセッサをプロセッサ1101、1102…1103の中から1つ選択し(ステップS1208)、ステップS1209へ進む。
【0065】
ステップS1209では、ステップS1206またはステップS1208で選択したプロセッサを割り込み通知部1114へ通知し、ステップS1210へ進む。
【0066】
割り込みすべきプロセッサの通知を受けた割り込み通知部1114は、通知された割り込みすべきプロセッサヘ割り込み受付部1113で受け付けた外部割り込み要求を通知する(ステップS1210)。割り込み通知部1114から割り込み要求を受けたプロセッサは割り込み処理を実行する(ステップS1211)。
【0067】
以上のように、外部割り込みが発生した時に、割り込み状態に無いプロセッサに割り込み要求を行なうことにより、常に割り込み処理を通常タスクよりも優先的に実行させることができる。また、すべてのプロセッサが割り込み状態にある時には、最も低い割り込み優先度を持つ割り込み処理を実行しているプロセッサに割り込み要求を行なうことにより、割り込み優先度に従った効率的な割り込み処理を行なうことができる。さらに、すべてのプロセッサが割り込みを受け付け可能にすることにより、1つのプロセッサに障害が起きてもシステム全体の障害とならないという効果もある。
【0068】
(第5実施形態)
上記第4実施形態では、ステップS1207で割り込み優先度通知部1107、1108…1109からプロセッサ1101、1102…1103で実行している割り込みの優先度をそれぞれ獲得するようにしているが、ステップS1205より前にこの優先度の獲得処理を行なうようにしても同様の効果が得られることはいうまでもない。
【0069】
(第6実施形態)
図7を参照して第6実施形態を説明する。本実施形態は、プロセッサ選択部1110の構成をより具体的に説明するものである。
【0070】
図7において、符号1115、1116…1117はプロセッサ1101、1102…1103が現在割り込み状態にあるのかないのかを保持する割り込み状態バッファである。これら割り込み状態バッファ1115〜1117は、プロセッサ1101、1102…1103にそれぞれ対応し、プロセッサ1101、1102…1103が割り込み要求を受け付けると、対応する割り込み状態通知部1104、1105…1106から割り込みを受け付けた事が通知され、「割り込み状態」のフラグが対応する割り込み状態バッファ1115〜1117に書き込まれる。そして、プロセッサ1101、1102…1103が割り込み処理を終了すると、対応する割り込み状態通知部1104、1105…1106から割り込み処理終了が通知され、対応する割り込み状態バッファ1115〜1117の「割り込み状態」フラグがクリアされる。
【0071】
第4実施形態においては、図6のステップS1204で割り込み状態通知部1104、1105…1106からプロセッサ1101、1102…1103の割り込み状態を獲得するものとしたが、このステップS1204において、割り込み状態バッファ1115〜1117に保持されている情報をチェックすることにより同様の効果を得ることができる。
【0072】
(第7実施形態)
第6実施形態では、割り込み状態バッファ1115、1116…1117は、対応するプロセッサ1101、1102…1103が割り込み要求を受け付けた時に割り込み状態通知部1104、1105…1106から割り込みを受け付けた事が通知され、これにより「割り込み状態」のフラグが書き込まれるものとしたが、割り込み状態通知部1104、1105…1106からは通知せずに、図6のステップS1206またはステップS1208で割り込みすべきプロセッサを選択した後、選択されたプロセッサに対応する割り込み状態バッファ1115、1116…1117に「割り込み状態」のフラグを書き込んでも同様の効果が得られる。
【0073】
(第8実施形態)
図8を参照して第8実施形態を説明する。本実施形態は、第6あるいは第7実施形態の構成にさらに割り込み優先度バッファ1118、1119…1120を設けたものである。
【0074】
図8において、符号1118、1119…1120はプロセッサ1101、1102…1103で実行している割り込み処理の優先度を保持する割り込み優先度バッファであり、プロセッサ1101、1102…1103にそれぞれ対応している。
【0075】
本実施形態においては、対応するプロセッサで実行する割り込み処理が切り替わった時に一度だけプロセッサの割り込み優先度通知部から割り込み優先度を通知するものとし、この優先度情報により割り込み優先度バッファ1118、1119…1120に保持されている割り込み優先度が書き換えられるものとする。
【0076】
第4実施形態においては、プロセッサ選択部1110は割り込み優先度通知部1107、1108…1109からプロセッサ1101、1102…1103で実行している割り込みの優先度をそれぞれ獲得するとしているが、本実施形態では上記のようにしてプロセッサ選択部1110内の割り込み優先度バッファ1118、1119…1120で保持、更新されている割り込み優先度情報を使用している。このようにしても、同様の効果が得られることは言うまでもない。
【0077】
【発明の効果】
以上の説明から明らかなように、本発明によれば、外部割り込み要求を受け付ける割り込み機能を備えた複数のプロセッサを持つマルチプロセッサシステム、その制御方法、および制御プログラムにおいて、
プロセッサの各々で実行しているタスクの優先度を獲得するタスク優先度獲得手段(または工程)と、
タスク優先度獲得手段(または工程)により獲得されたプロセッサのタスクの優先度に基づき最も優先度の低いタスクを実行しているプロセッサを選択するプロセッサ選択手段(または工程)と、
発生した外部割り込み要求をすべて受け付ける割り込み受付手段(または工程)と、
割り込み受付手段(または工程)で受け付けた割り込み要求をプロセッサ選択手段(または工程)により決定したプロセッサに通知する割り込み通知手段(または工程)を有し、
プロセッサ選択手段(または工程)により選択されたプロセッサに発生した外部割り込み要求に対応した割り込み処理を実行させる
構成を採用しているので、外部割り込み発生時に最も低い優先度のタスクを実行しているプロセッサのみに割り込み要求を行なうことができ、高い優先度を持つタスクが阻害されることがなく、効率的にタスクを実行し、システム全体として効率的な割り込み処理を行なえるという効果がある。また、すべてのプロセッサが割り込みを受け付け可能であることにより、1つのプロセッサに障害が起きてもシステム全体の障害とならないという効果もある。
【0078】
あるいは、
各プロセッサの割り込み状態の有無をプロセッサ外部に通知する割り込み状態通知手段(または工程)と、
割り込み状態に有る時に現在実行している割り込みの優先度をプロセッサ外部に通知する割り込み優先度通知手段(または工程)と、
割り込み状態通知手段(または工程)により得られた各々のプロセッサの割り込み状態と、割り込み優先度通知手段(または工程)によって得られた各々のプロセッサの割り込み優先度から割り込み状態に無いプロセッサがあれば割り込み状態に無いプロセッサを、また、すべてのプロセッサが割り込み状態に有る時は最も低い割り込み優先度の割り込みを実行しているプロセッサを選択するプロセッサ選択手段(または工程)と、
発生した外部割り込みの要求をすべて受け付ける割り込み受付手段(または工程)と、
割り込み受付手段(または工程)で受け付けた割り込み要求をプロセッサ選択手段(または工程)により決定したプロセッサに通知する割り込み通知手段(または工程)を有し、
プロセッサ選択手段(または工程)により選択された外部割り込み要求に対応した割り込み処理を実行させる構成を採用しているので、外部割り込みが発生した時に、割り込み状態に無いプロセッサに割り込み要求を行なうことにより、常に割り込み処理を通常タスクよりも優先的に実行させることができる。また、すべてのプロセッサが割り込み状態にある時には、最も低い割り込み優先度を持つ割り込み処理を実行しているプロセッサに割り込み要求を行なうことにより、割り込み優先度に従った効率的な割り込み処理を行なうことができる。さらに、すべてのプロセッサが割り込みを受け付け可能にすることにより、1つのプロセッサに障害が起きてもシステム全体の障害とならないという効果もある。
【図面の簡単な説明】
【図1】本発明の第1実施形態の構成を示すブロック図である。
【図2】本発明の第1実施形態の動作を示すフローチャート図である。
【図3】本発明の第2実施形態の構成を示すブロック図である。
【図4】本発明の第3実施形態の構成を示すブロック図である。
【図5】本発明の第4実施形態の構成を示すブロック図である。
【図6】本発明の第4実施形態の動作を示すフローチャート図である。
【図7】本発明の第6実施形態の構成を示すブロック図である。
【図8】本発明の第8実施形態の構成を示すブロック図である。
【符号の説明】
101〜103 プロセッサ
104 タスク優先度獲得部
105 プロセッサ選択手段
106 割り込み受付部
109 割り込み通知部
110〜112 タスク優先度バッファ
113 プロセッサバッファ
118 メモリ
1101〜1103 プロセッサ
1104〜1106 割り込み状態通知部
1107〜1109 割り込み優先度通知部
1110 プロセッサ選択部
1113 割り込み受付部
1114 割り込み通知部
1115〜1117 割り込み状態バッファ
1118〜1120 割り込み優先度バッファ

Claims (9)

  1. 外部割り込み要求を受け付ける割り込み機能を備えた複数のプロセッサを持つマルチプロセッサシステムにおいて、
    前記プロセッサの各々で実行しているタスクの優先度を獲得するタスク優先度獲得手段と、
    前記タスク優先度獲得手段により獲得された前記プロセッサのタスクの優先度に基づき最も優先度の低いタスクを実行しているプロセッサを選択するプロセッサ選択手段と、
    発生した外部割り込み要求をすべて受け付ける割り込み受付手段と、
    前記割り込み受付手段で受け付けた割り込み要求を前記プロセッサ選択手段により決定したプロセッサに通知する割り込み通知手段を有し、
    前記プロセッサ選択手段により選択されたプロセッサに、発生した外部割り込み要求に対応した割り込み処理を実行させることを特徴とするマルチプロセッサシステム。
  2. 前記プロセッサの各々で実行しているタスクの優先度を記憶するためのタスク優先度記憶手段と、
    前記プロセッサの各々で実行しているタスクの切替に応じて前記タスク優先度記憶手段に記憶されたタスク優先度を更新する優先度更新手段とを更に有し、
    前記タスク優先度獲得手段は、前記タスク優先度記憶手段からタスクの優先度を獲得することを特徴とする請求項1に記載のマルチプロセッサシステム。
  3. 外部割り込み要求を受け付ける割り込み機能を備えた複数のプロセッサを持つマルチプロセッサシステムの制御方法において、
    前記プロセッサの各々で実行しているタスクの優先度を獲得するタスク優先度獲得工程と、
    前記タスク優先度獲得工程により獲得された前記プロセッサのタスクの優先度に基づき最も優先度の低いタスクを実行しているプロセッサを選択するプロセッサ選択工程と、
    発生した外部割り込み要求をすべて受け付ける割り込み受付工程と、
    前記割り込み受付工程で受け付けた割り込み要求を前記プロセッサ選択工程により決定したプロセッサに通知する割り込み通知工程を有し、
    前記プロセッサ選択工程により選択されたプロセッサに、発生した外部割り込み要求に対応した割り込み処理を実行させることを特徴とするマルチプロセッサシステムの制御方法。
  4. 外部割り込み要求を受け付ける割り込み機能を備えた複数のプロセッサを持つマルチプロセッサシステムの制御プログラムにおいて、
    前記プロセッサの各々で実行しているタスクの優先度を獲得するタスク優先度獲得工程と、
    前記タスク優先度獲得工程により獲得された前記プロセッサのタスクの優先度に基づき最も優先度の低いタスクを実行しているプロセッサを選択するプロセッサ選択工程と、
    発生した外部割り込み要求をすべて受け付ける割り込み受付工程と、
    前記割り込み受付工程で受け付けた割り込み要求を前記プロセッサ選択工程により決定したプロセッサに通知する割り込み通知工程を含み、
    前記プロセッサ選択工程により選択されたプロセッサに、発生した外部割り込み要求に対応した割り込み処理を実行させることを特徴とするマルチプロセッサシステムの制御プログラム。
  5. 外部割り込み要求を受け付ける割り込み機能を備えた複数のプロセッサを持つマルチプロセッサシステムにおいて、
    各プロセッサの割り込み状態の有無をプロセッサ外部に通知する割り込み状態通知手段と、
    割り込み状態に有る時に現在実行している割り込みの優先度をプロセッサ外部に通知する割り込み優先度通知手段と、
    前記割り込み状態通知手段により得られた各々のプロセッサの割り込み状態と、前記割り込み優先度通知手段によって得られた各々のプロセッサの割り込み優先度から割り込み状態に無いプロセッサがあれば割り込み状態に無いプロセッサを、また、すべてのプロセッサが割り込み状態に有る時は最も低い割り込み優先度の割り込みを実行しているプロセッサを選択するプロセッサ選択手段と、
    発生した外部割り込みの要求をすべて受け付ける割り込み受付手段と、
    前記割り込み受付手段で受け付けた割り込み要求を前記プロセッサ選択手段により決定したプロセッサに通知する割り込み通知手段を有し、
    前記プロセッサ選択手段により選択されたプロセッサに、外部割り込み要求に対応した割り込み処理を実行させることを特徴とするマルチプロセッサシステム。
  6. 前記割り込み状態通知手段は、各プロセッサにおける割り込みの受け付け及び終了に応じて通知を行なうことを特徴とする請求項5に記載のマルチプロセッサシステム。
  7. 前記割り込み優先度通知手段は、各プロセッサにおける割り込み処理の切り替えに応じて通知を行なうことを特徴とする請求項5に記載のマルチプロセッサシステム。
  8. 外部割り込み要求を受け付ける割り込み機能を備えた複数のプロセッサを持つマルチプロセッサシステムの制御方法において、
    各プロセッサの割り込み状態の有無をプロセッサ外部に通知する割り込み状態通知工程と、
    割り込み状態に有る時に現在実行している割り込みの優先度をプロセッサ外部に通知する割り込み優先度通知工程と、
    前記割り込み状態通知工程により得られた各々のプロセッサの割り込み状態と、前記割り込み優先度通知工程によって得られた各々のプロセッサの割り込み優先度から割り込み状態に無いプロセッサがあれば割り込み状態に無いプロセッサを、また、すべてのプロセッサが割り込み状態に有る時は最も低い割り込み優先度の割り込みを実行しているプロセッサを選択するプロセッサ選択工程と、
    発生した外部割り込みの要求をすべて受け付ける割り込み受付工程と、
    前記割り込み受付工程で受け付けた割り込み要求を前記プロセッサ選択工程により決定したプロセッサに通知する割り込み通知工程を有し、
    前記プロセッサ選択工程により選択されたプロセッサに、外部割り込み要求に対応した割り込み処理を実行させることを特徴とするマルチプロセッサシステムの制御方法。
  9. 外部割り込み要求を受け付ける割り込み機能を備えた複数のプロセッサを持つマルチプロセッサシステムの制御プログラムにおいて、
    各プロセッサの割り込み状態の有無をプロセッサ外部に通知する割り込み状態通知工程と、
    割り込み状態に有る時に現在実行している割り込みの優先度をプロセッサ外部に通知する割り込み優先度通知工程と、
    前記割り込み状態通知工程により得られた各々のプロセッサの割り込み状態と、前記割り込み優先度通知工程によって得られた各々のプロセッサの割り込み優先度から割り込み状態に無いプロセッサがあれば割り込み状態に無いプロセッサを、また、すべてのプロセッサが割り込み状態に有る時は最も低い割り込み優先度の割り込みを実行しているプロセッサを選択するプロセッサ選択工程と、
    発生した外部割り込みの要求をすべて受け付ける割り込み受付工程と、
    前記割り込み受付工程で受け付けた割り込み要求を前記プロセッサ選択工程により決定したプロセッサに通知する割り込み通知工程を有し、
    前記プロセッサ選択工程により選択されたプロセッサに、外部割り込み要求に対応した割り込み処理を実行させることを特徴とするマルチプロセッサシステムの制御プログラム。
JP2003168579A 2003-06-13 2003-06-13 マルチプロセッサシステム、マルチプロセッサシステムの制御方法、およびマルチプロセッサシステムの制御プログラム Pending JP2005004562A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2003168579A JP2005004562A (ja) 2003-06-13 2003-06-13 マルチプロセッサシステム、マルチプロセッサシステムの制御方法、およびマルチプロセッサシステムの制御プログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2003168579A JP2005004562A (ja) 2003-06-13 2003-06-13 マルチプロセッサシステム、マルチプロセッサシステムの制御方法、およびマルチプロセッサシステムの制御プログラム

Publications (1)

Publication Number Publication Date
JP2005004562A true JP2005004562A (ja) 2005-01-06

Family

ID=34093980

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2003168579A Pending JP2005004562A (ja) 2003-06-13 2003-06-13 マルチプロセッサシステム、マルチプロセッサシステムの制御方法、およびマルチプロセッサシステムの制御プログラム

Country Status (1)

Country Link
JP (1) JP2005004562A (ja)

Cited By (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006216042A (ja) * 2005-02-04 2006-08-17 Sony Computer Entertainment Inc 割り込み処理のためのシステムおよび方法
JP2006243864A (ja) * 2005-03-01 2006-09-14 Seiko Epson Corp プロセッサおよび情報処理方法
JP2006259968A (ja) * 2005-03-16 2006-09-28 Seiko Epson Corp プロセッサ及びこのプロセッサ適用される割込み処理制御方法
JP2008123157A (ja) * 2006-11-10 2008-05-29 Seiko Epson Corp プロセッサ及び割込み制御方法
US7386642B2 (en) 2005-01-28 2008-06-10 Sony Computer Entertainment Inc. IO direct memory access system and method
US7680972B2 (en) 2005-02-04 2010-03-16 Sony Computer Entertainment Inc. Micro interrupt handler
KR20110007032A (ko) * 2010-06-21 2011-01-21 이중복 주박을 이용한 펠릿 연료
US7979861B2 (en) 2006-01-16 2011-07-12 Seiko Epson Corporation Multi-processor system and program for causing computer to execute controlling method of multi-processor system
JP2012503254A (ja) * 2008-09-19 2012-02-02 クゥアルコム・インコーポレイテッド マルチスレッドプロセッサ内で割り込みを割り当てるための方法及びシステム
JP2014524626A (ja) * 2011-08-23 2014-09-22 サムスン エレクトロニクス カンパニー リミテッド マルチコアシステムのインターラプト割り当て方法及び装置

Cited By (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7386642B2 (en) 2005-01-28 2008-06-10 Sony Computer Entertainment Inc. IO direct memory access system and method
US7680972B2 (en) 2005-02-04 2010-03-16 Sony Computer Entertainment Inc. Micro interrupt handler
JP2006216042A (ja) * 2005-02-04 2006-08-17 Sony Computer Entertainment Inc 割り込み処理のためのシステムおよび方法
US7350006B2 (en) 2005-02-04 2008-03-25 Sony Computer Entertainment Inc. System and method of interrupt handling
JP4609113B2 (ja) * 2005-03-01 2011-01-12 セイコーエプソン株式会社 プロセッサ
JP2006243864A (ja) * 2005-03-01 2006-09-14 Seiko Epson Corp プロセッサおよび情報処理方法
JP2006259968A (ja) * 2005-03-16 2006-09-28 Seiko Epson Corp プロセッサ及びこのプロセッサ適用される割込み処理制御方法
US7979861B2 (en) 2006-01-16 2011-07-12 Seiko Epson Corporation Multi-processor system and program for causing computer to execute controlling method of multi-processor system
JP2008123157A (ja) * 2006-11-10 2008-05-29 Seiko Epson Corp プロセッサ及び割込み制御方法
US7853743B2 (en) 2006-11-10 2010-12-14 Seiko Epson Corporation Processor and interrupt controlling method
JP2012503254A (ja) * 2008-09-19 2012-02-02 クゥアルコム・インコーポレイテッド マルチスレッドプロセッサ内で割り込みを割り当てるための方法及びシステム
US8656145B2 (en) 2008-09-19 2014-02-18 Qualcomm Incorporated Methods and systems for allocating interrupts in a multithreaded processor
KR20110007032A (ko) * 2010-06-21 2011-01-21 이중복 주박을 이용한 펠릿 연료
JP2014524626A (ja) * 2011-08-23 2014-09-22 サムスン エレクトロニクス カンパニー リミテッド マルチコアシステムのインターラプト割り当て方法及び装置
JP2017162522A (ja) * 2011-08-23 2017-09-14 サムスン エレクトロニクス カンパニー リミテッド マルチコアシステムのインターラプト割り当て方法及び装置

Similar Documents

Publication Publication Date Title
KR100733852B1 (ko) 계산기 시스템
US7366814B2 (en) Heterogeneous multiprocessor system and OS configuration method thereof
US20070198759A1 (en) Advanced interrupt processor in embedded systems
JP2009265963A (ja) 情報処理システム及びタスクの実行制御方法
JP2005056067A (ja) Dma転送制御装置
JP2008009697A (ja) 画像処理装置及びプログラム
JP2005004562A (ja) マルチプロセッサシステム、マルチプロセッサシステムの制御方法、およびマルチプロセッサシステムの制御プログラム
US10545890B2 (en) Information processing device, information processing method, and program
JP2007245673A (ja) 画像形成装置
US20130125131A1 (en) Multi-core processor system, thread control method, and computer product
US20120226842A1 (en) Enhanced prioritising and unifying interrupt controller
EP3306474A1 (en) Clock task processing method, apparatus and device
US20060184948A1 (en) System, method and medium for providing asynchronous input and output with less system calls to and from an operating system
JP2019149086A (ja) データ処理装置及びデータ転送方法
JP2005092780A (ja) リアルタイムプロセッサシステム及び制御方法
US8359564B2 (en) Circuit design information generating equipment, function execution system, and memory medium storing program
JP4259390B2 (ja) 並列演算処理装置
JP2006268753A (ja) Dma回路及びコンピュータシステム
JP4594889B2 (ja) 複数の処理装置を備えたシステム上で実行されるプログラムのトレース方法、および、複数の処理装置を備えたシステム
JP2005258509A (ja) ストレージ装置
US20040190048A1 (en) Image forming device and method
CN113439260A (zh) 针对低时延存储设备的i/o完成轮询
JPH05143256A (ja) 印刷装置
JPH1078856A (ja) 優先度別割り込み印刷方法およびシステム
JPH11167494A (ja) 演算処理装置、及び演算処理装置のレジスタ管理方法