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