(57)【特許請求の範囲】
【請求項１】
分散コンピュータ・システムを含むマルチメディア送信システムであって、
複数のデータ単位を含むデータセクションであって、各データ単位は、アドレス可能な最小のデータ単位と該最小のデータ単位より長いデータ単位のいずれかであり、それぞれの長いデータ単位は、複数の前記最小のデータ単位を含むデータセクションと、
前記データセクションの前記長いデータ単位が記憶されている相対ロケーションを表すデータを含むスワップセクションと
を含むモジュールを表す信号を生成する中央コンピュータ・システムと、
前記モジュールを表わす信号を受信する遠隔コンピュータ・システムであって、前記モジュールを抽出し、および前記スワップセクションに表された前記相対ロケーションにおいて、前記データセクションの長いデータ単位に含まれる最小のデータ単位をスワップするローダを含む遠隔コンピュータ・システムと、
前記中央コンピュータ・システムから前記遠隔コンピュータ・システムへ前記モジュールを表わす信号を送信するための伝送リンクと
を具えたことを特徴とするマルチメディア送信システム。
【請求項２】
前記ローダは、前記データセクションの長いデータ単位に含まれる最小のデータ単位の順序を反転することにより、該長いデータ単位に含まれる該最小のデータ単位をスワップすること
を特徴とする請求項１に記載のマルチメディア送信システム。
【請求項３】
前記伝送リンクは、
前記中央コンピュータ・システム内の送信器と、
前記遠隔コンピュータ・システム内の受信器と、
前記送信器および前記受信器の間に接続された衛星回線と
を含むことを特徴とする請求項１に記載のマルチメディア送信システム。
【請求項４】
前記中央コンピュータ・システムは、テレビジョンのビデオとオーディオ信号の供給源をさらに含み、
前記送信器は、前記モジュールを表わす信号と前記テレビジョンのビデオとオーディオ信号を組み合わせて、複合オーディオ／ビデオ／対話型（ＡＶＩ）信号を形成するためのマルチプレクサをさらに含み、
前記遠隔コンピュータ・システムは、前記テレビジョンのビデオとオーディオ信号および前記モジュールを、前記受信した複合ＡＶＩ信号から分離するためのデマルチプレクサと、前記テレビジョンのビデオとオーディオ信号を使用する手段とをさらに含むことを特徴とする請求項１に記載のマルチメディア送信システム。
【請求項５】
対話型テレビジョンシステムであって、
複数のデータ単位を含むデータセクションであって、各データ単位は、アドレス可能な最小のデータ単位と該最小のデータ単位より長いデータ単位のいずれかであり、それぞれの長いデータ単位は、複数の前記最小のデータ単位を含むデータセクションと、
前記データセクションの前記長いデータ単位が記憶されている相対ロケーションを表すデータを含むスワップセクションとを含む信号モジュールの供給源と、
前記信号モジュールを抽出し、前記スワップセクションに表された前記相対ロケーションにおいて、前記データセクションの長いデータ単位に含まれる最小のデータ単位をスワップするためのローダプログラムを含む受信器と
を具えたことを特徴とする対話型テレビジョンシステム。
【請求項６】
前記受信器は、伝送リンクに接続されて前記信号モジュールを含む信号を検出するための検出器を含むことを特徴とする請求項５に記載の対話型テレビジョンシステム。
【請求項７】
前記受信した信号モジュールは、多重化したテレビジョンのビデオとオーディオ信号を含み、
前記受信器は、前記信号モジュールから前記テレビジョンのビデオとオーディオ信号を分離するためのデマルチプレクサと、前記受信したテレビジョンのビデオとオーディオ信号を使用する手段をさらに含むこと
を特徴とする請求項５に記載の対話型テレビジョンシステム。
【請求項８】
前記最小のデータ単位がバイト変数であり、
前記長いデータ単位が２バイトから構成されるワード変数と４バイトから構成されるロングワード変数のいずれかであり、
前記データセクションは、連続した整列ロングワードに分割され、前記最小のデータ単位と前記長いデータ単位のいずれかが記憶され、
前記スワップセクションは、複数のエントリを含み、それぞれのエントリは前記データセクションの前記整列ロングワード内のデータ単位のパターンを識別するデータを含む部分を含むこと
を特徴とする請求項５に記載の対話型テレビジョンシステム。
【請求項９】
前記スワップセクションは、さらに前記データ部分の前記整列ロングワードのシーケンスでデータ単位を識別する複数のシーケンス・エントリをさらに含むことを特徴とする請求項８に記載の対話型テレビジョンシステム。
【請求項１０】
前記スワップセクションは、それまでに挿入されたシーケンス・エントリに戻るバック・ポインタ・オフセットを表わすデータを含むエントリを含み、
前記ローダは、前記バック・ポインタ・オフセットに応じて、それぞれのシーケンス・エントリにおいて、前記データセクションの長いデータ単位に含まれる最小のデータ単位をスワップすることを特徴とする請求項９に記載の対話型テレビジョンシステム。
【請求項１１】
整列したロングワード内部のデータ単位のパターンが、
４つの連続したバイト変数、
２つの連続したバイト変数に続くワード変数、
ワード変数に続く２つの連続したバイト変数、
２つの連続したワード変数、
ロングワード変数
のうちの１つを含むことを特徴とする請求項８に記載の対話型テレビジョンシステム。
【請求項１２】
マルチメディア送信システムにおける中央コンピュータ・システムにおいて、
コンピュータプログラムデータの第１の供給源と、
前記第１の供給源に結合されて、前記コンピュータプログラムデータを走査するポストリンカであって、
複数のデータ単位を含むデータセクションであって、各データ単位は、アドレス可能な最小のデータ単位と該最小のデータ単位より長いデータ単位のいずれかであり、それぞれの長いデータ単位は、複数の前記最小のデータ単位を含むデータセクションと、
前記データセクションのデータのフォーマットに応じて、前記データセクションの前記長いデータ単位が記憶されている相対ロケーションを表すデータを有するスワップセクションとを含む前記データ・モジュールを生成するポストリンカと
を具えたことを特徴とする中央コンピュータ・システム。
【請求項１３】
伝送リンクに接続されて前記データ・モジュールを放送するための送信器をさらに具えたことを特徴とする請求項１２に記載の中央コンピュータ・システム。
【請求項１４】
テレビジョンのビデオとオーディオ信号の第２の供給源と、
前記第２の供給源に接続され、前記データ・モジュールと前記テレビジョンのビデオとオーディオ信号とを含む複合信号を生成するためのマルチプレクサと
をさらに具えたことを特徴とする請求項１３に記載の中央コンピュータ・システム。
【請求項１５】
前記第１の供給源は、オブジェクトファイル内のシンボル・テーブルであることを特徴とする請求項１２に記載の中央コンピュータ・システム。
【請求項１６】
中央コンピュータ・システムと、遠隔コンピュータ・システムと、前記中央コンピュータ・システムおよび前記遠隔コンピュータ・システムの間に接続された伝送リンクとを含むマルチメディア送信システムにおいて、前記中央コンピュータ・システムを動作させるための方法であって、
シンボル・テーブルを含むオブジェクトファイルを生成するステップと、
前記オブジェクトファイルを走査して、複数のデータ単位を含むデータセクションであって、各データ単位は、アドレス可能な最小のデータ単位と該最小のデータ単位より長いデータ単位のいずれかであり、それぞれの長いデータ単位は、複数の前記最小のデータ単位を含むデータセクションを含むモジュールを生成するステップと、
前記シンボル・テーブルを走査して、前記モジュールにスワップセクションを生成するステップであって、前記スワップセクションは、前記データセクションの前記長いデータ単位が記憶されている相対ロケーションを表すデータを含むステップと、
前記モジュールを表わす信号を生成するステップと、
前記伝送リンクを経由して、前記遠隔コンピュータ・システムに前記モジュールを表わす信号を送信するステップと
を含むことを特徴とする方法。
【請求項１７】
前記中央コンピュータ・システムは、オーディオ信号供給源とビデオ信号供給源とを含み、前記モジュールを表わす信号を生成するステップの後で、前記オーディオ信号と、前記ビデオ信号と、前記モジュールを表わす信号とを多重化して複合ＡＶＩ信号を形成するステップをさらに含むことを特徴とする請求項１６に記載の方法。
【請求項１８】
複数のデータ単位を含むデータセクションであって、各データ単位は、アドレス可能な最小のデータ単位と該最小のデータ単位より長いデータ単位のいずれかであり、それぞれの長いデータ単位は、複数の前記最小のデータ単位を含むデータセクションと、前記データセクションの前記長いデータ単位が記憶されている相対ロケーションを表すデータを含むスワップセクションとを含むモジュールを表わす信号を生成するための中央コンピュータ・システムと、遠隔コンピュータ・システムと、前記中央コンピュータ・システムおよび前記遠隔コンピュータ・システムの間に接続され、前記中央コンピュータ・システムから前記遠隔コンピュータ・システムへ前記モジュールを表わす信号を送信するための伝送リンクとを含むマルチメディア送信システムにおいて、前記遠隔コンピュータ・システムを動作させるための方法であって、
前記モジュールを表わす信号を受信するステップと、
前記モジュールを表わす信号から前記データセクションを抽出するステップと、
前記モジュールを表わす信号から前記スワップセクションを抽出するステップと、
前記スワップセクションのデータをトラバースするステップと、
前記長いデータ単位の１つを含むと識別された前記データセクションのそれぞれの相対ロケーションにおいて、前記長いデータ単位に含まれる最小のデータ単位をスワップするステップと
を具えたことを特徴とする方法。
【請求項１９】
前記中央コンピュータ・システムは、前記モジュールを表わす信号と、ビデオ信号とオーディオ信号とを組み合わせた複合オーディオ／ビデオ／対話型（ＡＶＩ）信号を生成し、前記受信ステップが、
前記複合ＡＶＩ信号を受信するステップと、
前記オーディオ信号、前記ビデオ信号、および前記モジュールを表わす信号を前記複合ＡＶＩ信号から分離するステップと、
前記オーディオ信号成分と前記ビデオ信号成分を使用する手段に供給するステップと
を含むことを特徴とする請求項１８に記載の方法。
【請求項２０】
前記スワップするステップは、前記長いデータ単位に含まれる最小のデデータ単位の順序を反転するステップを含むことを特徴とする請求項１８に記載の方法。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、リトルエンディアンまたはビッグエンディアンどちらかの方式で動作する中央演算処理装置（ＣＰＵ）へ共通フォーマットを有するデータを供給するための対話型テレビジョン放送システムのようなマルチメディア装置に関する。
【０００２】
なお、本明細書の記述は本件出願の優先権の基礎たる米国特許出願第０８／４９７，４９２号（１９９５年６月３０日出願）の明細書の記載に基づくものであって、当該米国特許出願の番号を参照することによって当該米国特許出願の明細書の記載内容が本明細書の一部分を構成するものとする。
【０００３】
【従来の技術】
今日のほとんど全てのコンピュータ・システムはデータのバイト（８ビット単位）に個別にアドレス可能なロケーションを提供するメモリ・システムを含んでいる。ここで、バイトがアドレス可能な最小単位のデータであることを表わしている。もっと長いデータ単位は、ワード（１６ビット）および／またはロングワード（３２ビット）と呼ばれることがあり、ＣＰＵで隣接したメモリ・ロケーションにバイトのシーケンスとしてアクセス、処理、記憶される。ＣＰＵはこのような長いデータ単位をアクセスしてメモリに記憶するために２つの方法のどちらか一方を使用する。第１の方法は最下位バイトから最上位バイトへとメモリアドレスを増加して長いデータ単位を記憶するものである。長いデータ単位のアクセスと記憶のためにこの方法を使用するＣＰＵは一般にリトルエンディアンと呼ばれる方法で動作する。第２の方法は最上位バイトから最下位バイトへとメモリ・アドレスを増加して長いデータ単位を記憶するものである。この方法を長いデータ単位のアクセスと記憶のために使用するＣＰＵは一般にビックエンディアンと呼ばれる方法で動作する。
【０００４】
【表１】
0003884102.tif 000002
【０００５】
表１はリトルエンディアンとビッグエンディアン構成の両方でメモリ内のロケーション×１０００でのロング・ワード（３２ビット）変数０Ｘ１２３４５６７８の記憶の例を示したものである。表１に示したシステムはバイトレベルでアドレス可能なメモリを含む。つまり、バイトが最小限アドレス可能なデータ単位、または、別の言い方をすれば、各バイトが独立してアドレス可能なロケーションに記憶されている。ロング・ワード変数０×１２３４５６７８はロケーション０×１０００から始まる連続したメモリ・ロケーションに記憶される。リトルエンディアン・システムでは、最下位バイト（即ち０×７８）がもっとも下のメモリ・ロケーション（即ち０×１０００）に記憶され、連続的により上位のバイトが連続したメモリ・ロケーションに記憶される。ビッグエンディアン・システムでは最上位バイト（即ち０×１２）が最下位のメモリ・ロケーション（即ち０×１０００）に記憶され、より下位バイトが連続したメモリ・ロケーションに順次に記憶される。
【０００６】
プログラムの正しい実行のためにはそのプログラムを実行するＣＰＵにとって正しい構成でメモリ内にデータが格納されることが重要である。現行システムにおいては、これは問題ではない。その理由は、全てのＣＰＵがソース・プログラム（たとえばアセンブリ言語または高級言語）をそのＣＰＵ本来の機械語符号に翻訳するための、定数または初期変数データをメモリ内に正しいフォーマットで配置することを含めたプログラム開発ツールを含むからである。ＣＰＵがリトルエンディアン方式ＣＰＵの場合、これらのツールはそのＣＰＵに対して適切なリトルエンディアン・フォーマットでデータを放出する。同様に、ＣＰＵがビッグエンディアン方式ＣＰＵの場合、これらのツールはそのＣＰＵに対して適切なビッグエンディアン・フォーマットでデータを放出する。
【０００７】
【発明が解決しようとする課題】
しかし最近ではマルチメディア（対話型）システム等の分散システムが提案され、コンピュータ・プログラムが中心のロケーションから遠隔のロケーションに送信される。遠隔のロケーションのＣＰＵ、および特に長いデータ単位で遠隔のロケーションのＣＰＵが使用するエンディアン・フォーマットは中心のロケーションで未知である。実際に、両方のエンディアン・フォーマットを使用するＣＰＵが送信されたコンピュータ・プログラムを受信して実行できると予想される。特に、対話型テレビジョン・システムが提案され、ビデオ、オーディオ、およびコンピュータ・プログラム要素が中心のロケーションから衛星リンクを経由して個別の加入者の所在地に放送される。各加入者の所在地は受信したビデオおよびオーディオ情報を表示するためのテレビ受像機と、受信したコンピュータ・プログラム情報を実行するためのＣＰＵとを含む。別の加入者の所在地は別のエンディアン・フォーマットを使用する別のＣＰＵを有することがある。
【０００８】
コンピュータ・プログラムの符号部分は加入者の所在地にあるＣＰＵに実装されたインタプリータが解釈できるような中間符号となるものと予想されている。しかし、それぞれの加入者所在地にあるＣＰＵは共通の作業を実行するためいくつかの予め符号化したルーチンがこれに利用できると予想される。このようなルーチンは加入者の所在地にあるＣＰＵの本来の符号で実装されて実行速度を最大にする。これらの本来の符号ルーチンでアクセスする全てのデータはそのＣＰＵのエンディアン・フォーマットで記憶しなければならない。
【０００９】
１つの解決策は中心のロケーションから２つのバージョンのコンピュータ・プログラムを送信することで有り得る：１つはビッグエンディアンＣＰＵ向け、もう１つはリトルエンディアンＣＰＵ向けとする。しかしこの解決方法では全てのコンピュータ・プログラムのデータを衛星リンク経由で、ビッグエンディアン・フォーマットで１回とリトルエンディアン・フォーマットでもう１回の２度送信しなければならない。これは帯域幅の無駄である。衛星リンク経由で１回だけデータを送信するが、ビッグエンディアンとリトルエンディアン両方のフォーマットを使用するＣＰＵでそのデータを使用できるようにすることが望ましい。
【００１０】
【課題を解決するための手段】
請求項１の発明は、分散コンピュータ・システムを含むマルチメディア送信システムであって、複数のデータ単位を含むデータセクションであって、各データ単位は、アドレス可能な最小のデータ単位と該最小のデータ単位より長いデータ単位のいずれかであり、それぞれの長いデータ単位は、複数の前記最小のデータ単位を含むデータセクション（１４４）と、前記データセクションの前記長いデータ単位が記憶されている相対ロケーションを表すデータを含むスワップセクション（１４６）とを含むモジュールを表す信号を生成する中央コンピュータ・システムと、前記モジュールを表わす信号を受信する遠隔コンピュータ・システムであって、前記モジュールを抽出し、および前記スワップセクションに表された前記相対ロケーションにおいて、前記データセクションの長いデータ単位に含まれる最小のデータ単位をスワップするローダ（４０）を含む遠隔コンピュータ・システムと、前記中央コンピュータ・システムから前記遠隔コンピュータ・システムへ前記モジュールを表わす信号を送信するための伝送リンク（３０）とを具えたことを特徴とする。
【００１１】
請求項２の発明は、前記ローダは、前記データセクションの長いデータ単位に含まれる最小のデータ単位の順序を反転することにより、該長いデータ単位に含まれる該最小のデータ単位をスワップすることを特徴とする。
【００１２】
請求項３の発明は、前記伝送リンクは、前記中央コンピュータ・システム内の送信器と、前記遠隔コンピュータ・システム内の受信器と、前記送信器および前記受信器の間に接続された衛星回線とを含むことを特徴とする。
【００１３】
請求項４の発明は、前記中央コンピュータ・システムは、テレビジョンのビデオとオーディオ信号の供給源をさらに含み、前記送信器は、前記モジュールを表わす信号と前記テレビジョンのビデオとオーディオ信号を組み合わせて、複合オーディオ／ビデオ／対話型（ＡＶＩ）信号を形成するためのマルチプレクサをさらに含み、前記遠隔コンピュータ・システムは、前記テレビジョンのビデオとオーディオ信号および前記モジュールを、前記受信した複合ＡＶＩ信号から分離するためのデマルチプレクサと、前記テレビジョンのビデオとオーディオ信号を使用する手段とをさらに含むことを特徴とする。
【００１４】
請求項５の発明は、対話型テレビジョンシステムであって、複数のデータ単位を含むデータセクションであって、各データ単位は、アドレス可能な最小のデータ単位と該最小のデータ単位より長いデータ単位のいずれかであり、それぞれの長いデータ単位は、複数の前記最小のデータ単位を含むデータセクション（５４）と、前記データセクションの前記長いデータ単位が記憶されている相対ロケーションを表すデータを含むスワップセクション（５６）とを含む信号モジュールの供給源（３０）と、前記信号モジュールを抽出し、前記スワップセクションに表された前記相対ロケーションにおいて、前記データセクションの長いデータ単位に含まれる最小のデータ単位をスワップするためのローダ（４０）プログラムを含む受信器とを具えたことを特徴とする。
【００１５】
請求項６の発明は、前記受信器は、伝送リンクに接続されて前記信号モジュールを含む信号を検出するための検出器を含むことを特徴とする。
【００１６】
請求項７の発明は、前記受信した信号モジュールは、多重化したテレビジョンのビデオとオーディオ信号を含み、前記受信器は、前記信号モジュールから前記テレビジョンのビデオとオーディオ信号を分離するためのデマルチプレクサと、前記受信したテレビジョンのビデオとオーディオ信号を使用する手段をさらに含むことを特徴とする。
【００１７】
請求項８の発明は、前記最小のデータ単位がバイト変数であり、前記長いデータ単位が２バイトから構成されるワード変数と４バイトから構成されるロングワード変数のいずれかであり、前記データセクションは、連続した整列ロングワードに分割され、前記最小のデータ単位と前記長いデータ単位のいずれかが記憶され、前記スワップセクションは、複数のエントリを含み、それぞれのエントリは前記データセクションの前記整列ロングワード内のデータ単位のパターンを識別するデータを含む部分を含むことを特徴とする。
【００１８】
請求項９の発明は、前記スワップセクションは、さらに前記データ部分の前記整列ロングワードのシーケンスでデータ単位を識別する複数のシーケンス・エントリをさらに含むことを特徴とする。
【００１９】
請求項１０の発明は、前記スワップセクションは、それまでに挿入されたシーケンス・エントリに戻るバック・ポインタ・オフセットを表わすデータを含むエントリを含み、前記ローダは、前記バック・ポインタ・オフセットに応じて、それぞれのシーケンス・エントリにおいて、前記データセクションの長いデータ単位に含まれる最小のデータ単位をスワップすることを特徴とする。
【００２０】
請求項１１の発明は、整列したロングワード内部のデータ単位のパターンが、
４つの連続したバイト変数、
２つの連続したバイト変数に続くワード変数、
ワード変数に続く２つの連続したバイト変数、
２つの連続したワード変数、
ロングワード変数
のうちの１つを含むことを特徴とする。
【００２１】
請求項１２の発明は、マルチメディア送信システムにおける中央コンピュータ・システムにおいて、コンピュータ（１２）プログラムデータの第１の供給源と、前記第１の供給源に結合されて、前記コンピュータプログラムデータを走査するポストリンカであって、複数のデータ単位を含むデータセクションであって、各データ単位は、アドレス可能な最小のデータ単位と該最小のデータ単位より長いデータ単位のいずれかであり、それぞれの長いデータ単位は、複数の前記最小のデータ単位を含むデータセクション（１４４）と、前記データセクションのデータのフォーマットに応じて、前記データセクションの前記長いデータ単位が記憶されている相対ロケーションを表すデータを有するスワップセクション（１４６）とを含む前記データ・モジュールを生成するポストリンカ（２０）とを具えたことを特徴とする。
【００２２】
請求項１３の発明は、伝送リンクに接続されて前記データ・モジュールを放送するための送信器をさらに具えたことを特徴とする。
【００２３】
請求項１４の発明は、テレビジョンのビデオとオーディオ信号の第２の供給源と、前記第２の供給源に接続され、前記データ・モジュールと前記テレビジョンのビデオとオーディオ信号とを含む複合信号を生成するためのマルチプレクサとをさらに具えたことを特徴とする。
【００２４】
請求項１５の発明は、前記第１の供給源は、オブジェクトファイル内のシンボル・テーブルであることを特徴とする。
【００２５】
請求項１６の発明は、中央コンピュータ・システムと、遠隔コンピュータ・システムと、前記中央コンピュータ・システムおよび前記遠隔コンピュータ・システムの間に接続された伝送リンクとを含むマルチメディア送信システムにおいて、前記中央コンピュータ・システムを動作させるための方法であって、シンボル・テーブルを含むオブジェクトファイルを生成するステップと、前記オブジェクトファイルを走査して、複数のデータ単位を含むデータセクションであって、各データ単位は、アドレス可能な最小のデータ単位と該最小のデータ単位より長いデータ単位のいずれかであり、それぞれの長いデータ単位は、複数の前記最小のデータ単位を含むデータセクションを含むモジュールを生成するステップと、前記シンボル・テーブルを走査して、前記モジュールにスワップセクションを生成するステップであって、前記スワップセクションは、前記データセクションの前記長いデータ単位が記憶されている相対ロケーションを表すデータを含むステップと、前記モジュールを表わす信号を生成するステップと、前記伝送リンクを経由して、前記遠隔コンピュータ・システムに前記モジュールを表わす信号を送信するステップとを含むことを特徴とする。
【００２６】
請求項１７の発明は、前記中央コンピュータ・システムは、オーディオ信号供給源とビデオ信号供給源とを含み、前記モジュールを表わす信号を生成するステップの後で、前記オーディオ信号と、前記ビデオ信号と、前記モジュールを表わす信号とを多重化して複合ＡＶＩ信号を形成するステップをさらに含むことを特徴とする。
【００２７】
請求項１８の発明は、複数のデータ単位を含むデータセクションであって、各データ単位は、アドレス可能な最小のデータ単位と該最小のデータ単位より長いデータ単位のいずれかであり、それぞれの長いデータ単位は、複数の前記最小のデータ単位を含むデータセクションと、前記データセクションの前記長いデータ単位が記憶されている相対ロケーションを表すデータを含むスワップセクションとを含むモジュールを表わす信号を生成するための中央コンピュータ・システムと、遠隔コンピュータ・システムと、前記中央コンピュータ・システムおよび前記遠隔コンピュータ・システムの間に接続され、前記中央コンピュータ・システムから前記遠隔コンピュータ・システムへ前記モジュールを表わす信号を送信するための伝送リンクとを含むマルチメディア送信システムにおいて、前記遠隔コンピュータ・システムを動作させるための方法であって、前記モジュールを表わす信号を受信するステップと、前記モジュールを表わす信号から前記データセクションを抽出するステップと、前記モジュールを表わす信号から前記スワップセクションを抽出するステップと、前記スワップセクションのデータをトラバースするステップと、前記長いデータ単位の１つを含むと識別された前記データセクションのそれぞれの相対ロケーションにおいて、前記長いデータ単位に含まれる最小のデータ単位をスワップするステップとを具えたことを特徴とする。
【００２８】
請求項１９の発明は、前記中央コンピュータ・システムは、前記モジュールを表わす信号と、ビデオ信号とオーディオ信号とを組み合わせた複合オーディオ／ビデオ／対話型（ＡＶＩ）信号を生成し、前記受信ステップが、前記複合ＡＶＩ信号を受信するステップと、前記オーディオ信号、前記ビデオ信号、および前記モジュールを表わす信号を前記複合ＡＶＩ信号から分離するステップと、前記オーディオ信号成分と前記ビデオ信号成分を使用する手段に供給するステップとを含むことを特徴とする。
【００２９】
請求項２０の発明は、前記スワップするステップは、前記長いデータ単位に含まれる最小のデデータ単位の順序を反転するステップを含むことを特徴とする。
【００３０】
【作用】
本発明の原理によれば、分散コンピュータ・システムは中心のロケーションと複数の遠隔のロケーションを含む。中心のロケーションのコンピュータ・システムは１つまたはそれ以上のモジュールから構成され、それぞれが複数のデータ単位を含むデータ部分を含むコンピュータ・プログラムを生成する。データ単位のそれぞれは最小限アドレス可能なデータ単位またはもっと長いデータ単位のいずれかとする。それぞれの長いデータ単位は複数の最小限アドレス可能なデータ単位を含む。該モジュールはデータ部分（セクション）内部の長いデータ単位のロケーションを識別するデータを含むスワップ部分も含む。遠隔のロケーションのコンピュータ・システムはモジュールを受信し、またローダを含む。ローダはデータ部分の長いデータ単位の最小限アドレス可能なデータ単位をスワップする。伝送リンクは中心のロケーションのコンピュータ・システムから遠隔のロケーションのコンピュータ・システムへモジュールを送信する。
【００３１】
【発明の実施の形態】
以下に、図面を参照して本発明の実施の形態を詳細に説明する。
【００３２】
図１は本発明を使用する分散コンピュータ・システムのブロック図である。図１において、中心のロケーションは遠隔のロケーションへ送信するためのコンピュータ・プログラムの符号とデータを準備するためのコンピュータ・システムを含む。コンピュータ・システムは互いに周知の方法でシステム・バス経由で一緒に結合してある中央演算処理装置（ＣＰＵ）、読み書き両用メモリ（ＲＡＭ）、読み出し専用メモリ（ＲＯＭ）、入出力装置たとえばＣＲＴ端末や印刷装置を含むがいずれも図示していない。コンピュータ・システムはさらに周知の方法で動作し周知の方法でシステム・バスに接続される大容量記憶装置１０も含む。
【００３３】
動作において、コンピュータ・システムをプログラマが使用して中心のロケーションから複数の遠隔のロケーションへ分配しようとするコンピュータ・プログラムを生成する。プログラム開発で普通に行なわれるように、アプリケーション・プログラマは周知の方法でコンピュータ・システムを使用してソース文書（図示していない）を生成し、これは１つまたはそれ以上のソースおよび／または制御ファイル（図示していない）から構成してもよい。ソース文書はコンピュータ・システム上で実行される各種プログラム（たとえばコンパイラ）が周知の方法で処理し、そのそれぞれが中間結果を発生することができ、遠隔のロケーションへすぐに分配することのできるような最終モジュールを生成する。大容量記憶装置１０はプログラム開発工程の中間結果たとえば１つまたはそれ以上のオブジェクトファイル１２等と、プログラム開発工程の１つまたはそれ以上の最終モジュールたとえばモジュール１４を表わすデータを保持する。図１において、ポストリンカ・ルーチン２０は入力としてオブジェクト・モジュール１２を取り出し、以下でさらに詳細に説明するような方法で、出力としてモジュール１４を生成する。
【００３４】
たとえば対話型テレビジョン・システムにおいて、視聴者と放送テレビジョン信号の相互作用に影響するアプリケーション・プログラムが中心のロケーションのプログラム開発ツールを使用するアプリケーション・プログラマによって開発される。プログラム開発ツールの中間結果の１つがオブジェクト・ファイル１２である。オブジェクトファイル１２は実行可能な符号（図示していない）とシンボル・テーブル１２２を表わすデータを含む。シンボル・テーブル１２２はそれぞれの変数名、データ形式、プログラム実行時にその変数が記憶されるメモリ内のアドレスに関係するデータを含む。シンボル・テーブル１２２はさらにシンボル・テーブル１２２内の各データ形式を前述したように、バイト、ワード、ロングワードのような基本データ形式に関連させる情報も含む。
【００３５】
ポストリンカ２０は周知の方法で実行可能符号（図示していない）を表わすオブジェクトファイル１２のデータを処理し、モジュール１４の中間符号部分（セクション）１４２に周知の構造の中間符号を生成する。ポストリンカ２０はさらに周知の方法でオブジェクト・モジュール１２のシンボル・テーブル１２２の情報を分析して、モジュール１４における符号部分１４２に含まれるプログラム符号が遠隔のロケーションで実行された場合にメモリに記憶されることになるシンボル・テーブル１２２のデータ・イメージを表わすデータを含むデータ部分１４４を発生する。
【００３６】
モジュール１４（および図示していないそれ以外の全てのモジュール）は伝送リンク３０を経由して複数の遠隔のロケーションに送信される。伝送リンク３０はたとえば中心のロケーションのコンピュータ・システムのシステムバスに接続してある出力アダプタ、スケジューラ、パケッタイザ、マルチプレクサ、ＲＦ衛星アップリンク、衛星トランスポンダ、ＲＦ衛星ダウンリンク、デマルチプレクサ、遠隔のロケーションのコンピュータ・システムのシステムバスに接続された入力アダプタ（いずれも図示していない）などの周知の要素から構成される。伝送リンクは周知の方法で動作してモジュール１４を中心のロケーションから遠隔のロケーションに必要に応じて送信する。
【００３７】
対話型テレビジョンシステムにおいて、中心のロケーションはモジュール１４で表わされるコンピュータ・プログラム（および図示していないその他全てのモジュール）に付随させるテレビのビデオおよびオーディオ信号の供給源も含む。テレビのビデオとオーディオ信号はモジュール１４と一緒にパケット化、多重化されて複合対話型テレビ信号を形成する。この複合信号が遠隔のロケーションの全部に、たとえば周知の方法で衛星リンク経由により放送される。遠隔のロケーションはこの複合信号を検出・提供するための検出器を含む受信器と、たとえばテレビのビデオとオーディオ信号からモジュールを非多重化するための逆伝送プロセッサ等を含む。テレビのビデオとオーディオ信号は周知の方法で処理され、これらの信号を使用できるシステムに提示される。たとえば、テレビのビデオとオーディオ信号は加入者所在地でテレビ受像機またはＶＴＲへ供給することができる。さらに、遠隔のロケーションのコンピュータがモジュールで表わされたコンピュータ・プログラムを実行することもさらに可能で、プログラム実行の結果として画像ビデオ信号と音声オーディオ信号を生成することができる。これらのコンピュータが生成したビデオとオーディオ信号はテレビのビデオとオーディオ信号にそれぞれ組み合せてテレビとコンピュータを組み合せたマルチメディア表現を生成することができる。さらに、ユーザが実行可能なコンピュータ・プログラムと相互作用して（たとえば遠隔のロケーションの制御ユニットの使用により）表示されたマルチメディア表現と相互作用することも可能である。対話型テレビジョン・システム設計の当業者には上記の全部をどのように実行できるかが理解されよう。
【００３８】
前述のように、それぞれの遠隔のロケーションはＣＰＵ７０、ＲＡＭ５０、ＲＯＭ６０、各種の入出力装置（図示していない）を含み全部が周知の方法でシステムバス（図示していない）経由で相互に接続され、周知の方法で動作するコンピュータ・システムを有している。１つの入力装置（図示していない）は伝送リンク３０の出力をシステムバスへ接続する。ローダ処理ルーチン４０はＣＰＵ上で実行し、この入力装置の動作を制御する。伝送リンク３０から所望のモジュールを受信すると、ローダ４０が符号部分（セクション）５２とデータ部分（セクション）５４をＲＡＭ５０に転送する。
【００３９】
受信したモジュールがＲＡＭ５０に完全に転送されると、ＲＯＭ６０に永久的に記憶されているインタプリータ・ルーチン６２が符号部分５２の中間符号（前述した）にアクセスし、周知の方法でこれを解釈して実行する。符号部分５２のいくつかの命令はデータ部分５４に記憶されているデータを参照する。これらの命令を実行すると、インタプリータ６２はデータ部分５４の所望のデータにアクセスしてプログラムを実行する。
【００４０】
インタプリータはプログラムの実行のためには非常に遅い手段であることが周知である。速度は必ずしも重要ではないが、速度が所望されるような機能が存在する。このような機能を実行するため、遠隔のロケーションのコンピュータ・システムは遠隔のロケーションのＣＰＵの本来の符号で符号化したルーチンのライブラリ６４を含む。
【００４１】
しかし、前述したように、別の遠隔のロケーションにあるそれぞれのＣＰＵは別のエンディアン・フォーマットで動作させることもできる。つまり、いくつかの遠隔のＣＰＵはビッグエンディアン・フォーマットで動作するが、他のＣＰＵはリトルエンディアン・フォーマットで動作することがある。データ部分が生成されエンディアン・フォーマットの１つに、たとえばビッグエンディアン・フォーマットに変換された場合、ビッグエンディアン・フォーマットで動作する遠隔のロケーションのＣＰＵのための本来のライブラリ６４は利用できるもっとも効率的な多バイト読み書きの本来の命令を直接使用してデータ部分５４に記憶されている長いデータ単位にアクセスすることがある。しかしリトルエンディアン・フォーマットで動作する遠隔のロケーションのＣＰＵの本来のライブラリ６４は１度に１バイトづつ長いデータ単位をアクセスしなければならず、またデータ自体を処理する前にビッグエンディアン・フォーマットからリトルエンディアンフォーマットへバイトをスワップすることによって再構成しなければならない。これによりできる限り高速に実行しなければならないこれらのルーチンに実質的なオーバヘッドが追加される。
【００４２】
本発明の原理によれば、中心のロケーションで生成されたモジュール１４はさらにスワップ部分１４６を含む。スワップ部分（セクション）１４６はデータ部分（セクション）１４４の長いデータ単位がどこに記憶されているかを表わすデータを含む。ポストリンカ２０はオブジェクトファイル１２のシンボル・テーブル１２２を分析するのと同時に、データ部分のどこにこれらの長いデータ単位が記憶されているかを決定できる。ポストリンカ２０は、長いデータ単位を識別した時点で、テーブルにエントリを作り長いデータ単位があるデータ部分１４４内の相対ロケーションを表わす。オブジェクトファイル１２を完全に分析した時点で、このテーブルを表わすデータがモジュール１４のスワップ部分１４６に記憶され、伝送リンク３０を介して中間符号部分１４２およびデータ部分１４４と一緒に遠隔のロケーション送信される。
【００４３】
図示した実施例において、データはデータ部分１４４にビッグエンディアン・フォーマット専用に記憶されている。スワップ部分１４６はデータ部分１４４内のどこに長いデータ単位が記憶されているかを表わすデータを含む。遠隔のロケーションにおいて、ローダ４０は受信したモジュールの符号部分５２、データ部分５４、スワップ部分５６をＲＡＭ５０に記憶する。遠隔のロケーションのＣＰＵがビッグエンディアン・フォーマットで動作する場合には、スワップ部分５６を含むＲＡＭ５０のロケーションは不要であり、他の目的に使用するために解放できる。ローダ４０はこれの機能の完了を報告しインタプリータ６２と本来のライブラリ６４がそれぞれ遠隔のロケーションのＣＰＵで使用するビッグエンディアン・フォーマットのデータにアクセスする。
【００４４】
他方、遠隔のロケーションのＣＰＵがリトルエンディアン・フォーマットで動作するとすると、ローダ４０は処理を完了する前にスワップ部分５６のデータを分析する。スワップ部分５６が示すように、より長いデータ単位を含むデータ部分５４内の全てのロケーションにおいて、ローダ４０はデータ単位のバイトをスワップし、そのデータ単位をビッグエンディアン・フォーマットからリトルエンディアン・フォーマットへ変換する。より長いデータ単位全部がリトルエンディアン・フォーマットに変換された後は、スワップ部分５６を含むＲＡＭ５０のロケーションはもはや不要になるので、他の目的に使用するように解放することができる。ローダはこれの機能の完了を報告し、インタプリータ６２と本来のライブラリ６４の実行を開始させる。この遠隔のロケーションのデータは現在全部がリトルエンディアン・フォーマットになっているので、本来のライブラリ６４のルーチンはもっとも効率的な多バイト読み書きの本来の利用可能な命令を使用して動作できる。
【００４５】
本発明による対話型テレビジョン・システムでは遠隔のロケーションでビッグエンディアンとリトルエンディアン両方のフォーマットで動作するＣＰＵが本来のモードで送信データにアクセスすることができ、中心のロケーションから１回はビッグエンディアン・フォーマットでまたもう１回リトルエンディアン・フォーマットでと２回にわたりデータを送信する必要がない。必要なことは、中心のロケーションのポストリンカにより小さいスワップ部分を各モジュールに生成することと、送信データのフォーマットとは異なるエンディアン・フォーマットで動作するＣＰＵを含む遠隔のロケーションのローダルーチンに読み込み終了前に長いデータ単位をスワップするステップを追加することである。
【００４６】
図２はデータ部分１４４の配置と別の対応するスワップデータ部分１４６ａおよび１４６ｂを表わすメモリ配置図である。図２ではデータ部分１４４が図面の中央にコラムとして図示してある。各変数はこのコラム内部の四角形で表わされ、その四角形の大きさが変数の大きさに対応する。さらに詳しくは、いちばん上の２つの変数はそれぞれがバイト変数である。第３の変数はワード変数で連続２バイトから構成されるように図示してある。第４の変数はバイト変数である。第５の変数はロングワード変数で、連続４バイトから構成されるように図示してある。第６の変数はバイト変数である。第７の変数はワード変数で、連続２バイトから構成されるように図示してある。当然ながらデータ部分１４４には他の変数も存在し、これはバイト変数、ワード変数、またはロングワード変数とすることもできる。
【００４７】
図の左側のコラムはスワップデータ部分１４６ａの第１の実施を表わしている。この実施において、データ部分１４４のそれぞれの変数に対するエントリがあり、データ部分に出現する順序でそれぞれのエントリが対応する変数の大きさを表わしている。スワップ部分１４６ａでは、データ部分１４４に図示した７変数に対応して７つのエントリがある。各エントリの内容は対応する変数の種類を表わす文字で図示してある。詳しくは、第１の２エントリは表記「Ｂ」を含み、これは第１の２エントリがバイト変数であることを表わす。次のエントリは表記「Ｗ」を含み、これは第３の変数がワード変数であることを表わす。次のエントリは表記「Ｂ」を含みこれは第４の変数がバイト変数であることを表わす。次のエントリは表記「Ｌ」を含み、これは第５の変数がロングワード変数であることを表わす。以下同様に続く。理解されるように、この実施において、変数について３種類の可能な長さ（Ｂ、Ｗ、またはＬ）が存在し、長さは２ビットで表わされ、このような表示４種類を単一のバイト内に組み込むことができる。
【００４８】
あるいはまた、データ部分の長いデータ単位のロケーションだけをスワップ部分に含めることができる。これが図２の右手に図示してあるスワップ部分１４６ｂに図示してある。データ部分１４４の図示した部分において、１つのエンディアン・フォーマットから別のフォーマットにスワップする必要があるデータ部分１４４の長いデータ単位が３つ存在する。１４６ｂに図示したスワップ部分の各エントリは長いデータ単位のデータ部分１４４内でのロケーションを示すオフセット値と、その単位の種類を含む。詳しくは、スワップ部分１４６ｂの第１のエントリは第３の変数のロケーションへのポインタと、これがワード変数（２バイト）であることの表示を含む。次のエントリはデータ部分１４４内の第５の変数を示し、この変数がロングワード変数（４バイト）であることの表示を含む。次のエントリは第７の変数を示し、その変数がワード変数（２バイト）であることの表示を含む。この実施によるスワップ部分のそれぞれのエントリはデータ部分内部のロケーションへのオフセットポインタとそのロケーションの種類の表示を格納するだけ充分に大きくする必要がある。しかし、全てのデータ単位についてではなく長いデータ単位についてのエントリしかない。これ以外に変数の各種類ごとに別のリストを用いる、即ちワード変数用に１つのリスト、ロングワード変数用に別のリストを用いることができる。このようなリストそれぞれの各エントリはデータ部分１４４の変数のロケーションへのオフセットポインタだけを含めば良い。
【００４９】
このようないずれかの実施において、（図１の）ポストリンカ２０はシンボル・テーブルを分析し、前述のように長いデータ単位のデータ部分１４４での場所を識別するためのスワップ部分１４６を生成する。ローダ４０は第１にスワップ部分５６を読み込み、データ部分５４の長いデータ単位のエンディアン・フォーマットを変換する必要があればスワップ部分５６のデータをトラバースないし走査し、長いデータ単位のデータ部分５４でのロケーションを識別し、これらのロケーションのバイトをスワップする。１４６ａに図示したようなスワップ部分では、データ部分１４４全体を走査し、場所が長いデータ単位（ワードまたはロングワード変数）を含むとスワップ部分１４６ａのエントリが示している場合にはこれらのバイトをスワップする。１４６ｂに図示したスワップ部分では、スワップ部分の各エントリがデータ部分１４４で指示されたロケーションでバイトをスワップすることにより処理される。
【００５０】
近代的なプログラミング言語では、変数は前述したような基本バイト、ワード、ロングワード変数から形成され、ストラクチャ、アレイ、ストラクチャのアレイ、および／またはアレイを含むストラクチャに配置された複雑な変数であることが多い。このようなデータの構成は同じ種類のデータの反復、またはデータの種類のパターンの反復を発生する。スワップ部分の大きさは特別な符号化により反復する変数の種類または変数のパターンを効率的に表現できるようにすることで減少可能である。
【００５１】
図３は本発明によるスワップ部分１４６のそれぞれの部分の符号化を表わすメモリ配置図である。図３に図示したスワップ部分１４６の構成は（図２の）スワップ部分１４６ａに対応し、データ部分の各バイトについてスワップ部分にエントリが存在する。同じ種類のデータの反復とデータの種類のパターンの反復を利用することで図３に図示したようにスワップ部分１４６でさらなる圧縮が達成される。
【００５２】
図３において、遠隔のロケーションは３種類の基本的な変数の種類、バイト、ワード、ロングワードを有し、長いデータ単位（ワードまたはロングワード）が整列する必要のあるＣＰＵを含む。これは、バイト変数ならメモリ内のどこに記憶することもできるが、ワード変数は偶数アドレスを有するバイト・ロケーションにだけ記憶でき、ロングワード変数は４で割ることのできるアドレスを有するバイト・ロケーションにだけ記憶できる。このような構成は周知であり、コンピュータ・システム設計の当業者には理解されよう。
【００５３】
ポインタと呼ばれる特別なロングワードは図３において別に「Ｐ」として表わされている。ポインタは周知のプログラミング構造で、読み込み処理中に特別に処理される。ポインタはロングワードと同じ大きさ、即ち４バイトで、４で割ることのできるアドレスを有するバイト・ロケーションだけに記憶する必要があり、またエンディアン・フォーマットを変更する必要があればバイトをスワップしなければならない。さらに、これらの値はデータ部分が記憶される遠隔のロケーションのＲＡＭの絶対ロケーションを反映するように、再配置として周知の処理で変更する必要がある。再配置処理は周知でありこれ以上詳細に本明細書では説明しない。
【００５４】
データ部分におけるデータの配置は後述するような方法で符号化された一連のバイトとしてスワップ部分１４６に表わされている。図３に図示したスワップ部分１４６の符号化の方式では、データ部分（図示していない）を整列したロングワードに分割されたものとまず考える。図３は左手上方に表２０２を含み、唯一許容されるバイト変数（「Ｂ」で表わされる）、整列したワード変数（「Ｗ」で表わされる）、整列したロングワード変数（ロングワードでは「Ｌ」、ポインタは「Ｐ」で表わされる）の配置を示している。表２０２の左側のアドレスはデータ部分のロングワード整列（４で除算可能な）アドレスを表わし、データ部分の実際のアドレスを表わしているものではない。
【００５５】
理解されるように、整列ロングワード内には６種類の許容可能な変数配置が存在する。いちばん上のエントリ、右側で「０」番の番号は整列ロングワードが４つの独立したバイト変数（Ｂ）を含むことを示している。第２の、「１」番のエントリは整列ロングワードが２バイト変数（Ｂ）に続けてワード変数（Ｗ）を含むことを表わす。第３の「２」番のエントリは整列ロングワードがワード変数（Ｗ）に続けて２つのバイト変数（Ｂ）を含むことを表わす。第４の「３」番のエントリは整列ロングワードが２つのワード変数（Ｗ）を含むことを表わす。第５の「４」番のエントリは、整列ロングワードがロングワード変数（Ｌ）を含むことを表わす。第６の「５」番のエントリは整列ロングワードがポインタ（Ｐ）を含むことを表わす。他の配置は許容されない。
【００５６】
図３のａ）を参照するに、データ部分の整列ロングワードをスワップ部分１４６のエントリで表わすことができる。表２０２のエントリの右側の数値は、整列ロングワード等の内部の変数パターンを表わしており、周知の方法で３ビットに２進符号化される。これら３ビットはその整列ロングワードに対応するスワップ部分１４６のエントリ２０４の最上位３ビット（ビット７：６：５）に挿入される。スワップ部分の各エントリ２０４がメモリ内の連続した整列ロングワードの個数を表わすことができ、それぞれが同じ変数のパターンを含むことにより、スワップ部分で圧縮の目安が達成される。残りのビット（ビット４：３：２：１：０）２０８は最上位３ビットで表わされるパターンの反復回数を表わす２進符号化した数値Ｎを含む。数値Ｎは０から３１までの値をとることができる。この数値Ｎはパターンの反復回数−１を表わす。数値Ｎが「０」は反復値１、即ちデータ部分におけるパターン２０６の１回だけの発生を表わす。数値Ｎが「１」は反復値２を表わし、数値Ｎが「３１」では反復値３２を表わす。つまり、スワップ部分１４６の１バイトのエントリ２０４で表わすことができる２進符号化された値２０６で表わされるパターンの反復回数は１から３２までをとることができる。
【００５７】
前述のように、プログラム内の変数は基本的なデータ形式の複雑な組み合わせで、ストラクチャ、アレイ、ストラクチャのアレイ、および／またはアレイを含むストラクチャを含むことがある。これらの複雑な組み合わせは特定の方法で構成した基本的なデータ形式のシーケンスから構成される。表２０２からパターンの符号化に使用されない２進値、即ち「６」「７」を、それぞれ、たとえばこのようなストラクチャとアレイの反復発生から得られる等の基本データ形式のシーケンスの符号化と、すでに定義したパターンの反復に使用する。図３のｂ）は表２０２からパターンの反復シーケンスを表わすスワップ部分１４６の一部の符号化を表わす。このようなシーケンスが識別された場合（たとえば図１のポストリンカ２０によりシンボル・テーブル１２２から）、２進符号化値「６」がスワップ部分１４６の第１バイト２１０の上位３ビット（７：６：５）に配置されてスワップ部分１４６でこのエントリがシーケンスを表わし、図３のａ）のような基本的データ形式のパターンではないことを示す。図３のａ）と同様に、第１バイト２１０の最下位５ビットは特定シーケンスの反復回数を表わす２進符号化した値Ｎである。この場合、２進符号化した数値Ｎはシーケンスの反復回数−２を表わす。つまり、識別したシーケンスの反復回数は２から３３までとなる。
【００５８】
スワップ部分の次のバイト２１２はスワップ部分１４６のシーケンスの長さ−１を含み、後述するような方法で決定される。シーケンス長さバイト２１２の次は一連のバイト２１４で、図３のａ）に関連して前述したように符号化される。バイト列２１４のバイト数が決定されバイト列においてバイト数−１に等しい数Ｎが２進符号化され前述したようにシーケンス長さバイト２１２に挿入される。
【００５９】
複雑なストラクチャが定義される、たとえば（図１の）シンボル・テーブル１２２のような場合、そのストラクチャを表わすのに必要な基本的データ形式の構成はポストリンカ２０によって決定できる。このようなデータ構造の発生がシンボル・テーブル１２２で定義されると、図３のｂ）に図示したようなエントリがスワップ部分１４６に作成される。このようなストラクチャのアレイはそのデータ構造の反復回数で表わすことができ、前述のように反復回数を表わす２進符号化した数値Ｎ−２で指定される。
【００６０】
そのデータ形式の別の例が（図１の）シンボル・テーブル１２２で定義される場合には、図３のｂ）のようにすでに挿入したシーケンスのエントリを挿入しなおすのではなく、別のエントリ、バック・ポインタと呼ばれるエントリをスワップ部分１４６に挿入して以前のシーケンス・エントリへ戻り参照する。図３のｃ）はバック・ポインタ・エントリの符号化を示す。バック・ポインタ・エントリでは、２進値「７」が第１バイト２１６の最上位３ビットに符号化される。図３のａ）および図３のｂ）と同様に、第１バイト２１６の最下位５ビットはバック・ポインタ・エントリで表わされるすでに定義したシーケンスの反復回数を表わす２進符号化した数値Ｎを含む。図３のｃ）において、数値Ｎは反復回数−２で、反復回数２から３３を表わしている。
【００６１】
次のバイト２１８は図３のｂ）で説明したように、それまでに挿入したシーケンス・エントリに戻るスワップ部分１４６のオフセットを表わす。オフセットは現在のバック・ポインタ・エントリとそれまでに定義したシーケンス・エントリとの間のバイト数を表わす。このオフセットは、図３のｃ）のバック・ポインタ・オフセットバイト２１８から図３のｂ）のシーケンス長バイト２１２までの矢印で示してあるように、すでに定義したシーケンス・エントリでのシーケンス長バイト２１２を指している。図３に図示した符号化方式を使用して、基本的データの種類、バイト、ワード、ロングワードのデータ部分内でのロケーションを、スワップ部分１４６でのエントリをトラバースすることによってローダ４０によって（図１）が簡単に決定できる。長いデータ単位、ワード、ロングワード、およびポインタは、これらのデータ単位のエンディアン・フォーマットを変更する必要があれば発見してバイトスワップすることができる。
【００６２】
図４はデータ部分１４４と図３にしたがって符号化した対応するスワップ部分１４６の例を示すメモリ配置図である。図４において、データ部分１４４の一部が図面の右側に図示してあり、対応するスワップ部分１４６の一部が図面の左側に図示してある。スワップ・テーブルのエントリを形成するバイトは水平方向の四角で図示してある。バイトのいくつかは四角形内部の縦線で表わされるように部分に論理的分割される。各部分を含むビットはスワップ部分１４６の上に図示してある。データ部分１４４のそれぞれの水平方向の四角形は４バイトを含むメモリ内の整列ロングワードに対応する。これらのバイトＢ１、Ｂ２、Ｂ３、Ｂ４はデータ部分１４４の上に図示してある。第１の６つの整列ロングワードそれぞれの左側のアドレスはロングワードが整列されていることを表わすだけで、データ部分での絶対ロケーションを表わしているものではない。それぞれ図示した整列ロングワード内の基本的変数の形式の構成は、バイト変数が「Ｂ」、隣接する２バイトからなるワード変数が「Ｗ」、隣接する４バイトからなるロングワード変数が「Ｌ」、また隣接する４バイトからなるポインタが「Ｐ」で表わしてある。
【００６３】
図４のデータ部分１４４の第１の６つの整列ロングワードは図３のａ）の表２０２に図示した基本的データ形式の同じパターンの変数を含む。第１の６つのロングワードの右側の「０」から「５」までの表記は表２０２に図示してあるように対応するロングワードのパターンの個数である。
【００６４】
スワップ部分１４６における第１のエントリはデータ部分１４４の第１の整列ロングワードに対応する。この整列ロングワードはアドレス０ｘ００００にあり、４バイトの変数「Ｂ」を含む。２進符号化したこのパターンの表現は「０」で、これが最上位３ビット７：６：５に符号化される。このような連続パターンは１回だけなので、反復回数は１である。最下位５ビット４：３：２：１：０に符号化された数値Ｎは反復回数（１）−１、または０である。スワップ部分１４６の次の５つのエントリはデータ部分１４４の次の５つの整列ロングワードに対応し同様に符号化されている。
【００６５】
スワップ部分１４６において次に図示したエントリは３回反復するデータ部分１４４のパターンに対応する。この場合、反復パターンはワード変数Ｗであり、それに続いて２つの順次のバイト変数Ｂがある。このパターンは２進符号化した値「２」で、図３の表２０２に図示したように表わされている。２進符号化した値「２」は最上位３ビット７：６：５に記憶される。この場合の反復回数は３である。最下位５ビット４：３：２：１：０に符号化される数値Ｎは反復回数（３）−１または２である。
【００６６】
スワップ部分１４６において次に図示したエントリは連続５バイトで構成され、パターンの反復シーケンスを表わしている。このシーケンスは同じパターンを含む２つの連続した整列ロングワードから構成される。ワード変数Ｗに続けて２つの連続バイト変数Ｂである。これに連続２つのワード変数Ｗのパターンを含む整列ロングワードが続き、これにロングワード変数Ｌのパターンを含む整列ロングワードが続く。このシーケンスが２回反復されている。スワップ部分１４６の対応するエントリにおいて、第１バイトは図３のｂ）に図示したように最上位３ビットで２進値「６」を含む。下位５ビットは図３のｂ）に図示したように反復回数−２に等しい数値Ｎで符号化される。この場合、数値Ｎは反復回数（２）−２または０である。次のバイトはシーケンスの長さ−１を表わすエントリの２進符号化した個数を含む。この場合シーケンスを記述する後続の３エントリがある（後述する）ので、シーケンス長バイトに記憶される値はエントリ数（３）−１または２である。
【００６７】
次の３バイトはシーケンス自体を記述し、図３のａ）に図示したように符号化してある。データ部分１４４の対応する部分に図示したシーケンスは２つの連続した整列ロングワードで始まり、各ロングワードはワード変数Ｗのパターンを含み、それに続いて２つのバイト変数Ｂのパターンがある。これは２という番号のついたパターンの２回の反復である。従って、スワップ部分１４６でシーケンスを記述する第１バイトは最上位３ビット７：６：５において２を有し、最下位５ビット４：３：２：１：０は１（反復回数（２）−１）を有する。データ部分１４４のシーケンス内の次の整列ロングワードは２つの連続したワード変数Ｗのパターンを含む。これは３で表わしたパターンの１回の反復である。このパターンをスワップ部分１４６で記述するバイトは最上位３ビット７：６：５に３を有し、下位５ビット４：３：２：１：０に０を有する。データ部分１４４のシーケンスにおいて最後の整列ロングワードは単一のロングワード変数Ｌのパターンを含む。これは４番目のパターンの１回の反復である。スワップ部分１４６でこのパターンを記述するバイトは最上位３ビット７：６：５が４、最下位５ビット４：３：２：１：０が０を有する。
【００６８】
スワップ部分１４６で次に図示したエントリは２バイトから構成され、データ部分１４４で説明したシーケンスの３回の反復を表わす。スワップ部分１４６のこのエントリは最上位３ビット７：６：５に「７」を含むバイトである。下位５ビット４：３：２：１：０は反復回数（３）−２または１を含む。次のバイトはスワップ部分１４６のすでに図示したエントリにおけるシーケンス長バイト（２を含む）への矢印で表わしてあるように、本来シーケンスが記述されていたスワップ部分１４６のエントリのシーケンス長バイトへのバック・ポインタを表わすオフセットを含む。
【００６９】
このように、データ部分１４４の全てのバイトに含まれる変数の種類がスワップ部分１４６の対応するエントリで表わされる。スワップ部分１４６は、前述したように、シンボル・テーブル１２２を分析して、シンボル・テーブル１２２において参照される変数を構成する基本的変数のデータ形式を表わすスワップ部分１４６でのエントリを生成することにより、（図１の）ポストリンカ２０によって生成してもよい。受信したスワップ部分５６をローダ４０によって分析し、そして受信したデータ部分５４における適当な長いデータ単位を適切に位置させ、およびそれらのバイトをスワップすることによって、それらを適当なエンディアン・フォーマットに変換する。
【００７０】
【発明の効果】
本発明によれば、モジュールはデータ部分とスワップ部分とを含み、遠隔ロケーションのコンピュータ・システムのローダによって、スワップ部分のデータで識別されたロケーションに、データ部分における長いデータ単位の最小限アドレス可能なデータ単位をスワップすることによって、中心のコンピュータ・システムから遠隔のコンピュータ・システムへモジュールを表わす信号を送信するようにしたので、たとえば、衛星リンク経由で１回だけデータを送信するが、ビッグエンディアンとリトルエンディアン両方のフォーマットを使用するＣＰＵでそのデータを共通フォーマットとして使用することができる。
【図面の簡単な説明】
【図１】本発明を用いた分散コンピュータ・システムのブロック図である。
【図２】データ部分とこれに代わる対応スワップデータ部分の配置を例示するメモリ配置図である。
【図３】本発明の実施例によるスワップ部分の符号化を例示するメモリ配置図である。
【図４】図３にしたがって符号化したデータ部分および対応するスワップ部分の例を示すメモリ配置図である。
【符号の説明】
１０  大容量記憶装置
１２  オブジェクト・ファイル
１４  モジュール
２０  ポストリンカ
３０  伝送リンク
４０  ローダ
５０  ＲＡＭ
５２  符号部分
５４  データ部分
５６  スワップ部分
６０  ＲＯＭ
６２  インタプリータ
６４  ライブラリ
７０  ＣＰＵ
１２２  シンボル・テーブル
１４２  符号部分
１４４  データ部分
１４６  スワップ部分
【図１】
0003884102.tif 000003
【図２】
0003884102.tif 000004
【図３】
0003884102.tif 000005
【図４】
0003884102.tif 000006