(57)【要約】【課題】マルチプロセッサのイベントのログの前後関係の誤りを抑制することを課題とする。【解決手段】複数のプロセッサ２Ａ，２Ｂ，２Ｃと、各プロセッサ２Ａ，２Ｂ，２Ｃのイベントのログを保存するデータ保存手段４と、を有する情報処理装置１であって、データ保存手段４よりも短時間でデータを記憶可能な揮発メモリ３を備え、各プロセッサ２Ａ，２Ｂ，２Ｃは、自身にイベントが発生すると、発生したイベントのログを揮発メモリ３に格納し、複数のプロセッサ２Ａ，２Ｂ，２Ｃのうち少なくとも何れかのプロセッサである所定のプロセッサ２Ａ，２Ｂ，２Ｃは、揮発メモリ３に記憶されている各プロセッサ２Ａ，２Ｂ，２Ｃのイベントのログを、所定のタイミングでデータ保存手段４に保存する。【選択図】図６
2010224751.tif 000002
【特許請求の範囲】
【請求項１】
複数のプロセッサと、各プロセッサのイベントのログを保存するデータ保存手段と、を有する情報処理装置であって、
前記データ保存手段よりも短時間でデータを記憶可能な揮発メモリを備え、
各プロセッサは、自身にイベントが発生すると、発生したイベントのログを前記揮発メモリに格納し、
前記複数のプロセッサのうち少なくとも何れかのプロセッサである所定のプロセッサは、前記揮発メモリに記憶されている各プロセッサのイベントのログを、所定のタイミングで前記データ保存手段に保存する、
情報処理装置。
【請求項２】
前記揮発メモリが記憶するイベントのログは、各プロセッサがログを逐次書き込むことにより、全てのプロセッサのイベントが時系列で記録されたものである、
請求項１に記載の情報処理装置。
【請求項３】
前記イベントは、エラーに関するものである、
請求項１または請求項２に記載の情報処理装置。
【請求項４】
前記データ保存手段は、不揮発メモリである、
請求項１から請求項３の何れか一項に記載の情報処理装置。
【請求項５】
前記所定のプロセッサは、他のプロセッサよりも演算量が少ない、
請求項１から請求項４の何れか一項に記載の情報処理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理装置に関する。
【背景技術】
【０００２】
情報処理技術の発展に伴い、複数のプロセッサを組み合わせて演算処理を行う電子機器が普及している。例えば、映像や音声等のコンテンツを取り扱う映像音響機器の分野においては、コンテンツの再生機能や録画機能といった基本的な機能のみならず、通信機能や著作権管理機能等の多種多様な機能を搭載することが求められてきており、これを実現するため、各機能の実現に適するプロセッサを用いた非対称型のマルチプロセッシングが行われつつある。
【０００３】
ところで、プロセッサを用いた電子機器は、動作の事後的な検証を可能にするため、実行した処理の内容や発生したエラー等のイベントを記録しておくことがある。例えば、特許文献１には、メモリカードの動作中に発生したエラーを特定のブロックに保存し、迅速なエラー解析を可能にする技術が開示されている。また、特許文献２には、バス制御モジュールに障害が生じた旨のエラーログを不揮発性メモリに書き込む技術が開示されている。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００６−１７８５３７号公報
【特許文献２】特開平９−８１４２０号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
各プロセッサのイベントを一元管理する場合、イベントの集中によるログの記録待ちにより、ログに記録された各プロセッサのイベントの前後関係に誤りが生じる場合がある。本発明は、このような課題に鑑みてなされたものであり、マルチプロセッサのイベントのログの前後関係の誤りを抑制することを課題とする。
【課題を解決するための手段】
【０００６】
本発明は、上記課題を解決するため、各プロセッサのイベントのログを揮発メモリに一旦書き込み、書き込まれたログを所定のタイミングで保存することにした。
【０００７】
詳細には、複数のプロセッサと、各プロセッサのイベントのログを保存するデータ保存手段と、を有する情報処理装置であって、前記データ保存手段よりも短時間でデータを記憶可能な揮発メモリを備え、各プロセッサは、自身にイベントが発生すると、発生したイベントのログを前記揮発メモリに格納し、前記複数のプロセッサのうち少なくとも何れかのプロセッサである所定のプロセッサは、前記揮発メモリに記憶されている各プロセッサのイベントのログを、所定のタイミングで前記データ保存手段に保存する。
【０００８】
各プロセッサでは、様々な処理が互いに独立して実行される。このため、各プロセッサの処理を事後的に解析する際、各イベントの前後関係が判るようにするため、上記情報処理装置では、全てのプロセッサで生ずるイベントを一つのログにまとめている。なお、イベントとは、プロセッサが実行、或いはプロセッサで発生した事象を示すものであり、例えば、演算処理中に生じたエラー等である。
【０００９】
ここで、プロセッサが一つであれば、イベントの記憶に時間がかかっても各イベントの前後関係が錯綜することはない。しかし、複数のプロセッサのイベントを一つに纏めている場合、イベントの書き込みに要する時間に比例して、各プロセッサで生じたイベントの書き込みが重なる確率が高まる。そこで、上記情報処理装置では、データの書き込みを短時間で行える揮発メモリに各プロセッサのイベントのログを記録しておき、これを定期的にデータ保存手段に保存する。データ保存手段は、各プロセッサがログを直接書き込む揮発メモリと異なり、例えば、不揮発メモリやハードディスク装置等を適用できる。
【００１０】
ここで、保存処理を実行するプロセッサは、上記情報処理装置が備える全てのプロセッサがそれぞれ実行してもよいし、少なくとも何れかのプロセッサが実行してもよいが、例えば、他のプロセッサよりも演算量が少ないプログラムを実行するプロセッサが保存処理の実行を司れば、上記情報処理装置のリソースを有効に活用できる。
【００１１】
また、メモリに記録されるイベントのログは、例えば、各プロセッサがログを逐次書き込めば、全てのプロセッサのイベントを時系列で記録したものとすることができる。各プロセッサで発生したイベントの情報をこのように処理することで、各プロセッサのイベントのログの前後関係の誤りを抑制することが可能となる。
【発明の効果】
【００１２】
マルチプロセッサのイベントのログの前後関係の誤りを抑制することが可能となる。
【図面の簡単な説明】
【００１３】
【図１】ＢＤプレーヤの構成図。
【図２】ＢＤプレーヤで実行される第一の処理フロー図。
【図３】ＣＰＵが生成する情報の内容を示す図。
【図４】ＢＤプレーヤで実行される第二の処理フロー図。
【図５】各ＣＰＵでエラーが発生した場合のタイミングチャートを示す図。
【図６】情報伝達の経路を示す図。
【図７】エラーログを各ＣＰＵから不揮発メモリに直接書き込む場合のタイミングチャートを示す図。
【発明を実施するための形態】
【００１４】
以下、本発明の実施形態について説明する。図１は、本発明に係る映像再生装置の一実施形態であるＢＤプレーヤ１（ＢＤは、Blu-ray Disc（Blu-rayは登録商標）の略であり
、以下、ブルーレイディスクという）の構成図である。ＢＤプレーヤ１は、自動車等の車両に搭載される車載式の電子機器であり、液晶表示装置であるディスプレイ２に接続されている。ＢＤプレーヤ１は、車両の電源に接続されており、乗員であるユーザが車両のキースイッチを操作してアクセサリー電源をオンにすると電力の供給を受けて作動する。なお、本実施形態では、ディスプレイ２が外部接続される映像再生装置について説明しているが、本発明はこのような実施形態に限定されるものではない。本発明は、例えば、ディスプレイと一体型の映像再生装置としてもよい。また、本実施形態では、ブルーレイディスクについて説明しているが、本発明はこのような実施形態に限定されるものではなく、字幕の表示位置やサイズをユーザが自在に変更可能なあらゆるメディアについて適用可能である。
【００１５】
ＢＤプレーヤ１は、図１に示すように、ＣＰＵ２Ａ，２Ｂ，２Ｃ（Central Processing
Unit）、リングバッファとして使用される共有の揮発メモリ３、不揮発メモリ４、及び
光ディスク装置５で構成されている。ＣＰＵ２Ａ，２Ｂ，２Ｃは、コンピュータプログラムを実行することにより、光ディスク装置５を制御すると共に、光ディスクに記録された映像や音声等のデータの処理を司る電子回路である。ＣＰＵ２Ａ，２Ｂ，２Ｃは、ユーザ
が車両のキースイッチをオンにすると、図示しないメモリに記録された基本ソフトウェアであるＯＳ（Operating System）のプログラムを読み込み、光ディスク装置５の制御やコンテンツデータの処理を実行するためのアプリケーションプログラムを実行する環境を構築する。なお、ＣＰＵ２Ａ，２Ｂは、ＩＴＲＯＮに準拠したＯＳを読み込む。一方、ＣＰＵ２Ｃは、汎用ＯＳであるＬｉｎｕｘ（登録商標）を読み込む。
【００１６】
ＩＴＲＯＮは、タスクを規定の時間内に処理することを主眼とするＯＳの規格であり、タスクが規定の処理時間を守ることを最優先にするようにスケジューリング規則が定義されている。ＩＴＲＯＮはＬｉｎｕｘよりもオペレーティングシステムの構成が簡素であり、起動に要する処理量が少ないことが特徴である。換言すると、起動時間が短いＯＳといえる。ＣＰＵ２Ａ，２Ｂは、ＩＴＲＯＮに準拠したＯＳで動作することにより、ＣＰＵ２Ｃよりも信頼性の高い動作を実現する。一方、Ｌｉｎｕｘは、オープンソースのＯＳであり、インターネット等において提供されている豊富なコンポーネントプログラムをコンパイルすることにより、様々な機能を実現することが可能である。例えば、ＢＤの規格であるＢｌｕ−ｒａｙでは、対話型のコンテンツを実現するためＢＤ−Ｊ（ＢＤ−Ｊａｖａ：Ｊａｖａは登録商標）の実装を義務付けており、Ｌｉｎｕｘは、このようなプログラムの実行を可能にする。
【００１７】
揮発メモリ３は、常誘電体のキャパシタに電荷を蓄えることにより情報を記憶するＳＤＲＡＭ（Synchronous DRAM）であり、電源の喪失により記憶を失う。一方、不揮発メモリ４は、強誘電体のキャパシタに電荷を蓄えることにより情報を記憶するＦＲＡＭ（登録商標：Ferroelectric Random Access Memory）であり、電源が喪失しても記憶を失わない。不揮発メモリ４の書き込み速度が１００ｎｓ／バイトと低速なのに対し、揮発メモリ３の書き込み速度は１．６ｎｓ／バイトと高速である。
【００１８】
光ディスク装置５は、記録媒体であるＢＤやＤＶＤ、ＣＤ等の光ディスクに記録されたデータを読み取り可能な装置であり、光ディスクを回転させるスピンドルモータや光ピックアップを動かすアクチュエータ等の駆動機構類、光ピックアップで読み取った反射光を電気信号にするＡＦＥ（Analog Front End）、ＡＦＥのアナログ信号をデジタル信号に変換するＤＳＰ（Digital Signal Processor）等で構成される。光ディスク装置５は、ＣＰＵ２Ａ，２Ｂ，２Ｃによって制御される。
【００１９】
次に、ＢＤプレーヤ１の各ＣＰＵ２Ａ，２Ｂ，２Ｃで実行される処理フローについて説明する。本処理フローの説明では、説明の便宜上、ＣＰＵ２Ａで実行される場合について説明するが、以下に説明する処理フローは、各ＣＰＵ２Ａ，２Ｂ，２Ｃで互いに独立して実行されるものである。
【００２０】
まず、各ＣＰＵでイベントが発生した際に実行される第一の処理フローについて説明する。図２に示すように、ＣＰＵ２Ａは、自身が実行中のアプリケーションプログラムのタスクでイベントが発生したことを検知すると（Ｓ１０１）、イベントの内容を示す情報を生成する（Ｓ１０２）。図３は、イベントがエラーであった場合にＣＰＵ２Ａが生成する情報の内容である。ＣＰＵ２Ａは、自身が実行中のアプリケーションプログラムのタスクでエラーが発生すると、図３に示すようなエラーコードを生成する。ここで、“エラーコード”はエラーの種類を特定するＩＤであり、また、“エラー発生タスク”はエラーが起きたタスクを特定するＩＤである。これらのＩＤは、エラーの種類毎、或いはタスク毎に予め割り当てられたものである。また、“エラー内容”は、エラーの内容を示すものであり、エラーコード毎に予め定義された残す必要のあるエラーの内容が示されている。また、“共用カウンタ”は、エラーが発生したタイミングを残すものであり、ＣＰＵ２Ａに内蔵されている図示しないカウンタが、エラー発生時にカウントしていた値が示される。ＣＰＵ２Ａは、図３に示すような情報を生成したら、この情報を揮発メモリ３に書き込む（
Ｓ１０３）。揮発メモリ３は、リングバッファとして使用されており、各ＣＰＵ２Ａ，２Ｂ，２Ｃでイベントが発生すると、その情報が順次書き込まれる。ＣＰＵ２Ａは、揮発メモリ３への情報の書き込みが終了したら、タスクでイベントが発生したか否かの監視を再開する（Ｓ１０１）。
【００２１】
以上が、各ＣＰＵ２Ａ，２Ｂ，２Ｃで実行される第一の処理フローの説明である。次に、各ＣＰＵで定期的に実行される第二の処理フロー（不揮発メモリ書き込みタスク）について説明する。図４に示すように、ＣＰＵ２Ａは、内部クロックにより所定の時間が経過したことを確認したら（Ｓ２０１）、揮発メモリ３のデータを参照する（Ｓ２０２）。そして、ＣＰＵ２Ａは、揮発メモリ３にデータが存在している場合は、揮発メモリ３のデータを不揮発メモリ４に移動させる（Ｓ２０３）。一方、ＣＰＵ２Ａは、揮発メモリ３にデータが存在していない場合は、カウンタによる経過時間の計数を再び始める（Ｓ２０１）。ここで、所定の時間とは、ＢＤプレーヤ１に予め設定されている時間である。
【００２２】
以上が、各ＣＰＵ２Ａ，２Ｂ，２Ｃで実行される第二の処理フローの説明である。上述の処理フローの説明においては、ＣＰＵ２Ａで実行されることを前提に説明したが、これらの処理フローはＣＰＵ２Ｂ，２Ｃでも実行されている。本実施形態に係るＢＤプレーヤ１において、各ＣＰＵ２Ａ，２Ｂ，２Ｃでエラーが発生した場合のタイミングチャートを図５に示す。また、図６は、情報伝達の経路を示す図である。ＣＰＵ２Ａでエラーが発生すると、エラーが発生した旨が揮発メモリ３に書き込まれる。揮発メモリ３への書き込みは、速やかに終了する。このため、ＣＰＵ２ＢやＣＰＵ２Ｃでエラーが立て続けに発生しても、エラーが発生した旨は揮発メモリ３に正常に書き込まれる。揮発メモリ３に書き込まれたエラーログは、所定のタイミングでＣＰＵ２Ａ，２Ｂ，２Ｃの一時バッファに格納された後、不揮発メモリ４に書き込まれる。不揮発メモリ４では、書き込みの終了に時間を要するが、書き込みが終了する前でも揮発メモリ３への書き込みは可能である。このため、不揮発メモリ４への書き込みが終わる前にＣＰＵ２Ｃでエラーが発生しても、その旨が揮発メモリ３に書き込まれる。
【００２３】
図７は、揮発メモリを使わずに、エラーログを各ＣＰＵから不揮発メモリに直接書き込む場合のタイミングチャートである。エラーログを各ＣＰＵから不揮発メモリに直接書き込む場合、不揮発メモリでは書き込みに時間を要するため、図７に示すように、ＣＰＵで発生したエラーが不揮発メモリに書き込まれている間に、他のＣＰＵでエラーが発生すると、このエラーが正常に書き込まれなくなる。このため、ＣＰＵで発生したエラーを解析する目的で不揮発メモリに記録されたエラーログを参照する場合に、各ＣＰＵで発生したエラーが全て書き込まれていない、或いは各エラーの前後関係が不明であるといった問題が生じ得る。しかし、上述したＢＤプレーヤ１によれば、データの書き込みを短時間で完了することが可能な揮発メモリを使っているので、このような問題が生じにくくなる。
【００２４】
以上、本発明の一実施形態について説明したが、上記ＢＤプレーヤ１は、上記処理フロー２を何れか１つ或いは２つのＣＰＵが実行するものであってもよい。この場合、リソースが空いている演算量の少ないＣＰＵが上記処理フロー２を実行することが望ましい。また、第二の処理フローは、このようなタイミングで実行されるもののみならず、例えば、揮発メモリ３の容量に基づいて適宜実行されるものであってもよいし、リソースが空いたＣＰＵが適宜実行するものであってもよい。また、ＣＰＵは、３つの場合のみならず、２つ或いは４つ以上であってもよい。また、本発明は、車載式のＢＤプレーヤのみならず、家庭用のＢＤプレーヤやその他の映像音響機器、或いはパーソナルコンピュータ等に適用することも可能である。
【符号の説明】
【００２５】
１・・・ＢＤプレーヤ
２Ａ，２Ｂ，２Ｃ・・・ＣＰＵ
３・・・揮発メモリ
４・・・不揮発メモリ
５・・・光ディスク装置
【図１】
2010224751.tif 000003
【図２】
2010224751.tif 000004
【図３】
2010224751.tif 000005
【図４】
2010224751.tif 000006
【図５】
2010224751.tif 000007
【図６】
2010224751.tif 000008
【図７】
2010224751.tif 000009