DE1574668B1 - Einrichtung zur unterbrechung eines programmablaufes bei einer programmgesteuerten, elektronischen rechenanlage - Google Patents

Einrichtung zur unterbrechung eines programmablaufes bei einer programmgesteuerten, elektronischen rechenanlage

Info

Publication number
DE1574668B1
DE1574668B1 DE19681574668 DE1574668A DE1574668B1 DE 1574668 B1 DE1574668 B1 DE 1574668B1 DE 19681574668 DE19681574668 DE 19681574668 DE 1574668 A DE1574668 A DE 1574668A DE 1574668 B1 DE1574668 B1 DE 1574668B1
Authority
DE
Germany
Prior art keywords
program
signal
computer
interrupt signal
code
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
DE19681574668
Other languages
English (en)
Inventor
Alwin Kroeck
Peter Dipl-Ing Mannherz
Peter Dipl-Ing Page
Hans Dipl-Ing Wycisk
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.)
Licentia Patent Verwaltungs GmbH
Original Assignee
Licentia Patent Verwaltungs GmbH
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 Licentia Patent Verwaltungs GmbH filed Critical Licentia Patent Verwaltungs GmbH
Publication of DE1574668B1 publication Critical patent/DE1574668B1/de
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4812Task transfer initiation or dispatching by interrupt, e.g. masked

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Debugging And Monitoring (AREA)

