DE1474063A1 - Datenverarbeitungsanlage - Google Patents

Datenverarbeitungsanlage

Info

Publication number
DE1474063A1
DE1474063A1 DE19641474063 DE1474063A DE1474063A1 DE 1474063 A1 DE1474063 A1 DE 1474063A1 DE 19641474063 DE19641474063 DE 19641474063 DE 1474063 A DE1474063 A DE 1474063A DE 1474063 A1 DE1474063 A1 DE 1474063A1
Authority
DE
Germany
Prior art keywords
interruption
interrupt
program
register
arrangement
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
DE19641474063
Other languages
English (en)
Inventor
Smith Richard Deming
Callahan James Francis
Richard Hsin-Yung Yen
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.)
RCA Corp
Original Assignee
RCA 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 RCA Corp filed Critical RCA Corp
Publication of DE1474063A1 publication Critical patent/DE1474063A1/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)
  • Bus Control (AREA)

Description

H7A063
6H7-64/Dr.v.B./Bo. ECA 54 165 US-Ser.No. 329,639 Piled: December 11, 1963
Dr. Expl.
Radio Corporation of Amerioa, Hew York, Ν.Ϊ., V.St.A. Datenverarbei tungsanlage.
Die vorliegende Erfindung betrifft elektronische Datenverarbeitungsanlagen oder Computer, bei denen ein laufendes Programm unterbrochen werden kann, um ein Programm höherer Dringlichkeitsstufe durchzuführen·
Durch die vorliegende Erfindung soll eine hinsichtlich ihrer Uhterbreohungsfähigkeit verbesserte Datenverarbeitungsanlage angegeben werden, bei der die Unterbrechung näoh Wuneoh eines Programmierers durchgeführt werden kann ohne wie bisher schaltungstechnisohen und apparativen Beschränkungen unterworfen zu sein.
Gemäß der Erfindung werden eine Anzahl von Unterbreohnngeindikatoren vorgesehen, die jeweils beim Auftreten einer entsprechenden Unterbreohungsforderung gesetzt werden, welche ale Ergebnis einer bestimmten Bedingung in der Anlage oder ale Er-
009820/1374
H74063
■- 2 -
gebnls der Entschlüsselung eines Befehls in dem durchgeführten Programm auftritt. Wenn eich einer der Unterbrechungeindikatoren im gesetzten Zustand befindet, wird das laufende Programm an einem für eine unterbrechung geeigneten Punkt unterbrochen) um einen Unterbrechungsindikator-Abfragebefehl auszuführen· Der Unterbrechungeindikator-Abfragebefehl enthält die Adresse einer Maske, die diejenigen Unterbrechungsindikatoren angibt, welchen der Programmierer eine Unterbrechung zu bewirken gewillt ist. Die Anordnung zur Durchführung des Unterbrechungsindikator-Abfragebefehls stellt fest, welcher gesetzte und nicht maskierte Unterbrechungsindikator die höchste Priorität hat und bewirkt einen Zugriff der Datenverarbeitungsanlage zu einem bestimmten zugehörigen Speicherplatz, in dem der Programmlerer vorher ein entsprechendes spezielles Unterprogramm gespeichert hat, das durchzuführen ist. Jedes beliebige Ühterbrechungs-Unterprogramm kann jeder Zeit einfach dadurch geändert werden, daß der Inhalt der entsprechenden Speicherplatz· geändert wird·
Die Unterbrechungsfähigkeit ermöglicht dem Programmierer, geeignete Befehle in ein Programm üblicher Art einzubauen: Setzen eines speziellen Unterbreohungsindikatore, so daß an einem bestimmten Punkt in das normale Programm ein entsprechendes gewünsohtes Unterprogramm eingeschaltet} ferner um das
Setzen und Entfernen von Uhterbreohungssperrsignalen «u bewirken,
die wegen einer allgemeinen oder Realzeit-Dringlichkeit «ine Unterbrechung verhindern, ohne dabei den gesetzten Zustand
001820/1394
H7A063
irgendeines Unterbrechungsindikators aufzuheben.
Die Erfindung wird im folgenden an Hand der Zeichnung näher erläutert, in der die Figuren 1A, 1B, 1C und 1D zusammen ein Schaltbild einer Datenverarbeitungsanlage darstellen, bei der Unterbrechungen eines laufenden Programmes möglich sind·
Beschreibung der Datenverarbeitungsanlage
In Pig. 1D ist rechts unten dargestellt, wie die Schaltbilder der Pig. 1A bis 1D zusammengehören. Außerdem sind in Pig. 1D die verwendeten Schaltsymbole erläutert.
Der im wesentlichen in Fig. 1A dargestellte Computer mit Unterbrechungsmöglichkeit ist wortorganisiert und enthält einen Speicher HSM hoher Arbeitsgeschwindigkeit zum Speichern von Befehls- und Datenwörtern, die jeweils zehn Zeichen umfassen. Jedes Zeichen besteht aus sechs Binärziffern zuzüglich einer Paritätsziffer, die in der folgenden Beschreibung jedoch der Einfachheit halber nicht erwähnt wird· Das im Speioher HSH dargestellte Befehlsformat enthält ein Operationscodezeichen Op, ein Operationswahlzeichen (operation' option character) H und vier A-Adressenzeichen A0, A1, Ap und A, sowie vier B-Adreesenzeiohen Bq, B1, B2, B5. Ein Datenwort enthält, wie dargestellt, zehn jeweils aus sechs Bits bestehende Datenzeichen dQ bis dg· Befehle- und Datenwörter können einzeln zwischen dem Speioher HSM und einen Speioherregister 20 Übertragen werden. Ein, zwei, drei oder vier Zeichen können jeweils gleichzeitig Über eine
009820/1374
U74063
Austausch- oder Vermittlungsstufe 22 entsprechenden von Tier seohsadrigen Sammelleitungen BO, B1, S2, B3 zugeführt werden.
Die Zeichenspeicherplätze im Schnellspeicher HSM können duroh Tier sechsstellige, d.h. aus jeweils sechs Bits bestehende Zeichen CQ, C1, C« und C, in einem Adressenregister 24 adressiert werden. Sie Zeichen CQ, C1 und C2 werden dem Speicher HSM über eine Leitung 25 zugeleitet und ermöglichen den Zugriff zu einem TOlletändigen Befehls- oder Batenwort. Sas Zeichen C, im Adresse» register 24- und entsprechende Zeichen in anderen Steuersignalen werden über eine Leitung 26 der Vermittlungsstufe 22 zugeführt und wählen ein bis Tier Zeichen für eine übertragung zwischen dem Speicherregister 20 und den Sammelleitungen BO bis B3 aus. Sie Tom Adressenregister 24 ausgehenden Leitungen 23, 26 sind außerdem über eine Leitung 27 mit einem Sammelleitungsaddierer 28 Terbunden, von dem aus eine ergänzte oder gekürzte Adresse
. über ein Gatter 30 den Sammelleitungen BO bis B3 zugeführt werden kann. Sie Yermittlungsstufe 22 wird duroh Gatter einschlieflieh eines Gatters 32 gesteuert.
Sem Adressenreglster 24 werden Adressen, die aus Tier Zeiohen bestehen, über die Sammelleitungen BO bis B3 von einem , mit P-Regleter bezeichneten Begister für die laufenden Adressen, - das sich in einem Konseptepeicher 34 befindet, zugeführt. Der : Konzeptspeicher 34 enthält eine Anzahl von Speicherplätzen für
f ·■ ■' ■ "
·; Tier Zeichen, die als Register verwendet werden. Sie Speicher-
009820/1374
H7A063
platze 35 werden, als Register für den laufenden Betriebszustand des Computers verwendet. Sie Speicherplätze 36 dienen bei einer unterbrechung wegen einer als "gewöhnlich" bezeichneten Priorität oder Dringlichkeitsstufe zur Speicherung des Zustandes des Computers. Die Speicherplätze 37 dienen zur Speicherung des Zustandes des Computers, wenn eine Unterbrechung wegen einer mit "Realzeit" bezeichneten Priorität oder Dringlichkeitsstufe vorliegt.
Jeder der vier Zeichen enthaltenden Speicherplätze oder Register im Konzeptspeicher 34 kann durch ein einziges sechsstelliges Zeichen adressiert werden. Das gerade zur Adressierung des Konzeptspeichers 34 verwendete sechsstellige Zeichen ist in einem Adressenregiater 40 gespeichert. Der Inhalt des Adressenregisters 40 bestimmt, welcher der vier Zeichen umfassenden. Speicherplätze im Konzeptspeicher 34 für die übertragung von Zeichen zwischen dem Konzeptspeicher 34 und den Sammelleitungen BO bis S3 Über ein Speioherregieter 44 und Gatter 46 ausgewählt worden ist. Die dem Konzeptspeicher-Adreeeenregister 40 zugeführt en Adressen werden durch einen Adressengenerator 48 entsprechend den Eingängen von einer Anzahl von Gattern' erzeugt. Diese Gatter umfassen Gatter P, A und Bf die die Erzeugung von Adressen für die entsprechend bezeichneten Register P1 A bzw. B steuern.
Der Funktioneablauf Im Computer wird duroh eine übliche Taktgeber- und Leitwerkeinheit 50 gesteuert. Sie Einheit 50
001120/1174
erhält Eingangseignale von allen Teilen des Computers und liefert Ausgangssignale an alle Teile des Computers. Einige Elemente der Einheit 50, die eine besondere Bolle für die ünterbrechungsfähig·- keit der Anlage spielen, sind in Tig. 1C dargestellt und mit 50' bezeichnet. Roch näher zu erläuternde Einzelteile davon tragen die Bezugszeichen 51 bis 59.
Wenn der Computer dem Schnellspeicher HSM einen Befehl zur Ausführung entnimmt, werden die Teile des Befehls über die Hauptleitungen in die entsprechenden BaumverteilungB-Zeitfolge-Umformer-Register übertragen. Während eines ersten Teiles dieses ■;, Raum/Zeitfolge-ümformungszyklus (staticizing cycle, im folgenden ■ , kurz "Umf ormungszyklus*) wird das Operationscodezeichen Op in das ■■ Umformungsregister Op übertragen, dessen Inhalt durch einen Operationsdekoder 62 dekodiert wird. Der Dekoder 62 hat eine Anzahl von Ausgängen, von denen nur drei mit SI, CI und FI beseiohnete Ausgänge dargestellt sind. Der Wahl- oder Index-Teil
> I dta Befehls wird in ein Register N übertragen, dessen Inhalt
: durch einen Dekoder 64 entschlüsselt wird. Der Dekoder 64 hat
viele Ausgänge, von denen nur die mit NQ, SQ, N1, N2, N*, JS, A
:: dargestellt sind. Per Inhalt des Umformerreglsters N kann durch tin Signal von einem Gatter 65 verringert werden.
Während eines zweiten Teiles des Befehlsumformungsvorgangeβ wird der A-Adressenteil des Befehls in das A-Register des Eonleptepeichere 34 übergeführt. Während eines dritten Teiles des ümformungsvorganges wird der B-Adreseenteil des Befehle in das
001120/1374
H74063
B-Register des Konzeptspeichers 34 übertragen.
Die Hauptleitungen BO bis B3 verlaufen von Fig. 11 durch die Figuren 1B, 1C bis hinein in die Pig. 1D. In Fig. 1B ist die sechsadrige Leitung B2 aber eine entsprechende Anzahl von Gattern 68 mit einem Datenregister D2 im Rechenwerk des Computers verbunden. In entsprechender Weise ist die sechsadrige Leitung B? über eine entsprechende Anzahl von Gatter 69 mit einem Datenregister D, im Rechenwerk verbunden.
Beaohreilaing der ünterto. aohungsfähigkeit der Anlage
Die einzelnen Bit-Ausgänge der Datenregister D2 und D, sind mit sechs entsprechenden Bit-Vergleichsstufen oder Komparatoren 70 verbunden. Zu jedem einzelnen Bit-Komparator 70 gehört ein· eigene Ausgangsleitung in einer Leitungsgruppe 72, die ein Signal führt, das anzeigt, ob die beiden zugeführten Bits übereinstimmen oder nicht.
Die Ausgänge 72 der Komparatoren 70 sind über ein Oder-Gatter 74 an ein Und-Gatter 75 angeschlossen, das ein Ausgangssignal H liefert, wenn die verglichenen Bits übereinstimmen· Ein erregter Ausgang B eines Inverters79 zeigt an, daß keine Übereinstimmung herrscht. Die Ausgänge 72 der Komparatoren 70 werden außerdem einem Prioritätswähler 76 zugeführt, dessen durchnumerierte achtzehn AusgangsIeitungen mit entsprechend numerierten Eingängen von achtzehn Gattern in einem Unterbrechungsindikator-Identifizierungskreis 80 verbunden sind. Wenn
009820/1374
■- ■ - 8 -
zwischen mehr als einem von den sechs Bits eine Übereinstimmung
festgestellt worden ist, erregt der Prioritätewähler 76 zu einer i
bestimmten Zeit jeweils nur den der höchsten Vorrangstufe ent-
1 sprechenden Ausgang· Der Prioritätewähler kann in bekannter Weise
ausgeführt sein und für jeden Satz von Eingangs- und Ausgangs-L?' leitungen ein Gatter sowie Sperrverbindungen von den Eingängen der einzelnen Gatter zu den Eingängen aller Gatter, die Sätzen
von Eingangs- und Auegangsleitungen niedrigerer Dringlichkeitsstufe zugeordnet sind, enthalten.
Die achtzehn Gatter des Indikator-Identifizierungskreises
1 80 werden durch ein Gatter 77 gesteuert. Die numerierten Aus-'·. gänge des Indikator-Identifizierungskreises 80 sind über eine
2 achtzehnadrige Leitung 81 mit Eingängen eines Indikatornummercodierers oder -generators 62 verbunden. Die Ausgänge 01 und 11
,< vom Identifizierungskreie 80 sind an den mit 1 bezeichneten « f.
Eingang des Gatters 2J im Codierer 82 verbunden· In entspre-
' ohender Weise sind die Ausgänge 02 und 12 bis 07 und 17 des I " Identifizierungskreises 80 mit. den mit 2 bis 7 bezeichneten -> entsprechenden Eingängen der Gatter 2 , 2* und 2 im Codierer ? 82 verbunden. Der Codierer 82 setzt die durch die Erregung
I eines der achtzeh^numerierten Ausgänge des Identiflzierunge-
; kreises 80 dargestellte Indikatornummer in zwei aus sechs Bits ■ bestehende numerische Dezimalziffern, die dieselbe Nummer aus-
drüoken. Die beiden Ziffern werden Zeichenregistern C1 bzw. C2 ■' zugeführt. Diese Zeichenregister C1 und C9 können jedoch auch
009820/1374
U74063
weggelassen werden, sie sollen in der Zeichnung nur andeuten, daß die zugehörige Zahl aus zwei binärcodierten Dezimalziffern besteht. Die sechs Ausgänge des Zeichenregisters C1 sind über sechs Gatter 83 mit den sechs entsprechenden Leitern der Sammelleitung B1 Verbunden. In entsprechender Weise sind die sechs Ausgänge des Zeichenregisters C« über sechs Gatter 84 mit den sechs Leitern der Sammelleitung B2 verbunden.
Die achtzehnadrige Ausgangsleitung 81 des Indikator-Identifizierungskreises 80 ist außerdem aber eine Biickstell-Leitung 85 mit einem Gatter 86 (Fig. 10) verbunden, dessen Ausgang Über eine Leitung 85'mit den Bückstelleingängen B von achtzehn Unterbrechungs-Indikator-Flipflops 90 angeschlossen ist. Die achtzehn Flipflops 90 weisen außerdem getrennte Setzeingänge auf, denen über eine achtzehnadrige Leitung 91 Setzsignale zugeführt werden können, die von achtzehn entsprechenden Ausgangspunkten für Forderungen naoh einer Unterbrechung des laufenden Programmes kommen. Die Forderungen naoh einer Unterbrechung des · laufenden Programmes können von bestimmten Kreisen entsprechend speziellen Betriebsbedingungen im Computer oder in den peripheren Einheiten, die dem Computer zugeordnet sind, stammen oder durch Dekodierung von Befehlen, die eine Unterbrechung des laufenden Programmes fordern, erzeugt werden.
Die achtzehn Unterbreohungs-Indikator-Ilipflops 90 sind entsprechend ihrer Dringlichkeitsstufe oder Priorität in zwei Gruppm
001120/1174
- ίο -
unterteilt. Die ersten fünf Unterbrechungs-Indikatoren sind Unterbrechungsforderungen der Dringlichkeitsstufe "Eealzeit" zugeordnet. Die Ausgänge dieser fünf Flipflops sind über fünf Gatter 93 verbunden, die einen gemeinsamen Ausgang au-fweisen, der ein Signal B^ für eine fiealzeit-Unterbrechungsforderung liefert. Die Gatter 93 können durch ein invertiertes Sperreignal Ir von einer Unterbrechungs-Programmeinheit 53 (Pig. 1C) gesperrt werden. Die anderen dreizehn Unterbrechungs-Indikatoren 06 bis 18 entsprechen Unterbrechungen aus Gründen niedrigerer "gewöhnlicher" Priorität. Die Ausgänge dieser dreizehn Unterbreohungs-Indikator-Flipflops sind über dreizehn Gatter 97 verbunden) die einen gemeinsamen Ausgang R entsprechend einer Unterbrechungsforderung gewöhnlicher Dringlichkeitsstufe aufweisen. Die Gatter 97 können durch invertierte Sperrsignale I oder Ir von der Einheit 53 gesperrt werden· Die achtzehn numerierten UnterbreChungs-Indikator-Flipflop3 sind außerdem gemäß der sechsstelligen Zeichen entsprechenden Organisation der Anlage in drei Gruppen von jeweils sechs Indikatoren unterteilt. Die Ausgänge der ersten sechs Unterbrechungs-Indikatoren 01 bis 06 sind über sechs Gatter 94 mit einem Oder-Gatter 95 verbunden. Die Ausgänge der nächsten sechs Indikatoren 07 bis 12 sind über sechs Gatter 98 an ein Oder-Gatter 95 angeschlossen} und die letzten sechs Indikatoren 13 mit 18 sind sohließfioh über sechs Satter 99 mit einem Oder-Gatter 95 gekoppelt. Der Auegang dee Oder-Gatters 95 ist über eine seohsadrige Leitung 100 mit den entsprechenden geons Adern der Sammelleitung B2 verbunden.
009120/1374
U74063
Beschreibung der Unterbrechungssteuerung
Bei der Unterbrechungsanordnung sind Vorkehrungen getroffen, die während einer Unterbrechung eine zweite Unterbrechung aus einem Grunde gleicher oder kleinerer Dringlichkeit verhindern· Hierzu liefert die Einheit 53 immer dann ein Sperrsignal am Ausgang 1 , wenn in der Anlage ein "gewöhnliches" Unterbrechungprogramm läuft. Der Sperrauegang I ist über einen Inverter 96 mit einem (Jäter 97 verbunden. Der zweite Sperrsignalausgang I2, der Einheit 53 ist Über einen Inverter 92 mit einem Gatter 93 und über einen Inv rter 96* mit einem Gatter 97 verbunden.
Im folgenden wird insbesondere auf die fig. 1D eingegangen, in der die schon in Fig. 1A dargestellten Wahlregister Op und H nochmals abgebildet sind« Die Dekoder 62 und 64 sind ebenfalls nochmals abgebildet, der Dekoder 64 ist dabei in Fig. 1D mit zusätzlichen Ausgängen dargestellt, die in Fig. 1A fehlen.
Wenn der auf die Register Op und N aufgeteilte Befehl das Setzen eines programmgesteuerten Unterbrechungs-Indikators fordert, z.B. des Indikators 06, machen die dekodierten FI und 7 Signale von den Dekodern 62, 64 ein Gatter 110 (Fig. 1D) ansprechbereit, dessen Ausgang über eine Leitung 91' mit dem Setzeingang S des ebenfalls nochmals in Fig. 1D dargestellten Unterbrechungs-Indikators 06 verbunden ist, der zu der in Pig. 1C dargestellten Unterbrechungs-Indikatorgruppe 90 gehört. Der leiter 91' ist eine der achtzehn Adern der Leitung 91 (Fig.10).
009820/1374
Eb ist eine programmgesteuerte Anordnung vorgesehen, um Sperreignale zu erzeugen und zu beendigen, die verhindern, daß im Computer das laufende Programm unterbrochen wird, auch wenn eine Unterbrechungsforderung vorliegt und durch einen gesetzten Unterbrechungs-Indikator in der Gruppe 90 angezeigt wird. Die Unterbrechungesignalsteuerleitung CI vom Dekoder 62 (Fig· 1B) und die Leitungen für die Signale J und 1 vom Dekoder 64 sind Über Gatter 130 und 132 mit den Setz- bzw. EUcketelleingängen eines Flipflops 134 verbunden, um ein Signal I zu erzeugen oder abzuschalten, das zur Verhinderung von Unterbrechungen gewöhnlicher Dringlichkeitsstufe dient. In entsprechender Weise sind Signalleitungen O und β vom Dekoder 64 (fig. 1D) über Gatter 136, 138 an ein Flipflop 140 angeschlossen, um ein Sperreignal Ir zu erzeugen oder abzuschalten, das Unterbrechungen sowohl der gewöhnlichen als auch der Realzeit-Dringlichkeitsstufen verhindert.
Beim Entschlüsseln eines mit "Setzprogrammtest1* bezeichneten Befehls durch die Dekoder 62 und 64 werden die Auegänge fl und % erregt, die über ein Gatter 124 mit dem Setzeingang eines FlipflopB 123 verbunden sind, dessen Ausgang seinerseits an ein Gatter 128 angeschlossen ist· Ein Ausgangsleiter 9J" dee Gatters 128 let eine der achtzehn Adern der Setzleitung 91 in Fig. 1C und stellt den Leiter dar, der mit dem Setzeingang des Unterbreohongs-Indikators 18 (Fig. 1C) verbunden let, der zum Programmtesten vorgeeehen let. Das Gatter 128 ist außerdem mit
009820/1374
U74063
einem Ausgang W an daa Gatter 51 (Fig. 10) angeschlossen.
Ein anderer Wahlbefehl "Programmtestende" bewirkt, wenn er entschlüsselt worden ist, die Erregung der Eingänge CI und A eines Gatters 126, dessen Ausgang mit dem Rückstelleingang des Flipflops 123 verbunden ist.
Arbeitsweise während einer Unterbrechung
Der Computer arbeitet zyklusweise und synchron. Bas Leitwerk 50 (Pig. 1A) der Anlage enthält einen Taktgeber, der Taktimpulse Tq bis T8 liefert. Die Arbeitsweise des Computers vor, während und nach einer Unterbrechung wird unter Bezugnahme auf aufeinanderfolgende Maschinenzyklen beschrieben, die mit V, W, Z, Γ und Z bezeichnet sind.
Zyklus V
Es sei angenommen, daß die Anlage während des Zyklus V einen Befehl des normalen Programmes ausführt. Das Programm soll nach diesem Befehl unterbrochen werden können, was dadurch angezeigt wird, daß das Leitwerk 50 der Anlage ein Signal W erzeugt. Es sei nun ferner angenommen, daß die Forderung nach einer Unterbrechung aufgetreten ist, z.B. als Ergebnis spezieller Bedingungen im System oder der Entschlüsselung eines stati-βiertem Befehls, der eine Unterbrechung fordert» Das die Forderung nach einer Unterbrechung anzeigende Signal wird über einen Leiter der achtzehnadrigen Leitung 91 (Fig. 1C) zu dem entspre-
009120/1374
chenden der achtzehn Unterbrechungs-Indikatoren 90 geleitet, und bewirkt, daß der betreffende Unterbrechungs-Indikator gesetzt wird.
Die Unterbrechungsschaltung kann auf Wunsch des Programmierers daran gehindert werden, eine Unterbrechung zu verhindern. Eine Unterbrechung findet nur dann statt, wenn die Einheit 53 kein Sperrsignal I oder Ir liefert. Wenn irgendeiner der Indikatoren gesetzt ist und die Unterbrechung nicht in den (rattern 93 oder 97 (Fig. 10) durch ein vorher erzeugtes Sperrsignal verhindert wird, liefern die Gatter 93 oder 97 ein Signal B1, oder B , die die Forderung nach einer Unterbrechung anzeigen. Wenn es eich bei dem gesetzten Indikator um einen Realzeit-Indikator handelt, liefert das Gatter 93 ein Unterbrechungsforderungssignal B und wenn es sich bei dem gesetzten Indikator um einen Indikator für eine Unterbrechung gewöhnlicher Dringlichkeit handelt, liefert das Gatter 97 ein Unterbrechungsforderungssignal B . Das oben erwähnte Signal W, das während des Zyklus V im leitwerk 50 erzeugt wird, wird dazu verwendet, den oder die folgenden Zyklen W zu ermöglichen.
Zyklus W
Während des Zyklus W, der in der Praxis eine Anzahl von Maschinen^zyklen umfaßt, werden das Unter br echungs signal R_ oder H den Gattern 51 oder 52 (Fig. 10) zugeführt, um ein Sprung-
009820/1374
U7A063 - 15 -
signal J oder J zu erzeugen· Das Sprungsignal wird in der Computer-Steuereinheit 53 dazu verwendet, das laufende Programm zu unterbrechen und das Unterbrechungsprogramm einzuleiten· Hierzu werden die Inhalte der Register im Konzeptspeieher 34 durch eine das Gatter P *(Pig. 1A) enthaltende Anordnung transponiert. Die dem normalen Zustand des Computers entsprechenden Inhalte der Register 35 werden in das allgemeine Unterbrechungsregister 36 oder das Realzeit-Unterbrechungsregister 37 übertragen, je nach dem ob die Unterbrechung aus einem Grunde allgemeiner oder Realzeit-Dringlicliicei te stufe erfolgte.
Die Inhalte des Sprung-P-Allgemein-Registers oder des Sprung-P-Realzeit-Registers werden in das P-Register übertragen, welches das für die Adresse des gerade von der Maschine ausgeführten Befehls verwendete Befehlsregister ist· Das Sprung-P-Allgemein- oder Sprung-P-Realzeit-Register enthielt die Adresse
des Speicherplatzes im Schnellspeicher, wo der erste Befehl des Unterbrechungsprograoames gespeichert ist. Dieser Befehl, der sich nun im P- oder Befehle-Register befindet, bewirkt den Zugriff und die Statisierung des ersten Befehls im allgemeinen oder Realzeit-Unterbrechungsprogramm.
Der erste oder einer der ersten Befehle im Unterbreohungsprogramm ist der Befehl SI, der das Abtasten der Unterbrechungs-Indikatoren fordert. Beim Statisieren des Befehls im Schnellspeicher wird u.a. das Operationscodeζeichen in das Register Op (Pig. 1A) und das Operationewahlzeichen H in das Statisierungs-
009820/1374
U74063
register H übertragen. Der Op-Dekoder 62 entschlüsselt die Inhalte d·· Registers Op und erregt die Leitung 31 und der H-Dekoder 64 entschlüsselt die Inhalte des Statisierungsregisters H und erregt eine entsprechende der Ausgangsleitungen Hq, Rq, H1, H2 und "Sy
Beim Statisieren des Befehle SI werden außerdem der A-Adressentell und der B-Adressenteil des Befehls in das A-Register bzw. das B-Register des Konzeptspeichers 34 (Mg. 1A) übertragen. Der A-Adressenteil des Befehls enthält ein durch den Programmierer bestimmtes Zeichen AQ, ferner Zeichen A. und A«, die jeweils gleich Hull gesetzt sind und ein Zeichen A>, das durch den Programmierer bestimmt werden kann. Die Inhalte des Α-Registers stellen nachdem sie später während der Ausführung des Befehls SI geändert worden sind, die Adresse im Speicher HSM für das im speziellen durchzuführende Unterprogramm dar· Der B-Adressenteil des Befehls ist durch den Programmierer bestimmt und stellt die Adresse der als erstes zu verwendenden Unterbrechungs-Indikatormaske.im Speicher HSM dar.
Die Signale Sl, W und der Taktimpuls Tq bewirken über die Gatter 54, 55 (Pig. 1C), daß ein Signal X erzeugt wird, das den folgenden Zyklus Σ ermöglicht.
Zyklus I
Die früher erzeugten Signale SI und X dienen zusammen mit Taktimpulsen zur Durchführung folgender Übertragungsvorgänge:
009820/1374
Beim Takt TQ wird das Gatter B (Pig. 1A) aufgetastet und liefert ein Ausgangssignal an den Adressengenerator 48, der die Adresse "4" des B-Registers im Konzeptspeicher 34 erzeugt und sie dem Adressenregister 40 dee Konzeptspeichers 34 zuführt. Hierauf wird der Inhalt dee B-Eegisters über die Gatter 46 und die Sammelleitungen BO, B1, B2 und B3 dem Adressenregister 24 des Schnellspeichers HSM zugeführt, wo er zum Adressieren des Speichers HSM dient, um ein Maskenzeichen ( und neun andere, nicht benötigte Zeichen) herauszulesen und in das Speicherregister zu übertragen.
Beim Takt T, wird der Inhalt des Adressenregisters 24 durch den Leitungsaddierer 28 ergänzt und durch das Gatter 30 den Sammelleitungen zugeführt. Während des gleichen Taktes T, wird das Gatter B aufgetastet, so daß das B-Hegister im Konzeptspeicher 34 addressiert wird und die ergänzte Adresse von den Sammelleitungen aufnimmt. Während des gleichen Taktes liefert außerdem das Gatter 65 noch ein Verkürzunge- oder Dekrementsignal an das Statisierungsregister N.
Beim Takt T4 läßt das Gatter 32 die Vermittlungsetufe 22 das Maskenzeiohtn im Speicherregister 20 zu der Sammelleitung B3 weiterleiten. Das Maakenzelohen auf der Leitung B3 wird durch das Gatter 69 (Pig. 1B) dem Datenregieter D5 angeführt.
Während des Takt·« T6 leitet eines dtr Gatter 94, 98, 99 (Pig. 10) eine Greppe τοη Unterbreohunge-Indikator-Bita durch das Oder-Gatter 95, die Sammelleitung B2 und das Gatter 68
Η7Α063
(Pig. 1B) in das Datenregister Dg· Welche spezielle Gruppe von Unterbrechungs-Indikator-Bits auf diese Weise übertragen werden soll, wird dadurch bestimmt, welcher der Ausgänge Ng» N1, Nq des N-Dekoders (fig. 1A) erregt ist.
Während des Taktes TQ erzeugt das Gatter 57 (?ig. 10) ein Signal Y, das den nächsten Arbeitszyklus ermöglicht.
Zyklus Y
Die sechs Indikator-Bits des im Datenregister Dg (Fig. 1B) gespeicherten Zeichens und die sechs Maskenbits des im Datenregister D, gespeicherten Zeichens werden gleichzeitig in einem Mehrbit-Komparator 70, der sechs Ausgänge 72 aufweist, verglichen. Bei Übereinstimmung wird der entsprechende Ausgangsleiter erregt. Die sechs Ausgänge werden dem Prioritätswähler 76 zugeführt, der Ausgänge 1 mit 6 aufweist, von denen nur der der höchsten Dringlichkeitsstufe entsprechende erregt wird, wenn die Bits bei mehr als einer Stelle übereinstimmen. Die Ausgänge des Comparators 70 werden außerdem über ein Oder-Gatter 74 einem Gatter 75 zugeführt, das während des Zyklus T ein übereinstimmungssignal M liefert, wenn ein· Übereinstimmung existiert, oder es tritt am Auegang dee Inverters 79 Üa Hioht-Ub ere ins t immun ge signal B auf, wenn keine Über β inet immun g vorliegt. Die numerierten Ausgänge des Prioritätswählers 76 sind mit den entsprechend numerierten Eingängen von 18 Gattern df β Indikator-Identifizierungskreiees 80 verbunden. Dem Indikator-
009820/1374
Identifizierungekreie 80 wird außerdem dae Signal von dem erregten Auegang H0, N1 oder Ng des N-Dekoders 64 (Fig. 1A) «ugeftthrt.
Beim Takt Tg erregt das Gatter 77 (iig. 1B) den Indikator-Identifizierungakreis 80, so daß ein Ausgangssignal an derjenigen der Ausgangsleitungen 01 bis 18 auftritt, die demjenigen der gesetzten Unterbrechungs-Indikatoren entspricht, dem die höchste Dringlichkeitsstufe zukommt. Das Ausgangssignal des Indikator-Identifizierungskreises 80 wird über die achtzehnadrige Leitung 81 dem Indikator-Nummerncodierer 82 zugeführt, so daß, wie durch die symbolischen Zeichenregister C1 und Cg zwei aus sechs Bits bestehende Zeichen erzeugt werden, die den beiden Dezimalziffern der Indikator-Nummer entsprechen. Das binärcodierte Dezimalzeichen im Register C. stellt entweder eine Null oder eine Eins dar. Das binärcodierte Dezimalzeichen im Register Cg kann eine der Dezimalziffern 0 mit 9 darstellen·
Beim Takt T, lassen die Gatter 83 und 84 (Pig. 1B) die Indikator-Nummerz'eichen C1 und Cg über die Leitungen B1 bzw. B2 zu den mittleren Zeichenplätzen C1 und Cg der vier Zeichen in dem Α-Register (Pig. 1A) im Konzeptspeicher 34 durch.
Wenn beim Takt T^ ein* Übereinstimmungssignal M vorhanden ist, stellt der erregte Ausgang des Indikator-Identifizierungskreises 80 (Fig. 1B) über eine Ader der Leitung 81, eine entsprechende Ader der Rückstell-Leitung 85 und eines der Gatter
0OS820/1I74
(fig· 1C) den entsprechenden Unterbrechungs-Indikator 90 zurttck.
Während des Taktes T8 erzeugt die Anordnung 50' (Pig· 1C) entweder ein Signal X oder ein Signal Z. Wenn der N-Dekoder in Fig. 1A das Ausgangs signal NQ liefert und der Ausgang des Komparator8 70 (Pig. 1B) durch das Signal £ anzeigt, bewirken diese dem Gatter 56 zugeführten. Signale, daß das Oder-Gatter das Signal Σ erzeugt· Wenn andererseits das Signal NQ oder das Signal H am Eingang des Oder-Gatters 58 anliegen, bewirkt dieses Gatter, daß das Gatter 59 das Signal Z erzeugt.
Zyklus Σ oder Zyklus Z
Wenn während des vorangegangenen Zyklus Y das Signal X erzeugt worden war, werden die Schritte der früher beschriebenen
Σ Zyklen/und Y wiederholt, bis ein Signal Z resultiert. Die Zyklen X und Y werden dreimal wiederholt, wenn der programmierte Befehl SI eine Wahl N gleich 3, die hier als N, bezeichnet ist, enthielt. In diesem Falle werden .alle achtzehn Unterbrechungs-Indikatoren abgetastet. In entsprechender Weise wenn N gleich N2 war, werden die Zyklen Σ und Y zweimal wiederholt, um die Unterbrechungs-Indikatoren 07 bis 12 abzutasten. Wenn schließlich H gleich N1 war, werden die Zyklen Σ und ϊ einmal durchgeführt, üb die Indikatoren 13 mit 18 abzutasten. Anschließend wird das Signal Z erzeugt.
001120/1374
U74063
Wenn das Signal Z während des vorangehenden Zyklus Y erzeugt worden war, wird das Signal Z vom Leitwerk 50 (Fig. 1A) dahingehend interpretiert, daß die Inhalte des A-Eegisters im Konzeptspeicher 34 in das für den laufenden Befehl bestimmte Register P im Konzeptspeicher übertragen wird.
Andererseits kann der Inhalt des A-Eegisters in einen sogenannten "STA"-Platz im Schnellspeicher HSM abertragen und dort gespeichert werden. Anschließend bewirkt eine Übertragung eines Steuerbefehle, der im Programm auf den Unterbrechungs-Indikator-Abtastbefehl folgen kann, daß der frühere Inhalt des A-Hegisters vom HSTA"-Platz im Speicher HSM in das P-Eegister übertragen wird. Diese alternative Anordnung gibt dem Programmierer eine zusätzliche Steuerungsmögliohkeit für die Unterbrechung* einrichtungen und macht außerdem zusätzliche Schaltungsanordnungen überflüssig, die sonst erforderlioh sind, um den Inhalt des Α-Registers in das P-Eegister zu übertragen·
Der Inhalt des A-Eegistere, der sioh nun im P- oder Befehls-Register befindet, ist die Adresse im Schnellspeicher HSM für den ersten Befehl eines Unterprogramme, das duroh den Programmierer dazu bestimmt worden 1st, bei dsr Testetellung einer ünterbreohungeforderung von einem speziellen Untsrbrsohungs-Indikator durchgeführt zu werden, oder er ist die Adresse sines Unterprograna·β in Sohnsllspsiohsr,. das im Falle elnsr unerwarteten (unaaekierten) Unttrbreohungsfordsrung durchzuführen ist.
OOmO/1374
Ea war erwähnt worden, daß der anfängliche Uhterbrechunge-Abtastbefehl SI einen aus vier Zeichen bestehenden A-Adressenteil enthielt, der in das Α-Register übertragen wurde· Von den vier Zeichen war AQ durch den Programmierer bestimmt, A^ und Ag waren gleich Null gesetzt und A, konnte ebenfalls durch den Programmierer bestimmt werden. Wenn während der Ausführung des Befehls SI ein unmaskierter und gesetzter Unterbrechungs-Indikator gefunden wird, wird die Nummer des Unterbrechungs-Indikators in den Plätzen A1 und A2 des Α-Registers gespeichert. Das A-fiegister enthält dann die Adresse im Schnellspeicher HSM für den ersten Befehl eines Unterprogramme β, das durchzuführen ist, nachdem der spezielle Unterbrechungaverlauf festgestellt wurde. Das spezielle Unterprogramm war früher zusammen mit anderen durch den Programmierer in Speicherplätzen des Speichere HSH gespeichert worden, deren Adressen durch die programmierten Zeichen AQ und A, und durch die den Indikator bezeichnenden Zeichen A1 und A„ identifiziert sind.
Wenn bei der Durchführung eines UnterbrechungB-Abtastbefehle SI kein gesetzter und unmaskierter Unterbrechunge-Indikator gefunden wurde, bleiben die beiden mittleren Zeiohen A1 und A2 des A-Äegistere weiterhin lull. Di· Zeiohen AQ, A1, A2 und A3 i« A-Eegieter stellen dann dl· Adresse des Speichere HSM für den •raten Befehl dar, der auszuführen 1st, falle keine Unterbreohungiforderung ermittelt worden let· Dieser erete !«fehl kann dl· Anlag· wieder auf dae normale Program« «urüokepringen
BAD ORIGINAL
001120/1174
H74063
Unterbrechung durch einen programmierten Befehl
Die beschriebene Unterbrechung wird immer (soweit sie nicht verhindert wird) durch das Setzen eines der achtzehn Unterbrechungs-Indikatoren 90 eingeleitet. Die meisten der Unterbrechung»· Indikatoren werden automatisch gesetzt, wenn in den Stufen des Computers bestimmte Bedingungen auftreten· Es kann sich dabei beispielsweise um einen Befehl vom Bedienungspult, einen Rechenfehler, ein überschreiten der Rechenkapazität, eine besetzte oder arbeitsunfähige Periphereeinrichtung oder ein normales oder abnormales Ende eines Simultanbetriebes handeln. Zusätzlich ist einer der Unterbrechungs-Indikatoren für eine Steuerung durch den Programmierer vorgesehen anstatt durch die Stufen oder Schaltungen der Anlag' gesteuert zu werden.
Bei dem vorliegenden Beispiel ist der Unterbrechungs-Indikator 06 für programmierte Unterbrechungen reserviert. Der Unterbrechungs-Indikator 06 wird als Ergebnis einer Entschlüsselung eines Befehls gesetzt, der vom Programmierer geschrieben und in ein laufendes Programm eingesetzt worden war.
Wenn ein programmierter Unterbrechungsbefehl durch die Anlage statisiert worden ist, werden der Ausgang PI des Op-Dekoders 62 (Yig. 1D) und der Ausgang 7 des N-Deköder3 64 erregt. Die von diesen beiden Ausgängen gelieferten Signale lassen das Gatter 110 ein Signal an einen der Setzleiter 91· liefern, das den Unterbrechunge-Indikator 06 der Ünterbrechungs-Indikatorgruppe 90 (Fig. 1C) setzt. Wenn der Unterbreohungs-Indikator
009820/1374
H7A063
06 gesetzt ist, wird das beschriebene Unterbrechungsprogramm einschließlich des Unterbrechungs-Indikator-Abtastbefehls SI eingeleitet. Der Computer fragt die Unterbrechungs-Indikatoren ab und stellt fest, daß der Indikator 06 gesetzt ist, worauf dann das spezielle Unterprogram beginnt, das nach Wunsch des Programmierers durchzuführen ist·
Unterbrechungs-Priori täten
Der beschriebene Programmunterbrechungavorgang kann durch die Gegenwart von Sperrsignalen I oder I an den Invertereingangen (Fig. 1C) der Gatter 93 und 97 verhindert oder gehemmt werden. Im folgenden sollen nun die verschiedenen Bedingungen erläutert werden, unter denen die Sperrsignale I und I erzeugt werden.
Die Schaltungen des Computers verhindern oder hemmen die Unterbrechung eines Unterbrechungsprogranmes oder Unterprogrammes beim Auftreten einer zweiten Unterbrechungsforderung gleicher oder kleinerer Dringlichkeit o.der Priorität. Wenn das laufende Programm unterbrochen wird, wie es an Hand der Zuführung eines Sprungsignals J oder J3, an die Einheit 53 (Pig. 1C) beschrieben wurde, springt die Anlage auf die Durchführung des Unterbrechungsprogrammes über, welches den Unterbrechungs-Indikator-Abtastbefehl SI enthält. Wenn dies geschieht, erzeugt die Einheit 53 geeignete Signale für die Steuerung der Anlage und außerdem das entsprechende Sperrsignal I oder I * Wenn es sich
009820/1374
147Λ063
bei dem begonnenen Unterbreehungsprogramm, um ein "gewöhnliches" Unterbrechungsprogramm handelt, wird das Sperrsignal I erzeugt
und über den Inverter 96 dem Eingang des Gatters 97 zugeführt. Dieser Eingang sperrt einen Ausgang R vom Gatter 97» so daß
das Gatter 51 gesperrt wird und das laufende "gewöhnliche" Unterbrechungsprogramm oder Unterprogramm nicht unterbrechen kann.
Das laufende "gewöhnliche" Unterbrechungsprogramm oder Unterprogramm kann jedoch seinerseits unterbrochen werden, um einer Forderung nach einer dringlicheren Realzeit-Unterbrechung nachzukommen. Das einer Unterbrechungsforderung der Dringlichkeitsstufe "Realzeit" entsprechende Signal Rx vom Gatter 93 tastet das Gatter 52 auf und läßt ein Sprungsignal J entstehen. Das Sprungsignal J wird der Einheit 53 zugeführt und bewirkt, daß die Anlage das "gewöhnliche" Unterbrechungsprogramm oder Unterprogramm unterbricht und auf das Realzeit-Unterbrechungsprogramm springt.
Immer wenn die Einheit 53 den Computer auf ein Realzeit-Programm und Unterprogramm springen läßt, liefert die Einheit 53 außerdem ein Sperrausgangssignal I , das über die Inverter 92 und 96' den beiden Gattern 93 und 97 zugeführt wird, um die Unterbrechung des Realzeit-Programmes oder Unterpi^ogrannee durch eine Unterbrechungsforderung der Dringlichkeitsstufen "Realzeit" oder "gewöhnlich" zu verhindern.
009820/1374
Zusammenfassend gesagt, kann ein normales Programm sowohl durch eine gewöhnliche als auch durch eine Realzeit-Unterbrechungsforderung unterbrochen werden. Ein gewöhnliches Unterbrechungsprogramm oder Unterprogramm kann nur durch eine, Unterbrechungsforderung der Dringlichkeitsstufe "Realzeit" unterbrochen werden. Ein Realzeit-Unterbrechungsprogramm oder Unterprogramm kann nicht unterbrochen werden.
Programmierte Verhinderung einer Unterbrechung
Der Programmierer kann die Unterbrechung eines beliebigen Teiles eines Programmes verhindern oder hemmen, indem er in das Programm Befehle einbaut, die den Punkt bestimmen, von dem ab eine Unterbrechung nicht mehr gestattet ist und die außerdem einen späteren Punkt festlegen, von dem ab wieder eine Unterbrechung erlaubt ist« Diese Befehle können nach Wunsch des Programmierers sowohl gewöhnliche nxk als auch Realzeit-Unterbrechungen verhindern.
Wenn ein Setzbefehl zur Verhinderung gewöhnlicher Unterbrechungen (GUV-Befehls) entschlüsselt wird, liefert der Dekoder 62 (Fig. ID) ein Signal SI und der Dekoder 64 ein Signal J, Diese Signale setzen über das Gatter 130 das Flipflop 134 und lassen eiii gewöhnliches Sperrsignal I entstehen, das dem Gatter
97 (Fig. 1C) zugeführt w'ird und die Unterbrechung des laufenden Progranmes wegen einer Ursache gewöhnlicher Dringlichkeitsstufe verhindern. Ein die Verhinderung gewöhnlicher Unterbrechungen
009820/1374
H74063
wieder aufhebender Befehl (GUA-Befehl) läßt beim Entschlüsseln Signale Cl und 1 entstehen, die das Flipflop 134 über das Gatter 132 wieder zurücksetzen und das die Unterbrechung verhindernde Signal I beenden.
In entsprechender.Weise läßt ein Setzbefehl zur Verhinderung von Realzeit-Unterbrechungen (BW-Befehl) beim Entschlüsseln Signale Cl und 0 entstehen, die über das Gatter 136 bewirken, daß das Flipflop 140 gesetzt wird und ein Eealzeit-Sperrsignal I erzeugt. Ein späterer Befehl zur Aufhebung der Verhinderung von Healzeit-Unterbrechungen (RUA-Befehl) läßt die entschlüsselten Signale CI und / entstehen, die das Flipflop 140 über das Gatter 138 zurücksetzen und das Realzeit-Sperrsignal I beenden.
Programmprüfung oder Fehlersuche
Im folgenden wird die Arbeitsweise von Anordnungen beschrieben, mit Hilfe derer der Computer zur Lokalisierung von Fehlern in einem dem Computer zugeführten und von diesem ausgeführten Programm verwendet werden kann. Erfahrungsgemäß enthält ein langes und komplexes Programm immer irgendwelche Fehler, die zu einem offensichtlich falschen Endresultat führen· Es kann sich beispielsweise herausstellen, daß die in einem bestimmten Speicherplatz gespeicherte Information zu irgendeinem unbekannten Zeitpunkt während der Durchführung des Programmes fälschlich geändert worden ist· Es ist dann sehr zeitraubend und mühsam, in dem geschriebenen Programm denjenigen Punkt zu suchen, an dem ein falscher Befehl die unerwünschte Änderung des Inhaltes
009820/1374
U7A063
dee betreffenden Speicherplatzes verursacht hat. Um den Fehler im Programm zu finden, wird der Computer daher selbst unter Zuhilfenahme von Schaltungsanordnungen und Stufen verwendet, die auf einen Befehl ansprechen, der "Programm-Testbetrieb-Setzbefehl1 oder kurz PTS-Befehl bezeichnet werden soll.
Beim Entschlüsseln des PTS-Befehls liefern die Dekoder 62 und 64 (Fig. 1D) die entschlüsselten Signale CI und #, die das Gatter 124 ansprechen lassen und das Flipflop 123 setzen. Das Ausgangssignal des Flipflops 123 wird bei entsprechenden Takten T durch das Gatter 128 übertragen, um das Signal W und ein Signal, das den Programmtest-Unterbrechungaindikator 18 in der Unterbrechungs-Indikatorgruppe 90 (Fig. 10) setzt, entstehen zu lassen. Das Signal W vom Gatter 128 und das Signal H vom Gatter 97 (Fig. 10) bewirken, daß das Gatter 51 anspricht und daß die Einheit 53 im normalen Programm am Ende jedes einzelnen normalen Befehls dieses Programms einen Sprung ausführt.
Der Computer tritt dann in dae beschriebene gewöhnliche Unterbrechungsprogramm ein, um den Unterbrechungs-Indikator 18 als denjenigen, der gesetzt worden ist, zu identifizieren und in ein programmiertes Unterprogramm einzutreten, das vom Programmierer zur Ermittlung des Punktes, an dem sich im normalen Programm ein Fehler befindet, entworfen worden ist. Es kann sich dabei um ein Unterprogramm handeln, während dessen der frühere Inhalt des gestörten Speicherplatzes mit dem gegenwärtigen Inhalt dieses Speicherplatzes verglichen wird. Das
009820/1374
Unterprogramm kann außerdem bewirken, daß das Ergebnis des Vergleiches ausgedruckt wird oder auf andere Weise den Punkt des Programmes angeben, bei dem der Inhalt des betreffenden Speicherplatzes gestört wird.
Die Durchführung des Unterbrechungsprogrammes und des Programm-Testbetrieb-Unterprogrammes resultiert in einer Rückstellung des Unterbrechungs-Indikators 18. Die Information, die im Flipflop 123 erhalten bleibt, bewirkt jedoch, daß der Indikator während der Durchführung des nächsten normalen Befehles wieder gesetzt wird. Wenn das Flipflop 123 einmal in der beschriebenen Weise gesetzt worden ist, führt der Computer nach jedem normalen Befehl eine Programmtest-Unterbrechung durch. Diese Programmtest-Unterbrechungen können an jedem Punkt des normalen Programmes dadurch beendet werden, daß in dieses ein Programmtestende-Befehl eingesetzt wird. Wenn ein solcher Befehl entschlüsselt wird, spricht das Gatter 126 an und setzt das Flip-Flop 123 zurück, so daß keine weiteren Programmtest-Unterbrechungen mehr stattfinden.
Zusammenfassung
Die beschriebene Unterbrechungsanordnung zeichnet dadurch aus, daß: 1.) Der Programmierer durch die für das Zeichen N im Unterbrechnngs-Indikator-Abtaetbefehl gewählte Zahl bestimmen kann, ob eine, zwei oder alle drei Unterbrechungs-Indikatorgruppen abgefragt werden β ollen? 2·) der Programmierer duroh
009820/1374
H74063
die B-Adresse im Unterbrechungs-Indikator-Abtastbefehl bestimmen kann, welchen Unterbrechungs-Indikatoren in den einzelnen Gruppen erlaubt werden soll, eine Unterbrechung zu verursachen; 3.) der Programmierer einen Befehl einsetzen kann, der den Unterbrechungs-Indikator 06 setzt und bewirkt, daß das laufende Programm unterbrochen wird, um ein vom Programmierer gewünschtes ünterbrechungs-Unterprogramm durchzuführen; 4.) der Programmierer Befehle einsetzen kann, die Unterbrechungen sowohl der gewöhnlichen als auch der Realzeit-Dringlichkeitsstufe verhindern, und 5.) der Programmierer einen Befehl einsetzen kann, der nach allen normalen Befehlen eine Unterbrechung bewirkt, um das Programm zu prüfen und Fehler im Programm zu lokalisieren.
Ganz allgemein gesagt, steht der von der Anlage eingeschlagene Weg hinsichtlich der Unterbrechungsfähigkeit unter der Zontrolle des Programmierers, ohne daß dieser dabei den üblichen Beschränkungen unterworfen wäre, die durch feste und vorher festgelegte Schaltungen und Verdrahtungen der Anlage verursacht werden.
009820/1374

