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
Application number
DE19712122659
Other languages
English (en)
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 DE2122659A1 publication Critical patent/DE2122659A1/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/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4812Task transfer initiation or dispatching by interrupt, e.g. masked
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1405Saving, restoring, recovering or retrying at machine instruction level
    • G06F11/1407Checkpointing the instruction stream
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/362Software debugging
    • G06F11/3648Software 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

Dr.phil. G.B. HAGEN
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.
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)
Speichern des Ergebnisses in Register für- allgemeine Zwecke
Sprung (Zeichen)
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.
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- 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)

  1. 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 Mittel
    und Mittel zur Vervollständigung der Ausführung des Befehls, währenddessen das indizierte Ereignis angezeigt wurde, aufweist.
  2. 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. 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/1646
    ID 2873 - 2f-
  4. 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. 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. 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. 7* Datenverarbeitungsanlage nach Anspruch 6, dadurch gekennzeichnet, daß die hemmenden Mittel einen Programmereignismodeindikator aufweisen.
  8. 8. Datenverarbeitungsanlage nach Anspruch 71 dadurch gekennzeichnet , daß der Progratnmereignismodeindikator ein Bit eines Programm-Status-Wortes aufweist.
    109853/1646
    ID 2873 ,X
  9. 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. 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. 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. 12. Datenverarbeitungsanlage nach Anspruch 11, dadurch gekennzeichnet, daß eine Mehr-
    109853/1646
    ID 2873
    zahl 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 22. Datenverarbeitungsanlage nach Anspruch 3 oder 20,
    w dadurch gekennzeichnet, daß die
    Programmunterbrechung unmittelbar nach Anzeige des vierten Programmereignisses vorgenommen wird, ohne daß der Programmereignis-angezeigt-Schalter eingestellt wird.
    109853/1646
DE19712122659 1970-06-24 1971-05-07 Pending DE2122659A1 (de)

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)

* Cited by examiner, † Cited by third party
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マイクロシステム株式会社 プログラム開発支援装置

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