説明

情報処理システム及びファームウェア実行方法

【課題】本発明は、ファームウェアのダウンロードを高速に行う情報処理システムを提供することを目的とする。
【解決手段】情報処理システムは、制御CPUと、処理対象のデータを含む入力ストリームを受け取りメモリに転送するストリームインタフェースを含み、ストリームインタフェースによりファームウェアを含むストリームデータを受け取りメモリに格納するダウンロード処理を制御CPUの指示により実行すると共に、メモリに格納されたストリームデータを制御CPUが解析することによりファームウェアをメモリ空間に展開し、メモリ空間に展開されたファームウェアを制御CPUが実行することにより処理対象のデータに対する処理を実行することを特徴とする。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、一般に情報処理システムに関し、詳しくはファームウェアを受信し実行することにより動作する情報処理装置を含む情報処理システムに関する。
【背景技術】
【0002】
画像処理技術や音声処理技術等の進歩により、それらを含む情報処理システムの高性能化及び高機能化が進んでいる。それに伴い、情報処理システムのハードウェアの回路規模やソフトウェアのコード量が増大している。
【0003】
図1は、ホスト装置(システムコントローラ)に専用の画像処理装置を接続した画像処理システムの構成の一例を示す図である。このように専用に画像処理を行うハードウェアを用いる構成により、高性能な画像処理機能を備えた情報処理システムを実現することができる。図1のシステムは、ホスト装置10、画像処理装置11、ブリッジ12、外部記憶装置13、及びSDRAM(同期型DRAM)14を含む。画像処理装置11は、シリアルインタフェースであるホストI/F(インタフェース)21、ストリームインタフェース用のデマルチプレクサ(分離器)であるDEMUX22、制御CPU23、映像処理部24、及びSDRAMインタフェース25を含む。
【0004】
ホスト装置10と画像処理装置11をシリアルインタフェースで接続し、ホストからの制御にしたがって画像処理装置11に画像処理を実行させる。図1に示す構成例では、画像処理を行うためのファームウェアを、まずシリアルポートを介してホスト装置10から画像処理装置11へ転送する。次に、転送後のファームウェアを画像処理装置11に実行させることにより、ストリームインタフェースを介した外部記憶装置13から画像処理装置11への画像データ転送を含む種々の画像データに関連する処理を実行する。
【0005】
図2は、図1の構成においてシリアルインタフェースを介してファームウェアをダウンロードする処理を示す流れ図である。図2に示す処理に従って、画像処理システムの起動時にホスト装置10から画像処理装置11にファームウェアをダウンロードし、それをブートアップすることで画像処理装置11を動作させる。
【0006】
具体的には、まず電源投入後、画像処理装置11の制御CPU23によりブートローダの実行が開始される。ブートローダは、制御CPU23に接続されるROM26(図1参照)に格納されている制御プログラムであり、画像処理装置11の電源が投入されると、制御CPU23がこの制御プログラムをまず最初に実行する。
【0007】
ブートローダの実行により、図2に示されるように、制御CPU23からホストI/F21を介してホスト装置10の割込み端子に対して割り込み信号がアサートされる(ステップS1)。このときホスト装置10は、割込み有無を判定する割込み待ちの状態にある(ステップS2)。画像処理装置11から割込みがあると、この割り込みに応答して、ホスト装置10はシリアルポートを介したファームウェアの転送処理を実行する(ステップS3)。具体的には、ホスト装置10が外部記憶装置13からファームウェアを読み出し、この読み出したファームウェアを、シリアルポートを介して画像処理装置11に転送する。
【0008】
図3は、ダウンロードされるファームウェアのフォーマットの一例を示す図である。図3に示すファームウェア30は、ヘッダ部31及び複数n個(n:2以上の整数)のデータブロック部32−1乃至32−nを含む。ヘッダ部31では、ヘッダ領域にエントリアドレス33及びブロックカウント34が含まれている。エントリアドレス33は、メモリ領域に格納されたファームウェアの実行開始アドレスを示し、ブロックカウント34はブロックの個数nを示す。各データブロック部32−1乃至32−nは、それぞれのブロックヘッダ領域にトップアドレス35及びバイトカウント36を含む。トップアドレス35は、メモリ領域内での対応ブロック部の配置アドレスを示し、バイトカウント36は対応ブロック部の本体(データ部)のデータ量をバイト単位で示す。
【0009】
ブートローダ実行中の制御CPU23は、シリアルインタフェースであるホストI/F21を介して受信されるファームウェア30(シリアルデータ)を解析する(ステップS4)。この解析結果に基づいて、制御CPU23は、データブロック部32−1乃至32−nの各ヘッダに設定されているトップアドレス35へ、対応ブロックのデータ部分のファームウェア本体を転送する(ステップS5)。具体的には、SDRAMインタフェース25を介してSDRAM14にファームウェアのデータを書き込む。また上記解析結果に基づいて、制御CPU23は、ファームウェア30のブロックカウント34及びバイトカウント36に指定されるデータ量のファームウェアの受信が完了したか否かを判定する(ステップS6)。
【0010】
ファームウェアの受信が完了するとブートローダからファームウェアに制御移管が行われる(ステップS7)。具体的には、制御CPU23は、ファームウェア30のヘッダ部31のエントリアドレス33が示す実行開始アドレスにプログラムポインタを設定して、ファームウェアの実行を開始する。ファームウェアの実行により、制御CPU23からホストI/F21を介してホスト装置10の割込み端子に対して割り込み信号がアサートされる(ステップS8)。この割込みにより、画像処理装置11はホスト装置10に対してブートアップ完了を通知する。ホスト装置10は、このブートアップ完了通知に応答して、所定の処理を開始する。
【0011】
上記のような構成においてファームウェア30をダウンロードするシリアルインタフェースとしては、汎用的なRS−232C/UART/I2C等のシリアル通信インタフェースを用いるのが一般的な構成である。しかしそのようなシリアル通信インタフェースのデータ転送速度が比較的低速であるために、情報処理装置が高性能化してファームウェアのサイズが増大すると、ファームウェアのダウンロードに時間がかかりすぎてしまうという問題が発生する。外付けのフラッシュメモリ等からファームウェアをダウンロードする方法もあるが、そのような構成ではピン数や部品コストが余計にかかってしまうという問題がある。
【0012】
また、本願発明に関連する先行技術として、例えば、下記の特許文献1に開示される技術がある。
【特許文献1】特開2007−72532号公報
【発明の開示】
【発明が解決しようとする課題】
【0013】
以上を鑑みて、本発明は、ファームウェアのダウンロードを高速に行う情報処理システムを提供することを目的とする。
【課題を解決するための手段】
【0014】
情報処理システムは、制御CPUと、処理対象のデータを含む入力ストリームを受け取りメモリに転送するストリームインタフェースを含み、該ストリームインタフェースによりファームウェアを含むストリームデータを受け取り該メモリに格納するダウンロード処理を該制御CPUの指示により実行すると共に、該メモリに格納された該ストリームデータを該制御CPUが解析することにより該ファームウェアをメモリ空間に展開し、該メモリ空間に展開された該ファームウェアを該制御CPUが実行することにより該処理対象のデータに対する処理を実行することを特徴とする。
【0015】
また情報処理システムにおけるファームウェア実行方法は、制御CPUと、処理対象のデータを含む入力ストリームを受け取りメモリに転送するストリームインタフェースとを含む情報処理システムにおいて、該ストリームインタフェースによりファームウェアを含むストリームデータを受け取り、該受け取ったストリームデータを該メモリに格納し、該メモリに格納された該ストリームデータを該制御CPUにより解析し、該解析の結果に基づいて該制御CPUにより該ファームウェアをメモリ空間に展開し、該メモリ空間に展開された該ファームウェアを該制御CPUにより実行する各段階を含むことを特徴とする。
【発明の効果】
【0016】
本発明の少なくとも1つの実施例によれば、処理対象のデータのストリームを受信するために情報処理装置に設けられている既存のストリームインタフェースを活用し、このストリームインタフェースを介してファームウェアをダウンロードする。この際、ストリームインタフェースによりファームウェアを含むストリームデータを受け取りメモリにそのまま格納し、その後、メモリに格納されたストリームデータを制御CPUが解析することにより、ファームウェアをメモリ空間に展開する。更に、メモリ空間に展開されたファームウェアを制御CPUが実行することにより、処理対象のデータに対する処理を実行する。この構成により、新たな高速インタフェースを追加することなく、高速なダウンロードを実現することが可能となる。
【発明を実施するための最良の形態】
【0017】
以下に、本発明の実施例を添付の図面を用いて詳細に説明する。
【0018】
本発明の情報処理システムの実施例としては、図1に示す画像処理システムの構成をそのまま用いてよい。但し、情報処理の内容として画像処理等の特定の情報処理に限定されるものではなく、本発明の情報処理システムは音声処理システムや映像・音声処理システム等を含む任意の情報処理内容の情報処理システムであってよい。
【0019】
図1のDEMUX22は、受信ストリーム中に含まれる複数のストリームを分離する機能を有する。例えば、受信ストリーム中に含まれる映像ストリームと音声ストリームとを分離して、それぞれのバッファ(例えばSDRAM14内の対応するメモリ領域)に映像データと音声データとを格納する。バッファから読み出される映像データと音声データとは、それぞれの対応するデコーダにより復号処理される。図1の構成では、情報処理システムの画像処理部分として映像処理部24のみが示されており、この映像処理部24により画像復号化処理を実行する。
【0020】
ストリームの例としては、MPEG(Moving Picture Experts Group)によりMPEG−1システム及びMPEG−2システムに対してそれぞれ規定されるストリームがある。MPEGでは、ビデオデータとオーディオデータとの2つのデータに分かれている場合、それぞれをエレメンタリーストリーム(Elementary Stream)と呼ぶ。エレメンタリーストリームはパケットと呼ばれる単位に分割され、パケット化エレメンタリーストリーム(Packetized Elementary Stream)を構成する。各パケットにはパケットヘッダが付加される。パケットヘッダには、ストリーム識別用のコード、パケットのサイズに関する情報、PTS(Presentation Time Stamp)やDTS(Decoding Time Stamp)等の同期再生のための時間情報等が含まれる。また任意の数のパケットを集めた纏まりをパックと呼ぶ。各パックに付加されるパックヘッダには、基準時間情報SCR(System Clock Reference)等が記述されている。このようにシステムストリームをパック単位に構成することにより、受信側では、ストリーム全体を受信する前にストリーム途中からの再生が可能となる。
【0021】
MPEG−1の場合、ビデオデータとオーディオデータとを多重化した1つのストリームをシステムストリーム(System Stream)と呼ぶ。MPEG−2の場合、ビデオデータとオーディオデータとを多重化した1つのストリームをプログラムストリーム(Program Stream)と呼ぶ。1つのプログラムストリームには、唯1つのプログラムが含まれる。それに対して1ストリームの中に複数のプログラムストリームを含む形式として、トランスポートストリームがあり、放送や通信ネットワークなどにおいて利用される。以下の説明においては、MPEG−2のトランスポートストリームを想定している。
【0022】
図4は、DEMUX22の機能ブロック構成の一例を示す図である。図4に示すDEMUX22は、D_IN部41とD_TRBUF部42とを含む。D_IN部41部は、ストリームの入力を行なうモジュールであり、入力ストリーム中に含まれる指定コード(例えば0x47)を検出することにより同期を確立する。また更にD_IN部41において、画像処理装置11の基準クロックであるSTC(System Time Clock)に対するストリームデータの重畳が行なわれる。D_TRBUF部42はDMA(Direct Memory Access)機能を有する。D_TRBUF部42が独立してメモリアクセスすることにより、ストリームデータを出力先のバッファにDMA転送する。なおDEMUX22のデータ分離機能は、バッファへの転送時に必要に応じてストリームを分離しそれぞれの転送先にデータを振り分けることにより実現される。
【0023】
上述の説明のように、画像処理装置11には、画像データのストリームを受信して同期をとり、出力先のバッファにDMA転送するDEMUX22が既に設けられている。即ち、情報処理装置(この例では画像処理装置11)の情報処理対象のデータ(この例では画像データ)をストリームとして受け取り、メモリにDMA転送するストリームインタフェース(この例ではDEMUX22)が既に設けられている。そのようなストリームインタフェースは、大量の処理対象のデータ(映像データや音声データ)を高速に受信してバッファに転送することができる高速インタフェースである。即ち、DEMUX22のデータ転送速度は、RS−232C/UART/I2C等のシリアルインタフェースであるホストI/F21のデータ転送速度よりも格段に早い。本発明の実施例による情報処理装置においては、以下に詳細に説明するように、そのようなストリームインタフェース(図1の例ではDEMUX22)をファームウェアのダウンロードのために用いる。
【0024】
この際、DEMUX22には制御CPU23のようなデータ解析機能はなく、受信したストリームデータをそのままSDRAM14に格納することしかできない。図2に示すようにシリアルインタフェースであるホストI/F21を介して制御CPU23がファームウェアを受け取る場合には、制御CPU23は、データブロック部32−1乃至32−nの各ヘッダに設定されているトップアドレス35へ各ブロックのデータ部分のファームウェア本体を書き込むことができる。即ち、ヘッダの解析結果に基づいて、ファームウェアをメモリ空間に適切に展開することができる。しかしDEMUX22をファームウェアの受信及びメモリ格納用に用いる場合には、受信したストリームデータをそのままメモリに書き込むのみであり、ヘッダ解析に基づいたファームウェアのメモリ空間への展開処理を実行することができない。従って、DEMUX22によりSDRAM14に受信ストリームデータを書き込んだ後に、制御CPU23によりSDRAM14から受信ストリームデータを読み出して、ヘッダを解析することにより、ファームウェアをメモリ空間に適切に展開する処理が必要になる。
【0025】
このように本発明の実施例による情報処理システムは、制御CPU(制御CPU23)と、処理対象のデータを含む入力ストリームを受け取りメモリに転送するストリームインタフェース(DEMUX22)とを含む構成である。この構成においては、ストリームインタフェース(DEMUX22)によりファームウェアを含むストリームデータを受け取りメモリ(SDRAM14)に格納するダウンロード処理を、制御CPU(制御CPU23)の指示により実行する。またメモリに格納されたストリームデータを制御CPU(制御CPU23)が解析することにより、ファームウェアをメモリ空間に展開する。更に、メモリ空間に展開されたファームウェアを制御CPU(制御CPU23)が実行することにより、処理対象のデータ(この例では画像データ)に対する処理を実行する。
【0026】
なお図1の構成例においては、SDRAM14が画像処理装置11の外付けのメモリとして示されるが、画像処理装置11内にローカルメモリとしてDRAMを含む構成であってもよい。この場合、ファームウェアを展開するメモリ空間は、ローカルメモリとSDRAM14とを合わせたメモリ空間となる。実際にファームウェアをローカルメモリとSDRAM14とのどちらのメモリに展開するのか、或いはファームウェアの一部をローカルメモリに展開し残りの部分をSDRAM14に展開するように構成する場合に何れの部分を選択的にローカルメモリに展開するのか等は、システム設計時に適宜決定すればよい事項である。
【0027】
また本発明の実施例による情報処理システムは、ホスト装置10と接続されるシリアルインタフェース(ホストI/F21)を更に含む構成であってよい。この構成において、制御CPU23がシリアルインタフェース(ホストI/F21)を介してダウンロード用プログラムをホスト装置10から受け取り、制御CPU23がそのダウンロード用プログラムを実行することにより、前記ダウンロード処理を実行してよい。このような構成とすることにより、小さな規模のダウンロード用プログラムをまずシリアルインタフェースを介して受け取り、そのダウンロード用プログラムを実行することにより、規模の大きなファームウェアをストリームインタフェース(DEMUX22)を介して受け取ることができる。このような構成とすれば、ファームウェアを含むストリームデータを受け取りメモリ(SDRAM14)に格納する際に、格納先のアドレスをダウンロード用プログラムにより指定することができる。従って、システムの構成に応じた柔軟なダウンロード処理が可能となる。
【0028】
また本発明の実施例による情報処理システムは、ブート用ROM26を更に含み、ブート用ROM26に格納されるダウンロード用プログラムを制御CPU23が実行することによりダウンロード処理を実行する構成であってよい。このような構成とすることで、より簡単な制御によるダウンロード処理を実現することができる。
【0029】
図5は、本発明の実施例により図1の構成においてストリームインタフェースを介してファームウェアをダウンロードする処理を示す流れ図である。図5に示す処理に従って、画像処理システムの起動時にホスト装置10から画像処理装置11にファームウェアをダウンロードし、それをブートアップすることで画像処理装置11を動作させる。
【0030】
具体的には、まず電源投入後、画像処理装置11の制御CPU23によりブートローダの実行が開始される。ブートローダは、制御CPU23に接続されるROM26に格納されている制御プログラムであり、画像処理装置11の電源が投入されると、制御CPU23がこの制御プログラムをまず最初に実行する。
【0031】
ブートローダの実行により、図5に示されるように、制御CPU23からホストI/F21を介してホスト装置10の割込み端子に対して割り込み信号がアサートされる(ステップS1)。このときホスト装置10は、割込み有無を判定する割込み待ちの状態にある(ステップS2)。画像処理装置11から割込みがあると、この割り込みに応答して、ホスト装置10はシリアルポートを介した第1のファームウェア(ダウンロード用プログラム)の転送処理を実行する(ステップS3)。具体的には、ホスト装置10が外部記憶装置13から第1のファームウェアを読み出し、この読み出した第1のファームウェアを、シリアルポートを介して画像処理装置11に転送する。
【0032】
ダウンロードされる第1のファームウェアのフォーマットは、例えば図3に示す構成と同様である。ブートローダ実行中の制御CPU23は、シリアルインタフェースであるホストI/F21を介して受信される第1のファームウェア(シリアルデータ)を解析する(ステップS4)。この解析結果に基づいて、制御CPU23は、各データブロック部のヘッダに設定されているトップアドレスへ、対応ブロックのデータ部分の第1のファームウェア本体を格納する。具体的には、SDRAMインタフェース25を介してSDRAM14に第1のファームウェアのデータを書き込む。また上記解析結果に基づいて、制御CPU23は、第1のファームウェアのブロックカウント及びバイトカウントに指定されるデータ量のファームウェアの受信が完了したか否かを判定する(ステップS5)。
【0033】
第1のファームウェアの受信が完了するとブートローダから第1のファームウェア(ダウンロード用ファームウェアSTDL_firm)に制御移管が行われる(ステップS6)。具体的には、制御CPU23は、第1のファームウェアのヘッダ部のエントリアドレスが示す実行開始アドレスにプログラムポインタを設定して、第1のファームウェアの実行を開始する。この第1のファームウェア(即ちダウンロード用プログラム)の実行により、以下に説明するように、第2のファームウェア(データ処理用のファームウェア)をダウンロードする。
【0034】
制御CPU23が第1のファームウェア(ダウンロード用ファームウェアSTDL_firm)の実行を開始すると、まず制御CPU23はDEMUX22に対してストリームポートの設定指示を行なう。前述のように、DEMUX22は、入力ストリーム中に含まれる指定コードを検出することにより同期を確立する機能(同期検出機能)と、画像処理装置11の基準クロックであるSTCに対してストリームデータを重畳する機能を有する。第2のファームウェア(データ処理用のファームウェア)をダウンロードする際にはこれらの機能は不要であるので、制御CPU23によるストリームポートの設定により、ダウンロード処理の実行を指示する前にこれらの機能を無効にする。
【0035】
なお画像処理装置11のストリームインタフェース(DEMUX22)は、例えば1ビットのクロック端子、8ビットのデータ端子、1ビットのイネーブル端子、1ビットのPSTART端子、1ビットのWAIT端子を有する。クロック端子を介して画像処理装置11に入力される転送クロックに同期して、データ端子を介してストリームデータが画像処理装置11に入力される。この際、イネーブル端子への入力信号によりストリームデータの有効期間を示す。またPSTART端子への入力信号によりストリームデータの各パケットの先頭バイトを示す。WAIT端子はバースト転送モードの場合に転送ウェイト信号を出力する。第1のファームウェアによりこれらの端子の設定が行われる。WAIT、PSTARTに対する設定は必ずしも必要ない。
【0036】
ストリームポートの設定完了後、制御CPU23からホストI/F21を介してホスト装置10の割込み端子に対して割り込み信号がアサートされる(ステップS8)。このときホスト装置10は、割込み有無を判定する割込み待ちの状態にある(ステップS9)。画像処理装置11から割込みがあると、この割り込みに応答して、ホスト装置10はストリーム出力インタフェース(図1のブリッジ12)に対してファームウェア出力を指示する。これに応じて、ストリーム出力インタフェースは第2のファームウェアを含むストリームデータを出力する(ステップS11)。画像処理装置11のDEMUX22はストリームデータを受信し、受信したストリームデータをSDRAMインタフェース25を介してSDRAM14にそのまま書き込む(ステップS12)。即ち、ストリームインタフェースがストリームデータを受け取りメモリに格納する際に、DEMUX22及び制御CPU23の何れも、ストリームデータの内容を解析しない。
【0037】
第2のファームウェアを含むストリームデータのフォーマットは、例えば図3に示す構成と同様である。この場合、DEMUX22はヘッダの内容を解析しないので、図3に示す構成のストリームデータがそのままSDRAM14に格納される。この際の格納先アドレスは、第1のファームウェア(ダウンロード用プログラム)により指定されるアドレスとなる。
【0038】
ホスト装置10は、第2のファームウェアを含むストリームデータの転送が完了すると考えられる一定の時間がファームウェア出力指示を発してから経過したか否かを、クロックによる計時動作により判定する(ステップS13)。転送完了すると考えられる一定の時間が経過すると、ホスト装置10は画像処理装置11に対してブートアップ指示を行なう(ステップS14)。このとき制御CPU23は、ブートアップ指示の有無を判定する待ち状態にある(ステップS15)。ホスト装置10からホストI/F21を介してブートアップ指示があると、このブートアップ指示に応答して、制御CPU23はSDRAMインタフェース25を介してSDRAM14から受信ストリームデータを読み出し、ストリームデータを解析する(ステップS16)。この解析結果に基づいて、制御CPU23は、第2のファームウェアをメモリ空間に展開する(S17)。即ち、制御CPU23は、各データブロック部のヘッダに設定されているトップアドレスへ、対応ブロックのデータ部分の第2のファームウェア本体を配置する。
【0039】
図6は、ストリームデータに含まれるファームウェアをメモリ空間に展開する動作を説明するための図である。図6においては、説明の便宜上、ストリームデータに2つのデータブロックが含まれる場合を示してある。図6に示されるように、受信したストリームデータ50は、エントリアドレス51、第1のデータブロックに対するトップアドレス52(トップアドレス#1)、第2のデータブロックに対するトップアドレス53(トップアドレス#2)、第1のデータブロックのデータ本体であるファームウェア部分54、及び第2のデータブロックのデータ本体であるファームウェア部分55を含む。DEMUX22により受信されたストリームデータ50は、そのままの形式でSDRAM14に格納されている。
【0040】
ファームウェアをメモリ空間に展開するために、制御CPU23はストリームデータ50をSDRAM14から読み出す。制御CPU23はストリームデータ50を解析し、エントリアドレス51、トップアドレス52(トップアドレス#1)、及びトップアドレス53(トップアドレス#2)を特定する。制御CPU23は、第1のデータブロックのデータ本体であるファームウェア部分54をメモリ空間上のトップアドレス#1(=エントリアドレス)の位置に書き込み、更に、第2のデータブロックのデータ本体であるファームウェア部分55をメモリ空間上のトップアドレス#2の位置に書き込む。即ち、制御CPU23はメモリに格納されたストリームデータを解析することにより、メモリ空間中のトップアドレスで始まる領域にファームウェアの各ブロックを展開する。以上により、ファームウェアをメモリ空間に展開する処理が終了する。
【0041】
第2のファームウェアのメモリ空間への展開処理が終了すると、データ解析・展開処理から第2のファームウェアに制御移管が行われる(ステップS18)。具体的には、制御CPU23は、受信ストリームデータ50に含まれるエントリアドレス51が示す実行開始アドレスにプログラムポインタを設定して、第2のファームウェアの実行を開始する。第2のファームウェアの実行により、制御CPU23からホストI/F21を介してホスト装置10の割込み端子に対して割り込み信号がアサートされる(ステップS19)。この割込みにより、画像処理装置11はホスト装置10に対してブートアップ完了を通知する。ホスト装置10は、このブートアップ完了通知に応答して、所定の処理を開始する。
【0042】
ホスト装置10は、例えば画像処理装置11に対して画像データを転送する処理を実行する。この際、画像処理装置11では制御CPU23が第2のファームウェアを実行しており、画像処理装置11の動作は第2のファームウェアにより制御されることになる。
【0043】
図7は、画像処理装置11へ画像データを転送する処理の流れを示す図である。まずホスト装置10は、設定コマンドを画像処理装置11に対して転送する(ステップS1)。ホスト装置10から送信されたコマンドは、ホストI/F21により受信され、制御CPU23に供給される。この際、制御CPU23では既に第2のファームウェアが実行中であり、ホストI/F21のシリアルAPI(Application Program Interface)が有効になっていて種々のコマンドを受け付けることができる。なお第2のファームウェアが実行される前の段階では、第1のファームウェアの転送(図5のS3)及びブートアップ指示(図5のS14)のみを受け付けることができるに過ぎない。
【0044】
制御CPU23は、受信したシリアルデータを解析し(ステップS2)、解析結果に従ってDEMUX22のストリームポートを設定する(ステップS3)。前述のようにDEMUX22は、入力ストリーム中に含まれる指定コードを検出することにより同期を確立する機能(同期検出機能)と、画像処理装置11の基準クロックであるSTCに対してストリームデータを重畳する機能を有する。画像データをダウンロードする際には、制御CPU23によるストリームポートの設定によりこれらの機能を有効にする。但しSTC重畳処理については、場合によっては無効設定のままでもよい。
【0045】
ストリームポートの設定が完了すると制御CPU23は、ホストI/F21を介してコマンド応答(アクノレッジ)をホスト装置10に送信する。このときホスト装置10は、コマンド応答の有無を判定する待ちの状態にある(ステップS4)。画像処理装置11からコマンド応答があると、これに応答して、ホスト装置10はシリアルポートを介してデコードコマンドを発行する(ステップS5)。制御CPU23は、ホストI/F21を介してホスト装置10からデコードコマンドを受信すると、デコードモードに移行する。デコードモードに移行すると、制御CPU23はホストI/F21を介してホスト装置10に対して割込みをアサートする。このときホスト装置10は、割込み有無を判定する割込み待ちの状態にある(ステップS7)。画像処理装置11から割込みがあると、この割り込みに応答して、ホスト装置10はシリアルポートを介してストリーム開始コマンドを発行する(ステップS8)。制御CPU23は、ホストI/F21を介してホスト装置10からストリーム開始コマンドを受信し、DEMUX22に対してウェイト信号解除設定を行なう(ステップS9)。
【0046】
ウェイト信号解除設定をした制御CPU23は、ホストI/F21を介してコマンド応答(アクノレッジ)をホスト装置10に送信する。このときホスト装置10は、コマンド応答の有無を判定する待ちの状態にある(ステップS10)。画像処理装置11からコマンド応答があると、これに応答して、ホスト装置10はストリーム出力インタフェース(図1のブリッジ12)に対して画像データのストリーム転送を指示する。これに応じて、ストリーム出力インタフェースは画像データのストリームを出力する(ステップS12)。画像処理装置11のDEMUX22は画像データのストリームを受信し、同期検出及びSTC重畳等を実行した後、SDRAMインタフェース25を介してSDRAM14に画像データを書き込む(ステップS13)。バッファとして機能するSDRAM14に書き込まれた画像データは、その後映像処理部24により復号処理される。
【0047】
ホスト装置10は、画像ストリームを停止したいとき、随時ストリーム終了コマンドを発行する(ステップS14)。制御CPU23は、ホストI/F21を介してホスト装置10からストリーム終了コマンドを受信すると、DEMUX22に対してストリーム受信を終了するようにストリームポート設定を行なう。
【0048】
図7に示される上記制御CPU23の動作は全て第2のファームウェアにより制御されている。このようにして、ストリームインタフェース(DEMUX22)を介してダウンロードしたファームウェアを制御CPU23により実行することにより、処理対象のデータ(画像データ)をストリームインタフェース(DEMUX22)を介して受信して処理することが可能となる。
【0049】
ここまで説明した実施例では、第1のファームウェア(ダウンロード用プログラム)をホスト装置10からホストI/F21を介して画像処理装置11にダウンロードする構成となっていた。別の構成として、第1のファームウェア(ダウンロード用プログラム)を予めブート用ROM26に格納しておき、電源投入時には、ブート用ROM26に格納されている第1のファームウェア(ダウンロード用プログラム)を制御CPU23により実行する構成としてもよい。
【0050】
図8は、第1のファームウェア(ダウンロード用プログラム)を最初にダウンロードし、この第1のファームウェアを実行することにより第2のファームウェア(データ処理用ファームウェア)をダウンロードする場合の手順を示す図である。この手順は、図5に示す手順を簡略化して示すものであり、その詳細については説明を省略する。
【0051】
図9は、第1のファームウェア(ダウンロード用プログラム)をブート用ROMに格納しておき、この第1のファームウェアを実行することにより第2のファームウェア(データ処理用ファームウェア)をダウンロードする場合の手順を示す図である。画像処理装置11の電源投入後、制御CPU23がブート用ROM26に格納される第1のファームウェアを実行することにより、ブートアップシーケンスが実行される。このブートアップシーケンスでは、ストリームポートを介してファームウェアをダウンロードするための準備として、制御CPU23がDEMUX22のストリーム入力ポート部に関する各種設定を行う(S1)。この設定完了後、制御CPU23からホスト装置10に対して設定完了割り込みをアサートする(S2)。この割込みに応答して、ホスト装置10はストリームポートを介してファームウェアの転送を開始する(S3)。転送されたファームウェアは、順次、SDRAM14に保存される。ファームウェアの転送終了後、ホスト装置10は画像処理装置11に対してブートアップ指示割り込みを行う(S4)。画像処理装置11は、ホスト装置10よりブートアップ指示割り込みを受けると、SDRAM14よりファームデータを読み込みヘッダの解析を行い、解析結果に基づいてファームウェアを展開し、更に指定の実行開始アドレスから展開後のファームウェアを実行する(S5)。実行されたファームウェアによりブートアップ完了割り込みをホスト装置10へ通知する(S6)。
【0052】
図9に示す手順と図8に示す手順とを比較すれば分かるように、図9に示す処理は、図8に示す手順の後半部分の処理と同一である。即ち、図8の手順の場合には、ホストI/F21を介してホスト装置10からダウンロードした第1のファームウェアを制御CPU23が実行するのに対して、図9の手順の場合には、ブート用ROM26に格納してある第1のファームウェアを制御CPU23が実行する点が異なるのみである。図9の手順の場合、ホストI/F21を介したホスト装置10からのダウンロード処理を省くことができるので、より単純な制御手順で第2のファームウェアをダウンロードすることが可能となる。
【0053】
以上、本発明を実施例に基づいて説明したが、本発明は上記実施例に限定されるものではなく、特許請求の範囲に記載の範囲内で様々な変形が可能である。
【図面の簡単な説明】
【0054】
【図1】ホスト装置に専用の画像処理装置を接続した画像処理システムの構成の一例を示す図である。
【図2】図1の構成においてシリアルインタフェースを介してファームウェアをダウンロードする処理を示す流れ図である。
【図3】ダウンロードされるファームウェアのフォーマットの一例を示す図である。
【図4】DEMUXの機能ブロック構成の一例を示す図である。
【図5】本発明の実施例により図1の構成においてストリームインタフェースを介してファームウェアをダウンロードする処理を示す流れ図である。
【図6】ストリームデータに含まれるファームウェアをメモリ空間に展開する動作を説明するための図である。
【図7】画像処理装置へ画像データを転送する処理の流れを示す図である。
【図8】ダウンロード用プログラムを最初にダウンロードし、ダウンロード用プログラムを実行することによりデータ処理用ファームウェアをダウンロードする場合の手順を示す図である。
【図9】ダウンロード用プログラムをブート用ROMに格納しておき、ダウンロード用プログラムを実行することによりデータ処理用ファームウェアをダウンロードする場合の手順を示す図である。
【符号の説明】
【0055】
10 ホスト装置
11 画像処理装置
12 ブリッジ
13 外部記憶装置
14 SDRAM
21 ホストI/F
22 DEMUX
23 制御CPU
24 映像処理部
25 SDRAMインタフェース

【特許請求の範囲】
【請求項1】
制御CPUと、
処理対象のデータを含む入力ストリームを受け取りメモリに転送するストリームインタフェース
を含み、該ストリームインタフェースによりファームウェアを含むストリームデータを受け取り該メモリに格納するダウンロード処理を該制御CPUの指示により実行すると共に、該メモリに格納された該ストリームデータを該制御CPUが解析することにより該ファームウェアをメモリ空間に展開し、該メモリ空間に展開された該ファームウェアを該制御CPUが実行することにより該処理対象のデータに対する処理を実行することを特徴とする情報処理システム。
【請求項2】
ホスト装置と接続されるシリアルインタフェースを更に含み、前記制御CPUが該シリアルインタフェースを介してダウンロード用プログラムを該ホスト装置から受け取り、該制御CPUが該ダウンロード用プログラムを実行することにより前記ストリームインタフェースによるダウンロード処理を実行することを特徴とする請求項1記載の情報処理システム。
【請求項3】
前記ダウンロードプログラムの実行により、前記ストリームインタフェースのポートの設定を行った後に、前記ストリームインタフェースによるダウンロード処理を行うことを特徴とする請求項2記載の情報処理システム。
【請求項4】
ブート用ROMを更に含み、該ブート用ROMに格納されるダウンロード用プログラムを前記制御CPUが実行することにより前記ダウンロード処理を実行することを特徴とする請求項1記載の情報処理システム。
【請求項5】
前記ストリームインタフェースは、前記制御CPUとは独立に前記メモリにアクセスすることにより前記ストリームデータを該メモリに格納することを特徴とする請求項1記載の情報処理システム。
【請求項6】
前記ストリームインタフェースが前記ストリームデータを受け取り前記メモリに格納する際に、前記制御CPUは該ストリームデータの内容を解析しないことを特徴とする請求項1記載の情報処理システム。
【請求項7】
前記ストリームデータは前記ファームウェアの実行開始アドレスであるエントリアドレスを示すデータを含み、前記制御CPUは前記メモリに格納された該ストリームデータを解析することにより、前記メモリ空間中の該エントリアドレスで始まる領域に該ファームウェアを展開することを特徴とする請求項1記載の情報処理システム。
【請求項8】
前記ストリームデータは前記ファームウェアの各ブロックを配置するアドレスであるトップアドレスを示すデータを更に含み、前記制御CPUは前記メモリに格納された該ストリームデータを解析することにより、前記メモリ空間中の該トップアドレスで始まる領域に該ファームウェアの各ブロックを展開することを特徴とする請求項7記載の情報処理システム。
【請求項9】
前記ストリームインタフェースは前記処理対象のデータを含む入力ストリームを受け取った際に同期検出する機能を含み、前記制御CPUは、前記ダウンロード処理の実行を指示する前に該同期検出機能が無効になるように該ストリームインタフェースを設定することを特徴とする請求項1記載の情報処理システム。
【請求項10】
制御CPUと、処理対象のデータを含む入力ストリームを受け取りメモリに転送するストリームインタフェースとを含む情報処理システムにおいて、
該ストリームインタフェースによりファームウェアを含むストリームデータを受け取り、
該受け取ったストリームデータを該メモリに格納し、
該メモリに格納された該ストリームデータを該制御CPUにより解析し、
該解析の結果に基づいて該制御CPUにより該ファームウェアをメモリ空間に展開し、
該メモリ空間に展開された該ファームウェアを該制御CPUにより実行する
各段階を含むことを特徴とする情報処理システムにおけるファームウェア実行方法。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate


【公開番号】特開2009−169805(P2009−169805A)
【公開日】平成21年7月30日(2009.7.30)
【国際特許分類】
【出願番号】特願2008−8935(P2008−8935)
【出願日】平成20年1月18日(2008.1.18)
【出願人】(308014341)富士通マイクロエレクトロニクス株式会社 (2,507)
【Fターム(参考)】