DE2756768C2 - Mikroprozessor - Google Patents
MikroprozessorInfo
- Publication number
- DE2756768C2 DE2756768C2 DE2756768A DE2756768A DE2756768C2 DE 2756768 C2 DE2756768 C2 DE 2756768C2 DE 2756768 A DE2756768 A DE 2756768A DE 2756768 A DE2756768 A DE 2756768A DE 2756768 C2 DE2756768 C2 DE 2756768C2
- Authority
- DE
- Germany
- Prior art keywords
- register
- address
- output
- 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/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
-
- 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/28—Handling requests for interconnection or transfer for access to input/output bus using burst mode transfer, e.g. direct memory access DMA, cycle steal
- G06F13/282—Cycle stealing DMA
-
- 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
Description
a) Das Ringsammelleitungssystem ist unidirektional und in mehrere Abschnitte (23, 25, 28)
unterteilt und mit Ein-ZAusgangssammelleitungen (10, 20) verbunden, wobei die in den
einzelnen Baueinheiten durchzuführenden für die Ein-/Ausgabeanforderungen notwendigen
Operationen durch die Takt- und Zeitsteuerung (Fig. IC) zeit- und damit auch abschnittsgesteuert festgelegt sind;
b) eine für die Ein-/Ausgabeanforderungen und Zykluszuordnungen multiplex geschaltete gemeinsame Rufleitung (53) wird einem Prioritätsdecodierer (54) zugeführt, und ein Taktgeber
(64, 66) durchläuft durch Setzen eines mit ihm verbundenen Flip-Flop einen Doppelzyklus für
die Ausführung einer Instruktion, die den Hauptspeicher (12) ansteuert, wobei
bl) im ersten Zyklus die im Hauptspeicher (12) anzusteuernde Adresse errechnet und
b2) während des zweiten Zyklus Daten über das Ringsammelleitungssystem und über die Einbzw. Ausgangssammelleitungen (10, 20) übertragen werden.
2. Schaltungsanordnung nach Anspruch 1, dadurch gekennzeichnet, daß die arithmetisch/logische Einheit (22) auf Zeitteilerbasis, gesteuert durch einen
Taktgeber (64) und einen nachgeschalteten Hilfstaktgeber (66), die Verarbeitung prioritätsverknüpfter Unterbrechungen und Zykluszuordnungen dadurch ausführt, daß ein Adreßregister (32) und
außerhalb des Prozessor-Halbleiterchips (9) befindliche lokale Speicherregister (14) der arithmetisch/lo-
gischen Einheit (22) zugeschaltet sind.
3. Schaltungsanordnung nach den Ansprüchen 1 oder 2, dadurch gekennzeichnet, daß ein Taktzyklus
in acht verschiedene Zeiten (Takte 0 bis 7) unterteilt ist, daß dieser Grundtakt in zwei Teile zur Steuerung
der arithmetisch/logischen Einheit (22) unterteilt ist,
daß während des Taktes (7) bis zum Takt (2) (1. Teil des Doppelzyklus) die arithmetisch/logische Einheit
(22) den Inhalt des Instruktionsadreßregisters (32) erhöht, daß während eines Teils der Takte (3 bis 6) (2.
Teil des Doppelzyklus) von allen Makroinstruktionen die Verarbeitung durchgeführt wird und daß zu
Beginn einer bestimmten Taktzeit (Takt. 3) ein
»Fenster« erzeugt wird, indem die Adresse für den
Mikroprogrammspeicher (16) auf der Ausgangssammelleitung (20) erscheint, wenn ein errechneter
neuer Adreßzeiger von der arithmetisch/logischen Einheit (22) in das nachgeschaltete Resultatregister
(24) und in ein Ausgabepufferregister (26) für die Ausgangssammelleitung (20) geladen wird.
4. Schaltungsanordnung nach Anspruch 3, dadurch gekennzeichnet, daß in das- Resultatregister (24) zu
einer bestimmten Taktzeit (Takt 2) die Instruktionsadresse geladen wird und zu einer anderen
bestimmten Taktzeit (6) die von der arithmetisch/logischen Einheit (22) bei der Ausführung dieser
Instruktion verarbeiteten Daten, währenddessen zu einer dazwischenliegenden Taktzeit (Takt 3) die
nächste Instruktionsadresse in das Ausgabepufferregister (26) und danach auf die Ausgangssammelleitung (20) gesetzt wird.
5. Schaltungsanordnung nach den Ansprüchen 2 und 3, dadurch gekennzeichnet, daß die Adresse von
den lokalen Speicherregistern (14) auf die Eingangssammelleitung (10) ausgelesen und von der arithmetisch/logischen Einheit (22) erhöht wird, bevor sie in
das Ausgabepufferregister(26) gesetzt wird.
6. Schaltungsanordnung nach den Ansprüchen 1 bis 5, dadurch gekennzeichnet, daß während der
Speicherzugriffszeit des Hauptspeichers (12) die erhöhte Adresse auf der Ausgangssammelleitung
(20) fortgeschrieben, in ein Zykluszuordnungsregister in den lokalen Speicherregistern (14) zurückgeschrieben wird und daß nach einer Speicherzugriffszeit Daten aus dem Hauptspeicher (12) auf die
Eingangssammelleitung (10) ausgelesen werden, wenn das entsprechende Eingabe-/Ausgabegerät die
Auslesewahl des Hauptspeichers (12) gestattet und die Schreibimpulse sperrt, die vom Prozessor (9) auf
den Steuer- und Taktleitungen (19) anliegen.
Die Erfindung betrifft eine Schaltungsanordnung zur vereinfachten Zuteilung von Mikroprozessorzyklen
nach dem Oberbegriff des Anspruchs 1.
Zum Stand der Technik gehören Mikroprozessoren mit drei oder vier separaten Funktionsgrundkomponenten (siehe Microprocessors, Electronics »Book Series«,
1975, insbesondere Seiten 2 bis 6). Die erste Komponente ist ein Festwert-Mikroinstruktionsadreßregister für
die Erhöhung, Verzweigung und Verbindung einzelner Maschinenelemente. Die zweite Komponente ist die
zentrale arithmetische/logische Einheit, nachfolgend ALU genannt, mit ihren zugehörigen Registern und
Datenbahnen. Die dritte Komponente ist die Adressier- und Datenverbindung mit dem Hauptspeicher, die im
allgemeinen als Eingabe/Ausgabeeinheit behandelt wird und in der Architektur mit anderen Eingabe/Ausgabegeräten des Systems kombiniert ist Bei ausreichender
Verfeinerung des Mikroprozessors ist noch ein vierter Teil aus Registern- und Datenbahnen vorhanden, im
allgemeinen Kanal genannt Dieser dient zur Ausführung prioritätsgebundener Unterbrechungsumschaltungen und 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
io
15
20
verteilen. In der ersten Gruppe werden die verschiedenen
Funktionen separaten Chips zugeordnet, beispielsweise einem ALU-Chip, einem Steuer-Chip, einem
Adreß-Chip, einem E/A-Chip und ROS/RAM-Chip (manchmal mit Adreßsteuerung). Bei der zweiten
Gruppe werden die Prozessorfunktionen auf eine Anzahl identischer Chips verteilt
Diese Technik wird »Bitscheibentechnik« genannt und verlangt gewöhnlich separate E/A-Steuer-Chips
(siehe obengenannte Veröffentlichung, Seiten 29 bis 34, 35 bis 40 und 93 bis 104).
Beide oben beschriebenen Lösungsmöglichkeiten verlangen umfangreiche Verbindungen zwischen den
Chips, die jedoch durch die Anzahl der verfügbaren E/A-Stifte begrenzt sind und demzufolge zu einer
Verdoppelung der Logik und auch zu Verzögerungen durch die erforderlichen Treiber und Empfänger
außerhalb der Chips führen. Wenn die Daten- oder Adreßsammelleitungen bidirektional sind, können Signale
erst gesendet oder empfangen wrden, 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 Platzbedarf 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ößen
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
Die für die Interrupts gemeinsame Leitung sowie die Zuordnung von Taktsignalen zu den Ein-/Ausgabe-Steuersignalen
erfolgt hier zu schaltungs- und zeitaufwendig, so daß eine Verwendung in einem hochintegrierten
Mikroprozessor zu platzaufwendig ist und außerdem die Leistungsfähigkeit herabsetzen würde.
Außerdem ist aus Elektronik, Band 25 (1976), Heft 5,
Seiten 69 bis 74, die Interruptverarbeitung bei der Prozeßsteuerung beschrieben, in dem ein Interruptmaskenregister
und ein Prioritätsdecoder verwendet wird.
Auch diese Art der Interruptverarbeitung verlangt eine Vielzahl von Leitungen und Schaltungskomponenten, so
daß eine Integrierung dieser Lösung in einem hochintegrierten Mikroprozessor auf einem Halbleiterchip
nicht ohne weiteres erfolgen kann. Der Platzbedarf wäre viel zu hoch, so daß andere wesentliche Bausteine
des Mikroprozessors nicht mitintegriert werden könnten.
Ebenfalls aus Elektronik, Band 23 (1974), Heft 10,
Seiten 391 bis 395, ist eine Systemtechnik mit Mikrocomputern beschrieben, bei der der Datenaustausch
über ein Sammelleitungssystem erfolgt Dieses Sammelleitungssystem ist bidirektional ausgerichtet, so
daß alle Ein- und Ausgabeeinheiten und alle Komponenten der Verarbeitungseinheit und der Speicher über
diese gemeinsame Sammelleitung Daten und Instruktionen austauschen können. Die Leistungsfähigkeit dieses
SammelleitunfMystems ist jedoch zu gering, da bei
einer Austauschoperation vom Daten oder Instruktionen
30
35
40
4 jeweils die gesamte Sammelleitung für andere Operationen
blockiert ist
Der Erfindung liegt die Aufgabe zugrunde, eine Mikroprozessor-Architektur für einen Mikroprozessor
auf einem Halbleiterchip mit einem Ringsammelleitungssystem und intern überlappt ablaufenden Operationen
dahingehend zu verbessern, daß Einheiten durch mehrere Stufen von Unterbrechungen und Zykluszuordnungen
die vorhandene arithmetisch/logische Einheit und das Sammelleitungssystem nüt einem Minimum
an Steuerlogik und ohne zusätzliche Pufferregister gemeinsam benutzen können.
Die erfindungsgemäße Lösung besteht im Kennzeichen des Patentanspruchs 1.
Dadurch, daß das Adreßregister in den Datenfluß der
arithmetisch/logischen Einheit integriert ist und in abwechselnden Halbzyklen die arithmetisch/logische
Einheit zur Erhöhung der sonstigen Veränderungen der Instruktionsadresse im Festwertspeicher benutzt wird
die arithmetisch/logische Einheit auf Zeittsilerbasis für
die Verarbeitung von Daten, 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 Zykluszuordnungen, gemeinsam verwendet. Überlappte Operationen sowie eine optimale Ausnutzung
des vorhandenen Leitungssystems mit einer sehr niedrigen Anzahl von Anschlußstiften nach außen,
einschließlich der dazu erforderlichen Eingangs- und Ausgangsschaltungen sowie Treiber, sind die Folge.
Ein Ausfuhrungsbeispiel der Erfindung ist in den beigefügten Zeichnungen dargestellt und wird anschließend
näher beschrieben. Es zeigt
Fig. 1 einen Lageplan der Fig. IA, IB und IC, die in
einem Schaltungsplan den Aufbau eines Mikroprozessors zeigen,
F i g. 2A, 2B, 3A, 3B, 3C, 4A, 4B, 4C in Zeitdiagrammen
die Ausführung eines Grundinstruktionssatzes, der an die Architektur des Mikrocomputersystems angepaßt
ist und die Fig.2, 3 und 4 die Beziehung dieser Zeitdiagramme zueinander,
F i g. 5 ein Schaltbild eines Kanals mit Zyklusordnung und prioritätsgesteuerter Unterbrechung.
Die vier Haupteinheiten des in F i g. 1 dargestellten Systems sind:
so
55
1. Ein Prozessor (CPU) 9 mit der arithmetischen und logischen Einheit 22 (nachfolgend ALU genannt),
der Eingangssammelleitung 10, der Ausgangssammelleitung 20, der Adreßsammelleitung 21, der
gemeinsamen Rufleitung 53 und Steuerleitungen 15 sowie mehreren Arbeitsregistern und einer Steuerschaltung,
2. ein lokales Speicherregister 14,
3. ein Hauptspeicher 12,
4. ein Festwertspeicher (ROS) 16, auch Ausführungsspeicher oder Mikroprogrammspeicher genannt
eo
65 Der Prozessor 9 kann z. B. auf einem Chip ausgeführt sein, das in der heutigen Technik einem Paket montiert
ist, das weniger als 70 E/A-Stifte pro Modul braucht
Dit;es CPU-Paket kann auf einer Karte zusammen mit einem Modul für den Festwertspeicher 16, einem Modul
für die lokalen Speicherregister 14 (die z. B. 32 Register umfassen), zwei Modulen für die Hilfstreiber 18 und
einem Oszillator (dargestellt durch die Ausgangsleitung
59) montiert sein. Ein kleiner Teil des Hauptspeichers 12 kann auch auf dieser Karte montiert sein oder auf einer
zweiten Karte.
Daten, Instruktionen und Eingabe-/Ausgabebefehle werden zwischen der CPU 9 und anderen Einheiten
über zwei unidirektionale Sammelleitungen übertragen, und zwar die Eingangssammelleitung 10 und die
Ausgangssammelleitung 20. Die Eingangssammelleitung 10 empfängt Daten von den Eingabe-/Ausgabegeräten (nicht dargestellt), dem Hauptspeicher 12 über die
Hauptspeichersammelleitung 11, vom Festwertspeicher 16 über die Festwertspeichersammelleitung 17 und von
den lokalen Speicherregistern 14 über die Sammelleitung 13. Daten auf der Eingangssammelleitung 10
werden dem Programmregister 30 und direkte der arithmetisch/logischen Einheit 22 zugeführt Wichtig ist
vor allen Dingen die Tatsache, daß Daten und Informationen auf der Eingangssammelleitung 10 in
einer Richtung der CPU 9 zugeführt werden. Treiber für die Übertragung der Daten vom Chip der CPU 9 über
die Eingangssammelleitung 10 sind nicht erforderlich. Treiber, deren Leistung ausreicht, um Daten auf die
Eingangssammelleitung 10 zu setzen, sind für den Hauptspeicher 12, die lokalen Speicherregister 14 und
den Festwertspeicher 16 vorgesehen. Der Hauptspeicher 12 kann außerdem Daten von der Eingangssammelleitung 10 nehmen, die vom lokalen Speicherregister
14 oder einem Eingabe/Ausgabegerät über die Sammelleitung 13 auf die Leitung gegeben wurden. Die
Ausgangssammelleitung 20 leitet den Inhalt des Ausgabepufferregisters 26 an den Festwertspeicher 16,
den Hauptspeicher 12, das lokale Speicherregister 14
und die E/A-Geräte (nicht dargestellt). Die Ausgangssammelleitung 20 dient für den Festwertspeicher 16 und
den Hauptspeicher 12 als AdreßsammeUeitung und für die lokalen Speicherregister 14 und die E/A-Geräte als
Datensammelleitung. Die E/A-Geräte werden fiber sechs Adreßleitungen in der Sammelleitung 21 angesteuert, so daß bis zu 64 lokale Speicherregister 14 oder
bis zu 63 E/A-Geräte direkt angesteuert werden können. Wie schon gesagt führt die Eingangssammelleitung 10 Mikroinstruktionen oder Daten von den
E/A-Geräten oder dem Speicher herein. Quelle oder
Bestimmung für die Übertragungen auf den Sammelleitungen 10 und 20 werden über die Steuerleitungen 15
selektiert Diese Steuerleitungen 15 werden durch den Hilfstreiber 18 erregt und verlassen ihn in der
Darstellung in F i g. IA als Steuer- und Taktleitungen 19.
Dazu gehören die Selektionsleitungen für das lokale Speicherregister 14, den Festwertspeicher 16, den
Hautpspeicher 12, und die Schreibleitungen für das hohe
und niedrige Byte. Ein 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 vorhergehende einer Taktimpulse auf einer der Steuerleitungen
15 zeitlich gesteuert Ausgehende Abfragesignale zeigen an, daß der lokale Speicherausgangscode LCO
und der Selektiercode gültig sind. Hereinkommende Abfragesignale sind eine Antwort auf die ausgehenden
Abfragesignale zur Feststellung der Gültigkeit der Datenübertragungen auf der EingangssammeDeitung 10
zu dem Prozessor 9 oder Befehlsantworten von den Geräten. Zusammen mit dem Takteingangshaltesignal,
mit dem die Eingabe-/Ausgabegeräte das Weiterlaufen des CPU-Taktes verhindern können, gestatten diese
Signale einen vollständig asynchronen E/A-Betrieb.
Anschließend werden die Eingabe-/Ausgabesammeileitungen 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 Adreßausgabe des Hauptspeichers 12 und des Festwertspeichers 16.
Die Eingangssammelleitung 10 umfaßt 18 Leitungen für Mikroinstruktionen vom Festwertspeicher 16, für die
Dateneingabe von E/A-Geräten sowie lokalen Speicherregistern 14 und für die Dateneingabe und
-ausgabe vom Hauptspeicher 12. Die gemeinsame Rufleitung 53 umfaßt sieben Multiplex-Zykluszuordnungsleitungen oder sieben Unterbrechungsstufen-Anis forderungsleitungen. Die Zykluszuordnungsaufruf-Leitung ist eine der Leitungen 19 und wird zum
Zykluszuordnungsaufruf anstelle von Unterbrechungen auf der gemeinsamen Ruf-Sammelleitung 53 benutzt
Löschen der Unterbrechungsprioritäten und Anfordern
von Zykluszuordnungsprioritäten. Die AdreßsammeUeitung 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
Zum Selektierausgang für die lokalen Speicherregister 14 gehören die fünf Leitungen LSR-Selektion,
Speicher-Selektion, ROS-Selektion, »Schreiben hohes
Byte« und »Schreiben niedriges Byte« der Steuer- und
Taktleitungen 19. (Wenn »Schreiben hohes oder
niedriges Byte« nicht angegeben ist, handelt es sich um eine Leseoperation.)
Ein Signal auf der Abfrageausgangsleitung einer der Steuer- und Taktleitungen 19 zeigt an, daß die
LSR-Codeausgangssignale oder ein Befehl während der Takte 3 bis 4 und 9 bis 14 gültig sind. Der
Abfrageeingang schließt eine gemeinsame Leitung ein, auf der ein selektiertes Gerät auf einen Abfrageausgang
antworten kann und die Daten gültig machen kann, die
es auf die Eingangssammelleitung 10 gesetzt hat, oder
auf einen Befehl antworten kann.
Ein E/A-Gerät fordert beim Signalanstieg auf einer
Zykluszuordnungs-Eingangsleitung eines Zykluszuordnungsaufrufs an und beim Signalabfall zeigt es an, daß
seine Priorität auf der gemeinsamen Rufleitung 53 gültig ist
Ein Signal auf einer Unterbrechungs-Eingangsleitung zeigt an, daß auf der gemeinsamen Rufleitung 53
Unterbrechungen für eines oder mehrere Geräte
so ausstehen. Die Proritäten sind dabei auf der gemeinsamen Rufleitung 53 angegeben. Die OsziUatorausgangsieitung 59 liefert kontinuierlich ein rechteckiges
Taktsignal.
wird das System allgemein und nach der Stromeinschaltung zurückgestellt
Die Ausgangsleitung für Takt 1 oder 9 ist eine der Steuer- und Taktleitungen 19 für die kontinuierliche
Taktierung auf der Ausgangssammelleitung 20 derjeni-
eo gen Daten, die vorher auf der Pufferregister-Ausgangsleitung 28 waren. Die Taktausgangssignale 6,7 oder 14,
15 (für Instruktionen für Doppelzyklus) auf den Taktleitungen 19 sorgen für die kontinuierliche Taktierung; ihr Abfaüen zeigt das Ende emer 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 Sperrsignal für niedrige Speicherbytes wird vom Gerät
abgegeben, wenn nur das hohe Byte in den Hauptspeicher 12 geschrieben werden soll. Wenn das Gerät beide
Signale gleichzeitig anhebt, soll der Hauptspeicher gelesen werden.
Durch die Speicherdatenselektion können Daten vom Hauptspeicher 12 auf der Eingangssammelleitung 10
auftreten. Durch Sperren der Speicherdatenselektion kann ein Gerät seine Daten (beispielsweise eine
Hauptspeicheradresse) auf die Eingangssammelleitung geben, damit sie in die lokalen Speicheradreßregister
(Adreßregister für die Zykluszuordnung) geschrieben werden.
Das Steuersignal LSR-Scheiben 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 lokale Speicherregister 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 O für Kanalfunktionen reserviert ist
Im Prozessor 9 verläuft die Eingangssammelleitung
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 44) und das Emiedri^ungsregister 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 16 Bit für die ALU 22 und folgende Operandenregister:
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 kann.
Da» Töiälregister 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 Mikroinstruktions-Adreßregisters 32 kann über die Leitung 29 in die
ALU 22 geleitet werden zur Adreßmodifikation oder für
Verzweigungs- und Verbindungsoperationen. Mit dem Zählregister 50 werden Verschiebungen gezählt und die
lokalen Speicherregister 14 indirekt adressiert. Der Inhalt des Zählregisters 50 kann zur Ausführung
verschiedener Operationen über die Leitung 43 zur ALU 22 geleitet werden. Der Ausgabepuffer 26 hält auf
die Pufferregister-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 Ausgabepufferregi
sters 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
in Signale vom Instruktionsdecodierer 62 weitergeleitet,
um folgende Register zu laden: Das Mikroinstruktionsadreßregister 32, das Akkumulatorregister 34, das
Akkumulator-Erweiterungsregister 36, das Fehlerregister 46, das Unterbrechungsmasken-Register 44, das
Zählregister 50, das »Laufende Bedingung«-Register 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.
forderungen multiplex geschaltete gemeinsame Rufleitung 53 ist mit dem Unterbrechungstor 52 und dem
Prioritätsdecodierer 54 verbunden. Die Verbindung mit dem Prioritätsdecodierer 54 dient Zykluszuordnungen,
die eine höhere Priorität haben als Unterbrechungen.
jo Die Ausgabe des Unterbrechungstores 52 wird über die
Leitungen 69 an den Prioritätsdecodierer 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-Aus
gabesteuerregister 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
Instruktionsdecodierers 62 wird der Betrieb der CPU 9
einschließlich der Durchschaltung der Sammelleitung zu den verschiedenen Operandenregistern und der Zeittei
lung der verschiedenen Sammelleitungen und Register
gesteuert
Im Zusammenhang mit F i g. 5 wird die Zykluszuordnung und der Uiiicrbrcchiiiigskana! genauer beschrieben. Soweit wie möglich werden dieselben Bezugszah-
len wie für die Elemente in F i g. 1 benutzt Die
Leitungen 530 bis 536 in Fig.5 stellen die einzelnen
Leitungen der multiplex geschalteten gemeinsamen Rufsammelleitung 53 in Fig. 1 in negativer Logik dar.
Die Leitungen 450 bis 456 sind die Ausgangsleitungen
des Unterbrechungs-Maskenregisters 44. Die Aufrufzykluszuordnungs-Verriegelung 75 hat eine Ausgangsrückstell-Leitung 80. Im Unterbrechungstor 52 werden
die Signale auf der Leitung 450 (zum O-Bit des Unterbrechungs-Maskenregisters 44 gehörend) mit den
"Signalen auf der Ausgangsrfickstell-Leitung 80 UND-verknüpft und das Ergebnis mit den Signalen auf der
Leitung 530, die die O-Bitposition der gemeinsamen Rufleitung 53 darstellen, NOR-verknüpft Das Ergebnis
230 232/298
erscheint auf der Leitung 520. In ähnlicher Weise werden die Bits 1 bis 6 des Unterbrechungs-Maskenregisters
44 auf den Leitungen 451 bis 456 mit den Signalen auf der Ausgangsrücksteil-Leitung 80 UND-verknüpft
und die Ergebnisse mit den Bitpositionen 1 bis 6 der gemeinsamen Rufleitung 53 auf den Leitungen 531
bisSSeNOR-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 2s 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 Unterbrechungsprüfschaltung
58 und zum UND-Glied 82 führt
Mit dem invertierten Signal auf der Zuordnungsanforderungsleitung
68 wird die Aufrufzyklus-Zuordnungsanforderungsleitung 68 wird die Aufrufzyklus-Zuordnungsverriegelung
75 verriegelt Das einschaltende Ausgangssignal dieser Verriegelung auf den Leitungen
77 verriegelt die Zykluszuordnungs-Betätigungsschaltung
76. Die Rückstellausgabe der Aufrufzyklus-Zuordnungsverriegelung 75 auf der Ausgangsrückstelleiiiing
80 sperrt die UND-Glieder im Unterbrechungstor 52 und schaltet die Unterbrechungsstufen-Umschaltverriegelung
84 ab. Deren Ausgabe auf den Leitungen 79 steuert die Ladeleitung für eine neue Unterbrechungsstufe
72 und erregt die Leitung 5i für die laufende Unterbrechungsstufe. Das negative Signal auf
der Unterbrechungsanforderungs-Leitung 70 wird der Zykluszuordnungs-Bestätigungsschaltung 76 zugeführt
und für die Unterbrechungsstufen-Umschaltverriege- !ung 84 invertiert Dss negative Signel syf der
Zuordnungsan'orderungsleitung 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 lauft zum UND-Glied 82 und zu den werthohen Bit-Ein
gangsleitungen 834,835, um in diese einen vorgegebenen Code zu zwingen.
Die Leitungen 310 bis 314 stellen die wertniederen
Bitpositionen des Adreßteils 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 attf der es
den. Dann laufen sie über die Ausgangiteitunfc» 831 bis
835 zum LSR-Ausgabesteuerregister«!. '..·■ .
Die Ausgänge der UND-Glieder 82 werden über eine DOT-ODER-Verknüpfung mit den Signalen auf den
Leitungen 831 bis 833 verbunden, den wertniederen Bitpositionen des Eingangs zum LSR-Ausgabesteuerregister
40. Genauso werden die Ausgangsleitungen der UND-Glieder 81 mit den wertniederen Leitungen 831
bis 833 verbunden, die zum LSR-Ausgabesteuerregister 40 führen. Im UND-Glied 81 werden die auf den
Leitungen 561, 562 und 563 erscheinenden Ausgangssignale des Registers 56 für die laufende Unterbrechung
mit den Signalen auf der Einschaltleitung für die »Laufende Unterbrechung«-Stufe 73 und der Unterbrechungsprüfschaltung
58 verknüpft Die Einschaltleitung für die »Laufende Unterbrechung«-Stufe 73, die den
Inhalt des Registers 56 für die laufende Unterbrechung auf die drei wertniederen Eingangsleitungen zum
LSR-Ausgabesteuerregister 40 leitet, zwingt auch auf die werthohen Eingangsleitungen 834, 835 ähnlich wie
auf die Leitung 78 einen bestimmten, jedoch diesmal anderen 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 alle Geräte auffordern, ihre Zykluszuordnungsprioritäten auf die gemeinsame Rufleitung
53, Leitungen 530 bis 536, zu setzen und ihre Unterbrechungsanforderungen zurückzuziehen. Wenn
das Signal auf der Unterbrechungsanfordenings- Leitung 70 nicht mehr vorhanden ist, wird dadurch dem
Prozessor 9 angezeigt daß alle Geräte ihre Unterbrechungsprioritätsbits
von der gemeinsamen Rufleitung 53 genommen haben. Wenn das Signal auf Zuordnungsanforderungs-Leitung
68 verschwindet und die Aufrufzyklus-Zuordnungsverriegelung 75 verriegelt wird, wird
sichergestellt daß die Ausgangsleitungen 541, 542,544
des Prioritätsdecodierers 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
arithmetisch/logische Einheit 22 erhöht werden kann,
um Daten vom Gerät tu holen oder dort zu speichern.
Die Zykluszuordnungsstufe mit der niedrigsten Priorität braucht kein Prioritätsbit und ihr erzwungener Geräteadreßteil
ist null, um alle binären Geräteadressen zu ermöglichen. Am Anfang des Zykluszuordnungszyklus
wird die Aufrufzyklus-Zuordnungsverriegelung 75 zurückgestellt, um in den kontinuierlichen Unterbrechungsaufruf oder die sequentielle Ausführung der
Mikroinstruktion zurückzukehren. Die Aufrufzykhis-Zuordnungsverriegelung 75 kann auch wieder verriegelt werden, weil sie erst entriegelt werden muß, damit
die Geräte- wieder die Zuordnungsanforderungs-Leitung 68 erregen können, wenn sequentielle Zykluszuordnungen gebraucht werden. Das Unterbrechungsmasken-Register 44 wird immer abgeschaltet, wenn die
Aufrufz|ld^-Zuordmingsverriegehmg 75 verriegelt
wird. Asynchrone ZykTuszuordnungs-Anfordenmgen
der Geräte können durch Mikroprozessortaktierung
oder durch Verriegelung der Aufrufsammelleitung so gesteuert werden, daß die Prioritätsschaltung stabilisiert
werden kann.
Organisation einer undirektionalen Sammelleitung
für Eingabe/Ausgabe
Die Verbindung der unidirektionalen externen Eingabe- und Ausgabesammelleitungen intern in einer
geschlossenen Schleife mit der arithmetisch/logischen Einheit 22 gestattet die interne Verarbeitung und die
externe Veränderung von E/A-Daten, die Unterbrechungsebenenumschaltung und die Erhöhung der
Zykluszuordnungsadresse, so daß mehrere Stufen von Unterbrechungen und Zykluszuordnungen die vorhandene arithmetisch/logische Einheit 20 und die Datenbahn mit einem Minimum an Steuerlogik und ohne
zusätzliche Pufferregister gemeinsam benutzen können.
Dazu wird eine unidirektionale Sammelleitung verwendet, die von und zum Prozessor 9 führt Daten
und Adresse werden auf derselben Ausgangssammelleitung gemischt Die Eingangssammelleitung 10 ist die
einzige Dateneingangssammelleitung. Der Hauptspeicher 12 ist an diese Sammelleitung ebenso angeschlossen wie die lokalen Speicherregister 14. Während die
unidirektionale Funktion der Eingangssainmelleitung 10 bezüglich des Prozessors 9 aufrechterhalten wird, wird
die Eingangssammelleitung 10 vom Hauptspeicher 12 zum Lesen und Schreiben von Daten benutzt während
die Ausgangssammelleitung 20 die Adresse des Hauptspeichers 12 hält
Die Eingangssammelleitung 10 wirkt außerdem als externer Eingang für eine Seite der arithmetisch/logischen Einheit 22 (ALU), deren Ausgabe vorübergehend
in das Totalregister 24 gesetzt wird. Das Totalregister 24 hat eine Ausgangssammelleitung 25, die zu jedem
Register im Prozessor 9 führt Die Sammelleitung 25 ist mit dem Ausgabepufferregister 26 auf der einen Seite
verbunden und kommt von dort aus dem Prozessor 9 und bildet die Ausgangssammelleitung 20, die in diesem
Beispiel eine Datenflußbreite von zwei Bytes hat Die Ausgangssammelleitung 20 liefert Daten an die lokalen
Speicherregister 14 und an eine Anzahl nicht dargestellter E/A-Geräte. Auf Zeitteilerbasis fungiert die
Ausgangssammelleitung 20 auch als Adreßsammelleitung für den Festwertspeicher 16 und für den
Hauptspeicher 12. Bei der erfindungsgemäßen hybriden Struktur der Sammelleitungen sind also auf der
Ausgangssammelleitung 20 Daten und Adressen und auf der Eingangssammelleitung 10 Daten und Instruktionen
enthalten.
Da kein direkter Datenweg vom Prozessor 9 zum Hauptspeicher 12 verläuft, setzt die CPU die Ergebnisse
in die lokalen Speienerregister 14. Dann wird die unidirektionale EmgangssammeUeitung zwischen den
lokalen Speicherregistern 14 und dem Hauptspeicher 12 in Gegenrichtung benutzt Relativ zum Prozessor 9 wird
die Eingangssammelleitiing 10 also dadurch unidirektional gehalten, daß die Ausgangssammelleitung 20 auf
Wunsch bei jeder internen Mikroinstruktion zur Datenmodifikation das Ergebnis ohne eine zusätzliche
Instruktion oder Zeiteinheit in das gewählte lokale Speicherregister 14 setzen kann. Dadurch ist eine
sequentielle and gleichzeitige Operation auf beiden Saellitungen mQgfich. Das Ausgabepufferregister
26 kann die nictate Märosntruktion im FestwertspeichcrROS l«AEwahrend die vorhergehende
MQLüvu nc Sberupplen Betrieb ausgeführt
wird, wobei die Daten auf der Eingangssammelleitung 10 liegen. In ähnlicher Weise wird der Hauptspeicher 12
direkt über das Ausgabepufferregister 26 zwischen diesen beiden Adressierarten angesteuert. Ein schmaler
Datenabschnitt überträgt Daten an das lokale Speicherregister 14 oder das E/A-Gerät, das durch eine separate,
sechs Bit umfassende Adreßsammelleitung 21 adressiert wird, die außerdem die entsprechenden Zykluszuordnungsbestätigungen oder Unterbrechungsstufen-Um-
schaltungen signalisiert. Durch Reservierung eines der 64 lokalen Speicherregister als Sammelleitungs-Ausgaberegister kann der interne Datenfluß in dem Prozessor
9 um eine gemeinsame arithmetisch/logische Einheit 22 herum angeordnet werden. Dabei speist das Totalregi
ster 24 alle anderen internen Daten- und Adressierregi
ster 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
jo E/A-Gerät die ALU 22 mit der internen Verarbeitung
gemeinsam benutzen. Die externen unidirektionalen Sammelleitungen gestatten außerdem eine totale
interne Transparenz der CPU 9 für die Unterbrechungsstufen-Umschaltung und die direkte Speicherkanal-
adressierung (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 Instruktio
nen, wofür anschließend Beispiele gegeben werden.
In einem ersten Beispiel erfolgt das In-Serie-Schalten,
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 begonnen. Das lokale Speicherregister 14
so 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-Ausgabesteuer-Registers 40 bilden eine zusätzliche Adreßsammelleitung 21, 41 zum Adressieren von 64
Halbwörtern der lokalen Speicherregister 14 oder bis zu 63 E/A-Geräten auf der Ausgangssammelleitung 20
abhängig vom Typ der ausgeführten Instruktion. Die Kombination dieser zusätzlichen Miniadreßsammelleitung und der Eingangssammelleitung 10 sowie der
AusgangssammeEeitung 20 gestattet die Ausführung von Operationen in einem Zyklus. Ein E/A-Gerät kann
während derselben Instruktion Daten auf die Eingangssammelleitung 10 setzen, diese durch die ALU 22
verarbeiten lassen und die arithmetisch oder logisch
veränderten Daten auf der Ausgangssammelleinmg 20
empfangen, während das Gerät durch die Adreßsammelleitung 21 adressiert wird. Das ist ein Vorteil
gegenüber herkömmlichen Kanälen, die drei Instruktio-
nen schon für eine einfache E/A-Datenübertragung ohne ALU-Operation brauchen. Dazu muß der Prozessor
zuerst eine Adresse auf einer gemeinsamen E/A-Sammelleitung aussenden. Dann muß das Gerät
über eine Anforderuiig/Antwortschnittstelle antworten
um anzuzeigen, daß es «eine eigene Adresse erkannt hat
Eine zweite Instruktion braucht der Prozessor, um einen Befehl auszusenden, auf den das Gerät antworten kann.
Danach muß der Prozessor 9 eine dritte Instruktion ausführen und abhängig von der gewünschten Datenflußrichtung
lesen oder schreiben.
Die Ausgangssammelleitung 20 ist multiplex geschaltet,
so daß für jede ausgeführte Instruktion eine überlappte Operation abläuft Überlappt bedeutet daß
die nächste Instruktion vom Festwertspeicher 16 adressiert wird, während der Prozessor 9 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 ROS16 und die verbleibenden drei
Taktperioden, um Daten entweder an die lokalen Speicherregister 14 oder an die E/A-Geräte zu senden.
Hauptspeicher 12
Der Hauptspeicher 12 bildet einen adressierbaren und fortschreibbaren Speicher zum Speichern von
Daten sowohl durch den Prozessor als auch die E/A-Geräte zur späteren Wiederbenutzung. Daten
werden im Lese- und Schreibbetrieb über die Hauptspeicher-Sammelleitung 11 übertragen von und zur
Eingangssammelleitung 10. Die Steuer- und Taktleitungen 19 liefern die Takt- und Steuersignale und die
Adresse wird über die Ausgangssammelleitung 20 geführt.
Bei einem Zugriff zum Hauptspeicher 12 wird die Instruktion durch einen zusätzlichen Zyklus zu einer
Doppilzyklusinstruktion. Während des ersten Zyklus wird die Adresse auf den Adreßzeiger zum Hauptspeicher
12 erhöht, erniedrigt oder anderweitig verändert Dieser Adreßzeiger kommt vom lokalen Speicherregister
14 oder vom B-Register 36. (Das gibt die Möglichkeit, daß Stapelverarbeitung, auch wenn kein
Stapelzeiger verwendet wird, da das System der automatischen Erhöhung/Erniedrigung der Adresse
genauso wirkt wie die Stapelzeiger.) Der Hauptspeicher wird im zweiten Zyklus gelesen oder geschrieben,
nachdem der Adreßzeiger zum Hauptspeicher 12 auf die 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 Hauptspeichers
12.
Der Hauptspeicher 12 wird seriell wie folgt betrieben: Während eines Hauptspeicherabrufs werden Daten
vom Hauptspeicher 12 auf die Eingangssammelleitung 10 geholt und in eines der internen Register des
Prozessors 9 gespeichert. Am Ende der Abrufoperation zur Taktzeit null, wenn die nächste Instruktion beginnen
soll, werden diese Daten durch 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 Anfang einer jeden
Mikroinstruktion, die Instruktion von der Eingangssammelleitung 10 b das Programmregister 30 gesetzt
Gleichzeitig werden Daten in das Ausgabepufferregister 26 gesetzt Somit werden vom ROS 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 adreosierbaren und veränderbaren Registersteilen.
Daten ν erden 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ätshalteregister) 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 in den lokalen Speicherregistern
14 als Rückkehrzeiger 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 Eingangssammelleitung 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 Grunddatenfluß innerhalb der ALU 22 eingeschlossen werden kann. Die
Stelle null in den LSRs 14 ist zur Rettung und Rückspeicherung des Inhaltes des Ausgabepufferregi-
sters 26 reserviert
Der Prozessor 9 holt Daten vom Hauptspeicher 12 Ober die Eingangssammelleitung 10 und die ALU 22, um
sie in seinen internen Operandenregistern zu speichern. Das Ausgabepufferregister 2" 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
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
Eingangssammelleitung 10 und dann in den Hauptspeicher IZ
Außerdem können bestimmte Stellen in den LSR 14 auch als indirekte Adressen des Hauptspeichers 12
wirken, und zwar in direkten Zykluszuordnungsoperationen für ein E/A-Gerät, wobei jeder Prioritätsstufe ein
LSR 14 zugeordnet wird. Jedes E/A-Gerät enthält seinen Datenlängenzähler. Die Adreßregister des
Hauptspeichers 12 in den LSRs 14 werden automatisch Ober die ALU 22 auf der Ausgangssammelleitung 20
erhöht, um E/A-Daten auf der Eingangssammelleitung 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.
Durch gemeinsame Benutzung des Mikroinstruktions-Adreßregisters 32 wird zwischen Unterbrechungen auf demselben Datenweg umgeschaltet, der auch für
die Ausführung der Grundinstruktion existiert Der im Mikroinstruktions-Adreßregister 32 entstehende Instruktionsadreßwert wird in die lokalen Speicherregister 14 über die ALU 22, das Totalregister 24, die
Sammelleitung 25, den Ausgabepuffer 26 und die Ausgangssammelleitung 20 gespeichert. So wird bei
einer Unterbrechung der Zeiger auf die nächste Instruktion, die auf der laufenden Programmprioritätsstufe ausgeführt worden wäre, im LSR 14 gerettet Als
nächstes wird die auszuführende höhere Stufe mit Hilfe eines Prioritätscodes ermittelt der im Prioritätscodierer
54 erzeugt wird und eine Adresse im LSR-Ausgabesteuerregister 40 erzeugt. 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 Unterbrechungsstufe enthält. Dieser 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 das Mikroinstruktions-Adreßregister 32 und den Ausgabepuffer 26 gespeichert wird. Von dort wird im
Festwertspeicher 16 die Unterroutine angesteuert, die für die Unte<brechungsstufe auszuführen ist Wenn die
Unterbrechung bedient wurde, wird der laufende Unterhrechungs-Unterroutinenzeiger im LSR 14 gespeichert und der Adreßzeiger für das unterbrochene
Programm wieder von dort geholt
Das Programmregister 30 ist ein Puffer für die ίο laufende Instruktion und hält den Op-Code der
Instruktion, die vom Prozessor 9 ausgeführt wird.
Das Zählfeld oder Adreßfeld von im Programmregister 30 gespeicherten Instruktionen kann direkt auf das
Erniedrigungsregister 38 und das LSR-Ausgabesteuerregister 40 geleitet werden.
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 22 vorübergehend im Totalregister 24 gespeichert und
dann im Ausgabepuffer 26 gepuffert werden, kann auf der Eingangssammelleitung 10 eine Funktion ausgeführt
werden und gleichzeitig eine andere auf der Ausgangs-
Sammelleitung 20 beendet werden. Dinse zweistufige
Pufferung in der Schleife gestattet den überlappten Betrieb.
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.
eine Drehung nach links oder rechts möglich.
so 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.
Das Ausgabepufferregister 26 hat zwei Funktionen. Als Operandenregister für die ALU 22 hält es Daten,
gesteuert vom Mikroprogramm. Außerdem müssen bei einer Unterbrechung, die die Übertragung von Adreßzeigern erzwingt, oder bei direkten Speicherzagriffen
es 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. Treiberl8 <°
Wenn die Ausgangsleitung 28 den Prozessor 9 verläßt, läuft sie zu den Hilfstreibern 18, deren Ausgang
die Ausgangssammelleitung 20 ist In einem hochintegrierten Chip kann jeder Treiber nur eine Last treiben.
Da die Ausgangssammelleitung 20 zu vielen Einheiten oder Lasten führt, muß sie erneut getrieben werden. (Bei
dieser neuen Stromversorgung kann man die Anzahl der entwickelten Kanalleitungen erweitern durch
Codierung der vorhandenen Leitungen für einen oberen oder unteren Pegel während der verschiedenen
Taktperioden eines jeden Mikroinstruktionszyklus der
acht Takte.)
25
Mit dem Erniedrigungsregister 38 wird gezählt, und
zwar in allen Instruktionen zur Verschiebung, Multiplikation, Division, Erniedrigung, Prüfung und Verzweigung. Das Erniedrigungsregister 38 hat Eingangssignale
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ängenoperationen wird jedoch auch das Zählregister 50 als Feldlängenzähler benutzt Dazu braucht man
eine volle, acht Bit große Erniedrigungsfunktion. Dazu läßt man den Inhalt des fünf Bit großen Erniedrigungsregisters 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.
Es adressiert das E/A-Gerät oder diejenige Stelle in
den lokalen Speicherregistern 14, an die die Daten übertragen werden sollen.
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ählregisters 50. Bei jeder Rechenoperation werden die vier Bedingungscodes für nachfolgende feldverbundene
Operationen gesetzt Die vier Bedingungen sind:
binärer Übertrag, Zweierkomplement-Überlauf,
Zweierkomplement minus und der kumulative Ungleich-0-Anzeiger. Wenn dieser Ungleich-0-Anzeiger
einmal in einer Feldlänge gesetzt ist, bleibt er gesetzt,
bis er durch eine Mikroinstmktion verändert wird.
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 heruntergesetzt, 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 Verschieben vorangeschritten ist In vielen Operationen wird dieser Wert daher
zum indirekten Adreßzeiger auf den ROS 16 oder die LSR 14. Das Zählregister 50 kann von der Sammelleitung 25 geladen und sein Inhalt über die ALU 22
verändert werden. Das Ergebnis wird dann in das LSR-Ausgabesteuerregister 40 geladen, um die LSR 14
über die Adreßsammelleitung 21 oder die Eingabe/Ausgabegeräte über die Ausgangssammeleitung 20 anzusteuern.
Für indexierte Adreßberechnungen und die Berechnung effektiver Adressen dient das Zählregister 50 zur
Speicherung positiver oder negativer relativer Adressen kombiniert mit den Daten durch die ALU 22. Das
Ergebnis wird in den lokalen Speicherregistern 40 oder in einem internen Register des Prozessors 9 gespeichert
Register 42 und 48 für reservierten
Bedingungscode bzw. für laufende Bedingungen
Die Ausgabe des »Laufende Bedingung«-Registers 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
das 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 Markierungsbits, die
in Kombination mit den laufenden Bedingungscodes den Inhalt des Registers 48 bilden. Wenn eine
Mikroinstruktion emuliert wird, wird der richtige laufende Mikrostufencode in das Register 42 übertragen, um den Mikrostufenbedingungs-Code der emulierten Sprache auf der Mikrostufe zu erhalten.
Das Unterbrechungsmasken-Register 44 enthält den laufenden Maskenzustand der zulässigen Ünterbre-
chungsstufen. Der Inhalt des Unterbrechungsmasken-Registers
44 kann auch über die ALU 22 verändert, in die lokalen Speicherregister 14 weggespeichert oder
von dort zurückgeholt werden.
Fehlerregister 46
Die beiden wertniederen Bits des Maskenregisters 44 bilden das 1 Byte große Fehlerregister 46, das Fehler
kontrolliert und registriert. So werden beispielsweise folgende Maschinenfehler registriert: Ein Paritätsiehler
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 ι s von einem E/A-Gerät empfangen wurden; eine
Kanalhängebedingung, in der ein Eingabe-/Ausgabegerät weder Daten austauscht noch dem Mikroprozessor
gestattet, zur nächsten Makroinstruktion 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 Prozessor 9 gezwungen, zu einer Unterroutine zu
verzweigen, die entweder die Operation erneut versuchen kann oder die laufende Funktion beendet und
ein Signal an die Bedienungskonsole gibt
Vier-Phasen-Generator 60 und Taktgeber 64,66
Ein Einphasenoszillator 59 ist der Eingang für den Vier-Phasen-Generator 60, der zwei Taktgeber speist,
nämlich den Hilfstaktgeber 64 und den Grundtaktgeber
66. Der Grundtaktgeber 66 ist ein zweiphasiger Taktgeber, de- 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 diesesmal 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 eo 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 Datenaustwiachoperationen ein E/A-Gerät
auf der Einginfssammelleitung 10 festgestellt wird und
versucht. Daten auszutauschen. Wenn die Zeitsperre die
zugeordnete Zeit übersdireitet läuft die Zeit im Hilfstaktgeber 64 ab und stellt Anzeiger im Fehlerregister
46 so ein, daß eine Unterbrechung der höchsten Stufe oder eine Maschinenprüfung eingeleitet wird.
In den F i g. 5 und 1 sind die Zykluszuordnungs- und Unterbrechungsfunktionen gezeigt, wie sie durch die
multiplex geschaltete 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 Unterbrechungsstufen. Jedes E/A-Gerät kann an
jede der sieben mit bestimmten Prioritäten versehene Unterbrechungsanforderungs-Leitung angeschlossen
»erden. 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ätsdecodierer 54, wo die
Anforderung mit der höchsten Priorität in einem Dreibitcode auf den Leitungen 541, S42, 544 codiert
wird und eine der acht verschiedenen Prioritätsstufen bezeichnet Die Priorität der Unterbrechungen wird
außerdem durch das Unterbrechungsmasken-Register 44 gesteuert.
Wenn die Maske im Unterbrechungsmasken-Register 44 so gesetzt ist daß sie die Unterbrechung erlaubt,
dann lassen UND-Glieder im Unterbrechungstor 52 die Unterbrechungs-Signale zum Prioritätsdecodierer 54
passieren, um den Code der gegenwärtig anfordernden Prioritäten zu setzen. Diese Unterbrechungspriorität
wird in der Unterbrechungsprüfschaltung 58 für eine höhere Unterbrechungsstufe mit der laufenden Unterbrechungsstufe
verglichen, die in dem 3 Bit großen Unterbrechungsregister 56 für die laufende Stufe
gespeichert ist Der Inhalt des Registers 56 wird kontinuierlich mit jeder neuen Stufe vom Prioritätsdecodierer
54 daraufhin verglichen, ob der neue Code höher ist als der laufende. Wenn das der Fall ist, wird die
nächste Instruktion in der laufenden Kette nicht ausgeführt sondern stattdessen der Adreßzeiger im
Instruktionsadreßregister 32 in die Stelle für die laufende Stufe in den lokalen Speicherregistern 14
übertragen. Der neue oder höhere Stufenzeiger wird dann aus den Speicherregistern 14 in das Instruktionsadreßregister 32 gesetzt
Die Adresse für die Unterbrechungsroutine 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-Ausgabesteuerregisters
40 gegeben. Die Einschaltleitung 73 für die laufende Unterbrechungsstufe lädt die werthohen
Leitungen 834,835 mit den übrigen Bits der Adresse im LSR-Ausgabesteuerregister 40, um den unterbrochenen
Zeiger in die LSR 14 zu speichern. Der neue Zeiger auf d:°. Unterbrechungsregister in den LSR 14 wird auf
ähnliche Weise in das LSR-Ausgabesteuerregister 40 geladen, und zwar auf den werthohen Eingangsleitungen
834, 835 von der Ladeleitung 72 für die neue Unterbrechungsstufe und auf den wertniederen Leitun-
gen 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ätsdecodierers 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 ROS 16
enthält. Der Adreßzeiger kommt auf der Ausgangssammelleitung 20 vom Instruktionsadreß-Register 32 an und
läuft über das lokale Speicherregister 14 durch die ALU 22 zum Totalregister 24. Wenn die Unterroutine der
neuen Unterbrechungsstufe fertig ausgeführt ist, wird eine Verzweigungsausgangs-Instruktion gegeben und
dadurch der Zeiger auf das ursprünglich unterbrochene Programm zurückgestellt. Da die die Unterbrechung
bedienende Unterroutine auch die Unterbrechung zurückstellt, sollte die Anforderung für dieselbe
Unterbrechung nicht vorhanden sein. Wenn auf derselben oder einer höheren Stufe eine weitere
Unterbrechung ankommt, kehrt das Programm nicht zur ursprünglichen Programmposition zurück, sondern
behandelt die neuere Unterbrechungsanforderung. Dadurch ist eine volle Verpflichtung bis zu 8
Unterbrechungsstufen möglich. Außerdem können für jede Stufe mehrere Unterstufen existieren. Wenn
einmal eine gegebene Unterbrechungsstufe erkannt ist, wird an alle E/A-Geräte ein Unterbrechungsstufen-Statuswort (ILSW) gegeben, und eines der 16 Geräte, das
gegenwärtig die Bedienung auf einer bestimmten Unterbrechungsstufe anfordert, muß sich identifizieren.
(Auf diese Weise kann man für jede der 8 Stufen 16 Unterstufen bekommen, insgesamt also Unterbrechungen auf 128 Unterstufen.) Mit dem in einem Register des
Prozessors 9 empfangenen Unterbrechungsstufen-Statuswort kann man feststellen, welches der 16 Geräte auf
der betreffenden Stufe die Bedienung anfordert Das geschieht mit Hilfe einer Linksschiebe- und Zählinstruktion. Das erste Bit in der werthöchsten Position stoppt
diese Instruktion und die verbleibende Zahl im Zählregister 50 gibt die Positron der Unterroutine für
das betreffende Gerät an.
Die gemeinsame Rufleitung 53 dient auch der Zykluszuordnung, muß jedoch erst von Unterbrechungsanforderungen befreit werden. Durch ein eine
Zykluszuordnung anforderndes Gerät wird das Potential der Zuordnungsanforderungs-Leitung 68 auf einen
logisch negativen Pegel gesetzt Wenn ein Signal auf dieser Leitung einmal die Aufrufzyklus-Zuordnungsverriegelung 75 verriegelt hat kommt sofort ein Signal auf
der Leitung 77 hoch. Dadurch werden die Geräte aufgefordert ihre Unterbrechungsanforderungen von
der gemeinsamen Rufleitung 53 zu nehmen, bis die Zykluszuordnungsfunktion abgeschlossen ist Sobald
alle Geräte ihre Signale von der Unterbrechungsanforderungs-Leitung 70 und der Zuordnungsanforderungs-Leitung 68 genommen haben, wird die Zykluszuordnung-Bestätigungsverriegelung 76 im nächsten Takt 0
verriegelt und damit angezeigt, daß die gemeinsame eo Rufleitung 53 durch die Zykhiszuordmingspriorität für
das anfordernde Gerät hat, die unter Umgehung des Unterbrechungstores 52 direkt in den Prioritätscodierer
54 geht Dadurch kommen 3 Bits einer LCO-Prioritätsadresse aus dem Prioritätscodierer 54 und werden am
UND-Glied 82 über die Leitung 78 (getaktete Ausgabe der Zykluszuordnungs-Bestätigungsverriegelung 76) in
das LSR-Ausgabesteuerregister 40 geleitet, zusammen
mit den fixen werthöheren Adreßzeigerbits im LSR 14
für die Zykluszuordnungsstufe, die als Adresse des Hauptspeichers 12 benutzt wird. Damit speichert oder
liest man Daten im Hauptspeicher 12 unter voller Steuerung des E/A-Gerätes soweit, daß nur das obere
oder untere Byte gesetzt wird (anstelle der 2 Bytes im Halb wortbetrieb). In dieser Betriebsart bleibt das
Unterbrechungsregister 56 für die laufende Stufe ungestört, weil die Unterbrechungsstufe (Programmstufe oder eine höhere ausgeführte Stufe) gerade um die
Unterbrechung dieser einen Zykluszuordnungsinstruktion verzögert wird. Ein Speicherzugriff wird anfangs
durch einen Zeiger vom LSR-Ausgabesteuerregister 40 adressiert. Er enthält die 3 wertniederen Bits, die
angeben, welche der 8 Zykluszuordnungsstufen gegenwartig 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 Zykluszuordnungsregister in den
lokalen Speicherregistern 14 zurückgeschrieben werden oder ein Rückschreiben kann durch das Bestätigen der
E/A-Geräte verhindert werden, so daß die Zylduszuordnungsadresse unverändert bleibt Nach einer Zugriffszeit werden Daten aus dem Hauptspeicher 12 auf die
Eingangssammelleitung 10 ausgelesen, wenn das E/A-Gerät die Auslesewahl des Hauptspeichers 12
gestattet und die Schreibimpulse sperrt, die 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 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 E/A-Geräten an der Ausgangssammelleitung 20 zur Verfügung
gestellt Die Daten werden im Lesebetrieb aber nur von dem E/A-Gerät aufgenommen, das den Zykluszuordnungsstufen-Code auf der Adreßsammelleitung 21
erkennt Der Prozessor 9 kehrt dann in die normale Instruktionsausführung oder in die Unterbrechungsroutinen-Verarbeitung zurück, die für diesen einen Zyklus
des direkten Speicherzugriffs oder der Zykluszuordnung ausgesetzt wurden.
Im Zusammenhang mit 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.
Der Taktzyklus ist in acht verschiedene Zeiten, Takte
0 bis 7 unterteilt Die Takte 8 bis 15 sind Wiederholungen der Takte 0 bis 7 und sie erscheinen nur während
einer Operation im Hauptspeicher 12 einschließlich der direkten Speicheradressierung- Die Grundinstruktionszeit von acht Takten wird in 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ßzeiger von der ALU 22 in das Totalregister 24 geladen und in das
Ausgabepufferregister 26 übertragen wird. Diese Adresse bleibt bis zum folgenden Takt 0 unverändert,
wenn der Inhalt des Ausgabepufferregisters 26 so ι s geändert wird, daß das Register dann die Daten
entweder für das lokale Speicherregister 14 oder ein E/A-Gerät an der Ausgangssammelleitung 20 enthält
Der Takt 0 beginnt jede Mikroinstruktion durch Laden der Instruktion aus dem Festwertspeicher 16 in
das Programmregister 30. Durch diese Pufferung im Programmregister 30 kann die Instruktion ausgeführt
werden, während im Takt 3 die Adresse im ROS 16 gemäß obiger Beschreibung verändert wird, um die
nächste Mikroinstruktion zu adressieren.
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 diese 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 Hilfstreiber 18 direkt
in die Stelle der lokalen Speicherregister 14 geschrieben, die durch die Signale auf 6 Leitungen des «0
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 Ausgabepufferregister 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 Eingangssam- so
melleitung 10 in die CPU 9 gelangen, müssen während der Taktzehen 3,4,5 und 6 an der ALU 22 ankommen
und gültig sein. In diesem Zeitraum führt die ALU 22 die durch die ausgeführte Instruktion angegebene Verarbeitung durch. Aus demselben Grund werden Daten von
den LSR's 14 zur Verarbeitung durch die CPU 9 während der Taktzeit 2 auf die Eingangssammelleitung
10 gesetzt Während der für Signalverzögerung sorgenden Taktzeh 3 stehen die Daten für die
ALU-Funktion zur Verfügung.
Daten von den lokalen Speicherregistern 14 werden zuerst zur Taktzeit 2 auf die Eingangssammelleitung 10
gesetzt und erst zu Beginn der Taktzeh 3 an die ALU 22 weitergeleitet, wefl diese während der Takte 7 bis 2 mit
der Fbrtschreibung 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 Mikroinstrukiionen, 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
F i g. 2). Zu dieser Zeit werden Daten vom Hauptspeicher 12 schließlich in das angegebene Register der CPU
9 gesetzt oder an ein E/A-Gerät gesendet In diesem Fall (nach jeder Adressierung des Hauptspeichers 12
durch eine Instruktion) wird keine neue Instruktion in das Programmregister 30 im folgenden Takt 0 geleitet,
da sie bereits im vorhergehenden Takt 8 der 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 weitere 4
Taktzyklen vom Hilfstaktgeber 64 vorgesehen werden, wenn die Verzweigungsadresse zur Taktzeit 7 geladen
wird. Damit ist zusätzlich Zeit für die Adressierung des ROS 16 gegeben, da bei jeder Verzweigung die
'vorberechnete Vorausschauadresse von der vorhergehenden Instruktion verändert wird. Solche Verzweigungen sind eine bedingte Verzweigung, eine Mehrweg-tabellenverzweigung bei der Decodierung eines OP-Codes von einer emulierten Zielsprache oder eine
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 (Takte 3 bis 6) auf gleich, größer
oder 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,
230232/298
läuft die nächste adressierte Instruktion ohne Verzögerung weiter. Wenn jedoch eine Instruktion übersprungen
wird, nimmt der Grundtakt 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
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
20
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-Instruktionen
und den Mikroprozessor-Instruktionen unterschieden wird.
Allen Instruktionen gemeinsam ist ein Paritätsbit in
der werthöchsten Bitposition (Bit 0) und ein 3 Bit großer Operationscode (Bits 1 bis 3). Die übrigen Bits sind in
Felder unterschiedlicher Länge aufgeteilt, deren Art und Funktion von der jeweiligen Instruktion abhängen. Da
es nur 8 verschiedene Operationscodes gibt, unterschei den sich einige Instruktionstypen durch die Decodierung
zusätzlicher Modifizierbits. Die meisten Instruktionen sind hochcodiert und geben viele verschiedene
Operationen an, von denen eine Anzahl nacheinander ausgeführt wird. Diese aufeinanderfolgenden Operationen werden durch einen sehr eng entwickelten Satz von
Zeitmustern coordiniert, wie sie in den Fig.2 bis 4
dargestellt sind.
Im Zusammenhang mit den Fig.2 bis 4 werden
anschließend die 11 Instruktionsgrundkategorien beschrieben. In den Zeittabellen werden die Register wie
folgt mit den Symbolen bezeichnet;
50
55
60
65
Symbole | Register |
A | Akkumulator |
B | Eiwciterdngsregisler |
T | Totalregister |
P | Programmregister |
U | Instruktionsadresse |
N | Zählregister (Schiebezähler) |
M | Ausgabepufferregister (Ausgangssammel |
leitung) | |
I/O | Eingabe-/Ausgäbegerät |
E | Fehlerregister |
I | Unterbrechungsmasken-Register |
C | Register für laufenden Bedingungscode |
PCC | Register für reservierten Bedingungscode |
L | -Lokale Speicherregister |
Instruktionen | Mnemonic | Operations |
code | ||
Steuerung | CO | 000 |
Logisch Schreiben | LW | 001 |
Logisch Schieben | LS | 001 |
Zahl logisch bewegen | LM | 001 |
Daten verändern | MD | 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 | Ul |
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,
wahrend 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 des ROS16. Die 4 Bit große Seite im ROS16
ist eine intern innerhalb des Instruktionsadreß-Registers 32 angegebene Seite. Dieses Seitenregister wird
benutzt, sobald über die 4 K-Grenzen der direkt adressierbaren Instruktionsstellen im ROS 16 hinaus
verzweigt werden muß. Die ALU 22 erhöht hinter den 4 K-Grenzen durchgehend bis zu 64 K Halbwörtera des
ROS 16. Die Unterbrechungsschalterzeiger liefern auch eine volle 16-Bit-Adressierung und nicht nur die
Adressierung von !2 Bits. Daher kann man volle 64 K
Komplemente der Instruktionen adressieren.
Andere Steuerinstruktionen steuern die vier Kennzei chenbits. Das sind die vier niederen Bits des laufenden
Bedingungsregisters 48, die zusammen mit den vier Bedingungscodes das nkhtverbundene obere Byte des
Zihh-egisters 50 bilden. Die Kennzeichenbits können vom Programmierer für verschiedene Anzeigen gesetzt
und alt Schaker in der Unterroutine benutzt werden. Sie
können zusammen roh den Bedmgungscodes und dem unteren Byte des ZiMregisters 50 zur Unterbrechungsumschahung 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 bit und den binaren Obertrag, 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 Linksverschiebung, 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 abertragen« (KLSRX 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-Ausgabesteu
erregister 40 geladen. Der Inhalt des Ausgabepufferre
gisters 26 wird in das Register 0 der lokalen Speicherregister 14 geladen.
Die Steueroperationen »Unterbrechungsmaske setzen« (KILM), liefert die Unterbrechungsmaskenbits für
das Unterbrechungsmasken-Register 44, wobei ein Einer-Bit in einer Bitposition einer Unterbrechung für
die entsprechende Stufe einschaltet Ein Einer-Bit im Instruktionscode gibt an, ob die Unterbrechungsmaskenbits zu retten oder zu setzen sind.
Steueroperationen sind vorgesehen, um die Seiteneinteilung des Festwertspeichers 16 zu schalten. KLAP
hat ein Feld zur Bezeichnung der Seiten 0 bis 15 und KRAP bezeichnet die Seite im Festwertspeicher 16.
Jede Seite stellt 4096 Halbwörter dar.
Die Steueroperation für die Tabellenverzweigung gibt das Register oder den Registerteil an, deren Inhalt
exklusiv oder mit dem Inhalt des Mikroinstruktionsadreß-Registers 32 zu verknüpfen oder zu diesem zur
nächst folgenden Adresse im ROS 16 zur Ausführung zu
verbinden ist Diese Instruktionen sind nachfolgend
aufgeführt
Mnemonic
Mit den Steueroperationen Ausgangsverzweigung (KILB) wird der Inhalt des Instruktioasadreßregisters
p 32 in die lokalen Speicherrer 14 für die laufende Untbechg übertragen, die laufende Unterbrechung
zurückgestellt, eine neue Unterbrechung abgefragt und der Inhalt der Stelle für die neue Uaterbrechungsstuf e
im lokalen Speien er HindasMikroinstruktionsadreß-Regiiter 32 übertragen.
Die Steueroperation KSEE fiefert drei jeweils 2 Bit
große Felder (Π, EE and SS) and gibt damit den
oder Abfragen der UnterbnchuBg and dans Abschalten
weilerer TTnlffifif whutHTiijl i\nt VfMriltfliirif und die
ByteadresK im Hauptspeicher 12 an (Keine Veränderung; Rückstellung oder Byte-Setzen-Modus).
Der Code 01 in einem oder mehreren Unterbrechungscodes (II), im Fehlerbetrieb (EE) und in den
Hauptspeicherbyteadreßfeldern (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-Steuerinstraktion gerettet oder gemäß der nachfolgenden
Tabelle ersetzt wird. Wenn der Steuercode Π oder EE
oder SS lautet, definiert die KSIE-Steuerinstruktion die
Operationen, die durch den Unterbrechungscode-Betrieb, den Fehlerbeifieb oder dsa Hauptspeicher-Byte-Adreßbetrieb angegeben sind.
Mnemonic | lnstruktionsc |
ΚΡΙΕ | IIEEOl |
KPSI | HOlSS |
KCSE | OIEESS |
KTPI | ΠΟΙΟΙ |
KCPS | OIOISS |
KCPE | OlEEOl |
Zurückgestellt reservierter Bedingungscode (kein Überlauf) Zurückgestellt reservierter Bedingungscode (alle)
ODER-Code für laufende Bedingung zum reservierten Bedingungscode und Rückstellen laufender Bedingungscodes
Rückstellen des laufenden Bedingungscodes und des reservierten Bedingungscodes (kein Überlauf)
Übertrag des laufenden Bedingungscodes in den reservierten Bedingungscode und Rückstellen des laufenden Bedingungscodes
Übertrag des laufenden Bedingungscodes in den reservierten Bedingungscode (ausgenommen. ODER-Überlauf) und Rückstellen des laufenden
Bedingungscodes ;
Die Steueroperation KNTC fibernimmt 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 auf ungerade
gestellt Die Steuerinstruktion KPCC übernimmt eine direkte Übertragung des reservierten Bedingungscodes
in den laufenden Bedingungscode. Die Steuerinstruktion KSCC gibt an, ob der Inhalt des laufende Bedingungscoderegister 48 zu retten ist oder einzustellen ist und
gibt die zu rettenden oder einzustellenden Positionen
an: Übertrag-Borger, Überlauf, Minus, kummulativ, Nicht-Null oder Kennzeichen 1 bis 4.
Die Instruktionen »logisch Schreiben« (LW) und »Speicherabruf« (FS) bilden die Gruppe der Hauptspeicherinstruktionen. Mit diesen Instruktionen können
Daten aus dem Hauptspeicher 12 gelesen und in vier interne Datengrundregister gesetzt werden, in das
Akkumulatorregister 34, in das Akkumulator-Erweiterungsregister 36, in das Zahlregister 50 und in das
Ausgabepuff erregtster 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. pie 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 evzeugt werden, indem man zu einem angegebenen Zeiger die
positive oder negative relative Adresse im Zählregister 50 addiert.
Für die Speicherinstruktionen kann die Halbwortoder Byteadressierung angegeben werden. Da die
Instruktionen nicht immer auf Halbwortgrenzen ausgerichtet sind, ist im erfindungsgemäßen Mikrocomputer
zur. leichteren Emulation 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ß z. B. der Instruktionsoperations-Code immer im unteren Byte erscheint.
Wie bereits gesagt wurde, besteht keine direkte Datenbahn von der CPU 9 zum Hauptspeicher 12, weil
die Ausgangssammelleitung 20 als Adreßsammelleitung
für den Hauptspeicher 12 benutzt wird und daher für
Daten nicht zur Verfügung steht Die Eingangssammelleitung 10 ist nur bezüglich des Hauptspeichers 12
bidirektional. Bezüglich der CPU 9 ist sie nicht
bidirektional, weil auf dem Chip Platz gespart werden muß. Die Ausgangstreiber, mit denen Daten auf die
Sammelleitung 10 gesetzt werden sollen, brauchen viel
Platz und elektrische Leistung und sind daher nicht auf dem Chip integriert.
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 (Se 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 Speicherregister 14, Position 1, erhaltenen Daten
ausgeführt die auf die Eingangssammelleitung 10 gegeben wurden. Als Option kann der Adreßveränderungscode (2 Bits des OP-Code) auf die Eingangssammelleitung 10 gegeben werden, und dann wählt er nur
das hohe oder nur das niedrige Byte zum Schreiben in den Hauptspeicher112. 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 Ausgabepufferregisters 26 gewählt.
3! 32
LogischesSchreibenvonLSRObiseSadressiert &JL£f ^f* ° ^ ^* *&u mtdk des
überErweitenin«repi<!teri6 Akkumulator-Erweiterungsregisters 36 benutzt wfrd
uberbrweiterungsregister36 ^ & ^^,„, Adreßübertragung auf der Aus-
ersten dadurch, daß die in den Hauptspeicher 12 zu 5 Inhaltes des Ausgabepufferregisters 26 in die Stellen 1
schreibenden Daten von einem gewählten lokalen bis63desLSR14oderderAdreßfortschreibungaufder
adresse für den Hauptspeicher 12 vom Akkumulator-Er- wirkt
ebenso zur Verfügung. Der Inhalt des Akkumulator-Erweiterungsregisters
adressiert durch dasselbe LSR 0 bis 63 u*f Tl W"? ^andenadresse verändert,
bevor der Inhalt des Ausgabepufferregisters 2(5 (nidit
ersten logischen Schreibinstruktion nur dadurch, daß schriebene Wert des Ausgabepufferregisters 26 wird in
derselbe Code des LSR 14 (0 bis 63), der das das Akkumulator-Erweiterungsregister 36 zuirückge-
63), das die in den Hauptspeicher 12 zu schreibenden eher 12 begonnen. Bevor die Daten vom Hauptspeicher
Logisches Schreiben von E/A-Gerät I bis 63 JSFT1S V°rgf "S,111111?11"111" der Voraussetzung,
adressiert durch daß ώβ Wahl vom 1^11 zwlscilf>n 1"«»63 liegt und nicht
AkkumulatEititSe I^SZ ü* ^M^^^-Adreßregisters
6 32 wird in das gewählte LSR 14 geschrieben. Schließlich
beschriebenen zweiten nur dadurch, daß die in den Eingangssammelleitung 10 geschaltet, um wie bei der
ten E/A-Gerät (1 bis 63) auf die Eingangssammelleitung gister 34, das Akkumulator-Erweiterungsregister 36, das
10 geliefert werden. Ausgabepufferregister 26 oder das Zählregister SO/Feh-
Die Speicherabruf-Instruktionen (FS) sind für den von der Stelle 0 im LSR 14 selektiert
Halbwortbetrieb ausgelegt Wie die Halbwortadressie- , . „ . . . „,
rung durch die Speicherbyteadressierung ersetzt wird, Uden vom Speicher m E/A-Geräte
ist in den Steuerinstruktionen beschrieben (laufende 35 (Halbwortadressierung)
44+Fehler 46 werden immer zusammen im Bytebetrieb dadurch, daß das Mikroinstruktions-Adreßregiister 32
benutzt und das obere Byte wird bei einem Speicher- vom Akkumulator-Erweiterungsregister 36 oder von
abrufbefehl nicht genullt). der Stelle im LSR 14 selektiert werden kann, die dem
mit Adresse LSR 14 (Halbwort-Adreßbefehl f rät gleich ist Die Hauptspeicherdaten werden in das
v - Ausgabepufferregister 26 (nicht LSRO) gesetzt und von
0±l oder OR 1 verändert, bevor der Inhalt des 45 finden keine weiteren Übertragungen statt Das Gerät 0
ferregisters 26 im gewählten Register im LSR 14 werden außerdem von der Stelle 0 im LSR 14 gewählt
fortgeschrieben. Der Hauptspeicher 12 wird anschlie- 50 A .. .
register 34, das Akkumulator-Erweiterungsregister 36, arithmetischen und logischen Instruktionen die Instruk-
das Ausgabepufferregister 26 oder das Zählerregister tionen »Daten modifizieren« (MD) und »Operand
50/Fehlerregister 46 geleitet Das Unterbrechungsmas- 55 modifizieren« (MO). Zu den arithmetischen Instruktio-
ken-Register 44 und das Fehlerregister 46 können durch nen gehören die »Addition mit und ohne Übertrag«
die KSIE Steuerinstruktionen anstelle des Bedingungs- sowie die »Substraktion«. Sie können in Zweier-Kom-
registers 48 und des Zählregisters 50 gewählt werden. plementform oder in dezimalgepackter Form ausge-
(Das Zählregister 50/Fehlerregister 46 hat nur das führt werden (ohne Vorzeichen einstellig in jeweils Hex.
niedere Byte). Die Stelle 0 in den LSR's 14 wählt die eo 4 Datenbits). Die arithmetischen Funktionen können im
indirekte Adressierung des LSR 14 vom Operanden der Prozessor 9 zwischen den internen Registern ausgeführt
wertniederen sechs Bits im Zählregister 50. Außerdem werden (Akkumulatorregister 34, Akkumulaitor-Er-
werden die Originaldaten vom Ausgabepufferregister Weiterungsregister 36, Zählregister 50 und Ausgabe-
26 von der Stelle 0 der LSR 14 gewählt pufferregister 26). Außerdem können das Akkumulator-
36 arithmetisch mit einem der 64 lokalen Speicherregi-
gend beschriebenen dadurch, daß das Ausgabepufferre- der lokalen Speicherregister 14 oder im Akkumulator-
Erweiterungsregister 36 gespeichert werden kann. Alle
in den genannten Registern des Prozessors 9 ausgeführten arithmetischen Instruktionen können im Halbwortbetrieb, auf den oberen Bytes, den unteren Bytes, alleine
oder auf den wertniederen 4 hex. Bits ausgeführt werden. Die anderen Bits bleiben in jeder Konfiguration
unverändert
Zu den logischen Instruktionen gehören »UND«, »ODER« und »Exklusiv-ODER«. Wenn diese Operationen auf den internen Registern alleine ausgeführt
werden, wie im Rechenbetrieb, können sie in den hex.
niederen 4 Bits, dem unteren Byte, dem hohen Byte oder
im Halbwortbetrieb ausgeführt werden. Ähnliche Funktionen können ebenso mit den lokalen Speicherregistern 14 ausgeführt werden. AUe diese logischen
Funktionen von außen nach innen bzw. innen nach außen, können jedoch nur im Halbwortbetrieb ausgeführt werden.
20
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 angegebenenes lokales
Speicherregister 14 kann außerdem mit dem Inhalt des AkkumulatorrErweiterungsregisters 36 verändert werden, wobei der Inhalt des Akkumulator-Erweiterungsregisters 36 unverändert bleibt und das Ergebnis kann in
das selektierte lokale Speicherregister 14 gesetzt werden. Außerdem kann jedes Eingabe/Ausgabegerät
zur Lieferung von Daten auf die Eingangssammelleitung 10 selektiert werden. Diese Daten können mit den
Daten im Akkumulator-Erweiterungsregister 36 verändert und das Ergebnis in dasselbe Eingabe/Ausgabege-
rä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 w gesetzt ist, werden auf der Eingangssammelleitung 10
null Daten produziert Mit der ODER-Funktion wird eine Verschiebung vom Akkumulator-Erweiterungsregister 36 in das Ausgabepul ferregtster 26 vorgenommen
und mit er 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 dezimalge- so
packt mit Borgen (es kann nicht von einem selektierten lokalen Speicherregister 14 oder einem Eingabe-/Ausgabegerät subtrahiert werden, außer umgekehrt), UND,
ODER und Exklusiv-ODER Bei Angabe der Position 0 im lokalen Speicherregister 14 wird die indirekte
Adressierung des lokalen Speicherregisters 14 oder des Eingabe-/Ausgabegerätes von den wertniederen sechs
Bits des Zählregisters 50 selektiert
Mit den Instruktionen »Operand modifizieren« (MO) kann der Inhalt des Akkuimulatorregisters 34 mit dem
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 werden. Wenn der Inhalt des Akkumulator-Erweiterungsregisters 36 null ist, wird durch eine ODER-Funktion mit
LSR 14, Stelle 0, (Ausgabepufferregister 26) eine Bewegung des Inhaltes des Ausgabepufferregisters 26 in
das Akkumulator-Erweiterungsregister 36 und in LSR 14, Positionen 1 bis 15 ausgelöst Die Modifizierfunktionen unterscheiden sich von denen der Instruktionen 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 Zahlregister 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 w.enn das hohe
Byte des Zahlregisters 50/Fehlerregister 46 nicht existiert Nach Beendigung jeder der obigen Funktionen
kann ein Halbwort- Hilfsergebnis (hohes 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.
In Fig.4 ist gezeigt, daß die Schiebeoperationen
bitweise nach links oder rechts erfolgen können. Die Länge der Verschiebung hängt von der Länge des
Registers ab. Der Inhalt des Akkumulatorregisters 34 und seines Erweiterungsregisters 36 kann jeweils
zwischen einer und 16 Positionen verschoben werden. Für die Multiplikation und Division, bei denen eine
doppelte Genauigkeit erforderlich ist, wird das Akkumulatorregister 34 zum werthohen Register des
Akkumulator-Erweiterungsregisters 36, und sie bilden zusammen ein gekoppeltes 32 Bit großes Register,
dessen Inhalt auf eine der folgenden Arten zwischen einer und zweiunddreißig Positionen verschoben
werden kann. Die Arten sind: Arithmetische Rechtsverschiebung, Linksverschiebung und Zählung, logische
Linksverschiebung, logische Rechtsverschiebung, Linksverschiebung und Drehung und Rechtsverschiebung
und Drehung. Schnellere Operationen, die einer Drehung von 8 Positionen der 16 Bit roßen Register
äquivalent sind, auch Byteverdrehungen genannt, können in einem Mikroinstruktionszyklus ausgeführt
werden.
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äMregister 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 Übertrag oder Borger, wird in das werthohe
Byte weiterleitet Für das Zählregister 50/Fehlerregister 46 sind die kombinierenden Funktionen ODER,
UND, Load ADD. Für die Funktionen Addieren oder Subtrahieren werden die direkten Bytedaten um Eins
erhöht oder erniedrigt und hereinkommende Überträge
mit einem neuen Bedingungscodesatz ignoriert
Bedingter Sprung
Nach Darstellung in F i g. 4B wird die Sprunginstruktion ausgeführt, wenn eine Prüfung falsch ist Die gegen
ein Maskenbyte in der Instruktion auf den wertniederen 8 Bits eines selektierten Registers ausgeführten
Prüfungen sind folgende: Maske = unteres Byte, Maske größer als unteres Byte, Maskenbits werden auf
eingeschsltete Bits im unteren Byte geprüft und übrige nicht selektierte Bits werden ignoriert, 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.
Logische Bewegung von Zahlen
Verzweigungsoperationen
Zu den Verzweigungsoperationen gehören die bedingte und die unbedingte Verzweigung. Sie können
zu jedem 4K-Bereich des Festwertspeichers 16 vorgenommen werden. Wenn man den Inhalt des
Mikroinstruktions-Adreßregisters 32+1 in eines der lokalen Speicherregister 14 vor einer unbedingten
Verzweigung speichert, wird eine Verzweigungs- und Verbindungsoperation ausgeführt Wenn man umgekehrt
die so in den lokalen Speicherregistern 14 gespeicherte Adresse nimmt und diesen Adreßzeiger in
das Mikroinstmktions-Adreßregister 32 zurücksetzt, kehrt man zu der Unterroutine zurück, von der die
Verzweigung und Verbindung ursprünglich ausging.
Zu einer zweiten Gruppe von Verzweigungsinstriktionen gehört die Mehrfach-Tabellenverzweigung. Diese
kann auf den wertniederen vier hex. Bits in Prozessorregistern, auf den nächsten vier Zonen-Bits
unter Ignorierung der vier oder sechs wertniederen Bits oder auf allen acht Bits vorgenommen werden. So erhält
man eine Verzweigung mit 256 Zweigen zu einer vollständigen Tabelle, aus der ein acht Bit großer
OP-Code durch eine unbedingte Verzweigungsinstruktion aus der Tabelle herausdecodiert werden kann.
Eine dritte Gruppe von Verzweigungsinstruktionen liefert die vorgezeichnete relative Adreßverzweigung
bei sechzehn 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
buierend auf der Erhöhung des Inhaltes de> ZlhlrcfUten M um 1 oder 16. Verzweigt wird, wenn
das Ergebnis lauter Nullen oder nicht lauter Nullen enthalt, wenn dte vier wertniederen Bits alle 0 oder nicht
0 sind, wenn die vier wertniederen Bits alle 1 oder nicht site 1 «ad. wten die vier werthohen Bits alle 1 oder nicht
alle 1 lind
Die in Fig.3B dargestellten Instruktionen zur
logischen Bewegung von Zahlen (LM) bewegen selektiv den Inhalt eines angegebenen Registers 1 bis 63 in den
lokalen Speicherregistern 14 in das Mikroinstruktions-Adreßregister
32, das Akkumulatorregister 34, das Akkumulator-Erweiterungsregister 36 oder die kombinierten
Register 48 für die laufende Bedingung und das
ίο Zählregister 50. Während dieser Übertragungen kann
der Wert um 0, —1 oder +1 verändert werden (Bewegungen von Einzelbytes in das Akkumulatorregister
34 oder das Akkumulator-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ßregisier 32, Akkumulatorregister 34, Akkumulator-Erweiterungsregister
36 oder Bedingungsregister 48 und Zählregister 50 kombiniert in eine gewählte Stelle 1 bis
63 der lokalen Speicherregister 14 mit einer Modifikation
um 0, +1 oder — 1 bewegt werden (Bewegung 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-Erweiterungsregister 36 angeben.
Bei Bewegungen zwischen diesen beiden Registern und dem angegebenen Register in den lokalen
Speicherregistern 14 wird keine Modifikation vorgenommen. Der Wert des Mikroinstruktions-Adreßregisters
32 besteht aus einer sechzehn Bit großen Adresse für den Festwertspeicher 16. Das Bedingungsregister 48
kann nur als oberes Byte der Kombination des Bedingungsregisters 48 mit dem Zählregister 50
selektiert werden, wenn keine Erhöhung oder Erniedrigung angegeben ist Das Unterbrechungsmasken-Register
44 und das Fehlerregister 46 werden ebenso als Ersatz für das Bedingungsregister 48 und das Zählregister
50 gewählt, wenn sie durch eine früher 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
so beiden Registern bewegt werden von oder zu der Stelle 0 der lokalen Speicherregister 14.
Eingabe/Ausgabe
Eine direkte Eingabe/Ausgabe-Instruktion als solche
gibt es nicht Direkte programmgesteuerte Datenübertragungen oder Steuernachrichten von oder zu einem
E/A-Gerät werden durch die Instruktionen Speicherabruf, Speicher Schreiben, Daten modifizieren und
durch Steuerinstruktionen ausgeführt
Die Speicherabrufinstruktion überträgt Daten vom Hauptspeicher 12 an ein E/A-Gerät über das interne
Ringsammelleitungssystem mit den Abschnitten 23,25, 28. Die logische Schreibinstruktion übertragt Daten
di.ekt 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 Datenmodifikation bringt Daten von einem E/A-Gerät,
läßt die ALU 22 die Daten mit dem Operanden im Akkumulator-Erweiterungsregister 36 bearbeiten und
gibt das Ergebnis über das Ausgabepufferregister 26 an das E/A-Gerät zurück. Mit einer Steuerinstruktion
können Daten an · ein Gerät entweder von einem angegebenen LSR 14 (0 bis 15) oder von einem direkten
Datenfeld in der Instruktion ausgegeben werden. Andere Steuerinstruktionen können Daten von einem
E/A-Gerät in das Akkumulatorregister 34, das Akkumulator-Erweiterungsregister 36 oder eines der Register 0
bis 15 im LSR 14 übertragen.
In jedem Fall wird die Geräteadresse, entweder direkt im Adreßfeld durch die Instruktion angegeben
oder indirekt als Inhalt des Zählregisters 50, an das E/A-Gerät über die Adreßsammelleitung 21 und die
Ausgangsleitung 41 übertragen, die auch zur Adressierung der LSR 14 benutzt werden. Die Übertragung wird
durch zwei Austauschsignale synchronisiert Diese Signale gestatten zusammen mit dem Haltetakteingangssignal den asynchronen Betrieb der E/A-Übertragungen, unabhängig von der Leitungslänge und den
Betriebsverzögerungen des Gerätes.
Claims (1)
1. Schaltungsanordnung zur vereinfachten Zuteilung von Mikroprozessorzyklen an Eüv/Ausgabean-
forderungen mit einem auf einem Halbleiterchip integrierten Mikroprozessor, mit einer arithmetisch/
logischen Einheit und den zugehörigen Operandenregistern sowie einem Resultatregister, einem
Mikroprogrammspeicher, der intern überlappt ab- to laufende Operationen gestattet, Eingangs- und
Ausgangsschaltungen sowie Leitungen zu dem Hauptspeicher, den Registern und Eingabe-/Ausgabegeräten außerhalb des Halbleiterchips, einem die
auf dem Chip befindlichen Baueinheiten verbinden- is
den Ringsammelleitungssystem, einer Takt- und Zeitsteuerung sowie eine Prioritätssteuerschaltung
zur priorkätsgerechten und zeitlichen Steuerung der ankommenden Ein-/Ausgabeanforderungen und der
dazugehörigen ablaufenden Operationen, gekennzeichnet durch folgende Merkmale:
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US05/754,193 US4181934A (en) | 1976-12-27 | 1976-12-27 | Microprocessor architecture with integrated interrupts and cycle steals prioritized channel |
Publications (2)
Publication Number | Publication Date |
---|---|
DE2756768A1 DE2756768A1 (de) | 1978-06-29 |
DE2756768C2 true DE2756768C2 (de) | 1982-08-12 |
Family
ID=25033801
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
DE2756768A Expired DE2756768C2 (de) | 1976-12-27 | 1977-12-20 | Mikroprozessor |
Country Status (11)
Country | Link |
---|---|
US (1) | US4181934A (de) |
JP (1) | JPS6053899B2 (de) |
AU (1) | AU513019B2 (de) |
BR (1) | BR7708662A (de) |
CA (1) | CA1100643A (de) |
CH (1) | CH623947A5 (de) |
DE (1) | DE2756768C2 (de) |
ES (1) | ES465431A1 (de) |
GB (1) | GB1543278A (de) |
HK (1) | HK70684A (de) |
SE (1) | SE432313B (de) |
Families Citing this family (39)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4363091A (en) * | 1978-01-31 | 1982-12-07 | Intel Corporation | Extended address, single and multiple bit microprocessor |
US4417304A (en) * | 1979-07-30 | 1983-11-22 | International Business Machines Corporation | Synchronous cycle steal mechanism for transferring data between a processor storage unit and a separate data handling unit |
US4479179A (en) * | 1979-07-30 | 1984-10-23 | International Business Machines Corporation | Synchronous cycle steal mechanism for transferring data between a processor storage unit and a separate data handling unit |
US4462029A (en) * | 1979-12-06 | 1984-07-24 | Analogic Corporation | Command bus |
US4435758A (en) | 1980-03-10 | 1984-03-06 | International Business Machines Corporation | Method for conditional branch execution in SIMD vector processors |
JPS5720859A (en) * | 1980-05-30 | 1982-02-03 | Fairchild Camera Instr Co | Microprocessor |
US4396980A (en) * | 1980-07-11 | 1983-08-02 | Fairchild Camera & Instrument Corp. | Combined integrated injection logic and transistor-transistor logic microprocessor integrated circuit design |
US4400772A (en) * | 1980-12-30 | 1983-08-23 | International Memories, Inc. | Method and apparatus for direct memory access in a data processing system |
US4482949A (en) * | 1981-07-20 | 1984-11-13 | Motorola, Inc. | Unit for prioritizing earlier and later arriving input requests |
US4811279A (en) * | 1981-10-05 | 1989-03-07 | Digital Equipment Corporation | Secondary storage facility employing serial communications between drive and controller |
US4450525A (en) * | 1981-12-07 | 1984-05-22 | Ibm Corporation | Control unit for a functional processor |
US4577282A (en) * | 1982-02-22 | 1986-03-18 | Texas Instruments Incorporated | Microcomputer system for digital signal processing |
US4533992A (en) * | 1982-02-22 | 1985-08-06 | Texas Instruments Incorporated | Microcomputer having shifter in ALU input |
US4514805A (en) * | 1982-02-22 | 1985-04-30 | Texas Instruments Incorporated | Interrupt operation in systems emulator mode for microcomputer |
US4591972A (en) * | 1982-11-15 | 1986-05-27 | Data General Corp. | Data processing system with unique microcode control |
DE3477616D1 (en) * | 1983-09-12 | 1989-05-11 | Motorola Inc | Prefetch validation |
US4769768A (en) * | 1983-09-22 | 1988-09-06 | Digital Equipment Corporation | Method and apparatus for requesting service of interrupts by selected number of processors |
US4706190A (en) * | 1983-09-22 | 1987-11-10 | Digital Equipment Corporation | Retry mechanism for releasing control of a communications path in digital computer system |
USRE34052E (en) * | 1984-05-31 | 1992-09-01 | International Business Machines Corporation | Data processing system with CPU register to register data transfers overlapped with data transfer to and from main storage |
US4648029A (en) * | 1984-08-27 | 1987-03-03 | International Business Machines Corporation | Multiplexed interrupt/DMA request arbitration apparatus and method |
BG39765A1 (en) * | 1985-02-14 | 1986-08-15 | Turlakov | Device for connecting 8- degree and 16- degree modules to 16- degree microprocessor system |
US5255384A (en) * | 1985-02-22 | 1993-10-19 | Intergraph Corporation | Memory address translation system having modifiable and non-modifiable translation mechanisms |
US4899275A (en) * | 1985-02-22 | 1990-02-06 | Intergraph Corporation | Cache-MMU system |
US4709324A (en) * | 1985-11-27 | 1987-11-24 | Motorola, Inc. | Data processor control unit having an interrupt service using instruction prefetch redirection |
US4961067A (en) * | 1986-07-28 | 1990-10-02 | Motorola, Inc. | Pattern driven interrupt in a digital data processor |
US5001624A (en) * | 1987-02-13 | 1991-03-19 | Harrell Hoffman | Processor controlled DMA controller for transferring instruction and data from memory to coprocessor |
DE3788877T2 (de) * | 1987-03-24 | 1994-06-23 | Insignia Solutions Ltd | Einrichtung zur software-emulation. |
US4942520A (en) * | 1987-07-31 | 1990-07-17 | Prime Computer, Inc. | Method and apparatus for indexing, accessing and updating a memory |
EP0303751B1 (de) * | 1987-08-20 | 1992-05-20 | International Business Machines Corporation | Schnittstellenmechanismus für Informationsübertragungssteuerung zwischen zwei Vorrichtungen |
US5317715A (en) * | 1987-12-15 | 1994-05-31 | Advanced Micro Devices, Inc. | Reduced instruction set computer system including apparatus and method for coupling a high performance RISC interface to a peripheral bus having different performance characteristics |
US4916601A (en) * | 1988-12-19 | 1990-04-10 | Bull Hn Information Systems Inc. | Means for transferring firmware signals between a control store and a microprocessor means through a reduced number of connections by transfer according to firmware signal function |
US5144230A (en) * | 1990-11-26 | 1992-09-01 | The Boeing Company | Method and system for testing integrated circuits by cycle stealing |
US5363495A (en) * | 1991-08-26 | 1994-11-08 | International Business Machines Corporation | Data processing system with multiple execution units capable of executing instructions out of sequence |
EP0562353A3 (de) * | 1992-03-27 | 2004-08-18 | Siemens Aktiengesellschaft | Verfahren zum Übertragen hochpriorer Programme und Daten in einem Kommunikationssystem |
US5473757A (en) * | 1992-12-11 | 1995-12-05 | Ge Fanuc Automation North America, Inc. | I/O controller using single data lines for slot enable/interrupt signals and specific circuit for distinguishing between the signals thereof |
US5435001A (en) * | 1993-07-06 | 1995-07-18 | Tandem Computers Incorporated | Method of state determination in lock-stepped processors |
FR2720172B1 (fr) * | 1994-05-20 | 1996-06-28 | Sgs Thomson Microelectronics | Dispositif de mise en Óoeuvre numérique d'une opération de division. |
US5838991A (en) * | 1994-12-29 | 1998-11-17 | International Business Machines Corporation | Preemptable idle time activities for constant data delivery by determining whether initiating a host command will conflict with an idle time activity being executed |
TWI259356B (en) * | 2004-03-26 | 2006-08-01 | Infortrend Technology Inc | Apparatus for checking data coherence, controller and storage system having the same and method therefore is disclosed |
Family Cites Families (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US3680054A (en) * | 1970-07-06 | 1972-07-25 | Ibm | Input/output channel |
US3668651A (en) * | 1970-12-30 | 1972-06-06 | Ibm | Working device code method of i/o control |
US3909790A (en) * | 1972-08-25 | 1975-09-30 | Omnus Computer Corp | Minicomputer with selector channel input-output system and interrupt system |
US3962682A (en) * | 1974-10-30 | 1976-06-08 | Motorola, Inc. | Split low order internal address bus for microprocessor |
US4004283A (en) * | 1974-10-30 | 1977-01-18 | Motorola, Inc. | Multiple interrupt microprocessor system |
US4034349A (en) * | 1976-01-29 | 1977-07-05 | Sperry Rand Corporation | Apparatus for processing interrupts in microprocessing systems |
US4038641A (en) * | 1976-04-30 | 1977-07-26 | International Business Machines Corporation | Common polling logic for input/output interrupt or cycle steal data transfer requests |
US4056847A (en) * | 1976-08-04 | 1977-11-01 | Rca Corporation | Priority vector interrupt system |
-
1976
- 1976-12-27 US US05/754,193 patent/US4181934A/en not_active Expired - Lifetime
-
1977
- 1977-10-06 CA CA288,240A patent/CA1100643A/en not_active Expired
- 1977-10-18 AU AU29822/77A patent/AU513019B2/en not_active Expired
- 1977-11-29 GB GB49549/77A patent/GB1543278A/en not_active Expired
- 1977-12-15 SE SE7714244A patent/SE432313B/xx unknown
- 1977-12-16 JP JP52150707A patent/JPS6053899B2/ja not_active Expired
- 1977-12-20 DE DE2756768A patent/DE2756768C2/de not_active Expired
- 1977-12-23 CH CH1596977A patent/CH623947A5/de not_active IP Right Cessation
- 1977-12-26 ES ES465431A patent/ES465431A1/es not_active Expired
- 1977-12-27 BR BR7708662A patent/BR7708662A/pt unknown
-
1984
- 1984-09-13 HK HK706/84A patent/HK70684A/xx unknown
Also Published As
Publication number | Publication date |
---|---|
HK70684A (en) | 1984-09-21 |
GB1543278A (en) | 1979-03-28 |
SE7714244L (sv) | 1978-06-28 |
CH623947A5 (de) | 1981-06-30 |
US4181934A (en) | 1980-01-01 |
DE2756768A1 (de) | 1978-06-29 |
ES465431A1 (es) | 1978-09-16 |
AU513019B2 (en) | 1980-11-06 |
AU2982277A (en) | 1979-05-24 |
BR7708662A (pt) | 1979-07-24 |
SE432313B (sv) | 1984-03-26 |
JPS6053899B2 (ja) | 1985-11-27 |
CA1100643A (en) | 1981-05-05 |
JPS5382240A (en) | 1978-07-20 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
DE2756768C2 (de) | Mikroprozessor | |
DE2756762A1 (de) | Verfahren und anordnung zum zugriff zu beliebigen bitfeldern im hauptspeicher einer datenverarbeitungsanlage | |
DE2357003C2 (de) | Prozessor für eine Mehrprogramm-Datenverarbeitungsanlage | |
DE2716369C2 (de) | ||
DE2524046C2 (de) | Elektronische Datenverarbeitungsanlage | |
DE2023354C2 (de) | Datenverarbeitungsanlage mit einem Mikrobefehlsspeicher | |
DE69729974T2 (de) | Datenverarbeitungsschaltung, Mikrocomputer und elektronische Einrichtung | |
CH650600A5 (de) | Zentralprozessoreinheit einer datenverarbeitungsanlage mit operationscode-erweiterungsregister. | |
DE2935906C2 (de) | Mikroprozessor | |
DE2910839A1 (de) | Einrichtung zur ausfuehrung einer speziellen verzweigungsinstruktion | |
DE3741850A1 (de) | Ausfuehrungseinheit fuer einen i/o-prozessor | |
EP0010185B1 (de) | Virtuell-Adressiervorrichtung für einen Computer | |
DE2907181A1 (de) | Befehlssatz-modifizierregister fuer einen datenprozessor | |
DE2755616C2 (de) | Datenverarbeitungsanlage | |
DE2130299B2 (de) | Eingabe-/Ausgabekanal für eine Datenverarb eitungsanlage | |
DE1499200A1 (de) | Datenverarbeitungsanlage mit vorranggesteuerter Programmunterbrechung | |
DE2411963A1 (de) | Datenverarbeitungsanlage | |
DE2533737C2 (de) | Mikroprozessor mit aufteilbarer Adressenschiene | |
DE2913492A1 (de) | Prozessor und anlage mit einem derartigen prozessor | |
DE2756767C2 (de) | Mikroprozessor auf einem Halbleiterchip | |
DE2747304A1 (de) | Einrichtung zur mikrobefehlssteuerung | |
DE2801853A1 (de) | Integrierte digitale datenverarbeitungseinrichtung | |
DE2422495C2 (de) | Datenverarbeitungsanlage | |
DE2821941C3 (de) | Prozessor mit einer Zentraleinheit zur Durchführung eines Informationsvergleiches | |
DE1163579B (de) | Steuerwerk einer digitalen programmgesteuerten Rechenmaschine |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
OAP | Request for examination filed | ||
OD | Request for examination | ||
D2 | Grant after examination | ||
8339 | Ceased/non-payment of the annual fee |