Description

  • Bei Datenverarbeitungsanlagen mit gespeichertem Programm besteht das Problem, beim Auftreten abnormer Arbeitsbedingungen innerhalb der Maschine selbst oder auch in den der Maschine angeschlossenen Geräten das gerade laufende Programm zu unterbrechen und ein Unterprogramm zur Berücksichtigung und Beseitigung dieser abnormen Arbeitsbedingungen abzufahren. In der deutschen Auslegeschrift 1201586 ist bei einer Datenauswertemaschine dieses Problem und eine Lösung desselben aufgezeigt.
  • Als abnorme Arbeitsbedingungen sind beispielsweise bei einem kommerziellen Rechner fehlerhaftes Arbeiten der Datenein- und -ausgabegeräte zu verstehen. Sehr viel wichtiger ist es, bei einem Prozeßrechner derartige Programmunterbrechungen vorzusehen. Die Leistungsfähigkeit eines Prozeßrechners steht im direkten Verhältnis zu der Anzahl der möglichen Programmunterbrechungen. Der Prozeßrechner verkehrt direkt mit dem Prozeß, und es muß möglich sein, den Prozeß über ein Unterbrechungsprogramm, das vorrangig ein gerade laufendes Programm unterbricht, so zu beeinflussen, daß ein Unterbrechungssignal, das z. B. erhöhten Druck oder Temperatur anzeigt, beseitigt wird. Zur Lösung dieser Aufgabe sind folgende Maßnahmen bekannt: In jedem Fall sind den Geräten, die ein Unterbrechungssignal erzeugen können, Speicher, sogenannte Merker, zugeordnet, die bei Auftreten eines Unterbrechungssignals markiert werden. Zugleich sind alle Unterbrechungssignal-Leitungen zu einer Sammelleitung zusammengefaßt. Über diese Sammelleitung wird der Rechner bei Vorliegen eines Unterbrechungssignals veranlaßt, das gerade laufende Programm zu unterbrechen. In einem bekannten Fall adressiert er sodann alle in Frage kommenden Geräte, bzw. die den Geräten zugeordneten Merker, nacheinander und erhält von dem oder den die Unterbrechung verursachenden Geräten auf einer getrennten Leitung ein Signal. Durch das Vorliegen der Adresse, die dem Gerät, daß das Unterbrechungssignal erzeugt, zugeordnet ist, kann eine entsprechende Programmverzweigung (Unterprogramm) zur Bedienung dieses Gerätes veranlaßt werden. Im allgemeinen wird das Unterprogramm zuerst aufgerufen, das dem Gerät mit der höchsten Priorität zugeordnet ist. Eventuell noch anstehende Unterbrechungssignale, die jedoch rangniedriger sind, können gemerkt werden.
  • Eine weitere bekannte Lösung sieht vor, das sich der Rechner bei Vorliegen eines Unterbrechungssignals ein oder mehrere Zustandswörter über den Eingabekanal hereinholt, wobei in dem Zustandwort für jedes in Frage kommende Gerät eine Binärstelle vorgesehen ist. Die Geräte, die ein Unterbrechungssignal erzeugen, markieren die entsprechende Binärstelle im Zustandswort. Es muß sodann intern über das Programm jeder Markierung die Adresse des entsprechenden Gerätes zugeschrieben werden. Erst dann kann die Programmverzweigung zur Bedienung des Gerätes mit der höchsten Wertigkeit erfolgen, bzw. es können andere, ebenfalls ein Unterbrechungssignal erzeugende Geräte gemerkt werden.
  • Der Nachteil dieser bekannten Lösungen ist darin zu sehen; daß man einmal an der Peripherie des Rechners die Unterbrechungssignale schaltungsgemäß zusammenfassen muß und zum anderen im Rechner selbst über das Programm die zusammengefaßten Signale wiederum auseinanderpflücken muß, um zu erkennen, welchem Gerät das Unterbrechungssignal zugeordnet ist. Eine solche Arbeitsweise erfordert einmal sehr viel Zeit zum Bearbeiten eines Unterbrechungssignals und zum anderen relativ viel Programmierung, was gleichbedeutend ist mit einem hohen Speicherplatzbedarf.
  • Aufgabe der Erfindung ist es, eine Einrichtung zur Unterbrechung eines Programmablaufes zu schaffen, welche auf einfache und zeitsparende Weise die Programmunterbrechung durchführt und eine Programmverzweigung ermöglicht.
  • Die Erfindung betrifft eine Einrichtung zur Unterbrechung eines Programmablaufes bei einer programmgesteuerten, elektronischen Rechenanlage, die mit Geräten in Verkehr steht, die bei Vorliegen bestimmter Arbeitszustände ein Programmunterbrechungssignal erzeugen, wobei die Programmunterbrechungssignale verschiedenrangig bewertet sind. Die obengenannten, nachteiligen Eigenschaften der bekannten Lösungen werden dadurch vermieden, daß eine logische Schaltung vorgesehen ist, die für jedes ein Programmunterbrechungssignal erzeugende Gerät ein spezifisches, das Gerät kennzeichnende Kodewort erzeugt und die weiterhin so aufgebaut ist, daß sie beim Auftreten mehrerer Programmunterbrechungssignale zunächst nur das dem ranghöchsten Programmunterbrechungssignal zugeordnete Kodewort an den Eingabekanal des Rechners weitergibt und daß dieses Kodewort direkt zur Programmverzweigung benutzt wird.
  • An Hand der Zeichnungen werden zwei Ausführungsbeispiele der Erfindung im folgenden näher erläutert.
  • F i g. 1 zeigt eine erste Schaltungsanordnung zur Durchführung der erfinderischen Programmunterbrechung. Jedem Gerät, das ein Unterbrechungssignal erzeugen kann, ist ein Speicher Slo . . . Sln zugeordnet. Ein Speicher dieser ersten Speicherreihe wird dann gesetzt, d. h., er gibt an seinem bejahten Ausgang ein L-Signal aus, wenn das ihm zugeordnete Gerät ein Unterbrechungssignal erzeugt. Die bejahten Ausgangssignale der Speicher Slo ... Sln werden mit einem Übernahmetakt T1 in die Speicher S2o ... S2n einer zweiten Speicherreihe übernommen. Alle bekannten Ausgänge der Speicher S20 ... S2. sind über eine ODER-Stufe O zusammengefaßt, die demnach ein L-Signal an ihrem Ausgang abgibt, wenn zumindest einer der Speicher S2o ... S2. gesetzt ist, was wiederum bedingt, daß mindestens ein Gerät ein Unterbrechungssignal liefert. Durch ein L-Signal am Ausgang der ODER-Stufe O wird dem Rechner gemeldet, daß ein Unterbrechungssignal vorliegt. Da zugleich mehrere Geräte ein Unterbrechungssignal erzeugen können, weiß der Rechner zunächst nur, daß ein Unterbrechungssignal vorliegt. Er weiß nicht, um welche Geräte es sich handelt bzw. welches Gerät am vorrangigsten bedient werden muß. Um dies zu erkennen und dann das entsprechende Unterprogramm zur Berücksichtigung und Beseitigung der Unterbrechungssignale einzublenden, geht das erfinderische Verfahren folgenden Weg: Es wird extern und programmunabhängig das ranghöchste Unterbrechungssignal ermittelt, d. h., von n möglichen Unterbrechungssignalen wird nur ein Signal, und zwar das ranghöchste aussortiert. Dieses im -Kode anstehende Signal wird in eine mehrstellige Binärzahl umgeschlüsselt, die sodann im Rechner zur Programmverzweigung, d. h. zum Aussuchen des zugehörigen Unterprogramms herangezogen werden kann. Im Ausführungsbeispiel nach F i g. 1 geschieht die Prioritätserkennung der Unterbrechungssignale in der Weise, daß dem ranghöchsten Gerät die Speicher S1", S2. und dem rangniedrigsten Gerät die Speicher S3., S2o zugeordnet sind. Sodann ist der bejahte Ausgang des dem ranghöchsten Unterbrechungssignal zugeordneten Speichers S2. direkt auf den zugeordneten n-ten Eingang der Kodierungsmatrix M geführt. Alle nachfolgenden bejahten Ausgänge der Speicher S2.-1 . . . S21, S2, sind jeweils auf einen Eingang von UND-Stufen Un-1 ... U1, U' geführt, deren andere Eingänge von den negierten Ausgangssignalen der davorliegenden ranghöheren Speicher Un . . . U2, U1 belegt sind. Die Ausgänge der UND-Stufen Utz-1 ... U1, Uo sind sodann auf die ihnen fest zugeordneten Eingängen -1 ... 1, 0 der Kodiermatrix M geführt. Im praktischen Ausführungsbeispiel kann beispielsweise die Zahl der möglichen Unterbrechungssignale auf 16 beschränkt sein, so daß die Zahl n von 0 bis 15 läuft. In bekannter Weise können beispielsweise die Ziffern 0 bis 15 über eine Diodenmatrix in eine 4stellige Binärzahl (8-4-2-1) verschlüsselt werden. Diese 4stellige Binärzahl kann sodann über den Eingabekanal der programmgesteuerten Eingabe dem Rechner eingegeben und direkt zur Programmverzweigung benutzt werden.
  • Von den Eingangsleitungen 0, 1, 2 ... n, die zur Kodierungsmatrix M führen, kann auf Grund der Prioritätslogik immer nur eine mit L-Signal belegt sein. Zusammen mit einem Löschtakt T3 bilden die Eingangsleitungen 0, 1, 2 ... fz die beiden Eingänge von UND-Stufen Ulo, U, ... Ul1z, deren Ausgänge wiederum auf die Löscheingänge der Speicher Slo, S11 . . . Sln geführt sind, so daß, falls eine der Eingangsleitungen 0, 1, 2 ... n L-Signal führt und der Löschtakt T3 erscheint, der zugeordnete Speicher Slo, Si, . . .. Sln gelöscht wird.
  • Mit einem gemeinsamen Löschtakt T4 können alle Speicher S2., S21, S2. gelöscht werden. Da sich das ranghöchste Unterbrechungssignal zusammen mit dem Löschtakt T3 immer kurz nachdem es erkannt ist selbst löscht, kann es vorkommen, daß das zur Behebung des Unterbrechungssignals ra gerade laufende Unterprogramm von einem rangniedrigen Unterbrechungssignal n - k wiederum unterbrochen wird usw. Eine solche Arbeitsweise des Rechners ist nach Möglichkeit auszuschließen. Der Rechner kann zu diesem Zweck ein sogenanntes Maskenwort ausgeben, das nach Erkennen eines momentan ranghöchsten Unterbrechungssignals alle rangniederen Unterbrechungssignale abdeckt, d. h. sie nicht zur Wirkung kommen läßt.
  • Dies kann, wie in F i g. 1 gestrichelt angedeutet, durch Zwischenschalten einer UND-NICHT-Stufe UNMn . . . UNmo zwischen die Speicher S1. . . . Slo und S2. ... S2o geschehen. Die UND-NICHT-Stufen werden einmal von den bejahenden Ausgängen der Speicher S1. . . . Slo und zum anderen von den bejahten Ausgängen der eigens für die Speicherung des Maskenwortes vorgesehenen Speicher Sm" ... SAro beaufschlagt. Der Einfachheit halber wurden der Maskenspeicher und die zugeordnete UND-NICHT-Stufe nur einmal eingezeichnet.
  • F i g. 2 zeigt eine weitere vorteilhafte Schaltungsanordnung zur Durchführung der Programmunterbrechung. Ihre Arbeitsweise soll nachstehend beschrieben werden Den die Unterbrechungssignale erzeugenden Geräten sind wiederum Speicher Slo ... Sln nachgeschaltet, wobei wiederum der Speicher S1. zur Speicherung des ranghöchsten und der Speicher Slo zur Speicherung des rangniedrigsten Unterbrechungssignals dient.
  • Ein Zähler Z zählt von seinem höchsten Zählstand rückwärts, wobei der höchste Zählstand entsprechend der Zahl der Unterbrechungssignale erzeugenden Geräte voreinstellbar sein soll. Im dargestellten Beispiel zählt der Zähler binärverschlüsselt auf Grund seiner vier Stellenwertigkeiten (8-4-2-1) von der Höchstzahl 15 herunter bis 0. Die 4stellige Binärzahl wird einer Dekodiermatrix M zugeführt, die den Zählstand im Kode ausgibt. Die Signale im -Kode beaufschlagen zusammen mit den bejahten Ausgangssignalen der Speicher Sln ... Slo wiederum UND-Stufen Un ... Uo. Die UND-Stufen werden von dem Zähler Z über die Dekodiermatrix M mit fallender Wertigkeit angezählt. Liegt außer dem gerade erscheinenden Zähltakt auch ein Unterbrechungssignal an, so gibt die entsprechende UND-Stufe an ihrem Ausgang ein L-Signal ab. Alle Ausgänge der UND-Stufen Um ... Uo sind über eine ODER-Stufe O zusammengefaßt, deren Ausgangssignal den Rechner einmal auf die Programmunterbrechung vorbereitet und zum anderen den Zähler Z stoppt. Der momentane Zählstand des Zählers in binärverschlüsselter Form wird sodann über den Eingabekanal der programmgesteuerten Eingabe dem Rechner eingegeben und dient wiederum direkt zur Programmverzweigung. Der dem registrierten Unterbrechungssignal zugeordnete Speicher wird wiederum über ein Löschsignal T gelöscht, das den UND-Stufen Uln ... Ulo zusammen mit den Ausgängen der UND-Stufen U" . . . Uo zugeführt wird. Die Ausgänge der UND-Stufen Uln ... Ulo beaufschlagen die Löscheingänge der Speicher Sln ... Slo.
  • Es muß mit einem weiteren Löschsignal LÖ dafür gesorgt werden, daß der Zähler Z, nachdem ein Unterbrechungssignal erkannt worden ist, wieder in seine Anfangszählstellung zurückgestellt wird.
  • Gegenüber der zuletzt beschriebenen Schaltungsanordnung besitzt die zuerst beschriebene Schaltungsanordnung den Vorteil, daß für den Fall, daß ein ranghöheres Unterbrechungssignal während der Bearbeitung eines rangniederen Unterbrechungssignals auftritt, dieses auch sofort durchgreifen kann. Bei der zuletzt beschriebenen Schaltungsanordnung findet ein ranghöheres Unterbrechungssignal erst im nächstfolgenden Zählzyklus seine Berücksichtigung.
  • Die erfinderische Programmunterbrechung und die zur Durchführung desselben dienenden Schaltungsanordnungen besitzen den großen Vorteil, daß sie nachträglich an jeden Rechner anzufügen sind, ohne daß der Zentralteil des Rechners verändert werden muß. Ein weiterer wesentlicher Vorteil der erfinderischen Lösung liegt in der Ersparnis von Programmierungsarbeit und damit an Speicherplatz und Zeit beim Aussuchen des oder der das Programm unterbrechenden Signale. Gegenüber den bekannten Lösungen ergibt sich dadurch eine wesentliche Erhöhung der Verkehrsleistung an den Unterbrechungseingängen.

