(57)【要約】【課題】  メディア処理システムのメディア制御情報を動作中にモニタでき、システム不具合部の調査・解析を可能とするシステム動作モニタ装置を提供することを目的とする。【解決手段】  ホストＣＰＵ101とスレーブＣＰＵ102，103にそれぞれ、共有メモリ104上のメディア制御情報をモニタするモニタ部113と、それぞれを管理する管理部109とを備え、ホストＣＰＵ101にさらに、各ＣＰＵの管理部109により共有メモリ104上の管理テーブルに書き込まれた稼動情報(ストリームバッファ充填率、稼働率)を監視する監視部111と、監視部111により監視される稼動情報からシステム動作モニタ処理を行わせるＣＰＵを選択する資源選択部112を備える。この構成によれば、動作中のモニタに最適なＣＰＵを選別し、リアルタイム性を損なうことなくシステム動作に与える影響を最小限に抑えながら、メディア制御情報をモニタすることができる。【選択図】      図１
2007065701.tif 000002
【特許請求の範囲】
【請求項１】
各メディアに対応してそれぞれメディアのデータを処理する、１つのホストＣＰＵと１つ以上のスレーブＣＰＵを備えたシステム動作モニタ装置であって、
前記各ＣＰＵ毎に、前記ＣＰＵの稼働情報と前記データ処理中のメディア制御情報を記憶する記憶部を備え、
前記スレーブＣＰＵは、
前記データ処理中の前記メディア制御情報を前記記憶部に記憶するメディア処理部と、
前記記憶部に記憶された前記各ＣＰＵ毎のメディア制御情報をモニタするモニタ部と、
前記ＣＰＵの稼動情報を前記記憶部に記録する管理部と
を備え、
前記ホストＣＰＵは、
前記データ処理中の前記メディア制御情報を前記記憶部に記憶するメディア処理部と、
前記記憶部に記憶された前記各ＣＰＵ毎のメディア制御情報をモニタするモニタ部と、
前記ＣＰＵの稼動情報を前記記憶部に記録する管理部と、
前記記憶部に記憶された各ＣＰＵの稼働情報を監視する監視部と、
前記監視部において監視される各ＣＰＵの稼動情報に基づいて、前記ホストＣＰＵと１つ以上のスレーブＣＰＵの中から、モニタ処理を行うＣＰＵを選択する資源選択部と
を備え、
前記ホストＣＰＵの資源選択部によって選択されたＣＰＵのモニタ部により、前記記憶部に記憶された各ＣＰＵ毎のメディア制御情報がモニタされること
を特徴とするシステム動作モニタ装置。
【請求項２】
前記ＣＰＵの稼働情報として、ストリームバッファから通知されるストリームバッファ充填率が前記記憶部に格納され、
前記資源選択部は、前記記憶部に格納されている各ストリームバッファ充填率のうち、ストリームバッファ充填率が最も低いＣＰＵを、前記モニタ処理を行うＣＰＵとして選択すること
を特徴とする請求項１記載のシステム動作モニタ装置。
【請求項３】
前記記憶部に、ストリームバッファ充填率の増減とＣＰＵのリアルタイム性との関連付けを行うリアルタイム性算出情報記憶部を備え、
前記資源選択部は、前記リアルタイム性算出情報記憶部を参照し、前記記憶部に格納されているストリームバッファ充填率の増減に基づいて、各ＣＰＵのリアルタイム性を求め、最もリアルタイム性が低いＣＰＵを、前記モニタ処理を行うＣＰＵとして選択すること
を特徴とする請求項２記載のシステム動作モニタ装置。
【請求項４】
前記ホストＣＰＵに、
前記記憶部に格納されている各ＣＰＵの稼働情報の変化の特徴を検出する稼動特徴検出部と、
前記稼動特徴検出部により検出される各ＣＰＵの稼働情報の変化の特徴に基づいて、前記各ＣＰＵの稼動情報を予測する稼動予測部
を備え、
前記資源選択部は、前記稼働予測部から通知される各ＣＰＵの予測稼動情報のうち、予測稼動情報が最も低いＣＰＵを、前記モニタ処理を行うＣＰＵとして選択すること
を特徴とする請求項１記載のシステム動作モニタ装置。
【請求項５】
前記ホストＣＰＵの稼動特徴検出部は、前記資源選択部により前記モニタ処理を行うＣＰＵとして選択されているＣＰＵが、現在の稼働情報が最も低いＣＰＵと一致しているか否かを確認し、一致していないとき、稼動特徴検出処理の誤検出とみなし、補正処理を行うこと
を特徴とする請求項４記載のシステム動作モニタ装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、複数のプロセッサ（ＣＰＵ）が共有メモリを介してメディア処理を分担するメディア処理システムにおけるメディア制御情報を、動作中にモニタするシステム動作モニタ装置に関するものである。
【背景技術】
【０００２】
従来のメディア処理システムとして、リアルタイム性を保証する観点から各プロセッサがそれぞれ共有メモリを介してメディア処理を分担するシステムが多く在る。このようなメディア処理システムの一例が、たとえば特許文献１に開示されている。
【０００３】
この特許文献１に開示されたメディア処理システムは、２つのアプリケーション、すなわち記録メディアの処理を行う第１のアプリケーション（プロセッサ）および無線を利用して他の装置との通信を行うベースバンドプロセッサの処理を行う第２のアプリケーション（プロセッサ）を有するアプリケーション処理プロセッサと、第１のアプリケーション（プロセッサ）に制御される音楽再生モジュール、第２のアプリケーション（プロセッサ）に制御される音声通話モジュール、解析部、各メディアモジュールの情報を保持する保持部およびチップ内メモリを有するメディア処理プロセッサとを備えたシステムであり、リソースとして、前記チップ内メモリ、外部メモリ、前記音楽再生モジュールおよび音声通話モジュールから出力される音声データを出力するスピーカー、および音声通話モジュールへ取得した音声データを入力するマイクが設けられている。
【０００４】
そして、前記音楽再生モジュールと音声通話モジュールはそれぞれ、自らの使用リソースの組み合わせを複数組、動作モードとして有しており、メディア処理プロセッサの解析部がユーザーからの処理要求に応じて、これら複数組の動作モードの中から最適な動作モードを選択し、切り替えることにより、動作時にリソースを最適に配分し、複数のメディア処理を並行して行うことを可能としている。
【特許文献１】特開２００５−４５８１号公報（図１）
【発明の開示】
【発明が解決しようとする課題】
【０００５】
しかし、このようなメディア処理システムにおいて、メディア処理中にデコード結果が乱れたり停止するなどの問題が起きた場合、システム開発者がその原因を解析することが困難であった。それぞれのアプリケーション（プロセッサ）の処理がどこまで進んでおり、どの時点で問題が起きたか、メディア処理終了後のチップ内メモリや外部メモリに残ったメディア制御情報だけでは特定が不可能な場合が多い。
【０００６】
このメディア制御情報を動作中にモニタする機構をシステムに埋め込んだ場合、そのモニタ機構自身により全体の処理タイミングが変わってしまい、不具合が発生しなくなるという課題がある。
【０００７】
そこで、本発明は、メディア処理システムにおけるメディア制御情報を、動作中にモニタでき、システム不具合部分の調査・解析を可能とするシステム動作モニタ装置を提供することを目的としたものである。
【課題を解決するための手段】
【０００８】
前述した目的を達成するために、本発明のシステム動作モニタ装置は、ホストＣＰＵとスレーブＣＰＵにそれぞれ、共有メモリ上のメディア制御情報をモニタするモニタ部と、それぞれを管理する管理部とを備え、さらにホストＣＰＵに、各ＣＰＵの管理部により共有メモリ上の管理テーブルに書き込まれた稼動情報(ストリームバッファ充填率、稼働率)を監視する監視部と、監視部により監視される稼動情報からシステム動作モニタ処理を行わせるＣＰＵを選択する資源選択部を備えることを特徴とする。ホストＣＰＵ上に備えられた資源選択部により選択通知を受けたホストＣＰＵまたはスレーブＣＰＵの管理部は、管理しているモニタ部へ実行通知を行い、このモニタ部により共有メモリ上のメディア制御情報を本装置外部の出力装置へ出力する。
【発明の効果】
【０００９】
本発明のシステム動作モニタ装置は、それぞれのホストＣＰＵまたはスレーブＣＰＵの管理部でメディア処理中の稼働情報(ストリームバッファ充填率、稼働率)を獲得し、それを全体として調停することにより、ホストＣＰＵまたはスレーブＣＰＵの中から、動作中のモニタに最適なＣＰＵを選択し、この選択したＣＰＵのモニタ部により共有メモリ上のメディア制御情報を出力することによって、リアルタイム性を損なうことなくシステム動作に与える影響を最小限に抑えながら、メディア制御情報をモニタすることができ、このメディア制御情報によりシステムの不具合部分を調査・解析することができる、という効果を有している。
【発明を実施するための最良の形態】
【００１０】
以下、本発明の実施の形態を、図面を参照しながら説明する。
本実施の形態においては、モニタ対象物として、静止画データおよび動画データを生成し出力する際、より具体的には、符号化（圧縮）された静止画データおよびビデオデータを復号化する際のメディア制御情報である場合について説明する（メディア処理は復号化に限定されるものではない）。
［実施の形態１］
図１は、実施の形態1におけるシステム動作モニタ装置の概略構成を示すブロック図である。
【００１１】
図１において、システム動作モニタ装置１００は、ホストＣＰＵ１０１と、スレーブＣＰＵＡ１０２と、スレーブＣＰＵＢ１０３と、共有メモリ（記憶部の一例）１０４と、それらすべてのブロックを接続するバスを備えている。なお、本実施の形態１では、スレーブＣＰＵは、スレーブＣＰＵＡ、スレーブＣＰＵＢの２つとしているが、それに限定されるものではない。
【００１２】
前記ホストＣＰＵ１０１は、メディア処理部であるＭＰＥＧ４処理部１０５と、管理部１０９Ｈと、監視部１１１と、資源選択部１１２と、モニタ部１１３Ｈを備えている。
また前記スレーブＣＰＵＡ１０２は、メディア処理部であるＪＰＥＧ処理部１０６と、管理部１０９ＳＡと、モニタ部１１３ＳＡを備えている。
【００１３】
また前記スレーブＣＰＵＢ１０３は、メディア処理部であるＭＰＥＧ２処理部１０７と、管理部１０９ＳＢと、モニタ部１１３ＳＢとを備えている。
なお、本実施の形態１では、前記３つのメディア処理は、それぞれＭＰＥＧ４、ＪＰＥＧ、ＭＰＥＧ２としているが、それに限定されるものではない。
【００１４】
また前記共有メモリ１０４は、各ＣＰＵに割り当てられた領域を有し、データ処理中のメディア制御情報を記憶するメディア制御情報領域１０８｛図２（ａ）参照｝と、各ＣＰＵに割り当てられた領域を有し、ストリームバッファ充填率（ＣＰＵの稼働情報の一例）を記憶するストリームバッファ充填率管理テーブル１１０｛図２（ｂ）参照｝を備えている。
【００１５】
ホストＣＰＵ１０１のＭＰＥＧ４処理部１０５は、ホストＣＰＵ１０１に入力されたＭＰＥＧ４ビデオストリームデータが、信号線１を経由して入力されると、ＭＰＥＧ４ビデオストリームデータの復号化処理を行い、信号線２を経由して復号化後のメディアデータを本装置外部のストリームバッファ（蓄積装置）への出力を行い、さらに復号化処理中のメディア制御情報を、信号線３Ｈを経由して、共有メモリ１０４に備えるメディア制御情報領域１０８の割り当てられた領域に対して書き込みを行う。
【００１６】
またスレーブＣＰＵＡ１０２のＪＰＥＧ処理部１０６とスレーブＣＰＵＢ１０３のＭＰＥＧ２処理部１０７のメディアデータの入出力動作は、前記ＭＰＥＧ４処理部１０６と同様であり、復号化処理中のメディア制御情報はそれぞれ、信号線３ＳＡ，３ＳＢを経由して、共有メモリ１０４に備えるメディア制御情報領域１０８の各割り当てられた領域に対して書き込みが行われる。
【００１７】
次に、ホストＣＰＵ１０１の管理部１０９Ｈは、本装置外部から信号線１Ｈを経由して通知される前記ストリームバッファ充填率を、共有メモリ１０４に備わるストリームバッファ充填率管理テーブル１１０の管理部ＩＤで指定されるストリームバッファ充填率フィールドへ、信号線４を経由して、管理部１０９内部に備えたタイマからの１０ｍｓｅｃ毎の通知をトリガとした書き込みを行う。また後述する資源管理部Ａ１１２から、資源選択通知を入力すると、モニタ部１１３Ｈへモニタ実行通知を行う。
【００１８】
またスレーブＣＰＵＡ１０２の管理部１０９ＳＡとスレーブＣＰＵＢ１０３の管理部１０９ＳＢもホストＣＰＵ１０１の管理部１０９Ｈと同様に、ストリームバッファの充填率の書き込み動作を行い、また資源管理部Ａ１１２から資源選択通知を入力すると、モニタ部１１３ＳＡ，１１３ＳＢへモニタ実行通知を行う。
【００１９】
なお、メディア処理中の稼働情報は、ストリームバッファ充填率に限定されるものではなく、管理部１０９Ｈ，１０９ＳＡ，１０９ＳＢで生成することができるＣＰＵ稼働率に置き換えることも可能である。また本実施の形態１においては、タイマからの通知周期は、１０ｍｓｅｃとしているが、システムの特徴に応じて、他の通知周期にすることが可能であり、通知周期は本装置の起動時に指定及び動作中に変更を行うことができる。
【００２０】
またホストＣＰＵ１０１のモニタ部１１３ＨとスレーブＣＰＵＡ１０２のモニタ部１１３ＳＡとスレーブＣＰＵＢ１０３のモニタ部１１３ＳＢはそれぞれ、内部にメディア制御情報出力用バッファを備えており、モニタ実行通知を受けると、メディア制御情報領域１０８に格納されている各メディア制御情報を、前記メディア制御情報出力用バッファへ読み込み、次に読み込んだメディア制御情報を本装置外部の出力装置へ出力を行う。
【００２１】
またホストＣＰＵ１０１の監視部１１１は、監視部１１１内部に備えたタイマからの１０ｍｓｅｃ毎の通知をトリガ（なお、トリガはタイマに限定されるものではない）とし、共有メモリ１０４に備わるストリームバッファ充填率管理テーブル１１０に格納されている各ＣＰＵ毎のストリームバッファ充填率を、信号線５を経由して、監視部１１１内部に備えたバッファへ読み込み、このバッファの先頭アドレスを、信号線６を経由して、資源選択部Ａ１１２へ通知する。前記監視部１１１内部に備えたバッファは、資源選択部Ａ１１２より読み取り可能なバッファとなっている。なお、本実施の形態１においては、タイマからの通知周期は、１０ｍｓｅｃとしているが、システムの特徴に応じて、他の通知周期にすることが可能であり、通知周期は本装置の起動時に指定及び動作中に変更を行うことができる。
【００２２】
前記バッファの先頭アドレスの通知を受けた資源選択部Ａ１１２の動作を図２（ｃ）のフローチャートを用いて説明する。なお、本実施の形態１においては、図２（ｂ）に示すように、この時点でストリームバッファ充填率管理テーブル１１０が、ホストＣＰＵ１０１の管理部１０９Ｈの管理部ＩＤが１であり、ストリームバッファ充填率が７０％、スレーブＣＰＵＡ１０２の管理部１０９ＳＡの管理部ＩＤが２であり、ストリームバッファ充填率が０％、スレーブＣＰＵＢ１０３の管理部１０９ＳＢの管理部ＩＤが３であり、ストリームバッファ充填率が３０％である場合について説明するが、これに限定されるものではない。
【００２３】
監視部１１１より前記バッファの先頭アドレスの通知を受けた資源選択部Ａ１１２は、この監視部１１１のバッファ内に格納されているストリームバッファ充填率管理情報（ストリームバッファ充填率管理テーブル１１０に格納されている各ＣＰＵ毎のストリームバッファ充填率）を取得する（ステップＳ１０１）。次に、取得したストリームバッファ充填率管理情報より充填率が０％である、すなわちメディア処理が行われていない管理部ＩＤ（本実施の形態１ではスレーブＣＰＵＡ１０２の管理部ＩＤ）を特定する（ステップＳ１０２）。次に、特定した管理部ＩＤの管理部１０９（本実施の形態１ではスレーブＣＰＵＡの管理部１０９ＳＡ）と結線されている信号線７をアサートすることで資源選択通知を行う（ステップＳ１０３）。
【００２４】
資源選択部Ａ１１２より選択通知を受けた管理部１０９（スレーブＣＰＵＡ１０２の管理部１０９ＳＡ）は、管理しているモニタ部１１３と結線されている信号線８をアサートすることでモニタ実行通知を行う。
【００２５】
管理部１０９よりモニタ実行通知を受けたモニタ部１１３（スレーブＣＰＵＡ１０２のモニタ部１１３ＳＡ）は、メディア制御情報領域１０８に格納されているメディア制御情報を、信号線９を経由して、モニタ部１１３内部に備わるメディア制御情報出力用バッファへ読み込む。次に、モニタ部１１３は、信号線１０を経由して、読み込んだメディア制御情報を本装置外部の出力装置へ出力を行う。
【００２６】
以上のように、実施の形態１の構成によれば、メディア処理を行っていないＣＰＵ１０１または１０２または１０３を選択し、選択されたＣＰＵのモニタ部１１３によりモニタ処理を実行することができるため、メディア処理のタイミングを変えることがなく、システム全体のメディア制御情報を外部よりモニタすることができる。したがって、システム動作に与える影響を最小限に抑えながら、システム不具合部分の調査・解析を行うことができる。
［実施の形態２］
次に、本発明の実施の形態２に係るシステム動作モニタ装置を、図面を参照しながら説明する。なお、モニタ対象物については、実施の形態１と同様にデータの復号化処理を行うソフトウエアとする。
【００２７】
図３は、本実施の形態２に係るシステム動作モニタ装置の概略構成を示すブロック図であり、実施の形態１で示したものと同一の構成部材については、同一番号を付して説明する。
【００２８】
本発明の実施の形態２におけるシステム動作モニタ装置２００は、ホストＣＰＵ１０１と、スレーブＣＰＵＡ１０２と、スレーブＣＰＵＢ１０３と、共有メモリ１０４と、それらすべてのブロックを接続するバスを備えている点は実施の形態１と同様であるが、実施の形態２においては、ホストＣＰＵ１０１に備わる資源選択部として、実施の形態１の資源選択部Ａ１１２に代えて、資源選択部Ｂ２０１を備えている。
【００２９】
また前記共有メモリ１０４は、各ＣＰＵに割り当てられた領域を有し、データ処理中のメディア制御情報を記憶するメディア制御情報領域１０８と、ストリームバッファ充填率の増減とリアルタイム性との関連付けを行うリアルタイム性算出テーブル２０５｛図４（ａ）参照｝を有すリアルタイム性算出テーブル領域（リアルタイム性算出情報記憶部の一例）２０２と、各ＣＰＵに割り当てられた領域を有し、ストリームバッファ充填率（ＣＰＵの稼働情報の一例）を記憶するストリームバッファ充填率管理テーブル２０４を備えている。
【００３０】
また上記資源選択部Ｂ２０１は、前周期のストリームバッファ充填率管理テーブルを保持するバッファ２０３｛図４（ｂ）参照｝を備えており、監視部１１１より監視部内バッファの先頭アドレスの通知を受けると、この監視部内バッファに格納されているストリームバッファ充填率管理情報（共有メモリ１０４のストリームバッファ充填率管理テーブル２０４に格納されている各ＣＰＵ毎のストリームバッファ充填率）を取得し、取得したストリームバッファ充填率管理情報のストリームバッファ充填率の、前記バッファ２０３に記憶している前周期のストリームバッファ充填率からの増分を求め、この増分によりリアルタイム性算出テーブル２０５を参照して各メディア処理のリアルタイム性を特定し、また取得したストリームバッファ充填率を、前周期のストリームバッファ充填率管理テーブルを保持するバッファ２０３に記憶する。そして、リアルタイム性を優先度と見なした資源選択を行う。またリアルタイム性算出テーブル領域２０２は本装置の起動時に共有メモリ１０４に取得する。
【００３１】
本発明の実施の形態２における資源選択部Ｂ２０１が、ホストＣＰＵ１０１に備わる監視部１１１から監視部内部バッファのアドレスの通知を受け取り資源選択を行う流れを図４（ｄ）に示すフローチャートを用いて説明する。
【００３２】
ホストＣＰＵ１０１、スレーブＣＰＵＡ１０２、スレーブＣＰＵＢ１０３の管理部によって、１０ｍｓｅｃ毎にストリームバッファ充填率がストリームバッファ充填率管理テーブル２０４に書き込まれ、ホストＣＰＵ１０１の監視部１１１により、１０ｍｓｅｃ毎にストリームバッファ充填率管理テーブル２０４が監視部１１１内に備わるバッファへ読み出され、バッファの先頭アドレスが資源選択部Ｂ２０１へ通知されるまでは、実施の形態１と同じである。
【００３３】
なお、本実施の形態２においては、図４（ａ）に示すリアルタイム性算出テーブル領域２０２のリアルタイム性算出テーブル２０５のように、前回からの充填率増分が１５の場合は、リアルタイム性が７であり、前回からの充填率増分が３０の場合は、リアルタイム性が３で３であり、前回からの充填率増分が７０の場合は、リアルタイム性が１０であることを示すリアルタイム性算出テーブルを設定した場合、及び前記バッファに保存されているストリームバッファ充填率管理テーブルが図４（ｂ）の２０３のように、ホストＣＰＵ１０１の管理部の管理部ＩＤが１であり、ストリームバッファ充填率が３０％、スレーブＣＰＵ１の管理部の管理部ＩＤが２であり、ストリームバッファ充填率が１０％、スレーブＣＰＵ２の管理部の管理部ＩＤが３であり、ストリームバッファ充填率が２０％である場合、及び今回のストリームバッファ充填率管理テーブル２０４が図４（ｃ）に示すように、ホストＣＰＵ１０１の管理部１０９の管理部ＩＤが１であり、ストリームバッファ充填率が４５％、スレーブＣＰＵＡの管理部１０９の管理部ＩＤが２であり、ストリームバッファ充填率が４０％、スレーブＣＰＵＢの管理部１０９の管理部ＩＤが３であり、ストリームバッファ充填率が９０％である場合について説明する。
【００３４】
資源選択部Ｂ２０１は、実施の形態１と同様に、ホストＣＰＵ１０１に備わる監視部１１１から監視部内バッファのアドレスの通知を受け取ると、監視部１１１に格納されているストリームバッファ充填率管理情報を取得する（ステップＳ２０１）。
【００３５】
次に、この取得したストリームバッファ充填率管理情報のストリームバッファ充填率と、資源選択部Ｂ２０１内に備わるバッファ２０３に保存されている前周期のストリームバッファ充填率とを比較し、前回からのストリームバッファ充填率の増分が、ホストＣＰＵ１０１のストリームバッファの増分は１５％、スレーブＣＰＵＡ１０２のストリームバッファの増分は３０％、スレーブＣＰＵＢ１０３のストリームバッファの増分は７０％であることを算出し（ステップＳ２０２）、リアルタイム性算出テーブルと対応付けを行い、ホストＣＰＵ１０１のメディア処理のリアルタイム性が７、スレーブＣＰＵＡ１０２のメディア処理のリアルタイム性が３、スレーブＣＰＵＢ１０３のメディア処理のリアルタイム性が１０であることを求める（図４のステップＳ２０３）。続いて、システム動作モニタ装置内で最もメディア処理のリアルタイム性が低いＣＰＵ（実施の形態２では、管理部ＩＤが２のスレーブＣＰＵＡ１０２）を特定し（ステップＳ２０４）、特定したＣＰＵ（実施の形態２ではスレーブＣＰＵＡ１０２）の管理部１０９と結線されている信号線７をアサートすることで資源選択通知を行う（ステップＳ２０５）。
【００３６】
選択通知を受けたＣＰＵの管理部１０９（スレーブＣＰＵＡ１０２の管理部１０９ＳＡ）が、管理しているモニタ部１１３（スレーブＣＰＵＡ１０２のモニタ部１１３ＳＡ）へモニタ実行通知を行い、通知を受けたモニタ部１１３が、メディア制御情報を出力装置への出力を行うところは、実施の形態１と同じである。
【００３７】
以上のように、実施の形態２の構成によれば、メディア処理のリアルタイム性の低いメディア処理を行っているＣＰＵを選択し、そのＣＰＵでモニタ部１１３のモニタ処理を実行することができるため、極力メディア処理のタイミングを変えることがなく、システム全体のメディア処理制御情報をモニタすることができる。したがって、システム動作に与える影響を最小限に抑えながら、システム不具合部分の調査・解析を行うことができる。
［実施の形態３］
次に、本発明の実施の形態３に係るシステム動作モニタ装置を、図面を参照しながら説明する。図５に示すシステムは、ＡＶ再生を行うメディア処理システムであり、本システム動作モニタ装置を備えている。図５は、本実施の形態３に係るシステム動作モニタ装置の概略構成を示すブロック図であり、実施の形態１で示したものと同一の構成部材については、同一番号を付して説明する。
【００３８】
本発明の実施の形態３におけるシステム動作モニタ装置３００は、ホストＣＰＵ１０１とスレーブＣＰＵＡ１０２とスレーブＣＰＵＢ１０３と共有メモリ１０４と、それらすべてのブロックを接続するバスを備えている点は実施の形態１と同様であるが、実施の形態３においては、実施の形態１の資源選択部Ａ１１２の代わりに資源選択部Ｃ３０３を備え、さらにホストＣＰＵ１０１に、監視部１１１により読み出された各ＣＰＵの稼働率を入力し、各ＣＰＵの稼働率変化の特徴を検出する稼働特徴検出部Ａ３０１と、稼動特徴検出部Ａ３０１により検出されるＣＰＵの稼働率変化の特徴に基づいて、各ＣＰＵの稼動率を予測する稼動予測部３０２を備えている。
【００３９】
また前記共有メモリ１０４は、各ＣＰＵに割り当てられた領域を有し、データ処理中のメディア制御情報を記憶するメディア制御情報領域１０８と、各ＣＰＵに割り当てられた領域を有し、ＣＰＵ稼働率（ＣＰＵの稼働情報の一例）を記憶する稼動率管理テーブル３０４と、各ＣＰＵ稼働率蓄積データ（領域）３１０（図６および図８参照）と、各ＣＰＵ稼働率周期データ（領域）３１１（図６および図９参照）とを備えている。各ＣＰＵ稼働率蓄積データ３１０は、図５に示すように、稼働特徴検出部Ａ３０１により管理される（詳細は後述する）。また、各ＣＰＵ稼動周期データ３１１は、図６および図９に示すように、システム起動以前にユーザによって静的に登録される。このとき、１０％未満の誤差を許容するため、稼働率の値を１０％に丸めて登録される。
【００４０】
ホストＣＰＵ１０１に備わるＡＶ分離処理部（メディア処理部）３０５は、信号線１を経由して、ホストＣＰＵ１０１にＡＶ再生ストリームデータが入力されると、このＡＶ再生ストリームデータをビデオデータとオーディオデータに分離し、信号線２を経由して分離処理後のメディアデータを本装置外部のストリームバッファ（蓄積装置）への出力を行い、さらにそのメディア制御情報を、信号線３Ｈを経由して、共有メモリ１０４に備えるメディア制御情報領域１０８の割り当てられた領域に対して書き込む。
【００４１】
ＭＰＥＧ２ビデオデコードを行うスレーブＣＰＵＡ１０２のＶｉｄｅｏ処理部（メディア処理部）３０６と、ＡＡＣオーディオデコードを行うスレーブＣＰＵＢ１０３のＡｕｄｉｏ処理部（メディア処理部）３０７の動作は、前記ホストＣＰＵ１０１のＡＶ分離処理部（メディア処理部）３０５の動作と同様であり、メディア制御情報はそれぞれ、信号線３ＳＡ，３ＳＢを経由して、共有メモリ１０４に備えるメディア制御情報領域１０８の各割り当てられた領域に対して書き込みが行われる。
【００４２】
なお、本実施の形態３では、ＡＶ再生を行うメディア処理システムとしているが、それに限定されるものではない。
ホストＣＰＵ１０１の管理部１０９Ｈと、スレーブＣＰＵＡ１０２の管理部１０９ＳＡと、スレーブＣＰＵＢ１０３の管理部１０９ＳＢはそれぞれ、共有メモリ１０４に備わるそれぞれの稼働率管理テーブル３０４へ、信号線４を経由して、管理部１０９内に備えたタイマからの３３ｍｓｅｃ毎の通知をトリガとし、３３ｍｓｅｃごとの平均稼働率（ＣＰＵ稼動率；ＣＰＵの稼動情報の一例）の書き込みを行う。本実施の形態３においては、ＭＰＥＧ２のフレームレートが３０ｆｐｓであるため３３ｍｓｅｃ毎に稼働率の変化があると想定し、タイマからの通知周期を３３ｍｓｅｃとしているが、システムの特徴に応じて、他の時間間隔であっても可能とする。
【００４３】
以下、モニタ処理を行うＣＰＵを選択するまでの手順を図７を参照しながら各部を説明する。
上記ホストＣＰＵ１０１の監視部１１１は、監視部１１１内に備えたタイマからの３３ｍｓｅｃ毎の通知をトリガ（なお、トリガはタイマに限定されるものではない）とし、信号線５を経由して、共有メモリ１０４に備わる稼働率管理テーブル３０４に格納されている現在時刻ｔの各ＣＰＵの稼働率情報（各管理部１０４によって稼働率管理テーブル３０４に書き込まれたＣＰＵ稼働率情報）を読み出し（ステップＳ３０１）、読み出したＣＰＵ稼働率データを、信号線１１を経由して、稼働特徴検出部Ａ３０１へ出力する。
【００４４】
稼動特徴検出部Ａ３０１は、監視部１１１より入力した現在時刻ｔの各ＣＰＵの瞬間稼働率情報を、信号線１４を経由して、ＣＰＵ稼働率蓄積データ３１０として蓄積する（ステップＳ３０２）。ただし、１０％未満の誤差を許容するため、図８に示すように、稼働率の値を１０％に丸めて登録する。
【００４５】
続いて稼働特徴検出部Ａ３０１は、現在時刻ｔと、次にＣＰＵを変更する時刻である次ＣＰＵ変更時刻ｋ（後述するステップＳ３０７により設定）とが一致しているかどうかをチェックする（ステップＳ３０３）。
【００４６】
現在時刻ｔと次ＣＰＵ変更時刻ｋが一致していない場合（ステップＳ３０３がＮｏ）、ステップＳ３０１へ戻り、次の稼働率情報を取得するトリガで再びＣＰＵ瞬間稼働率を取得する。
【００４７】
現在時刻ｔと次ＣＰＵ変更時刻ｋが一致している場合（ステップＳ３０３がＹｅｓ）は、各ＣＰＵ稼働率蓄積データ３１０と、前記各ＣＰＵ稼動周期データ３１１を使い周期検出を行う（ステップＳ３０４）。
【００４８】
すなわち、現在時刻からさかのぼって過去の１０×３３(ｍｓｅｃ)時間分の稼働率蓄積データ３１０を信号線１６を経由して読み出し、１０×３３(ｍｓｅｃ)時間分のＣＰＵ稼動周期データ３１１を信号線１５を経由して読み出し、読み出した結果が一致した場合、つまり、稼働率蓄積データ３１０において現在の稼働率ポインタまでの１０個分のデータと、稼動周期データ３１１における１から１０までのデータがすべて一致すれば周期の検出ができたとみなし、すなわちＣＰＵの稼働率変化の特徴の検出とみなし、信号線２を経由して稼動予測部３０２へ通知する。各ＣＰＵ毎にそれぞれ実行する。ここでは、過去の１０×３３(ｍｓｅｃ)時間分としているが、システムの特徴に応じて他の時間分であっても可能とする。
【００４９】
稼動予測部３０２は、稼働特徴検出部Ａ３０１において、すべてのＣＰＵの稼動率周期が検出されたかどうかを判定し（ステップＳ３０５）、周期検出されたことを稼働特徴検出部Ａ３０１から通知されていないＣＰＵが存在する場合は（ステップＳ３０５がＮｏ）、稼働率の予測が不可能と判断し、稼働率蓄積データ３１０に格納されている現在のＣＰＵ稼働率情報を、信号線１３を経由して、資源選択部Ｃ３０３へ通知する。資源選択部Ｃ３０３は、このようにすべてのＣＰＵの稼働率周期が検出されていない場合、現在の瞬間稼働率から稼働率の最も低いＣＰＵを、モニタ処理のＣＰＵとして選択し、そのＣＰＵの管理部１０９に通知する（ステップＳ３０８）。
【００５０】
すべてのＣＰＵの稼働率周期が検出されている場合（ステップＳ３０５がＹｅｓ）、現在時刻から３３ｍｓｅｃ後の時刻のＣＰＵ稼働率を、ＣＰＵ稼動周期データ３１１から読み出し（ステップＳ３０６）、この３３ｍｓｅｃ後の予測するＣＰＵ稼働率を、信号線１３を経由して、資源選択部Ｃ３０３に通知する。続いて、一番稼働率の低いと予想されるＣＰＵがさらに連続して一番稼働率が低いと予想される時刻までを次ＣＰＵ変更時間ｋとしておく（ステップＳ３０７）。資源選択部Ｃ３０３は、予測されたＣＰＵ稼働率の中から、一番稼働率の低いＣＰＵを、モニタ処理のＣＰＵとして選択し、そのＣＰＵの管理部１０９に通知する（ステップＳ３０８）。
【００５１】
各ＣＰＵの管理部１０９はモニタ制御要求を検出した場合、各ＣＰＵに備えたモニタ部１１３に通知を行い、モニタ部１１３が共有メモリ上のメディア制御情報を取得する。
以上のように本実施の形態３の構成によれば、資源選択部Ｃ３０３が、システム全体で最も稼働率の低いＣＰＵを検出することで、極力システムへの影響が少ないＣＰＵを選択でき、モニタすることによるメディア処理タイミングが変わることを防止することができる。したがって、システム動作に与える影響を最小限に抑えながら、システム不具合部分の調査・解析を行うことができる。
［実施の形態４］
次に、本発明の実施の形態４に係るシステム動作モニタ装置を、図面を参照しながら説明する。図１０は、本実施の形態４に係るシステム動作モニタ装置の概略構成を示すブロック図であり、実施の形態３で示したものと同一の構成部材については、同一番号を付して説明する。
【００５２】
本発明の実施の形態４におけるシステム動作モニタ装置４００は、ホストＣＰＵ１０１とスレーブＣＰＵＡ１０２とスレーブＣＰＵＢ１０３と共有メモリ１０４と、それらすべてのブロックを接続するバスを備え、ホストＣＰＵ１０１に資源選択部Ｃ３０３、稼働予測部３０２を備えている点は、実施の形態３と同様であるが、実施の形態４においては、実施の形態３の稼働特徴検出部Ａ３０１の代わりに稼働特徴検出部Ｂ４０１を備えている。
【００５３】
稼動特徴検出部Ｂ４０１は、監視部１１１より入力した現在時刻ｔの各ＣＰＵの瞬間稼働率情報を、信号線１４を経由して、ＣＰＵ稼働率蓄積データ３１０として蓄積し、周期検出を行うとともに、実際の稼動率が予測したものと等しいかどうかを判定し、予想に反していた場合、この稼働特徴検出部Ｂ４０１における周期検出方法に補正をかけることを実現するものである。
【００５４】
稼働特徴検出部Ｂ４０１は、ＣＰＵごとに周期決定ループ回数を決定するテーブル４０２（図１１参照）を共有メモリ１０４内に有し、周期決定ループ回数をＣＰＵごとに個別に設定することを可能としている。
【００５５】
ホストＣＰＵ１０１の管理部１０９Ｈと、スレーブＣＰＵＡ１０２の管理部１０９ＳＡと、スレーブＣＰＵＢ１０３の管理部１０９ＳＢは、共有メモリ１０４に備わるそれぞれの稼働率管理テーブル３０４へ、管理部１０９内に備えたタイマからの３３ｍｓｅｃ毎の通知をトリガとし、３３ｍｓｅｃごとの平均稼働率の書き込みを行う。
【００５６】
以下、モニタ処理を行うＣＰＵを選択するまでの手順を図１２を参照しながら各部を説明する。
ホストＣＰＵ１０１に備えた監視部１１１は、監視部１１１内に備えたタイマからの３３ｍｓｅｃ毎の通知をトリガとし、共有メモリ１０４に備わる稼働率管理テーブル３０４に格納されている稼働率情報を読み出し（ステップＳ３０１）、稼働特徴検出部Ｂ４０１へその情報を伝え、稼動特徴検出部Ｂ４０１は、読み出した稼働率情報を稼働率蓄積データ３１０として管理するところまでは、実施の形態３と同じである（ステップＳ３０２）。
【００５７】
稼働特徴検出部Ｂ４０１では、資源選択部Ｃ３０３によりモニタＣＰＵとして選択されているＣＰＵが、現在の稼働率の一番低いＣＰＵと一致しているかどうかを判断し（ステップＳ４０１）、一致していれば（ステップＳ４０１がＹｅｓ）、稼働率予測部３０２における予測が正しいと判断し、周期検出に補正をかけずに次ステップ（ステップＳ３０３）へ進む。
【００５８】
モニタＣＰＵとして選択されているＣＰＵが、現在の稼働率の一番低いＣＰＵでない場合（ステップＳ４０１がＮｏ）、稼動特徴検出処理の誤検出とみなし、補正処理を行う。
すなわち、そのＣＰＵの周期決定ループ回数テーブル４０２の周期決定ループ回数を１つ増やす（ステップＳ４０２）。これにより、予め設定された周期決定ループ回数が変更され、周期検出するに適切な周期決定ループ回数が動的に求められる。
【００５９】
さらに、稼働率予測部３０２にて予測を行うための条件は、現在時刻ｔと次ＣＰＵ変更時刻ｋとが一致していることであるため、次ＣＰＵ変更時刻ｋを現在時刻ｔと同じに設定する（ステップＳ４０３）。
【００６０】
図１２のステップＳ３０３以降の処理は実施の形態３と同じである。
以上のように本実施の形態４の構成によれば、稼働特徴検出部Ｂ４０１における周期検出処理に動的に補正をかけ、実施の形態３では周期でないものを周期と判断し、必ずしも稼働率の一番低いＣＰＵを選択されていない場合があったのを極力回避することを可能にすることができる。また、ステップＳ３０４の周期検出処理の回数を最低限に抑えることも可能である。
【産業上の利用可能性】
【００６１】
本発明にかかるシステム動作モニタ装置は、複数のプロセッサが共有メモリを介してメディア処理を分担するようなリアルタイム性を必要とするシステムにおいて、不具合が発生した場合の原因を解析するために、システム動作に与える影響を最小限に抑えながら、不具合部分の調査を行う装置として有効である。
【図面の簡単な説明】
【００６２】
【図１】本発明の実施の形態１におけるシステム動作モニタ装置を示すブロック図である。
【図２】同システム動作モニタ装置におけるメディア制御情報領域とストリームバッファ充填率管理テーブルを示す図、並びにモニタＣＰＵを選択するまでのフローチャートの一例を示すフローチャートである。
【図３】本発明の実施の形態２におけるシステム動作モニタ装置を示すブロック図である。
【図４】同システム動作モニタ装置におけるリアルタイム性算出テーブルとストリームバッファ充填率管理テーブルを示す図、並びにモニタＣＰＵを選択するまでのフローチャートの一例を示すフローチャートである。
【図５】本発明の実施の形態３におけるシステム動作モニタ装置を示すブロック図である。
【図６】同システム動作モニタ装置におけるＣＰＵ稼働率蓄積データとＣＰＵ稼動周期データのデータベースイメージの一例を示す図である。
【図７】同システム動作モニタ装置における周期検出、並びにモニタＣＰＵを選択するまでのフローチャートの一例を示すフローチャートである。
【図８】同システム動作モニタ装置における各ＣＰＵ稼動率蓄積データを表す配列の一例を示す図である。
【図９】同システム動作モニタ装置における各ＣＰＵ稼動周期データを表す配列の一例を示す図である。
【図１０】本発明の実施の形態４におけるシステム動作モニタ装置を示すブロック図である。
【図１１】同システム動作モニタ装置における各ＣＰＵの周期決定ループ回数を表す配列の一例を示す図である。
【図１２】同システム動作モニタ装置における周期検出、並びにモニタＣＰＵを選択するまでのフローチャートの一例を示すフローチャートである。
【符号の説明】
【００６３】
１００，２００，３００，４００  システム動作モニタ装置
１０１  ホストＣＰＵ
１０２  スレーブＣＰＵＡ
１０３  スレーブＣＰＵＢ
１０４  共有メモリ
１０５  ＭＰＥＧ４処理部
１０６  ＪＰＥＧ処理部
１０７  ＭＰＥＧ２処理部
１０８  メディア制御情報領域
１０９  管理部
１１０  ストリームバッファ充填率管理テーブル
１１１  監視部
１１２  資源選択部Ａ
１１３  モニタ部
２０１  資源選択部Ｂ
２０２  リアルタイム性算出テーブル領域
２０３  資源選択部Ｂ内部バッファに保持されたストリームバッファ充填率管理テーブル
２０４  ストリームバッファ充填率管理テーブル
２０５  リアルタイム性算出テーブル
３０１  稼動特徴検出部Ａ
３０２  稼働率予測部
３０３  資源選択部Ｃ
３０４  稼働率管理テーブル
３１０  ＣＰＵ稼動周期データ
３１１  ＣＰＵ稼働率蓄積データ
４０１  稼動特徴検出部Ｂ
４０２  周期決定ループ回数テーブル
【図１】
2007065701.tif 000003
【図２】
2007065701.tif 000004
【図３】
2007065701.tif 000005
【図４】
2007065701.tif 000006
【図５】
2007065701.tif 000007
【図６】
2007065701.tif 000008
【図７】
2007065701.tif 000009
【図８】
2007065701.tif 000010
【図９】
2007065701.tif 000011
【図１０】
2007065701.tif 000012
【図１１】
2007065701.tif 000013
【図１２】
2007065701.tif 000014