DE1200581B - Programmunterbrechungssystem fuer eine elektronische Rechenmaschine - Google Patents

Programmunterbrechungssystem fuer eine elektronische Rechenmaschine

Info

Publication number
DE1200581B
DE1200581B DEN16905A DEN0016905A DE1200581B DE 1200581 B DE1200581 B DE 1200581B DE N16905 A DEN16905 A DE N16905A DE N0016905 A DEN0016905 A DE N0016905A DE 1200581 B DE1200581 B DE 1200581B
Authority
DE
Germany
Prior art keywords
program
interruption
register
interruption system
calculating machine
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
DEN16905A
Other languages
English (en)
Inventor
Carel Steven Scholten
Bram Jan Loopstra
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.)
Electrologica BV
Original Assignee
Electrologica BV
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 Electrologica BV filed Critical Electrologica BV
Publication of DE1200581B publication Critical patent/DE1200581B/de
Pending legal-status Critical Current

Links

Classifications

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

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Executing Machine-Instructions (AREA)
  • Bus Control (AREA)
  • Multi Processors (AREA)

Description

BUNDESREPUBLIK DEUTSCHLAND
DEUTSCHES
PATENTAMT
AUSLEGESCHRIFT
Int. CL:
G06f
Deutsche Kl.: 42 m-14
f"V. 31
Nummer: 1200 581*$ ? ,
Aktenzeichen: N16905IX c/42 m
Anmeldetag: 27. Juni 1959
Auslegetag: 9. September 1965
Programmunterbrechungssystem für eine elektronische Rechenmaschine
Anmelder:
N. V. Electrologica, Amsterdam (Niederlande)
Vertreter:
Dr.-Ing. O. Stürner, Patentanwalt, Pforzheim, Julius-Naeher-Str. 13
Als Erfinder benannt:
Carel Steven Schölten, Amsterdam; Bram Jan Loopstra, Amstelveen (Niederlande)
Beanspruchte Priorität:
Niederlande vom 30. Juni 1958 (229160)
Die Erfindung bezieht sich auf ein Programmunterbrechungssystem für eine elektronische Rechenmaschine, das eine Anzahl von simultanen Aufgaben derart durchzuführen gestattet, daß jede Aufgabe unabhängig von den Merkmalen der anderen simultanen Aufgaben und denen von asynchronen äußeren Systemen, die den Aufgaben der Rechenmaschine zugeordnet sind, programmiert werden kann.
Der Erfindung liegt die technische Aufgabe zugrunde, eine solche elektronische Rechenmaschine zu iö schaffen, die simultan eine Reihe von Aufgaben in der Weise lösen kann, daß weder die Aufgaben noch das zugeordnete Arbeitsprogramm voneinander abhängig sind, wodurch die Arbeitsgeschwindigkeit der Maschine besser ausgenutzt wird, als dies bisher der Fall ist.
Die Leistungsfähigkeit der elektronischen Rechenmaschine wird weitgehend durch das Verhältnis der
Rechenzeit zur gesamten Zeit bestimmt. Dieses Verhältnis kann durch Beseitigung der Wartezeiten ver- 20
bessert werden. Wartezeiten, die während der Durchführung des Arbeitsprogramms entstehen, z. B. 2
solche, die durch Unterprogramme, wie Multiplikation und Addition, verursacht sind, sind ein Teil chen die Systeme die Rechenmaschine brauchen, der Gesamtzeit für die Durchführung des Arbeits- 35 nicht zusammenfallen.
Programms und können als innere Wartezeiten be- Oft gibt es jedoch eine Anzahl von Rechenaufzeichnet werden. gaben, die nicht synchronisiert werden können. Wenn
Es ist bekannt, daß diese inneren Wartezeiten eine Anzahl von nicht synchronisierbaren äußeren weitgehend mittels Mikroprogrammierung beseitigt Systemen eine einzige Rechenmaschine zur Verwerden können. Das Ergebnis der Beseitigung der 30 fügung hat, so werden von Zeit zu Zeit die Durchinneren Wartezeiten besteht eben darin, daß die führungszeiten der zugeordneten Programme zu-Durchführungszeit für das Arbeitsprogramm gekürzt
wird.
Wenn indessen die Rechenmaschine wiederholt eine Aufgabe in einem äußeren System mit einem Zyklus zu lösen hat, dessen Periode im wesentlichen unabhängig von der Geschwindigkeit ist, mit welcher die Maschine ihr zugeordnetes Programm durchführt, so äußert sich die Beseitigung der inneren
Wartezeiten keineswegs in einer höheren Leistungs- 40 die Operation im zugeordneten System verfügbar ist. fähigkeit, da die im Programm gewonnene Zeit den Diese »verfügbare Zeit« wird üblicherweise durch Wartezeiten zwischen aufeinanderfolgenden Durch- den Zeitpunkt der Anfrage zur Durchführung des führungen des Programms hinzugefügt wird. Diese Programms bestimmt, z. B. weil die nötige Eingangs-Wartezeiten können als äußere Wartezeiten eines information verfügbar geworden ist, und durch den Programms bezeichnet werden. Trotzdem kann eine 45 Zeitpunkt, in welchem die Ausgangsinformation der Steigerung der Leistungsfähigkeit dadurch erzielt Rechenmaschine verwendet werden muß. Wenn die werden, daß diese äußeren Wartezeiten mit anderen zur Durchführung des Programms notwendige Zeit, Aufgaben ausgefüllt werden. Dies wäre durch ent- also die »Programmzeit«, kürzer ist als die »verfügsprechende Programmgestaltung möglich. Auch ist es bare Zeit«, so gibt es eine »Freizeit« (Zeitspielraum), z. B. möglich, die Rechenmaschine mit einer Anzahl 50 die einen Teil der äußeren Wartezeit darstellt,
äußerer Systeme zu verbinden und diese Systeme Wie die »Freizeit« über die »verfügbare Zeit«
derart zu synchronisieren, daß die Perioden, in wel- verteilt wird, ist nicht wichtig für die erfolgreiche
509 660/406
sammenfallen, was bedeutet, daß die Rechenmaschine in mindestens einem System versagt. Dies ist ein nicht tragbarer Übelstand.
Dessenungeachtet ist es möglich, eine Rechenmaschine gleichzeitig in einer Anzahl nicht synchronisierbarer Systeme zu verwenden. Sehr oft ist die Zeit, die die Rechenmaschine benötigt, um ein Programm durchzuführen, nur ein Teil der Zeit, die für
Arbeit der Rechenmaschine in einem solchen äußeren System.
Die Möglichkeit, eine Rechenmaschine in Verbindung mit einer Anzahl solcher äußeren Systeme simultan zu verwenden, hängt von der Ausnutzung dieser Freizeiten ab, insbesondere dann, wenn die äußeren Systeme nicht synchronisierbar sind.
Angenommen, eine Aufgabe A ist gleichzeitig mit einer Aufgabe B durchzuführen und die Programmzeit von A ist länger als die Freizeit von B sowie die Freizeit von A länger als die Programmzeit von B. Fallen dann beide Aufgaben zusammen, so können richtige Ergebnisse erzielt werden, wenn das Programm B zuerst durchgeführt wird. Falls mit Programm A bereits begonnen wurde, so können riehtige Ergebnisse noch erzielt werden, wenn Programm A unterbrochen, Programm B durchgeführt und danach Programm A wiederaufgenommen und zu Ende geführt wird. Es ist manchmal möglich, dies mit allgemeinen Programm-Hilfsmitteln durchzuführen. So ist es möglich, in Programm A Unterbrechungen durch eine Anzahl von Auftragen an diesen Punkten einzufügen, um nachzufragen, ob B die Rechenmaschine braucht oder nicht, und gegebenenfalls mittels entsprechender Weisungen auf Programm B überzuspringen.
Programm B hat mit einigen Auftragen zu beginnen, wobei die Inhalte der Register auf den Speicher übertragen werden. Weiterhin soll Programm B mit einigen Aufträgen beendet werden, wobei die Registerinhalte wiederhergestellt werden und wobei schließlich ein Sprung zu A folgt. Der Zeitaufwand für diese Unterbrechungsaufträge hat kleiner zu sein als die Freizeit von B. Das Hinzufügen von Aufgaben bedeutet systematisch mehr Unterbrechungspunkte und das Zufügen von weiteren Aufgaben mit kurzen Freizeiten bedeutet systematisch eng aneinandergefügte Unterbrechungspunkte in den Programmen A und B. Einwendungen gegen dieses Verfahren können wie folgt erhoben werden:
1. Die Programmgestaltung wird sehr umständlich.
2. Viele Extraaufträge verbrauchen Zeit und Speicherraum.
3. Der Zeitabstand zwischen den Unterbrechungspunkten verringert die Freizeit der anderen 4S Programme.
4. Änderungen in der Aufgabenkombination bedeuten eine Änderung der einzelnen Programme.
5. Sind in einem Programm bedingte Befehle vorhanden, so erschwert dies die Voraussage, wie die Rechenmaschine das Programm durchführen wird.
Erfindungsgemäß werden diese Ubelstände durch Verwendung eines Programmunterbrechungssystems überwunden; der Grundgedanke ist ähnlich demjenigen, der bei dem an sich bekannten Unterbrechungssystem zur Beseitigung der inneren Wartezeiten verwendet wird. Dieser Stand der Technik wird beschrieben in dem Aufsatz in der Zeitschrift I. R. E. Transactions on Electronic Computers, Vol. EC No. 2, July 1958, p. 141 bis 149 »Realization of Randomly Timed Computers Input and Output by Means of an Interrupt Feature«.
Der Aufbau jenes Unterbrechungssystems ist indessen für den Gegenstand der Erfindung nicht geeignet. Hierfür sollte das System in erster Linie die folgenden Eigenschaften aufweisen:
1. Es muß möglich sein, ein Programm zu unterbrechen, das bereits ein anderes Programm mittels einer Unterbrecheranordnung unterbrochen hat.
2. Es sind Mittel vorzusehen, um die Freizeiten sinnvoll über die verfügbaren Zeiten zu verteilen.
3. Der Inhalt der Register eines unterbrochenen Programms ist zu speichern. Die Speicheradressen sollten entweder dem unterbrochenen Programm oder dem unterbrechenden Programm zugeordnet sein.
4. In bezug auf 3 ist es erwünscht, daß entweder festgelegt ist, welches Programm von der Rechenmaschine durchgeführt wird, oder daß die Programme derart eingerichtet sind, daß sie am Ende zu den genannten Adressen zurückführen, wodurch die weitere Bearbeitung des unterbrochenen Programms eingeleitet wird.
5. Es sollte möglich sein, die Programme einzeln zu beginnen und zu beenden, ohne die Durchführung von anderen Programmen zu behindern.
Die bekannten Programmunterbrechungssysteme haben diese Eigenschaften nicht.
Fig. la und Ib geben das Schaltschema eines verbesserten Programmunterbrechungssystem wieder, das die erfindungsgemäßen Bedingungen völlig befriedrigt und den Erfindungsgedanken erläutert. Es ist zu erwähnen, daß die Verwirklichung der Erfindung sich je nach der angewandten Schalttechnik und dem Aufbau der Rechenmaschine, die mit den Programmunterbrechungssystemen nach der Erfindung ausgerüstet ist, ändert. Das Beispiel von F i g. 1 ist deshalb so allgemein wie möglich gehalten. Es wird ein reines, direkt gekoppeltes Rechensystem verwendet, zu dessen Aufbau eine einzige Art von logischer Einheit verwendet ist, die aus der Hintereinander eines »ODER«- und eines »NICHT«-Kreises besteht, z. B. aus einem Vielfachdioden-Eingangskreis, der von einem Transistor-Inverter gefolgt ist. Die Ruhezustandssignale können entweder »hoch« oder »tief« sein, d. h. zwei verschiedene Spannungspegel haben und so eine »1« oder eine »0« darstellen.
Die Schaltung besteht aus einer Matrix, deren Reihen mit den Signaleingängen und deren Spalten mit den logischen Einheiten verbunden sind. An den Kreuzungspunkten der horizontalen Leitungen (Signale) und der vertikalen Leitungen (logische Einheiten) sind gegebenenfalls zwischen beiden Leitungen vorhandene Verbindungen mittels eines Zeichens angegeben. Ein Punkt zeigt, daß das Signal dem Ausgang einer logischen Einheit zugeführt wird, während ein Pfeil angibt, daß das Signal auf den Dioden-Eingang einer Einheit gelangt. Die auf diesem Weg erlangten Schaltschemen können als logische Diagramme und als Schaltschemen gelesen werden.
Wegen des Gleichstromcharakters des Rechensystems kann die Arbeitsweise der Kreise durch Anwendung einiger weniger Rechenregeln verstanden werden: Nur wenn alle Eingänge der logischen Einheit »tief« sind, liefert die Einheit ein »hohes« Ausgangssignal.
Wenn ein Signal den Ausgängen mehrerer logischer Einheiten zugeführt wird ist es hoch, falls mindestens einer der Ausgänge hoch ist oder falls ein hohes Meldesignal von außerhalb der Schaltung liegenden Quellen zugeführt wird.
Die Bezeichnungen der Signale sind am Anfang oder am Ende der Signalleitungen vermerkt, während die Bezeichnungen der logischen Einheiten unter oder über den Spalten stehen.
Wenn zwei Einheiten so angeordnet sind, daß jeder Ausgang jeder Einheit mit einem Eingang der anderen Einheit verbunden ist, so arbeiten sie wie ein Flip-Flop, für das im folgenden der Ausdruck »Kippschaltung« verwendet wird.
Auf der linken Seite der senkrechten gestrichelten Linie von F i g. 1 b ist die Unterbrechungsschaltung und auf der rechten Seite eine Anzahl von Kippregisterelementen der Rechenmaschine, die mit dem Unterbrecher zusammenarbeiten, dargestellt. Die Unterbrecherschaltung wird mit der Rechenmaschine mittels der Signale SY und SY' synchronisiert, die vom Steuerwerk der Rechenmaschine kommen und dem Unterbrecher zugeführt werden, und mittels der Signale/ und /', die von der Unterbrecherschaltung kommen und das Steuerwerk der Rechenmaschine beeinflussen.
Der Rechenmaschinenzyklus besteht aus zwei Teilen:
In Teil 1, dem Befehlszyklus, wird ein Befehl dem Speicher entnommen und auf ein Register der Steuereinheit der Rechenmaschine übertragen; dabei wird der Inhalt des Adreßzählers um »1« erhöht.
In Teil 2, dem Funktionszyklus, wird der im Register enthaltene Befehl durchgeführt. Die Signale SY, SY' bezeichnen die Umschaltung von Teil 2 auf Teil 1 des Rechenmaschinenzyklus. Beim Umschalten ist SY hoch (SY' tief) und / tief (/' hoch).
Falls aber / hoch ist, löst das am Ende des Funktionszyklus kommende Signal SY keinen neuen Befehlszyklus aus, sondern der Funktionszyklus wird noch einmal gestartet.
So lange, wie / hoch bleibt, wird so der Funktionszyklus wiederholt. Die Durchführung dieser Wiederholung hängt von der Ausbildung der Steuervorrichtung ab und ist nicht gezeichnet. Die meisten Typen von Steuervorrichtungen können zu diesem Zweck leicht angepaßt werden. Der Inhalt des Steuereinheit-Registers, das hier mit einigen anderen Registern zusammen das größere Register VAC bildet, darf während des Funktionszyklus nicht geändert werden, sofern nicht ein Befehl im Register FA -FO des Unterbrechungssystems dies fordert. Das Register FO soll den Befehl enthalten und FA die zugehörige Speicheradresse. Von beiden ist eine Anzahl von Kippschaltungen zu sehen. Das Register VAC enthält jeweils die Speicheradresse des nächsten durchzuführenden Befehls.
Die Anzahl der Stellen des Steuereinheit-Registers ist normalerweise kleiner als die Anzahl der Stellen des Maschinenwortes; um die Zahl der Übertragungen zwischen den Registern und dem Speicher bei der Unterbrechung zu begrenzen, wird dieses Register daher mit einer Anzahl von Rechenmaschinenregistern Überlauf, Bedingungen usw.) kombiniert, die alle nur wenige Stellen haben. Diese werden so kombiniert, daß die Inhalte aller Register zusammen auf und vom Speicher mit einem einzigen Befehl übertragen werden können. Die Register F und IB gehören zu diesere Kombination. Die Register F, E und IB sind im besonderen für den Unterbrecher vorgesehen. E und F leiten eine sofortige Unterbrechung ein, wenn sie eine »1« enthalten; das Register IB verhindert die Unterbrechung von den äußeren Quellen der Rechenmaschine, wenn es eine »1« enthält. Die Registerkombination wird mit VAC bezeichnet.
Die Inhalte von E und IB können mittels Befehles gesteuert werden, während das Register F durch interne Mittel gesteuert wird, die in einer Rechenmaschine ohne Unterbrechungssystem Verwendung finden, um die Maschine stillzusetzen. Das Register E kann zur Steuerung einer Unterbrechung Verwendung finden, während IB dazu dienen soll, dies bei einer bestimmten Programmlage zu verhindern.
Bei einer Unterbrechung sind die Inhalte der Rechenmaschinenregister auf den Speicher zu übertragen und durch die Inhalte einer Anzahl von anderen Speicheradressen zu ersetzen. Dabei sollen die Inhalte der vier Register A, B, S und VAC auf diesem Wege übertragen werden. Die genaue Anzahl der Registerübertragungen ist kein wesentliches Merkmal der Erfindung; sie kann kleiner oder größer sein, sollte aber mindestens die unter der Bezeichnung VAC zusammengefaßten Register enthalten.
Die folgenden Angaben betreffen das Register FO:
Die Kippschaltungen FOv FOi usw. bestimmen während des Unterbrechungsvorganges, daß eine Übertragung zwischen den Registern und dem Speicher durchgeführt wird.
FO2 gibt an, ob die Übertragung vom Register zum Speicher [(FO2)=0] oder vom Speicher zum Register [(FO2)=1] erfolgt.
FO1 und FO0 bezeichnen das bei der Übertragung wirksame Register.
(FO1, FO0) = 00 bezeichnet Register A, (FO1, FO0) = 01 bezeichnet Register B, (FO1, FO0) = 10 bezeichnet Register S, (FO1, FO0) = 11 bezeichnet Register VAC.
Es wird angenommen, daß Register FA die Speicheradressen bezeichnet, die an den Übertragungen beteiligt sind. FA0 und FA1 bezeichnen zusammen Gruppen von vier aufeinanderfolgenden Speicheradressen. FA2, FA3 und FAi bezeichnen acht aufeinanderfolgende Gruppen von vier Adressen. Jede Gruppe von vier Adressen ist einem der simultanen Programme zugeordnet. Die weiteren Stellen FA bekommen bei einer Unterbrechung einen festen Wert, beispielsweise Null. Die Schaltung kann leicht für eine größere oder kleinere Anzahl von simultanen Programmen eingerichtet werden. Drei Gruppen von je z. B. sieben Signalen auf der linken Seite der Schaltung von Fig. la sorgen für den Verkehr zwischen der Unterbrecherschaltung und den äußeren Systemen, falls sieben äußere Systeme vorgesehen sind. Die Anpassung an eine kleinere oder größere Zahl ist leicht zu erreichen. Die Signale A0 bis herauf zu A6' werden von den äußeren Systemen abgeleitet; ihr Zustand »tief« zeigt an, daß das äußere System an dem Zyklus teilnimmt, in welchem die Rechenmaschine ihr zugeordnetes Programm durchführen kann und soll. Die Signale K0 bis KB sind von der Unterbrecherschaltung ausgehende Signale; ihr Zustand »hoch« überträgt zu den äußeren Systemen die Mitteilung, daß in ihrem zugeordneten Programm ein Befehl durchgeführt wird, wobei in dem Register E eine »1« vermerkt wird. Dies könnte bedeuten, daß das Programm ausgeführt worden ist
und daß das X-Signal zur Rückstellung des korrespondierenden A -Signals verwendet werden kann.
Die Signale S0 bis S6 einschließlich sind Ausgangssignale, die die Mitteilung zu den äußeren Systemen übertragen, daß ihr zugehöriges Programm durch die Einstellung des Registers F gestoppt worden ist. Da das Programm nicht beendet ist, kann das Signal S dazu verwendet werden, um die nötigen Schritte im äußeren System zu veranlassen, die zu dem abgebrochenen Programm gehören.
Die Schalteinheiten Ii0 bis Ii6 bilden ein Hilfsorgan, das die Freizeiten derart über die verfügbaren Zeiten verteilt, daß selbst mehrere gleichzeitig anfallende Aufgaben in der richtigen Reihenfolge durchgeführt werden. Dies geschieht durch Ordnung der Aufgaben nach ihrer Dringlichkeit. Diese Dringlichkeit hängt in erster Linie von der Freizeit des Programms und den Programmzeiten des Programms höherer Dringlichkeit ab. Das Steuerorgan Ii läßt nur A'- Signale durch von einem Rang, der höher ist als der Rang des laufenden Programms. Wenn solch ein tiefes y4'-Signal auftritt, so wirkt die Unterbrechung augenblicklich, und es werden keine weiteren Befehle des laufenden Programms ausgeführt. Der //-Kreis kann durch ein Signal von IB gesperrt werden. Die Mitteilung, die angibt, welches Programm läuft, befindet sich im P-Register, das aus den Kippschaltungen P0 bis P6 besteht. Die Register I, D und H steuern die Unterbrecherschritte.
Die Wirkungsweise des Programmunterbrechungssystems wird an einem Beispiel erläutert, in welchem ein Programm vom Rang 2 durch ein Programm vom Rang 4 unterbrochen wird. Das Zeitdiagramm dieses Beispiels wird an Hand von Fig. 2a und 2b erläutert, das aus einer Anzahl von horizontalen Linien besteht, die die Signale gemäß der Schaltung von F i g. 1 in der gleichen senkrechten Ordnung bezeichnen. Die Zeit schreitet von links nach rechts fort. Die dünnen Partien der Signallinien zeigen tiefe stabile Signalzustände an. Der Rechenmaschinenzyklus ist unter den Signalen ersichtlich.
Zu Beginn ist das Signal A2 tief; das Programm 2 läuft, wie durch eine Kippschaltung P2, die eine »1« enthält, gezeigt. Die Inhalte des Registers FA, FO sind willkürlich ausgewählt; sie hängen von dem durchzuführenden Befehl ab.
Nach einiger Zeit wird das Signal A/ tief und bestimmt so, daß das Programm 4 durchgeführt werden soll. Alle Eingänge zur Schalt- und Verteilereinheit /Z4 sind jetzt tief; am Ausgangskreis Ii1 entsteht daher ein hohes Signal IL Dieses Signal wird einem Eingang der Einheit /' zugeleitet und schaltet die Kippschaltung/-/' auf »1« (/= hoch, /'=tief). Es ereignet sich nun vorerst nichts, bis der Funktionszyklus der Rechenmaschine vollendet ist. In diesem Augenblick eröffnet der Synchronisationsimpuls (SY= hoch, SY'=tief) erneut den Funk tionszyklus anstatt eines neuen Befehlszyklus, da / nunmehr hoch ist.
In dem Unterbrecherkreis wird das SY-Signal an die Eingangskreise der //-Einheiten gelegt, um den Beginn der Unterbrechung während des Synchronisationsimpulses zu verhindern. Sein Einfluß auf das //-Signal besteht darin, daß er es ausschaltet. Dies hat keine weitere Folge, da die Kippschaltung schon umgeschaltet ist.
ίο Das Signal SY' wird mit den Einheiten PiF verbunden. Das SY' tief ist, hat die Einheit PiF2 nur tiefe Eingänge und liefert ein hohes Ausgangssignal PiF2, das die Kippschaltungen FA2, FAZ und FVl4 in die Schaltzustände bringt, die die zum Programm 2 gehörige Gruppe von vier Speicheradressen bezeichnen. Auf dem gleichen Wege werden die Kippschaltungen FA0, FA1, FO1 und FO2 während des Synchronisationsimpulses durch H/F-Signale in den »O«-Zustand gebracht. SY' und / sind beide tief und bringen die Kippschaltung D mittels der Einheit IiD in den Zustand »1«, die Kippschaltungen FA5, FA6 usw. in den Zustand »0« sowie die Kippschaltungen FO4, FO5 usw. in jenen Zustand, der bestimmt, daß eine Übertragung zwischen den Registern und dem Speicher durchzuführen ist.
Der Synchronisationsimpuls bewirkt, daß ein neuer Funktionszyklus mit dem Register FO-FA gestartet wird; der den Befehl Übertragung der Inhalte des Registers^ zur Speicheradresse 8 oder (A)->8 enthält.
Während der Befehl durchgeführt wird, ist das Signal SY tief. Das Signal D' wird nunmehr auch tief, so daß die Einheit HiF0 ein hohes Signal HfF0 liefert, das die Kippschaltung H0 in den »1«-Zustand
bringt. Das Signal PS, das nunmehr hoch ist, löscht das P-Register.
In diesem Funktionszyklus wird der Befehl (A) ->· 8 durchgeführt. Am Ende des Zyklus löst der Synchronisationsimpuls (SY hoch) einen neuen Funktionszyklus aus. Zu gleicher Zeit wird das Register FO mittels der Signale HiF2, HiF1 und HiF0 auf den Stand ... 001 gebracht, während das Register FA auf den Stand... 01001 gebracht wird. Das F-Register enthält nunmehr den Befehl (B) -*■ 9.
So lange SY wieder tief ist, bringt FiH1 (hoch) das Registern auf den Stand010. Die SignaleH2 und H1 (nun tief) werden den Einheiten AiP zugeführt. AiP2 und AiP4^ liefern ein Signal, das die Kippschaltungen P2 und P4 in den »1 «-Zustand schaltet. Am
Ende jedes Funktionszyklus wiederholt sich die Wechselwirkung der H/F-Einheiten und des Registers AF-FO sowie der F/H-Einheiten und des Registers H so lange, wie / eine »1« enthält. Auf diesem Wege werden acht aufeinanderfolgende Befehle ausgeführt, die vom Register// und den ihm zugeordneten Kreisen gesteuert werden. Die Befehle sind im einzelnen:
(H) — 0 : (A) zur Speicheradresse 8
(H) = 1: (B) zur Speicheradresse 9
(H) = 2: (S) zur Speicheradresse 10
(H) = 3: (VAC) zur Speicheradresse 11
(H) = 4: (16) zum Register A (H) = 5: (17) zum Register B (H) = 6: (18) zum Register S
(H) = 7: (19) zum Register VAC
Übertragung von den Registern auf die zu Programm 2
gehörenden Speicheradressen.
Übertragungen aus den zu Programm 4
gehörigen Adressen zu den Registern.
ίο
Zu Beginn des vierten Zyklus werden die Einheiten AiP2 und AiP1 abgeschaltet. Die Kippschaltung P4 bleibt im »1 «-Zustand, während F2 wieder auf »0« geschaltet wird. Register P enthält nunmehr die Mitteilung, daß Programm 4 durchgeführt wird. Diese Einstellung des Registers P wird bis zur nächsten Unterbrechung beibehalten.
Am Ende des vierten Zyklus (SY hoch) werden alle Eingänge der Einheit PiFi tief. Das hohe Signal
gebenenfalls möglich, ein Programm, das das Hauptprogramm unterbrochen hat, auch wieder zu unterbrechen und sogar dieses Programm von weiteren Programmen unterbrechen zu lassen. Dabei gelten die folgenden Bedingungen:
Erstens kann ein beliebiges Programm nur von Programmen mit höherer Priorität unterbrochen werden, nicht von Programmen gleicher oder niedrigerer Priorität, ausgenommen, wenn es nicht beendet
PiFi führt die Kippschaltungen FA2, FA3 und FA^ io werden kann. __
in den Zustand, der die Gruppe der vier zum Pro- Zweitens kann ein Programm nur dann unterbrochen gramm 4 gehörigen Speicheradressen angibt. werden, wenn keine Verwirrungen entstehen kön
nen. Vor allem ist wiederholtes Unterbrechen während der Umspeicherung von Registerinhalten nicht
Zu Beginn des achten Zyklus ist die Kippschaltung / durch das Signal FiH3 wieder auf »0« geschal
tet, während am Ende dieses Zyklus der Kippschal- 15 zugelassen. Außerdem wird auf jeden Fall der lauter 4 durch die Einheit DS wieder auf »0« geschaltet fende Auftrag ausgeführt, bevor eine Unterbrechung ist. Da (/)=»0«, wird dieser Zyklus von einem Befehlszyklus gefolgt. Das Register VAC enthält nun
die Adresse des ersten Auftrages von Programm 4,
stattfinden kann. Die überraschenden Vorteile dieser Vorrichtung, welche mit sehr geringen Mehrkostenerreicht sind, können mit Hilfe des Begriffes der
der dem zuletzt ausgeführten Befehl von Programm 2 20 »wesentlichen Eile« erklärt werden.
Eine Anzahl von Eingabe- oder Ausgabegeräten durchläuft einen festen Zyklus. Als Beispiel diene ein Lochkartenleser. Hier ist eine konstante Kartengeschwindigkeit erwünscht. Falls die Rechenmaschine
folgt. Das Ziel der Unterbrechung ist nunmehr erreicht.
Die Signale der Kippschaltungen E und F können
die Kippschaltung / auf »1« schalten, und zwar unabhängig von den /{-Einheiten, wodurch eine Unter- 25 nicht frei ist, um eine Karte zu behandeln, sobald brechung eingeleitet wird. Dies sieht die Möglichkeit diese die Lesestelle erreicht, muß die Kartenbeweder Einschaltung eines Programms von niedrigerem gung gestoppt werden. Der daraus entstehende Zeit-Dringlichkeitsrang mittels des Unterbrechers vor. In verlust ist größer als die Zykluszeit. Deshalb kommt einem solchen Fall muß das A '-Signal des durchge- dem Kartenleser die wesentliche Eile zu, die z. B. bei führten Programms rückgängig gemacht werden. Die 30 einer elektrischen Schreibmaschine nicht auftritt. Der Signale K und S können für diesen Zweck Verwen- Konstrukteur wird nun allen Eingabe- und Ausgabedung finden. Wenn kein A '-Signal niedrig ist, wird
die Rechenmaschine auf ein zeitunabhängiges Programm mittels der Einheit PiF7 geschaltet. Dieses
Programm ist notwendig, um die Rechenmaschine 35
während der Wartezeiten in Betrieb zu halten.
Zusammenfassung ist noch folgendes auszuführen:
Es liegt zwar eine oberflächliche Ähnlichkeit vor zwischen der erfindungsgemäßen verwendeten Schaltung zur Verteilung der Grenzzeiten und dem früher angegebenen Priority Circuit, der im eingangs erwähnten Aufsatz in den I. R. E. Transactions veröffentlicht ist, der wesentliche Unterschied zwischen beiden besteht jedoch darin, daß gemäß der Erfin-
geräten feste Prioritäten zuteilen. Dadurch kann man den Eigenschaften dieser Geräte weitgehend Rechnung tragen.
Die Reihe von Auftragen, die notwendig für das Ausschreiben einzelner Symbole sind, kann jetzt unterbrochen werden, um einem Kartenleser Vorfahrt zu geben, auch falls seine Meldung später eingetroffen ist als die der Schreibmaschine.
Die Perioden, während derer eine Unterbrechung nicht zugelassen ist, sind so kurz im Vergleich mit den mechanischen Trägheiten innerhalb der Geräte, daß sie vernachlässigbar sind. Auf diese Weise kann der meist kritische Teil der Anlage die Folge der
dung die Schaltung darüber zu entscheiden hat, ob 45 Arbeiten bestimmen, wodurch erreicht wird, daß die einer Meldung eines äußeren Systems Folge geleistet Gesamtanlage die verfügbare Zeit sehr wirtschaftlich wird oder nicht. Diese Entscheidung ist auf dem
Dringlichkeitsrang des laufenden und des meldenden
Programms aufgebaut, während gemäß der älteren
einteilt.
Die gleichen Fragen treten ebenfalls bei der Regelung von simultanen industriellen Prozessen auf.
Schaltung die Entscheidung darüber, ob die Unter- 50 Zum Beispiel können für jede Meß- und Regelstelle brechung eingeleitet wird oder nicht, unabhängig die Meßergebnisse nur während kurzer Zeit zur Ver-
vom Dringlichkeitsrang des meldenden Programms ist, sondern von der Frage abhängt, ob das Hauptprogramm läuft oder schon vorher unterbrochen war.
fügung stehen.
Beim Einspeichern der Meßergebnisse wird dann auch hier von wesentlicher Eile die Rede sein. Das Die Ränge der Programme entscheiden nur, welche 55 Meß- und Regelverfahren wird nun beherrscht mit-Programme gewählt werden sollen, falls eine Unter- tels Teilprogrammen unterschiedlicher Priorität, wie
Lesen der Meßergebnisse, Datenverarbeitung, Ausgabe des Regelkommandos, also der Kommandos für das Regelsystem.
Falls während der Datenverarbeitung für das eine Verfahren Meßergebnisse des anderen eintreffen, werden diese Ergebnisse auf jeden Fall von der
brechung zulässig ist.
Der Zustand, daß zwei Meldungen zu gleicher Zeit vorliegen, wird verhältnismäßig oft eintreten. Es ist nämlich möglich, daß während der Durchführung eines Nebenprogramms, das selbst nicht unterbrochen werden darf, in einigem Zeitabstand zwei oder mehr andere äußere Systeme die Maschine anrufen. Sobald die Maschine das laufende Programm beRechenmaschine übernommen. Die Meß- und Regelorgane wirken als normale Eingabe- bzw. Ausgabe
endet hat und zum Hauptprogramm zurückkehren 65 geräte auf die Rechenmaschine ein.
will, findet sie zwei oder mehr neue Meldungen zu Die Schaltung von Fig. 1 bewerkstelligt alle
gleicher Zeit vor. Unterbrechungen auf technischem Wege. Es ist auch
Bei der erfindungsgemäßen Vorrichtung ist es ge- schon erwähnt worden, daß die notwendigen Unter-
509 660/406
brechungen manchmal mittels programmierter Aufträge verwirklicht werden können. Es ist auch möglich, den Erfindungsgedanken teils durch technische Mittel, teils durch Programmgestaltung zu verwirklichen. Es ist beispielsweise möglich, nur das Register VAC auf den Speicher zu übertragen und auf das erste Kommando des unterbrechenden Programms mit technischen Mitteln überzuspringen.
Eine andere Möglichkeit ist, die Inhalte des Registers des unterbrochenen Programms in Speicher- ίο adressen unterzubringen, die zum unterbrechenden Programm gehören, um sie am Ende dieses Programms· wiederherzustellen und zum unterbrochenen Programm mittels eines Sprungkommandos zurückzukehren. Auf jenem Weg wird die Rückkehr zum unterbrochenen Programm von der Vervollständigung des unterbrechenden Programms abhängen. Wenn jenes Programm nicht vervollständigt werden kann, so ist die Rückkehr ohne weiteres nicht möglich.
Durch Zuordnung der Adressen, in denen die Inhalte der Register des unterbrochenen Programms gespeichert werden, zu dem unterbrochenen Programm selbst wird es möglich, zum Programm mittels des Unferbrechungssystems zurückzukehren; eine Rückkehr ist stets so lange möglich, wie die Rechenmaschine arbeitet. Damit ist dem Programmgestalter anheimgestellt, die Freizeiten über die verfügbare Zeit auf irgendeine Weise, die er für sinnvoll hält, zu verteilen. "

Claims (9)

Patentansprüche:
1. Programmunterbrechungssystem für eine elektronische Rechenmaschine, das eine Anzahl von simultanen Aufgaben derart durchzuführen gestattet, daß jede Aufgabe unabhängig von den Merkmalen der anderen simultanen Aufgaben und denen von asynchronen äußeren Systemen, die den Aufgaben der Rechenmaschine zugeordnet sind, programmiert werden kann, dadurch gekennzeichnet, daß das Unterbrechungssystem so eingerichtet ist, daß es die Freizeit, welche die Differenz zwischen der im äußeren System zur Durchführung der Maschinenaufgabe verfügbaren und der für die Maschine zur Durchführung des zugehörigen Programms erforderlichen Zeit für jedes Programm über die verfügbare Zeit mittels elektronischer Schaltmittel derart verteilt, daß alle Programme rechtzeitig beendet werden, und daß das Unterbrechungssystem weiter derart ausgebildet ist, daß mindestens ein äußeres System mittels elektronischer Schalter ein Programm oder mehrere zu anderen äußeren Systemen gehörige Programme unterbrechen kann und sein zugehöriges Programm von mindestens einem anderen äußeren System unterbrochen werden kann.
2. Programmunterbrechimgssystem nach Anspruch 1, gekennzeichnet durch die' Ausrüstung mit einer Steueranordnung (//, Fig. la) zur Verteilung der Freizeiten . über die verfügbaren Zeiten.
3. Programmunterbrechungssystem nach Anspruch 2, gekennzeichnet durch einen Kippschalter (/, /', F i g. 1 b), der eine Unterbrechung einleitet, sobald die Durchführung eines Programms mit einer Priorität höher als der des zur. Durchführung stehenden Programms möglich ist.
4. Programmunterbrechungssystem nach An^ sprach 1 bis 3, gekennzeichnet durch elektronische Schaltmittel (FA, Fi g. Ib), die die Adressen, in denen die Registerinhalte eines unterbrochenen Programms gespeichert werden, dem Programm zuordnen, zu dem sie gehörenv und die eine Wiederkehr zum unterbrochenen Programm mittels des Unterbrechungssystems ermöglichen. ■··'" · ■ ■
5. Programmunterbrechungssystem nach Anspruch 1 bis 4, gekennzeichnet durch eine Zählerschaltung (H, Fig. Ib), die die Reihenordnung der notwendigen Programmschritte festlegt, um zu bestimmen, welches Programm durchgeführt werden soll, um. die Registerinhalte des unterbrochenen Programms aus- und einzuspeichern. ■
6. Programmunterbrechungssystem nach Anspruch 4 oder 5, gekennzeichnet durch einen elektronischen Schalter (F, F', F i g. 1 b), der eine Unterbrechung einleitet, falls das Steuerwerk der Rechenmaschine die Durchführung eines Programms stoppt.
7. Programmunterbreehungssystem nach Ansprach 6, gekennzeichnet durch elektronische Schalter(S, Fig. la), die dem äußeren, zum Programm zugehörigen System wahlweise Signale zuführen, die angeben, daß das zugehörige Programm durch innere Ursachen abgestoppt ist.
8. Programmunterbrechungssystem nach Anspruch 6, gekennzeichnet durch elektronische Schalter (K, Fig. la), die dem äußeren, zum Programm zugehörigen System wahlweise Signale zuführen, die angeben, daß das zugehörige Programm mittels eines Programmbefehls abgestoppt ist.
9. Programmunterbrechungssystem nach Anspruch 1 bis 8, dadurch gekennzeichnet, daß ein Register, das eine kleinere Anzahl von Stellen als das Maschinenwort umfaßt, ζ. Β. das Register (FA, Fig. Ib), das die Information enthält, bei welcher Speicheradresse der nächste Auftrag gespeichert wird, mit einer Anzahl von Maschinenregistern, die eine einzige oder nur wenige Stellen aufweisen, kombiniert ist, so daß ihr kombinierter Inhalt in einem einzigen Schritt auf eine einzige Speicheradresse übertragbar oder durch den Inhalt einer Speicheradresse ersetzbar ist.
Hierzu 2 Blatt Zeichnungen
509 660/406 8.65 © Bundesdruckerei Berlin
DEN16905A 1958-06-30 1959-06-27 Programmunterbrechungssystem fuer eine elektronische Rechenmaschine Pending DE1200581B (de)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
NL229160 1958-06-30

Publications (1)

Publication Number Publication Date
DE1200581B true DE1200581B (de) 1965-09-09

Family

ID=19751265

Family Applications (1)

Application Number Title Priority Date Filing Date
DEN16905A Pending DE1200581B (de) 1958-06-30 1959-06-27 Programmunterbrechungssystem fuer eine elektronische Rechenmaschine

Country Status (4)

Country Link
US (1) US3079082A (de)
DE (1) DE1200581B (de)
GB (1) GB928444A (de)
NL (1) NL229160A (de)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE1913059A1 (de) * 1968-03-15 1969-10-02 Burroughs Corp Verbesserte Programmunterbrechungseinrichtung fuer eine Datenverarbeitungsanlage in Baukastenweise

Families Citing this family (29)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
NL248274A (de) * 1959-02-16
NL257034A (de) * 1959-11-05 1900-01-01
US3219976A (en) * 1960-02-15 1965-11-23 Gen Electric Data processing system
US3201760A (en) * 1960-02-17 1965-08-17 Honeywell Inc Information handling apparatus
GB986103A (en) * 1960-06-30 1965-03-17 Nat Res Dev Improvements in or relating to electronic digital computing machines
NL273031A (de) * 1960-12-30
US3252144A (en) * 1960-12-30 1966-05-17 Ibm Data processing device
US3200380A (en) * 1961-02-16 1965-08-10 Burroughs Corp Data processing system
US3284776A (en) * 1961-06-08 1966-11-08 Decca Ltd Data processing apparatus
US3221309A (en) * 1961-08-10 1965-11-30 Scam Instr Corp Priority interrupt monitoring system
NL283852A (de) * 1961-10-06
US3251040A (en) * 1961-12-01 1966-05-10 Sperry Rand Corp Computer input-output system
BE626951A (de) * 1962-01-22
NL294820A (de) * 1962-07-03
US3289168A (en) * 1962-07-31 1966-11-29 Ibm Interrupt control system
US3245047A (en) * 1962-09-19 1966-04-05 Ibm Selective data transfer apparatus
US3286236A (en) * 1962-10-22 1966-11-15 Burroughs Corp Electronic digital computer with automatic interrupt control
US3274561A (en) * 1962-11-30 1966-09-20 Burroughs Corp Data processor input/output control system
US3293610A (en) * 1963-01-03 1966-12-20 Bunker Ramo Interrupt logic system for computers
US3309672A (en) * 1963-01-04 1967-03-14 Sylvania Electric Prod Electronic computer interrupt system
GB1063296A (en) * 1963-05-31 1967-03-30 Automatic Telephone & Elect Improvements in or relating to data handling systems
US3302181A (en) * 1963-06-17 1967-01-31 Gen Electric Digital input-output buffer for computerized systems
US3303475A (en) * 1963-11-29 1967-02-07 Ibm Control system
US3290658A (en) * 1963-12-11 1966-12-06 Rca Corp Electronic computer with interrupt facility
NL6500562A (de) * 1965-01-16 1966-07-18
US3373408A (en) * 1965-04-16 1968-03-12 Rca Corp Computer capable of switching between programs without storage and retrieval of the contents of operation registers
US3676852A (en) * 1970-07-20 1972-07-11 Ibm Multiple program digital computer
US5051962A (en) * 1972-05-04 1991-09-24 Schlumberger Technology Corporation Computerized truck instrumentation system
US4152761A (en) * 1976-07-28 1979-05-01 Intel Corporation Multi-task digital processor employing a priority

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
BE490003A (de) * 1948-07-09
US2636672A (en) * 1949-01-19 1953-04-28 Ibm Selective sequence electronic calculator

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE1913059A1 (de) * 1968-03-15 1969-10-02 Burroughs Corp Verbesserte Programmunterbrechungseinrichtung fuer eine Datenverarbeitungsanlage in Baukastenweise

Also Published As

Publication number Publication date
GB928444A (en) 1963-06-12
NL229160A (de)
US3079082A (en) 1963-02-26

Similar Documents

Publication Publication Date Title
DE1200581B (de) Programmunterbrechungssystem fuer eine elektronische Rechenmaschine
DE2251876C3 (de) Elektronische Datenverarbeitungsanlage
DE1178623C2 (de) Programmgesteuerte datenverarbeitende Maschine
DE3889578T2 (de) Vorrichtung zur Sicherung und Rückspeicherung einer Registerinformation.
DE1524209B2 (de) Programmgesteuerte datenverarbeitungsanlage
EP1146432A2 (de) Umkonfigurierungs-Verfahren für programmierbare Bausteine während der Laufzeit
DE2054068A1 (de) Mit Programmverschachtelung arbei tendes Datenverarbeitungssystem zur gleichzeitigen Verarbeitung mehrerer Programme
DE3500804A1 (de) Unterbrechungssteuerkreis
DE2928488A1 (de) Speicher-subsystem
DE1280595B (de) Anordnung zur Loesung eines klammerfreien mathematischen Ausdruckes
DE1269394B (de) Schaltungsanordnung zur Bestimmung des Vorrangsverhaeltnisses zwischen mehreren Eingangsgroessen fuer programmgesteuerte Datenverarbeitungssysteme
EP0764906A2 (de) Verfahren zum Betreiben eines durch ein Realzeit-Betriebssystem gesteuerten Realzeit-Computersystems
DE2164793A1 (de) Verfahren und Datenverarbeitungsanlage zur Steuerung einer Vielzahl von Eingabe/ Ausgabe-Einheiten mittels eine Zentraleinheit
DE2101949A1 (de) Verfahren zum Schutz von Datengruppen in einer Multiprocessing-Datenverarbeitungsanlage
DE1115488B (de) Datenverarbeitungssystem
DE1191145B (de) Elektronische Zifferrechenmaschine
DE2120289A1 (de) Gesteuerte Pause in einer Datenverarbeitungsanlage
DE2245284A1 (de) Datenverarbeitungsanlage
DE2403669C3 (de) SpezialComputer
DE1774421B1 (de) Mehrprogramm datenverarbeitungsanlage
DE3854859T2 (de) Unterbrechungsabwicklung in einem parallelen Datenverarbeitungssystem
DE1212748B (de) Datenverarbeitende Maschine mit Programmunterbrechung
DE2642251A1 (de) Steuerungseinrichtung und betriebsverfahren fuer eine rechnergefuehrte steuerung bei einer numerisch gesteuerten maschine, beispielsweise einer werkzeugmaschine
DE2507405A1 (de) Verfahren und anordnung zum synchronisieren der tasks in peripheriegeraeten in einer datenverarbeitungsanlage
DE3688506T2 (de) Datenverarbeitungsanlage.