Claims (3)

  1. Patentansprüche: 1. Einrichtung zur Unterbrechung eines Programmablaufes bei einer programmgesteuerten, elektronischen Rechenanlage, die mit Geräten in Verkehr steht, die bei Vorliegen bestimmter Arbeitszustände ein Programmunterbrechungssignal erzeugen, wobei die Programmunterbrechungssignale verschiedenrangig bewertet sind, d a d u r c h gekennzeichnet, daß eine logische Schaltung vorgesehen ist, die für jedes ein Programmunterbrechungssignal erzeugende Gerät ein spezifisches, das Gerät kennzeichnendes Kodewort erzeugt und die weiterhin so aufgebaut ist, daß sie beim Auftreten mehrerer Programmunterbrechungssignale zunächst nur das dem ranghöchsten Programmunterbrechungssignal zugeordnete Kodewort an den Eingabekanal des Rechners weitergibt und daß dieses Kodewort direkt zur Programmverzweigung benutzt wird.
  2. 2. Einrichtung nach Anspruch 1, dadurch gekennzeichnet, daß eine aus logischen Schaltbausteinen aufgebaute Prioritätsschaltung vorgesehen ist, die aus n ein Programmunterbrechungssignal erzeugenden Geräten dasjenige mit dem höchsten Rang auswählt, und daß das so im C 1)-Kode vorliegende Signal einer Kodierungsmatrix (M) zugeführt ist, die das erkannte Signal verschlüsselt an den Eingabekanal des Rechners weitergibt.
  3. 3. Einrichtung zur Durchführung des Verfahrens nach Anspruch 1, dadurch gekennzeichnet, daß ein in einem vorgebbaren Kode zählender Zähler (Z) vorgesehen ist, dessen Zählstand über eine Dekodiermatrix (M) in einen (i )-Kode umgesetzt wird, daß die n Ausgänge der Matrix jeweils auf einen Eingang einer UND-Stufe (Uo ... U") geführt sind und der andere Eingang der UND-Stufe (Ua ... U") mit dem Ausgang des für die Speicherung eines Programmunterbrechungssignals vorgesehenen Speichers (S1, ... S1.) verbunden ist, daß die Ausgänge aller UND-Stufen (U, ... U.) über eine ODER-Stufe (O) zusammengefaßt sind, deren Ausgangssignal den Rechner einmal auf die Programmunterbrechung vorbereitet und zum anderen den Zähler (Z) stoppt, dessen Zählstand dann in verschlüsselter Form dem Rechner zur Programmverzweigung eingegeben wird.
