(57)【特許請求の範囲】
【請求項１】
端末装置であって、
固有のバンクアドレスが割り当てられたn個(nは2以上の整数)の分割領域を有しており、各分割領域に１以上のソフトウェアモジュールが配置された配置済み領域と、バージョンアップ時におけるソフトウェアモジュールのデータサイズの増加分を見込んだ空き領域とを設けた第１メモリと、
前記n個の分割領域のうち、一つのものと同じメモリ容量を有する第２メモリと、
分割領域の何れかに配置されている１以上のソフトウェアモジュールの最新バージョンを格納したコンテンツ部と、ソフトウェアモジュールの格納先を示す格納先バンクアドレスを格納したヘッダ部とからなる送信データがホスト局から送信されると、これを受信する受信手段と、
受信した送信データのヘッダ部を分離して、コンテンツ部に含まれている最新バージョンソフトウェアモジュールを第２メモリに蓄積する分離手段と、
分離されたヘッダ部からコンテンツ部の格納先を示す格納先バンクアドレスを検出する検出手段と、
第２メモリに蓄積されたコンテンツ部から最新バージョンのソフトウェアモジュールを順次読み出して、検出された格納先バンクアドレスが割り当てられた分割領域に配置する配置手段と
を備えることを特徴とする端末装置。
【請求項２】
前記メモリにおけるn個の分割領域のうち、第１分割領域にはローダプログラムのマスターが配置されると共に、第２分割領域にはローダプログラムのバックアップが配置され、
前記配置手段は
検出手段により検出されたバンクアドレスが第１分割領域以外の分割領域を指示していれば、第１分割領域に配置されているマスターのローダプログラムに従って、第２メモリに蓄積された最新バージョンを第１分割領域以外の分割領域に配置する第１配置制御部と、
検出手段により検出されたバンクアドレスが第１分割領域を指示していれば、第２分割領域に配置されているバックアップのローダプログラムに従って、第２メモリに蓄積された最新バージョンを第１分割領域に配置する第２配置制御部と
を備えることを特徴とする請求項１記載の端末装置。
【請求項３】
前記第１分割領域においてローダプログラムのマスターと共に配置されているソフトウェアモジュールは、他の分割領域に配置されているソフトウェアモジュールよりもバージョンアップの頻度が低い
ことを特徴とする請求項２記載の端末装置。
【請求項４】
前記メモリにおけるn個の分割領域のうち、第１分割領域にはローダプログラムのマスターが配置され、
前記配置手段は
検出手段により検出されたバンクアドレスにより指示される分割領域が第１分割領域以外の分割領域であれば、第１分割領域に配置されているローダプログラムに従って、第２メモリに蓄積された最新バージョンを第１分割領域以外の分割領域に配置する第１配置制御部と、
検出手段により検出されたバンクアドレスにより指示される分割領域が第１分割領域であれば、第１分割領域に配置されているローダプログラムに従って、第２メモリに蓄積された最新バージョンを配置手段における第１分割領域とは異なる第２分割領域に配置する第２配置制御部と、
第２分割領域への配置が行われると、第２配置制御部による配置以前に第２分割領域に配置されていた1以上のソフトウェアモジュールの最新バージョンが第２メモリに蓄積されたかを監視する監視部と、
以前に配置されていた1以上のソフトウェアモジュールの最新バージョンが第２メモリに蓄積されると、第２分割領域に配置されているローダプログラムに従って、第２メモリに蓄積された1以上のソフトウェアモジュールを第１分割領域に配置する第３配置制御部と
を備えることを特徴とする請求項１記載の端末装置。
【請求項５】
前記第１分割領域においてローダプログラムのマスターと共に配置されているソフトウェアモジュールは、他の分割領域に配置されているソフトウェアモジュールよりもバージョンアップの頻度が低い
ことを特徴とする請求項４記載の端末装置。
【請求項６】
送信データのコンテンツ部は、ソフトウェアモジュールの最新バージョンを複数有し、ヘッダ部は、複数のバンクアドレスを有し、各バンクアドレスは、コンテンツ部に含まれている各ソフトウェアモジュールの格納先を示しており、
前記端末装置は
前記n個の分割領域のうち、一つのものと同じメモリ容量を有する第３メモリを備え、
前記配置手段は
送信データのコンテンツ部にソフトウェアモジュールの最新バージョンが配置されれば、何れかのソフトウェアを取り出す取出部と、
検出手段により検出されたバンクアドレスにより指示された分割領域に配置されている複数のソフトウェアモジュールを第３メモリに配置する第１配置制御部と、
第３メモリ内に配置された複数のソフトウェアモジュールの一部を、第２メモリから取り出された最新バージョンに差し替える差替部と、
第３メモリ内の分割領域の複数のソフトウェアモジュールが差し替えられると、差替後の第３メモリの内容を識別された分割領域に配置する第２配置制御部と、
第２メモリの内容が分割領域に配置されると、別のソフトウェアモジュールを取り出させる取出制御部と
を備えることを特徴とする請求項１記載の端末装置。
【請求項７】
ｍ本のソフトウェアを分散して格納しているｎ個（ｍ≧ｎ≧２）の分割領域から構成され、そのうち２個の分割領域にローダプログラムのマスターと、バックアップとを配しているメモリと、何れかの分割領域に格納されているソフトウェア群の最新バージョンを含む通信データを受信する受信部と、受信したソフトウェア群の最新バージョンを蓄積するバッファとを備え、受信部が通信データを受信すると、ローダプログラムのマスターの処理を開始する端末装置に用いられるローダプログラムに適用されるダウンロード方法であって、
端末装置は、さらに、最新バージョン識別部、領域判定部、書き込み部、ローダプログラム起動部とを備え、
バッファに蓄積されたソフトウェア群がどの分割領域に格納されているソフトウェア群の最新バージョンであるかを、最新バージョン識別部が識別する識別ステップと、
識別された分割領域が実行中のローダプログラムの配された分割領域であるか否かを、領域判定部が判定する判定ステップと、
実行中のローダプログラムが配された分割領域でなければ、識別された格納先にバッファ内のソフトウェア群を、書き込み部が書き込む書込ステップと、
実行中のローダプログラムが配された分割領域であれば、別分割領域に配されたバックアップのローダプログラムを、ローダプログラム起動部が起動する起動ステップと
を備えることを特徴とするダウンロード方法。
【請求項８】
前記通信データは、最新バージョンの格納先となる分割領域を指示する格納先情報を含み、
前記識別ステップは、
バッファにソフトウェア群が蓄積されると、受信した通信データに含まれている格納先情報を認識する第１認識サブステップを有し、
前記判定ステップは、
格納先情報が認識されると、現在実行されているローダプログラムがどのメモリ分割領域に配されているものであるかを認識する第２認識サブステップと、
第１認識サブステップにより認識された格納先メモリと、第２認識サブステップにより認識された分割領域とが一致するか否かを判定する判定サブステップと
を備えることを特徴とする請求項７記載のダウンロード方法。
【請求項９】
ｍ本のソフトウェアを分散して格納しているｎ個（ｍ≧ｎ≧２）の分割領域から構成され、そのうち１個の分割領域にローダプログラムのマスターを配しているメモリと、何れかの分割領域に格納されているソフトウェア群の最新バージョンを含む通信データを受信する受信部と、受信したソフトウェア群の最新バージョンを蓄積するバッファとを備え、受信部が通信データを受信すると、ローダプログラムのマスターの処理を開始する端末装置において用いられるローダプログラムに適用されダウンロード方法であって、
端末装置は、さらに、最新バージョン識別部、第１判定部、第１書き込み部、ローダプログラム起動部、第２判定部、第２書き込み部とを備え、
バッファに蓄積されたソフトウェア群がどの分割領域に格納されているソフトウェア群の最新バージョンであるかを、最新バージョン識別部が識別する識別ステップと、
識別された分割領域が実行中のローダプログラムの配された分割領域であるか否かを、第１判定部が判定する第１判定ステップと、
格納先が実行中のローダプログラムが配された分割領域であれば（以下、この分割領域を旧ローダ分割領域という。）、第１書き込み部が、別の分割領域（以下、この分割領域を新ローダ分割領域という。）にバッファ内のソフトウェア群を書き込む第１書込ステップと、
ローダプログラム起動部が、新ローダ分割領域に書き込まれたソフトウェア群に含まれているローダプログラムを再起動する起動ステップと、
ローダプログラムが再起動されると、新ローダ分割領域において以前格納されていたソフトウェア群がバッファに蓄積されたかを、第２判定部が判定する第２判定ステップと、
以前格納されていたソフトウェア群がバッファに蓄積されると、第２書き込み部が、これらのソフトウェア群を旧ローダ分割領域に書き込む第２書込ステップと
を備えることを特徴とするダウンロード方法。
【請求項１０】
ｍ本のソフトウェアを分散して格納しているｎ個（ｍ≧ｎ≧２）の分割領域から構成され、そのうち２個の分割領域にローダプログラムのマスターと、バックアップとを配しているメモリと、通信データであって、何れかの分割領域に格納されているソフトウェアの最新バージョンを含むものを受信する受信部と、受信したソフトウェア群の最新バージョンを蓄積する第１バッファと、何れかの分割領域に格納されているソフトウェア群を格納し得る第２バッファとを備え、受信部が通信データを受信すると、ローダプログラムのマスターの処理を開始する端末装置に用いられるローダプログラムに適用されダウンロード方法であって、
端末装置は、さらに、取り出し部、識別部、第１書き込み部、差し替え部、第２書き込み部、制御部とを備え、
バッファにソフトウェアの最新バージョンが複数蓄積されれば、取り出し部が、何れかのソフトウェアを取り出す取出ステップと、
取り出された最新バージョンソフトウェアがどの分割領域に格納されているソフトウェアの最新バージョンであるかを、識別部が識別する識別ステップと、
第１書き込み部が、識別された分割領域に格納されているソフトウェア群を第２バッファに書き込む第１書込ステップと、
差し替え部が、第２バッファ内に書き込まれた分割領域のソフトウェア群の一部を、第１バッファ内の最新バージョンを用いて差し替える差替ステップと、
第２バッファ内の分割領域のソフトウェア群が差し替えられると、第２書き込み部が、差替後の第２バッファの内容を分割領域に書き込む第２書込ステップと、
第２バッファの内容が分割領域に書き込まれると、制御部が、別のソフトウェアモジュールを取り出させる制御ステップと
を備えることを特徴とするダウンロード方法。
【請求項１１】
ｍ本のソフトウェアを分散して格納しているｎ個（ｍ≧ｎ≧２）の分割領域から構成され、そのうち２個の分割領域にローダプログラムのマスターと、バックアップとを配しているメモリと、何れかの分割領域に格納されているソフトウェア群の最新バージョンを含む通信データを受信する受信部と、受信したソフトウェア群の最新バージョンを蓄積するバッファとを備え、受信部が通信データを受信すると、ローダプログラムのマスターの処理を開始する端末装置に用いられるローダプログラムを記録した記録媒体であって、
端末装置は、さらに、最新バージョン識別部、領域判定部、書き込み部、ローダプログラム起動部とを備え、
バッファに蓄積されたソフトウェア群がどの分割領域に格納されているソフトウェア群の最新バージョンであるかを、最新バージョン識別部において識別する識別ステップと、
識別された分割領域が実行中のローダプログラムの配された分割領域であるか否かを、領域判定部において判定する判定ステップと、
実行中のローダプログラムが配された分割領域でなければ、書き込み部において、識別された格納先にバッファ内のソフトウェア群を書き込む書込ステップと、
実行中のローダプログラムが配された分割領域であれば、別分割領域に配されたローダプログラムを、ローダプログラム起動部において起動する起動ステップと
を端末装置に実行させるローダプログラムを記録した記録媒体。
【請求項１２】
前記通信データは、最新バージョンの格納先となる分割領域を指示する格納先情報を含み、
前記識別ステップは、
バッファにソフトウェア群が蓄積されると、受信した通信データに含まれている格納先情報を、最新バージョン識別部において認識する第１認識サブステップを含み、
前記判定ステップは、
格納先情報が認識されると、現在実行されているローダプログラムがどのメモリ分割領域に配されているものであるかを、領域判定部において認識する第２認識サブステップと、
第１認識サブステップにより認識された格納先メモリと、第２認識サブステップにより認識された分割領域とが一致するか否かを、領域判定部において判定する判定サブステップとを含む
ことを特徴とする請求項１１記載の記録媒体。
【請求項１３】
ｍ本のソフトウェアを分散して格納しているｎ個（ｍ≧ｎ≧２）の分割領域から構成され、そのうち１個の分割領域にローダプログラムのマスターを配しているメモリと、何れかの分割領域に格納されているソフトウェア群の最新バージョンを含む通信データを受信する受信部と、受信したソフトウェア群の最新バージョンを蓄積するバッファとを備え、受信部が通信データを受信すると、ローダプログラムのマスターの処理を開始する端末装置端末装置において用いられるローダプログラムを記録した記録媒体であって、
端末装置は、さらに、最新バージョン識別部、第１判定部、第１書き込み部、ローダプログラム起動部、第２判定部、第２書き込み部とを備え、
バッファに蓄積されたソフトウェア群がどの分割領域に格納されているソフトウェア群の最新バージョンであるかを、最新バージョン識別部において識別する識別ステップと、
識別された分割領域が実行中のローダプログラムの配された分割領域であるか否かを、第１判定部において判定する第１判定ステップと、
格納先が実行中のローダプログラムが配された分割領域であれば（以下、この分割領域を旧ローダ分割領域という。）、第１書き込み部において、別の分割領域（以下、この分割領域を新ローダ分割領域という。）にバッファ内のソフトウェア群を書き込む第１書込ステップと、
新ローダ分割領域に書き込まれたソフトウェア群に含まれているローダプログラムを、ローダプログラム起動部において再起動する起動ステップと、
ローダプログラムが再起動されると、新ローダ分割領域において以前格納されていたソフトウェア群がバッファに蓄積されたかを、第２判定部において判定する第２判定ステップと、
以前格納されていたソフトウェア群がバッファに蓄積されると、第２書き込み部において、これらのソフトウェア群を旧ローダ分割領域に書き込む第２書込ステップと
を端末装置に実行させるローダプログラムを記録した記録媒体。
【請求項１４】
ｍ本のソフトウェアを分散して格納しているｎ個（ｍ≧ｎ≧２）の分割領域から構成され、そのうち２個の分割領域にローダプログラムのマスターと、バックアップとを配しているメモリと、通信データであって、何れかの分割領域に格納されているソフトウェアの最新バージョンを含むものを受信する受信部と、受信したソフトウェア群の最新バージョンを蓄積する第１バッファと、何れかの分割領域に格納されているソフトウェア群を格納し得る第２バッファとを備え、受信部が通信データを受信すると、ローダプログラムのマスターの処理を開始する端末装置端末装置に用いられるローダプログラムを記録した記録媒体であって、
端末装置は、さらに、取り出し部、識別部、第１書き込み部、差し替え部、第２書き込み部、制御部とを備え、
バッファにソフトウェアの最新バージョンが複数蓄積されれば、取り出し部において、何れかのソフトウェアを取り出す取出ステップと、
取り出された最新バージョンソフトウェアがどの分割領域に格納されているソフトウェアの最新バージョンであるかを、識別部において識別する識別ステップと、
第１書き込み部において、識別された分割領域に格納されているソフトウェア群を第２バッファに書き込む第１書込ステップと、
差し替え部において、第２バッファ内に書き込まれた分割領域のソフトウェア群の一部を、第１バッファ内の最新バージョンを用いて差し替える差替ステップと、
第１バッファ内の分割領域のソフトウェア群が差し替えられると、第２書き込み部において、差替後のバッファの内容を分割領域に書き込む第２書込ステップと、
バッファの内容が分割領域に書き込まれると、制御部において、別のソフトウェアモジュールを取り出させる制御ステップと
を端末装置に実行させるローダプログラムを記録した記録媒体。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、有線、無線の通信媒体を用いたサービスシステムに用いられる端末装置、その端末装置が備えるローダプログラムに適用されるダウンロード方法、そのローダプログラムを記録した記録媒体に関する。
【０００２】
【従来の技術】
有線、無線の通信媒体を用いた放送サービス事業は、近年産業界の熱い注目を浴びている。中でもデジタル衛星放送、デジタルCATVの注目度は群を抜いており、今後の様々な事業展開が期待される。
このような現状の一方、サービス事業の主催者を悩ませるのは『端末装置のメンテナンス』である。ここでいう端末装置は、様々なソフトウェアを実装することにより、高度にインテリジェント化されたものであり、これのメンテナンスとは、これらソフトウェアのバグ修正や仕様変更等を行うことをいう。
バグ修正や仕様変更は、ソフトウェアのバージョンアップによりなされるのが通常であるが、端末装置が多くの家庭に普及する程そのバージョンアップが困難になることはいうまでもない。
【０００３】
多くの家庭に普及した端末装置を一律にバージョンアップするには、通信媒体を介してホスト局が最新バージョンのソフトウェアモジュールを送信し、これを端末装置に受信させて利用させればよい。端末装置がパーソナルコンピュータタイプであり、ハードディスク装置と、ハードディスク装置上の領域をディレクトリ単位、ファイル単位でアクセスするファイルシステムとを備えている場合、いわゆるインストール処理によりバージョンアップは実現される。具体的にいうと、先ずホスト局は最新バージョンのソフトウェアと、これをインストールするためのインストーラソフトとを送信する。端末装置がこれらの最新バージョンとインストーラとを受信すると、インストーラソフトは、上記ハードディスク装置に新規ディレクトリを作成し、作成したディレクトリに最新バージョンを格納する（ここで旧バージョンのソフトウェアモジュールが格納されていたディレクトリに最新バージョンが格納される場合もある。）。
【０００４】
ここで留意せねばならないのは、上記のような放送サービス事業において用いられる端末装置は、多くの家庭に低価格で提供されることを念頭においているため、EEPROM等にソフトウェアモジュールを直接格納して利用しているタイプ、いわゆるマイコンシステムタイプに構成されることが一般的であり、ファイルシステムはおろか、ハードディスク装置すら備えていない（ここでEEPROMの『EEP』とは、electrically  erasable  and  programmable  の略であり、記憶内容の電気的な消去と、記憶内容の再書き込みとが可能なROMである。）。そのため、バージョンアップを行う場合にファイル単位、ディレクトリ単位にソフトウェアモジュールをアクセスすることは不可能である。
【０００５】
ではどのようにソフトウェアモジュールをバージョンアップするかというと、端末装置において直接EEPROM等に格納されているソフトウェアモジュールに対して、いわゆるリモートダウンロードを行うのである。
一般にダウンロードとは、二次記憶に記憶されているデータのうち一部のものを取り出して一次記憶の内部領域に書き込む処理をいい、リモートダウンロードとは、端末装置内に備えられたメモリデバイスを一次記憶と想定し、通信サービスのホスト局内に設置されたハードディスク装置等を二次記憶と想定したダウンロードをいう。
リモートダウンロードを実現するにあたってホスト局は、二次記憶に記憶されているデータのうち、一部のものを読み出して端末装置へと送信する。端末装置は、これを受信してこれに含まれているプログラム及びデータの解析を行い、誤り検出処理等を行った後に一次記憶内の空き領域に書き込んでゆく（ここでいう空き領域とは、一次記憶内の領域のうち、既にソフトウェアモジュールにより占有されている領域以外をいう。）。
【０００６】
端末装置における以上の処理は、端末装置内に実装されているプロセッサが、端末装置内部のEEPROMに記録されたローダプログラムの手順を実行することによりなされる。
原則としてリモートダウンロードは、端末装置内のプロセッサがローダプログラムに従って、以上の処理を行えば良いのであるが、受信した最新バージョンのソフトウェアモジュールを旧バージョン上に直接書き込むのは余りにも危険である。何故なら、最新バージョンを上書きしている途中に端末装置の電源が断たれると、一次記憶における新バージョンアップと旧バージョンアップとが双方とも不完全な状態となり、その何れもが事実上稼動不能となるからである。このように最新バージョンの上書き途中での電源断に備えるべく、旧バージョンのバックアップを確保しておくことは必要不可欠となる。
【０００７】
では、旧バージョンソフトウェアモジュールについてバックアップはどれだけ必要であるかであるが、旧バージョンソフトウェアモジュールのバックアップは、原則として、端末装置の一次記憶に格納されている全てのソフトウェアモジュールについて必要とされる。
その理由は、最新バージョンのメモリサイズと、旧バージョンのメモリサイズに差違が発生した場合、端末装置は既に書き込まれている他のソフトウェアモジュールの旧バージョンの占有領域を余計に上書きしてしまうからである。例えば端末装置の一次記憶において先頭アドレスから順にソフトウェアモジュールの旧バージョン#1,#2,#3,#4,#5が書き込まれており、これらのソフトウェアモジュールの最新バージョンをこの一次記憶に上書きしようとしているものとする。ここでソフトウェアモジュール#1の最新バージョンのメモリサイズが、その旧バージョンのメモリサイズを大きく上回っている場合、旧バージョンのソフトウェアモジュール#1の占有領域はおろか、ソフトウェアモジュール#1に続いて記録されているソフトウェアモジュール#2,#3の旧バージョンの占有領域さえも上書きしてしまう。このようにソフトウェアモジュール#2,#3の占有領域が上書きされた状態で、電源断等の異常が発生すれば、ソフトウェアモジュール#2,#3の一部は上書きにより一次記憶上に現存しないので、次回の端末装置の起動が行えない場合が発生し得る。
【０００８】
リモートダウンロードの途中で端末装置の電源が断たれた場合でも、端末装置の起動を完全に行うため、マイコンシステムタイプの端末装置には以下の二点の設計制約が与られてきた。
第１の設計制約とは、端末装置に実装されるソフトウェアモジュール群の総サイズの二倍の規模のメモリチップを実装して、一方を旧バージョンアップのソフトウェアモジュール群のバックアップに用い、他方を新バージョンのソフトウェアモジュール群のメモリライトに用いることである。即ち、新バージョンのソフトウェアの格納時に電源断が発生しても、旧バージョンのソフトウェアにより端末装置が起動できるようにしておくのである。
【０００９】
第２の設計制約とは、ソフトウェアのうちダウンロード用のローダプログラムはバージョンアップの対象としない、即ち、ローダプログラムをダウンロードの対象外とすることをいう。
これらの設計制約を遵守して作成された従来の端末装置の一例を図１９に示す。本端末装置はプログラムやデータからなるソフトウェアを格納し、一次記憶として用いられるメインEEPROM８１と、バージョンアップ用のEEPROM８２と、ローダプログラムを格納したＲＯＭ８３と、ローダプログラムを実行するプログラム実行部８４とから構成される。
本装置を起動すると、プログラム実行部８４はブートＲＯＭに格納されたブートプログラムに従って、メインEEPROM８１に格納されたプログラムを実行する。プログラムの実行中、放送によりソフトウェアモジュール群の最新バージョンが転送されると、ローダプログラムは転送された最新バージョンのソフトウェアをバージョンアップ用のEEPROM８２に順次格納する。
【００１０】
バージョンアップが正常終了すれば、バージョンアップ用のEEPROM８２に格納された最新バージョンのプログラムを起動するよう切り換え処理を行う。バージョンアップが異常終了すれば、メインEEPROM８１に格納されたプログラムを再度起動し、バージョンアップを再試行する。
【００１１】
【発明が解決しようとする課題】
ところで上記従来の端末装置は現在使用しているバージョンのプログラムをそのままEEPROMにバックアップしておくため、アプリケ−ションプログラムの総データサイズの二倍のEEPROMを実装せねばならない。これは『端末装置の起動保証』を満たすためやむをえないことだが、その代償として端末一台当たりのハードウェア規模が大きくなり生産コストが増大してしまう。この従来構成において生産コストを安くするためには、どうしても総ソフトウェアサイズを低減せざるを得ず、生産コスト増大という障壁により端末装置におけるソフトウェアの充実化が阻まれてしまう。
【００１２】
更に従来の端末装置はローダプログラムのバグ修正、仕様変更の必要性が生じた場合、大掛かりなＲＯＭ交換を実施せねばならない。即ち、放送サービスを運営する放送会社は、放送サービスに加盟している家庭にサービスマンを派遣し、無償でＲＯＭ交換を行うのである。しかしこのようなＲＯＭ交換は、サービス事業の主催者に多大な人件費の負担を強いるものであり、放送サービスの運営基盤を揺るがしかねない事態を招いてしまう。
本発明の第１の目的は、、生産コストの増大を伴わずにソフトウェア群の充実化を図ることができる端末装置を提供することである。
【００１３】
第２の目的は、タブー視されていたローダプログラムのバージョンアップをも可能とする端末装置を提供することである。
【００１４】
【課題を解決するための手段】
上記第１、第２の目的を達成するため本発明は、端末装置であって、固有のバンクアドレスが割り当てられたn個(nは2以上の整数)の分割領域を有しており、各分割領域に１以上のソフトウェアモジュールが配置された配置済み領域と、バージョンアップ時におけるソフトウェアモジュールのデータサイズの増加分を見込んだ空き領域とを設けた第１メモリと、前記n個の分割領域のうち、一つのものと同じメモリ容量を有する第２メモリと、分割領域の何れかに配置されている１以上のソフトウェアモジュールの最新バージョンを格納したコンテンツ部と、ソフトウェアモジュールの格納先を示す格納先バンクアドレスを格納したヘッダ部とからなる送信データがホスト局から送信されると、これを受信する受信手段と、受信した送信データのヘッダ部を分離して、コンテンツ部に含まれている最新バージョンソフトウェアモジュールを第２メモリに蓄積する分離手段と、分離されたヘッダ部からコンテンツ部の格納先を示す格納先バンクアドレスを検出する検出手段と、第２メモリに蓄積されたコンテンツ部から最新バージョンのソフトウェアモジュールを順次読み出して、検出された格納先バンクアドレスが割り当てられた分割領域に配置する配置手段とを備えることを特徴としている。
【００１５】
【発明の実施の形態】
以下、図面を参照しながら端末装置の実施形態について説明する。
端末装置は、放送サービスAに加盟した家庭に設置される端末である。放送サービスAでは、名作映画,人気ドラマ,スポーツ,教養等様々なジャンルのＴＶ番組が衛星を介して放送される。放送サービスAによるＴＶ番組は地上波を用いたものと比べて多チャンネル且つ高画質であり、端末装置１０はこれらの番組をTV受像機に表示させるためのチューナ、デコーダを備えている。これらのチューナ、デコーダの他に端末装置１０は様々なインテリジェント機能を実現している点は注目に値する。そのインテリジェント機能には、週刊,月刊の放送予定表(一般にElectoric Program Guide(EPG)と呼ばれる。)の表示、視聴料金の課金、ヘッドラインニュースの表示、オンラインクイズ、テレビショッピング、ゲーム、カラオケ等があり、操作者との対話性を重視した構成になっている。
【００１６】
端末装置１０の構成を図１に示す。図１に示すように端末装置１０はCSチューナ１、TSデコーダ２、AVデコーダ３、ダウンロード用RAM４、プログラム群格納部５、プロセッサ６、ブートROM７により構成される。本装置は、家庭内に設置され、ＴＶ受像機、ビデオデッキに接続されて用いられる。
CSチューナ１は、π／4QPSK（Quadrature  Phase  Shift  Keying）変調方式の放送波をCSアンテナが受信すると、これを復調し、MPEG２に規定されたトランスポートパケットを得てTSデコーダ２に出力する。
TSデコーダ２は、CSチューナ１が出力したトランスポートパケットを四系統のエレメンタリストリームに分離する。四系統のエレメンタリストリームとは、ビデオストリーム、オーディオストリーム、PCRストリーム、プライベートストリームであり、このうちビデオストリーム、オーディオストリーム、PCRストリームをAVデコーダ３に出力し、プライベートストリームをダウンロード用RAM４に格納する。ビデオストリーム、オーディオストリーム、PCRストリームは、TV番組を構成するものであり、プライベートストリームは、インテリジェント機能のメンテナンスのために用いられる。
【００１７】
四系統のエレメンタリストリームの構成を図２（ａ）に示す。ビデオストリームは、PID（パケット識別子（Packet  IDentification)の略語である。）、ビデオデータ、CRC(巡回冗長符号の略語である。)からなり、オーディオストリームは、PID、オーディオデータ、CRCからなる。PCR(Program  Clock  Reference:プログラム時刻基準参照値)ストリームは、PID、PCRデータ、CRCからなり、プライベートストリームは、PID、プログラムヘッダ（図中のPrgHeaderのことを意味する。）、バンクデータ、CRCからなる。PIDは、TSデコーダ２がエレメンタリストリームを分離する際、分離すべきエレメンタリストリームをAVデコーダ３、ダウンロード用RAM４の何れに出力するかを判定する際に用いられる。
【００１８】
バンクデータとは、放送サービスの放送局側が送信したソフトウェア群であって、一バンクのメモリにまとめて格納することを求めているものをいう。本実施形態においてバンクとは、端末装置が実装しているメモリのうち、ひとまとまりの分割領域を意味する。
プログラムヘッダとは、バンクデータと共にプライベートストリームとして送信される情報でありその一例を図２（ｂ）に示す。図中の『プログラム名』は、そのバンクデータの名称を示し、『データサイズ』は、バンクデータがどの程度のデータサイズを有するかを示し、『バンクナンバー』はバンクデータの格納先となるバンクアドレスを示す。『バージョン情報』は当該バンクデータが作成された日時、或は、最後に更新された日を示す。
【００１９】
AVデコーダ３は、PCRストリームに従って、ビデオストリーム及びオーディオストリームを映像信号に復号し、テレビに出力する。
ダウンロード用RAM４は、SIMMタイプのDRAM又はEEPROMであり、TSデコーダ２が分離したプライベートストリームを格納する。
プログラム群格納部５は、n個のバンクからなり、各バンクに複数のソフトウェアモジュールを分散して格納している（図１では、n＝４であり、第１バンク、第２バンク、第３バンク、第４バンクからなる。）。各バンクは複数のEEPROMのチップ51〜54（以降、EEPROM５１〜EEPROM５４と呼ぶ。）であり、その格納容量はダウンロード用RAM４とほぼ同規模である。プログラム群格納部５により記憶されるソフトウェアモジュールとは、データ、プログラム等の複数種別のソフトウェアを一律にモジュール化したものをいう。
【００２０】
これらのEEPROM５１〜EEPROM５４は共に、共通の第２バス９に接続されている。EEPROM５１〜EEPROM５４の内部領域は、論理アドレスが割り当てられることにより、プロセッサ６によりダイレクトにアクセスされる。また各バンクには固有のバンクアドレスが割り当てられおり、上記の論理アドレスは、バンクアドレスと、各バンクの内部領域を指示するオフセットアドレスとの組みによって表現される。
図４は、EEPROM５１〜EEPROM５４のメモリイメージを示す図である。本図において論理アドレス000000から論理アドレス0FFFFFまではバンクアドレス=01にてアクセスされ、論理アドレス100000から論理アドレス1FFFFFまではバンクアドレス=02にてアクセスされる。
【００２１】
バンク１には、ソフトウェアモジュール#1〜#10が格納されており、バンク２には、先頭部から順にソフトウェアモジュール#11〜#20が格納されている。これらのソフトウェアモジュールは、バンクの終端部が空き領域になるように、バンクの先頭から順に格納されている。バンク終端部が空き領域になるように格納しているのは、バージョンアップをバンク毎に行うためである。例えばバンク１において格納されているソフトウェアモジュールを最新バージョンにバージョンアップしようとしているものとする。ここでソフトウェアモジュール#1〜#10の最新バージョンのメモリサイズが、その旧バージョンのメモリサイズを大きく上回っている場合、旧バージョンのソフトウェアモジュール#1〜#10の占有領域を上書きしてしまうが、バンク１の終端部に空き領域が存在するため、バンク２におけるソフトウェアモジュール#11〜#20の占有領域までも上書きしてしまうことはない。
【００２２】
このようにEEPROM５１〜EEPROM５４は、終端部に空き領域を配しているため、後続する論理アドレスに位置するバンクに格納されているソフトウェアモジュールの占有領域を上書きすることなく、自身が格納しているソフトウェアモジュールを最新バージョンに上書きすることができる。
図３（ａ）は、ソフトウェアモジュールのフォーマットの一例である。
ソフトウェアモジュールは、モジュールヘッダと、ソフトウェア実体部と、CRCとからなる。
モジュールヘッダの一例を図３（ｂ）に示す。モジュールヘッダは『プログラム名』『プログラムサイズ』『バンクナンバー』『バージョン情報』とからなる。『プログラム名』は当該ソフトウェアモジュールは放送局側によりどのような名称が命名されているかを示し、『プログラムサイズ』は当該ソフトウェアモジュールがどの程度のデータサイズを有するかを示す。『バンクナンバー』は当該ソフトウェアモジュールが格納されるバンクのバンクアドレスを示し、『バージョン情報』は当該バンクデータが作成された日時、或は、最後に更新された日を示す。
【００２３】
本図におけるソフトウェアモジュールは、何れも『リロケータブル』いう性質を有する点で共通している。『リロケータブル』とは、『メモリ空間のどの領域に配されても動作可能』という意味である。ソフトウェアモジュールが『リロケータブル』であるのは、放送サービスの主催者がプログラム群格納部５における各ソフトウェアモジュールの配置を動的に変化させることを望んでいるからである（尚、上述したバンクデータは、一バンクに格納すべき複数のソフトウェアモジュールからなる。即ち、図３（ａ）のフォーマットを有するソフトウェアモジュールが複数配されてなる。）。
【００２４】
ソフトウェアモジュールは、オペレーティングシステムを構成するものと、アプリケ−ションプログラムとに大別される。これは端末装置１０は、『オペレーティングシステムを基盤にして各種アプリケ−ションプログラムを動作させる』という汎用コンピュ−タに見受けられるソフトウェアの管理構造を備えていることを意味する。
図５は、プログラム群格納部５に配置されている複数のソフトウェアモジュールがどのような内容であるかを示す説明図である。図５に示すように、プログラム群格納部５には、フォントデータ、ビットマップデータ、グラフィックデータ等様々な種類のソフトウェアモジュールが格納されている。本図のソフトウェアモジュールのうち、オペレーティングシステムの構成要素の代表的なソフトウェアモジュールは、カーネル１１、ローダプログラム１２、ローダプログラム２２である。
【００２５】
カーネル１１は、端末装置１０のインテリジョント機能のうち、基盤的な処理を行う。基盤的な処理には、電源投入直後の各ソフトウェアモジュールの正常判定、ローダプログラムの起動がある。
ローダプログラム１２は、マスターのローダプログラムであり第１バンクに格納されている（図５上では、"マスター"を原本と表記している。以降の図でも"マスター"の表記には、"原本"を用いる。）。本実施形態におけるローダプログラムはプログラム群格納部５に格納されているソフトウェアモジュールのうち、アプリケ−ションプログラムに分類されるものを起動するための処理を行う。それと共に、プログラム群格納部５に格納されているバンクデータをバージョンアップするためのダウンロード処理を行う。
【００２６】
ローダプログラム１２により行われるダウンロード処理の代表的なものには、誤り検出処理、フラグメンテーションの解消処理等がある。
誤り検出処理とは、受信したプライベートストリームのバンクデータにビット化け等が発生している場合、CRC等を用いてこれを検出する処理をいう。もしこの検出処理により、正常なバンクデータであることが判明すれば、このバンクデータをその格納先のバンクに格納するが、誤りが検出されれば、このバンクデータの再取得を行う。ここでデジタル衛星放送の放送局が所定の周期でプライベートストリームを送信している場合、ローダプログラム１２はその周期を待って、プライベートストリームを再取得し、再度誤り検出を試みる。
【００２７】
フラグメンテーション解消処理とは、最新バージョンのソフトウェアモジュールのメモリサイズが旧バージョンのソフトウェアモジュールのメモリサイズを大きく上回ったために、旧バージョンのソフトウェアモジュールが占有していたメモリ領域に最新バージョンのソフトウェアモジュールを上書きできない場合に、既にメモリに書き込まれているソフトウェアモジュールを前後に移動させて、最新バージョンのソフトウェアモジュールを書き込むだけメモリサイズの空き領域を確保する処理と、逆に最新バージョンのソフトウェアモジュールのメモリサイズが旧バージョンのソフトウェアモジュールのメモリサイズを下回ったために空き領域が生じる場合に、このようなメモリサイズの差違のために生じた空き領域を既にメモリに書き込まれているソフトウェアモジュールを前後に移動させることにより詰める処理とからなる。
【００２８】
新規に受信したバンクデータに対しては、以上の処理を施すのが必須であるため、ローダプログラム１２のダウンロードは概して長い期間を要するといわれる。
ローダプログラム２２は、ローダプログラム１２と同様の処理を行うローダプログラムであって、ローダプログラム１２とは別のバンク（第２バンク）にバックアップとして格納されているものである（図５上では、バックアップを"控え"と表記している。以降図でも"バックアップ"の表記には、"控え"を用いる。）。
プロセッサ６は、プログラム群格納部５内の領域のうち、読み出し先アドレスを指示するプログラムカウンタと、ソフトウェアモジュールを構成する機械語命令のうち、当該アドレスに位置するものを読み出す読み出し回路、読み出された命令を解読する解読器、命令の解読結果に従って算術演算を行う算術演算器を備え、第１バス１９に接続されたダウンロードRAM４、ブートROM７をアクセスすると共に、プログラム群格納部５に格納されているソフトウェアモジュールのうちアプリケーションプログラムに分類されるものを実行する。
【００２９】
ブートROM７には、端末装置１０の電源投入時にプロセッサ６がブートストラップを行うためのブートプログラムが格納されている。
MMU８は、第２バス９と接続されたEEPROM５１〜EEPROM５４の実アドレスと、それらに対応する論理アドレスとを対応づけており、プロセッサ６が読出先アドレスを第１バス１９に出力すると、当該読出先アドレスを論理アドレスとして解釈してそれに対応する実アドレスを第２バス９に出力する。MMU８は、第１バス１９と、EEPROM５１〜EEPROM５４との間に介在しているため、EEPROM５１〜EEPROM５４はプロセッサ６がアクセスすることができるリニアなアドレス空間に割り付けられる。
【００３０】
図８及び図９は、電源投入直後のカーネル１１の処理と、ローダプログラム１２によるダウンロード処理とを示したフロ−チャ−トである。
操作者が端末装置１０の電源を投入すると、CSチューナ１は、π／4QPSKにより変調されたディジタル衛星放送の放送波を復調して、MPEG２に規定されたトランスポートパケットをTSデコーダ２に出力する。TSデコーダ２は、出力されたトランスポートパケットを四系統のビデオストリーム、オーディオストリーム、PCRストリーム、プライベートストリームに分離する。AVデコーダ３は、PCRストリームに従って、ビデオストリーム及びオーディオストリームを映像信号に復号し、テレビ受像機に出力する。これによりテレビ受像機には、放送サービスにおけるＴＶ番組が表示され、操作者は名作映画,人気ドラマ,スポーツ,教養等様々なジャンルのＴＶ番組を視聴することができる。
【００３１】
このような動作の一方で、プロセッサ６が内蔵しているプログラムカウンタにブートROM７の先頭アドレスが設定される。先頭アドレスが設定されると、プロセッサ６はブートROM７に格納されているブートプログラムに従い、ブートストラップを行う。ブートストラップを行うと、プロセッサ６が有するプログラムカウンタは図８に示すカーネル１１のフロ−チャ−トの先頭ステップにセットされる。
先ずプロセッサ６は、ステップＳ１において各バンクに配されているソフトウェアモジュールのCRCをチェックする。チェックの結果が異常があれば、ステップＳ２においてプロセッサ６は、ソフトウェアモジュール読み出しの再試行等然るべきエラー処理を行うが、全て正常ならステップＳ３に移行し、ローダプログラムが複数のバンクに存在するかを判定する。単数であれば選択の余地がないのでそのバンクのローダプログラムを起動するが、ローダプログラム１２及びローダプログラム２２のように複数存在する場合は、各ソフトウェアモジュールが有しているバージョン情報を参照して複数バンクに格納されているローダプログラムのうち、最新のものを起動する。つまりバージョン情報が新しいものを優先して起動するのである。
【００３２】
図４の一例において、マスター側のローダプログラム１２が新しいものとすると、プロセッサ６のプログラムカウンタは、ローダプログラム１２の先頭アドレスに設定され、プロセッサ６の処理はカーネル１１からローダプログラム１２へと分岐する。
ローダプログラム１２を逐次実行することにより、プロセッサ６は各種アプリケ−ションプログラムを起動するための処理を開始する。これらの処理と並行して、プロセッサ６は図９のフロ−チャ−トに示されているダウンロード処理を開始する。
ステップＳ１１では、プロセッサ６はダウンロード用RAM４を参照してプライベートストリームが新規に格納されたか否かの監視を行う。未格納である限り、プロセッサ６はステップＳ１１の処理を延々と繰り返す。ここで図１２（ａ）に示すように、ダウンロード用RAM４に第nバンク宛のバンクデータが格納されると（ハッチング部参照）、ステップＳ１２に移行し、新規に格納されたプライベートストリームのCRCチェックを行う。チェックの結果異常であればステップＳ１１に移行するが、正常であれば、ステップＳ１３において、プライベートストリームに含まれているプログラムヘッダを参照して、そのヘッダ内のバージョン情報を識別することにより、新規プライベートストリームにバンクデータの最新版が格納されているかを判定する。
【００３３】
最新版が格納されていれば、ステップＳ１４においてプライベートストリームのプログラムヘッダを参照し、当該バンクデータがどのバンクを格納先に指定しているかを認識する。格納バンクの認識後、ステップＳ１５において、起動中のローダプログラムが置かれているバンクアドレスを認識する。これらのバンクアドレスを認識すると、ステップＳ１６においてプライベートストリームに含まれていたバンクデータの格納先バンクと、起動中ローダプログラムが存在するバンクとが一致するかを判定する。
図１２（ａ）の一例の場合、マスターのローダプログラムは第１バンクに存在し、ダウンロード用RAM４に蓄積されたプライベートストリーム内のバンクデータは第nバンクを格納先に指定しているので、両バンクは一致せず、ステップＳ６に移行する。ステップＳ６では、プロセッサ６はバンクデータを複数のソフトウェアモジュールに分割し、ステップＳ８では、プロセッサ６は分割された個々のソフトウェアモジュールを第nバンクが占めている領域内に書き込む。
【００３４】
ここでの書き込みは、ダウンロードとは異なり、誤り検出処理、フラグメンテーション解消処理等を実行しなくてもよく、単にメモリからメモリへのベタコピーを行えば良いので短期間で済む。コピーが行われる短期間において端末装置の電源が断たれる可能性は少なく、バンクnのバージョンアップは短期間に完遂する。書き込みが行われると、第nバンクに格納されているバンクデータは、図１２（ｂ）に示すように最新版にバージョンアップされる。
第nのバージョンアップ後、図１３（ａ）に示すように、ダウンロード用RAM４に第１バンク宛のバンクデータを含むプライベートストリームが格納されたとする。新規のプライベートストリームが格納されるとステップＳ１１がYesとなりステップＳ１２に移行する。プロセッサ６はステップＳ１２において新規に格納されたプライベートストリームのCRCチェックを行い、ステップＳ１３においてバンクデータの最新版が格納されているかを判定した後、ステップＳ１４においてプライベートストリームのプログラムヘッダを参照し、当該バンクデータが第１バンクを格納先に指定していることを認識する。認識後、ステップＳ１５において、起動中ローダプログラムが配置されているバンクを認識する。
【００３５】
両バンクを認識した後、ステップＳ１６においてバンクデータの格納先バンクと、起動中ローダプログラムが配置されているバンクとが一致するかを判定する。ここで格納先が第１バンクであるので、プライベートストリームに含まれていたバンクデータの格納先バンクと、起動中ローダプログラムが存在するバンクとが一致することになり、ステップＳ１６がYesとなってステップＳ１７に移行する。ステップＳ１７では、カーネル１１へと分岐する。分岐後、第２バンクに格納されているローダプログラムのモジュールヘッダを参照し、ヘッダ内のバージョン情報を最新の日時に改竄して、ステップＳ１８に移行する。ステップＳ１８では、バージョン情報の改竄に伴い、CRCの書き換えを実行する。CRCを書き換えた後、ステップＳ１９においてプロセッサ６のリセットを行う。
【００３６】
ここでバージョン情報の改竄を行いリセットを行うことは、第２バンクに格納されたバックアップのローダプログラム２２をプロセッサ６に再起動させることを意味する。何故なら、リセットにより端末装置１０を再起動すると、図１３（ｂ）に示すようにカーネル１１はバージョン情報が新しいローダプログラムを選択するからである（図８のフロ−チャ−トのステップＳ４を参照）。
以降、この過程を順を追って説明する。プロセッサ６がリセットされると、プロセッサ６が有するプログラムカウンタは、ブートROM７の先頭アドレスに設定される。このように設定されると、プロセッサ６はブートROM７に格納されているブートプログラムに従い、再度ブートストラップを行って、ステップＳ１において各バンクに配されているソフトウェアモジュールのCRCをチェックする。全て正常ならステップＳ３に移行して、ローダプログラムが複数のバンクに存在するかを判定し、ステップＳ４において各ソフトウェアモジュールが有しているバージョン情報を参照して複数バンクに格納されているローダプログラムのうち、最新のものを起動する。ここでローダプログラム１２と、ローダプログラム２２のバージョン情報を比較すると、バックアップ側のローダプログラム２２は最新の日時に書き換えられたので、プロセッサ６のプログラムカウンタは、ローダプログラム２２の先頭アドレスに設定され、プロセッサ６の処理はカーネル１１からローダプログラム２２へと分岐する。
【００３７】
ローダプログラム２２を逐次実行することにより、プロセッサ６は各種アプリケ−ションプログラムを起動するための処理を開始する。これらの処理と並行して、プロセッサ６はカーネル１１の場合と同様、図９のフロ−チャ−トに示されているダウンロード処理を開始する。
ステップＳ１１では、プロセッサ６はダウンロード用RAM４を参照してプライベートストリームが新規に格納されたか否かの監視を行うが、既にダウンロード用RAM４に第1バンク宛のバンクデータが格納されているので、ステップＳ１２において新規に格納されたプライベートストリームのCRCチェックを行い、ステップＳ１３において新規プライベートストリームにバンクデータの最新版が格納されているかを判定した後、ステップＳ１４においてプライベートストリームのプログラムヘッダを参照し、当該バンクデータがどのバンクを格納先に指定しているかを認識する。格納バンクの認識後、ステップＳ１５において、起動中のローダプログラムが置かれているバンクを認識する。これらのバンクを認識すると、ステップＳ１６においてプライベートストリームに含まれていたバンクデータの格納先バンクと、起動中ローダプログラムが存在するバンクとが一致するかを判定する。
【００３８】
この場合起動しているのは、バージョン情報が最新の日時に改竄されたローダプログラム２２であるので、両バンクは一致せずステップＳ６に移行する。ステップＳ６では、プロセッサ６はバンクデータを複数のソフトウェアモジュールに分割し、ステップＳ８では、プロセッサ６は分割された個々のソフトウェアモジュールを第１バンクが占めている領域内に書き込む。書き込みが行われると、第１バンクに格納されているバンクデータは、図１３（ｃ）に示すように最新版にバージョンアップされる。  この最新版バンクデータは、最新版のローダプログラムを含んでいるので、ローダプログラムも同時にバージョンアップされたことになる。
【００３９】
以上のように本実施形態によれば、ソフトウェアモジュール群を複数のバンクに格納し、バンク単位でバージョンアップを行うので、バンクデータのダウンロードのためのバッファに用いるRAMがバンク一個分の規模で済む。故にバージョンアップ途中の異常発生に耐え得るハードウェアをより小規模に実現できる。そのため、生産コスト増大という代償無しにソフトウェアモジュールの充実化を実現できる。
加えて、２つのバンクにマスター、バックアップのローダプログラムをそれぞれ配置するので、一方をバージョンアップしたい場合は、他方を起動するという制御を行うことができる。このように何れかの一方のローダプログラムの起動により、ローダプログラム自体のバージョンアップが可能となる。
【００４０】
サービスマンの派遣等多大な人件費の負担を伴うＲＯＭ交換を行うこと無しにバージョンアップが実現できるので、ローダプログラムのバグ修正、仕様変更等が容易になる。
尚、ローダプログラムのバージョンアップには、別バンクに格納されたローダプログラムを起動する処理と、再起動処理とが伴うので、バンク１のバージョンアップは、低頻度であるのが望ましい。バンク１のバージョンアップ頻度を低くするには、高い頻度でのバージョンアップが必要なソフトウェアモジュールを、ローダプログラムが格納されているバンクに以外に配置するのが賢明である。特に、MPEGストリームの復号処理に関する処理を行うソフトウェアモジュールや、週刊,月刊の放送予定表の表示を行うソフトウェアモジュールは、更新の頻度が高いといわれるので、これらのソフトウェアモジュールはローダプログラムとは別のバンクに格納するのが望ましい。
【００４１】
また、本実施形態ではソフトウェアモジュールのモジュールヘッダに記載された『バンク』を参照して各ソフトウェアモジュールをどのバンクに配置するかを決定したが、これらソフトウェアモジュールがどのような頻度で更新されたかを示す統計値を計算し、計算した統計値に基づいて各バンクにおけるソフトウェアモジュールの配置を決定し直してもよい。
（第２実施形態）
第２実施形態は、バックアップのローダプログラムを用いないローダバンクのバージョンアップを実現する構成である（ローダバンクとは、マスターのローダプログラムが配置されているバンクのことをいう。）。本実施形態においてバックアップローダプログラムを用いないのは、ＲＯＭの利用効率を向上させるためである。即ちローダプログラムをマスターのみにして、第１実施形態においてバックアップのローダプログラムが占めていた領域に別のソフトウェアモジュールを配置するのである。
【００４２】
但し、第２実施形態におけるローダバンクバージョンアップの実現には前提条件がある。その前提条件とは、ローダバンク以外のバンクの中に復帰可能バンクが存在することである。復帰可能バンクとは、バンクデータが定期的に配信されるため、或は、要求信号の送信によりバンクデータの送信を放送局側に指示できる等の理由のより格納内容の復帰が可能であり、たとえ格納内容が破壊されても支障がないバンクをいう。
図１０は、第２実施形態におけるローダプログラムのフロ−チャ−トであり、バックアップのローダプログラムを起動せずに、ローダバンクバージョンアップを行うよう構成されている。図１４（ａ）〜Ｄの説明図を用いて、本フロ−チャ−トによるローダバンクのバージョンアップが行われる一連の過程を説明する。図１４（ａ）は当該一連の過程の初期状態である。本初期状態では、第１バンクがローダバンクに割り当てられ、第２バンクが復帰可能バンクに割り当てられている。またダウンロード用RAM４には、ローダバンク用のバンクデータの最新版が既に蓄積されている。
【００４３】
このように最新版が蓄積されると、プロセッサ６は図９のステップＳ１１〜ステップＳ１４までの処理と同様の処理を行う。即ち、ステップＳ１１においてダウンロード用RAM４内にプライベートストリームが新規に格納されたかを監視し、もし格納されていれば、ステップＳ１２において新規に格納されたプライベートストリームのCRCチェックを行って、正常ならばステップＳ１３において新規プライベートストリームにはバンクデータの最新版が格納されているかを判定する。最新版が既に格納されているなら、ステップＳ１４においてバンクデータ最新版の格納先を認識する。ステップＳ１４の実行後、ステップＳ２２に移行すると、プロセッサ６はダウンロード用RAM４に新規に格納されたバンクデータの格納先バンクがローダバンクであるかを判定する。
【００４４】
もし格納先がローダバンクであれば、本来ならバンクデータの最新版を第１バンクに書き込むべきところであるが、ステップＳ２３においてプロセッサ６は、別バンクに新規のバンクデータを書き込む。その別バンクとは復帰可能バンクのことであり、ダウンロード用RAM４内のバンクデータが復帰可能バンクに書き込まれることになる。尚、この書き込み処理を行うにあたっては、図９のステップＳ６〜ステップＳ８の処理が順次実行される。即ち、ステップＳ６では、プロセッサ６はバンクデータを複数のソフトウェアモジュールに分割し、ステップＳ８では、プロセッサ６は分割された個々のソフトウェアモジュールを復帰可能バンクが占めている領域内に書き込むのである。
【００４５】
復帰可能バンクに新規のバンクデータが書き込まれると、ステップＳ２４においてローダバンクを旧ローダバンクに変更し、復帰可能バンクを新ローダバンクに変更する。
図１４（ｂ）は、ローダバンクバージョンアップの一連の過程のうち、ステップＳ２４の処理を終えた状態を示す。
本図では、第１バンク及び第２バンクに新旧のローダバンクのバンクデータが格納されていることがわかる。この状態でプロセッサ６は、ステップＳ２５においてリセットを行う。
図１４（ｂ）の状態でリセットを行うことは、新ローダバンクに格納された最新版ローダプログラムをプロセッサ６に実行させることを意味する。何故なら、リセットにより端末装置１０を再起動すると、カーネル１１はバージョン情報が新しい新ローダバンクのローダプログラムを選択するからである（図８のフロ−チャ−トのステップＳ４を参照）。
【００４６】
新ローダバンクのローダプログラムが起動されると、プロセッサ６は図９のステップＳ１１〜ステップＳ１４までの処理と同様の処理を行う。即ち、ステップＳ１１においてダウンロード用RAM４内にプライベートストリームが新規に格納されたかを監視する。
ここで放送局によるバンクデータの定期配信が行われ、図１４（ｃ）に示すように、ダウンロード用RAM４に第２バンク宛の最新版のバンクデータを含むプライベートストリームが格納されたとする。旧復帰可能バンクである第２バンク用のバンクデータが格納されると、ステップＳ１２において新規に格納されたプライベートストリームのCRCチェックを行って、正常ならばステップＳ１３において新規プライベートストリームにはバンクデータの最新版が格納されているかを判定する。格納されているなら、バンクデータ最新版の格納先バンクを認識する。ステップＳ１４の実行後、ステップＳ２２に移行すると、プロセッサ６はダウンロード用RAM４に新規に格納されたバンクデータの格納先バンクが旧ローダバンクであるかを判定する。新規バンクデータの格納先は復帰可能バンクであるので、ステップＳ２２がNoとなりステップＳ２６に移行する。
【００４７】
ステップＳ２６ではプロセッサ６は、ダウンロード用RAM４に格納されたバンクデータの格納先が復帰可能バンクであるかを判定する。もし復帰可能バンクならば、ステップＳ２７に移行して、格納先の復帰可能バンクは新ローダバンクに更新されたかを判定する。未更新ならばステップＳ２９に移行してダウンロード用RAM４内のバンクデータを復帰可能バンクに書き込んで処理を終える。
しかし図１４の一例では、復帰可能バンクである第２バンクは、図１４（ｂ）の中間状態において新ローダバンクに更新されているので、ステップＳ２７がYesとなりステップＳ２８に移行する。
【００４８】
ステップＳ２８では、ステップＳ２４において旧ローダバンクに更新された第１バンクを復帰可能バンクに更新する。このように更新されると、第１バンクが復帰可能バンクになり、第２バンクがローダバンクになる。
第１バンクを復帰可能バンクに更新した後、プロセッサ６はダウンロード用RAM４に格納されていたバンクデータを復帰可能バンクに更新された第１バンクに書き込む。図１４（ｄ）は、プロセッサ６が図１０のフロ−チャ−トに従ってバージョンアップを行った後の最終状態である。本図において、第２バンクがローダバンクに更新され、第１バンクが復帰可能バンクに更新されつつも、両バンクのバンクデータがバージョンアップされていることがわかる。
【００４９】
以上のように本実施形態によれば、ローダバンクの最新版が送信された場合、バンクデータの最新版を復帰可能バンクに書き込み、古いローダプログラムが配置されているバンクを復帰可能バンクに割り当てるので、マスターのローダプログラムのみを用いてローダバンクのバンクデータをバージョンアップすることができる。このような処理により、端末装置１０に配置されるローダプログラムをマスターのみにすることができ、バックアップのローダプログラムの代わりに別のソフトウェアモジュールを配置することができる。
（第３実施形態）
第３実施形態は、ソフトウェアモジュール単位のバージョンアップを実現する。図６は第３実施形態において放送局が送信するプライベートストリームの構成を示す図である。本プライベートストリームが第１実施形態に示したものと異なるのは、別々のバンクに格納すべきn本のソフトウェアモジュールが一本のプライベートストリームに多重されている点である。
【００５０】
第３実施形態における端末装置１０の内部を図７に示す。本構成が図１に示したものと異なるのは、ダウンロード用RAM４が、最新モジュール用RAM１３及びバンクデータコピー用RAM１４に置き換えられている点である。
最新モジュール用RAM１３は、複数のソフトウェアモジュールが多重されたプライベートストリームをTSデコーダ２が分離すると、これを格納する。
バンクデータコピー用RAM１４は、ソフトウェアモジュールの差し替え作業のためにバンクデータを展開するためのメモリである。ソフトウェアモジュールの差し替えとは、最新モジュール用RAM１３に最新版のソフトウェアモジュールが格納されると、バンクに格納されていたバンクデータをこのバンクデータコピー用RAM１４へと読み出し、読み出されたバンクデータが含んでいる複数のソフトウェアモジュールのうち、何れかのソフトウェアモジュールを最新モジュール用RAM１３に格納された最新版に置き換え、置換後の内容を元のバンクに書き込む作業をいう。
【００５１】
図１１はソフトウェアモジュール単位でバージョンアップを行うように構成されたローダプログラムの処理手順を示すフロ−チャ−トであり、図１５（ａ）〜Ｄ、図１６（ａ）〜Ｃは、ローダプログラムによるソフトウェアモジュールバージョンアップの過程を示す説明図である。
図１５（ａ）は、ソフトウェアモジュールバージョンアップの一連の過程のうち、初期状態を示す。本図において、モジュール_A11.old、モジュール_A12.old、モジュール_A13.old・・・・は第１バンクのソフトウェアモジュールを示す。モジュール_B11.old、モジュール_B12.old、モジュール_B13.old・・・・は第２バンクのソフトウェアモジュールを示す。これらのモジュールは何れも『old』という名称が与えられているが、これはソフトウェアモジュールは全て『旧版』という前提を意味する。ｑ１３にはモジュール_A13.new、モジュール_B15.newという２本のソフトウェアモジュールが格納されていることがわかる。これらは２本のプライベートストリームを用いて送信されたソフトウェアモジュールの最新版である。
【００５２】
端末装置１０に電源が投入されるとプロセッサ６は、図１１のフロ−チャ−トのステップＳ３１においてｑ１３内にプライベートストリームが新規に格納されたかの監視を開始する。格納されたとすると、ステップＳ３１がYesとなり、ステップＳ３２に移行する。ステップＳ３２では、最新モジュール用RAM１３に新規に格納されたプライベートストリームのCRCチェックを行い、もし正常であれば、最新モジュール用RAM１３に新規に格納されたプライベートストリームに含まれているn本の最新版ソフトウェアモジュールを取得する。取得後、ステップＳ３４において変数iの初期設定を行う。変数iとは、最新モジュール用RAM１３に格納されているn本のソフトウェアモジュールを個別に指示する変数であり、これを『１』に設定することは、最新モジュール用RAM１３に格納されている複数のソフトウェアモジュールのうち、先頭のものを以降の処理対象に設定したことを意味する。
【００５３】
ステップＳ３５では、ｑ１３内のi本目ソフトウェアモジュールのバージョン情報を取得し、ステップＳ３６では、i本目ソフトウェアモジュールを含むプライベートストリームにおけるモジュールヘッダを参照し、当該ヘッダ内のバージョン情報に含まれているバンクナンバーkを認識する。
最新モジュール用RAM１３において先頭にはモジュール_A13.newが存在し、このモジュール_A13.newのモジュールヘッダは、第１バンクを格納先に指定したバンクナンバーを有するので、第１バンクが格納先として認識される。認識後、ステップＳ３７においてバンクナンバー1のROMに格納されているバンクデータを差替作業用RAM１４に書き込む。図１５（ｂ）は、ステップＳ３７の処理を経た後の第１中間状態を示している。本図においてバンクデータコピー用RAM１４には、第１バンクに格納されていたモジュール_A11.old〜モジュール_A16.oldがそのまま格納されていることがわかる。
【００５４】
バンクデータコピー用RAM１４にバンクデータを書き込んだ後、ステップＳ３８では、バンクデータコピー用RAM１４に転送されたバンクデータに含まれる対応するソフトウェアモジュールを、最新モジュール用RAM１３に格納されたi本目最新版を用いて差し替える。
図１５（ｃ）は、ステップＳ３８の処理を経た後の第２中間状態を示している。図１５（ｂ）では、モジュール_A11.old〜モジュール_A16.oldが格納されていたが、図１５（ｃ）では、バンクデータコピー用RAM１４のソフトウェアモジュールのうちモジュール_A13.oldのみがモジュール_A13.newに置き換えられている。この置き換えにより、モジュール_A13.oldが最新版に差し替えられたバンクデータがバンクデータコピー用RAM１４に得られたことがわかる。
【００５５】
このようにソフトウェアモジュールの最新版を含んだバンクデータがバンクデータコピー用RAM１４に得られると、ステップＳ３９においてプロセッサ６は差替後ソフトウェアモジュールを差替作業用RAMからバンクナンバーk(=1)のROMに書き込む。
図１５（ｄ）は、ステップＳ３８の処理を経た後の第３中間状態を示している。図１５（ｃ）では、モジュール_A13.oldが最新版に差し替えられたバンクデータがバンクデータコピー用RAM１４に格納されていたが、図１５（ｄ）では、この最新版ソフトウェアモジュールを含むバンクデータが第１バンクに書き込まれている。この書き込みにより、モジュール_A13.oldが最新版に差し替えられたバンクデータが第１バンクに得られたことがわかる。以上により、１本目の最新版についての処理を終えると、ステップＳ４０において変数iがn本であるかを判定した後、もし変数iがnでないなら、ステップＳ４１に移行して、変数iをインクリメントする。インクリメント後、ステップＳ３５に再度に移行する。
【００５６】
ステップＳ３５では、ダウンロード用RAM４内の２本目ソフトウェアモジュールのバージョン情報を取得し、ステップＳ３６では、２本目ソフトウェアモジュールのモジュールヘッダを参照し、当該ヘッダ内のバージョン情報に含まれているバンクナンバーkを認識する。
最新モジュール用RAM１３においてモジュール_A13.newの次には、モジュール_B15.newが存在し、このモジュール_B15.newのヘッダは、第２バンクを格納先に指定したバンクナンバーを有するので、第２バンクが格納先として認識される。認識後、ステップＳ３７においてバンクナンバーk(=2)のROMに格納されているバンクデータを差替作業用RAM１４に書き込む。図１６（ａ）は、ステップＳ３７の処理を経た後の第４中間状態を示している。本図においてバンクデータコピー用RAM１４には、第２バンクに格納されていたモジュール_B11.old〜モジュール_B16.oldがそのまま格納されていることがわかる。
【００５７】
バンクデータコピー用RAM１４にバンクデータを書き込んだ後、ステップＳ３８では、バンクデータコピー用RAM１４に転送されたバンクデータに含まれる対応するソフトウェアモジュールを、最新モジュール用RAM１３に格納された2本目最新版を用いて差し替える。
図１６（ｂ）は、ステップＳ３８の処理を経た後の第５中間状態を示している。図１６（ａ）では、モジュール_B11.old〜モジュール_B16.oldが格納されていたが、図１６（ｂ）では、バンクデータコピー用RAM１４のソフトウェアモジュールのうちモジュール_B15.oldのみがモジュール_B15.newに置き換えられている。この置き換えにより、モジュール_B15.oldが最新版に差し替えられたバンクデータがバンクデータコピー用RAM１４に得られたことがわかる。
【００５８】
このようにソフトウェアモジュールの最新版を含んだバンクデータがバンクデータコピー用RAM１４に得られると、ステップＳ３９においてプロセッサ６は差替後バンクデータを差替作業用RAMからバンクナンバーk(=2)のROMに書き込む。
図１６（ｃ）は、ステップＳ３８の処理を経た後の最終状態を示している。図１６（ｂ）では、モジュール_B14が最新版に差し替えられたモジュール_B11.old〜モジュール_B16.oldがバンクデータコピー用RAM１４に格納されていたが、図１６（ｃ）では、これが第１バンクに書き込まれている。この書き込みにより、モジュール_B15.oldが最新版に差し替えられたバンクデータが第２バンクに得られたことがわかる。
【００５９】
2本目の最新版についての処理を終えると、ステップＳ４０において変数iがn本であるかを判定する。n＝２であるので、本フロ−チャ−トの処理を終える。
以上のように本実施形態によれば、バージョンアップが必要なソフトウェアモジュールのみを放送局が送信し、端末装置１０は送信されたこれらのソフトウェアモジュールを適宜受信して、これを用いてソフトウェアモジュールの差し替えを行う。バンクに格納済みのバンクデータの総入れ替えを行う場合と比較して、バージョンアップに要する時間が短くて良いので、端末装置１０によるバージョンアップをより短時間で完了させることができる。
【００６０】
（第４実施形態）
第４実施形態は、端末装置単体ではリモートバージョンアップが不可能であるが、スマートカード１５を装填することによりリモートバージョンアップが可能となる端末装置に関する。第４実施形態における端末装置の内部構成を図１７に示す。図１７において端末装置内にはプログラム群格納部５に代えてソフトウェア格納用ROM１６及びカードスロット１７が第２バス９と接続されており、ブートROM７に代えてブートROM１８が接続されている。
スマートカード１５は、その内部に第１実施形態〜第３実施形態において第２バス９と接続されていたEEPROM５１〜EEPROM５４をその内部に備えたメモリカードであり、そのコネクタや筐体、電気特性等は例えばPCMCIA規格に準拠して設計されている。
【００６１】
ソフトウェア格納用ROM１６は、ローダプログラム及びカーネルを備え、端末装置におけるソフトウェア関連の処理が完遂できるように構成されている。これらのソフトウェアモジュールが第１実施形態〜第３実施形態に格納されていたソフトウェアモジュール群と異なるのは、ソフトウェア格納用ROM１６にすｒされているソフトウェアモジュールはリモートバージョンアップが不可能な点である。
カードスロット１７は、端末装置がスマートカード１５を装填するために備えられ、ここにスマートカード１５が装填されると、スマートカード１５内のEEPROM５１〜EEPROM５４が第２バス９と接続された状態となり、プロセッサ６によりアクセスされ得る。
【００６２】
ブートROM１８は、端末装置の電源投入時にカードスロット１７におけるカード装填状態をチェックし、カードスロット１７にスマートカード１５が挿入されていない場合、ソフトウェア格納用ROM１６に格納されたソフトウェアモジュールを順次プロセッサ６に実行させるようブートストラップを行い、カードスロット１７にスマートカード１５が挿入されている場合、スマートカード１５内のEEPROM５１〜EEPROM５４に格納されたソフトウェアモジュールを順次プロセッサ６に実行させるようブートストラップを行う。
以上のように本実施形態によれば、リモートバージョンアップを行なえる体勢が整っていない時期に製造され、販売された端末装置であっても、カードスロット１７が備えられてさえいれば、外付けのスマートカード１５を装填することにより第１実施形態と同様のリモートバージョンアップを行うことができる。
【００６３】
（第５実施形態）
第５実施形態は、スマートカード１５を装填することによりローダプログラムのバージョンアップが可能となる端末装置に関する。第５実施形態における端末装置の内部構成を図１８に示す。図１８において端末装置内にはEEPROM５１に代えてカードスロット１７が第２バス９と接続されており、ブートROM７に代えてブートROM１８が接続されている。
本実施形態においてスマートカード１５は、その内部に第１実施形態〜第３実施形態において第２バス９と接続されていたEEPROM５１が備えられている。
EEPROM５２は、ローダプログラム及びカーネルを備え、EEPROM５２〜EEPROM５３だけで端末装置におけるソフトウェア関連の処理が完遂できるように構成されている。
【００６４】
ブートROM１８は、端末装置の電源投入時にカードスロット１７におけるカード装填状態をチェックし、カードスロット１７にスマートカード１５が挿入されていない場合、EEPROM５２に格納されたローダプログラム及びカーネルを順次プロセッサ６に実行させるようブートストラップを行い、カードスロット１７にスマートカード１５が挿入されている場合、スマートカード１５内のEEPROM５１に格納されたローダプログラム及びカーネルを順次プロセッサ６に実行させるようブートストラップを行う。
EEPROM５１内のローダプログラム-カーネルがプロセッサ６により実行されれば、第１実施形態同様、EEPROM５１の最新バージョンのソフトウェアモジュールがダウンロード用ROM４に格納された場合に、EEPROM５２に格納されたローダプログラムを起動し、EEPROM５２に従って最新バージョンのソフトウェアモジュールをEEPROM５１に格納させることができる。
【００６５】
以上のように本実施形態によれば、リモートバージョンアップを行なえる体勢が整っていない時期に製造され、販売された端末装置であっても、カードスロット１７が備えられてさえいれば、外付けのスマートカード１５を装填することにより第１実施形態と同様のリモートバージョンアップを行うことができる。
尚、第４実施形態及び第５実施形態において、リモートバージョンアップのためのソフトウェアモジュールをPCMCIA規格準拠のスマートカード１５により端末装置に提供したが、この提供用のカードは他の規格に準拠して設計されたものであってもよい。また、スマートカード１５でなくても書き換え可能な記録媒体ならば他のものを用いてもよい。例えば書き換え可能な記録媒体ならDVD-RAM等の相変化型光ディスクであってもよい。この場合、端末装置にはカードスロット１７に代えてディスクドライブ機構を設け、ここにソフトウェアモジュール群を記録したDVD-RAMを装填して第４実施形態、第５実施形態と同様の処理を行う。
【００６６】
上記実施形態に基づいて説明してきたが、現状において最善の効果が期待できるシステム例として提示したに過ぎない。本発明は、その要旨を逸脱しない範囲で変更実施することができる。端末装置の起動保証を実現するシステムであればどのようなシステムに適用できることはいうまでもない。以下（ａ）（ｂ）（ｃ）・・・・に示すような変更実施が可能である。
（ａ）バンクデータが転送されると直ちにバージョンアップが行なわれる例を示したが、バンクデータをＲＡＭ上に一時記憶し、操作者が終了ボタンまたは電源ボタンを入力した際に上記バージョンアップの処理を行なってもよい。
【００６７】
（ｂ）プログラムヘッダ、モジュールヘッダには他のデータ構成を用いてもよい。例えば、バンクデータのヘッダ部分に各プログラムの名前、各バージョン、各開始相対アドレス、各サイズ等を記録した構成でもよい。
（ｃ）プログラムヘッダに格納先バンクを記録し、ローダプログラムがこれをチェックすることにより格納先バンクを決定していたが、他の方法で行なってもよい。例えば、プログラム名、バージョン名等に従って、バンクの特定を行なってもよい。
（ｄ）放送サービスをデジタル衛星放送を一例にして説明したが、デジタルCATV等、他の放送サービスの端末装置に本発明の構成が適用されることはいうまでもない。
【００６８】
【発明の効果】
以上説明してきたように本発明によれば、端末装置であって、固有のバンクアドレスが割り当てられたn個(nは2以上の整数)の分割領域を有しており、各分割領域に１以上のソフトウェアモジュールが配置された配置済み領域と、バージョンアップ時におけるソフトウェアモジュールのデータサイズの増加分を見込んだ空き領域とを設けた第１メモリと、前記n個の分割領域のうち、一つのものと同じメモリ容量を有する第２メモリと、分割領域の何れかに配置されている１以上のソフトウェアモジュールの最新バージョンを格納したコンテンツ部と、ソフトウェアモジュールの格納先を示す格納先バンクアドレスを格納したヘッダ部とからなる送信データがホスト局から送信されると、これを受信する受信手段と、受信した送信データのヘッダ部を分離して、コンテンツ部に含まれている最新バージョンソフトウェアモジュールを第２メモリに蓄積する分離手段と、分離されたヘッダ部からコンテンツ部の格納先を示す格納先バンクアドレスを検出する検出手段と、第２メモリに蓄積されたコンテンツ部から最新バージョンのソフトウェアモジュールを順次読み出して、検出された格納先バンクアドレスが割り当てられた分割領域に配置する配置手段とを備えるように構成されているので、ソフトウェア格納のためのメモリを複数の領域に分割し、バージョンアップを分割領域毎に行う。これによりバージョンアップ時にダウンロードされたソフトウェアを一時記憶するためのメモリが分割領域一個分で済む。バンク数がn個であると、従来メモリの実装量がプログラム量の二倍だったのに対して、本発明では、メモリの実装量が（１＋１／ｎ）倍になる。
【００６９】
故にバージョンアップ途中の異常発生に耐え得るハードウェアをより小規模に実現できる。そのため、生産コスト増大という代償無しにソフトウェアモジュールの充実化を実現できる。
格納先バンク以外に格納されているソフトウェアモジュールを上書きすることなく、ダイレクトに最新バージョンソフトウェアモジュールをメモリに書き込めるので、高い安全性を維持しながら短期間に端末装置におけるバージョンアップを行なうことができる。
【００７０】
また上記構成において、前記メモリにおけるn個の分割領域のうち、第１分割領域にはローダプログラムのマスターが配置されると共に、第２分割領域にはローダプログラムのバックアップが配置され、前記配置手段は検出手段により検出されたバンクアドレスが第１分割領域以外の分割領域を指示していれば、第１分割領域に配置されているマスターのローダプログラムに従って、第２メモリに蓄積された最新バージョンを第１分割領域以外の分割領域に配置する第１配置制御部と、検出手段により検出されたバンクアドレスが第１分割領域を指示していれば、第２分割領域に配置されているバックアップのローダプログラムに従って、第２メモリに蓄積された最新バージョンを第１分割領域に配置する第２配置制御部とを備えるように構成しても良く、
このように構成すれば、２つの分割領域にマスター、バックアップのローダプログラムをそれぞれ配置するので、一方をバージョンアップしたい場合は、他方を起動するという制御を行うことができる。このように何れかの一方のローダプログラムの起動により、ローダプログラム自体のバージョンアップが可能となる。
サービスマンの派遣等多大な人件費の負担を伴うＲＯＭ交換を行うこと無しにバージョンアップが実現できるので、ローダプログラムのバグ修正、仕様変更等が容易になる。
【００７１】
また上記構成において、前記メモリにおけるn個の分割領域のうち、第１分割領域にはローダプログラムのマスターが配置され、前記配置手段は検出手段により検出されたバンクアドレスにより指示される分割領域が第１分割領域以外の分割領域であれば、第１分割領域に配置されているローダプログラムに従って、第２メモリに蓄積された最新バージョンを第１分割領域以外の分割領域に配置する第１配置制御部と、検出手段により検出されたバンクアドレスにより指示される分割領域が第１分割領域であれば、第１分割領域に配置されているローダプログラムに従って、第２メモリに蓄積された最新バージョンを配置手段における第１分割領域とは異なる第２分割領域に配置する第２配置制御部と、第２分割領域への配置が行われると、第２配置制御部による配置以前に第２分割領域に配置されていた1以上のソフトウェアモジュールが第２メモリに蓄積されたかを監視する監視部と、以前に配置されていた1以上のソフトウェアモジュールの最新バージョンが第２メモリに蓄積されると、第２分割領域に配置されているローダプログラムに従って、第２メモリに蓄積された1以上のソフトウェアモジュールを第１分割領域に配置する第３配置制御部とを備えるように構成しても良く、
この構成によれば、分割領域に格納されているソフトウェア群の最新版が送信された場合、当該最新版を第２分割領域に書き込むので、端末装置に配置されるローダプログラムをマスターのみにすることができ、バックアップのローダプログラムの代わりに別のソフトウェアを配置することができる。
【００７２】
また上記構成において、送信データのヘッダ部は、複数のバンクアドレスを有し、各バンクアドレスは、コンテンツ部に含まれている各ソフトウェアモジュールの格納先を示しており、前記端末装置は前記n個の分割領域のうち、一つのものと同じメモリ容量を有する第３メモリを備え、前記配置手段は送信データのコンテンツ部にソフトウェアモジュールの最新バージョンが配置されれば、何れかのソフトウェアを取り出す取出部と、検出手段により検出されたバンクアドレスにより指示された分割領域に配置されている複数のソフトウェアモジュールを第３メモリに配置する第１配置制御部と、第３メモリ内に配置された複数のソフトウェアモジュールの一部を、第２メモリから取り出された最新バージョンに差し替える差替部と、第３メモリ内の分割領域の複数のソフトウェアモジュールが差し替えられると、差替後の第３メモリの内容を識別された分割領域に配置する第２配置制御部と、第２メモリの内容が分割領域に配置されると、別のソフトウェアモジュールを取り出させる取出制御部とを備えるように構成しても良く、
この構成によれば、バージョンアップが必要なソフトウェアモジュールのみを放送局が送信し、端末装置は送信されたこれらのソフトウェアモジュールを適宜受信して、これを用いてソフトウェアの差し替えを行う。分割領域に格納済みのソフトウェアの総入れ替えを行う場合と比較して、バージョンアップに要する時間が短くて良いので、端末装置によるバージョンアップをより短時間で完了させることができる。
【図面の簡単な説明】
【図１】本実施形態におけるリモートダウンロードシステムの端末装置の構成を示す図である。
【図２】（ａ）TSデコーダ２が復号するエレメンタリ−ストリームの構成を示す図である。
（ｂ）プログラムヘッダの構成を示す図である。
【図３】（ａ）ソフトウェアモジュールの構成を示す図である。
（ｂ）モジュールヘッダの構成を示す図である。
【図４】第１バンク〜第２バンクにどのようなソフトウェアモジュールが格納されているかを示す図である。
【図５】第１バンク〜第２バンクにどのようなソフトウェアモジュールが格納されているかを示す図である。
【図６】第３実施形態におけるプライベートストリームの構成を示す図である。
【図７】第３実施形態における端末装置１０の構成を示す図である。
【図８】第１実施形態におけるカーネルの処理内容を示すフロ−チャ−トである。
【図９】第１実施形態におけるローダプログラムの処理内容を示すフロ−チャ−トである。
【図１０】第２実施形態におけるローダプログラムの処理内容を示すフロ−チャ−トである。
【図１１】第３実施形態におけるローダプログラムの処理内容を示すフロ−チャ−トである。
【図１２】第nバンク宛のバンクデータが第１実施形態におけるローダプログラムによりどのようにＲＯＭに格納されるかを示す説明図である。
【図１３】第１バンク宛のバンクデータが第１実施形態におけるローダプログラムによりどのようにＲＯＭに格納されるかを示す説明図である。
【図１４】第１バンク宛のバンクデータが第２実施形態におけるローダプログラムによりどのようにＲＯＭに格納されるかを示す説明図である。
【図１５】各バンク宛のソフトウェアモジュールが第３実施形態におけるローダプログラムによりどのようにＲＯＭに格納されるかを示す説明図である。
【図１６】各バンク宛のソフトウェアモジュールが第３実施形態におけるローダプログラムによりどのようにＲＯＭに格納されるかを示す説明図である。
【図１７】第４実施形態における端末装置１０の構成を示す図である。
【図１８】第５実施形態における端末装置１０の構成を示す図である。
【図１９】従来の端末装置の構成を示す図である。
【符号の説明】
１    チューナ
２    TSデコーダ
３    MPEGデコーダ
５    プログラム群格納部
６    プロセッサ
１０    端末装置
１１    カーネル
１２    ローダプログラム
２２    ローダプログラム
【図１】
0004084461.tif 000002
【図２】
0004084461.tif 000003
【図３】
0004084461.tif 000004
【図４】
0004084461.tif 000005
【図５】
0004084461.tif 000006
【図６】
0004084461.tif 000007
【図７】
0004084461.tif 000008
【図８】
0004084461.tif 000009
【図９】
0004084461.tif 000010
【図１０】
0004084461.tif 000011
【図１１】
0004084461.tif 000012
【図１２】
0004084461.tif 000013
【図１３】
0004084461.tif 000014
【図１４】
0004084461.tif 000015
【図１５】
0004084461.tif 000016
【図１６】
0004084461.tif 000017
【図１７】
0004084461.tif 000018
【図１８】
0004084461.tif 000019
【図１９】
0004084461.tif 000020