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
Links
- 238000006243 chemical reaction Methods 0.000 claims abstract description 8
- 238000012545 processing Methods 0.000 claims description 36
- 230000008901 benefit Effects 0.000 description 9
- 230000006870 function Effects 0.000 description 6
- 238000004519 manufacturing process Methods 0.000 description 6
- 238000013461 design Methods 0.000 description 5
- 238000013519 translation Methods 0.000 description 4
- 230000014616 translation Effects 0.000 description 4
- 238000010586 diagram Methods 0.000 description 2
- 230000008520 organization Effects 0.000 description 2
- 238000012546 transfer Methods 0.000 description 2
- 230000004308 accommodation Effects 0.000 description 1
- 230000006978 adaptation Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 238000012938 design process Methods 0.000 description 1
- 230000009977 dual effect Effects 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000000034 method Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 238000000926 separation method Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F7/76—Arrangements for rearranging, permuting or selecting data according to predetermined rules, independently of the content of the data
- G06F7/768—Data position reversal, e.g. bit reversal, byte swapping
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/04—Addressing 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.
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)
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)
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 |
-
1986
- 1986-07-11 DE DE8686305355T patent/DE3687124T2/de not_active Expired - Lifetime
- 1986-07-11 EP EP86305355A patent/EP0236615B1/de not_active Expired - Lifetime
- 1986-07-11 AT AT86305355T patent/ATE82412T1/de not_active IP Right Cessation
- 1986-07-24 JP JP61174692A patent/JPH0734174B2/ja not_active Expired - Lifetime
-
1987
- 1987-01-13 IL IL81239A patent/IL81239A/xx unknown
- 1987-02-03 NO NO870416A patent/NO870416L/no unknown
- 1987-02-05 ES ES878700270A patent/ES2007031A6/es not_active Expired
- 1987-02-05 IE IE870310A patent/IE870310L/xx unknown
- 1987-02-06 CA CA000529196A patent/CA1285075C/en not_active Expired - Lifetime
- 1987-02-06 KR KR870000944A patent/KR870008252A/ko not_active Application Discontinuation
- 1987-02-06 GR GR870205A patent/GR870205B/el unknown
- 1987-02-06 DK DK060987A patent/DK60987A/da not_active Application Discontinuation
-
1988
- 1988-11-28 US US07/277,406 patent/US4959779A/en not_active Expired - Lifetime
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 |