DE2756768A1 - Mikroprozessor-architektur - Google Patents

Mikroprozessor-architektur

Info

Publication number
DE2756768A1
DE2756768A1 DE19772756768 DE2756768A DE2756768A1 DE 2756768 A1 DE2756768 A1 DE 2756768A1 DE 19772756768 DE19772756768 DE 19772756768 DE 2756768 A DE2756768 A DE 2756768A DE 2756768 A1 DE2756768 A1 DE 2756768A1
Authority
DE
Germany
Prior art keywords
register
address
cycle
output
data
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.)
Granted
Application number
DE19772756768
Other languages
English (en)
Other versions
DE2756768C2 (de
Inventor
George Bohoslaw Marenin
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.)
International Business Machines Corp
Original Assignee
International Business Machines 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 International Business Machines Corp filed Critical International Business Machines Corp
Publication of DE2756768A1 publication Critical patent/DE2756768A1/de
Application granted granted Critical
Publication of DE2756768C2 publication Critical patent/DE2756768C2/de
Expired legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/20Handling requests for interconnection or transfer for access to input/output bus
    • G06F13/32Handling requests for interconnection or transfer for access to input/output bus using combination of interrupt and burst mode transfer
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/20Handling requests for interconnection or transfer for access to input/output bus
    • G06F13/28Handling requests for interconnection or transfer for access to input/output bus using burst mode transfer, e.g. direct memory access DMA, cycle steal
    • G06F13/282Cycle stealing DMA
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/42Bus transfer protocol, e.g. handshake; Synchronisation
    • G06F13/4247Bus transfer protocol, e.g. handshake; Synchronisation on a daisy chain bus

Description

