(57)【特許請求の範囲】
【請求項１】
制御ＣＰＵと、
処理対象のデータを含む入力ストリームを受け取りメモリに転送するストリームインタフェース
を含み、該ストリームインタフェースによりファームウェアを含むストリームデータを受け取り該メモリに格納するダウンロード処理を該制御ＣＰＵの指示により実行すると共に、該メモリに格納された該ストリームデータを該制御ＣＰＵが解析することにより該ファームウェアをメモリ空間に展開し、該メモリ空間に展開された該ファームウェアを該制御ＣＰＵが実行することにより該処理対象のデータに対する処理を実行し、
前記ストリームインタフェースは前記処理対象のデータを含む入力ストリームを受け取った際に同期検出する機能を含み、前記制御ＣＰＵは、前記ダウンロード処理の実行を指示する前に該同期検出機能が無効になるように該ストリームインタフェースを設定する
ことを特徴とする情報処理システム。
【請求項２】
制御ＣＰＵと、
処理対象のデータを含む入力ストリームを受け取りメモリに転送するストリームインタフェースと、
ホスト装置と接続されるシリアルインタフェース
を含み、該ストリームインタフェースによりファームウェアを含むストリームデータを受け取り該メモリに格納するダウンロード処理を該制御ＣＰＵの指示により実行すると共に、該メモリに格納された該ストリームデータを該制御ＣＰＵが解析することにより該ファームウェアをメモリ空間に展開し、該メモリ空間に展開された該ファームウェアを該制御ＣＰＵが実行することにより該処理対象のデータに対する処理を実行し、
前記制御ＣＰＵが該シリアルインタフェースを介してダウンロード用プログラムを該ホスト装置から受け取り、該制御ＣＰＵが該ダウンロード用プログラムを実行することにより前記ストリームインタフェースによるダウンロード処理を実行することを特徴とする情報処理システム。
【請求項３】
前記ダウンロード用プログラムの実行により、前記ストリームインタフェースのポートの設定を行った後に、前記ストリームインタフェースによるダウンロード処理を行うことを特徴とする請求項２記載の情報処理システム。
【請求項４】
ブート用ＲＯＭを更に含み、該ブート用ＲＯＭに格納されるダウンロード用プログラムを前記制御ＣＰＵが実行することにより前記ダウンロード処理を実行することを特徴とする請求項１記載の情報処理システム。
【請求項５】
前記ストリームインタフェースは、前記制御ＣＰＵとは独立に前記メモリにアクセスすることにより前記ストリームデータを該メモリに格納することを特徴とする請求項１記載の情報処理システム。
【請求項６】
前記ストリームインタフェースが前記ストリームデータを受け取り前記メモリに格納する際に、前記制御ＣＰＵは該ストリームデータの内容を解析しないことを特徴とする請求項１記載の情報処理システム。
【請求項７】
前記ストリームデータは前記ファームウェアの実行開始アドレスであるエントリアドレスを示すデータを含み、前記制御ＣＰＵは前記メモリに格納された該ストリームデータを解析することにより、前記メモリ空間中の該エントリアドレスで始まる領域に該ファームウェアを展開することを特徴とする請求項１記載の情報処理システム。
【請求項８】
前記ストリームデータは前記ファームウェアの各ブロックを配置するアドレスであるトップアドレスを示すデータを更に含み、前記制御ＣＰＵは前記メモリに格納された該ストリームデータを解析することにより、前記メモリ空間中の該トップアドレスで始まる領域に該ファームウェアの各ブロックを展開することを特徴とする請求項７記載の情報処理システム。
【請求項９】
制御ＣＰＵと、処理対象のデータを含む入力ストリームを受け取りメモリに転送するストリームインタフェースとを含む情報処理システムにおいて、
該ストリームインタフェースによりファームウェアを含むストリームデータを受け取り該受け取ったストリームデータを該メモリに格納するダウンロード処理を実行し、
該メモリに格納された該ストリームデータを該制御ＣＰＵにより解析し、
該解析の結果に基づいて該制御ＣＰＵにより該ファームウェアをメモリ空間に展開し、
該メモリ空間に展開された該ファームウェアを該制御ＣＰＵにより実行する
各段階を含み、
前記ストリームインタフェースは前記処理対象のデータを含む入力ストリームを受け取った際に同期検出する機能を含み、前記制御ＣＰＵは、前記ダウンロード処理の実行を指示する前に該同期検出機能が無効になるように該ストリームインタフェースを設定する
ことを特徴とする情報処理システムにおけるファームウェア実行方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、一般に情報処理システムに関し、詳しくはファームウェアを受信し実行することにより動作する情報処理装置を含む情報処理システムに関する。
【背景技術】
【０００２】
画像処理技術や音声処理技術等の進歩により、それらを含む情報処理システムの高性能化及び高機能化が進んでいる。それに伴い、情報処理システムのハードウェアの回路規模やソフトウェアのコード量が増大している。
【０００３】
図１は、ホスト装置（システムコントローラ）に専用の画像処理装置を接続した画像処理システムの構成の一例を示す図である。このように専用に画像処理を行うハードウェアを用いる構成により、高性能な画像処理機能を備えた情報処理システムを実現することができる。図１のシステムは、ホスト装置１０、画像処理装置１１、ブリッジ１２、外部記憶装置１３、及びＳＤＲＡＭ（同期型ＤＲＡＭ）１４を含む。画像処理装置１１は、シリアルインタフェースであるホストＩ／Ｆ（インタフェース）２１、ストリームインタフェース用のデマルチプレクサ（分離器）であるＤＥＭＵＸ２２、制御ＣＰＵ２３、映像処理部２４、及びＳＤＲＡＭインタフェース２５を含む。
【０００４】
ホスト装置１０と画像処理装置１１をシリアルインタフェースで接続し、ホストからの制御にしたがって画像処理装置１１に画像処理を実行させる。図１に示す構成例では、画像処理を行うためのファームウェアを、まずシリアルポートを介してホスト装置１０から画像処理装置１１へ転送する。次に、転送後のファームウェアを画像処理装置１１に実行させることにより、ストリームインタフェースを介した外部記憶装置１３から画像処理装置１１への画像データ転送を含む種々の画像データに関連する処理を実行する。
【０００５】
図２は、図１の構成においてシリアルインタフェースを介してファームウェアをダウンロードする処理を示す流れ図である。図２に示す処理に従って、画像処理システムの起動時にホスト装置１０から画像処理装置１１にファームウェアをダウンロードし、それをブートアップすることで画像処理装置１１を動作させる。
【０００６】
具体的には、まず電源投入後、画像処理装置１１の制御ＣＰＵ２３によりブートローダの実行が開始される。ブートローダは、制御ＣＰＵ２３に接続されるＲＯＭ２６（図１参照）に格納されている制御プログラムであり、画像処理装置１１の電源が投入されると、制御ＣＰＵ２３がこの制御プログラムをまず最初に実行する。
【０００７】
ブートローダの実行により、図２に示されるように、制御ＣＰＵ２３からホストＩ／Ｆ２１を介してホスト装置１０の割込み端子に対して割り込み信号がアサートされる（ステップＳ１）。このときホスト装置１０は、割込み有無を判定する割込み待ちの状態にある（ステップＳ２）。画像処理装置１１から割込みがあると、この割り込みに応答して、ホスト装置１０はシリアルポートを介したファームウェアの転送処理を実行する（ステップＳ３）。具体的には、ホスト装置１０が外部記憶装置１３からファームウェアを読み出し、この読み出したファームウェアを、シリアルポートを介して画像処理装置１１に転送する。
【０００８】
図３は、ダウンロードされるファームウェアのフォーマットの一例を示す図である。図３に示すファームウェア３０は、ヘッダ部３１及び複数ｎ個（ｎ：２以上の整数）のデータブロック部３２−１乃至３２−ｎを含む。ヘッダ部３１では、ヘッダ領域にエントリアドレス３３及びブロックカウント３４が含まれている。エントリアドレス３３は、メモリ領域に格納されたファームウェアの実行開始アドレスを示し、ブロックカウント３４はブロックの個数ｎを示す。各データブロック部３２−１乃至３２−ｎは、それぞれのブロックヘッダ領域にトップアドレス３５及びバイトカウント３６を含む。トップアドレス３５は、メモリ領域内での対応ブロック部の配置アドレスを示し、バイトカウント３６は対応ブロック部の本体（データ部）のデータ量をバイト単位で示す。
【０００９】
ブートローダ実行中の制御ＣＰＵ２３は、シリアルインタフェースであるホストＩ／Ｆ２１を介して受信されるファームウェア３０（シリアルデータ）を解析する（ステップＳ４）。この解析結果に基づいて、制御ＣＰＵ２３は、データブロック部３２−１乃至３２−ｎの各ヘッダに設定されているトップアドレス３５へ、対応ブロックのデータ部分のファームウェア本体を転送する（ステップＳ５）。具体的には、ＳＤＲＡＭインタフェース２５を介してＳＤＲＡＭ１４にファームウェアのデータを書き込む。また上記解析結果に基づいて、制御ＣＰＵ２３は、ファームウェア３０のブロックカウント３４及びバイトカウント３６に指定されるデータ量のファームウェアの受信が完了したか否かを判定する（ステップＳ６）。
【００１０】
ファームウェアの受信が完了するとブートローダからファームウェアに制御移管が行われる（ステップＳ７）。具体的には、制御ＣＰＵ２３は、ファームウェア３０のヘッダ部３１のエントリアドレス３３が示す実行開始アドレスにプログラムポインタを設定して、ファームウェアの実行を開始する。ファームウェアの実行により、制御ＣＰＵ２３からホストＩ／Ｆ２１を介してホスト装置１０の割込み端子に対して割り込み信号がアサートされる（ステップＳ８）。この割込みにより、画像処理装置１１はホスト装置１０に対してブートアップ完了を通知する。ホスト装置１０は、このブートアップ完了通知に応答して、所定の処理を開始する。
【００１１】
上記のような構成においてファームウェア３０をダウンロードするシリアルインタフェースとしては、汎用的なＲＳ−２３２Ｃ／ＵＡＲＴ／Ｉ２Ｃ等のシリアル通信インタフェースを用いるのが一般的な構成である。しかしそのようなシリアル通信インタフェースのデータ転送速度が比較的低速であるために、情報処理装置が高性能化してファームウェアのサイズが増大すると、ファームウェアのダウンロードに時間がかかりすぎてしまうという問題が発生する。外付けのフラッシュメモリ等からファームウェアをダウンロードする方法もあるが、そのような構成ではピン数や部品コストが余計にかかってしまうという問題がある。
【００１２】
また、本願発明に関連する先行技術として、例えば、下記の特許文献１に開示される技術がある。
【特許文献１】特開２００７−７２５３２号公報
【発明の開示】
【発明が解決しようとする課題】
【００１３】
以上を鑑みて、本発明は、ファームウェアのダウンロードを高速に行う情報処理システムを提供することを目的とする。
【課題を解決するための手段】
【００１４】
情報処理システムは、制御ＣＰＵと、処理対象のデータを含む入力ストリームを受け取りメモリに転送するストリームインタフェースを含み、該ストリームインタフェースによりファームウェアを含むストリームデータを受け取り該メモリに格納するダウンロード処理を該制御ＣＰＵの指示により実行すると共に、該メモリに格納された該ストリームデータを該制御ＣＰＵが解析することにより該ファームウェアをメモリ空間に展開し、該メモリ空間に展開された該ファームウェアを該制御ＣＰＵが実行し、前記ストリームインタフェースは前記処理対象のデータを含む入力ストリームを受け取った際に同期検出する機能を含み、前記制御ＣＰＵは、前記ダウンロード処理の実行を指示する前に該同期検出機能が無効になるように該ストリームインタフェースを設定することにより該処理対象のデータに対する処理を実行することを特徴とする。
【００１５】
また情報処理システムにおけるファームウェア実行方法は、制御ＣＰＵと、処理対象のデータを含む入力ストリームを受け取りメモリに転送するストリームインタフェースとを含む情報処理システムにおいて、該ストリームインタフェースによりファームウェアを含むストリームデータを受け取り該受け取ったストリームデータを該メモリに格納するダウンロード処理を実行し、該メモリに格納された該ストリームデータを該制御ＣＰＵにより解析し、該解析の結果に基づいて該制御ＣＰＵにより該ファームウェアをメモリ空間に展開し、該メモリ空間に展開された該ファームウェアを該制御ＣＰＵにより実行する各段階を含み、前記ストリームインタフェースは前記処理対象のデータを含む入力ストリームを受け取った際に同期検出する機能を含み、前記制御ＣＰＵは、前記ダウンロード処理の実行を指示する前に該同期検出機能が無効になるように該ストリームインタフェースを設定することを特徴とする。
【発明の効果】
【００１６】
本発明の少なくとも１つの実施例によれば、処理対象のデータのストリームを受信するために情報処理装置に設けられている既存のストリームインタフェースを活用し、このストリームインタフェースを介してファームウェアをダウンロードする。この際、ストリームインタフェースによりファームウェアを含むストリームデータを受け取りメモリにそのまま格納し、その後、メモリに格納されたストリームデータを制御ＣＰＵが解析することにより、ファームウェアをメモリ空間に展開する。更に、メモリ空間に展開されたファームウェアを制御ＣＰＵが実行することにより、処理対象のデータに対する処理を実行する。この構成により、新たな高速インタフェースを追加することなく、高速なダウンロードを実現することが可能となる。
【発明を実施するための最良の形態】
【００１７】
以下に、本発明の実施例を添付の図面を用いて詳細に説明する。
【００１８】
本発明の情報処理システムの実施例としては、図１に示す画像処理システムの構成をそのまま用いてよい。但し、情報処理の内容として画像処理等の特定の情報処理に限定されるものではなく、本発明の情報処理システムは音声処理システムや映像・音声処理システム等を含む任意の情報処理内容の情報処理システムであってよい。
【００１９】
図１のＤＥＭＵＸ２２は、受信ストリーム中に含まれる複数のストリームを分離する機能を有する。例えば、受信ストリーム中に含まれる映像ストリームと音声ストリームとを分離して、それぞれのバッファ（例えばＳＤＲＡＭ１４内の対応するメモリ領域）に映像データと音声データとを格納する。バッファから読み出される映像データと音声データとは、それぞれの対応するデコーダにより復号処理される。図１の構成では、情報処理システムの画像処理部分として映像処理部２４のみが示されており、この映像処理部２４により画像復号化処理を実行する。
【００２０】
ストリームの例としては、ＭＰＥＧ（Moving Picture Experts Group）によりＭＰＥＧ−１システム及びＭＰＥＧ−２システムに対してそれぞれ規定されるストリームがある。ＭＰＥＧでは、ビデオデータとオーディオデータとの２つのデータに分かれている場合、それぞれをエレメンタリーストリーム（Elementary Stream）と呼ぶ。エレメンタリーストリームはパケットと呼ばれる単位に分割され、パケット化エレメンタリーストリーム（Packetized Elementary Stream）を構成する。各パケットにはパケットヘッダが付加される。パケットヘッダには、ストリーム識別用のコード、パケットのサイズに関する情報、ＰＴＳ（Presentation Time Stamp）やＤＴＳ（Decoding Time Stamp）等の同期再生のための時間情報等が含まれる。また任意の数のパケットを集めた纏まりをパックと呼ぶ。各パックに付加されるパックヘッダには、基準時間情報ＳＣＲ（System Clock Reference）等が記述されている。このようにシステムストリームをパック単位に構成することにより、受信側では、ストリーム全体を受信する前にストリーム途中からの再生が可能となる。
【００２１】
ＭＰＥＧ−１の場合、ビデオデータとオーディオデータとを多重化した１つのストリームをシステムストリーム（System Stream）と呼ぶ。ＭＰＥＧ−２の場合、ビデオデータとオーディオデータとを多重化した１つのストリームをプログラムストリーム（Program Stream）と呼ぶ。１つのプログラムストリームには、唯１つのプログラムが含まれる。それに対して１ストリームの中に複数のプログラムストリームを含む形式として、トランスポートストリームがあり、放送や通信ネットワークなどにおいて利用される。以下の説明においては、ＭＰＥＧ−２のトランスポートストリームを想定している。
【００２２】
図４は、ＤＥＭＵＸ２２の機能ブロック構成の一例を示す図である。図４に示すＤＥＭＵＸ２２は、Ｄ＿ＩＮ部４１とＤ＿ＴＲＢＵＦ部４２とを含む。Ｄ＿ＩＮ部４１部は、ストリームの入力を行なうモジュールであり、入力ストリーム中に含まれる指定コード（例えば０ｘ４７）を検出することにより同期を確立する。また更にＤ＿ＩＮ部４１において、画像処理装置１１の基準クロックであるＳＴＣ（System Time Clock）に対するストリームデータの重畳が行なわれる。Ｄ＿ＴＲＢＵＦ部４２はＤＭＡ（Direct Memory Access）機能を有する。Ｄ＿ＴＲＢＵＦ部４２が独立してメモリアクセスすることにより、ストリームデータを出力先のバッファにＤＭＡ転送する。なおＤＥＭＵＸ２２のデータ分離機能は、バッファへの転送時に必要に応じてストリームを分離しそれぞれの転送先にデータを振り分けることにより実現される。
【００２３】
上述の説明のように、画像処理装置１１には、画像データのストリームを受信して同期をとり、出力先のバッファにＤＭＡ転送するＤＥＭＵＸ２２が既に設けられている。即ち、情報処理装置（この例では画像処理装置１１）の情報処理対象のデータ（この例では画像データ）をストリームとして受け取り、メモリにＤＭＡ転送するストリームインタフェース（この例ではＤＥＭＵＸ２２）が既に設けられている。そのようなストリームインタフェースは、大量の処理対象のデータ（映像データや音声データ）を高速に受信してバッファに転送することができる高速インタフェースである。即ち、ＤＥＭＵＸ２２のデータ転送速度は、ＲＳ−２３２Ｃ／ＵＡＲＴ／Ｉ２Ｃ等のシリアルインタフェースであるホストＩ／Ｆ２１のデータ転送速度よりも格段に早い。本発明の実施例による情報処理装置においては、以下に詳細に説明するように、そのようなストリームインタフェース（図１の例ではＤＥＭＵＸ２２）をファームウェアのダウンロードのために用いる。
【００２４】
この際、ＤＥＭＵＸ２２には制御ＣＰＵ２３のようなデータ解析機能はなく、受信したストリームデータをそのままＳＤＲＡＭ１４に格納することしかできない。図２に示すようにシリアルインタフェースであるホストＩ／Ｆ２１を介して制御ＣＰＵ２３がファームウェアを受け取る場合には、制御ＣＰＵ２３は、データブロック部３２−１乃至３２−ｎの各ヘッダに設定されているトップアドレス３５へ各ブロックのデータ部分のファームウェア本体を書き込むことができる。即ち、ヘッダの解析結果に基づいて、ファームウェアをメモリ空間に適切に展開することができる。しかしＤＥＭＵＸ２２をファームウェアの受信及びメモリ格納用に用いる場合には、受信したストリームデータをそのままメモリに書き込むのみであり、ヘッダ解析に基づいたファームウェアのメモリ空間への展開処理を実行することができない。従って、ＤＥＭＵＸ２２によりＳＤＲＡＭ１４に受信ストリームデータを書き込んだ後に、制御ＣＰＵ２３によりＳＤＲＡＭ１４から受信ストリームデータを読み出して、ヘッダを解析することにより、ファームウェアをメモリ空間に適切に展開する処理が必要になる。
【００２５】
このように本発明の実施例による情報処理システムは、制御ＣＰＵ（制御ＣＰＵ２３）と、処理対象のデータを含む入力ストリームを受け取りメモリに転送するストリームインタフェース（ＤＥＭＵＸ２２）とを含む構成である。この構成においては、ストリームインタフェース（ＤＥＭＵＸ２２）によりファームウェアを含むストリームデータを受け取りメモリ（ＳＤＲＡＭ１４）に格納するダウンロード処理を、制御ＣＰＵ（制御ＣＰＵ２３）の指示により実行する。またメモリに格納されたストリームデータを制御ＣＰＵ（制御ＣＰＵ２３）が解析することにより、ファームウェアをメモリ空間に展開する。更に、メモリ空間に展開されたファームウェアを制御ＣＰＵ（制御ＣＰＵ２３）が実行することにより、処理対象のデータ（この例では画像データ）に対する処理を実行する。
【００２６】
なお図１の構成例においては、ＳＤＲＡＭ１４が画像処理装置１１の外付けのメモリとして示されるが、画像処理装置１１内にローカルメモリとしてＤＲＡＭを含む構成であってもよい。この場合、ファームウェアを展開するメモリ空間は、ローカルメモリとＳＤＲＡＭ１４とを合わせたメモリ空間となる。実際にファームウェアをローカルメモリとＳＤＲＡＭ１４とのどちらのメモリに展開するのか、或いはファームウェアの一部をローカルメモリに展開し残りの部分をＳＤＲＡＭ１４に展開するように構成する場合に何れの部分を選択的にローカルメモリに展開するのか等は、システム設計時に適宜決定すればよい事項である。
【００２７】
また本発明の実施例による情報処理システムは、ホスト装置１０と接続されるシリアルインタフェース（ホストＩ／Ｆ２１）を更に含む構成であってよい。この構成において、制御ＣＰＵ２３がシリアルインタフェース（ホストＩ／Ｆ２１）を介してダウンロード用プログラムをホスト装置１０から受け取り、制御ＣＰＵ２３がそのダウンロード用プログラムを実行することにより、前記ダウンロード処理を実行してよい。このような構成とすることにより、小さな規模のダウンロード用プログラムをまずシリアルインタフェースを介して受け取り、そのダウンロード用プログラムを実行することにより、規模の大きなファームウェアをストリームインタフェース（ＤＥＭＵＸ２２）を介して受け取ることができる。このような構成とすれば、ファームウェアを含むストリームデータを受け取りメモリ（ＳＤＲＡＭ１４）に格納する際に、格納先のアドレスをダウンロード用プログラムにより指定することができる。従って、システムの構成に応じた柔軟なダウンロード処理が可能となる。
【００２８】
また本発明の実施例による情報処理システムは、ブート用ＲＯＭ２６を更に含み、ブート用ＲＯＭ２６に格納されるダウンロード用プログラムを制御ＣＰＵ２３が実行することによりダウンロード処理を実行する構成であってよい。このような構成とすることで、より簡単な制御によるダウンロード処理を実現することができる。
【００２９】
図５は、本発明の実施例により図１の構成においてストリームインタフェースを介してファームウェアをダウンロードする処理を示す流れ図である。図５に示す処理に従って、画像処理システムの起動時にホスト装置１０から画像処理装置１１にファームウェアをダウンロードし、それをブートアップすることで画像処理装置１１を動作させる。
【００３０】
具体的には、まず電源投入後、画像処理装置１１の制御ＣＰＵ２３によりブートローダの実行が開始される。ブートローダは、制御ＣＰＵ２３に接続されるＲＯＭ２６に格納されている制御プログラムであり、画像処理装置１１の電源が投入されると、制御ＣＰＵ２３がこの制御プログラムをまず最初に実行する。
【００３１】
ブートローダの実行により、図５に示されるように、制御ＣＰＵ２３からホストＩ／Ｆ２１を介してホスト装置１０の割込み端子に対して割り込み信号がアサートされる（ステップＳ１）。このときホスト装置１０は、割込み有無を判定する割込み待ちの状態にある（ステップＳ２）。画像処理装置１１から割込みがあると、この割り込みに応答して、ホスト装置１０はシリアルポートを介した第１のファームウェア（ダウンロード用プログラム）の転送処理を実行する（ステップＳ３）。具体的には、ホスト装置１０が外部記憶装置１３から第１のファームウェアを読み出し、この読み出した第１のファームウェアを、シリアルポートを介して画像処理装置１１に転送する。
【００３２】
ダウンロードされる第１のファームウェアのフォーマットは、例えば図３に示す構成と同様である。ブートローダ実行中の制御ＣＰＵ２３は、シリアルインタフェースであるホストＩ／Ｆ２１を介して受信される第１のファームウェア（シリアルデータ）を解析する（ステップＳ４）。この解析結果に基づいて、制御ＣＰＵ２３は、各データブロック部のヘッダに設定されているトップアドレスへ、対応ブロックのデータ部分の第１のファームウェア本体を格納する。具体的には、ＳＤＲＡＭインタフェース２５を介してＳＤＲＡＭ１４に第１のファームウェアのデータを書き込む。また上記解析結果に基づいて、制御ＣＰＵ２３は、第１のファームウェアのブロックカウント及びバイトカウントに指定されるデータ量のファームウェアの受信が完了したか否かを判定する（ステップＳ５）。
【００３３】
第１のファームウェアの受信が完了するとブートローダから第１のファームウェア（ダウンロード用ファームウェアＳＴＤＬ＿ｆｉｒｍ）に制御移管が行われる（ステップＳ６）。具体的には、制御ＣＰＵ２３は、第１のファームウェアのヘッダ部のエントリアドレスが示す実行開始アドレスにプログラムポインタを設定して、第１のファームウェアの実行を開始する。この第１のファームウェア（即ちダウンロード用プログラム）の実行により、以下に説明するように、第２のファームウェア（データ処理用のファームウェア）をダウンロードする。
【００３４】
制御ＣＰＵ２３が第１のファームウェア（ダウンロード用ファームウェアＳＴＤＬ＿ｆｉｒｍ）の実行を開始すると、まず制御ＣＰＵ２３はＤＥＭＵＸ２２に対してストリームポートの設定指示を行なう。前述のように、ＤＥＭＵＸ２２は、入力ストリーム中に含まれる指定コードを検出することにより同期を確立する機能（同期検出機能）と、画像処理装置１１の基準クロックであるＳＴＣに対してストリームデータを重畳する機能を有する。第２のファームウェア（データ処理用のファームウェア）をダウンロードする際にはこれらの機能は不要であるので、制御ＣＰＵ２３によるストリームポートの設定により、ダウンロード処理の実行を指示する前にこれらの機能を無効にする。
【００３５】
なお画像処理装置１１のストリームインタフェース（ＤＥＭＵＸ２２）は、例えば１ビットのクロック端子、８ビットのデータ端子、１ビットのイネーブル端子、１ビットのＰＳＴＡＲＴ端子、１ビットのＷＡＩＴ端子を有する。クロック端子を介して画像処理装置１１に入力される転送クロックに同期して、データ端子を介してストリームデータが画像処理装置１１に入力される。この際、イネーブル端子への入力信号によりストリームデータの有効期間を示す。またＰＳＴＡＲＴ端子への入力信号によりストリームデータの各パケットの先頭バイトを示す。ＷＡＩＴ端子はバースト転送モードの場合に転送ウェイト信号を出力する。第１のファームウェアによりこれらの端子の設定が行われる。ＷＡＩＴ、ＰＳＴＡＲＴに対する設定は必ずしも必要ない。
【００３６】
ストリームポートの設定完了後、制御ＣＰＵ２３からホストＩ／Ｆ２１を介してホスト装置１０の割込み端子に対して割り込み信号がアサートされる（ステップＳ８）。このときホスト装置１０は、割込み有無を判定する割込み待ちの状態にある（ステップＳ９）。画像処理装置１１から割込みがあると、この割り込みに応答して、ホスト装置１０はストリーム出力インタフェース（図１のブリッジ１２）に対してファームウェア出力を指示する。これに応じて、ストリーム出力インタフェースは第２のファームウェアを含むストリームデータを出力する（ステップＳ１１）。画像処理装置１１のＤＥＭＵＸ２２はストリームデータを受信し、受信したストリームデータをＳＤＲＡＭインタフェース２５を介してＳＤＲＡＭ１４にそのまま書き込む（ステップＳ１２）。即ち、ストリームインタフェースがストリームデータを受け取りメモリに格納する際に、ＤＥＭＵＸ２２及び制御ＣＰＵ２３の何れも、ストリームデータの内容を解析しない。
【００３７】
第２のファームウェアを含むストリームデータのフォーマットは、例えば図３に示す構成と同様である。この場合、ＤＥＭＵＸ２２はヘッダの内容を解析しないので、図３に示す構成のストリームデータがそのままＳＤＲＡＭ１４に格納される。この際の格納先アドレスは、第１のファームウェア（ダウンロード用プログラム）により指定されるアドレスとなる。
【００３８】
ホスト装置１０は、第２のファームウェアを含むストリームデータの転送が完了すると考えられる一定の時間がファームウェア出力指示を発してから経過したか否かを、クロックによる計時動作により判定する（ステップＳ１３）。転送完了すると考えられる一定の時間が経過すると、ホスト装置１０は画像処理装置１１に対してブートアップ指示を行なう（ステップＳ１４）。このとき制御ＣＰＵ２３は、ブートアップ指示の有無を判定する待ち状態にある（ステップＳ１５）。ホスト装置１０からホストＩ／Ｆ２１を介してブートアップ指示があると、このブートアップ指示に応答して、制御ＣＰＵ２３はＳＤＲＡＭインタフェース２５を介してＳＤＲＡＭ１４から受信ストリームデータを読み出し、ストリームデータを解析する（ステップＳ１６）。この解析結果に基づいて、制御ＣＰＵ２３は、第２のファームウェアをメモリ空間に展開する（Ｓ１７）。即ち、制御ＣＰＵ２３は、各データブロック部のヘッダに設定されているトップアドレスへ、対応ブロックのデータ部分の第２のファームウェア本体を配置する。
【００３９】
図６は、ストリームデータに含まれるファームウェアをメモリ空間に展開する動作を説明するための図である。図６においては、説明の便宜上、ストリームデータに２つのデータブロックが含まれる場合を示してある。図６に示されるように、受信したストリームデータ５０は、エントリアドレス５１、第１のデータブロックに対するトップアドレス５２（トップアドレス＃１）、第２のデータブロックに対するトップアドレス５３（トップアドレス＃２）、第１のデータブロックのデータ本体であるファームウェア部分５４、及び第２のデータブロックのデータ本体であるファームウェア部分５５を含む。ＤＥＭＵＸ２２により受信されたストリームデータ５０は、そのままの形式でＳＤＲＡＭ１４に格納されている。
【００４０】
ファームウェアをメモリ空間に展開するために、制御ＣＰＵ２３はストリームデータ５０をＳＤＲＡＭ１４から読み出す。制御ＣＰＵ２３はストリームデータ５０を解析し、エントリアドレス５１、トップアドレス５２（トップアドレス＃１）、及びトップアドレス５３（トップアドレス＃２）を特定する。制御ＣＰＵ２３は、第１のデータブロックのデータ本体であるファームウェア部分５４をメモリ空間上のトップアドレス＃１（＝エントリアドレス）の位置に書き込み、更に、第２のデータブロックのデータ本体であるファームウェア部分５５をメモリ空間上のトップアドレス＃２の位置に書き込む。即ち、制御ＣＰＵ２３はメモリに格納されたストリームデータを解析することにより、メモリ空間中のトップアドレスで始まる領域にファームウェアの各ブロックを展開する。以上により、ファームウェアをメモリ空間に展開する処理が終了する。
【００４１】
第２のファームウェアのメモリ空間への展開処理が終了すると、データ解析・展開処理から第２のファームウェアに制御移管が行われる（ステップＳ１８）。具体的には、制御ＣＰＵ２３は、受信ストリームデータ５０に含まれるエントリアドレス５１が示す実行開始アドレスにプログラムポインタを設定して、第２のファームウェアの実行を開始する。第２のファームウェアの実行により、制御ＣＰＵ２３からホストＩ／Ｆ２１を介してホスト装置１０の割込み端子に対して割り込み信号がアサートされる（ステップＳ１９）。この割込みにより、画像処理装置１１はホスト装置１０に対してブートアップ完了を通知する。ホスト装置１０は、このブートアップ完了通知に応答して、所定の処理を開始する。
【００４２】
ホスト装置１０は、例えば画像処理装置１１に対して画像データを転送する処理を実行する。この際、画像処理装置１１では制御ＣＰＵ２３が第２のファームウェアを実行しており、画像処理装置１１の動作は第２のファームウェアにより制御されることになる。
【００４３】
図７は、画像処理装置１１へ画像データを転送する処理の流れを示す図である。まずホスト装置１０は、設定コマンドを画像処理装置１１に対して転送する（ステップＳ１）。ホスト装置１０から送信されたコマンドは、ホストＩ／Ｆ２１により受信され、制御ＣＰＵ２３に供給される。この際、制御ＣＰＵ２３では既に第２のファームウェアが実行中であり、ホストＩ／Ｆ２１のシリアルＡＰＩ（Application Program Interface）が有効になっていて種々のコマンドを受け付けることができる。なお第２のファームウェアが実行される前の段階では、第１のファームウェアの転送（図５のＳ３）及びブートアップ指示（図５のＳ１４）のみを受け付けることができるに過ぎない。
【００４４】
制御ＣＰＵ２３は、受信したシリアルデータを解析し（ステップＳ２）、解析結果に従ってＤＥＭＵＸ２２のストリームポートを設定する（ステップＳ３）。前述のようにＤＥＭＵＸ２２は、入力ストリーム中に含まれる指定コードを検出することにより同期を確立する機能（同期検出機能）と、画像処理装置１１の基準クロックであるＳＴＣに対してストリームデータを重畳する機能を有する。画像データをダウンロードする際には、制御ＣＰＵ２３によるストリームポートの設定によりこれらの機能を有効にする。但しＳＴＣ重畳処理については、場合によっては無効設定のままでもよい。
【００４５】
ストリームポートの設定が完了すると制御ＣＰＵ２３は、ホストＩ／Ｆ２１を介してコマンド応答（アクノレッジ）をホスト装置１０に送信する。このときホスト装置１０は、コマンド応答の有無を判定する待ちの状態にある（ステップＳ４）。画像処理装置１１からコマンド応答があると、これに応答して、ホスト装置１０はシリアルポートを介してデコードコマンドを発行する（ステップＳ５）。制御ＣＰＵ２３は、ホストＩ／Ｆ２１を介してホスト装置１０からデコードコマンドを受信すると、デコードモードに移行する。デコードモードに移行すると、制御ＣＰＵ２３はホストＩ／Ｆ２１を介してホスト装置１０に対して割込みをアサートする。このときホスト装置１０は、割込み有無を判定する割込み待ちの状態にある（ステップＳ７）。画像処理装置１１から割込みがあると、この割り込みに応答して、ホスト装置１０はシリアルポートを介してストリーム開始コマンドを発行する（ステップＳ８）。制御ＣＰＵ２３は、ホストＩ／Ｆ２１を介してホスト装置１０からストリーム開始コマンドを受信し、ＤＥＭＵＸ２２に対してウェイト信号解除設定を行なう（ステップＳ９）。
【００４６】
ウェイト信号解除設定をした制御ＣＰＵ２３は、ホストＩ／Ｆ２１を介してコマンド応答（アクノレッジ）をホスト装置１０に送信する。このときホスト装置１０は、コマンド応答の有無を判定する待ちの状態にある（ステップＳ１０）。画像処理装置１１からコマンド応答があると、これに応答して、ホスト装置１０はストリーム出力インタフェース（図１のブリッジ１２）に対して画像データのストリーム転送を指示する。これに応じて、ストリーム出力インタフェースは画像データのストリームを出力する（ステップＳ１２）。画像処理装置１１のＤＥＭＵＸ２２は画像データのストリームを受信し、同期検出及びＳＴＣ重畳等を実行した後、ＳＤＲＡＭインタフェース２５を介してＳＤＲＡＭ１４に画像データを書き込む（ステップＳ１３）。バッファとして機能するＳＤＲＡＭ１４に書き込まれた画像データは、その後映像処理部２４により復号処理される。
【００４７】
ホスト装置１０は、画像ストリームを停止したいとき、随時ストリーム終了コマンドを発行する（ステップＳ１４）。制御ＣＰＵ２３は、ホストＩ／Ｆ２１を介してホスト装置１０からストリーム終了コマンドを受信すると、ＤＥＭＵＸ２２に対してストリーム受信を終了するようにストリームポート設定を行なう。
【００４８】
図７に示される上記制御ＣＰＵ２３の動作は全て第２のファームウェアにより制御されている。このようにして、ストリームインタフェース（ＤＥＭＵＸ２２）を介してダウンロードしたファームウェアを制御ＣＰＵ２３により実行することにより、処理対象のデータ（画像データ）をストリームインタフェース（ＤＥＭＵＸ２２）を介して受信して処理することが可能となる。
【００４９】
ここまで説明した実施例では、第１のファームウェア（ダウンロード用プログラム）をホスト装置１０からホストＩ／Ｆ２１を介して画像処理装置１１にダウンロードする構成となっていた。別の構成として、第１のファームウェア（ダウンロード用プログラム）を予めブート用ＲＯＭ２６に格納しておき、電源投入時には、ブート用ＲＯＭ２６に格納されている第１のファームウェア（ダウンロード用プログラム）を制御ＣＰＵ２３により実行する構成としてもよい。
【００５０】
図８は、第１のファームウェア（ダウンロード用プログラム）を最初にダウンロードし、この第１のファームウェアを実行することにより第２のファームウェア（データ処理用ファームウェア）をダウンロードする場合の手順を示す図である。この手順は、図５に示す手順を簡略化して示すものであり、その詳細については説明を省略する。
【００５１】
図９は、第１のファームウェア（ダウンロード用プログラム）をブート用ＲＯＭに格納しておき、この第１のファームウェアを実行することにより第２のファームウェア（データ処理用ファームウェア）をダウンロードする場合の手順を示す図である。画像処理装置１１の電源投入後、制御ＣＰＵ２３がブート用ＲＯＭ２６に格納される第１のファームウェアを実行することにより、ブートアップシーケンスが実行される。このブートアップシーケンスでは、ストリームポートを介してファームウェアをダウンロードするための準備として、制御ＣＰＵ２３がＤＥＭＵＸ２２のストリーム入力ポート部に関する各種設定を行う（Ｓ１）。この設定完了後、制御ＣＰＵ２３からホスト装置１０に対して設定完了割り込みをアサートする（Ｓ２）。この割込みに応答して、ホスト装置１０はストリームポートを介してファームウェアの転送を開始する（Ｓ３）。転送されたファームウェアは、順次、ＳＤＲＡＭ１４に保存される。ファームウェアの転送終了後、ホスト装置１０は画像処理装置１１に対してブートアップ指示割り込みを行う（Ｓ４）。画像処理装置１１は、ホスト装置１０よりブートアップ指示割り込みを受けると、ＳＤＲＡＭ１４よりファームデータを読み込みヘッダの解析を行い、解析結果に基づいてファームウェアを展開し、更に指定の実行開始アドレスから展開後のファームウェアを実行する（Ｓ５）。実行されたファームウェアによりブートアップ完了割り込みをホスト装置１０へ通知する（Ｓ６）。
【００５２】
図９に示す手順と図８に示す手順とを比較すれば分かるように、図９に示す処理は、図８に示す手順の後半部分の処理と同一である。即ち、図８の手順の場合には、ホストＩ／Ｆ２１を介してホスト装置１０からダウンロードした第１のファームウェアを制御ＣＰＵ２３が実行するのに対して、図９の手順の場合には、ブート用ＲＯＭ２６に格納してある第１のファームウェアを制御ＣＰＵ２３が実行する点が異なるのみである。図９の手順の場合、ホストＩ／Ｆ２１を介したホスト装置１０からのダウンロード処理を省くことができるので、より単純な制御手順で第２のファームウェアをダウンロードすることが可能となる。
【００５３】
以上、本発明を実施例に基づいて説明したが、本発明は上記実施例に限定されるものではなく、特許請求の範囲に記載の範囲内で様々な変形が可能である。
【図面の簡単な説明】
【００５４】
【図１】ホスト装置に専用の画像処理装置を接続した画像処理システムの構成の一例を示す図である。
【図２】図１の構成においてシリアルインタフェースを介してファームウェアをダウンロードする処理を示す流れ図である。
【図３】ダウンロードされるファームウェアのフォーマットの一例を示す図である。
【図４】ＤＥＭＵＸの機能ブロック構成の一例を示す図である。
【図５】本発明の実施例により図１の構成においてストリームインタフェースを介してファームウェアをダウンロードする処理を示す流れ図である。
【図６】ストリームデータに含まれるファームウェアをメモリ空間に展開する動作を説明するための図である。
【図７】画像処理装置へ画像データを転送する処理の流れを示す図である。
【図８】ダウンロード用プログラムを最初にダウンロードし、ダウンロード用プログラムを実行することによりデータ処理用ファームウェアをダウンロードする場合の手順を示す図である。
【図９】ダウンロード用プログラムをブート用ＲＯＭに格納しておき、ダウンロード用プログラムを実行することによりデータ処理用ファームウェアをダウンロードする場合の手順を示す図である。
【符号の説明】
【００５５】
１０  ホスト装置
１１  画像処理装置
１２  ブリッジ
１３  外部記憶装置
１４  ＳＤＲＡＭ
２１  ホストＩ／Ｆ
２２  ＤＥＭＵＸ
２３  制御ＣＰＵ
２４  映像処理部
２５  ＳＤＲＡＭインタフェース
【図１】
0005272414.tif 000002
【図２】
0005272414.tif 000003
【図３】
0005272414.tif 000004
【図４】
0005272414.tif 000005
【図５】
0005272414.tif 000006
【図６】
0005272414.tif 000007
【図７】
0005272414.tif 000008
【図８】
0005272414.tif 000009
【図９】
0005272414.tif 000010