(57)【要約】【課題】ＤＶＤレコーダが搭載するＭＰＥＧ符号化及び復号化装置をなすシステムＬＳＩを電源投入後に初期化する場合等に使用して好適なＬＳＩ初期化方法を提供する。【解決手段】ファームウェア２１にユーザ固有の設定データを含む設定テーブル２２を追加した初期化ソフトウェアを使用してシステムＬＳＩ５を初期化する。設定テーブル２２は、設定テーブル２２の開始位置を示すコード（ＫＷＤ）が記述された設定テーブル開始コード部２７と、設定項目数が記述された設定項目数部２８と、パラメータＩＤが記述されたパラメータＩＤ部２９−１、２９−２と、設定値が記述された設定値部３０−１、３０−２を有する。【選択図】          図１
2006092383.tif 000002
【特許請求の範囲】
【請求項１】
ファームウェアが提供されるＬＳＩを初期化するＬＳＩ初期化方法であって、
前記ファームウェアにユーザ固有の設定データを含む設定テーブルを追加した初期化ソフトウェアを使用して前記ＬＳＩを初期化することを特徴とするＬＳＩ初期化方法。
【請求項２】
前記設定テーブルは、前記ファームウェアと識別するための開始コードを有することを特徴とする請求項１記載のＬＳＩ初期化方法。
【請求項３】
前記設定テーブルは、開始アドレスが記述された開始アドレス部と終了アドレスが記述された終了アドレス部を有することを特徴とする請求項２記載のＬＳＩ初期化方法。
【請求項４】
前記設定テーブルは、設定データの位置を示す設定データフラグを有することを特徴とする請求項３記載のＬＳＩ初期化方法。
【請求項５】
前記設定テーブルは、選択して使用される複数の設定データ組を有することを特徴とする請求項４記載のＬＳＩ初期化方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ＤＶＤ（digital video disc）レコーダが搭載するＭＰＥＧ（moving picture experts group）符号化及び復号化装置をなすシステムＬＳＩ（large scale integrated circuit）を電源投入後に初期化する場合等、一定のシステムが使用するＬＳＩを初期化する場合に使用されるＬＳＩ初期化方法に関する。
【背景技術】
【０００２】
図１１はＭＰＥＧ符号化及び復号化装置をなすシステムＬＳＩを搭載するシステム（例えば、ＤＶＤレコーダ）の一例の要部を示すブロック回路図である。図１１中、１はシステムバス、２はホストＣＰＵ（central processing unit）、３はホストＣＰＵ２が使用するＲＡＭ（random access memory）、４はファームウェア等が格納されたＲＯＭ（read only memory）、５はＭＰＥＧ符号化及び復号化装置をなすシステムＬＳＩ、６はシステムＬＳＩ５が管理するＤＲＡＭ（dynamic RAM）、７はシステムＬＳＩ５が生成するＭＰＥＧストリームを記憶させるためのハードディスク装置である。
【０００３】
また、システムＬＳＩ５において、８は内部バス、９はホストＣＰＵ２等との間のインタフェースをなすホストインタフェース、１０はＭＰＵ（microprocessing unit）、１１はブートプログラムを格納するブートＲＯＭ、１２はＤＲＡＭ６の制御を行うメモリコントローラ、１３はＧＰＩＯ（general purpose input output）回路、１４は外部（例えば、テレビ・チューナ）から与えられる映像・音声信号をエンコードしてＭＰＥＧストリームを生成するＭＰＥＧエンコーダ、１５はハードディスク装置７との間のインタフェースをなすＨＤＤ（hard disk drive）インタフェース、１６はＭＰＥＧストリームをデコードして映像・音声信号を出力するＭＰＥＧデコーダである。
【０００４】
システムＬＳＩ５は、外部から入力される映像・音声信号をＭＰＥＧエンコーダ１４でＭＰＥＧストリームにエンコードしてハードディスク装置７内のハードディスクに記憶し、また、ハードディスク装置７内のハードディスクに記憶したＭＰＥＧストリームをＭＰＥＧデコーダ１６でデコードして外部に映像・音声信号を出力する等の動作を行うものである。
【０００５】
ここに、例えば、図１１に示すシステムのように、ＭＰＵ１０を内蔵するシステムＬＳＩ５を使用するシステムにおいては、電源投入後のシステムＬＳＩ５の初期化は、通常、システムＬＳＩベンダが提供するファームウェアにより行われるが、ユーザ固有の初期化が行われる場合もある。但し、ユーザ固有の初期化は、システムＬＳＩベンダのファームウェアによる初期化の後に、ファームウェアによる初期設定値を上書きする方法で行われる。
【０００６】
図１２はシステムＬＳＩベンダが提供するファームウェアの構成例を示す図である。図１２中、１７はファームウェアの開始位置を示すファームウェア開始コード（ＫＷＦ）が記述されているファームウェア開始コード（ＫＷＦ）部、１８はファームウェア内のプログラム本体、即ち、ファームウェアプログラムの開始アドレスが記述されている開始アドレス部、１９はファームウェアプログラムの終了アドレスが記述されている終了アドレス部、２０はファームウェアプログラムが記述されているファームウェアプログラム部である。
【０００７】
図１３は従来のＬＳＩ初期化方法の一例を示す流れ図であり、図１１に示すシステムが搭載しているシステムＬＳＩ５を図１２に示すファームウェアで初期化する場合を例にしている。この例では、電源投入後、システムＬＳＩ５の初期化がスタートすると、まず、ホストＣＰＵ２は、ＲＯＭ４に格納されているファームウェアをシステムＬＳＩ５が管理するＤＲＡＭ６にダウンロードし（ステップＳ１）、これが完了すると、完了通知をＭＰＵ１０に発行する（ステップＳ２）。図１４（Ａ）はファームウェアのＤＲＡＭ６へのダウンロード直後のＤＲＡＭ６のメモリマップを示している。
【０００８】
ＭＰＵ１０は、ホストＣＰＵ２からのファームウェアのＤＲＡＭ６へのダウンロードの完了通知の有無を判断し（ステップＳ３）、完了通知を受けた場合には、ブートＲＯＭ１１が格納するブートプログラムにより、ＤＲＡＭ６にダウンロードされたファームウェアが正しいファームウェアであるか否かを、ファームウェア開始コード（ＫＷＦ）をチェックすることにより判断し、正しいファームウェアの場合には、ファームウェアが指定する開始アドレスから終了アドレスの範囲にファームウェアプログラムをコピーする（ステップＳ４）。図１４（Ｂ）はファームウェアプログラムを開始アドレスから終了アドレスの範囲にコピーした直後のＤＲＡＭ６のメモリマップを示している。
【０００９】
次に、ＭＰＵ１０は、プログラムカウンタをファームウェアプログラムの開始アドレスに書き換え（ステップＳ５）、即ち、プログラム実行アドレスをファームウェアプログラムの開始アドレスに書き換えて、ファームウェアプログラムを実行し、ＭＰＥＧエンコーダ１４やＭＰＥＧデコーダ１６等の各種論理回路のレジスタ等に初期値を設定することにより、システムＬＳＩ５の初期化を行い（ステップＳ６）、これが完了すると、ホストＣＰＵ２に対し、ファームウェアプログラムによるシステムＬＳＩ５の初期化（ブート）の完了を割り込みにより通知し、コマンドが受付可能な状態になったことを知らせる（ステップＳ７）。
【００１０】
ホストＣＰＵ２は、ＭＰＵ１０からのシステムＬＳＩ５の初期化完了通知の有無を判断し（ステップＮ８）、完了通知を受けた場合には、システムＬＳＩ５との通信プロトコルを使用してＭＰＵ１０に対して、システムＬＳＩ５のユーザ固有の初期化のための設定コマンドを発行し、ＭＰＵ１０は、これに応じて、設定コマンドを実行し、システムＬＳＩ５のユーザ固有の初期設定を行なう（ステップＳ９−１〜Ｓ９−ｎ、Ｓ１０−１〜Ｓ１０−ｎ）。そして、ホストＣＰＵ２は、設定コマンドの発行が終了すると、動作開始コマンドをＭＰＵ１０に発行し（ステップＳ１１）、ＭＰＵ１０は、これに応じて、動作開始コマンドを実行する（ステップＳ１２）。
【特許文献１】特開２０００−１８１５７９号公報
【特許文献２】特開平１０−２４７１８７号公報
【発明の開示】
【発明が解決しようとする課題】
【００１１】
図１３に示す従来のＬＳＩ初期化方法によれば、システムＬＳＩ５をユーザ固有の初期設定で初期化する場合には、システムＬＳＩベンダが提供するファームウェアによる初期設定とユーザ固有の設定値による初期設定の２回の初期設定が必要であり、具体的には、システムＬＳＩ５用のファームウェアのＤＲＡＭ６へのダウンロード、外部に接続されるデバイスとのＩ／Ｆの設定、ビットレート等の動作パラメータの設定、動作開始コマンド発行等のステップを踏む必要があった。
【００１２】
ここに、設定コマンドの発行や動作開始コマンドの発行は、ホストＣＰＵ２からＭＰＵ１０に対して、通信プロトコルを使用して何度も繰り返す必要がある。また、例えば、ＭＰＵ１０が設定コマンドを実行している時に、ホストＣＰＵ２が次の設定コマンドを発行すると、設定コマンドを間違ってしまうことがあることから、これを防ぐために、ホストＣＰＵ２が次の設定コマンドを発行できるかどうかをセマフォレジスタを監視することにより確認する必要がある。
【００１３】
また、ＭＰＵ１０は、ホストＣＰＵ２がシステムＬＳＩ５内のＭＰＥＧエンコーダ１４やＭＰＥＧデコーダ１６等の各種論理回路のレジスタに書き込んだ設定コマンド内のパラメータＩＤ及び設定値が正しいかどうかを判断し、正しい場合には、ホストＣＰＵ２との共有メモリ空間にＡＣＫ（acknowledgement）コードを書き込み、間違っていた場合にはＮＡＫ（negative acknowledgement）コードを書き込み、ホストＣＰＵ２に対して、設定コマンド実行結果を伝える必要がある。
【００１４】
このように、図１３に示す従来のＬＳＩ初期化方法は、システムＬＳＩ５のユーザ固有の初期化を行う場合、ホストＣＰＵ２とＭＰＵ１０とで通信プロトコルを使用して初期設定を行うため、初期設定を全て完了するのに時間が掛かっていた。更に、システムＬＳＩ５が高集積化・複雑化するのに伴い、ファームウェアのコードサイズ及び設定項目数が増加し、この点も、初期設定を全て完了するのに時間が掛かる原因となっていた。
【００１５】
ここで、一般に、ファームウェアに含まれるアルゴリズムは非公開とされているので、ファームウェアもユーザには非公開となっているが、ファームウェア開発環境を用意し、ユーザが各自でファームウェアプログラム内部にある初期設定値を書き換えることができるようにすることも技術的には可能だが、このようにすることは、ファームウェア開発環境導入費用が掛かる点や、書き換えられたファームウェアプログラムに対する動作保証をシステムＬＳＩベンダでは行うことができなくなるという問題点があった。
【００１６】
また、ファームウェアの中のアルゴリズムと設定データとを分離することができれば、システムＬＳＩベンダ及びユーザがそれぞれ別々にアルゴリズムと設定データを作成することができる。しかし、それぞれのメモリに占める容量が一定ではないので、アルゴリズムと設定データとの連携は単に分離しただけではできない。したがって、ファームウェアの構成や設定手順を新たに見直す必要が生じていた。
【００１７】
本発明は、かかる点に鑑み、ＬＳＩの初期化に要する時間の短縮化を図ることができ、かつ、ファームウェアを変更することなく、ＬＳＩユーザがシステムに合わせた設定を容易に行うことができるＬＳＩ初期化方法を提供することを目的とする。
【課題を解決するための手段】
【００１８】
本発明は、ファームウェアが提供されるＬＳＩを初期化するＬＳＩ初期化方法であって、前記ファームウェアにユーザ固有の設定データを含む設定テーブルを追加した初期化ソフトウェアを使用して前記ＬＳＩを初期化するというものである。
【発明の効果】
【００１９】
本発明によれば、ファームウェアにユーザ固有の設定データを含む設定テーブルを追加した初期化ソフトウェアを使用して前記ＬＳＩを初期化するとしているので、外部からの初期設定を行なわなくても、前記ＬＳＩの初期設定を行うことができる。したがって、前記ＬＳＩの初期化に要する時間の短縮化を図ることができる。しかも、ファームウェアを変更する必要がないので、ＬＳＩユーザがシステムに合わせた設定を容易に行うことができる。
【発明を実施するための最良の形態】
【００２０】
以下、図１〜図１０を参照して、本発明の第１実施形態、第２実施形態及び第３実施形態について、図１１に示すシステムが搭載しているシステムＬＳＩ５を初期化する場合を例にして説明する。
【００２１】
（第１実施形態）
図１は本発明の第１実施形態で使用する初期化ソフトウェアの構成図である。図１中、２１はシステムＬＳＩ５のベンダがシステムＬＳＩ５の初期化のためにシステムＬＳＩ５のユーザに提供するファームウェア、２２はシステムＬＳＩ５のユーザがユーザ固有の初期化のために使用する設定データを含む設定テーブルである。即ち、本発明の第１実施形態は、ファームウェア２１にユーザ固有の設定データを含む設定テーブル２２を追加した初期化ソフトウェアを使用してシステムＬＳＩ５を初期化するというものである。
【００２２】
ファームウェア２１において、２３はファームウェアの開始位置を示すファームウェア開始コード（ＫＷＦ）が記述されているファームウェア開始コード（ＫＷＦ）部、２４はファームウェア２１内のプログラム本体であるファームウェアプログラムの開始アドレスが記述されている開始アドレス部、２５はファームウェアプログラムの終了アドレスが記述されている終了アドレス部、２６はファームウェアプログラムが記述されているファームウェアプログラム部である。
【００２３】
また、設定テーブル２２において、２７は設定テーブル２２の開始位置を示す設定テーブル開始コード（ＫＷＤ）が記述されている設定テーブル開始コード（ＫＷＤ）部、２８は設定項目数が記述されている設定項目数部、２９−１、２９−２はパラメータＩＤが記述されているパラメータＩＤ部、３０−１、３０−２は設定値が記述されている設定値部である。
【００２４】
図２は本発明の第１実施形態を示す流れ図である。本発明の第１実施形態においては、電源投入後、システムＬＳＩ５の初期化がスタートすると、まず、ホストＣＰＵ２は、ＲＯＭ４に記憶されているファームウェアをシステムＬＳＩ５が管理するＤＲＡＭ６にダウンロードし（ステップＰ１）、これが完了すると、完了通知をＭＰＵ１０に発行する（ステップＰ２）。図３（Ａ）はファームウェアのＤＲＡＭ６へのダウンロード直後のＤＲＡＭ６のメモリマップを示している。
【００２５】
ＭＰＵ１０は、ホストＣＰＵ２からのファームウェアのＤＲＡＭ６へのダウンロードの完了通知の有無を判断し（ステップＰ３）、完了通知を受けた場合には、ブートＲＯＭ１１が格納するブートプログラムにより、ＤＲＡＭ６にダウンロードされたファームウェアが正しいファームウェアであるか否かを、ファームウェア開始コード（ＫＷＦ）をチェックすることにより判断し、正しいファームウェアの場合には、ファームウェアが指定する開始アドレスから終了アドレスの範囲にファームウェアプログラムをコピーする（ステップＰ４）。図３（Ｂ）はファームウェアプログラムを開始アドレスから終了アドレスの範囲にコピーした直後のＤＲＡＭ６のメモリマップを示している。
【００２６】
次に、ＭＰＵ１０は、プログラムカウンタをファームウェアプログラムの開始アドレスに書き換え（ステップＰ５）、即ち、プログラム実行アドレスをファームウェアプログラムの開始アドレスに書き換えて、ファームウェアプログラムを実行し、ＭＰＥＧエンコーダ１４やＭＰＥＧデコーダ１６等の各種論理回路のレジスタ等に初期値を設定することにより、ファームウェアによるシステムＬＳＩ５の初期化を行う（ステップＰ６）。
【００２７】
次に、ＭＰＵ１０は、ファームウェアプログラムにより、ＤＲＡＭ６内のダウンロード領域から設定テーブル開始コード（ＫＷＤ）を検索することにより、設定テーブル２２の先頭アドレスを探し（ステップＰ７）、その次のアドレスの設定項目数部２８から設定項目数を読み取り、更に、順番にパラメータＩＤと設定値を読み取り（ステップＰ８）、設定コマンドを実行する（ステップＰ９）。
【００２８】
そして、ＭＰＵ１０は、設定テーブル２２を使用したユーザ固有の全ての初期設定が完了したか否かを判断し（ステップＰ１０）、完了していない場合には、ステップＰ８、Ｐ９を繰り返し、完了した場合には、設定テーブル２２を使用したユーザ固有の全ての初期設定が完了したことを割り込みによりホストＣＰＵ２に通知する（ステップＰ１１）。
【００２９】
この場合、ＭＰＵ１０は、設定テーブル２２内のパラメータＩＤ及び設定値が正しかったか否かを判断し、正しかった場合には、ホストＣＰＵ２との共有メモリ空間にＡＣＫコードを書き込み、間違っていた場合にはＮＡＫコードを書き込み、ホストＣＰＵ２に対して結果を伝える。この結果から、設定テーブル２２が間違っていたと判断される場合には、ユーザは、間違っていた設定テーブル２２を正しい設定テーブルに修正して組み込むことができる。
【００３０】
ホストＣＰＵ２は、ＭＰＵ１０からのシステムＬＳＩ５の初期設定完了通知の有無を判断し（ステップＰ１２）、完了通知を受けた場合には、動作開始コマンドをＭＰＵ１０に発行し（ステップＰ１３）、ＭＰＵ１０は、これに応じて、動作開始コマンドを実行する（ステップＰ１４）。
【００３１】
以上のように、本発明の第１実施形態によれば、ファームウェア２１にユーザ固有の設定データを含む設定テーブル２２を追加した初期化ソフトウェアを使用してシステムＬＳＩ５を初期化するとしているので、ホストＣＰＵ２によるＭＰＵ１０との通信プロトコルを使用したユーザ固有の初期設定を行なわなくても、ユーザ固有の初期設定を行うことができる。したがって、システムＬＳＩ５の初期化に要する時間の短縮化を図ることができる。しかも、ファームウェア２１を変更する必要がないので、ユーザがシステムに合わせた設定を容易に行うことができる。
【００３２】
また、ＭＰＵ１０は、設定テーブル２２内のパラメータＩＤ及び設定値が正しかったか否かを判断し、正しかった場合には、ホストＣＰＵ２との共有メモリ空間にＡＣＫコードを書き込み、間違っていた場合にはＮＡＫコードを書き込み、ホストＣＰＵ２に対して結果を伝えるようにしているので、初期化に失敗した場合に、システムＬＳＩベンダ側の問題であるか、ユーザが追加した設定データの問題であるかの判断を容易に行うことができる。
【００３３】
（第２実施形態）
図４は本発明の第２実施形態で使用する初期化ソフトウェアの構成図である。図４中、３１はシステムＬＳＩ５のベンダがシステムＬＳＩ５の初期化のためにシステムＬＳＩ５のユーザに提供するファームウェア、３２はシステムＬＳＩ５のユーザがユーザ固有の初期化のために使用する設定データを含む設定テーブルである。即ち、本発明の第２実施形態は、ファームウェア３１にユーザ固有の設定データを含む設定テーブル３２を追加した初期化ソフトウェアを使用してシステムＬＳＩ５を初期化するというものである。
【００３４】
ファームウェア３１において、３３はファームウェアの開始位置を示すファームウェア開始コード（ＫＷＦ）が記述されているファームウェア開始コード（ＫＷＦ）部、３４はファームウェア３１内のプログラム本体であるファームウェアプログラムの開始アドレス（実行アドレス）が記述されている開始アドレス部、３５はファームウェアプログラムの終了アドレスが記述されている終了アドレス部、３６はファームウェアプログラムが記述されているファームウェアプログラム部である。
【００３５】
また、設定テーブル３２において、３７は設定テーブル３２の開始位置を示す設定テーブル開始コード（ＫＷＤ）が記述されている設定テーブル開始コード（ＫＷＤ）部、３８は後述する設定データフラグ以降のデータの開始アドレス（配置アドレス）が記述されている開始アドレス部、３９は後述する設定データフラグ以降のデータの終了アドレスが記述されている終了アドレス部、４０は後述する設定項目数以降のデータの開始位置を示す設定データフラグ（ＫＷＴ）が記述されている設定データフラグ部、４１は設定項目数が記述されている設定項目数部、４２−１、４２−２はパラメータＩＤが記述されているパラメータＩＤ部、４３−１、４３−２は設定値が記述されている設定値部である。
【００３６】
本発明の第２実施形態においては、ブートＲＯＭ１１に記憶されているブートプログラムは、ダウンロードされた初期化ソフトウェア中の設定データフラグ（ＫＷＴ）の次に書かれている開始アドレスと終了アドレスの範囲に、設定テーブル３２中の設定データフラグ（ＫＷＴ）以降のデータをコピーする機能を持っていることを前提としている。なお、設定データフラグ（ＫＷＴ）は、固定のアドレスに配置されるように、ユーザには開始アドレス（配置アドレス）を設定してもらう。
【００３７】
図５は本発明の第２実施形態を示す流れ図である。本発明の第２実施形態においては、電源投入後、システムＬＳＩ５の初期化がスタートすると、まず、ホストＣＰＵ２は、ＲＯＭ４に記憶されているファームウェアをシステムＬＳＩ５が管理するＤＲＡＭ６にダウンロードし（ステップＱ１）、これが完了すると、完了通知をＭＰＵ１０に発行する（ステップＱ２）。図６（Ａ）はファームウェアのＤＲＡＭ６へのダウンロード直後のＤＲＡＭ６のメモリマップを示している。
【００３８】
ＭＰＵ１０は、ホストＣＰＵ２からのファームウェアのＤＲＡＭ６へのダウンロードの完了通知の有無を判断し（ステップＱ３）、完了通知を受けた場合には、ブートＲＯＭ１１が格納するブートプログラムにより、ＤＲＡＭ６にダウンロードされたファームウェアが正しいファームウェアであるか否かを、ファームウェア開始コード（ＫＷＦ）をチェックすることにより判断し、正しいファームウェアの場合には、ファームウェアが指定する開始アドレスから終了アドレスの範囲にファームウェアプログラムをコピーする（ステップＱ４）。
【００３９】
次に、ＭＰＵ１０は、ブートＲＯＭ１１が格納するブートプログラムにより、ＤＲＡＭ６にダウンロードされた設定テーブルが正しい設定テーブルであるか否かを、設定テーブル開始コード（ＫＷＤ）をチェックすることにより判断し、正しい設定テーブルの場合には、設定テーブル３２が指定する開始アドレスから終了アドレスの範囲に設定テーブル３２中の設定データフラグ（ＫＷＴ）以降のデータをコピーする（ステップＱ５）。図６（Ｂ）はＤＲＡＭ６にダウンロードされた設定テーブル３２中の設定データフラグ（ＫＷＴ）以降のデータを開始アドレスから終了アドレスの範囲にコピーした直後のＤＲＡＭ６のメモリマップを示している。
【００４０】
ここに、ファームウェアも設定テーブルも同じ形式にする場合には、ファームウェアプログラム及び設定テーブル３２中の設定データフラグ（ＫＷＴ）以降のデータを任意のアドレスにコピーすることができる。例えば、メモリコピー命令を“0x 012_3456”とすると、ファームウェア開始コード（ＫＷＦ）を“0x d012_3456”、設定データフラグ（ＫＷＴ）を“0x f012_3456”とする場合には、ブートプログラムは、下位２４ビットのコード“0x 012_3456”でメモリコピー命令だと認識して、ファームウェアプログラム及び設定データフラグ（ＫＷＴ）以降のデータを任意のアドレスにコピーする。
【００４１】
次に、ＭＰＵ１０は、プログラムカウンタをファームウェアプログラムの開始アドレスに書き換え（ステップＱ６）、即ち、プログラム実行アドレスをファームウェアプログラムの開始アドレスに書き換えて、ファームウェアプログラムを実行し、ＭＰＥＧエンコーダ１４やＭＰＥＧデコーダ１６等の各種論理回路のレジスタ等に初期値を設定することにより、ファームウェアによるシステムＬＳＩ５の初期化を行う（ステップＱ７）。
【００４２】
次に、ＭＰＵ１０は、ファームウェアプログラムにより、固定アドレスのデータを読み取り、設定テーブル３２が指示する開始アドレス（配置アドレス）に設定データフラグ（ＫＷＴ）が有るか否かをチェックし（ステップＱ８）、無い場合は、初期設定完了通知をホストＣＰＵ２に通知する（ステップＱ１２）。この時、ホストＣＰＵ２との共有メモリ空間を使って、設定テーブル３２が無いというステータスを上げる。設定データフラグ（ＫＷＴ）が有る場合には、ＭＰＵ１０は、その次のアドレスの設定項目数部４１から設定項目数を読み取り、更に、順番にパラメータＩＤと設定値を読み取り（ステップＱ９）、設定コマンドを実行する（ステップＱ１０）。
【００４３】
そして、ＭＰＵ１０は、設定テーブル３２を使用したユーザ固有の全ての初期設定が完了したか否かを判断し（ステップＱ１１）、完了していない場合には、ステップＱ９、Ｑ１０を繰り返し、完了した場合には、設定テーブル３２を使用したユーザ固有の全ての初期設定が完了したことを割り込みによりホストＣＰＵ２に通知する（ステップＱ１２）。
【００４４】
この場合、ＭＰＵ１０は、設定テーブル３２内のパラメータＩＤ及び設定値が正しかったか否かを判断し、正しかった場合には、ホストＣＰＵ２との共有メモリ空間にＡＣＫコードを書き込み、間違っていた場合にはＮＡＫコードを書き込み、ホストＣＰＵ２に対して結果を伝える。この結果から、設定テーブル３２が間違っていたと判断される場合には、ユーザは、間違っていた設定テーブル３２を正しい設定テーブルに修正して組み込むことができる。
【００４５】
ホストＣＰＵ２は、ＭＰＵ１０からのシステムＬＳＩ５の初期設定完了通知の有無を判断し（ステップＱ１３）、完了通知を受けた場合には、動作開始コマンドをＭＰＵ１０に発行し（ステップＱ１４）、ＭＰＵ１０は、これに応じて、動作開始コマンドを実行する（ステップＱ１５）。
【００４６】
以上のように、本発明の第２実施形態によれば、ファームウェア３１にユーザ固有の設定データを含む設定テーブル３２を追加した初期化ソフトウェアを使用してシステムＬＳＩ５を初期化するとしているので、ホストＣＰＵ２によるＭＰＵ１０との通信プロトコルを使用したユーザ固有の初期設定を行なわなくても、ユーザ固有の初期設定を行うことができる。したがって、システムＬＳＩ５の初期化に要する時間の短縮化を図ることができる。しかも、ファームウェア３１を変更する必要がないので、ユーザがシステムに合わせた設定を容易に行うことができる。
【００４７】
また、ＭＰＵ１０は、設定テーブル３２内のパラメータＩＤ及び設定値が正しかったか否かを判断し、正しかった場合には、ホストＣＰＵ２との共有メモリ空間にＡＣＫコードを書き込み、間違っていた場合にはＮＡＫコードを書き込み、ホストＣＰＵ２に対して結果を伝えるようにしているので、初期化に失敗した場合に、システムＬＳＩベンダ側の問題であるか、ユーザが追加した設定データの問題であるかの判断を容易に行うことができる。
【００４８】
（第３実施形態）
図７は本発明の第３実施形態で使用する初期化ソフトウェアの構成図である。図７中、４４はシステムＬＳＩ５のベンダがシステムＬＳＩ５の初期化のためにシステムＬＳＩ５のユーザに提供するファームウェア、４５はシステムＬＳＩ５のユーザがユーザ固有の初期化のために使用する設定データを含む設定テーブルである。即ち、本発明の第３実施形態は、ファームウェア４４にユーザ固有の設定データを含む設定テーブル４５を追加した初期化ソフトウェアを使用してシステムＬＳＩ５を初期化するというものであるが、更に、ＧＰＩＯの状態によりユーザ固有の初期設定を変更できる（例えば、記録モードを長時間モード、標準モード、高画質モードに変更できる）ようにしたものである。
【００４９】
ファームウェア４４において、４６はファームウェアの開始位置を示すファームウェア開始コード（ＫＷＦ）が記述されているファームウェア開始コード（ＫＷＦ）部、４７はファームウェア４４内のプログラム本体であるファームウェアプログラムの開始アドレス（実行アドレス）が記述されている開始アドレス部、４８はファームウェアプログラムの終了アドレスが記述されている終了アドレス部、４９はファームウェアプログラムが記述されているファームウェアプログラム部である。
【００５０】
また、設定テーブル４５において、５０は設定テーブル４５の開始位置を示す設定テーブル開始コード（ＫＷＤ）が記述されている設定テーブル開始コード（ＫＷＤ）部、５１は後述する設定データフラグ以降のデータの開始アドレス（配置アドレス）が記述されている開始アドレス部、５２は後述する設定データフラグ以降のデータの終了アドレスが記述されている終了アドレス部、５３は後述する第１設定データ組コード以降のデータの開始位置を示す設定データフラグ（ＫＷＴ）が記述されている設定データフラグ部である。
【００５１】
５４はＧＰＩＯが、例えば、“００”の場合に選択される設定データの組である第１設定データ組の開始位置を示す第１設定データ組コード（ＫＷＧ１）が記述されている第１設定データ組コード部、５５は第１設定データ組における設定項目数が記述されている設定項目数部、５６−１、５６−２は第１設定データ組におけるパラメータＩＤが記述されているパラメータＩＤ部、５７−１、５７−２は第１設定データ組における設定値が記述されている設定値部である。
【００５２】
５８はＧＰＩＯが、例えば、“０１”の場合に選択される設定データの組である第２設定データ組の開始位置を示す第２設定データ組コード（ＫＷＧ２）が記述されている第２設定データ組コード部、５９は第２設定データ組における設定項目数が記述されている設定項目数部、６０−１、６０−２は第２設定データ組におけるパラメータＩＤが記述されているパラメータＩＤ部、６１−１、６１−２は第２設定データ組における設定値が記述されている設定値部である。
【００５３】
６２はＧＰＩＯが、例えば、“１０”の場合に選択される設定データの組である第３設定データ組の開始位置を示す第３設定データ組コード（ＫＷＧ３）が記述されている第３設定データ組コード部、６３は第３設定データ組における設定項目数が記述されている設定項目数部、６４−１、６４−２は第３設定データ組におけるパラメータＩＤが記述されているパラメータＩＤ部、６５−１、６５−２は第３設定データ組における設定値が記述されている設定値部である。
【００５４】
６６はＧＰＩＯが、例えば、“１１”の場合に選択される設定データの組である第４設定データ組の開始位置を示す第４設定データ組コード（ＫＷＧ４）が記述されている第４設定データ組コード部、６７は第４設定データ組における設定項目数が記述されている設定項目数部、６８−１、６８−２は第４設定データ組におけるパラメータＩＤが記述されているパラメータＩＤ部、６９−１、６９−２は第４設定データ組における設定値が記述されている設定値部である。
【００５５】
ここに、第１設定データ組、第２設定データ組、第３設定データ組、第４設定データ組は、それぞれ、設定項目数、パラメータＩＤ、設定値のデータを有しているので、実質的には、それぞれが１個の設定テーブルであり、本発明の第３実施形態では、設定テーブル４５は、実質的には、４個の設定テーブルを有していると言える。
【００５６】
また、本発明の第３実施形態においては、ブートＲＯＭ１１に記憶されているブートプログラムは、ダウンロードされた初期化ソフトウェア中の設定データフラグ（ＫＷＴ）の次に書かれている開始アドレスと終了アドレスの範囲に、設定テーブル４５中の設定データフラグ（ＫＷＴ）以降のデータをコピーする機能を持っていることを前提としている。なお、設定データフラグ（ＫＷＴ）は、固定のアドレスに配置されるように、ユーザには開始アドレス（配置アドレス）を設定してもらう。
【００５７】
図８及び図９は本発明の第３実施形態を示す流れ図である。本発明の第３実施形態においては、電源投入後、システムＬＳＩ５の初期化がスタートすると、まず、ホストＣＰＵ２は、ＲＯＭ４に記憶されているファームウェアをシステムＬＳＩ５が管理するＤＲＡＭ６にダウンロードし（ステップＮ１）、これが完了すると、完了通知をＭＰＵ１０に発行する（ステップＮ２）。図１０（Ａ）はファームウェアのＤＲＡＭ６へのダウンロード直後のＤＲＡＭ６のメモリマップを示している。
【００５８】
ＭＰＵ１０は、ホストＣＰＵ２からのファームウェアのＤＲＡＭ６へのダウンロードの完了通知の有無を判断し（ステップＮ３）、完了通知を受けた場合には、ブートＲＯＭ１１が格納するブートプログラムにより、ＤＲＡＭ６にダウンロードされたファームウェアが正しいファームウェアであるか否かを、ファームウェア開始コード（ＫＷＦ）をチェックすることにより判断し、正しいファームウェアの場合には、ファームウェアが指定する開始アドレスから終了アドレスの範囲にファームウェアプログラムをコピーする（ステップＮ４）。
【００５９】
次に、ＭＰＵ１０は、ブートＲＯＭ１１が格納するブートプログラムにより、ＤＲＡＭ６にダウンロードされた設定テーブルが正しい設定テーブルであるか否かを、設定テーブル内の設定テーブル開始コード（ＫＷＤ）をチェックすることにより判断し、正しい設定テーブルの場合には、設定テーブルが指定する開始アドレスから終了アドレスの範囲に設定データフラグ（ＫＷＴ）以降のデータをコピーする（ステップＮ５）。図１０（Ｂ）はＤＲＡＭ６にダウンロードされた設定データフラグ（ＫＷＴ）以降のデータを開始アドレスから終了アドレスの範囲にコピーした直後のＤＲＡＭ６のメモリマップを示している。
【００６０】
次に、ＭＰＵ１０は、プログラムカウンタをファームウェアプログラムの開始アドレスに書き換え（ステップＮ６）、即ち、プログラム実行アドレスをファームウェアプログラムの開始アドレスに書き換えて、ファームウェアプログラムを実行し、ＭＰＥＧエンコーダ１４やＭＰＥＧデコーダ１６等の各種論理回路のレジスタ等に初期値を設定することにより、ファームウェアによるシステムＬＳＩ５の初期化を行う（ステップＮ７）。
【００６１】
次に、ＭＰＵ１０は、ファームウェアプログラムにより、固定アドレスのデータを読み取り、設定テーブル４５が指示する開始アドレス（配置アドレス）に設定データフラグ（ＫＷＴ）が有るか否かをチェックし（ステップＮ８）、無い場合は、初期設定完了通知をホストＣＰＵ２に通知する（ステップＮ１９）。この時、ホストＣＰＵ２との共有メモリ空間を使って、設定テーブル４５が無いというステータスを上げる。
【００６２】
設定データフラグ（ＫＷＴ）がある場合には、ＭＰＵ１０は、ＧＰＩＯが“００”であるか否かを判断し（ステップＮ９）、ＧＰＩＯが“００”である場合には、配置アドレスから第１設定データ組コード（ＫＷＧ１）のアドレスを検索し（ステップＮ１０）、第１設定データ組から設定項目数を読み取り、更に、順番にパラメータＩＤと設定値を読み取り（ステップＮ１６）、設定コマンドを実行する（ステップＮ１７）。
【００６３】
ＧＰＩＯが“００”でない場合には、ＭＰＵ１０は、ＧＰＩＯが“０１”であるか否かを判断し（ステップＮ１１）、ＧＰＩＯが“０１”である場合には、配置アドレスから第２設定データ組コード（ＫＷＧ２）のアドレスを検索し（ステップＮ１２）、第２設定データ組から設定項目数を読み取り、更に、順番にパラメータＩＤと設定値を読み取り（ステップＮ１６）、設定コマンドを実行する（ステップＮ１７）。
【００６４】
ＧＰＩＯが“０１”でない場合には、ＭＰＵ１０は、ＧＰＩＯが“１０”であるか否かを判断し（ステップＮ１３）、ＧＰＩＯが“１０”である場合には、配置アドレスから第３設定データ組コード（ＫＷＧ３）のアドレスを検索し（ステップＮ１４）、第３設定データ組から設定項目数を読み取り、更に、順番にパラメータＩＤと設定値を読み取り（ステップＮ１６）、設定コマンドを実行する（ステップＮ１７）。
【００６５】
ＧＰＩＯが“１０”でない場合には、ＭＰＵ１０は、配置アドレスから第４設定データ組コード（ＫＷＧ４）のアドレスを検索し（ステップＮ１５）、第４設定データ組から設定項目数を読み取り、更に、順番にパラメータＩＤと設定値を読み取り（ステップＮ１６）、設定コマンドを実行する（ステップＮ１７）。
【００６６】
そして、ＭＰＵ１０は、設定テーブル４５を使用したユーザ固有の全ての初期設定が完了したか否かを判断し（ステップＮ１８）、完了していない場合には、ステップＮ１６、Ｎ１７を繰り返し、完了した場合には、設定テーブル４５を使用したユーザ固有の全ての初期設定が完了したことを割り込みによりホストＣＰＵ２に通知する（ステップＮ１９）。
【００６７】
この場合、ＭＰＵ１０は、設定テーブル４５内のパラメータＩＤ及び設定値が正しかったか否かを判断し、正しかった場合には、ホストＣＰＵ２との共有メモリ空間にＡＣＫコードを書き込み、間違っていた場合にはＮＡＫコードを書き込み、ホストＣＰＵ２に対して結果を伝える。この結果から、設定テーブル４５が間違っていたと判断される場合には、ユーザは、間違っていた設定テーブル４５を正しい設定テーブルに修正して組み込むことができる。
【００６８】
ホストＣＰＵ２は、ＭＰＵ１０からのシステムＬＳＩ５の初期設定完了通知の有無を判断し（ステップＮ２０）、完了通知を受けた場合には、動作開始コマンドをＭＰＵ１０に発行し（ステップＮ２１）、ＭＰＵ１０は、これに応じて、動作開始コマンドを実行する（ステップＮ２２）。
【００６９】
以上のように、本発明の第３実施形態によれば、ファームウェア４４にユーザ固有の設定データを含む設定テーブル４５を追加した初期化ソフトウェアを使用してシステムＬＳＩ５を初期化するとしているので、ホストＣＰＵ２によるＭＰＵ１０との通信プロトコルを使用したユーザ固有の初期設定を行なわなくても、ユーザ固有の初期設定を行うことができる。したがって、システムＬＳＩ５の初期化に要する時間の短縮化を図ることができる。しかも、ファームウェア４４を変更する必要がないので、ユーザがシステムに合わせた設定を容易に行うことができる。
【００７０】
また、ＭＰＵ１０は、設定テーブル４５内のパラメータＩＤ及び設定値が正しかったか否かを判断し、正しかった場合には、ホストＣＰＵ２との共有メモリ空間にＡＣＫコードを書き込み、間違っていた場合にはＮＡＫコードを書き込み、ホストＣＰＵ２に対して結果を伝えるようにしているので、初期化に失敗した場合に、システムＬＳＩベンダ側の問題であるか、ユーザが追加した設定データの問題であるかの判断を容易に行うことができる。更に、ＧＰＩＯの状態により、ユーザ固有の初期設定を変更することができる。例えば、記録モードを長時間モード、標準モード、高画質モードに変更することができる。
【００７１】
なお、特許文献１には、ソフトウェア的に設定値を変更することでリブートを実施するだけで設定値の変更を可能とする技術が開示され、特許文献２には、周辺装置の割り当てアドレスに変更が生じても、直ちに対応できる１チップマイコンが開示されているが、これら特許文献１、２には、ＬＳＩの初期化に要する時間の短縮化を図ることができ、かつ、ファームウェアを変更することなく、ＬＳＩユーザがシステムに合わせた設定を容易に行うことができるＬＳＩ初期化方法を示唆する記載は存在していない。
【００７２】
ここで、本発明のＬＳＩ初期化方法を整理すると、本発明のＬＳＩ初期化方法には、少なくとも、以下のＬＳＩ初期化方法が含まれる。
【００７３】
（付記１）  ファームウェアが提供されるＬＳＩを初期化するＬＳＩ初期化方法であって、前記ファームウェアにユーザ固有の設定データを含む設定テーブルを追加した初期化ソフトウェアを使用して前記ＬＳＩを初期化することを特徴とするＬＳＩ初期化方法。
【００７４】
（付記２）  前記設定テーブルは、前記ファームウェアと識別するための開始コードを有することを特徴とする付記１記載のＬＳＩ初期化方法。
【００７５】
（付記３）  前記設定テーブルは、開始アドレスが記述された開始アドレス部と終了アドレスが記述された終了アドレス部を有することを特徴とする付記２記載のＬＳＩ初期化方法。
【００７６】
（付記４）  前記設定テーブルは、設定データの位置を示す設定データフラグを有することを特徴とする付記３記載のＬＳＩ初期化方法。
【００７７】
（付記５）  前記設定テーブルは、選択して使用される複数の設定データ組を有することを特徴とする付記４記載のＬＳＩ初期化方法。
【００７８】
（付記６）  前記設定テーブルは、前記複数の設定データ組の各々の位置を示す設定データ組コードを有することを特徴とする付記５記載のＬＳＩ初期化方法。
【００７９】
（付記７）  前記初期化ソフトウェアを前記ＬＳＩ側の記憶領域にダウンロードする工程と、前記ファームウェア内のプログラムを前記ファームウェアに記述された開始アドレスから終了アドレスの範囲にコピーする工程と、前記ファームウェア内のプログラムを実行する工程と、前記設定テーブル内の設定データを読み込んで設定コマンドを実行する工程を有することを特徴とする付記１又は２記載のＬＳＩ初期化方法。
【００８０】
（付記８）  前記設定テーブルの開始アドレスに前記設定テーブルの開始コードがあるか否かを判断し、無い場合には、その結果を外部制御装置に通信する工程を有することを特徴とする付記７記載のＬＳＩ初期化方法。
【００８１】
（付記９）  前記初期化ソフトウェアを前記ＬＳＩ側の記憶領域にダウンロードする工程と、前記ファームウェア内のプログラムを前記ファームウェアに記述された開始アドレスから終了アドレスの範囲にコピーする工程と、前記設定テーブル内の設定データを前記設定テーブルに記述された開始アドレスから終了アドレスの範囲にコピーする工程と、前記ファームウェア内のプログラムを実行する工程と、前記設定テーブル内の設定データを読み込んで設定コマンドを実行する工程を有することを特徴とする付記３又は４記載のＬＳＩ初期化方法。
【００８２】
（付記１０）  前記初期化ソフトウェアを前記ＬＳＩ側の記憶領域にダウンロードする工程と、前記ファームウェア内のプログラムを前記ファームウェアに記述された開始アドレスから終了アドレスの範囲にコピーする工程と、前記設定テーブル内の設定データを前記設定テーブルに記述された開始アドレスから終了アドレスの範囲にコピーする工程と、前記ファームウェア内のプログラムを実行する工程と、前記複数の設定データ組の中から選択した一の設定データ組内の設定データを読み込んで設定コマンドを実行する工程を有することを特徴とする付記５又は６記載のＬＳＩ初期化方法。
【００８３】
（付記１１）  前記複数の設定テーブルの中からの一の設定データ組の選択は、前記ＬＳＩが使用されているシステムが有する汎用入出力端子の状態に応じて行われることを特徴とする付記１０記載のＬＳＩ初期化方法。
【００８４】
（付記１２）  前記ファームウェアの開始コードと前記設定テーブルの開始コードは、同一形式で記述され、前記ファームウェアの開始コードと前記設定テーブルの開始コードには、メモリコピー命令が含まれていることを特徴とする付記９、１０又は１１記載のＬＳＩ初期化方法。
【００８５】
（付記１３）  前記設定テーブルの開始アドレスに前記設定データフラグがあるか否かを判断し、無い場合には、その結果を外部制御装置に通信する工程を有することを特徴とする付記９、１０、１１又は１２記載のＬＳＩ初期化方法。
【図面の簡単な説明】
【００８６】
【図１】本発明の第１実施形態で使用する初期化ソフトウェアの構成図である。
【図２】本発明の第１実施形態を示す流れ図である。
【図３】本発明の第１実施形態を実行した場合のＤＲＡＭのメモリマップである。
【図４】本発明の第２実施形態で使用する初期化ソフトウェアの構成図である。
【図５】本発明の第２実施形態を示す流れ図である。
【図６】本発明の第２実施形態を実行した場合のＤＲＡＭのメモリマップを示す図である。
【図７】本発明の第３実施形態で使用する初期化ソフトウェアの構成図である。
【図８】本発明の第３実施形態を示す流れ図である。
【図９】本発明の第３実施形態を示す流れ図である。
【図１０】本発明の第３実施形態を実行した場合のＤＲＡＭのメモリマップを示す図である。
【図１１】ＭＰＥＧ符号化及び復号化装置をなすシステムＬＳＩを搭載するシステムの一例の要部を示すブロック回路図である。
【図１２】システムＬＳＩベンダが提供するファームウェアの構成例を示す図である。
【図１３】従来のＬＳＩ初期化方法の一例を示す流れ図である。
【図１４】図１１に示すシステムが備えるＤＲＡＭのメモリマップを示す図である。
【符号の説明】
【００８７】
１…システムバス
２…ホストＣＰＵ
３…ＲＡＭ
４…ＲＯＭ
５…システムＬＳＩ
６…ＤＲＡＭ
７…ハードディスク装置
８…内部バス
９…ホストインタフェース
１０…ＭＰＵ
１１…ブートＲＯＭ
１２…メモリコントローラ
１３…ＧＰＩＯ回路
１４…ＭＰＥＧエンコーダ
１５…ＨＤＤインタフェース
１６…ＭＰＥＧデコーダ
２１、３１、４４…ファームウェア
２２、３２、４５…設定テーブル
【図１】
2006092383.tif 000003
【図２】
2006092383.tif 000004
【図３】
2006092383.tif 000005
【図４】
2006092383.tif 000006
【図５】
2006092383.tif 000007
【図６】
2006092383.tif 000008
【図７】
2006092383.tif 000009
【図８】
2006092383.tif 000010
【図９】
2006092383.tif 000011
【図１０】
2006092383.tif 000012
【図１１】
2006092383.tif 000013
【図１２】
2006092383.tif 000014
【図１３】
2006092383.tif 000015
【図１４】
2006092383.tif 000016