JP4084461B2 - リモートダウンロードが可能な端末装置、その端末装置が備えるローダプログラムに適用されるダウンロード方法、そのローダプログラムを記録した記録媒体 - Google Patents
リモートダウンロードが可能な端末装置、その端末装置が備えるローダプログラムに適用されるダウンロード方法、そのローダプログラムを記録した記録媒体 Download PDFInfo
- Publication number
- JP4084461B2 JP4084461B2 JP15488798A JP15488798A JP4084461B2 JP 4084461 B2 JP4084461 B2 JP 4084461B2 JP 15488798 A JP15488798 A JP 15488798A JP 15488798 A JP15488798 A JP 15488798A JP 4084461 B2 JP4084461 B2 JP 4084461B2
- Authority
- JP
- Japan
- Prior art keywords
- software
- divided area
- loader program
- unit
- divided
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Lifetime
Links
Images
Landscapes
- Stored Programmes (AREA)
Description
【発明の属する技術分野】
本発明は、有線、無線の通信媒体を用いたサービスシステムに用いられる端末装置、その端末装置が備えるローダプログラムに適用されるダウンロード方法、そのローダプログラムを記録した記録媒体に関する。
【0002】
【従来の技術】
有線、無線の通信媒体を用いた放送サービス事業は、近年産業界の熱い注目を浴びている。中でもデジタル衛星放送、デジタルCATVの注目度は群を抜いており、今後の様々な事業展開が期待される。
このような現状の一方、サービス事業の主催者を悩ませるのは『端末装置のメンテナンス』である。ここでいう端末装置は、様々なソフトウェアを実装することにより、高度にインテリジェント化されたものであり、これのメンテナンスとは、これらソフトウェアのバグ修正や仕様変更等を行うことをいう。
バグ修正や仕様変更は、ソフトウェアのバージョンアップによりなされるのが通常であるが、端末装置が多くの家庭に普及する程そのバージョンアップが困難になることはいうまでもない。
【0003】
多くの家庭に普及した端末装置を一律にバージョンアップするには、通信媒体を介してホスト局が最新バージョンのソフトウェアモジュールを送信し、これを端末装置に受信させて利用させればよい。端末装置がパーソナルコンピュータタイプであり、ハードディスク装置と、ハードディスク装置上の領域をディレクトリ単位、ファイル単位でアクセスするファイルシステムとを備えている場合、いわゆるインストール処理によりバージョンアップは実現される。具体的にいうと、先ずホスト局は最新バージョンのソフトウェアと、これをインストールするためのインストーラソフトとを送信する。端末装置がこれらの最新バージョンとインストーラとを受信すると、インストーラソフトは、上記ハードディスク装置に新規ディレクトリを作成し、作成したディレクトリに最新バージョンを格納する(ここで旧バージョンのソフトウェアモジュールが格納されていたディレクトリに最新バージョンが格納される場合もある。)。
【0004】
ここで留意せねばならないのは、上記のような放送サービス事業において用いられる端末装置は、多くの家庭に低価格で提供されることを念頭においているため、EEPROM等にソフトウェアモジュールを直接格納して利用しているタイプ、いわゆるマイコンシステムタイプに構成されることが一般的であり、ファイルシステムはおろか、ハードディスク装置すら備えていない(ここでEEPROMの『EEP』とは、electrically erasable and programmable の略であり、記憶内容の電気的な消去と、記憶内容の再書き込みとが可能なROMである。)。そのため、バージョンアップを行う場合にファイル単位、ディレクトリ単位にソフトウェアモジュールをアクセスすることは不可能である。
【0005】
ではどのようにソフトウェアモジュールをバージョンアップするかというと、端末装置において直接EEPROM等に格納されているソフトウェアモジュールに対して、いわゆるリモートダウンロードを行うのである。
一般にダウンロードとは、二次記憶に記憶されているデータのうち一部のものを取り出して一次記憶の内部領域に書き込む処理をいい、リモートダウンロードとは、端末装置内に備えられたメモリデバイスを一次記憶と想定し、通信サービスのホスト局内に設置されたハードディスク装置等を二次記憶と想定したダウンロードをいう。
リモートダウンロードを実現するにあたってホスト局は、二次記憶に記憶されているデータのうち、一部のものを読み出して端末装置へと送信する。端末装置は、これを受信してこれに含まれているプログラム及びデータの解析を行い、誤り検出処理等を行った後に一次記憶内の空き領域に書き込んでゆく(ここでいう空き領域とは、一次記憶内の領域のうち、既にソフトウェアモジュールにより占有されている領域以外をいう。)。
【0006】
端末装置における以上の処理は、端末装置内に実装されているプロセッサが、端末装置内部のEEPROMに記録されたローダプログラムの手順を実行することによりなされる。
原則としてリモートダウンロードは、端末装置内のプロセッサがローダプログラムに従って、以上の処理を行えば良いのであるが、受信した最新バージョンのソフトウェアモジュールを旧バージョン上に直接書き込むのは余りにも危険である。何故なら、最新バージョンを上書きしている途中に端末装置の電源が断たれると、一次記憶における新バージョンアップと旧バージョンアップとが双方とも不完全な状態となり、その何れもが事実上稼動不能となるからである。このように最新バージョンの上書き途中での電源断に備えるべく、旧バージョンのバックアップを確保しておくことは必要不可欠となる。
【0007】
では、旧バージョンソフトウェアモジュールについてバックアップはどれだけ必要であるかであるが、旧バージョンソフトウェアモジュールのバックアップは、原則として、端末装置の一次記憶に格納されている全てのソフトウェアモジュールについて必要とされる。
その理由は、最新バージョンのメモリサイズと、旧バージョンのメモリサイズに差違が発生した場合、端末装置は既に書き込まれている他のソフトウェアモジュールの旧バージョンの占有領域を余計に上書きしてしまうからである。例えば端末装置の一次記憶において先頭アドレスから順にソフトウェアモジュールの旧バージョン#1,#2,#3,#4,#5が書き込まれており、これらのソフトウェアモジュールの最新バージョンをこの一次記憶に上書きしようとしているものとする。ここでソフトウェアモジュール#1の最新バージョンのメモリサイズが、その旧バージョンのメモリサイズを大きく上回っている場合、旧バージョンのソフトウェアモジュール#1の占有領域はおろか、ソフトウェアモジュール#1に続いて記録されているソフトウェアモジュール#2,#3の旧バージョンの占有領域さえも上書きしてしまう。このようにソフトウェアモジュール#2,#3の占有領域が上書きされた状態で、電源断等の異常が発生すれば、ソフトウェアモジュール#2,#3の一部は上書きにより一次記憶上に現存しないので、次回の端末装置の起動が行えない場合が発生し得る。
【0008】
リモートダウンロードの途中で端末装置の電源が断たれた場合でも、端末装置の起動を完全に行うため、マイコンシステムタイプの端末装置には以下の二点の設計制約が与られてきた。
第1の設計制約とは、端末装置に実装されるソフトウェアモジュール群の総サイズの二倍の規模のメモリチップを実装して、一方を旧バージョンアップのソフトウェアモジュール群のバックアップに用い、他方を新バージョンのソフトウェアモジュール群のメモリライトに用いることである。即ち、新バージョンのソフトウェアの格納時に電源断が発生しても、旧バージョンのソフトウェアにより端末装置が起動できるようにしておくのである。
【0009】
第2の設計制約とは、ソフトウェアのうちダウンロード用のローダプログラムはバージョンアップの対象としない、即ち、ローダプログラムをダウンロードの対象外とすることをいう。
これらの設計制約を遵守して作成された従来の端末装置の一例を図19に示す。本端末装置はプログラムやデータからなるソフトウェアを格納し、一次記憶として用いられるメインEEPROM81と、バージョンアップ用のEEPROM82と、ローダプログラムを格納したROM83と、ローダプログラムを実行するプログラム実行部84とから構成される。
本装置を起動すると、プログラム実行部84はブートROMに格納されたブートプログラムに従って、メインEEPROM81に格納されたプログラムを実行する。プログラムの実行中、放送によりソフトウェアモジュール群の最新バージョンが転送されると、ローダプログラムは転送された最新バージョンのソフトウェアをバージョンアップ用のEEPROM82に順次格納する。
【0010】
バージョンアップが正常終了すれば、バージョンアップ用のEEPROM82に格納された最新バージョンのプログラムを起動するよう切り換え処理を行う。バージョンアップが異常終了すれば、メインEEPROM81に格納されたプログラムを再度起動し、バージョンアップを再試行する。
【0011】
【発明が解決しようとする課題】
ところで上記従来の端末装置は現在使用しているバージョンのプログラムをそのままEEPROMにバックアップしておくため、アプリケ−ションプログラムの総データサイズの二倍のEEPROMを実装せねばならない。これは『端末装置の起動保証』を満たすためやむをえないことだが、その代償として端末一台当たりのハードウェア規模が大きくなり生産コストが増大してしまう。この従来構成において生産コストを安くするためには、どうしても総ソフトウェアサイズを低減せざるを得ず、生産コスト増大という障壁により端末装置におけるソフトウェアの充実化が阻まれてしまう。
【0012】
更に従来の端末装置はローダプログラムのバグ修正、仕様変更の必要性が生じた場合、大掛かりなROM交換を実施せねばならない。即ち、放送サービスを運営する放送会社は、放送サービスに加盟している家庭にサービスマンを派遣し、無償でROM交換を行うのである。しかしこのようなROM交換は、サービス事業の主催者に多大な人件費の負担を強いるものであり、放送サービスの運営基盤を揺るがしかねない事態を招いてしまう。
本発明の第1の目的は、、生産コストの増大を伴わずにソフトウェア群の充実化を図ることができる端末装置を提供することである。
【0013】
第2の目的は、タブー視されていたローダプログラムのバージョンアップをも可能とする端末装置を提供することである。
【0014】
【課題を解決するための手段】
上記第1、第2の目的を達成するため本発明は、端末装置であって、固有のバンクアドレスが割り当てられたn個(nは2以上の整数)の分割領域を有しており、各分割領域に1以上のソフトウェアモジュールが配置された配置済み領域と、バージョンアップ時におけるソフトウェアモジュールのデータサイズの増加分を見込んだ空き領域とを設けた第1メモリと、前記n個の分割領域のうち、一つのものと同じメモリ容量を有する第2メモリと、分割領域の何れかに配置されている1以上のソフトウェアモジュールの最新バージョンを格納したコンテンツ部と、ソフトウェアモジュールの格納先を示す格納先バンクアドレスを格納したヘッダ部とからなる送信データがホスト局から送信されると、これを受信する受信手段と、受信した送信データのヘッダ部を分離して、コンテンツ部に含まれている最新バージョンソフトウェアモジュールを第2メモリに蓄積する分離手段と、分離されたヘッダ部からコンテンツ部の格納先を示す格納先バンクアドレスを検出する検出手段と、第2メモリに蓄積されたコンテンツ部から最新バージョンのソフトウェアモジュールを順次読み出して、検出された格納先バンクアドレスが割り当てられた分割領域に配置する配置手段とを備えることを特徴としている。
【0015】
【発明の実施の形態】
以下、図面を参照しながら端末装置の実施形態について説明する。
端末装置は、放送サービスAに加盟した家庭に設置される端末である。放送サービスAでは、名作映画,人気ドラマ,スポーツ,教養等様々なジャンルのTV番組が衛星を介して放送される。放送サービスAによるTV番組は地上波を用いたものと比べて多チャンネル且つ高画質であり、端末装置10はこれらの番組をTV受像機に表示させるためのチューナ、デコーダを備えている。これらのチューナ、デコーダの他に端末装置10は様々なインテリジェント機能を実現している点は注目に値する。そのインテリジェント機能には、週刊,月刊の放送予定表(一般にElectoric Program Guide(EPG)と呼ばれる。)の表示、視聴料金の課金、ヘッドラインニュースの表示、オンラインクイズ、テレビショッピング、ゲーム、カラオケ等があり、操作者との対話性を重視した構成になっている。
【0016】
端末装置10の構成を図1に示す。図1に示すように端末装置10はCSチューナ1、TSデコーダ2、AVデコーダ3、ダウンロード用RAM4、プログラム群格納部5、プロセッサ6、ブートROM7により構成される。本装置は、家庭内に設置され、TV受像機、ビデオデッキに接続されて用いられる。
CSチューナ1は、π/4QPSK(Quadrature Phase Shift Keying)変調方式の放送波をCSアンテナが受信すると、これを復調し、MPEG2に規定されたトランスポートパケットを得てTSデコーダ2に出力する。
TSデコーダ2は、CSチューナ1が出力したトランスポートパケットを四系統のエレメンタリストリームに分離する。四系統のエレメンタリストリームとは、ビデオストリーム、オーディオストリーム、PCRストリーム、プライベートストリームであり、このうちビデオストリーム、オーディオストリーム、PCRストリームをAVデコーダ3に出力し、プライベートストリームをダウンロード用RAM4に格納する。ビデオストリーム、オーディオストリーム、PCRストリームは、TV番組を構成するものであり、プライベートストリームは、インテリジェント機能のメンテナンスのために用いられる。
【0017】
四系統のエレメンタリストリームの構成を図2(a)に示す。ビデオストリームは、PID(パケット識別子(Packet IDentification)の略語である。)、ビデオデータ、CRC(巡回冗長符号の略語である。)からなり、オーディオストリームは、PID、オーディオデータ、CRCからなる。PCR(Program Clock Reference:プログラム時刻基準参照値)ストリームは、PID、PCRデータ、CRCからなり、プライベートストリームは、PID、プログラムヘッダ(図中のPrgHeaderのことを意味する。)、バンクデータ、CRCからなる。PIDは、TSデコーダ2がエレメンタリストリームを分離する際、分離すべきエレメンタリストリームをAVデコーダ3、ダウンロード用RAM4の何れに出力するかを判定する際に用いられる。
【0018】
バンクデータとは、放送サービスの放送局側が送信したソフトウェア群であって、一バンクのメモリにまとめて格納することを求めているものをいう。本実施形態においてバンクとは、端末装置が実装しているメモリのうち、ひとまとまりの分割領域を意味する。
プログラムヘッダとは、バンクデータと共にプライベートストリームとして送信される情報でありその一例を図2(b)に示す。図中の『プログラム名』は、そのバンクデータの名称を示し、『データサイズ』は、バンクデータがどの程度のデータサイズを有するかを示し、『バンクナンバー』はバンクデータの格納先となるバンクアドレスを示す。『バージョン情報』は当該バンクデータが作成された日時、或は、最後に更新された日を示す。
【0019】
AVデコーダ3は、PCRストリームに従って、ビデオストリーム及びオーディオストリームを映像信号に復号し、テレビに出力する。
ダウンロード用RAM4は、SIMMタイプのDRAM又はEEPROMであり、TSデコーダ2が分離したプライベートストリームを格納する。
プログラム群格納部5は、n個のバンクからなり、各バンクに複数のソフトウェアモジュールを分散して格納している(図1では、n=4であり、第1バンク、第2バンク、第3バンク、第4バンクからなる。)。各バンクは複数のEEPROMのチップ51〜54(以降、EEPROM51〜EEPROM54と呼ぶ。)であり、その格納容量はダウンロード用RAM4とほぼ同規模である。プログラム群格納部5により記憶されるソフトウェアモジュールとは、データ、プログラム等の複数種別のソフトウェアを一律にモジュール化したものをいう。
【0020】
これらのEEPROM51〜EEPROM54は共に、共通の第2バス9に接続されている。EEPROM51〜EEPROM54の内部領域は、論理アドレスが割り当てられることにより、プロセッサ6によりダイレクトにアクセスされる。また各バンクには固有のバンクアドレスが割り当てられおり、上記の論理アドレスは、バンクアドレスと、各バンクの内部領域を指示するオフセットアドレスとの組みによって表現される。
図4は、EEPROM51〜EEPROM54のメモリイメージを示す図である。本図において論理アドレス000000から論理アドレス0FFFFFまではバンクアドレス=01にてアクセスされ、論理アドレス100000から論理アドレス1FFFFFまではバンクアドレス=02にてアクセスされる。
【0021】
バンク1には、ソフトウェアモジュール#1〜#10が格納されており、バンク2には、先頭部から順にソフトウェアモジュール#11〜#20が格納されている。これらのソフトウェアモジュールは、バンクの終端部が空き領域になるように、バンクの先頭から順に格納されている。バンク終端部が空き領域になるように格納しているのは、バージョンアップをバンク毎に行うためである。例えばバンク1において格納されているソフトウェアモジュールを最新バージョンにバージョンアップしようとしているものとする。ここでソフトウェアモジュール#1〜#10の最新バージョンのメモリサイズが、その旧バージョンのメモリサイズを大きく上回っている場合、旧バージョンのソフトウェアモジュール#1〜#10の占有領域を上書きしてしまうが、バンク1の終端部に空き領域が存在するため、バンク2におけるソフトウェアモジュール#11〜#20の占有領域までも上書きしてしまうことはない。
【0022】
このようにEEPROM51〜EEPROM54は、終端部に空き領域を配しているため、後続する論理アドレスに位置するバンクに格納されているソフトウェアモジュールの占有領域を上書きすることなく、自身が格納しているソフトウェアモジュールを最新バージョンに上書きすることができる。
図3(a)は、ソフトウェアモジュールのフォーマットの一例である。
ソフトウェアモジュールは、モジュールヘッダと、ソフトウェア実体部と、CRCとからなる。
モジュールヘッダの一例を図3(b)に示す。モジュールヘッダは『プログラム名』『プログラムサイズ』『バンクナンバー』『バージョン情報』とからなる。『プログラム名』は当該ソフトウェアモジュールは放送局側によりどのような名称が命名されているかを示し、『プログラムサイズ』は当該ソフトウェアモジュールがどの程度のデータサイズを有するかを示す。『バンクナンバー』は当該ソフトウェアモジュールが格納されるバンクのバンクアドレスを示し、『バージョン情報』は当該バンクデータが作成された日時、或は、最後に更新された日を示す。
【0023】
本図におけるソフトウェアモジュールは、何れも『リロケータブル』いう性質を有する点で共通している。『リロケータブル』とは、『メモリ空間のどの領域に配されても動作可能』という意味である。ソフトウェアモジュールが『リロケータブル』であるのは、放送サービスの主催者がプログラム群格納部5における各ソフトウェアモジュールの配置を動的に変化させることを望んでいるからである(尚、上述したバンクデータは、一バンクに格納すべき複数のソフトウェアモジュールからなる。即ち、図3(a)のフォーマットを有するソフトウェアモジュールが複数配されてなる。)。
【0024】
ソフトウェアモジュールは、オペレーティングシステムを構成するものと、アプリケ−ションプログラムとに大別される。これは端末装置10は、『オペレーティングシステムを基盤にして各種アプリケ−ションプログラムを動作させる』という汎用コンピュ−タに見受けられるソフトウェアの管理構造を備えていることを意味する。
図5は、プログラム群格納部5に配置されている複数のソフトウェアモジュールがどのような内容であるかを示す説明図である。図5に示すように、プログラム群格納部5には、フォントデータ、ビットマップデータ、グラフィックデータ等様々な種類のソフトウェアモジュールが格納されている。本図のソフトウェアモジュールのうち、オペレーティングシステムの構成要素の代表的なソフトウェアモジュールは、カーネル11、ローダプログラム12、ローダプログラム22である。
【0025】
カーネル11は、端末装置10のインテリジョント機能のうち、基盤的な処理を行う。基盤的な処理には、電源投入直後の各ソフトウェアモジュールの正常判定、ローダプログラムの起動がある。
ローダプログラム12は、マスターのローダプログラムであり第1バンクに格納されている(図5上では、"マスター"を原本と表記している。以降の図でも"マスター"の表記には、"原本"を用いる。)。本実施形態におけるローダプログラムはプログラム群格納部5に格納されているソフトウェアモジュールのうち、アプリケ−ションプログラムに分類されるものを起動するための処理を行う。それと共に、プログラム群格納部5に格納されているバンクデータをバージョンアップするためのダウンロード処理を行う。
【0026】
ローダプログラム12により行われるダウンロード処理の代表的なものには、誤り検出処理、フラグメンテーションの解消処理等がある。
誤り検出処理とは、受信したプライベートストリームのバンクデータにビット化け等が発生している場合、CRC等を用いてこれを検出する処理をいう。もしこの検出処理により、正常なバンクデータであることが判明すれば、このバンクデータをその格納先のバンクに格納するが、誤りが検出されれば、このバンクデータの再取得を行う。ここでデジタル衛星放送の放送局が所定の周期でプライベートストリームを送信している場合、ローダプログラム12はその周期を待って、プライベートストリームを再取得し、再度誤り検出を試みる。
【0027】
フラグメンテーション解消処理とは、最新バージョンのソフトウェアモジュールのメモリサイズが旧バージョンのソフトウェアモジュールのメモリサイズを大きく上回ったために、旧バージョンのソフトウェアモジュールが占有していたメモリ領域に最新バージョンのソフトウェアモジュールを上書きできない場合に、既にメモリに書き込まれているソフトウェアモジュールを前後に移動させて、最新バージョンのソフトウェアモジュールを書き込むだけメモリサイズの空き領域を確保する処理と、逆に最新バージョンのソフトウェアモジュールのメモリサイズが旧バージョンのソフトウェアモジュールのメモリサイズを下回ったために空き領域が生じる場合に、このようなメモリサイズの差違のために生じた空き領域を既にメモリに書き込まれているソフトウェアモジュールを前後に移動させることにより詰める処理とからなる。
【0028】
新規に受信したバンクデータに対しては、以上の処理を施すのが必須であるため、ローダプログラム12のダウンロードは概して長い期間を要するといわれる。
ローダプログラム22は、ローダプログラム12と同様の処理を行うローダプログラムであって、ローダプログラム12とは別のバンク(第2バンク)にバックアップとして格納されているものである(図5上では、バックアップを"控え"と表記している。以降図でも"バックアップ"の表記には、"控え"を用いる。)。
プロセッサ6は、プログラム群格納部5内の領域のうち、読み出し先アドレスを指示するプログラムカウンタと、ソフトウェアモジュールを構成する機械語命令のうち、当該アドレスに位置するものを読み出す読み出し回路、読み出された命令を解読する解読器、命令の解読結果に従って算術演算を行う算術演算器を備え、第1バス19に接続されたダウンロードRAM4、ブートROM7をアクセスすると共に、プログラム群格納部5に格納されているソフトウェアモジュールのうちアプリケーションプログラムに分類されるものを実行する。
【0029】
ブートROM7には、端末装置10の電源投入時にプロセッサ6がブートストラップを行うためのブートプログラムが格納されている。
MMU8は、第2バス9と接続されたEEPROM51〜EEPROM54の実アドレスと、それらに対応する論理アドレスとを対応づけており、プロセッサ6が読出先アドレスを第1バス19に出力すると、当該読出先アドレスを論理アドレスとして解釈してそれに対応する実アドレスを第2バス9に出力する。MMU8は、第1バス19と、EEPROM51〜EEPROM54との間に介在しているため、EEPROM51〜EEPROM54はプロセッサ6がアクセスすることができるリニアなアドレス空間に割り付けられる。
【0030】
図8及び図9は、電源投入直後のカーネル11の処理と、ローダプログラム12によるダウンロード処理とを示したフロ−チャ−トである。
操作者が端末装置10の電源を投入すると、CSチューナ1は、π/4QPSKにより変調されたディジタル衛星放送の放送波を復調して、MPEG2に規定されたトランスポートパケットをTSデコーダ2に出力する。TSデコーダ2は、出力されたトランスポートパケットを四系統のビデオストリーム、オーディオストリーム、PCRストリーム、プライベートストリームに分離する。AVデコーダ3は、PCRストリームに従って、ビデオストリーム及びオーディオストリームを映像信号に復号し、テレビ受像機に出力する。これによりテレビ受像機には、放送サービスにおけるTV番組が表示され、操作者は名作映画,人気ドラマ,スポーツ,教養等様々なジャンルのTV番組を視聴することができる。
【0031】
このような動作の一方で、プロセッサ6が内蔵しているプログラムカウンタにブートROM7の先頭アドレスが設定される。先頭アドレスが設定されると、プロセッサ6はブートROM7に格納されているブートプログラムに従い、ブートストラップを行う。ブートストラップを行うと、プロセッサ6が有するプログラムカウンタは図8に示すカーネル11のフロ−チャ−トの先頭ステップにセットされる。
先ずプロセッサ6は、ステップS1において各バンクに配されているソフトウェアモジュールのCRCをチェックする。チェックの結果が異常があれば、ステップS2においてプロセッサ6は、ソフトウェアモジュール読み出しの再試行等然るべきエラー処理を行うが、全て正常ならステップS3に移行し、ローダプログラムが複数のバンクに存在するかを判定する。単数であれば選択の余地がないのでそのバンクのローダプログラムを起動するが、ローダプログラム12及びローダプログラム22のように複数存在する場合は、各ソフトウェアモジュールが有しているバージョン情報を参照して複数バンクに格納されているローダプログラムのうち、最新のものを起動する。つまりバージョン情報が新しいものを優先して起動するのである。
【0032】
図4の一例において、マスター側のローダプログラム12が新しいものとすると、プロセッサ6のプログラムカウンタは、ローダプログラム12の先頭アドレスに設定され、プロセッサ6の処理はカーネル11からローダプログラム12へと分岐する。
ローダプログラム12を逐次実行することにより、プロセッサ6は各種アプリケ−ションプログラムを起動するための処理を開始する。これらの処理と並行して、プロセッサ6は図9のフロ−チャ−トに示されているダウンロード処理を開始する。
ステップS11では、プロセッサ6はダウンロード用RAM4を参照してプライベートストリームが新規に格納されたか否かの監視を行う。未格納である限り、プロセッサ6はステップS11の処理を延々と繰り返す。ここで図12(a)に示すように、ダウンロード用RAM4に第nバンク宛のバンクデータが格納されると(ハッチング部参照)、ステップS12に移行し、新規に格納されたプライベートストリームのCRCチェックを行う。チェックの結果異常であればステップS11に移行するが、正常であれば、ステップS13において、プライベートストリームに含まれているプログラムヘッダを参照して、そのヘッダ内のバージョン情報を識別することにより、新規プライベートストリームにバンクデータの最新版が格納されているかを判定する。
【0033】
最新版が格納されていれば、ステップS14においてプライベートストリームのプログラムヘッダを参照し、当該バンクデータがどのバンクを格納先に指定しているかを認識する。格納バンクの認識後、ステップS15において、起動中のローダプログラムが置かれているバンクアドレスを認識する。これらのバンクアドレスを認識すると、ステップS16においてプライベートストリームに含まれていたバンクデータの格納先バンクと、起動中ローダプログラムが存在するバンクとが一致するかを判定する。
図12(a)の一例の場合、マスターのローダプログラムは第1バンクに存在し、ダウンロード用RAM4に蓄積されたプライベートストリーム内のバンクデータは第nバンクを格納先に指定しているので、両バンクは一致せず、ステップS6に移行する。ステップS6では、プロセッサ6はバンクデータを複数のソフトウェアモジュールに分割し、ステップS8では、プロセッサ6は分割された個々のソフトウェアモジュールを第nバンクが占めている領域内に書き込む。
【0034】
ここでの書き込みは、ダウンロードとは異なり、誤り検出処理、フラグメンテーション解消処理等を実行しなくてもよく、単にメモリからメモリへのベタコピーを行えば良いので短期間で済む。コピーが行われる短期間において端末装置の電源が断たれる可能性は少なく、バンクnのバージョンアップは短期間に完遂する。書き込みが行われると、第nバンクに格納されているバンクデータは、図12(b)に示すように最新版にバージョンアップされる。
第nのバージョンアップ後、図13(a)に示すように、ダウンロード用RAM4に第1バンク宛のバンクデータを含むプライベートストリームが格納されたとする。新規のプライベートストリームが格納されるとステップS11がYesとなりステップS12に移行する。プロセッサ6はステップS12において新規に格納されたプライベートストリームのCRCチェックを行い、ステップS13においてバンクデータの最新版が格納されているかを判定した後、ステップS14においてプライベートストリームのプログラムヘッダを参照し、当該バンクデータが第1バンクを格納先に指定していることを認識する。認識後、ステップS15において、起動中ローダプログラムが配置されているバンクを認識する。
【0035】
両バンクを認識した後、ステップS16においてバンクデータの格納先バンクと、起動中ローダプログラムが配置されているバンクとが一致するかを判定する。ここで格納先が第1バンクであるので、プライベートストリームに含まれていたバンクデータの格納先バンクと、起動中ローダプログラムが存在するバンクとが一致することになり、ステップS16がYesとなってステップS17に移行する。ステップS17では、カーネル11へと分岐する。分岐後、第2バンクに格納されているローダプログラムのモジュールヘッダを参照し、ヘッダ内のバージョン情報を最新の日時に改竄して、ステップS18に移行する。ステップS18では、バージョン情報の改竄に伴い、CRCの書き換えを実行する。CRCを書き換えた後、ステップS19においてプロセッサ6のリセットを行う。
【0036】
ここでバージョン情報の改竄を行いリセットを行うことは、第2バンクに格納されたバックアップのローダプログラム22をプロセッサ6に再起動させることを意味する。何故なら、リセットにより端末装置10を再起動すると、図13(b)に示すようにカーネル11はバージョン情報が新しいローダプログラムを選択するからである(図8のフロ−チャ−トのステップS4を参照)。
以降、この過程を順を追って説明する。プロセッサ6がリセットされると、プロセッサ6が有するプログラムカウンタは、ブートROM7の先頭アドレスに設定される。このように設定されると、プロセッサ6はブートROM7に格納されているブートプログラムに従い、再度ブートストラップを行って、ステップS1において各バンクに配されているソフトウェアモジュールのCRCをチェックする。全て正常ならステップS3に移行して、ローダプログラムが複数のバンクに存在するかを判定し、ステップS4において各ソフトウェアモジュールが有しているバージョン情報を参照して複数バンクに格納されているローダプログラムのうち、最新のものを起動する。ここでローダプログラム12と、ローダプログラム22のバージョン情報を比較すると、バックアップ側のローダプログラム22は最新の日時に書き換えられたので、プロセッサ6のプログラムカウンタは、ローダプログラム22の先頭アドレスに設定され、プロセッサ6の処理はカーネル11からローダプログラム22へと分岐する。
【0037】
ローダプログラム22を逐次実行することにより、プロセッサ6は各種アプリケ−ションプログラムを起動するための処理を開始する。これらの処理と並行して、プロセッサ6はカーネル11の場合と同様、図9のフロ−チャ−トに示されているダウンロード処理を開始する。
ステップS11では、プロセッサ6はダウンロード用RAM4を参照してプライベートストリームが新規に格納されたか否かの監視を行うが、既にダウンロード用RAM4に第1バンク宛のバンクデータが格納されているので、ステップS12において新規に格納されたプライベートストリームのCRCチェックを行い、ステップS13において新規プライベートストリームにバンクデータの最新版が格納されているかを判定した後、ステップS14においてプライベートストリームのプログラムヘッダを参照し、当該バンクデータがどのバンクを格納先に指定しているかを認識する。格納バンクの認識後、ステップS15において、起動中のローダプログラムが置かれているバンクを認識する。これらのバンクを認識すると、ステップS16においてプライベートストリームに含まれていたバンクデータの格納先バンクと、起動中ローダプログラムが存在するバンクとが一致するかを判定する。
【0038】
この場合起動しているのは、バージョン情報が最新の日時に改竄されたローダプログラム22であるので、両バンクは一致せずステップS6に移行する。ステップS6では、プロセッサ6はバンクデータを複数のソフトウェアモジュールに分割し、ステップS8では、プロセッサ6は分割された個々のソフトウェアモジュールを第1バンクが占めている領域内に書き込む。書き込みが行われると、第1バンクに格納されているバンクデータは、図13(c)に示すように最新版にバージョンアップされる。 この最新版バンクデータは、最新版のローダプログラムを含んでいるので、ローダプログラムも同時にバージョンアップされたことになる。
【0039】
以上のように本実施形態によれば、ソフトウェアモジュール群を複数のバンクに格納し、バンク単位でバージョンアップを行うので、バンクデータのダウンロードのためのバッファに用いるRAMがバンク一個分の規模で済む。故にバージョンアップ途中の異常発生に耐え得るハードウェアをより小規模に実現できる。そのため、生産コスト増大という代償無しにソフトウェアモジュールの充実化を実現できる。
加えて、2つのバンクにマスター、バックアップのローダプログラムをそれぞれ配置するので、一方をバージョンアップしたい場合は、他方を起動するという制御を行うことができる。このように何れかの一方のローダプログラムの起動により、ローダプログラム自体のバージョンアップが可能となる。
【0040】
サービスマンの派遣等多大な人件費の負担を伴うROM交換を行うこと無しにバージョンアップが実現できるので、ローダプログラムのバグ修正、仕様変更等が容易になる。
尚、ローダプログラムのバージョンアップには、別バンクに格納されたローダプログラムを起動する処理と、再起動処理とが伴うので、バンク1のバージョンアップは、低頻度であるのが望ましい。バンク1のバージョンアップ頻度を低くするには、高い頻度でのバージョンアップが必要なソフトウェアモジュールを、ローダプログラムが格納されているバンクに以外に配置するのが賢明である。特に、MPEGストリームの復号処理に関する処理を行うソフトウェアモジュールや、週刊,月刊の放送予定表の表示を行うソフトウェアモジュールは、更新の頻度が高いといわれるので、これらのソフトウェアモジュールはローダプログラムとは別のバンクに格納するのが望ましい。
【0041】
また、本実施形態ではソフトウェアモジュールのモジュールヘッダに記載された『バンク』を参照して各ソフトウェアモジュールをどのバンクに配置するかを決定したが、これらソフトウェアモジュールがどのような頻度で更新されたかを示す統計値を計算し、計算した統計値に基づいて各バンクにおけるソフトウェアモジュールの配置を決定し直してもよい。
(第2実施形態)
第2実施形態は、バックアップのローダプログラムを用いないローダバンクのバージョンアップを実現する構成である(ローダバンクとは、マスターのローダプログラムが配置されているバンクのことをいう。)。本実施形態においてバックアップローダプログラムを用いないのは、ROMの利用効率を向上させるためである。即ちローダプログラムをマスターのみにして、第1実施形態においてバックアップのローダプログラムが占めていた領域に別のソフトウェアモジュールを配置するのである。
【0042】
但し、第2実施形態におけるローダバンクバージョンアップの実現には前提条件がある。その前提条件とは、ローダバンク以外のバンクの中に復帰可能バンクが存在することである。復帰可能バンクとは、バンクデータが定期的に配信されるため、或は、要求信号の送信によりバンクデータの送信を放送局側に指示できる等の理由のより格納内容の復帰が可能であり、たとえ格納内容が破壊されても支障がないバンクをいう。
図10は、第2実施形態におけるローダプログラムのフロ−チャ−トであり、バックアップのローダプログラムを起動せずに、ローダバンクバージョンアップを行うよう構成されている。図14(a)〜Dの説明図を用いて、本フロ−チャ−トによるローダバンクのバージョンアップが行われる一連の過程を説明する。図14(a)は当該一連の過程の初期状態である。本初期状態では、第1バンクがローダバンクに割り当てられ、第2バンクが復帰可能バンクに割り当てられている。またダウンロード用RAM4には、ローダバンク用のバンクデータの最新版が既に蓄積されている。
【0043】
このように最新版が蓄積されると、プロセッサ6は図9のステップS11〜ステップS14までの処理と同様の処理を行う。即ち、ステップS11においてダウンロード用RAM4内にプライベートストリームが新規に格納されたかを監視し、もし格納されていれば、ステップS12において新規に格納されたプライベートストリームのCRCチェックを行って、正常ならばステップS13において新規プライベートストリームにはバンクデータの最新版が格納されているかを判定する。最新版が既に格納されているなら、ステップS14においてバンクデータ最新版の格納先を認識する。ステップS14の実行後、ステップS22に移行すると、プロセッサ6はダウンロード用RAM4に新規に格納されたバンクデータの格納先バンクがローダバンクであるかを判定する。
【0044】
もし格納先がローダバンクであれば、本来ならバンクデータの最新版を第1バンクに書き込むべきところであるが、ステップS23においてプロセッサ6は、別バンクに新規のバンクデータを書き込む。その別バンクとは復帰可能バンクのことであり、ダウンロード用RAM4内のバンクデータが復帰可能バンクに書き込まれることになる。尚、この書き込み処理を行うにあたっては、図9のステップS6〜ステップS8の処理が順次実行される。即ち、ステップS6では、プロセッサ6はバンクデータを複数のソフトウェアモジュールに分割し、ステップS8では、プロセッサ6は分割された個々のソフトウェアモジュールを復帰可能バンクが占めている領域内に書き込むのである。
【0045】
復帰可能バンクに新規のバンクデータが書き込まれると、ステップS24においてローダバンクを旧ローダバンクに変更し、復帰可能バンクを新ローダバンクに変更する。
図14(b)は、ローダバンクバージョンアップの一連の過程のうち、ステップS24の処理を終えた状態を示す。
本図では、第1バンク及び第2バンクに新旧のローダバンクのバンクデータが格納されていることがわかる。この状態でプロセッサ6は、ステップS25においてリセットを行う。
図14(b)の状態でリセットを行うことは、新ローダバンクに格納された最新版ローダプログラムをプロセッサ6に実行させることを意味する。何故なら、リセットにより端末装置10を再起動すると、カーネル11はバージョン情報が新しい新ローダバンクのローダプログラムを選択するからである(図8のフロ−チャ−トのステップS4を参照)。
【0046】
新ローダバンクのローダプログラムが起動されると、プロセッサ6は図9のステップS11〜ステップS14までの処理と同様の処理を行う。即ち、ステップS11においてダウンロード用RAM4内にプライベートストリームが新規に格納されたかを監視する。
ここで放送局によるバンクデータの定期配信が行われ、図14(c)に示すように、ダウンロード用RAM4に第2バンク宛の最新版のバンクデータを含むプライベートストリームが格納されたとする。旧復帰可能バンクである第2バンク用のバンクデータが格納されると、ステップS12において新規に格納されたプライベートストリームのCRCチェックを行って、正常ならばステップS13において新規プライベートストリームにはバンクデータの最新版が格納されているかを判定する。格納されているなら、バンクデータ最新版の格納先バンクを認識する。ステップS14の実行後、ステップS22に移行すると、プロセッサ6はダウンロード用RAM4に新規に格納されたバンクデータの格納先バンクが旧ローダバンクであるかを判定する。新規バンクデータの格納先は復帰可能バンクであるので、ステップS22がNoとなりステップS26に移行する。
【0047】
ステップS26ではプロセッサ6は、ダウンロード用RAM4に格納されたバンクデータの格納先が復帰可能バンクであるかを判定する。もし復帰可能バンクならば、ステップS27に移行して、格納先の復帰可能バンクは新ローダバンクに更新されたかを判定する。未更新ならばステップS29に移行してダウンロード用RAM4内のバンクデータを復帰可能バンクに書き込んで処理を終える。
しかし図14の一例では、復帰可能バンクである第2バンクは、図14(b)の中間状態において新ローダバンクに更新されているので、ステップS27がYesとなりステップS28に移行する。
【0048】
ステップS28では、ステップS24において旧ローダバンクに更新された第1バンクを復帰可能バンクに更新する。このように更新されると、第1バンクが復帰可能バンクになり、第2バンクがローダバンクになる。
第1バンクを復帰可能バンクに更新した後、プロセッサ6はダウンロード用RAM4に格納されていたバンクデータを復帰可能バンクに更新された第1バンクに書き込む。図14(d)は、プロセッサ6が図10のフロ−チャ−トに従ってバージョンアップを行った後の最終状態である。本図において、第2バンクがローダバンクに更新され、第1バンクが復帰可能バンクに更新されつつも、両バンクのバンクデータがバージョンアップされていることがわかる。
【0049】
以上のように本実施形態によれば、ローダバンクの最新版が送信された場合、バンクデータの最新版を復帰可能バンクに書き込み、古いローダプログラムが配置されているバンクを復帰可能バンクに割り当てるので、マスターのローダプログラムのみを用いてローダバンクのバンクデータをバージョンアップすることができる。このような処理により、端末装置10に配置されるローダプログラムをマスターのみにすることができ、バックアップのローダプログラムの代わりに別のソフトウェアモジュールを配置することができる。
(第3実施形態)
第3実施形態は、ソフトウェアモジュール単位のバージョンアップを実現する。図6は第3実施形態において放送局が送信するプライベートストリームの構成を示す図である。本プライベートストリームが第1実施形態に示したものと異なるのは、別々のバンクに格納すべきn本のソフトウェアモジュールが一本のプライベートストリームに多重されている点である。
【0050】
第3実施形態における端末装置10の内部を図7に示す。本構成が図1に示したものと異なるのは、ダウンロード用RAM4が、最新モジュール用RAM13及びバンクデータコピー用RAM14に置き換えられている点である。
最新モジュール用RAM13は、複数のソフトウェアモジュールが多重されたプライベートストリームをTSデコーダ2が分離すると、これを格納する。
バンクデータコピー用RAM14は、ソフトウェアモジュールの差し替え作業のためにバンクデータを展開するためのメモリである。ソフトウェアモジュールの差し替えとは、最新モジュール用RAM13に最新版のソフトウェアモジュールが格納されると、バンクに格納されていたバンクデータをこのバンクデータコピー用RAM14へと読み出し、読み出されたバンクデータが含んでいる複数のソフトウェアモジュールのうち、何れかのソフトウェアモジュールを最新モジュール用RAM13に格納された最新版に置き換え、置換後の内容を元のバンクに書き込む作業をいう。
【0051】
図11はソフトウェアモジュール単位でバージョンアップを行うように構成されたローダプログラムの処理手順を示すフロ−チャ−トであり、図15(a)〜D、図16(a)〜Cは、ローダプログラムによるソフトウェアモジュールバージョンアップの過程を示す説明図である。
図15(a)は、ソフトウェアモジュールバージョンアップの一連の過程のうち、初期状態を示す。本図において、モジュール_A11.old、モジュール_A12.old、モジュール_A13.old・・・・は第1バンクのソフトウェアモジュールを示す。モジュール_B11.old、モジュール_B12.old、モジュール_B13.old・・・・は第2バンクのソフトウェアモジュールを示す。これらのモジュールは何れも『old』という名称が与えられているが、これはソフトウェアモジュールは全て『旧版』という前提を意味する。q13にはモジュール_A13.new、モジュール_B15.newという2本のソフトウェアモジュールが格納されていることがわかる。これらは2本のプライベートストリームを用いて送信されたソフトウェアモジュールの最新版である。
【0052】
端末装置10に電源が投入されるとプロセッサ6は、図11のフロ−チャ−トのステップS31においてq13内にプライベートストリームが新規に格納されたかの監視を開始する。格納されたとすると、ステップS31がYesとなり、ステップS32に移行する。ステップS32では、最新モジュール用RAM13に新規に格納されたプライベートストリームのCRCチェックを行い、もし正常であれば、最新モジュール用RAM13に新規に格納されたプライベートストリームに含まれているn本の最新版ソフトウェアモジュールを取得する。取得後、ステップS34において変数iの初期設定を行う。変数iとは、最新モジュール用RAM13に格納されているn本のソフトウェアモジュールを個別に指示する変数であり、これを『1』に設定することは、最新モジュール用RAM13に格納されている複数のソフトウェアモジュールのうち、先頭のものを以降の処理対象に設定したことを意味する。
【0053】
ステップS35では、q13内のi本目ソフトウェアモジュールのバージョン情報を取得し、ステップS36では、i本目ソフトウェアモジュールを含むプライベートストリームにおけるモジュールヘッダを参照し、当該ヘッダ内のバージョン情報に含まれているバンクナンバーkを認識する。
最新モジュール用RAM13において先頭にはモジュール_A13.newが存在し、このモジュール_A13.newのモジュールヘッダは、第1バンクを格納先に指定したバンクナンバーを有するので、第1バンクが格納先として認識される。認識後、ステップS37においてバンクナンバー1のROMに格納されているバンクデータを差替作業用RAM14に書き込む。図15(b)は、ステップS37の処理を経た後の第1中間状態を示している。本図においてバンクデータコピー用RAM14には、第1バンクに格納されていたモジュール_A11.old〜モジュール_A16.oldがそのまま格納されていることがわかる。
【0054】
バンクデータコピー用RAM14にバンクデータを書き込んだ後、ステップS38では、バンクデータコピー用RAM14に転送されたバンクデータに含まれる対応するソフトウェアモジュールを、最新モジュール用RAM13に格納されたi本目最新版を用いて差し替える。
図15(c)は、ステップS38の処理を経た後の第2中間状態を示している。図15(b)では、モジュール_A11.old〜モジュール_A16.oldが格納されていたが、図15(c)では、バンクデータコピー用RAM14のソフトウェアモジュールのうちモジュール_A13.oldのみがモジュール_A13.newに置き換えられている。この置き換えにより、モジュール_A13.oldが最新版に差し替えられたバンクデータがバンクデータコピー用RAM14に得られたことがわかる。
【0055】
このようにソフトウェアモジュールの最新版を含んだバンクデータがバンクデータコピー用RAM14に得られると、ステップS39においてプロセッサ6は差替後ソフトウェアモジュールを差替作業用RAMからバンクナンバーk(=1)のROMに書き込む。
図15(d)は、ステップS38の処理を経た後の第3中間状態を示している。図15(c)では、モジュール_A13.oldが最新版に差し替えられたバンクデータがバンクデータコピー用RAM14に格納されていたが、図15(d)では、この最新版ソフトウェアモジュールを含むバンクデータが第1バンクに書き込まれている。この書き込みにより、モジュール_A13.oldが最新版に差し替えられたバンクデータが第1バンクに得られたことがわかる。以上により、1本目の最新版についての処理を終えると、ステップS40において変数iがn本であるかを判定した後、もし変数iがnでないなら、ステップS41に移行して、変数iをインクリメントする。インクリメント後、ステップS35に再度に移行する。
【0056】
ステップS35では、ダウンロード用RAM4内の2本目ソフトウェアモジュールのバージョン情報を取得し、ステップS36では、2本目ソフトウェアモジュールのモジュールヘッダを参照し、当該ヘッダ内のバージョン情報に含まれているバンクナンバーkを認識する。
最新モジュール用RAM13においてモジュール_A13.newの次には、モジュール_B15.newが存在し、このモジュール_B15.newのヘッダは、第2バンクを格納先に指定したバンクナンバーを有するので、第2バンクが格納先として認識される。認識後、ステップS37においてバンクナンバーk(=2)のROMに格納されているバンクデータを差替作業用RAM14に書き込む。図16(a)は、ステップS37の処理を経た後の第4中間状態を示している。本図においてバンクデータコピー用RAM14には、第2バンクに格納されていたモジュール_B11.old〜モジュール_B16.oldがそのまま格納されていることがわかる。
【0057】
バンクデータコピー用RAM14にバンクデータを書き込んだ後、ステップS38では、バンクデータコピー用RAM14に転送されたバンクデータに含まれる対応するソフトウェアモジュールを、最新モジュール用RAM13に格納された2本目最新版を用いて差し替える。
図16(b)は、ステップS38の処理を経た後の第5中間状態を示している。図16(a)では、モジュール_B11.old〜モジュール_B16.oldが格納されていたが、図16(b)では、バンクデータコピー用RAM14のソフトウェアモジュールのうちモジュール_B15.oldのみがモジュール_B15.newに置き換えられている。この置き換えにより、モジュール_B15.oldが最新版に差し替えられたバンクデータがバンクデータコピー用RAM14に得られたことがわかる。
【0058】
このようにソフトウェアモジュールの最新版を含んだバンクデータがバンクデータコピー用RAM14に得られると、ステップS39においてプロセッサ6は差替後バンクデータを差替作業用RAMからバンクナンバーk(=2)のROMに書き込む。
図16(c)は、ステップS38の処理を経た後の最終状態を示している。図16(b)では、モジュール_B14が最新版に差し替えられたモジュール_B11.old〜モジュール_B16.oldがバンクデータコピー用RAM14に格納されていたが、図16(c)では、これが第1バンクに書き込まれている。この書き込みにより、モジュール_B15.oldが最新版に差し替えられたバンクデータが第2バンクに得られたことがわかる。
【0059】
2本目の最新版についての処理を終えると、ステップS40において変数iがn本であるかを判定する。n=2であるので、本フロ−チャ−トの処理を終える。
以上のように本実施形態によれば、バージョンアップが必要なソフトウェアモジュールのみを放送局が送信し、端末装置10は送信されたこれらのソフトウェアモジュールを適宜受信して、これを用いてソフトウェアモジュールの差し替えを行う。バンクに格納済みのバンクデータの総入れ替えを行う場合と比較して、バージョンアップに要する時間が短くて良いので、端末装置10によるバージョンアップをより短時間で完了させることができる。
【0060】
(第4実施形態)
第4実施形態は、端末装置単体ではリモートバージョンアップが不可能であるが、スマートカード15を装填することによりリモートバージョンアップが可能となる端末装置に関する。第4実施形態における端末装置の内部構成を図17に示す。図17において端末装置内にはプログラム群格納部5に代えてソフトウェア格納用ROM16及びカードスロット17が第2バス9と接続されており、ブートROM7に代えてブートROM18が接続されている。
スマートカード15は、その内部に第1実施形態〜第3実施形態において第2バス9と接続されていたEEPROM51〜EEPROM54をその内部に備えたメモリカードであり、そのコネクタや筐体、電気特性等は例えばPCMCIA規格に準拠して設計されている。
【0061】
ソフトウェア格納用ROM16は、ローダプログラム及びカーネルを備え、端末装置におけるソフトウェア関連の処理が完遂できるように構成されている。これらのソフトウェアモジュールが第1実施形態〜第3実施形態に格納されていたソフトウェアモジュール群と異なるのは、ソフトウェア格納用ROM16にすrされているソフトウェアモジュールはリモートバージョンアップが不可能な点である。
カードスロット17は、端末装置がスマートカード15を装填するために備えられ、ここにスマートカード15が装填されると、スマートカード15内のEEPROM51〜EEPROM54が第2バス9と接続された状態となり、プロセッサ6によりアクセスされ得る。
【0062】
ブートROM18は、端末装置の電源投入時にカードスロット17におけるカード装填状態をチェックし、カードスロット17にスマートカード15が挿入されていない場合、ソフトウェア格納用ROM16に格納されたソフトウェアモジュールを順次プロセッサ6に実行させるようブートストラップを行い、カードスロット17にスマートカード15が挿入されている場合、スマートカード15内のEEPROM51〜EEPROM54に格納されたソフトウェアモジュールを順次プロセッサ6に実行させるようブートストラップを行う。
以上のように本実施形態によれば、リモートバージョンアップを行なえる体勢が整っていない時期に製造され、販売された端末装置であっても、カードスロット17が備えられてさえいれば、外付けのスマートカード15を装填することにより第1実施形態と同様のリモートバージョンアップを行うことができる。
【0063】
(第5実施形態)
第5実施形態は、スマートカード15を装填することによりローダプログラムのバージョンアップが可能となる端末装置に関する。第5実施形態における端末装置の内部構成を図18に示す。図18において端末装置内にはEEPROM51に代えてカードスロット17が第2バス9と接続されており、ブートROM7に代えてブートROM18が接続されている。
本実施形態においてスマートカード15は、その内部に第1実施形態〜第3実施形態において第2バス9と接続されていたEEPROM51が備えられている。
EEPROM52は、ローダプログラム及びカーネルを備え、EEPROM52〜EEPROM53だけで端末装置におけるソフトウェア関連の処理が完遂できるように構成されている。
【0064】
ブートROM18は、端末装置の電源投入時にカードスロット17におけるカード装填状態をチェックし、カードスロット17にスマートカード15が挿入されていない場合、EEPROM52に格納されたローダプログラム及びカーネルを順次プロセッサ6に実行させるようブートストラップを行い、カードスロット17にスマートカード15が挿入されている場合、スマートカード15内のEEPROM51に格納されたローダプログラム及びカーネルを順次プロセッサ6に実行させるようブートストラップを行う。
EEPROM51内のローダプログラム-カーネルがプロセッサ6により実行されれば、第1実施形態同様、EEPROM51の最新バージョンのソフトウェアモジュールがダウンロード用ROM4に格納された場合に、EEPROM52に格納されたローダプログラムを起動し、EEPROM52に従って最新バージョンのソフトウェアモジュールをEEPROM51に格納させることができる。
【0065】
以上のように本実施形態によれば、リモートバージョンアップを行なえる体勢が整っていない時期に製造され、販売された端末装置であっても、カードスロット17が備えられてさえいれば、外付けのスマートカード15を装填することにより第1実施形態と同様のリモートバージョンアップを行うことができる。
尚、第4実施形態及び第5実施形態において、リモートバージョンアップのためのソフトウェアモジュールをPCMCIA規格準拠のスマートカード15により端末装置に提供したが、この提供用のカードは他の規格に準拠して設計されたものであってもよい。また、スマートカード15でなくても書き換え可能な記録媒体ならば他のものを用いてもよい。例えば書き換え可能な記録媒体ならDVD-RAM等の相変化型光ディスクであってもよい。この場合、端末装置にはカードスロット17に代えてディスクドライブ機構を設け、ここにソフトウェアモジュール群を記録したDVD-RAMを装填して第4実施形態、第5実施形態と同様の処理を行う。
【0066】
上記実施形態に基づいて説明してきたが、現状において最善の効果が期待できるシステム例として提示したに過ぎない。本発明は、その要旨を逸脱しない範囲で変更実施することができる。端末装置の起動保証を実現するシステムであればどのようなシステムに適用できることはいうまでもない。以下(a)(b)(c)・・・・に示すような変更実施が可能である。
(a)バンクデータが転送されると直ちにバージョンアップが行なわれる例を示したが、バンクデータをRAM上に一時記憶し、操作者が終了ボタンまたは電源ボタンを入力した際に上記バージョンアップの処理を行なってもよい。
【0067】
(b)プログラムヘッダ、モジュールヘッダには他のデータ構成を用いてもよい。例えば、バンクデータのヘッダ部分に各プログラムの名前、各バージョン、各開始相対アドレス、各サイズ等を記録した構成でもよい。
(c)プログラムヘッダに格納先バンクを記録し、ローダプログラムがこれをチェックすることにより格納先バンクを決定していたが、他の方法で行なってもよい。例えば、プログラム名、バージョン名等に従って、バンクの特定を行なってもよい。
(d)放送サービスをデジタル衛星放送を一例にして説明したが、デジタルCATV等、他の放送サービスの端末装置に本発明の構成が適用されることはいうまでもない。
【0068】
【発明の効果】
以上説明してきたように本発明によれば、端末装置であって、固有のバンクアドレスが割り当てられたn個(nは2以上の整数)の分割領域を有しており、各分割領域に1以上のソフトウェアモジュールが配置された配置済み領域と、バージョンアップ時におけるソフトウェアモジュールのデータサイズの増加分を見込んだ空き領域とを設けた第1メモリと、前記n個の分割領域のうち、一つのものと同じメモリ容量を有する第2メモリと、分割領域の何れかに配置されている1以上のソフトウェアモジュールの最新バージョンを格納したコンテンツ部と、ソフトウェアモジュールの格納先を示す格納先バンクアドレスを格納したヘッダ部とからなる送信データがホスト局から送信されると、これを受信する受信手段と、受信した送信データのヘッダ部を分離して、コンテンツ部に含まれている最新バージョンソフトウェアモジュールを第2メモリに蓄積する分離手段と、分離されたヘッダ部からコンテンツ部の格納先を示す格納先バンクアドレスを検出する検出手段と、第2メモリに蓄積されたコンテンツ部から最新バージョンのソフトウェアモジュールを順次読み出して、検出された格納先バンクアドレスが割り当てられた分割領域に配置する配置手段とを備えるように構成されているので、ソフトウェア格納のためのメモリを複数の領域に分割し、バージョンアップを分割領域毎に行う。これによりバージョンアップ時にダウンロードされたソフトウェアを一時記憶するためのメモリが分割領域一個分で済む。バンク数がn個であると、従来メモリの実装量がプログラム量の二倍だったのに対して、本発明では、メモリの実装量が(1+1/n)倍になる。
【0069】
故にバージョンアップ途中の異常発生に耐え得るハードウェアをより小規模に実現できる。そのため、生産コスト増大という代償無しにソフトウェアモジュールの充実化を実現できる。
格納先バンク以外に格納されているソフトウェアモジュールを上書きすることなく、ダイレクトに最新バージョンソフトウェアモジュールをメモリに書き込めるので、高い安全性を維持しながら短期間に端末装置におけるバージョンアップを行なうことができる。
【0070】
また上記構成において、前記メモリにおけるn個の分割領域のうち、第1分割領域にはローダプログラムのマスターが配置されると共に、第2分割領域にはローダプログラムのバックアップが配置され、前記配置手段は検出手段により検出されたバンクアドレスが第1分割領域以外の分割領域を指示していれば、第1分割領域に配置されているマスターのローダプログラムに従って、第2メモリに蓄積された最新バージョンを第1分割領域以外の分割領域に配置する第1配置制御部と、検出手段により検出されたバンクアドレスが第1分割領域を指示していれば、第2分割領域に配置されているバックアップのローダプログラムに従って、第2メモリに蓄積された最新バージョンを第1分割領域に配置する第2配置制御部とを備えるように構成しても良く、
このように構成すれば、2つの分割領域にマスター、バックアップのローダプログラムをそれぞれ配置するので、一方をバージョンアップしたい場合は、他方を起動するという制御を行うことができる。このように何れかの一方のローダプログラムの起動により、ローダプログラム自体のバージョンアップが可能となる。
サービスマンの派遣等多大な人件費の負担を伴うROM交換を行うこと無しにバージョンアップが実現できるので、ローダプログラムのバグ修正、仕様変更等が容易になる。
【0071】
また上記構成において、前記メモリにおけるn個の分割領域のうち、第1分割領域にはローダプログラムのマスターが配置され、前記配置手段は検出手段により検出されたバンクアドレスにより指示される分割領域が第1分割領域以外の分割領域であれば、第1分割領域に配置されているローダプログラムに従って、第2メモリに蓄積された最新バージョンを第1分割領域以外の分割領域に配置する第1配置制御部と、検出手段により検出されたバンクアドレスにより指示される分割領域が第1分割領域であれば、第1分割領域に配置されているローダプログラムに従って、第2メモリに蓄積された最新バージョンを配置手段における第1分割領域とは異なる第2分割領域に配置する第2配置制御部と、第2分割領域への配置が行われると、第2配置制御部による配置以前に第2分割領域に配置されていた1以上のソフトウェアモジュールが第2メモリに蓄積されたかを監視する監視部と、以前に配置されていた1以上のソフトウェアモジュールの最新バージョンが第2メモリに蓄積されると、第2分割領域に配置されているローダプログラムに従って、第2メモリに蓄積された1以上のソフトウェアモジュールを第1分割領域に配置する第3配置制御部とを備えるように構成しても良く、
この構成によれば、分割領域に格納されているソフトウェア群の最新版が送信された場合、当該最新版を第2分割領域に書き込むので、端末装置に配置されるローダプログラムをマスターのみにすることができ、バックアップのローダプログラムの代わりに別のソフトウェアを配置することができる。
【0072】
また上記構成において、送信データのヘッダ部は、複数のバンクアドレスを有し、各バンクアドレスは、コンテンツ部に含まれている各ソフトウェアモジュールの格納先を示しており、前記端末装置は前記n個の分割領域のうち、一つのものと同じメモリ容量を有する第3メモリを備え、前記配置手段は送信データのコンテンツ部にソフトウェアモジュールの最新バージョンが配置されれば、何れかのソフトウェアを取り出す取出部と、検出手段により検出されたバンクアドレスにより指示された分割領域に配置されている複数のソフトウェアモジュールを第3メモリに配置する第1配置制御部と、第3メモリ内に配置された複数のソフトウェアモジュールの一部を、第2メモリから取り出された最新バージョンに差し替える差替部と、第3メモリ内の分割領域の複数のソフトウェアモジュールが差し替えられると、差替後の第3メモリの内容を識別された分割領域に配置する第2配置制御部と、第2メモリの内容が分割領域に配置されると、別のソフトウェアモジュールを取り出させる取出制御部とを備えるように構成しても良く、
この構成によれば、バージョンアップが必要なソフトウェアモジュールのみを放送局が送信し、端末装置は送信されたこれらのソフトウェアモジュールを適宜受信して、これを用いてソフトウェアの差し替えを行う。分割領域に格納済みのソフトウェアの総入れ替えを行う場合と比較して、バージョンアップに要する時間が短くて良いので、端末装置によるバージョンアップをより短時間で完了させることができる。
【図面の簡単な説明】
【図1】本実施形態におけるリモートダウンロードシステムの端末装置の構成を示す図である。
【図2】(a)TSデコーダ2が復号するエレメンタリ−ストリームの構成を示す図である。
(b)プログラムヘッダの構成を示す図である。
【図3】(a)ソフトウェアモジュールの構成を示す図である。
(b)モジュールヘッダの構成を示す図である。
【図4】第1バンク〜第2バンクにどのようなソフトウェアモジュールが格納されているかを示す図である。
【図5】第1バンク〜第2バンクにどのようなソフトウェアモジュールが格納されているかを示す図である。
【図6】第3実施形態におけるプライベートストリームの構成を示す図である。
【図7】第3実施形態における端末装置10の構成を示す図である。
【図8】第1実施形態におけるカーネルの処理内容を示すフロ−チャ−トである。
【図9】第1実施形態におけるローダプログラムの処理内容を示すフロ−チャ−トである。
【図10】第2実施形態におけるローダプログラムの処理内容を示すフロ−チャ−トである。
【図11】第3実施形態におけるローダプログラムの処理内容を示すフロ−チャ−トである。
【図12】第nバンク宛のバンクデータが第1実施形態におけるローダプログラムによりどのようにROMに格納されるかを示す説明図である。
【図13】第1バンク宛のバンクデータが第1実施形態におけるローダプログラムによりどのようにROMに格納されるかを示す説明図である。
【図14】第1バンク宛のバンクデータが第2実施形態におけるローダプログラムによりどのようにROMに格納されるかを示す説明図である。
【図15】各バンク宛のソフトウェアモジュールが第3実施形態におけるローダプログラムによりどのようにROMに格納されるかを示す説明図である。
【図16】各バンク宛のソフトウェアモジュールが第3実施形態におけるローダプログラムによりどのようにROMに格納されるかを示す説明図である。
【図17】第4実施形態における端末装置10の構成を示す図である。
【図18】第5実施形態における端末装置10の構成を示す図である。
【図19】従来の端末装置の構成を示す図である。
【符号の説明】
1 チューナ
2 TSデコーダ
3 MPEGデコーダ
5 プログラム群格納部
6 プロセッサ
10 端末装置
11 カーネル
12 ローダプログラム
22 ローダプログラム
Claims (14)
- 端末装置であって、
固有のバンクアドレスが割り当てられたn個(nは2以上の整数)の分割領域を有しており、各分割領域に1以上のソフトウェアモジュールが配置された配置済み領域と、バージョンアップ時におけるソフトウェアモジュールのデータサイズの増加分を見込んだ空き領域とを設けた第1メモリと、
前記n個の分割領域のうち、一つのものと同じメモリ容量を有する第2メモリと、
分割領域の何れかに配置されている1以上のソフトウェアモジュールの最新バージョンを格納したコンテンツ部と、ソフトウェアモジュールの格納先を示す格納先バンクアドレスを格納したヘッダ部とからなる送信データがホスト局から送信されると、これを受信する受信手段と、
受信した送信データのヘッダ部を分離して、コンテンツ部に含まれている最新バージョンソフトウェアモジュールを第2メモリに蓄積する分離手段と、
分離されたヘッダ部からコンテンツ部の格納先を示す格納先バンクアドレスを検出する検出手段と、
第2メモリに蓄積されたコンテンツ部から最新バージョンのソフトウェアモジュールを順次読み出して、検出された格納先バンクアドレスが割り当てられた分割領域に配置する配置手段と
を備えることを特徴とする端末装置。 - 前記メモリにおけるn個の分割領域のうち、第1分割領域にはローダプログラムのマスターが配置されると共に、第2分割領域にはローダプログラムのバックアップが配置され、
前記配置手段は
検出手段により検出されたバンクアドレスが第1分割領域以外の分割領域を指示していれば、第1分割領域に配置されているマスターのローダプログラムに従って、第2メモリに蓄積された最新バージョンを第1分割領域以外の分割領域に配置する第1配置制御部と、
検出手段により検出されたバンクアドレスが第1分割領域を指示していれば、第2分割領域に配置されているバックアップのローダプログラムに従って、第2メモリに蓄積された最新バージョンを第1分割領域に配置する第2配置制御部と
を備えることを特徴とする請求項1記載の端末装置。 - 前記第1分割領域においてローダプログラムのマスターと共に配置されているソフトウェアモジュールは、他の分割領域に配置されているソフトウェアモジュールよりもバージョンアップの頻度が低い
ことを特徴とする請求項2記載の端末装置。 - 前記メモリにおけるn個の分割領域のうち、第1分割領域にはローダプログラムのマスターが配置され、
前記配置手段は
検出手段により検出されたバンクアドレスにより指示される分割領域が第1分割領域以外の分割領域であれば、第1分割領域に配置されているローダプログラムに従って、第2メモリに蓄積された最新バージョンを第1分割領域以外の分割領域に配置する第1配置制御部と、
検出手段により検出されたバンクアドレスにより指示される分割領域が第1分割領域であれば、第1分割領域に配置されているローダプログラムに従って、第2メモリに蓄積された最新バージョンを配置手段における第1分割領域とは異なる第2分割領域に配置する第2配置制御部と、
第2分割領域への配置が行われると、第2配置制御部による配置以前に第2分割領域に配置されていた1以上のソフトウェアモジュールの最新バージョンが第2メモリに蓄積されたかを監視する監視部と、
以前に配置されていた1以上のソフトウェアモジュールの最新バージョンが第2メモリに蓄積されると、第2分割領域に配置されているローダプログラムに従って、第2メモリに蓄積された1以上のソフトウェアモジュールを第1分割領域に配置する第3配置制御部と
を備えることを特徴とする請求項1記載の端末装置。 - 前記第1分割領域においてローダプログラムのマスターと共に配置されているソフトウェアモジュールは、他の分割領域に配置されているソフトウェアモジュールよりもバージョンアップの頻度が低い
ことを特徴とする請求項4記載の端末装置。 - 送信データのコンテンツ部は、ソフトウェアモジュールの最新バージョンを複数有し、ヘッダ部は、複数のバンクアドレスを有し、各バンクアドレスは、コンテンツ部に含まれている各ソフトウェアモジュールの格納先を示しており、
前記端末装置は
前記n個の分割領域のうち、一つのものと同じメモリ容量を有する第3メモリを備え、
前記配置手段は
送信データのコンテンツ部にソフトウェアモジュールの最新バージョンが配置されれば、何れかのソフトウェアを取り出す取出部と、
検出手段により検出されたバンクアドレスにより指示された分割領域に配置されている複数のソフトウェアモジュールを第3メモリに配置する第1配置制御部と、
第3メモリ内に配置された複数のソフトウェアモジュールの一部を、第2メモリから取り出された最新バージョンに差し替える差替部と、
第3メモリ内の分割領域の複数のソフトウェアモジュールが差し替えられると、差替後の第3メモリの内容を識別された分割領域に配置する第2配置制御部と、
第2メモリの内容が分割領域に配置されると、別のソフトウェアモジュールを取り出させる取出制御部と
を備えることを特徴とする請求項1記載の端末装置。 - m本のソフトウェアを分散して格納しているn個(m≧n≧2)の分割領域から構成され、そのうち2個の分割領域にローダプログラムのマスターと、バックアップとを配しているメモリと、何れかの分割領域に格納されているソフトウェア群の最新バージョンを含む通信データを受信する受信部と、受信したソフトウェア群の最新バージョンを蓄積するバッファとを備え、受信部が通信データを受信すると、ローダプログラムのマスターの処理を開始する端末装置に用いられるローダプログラムに適用されるダウンロード方法であって、
端末装置は、さらに、最新バージョン識別部、領域判定部、書き込み部、ローダプログラム起動部とを備え、
バッファに蓄積されたソフトウェア群がどの分割領域に格納されているソフトウェア群の最新バージョンであるかを、最新バージョン識別部が識別する識別ステップと、
識別された分割領域が実行中のローダプログラムの配された分割領域であるか否かを、領域判定部が判定する判定ステップと、
実行中のローダプログラムが配された分割領域でなければ、識別された格納先にバッファ内のソフトウェア群を、書き込み部が書き込む書込ステップと、
実行中のローダプログラムが配された分割領域であれば、別分割領域に配されたバックアップのローダプログラムを、ローダプログラム起動部が起動する起動ステップと
を備えることを特徴とするダウンロード方法。 - 前記通信データは、最新バージョンの格納先となる分割領域を指示する格納先情報を含み、
前記識別ステップは、
バッファにソフトウェア群が蓄積されると、受信した通信データに含まれている格納先情報を認識する第1認識サブステップを有し、
前記判定ステップは、
格納先情報が認識されると、現在実行されているローダプログラムがどのメモリ分割領域に配されているものであるかを認識する第2認識サブステップと、
第1認識サブステップにより認識された格納先メモリと、第2認識サブステップにより認識された分割領域とが一致するか否かを判定する判定サブステップと
を備えることを特徴とする請求項7記載のダウンロード方法。 - m本のソフトウェアを分散して格納しているn個(m≧n≧2)の分割領域から構成され、そのうち1個の分割領域にローダプログラムのマスターを配しているメモリと、何れかの分割領域に格納されているソフトウェア群の最新バージョンを含む通信データを受信する受信部と、受信したソフトウェア群の最新バージョンを蓄積するバッファとを備え、受信部が通信データを受信すると、ローダプログラムのマスターの処理を開始する端末装置において用いられるローダプログラムに適用されダウンロード方法であって、
端末装置は、さらに、最新バージョン識別部、第1判定部、第1書き込み部、ローダプログラム起動部、第2判定部、第2書き込み部とを備え、
バッファに蓄積されたソフトウェア群がどの分割領域に格納されているソフトウェア群の最新バージョンであるかを、最新バージョン識別部が識別する識別ステップと、
識別された分割領域が実行中のローダプログラムの配された分割領域であるか否かを、第1判定部が判定する第1判定ステップと、
格納先が実行中のローダプログラムが配された分割領域であれば(以下、この分割領域を旧ローダ分割領域という。)、第1書き込み部が、別の分割領域(以下、この分割領域を新ローダ分割領域という。)にバッファ内のソフトウェア群を書き込む第1書込ステップと、
ローダプログラム起動部が、新ローダ分割領域に書き込まれたソフトウェア群に含まれているローダプログラムを再起動する起動ステップと、
ローダプログラムが再起動されると、新ローダ分割領域において以前格納されていたソフトウェア群がバッファに蓄積されたかを、第2判定部が判定する第2判定ステップと、
以前格納されていたソフトウェア群がバッファに蓄積されると、第2書き込み部が、これらのソフトウェア群を旧ローダ分割領域に書き込む第2書込ステップと
を備えることを特徴とするダウンロード方法。 - m本のソフトウェアを分散して格納しているn個(m≧n≧2)の分割領域から構成され、そのうち2個の分割領域にローダプログラムのマスターと、バックアップとを配しているメモリと、通信データであって、何れかの分割領域に格納されているソフトウェアの最新バージョンを含むものを受信する受信部と、受信したソフトウェア群の最新バージョンを蓄積する第1バッファと、何れかの分割領域に格納されているソフトウェア群を格納し得る第2バッファとを備え、受信部が通信データを受信すると、ローダプログラムのマスターの処理を開始する端末装置に用いられるローダプログラムに適用されダウンロード方法であって、
端末装置は、さらに、取り出し部、識別部、第1書き込み部、差し替え部、第2書き込み部、制御部とを備え、
バッファにソフトウェアの最新バージョンが複数蓄積されれば、取り出し部が、何れかのソフトウェアを取り出す取出ステップと、
取り出された最新バージョンソフトウェアがどの分割領域に格納されているソフトウェアの最新バージョンであるかを、識別部が識別する識別ステップと、
第1書き込み部が、識別された分割領域に格納されているソフトウェア群を第2バッファに書き込む第1書込ステップと、
差し替え部が、第2バッファ内に書き込まれた分割領域のソフトウェア群の一部を、第1バッファ内の最新バージョンを用いて差し替える差替ステップと、
第2バッファ内の分割領域のソフトウェア群が差し替えられると、第2書き込み部が、差替後の第2バッファの内容を分割領域に書き込む第2書込ステップと、
第2バッファの内容が分割領域に書き込まれると、制御部が、別のソフトウェアモジュールを取り出させる制御ステップと
を備えることを特徴とするダウンロード方法。 - m本のソフトウェアを分散して格納しているn個(m≧n≧2)の分割領域から構成され、そのうち2個の分割領域にローダプログラムのマスターと、バックアップとを配しているメモリと、何れかの分割領域に格納されているソフトウェア群の最新バージョンを含む通信データを受信する受信部と、受信したソフトウェア群の最新バージョンを蓄積するバッファとを備え、受信部が通信データを受信すると、ローダプログラムのマスターの処理を開始する端末装置に用いられるローダプログラムを記録した記録媒体であって、
端末装置は、さらに、最新バージョン識別部、領域判定部、書き込み部、ローダプログラム起動部とを備え、
バッファに蓄積されたソフトウェア群がどの分割領域に格納されているソフトウェア群の最新バージョンであるかを、最新バージョン識別部において識別する識別ステップと、
識別された分割領域が実行中のローダプログラムの配された分割領域であるか否かを、領域判定部において判定する判定ステップと、
実行中のローダプログラムが配された分割領域でなければ、書き込み部において、識別された格納先にバッファ内のソフトウェア群を書き込む書込ステップと、
実行中のローダプログラムが配された分割領域であれば、別分割領域に配されたローダプログラムを、ローダプログラム起動部において起動する起動ステップと
を端末装置に実行させるローダプログラムを記録した記録媒体。 - 前記通信データは、最新バージョンの格納先となる分割領域を指示する格納先情報を含み、
前記識別ステップは、
バッファにソフトウェア群が蓄積されると、受信した通信データに含まれている格納先情報を、最新バージョン識別部において認識する第1認識サブステップを含み、
前記判定ステップは、
格納先情報が認識されると、現在実行されているローダプログラムがどのメモリ分割領域に配されているものであるかを、領域判定部において認識する第2認識サブステップと、
第1認識サブステップにより認識された格納先メモリと、第2認識サブステップにより認識された分割領域とが一致するか否かを、領域判定部において判定する判定サブステップとを含む
ことを特徴とする請求項11記載の記録媒体。 - m本のソフトウェアを分散して格納しているn個(m≧n≧2)の分割領域から構成され、そのうち1個の分割領域にローダプログラムのマスターを配しているメモリと、何れかの分割領域に格納されているソフトウェア群の最新バージョンを含む通信データを受信する受信部と、受信したソフトウェア群の最新バージョンを蓄積するバッファとを備え、受信部が通信データを受信すると、ローダプログラムのマスターの処理を開始する端末装置端末装置において用いられるローダプログラムを記録した記録媒体であって、
端末装置は、さらに、最新バージョン識別部、第1判定部、第1書き込み部、ローダプ ログラム起動部、第2判定部、第2書き込み部とを備え、
バッファに蓄積されたソフトウェア群がどの分割領域に格納されているソフトウェア群の最新バージョンであるかを、最新バージョン識別部において識別する識別ステップと、
識別された分割領域が実行中のローダプログラムの配された分割領域であるか否かを、第1判定部において判定する第1判定ステップと、
格納先が実行中のローダプログラムが配された分割領域であれば(以下、この分割領域を旧ローダ分割領域という。)、第1書き込み部において、別の分割領域(以下、この分割領域を新ローダ分割領域という。)にバッファ内のソフトウェア群を書き込む第1書込ステップと、
新ローダ分割領域に書き込まれたソフトウェア群に含まれているローダプログラムを、ローダプログラム起動部において再起動する起動ステップと、
ローダプログラムが再起動されると、新ローダ分割領域において以前格納されていたソフトウェア群がバッファに蓄積されたかを、第2判定部において判定する第2判定ステップと、
以前格納されていたソフトウェア群がバッファに蓄積されると、第2書き込み部において、これらのソフトウェア群を旧ローダ分割領域に書き込む第2書込ステップと
を端末装置に実行させるローダプログラムを記録した記録媒体。 - m本のソフトウェアを分散して格納しているn個(m≧n≧2)の分割領域から構成され、そのうち2個の分割領域にローダプログラムのマスターと、バックアップとを配しているメモリと、通信データであって、何れかの分割領域に格納されているソフトウェアの最新バージョンを含むものを受信する受信部と、受信したソフトウェア群の最新バージョンを蓄積する第1バッファと、何れかの分割領域に格納されているソフトウェア群を格納し得る第2バッファとを備え、受信部が通信データを受信すると、ローダプログラムのマスターの処理を開始する端末装置端末装置に用いられるローダプログラムを記録した記録媒体であって、
端末装置は、さらに、取り出し部、識別部、第1書き込み部、差し替え部、第2書き込み部、制御部とを備え、
バッファにソフトウェアの最新バージョンが複数蓄積されれば、取り出し部において、何れかのソフトウェアを取り出す取出ステップと、
取り出された最新バージョンソフトウェアがどの分割領域に格納されているソフトウェアの最新バージョンであるかを、識別部において識別する識別ステップと、
第1書き込み部において、識別された分割領域に格納されているソフトウェア群を第2バッファに書き込む第1書込ステップと、
差し替え部において、第2バッファ内に書き込まれた分割領域のソフトウェア群の一部を、第1バッファ内の最新バージョンを用いて差し替える差替ステップと、
第1バッファ内の分割領域のソフトウェア群が差し替えられると、第2書き込み部において、差替後のバッファの内容を分割領域に書き込む第2書込ステップと、
バッファの内容が分割領域に書き込まれると、制御部において、別のソフトウェアモジュールを取り出させる制御ステップと
を端末装置に実行させるローダプログラムを記録した記録媒体。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP15488798A JP4084461B2 (ja) | 1997-06-05 | 1998-06-03 | リモートダウンロードが可能な端末装置、その端末装置が備えるローダプログラムに適用されるダウンロード方法、そのローダプログラムを記録した記録媒体 |
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP14806797 | 1997-06-05 | ||
JP9-148067 | 1997-06-05 | ||
JP15488798A JP4084461B2 (ja) | 1997-06-05 | 1998-06-03 | リモートダウンロードが可能な端末装置、その端末装置が備えるローダプログラムに適用されるダウンロード方法、そのローダプログラムを記録した記録媒体 |
Publications (2)
Publication Number | Publication Date |
---|---|
JPH1153193A JPH1153193A (ja) | 1999-02-26 |
JP4084461B2 true JP4084461B2 (ja) | 2008-04-30 |
Family
ID=26478411
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP15488798A Expired - Lifetime JP4084461B2 (ja) | 1997-06-05 | 1998-06-03 | リモートダウンロードが可能な端末装置、その端末装置が備えるローダプログラムに適用されるダウンロード方法、そのローダプログラムを記録した記録媒体 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP4084461B2 (ja) |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7069578B1 (en) * | 2000-02-04 | 2006-06-27 | Scientific-Atlanta, Inc. | Settop cable television control device and method including bootloader software and code version table for maintaining and updating settop receiver operating system software |
JP2007073069A (ja) * | 2000-05-17 | 2007-03-22 | Fujitsu Ltd | 計算機、資源自動適用処理プログラム及びそのプログラムを記録したコンピュータ読み取り可能な記録媒体 |
KR20130142119A (ko) * | 2010-10-28 | 2013-12-27 | 톰슨 라이센싱 | 정보 저장을 위해 비-휘발성 메모리를 재할당하기 위한 방법 |
JP5919204B2 (ja) * | 2013-01-24 | 2016-05-18 | 株式会社日立製作所 | 情報処理装置、情報処理方法およびサーバ |
CN109508534A (zh) * | 2017-09-14 | 2019-03-22 | 厦门雅迅网络股份有限公司 | 防止通过软件降级进行攻击的方法、嵌入式系统 |
JP2023005717A (ja) * | 2021-06-29 | 2023-01-18 | 株式会社デンソー | 車載通信システム,センタ装置,車両側システム及び車載通信の更新データ検証方法 |
-
1998
- 1998-06-03 JP JP15488798A patent/JP4084461B2/ja not_active Expired - Lifetime
Also Published As
Publication number | Publication date |
---|---|
JPH1153193A (ja) | 1999-02-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP0887729B1 (en) | Terminal device capable of remote download, download method of loader program in terminal device, and storage medium storing loader program | |
KR100611515B1 (ko) | 정보처리장치,정보처리방법및컴퓨터프로그램제공매체 | |
AU782310B2 (en) | Method and apparatus for backing up application code upon power failure during acode update | |
US6704933B1 (en) | Program configuration management apparatus | |
RU2182375C2 (ru) | Организация памяти компьютера | |
US20050223374A1 (en) | Server side configuration management | |
KR100541781B1 (ko) | 정보처리장치및방법 | |
NO331878B1 (no) | Fremgangsmate ved overforing og nedlasting av en erstatningsversjon av resident programvare, og tilsvarende mottager/dekoder | |
CN101365047A (zh) | 实现数字电视机顶盒机卡分离的方法 | |
EP1019809A2 (en) | Apparatus and method for upgrading a computer system operating system | |
JP4084461B2 (ja) | リモートダウンロードが可能な端末装置、その端末装置が備えるローダプログラムに適用されるダウンロード方法、そのローダプログラムを記録した記録媒体 | |
US20020116701A1 (en) | Information processing apparatus and method, recording medium, storage medium, and program | |
KR100253229B1 (ko) | 디지탈 방송 수신기 및 그의 다운 로딩 방법 | |
JP2005531846A (ja) | 受信器へのソフトウェアダウンロード | |
US7165247B2 (en) | Upgrading software held in read-only storage | |
JP2003067284A (ja) | デジタル放送受信機 | |
US8510788B2 (en) | Build profile for a set-top box | |
JP2000350185A (ja) | 制御プログラム送信方法及び制御プログラムダウンロード方法 | |
JP2005050097A (ja) | 情報処理装置、情報処理方法、プログラム、記録媒体 | |
JP2002207605A (ja) | 情報処理装置、及び情報処理方法 | |
KR20000076411A (ko) | 컴퓨터 메모리 구조 | |
KR20060094657A (ko) | 수신제한 시스템을 지원하는 방송 수신기의 고유정보 관리방법 | |
US20130191608A1 (en) | Method for non-volatile memory reallocation for information storage | |
CZ331499A3 (cs) | Organizace počítačové paměti |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20050602 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20071012 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20071023 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20071218 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20080122 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20080215 |
|
R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110222 Year of fee payment: 3 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120222 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130222 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130222 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20140222 Year of fee payment: 6 |
|
EXPY | Cancellation because of completion of term |