JP3884102B2 - 中央演算処理装置へフォーマット済みデータを供給するための装置 - Google Patents

中央演算処理装置へフォーマット済みデータを供給するための装置 Download PDF

Info

Publication number
JP3884102B2
JP3884102B2 JP17140996A JP17140996A JP3884102B2 JP 3884102 B2 JP3884102 B2 JP 3884102B2 JP 17140996 A JP17140996 A JP 17140996A JP 17140996 A JP17140996 A JP 17140996A JP 3884102 B2 JP3884102 B2 JP 3884102B2
Authority
JP
Japan
Prior art keywords
data
computer system
module
signal
section
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
Application number
JP17140996A
Other languages
English (en)
Other versions
JPH0934817A (ja
Inventor
マシアス ウィラー ピエール
Original Assignee
オープン ティーヴィー インコーポレイテッド
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by オープン ティーヴィー インコーポレイテッド filed Critical オープン ティーヴィー インコーポレイテッド
Publication of JPH0934817A publication Critical patent/JPH0934817A/ja
Application granted granted Critical
Publication of JP3884102B2 publication Critical patent/JP3884102B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/43Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
    • H04N21/443OS processes, e.g. booting an STB, implementing a Java virtual machine in an STB or power management in an STB
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/40Bus structure
    • G06F13/4004Coupling between buses
    • G06F13/4009Coupling between buses with data restructuring
    • G06F13/4013Coupling between buses with data restructuring with data re-ordering, e.g. Endian conversion
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/60Network streaming of media packets
    • H04L65/61Network streaming of media packets for supporting one-way streaming services, e.g. Internet radio
    • H04L65/611Network streaming of media packets for supporting one-way streaming services, e.g. Internet radio for multicast or broadcast
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/40Network security protocols
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N7/00Television systems
    • H04N7/16Analogue secrecy systems; Analogue subscription systems
    • H04N7/173Analogue secrecy systems; Analogue subscription systems with two-way working, e.g. subscriber sending a programme selection signal
    • H04N7/17309Transmission or handling of upstream communications
    • H04N7/17318Direct or substantially direct transmission and handling of requests

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Theoretical Computer Science (AREA)
  • Signal Processing (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Software Systems (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Computer And Data Communications (AREA)
  • Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Multi Processors (AREA)

Description

【0001】
【発明の属する技術分野】
本発明は、リトルエンディアンまたはビッグエンディアンどちらかの方式で動作する中央演算処理装置(CPU)へ共通フォーマットを有するデータを供給するための対話型テレビジョン放送システムのようなマルチメディア装置に関する。
【0002】
なお、本明細書の記述は本件出願の優先権の基礎たる米国特許出願第08/497,492号(1995年6月30日出願)の明細書の記載に基づくものであって、当該米国特許出願の番号を参照することによって当該米国特許出願の明細書の記載内容が本明細書の一部分を構成するものとする。
【0003】
【従来の技術】
今日のほとんど全てのコンピュータ・システムはデータのバイト(8ビット単位)に個別にアドレス可能なロケーションを提供するメモリ・システムを含んでいる。ここで、バイトがアドレス可能な最小単位のデータであることを表わしている。もっと長いデータ単位は、ワード(16ビット)および/またはロングワード(32ビット)と呼ばれることがあり、CPUで隣接したメモリ・ロケーションにバイトのシーケンスとしてアクセス、処理、記憶される。CPUはこのような長いデータ単位をアクセスしてメモリに記憶するために2つの方法のどちらか一方を使用する。第1の方法は最下位バイトから最上位バイトへとメモリアドレスを増加して長いデータ単位を記憶するものである。長いデータ単位のアクセスと記憶のためにこの方法を使用するCPUは一般にリトルエンディアンと呼ばれる方法で動作する。第2の方法は最上位バイトから最下位バイトへとメモリ・アドレスを増加して長いデータ単位を記憶するものである。この方法を長いデータ単位のアクセスと記憶のために使用するCPUは一般にビックエンディアンと呼ばれる方法で動作する。
【0004】
【表1】
Figure 0003884102
【0005】
表1はリトルエンディアンとビッグエンディアン構成の両方でメモリ内のロケーション×1000でのロング・ワード(32ビット)変数0X12345678の記憶の例を示したものである。表1に示したシステムはバイトレベルでアドレス可能なメモリを含む。つまり、バイトが最小限アドレス可能なデータ単位、または、別の言い方をすれば、各バイトが独立してアドレス可能なロケーションに記憶されている。ロング・ワード変数0×12345678はロケーション0×1000から始まる連続したメモリ・ロケーションに記憶される。リトルエンディアン・システムでは、最下位バイト(即ち0×78)がもっとも下のメモリ・ロケーション(即ち0×1000)に記憶され、連続的により上位のバイトが連続したメモリ・ロケーションに記憶される。ビッグエンディアン・システムでは最上位バイト(即ち0×12)が最下位のメモリ・ロケーション(即ち0×1000)に記憶され、より下位バイトが連続したメモリ・ロケーションに順次に記憶される。
【0006】
プログラムの正しい実行のためにはそのプログラムを実行するCPUにとって正しい構成でメモリ内にデータが格納されることが重要である。現行システムにおいては、これは問題ではない。その理由は、全てのCPUがソース・プログラム(たとえばアセンブリ言語または高級言語)をそのCPU本来の機械語符号に翻訳するための、定数または初期変数データをメモリ内に正しいフォーマットで配置することを含めたプログラム開発ツールを含むからである。CPUがリトルエンディアン方式CPUの場合、これらのツールはそのCPUに対して適切なリトルエンディアン・フォーマットでデータを放出する。同様に、CPUがビッグエンディアン方式CPUの場合、これらのツールはそのCPUに対して適切なビッグエンディアン・フォーマットでデータを放出する。
【0007】
【発明が解決しようとする課題】
しかし最近ではマルチメディア(対話型)システム等の分散システムが提案され、コンピュータ・プログラムが中心のロケーションから遠隔のロケーションに送信される。遠隔のロケーションのCPU、および特に長いデータ単位で遠隔のロケーションのCPUが使用するエンディアン・フォーマットは中心のロケーションで未知である。実際に、両方のエンディアン・フォーマットを使用するCPUが送信されたコンピュータ・プログラムを受信して実行できると予想される。特に、対話型テレビジョン・システムが提案され、ビデオ、オーディオ、およびコンピュータ・プログラム要素が中心のロケーションから衛星リンクを経由して個別の加入者の所在地に放送される。各加入者の所在地は受信したビデオおよびオーディオ情報を表示するためのテレビ受像機と、受信したコンピュータ・プログラム情報を実行するためのCPUとを含む。別の加入者の所在地は別のエンディアン・フォーマットを使用する別のCPUを有することがある。
【0008】
コンピュータ・プログラムの符号部分は加入者の所在地にあるCPUに実装されたインタプリータが解釈できるような中間符号となるものと予想されている。しかし、それぞれの加入者所在地にあるCPUは共通の作業を実行するためいくつかの予め符号化したルーチンがこれに利用できると予想される。このようなルーチンは加入者の所在地にあるCPUの本来の符号で実装されて実行速度を最大にする。これらの本来の符号ルーチンでアクセスする全てのデータはそのCPUのエンディアン・フォーマットで記憶しなければならない。
【0009】
1つの解決策は中心のロケーションから2つのバージョンのコンピュータ・プログラムを送信することで有り得る:1つはビッグエンディアンCPU向け、もう1つはリトルエンディアンCPU向けとする。しかしこの解決方法では全てのコンピュータ・プログラムのデータを衛星リンク経由で、ビッグエンディアン・フォーマットで1回とリトルエンディアン・フォーマットでもう1回の2度送信しなければならない。これは帯域幅の無駄である。衛星リンク経由で1回だけデータを送信するが、ビッグエンディアンとリトルエンディアン両方のフォーマットを使用するCPUでそのデータを使用できるようにすることが望ましい。
【0010】
【課題を解決するための手段】
請求項1の発明は、分散コンピュータ・システムを含むマルチメディア送信システムであって、複数のデータ単位を含むデータセクションであって、各データ単位はアドレス可能な最小のデータ単位と該最小のデータ単位より長いデータ単位のいずれかであり、それぞれの長いデータ単位は複数の前記最小のデータ単位を含むデータセクション(144)と、前記データセクション前記長いデータ単位が記憶されている相対ロケーションを表すデータを含むスワップセクション(146)とを含むモジュールを表す信号を生成する中央コンピュータ・システムと、前記モジュールを表わす信号を受信する遠隔コンピュータ・システムであって、前記モジュールを抽出し、および前記スワップセクションに表された前記相対ロケーションにおいて、前記データセクションの長いデータ単位に含まれる最小のデータ単位をスワップするローダ(40)を含む遠隔コンピュータ・システムと、前記中央コンピュータ・システムから前記遠隔コンピュータ・システムへ前記モジュールを表わす信号を送信するための伝送リンク(30)とを具えたことを特徴とする。
【0011】
請求項2の発明は、前記ローダは、前記データセクションの長いデータ単位に含まれる最小のデータ単位の順序を反転することにより、該長いデータ単位に含まれる該最小のデータ単位をスワップすることを特徴とする。
【0012】
請求項3の発明は、前記伝送リンクは、前記中央コンピュータ・システム内の送信器と、前記遠隔コンピュータ・システム内の受信器と、前記送信器および前記受信器の間に接続された衛星回線とを含むことを特徴とする。
【0013】
請求項4の発明は、前記中央コンピュータ・システムテレビジョンのビデオとオーディオ信号の供給源をさらに含み、前記送信器は前記モジュールを表わす信号と前記テレビジョンのビデオとオーディオ信号を組み合わせて、複合オーディオ/ビデオ/対話型(AVI)信号を形成するためのマルチプレクサをさらに含、前記遠隔コンピュータ・システム前記テレビジョンのビデオとオーディオ信号および前記モジュールを前記受信した複合AVI信号から分離するためのデマルチプレクサと、前記テレビジョンのビデオとオーディオ信号使用する手段をさらに含むことを特徴とする。
【0014】
請求項5の発明は、対話型テレビジョンシステムであって、複数のデータ単位を含むデータセクションであって、各データ単位はアドレス可能な最小のデータ単位と該最小のデータ単位より長いデータ単位のいずれかであり、それぞれの長いデータ単位は複数の前記最小のデータ単位を含むデータセクション(54)と、前記データセクション前記長いデータ単位が記憶されている相対ロケーションを表すデータを含むスワップセクション(56)を含む信号モジュールの供給源(30)と、前記信号モジュールを抽出し、前記スワップセクションに表された前記相対ロケーションにおいて、前記データセクションの長いデータ単位に含まれる最小のデータ単位をスワップするためのローダ(40)プログラムを含む受信器とを具えたことを特徴とする。
【0015】
請求項6の発明は、前記受信器伝送リンクに接続されて前記信号モジュールを含む信号を検出するための検出器を含むことを特徴とする。
【0016】
請求項7の発明は、前記受信した信号モジュール多重化したテレビジョンのビデオとオーディオ信号を含み、前記受信器、前記信号モジュールから前記テレビジョンのビデオとオーディオ信号を分離するためのデマルチプレクサと、前記受信したテレビジョンのビデオとオーディオ信号使用する手段をさらに含むことを特徴とする。
【0017】
請求項8の発明は、前記最小のデータ単位がバイト変数であり、前記長いデータ単位が2バイトから構成されるワード変数と4バイトから構成されるロングワード変数のいずれかであり、前記データセクションは、連続した整列ロングワードに分割され、前記最小のデータ単位と前記長いデータ単位のいずれかが記憶され、前記スワップセクション複数のエントリを含み、それぞれのエントリは前記データセクション前記列ロングワード内のデータ単位のパターンを識別するデータを含む部分を含むことを特徴とする。
【0018】
請求項9の発明は、前記スワップセクションさらに前記データ部分の前記列ロングワードのシーケンスでデータ単位を識別する複数のシーケンス・エントリをさらに含むことを特徴とする。
【0019】
請求項10の発明は、前記スワップセクションは、それまでに挿入されたシーケンスエントリに戻るバックポインタオフセットを表わすデータを含むエントリを含み、前記ローダは前記バックポインタ・オフセットに応じてそれぞれのシーケンス・エントリにおいて、前記データセクションの長いデータ単位に含まれる最小のデータ単位をスワップすることを特徴とする。
【0020】
請求項11の発明は、整列したロングワード内部のデータ単位のパターンが、
4つの連続したバイト変数、
2つの連続したバイト変数に続くワード変数、
ワード変数に続く2つの連続したバイト変数、
2つの連続したワード変数、
ロングワード変数
のうちの1つを含むことを特徴とする。
【0021】
請求項12の発明は、マルチメディア送信システムにおける中央コンピュータ・システムにおいて、コンピュータ(12)プログラムデータの第1の供給源と、前記第1の供給源に結合されて、前記コンピュータプログラムデータを走査するポストリンカであって、複数のデータ単位を含むデータセクションであって、各データ単位はアドレス可能な最小のデータ単位と該最小のデータ単位より長いデータ単位のいずれかであり、それぞれの長いデータ単位は複数の前記最小のデータ単位を含むデータセクション(144)、前記データセクションのデータのフォーマットに応て、前記データセクション前記長いデータ単位が記憶されている相対ロケーションを表すデータを有するスワップセクション(146)含む前記データ・モジュールを生成するポストリンカ(20)とを具えたことを特徴とする。
【0022】
請求項13の発明は、伝送リンクに接続されて前記データ・モジュールを放送するための送信器をさらに具えたことを特徴とする。
【0023】
請求項14の発明は、テレビジョンのビデオとオーディオ信号の第2の供給源と、前記第2の供給源に接続され、前記データ・モジュールと前記テレビジョンのビデオとオーディオ信号とを含む複合信号を生成するためのマルチプレクサとをさらに具えたことを特徴とする。
【0024】
請求項15の発明は、前記第1の供給源はオブジェクトファイル内のシンボル・テーブルであることを特徴とする。
【0025】
請求項16の発明は、中央コンピュータ・システムと、遠隔コンピュータ・システムと、前記中央コンピュータ・システムおよび前記遠隔コンピュータ・システムの間に接続された伝送リンクを含むマルチメディア送信システムにおいて、前記中央コンピュータ・システムを動作させるための方法であって、シンボル・テーブルを含むオブジェクトファイルを生成するステップと、前記オブジェクトファイルを走査して複数のデータ単位を含むデータセクションであってデータ単位は、アドレス可能な最小のデータ単位と該最小のデータ単位より長いデータ単位のいずれかであり、それぞれの長いデータ単位は複数の前記最小のデータ単位を含むデータセクションを含むモジュールを生成するステップと、前記シンボル・テーブルを走査して前記モジュールにスワップセクションを生成するステップであって、前記スワップセクション前記データセクション前記長いデータ単位が記憶されている相対ロケーションを表すデータを含むステップと、前記モジュールを表わす信号を生成するステップと、前記伝送リンク経由して、前記遠隔コンピュータ・システムに前記モジュールを表わす信号を送信するステップとを含むことを特徴とする。
【0026】
請求項17の発明は、前記中央コンピュータ・システムはオーディオ信号供給源とビデオ信号供給源を含み、前記モジュールを表わす信号を生成するステップの後で、前記オーディオ信号と、前記ビデオ信号と、前記モジュールを表わす信号を多重化して複合AVI信号を形成するステップをさらに含むことを特徴とする。
【0027】
請求項18の発明は、複数のデータ単位を含むデータセクションであって、各データ単位はアドレス可能な最小のデータ単位と該最小のデータ単位より長いデータ単位のいずれかでありそれぞれの長いデータ単位は複数の前記最小のデータ単位を含むデータセクションと、前記データセクション前記長いデータ単位が記憶されている相対ロケーションを表すデータを含むスワップセクションとを含むモジュールを表わす信号を生成するための中央コンピュータ・システムと、遠隔コンピュータ・システムと、前記中央コンピュータ・システムおよび前記遠隔コンピュータ・システムの間に接続され前記中央コンピュータ・システムから前記遠隔コンピュータ・システムへ前記モジュールを表わす信号を送信するための伝送リンクとを含むマルチメディア送信システムにおいて、前記遠隔コンピュータ・システムを動作させるための方法であって、前記モジュールを表わす信号を受信するステップと、前記モジュールを表わす信号から前記データセクションを抽出するステップと、前記モジュールを表わす信号から前記スワップセクションを抽出するステップと、前記スワップセクションのデータをトラバースするステップと、前記長いデータ単位の1つを含むと識別された前記データセクションのそれぞれの相対ロケーションにおいて、前記長いデータ単位に含まれる最小のデータ単位をスワップするステップとを具えたことを特徴とする。
【0028】
請求項19の発明は、前記中央コンピュータ・システムは、前記モジュールを表わす信号、ビデオ信号とオーディオ信号組み合わせた複合オーディオ/ビデオ/対話型(AVI)信を生成し、前記受信ステップが、前記複合AVI信号を受信するステップと、前記オーディオ信号、前記ビデオ信号、および前記モジュールを表わす信号を前記複合AVI信号から分離するステップと、前記オーディオ信号成分と前記ビデオ信号成分を使用する手段に供給するステップとを含むことを特徴とする。
【0029】
請求項20の発明は、前記スワップするステップは、前記長いデータ単位に含まれる最小のデデータ単位の順序を反転するステップを含むことを特徴とする。
【0030】
【作用】
本発明の原理によれば、分散コンピュータ・システムは中心のロケーションと複数の遠隔のロケーションを含む。中心のロケーションのコンピュータ・システムは1つまたはそれ以上のモジュールから構成され、それぞれが複数のデータ単位を含むデータ部分を含むコンピュータ・プログラムを生成する。データ単位のそれぞれは最小限アドレス可能なデータ単位またはもっと長いデータ単位のいずれかとする。それぞれの長いデータ単位は複数の最小限アドレス可能なデータ単位を含む。該モジュールはデータ部分(セクション)内部の長いデータ単位のロケーションを識別するデータを含むスワップ部分も含む。遠隔のロケーションのコンピュータ・システムはモジュールを受信し、またローダを含む。ローダはデータ部分の長いデータ単位の最小限アドレス可能なデータ単位をスワップする。伝送リンクは中心のロケーションのコンピュータ・システムから遠隔のロケーションのコンピュータ・システムへモジュールを送信する。
【0031】
【発明の実施の形態】
以下に、図面を参照して本発明の実施の形態を詳細に説明する。
【0032】
図1は本発明を使用する分散コンピュータ・システムのブロック図である。図1において、中心のロケーションは遠隔のロケーションへ送信するためのコンピュータ・プログラムの符号とデータを準備するためのコンピュータ・システムを含む。コンピュータ・システムは互いに周知の方法でシステム・バス経由で一緒に結合してある中央演算処理装置(CPU)、読み書き両用メモリ(RAM)、読み出し専用メモリ(ROM)、入出力装置たとえばCRT端末や印刷装置を含むがいずれも図示していない。コンピュータ・システムはさらに周知の方法で動作し周知の方法でシステム・バスに接続される大容量記憶装置10も含む。
【0033】
動作において、コンピュータ・システムをプログラマが使用して中心のロケーションから複数の遠隔のロケーションへ分配しようとするコンピュータ・プログラムを生成する。プログラム開発で普通に行なわれるように、アプリケーション・プログラマは周知の方法でコンピュータ・システムを使用してソース文書(図示していない)を生成し、これは1つまたはそれ以上のソースおよび/または制御ファイル(図示していない)から構成してもよい。ソース文書はコンピュータ・システム上で実行される各種プログラム(たとえばコンパイラ)が周知の方法で処理し、そのそれぞれが中間結果を発生することができ、遠隔のロケーションへすぐに分配することのできるような最終モジュールを生成する。大容量記憶装置10はプログラム開発工程の中間結果たとえば1つまたはそれ以上のオブジェクトファイル12等と、プログラム開発工程の1つまたはそれ以上の最終モジュールたとえばモジュール14を表わすデータを保持する。図1において、ポストリンカ・ルーチン20は入力としてオブジェクト・モジュール12を取り出し、以下でさらに詳細に説明するような方法で、出力としてモジュール14を生成する。
【0034】
たとえば対話型テレビジョン・システムにおいて、視聴者と放送テレビジョン信号の相互作用に影響するアプリケーション・プログラムが中心のロケーションのプログラム開発ツールを使用するアプリケーション・プログラマによって開発される。プログラム開発ツールの中間結果の1つがオブジェクト・ファイル12である。オブジェクトファイル12は実行可能な符号(図示していない)とシンボル・テーブル122を表わすデータを含む。シンボル・テーブル122はそれぞれの変数名、データ形式、プログラム実行時にその変数が記憶されるメモリ内のアドレスに関係するデータを含む。シンボル・テーブル122はさらにシンボル・テーブル122内の各データ形式を前述したように、バイト、ワード、ロングワードのような基本データ形式に関連させる情報も含む。
【0035】
ポストリンカ20は周知の方法で実行可能符号(図示していない)を表わすオブジェクトファイル12のデータを処理し、モジュール14の中間符号部分(セクション)142に周知の構造の中間符号を生成する。ポストリンカ20はさらに周知の方法でオブジェクト・モジュール12のシンボル・テーブル122の情報を分析して、モジュール14における符号部分142に含まれるプログラム符号が遠隔のロケーションで実行された場合にメモリに記憶されることになるシンボル・テーブル122のデータ・イメージを表わすデータを含むデータ部分144を発生する。
【0036】
モジュール14(および図示していないそれ以外の全てのモジュール)は伝送リンク30を経由して複数の遠隔のロケーションに送信される。伝送リンク30はたとえば中心のロケーションのコンピュータ・システムのシステムバスに接続してある出力アダプタ、スケジューラ、パケッタイザ、マルチプレクサ、RF衛星アップリンク、衛星トランスポンダ、RF衛星ダウンリンク、デマルチプレクサ、遠隔のロケーションのコンピュータ・システムのシステムバスに接続された入力アダプタ(いずれも図示していない)などの周知の要素から構成される。伝送リンクは周知の方法で動作してモジュール14を中心のロケーションから遠隔のロケーションに必要に応じて送信する。
【0037】
対話型テレビジョンシステムにおいて、中心のロケーションはモジュール14で表わされるコンピュータ・プログラム(および図示していないその他全てのモジュール)に付随させるテレビのビデオおよびオーディオ信号の供給源も含む。テレビのビデオとオーディオ信号はモジュール14と一緒にパケット化、多重化されて複合対話型テレビ信号を形成する。この複合信号が遠隔のロケーションの全部に、たとえば周知の方法で衛星リンク経由により放送される。遠隔のロケーションはこの複合信号を検出・提供するための検出器を含む受信器と、たとえばテレビのビデオとオーディオ信号からモジュールを非多重化するための逆伝送プロセッサ等を含む。テレビのビデオとオーディオ信号は周知の方法で処理され、これらの信号を使用できるシステムに提示される。たとえば、テレビのビデオとオーディオ信号は加入者所在地でテレビ受像機またはVTRへ供給することができる。さらに、遠隔のロケーションのコンピュータがモジュールで表わされたコンピュータ・プログラムを実行することもさらに可能で、プログラム実行の結果として画像ビデオ信号と音声オーディオ信号を生成することができる。これらのコンピュータが生成したビデオとオーディオ信号はテレビのビデオとオーディオ信号にそれぞれ組み合せてテレビとコンピュータを組み合せたマルチメディア表現を生成することができる。さらに、ユーザが実行可能なコンピュータ・プログラムと相互作用して(たとえば遠隔のロケーションの制御ユニットの使用により)表示されたマルチメディア表現と相互作用することも可能である。対話型テレビジョン・システム設計の当業者には上記の全部をどのように実行できるかが理解されよう。
【0038】
前述のように、それぞれの遠隔のロケーションはCPU70、RAM50、ROM60、各種の入出力装置(図示していない)を含み全部が周知の方法でシステムバス(図示していない)経由で相互に接続され、周知の方法で動作するコンピュータ・システムを有している。1つの入力装置(図示していない)は伝送リンク30の出力をシステムバスへ接続する。ローダ処理ルーチン40はCPU上で実行し、この入力装置の動作を制御する。伝送リンク30から所望のモジュールを受信すると、ローダ40が符号部分(セクション)52とデータ部分(セクション)54をRAM50に転送する。
【0039】
受信したモジュールがRAM50に完全に転送されると、ROM60に永久的に記憶されているインタプリータ・ルーチン62が符号部分52の中間符号(前述した)にアクセスし、周知の方法でこれを解釈して実行する。符号部分52のいくつかの命令はデータ部分54に記憶されているデータを参照する。これらの命令を実行すると、インタプリータ62はデータ部分54の所望のデータにアクセスしてプログラムを実行する。
【0040】
インタプリータはプログラムの実行のためには非常に遅い手段であることが周知である。速度は必ずしも重要ではないが、速度が所望されるような機能が存在する。このような機能を実行するため、遠隔のロケーションのコンピュータ・システムは遠隔のロケーションのCPUの本来の符号で符号化したルーチンのライブラリ64を含む。
【0041】
しかし、前述したように、別の遠隔のロケーションにあるそれぞれのCPUは別のエンディアン・フォーマットで動作させることもできる。つまり、いくつかの遠隔のCPUはビッグエンディアン・フォーマットで動作するが、他のCPUはリトルエンディアン・フォーマットで動作することがある。データ部分が生成されエンディアン・フォーマットの1つに、たとえばビッグエンディアン・フォーマットに変換された場合、ビッグエンディアン・フォーマットで動作する遠隔のロケーションのCPUのための本来のライブラリ64は利用できるもっとも効率的な多バイト読み書きの本来の命令を直接使用してデータ部分54に記憶されている長いデータ単位にアクセスすることがある。しかしリトルエンディアン・フォーマットで動作する遠隔のロケーションのCPUの本来のライブラリ64は1度に1バイトづつ長いデータ単位をアクセスしなければならず、またデータ自体を処理する前にビッグエンディアン・フォーマットからリトルエンディアンフォーマットへバイトをスワップすることによって再構成しなければならない。これによりできる限り高速に実行しなければならないこれらのルーチンに実質的なオーバヘッドが追加される。
【0042】
本発明の原理によれば、中心のロケーションで生成されたモジュール14はさらにスワップ部分146を含む。スワップ部分(セクション)146はデータ部分(セクション)144の長いデータ単位がどこに記憶されているかを表わすデータを含む。ポストリンカ20はオブジェクトファイル12のシンボル・テーブル122を分析するのと同時に、データ部分のどこにこれらの長いデータ単位が記憶されているかを決定できる。ポストリンカ20は、長いデータ単位を識別した時点で、テーブルにエントリを作り長いデータ単位があるデータ部分144内の相対ロケーションを表わす。オブジェクトファイル12を完全に分析した時点で、このテーブルを表わすデータがモジュール14のスワップ部分146に記憶され、伝送リンク30を介して中間符号部分142およびデータ部分144と一緒に遠隔のロケーション送信される。
【0043】
図示した実施例において、データはデータ部分144にビッグエンディアン・フォーマット専用に記憶されている。スワップ部分146はデータ部分144内のどこに長いデータ単位が記憶されているかを表わすデータを含む。遠隔のロケーションにおいて、ローダ40は受信したモジュールの符号部分52、データ部分54、スワップ部分56をRAM50に記憶する。遠隔のロケーションのCPUがビッグエンディアン・フォーマットで動作する場合には、スワップ部分56を含むRAM50のロケーションは不要であり、他の目的に使用するために解放できる。ローダ40はこれの機能の完了を報告しインタプリータ62と本来のライブラリ64がそれぞれ遠隔のロケーションのCPUで使用するビッグエンディアン・フォーマットのデータにアクセスする。
【0044】
他方、遠隔のロケーションのCPUがリトルエンディアン・フォーマットで動作するとすると、ローダ40は処理を完了する前にスワップ部分56のデータを分析する。スワップ部分56が示すように、より長いデータ単位を含むデータ部分54内の全てのロケーションにおいて、ローダ40はデータ単位のバイトをスワップし、そのデータ単位をビッグエンディアン・フォーマットからリトルエンディアン・フォーマットへ変換する。より長いデータ単位全部がリトルエンディアン・フォーマットに変換された後は、スワップ部分56を含むRAM50のロケーションはもはや不要になるので、他の目的に使用するように解放することができる。ローダはこれの機能の完了を報告し、インタプリータ62と本来のライブラリ64の実行を開始させる。この遠隔のロケーションのデータは現在全部がリトルエンディアン・フォーマットになっているので、本来のライブラリ64のルーチンはもっとも効率的な多バイト読み書きの本来の利用可能な命令を使用して動作できる。
【0045】
本発明による対話型テレビジョン・システムでは遠隔のロケーションでビッグエンディアンとリトルエンディアン両方のフォーマットで動作するCPUが本来のモードで送信データにアクセスすることができ、中心のロケーションから1回はビッグエンディアン・フォーマットでまたもう1回リトルエンディアン・フォーマットでと2回にわたりデータを送信する必要がない。必要なことは、中心のロケーションのポストリンカにより小さいスワップ部分を各モジュールに生成することと、送信データのフォーマットとは異なるエンディアン・フォーマットで動作するCPUを含む遠隔のロケーションのローダルーチンに読み込み終了前に長いデータ単位をスワップするステップを追加することである。
【0046】
図2はデータ部分144の配置と別の対応するスワップデータ部分146aおよび146bを表わすメモリ配置図である。図2ではデータ部分144が図面の中央にコラムとして図示してある。各変数はこのコラム内部の四角形で表わされ、その四角形の大きさが変数の大きさに対応する。さらに詳しくは、いちばん上の2つの変数はそれぞれがバイト変数である。第3の変数はワード変数で連続2バイトから構成されるように図示してある。第4の変数はバイト変数である。第5の変数はロングワード変数で、連続4バイトから構成されるように図示してある。第6の変数はバイト変数である。第7の変数はワード変数で、連続2バイトから構成されるように図示してある。当然ながらデータ部分144には他の変数も存在し、これはバイト変数、ワード変数、またはロングワード変数とすることもできる。
【0047】
図の左側のコラムはスワップデータ部分146aの第1の実施を表わしている。この実施において、データ部分144のそれぞれの変数に対するエントリがあり、データ部分に出現する順序でそれぞれのエントリが対応する変数の大きさを表わしている。スワップ部分146aでは、データ部分144に図示した7変数に対応して7つのエントリがある。各エントリの内容は対応する変数の種類を表わす文字で図示してある。詳しくは、第1の2エントリは表記「B」を含み、これは第1の2エントリがバイト変数であることを表わす。次のエントリは表記「W」を含み、これは第3の変数がワード変数であることを表わす。次のエントリは表記「B」を含みこれは第4の変数がバイト変数であることを表わす。次のエントリは表記「L」を含み、これは第5の変数がロングワード変数であることを表わす。以下同様に続く。理解されるように、この実施において、変数について3種類の可能な長さ(B、W、またはL)が存在し、長さは2ビットで表わされ、このような表示4種類を単一のバイト内に組み込むことができる。
【0048】
あるいはまた、データ部分の長いデータ単位のロケーションだけをスワップ部分に含めることができる。これが図2の右手に図示してあるスワップ部分146bに図示してある。データ部分144の図示した部分において、1つのエンディアン・フォーマットから別のフォーマットにスワップする必要があるデータ部分144の長いデータ単位が3つ存在する。146bに図示したスワップ部分の各エントリは長いデータ単位のデータ部分144内でのロケーションを示すオフセット値と、その単位の種類を含む。詳しくは、スワップ部分146bの第1のエントリは第3の変数のロケーションへのポインタと、これがワード変数(2バイト)であることの表示を含む。次のエントリはデータ部分144内の第5の変数を示し、この変数がロングワード変数(4バイト)であることの表示を含む。次のエントリは第7の変数を示し、その変数がワード変数(2バイト)であることの表示を含む。この実施によるスワップ部分のそれぞれのエントリはデータ部分内部のロケーションへのオフセットポインタとそのロケーションの種類の表示を格納するだけ充分に大きくする必要がある。しかし、全てのデータ単位についてではなく長いデータ単位についてのエントリしかない。これ以外に変数の各種類ごとに別のリストを用いる、即ちワード変数用に1つのリスト、ロングワード変数用に別のリストを用いることができる。このようなリストそれぞれの各エントリはデータ部分144の変数のロケーションへのオフセットポインタだけを含めば良い。
【0049】
このようないずれかの実施において、(図1の)ポストリンカ20はシンボル・テーブルを分析し、前述のように長いデータ単位のデータ部分144での場所を識別するためのスワップ部分146を生成する。ローダ40は第1にスワップ部分56を読み込み、データ部分54の長いデータ単位のエンディアン・フォーマットを変換する必要があればスワップ部分56のデータをトラバースないし走査し、長いデータ単位のデータ部分54でのロケーションを識別し、これらのロケーションのバイトをスワップする。146aに図示したようなスワップ部分では、データ部分144全体を走査し、場所が長いデータ単位(ワードまたはロングワード変数)を含むとスワップ部分146aのエントリが示している場合にはこれらのバイトをスワップする。146bに図示したスワップ部分では、スワップ部分の各エントリがデータ部分144で指示されたロケーションでバイトをスワップすることにより処理される。
【0050】
近代的なプログラミング言語では、変数は前述したような基本バイト、ワード、ロングワード変数から形成され、ストラクチャ、アレイ、ストラクチャのアレイ、および/またはアレイを含むストラクチャに配置された複雑な変数であることが多い。このようなデータの構成は同じ種類のデータの反復、またはデータの種類のパターンの反復を発生する。スワップ部分の大きさは特別な符号化により反復する変数の種類または変数のパターンを効率的に表現できるようにすることで減少可能である。
【0051】
図3は本発明によるスワップ部分146のそれぞれの部分の符号化を表わすメモリ配置図である。図3に図示したスワップ部分146の構成は(図2の)スワップ部分146aに対応し、データ部分の各バイトについてスワップ部分にエントリが存在する。同じ種類のデータの反復とデータの種類のパターンの反復を利用することで図3に図示したようにスワップ部分146でさらなる圧縮が達成される。
【0052】
図3において、遠隔のロケーションは3種類の基本的な変数の種類、バイト、ワード、ロングワードを有し、長いデータ単位(ワードまたはロングワード)が整列する必要のあるCPUを含む。これは、バイト変数ならメモリ内のどこに記憶することもできるが、ワード変数は偶数アドレスを有するバイト・ロケーションにだけ記憶でき、ロングワード変数は4で割ることのできるアドレスを有するバイト・ロケーションにだけ記憶できる。このような構成は周知であり、コンピュータ・システム設計の当業者には理解されよう。
【0053】
ポインタと呼ばれる特別なロングワードは図3において別に「P」として表わされている。ポインタは周知のプログラミング構造で、読み込み処理中に特別に処理される。ポインタはロングワードと同じ大きさ、即ち4バイトで、4で割ることのできるアドレスを有するバイト・ロケーションだけに記憶する必要があり、またエンディアン・フォーマットを変更する必要があればバイトをスワップしなければならない。さらに、これらの値はデータ部分が記憶される遠隔のロケーションのRAMの絶対ロケーションを反映するように、再配置として周知の処理で変更する必要がある。再配置処理は周知でありこれ以上詳細に本明細書では説明しない。
【0054】
データ部分におけるデータの配置は後述するような方法で符号化された一連のバイトとしてスワップ部分146に表わされている。図3に図示したスワップ部分146の符号化の方式では、データ部分(図示していない)を整列したロングワードに分割されたものとまず考える。図3は左手上方に表202を含み、唯一許容されるバイト変数(「B」で表わされる)、整列したワード変数(「W」で表わされる)、整列したロングワード変数(ロングワードでは「L」、ポインタは「P」で表わされる)の配置を示している。表202の左側のアドレスはデータ部分のロングワード整列(4で除算可能な)アドレスを表わし、データ部分の実際のアドレスを表わしているものではない。
【0055】
理解されるように、整列ロングワード内には6種類の許容可能な変数配置が存在する。いちばん上のエントリ、右側で「0」番の番号は整列ロングワードが4つの独立したバイト変数(B)を含むことを示している。第2の、「1」番のエントリは整列ロングワードが2バイト変数(B)に続けてワード変数(W)を含むことを表わす。第3の「2」番のエントリは整列ロングワードがワード変数(W)に続けて2つのバイト変数(B)を含むことを表わす。第4の「3」番のエントリは整列ロングワードが2つのワード変数(W)を含むことを表わす。第5の「4」番のエントリは、整列ロングワードがロングワード変数(L)を含むことを表わす。第6の「5」番のエントリは整列ロングワードがポインタ(P)を含むことを表わす。他の配置は許容されない。
【0056】
図3のa)を参照するに、データ部分の整列ロングワードをスワップ部分146のエントリで表わすことができる。表202のエントリの右側の数値は、整列ロングワード等の内部の変数パターンを表わしており、周知の方法で3ビットに2進符号化される。これら3ビットはその整列ロングワードに対応するスワップ部分146のエントリ204の最上位3ビット(ビット7:6:5)に挿入される。スワップ部分の各エントリ204がメモリ内の連続した整列ロングワードの個数を表わすことができ、それぞれが同じ変数のパターンを含むことにより、スワップ部分で圧縮の目安が達成される。残りのビット(ビット4:3:2:1:0)208は最上位3ビットで表わされるパターンの反復回数を表わす2進符号化した数値Nを含む。数値Nは0から31までの値をとることができる。この数値Nはパターンの反復回数−1を表わす。数値Nが「0」は反復値1、即ちデータ部分におけるパターン206の1回だけの発生を表わす。数値Nが「1」は反復値2を表わし、数値Nが「31」では反復値32を表わす。つまり、スワップ部分146の1バイトのエントリ204で表わすことができる2進符号化された値206で表わされるパターンの反復回数は1から32までをとることができる。
【0057】
前述のように、プログラム内の変数は基本的なデータ形式の複雑な組み合わせで、ストラクチャ、アレイ、ストラクチャのアレイ、および/またはアレイを含むストラクチャを含むことがある。これらの複雑な組み合わせは特定の方法で構成した基本的なデータ形式のシーケンスから構成される。表202からパターンの符号化に使用されない2進値、即ち「6」「7」を、それぞれ、たとえばこのようなストラクチャとアレイの反復発生から得られる等の基本データ形式のシーケンスの符号化と、すでに定義したパターンの反復に使用する。図3のb)は表202からパターンの反復シーケンスを表わすスワップ部分146の一部の符号化を表わす。このようなシーケンスが識別された場合(たとえば図1のポストリンカ20によりシンボル・テーブル122から)、2進符号化値「6」がスワップ部分146の第1バイト210の上位3ビット(7:6:5)に配置されてスワップ部分146でこのエントリがシーケンスを表わし、図3のa)のような基本的データ形式のパターンではないことを示す。図3のa)と同様に、第1バイト210の最下位5ビットは特定シーケンスの反復回数を表わす2進符号化した値Nである。この場合、2進符号化した数値Nはシーケンスの反復回数−2を表わす。つまり、識別したシーケンスの反復回数は2から33までとなる。
【0058】
スワップ部分の次のバイト212はスワップ部分146のシーケンスの長さ−1を含み、後述するような方法で決定される。シーケンス長さバイト212の次は一連のバイト214で、図3のa)に関連して前述したように符号化される。バイト列214のバイト数が決定されバイト列においてバイト数−1に等しい数Nが2進符号化され前述したようにシーケンス長さバイト212に挿入される。
【0059】
複雑なストラクチャが定義される、たとえば(図1の)シンボル・テーブル122のような場合、そのストラクチャを表わすのに必要な基本的データ形式の構成はポストリンカ20によって決定できる。このようなデータ構造の発生がシンボル・テーブル122で定義されると、図3のb)に図示したようなエントリがスワップ部分146に作成される。このようなストラクチャのアレイはそのデータ構造の反復回数で表わすことができ、前述のように反復回数を表わす2進符号化した数値N−2で指定される。
【0060】
そのデータ形式の別の例が(図1の)シンボル・テーブル122で定義される場合には、図3のb)のようにすでに挿入したシーケンスのエントリを挿入しなおすのではなく、別のエントリ、バック・ポインタと呼ばれるエントリをスワップ部分146に挿入して以前のシーケンス・エントリへ戻り参照する。図3のc)はバック・ポインタ・エントリの符号化を示す。バック・ポインタ・エントリでは、2進値「7」が第1バイト216の最上位3ビットに符号化される。図3のa)および図3のb)と同様に、第1バイト216の最下位5ビットはバック・ポインタ・エントリで表わされるすでに定義したシーケンスの反復回数を表わす2進符号化した数値Nを含む。図3のc)において、数値Nは反復回数−2で、反復回数2から33を表わしている。
【0061】
次のバイト218は図3のb)で説明したように、それまでに挿入したシーケンス・エントリに戻るスワップ部分146のオフセットを表わす。オフセットは現在のバック・ポインタ・エントリとそれまでに定義したシーケンス・エントリとの間のバイト数を表わす。このオフセットは、図3のc)のバック・ポインタ・オフセットバイト218から図3のb)のシーケンス長バイト212までの矢印で示してあるように、すでに定義したシーケンス・エントリでのシーケンス長バイト212を指している。図3に図示した符号化方式を使用して、基本的データの種類、バイト、ワード、ロングワードのデータ部分内でのロケーションを、スワップ部分146でのエントリをトラバースすることによってローダ40によって(図1)が簡単に決定できる。長いデータ単位、ワード、ロングワード、およびポインタは、これらのデータ単位のエンディアン・フォーマットを変更する必要があれば発見してバイトスワップすることができる。
【0062】
図4はデータ部分144と図3にしたがって符号化した対応するスワップ部分146の例を示すメモリ配置図である。図4において、データ部分144の一部が図面の右側に図示してあり、対応するスワップ部分146の一部が図面の左側に図示してある。スワップ・テーブルのエントリを形成するバイトは水平方向の四角で図示してある。バイトのいくつかは四角形内部の縦線で表わされるように部分に論理的分割される。各部分を含むビットはスワップ部分146の上に図示してある。データ部分144のそれぞれの水平方向の四角形は4バイトを含むメモリ内の整列ロングワードに対応する。これらのバイトB1、B2、B3、B4はデータ部分144の上に図示してある。第1の6つの整列ロングワードそれぞれの左側のアドレスはロングワードが整列されていることを表わすだけで、データ部分での絶対ロケーションを表わしているものではない。それぞれ図示した整列ロングワード内の基本的変数の形式の構成は、バイト変数が「B」、隣接する2バイトからなるワード変数が「W」、隣接する4バイトからなるロングワード変数が「L」、また隣接する4バイトからなるポインタが「P」で表わしてある。
【0063】
図4のデータ部分144の第1の6つの整列ロングワードは図3のa)の表202に図示した基本的データ形式の同じパターンの変数を含む。第1の6つのロングワードの右側の「0」から「5」までの表記は表202に図示してあるように対応するロングワードのパターンの個数である。
【0064】
スワップ部分146における第1のエントリはデータ部分144の第1の整列ロングワードに対応する。この整列ロングワードはアドレス0x0000にあり、4バイトの変数「B」を含む。2進符号化したこのパターンの表現は「0」で、これが最上位3ビット7:6:5に符号化される。このような連続パターンは1回だけなので、反復回数は1である。最下位5ビット4:3:2:1:0に符号化された数値Nは反復回数(1)−1、または0である。スワップ部分146の次の5つのエントリはデータ部分144の次の5つの整列ロングワードに対応し同様に符号化されている。
【0065】
スワップ部分146において次に図示したエントリは3回反復するデータ部分144のパターンに対応する。この場合、反復パターンはワード変数Wであり、それに続いて2つの順次のバイト変数Bがある。このパターンは2進符号化した値「2」で、図3の表202に図示したように表わされている。2進符号化した値「2」は最上位3ビット7:6:5に記憶される。この場合の反復回数は3である。最下位5ビット4:3:2:1:0に符号化される数値Nは反復回数(3)−1または2である。
【0066】
スワップ部分146において次に図示したエントリは連続5バイトで構成され、パターンの反復シーケンスを表わしている。このシーケンスは同じパターンを含む2つの連続した整列ロングワードから構成される。ワード変数Wに続けて2つの連続バイト変数Bである。これに連続2つのワード変数Wのパターンを含む整列ロングワードが続き、これにロングワード変数Lのパターンを含む整列ロングワードが続く。このシーケンスが2回反復されている。スワップ部分146の対応するエントリにおいて、第1バイトは図3のb)に図示したように最上位3ビットで2進値「6」を含む。下位5ビットは図3のb)に図示したように反復回数−2に等しい数値Nで符号化される。この場合、数値Nは反復回数(2)−2または0である。次のバイトはシーケンスの長さ−1を表わすエントリの2進符号化した個数を含む。この場合シーケンスを記述する後続の3エントリがある(後述する)ので、シーケンス長バイトに記憶される値はエントリ数(3)−1または2である。
【0067】
次の3バイトはシーケンス自体を記述し、図3のa)に図示したように符号化してある。データ部分144の対応する部分に図示したシーケンスは2つの連続した整列ロングワードで始まり、各ロングワードはワード変数Wのパターンを含み、それに続いて2つのバイト変数Bのパターンがある。これは2という番号のついたパターンの2回の反復である。従って、スワップ部分146でシーケンスを記述する第1バイトは最上位3ビット7:6:5において2を有し、最下位5ビット4:3:2:1:0は1(反復回数(2)−1)を有する。データ部分144のシーケンス内の次の整列ロングワードは2つの連続したワード変数Wのパターンを含む。これは3で表わしたパターンの1回の反復である。このパターンをスワップ部分146で記述するバイトは最上位3ビット7:6:5に3を有し、下位5ビット4:3:2:1:0に0を有する。データ部分144のシーケンスにおいて最後の整列ロングワードは単一のロングワード変数Lのパターンを含む。これは4番目のパターンの1回の反復である。スワップ部分146でこのパターンを記述するバイトは最上位3ビット7:6:5が4、最下位5ビット4:3:2:1:0が0を有する。
【0068】
スワップ部分146で次に図示したエントリは2バイトから構成され、データ部分144で説明したシーケンスの3回の反復を表わす。スワップ部分146のこのエントリは最上位3ビット7:6:5に「7」を含むバイトである。下位5ビット4:3:2:1:0は反復回数(3)−2または1を含む。次のバイトはスワップ部分146のすでに図示したエントリにおけるシーケンス長バイト(2を含む)への矢印で表わしてあるように、本来シーケンスが記述されていたスワップ部分146のエントリのシーケンス長バイトへのバック・ポインタを表わすオフセットを含む。
【0069】
このように、データ部分144の全てのバイトに含まれる変数の種類がスワップ部分146の対応するエントリで表わされる。スワップ部分146は、前述したように、シンボル・テーブル122を分析して、シンボル・テーブル122において参照される変数を構成する基本的変数のデータ形式を表わすスワップ部分146でのエントリを生成することにより、(図1の)ポストリンカ20によって生成してもよい。受信したスワップ部分56をローダ40によって分析し、そして受信したデータ部分54における適当な長いデータ単位を適切に位置させ、およびそれらのバイトをスワップすることによって、それらを適当なエンディアン・フォーマットに変換する。
【0070】
【発明の効果】
本発明によれば、モジュールはデータ部分とスワップ部分とを含み、遠隔ロケーションのコンピュータ・システムのローダによって、スワップ部分のデータで識別されたロケーションに、データ部分における長いデータ単位の最小限アドレス可能なデータ単位をスワップすることによって、中心のコンピュータ・システムから遠隔のコンピュータ・システムへモジュールを表わす信号を送信するようにしたので、たとえば、衛星リンク経由で1回だけデータを送信するが、ビッグエンディアンとリトルエンディアン両方のフォーマットを使用するCPUでそのデータを共通フォーマットとして使用することができる。
【図面の簡単な説明】
【図1】本発明を用いた分散コンピュータ・システムのブロック図である。
【図2】データ部分とこれに代わる対応スワップデータ部分の配置を例示するメモリ配置図である。
【図3】本発明の実施例によるスワップ部分の符号化を例示するメモリ配置図である。
【図4】図3にしたがって符号化したデータ部分および対応するスワップ部分の例を示すメモリ配置図である。
【符号の説明】
10 大容量記憶装置
12 オブジェクト・ファイル
14 モジュール
20 ポストリンカ
30 伝送リンク
40 ローダ
50 RAM
52 符号部分
54 データ部分
56 スワップ部分
60 ROM
62 インタプリータ
64 ライブラリ
70 CPU
122 シンボル・テーブル
142 符号部分
144 データ部分
146 スワップ部分

