DE2122659A1 - - Google Patents
Info
- Publication number
- DE2122659A1 DE2122659A1 DE19712122659 DE2122659A DE2122659A1 DE 2122659 A1 DE2122659 A1 DE 2122659A1 DE 19712122659 DE19712122659 DE 19712122659 DE 2122659 A DE2122659 A DE 2122659A DE 2122659 A1 DE2122659 A1 DE 2122659A1
- Authority
- DE
- Germany
- Prior art keywords
- program
- event
- processing system
- data processing
- memory
- 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/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4812—Task transfer initiation or dispatching by interrupt, e.g. masked
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/14—Error detection or correction of the data by redundancy in operation
- G06F11/1402—Saving, restoring, recovering or retrying
- G06F11/1405—Saving, restoring, recovering or retrying at machine instruction level
- G06F11/1407—Checkpointing the instruction stream
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/362—Software debugging
- G06F11/3648—Software debugging using additional hardware
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Quality & Reliability (AREA)
- Software Systems (AREA)
- Debugging And Monitoring (AREA)
Description
Patentanwalt
« 199 RC; q
Pranz-Hals-Straße 21 L · L L ° ^ ^
Telefon 796213
München, 23. März 1971 Dr. H./P./sch
International Business Machines Corporation
Armonk, F.Y. 10504, V. St. A.
Datenverarbeitungsanlage
Priorität; 24. Juni 1970j Großbritannien;
Fr. 30 732/70
Die Erfindung bezieht sich auf eine Datenverarbeitungsanlage
zur Ausführung eines Befehlsprogramms, in dem vorbestimmte
Situationen, die während der Ausführung eines Befehls eintreten, als Programmereignisse bezeichnet v/erden.
Beträchtliche Zeit und Unkosten werden dafür aufgewendet, Störungen in Programmen von Datenverarbeitungsanlagen zu beseitigen.
Zur Unterstützung des Programmierers bei der Beseitigung von Störungen in Programmen kann der Inhalt verschiedener
Register herausgenommen werden, nachdem eine Programmunterbrechung angezeigt worden ist. Während der Inhalt
des Herausgenommenen hilfreich ist, ist es jedoch nicht möglich,
zu dem Punkt im Programm zurückzugehen, in dem der tatsächliche
Programmfehler aufgetreten ist.
109653/1646
Bayerische Vereinsbank; München 820993
ID 2873 - 2 -
Lie vorliegende Erfindung schafft eine Datenverarbeitungsanlage
der eingangs beschriebenen Art, die sich gemäß der Erfindung dadurch kennzeichnet, daß die Anlage Mittel zum Indizieren
eines oder mehrerer bestimmter anzuzeigender Ereignisse, Mittel zum Anzeigen dafür, daß ein indiziertes Ereignis
eingetreten ist, auf die Anzeige eines indizierten Ereignisses zum Aufnehmen desselben antwortende Mittel und Mittel
zur Vervollständigung der Ausführung des Befehls, während dessen das indizierte Ereignis angezeigt wurde, aufweist.
Die Erfindung ermöglicht damit dem Programmierer, durch Aufnahme verschiedener spezifizierter Programmereignisse den
Punkt zu finden, an dem der Fehler aufgetreten ist. Solche Programmereignisse (PE) enthalten:
1) das Herbeiholen eines Befehls von bezeichneten Hauptspeicherstellen;
2) die erfolgreiche Ausführung eines Sprungbefehls;
3) die Abwandlung oder Verwendung von bezeichneten Hauptregistern}
und
4) die Abwandlung oder Verwendung von bezeichneten Hauptspeichers
teilen.
Dies wird hier als "Programmbefehlaufnahme" (PER) bezeichnet.
Obwohl oben nur vier Ereignisse beschrieben wurden, können viele andere Ereignisse angezeigt und aufgenommen werden. Der
Programmierer kann ein oder mehrere Ereignisse spezifizieren, die während der Ausführung desselben Befehls aufgenommen
werden sollen. Die ein Programmereignis betreffende Information
kann während der Unterbrechung eines Programms erhalten werden, wobei die Ursache der Unterbrechung durch
den Unterbrechungskode spezifiziert wird. Die Programmunterbrechung wird ausgeführt, nachdem der Befehl, in dem das
10985 3/164 6
ID 2873 - 3 -
angezeigte Programmereignis aufgezeigt worden ist, ausgeführt
wurde. In einer Ausführungsform der Erfindung wird ein
"Programmereignisanzeige"-Schalter eingestellt, wenn ein indiziertes
Ereignis aufgezeigt und eine dieses Ereignis betreffende Information in einem Puffer eingestellt ist. Bei
dem nächsten Befehlfetchzeitpunkt wird der Programmereignisanzeige-Schalter
abgefragt, und wenn er eingestellt ist, wird das Programm unterbrochen zur Aufnahme des Ereignisses.
Die Datenverarbeitungsanlage kann Mittel zum Hemmen des Betriebs
der Programmereignisindiziermittel aufweisen, wobei die Anlage dann arbeiten kann, ohne daß die Programmereignisaufnahme
dem Programmierer zur Verfügung steht. Die hemmenden Mittel können ein Programmereignismode-Indikationsbit
aufweisen, das in einem Programm-Status-Wort (PSW) liegt, das zur Steuerung der Anlage verwendet wird.
In einer inLkroprogrammgesteuerten Datenverarbeitungsanlage
kann jedes Progranmereignis aufgezeigt werden, wenn ein mit dem Ereignis zusammenhängender Mikrobefehl verwendet wird
zur Steuerung der Datenverarbeitungsanlage. Wird das Programmereignis
angezeigt, kann ein Mikroprogramm-Unterprogramm zur Einstellung des Programmereignisanzeige-Schalters und zur
Speicherung der das Programmereignis betreffenden Information in einem Puffer verwendet werden. Die Steuerung der Datenverarbeitungsanlage
geht dann vom Unterprogramm zum Hauptmikroprogramm zur Vervollständigung der Ausführung des Befehls
über, in dem das Programmereignis aufgezeigt worden ist. Wenn der nächste Befehls-Petch-Mikrobefehl verarbeitet wird, wird
der Programmereignisanzeige-Schalter abgefragt, und wenn er eingestellt ist, wird das Programm unterbrochen zur Aufnahme
des Progranmereignisses.
109853/1646
ID 2873 - 4 -
Jedes anzuzeigende Programmereignis kann indiziert werden
durch Einstellen eines Programmereigniskodeschalters. Die Anzeige eines Programmereignisses kann erzielt werden durch
Verarbeiten gemäß einer UND-Schaltung des Einstellausgangs eines Programmereigniskodsschalters mit den entsprechenden
Bits des Operationskodes des Mikrobefehls. TJm zusätzlich Mittel zum Hemmen der Prograamereignisaufnahme zu schaffen,
können das Ausgangssignal des Progranuaereigniskodeschalters
und .die entsprechenden Bits des Befehlskodes des Mikrobefehls
gemäß einer UND-Schaltung verarbeitet werden zusammen mit } dem Programmereignismodebit, das in dem Programm-Status-Wort
liegt. -
Programmereignisse, die einen Hauptspeicheradressenvergleich
enthalten oder Register für allgemeine Zwecke, können sehr
zahlreich sein. Zusätzlich muß in verschiedenen Registern gespeicherte Information geschützt werden, nachdem ein Programmereignis
aufgetreten ist? während das Mikroprogramm den
Programmereignisanzeigesohalter einstellt und die dieses Ereignis
betreffende Information speichert. Bei einer Ausführungsform der Erfindung werden Daten ausgeloggt (logged out)
in dafür bestimmte Bereiche der Anlage. Das Programmereignis . kann dann unter Verwendung dieses bestimmten Bereiches ausgewertet
werden. Diese Auswertung bestimmt, ob die Speichersteile ein vorbestimmter Bereich des Speichers ist oder ob das
Register ein vorbestimmtes Register ist. Die ausgeloggten Daten enthalten den Inhalt eines Mikrobefehlsadressenregisters,
eines Hauptspeicheradressenregisters, eines Befehlszählers und verschiedener Register für allgemeine Zwecke. Der
zugeeignete Bereich kann ein solcher sein, der normalerweise für Fehlerbehandlung oder Systemstoppbefehle reserviert ist.
Bei einer Ausführung der Erfindung ist ein Stellenspeicher vorgesehen, bei dem ein Teil für die normale Verarbeitung und
109853/1646
ID 2873 - 5 -
ein anderer Teil als zugeeigneter Bereich für das Ausloggen vorgesehen ist.
Ausführungsbeispiele der Erfindung werden in der folgenden
Beschreibung unter Bezugnahme auf die Figuren beschrieben. Die Figur 1 zeigt eine mikr©programmierte Datenverarbeitungsanlage, in der die Erfindung ausgeführt ist, und die Figuren
2A, 2B und 2C zeigen ein Flußdiagramm.
Die Datenverarbeitungsanlage weist eine Speichereinheit 1 mit einem Hauptspeicher MS zum Speichern von Rechengrößen
und Befehlen und einen Steuerspeicher zum Speichern von Steuerwörtern auf. Die Steuerwörter oder Mikrobefehle steuern
die Operation der Anlage. Der die-Operation der Anlage laufend
steuernde Mikrobefehl befindet sich im Steuerdatenregister 2 (CDR). Der Inhalt des Steuerdatenregisters wird
dekodiert durch den Dekoder 3, und Steuerleitungen 4 übertragen Steuersignale-zu verschiedenen Teilen des Siystems.
Ein Speicheradressenregister 5 (SAR) wird verwendet für
Zugriffswörter von 16 Datenbits von den Haupt- und Steuerspeichern. Ein Pufferadressenregister 6 (BAR) und ein Inkrementer
7 speichern und stellen die Adresse in dem Speicheradressenregister 5 entsprechend weiter. Eine Adresse
kann in das Speicheradressenregister 5 von dem Pufferadressenregister
6, einem Arbeitsspeicher 8 oder dem Steuerdatenregister 2 eingegeben werden. In Abwandlung kann eine Adresse
beschleunigt oder eine Ziffer direkt von dem Arbeitsspeicher 8 eingegeben werden, fis sind zwei Stellenspeicher vorgesehen,
ein Arbeitsspeicher 8, der aus acht getrennten Zonen besteht, und ein Hilfsspeicher 9, der aus 16 Registern für allgemeine
Zwecke ((JPR) aufgebaut ist, acht Flußpunktregistern (FPR) und acht Registern für allgemeine Arbeit (CWR). Durch eine
109853/1646
ID 2873 - 6 -
Einheit 10 (AIU) zur arithmetischen oder logischen Verarbeitung verarbeitete Großen werden in dem Arbeitsspeicher
oder dem Hilfsspeicher 9 gespeichert oder können direkt von
dem zentralen Datenregister 2 mit Hilfe von K Kanälen 10a erhalten werden.
Jede Zone des Arbeitsspeichers 8 ist einer speziellen Funktion zugeordnet; Zone 0 ist der zentralen Verarbeitungseinheit
CPU zugeordnet, d. h. allen Befehlsfetchs und allen Befehlsausführungen
außer solchen, die mit Eingangs-Ausgangs-Operationen
zusammenhängen} Zone 1 ist der Systemrückstellung,
dem Ausloggen, dem Wiederauffinden und der Programmereignisaufnähme
(PER) zugeordnet; Zone 2 ist der Niedriggeschwindigkeitseingabe/-ausgabe-(l/0)-Vorrichtung,
Zone 3 einem Drucker, Zone 4 der Kommunikationsvorrichtung, Zone 5 Scheibenablagen
(disc files) und Zonen 6 und 7 Auswahlkanälen zugeordnet. Nur eine Zone ist aktiv jeweils zu einer Zeit in einer Mikroprogrammaufgabe
beteiligt. Ein Wechsel der Aufgabe wird ausgeführt während einer Mikroprogramm-Unterbrechungsperiode.
Die aktive Zone wird ausgewählt durch einen Äuswahlschalter 11. Die Zonen enthalten Daten und den Status der Unterbrechungsaufgaben,
insbesondere die Adresse des nächsten durch die Unterbrechungsaufgabe auszuführenden Mikrobefehls. Der
Auswahlschalter 11 stellt auch die Priorität der verschiedenen Aufgaben fest. Der Arbeitsspeicher wird adressiert
durch Mittel eines Arbeitsspeicheradressenregisters 12 (WSAR). Eine Adresse kann in das Arbeitsspeicheradressenregister
12 direkt von dem Steuerdatenregister 2 oder von Kontrollschaltern 13 eingegeben werden. Der Hilfsspeicher 9 wird
adressiert unter Verwendung eines Hilfsspeicheradressenregisters
14 (ASAR). Eine Adresse kann in das Hilfsspeieheradressenregister
14 direkt von dem zentralen Datenregister
109353/1846
ID 2873 - 7 -
2 oder mit Hilfe einer Ziffer von einem Arbeitsspeicher eingegeben werden. Sowohl das Arbeitsspeicheradressenregister
12 als auch das Hilfsspeicheradressenregister 14 können inkrementmäßig
weitergeschaltet werden.
Daten werden tibertragen zu den verschiedenen Eingabe-Ausgabe-Vorrichtungen
und zu den zentralen Verarbeitungseinheits-Außenschaltern 15 über die Ausgangshauptleitung 16. Die zentralen
Verarbeitungseinheits-Außenschalter speichein Information, die zur Ausführung eines Programms benötigt wird, z. B.
Masken, Schlüssel, Unterbrechung und Befehlslängenkodes und
Statusbits. Daten werden übertragen zu der zentralen Verarbeitungseinheit
von den Eingabe-Ausgabe-Vorrichtungen und den zentralen Verarbeitungseinheits-Außenschaltern 15 über
die Eingangshauptleitung 17. Die zentralen Verarbeitungseinheit s-Außenschalt er (CPU-Außenschalter) können eingestellt
oder abgefragt werden durch ein Mikroprogramm.
Anfänglich wird das Mikroprogramm in den Steuerspeicher eingegeben
durch einen Mikroprogramm-Ladesatz 18. Jede Stelle in der Speichereinheit 1 besitzt Fehlerkorrektionskodebits
(EGC) zur Korrektion von Fehlern in im Speicher zugänglichen Wörtern. Jedes Speicherwort besitzt 64 Daten- und acht Fehlerkorrektionskodebits,
jedoch nur 16 Bits und zwei Paritätsbits werden für gede Speicheroperation übertragen.
Die Anlage weist auch eine Steuerlogik 19 auf, die aus einer Anzahl von Systemsteuerschaltern besteht, welche bestimmte
eingestellt Bits des Programm-Status-Wortes u. a. enthalten und/werden,
wenn die Daten in den Steuerspeicher eingelesen sind. Die Systemsteuerschalter liefern kontinuierlich Signale auf den
Leitungen 20 zu verschiedenen Teilen der Datenverarbeitungsanlage zum Testen bezüglich Mikroprogrammunterbrechungen, Aus-
109853/1646
ID 2873 - 8 -
loggen und Fehlerbedingungen und auch zum Testen bezüglich Programmunterbrechungen.
Die Mikrobefehle' werden in fünf Klassen unterteilt: Speicherung,
Operation, Außen, Sprung und Spezial.
Die Speichermikrobefehle werden verwendet zur Übertragung von
Daten zwischen Arbeitsspeicher und entweder Steuerspeicher oder -Hauptspeicher. Ein Speiohermikrobefehl kann indirekt
oder direkt sein. Ein indirekter Speicherbefehl verwendet
eine Adresse der gefragten Steuerstelle vom Arbeitsspeicher, die vermindert oder vermehrt.(inkrementiert oder dekrementiert)
sein kann durch den Mikrobefehl. Die direkten Mikrobefehle verwenden eine Adresse, die geliefert wird durch den Mikrobefehl,
und können nur einen festen Bereich des Steuerspeichers adressieren·
Operationsmikrobefehle betreffen die Operation der arithmetischen
und logischen Einheit 10. Daten werden verarbeitet durch diese Einheit 10, und das Ergebnis wird im Arbeitsspeicher gespeichert,
oder Daten werden übertragen vom Arbeitsspeicher zum Hilfsspeicher über die arithmetische und logische Einheit
10. Ein Operationsmikrobefehl kann ein Arbeits-Arbeits-, ein
Arbeit-Sofort- oder ein indirekter oder direkter Arbeits-HiIfs-Befehl
sein; der Arbeits-Arbeits-Mikrobefehl liest
zwei Größen vom Arbeitsspeicher aus und gibt das Ergebnis in den Arbeitsspeicher ein. Der Arbeit-Sofort-Mikrobefehl verwendet
unmittelbare Daten in dem Mikrobefehl zusammen mit einer Größe vom Arbeitsspeicher. Der Arbeits-Hilfs-Mikrobefehl
erhält eine Größe vom Arbeitsspeicher und eine vom Hilfsspeicher, wenn die Adresse der Größe in dem Hilfsspeicher
indirekt eine Ziffer ist, die vom Arbeitsspeicher erhalten wurde, oder wenn direkt die Adresse spezifiziert wird
109853/16^6
ID 2873 - 9 -
durch den Mikrobefehl und die Größe in dem allgemeinen Arbeitsregister
CWE. des Hilfsspeichers liegt.
Außenmikrobefehle umfassen die Befehle Arbeit-Außen und
Außen-Sofort. Der Arbeit-Außen-Mikrobefehl überträgt Daten
zwischen dem Arbeitsspeicher und einer Eingabe-/Ausgabe-Yorrichtung. Der Außen-Sofort-Mikrobefehl stellt in dem
Mikrobefehl spezifizierte Daten in einen Adapter einer Eingangs-/Ausgangs-Vorrichtung
ein.
Sprungmikrobefehle sind konditionell, unkonditionell, mehrwegig
oder verzweigt und verbunden (branch, link). Konditionelle Sprungbefehle testen bezüglich eines Null- oder
Nieht-Null-Bits im Arbeitsspeicher oder in dem allgemeinen
Arbeitsregisterbereich des Hilfsspeichers oder in dem festen
Bereich des Steuerspeichers oder bezüglich einer Nicht-Null-Ziffer im Arbeitsspeicher. Ein unkonditioneller Sprungbefehl
stellt Bits der S%a*e*mikrobefehladresse in dem Speicheradressenregister
SAR zurück. Der Mehrwegsprungmikrobefehl kann sechzehnwegig sein in Abhängigkeit von einer Ziffer im
Arbeitsspeicher oder vierwegig unter Verwendung der Niedrigordnungbits einer Ziffer im Arbeitsspeicher. Der Verzweige-
Sprung
und Verkette-Mikrobefehl bringt Bits der -&*=pe«mikrobefehladresse
an die Stelle zurück und speichert die zürUckgeleiteten Adressen in einer bezeichneten Stelle in dem Arbeitsspeicher.
Die Spezialmikrobefehle werden verwendet als Befehl (I-Fetch)
zum Zurückleiten zu einer Routine nach einem Verzweige- und Verkette-Mikrobefehl und zu Unterbrechungen, in denen eine
neue Zone des Arbeitsspeichers ausgewählt wird und die zurückgeführte Adresse in der alten Zone des Arbeitsspeichers gespeichert
wird.
1Q93S3/1646
ID 2873 - 10 -
Der feste Bereich des Steuerspeichers, der durch Arbeitsspeicher-direkt-Mikrobefehle
adressierter ist, wird eingeteilt in einen allgemeinen Bereich von 64 Halbwörtern
(16 Bits), der von allen Eingangs-/Ausgangs-Adaptern und der zentralen Verarbeitungseinheit CPU verwendet werden kann,
und sechs Gegenbereiche (private areas), einem für jeden der sechs EingangsVAusgangs-Adapter, d. h. Niedriggescheindigkeits-Eingangs-/Ausgangs-Drucker,
Kommunikationen, Scheifc benablagen und zwei Auswahlkanäle.
Die ellgemeinen Bereiche speichern Heile des Programmstatuswortes,
verschiedene Steuerregister einschließlich Register für Programmereignisaufnahme (PER), Zeit-aus-Zählungen für
Eingangs-ZAusgangs-Vorrichtungen, Ausloggdaten, einen Puffer
für die Programmereignisaufnahme, Datenunterbrechung und in dem Betrieb der Datenverarbeitungsanlage verwendete Ausgaben
und Datentabellen.
Die CPU-Außenregister 15 liefern verschiedene Steuerungen für die zentrale Yerarbeitungseinheit und die !Dastatur. Es
^ gibt zwei Reihen von Schaltern: eine Arbeit-außen-Reihe, die
' aus sechzehn Halbwörtern besteht und die Lese-/Schreibe-Steuerung
für· den Arbeitsspeicher hat, und eine Außen-sofort-Reihe,
die aus sechzehn Bytes (acht Bits) besteht und die eingestellt oder rückgestellt werden kann unter Verwendung
von unmittelbaren Daten, die einen Teil eines Außen-sofort-Mikrobefehls
bilden.
Im allgemeinen wird eine besondere Steuerung nur in einer
der beiden Reihen vorhanden sein. Es ist jedoch so etwas wie ein Bedingungskode vorhanden in beiden Reihen, d. h. die
beiden Bitbedingungskodes in dem Programm-Status-Wort müssen
109653/1646
ID 2873 - 11 -
in den Arbeitsspeicher eingelesen werden für Sprungbefehle, müssen aber auch in der Lage sein, durch Verwendung von unmittelbaren
Daten eingestellt zu werden.
Im Betrieb enthält das Programm-Status-Wort alle Informationen zur Steuerung der Programmausführung. Das Programm-Status-Wort
enthält die Befehlsadresse, den Bedingungskode, den Unterbrechungskode und andere Informationen. Eine vollständige
Beschreibung des Programm-Status-Wortes ist in der Betriebsbeschreibung des IBM-Systems 360 gegeben. Im allgemeinen
wird das Programm-Status-Wort verwendet zur Steuerbefehlsreihenfolge
und zum Anzeigen des Status des Systems in bezug zum ausgeführten Programm. Das aktive oder steuern-
Laufend— de Programm-Status-Wort wird als " Programm-Status-Wort"
bezeichnet. Durch Speichern des laufenden Programm-Status-Wortes während einer Programmunterbrechung kann der Status
der Verarbeitungsanlage für die folgende Verwendung erhalten
bleiben. Bei Laden mit einem neuen Programm-Status-Wort oder einem Teil eines solchen Programm-Status-Wortes kann der Zustand
der Verarbeitungsanlage in die Ausgangsstellung versetzt oder verändert werden.
Ein aus 1, 2 oder 3 Halbwörtern bestehender Befehl wird unter Steuerung eines I-Peteh-Mikrobefehls in dem Steuerspeicherregister
2 ausgegeben. Die Befehls-Fetch-Operation
hängt vom Format des Befehls ab. Die Befehle haben RR-, EX-, RS-, SI- und SS-Formate und werden im Detail in der
oben erwähnten Gebrauchsanweisung beschrieben. Bin RR-Format
bezieht sich auf einen Speicher zum Speichern von Operationen, d.h. zwei Größen vom Hilfsspeicher. Ein RX-Format betrifft
ein Register zur indizierten Speicheroperation. Ein RS-Format betrifft ein Register zur Speicheroperation. Ein
SI-Format bezeichnet eine Speicher-und unmittelbare Größen-
109853/1646
eine
operation. Ein SS-Format betrifft/Speicher-zu-Speieher-
operation. Ein SS-Format betrifft/Speicher-zu-Speieher-
Operation.
Der Befehlszählstand oder die Befehlsadresse wird in der
zentralen Verarbeitungseinheitszone des Arbeitsspeichers
gespeichert. Die zentrale Verarbeitungseinheitszone hat
acht adressierbare Wörter des Speichers. Diese Stellen werden wie folgt bezeichnet s
Stellen 0 und 1 - Arbeitsbereich Stellen 2 und 3 - wirksamer Adressen- und
Arbeitsbereich
Stellen 4 und 5 - Befehlszählung
Stelle 6 - erstes Halbwort des Befehls
Stelle 7 - Mikroprogrammstartadresse
Wie oben ausgeführt wurde, wird ein Befehl ausgegeben vom
Hauptspeicher unter der Steuerung des I-Fetch-Mikrobefehls
unter Verwendung einer Adresse, die durch den Befehlszähler in den Arbeitsspeicherstellen 4 und 5 geliefert wird. Die
Zählung in den Stellen 4 und 5 wird dann um 2 weitergestellt, Das erste Halbwort des Befehls wird in Stelle 6 eingestellt,
und der Befehlskode wird geprüft zur Bestimmung des Formats des Befehls.
Hat der Befehl RR-Format, dann wird die zweite Größe erhalten
vom Register für allgemeine Zwecke in dem Hilfsspeicher
durch Austasten des R2-Adressenfeldes des Befehls zum Hilfsspeicheradressenregister
direkt von der Stelle 6 im Arbeitsspeicher. Die Größe 2 wird in die Arbeitsspeicherstellen O
und 1 oder 2 und 3 eingegeben. Die Ausführung ihres Befehls kann nun beginnen.
109853/1646
102873 -13- 2122R59
Ist das Format des Befehls nicht RE, dann wird eine weitere Folge im Hauptspeicher ausgeführt unter Verwendung der Adresse
in den Stellen 4 und 5 des Arbeitsspeichers, die durch ein weiteres Weiterschalten um 2 gegeben sind. Das zweite Halbwort
wird eingestellt in Stelle 3 des Arbeitsspeichers. Das Bp-PeId im zweiten Halbwort des Befehls wird verwendet als
Adresse für das Register für allgemeine Zwecke. Der Inhalt dieses Registers für allgemeine Zwecke wird dem Dp-FeId des
zweiten Halbwortes des Befehls in Stelle 3 zugefügt und die Summe B0 + D~ in den Stellen 2 und 3 des Arbeitsspeichers
2 ^Wenn
gespeichert./der Befehl ein RX-Format hat, dann wird der Inhalt
des Registers für allgemeine Zwecke dadurch angezeigt, daß das X0-FeId zu dem Inhalt hinzugefügt wird und Bp + Dp der
Stellen 2 und 3 una die Summe in den Stellen 2 und 3 gespeichert
werden. Die Größe 2 wird dann ausgegeben vom Hauptspeicher bei einer Adresse, die durch den Inhalt der Stellen
2 und 3 indiziert ist. Die Ausführung kann jetzt beginnen für RX-, RS- und SI-Befehle.
Hat der Befehl ein SS-Format, so ist eine weitere Folge zum Hauptspeicher nötig zur Ausgabe des dritten Halbwortes des
Befehls. Zwei Hauptspeicheradressen müssen kalkuliert werden und zwei Größen vom Hauptspeicher ausgegeben werden, ehe der
Befehl ausgeführt werden kann.
Eine typische Folge von Mikrobefehlen zum Herausgeben der Befehle und Größen, Ausführen des Befehls und Speichern des
Ergebnisses ist wie folgt:
109853/1646
ID 2873 - 14 -
RX-Addieren
I-Fetch
Sprung (Index)
Sprung (Befehl)
Herausgabe Größe 2
Sprung (Operationskode) Addieren der Größen 1 und 2 Sprung (Überlauf)
I-Fetch
Sprung (Index)
Sprung (Befehl)
Herausgabe Größe 2
Sprung (Operationskode) Addieren der Größen 1 und 2 Sprung (Überlauf)
Speichern des Ergebnisses in Register für- allgemeine Zwecke
Sprung (Zeichen)
Sprung (Null)
Sprung (Null)
Nach der Erklärung der Arbeitsweise der Datenverarbeitungsanlage für einen Befehl ist es offensichtlich, daß ein Programm
von Befehlen in der gleichen Weise ausgeführt werden
kann. Wie oben beschrieben wurde, ist zur Unterstützung des | Programmierers bei der Beseitigung von Störungen in Programmen
ein Programmereignisaufnahmezug (PER) eingeschlossen, der es dem Programm erlaubt, für einzelne vorbestimmte Ereignisse
geändert zu werden. Vier typische oben aufgeführte Ereignisse sind die folgenden:
1) das Herausgeben eines Befehls von bezeichneten Hauptspeicherst
eilen j
2) die erfolgreiche Ausführung eines Sprungbefehls;
3) die Änderung oder Verwendung eines bezeichneten allgemeinen Registers (CPR) j
4) die Änderung oder Verwendung von bezeichneten Hauptspeicherstellen.
109853/1646
ID 2873
Das Programm besitzt Kontrolle über Bedingungen, die die betrachteten Programmereignisse (PE) für Aufnahmezwecke sind,
und kann ein oder mehrere ausgewählte anzuzeigende Ereignisse spezifizieren. Die ein Programmereignis betreffende Information
wird geliefert zu dem Programm durch eine Programmunterbrechung, wobei der Grund der Unterbrechung in dem Unterbrecherkodefeld
des Programm-Status-Wortes identifiziert wird. Die Programmereignisinformation wird in drei Steuerspeichern
A, B und C gespeichert, die sich im allgemeinen Bereich des Steuerspeichers befinden.
Das Format der Register A, B und 0 ist das folgendes Steuerregister A
Programmereignis aufnahmekode |
Programmereignisaufnahme - Register für allgemeine Zwecke - Änderungskodebits |
0 7 8
Steuerregister B
15 16
0 7 8
Steuerregister C
31
Programmereignisaufnahme- Startadresse |
31
Programmereignisaufnahme- Beendigungsadresse |
7 8
109853/1846
Bit | O | 4-7 |
Bit | 1 | |
Bit | 2 | |
Bit | 3 | |
Bits |
ID 2873 - 16 -
Die Programmereignisaufnahme-Kodebits O bis 7 des Steuerregisters
A indizieren die Ereignisse, die angezeigt und aufgenommen werden sollen. Die Bits werden wie folgt bezeichnet!
erfolgreicher Sprungkodebit Befehlsfetchkodebit
- Hauptspeicherkodebit
Register-für-allgemeine-Zwecke-Kodebit
- andere Ereignisse
Es ist klar, daß andere als die vier oben definierten Ereignisse aufgenommen werden können und daß Bits 4-7 oder andere
Kombinationen der Bits zur Spezifizierung dieser anderen Ereignisse
verwendet werden können. Eine 1 an irgendeinem der Teile 0 bis 3 zeigt an, daß das Ereignis aufzunehmen ist.
Eine 0 bewirkt, daß das Ereignis nicht aufgenommen wird.
Die Programmereignisaufnahme - Register-für-a11gemeine-Zwecke-Ä'nderungskodebits
16 bis 31 des Registers A bezeichnen, welche der Register für allgemeine Zwecke zur Änderung
oder Verwendung ihrer Inhalte aufgezeichnet werden sollen. Jedes der 16 Bits bezieht sich auf ein anderes der 16 Register
für allgemeine Zwecke, die im Hilfsspeicher 9 in der
Reihenfolge der ansteigenden Adressen angeordnet sind. Ist ein Bit eine "1", dann ist das Register eingeschlossen, und
ist das Bit eine "0", dann ist das Register von der Programmereignisaufnähme
ausgeschlossen.
Die Programmereignisaufnahme-Startadressenbits 8 bis 31 des Steuerregisters B bilden eine Adresse, die den Beginn des
aufzuzeichnenden Hauptspeicherbereiches bezeichnet. Die Programmereignisaufnahme-Beendigungsadressenbits
8 bis 31 des Steuerregisters C bezeichnen das Ende des aufzuzeichnenden Bereiches des Hauptspeichers·
109853/1646
ID 2873 - 17 -
Zusätzlich zu den Programmereignisaufnahme-Kodebits kann ein Programmereignismodebit in dem Programm-Status-Wort zur
Steuerung der Programmereigniaaufnahme verwendet werden} wenn beispielsweise das Programmereignismodebit in dem Programm-Status-Wort
eine "1" ist und ein Programmereigniskode eine "1" ist, dann ist die Programmereigniaaufnahme in Betrieb
j ist das Programmereignismodebit eine "0", dann ist die Programmereignisaufnahme gehemmt.
Programmunterbrechungen für die Programmereignisaufnahme
werden in der gleichen Weise behandelt wie andere Unterbrechungen. Die logische Steuerschaltung 19 ist mit einer Anzahl
von zusätzlichen Schaltern für die Programmereignisaufnahme versehen. Ein Programmereigniamodeschalter ist vorgesehen
für ein Programmereignismodebit, und Programmereigniskodeschalter sind vorgesehen für die Programmereigniskodebits.
Ein Programmereignis-aufgezeigt-Schalter ist vorgesehen für das Aufzeigen dafür, daß eine Programmunterbrechung
vorgenommen werden muß zur Aufnahme des angezeigten Ereignisses, und ein Programmereignisloggschalter für die Behandlung
verschiedener komplizierterer Ereignisse, wie noch beschrieben wird.
Die Programmereigniskodebits müssen nicht in Systemsteuerschaltern
in der logischen Steuerschaltung 19 gehalten werden, können aber in den Zentrale-Verarbeitungseinheit-Außenschaltern
15 gehalten werden, wobei dann die Programmereigniskodebits durch das Mikroprogramm getestet werden.
Eine besondere Ausführungsform der Erfindung wird nunmehr
beschrieben unter Bezugnahme auf das Flußdiagramm, das die
Anzeige und Aufnahme jedes der vier oben beschriebenen Ereignisse zeigt. Es ist jedoch zu beachten, daß andere Ereignisse
aufgezeigt und aufgenommen werden können und daß an-
1098S3/t64S
ID 2873 - 18 -
dere Datenverarbeitungsanlagen verwendet werden können.
Fig. 2A Es wird nunmehr Bezug genommen auf des Flußdiagramms,
welches mit dem I-Fetch-Mikrobefehl (50) in dem Steuerspeicherregister
beginnt. (Die Zahlen in Klammern beziehen sich auf Punkte in dem Flußdiagramm.) Als Teil des I-Fetch-Mikrobefehls
wird eine Anzahl von Tests durch die logische Steuerschaltung 19 ausgeführt. Zur Programmereignisaufnahme wird
der Programmereignis-aufgezeigt-Schalter (51) getestet, und ) falls er eingestellt ist, wird eine Programmunterbrechung
vorgenommen zur Aufnahme eines Ereignisses, welches während der letzten Befehlsausführung aufgezeigt worden ist. Das Einstellen
des Programmereignis-aufgezeigt-Schalters und die Programmunterbrechung werden später beschrieben.
Ist der Programmereignis-aufgezeigt-Schalter (51) nicht eingestellt,
dann wird der Programmereignismodeschalter (52) getestet. Ist dieser Schalter nicht eingestellt, dann wird
die Programmereignisaufnahme gehemmt, die I-Fetch-Operation
wird vervollständigt, und das Mikroprogramm wird fortgeführt zum Sprung des Operationakodemikrobefehls (53), d. h. dem
. Operationskode des herausgegebenen Befehls. Die Tests (51) und (52) treten gleichzeitig auf und können durch eine geeignete
logische Schaltung kombiniert werden.
/ % Fig. 2B
Der Sprung (54) in wird ausgeführt durch Treiben einer Adresse im Steueradressenregister des nächsten Mikrobefehls. Die Adresse hängt ab von Bits 0 und 1 des Operationskodes, d. h. ER-, RX-, RS- oder SI- oder SS-Format. Auch an diesem Punkt kann eine Mikroprogrammunterbrechung zur Auswahl einer anderen Zone des Arbeitsspeichers vorgenommen werden.
Der Sprung (54) in wird ausgeführt durch Treiben einer Adresse im Steueradressenregister des nächsten Mikrobefehls. Die Adresse hängt ab von Bits 0 und 1 des Operationskodes, d. h. ER-, RX-, RS- oder SI- oder SS-Format. Auch an diesem Punkt kann eine Mikroprogrammunterbrechung zur Auswahl einer anderen Zone des Arbeitsspeichers vorgenommen werden.
109953/1646
ID 2873 - 19 -
Ein Programmereignis wird angezeigt, wenn ein geeigneter
Mikrobefehl ausgeführt und ein zugehöriges Programmereigniskodebit
oder ein Schalter eingestellt ist.
Bei I-Fetch wird, wenn der Ereignismodeschalter eingestellt ist, ein Test (55) zur Bestimmung dafür, ob das I-Fetch-Adressenvergleichskodebit
eingestellt ist, ausgeführt. Der Test (55) kann ausgeführt werden durch Mikroprogrammtesten
der Kodebits in den Außenschaltern 15. Durch Vorsehen von Schaltern in der logischen Steuerung 19 für die Programmereigniskodebits
kann der lest (55) ausgeführt werden durch die Maschinensystemsteuerlogik durch Vergleich der Programmereigniskodebits
und der Bits des I-Fetch-Mikrobefehls. Die Tests (52) und (55) können durch eine geeignete logische
Schaltung kombiniert werden.
Wenn das Programmereignis-I-Fetcn-Adreasenvergleichskodebit
nicht eingestellt ist (Test 55), läuft das Hauptmikroprogramm
weiter. Ist das Programmereignis-I-Fetch-Kodebit eingestellt,
dann testet das Mikroprogramm (56), ob die Adresse des Befehls zwischen den Programmereignisaufnahme-Beginn- und
Programmereignisaufaahme-Ende-Adressen liegt. Der Test (56)
kann ausgeführt werden durch Vergleichen der Adressen in den Steuerregistern B und C mit der Befehlszählung. Liegt die
Befehlsadresse nicht zwischen den Programmereignisaufnahme-Beginn-
und Programmereignisaufnahme-Ende-Adressen, dann führt der Mikrobefehl "Vervollständige I-Fetch11 (57) die
Operation zum Hauptmikroprogramm zurück, welches fortschreitet zu dem Sprung auf Operationskodemikrobefehl (53). Der
"Vervollständige I-Fetch"-Mikrobefehl erlaubt dem I-Fetch,
ohne Testen bezüglich eines Programmereignisses ausgeführt zu werden. Liegt die Befehlsadresse im Bereich zwischen
Beginn- und Ende-Adressen, dann wird ein Programmereignis
109853/1SA6
ID 2873 - 20 -
angezeigt, und das Mikroprogramm stellt (58) den Programmereigniskode
und die Adresse des Befehls in einem Pufferregister in dem gemeinsamen Bereich des Steuerspeichers ein·
Das Mikroprogramm stellt dann den Programmereignis-angezeigt-Schalter
(59) ein. An diesem Punkt führt der "Vervollständige-I-Fetch"-Mikrobefehl
(57) die Operation zum Hauptmikroprogramm zurück.
Angenommen, daß kein Programmereignis auf den Operationskodemikrobefehl
angezeigt ist, dann läuft das Mikroprogramm w zurück zum Punkt A, und ein weiterer I-Fetch (50) wird gemacht.
Während dieses I-Fetch wird Test (51) wie vorher ausgeführt
zur Bestimmung dafür, ob ein Ereignis aufgenommen worden ist. Angenommen, der Programmereignis-angezeigt-Schalter
wurde während des vorhergehenden I-Fetch eingestellt,
dann wird eine Programmunterbrechung vorgenommen zur Aufnahme des Ereignisses.
Während der Unterbrechung werden der Programmereigniskode
und die Adresse in den Puffer an spezifizierte Stellen in dem
Hauptspeicher übertragen (60) und (61). Erzeugt ein Befehl mehr als ein Ereignis, dann werden alle Ereignisse gleich-
L· zeitig indiziert durch den Programmereigniskode, d. h. mehr
als ein Programmereigniskodebit kann vorhanden sein, aber nur eine Befehlsadresse ist nötig. Die Programmunterbrechung
. wird immer vorgenommen nach der Ausführung des Befehls in Antwort auf das Ereignis, so daß das Auftreten des Ereignisses
nicht die Ausführung des Befehls beeinflußt, der vervollständigt, beendet oder unterdrückt werden kann.
Während der Programmunterbrechung wird das laufende Programm-Status-Wort
ergänzt (62), d. h. die Adresse des nächsten Be-
109853/1646
ID 2873 - 21 -
fehls wird berechnet und in das Befehlszählungsfeld des
Programm-Status-Wortes eingeführt, und ein Programmereignisunterbreehungskode
wird eingeführt in das Unterbrechungsfeld des Programm-Status-Wortes zur Anzeige der Ursache
der Unterbrechung.
Der Programmereignis-angezeigt-Schalter und der Puffer werden
dann rückgestellt (63), Das laufende Programm-Status-Wort wird im Hauptspeicher (64) gespeichert, und ein neues
Programm-Status-Wort wird eingegeben (65) zur Analyse der Unterbrechung durch ein Programmunterprogramm (66). Nach
der Analyse der Unterbrechung wird das alte Programm-Status-Wort gewöhnlich durch den Programmierer (67) wieder eingegeben,
und die Operation wird zurückgeführt nach A, wo der I-Fetch fortgeführt wird. Ist mehr als ein Programmereigniskodebit
vorhanden, das anzeigt, daß ein Ereignis stattgefunden hat, so ist nur eine Unterbrechung nötig, da die
Unterbrechungsauswertung so ausgeführt ist, daß sie mehrere
Ereignisse behandeln kann.
Die anderen Programmereignisse können aufgezeigt v/erden
nach dem-aSprung auf Qnerationskodemikrobefehl (54), wie es
J? ig · ds und dXj
in den des Flußdiagramms gezeigt ist. Diese Ereignisse können angezeigt werden, wenn bestimmte Mikrobefehle
verwendet werden, d. h. ein Register-für-allgemeine-Zwecke-Änderungs-
oder -Yerwendungsereignis kann angezeigt
werden, wenn ein Register-für-allgemeine-Zwecke-Schreibbefehl
verwendet wird, ein Hauptspeicher-Ä'nderungs- oder -Verwendungsereignis
kann angezeigt werden, wenn ein Hauptspeicher-Schreibe-Mikrobefehl verwendet wird, und ein erfolgreiches
Sprungereignis kann angezeigt werden, wenn ein erfolgreicher Sprung-Mikrobefehl vorkommt. Der erfolgreiche Sprung-Mikrobefehl
folgt immer einem erfolgreichen Sprung im Mikroprogramm, das in dieser speziellen Ausführungsform verwendet
wird.
109853/1646
ID 2873 - 22 -
Ein Register-für-allgemeine-Zweoke- oder Hauptspeicher-Schreibe-Mikrobefehl
oder ein Erfolgreicher-Sprung-Mikrobefehl
kann vorliegen in einer Anzahl der Mikroprogrammumläufe, die dem Sprung auf Operationskode folgen, aber nur
ein Beispiel ist jeweils in dem Flußdiagramm gezeigt.
Fig. 2B Das erfolgreiche Sprungereignis ist in gezeigt. Ein erfolgreicher Sprungbefehl wird immer beendet durch einen
erfolgreichen Sprung-Mikrobefehl (68). Wie es für das I-Fetch-Ereignis
beschrieben wurde, wird der Ereignismodeschalter getestet (69). Ist dieser Schalter nicht eingestellt,
dann läuft das Mikroprogramm zurück zu A und fährt fort mit dem nächsten I-Fetch-Mikrobefehl. Ist der Ereignismodeschalter
eingestellt, wird ein Test (70) durch Mikroprogramm oder logische Steuerschaltung ausgeführt zur Feststellung,
ob das erfolgreiche Sprung-Programmereigniskodebit eingestellt ist. Wie oben festgestellt wurde, kann der
Test (70) ausgeführt werden durch Vergleichen der Programmereigniskodebits mit den Bits des Mikrobefehls. Ist der
Test (70) negativ, dann läuft das Mikroprogramm zurück zu A. Ist der Test (70) positiv, dann wird ein Programmereignis
W angezeigt, und der Prograinmereigniskode und die Adresse des Sprungbefehls werden gespeichert in dem Puffer (71)· Ist der
Sprungbefehl schon ausgeführt, dann kann die Programmunterbrechung
unmittelbar vorgenommen werden, und die Operation fährt fort zum Kasten B . Für dieses Ereignis
besteht keine Notwendigkeit zur Einstellung des Programmereignis-angezeigt-Schalters
zur Schaffung einer Unterbrechung. Die Unterbrechungsfolge (60) bis (67) wird, wie es
oben für das I-Fetch-Adressenvergleichs-Programmereignis
beschrieben wurde, ausgeführt.
109853/1646
ID 2873 - 23 -
Die Register-für-allgemeine-Zwecke- und Hauptspeicher-Änderungs-
oder -Verwendungs-Programmereignisse sind gezeigt in den Blättern B und G des Flußdiagramms. Die Ereignisse
werden angezeigt, wenn ein Schreibe-Mikrobefehl verwendet
wird. Diese Ereignisse können auftreten während der Ausführung der Befehle mit einer Anzahl von Formaten und sind
auch etwas schwieriger anzuzeigen.
Ist ein Register-fiir-allgemeine-Zwecke-Schreibe- (72) oder
ein Hauptspeicher-Schreibe- (73) -Mikrobefehl in das Steuerspeicherregister
eingegeben, dann wird der Programmereignismodeschalter (74) oder (75) getestet. Der Test (74) oder
(75) kann kombiniert werden mit dem Test bezüglich des Register-für-allgemeine-Zwecke-
oder Hauptspeicher-Programmereigniskodebits (76) oder (77). Wie bereits beschrieben
wurde, können die Tests (76) und (77) durch ein Mikroprogramm oder durch die logische Steuerschaltung 19 ausgeführt
werden, wobei dann die Tests (74) bis (77) durch geeignete logische Schaltungen ausgeführt werden*
Ist der Ereignismodeschalter nicht eingestellt oder ist das entsprechende Programmereigniskodebit nicht eingestellt,
dann wird das Hauptmikroprogramm fortgeführt (78) oder (79) } und
das Mikroprogramm wird zu A zurückgeführt. Zeigt der Test (74) oder (75) an, daß der Ereignismodeschalter eingestellt
ist, und zeigt einer der Tests (76) oder (77) an, daß das entsprechende Programmereigniskodebit eingestellt ist, dann
wird ein mögliches Programmereignis angezeigt und ein Programmereignisblockschalter
eingestellt (80). Der Programmereignisblockschalter ist in der logischen Steuerschaltung
19 angeordnet und wird eingestellt, um au ermöglichen, daß die das Procrammereignis betreffende Information zu der
Schaltzone (console zone) des Arbeitsspeichers (82) aus-
109853/1646
ID 2873 - 24 -
geloggt werden kann. Dieses Vorgehen erlaubt, daß die ausgeloggten
Daten ausgewertet werden können ohne Zerstörung der zentralen Verarbeitungseinheitszone des Arbeitsspeichers,
der in Betrieb war, als das mögliche Ereignis angezeigt wurde. Die Daten werden ausgeloggt zu der Kontroll-Konsolzone unter
Steuerung der logischen Steuerschaltung 19· Die logische Ausloggschaltung ist primär so ausgebildet, daß sie Fehlerbedingungs-Programmkontrollen,
Befehlsrückführung und Syst einrückst ellung (81) behandelt. Die zu der Konsolzone aus-
^ geloggten Daten enthalten die Inhalte des Steueradressenregisters,
des Pufferadressenregisters, des HilfsspeieheradreBsehregisters,
des Arbeitsspeicheradressenregisters und der zentralen Verarbeitungseinheitszone des Arbeitsspeichers.
Es ist zu beachten, daß die Auswertung einer Fehler- oder Kontrollbedingung in der Konsolzone Vorrang hat vor der Auswertung
eines Programmereignisses.
Die Operation der Datenverarbeitungsanlage fährt jetzt fort in der Konsolzone oder dem Arbeitsspeicher durch Antreiben
einer Mikroprogrammstartadresse zu einem Mikroprogrammumlauf zur Auswertung des Programmereignisses (83). Das Mikroprogramm
testet jetzt, ob der Programmereignis-Logg-Schalter ^ eingestellt worden ist (84). Ist der Programmereignis-Logg-Schalter
nicht eingestellt, dann setzt das Mikroprogramm eine Fehlerhandlung oder ein Systemrückstellunterprogramm
(85) in G-ang. Ist der Programmereignis-Logg-Schalter eingestellt,
dann beginnt das Mikroprogramm die Auswertung des Programmereignisses.
Das Mikroprogramm testet jetzt (86), ob das angezeigte Ereignis ein Register-für-allgemeine-Zwecke- oder ein Hauptspeicher-Ereignis
ist (S . Dieser Test kann ausgeführt werden durch Testen einer speziellen Bitposition des Kikro-
109853/1646
ID 2873 - 25 -
befehls, der in dem Steuerspeicherregister war, als das mögliche Ereignis angezeigt wurde. Dieser Mikrobefehl wird
gelesen von dem Steuerspeicher unter Verwendung des jetzt in der Konsolzone befindlichen Inhalts des Pufferadressenregisters.
Ist das mögliche Ereignis ein Register-für-allgemeine-Zwecke-Ereignis,
dann testet (87) das Mikroprogramm, ob der Inhalt des Hilfsspeicheradressenregisters die Register-für-allgemeine-Zwecke-Änderungsmaskenbits
im Register Ai angeordnet im Steuerspeicher, trifft. Ist das mögliche Ereignis ein
Hauptspeicher-Ereignis, dann testet (88) das Mikroprogramm,
ob die ausgeloggte Steueradressenregister-Adresse zwischen der Programmereignisaufnahme-Beginn- und Programmereignis-Ende-Adresse
liegt. Ist das Ergebnis des Tests £87) oder (88) positiv, dann wird ein Programmereignis angezeigt, und
der Programmereigniskode und die Adresse im Hauptspeicher oder im Hilfsspeicheradressenregister werden gespeichert in
dem Puffer in dem Steuerspeicher (89). Der Programmereignisangezeigt-Schalter
wird jetzt eingestellt (90). Das Einstellen des Programmereignis-angezeigt-Schalter3 ermöglicht
eine Programmunterbrechung nach Ausführung des laufenden Befehls.
Das Mikroprogramm fährt fort, nachdem der Programmereignisangezeigt-Schalter
eingestellt ist oder wenn die Tests (87 oder (88) negativ gewesen sind. Der Prοgrammereignis-Logg-Schalter
(91) wird rückgestellt und die zentrale Verarbeitungseinheit s-Zone des Arbeitsspeichers ausgewählt (92).
Die Ausführung des laufenden Befehls beginnt jetzt wieder (93) unter Verwendung einer Mikroprogramm-Startadresse in
der zentralen Verarbeitungseinheitszone des Arbeitsspeichers.
Schließlich läuft die Operation zu Punkt A zurück, wo der
109853/1646
Claims (22)
- ID 2873 - 26 -nächste I-Fetch versucht wird oder eine Unterbrechung durchgeführt wird, wenn der Programmereignis-angezeigt-Schalter eingestellt ist.ϊϋτ die Register-für-allgemeine-Zwecke- und Hauptspeicher-Programmereignisse kann die Auslogg-Einriehtung, die primär für die Pehlerbehandlungsprogrammkontrollen vorgesehen ist, die Befehlsrückführung oder die Syst einrückst ellung verwendet werden. Entsprechend ist es klar, daß die vorliegende Erfindung in einer Datenverarbeitungsanlage verwendet werden kann, ohne daß mehr als einige Schalter zum Ausführen von Programmereignistests nötig sind und die verbleibenden Tests durch das Mikroprogramm ausgeführt werden« Die Maschinenteil-Schalter stellen sicher, daß das Programmereignis-Mikroprogramm nur eingeführt wird, wenn das entsprechende Programm-Status-Wort und die Steuerregistermodebits eingestellt sind. Es liegt also keine Herabsetzung in der Arbeit der zentralen Verarbeitungseinheit vor, wenn der Programmierer die Programmereignisaufnahme zu übergehen wünscht. Durch Yerwen-dung des Mikroprogramms zur Ausführung der verschiedenen Tests kann der Gebrauch von zusätzlichen Maschinenteil-Schaltern vermieden werden.109853/1646 Patentansprüche;ID 2873 ~A~Pat entansprüch e(l/ Datenverarbeitungsanlage zur Ausführung eines Befehlsprogramms, in dem vorbestimmte Situationen, die während der Ausführung eines Befehls eintreten, als Programmereignisse bezeichnet werden, dadurch gekennzeichnet, daßdie Anlage Mittel zum Indizieren eines oder mehrerer bestimmter anzuzeigender Ereignisse,Mittel zum Anzeigen dafür, daß ein indiziertes Ereignis eingetreten ist,auf die Anzeige eines indizierten Ereignisses zum Aufnehmen desselben antwortende Mittelund Mittel zur Vervollständigung der Ausführung des Befehls, währenddessen das indizierte Ereignis angezeigt wurde, aufweist.
- 2. Datenverarbeitungsanlage nach Anspruch 1, dadurch gekennzeichnet , daß Mittel zur Erzeugung einer Programmunterbrechung auf die Vervollständigung der Ausführung des Befehls vorgesehen sind, in der ein indiziertes Ereignis aufgezeigt wurde, wodurch die Aufnahme des Ereignisses verzögert werden kann, bis der Befehl ausgeführt worden ist.
- 3. Datenverarbeitungsanlage nach Anspruch 2, dadurch gekennzeichne t , daß die die Unterbrechung erzeugenden Mittel einen ein Programmereignis anzeigenden Schalter aufweisen, der durch die anzeigenden Mittel als Antwort auf die Anzeige eines indizierten Ereignisses anspricht.109853/1646ID 2873 - 2f-
- 4-. Datenverarbeitungsanlage nach Anspruch. 2 oder 3, dadurch gekennzeichnet, daß ein Puffer zum Speichern eines oder mehrerer angezeigter Ereignisse repräsentierenden Kodes - und von Information, die die Speieher- oder Registerstelle indiziert, bei der das Ereignis auftrat, oder die Adresse des Befehls, bei der das Ereignis auftrat, speiohert und die Aufnahmemittel während der Programmunterbrechung zur Übertragung des Pr ogrammereigniskodes und der in dem Puffer gespeicherten Information zu spezifizierten Hauptspeicherstellen bewirkt.
- 5. Datenverarbeitungsanlage nach Anspruch 3» dadurch gekennzeichnet , daß der Programmereignisangezeigt-Schalter zu der Zeit getestet wird, zu der jeder Befehl vom Speicher herbeigeholt wird und zu der, wenn der Programoereignisschalter während der Ausführung des vorhergehenden Befehls eingestellt ist, die Programmunterbrechung zur Aufnahme des Ereignisses vorgenommen wird.
- 6. Datenverarbeitungsanlage nach einem der vorhergehenden Ansprüche, dadurch gekennzeichnet, daß Mittel zur Hemmung der Operation der die Programmereignisse anzeigenden Mittel vorgesehen sind, wodurch die Befehle ausgeführt werden ohne Aufnahme der Programmereignisse.
- 7* Datenverarbeitungsanlage nach Anspruch 6, dadurch gekennzeichnet, daß die hemmenden Mittel einen Programmereignismodeindikator aufweisen.
- 8. Datenverarbeitungsanlage nach Anspruch 71 dadurch gekennzeichnet , daß der Progratnmereignismodeindikator ein Bit eines Programm-Status-Wortes aufweist.109853/1646ID 2873 ,X
- 9. Datenverarbeitungsanlage nach einem der Ansprüche 2-8, dadurch gekennzeichnet, daß Mittel zur Lieferung eines Programmunterbrechungskodes in einem Programm-Status-Wort zur Anzeige dafür, daß die Unterbrechung für die Aufnahme eines Programmereignisses gewünscht wird, vorgesehen sind.
- 10. Datenverarbeitungsanlage nach einem der vorangehenden Ansprüche, dadurch gekennzeichnet, daß Mittel zum Ausloggen von Daten von den arbeitenden Teilen der Anlage zur Fehlerbehandlung, Kontrolle und Befehlsrückführung vorgesehen sind, wobei die Anzeigemittel die Mittel zum Ausloggen der Daten verwenden, wenn ein eine Auswertung verlangendes Programmereignis indiziert wird, wodurch Daten in den Operationsteilen der Anlage mit Bezug auf die Ausführungs des laufenden Befehls bewahrt werden, so daß die Ausführung des laufenden Befehls nach der Auswertung des indizierten Ereignisses vervollständigt werden kann·
- 11. Datenverarbeitungsanlage nach einem der vorangehenden Ansprüche, dadurch gekennzeichnet, daß Mikroprogrammsteuermittel zum Herausgeben von Befehlen vom Speicher und zur Ausführung von Befehlen in einer arithmetischen und logischen Schaltung, in der jedes Programmereignis einen zugehörigen Mikrobefehl hat und ·£» wobei die anzeigenden Mittel auf die Anzeige antworten, daß ein spezielles Ereignis anzuzeigen ist, und auf das Auftreten eines mit diesem Ereignis zusammenhängenden Mikrobefehls, vorgesehen sind.
- 12. Datenverarbeitungsanlage nach Anspruch 11, dadurch gekennzeichnet, daß eine Mehr-109853/1646ID 2873zahl von Schaltern vorgesehen ist, von denen jeder ein anderes anzuzeigendes Ereignis anzeigt und wobei die Ausgangssignale der Schalter logisch kombiniert sind mit speziellen Bits der Mikrobefehle zur Anzeige des Auftretens eines Ereignisses.
- 13. Datenverarbeitungsanlage nach Anspruch 7 oder 12, dadurch gekennzeichnet, daß ein in Übereinstimmung mit dem Programmereignismodeindikator einstellbarer Programmereignismodeschalter vorgesehen ist, der logisch verknüpft ist mit den Ausgangssignalen der Mehrzahl der Schalter, wodurch die Programmereignis anzeige, die durch die Mehrzahl der Schalter gegeben ist, gehemmt werden kann«
- 14. Datenverarbeitungsanlage nach Anspruch 10, dadurch gekennzeichnet, daß ein Ortsspeicher (local store) vorgesehen ist, dessen einer Teil den die Befehlsausgabe und Befehlsausführung umfassenden Operationen und dessen anderer Teil primär dem Ausloggen der Daten von den operierenden Teilen der Anlage zugeordnet ist, wobei in der Anzeige eineseine Auswertung verlangenden Programmereignisses zu diesem Programmereignis in bezug stehende Daten zu dem anderen Teil des Speichers ausgeloggt werden, während die zu der Ausführung des laufenden Befehls in Beziehung stehenden Daten in dem einen Teil des Ortsspeichers bewahrt werden.
- 15. Datenverarbeitungsanlage nach Anspruch 11 und 14, dadurch gekennzeichnet, daß ein Teil des Ortsspeichers Mikroprogrammadressen speichert, von denen die Ausführung des laufenden Befehls, nachdem das angezeigte Programmereignis in dem anderen Teil des OrtsSpeichers ausgewertet worden ist, beginnen kann.109853/1646
- 16. Datenverarbeitungsanlage nach, einem der Ansprüche 11, 14 oder 15, dadurch gekennzeichnet, daß eine logische Steuerschaltung für die Steuerung des Ausloggens der Daten zu der anderen Zone und zum Antreiben einer Mikroprogrammstartadresse, durch die das Mikroprogramm das angezeigte Programmereignis auswertet, vorgesehen ist.
- 17. Datenverarbeitungsanlage nach Anspruch 3 oder einem der Ansprüche 14-16, dadurch gekennzeichnet, daß der Programmereignis-angezeigt-Schalter eingestellt ist, wenn die Auswertung des Ereignisses eine vorbestimmte Bedingung erfüllt.
- 18. Datenverarbeitungsanlage nach Anspruch 11 oder einem der Ansprüche 14-17, dadurch gekennzeichnet, daß ein erstes und ein zweites Programmereignis zu der Änderung oder dem Gebrauch eines speziellen Ortsregisters oder zur Änderung oder dem Gebrauch einer Hauptspeicherstelle in einem bestimmten Bereich von Stellen entsprechend in Verbindung stehen,wobei ein Ortsspeicher-Mikrobefehl oder ein Hauptspeicher-Mikrobefehl dem ersten oder zweiten Programmereignis entsprechend zugeordnet ist,wobei die zu dem anderen Teil des Ortsspeichers ausgeloggten Daten den Inhalt des Hauptsteueradressenregisters, die Ortsspeicheradresse und den Inhalt der einen Zone des Ortsspeichers enthalten,und wobei die Auswertung einen Vergleich der Adresse des speziellen Ortsspeichers oder des speziellen Bereiches der Stelle mit der Adresse des tatsächlichen Registers oder der tatsächlichen Stelle entsprechend umfaßt.109853/16V6
- 19. Datenverarbeitungsanlage nach einem der Ansprüche 11-13, dadurch gekennzeichnet, daß ein drittes Programmereignis zum Herbeiholen eines Befehls von einem bestimmten Bereich des Speichers Bezug hat und zusammenwirkt mit dem Befehls-Fetch-Mikrobefehl, wobei das Mikroprogramm die tatsächliche Adresse des Befehls mit dem Bereich der Adresse in dem bezeichneten Bereich des Speichers vergleicht»
- 20. Datenverarbeitungsanlage nach Anspruch 3 oder 19,dadurch gekennzeichnet, daß der Programmereignis-angezeigt-Schalter eingestellt ist, wenn die tatsächliche Adresse in dem Bereich der Adresse des bezeichneten Speicherbereiches liegt.
- 21. Datenverarbeitungsanlage nach einem der Ansprüche 11-13, dadurch gekennzeichnet, daß ein viertes Programmereignis zu der erfolgreichen Ausführung eines Sprungbefehls Bezug hat und mit einem Erfolgreicher-Sprung-Mikrobefehl zusammenwirkt, der dem erfolgreichen Sprung folgt.
- 22. Datenverarbeitungsanlage nach Anspruch 3 oder 20,w dadurch gekennzeichnet, daß dieProgrammunterbrechung unmittelbar nach Anzeige des vierten Programmereignisses vorgenommen wird, ohne daß der Programmereignis-angezeigt-Schalter eingestellt wird.109853/1646
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
GB3073270 | 1970-06-24 |
Publications (1)
Publication Number | Publication Date |
---|---|
DE2122659A1 true DE2122659A1 (de) | 1971-12-30 |
Family
ID=10312282
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
DE19712122659 Pending DE2122659A1 (de) | 1970-06-24 | 1971-05-07 |
Country Status (3)
Country | Link |
---|---|
DE (1) | DE2122659A1 (de) |
FR (1) | FR2095524A5 (de) |
GB (1) | GB1264066A (de) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
IN155448B (de) * | 1980-03-19 | 1985-02-02 | Int Computers Ltd | |
US4538265A (en) * | 1983-03-24 | 1985-08-27 | International Business Machines Corporation | Method and apparatus for instruction parity error recovery |
JP3629181B2 (ja) | 2000-03-28 | 2005-03-16 | Necマイクロシステム株式会社 | プログラム開発支援装置 |
-
1970
- 1970-06-24 GB GB1264066D patent/GB1264066A/en not_active Expired
-
1971
- 1971-04-20 FR FR7115074A patent/FR2095524A5/fr not_active Expired
- 1971-05-07 DE DE19712122659 patent/DE2122659A1/de active Pending
Also Published As
Publication number | Publication date |
---|---|
FR2095524A5 (de) | 1972-02-11 |
GB1264066A (de) | 1972-02-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
DE2251876C3 (de) | Elektronische Datenverarbeitungsanlage | |
DE2714805C2 (de) | ||
DE2417795C2 (de) | Datenverarbeitungsanlage | |
DE2456578C2 (de) | Datenverarbeitungsanlage | |
DE1178623C2 (de) | Programmgesteuerte datenverarbeitende Maschine | |
EP0011685B1 (de) | Programmierbare Speicherschutzeinrichtung für Mikroprozessorsysteme und Schaltungsanordnung mit einer derartigen Einrichtung | |
CH654943A5 (de) | Pruefeinrichtung fuer mikroprogramme. | |
DE2322674A1 (de) | Mikroprogramm-steuereinrichtung | |
DE2746505C2 (de) | ||
DE2715073A1 (de) | Mikroprogrammierte rechner-steuervorrichtung | |
DE2054830C3 (de) | Informationsverarbeitungsanlage mit Mitteln zum Zugriff zu Speicher-Datenfeldern variabler Länge | |
EP0010185A1 (de) | Virtuell-Adressiervorrichtung für einen Computer | |
DE1774870C3 (de) | Einrichtung zur Adressierung einer Speicherzelle eines Speichers in einer Datenverarbeitungsanlage | |
DE3228405A1 (de) | Emulator zur erzeugung einer folge von steuersignalen | |
DE2440628A1 (de) | Datenverarbeitungsanlage mit mikroprogrammierung | |
DE1935944C3 (de) | Steuereinrichtung in einer elektronischen Datenverarbeitungsanlage | |
DE2533737A1 (de) | Datenprozessor | |
DE3307194C2 (de) | ||
DE2245284A1 (de) | Datenverarbeitungsanlage | |
DE2609698A1 (de) | Elektronischer rechner | |
DE1774421B1 (de) | Mehrprogramm datenverarbeitungsanlage | |
DE2122659A1 (de) | ||
DE2106731A1 (de) | Diagnoseeinrichtung fur elektronische Datenverarbeitungsanlagen | |
DE2622140C3 (de) | Einrichtung zur Steuerung manueller Operationen | |
DE2440390A1 (de) | Elektronischer rechner |