DE69626726T2 - Multimedia-Übertragungssystem - Google Patents

Multimedia-Übertragungssystem

Info

Publication number
DE69626726T2
DE69626726T2 DE69626726T DE69626726T DE69626726T2 DE 69626726 T2 DE69626726 T2 DE 69626726T2 DE 69626726 T DE69626726 T DE 69626726T DE 69626726 T DE69626726 T DE 69626726T DE 69626726 T2 DE69626726 T2 DE 69626726T2
Authority
DE
Germany
Prior art keywords
data
signal
module
longer
data units
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
DE69626726T
Other languages
English (en)
Other versions
DE69626726D1 (de
Inventor
Pierre Mathias Willard
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
OpenTV Inc
Original Assignee
OpenTV Inc
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 OpenTV Inc filed Critical OpenTV Inc
Application granted granted Critical
Publication of DE69626726D1 publication Critical patent/DE69626726D1/de
Publication of DE69626726T2 publication Critical patent/DE69626726T2/de
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

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)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Computer Hardware Design (AREA)
  • Computer Security & Cryptography (AREA)
  • Software Systems (AREA)
  • Computer And Data Communications (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)
  • Multi Processors (AREA)

Description

  • Die vorliegende Erfindung betrifft Multimedia-Vorrichtungen wie z. B. ein interaktives Fernsehübertragungssystem zum Weitersenden von Daten in einem gemeinsamen Format zu Zentraleinheiten (CPUs), die auf Little-Endian- oder Big-Endian- Weise arbeiten.
  • Fast alle heutigen Computersysteme beinhalten ein Speichersystem, das separat adressierbare Stellen für Datenbytes (8-Bit-Einheiten) hat, was bedeutet, dass das Byte die kleinste adressierbare Dateneinheit ist. Auf längere Dateneinheiten, die Wörter (16 Bit) und/oder Langwörter (32 Bit) genannt werden können, greifen CPUs als Bytesequenzen an Nachbarspeicherstellen zu und verarbeiten und speichern sie dann als solche. CPUs wenden beim Zugreifen auf und Speichern von solche(n) Dateneinheiten eine von zwei Methoden an. Eine erste Methode besteht darin, eine längere Dateneinheit von ihrem niedrigstwertigen Byte bis zu ihrem höchstwertigen Byte an aufsteigenden Speicheradressen zu speichern. Eine CPU, die mit dieser Methode auf längere Dateneinheiten zugreift und sie speichert, arbeitet auf eine Weise, die allgemein mit "Little Endian" bezeichnet wird. Eine zweite Methode besteht darin, eine längere Dateneinheit von ihrem höchstwertigen bis zu ihrem niedrigstwertigen Byte an aufsteigenden Speicheradressen zu speichern. Eine CPU, die mit dieser Methode auf längere Dateneinheiten zugreift und sie speichert, arbeitet auf eine Weise, die allgemein als "Big Endian" bezeichnet wird. TABELLE 1
  • Tabelle 1 illustriert ein Beispiel für die Speicherung der Langwort- (32 Bit) Variablen 0 · 12345678 an der Speicherstelle 0 · 1000 in der Little-Endian- und der Big- Endian-Anordnung. Das in Tabelle 1 veranschaulichte System beinhaltet einen Speicher, der auf Byte-Ebene adressierbar ist. Das heißt, ein Byte ist die kleinste adressierbare Dateneinheit, oder anders ausgedrückt, jedes Byte wird an einer separat adressierbaren Stelle gespeichert. Die Langwortvariable 0 · 12345678 wird an sequenziellen Speicherstellen gespeichert, beginnend an der Stelle 0 · 1000. In einem Little-Endian- System wird das niedrigstwertige Byte (d. h. 0 · 78) an der niedrigsten Speicherstelle (d. h. 0 · 1000) gespeichert, wobei aufeinander folgend höherwertige Bytes an aufeinander folgenden Speicherstellen gespeichert werden. In einem Big-Endian-System wird das höchstwertige Byte (d. h. 0 · 12) an der niedrigsten Speicherstelle (d. h. 0 · 1000) gespeichert, wobei aufeinander folgend niedrigerwertige Bytes an aufeinander folgenden Speicherstellen gespeichert werden.
  • Es ist für die ordnungsgemäße Ausführung eines Programms wichtig, dass die Daten in der richtigen Anordnung für die das Programm ausführende CPU im Speicher gespeichert werden. Dies ist bei derzeitigen Systemen kein Problem, weil jede CPU Programmentwicklungstools zum Übersetzen von Quellprogrammen (z. B. Assemblersprache oder eine höhere Sprache) in die systemspezifische Sprache für diese CPU enthält, einschließlich des Setzens konstanter oder veränderlicher Anfangsdaten im richtigen Format in den Speicher. Wenn die CPU eine Little-Endian-CPU ist, geben diese Tools Daten in dem für diese CPU geeigneten Little-Endian-Format aus. Ebenso gilt, wenn die CPU eine Big-Endian-CPU ist, dann geben diese Tools Daten in dem für diese CPU geeigneten Big-Endian-Format aus.
  • Es wurden jedoch kürzlich verteilte Systeme wie (interaktive) Multimedia-Systeme vorgeschlagen, bei denen Computerprogramme von einer Zentralstelle zu Fernstellen übertragen werden. Die Fern-CPU, und insbesondere das von der Fern-CPU für längere Dateneinheiten verwendete Endian-Format, ist der Zentralstelle nicht bekannt. In der Tat wird erwartet, dass beide Endian-Formate verwendende CPUs das übertragene Computerprogramm empfangen und ausführen können. Es wurden insbesondere interaktive Fernsehsysteme vorgeschlagen, in denen Video-, Audio- und Computerprogramm- Komponenten von einer Zentralstelle aus über eine Satellitenverbindung zu individuellen Teilnehmerstellen ausgestrahlt werden. Jede Teilnehmerstelle hat einen Fernsehempfänger zum Anzeigen der empfangenen Video- und Audioinformationen sowie eine CPU zum Ausführen der empfangenen Computerprogramminformationen. Verschiedene Teilnehmerstellen können unterschiedliche CPUs haben, die unterschiedliche Endian- Formate benutzen.
  • Es ist vorgesehen, dass der Codeteil der Computerprogramme Zwischencode ist, der von einem auf der CPU an der Teilnehmerstelle implementierten Interpreter interpretiert wird. Es wird jedoch erwartet, dass der CPU jeder Teilnehmerstelle bestimmte vorcodierte Routinen für die Durchführung üblicher Aufgaben zur Verfügung stehen. Diese Routinen werden im systemspezifischen Code der CPU an der Teilnehmerstelle implementiert, um die Ausführungsgeschwindigkeit zu maximieren. Daten, auf die diese systemspezifischen Code-Routinen zugreifen, müssen im Endian-Format dieser CPU gespeichert werden.
  • Eine Lösung könnte darin bestehen, zwei Versionen des Computerprogramms von der Zentralstelle zu übertragen: eine für Big-Endian-CPUs und eine zweite für Little- Endian-CPUs. Diese Lösung verlangt jedoch, dass alle Computerprogrammdaten zweimal über die Satellitenverbindung übertragen werden, einmal im Big-Endian-Format und ein zweites Mal im Little-Endian-Format. Dies ist Bandbreitenvergeudung. Es ist wünschenswert, Daten nur einmal über die Satellitenverbindung zu übertragen, aber diese Daten für CPUs nützlich zu machen, die sowohl im Big-Endian- als auch im Little-Endian- Format arbeiten.
  • Aus der WO 94/15269 ist ein System bekannt, das es ermöglicht, dass eine Komponente mit einer ersten Byte-Ordnung Informationen zu einer anderen Komponente mit einer anderen Byte-Ordnung überträgt. Wie leicht sich diese Informationen übertragen lassen, hängt davon ab, wie sich die Byte-Ordnungen entsprechen.
  • Gemäß einem Aspekt der vorliegenden Erfindung wird ein verteiltes Multimedia- Computersystem bereitgestellt, das Folgendes umfasst: einen Zentralstellencomputer zum Erzeugen eines Signals, das ein Modul repräsentiert, das Folgendes umfasst: einen Datenteil, umfassend eine Mehrzahl von Dateneinheiten, wobei jede Dateneinheit entweder eine kleinste adressierbare Dateneinheit oder eine längere Dateneinheit ist, wobei jede längere Dateneinheit eine Mehrzahl von kleinsten adressierbaren Dateneinheiten umfasst; und einen Umlagerungsteil, umfassend Daten, die Stellen mit längeren Dateneinheiten innerhalb des Datenteils identifizieren; ein Fernstellencomputersystem, das auf das ein Modul repräsentierende Signal anspricht und einen Lader zum Extrahieren des Moduls und zum Umlagern der kleinsten adressierbaren Dateneinheiten längerer Dateneinheiten in dem Datenteil an Stellen enthält, die von den Daten im Umlagerungsteil identifiziert werden; und eine Übertragungsverbindung zum Übertragen des ein Modul repräsentierenden Signals vom Zentralstellencomputersystem zum Fernstellencomputersystem.
  • Gemäß einem zweiten Aspekt der Erfindung wird ein Computersystem bereitgestellt, das Folgendes umfasst: einen Empfänger, eine Quelle eines Signalmoduls, das Folgendes umfasst: einen Datenteil, der eine Mehrzahl von Dateneinheiten umfasst, wobei jede Dateneinheit entweder eine kleinste adressierbare Dateneinheit oder eine längere Dateneinheit ist, wobei jede längere Dateneinheit eine Mehrzahl von kleinsten adressierbaren Dateneinheiten umfasst; und einen Umlagerungsteil, umfassend Daten, die Stellen längerer Dateneinheiten innerhalb des Datenteils identifizieren; und ein Laderprogramm, das in einem Fernstellencomputer resident ist, um den genannten Fernstellencomputer so zu konditionieren, dass er die kleinsten adressierbaren Dateneinheiten längerer Dateneinheiten im Datenteil an Stellen umlagert, die durch die Daten im Umlagerungsteil identifiziert werden.
  • Gemäß einem dritten Aspekt der Erfindung wird ein Zentralstellencomputersystem bereitgestellt, das Folgendes umfasst: eine Quelle von Programmdaten des Computers; einen Postlinker, der mit der Computerprogrammdatenquelle gekoppelt ist, um die genannten Programmdaten zu scannen und ein Datenmodul zu erzeugen, das Folgendes umfasst: einen Datenteil, umfassend eine Mehrzahl von Dateneinheiten, wobei jede Dateneinheit entweder eine kleinste adressierbare Dateneinheit oder eine längere Dateneinheit ist; wobei jede längere Dateneinheit eine Mehrzahl von kleinsten adressierbaren Dateneinheiten umfasst; und als Reaktion auf das Format von Daten im Datenteil Erzeugen eines Umlagerungsteils, umfassend Daten, die Stellen längerer Dateneinheiten innerhalb des Datenteils identifizieren.
  • Gemäß einem vierten Aspekt der Erfindung wird ein Verfahren zum Betreiben eines Zentralcomputersystems bereitgestellt, umfassend die folgenden Schritte: Erzeugen einer Objektdatei, die eine Symboltabelle beinhaltet; Scannen der Objektdatei zum Erzeugen eines Moduls, das einen Datenteil beinhaltet, der eine Mehrzahl von Dateneinheiten enthält, wobei jede Dateneinheit entweder eine kleinste adressierbare Dateneinheit oder eine längere Dateneinheit ist, wobei jede längere Dateneinheit eine Mehrzahl von kleinsten adressierbaren Dateneinheiten umfasst; Scannen der Symboltabelle zum Erzeugen eines Umlagerungsteils in dem Modul, wobei der Umlagerungsteil Daten beinhaltet, die Stellen längerer Dateneinheiten in dem Datenteil identifizieren; Erzeugen eines das Modul repräsentierenden Signals; und Senden des das Modul repräsentierenden Signals über eine Übertragungsverbindung zu einem Ferncomputersystem.
  • KURZE BESCHREIBUNG DER ZEICHNUNGEN
  • In den Zeichnungen zeigt:
  • Fig. 1 ein Blockdiagramm eines die vorliegende Erfindung ausgestaltenden verteilten Computersystems;
  • Fig. 2 ein Speicherlayout-Diagramm, das die Anordnung eines Datenteils und alternative entsprechende Umlagerungsdatenteile veranschaulicht;
  • Fig. 3 ein Speicherlayout-Diagramm, das die Codierung eines Umlagerungsteils gemäß einer Ausgestaltung der vorliegenden Erfindung veranschaulicht; und.
  • Fig. 4 ein Speicherlayout-Diagramm, das ein Beispiel für einen Datenteil und den entsprechenden Umlagerungsteil veranschaulicht, der gemäß Fig. 3 codiert ist.
  • Fig. 1 ist ein Blockdiagramm eines die vorliegende Erfindung ausgestaltenden verteilten Computersystems. Gemäß Fig. 1 beinhaltet eine Zentralstelle ein Computersystem zur Herstellung von Computerprogrammcode und Daten für die Übertragung zu Fernstellen. Das Computerprogrammsystem umfasst eine Zentraleinheit (CPU), einen Lese/Schreib-Speicher (RAM), einen Nur-Lese-Speicher (ROM) sowie Ein- und Ausgabegeräte wie CRT-Terminals und Drucker, die auf eine bekannte Weise über einen Systembus gekoppelt sind (alle nicht dargestellt). Das Computersystem umfasst ferner ein Massenspeichergerät 10, das ebenfalls auf eine bekannte Weise arbeitet und auf eine bekannte Weise mit dem Systembus gekoppelt ist.
  • Beim Betrieb wird das Computersystem von einem Programmierer zum Erzeugen von Computerprogrammen verwendet, die von der Zentralstelle zu einer Mehrzahl von Fernstellen verteilt werden. Wie bei der Programmentwicklung üblich ist, verwendet der Anwendungsprogrammierer das Computersystem auf eine bekannte Weise zum Erzeugen eines Quelldokuments (nicht dargestellt), das aus einer oder mehreren Quell- und/oder Steuerdateien (nicht dargestellt) bestehen kann. Das Quelldokument wird auf bekannte Weise von verschiedenen Programmen (z. B. Compiler) verarbeitet, die auf dem Computersystem ablaufen und die jeweils Zwischenergebnisse erzeugen können, um Endmodule zu generieren, die zu den Fernstellen verteilt werden können. Das Massenspeichergerät 10 speichert Daten, die die Zwischenergebnisse des Programmentwicklungsprozesses repräsentieren, z. B. ein oder mehrere Objektdateien wie z. B. eine Objektdatei 12; und ein oder mehrere Endmodule des Programmentwicklungsprozesses wie z. B. das Modul 14. In Fig. 1 erhält eine Postlinker- Routine 20 als Eingang das Objektmodul 12 und erzeugt als Ausgang das Modul 14 auf eine Weise, die nachfolgend ausführlicher beschrieben wird.
  • Bei einem interaktiven Fernsehsystem entwickelt der Anwendungsprogrammierer beispielsweise Anwendungsprogramme mithilfe von Programmentwicklungstools in der Zentralstelle, um die Zuschauerinteraktion mit ausgestrahlten Fernsehsignalen zu beeinflussen. Eines der Zwischenergebnisse der Programmentwicklungstools ist die Objektdatei 12. Die Objektdatei 12 beinhaltet ablauffähigen Code repräsentierende Daten (nicht dargestellt) und eine Symboltabelle 122. Die Symboltabelle enthält Daten in Bezug auf jeden Variablennamen, ihren Datentyp und die Adresse im Speicher, an der diese Variable bei der Ausführung des Programms gespeichert wird. Die Symboltabelle 122 enthält ferner Informationen, die jeden Datentyp in der Symboltabelle 122 auf Grunddatentypen wie Byte, Wort und Langwort wie oben beschrieben bezieht.
  • Der Postlinker 20 verarbeitet auf bekannte Weise die Daten in der Objektdatei 12, die den ablauffähigen Code (nicht dargestellt) repräsentiert, und generiert Zwischencode einer bekannten Struktur in einem Zwischencodeteil 142 des Moduls 14. Der Postlinker 20 analysiert ferner auf eine bekannte Weise die Informationen in der Symboltabelle 122 des Objektmoduls 12 und generiert einen Datenteil 144 mit Daten, die ein Bild der Daten in der Symboltabelle 122 repräsentieren, wie sie in einem Speicher gespeichert würden, wenn der im Codeteil 142 des Moduls 14 enthaltene Programmcode an der Fernstelle ausgeführt wird.
  • Das Modul 14 (und alle anderen Module, nicht dargestellt) wird/werden über die Übertragungsverbindung 30 zu der Mehrzahl von Fernstellen übertragen. Die Übertragungsverbindung 30 besteht aus bekannten Elementen wie z. B. mit dem Systembus des Zentralstellencomputersystems gekoppelte Ausgangsadapter, Scheduler, Paketierer, Multiplexer, HF-Satellitenaufwärtsverbindungen, Satellitentransponder, HF- Satellitenabwärtsverbindungen, Demultiplexer und mit einem Systembus eines Computersystems an der Fernstelle gekoppelte Eingangsadapter (alle nicht dargestellt). Die Übertragungsverbindung arbeitet auf eine bekannte Weise, um das Modul 14 nach Bedarf von der Zentralstelle zur Fernstelle zu übertragen.
  • In einem interaktiven Fernsehsystem enthält die Zentralstelle auch eine Quelle von Fernsehvideo- und -audiosignalen, die das von dem Modul 14 (und allen anderen Modulen, nicht dargestellt) repräsentierte Computerprogramm begleiten sollen. Die Fernsehvideo- und -audiosignale werden paketiert und zusammen mit dem Modul 14 zu einem zusammengesetzten interaktiven Fernsehsignal multiplexiert. Dieses zusammengesetzte Signal wird auf eine bekannte Weise, z. B. über eine Satellitenverbindung, zu allen Fernstellen ausgestrahlt. Die Fernstellen haben Empfänger, einschließlich Detektoren zum Erkennen/Bereitstellen dieses zusammengesetzten Signals, und z. B. Umkehrtransportprozessoren zum Demultiplexieren des/der Moduls/e von den Fernsehvideo- und -audiosignalen. Die Fernsehvideo- und -audiosignale werden auf eine bekannte Weise verarbeitet und Systemen präsentiert, die diese Signale verwenden können. So können die Fernsehvideo- und -audiosignale zu einem Fernsehempfänger oder einem Videorecorder an einer Teilnehmerstelle gesendet werden. Ferner ist es möglich, dass das Fernstellencomputersystem das durch das/die Modul(e) repräsentierte Computerprogramm ausführt und, infolge der Programmausführung, Bildvideosignale und Tonaudiosignale generiert. Diese computergenerierten Video- und Audiosignale können jeweils mit den Fernsehvideo- und -audiosignalen kombiniert werden, um eine kombinierte Fernseh/Computer-Multimedia-Darstellung zu generieren. Ferner kann ein Benutzer mit dem ablaufenden Computerprogramm (z. B. über eine Fernbedienung) interagieren, um mit der angezeigten Multimedia-Darstellung zu interagieren. Die Fachperson im Bereich des Designs von interaktiven Fernsehsystemen wird verstehen, wie alle die oben beschriebenen Vorgänge durchgeführt werden können.
  • Wie oben beschrieben, hat jede Fernstelle ein Computersystem mit einer CPU 70, einem RAM 50, einem ROM 60 sowie verschiedenen Ein- und Ausgabegeräten (nicht dargestellt), die alle auf bekannte Weise über einen Systembus (nicht dargestellt) miteinander verbunden sind und auf eine bekannte Weise arbeiten. Ein Eingabegerät (nicht dargestellt) verbindet den Ausgang der Übertragungsverbindung 30 mit dem Systembus. Eine auf der CPU ablaufende Laderverarbeitungsroutine 40 steuert den Betrieb dieses Eingabegerätes. Wenn ein gewünschtes Modul von der Übertragungsverbindung 30 empfangen wird, überträgt der Lader 40 den Codeteil 52 und den Datenteil 54 zum RAM 50.
  • Nach vollständiger Übertragung des empfangenen Moduls zum RAM 50 greift eine permanent im ROM 60 gespeicherte Interpreter-Routine 62 auf den Zwischencode (oben beschrieben) im Codeteil 52 zu und führt ihn durch Interpretieren auf eine bekannte Weise aus. Einige Anweisungen im Codeteil 52 beziehen sich auf im Datenteil 54 gespeicherte Daten. Beim Ausführen dieser Anweisungen greift der Interpreter 62 auf die gewünschten Daten im Datenteil 54 zu und führt das Programm aus.
  • Es ist bekannt, das Interpreter sehr langsame Programmausführungsmittel sind.
  • Geschwindigkeit ist zwar nicht immer wichtig, aber es gibt doch Funktionen, bei denen sie wünschenswert ist. Um solche Funktionen auszuführen, beinhaltet das Computersystem an der Fernstelle eine Bibliothek 64 von Routinen, die in systemspezifischer Sprache der CPU an der Fernstelle codiert sind.
  • Wie jedoch oben beschrieben wurde, können jeweilige CPUs an verschiedenen Fernstellen mit unterschiedlichen Endian-Formaten arbeiten. Das heißt, einige Fern-CPUs können im Big-Endian-Format arbeiten, während andere im Little-Endian-Format arbeiten können. Wenn der Datenteil in einem der Endian-Formate generiert und transportiert wird, zum Beispiel im Big-Endian-Format, dann können die systemspezifischen Bibliotheken 64 für Fern-CPUs, die im Big-Endian-Format arbeiten, auf im Datenteil 54 gespeicherte längere Dateneinheiten direkt mit den effizientesten verfügbaren systemspezifischen Multibyte-Lese- und Schreibanweisungen zugreifen. Aber die systemspezifischen Bibliotheken 64 von Fern-CPUs, die mit dem Little-Endian-Format arbeiten, müssen einzelbyteweise auf längere Dateneinheiten zugreifen und die Bytes umordnen, indem sie vom Big-Endian-Format ins Little-Endian-Format umgelagert werden, bevor die Daten selbst verarbeitet werden können. Dies trägt erheblich zum Overhead dieser Routinen bei, die möglichst schnell laufen müssen.
  • Gemäß den Grundsätzen der vorliegenden Erfindung beinhaltet das an der Zentralstelle generierte Modul 14 ferner einen Umlagerungsteil 146. Der Umlagerungsteil 146 enthält Daten, die anzeigen, wo längere Dateneinheiten im Datenteil 144 gespeichert werden. Der Postlinker 20 kann beim Analysieren der Symboltabelle 122 in der Objektdatei 12 ermitteln, wo diese längeren Dateneinheiten im Datenteil gespeichert werden. Der Postlinker 20 nimmt, wenn er eine längere Dateneinheit identifiziert, einen Eintrag in der Tabelle vor, um die relative Stelle im Datenteil 144 anzuzeigen, an der die längere Dateneinheit steht. Nach vollständiger Analyse der Objektdatei 12 werden diese Tabelle repräsentierende Daten im Umlagerungsteil 146 des Moduls 14 gespeichert und zusammen mit dem Zwischencodeteil 142 und dem Datenteil 144 über die Übertragungsverbindung 30 zu den Fernstellen übertragen.
  • In der illustrierten Ausgestaltung werden Daten ausschließlich im Big-Endian- Format im Datenteil 144 gespeichert. Der Umlagerungsteil 146 enthält Daten, die anzeigen, wo längere Dateneinheiten im Datenteil 144 gespeichert werden. An der Fernstelle speichert der Lader 40 den Codeteil 52, den Datenteil 54 und den Umlagerungsteil 56 des empfangenen Moduls im RAM 50. Wenn die CPU an der Fernstelle im Big-Endian-Format arbeitet, dann werden den Umlagerungsteil 56 enthaltende Stellen des RAM 50 nicht benötigt und können für anderweitige Verwendungszwecke freigegeben werden. Der Lader 40 kann dann die Vollendung seiner Funktion melden, und Interpreter 62 und systemspezifische Bibliothek 64 können jeweils in dem von der Fern-CPU verwendeten Big-Endian-Format auf die Daten zugreifen.
  • Wenn die CPU an der Fernstelle jedoch andererseits im Little-Endian-Format arbeitet, analysiert der Lader 40 vor dem Vollenden seines Prozesses die Daten im Umlagerungsteil 56. An jeder Stelle im Datenteil 54, die gemäß Anzeige durch den Umlagerungsteil 56 eine längere Dateneinheit enthält, lagert der Lader 40 die Bytes dieser Dateneinheit um und konvertiert so diese Dateneinheit aus dem Big-Endian-Format in das Little-Endian-Format. Wenn alle längeren Dateneinheiten in das Little-Endian-Format konvertiert sind, werden die den Umlagerungsteil 56 enthaltenden Stellen des RAM 50 nicht mehr benötigt und können für anderweitige Verwendungszwecke freigegeben werden. Dann kann der Lader 40 die Vollendung seiner Funktion melden, so dass Interpreter 62 und systemspezifische Bibliothek 64 mit der Ausführung beginnen können. Da sich jetzt alle Daten an dieser Fernstelle im Little-Endian-Format befinden, können die Routinen in der systemspezifischen Bibliothek 64 mit den effizientesten vorhandenen systemspezifischen Multibyte-Lese- und -Schreibanweisungen arbeiten.
  • Ein interaktives Fernsehsystem gemäß der vorliegenden Erfindung ermöglicht es, dass CPUs an Fernstellen, die im Big-Endian- und im Liale-Endian-Format arbeiten, auf übertragene Daten in ihren systemspezifischen Zuständen zugreifen, ohne dass die Daten zweimal von der Zentralstelle übertragen werden müssten, einmal im Big-Endian-Format und ein zweites Mal im Little-Endian-Format. Es ist lediglich die Erzeugung eines kleinen Umlagerungsteils in jedem Modul durch eine Postlinker-Routine an der Zentralstelle erforderlich; und ein zusätzlicher Schritt in der Laderroutine von Fernstellen, die CPUs enthalten, die in dem Endian-Format arbeiten, das sich von dem der übertragenen Daten unterscheidet, um die längeren Dateneinheiten vor der Vollendung des Ladevorgangs umzulagern.
  • Fig. 2 ist ein Speicherlayout-Diagramm, das die Anordnung eines Datenteils 144 sowie alternative entsprechende Umlagerungsdatenteile 146a und 146b illustriert. In Fig. 2 ist der Datenteil 144 als eine Spalte in der Mitte der Figur dargestellt. Jede Variable ist als ein Rechteck in dieser Spalte illustriert, und die Größe des Rechtecks entspricht der Größe der Variablen. Spezifisch ausgedrückt, jede der beiden oberen Variablen ist eine Byte- Variable; das dritte Wort ist eine Wort-Variable, die gemäß Darstellung aus zwei konsekutiven Bytes besteht; die vierte Variable ist eine Byte-Variable; die fünfte Variable ist eine Langwort-Variable, die gemäß Darstellung aus vier konsekutiven Bytes besteht; die sechste Variable ist eine Byte-Variable; und die siebte Variable ist eine Wort-Variable, die gemäß Darstellung aus zwei konsekutiven Bytes besteht. Der Datenteil 144 kann natürlich noch andere Variablen enthalten, die Byte-Variablen, Wort-Variablen oder Langwort- Variablen sein können.
  • Die Spalte auf der linken Seite der Figur illustriert eine erste Implementation eines Umlagerungsdatenteils 146a. In dieser Implementation gibt es einen Eintrag für jede Variable im Datenteil 144 in der Reihenfolge, in der sie im Datenteil erscheinen, wobei jeder Eintrag die Größe der entsprechenden Variablen anzeigt. Im Umlagerungsteil 146a gibt es sieben Einträge, die den im Datenteil 144 illustrierten sieben Variablen entsprechen. Der Inhalt jedes Eintrags ist mit einem Buchstaben angegeben, der den Typ der entsprechenden Variablen anzeigt. Spezifisch ausgedrückt, enthalten die beiden ersten Einträge den Indikator "B", um anzuzeigen, dass die beiden ersten Variablen Byte- Variablen sind. Der nächste Eintrag hat den Indikator "W", um anzuzeigen, dass die dritte Variable eine Wort-Variable ist. Der nächste Eintrag enthält den Indikator "B", um anzuzeigen, dass die vierte Variable eine Byte-Variable ist. Der nächste Eintrag hat den Indikator "L", um anzuzeigen, dass die fünfte Variable eine Langwort-Variable ist, und so weiter. Wie aus dieser Implementation ersichtlich ist, gibt es drei mögliche Längen für eine Variable (B, W oder L), so dass die Länge durch zwei Bits repräsentiert werden kann, und vier solcher Indikatoren können in ein einzelnes Byte gepackt werden.
  • Alternativ kann der Umlagerungsteil nur die Stelle der längeren Dateneinheiten im Datenteil enthalten. Dies wird im Umlagerungsteil 146b auf der rechten Seite von Fig. 2 illustriert. Der illustrierte Abschnitt des Datenteils 144 enthält drei längere Dateneinheiten, die von einem Endian-Format in das andere umgelagert werden müssten. Jeder Eintrag in dem in 146b illustrierten Umlagerungsteil enthält einen Relativzeigerwert, der auf die Stelle im Datenteil 144 einer längeren Dateneinheit sowie auf den Typ dieser Einheit zeigt. Spezifisch ausgedrückt, der erste Eintrag im Umlagerungsteil 146b enthält einen Zeiger auf die Stelle der dritten Variablen sowie eine Anzeige dafür, dass es sich um eine Wort- Variable (zwei Bytes) handelt. Der nächste Eintrag zeigt auf die fünfte Variable im Datenteil 144 und enthält einen Indikator, der anzeigt, dass diese Variable eine Langwort- Variable (vier Bytes) ist. Der nächste Eintrag zeigt auf die siebte Variable und enthält einen Indikator, der besagt, dass diese Variable eine Wort-Variable (zwei Bytes) ist. Jeder Eintrag in einem Umlagerungsteil gemäß dieser Implementation muss groß genug sein, um den Relativzeiger auf die Stelle im Datenteil sowie den Indikator für den Typ an dieser Stelle aufzunehmen. Es gibt jedoch nur für die längeren Dateneinheiten Einträge, nicht für jede Dateneinheit. Alternativ kann es separate Listen für jeden Variablentyp geben; d. h. eine Liste für die Wort-Variablen und eine separate Liste für Langwort-Variablen. Jeder Eintrag in jeder solchen Liste braucht lediglich den Relativzeiger auf die Stelle der Variablen im Datenteil 144 zu enthalten.
  • In beiden Implementationen analysiert der Postlinker 20 (Fig. 1) die Symboltabelle und generiert den Umlagerungsteil 146, um die Stellen im Datenteil. 144 der längeren Dateneinheiten wie oben beschrieben zu identifizieren. Der Lader 40 lädt zunächst den Umlagerungsteil 56 und durchläuft dann, falls notwendig, um das Endian-Format der längeren Dateneinheiten im Datenteil 54 zu ändern, die Daten im Umlagerungsteil 56, identifiziert die Stellen im Datenteil 54 der längeren Dateneinheiten und lagert die Bytes dieser Stellen um. Für einen Umlagerungsteil wie in 146a illustriert wird der gesamte Datenteil 144 abgetastet, und wenn der Eintrag im Umlagerungsteil 146a anzeigt, dass die Stelle eine längere Dateneinheit (eine Wort- oder Langwort-Variable) enthält, dann werden diese Bytes umgelagert. Für den Umlagerungsteil gemäß der Darstellung in 146b wird jeder Eintrag im Umlagerungsteil durch Umlagern der Bytes an der angezeigten Stelle im Datenteil 144 verarbeitet.
  • In modernen Programmiersprachen sind Variablen häufig komplexe Variablen, die aus Grundbyte-, Wort- und Langwort-Variablen wie oben beschrieben bestehen und zu Strukturen, Arrays, Arrays von Strukturen und/oder Arrays enthaltende Strukturen geordnet werden. Solche Datenanordnungen haben Wiederholungen von Daten desselben Typs oder Wiederholungen von Datentypmustern zur Folge. Die Größe des Umlagerungsteils kann durch besondere Codierung reduziert werden, um eine effiziente Darstellung wiederholter Variablentypen oder Variablenmuster zu erlauben.
  • Fig. 3 ist ein Speicherlayout-Diagramm, das die Codierung jeweiliger Abschnitte eines Umlagerungsteils 146 gemäß der vorliegenden Erfindung illustriert. Die Anordnung des Umlagerungsteils 146 gemäß Fig. 3 entspricht der im Umlagerungsteil 146a (von Fig. 2), in dem es einen Eintrag im Umlagerungsteil für jedes Byte im Datenteil gibt. Zusätzliche Kompression wird in einem Umlagerungsteil 146 gemäß Illustration in Fig. 3 erzielt, indem Wiederholungen von Daten desselben Typs und Wiederholungen von Datenmustertypen genutzt werden.
  • In Fig. 3 enthalten die Fernstellen CPUs, die drei Grundvariablentypen haben: Byte, Wort und Langwort, und die eine Ausrichtung der längeren Dateneinheiten (Wort und Langwort) verlangen. Das bedeutet, dass Byte-Variablen an jeder beliebigen Stelle im Speicher, Wort-Variablen nur an Byte-Stellen mit geradzahligen Adressen und Langwort- Variablen nur an Byte-Stellen mit durch vier teilbaren Adressen gespeichert werden können. Solche Anordnungen sind gut bekannt und werden von Fachpersonen im Computersystemdesign gut verstanden.
  • Spezielle Langwörter, Zeiger genannt, sind in Fig. 3 separat mit "P" bezeichnet.
  • Zeiger sind bekannte Programmierkonstrukte und werden während des Ladevorgangs besonders behandelt. Sie haben dieselbe Größe wie Langwörter, d. h. vier Bytes, sie dürfen nur an Byte-Stellen mit durch vier teilbaren Adressen gespeichert werden, und ihre Bytes müssen umgelagert werden, wenn das Endian-Format geändert werden muss. Darüber hinaus muss ihr Wert so geändert werden, dass er die absolute Stelle im RAM der Fernstelle reflektiert, an der der Datenteil gespeichert wird, ein mit Verschiebung bezeichneter Vorgang. Der Verschiebungsprozess ist bekannt und wird hier nicht ausführlicher beschrieben.
  • Die Anordnung von Daten im Datenteil wird im Umlagerungsteil 146 als eine Serie von Bytes repräsentiert, die in der nachfolgend beschriebenen Weise codiert wird. Das Schema zum Codieren eines in Fig. 3 illustrierten Umlagerungsteils I46 sieht zunächst den Datenteil (nicht dargestellt) als in ausgerichtete Langwörter unterteilt an. Fig. 3 zeigt links oben eine Tabelle 202, die die einzigen zulässigen Anordnungen von Byte-Variablen (mit "B" bezeichnet), ausgerichteten Wort-Variablen (mit "W" bezeichnet) und ausgerichteten Langwort-Variablen (mit "L" für Langwörter oder "P" für Zeiger bezeichnet) in einem ausgerichteten Langwort im Speicher anzeigt. Adressen auf der linken Seite der Tabelle 202 sind für Langwort-ausgerichtete (durch vier teilbar) Adressen im Datenteil illustrativ und sollen nicht die tatsächliche Adresse in einem Datenteil angeben.
  • Es ist ersichtlich, dass sich in einem ausgerichteten Langwort sechs zulässige Anordnungen von Variablen befinden. Der oberste Eintrag, auf der rechten Seite mit "0" nummeriert, illustriert, dass ein ausgerichtetes Langwort vier separate Byte-Variablen (B) enthalten kann. Der zweite Eintrag, mit "1" nummeriert, illustriert, dass ein ausgerichtetes Langwort zwei Byte-Variablen (B), gefolgt von einer Wort-Variablen (W), enthalten kann. Der dritte Eintrag, mit "2" nummeriert, illustriert, dass ein ausgerichtetes Langwort eine Wort-Variable (W), gefolgt von zwei Byte-Variablen (B), enthalten kann. Der vierte Eintrag, mit "3" nummeriert, illustriert, dass ein ausgerichtetes Langwort zwei Wort- Variablen (W) enthalten kann. Der fünfte Eintrag, mit "4" nummeriert, illustriert, dass ein ausgerichtetes Langwort eine Langwort-Variable (L) enthalten kann; und der sechste Eintrag, mit "5" nummeriert, illustriert, dass ein ausgerichtetes Langwort einen Zeiger (P) enthalten kann. Es sind keine anderen Anordnungen zulässig.
  • Gemäß Fig. 3a kann eine ausgerichtetes Langwort im Datenteil durch einen Eintrag im Umlagerungsteil 146 repräsentiert werden. Die Zahl auf der rechten Seite des Eintrags in Tabelle 202, die das Variablenmuster in einem solchen ausgerichteten Langwort repräsentiert, ist auf eine bekannte Weise in drei Bits binär codiert. Diese drei Bits werden in die drei höchstwertigen Bits (Bits 7 : 6 : 5) 206 des Eintrags 204 im Umlagerungsteil 146 gesetzt, der diesem ausgerichteten Langwort entspricht. Ein gewisses Maß an Kompression wird im Umlagerungsteil dadurch erzielt, dass zugelassen wird, dass jeder Eintrag 204 im Umlagerungsteil eine Anzahl von konsekutiven ausgerichteten Langwörtern im Speicher repräsentiert, die jeweils dasselbe Variablenmuster haben. Die übrigen Bits (Bits 4 : 3 : 2 : 1 : 0) 208 enthalten einen binär codierten numerischen Wert N, der die Zahl der Wiederholungen des Musters repräsentiert, das durch die drei höchstwertigen Bits repräsentiert wird. Der numerische Wert N kann einen Wert von 0 bis 31 haben. Dieser numerische Wert N repräsentiert die Zahl der Musterwiederholungen - 1. Ein numerischer Wert N von "0" repräsentiert einen Wiederholungswert von 1, d. h. ein einziges Auftreten des Musters 206 im Datenteil. Ein numerischer Wert N von "1" repräsentiert einen Wiederholungswert von 2, und ein numerischer Wert N von "31" repräsentiert einen Wiederholungswert von 32. Somit kann die Zahl der Wiederholungen des Musters, das durch den binär codierten Wert 206 repräsentiert wird, der durch einen einzelnen Byte-Eintrag 204 im Umlagerungsteil 146 repräsentiert werden kann, von 1 bis 32 befragen.
  • Wie oben beschrieben, können Variablen in einem Programm komplexe Kombinationen der Grunddatentypen einschließlich Strukturen, Arrays, Arrays von Strukturen und/oder Arrays enthaltende Strukturen sein. Diese komplexen Kombinationen werden aus Sequenzen von in einer vorgegebenen Weise angeordneten Grunddatentypen konstruiert sein. Die binären Werte, die nicht zum Codieren von Mustern aus Tabelle 202 verwendet werden, d. h. "6" und "7", werden zum Codieren von Sequenzen von Grunddatentypen bzw. Wiederholungen zuvor definierter Muster verwendet, die aus wiederholten Instanzen solcher Strukturen und Arrays resultieren können. Fig. 3b illustriert die Codierung eines Abschnitts des Umlagerungsteils 146, der eine Wiederholungssequenz von Mustern aus Tabelle 202 repräsentiert. Wenn eine solche Sequenz identifiziert wird (z. B. aus der Symboltabelle 122 durch den Postlinker 20 von Fig. 1), dann wird ein binär codierter Wert von "6" in die drei höchstwertigen Bits (7 : 6 : 5) eines ersten Bytes 210 im Umlagerungsteil 146 gesetzt, um anzuzeigen, dass dieser Eintrag im Umlagerungsteil 146 eine Sequenz und kein Muster von Grunddatentypen wie in Fig. 3a repräsentiert. Wie in Fig. 3a, sind die fünf geringstwertigen Bits im ersten Byte 210 ein binär codierter Wert N, der die Zahl der Wiederholungen der vorgegebenen Sequenz repräsentiert. In diesem Fall repräsentiert der binär codierte numerische Wert N die Anzahl der Wiederholungen, nämlich 2, der Sequenz. Somit kann die Zahl der Wiederholungen der identifizierten Sequenz 2 bis 33 betragen.
  • Das nächste Byte 212 im Umlagerungsteil enthält die Länge, 1, der Sequenz im Umlagerungsteil 146 und wird auf eine nachfolgend beschriebene Weise ermittelt. Auf das Sequenzlängenbyte 212 folgt eine Serie von Bytes 214, die wie oben mit Bezug auf Fig. 3a beschrieben codiert wurde. Die Anzahl der Bytes in der Serie 21 wird ermittelt, und eine Zahl N gleich der Anzahl von Bytes, 1, in der Serie wird binär codiert und wie oben beschrieben in das Sequenzlängenbyte 212 eingesetzt.
  • Wenn eine komplexe Struktur definiert wird, z. B. in der Symboltabelle 122 (von Fig. 1), dann kann der Postlinker 20 die Anordnung der Grunddatentypen ermitteln, die zum Repräsentieren dieser Struktur notwendig ist. Wann immer eine Instanz einer solchen Datenstruktur in der Symboltabelle 122 definiert wird, erfolgt ein Eintrag wie in Fig. 3b illustriert im Umlagerungsteil 146. Eine Array solcher Strukturen kann durch eine Anzahl von Wiederholungen dieser Datenstruktur repräsentiert werden, vorgegeben durch eine binär codierte Zahl N, die die Zahl der Wiederholungen, 2, repräsentiert, wie oben beschrieben wurde.
  • Wenn später eine andere Instanz dieses Datentyps in der Symboltabelle 122 (von Fig. 1) definiert wird, dann wird, anstatt den Sequenzeintrag, der zuvor gemäß Fig. 3b eingesetzt wurde, erneut einzusetzen, ein separater Eintrag, Rückzeigereintrag genannt, in den Umlagerungsteil 146 eingesetzt, der zurück auf den vorherigen Sequenzeintrag verweist. Fig. 3c illustriert die Codierung eines Rückzeigereintrags. In einem Rückzeigereintrag wird ein binärer Wert "7" zu den drei höchstwertigen Bits des ersten Bytes 216 codiert. Wie in Fig. 3a und in Fig. 3b, enthalten die fünf niedrigstwertigen Bits des ersten Bytes 216 eine binär codierte Zahl N, die die Zahl der Wiederholungen der zuvor definierten Sequenz repräsentiert, die durch den Rückzeigereintrag repräsentiert wird. In Fig. 3c ist die Zahl N die Anzahl der Wiederholungen, 2, und repräsentiert eine Wiederholungszahl von 2 bis 33.
  • Das nächste Byte 218 repräsentiert einen Relativzeiger im Umlagerungsteil 146 zurück auf den zuvor eingefügten Sequenzeintrag, wie in Fig. 3b beschrieben wurde. Der Relativzeiger repräsentiert die Zahl der Bytes zwischen dem aktuellen Rückzeigereintrag und dem zuvor definierten Sequenzeintrag. Dieser Relativzeiger zeigt auf das Sequenzlängenbyte 212 in dem zuvor definierten Sequenzeintrag, wie durch den Pfeil vom Relativrückzeiger-Byte 218 in Fig. 3c auf das Sequenzlängenbyte 212 in Fig. 3b illustriert wurde. Anhand des in Fig. 3 illustrierten Codierschemas lassen sich die Stellen der Grunddatentypen Bytes, Wörter und Langwörter in dem Datenteil leicht mit dem Lader 40 (von Fig. 1) durch Durchlaufen der Einträge im Umlagerungsteil 146 ermitteln. Längere Dateneinheiten: Wörter, Langwörter und Zeiger, können gefunden und ihre Bytes umgelagert werden, wenn das Endian-Format dieser Dateneinheiten geändert werden muss.
  • Fig. 4 ist ein Speicherlayout-Diagramm, dasein Beispiel für einen Datenteil 144 und einen entsprechenden Umlagerungsteil 146 illustriert, der gemäß Fig. 3 codiert ist. In Fig. 4 sind Abschnitte des Datenteils 144 auf der rechten Seite der Figur illustriert, und entsprechende Teile des Umlagerungsteils 146 sind auf der linken Seite der Figur illustriert. Die Einträge in der Umlagerungstabelle bildende Bytes sind als waagerechte Rechtecke dargestellt. Einige Bytes sind logisch in Abschnitte unterteilt, was durch senkrechte Linien in den Rechtecken angedeutet ist. Die jeden Abschnitt umfassenden Bits sind über dem Umlagerungsteil 146 illustriert. Jedes waagerechte Rechteck im Datenteil 144 entspricht einem ausgerichteten Langwort in dem Speicher, das vier Bytes enthält. Diese Bytes B1, B2, B3 und B4 sind über dem Datenteil 144 illustriert. Die Adressen auf der linken Seite jedes der ersten sechs ausgerichteten Langwörter sollen lediglich veranschaulichen, dass die Langwörter ausgerichtet sind, sie sollen keine absolute Stelle im Datenteil anzeigen. Die Anordnung von Grundvariablentypen in jedem illustrierten ausgerichteten Langwort wird mit einem "B" für eine Byte-Variable, einem "W" für eine Wort-Variable aus zwei aneinander grenzenden Bytes, einem "L" für eine Langwort-Variable aus vier aneinander grenzenden Bytes und einem "P" für einen Zeiger, ebenfalls aus vier aneinander grenzenden Bytes angezeigt.
  • Die ersten sechs ausgerichteten Langwörter im Datenteil 144 von Fig. 4 enthalten Variablen in denselben Mustern von Grunddatentypen, wie in Tabelle 202 von Fig. 3a illustriert. Die Bezeichnungen "0" bis "5" auf der rechten Seite der ersten sechs Langwörter sind die Zahl des Musters in dem entsprechenden Langwort, ebenfalls wie in Tabelle 202 illustriert.
  • Der erste Eintrag im Umlagerungsteil 146 entspricht dem ersten ausgerichteten Langwort in dem Datenteil 144. Dieses ausgerichtete Langwort befindet sich an der Adresse 0 · 0000 und enthält vier Byte-Variablen "B". Die binär codierte Repräsentation für dieses Muster ist "0", zu den drei höchstwertigen Bits 7 : 6 : 5 codiert. Es gibt nur ein solches konsekutives Muster, daher ist die Zahl der Wiederholungen 1. Die Zahl N, zu den fünf niedrigstwertigen Bits 4 : 3 : 2 : 1 : 0 codiert, ist die Zahl der Wiederholungen (1), 1 oder 0. Die nächsten fünf Einträge im Umlagerungsteil 146 entsprechen den nächsten fünf ausgerichteten Langwörtern im Datenteil 144 und sind ebenso codiert.
  • Der nächste illustrierte Eintrag im Umlagerungsteil 146 entspricht einem Muster im Datenteil 144, das dreimal wiederholt wird. In diesem Fall ist das wiederholte Muster eine Wort-Variable W, gefolgt von zwei konsekutiven Byte-Variablen B. Dieses Muster wird durch einen binär codierten Wert "2" repräsentiert, wie in Tabelle 202 von Fig. 3 illustriert ist. Der binär codierte Wert "2" wird in den drei höchstwertigen Bits 7 : 6 : 5 gespeichert. Die Zahl der Wiederholungen ist in diesem Fall drei. Die Zahl N, zu den fünf niedrigstwertigen Bits 4 : 3 : 2 : 1 : 0 codiert, ist die Zahl der Wiederholungen (3), 1 oder 2.
  • Der nächste illustrierte Eintrag im Umlagerungsteil 146 besteht aus fünf konsekutiven Bytes und repräsentiert eine wiederholte Sequenz von Mustern. Diese Sequenz besteht aus zwei konsekutiven ausgerichteten Langwörtern, die dasselbe Muster beinhalten: eine Wort-Variable W, gefolgt von zwei konsekutiven Byte-Variablen B. Darauf folgt ein ausgerichtetes Langwort, das das Muster von zwei konsekutiven Wort- Variablen W enthält; und darauf folgt ein ausgerichtetes Langwort, das das Muster einer Langwort-Variablen L enthält. Diese Sequenz wird, zweimal wiederholt. In dem entsprechenden Eintrag im Umlagerungsteil 146 enthält das erste Byte einen binären Wert "6" in seinen drei höchstwertigen Bits 7 : 6 : 5 wie in Fig. 3b. Die fünf niedrigstwertigen Bits sind mit einer Zahl N codiert, die gleich der Zahl der Wiederholungen der Sequenz, 2, ist, wie in Fig. 3b illustriert ist. In diesem Fall ist die Zahl N die Zahl der Wiederholungen (2), 2 oder 0. Das nächste Byte enthält die binär codierte Zahl von Einträgen, die die Länge der Sequenz - 1 - repräsentiert. In diesem Fall gibt es die drei Folgeeinträge, die die Sequenz beschreiben (wie nachfolgend beschrieben wird), daher ist der im Sequenzlängenbyte gespeicherte Wert die Zahl der Einträge (3), 1 oder 2.
  • Die drei folgenden Bytes beschreiben die Sequenz selbst, wie in Fig. 3a codiert. Die im entsprechenden Teil des Datenteils 144 illustrierte Sequenz beginnt mit zwei konsekutiven ausgerichteten Langwörtern, die jeweils das Muster einer Wort-Variablen W, gefolgt von zwei Byte-Variablen B enthalten. Dies ist zwei Wiederholungen des mit 2 nummerierten Musters. Somit hat das erste Byte, das die Sequenz im Umlagerungsteil 146 beschreibt, eine 2 in den drei höchstwertigen Bits 7 : 6 : 5, und eine 1 (Zahl der Wiederholungen (2) - 1) in den fünf niedrigstwertigen Bits 4 : 3 : 2 : 1 : 0. Das nächste ausgerichtete Langwort in der Sequenz im Datenteil 144 enthält das Muster von zwei konsekutiven Wort-Variablen W. Dies ist eine Wiederholung des mit 3 nummerierten Musters. Das dieses Muster im Umlagerungsteil 146 beschreibende Byte hat eine 3 in den drei höchstwertigen Bits 7 : 6 : 5 und eine 0 in den fünf niedrigstwertigen Bits 4 : 3 : 2 : 1 : 0. Das letzte ausgerichtete Langwort in der Sequenz im Datenteil 144 enthält das Muster einer einzelnen Langwort-Variablen L. Dies ist eine Wiederholung des mit 4 nummerierten Musters. Das dieses Muster im Umlagerungsteil 146 beschreibende Byte hat eine 4 in den drei höchstwertigen Bits 7 : 6 : 5 und eine 0 in den fünf niedrigstwertigen Bits 4 : 3 : 2 : 1 : 0.
  • Der nächste illustrierte Eintrag im Umlagerungsteil 146 besteht aus zwei Bytes und repräsentiert drei Wiederholungen der soeben im Datenteil 144 beschriebenen Sequenz. Dieser Eintrag im Umlagerungsteil 146 beginnt mit einem Byte, das eine "7" in den drei höchstwertigen Bits 7 : 6 : 5 enthält. Die fünf niedrigstwertigen Bits 4 : 3 : 2 : 1 : 0 enthalten die Zahl der Wiederholungen (3), 2 oder 1. Das nächste Byte enthält einen Relativzeiger, der einen Rückzeiger auf das Sequenzlängenbyte des Eintrags im Umlagerungsteil 146 darstellt, in dem die Sequenz ursprünglich beschrieben wurde, illustriert mit einem Pfeil auf das Sequenzlängenbyte (das 2 enthält) in dem zuvor illustrierten Eintrag im Umlagerungsteil 146.
  • Auf diese Weise wird der Variablentyp, der in jedem Byte im Datenteil 144 enthalten ist, durch einen entsprechenden Eintrag im Umlagerungsteil 146 repräsentiert. Der Umlagerungsteil 146 kann durch den Postlinker 20 (von Fig. 1) wie oben beschrieben durch Analysieren der Symboltabelle 122 und durch Generieren von Einträgen im Umlagerungsteil 146 generiert werden, der die Grundvariablen-Datentypen repräsentiert, aus denen sich die Variablen zusammensetzen, auf die in der Symboltabelle 122 verwiesen wird. Der erhaltene Umlagerungsteil 56 kann vom Lader 40 analysiert werden, und die längeren Dateneinheiten im erhaltenen Datenteil 54 können lokalisiert und ihre Bytes umgelagert werden, falls notwendig, um sie in das richtige Endian-Format zu konvertieren.