Claims (7)

H7A063 - 31 - Patentansprüche :
1.) Elektronische Datenverarbeitungsanlage, deren Programmablauf durch eine programmgesteuerte Unterbrechungsanordnung unterbrochen werden kann, gekennzeichnet durch eine Anzahl von Unterbrechungs-Indikatoren (90), die jeweils entsprechend einer Unterbrechungeforderung infolge des Auftretens einer entsprechenden Bedingung setzbar sind; eine Unterbrechungs-Indikator-Abtastanordnung, die darauf anspricht, daß irgendeiner der Unterbrechungs-Indikatoren gesetzt ist und bewirkt, daß das laufende Programm unterbrochen wird und ein Sprung zur Durchführung eines gespeicherten Programmes stattfindet, bei dem die Zustände von durch Programmierung ausgewählten Unterbrechungs-Indikatoren abgefragt werden und eine den ermittelten Zuständen entsprechende spezielle Adresse erzeugt wird, und durch eine Anordnung, die diese Adresse zum Zugriff zu einem entsprechenden gespeicherten Unterbrechungs-Unterprogramm und zu dessen Einleitung benutzt. ·
2.) Einrichtung nach Anspruch 1, gekennzeichnet durch eine programmgesteuerte Anordnung, die ein Arbeiten der Unterbrechungs-Indikator-Abtastanordnung zu verhindern gestattet.
009820/1374
3·) Einrichtung nach Anspruch 1, dadurch gekennzeichnet, daß die Unterbrechungs-Indikatoren eine gewöhnliche* Dringlichkeitsstufe und eine einer bevorrechtigten Realzeit-Dringlichkeitsstufe entsprechende Gruppe von Unterbrechungs-Indikatoren umfassen, und daß die programmgesteuerte Ünterbrechungs-Anordnung nur die Durchführung des normalen Programmes niedrigster Dringlichkeitsstufe unterbricht.
4,) Einrichtung nach Anspruch 1, gekennzeichnet durch einen Speicher mit Speicherplätzen für Befehle eines normalen Programms, ein Unterbrechungsprogramm und Unterbrechungs-Unterprogramme entsprechend verschiedenen Unterbrechungsursachen, und mit Speicherplätzen für Unterbrechungs-Abtastmasken, wobei die auf das Setzen irgendeines Unterbrechungs-Indikators ansprechende Anordnung eine Unterbrechung des laufenden Programmes und einen Sprung auf das Unterbrechungsprogramm bewirkt, das einen Befehl enthält, der das Abtasten von Unterbrechungs-Indikatoren und einen Vergleich der Zustände der Indikatoren mit den Zuständen einer Unterbrechungs-Abtastmaske fordert, und durch eine auf das Ergebnis dieses Vergleiches ansprechende Anordnung zur Erzeugung der Speicheradresse des entsprechenden durchzuführenden Unterprogrammes.
5·) Einrichtung nach Anspruch 4, gekennzeichnet durch Eegister, einschließlich eines Befehlsregisters, zur Aufnahme von Speicheradressen der Speicherplätze; eine Anord-
009820/1374
H74063
nung um dem Komparator Signale entsprechend den Zuständen der Unterbrechungs-Indikatoren und der Adressierten Unterbrechungs-Abtastmaske zuzuführen und ein Ausgangssignal zu erzeugen, das einem Indikator entspricht, der gesetzt und nicht maskiert ist; durch eine auf den Komparator ansprechende Anordnung zur Erzeugung der Speicheradresse des entsprechenden Unterprogrammes, das durchzuführen ist, und durch eine Anordnung zur Übertragung dieser Adresse in das Befehlsregister um die Durchführung des Unterprogrammes einzuleiten.
6.) Einrichtung nach Anspruch 4, gekennzeichnet durch ein Befehlsformat einschließlich eines Operationscode Op, einer Operationswahl N, einer Α-Adresse und einer B-Adresse, mit entsprechenden Registern, und mit einem Befehlsregister für die Speicheradresse des als nächstes auszuführenden Befehls, wobei die auf das Setzen irgendeines Unterbrechungs-Indikators entsprechende Anordnung eine Unterbrechung des laufenden Programmes und einen Zugriff und eine Statisierung eines Unterbrechungsprogramm-Befehls bewirkt, wobei N eine einer Gruppe von Unterbrechungsindikatoren entsprechende Zahl und B die Speicheradresse einer entsprechenden gewünsohten Maske iat; durch einen Komparator; durch eine Anordnung, die die Inhalte der OP- und N-Ke&ister entschlüsselt und dem Komparator die Statusbits einer angegebenen Gruppe von Unterbrechungs-Indikatoren und Bits einer angegebenen entsprechenden Maske zuführt, um einen Ausgang
009820/1374
U7A063
- 34 -
zu erzeugen, der anzeigt, ob ein gesetzter und unmaskierter Unterbrechungs-Indikator vorhanden ist oder nicht; durch eine auf den Inhalt des N-Registers und den Ausgang des Komparators ansprechende Anordnung, die eine entsprechende Adresse erzeugt, und diese im Α-Register speichert und durch eine Anordnung, die bewirkt, daß der Inhalt des Α-Registers zum Adressieren des Speicherplatzes verwendet wird, der das entsprechende Unterprogramm, das in diesem speziellen Falle durchgeführt werden soll, enthält.
7.) Einrichtung nach Anspruch 6, dadurch gekennzeichnet, daß die auf den Inhalt des N-Registers und den Ausgang des Komparators ansprechende Anordnung den Vergleichsprozeß mit der nächsten Gruppe von Unterbrechungs-Indikatoren und der nächsten entsprechenden Maske wiederholt, wenn kein gesetzter und unmaskierter Unterbrechungs-Indikator existiert^ bis ein gesetzter und unmaskierter Unterbrechungs-Indikator gefunden worden ist oder die letzte Gruppe verglichen worden ist, und die im Falle, daß ein gesetzter und unmaskierter Unterbrechungß-Indilrator vorhanden ist, die Nummer dieses Unterbrechungs-Indikators erzeugt und im Α-Register speichert.
009820/1374
3S
Leerseite
DE19641474063 1963-12-11 1964-12-07 Datenverarbeitungsanlage Pending DE1474063A1 (de)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US329639A US3290658A (en) 1963-12-11 1963-12-11 Electronic computer with interrupt facility

