DE69626726T2 - Multimedia-Übertragungssystem - Google Patents
Multimedia-ÜbertragungssystemInfo
- 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
Links
- 230000005540 biological transmission Effects 0.000 title claims description 12
- 238000000034 method Methods 0.000 claims description 18
- 238000004590 computer program Methods 0.000 claims description 17
- 230000005236 sound signal Effects 0.000 claims description 13
- 239000002131 composite material Substances 0.000 claims description 10
- 230000002452 interceptive effect Effects 0.000 claims description 10
- 230000008707 rearrangement Effects 0.000 claims description 3
- 230000003750 conditioning effect Effects 0.000 claims description 2
- 238000010586 diagram Methods 0.000 description 8
- 238000003491 array Methods 0.000 description 7
- 230000008569 process Effects 0.000 description 6
- 238000004891 communication Methods 0.000 description 4
- 230000006870 function Effects 0.000 description 4
- 238000012545 processing Methods 0.000 description 3
- 230000001174 ascending effect Effects 0.000 description 2
- 230000006835 compression Effects 0.000 description 2
- 238000007906 compression Methods 0.000 description 2
- 238000013461 design Methods 0.000 description 2
- 108091081062 Repeated sequence (DNA) Proteins 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 239000002699 waste material Substances 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/38—Information transfer, e.g. on bus
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/40—Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
- H04N21/43—Processing 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/443—OS processes, e.g. booting an STB, implementing a Java virtual machine in an STB or power management in an STB
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/38—Information transfer, e.g. on bus
- G06F13/40—Bus structure
- G06F13/4004—Coupling between buses
- G06F13/4009—Coupling between buses with data restructuring
- G06F13/4013—Coupling between buses with data restructuring with data re-ordering, e.g. Endian conversion
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L65/00—Network arrangements, protocols or services for supporting real-time applications in data packet communication
- H04L65/60—Network streaming of media packets
- H04L65/61—Network streaming of media packets for supporting one-way streaming services, e.g. Internet radio
- H04L65/611—Network streaming of media packets for supporting one-way streaming services, e.g. Internet radio for multicast or broadcast
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/40—Network security protocols
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N7/00—Television systems
- H04N7/16—Analogue secrecy systems; Analogue subscription systems
- H04N7/173—Analogue secrecy systems; Analogue subscription systems with two-way working, e.g. subscriber sending a programme selection signal
- H04N7/17309—Transmission or handling of upstream communications
- H04N7/17318—Direct 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.
- 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.
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)
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)
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 |
-
1995
- 1995-06-30 US US08/497,492 patent/US5778406A/en not_active Expired - Lifetime
-
1996
- 1996-02-26 TW TW085102163A patent/TW299408B/zh not_active IP Right Cessation
- 1996-06-19 EP EP96109837A patent/EP0751655B1/de not_active Expired - Lifetime
- 1996-06-19 DE DE69626726T patent/DE69626726T2/de not_active Expired - Lifetime
- 1996-06-27 KR KR1019960024370A patent/KR100397873B1/ko not_active IP Right Cessation
- 1996-06-28 MX MX9602530A patent/MX9602530A/es unknown
- 1996-06-28 CN CNB961086599A patent/CN1158608C/zh not_active Expired - Lifetime
- 1996-06-28 SG SG1996010176A patent/SG40881A1/en unknown
- 1996-07-01 JP JP17140996A patent/JP3884102B2/ja not_active Expired - Lifetime
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 |