Claims (20)

  1. 分散コンピュータ・システムを含むマルチメディア送信システムであって、
    数のデータ単位を含むデータセクションであって、各データ単位はアドレス可能な最小のデータ単位と該最小のデータ単位より長いデータ単位のいずれかであり、それぞれの長いデータ単位は複数の前記最小のデータ単位を含むデータセクションと、
    前記データセクション前記長いデータ単位が記憶されている相対ロケーションを表すデータを含むスワップセクション
    を含むモジュールを表す信号を生成する中央コンピュータ・システムと
    前記モジュールを表わす信号を受信する遠隔コンピュータ・システムであって、前記モジュールを抽出し、および前記スワップセクションに表された前記相対ロケーションにおいて、前記データセクションの長いデータ単位に含まれる最小のデータ単位をスワップするローダを含む遠隔コンピュータ・システムと、
    前記中央コンピュータ・システムから前記遠隔コンピュータ・システムへ前記モジュールを表わす信号を送信するための伝送リンクと
    を具えたことを特徴とするマルチメディア送信システム。
  2. 記ローダは、前記データセクションの長いデータ単位に含まれる最小のデータ単位の順序を反転することにより、該長いデータ単位に含まれる該最小のデータ単位をスワップすること
    を特徴とする請求項1に記載のマルチメディア送信システム。
  3. 前記伝送リンクは、
    前記中央コンピュータ・システム内の送信器と、
    前記遠隔コンピュータ・システム内の受信器と、
    前記送信器および前記受信器の間に接続された衛星回線と
    を含むことを特徴とする請求項1に記載のマルチメディア送信システム。
  4. 前記中央コンピュータ・システムテレビジョンのビデオとオーディオ信号の供給源をさらに含み、
    前記送信器は前記モジュールを表わす信号と前記テレビジョンのビデオとオーディオ信号を組み合わせて、複合オーディオ/ビデオ/対話型(AVI)信号を形成するためのマルチプレクサをさらに含
    前記遠隔コンピュータ・システム前記テレビジョンのビデオとオーディオ信号および前記モジュールを前記受信した複合AVI信号から分離するためのデマルチプレクサと、前記テレビジョンのビデオとオーディオ信号使用する手段をさらに含むことを特徴とする請求項1に記載のマルチメディア送信システム。
  5. 対話型テレビジョンシステムであって、
    複数のデータ単位を含むデータセクションであって、各データ単位はアドレス可能な最小のデータ単位と該最小のデータ単位より長いデータ単位のいずれかであり、それぞれの長いデータ単位は複数の前記最小のデータ単位を含むデータセクションと、
    前記データセクション前記長いデータ単位が記憶されている相対ロケーションを表すデータを含むスワップセクションとを含む信号モジュールの供給源と、
    前記信号モジュールを抽出し、前記スワップセクションに表された前記相対ロケーションにおいて、前記データセクションの長いデータ単位に含まれる最小のデータ単位をスワップするためのローダプログラムを含む受信器
    を具えたことを特徴とする対話型テレビジョンシステム
  6. 前記受信器伝送リンクに接続されて前記信号モジュールを含む信号を検出するための検出器を含むことを特徴とする請求項5に記載の対話型テレビジョンシステム
  7. 前記受信した信号モジュール多重化したテレビジョンのビデオとオーディオ信号を含み
    前記受信器、前記信号モジュールから前記テレビジョンのビデオとオーディオ信号を分離するためのデマルチプレクサと、前記受信したテレビジョンのビデオとオーディオ信号使用する手段をさらに含むこと
    を特徴とする請求項5に記載の対話型テレビジョンシステム
  8. 前記最小のデータ単位がバイト変数であり、
    前記長いデータ単位が2バイトから構成されるワード変数と4バイトから構成されるロングワード変数のいずれかであり、
    前記データセクションは、連続した整列ロングワードに分割され、前記最小のデータ単位と前記長いデータ単位のいずれかが記憶され、
    前記スワップセクション複数のエントリを含み、それぞれのエントリは前記データセクション前記列ロングワード内のデータ単位のパターンを識別するデータを含む部分を含むこと
    を特徴とする請求項5に記載の対話型テレビジョンシステム
  9. 前記スワップセクションさらに前記データ部分の前記列ロングワードのシーケンスでデータ単位を識別する複数のシーケンス・エントリをさらに含むことを特徴とする請求項8に記載の対話型テレビジョンシステム
  10. 前記スワップセクションは、それまでに挿入されたシーケンスエントリに戻るバックポインタオフセットを表わすデータを含むエントリを含み、
    前記ローダは前記バックポインタ・オフセットに応じてそれぞれのシーケンス・エントリにおいて、前記データセクションの長いデータ単位に含まれる最小のデータ単位をスワップすることを特徴とする請求項9に記載の対話型テレビジョンシステム
  11. 整列したロングワード内部のデータ単位のパターンが、
    4つの連続したバイト変数、
    2つの連続したバイト変数に続くワード変数、
    ワード変数に続く2つの連続したバイト変数、
    2つの連続したワード変数、
    ロングワード変数
    のうちの1つを含むことを特徴とする請求項8に記載の対話型テレビジョンシステム
  12. マルチメディア送信システムにおける中央コンピュータ・システムにおいて、
    コンピュータプログラムデータの第1の供給源と、
    前記第1の供給源に結合されて、前記コンピュータプログラムデータを走査するポストリンカであって、
    複数のデータ単位を含むデータセクションであって、各データ単位はアドレス可能な最小のデータ単位と該最小のデータ単位より長いデータ単位のいずれかであり、それぞれの長いデータ単位は複数の前記最小のデータ単位を含むデータセクションと
    前記データセクションのデータのフォーマットに応て、前記データセクション前記長いデータ単位が記憶されている相対ロケーションを表すデータを有するスワップセクションと含む前記データ・モジュールを生成するポストリンカと
    を具えたことを特徴とする中央コンピュータ・システム。
  13. 伝送リンクに接続されて前記データ・モジュールを放送するための送信器をさらに具えたことを特徴とする請求項12に記載の中央コンピュータ・システム。
  14. テレビジョンのビデオとオーディオ信号の第2の供給源と、
    前記第2の供給源に接続され、前記データ・モジュールと前記テレビジョンのビデオとオーディオ信号とを含む複合信号を生成するためのマルチプレクサと
    をさらに具えたことを特徴とする請求項13に記載の中央コンピュータ・システム。
  15. 前記第1の供給源はオブジェクトファイル内のシンボル・テーブルであることを特徴とする請求項12に記載の中央コンピュータ・システム。
  16. 中央コンピュータ・システムと、遠隔コンピュータ・システムと、前記中央コンピュータ・システムおよび前記遠隔コンピュータ・システムの間に接続された伝送リンクを含むマルチメディア送信システムにおいて、前記中央コンピュータ・システムを動作させるための方法であって、
    シンボル・テーブルを含むオブジェクトファイルを生成するステップと、
    前記オブジェクトファイルを走査して複数のデータ単位を含むデータセクションであってデータ単位は、アドレス可能な最小のデータ単位と該最小のデータ単位より長いデータ単位のいずれかであり、それぞれの長いデータ単位は複数の前記最小のデータ単位を含むデータセクションを含むモジュールを生成するステップと、
    前記シンボル・テーブルを走査して前記モジュールにスワップセクションを生成するステップであって、前記スワップセクション前記データセクション前記長いデータ単位が記憶されている相対ロケーションを表すデータを含むステップと、
    前記モジュールを表わす信号を生成するステップと、
    前記伝送リンク経由して、前記遠隔コンピュータ・システムに前記モジュールを表わす信号を送信するステップと
    を含むことを特徴とする方法。
  17. 前記中央コンピュータ・システムはオーディオ信号供給源とビデオ信号供給源を含み、前記モジュールを表わす信号を生成するステップの後で、前記オーディオ信号と、前記ビデオ信号と、前記モジュールを表わす信号を多重化して複合AVI信号を形成するステップをさらに含むことを特徴とする請求項16に記載の方法。
  18. 複数のデータ単位を含むデータセクションであって、各データ単位はアドレス可能な最小のデータ単位と該最小のデータ単位より長いデータ単位のいずれかでありそれぞれの長いデータ単位は複数の前記最小のデータ単位を含むデータセクションと、前記データセクション前記長いデータ単位が記憶されている相対ロケーションを表すデータを含むスワップセクションとを含むモジュールを表わす信号を生成するための中央コンピュータ・システムと、遠隔コンピュータ・システムと、前記中央コンピュータ・システムおよび前記遠隔コンピュータ・システムの間に接続され前記中央コンピュータ・システムから前記遠隔コンピュータ・システムへ前記モジュールを表わす信号を送信するための伝送リンクとを含むマルチメディア送信システムにおいて、前記遠隔コンピュータ・システムを動作させるための方法であって、
    前記モジュールを表わす信号を受信するステップと、
    前記モジュールを表わす信号から前記データセクションを抽出するステップと、
    前記モジュールを表わす信号から前記スワップセクションを抽出するステップと、
    前記スワップセクションのデータをトラバースするステップと、
    前記長いデータ単位の1つを含むと識別された前記データセクションのそれぞれの相対ロケーションにおいて、前記長いデータ単位に含まれる最小のデータ単位をスワップするステップと
    を具えたことを特徴とする方法。
  19. 前記中央コンピュータ・システムは、前記モジュールを表わす信号、ビデオ信号とオーディオ信号組み合わせた複合オーディオ/ビデオ/対話型(AVI)信を生成し、前記受信ステップが、
    前記複合AVI信号を受信するステップと、
    前記オーディオ信号、前記ビデオ信号、および前記モジュールを表わす信号を前記複合AVI信号から分離するステップと、
    前記オーディオ信号成分と前記ビデオ信号成分を使用する手段に供給するステップと
    を含むことを特徴とする請求項18に記載の方法。
  20. 記スワップするステップは、前記長いデータ単位に含まれる最小のデデータ単位の順序を反転するステップを含むことを特徴とする請求項18に記載の方法。
