(57)【要約】【課題】記憶媒体に記憶されるプログラムの修復について、より高い信頼性を与える。【解決手段】フラッシュメモリとＨＤＤにプログラムを分散して記憶させることとして、プログラムのエラー修復により保護が図られる保護対象プログラムをＨＤＤに多重書きする。また、フラッシュメモリに対して、プログラム保護のためのエラー検出のためのプログラムとエラー修復のためのプログラムを記憶させる。【選択図】図３
2006344060.tif 000002
【特許請求の範囲】
【請求項１】
所定の機能に対応するプログラムが記憶されるとともに、この記憶されるプログラムのうちで保護対象となる保護対象プログラムについては多重に記憶される第１の記憶手段と、
上記第１の記憶手段に記憶されるプログラム以外で、所定の機能に対応するプログラムを記憶し、この記憶されるプログラムとして少なくとも、上記第１の記憶手段に記憶される保護対象プログラムについてのエラーを検出する処理を実行させる検出プログラムと、上記検出プログラムを実行させた結果として上記エラーが検出されたときに、多重に記憶されている上記保護対象プログラムのデータを利用して、保護対象プログラムを修復するための所定の修復処理を実行させる修復プログラムとを記憶する第２の記憶手段と、
少なくとも、上記検出プログラムと上記修復プログラムとを実行するように構成されるプログラム実行手段と、
を備えることを特徴とする情報処理装置。
【請求項２】
上記第１の記憶手段は、ハードディスクを備えて構成され、
上記第２の記憶手段は、フラッシュメモリを備えて構成される、
ことを特徴とする請求項１に記載の情報処理装置。
【請求項３】
情報処理装置が備える第１の記憶手段に対して、所定の機能に対応するプログラムを記憶させるとともに、この記憶させるプログラムのうちで保護対象となる保護対象プログラムについては多重に記憶させ、
上記情報処理装置が備える第２の記憶手段に対して、上記第１の記憶手段に記憶されるプログラム以外で、所定の機能に対応するプログラムを記憶させ、この記憶させるプログラムとして少なくとも、上記第１の記憶手段に記憶される保護対象プログラムについてのエラーを検出する処理を実行させる検出プログラムと、上記検出プログラムを実行させた結果として上記エラーが検出されたときに、上記保護対象プログラムを修復するための所定の修復処理を実行させる修復プログラムとを記憶させ、
上記検出プログラムを実行することにより、上記保護対象プログラムについてのエラーを検出する検出ステップと、
上記修復プログラムを実行することにより、第１の記憶手段において多重に記憶されている上記保護対象プログラムのデータを利用して、保護対象プログラムを修復する修復ステップとを実行する、
ことを特徴とする情報処理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、プログラムを実行することで各種機能、動作が実現されるように構成される情報処理装置と、その方法に関する。
【背景技術】
【０００２】
現在において普及する各種電子機器は、例えば内部にＣＰＵ(Central Processing Unit)などから成るシステムコントローラを備え、このシステムコントローラがプログラムを実行することにより、その電子機器ごとに必要とされる機能を実現するようにされているものがほとんどである。プログラムは、例えばＲＯＭやＨＤＤ（ハードディスク）などの記憶媒体にインストールされるようにして記憶され、電子機器としては、これらのＲＯＭ、ＨＤＤを実装することになる。
【０００３】
【特許文献１】特開昭５７−５００６４号公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
このような電子機器をとりまく状況では、例えばなんらかの要因によりプログラムのデータの少なくとも一部が破壊するなどしてエラーを生じることになると、電子機器の正常な動作が得られなくなってしまう可能性が出てくる。このことから、プログラムのデータを保護することの必要性がでてくる。そして、このようなデータ保護が、できるだけ信頼性の高いものとなることが好ましい。
【課題を解決するための手段】
【０００５】
そこで、本発明は情報処理装置として次のように構成することとした。
つまり、所定の機能に対応するプログラムが記憶されるとともに、この記憶されるプログラムのうちで保護対象となる保護対象プログラムについては多重に記憶される第１の記憶手段と、この第1の記憶手段に記憶されるプログラム以外で、所定の機能に対応するプログラムを記憶し、この記憶されるプログラムとして少なくとも、第1の記憶手段に記憶される保護対象プログラムについてのエラーを検出する処理を実行させる検出プログラムと、検出プログラムを実行させた結果としてエラーが検出されたときに、多重に記憶されている保護対象プログラムのデータを利用して、保護対象プログラムを修復するための所定の修復処理を実行させる修復プログラムとを記憶する第2の記憶手段と、少なくとも、検出プログラムと修復プログラムとを実行するように構成されるプログラム実行手段とを備えることとした。
【０００６】
また、情報処理方法としては、情報処理装置が備える第１の記憶手段に対して、所定の機能に対応するプログラムを記憶させるとともに、この記憶させるプログラムのうちで保護対象となる保護対象プログラムについては多重に記憶させ、情報処理装置が備える第２の記憶手段に対して、第1の記憶手段に記憶されるプログラム以外で、所定の機能に対応するプログラムを記憶させ、この記憶させるプログラムとして少なくとも、第1の記憶手段に記憶される保護対象プログラムについてのエラーを検出する処理を実行させる検出プログラムと、検出プログラムを実行させた結果としてエラーが検出されたときに、保護対象プログラムを修復するための所定の修復処理を実行させる修復プログラムとを記憶させる。そのうえで、検出プログラムを実行することにより保護対象プログラムについてのエラーを検出する検出ステップと、修復プログラムを実行することにより、第1の記憶手段において多重に記憶されている上記保護対象プログラムのデータを利用して、保護対象プログラムを修復する修復ステップとを実行するように構成する。
【０００７】
ここでいうプログラムのエラーとは、記憶媒体（記憶手段）に記憶されるプログラムのデータ内容の少なくとも一部が正常な結果で読み出せなくなっている状態を指す。また、プログラムの修復とは、上記のようにして正常な結果で読み出せなくなったプログラムのデータを、本来の正常な結果で読み出せるようにすることを指す。
【０００８】
上記各構成では、情報処理装置において、プログラムを記憶する記憶手段として、第１の記憶手段と第2の記憶手段とを備える。そして、第1の記憶手段には、保護対象となる保護対象プログラムを多重に記憶し、第２の記憶手段には、保護対象プログラムのエラーを検出するための検出プログラムと、保護対象プログラムの修復を図るための修復プログラムとを記憶させる。情報処理装置にて、これら検出プログラムと修復プログラムが実行されることで、保護対象プログラムのエラーが検出されるのに応じて修復が行われることとなって、プログラムのデータの保護が図られることになる。そして、本発明では、上記しているように、保護対象プログラムは第1の記憶手段に記憶され、検出プログラム及び修復プログラムは第2の記憶手段に記憶される。つまり、保護対象とするプログラムと、このプログラムを保護するためのプログラムとが、互いに異なる記憶手段に記憶される。
【発明の効果】
【０００９】
上記のようにして、保護対象となるプログラム（保護対象プログラム）と、このプログラムを保護するための保護用プログラム（検出プログラム、修復プログラム）とが、異なる記憶手段に記憶されることで、例えば第１の記憶手段としてのハードウェア側の要因により保護対象プログラムにエラーが生じたとしても、保護用プログラムは、第１の記憶手段以外の記憶手段に記憶されているので、第１の記憶手段としてのハードウェア側の要因の影響を受けない。つまり、保護対象プログラムと、保護用プログラムとを、それぞれ別個の記憶媒体に記憶させることで、保護対象プログラムとともに、保護用プログラムまでエラーとなることの可能性を低くし、より高い信頼性のデータ保護が図られるようにされる。
【発明を実施するための最良の形態】
【００１０】
図１は、本発明の実施の形態としての情報処理装置である、放送受信録画装置１のハードウェア構成例を示している。放送受信録画装置１は、以下に説明する構成を採ることで、所定キャリアのテレビジョン放送を受信し、受信して得たテレビジョン放送番組としての映像（ビデオ）／音声（オーディオ）データを、ＨＤＤ（ハードディスク）に記録（録画）し、また、録画した番組の映像／音声データを再生出力することができる。
また、放送受信録画装置１が受信対象とする放送は、アナログ放送とデジタル放送の何れとされてもよいのであるが、ここでは、デジタル放送であることとする。
【００１１】
先ず、放送受信録画装置１に対してはアンテナ１０が接続されている。アンテナ１０では、デジタル放送波を受信して所定の高周波信号に変換して、デジタル放送受信機１に対して供給する。
【００１２】
なお、現状において、デジタルテレビジョン放送は、通信衛星又は放送衛星から放送信号を送出する衛星放送と、地上のアンテナから送出する地上波とが知られているが、本実施の形態の放送受信録画装置１としては、両者のいずれに対応する構成が採られてもよい。アンテナ１０は、デジタルテレビジョン放送として、衛星放送に対応する場合には、受信対象となる衛星の放送方式等に適合したパラボラアンテナとなり、地上波放送に対応する場合には、例えばＵＨＦアンテナとなる。
【００１３】
放送受信録画装置１においては、上記のようにしてアンテナ２０にて受信され、所定の周波数に変換された受信信号を、チューナ１１により入力する。
チューナ１１では、ＣＰＵ１６からバス２２を介して入力された、伝送諸元等を設定した設定信号に基づいて、この設定信号により決定されるキャリア（受信周波数）を抽出し、復調器１２に出力する。復調器１２では、入力されたキャリアの信号について、例えばビタビ復調処理や誤り訂正処理等を施すことで、ＴＳ（Transport Stream）を得るようにされる。
【００１４】
この場合におけるＴＳとしては、例えばＭＰＥＧ２(Moving Picture Experts Group Layer2)方式によって、複数のプログラム（番組）、チャンネルのビデオ（映像）信号及びオーディオ（音声）信号を圧縮した圧縮データと、各種の付加情報が多重化されているものとなる。必要に応じて、データ放送サービスのためのデータ放送用データも多重化されている。
【００１５】
上記したビデオ信号及びオーディオ信号を圧縮した圧縮データ、また、データ放送用データは、ＥＳ（Elementary Stream)として多重化される。また、放送側が挿入する付加情報としては、ＰＡＴ(Program Association Table)、ＰＭＴ(Program Map Table)などのテーブルを格納するＰＳＩ(Program Specific Information：番組特定情報）や、ＳＩ(Service Information:番組配列情報)などが挙げられる。
そして、上記情報の多重化は、ＴＳを所定バイトサイズのトランスポートストリーム・パケット（ＴＳパケット）により形成するようにして、このＴＳパケットに対して、上記したＥＳ及び各種付加情報を格納することにより行われる。
【００１６】
また、復調器１２では、ＴＳからＰＳＩ(Program Specific Information:番組特定情報)のパケットを取得し、その選局情報を更新すると共に、ＴＳにおける各チャンネルのコンポーネントＰＩＤ(Program ID)を得て、例えばＣＰＵ１６に対してバス２２を経由して伝送する。ＣＰＵ１６では、取得したＰＩＤを受信信号処理に利用することになる。
【００１７】
また、本実施の形態の構成においては、ＴＳとして取得されたデータについてスクランブル（暗号）がかけられているときには、このスクランブルを解くためのスクランブル処理についても、復調器１２にて実行可能なようにされているものとする。
【００１８】
デマルチプレクサ１３は、ＣＰＵ１６により設定されたフィルタ条件に従って、復調器１２から供給されたＴＳから必要なＴＳパケットを分離する。これにより、例えばデマルチプレクサ１６においては、目的とする１つのプログラムについてのＴＳパケットとして、所定の符号化方式（例えばＭＰＥＧ２方式）により圧縮されたビデオデータのＴＳパケットと、圧縮されたオーディオデータのＴＳパケットを得ることになる。そして、このようにして得られた圧縮ビデオデータと圧縮オーディオデータを、それぞれ、ビデオデコーダ１４、オーディオデコーダ１５に対して出力する。
【００１９】
なお、デマルチプレクサ１３により分離された圧縮ビデオ／オーディオデータの個別パケットは、ＰＥＳ(Packetized Elementary Stream)と呼ばれる形式でそれぞれ、ビデオデコーダ１４とオーディオデコーダ１５とに入力されるようになっている。
また、上記したフィルタ条件の設定は、例えばデマルチプレクサ１３において、ＴＳに含まれるＰＡＴ、ＰＭＴなどを抽出して、ＣＰＵ１６にバス２２を介して転送するようにされる。そして、ＣＰＵ１６が、転送されてきたＰＡＴ、ＰＭＴなどに記述されている情報内容に基づいて、ＣＰＵ１６に対してフィルタ条件を設定するようにされる。
【００２０】
ビデオデコーダ１４においては、先ず、入力された圧縮ビデオデータについて、その圧縮符号化形式に応じたデコード（伸長）処理を実行する。そして、この伸長処理により得られたビデオデータについて、画質調整などをはじめとした所要の信号処理を実行する。
ビデオ信号処理部１７の出力であるビデオ信号は、この場合には、放送受信録画装置１と接続されるディスプレイ２６に入力される。
【００２１】
オーディオデコーダ１５では、入力された圧縮オーディオデータについて、その圧縮符号化形式に応じたデコード（伸長）処理を実行する。なお、この伸長処理は、ビデオデコーダ１４にて伸長処理が施されて出力されるビデオ信号の再生出力タイミングに同期するように、つまり、いわゆるリップシンクが保たれるようにして実行される。また、オーディオ信号処理部２０は、上記伸長処理によって得られたオーディオ信号について、ゲイン調整、音質調整、音量調整、音響効果の付加などの所要の信号処理を必要に応じて実行する。この場合にオーディオデコーダ１５から出力されるオーディオ信号は、放送受信録画装置１と接続されるスピーカ２７に入力される。
なお、この図では、説明を簡単にするために、オーディオ信号処理部２０以降のオーディオ信号の系を１系統により示しているが、実際には、Ｌ（左），Ｒ（右）ステレオに対応する２チャンネルのオーディオ信号の系とされてもよい。また、5.1chサラウンドなどの、所定のチャンネル構造による３チャンネル以上のマルチチャンネルに対応するオーディオ信号の系とされてもよい。
【００２２】
ディスプレイ２６は、所定のディスプレイデバイスを備えて成り、ビデオデコーダ１４から入力されるビデオ信号に基づいて表示駆動を実行することで、ビデオ信号の画像を表示出力する。
スピーカ２７は、オーディオデコーダ１５から入力されたオーディオ信号を増幅して音声として出力する。これにより、スピーカ２２からは、例えば、ディスプレイ２６にて表示される画像と同期した音声が出力される。
【００２３】
ＣＰＵ１６は、プログラムを実行することで、放送受信録画装置１の動作制御を実現するもので、他のハードウェアデバイスとバス２２を介して通信可能に接続されている。本実施の形態において、ＣＰＵ１６が実行するプログラムは、少なくとも、フラッシュメモリ１９、ＨＤＤ（ハードディスク）２１にて記憶保持されている。
【００２４】
ＲＡＭ１７は、揮発性のメモリ素子から成り、ＣＰＵ１６が処理を実行するための作業領域として利用され、例えばＣＰＵ１６の演算処理結果などが保持される。また、ＣＰＵ１６が実行すべきプログラムは、このＲＡＭ１７に展開される形式で保持されることで、実際のＣＰＵ１６によるプログラムの実行が可能となる。
【００２５】
この場合のＲＯＭ１８は、書き換えが不可のメモリ素子からなり、例えば、書き換えが不要の各種の設定データなどが記憶される。
【００２６】
本実施の形態の放送受信録画装置１は、上記ＲＡＭ１７及びＲＯＭ１８の他に、不揮発性メモリを備えるものとする。不揮発性メモリとしては、いくつかの種類があり、何れを採用するのかについては特に限定されるべきではないが、ここではフラッシュメモリ１９を備えることとしている。
本実施の形態において、このフラッシュメモリ１９には、少なくとも、ＣＰＵ１６に実行させるべきプログラムの一部が記憶される。なお、フラッシュメモリ１９に対して、プログラム以外の種類のデータを記憶させることについては特に制限はない。
【００２７】
この場合の操作部２３は、放送受信録画装置１に対応して設けられる各種操作子と、これらの操作子に対して行われた操作に応じて操作情報信号を生成してＣＰＵ１６に出力する操作情報信号出力部とを一括して示している。また、リモートコントローラと、このリモートコントローラに対して行われた操作に応じて送信されてくるコマンド信号を受信復調して、操作情報信号として出力する受信部なども、この操作部２３に含まれる。
【００２８】
また、本実施の形態の放送受信録画装置１は、少なくともユーザデータを記録再生可能な記憶デバイスとして、ＤＶＤドライブ２０、及びＨＤＤ２１を備える。
ＤＶＤドライブ２０は、リムーバブルの光学ディスク状記録媒体であるＤＶＤ(Digital Versatile Disc)２５を装填することができ、装填されたＤＶＤ２５に対してデータの記録再生を行うことが可能とされる。例えば本実施の形態の放送受信録画装置１では、テレビジョン放送を受信して取得した放送番組のビデオ／オーディオデータを、所定のデータ形式により記録することができる。
なお、ＤＶＤドライブ２１に代えて、例えばBlu-ray Disc(商標)などをはじめとするＤＶＤ以外の光学ディスク状記録媒体に対応するドライブを備えることとしてもよい。また、半導体メモリ素子を備えるリムーバブルの記憶媒体に対応したドライブを備えることも考えられる。
【００２９】
ＨＤＤ２１は、周知のようにして、記録媒体として磁気ハードディスクを備えて構成され、現状では大容量を容易に確保できる記憶デバイスとして広く普及している。本実施の形態の放送受信録画装置１において、ＨＤＤ２１には、ＣＰＵ１６の制御に従って、テレビジョン放送から受信取得した放送番組のビデオ／オーディオデータを所定のデータ形式により記録することができる。つまり、番組録画の機能を有する。さらに、本実施の形態では、ＣＰＵ１６に実行させるべきプログラムの一部が記憶される。
【００３０】
例えば、ＨＤＤ２１に記録されている放送番組などのビデオ／オーディオデータを再生するときには、再生すべきビデオ／オーディオデータのファイルをＨＤＤ２１から読み出す。この場合のＨＤＤ２１に記録されているビデオ／オーディオデータは、圧縮符号化処理が施された形式であることとする。そこで、ＨＤＤ２１から読み出したビデオ／オーディオデータは、ＣＰＵ１６の制御により、バス２２を介して、それぞれビデオデコーダ１４、オーディオデコーダ１５に転送するようにされる。ビデオデコーダ１４、オーディオデコーダ１５では、先の説明のようにして、デコード（伸長）処理等を施して、リップシンクを保つようにしてビデオ信号、オーディオ信号を出力する。
なお、ＤＶＤ２５に記録されているビデオ／オーディオデータを再生する場合にも、ＤＶＤドライブ２０にてＤＶＤから読み出した圧縮符号化形式のビデオ／オーディオデータを、ビデオデコーダ１４、オーディオデコーダ１５によりデコードして、ビデオ信号、オーディオ信号として出力するようにされる。
【００３１】
図２は、本実施の形態の放送受信録画装置１におけるＣＰＵ１６が実行するプログラムの構成を模式的に示している。この図では、ＣＰＵ１６が実行するプログラムを、所定の機能単位によるブロック単位で示すとともに、各ブロックによる機能の連携を模式的に示している。
【００３２】
この図において、ＣＰＵ１６が実行するプログラムについては、ＣＰＵブロック１００として示している。このＣＰＵブロック１００は、フラッシュメモリ１９に記憶されているプログラムから成るフラッシュメモリ対応ブロック１００Ａと、ＨＤＤ２１に記憶されているプログラムから成るＨＤＤ対応ブロック１００Ｂとに分けられる。
【００３３】
先ず、フラッシュメモリ対応ブロック１００Ａは、プログラムのブロックとして、プログラム起動制御ブロック３１、チューナ制御ブロック３２、ビデオ／オーディオストリーム論理フォーマット制御ブロック３３、ビデオ／オーディオストリーム出力制御ブロック３４、ビデオインターフェイス３５、オーディオインターフェイス３６、プログラムメディア制御ブロック３７、ＨＤＤ／ＤＶＤ通信制御ブロック３８、ＨＤＤ／ＤＶＤ通信インターフェイス３９、プログラムメディアエラー検出ブロック４０、プログラムメディアエラー修復ブロック４１を有するものとしており、実際のフラッシュメモリ１９には、これらのブロックのプログラムのデータが記憶されていることになる。また、プログラムメディアエラー修復ブロック４１により、プログラムメディアエラーフラグ４２のコントロールが行われる。
【００３４】
フラッシュメモリ対応ブロック１００Ａにおいて、プログラム起動制御ブロック３１は、初期起動時において最初にＣＰＵ３１がアクセスして実行するプログラムに対応するものであり、例えば所定内容の起動コードなどを格納してなる。このプログラム起動制御ブロック３１のプログラムを実行することで、ＣＰＵ１６は以降において初期起動として起動すべきプログラムを初期化していく処理を実行することができる。
【００３５】
チューナ制御ブロック３２は、デジタルテレビジョン放送の受信復調系に相当するハードウェアが実行する各種の機能、動作を制御するためのプログラムに対応する。デジタルテレビジョン放送の受信復調系としては、図1との対応では、例えば、チューナ１１、復調器１２、デマルチプレクサ１３が含まれる。
【００３６】
ビデオ／オーディオストリーム論理フォーマット制御ブロック３３は、デジタルテレビジョン放送の受信復調系により得られるビデオ／オーディオデータをはじめ、他には、例えばＤＶＤドライブ２０、ＨＤＤ２１から読み出されるビデオ／オーディオデータなど、放送受信録画装置１において処理されるビデオ／オーディオデータの論理フォーマットを解釈制御する。ビデオ／オーディオストリーム出力制御ブロック３４は、上記ビデオ／オーディオストリーム論理フォーマット制御ブロック３３の処理結果と連携し、例えばビデオデコーダ１４、オーディオデコーダ１５により、ビデオ／オーディオデータをデコードして再生出力させるための制御を実行する。
【００３７】
この場合のビデオインターフェイス３５は、ビデオ／オーディオストリーム出力制御ブロック３４の制御処理によりビデオデコーダ１４にて得られた表示用のビデオ信号（ビデオデータ）を、例えばディスプレイ２６などの外部ディスプレイデバイスに出力させるための制御処理を実行する。
オーディオインターフェイス３６は、ビデオ／オーディオストリーム出力制御ブロック３４の制御処理によりオーディオデコーダ１５にて得られた表示用のビデオ信号（ビデオデータ）を、例えばディスプレイ２６などの外部ディスプレイデバイスに出力させるための制御処理を実行する。
【００３８】
プログラムメディア制御ブロック３７は、放送受信録画装置１に実装される記憶デバイスを対象として、プログラムのデータの読み出し（書き込み）を可能とするための制御処理を実行する。この場合、プログラムメディア制御ブロック３７としてのプログラムの実体は、フラッシュメモリ１９に記憶されていることになるので、プログラムメディア制御ブロック３７が制御対象とするデバイスは、フラッシュメモリ１９以外のＨＤＤ２１、及びＤＶＤドライブ２０となる。ただし、本実施の形態においては、ＤＶＤに対してプログラムを記憶させることは特に行わない。例えば、プログラムメディア制御ブロック３７は、ＨＤＤ２１などの記憶デバイスにおいて、プログラムが記憶されている領域のアドレスを指定して、次に説明するＨＤＤ／ＤＶＤ通信制御ブロック３８より下位の階層での通信処理により、プログラムのデータにアクセスするようにされる。
【００３９】
ＨＤＤ／ＤＶＤ通信制御ブロック３８は、プログラムメディア制御ブロック３７に対しては、下位となるプログラム階層において、バス２２経由でのＨＤＤ２１との通信、及びＤＶＤドライブ２５との通信を制御するためのプログラムであり、ＨＤＤ／ＤＶＤ通信インターフェイス３９は、ＨＤＤ／ＤＶＤ通信制御ブロック３８のさらに下位のプログラム階層において、ＨＤＤ２１との通信、及びＤＶＤドライブ２５との通信を実行するインターフェイス機能のためのプログラムである。
【００４０】
また、プログラムメディアエラー検出ブロック４０は、プログラムメディア制御ブロック３７が、ＨＤＤ／ＤＶＤ通信制御ブロック３８、ＨＤＤ／ＤＶＤ通信インターフェイス３９を制御して、ＨＤＤ２１から読み込みを行った保護対象プログラムについてのエラーの有無を検出する処理を実行させるためのプログラムとなる。
【００４１】
プログラムメディアエラー修復ブロック４１は、上記プログラムメディアエラー検出ブロック４０によりエラーの有ることが検出された場合に、保護対象プログラムのデータを修復するための処理を実行させるためのプログラムとなる。
図２のフラッシュメモリ対応ブロック１００Ａ内に示されるプログラムメディアエラーフラグ４２は、プログラムメディアエラー検出ブロック４０によるエラー検出結果に応答して、プログラムメディアエラー修復ブロック４１が、少なくともエラーの有無を示す値をセットするようにされ、フラッシュメモリ１９に対して記憶保持させるようになっている。
なお、以降において、プログラムメディアエラー検出ブロック４０及びプログラムメディアエラー修復ブロック４１を一括しては、保護対象プログラムを保護する目的のプログラムであるとして、保護用プログラムともいうことにする。
【００４２】
ＨＤＤ対応ブロック１００Ｂは、この場合には、さらにメインプログラムブロック１００Ｂ−１と、バックアッププログラムブロック１００Ｂ−２とのブロックに分割される。そして、メインプログラムブロック１００Ｂ−１は、ビデオ／オーディオメディア制御ブロック５１、ユーザインターフェイスブロック５２を有するものとしている。また、バックアッププログラムブロック１００Ｂ−２は、ビデオ／オーディオメディア制御ブロック５１Ａ、ユーザインターフェイスブロック５２Ａを有するものとしている。実際のＨＤＤ２１には、これらのブロックのプログラムが記憶されていることになる。ビデオ／オーディオメディア制御ブロック５１Ａは、正常なビデオ／オーディオメディア制御ブロック５１と同一の内容を持つ。同様に、ユーザインターフェイスブロック５２Ａも、正常なユーザインターフェイスブロック５２と同一の内容を持つ。
【００４３】
ビデオ／オーディオメディア制御ブロック５１は、放送受信録画装置１に実装される記憶デバイスを対象として、プログラム以外のデータとして、ここでは、デジタルテレビジョン放送を録画して得られるものとされるビデオ／オーディオのデータの読み出し／書き込みを可能とするための制御処理を実現する。例えば、ビデオ／オーディオメディア制御ブロック５１は、記憶媒体に記憶されるユーザデータであるビデオ／オーディオデータを、所定方式のファイルシステムにより管理し、このファイルシステムの管理内容に基づいて、ビデオ／オーディオデータの記録再生の制御を実行する。
このビデオ／オーディオメディア制御ブロック５１としても、フラッシュメモリ対応ブロック１００Ａ内のプログラムメディア制御ブロック３７と同様にして、ＨＤＤ／ＤＶＤ通信制御ブロック３８以下の階層での通信処理を利用して、ＨＤＤ２１若しくはＤＶＤ２１に対してアクセスするようにされている。
【００４４】
また、ユーザインターフェイスブロック５２は、ユーザインターフェイスに関する制御処理を実行する。例えば操作部２３に対して行われた操作に応じて、チューナ系統の受信選局動作、ビデオ／オーディオデータの記録再生、録画予約設定などに関する各種所要の処理を実現する。また、本実施の形態としては、ビデオ信号出力として、ユーザ操作のためのＧＵＩ(Graphical User Interface)画像を重畳して出力可能とされており、このための、表示用データ、また、表示制御プログラムなども、ユーザインターフェイスブロック５２に含まれる。なお、本実施の形態の放送受信録画装置１の構成では、ＧＵＩ画像の出力は、ＣＰＵ１６がユーザインターフェイスブロック５２としてのＧＵＩに関するプログラムを実行して、ビデオデコーダ１４における、ビデオ信号処理機能を制御することで実現されるものとされる。
【００４５】
本実施の形態では、上記のようにして、ＨＤＤ２１に記憶されるビデオ／オーディオメディア制御ブロック５１、ユーザインターフェイスブロック５２を、ＣＰＵ１６が実行するものとして記憶されるプログラムのうちで、そのデータ内容にエラーが生じたときに修復されるようにして保護すべきとされるプログラム（保護対象プログラム）としている。
ＨＤＤ対応ブロック１００Ｂとして、上記のようにして、メインプログラムブロック１００Ｂ−１と、バックアッププログラムブロック１００Ｂ−２を有することとしているのは、ビデオ／オーディオメディア制御ブロック５１、ユーザインターフェイスブロック５２が保護対象プログラムとされていることによる。
つまり、メインプログラムブロック１００Ｂ−１としてのビデオ／オーディオメディア制御ブロック５１及びユーザインターフェイスブロック５２は、ビデオ／オーディオメディア制御機能、ユーザインターフェイス機能を実現するために、ＣＰＵ１６が読み込みを行ってＲＡＭ１７に展開する（ロード）し、実行するプログラムとなる。これに対して、メインプログラムブロック１００Ｂ−１は、メインプログラムブロック１００Ｂ−１としてのビデオ／オーディオメディア制御ブロック５１及びユーザインターフェイスブロック５２としてのプログラムのデータ内容にエラーが生じたときの代替となる、バックアップ用のプログラムのデータから成るもので、このバックアップ用のデータとして、正常なビデオ／オーディオメディア制御ブロック５１と同一内容のビデオ／オーディオメディア制御ブロック５１Ａを有し、正常なユーザインターフェイスブロック５２と同一内容のユーザインターフェイスブロック５２Ａを有する。
なお、このようなＨＤＤ対応ブロック１００Ｂのプログラム構成を利用して、本実施の形態としてどのようにしてプログラムの保護を図るのかについては後述する。
【００４６】
また、図２においては、ＣＰＵブロック１００の他に、ＨＤＤデバイスブロック２００と、ＤＶＤデバイスブロック３００を示している。
ＨＤＤデバイスブロック２００は、ＨＤＤ２１としてのハードウェアデバイスが記憶保持し、実行するプログラムの機能構成を示しており、プログラム構成としては、ＨＤＤ通信インターフェイス２０１、ＨＤＤ制御ブロック２０２を有する。
また、ＤＶＤデバイスブロック３００は、ＤＶＤドライブ２０としてのハードウェアデバイスが記憶保持し、実行するプログラムの機能構成を示しており、プログラム構成としては、ＤＶＤ通信インターフェイス３０１、ＤＶＤ制御ブロック３０２を有する。
【００４７】
ＨＤＤデバイスブロック２００のＨＤＤ通信インターフェイス２０１は、上記ＨＤＤ／ＤＶＤ通信インターフェイス３９と同位のプログラム階層に位置して、このＨＤＤ／ＤＶＤ通信インターフェイス３９との間で通信を実行する。これにより、ＣＰＵ１６を備えるメインのシステムコントローラ側と、ＨＤＤ２１との間での通信として、例えば各種機能に対応するコマンドの送受信、読み出し／書き込みデータの授受が可能となる。
また、ＨＤＤデバイスブロック２００において、ＨＤＤ通信インターフェイス２０１は、ＨＤＤ制御ブロック２０２と連携することとなっている。ＨＤＤ制御ブロック２０２は、記憶媒体であるＨＤＤに対するデータの読み出し／書き込みを制御し、また、ＨＤＤに記録されるデータの管理を、例えば所定のファイルシステムの規定に従って行う。
【００４８】
また、ＤＶＤデバイスブロック３００のＤＶＤ通信インターフェイス３０１も、上記ＨＤＤ／ＤＶＤ通信インターフェイス３９と同位のプログラム階層に位置して、このＨＤＤ／ＤＶＤ通信インターフェイス３９との間で通信を実行する。これにより、ＣＰＵ１６を備えるメインのシステムコントローラ側と、ＤＶＤドライブ２０との間での通信が可能となる。
また、ＤＶＤデバイスブロック３００において、ＤＶＤ通信インターフェイス３０１は、ＤＶＤ制御ブロック３０２と連携する。ＤＶＤ制御ブロック２０２は、ＤＶＤ２５に対するデータの読み出し／書き込みを制御し、また、ＤＶＤに記録されるデータの管理を行う。
【００４９】
ここで、上記図2に示すプログラム構成を前提とした、放送受信録画装置１が起動するときの基本的な動作について述べておくこととする。
先に説明したように、本実施の形態の放送受信録画装置１では、メイン電源の供給が停止されているときには、サブのスタンバイ用のシステムコントローラがスタンバイ電源の供給を受けて動作しており、ＣＰＵ１６を備えるメインのシステムコントローラをはじめ、図1に示した機能ブロックに相当するハードウェアデバイスに対する電源の供給は停止されている。このため、メイン電源の供給が停止されている状態では、プログラムを記憶するフラッシュメモリ１９及びＨＤＤ２１への電源供給も停止されている状態にある。但し、操作部23に対する操作に応じた操作情報信号は、スタンバイ用のシステムコントローラに供給されるようになっている。
【００５０】
ここで、メインの電源投入されたとすると、その直後、図1に示した各ブロックに対応するハードウェアデバイスに対する電源供給も開始され、これらのハードウェアデバイスは動作可能な状態となる。ただし、例えばチューナ１１などをはじめとするハードウェアデバイスにでは、通電が行われたのみで、そのハードウェアデバイスを制御するためのプログラムが初期化されて起動されない状態では、これらハードウェアデバイスの正常な機能は得られない。
【００５１】
上記のようにしてメインの電源が供給されることにより、ＣＰＵ１６にも電源が供給されることになる。電源供給を受けて動作可能となったＣＰＵ１６は、初期起動のための処理を実行することになる。そして、先ずは、プログラム起動制御ブロック３１としての処理を実行する。つまり、ＣＰＵ１６は、例えば予め定められたフラッシュメモリ１９のアドレスにアクセスして、プログラム起動制御ブロック３１としてのプログラムを読み込んでＲＡＭに展開し、これを実行する。
【００５２】
上記のようにしてプログラム起動制御ブロック３１を実行することにより、ＣＰＵ１６では、次に初期化すべきプログラムの項目として、チューナ制御ブロック３２、プログラムメディア制御ブロック３７を認識し、チューナ制御ブロック３２の初期化と、期間Ｔ２−Ａとしてのプログラムメディア制御ブロック３７の初期化とを同時併行的に実行開始する。確認のために、チューナ制御ブロック３２、プログラムメディア制御ブロック３７は、フラッシュメモリ１９に記憶されており、そのアドレスなどは、例えばプログラム起動制御ブロック３１により指定されればよい。
【００５３】
チューナ制御ブロック３２の初期化は、フラッシュメモリ１９から読み出したチューナ制御ブロック３２としてのプログラムを、例えばＲＡＭ１７に展開したうえで、このプログラムの関数などについて、起動時に対応する初期値をセットするようにされる。この初期化が実行されることで、以降、そのプログラムがＣＰＵ１６により実行可能な状態を得ることができる。チューナ制御ブロック３２に関すれば、初期化以降は、チューナ系統についての制御処理を実行することで、デジタルテレビジョン放送を受信選局して、放送番組のビデオ／オーディオデータを得ることが可能になる。
また、プログラムメディア制御ブロック３７の初期化も、同様にして、フラッシュメモリ１９から読み出したプログラムメディア制御ブロック３７としてのプログラムをＲＡＭ１７に展開して初期値をセットする。
【００５４】
チューナ制御ブロック３２の初期化を実行したとされると、続いては、チューナ制御ブロック３２を実行することにより受信取得される放送番組のビデオ／オーディオデータを出力するためのプログラムを初期化すべきこととなる。つまり、ビデオ／オーディオストリーム論理フォーマット制御ブロック３３、ビデオ／オーディオストリーム出力制御ブロック３４（及びビデオインターフェイス３５、オーディオインターフェイス３６）の初期化を実行する。
ここまでの処理が実行される結果、以降においては、初期化後のチューナ制御ブロック３２、ビデオ／オーディオストリーム論理フォーマット制御ブロック３３、ビデオ／オーディオストリーム出力制御ブロック３４、ビデオインターフェイス３５、オーディオインターフェイス３６としてのプログラムを実行できることになる。この結果、チューナ系統によりテレビジョン放送を受信選局、復調してビデオ／オーディオデータを取得し、この取得したビデオ／オーディオデータについて復号処理などを施して、ビデオ／オーディオ信号として外部に出力することが可能になる。つまり、放送受信録画装置１により受信したテレビジョン放送の映像、音声は、ディスプレイ２６、スピーカ２７に対して出力可能な状態となる。
【００５５】
一方、プログラムメディア制御ブロック３７を初期化したのに応じては、プログラムメディアエラー検出ブロック４０及びプログラムメディアエラー修復ブロック４１を初期化すべきことが認識されるので、これらの各ブロックを初期化することになる。これにより、プログラムメディアエラー検出ブロック４０及びプログラムメディアエラー修復ブロック４１としての機能処理を実行可能になる。
また、プログラムメディア制御ブロック３７を初期化したのに応じては、例えば、ＨＤＤ２１に記憶されるプログラムであるビデオ／オーディオメディア制御ブロック５１、及びユーザインターフェイスブロック５２を初期化すべきことも認識される。そこで、ＨＤＤ２１にアクセス可能な状態を得るために、ＨＤＤ／ＤＶＤ通信制御ブロック３８（及びＨＤＤ／ＤＶＤ通信インターフェイス３９）の初期化を実行するようにされる。これにより、メインのシステムコントローラ（ＣＰＵ１６）側における、ＨＤＤ２１、ＤＶＤドライブ２０への通信環境が形成される。そして、この初期化に応じて、ＨＤＤ／ＤＶＤ通信インターフェイス３９を経由するようにして、ＨＤＤ２１、ＤＶＤドライブ２５との通信が可能になり、これに伴い、ＨＤＤデバイスブロック２００及びＤＶＤデバイスブロック３００側とのプログラムとの連携が可能となる。
【００５６】
そして、ＨＤＤ／ＤＶＤ通信制御ブロック３８（及びＨＤＤ／ＤＶＤ通信インターフェイス３９）の初期化に応じて、例えばＨＤＤ／ＤＶＤ通信制御ブロック３８側からは、ＨＤＤ及びＤＶＤのドライブ側を初期化すべき指示が発生する。これに応じて、ＨＤＤ２１、ＤＶＤドライブ２０を対象とする初期化処理を実行する。
ＨＤＤ２１を対象とする初期化処理としては、スピンアップなどといわれる物理的機構の駆動を伴う初期化を実行するとともに、図２との対応では、ＨＤＤ制御ブロック２０２の初期化を実行させる。スピンアップとは、ＨＤＤの記憶媒体である磁気ディスクの回転を始動させて、正常なデータの書き込み／読み出しが可能な回転速度に引き上げるようにして回転駆動させることをいう。
また、ＤＶＤドライブ２１を対象とする初期化処理として、例えばＤＶＤが装填されている場合には、ＨＤＤと同様のスピンアップに相当する初期化を行い、また、ＤＶＤ制御ブロック３０２などの初期化処理を実行させる。例えば、ここまでの処理の完了を以て、起動が完了することになる。
【００５７】
上記のようにして、ＨＤＤ２１、ＤＶＤドライブ２０を対象とする初期化処理が実行されることで、例えば、プログラムメディア制御ブロック３７側からの制御により、ＨＤＤ２１、ＤＶＤドライブ２２に装填されるＤＶＤに対して、データ書込／読み出しのためにアクセスすることが可能になる。そこで、続いては、ＨＤＤ２１に対してアクセスして、ビデオ／オーディオメディア制御ブロック５１、及びユーザインターフェイスブロック５２の読み出しを実行し、初期化を実行することとしている。この初期化が完了することで、ビデオ／オーディオメディア制御ブロック５１、ユーザインターフェイスブロック５２としてのプログラムを実行して、その機能を実現することができる。つまり、ユーザによる操作に応答して放送受信録画装置１が動作することが可能になり、また、ＨＤＤ２１又はＤＶＤドライブ２２に装填されるＤＶＤ２５に対するビデオ／オーディオデータの記録再生が可能になる。
また、この段階では、先に説明したように、チューナ系によりテレビジョン放送を受信してビデオ／オーディオデータを取得可能とされている。つまり、起動が完了した段階では、図２に示すプログラム構成により実現される機能は、全て動作実行を可能な状態となっている。
【００５８】
なお、上記のようにしてブロックとして示すフラッシュメモリ１９及びＨＤＤ２１に記憶されるプログラムは、全て、起動時に初期化起動されるものであるが、ここで図示するプログラムは、本実施の形態における主要構成を示すものであり、実際としては、これ以外の何らかの機能のための初期起動対象プログラム、あるいは初期起動対象プログラムではないプログラムが、存在していてもよいものである。
【００５９】
続いては、図３及び図４のフローチャートを参照して、本実施の形態における保護対象プログラムについてのデータ保護のための処理について説明する。この図に示す処理は、保護用プログラムである、プログラムメディアエラー検出ブロック４０及びプログラムメディアエラー修復ブロック４１を含み、図2に示す所要の機能のためのプログラムのブロックをＣＰＵ１６が実行することで実現される。
【００６０】
ここで、図３に示す処理は、先に説明したように起動が完了した後において、メインプログラムブロック１００Ｂ−１のビデオ／オーディオメディア制御ブロック５１のプログラムを実行すべきとき、または、同じメインプログラムブロック１００Ｂ−１のユーザインターフェイスブロック５２のプログラムを実行すべきときに対応して実行される。
【００６１】
ＣＰＵ１６が、ビデオ／オーディオメディア制御ブロック５１のプログラム、又はユーザインターフェイスブロック５２のプログラムを実行することによっては、先ず、図３のステップＳ１０１として示すように、ビデオ／オーディオメディア制御ブロック５１又はユーザインターフェイスブロック５２により、所定の他の機能を実現するプログラムに対して実行命令を与える。このときに、ＣＰＵ１０６は、ステップＳ１０２の処理として、その実行命令に対応する命令コードが、プログラムを展開して保持しているメモリ（ＲＡＭ１７）に保持されているか否かについて判別する。そして、メモリに命令コードが保持されているとして肯定の判別結果が得られたのであれば、ステップＳ１０１に戻るようにして、次の実行命令を与えていくようにされる。これに対して、メモリに命令コードが保持されていないとして否定の判別結果が得られたのであれば、ステップＳ１０３に進む。
【００６２】
ステップＳ１０３においては、プログラムメディア制御ブロック３７としてのプログラムにより、今回必要とされている命令コードをＨＤＤ２１から読み込む処理を開始させる、これに応じて、次のステップＳ１０４では、プログラムメディア制御ブロック３７としてのプログラム階層から、ＨＤＤ／ＤＶＤ通信制御ブロック３８に対して、ＨＤＤ２１から上記命令コードの読み込みを命令する。この命令に従って、ＨＤＤ／ＤＶＤ通信制御ブロック３８は、ＨＤＤ／ＤＶＤ通信インターフェイス３９経由でＨＤＤ２１にアクセスし、指定された命令コードの読み出しを行い、プログラムメディア制御ブロック３７に渡すようにされる。これにより、ステップＳ１０４にて読み込み命令が実行されることに応じて、ＨＤＤからの命令コードの読み込みが実行されるようになっている。
【００６３】
ここで、本実施の形態では、上記のようにしてステップＳ１０４に応答して実行される命令コードの読み込み結果を、プログラムメディアエラー検出ブロック４０により監視することとしており、その読み込み結果に応じて、プログラムのエラーについての有無を検出することとしている。例えば、ＨＤＤ２１からデータを読み出すのにあたり、読み出したデータそのものの誤りを訂正する符号訂正が行われるとした場合には、プログラムメディアエラー検出ブロック４０は、この符号訂正の処理過程において実行される読み出しデータについてのエラー検出処理の結果を利用できる。つまり、エラー検出結果がＯＫの状態でデータの読み込みが実行されたのであれば、ステップＳ１０５としては、正常に命令コードを読み込んだ結果が得られたとして肯定の判別結果を得るようにされる。これに対して、エラー検出結果がＮＧの状態でデータの読み込みが実行されたのであれば、ステップＳ１０５としては、命令コードを正常に読み込めていないという結果が得られたとして否定の判別結果を得るようにされる。
【００６４】
上記ステップＳ１０５にて肯定の判別結果が得られた場合には、ステップＳ１０１の処理に戻るようにして、以降のビデオ／オーディオメディア制御ブロック５１のプログラム、又はユーザインターフェイスブロック５２のプログラムの実行命令を与える。
これに対して、ステップＳ１０５にて否定の判別結果が得られた場合には、少なくともステップＳ１０４に応答して読み込みを行った命令コードとしてのプログラム部分についてエラーが生じていることになる。このエラーの原因としては、例えば命令コードを記憶しているＨＤＤの物理的な記憶領域に傷などのディフェクトが生じていることで正常な読み出しが物理的にできなくなっている場合、あるいは、ディフェクトを生じていないとしても、記録時のエラーなどにより、本来の正常な内容とは異なるデータが記憶されている場合などを挙げることができる。このような場合には、プログラム修復のための処理として、ステップＳ１０６以降の処理が実行される。
【００６５】
ステップＳ１０６では、プログラムメディアエラー検出ブロック４０の処理として、上記ステップＳ１０５により読み込み結果がエラー（プログラムのエラー）があったことを検出したのに応じて、プログラムメディアエラー修復ブロック４１に対してデータ修復命令を与えるようにされる。
上記命令に応答して、プログラムメディアエラー修復ブロック４１では、ステップＳ１０７としての処理により、プログラムメディアエラーフラグ４２のフラグ値ｆについて、エラーであることを示す値として、ここでは、ｆ＝１をセットするようにされる。フラグ値ｆ＝０がエラーでないことを示すことになる。また、ここでは、説明を簡単なものとするために、プログラムメディアエラーフラグ４２のフラグ値ｆについて、１，０によりエラーの有無を示す機能のみを与えることとしているが、例えば実際においては、エラーとなったプログラムのブロック種別、さらにはプログラムのブロック種別内におけるエラーとなったデータ部分、また、エラーの症状に対応した内容なども示されるような構造としてもよい。このような構造とすれば、例えばエラー症状などに適応した、より高度なプログラムの修復を実行できるように構成することが可能になる。
上記のようにしてしかるべき値をセットしたプログラムメディアエラーフラグ４２は、この場合には、フラッシュメモリ１９における所定領域に対して上書きするようにして記憶保持される。
そして、ステップＳ１０８に続けては、ステップＳ１０８により、システムを再起動させるための処理を開始する。つまり、これまでに起動されたプログラムについての所要の終了処理を実行したうえで、メインの電源を一旦切断する。そして、再度、メインの電源を投入して、システムの起動を開始させる。
【００６６】
図４のフローチャートは、上記図３のステップＳ１０８の処理に応じてシステム再起動が開始されたときの処理を示している。
ここでは、先ずステップＳ２０１により、先にも説明したように、起動のための最初の処理として、プログラム起動制御ブロック３１の実行を開始する。
本実施の形態では、プログラム起動制御ブロック３１として、その実行過程における所定の段階で、プログラムメディアエラーフラグ４２の読み込みを実行することとしており、ステップＳ２０２においては、この処理が示されている。このようにして、読み込まれたプログラムメディアエラーフラグ４２のフラグ値ｆは、ｆ＝１となっている。プログラム起動制御ブロック３１を実行するＣＰＵ１６としては、プログラムにエラーが存在し、今回の起動にあたっては、このプログラムのエラーを修復すべきことを認識する。
【００６７】
ステップＳ２０３以降は、プログラムメディアエラーフラグ４２のフラグ値がｆ＝１であったことに対応した、プログラム修復のための処理となる。プログラム修復のためには、修復対象のプログラムが記憶されているＨＤＤ２１にアクセスできるようにする必要がある。そこで、ステップＳ２０３としては、ＨＤＤデバイスの初期化、及びＨＤＤ制御ブロック２０２の初期化を実行する。ＨＤＤデバイスの初期化、及びＨＤＤ制御ブロック２０２の初期化は、前述もしたように、例えばプログラムメディア制御ブロック３７を初期化したうえで、このプログラムメディア制御ブロック３７から命令を与えるようにして実行が促される。
【００６８】
そして、上記ステップＳ２０３によりＨＤＤ２１とのアクセスが可能となると、ステップＳ２０４として示すようにして、プログラムの修復を実行する。
このプログラムの修復としては、次のようにして行う。
前述もしたように、ＨＤＤ対応ブロック１００Ｂにおいて、ＣＰＵ１６が実行するために読み込みが行われるプログラムは、メインプログラムブロック１００Ｂ−１のプログラム（ビデオ／オーディオメディア制御ブロック５１、ユーザインターフェイスブロック５２）である。従って、先の図３のステップＳ１０５の処理に応じてエラーが検出されたプログラムは、このメインプログラムブロック１００Ｂ−１に対応するＨＤＤ２１の記憶領域に記憶されるプログラムであることになる。一方のバックアッププログラムブロック１００Ｂ−２に対応するＨＤＤ２１の記憶領域に記憶されるプログラム（ビデオ／オーディオメディア制御ブロック５１Ａ、ユーザインターフェイスブロック５２Ａ）は、バックアップ用とされて通常は読み込みが行われないもので、メインプログラムブロック１００Ｂ−１に記録されるプログラムが正常である場合と同一とされる内容を有している。
そこで、ステップＳ２０４のプログラム修復のための処理としては、バックアッププログラムブロック１００Ｂ−２としてのＨＤＤ２１の記憶領域に記憶されるプログラムのデータを、メインプログラムブロック１００Ｂ−１としてのＨＤＤ２１の記憶領域に対して上書きコピーするようにして書き込みを行う。これにより、エラー部分を有していた元のメインプログラムブロック１００Ｂ−１のプログラム（ビデオ／オーディオメディア制御ブロック５１、ユーザインターフェイスブロック５２）は、バックアッププログラムブロック１００Ｂ−２のプログラム（ビデオ／オーディオメディア制御ブロック５１Ａ、ユーザインターフェイスブロック５２Ａ）の内容を有するようにして書き換えが行われることになる。また、このときに、ディフェクトの物理的記憶領域（セクタ）が存在している場合には、このディフェクトの領域を避けるようにして、プログラムのデータの上書きコピーの処理が実行される。
このようにして、ステップＳ２０４の処理が実行されることで、メインプログラムブロック１００Ｂ−１としてのＨＤＤ２１の記憶領域に記憶されているものとしてのプログラムのデータ（ビデオ／オーディオメディア制御ブロック５１、ユーザインターフェイスブロック５２）は、正常に読み込みが行われるようにして復元されたことになる。
【００６９】
このようにして、本実施の形態において、プログラム修復の処理は、プログラム起動制御ブロック３１として実現される処理とされる。プログラム起動制御ブロック３１は、起動時において最初に実行されるプログラムのブロックであることから、この段階においてプログラムの修復を行っておけば、以降の起動処理によっては、復元されたプログラムを初期化して正常に実行させることができるために、効率的であり、また、安定した動作を期待できるからである。
【００７０】
そして、ステップＳ２０５においては、このプログラム起動制御ブロック３１による残りの処理を実行することになる。このステップＳ２０５としてのプログラム起動制御ブロック３１による処理が終了したとされると、以降、先に説明したようにして、図２に示した他の機能プログラムが順次起動されていくこととなって、最終的に起動が完了するものである。そして、この段階では、メインプログラムブロック１００Ｂ−１のプログラム（ビデオ／オーディオメディア制御ブロック５１、ユーザインターフェイスブロック５２）は修復されているものであり、以降においては、このプログラムは正常に実行されることになる。また、プログラムメディアエラーフラグ４２についても、例えば初期化の過程において、プログラムメディアエラー修復ブロック４１が初期化されるのに伴って初期化され、エラーが検出されないことを示すフラグ値がセットされる。
【００７１】
ところで、上記ステップＳ２０４としてのプログラム修復の処理は、メインプログラムブロック１００Ｂ−１としての記憶領域に対して、バックアッププログラムブロック１００Ｂ−２としての記憶領域に記憶されるプログラムのデータを一括的に上書きコピーするような手順として説明している。しかしながら、先に説明したように、プログラムメディアエラーフラグ４２のフラグ値ｆについて、エラーとなったプログラムのブロック種別、さらにはプログラムのブロック種別内におけるエラーとなったデータ部分、また、エラーの症状に対応した内容なども示されるような構造とすれば、このような内容に適応して、例えばエラーとなったプログラムのブロックのみを対象として上書きコピーするようにして修復を行ったり、さらには、エラーとなったプログラムのデータ部分を含む一部プログラムデータのみを対象として上書きコピーをして修復を行うようにすることも可能となる。この場合には、上書きコピーすべきデータサイズが小さくなることから、修復に要する時間が短縮されるなどの効率面での効果が得られる。
【００７２】
ところで、本発明の概念の下では、保護対象プログラムを、どのような機能のプログラムとするのかについては、特に限定されるべきではないが、上記実施の形態としては、下記のようなことを考慮して、保護対象データをビデオ／オーディオメディア制御ブロック５１、及びユーザインターフェイスブロック５２としている。
ここで、本実施の形態の放送受信録画装置１においてプログラムが記憶されるフラッシュメモリ１９と、ＨＤＤ２１と比較してみると、一般的なこととして、ビット単価については、フラッシュメモリのほうが、ＨＤＤに対して相当に高くなる。一方、デバイスとしての初期化時間はフラッシュメモリのほうが相当に短いものとなる。フラッシュメモリは、例えば電源供給が開始されて通電が行われれば、アクセスが可能な状態に即座に遷移できる。つまり、初期化が高速に完了する。また、読み出しは静的なものであるので、アクセスに要する時間も短い。これに対してＨＤＤは、電源供給が停止の状態から電源供給を開始したとすると、初期化として先ず、いわゆるスピンアップなどといわれる、ディスクを回転始動させて、正常なアクセスが可能となる回転速度範囲となる状態にまで遷移させる必要がある。このようなスピンアップを伴う初期化だけで、10秒程度を要する。また、初期化が完了してアクセス可能な状態に至ったとしても、ＨＤＤは、物理的に磁気ヘッドを駆動してランダムアクセスを行うことから、例えば単位サイズあたりのデータの読み出し／書き込みに要する時間は、フラッシュメモリに対して長くなる。
【００７３】
また、現状においては、電子機器を制御するプログラムは、大規模になって肥大化する傾向にある。本実施の形態の放送受信録画装置１のようにして、デジタルテレビジョン放送を受信録画するような機器についても、近年では、デジタルのビデオ／オーディオ信号を扱い、また、高度なＧＵＩを提供できるようにすることなどを目的として、プログラムが大規模化してデータサイズも大きくなっている。このために、本実施の形態の放送受信録画装置１の実際としては、ビデオ／オーディオメディア制御ブロック５１、及びユーザインターフェイスブロック５２などは、特にプログラムとしてのデータサイズが大きい。
【００７４】
上記のようにして、比較的総合的なサイズの大きなプログラムのデータを、例えばフラッシュメモリに全て記憶させることとすると、先に述べたビット単価が高いことで、フラッシュメモリの容量を多くすることになり、コストが非常に高くなってしまう。一方、プログラムのデータをＨＤＤに全て記憶させることとすれば、コストについては問題は特になくなるが、起動が著しく遅くなる。
【００７５】
このようなことを考慮して、本実施の形態の放送受信録画装置１では、プログラムについて、フラッシュメモリ１９とＨＤＤ２１とに分散して記憶させることで、コストと起動時間短縮化とのバランスを図っている。このとき、ＨＤＤ２１には、ビデオ／オーディオメディア制御ブロック５１、ユーザインターフェイスブロック５２など、比較的容量の大きいブロックとなる機能プログラムのデータを記憶させ、フラッシュメモリ１９には、プログラム起動制御ブロック３１をはじめとした起動に最小限必要なプログラムや、そのほかの所定機能に対応するプログラムとして、データ容量の小さなものさせることで、上記したコストと起動時間短縮化のバランスを良好に得ることができる。また、ビット単価の低いＨＤＤであれば、本実施の形態のメインプログラムブロック１００Ｂ−１とバックアッププログラムブロック１００Ｂ−２のようにして、データ保護のために、データを多重書きさせるようにして記憶させることも容易に実現できる。また、多重書きを何回行うこととするのかについても、本実施の形態では2回となっているが、これより多い多重書きの回数としてもよいものであり、多重書きの回数が多いほど、正常な状態のバックアッププログラムが残る可能性が高くなるのでデータ保護の信頼性は高くなる。
【００７６】
そのうえで、記憶媒体の特質からみると、ＨＤＤとフラッシュメモリとでは、記憶されるデータが破壊される可能性はＨＤＤが高い。そこで、本実施の形態では、ＨＤＤ２１に記憶されるプログラムである、ビデオ／オーディオメディア制御ブロック５１及びユーザインターフェイスブロック５２のデータを保護対象データとしているものである。そして、保護用プログラム（プログラムメディアエラー検出ブロック４０、プログラムメディアエラー修復ブロック４１）については、フラッシュメモリ１９に記憶させることとしている。つまり、本実施の形態では、データ破壊の可能性が高い方の記憶媒体に記憶されるプログラムを保護対象として、保護用プログラムについては、データ破壊の可能性の低いほうの記憶媒体に記憶させることで、より信頼性の高いエラー修復機能を目指すものである。
【００７７】
また、実施の形態では、上記のように、保護対象プログラムをＨＤＤ２１に記憶させ、保護用プログラムをフラッシュメモリに記憶させることとしているのであるが、本発明としては、これとは逆の関係により、フラッシュメモリに記憶される所定のプログラムを保護対象データとして、保護用プログラムをＨＤＤに記憶する構成としてもよい。この構成であっても、ＨＤＤとフラッシュメモリとでそれぞれ異なるとされる記憶手段に対して、保護対象プログラムと保護用プログラムとが分散して記憶されることから、同一の記憶手段に保護対象プログラムと保護用プログラムを記憶させる場合よりも、保護修復機能としては、信頼性が高くなるからである。
【００７８】
また、本願発明での記憶手段は、上記フラッシュメモリとＨＤＤの組み合わせのようにして、それぞれ異なる種類とされてもよいが、ドライブデバイスや半導体部品などとして、それぞれ個別の部品となる場合には、例えばＨＤＤ同士、フラッシュメモリ同士、などのようにして、同じ種類の記憶媒体とされてもよい。
また、保護対象プログラムが記憶される第1の記憶媒体と、保護用プログラムが記憶される第２の記憶媒体のそれぞれは、1つの部品、デバイスに限定されるものではなく、複数の部品、デバイスであってもよい。例えば、半導体部品としてのフラッシュメモリを2つ備え、一方に、保護用データとして検出プログラムを記憶させ、他方に保護用データとして修復プログラムを記憶させてよい。また、２つのデバイスとしてのＨＤＤのそれぞれに、保護対象プログラムを分散して記憶させてよい。
また、本願発明における第1の記憶媒体、第２の記憶媒体として実際に採用すべき記憶媒体、記憶デバイスの種類としては、ＨＤＤ、フラッシュメモリ以外とされてよい。
また、プログラムメディアエラー修復ブロック４１により実行されるプログラム修復の手順としても、先に説明したものに限定されず、他にも考えられるものである。例えば、プログラム修復のアルゴリズムによっては、保護対象プログラムのデータを多重書きする必要がない場合もあると考えられる。
【００７９】
また、実施の形態では、本願発明の情報処理装置を、テレビジョン放送を受信してＨＤＤ、ＤＶＤに録画可能な放送受信録画装置としているが、これに限定されるべきものではなく、プログラムを実装する機器であれば、全般的に適用できる。
【図面の簡単な説明】
【００８０】
【図１】本発明の実施の形態としての放送受信録画装置の構成例を示すブロック図である。
【図２】実施の形態の放送受信録画装置のプログラム構成を模式的に示す図である。
【図３】実施の形態の放送受信録画装置において実行されるプログラム修復に関連する処理を示すフローチャートである。
【図４】実施の形態の放送受信録画装置において実行されるプログラム修復に関連する処理を示すフローチャートである。
【符号の説明】
【００８１】
１  放送受信録画装置、１０  アンテナ、１１  チューナ、１２  復調器、１３  デマルチプレクサ、１４  ビデオデコーダ、１５  オーディオデコーダ、１６  ＣＰＵ、１７  ＲＡＭ、１８  ＲＯＭ、１９  フラッシュメモリ、２０  ＤＶＤドライブ、２１  ＨＤＤ、２２  バス、２３  操作部、２５  ＤＶＤ、２６  ディスプレイ、２７  スピーカ、３１  プログラム起動制御ブロック、３２  チューナ制御ブロック、３３  ビデオ／オーディオストリーム論理フォーマット制御ブロック、３４  ビデオ／オーディオストリーム出力制御ブロック、３５  ビデオインターフェイス、３６  オーディオインターフェイス、４０  プログラムメディアエラー検出ブロック、４１  プログラムメディアエラー修復ブロック、５１  ビデオ／オーディオメディア制御ブロック、５２  ユーザインターフェイスブロック、１００  ＣＰＵブロック、１００Ａ  フラッシュメモリ対応ブロック、１００Ｂ  ＨＤＤ対応ブロック、２００  ＨＤＤデバイスブロック、２０１  ＨＤＤ通信インターフェイス、２０２  ＨＤＤ制御ブロック、３００  ＤＶＤデバイスブロック、３０１  ＤＶＤ通信インターフェイス、３０２  ＤＶＤ制御ブロック
【図１】
2006344060.tif 000003
【図２】
2006344060.tif 000004
【図３】
2006344060.tif 000005
【図４】
2006344060.tif 000006