Claims (20)

1. Verteiltes Multimedia-Computersystem, das Folgendes umfasst:
einen Computer der Zentralstelle (10) zum Erzeugen eines Signals, das ein Modul repräsentiert, das Folgendes umfasst:
einen Datenteil (144), umfassend eine Mehrzahl von Dateneinheiten, wobei jede Dateneinheit entweder eine kleinste adressierbare Dateneinheit oder eine längere Dateneinheit ist, wobei jede längere Dateneinheit eine Mehrzahl von kleinsten adressierbaren Dateneinheiten umfasst; und
einen Umlagerungsteil (146), umfassend Daten, die Stellen mit längeren Dateneinheiten innerhalb des Datenteils identifizieren;
ein Fernstellencomputersystem (40-64), das auf das ein Modul repräsentierende Signal anspricht und einen Lader (40) zum Extrahieren des Moduls und zum Umlagern der kleinsten adressierbaren Dateneinheiten längerer Dateneinheiten in dem Datenteil (54) an Stellen enthält, die von den Daten im Umlagerungsteil (56) identifiziert werden; und
eine Übertragungsverbindung (30) zum Übertragen des ein Modul repräsentierenden Signals vom Zentralstellencomputersystem zum Fernstellencomputersystem.
2. Multimedia-System nach Anspruch 1, bei dem
die Mehrzahl von kleinsten adressierbaren Dateneinheiten in einer längeren Dateneinheit in einer vorbestimmten Reihenfolge im Datenteil angeordnet ist; und
der Lader die kleinsten adressierbaren Dateneinheiten längerer Dateneinheiten durch Umkehren der Reihenfolge der kleinsten adressierbaren Dateneinheiten umlagert.
3. Multimedia-System nach Anspruch 1, bei dem die Übertragungsverbindung Folgendes umfasst:
einen Sender, der sich an der Zentralstelle befindet;
einen Empfänger, der sich an der Fernstelle befindet; und
eine Satellitenverbindung zwischen dem Sender und dem Empfänger.
4. Multimedia-System nach Anspruch 1, bei dem
die Zentralstelle ferner eine Quelle von Video- und Audio-Fernsehsignalen und der Sender ferner einen Multiplexer zum Kombinieren des ein Modul repräsentierenden Signals mit den Video- und Audio-Fernsehsignalen zur Bildung eines zusammengesetzten Audio/Video/Interaktiv- (AVI-) Signals umfasst; und
die Fernstelle ferner einen Demultiplexer zum Trennen der Video- und Audio Fernsehsignale und des Moduls von dem empfangenen zusammengesetzten AVI-Signal umfasst, und Nutzungsmittel für die Video- und Audio-Fernsehsignale.
5. Computersystem, das Folgendes umfasst:
einen Empfänger;
eine Quelle (30) eines Signalmoduls, das Folgendes umfasst:
einen Datenteil (54), der eine Mehrzahl von Dateneinheiten umfasst, wobei jede Dateneinheit entweder eine kleinste adressierbare Dateneinheit oder eine längere Dateneinheit ist, wobei jede längere Dateneinheit eine Mehrzahl von kleinsten adressierbaren Dateneinheiten umfasst; und
einen Umlagerungsteil (56), umfassend Daten, die Stellen längerer Dateneinheiten innerhalb des Datenteils identifizieren; und
ein Programm des Laders (40), das in einem Fernstellencomputer resident ist, um den genannten Fernstellencomputer so zu konditionieren, dass er die kleinsten adressierbaren Dateneinheiten längerer Dateneinheiten im Datenteil an Stellen umlagert, die durch die Daten im Umlagerungsteil identifiziert werden.
6. Computersystem nach Anspruch 5, bei dem die Signalmodulquelle einen mit einer Übertragungsverbindung gekoppelten Detektor zum Erkennen eines das Signalmodul beinhaltenden Signals umfasst.
7. Computersystem nach Anspruch 5, bei dem
das empfangene Signal ferner multiplexierte Video- und Audio-Fernsehsignale beinhaltet; und
das System ferner einen Demultiplexer zum Trennen von Signalmodulen von den Video- und Audio-Fernsehsignalen und ein Nutzungsmittel für die empfangenen Video- und Audio-Fernsehsignale umfasst.
8. Computersystem nach Anspruch 5, bei dem
eine kleinste adressierbare Dateneinheit eine Byte-Variable ist;
eine längere Dateneinheit entweder eine Wortvariable bestehend aus zwei Bytes oder eine Langwortvariable bestehend aus vier Bytes ist;
Dateneinheiten im Datenteil auf ausgerichtete Weise in konsekutiv ausgerichteten Langwörtern gespeichert werden; und
der Umlagerungsteil eine Mehrzahl von Einträgen umfasst, wobei jeder Eintrag einen Abschnitt beinhaltet, der Daten enthält, die ein Muster von Dateneinheiten innerhalb eines entsprechenden ausgerichteten Langwortes im Datenteil identifizieren.
9. Computersystem nach Anspruch 8, bei dem der Umlagerungsteil ferner eine Mehrzahl von Einträgen umfasst, die Dateneinheiten in einer Sequenz von ausgerichteten Langwörtern im Datenteil identifizieren.
10. Computersystem nach Anspruch 9, bei dem jeder eine Sequenzwiederholung repräsentierende Eintrag einen Eintrag umfasst, der Daten beinhaltet, die einen Rückzeiger- Offset auf den die vorherige Sequenz repräsentierenden Eintrag repräsentieren, und wobei der genannte Lader auf die genannten Rückzeiger reagiert, um die kleinsten adressierbaren Dateneinheiten längerer Dateneinheiten im Datenteil an Stellen umzulagern, die von der jeweiligen Sequenz identifiziert werden.
11. Computersystem nach Anspruch 8, bei dem ein Muster von Dateneinheiten innerhalb eines ausgerichteten Langwortes eines der Folgenden umfasst:
vier konsekutive Byte-Variablen;
zwei konsekutive Byte-Variablen, gefolgt von einer Wortvariablen;
eine Wortvariable, gefolgt von zwei konsekutiven Byte-Variablen;
zwei konsekutive Wortvariablen; und
eine Langwortvariable.
12. Zentralstellencomputersystem, das Folgendes umfasst:
eine Quelle von Programmdaten des Computers (12);
einen Postlinker (20), der mit der Computerprogrammdatenquelle gekoppelt ist, um die genannten Programmdaten zu scannen und ein Datenmodul zu erzeugen, das Folgendes umfasst:
einen Datenteil (144), umfassend eine Mehrzahl von Dateneinheiten, wobei jede Dateneinheit entweder eine kleinste adressierbare Dateneinheit oder eine längere Dateneinheit ist, wobei jede längere Dateneinheit eine Mehrzahl von kleinsten adressierbaren Dateneinheiten umfasst; und als Reaktion auf das Format von Daten im Datenteil Erzeugen eines Umlagerungsteils (146), umfassend Daten, die Stellen längerer Dateneinheiten innerhalb des Datenteils identifizieren.
13. Zentralstellencomputersystem nach Anspruch 12, ferner umfassend einen Sender, der mit einer Übertragungsverbindung zum Rundsenden des Datenmoduls gekoppelt ist.
14. Zentralstellencomputersystem nach Anspruch 13, das ferner Folgendes umfasst:
eine Quelle von Video- und Audio-Fernsehsignalen; und
einen Multiplexer, der mit der Fernsehsignalquelle gekoppelt ist und als Reaktion auf das Modul ein zusammengesetztes Signal erzeugt, das das Datenmodul und die Video- und Audio-Fernsehsignale beinhaltet.
15. Zentralstellencomputersystem nach Anspruch 12, bei dem die Computerprogrammdatenquelle eine Symboltabelle in einer Objektdatei ist.
16. Verfahren zum Betreiben eines Zentralcomputersystems, umfassend die folgenden Schritte:
Erzeugen einer Objektdatei (12), die eine Symboltabelle (122) beinhaltet;
Scannen der Objektdatei zum Erzeugen eines Moduls, das einen Datenteil (144) beinhaltet, der eine Mehrzahl von Dateneinheiten enthält, wobei jede Dateneinheit entweder eine kleinste adressierbare Dateneinheit oder eine längere Dateneinheit ist, wobei jede längere Dateneinheit eine Mehrzahl von kleinsten adressierbaren Dateneinheiten umfasst;
Scannen der Symboltabelle zum Erzeugen eines Umlagerungsteils (146) in dem Modul, wobei der Umlagerungsteil Daten beinhaltet, die Stellen längerer Dateneinheiten in dem Datenteil identifizieren;
Erzeugen eines das Modul repräsentierenden Signals; und
Senden des das Modul repräsentierenden Signals über eine Übertragungsverbindung zu einem Ferncomputersystem.
17. Verfahren nach Anspruch 16, beidem das Zentralcomputersystem ferner eine Audiosignalquelle und eine Videosignalquelle beinhaltet und bei dem nach dem Schritt des Erzeugens eines das Modul repräsentierenden Signals das Verfahren den Schritt des Multiplexierens des Audiosignals, des Videosignals und des das Modul repräsentierenden Signals zur Bildung eines zusammengesetzten AVI-Signals umfasst.
18. Verfahren zum Betreiben eines Ferncomputersystems, umfassend die folgenden Schritte:
Empfangen, von einem Zentralcomputersystem über eine Übertragungsverbindung, eines ein Modul repräsentierenden Signals, das einen Datenteil (54) beinhaltet, umfassend eine Mehrzahl von Dateneinheiten, wobei jede Dateneinheit entweder eine kleinste adressierbare Dateneinheit oder eine längere Dateneinheit ist, wobei jede längere Dateneinheit eine Mehrzahl von kleinsten adressierbaren Dateneinheiten umfasst, und einen Umlagerungsteil (56), umfassend Daten, die Stellen längerer Dateneinheiten innerhalb des Datenteils identifizieren;
Extrahieren des Datenteils aus dem das Modul repräsentierenden Signal;
Extrahieren des Umlagerungsteils aus dem das Modul repräsentierenden Signal;
Traversieren der Daten in dem Umlagerungsteil; und
für jede Stelle in dem Datenteil, die als eine der längeren Dateneinheiten enthaltend identifiziert wurde, Umlagern der kleinsten adressierbaren Dateneinheiten der einen aus den längeren Dateneinheiten.
19. Verfahren nach Anspruch 18, bei dem das von dem Zentralcomputersystem erzeugte Signal ein zusammengesetztes Audio/Video/Interaktiv- (AVI-) Signal ist, das als Komponente das ein Modul repräsentierende Signal enthält und ferner Komponenten beinhaltet, die ein Videosignal und ein Audiosignal repräsentieren, wobei der Empfangsschritt die folgenden Schritte umfasst:
Empfangen des zusammengesetzten AVI-Signals;
Trennen der Audiosignalkomponente, der Videosignalkomponente und der ein Modul repräsentierenden Signalkomponente von dem zusammengesetzten Signal; und
Zuführen der Audiosignalkomponente und der Videosignalkomponente zu einem Nutzungsmittel.
20. Verfahren nach Anspruch 18, bei dem die Mehrzahl von kleinsten adressierbaren Dateneinheiten in einer längeren Dateneinheit in einer Reihenfolge in dem Datenteil angeordnet sind, und wobei der Umlagerungsschritt den Schritt des Umkehrens der Reihenfolge der kleinsten adressierbaren Dateneinheiten in der längeren Dateneinheit umfasst.
DE69626726T 1995-06-30 1996-06-19 Multimedia-Übertragungssystem Expired - Lifetime DE69626726T2 (de)

