(57)【要約】デジタルＴＶセットトップボックス用プログラマブルデータ処理装置であって、該データ処理装置が  第１の形式のコードおよび／またはデータの部分をＤＳＭ−ＣＣカラセル（ＤＣ）から受信するためのローディングエンジン（ＬＥ）と、  該ローディングエンジン（ＬＥ）によって受信された部分を記憶するための記憶手段（Ｃ）と、  受信された部分によって実現されるアプリケーションを実行するためのエグゼキューションエンジン（ＥＥ）と、  第１の形式のコードをエグゼキューションエンジン（ＥＥ）の固有コードに翻訳するためのトランスレーションエンジン（ＴＥ）とを備えている形式のプログラマブルデータ処理装置。  前記トランスレーションエンジン（ＴＥ）は前記受信された部分の少なくとも１つの所定の部分をコンパイルしかつこのようにしてコンパイルされた部分を記憶手段（Ｃ）に記憶しかつ、コードのその他の部分を解釈するように適合されており、かつエグゼキューションエンジン（ＥＥ）はコンパイルされたコードおよび解釈されたコードを同じアプリケーション内で処理するように適合されている。
2005535011.tif 000002
【特許請求の範囲】
【請求項１】
プログラマブルデータ処理装置であって、該データ処理装置は
第１の形式のコードおよび／またはデータの部分を、該部分が繰り返し伝送される放送網のストリーム（ＤＣ）から受信するためのローディングエンジン（ＬＥ）と、
該ローディングエンジン（ＬＥ）によって受信された部分を記憶するための記憶手段（Ｃ）と、
受信された部分によって実現されるアプリケーションを実行するためのエグゼキューションエンジン（ＥＥ）と、
第１の形式のコードをエグゼキューションエンジン（ＥＥ）の固有コードに翻訳するためのトランスレーションエンジン（ＴＥ）と
を備えている形式のものにおいて、
前記トランスレーションエンジン（ＴＥ）はこのようにしてコンパイルされた部分を記憶手段（Ｃ）に記憶し、前以て決められたシグナリング情報がストリームから受信されたとき、前記受信された部分の少なくとも１つのある部分を固有コードに変換し、かつコードのその他の部分を解釈するように適合されており、かつ
エグゼキューションエンジン（ＥＥ）はコンパイルされたコードおよび解釈されたコードを同じアプリケーション内で処理するように適合されている
ことを特徴とするプログラマブルデータ処理装置。
【請求項２】
前記トランスレーションエンジン（ＴＥ）は、該トランスレーションエンジンが受信した制御情報に従って前記ある部分を選択するように適合されている
請求項１記載のプログラマブルデータ処理装置。
【請求項３】
ストリーム（ＤＣ）はＤＳＭ−ＣＣカラセルである
請求項１または２記載のプログラマブルデータ処理装置。
【請求項４】
前記部分はＤＳＭ−ＣＣモジュール（Ｉ）である
請求項３記載のプログラマブルデータ処理装置。
【請求項５】
前記部分はＤＳＭ−ＣＣモジュールの一部分である
請求項３記載のプログラマブルデータ処理装置。
【請求項６】
トランスレーションエンジン（ＴＥ）は、ストリーム（ＤＣ）から前記制御情報を受信するのに適合されている
請求項２から５までのいずれか１項記載のプログラマブルデータ処理装置。
【請求項７】
前記制御情報はＤＳＭ−ＣＣプリフェッチシグナリングである
請求項３、４および６記載のプログラマブルデータ処理装置。
【請求項８】
トランスレーションエンジン（ＴＥ）は、ＤＳＭ−ＣＣカラセル（ＤＣ）のペイロードモジュール（Ｔ）から制御情報を抽出するのに適合されている
請求項３および６および４または５のいずれか１項に記載のプログラマブルデータ処理装置。
【請求項９】
トランスレーションエンジン（ＴＥ）は、前記ペイロードモジュール（Ｔ）からコンパイルされるべきコード部分に関するコンパイル最適化情報を抽出しかつ前記コード部分をコンパイルするプロセスにおいて前記コンパイル最適化を考慮するのに適合されている
請求項８記載のプログラマブルデータ処理装置。
【請求項１０】
トランスレーションエンジン（ＴＥ）は、前記エグゼキューションエンジン（ＥＥ）から制御情報を受信するのに適合されている
請求項２から９までのいずれか１項記載のプログラマブルデータ処理装置。
【請求項１１】
トランスレーションエンジン（ＴＥ）は、前記エグゼキューションエンジン（ＥＥ）から受信される制御情報に従って第１の形式のコードの所定の部分をコンパイルするのか解釈するのかを決定するのに適合されている
請求項１から１０までのいずれか１項記載のプログラマブルデータ処理装置。
【請求項１２】
トランスレーションエンジン（ＴＥ）は、所定の第１の形式のコード部分のコンパイル期間に、該部分を解釈するよう要求する制御情報を無視しかつ該部分のコンパイルを終了するように適合されている
請求項１１記載のプログラマブルデータ処理装置。
【請求項１３】
トランスレーションエンジン（ＴＥ）は、所定の第１の形式のコード部分を解釈するよう要求する制御情報を前記部分のコンパイル期間に受信するとき、該コンパイルを放棄しかつ該部分の解釈をスタートするのに適合されている
請求項１１記載のプログラマブルデータ処理装置。
【請求項１４】
ａ）  第１の形式のコード（Ｉ）および／またはデータ（Ｄ）の部分を、該部分（Ｉ，Ｄ）が繰り返し伝送される放送網のストリーム（ＤＣ）から受信し（ａ１，ａ１′）、ここで該ストリーム（ＤＣ）中に伝送される部分のセットが１つまたは複数のデータ処理アプリケーションを実現しており、
ｂ）  前記部分の前以て決められているものを記憶手段（Ｃ）に記憶し（ａ６，ａ９′，ｂ３）、
ｃ）  前以て決められているシグナリング情報がストリームから受信されるとき、トランスレーションエンジンにおいて第１の形式のコードを有している前記部分の少なくとも１つをエグゼキューションエンジンの固有コードにコンパイルし、
ｄ）  エグゼキューションエンジン（ＥＥ）において、前記１つのアプリケーションに属している選択された部分の前記コンパイルされた固有コード（Ｎ）を実行し（ｃ６）かつ該アプリケーションの選択されない部分を解釈する（ｃ６）ことによって前記データ処理アプリケーションの１つを実行する
というステップを有しているデータ処理方法。
【請求項１５】
ステップｃとｄとの間に、ステップｄにおいて実行されるべきアプリケーションを特定するユーザからの命令を受信するステップを有している
請求項１４記載のデータ処理方法。
【請求項１６】
ステップｃにおいて、前記少なくとも１つの部分がトランスレーションエンジン（ＴＥ）に供給される制御情報に基づいて選択される（ａ２，ａ３′，ａ４′，ａ５′）
請求項１４または１５記載のデータ処理方法。
【請求項１７】
ストリーム（ＤＣ）はＤＳＭ−ＣＣカラセルである
請求項１４から１６までのいずれか１項記載のデータ処理方法。
【請求項１８】
前記部分はＤＳＭ−ＣＣモジュールである
請求項１７記載のデータ処理方法。
【請求項１９】
前記部分はＤＳＭ−ＣＣモジュール（Ｉ）の一部分である
請求項１７記載のデータ処理方法。
【請求項２０】
前記制御情報は前記ストリーム（ＤＣ）から受信される（ａ２，ａ５′）
請求項１６から１９までのいずれか１項記載のプログラマブルデータ処理装置。
【請求項２１】
前記制御情報はＤＳＭ−ＣＣプリフェッチ情報である
請求項１８および２０記載のデータ処理方法。
【請求項２２】
制御情報は、ＤＳＭ−ＣＣカラセル（ＤＣ）のペイロードモジュール（Ｔ）である
請求項１８または１９および２０のいずれか１項に記載のデータ処理方法。
【請求項２３】
制御情報は更に、コンパイルされるべきコード部分に関するコンパイル最適化情報を有しておりかつトランスレーションエンジンは該コード部分をコンパイルするとき、該コンパイル最適化情報を考慮する
請求項２２記載のデータ処理方法。
【請求項２４】
前記制御情報は前記エグゼキューションエンジン（ＥＥ）から受信される（ａ４′）
請求項１４から１９までのいずれか１項記載のデータ処理方法。
【請求項２５】
トランスレーションエンジン（ＴＥ）は、前記エグゼキューションエンジン（ＥＥ）からの前記制御情報に基づいて、第１の形式のコードの所定の部分をコンパイルするのか解釈するのかを決定する
請求項２４記載のデータ処理方法。
【請求項２６】
トランスレーションエンジン（ＴＥ）は所定の部分を解釈するよう要求する制御情報を該部分のコンパイル期間に受信するならば、該トランスレーションエンジンは該制御情報を無視し（ｃ１１）かつ該部分のコンパイルを終了する
請求項２５記載のデータ処理方法。
【請求項２７】
トランスレーションエンジン（ＴＥ）は所定の部分を解釈するよう要求する制御情報を前記部分のコンパイル期間に受信するならば、該トランスレーションエンジンは該コンパイルを放棄し（ｃ１１）かつ該部分の解釈をスタートする
請求項２５記載のデータ処理方法。
【請求項２８】
ステップｃ）の後、コンパイルされた部分の第１の形式のコードに割り当てられているメモリスペースがオーバライトのために解放される
請求項１４から２７までのいずれか１項記載のデータ処理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ダウンリンク伝送（中央局から端末装置へ）に対するネットワークデータレートがアップリンク伝送（端末装置から中央局へ）に対するネットワークデータレートより遙かに高いという場合の、アプリケーションをネットワークの中央局から複数の端末装置に伝送しかつ端末装置においてアプリケーションを実行するように特別に適合されているデータ処理装置および方法に関する。
【０００２】
この形式の典型的なネットワークはインタラクティブＴＶネットワークである。この種のネットワークにおいて、端末装置は所謂セットトップボックスを備えているＴＶセットから成っており、かつ中央局は放送局である。ダウンリンクにおいて、オーディオ／ビデオデータ（ＡＶデータ）およびアプリケーションデータが高レートで個々のＴＶセットに伝送されるが、アップリンクデータレートは遙かに低く、放送局へのフィードバックを要求しないアプリケーションに対しては零になることもある。
【０００３】
この種のネットワークのトポロジーは１つの共通のサーバーに接続されている複数のワークステーションを備えているコモンコンピュータネットワークに類似しているとはいえ、このようなネットワークの特性で数多くの新しい問題を抱えている。そのうちの１つはインタラクティブＴＶネットワークにおいて端末装置の数が極端に大きいことであり、その数は１００万またはそれ以上になることがある。ローカルコンピュータネットワークにおいて、それぞれの端末はダウンロードされるべき特定のアプリケーションを好きなときに自由に要求することができるが、インタラクティブＴＶネットワークで同じことを認めるとすれば極めて高いデータ伝送容量が要求されることになる。インタラクティブテレビジョンの分野ではこの問題は所謂ＤＳＭ−ＣＣ（Digital Storage Media Command and Control）カラセルを使用して解決される。ＤＳＭ−ＣＣカラセルはモジュールのシーケンスが伝送されるＡＶデータと一緒に放送局によって伝送されるデータストリームで、この場合モジュールのそれぞれは端末装置によって実行することができる１つまたは複数のアプリケーションのコードおよび／またはデータを有している。モジュールのこのシーケンスの伝送はエンドレスに繰り返される。アプリケーションの数は制限されているので、所定の時間間隔後にモジュール全部の伝送が繰り返される。アプリケーションを実行することができるようにするために、端末装置はこのアプリケーションに属するすべてのモジュールを収集しなければならない。
【０００４】
端末装置が所定のアプリケーションを起動するようにユーザからの命令を受信した後でようやくこのアプリケーションのモジュールの収集をスタートするならば、結果的に命令と起動との間に相当の遅延が生じることになり、それはユーザには煩わしい。
【０００５】
この問題を軽減するために、ＤＶＢ（Digital Video Broadcast Forum, www.dbd.org）のＭＨＰ（Multimedia Home Platform）標準によれば、放送局はいわゆるプリフェッチシグナリゼーション（pre-fetch signalization）を伝送するようにしている。これは、カラセルにおいて伝送されるそれぞれのモジュールに対して、端末装置でこのモジュールをこの間に記憶する価値があるかどうかを指示するものである。価値がある場合とは
近い将来にこのモジュールが実行されなければならないことは尤もらしいときである。相応に、端末装置はプリフェッチシグナリゼーションによって特定されるモジュールをそこに記憶するための記憶手段を有していてよく、その結果この種のモジュールが実行されなければならない場合に、実行は直ちに開始することができ、モジュールの再伝送を待つ必要はない。
【０００６】
このことは、ＤＳＭ−ＣＣカラセルにおいて同報通信されるコードが端末装置が更なる予備的な処理を必要とすることなく実施することができる固有コードであるならば満足できる解決法と言えよう。しかし固有コードの使用は端末装置の極めて高度の標準化を要求するという欠点を持つことになりかつこの種の端末装置の種々の製造業者があるので、このような標準化のために、端末装置にＪａｖａバーチャルマシーンを備えるようにし、そうしてアプリケーションを放送局から端末装置にＪａｖａ中間コードとして伝送するようにするという考えを業者に持たすことは難しい。現実にはこの解決法は、ＤＶＢ−ＭＨＰアプリケーションが基礎をなしている専有のハードウェアが何であってもいずれかのＤＶＢ−ＭＨＰプラットフォームで実行されるということであれば有利である。
【０００７】
しかし、この解決法のためにはパワーの大きいＪａｖａバーチャルマシーンが必要であり、このために著しいプロセッサ速度および相当量のメモリも必要になってくる。市場においては、比較的高価なハードウェアプラットフォームに対するこの要求は一般に、インタラクティブデジタルテレビジョンに対するＤＶＢ−ＭＨＰ解決法の重大な欠点と見なされかつこのことはＤＶＢ−ＭＨＰ解決法の急速な拡大を著しく制限するものと考えることができる。
【０００８】
古典的なＪａｖａ実行環境において、実行時間を低減することでアプリケーション処理速度を稼げることが多い。このことはＪａｖａクラスを、実行できるようになる前にマシーンによってまず解釈されなければならない中間コードにではなくて、Ｊａｖａバーチャルマシーンのプロセッサによって直接実行することができる固有コードに編集することによって行われる。
【０００９】
上述した形式のデジタルＴＶネットワークにおいて、この種の編集は端末装置においてしか行えないことは明らかである。放送局が編集済みのアプリケーションを伝送するとするならば、インターオペラビリティは失われることになりかねない。編集が端末装置で行われるならば、実行速度を改善することができるが、潜在負荷は増大することになる。というのは、ユーザが所定のアプリケーションを起動するように命令を出したとき、ユーザはこのアプリケーションのすべてのモジュールがカラセルから受信されるまでのみならず、付加的にその編集のために必要な時間をも待たなければならないからである。
【００１０】
従って本発明の課題は、アプリケーションが部分づつ共通のストリームにおいて伝送されるネットワークに使用されるようになっているプログラマブルデータ処理装置およびデータ処理方法であって、アプリケーションを起動するという決定の入力とアプリケーションの実際のスタートとの間の小さな遅延を高い処理力を必要とすることなしに実現できるようにした、プログラマブルデータ処理装置およびデータ処理方法を提供することである。
【００１１】
この課題は、プログラマブルデータ処理装置であって、該データ処理装置が
第１の形式のコードおよび／またはデータの部分を、該部分が繰り返し伝送される放送網のストリームから受信するためのローディングエンジンと、
該ローディングエンジンによって受信された部分を記憶するための記憶手段と、
受信された部分によって実現されるアプリケーションを実行するためのエグゼキューションエンジンと、
第１の形式のコードをエグゼキューションエンジンの固有コードに翻訳するためのトランスレーションエンジンと
を備えている形式のものにおいて、
前記トランスレーションエンジン（ＴＥ）はこのようにしてコンパイルされた部分を記憶手段（Ｃ）に記憶し、前以て決められたシグナリング情報がストリームから受信されたとき、前記受信された部分の少なくとも１つのある部分を固有コードにコンパイルし、かつコードのその他の部分を解釈するように適合されており、かつ
エグゼキューションエンジン（ＥＥ）はコンパイルされたコードおよび解釈されたコードを同じアプリケーション内で処理するように適合されている
ことを特徴とするプログラマブルデータ処理装置
によって解決される。
【００１２】
この課題は、
ａ）  第１の形式のコードおよび／またはデータの部分を、該部分が繰り返し伝送される放送網のストリームから受信し、ここで該ストリーム中に伝送される部分のセットが１つまたは複数のデータ処理アプリケーションを実現しており、
ｂ）  前記部分の前以て決められているものを記憶手段に記憶し、
ｃ）  前以て決められているシグナリング情報がストリームから受信されるとき、トランスレーションエンジンにおいて第１の形式のコードを有している前記部分の少なくとも１つをエグゼキューションエンジンの固有コードにコンパイルし、
ｄ）  エグゼキューションエンジンにおいて、前記１つのアプリケーションに属している選択された部分の前記コンパイルされた固有コードを実行しかつ該アプリケーションの選択されない部分を解釈するによって前記データ処理アプリケーションの１つを実行する
というステップを有しているデータ処理方法
によって解決される。
【００１３】
この装置および方法において、トランスレーションエンジンがデータ処理装置に既に受信されたコードの部分をコンパイルするようにしたことによって、所定のアプリケーションのコードの部分をデータ処理装置に伝送する際の遅延を利用することができる。
アプリケーションのコードが完全に受信されるや否や、アプリケーションの実行をスタートすることができる。つまり、その時点でまだコンパイルされていないコード部分は解釈によって実行することができる。
【００１４】
有利には、アプリケーションの実行はこの効果に対する命令がユーザによって入力されたときにだけ始めるようになっている。ユーザが入力する前に装置は最も好都合には、このアプリケーションのコード部分を既に収集しかつコンパイルしているようにすべきである。
【００１５】
つまり、実行がスタートしたとき、コードの部分がコンパイルされているという事実が、すべてのコードが解釈されるという従来の装置の実行速度に比して実行速度を高めるのである。エグゼキューションエンジンおよびトランスレーションエンジンが処理力を共有しているデータ処理装置において、この速度上昇に対する主な理由は、解釈するとき、処理力は中間コードの部分をエグゼキューションエンジンの固有コードに、この部分が実行される都度翻訳することに費やされ、一方コンパイルするとき、コードは一括して翻訳され、その結果解釈はいつでも、アプリケーションの実行のためにもっとよく使用することができるはずである処理力を吸収してしまうということである。しかしエグゼキューションエンジンおよびトランスレーションエンジンが処理力に関して競合しないシステムにおいてすら、速度上昇は可能である。というのは、コンパイルされたコードは解釈されたコードより一層効率よく作ることができるからである。
【００１６】
装置のエグゼキューションエンジンおよびトランスレーションエンジンが物理的に別個のユニットであるならば、トランスレーションユニットがアプリケーションの実行時にコードの別の部分をコンパイルするようにすることで一層の改良を実現することができる。このことは、特別パワーの大きいトランスレーションエンジンを設ける必要なく可能である。というのは、エグゼキューションエンジンがコンパイルされたコードを実行するとき、トランスレーションエンジンはコンパイルのために使用可能である予備時間を有しているからである。この手法において、コンパイルされるコードと解釈されるコードとの比は実行期間の間に連続的に増えていくことになり、ついには、アプリケーションのすべてのコードがコンパイルされるのである。
【００１７】
トランスレーションエンジンおよびエグゼキューションエンジンが共通のプロセッサにおいて時分割方式でインプリメントされているバーチャルデバイスであるならば、編集は上述したように実行時に続けることもでき、または、択一的に、コンパイルされたコードが実行されているとき、共通のプロセッサの処理力すべてをエグゼキューションエンジンに割り当てることができる。
【００１８】
最も有利には、トランスレーションエンジンは、受信したシグナリング情報に従ってそれがコンパイルするコード部分を選択するように適合されている。
【００１９】
このシグナリング情報の１つのソースは、コードの部分が伝送されるストリームであってよい。ストリームがＤＳＭ−ＣＣカラセルであるならば、このようなカラセルにおいて通例では伝送されるプリフェッチシグナリングをこのシグナリング情報として使用するようにしてもよい。すなわち、従来では、ＤＶＢ−ＭＨＰプラットフォームがプリフェッチシグナリングによって特定されるＤＳＭモジュールをそれが伝送された形において記憶しようとするだけで、場合によっては後からそれを解釈する一方、本発明のデータ処理装置は付加的にこの種のモジュールをコンパイルすることもできる。
【００２０】
勿論、コンパイルされるべき部分はＤＳＭ−ＣＣモジュールの一部分であってもよい。この場合、コンパイルされるべき部分を特定するために、ＤＳＭ−ＣＣプリフェッチシグナリングの他に別の形式のシグナリング情報がカラセルにおいて伝送されなければならないことになる。この種のシグナリング情報は、コードの１つのまたは別の部分が実行される相対頻度または、コードの種々の部分に対して異なっている可能性があるのだが、解釈されたコードに勝るコンパイルされるコードの効率の期待される上昇に基づいてアプリケーションを開発する要員によって定義されてよい。
【００２１】
択一的にまたは付加的に、最初に、プリフェッチ情報がカラセルにおいて伝送されるそれぞれのモジュールに対して、それが端末装置において第１の形式の形において記憶されなければならないかどうかを指示する。それから、トランスレーションエンジンが、コンパイルされるべきコードの部分を指示する前以て決められているシグナリング情報をエグゼキューションエンジンから受信する。このことは特に、アプリケーションの実行時に有用である。放送局はタイミングを見計らって、例えばアプリケーションの実行のちょうど前に翻訳に着手することができる。この種のアプリケーションは複数のモジュールまたは部分から成っていてよく、そのうちのいくつかは何百回も実行され、他のものは全く実行されない可能性がある。放送局はどのモジュールまたは部分がすぐに実行されることになるのかを分かっておりかつ実行を予測することができる。普通、アプリケーションが開発されるとき、コードのどの部分が頻繁に実行されかつどの部分がそうではないか、またはどの部分が間もなく期待されるのかを推定することができる。コードの頻繁に期待される部分に対する編集命令はアプリケーションのコードの別の部分において、例えば初期化部分に含まれていてよく、その結果初期化部分が実行されるとき、シグナリング情報はこれら編集命令によりエグゼキューションエンジンからトランスレーションエンジンに送信されるようにすることができる。
【００２２】
トランスレーションエンジンは更に、それがエグゼキューションエンジンから受信したシグナリング情報に依存して第１の形式のコードの所定の部分をコンパイルするのかまたは翻訳するのかを決定するのに適合されているべきである。すなわち、トランスレーションエンジンは、エグゼキューションエンジンがコードにおけるあるアドレスへのジャンプまたは分岐命令を実行しなければならないとき、このアドレスを特定するシグナリング情報を受信しなければならないことになる。相応のコード部分が、命令が実行されなければならないときにまだコンパイルされていないのならば、トランスレーションエンジンは、処理遅延を回避するためにジャンプまたは分岐命令に明示されているコードを解釈しなければならないことになる。
【００２３】
ジャンプまたは分岐命令の目標アドレスを有しているコード部分が命令が実行される時点で編集下にあるならば、手続きの１つの可能性は、トランスレーションエンジンが解釈を要求するエグゼキューションエンジンからのシグナリング情報を無視することおよびトランスレーションエンジンがこのコード部分のコンパイルを終了することである。この場合、エグゼキューションエンジンはジャンプまたは分岐命令を実施できる前にある程度の時間待たなければならないことになるが、この遅延は後からの処理速度を上げることによって補償されるようにすることができる。
【００２４】
択一的な可能性は、このような場合においてトランスレーションエンジンがこのコード部分の編集を放棄しかつ、エグゼキューションエンジンが待ち状態ならないようにするために、当該部分の解釈をスタートさせる。トランスレーションエンジンがこの部分の編集を終了するように要求される処理時点の推定に基づいてこれら２つの択一例を選択するようにすることもできる。
【００２５】
本発明の別の特徴および利点は添付されている図面に示されている有利な実施例の以下の説明から明らかになる。
【００２６】
図１は本発明のプログラマブルデータ処理装置のブロック回路図であり、
図２は図１の装置によって実行されるプロセスの第１のフローチャートであり、
図３は図１の装置によって実行される択一的なプロセスの第２のフローチャートであり、
図４Ａ，図４Ｂはそれぞれ図３の詳細の可能な実施例を示し、
図５は本発明の装置の第２の実施例のブロック回路図である。
【００２７】
図１の鎖線で囲まれて示されているデータ処理装置は、ローディングエンジンＬＥと、コンパイルエンジンＣＥおよびインタプリティングエンジンＩＥから成るトランスレーションエンジンＴＥと、キャッシュＣと、エグゼキューションエンジンＥＥとを有している。この装置は、デジタルテレビジョンに対するセットトップボックスの部分である。
【００２８】
ローディングエンジンＬＥはＤＳＭ−ＣＣカラセルＤＣからコードおよびデータのモジュールを受信するのに適合されている。このカラセルにおいて、ペイロードモジュールのセットが循環的に伝送される。２つの形式のペイロードモジュールがあり、アルファベットＤを付けている用紙として示されているデータモジュールとアルファベットＩを有する用紙として示されているコードモジュールである。従ってコードおよびデータモジュールはそれぞれＩモジュールおよびＤモジュールとも称されることもある。コードモジュールＩにおけるコードは、エグゼキューションエンジンＥＥによって実行されることができる１つまたは複数のアプリケーションに属していてよい。コードモジュールＩに含まれているコードは中間コード、すなわち当該アプリケーションが最初に書かれた高レベル言語におけるコードよりもっとコンパクトであってよいが、先立っての翻訳なしにはエグゼキューションエンジンによって実行されることができないコードである。有利には、中間コードの出所である高レベル言語はＪａｖａプログラミング言語である。中間コードの使用は、種々様々な製造業者によって作られた幅広い多様性のあるセットトップボックスにおけるコードのオペラビリティを保証するために必要である。
【００２９】
ローディングエンジンＬＥとキャッシュＣとの間にコネクション１があり、これを介してローディングエンジンＬＥはカラセルＤＣから受信したＩモジュールおよびＤモジュールをキャッシュＣに記憶することができる。ローディングエンジンＬＥとコンパイリングエンジンＣＥとの間に別のコネクション２があり、これを介してローディングエンジンＬＥはＩモジュールをコンパイルのためにコンパイリングエンジンＣＥに先送りすることができる。コンパイリングエンジンＣＥはこれらを、アルファベットＮで示されている用紙として表されている固有コードのモジュールにコンパイルする。これは図示されているように、コネクション３を介してキャッシュＣに先送りすることができるしまたはコネクション４を介する中間的な実行のためにエグゼキューションエンジンＥＥに直接先送りすることもできる。かくしてキャッシュは３つの形式のモジュール、すなわちＩモジュール、ＤモジュールおよびＮモジュールを含んでいることになる。
【００３０】
エグゼキューションユニットＥＥがアプリケーションを実行するとき、該エンジンはローディングエンジンＬＥにコネクション５を介して要求されるコードモジュールについて知らせる。するとローディングエンジンＬＥは相応のモジュールをキャッシュＣから取ってこようとし（フェッチ）かつ当該モジュールがコンパイルされているならば、それをコネクション６を介してエグゼキューションエンジンＥＥに先送りするか、または当該モジュールが中間コードにおいて存在しているならば、コネクション７を介してインタプリティングエンジンＩＥに先送りする。
【００３１】
明らかに、デバイスの種々のエンジンのそれぞれは他のものとは異なっている回路であってよく、またはこれらエンジンの１つまたは複数は、上述したように、種々異なった時点で種々のエンジンの種々のタスクを実行するマイクロプロセッサによって実現されていてよい。
【００３２】
次に、デバイスの種々のエンジンによって実行されるプロセスを図２および図３を参照して詳細に説明する。
【００３３】
この説明において、本発明の装置は、オペレータの選択に応じてＤＳＭ−ＣＣカラセルによって連続的に伝送される種々のアプリケーションを実行することができるデジタルテレビジョンに対するセットトップボックスである。
【００３４】
図２には、プロセスａおよびプロセスｂと称される２つのプロセスが示されているが、これらはオペレータが実行されるべきアプリケーションを選択する前に、スイッチオン後にすぐ、セットトップボックスにおいてローディングエンジンＬＥおよびコンパイリングエンジンＣＥによって実行されるものである。プロセスａおよびｂは同時に実行される。プロセスａのステップａ１において、ローディングエンジンＬＥはＤＳＭ−ＣＣカラセルＤＣからモジュールを受信する。モジュールはＩモジュールまたはＤモジュールである可能性がある。ステップａ２において、ローディングエンジンＬＥはモジュールにプリフェッチシグナリゼーションが付いてるかどうかを判断する。基本的に、モジュールがプリフェッチされるようにシグナライズされているかどうかという質問はカラセルＤＣのオペレータの選択事項である。一般に、モジュールがカラセルＤＣにおいて伝送されるアプリケーションのいずれかの実行を開始することが必要であるコードまたはデータを含んでいるならば、当該モジュールは少なくとも、プリフェッチされるべきシグナライズされることになり、こうなっていればセットトップボックスはオペレータがアプリケーションを選択するや否や遅延なしに実行を開始できることになる。
【００３５】
モジュールがプリフェッチされるべくシグナライズされていなければ、ローディングエンジンはそれを無視しかつ次のモジュールの到着を待つことになる。
【００３６】
モジュールがプリフェッチされるべくシグナライズされているのであれば、ローディングエンジンＬＥはステップａ３においてそれがキャッシュＣに既に存在しているかどうかをチェックすることになる。イエスであれば、プロセスはステップａ１に戻って次のモジュールを待つことになる。択一的に、モジュールがカラセルＤＣにおける後続の伝送の間に更新される可能性があるならば、キャッシュＣに存在しているモジュールの以前のバージョンが新しいバージョンによってオーバライトされるように設定してもよい。
【００３７】
モジュールがキャッシュＣに存在していないならば、ローディングエンジンＬＥはステップａ４において、当該モジュールを記憶するためにキャッシュＣに使用可能なスペースがあるかどうかをチェックする。使用可能なスペースがなければ、ローディングエンジンＬＥはキャッシュＣに記憶されているモジュールを選択し、それをステップａ５においてオーバライトすることができる。選択の判断基準は、モジュールがどの位の長さの間使用されることなくキャッシュＣに記憶されていたかなどである。択一的に、プリフェッチシグナリゼーションが種々のプライオリティレベルを特定するようにしてもよく、オーバライトされるように選択されるモジュールは現時点で受信されているモジュールよりも低いプリフェッチプライオリティを有しているということになる。その時点で受信されているモジュールよりも低いプリフェッチプライオリティレベルを有しているモジュールがない場合には、その時点で受信されているモジュールが捨てられなければならないことになる。キャッシュに使用可能なスペースがあるならばまたはオーバライトするためのモジュールを選択することによって使用可能にしたのであれば、その時点で受信されたモジュールがステップａ１においてキャッシュに記憶され、かつローディングエンジンＬＥはカラセルＤＣから別のモジュールを受信する準備状態になる。
【００３８】
同時に、コンパイリングエンジンＣＥはコンパイルされていないモジュールを選択するステップｂ１、それをコンパイルするステップｂ２およびコンパイルされたモジュールをキャッシュＣに記憶するステップｂ３を循環的に繰り返す。モジュールがコンパイルされるや否や、オリジナルの中間コードモジュールを含んでいるキャッシュＣにおける記憶スペースが開放されるので、いずれかの新たに受信されたモジュールはそこに記憶することができる。
【００３９】
プロセスａおよびｂは完全に同期化されていなくてもよい、すなわちコンパイリングエンジンＣＥが１つのモジュールに対するステップｂ３を終了すればいつでも、ただちにステップｂ１に戻りかつコンパイルされるべき別のモジュールのためにキャッシュＣをサーチする。キャッシュに複数のコンパイルされていないモジュールがあるとき、コンパイリングエンジンＣＥは常に、最高度のプライオリティを有しているモジュールを選択することになる。
【００４０】
ローディングエンジンＬＥおよびコンパイリングエンジンＣＥが単一のプロセッサまたは別の適当な電子回路において実現されておりかつ処理力を共有しているとき、プロセスａおよびｂのいずれもマイクロプロセッサを完全に占有保持しておく必要はない。この場合、マイクロプロセッサが例えばモジュールが受信されかつこのモジュールを記憶するか否かが決定されなければならないときはいつでも、割り込みによってトリガされるローディングエンジンＬＥとして動作するようにし、かつローディングエンジンがアイドル状態になるとき、すなわちプロセスａがフォアグランドまたは高プライオリティタスクとして実行され、かつプロセスｂが必要があればプロセスａのために割り込まれることになる低プライオリティまたはバックグラウンドタスクとして実行されるときはいつでもコンパイリングエンジンＣＥとして動作するようにすると有利である。
【００４１】
択一的な実施例において、プロセスａおよびｂは同期されていてもよく、すなわちここではステップａ６が実行され、かつステップａ６で記憶されたモジュールを選択するときプロセスｂがトリガされる。
【００４２】
別の択一的な実施例により、プロセスａおよびｂが同期されているならば、ステップａ６は行われないでもよく、かつ受信されたモジュールをキャッシュＣに記憶する代わりに、それはローディングエンジンＬＥから直接コンパイリングエンジンＣＥに供給されかつ編集後にだけキャッシュＣに書き込まれる。
【００４３】
ローディングエンジンＬＥおよびコンパイリングエンジンＣＥが共通の処理回路の処理力を共有しかつプリフェッチシグナリゼーションが伴っている別のモジュールが受信されるとき、モジュールの編集が終了しないかもしれないというリスクがある。しかし、このリスクは、プリフェッチされるべきモジュールがプリフェッチシグナリゼーションなしのモジュール間に適当に分散配置されているように、モジュールがカラセルＤＣにおいて伝送されるというシーケンスを選択することによって低減させることができる。
【００４４】
一般に、プリフェッチされるようシグナライズされているＤＳＭ−ＣＣカラセルＤＣにおけるモジュールは種々のアプリケーションのいずれかをスタートさせるために必要であるコードおよびデータを有しているモジュールということになる。従って、キャッシュの容量が十分に大きいならば、カラセルＤＣにおいて伝送されるすべてのアプリケーションに対するスターティングコード部分はキャッシュにコンパイルされた形において現れることになり、その結果オペレータがセットトップボックスで所定のアプリケーションを選択するとき、このアプリケーションの実行を遅延なしに始めることができる。キャッシュの記憶容量が十分に大きければ、種々のアプリケーションのその他の重要なモジュールもその中に記憶しかつ場合によってはコンパイルしておくことができる。コードセクションは、それが当該アプリケーションのスターティング部分に次いで頻繁および／または連続的に実行される高い確率を有しているならば、このコンテキストにおいて重要であると見なされる。
【００４５】
放送局のＤＳＭ−ＣＣカラセルは種々のキャッシュ記憶容量を有している種々のセットトップボックスのために使用される可能性があるので、プリフェッチシグナリゼーションは有利には、ローディングエンジンＬＥをイネーブル化して最も重要なコード部分だけを選択してこれらがキャッシュに記憶されるようにすることを指示するプライオリティレベルを有しているようにすべきである。
【００４６】
オペレータがセットトップボックスにおいて実行されるべきアプリケーションを選択しかつこの入力を選択するとき、当該アプリケーションに対して要求されるすべてのコードがコンパイルされた形またはコンパイルされていない形においてキャッシュに既に存在している可能性がある。存在しているならば、プロセスａを停止することができかつエグゼキューションエンジンＥＥはそれから図３のプロセスｃを始めることになる。
【００４７】
しかしながら大抵の場合、アプリケーションのすべてのコードがキャッシュにあるわけではないので、プロセスａは図３の変形されたプロセスａ′に置換される。プロセスａ′の目的は消失したコード部分をカラセルＤＣから集めることである。
【００４８】
プロセスａ′において、ローディングエンジンＬＥはステップａ１′においてカラセルＤＣからモジュールを受信する。ステップａ２′において、コンパイルされた形またはコンパイルされていない形においてキャッシュ中に同じモジュールが既に存在していることが認められるならば、プロセスはａ１′に戻って次のモジュールを待つ。モジュールがキャッシュ中になければ、ステップａ３′は受信されたモジュールが実行されるように選択されたアプリケーションの部分であるかどうかをチェックする。そうであるならば、後述するように、プロセスはステップａ６′に分岐する。答えがノーであれば、ローディングエンジンＬＥはステップａ４′においてそれがエグゼキューションエンジンＥＥから、このモジュールがエグゼキューションエンジンによって所望されていることを指示するいずれかの制御情報を受信したかどうかをチェックする。エグゼキューションエンジンは、現在実行されているアプリケーションにおいてそうせよという命令に基づいて同時に実行されない第２のアプリケーションの所定のモジュールに関する制御情報を送信するようにしてもよい。これは、現在のアプリケーションが第２のアプリケーションを呼び出す可能性があるならばである。
【００４９】
ステップａ４′において答えがイエスであるならば、プロセスはステップａ６′に分岐し、ノーならば、ステップａ５′はモジュールがプリフェッチシグナリゼーションされているかどうかをチェックする。イエスならばプロセスはａ６′に切り替わり、ノーならば、ａ１′に戻って、別のモジュールを待つ。
【００５０】
ステップａ６′において、モジュールはプライオリティレベルが割り当てられる。それがプリフェッチシグナライズされたモジュールでありかつプリフェッチシグナリングがプライオリティレベルを特定しているならば、このレベルが割り当てられてよい。このモジュールが現在のアプリケーションに属しているまたはそれがエグゼキューションエンジンＥＥによって所望されているならば、それにはいずれのプリフェッチシグナリングプライオリティレベルより高いレベルが割り当てられる。
【００５１】
それからステップａ７′は、使用可能なキャッシュスペースがあるかどうかをチェックする。ノーであれば、ステップａ８′においてオーバライトされる、キャッシュＣにおけるモジュールが選択されなければならない。この選択はステップａ６′において現在のモジュールに割り当てられたプライオリティレベルおよび既にキャッシュＣにおける複数のモジュールの複数のプライオリティレベルを考慮する。今のアプリケーションに属しているまたはエグゼキューションエンジンによって消耗されるモジュールは常に、別のアプリケーションに属している可能性があるプリフェッチシグナリゼーションされたモジュールより高いプライオリティレベルを有しているので、これらのモジュールは現時点のアプリケーションのモジュールまたは所望されるモジュールが記憶されるようにするために常にオーバライトされる可能性がある。今のモジュールのプライオリティが、オーバライトされてもよいモジュールが他にキャッシュ中にない程低いのであれば、このモジュールは放棄される。キャッシュＣに使用可能なフリースペースがある、またはオーバライトされてもよいモジュールがキャッシュＣ中にあるならば、現在のモジュールがステップａ９′においてキャッシュＣに記憶されることになる。
【００５２】
キャッシュ容量が十分であるならば、アプリケーションのすべてのモジュールはカラセルＤＣの１サイクル後にキャッシュＣに入ることになる。
【００５３】
ローディングエンジンＬＥはプロセスステップａ′を実施する一方、コンパイリングエンジンＣＥは図２のプロセスｂを続けてよいので、所定の時間後に、選択されたアプリケーションの全部のコードはコンパイルされた形において使用可能な状態になる。
【００５４】
コンパイリングエンジンＣＥおよびエグゼキューションエンジンＥＥが共通の処理回路の処理力を共有し、かつ処理力が乏しいという実施例において、プロセスステップｂはアプリケーションの実行が始まるときに停止されるようにしてもよい。
【００５５】
図３のプロセスｃはエグゼキューションユニットＥＥによって選択されたアプリケーションの実行に関する。
【００５６】
第１のステップｃ１において、エグゼキューションユニットＥＥはこのアプリケーションのスタートモジュールを実行する。スタートモジュールはキャッシュＣにコンパイルされた形において存在しているものとする。場合によっては、ステップｃ２においてエグゼキューションユニットＥＥはアプリケーションのコードの別のモジュールへジャンプすることが必要になることがある。この目的のために、エグゼキューションユニットＥＥは要求されるモジュールを識別する制御情報をローディングエンジンＬＥに送信する。
【００５７】
ステップｃ３において、ローディングエンジンＬＥはこの要求されたモジュールがキャッシュＣ中に存在しているかどうかを突き止める。ノーであれば、モジュールがカラセルＤＣから受信されるまで待つ必要がある（ステップｃ４）。モジュールがキャッシュＣ中に存在するならば、ローディングエンジンＬＥは更にモジュールがコンパイルされているのか否かを突き止める（ステップｃ５）。モジュールがコンパイルされているならば、コンパイルされたコードはステップｃ６においてキャッシュＣからエグゼキューションユニットＥＥに直接先送りされる。その他の場合それはインタプリティングエンジンＩＥに解釈のために先送りされ、かつインタプリティングエンジンＩＥはステップｃ７において解釈された命令をエグゼキューションエンジンＥＥに供給する。コンパイルされたコードの実行または解釈は、プロセスが別のモジュールへジャンプするためにステップｃ２に戻るかもしくはアプリケーションが終了するまで続く。
【００５８】
プロセスｃの発展形態によれば、プロセスｃのフローチャートに示されている鎖線で囲まれたブロックｃ′は図４Ａまたは図４Ｂに示されている付加的な方法ステップを有していることができる。すなわち、プロセスｂがプロセスｃと同時に続けられるならば、ステップｃ２においてエグゼキューションエンジンＥＥがジャンプしようとするモジュールがコンパイリングエンジンＣＥによってコンパイルされたものであるという状況が起こり得る。このような状況において、コンフリクトを回避する２つの可能性がある。図４Ａに示されているように、エグゼキューションエンジンＥＥは、コンパイリングエンジンＣＥがコードコンパイリングを終了し（ステップｃ１１）かつそれから上述のステップｃ６に分岐するまで待つのを義務付けるようにしてもよい。択一的に、図４Ｂに示されているように、ステップｃ１０においてコンフリクトが認められると、コンパイルはステップｃ１１′において取り消されるようにしてもよく、その場合モジュールはステップｃ７において解釈される。
【００５９】
以下に説明する実施例において、ローディングエンジンＬＥがＤＳＭ−ＣＣカラセルＤＣから１つのモジュールを受信すると、それが受信されたコードモジュールをコンパイルするのに適しているか否かを決定するためにプリフェッチシグナリングのようなカラセルのシグナリング情報を使用するものと仮定した。勿論、このことは、シグナリングおよびそれによって伝送されるペイロードを何ら変形することなく従来のＤＳＭ−ＣＣカラセルを用いて作動することができるという利点を有している、本発明を実現する簡単で、簡便な手法である。
【００６０】
本発明の発展形態において、ペイロードモジュールは受信されたコードモジュールがコンパイルされるか否かを本発明の装置が決定できるようにする制御情報として使用される。この目的のために、ＤＳＭ−ＣＣカラセルに対する第３の形式のペイロードが設けられている。このモジュールは以下にコード解析テーブルと称され、かつ図５のアルファベットＴを付けているシートによって表されている。
【００６１】
コード解析テーブルＴは次のものを含んでいてよい：
ａ）  カラセルまたは予めコンパイルされるべきこの種のモジュールの部分の中間コードモジュールＩを識別する制御情報。モジュールの部分をコンパイルするようにしても有利である。その理由は、カラセルの１つのＩモジュールは種々のアプリケーションに属しているコードを有していることができ、プリコンパイルのためにそのすべてが使用可能でなくてもいいからである。更に、単一のアプリケーションに関するコードの中には、他のものよりずっと頻繁に実行される可能性がある部分があって当然である。従って、開始からアプリケーションの最適な実行速度を実現するために、解釈のために余り重要でない部分を捨てて、Ｉモジュールの重要な部分のみをプリコンパイルすると有利であり、その場合にはこのようにして節約された、コンパイリングエンジンＣＥの処理時間は別のＩモジュールの重要な部分をコンパイルするために使用することができる。これらの部分は例えば中間コードの単一の機能または方法であってよい。
【００６２】
この制御情報は個別部分の編集に対するプライオリティレベルも指示するようにしてよい。これによりコンパイリングエンジンＣＥはまず、最大のプライオリティレベルを有しているＩモジュールの部分をコンパイルし、それから別のモジュールの同じプライオリティレベルを有している部分をコンパイルし、かつ、コンパイル時間をできるだけ節約して、低いプライオリティレベルを有している部分のコンパイルを始めることができるようになる。
ｂ）  コンパイリング最適化情報。この情報により、最適なシステムパフォーマンスを実現するためにコードの所定の部分をどのようにコンパイルするかをコンパイリングエンジンＣＥに対してヒントを与えるようにすることができる。この情報に特定されている最適化には例えばインライニング、ループアンローリング、レジスタ使用、パイプライニング、スイッチリライティングなどのような機能を含んでいてよい。この情報は所定のアプリケーションの開発者によって用意されるようにするとよい。セットトップボックスがＴモジュールに与えられた編集のヒントに留意する必要はない。つまりセットトップボックスがヒントを無視する場合もセットトップボックスは正しくコンパイルできるだろうし、セットトップボックスがヒントを気に掛ける場合、コンパイリングエンジンのアルゴリズムが全く単純であっても効率の高い固有コードを生成することができるのである。それ故に洗練さのレベルに応じて、セットトップボックスは上に述べたヒントを全く考慮しなくてもよいし、一部だけ考慮してもよいし、すべて考慮してもよい。
【００６３】
本発明により、以下の主な特長が得られる。就中、アプリケーションのコードの少なくとも部分のコンパイルのため、アプリケーションの実行速度は著しく高められる。コードの解釈はコンパイルされたコードの実行より明らかに遅く、かつこのことは主に、解釈の時、処理力は中間コードの部分をエグゼキューションエンジンＥＥの固有コードに翻訳することに費やされるという事実によるものである。ここで翻訳はこの部分が実行される都度行われ、その際コンパイル時にコードは最終的に翻訳される。
【００６４】
この発明は。アプリケーションのボトルネック部分がコンパイルされるとき、極めて効果的である。事実、アプリケーションのいくらかの部分だけがエグゼキューションエンジンに重い負荷をかけているとき、アプリケーションの部分をすべてコンパイルする必要はないかもしれない。複数回繰り返されるコード部分があるとき明らかに、これらをコンパイルすることによって実現される効率の増大は無視することができない。他方において、僅か１回だけ実行されるまたは実行される低い確率を有しているコード部分があるかもしれない。これらに対して、コンパイルしても効率をあげることにはならず、これらをコンパイルすることに価値がない場合もある。第２の利点は、一般に、コンパイルすればコードを一層コンパクトにすることである。従って、コードがコンパイルされるならば、コンパイルなしの場合より多くの数のモジュールを所定サイズのキャッシュに記憶できることになる。
【００６５】
メモリの一層効果的な使用のお陰で、所定のＭＨＰが同時により多くのアプリケーションをホストすることができるようになる。ユーザ側からすれば、これによりボックスが一層パワフルになったようになる。
【００６６】
最後に述べることになったが重要なことに、コード解析テーブルを巧妙に用意することによってアプリケーションの開発者にとって自分が書くコードがどのようにしてエグゼキューションエンジンの固有の命令に翻訳されるのかという点で制御幅が増えることになる。このようにして、高い効率の固有コードをむしろ単純なコンパイルおよび／またはインタプリティングエンジンを使用して生成することができる。
【図面の簡単な説明】
【００６７】
【図１】本発明のプログラマブルデータ処理装置のブロック回路図
【図２】図１の装置によって実行されるプロセスの第１のフローチャート
【図３】図１の装置によって実行される択一的なプロセスの第２のフローチャート
【図４Ａ】図３の詳細の１つの実施例
【図４Ｂ】図３の詳細の別の実施例
【図５】本発明の装置の第２の実施例のブロック回路図
【図１】
2005535011.tif 000003
【図２】
2005535011.tif 000004
【図３】
2005535011.tif 000005
【図４Ａ】
2005535011.tif 000006
【図４Ｂ】
2005535011.tif 000007
【図５】
2005535011.tif 000008
【手続補正書】
【提出日】平成16年10月21日(2004.10.21)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
プログラマブルデータ処理装置であって、該データ処理装置は
第１の形式のコードおよび／またはデータの部分を、該部分が繰り返し伝送される放送網のストリーム（ＤＣ）から受信するためのローディングエンジン（ＬＥ）と、
該ローディングエンジン（ＬＥ）によって受信された部分を記憶するための記憶手段（Ｃ）と、
受信された部分によって実現されるアプリケーションを実行するためのエグゼキューションエンジン（ＥＥ）と、
第１の形式のコードをエグゼキューションエンジン（ＥＥ）の固有コードに翻訳するためのトランスレーションエンジン（ＴＥ）と
を備えている形式のものにおいて、
前記トランスレーションエンジン（ＴＥ）はこのようにしてコンパイルされた部分を記憶手段（Ｃ）に記憶し、前記受信された部分の少なくとも１つのある部分を固有コードに変換し、ここでこれらの部分はストリーム（ＤＣ）から受信された制御情報によって詮索され、かつコードのその他の部分を解釈するように適合されており、かつ
エグゼキューションエンジン（ＥＥ）はコンパイルされたコードおよび解釈されたコードを同じアプリケーション内で処理するように適合されている
ことを特徴とするプログラマブルデータ処理装置。
【請求項２】
ストリーム（ＤＣ）はＤＳＭ−ＣＣカラセルである
請求項１記載のプログラマブルデータ処理装置。
【請求項３】
前記部分はＤＳＭ−ＣＣモジュール（Ｉ）のすべてまたは一部分である
請求項２記載のプログラマブルデータ処理装置。
【請求項４】
前記制御情報はＤＳＭ−ＣＣプリフェッチシグナリングである
請求項３記載のプログラマブルデータ処理装置。
【請求項５】
トランスレーションエンジン（ＴＥ）は、ＤＳＭ−ＣＣカラセル（ＤＣ）のペイロードモジュール（Ｔ）から制御情報を抽出するのに適合されている
請求項３記載のプログラマブルデータ処理装置。
【請求項６】
トランスレーションエンジン（ＴＥ）は、前記ペイロードモジュール（Ｔ）からコンパイルされるべきコード部分に関するコンパイル最適化情報を抽出しかつ前記コード部分をコンパイルするプロセスにおいて前記コンパイル最適化を考慮するのに適合されている
請求項８記載のプログラマブルデータ処理装置。
【請求項７】
トランスレーションエンジン（ＴＥ）は、前記エグゼキューションエンジン（ＥＥ）から受信される制御情報に従って第１の形式のコードの所定の部分をコンパイルするのか解釈するのかを決定するのに適合されている
請求項１から６までのいずれか１項記載のプログラマブルデータ処理装置。
【請求項８】
トランスレーションエンジン（ＴＥ）は、所定の第１の形式のコード部分のコンパイル期間に、該部分を解釈するよう要求する制御情報を無視しかつ該部分のコンパイルを終了するように適合されている
請求項７記載のプログラマブルデータ処理装置。
【請求項９】
トランスレーションエンジン（ＴＥ）は、所定の第１の形式のコード部分を解釈するように要求する制御情報を該部分のコンパイル期間に受信するとき、該コンパイルを放棄しかつ該部分の解釈をスタートするのに適合されている
請求項８記載のプログラマブルデータ処理装置。
【請求項１０】
ａ）  第１の形式のコード（Ｉ）および／またはデータ（Ｄ）の部分を、該部分（Ｉ，Ｄ）が繰り返し伝送される放送網のストリーム（ＤＣ）から受信し（ａ１，ａ１′）、ここで該ストリーム（ＤＣ）中に伝送される部分のセットが１つまたは複数のデータ処理アプリケーションを実現しており、
ｂ）  前記部分の前以て決められているものを記憶手段（Ｃ）に記憶し（ａ６，ａ９′，ｂ３）、
ｃ）  第１の形式のコードを有している前記部分の少なくとも１つをエグゼキューションエンジンの固有コードにコンパイルし、該コンパイルされる部分は前記ストリーム（ＤＣ）から受信された制御情報によって選択され、
ｄ）  エグゼキューションエンジン（ＥＥ）において、前記１つのアプリケーションに属している選択された部分の前記コンパイルされた固有コード（Ｎ）を実行し（ｃ６）かつ該アプリケーションの選択されない部分を解釈する（ｃ６）ことによって前記データ処理アプリケーションの１つを実行する
というステップを有しているデータ処理方法。
【請求項１１】
ステップｃとｄとの間に、ステップｄにおいて実行されるべきアプリケーションを特定するユーザからの命令を受信するステップを有している
請求項１０記載のデータ処理方法。
【請求項１２】
ストリーム（ＤＣ）はＤＳＭ−ＣＣカラセルである
請求項１０または１１記載のデータ処理方法。
【請求項１３】
前記部分はＤＳＭ−ＣＣモジュールのずべてまたは一部分である
請求項１２記載のデータ処理方法。
【請求項１４】
前記制御情報はＤＳＭ−ＣＣプリフェッチ情報である
請求項１３記載のデータ処理方法。
【請求項１５】
制御情報は、ＤＳＭ−ＣＣカラセル（ＤＣ）のペイロードモジュール（Ｔ）である
請求項１３項に記載のデータ処理方法。
【請求項１６】
制御情報は更に、コンパイルされるべきコード部分に関するコンパイル最適化情報を有しておりかつトランスレーションエンジンは該コード部分をコンパイルするとき、該コンパイル最適化情報を考慮する
請求項１５記載のデータ処理方法。
【請求項１７】
トランスレーションエンジン（ＴＥ）は、前記エグゼキューションエンジン（ＥＥ）からの前記制御情報に基づいて、第１の形式のコードの所定の部分をコンパイルするのか解釈するのかを決定する
請求項１０から１３までのいずれか１項記載のデータ処理方法。
【請求項１８】
トランスレーションエンジン（ＴＥ）は所定の部分のコンパイル期間に該部分を解釈するよう要求する制御情報を受信するならば、該制御情報を無視し（ｃ１１）かつ該部分のコンパイルを終了する
請求項１７記載のデータ処理方法。
【請求項１９】
トランスレーションエンジン（ＴＥ）は、所定の部分のコンパイル期間に該部分を解釈するよう要求する制御情報を受信するならば、該コンパイルを放棄し（ｃ１１）かつ該部分の解釈をスタートする
請求項１７記載のデータ処理方法。
【請求項２０】
ステップｃ）の後、コンパイルされた部分の第１の形式のコードに割り当てられているメモリスペースをオーバライトのために解放する
請求項１０から１９までのいずれか１項記載のデータ処理方法。
【国際調査報告】
2005535011.tif 000009
2005535011.tif 000010
2005535011.tif 000011
2005535011.tif 000012