r/56768
Anmelderin: International Business Machines
Corporation, Armonk, N.Y. 10504 ru/bm
Mikroprozessor-Architektur
Die Erfindung betrifft eine Mikroprozessor-Architektur nach dem Oberbegriff des Anspruches 1.
Zum Stand der Technik gehören Mikroprozessoren mit drei oder vier separaten Funktionsgrundkomponenten (siehe Microprocessors, Electronics "Book Series", 1975, insbesondere Seiten 2 bis 6). Die erste Komponente ist ein Festwert-Mikroinstruktionsadreßregister für die Erhöhung, Verzweigung und Verbindung einzelner Maschinenelemente. Die zweite Komponente ist die zentrale arithmetische/logische Einheit, nachfolgend ALU genannt, mit ihren zugehörigen Registern und Datenbahnen. Die dritte Komponente ist die Adressier- und Datenverbindung mit dem Hauptspeicher, die im allgemeinen als Eingabe/Ausgabeein ■ heit behandelt wird und in der Architektur mit anderen Eingabe/Ausgabegeräten des Systems kombiniert ist. Bei ausreichender Verfeinerung des Mikroprozessors ist noch ein vierter Teil aus Registern- und Datenbahnen vorhanden, im allgemeinen Kanal genannt. Dieser dient zur Ausführung prioritätsgebundener Unterbrechungsumschaltungen und als Option der prioritätsgesteuerten Multiplex-Zykluszuordnung (manchmal auch direkter Speicherzugriff oder DMA genannt).
Die heutigen Mikroprozessoren können in zwei Gruppen unterteilt werden, die die oben beschriebenen Funktionen auf einen Satz von mehreren Chips verteilen. In der ersten Gruppe werden die verschiedenen Funktionen separaten Chips zugeordnet, beispielsweise einem ALU-Chip, einem Steuer-Chip, einem Adreß-Chip einem E/A-Chip und ROS/RAM-Chip (manchmal mit Adreßsteuerung). Bei der zweiten Gruppe werden die Prozessorfunktionen auf eine Anzahl identischer Chips verteilt.
sä 975 072 809828/0819
r/56768
Diese Technik wird "BitScheibentechnik" genannt und verlangt gewöhnlich separate E/A-Steuer-Chips (siehe obengenannte Veröffentlichung, Seiten 29 bis 34, 35 bis 40 und 93 bis 104).
Beide oben beschriebenen Lösungsmöglichkeiten verlangen umfangreiche Verbindungen zwischen den Chips, die jedoch durch die Anzahl der verfügbaren E/A-Stifte begrenzt sind und demzufolge zu einer Verdoppelung der Logik und auch zu Verzögerungen durch die erforderlichen Treiber und Empfänger außerhalb der Chips führen. Wenn die Daten- oder Adreßsammelleitungen bidirektional sind, können Signale erst gesendet oder empfangen werden, wenn zwischen den Treibern und Empfängern eines jeden Chips ein Gesamt-Ausschaltzustand und dann ein Gesamt-Einschaltzustand hergestellt ist. Das führt zu weiteren Verzögerungen. Außerdem verlangt jede dieser bidirektionalen Sammelleitungen E/A-Stifte und Treiber außerhalb des Chips, was zu einem größeren Layout und zu einer höheren Chipverlustleistung führt. Zur Überwindung dieser Nachteile kombinieren bestimmte Architekturen die Adreß- und Datensammelleitungen zu einer im Zeitmultiplex betriebenen Einheitssammelleitung. Durch dieses Prinzip werden die Verzögerungen jedoch noch größer.
Außerdem sind Prozessoren auf nur einem Chip aus der genannten Veröffentlichung, Seiten 22 bis 27, bekannt. Deren Leistungsfähigkeit hinsichtlich Datenflußbreite, logischer und arithmetischer Rechenleistung ist jedoch durch das Anschlußstift- und Sammelleitungs-Problem sowie die Taktierung
und Zeitsteuerung begrenzt. :
i <
Der Erfindung liegt die Aufgabe zugrunde, eine Mikroprozessor- \ j ι
!Architektur für einen Mikroprozessor auf einem Halbleiter- ! ι ι
chip mit einem Ringsammelleitungssystem und intern überlappt ablaufenden Operationen dahingehend zu verbessern, daß Einheiten durch mehrere Stufen von Unterbrechungen und Zykluszu-
SA 975 O72 809826/0819
^756768
Ordnungen die vorhandene arithmetisch/logische Einheit und das Sanunelleitungssystem mit einem Minimum an Steuerlogik und ohne zusätzliche Pufferregister gemeinsam benutzen können.
Die erfindungsgemäße Lösung besteht insbesondere im Kennzeicher des Patentanspruchs 1.
Dadurch, daß das Adreßregister in den Datenfluß der arithmetisch/logischen Einheit integriert ist und in abwechselnden Halbzyklen die arithmetisch/logische Einheit zur Erhöhung der sonstigen Veränderungen der Instruktionsadresse im Festwertspeicher benutzt, wird die arithmetisch/logische Einheit auf Zeitteilerbasis für die Verarbeitung von Daten, die Erhöhung der Mikroinstruktionsadresse, die Verzweigung bei relativer Adressierung, Die Verbindung von Unterroutinen, die Haupt Speicheradressierung, die Adreßveränderung, den Abruf und das Speichern von Daten, die Verarbeitung der prioritätsverknüpften Unterbrechungen und für Zykluszuordnungen, gemeinsam verwendet überlappte Operationen sowie eine optimale Ausnutzung des vorhandenen Leitungssystems mit einer sehr niedrigen Anzahl von Anschlußstiften nach außen, einschließlich der dazu erforderlichen Eingangs- und Ausgangsschaltungen sowie Treiber, sind die Folge.
Ein Ausführungsbeispiel der Erfindung ist in den beigefügten Zeichnungen dargestellt und wird anschließend näher beschrieben
Es zeigen:
Fig. 1 einen Lageplan der Fign. 1A, 1B und 1C, die in einem Schaltungs-Plan den Aufbau eines Mikroprozessors zeigen,
Fign. 2A, B, C in Zeitdiagrammen die Ausführung eines Grund-SA, B, C instruktionssatzes, der an die Architektur 4A, B, C des Mikrocomputersystems angepaßt ist und die Fign. 2, 3 und 4 die Beziehung dieser ZeItdiagramme zueinander.
SA 975 072
80^826/0819
Die vier Haupteinheiten des in Fig. 1 dargestellt! sind:
1. ein Zentralprozessor (CPU) 9, mit der arithmetischen und logischen Einheit 22 (nachfolgend ALU genannt), einem Kanal mit der Eingangssammelleitung 10 der Ausgangssammelleitung 12, der Adreßsammelleitung 21, der gemeinsamen Rufleitung 53 und Steuerleitungen 15 sowie mehreren Arbeitsregistern und einer Steuerschaltung,
2. ein lokales Speicherregister 14,
3. ein Hauptspeicher 12,
4. ein Festwertspeicher (ROS) 16, auch Ausführungsspeichel oder Mikroprogrammspeicher genannt.
Der Zentralprozessor 9 kann z. D. auf einem Chip ausgeführt sein, das in der heutigen Technik in einem Paket montiert ist, das weniger als 70 E/A-Stifte pro Modul braucht. Dieses CPU-Paket kann auf einer Karte zusammen mit einem Modul für den Festwertspeicher 16, einem Modul für die lokalen Speicherregister 14 (die z. B. 32 Register umfassen), zwei Modulen für die Hilfstreiber 18 und einem Oszillator (dargestellt durch die Ausgangsleitung 59) montiert sein. Ein kleiner Teil des Hauptspeichers 12 kann auch auf dieser Karte montiert sein oder auf einer zweiten Karte.
Daten, Instruktionen und Eingabe-/Ausgabebefehle werden zwischen der CPU 9 und anderen Einheiten über zwei unidirektionale Sammelleitungen übertragen, und zwar die Eingangssammelleitung 10 und die Ausgangssammelleitung 20. Die Eingangssammelleitung 10 empfängt Daten von den Eingabe-/ Ausgabegeräten (nicht dargestellt), dem Hauptspeicher 12 über die Hauptspeichersammelleitung 11, vom Festwert-
975 072 P09R26/0819
speicher 16 über die Festwertspeichersammelleitung 17 und von den lokalen Speicherregistern 14 über die Sammelleitung 13. Daten auf der Eingangssammelleitung 10 werden dem Programroregister 30 und direkte der arithmetisch/logischen Einheit 22 zugeführt. Wichtig ist vor allen Dingen die Tatsache, daß Daten und Informationen auf der Eingangssammelleitung 10 in einer Richtung der CPU 9 zugeführt werden. Treiber für die übertragung der Daten vom Chip der CPU 9 über die Eingangssammelleitung 10 sind nicht erforderlich. Treiber, deren Leistung ausreicht, um Daten auf die Eingangssammelleitung 10 zu setzen, sind für den Hauptspeicher 12, die lokalen Speicherregister 14 und den Festwertspeicher 16 vorgesehen. Der Hauptspeicher 12 kann außerdem Daten von der Eingangssammelleitung 10 nehmen, die vom lokalen Speicherregister 14 oder einem Eingabe/Ausgabegerät über die Sammelleitung 13 auf die Leitung gegeben wurden. Die Ausgangssammelleitung 20 leitet den Inhalt des Ausgabepufferregisters 26 an den Festwertspeicher 16, den Hauptspeicher 12, das lokale Speicherregister 14 und die E/A-Geräte (nicht dargestellt). Die Ausgangssammelleitung 20 dient für den Festwertspeicher 16 und den Hauptspeicher 12 als Adreßsamme 1 lei tung und für die lokalen Speieherregister 14 und die E/A-Geräte als Datensammelleitung. Die E/A-Geräte werden über sechs Adreßleitungen in der Sammelleitung 21 angesteuert, so daß bis zu 64 lokale Speicherregister 14 oder bis zu 63 E/A-Geräte direkt angesteuert werden können. Wie schon gesagt, führt die Eingangssammelleitung 10 Mikroinstruktionen oder Daten von den E/A-Geräten oder dem Speicher herein. Quelle oder Bestimmung für die Übertragungen auf den Sammelleitungen 10 und 20 werden über die Steuerleitungen 15 selektiert. Diese Steuerleitungen 15 werden durch den Hilfstreiber 18 erregt und verlassen ihn in der Darstellung in Fig. 1A als Steuer- und Taktleitungen 19. Dazu gehören die Selektionsleitungen für das lokale Speicherregister, 14, den Festwertspeicher 16, den Hauptspeicher 12, und die Schreibleitungen für das hohe und niedrige Byte. Ein
SA 975 O72 809826/0819
r/56768
E/A-Gerät wird selektiert, wenn die Selektionsleitung für die lokalen Speicherregister14 nicht aktiv ist und eine gültige Geräteadresse angegeben wird. Die Gültigkeit der Datenübertragungen auf der Ausgangssammelleitung 20 wird durch vorhergehende einer -Taktimpulse auf einer der Steuerleitungen 15 zeitlich gesteuert. Ausgehende Abfragesignale zeigen an, daß der lokale Speicherausgangscode LCO und der Selektiercode gültig sind. Hereinkommende Abfragesignale sind eine Antwort auf die ausgehenden Abfragesignale zur Feststellung der Gültigkeit der Datenübertragungen auf der Eingangssammelleitung 10 zu dem Prozessor 9 oder Befehlsantworten von den Geräten. Zusammen mit dem Takteingangshaltesignal, mit dem die Eingabe-/Ausgabegeräte das Weiterlaufen des CPU-Taktes verhindern können, gestatten diese Signale einen vollständig asynchronen E/A-Betrieb.
Anschließend werden die Eingabe-/Ausgabesammelleitungen 10, 19, 20, 21 und 31 und ihre Funktion kurz beschrieben.
Die Ausgangssammelleltung 20 umfaßt 10 Leitungen für die Datenausgabe der E/A-Geräte und lokalen Speicherregister 14 sowie für die Adreßausgabe des Hauptspeichers 12 und des Festwertspeichers 16.
Die Eingangssammelleitung 10 umfaßt 18 Leitungen für Mikroinstruktionen vom Festwertspeicher 16, für die Dateneingabe von E/A-Geräten sowie lokalen Speicherregistern 14 und für die Dateneingabe und -ausgabe vom Hauptspeicher Die gemeinsame Rufleitung 53 umfaßt sieben Multiplex-Zykluszuordnungsleitungen oder sieben Unterbrechungsstufen-Anforderungsleitungen. Die Zykluszuordnungsaufruf-Leitung ist eine der Leitungen 19 und wird zum ZyklusZuordnungsaufruf anstelle von Unterbrechungen auf der gemeinsamen Ruf-Sammelleitung 53 benützt. Löschen der Unterbrechungsprioritäten und Anfordern von Zykluszuordnungsprioritäten. Die Adreßsamme!leitung 21 besteht hier aus sechs Leitungen zum
S-A 975 072
809826/0 8-19
Adressieren von bis zu 64 Stellen in den lokalen Speicherregistern 14, zur Signalisierung der Zykluszuordnungsstufe oder zur Adressierung von bis zu 63 Eingabe-/Ausgabegeräten.
Zum Selektierausgang für die lokalen Speicherregister gehören die fünf Leitungen LSR-Selektion, Speicher-Selektion, ROS-Selektion, "Schreiben hohes Byte" und "Schreiben niedriges Byte", der Steuer- und Taktleitungen 19. (Wenn "Schreiben hohes oder niedriges Byte" nicht angegeben ist, handelt es sich um eine Leseoperation.)
Ein Signal auf der Abfrageausgangsleitung einer der Steuer- und Taktleitungen 19 zeigt an, daß die LSR-Codeausgangssignale oder ein Befehl während der Takte 3 bis 4 und 9 bis 14 gültig sind. Der Abfrageeingang schließt eine gemeinsame Leitung ein, auf der ein selektiertes Gerät auf einen Abfrageausgang antworten kann und die Daten gültig machen kann, die es auf die Eingangssammelleitung 10 gesetzt hat, oder auf einen Befehl antworten kann.
Ein E/A-Gerät fordert beim Signalanstieg auf einer Zykluszuordnungs-Eingangsleitung eines Zykluszuordnungsaufrufs an und beim Signalabfall zeigt es an, daß seine Priorität auf der gemeinsamen Rufleitung 53 gültig ist.
Ein Signal auf einer Unterbrechungs-Eingangsleitung zeigt an, daß auf der gemeinsamen Rufleitung 53 Unterbrechungen für eines oder mehrere Geräte ausstehen. Die Prioritäten sind dabei auf der gemeinsamen Rufleitung 53 angegeben. Die Oszillatorausgangslcitung 59 liefert kontinuierlich ein rechteckiges Taktsignal.
Durch ein Signal auf der Ruckstell-Eingangsleitung wird das System allgemein und nach der Stromeinschaltung zurückgestellt.
Die Ausgangsleitung für Takt 1 oder 9 ist eine der Steuer-SA 975 072 8 0 9826/0819
und Taktleitungen 19 für die kontinuierliche Taktierung auf der Ausgangssammelleitung 20 derjenigen Daten, die vorher auf der Pufferregister-Ausgangsleitung 28 waren. Die Taktausgangssiynalc 6, 7 oder 14, 15 (für Instruktionen für Doppelzyklus) auf den Leitungen 19 sorgen für die kontinuierliche Taktierung; ihr Abfallen zeigt das Ende einer Instruktion an.
Ein Sperrsignal für das hohe Speicherbyte v/ird vom Gerät erzeugt, wenn nur das niedrige Byte in den Hauptspeicher 12 geschrieben werden soll. Ein Sperrsignal für niedrige Speicherbytes wird vom Gerät abgegeben, wenn nur das hohe Byte in den Hauptspeicher 12 geschrieben werden soll. Wenn das Gerät beide Signale gleichzeitig anhebt, soll der Hauptspeicher gelesen werden.
Durch die Speicherdatenselektion können Daten vom Hauptspeicher 12 auf der Eingangssammelleitung 10 auftreten. Durch Sperren der Speicherdatenselektion kann ein Gerät seine Daten (beispielsweise eine Hauptspeicheradresse) auf die Eingangssammelleitung geben, damit sie in die lokalen Speicheradreßregister (Adreßregister für die Zykluszuordnung) geschrieben v/erden.
Das Steuersignal LSR-Schreiben wird vom Gerät abgegeben, um Datentabellen im Hauptspeicher zu verketten oder eine Erhöhung der Adresse im lokalen Speicherregister 14 zu verhindern.
Lokalspeicherregister-Ausgangscode (LCO)-Leitungen 21, Adressen 0 bis 63, zusammen mit LSR-Selektierleitung 19, adressierer das Lokalspeicherregister 14, Stellen 0 bis 63. Die Stellen 16 bis 23 werden für Unterbrechungen und die Stellen 24 bis 31 für ZyklusZuordnungen benutzt. LCO 21 Adressen 1 bis 63 ohne LSR-Selektierleitung 19, adressieren E/A-Geräte 1 bis 63, wobei Adresse 0 für Kanalfunktionen reserviert ist.
SA 975 072
809826/08 19
Im Zentralprozessor 9 verläuft die EingangsSammelleitung zur ALU 22 und zum Programmregister 30. Die Ausgabe des Programmregisters 30 wird über die Leitungen 33 an die ALU 22 und an den Instruktionsdecodierer 62 geführt. Der Adreßteil einer im Programmregister gespeicherten Instruktion wird außerdem über die Leitung 31 an das LSR-Ausgabesteuerregister 40 und das Erniedrigungsregister 38 gegeben. Die Ausgabe des Lrniedrigungsregisters 38 wird über die Leitung 39 an das Programmregister 30, das "Laufende Bedingung"-Register 48 und das Zählregister 50 zurückgeführt. Die Ausgabe des Zählregisters 50 wird über die Leitung 51 an das Erniedrigungsregister 38 und das LSR-Ausgabesteuerregister geleitet. Die Ausgabe des Registers 48 v/ird über die Leitung
49 an das Register 42 für den reservierten Bedingungscode gegeben. Die Ausgaben des Registers 48 und des Zählregisters
50 werden über die Leitung 43 auch an die ALU 22 gegeben. Der Datenfluß der CPU 9 ist 16 Bit für die ALU 22 und folgende Operantenregister:
Das Akkumulatorregister 3O, dessen Inhalt über die Leitung 33 auf jede Seite der ALU 22 geleitet werden kann.
Das Akkumulatorerweiterungsregister 36, dessen Inhalt über die Leitung 37 auf jede Seite der ALU geleitet werden kann.
Das Totalregister 24 ist der Ausgabepuffer für die ALU 22 und v/ird von der Sammelleitung 23 geladen. Das Programmregister 30 hält die Mlkroinstruktion, die durch den Instruktionsdecodierer 62 decodiert und dann ausgeführt werden soll. Der Inhalt des Programmregisters 30 kann auch über die Sammelleitung 33 in die ALU 22 geleitet werden. Der Inhalt des Mikrolnstruktions-Adreßregistere 32 kann über die Leitung 29 in die ALU 22 geleitet werden zur Adreßmodifikation oder für Verzwelgungs- und Verbindungsoperationen. Mit dem Zählregister 50 werden Verschiebungen gezählt und
SA 975 072
809826/0819
! - 14 -
! r/56768
die lokalen Speicherregister 14 indirekt adressiert. Der
Inhalt des Zählregisters 50 kann zur Ausführung verschiedener Operationen über die Leitung 43 zur ALU 22 geleitet v/erden. Der Ausgabepuffer 26 hält auf die Pufferregister-Ausgangsleitung 28 gegebene Daten fest. Hinter dem HiIfstreiber 18 erscheint diese Pufferregister-Ausgangsleitung 28 als Ausgangssammelleitung 20. Besondere noch zu beschreibende Instruktionen retten den Inhalt des Ausgabepufferregisters
26 in die lokalen Speicherregister 14, Pos. 0, v/o sie dann für verschiedene Operationen über die Eingangssanunelleitung 10 in die ALU 22 eingegeben werden können. Die Ausgabe des Totalregisters 24 erscheint auf der Sammelleitung 25 und wird unter Steuerung der Signale vom Instruktionsdecodierer 62 weitergeleitet, um folgende Register zu laden: Das Mikroinstruktionsadreßregister 32, das Akkumulatorregister 34, das Akkumulator-Erweiterungsregister 36, das Fehlerregister 46, das Unterbrechungsmasken-Register 44, das Zählregister 50, das "Laufende Bedingung"-Register 4 8 und das Ausgabepufferregister 26. Die Ausgabe des Unterbrechungsmasken-Registers 44 wird über die Leitungen 45 und 43 der ALU 22 und über die Leitung 45 dem Unterbrechungstor 52 zugeführt. Außerdem kann die aus den vier wertniederen Bits bestehende Ausgabe des Totalregisters 24 über die Leitung
27 den werthohen Bits des Mikroinstruktions-Adreßregisters 32 zugeführt v/erden.
Die für ZyklusZuordnungen und Unterbrechungsanforderungen multiplex geschaltete gemeinsame Rufleitung 53 ist mit dem Unterbrechungstor 52 und dem Prioritütscodiorer 54 verbunden. Die Verbindung mit dom Prioritätscodierer 54 dient Zykluszuordnungen, die eine höhere Priorität haben als Unterbrechungen. Die Ausgabe des Unterbrechungstores 52 wird über die Leitungen 69 an den Prioritätscodierer 54 geleitet. Seine Ausgabe wird über die Leitungen 55 an das Register 56 für laufende Unterbrechungen an eine Unterbrechungs-Testschaltung 58 und an das LSR-Ausgabesteuerregister 40 geleitet. Die
SA975072 809826/0819
r/56768
Ausgabe der Unterbrechungs-Testschaltung 58 erscheint auf der Leitung 63 zum Forcieren eines Unterbrechungs-Erzwingungssignals für eine höhere Stufe. Die Ausgabe des Registers 56 wird über die Leitungen 57 an die Unterbrechungs-Testschaltung 58 und an das LSR-Ausgabesteuerregister 40 geleitet.
Die Taktsignale auf Leitung 59 von einem Einphasenoszillator werden dem 4-Phasen-Generator 60 zugeführt, dessen Ausgabe auf der Leitung 61 zum Taktgeber 66 und zum HiIfstaktgeber 64 läuft. Mit den Ausgangssignalen dieser Taktgeber und Ausgangssignalen des Instruktionsdecodierers 62 wird der Betrieb der CPU 9 einschließlich der Durchschaltung der Sammelleitung zu den verschiedenen Operandenregistern und der Zeitteilung der verschiedenen Sammelleitungen und Register gesteuert.
Im Zusammenhang mit Fig. 5 wird die ZyklusZuordnung und der Unterbrechungskanal genauer beschrieben. Soweit wie möglich werden dieselben Bezugszahlen wie für die Elemente in Fig. 1 benutzt. Die Leitungen 530 bis 536 in Fig. 5 stellen die einzelnen Leitungen der gemeinsamen RufSammelleitung 53 in Fig. 1 in negativer Logik dar. Die Leitungen 450 bis 456 sind die Ausgangsleitungen des Unterbrechungs-Maskenregisters 44. Die Aufrufzykluszuordnungs-Verriegelung 75 hat eine Ausgangsrückstell-Leitung 80. Im Unterbrechungstor 52 werden die Signale auf der Leitung 450 (zum O-Bit des Unterbrechungs-Maskenregisters 44 gehörend) mit den Signalen auf der Ausgangsrückstell-Leitung 80 UND-verknüpft und das Ergebnis mit den Signalen auf der Leitung 530, die die O-Bitposition der gemeinsamen Itufleitung 53 darstellen, NOH-verknüpft. Das Ergebnis erscheint auf der Leitung 520. In ähnlicher Weise werden die Bits 1 bis 6 des Unterbrechungs-Maskenregisters 44 auf den Leitungen 451 bis 456 mit den Signalen auf der Ausgangsrückstell-Leitung 80 UND-verknüpft und die Ergebnisse mit den Bitpositionen 1 bis 6 der gemeinsamen Rufleitung 53 auf den Leitungen 531 bis 536 NOR-verknüpft.
SA 975 072
809826/0819
j - 16 -
■Die Ergebnisse erscheinen auf den Leitungen 521 bis 526. Die Leitung 520 wird zu den NOR-Gliedern 86, 94 und 95 geführt. pie Leitung 521 führt zu den NOR-Gliedern 86, 90 und 95# die iLeitung 522 zum NOR-Glied 86 und zum UND-Glied 91. Die !Leitung 523 führt zu den NOR-Gliedern 86 und 90, die Leitung 524 zum NOR-Glied 86 und zum UND-Glied 92. Die Leitung 525 führt zum UND-Glied 88 und zum NOR-Glied 90. Die Leitung führt zum UND-Glied 93. Die Ausgabe des NOR-Gliedes 86 erscheint als -4 Prioritätsleitung 544 und führt zu den UND-Gliedern 87, 88 und 92, zum Register 56 für die laufende Unterbrechung (Pos.4), zur Unterbrechungsprüfschaltung 58 sowie zum UIJD-Glied 82. Die Ausgabe des NOR-Gliedes 95 erscheint auf der -2 Prioritätsleitung 542 und wird dem UND-Glied 91, dem Register 56 für die laufende Unterbrechung (Pos. 2) , der Unterbrechungsprüfschaltung 58 und dein UND-Glied 82 zugeführt. Die Ausgabe des NOR-Gliedes 90 geht zum UND-Glied J93. Im NOR-Glied 9 5 werden die Ausgaben der UND-Glieder 87
<und 88 mit den Signalen auf den Leitungen 520 und 521 ver-
iknüpft. Im NOR-Glied 94 werden die Ausgaben der UND-Glieder |91, 92 und 93 mit den Signalen auf der Leitung 520 verknüpft jund erscheinen auf dor Leitung 541, die zum Register 56 für die laufende Unterbrechung (Pos. 1), zur Unterbrechungsprüfschaltung 58 und zum UND-Glied 82 führt.
Hit dem invertierten Signal auf der Zuordnungsanforderungsleitung 68 wird die Aufrufzyklus-Zuordnungsverriegelung 75 verriegelt. Das einschaltende Ausgangssignal dieser Verriegelung auf den Leitungen 77 verriegelt die Zykluszuordnungs-BestJitigungschaltung. Die Rückstellausgabe der Aufrufzyklus-Zuordnungsverriegelung 75 auf der Ausgangsrückstelleitung 80 sperrt die UND-Glieder im Unterbrechungstor 52 und schaltet die Unterbrechungsstufen-Umschaltverriegelung 84 ab. Deren Ausgabe auf den Leitungen 79 steuert die Ladeleitung für eine neue Unterbrechungsstufe 72 und erregt die Leitung 57 für die laufende Unterbrechungsstufe. Das negative Signal auf der Unterbrechungsanforderungs-Leitung
SA 975 072
70 wird der Zykluszuordnungs-Bestütigungsschaltung 76 zugeführt; und für die Unterbrechungsstufen-Umschaltverriegelung 84 invertiert. Das negative Signal auf der Zuordnungsanforderungsleitung 68 wird ebenfalls an die Zykluszuordnung-Bestätigungsschaltung 76 geleitet. Der Einschaltausgang erscheint auf der Leitung 55 und wird im UND-Glied 89 mit einem Taktimpuls auf der Leitung 85 verknüpft. Das Signal auf der Leitung 78 läuft zum UND-Glied 82 und zu den werthohen Bit-Eingangsleitungen 834, 835, um in diese einen vorgegebenen Code zu zwingen.
Die Leitungen 310 bis 314 stellen die wertniederen Bitpositionen des Adreßteiles des Programmregisters 30 dar und sind in Fig. 1 als Leitung 31 dargestellt. Die Leitungen 310 bis 314 werden auf die UND-Glieder 83 geführt, wo ihre Signale einzeln mit den Signalen auf der Mikroinstruktlons-Einschaltleitung 74 verknüpft werden. Dann laufen sie über die Ausgangsleitungen 831 bis 835 zum LSR-Ausgabesteuerregister 40.
Die Ausgänge der UND-Glieder 82 werden über eine DOT-ODER-Verknüpfung mit den Signalen auf den Leitungen 831 bis verbunden, den wertniederen Bitpositionen des Einganges zum LSR-Ausgabesteuerregister 40. Genauso werden die Ausgangsleitungen der UND-Glieder 81 mit den wertniederen Leitungen 831 bis 833 verbunden, die zum LSR-Ausgabesteuerregister 40 führen. Im UND-Glied 81 werden die auf den Leitungen 561, 562 und 563 erscheinenden Ausgangssignale des Registers 56 für die laufende Unterbrechung mit den Signalen auf der Einschaltleitung für die "Laufende Unterbrechung"-Stufe 73 und der Unterbrechungsprüfschaltung 58 verknüpft. Die Einschaltleitung für die "Laufende Unterbrechung" -Stufe 73, die den Inhalt des Registers 56 für die laufende Unterbrechung auf die drei wertniederen Eingangsleitungen zum LSR-Ausgabesteuerregister 40 leitet, zwingt auch auf die werthohen Eingangsleitungen 834, 835 ähnlich wie auf die Leitung 78 einen bestimmten jedoch diesmal anderen
SA 975 072
809826/0819
Code, um so auf die Ausgangs leitungen 41 des LSR-Ausgabesteuer-j registers 40 eine Adresse zu setzen, die auf eine andere j
Stelle im lokalen Speicherregister 14 zeigt.
ZyklusZuordnungen haben gegenüber Unterbrechungen Priorität. Signale auf der Zykluszuordnungsanforderungs-Leitung 68 heben sofort den normalen kontinuierlich laufenden Unterbrechungsaufruf auf, indem sie die Aufrufzyklus-Zuordnungsverriegelung 75 verriegeln und so alle Geräte auffordern, ihre Zykluszuordnungsprioritäten auf die gemeinsame Rufleitung 53, Leitungen 530 bis 536, zu setzen und ihre Unterbrechungsanforderungen zurückzuziehen. Wenn das Signal auf der Unterbrechungsanforderungs-Leitung 70 nicht mehr vorhanden ist, v/ird dadurch dem Mikroprozessor 9 angezeigt, daß alle Geräte ihre Unterbrechungsprioritätsbits von der gemeinsamen Rufleitung 53 genommen haben. Wenn das Signal auf Zuordnungsanforderungs-Leitung 68 verschwindet und die Aufrufzyklus-Zuordnungsverriegelung 75 verriegelt wird, wird sichergestellt, daß die Ausgangsleitungen 541, 542, 544 des Prioritätscodierers 54 auf das LSR-Ausgabesteuerregister geschalcet werden können, zusammen mit den Zykluszuordnungs-Modifizierbits auf den Leitungen 78 in den v/erthohen Positioner 834 und 835. Außerdem werden Signale auf den Zykluszuordnungsbestätigungs-Leitungen 55 an die E/A-Geräte gegeben. Das ZyklusZuordnungsregister in den lokalen Speicherregistern 14, das von Signalen auf der Ausgangsleitung 41 adressiert wird, liefert die indirekte Hauptspeicheradresse auf die Sammelleitung 13, die auch durch die arithmitisch/logische Einheit 22 erhöht werden kann, um Daten vom Gerät zu holen oder dort zu speichern. Die Zyklus Zuordnungsstufe mit der niedrigsten Priorität braucht kein Prioritätsbit und ihr erzwungener Geräteadreßteil ist null, um alle binären Geräteadressen zu ermöglichen. Am Anfang des Zykluszuordnungszyklus wird die Aufrufzyklus-Zuordnungsverriegelung 75 zurückgestellt, um in den kontinuierlichen Unterbrechungsaufruf oder die sequenzielle Ausführung der MikrοInstruktion
SA 975 072 8 0 9 8 2 6/0819
zurückzukehren. Die Aufrufzyklus-Zuordnungsverriegelung 75 kann auch wieder verriegelt v/erden, weil sie erst entriegelt werden muß, damit die Geräte wieder die Zuordnungs-
anforderungs-Leitung 68 erregen können, wenn sequenzielle Zykluszuordnungen gebraucht werden. Das UnterbrechungsmaskenjRegister 44 wird immer abgeschaltet, wenn die Aufrufzyklus-Zuordnungsverriegelung 75 verriegelt wird. Asynchrone ZyklusZuordnungs-Anforderungen der Geräte können durch Mikroprozessortaktierung oder durch Verriegelung der Aufrufsammelleitung so gesteuert werden, daß die Prioritätsschaltung stabilisiert werden kann.
Organisation einer undirektionalen Sammelleitung für Eingabe/ !Ausgabe
Die Verbindung der unidirektionalen externen Eingabe- und Ausgabesammelleitungen intern in einer geschlossenen Schleife mit der arithmetisch/logischen Einheit 22 gestattet die interne Verarbeitung und die externe Veränderung von E/ADaten, die Unterbrechungsebenenumschaltung und die Erhöhung der ZyklusZuordnungsadresse, so daß mehrere Stufen von Unterbrechungen und ZyklusZuordnungen die vorhandene arithmetisch/logische Einheit 20 und die Datenbahn mit einem Minimum an Steuerlogik und ohne zusätzliche Pufferregister gemeinsam benutzen können.
Dazu wird eine unidirektionale Sammelleitung verwendet, die von und zum CPU-Chip 9 führt. Daten und Adresse werden auf derselben Ausgangssammelleitung gemischt. Die Eingangssammelleitung 10 ist die einzige Dateneingangssammelleitung zum CPU-Chip 9. Der Hauptspeicher 12 ist an diese Sammelleitung ebenso angeschlossen wie die lokalen Speicherregister 14. Während die unidirektionale Funktion der Eingangssammelleitung 10 bezüglich des CPU-Chip 9 aufrechterhalten wird, wird die Eingangssammelleitung 10 vom Hauptspeicher 12 zum Lesen und Schreiben von Daten benutzt,
SA 975 072 u η q ρ ? β / q g -| g
während die Ausgangssammelleitung 20 die Adresse des Hauptspeichers 12 hält.
Die Eingangssammelleitung 10 wirkt außerdem als externer Eingang für eine Seite der arithmetisch/logischen Einheit 22,(ALU), deren Ausgabe vorübergehend in das Totalregister 24 gesetzt wird. Das Totalregister 24 hat eine Ausgangssammelleitung 25, die zu jedem Register im CPU-Chip 9 führt. Die Sammelleitung 25 ist mit dem Ausgabepufferregister 26 auf der einen Seite verbunden und kommt von dort aus dem CPU-Chip 9 und bildet die Ausgangssammelleitung 20, die in diesem Beispiel eine Datenflußbreite von zwei Bytes hat. Die Ausgangssammelleitung 20 liefert Daten an die lokalen Speicherregister 14 und an eine Anzahl nicht dargestellter E/A-Geräte. Auf Zeitteilerbasis fungiert die Ausgangssammelleitung 20 auch als Adreßsammelleitung für den Festwertspeicher 16 und für den Hauptspeicher 12. Bei der erfindungsgemäßen hybriden Struktur der Sammelleitungen sind also auf der Ausgangssammelleitung 20 Daten und Adressen und auf der Eingangssammelleitung 10 Daten und Instruktionen enthalten.
Da kein direkter Datenweg vom CPU-Chip 9 zum Hauptspeicher 12 verläuft, setzt die CPU die Ergebnisse in die lokalen Speicherregister 14. Dann wird die unidirektionale Eingangssamme1leitung zwischen den lokalen Speicherregistern 14 und dem Hauptspeicher 12 in Gegenrichtung benutzt. Relativ zum Prozessorchip 9 wird die Eingangssammelleitung 10 also dadurch unidirektional gehalten, daß die Ausgangssammelleitung 20 auf Viunsch bei jeder internen Mikroinstruktion zur Datenmodifikation das Ergebnis ohne eine zusätzliche Instruktion oder Zeiteinheit in das gewählte lokale Speicherregister 14 setzen kann. Dadurch ist eine sequenzielle und gleichzeitige Operation auf beiden Sammelleitungen möglich. Das Ausgabepufferregister 26 kann die nächste Mikroinstruktion im Festwertspeicher ROS 16 adressieren, während die vorhergehende
SA 975 072 RO 9 R ? β / 08 1 9 '
Mikroinstruktion In überlappten Betrieb ausgeführt wird/ wobei die Daten auf der Eingangssammelleitung 10 liegen. In ähnlicher Weise wird der Hauptspeicher 12 direkt über das Ausgabepufferregister 26 zwischen diesen beiden Adressierarten angesteuert. Ein schmaler Datenabschnitt überträgt Daten an das lokale Speicherregister 14 oder das E/A-Gerät, das durch eine separate sechs Bit umfassende Adreßsammelleitung 21 adressiert wird, die außerdem die entsprechenden Zykluszuordnungsbestätigungen oder Unterbrechungsstufen-Umschaltungen signalisiert. Durch Reservierung eines der 64 lokalen Speicherregister als Sammelleitungs-Ausgaberegister kann der interne Datenfluß auf dem Chip 9 um eine gemeinsame arithmetisch/logische Einheit 22 herum angeordnet werden. Dabei speist das Totalregister 24 alle anderen internen Daten- und Adressierregister sowie das Ausgabepufferregister 26, das auch für die Programmbenutzung als Register für den vierten Operanden im Puffer der lokalen Speicherregister 14 reserviert bleibt. Auf diese Viel se kann jedes externe E/A-Gerät die ALU 22 mit der internen Verarbeitung gemeinsam benutzen. Die externen unidirektionalen Sammelleitungen gestatten außerdem eine totale interne Transparenz des CPU-Chips 9 für die Unterbrechungsstufen-Umschaltung und die direkte Speicherkanaladressierung (ZyklusZuordnung). Dabei wird die Speicheradresse automatisch über die gemeinsame ALU und eine Datenbahn erhöht. Die Architektur der Sammelleitungen des Systems gestattet außerdem eine überlappte und sequentielle Ausführung von Instruktionen, wofür anschließend Beispiele gegeben werden.
In einem ersten Beispiel erfolgt das Seriellschalten» wenn ROS-Instruktionen auf der Eingangssammelleitung 10 liegen/ gewöhnlich am Anfang und Ende eines jeden Mikroinstruktionszyklus/ und gleichzeitig die Ausgangssammelleitung 20 beginnt/ Daten an ein E/A-Gerät zu senden.
SA975072 809826/0819
In einem zweiten Beispiel wird überlappt gearbeitet/ wenn Daten auf der Eingangssammelleitung 10 von Ε/Λ-Geräten oder den lokalen Speicherregistern 14 kommen und intern durch die arithmetisch/logische Einheit 22 verarbeitet werden und gleichzeitig die Ausgangssammelleitung 20 die nächste Adresse des ROS 16 enthält, so daß die nächstfolgende Instruktion adressiert wird.
In einem dritten Beispiel für den überlappten Betrieb sind Daten von der Ausführung einer vorhergehenden Instruktion noch im lokalen Speicherregister 14 zu speichern und die Ausführung einer neuen Instruktion hat bereits begonnen. Das lokale Speicherregister 14 wird während des Taktes 1 des neuen Instruktionszyklus geladen, während die Ausführung der neuen Instruktion bei Takt Ü begann. Die sechs Leitungen des LSR-Ausgabesteuer-Registers 40 bilden eine zusätzliche Adreßsamme1leitung 21, 41, zum Adressieren von 64 Halbwörtern der lokalen Speicherregister 14 oder bis zu 6 3 E/A-Geräten auf der Ausgangssammelleitung 2O abhängig vom Typ der ausgeführten Instruktion. Die Kombination dieser zusätzlichen Miniadreßsamme1leitung und der Eingangssammelleitung 10 sowie der Ausgangssammelleitung 20 gestattet die Ausführung von Operationen in einem Zyklus. Ein E/A-Gerät kann während derselben Instruktion Daten auf die Eingangssammelleitung 10 setzen, diese durch die ALU 22 verarbeiten lassen und die arithmitisch oder logisch veränderten Daten auf der Ausgangssaramelleitung 20 empfangen, während das Gerät durch die Adreßsammelleitung 21 adressiert wird. Das ist ein Vorteil gegenüber herkömmlichen Kanälen, die drei Instruktionen schon für eine einfache E/A-Datenübertragung ohne ALU-Operation brauchen. Dazu muß der Prozessor zuerst eine Adresse auf einer gemeinsamen E/A-Sammelleitung aussenden. Dann muß das Gerät über eine Anforderung/Anwortschnittsteile antworten, um anzuzeigen, daß es seine eigene Adresse erkannt hat. Eine zweite Instruktion braucht der Prozessor, um einen Befehl auszusenden, auf den das Gerät antworten kann.
sä 975 072 809826/0819
Danach muß der Prozessor eine dritte Instruktion ausführen
!und abhängig von der gewünschten Datenflußrichtung lesen oder schreiben.
Die AusgangsSammelleitung 20 ist multiplex geschaltet, so daß für jede ausgeführte Instruktion eine überlappte Operation abläuft, überlappt bedeutet, daß die nächste Instruktion vom Festwertspeicher 16 adressiert wird, während der Prozessor gleichzeitig intern die laufende Instruktion ausführt. Dazu benutzer die gemeinsamen Sammelleitungen z. B. fünf Taktperioden des acht Taktperioden langen Instruktionszyklus zum Adressieren des ROS 16 und die verbleibenden idrei Taktperioden, um Daten entweder an die lokalen Speicherregister 14 oder an die E/A-Geräte zu senden.
!Hauptspeicher 12
Der Hauptspeicher 12 bildet einen adressierbaren und fortschreibbaren Speicher zum Speichern von Daten sowohl durch den Prozessor als auch die E/A-Geräte zur späteren Wiederbenutzung. Daten werden im Lese- und Schreibbetrieb über die Hauptspeicher-Sammelleitung 11 übertragen vom und zur Eingangssaminelleitung 10. Die Steuer- und Taktleitungen 19 liefern die Takt- und Steuersignale und die Adresse wird über die Ausgangssammelleitung 20 geführt.
Bei einem Zugriff zum Hauptspeicher 12 wird die Instruktion durch einen zusätzlichen Zyklus zu einer Doppelzyklusinstruktion. Während des ersten Zyklus wird die Adresse auf den Adreßzeiger zum Hauptspeicher 12 erhöht, erniedrigt oder anderweitig verändert. Dieser Adreßzeiger kommt vom lokalen Speicherregister 14 oder vom B-Register 36. (Das gibt die Möglichkeit, daß Stapelverarbeitung, auch wenn kein Stapelzeiger verwendet wird, da das System der automatischen Erhöhung/Erniedrigung der Adresse genauso wirkt wie die Stapelzeiger.) Der Hauptspeicher wird im zweiten Zyklus gelesen
SA 975 072 80 98?6/08 19
oder geschrieben, nachdem der Adreßzeiger zum Hauptspeicher auf die effektive neue Adresse fortgeschrieben wurde. Die !Adresse wird für den ganzen zv/eiten Zyklus im Ausgabepufferregister 26 festgehalten. Dieser zv/eite Zyklus wird nachfolgend Hauptspeicherzyklus genannt und umfaßt acht Takte zur Adressierung des Hauptspeichers 12.
Der Hauptspeicher 12 wird seriell wie folgt betrieben: Während eines Ilauptspeicherabrufs werden Daten vom Hauptspeicher 12 auf die Eirgangssammelleitung 10 geholt und in eines der internen Register des Prozessors 9 gespeichert. Am Ende der Abrufoperation zur Taktzeit null, wenn die !nächste Instruktion beginnen soll, werden diese Daten durch jdie ALU 22 geleitet, in das Totalregister 24 gesetzt und von dort in das Ausgabepufferregister 26 übertragen. Durch diese Datenübertragung in das Ausgabepufferregister 26 wird die laufende Hauptspeicheradresse zerstört.
!Festwertspeicher (ROS) 16
Der Festwertspeicher 16 speichert die auszuführenden Instruktionen, die das riikrocomputer-Steuerprogramm enthalten. Diese Instruktionen werden auf die Eingangssammelleitung j 10 geladen, im Programmregister 30 gepuffert und am Instruktionsdecodierer 62 decodiert. Zusammen mit den Taktgeberschaltungen v/erden die Schaltglieder, Register und Schaltungen auf eine im Zusammenhang mit den Fign. 2 bis 4 näher erklärten Art so gesteuert, daß sie die verschiedenen Instruktionen ausführen.
Der ROS 16 wird seriell betrieben und so v/ird zur Taktzeit null, dem üblichen Anfang einer jeden Mikroinstruktion, die Instruktion von der Eingangssammelleitung 10 in das Programmregister 30 gesetzt. Gleichzeitig v/erden Daten in das Ausgabepufferregister 26 gesetzt. Somit v/erden vom ROS 16 auf der AusgangsSammelleitung 20 adressierte Daten
SA 975 072 809876/0819
von der Eingangssammelleitung 10 genommen und gleichzeitig die Adresse auf der Ausgangssammelleitung 20 zerstört. Vie ge n j inhärenten Verzögerungen in der Schaltung einschließlich der Treiber und logischen Schaltstufen laufen diese Operationen nacheinander ab.
Lokale Speicherregister (LSR) 14
Die lokalen Speicherregister 14 bestehen aus mehreren adressierbaren und veränderbaren Registerstellen. Daten werden von der Ausgangssammelleitung 20 in die LSR 14 geschrieben und auf die Eingangssammelleitung 10 ausgelesen, adressiert über die Adreßsamme1leitung 21. Auf die Eingangssammelleitung 10 gesetzte Daten können direkt an den Hauptspeicher 12 oder den Prozessor 9 geleitet werden. Die Stelle null im LSR 14 ist unter noch zu beschreibenden Bedingungen für die Rettung von Daten aus dem Ausgabepufferregister 26 reserviert.
Arithmetisch/logische Einheit (ALU) 22
Auf Zeitteilerbasis wird die arithmetisch/logische Einheit 22 gemeinsam für die Datenverarbeitung, die Erhöhung der Mikroinstruktionsadresse, die Verzweigung bei relativer Adressierung, die Verbindung von Unterroutinen, die Hauptspeicheradressierung, die Adreßveränderung, den Abruf und das Speichern von Daten, die Verarbeitung der prioritätsverknüpf ten Unterbrechungen und für die Zykluszuordnung benutzt.
Zu diesem Zweck wird das Adreßregister 32 in den Datenfluß der arithmetisch/logischen Einheit 22 integriert und die lokalen Speicherregister 14 verwendet. Das Adreßregister 32 (ein einfaches nicht erhöhendes Polaritätshalteregister) benutzt in abwechselnden Halbzyklen die ALU 22 zur Erhöhung oder sonstigen Veränderung der Instruktionsadresse im ROS Die positive oder negative Verzweigung und Verbindung der relativen Adresse wird durch diese einfache Datenbahn zur
sä 975 072 809826/0819
AlU 22 vereinfacht. Da die AlU 22 ihre Ausgabe auf die Ausgangssammelleitung 20 gibt, können Mikroadressen in den lokalen Speicherregistern 14 als Rückkehrzeiger von Unterbrechungen gespeichert v/erden. Außerdem können dadurch neue Unterbrechungsroutine-Zeiger geladen und früher unterbrochene Zeiger zurückgespeichert v/erden, da die lokalen Speicherregister 14 ihre Werte auf die Eingangcsammelleitung 10 und über die ALU 22 in das Adreßregister 32 geben. Auf diese VJeise wird eine prioritätsverknüpfte erweiterungsfähige Unterbrechungsstruktur ermöglicht, die in den Grunddatenfluß innerhalb der AlU 22 eingeschlossen werden kann. Die Stelle null in den LSRs 14 ist zur Rettung und Rückspeicherung des Inhaltes des Ausgabepufferregisters 26 reserviert.
Der Prozessor 9 holt Daten vom Hauptspeicher 12 über die Eingangssammelleitung 10 und die ALU 22, um sie in seinen internen Operandenregistern zu speichern. Das Ausgabepufferregister 26 hält die Adresse des Hauptspeichers 12 aus dem gewählten LGR 14 oder dem Operandenregister (wie etwa dem Akkumulator-Erweiterungsregister 36) zur gleichzeitigen Adressierung und Fortschreibung. Daten des Prozessors 9, die im Hauptspeicher 12 als Ergebnis der Ausführung einer früheren Mikroinstruktion zu speichern sind, werden erst auf ein selektiertes LGR 14 über den Ausgabepuffer 26 gesendet. Die Mikroinstruktion zum Schreiben in den Hauptspeicher 12 leitet die Daten im LSR 14 auf die Eingangssammelleitung und dann in den Hauptspeicher 12.
Außerdem können bestimmte Stellen in den LSR 14 auch als indirekte Adressen des Hauptspeichers 12 wirken, und zwar in direkten Zykluszuordnungsoperationen für ein E/A-Gerät, wobei jeder Prioritätsstufe ein LSR 14 zugeordnet wird. Jedes E/A-Gerät enthält seinen Datenlängenzähler. Die Adreßregister des Hauptspeichers 12 in den LSRs 14 werden automatisch über die ALU 22 auf der Ausgangssammelleitung 20 erhöht, um E/Tv-Daten auf der Eingangssammelleitung 10 in den
SA 975 072 809826/08 19
!Hauptspeicher 12 zu schreiben oder Daten aus dem Hauptspeicher 12 zu lesen. Diese Daten laufen über die Einyangssamrnelleitung 10 durch die AlU 22 und werden den E/A-Geräten auf der Ausgangssammelleitung 20 zur Verfügung gestellt. Die E/A-Geräte empfangen Daten vom Prozessor 9 auf der Ausgangssammelleitung 20 und senden Daten an den Prozessor 9 auf der EingangsSammelleitung 10.
In der ALU 22 v/erden auch emulierte Instruktionen decodiert.
per Operationscode der emulierten Instruktion wird von der jALU 22 der laufenden Instruktionsadresse im Mikroinstruk-,tions-Adreßregister 32 hinzugefügt und ergibt so einen relativen Adreßzeiger auf eine Tabelle im ROS 16 genau unterhalb jder gerade ausgeführten laufenden Instruktion. Auf diese Weise erhält man eine Verzweigung auf 256 Wege zu den Instruktionen im ROS 16 zur Ausführung der emulierten Instruktion.
Durch gemeinsame Benutzung des Mikroinstruktions-Adreßregisters 32 wird zwischen Unterbrechungen auf demselben Datenweg umgeschaltet, der auch für die Ausführung der Grundinstruktion existiert. Der im Mikroinstruktions-Adreßregister 32 entstehende Instruktionsadreßwert wird in die lokalen Speicherregister 14 über die ALU 22, das Totalregister 24, die Sammelleitung 25, den Ausgabepuffer 26 und die Ausgangsammelleitung 20 gespeichert. So wird bei einer Unterbrechung der Zeiger auf die nächste Instruktion, die auf der laufenden Programmprioritätsstufe ausgeführt worden wäre, im LSR 14 gerettet. Als nächstes wird die auszuführende höhere Stufe mit Hilfe eines Prioritätscodes ermittelt, der im Prioritätscodierer 54 erzeugt wird und eine Adresse im LSR-Ausgabesteuerregister 40 erzeugt. Hit dieser Adresse wird im lokalen Speicherregister 14 die Stelle angesteuert, die den Zeiger auf die betreffende Unterroutine im Festwertspeicher 16 für die betreffende Unterbrechungsstufe enthält. Dieser Zeiger wird dann über die Eingangssammelleitung 10 aus dem
sä 975 072 8 0 9 8 2 6/0819
lokalen Speicherregister 14 in den Prozessor 9 über die ALU 22 gegeben und in das Totalregister 24 gesetzt, bevor er in das Mikroinstruktions-Adreßregister 32 und den Ausgabepuffer 26 gespeichert wird. Von dort wird im Festwertspeicher 16 die Unterroutine angesteuert, die für die Unterbrechungsstufe auszuführen ist. V7enn die Unterbrechung bedient wurde, v/ird der laufende Unterbrechungs-Unterroutinenzeiger im LSR 14 gespeichert und der Adreßzeiger für das unterbrochene Programm wieder von dort geholt.
Programmregister 30
Das Programmregister 30 ist ein Puffer für die laufende Instruktion und hält den Op-Code der Instruktion, die vom Prozessor 9 ausgeführt wird.
Das Zählfeld oder Adreßfeld von im Programmregister 30 gespeicherten Instruktionen kann direkt auf das Erniedrigungsregister 38 und das LSR-Ausgabesteuerregister 40 geleitet v/erden.
Totalregister (T) 24
In das Totalregister 24 wird die Ausgabe der ALU 22 gesetzt und die Sammelleitung 25 wird während jedes Instruktionsausführungszyklus wenigstens zweimal von dort geladen. Einmal wird die Adresse der als nächste auszuführenden Instruktion geladen und einmal werden die Ausführungsergebnisse der ir der Instruktion angegebenen Funktion von der ALU geladen.
Da Daten von der arithmetisch/logischen Einheit ALU 22 vorübergehend im Totalregister 24 gespeichert und dann im Ausgabepuffer 26 gepuffert werden, kann auf der Eingangssammelleitung 1O eine Funktion ausgeführt werden und gleichzeitig eine andere auf dor Ausgangssammelleitung 20 beendet werden. Diese zweistufige Pufferung in der Schleife gestattet den
SA 975 072 PQ9R?6/08 1 9
Der Inhalt des Mikroinstruktions-Adreßregisters 32 wird während der Ausführung einer jeden Instruktion durch die ALU 22 so verändert, daß die Adresse im ROS 16 auf die nächste auszuführende Instruktion zeigt.
Akkumulatorregister 34 und Erweiterungsregister 36
- 29 -
überlappten Betrieb.
Instruktionsadreßregister 22
Die beiden Arbeitsregister sind das Akkumulatorregister 34 und das Akkumulator-Erweiterungsregister 36 mit einer Kapazität von jeweils 16 Bits. Dadurch können 32 Informationsbits verschoben werden, beispielsweise arithmetisch oder logisch nach links oder rechts. Außerdem ist eine Linksverschiebung und Zählung oder eine Drehung nach links oder rechts möglich.
Zusammen mit dem Zählregister 50 und dem Ausgabepuffer sind diese Register die internen Register, die von den Mikroinstruktionen direkt adressierbar sind für interne arithmetische und logische Berechnungen. Ihr Inhalt kann außerdem mit Hilfe eines externen lokalen Speicherregisters 14 oder umgekehrt verändert werden. Dabei kann das Ergebnis in einem der internen Register oder in einem der lokalen Speicherregister 14 gespeichert werden.
Ausgabepufferregister 26
Das Ausgabepufferregister 26 hat zwei Funktionen. Als Operandenregister für die ALU 22 hält es Daten gesteuert vom Mikroprogramm. Außerdem müssen bei einer Unterbrechung, die die übertragung von Adreßzeigern erzwingt, oder bei direkten Speicherzugriffen Adressen und Daten durch das Ausgabepufferregister 26 laufen. Auf diese Vieise verliert das Ausgabepufferregister 26 vom Mikroprogramm eingesetzte
sä 975 072 8 0 9 8 26/0819
! r/56768
■Daten nicht. Die Stelle null in den lokalen Speicherregistern j 14 ist für den Inhalt des Ausgabepufferregisters 26 reserviert, sobald der Prozessor 9 Instruktionsadressen und Daten ändert, sei es unter der Steuerung einer Unterbrechung oder während einer Zykluszuordnungsoperation. Hinterher kann der Wert des Ausgabepufferregisters 26, der in der Stelle null der LSR gespeichert ist, als Operandenwert der ALU 22 wieder abgerufen werden. Auf diese Weise ist auf dem Chip für den Prozessor 9 keine Rückgriffspeicherung für das Ausgabepufferregister 26 erforderlich.
Treiber 18
Wenn die Ausgangsleitung 28 den Prozessor 9 verläßt, läuft sie zu den Ililfstreibern 18, deren Ausgang die Ausgangssammelleitung 20 ist. In einem hochintegrierten Chip kann jeder Treiber nur eine Last treiben. Da die Ausgangssammelleitung 20 zu vielen Einheiten oder Lasten führt, muß sie erneut getrieben werden. (Bei dieser neuen Stromversorgung kann man die Anzahl der entwickelten Kanalleitungen erweitern durch Codierung der vorhandenen Leitungen für einen oberen oder unteren Pegel während der verschiedenen Taktperioden eines jeden Mikroinstruktionszyklus der acht Takte.)
Erniedrigungsregister 38
Mit dem Erniedrigungsregister 38 wird gezählt, und zwar in allen Instruktionen zur Verschiebung, Multiplikation, Division,
rniedrigung, Prüfung und Verzweigung. Das Erniedrigungsregister 38 hat Eingangssignale vom Programmregister 30, sobalc eine Schiebeoperation eine direkte Verschiebung bis zu 32 Positionen verlangt, und speichert den erniedrigten Wert im Programmregister 30. Bei indirekten Verschiebungen, bei denen das Zählregister 50 den Schiebezahlwert enthält, arbeitet man mit derselben Erniedrigung um eins wie bei den direkten Verschiebungen. Das Erniedrigungsregister 38 hält
" 80^826/08^9 ~
^756768
den erniedrigten Viert, bevor er in das Zählregister 50 zurückgegeben wird.
Da in diesem Ausführungsbeispiel maximal um 32 Positionen verschoben werden kann, reicht ein ErniGdrigungsregister 38 von fünf Bit Kapazität aus. Für Feldlängenoperationen wird jedoch auch das Zählregister 50 als Feldlängenzähler benutzt. Dazu braucht man eine volle acht Bit große Erniedrigungsfunktion. Dazu läßt man den Inhalt des fünf Bit großen Erniedrigungsre<,isters 38 zweimal umlaufen. Beim ersten Mal nimmt man ein vier Bit großes Zeichen aus dem Zählregister 50, erniedrigt es und speichert den Übertrag in die werthohe fünfte Position. Der eventuell vorhandene gespeicherte übertrag wird zusammen mit den vier werthohen Bitpositionen aus dem Zählregister 50 erniedrigt und bildet den vollen acht Bit großen erniedrigten Wert, der in das Zählregister 50 zurückgeladen wird.
LSR-Ausgabesteuerregister 40
Es adressiert das E/A-Gerät oder diejenige Stelle in den lokalen Speicherregistern 14, an die die Daten übertragen werden sollen.
Bedingungsregister 48
Die oberen vier Bits des "Laufende Bedingung"-Registers halten die vier Bedingungscodes und die unteren vier Bits vier programmierbare Markierungen. Diese Bits bilden das nicht verbundene hohe Byte des Zählregisters 50. Bei jeder Rechenoperation werden die vier Bedingungscodes für nachfolgende feldverbundene Operationen gesetzt. Die vier Bedingungen sind: binärer übertrag, Zweierkomplement-Überlauf, Zweierkomplement minus und der kumulative üngleich-O-Anzeiger. Wenn dieser Ungleich-0-Ληzeiger einmal in einer Feldlänge gesetzt ist, bleibt er gesetzt, bis er durch eine Mikroinstruktion
SA 975 °72 809826/0819
verändert wird.
Zählregister 50
Das zweite Operandenregister für die ALU 22 ist das Zählregisb 50, das außerdem als Schiebezähler dienen kann. Die ursprünglich im Zählregister 50 gespeicherte Schiebezahl wird für jede Verschiebung im Akkumulatorregister 34 oder im Akkumulator-Erweiterungsregister 36 einzeln oder für beide heruntergesetzt, wenn sie für pine Schiebeoperation zusammengeschaltet sind. Bei einer Instruktion "links verschieben und zählen" wird die Verschiebung beendet, sobald das werthohe Bit gefunden ist, und dor im Zählregister 50 verbleibende Wert zeigt an, wie weit das Verschieben vorangeschritten ist. In vielen Operationen wird dieser Wert daher zum indirekten Adreßzeiger auf den ROS 16 oder die LSR 14. Das Zählregister 50 kann von der Sammelleitung 25 geladen und sein Inhalt über die ALU 22 verändert v/erden. Das Ergebnis wird dann in das LSR-Ausgabesteuerregister 40 geladen, um die LSR 14 über die Adreßsammelleitung 21 oder die Eingabe/Ausgabegeräte über die AusgangsSammelleitung 20 anzusteuern.
Für indexierte Adreßberechnungen und die Berechnung effektiver Adressen dient das Zählregister 50 zur Speicherung positiver oder negativer relativer Adressen kombiniert mit den Daten durch die ALU 22. Das Ergebnis wird in den lokalen Speicherregistern 40 oder in einem internen Register des Prozessors gespeichert.
Register 42 und 4 8 für reservierten Bedingungscode bzw. für laufende Bedingungen _^____
Die Ausgabe des "Laufende Bedingungn-Register 4ü wird selektiv im Register 42 für den reservierten Bedingungscode gepuffert. Die Grundbedingungscodes, die sich durch ALU-Operationen ergeben, sind: überlauf, Übertrag-Borger,
SA 975 O72 «09R26/0819
kumulativ nicht null, minus. Die laufenden Bedingungscodes geben das Ergebnis der letzten Ausführung einer arithmitischen Mikroinstruktion wieder. Alle nach links verschobenen werthohen Bits werden in den laufenden Übertragsanzeiger geschoben. Bei Linksverschiebung und Zählung kann das v;erthohe Bit den laufenden Ubertragsanzeiger setzen. Die Bedingungscodes werden nicht verändert durch die Vorgänge
Laden, Speichern, Bewegen, logische Verknüpfungen, Erhöhungen, Erniedrigungen, Sprünge und Verzweigungen.
Codes in den Registern 42 und 48 können separat gelöscht werden und einzeln durch Sprunginstruktionen abgefragt werden. Außer diesen Bedingungscodes gibt es vier vom Programm gesteuerte Markierungsbits, die in Kombination mit den laufenden Bedingungscodes den Inhalt des Registers 48 bilden. Wenn eine Mikroinstruktion emuliert wird, wird der richtige laufende Mikrostufencode in das Register 42 übertragen, um den Mikrostufenbedingungs-Code der emulierten Sprache auf der Mikrostufe zu erhalten.
Unterbrechungsmasken-Register 44
Das Unterbrechungsmasken-Register 44 enthält den laufenden Maskenzustand der zulässigen Unterbrechungsstufen. Der Inhalt des Unterbrechungsraasken-Registers 44 kann auch über die ALU 22 verändert, in die lokalen Speicherregister 14 weggespeichert oder von dort zurückgeholt werden.
Fehlerregister 46
Die beiden wertniederen Bits des Maskenregisters 44 bilden das 1 Byte große Fehlerregister 46, das Fehler kontrolliert und registriert. So werden beispielsweise folgende Maschinenfehler registriert: Ein Paritatefehler auf einer vom ROS 16 geholten Instruktion; ein Datenfehler bei Daten von den
sä 975 072 809826/0819 :
!lokalen Speicherregistern 14; ein Paritätsfehler in Hauptspeicher 12, der durch eine Paritätsprüfung auf der Eingangssamme 1 leitung 10 entdeckt wurde; ein Paritätsfehler auf Daten, die von einem E/A-Gerät empfangen wurden; eine Kanalhängebedingung, in der ein Eingabe-/Ausgabegerät weder Daten austauscht noch dem Mikroprozessor gestattet, zur nächsten Mikroinstruktion fortzuschalten; oder Zeitsperrefehlerj, wie sie auftreten, wenn eine E/A-Instruktion an ein Ε/Λ-Gerät gegeben wird, das nicht existiert und die Adresse daher nicht erkannt weiden kann. Diese Fehler können in das Fehlerregister 46 gesetzt und verändert, gerettet, geprüft oder im LSR 14 gespeichert werden. Wenn einer dieser Fehler automatisch durch die Maschinenausrüstung gesetzt wird, wird die höchste Unterbrechungsstufe (Stufe 7) im Mikroprozessor gezwungen, zu einer Unterroutine zu verzweigen, die entweder die Operation erneut versuchen kann oder die laufende Funktion beendet und ein Signal an die Bedienungskonsole gibt.
Vier-Phasen-Generator 60 und Taktgeber 64, 66
Ein Einphasenoszillator 59 ist der Eingang für den Vier-Phasen-Generator 60, der zwei Taktgeber speist, nämlich den Hilfstaktgeber 64 und den Grundtaktgeber 66. Der Grundtaktgeber 66 ist ein zweiphasiger Taktegeber, der in jeder zweiten Taktposition gestoppt v/erden kann. Vier überlappende verriegelte Zustände ergeben acht Takt-Decodierpositionen. Der Grundtaktgeber 66 durchläuft die acht Positionen in jedem Mikroinstruktionszyklus. Die hohe Verriegelungsposition im Grundtaktgeber 66 wird bei der Adressierung des Hauptspeichers 12 benutzt, wenn die ausgeführte Mikroinstruktion einen Doppelzyklus braucht. Dann durchläuft der Grundtaktgeber 66 noch einmal dieselben acht Positionen, durch Einschaltung des Flipflop in der hohen Position wird die Ausgabe des Grundtaktgebers 66 diesesmal jedoch als Takt bis 15 codiert. Die Decodierung des Hilfstaktgebers 64 lie-
SA975072 8 0 9826/0819
fert vier unterscheidbare Zeitabschnitte zusammen mit einem Flipflop in einer hohen Position, das benutzt wird, sobald der Taktgeber einen VJiederholungszyklus durchläuft. Damit v/ird der größte Zeitsperr abschnitt von zwei Durchgängen des Taktgebers angezeigt, der einem ganzen InstruktionsausführungsZyklus äquivalent ist. Der Hilfstaktgeber 64 wird bei Verschiebungen, Ilultiplikationen oder Divisionen benutzt. Während dieser Instruktionen wird der Iiaupttaktgeber 66 in seiner siebten Position gestoppt. Damit können Zykluszuordnungen in der Mit':.e vom Verschiebe-Multiplikations- oder erweiterten Divisionsoperationen weiterlaufen. Der Hilfstaktgeber 64 dient auch der Zeitsperre, wenn E/A-Geräte nicht antworten oder wenn bei Datenaustauschoperationen ein E/A-Gerät auf der Eingangssammelleitung 10 festgestellt wird und versucht, Daten auszutauschen. V7enn die Zeitsperre die zugeordnete Zeit überschreitet, läuft die Zeit im Hilfstaktgeber 64 ab und stellt Anzeiger im Fehlerregister 46 so ein, daß eine Unterbrechung der höchsten Stufe oder eine Haschinenprüfung eingeleitet wird.
Integrierter Kanal für ZyklusZuordnung und Unterbrechung nach Prioritäten
In den Fig. 5 und Fig. 1 sind die Zykluszuordnungs- und Unterbrechungsfunktionen gezeigt, wie sie durch die gemeinsame Ruf leitung 53 wahrgenommen v/erden. Diese verfügt über acht Zyklus Zuordnungsstufen oder sieben UnterbrechungsGiiforderungsstufen. Die gemeinsame Rufleitung 53 ist hier sieben Bits breit, um die Anforderungen für sieben Unterbrechungsstufen oberhalb der gegenwärtig ausgeführten Programmstufe aufzunehmen, ingesamt also acht Unterbrechungsstufen. Jedes E/A-Gerät kann an jede der sieben mit bestimmten Prioritäten versehene Unterbrechungsanforderungs-Leitung angeschlossen v/erden. Es wird kontinuierlich auf Unterbrechungen abgefragt, außer wenn die Aufrufzyklus-Zuordnungsverriegelung 75 verriegelt ist und die ZyklusZuordnung erfolgt. Sobald
SA 975 072 8CI98?6/0819
ein E/A-Gerät Bedienung vom Prozessor 9 verlangt, setzt es seine Anforderung auf die zugeordnete Prioritätsbitleitung 530 bis 536 der gemeinsamen Rufleitung 53. Mehrere Anforderungen gehen durch den Prioritätscodierer 54, wo die Anforderung mit der höchsten Priorität in einem Dreibitcode auf den
eitungen 541, 542, 544 codiert wird und eine der acht verschiedenen Prioritätsstufen bezeichnet. Die Priorität der Unterbrechungen wird außerdem durch das Unterbrechungsmasken-Register 44 gesteuert.
Wenn die Maske im Unterbrechungsmasken-Register 44 so gesetzt ist, daß sie die Unterbrechung erlaubt, dann lassen UND-Glieder im Unterbrechungstor 52 die Unterbrechungs-Signale zum Prioritätscodierer 54 passieren, um den Code der gegenwärtig anfordernden Prioritäten zu setzen. Diese Unterbrechungspriorität wird in der Unterbrechungsprüfschaltung 58 für eine höhere Unterbrechungsstufe mit der laufenden Unterbrechungsstufe verglichen, die in dem 3 Bit großen Unterbrechungsregister 56 für die laufende Stufe gespeichert ist. Der Inhalt des Registers 56 wird kontinuierlich mit jeder neuen Stufe vom Prioritätscodierer 54 daraufhin verglichen, ob der neue Code höher ist als der laufende. Wenn das der Fall ist, wird die nächste Instruktion in der laufenden Kette nicht ausgeführt, sondern stattdessen der Adreßzeiger im Instruktionsadreßregister 32 in die Stelle für die laufende Stufe in den lokalen Speicherregistern 14 übertragen. Der neue oder höhere Stufenzeiger wird dann aus den lokalen Speicherregistern 14 in das Instruktionsadreßregister 32 gesetzt.
Die Adresse für die Unterbrechungsroutine in den lokalen
pelcherregistern 14 (einer der 8 möglichen Unterbrechungszeiger) wird wie folgt abgeleitet: Die drei wertniederen Bits auf den Leitungen 561, 562, 564 vom Unterbrechungsregister 56 für die laufende Stufe werden unter Steuerung
SA975072 809826/0819
des UND-Gliedes 81 an die Eingangsleitungen 831, 832, 833 des LSR-Ausgabesteuerregisters 40 gegeben. Die Einschaltleitung 73 für die laufende Unterbrechungsstufe lädt die werthohen Leitungen 834, 835 mit den übrigen Bits der Adresse im LSR-Ausgabesteuerregister 40, um den unterbrochenen Zeiger in die LSR 14 zu speichern. Der neue Zeiger auf die Unterbrechungsregister in den LSR 14 wird auf ähnliche Weise in das LSR-Ausgabesteuerregister 40 geladen, und zwar auf den werthohen Eingangsleitungen 834, 835 von der Ladeleitung 72 für die neue Unterbrecliungsstufe und auf den wertniederen Leitungen 831 bis 833 vom Unterbrechungsregister 56 für die laufende Stufe, nachdem die Einschaltleitung 73 für die laufende Unterbrechungsstufe den neuen Inhalt des Prioritätscodierers in das Unterbrechungsregister 56 für die laufende Stufe geladen hat. Dadurch wird die neue Adresse im LSR-Ausgabesteuerregister 40 auf die Adresse für die Stelle im LSR 14 geändert, die einen Zeiger auf die Unterroutine zur Ausführung der Unterbrechung für die gewählte Stufe im ROS 16 enthält. Der Adreßzeiger kommt auf der Ausgangssammelleitung 20 vom Instruktionsadreß-Register 32 an und läuft über das lokale Speicherregister 14 durch die ALU 22 zum Totalregister 24. Wenn die Unterroutine der neuen Unterbrechungsstufe fertig ausgeführt ist, wird eine Verzweigungsausgangs-Instruktion gegeben und dadurch der Zeiger auf das ursprünglich unterbrochene Programm zurückgestellt. Da die die Unterbrechung bedienende Unterroutine auch die Unterbrechung zurückstellt, sollte die Anforderung für dieselbe Unterbrechung nicht vorhanden sein. Wenn auf derselben oder einer höheren Stufe eine weitere Unterbrechung ankommt, kehrt das Programm nicht zur ursprünglichen Programmposition zurück, sondern behandelt die neuere Unterbrechungsanforderung. Dadurch ist eine volle Verpflichtung bis zu 8 Unterbrechungsstufen möglich. Außerdem können für jede Stufe mehrere Unterstufen existieren. Wenn einmal eine gegebene Unterbrechungsstufe erkannt ist, wird an alle E/A-Geräte ein Unterbrechungsstufen-Statuswort (ILSW) gegeben, und eines der
SA975072 809826/0819
16 Geräte, das gegenwärtig die Bedienung auf einer bestimmten bnterbrechungsstufe anfordert, muß sich identifizieren. (Auf diese V/eise kann man für jede der 8 Stufen 16 Unterstufen bekommen, insgesamt also Unterbrechungen auf 128 Unterstufen). Mit dem in einem Register des Prozessors 9 empfangenen Unterbrechungsstufen-Statuswort kann man feststellen, welches der 16 Geräte auf der betreffenden Stufe die Bedienung anfordert. Das geschieht mit Hilfe einer Linksschiebe- und Zählinstruktion. Das erste Bit in der werthöchsten Position stoppt diese Instruktion und die verbleibende Zahl im Zählregister 50 gibt die Position der Unterroutine für das betreffende Gerät an.
Die gemeinsame Rufleitung 53 dient auch der Zykluszuordnung, muß jedoch erst von Unterbrechungsanforderungen befreit werden. Durch ein eine Zykluszuordnung anforderndes Gerät wird die Zuordnungsanforderungs-Leitung 68 auf einen logisch negativen Pegel gesetzt. Wenn ein Signal auf dieser Leitung einmal die Aufrufzyklus-Zuordnungsverriegelung 75 verriegelt hat, kommt sofort ein Signal auf der Leitung 77 hoch. Dadurch werden die -eräte aufgefordert, ihre Unterbrechungsanforderungen von der gemeinsamen Rufleitung 53 zu nehmen, bis die Zykluszuordnungsfunktion abgeschlossen ist. Sobald alle Geräte ihre Signale von der Unterbrechungsanforderungs-Leitung 70 und der Zuordnungsanforderung-Leitung 68 genommen haben, wird die Zykluszuordnung-Bestätigungsverriegelung 76 im nächsten Takt 0 verriegelt und damit angezeigt, daß die gemeinsame Rufleitung 53 die Zykluszuordnungspriorität für das anfordernde Gerät hat, die unter Umgehung des Unterbrechungstores 52 direkt in den Prioritätscodierer 54 geht. Dadurch kommen 3 Bits einer LCO-Prioritätsadresse aus dem Prioritätscodierer 54 und werden am UND-Glied 82 über die Leitung 78 (getaktete Ausgabe der Zykluszuordnungs-Bestätigungsverriegelung 76) in das LSR-Ausgabesteuerregister 40 geleitet, zusammen mit den fixen werthöheren Adreßzeigerbits im LSR 14 für die Zykluszuordnungsstufe, die
SA 975 072 809826/0819
als Adresse des Hauptspeichers 12 benutzt wird. Damit speichert oder liest man Daten im Hauptspeicher 12 unter voller Steuerung des E/A-Gerätes soweit, daß nur das obere oder untere Byte gesetzt wird (anstelle der 2 Bytes im Halbwortbetrieb). In dieser Betriebsart bleibt das Unterbrechungsregister 56 für die laufende Stufe ungestört, weil die Unterbrechungsstufe (Programmstufe oder eine höhere ausgeführte Stufe) gerade um die Unterbrechung dieser einen Zykluszuordnungsinstruktion verzögert wird. Ein Speicherzugriff wird anfangs durch einen Zeiger vom LSR-Ausgabesteuerregister 40 adressiert. Er enthält die 3 wertniederen Bits, die angeben, welche der 8 Zykluszuordnung sstuf en gegenwärtig bestätigt wird und die werthohen Bits geben eine relative Adresse für die Halbwortregister in den lokalen Speicherregistern 14 an, die die indirekte Speicheradresse enthalten. Diese Adresse wird von den lokalen Speicherregistern 14 auf die EingangsSammelleitung 10 ausgelesen und durch die ALU 22 erhöht, bevor sie in das Ausgabepufferregister 26 gesetzt wird. Während der Speicherzugriffszeit des Hauptspeichers 12 kann die erhöhte Adresse auf der kusgangssammelleitung 20 fortgeschrieben, in das Zykluszuordnungsregister in den lokalen Speicherregistern 14 zurückgeschrieben werden oder ein Rückschreiben kann durch das Bestätigen der E/A-Geräte verhindert werden, so daß die Zykluszu-Drdnungsadresse unverändert bleibt. Nach einer Zugriffszeit werden Daten aus dem Hauptspeicher 12 auf die Eingangssammelleitung 10 ausgelesen, wenn das E/A-Gerät die Auslesewahl des Hauptspeichers 12 gestattet und die Schreibimpulse sperrt, die yom Prozessor 9 auf den Steuer- und Taktleitungen 19 erscheinen. Das E/A-Gerät kann seine eigenen Daten, die in den Hauptspeicher 12 geschrieben werden sollen, auf die Eingangssammel-Leitung 10 setzen. So kann das Gerät die Erhöhungsfunktion und lie Lese- oder Schreiboperation voll über die integrierte \LU 22 steuern. Im Schreibbetrieb kann das Gerät seine eigenen Daten während des folgenden Taktes 1 noch auf der Ausgangs-
SA 975 072 809826/0819
sanunelleitung 20 finden, wenn die Operation einmal beendet ist. Im Lesebetrieb fließen die auf die Eingangssammelleitung 10 ausgelesenen Daten durch die ALU 22 in das Totalregister und das Ausgabepufferregister 26 und werden allen E/A-Geräten an der Ausgangssammelleitung 20 zur Verfügung gestellt. Die Daten werden im Lesebetrieb aber nur von dem E/A-Gerät aufgenommen, das den Zykluszuordnungsstufen-Code auf der Adreßsammelleitung 21 erkennt. Der Prozessor 9 kehrt dann in die normale Instruktionsausführung oder in die Unterbrechungsroutinen-Verarbeitung zurück, die für diesen einen Zyklus des direkten Speicherzugriffs oder der Zykluszuordnung ausgesetzt wurden.
Beschreibung der Taktierung
Im Zusammenhang mit den Fign. 2 bis 4 wird die Zeiteinteilung zunächst allgemein beschrieben, da alle Instruktionen eine ähnliche Zeiteinteilung für die Ausführung haben. Danach folgt eine detaillierte Beschreibung eines jeden Instruktionstyps.
Der Taktzyklus ist in acht verschiedene Zeiten, Takte 0 bis 7 unterteilt. Die Takte 8 bis 15 sind Wiederholungen der Takte 0 bis 7 und sie erscheinen nur während einer Operation im Hauptspeicher 12 einschließlich der direkten Speicheradressierung. Die Grundinstruktionszeit von acht Takten wird in zwe Teile zur Benutzung durch die ALU 22 unterteilt. Während des Taktes 7 bis zum Takt 2 erhöht die ALU 22 den Inhalt des Instruktions-Adreßregisters 32 oder verändert ihn anderweitig. Die Takte 3 bis 6 werden von allen Mikroinstruktionen für die Verarbeitung benutzt. Auf diese Weise wird die ALU 22 kontinuierlich zu 50 % für die Instruktionsausführung und zu 50 % für die Fortschreibung des Instruktionszeigers benutzt. Das Basisfenster, in dem die Adresse für den ROS 16
SA 975 072
809826/08 19
auf der Ausgangssammelleitung 20 erscheint, beginnt zur Taktzeit 3/ wenn der errechnete neue Adreßzeiger von der ALU 22 in das Totalregister 24 geladen und in das Ausgabepufferregister 26 übertragen wird. Diese Adresse bleibt bis zum folgenden Takt 0 unverändert, wenn der Inhalt des Ausgabepufferregisters 26 so geändert wird, daß das Register dann die Daten entweder für das lokale Speicherregister 14 oder ein E/A-Gerät an der Ausgangssammelleitung 20 enthält.
Der Takt 0 beginnt jede. Mikroinstruktion durch Laden der Instruktion aus dem Festwertspeicher 16 in das Programmregister 30. Durch diese Pufferung im Programmregister 30 kann die Instruktion ausgeführt werden, während im Takt 3 die Adresse im ROS 16 gemäß obiger Beschreibung verändert wird, um die nächste Mikroinstruktion zu adressieren.
En das Totalregister 24 wird zur Taktzeit 2 die Instruktionsadresse geladen und zur Taktzeit 6 die von der ALU 22 bei 3er Ausführung der Instruktion verarbeiteten Daten. Während 3er Taktzeit 3 wird die nächste Instruktionsadresse in das kusgabepufferregister 26 gesetzt, um dann auf die Ausgangssammelleitung 20 gegeben zu werden.
tfenn durch die Mikroinstruktion Daten in die lokalen Speicherregister 14 geschrieben werden sollen, werden diese Daten während des Taktes 1 der Instruktion hinter der Instruktion jeschrleben, in der die Daten errechnet wurden. Die Daten werden vom Ausgabepufferregister 26 über die Hilfstreiber 18 lirekt in die Stelle der lokalen Speicherregister 14 geschrieben, die durch die Signale auf 6 Leitungen des LSR-Ausgabeiteuerregisters 40 gewählt wurde. Genauso können Daten an ein 3/A-Gerät übertragen werden, indem man sie zur Taktzeit 0 in las Ausgabepufferregister 26 lädt. Ein Signal auf den Steuerind Taktleitungen 19 während der Taktzeit 1 zeigt an, daß die )aten auf der Ausgangssammelleitung 20 gültig sind. Diese
SA 975 072 809826/0819
Daten ändern sich zu Beginn der Taktzeit 3, wenn die Adresse des Festwertspeichers 16 im Ausgabepufferregister 26 erscheint Daten, die zur Speicherung oder Veränderung auf der Eingangssammelleitung 10 in die CPU 9 gelangen, müssen während der Taktzeiten 3,4, 5 und 6 an der ALU 22 ankommen und gültig sein. In diesem Zeitraum führt die ALU 22 die durch die ausgeführte Instruktion angegebene Verarbeitung durch. Aus demselben Grund werden Daten von den LSR's 14 zur Verarbeitung durch die CPU 9 während der Taktzeit 2 auf die Eingangssammellleitung 10 gesetzt. Während der für Signalverzögerung sorgenden Taktzeit 3 stehen die Daten für die ALU-Funktion zur Verfügung .
Daten von den lokalen Speicherregistern 14 werden zuerst zur Taktzeit 2 auf die Eingangssammelleitung 10 gesetzt und erst zu Beginn der Taktzeit 3 an die ALU 22 weitergeleitet, weil diese während der Takte 7 bis 2 mit der Fortschreibung des Inhaltes des Mikroinstruktions-Adreßregisters 32 beschäftigt ist. Zu Beginn der Taktzeit 7 wird der Inhalt der ALU 22 an ,die Adroßerhöhungsfunktion zurückübertragen, nachdem die Grundverarbeitungsfunktion der Mikroinstruktion beendet ist.
Für Mikroinstruktionen, die Daten vom Hauptspeicher 12 abrufen und in eines der Register der CPU 9 setzen, weist der zweite Zyklus (Takte 8 bis 15) insofern eine leichte Variation auf, als die nächste Mikroinstruktion während des Taktes vom ROS 16 geholt wird, obwohl die laufende Instruktion bis zum Takt 15 und weiter zum folgenden Takt 0 ausgeführt wird (siehe Fig. 2). Zu dieser Zeit werden Daten vom Hauptspeicher 12 schließlich in das angegebene Register der CPU 9 gesetzt oder an ein E/A-Gerät gesendet. In diesem Fall (nach jeder Adressierung des Hauptspeichers 12 durch eine Instruktion) wird keine neue Instruktion in das Programmregister 30 im folgenden Takt 0 geleitet, da sie bereits im vorhergehenden Takt 8 der
SA 975 °72 809826/0819
Instruktion für den Hauptspeicher 12 festgehalten wurde. Der Zeitabschnitt zur Fortschreibung des Inhaltes des Mikroinstruktions-Adreßregisters 32 wird ebenfalls verkürzt und beginnt nicht im äquivalenten Takt 15, sondern zwei Takte später, nämlich zur Taktzeit 1. Dieser Zeitabschnitt umfaßt nur die Takte 1 und 2, da es sich bei dieser Fortschreibung nur um eine direk te übertragung durch die ALU 22 ohne jegliche Modifikation handelt (die ja bereits während der Takte 7 bis 10 der vorhergehenden Hauptspeicherinstruktion stattfand). Die Schreibinstruktion für jden Hauptspeicher 12 schreibt die Daten während der zweiten Phase, also der Takt 13 bis 15, der Instruktion in den Hauptspeicher 12.
In Fig. 3 ist dargestellt, wie die ALU 22 für die Dezimalarithmetik während der ersten 4 Takte die binär äquivalente Funktion erfüllt und die Zwischenüberträge für jede gepackte Dezimalzahl speichert. Dann folgt ein weiterer Durchgang der ΚΙΛ3 22 während weiterer 4 Takte (gesteuert durch den Hilfstaktgeber 64) zur Sechserkorrektur, um das reine Dezimalergebnis zu erhalten.
Fig. 4 zeigt, wie bei einer Verzweigung weitere 4 Taktzyklen vom Hilfstaktgeber 64 vorgesehen werden, wenn die Verzweigungsadresse zur Taktzeit 7 geladen wird. Damit ist zusätzlich Zeit für die Adressierung des ROS 16 gegeben, da bei jeder Verzweigung die vorberechnete Vorausschauadresse von der vorhergehenden Instruktion verändert wird. Solche Verzweigungen sind eine bedingte Verzweigung, eine Mehrweg-Tabellenverzweigung bei der Decodierung eines OP-Codes von einer emulierten Zielsprache ader eine Verzweigung und Verbindung mit Rückkehr durch Rückspeicherung der Originaladresse vom lokalen Speicherregister 14 Ln das Mikroinstruktions-Adreßregister 32.
SA 975 °72 H Π 9R 26/08 19
V 7 b b 7 6
Hei Schiobeoperationnn v/erden durch den Hilfstaktgeber 64 zwei weitere Takte für jede Einzelbitverschiebung entweder im Akkuinulatorregister 34 oder im Akkuiuulator-Erv/eiterungs-3G voryosehen. Es können auch 4-Takt-Perioden vor-
.gesehen werden (gleich der halben Grundausführunyszeit einer
Mikroinstruktion) für die Verschiebung des Inhaltes der beiden Register 34 und 36 um eine Position. Diese beiden Register ;34 und 36 v/erden logisch zu einem Doppelregister verknüpft, |indem man ihren Inhalt abwechselnd durch die ALU 22 laufen !läßt.
Hei Sprungöpnrationen wird in der Grundverarbeitungszeit der AHJ 22 (Takte 3 bis 6) auf gleich, größer oder Maske geprüft. Das h'rgrbnis dor Prüfung ist erst zu Hoginn de.·' Takten 7 beknnn
lund dann wird über einen Sprung entschieden. Wenn nicht gesprungen wild, läuft die nächste adressierte Instruktion ohne
Verzögerung weiter. Wenn jedoch eine Instruktion übersprungen wird, nimmt, dor Grundtakt einen weiteren Pseudo-Mikroinstruktionszyklus, indem or auf die nächste Mikroin.'itruktion vorge-ScImJt(1I. wird, ohne daß die übersprungen«.! Mikroi n:strukl.ion !Ungeführt wird.
Die unbedingte Verzweigung ist eine sehr schnelle Instruktion, ,/eil keine Bedingungen abgefragt werden müssen und daher keine Verzögerung durch den Hilfstaktgeber 64 vorliegt. Außerdem wird lie 12 Hit große Verzweigungsadresse direkt durch die ALU 22 jeleitet und zur Taktzeit 2 in das Totalregister 24 geladen, /on <1(3ΐΜ. läuft sie weiter in das Mikroinstruktions-Adreßregi- ;tor 3 2 und zur Tnktzoit 3 in das Ausgabepufferrogister 26. )adurch ir;(. sie mit der normalen Vorausscliauadrcjssieruny von Instrukti onen synchroni si ort.
()7 2
f. ρ ;> f, / η fi 1 9
copy
Instruktionssatz
[)ie flaschinengrundinstruktionen sind optimal für die Emulation entwickelt und im ROS 16 gespeichert. Die oft als Mikroinstruktionen bezeichneten Instruktionen werden nachfolgend auch einfach Instruktionen genannt. Ausgenommen sind die Fälle, in denen zwischen den emulierten Maschinenziel-Instruktionen und den Mikroprozessor-Instruktionen unterschieden wird.
Allen Instruktionen gemeinsam ist ein Paritätsbit in der werthöchsten Bitposition (Bit 0) und ein 3 Bit großer Operationscode (Bits 1 bis 3). Die übrigen Bits sind in Felder unterschiedlicher Länge aufgeteilt, deren Art und Funktion (/on der jeweiligen Instruktion abhängen. Da es nur 8 verchiedene Operationscodes gibt, unterscheiden sich einige nstruktionstypen durch die Decodierung zusätzlicher Modifizierbits. Die meisten Instruktionen sind hochcodiert und geben viele verschiedene Operationen an, von denen eine Anzahl nacheinander ausgeführt wird. Diese aufeinanderfolgenden Dperationen werden durch einen sehr eng entwickelten Satz von Zeitmustern coordiniert, wie sie in den Fign. 2 bis 4 dargestellt sind.
Im Zusammenhang mit den Fign. 2 bis 4 v/erden anschließend die 11 Instuktionsgrundkategorien beschrieben. In den Zeittabellen werden die Register wie folgt mit den Symbolen bezeichnet:
Symbole Register
A Akkumulator
B ErweituruncjsregLster
T Totalregister
P Progranunregister
U Instruktionsadresse
N Zählregister (Schiebezähler)
SA 975 072 ÖC9B?6/08 1 9
copy
M Ausgabepufferregister (Ausgangs-
sammelleitung)
I/O Eingabe-/Ausgabegerät
E Fehlerregister
I Unterbrechungsmasken-Register
C Register für laufenden Bedingungs
code
PCC Register für reservierten Bedin
gungscode
L Lokale Speicherregister
jjede dieser Instruktionen kann durch einen Instruktionscode (definiert werden, der 16 Bits einschließlich eines Paritätsbits umfaßt. Die Bits 1 bis 3 definieren den Operationscode und diese Codes sind nachfolgend zusammen mit der Instruktionskategorie aufgelistet.
Instruktionen
Steuerung
Logisch Schreiben Logisch Schieben Zahl logisch bewegen aten verändern perand verändern peicher abrufen irekt verändern
edingter Sprung Bedingte Verzweigung Unbedingte Verzweigung
!teuer Instruktion
Mnemonic Operationscode
CO 000
LW 001
LS 001
LM 001
MD 010
MO 010
FS 011
IM 100
JC 101
BC 110
BU 111
In Fig. 3C i:>t dan Zcltdiagramm für die Steuerinstruktionen jezeigt. Steuerinstruktionen können z.B. für folgende Operationen vorgesehen worden: Datenübertragung, indirekte Aus-SA 975 072 H09R26/n819
/·' 7 b 6 7 6 8
führung, Setzen der Unterbrechungsmaske, Festsetzen von Seiten, Tabellenverzweigung, Betriebsartenwahl, Operation auf reserviertem Bedingungscode und laufendem Bedingungscode, Programmkennzeichen und E/A-Übertragungen.
Eine Anzahl von Steuerinstruktionen bezieht sich auf die Verarbeitung von Unterbrechungen. Eine solche Instruktion ermöglicht es, nach Abschluß einer jeden Mikroinstruktion eine Unterbrechung vorzunehmen, während bei anderen Instruktionen ein Unterbrechungsabschnitt vorgesehen ist, in dem alle ausstehenden Unterbrechungen angenommen und auf Unterbrechungsbetrieb umgeschaltet wird. Danach werden die Unterbrechungen bis zum erneuten Auftreten dieses Abschnittes abgeschaltet.
Andere Steuerinstruktionen beziehen sich auf dicj K/A-Seiten des ROS 16. Die 4 Bit große Seite im ROS 16 ist eine intern
innerhalb des Instruktionsadreß-Registers 32 angegebene Seite. Dieses Seitenregister wird benutzt, sobald über die 4K-Grenzen der direkt adressierbaren Instruktionsstellen im ROS 16 hinaus 'verzweigt werden muß. Die ALU 22 erhöht hinter den 4K-ttrenzen durchgehend bis zu 64K Halbwörtern des ROi? 16. Die Unterbrechungsschalterzeiger liefern aucli eine volle IG-Bit-Adressierung und nicht nur die Adressierung von 12 Bits. Daher kann man volle 64K Komplemente der Instruktionen adressieren.
Andere Steuerinstruktionen steuern die vier Kennzeichenhits. Das sind die vier niederen Bits des laufenden Bedingungsregisters 48, die zusammen mit den vier Bedingungscodes dna nichtverbundone obere Byte des Zählregistm a 50 bilden. Die Kennzeichenbits könnon vom Programmierer für verschiedene Anzeigen gesetzt und als Schalter in der Untorrout.ine benutzt werden. Sie könnon zusammen mit den Bedingungscodes und dem unteren Byte des Zahlregisters 50 zur Unterbrechungsumschaltung in die LSR's 14 gespeichert und von dort zurückgespei-
O72 > <,uuy(: /Oft 1 9
chert werden.
Die übrigen Steuerinstruktionen betreffen den Bedingungscode. Es gibt zwei Stufen von Bedingungscodes, von denen jede |4 Bits hat und den binären übertrag, den Zweierkomplement-Überlauf, das Zweier-Komplement und das werthohe Minus-Bit kummulativ Nicht-Null anzeigt. Die oberen vier Bits im Bedingungsregister 48 ändern sich bei jeder arithmetischen Operajtion, bei jeder logischen Linksverschiebung, Linksverschiebung und Zählen, Multiplikation und Division. Für andere logische !Instruktionen können die Register selbst auf Null oder NichtNull, Einsen oder gemischte Einsen und Nullen abgefragt werden. Das Register 4 2 für den reservierten Bedingungscode speichert dieselben vier Bits wie das Bedingungscoderegister 48. Die Übertragung und Akkumulation der Äquivalenz der Bedingungs codes der emulierten Makrosprache wird jedoch vom Mikroprogramm gesteuert. Es folgen einige Beispiele für Steueroperationen.
Mit der Steueroperation "Daten direkt Laden" (KBUS) wird das Datenfeld der Instruktion in die werthohen Bitpositionen des Ausgabepufferregisters 26 geladen. Die Datenbits in den Positionen 0 bis 4 des Registers 0 der lokalen Speicherregister 14 werden in die wertniederen Bitpositionen des Ausgabepufferregisters 26 geladen. Dessen Inhalt wird in das Register 0 der lokalen Speicherregister 14 geschrieben.
Mit der Steueroperation "LSR Daten an E/A-Gerät übertragen" (KLSR), wird ein vier Bit großes Feld zur Adressierung der Register 0 bis 15 der lokalen Speicherregister 14 geliefert. Daten aus dem adressierten lokalen Speicherregister 14 werden auf das Ausgabepufferregister 26 und die Ausgangssammelleitung 20 übertragen. Ein sechs Bit großes Feld der Instruktion KLSR liefert eine Geräteadresse, die zur Adressierung der Eingabe-/Ausgabegeräte 1 bis 63 in das LSR-Ausgabesteuer-
97 s 07? 8 0 9826/0819
/756768
register 40 geladen wird.
Die SteuerInstruktion "Daten direkt an E/A-Gerät übertragen" (KLCO), lädt einen Teil des Inhaltes des Ausgabepufferregisters 26 mit direkten Werten vom Instruktionscode, wobei der Rest von den Null-Bits des gewählten lokalen Speicherregisters 14 geladen wird. Daten in anderen Bitpositionen des Instruktionscodes werden für die Geräteadresse in das LSR-Ausgabesteuerregister 40 geladen. Der Inhalt des Ausgabepufferregisters 26 wird in das Register 0 der lokalen Speicher register 14 geladen.
Die Steueroperationen "Unterbrechungsmaske setzen" (KILM), liefert die Unterbrechungsraaskenbits für das Unterbrechungsmasken-Register 44, wobei ein Einer-Bit in einer Bitposition einer Unterbrechung für die entsprechende Stufe einschaltet. Ein Einer-Bit im Instruktionscode gibt an, ob die Unterbrechungsmaskenbits zu retten oder zu setzen sind.
Steueroperationen sind vorgesehen, um die Seiteneinteilung des Festwertspeichers 16 zu schalten. KLAP hat ein Feld zur Bezeichnung der Seiten 0 bis 15 und KRAP bezeichnet die Seite im Festwertspeicher 16. Jede Seite stellt 4096 Halbwörter dar.
Die Steueroperation für die Tabellenverzweigung gibt das Register oder den Registerteil an, deren Inhalt exklusiv oder mit dem Inhalt des Mikroinstruktionsadreß-Registers 32 zu verknüpfen oder zu diesem zur nächst folgenden Adresse im ROS 16 zur Ausführung zu verbinden ist. Diese Instruktionen sind nachfolgend aufgeführt.
sä 975 072 8 0 9826/0819
! /Γ/56768
Mnemonic Addierer zu IAR 32
KIAL Akkumulatorregister 34 unteres Byte
KIXL Erv/eiterungsregister 36 unteres Byte
;KIBL Ausgabepufferregister 26 unteres Byte
KIEL Eingangssammelleitunt 10 unteres Byte
jKIAH Akkumulatorregister 34 unteres Hex.
KIXH Erweiterungsregister 36 unteres Hex.
KIBH Ausgabepufferregister 26 unteres Hex.
KIEH Eingangssaitunelleitung 10 unteres Hex.
KIAZ Akkumulatorregister 34 untere Zone
!KIXZ Erweiterungsregister 36 untere Zone
!KIBZ Ausgabepufferregister 26 untere Zone
KIEZ Eingangssammelleitung 10 untere Zone
KIAS Akkumulatorregister 34 untere sechs Bits
KIXS Erweiterungsregister 36 untere sechs Bits
KIBS Ausgabepufferregister 26 untere sechs Bits
KIES Eingangssammelleitung 10 untere sechs Bits
Mit den Steueroperationen Ausgangsverzweigung (KILB) wird der Inhalt des Instruktionsadreßregisters 32 in die lokalen Speicherregister 14 für die laufende Unterbrechung übertragen, die laufende Unterbrechung zurückgestellt, eine neue Unterbrechung abgefragt und der Inhalt der Stelle für die neue Unterbrechungsstufe im lokalen Speicherregister 14 in das Mikroinstruktionsadreß-Register 32 übertragen.
Die Steueroperation KSIE liefert drei jeweils 2 Bit große Felder (II, EE und SS) und gibt damit den Unterbrechungscode (Einschalten einer Unterbrechung oder Abfragen der Unterbrechung und dann Abschalten weiterer Unterbrechungen), den Fehlerbetrieb und die Byteadresse im Hauptspeicher 12 an (Keine Veränderung; Rückstellung oder Byte-Setzen-Modus).
SA 975 072 8 0 9 8 2 6/0819
^756768
Der Code 01 in einem oder mehreren Unterbrechungscodes (II), im Fehlerbetrieb (EE) und in den Hauptspeicherbyteadreßfeidern (SS) der KSIE-Steueroperation sind reserviert für die Angabe zusätzlicher Steueroperationen, in denen die Charakteristik für den Unterbrechungscode-Betrieb, den Fehlerbetrieb oder den Hauptspeicher-Byteadreßbetrieb der KSIE-Steuerinstruktion gerettet oder gemäß der nachfolgenden Tabelle ersetzt wird. Wenn der Steuercode II oder EE oder SS lautet, definiert die KSIE-Steuerinstruktion die Operationen, die durch den Unterbrechungscode-Betrieb, den Fehlerbetrieb oder den Hauptspeicher-Byte-Adreßbetrieb angegeben sind.
Mnemonic Instruktionscodefeld Beschreibung
IIEE01 Zurückgestellt reservierter
Bedingungscode (kein Überlauf)
II01SS Zurückgestellt reservierter
Bedingungscode (alle)
01EESS ODER-Code für laufende
Bedingung zum reservierten Bedingungscode und Rückstellet laufender Bedingungscodes
II0101 Rückstellen des laufenden Be
dingungscodes und des reservierten Bedingungscodes (kein Überlauf)
0101SS übertrag des laufenden
Bedingungscodes in den reservierten Bedingungscode und Rückstellen des laufenden Bedingungscodes.
01EE01 übertragung des laufenden
Bedingungscodes in den reservierten Bedingungscode (ausgenommen ODER-Überlauf) und Rückstellen des laufenden Bedingungscodes.
Die Steueroperation KNTC übernimmt die Funktion von KTPI. Außerdem werden die Steuerungen so gesetzt, daß sie eine KCSE-Funktion nach den nächsten Instruktionen übernehmen, wenn es eine arithmetische Operation ist. Die Markierung 4
SA 975 072
809826/0819
wird ebenfalls beim Ergebnis auf gerade zurückgestellt oder auf ungerade gestellt. Die Steuerinstruktion KPCC übernimmt eine direkte übertragung des reservierten Bedingungscodes in den laufenden Bedingungscode. Die Steuerinstruktion KSCC gibt an, ob der Inhalt des laufende Bedingungscoderegister 48 zu retten ist oder einzustellen ist und gibt die zu rettenden oder einzustellenden Positionen an: Übertrag-Borger, überlauf, Minus, kummulativ, Nicht-Null oder Kennzeichen 1 bis 4.
Hauptspeicherinstruktionen
Die Instruktionen "logisch Schreiben" (LW) und "Speicherabruf" (FS) bilden die Gruppe der Hauptspeicherinstruktionen. Mit diesen Instruktionen können Daten aus dem Hauptspeicher 12 gelesen und in vier interne Datengrundregister gesetzt werden, in das Akkumulatorregister 34, in das Akkumulator-Erweiterungsregister 36, in das Zählregister 50 und in das Ausgabepufferregister 26.
Vom Hauptspeicher 12 abgerufene Daten werden über das Akkumulator-Erweiterungsregister 36 oder eines der lokalen Speicherregister 14 adressiert, wie es in der Instruktionsadresse angegeben ist. Die Adresse kann am Anfang mit einer Erhöhung oder einer Erniedrigung so fortgeschrieben werden, dafi sie einen kontinuierlich sich bewegenden Zeiger auf den Hauptspeicher 12 auf der Ausgangssammelleitung 20 liefert, oder sie kann an einer effektiven Adresse erzeugt werden, indem man zu einem angegebenen Zeiger die positive oder negative relative Adresse im Zählregister 50 addiert.
Für die Speicherinstruktionen kann die Halbwort- oder Byteadressierung angegeben werden. Da die Instruktionen nicht immer auf Halbwortgrenzen ausgerichtet sind, ist im erfindungsgemäßen Mikrocomputer zur leichteren Emulation die HaIbwortausrichtung durch Byteverdrehung der Daten vom Hauptspei-
SA 975 O72 80 9826/0819
eher 12 in der ALU 22 so vorgesehen, daß jedes Byte in einer Position ausgerichtet wird, so daß z.B. der Instruktionsoper at ions -Code immer im unteren Byte erscheint.
Instruktion "logisch Schreiben"
Wie bereits gesagt wurde, besteht keine direkte Datenbahn von der CPU 9 zum Hauptspeicher 12, weil die Ausgangssammelleitung 20 als Adreßsammelleitung für den Hauptspeicher 12 benutzt wird und daher für Daten nicht zur Verfügung steht. Die Eingangssammelleitung 10 ist nur bezüglich des Hauptspeichers 12 bidirektional. Bezüglich der CPU 9 ist sie nicht bidirektional, weil auf dem Chip Platz gespart werden muß. Die Ausgangstreiber, mit denen Daten auf die Sammelleitung 10 gesetzt werden sollen, brauchen viel Platz und elektrische Leistung und sind daher nicht auf dem Chip integriert.
Die vier Instruktionen "logisch Schreiben" bewirken Halbwortselektieren, unterer oder hoher Byte-Betrieb und im Hauptspeicher 12 Daten speichern, die von einer adressierten Stelle in den lokalen Speicherregistern 14 oder von einem E/A-Gerät kommen.
"Logisches Schreiben" von LSR
In der ersten logischen Schreibinstruktion werden Daten von dem lokalen Speicherregister 14, Stelle 1 in den Hauptspeicher 12 an die Stelle geschrieben, die durch eine der Positionen 0 bis 63 des lokalen Speicherregisters 14 adressiert wird. Eines der Register 1 bis 63 im LSR 14 wird gewählt und der Inhalt um Eins erhöht oder erniedrigt oder unverändert gelassen, bevor das Ausgabepufferregister 26 so eingestellt wird, daß der Hauptspeicher 12 adressiert wird. Die fortgeschriebene Adresse wird dabei in die obengewählte Stelle 1 bis 63 des lokalen Speicherregisters 14 zurückgeschrieben. Wenn die Stelle C
SA 975 072 8 0 98 26/0819
im lokalen Speicherregister 14 als Adreßquelle angegeben wird, wird dadurch das Zählregister 50 als indirekte Adresse des lokalen Speicherregisters 14 gewählt, die als Quelle für die Adresse des Hauptspeicher 12 benutzt wird. Ein Speicherschreibzyklus wird mit den vom lokalen Speicherregister 14, Position 1, erhaltenen Daten ausgeführt, die auf die Eingangssammelleitung 10 gegeben wurden. Als Option kann der Adreßveränderungscode (2 Bits des OP-Code) auf die Eingangssammelleitung 10 gegeben v/erden, und dann wählt er nur das hohe oder nur das niedrige Byte r-um Schreiben in den Hauptspeicher Wenn eine Steuerinstruktion früher den Bytespeicheradressier-Betrieb eingeschaltet hat, wirken alle positiven oder negativer Adreßfortschreibungen als plus oder minus 2. Die Wahl des hoher Byte erzwingt eine Adreßfortschreibung von -1 (das niedrige Byte verändert die Adresse nicht) und die resultierende Adresse speichert das hohe bzw. niedrige Byte gerade oder ungerade. Außerdem wird von der Stelle 0 des lokalen Speicherregisters der ursprüngliche Inhalt des Ausgabepufferregisters 26 gewählt
Logisches Schreiben von LSR 0 bis 63 adressiert über Erweiterungsregister 36
Diese zweite Instruktion unterscheidet sich von der ersten dadurch, daß die in den Hauptspeicher 12 zu schreibenden Daten von einem gewählten lokalen Speicherregister 14 (Position 0 bis 63) die Speicheradresse für den Hauptspeicher 12 vom Akkumulator-Erweiterungsregister 36 kommen. Die oben beschriebenen Operationen für das hohe oder niedrige Byte stehen ebenso zur Verfügung.
Logisches Schreiben von E/A-Gerät 0 bis 63 adressiert durch dasselbe LSR 0 bis 63
Die dritte Instruktion unterscheidet sich von der ersten logischen Schreibinstruktion nur dadurch, daß derselbe Code
sä 975 072 809826/08 19
des LSR 14 (O bis 63), der das Adreßregister wählt, auch das E/A-Gerät wählt (0 bis 63), das die In den Hauptspeicher 12 zu schreibenden Daten auf die EingangsSammelleitung 10 gibt.
Logisches Schreiben von E/A-Gerät 1 bis 63 adressiert durch Akkumulator-Erweiterungsregister 36
Die vierte Instruktion unterscheidet sich von der oben beschriebenen zweiten nur dadurch, daß die in den Hauptspeicher 12 zu schreibenden Daten vom gewählten E/A-Gerät (1 bis 63) auf die Eingangssammelleitung 10 geliefert werden.
Speicherabruf
Die Speicherabruf-Instruktionen (FS) sind für den Halbwortbetrieb ausgelegt. Wie die Halbwortadressierung durch die Speicherbyteadressierung ersetzt wird, ist in den Steuerinstruktionen beschrieben (laufende Bedingung 48 + Zahl 50 oder Unterbrechungsmaske 44 + Fehler 46 werden immer zusammen im Bytebetrieb benutzt und das obere Byte wird bei einem Speicherabrufbefehl nicht genullt).
Laden von Speicher in Register der CPU 9 mit Adresse LSR 14 (Halbwort-Adreßbetrieb)
Eines der Register 1 bis 63 aus den lokalen Speicherregistern 14 wird gewählt und der Inhalt durch 0+1 oder OR 1 verändert, bevor der Inhalt des Ausgabepufferregisters 26 (nicht LSR 14, Stelle 0) in die Adresse des Hauptspeichers 12 gesetzt wird. Wenn die Veränderung + 1 war, wird der Inhalt des Ausgabe-Pufferregisters 26 im gewählten Register im LSR 14 fortgeschrieben. Der Hauptspeicher 12 wird anschließend in einem Zyklus ausgelesen und die Daten über die Eingangssammelleitung 10 selektiv in das Akkumulatorregister 34, das Akkumulator-Erweiterungsregister 36, das Ausgabepufferregister 26 oder das Zählerregister 50/Fehlerregister 46 geleitet. Das Unterbrechung^
SA 975 072 809826/0819
masken-Reyister 44 und das Fehlerregister 46 können durch die KSIE Steuerinstruktionen anstelle des Bedingungsregisters 48 und des Zählregisters 50 gewählt werden. (Das Zählregister 50/ Fehlerregister 46 hat nur das niedere Byte). Die Stelle 0 in den LSR's 14 wählt die indirekte Adressierung des LSR 14 vom Operanden der wertniederen sechs Bits im Zählregister 50. Außerdem werden die Originaldaten vom Ausgabepufferregister von der Stelle O der LSR 14 gewählt.
Mit BUS Operandenadresse (Halbwortadressierung)
Diese Instruktion unterscheidet sich von der nachfolgend beschriebenen dadurch, daß das Ausgabepufferregister 26 (d.h. Stelle O im LSR 14), anstelle des Akkumulator-Erwelterungsregisters 36 benutzt wird und die zusätzliche Adreßübertragung auf der Ausgangssammelleitung 20 als Halbwortbewegung des Inhaltes des Ausgabepufferregisters 26 in die Stellen 1 bis 63 des LSR 14 oder der Adreßfortschreibung auf der Ausgangssammelleitung 20 in die Stelle O des LSR 14 wirkt.
Mit XTN Operandenadresse (Halbwortadressierung)
Der Inhalt des Akkumulator-Erweiterungsregisters 36 wird durch O, + 1 oder Addition der im Zählregister 50 stehenden relativen Operandenadresse verändert, bevor der Inhalt des Ausgabepufferregisters 26 (nicht LSR O) den Hauptspeicher 12 adressiert. Der fortgeschriebene Wert des Ausgabepufferregisters wird in das Akkumulator-Erweiterungsregister 36 zurückgeschrieben. Dann wird ein Lesezyklus für den Hauptspeicher 12 begonnen. Bevor die Daten vom Hauptspeicher 12 zur Verfügung stehen, wird eine zusätzliche übertragung vorgenommen unter der Voraussetzung, daß die Wahl vom LSR zwischen 1 und 63 liegt und nicht O ist. Der Inhalt des Mikroinstruktions-Adreßregisters 32 wird in das gewählte LSR 14 geschrieben. Schließlich werden noch die Daten vom Hauptspeicher 12 auf die Ein-
SA975072 enPR?6/0819
gangssammelleitung 10 geschaltet, um wie bei der ersten FS-Instruktion wahlweise in das Akkumulatorregister 34, das Akkumulator-Erweiterungsregister 36, das Ausgabepufferregister 26 oder das Zählregister 50/Fehlerregister 46 gesetzt zu werden. Die ursprünglichen Daten vom Ausgabepufferregister 26 werden außerdem von der Stelle 0 im LSR 14 selektiert.
Laden vom Speicher in E/A-Geräte (Halbwortadressierung)
Diese Instruktion unterscheidet sich von der obigen dadurch, daß das Mikroinstruktions-Adreßregister 32 vom Akkumulator-Erweiterungsregister 36 oder von der Stelle im LSR 14 selektiert werden kann, die dem selektierten und fortgeschriebenen Eingabe-/Ausgabegerät gleich ist. Die Hauptspeicherdaten werden in das Ausgabepufferregister 26 (nicht LSR 0) gesetzt und von dort an das selektierte Eingabe/Ausgabegerät (1 bis 63) mit einem Ausgangsabfrageimpuls gesendet und es finden keine weiteren Übertragungen statt. Das Gerät 0 selektiert die indirekte Adressierung des Gerätes von den wertniederen sechs Bits im Zählregister 50. Die ursprünglichen Daten im Ausgabepufferregister 26 v/erden außerdem von der Stelle 0 im LSR 14 gewählt.
Arithmetische und logische Instruktionen
Nach Darstellung in Fig. 3 gehören zu den arithmetischen und logischen Instruktionen die Instruktionen "Daten modifizieren (MD) und "Operand modifizieren" (MO). Zu den arithmetischen Instruktionen gehören die "Addition mit und ohne Übertrag" sowie die "Subtraktion". Sie können in Zweier-Komplementform oder in dezimalgepackter Form ausgeführt werden (ohne Vorzeichen einstellig in jeweils Hex. 4 Datenbits). Die arithmetischen Funktionen können im Mikroprozessor zwischen den internen Registern ausgeführt werden (Akkumulatorregister 34, Akku mulator-Erweiterungsregister 36, Zählregister 50 und Ausgabe pufferregister 26). Außerdem können das Akkumulatorregister
SA 975 072 809826/0819
oder das Akkumulator-Erweiterungsregister 36 arithmetisch mit einem der 64 lokalen Speicherregister 14 kombiniert werden, so daß das Ergebnis in einen der lokalen Speicherregister 14 oder im Akkumulator-Erweiterungsregister 36 gespeichert werden kann. Alle in den Registern des Prozessors 9 ausgeführten arithmetischen Instruktionen können im Halbwortbetrieb, auf den oberen Bytes, den unteren Bytes, alleine oder auf den wertniederen 4 hex. Bits ausgeführt werden. Die anderen Bits bleiben in jeder Konfiguration unverändert.
Zu den logischen Instruktionen gehören "UND", "ODER" und "Exklusiv-ODER". Wenn diese Operationen auf den internen Register alleine ausgeführt werden, wie im Rechenbetrieb, können sie in den hex. niederen 4 Bits, dem unteren Byte, dem hohen Byte oder im Halbwortbetrieb ausgeführt werden. Ähnliche Funktionen können ebenso mit den lokalen Speicherregistern 14 ausgeführt werden. Alle diese logischen Funktionen von außen nach innen bzw. innen nach außen, können jedoch nur im Halbwortbetrieb ausgeführt werden.
Daten modifizieren
Durch den Befehl "Daten modifizieren" kann der Inhalt des Akku mulatorregisters 34 oder des Akkumulator-Erweiterungsregisters 36 in seiner Stelle mit dem Inhalt des lokalen Speicherregisters 14, der unverändert bleibt^ modifiziert werden. Ein angegebenes lokales Speicherregister 14 kann außerdem mit dem Inhalt des Akkumulator-Erweiterungsregisters 36 verändert werden, wobei der Inhalt des Akkumulator-Erweiterungsregisters 36 unverändert bleibt und das Ergebnis kann in das selektierte lokale Speicherregister 14 gesetzt werden. Außerdem kann jedes Eingabe/Ausgabegerät zur Lieferung von Daten auf die Eingangssamme1leitung 10 selektiert werden. Diese Daten können mit den Daten im Akkumulator-Erweiterungsregister 36 verändert und das Ergebnis in dasselbe Eingabe/Ausgabegerät zurückgegeben werden,
SA 975 072 8 0 9 8 2 6/0819
indem man die Daten in das Ausgabepufferregister 26 setzt (nicht LSR O) und von dort auf die Ausgangssammelleitung 20 um in die Position 0 des lokalen Speicherregisters 14. Wenn der Adreßteil der modifizierten Dateninstruktion auf 0 gesetzt ist werden auf der Eingangssammelleitung 10 null Daten produziert. Mit der ODER-Funktion wird eine Verschiebung vom Akkumulator-Erweiterungsregister 36 in das Ausgabepufferregister 26 vorgenommen und mit der UND-Funktion wird der Inhalt des Ausgabepufferregisters 26 auf lauter Nullen gesetzt.
Durch die Instruktion "Daten modifizieren" können folgende Änderungsfunktionen angegeben werden: Addiere binär mit oder ohne übertrag oder dezimalgepackt mit Übertrag, Subtrahiere binär oder dezimalgepackt mit Borgen (es kann nicht von einem selektierten lokalen Speicherregister 14 oder einem Eingabe-/ Ausgabegerät subtrahiert werden, außer umgekehrt), UND, ODER und Exklusiv-ODER. Bei Angabe der Position 0 im lokalen Speicherregister 14 wird die indirekte Adressierung des lokalen Speicherregisters 14 oder des Eingabe-/Ausgabegerätes von den wertniederen sechs Bits des Zählregisters 50 selektiert.
Operand modifizieren
Mit den Instruktionen "Operand modifizieren" (MO) kann der Inhalt des Akkumulatorregisters 34 mit dem Inhalt des Akkumulator-Erweiterung sregisters 36 oder der Inhalt des Akkumulator-Erweiterungsregisters 36 kann mit dem Inhalt des Akkumulatorregisters 34 modifiziert werden, der unverändert bleibt. Der Inhalt des Akkumulatorregisters 34 oder des Akkumulator-Erweiterungsregisters 36 können außerdem mit dem Inhalt des Ausgabepufferregisters 26 modifiziert werden. Wenn der Inhalt des Akkumulator-Erweiterungsregisters 36 null ist, wird durch eine ODER-Funktion mit LSR 14, Stelle 0, (Ausgabepufferregister 26) eine Bewegung des Inhaltes des Ausgabepufferregisters 26 in das Akkumulator-Erweiterungsregister 36 und in LSR 14,
SA 975 072 809826/0819
Positionen 1 bis 15 ausgelöst. Die Modifizierfunktionen unterscheiden sich von denen der Instruktionen zum Modifizieren von Daten (MD) dadurch, daß zusätzlich Bewegungsfunktionen zwische jeder Kombination des Inhalts des Akkumulatorregisters 34, des Akkumulator-Erweiterungsregisters 36, des Zählregisters 50
und des Fehlerregisters 46 vorgesehen sind und nicht vom Zählregister 50/Fehlerregister 46 subtrahiert werden kann, außer
in der Umkehrung. Alle obigen Funktionen können im Halbwortbetrieb, nur mit dem hohen Byte, nur mit dem niedrigen Byte oder nur mit der hex. Stelle vorgenommen werden, außer wenn das
hohe Byte des Zählregisters 50/Fehlerregister 46 nicht existiert. Nach Beendigung jeder der obigen Funktionen kann ein
Halbwort-Hilfsergebnis (hohes Byte des Zählregisters 50/Fehler register 46 = laufendes Bedingungsregister 48/Unterbrechungsmaskenregister 44) in eine gewählte Stelle 1 bis 15 des LSR 14 verschoben werden.
Logische Verschiebung
In Fig. 4 ist gezeigt, daß die Schiebeoperationen bitweise
nach links oder rechts erfolgen können. Die Länge der Verschiebung hängt von der Länge des Registers ab. Der Inhalt des
Akkumulatorregisters 34 und seines Erweiterungsregisters 36
kann jeweils zwischen einer und 16 Positionen verschoben werden. Für die Multiplikation und Division, bei denen eine
doppelte Genauigkeit erforderlich ist, wird das Akkumulatorregister 34 zum werthohen Register des Akkumulator-Erweiterungsregisters 36 und sie bilden zusammen ein gekoppeltes 32
Bit großes Register, dessen Inhalt auf eine der folgenden Arter zwischen einer und zweiunddreißig Positionen verschoben werden kann. Die Arten sind: Arithmetische Rechtsverschiebung, Linksverschiebung und Zählung, logische Linksverschiebung, logische Rechtsverschiebung, Linksverschiebung und Drehung und Rechts-
SA 975 072 8 0 9826/0819
verschiebung und Drehung. Schnellere Operationen, die einer Drehung von 8 Positionen der 16 Bit großen Register äquivalent sind, auch Byteverdrehungen genannt, können in einem Mikroinstruktionszyklus ausgeführt werden.
Direkte Modifikation
Die Instruktionen zur direkten Modifikation (IM) sind in Fig. 3C gezeigt.
Ein Datenbyte vom Programmregister 30 (OP-Bits 8 bis 15) wird mit dem wertniederen Byte im Akkumulatorregister 34, im Akkumulator-Erweiterungsregister 36 oder im Zählregister 50/ !Fehlerregister 46 kombiniert, die durch eine frühere KSIE-ISteuerinstruktion selektiert wurden. Für das Akkumulatorregister 34 oder sein Erweiterungsregister 36 sind die kombinierenden Funktionen Subtrahieren, Laden, ODER, UND, XOR und ADD. Jeder durch eine Addition oder Subtraktion erzeugte Übertrag oder Borger, wird in das werthohe Byte weitergeleitet. Füi das Zählregister 50/Fehlerregister 46 sind die kombinierenden Funktionen ODER, UND, Load ADD. Für die Funktionen Addieren oder Subtrahieren werden die direkten Bytedaten um Eins erhöht oder erniedrigt und hereinkommende Überträge mit einem neuen Bedingungscodesatz ignoriert.
Bedingter Sprung
Nach Darstellung in Fig. 4B wird die Sprunginstruktion ausgeführt, wenn eine Prüfung falsch ist. Die gegen ein Maskenbyte in der Instruktion auf den wertniederen 8 Bits eines selektierten Registers ausgeführten Prüfungen sind folgende: Maske unteres Byte, Maske größer als unteres Byte, Maskenbits werden auf eingeschaltete Bits im unteren Byte geprüft und Übrige nicht selektrierte Bits werden ignoriert oder die Maske wird auf die ausgeschalteten Bits im unteren Byte geprüft und die
Ignoriert. Paa Bedingungsregister-48 kann
SA 975 072 8 0 9826/0819
mit Selektion Ein/Aus-Bits und einem Sprung oder einer Bedingungskombination geprüft werden. Das Bedingungsregister 48 hat vier Bedingungscodes und vier programmgesteuerte Markierungsbits. Wenn die Prüfung falsch ist, wird die nächste Instruktion übersprungen. Die hohen Zahlen der hex. Zone im Akkumulatorregister 34 oder dem Akkumulator-Erweiterungsregister 36 können ebenfalls auf lauter Nullen geprüft werden.
Verzweigungsoperationen
Zu den Verzweigungsoperationen gehören die bedingte und die unbedingte Verzweigung. Sie können zu jedem 4K-Bereich des Festwertspeichers 16 vorgenommen werden. Wenn man den Inhalt des Mikroinstruktions-Adreßregisters 32 + 1 in eines der lokalen Speicherregister 14 vor einer unbedingten Verzweigung speichert, wird eine Verzweigungs- und Verbindungsoperation ausgeführt. Wenn man umgekehrt die so in den lokalen Speicherregistern 14 gespeicherte Adresse nimmt und diesen Adreßzeiger in das Mikroinstruktions-Adreßregister 32 zurücksetzt, kehrt man zu der Unterroutine zurück, von der die Verzweigung und Verbindung ursprünglich ausging.
Zu einer zweiten Gruppe von Verzweigungsinstruktionen gehört die Mehrfach-Tabellenverzweigung. Diese kann auf den wertniederen vier hex. Bits in Prozessorregistern, auf den nächsten vier Zonen-Bits unter Ignorierung der vier oder sechs wertniederen Bits oder auf allen acht Bits vorgenommen werden. So erhält man eine Verzweigung mit 256 Zweigen zu einer vollständigen Tabelle, aus der ein acht Bit großer OP-Code durch eine unbedingte Verzweigungsinstruktion aus der Tabelle herausdecodiert werden kann.
Eine dritte Gruppe von Verzweigungsinstruktionen liefert die vorgezeichnete relative Adreßverzweigung bei sechzehn ver-
809826/081 9
SA 975 072
schledenen Bedingungen wie Register O oder nicht 0, Register negativ oder nicht negativ. Die Verzv/eigung mit relativen Adressen erfolgt dadurch, daß man die acht Bit große relative Adresse aus der Instruktion nimmt und sie als vorgezeichnete sechzehn Bit große Zahl zum Inhalt des Mikrolnstruktlons-Adreß registers 32 addiert.
Andere Instruktionen gestatten die relative Adreßverzweigung basierend auf der Erhöhung des Inhaltes des Zählregisters 50 um 1 oder 16. Verzweig*- wird, wenn das Ergebnis lauter Nullen oder nicht lauter Nullen enthält, wenn die vier wertniederen Bits alle 0 oder nicht 0 sind, wenn die vier wertniederen Bits alle 1 oder nicht alle 1 sind, wenn die vier werthohen Bits alle 1 oder nicht alle 1 sind usw.
Logische Bewegung von Zahlen
Die in Fig. 3B dargestellten Instruktionen zur logischen Bewegung von Zahlen (LM) bewegen selektiv den Inhalt eines angegebenen Registers 1 bis 63 in den lokalen Speicherregistern 14 in das Mikroinstruktions-Adreßregister 32, das Akkumulatorregister 34, das Akkumulator-Erweiterungsregister 36 oder die kombinierten Register für die laufende Bedingung 48 und das Zählregister 50. Während dieser Übertragungen kann der Wert um 0, -1 oder +1 verändert werden (Bewegungen von Einzelbytes in das Akkumulatorregister 34 oder das Akkumulator-Erweiterung: register 36 ausgenommen). Der so modifizierte Wert wird in das gewählte Register 1 bis 63 der lokalen Speicherregister 14 zurückgeschrieben. Umgekehrt kann der Inhalt eines angegebenen Registers (Mikroinstruktionsadreßregister 32, Akkumulatorregister 34, Akkumulator-Erweiterungsregister 36 oder Bedingungsregister 48 und Zählregister 50 kombiniert in eine gewählte Stelle 1 bis 63 der lokalen Speicherregister 14 mit einer Modifikation um 0, +1 oder -1 bewegt werden (Bewegung voi Einzeldatenbytes aus dem Akkumulatorregister 34 oder dem Akkumulator-Erweiterungsregister 36 ausgenommen). Die Byteverschie-
3A 975 072 8 0 9826/0819
bungen können entweder das hohe oder das niedrige Byte im Akkumulatorregister 34 oder dem Akkumulator-Erweiterungsregister 36 angeben. Bei Bewegungen zwischen diesen beiden Registern und dem angegebenen Register in den lokalen Speicherregistern 14 wird keine Modifikation vorgenommen. Der Wert des Mikroinstruktions-Adreßregisters 32 besteht aus einer sechzehn Bit großen Adresse für den Festwertspeicher 16. Das Bedingungsregister 48 kann nur als oberes Byte der Kombination des Bedingungsregisters 48 mit dem Zählregister 50 selektiert werden, wenn keine Erhöhung oder Erniedrigung angegeben ist. Das Unterbrechungsmasken-Register 44 und das Fehlerregister 46 werden ebenso als Ersatz für das Bedingungsregister 48 und das Zählregister 50 gewählt, wenn sie durch eine früher beschriebe e KSIE-Steuerinstruktion eingeschaltet wurden. Wenn die Instruktion zur logischen Zahlenverschiebung die Stelle 0 in den lokalen Speicherregistern 14 angibt, ist die indirekte Adressierung de lokalen Speicherregister 14 von den wertniederen sechs Bits de Zählregisters 50 selektiert. Ausgenommen ist die Selektion des Bedingungsregisters 48 und des Zählregisters 50 als Bestimmungsort für das Quellenregister für die Bewegungsoperation, mit der Daten von oder zu diesen beiden Registern bewegt werden von oder zu der Stelle 0 der lokalen Speicherregister 14.
Eingabe/Ausgabe
Eine direkte Eingabe/Ausgabe-Instruktion als solche gibt es nicht. Direkte programmgesteuerte Datenübertragungen oder Steuernachrichten von oder zu einem E/A-Gerät werden durch die Instruktionen Speicherabruf, Speicher Schreiben, Daten modifizieren und durch Steuerinstruktionen ausgeführt.
Die Speicherabrufinstruktion überträgt Daten vom Hauptspeicher 12 an ein E/A-Gerät über die interne Datenbahn der Sammelleitungen 23, 25, 28. Die logische Schreibinstruktion überträgt
97 ' °7· B09826/08 19
Daten direkt von einem E/A-Gerät an den Hauptspeicher 12 über die Eingangssanunelleitung 10, ohne daß diese durch den Prozessor 9 laufen. Dabei wird die Adresse vom Akkumulator-Erweiterungsregister 36 oder von einem der LSR 14 benutzt. Die Instruktion zur Datenmodifikation bringt Daten von einem E/AGerät, läßt die ALU 22 die Daten mit dem Operanden im Akkumulator-Erweiterungsregister 36 bearbeiten und gibt das Ergebnis über das Ausgabepufferregister 26 an das E/A-Gerät zurück. Mit einer Steuerinstruktion können Daten an ein Gerät entweder von einem angegebenen LSR I4 (0 bis 15) oder von einem direkten Datenfeld in der Instruktion ausgegeben werden. Andere Steuerinstruktionen können Daten von einem E/A-Gerät in das Akkumulatorregister 34, das Akkumulator-Erweiterungsregister 36 oder eines der Register 0 bis 15 im LSR 14 übertragen.
In jedem Fall wird die Geräteadresse, entweder direkt im Adreß feld durch die Instruktion angegeben oder indirekt als Inhalt des Zählregisters 50, an das E/A-Gerät über die Adreßsammelleitung 21 und die Ausgangsleitung 41 übertragen, die auch zur Adressierung der LSR 14 benutzt werden. Die übertragung wird durch zwei Austauschsignale synchronisiert. Diese Signale gestatten zusammen mit dem Haltetakteingangssignal den asynchronen Betrieb der E/A-Übertragungen, unabhängig von der Leitungslänge und den Betriebsverzögerungen des Gerätes.
SA975072 809826/0819

Claims (8)

  1. PATENTANSPRÜCHE
    Mikroprozessor-Architektur eines auf einem Halbleiterchip integrierten Mikroprozessors mit einer arithmetisch/logischen Einheit, den dazugehörigen Operandenregistern, einer Instruktions-Decodier- und Ausführungsschaltung, einem Ausführungssteuerspeicher, Eingangs- und Ausgangsschaltungen sowie Leitungen zu dem Hauptspeicher, den Registern und Eingabe-/Ausgabegeräten außerhalb des Halbleiterchips, einem die genannten Baueinheiten verbindenden Sammelleitungssystem und einer Takt- und Zeitsteuerung zur zeitlichen Steuerung der ablaufenden Operationen, dadurch gekennzeichnet, daß für die Zykluszuordnungen und Unterbrechungsanforderungen eine multiplex geschaltete gemeinsame Rufleitung (53) auf dem Halbleiterchip angeordnet ist, die mit einem Prioritätscodierer (54) verbunden ist, der seinerseits über eine Leitung (69) mit einen Unterbrechungsmasken-Register (44), einem Zählregistsr (50), einem Register (48) zum Festhalten der laufenden Bedingung und einem Fehlerregister (46) verbunden ist, und daß ein Taktgeber (64, 66) angeordnet ist, der in jedem Mikroinstruktions-Zyklus seine gesamten Positionen durchläuft und durch Setzen eines Flip-Flops einen Doppelzyklus für die Ausführung einer Instruktion, die den Hauptspeicher (12) ansteuern muß, durchläuft, daß im ersten Zyklus die im Hauptspeicher (12) anzusteuernde Adresse errechnet und während des zweiten Zyklus diese auf die Ausgangsleitung (20) über Treiber (18) und ein unidirektionales Ringsairanelleitungssystem (23, 25 und 28) gegeben wird, das über die arithmetisch/ logische Einheit (22), ein nachgeschaltetes Totalregister (24) zu einem Ausgabe-Pufferregister (26) führt und von der genannten Takt- und Zeitsteuerung zusammen mit auf dem Halbleiterchip befindlichen Registern getaktet und zeitlich gesteuert wird.
    SA975072 809826/0819
    ORIGINAL INSPECTED
    " 2 " *' 7 5 'τ 7 6 8
  2. 2. Mikroprozessor-Architektur nach Anspruch 1, dadurch gekennzeichnet, daß die arithmetisch/logische Einheit
    (22) auf Zeitteilerbasis, gesteuert durch einen Taktgeber (64) und einen nachgeschalteten Hilfstaktgeber
    (66) die Erhöhung der Mikroinstruktionsadressen, die Verarbeitung der Daten, die Verzweigung bei relativer Adressierung, die Verbindung von Unterroutinen, die Hauptspeicheradressierung, die Adreßveränderung, den Abruf und das Speichern von Daten, die Verarbeitung prioritätsverknüpfter Unterbrechungen und Zykluszuordnungen, dadurch ausfährt, daß das Adreßregister (32) direkt in den Datenfluß der arithmetisch/logischen Einheit (22) mit integriert ist und die außerhalb des Prozessor-Halbleiterchips (9) befindlichen lokalen Speicherregister (14) in den Datenfluß integriert sind.
  3. 3. Mikroprozessor-Architektur nach den Ansprüchen 1 bis 2, dadurch gekennzeichnet, daß bei der Zykluszuordnung die Eingabe-/Ausgabegeräte ihre Unterbrechungsanforderungen von der gemeinsamen Rufleitung (53) nehmen, wenn ein anforderndes Eingabe-/Ausgabegerät die Zuordnungsanforderungs-Leitung (68) auf einen logisch negativen Pegel setzt, wodurch eine Aufrufzyklus-Zuordnungs-Verriegelungsschaltung (75) verriegelt wird, die auf einer Leitung (77) ein Signal erzeugt, das die Eingabe-/Ausgabegeräte so steuert, daß sie ihre Unterbrechungsanforderungen von der gemeinsamen Rufleitung (53) nehmen, bis die Zykluszuordnungsfunktion abgeschlossen ist, daß, sobald alle Geräte ihre Signale von der Unterbrechungsanforderungs-Leitung (70) und der Zuordnungsanforderungs-Leitung (68) genommen haben, eine Zykluszuordnungs-Betätigungsverriegelung (76) im nächsten Takt (0) verriegelt wird und damit anzeigt, daß die gemeinsame Rufleitung (53) die Zykluszuordnungs-Priorität für das anfordernde Gerät hat, die unter
    SA975072 809876/0819
    Umgehung eines ünterbrechungstores (52) direkt auf den Prioritätscodierer (54) gelangt, wodurch Bits einer Adresse am Ausgang des Prioritätscodierers (54) erzeugt und zusammen mit den fixen werthöheren Adreßzeigerbits im entsprechenden lokalen Speicherregister (14) für die Zykluszuordnungsstufe, die als Adresse des Hauptspeichers (12) benutzt wird, in das LSR-Ausgabesteuerregister (40) geleitet werden.
  4. 4. Mikroprozessor-Architektur nach Anspruch 3, dadurch gekennzeichnet, daß die Adresse von den lokalen Speicherregistern (14) auf die Eingangssammelleitung (10) ausgelesen und von der arithmetisch/logischen Einheit (22) erhöht wird, bevor sie in das Ausgabepufferregister (26) gesetzt wird.
  5. 5. Mikroprozessor-Architektur nach den Ansprüchen 1 bis 4, dadurch gekennzeichnet, daß während der Speicherzugriffszeit des Hauptspeichers (12) die erhöhte Adresse auf der AusgangsSammelleitung (20) fortgeschrieben, in das Zykluszuordnungsregister in den lokalen Speicherregistern (14) zurückgeschrieben wird und daß nach einer Speicherzugriffszeit Daten aus dem Speicher (12) auf die Eingangssammelleitung (10) ausgelesen werden, wenn das entsprechende Eingabe-/Ausgabegerät die Auslesewahl des Hauptspeichers (12) gestattet und die Schreibimpulse sperrt, die vom Prozessor (9) auf den Steuer- und Taktleitungen (19) anliegen.
  6. 6. Mikroprozessor-Architektur nach Anspruch 5, dadurch gekennzeichnet, daß im Lesebetrieb des Hauptspeichers (12) die auf die EingangsSammelleitung (10) ausgelesenen Daten über die arithmetisch/logische Einheit (22) in das nachgeschaltete Totalregister (24) und das Ausgabepufferregister (26) gelangen und damit allen Eingabe-/
    SA 975 072
    80QR26/08 1 9
    Ausgabeyeräten auf der Ausgangssammelleitung (20) zur Verfügung stehen, wonach der Prozessor (9) in die normale Instruktionsausführung oder in die Unterbrechungsroutinen-Verarbeitung zurückkehrt.
  7. 7. Mikroprozessor-Architektur nach den Ansprüchen 1 bis 6, dadurch gekennzeichnet, daß der Taktzyklus in acht verschiedene Zeiten (Takte 0 bis 7) unterteilt ist, daß dieser Grundtakt in zwei Teile zur Steuerung der arithmetisch/logischen Einheit (22) unterteilt ist, daß während des Taktes (7) bis zum Takt (2) die arithmetisch/ logische Einheit (22) den Inhalt des Instruktionsadreßregisters (32) erhöht, daß während eines Teils der Takte (3 bis 6) von allen Mikroinstruktionen die Verarbeitung durchgeführt v/ird und daß zu Beginn einer bestimmten Taktzeit (Takt 3) ein Basisfenster erzeugt wird, indem die Adresse für den Festwertspeicher (16) auf der Ausgangssammelleitung (20) erscheint, wenn der errechnete neue Adreßzeiger von der arithmetisch/logischen Einheit (22) in das nachgeschaltete Totalregister (24) und in das Ausgabepufferregister (26) geladen wird.
  8. 8. Mikroprozessor-Architektur nach den Ansprüchen 1 bis 6, dadurch gekennzeichnet, daß in das Totalregister (24) zu einer bestimmten Taktzeit (Takt 2) die Instruktionsadresse geladen wird und zu einer anderen bestimmten Taktzeit (6) die von der arithmetisch/logischen Einheit
    (22) bei der Ausführung dieser Instruktion verarbeiteten Daten, währenddessen zu einer dazwischenliegenden Taktzeit (Takt 3) die nächste Instruktionsadresse in das Ausgabepufferregister (26) und danach auf die Ausgangssammelleitung (20) gesetzt wird.
    SA 975 072
    B09R76/081 9
DE2756768A 1976-12-27 1977-12-20 Mikroprozessor Expired DE2756768C2 (de)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US05/754,193 US4181934A (en) 1976-12-27 1976-12-27 Microprocessor architecture with integrated interrupts and cycle steals prioritized channel

Publications (2)

Publication Number Publication Date
DE2756768A1 true DE2756768A1 (de) 1978-06-29
DE2756768C2 DE2756768C2 (de) 1982-08-12

Family

ID=25033801

Family Applications (1)

Application Number Title Priority Date Filing Date
DE2756768A Expired DE2756768C2 (de) 1976-12-27 1977-12-20 Mikroprozessor

Country Status (11)

Country Link
US (1) US4181934A (de)
JP (1) JPS6053899B2 (de)
AU (1) AU513019B2 (de)
BR (1) BR7708662A (de)
CA (1) CA1100643A (de)
CH (1) CH623947A5 (de)
DE (1) DE2756768C2 (de)
ES (1) ES465431A1 (de)
GB (1) GB1543278A (de)
HK (1) HK70684A (de)
SE (1) SE432313B (de)

Families Citing this family (39)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4363091A (en) * 1978-01-31 1982-12-07 Intel Corporation Extended address, single and multiple bit microprocessor
US4417304A (en) * 1979-07-30 1983-11-22 International Business Machines Corporation Synchronous cycle steal mechanism for transferring data between a processor storage unit and a separate data handling unit
US4479179A (en) * 1979-07-30 1984-10-23 International Business Machines Corporation Synchronous cycle steal mechanism for transferring data between a processor storage unit and a separate data handling unit
US4462029A (en) * 1979-12-06 1984-07-24 Analogic Corporation Command bus
US4435758A (en) 1980-03-10 1984-03-06 International Business Machines Corporation Method for conditional branch execution in SIMD vector processors
JPS5720859A (en) * 1980-05-30 1982-02-03 Fairchild Camera Instr Co Microprocessor
US4396980A (en) * 1980-07-11 1983-08-02 Fairchild Camera & Instrument Corp. Combined integrated injection logic and transistor-transistor logic microprocessor integrated circuit design
US4400772A (en) * 1980-12-30 1983-08-23 International Memories, Inc. Method and apparatus for direct memory access in a data processing system
US4482949A (en) * 1981-07-20 1984-11-13 Motorola, Inc. Unit for prioritizing earlier and later arriving input requests
US4811279A (en) * 1981-10-05 1989-03-07 Digital Equipment Corporation Secondary storage facility employing serial communications between drive and controller
US4450525A (en) * 1981-12-07 1984-05-22 Ibm Corporation Control unit for a functional processor
US4577282A (en) * 1982-02-22 1986-03-18 Texas Instruments Incorporated Microcomputer system for digital signal processing
US4533992A (en) * 1982-02-22 1985-08-06 Texas Instruments Incorporated Microcomputer having shifter in ALU input
US4514805A (en) * 1982-02-22 1985-04-30 Texas Instruments Incorporated Interrupt operation in systems emulator mode for microcomputer
US4591972A (en) * 1982-11-15 1986-05-27 Data General Corp. Data processing system with unique microcode control
DE3477616D1 (en) * 1983-09-12 1989-05-11 Motorola Inc Prefetch validation
US4769768A (en) * 1983-09-22 1988-09-06 Digital Equipment Corporation Method and apparatus for requesting service of interrupts by selected number of processors
US4706190A (en) * 1983-09-22 1987-11-10 Digital Equipment Corporation Retry mechanism for releasing control of a communications path in digital computer system
USRE34052E (en) * 1984-05-31 1992-09-01 International Business Machines Corporation Data processing system with CPU register to register data transfers overlapped with data transfer to and from main storage
US4648029A (en) * 1984-08-27 1987-03-03 International Business Machines Corporation Multiplexed interrupt/DMA request arbitration apparatus and method
BG39765A1 (en) * 1985-02-14 1986-08-15 Turlakov Device for connecting 8- degree and 16- degree modules to 16- degree microprocessor system
US5255384A (en) * 1985-02-22 1993-10-19 Intergraph Corporation Memory address translation system having modifiable and non-modifiable translation mechanisms
US4899275A (en) * 1985-02-22 1990-02-06 Intergraph Corporation Cache-MMU system
US4709324A (en) * 1985-11-27 1987-11-24 Motorola, Inc. Data processor control unit having an interrupt service using instruction prefetch redirection
US4961067A (en) * 1986-07-28 1990-10-02 Motorola, Inc. Pattern driven interrupt in a digital data processor
US5001624A (en) * 1987-02-13 1991-03-19 Harrell Hoffman Processor controlled DMA controller for transferring instruction and data from memory to coprocessor
DE3788877T2 (de) * 1987-03-24 1994-06-23 Insignia Solutions Ltd Einrichtung zur software-emulation.
US4942520A (en) * 1987-07-31 1990-07-17 Prime Computer, Inc. Method and apparatus for indexing, accessing and updating a memory
EP0303751B1 (de) * 1987-08-20 1992-05-20 International Business Machines Corporation Schnittstellenmechanismus für Informationsübertragungssteuerung zwischen zwei Vorrichtungen
US5317715A (en) * 1987-12-15 1994-05-31 Advanced Micro Devices, Inc. Reduced instruction set computer system including apparatus and method for coupling a high performance RISC interface to a peripheral bus having different performance characteristics
US4916601A (en) * 1988-12-19 1990-04-10 Bull Hn Information Systems Inc. Means for transferring firmware signals between a control store and a microprocessor means through a reduced number of connections by transfer according to firmware signal function
US5144230A (en) * 1990-11-26 1992-09-01 The Boeing Company Method and system for testing integrated circuits by cycle stealing
US5363495A (en) * 1991-08-26 1994-11-08 International Business Machines Corporation Data processing system with multiple execution units capable of executing instructions out of sequence
EP0562353A3 (de) * 1992-03-27 2004-08-18 Siemens Aktiengesellschaft Verfahren zum Übertragen hochpriorer Programme und Daten in einem Kommunikationssystem
US5473757A (en) * 1992-12-11 1995-12-05 Ge Fanuc Automation North America, Inc. I/O controller using single data lines for slot enable/interrupt signals and specific circuit for distinguishing between the signals thereof
US5435001A (en) * 1993-07-06 1995-07-18 Tandem Computers Incorporated Method of state determination in lock-stepped processors
FR2720172B1 (fr) * 1994-05-20 1996-06-28 Sgs Thomson Microelectronics Dispositif de mise en Óoeuvre numérique d'une opération de division.
US5838991A (en) * 1994-12-29 1998-11-17 International Business Machines Corporation Preemptable idle time activities for constant data delivery by determining whether initiating a host command will conflict with an idle time activity being executed
TWI259356B (en) * 2004-03-26 2006-08-01 Infortrend Technology Inc Apparatus for checking data coherence, controller and storage system having the same and method therefore is disclosed

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3680054A (en) * 1970-07-06 1972-07-25 Ibm Input/output channel
US3668651A (en) * 1970-12-30 1972-06-06 Ibm Working device code method of i/o control
US3909790A (en) * 1972-08-25 1975-09-30 Omnus Computer Corp Minicomputer with selector channel input-output system and interrupt system
US3962682A (en) * 1974-10-30 1976-06-08 Motorola, Inc. Split low order internal address bus for microprocessor
US4004283A (en) * 1974-10-30 1977-01-18 Motorola, Inc. Multiple interrupt microprocessor system
US4034349A (en) * 1976-01-29 1977-07-05 Sperry Rand Corporation Apparatus for processing interrupts in microprocessing systems
US4038641A (en) * 1976-04-30 1977-07-26 International Business Machines Corporation Common polling logic for input/output interrupt or cycle steal data transfer requests
US4056847A (en) * 1976-08-04 1977-11-01 Rca Corporation Priority vector interrupt system

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
Elektronik Band 23 (1974) Heft 10, S. 391-395 *
Elektronik Band 25 (1976) Heft 5, S. 69-74 *
Microprocessors, Electronics Book Series, Herausgeber Laurence Altmann, McGraw-Hill 1975, S 22-28 *

Also Published As

Publication number Publication date
HK70684A (en) 1984-09-21
GB1543278A (en) 1979-03-28
SE7714244L (sv) 1978-06-28
CH623947A5 (de) 1981-06-30
US4181934A (en) 1980-01-01
DE2756768C2 (de) 1982-08-12
ES465431A1 (es) 1978-09-16
AU513019B2 (en) 1980-11-06
AU2982277A (en) 1979-05-24
BR7708662A (pt) 1979-07-24
SE432313B (sv) 1984-03-26
JPS6053899B2 (ja) 1985-11-27
CA1100643A (en) 1981-05-05
JPS5382240A (en) 1978-07-20

Similar Documents

Publication Publication Date Title
DE2756768C2 (de) Mikroprozessor
DE2524046C2 (de) Elektronische Datenverarbeitungsanlage
DE2716369C2 (de)
DE2755273C2 (de)
DE69729974T2 (de) Datenverarbeitungsschaltung, Mikrocomputer und elektronische Einrichtung
DE2023354C2 (de) Datenverarbeitungsanlage mit einem Mikrobefehlsspeicher
DE2907181A1 (de) Befehlssatz-modifizierregister fuer einen datenprozessor
DE2935906C2 (de) Mikroprozessor
DE3424962C2 (de)
CH650600A5 (de) Zentralprozessoreinheit einer datenverarbeitungsanlage mit operationscode-erweiterungsregister.
EP0010185B1 (de) Virtuell-Adressiervorrichtung für einen Computer
DE2756762A1 (de) Verfahren und anordnung zum zugriff zu beliebigen bitfeldern im hauptspeicher einer datenverarbeitungsanlage
DE2130299B2 (de) Eingabe-/Ausgabekanal für eine Datenverarb eitungsanlage
DE1549523B2 (de) Datenverarbeitungsanlage
DE2714805A1 (de) Datenverarbeitungssystem
DE2748991A1 (de) Einrichtung zur umsetzung von datenformaten
DE2910839A1 (de) Einrichtung zur ausfuehrung einer speziellen verzweigungsinstruktion
DE3741850A1 (de) Ausfuehrungseinheit fuer einen i/o-prozessor
DE2533737C2 (de) Mikroprozessor mit aufteilbarer Adressenschiene
DE2458096A1 (de) Mikroprogramm-ladeeinrichtung fuer die ladezeit-festlegung
DE2913492A1 (de) Prozessor und anlage mit einem derartigen prozessor
DE1935944B2 (de) Steuereinrichtung in einer elektronischen Datenverarbeitungsanlage
DE2756767C2 (de) Mikroprozessor auf einem Halbleiterchip
DE2336676A1 (de) Einrichtung zur modifizierung von mikroprogrammbefehlen
DE2835110A1 (de) Schneller echtzeit-rechneremulator

Legal Events

Date Code Title Description
OAP Request for examination filed
OD Request for examination
D2 Grant after examination
8339 Ceased/non-payment of the annual fee