DE19681574668 1968-03-01 1968-03-01 Einrichtung zur unterbrechung eines programmablaufes bei einer programmgesteuerten, elektronischen rechenanlage Pending DE1574668B1 (de)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
DEL0058724 1968-03-01

Publications (1)

Publication Number Publication Date
DE1574668B1 true DE1574668B1 (de) 1972-04-27

Family

ID=7279533

Family Applications (1)

Application Number Title Priority Date Filing Date
DE19681574668 Pending DE1574668B1 (de) 1968-03-01 1968-03-01 Einrichtung zur unterbrechung eines programmablaufes bei einer programmgesteuerten, elektronischen rechenanlage

Country Status (1)

Country Link
DE (1) DE1574668B1 (de)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE2428013A1 (de) * 1973-06-12 1975-01-09 Olivetti & Co Spa Mehrfachsteuergeraet

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE1201586B (de) * 1957-09-06 1965-09-23 Ibm Deutschland Programmgesteuerte Daten-Auswertmaschine

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE1201586B (de) * 1957-09-06 1965-09-23 Ibm Deutschland Programmgesteuerte Daten-Auswertmaschine

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE2428013A1 (de) * 1973-06-12 1975-01-09 Olivetti & Co Spa Mehrfachsteuergeraet

Similar Documents

