DE2755273C2 - - Google Patents

Info

Publication number
DE2755273C2
DE2755273C2 DE2755273A DE2755273A DE2755273C2 DE 2755273 C2 DE2755273 C2 DE 2755273C2 DE 2755273 A DE2755273 A DE 2755273A DE 2755273 A DE2755273 A DE 2755273A DE 2755273 C2 DE2755273 C2 DE 2755273C2
Authority
DE
Germany
Prior art keywords
input
data
address
register
arrangement
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
Application number
DE2755273A
Other languages
English (en)
Other versions
DE2755273A1 (de
Inventor
Stanley Edward Burlington N.J. Us Ozga
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.)
RCA Corp
Original Assignee
RCA Corp
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 RCA Corp filed Critical RCA Corp
Publication of DE2755273A1 publication Critical patent/DE2755273A1/de
Application granted granted Critical
Publication of DE2755273C2 publication Critical patent/DE2755273C2/de
Granted legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/34Addressing or accessing the instruction operand or the result ; Formation of operand address; Addressing modes
    • G06F9/355Indexed addressing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline, look ahead
    • G06F9/3802Instruction prefetching
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline, look ahead
    • G06F9/3824Operand accessing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline, look ahead
    • G06F9/3867Concurrent instruction execution, e.g. pipeline, look ahead using instruction pipelines

Description

