(57)【要約】【課題】並行処理される複数のタスク毎の処理期限管理を、より高精度に行うことが可能な情報処理装置を提供すること。【解決手段】一単位のプロセッサによって複数のタスクを並行して処理可能な情報処理装置であって、前記複数のタスクの少なくとも一部には処理期限が設定され、前記複数のタスクのうち処理期限が設定された複数のタスクに対応した、複数の処理期限管理用ハードウエア手段を備えることを特徴とする、情報処理装置。【選択図】図１
2011150532.tif 000002
【特許請求の範囲】
【請求項１】
一単位のプロセッサによって複数のタスクを並行して処理可能な情報処理装置であって、
前記複数のタスクの少なくとも一部には処理期限が設定され、
前記複数のタスクのうち処理期限が設定された複数のタスクに対応した、複数の処理期限管理用ハードウエア手段を備えることを特徴とする、
情報処理装置。
【請求項２】
請求項１に記載の情報処理装置であって、
前記複数の処理期限管理用ハードウエア手段は、それぞれ専用の計時手段を備えることを特徴とする、
情報処理装置。
【請求項３】
請求項２に記載の情報処理装置であって、
前記複数の処理期限管理用ハードウエア手段は、
前記一単位のプロセッサが実行するプログラムのプログラムカウンタの値を監視するプログラムカウンタ監視手段と、
前記複数のタスクのうち処理期限が設定された複数のタスクに対応した、プログラムカウンタの開始位置、終了位置、及び処理期限に関する情報を記憶した記憶手段と、
を備え、
前記プログラムカウンタ監視手段により前記プログラムカウンタの値が前記開始位置に至ったと判断された際に前記計時手段が計時開始し、該計時開始後、前記処理期限までに前記プログラムカウンタ監視手段により前記プログラムカウンタの値が前記終了位置に至ったと判断されなかった場合に、所定の異常検出時動作を行うことを特徴とする、
情報処理装置。
【請求項４】
請求項３に記載の情報処理装置であって、
前記所定の異常検出時動作は、ＳＦＲ（Special  Function  Resister）に異常検出を示す値を書き込む動作である、
情報処理装置。
【請求項５】
車両に搭載され、前記複数のタスクは、車載機器の制御を行うための演算処理を含む、請求項１ないし４のいずれか１項に記載の情報処理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、複数のタスクを並行して処理可能な情報処理装置に関し、特に、マルチスレッディングを行う情報処理装置、及びマルチコア・プロセッサとして構成される情報処理装置に関する。
【背景技術】
【０００２】
従来、ハードウエア・マルチスレッディングやソフトウエア・マルチスレッディングを行うことにより並行処理を実行可能とした情報処理装置が知られている。また、マルチコア・プロセッサと称される、一単位のＣＰＵ（プロセッサ）の中に複数のＣＰＵコアを備える情報処理装置が同様に知られている。これらの情報処理装置では、複数のタスクを並行して処理可能となっている。
【０００３】
ところで、情報処理装置が処理するタスクには、処理期限が設定されているものが存在する。特許文献１には、タスクに一定時間を与え、その時間が経過すると別のタスクに切り替わるＴＳＳ（Time  Sharing  System）機能を有する半導体集積回路について記載されている。
【０００４】
そして、この半導体集積回路は、プロセッサに対して一個のタイマを備え、特権モードによるプログラムの実行と非特権モードによるプログラムの実行のいずれかに同期したタイマを作動させている。これによって、割り込み等によってタスクの処理が中断した際にはタイマを一時停止させ、本来タスクに与えられている処理時間を確保できるように制御している。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開平１０−２４７１４６号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
しかしながら、上記特許文献１に記載の半導体集積回路では、プロセッサに対して一個の汎用タイマのみを備えるため、複数のタスクを並行して処理する場合、一のタスクについてしか処理期限管理を行うことができず、他のタスクについての処理期限管理ができないことになる。
【０００７】
また、特定のタスク内で処理が固着するような異常の発生時には、割り込み等によって対応処理を行うのが通常であるが、この場合、一のタスクが処理期限違反を犯した場合に、全てのタスクをリセットすることになりかねない。
【０００８】
また、ソフトウエアによってタイマのオン／オフ制御を行っているため、タイマによる計時精度が低下するおそれがある。
【０００９】
本発明はこのような課題を解決するためのものであり、並行処理される複数のタスク毎の処理期限管理を、より高精度に行うことが可能な情報処理装置を提供することを、主たる目的とする。
【課題を解決するための手段】
【００１０】
上記目的を達成するための本発明の一態様は、
一単位のプロセッサによって複数のタスクを並行して処理可能な情報処理装置であって、
前記複数のタスクの少なくとも一部には処理期限が設定され、
前記複数のタスクのうち処理期限が設定された複数のタスクに対応した、複数の処理期限管理用ハードウエア手段を備えることを特徴とする、
情報処理装置である。
【００１１】
ここで、複数のタスクを並行して処理可能な一単位のプロセッサとは、マルチスレッディングを行うシングルコアプロセッサやマルチコア・プロセッサ等、１パッケージに封入されたプロセッサをいう。
【００１２】
この本発明の一態様によれば、複数のタスクのうち処理期限が設定された複数のタスクに対応した、複数の処理期限管理用ハードウエア手段を備えるため、並行処理される複数のタスク毎の処理期限管理を、より高精度に行うことができる。
【００１３】
本発明の一態様において、
前記複数の処理期限管理用ハードウエア手段は、それぞれ専用の計時手段を備えることを特徴とするものとしてもよい。
【００１４】
こうすれば、並行処理される可能性がある複数のタスク毎の処理期限管理を、更に高精度に行うことができる。
【００１５】
また、本発明の一態様において、
前記複数の処理期限管理用ハードウエア手段は、
前記一単位のプロセッサが実行するプログラムのプログラムカウンタの値を監視するプログラムカウンタ監視手段と、
前記複数のタスクのうち処理期限が設定された複数のタスクに対応した、プログラムカウンタの開始位置、終了位置、及び処理期限に関する情報を記憶した記憶手段と、
を備え、
前記プログラムカウンタ監視手段により前記プログラムカウンタの値が前記開始位置に至ったと判断された際に前記計時手段が計時開始し、該計時開始後、前記処理期限までに前記プログラムカウンタ監視手段により前記プログラムカウンタの値が前記終了位置に至ったと判断されなかった場合に、所定の異常検出時動作を行うことを特徴とするものとしてもよい。
【００１６】
ここで、プログラムカウンタの開始位置、終了位置、及び処理期限に関する情報を記憶した記憶手段は、開始位置を記憶した記憶手段、終了位置を記憶した記憶手段、処理期限に関する情報を記憶した別体の記憶手段の集合であってもよいし、一の記憶手段の異なる記憶領域に開始位置、終了位置、及び処理期限に関する情報が記憶されたものであってもよい。
【００１７】
また、本発明の一態様において、
前記所定の異常検出時動作は、例えば、ＳＦＲ（Special  Function  Resister）に異常検出を示す値を書き込む動作である。
【００１８】
これによって、ＯＳ（Operating  System）等のソフトウエアから異常検出がなされたか否かを参照することができる。
【００１９】
また、本発明の一態様は、
車両に搭載され、前記複数のタスクは、車載機器の制御を行うための演算処理を含んでもよい。
【００２０】
車両に搭載される制御装置では、繰り返し同じ処理が実行され、且つタスクの数が固定である場合が多いため、本発明の奏する効果を十分に発揮することができる。
【発明の効果】
【００２１】
本発明によれば、並行処理される複数のタスク毎の処理期限管理を、より高精度に行うことが可能な情報処理装置を提供することができる。
【図面の簡単な説明】
【００２２】
【図１】本発明の一実施例に係る情報処理装置１のシステム構成例である。
【図２】情報処理装置１の電源投入時に開始される処理の流れを示すフローチャートである。
【図３】情報処理装置１における図示しないＯＳ（Operating  System）によって実行される処理期限違反監視処理の流れを示すフローチャートである。
【図４】単独のタイマを備える従来の情報処理装置において、あるタスクに異常が発生し、これによって処理期限違反が発生した様子を模式的に示す図である。
【図５】本実施例に係る情報処理装置１において、あるタスクに異常が発生し、これによって処理期限違反が発生した様子を模式的に示す図である。
【図６】図６は、タスクＡ〜Ｃの処理を実行している情報処理装置１Ａと、タスクＤの処理のみを実行している情報処理装置１Ｂが存在し、タスクＣの処理を情報処理装置１Ａから情報処理装置１Ｂに移管する様子を示す図である。
【発明を実施するための形態】
【００２３】
以下、本発明を実施するための形態について、添付図面を参照しながら実施例を挙げて説明する。
【実施例】
【００２４】
以下、図面を参照し、本発明の一実施例に係る情報処理装置１について説明する。
【００２５】
［全体構成］
図１は、本発明の一実施例に係る情報処理装置１のシステム構成例である。情報処理装置１は、主要な構成として、ＣＰＵ（Central  Processing  Unit）１０と、複数の処理期限管理用ハードウエア２０＃１〜２０＃ｎと、を備える。
【００２６】
ＣＰＵ１０は、例えば、命令デコーダ、各種レジスタ、演算回路、キャッシュメモリ、プログラムカウンタ１２等を有するシングルコアＣＰＵである。ＣＰＵ１０は、図示しないプログラムメモリに格納されたプログラム（命令）を専用レジスタにフェッチし、これをデコードして実行することにより、種々の処理を行なうことができる。プログラムメモリとしては、例えばＲＯＭ（Read  Only  Memory）やＥＥＰＲＯＭ（Electrically  Erasable  and  Programmable  Read  Only  Memory）等が用いられる。
【００２７】
また、ＣＰＵ１０は、例えばソフトウエア・マルチスレッディングを実行することにより、複数のタスクを並行して処理可能となっている。具体的には、例えば、まずタスクＡの処理の一定時間を付与し、一定時間が経過するとタスクＡの処理を一時停止してタスクＢの処理を開始する。次いで、タスクＢに付与された一定時間が経過するとタスクＢの処理を一時停止してタスクＣの処理を開始する。このように複数のタスクの処理を順次行うことにより、複数のタスクを並行して処理することができる。
【００２８】
ＣＰＵ１０は、ソフトウエア・マルチスレッディングに代えて、ハードウエア・マルチスレッディングを実行するものであってもよい。この場合、タスク毎に命令デコーダ等が設けられ、演算回路等の一部のハードウエアがスレッド間で共有される。
【００２９】
また、ＣＰＵ１０は、マルチコア・プロセッサとして構成され、これによって複数のタスクを並行して処理可能なものであってもよい。
【００３０】
プログラムカウンタ１２は、ＣＰＵ１０が現在実行している命令の、プログラムメモリ上のアドレスについての情報を保持するプログラムレジスタである。
【００３１】
複数の処理期限管理用ハードウエア２０＃１〜２０＃ｎは、情報処理装置１が実行する複数のタスク（並行して実行しないものを含んでもよい）のうち、処理期限が設定される複数のタスクに対応して備えられている。例えば処理期限が設定されるタスクの数が５である場合、情報処理装置１は、少なくとも５個の処理期限管理用ハードウエア２０＃１〜２０＃ｎを備えることが望ましい。
【００３２】
複数の処理期限管理用ハードウエア２０＃１〜２０＃ｎのそれぞれは、同様な構成を有している。従って、以下の説明では、これらのうち一の処理期限管理用ハードウエアの内容についてのみ言及し（単に処理期限管理用ハードウエア２０と表記する）、いずれの処理期限管理用ハードウエアであるかを識別するための符号「＃ｋ」（ｋ＝１〜ｎ）は省略する。
【００３３】
［処理期限管理用ハードウエア］
処理期限管理用ハードウエア２０は、タイマ設定レジスタ２２と、カウント開始ＰＣ（プログラムカウンタ）レジスタ２４と、カウント停止ＰＣ（プログラムカウンタ）レジスタ２６と、初期値レジスタ２８と、タイマ処理部３０と、カウントレジスタ３２と、アンダーフロー検知部３４と、異常検出ステータスレジスタ３６と、を備える。
【００３４】
タイマ設定レジスタ２２は、タイマ処理部３０及びカウントレジスタ３２によって実現されるタイマの分解能、その他のコンフィグ情報を保持している。
【００３５】
カウント開始ＰＣレジスタ２４は、当該処理期限管理用ハードウエアに対応したタスク（以下、単に「該当タスク」と称する）が開始される時点のプログラムカウンタ１２の値を保持している。
【００３６】
カウント停止ＰＣレジスタ２６は、該当タスクが終了する時点のプログラムカウンタ１２の値を保持している。
【００３７】
初期値レジスタ２８は、該当タスクに付与される処理期限までの時間（開始時点を基準として処理終了するまでの目標時間をいう）に相当するカウントレジスタ３２のカウンタ値を保持している。
【００３８】
カウント開始ＰＣレジスタ２４、カウント停止ＰＣレジスタ２６、及び初期値レジスタ２８は、図１に示したように別体であってもよいが、同じレジスタ上の異なる記憶領域を指すものであっても構わない。
【００３９】
タイマ処理部３０は、プログラムカウンタ１２を監視しており、プログラムカウンタ１２の値がカウント開始ＰＣレジスタ２４に保持された値と一致したときに、初期値レジスタ２８に保持された値をカウントレジスタ３２に書き込むと共に、カウントレジスタ３２のレジスタ値を所定のペースでデクリメントさせる。
【００４０】
ここで、タイマ処理部３０には、例えば情報処理装置１全体に基準クロックを供給するクロックジェネレータから、基準クロックが供給されている。そして、この基準クロックの立ち上がり等のタイミングで、所定の値ずつカウントレジスタ３２のレジスタ値をデクリメントさせる。
【００４１】
これによって、該当タスクに付与される処理期限が到来すると、カウントレジスタ３２のレジスタ値がゼロとなる（アンダーフローする）ことになる。なお、前述のタイマ設定レジスタ２２により保持されたコンフィグ情報は、情報処理装置１におけるいずれのクロックを選択するか、等の情報を含んでいる。
【００４２】
更に、タイマ処理部３０は、プログラムカウンタ１２の値がカウント停止ＰＣレジスタ２６に保持された値と一致したときに、上記デクリメント処理を停止する。係る動作は、該当タスクが正常に終了した場合に行われる。なお、このデクリメント処理の終了時に、初期値レジスタ２８に保持された値をカウントレジスタ３２に書き込む処理を行っておいてもよい。
【００４３】
一方、アンダーフロー検知部３４は、カウントレジスタ３２のレジスタ値がゼロとなる（アンダーフローする）と、異常検出ステータスレジスタ３６に所定の値を書き込む（特許請求の範囲における「所定の異常検出時動作」の一例である）。係る動作は、該当タスクが処理期限までに終了しなかった場合に行われる。
【００４４】
異常検出ステータスレジスタ３６は、いわゆるＳＦＲ（Special  Function  Resister）であり、ＣＰＵ１０その他のプロセッサにより実行されているソフトウエアからレジスタ値を参照可能となっている。
【００４５】
また、異常検出ステータスレジスタ３６は、割り込み制御部５０等によって参照されてよい。この場合、割り込み制御部５０は、異常検出ステータスレジスタ３６に所定の値が書き込まれているか否かを定期的に監視し、所定の値が書き込まれている場合には、該当するタスクを停止させる等の制御を実行する。
【００４６】
このような構成によって、本実施例の情報処理装置１では、タイマ処理部３０によりプログラムカウンタ１２の値が開始位置に至ったと判断された際にタイマ処理部３０及びカウントレジスタ３２によって実現されるタイマが計時開始し、その後、処理期限までにタイマ処理部３０によりプログラムカウンタ１２の値が終了位置に至ったと判断された場合には、正常に該当タスクが終了する。一方、タイマの計時開始後、タイマ処理部３０によりプログラムカウンタ１２の値が終了位置に至ったと判断されなかった場合に、所定の異常検出時動作を行うことになる。
【００４７】
これによって、処理期限の設定される複数のタスクについての処理期限管理を行うことができる。また、あるタスクにおいて処理期限違反が発生した場合に、当該タスクのみを停止すればよいため、他のタスクについて継続的に処理を実行することができる。
【００４８】
更に、上記のように、タイマ処理部３０、カウントレジスタ３２、及び供給される基準信号等からなるハードウエア手段によって計時を行うため、計時精度を高くすることができ、より高精度に処理期限管理を行うことができる。
【００４９】
［処理フロー］
以下、情報処理装置１の各処理段階において実行される処理の流れについて説明する。図２は、情報処理装置１の電源投入時に開始される処理の流れを示すフローチャートである。
【００５０】
情報処理装置１に電源が投入されると、各種の初期化処理が実行される（Ｓ１００）。具体的には、ＣＰＵの初期化、ＲＡＭの初期化、周辺ハードウエアの初期化、及び処理期限管理用ハードウエアの初期化等が実行される。
【００５１】
ここで、処理期限管理用ハードウエアの初期化とは、図示しないＲＯＭ等の不揮発性メモリから、タイマ設定レジスタ２２、カウント開始ＰＣレジスタ２４、カウント停止ＰＣレジスタ２６、及び初期値レジスタ２８に保持すべき値を読み出して、これらに書き込む処理をいう。
【００５２】
各種の初期化処理が終了すると、情報処理装置１は、通常動作を開始する（Ｓ１０２）。
【００５３】
また、図３は、情報処理装置１における図示しないＯＳ（Operating  System）によって実行される処理期限違反監視処理の流れを示すフローチャートである。このＯＳは、ＣＰＵディスパッチャやキャッシュコントローラ等の機能を有している。
【００５４】
本フローは、例えば割り込み制御部５０から割り込み信号が出力されたときに開始される。
【００５５】
まず、情報処理装置１におけるＯＳは、各処理期限管理用ハードウエアが有する異常検出ステータスレジスタ３６の値を参照することにより、処理期限違反が発生したタスクが存在するか否かを判定する（Ｓ２００）。処理期限違反が発生したタスクが存在しない場合は、本フローの１ルーチンを終了する。
【００５６】
処理期限違反が発生したタスクが存在する場合は、当該処理期限違反が発生したタスクの重要度に基づき、システムリセットが必要であるか否かを判定する（Ｓ２０２）。システムリセットが必要である場合とは、当該処理期限違反が発生したタスクが、装置全体の処理の影響を及ぼすような場合である。
【００５７】
システムリセットが必要であると判定した場合は、システムリセットを実行し（Ｓ２０４）、本フローの１ルーチンを終了する。この場合、例えば図２で説明したような初期化処理が実行される。
【００５８】
一方、システムリセットが不要であると判定した場合は、処理期限違反が発生したタスクに対する処置を実行する（Ｓ２０６）。具体的には、当該処理期限違反が発生したタスクの再初期化、停止等の処置を実行する。
【００５９】
そして、当該処理期限違反が発生したタスクに対応した処理期限管理用ハードウエアの初期化処理を実行し（Ｓ２０８）、次タスクに処理を移行して（Ｓ２１０）、本フローの１ルーチンを終了する。処理期限違反が発生したタスクは、次回の処理時間が割り当てられた際に、初期状態から処理が開始されることになる。
【００６０】
［従来の装置との比較］
ここで、単独のタイマを備える従来の情報処理装置との比較について述べる。図４は、単独のタイマを備える従来の情報処理装置において、あるタスクに異常が発生し、よって処理期限違反が発生した様子を模式的に示す図である。本図では、従来の情報処理装置は、ソフトウエア・マルチスレッディングによって複数のタスクＡ〜Ｃを実行している。そして、タスクＣのみについて処理期限管理を行っている。
【００６１】
図４に示すように、従来の情報処理装置では、タスクＣに異常が発生し、これによって処理期限違反が発生すると、全体の処理をリセットしなければならなかった。従って、それまで処理されていた他のタスクの内容が引き継がれない場合があった。
【００６２】
一方、図５は、本実施例に係る情報処理装置１において、あるタスクに異常が発生し、これによって処理期限違反が発生した様子を模式的に示す図である。本図では、本実施例に係る情報処理装置１は、ソフトウエア・マルチスレッディングによって複数のタスクＡ〜Ｃを実行している。そして、タスクＡ〜Ｃについて処理期限管理を行っている。
【００６３】
図５に示すように、本実施例の情報処理装置１では、タスクＣに異常が発生し、よって処理期限違反が発生しても、全体の処理をリセットしなくてもよい場合がある（前述のように、タスクＣが装置全体の処理に影響を及ぼすような場合を除く）。従って、それまで処理されていた他のタスクの内容を以降に引き継ぐことができる。
【００６４】
［まとめ］
以上説明した本実施例の情報処理装置１によれば、処理期限の設定される複数のタスクについての処理期限管理を行うことができる。また、あるタスクにおいて処理期限違反が発生した場合に、他のタスクについて継続的に処理を実行することができる。
【００６５】
更に、計時精度を高くすることができ、より高精度に処理期限管理を行うことができる。
【００６６】
従って、並行処理される複数のタスク毎の処理期限管理を、より高精度に行うことができる。
【００６７】
［適用例］
なお、本発明の情報処理装置は、車両に搭載され、車載機器制御を行う制御装置に、好適に適用される。この場合、複数のタスクは、例えばエンジンの各気筒に取り付けられたインジェクタの点火時期演算のように、車載機器制御を行うための演算処理等を含む。制御装置には、エンジンの状態を示すクランク角センサや筒内圧センサの出力値が入力され、制御装置では、これをＡＤ（Analog  Digital）変換してデジタルデータとして保持し、各種の演算を行う。このような制御装置では、繰り返し同じ処理が実行され、且つタスクの数ｎが固定である場合が多いため、本発明の奏する効果を十分に発揮することができる。
【００６８】
また、本発明の情報処理装置が複数個存在する場合（例えば車載機器制御を行う制御装置としての本発明の情報処理装置が、車両に複数個搭載されているような場合）、情報処理装置間のソフトウエアの移植が容易になるという効果が生じる。
【００６９】
図６は、タスクＡ〜Ｃの処理を実行している情報処理装置１Ａと、タスクＤの処理のみを実行している情報処理装置１Ｂが存在し、タスクＣの処理を情報処理装置１Ａから情報処理装置１Ｂに移管する様子を示す図である。このようなタスク処理の移管は、例えば情報処理装置１ＡのＲＯＭ容量の問題で、処理タスクを減少させる必要が生じた際等に行われる。
【００７０】
このような場合において、双方の情報処理装置が、処理期限管理用ハードウエアを予め複数個備えておけば、タスク処理の移管の際に、タイマ設定レジスタ２２、カウント開始ＰＣレジスタ２４、カウント停止ＰＣレジスタ２６、初期値レジスタ２８に書き込む値をコピーするだけで、情報処理装置１Ａにおいて行われていた処理期限管理を情報処理装置１Ｂに引き継ぐことができる。従って、処理期限管理に関するソフトウエアの書き換え等が不要となり、情報処理装置間のソフトウエアの移植を容易に行うことができる。
【００７１】
［変形例］
以上、本発明を実施するための最良の形態について実施例を用いて説明したが、本発明はこうした実施例に何等限定されるものではなく、本発明の要旨を逸脱しない範囲内において種々の変形及び置換を加えることができる。
【００７２】
例えば、タイマ設定レジスタ２２、カウント開始ＰＣレジスタ２４、カウント停止ＰＣレジスタ２６、初期値レジスタ２８等に書き込まれる値は、ＲＯＭ等に記憶されている一定値であるかのように記述したが、ＯＳによって変更可能な値としてもよい。この場合、単なるＲＯＭではなくＥＥＰＲＯＭ等の不揮発性メモリにこれらの値を記憶させるようにし、タスク処理の負荷等に応じて処理期限を動的に変更すると好適である。
【００７３】
また、計時手段として、カウントレジスタ３２を用いたデクリメントカウンタを例示したが、これに限らず、他の態様の計時手段を用いてもよい。
【符号の説明】
【００７４】
１  情報処理装置
１０  ＣＰＵ１０
１２  プログラムカウンタ
２０（２０＃１〜２０＃ｎ）  処理期限管理用ハードウエア
２２  タイマ設定レジスタ
２４  カウント開始ＰＣレジスタ
２６  カウント停止ＰＣレジスタ
２８  初期値レジスタ
３０  タイマ処理部
３２  カウントレジスタ
３４  アンダーフロー検知部
３６  異常検出ステータスレジスタ
５０  割り込み制御部
【図１】
2011150532.tif 000003
【図２】
2011150532.tif 000004
【図３】
2011150532.tif 000005
【図４】
2011150532.tif 000006
【図５】
2011150532.tif 000007
【図６】
2011150532.tif 000008