Publication Publication Date Title
DE2154106A1 (de) Arbeitsspeicherwerk
DE1499193A1 (de) Datenverarbeitungsanlage
DE1474062B2 (de) Datenverarbeitungsanlage mit einer anzahl von pufferspeichern
DE2756890A1 (de) Datenverarbeitungssystem
DE2747196A1 (de) Vergleicheranordnung zum vergleichen von information variabler laenge
DE2164793A1 (de) Verfahren und Datenverarbeitungsanlage zur Steuerung einer Vielzahl von Eingabe/ Ausgabe-Einheiten mittels eine Zentraleinheit
DE2745204A1 (de) Mikroprogramm-leitwerk fuer eine datenverarbeitungsanlage
DE1574668B1 (de) Einrichtung zur unterbrechung eines programmablaufes bei einer programmgesteuerten, elektronischen rechenanlage
DE2440390A1 (de) Elektronischer rechner
DE1806172A1 (de) Prioritaetsschaltung
DE1250489B (de) I Schaltungsanordnung zur Einspei cherung von Leerstellen-Kennworten in einen assoziativen Speicher
DE1135217B (de) UEberlaufanzeige
DE4435457C2 (de) Verfahren zum Archivieren von Prozeßdaten
DE1524264C3 (de) Einrichtung zur Erzeugung einer Bildaufzeichnung
EP0195284A2 (de) Vorrichtung, um die Anzahl der 1/0 Bits in einem n-Bit Binärwort zu zahlen
DE1474090B2 (de) Datenverarbeitungsanlage
DE2165923A1 (de) Rechensystem
DE3044034C2 (de)
DE1170004B (de) Freistellen-Sucher
DE2035626A1 (de) Anlage zur Verarbeitung bevorzugter Auswahlsignale
DE1549582B1 (de) Anordnung zur bestimmung der niedrigstwertigen bit position
DE2254592A1 (de) Geraet mit monitor fuer etwaigen spannungsabfall
DE1122298B (de) Verfahren und Vorrichtung zum Bilden eines Pruefwertes
DE2454229A1 (de) Datenverarbeitungsanlage
AT298837B (de) Shaltungsanordnung zum lernfähigen Einteilen von als elektrische Signale anliegenden Zuständen in Klassen