DE1499200A1 - Data processing system with priority-controlled program interruption - Google Patents

Data processing system with priority-controlled program interruption

Info

Publication number
DE1499200A1
DE1499200A1 DE19651499200 DE1499200A DE1499200A1 DE 1499200 A1 DE1499200 A1 DE 1499200A1 DE 19651499200 DE19651499200 DE 19651499200 DE 1499200 A DE1499200 A DE 1499200A DE 1499200 A1 DE1499200 A1 DE 1499200A1
Authority
DE
Germany
Prior art keywords
program
psw
interruption
field
register
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
DE19651499200
Other languages
German (de)
Other versions
DE1499200B2 (en
Inventor
Magdall Albert Allan
Blaauw Gerrit Anne
Perkins Jun Charles Bertram
Peter Calingaert
Greene Kack Ellis
Villante Anthony Eugene
Collins Arthur Frederick
Carnevale Richard Joseph
Boehm Elaine Marie
Updike Bruce Martin
Amdhahl Gene Myron
Case Richard Paul
Hanf William Porter
Johnson Jacob Raymond
Helmut Weber
Rood John Willis
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 DE1499200A1 publication Critical patent/DE1499200A1/en
Publication of DE1499200B2 publication Critical patent/DE1499200B2/en
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/38Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
    • G06F7/48Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
    • G06F7/57Arithmetic logic units [ALU], i.e. arrangements or devices for performing two or more of the operations covered by groups G06F7/483 – G06F7/556 or for performing logical operations
    • G06F7/575Basic arithmetic logic units, i.e. devices selectable to perform either addition, subtraction or one of several logical operations, using, at least partially, the same circuitry
    • 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/16Error detection or correction of the data by redundancy in hardware
    • G06F11/1629Error detection by comparing the output of redundant processing systems
    • G06F11/1641Error detection by comparing the output of redundant processing systems where the comparison is not performed by the redundant processing components
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/14Protection against unauthorised use of memory or access to memory
    • G06F12/1458Protection against unauthorised use of memory or access to memory by checking the subject access rights
    • G06F12/1466Key-lock mechanism
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/10Program control for peripheral devices
    • G06F13/12Program control for peripheral devices using hardware independent of the central processor, e.g. channel or peripheral processor
    • G06F13/122Program control for peripheral devices using hardware independent of the central processor, e.g. channel or peripheral processor where hardware performs an I/O function other than control of data transfer
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/20Handling requests for interconnection or transfer for access to input/output bus
    • G06F13/22Handling requests for interconnection or transfer for access to input/output bus using successive scanning, e.g. polling
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/20Handling requests for interconnection or transfer for access to input/output bus
    • G06F13/24Handling requests for interconnection or transfer for access to input/output bus using interrupt
    • G06F13/26Handling requests for interconnection or transfer for access to input/output bus using interrupt with priority control
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/76Architectures of general purpose stored program computers
    • G06F15/78Architectures of general purpose stored program computers comprising a single central processing unit
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/12Digital output to print unit, e.g. line printer, chain printer
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/10Text processing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/38Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/38Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
    • G06F7/48Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
    • G06F7/50Adding; Subtracting
    • 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/22Microcontrol or microprogram arrangements
    • G06F9/226Microinstruction function, e.g. input/output microinstruction; diagnostic microinstruction; microinstruction format
    • 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/22Microcontrol or microprogram arrangements
    • G06F9/26Address formation of the next micro-instruction ; Microprogram storage or retrieval arrangements
    • 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/22Microcontrol or microprogram arrangements
    • G06F9/26Address formation of the next micro-instruction ; Microprogram storage or retrieval arrangements
    • G06F9/262Arrangements for next microinstruction selection
    • G06F9/264Microinstruction selection based on results of processing
    • 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30003Arrangements for executing specific machine instructions
    • G06F9/30007Arrangements for executing specific machine instructions to perform operations on data operands
    • G06F9/3001Arithmetic instructions
    • G06F9/30014Arithmetic instructions with variable precision
    • 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30003Arrangements for executing specific machine instructions
    • G06F9/30007Arrangements for executing specific machine instructions to perform operations on data operands
    • G06F9/30036Instructions to perform operations on packed data, e.g. vector, tile or matrix operations
    • 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30003Arrangements for executing specific machine instructions
    • G06F9/30007Arrangements for executing specific machine instructions to perform operations on data operands
    • G06F9/30036Instructions to perform operations on packed data, e.g. vector, tile or matrix operations
    • G06F9/30038Instructions to perform operations on packed data, e.g. vector, tile or matrix operations using a mask
    • 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30003Arrangements for executing specific machine instructions
    • G06F9/3005Arrangements for executing specific machine instructions to perform operations for flow control
    • G06F9/30058Conditional branch instructions
    • 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30094Condition code generation, e.g. Carry, Zero flag
    • 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30145Instruction analysis, e.g. decoding, instruction word fields
    • G06F9/3016Decoding the operand specifier, e.g. specifier format
    • G06F9/30167Decoding the operand specifier, e.g. specifier format of immediate specifier, e.g. constants
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2207/00Indexing scheme relating to methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F2207/38Indexing scheme relating to groups G06F7/38 - G06F7/575
    • G06F2207/3804Details
    • G06F2207/3808Details concerning the type of numbers or the way they are handled
    • G06F2207/3856Operand swapping

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Mathematical Analysis (AREA)
  • Computational Mathematics (AREA)
  • Pure & Applied Mathematics (AREA)
  • Mathematical Optimization (AREA)
  • Computing Systems (AREA)
  • Human Computer Interaction (AREA)
  • Mathematical Physics (AREA)
  • Computer Hardware Design (AREA)
  • Audiology, Speech & Language Pathology (AREA)
  • Computational Linguistics (AREA)
  • General Health & Medical Sciences (AREA)
  • Artificial Intelligence (AREA)
  • Computer Security & Cryptography (AREA)
  • Quality & Reliability (AREA)
  • Health & Medical Sciences (AREA)
  • Executing Machine-Instructions (AREA)
  • Document Processing Apparatus (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)
  • Controls And Circuits For Display Device (AREA)
  • Debugging And Monitoring (AREA)
  • Test And Diagnosis Of Digital Computers (AREA)
  • Bus Control (AREA)

Abstract

1,061,361. Editing data. INTERNATIONAL BUSINESS MACHINES CORPORATION. Feb. 11, 1965 [April 6, 1964], No. 5906/65. Heading G4A. In an electronic data processing system, data characters to be edited are transferred selectively and successively under partial control of a bi-stable device from a first (" source ") storage field to a second (" pattern ") storage field initially containing control and data characters (e.g. decimal point), whereby at the conclusion of an editing operation the second field contains selected characters from the first field selectively interspersed with data characters of the second field. Bytes each have 8 bits and comprise two binary-coded decimal digits or one such and a sign (" packed " format), or one such digit plus 4 zone bits (" unpacked " format). Provision is made for interchanging the two halves of a byte in a register to simplify test on a half, testing being done generally by subtracting a constant from the number and seeing if the result is zero. The bi-stable device referred to above is a " significance trigger " which is 0 if the next " source " character is presumed non-significant and 1 if significant. The trigger is set to 1 if the " source " character is non-zero, or when a " significance start " control character is detected in the " pattern " field, and set to 0 when a " field separation " control character is detected. The characters of the " pattern " field are accessed from memory in turn. Those not control characters are retained in the " pattern " field if the "significance trigger " is at 1 but replaced by fill characters if at .0. " Field separation " control characters are replaced by fill characters. Detection of a " significance start " control character or a " digit select " control character results in the accessing of the. corresponding " source " character. If this is non-zero or if the "significance trigger " is at 1, it replaces the control character in the "pattern " field after being " unpacked " by insertion of zone bits 1111. Otherwise the control character is replaced by a fill character. The editing operation is initiated by an instruction word containing an OP code specifying either normal, editing as above or the latter plus the additional feature of storing the address in the "pattern " field of the highest significant character in the "source" field when this is detected through switching of the " significance trigger ". This facilitates later insertion of e.g. a currency symbol. The editing instruction word also specifies the number of bytes in the " pattern " field and the addresses of the highest order bytes of the " source " and " pattern " fields. These addresses are each specified by specifying a number and a register, the contents of the register being added to the number to get the address. Detection of a sign character in the " source " field sets to 1 a trigger to indicate that a sign is present, and if the sign is negative sets a further trigger to 1 to indicate this. This will cause the " significance trigger " to be set to 1. The second sign trigger and another trigger set to 1 in the presence of a non-zero " source " digit can be used to control subsequent (unspecified) operations. Reference has been directed by the Comptroller to Specification 954,801.

Description

H99200H99200

IBM Deutschland IBM Germany Internationale Büro-Matchinen Geseihthaft mbHInternationale Büro-Matchinen Geseihthaft mbH

Böblingen, 23. 4. 69 jo-krBoeblingen, April 23, 69 yoy-kr

Anmelderin:Applicant:

International Business Machines Corporation, Armonk, N. Y. 10 50·^International Business Machines Corporation, Armonk, N.Y. 10 50 · ^

Amtliches Aktenzeichen:Official file number:

Aktenzeichen der Anmelderin:Applicant's file number:

Docket 6580 WBDocket 6580 WB

Datenverarbeitungsanlage mit vorranggesteuerter ProgrammunterbrechungData processing system with priority-controlled program interruption

Die Erfindung betrifft eine Datenverarbeitungsanlage mit vorranggesteuerter Programmunterbrechung, bei der ein laufendes Programm oder Unterprogramm durch ein diesem Programm zugeordnetes Programmstatuswort beschrieben wird.The invention relates to a data processing system with priority-controlled Program interruption in which a running program or subroutine is described by a program status word assigned to this program will.

Während der Ausführung der verschiedenen Operationen, die in programmgesteuerten Datenverarbeitungsanlagen ausgeführt werden, können gewisse Bedingungen auftreten, die eine Unterbrechung des normalen gerade ablaufenden Problemprogramms erfordern. Solche Bedingungen können in verschiedenen Teilen der Anlage auftreten; sie können durch Eingabe- und Ausgabeeinheiten hervorgerufen werden, z. B. wenn eine Eingabe- oder Ausgabeoperation begonnen oder beendet werden soll; sie können auch in sog. externen Einheiten auftreten, so in der Konsole, in einem im System verwendeten Zeitgeber, oder in anderen an die Anlage angeschlossenen Einheiten, die auf Verlangen eine^ofortige Berücksichtigung erfordern; auch festgestellte Fehler der Maschine oder des Programms können eine Unterbrechung notwendig machen. Normalerweise ist es beim Auftreten einer UnterbrechungsbedingungDuring the execution of the various operations that are carried out in programmatic Data processing systems are running, certain conditions can occur that an interruption of the normal running Require problem program. Such conditions can occur in different parts of the plant; they can through input and output units be caused, e.g. B. when an input or output operation is to be started or ended; they can also be used in so-called external Units occur, so in the console, in a timer used in the system, or in other units connected to the system that use Requests require immediate consideration; also detected errors the machine or the program may need an interruption do. Usually it is when an interrupt condition occurs

009810/1389009810/1389

'»11.1111'»11.1111

ausreichend, das gerade ablaufende Problemprogramm zu unterbrechen, ein Unterbrechungsunterprogramm auszuführen, und anschließend das Problemprogramm fortzusetzen.sufficient to interrupt the currently running problem program Run the interrupt subroutine, and then run the problem program to continue.

Es ist bekannt, bei Mehrkanalübertragungen jedem Kanal ein eigenes Kontrollwort zuzuordnen, welches die Eigenschaften und den Zustand dieses Kanals für eine Informationsübertragung angibt.It is known that each channel has its own control word in multi-channel transmissions to be assigned, which specifies the properties and the status of this channel for information transmission.

Es ist weiter bekannt, jedem Ein- und Ausgabegerät ein bistabiles Merkelement zuzuordnen, das bei einer Unterbrechungsanforderung für dieses Gerät eingestellt wird; diese Merkmalelemente werden zyklisch nach dem Vorliegen einer Unterbrechungsanforderung abgefragt. Ein Vorrang zwischen den Anfragen wird dabei nicht in Betracht gezogen.It is also known to have a bistable memory element for each input and output device to be assigned, which is set in the event of an interrupt request for this device; these feature elements are cyclic according to their existence queried an interrupt request. Priority between the requests is not taken into account.

Bei der vorliegenden Erfindung wird die Auswahl des mit höchster Dringlichkeit ausgestatteten unterbrechenden Programms unter Verwendung von Programmstatusworten in sehr anpassungsfähiger Weise vorgenommen. Beim Vorliegen mehrerer Anforderungen unterschiedlicher Dringlichkeit wird, beginnend bei der Anforderung geringster Dringlichkeit, laufend geprüft, ob noch eine Anforderung höherer Dringlichkeit vorliegt; erst wenn dies nicht mehr der Fall ist, wird die Anforderung der/ferzeit höchsten Dringlichkeit erledigt und anschließend nacheinander in umgekehrter Reihenfolge die Bearbeitung der restlichen Anforderungen durchgeführt.In the present invention, the selection of the one becomes a matter of urgency equipped interrupting program using program status words done in a very adaptable way. If there are several requirements of different urgency, starting in the case of the request of the lowest urgency, continuously checked whether there is still a request of higher urgency; only if this is not the case more is the case, the request for time becomes the highest priority done and then one after the other in reverse order processing of the remaining requirements.

Gegenstand der Erfindung ist demnach eine Datenverarbeitungsanlage mit vorranggesteuerter Programmunterbrechung, mit einem aktiven Programmstatuswort-Register (PSW-Register) für die Aufnahme der das laufende Programm beschreibenden Daten (Programmstatuswort) und mit einer Steuerschaltung zur Steuerung des Programmablaufs und zur Entgegennahme von Unterbrechungsanforderungen; sie ist gekennzeichnet durch mehrere inaktive PSW-Register für die Aufnahme von Daten zur Beschreibung bereitstehender Unterprogramme oder unterbrochener Programme; durch von der Steuer-The invention accordingly relates to a data processing system with priority-controlled program interruption, with an active program status word register (PSW register) for receiving the data describing the current program (program status word) and with a control circuit to control the program flow and to receive interrupt requests; it is characterized by several inactive ones PSW register for the inclusion of data available for description Sub-programs or interrupted programs; by the tax

Docket 6580 WB OOfSi 0/1389Docket 6580 WB OOfSi 0/1389

Schaltung zur Einleitung je eines Unterprogramms unterschiedlicher Polaritäten erregbare Steuervorrichtungen, die je einem Unterprogramm zugeordnet sind und die bei Erregung das aktive Programmstatuswort ergänzen, in das dem betreffenden Unterprogramm zugeordnete inaktive PSW-Register abspeichern und das diesem Unterprogramm zugeordnete Programmstatuswort in das aktive PSW-Register übertragen; und durch zwischen die Steuerschaltung und die Steuervorrichtungen eingefügte logische Schaltungen die nach jedem solchen Austausch von Programmstatusworten prüfen, ob weitere Unterbrechungsanforderungen vorliegen» und die gegebenenfalls eine weitere Steuervorrichtung höherer Priorität zum nochmaligen Austausch der Programmstatueworte erregen.Circuit for initiating a subroutine of different polarities excitable control devices, each assigned to a subroutine and which, when energized, supplement the active program status word, store them in the inactive PSW register assigned to the relevant subroutine and transfer the program status word associated with this subroutine to the active PSW register; and through between the control circuit and logic circuits inserted into the control devices after every such exchange of program status words check for further interrupt requests present »and possibly a further control device of higher priority for the renewed exchange of the program status words irritate.

Wenn für jedes bereitstehende Unterprogramm ein Registerpaar zur Aufnahme von Programmstatusworten vorgesehen wird, von denen eines leer ist und das Programmstatuswort des zu unterbrechenden Programms aufnimmt und von denen das andere das Programmstatuswort des unterbrechenden Programms enthält, so kann in einfacher Weise ein Austausch der Programmstatuswörter und der Übergang von einem laufenden Programm zu einem Unterprogramm vorgenommen werden» Ergibt die folgende * Prüfung, daß eine Unterbrechungsanfo-rderung höherer Dringlichkeit vorliegt, so gelangt das soeben ins aktive PSV/-Register eingetragene Programmstatuswort nunmehr is das leere Register des Regfcterpaares für das unterbrechende Programm höherer Dringlichkeit.' Dieser Vorgang kann sich wiederholen*If there is a pair of registers for recording for each available subroutine is provided by program status words, one of which is empty and receives the program status word of the program to be interrupted and the other of which is the program status word of the interrupting program contains, an exchange of the program status words and the transition from a running program to a subroutine can be made »If the following * check shows that a If there is a request for an interruption of higher urgency, this is done Program status word just entered in the active PSV / register now is the empty register of the register pair for the interrupting program higher urgency. ' This process can be repeated *

Sin Ausführungsbeispiel der erfindungsgernäßen Datenverarbeitungsanlage ird an Hand der Zeichnungen, erläutert» Es zeigen:Sin an exemplary embodiment of the data processing system according to the invention is explained on the basis of the drawings »They show:

Fig. 1: ein vereinfachtes Blockdiagramm einer DatenverarFig. 1: a simplified block diagram of a data processor

beitungsanlage, in der das erfindungsgemäße Unterbrechungssystem Verwendung finden kann;processing system in which the interruption system according to the invention Can be used;

009810/1389009810/1389

ORiQfNALORiQfNAL

Fig. 2: eine schematische Darstellung eines ProgrammstaFig. 2: a schematic representation of a program station

tuswortes; "'■"■■■.tuswortes; "'■" ■■■.

Fig. 3: ein Diagramm, das angibt, wann die verschiedenenFig. 3: a diagram indicating when the various

Arten von Unterbrechungsbedingungen in Bezug auf das Problemprogramm auftreten können, und zu welchen Zeiten die Unterbrechungsunterprogramme begonnen werden;Types of interruption conditions related to the problem program can occur, and too what times the interrupt subroutines are started;

Fig. 4: ein Diagramm, das für den Fall mehrerer gleichzeiFig. 4: a diagram that for the case of several at the same time

tig auftretender Unterbrechungsbedingungen angibt, in welcher Reihenfolge die dem Problemprogramm und den verschiedenen Unterbrechungsunterprogrammen zugeordneten Programmstatusworte vervollständigt und eingespeichert werden;tig occurring interruption conditions indicates the order in which the problem program and completes program status words associated with the various interrupt subroutines and stored;

Fig. 5: ein Blockdiagramm der Schaltung, mit deren HilfeFig. 5: a block diagram of the circuit with the help of which

festgestellt wird, ob eine angeforderte Unterbrechung gemäß dem gegenwärtig benutzten Programmstatuswort stattfinden kann oder nicht, undit is determined whether a requested interrupt according to the currently used program status word may or may not take place, and

Fig. 6: ein Blockdiagramm der Schaltung, die die für dieFigure 6 is a block diagram of the circuitry used for the

Anlage vorgegebene Dringlichkeitsreihenfolge der verschiedenen Unterbrechungen bestimmt.The system determines the priority order of the various interruptions.

Fig. 1 zeigt ein Biockdiagramm einer Maschine, in welcher das erfindungsgemäße U nterbrechungs system Verwendung finden kann. In diesem Diagramm stellt Block 1 einen Kernspeicher dar, der einen Hauptspeicher Z zur Speicherung von Makroinstruktionen, anderen Kontrollworten und Daten, die alle unterschiedlicher Länge sein können, und einen Arbeitsspeicher 3 aufweist, der für die auszuführenden Rechenoperationen die Funktion von Registern übernimmt.. Die 8-Bit-Speicherstellen werden adressiert vomAdressenregister 5; die eingespeicherten 8 Bits bilden jeweils ein Byte und werden parallel in das Patenregister 19 ausgelesen. Das Einschreiben von Daten erfolgt unter der Kontrolle der dem Speicher zugeordneten Sperr schaltung 4 in Über-Fig. 1 shows a block diagram of a machine in which the interrupt system according to the invention can be used. In this diagram, block 1 represents a core memory which has a main memory Z for storing macro instructions, other control words and data, all of which can be of different lengths, and a working memory 3 which takes on the function of registers for the arithmetic operations to be carried out 8-bit storage locations are addressed by address register 5; the stored 8 bits each form a byte and are read out into the data register 19 in parallel. The writing of data takes place under the control of the blocking circuit 4 assigned to the memory in over-

Docket 6580 WB 00981J/1389 ->? Docket 6580 WB 00981J / 1389 -> ?

einstimmung mit dem· Inhalt.de s Registers 19; Block 6 stellt einen. Festwertspeicher dar, in dem Makroinstruktionen gespeichert sind. Die Mikroinstruktionen werden aus durch das Adr.es senregister 7 bestimmten Speicherstellen in Leseverstärker-Verriegelungsschaltungen 8 ausgelesen. Nach erfolgter Decodierung werden sie zur Steuerung der Operationen der Rechenanlage verwendet. Die Steuerschaltungen sind durch Block 9 dargestellt, unter anderem umfassen sie die Schaltungen 10 und 11, die zur Steuerung der Unterbrechungen dienen. Letztere Schaltungen und ihre Arbeitsweise werden im Zusammenhang mit den Figuren 5 und 6 ausführlich erklärt. Die Blöcke 12 stellen die Teile der Anlage dir, von denen eine Unterbrechungsanforderung ausgehen kann. Arithmetische Und logische Operationen werden im Rechen-"Werk'lS ausgeführt. Die beiden Operanden, mit denen die arithmetischen und logischen Verknüpfungen vorzunehmen sind,1 werden über die Leitungen A (13) und B (14) den Pufferregistern A (l6) und B (17) zugeführt und von dort an da^/Rechenwerk weitergegeben. Die die. Ergebnisse darstellenden Signale .wurden auf die-Leitung Z,(15) gegeben,- von wo sie in eines oder mehrere der Register 19 bis 25 überführt werden. Diese "Register dienen verschiedenen Zwecken: Register 19 wird, wie. bereits erklärt,,als Hauptspeicherdatenregister verwendet: Register 20 dient als Instruktionszähler, die in ihm 21 gespeicherten Werte werden in das Adressenregister .5 übertragen; Register 21 wird als Zwischenadressenregister benutzt, die in ihm gespeicherten Werte dienen über das Adressenregister 5 zum Aufrufen der Speicher stellen de<s Hauptspeichers 1,. oder über das Adressertregistör 7 zürn Adressieren ■des· Festwertspeichers=, 6., Die: restlichen Register 22 bis 25'dienen zur zeitweiligen Speicherung des Operationscodes, de s Bedingungscödes, des Länggeaieodes und vonStatusbits, "Teiladresgeri oder änderen Informationen,, die im-Zusammenhang mit,dem-jeweils ausgeführten* Programm vbri Bedeutung sind* DieiAnisahl der Register ist selbstverständlich nicht'au:f die Zahl'der '"* in dör Zeichnung angegebenen: beschränkt. Die iri deri-Registef iiΪ ge speichertencWerten können, wie im Diagramm gezeigt, den*verscHeäenett Leitungen.·agreement with the · Inhalt.de s register 19; Block 6 represents one. Read-only memory in which macro instructions are stored. The microinstructions are read out from memory locations in sense amplifier locking circuits 8 which are determined by the address register 7. Once decoded, they are used to control the operations of the computer system. The control circuits are represented by block 9, among other things they comprise the circuits 10 and 11, which are used to control the interruptions. The latter circuits and their mode of operation are explained in detail in connection with FIGS. The blocks 12 provide the parts of the system from which an interrupt request can originate. Arithmetic and logical operations are carried out in the arithmetic “Werk'lS. The two operands with which the arithmetic and logical operations are to be carried out, 1 are transferred to the buffer registers A (13) and B (14) via the lines A (13) and B (14) (17) and passed on from there to the arithmetic unit. The signals representing the results were put on the line Z, (15) - from where they are transferred to one or more of the registers 19 to 25. These "Registers serve different purposes: Register 19 is how. already explained, used as main memory data register: Register 20 serves as an instruction counter, the values stored in it 21 are transferred to address register .5; Register 21 is used as an intermediate address register, the values stored in it are used via the address register 5 to call up the memories of the main memory 1. or via the address register 7 for addressing the · read-only memory =, 6., The : remaining registers 22 to 25 'are used for the temporary storage of the operation code, the condition code, the length code and status bits, "partial addresses or other information" In connection with the program executed in each case, the meaning is * The number of registers is of course not limited to the number of the "" * specified in the drawing. The iri deri registers stored values can, as shown in the diagram, the * different lines.

und.Ädressenregistern zugeführt wer den; so. können z»5©^ aus dem liaupt-' · 2 in-4ä.s Datenregister.f L9 ausgelesen© Datefa. übfer:die."ijeitun'g 13, ; '"und.Ädressenregisters who are supplied; so. z » 5 © ^ can be read out from the main- '· 2 in-4ä.s data register.f L9 © Datefa. . übfer: the "ijeitun'g 13; ''

das Puff er register 16, und das Rechenwerk 10 zu jedem anderen Register geleitet werden.the buffer register 16, and the arithmetic unit 10 passed to every other register will.

In der in Fig. 1 gezeigten Anlage wird die Ausführung von Problemprogrammai durch eine Folge von Makroinstruktionen kontrolliert; jede dieser Makroinstruktionen bestimmt eine auszuführende Operation, die unter der direkten Kontrolle einer Folge von Makroinstruktionen zur Ausführung gelangt. Der Operationskode einer jeden Makroinstruktion bestimmt diese Operation, dieIn the system shown in Fig. 1, the execution of problem programs controlled by a sequence of macro instructions; any of these macro instructions specifies an operation to be carried out which is carried out under the direct control of a sequence of macro instructions. Of the Operation code of each macro instruction determines this operation, the

Bits der Makroinstruktionen werden jedoch nicht direkt zur Kontrolle der Schaltungen der Anlage benutzt; hingegen bewirkt der in einem der Register gespeicherte Operationscode im Zusammenwirken mit den Steuer schaltungen 9 das Auslesen einer ersten Mikroinstruktion aus dem F estwert speicher 6. Die Adresse der jeweils nächsten Mikroinstruktion ist wenigstens teilweise in der vorangehenden Mikroinstruktion enthalten, die zur Vervollständigung der Adresse erforderlichen Bits hängen von den zu der Zeit in der Anlage bestehenden Verhältnissen und vom Operationscode der Makroinstruktion ab. "; ' . -· ■-■' : : ■■'■ ■ · '- ■ '-■■- ■ . / .■ .■■■■-·..-.·.".■·"* \u/iVi-.yr[s However, bits of the macro instructions are not used directly to control the circuitry of the system; on the other hand, the operation code stored in one of the registers, in cooperation with the control circuits 9, reads out a first microinstruction from the fixed value memory 6. The address of the next microinstruction is at least partially contained in the preceding microinstruction, the bits required to complete the address depend on the conditions prevailing in the system at the time and on the operation code of the macro instruction. "'-. · ■■': ■■ '■ ■ ·' - ■ '- ■■ - ■ / ■ ■■■■ - · · ..-....." ■ · "*. \ u / iVi-.yr [s

Nach Ausführung der einer Makroinstruktion entsprechenden Folge von Mikroinstruktionen wird die nächste Makroinstruktion von der Speicher stelle des Hauptspeichers ausgelesen, die durch den Instruktionszähler 20 bestimmt wird, und das Problemprogramm wird fortgeführt.After executing the sequence of microinstructions corresponding to a macroinstruction the next macro instruction is read from the memory location of the main memory, which is determined by the instruction counter 20 and the problem program will continue.

In der beschriebenen Rechenanlage wird die Ausführung aller Programme durch ein übergeordnetes Programm, das im folgenden als Monitorprogramm bezeichnet;wirdf. überwacht,. "Wenn.mehrere Programme, von denen jedes aus einer F.olge,von.Makrqin_struktip.nenf.besteht, durchgeführt werden.sollen, be-. stimmt dieses-Mpnitoipr.ograrniri die Reihenfolge ihrer Durchführung; es steuert auch die Unterprogramme, die beim Auftreten von Unterbrechung sbedingungen in der Anlage erforderlich werden. - . r ... . _.. .In the computer system described, the execution of all programs is carried out by a superordinate program, which is referred to below as the monitor program; if f . supervised,. "If.several programs, each of which consists of a sequence of.Makrqin_struktip.nenf., are to be carried out, this Mpnitoipr.ograrniri determines the order in which they are carried out; it also controls the subroutines that are included in the Occurrence of interruption conditions in the system become necessary - . R .... _ ...

Während der Ausführung von: Problemprogrammen arbeitet d unter der Kontrolle eines vom Monitorprogramm bereitgestellten. Kontrollwortes, das als Programmstatuswort..(PSW}.bezeichnet wird. Für die ver- During the execution of : Problem programs, d works under the control of one provided by the monitor program. Control word, which is referred to as the program status word .. (PSW}.

Docket 6580 WB 003810/1389 gAD Docket 6580 WB 003810/1389 gAD

schiedenen Unterbrechungsunterprogramme werden ebenfalls durch die Art der Unterprogramme bestimmte PSW' s verwendet. Die in den PSW' s enthaltene Informationen geben den jeweiligen Stand der Programme sowie die in der Anlage bestehenden Verhältnisse und Bedingungen wieder, zu diesem Zweck, wird es laufend korrigiert und vervollständigt. Neben anderen Informationen enthält es beispielsweise die Adresse der nächsten Makroinstruktion. Für die direkte Kontrolle eines gerade ablaufenden Programms ist das gegenwärtig benutzte oder aktive PSW in einer hierfür vorgesehenen Speichersteile des Arbeitsspeichers 3 enthalten; bestimmte Teile des PSW' s werden darüber hinaus in Registern, Verriegelungsschaltungen, oder ähnlichen zur zeitweiligen Speicherung dienenden Einrichtungen gegeben. Nichtaktive PSW' s, die zu gerade nicht zur Ausführunggelangenden Programmen, gehören, sind in hierfür vorgesehenen festen Stellen des Hauptspeichers 2 enthalten. Sowie ein Programm unterbrochen wird, wird das diesem zugeordnete PSW als "altes" PSW in den Hauptspeicher eingegeben und ein "neues" PSW, das zur* Kontrolle der nachfolgenden Operationen Anwendung findet, in den Arbeitsspeicher überführt. Diese PSW' s enthalten zu jeder Zeit die für eine Unterbrechung und späterer Wiederaufnahme eines Programms erforderlichen Informationen.different interruption subroutines are also supported by Art the subroutines use certain PSWs. The one contained in the PSW 's Information shows the current status of the programs as well as the existing relationships and conditions in the system Purpose, it is constantly being corrected and completed. Among other information it contains, for example, the address of the next macro instruction. For direct control of a program that is currently running, this is currently used or active PSW in a memory section provided for this purpose the main memory 3 included; certain parts of the PSW in addition, in registers, interlocking circuits, or the like Temporary storage facilities are given. Inactive PSW's, the programs that are not currently being executed are in Fixed locations of the main memory 2 provided for this purpose. As a program is interrupted, the PSW assigned to it is saved as a "old" PSW entered in the main memory and a "new" PSW, which is to * Control of subsequent operations is applied, transferred to the working memory. These PSWs contain the one for an interruption at all times and later resumption of a program.

Im folgenden wird eine eingehendere Beschreibung der Funktion der PSW' s und der Arbeitsweise des Unterbreehungssystems gegeben.The following is a more detailed description of the function of the PSW's and the functioning of the interruption system.

In Fig.. 2 ist das in der Anlage verwendete PSW 26 schematisch dargestelltes besteht aus den Bitpositionen 0 - 63, die in Feldern 26A bis 26K gruppiert sind. Nachstehend wird eine Erklärung der in diesen Feldern gespeicherten Informationen sowie der von diesen ausgeführten Kontrollfunktionen gegeben."In Fig. 2, the PSW 26 used in the system is shown schematically consists of the bit positions 0 - 63, which are grouped in fields 26A to 26K are. Below is an explanation of what is stored in these fields Information and the control functions performed by them are given. "

Feld 26A - Bits 0 bis 7 - SYSTEM-MASKEField 26A - Bits 0 through 7 - SYSTEM MASK

Beim Auftreten einer Forderung nach einer Eingabe/Ausgabe- oder einer "Externen" Unterbrechung dienen die Bits der System-Maske dazu zuWhen a request for an input / output or a The bits of the system mask are used for "external" interruptions

Docket 6580 WB 009810/138Docket 6580 WB 009810/138

' -β- t , U99200'-β- t , U99200

bestimmen, ob eine solche Unterbrechung gegenwärtig stattfinden kann, d.h. erlaubt ist, oder nicht. Die Bitposit'ionen 0 bis 6 entsprechen sieben verschiedenen Kanälen, über die die Eingabe/Ausgabe-Einheiten mit der Rechenanlage verbunden sind; Bitposition 7 ist den Einheiten zugeordnet, die ein externes -Unterbrechungsprogramm erforderlich machen können. Ein "0" Bit in einer dieser Bitpositionen bewirkt, dass die Ausführung des entsprechenden Unterprogrammes zurückgestellt wird; ein "1" Bit zeigt an, dass das Unterprogramm zur Ausführung gelangen kann. Der Zweck dieser Unterbrechungen und die durch sie bedingten Vorgänge werden später näher erläutert.determine whether such an interruption can currently take place, i.e. is allowed or not. The bit positions 0 to 6 correspond to seven different channels via which the input / output units are connected to the computer system; Bit position 7 is assigned to the units that require an external interrupt program can do. A "0" bit in one of these bit positions causes the execution of the corresponding subroutine to be postponed will; a "1" bit indicates that the subroutine can be executed. The purpose of these interruptions and what they cause conditional operations will be explained in more detail later.

j Die System-Maske des aktiven PSWs ist im Arbeitsspeicher und darüberj The system mask of the active PSW is in the main memory and above

. ·

hinaus auch in Verriegelungsschaltungen gespeichert.also stored in interlock circuits.

Feld 26B - Bits 8 bis 11 - SPEICHERSCHUTZCODE Dieser 4-Bit-Code definiert die Bereiche des Hauptspeichers, die für die Instruktionen des gerade ablaufenden Programms zugänglich sind. Stimmt der Speicherschutzcode mit dem in einer zur Adressierung des Hauptspeichers benutzten /dresse enthaltenen Speichercode nicht überein, so wird eine Unterbrechung des Programms erforderlich.Field 26B - Bits 8 through 11 - MEMORY PROTECTION CODE This 4-bit code defines the areas of the main memory that are accessible for the instructions of the program currently running. If the memory protection code does not match the memory code contained in a memory code used / address used to address the main memory, an interruption of the program is necessary.

Der Speicherschutzcode des aktiven PSWs ist im Arbeitsspeicher und in einem Register der Rechenanlage enthaltenThe memory protection code of the active PSW is in the working memory and contained in a register of the computer system

■■■-'■--■" I' ■■■ - '■ - ■ "I'

Feld 26C - Bit 12 - Unbenutzt . \ Field 26C - Bit 12 - Not used. \

Docket 6580 WBDocket 6580 WB

009810/1389009810/1389

OBlOiNALtNSPECTEDOBlOiNALtNSPECTED

Feld 26D - Bit 13 - MASCHINEN-PRUEFMASKE ' Field 26D - Bit 13 - MACHINE TEST MASK '

Dieses Bit wird zur Feststellung benutzt, ob eine Maschiiien-Prüf-Unterbrechung .stattfinden kann oder nicht. Eine solche Unterbrechung wird angefordert wenn in der Arbeitsweise der Rechenanlage ein Fehler festgestellt wurde. Ist dieses Bit eine "1", so wird die Unterbrechung eingeleitet; ist dieses Bit jedoch eine "0", wird das gerade ablaufende Programm fortgeführt.This bit is used to determine whether there is a machine check interrupt .can take place or not. Such an interruption is requested if an error is found in the operation of the computer system became. If this bit is a "1", the interruption is initiated; however, if this bit is a "0", the currently running bit becomes Program continued.

Feld 26E - Bit 14 - LAUF/WARTField 26E - Bit 14 - RUN / WAIT

Wenn dieses Bit eine "0" ist, führt die Rechenanlage Instruktionen aus, sie "läuft". Wird dieses Bit hingegen zu "1", so wird die Ausführung von Instruktionen unterbrochen und die Anlage wartet bis eine Unterbrechung des Programms erfolgt.If this bit is a "0", the computer executes instructions she runs". If, however, this bit becomes "1", the execution of Instructions interrupted and the system waits until the program is interrupted.

Feld 26F - Bit 15 - MONITOR/PROBLEM · Field 26F - Bit 15 - MONITOR / PROBLEM

Ist dieses Bit eine "1", so befindet sich die Rechenanlage im Problemprogrammstatus, die Programme gelangen normal zur A5USführung. Wird dieses Bit zu "0", so befindet sich die Rechenanlage-im Monitor status, in welchem nur besondere Funktionen ausgeführt werden können, alle anderen Funktionen führen zu einer Fehleranzeige.If this bit is a "1", then the computer system is in the problem program status, the programs reach normal to 5 A base columns. If this bit becomes "0", the computer system is in the monitor status, in which only special functions can be carried out; all other functions lead to an error display.

Die Bits 13, 14 und 15 des aktiven PSWs sind im Arbeitsspeicher gespeichert, Bits 13 und 14 sind darüber hinaus auch in Verriegelungsschaltungen enthalten. Bits 13, 14 and 15 of the active PSW are in memory are stored, bits 13 and 14 are also included in interlock circuits.

65βο WB 009810/138965βο WB 009810/1389

Feld 26G - Bits 16 bis 31 - UXTER.BRECHUNGSCODE - , ·, ... Field 26G - Bits 16 to 31 - UXTER.BRECHUNGSCODE -, ·, ...

Dieser 16-Bit-Code wird zur Angabe des Grundes benutzt, der eine
Unterbrechung herbeiführte; er bestimmt für die verschiedenen Unterbrechungsarten sowohl die Einheit, die ein Unterbrechungsprqgramm anforderte, als auch den Grund oder die Bedingung die die Unterbrechung
erforderlich machte. . ·
This 16-bit code is used to indicate the reason that a
Caused interruption; For the various types of interruption, it determines both the unit that requested an interruption program and the reason or condition that caused the interruption
made necessary. . ·

Der Unterbrechungscode ist im aktiven PSW nicht enthalten; diese
Information wird dem PSW erst dann.zugeführt, wenn es bei einer ,....-.
Unterbrechung als altes PS\*/ in den Hauptspeicher überführt wird.
The interrupt code is not included in the active PSW; these
Information is only fed to the PSW when it is ...
Interruption is transferred to main memory as old PS \ * /.

Feld 26H - Bits 32 und 33 - IX\STRUKTIOXSL· AEXGEXC ODE ' ' " '"' ''"' Λ"'"' ; Field 26H - Bits 32 and 33 - IX \ STRUKTIOXSL · AEXGEXC ODE ''"'"'''"' Λ "'"';

In der Anlage finden Mixkr.oinsiruktiönen verschiedener Länge Anwendung, j " Die 8-ii It-ByLe-S;,. aus deneiv sich-eine Jnslruktion.zusitrnmensetzt, slr.d · · ■':■-■"■■ in aufeinanderfolgenden Speiche:r stelle ή "entlialten. Der Instruktion!.'1..^t-I1 ^
code wird durch das Monitorprogramrn im Falle einer Maschinen-Prüfungsr .-, UnterbrechungjOdei' ein,er .Prograrum-Prüfungs-Unterbrechung beri'utzt, xxm die Adresse des "ersten Bytes der Instruktion, die die Unterbrechung hervor- ;
Mixkr.oinsiruktiönen of different lengths are used in the appendix, j "The 8-ii It-ByLe - S;,. From which an instruction. Is composed, slr.d · · ■ ': ■ - ■" ■■ in successive Store : r place ή ". The instruction!. '1 .. ^ tI 1 ^
code is used by the monitor program in the case of a machine check number. "InterruptjOdei", the .Prograrum check interruption is used, xxm the address of the "first byte of the instruction which produced the interruption;

rief, zu bestimmen. Bits.32 und 33 dienen zur Bestimmung der Lfinge der_.
Instruktion, die derzeit ausgeiührt oder gerade beendet wird: Sie- «-<-i:c?f; ·.*."»-,-von jeder Makroinstruktion, deren Bitpositionen 0 und 1 die Länge der
Instruktion kennzeichnen, in das PSY/ eingefügt, sodass die Speicheradresse
called to determine. Bits 32 and 33 are used to determine the length of the_.
Instruction currently being executed or just being completed: Sie- «- <- i: c? F; ·. *. "» -, - of every macro instruction whose bit positions 0 and 1 correspond to the length of the
Mark instruction inserted into the PSY / so that the memory address

des ersten Bytes der Instruktion besfifiVrnt werden kann.'of the first byte of the instruction can be identified. '

Feld 261.- Bits 34 und 35v-"'-BEa)iN6Ü^GSCOOEV^'* ' "'-'·.· ''' '"'" '"-'= ; ^V ''■"■ Field 261.- Bits 34 and 35v - "'- BEa) iN6Ü ^ GSCOOE V ^' * '"' - '·. ·''''"'"'"-' = ; ^ V ''■" ■

Dieser Code kennzeichnet ^-dingungen, die-beitd'e^ ?«·»>·■■ 13ClThis code identifies ^ -conditions, die-beitd'e ^? «·»> · ■■ 13Cl

Ausführung vorangeg^Rgei·? ·. tr, RechenanlageExecution previous ^ Rgei ·? ·. tr, computer system

sind. Im aktiven PSV/ ist dieser Code in decodicrter Form im Arbeitsspeicher enthalten:are. In the active PSV / this code is in decoded form in the working memory contain:

Bits 34 und 35 4-Bit-Code des aktiven PSV/'a.Bits 34 and 35 4-bit code of the active PSV / 'a.

00 100000 1000

01 010001 0100

10 001010 0010

11 000111 0001

Bei der Ausführung einer Instruktion, in deren Verlauf ein Code in das Bedingungsrcrgister der Anlage gebracht wird, wird jeweils der im PSW enthaltene 4-Bit-Code geändert, um das Ergebnis der ausgeführten Operationen zu kennzeichnen. Dor Code bleibt dann solange unverändert, bis eine andere Instruktion eine Aenderung des Bedingungsregisters bewirkt. When executing an instruction in the course of which a code is written into the Condition register of the system is brought, the in PSW contained 4-bit code changed to reflect the result of the executed To mark operations. Dor code stays that long unchanged until another instruction changes the condition register.

Feld ?.6J - Bits 36 bis 39 - PROGRAMM-PRUeFMASKC' Field? .6J - Bits 36 to 39 - PROGRAM-PRUeFMASKC '

Diese Bits worden zur Feststellung ber.ut/.t, ob eine angeforderte Programm-Prüfungs-Unterbrechung stattfinden kann oder nicht; eine solche Unterbrechung wird erforderlich nachdem im Programm ein Fehler festgestellt wurde.These bits were used to determine whether a .ut / .t was requested Program exam interruption may or may not occur; such An interruption is required after an error has been detected in the program.

Jedes der 4 Bits entspricht einer von vier Unterbrechungsbedingungen, die in der Rechenanlage auftreten können. Beim Auftreten einer soK her.Each of the 4 bits corresponds to one of four interruption conditions, which can occur in the computer system. When a soK occurs.

Bedingung wird d * entsprechende :VIt betrachtet, ist es eine 'M", s>j wird eine Programm-Prüfungs-Unterbrechung eingeleitet, ist es hingegen eine "0", eo wird das laufende Programm fortgeführt.Condition is considered d * corresponding: VIt, it is an 'M ", s> j If a program check interruption is initiated, if it is "0", however, the current program is continued.

Die Programm-Prüfmaske ist Teil des aktiven PSW's und somit im Arbeitsspeicher enthalten.The program check mask is part of the active PSW and therefore in the RAM included.

Feld 26K- Bits 40 bis 63 - INSTRUKTIONSADRESSEField 26K- Bits 40 through 63 - INSTRUCTION ADDRESS

Diese'Bits definieren die Adresse der nächsten Makroinstruktion.die im Verlaufe des laufenden Programms auszuführen ist.These bits define the address of the next macro instruction is to be carried out during the running program.

Docket 6580 WBDocket 6580 WB

009810/1389009810/1389

H99200H99200

Nach Ausführung einer Makroinstruktion ist die Adresse der nächsten Instruktion des laufendes Programms sowohl im Instruktionszähler der Anlage als auch in den Bitpositionen 40 bis 63 des aktiven PSWs enthalten. Während der Ausführung einer jeden Instruktion wird diese Adresse in Uebereinstimmung mit dem Instruktionslängencode, der in jeder Instruktion enthalten ist, erhöht; die Adresse wird ersetzt, wenn die normale Instruktionsreihenfolge durch eine Verzweigungsinstruktion unterbrochen wird.After executing a macro instruction, the address is the next Instruction of the current program both in the instruction counter of the System as well as in bit positions 40 to 63 of the active PSW. During the execution of each instruction, this address is stored in Consistent with the instruction length code included in each instruction is included, increased; the address is replaced when the normal instruction sequence is interrupted by a branch instruction will.

Das in der beschriebenen Datenverarbeitungsanlage verwendete Unterbrechungssyst.em gestattet die Unterbrechung laufender Programme und die Ausführung von Unterbrechungsunterprogrammen, die durch Bedingungen erforderlich werden, die in externen Einheiten des Systems, in E/AEinheiten oder in der Rechenanlage selbst auftreten. Eine Unterbrechung besteht in der Einspeicherung des aktiven PSW1S als "altes" PSW und der Bereitstellung eines "neuen" PSW1S. Anschliessend beginnt die Ausführung des durch das neue PSW bestimmten Programms unter den Bedingungen und an der Stelle, die durch das neue PSW definiert werden.The interrupt system used in the data processing system described allows the interruption of running programs and the execution of interrupt subroutines which are required by conditions which occur in external units of the system, in I / O units or in the computer system itself. An interruption consists in storing the active PSW 1 S as the "old" PSW and providing a "new" PSW 1 S. Then the execution of the program determined by the new PSW begins under the conditions and at the point specified by the new one PSW can be defined.

In der Anlage können fünf verschiedene Arten von Unterbrechungsbedirigiingen auftreten: .There can be five different types of interruption conditions in the system appear: .

1. MASCHINEN-PRUEFUNG1. MACHINE TESTING

Eine Maschinen-Prüfungs-Unterbrechung wird eingeleitet, sobald ein Fehler der Maschine festgestelltA machine test interruption is initiated as soon as an error occurs detected by the machine

0Ö9Ö10/13890Ö9Ö10 / 1389

SADSAD

Docket 6580 WB " . - ■- , ^ \ 4 *: vl Docket 6580 WB " . - ■ -, ^ \ 4 *: v l

2. PROGRAMM- PRUEF-UXC- ..-■·■: : . ·-" /, \ . -2. PROGRAM- PRUEF-UXC- ..- ■ · ■::. · - "/, \. -

Eine Programm-Prüfungs-Unterbrechung wird eingeleitet, sobald ein Fehler im'Programm festgestellt wurde, so z.B. ein ungültiger Operationscode, eine falsche Speicheradresse oder eine Ueber lauf oedingung. A program check interruption is initiated as soon as a Error was found in the program, e.g. an invalid operation code, an incorrect memory address or an overflow condition.

3. EINGABE/AUSGABE ' "■ ' 3. INPUT / OUTPUT '"■'

Eine Eingabe/Ausgabe-Unterbrechung wird eingeleitet, sobald eine Eingabe/ Ausgabe-Einheit während der von ihr ausgeführten Operationen einen Punkt erreicht, an dem das Monitorprogramm zur Bestimmung des weiteren Arbeitsverlaufs der Anlage hinzugezogen werden muss.An input / output interruption is initiated as soon as an input / Output unit a point during the operations it performs reached, at which the monitor program must be used to determine the further work process of the system.

4. EXTERN ' . 4. EXTERNAL '.

Eine externe Unterbrechung wird eingeleitet, sobald die Rechenanlage von externen Einheiten, deren Operationen keinen Aufschub erlauben, benutzt werden muss.An external interruption is initiated as soon as the computer system from external units whose operations cannot be postponed, must be used.

5. MONITOR-RUF . ... .·.-.,;/ .;.,.. : Eine Monitor-Ruf-Unterbrechung wird durch eine besondere. Monitor-Ruf- .: Instruktion eingeleitet. Der Hauptanwendungs zweck dieser Unterbrechung.-.: besteht darin, die ,Recherianlage vom Problemstatus ,in den Monitor status ... umzuschalten; dies ist erforderlich.wenn ein PSW ersetzt oder geändert/ ; werden soll. . .... ,-....- .. ..:: , . ,,; „ .,'-'. ·>- ■ - 5. MONITOR CALL . .... · .-.,; /.;., .. : A monitor call interruption is triggered by a special. Monitor call. : Instruction initiated. The main purpose of this interruption: is to switch the research system from the problem status to the monitor status ...; this is required if a PSW is replaced or changed /; shall be. . ...., -....- .. .. ::,. ,, ; "., '-'. ·> - ■ -

Wie bereits erwähnt.können Maschinen-Prüfungs-, Programm-Prüfunqs-. Eingabe/Ausgabe- und externe -Unterbrechungsunterprogramme nur dann eingeleitet werden,, wenn die entsprechenden Maskenbits des aktiven 11PS W s eine "1" darstellen; ist hingegen das entsprechende Bit eine "0", so kann eine Unterbrechung nicht erfolgen, bis zur Aeiiderung des Bits auf "1". Eine Monitor-Ruf-Unter-- ——■ As already mentioned, machine testing, program testing. Input / output and external interrupt subroutines are only initiated if the corresponding mask bits of the active 11 PS W s represent a "1"; if, on the other hand, the corresponding bit is a "0", an interruption cannot take place until the bit changes to "1". A monitor call sub-- —— ■

Docket 6580 WB 0 0 9 810/1389 'Docket 6580 WB 0 0 9 810/1389 '

brechung wird «.k:re!; e,;:;e IA .:.'iu;iscru.<iion eingeleitet und i-Fiordri;t .~. v?*%v» daher kein Maskenbit im PSV/.refraction becomes «.k: re !; e,;:; e IA .:. 'iu; iscru. <iion introduced and i-Fiordri; t. ~. v? * % v »therefore no mask bit in PSV /.

Das in Fig. 3 gezeigte Diagramm gibt an( zu w.elcher. Zeit, mit B.-zu- ,lui das Problemprogramm,. die Anforderungen für die verschiedenen Arten. von. Unterbrechungen auftreten und zu welcher Zeit die Unterbrechungen vorgenommen werden können. V/ie bereits erwähnt, werden die durdh Makroinstruktionen definierten Operationen unter der direkten Steuerung einer Folge von Aiikroinstruktionen 1 bis i: ausgeführt, die durch die jeweilige Makroinstruktion bestimmt ist (Spalten 3-OA und 30B).The diagram shown in FIG. 3 indicates ( at what time, with B.-to-, lui the problem program,. The requirements for the various types. Of. Interruptions occur and at what time the interruptions can be made. As already mentioned, the operations defined by the macroinstructions are carried out under the direct control of a sequence of microinstructions 1 to i: which is determined by the respective macroinstruction (columns 3-OA and 30B).

Pfeile in der Spalte "Unterbrechung angefordert1.' (30C) geben für jede Unterbrechungsart an, zu welcher Zeit, mit Bezug auf die Mlkroinstruktionsfol.ge,. eine .Unterbrechung a ivgt-fordert werden kann. / ... .t.- .:"Arrows in the column "Interruption requested 1. " (30C) indicate for each type of interruption at what time, with reference to the microinstruction sequence, an .interrupt can be requested. / .... T .-.: "

Anforderungen für Maschinen-Prüfunga (MASCH PRUEF)-,Programm~ Prüfungs. (PROG PRUEF)-,Eingabe/Ausgabe^.(E/A)-,und externe (ZXT;-Unterbrechungen können zu jeder Zeit erfolgen wie durch den oberen Pie:] und die grosse Klammer angedeutet. Die Monitor-Ruf (MON RUF)-Ui.rerbrechung wird durch eine vorn Programmierer vorgesehene Makroinstruktion eingeleitet und kann deshalb nur nach Ablauf einer Mikroinstruktionsfolge erfolgen wie durch den mit MON RUF gekennzeichneten Pfeil angegeben.Requirements for machine testa (MASCH PRUEF) -, program ~ Exam. (PROG PRUEF) -, input / output ^. (I / O) -, and external (ZXT; interruptions can be done at any time as indicated by the pie above:] and the large brackets. The monitor call (MON RUF) breakdown is initiated by a macro instruction provided by the programmer and can therefore only be used after a sequence of micro instructions has elapsed are carried out as indicated by the arrow marked MON RUF.

Pfeileßri.der-;Spalte. A1Unterbrechung x^folgt1* (.30D) geben für jede 'tintcr-JM'--; brech;unigJs-a'r.ttian,i-35Uswel>cher Zeit, mit- Bezug'äuf' die Mütroinstriiktion■><-: ■-'.-folge, die Ausführung des Untorbrechungsunierprogramraes begönne!. v~ir<:, Arrows; column. A 1 break x ^ follows 1 * (.30D) give for each 'tintcr-JM'-;break;unigJs-a'r.ttian, i -35Uswel > cher time, with reference to the moral instruc- tion ■><-: ■ -'.- the execution of the interruption program begin! v ~ ir <:,

Docket 6580 "WBDocket 6580 "WB

0 09810/1389 8A60 09810/1389 8A6

wenn sie angefordert wurde und wenn durch die entsprechenden. Mabkenbits bestimmt wurde, dass die Unterbrechung stattfinden kann.when requested and when by the appropriate. Mabkenbits it has been determined that the interruption can take place.

Wie gezeigt, werden MASCTI PRUEF- und PROG PRUEF-Unterbrechungen sofort eingeleitet. Die Mikroinstruktionsfolge wird unterbrochen, da eine Fortsetzung des Programms zu fehlerhaften Ergebnissen führen könnte.As shown, MASCTI PRUEF and PROG PRUEF breaks initiated immediately. The sequence of microinstructions is interrupted because a Continuing the program could lead to erroneous results.

E/A-und EXT-Unterbreclumgen werden nach Ablauf der Mikroinstruktionsfolge eingeleitet. Die letzte Makroinstruktion einer solchen Folge dient immer zur Feststellung, ob während der Ausführung der Mikroinstru'-.tionsfolge Anforderungen für E/A- oder EXT-Unterbrechungen aufgetreten sind.I / O and EXT interrupts are cleared after the sequence of microinstructions has expired initiated. The last macro instruction of such a sequence is used always to determine whether during the execution of the microinstruction sequence Requests for I / O or EXT interrupts have occurred.

Eine MON RUF-Unterbrechung wird, wie bereits erwähnt, nach Ablauf der'Mikroinstruktionsfolge eingeleitet.As already mentioned, a MON RUF interruption occurs after expiry the 'sequence of microinstructions initiated.

Durch die Anwendung der PSWs wird es möglich, mehrere gleichzeitig auftretende Unterbrechungsanforderungen zu bearbeiten, das Unterbrechtmgs· programm höchster Dringlichkeit zuerst auszuführen und die Informationen zu speichern, die für die Unterbrechungsprogramme geringerer Dringlichkeit erforderlich sind. Treten in dem beschriebenen Unterbrechungssrystem mehrere^ eine Unterbrechung erfordernde Bedingungen gleichzeitig auf, so werden nacheinander das alte Problemprogramm-PSW im Hauptspeicher gespeichert, das einer ersten Unterbrechung (niedrigste Dringlichkeit) entsprechende neue PSW in den Arbeitsspeicher überführt, dieses erste neue.PSW, nachdem es entsprechend den Unterbrechungsbedingungen geändert und vervollständigt wurde, wieder in den Hauptspeicher eingespeichert, das nächste neue PSW, das dem in der Dringlichkeitsreihenfo.ge' By using the PSWs it is possible to have several at the same time to process any interruption requests that occur, to execute the most urgent interruption program first, and to process the information that are necessary for the interruption programs of lower urgency. Enter the interrupt system described several ^ conditions requiring an interruption at the same time, so the old problem program PSW are saved one after the other in the main memory, that of a first interruption (lowest urgency) corresponding new PSW transferred into the main memory, this first new PSW, after it has been changed and completed in accordance with the interruption conditions, is again stored in the main memory, the next new PSW corresponding to the one in the priority order.

Docket 6580 WBDocket 6580 WB

0098107138900981071389

nächsten Unterbrechungsprogramm zugeordnet ist, in den Arbeitsspeicher überführt, usw. Die Ausführung von Instruktionen wird wieder aufgenommen unter der Kontrolle des PSWs, das als letztes aus dem Hauptspeicher in den Arbeitsspeicher überführt wurde, also dem Unterbrechungsprogramm höchster Dringlichkeit entspricht; die Reihenfolge der Ausführung der Unterbrechungsprogramme ist derjenigen entgegengesetzt, in der diePSWs überführt wurden»is assigned to the next interrupt program in the working memory transferred, etc. The execution of instructions is resumed under the control of the PSW, the last one from main memory was transferred to the main memory, i.e. the interrupt program corresponds to the highest urgency; the order of execution of the Interrupt programs are opposite to that in which the PSWs were convicted »

• Im. Hauptspeicher sind 10 Speicher stellen von je 64 Bits den verschiedenen PSWs fest zugeordnet. Die PSWs, für welche diese Stellen vorgesehen sind, werden wie folgt bezeichnet:• In the main memory there are 10 memories each with 64 bits for the different PSWs permanently assigned. The PSWs for which these locations are intended are designated as follows:

I. Altes EXT PSWI. Old EXT PSW

II. Neues EXT PSWII. New EXT PSW

III. Altes E/A PSWIII. Old I / O PSW

IV. Neues E/A PSW 'IV. New I / O PSW '

V. Altes MASCH PRUEF PSWV. Old MASCH PRUEF PSW

VI. Neues MASCH PRUEF PSWVI. New MASCH PRUEF PSW

VII. Altes PROG PRUEF PSWVII. Old PROG PRUEF PSW

VIII. Neues PROG PRUEF PSWVIII. New PROG PRUEF PSW

IX. Altes MON RUF PSW ·IX. Old MON RUF PSW

X. Neues MON RUF PSW.X. New MON RUF PSW.

Wenn eine Unterbrechung eingeleitet wird, wird das aktive Problemprogramm-PSW, nachdem es entsprechend den Unterbrechungsbedingungen geändert und vervollständigt wurde, als altes PSW in der entsprechenden Hauptspeicherstelle gespeichert. Für eine PROG PRUEF-Unterbrechung wird das alte PSW beispielweise in die Speicherstelle VII "altes PROG PRUEF PSW11-eingegeben. Die meisten Bits des PSWs werdenWhen an interruption is initiated, the active problem program PSW, after it has been modified and completed according to the interruption conditions, is stored as the old PSW in the appropriate main memory location. For a PROG PRUEF interruption, the old PSW is entered, for example, in memory location VII "old PROG PRUEF PSW 11. Most of the bits of the PSW are

Docket 6580 WBDocket 6580 WB

009810/1389009810/1389

' "?M" '~ORWUNAL'" ? M "' ~ ORWUNAL

unverändert, d.h. so, wie sie im Arbeitsspeicher enthalten waren, in den Hauptspeicher überführt; der Bedingungscode jedoch muss, wie bereits erklärt, vorher decodiert werden.unchanged, i.e. as it was contained in the main memory, transferred to main memory; however, as already explained, the condition code must be decoded beforehand.

Wenn ein altes PSW gespeichert wird, ist der Unterbrechungscode jeweils in den Bitpositionen 16 bis 31 enthalten. Diese Code definiert die Gründe für die Unterbrechung wie folgt:When an old PSW is stored, the interrupt code is contained in bit positions 16 through 31, respectively. This code defines the reasons for the interruption as follows:

1. Für eine EXT-Unterbrechung definiert der Code welche externe1. For an EXT interrupt, the code defines which one is external

Einheit die Unterbrechung verursachte.Unit causing the interruption.

Z. Für eine MON RUF-Unterbrechung bildet der Code die Information, Z. For a MON RUF interruption, the code forms the information,

die, vom MON PROG decodiert, den Grund für die MON RUF-Instruktion bestimmt. 'which, decoded by the MON PROG, is the reason for the MON RUF instruction certainly. '

3. Für eine PROG PRUEF-Unterbrechung definiert der Code die durch ein fehlerhaftes Programm entstandene Bedingung, die eine Unterbrechung erforderlich macht.3. For a PROG PRUEF interruption, the code defines the through A condition that has arisen from a faulty program requires an interruption.

4. Für eine MASCH PRUEF-Unterbrechung ist der Code immer "0".4. The code is always "0" for a MASCH PRUEF interruption.

5. Für eine E/A-Unterbrechung definiert der Code den Kanal und die Einheit, die die Unterbrechung anforderten. '5. For an I / O interruption, the code defines the channel and the Unit that requested the interruption. '

Nachdem das alte PSW vollständig in die durch die Art= der Unterbrechung bestimmte. Speicherstelle des Hauptspeichers eingegeben worden istj ■ wird das neue PSW in die für das jeweils aktive, PSW vorgesehene-Speichert ' des Arbeitsspeichers überführt. Wenn z.B'. ein altes PSW in die Speieher- : stelle IV "altes PROG PRUEF PSW" eingespeichert wurde, wird das neue ■ PSW, das zur Kontrolle des PROG PRUEF-Unterbrechungsprogramms dient,After the old PSW is completely in the state determined by the type = of the interruption. Memory location of the main memory has been entered, the new PSW is transferred to the memory provided for the respectively active 'PSW' of the main memory. For example, if '. an old PSW in the Speieher-: imagine IV "old PROG PRUEF PSW" has been stored, the new PSW ■ serving PRUEF interrupt program to control the PROG,

Docket 6580 WB - /; - fV ? ί If 1 S ■ ' : Docket 6580 WB - /; - fV? ί If 1 S ■ ' :

009810/1389009810/1389

der Speicher stelle VIII "neues PROG PRUEF PSW" entnommen. Für das neue PSW ist der Unterbrechungscode nicht erforderlich und wird d.iher nicht in den Arbeitsspeicher übernommen; der 2-Bit-Bedingungscodc· wird in die 4-Bit-Form decodiert wie bereits erklärt. Jetzt enthält das neue PSW die Anfangsadresse und die Anfangsbedingungen für das Monitor-Programm, unter dessen Kontrolle das Unterbrechungsprogramm abläuft', und die Rechenanlage beginnt mit der Ausführung von Instruktionen bis das Unterbrechungsprogramm beendet ist. Zu dieser Zeit wird das PSW, unter dessen Kontrolle das Unterbrechungsprogramm ausgeführt wurde, in die ihm zugeordnete Speicher stelle des Hautpspeichers zurückgeführt. Anschliessend wird das alte PSW, das zur Kontrolle des unterbrochenen Problemprogramms diente, in den Arbeitsspeicher eingegeben und die Rechenanlage setzt das Problemprogramm an der Stelle fort, an der es unterbrochen wurde."New PROG PRUEF PSW" was taken from memory location VIII. For the new PSW, the interrupt code is not required and will be d.i. not transferred to the main memory; the 2-bit condition codc · is decoded into the 4-bit form as already explained. Now that contains new PSW the start address and the start conditions for the monitor program, under the control of which the interrupt program runs', and the computer system starts executing instructions to the interrupt routine has ended. At this time, the PSW under whose control the interrupt program was executed will be returned to the memory assigned to it in the main memory. Then the old PSW, which is used to control the interrupted Problem program was used, entered into the memory and the Computer continues the problem program from the point at which it was interrupted.

Das Diagramm der Fig. 4 zeigt die Anwendung der PSW's für den Fall, dass zwei Unterbrechungen, EXT und E/A, gleichzeitig angefordert werden. . Es sei angenommen, dass beide Unterbrechungen zur Zeit der Anforderung durch die entsprechenden Maskenbits als "erlaubt" bestimmt wurden, die entsprechenden Unterprogramme also in der Reihenfolge ihrer Dringlichkeit auszuführen sind.The diagram in Fig. 4 shows the use of the PSW's for the case that two interruptions, EXT and I / O, are requested at the same time. . It is assumed that both interrupts were determined to be "allowed" at the time of the request by the corresponding mask bits, the corresponding subroutines in the order of their urgency are to be carried out.

Die in der Spalte 40A angegebenen. Zahlen entsprechen den verschiede on Operations schritten, .die für das angenommene Beispiel erforderlich sind. In den Spalten 4OB und 40C ist gezeigt, welches Programm oder Unterprogramm während der einzelnen Schritte" jeweils ausgeführt wird u::dThose indicated in column 40A. Numbers correspond to the different on Operations steps that are required for the assumed example. Columns 4OB and 40C show which program or subroutine during the individual steps "is carried out in each case u :: d

Docket 6580 WB ' ' BAOOBiGINALDocket 6580 WB '' BAOOBiGINAL

003810/1389 . ·003810/1389. ·

■ .- . -19- · H99200■ .-. - 19 - H99200

ιι ··

welches PSW als aktives PSW im Arbeitsspeicher enthalten ist. Die verschiedenen Programme; Problemprogramm, EXT-Unterbrechung, und E/A-Unterbrechung, sind durch unterschiedliche-Schraffierungen in Uebereinetimmung mit den für die Blöcke 41, 42 und 43 angegebenen Erläuterungen dargestellt. Die Doppel spalten 4OD bis 4OH stellen die Paare der den verschiedenen Unterbrechungsarten fest zugeordneten Speicherstellen des Hautpspeiche rs dar, die zur Speicherung der nichtaktiven PSW's dienen. Ein solches Paar der Speicherstellen I bis X ist jeweils für die alten und neuen PSW's einer Unterbrechungsart vorgesehen, wie I und II für EXT--Unterbrechungen, III und IV für E/A-Unterbrechungen, usw. Der Einspeicherung eines PSW's in die "alte" Speicherstelle eines Paares folgt automatisch das Auslesen der zugehörigen "neuen" Speicherstelle. Es folgt eine ausführliche Beschreibung der Operationsechritte 1 bis 12.which PSW is contained in the main memory as the active PSW. The different programs; The problem program, EXT interruption, and I / O interruption are represented by different hatching in accordance with the explanations given for blocks 41, 42 and 43. The double columns 4OD to 4OH represent the pairs of the memory locations of the main memory permanently assigned to the different types of interruptions, which are used to store the inactive PSWs. Such a pair of storage locations I to X is provided for the old and new PSWs of one type of interruption, such as I and II for EXT interruptions, III and IV for I / O interruptions, etc. The storage of a PSW in the "old""Storage location of a pair is followed automatically by the readout of the associated" new "storage location. A detailed description of the operation steps 1 to 12 follows.

Schritt 1: · Step 1:

Ausführung eines Problemprogramms unter der Kontrolle eines Problemprogramm-PSW1 s, das im Arbeitsspeicher enthalten ist. Die "alten" PSW-Speicherstellen im Hauptspeicher (ungerade Zahlen I, III, usw. ) sind leer, Während die "neuen" PSAV- Speicherstellen (gerade Zahlen II, IV, usw.) die den verschiedenen Unterbrechungsunterprogrammen entsprechenden PSW's enthalten.Execution of a problem program under the control of a problem program PSW 1 s contained in the working memory. The "old" PSW storage locations in main memory (odd numbers I, III, etc.) are empty, while the "new" PSAV storage locations (even numbers II, IV, etc.) contain the PSWs corresponding to the various interrupt subroutines.

Schritt 2: ·Step 2: ·

Während der Ausführung des Problemprogramms werden gleichzeitg zwei erlaubte Unterbrechungen unterschiedlicher Dringlichkeit angefordert:During the execution of the problem program, two Permitted interruptions of different urgency requested:

Docket 6580 WB ,Docket 6580 WB,

009810/13 89009810/13 89

eine EXT-Unterbrechung (niedrigere Dringlichkeit) und eine E/A-Unterbrechung (höhere Dringlichkeit). Das Problemprogramm-PSW wird als altes PSW in die Speicherstelle I überführt; dies ist die Speicherstelle die" der Unterbrechung niedrigerer Dringlichkeit der beiden angeforderten Unterbrechungen entspricht.an EXT interrupt (lower priority) and an I / O interrupt (higher urgency). The problem program PSW is transferred to storage location I as an old PSW; this is the location the "lower urgency interruption of the two requested Corresponds to interruptions.

Schritt 3: .' : .Step 3: .' :.

Das neue EXT-Unterbrechungs-PSW wird der Speicher stelle II entnommen und in den Arbeitsspeicher· überführt. Da noch eine weitere Unterbrechung (höhere Dringlichkeit) auf die Ausführung wartet, wird nicht mit der Ausführung des EXT-Unterbrechungsprogramms begonnen.The new EXT interruption PSW is taken from storage location II and transferred to the working memory. There is another interruption (higher urgency) waiting for execution will not deal with the Execution of the EXT interrupt routine started.

Schritt 4:Step 4:

Das EXT-Unterbrechungs-PSW wird als altes PSW in die Speicherstelle-III überführt; dies ist die Speicherstelle,' die der Unterbrechung höhererThe EXT interruption PSW is stored as the old PSW in storage location III convicted; this is the memory location, the higher that the interruption

, i, i

Dringlichkeit entspricht.Urgency.

Schritt 5;Step 5;

Das neue E/A-PSW wird aus der Speicher stelle IV auegelesen und in den Arbeitespeicher eingespeichert. Da keine weiteren Unterbrechungen angefordert sind, beginnt die Ausführung des E/A-Unterbrechungsprogrammes.The new I / O PSW is read out from the storage location IV and into the Working memory saved. As no further interruptions requested execution of the I / O interrupt routine begins.

Schritt 6: .Step 6:.

Ausführung des E/A-Unterbrechungsprogramms unter der Kontrolle "des im Arbeitsspeicher enthaltenen E/A-PSW's.Execution of the I / O interrupt routine under the control of "des I / O PSWs contained in the main memory.

Docket 6580 WB : :Docket 6580 WB::

009810/1389009810/1389

Nach Abschluss des E/A-Unterbrechungsprogrammes wird das E/A-PSW in die ihm zugeordnete Speicherstelle IV zurückgeleitet.After completion of the I / O interrupt routine, the I / O becomes PSW returned to the memory location IV assigned to it.

Schritt 8: · . Step 8: ·.

Dag EXT-PSW wird automatisch aus der Speicher stelle III ausgelesen und in den Arbeitsspeicher eingespeichert. Beginn des EXT-Unterbrechungs-Dag EXT-PSW is automatically read out from memory location III and stored in the main memory. Beginning of the EXT interruption

programmes.
Schritt 9:
program.
Step 9:

Ausführung des EXT-Unterbrechungsprogrammes unter der Kontrolle des im Arbeitsspeicher enthaltenen EXT-PSW1S.Execution of the EXT interrupt program under the control of the EXT-PSW 1 S.

Schritt 10: .Step 10:.

Nach Abschluss des EXT-Unterbrechungsprogrammes wird das EXT-PSW in die. ihm zugeordnete Speicher stelle II zurückgeleitet.After the EXT interruption program has been completed, the EXT-PSW is transferred to the. memory assigned to it, II is returned.

. f. f

Schritt 11:Step 11:

Das Problemprogramm-PSW wird aus der Speicherstelle lausgelesen und in den Arbeitsspeicher eingespeichert. Die Ausführung des Problempr.ogrammes wird an der Stelle wieder aufgenommen, an der es durch den Schritt 2 unterbrochen worden war.The problem program PSW is read from memory location l and stored in the working memory. The execution of the problem program resumes from the point where it was interrupted by step 2.

Schritt 12:Step 12:

Ausführung des Problemprogrammes unter der Kontrolle des im Arbeitsspeicher enthaltenen Pröblemprogramm-FSW;Execution of the problem program under the control of the in the working memory included problem program FSW;

Die Arbeitsweise der verschiedenen PSW's wurde für den Fall von zwei gleichzeitig auftretenden UnterbrechnngsaBfof derungen beschrieben· Erocket &S8Ö WBThe mode of operation of the various PSWs was designed for the case of two simultaneously occurring interruption messages are described Erocket & S8Ö WB

Fälle, in denen nur eine einzelne Unterbrechung erforderlich wird, oder in denen ein bereits ablaufendes Unterbrechungsprogramm zu unterbrechen ist, werden entsprechend behandelt und hier daher nicht weiter erläutert. Das gleiche gilt für andere Unterbrechungsarten als die im Beispiel gewählten.Cases in which only a single interruption is required, or in which an interrupt program is already running interrupt are treated accordingly and therefore not here further explained. The same applies to other types of interruptions than those selected in the example.

Fig. 5 zeigt ein Blockdiagramm der in Fig. 1 mit 11 bezeichneten Schaltung, die für die Maskenoperation verwendet wird, welche zur Bestimmung dient, ob eine angeforderte Unterbrechung zum gegenwärtigen Zeitpunkt stattfinden kann, d.h. erlaubt ist, oder nicht. Die gezeigte Schaltung ist auf die Behandlung von E/A- und EXT-Unterbrechungen beschränkt, die von den E/A-Einheiten über die Kanäle-123 bis 126 und von den externen Einheiten über den Kanal 127 angefordert werden.FIG. 5 shows a block diagram of the circuit, designated 11 in FIG. 1, which is used for the mask operation which is used to determine whether or not a requested interrupt can take place at the present time, ie is permitted. The circuit shown is limited to handling I / O and EXT interrupts requested by the I / O units on channels -123-126 and by the external units on channel 127.

Wie bereits erwähnt, werden die Bits der Systemmaske der aktiven PSW's 26 zur Bestimmung benutzt, ob eine angeforderte E/A- oder EXT-Unterbrechung erlaubt ist. Wenn das dem die Unterbrechung anfordernden Kanal entsprechende Bit (Bit 0 für den Kanal 120, Bit 1 für Kanal 121, usw. ) '1I" ist, bedeutet dies, dass die Unterbrechung erlaubt ist; eine "0" würde andeuten, dass die Unterbrechung wenigstens zeitweilig- ' ■'*■ "-zurückgestellt werden muss. . v- " ..' "w:" "-As noted, the system mask bits of the active PSW's 26 are used to determine whether a requested I / O or EXT interrupt is allowed. If the bit corresponding to the channel requesting the interruption (bit 0 for channel 120, bit 1 for channel 121, etc.) is' 1 I ", it means that the interruption is allowed; a" 0 "would indicate that the Interruption must be reset at least temporarily- '■' * ■ ". . v - ".. '" w: "" -

Das aktive PSW 26 ist vollständig im Arbeitsspeicher 3 gespeichert. Die Bits der Systemmask'i sind darüber hinaus in den zugeordneten Verriegelungsschaitpngen SOO Ms 507 enthalten, wobei diese Schaltungen eich im Ein-Zustand befinden;, wenn das eiitsprechende MaskeftbiiThe active PSW 26 is completely stored in the main memory 3. The bits of the system mask are also contained in the associated interlocking circuits SOO Ms 507, these circuits being in the on state if the corresponding mask

Docket 65&ÜWB-Docket 65 & ÜWB-

'008*10/1309''008 * 10/1309'

-23- H99200- 23 - H99200

"1" ist, sic« sind im Aus-Zustand, wenn das Bit "O" ist. Für jedes Maskenbit, bzw. für joden der Unterbrechungskanäle 120 bis 127, ist eine der UND-Schaltungen 530 bis 537 vorgesehen. -Die Eingänge dieser UND-Schaltungen sind über die Leitungen 510 bis 517.mil dun entsprechenden Verriegelungsschaltungen und über die Leitungen 520 bis 527 mit den entsprechenden Unterbrechungskanälen verbunden. Durch eine im Ein-Zustand befindliche Verriegelungsschaltung wird auf die eine Eingangsleitung der zugehörigen UND-Schaltung ein Potential gelegt, das die UND-Schaltung derart vorbereitet, dass ein über die andere Eingangsleitung vom entsprechenden Unterbrechungskanal, kommende Signal die UND-Schaltung passiert. Diese auf den Ausgangsleitungen 540 bis 547 der UND-Schaltungen erscheinenden Signale dienen zur Anzeige von- erlaubten Unterbrechungsanforderungen. Die in Fig. 5 gezeigte Schaltung liefert ausserdem auf den Ausgangsleitungen 57 bzw. 58 Signale "Unterbrechung angefordert" (UNT ANGEF) und "externe Unterbrechung angefordert" (EXT ANGEF), die der in Fig. b gezeigten Schaltung zugeführt werden und zur Anzeige dienen, dass eine Unterbrechungsanforderung irgendeiner Art, bzw. eine Anforderung für eine externe Unterbrechung vorliegt. Das Signal UNT ANGEF erscheint am Ausgang der ODER-Schaltung 56, deren Eingangsleitungen mit den Leitungen 540 bis 547 verbunden sind.Is "1", they are in the off state when the bit is "O". One of the AND circuits 530 to 537 is provided for each mask bit or for ioden of the interruption channels 120 to 127. The inputs of these AND circuits are connected via lines 510 to 517.mil dun corresponding interlocking circuits and via lines 520 to 527 to the corresponding interruption channels. An interlocking circuit in the on state applies a potential to one input line of the associated AND circuit, which prepares the AND circuit in such a way that a signal coming from the corresponding interrupt channel via the other input line passes the AND circuit. These signals appearing on the output lines 540 to 547 of the AND circuits are used to display permitted interrupt requests. The circuit shown in FIG. 5 also supplies "interruption requested" (UNT ANGEF) and "external interruption requested" (EXT ANGEF) signals on output lines 57 and 58, which are fed to the circuit shown in FIG. B and are used for display purposes that there is an interrupt request of some kind or a request for an external interruption. The signal UNT ANGEF appears at the output of the OR circuit 56, the input lines of which are connected to lines 540 to 547.

Da eine Mehrzahl von E/A-Kanälen 120 bis 126 angeschlossen ist, mehrere E/A-Unterbrechungsanforderungen daher gleichzeitig auftreten können, muss eine Prioritätsreihenfolge dieser Kanäle bestimmt werden, wenn nicht alle Kanäle mit nur einer Ausnahme durch die Maskenbits 0 bis 6 des aktivenSince a plurality of I / O channels 120-126 are connected, several I / O interrupt requests can therefore occur at the same time, a priority order of these channels must be determined, if not all channels with only one exception by the mask bits 0 to 6 of the active one

Docket 6580 WBDocket 6580 WB

009810/1389 ' mD original009810/1389 ' mD original

PSWs als unerlaubt definiert werden. Die für diese Prioritätsbestimmung erforderliche Schaltung wird jedoch nicht mehr beschrieben, da sie nicht einen wesentlichen Teil der vorliegenden Erfindung darstellt.PSWs are defined as unauthorized. The one for this priority determination required circuit is no longer described because it is not constitutes an essential part of the present invention.

Die Fig. 6 zeigt ein Blockdiagramm der in Fig. 1 mit 10 bezeichneten · Steuerschaltung, die zur Steuerung der verschiedenen.beim gleichzeitigen Auftreten mehrerer Unterbrechungsanforderungen erforderlichen PSW-Operationen dient. Diese Schaltung bestimmt die durch den Aufbau der Anlage vorgegebene Prioritätsreihenfolge., in der die Unterbrechungsprogramme verschiedener Art ausgeführt werden. Fig. 6 shows a block diagram of the in Fig. 1 designated by 10 · Control circuit that is used to control the various. At the same time PSW operations required when multiple interrupt requests occur. This circuit determines the structure of the System predefined order of priority in which the various types of interruption programs are executed.

Block 60 stellt die Schaltungen dar, die unter der direkten Kontrolle einer Folge von Mikroinstruktionen die. Ausführung der Makroinstruktionen der zu bearbeitenden Programme steuert. Diese Operationen werden entweder durch ein am Anfang eines Problemprogramms auf die Leitung 61 gegebene Signal eingeleitet, oder durch ein Signal auf der Leitung 62; letzteres erscheint nach vollständiger Ausführung einer Makroinstruktion wenn keine Unterbrechungsanforderung vorliegt, oder am Anfang eines Unterbrechungsprogrammes. Die von der Schaltung 60 gesteuerten Operationen umfassen auch die laufend erfolgenden Ae nde runge η und Vervollständigungen;des aktiven PSWs. .Block 60 represents the circuits that are under direct control a sequence of microinstructions that. Execution of the macro instructions the programs to be processed. These operations are either carried out by one at the beginning of a problem program 61 initiated signal, or by a signal on line 62; the latter appears after a macro instruction has been fully executed if there is no interrupt request, or at the beginning of an interrupt program. Those controlled by circuit 60 Operations also include ongoing changes and additions to the active PSW. .

Wenn durch Signale auf den Leitungen 63 oder 64 die Anforderung für erlaubte MASCH PRUEF-oder PROG PRUEF-Unterbrechungen angezeigt wird, bewirkt die Schaltung 60 die sofortige Beendung der gerade ausgeführten Mikroinstruktionenfolge und liefert Signale auf den Ausgangs-leitungen 65 bzs. 66. Diese Signale werden zu den durch die Blöcke 8.0DIf by signals on lines 63 or 64 the request for Permitted MASCH PRUEF or PROG PRUEF interruptions are displayed the circuit 60 causes the current execution to be terminated immediately Sequence of microinstructions and supplies signals on the output lines 65 or 66. These signals become the ones indicated by blocks 8.0D

Docket 6580 WB 0 0 9 810*1389Docket 6580 WB 0 0 9 810 * 1389

' -25- . 1A9920G'-25-. 1A9920G

Und 8OE dargestellten Schaltungen geleitet, die die entsprechenden Unterbrechungen einleiten. Wird durch eine vom Programmierer vorgesehene Instruktion eine MON RUF-Unterbrechung eingeleitet, sp erscheint ein Signal auf der Ausgangsleitung 67, welches, zur Schaltung 8OC geleitet, die erforderliche Unterbrechung bewirkt.And 8OE circuits shown routed the corresponding Initiate interruptions. Used by a programmer Instruction initiated a MON RUF interrupt, sp a signal appears on the output line 67, which, for Circuit 8OC conducted, causing the required interruption.

Die jeweils letzte Instruktion einer Mikroinstruktionsfolge erzeugt ein Signal auf der Ausgahgsleitung 68, das zur Feststellung dient, ob'während der Ausführung der Mikroinstruktionsfolge eine. Anforderung für eine E/A- oder EXT-Unterbrechung gestellt wurde.The last instruction of a sequence of microinstructions is generated a signal on the output line 68, which is used to determine whether a. requirement has been set for an I / O or EXT interrupt.

Die Blöcke 70 "Unterbrechung?11 und .72 "Extern?" stellen einfache logische Schaltungen dar, die nach Eingang eines Signals auf den Leitungen 6f> bzw. 71 die folgende Funktion ausüben: wenn ein UNT ANGEF- oder ein EXT ANGEF-Signal auf den Eingangsleitungen 57 bzw, 58 vorhanden ist, wird ein Signal auf die JA-Ausgangsleitung 71 bzw. 73 gegeben; wenn kein Anforderungs signal vorhanden ist, wird ein Signal auf der NEIN-Ausgangsleitung 62 bzw. 74 erzeugt.The blocks 70 "Interrupt? 11 and .72" External? "Represent simple logic circuits which, after the input of a signal on the lines 6f> or 71, perform the following function: when a UNT BEGIN or an EXT ANGEF signal is applied the input lines 57 and 58, a signal is given on the YES output line 71 or 73; if there is no request signal, a signal is generated on the NO output line 62 or 74.

Mit 80A'bis 8OE sind Schaltungen gekennzeichnet, die für die verschiedenen Unterbrechungsarten EXT, E/A, MON-RUF, PROG PRUEF und MASCH PRUEF unter der Kontrolle von Makroinstruktionen die folgenden Operationen steuern: Vervollständigung des aktiven PSWs mit Informationen, die die anfordernde Einheit und den Grund für die Unterbrechung definieren; Uebertragung des aktiven PSWs vom Arbeitsspeicher in eine der "alten" PSW-Speicherstellen, wobei diese Speicher stelle durch die Art der Unter«With 80A' to 8OE, circuits are identified which control the following operations for the various interrupt types EXT, I / O, MON - RUF, PROG PRUEF and MASCH PRUEF under the control of macro instructions: Completion of the active PSW with information that the requesting unit and define the reason for the interruption; Transfer of the active PSW from the main memory to one of the "old" PSW storage locations, this storage location being due to the type of sub «

Docket. 6580 WBDocket. 6580 WB

■Q0981 0/1389■ Q0981 0/1389

brechung bestimmt ist: Spc>icherstelle"altes EXT PSW*für Schaltung 3OA, "altes E/A PSw"für 8OB, "altes MON RUF *PSw"für 80C,"altc-s PROG PRUEF PSW"für 8OD u"nd"altes MASCH PRUEF PSW*für 8OE; Auslesen des neuen PSVvfe aus der Speicherstelle des Hauptspeichers, die der Stellt·, in die das alte PSVV eingespeichert wurde, zugeordnet ist, und Ueberfül.rung des neuen PSWs in den Arbeitsspeicher. Nach Abschluss dieser Operationen erscheint ein Ausgangssignal auf der der Schaltung 80 entsprechenden Leitung 68A, B, C, D bzw. E.refraction is determined: Spc> icherstelle "old EXT PSW * for circuit 3OA, "old I / O PSw" for 8OB, "old MON RUF * PSw" for 80C, "altc-s PROG PRUEF PSW "for 8OD and" nd "old MASCH PRUEF PSW * for 8OE; reading out the new one PSVvfe from the memory location of the main memory that is placed by the old PSVV has been stored, is assigned, and transfer of the new PSW into the working memory. After completing these operations an output signal appears on that corresponding to circuit 80 Line 68A, B, C, D or E.

Die Arbeitsweise der in Fig. 6 gezeigten Schaltungsanordnungen wird nachfolgend anhand von drei Beispielen erklärt:The operation of the circuit arrangements shown in FIG explained below using three examples:

1. Keine Unterbrechung angefordert;1. No interrupt requested;

2. Eine einzelne Unterbrechungsanforderung;2. A single interrupt request;

3. Mehrere gleichzeitig auftretende Unterbrechungsanforderungun.3. Several simultaneous interrupt requests.

Beispiel 1example 1

Es sei angenommen, dass während einer Alakroinstruktion, die unter der Steuerung der entsprechenden Mikroinstruktionsfolge ausgeführt wurde, in der Anlage keine Unterbrechungsbedingungen, auftraten .und somit keine Unterbrechungsanforderung gestellt wurde.Assume that during an Alakro instruction under the Control of the corresponding microinstruction sequence was carried out, no interruption conditions occurred in the system, and thus none Interrupt request was made.

Da keine MASCH PRUEF-oder PROG PRUEF-Unterbrechungsanforderungen gestellt wurden, welche eine sofortige Beendung der Makroinstruktion sfol ge bewirkt hätten, wird die letzte Makroinstruktion der Folge zur Feststellung benutzt, ob eine Anforderung für eine E/A- oder EXT-Unterbrechung vorliegt. Das auf der Leitung 68 erscheinende Abfragesignal wird zur Schaltung 70 geleitet. Diese Schaltung führt die bereits erwähnte einfach«?Since no MASCH PRUEF or PROG PRUEF interrupt requests which result in an immediate termination of the macro instruction the last macro instruction in the sequence becomes the determination used whether a request for an I / O or EXT interrupt is present. The interrogation signal appearing on line 68 is passed to circuit 70. This circuit simply performs the one already mentioned «?

Docke. 6580 WB v.009B.)0/1389 Docke. 6580 WB v . 009B . ) 0/1389

logische Funktion aus, um eines der Ausgangssignale JA oder NEIN auf den Leitungen 71 bzw. 62 zu erzeugen. Da angenommen wurde, dass keine Unterbrechungsanforderung vorliegt, ist auf der Eingangsleitung UNT ANGEF 57 kein Signal vorhanden und die Schallung70 gibt ein Signal auf die NEIN-Ausgangsleitung 62. Dieses Signal wird zur Steuerschaltung 60 geleitet und bewirkt hier die Ausführung der nächsten Makroinstruktion des laufenden Programmes.logic function to produce one of the output signals YES or NO on lines 71 and 62, respectively. Since it was assumed that there is no interrupt request, there is no signal on the input line UNT ANGEF 57 and the sound 70 is a signal on the NO output line 62. This signal becomes Control circuit 60 conducts and here causes the execution of the next Macro instruction of the current program.

Beispiel 2Example 2

Es sei angenommen, dass während der Ausführung einer zu einem Problemprogramm gehörenden Makroinstruktion eine E/A-Unterbrechung vom Kanal 121 (siehe Fig. 5) angefordert wurde und dass das Bit 1 der Systemmaske der aktiven PSWs, das diesem Kanal entspricht, eine 1 ist und somit die Unterbrechung als erlaubt definiert.Assume that during the execution of a problem program associated macro instruction an I / O interruption has been requested from channel 121 (see FIG. 5) and that bit 1 of the The system mask of the active PSWs that corresponds to this channel is a 1 and thus defines the interruption as permitted.

Da keine MASCH PRUEF- oder PROG PRUEF-Unterbrechungsanforderungen gestellt wurde, die eine sofortige Beendung der Mikroinstruktionsfolge bewirkt hätten, wird die letzte Makroinstruktion der Folge zur Feststellung benutzt, ob eine Anforderung für eine E/A-- oder EXT-Unterbrechung vorliegt. Das Abfragesignal auf Leitung 68 wird zur Schaltung 70 geleitet.Since no MASCH PRUEF or PROG PRUEF interrupt requests that would have caused the sequence of microinstructions to terminate immediately, the last macroinstruction in the sequence is determined used whether a request for an I / O or EXT interrupt is present. The interrogation signal on line 68 is passed to circuit 70.

Da angenommen wurde, dass eine Anforderung für eine erlaubte Unterbrechung gestellt wurde und dieses durch ein Signal auf der Leitung 57 angezeigt wird, erzeugt die Schaltung 70 auf der JA-Ausgangsleitung 71 einen Impuls, der zur Schaltung 72 geführt wird. Diese Schaltung, die beim Auftreten einer Anforderung für eine EXT-Unterbrechung ein Signal auf der Leitung 58 erhält, übt die erwähnte Funktion, die der der SchaltungSince it was assumed that there was a request for an allowable interruption has been set and this is indicated by a signal on the line 57, the circuit 70 generates on the YES output line 71 a pulse applied to circuit 72. This circuit generates a signal when a request for an EXT interrupt occurs on the line 58, exercises the aforementioned function that of the circuit

Docket 6580 WBDocket 6580 WB

009810/13 89 ^009810/13 89 ^

70 entspricht, aus und liefert ein JA-oder NEIN-Ausgangssignal auf den Leitungen 73 bzw. 74. Da angenommen wurde, dass nur eine E/A-Unterbrechung angefordert wurde, liegt kein Signal auf der Leitung 58 und es erscheint ein Ausgangssignal auf der NEIN-Leitung 74. Für die in Fig. gezeigte Anordnung bedeutet dieses Signal, dass eine E/A- Unterbrechung angefordert wurde; dieses wird anhand der folgenden Betrachtung klar: ein Signal auf Leitung 57 zeigt an, dass eine Anforderung für eine Unterbrechung irgendeiner Art gestellt wurde, und da in der vorliegenden, in Fig.· 6 gezeigten Anordnung nur zwei verschiedene Arten von Unterbrechungsanforderungen abgefragt werden und ferner die Abwesenheit eines Signals auf Leitung 58 angibt, dass die vorliegende Anforderung70 and provides a YES or NO output signal to the Lines 73 and 74, respectively. Since it was assumed that there was only one I / O interrupt was requested, there is no signal on the line 58 and an output signal appears on the NO line 74. This signal means that an I / O interruption has been requested; this becomes clear from the following consideration: a signal on line 57 indicates that a request for an interrupt of some kind has been made, and since in the present, in the arrangement shown in Fig. 6 only two different types of interrupt requests and the absence of a signal on line 58 indicates that the request is present

sich nicht auf eine EXT-Unterbrechung bezieht, muss es sich notwendigerweise um eine Anforderung für eine E/A-Unterbrechung handeln.does not refer to an EXT break, it must necessarily be be a request for an I / O interruption.

Die Abfrage der verschiedenen Arten von Unterbrechungsanforderungen wird in der Reihenfolge zunehmender Dringlichkeit der Unterbrechungen ausgeführt. In der in Fig. 6 gezeigten Anordnung werden nur zwei verschiedene Dringlichkeitsstufen in Betracht gezogen, jedoch kann, ohne das Prinzip des Verfahrens zu ändern, ein weiter unterteiltes Dringlichkeit«- schema verwendet werden; so könnten z.B. den verschiedenen E/A-Kanälen unterschiedliche Prioritäten zugeordnet werden, denen durch zusätzliche Abfrage schaltungen (entsprechend den Schaltungen 70 und 72) Rechnung getragen werden kann. , 'The query of the different types of interrupt requests is in the order of increasing urgency of the interruptions executed. In the arrangement shown in Fig. 6, only two different Urgency levels considered, but without changing the principle of the procedure, a further subdivided urgency «- scheme to be used; for example, the various I / O channels different priorities can be assigned to which by additional Query circuits (corresponding to circuits 70 and 72) can be taken into account. , '

Zum angenommenen Beispiel zurückkehrend: das NEIN-Signal auf der Leitung 74 wird zur Schaltung 8OB geleitet, die die VervollständigungReturning to the assumed example: the NO signal on the Line 74 is passed to circuit 8OB which does the completion

Docket 6580V1IfB ·Docket 6580V 1 IfB

009810/1389009810/1389

SAOSAO

.■*■■-. ■ * ■■ -

.-des aktiven PSWs.steuert und die Ueberführung des dem unterbrochenen. -The active PSW. controls and the transfer of the interrupted

Programm zugeordneten alten PSW vom Arbeitsspeicher in die Kaupt-. speicherstelle "altes E/A PSW" veranlässt. Da die Abfrage nach EXT- und E/A-Unterbrechungsanforderungen am Ende einer Makroinstruktion stattfindet, enthält das aktive PSW zu dieser Zeit alle Informationen, die zur Wiederaufnahme des unterbrochenen Programmes nach Abschluss des Unterbrechungsprogrammes erforderlich sind. Neben der Einspeicherüng des aktiven PSW's als altes PSW in den Hauptspeicher sind keine weiteren Datenübertragungs- oder Einspeicherungsoperationen erforderlich. Anschliessend wird, weiterhin durch die Schaltung 8OB gesteuert, das für das E/A-Unterprogramm erforddrlichoneue PSW von der Hauptspeicherstelle "neues E/A PSW" ausgelesen und in den Arbeitsspeicher überführt.Program assigned old PSW from the main memory to the main. "Old I / O PSW" storage location. Since the query for EXT and I / O interrupt requests at the end of a macro instruction takes place, the active PSW at this time contains all the information that are required to resume the interrupted program after the interruption program has ended. In addition to the storage of the active PSW as old PSW in the main memory are no further data transfer or storage operations necessary. The new PSW required for the I / O subroutine is then still controlled by the circuit 8OB read out from the main memory location "new I / O PSW" and into the RAM transferred.

Nach Ausführung, dieser PSW-Uebertragungen wird das Ausgangssignal auf der Leitung 68B zur Schaltung 70 geleitet und die oben erläuterte . Abfrageoperation wiederholt. Da angenommen worden ist, dass keine weiteren Unterbrechungsanforderungen gestellt wurde, wird ein Signal auf der NEIN-Ausgangsleitung 62 erzeugt und zur Schaltung 60 weitergeleitet, dieihrerseits die Ausführung des E/A-Unterbrechungsprogrammes einleitet. ·After these PSW transmissions have been carried out, the output signal becomes on line 68B to circuit 70 and discussed above. Inquiry operation repeated. Since it is assumed that no further interrupt requests have been made, a signal generated on NO output line 62 and passed to circuit 60, which in turn initiates the execution of the I / O interrupt routine. ·

Nach Abschluss dieses Unterprogrammes wird, "wenn keine weitere Unterbrechung angefordert wurde, das aktive PSW, welches das dem E/A-Unterbrechungsprogramm zugeordnete PSW ist, in die Hauptspeicherstelle "neues E/A PSW" eingespeichert, und das 3PSW, das die für dieAfter completion of this subroutine, "if no further Interrupt was requested, the active PSW which the dem PSW associated with the I / O interrupt routine is in the main memory location "New I / O PSW" is stored, and the 3PSW that is used for the

Docket 6580 WB . _ ; BAD ORIGlNAUDocket 6580 WB. _; BAD ORIGlNAU

H99200 le H99200 le

. Wiederaufnahme des unterbrochenen Problemprogrammes notwendigen Informationen enthält, wird aus der Speicherstelle "altes E/A PSW" ausgelesen und in den Arbeitsspeicher überführt. Anschliessead wird die Ausführung des Problemprogramrnes fortgesetzt.. Resumption of the interrupted problem program contains the necessary information, the memory location "old I / O PSW" read out and transferred to the main memory. The Execution of the problem program continued.

Beispiel 3Example 3

Es sei angenommen, dass während der Ausführung einer zu einem Problemprogramm gehörenden Makroinstruktion zwei Anforderungen für Unterbrechungen unterschiedlicher Dringlichkeit, und zwar für eine E/A- und für eine EXT-Unterbrechung, aufgetreten sind und als erlaubt bestimmt wurden.Assume that while executing one to one The macro instruction belonging to the problem program has two requests for interruptions of different urgency, namely for one I / O and for an EXT interrupt, occurred and considered allowed were determined.

Da keine Anforderungen für MASCH PRUEF-oder PROG PRUEF-Unterbrechungen aufgetreten sind, die eine sofortige Beendung der Mikroinstruktionsfolge bewirkt haben würde, dient die letzte Mikroinstruktion der Folge zur Feststellung, ob eine Anforderung für eine E/A- oder eine EXT-Unterbrechung vorliegt. Das Abfragesignal auf der Leitung 68 wird zur Schaltung 70 geleitet, die, wie in Beispiel 2 erläutert, ein JA-Ausgangssignal auf der Leitung 71 entwickelt. Auf den beiden Eingangsleitungen 58 und 71 de1· Schaltung 72 sind Signale vorhanden, so dass diese Schaltung ebenfalls ein JA-Ausgangssignal auf die Leitung 73 gibt, das zur Schaltung 8OA weitergeleitet wird. Diese Schaltung bewirkt die Einspeicherung des aktiven PSW's in die Hauptspeicher stelle "altes EXT PSW" und die darauf folgende Ueberführung des neuen PSW^S; das für die Ausführung des EXT-Programmes erforderlich ist, von der Hauptspeicherstelle "neues EXT PSW" zum Arbeitsspeicher. Nach Abschluss dieser tJebertragungen wird das·._.Since no requests for MASCH PRUEF or PROG PRUEF interrupts have occurred that would have caused the sequence of microinstructions to terminate immediately, the last microinstruction in the sequence is used to determine whether there is a request for an I / O or an EXT interrupt. The interrogation signal on line 68 is passed to circuit 70 which, as explained in Example 2, develops a YES output on line 71. Signals are present on the two input lines 58 and 71 of 1 · circuit 72, so that this circuit also gives a YES output signal on line 73, which is forwarded to circuit 80A. This circuit causes the storage of the active PSW in the main memory place "old EXT PSW" and the subsequent transfer of the new PSW ^ S; required for the execution of the EXT program, from the main memory location "new EXT PSW" to the working memory. After these transmissions have been completed, the · ._.

Docket 658b WESDocket 658b WES

ÖÖS8iÖ/if89ÖÖS8iÖ / if89

auf Leitung 68A entwickelte Signal der Schaltung 70 zugeführt und die Abfragfoperation wiederholt. Da eine zweite Unterbrechungsanforderung vorliegt, ist auf Leitung 57 ein Signal vorhanden und die Schallung 70 liefert ein JA-Ausgangssignal auf Leitung 71. Da die Anforderung; für die EXT-Unterbrechung durch die Ueberführung des entsprechenden PSW1 s in den Arbeitsspeicher bereits berücksichtigt wurde, liegt kein Signal mehr auf der Leitung 58 und die Schaltung 72 entwickelt ein NEIN-Ausgangssignal auf der Leitung 74. Dieses zeigt an, wie bereits erläutert, dass eine Anforderung für eine E/A-Unterbrechung vorliegt, und die Schaltung 8OB steuert die Einspeicherung des alten PSWs in die Hauptspeicher stelle "altes E/A PSW". Eb wird daraufhingewiesen, dass dieses alte PSW das dem noch nicht ausgeführten EXT-Unterbrechungsprogramm zugeordnete Kontrollwort ist. Dieses PSW enthält alle Informationen, die erforderlich sind, um die Ausführung des EXT-Unterhrechungsprogrammes einzuleiten sobald es wieder in den Arbeitsspeicher überführt wird. Dieses geschieht, wie weiter unten erklärt werden wird, nach Abschluss des E/A-Unterbrechungsprogramme s, das gegenüber der EXT-Unterbrechung von höherer Dringlichkeit ist. .The signal developed on line 68A is applied to circuit 70 and the polling operation repeated. Since there is a second interrupt request, a signal is present on line 57 and circuit 70 provides a YES output on line 71. Since the request; has already been taken into account for the EXT interruption by transferring the corresponding PSW 1 s to the main memory, there is no longer a signal on line 58 and circuit 72 develops a NO output signal on line 74. This indicates, as already explained, that there is a request for an I / O interruption, and the circuit 8OB controls the storage of the old PSW in the main memory location "old I / O PSW". It is pointed out to Eb that this old PSW is the control word assigned to the EXT interrupt program which has not yet been executed. This PSW contains all the information that is required to initiate the execution of the EXT maintenance program as soon as it is transferred back to the working memory. As will be explained below, this occurs after the I / O interrupt routine has been completed, which is of greater urgency than the EXT interrupt. .

Nach Einspeicherung des alten (EXT) PSW's wird das neue, für das E/A-Unterbrechungsprogramm erforderliche PSW aus der Hauptspeicherstelle "neues E/A PSW" ausgelesen und in den Arbeitsspeicher überführt.After the old (EXT) PSW has been saved, the new one is used for the I / O interruption program required PSW is read from the main memory location "new I / O PSW" and transferred to the main memory.

Das nach Abschluss dieser Operationen auf der Leitung 68B erscheinende Signal wird an die Schaltung 70 gegeben und die Abfrageoperation wird erneut wiederholt. Da angenommen wurde, dass keine weiteren Unter-That which appears on line 68B after these operations are complete Signal is given to circuit 70 and the polling operation is performed repeated again. Since it was assumed that no further sub-

Docket 6580 WBDocket 6580 WB

BAD ORIGINAL 009810/1389 BATH ORIGINAL 009810/1389

brechungsanforderungen gestellt wurden, erscheint ein Signal auf der NEIN-Ausgangsleitung 62, das, zur Schaltung 60 geführt, die Ausführung des E/A-Unterbrechungsprogrammes einleitet.Break requests have been made, a signal will appear on the NO output line 62 which, fed to circuit 60, executes of the I / O interrupt routine.

Nach Abschluss des E/A-Unterbrechungsprogrammes und unter der Annahme, dass keine weiteren Unterbrechungsanforderungen aufgetreten sind, wird das aktive (E/A) PSW in die Hauptspeicher stelle* "neues E/A PSW" eingespeichert und das PSW für das EXT-Unterbrechungsprogramm aus der Speicherstelle "altes E/A PSW" ausgelesen und dem Arbeitsspeicher zugeführt. Hierauf erfolgt die Ausführung des zweiten Unterbrechungsprogrammes. After completing the I / O interrupt routine and assuming that no further interrupt requests have occurred the active (I / O) PSW is stored in the main memory location * "new I / O PSW" and the PSW for the EXT interrupt program read out from the memory location "old I / O PSW" and fed to the main memory. The second interrupt program is then executed.

Nach Abschluss auch dieses Programmes und wiederum annehmend, dass keine weiteren Unterbrechungsanforderungen aufgetreten sind, wird das jetzt aktive (EXT) PSW in die Hauptspeicherstelle "neues EXTPSW" eingespeichert und das PSW, das die für die Wiederaufnahme des unterbrochenen Problemprogrammes erforderlichen Informationen enthält, der Speicherstelle "altes EXT PSW" entnommen und in den Arbeitsspeicher eingegeben. Hierauf wird die Ausführung des unterbrochenen Problemprogrammes fortgesetzt.After completing this program as well and again assuming that If no further interrupt requests have occurred, the now active (EXT) PSW is stored in the main memory location "new EXTPSW" and the PSW, which contains the information required to resume the interrupted problem program, taken from the memory location "old EXT PSW" and entered into the working memory. The interrupted problem program is then executed continued.

Bei dem beschriebenen Verfahren werden, wenn gleichzeitig mehrere Unterbrechungsanforderungen auftreten, die entsprechenden PSW*s in der Reihenfolge zunehmender Dringlichkeit der Unterprogramme eingespeichert, das PSW niedrigster Priorität wird zuerst zurücksichtigt; hingegen erfolgt die Ausführung der Unterprogramme in der entgegengesetzten Reihenfolge, d.h. das Unterprogramm höchster Dringlichkeit wird zuerst ausgeführt.In the method described, if several at the same time Interrupt requests occur, the corresponding PSW * s in the Order of increasing urgency of the subroutines stored, the lowest priority PSW is considered first; however, takes place the execution of the subroutines in the opposite order, i.e. the highest priority subroutine is executed first.

Docket 6580 WBDocket 6580 WB

0098107138900981071389

Mit Hilfe des angegebenen Verfahrens ist es auch möglich, Unterbrechxmgsanforderungen zu berücksichtigen, die während der Ausführung eines Unterbrechungsprogrammes anderer Art auftreten. Wenn die angeforderte zweite Unterbrechung als erlaubt bestimmt wurde, ermöglicht das System die Unterbrechung des ablaufenden ersten Unterbrechungsprogrammes.With the help of the specified procedure, it is also possible to meet interruption requests to be taken into account that occur during the execution of an interruption program of a different type. If the requested The system enables the second interruption to be permitted the interruption of the running first interruption program.

Aus dem Vorangegangenen wird ersichtlich, dass, sobald das Monitor-Programm die Ausführung eines Unterbrechungsprogrammes eingeleitet und begonnen hat, dieses Unterprogramm nicht durch ein Unterprogramm der gleichen Art unterbrochen werden darf. Würde dieses zugelassen, so würden alle Informationen über das unterbrochene, ursprünglich ablaufende Problemprogramm verloren gehen, da das dem ersten Unterbrechungsprogramm zugeordnete PSW in die "alte " PSW-Speicher stelle eingegeben würde, die bereits das PSW des ursprünglichen Problemprogrammes enthält. Diese Situation kann durch geeignete Anwendung der Maskenbits der PSW s'verhindert werden: handelt es sich beispielsweise bei den nacheinander auftretenden Unterbrechungsanforderungen um E/AUnterbrechungen, muss die Systemmaske des neuen E/A-PSW's das dem ersten Unterbrechurigsprogramm entspricht, alle von anderen E/A-Kanälen angeforderten Unterbrechungen als unerlaubt definieren. Auf diese Weise kann keine weitere E/A-r Unterbrechung eingeleitet werden bevor nicht das gegenwärtig ablaufende E/A-Unterprogramm zu Ende" geführt ist.From the foregoing it can be seen that as soon as the monitor program has initiated and started the execution of an interruption program, this subroutine must not be interrupted by a subroutine of the same type. If this were allowed, all information about the interrupted, originally running problem program would be lost, since the PSW assigned to the first interruption program would be entered in the "old" PSW memory location which already contains the PSW of the original problem program. This situation can be prevented by suitable use of the PSW s' mask bits: if, for example, the successive interrupt requests are I / O interruptions, the system mask of the new I / O PSW that corresponds to the first interrupt program must include all of the other I / O interruptions. Define interruptions requested by A channels as not allowed. In this way, no more I / Ar may be initiated before interruption not there's currently running I / O subroutine is brought to an end ".

MASCH PRUEF-und PROG PRUEF-Unterbrechüngen werden sofort nach Auftreten der die Unterbrechungen erfordernden Bedingungen eingeleitet. Auch liier wird das der Kontrolle des zu UnterbrechendenMASCH PRUEF and PROG PRUEF interruptions are immediate initiated after the occurrence of the conditions requiring the interruptions. This also becomes the control of what is to be interrupted

Docket 6580 WB BAD ORIGINALDocket 6580 WB BAD ORIGINAL

Programms dienende alte PSV/" in. doi: Hautpspeicher überführt und das neue, für die Ausführung des. Unterbrechungsprogrammes erforderliche· PSV/ in den Arbeitsspeicher eingegeben. Das gleiche gilt für die MOX RLT-Unterbrechungen, die sich lediglich darin unterscheiden, dass sit· durch vom Programmierer vorgesehene Makroinstruktionen eingeleitet werden.Program serving old PSV / "in. Doi: main memory transferred and that new, necessary for the execution of the interrupt program PSV / entered into memory. The same applies to the MOX RLT interruptions, which differ only in that sit · through macro instructions provided by the programmer are initiated.

Die durch den in Fig. 6 gezeigten Aufbau der Anlage vorgegebene Prioritätsreihenfolge kann leicht geändert werden, indem man die durch die in den PSWs enthaltenen Masken gegebe'nen Möglichkeiten ausnutzt. Soll z. B-. ein Unterbrechungsprogramm, das entsprechend der Schaltung eine niedrigere Priorität aufweist, als ein zweites, gleichzeitig angefordertes Unterbrechungsprogramm vor diesem zweiten Unter br e.chungspro« ramm höherer Priorität zur Ausführung gelangen, so kann man die Maskenbits des dem Unterprogramm, niedrigerer Priorität entsprechenden PSWs, das als erstes in den Arbeitsspeicher entgegeben wird, so wählen, dass das dem die Unterbrechung höherer Priorität anfordernden Kanal entsprechende Maskenbit zu "0" gemacht wird, wodurch diese Unterbrechung als nicht erlaubt definiert wird. Hierdurch ist ein sehr vielseitiges und leicht variierbares Unterbrechungsverfahren gegeben, das Unterbrechungen Unterschiedlicher Dringlichkeit in einer vom Programmierer oder vom Programm selbst bestimmten Reihenfolge auszuführen gestattet.The order of priority given by the structure of the system shown in FIG PSWs uses the given possibilities. Should z. B-. an interrupt program which, according to the circuit, has a lower priority than a second, simultaneously requested one Interrupt program before this second interruption program higher priority, you can use the mask bits of the PSW corresponding to the subroutine, lower priority, which is the first to be transferred to the main memory, so select that the mask bit corresponding to the channel requesting the higher priority interrupt is made "0", thereby causing this interrupt is defined as not allowed. This results in a very versatile and easily variable interruption method, the interruptions Different urgency in one of the programmer or the Program itself allowed to execute in a specific order.

Docket 6580 fß 009810/1389Docket 6580 for 009810/1389

Claims (2)

- 35 PATENTAN S P R Ü C H E- 35 PATENTAN S P R Ü C H E 1. Datenverarbeitungsanlage mit vorranggesteuerter Programmunterbrechung, mit einem aktiven Programmstatuswort-Register (PSW-Register) für die Aufnahme der das laufende Programm beschreibenden Daten (Programmstatuswort) und mit einer Steuerschaltung zur Steuerung des Programmablaufs und zur Entgegennahme von Unterbrechungsanforderungen, gekennzeichnet durch mehrere inaktive PSW-Register für die Aufnahme von Daten zur Beschreibung bereitstehender Unterprogramme oder unterbrochener Programme; durch von der Steuerschaltung (60) zur Einleitung je eines Unterprogramms unterschiedlicher Polaritäten erregbare Steuervorrichtungen (80), die je einem Unterprogramm zugeordnet sind und die bei Erregung das aktive Programmstatuswort ergänzen, in das dem betreffenden Unterprogramm zugeordnete inaktive PSW-Register abspeichern und das diesem Unterprogramm zugeordnete Programmstatuswort in das aktive PSW-Register übertragen; und durch zwischen die Steuerschaltung (6o) und die Steuervorrichtungen (80) eingefügte logische Schaltungen (70, 72) die nach jedem solchen Austausch von Programmstatusworten prüfen, ob weitere Unterbrechungsanforderungen vorliegen, und die gegenenfalls eine weitere Steuervorrichtung (z, B« 80 A) höherer Priorität zum nochmaligen Austausch der Programm Statusworte erregen. 1. Data processing system with priority-controlled program interruption, with an active program status word register (PSW register) for receiving the data describing the current program (program status word) and with a control circuit for controlling the program flow and for the receipt of interruption requests, characterized by several inactive PSW registers for the acceptance of data for the description of ready subroutines or interrupted programs; through from the control circuit (60) excitable control devices (80) to initiate a sub-program of different polarities, each of which has a sub-program are assigned and which, when energized, add the active program status word to the one assigned to the relevant subroutine Save inactive PSW registers and this subroutine Transfer the assigned program status word to the active PSW register; and through between the control circuit (6o) and the control devices (80) inserted logic circuits (70, 72) after each such Exchange of program status words check whether further interrupt requests are present, and which, if necessary, excite a further control device (for example, «80 A) with higher priority for the renewed exchange of the program status words. 2. Datenverarbeitungsanlage nach Anspruch 1, dadurch gekennzeichnet, daß jedem bereitstehenden Unterprogramm ein Registerpaar (40 D bis 40H) zugeordnet ist, von denen eines (z. B, 40 DI) für die Aufnahme des dem zu unterbrechenden Programm zugehörigen Programmstatuswort vorgesehen ist und das andere (z. B. 40 DII) das dem unterbrechenden Unterprogramm zugehörigen und in das aktive PSW-Register zu übertragende Programmstatuswort enthält; daß beim gleichzeitigen Vorliegen einer weiteren Unterbrechungsanforderung höherer Priori-Docket 6580 WB 00 9810/1389 2. Data processing system according to claim 1, characterized in that each available subroutine is assigned a pair of registers (40 D to 40H), one of which (z. B. 40 DI) is provided for receiving the program status word associated with the program to be interrupted and that others (e.g. 40 DII) contains the program status word belonging to the interrupting subroutine and to be transferred to the active PSW register; that if there is a further interrupt request at the same time, higher priority docket 6580 WB 00 9810/1389 : '"' : ? '- BAD ORfQINAL : '"' : ? '- BAD ORfQINAL tat das Programmstatuswort des zunächst berücksichtigten Unterprogramms aus dem aktiven PSW-Register wieder entnommen und in das eine Register (z. B. 40 E III) des dem zweiten Unterprogramm zugeordneten Registerpaares (z. B, 40 E) eingetragen und aus dem anderen Register (z. B. 4OE IV) des zweiten Registerpaares das dem zweiten Unterprogramm zugehörige Programmstatuswort zum aktiven PSW-Register übertragen wird und daß weitere gleichzeitige Unterbrechungsanforderungen in gleicher Weise behandelt werden und der Abbau der Anfordervmgen in umgekehrter Folge vorgenommen wird.did the program status word of the subroutine initially considered taken from the active PSW register and into one register (e.g. 40 E III) of the register pair assigned to the second subroutine (e.g. 40 E) and from the other register (e.g. 4OE IV) of the second register pair, the program status word belonging to the second subroutine is transferred to the active PSW register and that further simultaneous interrupt requests are dealt with in the same way and the reduction of the request amounts in the reverse order is made. 009 810/1389009 810/1389 Docket 6580 WBDocket 6580 WB 31-Leerseite 31- blank page
DE19651499200 1964-04-06 1965-03-20 DATA PROCESSING SYSTEM WITH PRIORITY CONTROLLED PROGRAM INTERRUPTION Pending DE1499200B2 (en)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US357372A US3400371A (en) 1964-04-06 1964-04-06 Data processing system

Publications (2)

Publication Number Publication Date
DE1499200A1 true DE1499200A1 (en) 1970-03-05
DE1499200B2 DE1499200B2 (en) 1971-04-15

Family

ID=23405304

Family Applications (6)

Application Number Title Priority Date Filing Date
DENDAT1250659D Pending DE1250659B (en) 1964-04-06 Microprogram-controlled data processing system
DEJ27677A Pending DE1246289B (en) 1964-04-06 1965-03-11 Condition register for a program-controlled data processing system
DE19651303416D Pending DE1303416B (en) 1964-04-06 1965-03-19
DE19651499200 Pending DE1499200B2 (en) 1964-04-06 1965-03-20 DATA PROCESSING SYSTEM WITH PRIORITY CONTROLLED PROGRAM INTERRUPTION
DE19651499201 Pending DE1499201B2 (en) 1964-04-06 1965-03-26 Circuit arrangement for converting information in a packed byte representation into an unpacked representation
DEJ27790A Pending DE1237363B (en) 1964-04-06 1965-03-27 Arithmetic-logical unit

Family Applications Before (3)

Application Number Title Priority Date Filing Date
DENDAT1250659D Pending DE1250659B (en) 1964-04-06 Microprogram-controlled data processing system
DEJ27677A Pending DE1246289B (en) 1964-04-06 1965-03-11 Condition register for a program-controlled data processing system
DE19651303416D Pending DE1303416B (en) 1964-04-06 1965-03-19

Family Applications After (2)

Application Number Title Priority Date Filing Date
DE19651499201 Pending DE1499201B2 (en) 1964-04-06 1965-03-26 Circuit arrangement for converting information in a packed byte representation into an unpacked representation
DEJ27790A Pending DE1237363B (en) 1964-04-06 1965-03-27 Arithmetic-logical unit

Country Status (12)

Country Link
US (1) US3400371A (en)
AT (4) AT264162B (en)
BE (5) BE662154A (en)
CH (6) CH425282A (en)
DE (6) DE1246289B (en)
ES (3) ES311385A1 (en)
FI (1) FI46568C (en)
GB (7) GB1061361A (en)
IL (1) IL23159A (en)
NL (5) NL6504273A (en)
NO (1) NO117054B (en)
SE (3) SE311445B (en)

Families Citing this family (55)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB768767A (en) * 1954-05-20 1957-02-20 Univ Kingston Method and apparatus for density control
US3388239A (en) * 1965-12-02 1968-06-11 Litton Systems Inc Adder
DE1524158B1 (en) * 1966-06-03 1970-08-06 Ibm Adding-subtracting circuit for coded decimal numbers, especially those in byte representation
DE1549531A1 (en) * 1966-08-16 1971-04-01 Scient Data Systems Inc Digital computer system
US3478322A (en) * 1967-05-23 1969-11-11 Ibm Data processor employing electronically changeable control storage
US3544969A (en) * 1967-11-27 1970-12-01 Standard Computer Corp Language independent computer
US3568163A (en) * 1968-10-07 1971-03-02 Hewlett Packard Co Incremental display circuit
US3577189A (en) * 1969-01-15 1971-05-04 Ibm Apparatus and method in a digital computer for allowing improved program branching with branch anticipation reduction of the number of branches, and reduction of branch delays
US4558411A (en) * 1969-05-19 1985-12-10 Burroughs Corp. Polymorphic programmable units employing plural levels of sub-instruction sets
US3701972A (en) * 1969-12-16 1972-10-31 Computer Retrieval Systems Inc Data processing system
US3740722A (en) * 1970-07-02 1973-06-19 Modicon Corp Digital computer
US3761893A (en) * 1970-07-02 1973-09-25 Modicon Corp Digital computer
GB1349950A (en) * 1971-12-21 1974-04-10 Ibm Microprogramme control system
US3740728A (en) * 1972-01-19 1973-06-19 Hughes Aircraft Co Input/output controller
US3768077A (en) * 1972-04-24 1973-10-23 Ibm Data processor with reflect capability for shift operations
US3825902A (en) * 1973-04-30 1974-07-23 Ibm Interlevel communication in multilevel priority interrupt system
DE2336676C3 (en) * 1973-07-19 1981-06-19 Ibm Deutschland Gmbh, 7000 Stuttgart Device for modifying microprogram instructions
DE2560129C2 (en) * 1974-09-25 1982-11-04 Data General Corp., 01581 Westboro, Mass. Method for generating and executing the initial microinstruction of a microinstruction sequence used for executing a macroinstruction
US3990052A (en) * 1974-09-25 1976-11-02 Data General Corporation Central processing unit employing microprogrammable control for use in a data processing system
US4241397A (en) * 1977-10-25 1980-12-23 Digital Equipment Corporation Central processor unit for executing instructions with a special operand specifier of indeterminate length
US4342078A (en) * 1979-05-21 1982-07-27 Motorola, Inc. Instruction register sequence decoder for microprogrammed data processor and method
US4310895A (en) * 1979-11-02 1982-01-12 International Business Machines Corporation Plural null digital interconnections
FR2469752B1 (en) * 1979-11-14 1986-05-16 Bull Sa DEVICE FOR SHARING A CENTRAL SUBSYSTEM OF AN INFORMATION PROCESSING SYSTEM INTO SEVERAL INDEPENDENT SUBSYSTEMS
US4368513A (en) * 1980-03-24 1983-01-11 International Business Machines Corp. Partial roll mode transfer for cyclic bulk memory
US4453209A (en) * 1980-03-24 1984-06-05 International Business Machines Corporation System for optimizing performance of paging store
US4408273A (en) * 1980-05-27 1983-10-04 International Business Machines Corporation Method and means for cataloging data sets using dual keyed data sets and direct pointers
US4480304A (en) * 1980-10-06 1984-10-30 International Business Machines Corporation Method and means for the retention of locks across system, subsystem, and communication failures in a multiprocessing, multiprogramming, shared data environment
US4399504A (en) * 1980-10-06 1983-08-16 International Business Machines Corporation Method and means for the sharing of data resources in a multiprocessing, multiprogramming environment
US4435753A (en) * 1980-10-31 1984-03-06 International Business Machines Corporation Register allocation system using recursive queuing during source code compilation
NL8205076A (en) * 1982-12-31 1984-07-16 Philips Nv DATA PROCESSOR UNIT EQUIPPED WITH A CONTROL PART INCLUDING AN ADDRESS GENERATOR FOR GENERATING ADDRESSES COMPOSED OF CHARACTERISTIC ADDRESS PARTS.
US4567574A (en) 1983-03-14 1986-01-28 International Business Machines Corporation Optimizing cobol object code instruction path length with respect to perform statements
US4575798A (en) * 1983-06-03 1986-03-11 International Business Machines Corporation External sorting using key value distribution and range formation
US4584643A (en) * 1983-08-31 1986-04-22 International Business Machines Corporation Decentralized synchronization of clocks
US4531185A (en) * 1983-08-31 1985-07-23 International Business Machines Corporation Centralized synchronization of clocks
US4587628A (en) * 1983-12-05 1986-05-06 International Business Machines Corporation Method and apparatus for dynamic invocation of utilities
US4603323A (en) * 1984-05-25 1986-07-29 International Business Machines Corporation Method for extending the exponent range of an IBM 370-type floating point processor
US4631673A (en) 1985-01-22 1986-12-23 International Business Machines Corporation Method for refreshing multicolumn tables in a relational data base using minimal information
US4782444A (en) * 1985-12-17 1988-11-01 International Business Machine Corporation Compilation using two-colored pebbling register allocation method such that spill code amount is invariant with basic block's textual ordering
US5247646A (en) * 1986-05-15 1993-09-21 Aquidneck Systems International, Inc. Compressed data optical disk storage system
US4775969A (en) * 1986-05-15 1988-10-04 Aquidneck Systems International, Inc. Optical disk storage format, method and apparatus for emulating a magnetic tape drive
US5034914A (en) * 1986-05-15 1991-07-23 Aquidneck Systems International, Inc. Optical disk data storage method and apparatus with buffered interface
US4823306A (en) * 1987-08-14 1989-04-18 International Business Machines Corporation Text search system
EP0381655A3 (en) * 1989-01-31 1992-12-02 International Business Machines Corporation Method for synchronizing the dispatching of tasks among multitasking operating systems
EP0409808A3 (en) * 1989-07-19 1991-11-27 International Business Machines Corporation Method for ensuring map integrity in a system-managed store of a computer
US5218696A (en) * 1989-07-24 1993-06-08 International Business Machines Corporation Method for dynamically expanding and rapidly accessing file directories
US5226143A (en) * 1990-03-14 1993-07-06 International Business Machines Corporation Multiprocessor system includes operating system for notifying only those cache managers who are holders of shared locks on a designated page by global lock manager
US5301290A (en) * 1990-03-14 1994-04-05 International Business Machines Corporation Method for minimizing lock processing while ensuring consistency among pages common to local processor caches and a shared external store
JP2575543B2 (en) * 1990-04-04 1997-01-29 インターナショナル・ビジネス・マシーンズ・コーポレイション Simultaneous access management method
EP0472814B1 (en) * 1990-08-31 1996-12-18 International Business Machines Corporation Channel paths in a computer I/O system
US5379398A (en) * 1992-04-20 1995-01-03 International Business Machines Corporation Method and system for concurrent access during backup copying of data
US5584039A (en) * 1993-11-08 1996-12-10 International Business Machines Corporation System for coordinating execution of multiple concurrent channel programs without host processor involvement using suspend and resume commands to control data transfer between I/O devices
US5487077A (en) * 1994-05-23 1996-01-23 International Business Machines Corporation Location dependent variable error correction processing for multi-track recording media using variable length coding means
US7607133B2 (en) * 2004-02-11 2009-10-20 Arm Limited Interrupt processing control
GB2506169A (en) * 2012-09-24 2014-03-26 Imagination Tech Ltd Limiting task context restore if a flag indicates task processing is disabled
CN109171701B (en) * 2018-07-05 2023-02-03 北京谷山丰生物医学技术有限公司 Method and device for improving frequency response of electrocardio acquisition system

Family Cites Families (48)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US2843841A (en) * 1954-09-20 1958-07-15 Internat Telemeter Corp Information storage system
US2872666A (en) * 1955-07-19 1959-02-03 Ibm Data transfer and translating system
US3319230A (en) * 1956-09-26 1967-05-09 Ibm Data processing machine including program interrupt feature
DE1084497B (en) * 1957-11-13 1960-06-30 Emi Ltd Logistic electronic computing device
NL136146C (en) * 1957-12-09
NL234523A (en) * 1957-12-23
NL135792C (en) * 1958-08-29 1900-01-01
US3056552A (en) * 1959-01-28 1962-10-02 Ibm Asynchronous parallel adder deriving intermediate sums and carries by repeated additions and multiplications
US3153775A (en) * 1959-02-11 1964-10-20 Ibm Table look-up system
US3141151A (en) * 1959-03-23 1964-07-14 Burroughs Corp Magnetic tape storage system for digital computers wherein an indication of the number of bits in a message is stored with the message
NL255604A (en) * 1959-09-08
US3185966A (en) * 1959-09-08 1965-05-25 Ibm Data editing system
NL256940A (en) * 1959-10-19 1900-01-01
US3111648A (en) * 1960-03-31 1963-11-19 Ibm Conversion apparatus
NL267513A (en) * 1960-07-25
US3233224A (en) * 1960-09-15 1966-02-01 Burroughs Corp Data processing system
US3119098A (en) * 1960-10-31 1964-01-21 Ibm Stream editing unit
US3228005A (en) * 1960-12-30 1966-01-04 Ibm Apparatus for manipulating data on a byte basis
USB325107I5 (en) * 1961-01-27
US3273126A (en) * 1961-08-25 1966-09-13 Ibm Computer control system
DE1157009B (en) * 1961-09-13 1963-11-07 Telefunken Patent Arithmetic unit of a digital calculating machine
DE1187044B (en) * 1961-09-13 1965-02-11
GB993879A (en) * 1961-11-16
US3258748A (en) * 1962-01-08 1966-06-28 Fntan, fntin
NL287533A (en) * 1962-01-22
US3248708A (en) * 1962-01-22 1966-04-26 Ibm Memory organization for fast read storage
NL292579A (en) * 1962-05-10
FR1365593A (en) * 1962-06-22 1964-11-03
NL294820A (en) * 1962-07-03
US3267433A (en) * 1962-08-24 1966-08-16 Ibm Computing system with special purpose index registers
US3292152A (en) * 1962-09-17 1966-12-13 Burroughs Corp Memory
BE637749A (en) * 1962-10-01
US3319226A (en) * 1962-11-30 1967-05-09 Burroughs Corp Data processor module for a modular data processing system for operation with a time-shared memory in the simultaneous execution of multi-tasks and multi-programs
US3286239A (en) * 1962-11-30 1966-11-15 Burroughs Corp Automatic interrupt system for a data processor
US3264615A (en) * 1962-12-11 1966-08-02 Ibm Memory protection system
US3271744A (en) * 1962-12-31 1966-09-06 Handling of multiple matches and fencing in memories
US3292155A (en) * 1963-03-15 1966-12-13 Burroughs Corp Computer branch command
US3268875A (en) * 1963-12-20 1966-08-23 Ibm Translation operation
US3297997A (en) * 1963-06-10 1967-01-10 Beckman Instruments Inc List control
DE1218761B (en) * 1963-07-19 1966-06-08 International Business Machines Corporation, Armonk, N. Y. (V. St. A.) Data storage device
US3297999A (en) * 1963-08-26 1967-01-10 Burroughs Corp Multi-programming computer
US3300764A (en) * 1963-08-26 1967-01-24 Collins Radio Co Data processor
US3302183A (en) * 1963-11-26 1967-01-31 Burroughs Corp Micro-program digital computer
US3290658A (en) * 1963-12-11 1966-12-06 Rca Corp Electronic computer with interrupt facility
US3312946A (en) * 1963-12-18 1967-04-04 Ibm Processor for coded data
US3328768A (en) * 1964-04-06 1967-06-27 Ibm Storage protection systems
US3315235A (en) * 1964-08-04 1967-04-18 Ibm Data processing system
US3325785A (en) * 1964-12-18 1967-06-13 Ibm Efficient utilization of control storage and access controls therefor

Also Published As

Publication number Publication date
AT255801B (en) 1967-07-25
ES311414A1 (en) 1966-01-16
FI46568B (en) 1973-01-02
AT267226B (en) 1968-12-27
GB1108802A (en) 1968-04-03
DE1303416B (en) 1971-12-23
DE1499201B2 (en) 1971-01-21
CH424324A (en) 1966-11-15
GB1054725A (en)
NL143351B (en) 1974-09-16
SE316936B (en) 1969-11-03
US3400371A (en) 1968-09-03
BE662151A (en) 1965-08-02
IL23159A (en) 1969-01-29
CH425282A (en) 1966-11-30
BE662153A (en) 1965-08-02
CH418011A (en) 1966-07-31
NL6504272A (en) 1965-10-07
NL6504270A (en) 1965-10-07
CH426321A (en) 1966-12-15
CH432065A (en) 1967-03-15
GB1045425A (en) 1966-10-12
BE662152A (en) 1965-08-02
BE662154A (en) 1965-08-02
NL6504273A (en) 1965-10-07
DE1237363B (en) 1967-03-23
GB1108801A (en) 1968-04-03
ES311413A1 (en) 1965-10-01
ES311385A1 (en) 1965-11-01
AT264162B (en) 1968-08-26
CH422394A (en) 1966-10-15
SE310277B (en) 1969-04-21
SE311445B (en) 1969-06-09
DE1246289B (en) 1967-08-03
FI46568C (en) 1973-04-10
DE1499200B2 (en) 1971-04-15
NL6504269A (en) 1965-10-07
DE1499201A1 (en) 1970-10-22
DE1250659B (en) 1967-09-21
NO117054B (en) 1969-06-23
GB1061361A (en) 1967-03-08
NL6504271A (en) 1965-10-07
GB1055704A (en) 1967-01-18
GB1108800A (en) 1968-04-03
AT253260B (en) 1967-03-28
BE662149A (en) 1965-08-02

Similar Documents

Publication Publication Date Title
DE1499200A1 (en) Data processing system with priority-controlled program interruption
DE2716051C2 (en) Data processing system with one or more processors with at least one input / output channel with several subchannels and with a memory arrangement in which keys are used for memory access
DE2318069C2 (en) Micro-programmed computer system with expansion of control functions by means of a hard-wired logic matrix
DE2629459C2 (en)
DE2322674C3 (en) Microprogram controller
DE2847934A1 (en) DATA PROCESSING DEVICE WITH A MICRO COMMAND MEMORY
CH619309A5 (en)
DE1915818A1 (en) Electronic data processing system
DE2411963B2 (en) DATA PROCESSING SYSTEM
DE2719635A1 (en) ARRANGEMENT FOR AN EXTENSION OF A MICROPROGRAM CONTROL OF A DATA PROCESSING SYSTEM
DE2054830C3 (en) Information processing system with means for accessing memory data fields of variable length
DE1275800B (en) Control unit for data processing machines
DE2339636A1 (en) PROGRAM CONTROL DEVICE
DE2930441C2 (en) Display device for optional dynamic or static display
CH615521A5 (en)
DE1931966B2 (en) Data processing system with associative memories
DE2912287A1 (en) DATA PROCESSING DEVICE
DE69130414T2 (en) Processor and method for parallel processing
DE3043653A1 (en) DATA PROCESSING SYSTEM
DE2753650C2 (en) Time keeping device with a register for storing time counting data
DE2245284A1 (en) DATA PROCESSING SYSTEM
DE2854400A1 (en) ARRANGEMENT FOR CHANGING BETWEEN TOOTHED PROGRAMS TO BE PROCESSED
DE1499200C (en) Data processing system with priority-controlled program interruption
DE2622140C3 (en) Device for controlling manual operations
DE2936801C2 (en) Control device for executing instructions

Legal Events

Date Code Title Description
E77 Valid patent as to the heymanns-index 1977