(57)【要約】【課題】  優先度の異なる複数のタスクを時分割で処理しつつ、処理するタスクのリアルタイム性を確保することを可能とする並列演算装置を提供する。【解決手段】  メインプロセッサは、時間の設定を受け付けてサブプロセッサからの処理完了通知を所定時間抑止する通知制御部を備え、サブプロセッサへ処理の開始を指示すると、優先度の異なるタスクを処理するよう処理タスクを切り替えるとともに通知制御部に所定時間を設定することで、サブプロセッサの処理時間にかかわらず、少なくとも所定時間は優先度の異なるタスクを処理することができ、優先度の異なるタスクを、リアルタイム性を確保しつつ処理することができる。【選択図】図１
2007026095.tif 000002
【特許請求の範囲】
【請求項１】
第１プロセッサと、前記第１プロセッサの指示を受け付けて処理を実行しその実行完了を通知する第２プロセッサとからなり、逐次生成される複数のタスクを時分割で処理する並列演算装置であって、
前記第１プロセッサは、
第１の処理を行った後に第２の処理を前記第２プロセッサによって開始させる第１種タスクを優先して処理する第１モードと、自プロセッサでのみ処理する第２種タスクがあるときに前記第１種タスクの有無にかかわらず前記第２種タスクを処理する第２モードと、を選択的に適用して処理タスクを切り替えるタスク切り替え制御手段を備え、
前記タスク切り替え制御手段は、
前記第１種タスクを実行して前記第２プロセッサに前記第２の処理を開始させる指示を行うと、前記第２モードの適用を開始し、前記第２モードを適用してから少なくとも所定時間が経過するまで前記第１モードの適用を抑止し、前記第２の処理が完了し、かつ、前記所定時間が経過すると、前記第１モードの適用を開始する
ことを特徴とする並列演算装置。
【請求項２】
前記タスク切り替え制御手段は、
前記所定時間の設定を受け付けて、設定された時間が経過するまで前記実行完了の通知が前記第１プロセッサによって受け付けられるのを抑止し、前記設定された時間が経過すると、前記抑止を解除する通知制御部を含み、
前記タスク切り替え制御手段は、
前記第２モードの適用を開始した後に前記実行完了の通知を受け付けると前記第１モードの適用を開始し、前記指示を行うと、前記通知制御部に所定時間を設定するとともに前記第２モードの適用を開始し、当該所定時間が経過するまでは前記通知制御部によって前記抑止を行って前記第１モードの適用を抑止する
ことを特徴とする請求項１記載の並列演算装置。
【請求項３】
前記タスク切り替え制御手段は、さらに、
前記第１プロセッサにおいて処理するタスクの優先度を制御する優先度制御部を含み、
前記タスク切り替え制御手段は、
前記第２モードの適用を開始した後に前記実行完了の通知を受け付けるとタスクの優先度に従って第１種タスクの処理を開始し、前記指示を行うと、前記優先度制御部によって前記第２種タスクの優先度を前記第１種タスクよりも高くしてタスクの処理を行うことで前記第２モードの適用を開始し、前記第２モードを適用してから前記所定時間が経過するまでは前記第２種タスクの優先度を第１種タスクよりも高くして前記第１モードの適用を抑止し、前記所定時間経過後は前記第１種タスクの優先度を前記第２種タスクよりも高くして前記第１モードの適用を開始する
ことを特徴とする請求項１記載の並列演算装置。
【請求項４】
前記タスク切り替え制御手段は、
前記所定時間を、所定の固定値として前記第１モードおよび前記第２モードを選択的に適用する
ことを特徴とする請求項２または３記載の並列演算装置。
【請求項５】
前記第１プロセッサは、
前記第１モードが適用されている適用期間を計測する計測手段を備え、
前記タスク切り替え制御手段は、
前記指示を行うときまで適用していた前記適用期間に応じて前記所定時間を決定する
ことを特徴とする請求項２または３記載の並列演算装置。
【請求項６】
前記タスク切り替え制御手段は、
前記所定時間を、前記適用期間と一定比率になるように決定する
ことを特徴とする請求項５記載の並列演算装置。
【請求項７】
前記タスク切り替え制御手段は、さらに、
所定の遅延時間の設定を受け付けて、前記第１プロセッサが前記指示を行ってから、所定の遅延時間が経過するまで前記第２プロセッサによる処理の実行の開始を遅らせる処理要求遅延部を含み、
前記タスク切り替え制御手段は、
前記指示を行うときに前記処理要求遅延部に前記遅延時間を設定するとともに前記第２モードの適用を開始し、前記実行完了の通知を受け付けるまで前記第１モードの適用を抑止し、前記実行完了の通知を受け付けると前記第１モードの適用を開始する
ことを特徴とする請求項１記載の並列演算装置。
【請求項８】
前記タスク切り替え制御手段は、さらに、
所定の遅延時間の設定を受け付けて、前記第２プロセッサが実行完了を通知してから当該通知を受け付けるのを所定の遅延時間が経過するまで遅らせる完了通知遅延部を含み、
前記タスク切り替え制御手段は、
前記指示を行うときに前記完了通知遅延部に前記遅延時間を設定するとともに前記第２モードの適用を開始し、前記実行完了の通知を受け付けるまで前記第１モードの適用を抑止し、前記実行完了の通知を受け付けると前記第１モードの適用を開始する
ことを特徴とする請求項１記載の並列演算装置。
【請求項９】
前記第１プロセッサは、さらに、
所定の遅延時間の設定を受け付けて、前記第２プロセッサが処理を実行しているときに前記処理の実行を所定の遅延時間だけ停止させるサブプロセッサ制御手段を備え、
前記タスク切り替え手段は、
前記指示を行うときに前記サブプロセッサ制御手段に前記遅延時間を設定するとともに前記第２モードの適用を開始し、前記指示を行って前記第２プロセッサに処理を実行させると、当該処理を前記サブプロセッサ制御手段によって所定の遅延時間だけ停止させ、前記第２プロセッサから前記実行完了の通知を受け付けるまで前記第１モードの適用を抑止し、前記実行完了の通知を受け付けると前記第１モードの適用を開始する
ことを特徴とする請求項１記載の並列演算装置。
【請求項１０】
前記タスク切り替え制御手段は、
前記遅延時間を、所定の固定値として前記第１モードおよび前記第２モードを選択的に適用する
ことを特徴とする請求項７から請求項９のうちいずれか１項記載の並列演算装置。
【請求項１１】
前記第１プロセッサは、
前記第１モードが適用されている適用期間を計測する計測手段と、
前記指示と、前記実行完了の通知と、前記遅延時間とに基づいて、前記第２プロセッサが処理を行う期間である処理期間を推定する処理期間推定手段を備え、
前記タスク切り替え制御手段は、
前記指示を行うときまで適用していた前記適用期間に応じて所定時間を決定し、決定した所定時間と、推定された前記処理期間との差分を、前記遅延時間として前記設定を行う
ことを特徴とする請求項７から請求項９のうちいずれか１項記載の並列演算装置。
【請求項１２】
第１プロセッサと、前記第１プロセッサの指示を受け付けて処理を実行しその実行完了を通知する第２プロセッサとからなり、逐次生成される複数のタスクを時分割で処理する並列演算装置のタスク切り替え方法であって、
前記タスク切り替え方法は、
前記第１プロセッサにおいて、第１の処理を行った後に第２の処理を前記第２プロセッサによって開始させる第１種タスクを、優先して処理する第１モードと、自プロセッサでのみ処理する第２種タスクがあるときに前記第１種タスクの有無にかかわらず前記第２種タスクを処理する第２モードと、を選択的に適用して処理タスクを切り替えるタスク切り替え制御ステップを含み、
前記タスク切り替え制御ステップは、
前記第１種タスクを実行して前記第２プロセッサに前記第２の処理を開始させる指示を行うと、前記第２モードの適用を開始し、前記第２モードを適用してから少なくとも所定時間が経過するまで前記第１モードの適用を抑止し、前記第２の処理が完了し、かつ、前記所定時間が経過すると、前記第１モードの適用を開始する
ことを特徴とするタスク切り替え方法。
【請求項１３】
請求項１から１１の並列演算装置または請求項１２のタスク切り替え方法いずれかを用いた情報処理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、特定の処理を行うための専用プロセッサを備える並列演算装置に関し、特に、複数のタスクを時分割で処理する技術に関する。
【背景技術】
【０００２】
従来、汎用プロセッサの他に、特定の処理を行う専用プロセッサを備えて複数のタスクを時分割で処理する並列演算装置がある。この並列演算装置は、特定の一部の処理を専用プロセッサに処理させることで演算の高速化を実現している（特許文献１参照）。
特に、リアルタイム性を要求される処理を実行する場合においては、並列演算装置は、逐次生成される複数のタスクを、リアルタイム性を維持するために高速で処理することが要求されるため、この場合において専用プロセッサを備えることによる演算の高速化の効果は極めて大きい。
【０００３】
リアルタイム性を要求される処理とは、例えば、動画と音声からなる映像データを実時間で記録し再生する場合の処理などである。汎用プロセッサのみではリアルタイム性を維持しつつタスクの処理を行うことが困難な処理であっても、例えばMPEG（Moving Picture Experts Group）動画の符号化や復号化処理におけるDCT（Discrete Cosine Transform）処理やME（Motion Estimation）処理など、汎用プロセッサでは演算量が大きくなる特定の処理を、処理に特化した専用プロセッサに行わせることで、処理に要するクロックサイクルの数を低減することが可能となる。これにより、並列演算装置は、逐次生成される複数のタスクを高速で処理してリアルタイム性を維持することができる。
【０００４】
ところで、上述した並列演算装置における汎用プロセッサは、特定の処理を要する際に専用プロセッサにその処理の開始を指示する第１種タスクと、汎用プロセッサのみで処理を行う第２種タスクとを時分割で処理するが、この際に、専用プロセッサによる特定の処理を要する第１種タスクを、第２種タスクよりも高い優先度で処理し、第１種タスクにおける特定の処理の開始を専用プロセッサに指示してから専用プロセッサによる実行完了が通知されるまでの間に第２種タスクを処理し、実行完了が通知されると、ハードウェアによる割り込み等を行って第１種タスクの処理を開始する場合がある。
【０００５】
例えば、映像データの再生を行う場合において、MPEGの動画データの再生処理を第１種タスク、音声データの再生処理を第２種タスクとしたときに、最低限動画データの再生処理はリアルタイム性を確保したい場合がある。この場合、汎用プロセッサは、専用プロセッサによる特定の処理が完了次第、動画データの再生処理を音声データの再生処理よりも優先して実行することで、動画の再生処理が破綻しないようにすることができる。
【０００６】
一般的なOS（Operating System）によるタスクの切り替えでは、タスク切り替え時に発生するオーバヘッドのために第１種タスクをリアルタイムに処理できない可能性がある場合であっても、この場合のように、ハードウェアによる割り込み等によってタスク切り替え時に発生するオーバヘッドを極力小さくすることで、汎用プロセッサは、リアルタイム性を確保しつつ第１種タスクの処理を行うことが出来る。
【０００７】
例えば、リアルタイム性を維持するためには汎用プロセッサにおいて約２４マイクロ秒程度の時間粒度でのタスク切り替えを要求される場合において、１００〜１０００マイクロ秒程度の周期が限度の一般的なOSのラウンドロビン型のスケジューリングによるタスク切り替えを用いると、タスクの切り替え時に発生するオーバヘッドが大きすぎて第１種タスクをリアルタイムに処理できない場合であっても、上述の構成を備えることで、タスク処理を実行するにあたってリアルタイム性を維持することができる。
【０００８】
このように、汎用プロセッサにおいて、第１種タスクの処理を優先して行うことで、並列演算装置は、第１種タスクのリアルタイム性を確保しつつタスクの処理を行うことができる。
【特許文献１】特許第３００７６１２号公報
【発明の開示】
【発明が解決しようとする課題】
【０００９】
しかしながら、上述の構成では、第１種タスクのリアルタイム性は確保できるものの、第２種タスクの処理についてもリアルタイム性を要する場合に、第２種タスクのリアルタイム性を確保できないおそれがある。
なぜなら、上述の構成における汎用プロセッサは、第１種タスクの処理を、第２種タスクよりも高い優先度で実行しており、また、第１種タスクの特定の処理を専用プロセッサに行わせている間に第２種タスクを汎用プロセッサによって処理し、専用プロセッサが処理を終えて出力した実行完了の通知を受け付けると再び第１種タスクを優先して処理することとしているため、汎用プロセッサにおける第２種タスクの処理時間が、第１種タスクの特定の処理を専用プロセッサによって実行させている時間に依存するからである。
【００１０】
すなわち、専用プロセッサにおいてタスクの処理が実行されている間に汎用プロセッサにおいて第２種タスクの処理を行うため、専用プロセッサにおけるタスクの処理時間が汎用プロセッサにおける第２種タスクのリアルタイム性を維持するために必要な演算を行うのに十分な時間でない場合は、汎用プロセッサは、第２種タスクを、リアルタイム性を維持しつつ処理することが困難となる。
【００１１】
そこで、本発明は、複数のタスクを時分割で処理しつつ、各々のタスクのリアルタイム性を確保することを可能とする並列演算装置を提供することを目的とする。
【課題を解決するための手段】
【００１２】
上記課題を解決するため、本発明にかかる並列演算装置は、第１プロセッサと、前記第１プロセッサの指示を受け付けて処理を実行しその実行完了を通知する第２プロセッサとからなり、逐次生成される複数のタスクを時分割で処理する並列演算装置であって、前記第１プロセッサは、第１の処理を行った後に第２の処理を前記第２プロセッサによって開始させる第１種タスクを優先して処理する第１モードと、自プロセッサでのみ処理する第２種タスクがあるときに前記第１種タスクの有無にかかわらず前記第２種タスクを処理する第２モードとを選択的に適用して処理タスクを切り替えるタスク切り替え制御手段を備え、前記タスク切り替え制御手段は、前記第１種タスクを実行して前記第２プロセッサに前記第２の処理を開始させる指示を行うと、前記第２モードの適用を開始し、前記第２モードを適用してから少なくとも所定時間が経過するまで前記第１モードの適用を抑止し、前記第２の処理が完了し、かつ、前記所定時間が経過すると、前記第１モードの適用を開始することを特徴とする。
【発明の効果】
【００１３】
これにより、第１プロセッサは、第１種タスクの第２の処理を実行させるための指示を第２プロセッサへ行ってから所定時間が経過する前に第２プロセッサによる処理が完了した場合であっても、所定時間が経過するまで第２種タスクの処理を行うので、リアルタイム性を維持しつつ第２種タスクを処理する必要がある場合において、第２種タスクの処理時間を少なくとも所定時間は確保することができる。そのため、第１プロセッサは、リアルタイム性を確保するのに必要な処理時間を第２種タスクの実行に割り当てることができる。
【００１４】
また、例えば、予め定められたタイムスライスでタスクの優先度を定めてタスクの処理を行うラウンドロビン方式のタスクスケジューリングでは、各々のタスクは、一般的に、定められた順序およびタイムスライスで切り替わって処理される。そのため、一般的に、予めあるタスクの処理を所定時間実行させるようスケジューリングすることは可能であるが、所定時間経過前にタスクの処理が完了した場合に、所定時間が経過するまでに他のスケジューリングされていないタスクを処理することはできない。
【００１５】
これに対し、本発明の並列演算装置における第１プロセッサは、第２プロセッサへの指示開始から少なくとも所定時間が経過するまでは第２モードを適用して第２種タスクを処理することとしている。
したがって、所定時間が経過する前に第２種タスクのうちの、あるタスクの処理が完了していれば、処理が完了した時点から他の第２種タスクの処理を実行開始させることができ、処理を要する第２種タスクが何ら存在しなければ第１種タスクの処理の実行も開始させることができるので、リアルタイム性を確保するためのタスク切り替えを行いつつ、従来の、所定のタイムスライスで切り替えるタスクスケジューリング方式と比べて、プロセッサの利用率およびタスク処理効率を向上させ得る。
【００１６】
また、前記タスク切り替え制御手段は、前記所定時間の設定を受け付けて、設定された時間が経過するまで前記実行完了の通知が前記第１プロセッサによって受け付けられるのを抑止し、前記設定された時間が経過すると、前記抑止を解除する通知制御部を含み、前記タスク切り替え制御手段は、前記第２モードの適用を開始した後に前記実行完了の通知を受け付けると前記第１モードの適用を開始し、前記指示を行うと、前記通知制御部に所定時間を設定するとともに前記第２モードの適用を開始し、当該所定時間が経過するまでは前記通知制御部によって前記抑止を行って前記第１モードの適用を抑止することとしてもよい。
【００１７】
また、前記タスク切り替え制御手段は、さらに、前記第１プロセッサにおいて処理するタスクの優先度を制御する優先度制御部を含み、前記タスク切り替え制御手段は、前記第２モードの適用を開始した後に前記実行完了の通知を受け付けるとタスクの優先度に従って第１種タスクの処理を開始し、前記指示を行うと、前記優先度制御部によって前記第２種タスクの優先度を前記第１種タスクよりも高くしてタスクの処理を行うことで前記第２モードの適用を開始し、前記第２モードを適用してから前記所定時間が経過するまでは前記第２種タスクの優先度を第１種タスクよりも高くして前記第１モードの適用を抑止し、前記所定時間経過後は前記第１種タスクの優先度を前記第２種タスクよりも高くして前記第１モードの適用を開始することとしてもよい。
【００１８】
これにより、第１プロセッサ自身が所定時間を設定するので、第１プロセッサは、第１プロセッサにおいて実行した処理内容に応じて所定時間の設定を行うことができる。
したがって、例えば第１プロセッサにおいて実行した処理と、リアルタイム性を確保するのに必要な第２種タスクの処理時間とに関連がある場合において、第２種タスクの処理時間を必要な時間だけ確保することができる。
【００１９】
また、前記タスク切り替え制御手段は、前記所定時間を、所定の固定値として前記第１モードおよび前記第２モードを選択的に適用することとしてもよい。
これにより、第２モードの適用後、第１モードの適用を抑止する期間が固定されるので、抑止する期間を算出する処理を省くことができる。
また、前記第１プロセッサは、前記第１モードが適用されている適用期間を計測する計測手段を備え、前記タスク切り替え制御手段は、前記指示を行うときまで適用していた前記適用期間に応じて前記所定時間を決定することとしてもよい。
【００２０】
これにより、第１モードが適用されて第１種タスクの処理が実行されている期間に応じて所定時間を決定するので、第１プロセッサにおける第１種タスクの処理時間の変動に応じて第２種タスクの処理時間を長くしたり短くしたりすることができる。
したがって、例えば、第１種タスクの処理時間に応じてリアルタイム性を維持するために必要な第２種タスクの処理時間が変動する場合において、第１プロセッサにおける第１種タスクの処理時間が変動したとしても、その変動に応じて、第２種タスクの処理に必要な処理時間を確保して所定時間を決定することができる。
【００２１】
また、前記タスク切り替え制御手段は、前記所定時間を、前記適用期間と一定比率になるように決定することとしてもよい。
これにより、第１プロセッサにおいて、第１種タスクの処理を行っている時間と第２種タスクの処理を行っている時間とを一定の比率にしてタスクの処理を行うので、予め第１種タスクの処理量と第２種タスクの処理量との比率が判明している場合等において、第１プロセッサにおけるタスク切り替えを従来より適切に行い得る。
【００２２】
また、前記タスク切り替え制御手段は、さらに、所定の遅延時間の設定を受け付けて、前記第１プロセッサが前記指示を行ってから、所定の遅延時間が経過するまで前記第２プロセッサによる処理の実行の開始を遅らせる処理要求遅延部を含み、前記タスク切り替え制御手段は、前記指示を行うときに前記処理要求遅延部に前記遅延時間を設定するとともに前記第２モードの適用を開始し、前記実行完了の通知を受け付けるまで前記第１モードの適用を抑止し、前記実行完了の通知を受け付けると前記第１モードの適用を開始することとしてもよい。
【００２３】
また、前記タスク切り替え制御手段は、さらに、所定の遅延時間の設定を受け付けて、前記第２プロセッサが実行完了を通知してから当該通知を受け付けるのを所定の遅延時間が経過するまで遅らせる完了通知遅延部を含み、前記タスク切り替え制御手段は、前記指示を行うときに前記完了通知遅延部に前記遅延時間を設定するとともに前記第２モードの適用を開始し、前記実行完了の通知を受け付けるまで前記第１モードの適用を抑止し、前記実行完了の通知を受け付けると前記第１モードの適用を開始することとしてもよい。
【００２４】
また、前記第１プロセッサは、さらに、所定の遅延時間の設定を受け付けて、前記第２プロセッサが処理を実行しているときに前記処理の実行を所定の遅延時間だけ停止させるサブプロセッサ制御手段を備え、前記タスク切り替え手段は、前記指示を行うときに前記サブプロセッサ制御手段に前記遅延時間を設定するとともに前記第２モードの適用を開始し、前記指示を行って前記第２プロセッサに処理を実行させると、当該処理を前記サブプロセッサ制御手段によって所定の遅延時間だけ停止させ、前記第２プロセッサから前記実行完了の通知を受け付けるまで前記第１モードの適用を抑止し、前記実行完了の通知を受け付けると前記第１モードの適用を開始することとしてもよい。
【００２５】
これにより、専用プロセッサによる第２の処理の実行時間が、第１プロセッサにおいて第２種タスクをリアルタイム性を確保しつつ処理するのに必要な時間より短い場合であっても、第２プロセッサによる処理の実行開始、または第２プロセッサによる実行完了の通知、またはサブプロセッサによる処理の実行完了を所定の遅延時間分だけ遅らせるので、第１プロセッサは、第２種タスクを、リアルタイム性を確保しつつ処理するのに必要な時間だけ実行し得る。
【００２６】
また、前記タスク切り替え制御手段は、前記遅延時間を、所定の固定値として前記第１モードおよび前記第２モードを選択的に適用することとしてもよい。
これにより、第２プロセッサへの指示が第２プロセッサによって受け付けられるのを遅延させる遅延時間が固定されるので、遅延時間の算出に要する処理を省くことが出来る。
遅延時間は、リアルタイム性を確保するために第２種タスクの実行に要する時間と、第２プロセッサにおける第２の処理の実行時間との差分だけ設定することが望ましいが、例えば、第２種タスクを実行するのに必要な処理時間が判明しており、さらに、第２プロセッサによる第２の処理の実行に要する時間の変動が小さい場合においては、上述のように遅延時間を固定としてもリアルタイム性を確保したタスク処理を実行でき、並列演算装置の性能をより向上させることができる。
【００２７】
また、前記第１プロセッサは、前記第１モードが適用されている適用期間を計測する計測手段と、前記指示と、前記実行完了の通知と、前記遅延時間とに基づいて、前記第２プロセッサが処理を行う期間である処理期間を推定する処理期間推定手段を備え、前記タスク切り替え制御手段は、前記指示を行うときまで適用していた前記適用期間に応じて所定時間を決定し、決定した所定時間と、推定された前記処理期間との差分を、前記遅延時間として前記設定を行うこととしてもよい。
【００２８】
これにより、第１モードが適用されて第１種タスクの処理が実行されている期間に応じて遅延時間を決定するので、第１プロセッサにおける第１種タスクの処理時間の変動に応じて第２種タスクの処理時間を長くしたり短くしたりすることができる。
したがって、例えば、第１種タスクの処理時間に応じてリアルタイム性を維持するために必要な第２種タスクの処理時間が変動する場合において、第１プロセッサにおける第１種タスクの処理時間が変動したとしても、その変動に応じて、第２種タスクの処理に必要な処理時間を確保して遅延時間を決定することができる。
【００２９】
また、第２プロセッサへ指示を行う毎に、推定した第２プロセッサの処理時間に基づいて第２プロセッサへの指示を遅延させる時間を決定するので、第２プロセッサの処理時間に変動がある場合においても、第２種タスクの処理時間を所定時間だけ実行できるよう、遅延時間を逐次補正しつつ決定することができる。
また、第１プロセッサと、前記第１プロセッサの指示を受け付けて処理を実行しその実行完了を通知する第２プロセッサとからなり、逐次生成される複数のタスクを時分割で処理する並列演算装置のタスク切り替え方法であって、前記タスク切り替え方法は、前記第１プロセッサにおいて、第１の処理を行った後に第２の処理を前記第２プロセッサによって開始させる第１種タスクを、優先して処理する第１モードと、自プロセッサでのみ処理する第２種タスクがあるときに前記第１種タスクの有無にかかわらず前記第２種タスクを処理する第２モードとを選択的に適用して処理タスクを切り替えるタスク切り替え制御ステップを含み、前記タスク切り替え制御ステップは、前記第１種タスクを実行して前記第２プロセッサに前記第２の処理を開始させる指示を行うと、前記第２モードの適用を開始し、前記第２モードを適用してから少なくとも所定時間が経過するまで前記第１モードの適用を抑止し、前記第２の処理が完了し、かつ、前記所定時間が経過すると、前記第１モードの適用を開始することとしてもよい。
【００３０】
上述したタスク切り替え方法を用いることにより、従来の、所定のタイムスライスで切り替えるタスクスケジューリング方式と比べて、プロセッサの利用率およびタスク処理効率を向上させ得る。
また、上述した並列演算装置または上述したタスク切り替え方法のいずれかを用いた情報処理装置であってもよい。
【００３１】
これにより、複数のタスクを時分割で処理しつつ、各々のタスクのリアルタイム性を確保することを可能とする情報処理装置を実現できる。
【発明を実施するための最良の形態】
【００３２】
＜実施の形態１＞
以下、本発明の実施の形態にかかる並列演算装置について図面を用いて説明する。
＜構成＞
本発明にかかる並列演算装置は、処理全体を管理するメインプロセッサ（以下、「ＭＰ」と言う。）と、ＭＰからの指示に基づいて特定の処理を実行するサブプロセッサ（以下、「ＳＰ」と言う。）とからなる。
【００３３】
ＭＰは、ＳＰによる処理の実行を必要とする第１種タスクを優先して実行し、ＳＰに特定の処理を行わせるにあたって、ＳＰへ処理の実行開始を要求する処理要求を出力する。処理要求を出力すると、ＭＰのみで処理を実行できる第２種タスクの実行を開始する。ＳＰは、処理要求を受け付けると、特定の処理を実行し、実行が完了すると、完了通知をＭＰへ出力する。ＭＰは、完了通知を受け付けると、割り込みハンドラによって処理しているタスクに対して割り込みを行って第１種タスクを優先して実行する。
【００３４】
本実施形態では、並列演算装置は、例えば、MPEG（Moving Picture Experts Group）で規格化されている動画処理を行い、ＭＰは、映像データの再生を行う際に、動画のエンコード処理における特定の処理をＳＰに行わせる。そして、特定の処理をＳＰに行わせている間に、ＭＰでは、例えばＭＰのみで処理を実行できる音声データの再生処理等を行うこととする。上述の例における特定の処理とは、具体的には、ME（Motion Estimation）処理やDCT（Discrete Cosine Transform）処理であり、第２種タスクとは、上述した音声データの処理や、字幕の表示に伴う処理などである。
【００３５】
図１は、本実施形態の並列演算装置の構成を示す機能ブロック図である。
同図に示すように、並列演算装置は、ＭＰ１００と、ＳＰ５００とからなり、ＭＰ１００は、処理要求出力部１１と、完了通知受付部１２と、通知制御部１３と、制御部１４と、処理時間計測部１５とを含む演算装置である。
処理要求出力部１１は、制御部１４の指示に従って、ＳＰ５００に、特定の処理を開始させるための所定の信号である処理要求を出力する。
【００３６】
完了通知受付部１２は、ＳＰ５００から出力された完了通知を受け付けて制御部１４へ所定の信号を出力する。
通知制御部１３は、ダウンカウンタを備え、ＳＰ５００から出力された完了通知を受け付けるとともに、制御部１４による時間の設定の指示を受け付けて、所定時間の間、ＳＰ５００から出力された完了通知が完了通知受付部１２によって受け付けられるのを抑止する回路である。例えば、ＡＮＤ回路を用いて、ＳＰ５００から完了通知を受け付けたことを示す信号と、制御部１４がダウンカウンタに設定した時間が経過したことを示す信号とがともに有効であるときに、所定の信号を完了通知受付部１２へ出力する。
【００３７】
制御部１４は、CPU（Central Processing Unit）、ROM（Read Only Memory）、RAM（Random Access Memory）を備え、ROMに格納されているプログラムにしたがって、ＭＰ１００が行う処理やタスク処理の実行を制御する。ＳＰ５００によって特定の処理を行わせる際に、処理要求出力部１１に処理要求を出力するよう指示を行い、完了通知受付部１２を介してＳＰ５００から出力された完了通知を受け付ける。また、通知制御部１３に対し、時間の設定を行う。
【００３８】
処理時間計測部１５は、カウンタを備え、制御部１４による処理要求出力の指示および完了通知受付部１２が完了通知を受け付けて出力した所定の信号をもとに、制御部１４において第１種タスクが処理された時間を計測する回路であり、計測された時間を制御部１４へ出力する。
例えば、完了通知受付部１２が出力した信号を受け付けた時点を開始時点とし、制御部１４による処理要求出力の指示があった時点を終了時点として計測する。計測された開始時点と終了時点との差分を、制御部１４において第１種タスクが処理された時間として制御部１４へ出力する。
【００３９】
ＳＰ５００は、例えばME処理を行うのに特化された専用のプロセッサであり、ＭＰ１００から出力される処理要求を受け付けて処理を開始し、処理を終えると完了通知をＭＰ１００へ出力する。
＜動作＞
次に、並列演算装置が行う処理について図面を用いて説明する。
【００４０】
＜ＳＰ５００の処理＞
図２は、ＳＰ５００が行う処理を示すフローチャートである。
ＳＰ５００は、ＭＰ１００から出力された処理要求を受け付けると（ステップＳ２１：ＹＥＳ）、特定の処理の実行を開始し（ステップＳ２２）、実行を終えると、完了通知をＭＰ１００へ出力する（ステップＳ２３）。以後、処理要求を受け付ける毎に（ステップＳ２１）、所定の処理を実行する（ステップＳ２２、Ｓ２３）。
【００４１】
＜ＭＰ１００の処理＞
図３は、ＭＰ１００の制御部１４が行う処理を示すフローチャートである。
制御部１４は、第１種タスクの優先度を他のタスクより高くしてタスクの処理を実行する（ステップＳ３１）。第１種タスクの処理を実行しているときに、ＳＰ５００による特定の処理の実行が必要になると、ＳＰ５００へ処理要求を出力するよう処理要求出力部１１に指示する（ステップＳ３２）。このとき、ＳＰ５００から出力される完了通知が完了通知受付部１２によって受け付けられるのを抑止する時間を決定し、決定した時間の設定を通知制御部１３に行う（ステップＳ３３）。通知制御部１３の処理および設定する時間を決定する処理については後述する。
【００４２】
制御部１４は、処理要求の出力指示を行うと、完了通知受付部１２を介して処理完了通知を受け付けるまでの間に（ステップＳ３５：ＮＯ）、第２種タスクがあれば、第２種タスクの処理を実行する（ステップＳ３４）。処理完了通知を受け付けると（ステップＳ３５：ＹＥＳ）、第１種タスクがあれば第１種タスクの処理を優先して実行する（ステップＳ３１）。
【００４３】
＜通知制御部１３の処理＞
図４は、通知制御部１３が行う処理を示すフローチャートである。
通知制御部１３は、制御部１４から時間の設定を受け付けると、自身の備えるダウンカウンタに所定時間を設定する（ステップＳ４１：ＹＥＳ）。
ＳＰ５００から完了通知を受け付けた場合であっても、ダウンカウンタに設定した所定時間が経過していない間は完了通知受付部１２によって完了通知が受け付けられないよう完了通知の出力を抑止し（ステップＳ４２：ＮＯ）、ダウンカウンタに設定した所定時間が経過した後は、既にＳＰ５００から完了通知を受け付けている場合は（ステップＳ４２：ＹＥＳ）直ちに完了通知を完了通知受付部１２へ出力し（ステップＳ４３）、ＳＰ５００から完了通知を受け付けていなければ、完了通知を受け付け次第（ステップＳ４２：ＹＥＳ）、完了通知受付部１２へ完了通知を出力する（ステップＳ４３）。
【００４４】
完了通知を出力すると、再び制御部１４から時間の設定を受け付けるまで待機する（ステップＳ４１：ＮＯ）。
＜所定時間決定処理＞
図３のステップＳ３３においては、制御部１４は、通知制御部１３に対して所定時間の設定を行うが、この所定時間を決定する方法について説明する。
【００４５】
図５は、制御部１４が、通知制御部１３に設定する所定時間を決定する処理を示すフローチャートである。
制御部１４は、処理要求出力部１１へ処理要求を出力するよう指示を行うと（ステップＳ５１）、当該指示を終了時点として処理時間計測部１５によって計測され、制御部１４へ出力された第１種タスクの処理時間をRAMに保持し（ステップＳ５２）、保持した第１種タスクの処理時間に応じて、通知制御部１３に設定する所定時間を決定する（ステップＳ５３）。所定時間を決定すると、決定した所定時間を通知制御部１３に設定する（ステップＳ５４）。
【００４６】
なお、ステップＳ５３においては、保持した第１種タスクの処理時間に応じて、通知制御部１３に設定する所定時間を決定することとしているが、ＭＰ１００において、第１種タスクの処理に要する演算量と第２種タスクの処理に要する演算量との比が判明している場合などにおいては、通知制御部１３に設定する所定時間は、保持している第１種タスクの処理時間の一定比率とすることが望ましい。細かい時間粒度における第１種タスクの処理時間と第２種タスクの処理時間との比率を一定にすることで、第１種タスクの処理時間が変動する場合であっても、長期的には第１種タスクと第２種タスクの処理時間の比率を一定に近づけることができるからである。
【００４７】
例えば、映像データの再生を行う場合に、動画データの再生処理を第１種タスクとし、音声データの再生処理を第２種タスクとすると、ＭＰ１００において動画データの再生処理に要する演算量と、音声データの再生処理に要する演算量との比率が予め判明している場合には、第１種タスクと第２種タスクの処理時間の比率を一定にすると良い。
また、ステップＳ５３において、通知制御部１３に設定する所定時間は、固定値としてもよい。例えば、第１種タスクの処理に要する演算量と第２種タスクの処理に要する演算量との比が判明しており、ＭＰ１００において第１種タスクの処理時間の変動が顕著でない場合においては、所定時間を固定値とすることで、所定時間を決定する処理を省くことができ、これにより、ＭＰ１００で行う演算量を減らすことができるからである。
【００４８】
以上のように本発明の実施の形態１にかかる並列演算装置が行う処理について説明してきたが、ＭＰ１００において処理されるタスクがどのように切り替わるかについて図を用いて補足説明する。
図６は、ＭＰ１００において、処理が実行されるタスクの変遷を示した図である。
同図においては、ＭＰ１００で処理されるタスクのうち、Ａ１、Ａ２、・・・で示されるタスクＡを第１種タスクとし、タスクＡ以外のタスクを第２種タスクとする。すなわち、Ｂ１、Ｂ２、・・・で示されるタスクＢや、タスクＣは第２種タスクである。タスクＡ、タスクＢは、リアルタイム性を要する処理を行うタスクとする。
【００４９】
また、ＳＰ５００で処理されるタスクは、Ｘ１、Ｘ２、・・・で示されるタスクＸであり、ＭＰ１００から出力された処理要求を受け付けてタスクの処理の実行を開始し、処理が終了すると、実行完了をＭＰ１００へ出力する。
同図に示した例で説明すると、ＭＰ１００は、タスクＡ１の処理を実行し、ＳＰ５００へ処理要求を出力すると、処理するタスクを切り替えてタスクＢ１の処理を実行する。このとき、通知制御部１３に所定時間の設定を行う。処理要求を受け付けてＳＰ５００においてタスクＸ１の処理の実行が開始され、通知制御部１３に設定された所定時間が経過する前にその処理が完了した場合は、所定時間が経過するまで完了通知の出力が通知制御部１３によって抑止される。
【００５０】
所定時間が経過して、完了通知がＭＰ１００によって受け付けられると、ＭＰ１００は、タスクＡ２の処理を開始する。そして、ＳＰ５００へ処理要求を出力すると、ＭＰ１００は、新たに所定時間を決定して通知制御部１３に決定した所定時間を設定するとともに、ＭＰ１００において処理するタスクを切り替えてタスクＢ２の処理を実行する。
タスクＢ２は、所定時間が経過するより前にＭＰ１００において処理が完了している。また、ＳＰ５００は、ＭＰ１００から出力された処理要求を受け付けてタスクＸ２の処理を開始するが、同図に示した場合のように、ＳＰ５００におけるタスクＸ２の処理時間が、決定した所定時間よりも長引く場合がある。
【００５１】
このように、ＭＰ１００において、所定時間よりも早くタスクＢの処理が終了した場合や、ＳＰ５００において、タスクＸの処理に要する時間が所定時間よりも長い場合は、ＭＰ１００は、タスクＢの処理完了後、ＳＰ５００から出力される完了通知を受け付けるまでの間、タスクＢ以外のタスクＣの処理を実行することができる。
これにより、本発明の並列演算装置は、ＳＰ５００におけるタスクＸの処理時間が所定時間より短い場合はＭＰ１００におけるタスクＢの処理時間を少なくとも所定時間は確保し、また、ＳＰ５００におけるタスクＸの処理時間が所定時間よりも長い場合は、ＭＰ１００は、ＳＰ５００から出力される完了通知を受け付けるまでの間、タスクＢの処理を実行できるとともに、タスクＢの処理が完了していれば、他のタスクの処理を実行することもできるので、予め定められたタイムスライスごとにタスクＡとタスクＢの処理を実行する場合に比べて、ＭＰ１００において実行する演算量をより増加させ得る。
＜実施の形態２＞
次に、本発明の別の実施形態について、実施の形態１との相違点を主眼に置きつつ説明する。なお、実施の形態１と同一の構成で同一の動作を行う部分については説明を省略する。実施の形態２においては、ＭＰは、完了通知を受け付けると、タスクの優先度に従って第１種タスクの実行を開始する。
【００５２】
＜構成＞
図７は、本発明の実施の形態２にかかる並列演算装置の機能ブロック図である。
同図に示すように、実施の形態２にかかる並列演算装置は、ＭＰ１１０と、ＳＰ５００とからなり、ＭＰ１１０は、優先度制御部１６を含む。
制御部１４は、ＳＰ５００へ処理要求を出力する指示を行う際に、優先度制御部１６に対し、処理するタスクの優先度を切り替える時間の設定を行う。また、設定した時間についての情報は、優先度制御部１６の他に処理時間計測部１５へも出力する。
【００５３】
優先度制御部１６は、制御部１４において処理するタスクの優先度を制御する。制御部１４による時間の設定があると、優先度を切り替える時間を設定し、設定した所定時間が経過するまで第２種タスクを優先して実行するよう制御部１４において処理するタスクの優先度を切り替える。所定時間経過後は、第１種タスクを優先して実行するよう優先度を切り替える。
【００５４】
処理時間計測部１５は、制御部１４において第１種タスクが処理された時間を計測する。また、制御部１４が優先度制御部１６に対して設定した時間についての情報を受け付ける。
例えば、制御部１４がＳＰ５００へ処理要求を出力するよう指示した後に、制御部１４によって設定された所定時間が経過する前にＳＰ５００からの完了通知を受け付けた場合は所定時間が経過した時点を開始時点とし、また、制御部１４によって設定された所定時間が経過した後でＳＰ５００からの完了通知を受け付けた場合はその完了通知を受け付けた時点を開始時点とする。そして、制御部１４が第１種タスクの処理を実行して処理要求を出力した時点を終了時点とする。
【００５５】
計測された開始時点と終了時点との差分を、制御部１４において第１種タスクが処理された時間として制御部１４へ出力する。
＜動作＞
次に、実施の形態２の並列演算装置が行う処理について説明する。
＜優先度制御部１６の処理＞
図８は、優先度制御部１６が優先度を切り替える処理を示すフローチャートである。
【００５６】
優先度制御部１６は、制御部１４による所定時間の設定があるまで（ステップＳ８２：ＮＯ）第１種タスクを優先して処理するよう、制御部１４において処理するタスクの優先度を制御し（ステップＳ８１）、所定時間の設定があると（ステップＳ８２：ＹＥＳ）、第２種タスクを優先して実行するよう制御部１４において処理するタスクの優先度を切り替える（ステップＳ８３）。
【００５７】
設定を受け付けてから所定時間が経過するまでは（ステップＳ８４：ＮＯ）第２種タスクを優先して処理し、所定時間が経過すると（ステップＳ８４：ＹＥＳ）、第１種タスクを優先して実行するよう制御部１４において処理するタスクの優先度を切り替える（ステップＳ８１）。
＜制御部１４の処理＞
図９は、実施の形態２における制御部１４が優先度に従ってタスクの処理を実行する動作を示すフローチャートである。
【００５８】
制御部１４は、優先度に従ってタスクの処理を実行し（ステップＳ９１）、処理要求をＳＰ５００へ出力する指示を行うと（ステップＳ９２：ＹＥＳ）、優先度制御部１６に対して所定時間の設定を行う（ステップＳ９３）。所定時間の設定を行うと、優先度に従ってタスクの処理を実行する（ステップＳ９１）。
なお、優先度制御部１６に設定する所定時間の決定方法については、実施の形態１と同様に、処理時間計測部１５によって計測された第１種タスクの処理時間をもとに、第１種タスクの処理時間と所定時間とが一定比率となるように所定時間を決定することとする。
【００５９】
なお、実施の形態１と同様に、所定時間を固定値としてもよい。
上述した実施の形態２にかかる並列演算装置のＭＰ１１０において処理されるタスクがどのように切り替わるかについて図を用いて補足説明する。
図１０は、ＭＰ１１０において、処理が実行されるタスクの変遷を示した図である。
実施の形態１で説明したように、ＭＰ１１０で処理されるタスクのうち、タスクＡを第１種タスクとし、タスクＡ以外のタスクを第２種タスクとする。ＳＰ５００で処理されるタスクは、タスクＸであるとする。タスクＡ、タスクＢはリアルタイム性を要する処理を行うタスクとし、ＭＰ１１０は、ＳＰ５００から完了通知を受け付けると、優先度に従って、第１種タスクの実行を開始する。
【００６０】
同図に示した例で説明すると、ＭＰ１１０は、タスクＡ１の処理を実行し、ＳＰ５００へ処理要求を出力すると、優先度制御部１６に所定時間の設定を行う。
優先度制御部１６による優先度の切り替え制御によって、第２種タスクを優先して実行するようＭＰ１１０において処理するタスクの優先度が切り替えられると、ＭＰ１１０は、タスクＢ１を実行する。処理要求出力後、所定時間が経過するまでは、第２種タスクを優先して実行するので、ＭＰ１１０は、所定時間経過前にタスクＡ２が生成されたとしても、タスクＢ１を所定時間実行した後にタスクＡ２の実行を開始する。
【００６１】
そして、ＭＰ１１０は、タスクＡ２の処理を終えて処理要求をＳＰ５００へ出力すると、優先度制御部１６に所定時間の設定を行う。ＳＰ５００では、ＭＰ１１０から出力された処理要求を受け付けてタスクＸ２の処理を開始するが、同図に示すように、ＳＰ５００におけるタスクＸ２の処理時間が、優先度制御部１６に設定された所定時間より長くなる場合がある。
【００６２】
この場合は、所定時間が経過すると、優先度制御部１６による優先度制御によって第１種タスクを優先して実行するよう処理するタスクの優先度が切り替えられるが、所定時間経過後であっても、第１種タスクが存在しなければ、第２種タスクを実行することができる。
＜実施の形態３＞
次に、本発明の別の実施形態について、実施の形態１との相違点を主眼に置きつつ説明する。なお、実施の形態１と同一構成で同一の動作を行う部分については説明を省略する。
【００６３】
＜構成＞
図１１は、本発明の実施の形態３にかかる並列演算装置の機能ブロック図である。
同図に示すように、実施の形態３にかかる並列演算装置は、ＭＰ１２０とＳＰ５００とからなり、処理要求遅延部１７を備える。
制御部１４は、処理要求出力部１１に処理要求を出力するよう指示する際に、処理要求遅延部１７に対して時間の設定を行う。また、設定した時間についての情報は、処理要求遅延部１７の他に処理時間計測部１５へも出力する。
【００６４】
処理時間計測部１５は、制御部１４による処理要求出力の指示、および完了通知受付部１２が完了通知を受け付けて出力した所定の信号をもとに、制御部１４において第１種タスクが処理された時間を制御部１４へ出力するとともに、さらに、制御部１４から、処理要求遅延部１７に設定した時間についての情報を受け付けて、設定した時間の情報と、処理要求と、完了通知とに基づいて、ＳＰ５００が処理を行った時間を推定し、推定したＳＰ処理時間を制御部１４へ出力する。
【００６５】
例えば、ＭＰ１２０が処理要求を出力してから完了通知を受け付けるまでの時間を第２種タスク占有時間とすると、第２種タスク占有時間から処理要求遅延部１７に設定した時間を減ずることで、ＳＰ５００の処理時間を推定することができる。
処理要求遅延部１７は、ダウンカウンタを備え、処理要求出力部１１から出力された処理要求を受け付けるとともに、制御部１４による時間の設定の指示を受け付けて、所定時間の間、処理要求出力部１１から出力された処理要求がＳＰ５００によって受け付けられるのを抑止する回路である。設定された時間が経過すると、処理要求をＳＰ５００へ出力し、出力した後は、再び時間の設定が行われて所定時間が経過するまで処理要求の出力を抑止する。
【００６６】
＜動作＞
次に、並列演算装置が行う処理について図面を用いて説明する。
＜ＭＰ１２０の処理＞
図１２は、実施の形態３における制御部１４が行う処理を示すフローチャートである。
制御部１４は、第１種タスクの優先度を他のタスクより高くしてタスクの処理を実行する（ステップＳ１２１）。第１種タスクの処理を実行しているときに、ＳＰ５００による特定の処理の実行が必要になると、処理要求遅延部１７によって処理要求がＳＰ５００によって受け付けられるのを遅延させる時間を決定し、決定した時間の設定を処理要求遅延部１７に行い（ステップＳ１２２）、時間の設定を行うと、処理要求を出力するよう処理要求出力部１１に指示する（ステップＳ１２３）。設定する時間を決定する処理については後述する。
【００６７】
制御部１４は、処理要求の出力指示を行うと（ステップＳ１２３）、完了通知受付部１２を介して処理完了通知を受け付けるまでの間に（ステップＳ１２５：ＮＯ）、他のタスクを処理し、第２種タスクがあれば、処理するタスクを切り替えて第２種タスクの処理を実行する（ステップＳ１２４）。処理完了通知を受け付けると（ステップＳ１２５：ＹＥＳ）、第１種タスクがあれば第１種タスクの処理を優先して実行する（ステップＳ１２１）。
【００６８】
＜処理要求遅延部１７の処理＞
図１３は、処理要求遅延部１７が行う処理を示すフローチャートである。
処理要求遅延部１７は、制御部１４から所定時間の設定を受け付けると、自身の備えるダウンカウンタに所定時間を設定する（ステップＳ１３１：ＹＥＳ）。処理要求を受け付けて、ダウンカウンタに設定された所定時間が経過すると、処理要求をＳＰ５００へ出力する（ステップＳ１３２）。
【００６９】
＜所定時間決定処理＞
図１２のステップＳ１２２においては、制御部１４は、処理要求遅延部１７に対して所定時間の設定を行うが、この際の、所定時間を決定する方法について説明する。
図１４は、制御部１４が、処理要求遅延部１７に設定する所定時間を決定する処理を示すフローチャートである。
【００７０】
制御部１４は、処理要求を出力するよう指示を行うと（ステップＳ１４１）、処理時間計測部１５によって計測された第１種タスクの処理時間をもとに制御部１４において第２種タスクを実行する時間である第２種タスク占有目標時間を決定する（ステップＳ１４２）。例えば、第１種タスクの処理時間と第２種タスク占有目標時間とが一定比率となるように決定する。
【００７１】
決定した第２種タスク占有目標時間と、当該指示を行う時点で処理時間計測部１５によって出力されているＳＰ処理時間との差分を計算し、計算した差分を、所定時間として決定する（ステップＳ１４３）。所定時間を決定すると、決定した所定時間を処理要求遅延部１７に設定する（ステップＳ１４４）。
このようにして、制御部１４は、第１種タスクの処理時間をもとに、制御部１４において第２種タスク占有目標時間を決定し、決定した第２種タスク占有目標時間に基づいて所定時間を決定し、さらに、ＳＰ５００の処理時間の変動があった場合でも、推定したＳＰ処理時間をもとに、所定時間をより正確に決定することができる。
【００７２】
上述した実施の形態３にかかる並列演算装置のＭＰ１２０において処理されるタスクがどのように切り替わるかについて図を用いて補足説明する。
図１５は、ＭＰ１２０において、処理が実行されるタスクの変遷を示した図である。
実施の形態１で説明したように、ＭＰ１２０で処理されるタスクのうち、タスクＡを第１種タスクとし、タスクＡ以外のタスクを第２種タスクとする。ＳＰ５００で処理されるタスクは、タスクＸであるとする。
【００７３】
なお、ＭＰ１２０は、はじめにタスクＡ１から処理の実行を開始するものとし、予めＳＰ５００の処理時間の見積もり値Ｔｘを保持しているものとする。
また、ＭＰ１２０およびＳＰ５００における各タスクの処理時間を、例えばタスクＡ１の処理時間はＴＡ１、タスクＡ２の処理時間はＴＡ２、・・・と表記する。タスクＸについても、ＴＸ１、ＴＸ２、・・・とする。
【００７４】
また、タスクＢの、ＭＰ１２０における占有目標時間をＴＢ１、ＴＢ２、・・・とする。
また、処理要求遅延部１７に設定する所定時間については、タスクＡ１を実行して処理要求を出力する際に設定する遅延時間はＴｄ１、タスクＡ２を実行して処理要求を出力する際に設定する遅延時間はＴｄ２、・・・とする。
【００７５】
同図に示した例で説明すると、ＭＰ１２０は、タスクＡ１の処理を実行し、ＳＰ５００へ処理要求を出力する際に、タスクＡ１のＭＰ１２０における処理時間ＴＡ１をもとに、第２種タスク占有目標時間ＴＢ１を決定する。ＴＢ１を決定すると、予め保持しているＳＰ５００の処理見積もり値Ｔｘを読み出して、Ｔｄ１＝ＴＢ１−Ｔｘとして所定時間を決定する。
【００７６】
タスクＸ１の処理が完了して完了通知をＭＰ１２０が受け付けると、タスクＡ２の処理の実行を開始する。このとき、処理時間計測部１５によって、ＳＰ５００におけるタスクＸ１の処理時間Ｘ１が推定される。
ＭＰ１２０は、タスクＡ２の処理を実行してＳＰ５００へ処理要求を出力する際に、タスクＡ２のＭＰ１２０における処理時間ＴＡ２をもとに、第２種タスク占有目標時間ＴＢ２を決定する。ＴＢ２を決定すると、Ｔｘに代えて処理時間計測部１５によって推定されたＴＸ１を用いて、Ｔｄ２を、Ｔｄ２＝ＴＢ１−ＴＸ１によって求め、求めたＴｄ２を所定時間として決定する。
【００７７】
このように、ＳＰ５００における処理時間の推定値を逐次求めて、推定された値をもとに所定時間を決定することで、ＳＰ５００の処理時間が変動する場合であっても、第２種タスク占有目標時間に基づいて算出する所定時間を、ＳＰ５００の処理時間の変動に対応して逐次補正することができる。例えば、上述の例で言えば、ＴＢ１を算出して、ＴＢ１とＴｘとの差分をＴｄ１としたが、実際のＳＰ５００の処理時間ＴＸ１はＴｘよりも大きかったために、Ｔｄ１とＴＸ１との和がＴＢ１よりも大きかった場合において、次にＴｄ２を決定する際に、ＳＰ５００の実際の処理時間ＴＸ１をもとにＴｄ２を決定することで、ＭＰ１２０における第２種タスクの処理時間を、第２種タスク占有目標時間に近づけることができる。
＜補足＞
以上のように本発明の実施の形態について説明してきたが、本発明は、上述の実施形態に限られない。以下の場合も本発明に含まれる。
（１）実施の形態１においては、通知制御部１３は、ＭＰ１００の一部として説明したが、これに限らず、ＭＰ１００の外部に備えることとしてもよい。
【００７８】
また、実施の形態２においては、優先度制御部１６は、ＭＰ１１０の一部として説明したが、これに限らず、ＭＰ１１０の外部に備えることとしてもよい。
また、実施の形態３においては、処理要求遅延部１７は、ＭＰ１２０の一部として説明したが、これに限らず、ＭＰ１２０の外部に備えることとしてもよい。
（２）上述の実施の形態においては、処理時間計測部１５は、ＭＰ１００、ＭＰ１１０、ＭＰ１２０の一部として説明したが、これに限らず、ＭＰ１００、ＭＰ１１０、ＭＰ１２０の外部に備えることとしてもよい。
（３）実施の形態２においては、優先度制御部１６は、制御部１４とは別の構成とし、制御部１４とは別に処理を行うこととして説明しているが、これにかえて、制御部１４によって優先度制御部１６の行う処理を実行することとしてもよい。
（４）実施の形態３においては、処理要求遅延部１７に設定する所定時間は、第２種タスク占有目標時間と、ＳＰ処理時間との差分としているが、これに限らず、所定の固定値としてもよい。
（５）実施の形態１においては、処理要求を出力する毎に、第１種タスクの処理時間に応じて通知制御部１３に設定する所定時間を決定することとしているが、これに限らず、複数回にわたる第１種タスクの処理時間をもとにして通知制御部１３に設定する所定時間を決定することとしてもよい。
【００７９】
また、実施の形態２において優先度制御部１６に行う所定時間も、複数回にわたる第１種タスクの処理時間を元にして決定することとしてもよい。
また、実施の形態３においては、処理要求を出力する毎に、処理時間計測部１５によって推定されたＳＰ処理時間を用いて処理要求遅延部１７に設定する所定時間を決定することとしているが、これに限らず、複数回にわたるＳＰ処理時間の推定値をもとに所定時間を決定することとしてもよい。
（６）実施の形態１および３では、通知制御部１３や処理要求遅延部１７によって、ＳＰから出力される完了通知をＭＰが受け付けるタイミングを制御していたが、これに限らず、ＳＰ上のソフトウェアを用いて完了通知を出力するタイミングを制御することとしてもよい。
（７）上述の実施の形態においては、ＳＰ５００は、ME処理等の、演算処理の高速化を目的とした専用プロセッサであるとして説明しているが、これに限らず、DMA（Direct Memory Access）でのデータ転送処理など、ＭＰによる処理依頼によって処理を開始するプロセッサ全般に適用可能である。例えば、通信処理や、データの多重化処理、多重分離処理や、転送処理、解析処理などを外部の処理装置によって行わせる場合にも適用可能である。
（８）実施の形態１においては、通知制御部１３に設定した時間が経過するまでは、ＭＰ１００において第２種タスクの処理が完了している場合であってもＭＰ１００への完了通知の出力を抑止することとしているが、これに限らず、ＭＰ１００において第２種タスクの処理が完了した場合は、通知制御部１３による処理を停止させることとしてもよい。
【００８０】
これにより、ＭＰ１００において、所定時間経過前に第２種タスクの処理が完了していれば、ＭＰ１００は、所定時間の経過を待つことなく、完了通知を受け付けることができる。
（９）上述の実施の形態においては、ＳＰは１つとして説明してきたが、これに限らず、ＳＰが複数存在していてもよい。例えば、全てのＳＰが処理を終えたときに、完了通知をＭＰへ出力することで本発明を適用できる。
（１０）実施形態３においては、ＭＰがＳＰへ処理要求を出力する際に、処理要求がＳＰによって受け付けられるのを所定時間遅延させることとしていたが、これに限らず、ＳＰによって出力された処理完了通知がＭＰによって受け付けられるのを所定時間だけ遅延させることとしてもよい。例えば、ダウンカウンタを備え、ＳＰ５００から出力された完了通知を受け付けるとともに、制御部１４による時間の設定の指示を受け付けて、完了通知を受け付けてから所定時間の間、完了通知受付部１２が完了通知を受け付けるのを遅延させ、完了通知を受け付けてから所定時間が経過すると完了通知を完了通知受付部１２へ出力する回路である完了通知遅延部を、ＳＰ５００と完了通知受付部１２との間に設けることで実現できる。
【００８１】
また、ＭＰがＳＰの動作を制御することが可能な場合においては、ＳＰが処理を行っているときに、ＳＰの行う処理を所定時間だけ停止させることとしてもよい。
（１１）実施の形態１および実施の形態２では、図６および図１０を用いて、並列演算装置において処理が実行されるタスクの変遷について説明したが、タスクＢ、タスクＣがラウンドロビンで定期的に切り替わる場合は、タスクＢが終了しなくとも、切り替わりタイミングに来たときにタスクＣに切り替わる。（１２）本発明は、上記に示すタスク切り替え方法であるとしてもよい。
（１３）上記実施の形態および上記変形例をそれぞれ組み合わせるとしてもよい。
（１４）上述の並列演算装置または上述のタスク切り替え方法を用いた情報処理装置も、本発明に含まれる。
【産業上の利用可能性】
【００８２】
本発明は、汎用のプロセッサとは別に専用のプロセッサを備えてタスクの処理を行う並列演算装置において有用である。
【図面の簡単な説明】
【００８３】
【図１】実施の形態１における並列演算装置の構成を示す機能ブロック図である。
【図２】ＳＰ５００が行う処理を示すフローチャートである。
【図３】ＭＰ１００の制御部１４が行う処理を示すフローチャートである。
【図４】通知制御部１３が行う処理を示すフローチャートである。
【図５】制御部１４が、通知制御部１３に設定する所定時間を決定する処理を示すフローチャートである。
【図６】ＭＰ１００において、処理が実行されるタスクの変遷を示した図である。
【図７】本発明の実施の形態２にかかる並列演算装置の機能ブロック図である。
【図８】優先度制御部１６が優先度を切り替える処理を示すフローチャートである。
【図９】実施の形態２における制御部１４が優先度に従ってタスクの処理を実行する動作を示すフローチャートである。
【図１０】実施の形態２のＭＰ１１０において、処理が実行されるタスクの変遷を示した図である。
【図１１】本発明の実施の形態３にかかる並列演算装置の機能ブロック図である。
【図１２】実施の形態３における制御部１４が行う処理を示すフローチャートである。
【図１３】処理要求遅延部１７が行う処理を示すフローチャートである。
【図１４】制御部１４が、処理要求遅延部１７に設定する所定時間を決定する処理を示すフローチャートである。
【図１５】実施の形態３のＭＰ１２０において、処理が実行されるタスクの変遷を示した図である。
【符号の説明】
【００８４】
１１  処理要求出力部
１２  完了通知受付部
１３  通知制御部
１４  制御部
１５  処理時間計測部
１６  優先度制御部
１７  処理要求遅延部
１００  ＭＰ
１１０  ＭＰ
１２０  ＭＰ
５００  ＳＰ
【図１】
2007026095.tif 000003
【図２】
2007026095.tif 000004
【図３】
2007026095.tif 000005
【図４】
2007026095.tif 000006
【図５】
2007026095.tif 000007
【図６】
2007026095.tif 000008
【図７】
2007026095.tif 000009
【図８】
2007026095.tif 000010
【図９】
2007026095.tif 000011
【図１０】
2007026095.tif 000012
【図１１】
2007026095.tif 000013
【図１２】
2007026095.tif 000014
【図１３】
2007026095.tif 000015
【図１４】
2007026095.tif 000016
【図１５】
2007026095.tif 000017