-
Verfahren zur schnellen Ausführung von Unterbrechungen
-
nach Erkennen einer Unterbrechungsanforderung Die Erfindung betrifft
ein Verfahren gemäß 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 + 0,05 mm sein darf. in dieser Gesamttoleranz von maximal t 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 50cis der Gesamttoleranz. Um den Versatz
der Matrixdruckpunkte zueinander innerhalb einer Druckspalte 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 Tolranz 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.
-
links- 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/uns 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 Ret.tungs-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 mitIaktscheibe, 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 Unterbrechungsaus fü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
Druckwerks 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
UMX, ein Umlaufzähler UZ, ein Unterbrechungsregister UR, ein Programmregister PR,
ein Datenregister DR, 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 0 bis 7 bildet.
-
An dem Unterbrechungsmultiplexer 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 werdende Eingänge des Unterbrechungsmultiplexers
UMX zyklisch nach anliegenden Unterbrechungsanforderungen abgesucht. Liegt eine
Urferbrechungsanforderung 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 Datenregister DR sind in acht Ebenen Daten 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 der Datentransfer
ausgeführt.
-
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 Pl 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 U1 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 Pl
des Statusregisters S auf 1 gesetzt und somit der weitere Suchvorgang nach dem entsprechenden
Bit gesperrt.
-
Beim Uberlauf 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 Überlauf von
der Adresse 7 zur Adresse 0 die Kippstufe P1 auf Null zurückge setzt 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 ein Datenwort Äm Datenregister DR adressiert. Das im Unterbrechungsregister
UR gefundene U-Bit wird gelöscht, und durch Rückschreiben in die gleiche Ebene des
Programmregisters PR durch eie 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 U1 und P1 des Statusregisters S bleiben solange
in dem Zustand ~U-Bit gefunden, stop, warten auf Quittung" (U1=1 oder U1 und Pol=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 i 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 Ul 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 Uberlauf des Umlaufzählers UZ von der Adresse 7 zur Adresse 0 wird auch
die Kippstufe P1 auf Null zurückgesetzt.
-
Jetzt ist die Suche nach U- und P-Bits freigegeben.
-
Wenn der Umlauzä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 für die Zeit des Datentransfers angehalten, und der Bus
B freigeschaltet. Dies geschieht 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 Steuerungspro gramm
im Porgrammspeicher PS wird aus dem Datenregister DR ein Datenwort aus der Ebene
auf den Bus B gegeben, die der Ebene entspricht, in der das U-Bit im Unterbrechungsregister
UR gefunden wurde, und der Datentransfer durchgefü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 Urr$rbrechung gestartet.
-
Bei einem entsprechenden Steuerungsprogramm im Programm speicher PS
können auch Datenworte vom Bus B in das Datenregister DR geschrieben 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 3earbeitung der Unterbrechung 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 Unterbrechungsregister 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 Datenworte im Datenregister DR adressieren.
-
4 Patentansprüche 1 Figur