DE3687124T2 - Funktionseinheit fuer rechner. - Google Patents

Funktionseinheit fuer rechner.

Info

Publication number
DE3687124T2
DE3687124T2 DE8686305355T DE3687124T DE3687124T2 DE 3687124 T2 DE3687124 T2 DE 3687124T2 DE 8686305355 T DE8686305355 T DE 8686305355T DE 3687124 T DE3687124 T DE 3687124T DE 3687124 T2 DE3687124 T2 DE 3687124T2
Authority
DE
Germany
Prior art keywords
data
external
processing unit
information
bus
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
DE8686305355T
Other languages
English (en)
Other versions
DE3687124D1 (de
Inventor
Craig C Hansen
Steven A Przybylski
Thomas J Riordan
Larry B Weber
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.)
MIPS Tech LLC
Original Assignee
MIPS Computer Systems 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 MIPS Computer Systems Inc filed Critical MIPS Computer Systems Inc
Application granted granted Critical
Publication of DE3687124D1 publication Critical patent/DE3687124D1/de
Publication of DE3687124T2 publication Critical patent/DE3687124T2/de
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/76Arrangements for rearranging, permuting or selecting data according to predetermined rules, independently of the content of the data
    • G06F7/768Data position reversal, e.g. bit reversal, byte swapping
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/04Addressing variable-length words or parts of words

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Hardware Redundancy (AREA)
  • Debugging And Monitoring (AREA)
  • Preparation Of Compounds By Using Micro-Organisms (AREA)
  • Stored Programmes (AREA)
  • Executing Machine-Instructions (AREA)
  • Apparatus For Radiation Diagnosis (AREA)
  • Polarising Elements (AREA)
  • Steroid Compounds (AREA)
  • Saccharide Compounds (AREA)
  • Nitrogen Condensed Heterocyclic Rings (AREA)
  • Multi Processors (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Bus Control (AREA)

Description

  • Die vorliegende Erfindung bezieht sich auf Funktionseinheiten für Computer, beispielsweise Funktionseinheiten in der Form von zentralen Verarbeitungseinheiten (CPUs), und genauer gesagt auf solche Funktionseinheiten, die mit Einrichtungen für die Anpassung an verschiedene Ordnungsschemata für die Speicherung von Informationen versehen sind.
  • In modernen Computern sind Daten in einem von zwei Formaten oder in irgendeiner Kombination dieser Formate organisiert. Die Formate sind bekannt als "große Endung" bzw. "großendig" (big endian), bei welchem das Bit, das Byte oder die andere Informationseinheit der höchsten Ordnung (mit dem größten Stellenwert) in der Adresse mit der kleineren Zahl angeordnet ist, und als "kleine Endung" bzw. "kleinendig" (little endian), bei welchem die Informationseinheit mit dem hohen Stellenwert in der mit der höheren Zahl versehenen Adresse der Einheit angeordnet ist. Siehe Cohen, "On Holy Wars and A plea for Peace" ("Über heilige Kriege und ein Flehen nach Frieden"), Computer. 10/81. Seiten 48-54. in welchem eine gute Diskussion des Datenorganisationsproblems zu finden ist. In einer echten "big endian"-Computerarchitektur kann man sich die Bits von Daten als von links nach rechts aufgereiht vorstellen, wobei das Bit mit der niedrigsten Nummer und der größten Bedeutung (dem größten Stellenwert) links steht. Wenn eine solche Reihe von Bits beispielsweise in 8-Bit-Bytes, 16-Bit-Halbworte und/oder 32-Bit-Worte aufgeteilt wird, bleibt weiterhin das Byte, Halbwort oder Wort mit der niedrigsten Nummer und dem größten Stellenwert links. In einer echten "little endian"-Architektur, ist das Schema genau umgekehrt. Bits, Bytes, Halbworte und Worte werden von rechts nach links numeriert, wobei das am wenigsten wichtige (den niedrigsten Stellenwert aufweisende) Bit, Byte, Halbwort oder Wort rechts angeordnet ist. In einem vorhandenen Computer oder in einer gegebenen Funktionseinheit (wie z. B. einer CPU) in einem Computer macht es keinen Unterschied, welches Schema ausgewählt worden ist, weil die gesamte Hardware und Software entsprechend dem gewählten Schema ausgestaltet werden kann (um das Schema herum aufgebaut werden kann). Der Unterschied wird jedoch wichtig, wenn ein Computer oder eine Funktionseinheit mit einer anderen kommuniziert, deren Datenordnungsschema nicht bekannt ist. Dies liegt daran, daß die Information, die von der Einheit mit der niedrigsten Nummer bis zur Einheit mit der höchsten Nummer übermittelte Information unter dem "big endian"-Schema von der wichtigsten (Information) zur am wenigsten wichtigen verläuft, jedoch von der am wenigsten wichtigen zur wichtigsten (Information) unter dem "little endian"-Schema. In vielen modernen Computern ist die kleinste adressierbare Einheit oder Information (d. h. die kleinste Gruppe von Bits, die ein Computer oder eine Funktionseinheit von einer anderen empfangen, an eine solche übersenden oder auf die sie sich in einer anderen Einheit beziehen kann) ein Byte. Dies erleichtert die Datenordnungsprobleme, weil alle Bits in dem Byte parallel übertragen werden können. Während die Bits in dem Byte bei verschiedenen Datenanordnungsschemata unterschiedlich numeriert sein können, ist das am wenigsten wichtige Bit bzw. das Bit mit dem niedrigsten Stellenwert immer rechts. Die verschiedenen Datenanordnungsschemata für derartige Computer sind deshalb funktionell identisch für Informationseinheiten, die kleiner als ein Byte sind. Man muß sich jedoch nach wie vor um die Anordnung von Bytes, Halbworten und Worten kümmern.
  • Außerdem ist festzuhalten, daß einige Computer ein gemischtes Datenordnungsschema verwenden. Bei diesen Computern können beispielsweise Worte und größere Einheiten eine "big endian"-Anordnung haben, während Halbworte, Bytes und Bits eine "little endian"-Anordnung haben können. Dies macht die Sache komplizierter, weil es bei Vielwortübertragungen von Daten 'notwendig wird, sowohl zu wissen, daß das erste Wort das Wort höherer Ordnung ist und auch, daß das erste Byte dieses Wortes das Byte niedrigerer Ordnung ist.
  • Das Datenanordnungsproblem ist besonders wichtig für die Hersteller von Chip- und Platinenprodukten auf Mikrocomputerbasis, die speziell für ein gewähltes Datenanordnungsschema ausgestaltet sind, z. B. Produkte wie CPUs. Das Problem ist weniger wichtig für andere Produkte, wie z. B. einen Speicher, weil solche Produkte ohne Veränderung und ohne irgend ein Anordnungsschema verwendbar sind.
  • Die Hersteller von Chip- und Platinenprodukten (Produkte auf der Ebene von Steckkarten), zielen typischerweise darauf ab, daß ihre Produkte in einen Computer zusammen mit anderen Chip- oder Platinenprodukten (Steckkarten) anderer Hersteller eingebaut werden, welche möglicherweise ein anderes Datenanordnungsschema verwenden. Die Hersteller haben daher in der Vergangenheit ihre Produkte entsprechend einem Datenanordnungsschema ausgestaltet und sie nur an Kunden vertrieben, die eine kompatible Architektur besaßen. Im Endeffekt halbiert dies den für den Hersteller verfügbaren Markt. Als Alternative stellen einige Hersteller zwei Versionen jedes Produktes her und verkaufen dieses, welches ein zuvor definiertes Datenanordnungsschema benötigt, nämlich eines für jeden Typ von (Rechner-) Architektur. Diese Lösung ist jedoch ebenfalls unbefriedigend, weil sie erfordert, daß der Hersteller Ausgestaltungen, die Herstellung und Inventar für zweimal soviel Produkte durchführen bzw. bereithalten muß. Außerdem wird dadurch verhindert, daß der Hersteller den gesamten wirtschaftlichen Vorteil aus der großen Stückzahl zieht, weil für jede Version nur das halbe Produktionsvolumen erwartet werden kann.
  • Es ist auch möglich, Produkte gemäß einem Anordnungsschema auszugestalten und sich dann auf Software zu stützen, um die Informationseinheiten neu auszurichten, wenn die externe Hardware ein anderes Schema verwendet. Die Software kann Informationseinheiten von jeder erforderlichen Größe umsetzen. Hierdurch wird das Erfordernis einer Ausgestaltung, Herstellung und Bevorratung verschiedener Versionen jedes Produktes vermieden, wobei jedoch die Schwierigkeit lediglich auf die Software verschoben wird. Unterschiedliche Versionen für jeden Compiler (Maschinenspracheübersetzer), jedes Betriebssystem oder andere Programme müssen geschrieben und unterstützt bzw. gewartet werden, oder es muß eine einzelne Version geschrieben werden, die in der Lage ist, sich selbst an die Benutzung von mehr als einem Ordnungsschema anzupassen. Die zuletzt erwähnte Lösung kann bei der Installation und Verwirklichung außerordentlich kompliziert sein und kann unter gewissen Umständen zu einer nicht akzeptablen Überlastung (Kopflastigkeit) für die durch die Software verwaltete Datenneuausrichtung führen.
  • Die europäische Patentanmeldung EP-A-0.122.016 beschreibt einen Schiebeschaltkreis für das Multiplexen von Datenbytes in unterschiedlichen Anordnungen auf einen endlichen Bus (Busleitung). Sie befaßt sich jedoch nicht mit dem Problem, eine Datenverarbeitungseinheit bereitzustellen, die sowohl an ein externes System angeschlossen werden kann, die eine "big endian"- Codierung verwendet und auch an ein externes System, welches die "little endian"-Codierung verwendet.
  • Gemäß der vorliegenden Erfindung ist eine Datenverarbeitungseinheit vorgesehen, die in zumindest einem Paket zusammengefaßt ist, welches aufweist:
  • eine Ausführungseinheit bzw. Verarbeitungseinheit zum Verarbeiten von Daten,
  • eine interne Datenbusleitung, welche an die Verarbeitungseinheit angeschlossen ist, um interne Busdaten in die Verarbeitungseinheit einzugeben, wobei die internen Busdaten in Informationseinheiten angeordnet bzw. strukturiert sind, von welchen jede eine Reihe von individuellen Datengruppen aufweist, die in einer vorgewählten internen Datenanordnungsfolge für die Verarbeitung durch die Verarbeitungseinheit angeordnet sind, gekennzeichnet durch
  • eine Einrichtung zum Ausrichten von Datengruppen in einer jeweiligen Informationseinheit, weiche an die interne Datenbuseinheit angeschlossen ist, und zum Ausrichten von Datengruppen, die während des Betriebs an eine externe Datenbusleitung angeschlossen werden, für die Eingabe und Ausgabe von externen Busdaten zu der Einrichtung zur Ausrichtung von Datengruppen und von dieser, wobei die externen Busdaten in Informationseinheiten organisiert bzw. strukturiert sind, welche in einer externen Datenanordnungsfolge angeordnet sind,
  • eine Umsetzungs- bzw. Wandlereinheit für einen Verschiebebetrag, welche mit der Einrichtung zum Ausrichten von Datengruppen verbunden ist, und
  • eine Einrichtung für die wahlweise Eingabe von Informationsdaten, welche die Anordnungsfolge der äußeren Daten anzeigen, wobei die Informationsdaten von außerhalb des zumindest einen Paketes zugänglich sind und von außen angewendet bzw. zugeführt werden,
  • wobei die Umsetzungseinheit für den Verschiebebetrag anspricht auf a) die Information, welche die Anordnungsfolge der externen Daten anzeigt und b) die Datenkennzeichnungssignale, welche von der Verarbeitungseinheit erzeugt werden, um die Einrichtung zum Ausrichten von Datengruppen zu steuern, so daß sie die Datengruppen jeder Informationseinheit der externen Eingabe von Busdaten in die Einrichtung (zum Neuausrichten) aus der Anordnungsfolge der externen Daten in die vorgewählte Anordnungsfolge der internen Daten neu ausrichtet, um die internen Busdaten bereitzustellen für die Eingabe in die Verarbeitungseinheit, oder um die Datengruppen jeder Informationseinheit der internen Eingabe von Busdaten in die Einrichtung (zum Neuausrichten) neu auszurichten, um Datengruppen aus der vorgewählten internen Datenanordnungsfolge in die externe Datenanordnungsfolge auszurichten, um die internen Busdaten auf dem externen Datenbus bereitzustellen.
  • In vorteilhafter Weise sieht eine bevorzugte Ausführungsform der Erfindung eine CPU vor, die das Erfordernis der Ausgestaltung bzw. Konstruktion und Herstellung von zwei oder mehr Versionen desselben Produktes und/oder das Bereithalten entsprechenden Inventars vermeidet.
  • Ein weiterer Vorteil der vorliegenden Erfindung ist die Bereitstellung einer wirksamen Trennung zwischen Hardware und Software von der Komplexität, die erforderlich ist, um ein einzelnes Produkt auf verschiedene Datenanordnungsschemata anzupassen.
  • In einer bevorzugten Ausführungsform der vorliegenden Erfindung ist eine CPU vorgesehen, die an ein oder zwei oder mehrere zuvor definierte externe Schemata für die Anordnung von Informationseinheiten, wie z. B. Bytes, die kleiner sind als die Datenbusbreite, anpaßbar ist.
  • Die obigen Vorteile und weitere Vorteile werden erreicht entsprechend den Ausführungsformen der vorliegenden Erfindung durch die Ausgestaltung der Datenverarbeitungseinheit derart, daß sie irgend einem gewünschten Datenanordnungsschema im inneren folgt und so, daß man sowohl eingehende als auch abgehende Daten durch eine Datenordnungsumsetzungseinheit hindurchtreten läßt, um sie an ein wählbares äußeres Datenanordnungsschema anzupassen. Die Umwandlungseinheit für die Datenanordnung sollte in der Lage sein, Informationseinheiten kleinerer Größe innerhalb von Informationseinheiten größerer Größe neu auszurichten, wobei die "kleinere Größe" die Größe ist, unterhalb welche alle Daten parallel betrachtet werden können, üblicherweise ein Byte, und die "größere Größe" gleich der Breite (bzw. Länge) der größten Informationseinheit ist, auf welche sich die Software extern beziehen kann, üblicherweise gleich der Datenbusbreite. Die Neuausrichtung von Informationseinheiten, die kleiner als die "kleine Größe" sind, ist nicht erforderlich, weil es keine Zweideutigkeit gibt, wenn Bits parallel betrachtet werden. Die Neuausrichtung von Daten über die Grenzen von Informationseinheiten der größeren Größe hinweg, eine Art von Arbeit, welche ohnehin häufig durch Software ausgeführt wird, kann der Software überlassen bleiben.
  • Die Einrichtung zum Spezifizieren des externen Anordnungsschemas sollte von der Außenseite des in physikalischer Form vorliegenden Paketes zugänglich sein, in welchem die Funktionseinheit aufgenommen ist, so daß nur ein derartiges Paket so ausgestaltet, hergestellt und mit Inventar bereitgehalten werden muß. Wenn die Funktionseinheit (möglicherweise mit anderen Einheiten) als ein einzelner Chip realisiert bzw. eingesetzt ist, können einer oder mehrere Stifte diesem Zweck gewidmet bzw. für diesen verwendbar sein. Wenn die Funktionseinheit als ein Modul realisiert ist, kann die Einrichtung zum Spezifizieren des Datenanordnungsschemas einen DIP-Schalter aufweisen, der auf dem Modul angeordnet ist, vielleicht unter einer Abdeckung, die von dem Hersteller nach der Einstellung abgedichtet bzw. versiegelt wird.
  • In einer Ausführungsform der Erfindung ist die Funktionseinheit ein CPU-Chip oder ein Satz von Chips, in weichen Daten zu und aus einem Speicher in Form von 32-Bit-Worten übermittelt werden, bei welchem jedoch die Software individuelle 8-Bit-Bytes adressieren kann. Die Umsetzungseinheit für die Datenanordnung richtet die Bytes innerhalb des ankommenden und des herausgehenden Wortes gemäß dem spezifizierten externen Byte- und Halbwortanordnungsschema aus. Die Neuausrichtung von Mehrwortketten von Daten bleibt der Software überlassen.
  • Die Umsetzungseinheit für die Datenanordnung kann einen Ladeausrichter und einen Speicherausrichter aufweisen, wobei einer hiervon oder beide eine Einrichtung aufweisen zum Verschieben (im Gegensatz zum zufälligen Neuausrichten) von Informationseinheiten kleinerer Größe innerhalb einer Informationseinheit größerer Größe um einen Betrag, der von den Adressenbits niedriger Ordnung abhängt, die in der CPU erzeugt werden, wobei der Verschiebebetrag in Abhängigkeit von der Auswahleinrichtung für die Datenanordnung verändert wird. Eine oder beide Einrichtungen zum Verschieben können auch eine doppelte Funktion haben und als Verschiebeeinheit für eine allgemeine Verwendung in der CPU dienen.
  • Die Erfindung wird jetzt anhand eines veranschaulichenden und nicht beschränkenden Beispiels unter Bezug auf die zugehörigen Zeichnungen beschrieben, in welchen gleiche Teile gleiche Bezeichnungen erhalten haben, wobei die
  • Fig. 1 und 2 Blockdiagramme von Ausführungsformen der vorliegenden Erfindung sind.
  • In Fig. 1 ist ein Blockdiagramm einer zentralen Verarbeitungseinheit (central processing unit, CPU) 10 dargestellt, welche gemäß einer bevorzugten Ausführungsform der vorliegenden Erfindung aufgebaut ist. Sie weist eine Verarbeitungseinheit 12 auf, welche neben anderen Dingen die Anweisungsdecodierung und die Datenhandhabung durchführt, welche durch Software angegeben ist. Die Verarbeitungseinheit 12 hat vollständige 32-Bit-Pfade und hat, falls eine Wahl getroffen werden muß, den "little endian"-Aufbau. Die Verarbeitungseinheit 12 ist mit einer internen 32-Bit-Adressenbusleitung 14 verbunden und auch mit einer internen 32-Bit-Datenbusleitung 16. Die interne Adressenbusleitung 14 (Adressenbus 14) ist mit einem externen 32-Bit- Adressenbus 18 (Adressenbusleitung) verbunden, welcher seinerseits mit einem Hauptspeicher und verschiedenen anderen äußeren Einrichtungen (nicht dargestellt) verbunden ist. Der interne Datenbus 16 ist mit einem Ladeausrichter 20 und einem Speicherausrichter 22 verbunden, welche ihrerseits an einen externen 32-Bit-Datenbus 24 angeschlossen sind. Der Ladeausrichter richtet die Position der vier Bytes der einkommenden 32-Bit-Datenworte neu aus, bevor er sie an die Verarbeitungseinheit 12 über die interne Datenbusleitung 16 weitergibt. Der Ladeausrichter berücksichtigt solche durch Software wählbare Faktoren wie den Bezugstyp (Byte, Halbwort oder Vollwort) und ob die Eingangsdaten Null- oder Vorzeichen-erweitert (zero- oder sign-extended) sind. Diese Merkmale werden zu dem Ladeausrichter 20 von der Verarbeitungseinheit 12 über Ausrichtungskontrolleitungen 26 geschickt. Der Ladeausrichter 20 ist auch mit den beiden Bits niedriger Ordnung der internen Adressenbusleitung 14 verbunden, so daß das spezielle Byte oder die Bytes, welches bzw. welche von der Software gewünscht werden, ausgewählt und in ihre am weitesten rechts liegenden Positionen in dem eingehenden Wort verschoben werden können. Die beiden Adreßbits niedriger Ordnung sind mit dem Ladeausrichter über einen Umsetzer 28 für einen Verschiebungsbetrag verbunden (dessen Funktion weiter unten noch beschrieben wird) und mit zwei Verschiebebetragsleitungen 30.
  • Der Speicherausrichter 22 ist ebenfalls mit den Ausrichtungssteuerleitungen 26 und den Verschiebebetragsleitungen 30 verbunden. Er funktioniert ähnlich wie der Ladeausrichter 20 mit Ausnahme der Tatsache, daß seine Wirkungsweise umgekehrt ist. Da er Bytes auf der internen Datenbusleitung 16 neu ausrichtet, bevor er sie über die externe Datenbusleitung 24 hinausschickt, ist seine Wirkungsweise spiegelbildlich zu der des Ladeausrichters 20. Beispielsweise würde der Ladeausrichter 20 beim Laden eines Halbwortes von der linken Hälfte eines 32-Bit- Speicherplatzes die eingehenden Daten um 16 Bits nach rechts schieben, während bei einer Halbwortspeicherung auf der linken Hälfte derselben Speicherplätze dieselbe Verschiebung nach links durchgeführt werden müßte. Zusätzlich erzeugt der Speicherausrichter 22 Schreibesteuersignale, welche auf den Hauptspeicher über Schreibesteuerleitungen 32 übertragen werden, um anzugeben, ob und welches der Bytes auf der externen Datenbusleitung 24 geschrieben werden soll.
  • Der Zweck des Umsetzers 28 für den Verschiebebetrag liegt darin, die CPU an jedes Byte- Anordnungsschema, welches auch immer in der externen Hardware verwendet werden mag, anzupassen. Wenn das externe Schema ein "littel endian"-Schema ist, so ist keine Anpassung erforderlich und die beiden Adreßbits niedriger Ordnung werden unverändert auf die Verschiebebetragsleitungen 30 übertragen. Beim Laden werden also die 30 Bits höherer Ordnung von der externen Adressenbusleitung 18 verwendet, um das Wort aus dem Hauptspeicher auszuwählen, in welchem das gewünschte Byte oder die Bytes angeordnet ist bzw. sind. Das gesamte Wort wird an den Ladeausrichter 20 übermittelt, welcher die Information in Abhängigkeit von dem Bezugstyp und den Verschiebebetragsleitungen 30 nach rechts schiebt. Wenn der Bezugstyp ein "Byte" ist, so ist die Anzahl von Bytes, um welche die Information verschoben wird, unmittelbar durch die beiden Verschiebebetragsleitungen 30 gegeben (d. h. die beiden Adreßbits niedriger Ordnung). Wenn der Bezugstyp ein "Halbwort" ist, so ist die Anzahl der Bytes, um welche die Information verschoben wird, durch das Doppelte der Verschiebebetragsleitung hoher Ordnung gegeben, d. h. 0, wenn das 2¹-Adressenbit 0 ist, 2, wenn das 2¹-Adressenbit 1 Ist). Wenn der Bezugstyp ein "Wort" ist, so findet keine Verschiebung statt. Eine ähnliche Verschiebung findet beim Speichern durch den Speicherausrichter 22 statt mit Ausnahme der Tatsache, daß alle Verschiebungen nach links stattfinden.
  • Wenn andererseits die externe Hardware vom "big endian"-Typ ist, ist die Byteausrichtung unterschiedlich. Bytes und Halbworte werden von links nach rechts numeriert anstatt von rechts nach links und das Byte höchster Ordnung oder das Halbwort in einem Wort ist rechts bezüglich der übrigen Bytes oder Halbworte. Ein Weg der Anpassung an diesen Unterschied läge darin, die Byteordnung der externen Hardware als eine Eingabe in die Kombinationslogik des Ladeausrichters 20 zu spezifizieren, um ein Byte aus dem externen Wort auszuwählen, welches in jeweils eine Byteposition des internen Wortes gesetzt wird. Da jedoch ein vollständiges 32-Bit-Wort entlang des externen Datenbusses 24 unabhängig von dem Bezugstyp übermittelt wird, ist es bevorzugt, daß die Anpassung an diesen Unterschied in dem Verschiebebetragsumsetzer 28 durch Ändern der beiden Adreßbits niedriger Ordnung erfolgt, bevor sie in die Lade- und Speicherausrichter 20 und 22 eintreten. Wenn also der Bezugstyp ein "Byte" ist, werden die beiden Adreßbits niedriger Ordnung invertiert, bevor sie an die Verschiebebetragsleitungen 30 weitergegeben werden. Wenn der Bezugstyp ein Halbwort ist, dann wird nur das 2¹-Adreßbit invertiert. Wenn der Bezugstyp ein "Wort" ist, dann wird keines der Adreßbits niedriger Ordnung invertiert. Diese Logik richtet in wirksamer Weise Bytes soweit wie nötig in effektiver Weise neu aus, um eine interne "little endian"-Architektur an eine externe "big endian"-Architektur anzupassen.
  • Damit der Verschiebebetragskonverter 28 seine Funktion ausführen kann, ist er mit den Verschiebungssteuerleitungen 26 und, über eine Datenanordnungswahleingabe 33, mit einer Datenanordnungsspeichereinheit 34 verbunden. Die Datenanordnungsspeichereinheit 34 kann einen D-Flipflop aufweisen, dessen D-Eingang extern hartverdrahtet ist auf ein gewähltes Spannungsniveau, um das Datenanordnungsschema der externen Architektur anzuzeigen, und dessen Takteingabe bzw. Eingang mit den Energie-An- und System-Reset-Leitungen (nicht dargestellt) verbunden ist. Wahlweise kann die Datenanordnungsspeichereinheit 34 auch fortgelassen werden und der Datenanordnungswahleingang mit dem Verschiebebetragskonverter 28 kann direkt mit einem externen Stift des Paketes verbunden sein, der auf das gewählte Spannungsniveau hartverdrahtet sein kann. Es ist festzuhalten, daß man keinen besonderen Vorteil erzielt, wenn das Datenanordnungsschema durch die Software wählbar ist, da das Anordnungsschema der externen Hardware per Definition festgelegt ist. Es ändert sich nicht von dem "Power-Up" zu dem "Power-Down"-Zustand (Energie-Ein zu Energie-Aus). Wenn das Ordnungsschema durch die Software wählbar ist, könnte dies zu einer beträchtlichen Komplexität beitragen, da die Software eine solche Flexibilität annehmen muß. Es kann jedoch Umstände geben, in weichen die Wählbarkeit durch Software wünschenswert ist und die Vorteile, die man durch eine entsprechende Bereitstellung erhält, müssen gegen die Nachteile der gesteigerten Softwarekomplexität abgewogen werden.
  • In der obigen Beschreibung ist nichts über die physikalische Verwirklichung der Ausführungsform gesagt worden. Für Fachleute sollte es offensichtlich sein, daß die physikalische Verwirklichung für die Erfindung nicht entscheidend ist. Die gesamte Schaltung, die in Fig. 1 als der die CPU 10 bildende Teil dargestellt ist, kann auf einem Chip untergebracht werden oder kann auf mehrere verteilt werden. Ein zusätzlicher Schaltkreis, der in Fig. 1 nicht dargestellt ist, kann ebenfalls auf einem oder mehrerer derartiger Chips integriert werden. Um die Vorteile der vorliegenden Erfindung zu erzielen, so wie oben beschrieben, sollten die Einrichtungen für das Auswählen des externen Datenanordnungsschemas von der Außenseite der Abgrenzungen der physikalischen Einheit aus zugänglich sein, wobei es wünschenswert ist, die Herstellung von mehr als einer Version zu vermeiden. Wenn also eine solche CPU, wie die mit 10 in Fig. 1 bezeichnete, als ein einziger Chip hergestellt werden soll, möglicherweise mit einer Speicherverwaltungseinheit und einer darin integrierten Cache Control Logik, so sollte die Datenanordnungsspeichereinheit 34 von der Außenseite des Chips her zugänglich sein, beispielsweise über einen speziellen (Anschluß-) Stift. Wenn die CPU auf einer Platine bzw. einem Platinenmodul installiert werden soll und der Modul die physikalische Einheit ist, welche sowohl in "big endian" als auch in "littel endian"-Maschinen verwendbar ist, so sollte die Datenanordnungsspeichereinheit 34 von der Außenseite des Moduls zugänglich sein, beispielsweise durch manuelles Schalten eines DIP-Schalters entweder auf oder außerhalb der Platine.
  • Die Vorteile einer Architektur wie der der oben beschriebenen Ausführungsform sind offensichtlich. Zunächst braucht man lediglich eine Version der CPU auszugestalten, herzustellen und zu speichern, da sie sowohl in "big endian" als auch in "little endian"-Computern zu verwenden ist. Im Gegensatz zu den vorherigen Techniken, bei welchen das Datenanordnungsschema der Einrichtung bei dem Ausgestaltungsvorgang spezifiziert werden mußte, braucht das Ordnungsschema dieser CPU nicht spezifiziert werden, bis sie in einer größeren Einheit bzw. einem Paket Installiert wird, deren Ordnungsschema festgelegt ist. Zum zweiten gibt es bezüglich der Neuausrichtung von Bytes innerhalb von Worten für die Umsetzung in ein unterschiedliches externes Anordnungsschema keine komplexe Software und es wird keine Zeit mit der Durchführung derartiger Umsetzungen vergeudet. Alle derartigen Umsetzungen werden in einer Kombinationslogik durchgeführt, die auf einem Chip mit der Durchführungseinheit integriert sein kann und damit extrem schnell gemacht werden kann. Diese Ausführungsform ist nicht für Mehrwortspeicherung und Wiedergewinnung ausgelegt, und, soweit der Zugang zu mehreren Worten bzw. Mehrwortdaten von dem Datenanordnungsschema abhängt, muß die Software in der Lage sein, die Worte soweit wie nötig neu zu ordnen. Der Datenordnungswahleingang 33 kann zu diesem Zweck durch die Software lesbar gemacht werden. Jedoch ist die Unfähigkeit zum automatischen Neuausrichten von Daten bei Mehrwortzugängen kein entscheidender Nachteil. Da die Software sich üblicherweise um Vollworte herumbewegt, trägt es nicht zu einer wesentlichen Zusatzbelastung bei, wenn ein wählbares Wortanordnungsschema in die Programmausgestaltungen einbezogen wird.
  • Es versteht sich, daß die Architektur einer Funktionseinheit, welche die vorliegende Erfindung verwirklicht, nicht notwendigerweise verhindern muß, daß eine spezialisierte Software direkten Zugriff zu ausgewählten Bytes in einem Speicher hat ohne Bezug zu dem Byteordnungsschema. Dies kann in der obigen Ausführungsform bewerkstelligt werden durch Vorsehen einer Ausrichtungskontrolleitung, welche den Verschiebebetragkonverter 28 "abschaltet" und damit bewirkt, daß er die beiden Adreßbits niedriger Ordnung direkt in die Verschiebebetragsleitungen 30 überführt, unabhängig von dem Signal auf dem Datenanordnungsauswahleingang 33. Eine solche Ausrichtungskontrolleitung kann durch gewisse Adressierarten aktiviert werden und kann begleitet werden von zusätzlichen Signalen an die Lade- und Speicherausrichter 20 und 22.
  • In Fig. 2 ist eine weitere Ausführungsform der vorliegenden Erfindung dargestellt, in weicher ein Verschieber für einen allgemeinen Zweck die Funktion des Speicherausrichters übernimmt. Die Ausführungsform weist eine CPU 50 auf, welche einen Ladeausrichter 20 ähnlich dem in Fig. 1 gezeigten enthält. Der Ladeausrichter 20 in der CPU 50 ist an seinem Eingang mit dem externen 32-Bit Datenbus 24 und an seinem Ausgang mit einem Registerfile 52 (Datensatz) sowie mit einem Befehlsdecodierer und einer Steuereinheit 54 verbunden. Der Ausgang des Ladeausrichters 20 ist auch mit einer arithmetischen logischen Einheit (ALU) 56 verbunden, wie auch der Ausgang des Registerfiles 52. Die ALU 56 Ist ihrerseits mit einem Verschieber 58 für einen allgemeinen Zweck verbunden, der in der Lage ist, Daten nach rechts oder links um irgendeine Zahl von Bits zwischen 0 und 31 zu verschieben. Für die Zwecke der vorliegenden Erfindung reicht es jedoch aus, wenn der Verschieber 58 für einen allgemeinen Zweck in der Lage ist, Daten lediglich um das Vielfache von acht Bits zu verschieben. Der Ausgang des Verschiebers 58 kann auf den Registerfile 52 zurückgeführt werden oder kann auf den externen Datenbus 24 Zugriff erhalten. Die CPU 50 schließt auch eine Adresseneinheit 60 ein, welche Adressen erzeugt und sie auf den externen 32-Bit-Adressenbus 18 ausgibt. Ebenso wie bei der Ausführungsform gemäß Fig. 1, werden die beiden Adreßbits niedriger Ordnung in der Ausführungsform der Fig. 2 ebenfalls zu dem Verschiebebetragskonverter 28 übermittelt, und die Verschiebebetragsleitungen 30 am Ausgang des Verschiebebetragskonverters 28 sind mit dem Ladeausrichter 20 verbunden. Der Verschiebebetragskonverter 28 und der Ladeausrichter 20 in Fig. 2 sind mit ihren entsprechenden Gegenstücken in Fig. 1 identisch. Statt daß sie jedoch ebenfalls mit einem getrennten Speicherausrichter verbunden sind, wie in Fig. 1, sind die Verschiebebetragsleitungen 30 in Fig. 2 über einen Multiplexer 62 mit dem Verschieber 58 für einen allgemeinen Zweck verbunden. Der Multiplexer 62 wählt entweder die Information auf den Verschiebebetragsleitungen 30 oder eine Verschiebebetragsinformation von einer anderen Quelle (nicht dargestellt) aus für die Weitergabe an den Verschieber 58.
  • Der Betrieb der CPU 50 beim Laden ist identisch zu dem Betrieb der CPU in Fig. 1 beim Laden und wird deshalb hier nicht wiederholt. Bei einem internen Vorgang von Register zu Register, laufen die Daten vom dem Registerfile 52 und/oder dem Ladeausrichter 20 durch die ALU 56 und werden zu dem Verschieber 58 übermittelt. Der Multiplexer 62 wählt einen Verschiebebetrag und die (Verschieb-)Richtung aus Quellen in der CPU 50 aus, die nicht dargestellt sind, und übermittelt sie als Steuerinformation an den Verschieber 58. Der Verschieber 58 führt den gewünschten Vorgang durch und das Ergebnis wird in den Registerfile 52 zurückgegeben. Der Betrieb der CPU 50 von einem Speicher ist derselbe wie sein Betrieb von Register zu Register mit der Ausnahme, daß der Ausgang des Verschiebers 58 mit Zugriff auf den externen Datenbus 24 gelagt wird, und der Multiplexer 62 wählt Verschiebebetrags- und Richtungsinformationen aus den Verschiebebetragsleitungen 30 aus anstatt aus den nicht dargestellten Quellen. Dies stellt sicher, daß die Datenbytes in angemessener Weise entsprechend der Byteordnung der externen Hardware ausgerichtet werden, bevor die Daten auf den externen Datenbus 24 ausgegeben werden. Die Ausführungsform gemäß Fig. 2 stellt damit alle Vorteile derjenigen aus Fig. 1 bereit und spart zusätzlich Platz ein durch Kombinieren der Funktion eines Speicherausrichtverschiebers mit einem Verschieber für einen allgemeinen Zweck, der in der CPU schon vorhanden ist.
  • Die Erfindung ist mit Bezug auf bestimmte Ausführungsformen beschrieben worden und es versteht sich, daß andere Änderungen und Variationen dieser Ausführungsformen möglich sind. Beispielsweise kann eine CPU gemäß der Erfindung ausgestaltet werden, welche in der Lage ist, Daten, jedoch nicht Befehle, neu auszurichten. In der Ausführungsform der Fig. 2 kann dies bewerkstelligt werden durch Verbinden des Eingangs des Befehlsdecoders und der Kontrolleinheit 54 mit dem externen Datenbus 24, statt mit dem Ausgang des Ladeausrichters 20. Als weiteres Beispiel ist vorher bereits erwähnt worden, daß die Erfindung nicht auf CPUs beschränkt ist. Die Erfindung kann also auf andere Funktionseinheiten angewendet werden, die für ein ausgewähltes Datenanordnungsschema spezifisch sind. Sie kann auf Funktionseinheiten angewendet werden, die keine Adreßerzeugungseinrichtung haben, sondern statt dessen lediglich an anderer Stelle erzeugte Adressen passieren lassen. Sie kann auch angewendet werden auf Funktionseinheiten, die überhaupt keine Adressen bereitstellen, wie z. B. bestimmte Coprozessoren.