Die Erfindung bezieht sich auf einen Mikroprozessor gemäß dem Oberbegriff des Patentanspruchs.
Durch die Technik der Großintegration (LSI) ist es möglich geworden, Datenverarbeitungs- und Rechnersysteme auf wenige Schaltkreise zu reduzieren. Gewöhnlich stellt hierbei die Organisation eine verkleinerte Version einer großen Datenverarbeitungsanlage dar. Wenn man jedoch eine Datenverarbeitungsanlage auf einem oder wenigen integrierten Schaltkreisen unterbringen will, ergeben sich im allgemeinen Probleme durch die Begrenzung der Anzahl der externen Anschlüsse, mit denen der integrierte Schaltkreis versehen werden kann. Ein weiteres Problem ergibt sich daraus, daß die Programme langsamer laufen, weil die verwendete Technologie keine hohen Geschwindigkeiten zuläßt oder primitivere Befehle verwendet werden müssen, von denen für die Durchführung einer gegebenen Aufgabe mehr erforderlich sind als von den in größeren Maschinen verwendeten Befehlen.
Aus "Proceedings of the EJCC", 1959, Seiten 48-58 und "Planning a Computer System" von W. Buchholz, 1962, McGraw-Hill Book Company, New York, Seiten 202-208, sind sogenannte Stretch- Computer bekannt, bei denen gleichzeitig in einige der Register eingeschrieben werden kann und bei denen aus anderen Registern gleichzeitig ausgelesen werden kann. Es kann auch gleichzeitig in der Recheneinheit des Computers gerechnet werden. Ferner kann hierbei für einen in Datenausführungs- und Befehlsabrufeinheiten gegliederten Prozessor jeweils ein Registersatz für beide Einheiten vorgesehen sein.
Aus der US-PS 37 37 866 ist es bekannt, zum Ersatz von Registersätzen vorteilhaft Registeranordnungen mit gleichzeitigem Zugriff auf zwei Registerinhalte zu verwenden. Es handelt sich um ein System, bei dem zwei Speichereinheiten vorgesehen sind, die Daten an eine gemeinsame Recheneinheit liefern und von dieser empfangen können. Jede Speichereinheit enthält mehrere Register und besitzt mehrere Zugriffseingänge, so daß während jedes Lese- oder Schreibzyklus ein Zugriff zu Speicherstellen derselben Einheit hergestellt werden kann. Eine Befehlssteuereinheit kann dieselbe Adresse an jede der Speichereinheiten anlegen, um es zu ermöglichen, daß ein einziger Datensatz in entsprechende Register in jeder Speichereinheit geschrieben wird. Die Steuereinheit kann an die Speichereinheiten auch unabhängige Adressen anlegen, wenn die Inhalte je eines Registers beider Einheiten parallel gelesen werden sollen.
Der Erfindung liegt die Aufgabe zugrunde, einen Mikroprozessor zu schaffen, bei dem einerseits der aus größeren Datenverarbeitungsanlagen bekannte überlappende Betrieb durchführbar ist, andererseits jedoch die Daten- und Adressenleitungen besser ausgenutzt werden, d. h. in einer gegebenen Zeit mehr Informationen übertragen können als dies bei bekannten Systemen der Fall ist.
Diese Aufgabe wird durch die kennzeichnenden Merkmale des Patentanspruchs gelöst.
Ein Vorteil des hier beschriebenen Mikroprozessors besteht darin, daß die Generalregisteranordnung bzw. die Adressenregisteranordnung in der Befehleregistereinheit bzw. in der Datenausführungseinheit zur selben Zeit arbeiten können.
Vorteilhafterweise kann bei der Erfindung die Registeranordnung einer Einheit (z. B. die Adressenregisteranordnung in der Befehlsabrufeinheit) die Adressenleitung und die Datenleitung (z. B. die Programmspeicher-Adressenleitung und die Programmspeicher- Datenleitung) verwenden, während gleichzeitig die Registeranordnung der anderen Einheit (z. B. die Generalregisteranordnung der Datenausführungseinheit) die Datenspeicher-Adressenleitung und die Datenspeicher-Datenleitung verwenden kann.
Ein wesentlicher Vorteil der Erfindung besteht darin, daß die Registeranordnung jeder Einheit gleichzeitig mit den Einrichtungen der Einheit über eine erste Eingangs-Ausgangseinheit und über eine andere Eingangs/Ausgangseinheit mit einer Datenleitung zusammenarbeiten kann. Beispielsweise kann in der Datenausführungseinheit die Generalregisteranordnung über eine Eingangs/Ausgangseinheit mit dem Rechenwerk und über die andere Eingangs/Ausgangseinheit mit der Datenleitung zusammenwirken.
Im folgenden wird ein Ausführungsbeispiel der Erfindung unter Bezugnahme auf die Zeichnung näher erläutert. Es zeigt
Fig. 1 ein Blockschaltbild einer Anlage, in der ein Mikroprozessor gemäß der Erfindung verwendet werden kann,
Fig. 2 ein Blockschaltbild eines Mikroprozessors gemäß einer Ausführungsform der Erfindung,
Fig. 3 ein Logikschaltbild einer für die Realisierung der Erfindung geeigneten Speicheranordnung,
Fig. 4 eine schematische Darstellung einer Speicherzelle, die in der Speicheranordnung gemäß Fig. 3 verwendet werden kann, und
Fig. 5 ein Schaltbild einer Halteschaltung, die in der Speicheranordnung gemäß Fig. 3 verwendet werden kann.
Das Blockschaltbild gemäß Fig. 1 zeigt, wie ein Mikroprozessor mit anderen Komponenten einer Anlage zusammengeschaltet sein kann. Der Mikroprozessor 10 ist mit einem Programmspeicher 12, einem Datenspeicher 14, einer Spezialfunktionseinheit 16 und Eingabe-Ausgabe- oder I/O-Geräten 17 und 19 gekoppelt. Ferner sind Verbindungen für Signale PUA, die eine Programmunterbrechung anfordern, und Signale DMA, die einen direkten Speicherzugriff anfordern, dargestellt. Die Verbindung mit dem Programmspeicher 12 erfolgt über eine Programmspeicher- Adressenleitung 112 und eine Programmspeicher-Datenleitung 113. Die Programmspeicher-Adressenleitung 112 überträgt Adressensignale vom Mikroprozessor 10 zum Programmspeicher 12. Die Programmspeicher- Datenleitung 113 überträgt die Programmbefehlswörter vom Programmspeicher 12 zum Mikroprozessor 10 und zur Spezialfunktionseinheit 16, wenn diese verwendet wird. Bei einem bevorzugten Ausführungsbeispiel einer solchen Anlage ist ein Befehlswort typischerweise 24 Bits lang.
Die Verbindung mit dem Datenspeicher 14 erfolgt über eine Datenspeicheradressenleitung 114 und eine Datenleitung 115. Die Datenspeicheradressenleitung 114 überträgt die Datenspeicheradressen vom Mikroprozessor 10 zum Datenspeicher 14 zum Zugriff zu Datenspeicherplätzen; ferner werden über sie bestimmte Adressenkombinationen für I/O-Gerätewahl zur Datenübertragung und zur Steuerung der I/O-Geräte übertragen. Der unmittelbare Adressenraum, d. h. die Plätze, die insgesamt durch das Adressenregister angegeben werden können, basiert bei dem System gemäß Fig. 1 zwar auf der Datenspeicher-Adressenwortlänge, ein Teil dieses Adressenraumes, d. h. gewisse Adressen, werden jedoch mit den I/O-Geräten geteilt. Diese Aufteilung kann auf irgendeine gewünschte Weise erfolgen; bei der folgenden Erläuterung soll beispielsweise angenommen werden, daß die ersten (den höchsten Werten entsprechenden) Adressen für I/O-Geräte-Adressen reserviert sind und der Rest zur Adressierung des Datenspeichers dient. Eine solche Anordnung eignet sich offenbar am besten für Mikroprozessor-Konfigurationen, deren Datenspeicher-Adressenwortlängen 16 Bits oder mehr betragen.
Die Datenleitung 115 wird für eine bidirektionale Signalübertragung zu und von dem Mikroprozessor 10, dem Datenspeicher 14 und den I/O-Geräten 17 und 19 und gegebenenfalls für eine nur in eine Richtung verlaufende Signalübertragung von den Ausgangsklemmen der Spezialfunktionseinheit 16 verwendet. Der Mikroprozessor 10 steuert alle Datenübertragungen über diese Leitungen, in dem er an alle mit den betreffenden Leitungen verbundenen Einheiten Operationssteuersignale und Taktinformation liefert.
Bei dem Mikroprozessor 10 sind Vorkehrungen für einen Speicherdirektzugriffkanal vorgesehen. Die Datenübertragungen und Adressierungen für diesen Kanal werden über die Datenleitung 115 bzw. Adressenleitung 114 abgewickelt. Die Anforderung eines Datenübertragungszyklus wird durch ein DMA-Anforderungssignal vom I/O-Gerät 17 zum Mikroprozessor 10 übertragen. Dieses Signal veranlaßt den Mikroprozessor, die normale Folge der Ausführung von Programmbefehlen oder die Erledigung einer Programmunterbrechung zeitweilig auszusetzen, um die dem Speicher-Direktzugriffkanal zugeordneten Steueroperationen durchzuführen. Der Mikroprozessor 10 enthält eine Folgesteuerung in seiner Ausführungseinheit, um die Inhalte eines Generalregisters zu verringern und auf Null zu prüfen. Das Generalregister dient für die dem DMA-Kanal zugeordnete Wortzählung. Wenn es auf Null zurückgeschaltet ist, wird ein Übertragung- Fertig-Signal erzeugt, um die Operationen im Zusammenhang mit dem DMA-Kanal zu beenden. Ein Adressenregister in der Befehlsabrufeinheit des Mikroprozessors enthält die DMA-Datenadresse (Hinweisadresse) und wird nach jedem Speicher-Direktzugriffzyklus automatisch weitergeschaltet (inkrementiert).
Es sind Vorkehrungen getroffen, um an den Mikroprozessor 10 eine Spezialfunktionseinheit 16 anschließen zu können. Der Spezialfunktionseinheit 16 sind zwei Operanden, die von den Allgemein- oder Generalregistern des Mikroprozessors abgerufen werden, über einen Operandeneingang OPA und einen Operandeneingang OPB parallel zuführbar. Das Resultat von der Spezialfunktionseinheit 16 wird dem Mikroprozessor 10 synchron oder asynchron über die Datenspeicher-Datenleitung 115 zugeführt. Der in der Spezialfunktionseinheit 16 auszuführende Befehl wird dieser Einheit direkt und außerdem auch dem Mikroprozessor 10 zugeführt. Einige Operationscode sind für die Verwendung in der Spezialfunktionseinheit 16 vorgesehen, und die Zuordnung dieser Code kann einzigartig oder einmalig fixiert werden.
Die programmgesteuerten I/O-Geräte 17 und 19 sind mit dem Mikroprozessor 10 durch die Datenspeicher-Adressenleitung 114 und die Datenspeicher- Datenleitung 115 verbunden. Die Geräteadressen werden den I/O-Geräten vom Mikroprozessor 10 über die Datenspeicher-Adressenleitung 114 zugeführt. Wie erwähnt, werden die höchstrangigen Adressen für die Adressierung der I/O-Geräte verwendet. Die Datenübertragungen über die Datenspeicher- Datenleitung 115 dienen zur Verteilung der Daten auf die I/O-Geräte, den Mikroprozessor 10, den Datenspeicher 14 und gegebenenfalls die Spezialfunktionseinheit 16 auf Teilnehmerbetrieb- oder Mehrbenutzerbasis.
Im Mikroprozessor 10 kann eine Programmunterbrechung durch jede Einrichtung eingeleitet werden, die ein Unterbrechungsanforderungssignal auf die einzige Unterbrechungsanforderungsleitung PUA liefert. Die Unterbrechungsanforderungssignale der verschiedenen Einrichtungen werden dieser Leitung durch eine ODER-Verknüpfung zugeführt. Wenn der Mikroprozessor eine Anforderung für eine Programmunterbrechung erhält, wird diese interpretiert und jede Unterbrechung der Einrichtung wird durch spezielle Routinen oder Unterprogramme bedient.
Das Blockschaltbild gemäß Fig. 2 zeigt, daß der Mikroprozessor zwei Funktionseinheiten enthält, nämlich die Datenausführungseinheit und die Befehlsabrufeinheit. (Das Wort "Befehl" wird hier als Bezeichnung für den Operationscode zusammen mit seinen zugehörigen Operanden oder Operandenadressen verwendet.)
Die Datenausführungseinheit führt arithmetische und logische Operationen durch, die durch ein Befehlsrepertoire (Befehlsvorrat) definiert werden. Alle Operationen, die in dieser Einheit durchgeführt werden, bekommen ihre Operanden von einer Generalregisteranordnung 21 oder einen Sofort-Operanden von dem in einem Literalregister 210 gespeicherten Befehlswort oder ein apparativ verdrahtetes Literal. Die Operationen sind Register-Register-orientiert mit dem Ergebnis, daß sie in einem der ausgewählten Register des Stapels gespeichert oder über die Datenspeicher-Datenleitung 115 zu den I/O-Geräten, dem Datenspeicher 14 oder der Befehlsabrufeinheit übertragen werden. Zu den wesentlichen organisatorischen oder konstruktiven Merkmalen ("Architektur") der Datenausführungseinheit gehören das Rechenwerk (ALU) 27 und die Generalregisteranordnung 21.
Die ALU 27 führt alle arithmetischen und logischen Operationen aus, die durch das Befehlsrepertoire angegeben werden können. Verschiebungsbefehle, iterative Multiplikationsbefehle und iterative Divisionsbefehle können unter Verwendung der Möglichkeit einer Verschiebung um ein Bit nach links oder nach rechts an den ALU-Ausgangsklemmen durchgeführt werden.
Die Generalregisteranordnung 21 ist beispielsweise ein Vier- Eingangs-Zwischenspeicher für acht Wörter, der für die Speicherung arithmetischer Operanden verwendet wird. Die Operanden für die ALU 27 sind gleichzeitig an zwei Leseausgängen verfügbar. Beide Leseausgänge enthalten Halteschaltungen und sind voneinander unabhängig; jeder Ausgang kann den Inhalt irgendeines der acht Generalregister des Stapels für arithmetische Operationen liefern. Das abzufragende oder zu lesende Register wird durch ein Operandenbezeichnungsfeld im Befehlswort angegeben. Es sind ferner Schreibe- oder Speichereingänge zum Speichern von Daten in einem der Generalregister vom Ausgang der ALU und zum Speichern von Daten in ein anderes Generalregister von der Datenspeicher-Datenleitung 115 vorgesehen. Die Speicher- Eingänge sind unabhängig und können unter Programmsteuerung zugleich oder einzeln verwendet werden. Dies erlaubt, daß arithmetische Operationen von Register zu Register sich mit Datenspeicher-Register-Operationen überlappen. Die Ausgangssignale von den Generalregisterstapel-Halteschaltungen können, wie erwähnt, über die Operand-A- und Operand-B-Leitungen OPA bzw. OPB für die Verwendung in der Spezialfunktionseinheit 16 übertragen werden.
Die Befehlsabrufeinheit steuert die Befehlsfolge und den Zugriff zum Datenspeicher. Sie enthält eine Adressenregisteranordnung 22 für indirekte Adressen, einen Adressenaddierer 211, mit dem die Adressen auf den neuesten Stand gebracht werden können, einen Befehlszähler 212 und einen Programmzählerstapel 213. Die Adressenregisteranordnung 22 ist ein Vier-Eingangs-Zwischenspeicher für acht Wörter, der zur Speicherung indirekter Adressen dient. Die Anordnungen 21 und 22 haben vorzugsweise eine verhältnismäßig hohe Arbeitsgeschwindigkeit. Die im Adressenregisterstapel gespeicherten Adressen werden durch ein Befehlsfeld oder einen Befehlsabschnitt gewählt. Die Inhalte der gewählten Adressenregister werden durch einen Leseausgang oder ein Lesetor IR 4 zu einer Halteschaltung durchgeschleust und auf die Datenspeicher-Adressenleitung 114 gekoppelt, so daß ein Datenspeicherzugriff gleichzeitig mit der Durchführung arithmetischer Operationen in der Datenausführungseinheit stattfinden kann. Eine direkte Speicheradressierung ist im Mikroprozessor ebenfalls gestattet, die Adressen kommen hierfür direkt von dem unmittelbaren oder laufenden Operanden des Programmbefehlswortes. Eine indizierte Adressierung kann mit einer Folge von zwei Befehlen bewirkt werden, die unten erläutert werden wird. Das Adressenregister 7 (AR 7) unterscheidet sich von den anderen Adressenregistern darin, daß es als zwei Iterationszähler dient. Der Iterationszähler ICB ist die niederrangige Hälfte von AR 7 und der Iterationszähler ICA ist die höherrangige Hälfte.
Der Adressenaddierer 211 bringt die Adressen in der erforderlichen Weise auf den neuesten Stand, welche auf der Datenspeicher-Adressenleitung 114 verwendet werden. Dieses Fortschreiben der Adressen, das im Programmbefehlswort angegeben ist, findet während der Datenspeicherzugriffszeit statt, und die fortgeschriebene Adresse wird am Ende des Befehlsausführungszyklus in das gewählte Adressenregister zurückgespeichert. Die Adresse kann um ±1, ±2, ±3 oder durch eine in einem anderen Adressenregister gespeicherte Veränderliche fortgeschrieben werden.
Indizierte Adressen können unter Verwendung des Adressenaddierers 211 errechnet werden. Die Basisadresse, die als unmittelbarer oder laufender Operand im Programmbefehlswort erscheint, wird zum Inhalt eines gewählten Adressenregisters addiert. Das Ergebnis wird in einem reservierten Adressenregister gespeichert. Der nächste Befehl verwendet die errechnete indizierte Adresse in dem Adressenregister, um den Inhalt von dem gewünschten Datenspeicherplatz abzurufen. Die Stapeladressierung ist in Fig. 2 aus Übersichtlichkeitsgründen nicht dargestellt. Die Registeradressen sind Felder oder Bereiche im Befehl und sollen bei dem vorliegenden Beispiel drei Bits zur Adressierung eines aus acht Registern enthalten.
Fig. 3 zeigt eine Speicheranordnung, wie sie in einer bevorzugten Ausführungsform der Erfindung als Registerstapel verwendet wird. Der Registerstapel enthält eine Anordnung von Speicherzellen 300, die jeweils zwei Dateneingangsklemmen (typisch D 12 und D 22) und zwei Datenausgangsklemmen (typisch O 12 und O 22) aufweisen und durch Lesesignale (R 1 oder R 2) und Schreibesignale (W 1 oder W 2) gesteuert werden. Die drei Bits des Befehlsfeldes oder -bereiches, die zur Adressierung eines Registers verwendet werden, wie für R 1, die Bits 2¹⁸, 2¹⁷ und 2¹⁶ vom Befehlsregister, werden einem Eins- Aus-Acht-Decodierer 31 zugeführt. Solche Decodierer sind bekannt. Je nach der Kombination dieser Bits liefert eine der acht Ausgangsleitungen ein Steuersignal R 1 an eine gewählte Zeile von Zellen, die das adressierte Register enthalten. Ferner wird eines von einer Gruppe von UND-Gliedern 32 durch das Ausgangssignal des Decodierers 31 ansprechbereit gemacht, so daß Daten, die auf mit I 10 bis I 17 bezeichneten Datenleitungen 33 erscheinen, gespeichert werden, wenn ein Auftast- oder Taktsignal W 1 zugeführt wird. Die Daten-Ausgangssignale von den zugegriffenen Zellen werden einer ersten Gruppe von Halteschaltungen zugeführt, die durch ein Tast- oder Taktsignal A gesetzt werden. Die Zellen in der Anordnung können ferner durch einen Eins-Aus- Acht-Decodierer 35 adressiert werden, der ein Lesesignal R 2 entsprechend einem Wahlcode liefert, der von den Bits 2¹⁵, 2¹⁴ und 2¹³ des Befehlsregisters durchgeschleust wird. Die Ausgangssignale von den Zellen werden unter Steuerung durch ein Tastsignal B in einer zweiten Gruppe von Halteschaltungen gespeichert.
Die Schreibeadresse für die Zellen wird durch einen dritten Eins-Aus-Acht-Decodierer 36 geliefert, der durch ein Schreibsignal W 2 freigegeben wird. Die Signale W 2 kommen von dem geeigneten Feld oder Bereich des Befehls, z. B. den Bits 2¹², 2¹¹ und 2¹⁰. Die zu speichernde Information liegt auf den Eingangsleitungen 33, die mit I 20 bis I 27 bezeichnet sind.
Eine typische Speicherzelle ist in Fig. 4 dargestellt. Das Signal W 1 öffnet den zwei Inverter 41 und 42 koppelnden Stromweg, in dem ein P-Kanal-Feldeffekttransistor FET 43 gesperrt wird. Ein Signal DATA IN 1 wird der Eingangsklemme des Inverters 41 durch einen N-Kanal-FET 44 zugeführt, der durch das Signal W 1 aufgetastet wird. Wenn das Signal W 1 abgeschaltet wird, sperrt der FET 44 während der FET 43 aufgetastet wird, wobei letzterer die Schleife zwischen den Invertern 41 und 42 vervollständigt, so daß der Bitwert von DATA IN 1 gespeichert wird. Das Schreibsignal W 2 wirkt in der gleichen Weise wie das Signal W 1 für den Dateneingang DATA IN 2. Das Ausgangssignal eines Ausgangsinverters 45 wird durch einen von zwei N-Kanal-FET's durchgeschleust, je nachdem, ob das Lesekommandosignal R 1 oder das Lesesignal R 2 zugeführt werden.
Fig. 5 zeigt eine typische Halteschaltung. Sie enthält eine Torschaltung 51 mit zwei Transistoren, die durch ein Tastsignal aufgetastet wird, welches außerdem eine zweite Torschaltung 52 sperrt. Durch das Sperren der Torschaltung 52 wird ein Rückführungsweg zwischen zwei Invertern 53 und 54 unterbrochen, und das Auftasten der Torschaltung 51 bewirkt, daß die Daten von einer Klemme DATA IN auf den Eingang des Inverters 53 gekoppelt werden. Wenn das Tastsignal abgeschaltet wird, sperrt die Torschaltung 51, während die Torschaltung 52 aufgetastet wird, wodurch der Stromweg zwischen den Invertern 53 und 54 geschlossen und die Information gespeichert wird und ein ihr entsprechendes Ausgangssignal an einer Datenausgangsklemme des Inverters 54 auftritt. Durch ein Rücksetzsignal wird ein Transistor 55 gesperrt, der die Informationsrückführungsschleife unterbricht, und wird ein Transistor 56 aufgetastet, der dem Eingang des Inverters 53 ein Signal des Logikwertes Null (Massepotential) zuführt.
Der Befehlszähler (IPC) 212 in Fig. 2 dient zur Befehlsfolgesteuerung und kann mit Verzweigungsadressen gesetzt werden. Die Ausgangssignale vom Befehlszähler 212 werden über die Programmspeicher- Adressenleitung 112 übertragen, um den nächsten Befehl abzurufen, während gleichzeitig arithmetische Operationen entsprechend dem laufenden Befehl in der Datenausführungseinheit durchgeführt werden. Die Verzweigungsadressen für den Befehlsprogrammzähler stammen entweder von dem unmittelbaren Operandenfeld einer Klasse spezieller Befehle oder vom obersten Platz, Stapelwort A, eines Programmzählerstapels 213, wie unten noch erläutert werden wird.
Der Befehlsprogrammzählerstapel 213 (IPSTACK) ist ein LIFO- Registerstapel für vier Wörter, bei dem das zuletzt gespeicherte Wort beim Lesen als erstes abgerufen wird, er dient zur Bearbeitung von Unterbrechungen, zur Durchführung von Unter- oder Teilprogrammen und zur Durchführung von iterativen Programmschleifenverkettungen. Bei der Verkettung mit einem Unter- oder Teilprogramm werden die Programmadressenverkettungen vom Befehlsprogrammzähler im Stapel gespeichert, wobei die bereits vorhandenen Inhalte des Stapelregisters jeweils um einen Platz nach unten verschoben werden. Der anfängliche Inhalt des vierten Registers, das Stapelwort D, geht bei dieser Operation verloren. Wenn eine Rückkehr von einem Unterprogramm erfolgt, werden die Programmadressenverkettungen um einen Platz nach oben bewegt, wobei der anfängliche Inhalt des ersten Registers, das Stapelwort A, in den Befehlsprogrammzähler IPC übergeführt wird. Der Inhalt des vierten Registers, das Stapelwort D, bleibt dabei unverändert.
Ein Befehlswort ist beispielsweise 24 Bits lang und hat eines von zwei Grundbefehlswortformaten. Das erste Format ist dadurch gekennzeichnet, daß das höchststellige Bit (2²³) des Programmbefehlswortes den Logikwert Null hat. Es hat die Form:
Befehlsformat Klasse I
Das zweite Format ist dadurch gekennzeichnet, daß das höchststellige Bit des Programmbefehlswortes den Logikwert Eins hat und es hat die folgende Form:
Befehlsformat Klasse II
Die Ausgangssignale von den Befehlsregistern 210 und 218 werden zusammen mit denen von einem Taktgeber 23 und einem Programmzustandsregister 24 zum Erzeugen von Takt- und Steuersignalen durch einen Steuerteil 25 verwendet. Dem Steuerteil 25 werden als Eingangssignale ferner die DMA- und INT-(Unterbrechungsanforderungs-)Signale zugeführt. Die Steuersignale von Steuerteil 25 werden einem Untersteuerteil 29 zugeführt, der Steuersignale für die Befehlsabrufeinheit erzeugt, wenn die letztere eine getrennte Struktur ist oder sich auf einem getrennten Schaltungsplättchen befindet.
Die Steuersignale werden Torschaltungen zugeführt, die den Signalfluß in den verschiedenen Einheiten steuern. Beispielsweise dienen zwei Torschaltungen 217 und 219 dazu, die Operanden A bzw. B von den Lesehalteschaltungen der Generalregisteranordnung 21 weiterzuleiten, wenn sie durch zugeordnete Steuersignale aufgetastet werden. Andere Steuersignale steuern die ALU 27, den Addierer 211 und die Taktung der Registerstapel.
Bei Kenntnis eines Satzes von Registernamen und der detaillierten logischen Operationen, die durch eine Maschine oder Anlage durchzuführen sind, kann ein Durchschnittsfachmann auf dem Gebiete der Computer- Technik einen Steuerteil angeben, der Befehle des Befehlsvorrats auszuführen vermag. Es gibt sogar Computerprogramme, die dieses leisten, siehe z. B. das Buch "Digital Systems: Hardware Organization and Design" von F. J. Hill und G. R. Peterson, Verlag John Wiley & Sons (New York, 1973), ferner das Buch "A Programming Language" von K. E. Inverson, Verlag John Wiley & Sons (New York, 1962, und das Buch "Digital System Principles" von H. Hellermann, Verlag McGraw-Hill (New York, 1967).
Die Operationen werden manchmal in einer speziellen symbolischen Sprache codiert, um einem Programmierer den Entwurf eines Programmes zu erleichtern. Eine solche Sprache ist die in der oben angegebenen Literaturstelle erläuterte Programmsprache AHPL. Die in dieser Sprache verwendeten Symbole sind im folgenden aufgeführt:
Die primitiven Operatoren sind ( bedeutet: "ist definiert als"):
+ Binäre Addition (dyadisch); - Binäre Zweierkomplement-Subtraktion (dyadisch); ∧ Logisches UND (dyadisch); ⟩ Logisches ODER (dyadisch); ⊕ Logisches EXCLUSIVES ODER (dyadisch) und - Einer-Komplement (Querstrich) (monadisch).
Die Bezugsoperatoren sind:
= Ist gleich (dyadisch); ≠ Ungleich (dyadisch); < Kleiner als (dyadisch) und : Vergleiche (dyadisch gleichlange Vektoren).
Die gemischten Operatoren sind:
← Empfängt (dyadisch); ↑ Verschiebung um ein Bit nach rechts (monadisch); ↓ Verschiebung um ein Bit nach links (monadisch); SET Einstellen eines Ein-Bit-Operanden auf den Logikwert Eins (monadisch); RST Einstellen eines Ein-Bit-Operanden auf den Logikwert Null (monadisch) und , Verketten oder Zusammenfügen (dyadisch).
Spezielle Operatoren sind:
PSH IPSTACK-Operation, wobei SWD←(SWC); SWC←(SWB); SWB←(SWA); SWA←specifiz. Vector und POP IPSTACK-Operation, wobei SWA←(SWB); SWB←(SWC); SWC←(SWD).
Identifizierer sind:
LSB Niederstrangiges Acht-Bit-Byte eines monadischen Binärvektors; MSB Höchstrangiges Acht-Bit-Byte eines monadischen Binärvektors; Sg Höchstrangiges Bit eines monadischen Operanden (Vorzeichen); ε Binärvektor aus lauter logischen Einsen; ε¹ Binärer Nullvektor mit der Ausnahme, daß das niedrigststellige Bit eine Eins ist; ω j Die j niederstrangigen Bits eines Binärvektors und α j Die j höchstrangigen Bits eines Binärvektors.
Die Syntax umfaßt:
( )- bedeutet bei Verwendung mit einer binären Matrix eine spezielle Zeile oder ein spezielles Wort der Matrix;
- bedeutet, wenn es einen arithmetischen Ausdruck enthält, das Resultat dieses Ausdruckes;
- bedeutet, bei Verwendung mit einem Registernamen oder einer Speicheradresse den Inhalt des Registers oder des durch die Adresse bezeichneten Speicherplatzes; ;- trennt zusammengesetzte Funktionen und
IF . . . THEN . . . ELSE . . .
- der Ausdruck, der auf IF folgt, wird ausgewertet und auf eine Testgröße in Form eines Bits reduziert; wenn sich eine logische Eins ergibt, wird die Angabe, die auf THEN folgt, ausgeführt, wenn es eine logische Null ist, wird die Angabe ausgeführt, die auf ELSE folgt. In manchen Fällen ist die Angabe ELSE nicht erforderlich, z. B. wenn beim Testbit Null keine Maßnahme erforderlich ist.
Weitere verwendete Abkürzungen:
ARn- das durch das Rn-Feld bezeichnete Adressenregister, GRn- das durch das Rn-Feld bezeichnete Generalregister; DMAB- die Datenspeicher-Adressenschiene; DM(ARn)- der Datenspeicherplatz, der durch das Adressenregister adressiert wird, welches durch das Rn- Feld angegeben wird; IPC- Befehlsprogrammzähler; ICA- Weiterschalten des Zählers A; ICB- Weiterschalten des Zählers B; IMOP- unmittelbarer Operand, Bits (2⁰ bis 2¹⁵) von Befehlen der Klasse II; MIM- Hauptunterbrechungsmaskenbit; R 6 A- Register Sechs des Adressenregisterstapels; SAAC- Arithmetischen Bedingungscode setzen; SLCC- Logischen Bedingungscode setzen und SCCC- Vergleichsbedingungscode setzen.
Die Felder R 1 und R 2 der Befehle der Klasse I wählen die beiden Generalregister, die die Operanden enthalten, welche bei der Ausführung der begleitenden Operation verwendet werden sollen. In Fällen, bei denen das Ergebnis durch die ALU 27 gebildet wird, gibt das Feld R 1 auch das Generalregister an, in dem das Resultat zu speichern ist. Das Feld R 3 wählt das Generalregister, das Daten empfangen soll, welche sich zu dem Zeitpunkt, in dem das Resultat der durch die ALU ausgeführten Datenoperation in dem durch das Feld R 1 gewählten Register gespeichert wird, auf der Datenspeicher- Datenleitung 115 befinden. (Wenn die Spezialfunktionseinheit die Operation ausführt, werden nur die Daten auf der Datenspeicher-Datenleitung in dem durch das Feld R 3 angegebenen Generalregister gespeichert.) Das Feld R 4 wählt eines der Adressenregister für einen eventuellen Gebrauch während der Befehlsausführung. Der Inhalt des durch das Feld R 4 gewählten Registers wird zu Beginn des Befehlszyklus auf die Datenspeicher- Adressenschiene übertragen, um während des Ausführungszyklus einen Zugriff zum Datenspeicher 14 oder einem I/O-Gerät zu bewirken. Bei einer Adressierung des Datenspeichers wird die durchzuführende Operation durch die Inhalte der Felder OP CODE und EXT OP angegeben. Bei der Adressierung eines I/O-Gerätes wird die durchzuführende Operation durch die Adresse, die I/O- Steuersignale und die Konstruktion des I/O-Gerätes bestimmt.
Das Programmzustandsregister 24 (Fig. 2) speichert einen Bedingungscode, der vier Bits enthält. Bei der Ausführung bestimmter Befehle werden die Bits gesetzt oder zurückgesetzt, die durch andere Befehle für Verzweigungsentscheidungen benutzt werden. Ein Bit des Bedingungscodes ist das Bit OV, das durch einen arithmetischen Überlauf von der ALU 27 gesetzt wird. Wenn es einmal gesetzt ist, kann es nur durch einen der Befehle RSTAT, CSTAT oder LSTAT zurückgesetzt werden. Ein anderes Bit ist das Bit C, welches den Ausführungswert für bestimmte Befehle speichert und ein Eingangsbit für andere Befehle darstellt. Es wirkt als Verbindungs- oder Anschlußbit für Befehle betreffend doppelte Präzision oder Stellenzahl und Verschiebungen. Ein Bit N enthält das Vorzeichen des Resultats bestimmter Operationen. Das vierte Bit des Bedingungscodes ist das Bit Z, das gesetzt wird, um anzuzeigen, daß das Resultat einer bestimmten Operation den Wert Null hat und das zurückgesetzt wird, um ein von Null verschiedenes Resultat anzuzeigen.
Generell sind die den Bedingungscode beeinflussenden Befehle arithmetisch (SACC), logisch (SLCC) und Vergleich (SCCC). Die Resultate der Befehle SACC, SLCC und SCCC sind in der folgenden Tabelle aufgeführt:
Die übrigen Abkürzungen wurden oben in Verbindung mit der Programmsprache AHPL erwähnt.
Der Inhalt von dem gewählten Adressenregister wird durch den Adressenaddierer 211 durchgeschleust und entsprechend dem MODE-Feld um 0, +1, -1, +2, -2 oder +3 weitergeschaltet. Die so auf den neuen Stand gebrachte Adresse wird am Ende des Ausführungszyklus in das gewählte Adressenregister zurückgespeichert.
Das Feld EXT OP enthält drei Bits, die zur Erweiterung des Feldes OP CODE dienen, so daß acht Sätze von sechzehn Befehlen möglich sind. Das Feld MODE wird von der Befehlsabrufeinheit dazu verwendet, um verschiedene wahlweise Operationen zu steuern, um Adressenregister auf den neuesten Stand zu bringen, eine Befehlsprogrammzähler-Nachfolgesteuerung, iterative Schleifensteuerung oder Befehlsprogrammzählerstapelsteuerung zu bewirken. Der Inhalt des Feldes MODE gilt für alle Befehle der Klasse I mit der Ausnahme der Fälle, daß das Feld EXT OP die Werte 110 oder 111 enthält. Das Feld MODE bleibt bei gewissen Befehlen zur Übertragung von Information in die Adressenregister außer Betracht. Die speziellen MODE-Steuermöglichkeiten und ihre funktionellen Beschreibungen sind in der folgenden Tabelle I aufgeführt (alle Tabellen folgen am Ende der Beschreibung).
Für die erweiterten Operationssätze 0 oder 1, die durch die Werte 000 bzw. 001 des Feldes EXT OP bezeichnet werden, bewirken die Befehle der Klasse I bestimmte Register-Register-Operationen zusätzlich zu der Operation, die durch den Inhalt des Feldes OP CODE angegeben wird.
Bei dem erweiterten Operationssatz 0 werden zur gleichen Zeit, wie die arithmetische Operation durchgeführt wird, die Daten auf der Datenspeicher- Datenleitung 115 in einem Generalregister gespeichert. Beim erweiterten Operationssatz I wird das Resultat der durchgeführten arithmetischen Operation auf die Datenspeicher-Datenleitung 115 gekoppelt. Mit der Ausnahme des Falles, daß die Felder R 1 und R 3 gleich sind, beschränkt keine dieser Operationen die Spezifizierung und Leistungsfähigkeit der arithmetischen Operation. Für diese Befehle gibt der Inhalt der Felder R 1 und R 2 jeweils eines der acht Generalregister als Operand für den Befehl an. Die Inhalte der Felder R 1 und R 2 können unterschiedliche Generalregister oder das gleiche Generalregister als Quellen für die Befehlsoperanden bezeichnen. Die spezifizierte Funktion wird mit den beiden gewählten Operanden durchgeführt und das Resultat wird in demjenigen Generalregister gespeichert, das durch das Feld R 1 gewählt ist. Als Ergebnis der gewählten Operation wird ein Bedingungscodestatusregister auf einen aus einer Gruppe von speziellen Bedingungscodeeinstellungen gesetzt, der für die Operation angegeben ist.
Die Befehle für die erweiterten Operationssätze 0 und 1 sind in der Tabelle II aufgeführt.
Eine Angabe des erweiterten Operationssatzes 0 bedeutet, daß in dem durch das Feld R 3 des Befehles gewählten Generalregister der Inhalt von einem Platz im Datenspeicher oder von einem I/O-Gerät zu speichern ist, welcher bzw. welches durch das Adressenregister adressiert ist, das durch das Feld R 4 gewählt wurde. Die Speicherung erfolgt gleichzeitig mit dem Einschreiben des Resultates der spezifizierten Operation in das Generalregister, das durch den Inhalt des Feldes R 1 gewählt wurde. Wenn die Felder R 1 und R 3 gleich sind, findet eine Beschickung des Generalregisters unter Verwendung der Daten auf der Datenspeicher-Datenschiene nicht statt. Es wird nur das Resultat der angegebenen Operation in dem durch das Feld R 1 gewählten Generalregister gespeichert.
Die Angabe des erweiterten Operationssatzes 1 bedeutet, daß das Resultat der Operation in dem Datenspeicherplatz zu speichern oder zu dem I/O-Gerät übertragen ist, welcher bzw. welches durch das vom Feld R 4 des Befehles gewählte Adressenregister angegeben wird. Die Speicherung des Resultats im Speicherplatz oder dem I/O-Gerät erfolgt gleichzeitig mit dem Einschreiben des Resultates in dem durch das Feld R 1 gewählten Generalregister. Wenn die Inhalte der Felder R 1 und R 3 gleich sind, wird das Resultat von der arithmetischen Operation auf die Datenspeicher-Datenschiene gekoppelt, es wird jedoch nicht in dem durch das Feld R 1 angegebenen Generalregister gespeichert.
Für die erweiterten Operationssätze 2 und 3, die durch die Werte 010 bzw. 011 des Feldes EXT OP bezeichnet werden, spezifizieren die OP CODES der Befehle der Klasse I die verschiedenen Operationen. Die Befehle für die erweiterten Operationssätze 2 und 3 sind in der hinten angefügten Tabelle III im einzelnen angegeben. Wenn man die erweiterten Operationssätze 2 und 3 angibt, hat dies die gleichen Speicher- oder Beschickungsfolgen mit zur Folge, wie es für die erweiterten Sätze 0 bzw. 1 angegeben ist.
Bei dem erweiterten Operationssatz 4, der durch den Wert 100 im Feld EXT OP bezeichnet wird, spezifizieren die Befehle der Klasse I einen speziellen Satz arithmetischer Operationen. Beispielsweise spezifizieren die OP CODES 0000 bis 0111 Operationen, bei denen die Inhalte der durch die Felder R 3 und R 4 bezeichneten Register in der arithmetischen Operation nicht verwendet werden. Statt dessen werden die Inhalte des Bedingungscodestatusregisters und der Generalregister, die durch die Felder R 1 und R 2 bezeichnet werden, als Operanden verwendet. Die Inhalte des durch das Feld R 4 bezeichneten Adressenregisters gibt die Adresse des Datenspeicherplatzes oder das I/O-Gerät an, von dem Daten über die Datenspeicher-Datenschiene abzurufen und in dem durch das Feld R 3 angegebenen Generalregister zu speichern sind. (Diese Operation wird gleichzeitig mit der gewählten arithmetischen Operation durchgeführt.)
Mit den OP CODES 1000 bis 1111 wählt das Feld R 3 das Generalregister, das als Bestimmungsort für das arithmetische Resultat verwendet werden soll. Es erfolgt keine gleichzeitige Beschickung von Daten vom Datenspeicher oder einem I/O-Gerät. Während der Ausführung dieser Befehle, spezifiziert das Feld R 1 eine Prüfung der Bits C, N oder Z des Bedingungscodestatusregisters. Je nach dem Ergebnis der Bedingungscodeprüfung werden nur Einsen oder nur Nullen für den einen der Eingangsoperanden der ALU 27 verwendet. Der andere Eingangsoperand ist der Inhalt des durch das Feld R 2 gewählten Generalregisters. Das Resultat der angegebenen logischen Operation wird in dem durch das Feld R 3 angegebenen Generalregister gespeichert. In der Tabelle IV ist eine vollständige funktionelle Beschreibung aller Befehle des erweiterten Operationssatzes 4 enthalten.
Die Operationen RMIM und SMIM bewirken ein Rücksetzen bzw. Setzen des Bits MIM, das mit dem externen Unterbrechungsanforderungssignal INT einer UND-Verknüpfung unterworfen wird. Mit diesen Befehlen kann der Programmierer Unterbrechungen zulassen oder verhindern.
Im erweiterten Operationssatz 5, der durch den EXT OP-Codewert 101 bezeichnet wird, erfolgt die Durchführung der OP CODE-Operation durch die Spezialfunktionseinheit. Die Zuordnung der sechzehn Binärkombinationen des OP Code in diesem erweiterten Operationssatz ist ausschließlich eine Funktion der in Verbindung mit dem Mikroprozessor verwendeten Spezialfunktionseinheit. Bei der Ausführung dieser Befehle wählt das Feld R 1 das Generalregister, dessen Inhalt über die Operand-A-Leitungen OPA zugeführt wird und das Feld R 2 wählt das Generalregister, dessen Inhalt der Spezialfunktionseinheit über die Operand-B-Leitungen OPB zugeführt wird. Das Ergebnis der Operation der Spezialfunktionseinheit (SFU) wird auf die Datenspeicher- Datenschiene durchgeschleust und in dem durch das Feld R 3 bezeichneten Generalregister gespeichert. In diesen Befehlen kann das Feld MODE dazu verwendet werden, Operationen anzugeben, die gleichzeitig mit dem Inhalt des durch das Feld R 4 angegebenen Adressenregisters durchzuführen sind.
In dem erweiterten Operationssatz 6, der durch den Wert 110 des EXT-OP-Code bezeichnet wird, sind die durchgeführten Operationen ein Verkehr der Datenausführungseinheit mit der Befehlsabrufeinheit. Bei diesen Befehlen wird das MODE-Feld nicht zur Angabe simultaner Operationen verwendet und der ganze Datenspeicher, I/O-Geräte und Spezialfunktionseinheit-Verkehr wird gesperrt, da die Datenspeicher-Datenschiene als Verbindung zwischen den beiden Funktionseinheiten verwendet wird. Das Befehlsformat ist ein Dreiadressenbefehl, in dem die Felder R 1 und R 2 die Inhalte von Generalregistern als Operanden wählen, der OP-CODE die von der ALU 27 durchführende arithmetische Funktion angibt und das Feld R 4 ein Adressenregister als Bestimmungsort für das Resultat der ALU-Operation bezeichnet. Alternativ kann das Resultat der ALU 27 in einem durch das Feld R 1 bezeichneten Generalregister gespeichert werden, wenn die Felder R 1 und R 3 nicht gleich sind. Immer wenn das Adresssenregister 7 als Bestimmungsregister für das Ergebnis der Operation der ALU gewählt wird, tritt eine automatische Programmzählerstapeloperation (IPSTACK- Operation) ein. Der Programmzählerstapel wird (nach unten) verschoben und der Programmzählerwert +1 wird als Stapelwort A gespeichert. (Für eine Maschinenkonfiguration, die mit mehr als acht Bits in der Befehlsabrufeinheit arbeitet, wählt der OP CODE gewisse Operationen, die eine Bytespeicherung entweder in dem höchstrangigen oder dem niederstrangigen Byteplatz eines durch das Feld R 4 gewählten Adressenregisters bewirken.) Die Tabelle V enthält eine ins einzelne gehende funktionelle Beschreibung der sechzehn Operationen des erweiterten Operationssatzes 6.
Im erweiterten Operationssatz 7, der durch den EXT-OP-Code 111 bezeichnet wird, bewirken die Operationen eine Speicherung des Inhaltes von einem Adressenregister oder dem Befehlsprogrammzählerstapel in dem durch das Feld R 3 gewählten Generalregister oder unter Adressierung durch das Feld R 4 im Datenspeicher oder einem I/O-Gerät. (Die Information kann in Form ganzer Wörter gespeichert werden oder die höchstrangige Byte oder die niederstrangige Byte können getrennt gespeichert werden.).
Es gibt ferner Befehle zum Beschicken des Programmzählerstapels vom Datenspeicher, einem I/O-Gerät oder einem durch das Feld R 2 bezeichneten Generalregister. Das durch das Feld R 4 bezeichnete Adressenregister gibt den Datenspeicherplatz oder das I/O-Gerät an, welches als Quelle für die zu speichernde Information verwendet werden soll. (Der Programmzählerstapel kann mit ganzen Wörtern beschickt werden oder die höchstrangige Byte oder die niederstrangige Byte können getrennt gespeichert werden.) In diesem erweiterten Operationssatz ist das Feld MODE mit allen seinen Steuerkombinationen unwirksam für alle Befehle. Die Befehle im erweiterten Operationssatz 7 (EXT OP 7) sind in der Tabelle VI im einzelnen angegeben.
Bei den Befehlen der Klasse II werden im allgemeinen die sechzehn niederstelligsten Bits als laufender oder unmittelbarer Operand verwendet. In diesen Befehlen gibt das Feld R 1 entweder ein Generalregister, ein Adressenregister oder im Falle eines Verzweigungsbefehles eine Erweiterung des Operationscodes an. Diese Befehlsklasse enthält sechzehn Befehle mit speziellen Operationen, die durch das OP-CODE-Feld angegeben werden. Immer wenn das Adressenregister 7 als Bestimmungsort für das Resultat der Operation gewählt wird, tritt eine automatische Programmzählerstapeloperation ein. In diesen Fällen wird der Programmzählerstapel in Speicherrichtung verschoben und der Programmzähler wird um +1 weitergeschaltet und sein Inhalt als Stapelwort A gespeichert. Die Befehle der Klasse II sind in der Tabelle VII im einzelnen angegeben.
Das beschriebene Ausführungsbeispiel eines Mikroprozessors hat einen Befehlssatz und eine Schaltung, die sich besonders gut für eine Überlappung von Abruf- und Ausführungsoperationen eignet. Es ist besonders nützlich für Feldverarbeitungen. Die im einzelnen beschriebene Konstruktion läßt sich auf verschiedene Weise realisieren. Jede Funktionseinheit kann auf einem eigenen integrierten Schaltungsplättchen gebildet werden oder beide Einheiten können sich auf dem gleichen integrierten Schaltungsplättchen befinden. Der Vorteil der ersterwähnten Ausführungsform besteht darin, daß so viele integrierte Schaltkreise wie gewünscht hintereinandergeschaltet werden können, um eine Verarbeitung von Datenwörtern oder Befehlswörtern beliebiger Länge zu ermöglichen. Bei dem beschriebenen bevorzugten Ausführungsbeispiel war angenommen worden, daß die Datenwörter aus acht Bits und die Befehlswörter aus 24 Bits bestehen. Bei Verwendung von Datenwörtern mit sechzehn Bits kann man zwei Datenausführungseinheiten mit einer einzigen Befehlsabrufeinheit verwenden. Die Konstruktion ist hinsichtlich der Systemgröße anpassungsfähig.
Der im einzelnen beschriebene Befehlssatz oder -vorrat stellt nur eine von mehreren Möglichkeiten dar, die sich für die beschriebene Architektur eignen. Sowohl die Systeme als auch die Schaltungen, die zur Erläuterung des Konzepts und der Realisierung der Erfindung beschrieben wurden, lassen sich abwandeln.
Tabelle I
MODE-Zusatzsteuermöglichkeiten für Befehle der Klasse I
Tabelle II
Befehle Klasse I
Erweiterte Sätze 0 und 1 (EXT OP = 000 bzw. 001)
Operationen Register-Register und arithmetisch I
Tabelle III
Befehle Klasse I
Erweiterte Sätze 2 und 3 (EXT OP = 010 bzw. 011)
Operationen Register-Register und arithmetisch II
Tabelle IV
Befehle Klasse I
Erweiterter Operationssatz 4 (EXT OP = 100) spezielle arithmetische Befehle
Tabelle V
Befehle Klasse I
Erweiterter Operationssatz 6 (EXT OP = 110) Ausführungseinheit-Adresseneinheit-Befehle
Tabelle VI
Befehle Klasse I
Erweiterter Operationssatz 7 (EXT OP = 111) Adressierung-Ausführungseinheit-Befehle
Tabelle VII
Befehle Klasse II
Unmittelbare laufende Klasse

Claims (6)

  1. Mikroprozessor für die Verwendung in einem System mit einem Programmspeicher und einem Datenspeicher, wobei jeder dieser Speicher eine Adressenleitung (114, 112) und eine Datenleitung (115, 113) enthält, und wobei der Mikroprozessor eine Datenausführungseinheit mit
    • a) einer Generalregisteranordnung (21) mit einem Zugriffseingang (PORT B, GR 2) zum Auslesen der Inhalte eines ausgewählten Registers der Generalregisteranordnung (21) und mit einem Eingang (PORT B, GR 3) zum Einschreiben der Inhalte in ein ausgewähltes Register der Generalregisteranordnung (21), wobei der Eingang (PORT B, GR 3) mit dem Datenspeicher verbunden ist,
    • b) einem Rechenwerk (27), das zum Empfang (über 219) von Operanden vom einen Zugriffseingang (PORT B, GR 2) der Generalregisteranordnung (21) geschaltet ist und in Abhängigkeit von diesem Operanden selektive Operationen zur Erzeugung von Ergebnissignalen an einem Ausgang ausführt,
    • c) ersten Schaltungen zum Übertragen der Ergebnissignale an die Datenleitung (115) des Datenspeichers und
    • d) einer Steueranordnung (25, 210) mit einer Befehlsregisteranordnung (210) zum Speichern des laufenden, gerade ausgeführten Befehls und mit einem Taktgeber (23) zur Erzeugung von Steuersignalen, die zur Steuerung der Auswahl der Register der Generalregisteranordnung (21) und zur Steuerung der Operation des Rechenwerkes (27) während der Ausführung des laufenden Befehls dienen, so daß Daten an der Datenleitung (115, 113) des Datenspeichers, die entweder vom Datenspeicher oder von dem Rechenwerk (27) stammen, in ein in der Generalregisteranordnung (21) ausgewählten Register während der Ausführung eines Befehls eingeschrieben werden können,
  2. und eine Befehlsabrufeinheit mit
    • e) einer Adressenregisteranordnung (22) mit einem Zugriffseingang (IR 4) zum Auslesen der Inhalte eines ausgewählten Registers der Adressenregisteranordnung (22) und mit einem Eingang (IR 4) zum Einschreiben der Inhalte in ein ausgewähltes Register der Adressenregisteranordnung (22),
    • f) einer Befehlszähleranordnung (212) zum Speichern einer Programmspeicheradresse des als nächstes auszuführenden Befehls,
    • g) zweiten Schaltungen zum selektiven Verbinden der Befehlszähleranordnung (212) mit der Adressenleitung (112) des Programmspeichers in Übereinstimmung mit den Steuersignalen und
    • h) einem zusätzlichen Rechenwerk (211), das an einem Ausgang eine Modifikation einer an einen Eingang des zusätzlichen Rechenwerkes (211) angelegten Adresse erzeugt, wobei die Modifikation in Übereinstimmung mit den Steuersignalen erfolgt, und
    • i) dritten Schaltungen zum selektiven Verbinden des Zugriffseingangs (IR 4) der Adressenregisteranordnung (22) mit entweder der Adressenleitung (114) des Datenspeichers oder dem Eingang des zusätzlichen Rechenwerkes (211) in Übereinstimmung mit den Steuersignalen und zum selektiven Verbinden des Ausganges des zusätzlichen Rechenwerkes (211) mit dem Zugriffseingang (IR 4) der Adressenregisteranordnung (22) in Übereinstimmung mit den Steuersignalen, derart, daß während der Ausführung eines Befehls in der Datenausführungseinheit ein nächster Befehl von dem Programmspeicher durch die Befehlsabrufeinheit abgerufen werden kann, aufweist,
  3. dadurch gekennzeichnet, daß die Generalregisteranordnung (21) in der Datenausführungseinheit
    • j) einen zusätzlichen Zugriffseingang (GR 1) zum Auslesen der Inhalte aus einem ausgewählten Register der Generalregisteranordnung (21) und
    • k) einen zusätzlichen Eingang (GR 1) zum Einschreiben der Inhalte aus einem ausgewählten Register der Generalregisteranordnung (21) enthält,
  4. daß die Generalregisteranordnung (21) gleichzeitig an den einem Zugriffseingang (GR 2) und dem zusätzlichen Zugriffseingang (GR 1) die Inhalte der beiden entsprechenden Register der Generalregisteranordnung (21) ausliest, die in Übereinstimmung mit den Steuersignalen ausgewählt wurden, und gleichzeitig von dem einen Eingang (GR 3) und den zusätzlichen Eingang (GR 1) die Inhalte von zwei entsprechenden Registern der Generalregisteranordnung (21) ausliest, die in Übereinstimmung mit den Steuersignalen ausgewählt wurden,
    daß in der Datenausführungseinheit außerdem
    • l) vierte Schaltungen vorgesehen sind, die selektiv die Ergebnissignale von dem Ausgang des Rechenwerkes (27) zum zusätzlichen Eingang (GR 1) der Generalregisteranordnung (21) durchschalten,
      daß die Adressenregisteranordnung (22) in der Befehlsabrufeinheit außerdem
    • m) einen weiteren Zugriffseingang (ICA, ICB) zum Auslesen der Inhalte eines ausgewählten Registers der Adressenregisteranordnung (22) und
    • n) einen weiteren Eingang (IR 1) zum Einschreiben der Inhalte eines ausgewählten Registers der Adressenregisteranordnung enthält,
  5. daß die Adressenregisteranordnung (22) durch die Steueranordnung (25, 210) zum gleichzeitigen Auslesen der Inhalte von zwei entsprechenden Registern der Adressenregisteranordnung (22) an dem einen Zugriffseingang (IR 4) und an dem weiteren Zugriffseingang (ICA, ICB) in Übereinstimmung mit den Steuersignalen und zum gleichzeitigen Einschreiben der Inhalte von zwei entsprechenden Registern der Adressenregisteranordnung (22) von dem einen Eingang (IR 4) und von dem weiteren Eingang (IR 1) in Übereinstimmung mit den Steuersignalen gesteuert wird, und daß die Befehlabrufeinheit außerdem
    • o) fünfte Schaltungen zum selektiven Verbinden der Datenleitung (115) des Datenspeichers mit dem weiteren Eingang (IR 1) der Adressenregisteranordnung (22) in Übereinstimmung mit den Steuersignalen aufweist, so daß
  6. beispielsweise in der Datenausführungseinheit während der Ausführung eines Befehls von den Ausgängen der Generalregisteranordnung (21) ausgelesene Datenwerte gleichzeitig an die Datenleitung (115) des Datenspeichers und an einem Eingang des Rechenwerkes (27) anlegbar sind und daß an der Datenleitung (115) des Datenspeichers und an dem Ausgang des Rechenwerkes (27) erscheinende Datenwerte gleichzeitig über den einen und den zusätzlichen Eingang in entsprechende Register der Generalregisteranordnung (21) eingeschrieben werden können, und
    beispielsweise in der Befehlsabrufeinheit während der Ausführung eines Befehles von dem einen Zugriffseingang (IR 4) und dem weiteren Zugriffseingang (ICA, ICB) der Adressenregisteranordnung (22) ausgelesene Adressen gleichzeitig an die Adressenleitung (114) des Datenspeichers und an den Eingang des zusätzlichen Rechenwerkes (211) anlegbar sind und an der Datenleitung (115) des Datenspeichers und an dem Ausgang des Rechenwerkes (211) erscheinende Adressen gleichzeitig über den einen Eingang (IR 4) und den weiteren Eingang (IR 1) in entsprechende Register der Adressenregisteranordnung (22) eingeschrieben werden können.
