DE2756767C2 - Mikroprozessor auf einem Halbleiterchip - Google Patents
Mikroprozessor auf einem HalbleiterchipInfo
- Publication number
- DE2756767C2 DE2756767C2 DE2756767A DE2756767A DE2756767C2 DE 2756767 C2 DE2756767 C2 DE 2756767C2 DE 2756767 A DE2756767 A DE 2756767A DE 2756767 A DE2756767 A DE 2756767A DE 2756767 C2 DE2756767 C2 DE 2756767C2
- Authority
- DE
- Germany
- Prior art keywords
- register
- output
- address
- data
- instruction
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/38—Information transfer, e.g. on bus
- G06F13/42—Bus transfer protocol, e.g. handshake; Synchronisation
- G06F13/4247—Bus transfer protocol, e.g. handshake; Synchronisation on a daisy chain bus
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/20—Handling requests for interconnection or transfer for access to input/output bus
- G06F13/32—Handling requests for interconnection or transfer for access to input/output bus using combination of interrupt and burst mode transfer
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Microcomputers (AREA)
- Bus Control (AREA)
- Memory System (AREA)
- Executing Machine-Instructions (AREA)
- Debugging And Monitoring (AREA)
Description
Die Erfindung betrifft einen Mikroprozessor auf einem Halbleiterchip 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 arithmetisch/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/Ausgabeeinheit behandelt wird und in der Architektur mit anJeren Eingabe/Ausgabegeräten
des Systems kombiniert ist Dei 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 Prozessorfunktion auf eine Anzahl identischer Chips verteilt
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 Anzihl der verfügbaren E/A'Stifte begrenzt sind und demzufolge zu einer
Verdoppelung der Logik ufid 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.
Der Erfindung liegt die Aufgabe zugrunde, einen Mikroprozessor auf nur einem Halbleitercnip mit
verbessertem Sammelleitungssystem und verbesserter Takt- und Zeitsteuerung zur Ausführung der internen
Operationen anzugeben, um die Leistungsfähigkeit des Mikroprozessors zu erhöhen und die erforderlichen
Anschlußstifte zu verringern.
Die erfindungsgemäße Lösung der Aufgabe besteht im Kennzeichen des Patentanspruchs 1.
Weiterbildungen der vorliegenden Erfindung sind in den Patentansprüchen 2 bis 5 angegeben.
Es ist somit ein Mikroprozessor mit einem unidirektionalen
Ringsammelleitungssystem geschaffen worden, das in mehrere Abschnitte unterteilt ist und zeitlich
parallel Mikroinstruktionen auf diesen Abschnitten ausführen kann. Durch diese Takt- und Zeitsteuerung ist
die Leistungsfähigkeit eines derart aufgebauten Mikroprozessors wesentlich erhöht worden, obwohl die
erforderlichen Anschlußstifte sogar verringert worden sind.
Ein Ausführungsbeispiel der Erfindung ist in den Zeichnungen dargestellt und wird anschließend näher
beschrieben. Es zeigt
Fig. 1 einen Lageplan der Fig. 1 A, IB und 1C, die in
einem Schaltungs-Plan den Aufbau eines Mikroprozessors /eigen,
F i g. 2A, B. C, 3A, B, C, 4A, B. C in Zeitdiagrammen
die Ausführung eines Grundinstruktionssatzes, dei an die Architektur des Mikrocomputersystems angepaßt
ist und die F i g. 2, 3 und 4 die Beziehung dieser Zeitdiagramme zueinander,
F i g. 5 Scnaltungsanordnung zur Zyklusanordnung und Unterbrechung.
Die vier Haupteinheiten des in Fig. 1 dargestellten
Systems 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 Steüerleitung 15 sowie mehreren
Arbeitsregistern und einer Steuerschaltung,
2. ein lokales Speicherregister 14,
3. ein Hauptspeicher 12,
4. ein Festwertspeichef (ROS) 16, auch AusfÜhrUngsspeicher
oder Mikroprogrammspeicher genannt.
Der Zentralprozessor 9 kann z. B. 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 Hauptspe.cher 12 über die
Hauptspeichersammelleitung 11, vom Festwertspeicher
16 über die Festwertspeichersammelleitung 17 und von den lokalen Speicherregistern 14 übe die Sammelleitung
13. Daien auf der Eingangssainir illdiung iö
werden dem Frogrammregister 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 Eingangssam-
melleitung 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 Ausgangssamn.elleitung
20 dient für den Festwertspeicher 16 und den Hauptspeicher 12 als Adreßsammelleitung und für
die lokalen Speicherregister 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 Eingangssammellei
tung 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
selektif t. Diese Steuerleitungen 15 werden durch den Hilfstreiber 18 erregt und verlassen ihn in der
Darstellung in F ig. t Λ als Steuer-und Taktleitvngen 19.
Dazu gehören die Selektionsleitungen für das lokale Speicherregister 1A. den Festwertspeicher 16. den
Hauptspeicher 12, und die Schreibleitungen für das hohe
und niedrige Byte. Em E/A-Gerät wird selektiert, wenn die Selektionsleitung für die lokalen Speicherregister 14
nicht aktiv ist und eine gültige Geräteadresse angegeben wird. Die Gültigkeit der Datenübertragungen auf
der Ausgangssammelleitung 20 wird durch Vorherge-
hende einer -Taktimoulse auf einer der Steuerleitungen
15 zeitlich gesteuert. Ausgehende Abfragesignale zeigen afl, 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 Takteihgängshaltesignal, s
mit dem die Eingabe-/Ausgabegeräte das Weiterlaufen des CPU'Taktes verhindern können, gestatten diese
Signale einen vollständig asynchronen E/A»Betfieb,
Anschließend werden die EingabeVAusgabesammelleilungen
10, 19, 20, 21 und 31 und ihre Funktion kurz beschrieben.
Die Ausgangssammelleitung 20 umfaßt 18 Leitungen für die Datenausgabe der E/A-Geräte und lokalen
Speicherregister 14 sowie für die AdreDausgabe 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 Speächerregistern 14 und für die Dateneingabe und
-ausgabe vom Hauptspeicher 12. Die gemeinsame Rufleitung 53 umfaßt sieben Multiplex-Zykluszuordnungsleitungen
oder sieben Unterbrechungsstufen-Anforderungsleitungen. Die Zykluszuordnungsaufruf-Leitüng
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ßsammelleitung 21 besteht hier aus sechs Leitungen zum
Adressieren von bis zu 64 Stellen in den lokalen Speicherregistern 14, zur Signalisierung der Zykluszuordnungsstufe
oder zur Adressierung von bis zu 63 Eing abe-/Ausgabegeräten.
Zum Selektierausgang für die lokalen Speicherregister gehören die fünf Leitungen LSR-Selektion,
Speii:her-Seiektion, ROS-Selektion. »Schreiben hohes
Byte κ und »Schreiben niedriges Byte«, der Steuer- und Takileitungen 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 i4 gültig sind. Der
Abfrageeingang schließt eine gemeinsame Leitung ein, auf der eine 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 Unterbrechurigs-Eingangsleitung 55'
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 Oszillatorausgangsleitung
59 liefert kontinuierlich ein rechteckiges Taktsignal.
Durch ein Signal auf der Rückstell-Eingangsleitung
wird das System allgemein und nach der Stromeinschaltung zurückgestellt.
Die Ausgangsleitung für Takt 1 oder 9 ist eine der Steuer- und Taktleitungen IS für die kontinuierliche
Taktierung auf der Ausgangssammelleitung 20 derjenigen
Daten, die vorher auf der Pufferregister-Ausgangsleitung 28 waren. Die Takfausgangssignal 6, 7 oder 14,
15 (für Instruktionen für Doppelzyklus) auf den Leitungen 19 sorgen für die kontinuierliche Taklierung;
ihr Abfallen zeigt das Ende einer Instruktion an.
Ein Sperrsignal für das hohe Speicherbyte wird vom Gerät erzeugt, Wenn nur das niedrige Byte in den
Hauptspeicher 12 geschrieben werden soll. Ein Sperr^
signal für niedrige Speicherbytes wird Vom Gerät abgegeben, wenn nur aas hohe Byte in den Hauptspei»
eher 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 werden.
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. adressieren 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.
Im Zentralprozessor 9 verläuft die Eingangssammeljeitung 10 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 Erniedrigungsregisters 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 40 geleitet. Die Ausgabe
des Registers 48 wird ü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 1 b Bit für die ALU 22 und folgende Operantenregister:
Das Akkumulatorregister 30, 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
22 geleitet werden kamt
Das Totalregister 24 ist der Ausgabepuffer für die ALU 22 und wird von der Sammelleitung 23 geladen.
Das Programmregister 30 hält die Mikroinstruktion, die
durch den Instruktionsdecodierer 62 decodiert und dann ausgeführt werden soIL Der Inhalt des Programmregisters
30 kann auch über die Sammelleitung 33 in die ALU 22 geleitet werden. Der Inhalt des Mikroinstruk-
tions-Adreßregisters 32 kann über die Leitung 29 in die ALU 22 geleitet werden zurAdreßmodifikation oder für
Verzweigungs- und Verbindungsoperationen. Mit dem Zählregister 50 wprden Verschiebungen gezählt und die
lokalen Speicheffegister 14 indirekt adressiert. Der
Inhalt des Zählregisters 50 kann zur Ausführung verschiedener Operationen über die Leitung 43 zur
ALU 2? geleitet werden. Der Ausgäbepuffer 26 hält auf
die Puirerregister-Ausgangsleitung 28 gegebene Daten
fest. Hinter dem Hilfstreiber 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. wo sie dann für verschiedene Operationen über die Eingangssammelleitung 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 Bedingungw-Register 48
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 werden.
Die für Zykluszuordnungen und Unterbrechungsanforderungen
multiplex geschaltete gemeinsame Rufleitung 53 ist mit dem Unterbrechnungstor 52 und dem
Prioritätscodierer 54 verbunden. Die Verbindung mit dem 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 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 Hilfstaktgeber 64 läuft Mit den Ausgangssignalen
dieser Taktgeber und Ausgangssignalen des 'Instniktionsdecödierers 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 F i g. 1 benutzt Die Leitungen 530 bis 536 in Fig.5 stellen die einzelnen
Leitungen der gemeinsamen Rufsammelleitung 53 in F i g-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-Leiturig 80, ίήϊ
Ünterbrechüngstor 52 weiden die Signale auf der Leitung 450 (zum O-Bit des UnterbfechurigVMaskenre^
gisters 44 gehörend) mit den Signalen auf der
Ausgangsrücksfell-Leitung 80 UND-verknüpft und das
Ergebnis mit den Signalen auf def Leitung 530, die die Q-Bitposition der gemeinsamen RiifieitUhg 53 darstellen,
NOR-verknüpft. Das Ergebnis erscheint auf eier Leitung
520, In ähnlicher Weise1 Werden die Bits 1 bis 6 des
to Ünterbrechungs-Maskenregisters 44 auf den Leitungen
451 bis 456 mit den Signalen auf der Aüsg'angsfü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.
Die Ergebnisse erscheinen auf den Leitungen 521 bis 526. Die Leitung 520 wird zu den NOR-Gliedern 86, 94
und 95 geführt. Die Leitung 521 führt zu den •NOR-Gliedern 86, 90 und 95. die Leitung 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 526 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 UND-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 dem UND-Glied 82
zugeführt. Die Ausgabe des NOR-Gliedes 90 geht zum UND-Glied 93. Im NOR-Glied 95 werden die Ausgaben
der UND-Glieder 87 und 88 mit den Signalen auf den Leitungen 520 und 521 verknüpft Im NOR-Glied 94
werden die Ausgaben der UND-Glieder 91, 92 und 93 mit den Signalen auf der Leitung 520 verknüpft und
erscheinen auf der Leitung 541, die zum Register 56 für die laufende Unterbrechung (Pos. 1), zur Unterbre-.
chungsprüfschaltung58 und zum UND-Glied 82 führt
Mit 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-Bestätigungsschaltung. 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
sterert die Ladeleitung für eine neue Unterbrechungsstufe 72 und erregt die Leitung 57 für die laufende
Unterbrechungsstufe. Das negative Signal auf der Unterbfechühgsänforderurigs-Leitung 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 zwingsü-
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
Mikroinstruktions-Einschaltleitung 74 verknüpft werden. Dann laufen sie über die Ausgangsleitungen 831 bis
Ä35 zum LSR-Ausgabesteuerregister 40.
Die Ausgänge der UND-Glieder 82 werden über eine ÖOT-ODER-Verknüpfung mit den Signalen auf den
Leitungen 831 bis 833 verbunden, den wertniederen Bitpositiorten des Einganges zum LSR-Ausgabesteuerregister
40. Genauso werden die Ausgahgsleitungen 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«-Stuie 73, die den
Inhalt des Registers 56 für die laufende Unterbrechung tuf die drei wertniederen Eingangsleitungen zum
LSR-Ausgabesteuerregister 40 leitet, zwingt auch auf die werthohen Eingangsleitungen 834, 835 ähnlich wie
tuf die Leitung 78 einem bestimmten jedoch diesmal «nderen Code, um so auf die Ausgangsleitungen 41 des
LSR-Ausgabesteuerregisters 40 eine Adresse zu setzen, die auf eine andere 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 allen 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, wird dadurch dem Mikroprozessor 9 angezeigt, daß alle Geräte ihre
Unterbrechungsprioritätsbils 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
40 geschaltet werden können, zusammen mit den Zykluszuordnungs-Modifizierbits auf den
Leitungen 78 in den werthohen Positionen 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 arithmitiseh/Iogische Einheit 22 erhöht werden kann,
um Daten vom Gerät zu holen oder dort zu speichern. Die Zykluszuordnungsstufe mit der niedrigsten Priorität
braucht keine 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
Mikroinstniktion zurückzukehren. Die Aufruf zyklus-Zuordnungsverriegelung
75 kann auch wieder itrriegelt
werden, weil sie erst entriegelt werden muß, damit die Geräte wieder die Zuordnungsanforderungs-Leitung 68
erregen können, Venn sequenzielle Zykluszuordnungen gebraucht werden. Das Unterbrechungsmasken-Register
44 wird immer abgeschaltet, wenn die Aufrufzy* klus-Zuordnungsverriegelung 75 verriegelt wird.
Asynchrone Zykluszuordnungs-Anforderuttgeri der Gerate
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
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/A-Dateru, die Unterbre·
chungsebenenumschaltung und die Erhöhung der Zykiuszuordnungsadresse, so daß mehrere Stufen von
Unterbrechungen und Zykluszuordnuiigen 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, während die Ausgangssamrnelleitung 20 die Adresse des Hauptspeichers 12 hält
Die Eingangssammelleitung 10 wirkt außerdem als externer Eingang für eine Seite der arithmetisch/logisehen
Einheit 22 (ALU), deren Ausgabe vorübergehend in das Totalregister 24 gesetzt wird. Das Totalregister
24 hat eine Ausgangssammeleitung 15, 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
f-Ausgahgssämmelleituhg 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 Emgangssammeileittmg zwischen den
lokalen Speicherregistern 14 und dem Hauptspeicher 12 in Gegenrichtung benutzt Relativ zum Prozessorchip 9
■wird die Eingangssammelleitung HO also dadurch unidirektional gehalten, daß die Ausgangssammelleitiing
20 auf Wunsch bsi jeder internen Mikroinsiruktion
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 Ausgabepufferregistßr T6 kann die iiächste Makroinstruktion im Festwertspeicher
ROS 16 adressieren; während die vorhergehende Mikroinstruktion im überlappten Betrieb ausgeführt
wird, wobei die Daten auf der Eingangssammelleitung iÖ 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
Hciüili äfigeüidiiiTi werden. Dabei speisi das Totairegister
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 Weise 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 d;3 direkte Speicherkanaiadressierung
(Zykluszuordnung). Dabei wird die Speicheradresse automatisch über die gemeinsame
ALU 22 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.
In einem zweiten Beispiel wird überlappt gearbeitet wenn Daten auf der Eingangssammelleitung 10 von
E/A-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 begönnen. Das lokale Speicherregister 14
wird während des Taktes 1 des neuen Instruktionszyklus geladen, während die Ausführung der neuen Instruktion
bei Takt 0 begann. Die sechs Leitungen des LSR-Ausgabegesteuer-Registers
40 bilden eine zusätzliche Adreßsammelleitung 21, 41, zum Adressieren von 64
Halbwörtem der lokalen Speicherregister 14 oder bis zu 63 E/A-Geräten auf der Ausgangssammeueitung 20
abhängig vom Typ der ausgeführten Instruktion. Die Kombination dieser zusätzlichen Miniadreßsammelleitung
und der Eingangssammelleitung 10 sowie der 20 gestattet die Ausführung während derselben Instruktion Daten auf die Eingangssammelleitung
10 setzen, diese durch die ALU 22 verarbeiten lassen und die arithmetisch oder logisch
veränderten Daten auf der Ausgangssammelleitung 20
empfangen, während das Gerät durch die Adreßsammelleitung 21 adressiert wird. Das ist e:n Vorteil
gegenüber herkömmlichen Kanälen, din drei Instruktionen schon für eine einfache E/A-Datenübertraguilg
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/Antwortschnittstelle antworten,
um anzuzeigen, daß es seine eigene Adresse erkannt hat. Eine zweite Instruktion braucht der Prozessor, um einen
ßafehl auszusenden, auf den das Gerät antworten kann.
Danach muß der Prozessor eine dritte Instruktion
ausführen und abhängig von der gewünschten Daten· flußrichtung lesen oder schreiben.
Die Ausgangssammelleitung 20 ist multiplex geschal-
Zö iel, au uuS füf jede äusgcfühfic iiisiiukiiuii 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 benutzen
die gemeinsamen Sammelleitungen z. B. fünf Taktperioden des acht Taktperioden langen Instruktionszyklus
zum Adressieren des ROS 16 und die verbleibenden drei Taktperioden, um Daten entweder an die lokalen
Speicherregister 14 oder an die E/A-Geräte zu senden.
Hauptspeicher 12
* jp WIiIiIIIirilT AfV K^OLCLLLVrL UXb JT. LiOl 11X11 MlIIi
yon Operationen" in einem Zyklus. Ein E/A-Gerät kann
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
Eingangssammelleitung 10. Die Steuer- und Taktleitungen 19 liefern die Takt- und Steuersignale und die
Adresse wird über die ^usgangssammelleitung 20 geführt
Bei einem Zugriff zum Hauptspeicher 12 wird die Instruktion durch einen zusätzlichen Zyklus zu einer
Doppelzyklusinstruktion. Während des ersten J.yklus 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 oder geschrieben,
nachdem der Adreßzeiger zum Hauptspeichef 12 auf die
3J "effektive neue Adresse fortgeschrieben wurde. Die
Adresse wird für den ganzen zweiten Zyklus im Ausgabepufferregister 26 festgehalten. Dieser zweite
Zyklus wird nachfolgend Hauptspeicherzyklus genannt und umfaßt acht Takte zur Adressierung des Hauptspeichersl2.
Der Hauptspeicher 12 wird seriell wie folgt betrieben: Während eines Hauptspeicherabrufs werden Daten
vom Hauptspeicher 12 auf die Emgangssammelleitung 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
soü, werden diese Daten durch die 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 Mikrocomputer-Steuerprogramm
enthalten. Diese Instruktionen werden auf die Eingangssammelleitung 10 geladen, im Programmregister
30 gepuffert und am Instruktionsdecodierer 62 decodiert Zusammen mit den Taktgeberschaltungen
werden die Schaltglieder, Register und Schaltungen auf eine im Zusammenhang mit den Fig.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 wird zur Taktzeit null, dem üblichen A.nfang einer jeden
Mikroinstruktion, die Instruktion von der Eingangssammelleitung 10 in das Programmregister 30 gesetzt.
Gleichzeitig werden Daten in das Ausgabepufferregisier 25 gesetzt Somit werden vom RO.S 16 auf der
Ausgangssammelleitung 20 adressierte Daten von der Eingangssammelleitung 10 genommen und gleichzeitig
die Adresse auf der Ausgangssammelleitung 20 zerstört. Wegen 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ßsammelleitung
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üpften 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ätshalterregister) benutzt in abwechselnden Halbzyklen die ALU 22 zur Erhöhung oder sonstigen
Veränderung der Instruktionsadresse im ROS 16. Die positive oder negative Verzweigung und Verbindung
der relativen Adresse wird durch diese einfache Datenbahn zur ALU 22 vereinfacht. Da die ALU 22 ihre
Ausgabe auf die Ausgangssammelleitung 20 gibt, können Mikroadressen iii den lokalen Speicherregistern
14 als Rückkehfzeiger von Unterbrechungen gespeichert werden. Außerdem können dadurch neue
Unterbrechungsroutine-Zeiger geladen und früher unterbrochene Zeiger zurückgespeichert werden, da die
lokalen Speicherregister 14 ihre Werte auf die Eingangssümmeileitung 10 und über die ALU 22 in das
Adreßregister 32 geben. Auf diese Weise wird eine prioritätsverknüpfte erweiterungsfähige Unterbrechungsstruktur
ermöglicht, die in den GrunddatenfluQ 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 LSR 14 oder dem
Operandenregister (wie etwa dem Akkumulator-Erweiterungsregister 36) zur gleichzeitigen Adressierung
is 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 LSR 14 über den Ausgabepuffer 26 gesendet Die Mikroinstruktion zum Schreiben in den
Hauptspeicher 12 leitet die Daten im LSR 14 auf die Einsanessammelleitune 10 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 i2 in den LSRs 14 werden automatisch über die ALU 22 auf der Ausgangssammelleitung 20
erhöht, um E/A-Daten auf der Eingangsammelleitung 10 in den Hauptspeicher 12 zu schreiben oder Daten aus
dem Hauptspeicher 12 zu lesen. Diese Daten laufen über die Eingangssammelleitung 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 werden auch emulierte Instruktionen decodiert. Der Operationscode der emulierten Instruktion
wird von der ALU 22 der laufenden Instruktionsadresse im Mikroinstruktions-Adreßregister 32 hinzugefügt
und ergibt so einen relativen Adreßzeiger auf eine Tabelle im ROS 16 genau unterhalb der 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.
so Durch gemeinsame Benutzung des Mikroinstruk· tions-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*Ausgabesteuerregisier
40 erzeugt. Mit dieser Adresse wird im lokalen Speicherregister 14 die Stelle angesteuert, die
den Zeiger auf die betreffende Unterroutine im Festwertspeicher 16 für die betreffende Untefbre-
chungsstufe enthält. Ditser Zeiger wird dann über die
Eingangssammelleitung 10 aus dem lokalen Speicherregister 14 in den Prozessor 9 über die ALU 22 gegeben
und in das Totalregister 24 gesetzt, bevor er in 4as 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 Wenn die Unterbrechung bedient wurde, wird der laufende
Unterbrechungs-Unterroutinenzeiger im LSR 14 gespeichert und der Adreßzeiger für das unterbrochene
Programm wieder von dort geholt.
Programmregister 30
die der
Das Programmregister 30 ist ein Puffer für laufende Instruktion und hält den Op-Code
Instruktion, die vom Prozessor 9 ausgeführt wird.
Das Zählfeld oder Adreßfeld vom im Programmregister 30 gespeicherten Instruktionen kann direkt auf das
Erniedrigungsregister 38 und das LSR-Ausgabesteuerregister 40 geleitet werden.
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 in der Instruktion
angegebenen Funktion von der ALU geladen.
Da Daten von der arithmetisch/logischen Einheit ALU 22 vorübergehend im Totalregister 24 gespeichert
uncf dann im Ausgabepuffer 26 gepuffert werden, kann
auf der Eingangssammelleitung 10 eine Funktion ausgeführt werden und gleichzeitig eine andere auf der
Au'ga. .gssammelleitung 20 beendet werden. Diese
zweistufige Pufferung in der Schleife gestattet den überlappten Betrieb.
Instruktionsadreßregister 22
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
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 26 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 Operandenregisler für die ALU 22 hält es Daten
gesteuert vom Mikroprogramm. Außerdem müssen bei eitler Unterbrechung, die die Übertragung von Adreßzeigern
erzwingt, oder bei direkten Speicherzugriffen Adressen und Daten durch das Ausgabepufferregister
26 laufen. Auf diese Weise verliert das Ausgabepufferregister 26 vom Mikroprogramm eingesetzte Daten nicht,
Die Stelle null in den lokalen Speicherregistern 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 14 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 Hilfstreibern 18, deren f usgang
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 Ermcdrigungsregister 38 wird gezählt, und
zwar in allen Instruktionen zur Verschiebung, Multiplikation,
Division, Erniedrigung, Prüfung und Verzweigung. Das Erniedrigungsregister 38 hat Eingangssignal
vom Programmregister 30, sobald 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
eines wie bei den direkten Verschiebungen. Das Erniedrigungsregister 38 hält den erniedrigten Wert,
bevor er in das Zählregister 50 zurückgegeben wird.
Da in diesem Ausführungsbeispiel maximal um 32 Positionen verschoben werden kann, reicht ein Erniedrigungsregister
38 von fünf Bit Kapazität aus. Für Feldlän^enoperationen wird jedoch auch das Zählregister
50 als Feldlängenzähler benutzt. Dazu braucht man eine volle acht Bit große Erniedrigungy.unktion. Dazu
läßt man den Inhalt des fünf Bit großen Erniedrigungsregisi.rs
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-Ausgabeslcuerrcgister 40
Es adressiert das E/AOerät oder diejenige Stelle in den lokalen Speicherregisiern 14, an die die Daten
übertragen werden sollen.
Bedingungsregister 48
Die oberen vier Bits des »Laufende Bedingung«-Registers
48 halten die vier Bedingungscodes und die unteren vier Bits vier programmierbare Markierungen.
Diese Bits bilden das nicht verbundene hohe Byte des Zähiregisters 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 Ungleich-O-Anzeiger.
Wenn dieser Ungleich-O-Anzeiger einmal in einer Feldlänge gesetzt ist, bleibt er gesetzt,
bis er durch eine Mikroinstruktion verändert wird.
Zählregister 50
Das zweite Operandenregister für die ALU 22 ist das Zählregister 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 heruntergeseui, wenn sie
für eine Schiebeoperation zusammengeschaltet sind. Bei einer Instruktion »links verschieben und zählen« wird
die Verschiebung beendet, sobald das werthohe Bit gefunden ist, und der im Zählregister 50 verbleibende
Wert zeigt an, wie weit das Verschrieben 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 werC.-n. Das Ergebnis wird dann in das
LSR-Ausgabesteuerregister 40 gnaden, um die LSR 14 über die Adreßsammelleitung 21 und die Eingabe/Ausgabegeräte
über die Ausgangssar- nelleitung 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 Speicherregister 40 oder in einem internen Register des Prozessors 9 gespeichert.
Register 42 und 48 für reservierten Bedingungscode
bzw. für laufende Bedingungen
bzw. für laufende Bedingungen
Die Ausgabe des »Laufende Bedingung«-Register 48 wird selektiv im Register 42 für den reservierten
Bedingungscode gepuffert. Die Grundbedingungscodes, die sich durch ALU-Operationen ergeben, sind:
Überlauf, Übertrag-Borger, kumulativ nicht null, minus.
Die laufenden Bedingungscodes geben das Ergebnis der letzten Ausführung einer arithmetischen Mikroinstruktion
wieder. Alle nach links verschobenen werthohen Bits werden in den laufenden Übertragsanzeiger
geschoben. Bei Linksverschiebung und Zählung kann da« werthohe Bit den laufenden Übertragsanzeiger
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 Märkierungsbits, die
in Kombination mit den laufenden Bedingungscodes
den Inhalt des Registers 48 bilden. Wenn ejne
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 Inhait des Unterbrechungsrnasken-Registers 44 kann auch über die ALU 22 verändert, in
die lokalen Speicherregister 14 weggespeichert oder von dort zurückgeholt werden.
Fehlcrregister 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 Pariiätsfehler
auf einer vom ROS 16 geholten Instruktion; ein Datenfehler bei Daten von den lokalen Speicherregistern
14; ein Paritätsfehler in Hauptspeicher 12. der durch eine Paritätsprüfung auf der Eingangssammelleitung
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ächs\;n Mikroinstruktion fortzuschalten;
oder Zeitsperrefehler, wie sie auftreten, wenn eine E/A-Instruktion an ein E/A-Gerät gegeben wird, das
nicht existiert und die Adresse daher nicht erkannt werden 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 Bedienungskonsol pibt.
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 werden 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 diesmal jedoch als Takt 8 bis 15 codiert. Die
Decodierung des Hilfstaktgebers 64 liefert vier unterscheidbare Zeitabschnitte zusammen mit einem Flipflop
in einer hohen Position, das benutzt wird, sobald der
Taktgeber einen Wiederholungszyklus durchläuft. Damit wird der größte Zeitsperrabschnitt von zwei
Durchgängen des Taktgebers angezeigt, der einem ganzen Instruktionsausführungszyklus äquivalent ist.
Der Hilfstaktgeber 64 wird bei Verschiebungen, Multiplikationen oder Divisionen benutzt. Während
dieser Instruktionen wird der Haupttaktgeber 66 in
seiner siebten Position gestoppt Damit können Zykluszuordnungen in der Mitte 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. Wenn die Zeitsperre die
zugeordnete Zeit überschreitet, läuft die Zeit im Hilfstaktgeber 64 ab und stellt Anzeiger im Fehlerregister
46 so ein, ^aB eine Unterbrechung der höchsten Stufe oder eine Maschinenprüfung eingeleitet wird.
Integrierter Kanal für Zykluszuordnung und
Unterbrechung nach Prioritäten
Unterbrechung nach Prioritäten
In den F i g. 5 und F i g. 1 sind die Zykluszuordnungsund
Unterbrechungsfunktionen gezeigt, wie sie durch die gemeinsame Rufleitung 53 wahrgenommen werden.
Diese verfügt über acht Zykluszuordnungsstufen oder sieben Unterbrechungsanforderungsstufen. Die gemeinsame
Rufleitung 53 ist hier sieben Bits breit, um die Anforderungen für sieben Unterbrechungsstufen oberhalb
der gegenwärtig ausgeführten Programmstufe aufzunehmen, insgesamt also acht Unterbreclvangsstufen.
Jedes E/A-Gerät kann an jede der sieben mit bestimmten Prioritäten versehene Unterbrechungsanforderungs-Leitung
angeschlossen werden. Es wird kontinuierlich auf Unterbrechungen abgefragt, außer
wenn die Aufrufzyklus-Zuordnungsverriegelung 75 verriegelt ist und die Zykluszuordnung erfolgt. Sobald
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
Leitungen 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 gesetzi 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 !aufenden 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 statt dessen 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 Unterbrechyngsroutine in den lokalen Speicherregistern 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 des UND-Gliedes 81 an die
Eingangsleitungen 831.832,833 des LSR^Ausgabesteu*
erregisters 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 am die Unterbrechungsregister in den LSR 14 wird auf
ähnliche Weise in das LSR-Ausgabesteuerregister 40 geladen, und zwar auf den werthohen Eingangsleilungen
834, 835 von der Ladeleitung 72 für die neue
ίο Unterbrechungsstufe 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 54 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 ROS16
enthält. Der Adreßzeiger kommt auf der Ausgangssammelleitung 20 vom Instruktionsadreß-Register 32 an und
läuft über das lokale Speicherregir'^r 14 durch die
ALU 22 zum Totalregister 24 Wenn ^ie IJnterroutine
der neuen Unterbrechungsstufe fertig ausgeführt ist.
wird eine Verzweigungsausgangs-Instruktion gegeben und dadurch der Zeiger auf das ursprünglich untt.-brochene
Programm zurückgestellt. Da die die Unterbrechung bedienende Unterroutine auch die Unterbre
chung 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 niehl
zur ursprünglichen Programmposition zurück, sondern behandelt die neuere Unterbrechungsanforderung.
Dadurch ist eine volle Verpflichtung bis /u 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 16 Gera·*;, das
gegenwärtig die Bedienung auf einer bestimmten Unterbrechungsstufe anfordert, muß sich identifizieren.
(Au' diese Weise kann man für jede der 8 Stunden 16 Unterstufen bekommen, insgesamt also Unterbrechungen
auf 128 Unterstufen.) Mit dem in emem Register des
Prozessors 9 empfangenen Unterbrechungsscufen-Statuswort kann man feststellen, welches dei 16 Geräte auf
der betreffenden Stufe die Bedienung anfordert. Das geschieht mit Hilfe einer l.inksschiebe- 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 Gerat an.
Die gemeinsame Rufleitung 53 dient auch der Zykli'^zuordnung, muß jedoch erst von Unterbrechungsanforderungen
befreit werden. Durch ein eine Zykluszuordnung ?!-,forderndes 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, kor.mt sofort ein Signal auf der Leitung
77 hoch. Dadurch werden die Geräte aufgefordert, ihre
Unterbrechungsänforderungen von der gemeinsamen Rufleitung 53 zu nehmen, bis die ZyklLszuördnUngs'
funktion abgeschlossen ist- Sobald alle Geräte ihre Signale von der UnterbrechungsanforderungS'Leitung
70 und der ZuordnUngsanforderürig-Leitting 68 genommen
haben, wird die Zykluszuordnung-Bestätigungsver^
riegelung 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 Unterbrechungstoren 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 (getaklele 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
Zyklus2uordnungsstufe. die als Adresse des Hauptspeichers 12 benutzt wird. Damit speichert oder liest man
Daten im Hauptspeicher 12 unter voller Steuerung des E/A-Gerätes so weit, 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 aiicfT^rüHrtp SlU?**^ crprnHp urn Hip t inlprHrprhuncr Hipcpr }ft
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
Zykluszuordnungsstufen 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 Ausgangssammelleitung 20 fortgeschrieben, in das
Zykluszuordnungsregisler 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 Zykluszuordnungsadresse
unverändert bleibt. Nach einer Zugriffszeit werden Daten aus dem Hauptspeicher 12 auf die Eingangsam- -to
melleitung 10 ausgelesen, wenn das E/A-Gerät die Auslesewahl des Hauptspeichers 12 gestattet und die
Schreibimpulse sperrt, die vom 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 Eingangssammelleitung
10 setzen. So kann das Gerät die Erhöhungsfunktion und die Lese- oder Schreiboperation voll über
die integrierte ALU 22 steuern. Im Schreibbetrieb kann das Gerät seine eigenen Daten während des folgenden so
Taktes 1 noch auf der Ausgangssammelleitung 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 24 und das Ausgabepufferregister 26 und werden allen R/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 mti den Fig.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.
DerTakizyklus 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 Gfundinstruktionszeit
von acht Takten wird in zwei 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 auf der
Ausgangssammelleitung 20 erscheint, beginnt zur Taktzeit 3. wenn der errechnete neue Adreßzeieer 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 Mikroinstruklion durch Ladp*>
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.
In das Totalregister 24 wird zur Taktzeit 2 die Instruktionsadresse geladen und zur Taktzeit 6 die von
der ALU 22 bei der Ausführung der Instruktion verarbeiteten Daten. Während der Taktzeit 3 wird die
nächste Instruktionsadresse in das Ausgabepufferregister 26 gesetzt, um dann auf die Ausgangssammelleitung
20 gegeben zu werden.
Wenn durch die Mikroinstruktion Daten in die lokalen Speicherregister 14 geschrieben werden sollen,
werden die Daten während des Taktes 1 der Instruktion hinter der Instruktion geschrieben, in der die Daten
errechnet wurden. Die Daten werden vom Ausgabepufferregister 26 über die Hiifstreiber 18 direkt in die
Stelle der lokalen Speicherregister 14 geschrieben, die durch die Signale auf 6 Leitungen des LSR-Ausgabesteuerregisters
40 gewählt wurde. Genauso können Daten an ein E/A-Gerät übertragen werden, indem man
sie zur Taktzeit 0 in das Ausgabepufferregistr- 26 lädt.
Ein Signal auf den Steuer- und Taktleitungen 19 während der Taktzeit 1 zeigt an, daß die Daten auf der
Ausgangssammelleitung 20 gültig sind. Diese 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 der LSR's 14 zur
Verarbeitung durch die CPU 9 während der Taktzeit 2 auf die Eingangssammelleitung 10 gesetzt. Während der
für Signalverzögerung sorgenden Taktzeit 3 stehen die
Daten für die ALU-Funktion zur Verfugung.
Daten von den lokalen Speicherregistern 14 werden zuerst zur Taktzeit 2 auf die Eingangssammelleitung 10
gesetzt und erst zu Begifln der Taktzeit 3 an die ALU 22 weitergeleitet, weil diese während der Takte 1 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 Adreßerhöhungsfunktion zurückübertragen, nachdem
die Grundverarbeitungsfunktion der Mikroinstruktion beendet ist.
Für die Mikroinstruklionen, 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 8 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 CPI' 9 gesetzt oder an ein E/A-Gerät gesendet. In
diesem f-aii (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 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
direkte Ü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 den 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 ALU 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 weiterer 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 ROS16 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 oder einer Verzweigung und Verbindung mit Rückkehr durch
Rückspeicherung der Originaladresse vom lokalen Speicherregister 14 in das Mikroinstruktions-Adreßregister32.
Bei Schiebeoperationen werden durch den Hilfstaktgeber 64 zwei weitere Takte für jede Einzelbitverschiebung
entweder im Akkumulatorregister 34 oder im Akkumulator-Erweiterungsregister 36 vorgesehen. Es
können auch 4-Takt-Perioden vorgesehen werden (gleich der halben Grundausführungszeit einer Mikroinstruktion)
für die Verschiebung des Inhaltes der beiden Register 34 und 36 um eine Position. Diese beiden
Register 34 und 36 werden logisch zu einem Doppelregister verknüpft, indem man ihren Inhalt
abwechselnd durch die ALU 22 laufen läßt.
Bei Sprungoperationen wird in der Grundverarbeitungszeit der ALU 22 (Takle 3 bis 6) auf gleich, größer öder Maske geprüft. Das Ergebnis der Prüfung ist erst zu Beginn des Taktes 7 bekannt, und dann Wird über einen Sprung entschieden. Wenn nicht gesprungen wird, läuft die nächste adressierte Instruktion ohne Verzögerung weiter. Wenn jedoch eine Instruktion übersprungen wird, nimmt der Gründtakf einen weiteren Pseudo-Mikroinstruktionszyklus, indem er auf die nächste Mikroinstruktion vorgeschaltet wird, ohne daß die übersprungene Mikroinstruktion ausgeführt wird.
Bei Sprungoperationen wird in der Grundverarbeitungszeit der ALU 22 (Takle 3 bis 6) auf gleich, größer öder Maske geprüft. Das Ergebnis der Prüfung ist erst zu Beginn des Taktes 7 bekannt, und dann Wird über einen Sprung entschieden. Wenn nicht gesprungen wird, läuft die nächste adressierte Instruktion ohne Verzögerung weiter. Wenn jedoch eine Instruktion übersprungen wird, nimmt der Gründtakf einen weiteren Pseudo-Mikroinstruktionszyklus, indem er auf die nächste Mikroinstruktion vorgeschaltet wird, ohne daß die übersprungene Mikroinstruktion ausgeführt wird.
Die unbedingte Verzweigung ist eine sehr schnelle Instruktion, weil keine Bedingungen abgefragt werden
müssen und daher keine Verzögerung durch den Hilfstaktgeber 64 vorliegt. Außerdem wird die 12 Bit
große Verzweigungsadresse direkt durch die ALU 22 geleitet und zur Taktzeit 2 in das Totalregister 24
geladen. Von dort läuft sie weiter in das Mikroinstruktions-Adreßregister
32 und zur Taktzeit 3 in das Ausgabepufferregister 26. Dadurch ist sie mit der normalen Vorausschauadressierung von Instruktionen
synchronisiert.
Instruktionssatz
Die Maschinengrundinstruktionen 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-Inslruktionen 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 von der jeweiligen Instruktion abhängen. Da
es nur 8 verschiedene Operationscodes gibt, unterscheiden sich einige Instruktionstypen durch die Decodie
rung zusätzlicher Modifizierbits. Die meisten Instruktionen sind hochcodiert und geben viele verschiedene
Operationen an, von denen eine Anzahl nacheinander ausgeführt wird. Diese aufeinanderfolgenden Operationen
werden durch einen sehr eng entwickelten Satz von Zeitmustern coordiniert, wie sie in den F i g. 2 bis 4
dargestellt sind.
so Im Zusammenhang mit den Fig.2 bis 4 werden
anschließend die 11 Instruktionsgrundkategorien beschrieben. In den Zeittabellen werden die Register wie
/olgt mit den Symbolen bezeichnet:
Symbole'
Register
A Akkumulator
B Erweiterungsregister
T Totalregister
P Programmregister
U Instruktionsadresse
N Zählregister (Schiebezähler)
M AusgabepufTerregister
(Ausgangssammelleitung)
I/O Eingabe-/Ausgabegerät
E Fehlerregister
I Unterbrechungsmasken-Register
Fortsetzung
Sy in hole
Register
G Register für laufenden Bedingungscode
i'GC Register für reservierten Bediflgungscode
L Lokale Speicherregisier
jede 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 Mnemonic Operations-
code
Steuerung CO 000
Logisch Schreiben LW 001
Logisch Schieben LS 001
Zahl logisch bewegen LM 001
Daten verändern MI) 010
Operand verändern MO 010
Speicher abrufen FS 011
Direkt verändern IM 100
Bedingter Sprung JC 101
Bedingte Verzweigung BC 110
Unbedingte Verzweigung BU 111
Steuerinstruktion
In Fig.3C ist das Zeitdiagramm für die Steuerinstruktionen
gezeigt. Steuerinstruktionen können z.B. für folgende Operationen vorgesehen werden: Datenübertragung,
indirekte Ausfü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 die E/A-Seiten der 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-Grenzen durchgehend bis zu 64K Halbwörtern des
ROS 16. Die Unterbrechungsschalterzeiger liefern auch eine volle 16-Bit-Adressierung und nicht nur die
Adressierung von 12 Bits. Daher kann man volle 64 K Komplemente der Instruktionen adressieren.
Andere Steuerinstniktionen steuern die vier Kennzeichenbits.
Das sind die vier niederen Bits des laufenden Bedingungsregisters 48, die zusammen mit den vier
Bedingungscodes das nichtverbundene obere Byte des Zählregisters 50 bilden. Die Kennzeichenbits können
vom Programmierer für verschiedene Anzeigen gesetzt und als Schalter in der Unterroutine benutzt werden. Sie
können zusammen mit den Bedingungscodes und dem unteren Byte des Zählregisters 50 zur Unterbrechungsumschaltung
in die LSR's 14 gespeichert und von dort zurückgespeichert 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 Operation, bei jeder logischen l.inksverschiebung, Linksverschiebung
und Zählen, Multiplikation und Division. Für andere logische Instruktionen können die Register selbst auf
Null oder Nicht-Null, Einsen oder gemischte Einsen und Nullen abgefragt werden. Das Register 42 für den
reservierten Bedingungscode speichert dieselben vier Bits wie das Bedingungscoderegister 48. Die Übertragung
und Akkumulation der Äquivalenz der Bedingungscodes 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-Ausgabesteuerregister 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 Speicherregister 14 geladen.
Die Steueroperationen »Unterbrechungsmaske setzen« (KlLM), liefert die Unterbrechungsmaskenbits für
55;,,das Unterbrechüngsrnäsken-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 exkhisiv oder mn dem Inhalt des Mikromsirükuonsadreß-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.
ivlncmonic
Addierer zu IAR .12
KIAL Akkumulatorregister 34
unteres Byte KFXL Erweiterungsregisler 36
unteres Byte KIBL Ausgabepufferregister 26
unteres Byte KIEL Eingangssammeileitiing IO
unteres Byte KIAH Akkumulatorregister 34
unteres Hex. KIXH Erwe'teruiigsregister 36
unteres Hex KIBH Ausgabepufferregister 26
ur.ieres Ken
KIEH Eingangssammelleitung 10
unteres Hex. KIAZ Akkumulatorregister 34
untere Zone KIXZ Erweiterungsregister 36
untere Zone KlBZ Ausgabepufferregister 26
untere Zone KIEZ Eingangssainnielleitung 10
untere Zone KI \S Akkumulitorregister 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
wieterer Unterbrechungen), den Fehlerbetrieb und die
Byteadresse im Hauptspeicher 12 an (Keine Veränderung; Rückstellung oder Byte-Setzen-Modus).
- Der Code 01 in einöm oder mehreren Unterbrechungscodes
(II), im Fehlerbetrieb (EE) und in den HauptspeicherbyteadreSfeldern (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-Steuerinstrukäon
gerettet oder gemäß der nachfolgenden Tabelle ersetzt wird. Wenn der Steuercode Π oder EE
oder SS lautet, definiert die KSIE-Steuerinstruktion die
Operation, die durch den Unterbrechungscode-Betrieb, den Fehlerbetrieb oder den Hauptspeicher-Byte-Adreßbetrieb
angegeben sind.
Mnemo-
Instruk-
tions-
codcfekl
Eicscli reibung
KPIE IIEEOl
KPSI IIOISS
ίο KCSE 01EESS
KTPI IIOIOI
KCPS 0I01SS
KCPE 01EEOI
Zurückgestellt reservierter Bedingungscode (keine Überlauf) Zurückgestellt rcservierier
Bedingungscode (alle) ODER-Code für laufende Bedingung zum reservierten Bedingungscode und Rückstellen
laufender Bedingungscodes Rückstellen des laufenden Bedingiingscodes und des reservierten
Bedingungscodes (kein Überlauf")
Übertrag des laufenden Bedingungscodes in den reservierten Bedingungscode und
Rückstellen des laufenden Bedingungscodes Ü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 wird ebenfalls beim Ergebnis auf gerade zurückgestellt oder aus 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 laufenden Bedingungscoderegister
48 zu retten is' oder einzustellen ist und
gibt die zu rettenden oder einzustellenden Positionen ab: Ü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
so 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, daß 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öder Byteadressierung angegeben werden, da die
Instruktionen nicht immer auf Halbwortgrenzen ausgerichtet sind, ist im erfindungsgemäßen Mikrocomputer
zur leichteren Emulsion die Halbwortausrichtung durch Byteverdrehung der Daten vom Hauptspeicher 12 in
der ALU 22 so vorgesehen, daß jedes Byte in einer Position ausgerichtet wird, so daß ζ. B. der Instruktionsoperations-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 *a bidirektion. Bezüglich der CPU 9 ist sie nicht bidirek-
j tion, weil auf den 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 0 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 Speicherreigster 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 werden, und dann wählt er nur
das hohe oder nur das niedrige Byte zum Schreiben in den Hauptspeicher 12. Wenn eine Steuerinstruktion
früher den Bytespeicheradressier-Betrieb eingeschaltet hat. wirken alle positiven oder negativen Adreßfortschreibungen
als plus oder minus 2. Die Wahl des hohen 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 14 der ursprüngliche
Inhalt des Ausgabepufferregisiers 26 gewählt,
Logisches Schreibell voii LSR 0 bis 63 adressiert
Übet 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 Speicherregisier 14 (Position 0 bis 63) die Speichef adf esse
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.
D 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 des LSR 14 (0 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 1D adressiert durch Akkumulator-Eweiterungsregister 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 ORl 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 Unterbrechungsmasken-Register
44 und das Fehierregister 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
26 von der Stelle 0 der LSR 14 gewählt.
Mit BUS Operandenadresse (Halbwortsadressierung)
Diese Instruktion unterscheidet sich von der nachfolgend beschriebenen dadurch, daß das Ausgabepufferregister
26 (cLh, Stelle 0 im LSR 14), anstelle des
Akkumulator»Erweiterungsfegisters 36 benutzt wird
und die zusätzliche Adreßübertragung auf def Ausgangssammelieitung
20 als Halbwortbewegung des Inhaltes des Ausgabepufferiregisters 26 in die Stellen 1
bis 63 des LSR 14 oder der Adreßfortschreibung auf der Ausgangssammelleitung 20 in die Stelle 0 des LSR 14
wirkt.
Mit XTN Operandenadresse (Halbwortadressierung)
Der Inhalt des Akkumulator-Erweiterungsregisters 36 wird dadurch 0, ±1 oder Addition der im
Zählregister 50 stehenden relativen Operandenadresse verändert, bevor der Inhalt des Ausgabepufferregisters
26 (nicht LSR 0) den Hauptspeicher 12 adressiert Der fortgeschriebene Wert des Ausgabepufferreigsters 26
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 0 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 Eingangssammelleitung 10 geschaltet um wie bei der ersten FS-Instruktion
wahlweise in das Akkumulatorregister 34, das Akkumulator-Erweiterungsregister 36, das Ausgabepufferregister
25 oder das Zähiregisier SO/Fenierregister 46
gesetzt zu werden. Die ursprünglichen Daten vom Ausgabepufferregistcr 26 werden außerdem von der
Stelle 0 bis LSR 14 selektiert.
Laden vom Speicher in E/A-Geräte
(Halbwortadressierung)
(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
AusgaDepufferregister (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 Bit im Zählregister 50. Die
ursprünglichen Daten im Ausgabepufferregister 26 werden außerdem von der Stelle 0 im LSR 14 gewählt
Arithmetische und logische Instruktionen
Nach Darstellung in F i g. 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, Akkumulator· Erweiterungsregister 36. Zählregister 50 und Ausgabepufferregister
26). Außerdem können das Akkumulatorregister 34 oder das Akkumulator- Erweiterungsrcgister
36 arithmetisch mit einem der 64 lokalen Speicherregister 14 kombiniert werden, so daß das
Ergebnis in einen der lokalen Speicherregister 14 oder irrt Akkumulator-ErweiteiUrtgsregister 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, aliein oder auf den wertniederen 4 hex. Bits
ausgeführt Weiden, 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 Registern allein 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 Akkumulatorregisters 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-Erweiterungsregiäiers
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 Eingangssammelleitung
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, indem man die Daten in das
Ausgabepufferregister 26 setzt (nicht LSR 0) und von dort auf die Ausgangssammelleitung 20 und 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 von Akkumulator-Erweiterungsregister 36 in das Ausgabepufferregister 26 vogenommen,
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 lok ilen Speicherregister 14 wird die indirekte
Adressierung des lokalen Speicherregisters 14 oder des Eingabe-/Ausgabegerätes von den wert federen sechs
Bits des Zählregisters 50 selektiert.
Operand modifzieren
Mit den Instruktionen »Operand modifizieren« (MO) kann der Inhalt des Akkumulator-Erweiterungsregisters
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 werdeil- Wenn der Inhalt des AkkumulatopErweite»
rungsregisters 36 null ist, wird durch eine ODER'Funk-^
tion mit LSR 14, Stelle 0, (Ausgabepufferregister 26a
eine Bewegung des Inhaltes des Ausgabepufferregisters 26 in das Akkumulator-Erweiterungsregister 36 und in
LSR 14, Positionen 1 bis 15 ausgelöst, Die Modifizier*
funktionen unterscheiden sich von denen der Instfuktiö-
nen zum Modifizieren von Daten (MD) dadurch, daß
zusätzlich Bewegungsfunktionen zwischen 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 (hohe Byte des Zählregisters 50/Fehlerregister 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 frnis oder rechts erfolgen können. Die
Länge der Verschiebung hängi von der Länge des Registers ab. Der Inhalt des Akkumulatorregisters 34
und seines Erweiterungsregisters 36 kann jeweils zwischen einer und 16 Positionen verschoben wsrden.
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 Arten zwischen
einer und zwe^nddreißig Positionen verschoben werden kann. Die Arten sind: Arithmetische Rechtsverschiebung,
Linksverschiebun«? und Zählung, logische Links verschiebung, logische Rechtsvr-Schiebung, Linksverschiebung
und Drehung und Rechtsverschiebung und Drehung. Schnellere Operationen, die einer
Drehung von 9 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 F i g. 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-Steuerinstruktion 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 (Jbertrag oder Borger, wird in das werthohe
Byte weitergeleitet Für das Zählregister 50/FehIerregister
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 Sprunginstruk^
tion ausgeführt, Wenn eine Prüfung falsch ist. Die gegen ein Mäskenbyte in def 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 ignorierl;, oder die Maske
wird auf die ausgeschalteten Bits im unteren Byte geprüft, und die übrigen Bits werden ignoriert Das
Bedingungsregister 48 kann 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 Verzweigungsoparationen gehören die bedingte und die unbedingte Verzweigung. Sie können
zu jedem 4K-Bereich des Festwertspeichers 1& 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, kehn 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 Vcrzwei^viigsinstruktionen
liefert die vorgezeichnete relative Adreßverzweigung bei sechszehn verschiedenen Bedingungen wie Register
0 oder nicht 0, Register negativ oder nicht negativ. Die Verzweigung 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 Mikroinstruktions-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. Verzweigt 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 l bis 63 in den lokalen Speicherregistern 14 in das Mikroinstruktions-
Adreßregister 32, das Akkümüiatorregister 34, das
Akkumulator'Erweiterungsregister 36 oder die kombt*
nierten Register für die laufende Bedingung 48 und das
Zählregister 50. Während dieser Übertragung kann der Wert um 0, — 1 oder +1 verändert Werden (Bewegun*
gen Von Einzelbytes in das Akkümülätöfreg'ister34 öder
das Akkumulator-Erweiterungsregister 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ählt Stelle 1 bis
63 der lokalen Speicherregister 14 mit einer Modifikation
um 0, +1 doder — 1 bewegt werden (Bewegung von Einzeldatenbytes aus dem Akkumulatorregister 34 oder
dem Akkumulator-Erweiterungsregister 36 ausgenommen). Die Byteverschiebungen können entweder das
hohe oder das niedrige Byte im Akkumulatorregister 34 oder dem Akkumulator-Enveiterungsregister 36 angeben.
Bei Bewegungen zwischen diesen beiden Registern und dem angegebenen Register in den lokalen
Speicherregistern 14 wird keine Modifikation vorgenommen. Der Wert des Mikroinstmktions-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ählregirter 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 beschriebene KSIE-Steuerinstruktion eingeschaltet wurden. Wenn
die Instruktion zur logischen Zahlenverschiebung die Stelle 0 in den lokalen Speicherregistern 14 angibt, ist
die indirekte Adressierung der lokalen Speicherregister 14 von den wertniederen sechs Bits des 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 Struktionen 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 Daten direkt von einem E/A-Gerät an den Hauptspeicher 12 über die Eingangssammelleitung 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 Datenrnodifikation bringt Daten von einem E/A-Gerät, läßt die ALU 22 die Daten mit dem Operanden im Akkumulator-Erweiierungsregister 36 bearbeiten und gibt das Ergebnis über das Ausgabepuficrregister 26 an das E/A-Gerät zurück. Mit einer Steuerinstruktion können Dat.! an ein Gerät entweder von einem angegebenen LSR'4 (ö 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 w.rd die Geräteadresse, entweder
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 Daten direkt von einem E/A-Gerät an den Hauptspeicher 12 über die Eingangssammelleitung 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 Datenrnodifikation bringt Daten von einem E/A-Gerät, läßt die ALU 22 die Daten mit dem Operanden im Akkumulator-Erweiierungsregister 36 bearbeiten und gibt das Ergebnis über das Ausgabepuficrregister 26 an das E/A-Gerät zurück. Mit einer Steuerinstruktion können Dat.! an ein Gerät entweder von einem angegebenen LSR'4 (ö 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 w.rd die Geräteadresse, entweder
3& 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.
Hierzu 12 Blatt Zeichnungen
Claims (5)
1. Mikroprozessor auf einem Halbleiterchip mit einer arithmetisch/logischen Einheit, zugehörigen
Operanden- und Resultatregistern, einer Instruktions-, Decodier- und Ausführungsschaltung, Eingangs-
und Ausgangsleitungen sowie einem Leitungssystem zur Verbindung und Steuerung der
einzelnen Einheiten sowie mit einer Takt- und I ο Zeitsteuerung zur zeitlichen Steuerung der ablaufenden
Operationen und einem Hauptspeicher und einem Mikroprogramm-Steuerspeicher, die beide
außerhalb des HaJbleiterchips angeordnet sind, dadurch gekennzeichnet, daß das Leitungssystem
als unidirektionale Ringsammelleitung ausgebildet ist, die aus mehreren, unabhängig
voneinander steuerbaren Abschnitten (10,23,25,28)
sowie Steuerleitungen (53,15,41) besteht, wovon ein
Abschnitt als Eingangssammelleitung (10) und ein anderer Abschnitt als Ausgangssammelleitung (28)
dient, daß innerhalb der geschlossenen Sammelleitung die arithmetisch/logische Einheit (22), das
Resultatregister (24) und ein Ausgabepufferregister (26) liegen, wobei die Ringsammelleitung sich
außerhalb des Halbleiterchips über den Hauptspeicher (12) bzw. den Mikroprogiumm-Steuerspeicher
(16) bzw. über lokale Speicherregister (14) schließt, und daß die Takt- und Zeitsteuerung (60,64,66) eine
Mikroinstruktionssteuerschaltung (32,40) so steuert,
daß ein Mikroinstruktionszyklus in zwei Teile unterteilt wir^, um während des ersten Teils den
Mikroprogramm-SteuerspeichK ' (16) zu adressieren
und während des zweiten Teils Daten über die Ausgangssammelleitung (2S) ab ugeben, wodurch
das Ausgabepufferregister (26) die nächste Mikroinstruktion im Mikroprogramm-Steuerspeicher (16)
adressiert, während die vorhergehende Instruktion zeitlich parallel auf den verschiedenen Abschnitten
des Sammelleitungssystems (10,23,25,28) durch die
damit verbundenen Einheiten des Mikroprozessors ausgeführt wird.
2. Mikroprozessor nach Anspruch 1, dadurch gekennzeichnet, daß die Takt- und Zeitsteuerung
(60, 64, 66) während des ersten Teils eines Mikroinstruktionszyklus einen als Mikroprogramm-Steuerspeicher
benutzten Festwertspeicher (16) bzw. den Hauptspeicher (12) mit einer Adresse auf
der Ausgangsleitung (20) adressiert, welche die Ausgangssammelleitung (28) außerhalb des Halbleiterplättchens
fortsetzt und während des zweiten Teils eines Mikrcinstruktionszyklus Daten an die
lokalen Speicherregister (14) oder die E/A-Geräte über die Ausgangsleitung (20) sendet.
3. Mikroprozessor nach den Ansprüchen 1 und 2, dadurch gekennzeichnet, daß während des zweiten
Teils eines Mikroinstruktionszyklus auf der Ausgangsleitung (20), welche die Ausgangssammelleitung
(28) außerhalb des Halbleiterplättchens fortsetzt, erscheinde Daten unter einer reservierten
Adresse in den lokalen Speicherregistern (14) gespeichert werden, um sie selektiv während des
nächsten Mikroinstruktionsausführungszyklus auf die Eingangsleilung(10)zu laden.
4. Mikroprozessor nach den Ansprüchen 1 bis 3, dadurch gekennzeichnet, daß der Abschnitt (25) der
Ringsammelleitung, der mit dem der arithmetisch/ logischen Einheit (22) nachgeschalteten Resultatregister
(24) verbunden ist, während jedes Mikrciinstruktionsausführungszyklus
wenigstens zweimal geladen wird, und zwar einmal mit der Adresse der als nächsten auszuführenden Instruktion und zum
anderen mit den Ausführungsergebnissen der in der Instruktion angegebenen Funktion,
5. Mikroprozessor nach den Ansprüchen 1 bis 4, dadurch gekennzeichnet, daß Daten von der
arithmetisch/logischen Einheit (22) vorübergehend im nachgeschalteten Resultatregister (24) zwischengespeichert
werden und zeitlich gesteuert danach im Ausgabepufferregister (26), wodurch unter Benutzung
der Eingangssammelleitung (10) eine Mikrooperation ausgeführt werden kann, während dem
gleichzeitig eine andere unter Benutzung der Ausgangssammelleitung (20) abläuft und beendet
wird.
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US75446276A | 1976-12-27 | 1976-12-27 |
Publications (2)
Publication Number | Publication Date |
---|---|
DE2756767A1 DE2756767A1 (de) | 1978-06-29 |
DE2756767C2 true DE2756767C2 (de) | 1982-09-09 |
Family
ID=25034899
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
DE2756767A Expired DE2756767C2 (de) | 1976-12-27 | 1977-12-20 | Mikroprozessor auf einem Halbleiterchip |
Country Status (10)
Country | Link |
---|---|
JP (1) | JPS6053898B2 (de) |
AU (1) | AU512868B2 (de) |
BR (1) | BR7708663A (de) |
CA (1) | CA1091359A (de) |
CH (1) | CH623946A5 (de) |
DE (1) | DE2756767C2 (de) |
ES (1) | ES465430A1 (de) |
GB (1) | GB1543279A (de) |
HK (1) | HK70784A (de) |
SE (1) | SE427590B (de) |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS6140500U (ja) * | 1984-08-16 | 1986-03-14 | 三菱重工業株式会社 | シ−ルド式トンネル掘進機のテ−ルシ−ル |
JPS62175082U (de) * | 1986-04-24 | 1987-11-06 | ||
JPS63104495U (de) * | 1986-12-25 | 1988-07-06 | ||
JPH0535198Y2 (de) * | 1987-02-17 | 1993-09-07 | ||
JPH0513834Y2 (de) * | 1987-02-17 | 1993-04-13 | ||
JPH0540157Y2 (de) * | 1987-08-13 | 1993-10-12 |
-
1977
- 1977-10-06 CA CA288,231A patent/CA1091359A/en not_active Expired
- 1977-10-11 AU AU29561/77A patent/AU512868B2/en not_active Expired
- 1977-11-29 GB GB49550/77A patent/GB1543279A/en not_active Expired
- 1977-12-15 SE SE7714243A patent/SE427590B/sv unknown
- 1977-12-16 JP JP52150706A patent/JPS6053898B2/ja not_active Expired
- 1977-12-20 DE DE2756767A patent/DE2756767C2/de not_active Expired
- 1977-12-23 CH CH1596877A patent/CH623946A5/de not_active IP Right Cessation
- 1977-12-26 ES ES465430A patent/ES465430A1/es not_active Expired
- 1977-12-27 BR BR7708663A patent/BR7708663A/pt unknown
-
1984
- 1984-09-13 HK HK707/84A patent/HK70784A/xx unknown
Also Published As
Publication number | Publication date |
---|---|
AU512868B2 (en) | 1980-10-30 |
BR7708663A (pt) | 1979-07-24 |
DE2756767A1 (de) | 1978-06-29 |
CA1091359A (en) | 1980-12-09 |
GB1543279A (en) | 1979-03-28 |
SE427590B (sv) | 1983-04-18 |
SE7714243L (sv) | 1978-06-28 |
HK70784A (en) | 1984-09-21 |
JPS5382239A (en) | 1978-07-20 |
JPS6053898B2 (ja) | 1985-11-27 |
ES465430A1 (es) | 1978-09-16 |
CH623946A5 (en) | 1981-06-30 |
AU2956177A (en) | 1979-05-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
DE2756768C2 (de) | Mikroprozessor | |
DE2716369C2 (de) | ||
DE3751297T2 (de) | Schaltung zur Programmsteuerung. | |
DE2935906C2 (de) | Mikroprozessor | |
DE2907181A1 (de) | Befehlssatz-modifizierregister fuer einen datenprozessor | |
DE2756762A1 (de) | Verfahren und anordnung zum zugriff zu beliebigen bitfeldern im hauptspeicher einer datenverarbeitungsanlage | |
DE2524046C2 (de) | Elektronische Datenverarbeitungsanlage | |
DE2130299B2 (de) | Eingabe-/Ausgabekanal für eine Datenverarb eitungsanlage | |
EP0010185B1 (de) | Virtuell-Adressiervorrichtung für einen Computer | |
CH650600A5 (de) | Zentralprozessoreinheit einer datenverarbeitungsanlage mit operationscode-erweiterungsregister. | |
DE2117936B2 (de) | Mikroprogrammgesteuerte Zentraleinheit eines elektronischen Datenverarbeitungssystems | |
DE2718051A1 (de) | Datenverarbeitungsanlage mit einrichtungen zur wechselnden bearbeitung mehrerer aufgaben | |
DE2357003A1 (de) | Programmierbarer prozessor | |
DE1549523B2 (de) | Datenverarbeitungsanlage | |
DE3741850A1 (de) | Ausfuehrungseinheit fuer einen i/o-prozessor | |
DE3121742C2 (de) | Mikroprogramm-Steuereinrichtung | |
DE2835095A1 (de) | Gekoppeltes, mikroprogrammiertes prozessorsystem | |
DE69616718T4 (de) | Vorrichtung und verfahren zur bestimmung von adressen fehlausgerichteter daten | |
DE2533737A1 (de) | Datenprozessor | |
DE2756767C2 (de) | Mikroprozessor auf einem Halbleiterchip | |
DE69428953T2 (de) | Prioritätskodierer | |
DE2854400C2 (de) | Anordnung zum Wechsel zwischen verzahnt zu verarbeitenden Programmen | |
DE2725614C2 (de) | ||
DE2336676A1 (de) | Einrichtung zur modifizierung von mikroprogrammbefehlen | |
DE2801853A1 (de) | Integrierte digitale datenverarbeitungseinrichtung |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
OAP | Request for examination filed | ||
OD | Request for examination | ||
8125 | Change of the main classification | ||
D2 | Grant after examination | ||
8339 | Ceased/non-payment of the annual fee |