Claims (6)

1. Datenverarbeitungseinheit, welche zu einem Paket zusammengefaßt ist, welches aufweist:
eine Verarbeitungseinheit (12) zum Verarbeiten von Daten, eine interne Datenbusleitung (16), welche mit der Verarbeitungseinheit (12) verbunden ist, um Daten von der internen Busleitung in die Verarbeitungseinheit (12) einzugeben, wobei die Daten der Internen Busleitung zu Informationseinheiten strukturiert sind, von denen jede eine Serie von individuellen Datengruppen aufweist, welche in einer vorgewählten, internen Datenordnungsfolge angeordnet sind für das Verarbeiten durch die Verarbeitungseinheit (12), gekennzeichnet durch eine Einrichtung (20, 22) zum Ausrichten von Datengruppen innerhalb einer jeweiligen Informationseinheit, die mit dem internen Datenbus (16) verbunden ist, und zum Ausrichten von im Gebrauch mit einem externen Datenbus (24) verbundenen Datengruppen, um externe Busdaten in die Einrichtung (20, 22) ein- und aus dieser auszugeben, um Datengruppen auszurichten, wobei die externen Busdaten in Informationseinheiten strukturiert sind, die in einer externen Datenordnungsfolge angeordnet sind,
eine Umsetzungseinheit (28) für einen Verschiebebetrag, welche mit der Einrichtung (20, 22) zum Ausrichten der Datengruppen verbunden ist, und
eine Einrichtung (33, 34), um wahlweise Informationsdaten einzugeben, die kennzeichnend für die externe Datenordnungsfolge sind, wobei die Informationsdaten vom Äußeren des zumindest einen Paketes zugänglich sind und zugeführt werden können,
wobei der Umsetzer (28) für den Verschiebebetrag anspricht auf a) die Information, die ein Kennzeichen für die externe Datenordnungsfolge ist, und b) die die Daten kennzeichnenden Signale (14, 26), welche von der Verarbeitungseinheit (12) erzeugt werden, um die Einrichtung (20, 22) zum Ausrichten der Datengruppen so zu steuern, daß sie Datengruppen jeder Informationseinheit aus der externen Datenbuseingabe in die Einrichtung (20, 22) neu ausrichtet, um Datengruppen der externen Datenordnungsfolge in der vorgewählten internen Datenordnungsfolge auszurichten bzw. anzuordnen, um die internen Busdaten für die Eingabe zu der Verarbeitungseinheit (12) bereitzustellen, oder um die Datengruppen jeder Informationseinheit einer internen Datenbuseingabe in die Einrichtung (20, 22) neu auszurichten, um die Datengruppen von der vorgewählten inneren Datenanordnungsfolge in der externen Datenanordnungsfolge anzuordnen, um die Internen Busdaten auf bzw. für die extreme Datenbusleitung (24) bereitzustellen.
2. Datenverarbeitungseinheit nach Anspruch 1, wobei die Einrichtung (33, 34) zum wahlweisen Eingaben von Information eine Einrichtung (34) aufweist, um ein Steuersignal zu erzeugen, welches eine relative Beziehung zwischen der vorgewählten, internen Datenanordnungsfolge und der äußeren Datenanordnungsfolge anzeigt, wobei die Einrichtung (34) zum Erzeugen eines Steuersignals mit der Umsetzeeinheit für einen Verschiebebetrag über eine Eingangsleitung (33) für eine Datenanordnungswahl verbunden ist, um das Steuersignal in den Umsetzer (28) für den Verschiebetrag einzugeben.
3. Datenverarbeitungseinheit nach Anspruch 2, welche weiterhin aufweist:
eine Adressenbusleitung (14), die mit der Verarbeitungseinheit und dem Umsetzer (28) für den Verschiebebetrag verbunden ist,
wobei die Verarbeitungseinheit (12) so wirkt, daß sie eine Adresse für jede Informationseinheit der externen Daten auf der externen Datenbusleitung (24) für die Ausgabe zu der Adressenbusleitung (14) erzeugt, jede Adresse ein erstes Segment aufweist, das eindeutig die jeweilige Informationseinheit aus den externen Busdaten identifiziert, sowie ein zweites Segment aufweist, die eindeutig eine Datengruppe innerhalb der jeweiligen Informationseinheit identifiziert, der Umsetzer (28) für den Verschiebebetrag das zweite Segment jeder Adresse auf der Adressenbusleitung (14) empfängt und so arbeitet, daß er einen vorgewählten Abschnitt des zweiten Segmentes jeder Adresse umkehrt, wenn das Steuersignal, welches von der Einrichtung (34) zum Erzeugen des Steuersignals erzeugt wird, anzeigt, daß die ausgewählte interne Datenanordnungsfolge einer ersten Datenanordnungsfolge entspricht und die externe Datenanordnungsfolge einer zweiten Datenanordnungsfolge entspricht, wobei das umgekehrte zweite Adressensegment verwendet wird, um die Einrichtung (20, 22) zum Ausrichten der Datengruppen innerhalb einer jeweiligen Informationseinheit zu steuern.
4. Datenverarbeitungseinheit nach einem der Ansprüche 1 bis 3, wobei die Einrichtung zum wahlweisen Eingeben von Information eine Eingangsleitung für die wahlweise Eingabe der Information aufweist, die eine Anzeige für die externe Datenanordnungsfolge aus einer außerhalb der Datenverarbeitungseinheit liegenden Quelle ist.
5. Datenverarbeitungseinheit nach Anspruch 4, welche ein D-Flip Flop aufweist, das mit der Eingangsleitung verbunden ist, um die Information zu speichern, die die externe Datenanordnungsfolge anzeigt.
6. Datenverarbeitungseinheit nach einem der vorstehend Ansprüche, wobei die Einrichtung zum wahlweisen Eingeben von Information eine Einrichtung zum Speichern der Information aufweist, die eine Anzeige für die vorgewählte interne Datenanordnungsfolge und die externe Datenanordnungsfolge ist.
DE8686305355T 1986-02-06 1986-07-11 Funktionseinheit fuer rechner. Expired - Lifetime DE3687124T2 (de)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US82728286A 1986-02-06 1986-02-06