DE19772755273 1976-12-13 1977-12-12 Mikroprozessor Granted DE2755273A1 (de)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US05/749,994 US4079455A (en) 1976-12-13 1976-12-13 Microprocessor architecture

Publications (2)

Publication Number Publication Date
DE2755273A1 DE2755273A1 (de) 1978-06-15
DE2755273C2 true DE2755273C2 (de) 1987-09-03

Family

ID=25016084

Family Applications (1)

Application Number Title Priority Date Filing Date
DE19772755273 Granted DE2755273A1 (de) 1976-12-13 1977-12-12 Mikroprozessor

Country Status (7)

Country Link
US (1) US4079455A (de)
JP (1) JPS5374858A (de)
DE (1) DE2755273A1 (de)
FR (1) FR2373828A1 (de)
GB (1) GB1590028A (de)
IT (1) IT1088703B (de)
SE (1) SE425527B (de)

Families Citing this family (55)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4247893A (en) * 1977-01-03 1981-01-27 Motorola, Inc. Memory interface device with processing capability
US4217638A (en) * 1977-05-19 1980-08-12 Tokyo Shibaura Electric Co., Ltd. Data-processing apparatus and method
US4272829A (en) * 1977-12-29 1981-06-09 Ncr Corporation Reconfigurable register and logic circuitry device for selective connection to external buses
US4403282A (en) * 1978-01-23 1983-09-06 Data General Corporation Data processing system using a high speed data channel for providing direct memory access for block data transfers
US4363091A (en) * 1978-01-31 1982-12-07 Intel Corporation Extended address, single and multiple bit microprocessor
JPS54114687A (en) * 1978-02-27 1979-09-06 Toyoda Mach Works Ltd Sequence controller
WO1979000959A1 (en) * 1978-04-21 1979-11-15 Ncr Co A computer system having enhancement circuitry for memory accessing
US4255785A (en) * 1978-09-25 1981-03-10 Motorola, Inc. Microprocessor having instruction fetch and execution overlap
US4217657A (en) * 1978-10-18 1980-08-12 Honeywell Inc. Floating point arithmetic control
US4298927A (en) * 1978-10-23 1981-11-03 International Business Machines Corporation Computer instruction prefetch circuit
US4316244A (en) * 1978-11-08 1982-02-16 Data General Corporation Memory apparatus for digital computer system
US4310879A (en) * 1979-03-08 1982-01-12 Pandeya Arun K Parallel processor having central processor memory extension
US4296470A (en) * 1979-06-21 1981-10-20 International Business Machines Corp. Link register storage and restore system for use in an instruction pre-fetch micro-processor interrupt system
US4279016A (en) * 1979-06-21 1981-07-14 International Business Machines Corporation Instruction pre-fetch microprocessor interrupt system
US4306286A (en) * 1979-06-29 1981-12-15 International Business Machines Corporation Logic simulation machine
US4367524A (en) * 1980-02-07 1983-01-04 Intel Corporation Microinstruction execution unit for use in a microprocessor
US4412283A (en) * 1980-05-30 1983-10-25 Fairchild Camera & Instrument Corp. High performance microprocessor system
US4434461A (en) 1980-09-15 1984-02-28 Motorola, Inc. Microprocessor with duplicate registers for processing interrupts
US4390963A (en) * 1980-09-15 1983-06-28 Motorola, Inc. Interface adapter architecture
US4486624A (en) * 1980-09-15 1984-12-04 Motorola, Inc. Microprocessor controlled radiotelephone transceiver
JPS5757345A (en) * 1980-09-24 1982-04-06 Toshiba Corp Data controller
US4656580A (en) * 1982-06-11 1987-04-07 International Business Machines Corporation Logic simulation machine
DE3305693A1 (de) * 1983-02-18 1984-08-30 Nixdorf Computer Ag Schaltungsanordnung zur zwischenspeicherung von befehlsworten
US4737933A (en) * 1983-02-22 1988-04-12 Storage Technology Partners CMOS multiport general purpose register
WO1985000453A1 (en) * 1983-07-11 1985-01-31 Prime Computer, Inc. Data processing system
US4575793A (en) * 1983-08-19 1986-03-11 Cxi, Inc. Personal-computer to 3270 system interfacing apparatus
EP0136218A3 (de) * 1983-08-29 1988-04-20 FAIRCHILD CAMERA &amp; INSTRUMENT CORPORATION Pipeline-Mehrtorprozessor
US4630045A (en) * 1983-10-24 1986-12-16 International Business Machines Corporation Controller for a cross-point switching matrix
US4831521A (en) * 1983-11-10 1989-05-16 General Signal Corporation Vital processor implemented with non-vital hardware
JPS60156151A (ja) * 1983-12-23 1985-08-16 Nec Corp メモリアクセス制御装置
JPS61115153A (ja) * 1984-11-09 1986-06-02 Hitachi Ltd デ−タ処理装置
JPH0776917B2 (ja) * 1984-12-29 1995-08-16 ソニー株式会社 マイクロコンピユ−タ
JPS6347833A (ja) * 1986-08-15 1988-02-29 Nec Corp マイクロコンピユ−タ
US5146606A (en) * 1986-09-18 1992-09-08 Digital Equipment Corporation Systems for interconnecting and configuring plurality of memory elements by control of mode signals
US4985832A (en) * 1986-09-18 1991-01-15 Digital Equipment Corporation SIMD array processing system with routing networks having plurality of switching stages to transfer messages among processors
US5230079A (en) * 1986-09-18 1993-07-20 Digital Equipment Corporation Massively parallel array processing system with processors selectively accessing memory module locations using address in microword or in address register
US6108763A (en) * 1986-09-18 2000-08-22 Grondalski; Robert S. Simultaneous parity generating/reading circuit for massively parallel processing systems
US5226129A (en) * 1986-10-30 1993-07-06 Nec Corporation Program counter and indirect address calculation system which concurrently performs updating of a program counter and generation of an effective address
JPS63285635A (ja) * 1987-05-18 1988-11-22 Fanuc Ltd プロセッサ制御方式
EP0293517B1 (de) * 1987-06-02 1992-11-25 Deutsche ITT Industries GmbH Steuerprozessor
US4953078A (en) * 1987-10-28 1990-08-28 Digital Equipment Corporation Apparatus and method for multi-threaded program execution in a microcoded data processing system
JPH0795269B2 (ja) * 1988-11-04 1995-10-11 富士通株式会社 命令コードのデコード装置
US5440749A (en) * 1989-08-03 1995-08-08 Nanotronics Corporation High performance, low cost microprocessor architecture
GB9018990D0 (en) * 1990-08-31 1990-10-17 Ncr Co Register control for workstation interfacing means
US5473271A (en) * 1993-02-09 1995-12-05 Dallas Semiconductor Corporation Microprocessor output driver
JPH08110886A (ja) * 1994-10-07 1996-04-30 Ricoh Co Ltd Dmaコントローラ及びファクシミリ装置
US5802359A (en) * 1995-03-31 1998-09-01 International Business Machines Corporation Mapping processor state into a millicode addressable processor state register array
JP3211750B2 (ja) * 1997-02-27 2001-09-25 株式会社デンソー 情報処理装置及びパイプライン処理方法
US6970985B2 (en) * 2002-07-09 2005-11-29 Bluerisc Inc. Statically speculative memory accessing
US20050114850A1 (en) 2003-10-29 2005-05-26 Saurabh Chheda Energy-focused re-compilation of executables and hardware mechanisms based on compiler-architecture interaction and compiler-inserted control
US7996671B2 (en) 2003-11-17 2011-08-09 Bluerisc Inc. Security of program executables and microprocessors based on compiler-architecture interaction
US8607209B2 (en) 2004-02-04 2013-12-10 Bluerisc Inc. Energy-focused compiler-assisted branch prediction
US20070294181A1 (en) * 2006-05-22 2007-12-20 Saurabh Chheda Flexible digital rights management with secure snippets
US20080126766A1 (en) 2006-11-03 2008-05-29 Saurabh Chheda Securing microprocessors against information leakage and physical tampering
US20080154379A1 (en) * 2006-12-22 2008-06-26 Musculoskeletal Transplant Foundation Interbody fusion hybrid graft

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3737866A (en) * 1971-07-27 1973-06-05 Data General Corp Data storage and retrieval system
US3896418A (en) * 1971-08-31 1975-07-22 Texas Instruments Inc Synchronous multi-processor system utilizing a single external memory unit
US3757308A (en) * 1971-09-03 1973-09-04 Texas Instruments Inc Data processor
US3748649A (en) * 1972-02-29 1973-07-24 Bell Telephone Labor Inc Translator memory decoding arrangement for a microprogram controlled processor
NL7410610A (nl) * 1973-08-10 1975-02-12 Data General Corp Stelsel voor het verwerken van gegevens.
JPS511157A (en) * 1974-06-24 1976-01-07 Nippon Electric Co Reezakosenomochiita shojunsochi
US3984813A (en) * 1974-10-07 1976-10-05 Fairchild Camera And Instrument Corporation Microprocessor system
US3962682A (en) * 1974-10-30 1976-06-08 Motorola, Inc. Split low order internal address bus for microprocessor
US3980992A (en) * 1974-11-26 1976-09-14 Burroughs Corporation Multi-microprocessing unit on a single semiconductor chip
US3988717A (en) * 1975-08-06 1976-10-26 Litton Systems, Inc. General purpose computer or logic chip and system

