(57)【要約】【課題】タスクの優先度と割り込み処理の優先度とを簡単に比較でき、タスクの割当を効率的に行え、かつ、各プロセッサの負荷の低減も図る。【解決手段】複数のプロセッサ１１Ａ〜１１Ｄを有し、外部割込処理の優先度レベルおよびタスク処理の優先度レベルに基づいていずれかのプロセッサ１１Ａ〜１１Ｄに割込処理およびタスク処理を行わせるための制御を行う情報処理装置１０において、タスクコントローラ１３は、外部割込処理の優先度レベルおよび前記タスク処理に対応する優先度レベルを直接比較可能な処理優先度レベルに変換し、処理優先度レベルを、前記外部割込処理あるいは前記タスク処理に対応づけて前記プロセッサ毎に記憶し、記憶されている優先度レベルを互いに比較し、処理要求に対応する外部割込処理あるいはタスク処理を割り当てるべきプロセッサを判別する。【選択図】図２
2008197771.tif 000002
【特許請求の範囲】
【請求項１】
複数のプロセッサを有し、外部割込処理の優先度レベルおよびタスク処理の優先度レベルに基づいていずれかの前記プロセッサにタスク処理および外部割込処理を行わせるための制御を行う情報処理装置において、
前記外部割込処理の優先度レベルおよび前記タスク処理に対応する優先度レベルを直接比較可能な処理優先度レベルに変換する優先度変換部と、
前記処理優先度レベルを、前記外部割込処理あるいは前記タスク処理に対応づけて前記プロセッサ毎に記憶する処理優先度記憶部と、
前記処理優先度記憶部に記憶されている優先度レベルを互いに比較し、前記処理要求に対応する前記外部割込処理あるいは前記タスク処理を割り当てるべきプロセッサを判別する処理割当部と、
を備えたことを特徴とする情報処理装置。
【請求項２】
請求項１記載の情報処理装置において、
前記優先度変換部は、入力された前記外部割込処理に対応する前記優先度レベルおよび前記タスク処理に対応する前記優先度レベルのうち、いずれか一方をビット反転させて、優先度レベルデータを生成する入力反転部を備え、前記優先度レベルデータに前記外部割込処理の優先度レベルあるいは前記タスク処理に対応する優先度レベルのいずれであるかを表す種別データを付加して、処理優先度データとすることを特徴とする情報処理装置。
【請求項３】
請求項２記載の情報処理装置において、
前記種別データに基づいて、前記処理優先度データに含まれる優先度レベルデータの逆変換を行って、前記プロセッサに出力する出力反転部を備えたことを特徴とする情報処理装置。
【請求項４】
請求項２または請求項３記載の情報処理装置において、
前記優先度変換部は、前記処理優先度データに多重割込レベルデータを含ませることを特徴とする情報処理装置。
【請求項５】
請求項３または請求項４記載の情報処理装置において、
前記優先度変換部は、前記処理優先度データの最上位ビット側から最下位ビット側に向かって、前記種別データに対応するビット列、前記優先度レベルデータに対応するビット列の順番で配置したことを特徴とする情報処理装置。
【請求項６】
請求項４記載の情報処理装置において、
前記優先度変換部は、前記処理優先度データの最上位ビット側から最下位ビット側に向かって、前記種別データに対応するビット列、前記優先度レベルデータに対応するビット列、前記多重割込レベルデータに対応するビット列の順番で配置したことを特徴とする情報処理装置。
【請求項７】
請求項１ないし請求項６のいずれかに記載の情報処理装置において、
前記処理割当部により、前記タスク処理あるいは前記外部割込処理を割り当てるべきプロセッサが判別された場合に、当該タスク処理あるいは当該外部割込処理を割り当てるべきプロセッサを特定する情報を記憶するプロセッサ特定情報記憶部を備えたことを特徴とする情報処理装置。
【請求項８】
請求項７記載の情報処理装置において、
前記処理切替要求を受けたプロセッサから、前記割込要求に対応するタスク処理あるいは前記割込処理についての優先度レベルの通知を受けて、前記処理優先度記憶部の記憶内容を更新する処理優先度更新部を備えたことを特徴とする情報処理装置。
【請求項９】
請求項６ないし請求項８のいずれかに記載の情報処理装置において、
前記プロセッサが実行している前記タスク処理あるいは前記割込処理の優先度レベルを前記処理優先度記憶部に記憶するに際し、当該処理が多重外部割込である場合には、多重外部割込の段数に応じて、前記優先度レベルを、より優先度が高い側の値となるように設定することを特徴とする情報処理装置。
【請求項１０】
複数のプロセッサを有し、外部割込処理の優先度レベルおよびタスク処理の優先度レベルに基づいていずれかの前記プロセッサにタスク処理および外部割込処理を行わせるための制御を行う情報処理装置の制御方法において、
前記外部割込処理の優先度レベルおよび前記タスク処理に対応する優先度レベルを直接比較可能な処理優先度レベルに変換する優先度変換過程と、
前記処理優先度レベルを、前記外部割込処理あるいは前記タスク処理に対応づけて前記プロセッサ毎に記憶する処理優先度記憶過程と、
前記処理優先度記憶過程において記憶された優先度レベルを互いに比較し、前記処理要求に対応する前記外部割込処理あるいは前記タスク処理を割り当てるべきプロセッサを判別する処理割当過程と、
を備えたことを特徴とする情報処理装置の制御方法。
【請求項１１】
複数のプロセッサを有し、外部割込処理の優先度レベルおよびタスク処理の優先度レベルに基づいていずれかの前記プロセッサにタスク処理および外部割込処理を行わせるための制御を行う情報処理装置をコンピュータにより制御するための制御プログラムにおいて、
前記外部割込処理の優先度レベルおよび前記タスク処理に対応する優先度レベルを直接比較可能な処理優先度レベルに変換させ、
前記処理優先度レベルを、前記外部割込処理あるいは前記タスク処理に対応づけて前記プロセッサ毎に記憶させ、
前記記憶された優先度レベルを互いに比較させ、前記処理要求に対応する前記外部割込処理あるいは前記タスク処理を割り当てるべきプロセッサを判別させる、
ことを特徴とする制御プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理装置、情報処理方法および制御プログラムに係り、特に複数のプロセッサを有するマルチプロセッサ型の情報処理装置において、マルチタスク処理時に各プロセッサに処理を割り当てるための情報処理装置、情報処理方法および制御プログラムに関する。
【背景技術】
【０００２】
従来より複数のプロセッサを備え、同時に複数のタスクをハードウェア的に処理するマルチタスクプロセッサ（マルチタスク情報処理装置）が知られている。
このようなマルチタスクプロセッサにおいては、複数のタスクが発生した場合には、優先度（優先順位）の高いタスクを優先的に各プロセッサに割り当てるようにされていた（例えば、特許文献１参照）。また、割込処理が発生した場合にも、当該割込処理の優先度（優先順位）の高い割り込み処理を優先的に各プロセッサに割り当てるようにされていた。
【特許文献１】特開２００６−７９４６０号公報
【発明の開示】
【発明が解決しようとする課題】
【０００３】
上述したように、上記従来のマルチプロセッサユニットにおいては、割込処理をいずれのＣＰＵに割り当てるかは、各ＣＰＵで実行しているタスク（プロセスまたはスレッド）の優先度レベルまたは割込処理の優先度レベルを比較して判断することとなっていた。
しかしながら、タスク同士の優先度あるいは割込処理同士の優先度は、単純に値を比較すればよいが、タスクの優先度と割り込み処理の優先度は、単純に値を比較することができなかった。
これは、一般にタスクの優先度は、値が小さいほど優先度が高いのに対し、割込処理の優先度は、値が大きいほど優先度が高いためであり、単純に値だけを比較することはできなかったからである。
そこで、本発明の目的は、タスクの優先度と割り込み処理の優先度とを簡単に比較でき、タスクの割当を効率的に行え、かつ、各プロセッサの負荷の低減も図ることが可能な情報処理装置、情報処理方法および制御プログラムを提供することにある。
【課題を解決するための手段】
【０００４】
上記課題を解決するため、複数のプロセッサを有し、外部割込処理の優先度レベルおよびタスク処理の優先度レベルに基づいていずれかの前記プロセッサにタスク処理および外部割込処理を行わせるための制御を行う情報処理装置において、前記外部割込処理の優先度レベルおよび前記タスク処理に対応する優先度レベルを直接比較可能な処理優先度レベルに変換する優先度変換部と、前記処理優先度レベルを、前記外部割込処理あるいは前記タスク処理に対応づけて前記プロセッサ毎に記憶する処理優先度記憶部と、前記処理優先度記憶部に記憶されている優先度レベルを互いに比較し、前記処理要求に対応する前記外部割込処理あるいは前記タスク処理を割り当てるべきプロセッサを判別する処理割当部と、を備えたことを特徴としている。
【０００５】
上記構成によれば、優先度変換部は、前記外部割込処理の優先度レベルおよび前記タスク処理に対応する優先度レベルを直接比較可能な処理優先度レベルに変換する。
処理優先度記憶部は、前記外部割込処理あるいは前記タスク処理に対応づけて前記プロセッサ毎に記憶する。
これらの結果、処理割当部は、前記処理優先度記憶部に記憶されている優先度レベルを互いに比較し、前記処理要求に対応する前記外部割込処理あるいは前記タスク処理を割り当てるべきプロセッサを判別する。
したがって、外部割込処理の優先度レベルおよびタスク処理に対応する優先度レベルを直接比較することが可能となり、外部割込処理の優先度とタスク処理の優先度とを簡単に比較でき、外部割込処理およびタスク処理の割当を効率的に行え、かつ、各プロセッサの負荷の低減も図ることができる。
【０００６】
この場合において、前記優先度変換部は、入力された前記外部割込処理に対応する前記優先度レベルおよび前記タスク処理に対応する前記優先度レベルのうち、いずれか一方をビット反転させて、優先度レベルデータを生成する入力反転部を備え、前記優先度レベルデータに前記外部割込処理の優先度レベルあるいは前記タスク処理に対応する優先度レベルのいずれであるかを表す種別データを付加して、処理優先度データとするようにしてもよい。
上記構成によれば、優先度の高さの変化と値の変化を外部割込処理とタスク処理とで統一することができるので、比較が容易となるとともに、いずれの優先度であるかを容易に把握することができる。
【０００７】
また、前記種別データに基づいて、前記処理優先度データに含まれる優先度レベルデータの逆変換を行って、前記プロセッサに出力する出力反転部を備えるようにしてもよい。
上記構成によれば、プロセッサ側では、何の考慮をすることもなく、割込処理の優先度とタスク処理の優先度を扱えることとなる。
また、前記優先度変換部は、前記処理優先度データに多重割込レベルデータを含ませるようにしてもよい。
上記構成によれば、優先度を多重割込レベルも含めて比較することが可能となる。
【０００８】
また、前記優先度変換部は、前記処理優先度データの最上位ビット側から最下位ビット側に向かって、前記種別データに対応するビット列、前記優先度レベルデータに対応するビット列の順番で配置するようにしてもよい。
上記構成によれば、処理の種別→優先度レベルの順番の重み付けで実際の優先度を比較することができる。
また、前記優先度変換部は、前記処理優先度データの最上位ビット側から最下位ビット側に向かって、前記種別データに対応するビット列、前記優先度レベルデータに対応するビット列、前記多重割込レベルデータに対応するビット列の順番で配置するようにしてもよい。
上記構成によれば、処理の種別→優先度レベル→多重割込レベルの順番の重み付けで実際の優先度を比較することができる。
【０００９】
また、前記処理割当部により、前記タスク処理あるいは前記外部割込処理を割り当てるべきプロセッサが判別された場合に、当該タスク処理あるいは当該外部割込処理を割り当てるべきプロセッサを特定する情報を記憶するプロセッサ特定情報記憶部を備えるようにしてもよい。
上記構成によれば、プロセッサ特定情報記憶部は、前記タスク処理あるいは前記外部割込処理を割り当てるべきプロセッサが判別された場合に、当該タスク処理あるいは当該外部割込処理を割り当てるべきプロセッサを特定する情報を記憶しているので、プロセッサ特定情報記憶部を参照するだけで、直ちに処理を割り当てることが可能となる。
また、前記処理切替要求を受けたプロセッサから、前記割込要求に対応するタスク処理あるいは前記割込処理についての優先度レベルの通知を受けて、前記処理優先度記憶部の記憶内容を更新する処理優先度更新部を備えるようにしてもよい。
上記構成によれば、常に処理優先度記憶部の記憶内容を最新のものとすることができ、迅速に最適なプロセッサにタスク処理あるいは外部割込処理を割り当てることができる。
【００１０】
また、前記プロセッサが実行している前記タスク処理あるいは前記割込処理の優先度レベルを前記処理優先度記憶部に記憶するに際し、当該処理が多重外部割込である場合には、多重外部割込の段数に応じて、前記優先度レベルを、より優先度が高い側の値となるように設定するようにしてもよい。
上記構成によれば、特定のプロセッサに処理が偏ることなく、均等に処理を割り当てて、処理効率の向上が図れる。
【００１１】
また、複数のプロセッサを有し、外部割込処理の優先度レベルおよびタスク処理の優先度レベルに基づいていずれかの前記プロセッサにタスク処理および外部割込処理を行わせるための制御を行う情報処理装置の制御方法において、前記外部割込処理の優先度レベルおよび前記タスク処理に対応する優先度レベルを直接比較可能な処理優先度レベルに変換する優先度変換過程と、前記処理優先度レベルを、前記外部割込処理あるいは前記タスク処理に対応づけて前記プロセッサ毎に記憶する処理優先度記憶過程と、前記処理優先度記憶過程において記憶された優先度レベルを互いに比較し、前記処理要求に対応する前記外部割込処理あるいは前記タスク処理を割り当てるべきプロセッサを判別する処理割当過程と、を備えたことを特徴としている。
上記構成によれば、外部割込処理の優先度レベルおよびタスク処理に対応する優先度レベルを直接比較することが可能となり、外部割込処理の優先度とタスク処理の優先度とを簡単に比較でき、外部割込処理およびタスク処理の割当を効率的に行え、かつ、各プロセッサの負荷の低減も図ることができる。
【００１２】
また、複数のプロセッサを有し、外部割込処理の優先度レベルおよびタスク処理の優先度レベルに基づいていずれかの前記プロセッサにタスク処理および外部割込処理を行わせるための制御を行う情報処理装置をコンピュータにより制御するための制御プログラムにおいて、前記外部割込処理の優先度レベルおよび前記タスク処理に対応する優先度レベルを直接比較可能な処理優先度レベルに変換させ、前記処理優先度レベルを、前記外部割込処理あるいは前記タスク処理に対応づけて前記プロセッサ毎に記憶させ、前記記憶された優先度レベルを互いに比較させ、前記処理要求に対応する前記外部割込処理あるいは前記タスク処理を割り当てるべきプロセッサを判別させる、ことを特徴としている。
上記構成によれば、外部割込処理の優先度レベルおよびタスク処理に対応する優先度レベルを直接比較することが可能となり、外部割込処理の優先度とタスク処理の優先度とを簡単に比較でき、外部割込処理およびタスク処理の割当を効率的に行え、かつ、各プロセッサの負荷の低減も図ることができる。
この場合において、上記制御プログラムをコンピュータ読取可能な記録媒体に記録するようにしてもよい。
【発明を実施するための最良の形態】
【００１３】
次に本発明の好適な実施の形態について図面を参照して説明する。
図１は、実施形態の情報処理装置の概要構成ブロック図である。
情報処理装置１０は、マルチプロセッサユニットとして構成されており、実際の演算処理を行う４個のＣＰＵ１１Ａ〜１１Ｄと、ＣＰＵ１１Ａ〜１１Ｄと第１バス１２を介して接続され、ＣＰＵ１１Ａ〜１１Ｄにおけるタスク管理を行うタスクコントローラ１３と、ＣＰＵ１１Ａ〜１１Ｄと第２バス１４を介して接続され、制御プログラムおよび各種データをあらかじめ記憶したＲＯＭ１５と、ＣＰＵ１１Ａ〜１１Ｄと第２バス１４を介して接続され、各種データを一時的に記憶するＲＡＭ１６と、ＣＰＵ１１Ａ〜１１Ｄと第２バス１４を介して接続され、通信などの各種インタフェース動作を行うインタフェース部１７と、を備えている。
【００１４】
図２は、タスクコントローラの機能ブロック図である。
タスクコントローラ１３は、いわゆるタスク制御においてＣＰＵ１１Ａ〜１１Ｄに対して、例えば、数値演算プロセッサのように、コプロセッサ的な処理を行うものであり、大別すると、ＣＰＵ１１Ａ〜１１Ｄで動作しているＯＳ（Ｏｐｅｒａｔｉｎｇ  Ｓｙｓｔｅｍ）などからのタスクスイッチ要求コマンド等をデコードするデコーダ２１と、デコードされたコマンドのシーケンス制御を行うシーケンサ２２と、シーケンサ２２の制御下でデコードされたコマンドに基づいて各部の制御を行う制御部２３と、各ＣＰＵ１１Ａ〜１１Ｄから入力されたタスクの優先度レベルデータあるいは割込処理の優先度レベルデータと、タスクの優先度レベルデータあるいは割込処理の優先度レベルデータを直接比較可能な処理優先度レベルデータと、を相互に変換するデータ変換部２４と、処理優先度レベルデータを記憶するとともに、各ＣＰＵ１１Ａ〜１１Ｄの状態をＣＰＵ状態データとして記憶する個別レジスタ２５と、個別レジスタの内容に基づいて処理割当対象（タスクスイッチ対象）のＣＰＵを決定する処理割当対象決定部２６と、処理割当対象決定部２６の決定結果に基づいて、処理割当対象（タスクスイッチ対象）のＣＰＵを管理し、あるいは、外部割り込み状態を管理するための管理用データを格納する共通レジスタ２７と、各ＣＰＵ１１Ａ〜１１Ｄからのタスクコントローラ１３を使用するための要求（例えば，タスク切替の処理要求を行うに先立って各ＣＰＵ１１Ａ〜１１Ｄから入力された前記タスク処理あるいは前記外部割込処理を割り当てるべきプロセッサに関する情報である割当情報の要求）若しくは外部装置からの外部割込処理要求の調停を行って、割込要求を行い各ＣＰＵ１１Ａ〜１１Ｄに割込処理を行わせる割込処理部２８と、処理データの論理的な整合性を保つために排他的に処理する必要がある場合に排他制御を行う排他制御部２９と、を備えている。
【００１５】
図３は、個別レジスタの概要構成ブロック図である。
個別レジスタ２５は、第１のＣＰＵ（本実施形態では、ＣＰＵ１１Ａ）に対応するデータを記憶する第１レジスタ群３１と、第２のＣＰＵ（本実施形態では、ＣＰＵ１１Ｂ）に対応するデータを記憶する第２レジスタ群３２と、第３のＣＰＵ（本実施形態では、ＣＰＵ１１Ｃ）に対応するデータを記憶する第３レジスタ群３３と、第４のＣＰＵ（本実施形態では、ＣＰＵ１１Ｄ）に対応するデータを記憶する第４レジスタ群３４と、を備えている。
第１レジスタ群３１は、第１のＣＰＵであるＣＰＵ１１Ａが処理を行っているタスク処理あるいは外部割込処理の処理優先度レベルデータを記憶する優先度値保持レジスタ３１Ａと、第１のＣＰＵであるＣＰＵ１１Ａの動作状態を表すＣＰＵ状態データを記憶するＣＰＵ状態レジスタ３１Ｂと、を備えている。
第２レジスタ群３２は、第２のＣＰＵであるＣＰＵ１１Ｂが処理を行っているタスク処理あるいは外部割込処理の処理優先度レベルデータを記憶する優先度値保持レジスタ３２Ａと、第２のＣＰＵであるＣＰＵ１１Ｂの動作状態を表すＣＰＵ状態データを記憶するＣＰＵ状態レジスタ３２Ｂと、を備えている。
【００１６】
第３レジスタ群３３は、第３のＣＰＵであるＣＰＵ１１Ｃが処理を行っているタスク処理あるいは外部割込処理の処理優先度レベルデータを記憶する優先度値保持レジスタ３３Ａと、第３のＣＰＵであるＣＰＵ１１Ｃの動作状態を表すＣＰＵ状態データを記憶するＣＰＵ状態レジスタ３３Ｂと、を備えている。
第４レジスタ群３４は、第４のＣＰＵであるＣＰＵ１１Ｄが処理を行っているタスク処理あるいは外部割込処理の処理優先度レベルデータを記憶する優先度値保持レジスタ３４Ａと、第４のＣＰＵであるＣＰＵ１１Ｄの動作状態を表すＣＰＵ状態データを記憶するＣＰＵ状態レジスタ３４Ｂと、を備えている。
【００１７】
図４は、共通レジスタの概要構成ブロック図である。
共通レジスタ２７は、大別すると、次回のタスクスイッチ対象のＣＰＵを特定する番号を保持するタスクスイッチ対象ＣＰＵ番号保持レジスタ２５Ａと、外部割込状態を記憶する外部割り込みステータスレジスタ２５Ｂと、ＣＰＵ１１Ａ〜１１Ｄによる不正操作を検出するための不正操作検出レジスタ２５Ｃと、を備えている。
【００１８】
図５は、割込処理部の概要構成ブロック図である。
割込処理部２８は、第１バス１２を介して入力される外部装置からの割込処理要求を受け付ける外部割込入力受付部２８Ａと、各ＣＰＵ１１Ａ〜１１Ｄからのタスクコントローラ１３を使用するための要求（例えば，タスク切替の処理要求を行うに先立って各ＣＰＵ１１Ａ〜１１Ｄから入力された前記タスク処理あるいは前記外部割込処理を割り当てるべきプロセッサに関する情報である割当情報の要求）若しくは外部装置からの外部割込処理要求の調停を行う処理要求要因決定部２８Ｂと、処理要求要因決定部２７Ｂの調停結果に伴って、割込要求を行い各ＣＰＵ１１Ａ〜１１Ｄに割込処理を行わせる割込要求発生部２８Ｃと、を備えている。
【００１９】
ここで、動作説明に先立ち、個別レジスタ２５に格納される処理優先度レベルデータについて説明する。
図６は、処理優先度レベルデータのデータフォーマットの一例の説明図である。
処理優先度レベルデータ４０は、６ビットのデータであり、上位ビット（ＭＳＢ）側から下位ビット（ＬＳＢ）側に向かって、１ビットの処理種別データ４１、４ビットの優先度レベルデータ４２、１ビットの多重割込レベルデータ４３と、を備えている。
処理種別データ４１は、処理対象がタスク処理なのか、外部割込処理なのかを表すデータである。本実施形態の場合、処理対象がタスク処理であれば、処理種別データ＝０、外部割込処理であれば、処理種別データ＝１となっている。
優先度レベルデータ４２は、処理の優先度を表すデータであり、０〜１５（０ｈ〜Ｆｈ：ｈは１６進数を表す。以下同じ。）の値を持つ。優先度レベルデータ＝０が最も低優先度であり、優先度レベルデータ＝１５が最も高優先度である。
多重割込レベルデータ４３は、外部割込処理処理中にさらに外部割込処理（多重割込処理）がなされたか否かを表すデータである。多重割込レベルデータ＝０の場合は、多重割込がなされていないことを示し、多重割込レベルデータ＝１の場合は、多重割込がなされていることを示す。
【００２０】
図７は、データ変換部およびその周辺の概要構成説明図である。
データ変換部２４は、各ＣＰＵ１１Ａ〜１１Ｄから入力された１ビットの処理種別データＤＫに基づいて、各ＣＰＵ１１Ａ〜１１Ｄからタスクの優先度レベルデータ（４ビット）が入力された場合にはビット反転を行って個別レジスタ２５に出力し、割込処理の優先度レベルデータ（４ビット）が入力された場合にはビット反転を行わずにそのまま個別レジスタ２５に出力する入力反転回路２４Ａと、個別レジスタ２５から入力された１ビットの処理種別データＤＫに基づいて、処理種別データＤＫがタスク処理に相当する場合には、処理種別データＤＫのビット反転を行って第１バス１２を介して各ＣＰＵ１１Ａ〜１１Ｄに出力し、処理種別データＤＫが割込処理に相当する場合には処理種別データＤＫのビット反転を行わずにそのまま第１バス１２を介して各ＣＰＵ１１Ａ〜１１Ｄに出力する出力反転回路２４Ｂと、を備えている。
【００２１】
図８は、入力反転回路の概要構成ブロック図である。
入力反転回路２４Ａと、出力反転回路２４Ｂとは、データの入力元、入力されるデータおよびデータの出力先が異なるが構成は同一であるので、入力反転回路２４Ａの構成について説明する。
入力反転回路２４Ａは、優先度レベルデータＤＬを構成する各ビットＤＬ１、ＤＬ２、ＤＬ３、ＤＬ４のビット反転をそれぞれ行うインバータＩＮＶ１〜ＩＮＶ４と、処理種別データＤＫに基づいて、各ＣＰＵ１１Ａ〜１１Ｄからタスクの優先度レベルデータが入力された場合にはインバータＩＮＶ１〜ＩＮＶ４の接続側を選択し、外部割り込み要因により割込処理の優先度レベルデータが入力された場合にはインバータＩＮＶ１〜ＩＮＶ４の非接続側をそれぞれ選択するセレクタＳＬ１〜ＳＬ４と、を備えている。
【００２２】
すなわち、入力反転回路２４Ａは、処理種別データＤＫに基づいて、各ＣＰＵ１１Ａ〜１１Ｄからタスクの優先度レベルデータが入力された場合にはインバータＩＮＶ１〜ＩＮＶ４の接続側を選択して、反転ビット／ＤＬ１、／ＤＬ２、／ＤＬ３、／ＤＬ４（ここで、スラッシュ／は、反転状態を表す。）を優先度レベルデータ４２として出力する。一方、外部割り込み要因により割込処理の優先度レベルデータが入力された場合にはインバータＩＮＶ１〜ＩＮＶ４の非接続側を選択して、ビットＤＬ１、ＤＬ２、ＤＬ３、ＤＬ４を優先度レベルデータ４２として出力する。
次に出力反転回路２４Ｂの動作を説明する。
出力反転回路２４Ｂは、処理種別データ４１（＝ＤＫ）に基づいて、処理種別がタスク処理である場合にはインバータＩＮＶ１〜ＩＮＶ４の接続側を選択して、優先度レベルデータを構成する各ビットを反転してタスク処理の優先度レベルデータとして各ＣＰＵ１１Ａ〜１１Ｄに出力する。一方、処理種別が割込処理である場合にはインバータＩＮＶ１〜ＩＮＶ４の非接続側を選択して、優先度レベルデータを構成する各ビットをそのまま割込処理の優先度レベルデータとして各ＣＰＵ１１Ａ〜１１Ｄに出力する。
【００２３】
図９は、個別レジスタに格納される処理優先度レベルデータの説明図である。
処理優先度レベルデータ４０は、上述したように６ビットであるので、その値としては、０〜６３までの６４の値を採ることができる。
そして、本実施形態の構成によれば、タスク処理に対応する処理優先度レベルデータ４０は０〜３１の値、割込処理に対応する処理優先度レベルデータ４０は３２〜６４の値を採ることとなるので、処理割当対象決定部２６は、単純に処理優先度レベルデータ４０の値を比較するだけでどちらの処理が優先度が高いかを容易に判別することができ、その結果を、共通レジスタ２７のタスクスイッチ対象ＣＰＵ番号保持レジスタに書き込むことができるのである。
したがって、ＯＳは、タスク処理あるいは割込処理が発生した場合に、共通レジスタを参照するだけで、容易にＣＰＵ１１Ａ〜１１Ｄのうち、いずれのＣＰＵにタスク処理あるいは割込処理を行わせるべきかを容易に判断することができる。
【００２４】
図１０は、実施形態の動作タイミングチャートである。
以下の説明においては、説明の簡略化のため、ＣＰＵ１１ＡおよびＣＰＵ１１Ｂのみについて考慮するものとする。また、ＣＰＵ１１Ａ上では、ＯＳタスクが動作しており、ＣＰＵ１１Ｂ上では、タスクＡ（タスク処理）が動作しているものとする。さらに、ＯＳタスクがタスクＢ（タスク処理）を行わせようとするものとする。
この場合において、OSタスクに対応するタスク処理の優先度レベルデータ＝「００００」であり，タスクＡに対応するタスク処理の優先度レベルデータ＝「０１１１」であり、タスクＢに対応する割込処理の優先度レベルデータ＝「１０１１」であるものとする。
この場合に、まず、ＣＰＵ１１Ａ上で動作しているＯＳタスクは、新たにタスクＢの動作を開始させるため，タスクスイッチ対象ＣＰＵ番号保持レジスタ２７からタスクスイッチの対象となるＣＰＵ番号を読み出す（ステップＳ１）。
タスクコントローラ１３の処理割当対象決定部２６は，ＣＰＵ番号＝１のＣＰＵ１１Ａに対応する優先度保持レジスタ３１ＡとＣＰＵ番号＝２のＣＰＵ１１Ｂに対応する優先度値保持レジスタ３２Ａを参照し，ＯＳタスクに対応する優先度レベルデータ「０１１１１０」と，タスクＡに対応する優先度レベルデータ「０１００００」とを常時比較更新する。
この結果、タスクスイッチ対象ＣＰＵ番号保持レジスタ２７Ａに設定されたＣＰＵ番号＝２がＣＰＵ１１Ａに通知される（ステップＳ２）。
【００２５】
これにより、ＣＰＵ１１Ａで動作しているＯＳタスクは、タスクコントローラ１３に対してＣＰＵ番号＝２のＣＰＵ１１Ｂに対してタスク切替要求（タスクスイッチ要求）を行う（ステップＳ３）。
ＣＰＵ１１Ａからのタスク切替要求に基づき、タスクコントローラ１３の割込処理部２８は、ＣＰＵ番号＝２のＣＰＵ１１Ｂに対してタスク切替要求割込を発生させる（ステップＳ４）。
これにより、ＣＰＵ番号＝２のＣＰＵ１１Ｂは、現在処理しているタスクＡのレジスタ情報をＲＡＭ１６に待避し（ステップＳ５）、これから処理するタスクＢのレジスタ情報をＲＡＭ１６から復元する（ステップＳ６）。
そして、ＣＰＵ１１Ｂは、データ変換部２４を介して、タスクＢに対応する処理優先度レベルデータ４０＝「００１０００」を第２レジスタ群３２の優先度値保持レジスタ３２Ａへ格納する（ステップＳ７）。
そして、ＣＰＵ１１Ｂは、タスクＢの処理を行うこととなる（ステップＳ８）。
以上の説明のように、本実施形態によれば、タスク処理の優先度レベルと、割込処理の優先度レベルを区別なく扱えるので、比較時に反転させて比較する場合と、比較すると回路規模を小さくすることが可能となる。
すなわち、割込処理に対応する割込レベルおよびタスク処理に対応するタスク優先度を直接比較することが可能となり、タスクの優先度と割り込み処理の優先度とを簡単に比較でき、タスクの割当を効率的に行え、かつ、各プロセッサの負荷の低減も図ることができる。
【００２６】
［外部割込発生時動作］
図１１は、実施形態における外部割込発生時の動作タイミングチャートである。
以下の説明においても、説明の簡略化のため、ＣＰＵ１１ＡおよびＣＰＵ１１Ｂのみについて考慮するものとする。また、ＣＰＵ１１Ａ上では現在、タスクＢが動作しており、ＣＰＵ１１Ｂ上では現在、タスクＡが動作しているものとする。
この場合において、タスクＡに対応するタスク処理の優先度レベルデータ＝「０１００００」であり、タスクＢに対応するの優先度レベルデータ＝「００１０００」であるものとし、外部割込処理の優先度レベルデータ＝「１１１０００」であるものとする。
この場合に、まず、タスクコントローラ１３は、割込処理部２８を介して外部割込処理の割込要求を受け付けると（ステップＳ１１）、処理割当対象決定部２６が個別レジスタ２５を参照することにより、優先度レベルが外部割込要求の優先度レベルより低く、かつ、他のＣＰＵが実際に処理しているタスクよりも低い優先度レベルの処理を行っているＣＰＵを判別する。具体的には本実施形態の場合、優先度レベルが最も低いのは、ＣＰＵ番号＝１のＣＰＵ１１Ａであるので、ＣＰＵ１１Ａに対し、割込要求を行う（ステップＳ１２）。
【００２７】
これと並行して、タスクコントローラ１３は、外部割込処理の優先度レベルデータ＝「１１１０００」を個別レジスタ２５の優先度値保持レジスタ３１Ａへ格納する（ステップＳ１３）。
これにより、ＣＰＵ番号＝１のＣＰＵ１１Ａは、現在処理しているタスクＢのレジスタ情報をＲＡＭ１６に待避し（ステップＳ１４）、外部割込処理を行う。
そして、ＣＰＵ１１は、外部割込処理が終了すると、元のタスクＢのレジスタ情報をＲＡＭ１６から復元する（ステップＳ１５）。
そして、ＣＰＵ１１Ａは、タスクＢに対応する処理優先度レベルデータ＝「００１０００」を第１レジスタ群３１の優先度値保持レジスタ３１Ａへ格納する（ステップＳ１６）。
そして、ＣＰＵ１１Ａは、再びタスクＢの処理を行うこととなる（ステップＳ１７）。
【００２８】
［多重外部割込発生時動作］
図１２は、実施形態における複数の外部割込発生時の動作タイミングチャート（その１）である。図１３は、実施形態における複数の外部割込発生時の動作タイミングチャート（その２）である。
以下の説明においても、説明の簡略化のため、ＣＰＵ１１ＡおよびＣＰＵ１１Ｂのみについて考慮するものとする。また、ＣＰＵ１１Ａ上では現在、タスクＢが動作しており、ＣＰＵ１１Ｂ上では現在、タスクＡが動作しているものとする。
この場合において、タスクＡに対応するタスク処理の優先度レベルデータ＝「０１００００」であり、タスクＢに対応する優先度レベルデータ＝「００１０００」であるものとし、第１の要因による外部割込処理の優先度レベルデータ＝「１１００００」であり、第２の要因による外部割込処理の優先度レベルデータ＝「１０１０００」であり、第３の要因による外部割込処理の優先度レベルデータ＝「１００１００」であるものとする。
【００２９】
すなわち、処理の優先度は、第１の要因による外部割込＞第２の要因による外部割込＞第３の要因による外部割込＞タスクＡ＞タスクＢであるものとする。
この場合に、まず、タスクコントローラ１３は、割込処理部２８を介して第３の要因による外部割込処理の割込要求を受け付けると（ステップＳ２１）、処理割当対象決定部２６が個別レジスタ２５を参照することにより、処理優先度レベルが第３の要因による外部割込要求の処理優先度レベルより低く、かつ、他のＣＰＵが実際に処理しているタスクよりも低い処理優先度レベルの処理を行っているＣＰＵを判別する。具体的には本実施形態の場合、処理優先度レベルが最も低いのは、タスクＢを処理しているＣＰＵ番号＝１のＣＰＵ１１Ａであるので、ＣＰＵ１１Ａに対し、割込要求を行う（ステップＳ２２）。
これにより、ＣＰＵ１１Ａは、第３の要因による外部割込処理を開始する（ステップＳ２３）。
【００３０】
これと並行して、タスクコントローラ１３は、第３の要因による外部割込の処理優先度レベルデータ＝「１００１００」を個別レジスタ２５の優先度値保持レジスタ３１Ａへ格納する（ステップＳ２４）。
一方、ＣＰＵ番号＝１のＣＰＵ１１Ａは、現在処理しているタスクＢのレジスタ情報をＲＡＭ１６に待避し（ステップＳ２５）、第３の要因による外部割込処理を行う。
次にタスクコントローラ１３は、割込処理部２８を介して第２の要因による外部割込処理の割込要求を受け付けると（ステップＳ２６）、処理割当対象決定部２６が個別レジスタ２５を参照することにより、処理優先度レベルが第２の要因による外部割込要求の処理優先度レベルより低く、かつ、他のＣＰＵが実際に処理しているタスクよりも低い処理優先度レベルの処理を行っているＣＰＵを判別する。具体的には本実施形態の場合、この時点で処理優先度レベルが最も低いのは、タスクＡを処理しているＣＰＵ番号＝２のＣＰＵ１１Ｂであるので、ＣＰＵ１１Ｂに対し、割込要求を行う（ステップＳ２７）。
これにより、ＣＰＵ１１Ｂは、第２の要因による外部割込処理を開始する（ステップＳ２８）。
【００３１】
これと並行して、タスクコントローラ１３は、第２の要因による外部割込処理の処理優先度レベルデータ＝「１０１０００」を個別レジスタ２５の優先度値保持レジスタ３２Ａへ格納する（ステップＳ２９）。
一方、ＣＰＵ番号＝２のＣＰＵ１１Ｂは、現在処理しているタスクＡのレジスタ情報をＲＡＭ１６に待避し（ステップＳ３０）、第２の要因による外部割込処理を行う。
さらにタスクコントローラ１３は、割込処理部２８を介して第１の要因による外部割込処理の割込要求を受け付けると（ステップＳ３１）、処理割当対象決定部２６が個別レジスタ２５を参照することにより、処理優先度レベルが第１の要因による外部割込要求の処理優先度レベルより低く、かつ、他のＣＰＵが実際に処理しているタスクよりも低い処理優先度レベルの処理を行っているＣＰＵを判別する。具体的には本実施形態の場合、この時点で処理優先度レベルが最も低いのは、第３の要因による外部割込処理を処理しているＣＰＵ番号＝１のＣＰＵ１１Ａであるので、ＣＰＵ１１Ａに対し、割込要求（多重割込要求）を行う（ステップＳ３２）。
【００３２】
これにより、ＣＰＵ１１Ａは、第１の要因による外部割込処理を開始する（ステップＳ３３）。
これと並行して、タスクコントローラ１３は、第１の要因による外部割込の処理優先度レベルデータ＝「１１００００」に多重割込を意味する「０００００１」を加算した処理優先度レベルデータ＝「１１０００１」を個別レジスタ２５の優先度値保持レジスタ３１Ａへ格納する（ステップＳ３４）。
一方、ＣＰＵ番号＝１のＣＰＵ１１Ａは、現在処理している第３の要因による外部割込処理のレジスタ情報をＲＡＭ１６に待避し（ステップＳ３５）、第２の要因による外部割込処理を行う。
【００３３】
一方、ＣＰＵ番号２のＣＰＵ１１Ｂは、第２の要因による外部割込処理が終了すると、元のタスクＡのレジスタ情報をＲＡＭ１６から復元する（ステップＳ３６）。
そして、ＣＰＵ１１Ｂは、タスクＡに対応する処理優先度レベルデータ＝「０１００００」を第２レジスタ群３２の優先度値保持レジスタ３２Ａへ格納する（ステップＳ３７）。
そして、ＣＰＵ１１Ｂは、再びタスクＡの処理を行うこととなる（ステップＳ３８）。
一方、ＣＰＵ番号１のＣＰＵ１１Ａは、第１の要因による外部割込処理が終了すると、第３の要因による外部割込処理のレジスタ情報をＲＡＭ１６から復元する（ステップＳ３９）。
そして、ＣＰＵ１１Ａは、第３の要因による外部割込処理に対応する処理優先度レベルデータ＝「１００１００」を第１レジスタ群３１の優先度値保持レジスタ３１Ａへ格納する（ステップＳ４０）。
そして、ＣＰＵ１１Ａは、第３の要因による外部割込処理を行うこととなる（ステップＳ４１）。
続いてＣＰＵ１１Ａは、第３の要因による外部割込処理が終了すると、元のタスクＢのレジスタ情報をＲＡＭ１６から復元する（ステップＳ４２）。
【００３４】
そして、ＣＰＵ１１Ａは、タスクＢに対応する処理優先度レベルデータ＝「００１０００」を第１レジスタ群３１の優先度値保持レジスタ３１Ａへ格納し（ステップＳ４３）、再びタスクＢの処理を行うこととなる（ステップＳ４４）。
以上の説明のように、本実施形態によれば、タスク処理の優先度レベルと、割込処理の優先度レベルを区別なく扱えるので、比較時に反転させて比較する場合と、比較すると回路規模を小さくすることが可能となる。
すなわち、外部割込処理の優先度レベルおよびタスク処理に対応する優先度レベルを直接比較することが可能となり、外部割込処理の優先度とタスク処理の優先度とを簡単に比較でき、外部割込処理およびタスク処理の割当を効率的に行え、かつ、各プロセッサの負荷の低減も図ることができる。
【００３５】
以上の説明においては、タスク処理の優先度レベルを反転する構成を採っていたが、比較回路の構成を、値が小さいほど優先度が高いものとして扱うように構成すれば、外部割込処理の優先度レベルを反転する構成を採ることも、同様の手法により適用が可能である。
以上の実施形態の説明では、プロセッサ（ＣＰＵ）が２つの場合について説明したが、複数ある場合であれば同様に適用が可能である。
以上の説明においては、図９に示したように、外部割込の優先度レベルデータに多重割込を意味する値を加算した優先度レベルデータを個別レジスタの優先度値保持レジスタへ格納する理由については説明しなかったが、これは、各割込対象の処理の優先度レベルが同一であっても、既に多重割込を行っている場合には、当該処理はより優先度が高いものとして、他のプロセッサに処理を割り当てるようにするためである。
これにより、より効率的な処理が図れる。
以上の説明においては、多重割込の有無だけを考慮する場合について説明したが、多重割込回数をより詳細に考慮するように構成することも可能である。この場合には、多重割込レベルデータを複数ビット（例えば、多重割り込み回数が０回，１回，２回，３回以上とで差異を設ける場合には、２ビット）で表現し、対応する値を優先度レベルデータに加算するように構成することも可能である。
【００３６】
以上の説明においては、上記各機能を実現するための制御プログラムが、予めＲＯＭに格納する場合について説明したが、制御プログラムを、コンピュータ読取可能な記録媒体に記録するようにしてもよい。このような構成であれば、コンピュータによってプログラムが記憶媒体から読み取られ、読み取られたプログラムに従ってコンピュータが処理を実行すると、上記実施形態の画像情報処理装置と同等の作用および効果が得られる。
ここで、記憶媒体とは、ＲＡＭ、ＲＯＭ等の半導体記憶媒体、ＦＤ、ＨＤ等の磁気記憶型記憶媒体、ＣＤ、ＣＤＶ、ＬＤ、ＤＶＤ等の光学的読取方式記憶媒体、ＭＯ等の磁気記憶型／光学的読取方式記憶媒体であって、電子的、磁気的、光学的等の読み取り方法のいかんにかかわらず、コンピュータで読み取り可能な記憶媒体であれば、どのような記憶媒体であってもよい。
【図面の簡単な説明】
【００３７】
【図１】実施形態の情報処理装置の概要構成ブロック図である。
【図２】タスクコントローラの機能ブロック図である。
【図３】個別レジスタの概要構成ブロック図である。
【図４】共通レジスタの概要構成ブロック図である。
【図５】割込処理部の概要構成ブロック図である。
【図６】処理優先度レベルデータのデータフォーマットの一例の説明図である。
【図７】データ変換部およびその周辺の概要構成説明図である。
【図８】入力反転回路の概要構成ブロック図である。
【図９】個別レジスタに格納される処理優先度レベルデータの説明図である。
【図１０】実施形態の基本動作タイミングチャートである。
【図１１】実施形態における外部割込発生時の動作タイミングチャートである。
【図１２】実施形態における複数の外部割込発生時の動作タイミングチャート（その１）である。
【図１３】実施形態における複数の外部割込発生時の動作タイミングチャート（その２）である。
【符号の説明】
【００３８】
１０…情報処理装置、１１…ＣＰＵ、１１Ａ…ＣＰＵ、１１Ａ…プロセッサ、１１Ｂ…ＣＰＵ、１１Ｃ…ＣＰＵ、１１Ｄ…ＣＰＵ、１２…第１バス、１３…タスクコントローラ、１３…コントローラ、１４…第２バス、１５…ＲＯＭ、１６…ＲＡＭ、１７…インタフェース部、２１…デコーダ、２２…シーケンサ、２３…制御部、２４…データ変換部、２４Ａ…入力反転回路、２４Ｂ…出力反転回路、２５…個別レジスタ、２５Ａ…タスクスイッチ対象ＣＰＵ番号保持レジスタ、２５Ｂ…ステータスレジスタ、２５Ｃ…不正操作検出レジスタ、２６…処理割当対象決定部、２７…共通レジスタ、２７Ａ…タスクスイッチ対象ＣＰＵ番号保持レジスタ、２７Ｂ…処理要求要因決定部、２８…割込処理部、２８Ａ…外部割込入力受付部、２８Ｂ…処理要求要因決定部、２８Ｃ…割込要求発生部、２９…排他制御部、３１…第１レジスタ群、３１Ａ…優先度値保持レジスタ、３１Ｂ…ＣＰＵ状態レジスタ、３２…第２レジスタ群、３２Ａ…優先度値保持レジスタ、３２Ｂ…ＣＰＵ状態レジスタ、３３…第３レジスタ群、３３Ａ…優先度値保持レジスタ、３３Ｂ…ＣＰＵ状態レジスタ、３４…第４レジスタ群、３４Ａ…優先度値保持レジスタ、３４Ｂ…ＣＰＵ状態レジスタ、４０…処理優先度レベルデータ、４１…処理種別データ、４２…優先度レベルデータ、４３…多重割込レベルデータ。
【図１】
2008197771.tif 000003
【図２】
2008197771.tif 000004
【図３】
2008197771.tif 000005
【図４】
2008197771.tif 000006
【図５】
2008197771.tif 000007
【図６】
2008197771.tif 000008
【図７】
2008197771.tif 000009
【図８】
2008197771.tif 000010
【図９】
2008197771.tif 000011
【図１０】
2008197771.tif 000012
【図１１】
2008197771.tif 000013
【図１２】
2008197771.tif 000014
【図１３】
2008197771.tif 000015