DE1774543A1 - Steuereinrichtung fuer Digitalrechner zur Unterbrechung und Verzweigung von Programmen - Google Patents
Steuereinrichtung fuer Digitalrechner zur Unterbrechung und Verzweigung von ProgrammenInfo
- Publication number
- DE1774543A1 DE1774543A1 DE19681774543 DE1774543A DE1774543A1 DE 1774543 A1 DE1774543 A1 DE 1774543A1 DE 19681774543 DE19681774543 DE 19681774543 DE 1774543 A DE1774543 A DE 1774543A DE 1774543 A1 DE1774543 A1 DE 1774543A1
- Authority
- DE
- Germany
- Prior art keywords
- register
- interruption
- registers
- content
- level
- 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.)
- Pending
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/461—Saving or restoring of program or task context
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Executing Machine-Instructions (AREA)
Description
IBM Deutschland
Internationale Büro-Mtuchinen GeeelUdia.fi mbH
Böblingen, 10, Juli 1968
jo-hn
jo-hn
Anmelderin:
International Business Machines Corporation, Armonk, N. Y. 10 504
Amtliches Aktenzeichen:
Neuanmeldung
Aktenzeichen der Anmelderin: Docket 10 939
Steuereinrichtung für Digitalrechner zur Unterbrechung und Verzweigung
von Programmen
Die Erfindung betrifft eine Steuereinrichtung für Digitalrechner zur Zwischenspeicherung
der für die Programmausführung notwendigen Registerinhalte während der Durchführung von Programmunterbrechungen und -Verzweigungen«
Bei den bekannten Einrichtungen für die Programmunterbrechung bei digitalen
Rechenanlagen werden die Unterbrechungen in einer relativ schwerfälligen Weis^ durchgeführt. Bei den üblichen Verfahren müssen die Unterbrechungen
per Programm vorgesehen werden, damit die Rechenanlage in ein sogenannte« Unterprogramm verzweigen kann, welches die not-
10014*71421
wendigen Verfahrensschritte für eine Unterbrechungsbedingung durchführt,
nachdem eine Unterbrechungs-Situation die Anlage veranlaßt hat, eine Verarbeitungsposition aufzusuchen, die im Zusammenhang
mit der Unterbrechungsbedingung steht. Bei derartigen Einrichtungen
bewirken die ersten Instruktionen des die Unterbrechung verarbeitenden
Unterprogramm.es die Speicherung des Inhaltes derjenigen Rech-P
nerregister, die möglicherweise bei der Ausführung des Unterprogram-
mes benötigt werden. In den vollkommensten und daher am wenigsten
wirtschaftlichen Einrichtungen muß der Inhalt aller Register der Rechenanlage vorübergehend gespeichert werden. Deshalb wird, nachdem
das Unterbrechungs-Unterprogramm beendet ist, der Inhalt aller dieser
Register dorthin zurückgespeichert, wo er sich vor der Programmun-
wenn
terbrechung befand. NurVdas Unterprogramm, welches die Verarbeitung
der Unterbrechungsbedingung bewirkt selbst unterbrochen werden fc muß, wiederholt sich dieses Verfahren, so daß die Verarbeitung der
Unterbrechung in höheren Ebenen erfolgt. Bei leistungsfälligen Datenverarbeitungsanlagen
wird dieses zuletzt erwähnte Verfahren in mehreren Unterbrechungsebenen durchgeführt.
Ein ähnliches Verfahren wird in bekannten Rechenanlagen für die Behandlung
auch anderer Unterprogramme als es die Unterprogramme für die Unterbrechung sind, verwendet. Daher, wenn eine Übertragung von einem Hauptprogramm zu einem Unterprogramm auftritt,
109U2/U26
werden die ersten Instruktionen des Unterprogrammes far die Speicherung des Inhaltes aller Register, von denen das Unterprogramm möglicherweise Gebrauch macht, durchgeführt. Infolgedessen muß, bevor die
Steuerung zu dem Hauptprogramm zurückkehrt, der Inhalt all dieser Register wieder dorthin gespeichert werden, von wo er vor der Einleitung des Unterprogramme s entnommen worden ist. Wenn das Unterprogramm selbst ein zweites Unterprogramm erfordert, muß das Λ
gleiche Verfahren für die Speicherung und Rückspeicherung der Registerinhalte für das zweite Unterprogramm durchgeführt werden.
Auch hier muß wieder die Speicherung und Rückspeicherung auf mehrere Ebenen von Unterprogramm-Verzweigungen ausgedehnt werden.
Diese bekannten Verfahren sind aus mehreren Gründen uneffektiv. Beispielsweise muß sich der Programmierer mit der Speicherung und Rück-
speicherung der Inhalte all der Register befassen, die möglicherweise ^
für die Durchführung der Unterbrechung oder Verzweigung benötigt werden. Darüberhinaus ist ein unnötiges Speichern und Rückspeichern von
Registerinhalten erforderlich, die nicht von dem unterbrochenen Programm verwendet und die auch nicht von diesem modifiziert werden.
Auf diese Weise geht auch wertvolle Verarbeitungszeit dadurch verloren, daß Instruktionen für die Durchführung der Speicherung und Rückspeicherung der Registerinhalte abgerufen werden müssen.
■108842/1A26
Es ist daher die Aufgabe der Erfindung, die vorstehend genannten
Nachteile bekannter Einrichtungen für die Programtnunterbrechung
und -verzweigung bei digitalen Rechenanlagen zu vermeiden. Es ist
in diesem Zusammenhang für die Erfindung wesentlich, eine Steuereinrichtung anzugeben, welche automatisch die Speicherung des Inhaltes nur derjenigen Register vornimmt, die effektiv bei der Auführung
fe des Programmes und die effektiv für die Ausführung der Programmunterbrechung verwendet werden.
Es ist weiterhin von wesentlicher Bedeutung, daß auch die Rückspei -cherung nur derjenigen Register automatisch erfolgt, deren Inhalt durch
das- Unterbrechungsprogramm verändert wurde und deren Inhalt bei der Ausführung des Hauptprogrammes später noch verwendet werden
soll.
Weiter ist es für die Erfindung von wesentlicher Bedeutung, Vorsorge für die Speicherung des Inhaltes von und die Rückspei cherung des
Inhaltes zu Registern bei einer Hauptunterbrechung und Hauptprogramm-Ausführungsfolge zu treffen, bei welcher der Inhalt keines Registers
unnötigerweise gespeichert oder zurückgespeichert wird.
Schließlich ist es erfindungswesentlich, daß auch für die Speicherung
von Inhalten von und die Rückspeicherung von Inhalten zu Registern
109642/U26
bei einer Hauptunterbrechung und einer Hauptprogrammfolge ein Steuersystem
zur Verfügung steht, welches keinen Zeitverlust durch Instruktionsabruf auftreten läßt.
Für eine Steuereinrichtung für Digitalrechner zur Zwischenspeicherung
der für die Programmausführung notwendigen Registerinhalte während
der Durchführung von Programmunterbrechungen und -Verzweigungen "
besteht die Erfindung darin, daß vorgesehen ist, je ein Speicherbereich
für jedes von mehreren Unterbrechungsebenen zur Zwischenspeicherung, wobei in der untersten Unterbrechungsebene der ursprüngliche
Inhalt derjenigen Rechnerregister, die während der Unterbrechung verändert
wurden, zwischengespeichert werden, ein Hilfsregister T, dessen Inhalt diejenigen Rechnerregister angibt, deren Inhalt während der
Unterbrechung einer bestimmten Ebene verändert wird, ein Hilfsregister
L, dessen Inhalt diejenigen Rechnerregister angibt, deren Inhalt ä
bis zum Auftreten der Unterbrechung einer bestimmten Ebene verändert worden waren, Steuerungen für die Hilfsregister, die beim Auftreten
der Unterbrechung einer bestimmten Ebene die Speicherung der Inhalte der Hilfsregister in Speicherbereichen bewirken, die für die
nächetniedrige Ebene vorgesehen sind, Steuerungen für die Rück speicherung,
die bei der Modifizierung des Inhaltes eines Rechnerregisters während der Unterbrechung einer bestimmten Ebene eine Anzeige im
Hilfsregister T bewirken und den Inhalt des Rechnerregisters in den
der bestimmten Unterbrechungsebene zugeordneten Speicherbereich bringen
und ein Hilfsregister U, welches am Ende einer Unterbrechung den
Inhalt derjenigen Rechnerregister angibt, deren Inhalt während der Unterbrechung
der bestimmten Ebene verändert wurde.
Die Steuereinrichtung ist in der Weise vorteilhaft weitergebildet, daß
^ die Steuerung für die Hilfsregister die logische Verknüpfung des Inhaltes
der Hilfsregister T und L und die Übertragung des Inhaltes des Hilfsregister T in das Hilfsregister L vornimmt, wodurch das Hilfsregister
T im Anschluß daran diejenigen Rechnerregister angibt, deren Inhalt während der Unterbrechung einer bestimmten Ebene verändert
wird.
Eine andere vorteilhafte Weiterbildung der Steuereinrichtung ist dadurch
gekennzeichnet, daß die Steuerung für die Hilfsregister T und U beim Auftreten der Unterbrechung einer bestimmten Ebene voneinander
trennt.
Schließlich ist die Steuereinrichtung in vorteilhafter Weise noch dadurch
weitergebildet, daß die vorgesehenen Steuerungen am Ende der Unterbrechung einer bestimmten Ebene den Inhalt des Hilfsregisters T zu
dem Hilfsregister U überträgt und den entsprechenden Inhalt der Hilfsregister T und L und der ausgewählten Rechnerregister durch deren
100942/1426
Inhalt ersetzt, jder im entsprechenden Speicherbereich der nächstniedrigeren Unterbrechungsebene beim Auftreten der Unterbrechung einer
bestimmten Ebene gespeichert wurde.
Das generelle Merkmal der Steuereinrichtung für digitale Rechner zur
Zwischenspeicherung der fur die Programmaus führung notwendigen Registerinhalte während der Durchführung von Programmunterbrechungen
und -Verzweigungen besteht darin, daß automatisch nur der Inhalt derjenigen Register zwischengespeichert wird, -welcher für die Durchführung eines bestimmten Programmes verwendet und für ein Unterbrechungsprogramm einer oder mehrerer Unterbrechungsebenen benötigt
wird, wobei die automatische Rückspei ehe rung des Inhaltes nur derjenigen Rechnerregister erfolgt, deren Inhalt verändert wurde und später
bei der Ausführung des Programmes weiter benötigt wird.
des Programmes entsprechende Steueroperationen für die Zwischenspeicherung des Inhaltes wichtiger Rechnerregister nicht besonders
überlegt 'werden missen, sondern daß diese Steueroperationen automatisch erfolgen. Da ferner nur der unbedingt notwendige Inhalt von Rechnerregistern gespeichert wird, wird Speicherkapazität und Verarbeitungszeit gespart.
«« ir - 10Ö842/U26
her erklärt. Es zeigen:
Fig. la, b: nebeneinandergelegt gemäß der Darstellung in Fig. 1, ein
Blockdiagramm eines erfindungsgemäßen Ausführungsbeispieles
zur Suche nach einem Verarbeitungsregister, dessen Inhalt gebraucht oder geändert werden soll,
Fig. 2a-j: zusammengelegt gemäß dem Schema in Fig. 2 ein B lock-
W diagramm eines Ausführungsbeispieles eines erfindungsge
mäßen Systemes zur automatischen Speicherung oder Neuspeicherung
(Rückspeicherung) des Inhaltes nur der Register, die gespeichert oder rückgespeichert werden müssen
gemäß den obigen Ausführungen und zum Speichern und Neuspeichern des Inhaltes von ersten und zweiten Einrichtungen
und der Übertragung des Inhaltes zwischen ersten, zweiten und dritten Einrichtungen,
Fig. 3: ein Blockdiagramm eines als Programm-Taktgeber in der
Erfindung geeigneten Ausführungsbeispieles,
Fig. 4: ein Blockdiagramm, eines als Unterbrecher-Taktgeber ge
eigneten Ausführungsbeispieles,
Fig. 5: ein Blockdiagramm eines ersten Teiles eines als voll
ständiger Programm-Taktgeber geeigneten Ausführungsbei*-
Fig. 6: ein Blockdiagramm eines zweiten Teiles des vollständi
gen Programm-Taktgebers, dessen erster Teil in Fig. 5 dargestellt ist,
Fig. 7: ein Blockdiagramm eines Ausführungsbeispieles eines Sy-
stemes zur Einschaltung der Ausführung einer Spezialkonstruktion
zum Löschen der gewählten Kippschaltungen |
(Verriege lungs schaltungen) im T-Register,
Fig. 8: ein Blockdiagramm eines gesamten erfindungsgemäß kon
struierten Systems zum Einschalten auf mehreren Unterbrechungsebenen
und
Fig. 9: ein Blockdiagramm eines erfindungsgemäß ähnlich kon
struierten Systemes wie das in Fig. 8 gezeigte zur Ein- g
schaltung auf einer Unterbrechungsebene.
Zu Anfang der Beschreibung wird darauf hingewiesen, daß das in den
Zeichnungen dargestellte Ausführungsbeispiel eine Kapazität von acht
Unterbrechungsebenen hat, von denen die Ebene 0 keine Unterbrechung
10 6842/U26
- 10 -
ausführt. In der Praxis kann die Anzahl der UnterlbrechiHigsebenen
bei einer entsprechenden Steigerung der Bauteile weif höher sein.
Anstatt die Ausrüstung zu vergrößern, kann man auch ein Überlaufverfahren
verwenden. In diesem Falle hätte der Rechner bei Verwendung
von mehr als acht Unterbrechungsebenen für die über die Zahl
8 hinausgehenden Unterbrechungen auf das übliche Prograuamierverfahren
zurückzugreifen.
Der Einfachheit halber sind 6 Register dargestellt ihm! ein besonderer
Speicher zum Speichern des Inhaltes der Register, in der Praxis
eines Rechensystems kann der besondere Register speicher ein Teil des Hauptspeichers sein, in dem den Registern ein bestimmter Platz
zugeordnet wird. Außerdem ist ein Speicher-Adressregister dargestellt,
welches auch das Adressregister des Speichers sein kann oder ein zusätzliches
vom Speicher getrenntes Register.
Das Ausführungsbeispiel ist mit einer bestimmten logischen Schaltanordnung
dargestellt, die jedoch keinerlei Einschränkung darstellt, da die Erfindung auch mit anderen Schaltungsanordnungen ausführbar ist.
Erfindungsgemäß sind für ein gegebenes Register R. drei Verriegelungsschaltungen
U., T- und L. vorgesehen, deren Einschaltung von den drei
Registern U, T bzw. L der Einfachheit halber angenommen wird. Für
10*842/1426
jede Unterbrechungsebene kann ein Speicherbereich entsprechend reserviert sein, der mit Zwischenspeicherbereich bezeichnet ist und
für den Inhalt von jedem Verarbeitungsregister und für den Inhalt der
Register T und L reserviert ist.
Wenn eine neue Aufgabe in die Verarbeitungs einheit geladen wird, werden im Anfangsstatus der Verarbeitungseinheit alle Kippschaltungen U,
T und L zurückgestellt. Sobald danach der Inhalt eines gegebenen Register R. zuerst geändert wird - d-h-, es wird in das Register
geschrieben - wird die bistabile Kippschaltung T eingeschaltet. Somit bezeichnet der Stand des Registers T zu jeder Zeit die Verarbeitungsregister, deren Inhalt vorher geändert wurde.
Wenn jetzt eine Unterbrechung auftritt, wird der Inhalt des Registers
T automatisch in den Speicherbereich für die nullte Unterbrechungs- ä
ebene gespeichert. Register L wird dann 'mit dem Inhalt des Registers T geladen und Register T zurückgeschaltet. Zu diesem Zeitpunkt enthält Register L somit das Verzeichnis aller bei dem Unterbrechungsprogramm verwendeten Register. Sobald danach eine Instruktion eine erste Änderung versucht, d.h. versucht, in ein vorgeschriebenes Register zu schreiben, für das die entsprechende Verriegelungsschaltung L. eingeschaltet ist, wird der Inhalt eines solchen
Registers zuerst im Schutzbereich des Speichers gespeichert, der der
100642/1426
ersten Unterbrechungsebene entspricht. Die dem zuletzt beschriebenen
Register entsprechende oder mit diesem verbundene Verriegelungsschaltung
T. wird dann eingeschaltet und das Programm läuft weiter. Wenn danach der Inhalt des oben erwähnten vorgeschriebenen Registers weiter
verändert wird, besagt die Tatsache, daß die entsprechende Verriegelungs
schaltung T. bereits eingeschaltet ist, daß der Inhalt des ^ vorgeschriebenen Registers schon vorher gespeichert wurde und nicht
noch einmal gespeichert zu werden braucht. Eine Verriegelungs schaltung
T. wird immer eingeschaltet, wenn das erstemal der Inhalt des zugehörigen Registers R. verändert wird. Bei dieser Schaltungsanordnung
wird der Inhalt des Rechnerregisters gespeichert, die von dem unterbrochenen Programm bereits verändert wurden und die Speicherung
erfolgt nur, wenn der Inhalt dieser Register tatsächlich bei der Ausführung des unterbrechenden Programmes verändert wird.
Wenn eine zweite Unterbrechung auf höherer Ebene erfolgt, während eine erste oder andere Unterbrechung läuft, wird sie ebenfalls durch
das erfindungsgemäße Steuersystem verarbeitet. Somit wird der Inhalt
der T- und L-Register automatisch in den entsprechenden Stellen im
Speicher des Zwischenspeicherbereiches für die erste Unterbrechungsebene gespeichert, wenn eine derartige Unterbrechung der zweiten Ebene
erfolgt. Außerdem werden entsprechende Bits der T- und L-Register über eine Oder-Anordnung so zusammengeleitet, daß sie den vor-
10S842/U28
herigen Inhalt des L-Registers ersetzen. Das Register T wird zurückgestellt.
Zu diesem Zeitpunkt zeigt das Register L an, welche Register durch das zuerst unterbrochene Programm verändert wurden.
Das Steuersystem arbeitet jetzt wie bei der Unterbrechung auf der ersten
Ebene bezeichnet, d.h. es bewirkt die Einschaltung der entsprechenden bistabilen Kippschaltungen, auch als Verriegelungs schaltung f
bezeichnet, T., sobald der Inhalt des entsprechenden Registers R. verändert wird und die Speicherung des Inhaltes dieses Registers R.,
wenn diese verändert werden sollen und die Stellungen der Kippschaltungen T. und L. zeigen an, daß sie durch eine Unterbrechung auf
niedrigerer Ebene verändert wurden, aber nicht auf Grund einer früheren Instruktion auf der vorliegenden Unterbrechungsebene gespeichert
wurden. Der einzige Unterschied im Betrieb besteht an diesem ■Verbindungspunkt
darin, daß der alte Inhalt des Registers in dem Spei- g
cherbereich gespeichert wird, der der Unterbrechung der zweiten Ebene entspricht.
Nachfolgende Unterbrechungsebenen werden ähnlich behandelt. Das Register
L zeigt immer die Register an, deren Inhalt durch eine Unterbrechung
auf niedrigerer Ebene verändert wurde. Das Register T zeigt die Register an, deren Inhalt durch die unterbrechung auf der laufenden
Ebene verändert wurde. Registerinhalte werden im Schutzbereich
1098427142 6'-
des Speichers für die laufende Unterbrechungsebene für die Register
gespeichert, deren Inhalt durch diese Unterbrechungsebene und irgendeine niedrigere Ebene verändert wurde.
Die übrige Steuerwirkung'des erfindungsgemäßen Steuersystemes befaßt
sich mit der Rückspeiche rung des Register inhaltes sobald die
^ Steuerung von der laufenden Unterbrechungsebene auf die Ebene übertragen
wird, die die laufende Unterbrechungsebene unterbrochen hat,
d.h. zur nächstniedrigeren Ebene. Das U-Register wird dabei verwendet.
Zum besseren Verständnis wird angenommen, daß eine Verarbeitungseinheit
N Unterbrechüngsebenen erfahren hat. Ihr Register L enthält
ein Verzeichnis aller Register, die während des Originalprogrammes
k und aller niedrigeren Ebenen, d.h. N-I Unterbrechungsebenen verändert
wurden. Das Register T enthält ein Verzeichnis aller Register, deren Inhalt während der laufenden, d.h. der N-ten Unterbrechungsebene
verändert wurde. Zu diesem Zeitpunkt befindet sich das Register U noch vollständig in der Ausgangsstellung. Wenn die Verarbeitungseinheit
die Verarbeitung der N-ten Unterbrechungsebene abgeschlossen hat, führt sie eine Spezialinstruktion aus, die die Steuerung
auf die nächstniedere Unterbrechungsebene, d.h. die N-I Ebene, d.h.
eine Programmabschluß-Instruktion, überträgt. Zu diesem Zeitpunkt
10Ö842/U26
laufen die folgenden verschiedenen Vorgänge automatisch ab: der Inhalt
des T-Registers ersetzt den Inhalt (der vorher auf Null stand) des U-Registers. Der gegenwärtige Inhalt des T- und des L-Registers
wird durch den Inhalt der Register ersetzt, die vorher im Zwischen Speicherbereich
des Speichers für die N-I Übertragungsebene standen.
Zu diesem Zeitpunkt zeigt das U-Register die Register an, deren In- ä
halt im Schutzbereich der N-ten Unterbrechungsebene gespeichert sind.
Register T zeigt die Register an, deren Inhalt durch die N-I Unterbrechungsebene
verändert wurde, bevor diese Ebene durch die N-te Ebene unterbrochen wurde. Register L zeigt die Register an, deren
Inhalt durch die N-2 bis 0-te Unterbrechungsebene verändert wurde.
Sobald bei der Ausführung einer Instruktion jetzt versucht wird, den Inhalt eines Verarbeitungsregisters R. zu benutzen, muß erst die
Stellung der Kippschaltungen U. und T. untersucht werden, um festzustellen,
ob der Registerinhalt vom Zwischenspeicherbereich im Speicher für die N-te Unterbrechungsebene neu gespeichert wurde. Sobald
eine Instruktion die Änderung des Inhaltes eines Registers R. fordert, werden außerdem die Kippschaltungen T., L. und O. überprüft, um
festzustellen, ob eine Speicherung und/oder Rückspeiche rung des Inhaltes erforderlich ist, bevor die Instruktion ausgeführt werden kann.
Außerdem muß der Stand der Kippschaltungen geändert werden. In der folgenden Tabelle sind die grundsätzlich durchzuführenden Änderungen
10Ö842/U26
verzeichnet. Die in der Tabelle aufgezeichneten Funktionen speichern
den Registerinhalt oder speichern ihn a-us dem oben erwähnten Zwischenspeicherbereich
des Speichers nur in den Fällen zurück, wenn
ein derartiger Speicherzugriff für die richtige Arbeitsweise der Verarbeitung seinheit erforderlich ist.
ein derartiger Speicherzugriff für die richtige Arbeitsweise der Verarbeitung seinheit erforderlich ist.
106642/U26
- 17 TABELLfE
Änderungen der steuernden Kippschaltungen und des Registerinhaltes au.
der N-ten Unterbrechungsebene.
Art des Re- Original- geänderter Operation
gis te r Zugriffs stand Stand
U. T. L, U. T. L.
1 1 j
U Ü O O O O O
M 0 0 0 0 10
U 0 01 001
M 0 01 Oil S
U 0 10 0 10
M 010 010
U 0 110 11
M Oil Oil
U 100000 "
M 10 0 0 10
U 1010 01 R
M 10 1 Oil R, dann S
U 110 010 R
M 110 0 10
U 111 Oil R
M 111 Oil
10ÖÖ42/U2Ö
In obiger Tabelle besagt der Buchstabe U, daß der Inhalt eines Registers
zu benutzen ist. Der Buchstabe M besagt, daß der Inhalt des Registers zu ändern ist. Wenn bei.einer gegebenen Instruktion
der Inhalt desselben Registers sowohl zu benutzen als auch zu ändern
ist, erfolgt die Benutzung vor der Änderung.
w Der Buchstabe R besagt, daß der Inhalt des Registers vom N+l Bereich
im Speicher den gegenwärtigen Inhalt des Registers ersetzt, bevor die Verarbeitung weiterläuft. Der Buchstabe S besagt, daß der
Inhalt des Registers im N-ten Zwischenspeicherbereich zu speichern ist, bevor die Verarbeitung weiterläuft.
In dem allgemeinsten Fall, wenn die Steuerung von der N-ten Unterbrechungsebene
auf die N-I Ebene zurückgegeben wird, laufen ver- h schiedene Vorgänge ab. Der Inhalt aller Register R., deren Kippschaltungen
U., T. und L. gemeinsam auf binär 101 stehen, wird automatisch aus dem Zwischenspeicherbereich des Speichers für die N+l
Unterbrechungsebene rückgespeichert. Als nächstes ersetzt der Inhalt des T-Registers den Inhalt des U-Registers und der Inhalt der
Register T und L wird durch Werte ersetzt, die vorher im Zwischenspeicherbereich
der N-I Unterbrechungsebene standen. Danach wird der Schutz des Registerinhaltes im Zwischenspeicherbereich der
N-I Unterbrechungsebene durchgeführt. Die automatische Rückspeiche-
100842/1426
.Λ. - .■:■-■.
rung des Inhaltes der Register R. aus dem Zwischenspeicherbereich des Speichers für die N+l Unterbrechungsebene ist die einzig mögliche
unnötige Speicherung oder Rückspeicherung, die in dem erfindungsgemäßen
System erfolgt, um eine bestimmte Fehlerbedingung zu verhindern.
Die Steuerung für den allgemeinen Fall einer Verschiebung der Unterbrechung
auf der N-ten Unterbrechungsebene zur N+l Unterbrechungsebene erfordert die Speicherung des Inhaltes der Register T und L
im Zwischenspeicherbereich der N-ten Ebene sowie den Ersatz des Inhaltes des Registers L durch ein bitweises Ausgangs signal einer
Oder-Schaltung entsprechend dem Inhalt der Register T und L sowie
den Ersatz des Inhaltes des Registers T durch den Inhalt des Registers U und die völlige Löschung des Registers U. Danach werden
die Registerinhalte im Zwischenspeicherbereich für die N+l Unterbrechungsebene
geschützt.
Die oben beschriebene Operation erstreckt sich auf die Anwendung des Steuersystemes zum Eintritt in Unterprogramme (Unterroutine)
und zur Rückkehr aus diesen mit dem einzig möglichen Unterschied, daß eine besondere Instruktion vorgesehen werden muß, um den Eintritt
in die Unterroutine zu bewirken und dadurch dem Steuersystem anzuzeigen, daß eine neue Ebene von Unterroutinen betreten wurde. Außer
109 842/U2 6
dem muß eine Instruktion zur Rückkehr aus der Unterroutine vorgesehen
werden, wie sie zur Rückgabe der Steuerung auf eine niedrige Unterbrechungsebene beschrieben wurde.
Bei einem einfacheren Ausführungsbeispiel der Erfindung kann die Verarbeitung
beispielsweise für nur eine Unterbrechungsebene möglich sein.
ρ In einer derartigen Ausführung ist kein U-Register erforderlich und
nur ein Schutzbereich im Speicher. Bei einer derartigen Ausführung
werden am Anfang zu Beginn des Programmes die beiden Register T und L gelöscht. Sobald der Inhalt eines R.-Registers geändert wird,
wird die entsprechende bistabile Kippschaltung L eingeschaltet. Wenn
eine Unterbrechung auftritt, verursacht jede Änderung eines Registers, für das die entsprechenden Kippschaltungen T. und L. auf Null bzw.
Eins eingestellt sind, einen Schutz des Inhaltes dieser Register vor
k ihrer Änderung und die Kippschaltung T. wird auf Eins gestellt. Wenn
eine erste Unterbrechung auftritt, ist natürlich keine zweite Unterbrechung
gestattet, bis die erste Unterbrechung fertig verarbeitet und die Steuerung auf .das Hauptprogramm zurückgegeben ist.·
Wenn die Steuerung an das Hauptprogramm zurückgegeben wurde, wird der Inhalt des Registers R. aus einem einzelnen Zwischenspeicherbereich
rückgespeichert, wenn versucht wird, den Inhalt eines Registers zu benutzen, für das die entsprechenden bistabilen Kippschaltungen T.
109842/1426
und L. bei der Ausführung einer Instruktion auf 11 stehen, wobei
die bistabile Kippschaltung T. immer auf 0 zurückgestellt wird, wenn der Inhalt des Registers R. benutzt oder verändert wird.
Wenn eine zweite Unterbrechung auftritt, nachdem die erste die Steuerung
auf das Hauptprogramm zurückgegeben hat, läuft dieselbe Operationsfolge ab, wie bei der ersten Unterbrechung. Der Zustand, in dem A
die zweite Unterbrechung die bistabilen Kippschaltungen T und L antrifft,
wird nicht geändert, bis die Änderung des Inhaltes eines Registers
zu Änderungen der oben beschriebenen Art führt.
Ein weiteres Merkmal der Erfindung ermöglicht die Verarbeitung einer
Instruktion "T-Schaltung zurückstellen". Dadurch kann der Programmierer
dem Steuersystem genau vorschreiben, daß er nicht länger am Inhalt bestimmter Verarbeitungsregister interessiert ist und daher
wünscht, daß ihre entsprechenden Kippschaltungen T. zurückgestellt werden. Eine derartige Instruktion ermöglicht die Einsparung unnötigen
Register-Speicherraumes in einem Fall, in dem eine Unterbrechung oder eine Unterroutine aufgerufen wird. Die Instruktion "T-Schaltung
zurückstellen" adressiert ein Wort im regulären Speicher, das ein vorher durch das Programm gespeichertes Maskenwort (M) enthält.
Für jedes Register R. kann die bistabile Kippschaltung T. zurückgestellt werden, wenn das Bit M. den Wert 0 enthält. Eine wei-
109842/U26
tere Bedingung zur Verhinderung von Fehloperationen ist die Null-Stellung
der Kippschaltung L.. Somit enthält die Schaltung T. den neuen Wert T. (L. + M.).
Außerdem kann die Rückstellung von T. (aber nur, wenn L. = 0 ist) nach einer Indexierung mit einer Verzweigungsinstruktion erwünscht
ψ sein, wenn der Inhalt des Registers R. auf einen Wert indexiert wird,
der die Verzweigung ausführt.
In Fig. 1 ist in Form eines Blockdiagrammes eine Schaltung gezeigt,
mit der eines oder mehrere Register gesucht werden, deren Inhalt benutzt oder geändert werden soll auf Grund der Verzweigung von
einem Ausführungsprogramm zu einem Unterbrechungsprogramm oder einer Unterroutine, In der dargestellten Schaltung ist ein Instruktions-λ
decoder 20 über Leitungen 18 mit dem Instruktionsregister des Rechners verbunden. Im Decoder 20 wird jede Instruktion zu dem Zeitpunkt
analysiert, zu dem sie in das Instruktionsregister 20 geladen wird. Die De codier schaltung 20 gibt Ausgangs signale auf entsprechenden Leitungen
ab. Die Leitungen 18 werden zu einem entsprechenden Verbindung sZeitpunkt im Rechnerzyklus erregt. Alle bistabilen Kippschaltungen
oder Register, die eine Anfangseinstellung erfordern, werden zu Beginn der Rechneroperation auf die Ausgangsstellung zurückgestellt.
Wenn z.B. eine gegebene Operation die Verwendung des Inhaltes eines
1098A2/U26
-- 23 -
Registers 1 aufruft, erscheint ein Impuls/tan relativ kurzer Dauer auf
der Leitung 22 und schaltet die bistabile Kippschaltung 24 auf 1. Gleichzeitig
erscheint ein relativ kurzer Impuls auf einer Ausgangsleitung von der Decodierschaltung 20, der über ein Oder-Glied 28 auf eine
Leitung 11 gegeben wird. Wenn die Leitung 11 Spannung führt, erregt sie die erste Stufe eines Prozess-Taktgebers Pl, der zweckmäßig
die Form einer monostabilen Kippschaltung hat, wie im folgen- g
den näher erklärt wird. Der Prozess-Taktgeber wird jedesmal erregt,
wenn der Inhalt entsprechender Register verwendet oder geändert werden
soll. Er steuert auch eine vorgeschriebene Ablauffolge.
Eine notwendige Bedingung für die richtige Arbeitsweise des Steuersystemes
ist eine ausreichende Zeitspanne zwischen der Erkennung
in
einer Instruktion der Decodierschaltung 20 -und ihrer nachfolgenden Ausführung. Wenn in der Verarbeitungseinheit, an welche das erfindungsgemäße Steuersystem angeschlossen ist, nicht genügend Zeit vorgesehen ist, kann sich durch eine sogenannte Instruktionsvorschau der Prozess-Taktgeber mit der Ausführung einer vorhergehenden Instruktion überlappen. Diese Anordnung bildet jedoch keinen Teil der Erfindung und wird deswegen nicht näher erläutert.
einer Instruktion der Decodierschaltung 20 -und ihrer nachfolgenden Ausführung. Wenn in der Verarbeitungseinheit, an welche das erfindungsgemäße Steuersystem angeschlossen ist, nicht genügend Zeit vorgesehen ist, kann sich durch eine sogenannte Instruktionsvorschau der Prozess-Taktgeber mit der Ausführung einer vorhergehenden Instruktion überlappen. Diese Anordnung bildet jedoch keinen Teil der Erfindung und wird deswegen nicht näher erläutert.
In Fig. 3 ist ein für die vorliegende Erfindung geeigneter Prozess-Taktgeber
gezeigt, der die Stufen mit den Bezeichnungen Pl und P2
1098^2/1426
sowie die mit SS bezeichneten mono stabilen Kippschaltungen enthält.
Beim Lauf dieses Taktgebers wird z.B. die Stufe 30, d. g. die Kippschaltung
Pl, eingeschaltet, d.h. in ihren nicht stabilen Zustand geschaltet, wenn ein Einschaltimpuls auf der Leitung 32 erscheint. In
der eingeschalteten Stellung der Stufe 30 erscheint ein Impuls auf der
Leitung 34, dessen Dauer abhängig von der durch ihn auszuführenden Funktion eingestellt werden kann. Wenn eine mono stabile Kippschaltung
in ihren Ausgangszustand zurückkehrt, erzeugt sie einen Ausgangsimpuls,
der zum Einschalten einer nachfolgenden monostabilen Kippschaltung verwendet werden kann.
Der Ausgangsimpuls der Taktstufe Pl auf der Leitung 34 wird auf die
Leitung 36 (Fig. la) weiter geleitet. Wenn zu diesem Zeitpunkt eine
bistabile Kippschaltung 38 auf Null steht, wird eine Und-Schaltung
eingeschaltet und leitet den Impuls 36 weiter. Steht dann eine bistabi-'
Ie Kippschaltung 24 auf Eins, so wird der Impuls weiter zur Und-
Schaltung 42 geleitet und macht eine Leitung Ul stromführend. Das
Ausgangssignal der Leitung Ul wird auf die in Fig. 2b dargestellte
Und-Schaltung 46 gegeben. Wenn die Bits U, T und L für »Register
1 in einer der Kombinationen 101, 110 bzw. 111 stehen, wird die Und-Schaltung 46 eingeschaltet, wodurch der Impuls Ul über die Oder-Schaltung
50 läuft und auf der Leitung 5£ (Fig. 2c bis 2e) erscheint.
Die so eingeschaltete Leitung 52 schaltet die drei am weitesten rechts
108842/1*28
stehenden Bits des Speicher-Adressregisters mit der Bezeichnung SAR
(Fig. 2j) auf 001, den für Register 1 gewählten Code. Der Impuls auf
der in Fig. 2b dargestellten Leitung 48 wird ebenfalls über eine Leitung 54, eine Oder-Schaltung 56, eine Leitung 58 und eine Oder-Schaltung
60 auf eine in Fig. 2c dargestellte Leitung 62 gegeben, wo er das Aus gang s signal K+l eines mit "Unterbrechungsebenen-Zähler" (Fig. 2e)
bezeichneten Zählers auf die drei am weitesten links stehenden Bits ™
des Registers SAR in Fig. 2j leitet. Der Unterbrechungsebenen-Zähler
hat drei Aus gangs signale. Das Aus gangs signal "K" ist die effektiv im
Zähler vorliegende Zahl. Das Signal "K+l" schließt eine Schaltung ein,
die den Inhalt des Zählers um 1 weite rs ehaltet und das Ausgangssignal
"K-I" eine Schaltung, die den Inhalt um 1 zurückschaltet.
Wenn das Register SAR geladen wird, endet der Impuls Pl und der
Impuls UlD (Fig. la) erscheint als Ausgangs signal von einer Verzöge- |
rungsstufe 64. Dieser Impuls schaltet die bistabile Kippschaltung 44 in
Fig. 2a auf Null zurück. Gleichzeitig mit diesem Impuls erscheint ein anderer auf der Leitung 17 von der in Fig. 2c gezeigten Verzögerungseinheit
66. Der Ausgangsimpuls der Stufe 66 schaltet die monostabile Kippschaltung P3 in Fig. 3 ein und der sich daraus ergebende Ausgangsimpuls
P3 wird auf die in Fig. 2j gezeigte Oder-Schaltung 68
geleitet und erzeugt ein Ausgangs signal "Lesezugriff für den Speicher".
"Wenn die monostabile Kippschaltung P3 in den stabilen Zustand zurück-
!00642/1426
kehrt, wodurch der Impuls P3 endet, wird die monostabile Kippschaltung
P4 dadurch eingeschaltet und der Ausgangsimpuls auf eine in Fig· 2J gezeigte Oder-Schaltung 70 gegeben, so daß er den Inhalt
eines mit SDR bezeichneten Speicher-Datenregisters auf das in Fig. 2d dargestellte Register l· leitet.
Der in Fig. 2j gezeigte Decoder übersetzt die aus drei Bits bestehende
Binärzahl, die in der rechten Hälfte des SAR Registers enthalten ist in einen Code "1 von N", der die Schaltung für die entsprechenden
Register in Fig. 2d einschaltet. Somit schaltet ein auf die in Fig. 2j
dargestellte Oder-Schaltung 70 gegebener Impuls die Schaltung ein, die
den Inhalt des SDR Registers auf alle entsprechenden Register-Schaltungen leitet. Das richtige Register wird dabei von der De codier schaltung
gewählt.
Wenn die in Fig. 2b dargestellte Und-Schaltung 46 nicht zu dem Zeit pnnkt
eingeschaltet wird, wo der Impuls Ul auftritt, wird das Und-Glied 72 eingeschaltet und ein Impuls erscheint auf der Leitung 74 anstatt
auf Leitung 48. Der Impuls auf Leitung 74 wird über eine Oder-Schaltung 76 geleitet und durch eine in Fig. 2g dargestellte Verzögerungs
schaltung 78 verzögert. Durch diese Verzögerungsschaltung soll der durch die Stufe 78 verzögerte Impuls auf der Leitung 15 erscheinen
und zwar unmittelbar nach dem Ende des in Fig. la gezeigten Im-
pulses UID, der zum Rückstellen der bistabilen Kippschaltung 24 auf
Null verwendet wird. Bei dieser Schaltungsanordnung wird die monostabile Kippschaltung Pl (Fig. 3) wieder angeschaltet und stellt die
bistabile Kippschaltung in der Kette der bistabilen Kippschaltungen
nach der Schaltung 24, die eventuell auf Eins steht, ein.
Wenn bei der Ausführung einer gegebenen Instruktion kein Register ver- f
wendet werden soll, erscheint der Impuls Pl auf der in Fig. Ib dargestellten
Leitung 13 und schaltet die monostabile Kippschaltung P2 ein. Der Impuls P2 wird auf die in Fig. la dargestellte Leitung 80 gegeben,
und wenn der Inhalt eines oder mehrerer Register geändert werden soll, werdendie entsprechenden in Fig. Ib dargestellten Leitungen MO bis
M5 leitend. Wenn z.B. angenommen wird, daß die Leitung M2 eingeschaltet wird, läuft der dort befindliche Impuls über die in Fig. 2b
gezeigten Und-Schaltungen 82, 84 und 86. Wenn an diesem Verbindungs- *
punkt die Bits U, T und L auf 101 stehen, wird die Und-Schaltung 82
eingeschaltet, wodurch ein Impuls auf der Leitung 88 erscheint, Wenn
die Bits U. T und L auf 001 stehen, wird die Und-Schaltung 84 eingeschaltet
und es erscheint ein Impuls auf der Leitung 90. Wenn die Bits
U, T und L weder auf 101 noch auf 001 stehen, wird die Und-Schaltung
86 eingeschaltet und es erscheint ein Impuls auf der Leitung 92.
Wenn die Bits U, T und L auf 101 stehen und infolgedessen ein Impuls
tOÖ642/U26
auf der Leitung 88 erscheint, läuft dieser über die in Fig. 2c dargestellte
Oder-Schaltung 94, erscheint auf einer Leitung 96 und schaltet die am weitesten rechts stehenden drei Bits des Registers SAR auf
(Fig. 2j), d.h. auf den Code für Register 2. Eine Verzweigungsschaltung umfaßt die Leitung. 98, eine Oder-Schaltung 100 und eine in
Fig. 2c dargestellte Oder-Schaltung 60 sowie eine Leitung 62 und leitet das Aus gangs signal K+l des Unterbrechungsebenen-Zählers (Fig. 2e)
·/·
■'■". ■■■■
auf die am weitesten links stehenden drei Bits des in Fig. 2j gezeigten
SAR-Register s. ■
Die in Fig. 2 c gezeigte Oder-Schaltung 100 ist mit einer Verzögerungseinheit
102 verbunden, die einen verzögerten Ausgangsimpuls auf der Leitung 10 erzeugt. Dieser Impuls tritt zur selben Zeit auf wie der
Impuls M2D (Fig. Ib) kurz nach dem Ende des Impulses P2. Der Impuls
auf der Leitung 10 schaltet die in Fig. 3 dargestellte monostabile " Kippschaltung P5 ein und der sich daraus ergebende Ausgangsimpuls
P5 wird auf die in Fig. 2j gezeigte Oder-Schaltung 68 gegeben und erzeugt
ein Leseztgriffs-Ausgangssignal zum Speicher» Wenn der Impuls
P5 sendet, schaltet er eine monostabile Kippschaltung P6 ein, deren Ausgangsimpuls P6 auf die in Fig. 2j dargestellte Oder-Schaltung 70
gegeben wird und so den Inhalt des SDR-Registers auf dks in Fig. 2d
gezeigte Register 2 leitet. Wenn der Impuls P6 endet, schältet er die
monostabile Kippschaltung P7 ein, deren Aus gangs signal £»7 auf die in
109842/U26
Fig. 2e gezeigte Oder-Schaltung 104 geleitet wird und den Ausgangsimpuls
K des Unterbrechungsebenen-Zählers auf die dre^&m weitesten
links stehenden Bits des in Fig. 2j gezeigten Registers SAR leitet.
Wenn der Impuls P7 endet, schaltet er eine monostabile Kippschaltung
P8 ein, deren Ausgangsimpuls P8 auf die in Fig. 2j gezeigte Oder-Schaltung
106 gegeben wird und ein Schreibzugriffs-Ausgangs signal "
zum Speicher erzeugt. Wenn der Impuls P8 endet, schaltet er wieder
eine monostabile Kippschaltung P2 ein.
Der in Fig. 2j gezeigte Speicher der üblichen Kernspeicherart hat seinen eigenen nicht dargestellten Taktgeber und durchläuft seinen
eigenen Zyklus. Der erste Teil eines Speicherzyklus kann herkömmlicherweise als Leseteil und der zweite als Schreibteil bezeichnet
werden. Die Adresse eines Speicherwortes ist bestimmt durch den ä
Inhalt des Registers SAR.
Wenn ein Eingangssignal "Lesezugriff" zum Speicher auftritt, werden
die Schaltungen im Speicher so gesetzt, daß während des Leseteils des Speicherzugriffs das entsprechend gewählte Wort in das SDR-Register ausgelesen wird. Nach dem Auslesen dieses Wortes werden
die entsprechenden Wortbits im Speicher alle auf Null gesetzt. Bei
einer derartigen Anordnung wird in der zweiten Hälfte oder dem
1ÖÖ8A2/U2G
ils...
Schreibteil des Speicherzyklus das Wort vom SDR-Register auf den
Speicher zurückgelesen, und steht zu diesem Zeitpunkt im SDR-Register
zur Verfügung.
Wenn ein Eingangssignal "Schreibzugriff zum Sprecher" auftritt, wird
das Wort nicht während des Leseteiles des Speicherzyklus in das SDR-P Register gelesen, d.h. in dem Speicher werden nur Nullen gesetzt.
Im Schreibteil des Speicherzyklus wird der Inhalt des SDR-Registers
in den Speicher geschrieben.
Es wird angenommen, daß der in Fig. 2b gezeigte Impuls M2 anstatt auf der Leitung 88 auf der Leitung 90 auftritt. In einem derartigen
Fall ständen die drei am weitesten rechts stehenden Bits des SAR-Registers auf 010. Eine Verzweigungsschaltung führt von der Leitung
| 90 über die Leitung 108 auf eine Oder-Schaltung 110, eine Leitung
und eine Oder-Schaltung 104 (Fig. 2b bis 2e) und leitet das K-Ausgangssignal
des Unterbrechungsebenen-Zählers auf die am weitesten links stehenden drei Bits des Registers SAR. Die Leitung 112 ist
mit einer in Fig. 2c dargestellten Verzögerungsstufe 114 verbunden, die dieselbe Verzögerung erteilt wie die Stufe 102. Die Verzögerungs-'stufe
114 erzeugt einen verzögerten Impuls auf der Leitung 12, der eine monostabile Kippschaltung P9 einschaltet, deren Ausgangsimpuls
P9 den Inhalt des Registers 2 auf das SDR-Register leitet. Wenn der
10ÖÖ42/U26
ORiGlNAL INSPECTED
Impuls P9 endet, schaltet er eine monostabile Kippschaltung PlO ein,
deren Ausgangsimpuls PlO auf eine in Fig. 2j dargestellte Oder-Schaltung 106 gegeben wird und ein Aus gangs signal "Schreibzugriff erzeugt".
Wenn der Impuls PlO endet, schaltet er die monostabile Kippschaltung P2 ein.
Wenn keine der beiden Und-Schaltungen 82 oder 84 eingeschaltet ist,
wird die Und-Schaltung 86 eingeschaltet und der Impuls P2 erscheint
auf einer Leitung 92, die zu einer Oder-Schaltung 116 führt. Eine Verzögerungsstufe 118 erzeugt einen Impuls kurz nachdem der Impuls M2D
endet und schaltet die mono stabile Kippschaltung P2 ein.
Wenn bei Anlegen des Impulses P2 der Inhalt keines Registers geändert
werden soll, erscheint dieser auf der in Fig. Ib gezeigten Leitung 19
und kann dazu verwendet werden, der Verarbeitungseinheit anzuzeigen,
daß eine Instruktion ausgeführt werden kann. Der M2D Impuls schal- *
tet über die Oder-Schaltungen 45 und 47 die bi stabile Kippschaltung 49
auf Null zurück und die bistabile Kippschaltung 51 auf Eins.
Bei Auftreten eines Unte rbr echungs signale s beginnt der Taktgeber 1
mit einer Vorlauf zeit zu laufen, die ausreicht, um ihn vor der Decodierung
der nächsten auftretenden Instruktion in Schritt zu bringen. Der in Fig. 4 dargestellte Taktgeber 1 besteht zweckmäßigerweise aus
10Ö042/U2G
einer Kette von monostabilen Kippschaltungen, ähnlich wie der Tafctgeber
P, von denen jede folgende höher numerierte Kippschaltung durch die Hinterkante des Impulses des instabilen Zustandes der unmittelbar
vorhergehenden Kippschaltung eingeschaltet wird.
Gemäß der Darstellung in Fig. 2f wird der Impuls Il auf eine Schal P
tung 120 gegeben, die den T-Vektor auf das in Fig. 2j gezeigte SDR-
Register leitet, wobei dieser T-Vektor eine Reihe von Ί/Östabilen Kippschaltungen
ist, die als Register wirken. Der Impuls Il wird auf eine in Fig. 2e dargestellte Oder-Schaltung 104 gegeben und leitet das K-Ausgangssignal
des Unterbrechungsebenen-Zählers auf die am weitesten links stehenden drei Bits des SAR-Registers. Der Il-Impuls wird
weiterhin auf eine in Fig. 2e gezeigte Oder-Schaltung 122 gegeben,
um die am weitesten rechts stehenden drei Bits des SAR-Registers auf 110 zu setzen, den Code für das T-Register. Wenn der Impuls Il
endet, schaltet er eine monostabile Kippschaltung 12 (Fig» 4) ein.
Der Impuls 12 wird auf eine in Fig. 2j dargestellte Odeir-Schaltung
106 gegeben und erzeugt einen Schreibzugriff-Ausgangsimpuls.. Wenn
der Impuls 12 endet, schaltet er eine in Fig. 4 geaeigfce mono stabile
Kippschaltung 13 ein.
Der Impuls 13 wird auf eine in Fig. 2f dargestellte Schältimg 124 ge-
r/74543
geben und leitet den L-Vektor, der Inhalt des Registers umfaßt L-Kippschaltungen,
auf das SDR-Register. Der Impuls 13 wird außerdem
auf die in Fig. 2e gezeigte Oder-Schaltung 178 gegeben und schaltet
die rechte Hälfte des SDR-Registers auf 111, den Gode für den L-Vektor. Wenn der Impuls 13 endet, schaltet er eine in Fig. 4 gezeigte
monostabile Kippschaltung 14 ein.
Der Impuls 14 wird auf eine in Fig. 2 j dargestellte Oder-Schaltung
106 gegeben und erzeugt einen Sehreib-Zugriff-Ausgangsimpuls. Außerdem
wird er auf eine in Fig. 2a gezeigte Leitung 128 geleitet, die alle
Einsen im T-Vektor auf den L-Vektor leitet. Wenn der Impuls 14 endet,
schaltet er eine monostabile Kippschaltung 15 ein.
Der Impuls 15 wird auf eine in Fig. 2f gezeigte Schaltung 130 gegeben
und leitet den U-Vektor auf den T-Vektor. Wenn der Impuls 15 I
endet, schaltet er eine inonostabile Kippschaltung 16 ein. Der Impuls
16 wird auf eine in Fig. 2a gezeigteLeitung 132 gegeben und schaltet
alle Kippschaltungen des U-Registers auf Null zurück. Wenn der Impuls 16 endet, schalet er eine monostabile Kippschaltung 17 ein, deren
Ausgangsimpuls zur Weiterschaltung des Unterbrechungsebenen-Zählers
verwendet wird.
Wenn ein Unterbrechungsprogramm abgeschlossen ist, wird ein Signal
"Programm beendet" abgegeben und läßt den PC-Taktgeber anlaufen
(Fig. 5 und 6). Das Signal "Programm beendet" wird von einer nicht dargestellten
Instruktions-Decodierstufe erzeugt. Der den Taktgebern P und I ähnliche PC-Taktgeber besteht aus einer Reihe von monostabil"*
en Kippschaltungen, bei denen die Hinterkante des Ausgangsimpulses
des nichtstabilen Zustandes einer monostabilen Kippschaltung die
' nächste monostabile Kippschaltung der Reihe einschaltet.
So wird der nichtstabile Ausgangsimpuls der monostabilen Kippschaltung
PCI auf eine in Fig. 2 gezeigte Leitung 134 gegeben und schaltet die bistabilen Kippschaltungen 136, 138, 140, 142, 144 und 146 auf
Null. Wenn der Impuls PCI endet, schaltet er die monostabile Kippschaltung
PC2 ein. Der Ausgangsimpuls PC2 wird auf die Schaltungen 148, 150, 152, 154, 156, 158 (Fig. 2b und 2g) gegeben. Durch die
ψ Einschaltung einer der erwähnten Schaltungen werden die entsprechenden
Kippschaltungen (Fig. 2c und 2h) auf Eins geschaltet, wodurch angezeigt
wird, daß das entsprechende Register aus dem K+l Bereich neu zu speichern ist. Wenn der Impuls PC2 endet, wird eine monostabile
Kippschaltung PC3 eingeschaltet.
Der Impuls PC3 legt die Register fest, deren Inhalt aus dem Bereich
K+l rückgespeichert wurde. Wenn angenommen wird, daß die bistabile Kippschaltung 136 auf Eins steht, wird der Impuls PC3 über die Und-
109842/1420
17/4543
- 35 -
Schaltung 160 (Fig. 2c) geleitet und erscheint auf einer Leitung 162,
die zu einer Oder-Schaltung 164 führt. Ein Aus gangs signal dieser
Oder-Schaltung erscheint auf der Leitung 166 und setzt 000 in die drei am weitesten rechts stehenden Bits des Registers SAR (Fig. 2j).
Eine Verzweigungs-Schaltung mit der Leitung 163, einer Oder-Schaltung
165, einer Leitung 167, einer Oder-Schaltung 60 und einer Leitung 62 leitet den K+l Ausgang des Unterbrechungsebenen-Zählers auf "
die drei am weitesten links stehenden Bits des SAR-Registers. Wenn
der Impuls PC3 endet, wird über eine in Fig. 2c dargestellte Verzögerungseinheit
168 eine monostabile Kippschaltung PC4 eingeschaltet.
Die bistabile Kippschaltung 136 wird durch das Ausgangssignal einer in Fig. 2c gezeigten Verzögerungseinheit 172 abgeschaltet, das zur selben
Zeit erscheint wie das Ausgangssignal von der Verzögerungseinheit 168.
Der Impuls PC4 wird auf eine Oder-Schaltung 168 (Fig. 2j) gegeben ä
und liefert ein Lesezugriff-Ausgangssignal. Wenn der Impuls PC4 endet,
schaltet er eine mono stabile Kippschaltung PC 5 ein, deren Ausgangsimpuls
PC 5 auf eine in Fig. 2j gezeigte Oder-Schaltung 70 geleitet
wird und den Inhalt des SDR Registers auf Register 0 leitet. Wenn der Impuls PC5 endet, schaltet er die mono stabile Kippschaltung PC3
ein. Wenn keine der in den Fig. 2c und 2h gezeigten bistabilen Kippschaltungen 136 bis 146 auf Eins steht, erscheint der in Fig. 2h gezeigte Impuls PC3 auf einer Leitung 16 und schaltet die monostabile
Kippschaltung PC8 ein,
10Ö842/U2S
Der Impuls PC8 wird auf die in Fig. 2f dargestellte Schaltung 174 geleitet und leitet den T-Vektor zum U-Vektor. Wenn der Impuls
PC8 endet, schaltet er eine monostabile Kippschaltung PC9 ein, deren Ausgangsimpuls PC9 auf eine in Fig. 2e gezeigte Schaltung
176 gegeben wird und den K-I Ausgang des Unterbrechungsebenen-Zählers
auf die drei am weitesten links stehenden Bits im SAR-Re-P ' gister leitet. Außerdem wird dieser ImpuJ s auf eine in Fig. Ze gezeigte
Oder-Schaltung 122 geleitet und setzt so die rechte Hälfte des
SAR-Registers auf 110. Wenn der Impuls PC9 endet, schaltet er eine monostabile Kippschaltung PClO ein, deren Ausgangsimpuls PClO
auf die in Fig. 2j gezeigte Oder-Schaltung 68 gegeben wird und ein
Lesezugriffs-Ausgangssignal für den Speicher liefert. Wenn der Impuls
PClO endet, schaltet er die monostabile Kippschaltung PCIl ein.
Der Impuls PCIl wird auf eine in Fig. 2f gezeigte Schaltung 180 gegeben
und leitet den Inhalt des SDR-Registers auf den T-Vektor. Wenn
der Impuls PCIl endet, schaltet er eine monostabile Kippschaltung
PC 12 ein, deren Ausgangsimpuls PC 12 auf die in Fig. 2e gezeigte Oder-Schaltung 178 gegeben, wird und die drei am weäf&teh rechts
stehenden Bits des SAR-Registers auf 111 setzt. Wenn äer impuls
PC12 endet, schaltet er die monastabile Kippschaltung PC13 ein, deren
Ausgangsimpuls PCI 3 auf eine in Fig. 2j gezeigte Oder-Schaltung
68 gegeben wird und ein Le se zugriffs-Aus gangs signal fur den Speicher
1Ö6ÖA2/U26
liefert. Wenn der Impuls PCI3 endet, schaltet er eine monostabile
Kippschaltung PC 14 ein, deren Ausgangsimpuls auf eine in Fig. 2f gezeigte Schaltung 182 gegeben wird und den Inhalt des SDR-Registers
auf den L-Vektor leitet. Außerdem schaltet der Impuls PC 14
den Unterbrechungsebenen-Zähler zurück. Wenn der Impuls PC14 endet, erzeugt er einen Impuls, der die Instruktion abruft, deren
Adresse im Instruktionszähler steht. I
Während bisher das Ausführungsbeispiel eines erfindungsgemäßen Unterbrechungssystemes
für die Ausführung einer Unterroutine beschrieben wurde, kann in einem solchen Fall anstelle eines Unterbrechungssignales
im Programm auch eine Verzweigungsinstruktion zur Unter routine enthalten sein. In einem solchen Fall müßte die letzte Instruktion
in der Unterroutine die Rückkehrinstruktion von dieser Unterroutine sein. Die Wirkung wäre dieselbe, wie die des oben beschriebenen Λ
Signales "Programm abgeschlossen·1. Während bei der oben beschriebenen
Ausführung der Inhalt der Register T und L gespeichert wird, können auch andere Register verwendet werden, die den laufenden
Stand der Verarbeitungseinheit speichern. Ein Beispiel eines solchen Registers ist der Instruktionszähler.
Außerdem kann bei erfindungsgemäßer Ausführung eine Instruktion wie
beispieleweise 11T-Schaltung zurückstellen" zwischen zwei Unterbrechungen
eingefügt werden. Eine solche Instruktion schreibt eine Adresse im
109842/U26
Speicher vor, die ein Maskenwort enthält. Die Bits des Maskenwortes
können dann in eine Und-Schaltung mit den Bits des L-Registers
gesetzt werden. In diesem Fall ist für jede Bitposition, in der das Maskenbit Null ist und das L-Bit Null, das T-Bit ebenfalls JNuIl.
Eine derartige Schaltung iet in Fig. 7 wiedergegeben.
P In Fig. 8 ist ein Blockdiagramm der allgemeinen Struktur eines erfindungsgemäßen
AusfOhrungsbeispieles gegeben, in welchem N Unterbrechungsebenen
verarbeitet werden können. Eine Stufe 200 mit der Bezeichnung "Hauptverarbeitungs-Folgesteuerung" stellt den Instruktionsdecoder
und andere HilfsStrukturen in der zentralen Verarbeitungseinheit dar, die die Ausführungen der Unterbrechungsprogramme
steuern. Die Stufe 200 steuert sowohl die Register der Verarbeitungseinheit
202 als auch eine Stufe 204 mit der Bezeichnung "Steuerung b für Hilfsregister" und eine Stufe 206 mit der Bezeichnung "Steuerung
für Rückspei ehe rung". Die zuletzt genannte Stufe dient zur Steuerung
der Übertr%ung in und aus dem Speicher 208 des Inhaltes des Verarbeitungsregisters
R und des Inhaltes der Zusatzregister T und L, die - durch die Stufen 210 und 212 dargestellt sind. Das Zusatzregister T,
d.h. die Stufe 210, steht mit dem Zusatzregister L, d.h. Stufe 211,
in Verbindung, wenn eine Unterbrechungsebene betreten wird und die Stufe 210 steht mit dem Zusatzregister U, d.h. Stufe 214 in Verbindung,
wenn eine Unterbrechungsebene beendet wird. Das Zuaatzre-
10Ö842/U28
gister U214 steht mit dem Zusatzregister T210 in Verbindung, wenn
eine Unterbrechung auftritt. Das Verarbeitungsregister 202 und die Zusatzregister T und L stehen mit dem Speicher 208 in Verbindung
und die Steuerung erfolgt durch eine Stufe 206.
Fig. 9 ist ein Blockschaltbild des oben beschriebenen Ausführungsbeispieles,
das die Verarbeitung nur einer Unterbrechungsebene gestattet. Bei einer derartigen Operation ist kein U-Register und im Speicher
208 nur ein Zwischenspeicherbereich erforderlich.
1088.42/1426
Claims (9)
1. Steuereinrichtung für Digitalrechner zur Zwischenspeicherung der
für die Programmausführung notwendigen Registerinhalte während k der Durchführung von Programmunterbrechungen und -Verzweigungen,
dadurch gekennzeichnet, daß automatisch nur der Inhalt derjenigen Rechnerregister zwischengespeichert wird, welcher
für die Durchführung eines bestimmten Programmes verwendet und für ein Unterprogramm einer oder mehrerer Unterbrechungsebenen
benötigt wird, wobei die automatische Rückspeicherung des
Inhaltes nur derjenigen Register erfolgt, deren Inhalt verändert wurde und später bei der Ausführung des Programmes weiter benötigt
wird.
2. Steuereinrichtung nach Anspruch 1, dadurch gekennzeichnet, daß
vorgesehen ist je ein Speicherbereich (208; Fig. 8) für jede von mehreren Unterbrechungsebenen zur Zwischenspeicherung, wobei
in der untersten Unterbrechungsebene der ursprüngliche Inhalt derjenigen Rechnerregister (202), die während der Unterbrechung
verändert wurden, zwiechenge spei chert werden, ein Hilf·-
register T (210), dessen Inhalt diejenigen Rechnerregieter an-
IOH(i/U»
gibt, deren Inhalt während der Unterbrechung einer bestimmten
Ebene verändert wird, ein Hilfsregieter L (212), dessen Inhalt
diejenigen Rechner register angibt, deren Inhalt bis zum Auftreten der Unterbrechung einer bestimmten Ebene verändert worden
war, Steuerungen (204) für die Hilfsregister, die beim Auftreten der Unterbrechung einer bestimmten Ebene die Speicherung
der Inhalte der Hilfsregister (210, 212) in Speicherbereichen *
(208) bewirken, die für die nächstniedrigere Ebene vorgesehen sind, Steuerungen (206) für die Rückspeicherung, die bei der
Modifizierung des Inhaltes eines Rechner registers während der
Unterbrechung einer bestimmten Ebene eine Anzeige im Hilfsregister T bewirken und den Inhalt des Rechnerregisters in den
der bestimmten Ebene zugeordneten Speicherbereich bringen und ein Hilfsregieter U (214), welches am Ende einer Unterbrechung
den Inhalt derjenigen Rechnerregister angibt, deren Iahalt wäh- I
rend der Unterbrechung der bestimmten Ebene verändert wurde,
3, Steuereinrichtung nach den Ansprüchen 1 und 2, dadurch gekennzeichnet,
daß die Steuerung (204, Fig. S) für die Hilfsregister
die logische Verknüpfung des Inhaltes der Hilfsregister T und
L und die übertragung des Inhaltes des Hilfsregisters T in das
Hilferegister L vornimmt, wodurch das Hilfsregister T im Anschluß daran diejenigen Rechnerregister angibt, deren Inhalt
während der Unterbrechung einer bestimmten Ebene verändert
1O0842/U26
wird.
4. Steuereinrichtung nach den Ansprüchen I Ms 3, dadurch gekennzeichnet,
daß die Steuerung (204; Fig. 8} für die Hilfsregieter
die Hilfaregister T und U beim Auftreten der Unterbrechung
einer bestimmten Ebene voneinander trennt«
5. Steuereinrichtung nach den Ansprüchen 1 bis 4, dadurch gekenn-
ψ zeichnet, daß die vorgesehenen Steuerungen (204, 2Ö6j Fig. 8)
am Ende der Unterbrechung einer bestimmten Ebene den Inhalt
des Hilfsregister T zu dem Hilfsregister U Überträgt und die entsprechenden Inhalte der Hilfsregister T und L und der ausgewählten
Rechnerregister durch deren Inhalt ersetzt, welcher im entsprechenden Speicherbereich der nächstniedrigeren Unterbrechungsebene
beim Auftreten der Unterbrechung einer bestimmten Ebene gespeichert wurde.
6. Steuereinrichtung nach den Ansprüchen 1 bis 5, dadurch gekennzeichnet,
daß den für die Unterbrechung benötigten Rech« rregistern
(202; Fig. 8) Verriegelungsschaltungen zugeordnet sind,
die eine Identifizierung derjenigen Rechnerregister gestatten, deren Inhalt während der Unterbrechung einer be summten Ebene
verändert wurde und die zu einem ersten Steuerregister gruppiert sind.
7. Steuerung nach den Ansprüchen 1 bis 6, dadurch gekennzeichnet,
100842/U26
daß den für die Unterbrechung benötigten Rechnerregistern (202; Fig. 8) Verriegelungs schaltungen zugeordnet sind, die eine Identifizierung
derjenigen Rechnerregister gestatten, deren Inhalt bis zum Auftreten der Unterbrechung einer bestimmten Ebene
bereits verändert wurde^jtnd die zu einem zweiten Steuerregister
gruppiert sind.
8. Steuerregister nach den Ansprüchen 1 bis 7, dadurch gekennzeichnet,
daß den für die Unterbrechung benötigten Rechnerregistern (202; Fig. 8) Verriegelungs schaltungen zugeordnet sind, die
eine Identifizierung derjenigen Rechnerregister gestatten, deren Inhalt bei Beendigung der Unterbrechung einer bestimmten
Ebene während der Unterbrechung verändert wurde und die zu einem dritten Steuerregister gruppiert sind.
9. Steuereinrichtung nach den Ansprüchen 1 bis 8, dadurch gekennzeichnet,
daß die Steuerfunktion durch ein im Speicher (208; Fig. 8) befindliches Steuerwort ausgeübt wird, dessen Bits je einem
Rechner register zugeordnet sind, daß die Bits nach Adressierung
mittels einer besSbderen Instruktion die Rückstellung von
Verriegelungs schaltungen des ersten Steuerregisters bewirken, deren Wortbite sich in einem vorgegebenen Zuetand befinden.
106642/1426
Leerseite
■
'Jit
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US65336767A | 1967-07-14 | 1967-07-14 |
Publications (1)
Publication Number | Publication Date |
---|---|
DE1774543A1 true DE1774543A1 (de) | 1971-10-14 |
Family
ID=24620570
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
DE19681774543 Pending DE1774543A1 (de) | 1967-07-14 | 1968-07-12 | Steuereinrichtung fuer Digitalrechner zur Unterbrechung und Verzweigung von Programmen |
Country Status (5)
Country | Link |
---|---|
US (1) | US3440619A (de) |
JP (1) | JPS509457B1 (de) |
DE (1) | DE1774543A1 (de) |
FR (1) | FR1575938A (de) |
GB (1) | GB1169160A (de) |
Families Citing this family (18)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US3533082A (en) * | 1968-01-15 | 1970-10-06 | Ibm | Instruction retry apparatus including means for restoring the original contents of altered source operands |
US3533065A (en) * | 1968-01-15 | 1970-10-06 | Ibm | Data processing system execution retry control |
US3654448A (en) * | 1970-06-19 | 1972-04-04 | Ibm | Instruction execution and re-execution with in-line branch sequences |
DE2214240C2 (de) * | 1972-03-23 | 1974-03-28 | Siemens Ag, 1000 Berlin U. 8000 Muenchen | Verfahren zur Abspeicherung von Steuerdaten bei Programmunterbrechung in einem Verarbeitungssystem |
US3825902A (en) * | 1973-04-30 | 1974-07-23 | Ibm | Interlevel communication in multilevel priority interrupt system |
US3913071A (en) * | 1973-07-16 | 1975-10-14 | Ibm | Data terminal having interaction with central system |
JPS50140230A (de) * | 1974-04-26 | 1975-11-10 | ||
JPS5434585B2 (de) * | 1974-09-02 | 1979-10-27 | ||
JPS551622B2 (de) * | 1974-12-12 | 1980-01-16 | ||
JPS551624B2 (de) * | 1975-02-28 | 1980-01-16 | ||
IT1048208B (it) * | 1975-09-15 | 1980-11-20 | Olivetti & Co Spa | Macchina contabile e calcolatrice numerica da tavolo |
US4250546A (en) * | 1978-07-31 | 1981-02-10 | Motorola, Inc. | Fast interrupt method |
US4296470A (en) * | 1979-06-21 | 1981-10-20 | International Business Machines Corp. | Link register storage and restore system for use in an instruction pre-fetch micro-processor interrupt system |
US4740893A (en) * | 1985-08-07 | 1988-04-26 | International Business Machines Corp. | Method for reducing the time for switching between programs |
JPS63156236A (ja) * | 1986-12-19 | 1988-06-29 | Toshiba Corp | レジスタ装置 |
US4947358A (en) * | 1989-03-20 | 1990-08-07 | Digital Equipment Corporation | Normalizer for determining the positions of bits that are set in a mask |
EP0468837A3 (en) * | 1990-06-29 | 1992-11-19 | Digital Equipment Corporation | Mask processing unit for high-performance processor |
JP5507317B2 (ja) | 2010-04-12 | 2014-05-28 | ルネサスエレクトロニクス株式会社 | マイクロコンピュータ及び割込み制御方法 |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
NL294820A (de) * | 1962-07-03 | |||
US3293610A (en) * | 1963-01-03 | 1966-12-20 | Bunker Ramo | Interrupt logic system for computers |
US3309672A (en) * | 1963-01-04 | 1967-03-14 | Sylvania Electric Prod | Electronic computer interrupt system |
US3386083A (en) * | 1967-01-13 | 1968-05-28 | Ibm | Interruptions in a large scale data processing system |
-
1967
- 1967-07-14 US US653367A patent/US3440619A/en not_active Expired - Lifetime
-
1968
- 1968-06-11 JP JP43039761A patent/JPS509457B1/ja active Pending
- 1968-06-11 FR FR1575938D patent/FR1575938A/fr not_active Expired
- 1968-06-20 GB GB29367/68A patent/GB1169160A/en not_active Expired
- 1968-07-12 DE DE19681774543 patent/DE1774543A1/de active Pending
Also Published As
Publication number | Publication date |
---|---|
US3440619A (en) | 1969-04-22 |
FR1575938A (de) | 1969-07-25 |
GB1169160A (en) | 1969-10-29 |
JPS509457B1 (de) | 1975-04-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
DE1774543A1 (de) | Steuereinrichtung fuer Digitalrechner zur Unterbrechung und Verzweigung von Programmen | |
DE2364408C3 (de) | Schaltungsanordnung zur Adressierung der Speicherplätze eines aus mehreren Chips bestehenden Speichers | |
DE3751297T2 (de) | Schaltung zur Programmsteuerung. | |
DE1499193C3 (de) | Speicher-Adressierschaltung | |
DE2611892C2 (de) | Mikroprogramm-Steueranordnung | |
DE2318069C2 (de) | Mikroprogrammierte Rechenanlage mit Erweiterung von Steuerfunktionen mittels festverdrahteter logischer Matrix | |
DE2719635A1 (de) | Anordnung fuer eine erweiterung einer mikroprogrammsteuerung einer datenverarbeitungsanlage | |
DE1901228B2 (de) | Datenverarbeitungsanlage mit einrichtungen zur wiederholung von operationen beim auftreten eines fehlers | |
DE2907181A1 (de) | Befehlssatz-modifizierregister fuer einen datenprozessor | |
DE2322674A1 (de) | Mikroprogramm-steuereinrichtung | |
DE2714805A1 (de) | Datenverarbeitungssystem | |
DE1803767A1 (de) | Elektronisches Datenverarbeitungssystem | |
DE1901036A1 (de) | Anordnung fuer die wiederholte Ausfuehrung fehlerhaft ausgefuehrter Funktionen | |
DE1275800B (de) | Steuerwerk fuer datenverarbeitende Maschinen | |
DE2145709A1 (de) | Datenverarbeitungsanlage | |
EP0010185A1 (de) | Virtuell-Adressiervorrichtung für einen Computer | |
DE1935944C3 (de) | Steuereinrichtung in einer elektronischen Datenverarbeitungsanlage | |
DE1115488B (de) | Datenverarbeitungssystem | |
DE2753650C2 (de) | Zeithaltende Einrichtung mit einem Register zum Speichern von Zeitzähldaten | |
DE1179027B (de) | Speicherprogrammierte digitale Rechenanlage | |
DE3000012A1 (de) | Schaltungsanordnung zur ausfuehrung eines uebertragungsbefehls in einer datenverarbeitungsanlage | |
DE2403039A1 (de) | Verfahren zur adressenerweiterung einer elektronischen digitalrechenanlage | |
DE2938929C2 (de) | Datenverarbeitungsgerät | |
DE2710436A1 (de) | Datenverarbeitungseinrichtung | |
DE2622974A1 (de) | Mikroprogrammierbares steuerwerk |