(57)【要約】【課題】  処理速度を低下させることなく、ログ情報を的確かつ迅速に登録する。【解決手段】    処理部による所定の処理に関するログ情報を、処理部から受信する。受信されたログ情報を記憶媒体に記憶する。記憶媒体の空き状況によらず処理部からログ情報を受信するために、ログ情報の受信に応じて処理部にログ情報の受信に対する応答を送信する。【選択図】  図３
2014059661.tif 000002
【特許請求の範囲】
【請求項１】
所定の処理を行う処理手段と、
前記所定の処理に関するログ情報を、前記処理手段から受信する受信手段と、
前記受信手段により受信された前記ログ情報を記憶する記憶手段とを有し、
前記受信手段は、前記記憶手段の空き状況によらず前記処理手段から前記ログ情報を受信するために、前記ログ情報の受信に応じて前記処理手段に前記ログ情報の受信に対する応答を送信する
ことを特徴とする情報処理装置。
【請求項２】
前記ログ情報は、前記所定の処理の処理経過あるいは処理結果に付随する情報である
ことを特徴とする請求項１に記載の情報処理装置。
【請求項３】
前記ログ情報の登録要求が発生したタイミングを示すタイムスタンプを前記ログ情報に付与する第１の付与手段を更に有し、
前記受信手段は、前記第１の付与手段により前記タイムスタンプが付与された前記ログ情報を受信する
ことを特徴とする請求項１または２に記載の情報処理装置。
【請求項４】
前記処理手段は、複数のＣＰＵから構成され、
前記ログ情報の登録要求を行ったＣＰＵを特定する特定手段と、
前記特定手段により特定されたＣＰＵに応じたシーケンス番号を前記ログ情報に付与する第２の付与手段とを更に有し、
前記受信手段は、前記第２の付与手段により前記シーケンス番号が付与された前記ログ情報を受信する
ことを特徴とする請求項１乃至３のいずれか１項に記載の情報処理装置。
【請求項５】
前記記憶手段に空きがない状態で前記受信手段が新規のログ情報を受信した場合は、前記第２の付与手段は、前記シーケンス番号を生成した上で、前記新規のログ情報を破棄する
ことを特徴とする請求項４に記載の情報処理装置。
【請求項６】
前記記憶手段に空きがない状態で前記受信手段が新規のログ情報を受信した場合は、前記記憶手段から最も古い前記ログ情報を破棄し、前記新規のログ情報を前記記憶手段に書き込む
ことを特徴とする請求項１に記載の情報処理装置。
【請求項７】
ＤＭＡ転送によって、前記ログ情報を前記記憶手段から読み出し、保存先へ出力する
ことを特徴とする請求項１乃至６のいずれか１項に記載の情報処理装置。
【請求項８】
前記記憶手段は、２つ以上のメモリで構成され、
前記受信手段による前記ログ情報の受信と、前記ＤＭＡ転送による前記記憶手段からの前記ログ情報の前記保存先への出力を、同時に実行する
ことを特徴とする請求項７に記載の情報処理装置。
【請求項９】
第二の記憶手段を更に有し、
前記ログ情報の内、破棄対象としない前記ログ情報については、前記第二の記憶手段に書き込む
ことを特徴とする請求項１乃至８のいずれか１項に記載の情報処理装置。
【請求項１０】
処理部による所定の処理に関するログ情報を、前記処理部から受信する受信工程と、
前記受信工程により受信された前記ログ情報を記憶媒体に記憶する記憶工程とを有し、
前記受信工程は、前記記憶媒体の空き状況によらず前記処理部から前記ログ情報を受信するために、前記ログ情報の受信に応じて前記処理部に前記ログ情報の受信に対する応答を送信する
ことを特徴とする情報処理装置の制御方法。
【請求項１１】
コンピュータを、
処理部による所定の処理に関するログ情報を、前記処理部から受信する受信手段と、
前記受信手段により受信された前記ログ情報を記憶媒体に記憶する記憶手段として機能させ、
前記受信手段は、前記記憶媒体の空き状況によらず前記処理部から前記ログ情報を受信するために、前記ログ情報の受信に応じて前記処理部に前記ログ情報の受信に対する応答を送信する
ことを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、電子機器に搭載され、電子機器の構成要素が行う処理の処理経過あるいは処理結果に付随する情報であるログ情報の保存を支援する情報処理装置及びその制御方法に関するものである。
【背景技術】
【０００２】
従来、コンピュータ分野では、ある処理の処理経過、または、処理結果に付随する情報をログ情報として収集し、開発者やユーザが、該ログ情報により該処理における詳細な情報を得るといったことがなされてきた。ここでいうログ情報には、以下の３つのものがあると考えられる。
【０００３】
１つ目は、ある電子機器の開発者が、該電子機器の開発・設計におけるデバッグ行為において必要となる情報である。例えば、電子機器に搭載されるＣＰＵが、該電子機器に搭載される各種ハードウェアリソースの使用権を取得／解放したときに、該ハードウェア情報と使用権の変更時刻をログ情報として残すことが考えられる。
【０００４】
２つ目は、主に、電子機器のユーザに対して、該電子機器がどのような使われ方がされたかに関する情報である。例えば、通信機器であれば、どのタイミングでどの相手と通信を行ったかといった情報がログ情報として挙げられる。
【０００５】
３つ目は、機器が該機器の開発者及びユーザの意図しない状態に陥った時、再発防止やアップデートファームウェアの開発に必要となる情報である。具体的には、機器が予期しないエラー状態になった場合には、該機器に搭載される各種ハードウェアの状態レジスタの値といったものや、ＣＰＵのキャッシュメモリのダンプ情報等が挙げられる。
【０００６】
ログを保存する方法として、特許文献１では、２つのメモリと直接メモリアクセスコントローラ（ＤＭＡＣ）を使用する方法について開示されている。ＣＰＵはログを第一のメモリに登録し、ＤＭＡＣにより、第一のメモリに登録されたログを第二のメモリへ転送し保存する。これにより、ＣＰＵとＤＭＡＣ双方で使用する、共有化された第一のメモリを小さく設計すること可能にしている。
【０００７】
複数のシステムからなる機器において、特許文献２では、ログに付与するタイムスタンプを共通化されたシステムタイマを元に生成することにより、複数システム間の制御事象の対応付けを容易にすることを可能としている。
【先行技術文献】
【特許文献】
【０００８】
【特許文献１】特表２０１０−１７０４０７号公報
【特許文献２】特開平１−１３０２４５号公報
【発明の概要】
【発明が解決しようとする課題】
【０００９】
複数のＣＰＵからなるマルチコアシステムにおいて、各ＣＰＵからログを収集したいときに、小さな第一のメモリでログを集約し、その第一のメモリからＤＭＡＣにより、第一のメモリより容量が大きい第二のメモリで転送を行う方法には以下の課題がある。
【００１０】
即ち、第一のメモリは小さいため、複数のＣＰＵからのログ書き込み量の総和と、第一のメモリから第二のメモリへのログの吐き出し量の変化により、第一のメモリが過渡的にＦｕｌｌ状態になる頻度が高い。その時、複数のＣＰＵのうちいずれか、または、全てが、ログの書き込み処理を行っても、第一のメモリの空き領域が用意されるまで、ＣＰＵのログ書き込み処理が待たされる時がある。このことは、本来、ＣＰＵが実行するべきアプリケーション処理における処理性能の低下を招くことになる。
【００１１】
本発明は上記の課題を解決するためになされたものであり、処理速度を低下させることなく、ログ情報を的確かつ迅速に登録することができる技術を提供することを目的とする。
【課題を解決するための手段】
【００１２】
上記の目的を達成するための本発明による情報処理装置は以下の構成を備える。即ち、
所定の処理を行う処理手段と、
前記所定の処理に関するログ情報を、前記処理手段から受信する受信手段と、
前記受信手段により受信された前記ログ情報を記憶する記憶手段とを有し、
前記受信手段は、前記記憶手段の空き状況によらず前記処理手段から前記ログ情報を受信するために、前記ログ情報の受信に応じて前記処理手段に前記ログ情報の受信に対する応答を送信する。
【発明の効果】
【００１３】
本発明によれば、処理速度を低下させることなく、ログ情報を的確かつ迅速に登録することができる。
【図面の簡単な説明】
【００１４】
【図１】本発明を適用できる電子機器のブロック図である。
【図２】電子機器内部の各処理部における動作フロー図である。
【図３】実施形態１におけるログ支援装置のブロック図である。
【図４】ログ支援装置内部の各処理部における基本動作フロー図である。
【図５】ログ支援装置におけるログ情報破棄時の動作フロー図である。
【図６】ログ情報及び付与情報の一例である。
【図７】実施形態２におけるログ支援装置のブロック図である。
【発明を実施するための形態】
【００１５】
以下、本発明の実施の形態について図面を用いて詳細に説明する。
【００１６】
図１は本発明に係るログ支援装置（情報処理装置）を適用できる電子機器の概要を示すブロック図である。
【００１７】
電子機器は、メインシステム１０５とサブシステム１１４からなる。メインシステム１０５は、電子機器で共通で使用される機能やその機能の実現のための各種リソースが配備される。サブシステム１１４は電子機器に搭載された、一部に特化された機能を提供するものである。例えば、電子機器がディスプレイであれば、ディスプレイ表示処理や画像処理をサブシステムで実行しても良いし、通信機器であれば、通信プロトコル処理をサブシステムで実行しても良い。
【００１８】
メインシステム１０５において、ＣＰＵである主制御部１０１は、電子機器全体の機能提供、及び、そのための制御を実行する。システムバス１０２は、主制御部１０１と、メモリ制御部１０３とサブシステム１１４を接続するバスである。メモリ制御部１０３は、主メモリ部１０４を使用した、データのＲｅａｄ（読み出し）／Ｗｒｉｔｅ（書き込み）を可能にする。主メモリ部１０４には、各種ソフトウェアが格納される。具体的には、電子機器の各機能を実現するアプリケーションソフトウェアや、サブシステム１１４やハードウェアを制御するためのデバイスドライバ及びＯＳ（Ｏｐｅｒａｔｉｏｎ  Ｓｙｓｔｅｍ）が含まれる。また、サブシステム１１４内に実装される補助制御部１１０、１１１及び１１２（補助制御部１、２及び３（複数のＣＰＵ））が実行するソフトウェアが含まれていても良い。
【００１９】
サブシステム１１４は、内部にローカルバス１０９を備え、バスブリッジ部１０８を介してシステムバス１０２に接続されている。
【００２０】
補助制御部１１０、１１１及び１１２は、サブシステム１１４の全体制御を実行する。ここでは、サブシステム１１４に３つの補助制御部１１０〜１１２が具備されている場合を例にするが、本発明は、特に、補助制御部の数による制約は受けない。ログ支援装置１１３は、本発明の機能を有した装置である。ログ支援装置１１３は、主制御部１０１、または、各補助制御部１１０〜１１２より受信したログ情報を一時的に登録するためのＦＩＦＯを備える。また、ＦＩＦＯに一時的に登録されたログ情報を主メモリ部１０４へ保存するための機能を有する。詳細については後述する。
【００２１】
電子機器において、ある処理の処理経過、または、処理結果に付随する情報であるログ情報の保存処理を行う場合の各処理部（構成要素）の動作概要について、図２を用いて説明する。
【００２２】
まず、主制御部１０１は、ログ支援装置１１３に対して、初期設定要求を送信する（Ｓ２０１）。これにより、ログ支援装置１１３は、初期化処理を行う（Ｓ２０２）。初期化として行われるのは、例えば、ログ支援装置１１３が、主メモリ部１０４に対してログ情報を保存するときに、主メモリ部１０４のどのアドレスをベースアドレスとして、保存を開始するか等である。同時に、ログ情報の保存用に用意された主メモリ部１０４のサイズについても設定を行う。
【００２３】
主制御部１０１は、ログ支援装置１１３の初期化終了を確認するために、状態確認要求を送信する（Ｓ２０３）。ログ支援装置１１３は、状態確認応答を主制御部１０１に返信する（Ｓ２０４）。主制御部１０１は、ログ支援装置１１３の初期化が終了したかについて確認を行う（Ｓ２０５）。まだ、ログ支援装置１１３の初期化が終了していない場合は、一定時間経過後、ログ支援装置１１３に対して、再度、状態確認要求を送信する（Ｓ２０３）。一方、ログ支援装置１１３の初期化が終了している場合は、補助制御部１１０、１１１及び１１２に対して、ログ情報の出力を許可するログ出力許可通知を送信する（Ｓ２０６）。これにより、各補助制御部１１０〜１１２は、ログ情報出力が可能となる（Ｓ２０７、Ｓ２０８、Ｓ２０９）。
【００２４】
もちろん、主制御部１０１が、ログ支援装置１１３に対して、ログ情報を出力しても良い（Ｓ２１０）。ログ支援装置１１３に実装された一時記憶のためのＦＩＦＯに対して、所定のデータ量が蓄積されたら、ログ支援装置１１３は、主メモリ部１０４にＦＩＦＯに登録されたログ情報を保存する処理を行う（Ｓ２１１）。
【００２５】
以上が、電子機器におけるログ情報保存処理の概要である。
【００２６】
＜実施形態１＞
本発明の実施形態１について説明する。
【００２７】
図３は本発明における実施形態１のログ支援装置の内部ブロック図である。
【００２８】
ログ制御部３０１は、ログ支援装置１１３全体の制御を行う。例えば、主制御部１０１からログ支援装置１１３に送信された命令の解析や、ログ支援装置１１３の状態を主制御部１０１に通知するための情報を生成する処理を行う。また、後述するバッファ部３０４、ＦＩＦＯ制御部３０５、ＤＭＡ部３１０に対して、命令を送信したり、各処理部から応答やステータスを受信したりする処理を担う。
【００２９】
内部バス３０２は、外部からのアクセス要求に対して、レジスタ部３０３またはバッファ部３０４に振り分けを行う。レジスタ部３０３は、ログ支援装置１１３と主制御部１０１間のコミュニケーションを行うために具備される。即ち、主制御部１０１からログ支援装置１１３への命令送信は、主制御部１０１がレジスタ部３０３に命令を書き込むことにより行われる。また、主制御部１０１がログ支援装置１１３の状態を確認したい場合は、ログ制御部３０１がログ支援装置１１３の状態をレジスタ部３０３に書き込みを行い、主制御部１０１がレジスタ部３０３の値の読み出しを行うことにより実現される。
【００３０】
バッファ部３０４には、外部からログ情報の登録要求を受信した時、そのログ情報とそのログ情報の受信時間とシーケンスＮｏ（ＳｅｑＮｏ：シーケンス番号）が一時的に書き込まれる。ＦＩＦＯ制御部３０５は、書き込み先切替部３０６、読み込み元切替部３０９の制御を行う。また、後述するＦＩＦＯ部３０７（ＦＩＦＯ部１）及びＦＩＦＯ部３０８（ＦＩＦＯ部２）のデータ格納状態を読み取り、ログ制御部３０１へ通知を行う。
【００３１】
ログ支援装置１１３は、ＦＩＦＯを２つ、即ち、ＦＩＦＯ部３０７（ＦＩＦＯ部１）及びＦＩＦＯ部３０８（ＦＩＦＯ部２）を搭載する。そして、ログ支援装置１１３の外部からのログ情報を一時的に登録する時に使用するＦＩＦＯと、ＤＭＡ部３１０によるＦＩＦＯ内のログ情報の主メモリ部１０４への保存処理時に使用するＦＩＦＯを切り替えて使用する。以後、説明のため、ＦＩＦＯ制御部３０５、書き込み先切替部３０６、読み込み元切替部３０９、ＦＩＦＯ部３０７（ＦＩＦＯ部１）及びＦＩＦＯ部３０８（ＦＩＦＯ部２）を合わせた部分を一時メモリ部３１４と呼ぶ。
【００３２】
ＤＭＡ部３１０は、ログ制御部３０１からの命令により、ＦＩＦＯ部３０７（ＦＩＦＯ部１）またはＦＩＦＯ部３０８（ＦＩＦＯ部２）から主メモリ部１０４へ、ログ情報をＤＭＡ転送する。また、ＤＭＡ転送が完了したら、ログ制御部３０１へ完了通知を行う機能も有する。
【００３３】
要求先解析部３１１は、内部バス３０２をスヌープ（Ｓｎｏｏｐ）して、ログ情報書き込み要求先を特定する。一般的なバスでは、バスに対してアクセスを発行するモジュール毎にＩＤ番号が割り振られている。このＩＤ番号により、例えば、読出要求をあるモジュールが発行した時に、その読出要求に対する応答を要求元に対して、正確に届けることが可能になる。
【００３４】
本発明では、このＩＤ番号をログ情報の登録要求を受信したタイミングで読み取ることにより、ログ情報登録の要求先を特定する。タイムスタンプ生成部３１２は、ログ支援装置１１３の外部からバッファ部３０４に対して、ログ情報の登録要求が発生したタイミングで時刻情報（タイムスタンプ）を生成して、その生成したタイムスタンプをログ情報に付与してバッファ部３０４に書き込む（第１の付与）。ログ情報の登録要求が発生したタイミングは、内部バス３０２をスヌープすることにより把握する。ＳｅｑＮｏ生成部３１３（シーケンスＮｏ生成部）は、要求先の数だけ独立したカウンタをもち、そのカウンタを使用してログ情報に付与するシーケンスＮｏ（ＳｅｑＮｏ）を生成する（第２の付与）。併せて、ＩＤ番号に付随する情報もバッファ部３０４に書き込む。尚、シーケンスＮｏの管理は、各ログ登録要求元で実施することもできるが、ＳｅｑＮｏ生成部３１３のようにログ支援装置１１３に搭載することにより、シーケンスＮｏの付与といったオーバヘッドを削減できる。
【００３５】
次に、ログ支援装置１１３の内部動作について図４を用いて詳細に説明する。図４は、ログ支援装置１１３の内部処理部及び、関連する周辺処理部におけるシーケンス図である。まず、主制御部１０１が、ログ支援装置１１３に対して、初期化要求を送信する（Ｓ４０１）。先の説明の通り、初期化要求は、レジスタ部３０３を介して実行される。ログ制御部３０１が、レジスタ部３０３にアクセスを行い、命令の確認を行う（Ｓ４０２）。
【００３６】
次に、ログ制御部３０１は、レジスタ部３０３の値を元に必要な命令の解析を行う（Ｓ４０３）。解析結果に応じて、ログ制御部３０１は、ＤＭＡ部３１０に対して初期化命令を送信する（Ｓ４０４）。ここで、ログ制御部３０１は、ＤＭＡ部３１０へは、ログ情報の保存場所となるアドレス情報と保存先の容量（サイズ）を通知しておく。これにより、ＤＭＡ部３１０は、一時メモリ部３１４からログ情報を読み出し、主メモリ部１０４への書き込み際に、書き込み先のアドレスを適切に制御することができるようになる。
【００３７】
初期化が完了したら、レジスタ部３０３に初期化完了を示す値をセットする（Ｓ４０５）。この状態で、主制御部１０１、及び、補助制御部１１１、１１２及び１１３からのログ情報の登録が可能になる。主制御部１０１から、ログ情報の書き込みが発生する（Ｓ４０６）。これにより、このログ情報を伴う書き込み要求がタイムスタンプ生成部３１２、バッファ部３０４、要求先解析部３１１に送信される。
【００３８】
タイムスタンプ生成部３１２では、書き込み要求発生タイミングを検知し、その時刻をタイムスタンプとして、先に書き込まれたログ情報に付随させバッファ部３０４に書き込む（Ｓ４０８）。書き込み要求を受信したバッファ部３０４では、書き込み要求に付随されるログ情報を一時的に記憶する。書き込み要求を受信した要求先解析部３１１では、書き込み要求の要求先を解析する（Ｓ４０９）。解析結果に応じて、要求先解析部３１１は、マスタＩＤをスヌープして判別したマスタＩＤを書き込み要求の要求元として、ＳｅｑＮｏ生成部３１３に通知する（Ｓ４１０）。
【００３９】
ＳｅｑＮｏ生成部３１３では、受信したマスタＩＤを元に、それに対応づけられたカウンタを元にシーケンスＮｏを生成し、マスタＩＤとシーケンスＮｏを、バッファ部３０４に先に書きこまれたログ情報に付随させ書き込む（Ｓ４１１）。そして、（１）マスタＩＤ、（２）シーケンスＮｏ、（３）タイムスタンプ、（４）ログ情報の４点セットをバッファ部３０４は、一時メモリ部３１４に書き込む。ここで、マスタＩＤ、シーケンスＮｏ、タイムスタンプ等は、ログ情報に付随する（付与されている）付与情報といえる。
【００４０】
ここで、ＦＩＦＯ部３０７（ＦＩＦＯ部１）またはＦＩＦＯ部３０８（ＦＩＦＯ部２）のどちらに書き込みを行うかについて特別に意識しなくてもＦＩＦＯ制御部３０５が書き込み先切替部３０６を適切に制御することにより実現できる。一時メモリ部３１４への書き込みが終了すると（例では、ＦＩＦＯ部３０７（ＦＩＦＯ部１）への書き込み（Ｓ４１１））、ＦＩＦＯ制御部３０５にＦＩＦＯ部３０７（ＦＩＦＯ部１）またはＦＩＦＯ部３０８（ＦＩＦＯ部２）の状態が通知される（Ｓ４１２）。
【００４１】
以上、Ｓ４０６からＳ４１２までが、主制御部１０１がログ情報の登録要求を送信（Ｓ４０６）してから、一時メモリ部３１４にログ情報が一時登録されるまでのログ支援装置１１３の動作シーケンスである。補助制御部１１１、１１２及び１１３からのログ情報書き込み（Ｓ４０７）についてもログ支援装置１１３の実施する処理は同一である。
【００４２】
次に、ＤＭＡ部３１０を使用し、一時メモリ部３１４に登録されたログ情報を主メモリ部１０４へ保存する処理について説明する。
【００４３】
一時メモリ部３１４へログ情報が一定量書き込まれ、ＦＩＦＯ部３０７（ＦＩＦＯ部１）またはＦＩＦＯ部３０８（ＦＩＦＯ部２）に空きが無くなると、ＦＩＦＯ制御部３０５は、ログ制御部３０１に対してＦＩＦＯ状態のＦＵＬＬ通知を行う（Ｓ４１３）。ＦＩＦＯ状態のＦＵＬＬ通知を受信したログ制御部３０１は、ＦＩＦＯの切替処理を行う（Ｓ４１４）。ＦＩＦＯ切替は、以下の手順で行う。まず、ログ情報の一時登録用に使用されていたＦＩＦＯとは別のＦＩＦＯにおけるＤＭＡ転送（一時登録されたログ情報の保存処理）が全て終わっていることを確認する。
【００４４】
ＤＭＡ転送による保存処理が終わっている場合は、ログ情報の一時登録に使用しているＦＩＦＯと、一時登録されたログ情報のＤＭＡ転送による保存に使用しているＦＩＦＯを切り替える。具体的には、ＦＩＦＯ制御部３０５が、書き込み先切替部３０６及び読み込み元切替部３０９を制御することにより実現する。
【００４５】
一方、ＤＭＡ転送による保存処理がまだ完了していない場合は、ＦＩＦＯ切替処理は行われない。この時、ＦＩＦＯがＦＵＬＬの状態で継続している状態である。この時の主制御部１０１または補助制御部１１１、１１２及び１１３からのログ情報の書き込みが発生した場合のログ情報の扱いに関しては後述する。
【００４６】
ＦＩＦＯ切替処理（Ｓ４１４）が終了した後、ログ制御部３０１は、ＤＭＡ部３１０にＤＭＡ転送開始命令を送信する（Ｓ４１５）。ＤＭＡ部３１０は、ＦＩＦＯ部３０７（ＦＩＦＯ部１）から、ログ情報の読み出しを行い、主メモリ部１０４にＤＭＡ転送により書き込みを行う（Ｓ４１３）。このＤＭＡ転送による書き込みは、ＦＩＦＯ部３０７（ＦＩＦＯ部１）が空になるまで実行し、終了後に、ログ制御部３０１に対してＤＭＡ転送完了通知を送信する（Ｓ４１６）。
【００４７】
以上が、ログ支援装置１１３の基本となる動作フローである。
【００４８】
尚、ＦＩＦＯ部３０８（ＦＩＦＯ部２）に格納されていたログ情報は既に保存が完了しており、ＦＩＦＯ部３０８（ＦＩＦＯ部２）は空の状態である。従って、ＤＭＡ転送中（Ｓ４１３）においてログ情報の登録要求が発生しても、ＦＩＦＯ部３０８（ＦＩＦＯ部２）を使用することにより、ログ情報の登録が可能である。
【００４９】
次に、一時メモリ部３１４からログ情報の消失が起こる時の動作について説明する。
【００５０】
ログ情報の消失が起こる場合とは、以下の場合である。即ち、一時メモリ部３１４においてログ情報の一時登録を行っているＦＩＦＯがＦｕｌｌ状態で、他方のＦＩＦＯを使用したＤＭＡが完了しておらず、ＦＩＦＯ切替処理（Ｓ４１４）が実行できない場合である。
【００５１】
この時に、さらに、主制御部１０１、または、補助制御部１１１、１１２及び１１３）からログ情報の登録要求を受信したときにログ情報の消失が起こる。この場合、ログ情報の消失方法として２通りの方法がある。
【００５２】
１つ目の方法は、ＦＩＦＯがＦｕｌｌ状態で登録を要求されたログ情報は、ＦＩＦＯにとりこまずに即座に破棄する方法である。この方法の場合、ＦＩＦＯがＦＵＬＬ以前に書き込まれたログ情報に対しては、保存が約束される。２つ目の方法は、ＦＩＦＯに取り込まれたログ情報から最古なものを破棄し、それにより空きができたＦＩＦＯに最新のログ情報を書き込む方法である。この方法の場合、新しいログ情報が古いログ情報と比較したときに、主メモリ部１０４に保存されやすいということが言える。
【００５３】
１つ目の方法を図５（ａ）に、２つ目の方法を図５（ｂ）に示す。
【００５４】
まず、図５（ａ）について説明する。図５（ａ）は、ＦＩＦＯ部３０８（ＦＩＦＯ部２）と主メモリ部１０４の間でＤＭＡ転送によるログ情報の保存処理（Ｓ４１３）が行われている最中に、ＦＩＦＯ部３０７（ＦＩＦＯ部１）がＦｕｌｌになった時の図である。ＦＩＦＯ制御部３０５が、ＦＩＦＯ部３０７（ＦＩＦＯ部１）よりＦＩＦＯ状態の通知を受信する（Ｓ４１２）。ＦＩＦＯ状態より、ＦＩＦＯ部３０７（ＦＩＦＯ部１）がＦｕｌｌ状態であることがわかると、ＦＩＦＯ制御部３０５は、ログ制御部３０１に対して、ＦＩＦＯ部３０７（ＦＩＦＯ部１）がＦｕｌｌ状態であることを通知する（Ｓ４１３）。通知を受信したログ制御部３０１は、まだ、ＦＩＦＯ部３０８（ＦＩＦＯ部２）を使用したＤＭＡ転送が完了していないことから、ＦＩＦＯの切替を行うことができないため、バッファ部３０４に対して、ログ情報破棄通知を送信する（Ｓ５０１）。
【００５５】
ログ情報破棄通知を受信したバッファ部３０４は、以後、ログ情報の登録要求（Ｓ４０６またはＳ４０７）を受信しても、そのログ情報及びそれに付随するマスタＩＤ、シーケンスＮｏ及びタイムスタンプの一時メモリ部３１４への書き込み処理（Ｓ４１１）を行わない。代わりに、バッファ部３０４は、ログ情報の破棄を行う（Ｓ５０２）。この際、要求先解析部３１１とＳｅｑＮｏ生成部３１３は、通常と同様の処理を行う。この理由については、破棄されたログ情報が、もともと何のマスタＩＤを有する処理部からのログ情報書き込み要求であったかを、破棄されずに保存されたログ情報から特定できるようにするためである。
【００５６】
ＤＭＡ部３１０より、ＤＭＡ転送完了通知（Ｓ４１６）をログ制御部３０１が受信すると、保留してあったＦＩＦＯ切替処理（Ｓ４１４）を行い、ログ情報保存通知（Ｓ５０３）をバッファ部３０４に送信する。これにより、バッファ部３０４は、次からの登録要求されたログ情報に対しては、破棄モードではなく通常モードでの処理を行うようになる。
【００５７】
次に、図５（ｂ）について説明する。図５（ｂ）のスタート時は、図５（ａ）と同様である。即ち、ＦＩＦＯ部３０８（ＦＩＦＯ部２）と主メモリ部１０４の間でＤＭＡによるログ情報の保存処理（Ｓ４１３）が行われている最中に、ＦＩＦＯ部３０７（ＦＩＦＯ部１）がＦｕｌｌになった時の様子を表している。ログ制御部３０１は、ＦＩＦＯ制御部３０５から、ＦＩＦＯがＦＵＬＬであるとの通知（Ｓ４１３）を受信すると、ＦＩＦＯ制御部３０５に対して上書きモード開始通知を送信する（Ｓ５０４）。上書きモード開始通知を受信したＦＩＦＯ制御部３０５は、以後、バッファ部３０４よりログ情報の書き込みが発生する度に、現在ログ情報の登録に使用していてかつＦｕｌｌ状態のＦＩＦＯ（例では、ＦＩＦＯ部３０７（ＦＩＦＯ部１））から、最も古いデータ（ログ情報及びそれに付随する付与情報）を破棄してＦＩＦＯに空きを作成する。そして、ＦＩＦＯ制御部３０５は、その空きにバッファ部３０４からのログ情報を書き込む。ＤＭＡ転送が完了すると、ＤＭＳ転送完了通知（Ｓ４１６）を受信した後、ログ制御部３０１は、保留してあったＦＩＦＯ切替処理を行い（Ｓ４１４）、上書きモードを終了するように（Ｓ５０５）設計されることは、先に説明した図５（ａ）と同様である。
【００５８】
図６に主メモリ部１０４に格納されたログ情報の一例を示す。
【００５９】
項目（ａ）はマスタＩＤである。例えば、主制御部１０１は“００”、補助制御部１１０、１１１及び１１２は、それぞれ“０１”、“１０”及び“１１”とマスタＩＤを振っておくことにより、どの処理部が保存要求したログ情報で有るかが判断可能である。
【００６０】
項目（ｂ）は、シーケンスＮｏである。上述のように、シーケンスＮｏは、マスタＩＤ毎に管理されている。図６の例では、ログ情報６には、マスタＩＤが“０１”、シーケンスＮｏが“０２３”が付与されている。これに対して、次に、同一マスタＩＤ“０１”が付与されているログ情報８には、シーケンスＮｏが“０２５”が付与されている。これより、マスタＩＤが“０１”の処理部がログ情報の登録を要求し、シーケンスＮｏ“０２４”を持つはずであったログ情報が、破棄されていることが分かる。
【００６１】
項目（ｃ）はタイプスタンプであり、バッファ部３０４にログ情報が書き込まれるタイミングを元に、付与された情報である。タイムスタンプは、タイマーの分解能により同一時刻が付与される場合がある。これらの情報がログ情報の項目（ｄ）毎に付けられるようになっている。
【００６２】
以上説明したように、実施形態１によれば、ログ情報を記憶するメモリ（一時メモリ部３１４）がＦｕｌｌ状態であっても、ログ情報の登録要求の要求先からのログ情報の書き込みを待たせないように制御する。換言すれば、一時メモリ部３１４の空き状況に依存することなく、新規のログ情報の受信が可能なように、一時メモリ部３１４に記憶されるログ情報の記憶状態を制御する。これにより、ログ情報の登録要求の要求先がログ情報の登録要求待ち状態になる時間を削減することができる。
【００６３】
また、ログ情報を登録したタイミングで、ログ情報の登録要求の要求先毎に独立したシーケンスＮｏを生成して、そのログ情報に付与する。これにより、ログ情報が破棄された時に、各要求先のうち、どの要求先からのログが破棄されたかをログ情報に付与されるシーケンスＮｏを見ることによって把握することができる。
【００６４】
更に、ログ情報を一時メモリ部３１４に登録し、一時メモリ部３１４からログ情報の転送先（主メモリ部１０４）への転送（保存処理）は、ＤＭＡ部３１０により行う。その際、一時メモリ部を２チャンネルとして使用する。これにより、ＤＭＡ部が一方の第１のメモリ（ＦＩＦＯ部３０７）を使用中であっても、他方の第２のメモリ（ＦＩＦＯ部３０８）を使用することにより、ログ情報の登録要求の要求先は速やかにログの登録処理を行うことができる。
【００６５】
＜実施形態２＞
本発明の実施形態２について説明する。実施形態１では、外部からのログ情報の登録要求に対して、待たずに要求を受け付ける方法について説明している。しかし、実施形態１の方法では、全てのログ情報が確実に主メモリ部１０４に保存されることに関しては保証していない。そこで、確実に残したいログ情報は確実に残す仕組みと実施形態１の仕組みを併用することが望ましいケースがある。その方法について、実施形態２で説明する。
【００６６】
図７は実施形態２におけるログ支援装置７０１の内部ブロック図である。
【００６７】
まず、ログ支援装置１１３との差分について説明する。ログ支援装置７０１は、一時メモリ部３１４とは独立した、第二の記憶部として一時メモリ部２（７０４）を具備する。ここには、確実に保存したい（破棄対象としない）ログ情報が主制御部１０１や、補助制御部１１０、１１１及び１１２から書き込まれる。一時メモリ部２（７０４）にも実施形態１の機能を持たせるために、第二バッファ部７０５や、タイムスタンプ生成部３１２、ＳｅｑＮｏ生成部３１３が構成される。
【００６８】
また、主制御部１０１や、補助制御部１１０、１１１及び１１２がログ情報の登録要求を行うに当たり、ログ情報の保存確実性を重視するか、処理速度の高速性を重視するか選択できる機構が必要となる。この選択にあたっては、ログ情報を書き込むアドレスを変更することにより実現できる。即ち、内部バス７０６を次のように構成する。バッファ部３０４と第二バッファ部７０５に対し、それぞれ独立したアドレスを内部バス７０６で設定し、確実にログ情報を残したい場合は、第二バッファ部７０５にアドレスを指定して登録要求を行えばよい。
【００６９】
レジスタ部７０３は、一時メモリ部２（７０４）のＦＩＦＯの使用状況を表示可能なように構成される。これにより、ログ支援装置７０１の外部から、一時メモリ部２（７０４）の使用状況を監視することができるようになり、ＦＩＦＯが空いている状態時にログ情報の登録要求を行うことができるようになる。ＤＭＡ部７０７は、新たに、一時メモリ部２（７０４）内部に具備されるＦＩＦＯに対してもＤＭＡ転送が可能なように構成される。ログ制御部７０２には、上記の項目が動作実行可能なようにログ制御部３０１に制御内容が追加される。
【００７０】
以上説明したように、実施形態２によれば、ログ支援装置７０１を使用した電子機器は、必要なログ情報に対しては確実に保存でき、かつ、通常のログ情報に関しては、ログ情報の書き込み処理を高速に実行することができる。これにより、例えば、重要な情報となり得る、処理のエラー情報や、警告情報は、一時メモリ部２（７０４）に登録を行い、処理の種類や進行度合いを示す参考情報は、一時メモリ部３１４に記憶するといった手法が適用できる。
【００７１】
＜実施形態３＞
本発明では、ログ情報の登録要求を行う処理部は、主制御部１０１、及び、補助制御部１１０、１１１及び１１２としているが、他の処理部がログ情報を出力しても良い。即ち、ローカルバス１０９を介してログ情報をログ支援装置１１３あるいは７０１に対して書き込み可能なように構成された処理部であれば適用可能であることは自明である。
【００７２】
また、上記実施形態では、ＤＭＡ部３１０（または７０７）はログ支援装置の内部に配置しているが、必ずしも内部に配置する必要はない。即ち、一時メモリ部３１４（または、一時メモリ部２（７０４））から主メモリ部１０４に対して、ＤＭＡ転送が可能なように構成されていれば、ＤＭＡ部３１０（または７０７）はログ支援装置１１３または７０１の外部に配置されていても良い。
【００７３】
ＤＭＡ部３１０及び７０７の起動は、ＦＩＦＯのＦｕｌｌ状態を検知したことをトリガ条件に用いているが、必ずしもそれをトリガ条件として使用する必要はない。例えば、ＦＩＦＯ使用数に閾値を設けて、その値を横切るＦＩＦＯ使用数の変動が起こることを条件にＤＭＡ起動のトリガ条件としてもよい。上記実施形態では、ＦＩＦＯの数が２つの場合を示しているが、その数は２つに限定されず、用途や目的に応じて２つ以上のＦＩＦＯを使用することができる。
【００７４】
ＦＩＦＯがＦｕｌｌ状態のときに新たなログ情報の登録要求を受信したときにおける処理について、２つの方法を示しているが、２つの方法の内、両方を実装しても良い。新しいログ情報に上書きする方法は、常に最新のログ情報を保存したいという要求に対して有効である。また、受信したログ情報を登録せずに破棄する方法は、余計なログ情報の書き込みを発生させないので、低消費電力で電子機器を動作させたい場合に有効である。両方を実装する場合は、例えば、主制御部１０１からログ支援装置１１３に対して、ＦＩＦＯがＦＵＬＬ状態の時の動作モードとしてどちらのモードで動作するか設定できるようになっていると利便性が良い。
【００７５】
尚、本発明は、以下の処理を実行することによっても実現される。即ち、上述した実施形態の機能を実現するソフトウェア（プログラム）を、ネットワーク又は各種記憶媒体を介してシステムまたは装置に供給し、そのシステムまたは装置のコンピュータ（またはＣＰＵやＭＰＵ等）がプログラムを読み出して実行する処理である。
【図１】
2014059661.tif 000003
【図２】
2014059661.tif 000004
【図３】
2014059661.tif 000005
【図４】
2014059661.tif 000006
【図５】
2014059661.tif 000007
【図６】
2014059661.tif 000008
【図７】
2014059661.tif 000009