Applications Claiming Priority (1)

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

Publications (2)

Publication Number Publication Date
DE69626726D1 DE69626726D1 (de) 2003-04-24
DE69626726T2 true DE69626726T2 (de) 2003-11-06

Family

ID=23977110

Family Applications (1)

Application Number Title Priority Date Filing Date
DE69626726T Expired - Lifetime DE69626726T2 (de) 1995-06-30 1996-06-19 Multimedia-Übertragungssystem

Country Status (9)

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

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
US6393548B1 (en) * 1997-02-14 2002-05-21 Advanced Micro Devices, Inc. Variable 16 or 32 bit PCI interface which supports steering and swapping of data
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
AU3758600A (en) * 1999-03-18 2000-10-04 Webtv Networks, Inc. Application program interfaces 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
US6904609B1 (en) 1999-03-18 2005-06-07 Microsoft Corporation Systems and methods for electronic program guide data services
EP1058193A1 (de) * 1999-05-31 2000-12-06 Deutsche Thomson-Brandt Gmbh Verfahren und Datenverarbeitungseinheit zur Vorverarbeitung von Datenpaketen in einer Datenbusschnittstelleneinheit
DE60038264T2 (de) 1999-05-31 2009-04-23 Thomson Licensing Verfahren zur Vorverarbeitung von Datenpaketen in einer Busschnittstelle
EP1059590B1 (de) * 1999-05-31 2008-03-12 Thomson Licensing Verfahren zur Vorverarbeitung von Datenpaketen in einer Busschnittstelle
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
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
US6441782B2 (en) 2000-04-14 2002-08-27 Hughes Electronics Corporation Method and system of directing an antenna 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
US6965581B2 (en) 2000-04-14 2005-11-15 Hughes Electronics Corp. Transceiver 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
DE69124437T2 (de) * 1990-08-09 1997-07-03 Silicon Graphics Inc Verfahren und Vorrichtung zum Umkehren von Byteordnung in einem Rechner
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 株式会社東芝 データ転送装置
JPH07505972A (ja) * 1992-12-21 1995-06-29 オリヴェッティ・アドヴァンスト・テクノロジー・センター・インコーポレーテッド 異なるバイト順序を有する要素間の通信を容易にする装置,システム及び方法
US5790937A (en) * 1993-02-11 1998-08-04 Thomson Multimedia S.A. Method and apparatus for the distribution of multi-media documents
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
CN1177774A (zh) 1998-04-01
EP0751655A3 (de) 1999-03-24
US5778406A (en) 1998-07-07
JPH0934817A (ja) 1997-02-07
SG40881A1 (en) 1997-06-14
EP0751655B1 (de) 2003-03-19
EP0751655A2 (de) 1997-01-02
KR970002688A (ko) 1997-01-28
KR100397873B1 (ko) 2004-06-24
MX9602530A (es) 1998-04-30
CN1158608C (zh) 2004-07-21
DE69626726D1 (de) 2003-04-24
JP3884102B2 (ja) 2007-02-21
TW299408B (de) 1997-03-01

