-
Die
Erfindung betriff ein Verfahren zum Steuern eines Peripheriegeräts in einem
Computersystem mit einem Bus, einer mit dem Bus gekoppelten CPU,
wenigstens einem mit dem Bus gekoppelten Peripheriegerät und einem
mit dem Bus gekoppelten Systemspeicher, wobei dem wenigstens einen
Peripheriegerät
kein spezieller Peripherie-Controller im Computersystem zugeordnet
wird, wobei der Systemspeicher ein – Betriebssystem, wenigstens
ein Anwendungsprogramm und – Peripheriegerät-Routinen
speichert, wobei das Betriebssystem und das Anwendungsprogramm peripherie-controller-orientiert
sind, d.h. vom Vorhandensein eines Peripherie-Controllers ausgehen,
und wobei das Computersystem ferner eine mit dem Bus und dem wenigstens einen
mit dem Bus gekoppelten – Peripheriegerät gekoppelte
Zugriffsumlenklogik mit zum Betreiben des Peripheriegeräts erforderliche
Steuer-, Status- und Dateninformationen enthaltenden Registern aufweist.
-
Historisch
enthält
ein bekanntes Personalcomputersystem üblicherweise eine CPU, einen
mit der CPU gekoppelten Speicher und eine mit der CPU verbundene
Peripheriegerät-Schnittstelle. Peripheriegeräte des Computersystems
sind mit der Peripheriegerät-Schnittstelle
verbunden. Die CPU steuert die Peripheriegeräte zur Durchführung von
Peripheriegerät-Operationen über die
Peripheriegerät-Schnittstelle
an. Wenn ein Peripheriegerät
eine Peripheriegerät-Operation
durchführen
soll, erzeugt die Peripheriegerät-Schnittstelle
eine Unterbrechungsanforderung an die CPU. Die CPU unterbricht dann
ihre aktuelle Ausführung
und steuert das Peripheriegerät
zur Durchführung
der Peripheriegerät-Operation
an. Soft wareprogramme wurden gemäß dieser
Art der Architektur entwickelt.
-
Probleme
sind jedoch mit dieser Art des bekannten Computersystems verbunden.
Ein Problem besteht darin, daß mit
zunehmender Anzahl der von der CPU gesteuerten Peripheriegeräte die Verarbeitungszeit
der CPU zur Steuerung der Peripheriegerät-Operationen ebenfalls ansteigt.
Dies verringert üblicherweise
die für
die CPU zur Ausführung
von Anwendungsprogrammen verfügbare
Verarbeitungszeit. Dies beeinträchtigt
die Gesamtverarbeitungsgeschwindigkeit des Computersystems. Dies
ist insbesondere der Fall, wenn zusätzliche Funktionen, wie zum
Beispiel Datenkomprimierung und -dekomprimierung, Datenfehlererkennung
und -korrektur und Datencodierung und -decodierung, zu den Peripheriegeräten hinzugefügt werden. Üblicherweise
beansprucht jede der genannten zusätzlichen Funktionen eine erhebliche
Verarbeitungszeit.
-
Eine
bekannte Lösung
dieses Problems besteht darin, eine spezielle Mikrosteuereinrichtung bzw.
einen Mikrocontroller für
jedes Peripheriegerät zur
Verfügung
zu stellen. Die spezielle Mikrosteuereinrichtung übernimmt
alle Steuerfunktionen für
das Peripheriegerät
von der CPU und steuert das Peripheriegerät zur Durchführung einer
Peripheriegerät-Operation an, wenn
diese angefordert wird. Die CPU erzeugt üblicherweise die Anforderung
zur Peripheriegerät-Operation
für die
Mikrosteuereinrichtung und empfängt
die sich auf die Peripheriegerät-Operation
beziehenden Ergebnisdaten von der Mikrosteuereinrichtung. Die CPU
steuert die Peripheriegerät-Operation des Peripheriegerätes jedoch
nicht direkt.
-
Mit
dieser bekannten Lösung
sind jedoch noch immer Nachteile verbunden. Ein Nachteil besteht
darin, daß die
Herstellungskosten des Computersystems dazu tendieren, beträchtlich
anzusteigen, da jedes Peripheriegerät eine spezielle Mikrosteuereinrichtung
zur Steuerung der Operationen des Gerätes aufweist. Dies ist üblicherweise
der Fall, wenn das Computersystem eine große Anzahl von Peripheriegeräten aufweist.
-
Ein
weiterer Nachteil besteht darin, daß üblicherweise einige der Mikrosteuereinrichtungen
der Peripheriegeräte
die meiste Zeit nicht arbeiten. Dies führt dazu, daß die Ressourcen
der Mikrosteuereinrichtungen in dem System verschwendet werden. Außerdem haben
die Fortschritte in der Mikroprozessortechnologie zur Entwicklung
von Hochgeschwindigkeits- und Hochleistungsmikroprozessoren geführt. Wenn
ein derartiger Mikroprozesser als CPU in einem System verwendet
wird, beendet die Hochgeschwindigkeits- und Hochleistungs-CPU ihre
Ausführung üblicherweise,
bevor eine benötigte
Peripheriegerät-Operation
beendet ist. Dies führt
dazu, daß die CPU
auf die Ergebnisdaten aus der Mikrosteuereinrichtung wartet, wobei
dies dazu führt,
daß die CPU-Ressourcen
verschwendet werden.
-
Aufgabe
der vorliegenden Erfindung ist es, ein Computersystem zur Verfügung zu
stellen, das weniger oder keine Peripheriegerät-Controller zur Steuerung
der Operationen von Peripheriegeräten benötigt und dennoch weiterhin
mit peripheriegerät-controller-orientierter
Systemsoftware kompatibel ist.
-
Das
US-Patent Nr. 4,930,068 beschreibt ein Computersystem mit einer
Interrupt-Steuereinrichtung, die in Abhängigkeit von einem in dieser
Steuereinrichtung gesetzten Flag entweder ein normales Vektor-Interrupt
an einen Prozessor sendet oder in einem speziellen Modus, der Makroservice
genannt wird, den Prozessor nur anhält und das Interrupt selbst
durch einfache Speicheroperationen behandelt. Dies entlastet den
Prozessor für
diese speziellen Interrupts in der Abarbeitung der Interrupt-Service-Routinen
und erspart außerdem
das Aus- und Einlagern der Zustandsdaten vor und nach der Abarbeitung
der Interrupt-Service-Routinen.
-
Das
US-Patent Nr. 5,280,618 beschreibt ein Computersystem mit Peripherieeinrichtungen.
Die Druckschrift geht von einem Stand der Technik aus, bei dem mehrere
Peripherieeinrichtungen über
Interrupt-Anforderuagsleitungen mit einem Interrupt-Controller-Abschnitt
einer CPU gekoppelt sind. Um eine bessere Testmöglichkeit zu schaffen, schlägt die Druckschrift
vor, in die Interrupt-Anforderungsleitungen eine Einrichtung einzubinden,
die eine Entkopplung von Peripherieeinrichtungen und CPU gestattet. Damit
soll ermöglicht
werden, daß einerseits
ein simuliertes Interrupt-Signal an die CPU angelegt werden kann,
ohne daß tatsächlich von
dem zugehörigen
Peripheriegerät
ein solches Interrupt erzeugt worden ist, und daß andererseits ein von einer
Peripherieeinrichtung ausgegebenes Interrupt-Signal gelesen und
ausgewertet werden kann, ohne daß die Interrupt-Verarbeitung
der CPU freigegeben (demaskiert) werden muß, so daß die Interrupt-Service-Routine
nicht abgearbeitet wird.
-
Die
oben genannte Aufgabe wird erfindungsgemäß durch ein Verfahren mit den
Merkmalen des Patentanspruchs 1 bzw. ein Computersystem mit den Merkmalen
des Patentanspruchs 3 gelöst.
-
Es
wird ein Computersystem beschrieben. Das Computersystem enthält einen
Bus, eine mit dem Bus gekoppelte CPU und einen mit dem Bus gekoppelten
Speicher. Ein Peripheriegerät
(Peripherieeinrichtung 25) ist zur Durchführung einer
vorgegebenen Peripheriegerät-Operation
mit dem Bus gekoppelt. Eine Zugriffsumlenklogikeinheit ist mit dem Bus
und dem Peripheriegerät
gekoppelt, um die Unterbrechung (ein Interrupt) der CPU zur Steuerung des
Peripheriegerätes
für die
Peripheriegerät-Operation
zu veranlassen, wenn die Zugriffsumlenklogikeinheit eine Anforderung
für eine
Peripheriegerät-Operation
empfängt.
Die Zugriffsumlenklogikeinheit steuert das Peripheriegerät nicht
zur Durchführung
der Peripheriegerät-Operation
an.
-
Die
CPU des Computersystems führt
eine Anwendungssoftware aus, die die Anforderung für eine Peripheriegerät-Operation
erzeugt, wenn die Anwendungssoftware die Peripherie gerät-Operation benötigt. Diese
Anforderung ist für
eine Peripheriegerät-Steuereinrichtung
(einen Peripheriegerät-Controller)
des Peripheriegerätes
bestimmt. Das Computersystem enthält keinen Peripheriegerät-Controller zur
Steuerung dieses Peripheriegerätes.
Statt dessen veranlaßt
die Zugriffsumlenklogikeinheit durch ein Interrupt, daß die CPU
zur Steuerung der Peripheriegerät-Operation
des Peripheriegerätes
unterbrochen wird. Dies ermöglicht
es, daß die
existierende peripheriegerät-controller-basierte
Anwendungssoftware weiterhin funktionsfähig bleibt, obwohl die CPU
(und kein Controller) die Peripheriegerät-Operation des Peripheriegerätes steuert.
Neben der CPU kann auch das Peripheriegerät des oben beschriebenen Computersystems
die Anforderung für
die Peripheriegerät-Operation
erzeugen.
-
Außerdem wird
ein Verfahren zum Ansteuern eines Peripheriegerätes für eine Peripheriegerät-Operation
in einem Computersystem beschrieben. Das Verfahren umfaßt den Schritt,
daß eine
Anforderung zur Peripheriegerät-Operation
in einer Zugriffslogikeinheit empfangen wird (von der CPU oder vom
Peripheriegerät).
Die Logikeinheit ist mit dem Bus und dem Peripheriegerät gekoppelt.
Die Zugriffsumlenklogikeinheit kann (im Unterschied zu einem Controller)
das Peripheriegerät
zur Durchführung
der Peripheriegerät-Operation
nicht ansteuern. Die CPU wird dann von der Zugriffsumlenklogikeinheit
zur Ansteuerung des Peripheriegerätes für die Peripheriegerät-Operation
unterbrochen (durch ein Interrupt), wenn die Logikeinheit die Anforderung
für eine
Peripheriegerät-Operation
empfängt.
Dies ermöglicht
es, daß die
existierende, das Vorhandensein eines Peripheriegerät-Controllers
unterstellende Anwendungssoftware weiterhin funktionsfähig ist,
obwohl die CPU (anstelle des Controllers) die Peripheriegerät-Operation
des Peripheriegerätes
steuert.
-
Vorteilhafte
Weiterbildungen der Erfindung sind in den Unteransprüchen gekennzeichnet.
-
Andere
Aufgaben, Merkmale und Vorteile der vorliegenden Erfindung sind
der beigefügten Zeichnung
und der folgenden detaillierten Beschreibung zu entnehmen.
-
KURZE BESCHREIBUNG DER
ZEICHNUNG
-
Die
vorliegende Erfindung ist beispielhaft und nicht einschränkend in
den Figuren der beigefügten
Zeichnung dargestellt, in welcher gleiche Bezugszeichen auf ähnliche
Elemente hinweisen und in denen:
-
1 ein
Blockschaltbild eines bekannten Computersystems zeigt;
-
2 ein
Blockschaltbild eines Computersystems gemäß einem Ausführungsbeispiel
der vorliegenden Erfindung darstellt, wobei das Computersystem eine
Zugriffs-Umleitungs-Logikeinheit für ein Peripheriegerät enthält;
-
3 den
Anschluß der
Zugriffs-Umleitungs-Logikeinheit der 2 in Bezug
auf das Peripheriegerät
und die Host-CPU darstellt;
-
4 ein
Ablaufdiagramm des von der Zugriffs-Umleitungs-Logikeinheit der 2-3 ausgeführten Prozesses
darstellt;
-
5 ein
Zustandsdiagramm der Zugriffs-Umleitungs-Logikeinheit der 2-3 darstellt.
-
2 zeigt
ein Computersystem 20, welches ein Ausführungsbeispiel der vorliegenden
Erfindung implementiert. Das Computersystem 20 enthält einen
Systembus 28, welcher mit einer CPU 21, einem
System-RAM 22, einem System-ROM 23, einem Peripheriegerät 25 und
einer Zugriffs-Umleitungs-Logikeinheit 24 verbunden ist.
Die CPU 21 wird zur Steuerung der Operation des Computersystems 20 verwendet.
-
Bei
einem Ausführungsbeispiel
ist das Computersystem 20 ein Personalcomputersystem. Bei anderen
Ausführungsbeispielen
kann das Computersystem 20 jede andere Art von Computersystem sein.
Beispielsweise kann das Computersystem 20 eine Workstation
bzw. ein Arbeitsplatzrechner, ein Großrechner oder ein Minicomputer
sein.
-
Bei
einem Ausführungsbeispiel
enthält
die CPU 21 des Computersystems 20 einen Mikroprozessor,
einen Coprozessor, einen Cache-Speicher und eine Cache-Speicher-Steuereinrichtung
zur Bearbeitung des Zugriffs auf den Cache-Speicher durch den Mikroprozessor.
Bei einem weiteren Ausführungsbeispiel
sind alle oben erwähnten
Komponenten in der CPU 21 in einen von der Firma Intel
Corporation aus Santa Clara, Kalifornien, hergestellten Mikroprozessorchip
intergriert. Alternativ kann die CPU 21 nicht alle der
oben erwähnten
Komponenten enthalten. Ferner kann die CPU 21 weitere Komponenten
als die oben erwähnten
enthalten.
-
Der
Systembus 28 wird im Computersystem 20 als der
Rückwandplatinenbus
zum Datenaustausch zwischen den verschiedenen Komponenten des Computersystems 20 verwendet.
Auf den System-RAM 22 und den System-ROM 23 kann
von der CPU 21 über
den Systembus 28 zugegriffen werden. Der System-RAM 22 und
der System-ROM 23 speichern Daten und Programme, die für den Betrieb
des Computersystems 20 benötigt werden.
-
Das
Peripheriegerät 2S führt eine
vorgegebene Peripheriegerät-Operation
aus. Das Peripheriegerät 25 kann
jede Art von Peripheriegerät
sein. Beispielsweise kann das Peripheriegerät 25 eine Tastatur,
ein Bildschirm, ein Festplatten laufwerk, eine nicht-flüchtige Speicherkarte
oder ein Modem sein.
-
Das
Computersystem 20 kann zusätzlich zu dem System-RAM und
-ROM 22 und 23 andere Speicher enthalten. Diese
anderen Speicher können
einen EPROM ("elektrisch
programmierbaren Nur-Lese-Speicher") und einen Flash-EPROM ("flash-löschbaren
und -programmierbaren Nur-Lese-Speicher") enthalten. Ferner kann das Computersystem 20 mehr
als ein Peripheriegerät
enthalten.
-
Die
Zugriffs-Umleitungs-Logikeinheit 24 ist außerdem mit
dem Systembus 28 verbunden. Ferner ist die Zugriffs-Umleitungs-Logikeinheit 24 mit
dem Peripheriegerät 25 über den
Bus 27 verbunden. Die Zugriffs-Umleitungs-Logikeinheit 24 enthält (jeweils nicht
dargestellte) Steuerregister, Statusregister und Datenregister.
Diese Register werden zur Speicherung von Steuerinformationen, Statusinformationen und
Daten verwendet. Das Peripheriegerät 25 ist außerdem mit
dem Systembus 28 über
den Bus 26 verbunden. Das Computersystem 20 enthält keine
Spezialmikrosteuereinrichtung zur Steuerung der Operation des Peripheriegerätes 25.
Ferner steuert die Zugriffs-Umleitungs-Logikeinheit 24 das
Peripheriegerät 25 für die Peripheriegerät-Operation
nicht. Die Zugriffs-Umleitungs-Logikeinheit 24 wird im
Computersystem 20 zum Umleiten der Anforderung zur Peripheriegerät-Operation
des Peripheriegerätes 25 an die
CPU 21 verwendet, so daß die CPU 21 zur Steuerung
der Operation des Peripheriegerätes 25 unterbrochen
werden kann. Dies ermöglicht
es, daß die durch
eine Peripheriegerät-Steuereinrichtung
gestützte
Anwendungssoftware weiterhin auf der CPU 21 funktionsfähig ist,
obwohl das Peripheriegerät 25 von
der CPU 21 anstelle von einer beschriebenen Peripheriegerät-Steuereinrichtung
gesteuert wird. Die Funktion der Zugriffs-Umleitungs-Logikeinheit 24 wird
unten detaillierter beschrieben.
-
Das
Computersystem 20 kann außerdem eine Anzahl von Peripheriegeräten enthalten.
Wenn das Computersystem 20 eine Anzahl von Peripheriegeräten zusätzlich zu
dem Peripheriege rät 25 enthält, kann
das Computersystem 20 eine Spezialmikrosteuereinrichtung
für jedes
Peripheriegerät
der Anzahl von Peripheriegeräten
enthalten. Beispielsweise kann das Computersystem 20 eine
Spezialmikrosteuereinrichtung für
einige der Peripheriegeräte
enthalten und für
die verbleibenden Peripheriegeräte keine
Spezialmikrosteuereinrichtungen vorsehen. In diesem Fall ist jedes
Peripheriegerät,
welches keine Mikrosteuereinrichtung zur Steuerung seiner Operation
aufweist, mit einer Zugriffs-Umleitungs-Logikeinheit ähnlich der
Logikeinheit 24 verbunden. Als weiteres Beispiel sieht
das Computersystem 20 für
jedes Peripheriegerät
keine Spezialmikrosteuereinrichtung vor. In diesem Fall enthält jedes
Peripheriegerät
eine Zugriffs-Umleitungs-Logikeinheit ähnlich der
Zugriffs-Umleitungs-Logikeinheit 24.
-
Da
das Computersystem 20 keine Spezialmikrosteuereinrichtung
zur Steuerung der Peripheriegerät-Operation
des Peripheriegerätes 25 verwendet,
wird die Ansteuerung des Peripheriegerätes 25 zur Durchführung seiner
Peripheriegerät-Operation von einem
Satz von in dem System-RAM und -ROM 22 und 23 gespeicherten
Befehlscodes erzielt. Der Satz von Befehlscodes kann auch in anderen Speicherbauelementen
des Computersystems 20 gespeichert werden. Der Satz von
Befehlscodes kann auch als Peripheriegerät-Routine oder Gerätetreiber
bezeichnet werden. Die Peripheriegerät-Routine oder der Gerätetreiber
können
von der CPU 21 des Computersystems 20 ausgeführt werden.
Die Peripheriegerät-Routine
kann jede Art einer bekannten Peripheriegerät-Routine für das Peripheriegerät 25 sein.
Weitere Steuer- oder Datenverarbeitungsfunktionen für das Peripheriegerät 25 können hinzugefügt werden,
indem die Befehlscodes der Peripheriegerät-Routine für das Peripheriegerät 25 geändert werden.
-
Die
Peripheriegerät-Routine
für das
Peripheriegerät 25 wird
jedesmal aufgerufen und ausgeführt, wenn
das Peripheriegerät 25 die
Peripheriegerät-Operation
ausführen
soll. Da das Comptersystem 20 keine Mikrosteuereinrichtung
zur Steue rung des Peripheriegerätes 25 verwendet,
wird die Peripheriegerät-Routine
zur Steuerung der Operation des Peripheriegerätes 25 von der CPU 21 ausgeführt. Die CPU 21 führt die
Peripheriegerät-Routine über eine Unterbrechungs-Routine
und/oder über
einen Umfragebetrieb bzw. durch Polling aus. Daher kann die CPU 21 zur
Ausführung
der Peripheriegerät-Routine entweder
unterbrochen werden oder abgefragt werden, wenn das Peripheriegerät 25 die
Peripheriegerät-Operation
ausführen
soll und wenn das Computersystem 20 keine Spezialmikrosteuereinrichtung
für das
Peripheriegerät 25 aufweist.
-
Alternativ
enthält
das Computersystem 20 eine Anzahl von Peripheriegeräten, einschließlich dem
Peripheriegerät 25,
und eine Peripheriegerät-Steuereinrichtung
zur Steuerung der Operation aller Peripheriegeräte. Diese Peripheriegerät-Steuereinrichtung
ist keine Spezialsteuereinrichtung für eines der Peripheriegeräte. Jedes
Peripheriegerät
hat eine Zugriffs-Umleitungs-Logikeinheit ähnlich der Logikeinheit 24.
Die Zugriffs-Umleitungs-Logikeinheit für jedes der Peripheriegeräte leitet
die Anforderung zum Steuern des jeweiligen Peripheriegerätes an die Peripheriegerät-Steuereinrichtung
um. Die Peripheriegerät-Steuereinrichtung
steuert dann den Betrieb des jeweiligen Peripheriegerätes bei
Empfang der Anforderung. Dies ermöglicht außerdem die Rückwärtskompatibilität mit der
existierenden durch eine Peripheriegerät-Steuereinrichtung gestützten Anwendungssoftware.
-
Das
Computersystem 20 enthält
außerdem ein
(in 2 nicht dargestelltes) Betriebssystem. Das Betriebssystem
für das
Computersystem 20 verarbeitet Befehle, steuert die Programmausführung und überwacht
die Hardware- und Softwareressourcen des Computersystems 20.
Das Betriebssystem des Computersystems 20 ist ein Peripheriegerät-Steuereinrichtung-orientiertes Betriebssystem. Dies
bedeutet, daß das
Betriebssystem davon ausgeht, daß jedes Peripheriegerät im Computersystem 20 seine
Spezialmikrosteuereinrichtung zur Steuerung der Peripheriegerät-Operation
des entsprechenden Peripheriegerätes
aufweist. Dies veranlaßt das
Betriebssy stem, die CPU 21 nicht zu unterbrechen, wenn
die Peripheriegerät-Operation
des Peripheriegerätes 25 benötigt wird.
Statt dessen veranlaßt
das Betriebssystem die CPU 21, eine Anforderung für die Peripheriegerät-Operation
an das Peripheriegerät 25 zu
erzeugen. Die Anforderung ist für die
Spezialmikrosteuereinrichtung des Peripheriegerätes 25 bestimmt. Dieses
Peripheriegerät-Steuereinrichtung-orientierte
Betriebssystem für
das Computersystem 20 bedingt, daß auch die auf dem Computersystem 20 laufenden
Anwendungsprogramme durch eine Peripheriegerät-Steuereinrichtung gestützte Anwendungsprogramme
sind.
-
Da
das Computersystem 20 keine Spezialmikrosteuereinrichtung
zur Steuerung des Peripheriegerätes 25 enthält, wird
die Anforderung in der Zugriffs-Umleitungs-Logikeinheit. 24 über den
Bus 28 empfangen. Die Zugriffs-Umleitungs-Logikeinheit 24 leitet
die Anforderung dann an die CPU 21 um, so daß die CPU 21 zur
Ausführung
der Peripheriegerät-Routine
des Peripheriegerätes 25 unterbrochen werden
kann. Sobald die CPU 21 ihre Ausführung der Peripheriegerät-Routine
beendet hat, aktualisiert die CPU 21 die Logikeinheit 24 mit
den Ergebnissen. Die Logikeinheit 24 sendet das Ergebnis
dann an das auf der CPU 21 laufende Anwendungsprogramm. Die
Logikeinheit 24 erledigt dies, indem sie eine Task-Beendigungs-Unterbrechungsanforderung
an die CPU 21 anlegt. Auf diese Weise nimmt das durch eine
Peripheriegerät-Steuereinrichtung
gestützte
Anwendungsprogramm keinen Unterschied wahr und funktioniert weiterhin,
obwohl das Computersystem 20 keine spezielle Peripheriegerät-Steuereinrichtung zur
Steuerung des Betriebs des Peripheriegerätes 25 aufweist.
-
Die
Zugriffs-Umleitungs-Logikeinheit 24 führt ihren Bus-Zugriffs-Zyklus
zum Empfang der Anforderung aus. Die Anforderung, die die Zugriffs-Umleitungs-Logikeinheit 24 von
der CPU 21 empfängt,
wird als Anwendungsanforderung APPLN_REQ bezeichnet. Die Anwendungsanforderung
APPLN_REQ wird erzeugt, wenn ein auf der CPU 21 ablaufendes
Anwendungsprogramm die Peripheriegerät-Operation des Peripherie gerätes 25 benötigt. Die
Zugriffs-Umleitungs-Logikeinheit 24 kann außerdem eine
Anforderung zur Ansteuerung des Peripheriegerätes 25 zur Durchführung der
Peripheriegerät-Operation
vom Peripheriegerät 25 über den
Bus 27 erhalten. Diese Anforderung wird als Peripheriegerät-Anforderung PERI_REQ
bezeichnet. Das Peripheriegerät 25 erzeugt
die Peripheriegerät-Anforderung
PERI_REQ, wenn das Peripheriegerät 25 die
Steuerung seiner Peripheriegerät-Operation
benötigt.
-
Wenn
die Zugriffs-Umleitungs-Logikeinheit 24 die Anwendungs-Anforderung
APPLN_REQ von der CPU 21 oder die Peripheriegerät-Anforderung PERI_REQ
von dem Peripheriegerät 25 empfängt, leitet
die Zugriffs-Umleitungs-Logikeinheit 24 die Anforderung
an die CPU 21 um, indem sie eine CPU-Unterbrechungsanforderung
IRQ für
die CPU 21 erzeugt. Wenn die CPU 21 die CPU-Unterbrechungsanforderung
HOST_IRQ empfängt,
unterbricht die CPU 21 ihre normale Ausführung der
Programme in der vom Betriebssystem ermöglichten herkömmlichen
Weise. Während
des Unterbrechungszyklus führt
die CPU 21 ihre reguläre
Unterbrechungsroutine aus, welche die Funktion enthält, daß die Art
und die Quelle der Unterbrechung geprüft wird. Da die CPU 21 dieses
Mal durch die CPU-Unterbrechungsanforderung von der Zugriffs-Umleitungs-Logikeinheit 24 unterbrochen
wurde, ruft die Unterbrechungsroutine dann die Peripheriegerät-Routine
auf. Die CPU 21 führt
dann die Peripheriegerät-Routine
zur Steuerung der Peripheriegerät-Operation
des Peripheriegerätes 25 aus.
Wenn die CPU 21 die Ausführung der Peripheriegerät-Routine
beendet, sendet die CPU 21 die Ergebnisse zur Zugriffs-Umleitungs-Logikeinheit 24,
indem sie die verschiedenen Steuer-, Status- und Datenregister der
Logikeinheit 24 aktualisiert. Die CPU 21 nimmt dann
ihre normale Ausführung
wieder auf, bis sie erneut unterbrochen wird. Das Aufrufen der Peripheriegerät-Routine
durch die Unterbrechungsroutine kann in herkömmlicher Weise erfolgen.
-
Sobald
die Zugriffs-Umleitungs-Logikeinheit 24 mit den Ergebnissen
von der CPU 21 aktualisiert ist, informiert die Zugriffs-Umleitungs-Logikeinheit 24 die
auf der CPU 21 lau fende Anwendungssoftware von den Ergebnissen.
Die Zugriffs-Logikeinheit 24 erledigt
dies, indem sie zunächst
eine Task-Beendigungs-Unterbrechungsanforderung TASK_COMPL_INT
an die CPU 21 anlegt. Auf diese Weise braucht die Anwendungssoftware
nicht zu wissen, daß die
CPU 21 die Peripheriegerät-Operation des Peripheriegerätes 25 steuert
und geht weiterhin davon aus, daß die Operation des Peripheriegerätes 25 von
einer speziellen Peripheriegerät-Steuereinrichtung
gesteuert wird. Dies ermöglicht
der auf der CPU 21 laufenden Anwendungssoftware, eine durch eine
Peripheriegerät-Steuereinrichtung
gestützte
Anwendungssoftware zu bleiben.
-
Wenn
die CPU 21 zur Ausführung
der Peripheriegerät-Routine
zur Steuerung der Peripheriegerät-Operation
des Peripheriegeräts 25 unterbrochen wird,
greift die CPU 21 auf das Peripheriegerät 25 über die
Busse 26 und 28 direkt zu. Wenn dies geschieht,
wirkt die Zugriffs-Umleitung-Logikeinheit 24 nicht länger zwischen
der CPU 21 und dem Peripheriegerät 25 und ein direkter
Zugriffspfad wird zwischen der CPU 21 und dem Peripheriegerät 25 aufgebaut.
Die Zugriffs-Umleitungs-Logikeinheit 24 empfängt die
Ergebnisse von der CPU 21 nur dann, wenn die Peripheriegerät-Operation
des Peripheriegerätes
beendet ist. 3 zeigt verschiedene Signalpfade
zwischen der CPU 21, der Zugriffs-Umleitungs-Logikeinheit 24 und
dem Peripheriegerät 25, die
unten detaillierter beschrieben werden.
-
Es
wird auf 3 Bezug genommen. Die CPU 21 erzeugt
das APPLN_REQ-Signal an die Zugriffs-Umleitungs-Logikeinheit 24 über eine
Leitung 31. Das Peripheriegerät 25 erzeugt das PERI_REQ-Signal
an die Zugriffs-Umleitungs-Logikeinheit 24 über eine
Leitung 32. Die Zugriffs-Umleitungs-Logikeinheit 24 erzeugt
das HOST_IRQ-Signal an die CPU 21 über eine Leitung 33.
Die Zugriffs-Umleitungs-Logikeinheit 24 erzeugt das TASK_COMPL_INT-Signal
an die CPU 21 über
eine Leitung 35. Die CPU 21 legt das APPLN_REQ-Signal an,
wenn die auf der CPU 21 laufende Anwendungssoftware die
Anwendungsanforderung für
das Peripheriegerät 25 zur
Durchführung
der Peripherie gerät-Operation
erzeugt. Das Peripheriegerät 25 legt das
PERI_REQ-Signal an die Zugriffs-Umleitungs-Logikeinheit 24 an,
wenn das Peripheriegerät 25 die
Peripheriegerät-Anforderung
zur Ansteuerung des Peripheriegeräts 25 zur Ausführung der
Peripheriegerät-Operation
erzeugt.
-
Die
Zugriffs-Umleitungs-Logikeinheit 24 legt das HOST_IRQ-Signal
an, wenn entweder das APPLN_REQ-Signal oder das PERI_REQ-Signal
angelegt ist. Wenn das HOST_IRQ-Signal angelegt ist, führt es dazu,
daß die
CPU 21 unterbrochen wird. Daher stellt das HOST_IRQ-Signal
die von der Zugriffs-Umleitungs-Logikeinheit 24 für die CPU 21 erzeugte
CPU-Unterbrechungsanforderung dar. Wenn die CPU 21 zur
Ausführung
der Peripheriegerät-Routine
unterbrochen wird, greift sie auf das Peripheriegerät 25 über den
direkten Zugriffspfad 34 zurück, der den Bus 26 und
den Systembus 28 enthält.
Die CPU 21 unterbricht das HOST_IRQ-Signal während der
Ausführung
der Unterbrechungsroutine.
-
Wenn
die CPU 21 ihre Ausführung
der Peripheriegerät-Routine beendet hat,
sendet die CPU 21 die Ergebnisse über den direkten Zugriffspfad 34 an die
Zugriffs-Umleitungs-Logikeinheit 24. Wie oben beschrieben
wurde, erledigt die CPU 21 dies, indem sie die verschiedenen
Steuerregister, Statusregister und Datenregister der Logikeinheit 24 aktualisiert. Die
Zugriffs-Umleitungs-Logikeinheit 24 sendet die Ergebnisse
dann an die auf der CPU 21 laufende Anwendungssoftware,
die die Ergebnisse benötigt.
Die Zugriffs-Umleitungs-Logikeinheit 24 erledigt
dies, indem sie zunächst
das TASK_COMPL_INT-Signal an die CPU 21 anlegt. Dies führt dazu,
daß die
CPU 21 zum Empfang der Ergebnisse unterbrochen wird. Bei einem
Ausführungsbeispiel
ist die Zugriffs-Umleitungs-Logikeinheit 24 durch eine
anwendungsspezifische integrierte Schaltung ("ASIC")
implementiert. Bei diesem Ausführungsbeispiel
sind alle Funktionen der Zugriffs-Umleitungs-Logikeinheit 24 mit bekannten
Programmiermitteln in den ASIC programmiert. Alternativ kann die
Zugriffs-Umleitungs-Logikeinheit 24 durch die Speicherung
eines Satzes von Programm befehlen in ein ROM, ein EPROM oder ein Flash-EPROM
realisiert werden. Außerdem
kann die Zugriffs-Umleitungs-Logikeinheit 24 durch eine
Kombination von logischen Schaltungen implementiert werden, beispielsweise
durch programmierbare logische Bauelemente ("PLDs").
Der Prozeß,
den die Zugriffs-Umleitungs-Logikeinheit 24 zum
Umleiten von Zugriffsanforderungen an die CPU 21 ausführt, wird unten
in Verbindung mit 4 detaillierter beschrieben. 5 zeigt
das Zustandsdiagramm der Zugriffs-Umleitungs-Logikeinheit 24,
welches unten ebenfalls ausführlicher
beschrieben wird.
-
Es
wird auf 4 Bezug genommen. Der Prozeß der Zugriffs-Umleitungs-Logikeinheit 24 beginnt
mit dem Schritt 40. Im Schritt 41 wird eine Entscheidung
getroffen, um festzustellen, ob das APPLN_REQ-Signal angelegt ist.
Wenn die Antwort "ja" ist, dann wird der
Schritt 43 ausgeführt.
Wenn die Antwort "nein" ist, wird der Schritt 42 ausgeführt. Im Schritt 42 wird
eine weitere Entscheidung getroffen, um festzustellen, ob das PERJ_REQ-Signal
angelegt ist. Wenn die Antwort "ja" ist, dann wird der
Schritt 43 ausgeführt.
Wenn die Antwort "nein" ist, dann geht der
Prozeß zum
Schritt 44 über.
-
Im
Schritt 43 wird das HOST_IRQ-Signal an die CPU 21 angelegt.
Das angelegte HOST_IRQ-Signal führt
dazu, daß die
CPU 21 zur Ausführung
der Peripheriegerät-Task
unterbrochen wird. Nach dem Anlegen des HOST_IRQ-Signals geht der
Prozeß zum
Schritt 44 über.
Die Zurücknahme
des HOST_IRQ-Signals erfolgt durch die CPU 21 in der herkömmlichen
Weise.
-
Im
Schritt 44 aktualisiert die CPU 21 die Steuer-,
Status- und Datenregister der Zugriffs-Umleitungs-Logikeinheit 24 mit
Ergebnissen der Task, sobald die CPU 21 ihre Task beendet
hat. Im Schritt 45 wird das TASK_COMPL_INT-Signal an die
CPU 21 angelegt, um die Ergebnisse an die Anwendungssoftware
zu senden. Der Prozeß endet
mit dem Schritt 46.
-
Das
TASK_COMPL_INT-Signal und das HOST_IRQ-Signal können ein Unterbrechungsanforderungssignal
von der Logikeinheit 24 an die CPU 21 sein. In
diesem Fall enthält
die Peri pheriegerät-Routine
in der CPU 21 eine Logikeinheit, die die beiden Funktionen
unterscheidet.
-
Wie
oben beschrieben wurde, kann die Zugriffs-Umleitungs-Logikeinheit 24 durch
logische Schaltungen realisiert werden. Wenn dies der Fall ist, kann
der Prozeß gemäß der 4 hardwaremäßig durch
eine Kombination bekannter logischer Gatter-Schaltungen realisiert
werden.
-
Die
Zugriffs-Umleitungs-Logikeinheit 24 kann durch eine Software-Emulation
in der Host-CPU 21 implementiert werden.
-
Es
wird nun auf 5 Bezug genommen, in der das
Zustandsdiagramm der Zugriffs-Umleitungs-Logikeinheit 24 gezeigt
ist.
-
5 zeigt
einen "ANFANG"-Zustand, einen "SW_INT"-Zustand und einen "PERI_INT"-Zustand. Im "ANFANG"-Zustand wartet die
Logikeinheit 24 darauf, daß die CPU 21 das APPLN_REQ-Signal
anlegt oder das Peripheriegerät 25 das
PERI_REQ-Signal anlegt. Wenn die Logikeinheit 24 erfaßt, daß das APPLN_REQ-Signal
erzeugt wurde, geht die Logikeinheit 24 in den "SW_INT"-Zustand über, in
dem die Logikeinheit 24 das HOST_IRQ-Signal zur Unterbrechung
der CPU 21 anlegt. Die Logikeinheit 24 kehrt dann
in den "ANFANG"-Zustand zurück.
-
Wenn
die Logikeinheit 24 erfaßt, daß das PERI_REQ-Signal im "ANFANG"-Zustand angelegt wird,
geht die Logikeinheit 24 in den "PERI_INT"-Zustand über, in dem die Logikeinheit
das HOST_IRQ-Signal zur Unterbrechung der CPU 21 anlegt.
Die Logikeinheit 24 kehrt dann in den "ANFANG"-Zustand zurück.
-
In
der vorangegangenen Beschreibung wurde die Erfindung in Bezug auf
bestimmte Ausführungsformen
beschrieben. Es ist jedoch klar, daß verschiedene Modifikationen
und Änderungen
hieran vorgenommen werden können,
ohne den breiteren Erfindungsgedanken und Schutzbereich der Erfindung
zu verlassen, wie er in den beigefügten Ansprüchen angegeben ist. Die Beschreibung
und die Zeichnung sind dementsprechend eher als Veranschaulichung
als als Beschränkung
zu verstehen.