DE4228754C2 - Unterbrechungseinrichtung für ein Mikroprozessorsystem und Verfahren zum zuverlässigen Unterbrechen einer CPU - Google Patents
Unterbrechungseinrichtung für ein Mikroprozessorsystem und Verfahren zum zuverlässigen Unterbrechen einer CPUInfo
- Publication number
- DE4228754C2 DE4228754C2 DE4228754A DE4228754A DE4228754C2 DE 4228754 C2 DE4228754 C2 DE 4228754C2 DE 4228754 A DE4228754 A DE 4228754A DE 4228754 A DE4228754 A DE 4228754A DE 4228754 C2 DE4228754 C2 DE 4228754C2
- Authority
- DE
- Germany
- Prior art keywords
- command
- cpu
- execution
- memory area
- operating system
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
- 238000000034 method Methods 0.000 title claims description 6
- 239000000872 buffer Substances 0.000 claims description 2
- 238000012545 processing Methods 0.000 claims description 2
- 238000013507 mapping Methods 0.000 claims 2
- 238000012544 monitoring process Methods 0.000 claims 2
- 230000009977 dual effect Effects 0.000 description 4
- 238000010586 diagram Methods 0.000 description 3
- 230000001419 dependent effect Effects 0.000 description 2
- 238000013461 design Methods 0.000 description 2
- 238000007792 addition Methods 0.000 description 1
- 150000001768 cations Chemical class 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000018109 developmental process Effects 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 238000012423 maintenance Methods 0.000 description 1
- 238000011084 recovery Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4812—Task transfer initiation or dispatching by interrupt, e.g. masked
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30003—Arrangements for executing specific machine instructions
- G06F9/3004—Arrangements for executing specific machine instructions to perform operations on memory
- G06F9/30043—LOAD or STORE instructions; Clear instruction
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30003—Arrangements for executing specific machine instructions
- G06F9/3005—Arrangements for executing specific machine instructions to perform operations for flow control
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3861—Recovery, e.g. branch miss-prediction, exception handling
- G06F9/3863—Recovery, e.g. branch miss-prediction, exception handling using multiple copies of the architectural state, e.g. shadow registers
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/461—Saving or restoring of program or task context
- G06F9/463—Program control block organisation
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Executing Machine-Instructions (AREA)
Description
Die Erfindung bezieht sich auf eine Unterbrechungseinrich
tung für ein Mikroprozessorsystem nach dem Oberbegriff des
Anspruchs 1 bzw. ein Verfahren zum zuverlässigen Unterbrechen
einer CPU nach dem Oberbegriff des Anspruchs 4.
In einer älteren US-Anmeldung Nr. 07/594 278 vom
9.10.1990 hat die Anmelderin ein Verfahren und eine Einrichtung
zur Erzeugung transparenter Systeminterrupts mit besonderer An
wendung auf die Mikroprozessorarchitektur angegeben. Diese äl
tere Erfindung löst ein Problem, das sowohl im geschützten Mo
dus als auch im Realmodus arbeitenden bekannten Mikroprozesso
ren anhaftet und darin besteht, daß weder ein Systemintegrierer
noch der ursprüngliche Komponentenhersteller (OEM) transparente
Systeminterrupts herstellen kann.
Transparente Systeminterrupts sind Interrupts auf System
ebene, die weder durch ein Betriebssystem noch durch eine An
wendung verlagert oder überschrieben werden können; dadurch er
hält ein den Mikroprozessor verwendender Systemintegrierer die
Möglichkeit, Interrupts auf Systemebene zur Verfügung zu stel
len, die in einer beliebigen Betriebsumgebung zuverlässig ar
beiten. Bei dem bevorzugten Ausführungsbeispiel in der oben be
zeichneten älteren US-Anmeldung wird ein transparentes Sy
steminterrupt durch Anlegen eines elektrischen Signals an einen
externen Pin des CPU-Chips eines Chip-Satzes auf Mikroprozes
sorsbasis aufgerufen.
Bei Anlegen des elektrischen Signals an den externen Pin
des CPU-Chips bildet die CPU einen normalerweise unabgebildeten
(unmapped) besonderen Bereich des Direktzugriffsspeichers
(RAM), in dem die transparente Systeminterrupt-Serviceroutine
gespeichert ist, in einen vorgegebenen Bereich des Hauptspei
cherraums ab, sichert den aktuellen CPU-Zustand in den besonde
ren RAM-Raum und beginnt mit der Ausführung der transparenten
Systeminterrupt-Serviceroutine. Die transparente Systeminter
rupt-Routine enthält in typischer Ausführung Befehle, die ein
zigartig für eine spezielle Anwendung der transparenten System
interrupts auf dasjenige System sind, in welchem das CPU-Chip
installiert ist. Eine Wiederherstellung aus dem transparenten
Systeminterrupt wird bei Erkennen eines einen "Wiederaufnahme"-
Befehl aufrufenden externen Ereignisses ausgeführt und bewirkt,
daß die CPU wieder in genau denselben Zustand zurückversetzt
wird, der vor dem transparenten Systeminterrupt bestand.
Eine wichtige Anwendung für das transparente Systeminter
rupt sind Energiemanagementfunktionen, durch die der Prozessor
und/oder andere Systemkomponenten während Benutzungspausen
wirksam abgeschaltet und danach neu gestartet werden können,
ohne eine Einschaltroutine durchlaufen zu müssen. Diese Funk
tion ist bei batteriebetriebenen Computern besonders zweck
mäßig, wo Energieeinsparungen von besonderer Bedeutung sind.
Wenn beispielsweise ein Computerbediener bei der Arbeit an ei
nem Anwenderprogramm unterbrochen wird, kann das System zur Er
haltung der Lebensdauer der Batterie heruntergeschaltet werden.
Wenn die Bedienungsperson die Benutzung des Systems wieder auf
nehmen will, wird das System zu demselben Punkt im Anwenderpro
gramm zurückgeführt, so als ob das System die ganze Pausenzeit
durchgelaufen wäre. Die Bedienungsperson braucht keine Maßnah
men zur Sicherung der Anwendungsprogrammresultate vor der Un
terbrechung zu treffen, noch das Anwendungsprogramm bei Wieder
aufnahme der Benutzung des Computers neu zu laden.
Bei der o.g. älteren US-Anmeldung stellt das transparente
Systeminterrupt keine spezielle Unterstützung für eine Unter
brechung der CPU während der Ausführung eines I/O-Befehls zur
Verfügung. Folglich ist die transparente System-Serviceroutine
mit anwendungsspezifischen Befehlen verantwortlich für eine
Prüfung, ob die CPU während der Ausführung eines I/O-Befehls
unterbrochen worden ist. Wenn die CPU während der Ausführung
eines I/O-Befehls unterbrochen wurde, ist die transparente Sy
stem-Serviceroutine darüberhinaus verantwortlich, zu bestimmen,
welcher I/O-Befehl unterbrochen wurde, sowie für ein Aufrecht
erhalten der geeigneten Register des in dem besonderen Spei
cherraum gesicherten CPU-Zustandes, so daß bei Ausführung des
Wiederaufnahme-Befehls (RESUME) zum Wiederherstellen des
CPU-Zustandes die CPU - sofern erforderlich - den unterbrochenen
I/O-Befehl erneut ausführt.
Die Art und Weise, in welcher eine transparente Systemin
terrupt-Serviceroutine bestimmen kann, ob die CPU während der
Ausführung eines I/O-Befehls unterbrochen wurde, ist vom Mikro
prozessor abhängig und typischerweise eher schwierig. Bei dem
in einem Ausführungsbeispiel der o.g. US-Anmeldung erörterten
Mikroprozessorsystem auf der Basis einer i386SX-CPU bestimmt
die transparente Systeminterrupt-Serviceroutine zuerst durch
ein Durchsuchen des Speicherraums des Benutzers zum Bestimmen
des Auftretens eines I/O-Traps, ob die CPU während der Ausfüh
rung eines I/O-Befehls unterbrochen wurde.
Nachdem bestimmt wurde, daß ein I/O-Trap auftrat, bestimmt
die transparente Systeminterrupt-Serviceroutine den ausgeführ
ten I/O-Befehl durch eine Bestimmung des Ortes des Befehls. Um
dies auszuführen, muß die transparente Systeminterrupt-Service
routine den Ausführungsmodus der CPU bestimmen, die logische
Adresse beschaffen und die logische Adresse in eine physikali
sche Adresse übersetzen. Dann bestimmt die transparente System
interrupt-Serviceroutine den unterbrochenen I/O-Befehlstyp, die
Befehlslänge, die Adreßlänge und die Operandenlänge. Dazu muß
die transparente Systeminterrupt-Serviceroutine die Anzahl der
Parameter einschließlich der Speichersegmentgröße, irgendeiner
Außerkraftsetzung des Adreßpräfix (address prefix override) und
einer Außerkraftsetzung des Befehlscodepräfix (opcode prefix
override) bestimmen.
Die Lösung, bei der die transparente Systeminterrupt-Ser
viceroutine für ein Neustarten der CPU aus einem unterbrochenen
I/O-Befehl heraus verantwortlich ist, hat zumindest zwei Nach
teile:
- 1) die schwere Last des Neustartens der CPU zum Fortsetzen der Ausführung eines unterbrochenen I/O-Befehls wird der trans parenten Systeminterrupt-Serviceroutine auferlegt, und
- 2) die Art und Weise, in welcher die CPU nach ihrer Unter brechung bei einem I/O-Befehl neu gestartet wird, ist vom Mi kroprozessor abhängig.
Der Erfindung liegt die Aufgabe zugrunde, eine verbesserte
Einrichtung bzw. ein verbessertes Verfahren zur Erzeugung von
transparenten Systemunterbrechungen (Systeminterrupts) mit
einem automatischen Neustart während eines Auftritts eines
Ein-/Ausgabe-Traps zur Verfügung zu stellen.
Diese Aufgabe wird erfindungsgemäß durch eine Unterbre
chungseinrichtung mit den Merkmalen des Anspruchs 1 bzw. ein
Verfahren mit den Merkmalen des Anspruchs 4 gelöst.
Bei der Erfindung werden die I/O-Schreibbefehle nicht über
tragen (posted). Die CPU wartet, bis die Buseinheit das Schrei
ben beendet hat, bevor sie den nächsten Befehl ausführt. Ein
transparentes Systeminterrupt wird durch Anlegen eines elektri
schen Signals an einen externen Pin des CPU-Chips eines Mikro
prozessor-Chipsatzes aufgerufen. Bei Anlegen des elektrischen
Signals an den externen Pin des CPU-Chips bildet die CPU einen
normalerweise nicht abgebildeten besonderen RAM-Bereich, in
welchem die transparente Systeminterrupt-Serviceroutine gespei
chert ist, in einen vorgegebenen Bereich des Hauptspeicherraums
ab, sichert den aktuellen CPU-Zustand in den besonderen
RAM-Raum und beginnt mit der Ausführung der transparenten Systemin
terrupt-Serviceroutine.
Der gesicherte CPU-Zustand enthält einen Befehlszähler, einen
Befehlszähler eines vorangegangenen Befehls und eine Mehrzahl
von I/O-Parameterregistern. Die transparente Systeminterrupt-
Serviceroutine setzt einen I/O-Trap-Indikator in dem besonderen
RAM-Raum, sofern die CPU während der Ausführung eines
I/O-Befehls unterbrochen wurde und die Interrupt-Serviceroutine das
erneute Starten des unterbrochenen I/O-Befehls bei der
Wiederaufnahme der Ausführung wünscht. Die transparente Sy
steminterrupt-Serviceroutine enthält üblicherweise Befehle,
welche für die spezielle Anwendung des transparenten Systemin
terrupts auf das System einzigartig sind, in welchem der
CPU-Chip installiert ist.
Eine Wiederherstellung aus dem transparenten Systeminter
rupt wird bei Erkennen eines einen "Wiederaufnahme"-Befehl auf
rufenden externen Ereignisses ausgeführt, was bewirkt, daß die
CPU in exakt den gleichen Zustand zurückversetzt wird, der vor
dem transparenten Systeminterrupt bestand, einschließlich einer
automatischen erneuten Ausführung des unterbrochenen I/O-Be
fehls. Insbesondere stellt der "Wiederaufnahme"-Befehl während
der Wiederherstellung des CPU-Zustandes den Befehlszähler und
den Befehlszähler des vorangegangenen Befehls wieder her, über
prüft den I/O-Trap-Indikator und dekrementiert in Abhängigkeit
davon den wiederhergestellten Befehlszähler auf den wiederher
gestellten Befehlszähler des vorangegangenen Befehls, wenn der
I/O-Trap-Indikator gesetzt ist. Zusätzlich werden die I/O-Para
meterregister in die geeigneten Mehrzweckregister zurückgespei
chert, wenn der I/O-Trap-Indikator gesetzt ist. Im Ergebnis
wird ein unterbrochener I/O-Befehl automatisch erneut ausge
führt, wenn der "RESUME"(Wiederaufnahme)-Befehl die CPU zum
Ausführen des "nächsten" Befehls erneut startet.
Weiterbildungen der Erfindung sind in den Unteransprüchen
gekennzeichnet.
Im folgenden werden Einzelheiten der Erfindung und deren
Vorteile anhand eines in der Zeichnung schematisch dargestell
ten Ausführungsbeispiels näher beschrieben. In der Zeichnung
zeigen:
Fig. 1 ein Funktionsblockdiagramm eines Ausführungsbei
spiels eines Mikroprozessorsystems,
in dem die Erfindung implementiert ist,
und
Fig. 2 ein Funktionsablaufdiagramm des Mikrocode für das
transparente Systeminterrupt mit automatisiertem
Neustart bei einem I/O-Trap nach der Erfindung.
Im folgenden wird auf Fig. 1 Bezug genommen, in der ein
Ausführungsbeispiel eines die Erfindung beinhaltenden Mikropro
zessorsystems schematisch dargestellt ist. Das Mikroprozessor
system gemäß Ausführungsbeispiel wird nachfolgend beschrieben.
Es ist jedoch einzusehen, daß die Erfindung nicht auf diese
spezielle Mikroprozessorkonstruktion beschränkt ist, sondern in
praktisch jedem Prozessor vorgesehen werden kann.
Das Mikroprozessorsystem 10 gemäß Ausführungsbeispiel ent
hält drei Hauptkomponenten, die als GENCPU, GENIO und GENVGA
bezeichnet sind. GENCPU ist eine erweiterte zentrale Verarbei
tungseinheit; GENIO ist eine Ein-Chip-Eingabe/Ausgabe-Einheit;
und GENVGA ist eine Einzelchip-Grafikschnittstelle. Die drei
Komponenten stehen miteinander und mit anderen Systemkomponen
ten (wie Erweiterungssteckplätzen, Tastaturcontroller, Platten
steuergeräten) über einen ISA-Bus 42 in Verbindung.
GENCPU weist eine CPU 12, ein Speichersteuergerät 14, ein
Cache-Steuergerät 16, eine ISA-Bus-Steuerlogik 18 und Leitungs
puffer 20 auf. Die CPU 12 hat zumindest zwei Arbeitsmoden,
einen Realmodus und einen geschützten Modus. Die CPU 12 ist im
wesentlichen eine "i386 SX"-CPU, hergestellt durch die Intel
Corporation. In der vorliegenden Beschreibung wird eine gewisse
Terminologie, die sich auf den "i386 SX" bezieht, beispiels
weise Registernamen, Signalbezeichnungen usw. verwendet, um die
Erfindung zu beschreiben. Diese Terminologie ist dem Fachmann
auf dem Gebiete der Mikroprozessorkonstruktion bekannt und wird
daher nicht im einzelnen erläutert.
Insbesondere weist die CPU 12 eine Mehrzahl von Mehrzweck
registern (nicht gezeigt), ein Befehlszähler-Register (nichts
gezeigt), das einen Befehlszähler enthält, und ein auf den vor
angegangenen Befehl hinzeigendes Register (nicht gezeigt), das
einen Befehlszähler des vorangegangenen Befehls enthält, auf.
Der Befehlszähler steuert das Heranholen der Befehle. Die CPU
12 inkrementiert automatisch den Befehlszähler und den Zähler
des vorangegangenen Befehls, um nach der Ausführung eines Be
fehls auf den nächsten auszuführenden Befehl bzw. auf den ge
rade ausgeführten Befehl hinzuzeigen.
Die CPU 12 weist außerdem Logikanordnungen (nicht gezeigt)
zum Ausführen einer Vielzahl von Befehlen auf. Die Befehle ent
halten eine Mehrzahl von Lese-I/O-Befehlen und Schreib-I/O-Be
fehlen. Die Schreib-I/O-Befehle werden nicht übertragen
(posted) und die Ausführung des nächsten Befehls wird durch die
CPU 12 zurückgestellt, bis die Buseinheit das Schreiben beendet
hat. Jeder Lese/Schreib-I/O-Befehl enthält eine Mehrzahl von
I/O-Parametern. Die I/O-Parameter werden in Mehrzweckregistern
gespeichert. Die Befehle, einschließlich der Lese/Schreib-I/O-Be
fehle, arbeiten an entweder null, einem, zwei oder drei Ope
randen. Ein Operand befindet sich entweder im Befehl, in einem
Register oder in einem Speicherplatz. Die CPU 12 hat zwei Ope
rationsmoden, einen Realmodus und einen geschützten Modus. Die
primären Unterschiede zwischen dem Realmodus und dem geschütz
ten Modus bestehen in der Art, in der eine logische Adresse in
eine lineare Adresse übersetzt wird, in der Größe des Adreß
raums und in der Seitenwechsel-Fähigkeit.
Die CPU 12 weist auch eine (nicht gezeigte) Logikanordnung
zum Ausführen einer Vielzahl von Hardwareinterrupts auf. Hard
wareinterrupts treten als Folge eines externen Ereignisses auf
und werden in zwei Arten klassifiziert: maskierbare und nicht
maskierbare. Interrupts werden nach Ausführung des aktuellen
Befehls bedient. Nach der Beendigung der Interrupt-Servicerou
tine durch Bedienung des Interrupts wird mit der Ausführung des
Befehls unmittelbar nach dem unterbrochenen Befehl fortgefah
ren. Maskierbare Interrupts werden üblicherweise zum Beantwor
ten von asynchronen externen Hardwareereignissen benutzt.
Nicht-maskierte Interrupts werden üblicherweise zum Bedienen
von Ereignissen sehr hoher Priorität verwendet.
Anstelle einer näheren Beschreibung der CPU 12 wird auf
"i386SX-Mikroprozessor", Veröffentlichung der Fa. Intel Corpo
ration, und zugehörige Publikationen verwiesen.
GENIO weist parallele Ports (PIO) 22, duale serielle Ports
(SIO) 24a, 24b, eine Echtzeituhr (RTC) 26, duale programmier
bare Interruptsteuergeräte (PIC) 28a, 28b, duale programmier
bare Zeitgeber (PIT) 30a, 30b und duale Steuergeräte für einen
direkten Speicherzugriff (DMA) 32a, 32b auf. GENVGA weist ein
VGA-Grafiksteuergerät 36, ein Videospeichersteuergerät 38 und
eine Schnittstelle 40 für eine Flachbildschirm-Anzeigeeinheit
auf.
Zusätzlich und extern zu den drei Hauptkomponenten gibt es
einen Systemspeicher 44, einen Cachespeicher 46, einen Video
speicher 48 und eine Schnittstelle (PAL/DAC) 50 für einen her
kömmlichen VGA-Monitor. Auf den Systemspeicher 44, den Cache
speicher 46 und den Videospeicher 48 wird durch das Speicher-
Steuergerät 14, das Cachespeicher-Steuergerät 16 bzw. das Vi
deospeicher-Steuergerät 38 zugegriffen. Auf den Videospeicher
48 kann auch über den ISA-Bus 42 und die beiden Schnittstellen
40, 50 zugegriffen werden.
Für eine weitergehende Beschreibung in bezug auf den
i386SX-Mikroprozessor wird auf das "i386SX-Microprocessor Hard
ware Reference Manual" der Intel Corporation, veröffentlicht
unter der Veröffentlichungsnummer 240332 und zugehörige Publi
kationen hingewiesen.
Die Erfindung wird mit Hilfe von drei Ergänzungen zur kon
ventionellen Mikroprozessorarchitektur, beispielsweise der Ar
chitektur des i386-Mikroprozessors wie folgt implementiert:
- 1. Ein neues Interrupt, genannt Systemüberwachungsinterrupt (SSI) zum Ersetzen des gesamten Schutzmechanismus des Mikropro zessorsystems mit einer speziellen Unterstützung bei der Erset zung des Schutzmechanismus während die CPU einen I/O-Befehl ausführt. Das SSI-Interrupt ist nicht maskierbar und hat eine höhere Priorität als alle anderen Interrupts, einschließlich anderer nicht-maskierbarer Interrupts. Das SSI-Interrupt wird durch eine SSI-Interrupt-Serviceroutine bedient.
- 2. Ein spezieller systemtransparenter Speicherbereich, der als Systemmanagement-RAM oder SMRAM bezeichnet wird und zur Speicherung der SSI-Interrupt-Serviceroutine, des Zustandes der CPU zum Zeitpunkt ihrer Unterbrechung und eines I/O-Trap-Indi kators dient. Der I/O-Trap-Indikator zeigt an, ob die CPU wäh rend der Ausführung eines I/O-Befehls unterbrochen wurde.
- 3. Ein neuer Befehl, genannt RESUME (Wiederaufnahme) zur Rückführung des Mikroprozessorsystems in den Zustand unmittel bar vor der Unterbrechung durch ein SSI-Interrupt und zur Wie deraufnahme der Ausführung beim nächsten Befehl oder zur auto matischen erneuten Ausführung des unterbrochenen I/O-Befehls.
Im folgenden wird auf Fig. 2 Bezug genommen, in der ein den
Mikrocode des SSI-Interrupts veranschaulichendes Ablaufdiagramm
gezeigt ist. Ein SSI-Interrupt wird durch Anlegen eines elek
trischen Signals an einen externen Pin des CPU-Chips aufgeru
fen. Bei Feststellung des elektrischen Signals am externen Pin
des CPU-Chips (SSI-Ereignis) bildet die CPU den SMRAM in einem
vorgegebenen Bereich des Hauptspeicherraums ab, Block 102. Der
SMRAM ist normalerweise nicht als Teil des Hauptspeicher-RAM′s
abgebildet, wodurch er für das Betriebssystem und die Anwendun
gen unzugreifbar wird. Zusätzlich sichert die CPU den CPU-Zu
stand in den SMRAM-Raum, Block 104, schaltet in den Realmodus
um, Block 105, re-initialisiert die CPU-Programmsteuerregister,
Block 108, und startet die Ausführung der SSI-Interrupt-Ser
viceroutine, Block 110.
Der gesicherte CPU-Zustand enthält einen Befehlszähler,
einen Zähler des vorangegangenen Befehls und die I/O-Parameter
register. Die SSI-Interrupt-Serviceroutine setzt einen
I/O-Trap-Indikator in den besonderen RAM-Raum, sofern die CPU wäh
rend der Ausführung eines I/O-Befehls unterbrochen wurde und
die Interrupt-Serviceroutine den unterbrochenen I/O-Befehl bei
Wiederaufnahme der Ausführung erneut zu starten wünscht. Die
SSI-Interrupt-Serviceroutine enthält üblicherweise Befehle,
welche für eine spezielle Anwendung des SSI-Interrupts auf das
System, in welchem das CPU-Chip installiert ist, einzigartig
sind.
Eine Wiederherstellung aus dem transparenten Systeminter
rupt wird bei Erkennen eines den "RESUME"-Befehl aufrufenden
externen Ereignisses (RSM-Ereignis) ausgeführt. Bei Erkennen
des externen Ereignisses stellt die CPU den im SMRAM-Bereich
gespeicherten CPU-Zustand wieder her, Block 112, und überprüft,
ob der I/O-Trap-Indikator gesetzt ist, Block 113. Wenn der
I/O-Trap-Indikator gesetzt ist, Zweig 113a, dekrementiert die CPU
den Befehlszähler auf den Befehlszähler des vorangegangenen Be
fehls, Block 114. Zusätzlich werden die I/O-Parameterregister
auf die Werte vor dem Auftreten des Interrupts zurückgestellt.
Wenn der I/O-Trap-Indikator nicht gesetzt ist, Zweig 113b,
oder bei Dekrementieren des Befehlszählers auf den Befehlszäh
ler des vorangegangenen Befehls, Block 114, schaltet die CPU
den SMRAM-Bereich aus und löscht (unmaps) ihn als Teil des
Hauptspeicherraums, Block 116, und fährt mit der Ausführung des
unterbrochenen Betriebssystem- oder Anwendungsprogramms fort,
Block 118. Folglich wird, wenn der I/O-Trap-Indikator bei Rück
kehr aus der Systeminterrupt-Serviceroutine gesetzt ist, der
unterbrochene I/O-Befehl erneut ausgeführt. Wenn jedoch der
I/O-Trap-Indikator bei Rückkehr aus der Systeminterrupt-Ser
viceroutine nicht gesetzt ist, wird der nächste Befehl ausge
führt.
Claims (4)
1. Unterbrechungseinrichtung für ein Mikroprozessorsystem
mit einer zentralen Verarbeitungseinheit (CPU) (12), die mit
wenigstens einer Speichereinheit (44) und wenigstens einer
Buseinheit zur Ausführung eines Betriebssystems und wenigstens
eines Anwenderprogramms, die eine Vielzahl von CPU-Befehlen
enthalten, gekoppelt ist, wobei die CPU (12) außerdem in
wenigstens zwei Betriebsarten (Modi) der Programmausführung,
einem Realmodus und einem geschützten Modus, betreibbar ist und
wenigstens einen Eingang für Interrupts zum Unterbrechen der
Programmausführung aufweist,
dadurch gekennzeichnet, daß
- (a) die CPU einen ausgeführten Schreib-Ein/Ausgabe(I/O)-Be fehl bis zum Abschluß des Schreibens durch die Buseinheit zwischenspeichert (posting), wobei die Befehle zumindest einen I/O-Befehl einschließlich des Schreib-I/O-Befehls aufweisen;
- (b) die Speichereinheiten (44) einen dedizierten Speicher
bereich zum Speichern eines Interrupt-Verarbeitungsprogramms,
von Prozessor-Zustandsdaten der CPU (12) und eines I/O-Trap-In
dikators aufweisen,
wobei der dedizierte Speicherbereich nicht als Teil des Hauptspeicherraums abgebildet ist, wodurch der dedizierte Speicherbereich für das Betriebssystem und die Anwenderpro gramme unzugreifbar ist,
wobei das Interrupt-Verarbeitungsprogramm Befehle zum Be stimmen einer etwaigen Unterbrechung der. CPU während eines der I/O-Befehle und zum Setzen des I/O-Trap-Indikators aufweist, um anzuzeigen, daß die CPU während eines der I/O-Befehle unterbro chen worden ist und daß der unterbrochene I/O-Befehl erneut ge startet werden soll, wenn die CPU die Ausführung wiederauf nimmt;
wobei die Prozessor-Zustandsdaten einen Befehlszähler, ei nen Befehlszähler des vorangegangenen Befehls und zumindest ein I/O-Parameter-Register enthalten, wobei die Befehlszähler auf einen ersten und zweiten Befehl des Betriebssystems oder des Anwenderprogramms hinweisen, wobei der erste Befehl ein als nächster durch die CPU auszuführender Befehl ist, und der zweite Befehl ein gerade durch die CPU ausgeführter Befehl ist, wobei ferner die I/O-Parameter-Register dem jüngst ausgeführten I/O-Befehl zugeordnet sind;
und wobei der I/O-Trap-Indikator anzeigt, ob die CPU wäh rend der Ausführung eines der I/O-Befehle unterbrochen worden ist; - (c) die Interrupts ein Systemüberwachungsinterrupt (SSI) zum Unterbrechen der Ausführung des Betriebssystems und der An wenderprogramme, Einschalten und Abbilden des dedizierten Speicherbereichs in ein vorgegebenes Segment des Hauptspeicher raums, Speichern der Prozessor-Zustandsdaten der CPU (12) in den dedizierten Speicherbereich, Schalten der CPU in den Real modus der Ausführung und Starten der Ausführung des Interrupt- Verarbeitungsprogramms aufweisen, wobei der Systemüberwachungs interrupt (SSI) von dem Betriebssystem und den Anwenderprogrammen nicht maskierbar ist und eine höhere Priorität als andere Interrupts hat; und
- (d) die CPU-Befehle einen Wiederaufnahmebefehl (RESUME) zum
Zurückspeichern der gesicherten Prozessor-Zustandsdaten aus dem
dedizierten Speicherbereich in die CPU, zum Überprüfen, ob der
I/O-Trap-Indikator gesetzt ist, und zum Dekrementieren des zu
rückgespeicherten Befehlszählers auf den zurückgespeicherten
Befehlszähler des vorangegangenen Befehls, wenn der I/O-Trap-
Indikator gesetzt ist, zum Laden des zurückgespeicherten
I/O-Port-Zeigers und der zurückgespeicherten I/O-Puffergrößen-Kon
stante in zwei Mehrzweckregister der CPU, ferner zum Ausschal
ten und Ausblenden (unmapping) des dedizierten Speicherbereichs
aus dem Hauptspeicherraum und zum Wiederaufnehmen der Ausfüh
rung des Betriebssystems und der Anwenderprogramme enthalten;
wodurch die CPU zuverlässig unterbrochen und ein automati sierter Neustart bei einem I/O-Trap für das Interrupt-Service programm in einer für das Betriebssystem und die Anwenderpro gramme transparenten Weise geschaffen werden kann.
2. Unterbrechungseinrichtung für ein Mikroprozessorsystem nach Anspruch 1, dadurch gekenn
zeichnet, daß die Speichereinheiten (44) einen platineneigenen
Direktzugriffsspeicher (RAM) aufweisen und daß der dedizierte
Speicherbereich Teil des platineneigenen RAM′s ist.
3. Unterbrechungseinrichtung für ein Mikroprozessorsystem nach Anspruch 1, dadurch gekenn
zeichnet, daß die Speichereinheiten (44) einen mit einem plati
neneigenen RAM-Steuergerät gekoppelten separaten RAM aufweisen
und daß der dedizierte Speicherbereich Teil des separaten RAM′s
ist.
4. Verfahren zum zuverlässigen Unterbrechen einer CPU und
zur Erzeugung eines automatisierten Neustarts bei einem
I/O-Trap für ein Interrupt-Serviceprogramm in einer für ein Be
triebssystem und für Anwenderprogramme transparenten Weise, un
ter Verwendung eines Mikroprozessorsystems, das die CPU und we
nigstens eine Speichereinheit und eine Buseinheit zur Ausfüh
rung eines Betriebssystems und wenigstens eines Anwenderpro
gramms aufweist, die eine Vielzahl von CPU-Befehlen enthalten,
wobei die CPU außerdem wenigstens in zwei Betriebsarten (Modi)
der Programmausführung, einen Realmodus und einen geschützten
Modus, betreibbar ist und wenigstens einen Interrupteingang zum
Unterbrechen der Programmausführung aufweist,
dadurch gekennzeichnet, daß
- (a) ein ausgeführter Schreib-Ein/Ausgabe (I/O)-Befehl bis zur Beendigung des Schreibens durch die Buseinheit zwischenge speichert wird (posting), wobei die Befehle zumindest einen I/O-Befehl einschließlich des Schreib-I/O-Befehls aufweisen;
- (b) ein Interrupt-Verarbeitungsprogramm in einem dedizier ten Speicherbereich der Speichereinheiten gespeichert wird, wo bei der dedizierte Speicherbereich nicht als Teil des Haupt speicherraums abgebildet wird, wodurch der dedizierte Speicher bereich für das Betriebssystem und die Anwenderprogramme unzu greifbar wird;
- (c) die Ausführung des Betriebssystems und der Anwenderpro gramme bei Empfang eines vorgegebenen Eingangssignals (Interrupts) unterbrochen wird, wobei die Unterbrechung weder vom Betriebssystem noch von den Anwenderprogrammen maskierbar ist und eine höhere Priorität als andere Unterbrechungen besitzt;
- (d) der dedizierte Speicherbereich eingeschaltet und auf ein vorgegebenes Segment des Hauptspeicherraums abgebildet wird;
- (e) Prozessor-Zustandsdaten der CPU in den dedizierten
Speicherbereich gespeichert werden, wobei die Prozessor-Zu
standsdaten einen Befehlszähler, einen Befehlszähler des voran
gegangenen Befehls und wenigstens ein I/O-Parameter-Register
enthalten,
wobei der Befehlszähler und der Befehlszähler des vorange gangenen Befehls auf einen ersten bzw. zweiten Befehl des Be triebssystems bzw. Anwendungsprogramms hinweisen, wobei ferner der erste Befehl ein als nächster durch die CPU auszuführender Befehl ist, der zweite Befehl ein gerade durch die CPU ausge führter Befehl ist, und wobei das I/O-Parameter-Register dem jüngst ausgeführten I/O-Befehl zugeordnet ist; - (f) festgestellt wird, ob die CPU während der Ausführung eines der I/O-Befehle unterbrochen wurde, und der I/O-Trap- Indikator in dem dedizierten Speicherbereich gespeichert wird, wenn die CPU während oder Ausführung eines der I/O-Befehle unterbrochen wurde und der unterbrochene I/O-Befehl bei Wieder aufnahme der Ausführung durch die CPU erneut ausgeführt werden soll;
- (g) die CPU in den Realmodus der Ausführung geschaltet wird;
- (h) die Ausführung des Interrupt-Verarbeitungsprogramms be gonnen wird;
- (i) die gesicherten Prozessor-Zustandsdaten unter Steuerung durch das Interrupt-Serviceprogramm wiederhergestellt werden;
- (j) festgestellt wird, ob der gesicherte I/O-Trap-Indikator gesetzt ist, und der zurückgespeicherte Befehlszähler auf den zurückgespeicherten Befehlszähler des vorangegangenen Befehls dekrementiert wird und die I/O-Parameter-Register wiederherge stellt werden, wenn der gesicherte I/O-Trap-Indikator gesetzt ist;
- (k) der dedizierte Speicherbereich aus dem Hauptspeicher raum ausgeschaltet und abbildungslos gemacht wird; und
- (l) die Ausführung des Betriebssystems und der Anwenderpro gramme mit dem durch den Befehlszähler angezeigten Befehl wie deraufgenommen wird.
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US75310791A | 1991-08-30 | 1991-08-30 |
Publications (2)
Publication Number | Publication Date |
---|---|
DE4228754A1 DE4228754A1 (de) | 1993-03-04 |
DE4228754C2 true DE4228754C2 (de) | 1997-01-09 |
Family
ID=25029188
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
DE4228754A Expired - Fee Related DE4228754C2 (de) | 1991-08-30 | 1992-08-28 | Unterbrechungseinrichtung für ein Mikroprozessorsystem und Verfahren zum zuverlässigen Unterbrechen einer CPU |
Country Status (5)
Country | Link |
---|---|
JP (1) | JP2753781B2 (de) |
DE (1) | DE4228754C2 (de) |
FR (1) | FR2681963B1 (de) |
GB (1) | GB2259166B (de) |
HK (1) | HK170895A (de) |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH06230979A (ja) * | 1992-06-17 | 1994-08-19 | Cyrix Corp | 改良されたシステム管理方法および装置 |
US5475829A (en) * | 1993-03-22 | 1995-12-12 | Compaq Computer Corp. | Computer system which overrides write protection status during execution in system management mode |
US6093213A (en) * | 1995-10-06 | 2000-07-25 | Advanced Micro Devices, Inc. | Flexible implementation of a system management mode (SMM) in a processor |
US6557104B2 (en) | 1997-05-02 | 2003-04-29 | Phoenix Technologies Ltd. | Method and apparatus for secure processing of cryptographic keys |
US7925815B1 (en) * | 2006-06-29 | 2011-04-12 | David Dunn | Modifications to increase computer system security |
US8661265B1 (en) | 2006-06-29 | 2014-02-25 | David Dunn | Processor modifications to increase computer system security |
Family Cites Families (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS4826169A (de) * | 1971-08-09 | 1973-04-05 | ||
JPS51114839A (en) * | 1975-04-02 | 1976-10-08 | Hitachi Ltd | Data processor |
JPS5384540A (en) * | 1976-12-29 | 1978-07-26 | Fujitsu Ltd | Data processing unit |
JPS599937B2 (ja) * | 1980-02-20 | 1984-03-06 | 富士通株式会社 | 情報処理装置 |
US4374415A (en) * | 1980-07-14 | 1983-02-15 | International Business Machines Corp. | Host control of suspension and resumption of channel program execution |
US4719565A (en) * | 1984-11-01 | 1988-01-12 | Advanced Micro Devices, Inc. | Interrupt and trap handling in microprogram sequencer |
US5027273A (en) * | 1985-04-10 | 1991-06-25 | Microsoft Corporation | Method and operating system for executing programs in a multi-mode microprocessor |
US4907150A (en) * | 1986-01-17 | 1990-03-06 | International Business Machines Corporation | Apparatus and method for suspending and resuming software applications on a computer |
JPS6468838A (en) * | 1987-09-10 | 1989-03-14 | Hitachi Ltd | Level processing information processor |
-
1992
- 1992-08-19 GB GB9217580A patent/GB2259166B/en not_active Expired - Fee Related
- 1992-08-28 FR FR9210351A patent/FR2681963B1/fr not_active Expired - Fee Related
- 1992-08-28 DE DE4228754A patent/DE4228754C2/de not_active Expired - Fee Related
- 1992-08-31 JP JP4253662A patent/JP2753781B2/ja not_active Expired - Lifetime
-
1995
- 1995-11-09 HK HK170895A patent/HK170895A/xx not_active IP Right Cessation
Also Published As
Publication number | Publication date |
---|---|
FR2681963A1 (fr) | 1993-04-02 |
GB2259166A (en) | 1993-03-03 |
DE4228754A1 (de) | 1993-03-04 |
GB9217580D0 (en) | 1992-09-30 |
HK170895A (en) | 1995-11-17 |
FR2681963B1 (fr) | 1995-01-13 |
GB2259166B (en) | 1995-05-03 |
JPH05233325A (ja) | 1993-09-10 |
JP2753781B2 (ja) | 1998-05-20 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
DE4228755C2 (de) | Unterbrechungseinrichtung für ein Mikroprozessorsystem und zugehöriges Verfahren | |
DE4228756C2 (de) | Unterbrechungseinrichtung für ein Mikroprozessorsystem | |
DE3587622T2 (de) | Emulationseinrichtung in einem Datenverarbeitungssystem. | |
DE4309532A1 (de) | Verfahren zur Einrichtung zum Sichern einer Systemabbildung auf eine permanente Speichereinrichtung | |
DE69803304T2 (de) | Hardwareunterstütztes verfahren zum kontextwechsel | |
DE3687866T2 (de) | System zur verwaltung einer mehrzahl gemeinsamer unterbrechungsbehandlungsroutinen in einer datenstruktur mit verknuepften listen. | |
DE2722099C2 (de) | ||
DE69031233T2 (de) | Adaptive Arbeitsfolgeplanung für Mehrfachverarbeitungssysteme | |
DE69327794T2 (de) | Verfahren zur autonomen reduktion des leistungsverbrauchs in einem rechensystem | |
DE10085374B4 (de) | Systemmanagementspeicher für die Systemmanagement-Interrupt-Behandler wird in die Speichersteuereinrichtung integriert, unabhängig vom BIOS und Betriebssystem | |
DE3780475T2 (de) | Informationsverarbeitungssystem. | |
DE112004002296B4 (de) | Anwenderprogrammierbares Multithreading mit geringem Overhead | |
DE3889578T2 (de) | Vorrichtung zur Sicherung und Rückspeicherung einer Registerinformation. | |
DE2718051C3 (de) | Datenverarbeitungsanlage mit Einrichtungen zur wechselnden Bearbeitung mehrerer Aufgaben | |
DE69622647T2 (de) | Wiederherstellbares Plattensteuersystem mit nichtflüchtigem Speicher | |
DE3687298T2 (de) | Verfahren zur verarbeitung von adressenuebersetzungsausnahmen in einer virtuellen speicheranordnung. | |
DE4311441C2 (de) | Verfahren zum Betreiben eines Mikroprozessors mit einem externen Anschluß | |
DE3855289T2 (de) | Maus-Zeiger mit umschaltbarem Emulations-Betriebsmodus | |
DE4337055A1 (de) | Abbruch/Wiederaufnahmesteuerverfahren und -anordnung bei einem tragbaren Rechner o. dgl. | |
DE3607889A1 (de) | Verfahren zum steuern von unterbrechungen in einem virtuellen maschinensystem und virtuelles maschinensystem zur durchfuehrung des verfahrens | |
DE2714805A1 (de) | Datenverarbeitungssystem | |
DE602004007754T2 (de) | Verfahren und Vorrichtung zur Feststellung einer Prozessorenbelastung | |
DE69621405T2 (de) | Verarbeitungssystem, prozessor, befehlsstromspeicher und kompilierer | |
DE2721623A1 (de) | System zur bearbeitung eines zielsystemprogrammes | |
DE4228754C2 (de) | Unterbrechungseinrichtung für ein Mikroprozessorsystem und Verfahren zum zuverlässigen Unterbrechen einer CPU |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
8110 | Request for examination paragraph 44 | ||
D2 | Grant after examination | ||
8364 | No opposition during term of opposition | ||
8339 | Ceased/non-payment of the annual fee |