-
Die
Erfindung betrifft einen Interrupt Controller für einen Mikroprozessor mit
mehreren zu mindestens einer Gruppe zusammengefassten Ereignisspeichern,
die jeweils einen Eingang für
ein Setz-Signal und einen Ausgang für ein den Zustand des Ereignisspeichers
wiedergebendes Ereignisspeichersignal aufweisen, wobei das Setz-Signal
eines Ereignisspeichers aktiv wird, wenn ein Aktivwerden eines diesem
Ereignisspeicher zugeordneten Ereignissignals erkannt wird, wobei
die Ereignisspeichersignale mit einem Interrupt-Signal für den Mikroprozessor verbunden
sind, wobei die Ereignisspeichersignale für den Mikroprozessor über einen
Datenbus lesend und schreibend zugänglich sind und wobei die Ereignisspeicher
jeweils einen Eingang für
ein Rücksetz-Signal
aufweisen.
-
Dieser
Interrupt Controller soll beispielsweise bei Geräten zur Aufzeichnung oder Wiedergabe von
Informationen auf einem optischen Informationsträger zum Einsatz kommen.
-
Interrupt
Controller führen
eine Unterbrechung des Programmablaufs eines Mikroprozessors herbei,
wenn bestimmte Ereignisse auftreten, so dass der Mikroprozessor
eine als Interrupt-Routine bezeichnete Programmroutine ausführen kann,
bevor der unterbrochene Programmablauf fortgesetzt wird. Das Auftreten
eines solchen Ereignisses wird dem Mikroprozessor in Form eines
Interrupt-Signals signalisiert, wenn das Aktivwerden eines entsprechenden
Ereignissignals erkannt wird. Je nach Verwendung bzw. Aufgabe des
Mikroprozessors kann jedem Ereignissignal bzw. Interrupt-Signal
eine eigene Interrupt-Routine zugeordnet sein. Es ist aber auch
möglich,
unterschiedlichen Ereignissignalen bzw. Interrupt-Signalen dieselbe
Interrupt-Routine zuzuordnen.
-
Es
sind außerdem
Interrupt Controller bekannt, mit denen einzelne Interrupt-Signale
gezielt aktiviert oder deaktiviert werden können. Da eine Unterbrechung
des Programmablaufs zeitweise unmöglich sein kann und das Interrupt-Signal
zu dem Zeitpunkt, an dem eine Unterbrechung wieder möglich ist,
bereits wieder inaktiv sein kann, wird das Aktivwerden eines Ereignissignals
im Allgemeinen so lange gespeichert, bis der Mikroprozessor die
zugeordnete Interrupt-Routine auch wirklich ausführt. Hierfür ist ein sogenannter Ereignisspeicher
vorgesehen, der gesetzt wird, wenn das Aktivwerden eines Ereignissignals – beispielsweise
durch Flankenerkennung – erkannt
wird, und der bei Ausführung
der zugeordneten Interrupt-Routine zurückgesetzt wird.
-
Das
Zurücksetzen
der Ereignisspeicher kann prinzipiell entweder durch den Mikroprozessor
selbst ohne Einfluss der Interrupt-Routine oder durch Programminstruktionen
der Interrupt-Routine ausgelöst werden.
-
Ein
Zurücksetzen
der Ereignisspeicher, das ausschließlich durch den Mikroprozessor
ohne Programmeinfluss erfolgt, ist im Allgemeinen nur möglich, wenn
jedem Interrupt-Signal eine eigene Interrupt-Routine zugeordnet
ist und vor dem Ereignisspeicher eine Möglichkeit zur Deaktivierung
des Interrupt-Signals angeordnet ist.
-
Typischerweise
ist die Möglichkeit
zur Deaktivierung des Interrupt-Signals aber hinter dem Ereignisspeicher
angeordnet, so dass es möglich
ist, auch Ereignisse zu bearbeiten, die während einer kurzzeitigen Deaktivierung
des Interrupt-Signals aufgetreten sind. Diese Anordnung erfordert
jedoch die Möglichkeit,
den Ereignisspeicher eines deaktivierten Interrupt-Signals vor der
erneuten Aktivierung wahlweise gezielt zurücksetzen zu können, um
z.B. im Falle einer langen Deaktivierung ein ungewolltes Auslösen einer
Unterbrechung durch ein weit zurückliegendes Ereignis
zu verhindern. Hierfür
ist eine Rücksetzmöglichkeit
durch Programmbefehle erforderlich.
-
Ein
Interrupt-Controller mit Mitteln zum Halten von Prioritäts-Informationen
zur Bestätigung
der erzeugten Interrupt-Anforderung nicht nur, wenn die Priorität der erzeugten
Interrupt-Anforderung höher als
die vorbestimmte Priorität
ist, sondern auch, wenn die Priorität der erzeugten Interrupt-Anforderung gleich
der vorbestimmten Priorität
ist, ist bereits in
EP-A-0
443 557 offenbart worden. Ob diese Schachtelungsfunktion
realisiert wird oder nicht, wird durch die in dem Flag festgelegte
Information gesteuert.
-
Wird
eine bestimmte Interrupt-Routine durch unterschiedliche Ereignisse
und damit durch unterschiedliche Interrupt-Signale aufgerufen, so
hat die Interrupt-Routine im Allgemeinen die Möglichkeit, festzustellen, welches
Ereignis oder welche Ereignisse die Interrupt-Routine ausgelöst haben.
Hierzu sind die Ereignisspeichersignale für den Mikroprozessor lesend
zugänglich.
Die Ereignisspeicher werden erst dann zurückgesetzt, wenn die Interrupt-Routine
den Zustand der Ereignisspeicher gelesen hat. Auch hierfür ist eine
Rücksetzmöglichkeit
durch Programmbefehle nötig.
-
In
der Praxis werden die Ereignisspeicher oftmals für den Zugriff durch den Mikroprozessor
in Gruppen zusammengefaßt,
um die Effektivität
zu verbessern. So werden beispielsweise bei einem Mikroprozessor
mit einer Datenbusbreite von 8 Bit, jeweils 8 Ereignisspeicher zu
einem 8 Bit- Wert zusammengefasst. Ein 8 Bit Prozessor kann also
auf maximal 8 Ereignisspeicher gleichzeitig zugreifen. Sind mehr als
8 Ereignisspeicher vorhanden, so muss ein solcher Prozessor in mehreren,
aufeinanderfolgenden Schritten auf Ereignisspeicher oder Gruppen
von Ereignisspeichern zugreifen.
-
Aus
der Praxis sind unterschiedliche Methoden für das Zurücksetzen der Ereignisspeicher
bekannt.
-
Eine
Möglichkeit
besteht darin, alle Ereignisspeicher einer Gruppe durch eine Rücksetzschaltung zurückzusetzen,
sobald der Mikroprozessor den Zustand der Gruppe gelesen hat. Mit
dieser Methode lassen sich einzelne Ereignisspeicher allerdings
nicht gezielt zurücksetzen.
Außerdem
erfordert sie eine sehr aufwendige Implementierung der Rücksetzschaltung,
um zu garantieren, dass nur diejenigen Ereignisspeicher zurückgesetzt
werden, die vom Mikroprozessor beim Lesen der Gruppe als aktiv erkannt worden
sind, da während
des Lesezugriffes des Mikroprozessors ein Interrupt-Signal der Gruppe
aktiv werden kann und sich somit der Zustand der Gruppe während des
Lesens verändert.
Wird ein Ereignisspeicher zurückgesetzt,
ohne dass der Mikroprozessor den Ereignisspeicher als aktiv erkannt
hat, so wird dieses Ereignis nicht bearbeitet und geht verloren.
-
Ebenfalls
bekannt ist es, alle Ereignisspeicher einer Gruppe oder aller Gruppen
durch einen Programmbefehl an Stelle einer Rücksetzschaltung zurückzusetzen,
wobei dieselben Probleme auftreten, wie im vorstehend genannten
Fall, insbesondere wenn während
des Lesens oder zwischen Lesen und Rücksetzen der Zustand der Gruppe
durch neue Ereignisse verändert
wird.
-
Desweiteren
ist es bekannt, dem Mikroprozessor sowohl Lese- als auch Schreibzugriff auf die Ereignisspeicher
zu ermöglichen.
Dadurch ist ein gezieltes Verändern,
insbesondere Zurücksetzen,
von einzelnen Ereignisspeichern möglich, auch wenn sie in einer
Gruppe zusammengefaßt
sind. Der Mikroprozessor liest den Zustand der Gruppe, verändert den
gelesenen Datenwert dahingehend, dass die zurückzusetzenden Ereignisspeicher
gelöscht
werden und schreibt den neuen Zustand auf die Gruppe zurück. Auch
bei dieser Methode können
Ereignisse unbearbeitet verloren gehen, wenn während des Lesens oder zwischen
Lesen und Schreiben der Zustand der Gruppe durch neue Ereignisse
verändert wird.
In diesem Fall erkennt der Mikroprozessor die Ereignisspeicher der
neuen Ereignisse beim Lesen noch als inaktiv und schreibt diesen
inaktiven Zustand auf sie zurück,
wodurch die Ereignisse verloren gehen.
-
Der
vorliegenden Erfindung liegt nun die Aufgabe zugrunde, einen Interrupt
Controller der eingangs genannten Art so zu konzipieren, dass die
Ereignisspeicher einzeln oder auch in Gruppen gezielt verändert werden
können,
ohne dass dabei Ereignisse unbeabsichtigt verloren gehen, so dass
sie nicht bearbeitet werden können.
-
Diese
Aufgabe wird mit den im unabhängigen
Patentanspruch 1 angegebenen Merkmalen gelöst. Vorteilhafte Ausgestaltungen
sind in den abhängigen
Patentansprüchen
angegeben.
-
Der
erfindungsgemäße Interrupt
Controller ist dadurch gekennzeichnet, dass das Rücksetz-Signal
eines bestimmten Ereignisspeichers einer Gruppe aktiv wird, wenn
der Mikroprozessor auf die Gruppe dieses Ereignisspeichers über ein
erstes Schreibsignal schreibend zugreift und gleichzeitig das diesem
Ereignisspeicher zugeordnete Einzelsignal des Mikroprozessors auf
dem Datenbus aktiv ist. Der erfindungsgemäße Interrupt Controller ermöglicht damit
ein gezieltes und sicheres Rücksetzen
der einzelnen Ereignisspeicher durch Programmbefehle.
-
In
einer vorteilhaften Realisierungsmöglichkeit des erfindungsgemäßen Interrupt
Controllers ergibt sich das Rücksetz-Signal
jedes Ereignisspeichers einer Gruppe als Ausgangssignal einer Logischen
UND-Verknüpfung,
die das dem jeweiligen Ereignisspeicher zugeordnete Einzelsignal
des Mikroprozessors auf dem Datenbus mit dem ersten Schreibsignal
verknüpft, über das
der Mikroprozessor auf die Ereignisspeicher dieser Gruppe zugreift.
-
Vorteilhafter
Weise wird jedem Ereignisspeicher als Einzelsignal des Mikroprozessors
dasselbe Bit eines Datenbytes zugeordnet, das dem Mikroprozessor
beim Lesezugriff auf die entsprechende Gruppe als Zustand des jeweiligen
Ereignisspeichers übergeben
wird.
-
In
einer vorteilhaften Weiterbildung des erfindungsgemäßen Interrupt
Controllers wird das Rücksetz-Signal
eines bestimmten Ereignisspeichers einer Gruppe zusätzlich auch dann
aktiv, wenn ein Interrupt-Quittierungssignal des Mikroprozessors
anzeigt, dass die diesem Ereignisspeicher zugeordnete Interrupt-Routine
ausgeführt
wird. Diese Ausführungsform
ermöglicht
ein gezieltes, sicheres Rücksetzen
von einzelnen Ereignisspeichern sowohl durch Programmbefehle als
auch durch Prozessorsignale.
-
In
diesem Fall ergibt sich das Rücksetz-Signal
jedes Ereignisspeichers einer Gruppe vorteilhafter Weise als Ausgangssignal
einer Logischen ODER-Verknüpfung,
die das entsprechende Interrupt-Quittierungssignal und das Ausgangssignal
der Logischen UND-Verknüpfung
verknüpft,
die wiederum das dem jeweiligen Ereignisspeicher zugeordnete Einzelsignal
des Mikroprozessors auf dem Datenbus mit dem ersten Schreibsignal
verknüpft, über das der
Mikroprozessor auf die Ereignisspeicher dieser Gruppe zugreift.
-
Von
besonderem Vorteil ist es, wenn der erfindungsgemäße Interrupt
Controller so konzipiert ist, dass dem Mikroprozessor jede Gruppe
von Ereignisspeichern unter zwei unterschiedlichen Speicheradressen
für den
Schreibzugriff zur Verfügung
steht, so dass der Mikroprozessor auf die Ereignisspeicher einer
Gruppe über
das erste Schreibsignal und ein zweites Schreibsignal schreibend
zugreifen kann.
-
In
diesem Fall können
die Ereignisspeicher nicht nur gezielt und sicher durch Programmbefehle zurückgesetzt
werden sondern auch gezielt und sicher gesetzt werden. Dazu ist
der erfindungsgemäße Interrupt
Controller vorteilhafter Weise so konzipiert, dass das Setz-Signal
eines bestimmten Ereignisspeichers aktiv wird, wenn der Mikroprozessor
auf die Gruppe dieses Ereignisspeichers über das zweite Schreibsignal
schreibend zugreift und gleichzeitig das diesem Ereignisspeicher
zugeordnete Einzelsignal des Mikroprozessors auf dem Datenbus aktiv
ist.
-
Bei
dieser Variante eines erfindungsgemäßen Interrupt Controllers ist
es von Vorteil, wenn sich das Setz-Signal jedes Ereignisspeichers
einer Gruppe als Ausgangssignal einer Logischen ODER-Verknüpfung ergibt,
die ein dem jeweiligen Ereignisspeicher zugeordnetes Ereignissignal
mit dem Ausgangssignal einer Logischen UND-Verknüpfung verknüpft, die wiederum das dem jeweiligen
Ereignisspeicher zugeordnete Einzelsignal des Mikroprozessors auf
dem Datenbus mit dem zweiten Schreibsignal verknüpft, über das der Mikroprozessor
auf die Ereignisspeicher dieser Gruppe zugreift.
-
Besonders
vorteilhaft in diesem Zusammenhang ist es, wenn die zweite Speicheradresse,
unter der der Mikroprozessor schreibend auf eine Gruppe zugreift,
mit der Speicheradresse identisch ist, unter der er lesend auf diese
Gruppe zugreift, da dann die bei vielen Mikroprozessoren bekannten "read-modify-write" Anweisungen verwendet
werden können.
-
In
einer weiteren vorteilhaften Ausführungsform des erfindungsgemäßen Interrupt
Controllers, die neben dem gezielten, sicheren Rücksetzen von einzelnen Ereignisspeichern
einen Schreibzugriff durch Programmbefehle ermöglicht, wird ein bestimmter
Ereignisspeicher gesetzt, wenn der Mikroprozessor über das
zweite Schreibsignal auf die Gruppe dieses Ereignisspeichers schreibend
zugreift und das diesem Ereignisspeicher zugeordnete Einzelsignal
auf dem Datenbus aktiv ist. Ein bestimmter Ereignisspeicher wird
hier auch dann zurückgesetzt, wenn
der Mikroprozessor über
das zweite Schreibsignal auf die Gruppe dieses Ereignisspeichers
schreibend zugreift und das diesem Ereignisspeicher zugeordnete
Einzelsignal auf dem Datenbus inaktiv ist. Grundsätzlich kann
das Verändern,
Rücksetzen
und Setzen der Ereignisspeicher je nach Schaltung asynchron oder
getaktet erfolgen.
-
Grundsätzlich gibt
es unterschiedliche Möglichkeiten,
die Lehre der vorliegenden Erfindung in vorteilhafter Weise auszugestalten
und weiterzubilden. Dazu wird einerseits auf die dem Patentanspruch
1 nachgeordneten Ansprüche
und andererseits auf die nachfolgende Erläuterung von sieben Ausführungsbeispielen
der Erfindung anhand der Zeichnungen 2 bis 8 – verwiesen.
Zur Verdeutlichung des Erfindungsgedankens wird außerdem noch
anhand von 1 der Stand der Technik erläutert, von
dem die Erfindung ausgeht.
-
Die
Erfindung wird nachfolgend anhand von Zeichnungen näher erläutert.
-
Es
zeigen:
-
1 das
Prinzipschaltbild eines Interrupt Controllers aus dem Stand der
Technik,
-
2 das
Prinzipschaltbild eines erfindungsgemäßen Interrupt Controllers,
der ein gezieltes Rücksetzen
der Ereignisspeicher durch Schreibaktion des Mikroprozessors ermöglicht,
-
3 das
Prinzipschaltbild eines erfindungsgemäßen Interrupt Controllers,
der ein gezieltes Rücksetzen
der Ereignisspeicher sowohl durch Schreibaktion des Mikroprozessors
als auch durch Interrupt-Quittierungssignale des Mikroprozessors ermöglicht,
-
4 das
Prinzipschaltbild eines erfindungsgemäßen Interrupt Controllers,
der sowohl ein gezieltes Rücksetzen
als auch ein gezieltes Setzen der Ereignisspeicher durch Schreibaktion
des Mikroprozessors ermöglicht,
-
5 das
Prinzipschaltbild eines erfindungsgemäßen Interrupt Controllers,
der ein gezieltes Rücksetzen
der Ereignisspeicher sowohl durch Schreibaktion des Mikroprozessors
als auch durch Interrupt-Quittierungssignale des Mikroprozessors ermöglicht und
ein gezieltes Setzen der Ereignisspeicher durch Schreibaktion des
Mikroprozessors,
-
6 das
Prinzipschaltbild eines erfindungsgemäßen Interrupt Controllers,
der ein gezieltes Rücksetzen
der Ereignisspeicher durch Schreibaktion des Mikroprozessors ermöglicht und ein
asynchrones Verändern
der Ereignisspeicher durch Schreibaktion des Mikroprozessors,
-
7 das
Prinzipschaltbild eines erfindungsgemäßen Interrupt Controllers,
der ein gezieltes Rücksetzen
der Ereignisspeicher sowohl durch Schreibaktion des Mikroprozessors
als auch durch Interrupt-Quittierungssignale des Mikroprozessors ermöglicht und
ein asynchrones Verändern
der Ereignisspeicher durch Schreibaktion des Mikroprozessors, und
-
8 das
Prinzipschaltbild eines erfindungsgemäßen Interrupt Controllers,
der ein gezieltes Rücksetzen
der Ereignisspeicher sowohl durch Schreibaktion des Mikroprozessors
als auch durch Interrupt-Quittierungssignale des Mikroprozessors ermöglicht und
ein getaktetes Verändern
der Ereignisspeicher durch Schreibaktion des Mikroprozessors.
-
In
den Figuren sind gleiche Schaltungselemente sowie Signale mit einheitlichen
Bezugszeichen versehen.
-
Der
aus dem Stand der Technik bekannte und in 1 dargestellte
Interrupt Controller für
einen Mikroprozessor 30 umfasst hier beispielhaft zwei Ereignisspeicher 40 und 41,
die zu einer Gruppe zusammengefasst sind. Jeder Ereignisspeicher 40 und 41 weist
einen Eingang für
ein Setz-Signal 5, einen Eingang für ein Datentaktsignal 13 und
ein Dateneingangssignal 14 sowie einen Ausgang für ein Ereignisspeichersignal 4 auf,
das den Zustand des jeweiligen Ereignisspeichers 40 oder 41 wiedergibt.
Das Setz-Signal 5 eines Ereignisspeichers 40 oder 41 wird
dann aktiv, wenn ein Aktivwerden eines diesem Ereignisspeicher 40 oder 41 zugeordneten
Ereignissignals 8 von einem entsprechenden Flankenerkennungsblock 50 erkannt
wird. In diesem Falle wird ein Ereignispulssignal 7 vom
Flankenerkennungsblock 50 als Setz-Signal 5 an
den Ereignisspeicher 40 oder 41 übertragen.
Hinter jedem der Ereignisspeicher 40 und 41 ist
jeweils eine Interrupt-Aktivierung
in Form eines Logischen UND Verknüpfungsblocks 60 angeordnet,
der ein Aktivierungssignal 6 für die Unterbrechungsereignisse
mit dem jeweiligen Ereignisspeichersignal 4 verknüpft. Die
Ausgangssignale der Logischen UND Verknüpfungsblöcke 60 werden als
Interrupt-Signale 9 bezeichnet,
die im hier dargestellten Beispiel über einen Logischen ODER Verknüpfungsblock 70 auf
einen Interrupt-Eingang 1 des Mikroprozessors 30 geführt werden.
-
Wenn
ein Lesesignal 11 des Mikroprozessors 30 aktiv
ist, kann der Mikroprozessor 30 über einen Datenbus 10 die
Ereignisspeichersignale 4 der Ereignisspeicher 40 und 41 von
einem Leseregister 80 abfragen. Außerdem hat der Mikroprozessor 30 Schreibzugriff
auf die Ereignisspeicher 40 und 41, wenn ein Schreibsignal 15 des
Mikroprozessors 30 aktiv ist. Getaktet durch das Schreibsignal 15,
das am Ereignisspeicher 40 bzw. 41 als Datentaktsignal 13 anliegt,
wird dann das für
den jeweiligen Ereignisspeicher 40 oder 41 am
Datenbus 10 anliegende Einzelsignal 16 als Dateneingangssignal 14 in
den Ereignisspeicher 40 bzw. 41 geschrieben. Hier
wird also jeder Ereignisspeicher 40 und 41 bei
jedem Schreibzugriff des Mikroprozessors 30 neu beschrieben.
-
Bei
den in den 2 bis 8 dargestellten erfindungsgemäßen Interrupt
Controllern ist jeder Ereignisspeicher 40 und 41 jeweils
aus einer Speicherzelle mit einem Eingang für ein Setz-Signal 5 und
einem Eingang für
ein Rücksetz-Signal 3 sowie
einem Ausgang für
ein Ereignisspeichersignal 4 aufgebaut. Die Ereignisspeicher 40 und 41 sind
jeweils zu einer Gruppe zusammengefasst.
-
Wie
im Falle des bekannten, in 1 dargestellten
Interrupt Controllers wird das Setz-Signal 5 eines einzelnen
Ereignisspeichers 40 oder 41 aktiv, wenn ein Aktivwerden
des diesem Ereignisspeicher 40 bzw. 41 zugeordneten
Ereignissignals 8 erkannt wird. Das Ereignisspeichersignal 4 jedes
Ereignisspeichers 40, 41 ist über einen Logischen UND Verknüpfungsblock 60 mit
einem Interrupt-Signal 9 des Mikroprozessors 30 verbunden,
so dass das jeweilige Ereignisspeichersignal 4 über ein
Aktivierungssignal 6 aktiviert oder deaktiviert werden
kann. Vorteilhafterweise ist das Aktivierungssignal 6 als
Zustandssignal eines Datenspeichers des Mikroprozessors 30 ausgeführt.
-
Die
Interrupt-Signale 9 sind entweder direkt, wie im Fall der 3, 5, 7 und 8,
oder aber über
einen Logischen ODER Verknüpfungsblock 70,
wie im Fall der 2, 4 und 6,
mit einem Interrupt-Eingang 1 des Mikroprozessors 30 verbunden.
Mit Hilfe des Logischen ODER Verknüpfungsblocks 70 können die
Interrupt-Signale 9 von mehreren Ereignissen auf einem
Interrupt-Eingang 1 zusammengefasst werden.
-
Bei
den in den 2 bis 8 dargestellten erfindungsgemäßen Interrupt
Controllern sind außerdem
die Ereignisspeichersignale 4 aller Ereignisspeicher 40 und 41 einer
Gruppe als Datenwerte für
den Mikroprozessor 30 lesend zugänglich, wie im Falle des in 1 dargestellten
Interrupt Controllers. Jeder Speicherzustand des Leseregisters 80 stellt
somit ein Bit eines Datenbytes des Mikroprozessors 30 dar.
-
Bei
dem in 2 dargestellten Interrupt Controller wird das
Rücksetz-Signal 3 eines
Ereignisspeichers 40 oder 41 dann aktiv, wenn
der Mikroprozessor 30 auf die Gruppe dieses Ereignisspeichers 40 bzw. 41 schreibend
zugreift und gleichzeitig das diesem Ereignisspeicher 40 bzw. 41 der
Gruppe zugeordnete Einzelsignal 16 des Mikroprozessors 30 auf dem
Datenbus 10 aktiv ist. Hierbei wird Vorteilhafterweise
dasselbe Bit eines Datenbytes verwendet, indem dem Mikroprozessor 30 beim
Lesezugriff auf die entsprechende Gruppe auch der Zustand des Ereignisspeichers 40 bzw. 41 übergeben
wird. Das Schreibsignal 15 des Mikroprozessors 30 und
das Einzelsignal 16 eines Ereignisspeichers 40 bzw. 41 werden
dazu über
einen Logischen UND Verknüpfungsblock 61 verknüpft, dessen
Ausgangssignal ein softwaregesteuertes Rücksetz-Signal 19 für den jeweiligen
Ereignisspeicher 40 bzw. 41 bildet. Die in 2 dargestellte
Ausführungsform
eines erfindungsgemäßen Interrupt
Controllers erlaubt so das gezielte, sichere Rücksetzen von einzelnen Ereignisspeichern 40 und 41 durch
Programmbefehle.
-
Bei
dem in 3 dargestellten Interrupt Controller wird das
Rücksetz-Signal 3 eines
Ereignisspeichers 40 oder 41 im Unterschied zu
der in 2 dargestellten Variante zusätzlich auch dann aktiv, wenn ein
Interrupt-Quittierungssignal 2 des
Mikroprozessors 30 anzeigt, dass die diesem Ereignisspeicher 40 bzw. 41 zugeordnete
Interrupt-Routine ausgeführt wird.
Das Interrupt-Quittierungssignal 2 des
Mikroprozessors 30 und das softwaregesteuertes Rücksetz-Signal 19 für den jeweiligen
Ereignisspeicher 40 bzw. 41 werden dazu über einen
Logischen ODER Verknüpfungsblock 71 verknüpft, dessen
Ausgangssignal das Rücksetz-Signal 3 für den jeweiligen
Ereignisspeicher 40 bzw. 41 bildet. Bei dieser
Variante eines erfindungsgemäßen Interrupt
Controllers können
einzelne Ereignisspeicher 40 bzw. 41 sowohl durch Programmbefehle
als auch durch Prozessorsignale gezielt und sicher zurückgesetzt
werden.
-
Bei
den in den 4 bis 8 dargestellten erfindungsgemäßen Interrupt
Controllern wird dem Mikroprozessor jede Gruppe von Ereignisspeichern 40 und 41 unter
zwei verschiedenen Speicheradressen für den Schreibzugriff zur Verfügung gestellt.
-
Bei
Schreibzugriff des Mikroprozessors 30 unter der ersten
Speicheradresse mit dem ersten Schreibsignal 15 des Mikroprozessors 30 wird
das Rücksetz-Signal 3 eines
Ereignisspeichers 40 oder 41 aktiv wie in Verbindung
mit 2 beschrieben. Außerdem wird das Setz-Signal 5 eines
Ereignisspeichers 40 oder 41 nicht nur aktiv,
wenn ein Aktivwerden des diesem Ereignisspeicher 40 bzw. 41 zugeordneten
Ereignissignals 8 erkannt wird, sondern auch dann, wenn
der Mikroprozessor auf die Gruppe dieses Ereignisspeichers 40 bzw. 41 unter
der zweiten Speicheradresse mit dem zweiten Schreibsignal 17 des
Mikroprozessors 30 schreibend zugreift und gleichzeitig
das diesem Ereignisspeicher 40 bzw. 41 der Gruppe
zugeordnete Einzelsignal 18 des Datenbusses 10 aktiv
ist. Hierbei wird Vorteilhafterweise dasselbe Bit eines Datenbytes
verwendet, indem dem Mikroprozessor 30 beim Lesezugriff
auf die Gruppe auch der Zustand des entsprechenden Ereignisspeichers 40 bzw. 41 übergeben
wird. Vorteilhafterweise ist außerdem
die zweite Speicheradresse, unter der der Mikroprozessor 30 schreibend
auf die Gruppe zugreift, mit der Speicheradresse identisch, unter
der er lesend auf diese Gruppe zugreift. In diesem Fall können nämlich die
bei vielen Mikroprozessoren bekannten "read-modify-write" Anweisungen verwendet werden. Das Schreibsignal 17 des Mikroprozessors 30 und
das Einzelsignal 18 eines Ereignisspeichers 40 bzw. 41 werden
dazu über
einen Logischen UND Verknüpfungsblock 62 verknüpft, dessen
Ausgangssignal ein softwaregesteuertes Setz-Signal 20 für den jeweiligen
Ereignisspeicher 40 bzw. 41 bildet. Dieses wird über einen
Logischen ODER Verknüpfungsblock 72 mit
dem Ereignispulssignal 7 verknüpft. Das Ausgangssignal des Logischen
ODER Verknüpfungsblocks 72 bildet
dann das Setz-Signal 5 für den jeweiligen Ereignisspeicher 40 bzw. 41.
-
Die
voranstehend beschriebene Ausführungsform
eines erfindungsgemäßen Interrupt
Controllers ist in 4 dargestellt und ermöglicht das
gezielte, sichere Rücksetzen
und Setzen von einzelnen Ereignisspeichern 40 oder 41 durch
Programmbefehle. Diese Variante kann mit der Rücksetzmöglichkeit über Interrupt-Quittierungssignale 2,
wie in Verbindung mit 3 beschrieben, kombiniert werden,
was in 5 dargestellt ist.
-
Bei
den in den 6 bis 8 dargestellten Varianten
eines erfindungsgemäßen Interrupt
Controllers ist neben einem gezielten Rücksetzen der Ereignisspeicher 40 und 41 durch
Schreibaktion des Mikroprozessors 30 auch ein Verändern der
Ereignisspeicher 40 und 41 durch Schreibaktion
des Mikroprozessors 30 möglich. Das Verändern der
Ereignisspeicher 40 bzw. 41 erfolgt immer dann,
wenn der Mikroprozessor 30 auf die Gruppe des jeweiligen
Ereignisspeichers 40 bzw. 41 unter der zweiten
Speicheradresse schreibend zugreift. Im Falle der in den 6 und 7 dargestellten
Interrupt Controller wird dann entweder das entsprechende Setzsignal 5 aktiv,
falls das diesem Ereignisspeicher 40 bzw. 41 der
Gruppe zugeordnete Einzelsignal 18 des Mikroprozessors 30 aktiv
ist, oder das entsprechende Rücksetz-Signal 3,
falls das diesem Ereignisspeicher 40 bzw. 41 der
Gruppe zugeordnete Einzelsignal 18 des Mikroprozessors 30 inaktiv
ist. Hierbei wird Vorteilhafterweise dasselbe Bit eines Datenbytes
verwendet, indem dem Mikroprozessor 30 beim Lesezugriff
auf die entsprechende Gruppe auch der Zustand des jeweiligen Ereignisspeichers 40 bzw. 41 übergeben
wird. Vorteilhafterweise ist außerdem
die zweite Speicheradresse, unter der der Mikroprozessor 30 schreibend
auf die Gruppe zugreift, mit der Speicheradresse identisch, unter
der er lesend zugreift, um die bei vielen Mikroprozessoren bekannten "read-modify-Write" Anweisungen verwenden
zu können.
-
Das
gezielte Zurücksetzen
und Verändern der
Ereignisspeicher 40 bzw. 41 erfolgt bei der in 6 dargestellten
Ausführungsform
eines erfindungsgemäßen Interrupt
Controllers jeweils mit Hilfe eines Logischen ODER Verknüpfungsblocks 73,
dessen Ausgangssignal das Rücksetz-Signal 3 eines
Ereignisspeichers 40 bzw. 41 bildet und der die
Ausgangssignale zweier Logischen UND Verknüpfungsblöcke 61 und 63 miteinander
verknüpft.
Der Logische UND Verknüpfungsblock 61 verknüpft das
erste Schreibsignal 15 des Mikroprozessors 30 mit
dem dem jeweiligen Ereignisspeicher 40 bzw. 41 zugeordneten
Einzelsignal 16 auf dem Datenbus 10 des Mikroprozessors 30,
womit das gezielte Rücksetzen des
Ereignisspeichers 40 bzw. 41 realisiert wird.
Der Logische UND Verknüpfungsblock 63 verknüpft das zweite
Schreibsignal 17 des Mikroprozessors 30 mit dem
dem jeweiligen Ereignisspeicher 40 bzw. 41 zugeordneten
Einzelsignal 18 auf dem Datenbus 10 des Mikroprozessors 30,
das aber vorher mit Hilfe eines Invertierblocks 90 invertiert
worden ist. Das dem jeweiligen Ereignisspeicher 40 bzw. 41 zugeordnete Einzelsignal 18 auf
dem Datenbus 10 des Mikroprozessors 30 wird außerdem noch über einen
Logischen UND Verknüpfungsblock 62 mit
dem zweiten Schreibsignal 17 des Mikroprozessors 30 verknüpft. Dieser
Logische UND Verknüpfungsblock 62 liefert ein
softwaregesteuertes Setz-Signal 20,
das über
einen Logischen ODER Verknüpfungsblock 72 mit
dem Ereignispulssignal 7 des Flankenerkennungsblocks 50 des
jeweiligen Ereignisspeichers 40 bzw. 41 verknüpft wird.
Das Ausgangssignal dieses Logischen ODER Verknüpfungsblocks 72 dient
als Setz-Signal 5 für
den jeweiligen Ereignisspeicher 40 bzw. 41.
-
Die
in 7 dargestellte Schaltungsanordnung ist gegenüber der
in 6 dargestellten Schaltungsanordnung lediglich
um die Möglichkeit
ergänzt, die
Ereignisspeicher 40 und 41 auch durch Interrupt-Quittierungssignale 2 des
Mikroprozessors 30 gezielt zurückzusetzen.
-
Bei
dem In 8 dargestellten Interrupt Controller werden die
Ereignisspeicher 40 bzw. 41 jeweils direkt mit
dem ihnen zugeordneten, am Datenbus 10 anliegenden Einzelsignal 18 überschrieben, wenn
das zweite Schreibsignal 17 aktiv ist. Dazu wird das Schreibsignal 17 als
Datentaktsignal 13 an den Ereignisspeicher 40 bzw. 41 geführt, während das am
Datenbus 10 anliegende Einzelsignal 18 ein Dateneingangssignal 14 für den Ereignisspeicher 40 bzw. 41 bildet.
-
Die
hier beschriebenen Ausführungsformen der
Erfindung sind nur beispielhaft angegeben. Ein Fachmann kann aufgrund
der erfindungsgemäßen Lehre
andere Ausführungsformen
eines Interrupt Controllers realisieren, die im Bereich der Erfindung bleiben.