DE1774543A1 - Steuereinrichtung fuer Digitalrechner zur Unterbrechung und Verzweigung von Programmen - Google Patents

Steuereinrichtung fuer Digitalrechner zur Unterbrechung und Verzweigung von Programmen

Info

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
Application number
DE19681774543
Other languages
English (en)
Inventor
Rosenfeld Jack Lee
Lehman Meir M
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by International Business Machines Corp filed Critical International Business Machines Corp
Publication of DE1774543A1 publication Critical patent/DE1774543A1/de
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/461Saving 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
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.
Der Vorteil der Erfindung besteht also-darin, daß bei der Erstellung f
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.
Im folgenden wird die Erfindung a^ha™1 der Figuren beispielsweise nä-
«« 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.
Beschreibung eines Ausführungsbeispieles
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.
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.
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)

- 40 - Böblingen, 11. Juli 196° jjo-hn PATENTANSPRÜCHE
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
DE19681774543 1967-07-14 1968-07-12 Steuereinrichtung fuer Digitalrechner zur Unterbrechung und Verzweigung von Programmen Pending DE1774543A1 (de)

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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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

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