Similar Documents

Publication Publication Date Title
DE69626726T2 (de) Multimedia-Übertragungssystem
DE69313540T2 (de) Verbesserte Vorrichtung zur variablen Längendekodierung
EP1522028B9 (de) Verfahren und vorrichtungen zum kodieren/dekodieren von strukturierten dokumenten, insbesondere von xml-dokumenten
DE69534292T2 (de) Verfahren und System zur Dateifernübertragung
DE3606869C2 (de) Vorrichtung zur Datenkompression
DE69432659T2 (de) Rotationsregister zur orthogonalen Datentransformation
DE69109346T2 (de) Übertragungssystem für digitalisierte Fernsehbilder.
DE69428396T2 (de) Bildverarbeitungssystem mit Fliessbandarbeitsprinzip für Einzelanwendungsumgebung
DE3424962C2 (de)
DE69316062T2 (de) Gerät und Verfahren zur Bildkodierung
DE2847934A1 (de) Datenverarbeitungseinrichtung mit einem mikrobefehlsspeicher
DE69026764T2 (de) Verfahren zur Datenübertragung mit hoher Geschwindigkeit
DE2505384A1 (de) Steuerteil fuer eine elektronische datenverarbeitungsanlage
DE2145120B2 (de) Digitales datenverarbeitungsgeraet
DE3689389T2 (de) Datenverarbeitungsprozessor.
DE69722859T2 (de) Formatumwandlung von Datenwörtern graphischer Bilder
DE3856139T2 (de) Mikroprozessor
DE2458286A1 (de) Datenverarbeitungssystem zum verschieben von datenfeldern mit verschiedenen strukturen
DE2900586C2 (de) Anordnung zum Decodieren von Codewörtern variabler Länge
DE69628735T2 (de) Bildverarbeitungsgerät und programmspeichermedium
DE10309336B4 (de) Verfahren zur Codierung eines strukturierten Dokuments
DE69523664T2 (de) Dekodierungsschaltung für Kodes variabler Länge
WO2017178222A1 (de) Gerät und verfahren zur bearbeitung eines binärkodierten strukturdokuments
DE3113189C2 (de) Vorrichtung zur Umsetzung von digitalen Zeichencodes, die von einem Datenverarbeitungssystem empfangen oder geliefert werden
DE69815656T2 (de) Rechnersystem mit einem mehrfach Sprungbefehlzeiger und -Verfahren

Legal Events

Date Code Title Description
8364 No opposition during term of opposition