-
QUERVERWEIS
AUF EINSCHLÄGIGE
ANMELDUNG
-
Die
vorliegende Anmeldung beansprucht die Priorität der am 27. Februar 2004 eingereichten
japanischen Patentanmeldung JP 2004-053421, deren Inhalt hiermit
durch Bezugnahme in diese Anmeldung eingeschlossen wird.
-
TECHNISCHES
GEBIET DER ERFINDUNG
-
Die
Erfindung betrifft ein Datenverarbeitungssystem. Genauer gesagt,
betrifft die Erfindung eine Technik0, die dann effektiv arbeitet,
wenn sie bei der Konfiguration eines Interruptsteuerabschnitts des Datenverarbeitungssystems
angewandt wird.
-
HINTERGRUND
DER ERFINDUNG
-
Als
Techniken in Zusammenhang mit dem Datenverarbeitungssys tem, das
die Erfinder der vorliegenden Erfindung untersucht haben, sind beispielsweise
die Folgenden bekannt.
-
Als
Maßnahme,
die es einer zentralen Verarbeitungseinheit (nachfolgend "CPU") ermöglicht,
einen anderen Task auszuführen,
während
sie eine bestimmte Anweisung (Task) ausführt, stehen ein Softwareinterrupt
und ein Hardwareinterrupt zur Verfügung. Ein Softwareinterrupt
arbeitet wird folgt. Wenn die CPU eine spezielle Softwareverarbeitung
ausführt,
um einen Interrupt zu erzeugen (Anweisungsausführung), wird ein in einem Interruptcontroller
vorhandenes Interruptanforderungsflag gesetzt, ein Interruptanforderungssignal
vom Interruptcontroller zur CPU wird aufgeschaltet (aktiv (wirksam)
gemacht), und die CPU steuert dadurch die Ausführung einer Interruptausnahme-Handhabungsroutine
(ein anderer Task). Wenn die CPU eine Verarbeitung zum Entfernen
der Interruptanforderung ausführt
(Anweisungsausführung),
wenn sie die Ausführung
der Anweisung der Interruptausnahme-Handhabungsroutine beendet,
wird das im Interruptcontroller vorhandene Interruptanforderungsflag
gelöscht,
und das Interruptanforderungssignal vom Interruptcontroller zur CPU
wird negiert (inaktiv (unwirksam) gemacht). Dann kehrt die CPU,
wenn sie eine Rückkehranweisung
von der Interruptausnahmeverarbeitung ausführt, zur Anweisungsausführung vor
der Ausführung der
Interruptausnahme-Handhabungsroutine zurück.
-
Zu
Beispielen eines Hardwareinterrupts gehören ein Hardwareinterrupt durch
ein internes Peripheriemodul sowie ein Hardwareinterrupt durch einen
externen Anschluss.
-
Ein
Hardwareinterrupt durch ein internes Peripheriemodul arbeitet wie
folgt. Bei Eintritt eines Ereignisses (z. B. einer vergleichenden Übereinstimmungsprüfung eines
Zeitmoduls oder beim Abschließen
eines Sende- oder Empfangsvorgangs durch ein Kommunikationsmodul)
in einem internen Peri pheriemodul in der Hardware (z. B. ein Mikrocontroller) wird
ein im entsprechenden internen Peripheriemodul vorhandenes Interruptanforderungsflag
gesetzt, ein Interruptanforderungssignal vom internen Peripheriemodul
zum Interruptcontroller wird aufgeschaltet, und es wird ein Interruptanforderungssignal
vom Interruptcontroller zur CPU aufgeschaltet. Dadurch startet die
CPU die Ausführung
einer Interruptausnahme-Handhabungsroutine (anderer Task). Wenn die
CPU eine Verarbeitung zum Entfernen der Interruptanforderung ausführt (Anweisungsausführung), wenn
sie die Ausführung
der Anweisung der Interruptausnahme-Handhabungsroutine beendet,
wird das im internen Peripheriemodul vorhandene Interruptanforderungsflag
gelöscht,
das Interruptanforderungssignal vom internen Peripheriemodul zum
Interruptcontroller wird negiert, und das Interruptanforderungssignal
vom Interruptcontroller zur CPU wird negiert. Dann kehrt die CPU,
wenn eine Rückkehranweisung
von der Ausnahmeverarbeitung ausgeführt wird, zur Anweisungsausführung vor
der Ausführung der
Interruptausnahme-Handhabungsroutine zurück.
-
Ein
Hardwareinterrupt durch einen externen Anschluss arbeitet wird folgt.
Bei Eintritt eines Ereignisses (z. B. einer Pegeländerung
an einem externen IRQ-Anschluss) an einem in der Hardware (z. B.
einem Mikrocontroller) vorhandenen externen Anschluss wird das Ereignis
erkannt, und es wird ein im Interruptcontroller vorhandenes Interruptanforderungsflag
gesetzt. Dann wird ein Interruptanforderungssignal vom Interruptcontroller
an die CPU aufgeschaltet, und die CPU startet dadurch die Ausführung der
Interruptausnahme-Handhabungsroutine (anderer Task). Wenn die CPU
eine Verarbeitung zum Entfernen der Interruptcontroller ausführt (Anweisungsausführung),
wenn sie die Ausführung
der Anweisung der Interruptausnahme-Handhabungsroutine beendet,
wird das im Interruptcontroller vorhandene Interruptanforderungsflag
gelöscht,
und es wird das Interruptanforderungssignal vom In terruptcontroller
an die CPU negiert. Wenn eine Rückkehranweisung
von der Ausnahmeverarbeitung ausgeführt wird, kehrt die CPU zur
Anweisungsausführung vor
der Ausführung
der Interruptausnahme-Handhabungsroutine zurück.
-
Eine
Interruptverarbeitungsfunktion ist z. B. in der japanischen Patentanmeldungs-Offenlegung Nr.
8-314731 beschrieben.
-
Auch
ist ein zur Steuerung eines Automobil-Kraftübertragungsstrangs verwendeter
Mikrocontroller normalerweise mit einer Gleitkommaeinheit (nachfolgend "FPU" (floating point
unit)) versehen. Bei einem Controller dieses Typs wird Sensorinformation
unter Verwendung eines Analog-Digital-Wandlers (nachfolgend "AD-Wandler") in digitale Information
gewandelt, und ein Steuerungsziel wird durch eine Arithmetikoperation
gesteuert. Im Fall der Analyse einer sich schnell ändernden
Sensorinformation ist es insbesondere erforderlich, Daten mit hoher
Rate zu sammeln und eine digitale Signalverarbeitung auszuführen.
-
Herkömmlicherweise
werden bei einem Verfahren zum Speichern von Abtastwerten, die für eine digitale
Signalverarbeitung wie eine Kopfregelung verwendet werden, Daten
vom AD-Wandler an einen internen RAM (Speicher) unter Verwendung
eines Datenübertragungsprozessors
wie eines im Mikrocontroller vorhandenen Controllers für direkten
Speicherzugriff (nachfolgend "DMAC" (direkt memory access
controller)) übertragen.
Nachdem die Daten übertragen
sind, wird ein übertragener
Datenwert im internen RAM durch die CPU gelesen, wodurch die digitale
Signalverarbeitung ausgeführt
wird.
-
ZUSAMMENFASSUNG
DER ERFINDUNG
-
Die
Erfinder der vorliegenden Erfindung haben diese herkömmlichen
Techniken zum Interruptausnahmehandling (Interrupt ausnahmeverarbeitung)
untersucht. Im Ergebnis wurden die folgenden Gesichtspunkte herausgefunden.
-
Sowohl
bei einem Softwareinterrupt als auch einem Hardwareinterrupt führt die
CPU eine Verarbeitung zum Entfernen der Interruptanforderung aus (Anweisungsausführung),
wenn sie die Ausführung der
Anweisung der Interruptausnahme-Handhabungsroutine (Interruptausnahme-Verarbeitungsroutine)
beendet. Durch diese Vorgehensweise wird das Interruptanforderungsflag
gelöscht
und das Interruptanforderungssignal negiert. Wenn jedoch ein Ereignis,
bei dem dieselbe Interruptanforderung erzeugt wird, erneut vor dem
Ausführen
der Verarbeitung zum Entfernen der Interruptanforderung (Anweisungsausführung) auftritt,
führt ein
herkömmlicher
Interruptmechanismus die Verarbeitung zum Entfernen der Interruptanforderung
als Teil der ersten Interruptausnahme-Handhabungsroutine aus. Demgemäß wird das
Interruptanforderungsflag gelöscht
und das Interruptanforderungssignal negiert. Demgemäß führt die
CPU, nachdem sie die Rückkehranweisung von
der Interruptausnahmeverarbeitung der Interruptausnahme-Handhabungsroutine
ausgeführt
hat, die Interruptausnahme-Handhabungsroutine
für ein zweites
Ereignis mit Erzeugung einer Interruptanforderung nicht aus, da
das Interruptanforderungssignal negiert ist. Im Ergebnis kann die
Interruptausnahme-Handhabungsroutine nicht so oft ausgeführt werden,
wie es der Anzahl des Auftretens der Ereignisses, das dieselbe Interruptanforderung
erzeugt hat, entspricht.
-
Daher
ist es eine Aufgabe der Erfindung, ein Datenverarbeitungssystem
zu schaffen, mit dem eine Interruptausnahme-Handhabungsroutine so oft ausgeführt werden
kann, wie es der Anzahl des Auftretens des Anforderungsereignisses
für dieselbe
Interruptausnahme-Handhabungsroutine entspricht, also selbst dann,
wenn das Anforderungsereignis mehrmals auftritt.
-
Ferner
wird die digitale Signalverarbeitung herkömmlicherweise unter Verwendung
eines Ganzzahlenformats ausgeführt.
Jedoch ist es zu erwarten, dass zukünftig eine effizientere Arithmetikoperation unter
Verwendung eines Gleitkommazahlenformats ausgeführt wird. Auch wird erwartet,
dass, während die
Anzahl der zur Datensignalverarbeitung verwendeten Daten im Allgemeinen
und herkömmlicherweise
einigen zehn entspricht oder kleiner ist, die Anzahl der Daten auf
mehrere hundert oder mehr ansteigen wird.
-
Daher
ist es eine andere Aufgabe der Erfindung, ein Datenverarbeitungssystem
zu schaffen, mit dem Sensorinformation effizient von ganzen Zahlen in
Gleichkommazahlen gewandelt werden kann, wenn es erforderlich ist,
Daten mit hoher Rate zu sammeln und eine digitale Signalverarbeitung
auszuführen.
-
Die
obigen und andere Aufgaben sowie neuartige Eigenschaften der Erfindung
werden aus der Beschreibung und den diesen Anmeldeunterlagen beigefügten Zeichnungen
ersichtlich werden.
-
Die
typischen der in dieser Anmeldung offenbarten Erfindungen werden
kurz wie folgt beschrieben.
-
Ein
erfindungsgemäßes Datenverarbeitungssystem
verfügt
nämlich über einen
Interruptmechanismus mit einem Zähler
zum Speichern der Anzahl der Auftretens eines Interruptanforderung-Erzeugungsereignisses.
-
Dieser
Zähler
zählt hoch,
wenn eine einen Softwareinterrupt erzeugende Softwareverarbeitung oder
ein einen Hardwareinterrupt erzeugendes Hardwareereignis auftritt,
und er zählt
herunter, wenn eine CPU eine Verarbeitung zum Beenden einer Interruptausnahme-Handhabungsroutine
ausführt
(sie eine Ver arbeitung zum Entfernen einer Interruptanforderung
oder eine Anweisung zur Rückkehr
von einer Ausnahmeverarbeitung) ausführt. Auch wird, wenn der Wert
dieses Zählers
nicht 0 ist, ein Interruptanforderungssignal an die CPU aufgeschaltet.
Das heißt, dass
es möglich
ist, das Interruptanforderungssignal kontinuierlich aufzuschalten,
bis so viele Herunterzählverarbeitungen
ausgeführt
sind, wie Hochzählverarbeitungen
ausgeführt
wurden.
-
Auf
diese Weise führt
die CPU, wenn dasselbe Interruptanforderung-Erzeugungsereignis mehrmals
auftritt, eine Verarbeitung zum Entfernen der Interruptanforderung
(Anweisungsausführung)
am Ende der ersten Interruptausnahme-Handhabungsroutine aus. Selbst
nachdem die CPU eine Rückkehranweisung
von der Anweisungsausführung
ausgeführt
hat und sie dadurch zur Anweisungsausführung vor der Interruptausnahme-Handhabungsroutine
zurückkehrt,
startet sie die Ausführung
einer zweiten Interruptausnahme-Handhabungsroutine, da das Interruptanforderungssignal
zur CPU aufgeschaltet ist.
-
Daher
ist es möglich,
die Interruptausnahme-Handhabungsroutine so oft auszuführen, wie
es der Anzahl des Auftretens des Ereignisses entspricht, das dieselbe
Interruptanforderung erzeugt.
-
Ferner
verfügt
das erfindungsgemäße Datenverarbeitungssystem über eine
Funktion zum Wandeln einer ganzen Zahl in eine Gleitkommazahl in
einem DMAC beim Übertragen
von Daten von einer Peripherieschaltung (z. B. einem AD-Wandler)
an einen Speicher.
-
Der
Effekt, wie er durch die repräsentative der
in dieser Anmeldung offenbarten Erfindungen erzielt wird, wird kurz
wie folgt beschrieben.
-
Da
der Zähler
die Anzahl des Auftretens desselben Interruptanforderung-Erzeugungsereignisses speichert
und das Interruptanforderungssignal kontinuierlich aufgeschaltet
wird, kann die CPU die Interruptausnahme-Handhabungsroutine so oft
ausführen,
wie es der Anzahl des Auftretens des Ereignisses entspricht.
-
KURZE BESCHREIBUNG
DER ZEICHNUNGEN
-
1 ist
ein Blockdiagramm, das die Konfiguration eines Datenverarbeitungssystems
gemäß einer
ersten Ausführungsform
der Erfindung zeigt;
-
2 ist
ein zeitbezogenes Diagramm, das eine Softwareinterrupt-Verarbeitung
im Datenverarbeitungssystem gemäß der ersten
Ausführungsform der
Erfindung zeigt;
-
3 ist
ein zeitbezogenes Diagramm, das eine Hardwareinterrupt-Verarbeitung
im Datenverarbeitungssystem gemäß der ersten
Ausführungsform der
Erfindung zeigt;
-
4 ist
ein Blockdiagramm, das die Konfiguration eines Datenverarbeitungssystems
gemäß einer
zweiten Ausführungsform
der Erfindung zeigt;
-
5 ist
ein zeitbezogenes Diagramm, das eine Softwareinterrupt-Verarbeitung
im Datenverarbeitungssystem gemäß der zweiten
Ausführungsform
der Erfindung zeigt;
-
6 ist
ein zeitbezogenes Diagramm, das eine Hardwareinterrupt-Verarbeitung
im Datenverarbeitungssystem gemäß der zweiten
Ausführungsform
der Erfindung zeigt;
-
7 ist
ein Blockdiagramm, das die Konfiguration eines Datenverarbeitungssystems
gemäß einer
dritten Ausführungs form
der Erfindung zeigt;
-
8 ist
ein Blockdiagramm, das die Konfiguration eines Datenverarbeitungssystems
gemäß einer
vierten Ausführungsform
der Erfindung zeigt;
-
9 ist
ein Blockdiagramm, das die Konfiguration eines Datenverarbeitungssystems
gemäß einer
fünften
Ausführungsform
der Erfindung zeigt;
-
10 ist
ein Diagramm, das ein Beispiel eines CPU-Ausführungszustands und einen Interruptverarbeitungsablauf
in den Datenverarbeitungssystemen gemäß der ersten bis fünften Ausführungsform der
Erfindung zeigt;
-
11 ist
ein Blockdiagramm, das die Konfiguration eines Datenverarbeitungssystems
gemäß einer
sechsten Ausführungsform
der Erfindung zeigt;
-
12 ist
ein Blockdiagramm, das die Konfiguration eines Datenverarbeitungssystems
gemäß einer
siebten Ausführungsform
der Erfindung zeigt; und
-
13 ist
ein Blockdiagramm, das die Konfiguration eines Datenverarbeitungssystems
gemäß einer
achten Ausführungsform
der Erfindung zeigt.
-
BESCHREIBUNG
DER BEVORZUGTEN AUSFÜHRUNGSFORMEN
-
Nachfolgend
werden Ausführungsformen der
Erfindung unter Bezugnahme auf die beigefügten Zeichnungen detailliert
beschrieben. Es ist zu beachten, dass Komponenten mit derselben
Funktion in allen Zeichnungen zur Beschreibung der Ausführungsform
mit denselben Bezugssymbolen gekennzeichnet sind und die zugehörige wiederholte
Beschreibung weggelassen wird.
-
(Erste Ausführungsform)
-
Die 1 ist
ein Blockdiagramm, das die Konfiguration eines Datenverarbeitungssystems
gemäß einer
ersten Ausführungsform
der Erfindung zeigt. Die 2 ist ein zeitbezogenes Diagramm,
das eine Software-Verarbeitung im Datenverarbeitungssystem gemäß der ersten
Ausführungsform
zeigt. Die 3 ist ein zeitbezogenes Diagramm,
das eine Hardwareinterrupt-Verarbeitung im Datenverarbeitungssystem
gemäß der ersten
Ausführungsform zeigt.
-
Unter
Bezugnahme auf die 1 wird als Erstes ein Beispiel
der Konfiguration des Datenverarbeitungssystems gemäß der ersten
Ausführungsform beschrieben.
Das Datenverarbeitungssystem gemäß der ersten
Ausführungsform
ist z. B. ein System wie ein Mikrocontroller. Das Datenverarbeitungssystem verfügt beispielsweise über eine
CPU 1, einen Interruptcontroller 4 und interne
Peripheriemodule/externe Anschlüsse 12 aus
einem AD-Wandler, einem Digital-Analog-Wandler (nachfolgend "DA-Wandler"), einem DMAC, einem
Timer und einem seriellen USB. Die CPU 1 ist über einen
internen Adressenbus 2 und einen internen Datenbus 3 elektrisch
mit dem Interruptcontroller 4 verbunden. Das Datenverarbeitungssystem
kann aus den jeweiligen Bauelementen aufgebaut sein, die auf einem
Halbleitersubstrat ausgebildet sind. Der Interruptcontroller 4 verfügt beispielsweise über eine
Interner-Bus-Schnittstellenschaltung 5, einen Softwareinterruptzähler 6,
einen Hardwareinterruptzähler 7 und
eine Interruptanforderungssignal-Erzeugungsschaltung 8.
Von der Interner-Bus-Schnittstellenschaltung 5 wird ein
Hochzählsignal 9 an
einem Hochzähleingang
des Softwareinterruptzählers 6 eingegeben.
Von der Interner-Bus-Schnittstellenschaltung 5 wird ein
Herunterzählsignal 10 an
einem Herunterzähleingang
des Softwareinter ruptzählers 6 eingegeben.
Von der Interner-Bus-Schnittstellenschaltung 5 wird ein
Herunterzählsignal 11 an
einem Herunterzähleingang
des Hardwareinterruptzählers 7 eingegeben. Über die
internen Peripheriemodule/externen Anschlüsse 12 wird ein Interruptereignis-Auftrittssignal 13 an
einem Hochzähleingang
des Hardwareinterruptzählers 7 eingegeben.
Ein Softwareinterrupt-Anforderungssignal 14 und ein Hardwareinterrupt-Anforderungssignal 15 werden
von der Interruptanforderungssignal-Erzeugungsschaltung 8 in
die CPU 1 eingegeben. Vom Softwareinterruptzähler 6 und
vom Hardwareinterruptzähler 7 wird
ein Signal mit einer Breite mehrerer Bits (z. B. acht Bits) in die
Interruptanforderungssignal-Erzeugungsschaltung 8 und die
Interner-Bus-Schnittstellenschaltung 5 eingegeben. Obwohl
in der 1 nur ein Softwareinterruptzähler 6 und nur ein
Hardwareinterruptzähler 7 dargestellt sind,
besteht für
die Anzahl der Softwareinterruptzähler 6 und die Anzahl
der Hardwareinterruptzähler 7 keine
Beschränkung
auf 1, sondern es sind für
jeden von mehreren Interruptfaktoren mehrere Softwareinterruptzähler 6 oder
Hardwareinterruptzähler 7 parallel
geschaltet. Das heißt,
dass für
jeden von Interruptfaktoren (jeden von Interrupttypen) der Interruptereignis-Auftrittssignale
(Hardwareinterrupts) und der Softwareverarbeitungsvorgänge (Softwareinterrupts),
die Interruptverarbeitungen benötigen,
Zähler bereitgestellt
werden, um die jeweilige Interruptanzahl zu speichern. Dadurch ist
es möglich,
die Konfiguration des Datenverarbeitungssystems gemäß der ersten
Ausführungsform
für mehrere
Interruptfaktoren zu verwenden.
-
Als
Nächstes
wird der Betrieb des Datenverarbeitungssystems gemäß der ersten
Ausführungsform
beschrieben.
-
Die
Softwareinterruptverarbeitung (Softwareinterrupt-Ausnahmehandling)
wird sie folgt ausgeführt
(siehe die 2).
-
Als
Erstes wird, wenn die CPU 1 eine Speicheranweisung für eine dem
Softwareinterruptzähler 6 im
Interruptcontroller 4 zugeordnete Adresse ausführt, diese
Adresse auf dem internen Adressenbus 2 platziert, und auf
dem internen Datenbus 3 werden Schreibdaten platziert.
-
Die
Interner-Bus-Schnittstellenschaltung 5 im Interruptcontroller 4 ermittelt,
dass die Adresse auf dem internen Adressenbus 2 die Adresse
des Softwareinterruptzählers 6 ist.
Ferner ermittelt die Interner-Bus-Schnittstellenschaltung 5,
ob die Schreibdaten auf dem internen Datenbus 3 dem Wert
1 oder dem Wert 0 entsprechen. Wenn die Schreibdaten 1 entsprechen,
wird das Hochzählsignal 9 für den Softwareinterruptzähler 6 aufgeschaltet.
Wenn die Schreibdaten 0 entsprechen, wird das Herunterzählsignal 10 für den Softwareinterruptzähler 6 aufgeschaltet.
Dadurch zählt
der Softwareinterruptzähler 6 nach
oben oder nach unten.
-
Die
Interruptanforderungssignal-Erzeugungsschaltung 8 im Interruptcontroller 4 ermittelt,
ob der Zählerwert
des Softwareinterruptzählers 6 1
oder mehr oder 0 entspricht. Wenn der Zählerwert 1 oder mehr
entspricht, wird das Softwareinterrupt-Anforderungssignal 14 an
die CPU 1 aufgeschaltet. Wenn der Zählwert 0 ist, wird das Softwareinterrupt-Anforderungssignal 14 an
die CPU 1 negiert.
-
Nach
dem Aufschalten des Softwareinterrupt-Anforderungssignals 14 startet
die CPU 1 die Ausführung
einer Softwareinterrupt-Ausnahmehandhabungsroutine.
-
Als
Interruptanforderung-Entfernverarbeitung vor dem Ausführen einer
Rückkehranweisung vor
der Ausnahmeverarbeitung führt
die CPU, um die Softwareinterrupt-Ausnahmehandhabungsroutine zu beenden,
eine Speicheranweisung zum Schreiben des Datenwerts 0 an der Adresse,
die dem Softwareinterruptzähler 6 zugeordnet
ist, aus. Dadurch zählt der
Softwareinterruptzähler 6 nach
unten.
-
Die
CPU 1 führt
die Rückkehranweisung
von der Ausnahmeverarbeitung aus, um sich dadurch aus der Softwareinterrupt-Ausnahmehandhabungsroutine
zurückzuziehen.
-
Wenn
der Zählwert
des Softwareinterruptzählers 6 nach
dem Herunterzählen
0 ist, wird das Softwareinterrupt-Anforderungssignal 14 negiert. Wenn
der Zählerwert
des Softwareinterruptzählers 6 nach
dem Herunterzählen
1 oder größer ist,
wird das Softwareinterrupt-Anforderungssignal 14 kontinuierlich
aufgeschaltet. Daher startet die CPU 1 die Softwareinterrupt-Ausnahmehandhabungsroutine
erneut.
-
Wenn
die CPU 1 eine Ladeanweisung für die dem Softwareinterruptzähler 6 zugeordnete
Adresse ausführt,
platziert die Interner-Bus-Schnittstellenschaltung 5 im
Interruptcontroller 4 den Zählerwert des Softwareinterruptzählers 6 selbst
auf dem internen Datenbus 3. Daher kann die CPU 1 den
Zählerwert
lesen.
-
Die
Hardwareinterruptverarbeitung (Hardwareinterrupt-Ausnahmehandling)
wird wie folgt ausgeführt
(siehe die 3).
-
Als
Erstes wird, wenn die CPU 1 eine Speicheranweisung für eine dem
Hardwareinterruptzähler 7 im
Interruptcontroller 4 zugeordnete Adresse als Interruptanforderung-Entfernverarbeitung
ausführt, die
Adresse auf dem internen Adressenbus 2 platziert, und Schreibdaten
werden auf dem internen Datenbus 3 platziert.
-
Die
Interner-Bus-Schnittstellenschaltung 5 im Interruptcontroller 4 ermittelt,
dass die Adresse auf dem internen Adressenbus 2 die Adresse
des Hardwareinterruptzählers 7 ist.
Außerdem
ermittelt die Interner-Bus-Schnittstellenschaltung 5, ob
die Schreibdaten auf dem internen Datenbus 3 den Wert 0
haben. Wenn die Schreibdaten 0 sind, wird das Herunterzählsignal 11 an
den Hardwareinterruptzähler 7 aufgeschaltet.
Dadurch zählt
der Hardwareinterruptzähler 7 nach
unten.
-
Wenn
dasselbe Ereignis an den internen Peripheriemodulen/externen Anschlüssen 12 auftritt, wird
das Interruptereignis-Auftrittssignal 13 an
den Interruptcontroller 4 aufgeschaltet. Dadurch zählt der Hardwareinterruptzähler 7 nach
oben.
-
Die
Interruptanforderungssignal-Erzeugungsschaltung 8 im Interruptcontroller 4 ermittelt,
ob der Zählerwert
des Hardwareinterruptzählers 7 1 oder
mehr oder 0 entspricht. Wenn der Zählwert 1 oder mehr entspricht,
wird das Hardwareinterrupt-Anforderungssignal 15 an die
CPU 1 aufgeschaltet. Wenn der Zählwert 0 ist, wird das Hardwareinterrupt-Anforderungssignal 15 an
die CPU 1 negiert.
-
Nach
dem Aufschalten des Hardwareinterrupt-Anforderungssignals 15 startet
die CPU 1 die Ausführung
einer Hardwareinterrupt-Ausnahmehandhabungsroutine (Hardwareinterrupt-Ausnahmeverarbeitungsroutine).
-
Als
Interruptanforderung-Entfernverarbeitung vor dem Ausführen einer
Rückkehranweisung von
der Ausnahmeverarbeitung führt
die CPU 1, um die Hardwareinterrupt-Ausnahmehandhabungsroutine
zu beenden, eine Speicheranweisung für den Schreibdatenwert 0 an
der dem Hardwareinterruptzähler 7 zugeordneten
Adresse aus. Dadurch zählt der
Hardwareinterruptzähler 7 nach
unten.
-
Die
CPU 1 führt
die Rückkehranweisung
von der Ausnahmeverarbeitung aus, um sich dadurch aus der Hardwareinterrupt-Aus nahmehandhabungsroutine
zurückzuziehen.
-
Wenn
der Zählerwert
des Hardwareinterruptzählers 7 nach
dem Herunterzählen
0 ist, wird das Hardwareinterrupt-Anforderungssignal 15 negiert. Wenn
der Zählerwert
des Hardwareinterruptzählers nach
dem Herunterzählen
1 oder mehr ist, wird das Hardwareinterrupt-Anforderungssignal 15 kontinuierlich
aufgeschaltet. Daher startet die CPU 1 die Hardwareinterrupt-Ausnahmehandhabungsroutine
erneut.
-
Wenn
die CPU 1 eine Ladeanweisung für die dem Hardwareinterruptzähler 7 zugeordnete
Adresse ausführt,
platziert die Interner-Bus-Schnittstellenschaltung 5 im
Interruptcontroller 4 den Zählerwert des Hardwareinterruptzählers 7 selbst
auf dem internen Datenbus 1. Daher kann die CPU 1 den Zählerwert
lesen.
-
Wenn
mehrere Interruptereignisse auftreten, bestimmt eine Steuerschaltung
(nicht dargestellt) im Interruptcontroller die Prioritätsreihenfolge
für die
Interruptverarbeitung, und das Interruptanforderungssignal wird
entsprechend derselben an die CPU ausgegeben.
-
Wie
oben beschrieben, zählen
beim Datenverarbeitungssystem gemäß der ersten Ausführungsform
die Zähler
so oft hoch, wie es der Anzahl des Auftretens desselben Interruptanforderung-Erzeugungsereignisses
entspricht, und das Interruptanforderungssignal wird aufgeschaltet,
wenn der Zählerwert
nicht 0 ist. Daher kann das Datenverarbeitungssystem das Interruptanforderungssignal
kontinuierlich aufschalten, bis so viele Herunterzähl-Verarbeitungsvorgänge ausgeführt sind,
wie Hochzähl-Verarbeitungsvorgänge ausgeführt wurden.
-
Ferner
kann die CPU 1, da der Zähler die Anzahl des Auftretens
desselben Interruptanforderung-Erzeugungsereignisses speichert und
das Interruptanforderungssignal kontinuierlich aufgeschaltet wird,
die Interrupt-Ausnahmehandhabungsroutine so oft ausführen, wie
es der Anzahl des Auftretens desselben Interruptanforderung-Erzeugungsereignisses entspricht.
-
Wenn
dasselbe interne Modul mehrere verschiedene Interruptereignisse
an den Interruptcontroller 4 ausgibt, ist es bevorzugt,
einen Hardwareinterruptzähler
für jedes
der Interruptereignisse anzubringen. Daher ist es möglich, die
Anzahl des Auftretens desselben Interruptereignisses für jedes
Interruptereignis selbst dann zu speichern, wenn dasselbe interne
Modul mehrere verschiedene Interruptereignisse ausgibt.
-
(Zweite Ausführungsform)
-
Die 4 ist
ein Blockdiagramm, das die Konfiguration eines Datenverarbeitungssystems
gemäß einer
zweiten Ausführungsform
der Erfindung zeigt. Die 5 ist ein zeitbezogenes Diagramm,
das eine Softwareinterruptverarbeitung (Softwareinterrupt-Ausnahmehandling)
im Datenverarbeitungssystem gemäß der zweiten
Ausführungsform
zeigt. Die 6 ist ein zeitbezogenes Diagramm,
das eine Hardwareinterruptverarbeitung (Hardwareinterrupt-Ausnahmehandling)
im Datenverarbeitungssystem gemäß der zweiten
Ausführungsform
zeigt.
-
Unter
Bezugnahme auf die 4 wird als Erstes ein Beispiel
für die
Konfiguration des Datenverarbeitungssystems gemäß der zweiten Ausführungsform
beschrieben. Beim Datenverarbeitungssystem gemäß der zweiten Ausführungsform
wird an Stelle der Herunterzählsignale 10 und 11 beim
Datenverarbeitungssystem gemäß der ersten
Ausführungsform
ein von einer CPU 1 ausgegebenes Rückkehranweisungs-Ausführsignal 16 in
jeden Softwareinterruptzähler 6 und
jeden Hardwareinterruptzähler 7 eingegeben,
und jeder Zähler
kann auf dieses hin herunter zählen.
-
Als
Nächstes
wird eine Betriebsweise des Datenverarbeitungssystems gemäß der zweiten
Ausführungsform
beschrieben.
-
Die
Softwareinterruptverarbeitung (Softwareinterrupt-Ausnahmehandling)
wird wie folgt ausgeführt
(siehe die 5).
-
Als
Erstes wird, wenn die CPU 1 eine Speicheranweisung für eine dem
Softwareinterruptzähler 6 in
einem Interruptcontroller 4a zugeordnete Adresse ausführt, diese
Adresse auf einem internen Adressenbus 2 platziert, und
Schreibdaten werden auf einem internen Datenbus 3 platziert.
-
Eine
Interner-Bus-Schnittstellenschaltung 5 im Interruptcontroller 4a ermittelt,
dass die Adresse auf dem internen Adressenbus 2 die Adresse
des Softwareinterruptzählers 6 ist.
Ferner ermittelt die Interner-Bus-Schnittstellenschaltung 5,
ob der Schreibdatenwert auf dem internen Datenbus 3 der
Wert 1 oder 0 ist. Wenn der Schreibdatenwert 1 ist, wird ein Hochzählsignal 9 für den Softwareinterruptzähler 6 aufgeschaltet.
Dadurch zählt
der Softwareinterruptzähler 6 nach
oben.
-
Eine
Interruptsignal-Erzeugungsschaltung 8 im Interruptcontroller 4a ermittelt,
ob der Zählerwert des
Softwareinterruptzählers
1 oder mehr oder 0 ist. Wenn der Zählerwert 1 oder mehr ist, wird
ein Softwareinterrupt-Anforderungssignal 14 an die CPU 1 aufgeschaltet.
Wenn der Zählerwert
0 ist, wird das Softwareinterrupt-Anforderungssignal 14 an
die CPU 1 negiert.
-
Nach
dem Aufschalten des Softwareinterrupt-Anforderungssignals 14 startet
die CPU 1 die Ausführung
einer Softwareinterrupt-Ausnahmehandhabungsroutine (Softwareinterrupt-Aus nahmeverarbeitungsroutine).
-
Wenn
die CPU 1 eine Rückkehranweisung von
der Ausnahmeverarbeitung ausführt,
um die Interrupt-Ausnahmehandhabungsroutine zu beenden, wird das
Rückkehranweisungs-Ausführsignal 16 von der
CPU 1 an den Interruptcontroller 4a aufgeschaltet.
Dadurch zählt
der Softwareinterruptzähler 6 nach unten.
Außerdem
zieht sich die CPU 1 aus der Softwareinterrupt-Ausnahmehandhabungsroutine
zurück.
-
Wenn
der Zählwert
des Softwareinterruptzählers 6 nach
dem Herunterzählen
0 ist, wird das Softwareinterrupt-Anforderungssignal 14 negiert. Wenn
der Zählerwert
des Softwareinterruptzählers 6 nach
dem Herunterzählen
1 oder mehr ist, wird das Softwareinterrupt-Anforderungssignal 14 kontinuierlich
ausgeschaltet. Daher startet die CPU 1 die Softwareinterrupt-Ausnahmehandhabungsroutine
erneut.
-
Wenn
die CPU 1 eine Ladeanweisung für die dem Softwareinterruptzähler 6 zugeordnete
Adresse ausführt,
platziert die Interner-Bus-Schnittstellenschaltung 5 im
Interruptcontroller 4a den Zählerwert des Softwareinterruptzählers 6 selbst
auf dem internen Datenbus 3. Die CPU 1 kann daher
den Zählerwert
lesen.
-
Die
Hardwareinterruptverarbeitung (Hardwareinterrupt-Ausnahmeverarbeitung)
wird wie folgt ausgeführt
(siehe die 6).
-
Als
Erstes wird, wenn an den internen Peripheriemodulen/externen Anschlüssen 12 irgendein Ereignis
auftritt, das Interruptereignis-Auftrittssignal 13 an den
Interruptcontroller 4a aufgeschaltet. Dadurch zählt der
Hardwareinterruptzähler 7 nach oben.
-
Die
Interruptanforderungssignal-Erzeugungsschaltung 8 im Interruptcontroller 4a ermittelt, ob
der Zählerwert
des Hardwareinterruptzählers 7 1 oder
mehr oder 0 ist. Wenn der Zählerwert 1 oder mehr
ist, wird ein Hardwareinterrupt-Anforderungssignal 15 an
die CPU 1 aufgeschaltet. Wenn der Zählerwert 0 ist, wird das Hardwareinterrupt-Anforderungssignal 15 an
die CPU 1 negiert.
-
Nach
dem Aufschalten des Hardwareinterrupt-Anforderungssignals 15 startet
die CPU 1 das Ausführen
einer Hardwareinterrupt-Ausnahmehandhabungsroutine (Hardwareinterrupt-Ausnahmeverarbeitungsroutine).
-
Wenn
die CPU 1 eine Rückkehranweisung von
der Ausnahmeverarbeitung ausführt,
um die Interrupt-Ausnahmehandhabungsroutine zu beenden, wird das
Rückkehranweisungs-Ausführsignal 16 von der
CPU 1 an den Interruptcontroller 4a aufgeschaltet,
und der Hardwareinterruptzähler 7 zählt nach
unten. Außerdem
zieht sich die CPU 1 aus der Hardwareinterrupt-Ausnahmehandhabungsroutine
zurück.
-
Wenn
der Zählerwert
des Hardwareinterruptzählers 7 nach
dem Herunterzählen
0 ist, wird das Hardwareinterrupt-Anforderungssignal 15 negiert. Wenn
der Zählerwert
des Hardwareinterruptzählers 7 nach
dem Herunterzählen
1 oder mehr ist, wird das Hardwareinterrupt-Anforderungssignal 15 kontinuierlich
aufgeschaltet. Daher startet die CPU 1 die Hardwareinterrupt-Ausnahmehandhabungsroutine
erneut.
-
Wenn
die CPU 1 eine Ladeanweisung für die dem Hardwareinterruptzähler 7 zugeordnete
Adresse ausführt,
platziert die Interner-Bus-Schnittstellenschaltung 5 im
Interruptcontroller 4a den Zählerwert des Hardwareinterruptzählers 7 selbst
auf dem internen Datenbus 3. Die CPU 1 kann daher
den Zählerwert
lesen.
-
Wie
oben beschrieben, kann das Datenverarbeitungssystem gemäß der zweiten
Ausführungsform
dieselben Vorteile wie das Datenverarbeitungssystem gemäß der ersten
Ausführungsform
erzielen.
-
(Dritte Ausführungsform)
-
Die 7 ist
ein Blockdiagramm, die die Konfiguration eines Datenverarbeitungssystems
gemäß einer
dritten Ausführungsform
der Erfindung zeigt.
-
Beim
Datenverarbeitungssystem gemäß der dritten
Ausführungsform
werden ein Interruptzähler und
ein Interruptanforderungssignal für eine Softwareinterruptverarbeitung
(Softwareinterrupt-Ausnahmehandling) und eine Hardwareinterruptverarbeitung (Hardwareinterrupt-Ausnahmehandling)
gemeinsam verwendet.
-
Das
heißt,
dass in einem Interruptcontroller 4b des Datenverarbeitungssystems
der Softwareinterruptzähler 6 und
der Hardwareinterruptzähler 7 gemäß der ersten
Ausführungsform
durch einen gemeinsamen Interruptzähler 17 ersetzt sind
und ein ODER-Gatter 18 vorhanden ist. Außerdem werden das
Hochzählsignal 9 von
einer Interner-Bus-Schnittstellenschaltung 5 und ein Interruptereignis-Auftrittssignal 13 von
internen Peripheriemodulen/externen Anschlüssen 12 in das ODER-Gatter 18 eingegeben. Ein
Ausgangssignal des ODER-Gatters 18 wird an einem Hochzähleingang
des gemeinsamen Hardwareinterruptzählers 17 eingegeben,
und ein Herunterzählsignal 10 wird
an einem Herunterzähleingang desselben
eingegeben. Ferner sind das Softwareinterrupt-Anforderungssignal 14 und
das Hardwareinterrupt-Anforderungssignal 13 durch ein Interruptanforderungssignal 19 ersetzt,
das gemeinsam für
die Softwareinterruptverarbeitung und die Hardwareinterruptverarbeitung verwendet
wird.
-
Auf
diese Weise zählt
der gemeinsame Hardwareinterruptzähler 17 für jede Softwareverarbeitung
durch die CPU 1 und jedes Hardwareereignis durch die internen
Peripheriemodule/externen Anschlüsse 12 hoch.
-
Wie
oben beschrieben, ist es beim Datenverarbeitungssystem gemäß der dritten
Ausführungsform,
wenn sowohl für
einen Softwareinterrupt als auch einen Hardwareinterrupt dieselbe
Interrupt-Ausnahmehandhabungsroutine ausgeführt wird, möglich, eine Schaltungsfläche zu verkleinern
und ein Programm im Vergleich zur ersten und zweiten Ausführungsform
zu vereinfachen.
-
(Vierte Ausführungsform)
-
Die 8 ist
ein Blockdiagramm, das die Konfiguration eines Datenverarbeitungssystems
gemäß einer
vierten Ausführungsform
der Erfindung zeigt.
-
Ähnlich wie
bei der dritten Ausführungsform sind
beim Datenverarbeitungssystem gemäß der vierten Ausführungsform
ein Hardwareinterruptzähler
und ein Interruptanforderungssignal für eine Softwareinterruptverarbeitung
(Softwareinterrupt-Ausnahmehandling)
und eine Hardwareinterruptverarbeitung (Hardwareinterrupt-Ausnahmehandling)
gemeinsam verwendet.
-
Das
heißt,
dass ein zusätzliches
Register 20, das über
einen internen Adressenbus 2 und einen internen Datenbus 3 Daten
von der CPU 1 lesen und Daten an diese schreiben kann,
in einem Interruptcontroller 4c des Datenverarbeitungssystems
vorhanden ist. Außerdem
wird ein Bit im Register 20 als Softwareinterrupt/Hardwareinterrupt-Auswählbit 21 gesetzt.
-
Außerdem ist
eine Auswähleinheit 22,
die das Hochzählsignal 9 von
der Interner-Bus-Schnittstellenschaltung 5 oder das Interruptereignis-Auftrittssignal 13 von
den internen Peripheriemodulen/externen Anschlüssen 12 entsprechend
dem Softwareinterrupt/Hardwareinterrupt-Auswählbit 21 auswählt, vorhanden,
und ein Ausgangssignal derselben wird an einem Hochzähleingang
eines gemeinsamen Hardwareinterruptzählers 17 eingegeben.
Daher zählt
der gemeinsame Hardwareinterruptzähler 17 auf entweder
eine Softwareverarbeitung durch die CPU 1 oder ein Hardwareereignis durch
die internen Peripheriemodule/externen Anschlüsse 12 hoch.
-
Wenn
der Zählerwert
des gemeinsamen Hardwareinterruptzählers 17 1 oder mehr
entspricht, schaltet eine Interruptanforderungssignal-Erzeugungsschaltung 8 nur
entweder das Softwareinterrupt-Anforderungssignal oder das Hardwareinterrupt-Anforderungssignal
an die CPU 1 entsprechend dem Softwareinterrupt/Hardwareinterrupt-Auswählbit 21 auf.
-
Wie
oben beschrieben, werden beim Datenverarbeitungssystem gemäß der vierten
Ausführungsform
verschiedene Interrupt-Ausnahmehandhabungsroutinen
für eine
Softwareinterruptverarbeitung bzw. eine Hardwareinterruptverarbeitung
ausgeführt.
Wenn jedoch ein Softwareinterrupt und ein Hardwareinterrupt nicht
gleichzeitig auftreten, oder wenn die Interruptverarbeitung unter
Verwendung des Zählers
nur für
einen Softwareinterrupt oder einen Hardwareinterrupt ausgeführt wird,
kann beim Datenverarbeitungssystem die Schaltungsfläche im Vergleich
zur ersten und zweiten Ausführungsform verringert
werden. Dadurch ist es möglich,
das Datenverarbeitungssystem bei kleinerer Schaltungskonfiguration
bei einem großen
Zweckbereich anzuwenden.
-
(Fünfte Ausführungsform)
-
Die 9 ist
ein Blockdiagramm, das die Konfiguration eines Datenverarbeitungssystems
gemäß einer
fünften
Ausführungsform
der Erfindung zeigt.
-
Beim
Datenverarbeitungssystem gemäß der fünften Ausführungsform
kann eine Interrupt-Prioritätsreihenfolge
für jede
Interruptanforderung wahlfrei eingestellt werden.
-
Das
heißt,
dass ein Interrupt-Prioritätsniveauregister 23,
das über
einen internen Adressenbus 2 und einen internen Datenbus 3 Daten
von einer CPU 1 lesen und Daten an diese schreiben kann,
in einem Interruptcontroller 4d des Datenverarbeitungssystems
vorhanden ist, wodurch es möglich
ist, die Interrupt-Prioritätsreihenfolge
für jede
Interruptanforderung wahlfrei einzustellen.
-
Im
Interruptcontroller 4d ermittelt eine Prioritätsreihenfolge-Ermittlungsschaltung 24 die
Prioritätsreihenfolge
für jede
erzeugte Softwareinterruptanforderung und Hardwareinterruptanforderung
entsprechend der Einstellung des Interrupt-Prioritätsniveauregisters 23,
sie wählt
die Interruptanforderungsquelle mit der höchsten Priorität aus, und
sie überträgt Information
zu dieser (das oben beschriebene Interruptanforderungssignal) an
die CPU 1. Außerdem überträgt die Prioritätsreihenfolge-Ermittlungsschaltung 24 auch
Prioritätsniveauinformation zur
Interruptanforderungsquelle an die CPU 1. Auf diese Weise
ist es möglich,
wenn die Information zur Interruptanforderungsquelle an die CPU 1 übertragen
wird, während
diese eine Interruptverarbeitung ausführt, zu ermitteln, ob die gerade
ausgeführte
Interruptverarbeitung (Interrupt-Ausnahmehandling) oder eine neu übertragene
Interruptanforderung höhere
Priorität
hat und die CPU 1 kann die Verarbeitung mit der höheren Priorität als erste
ausfüh ren.
-
Wie
oben beschrieben, kann beim Datenverarbeitungssystem gemäß der fünften Ausführungsform
eine flexiblere Steuerung erzielt werden, wenn mehrere Typen von
Interrupts gleichzeitig erzeugt werden und die Prioritätsreihenfolge
fallabhängig
dynamisch zu ändern
ist.
-
(Spezielles Beispiel einer
Interruptverarbeitung)
-
Die 10 ist
ein Diagramm, das ein Beispiel eines CPU-Ausführungszustands
und eines Interruptverarbeitungs(Interrupt-Ausnahmehandling)-Ablaufs
in den Datenverarbeitungssystemen gemäß der ersten bis fünften Ausführungsform
der Erfindung zeigt.
-
Gemäß der 10 ist
eine Interrupt-Ausnahmehandhabungsroutine 1 (Routine 1) eine Routine,
wie sie dann ausgeführt
wird, wenn ein Interrupt 1 mit höherer
Priorität
als der eines Interrupts 2 erzeugt wird. Hierbei ist angenommen,
dass der Interrupt 1 regelmäßig erzeugt
wird. Während
eines Interrupt-Ausnahmehandlings wird ein Status überwacht. Wenn
eine bestimmte Bedingung erfüllt
ist, wird 1 in den dem Interrupt 2 entsprechenden Softwareinterruptzähler geschrieben,
um den Interrupt 2 zu erzeugen. Zum Beispiel überwacht im Fall eines Mikrocomputers,
der zur Steuerung eines Automobil-Kraftübertragungsstrangs oder dergleichen
verwendet wird, dieser Mikrocontroller, ob ein Fahrpedal betätigt wird, und
wenn dies betätigt
wird, wird eine Kraftstoff-Einspritzverarbeitung ausgeführt.
-
Auch
ist eine Interrupt-Ausnahmehandhabungsroutine 2 (Routine 2) eine
Routine, wie sie ausgeführt
wird, wenn der Interrupt 2 mit niedriger Priorität als der Interrupt 1 erzeugt
wird. Der Interrupt 2 wird während
der Interrupt-Ausnahme handhabungsroutine 1 ausgeführt, und
es handelt sich um einen Softwareinterrupt unter Verwendung des
Softwareinterruptzählers.
Wenn während
der Ausführung
der Interrupt-Ausnahmehandhabungsroutine 1 eine Bedingung erfüllt wird,
wird 1 in den Softwareinterruptzähler 6 geschrieben.
Nach dem Ausführen
der Interrupt-Ausnahmehandhabungsroutine 2 wird 0 in den dem Interrupt
2 entsprechenden Softwareinterruptzähler 6 geschrieben.
Die Interrupt-Ausnahmehandhabungsroutine 2 ist z. B. eine Verarbeitungroutine zum
tatsächlichen
Ausführen
der Kraftstoffeinspritzung. Die Routine 2 benötigt viel Zeit zum Berechnen der
Einspritzmenge.
-
Als
Erstes startet die CPU 1, wenn der Interrupt 1 während der
Ausführung
einer Hauptroutine erzeugt wird (Schritt S100) die Ausführung der
Interrupt-Ausnahmehandhabungsroutine 1 (Schritt S101). Wenn eine
Bedingung nicht erfüllt
ist, zieht sich die CPU 1 aus der Interrupt-Ausnahmehandhabungsroutine
1 zurück
(sie beendet die Interrupt-Ausnahmehandhabungsroutine 1), und sie
kehrt zur Hauptroutine zurück.
Dabei ist der Zählwert
des Softwareinterruptzählers
0.
-
Wenn
der Interrupt 1 während
der Ausführung
der Hauptroutine erneut erzeugt wird (Schritt S102), startet die
CPU 1 die Ausführung
der Interrupt-Ausnahmehandhabungsroutine 1 (Schritt S103). Wenn
eine Bedingung erfüllt
ist, schreibt die CPU 1 den Wert 1 in den Softwareinterruptzähler 6,
und dann zieht sie sich aus der Interrupt-Ausnahmehandhabungsroutine
1 zurück.
Dabei ist der Zählerwert des
Softwareinterruptzählers 6 der
Wert 1.
-
Wenn
der Interrupt 2 erzeugt wird, nachdem die CPU 1 den Wert
1 in den Softwareinterruptzähler 6 geschrieben
hat oder sie die Interrupt-Ausnahmehandhabungsroutine 1 für den Interrupt 1 beendet hat,
startet die CPU 1 die Ausführung der Interrupt-Ausnahmehandhabungsroutine
2 (Schritt S104). Hier bei ist angenommen, dass der Interrupt 1 während der
Ausführung
der Interrupt-Ausnahmehandhabungsroutine 2 erzeugt wird (Schritt
S105).
-
Obwohl
die CPU 1 die Interrupt-Ausnahmehandhabungsroutine 2 ausführt, startet
sie die Ausführung
der Interrupt-Ausnahmehandhabungsroutine 1, da der Interrupt 1 mit
höherer
Priorität
als der des Interrupts 2 erzeugt wird (Schritt S106). Wenn eine Bedingung
erfüllt
ist, schreibt die CPU 1 den Wert 1 in den Softwareinterruptzähler 6 ein,
und dann zieht sie sich aus der Routine 1 zurück. Dabei beträgt der Zählerwert
des Softwareinterruptzählers,
entsprechend der Interrupt-Ausnahmehandhabungsroutine 2,
2.
-
Da
sich die CPU 1 aus der Interrupt-Ausnahmehandhabungsroutine
1 zurückgezogen
hat, startet sie die Ausführung
der Interrupt-Ausnahmehandhabungsroutine 2 neu (Schritt S105).
-
Wenn
die CPU 1 die Interrupt-Ausnahmehandhabungsroutine 2 beendet
und 0 in den Softwareinterruptzähler 6 einschreibt,
zieht sie sich aus der Routine 2 zurück (Schritt S108). Dabei beträgt der Zählerwert
des Softwareinterruptzählers
1. Da der Zählerwert
nicht 0 ist, wird der Interrupt 2 erneut erzeugt und die CPU 1 startet
die Ausführung
der Interrupt-Ausnahmehandhabungsroutine
2 (Schritt 109). Nun wird angenommen, dass der Interrupt 1 während der
Ausführung
der Interrupt-Ausnahmehandhabungsroutine 2 erzeugt wird (Schritt
S110).
-
Obwohl
die CPU 1 die Interrupt-Ausnahmehandhabungsroutine 2 ausführt, startet
sie die Ausführung
der Interrupt-Ausnahmehandhabungsroutine 1, da der Interrupt 1 mit
höherer
Priorität
als der des Interrupts 2 erzeugt wird (Schritt S111). Wenn eine Bedingung
nicht erfüllt
ist, zieht sich die CPU 1 aus der Routine 1 zurück.
-
Da
sich die CPU 1 aus der Interrupt-Ausnahmehandhabungsroutine
1 zurückzieht,
startet sie die Ausführung
der Interrupt-Ausnahmehandhabungsroutine 2 neu (Schritt S112).
-
Nachdem
die CPU 1 die Interrupt-Ausnahmehandhabungsroutine 2 beendet
hat und 0 in den Softwareinterruptzähler 6 geschrieben
hat, zieht sie sich aus der Routine 2 zurück (Schritt S113). Dabei beträgt der Zählerwert
0.
-
Wenn
der Interrupt 1 während
der Ausführung
der Hauptroutine erzeugt wird (Schritt S114), startet die CPU 1 die
Interrupt-Ausnahmehandhabungsroutine 1 (Schritt S115). Wenn eine
Bedingung nicht erfüllt
ist, zieht sich die CPU 1 aus der Routine 1 zurück, und
sie kehrt zur Hauptroutine zurück.
Danach wird, ähnlich
wie bei den obigen Schritten, der Interrupt 1 während der Ausführung der
Hauptroutine erzeugt (Schritt S116).
-
(Sechste Ausführungsform)
-
Die 11 ist
ein Blockdiagramm, das die Konfiguration eines Datenverarbeitungssystems
gemäß einer
sechsten Ausführungsform
der Erfindung zeigt.
-
Unter
Bezugnahme auf die 11 wird als Erstes ein Beispiel
der Konfiguration des Datenverarbeitungssystems gemäß der sechsten
Ausführungsform
beschrieben. Das Datenverarbeitungssystem gemäß der sechsten Ausführungsform
verwendet ein Peripheriemodul 42 wie einen AD-Wandler und
einen DMAC 34 als interne Peripheriemodule/externe Anschlüsse 12 gemäß der ersten
bis fünften
Ausführungsform.
Außerdem
wird vom Peripheriemodul 42 und dem DMAC 34 ein
Interruptereignis-Auftrittssignal 13 in einen Hardwareinterruptzähler 7 in
einem Interruptcontroller 4 eingegeben. Genauer gesagt, können, selbst
dann, wenn mehrere Interruptanforderungen von einer bestimmten Anforderungsquelle erzeugt
werden, d.h., wenn mehrere Einzeldaten sukzessive abgerufen werden,
um mehrere Hardwareinterruptanforderungen zu erzeugen, wenn bei
jeder Datenübertragung
vom AD-Wandler unter Verwendung des DMAC 34 ein Hardwareinterrupt
erzeugt wird (das Interruptereignis-Auftrittssignal 13 ausgegeben
wird) und gleichzeitig eine Verarbeitung mit höherer Priorität (z. B.
eine CPU-Verarbeitung) vorhanden ist, und selbst dann, wenn dieselbe
Hardwareinterruptanforderung erzeugt wird, während gerade eine Hardwareinterruptverarbeitung
(Hardwareinterrupt-Ausnahmehandling) ausgeführt wird, wegen der langen
Verarbeitungszeit derselben, so viele Interruptverarbeitungen ausgeführt werden,
wie Interruptanforderungen vorliegen, wenn die Konfiguration gemäß der sechsten
Ausführungsform
verwendet wird.
-
Das
Datenverarbeitungssystem gemäß der sechsten
Ausführungsform
verfügt
beispielsweise über
die CPU 1, den Interruptcontroller 4, den DMAC 34,
eine FPU 37, einen internen RAM 38, eine Peripheriebus-Steuerschaltung 39 und
ein Peripheriemodul 42 wie den AD-Wandler. Die CPU 1,
der Interruptcontroller 4, der DMAC 34, die FPU 37,
der interne RAM 38 und die Peripheriebus-Steuerschaltung 39 sind
durch einen internen Adressenbus 2 oder einen internen
Datenbus 3 elektrisch miteinander verbunden. Die Peripheriebus-Steuerschaltung 39 ist
durch einen Peripherie-Adressenbus 40 und einen Peripherie-Datenbus 41 elektrisch
mit dem Peripheriemodul 42 verbunden.
-
Der
DMAC 34 verfügt
z. B. über
eine Interner-Bus-Schnittstellenschaltung 35, eine Ganzzahl/Gleitkommazahl-Wandlerschaltung 36 und
eine Steuerschaltung (nicht dargestellt), die Übertragungsinformation einstellt
und einen Übertragungsvorgang
tatsächlich
steuert. Die Interner-Bus-Schnitt stellenschaltung 35 ist
mit der Ganzzahl/Gleitkommazahl-Wandlerschaltung 36 verbunden,
um ganzzahlige Daten und Gleitkommadaten zu übertragen. Ferner wird das
Interruptereignis-Auftrittssignal 13 vom Peripheriemodul 42 in
den Interruptcontroller 4 eingegeben.
-
Als
Nächstes
wird eine Betriebsweise des Datenverarbeitungssystems gemäß der sechsten Ausführungsform
beschrieben.
-
Für den DMAC 34 werden
eine Übertragungsstartbedingung,
eine Übertragungsquellenadresse
und eine Übertragungszieladresse
eingestellt. Hierbei wird angenommen, dass eine dem Peripheriemodul
(z. B. dem AD-Wandler) 42 zugeordnete Adresse die Übertragungsquellenadresse
ist und eine dem internen RAM 38 zugeordnete Adresse die übertragungszieladresse
ist. Wenn die für
den DMAC 34 eingestellte Übertragungsstartbedingung erfüllt ist,
platziert der DMAC 34 die eingestellte Übertragungsquellenadresse auf
dem internen Adressenbus 2, um Daten an dieser zu lesen.
-
Die
Peripheriebus-Steuerschaltung 39 platziert die Adresse,
die auf dem internen Adressenbus 2 platziert wurde, auf
dem Peripherie-Adressenbus 40.
-
Das
Peripheriemodul 42 platziert Daten an der zugeordneten
Adresse auf dem Peripherie-Datenbus 41.
-
Die
Peripheriebus-Steuerschaltung 39 platziert die Daten, die
auf dem Peripherie-Datenbus 41 platziert wurden, auf dem
internen Datenbus 3.
-
Die
Interner-Bus-Schnittstellenschaltung 35 im DMAC 34 erfasst
die auf dem internen Datenbus 3 platzierten Daten, und
sie überträgt sie an
die Ganzzahl/Gleitkommazahl-Wandlerschaltung 36 im DMAC 34.
Die Ganzzahl/Gleitkommazahl-Wand lerschaltung 36 wandelt
die in einem Ganzzahlenformat empfangenen Daten in ein Gleitkommazahlformat um,
und sie überträgt die gewandelten
Daten an die Interner-Bus-Schnittstellenschaltung 35.
-
Die
Interner-Bus-Schnittstellenschaltung 35 platziert die Übertragungszieladresse
auf dem internen Adressenbus 2, und sie platziert die in
das Gleitkommazahlformat gewandelten Daten auf dem internen Datenbus 3.
-
Der
interne RAM 38 schreibt die auf dem internen Datenbus 3 platzierten
Daten an der Adresse ein, die auf dem internen Adressenbus 2 platziert
ist.
-
Die
CPU 1 oder die FPU 37 platziert die Übertragungszieladresse
auf dem internen Adressenbus 2, wenn sie die durch den
DMAC 34 übertragenen
Daten liest.
-
Der
interne RAM 38 platziert die Daten, die an der auf dem
internen Adressenbus 2 platzierten Adresse eingeschrieben
sind, auf dem internen Datenbus 3.
-
Die
CPU 1 oder die FPU 37 erfasst Daten durch Abrufen
der auf dem internen Datenbus 3 platzierten Daten.
-
Wie
oben beschrieben, können
beim Datenverarbeitungssystem gemäß der sechsten Ausführungsform,
da die Funktion zum Wandeln der Daten im Ganzzahlformat in Daten
im Gleitkommazahlformat im DMAC 34 vorhanden ist, die durch
diesen übertragenen
Daten als Gleitkommazahlen erfasst werden.
-
Ferner
ist es überflüssig, dass
die CPU 1 oder die FPU 37 die Daten im Ganzzahlenformat
als solche im Gleitkommazahlenformat wandelt, so dass der Systemdurchsatz
verbessert ist.
-
(Siebte Ausführungsform)
-
Die 12 ist
ein Blockdiagramm, das die Konfiguration eines Datenverarbeitungssystems
gemäß einer
siebten Ausführungsform
der Erfindung zeigt.
-
Beim
Datenverarbeitungssystem gemäß der siebten
Ausführungsform
sind der interne Adressenbus 2 und der interne Datenbus 3 im
Datenverarbeitungssystem gemäß der sechsten
Ausführungsform geteilt,
und der interne Adressenbus 2 und der interne Datenbus 3 sind
mit einem anderen internen Adressenbus 44 und einem anderen
internen Datenbus 45 mittels einer Busbrücke 43 verbunden.
-
Mit
dem internen Adressenbus 2 und dem internen Datenbus 3 sind
eine CPU 1 und eine FPU 37 verbunden.
-
Mit
den beiden Paaren des internen Adressenbusses 2 und des
internen Datenbusses sowie des internen Adressenbusses 44 und
des internen Datenbusses 45 ist ein interner RAM 38 verbunden. Auf
diesen internen RAM 38 kann daher durch beide Paare zugegriffen
werden.
-
Mit
dem internen Adressenbus 44 und dem internen Datenbus 45 ist
ein DMAC 34 verbunden, der diese Busse verwendet, wenn
er Daten von einer Übertragungsquelle
an ein Übertragungsziel überträgt.
-
Wie
oben beschrieben, kann die CPU 1 beim Datenverarbeitungssystem
gemäß der siebten
Ausführungsform
den internen Adressenbus 2 und den internen Datenbus 3 selbst
dann verwenden, während
der DMAC 34 Daten überträgt. Daher
kann die CPU 1 eine Anweisung an den internen RAM 38 ohne
Eingriff durch den DMAC 34 ausführen, wodurch der Systemdurchsatz verbessert
wird.
-
(Achte Ausführungsform)
-
Die 13 ist
ein Blockdiagramm, das die Konfiguration eines Datenverarbeitungssystems
gemäß einer
achten Ausführungsform
der Erfindung zeigt.
-
Beim
Datenverarbeitungssystem gemäß der achten
Ausführungsform
ist im DMAC 34 gemäß der sechsten
Ausführungsform
ein Register 46 vorhanden, das selektiv bestimmten kann,
welcher Teil von von einer Übertragungsquelle
gelesenen Daten verwendet wird.
-
Wenn
ein Peripheriemodul 42 (z. B. ein AD-Wandler) über eine
Auflösung
von z. B. 12 Bits verfügt,
haben Daten, die von analogen in digitale Daten gewandelt wurden,
12 Bits. Indessen verfügen die
internen Busse und die Peripheriebusse über die n-te Potenz von 2 von
Bits, mit 32 Bits, 16 Bits oder 8 Bits. Daher kann dann, wenn ein
Datenwert von 16 Bits zu lesen ist, wenn der digital gewandelte
Datenwert z. B. die ganze Zahl 12'h012 ist, der Datenwert 16'0h0120 gelesen werden,
wenn der AD-Wandler so konzipiert ist, dass er über links ausgerichtete Daten verfügt, und
es kann der Datenwert 16'h0012
gelesen werden, wenn der AD-Wandler so konzipiert ist, dass er über rechts
ausgerichtete Daten verfügt.
Es ist zu beachten, dass 12'h
12 Bits in Hexadezimalnotation repräsentiert und 16'h 16 Bits in Hexadezimalnotation
repräsentiert.
-
Um
die oben genannten Fälle
zu meistern, ist das Register 46 von 1 Bit im DMAC 34 vorhanden. Eine
Ganzzahl/Gleitkommazahl-Wandlerschaltung 36 ermittelt auf
Grundlage des Registerwerts im Register 46, ob links ausgerichtete
Daten oder rechts ausgerichtete Daten für die von der Übertragungsquel le übertragenen
Daten effektiver sind.
-
Wie
oben beschrieben, kann das Datenverarbeitungssystem gemäß der achten
Ausführungsform
unabhängig
davon angewandt werden, ob die von der Übertragungsquelle gelesenen
Daten links oder rechts ausgerichtete Daten sind. Dadurch ist die Vielseitigkeit
einer Schnittstelle des Datenverarbeitungssystems zum Peripheriemodul
verbessert.
-
Vorstehend
wurde die durch die Erfinder der vorliegenden Erfindung geschaffene
Erfindung auf Grundlage der Ausführungsformen
konkret beschrieben. Jedoch ist die Erfindung selbstverständlich nicht auf
die vorstehenden Ausführungsformen
beschränkt,
und innerhalb des Schutzumfangs der Erfindung können verschiedene Modifizierungen
und Änderungen
vorgenommen werden.
-
Wie
es bisher detailliert ausgeführt
wurde, ist die in der vorliegenden Anmeldung offenbarte Erfindung
bei einem Datenverarbeitungssystem wie einem Mikrocomputer anwendbar.
Insbesondere ist die Erfindung optimal bei einem zur Echtzeitsteuerung verwendeten
Hochgeschwindigkeits-Mikrocomputer erzeugnis, einem zur Automobilsteuerung
oder Motorsteuerung verwendeten Mikrocomputererzeugnis oder einem
beliebigen Mikrocomputersystem unter Verwendung von Interrupts optimal
anwendbar.