(57)【要約】  セットトップボックスは、アプリケーションコードイメージを格納する不揮発性メモリを有する。メモリが関連する指定された記憶領域より大きなアプリケーションコードイメージを格納することを可能にするため、アプリケーションコードイメージは、プライマリ部分とセカンダリ部分とに分離される。メモリは、受信した情報のセカンダリ部分を格納するための別々の記憶領域を生成するため再配分され、受信した情報のプライマリ部分は、指定された記憶領域に格納される。
2013546250.tif 000002
【特許請求の範囲】
【請求項１】
受信した情報をメモリに格納する方法であって、
前記受信した情報をプライマリ部分とセカンダリ部分とに分離するステップと、
前記入力された情報のセカンダリ部分を格納するためのセカンダリ情報部分記憶位置を決定するため前記メモリを再配分するステップと、
前記入力された情報のセカンダリ部分を格納するステップと、
前記入力された情報の第１部分をメモリの指定された記憶位置に格納するステップと、
を有する方法。
【請求項２】
前記プライマリ部分が抽出されると、前記セカンダリ部分が抽出されるように、前記受信した情報のセカンダリ部分と前記受信した情報のプライマリ部分とを一意的に関連付けるステップをさらに有する、請求項１記載の方法。
【請求項３】
それぞれがプライマリ部分とセカンダリ部分とを有する第１及び第２受信情報を受信するステップと、
前記第１及び第２受信情報のセカンダリ部分を前記第２及び第１情報のプライマリ部分とそれぞれ関連付けるステップと、
をさらに有する、請求項１記載の方法。
【請求項４】
電子装置の前記受信した情報のプライマリ部分とセカンダリ部分との適合性を特定するため、前記受信した情報のプライマリ部分とセカンダリ部分とをタグ付けするステップをさらに有する、請求項１記載の方法。
【請求項５】
前記再配分するステップはさらに、介入なしに割当て可能な記憶領域を前記受信した情報のセカンダリ部分を現在受信するため再配分するステップを有する、請求項１記載の方法。
【請求項６】
前記受信した情報のプライマリ部分は、前記受信した情報のセカンダリ部分のダウンロードを指示するデータを含む、請求項１記載の方法。
【請求項７】
受信した情報をメモリに格納する方法であって、
前記受信した情報が前記メモリの指定された記憶位置のサイズを超えるサイズを有するか判断するステップと、
前記受信した情報が前記メモリの指定された記憶位置のサイズを超えるサイズを有する場合、
前記受信した情報をプライマリ部分とセカンダリ部分とに分離するステップと、
前記入力された情報のセカンダリ部分を格納するためのセカンダリ情報部分記憶位置を決定するため、前記メモリを再配分するステップと、
前記入力された情報の第１部分を前記メモリの指定された記憶位置に格納するステップと、
を有する方法。
【請求項８】
前記プライマリ部分が抽出されると、前記セカンダリ部分が抽出されるように、前記受信した情報のセカンダリ部分と前記受信した情報のプライマリ部分とを一意的に関連付けるステップをさらに有する、請求項７記載の方法。
【請求項９】
それぞれがプライマリ部分とセカンダリ部分とを有する第１及び第２受信情報を受信するステップと、
前記第１及び第２受信情報のセカンダリ部分を前記第２及び第１情報のプライマリ部分とそれぞれ関連付けるステップと、
をさらに有する、請求項７記載の方法。
【請求項１０】
電子装置の前記受信した情報のプライマリ部分とセカンダリ部分との適合性を特定するため、前記受信した情報のプライマリ部分とセカンダリ部分とをタグ付けするステップをさらに有する、請求項７記載の方法。
【請求項１１】
前記再配分するステップはさらに、介入なしに割当て可能な記憶領域を前記受信した情報のセカンダリ部分を現在受信するため再配分するステップを有する、請求項７記載の方法。
【請求項１２】
前記受信した情報のプライマリ部分は、前記受信した情報のセカンダリ部分のダウンロードを指示するデータを含む、請求項７記載の方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本出願は、その教示がここに援用される２０１０年１０月２８日に出願された米国仮特許出願第６１／４０７，６５９号に対して３５Ｕ．Ｓ．Ｃ．１１９（ｅ）の優先権を主張する。
【０００２】
本発明は、電子装置内の不揮発性メモリを再配分する技術に関し、より詳細には、限定することなくセットトップボックスなどの受信機に関する。
【背景技術】
【０００３】
限定することなく、テレビ装置やセットトップボックスなどの各種コンテンツ受信電子装置（受信機）は、しばしばその通常動作のため受信機により利用されるコード及びデータの組み合わせを格納するフラッシュチップ又は不揮発性記憶機構を含む。コード部分は、典型的には、制御命令などを提供するブートローダ及び１以上のアプリケーションコードイメージを有する。データ部分は、受信機により利用されるパラメータ及び他の設定情報を含む。
【０００４】
冗長性のため、受信機には複数のアプリケーションコードイメージが存在しうる。１つのアプリケーションコードイメージが損傷した場合、受信機は、代替的なアプリケーションコードイメージを実行する。“アクティブイメージ”という用語は、現在実行中のアプリケーションコードイメージを表す。経時的には、コンテンツサービスプロバイダは、各種の周知の機構（Ｏｐｅｎ  Ｃａｂｌｅ  Ｃｏｍｍｏｎ  Ｄｏｗｎｌｏａｄ、ＵＳＮメモリスティックなど）により非アクティブアプリケーションコードイメージを置換できる。アプリケーションコードイメージは、受信機の設計中に決定された不揮発性メモリ配分に基づき最大サイズを有する。
【０００５】
すべてではないが一部の受信機では、ブートローダは、アプリケーションコードイメージへの固定的なポインタを有する。ブートローダは、１以上のブートローダ設定パラメータに基づき、ロードすべきアプリケーションコードイメージを選択する。すべてではないが一部の受信機では、ブートローダは、最小限の機能しか有さない。これに関して、ブートローダは、現在のアクティブアプリケーションをメモリにロードするため単に利用される。非アクティブコードイメージを置換するための機能は、現在のアクティブコードイメージにある。
【０００６】
顧客の要求に応答して、受信機のメーカーは、しばしば利用可能なメモリ内の配分スペースを超えるアプリケーションコードイメージを要求する機能を受信機に追加する。不揮発性記憶機構において異なるアプリケーションコードイメージ位置を指示するためブートローダを置換することは、しばしば実際的でなく、あるいは所望されない。さらに、アプリケーションコードイメージの置換中にすべてのコードイメージを消去することが行われるべきでない。電力不具合がコードイメージ（又はブートローダ）のすべての消去中に発生した場合、受信機は機能しなくなる可能性がある。
【発明の概要】
【０００７】
概略すると、本原理の好適な実施例によると、受信した情報をメモリに格納する方法は、入力情報を第１及び第２部分に分離することによって開始される。その後、メモリの再配分が、入力情報の第２部分を格納するための第２情報部分格納位置を決定するため行われ、入力情報の第１部分は、メモリの指定された格納位置に格納される。
【図面の簡単な説明】
【０００８】
【図１】図１は、本原理の情報格納技術を実現するためのコンテンツ受信機のブロック概略図を示す。
【図２】図２は、再配分前のコンテンツ受信機内の不揮発性記憶要素のブロック図を示す。
【図３】図３は、本原理による再配分後の図２の不揮発性記憶要素のブロック図を示す。
【発明を実施するための形態】
【０００９】
図１は、本原理のメモリ配分技術を実現可能なコンテンツ受信機の一例を構成するセットトップボックス１０のブロック概略図を示す。セットトップ１０は、ケーブルテレビ、衛星テレビ又は通信サービスプロバイダ（図示せず）などのコンテンツプロバイダにより提供されるマルチチャネルコンテンツストリーム１４の特定のチャネルをチューニングするための入力信号受信機１２を有する。入力信号プロセッサ１６は、コントローラ１８の制御の下で入力信号受信機１２によりチューニングされたチャネルストリームを処理する。入力信号プロセッサ１６により実行される処理は、チューニングされたチャネルストリームの性質に依存する。例えば、入力信号プロセッサ１６は、入力信号ストリーム受信機１２によりチューニングされた入力ストリームが符号化されていた場合、復号化を実行する必要がある。
【００１０】
信号処理の後、入力ストリームプロセッサ１６は、処理されたチャネルストリーム信号を、オーディオプロセッサ２０による受信用のオーディオ部分と、ビデオプロセッサ２２による受信用のビデオ部分とにそれぞれ分離する。入力ストリームプロセッサ１６と同様に、オーディオプロセッサ２０とビデオプロセッサ２２とは双方ともコントローラ１８の制御の下で動作する。オーディオインタフェース２４は、オーディオプロセッサ２０により生成される処理されたチャネルストリームのオーディオ部分を受信及び再生する。ビデオオーディオインタフェース２６は、ビデオプロセッサ２２により生成される処理されたチャネルストリームのビデオ部分を受信及び再生する。
【００１１】
フラッシュメモリなどの不揮発性メモリ装置２８は、情報の供給と格納のため、コントローラ１８と共にそれぞれオーディオプロセッサ２０及びビデオプロセッサ２２とのリンクを有する。さらに、コントローラ１８はまた、コントローラのためのプログラム命令を格納可能な制御メモリ３０とのリンクを有する。ユーザは、ユーザインタフェース３２を介しコントローラ１８に命令を入力し、ステータス情報を受信することができる。
【００１２】
図２は、図１の不揮発性メモリ２８の典型的な配分を示す。メモリ２８の第１記憶位置２００は、メモリ２８の他の何れかに格納されている特定のデータ構造を指定するよう機能するブートローダを格納する。例えば、ブートローダは、ときには“バンク１”及び“バンク２”とそれぞれ呼ばれる記憶位置２０２，２０４に格納されている第１及び第２アプリケーションコードイメージの１つを指定できる。記憶位置２００に格納されているブートローダの処理は、不揮発性メモリ２８の記憶位置２０６に格納されているブートローダパラメータに依存する。
【００１３】
記憶位置２０２，２０４にそれぞれ格納されている第１及び第２アプリケーションコードイメージはそれぞれ、サブ位置２０８，２１０に格納されている関連するタグを有する。対応するアプリケーションコードイメージに関連付けされた各タグは、特定のメーカーにより製造された特定モデルのセットトップボックスにより利用されるコードイメージを一意的に特定する。これらのタグは、他のセットトップボックスを意図したアプリケーションコードイメージのロードを阻止する。
【００１４】
記憶位置２００〜２１０に加えて、図１の不揮発性メモリ２８は、記憶位置２１２，２１４により例示されるように、追加的な記憶位置を有することが可能である。実際、コントローラ１８は、サービスプロバイダ又はユーザにより介入なく、記憶位置２１２と共に記憶位置２００〜２１０を変更可能である。一部のセットトップボックス又はそこに格納されるデータの少なくとも一部のため、記憶位置２１４は、ユーザ又はサービスプロバイダの介入を変更することを要求する。
【００１５】
図２に示されるメモリ２８の配分は、何れかのアプリケーションコードイメージが現在アクティブであるかの何れの表示も提供しない。いくつかの具体例では、マルチステージ処理が、メモリ２８の最終的な所望の配分を取得するのに必要になる。サービスプロバイダが、コードアップグレードパスとしてＯｐｅｎ  Ｃａｂｌｅ  Ｃｏｍｍｏｎ  Ｄｏｗｎｌｏａｄを利用する場合、サービスプロバイダは、セットトップボックスのモデルがサポートされる限り、セットトップボックスのアップグレードのすべての段階についてサービス配信ネットワーク内の帯域幅を配分する必要がある。しばしば、サービスプロバイダは、延長された期間において倉庫にある数量のセットトップボックスを格納するであろう。さらに、いくつかの具体例では、セットトップボックスは、加入者の自宅において延長された期間電源オフのままにされうる。“休眠中”のセットトップボックスが以降にサービスプロバイダのネットワークに付属されると、当該セットトップボックスは、アップグレードのすべての段階を必要とすることになる。アップグレードのすべての段階を提供するための必要性は、現在アクティブであるアプリケーションコードイメージを特定するため、以降に提案される手段のいくつかの実現を妨げる。
【００１６】
現在のアプリケーションコードイメージが大きくなったときにメモリを配分するための可能な第１の手段は、例えば、記憶領域２０４（バンク２）など、図２の不揮発性メモリ２８の同一位置に現在のアプリケーションコードイメージを常に格納することである。従って、記憶領域２０４は常に、現在アクティブなアプリケーションコードイメージを保持する。以降のアプリケーションコードイメージのアップグレードによって、記憶領域２０４（バンク２）のコンテンツが置換される。現在アクティブなアプリケーションコードイメージが空いている記憶スペースに拡張することを可能にするため、図１及び２の不揮発性メモリ２８内の記憶スペースは、典型的には大きなメモリに対してコンパクト化される。
【００１７】
図１の記憶領域２０２（“バンク１”として指定される）は、限定的なインテリジェンスを必要とするバックアップアプリケーションコードイメージを保持するのに利用される。すなわち、バックアップアプリケーションコードイメージは、格納されているアプリケーションコードイメージが損傷した場合、アプリケーションコードイメージを記憶領域２０４（バンク２）にロードするのに十分なインテリジェンスを所持しさえすればよい。
【００１８】
このアプローチは、ブートローダを置換する必要性を軽減する効果を提供する。このアプローチを利用して、ブートローダは、常に記憶領域２０４（バンク２）を指示する。しかしながら、このアプローチは、記憶領域２０２（バンク１）又は記憶領域２０４（バンク２）がアクティブなアプリケーションコードイメージを有するか否かの知識がメモリ再配分前にない場合、マルチステージアップグレード処理が必要になるという短所がある。
【００１９】
現在のアプリケーションコードイメージが大きくなるすぎるときにメモリを配分する他の可能な手段は、アプリケーションコードイメージのスタートアドレスを変更するようブートローダをアップグレードすることである。このアプローチは、等しいサイズの２つのアプリケーションコードイメージを可能にする。しかしながら、このアプローチは、何れの記憶領域２０２，２０４（それぞれバンク１，２）が現在アクティブなアプリケーションコードイメージを保持しているかに関する何れの予めの知識がない場合、マルチステージアップグレード処理が必要になるという短所がある。さらに、セットトップボックス１０は、アップグレード中に電力不具合が発生した場合、機能しなくなる。より以前のアプリケーションコードイメージが図１及び２の不揮発性メモリ２８の新たな配分を理解しない場合、アプリケーションコードイメージのより以前のバージョンへのダウングレードは不可能になる。
【００２０】
現在のアプリケーションコードイメージが大きくなりすぎたときにメモリを配分するための第３の可能な手段がある。この手段は、フレキシブルなアプリケーションコードイメージのスタートアドレスを可能にするため、図２の記憶領域２０２（バンク１）のボタンに新たなセカンダリブートローダを配置することを伴う。バンク１，２は図１，２の不揮発性メモリ２８内でシフトされ、不揮発性データ記憶位置の一部を再配分するためサイズが増大される。このアプローチは、既存のブートローダを置換する必要性を軽減し、等しいサイズの２つのアプリケーションコードイメージを可能にする。
【００２１】
しかしながら、このアプローチは、何れの記憶領域２０２，２０４（それぞれバンク１，２）が現在アクティブなアプリケーションコードイメージを保持しているかに関する予めの知識がない場合、マルチステージアップグレード処理が必要になるという短所がある。さらに、受信機は、電力不具合がアップグレード中に発生した場合、機能しなくなる。より以前のアプリケーションコードイメージが図１，２の不揮発性メモリ２８の新たな配分を理解しない場合、アプリケーションコードイメージの以前のバージョンへのダウングレードは不可能になる。
【００２２】
図３は、上述した可能な配分技術の短所を解消する本原理による不揮発性メモリ２８の配分を示す。以降においてより詳細に説明されるように、図３に示されるメモリ２８の配分は、以下の制約を考慮すると、コンパクト化されたデータ格納を提供する。
（１）記憶領域のオリジナルの構造は、ホームユーザ又はサービスプロバイダが通常動作のため受信機を再設定する必要なく、不揮発性メモリ２１４において移動できない設定の詳細を含む。
（２）設定の詳細は、既存のデータ記憶領域の一方のエンドにある（ハイ又はロー）。
（３）記憶領域のオリジナル構造は、再生成又は再取得前に加入者又はサービスプロバイダによる介入を必要としない不揮発性メモリ２１２にデータを有する。
【００２３】
図３に示されるメモリ８の配分は、図２の配分技術と多くの類似を含む。このため、同様の参照番号が、図２のメモリ２８内の同一領域を示すのに図３において示される。すなわち、図３のメモリ２８の領域２００〜２１０は、図２の領域２００〜２１０と同じアイテム（ブートローダ、ブートローダパラメータ、アプリケーションコードイメージ、タグなど）を格納する。
【００２４】
図３に示されるメモリ２８の配分は、以下のように図２のメモリ２８の半分と異なっている。図２の記憶領域２１２は、図３ではサブ領域２１６，２１８，２２０に再配分されている。サブ領域２１６，２１８は、“コードバンク１ｂ”及び“コードバンク２ｂ”と記され、それぞれは、後述されるように第１及び第２アプリケーションコードイメージの一部を格納する。従って、記憶位置２１２が空であるか、又は加入者又はサービスプロバイダの介入なしに再取得可能なデータについて利用される図２に示されるメモリ２８の配分と対照的に、図３のメモリ配分は、アプリケーションコードイメージの一部を格納するため記憶位置２１２を利用する。図３に示されるメモリ２８の配分は、以前のように記憶領域２１４を維持する。
【００２５】
本原理によると、図３のメモリ２８への格納用のアプリケーションコードイメージを受信すると、当該アプリケーションコードイメージを格納するため領域２０２，２０４の容量を決定するため、アプリケーションコードイメージのサイズの確認が行われる。受信したアプリケーションコードイメージのサイズが図３の記憶領域２０２，２０４の１つへの格納を許容する場合、さらなる処理を必要とすることなく格納が行われる。
【００２６】
しかしながら、受信したアプリケーションコードイメージが図３の記憶領域２０２，２０４の１つのサイズを超過する場合、受信したアプリケーションコードイメージは、それぞれプライマリ部分とセカンダリ部分として参照される第１及び第２部分に分割される。受信したアプリケーションコードイメージの分割は、アプリケーションコードイメージのプライマリ部分がオリジナルのアプリケーションコードイメージのスペース（すなわち、図３の領域２０２，２０４の１つ）に適合可能となるようにして行われる。アプリケーションコードイメージのセカンダリ部分は、この目的のため再配分された２つの空いているデータセクション（図３の領域２１６，２１８）の１つに格納される。図３の領域２０２，２０４の１つにアプリケーションコードイメージのプライマリ部分をロードすることは、典型的には、従来の技術を介して行われる。アプリケーションコードイメージのプライマリ部分は、通常の動作能力を有するが、再配分された記憶領域の１つにロードされたセカンダリ部分の実行まで機能低減される。アプリケーションコードイメージのプライマリ部分は、再配分された記憶領域（記憶領域２１６，２１８の１つなど）にアプリケーションコードイメージのセカンダリ部分をロードするための新たな機能を含む。
【００２７】
上述されるように、図２，３の不揮発性メモリ２８に格納されるアプリケーションコードイメージは、当該アプリケーションコードイメージが実行されるセットトップボックスのメーカー及びモデルを特定する関連するタグを有する。本原理によると、各アプリケーションコードイメージのセカンダリ部分は、このためのタグを有する。このため、再配分された領域２１６，２１８は、再配分された領域に格納されるセカンダリアプリケーションコードイメージ部分に関するタグを格納するため、それぞれサブ領域２２０，２２２を有する。より以前のアプリケーションコードイメージを実行するセットトップボックスは、新たに受信したアプリケーションコードイメージのプライマリ部分しかロードしない。新たにロードされたアプリケーションコードイメージは、新たなタグを理解し、セカンダリ部分を再配分されたストレージにロードする。
【００２８】
図３のメモリ２８の上述された配分に関連して、サービスプロバイダは、コードイメージのプライマリ部分とセカンダリ部分との双方をセットトップボックス１０に利用可能にする必要がある。サービスプロバイダがメモリ２８の新たな再配分を認識しないより以前のコードイメージにダウングレードすることを決定した場合、サービスプロバイダは、古いコードイメージを非アクティブなアプリケーションバンク（図３の記憶領域２０２，２０４の１つなど）にロードし、その後、古いアプリケーションコードイメージをアクティブにする。ロードされると、古いコードイメージは、メモリ２８の再配分が行われたことを検出し、再配分されたメモリは、古いコードイメージが予期するデータを含まない。このような状況では、古いアプリケーションコードイメージは、ユーザ又はサービスプロバイダの介入なしに当該データのリロードを開始する。
【００２９】
本原理による図３のメモリ２８の配分は、不揮発性メモリにおけるブートローダを置換する必要性を軽減する効果を提供する。さらに、図３のメモリ２８の配分は、既存のアプリケーションコードイメージの再配分又は消去を要求しない。本原理によると、新たに空きになった記憶領域２１６，２１８の１つが、新たに受信したアプリケーションコードイメージのセカンダリ部分に配分される。受信した各アプリケーションコードイメージのプライマリ部分はそれぞれ、記憶領域２０２，２０４の１つに配分される。本例では、プライマリ部分が記憶領域２０２（バンク１）にあるアプリケーションコードイメージは、それのセカンダリ部分のため再配分された記憶領域２１６（バンク１ｂ）を利用する。同様に、プライマリ部分が記憶領域２０４（バンク２）にあるアプリケーションコードイメージは、それのセカンダリ部分のため再配分された記憶領域２１８（バンク２ｂ）を利用する。受信したアプリケーションコードイメージの２つの部分が分離されずに一緒にリンクされている場合、サービスプロバイダは、プライマリ部分とセカンダリ部分との双方を同時に変更する必要がある。受信したアプリケーションコードイメージのプライマリ部分とセカンダリ部分とが分離されずにリンクされていない場合、プライマリ部分とセカンダリ部分とは、独立してアップグレードすることが可能である。
【００３０】
いくつかの例では、新たな機能を有する新たに受信したアプリケーションコードイメージをロードした後、問題が生じる可能性がある。このような問題が生じると、アプリケーションコードイメージの以前のバージョンに戻る必要がある。本原理による図３のメモリ２８の再配分は、セットトップボックス１０にリロードされた場合、より以前のバージョンのアプリケーションコードが通常動作することを阻止しない。さらに、本原理のメモリ配分は、当該メモリ配分を利用する新たなアプリケーションコードイメージへのコードアップグレードを可能にする。さらに、本原理のメモリ配分は、新たな配分構造を理解しない以前のアプリケーションコードイメージが依然としてロードされ、正常に機能するコード“ダウングレード”を阻止しない。
【００３１】
上述されるように、プライマリ部分がそれぞれ記憶領域２０２，２０４に配分されるアプリケーションコードイメージは、それらに関連するセカンダリ部分のため、それぞれ再配分された記憶領域２１６，２１８を利用する。しかしながら、プライマリアプリケーションコードイメージ部分は、アプリケーションコードイメージセカンダリ部分の何れかを利用可能である。従って、プライマリ部分がバンク１（図３の記憶領域２０２）にあるアプリケーションコードイメージは、バンク１ｂ（記憶領域２１６）又はバンク２ｂ（記憶領域２１８）に格納されているセカンダリアプリケーションコードイメージ部分を利用可能である。
【００３２】
上記は、限定することなくセットトップボックスなどの受信機におけるメモリを配分する技術を説明した。
【図１】
2013546250.tif 000003
【図２】
2013546250.tif 000004
【図３】
2013546250.tif 000005
【国際調査報告】
2013546250.tif 000006
2013546250.tif 000007
2013546250.tif 000008