-
Verfahren zur schnellen Ausführung von#Unterbrechungen
-
nach Erkennen einer Unterbrechungsanforderung Die Erfindung betrifft
ein Verfahren temäß dem Oberbegriff des Patentanspruches 1, und eine Schaltungsanordnung
zur Durchführung des Verfahrens.
-
Prozessoren werden u.a. zur Steuerung von Schreib- und Druckwerken
verwendet. Eine wesentliche Forderung, die an neuere Schreib- und Druckwerke gestellt
wird, ist eine hohe Schreibgeschwindigkeit. Dadurch werden an den Prozessor erhebliche
Ansteuerprobleme für die als Schreib- und Druckwerke eingesetzten Einrichtungen
gestellt. Als Beispiel sei hier auf elektromechanische Wandler wie Matrixdruckköpfe,
Schrittmotore u.ä. hingewiesen. Enthält das Schreibwerk z.B. einen Matrixdruckkopf,
mit dem die Zeichen in einer Punktmatrix in Form eines Punktrasters abgedruckt werden,
so beträgt bei einer Schreibgeschwindigkeit von 800 Zeichen pro Sekunde und einem
Druckkonzept, nach dem ein Zeichen in einer Matrix mit 14 Druckspalten und 16 Punkten
pro Druckspalte darstellbar ist, der zeitliche Abstand der Druckspalten nur etwa
90/us. Um ein optisch gutes Schriftbild zu erhalten, wird gefordert, daß der Versatz
der Matrixdruckpunkte zueinander in einer Druckspalte eines Zeichens auf dem Papier
nicht größer als f 0,05 mm sein darf. In dieser Gesamttoleranz von maximal 0,05
mm sind 3 Teiltoleranzen enthalten, die von der Mechanik, von dem Verstärker und
von der Unterbrechungsausführung des Prozessors herrühren. Der auf diese Unterbrechungsausführung
zurückzuführende Toleranzteil beträgt etwa 50% der Gesamttoleranz. Um den Versatz
der Natrixdruckpunkte zueinander innerhalb einer Druck spalte bei einer zulässigen
Gesamttoleranz von + 0,05 mm auf dem Kro 1 Obh /28.9.1981
Papier
nicht zu überschreiten, muß bei dem angegebenen Beispiel der Abdruck eines Matrixdruckpunktes
innerhalb einer zeitlichen Tokranz von maximal 25/us erfolgt sein.
-
Das bedeutet, daß die Unterbrechungsausführung, d.h. der Datentransfer,
nach Erkennen einer Unterbrechungsanforderung durch den Prozessor also in einer
Zeitspanne von etwa 12/us pro Druckspalte erfolgen muß. Innerhalb dieser Zeitspanne
können jederzeit mehrere Unterbrechungsanforderungen auftreten. Diese können z.B.
einen Motorimpuls, einen Impuls für die Ansteuerung des Druckkopfes oder eine Bewegung
des Wagens, mit dem der Schreibkopf entlang dem Aufeichnungsträger bewegt wird und
auch Schnittstellenbedingungen betreffen.
-
Weiterhin müssen auch verschiedene Schriftarten, z.B.
-
liirks und rechtsgeneigte bidirektionale Schrift, Breitschrift, Flächendruck,
Schmalschrift, Proportionalschrift und ähnl. mit hoher Schreibgeschwindigkeit möglich
sein. Zur Realisierung alldieser Schriftarten ist es erforderlich, die Matrixdruckpunkte
auch zwischen den durch das Druckkonzept vorgegebenen Druckspalten abzudrucken.
Die Anforderungen an eine sehr schnelle Ausführung der Unterbrechung nach Erkennung
der Unterbrechungsanforderung werden damit weiter erhöht. Beispielsweise werden
zum Abdruck einer links- oder rechtsgeneigten bidirektionalen Schrift mit einem
Matrixdruckkopf mit 14 Druckspalten pro Zeichen, 14 zusätzliche Zwischenspalten
eingeschoben, wodurch sich die Zeitspanne für die Unterbrechungsausführung durch
den Prozessor auf etwa 6/us reduziert.
-
Bei herkömmlichen Prozessoren ist nach der Erkennung einer Unterbrechungsanforderung
eine umfangreiche Rettungsroutine verschiedener Steuerparameter notwendig.
-
Dadurch entsteht ein erheblicher Zeitaufwand zwischen
Erkennung
einer Unterbrechungsanforderung und Ausführung der Unterbrechung, der in Abhängigkeit
von der Art der Unterbrechung im laufenden Programm zeitlich schwanken kann. Für
den sog. Aussprung aus dem Hauptprogramm und den Rücksprung in das Hauptprogramm
mit den üblichen Rettungs-und Rückladeroutinen relevanter Steuerparameter werden
etwa 40/us benötigt.
-
Herkömmliche Prozessoren sind deshalb aufgrund ihres Funktionsaufbaus
nicht in der Lage, die erforderlichen Unterbrechungen innerhalb solcher geringen
zeitlichen Abstände auszuführen, wie sie bei Schreibgeschwindigkeiten in der angegebenen
Größenordnung auftreten. Das führt dazu, daß die Ansteuerung der einzelnen Aggregate
des Schreibwerks, wie z.B. Matrixdruckköpfe, Schrittmotore mit verschiedener Phasenzahl,
Gleichstrommotore mitT#ktscheibe, parallele oder serielle Schnittstellen, also nicht
zeitgerecht erfolgt. Eine zeitgerechte Ansteuerung bedeutet, daß die Unterbrechung
durch den Prozessor in einer Zeitspanne von 6/us nach der Unterbrechungsanforderung
ausgeführt sein muß. Nur dann ist sichergestellt, daß ein optisch gutes Schriftbild
erreicht wird.
-
Bisher ist eine schnelle Unterbrechungsausführung durch herkömmliche
Prozessoren nur dann möglich, wenn sie parallel auf mehrere Prozessoren verteilt
wird. Der damit verbundene-Aufwand ist jedoch beträchlich.
-
Der Erfindung liegt die Aufgabe zugrunde, ein Verfahren sowie eine
zur Durchführung des erfindungsgemäßen Verfahrens vorteilhafte Schaltungsanordnung
anzugeben, mit dem es einem Prozessor möglich ist, Unterbrechungen schnell, d.h.
unter Einhaltung der oben angegebenen Zeitbedingungen nach einer Unterbrechungsanforderung
auszuführen.
-
Diese Aufgabe wird erfindungsgemäß durch die im kennzeichnenden Teil
des Patentanspruches 1 angegebenen Maßnahmen gelöst.
-
Eine besonders vorteilhafte Schaltungsanordnung zur Durchführung des
erfindungsgemäßen Verfahrens ist im Patentanspruch 2 gekennzeichnet. Damit wird
ermöglicht, ein laufendes, aktuelles Programm für die Ausführung einer Unterbrechung
für nur maximal 5/us anzuhalten. Dies ist die Zeitspanne von der Erkennung der Unterbrechungsanforderung
bis zum Ende des Datentransfers. Die einzelnen Einrichtungen eines Schreib- und
Druckwerkes können nunmehr auch bei hohen Schreibgeschwindigkeiten zeitgerecht angesteuert
werden, d.h. ein Datentransfer kann schnell und zeitgerecht ausgeführt werden.
-
Die Erfindung wird im folgenden anhand eines in der Zeichnung dargestellten
Ausführungsbeispieles näher beschrieben.
-
Die Zeichnung zeigt einen Prozessor P, von dem nur die zum Verständnis
der Erfindung notwendigen Bauelemente dargestellt sind. Im einzelnen enthält der
Prozessor P ein Steuerwerk ST und einen externen Programmspeicher EPS.
-
Zur Durchführung der Erfindung sind ein Unterbrechungs-Multiplexer
USK, ein Umlaufzähler UZ, ein Unterbrechungsregister UR, ein Programmregister PR,
ein Instruktions-' register IR, ein Programmspeicher PS, der das Steuerprogramm
für die Schaltungsanordnung enthält, und ein Statusregister S vorgesehen. Das Statusregister
S besteht aus zwei Kippstufen U1 und Pl. Diese Schaltungsteile sind über einen Bus
B und durch verschiedene Steuerleitungen verbunden.
-
Zunächst werden die Funktionen der einzelnen Schaltungsteile erläutert.
-
Der Umlaufzähler UZ wird vom Systemtakt des Prozessors P mit einer
vorgegebenen Taktfrequenz angesteuert. Der Umlaufzähler UZ ist ein 3-Bitzähler,
der zyklisch die Adressen O bis 7 bildet.
-
An dem Unterbrechüngsmultiplexer UMX sind an acht Eingängen Leitungen
für Unterbrechungsanforderungen angeschaltet.
-
Das Unterbrechungsregister UR und das Programmregister PR enthalten
acht Ebenen, die nach fallenden Prioritäten von 0 bis 7 angeordnet sind.
-
Durch das im externen Programmspeicher EPS stehende Programm werden
Bits, sog. P-Bits im Programmregister PR gesetzt und gelöscht.
-
Vom Umlaufzähler UZ werde die Eingänge des Unterbrechungsmultiplexers
UMX zyklisch nach anliegenden Unterbrechungsanforderungen abgesucht. Liegt eine
Uherbrechungsanforderung an einem der Eingänge an, so wird sie unter einer bestimmten,
im Umlaufzähler UZ stehenden Adresse gefunden. In das Unterbrechungsregister UR
wird nun ein Bit, ein sog. U-Bit in die Ebene geschrieben, die der Adresse entspricht.
-
Der Umlaufzähler UZ sucht auch zyklisch die Ebenen des Unterbrechungsregisters
UR und des Programmregisters PR nach gesetzten U- bzw. P-Bits ab.
-
Im Instruktionsregister IR sind in acht Ebenen Instruktionen gespeichert
bzw. speicherbar.
-
Das Statusregister S zeigt verschiedene Zustände des Suchvorganges
an. Diese werden anschließend im Zusammenhang mit verschiedenen Ergebnissen des
Suchvorganges beschrieben.
-
Im folgenden wird die Wirkungsweise der Schaltungsanordnung an Hand
verschiedener Kombinationen von Programmabläufen und Unterbrechungsanforderungen
erläutert.
-
Um eine Unterbrechung ausfzuführen, wird das laufende Programm zwischen
zwei Programmschritten angehalten und der Bus B freigeschaltet. Dann wird eine zusätzliche
Instruktion zur Ausführung des Datentransfers in den Prozessor P eingelesen.
-
Zu Beginn eines jeden Programmablaufs werden durch einen Resetbefehl
alle in dem Unterbrechungsregister UR und dem Programmregister PR stehenden Bits
gelöscht, und es werden auch keine Bits eingeschrieben. Gleichzeitig werden die
beiden Kippstufen U1 und P1 des Statusregisters S auf Null gesetzt.
-
Vom Steuerungsprogramm des Programmspeichers PS wird in die Ebene
mit der höchsten Priorität (Prioritätsebene 0), des Programmregisters PR ein P-Bit
geschrieben, damit das Programm gestartet werden kann. Nach Wegnahme des Resetbefehls
zeigt das Statusregister S durch die beiden auf Null gesetzten Kippstufen Ul und
P1 den Zustand "U-Bit und P-Bit suchen" an.
-
Wird vom Umlaufzähler UZ im Unterbrechungsregister UR oder im Programmregister
PR ein U- oder ein P-Bit gefunden, so wird die entsprechende Kippstufe U1 oder P1
des Statusregisters S auf 1 gesetzt und somit der weitere Suchvorgang nach dem entsprechenden
Bit gesperrt.
-
Beim mDerlauf des Umlaufzählers UZ von der Adresse 7 nach der Adresse
0 wird die Kippstufe Pl des Statusregisters S, wenn nicht vorher ein U-Bit im Unterbrechungsregister
UR gefunden wurde, auf Null gesetzt und der Suchvorgang nach U- und P-Bits beginnt
wieder ab der Adresse Null. Wird vorher ein U-Bit im Unterbrechungsregister UR gefunden,
so beginnt der Suchvorgang ab der Adresse Null erst nach dem Quittungsimpuls aus
dem Steurwerk ST, d.h. der Quittungsimpuls muß vor dem Überlauf des Umlaufzählers
UZ erfolgt sein.
-
Durch das erste, vom Umlaufzähler UZ aber der Ebene Null im Programmregister
PR gefundene P-Bit, wird im Prozessor P die Bearbeitung eines laufenden Programmes
fortgesetzt.
-
Wenn vom Umlaufzähler UZ bei einem weiteren Vorwärtszählen bis zur
Adresse 7 kein U-Bit im Unterbrechungsregister gefunden wird, so wird beim Uberlauf
von der Adresse 7 zur Adresse 0 die Kippstufe P1 auf Null zurückgesetzt. Jetzt ist
wieder die Suche nach U- und P-Bits freigegeben.
-
Wenn vom Umlaufzähler UZdurch weiteres Vorwärtszählen ab der Adresse,
unter der im Programmregister PR bereits ein P-Bit gefunden wurde, bis zur Adresse
7 ein U-Bit im Unterbrechungsregister UR gefunden wird, so wird durch die im Umlaufzähler
UZ stehende Adresse eine Instruktion im Instruktionsregister IR adressiert. Das
im Unterbrechungsregister UR gefundene U-Bit wird gelöscht, und durch Rückschreiben
in die gleiche Ebene des Programmregisters PR durch eig P-Bit ersetzt. Die Kippstufe
U1 des Statusregisters/wird gleichzeitig dabei auf 1 gesetzt. (Die Kippstufe P1
ist schon auf 1 gesetzt). Das Statusregister S zeigt jetzt den Zustand U-Bit gefunden,
stop, warten auf Quittung" an.
-
Der gleiche Vorgang läuft ab, wenn durch das Vorwärtszählen des Umlaufzählers
UZ im Unterbrechungsregister UR ein U-Bit gefunden wird, ohne daß vorher im Programmregister
PR ein P-Bit gefunden wurde. Das Statusregister S zeigt auch dann den Zustand "U-Bit
gefunden, stop, warten auf Quittung" an, wenn nur die Kippstufe U1 auf 1 gesetzt
ist.
-
Die beiden Kippstufen Ul und P1 des Statusregisters S bleiben solange
in dem Zustand "U-Bit gefunden, stop, warten auf Quittung" (kl=1 oder U1 und Po=1),
bis der Quittungsimpuls vom Steuerwerk ST des Prozessors P ausgegeben wird.
-
Der Zustand U-Bit gefunden, stop, warten auf Quittung, wird auch bei
einem Überlauf des Umlaufzählers UZ von der Adresse 7 zur Adresse 0 vor dem Quittungsimpuls
nicht verlassen, d.h. die auf 1 gesetzte Kippstufe P1 wird vorher nicht auf Null
gesetzt.
-
Wenn ein U-Bit im Unterbrechungsregister UR und ein P-Bit im Programmregister
PR gleichzeitig, d.h. wenn beide Bits vom Umlaufzähler UZ unter der gleichen Adresse
gefunden werden, dann hat das P-Bit die höhere Priorität.
-
Durch den Quittungsimpuls, der vom Steuerwerk ST des Prozessors ausgegeben
wird, und der das Ende der Abarbeitung einer Instruktion im Prozessor meldet, wird
die Kippstufe U1 im Statusregister S auf Null zurückgesetzt, wodurch der Suchvorgang
nach U-Bits ab der gerade im Umlaufzähler UZ stehenden Adresse wieder freigegeben
wird. Beim Überlauf des Umlaufzählers UZ von der Adresse 7 zur Adresse 0 wird auch
die Kippstufe Pl auf Null zurückgesetzt.
-
Jetzt ist die Suche nach U- und P-Bits freigegeb#en.
-
Wenn der Umlaufzähler UZ unter einer bestimmten Adresse ein U-Bit
im Unterbrechungsregister UR findet dann wird durch ein im Programmspeicher PS stehendes
Steuerungsprogramm über das Steuerwerk ST des Prozessors P die Bearbei-
tung
eines laufenden Programmes angehalten und der Bus B freigeschalteti Dies @ schieht
allerdings erst, wenn vom Steuerwerk ST ein Quittungsimpuls an das im Programmspeicher
PS stehende Steuerungsprogramm ausgegeben wurde, der das Ende der Abarbeitung eines
Programmschrittes meldet.
-
Vom Steuerungsprogramm im Programmspeicher PS wird nun aus dem Instruktionsregister
IR die Instruktion aus der Ebene auf den Bus B gegeben, und in den Prozessor P eingelesen,
die der Ebene entspricht, in der das U-Bit im Unterbrechungsregister UR gefundenwurde.
Durch diese Instruktion wird die Unterbrechung, d.h. der Datentransfer ausgeführt.
Gleichzeitig wird ein P-Bit in das Programmregister PR geschrieben, und zwar in
die Ebene, in der im Unterbrechungsregister UR das U-Bit gefunden wurde. Durch dieses
P-Bit wird, wenn es durch den Umlaufzähler UZ gefunden wird, im Prozessor P ein
Programm zur Bearbeitung der Unterbrechung gestartet.
-
Bei einem entsprechenden Steuerungsprogramm im Programm speicher PS
können auch Instruktionen vom Bus B in das Instruktionsregister IR geschrieben werden.
Das Instruktionsregister IR kann also beispielsweise mit Instruktionen aus dem externen
Programmspeicher EPS geladen werden.
-
Durch ein im Unterbrechungsregister UR gefundenes U-Bit wird die Unterbrechung,
d.h. der Datentransfer ausgeführt.
-
Durch das P-Bit, das in die Ebene des Programmregisters PR geschrieben
wurde, in der das U-Bit im Unterbrechungsregister UR gefunden wurde, wird ein Programm
zur Bearbeitung der Uitrbrechung im Prozessor P gestartet.
-
Die P-Bits im Programmregister PR werden in der Reihenfolge ihrer
Priorität abgearbeitet. Sind mehrere U-Bits im Unterbrechungsregister UR gesetzt,
so werden diese unabhängig von ihrer Reihenfolge abgearbeitet.
-
Die U- bzw. P-Bits werden unabhängig vom Zustand des Statusregisters
S im Unterbrechungsregister UR bzw. im Programmregister PR gesetzt.
-
Die Anzahl der Eingänge des Unterbrechungsmultiplexers UMX und dadurch
auch die Anzahl der Ebenen der Unterbrechungtregister UR und des Programmregisters
PR sowie der Adressumfang des Umlaufzählers UZ sind hier beispielsweise mit 8 angegeben.
Eine größere oder kleinen Anzahl ist natürlich ebenfalls durch die erfindungsgemäße
Schaltungsanordnung realisierbar.
-
Anstelle dieses sequentiell arbeitenden Ausführungsbeispieles ist
auch eine parallel arbeitende Schaltungsanordnung möglich. In dieser würden an den
Eingängen anliegende Unterbrechungsanforderungen gleichzeitig über eine aus Gattern
aufgebaute Logikschaltung die Instruktionen im Instruktionsregister IR adressieren.
-
4 Patentansprüche 1 Figur