Publications (1)

Publication Number Publication Date
DE1474063A1 true DE1474063A1 (de) 1970-05-14

Family

ID=23286341

Family Applications (1)

Application Number Title Priority Date Filing Date
DE19641474063 Pending DE1474063A1 (de) 1963-12-11 1964-12-07 Datenverarbeitungsanlage

Country Status (4)

Country Link
US (1) US3290658A (de)
DE (1) DE1474063A1 (de)
GB (1) GB1044739A (de)
SE (1) SE319030B (de)

Families Citing this family (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE1250659B (de) * 1964-04-06 1967-09-21 International Business Machines Corporation, Armonk, NY (V St A) Mikroprogrammgesteuerte Datenverarbeitungsanlage
US3333252A (en) * 1965-01-18 1967-07-25 Burroughs Corp Time-dependent priority system
US3435420A (en) * 1966-01-03 1969-03-25 Ibm Contiguous bulk storage addressing
US3479649A (en) * 1966-07-22 1969-11-18 Gen Electric Data processing system including means for masking program interrupt requests
US3513445A (en) * 1966-09-29 1970-05-19 Gen Electric Program interrupt apparatus
US3473161A (en) * 1966-11-23 1969-10-14 Gen Electric Circular listing
US3508206A (en) * 1967-05-01 1970-04-21 Control Data Corp Dimensioned interrupt
US3431559A (en) * 1967-05-17 1969-03-04 Webb James E Telemetry word forming unit
US3512136A (en) * 1967-06-21 1970-05-12 Gen Electric Input/output control apparatus in a computer system
SE303056B (de) * 1967-08-31 1968-08-12 Ericsson Telefon Ab L M
JPS4845150A (de) * 1971-10-11 1973-06-28
JPS549456B2 (de) * 1972-07-05 1979-04-24
US3798615A (en) * 1972-10-02 1974-03-19 Rca Corp Computer system with program-controlled program counters
JPS4966041A (de) * 1972-10-27 1974-06-26
US4004283A (en) * 1974-10-30 1977-01-18 Motorola, Inc. Multiple interrupt microprocessor system
US4037204A (en) * 1974-10-30 1977-07-19 Motorola, Inc. Microprocessor interrupt logic
US4159516A (en) * 1976-03-23 1979-06-26 Texas Instruments Incorporated Input/output controller having selectable timing and maskable interrupt generation
DE2754890C2 (de) * 1977-12-09 1982-10-28 Ibm Deutschland Gmbh, 7000 Stuttgart Einrichtung zur Programmunterbrechung
US4760516A (en) * 1986-11-25 1988-07-26 Dialogic Corporation Peripheral interrupt interface for multiple access to an interrupt level
JPS63238630A (ja) * 1987-03-26 1988-10-04 Toshiba Corp マイクロプロセツサの割込み制御装置

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
NL233967A (de) * 1957-12-09
NL229160A (de) * 1958-06-30
US3061192A (en) * 1958-08-18 1962-10-30 Sylvania Electric Prod Data processing system
US3048322A (en) * 1960-11-14 1962-08-07 Int Paper Co Container and blank therefor

Also Published As

Publication number Publication date
GB1044739A (en) 1966-10-05
SE319030B (de) 1969-12-22
US3290658A (en) 1966-12-06

Similar Documents

Publication Publication Date Title
DE1474063A1 (de) Datenverarbeitungsanlage
DE3685876T2 (de) Meister-sklave-mikroprozessorsystem mit einem virtuellen speicher.
DE2411963C3 (de) Elektronische Datenverarbeitungsanlage mit einer Prioritätssteuerschaltung mit änderbaren Steuerblöcken
DE2744531C2 (de) Anordnung zur Auswahl von Unterbrechnungsprogrammen in einer Datenverarbeitungsanlage
DE3751164T2 (de) Datenprozessor mit verschiedenen Unterbrechungsverarbeitungsarten.
DE2719253C3 (de) Schnittstellenschaltung für Datenverarbeitungsanlagen
DE2416609C2 (de) Datenverarbeitungsanlage mit einer zentralen Verarbeitungseinheit und Multiprogrammierung mit mehreren Programmunterbrechungs-Prioritätsstufen
EP0011685B1 (de) Programmierbare Speicherschutzeinrichtung für Mikroprozessorsysteme und Schaltungsanordnung mit einer derartigen Einrichtung
DE2953861C2 (de)
EP0006164B1 (de) Multiprozessorsystem mit gemeinsam benutzbaren Speichern
DE2702090B2 (de) Datenverarbeitungssystem mit einem zentralen Prozessor
DE2657848A1 (de) Steuereinheit fuer ein datenverarbeitungssystem
DE2755371A1 (de) Ein/ausgabe-verarbeitungssystem
DE1499200B2 (de) Datenverarbeitungsanlage mit vorranggesteuerter programm unterbrechung
DE1915818B2 (de) Steuerschaltung für ein elektronisches Datenverarbeitungssystem
DE2928488A1 (de) Speicher-subsystem
DE3121742C2 (de) Mikroprogramm-Steuereinrichtung
DE1929010B2 (de) Modular aufgebaute datenverarbeitungsanlage
DE2629266A1 (de) Ein/ausgabe-system
DE68929080T2 (de) Anordnung zum Speichern von Informationen für einen Datenanbieterprozessor
DE2755616A1 (de) Asymmetrischer multiprozessor
DE2164793A1 (de) Verfahren und Datenverarbeitungsanlage zur Steuerung einer Vielzahl von Eingabe/ Ausgabe-Einheiten mittels eine Zentraleinheit
DE68922545T2 (de) Zugeordneter Dienstprozessor mit Übertragungsmöglichkeiten zwischen Kanälen.
DE1549531A1 (de) Digitale Rechenanlage
DE2359037A1 (de) Mikroprogrammrechnereinrichtung