Publications (2)

Publication Number Publication Date
DE3687124D1 DE3687124D1 (de) 1992-12-17
DE3687124T2 true DE3687124T2 (de) 1993-03-18

Family

ID=25248802

Family Applications (1)

Application Number Title Priority Date Filing Date
DE8686305355T Expired - Lifetime DE3687124T2 (de) 1986-02-06 1986-07-11 Funktionseinheit fuer rechner.

Country Status (13)

Country Link
US (1) US4959779A (de)
EP (1) EP0236615B1 (de)
JP (1) JPH0734174B2 (de)
KR (1) KR870008252A (de)
AT (1) ATE82412T1 (de)
CA (1) CA1285075C (de)
DE (1) DE3687124T2 (de)
DK (1) DK60987A (de)
ES (1) ES2007031A6 (de)
GR (1) GR870205B (de)
IE (1) IE870310L (de)
IL (1) IL81239A (de)
NO (1) NO870416L (de)

Families Citing this family (53)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS6428752A (en) * 1987-07-24 1989-01-31 Toshiba Corp Data processor
JP3041308B2 (ja) * 1987-09-30 2000-05-15 健 坂村 データ処理装置
JP2633331B2 (ja) * 1988-10-24 1997-07-23 三菱電機株式会社 マイクロプロセッサ
US5265237A (en) * 1988-12-07 1993-11-23 Xycom, Inc. Byte swapping apparatus for selectively reordering bytes of an N-bit word communicated between an at computer and VME bus
GB2228348A (en) * 1989-01-13 1990-08-22 Texas Instruments Ltd Memory interface integrated circuit
GB2229832B (en) * 1989-03-30 1993-04-07 Intel Corp Byte swap instruction for memory format conversion within a microprocessor
US6038584A (en) * 1989-11-17 2000-03-14 Texas Instruments Incorporated Synchronized MIMD multi-processing system and method of operation
US5168561A (en) * 1990-02-16 1992-12-01 Ncr Corporation Pipe-line method and apparatus for byte alignment of data words during direct memory access transfers
EP0470570B1 (de) * 1990-08-09 1997-01-29 Silicon Graphics, Inc. Verfahren und Vorrichtung zum Umkehren von Byteordnung in einem Rechner
JP2763207B2 (ja) * 1991-04-25 1998-06-11 株式会社東芝 情報処理装置
US5524250A (en) * 1991-08-23 1996-06-04 Silicon Graphics, Inc. Central processing unit for processing a plurality of threads using dedicated general purpose registers and masque register for providing access to the registers
US5313231A (en) * 1992-03-24 1994-05-17 Texas Instruments Incorporated Color palette device having big/little endian interfacing, systems and methods
US5408664A (en) * 1992-06-19 1995-04-18 Silicon Graphics, Incorporated System and Method for booting computer for operation in either of two byte-order modes
US5471628A (en) * 1992-06-30 1995-11-28 International Business Machines Corporation Multi-function permutation switch for rotating and manipulating an order of bits of an input data byte in either cyclic or non-cyclic mode
US5412782A (en) 1992-07-02 1995-05-02 3Com Corporation Programmed I/O ethernet adapter with early interrupts for accelerating data transfer
JP3187539B2 (ja) * 1992-07-28 2001-07-11 株式会社東芝 データ転送装置
US5392406A (en) * 1992-09-18 1995-02-21 3Com Corporation DMA data path aligner and network adaptor utilizing same
US5517627A (en) * 1992-09-18 1996-05-14 3Com Corporation Read and write data aligner and method
US5481275A (en) 1992-11-02 1996-01-02 The 3Do Company Resolution enhancement for video display using multi-line interpolation
US5572235A (en) * 1992-11-02 1996-11-05 The 3Do Company Method and apparatus for processing image data
US5838389A (en) * 1992-11-02 1998-11-17 The 3Do Company Apparatus and method for updating a CLUT during horizontal blanking
US5596693A (en) * 1992-11-02 1997-01-21 The 3Do Company Method for controlling a spryte rendering processor
US5752073A (en) * 1993-01-06 1998-05-12 Cagent Technologies, Inc. Digital signal processor architecture
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
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
US5564056A (en) * 1994-03-01 1996-10-08 Intel Corporation Method and apparatus for zero extension and bit shifting to preserve register parameters in a microprocessor utilizing register renaming
US5781763A (en) * 1995-04-07 1998-07-14 International Business Machines Corporation Independent control of DMA and I/O resources for mixed-endian computing systems
US5742840A (en) * 1995-08-16 1998-04-21 Microunity Systems Engineering, Inc. General purpose, multiple precision parallel operation, programmable media processor
US7301541B2 (en) * 1995-08-16 2007-11-27 Microunity Systems Engineering, Inc. Programmable processor and method with wide operations
US6643765B1 (en) * 1995-08-16 2003-11-04 Microunity Systems Engineering, Inc. Programmable processor with group floating point operations
US6295599B1 (en) * 1995-08-16 2001-09-25 Microunity Systems Engineering System and method for providing a wide operand architecture
US5953241A (en) * 1995-08-16 1999-09-14 Microunity Engeering Systems, Inc. Multiplier array processing system with enhanced utilization at lower precision for group multiply and sum instruction
US7483935B2 (en) * 1995-08-16 2009-01-27 Microunity Systems Engineering, Inc. System and method to implement a matrix multiply unit of a broadband processor
US5819117A (en) * 1995-10-10 1998-10-06 Microunity Systems Engineering, Inc. Method and system for facilitating byte ordering interfacing of a computer system
US5854914A (en) * 1996-02-13 1998-12-29 Intel Corporation Mechanism to improved execution of misaligned loads
US5848436A (en) * 1996-03-06 1998-12-08 International Business Machines Corporation Method and apparatus for efficiently providing data from a data storage medium to a processing entity
US5781923A (en) * 1996-05-28 1998-07-14 Hewlett-Packard Company Adding a field to the cache tag in a computer system to indicate byte ordering
US6148302A (en) * 1998-02-26 2000-11-14 Sun Microsystems, Inc. Method, apparatus, system and computer program product for initializing a data structure at its first active use
US6457121B1 (en) * 1999-03-17 2002-09-24 Intel Corporation Method and apparatus for reordering data in X86 ordering
US6819325B2 (en) * 2000-03-07 2004-11-16 Microsoft Corporation API communications for vertex and pixel shaders
US7159041B2 (en) * 2000-03-07 2007-01-02 Microsoft Corporation Method and system for defining and controlling algorithmic elements in a graphics display system
FR2818145B1 (fr) * 2000-12-18 2003-11-28 Oreal Compositions cosmetiques antisolaires a base d'un melange synergetique de filtres et utilisations
US6831635B2 (en) * 2001-03-01 2004-12-14 Microsoft Corporation Method and system for providing a unified API for both 2D and 3D graphics objects
US6874150B2 (en) 2001-03-01 2005-03-29 Microsoft Corporation Method and system for maintaining connections between surfaces and objects in a graphics display system
US6828975B2 (en) * 2001-03-01 2004-12-07 Microsoft Corporation Method and system for managing graphics objects in a graphics display system
US6812923B2 (en) 2001-03-01 2004-11-02 Microsoft Corporation Method and system for efficiently transferring data objects within a graphics display system
US7023431B2 (en) * 2001-03-01 2006-04-04 Microsoft Corporation Method and system for providing data to a graphics chip in a graphics display system
AU2002339867A1 (en) 2001-09-04 2003-03-18 Microunity Systems Engineering, Inc. System and method for performing multiplication
US7251752B2 (en) 2001-10-01 2007-07-31 Adams Phillip M Computerized product improvement apparatus and method
US7634762B1 (en) 2005-04-19 2009-12-15 Paravirtual Corp. Selective post-compile conversion
US7685405B1 (en) * 2005-10-14 2010-03-23 Marvell International Ltd. Programmable architecture for digital communication systems that support vector processing and the associated methodology
US8099448B2 (en) * 2005-11-02 2012-01-17 Qualcomm Incorporated Arithmetic logic and shifting device for use in a processor
US20170123792A1 (en) * 2015-11-03 2017-05-04 Imagination Technologies Limited Processors Supporting Endian Agnostic SIMD Instructions and Methods

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3573744A (en) * 1968-11-01 1971-04-06 Bell Telephone Labor Inc Data buffer system for transferring information from a first to a second storage medium
US3699525A (en) * 1970-11-27 1972-10-17 Honeywell Inf Systems Use of control words to change configuration and operating mode of a data communication system
US3846763A (en) * 1974-01-04 1974-11-05 Honeywell Inf Systems Method and apparatus for automatic selection of translators in a data processing system
US3996566A (en) * 1974-12-16 1976-12-07 Bell Telephone Laboratories, Incorporated Shift and rotate circuit for a data processor
US4494186A (en) * 1976-11-11 1985-01-15 Honeywell Information Systems Inc. Automatic data steering and data formatting mechanism
GB1563165A (en) * 1977-11-16 1980-03-19 Ibm Character display system
US4281315A (en) * 1979-08-27 1981-07-28 Bell Telephone Laboratories, Incorporated Collection of messages from data terminals using different protocols and formats
JPS5714957A (en) * 1980-06-30 1982-01-26 Toshiba Corp Memory device
JPS5945545A (ja) * 1982-09-06 1984-03-14 Mitsubishi Electric Corp 8ビツトデ−タ変換回路
US4512018A (en) * 1983-03-08 1985-04-16 Burroughs Corporation Shifter circuit
US4559614A (en) * 1983-07-05 1985-12-17 International Business Machines Corporation Interactive code format transform for communicating data between incompatible information processing systems
US4595911A (en) * 1983-07-14 1986-06-17 Sperry Corporation Programmable data reformat system
US4595980A (en) * 1983-07-27 1986-06-17 International Business Machines Corp. Interactive data processing system having concurrent multi-lingual inputs