JP17140996A 1995-06-30 1996-07-01 中央演算処理装置へフォーマット済みデータを供給するための装置 Expired - Lifetime JP3884102B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US08/497,492 US5778406A (en) 1995-06-30 1995-06-30 Apparatus for delivering CPU independent data for little and big endian machines
US497492 1995-06-30

Publications (2)

Publication Number Publication Date
JPH0934817A JPH0934817A (ja) 1997-02-07
JP3884102B2 true JP3884102B2 (ja) 2007-02-21

Family

ID=23977110

Family Applications (1)

Application Number Title Priority Date Filing Date
JP17140996A Expired - Lifetime JP3884102B2 (ja) 1995-06-30 1996-07-01 中央演算処理装置へフォーマット済みデータを供給するための装置

Country Status (9)

Country Link
US (1) US5778406A (ja)
EP (1) EP0751655B1 (ja)
JP (1) JP3884102B2 (ja)
KR (1) KR100397873B1 (ja)
CN (1) CN1158608C (ja)
DE (1) DE69626726T2 (ja)
MX (1) MX9602530A (ja)
SG (1) SG40881A1 (ja)
TW (1) TW299408B (ja)

Families Citing this family (27)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6835898B2 (en) * 1993-11-16 2004-12-28 Formfactor, Inc. Electrical contact structures formed by configuring a flexible wire to have a springable shape and overcoating the wire with at least one layer of a resilient conductive material, methods of mounting the contact structures to electronic components, and applications for employing the contact structures
US5778406A (en) * 1995-06-30 1998-07-07 Thomson Consumer Electronics, Inc. Apparatus for delivering CPU independent data for little and big endian machines
US6122669A (en) * 1997-02-14 2000-09-19 Advanced Micro Devices, Inc. Method and apparatus for auto-incrementing through table and updating single register in memory
KR100313758B1 (ko) * 1997-04-16 2001-12-28 박종섭 패킷데이터스왑장치
US6578193B1 (en) * 1998-03-24 2003-06-10 Novell, Inc. Endian-neutral loader for interpretive environment
US6351750B1 (en) * 1998-10-16 2002-02-26 Softbook Press, Inc. Dynamic conversion of byte ordering for use on different processor platforms
WO2000056067A1 (en) * 1999-03-18 2000-09-21 Webtv Networks, Inc. Application program interfaces for electronic program guide data services
US6904609B1 (en) 1999-03-18 2005-06-07 Microsoft Corporation Systems and methods for electronic program guide data services
US6990677B1 (en) 1999-03-18 2006-01-24 Microsoft Corporation Application program interfaces for electronic program guide data services
EP1058193A1 (en) * 1999-05-31 2000-12-06 Deutsche Thomson-Brandt Gmbh Method and apparatus for pre-processing data packets in a bus interface unit
DE60038264T2 (de) 1999-05-31 2009-04-23 Thomson Licensing Verfahren zur Vorverarbeitung von Datenpaketen in einer Busschnittstelle
EP1059590B1 (en) * 1999-05-31 2008-03-12 Thomson Licensing Method for pre-processing packets in a bus interface
US6691307B2 (en) * 1999-08-03 2004-02-10 Sun Microsystems, Inc. Interpreter optimization for native endianness
KR100565042B1 (ko) * 1999-09-10 2006-03-30 삼성전자주식회사 복수개의 디지털 a/v 프로그램에 대한 동시 녹화 및/또는 재생을 위한 장치 및 방법
US7164661B2 (en) 2000-04-14 2007-01-16 Hughes Networks Systems, Llc System and method for providing a two-way satellite system
US6965581B2 (en) 2000-04-14 2005-11-15 Hughes Electronics Corp. Transceiver in a two-way satellite system
US6650869B2 (en) 2000-04-14 2003-11-18 Hughes Electronics Corporation System and method for managing return channel bandwidth in a two-way satellite system
US7463582B2 (en) 2000-04-14 2008-12-09 Hughes Network Systems, Llc System and method for scaling a two-way satellite system
US6987741B2 (en) 2000-04-14 2006-01-17 Hughes Electronics Corporation System and method for managing bandwidth in a two-way satellite system
US6441782B2 (en) 2000-04-14 2002-08-27 Hughes Electronics Corporation Method and system of directing an antenna in a two-way satellite system
US20010048669A1 (en) * 2000-04-14 2001-12-06 Frank Kelly System interfaces in a two-way satellite system
US7031622B2 (en) * 2002-06-07 2006-04-18 Canon Kabushiki Kaisha Memory storing information relating to the condition of a cartridge, and image forming apparatus and cartridge having such memory
US7552427B2 (en) * 2004-12-13 2009-06-23 Intel Corporation Method and apparatus for implementing a bi-endian capable compiler
JP4437464B2 (ja) * 2005-06-01 2010-03-24 株式会社ルネサステクノロジ 半導体装置及びデータ処理システム
US8856851B2 (en) * 2008-12-19 2014-10-07 David Marshall Davis Apparatus and method for controlling a network-connected device in one peer network from an infrared device connected to another peer network using TCP/IP and infrared signals
CN102228343B (zh) * 2011-06-30 2013-01-02 苏州托克斯冲压设备有限公司 倾斜式抽屉
CN112835842B (zh) * 2021-03-05 2024-04-30 深圳市汇顶科技股份有限公司 端序处理方法、电路、芯片以及电子终端