Also Published As

Publication number Publication date
US4079455A (en) 1978-03-14
SE7713451L (sv) 1978-06-14
JPS5374858A (en) 1978-07-03
DE2755273A1 (de) 1978-06-15
FR2373828B1 (de) 1981-11-20
IT1088703B (it) 1985-06-10
SE425527B (sv) 1982-10-04
FR2373828A1 (fr) 1978-07-07
GB1590028A (en) 1981-05-28

Similar Documents

Publication Publication Date Title
DE2755273C2 (de)
DE2907181C2 (de) Prozessor mit einem Befehlssatz-Modifizierregister
DE1499722C2 (de) Einrichtung zur Modifizierung von Informationswörtern
DE4010119C2 (de) Anordnung und Verfahren zur Umordnung eines Speicherformats in einem Mikroprozessor
EP0097725B1 (de) Einrichtung im Befehlswerk eines mikroprogrammgesteuerten Prozessors zur direkten hardwaregesteuerten Ausführung bestimmter Instruktionen
DE2935906C2 (de) Mikroprozessor
DE2524046C2 (de) Elektronische Datenverarbeitungsanlage
DE2117936A1 (de) Mikroprogrammgesteuerte Zentraleinheit eines elektronischen Datenverarbeitungssystems
DE1549523B2 (de) Datenverarbeitungsanlage
DE2019444A1 (de) Datenverarbeitungsanlage
DE69732793T2 (de) Acht-bit-mikrokontroller mit risc-architektur
EP0010185A1 (de) Virtuell-Adressiervorrichtung für einen Computer
DE2364865A1 (de) Erweitertes speicheradressenbildungssystem eines digitalen rechnersystems
DE2245284A1 (de) Datenverarbeitungsanlage
DE2725614C2 (de)
DE2854400A1 (de) Anordnung zum wechsel zwischen verzahnt zu verarbeitenden programmen
DE2336676A1 (de) Einrichtung zur modifizierung von mikroprogrammbefehlen
DE2835110A1 (de) Schneller echtzeit-rechneremulator
CH632349A5 (de) Einrichtung zur mikrobefehlssteuerung.
DE1806464A1 (de) Adressengenerator fuer einen Digitalrechner
DE2622140C3 (de) Einrichtung zur Steuerung manueller Operationen
DE2150292C2 (de) Mikroprogrammgesteuerte Datenverarbeitungsanlage mit überlagerter Ausführung und Entnahme von Befehlen
DE1524211A1 (de) Datenverarbeitungsanlage
DE2502005C2 (de) Schaltungsanordnung zur Zuordnung von Adressen zu Operationen zwecks Ausführung von Befehlen in einer Datenverarbeitungseinrichtung
DE2760416C2 (de) Verzweigungssteueranordnung für eine elektronische Datenverarbeitungsanordnung

Legal Events

Date Code Title Description
OD Request for examination
D2 Grant after examination
8364 No opposition during term of opposition
8339 Ceased/non-payment of the annual fee