Also Published As

Publication number Publication date
JPH0734174B2 (ja) 1995-04-12
DK60987A (da) 1987-08-07
EP0236615B1 (de) 1992-11-11
ES2007031A6 (es) 1989-06-01
IL81239A0 (en) 1987-08-31
IL81239A (en) 1991-03-10
IE870310L (en) 1987-08-07
US4959779A (en) 1990-09-25
DK60987D0 (da) 1987-02-06
DE3687124D1 (de) 1992-12-17
NO870416L (no) 1987-08-10
KR870008252A (ko) 1987-09-25
ATE82412T1 (de) 1992-11-15
GR870205B (en) 1987-08-19
JPS62184530A (ja) 1987-08-12
CA1285075C (en) 1991-06-18
EP0236615A2 (de) 1987-09-16
NO870416D0 (no) 1987-02-03
EP0236615A3 (en) 1988-10-05

Similar Documents

Publication Publication Date Title
DE3687124T2 (de) Funktionseinheit fuer rechner.
DE68929483T2 (de) Datenprozessor mit einer Befehlseinheit, die einen Cachespeicher und einen ROM aufweist.
DE2755273C2 (de)
DE2023354C2 (de) Datenverarbeitungsanlage mit einem Mikrobefehlsspeicher
DE2755897C2 (de)
DE69714472T2 (de) Verfahren zum überprüfen eines integrierten speichers mit hilfe einer integrierten dma-schaltung
DE3752017T2 (de) Mikrorechner mit Zugriffsfähigkeit auf einen internen Speicher mit gewünschter variabler Zugriffszeit
DE69115344T2 (de) Vorverarbeitungsprozessor zur Verbindung von Befehlen für einen Cache-Speicher
DE68926385T2 (de) Methode und Hardware-Ausführung von komplexen Datentransferbefehlen
DE3685876T2 (de) Meister-sklave-mikroprozessorsystem mit einem virtuellen speicher.
DE69027932T2 (de) Cpu-pipeline mit registerfile-bypass durch adressvergleich bei aktualisierungen/zugriffen
DE2910839A1 (de) Einrichtung zur ausfuehrung einer speziellen verzweigungsinstruktion
DE2517276A1 (de) Datenverarbeitungssystem
DE3852251T2 (de) Ein-Chip-Mikrocomputer.
DE69732793T2 (de) Acht-bit-mikrokontroller mit risc-architektur
DE2458096C2 (de) Einrichtung zum Laden von Mikroprogrammen in einer mikroprogrammierbaren Datenverarbeitungsanlage
DE2533737C2 (de) Mikroprozessor mit aufteilbarer Adressenschiene
DE2612054A1 (de) Verfahren zur adressentwicklung und prozessor zur durchfuehrung des verfahrens
DE69231237T2 (de) Datenverarbeitungsvorrichtung
DE3685844T2 (de) Elektronische schaltung zur verbindung eines prozessors mit einem leistungsfaehigen speicher.
DE69315192T2 (de) Datenverarbeitungssystem und -Verfahren mit einem erweitbaren Register
DE3851241T2 (de) Speicheranordnung.
DE69032511T2 (de) Multiprozessor-Steuereinrichtung mit gemeinsamem Steuerungsspeicher
DE2830334C2 (de)
DE69518145T2 (de) Verzeichnis für ein-/ausgangsdecoder

Legal Events

Date Code Title Description
8364 No opposition during term of opposition
8327 Change in the person/name/address of the patent owner

Owner name: SILICON GRAPHICS, INC. (N.D.GES.D.STAATES DELAWARE

8327 Change in the person/name/address of the patent owner

Owner name: MIPS TECHNOLOGIES,INC., MOUNTAIN VIEW,CALIF.,, US