Family Cites Families (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB2229832B (en) * 1989-03-30 1993-04-07 Intel Corp Byte swap instruction for memory format conversion within a microprocessor
EP0470570B1 (en) * 1990-08-09 1997-01-29 Silicon Graphics, Inc. Method and apparatus for byte order switching in a computer
US5389963A (en) * 1992-02-05 1995-02-14 Dynacom, Inc. System for selectively interconnecting audio-video sources and receivers
JP3187539B2 (ja) * 1992-07-28 2001-07-11 株式会社東芝 データ転送装置
EP0629303A1 (en) * 1992-12-21 1994-12-21 Olivetti Advanced Technology Center, Inc. Apparatus, system and method for facilitating communication between components having different byte orderings
DE69413521T2 (de) * 1993-02-11 1999-02-25 Thomson Multimedia Sa Multimedia-verteilung und multimedia-spieler
US5519842A (en) * 1993-02-26 1996-05-21 Intel Corporation Method and apparatus for performing unaligned little endian and big endian data accesses in a processing system
US5450140A (en) * 1993-04-21 1995-09-12 Washino; Kinya Personal-computer-based video production system
US5524256A (en) * 1993-05-07 1996-06-04 Apple Computer, Inc. Method and system for reordering bytes in a data stream
US5574923A (en) * 1993-05-10 1996-11-12 Intel Corporation Method and apparatus for performing bi-endian byte and short accesses in a single-endian microprocessor
US5563648A (en) * 1994-04-28 1996-10-08 Thomson Consumer Electronics, Inc. Method for controlling execution of an audio video interactive program
US5581706A (en) * 1994-06-30 1996-12-03 Rca Thomson Licensing Corporation Method forming an audio/video interactive data signal
US5928349A (en) * 1995-02-24 1999-07-27 International Business Machines Corporation Mixed-endian computing environment for a conventional bi-endian computer system
US5687337A (en) * 1995-02-24 1997-11-11 International Business Machines Corporation Mixed-endian computer system
US5634013A (en) * 1995-05-03 1997-05-27 Apple Computer, Inc. Bus bridge address translator
US5778406A (en) * 1995-06-30 1998-07-07 Thomson Consumer Electronics, Inc. Apparatus for delivering CPU independent data for little and big endian machines

Also Published As

Publication number Publication date
EP0751655A3 (en) 1999-03-24
US5778406A (en) 1998-07-07
EP0751655B1 (en) 2003-03-19
DE69626726D1 (de) 2003-04-24
CN1158608C (zh) 2004-07-21
JPH0934817A (ja) 1997-02-07
TW299408B (ja) 1997-03-01
CN1177774A (zh) 1998-04-01
KR100397873B1 (ko) 2004-06-24
SG40881A1 (en) 1997-06-14
EP0751655A2 (en) 1997-01-02
KR970002688A (ko) 1997-01-28
DE69626726T2 (de) 2003-11-06
MX9602530A (es) 1998-04-30

Similar Documents

Publication Publication Date Title
JP3884102B2 (ja) 中央演算処理装置へフォーマット済みデータを供給するための装置
MXPA96002530A (en) Apparatus for delivering formatted data to center processing units
US6141002A (en) System and method for downloading and rendering glyphs in a set top box
KR100455011B1 (ko) 정값화처리및포화연산처리로이루어진라운딩처리를적합하게행할수있는프로세서
US6016395A (en) Programming a vector processor and parallel programming of an asymmetric dual multiprocessor comprised of a vector processor and a risc processor
CN110675256A (zh) 部署和执行智能合约的方法及装置
EP0829817A1 (en) Download of interpreter to a printer
GB2293467A (en) Trace analysis of data processing
CN101329665A (zh) 解析标记语言文档的方法和解析器
KR100537258B1 (ko) 디버그지원장치,프로그램번역장치,컴퓨터판독가능한디버그지원프로그램을기록한기록매체,프로그램번역프로그램을기록한기록매체
IE920745A1 (en) System and method for automatically interfacing call¹conventions between two dissimilar program units
CN112511551B (zh) 面向多种类型数据流的通信应用层协议解析方法及系统
US20070050682A1 (en) Processor and debugging device
EP0055392A2 (en) Microprogrammed control unit with multiple branch capability
US7024538B2 (en) Processor multiple function units executing cycle specifying variable length instruction block and using common target block address updated pointers
US6314564B1 (en) Method for resolving arbitrarily complex expressions at link-time
US3938103A (en) Inherently micro programmable high level language processor
US5313632A (en) Method for processing data in a distributed processing system
US5838971A (en) Process for implementing dynamic data types in distributed computing networks using an OSF/DCE platform
EP0945795B1 (en) Computer system having a multi-pointer branch instruction and method
US8464235B2 (en) Adaptive production of assembler
US5953021A (en) Microprocessor system for data channel extraction
US20040237075A1 (en) Compiler device, method, program and recording medium
US5886712A (en) Data channel extraction in a microprocessor
Keith et al. Design and implementation of NABTS teletext decoder software

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20060421

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20060721

RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20060721

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20060727

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20060815

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: 20061006

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20061106

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20061109

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20061116

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: 20091124

Year of fee payment: 3

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20101124

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20111124

Year of fee payment: 5

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20121124

Year of fee payment: 6

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20121124

Year of fee payment: 6

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20131124

Year of fee payment: 7

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

EXPY Cancellation because of completion of term