DE4228754A1 - Mikroprozessorsystem - Google Patents
MikroprozessorsystemInfo
- Publication number
- DE4228754A1 DE4228754A1 DE19924228754 DE4228754A DE4228754A1 DE 4228754 A1 DE4228754 A1 DE 4228754A1 DE 19924228754 DE19924228754 DE 19924228754 DE 4228754 A DE4228754 A DE 4228754A DE 4228754 A1 DE4228754 A1 DE 4228754A1
- Authority
- DE
- Germany
- Prior art keywords
- command
- cpu
- interrupt
- execution
- memory area
- 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.)
- Granted
Links
- 238000000034 method Methods 0.000 claims description 9
- 238000001514 detection method Methods 0.000 claims description 3
- 230000006870 function Effects 0.000 claims description 3
- 239000000872 buffer Substances 0.000 claims description 2
- 238000012545 processing Methods 0.000 claims description 2
- 238000013507 mapping Methods 0.000 claims 2
- 238000005562 fading Methods 0.000 claims 1
- 238000012544 monitoring process Methods 0.000 claims 1
- 230000001960 triggered effect Effects 0.000 claims 1
- 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
- 238000011161 development Methods 0.000 description 1
- 230000018109 developmental process 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 das Gebiet der Mikroprozes
sorarchitektur und insbesondere auf ein Verfahren und eine Ein
richtung zur Erzeugung von transparenten Systeminterrupts mit
einem automatisierten Neustart bei einem Ein/Ausgabe-Trap.
In einer älteren U.S.-Anmeldung Nr. 07/5 94 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 U.S.-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 U.S.-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. U.S.-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 daher die Aufgabe zugrunde, ein verbes
sertes transparentes Systeminterrupt mit automatisiertem Neu
start bei einem I/O-Trap zur Verfügung zu stellen.
Diese Aufgabe wird erfindungsgemäß gelöst durch die Merk
male des Patentanspruchs 1 bzw. 8.
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 Systemin
terrupt-Serviceroutine setzt einen I/O-Trap-Indikator in dem
besonderen RAM-Raum, sofern die CPU während der Ausführung ei
nes I/O-Befehls unterbrochen wurde und die Interrupt-Service
routine 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 des erfindungsgemäßen Mikroprozessorsystems;
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 verkörpernden 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 (nicht
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-
Befehle, 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-RAMs
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 113 b,
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 (15)
1. Mikroprozessorsystem mit einer zentralen Verarbeitungs
einheit (CPU) (12), die mit wenigstens einer Speichereinheit
(44) und wenigstens einer Buseinheit zur Ausführung eines Be
triebssystems und wenigstens eines Anwenderprogramms, die eine
Vielzahl von CPU-Befehlen enthalten, gekoppelt ist, wobei die
CPU (12) außerdem wenigstens zwei Moden der Programmausführung,
einen Realmodus und einen geschützten Modus und wenigstens ein
Interrupt 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 über trägt (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, einen 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 bzw. 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;
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, einen 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 bzw. 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 Re almodus der Ausführung und Starten der Ausführung des Inter rupt-Verarbeitungsprogramms aufweisen, wobei das SSI von dem Betriebssystem und den Anwenderprogrammen unmaskierbar ist und eine höhere Priorität als andere Interrupts hat; und
- d) die Befehle enthalten: einen Wiederaufnahmebefehl 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; 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. 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 ist.
3. 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
ist.
4. Mikroprozessorsystem nach einem der Ansprüche 1 bis 3,
dadurch gekennzeichnet, daß die CPU (12) Interruptmittel zum
Auslösen der Interrupts, einschließlich des SSI enthält, daß
das SSI bei Anstehen eines elektrischen Signals ausgelöst wird
und daß die Interruptmittel eine Schnittstelle zur Aufnahme des
elektrischen Signals aufweisen.
5. Mikroprozessorsystem nach Anspruch 4, dadurch gekenn
zeichnet, daß die Schnittstelle ein externer Schaltungspin ist.
6. Mikroprozessorsystem nach Anspruch 4 oder 5, dadurch ge
kennzeichnet, daß ein mit wenigstens einer System-Funktionskom
ponente des Mikroprozessorsystems und den Interruptmitteln ge
koppeltes Ereignis-Feststellmittel zur Bestimmung eines der Sy
stem-Funktionskomponente zugeordneten vorgegebenen Ereignisses
und zur Erzeugung des elektrischen Signals für die Schnitt
stelle bei Feststellung dieses vorgegebenen Ereignisses auf
weist.
7. Mikroprozessorsystem nach einem der Ansprüche 1 bis 6,
dadurch gekennzeichnet, daß die CPU Befehlsmittel zur Ausfüh
rung der Befehle, einschließlich der I/O-Befehle und des Wie
deraufnahmebefehls aufweist.
8. 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 zwei Moden der Programmaus
führung, einen Realmodus und einen geschützten Modus, und we
nigstens ein Interrupt 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 übertragen 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 un zugreifbar wird;
- c) die Ausführung des Betriebssystems und der Anwenderpro gramme bei Empfang eines vorgegebenen Eingangssignals unterbro chen 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) bestimmt 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 der Ausführung eines der I/O-Befehle unterbrochen wurde und der unterbrochene I/O-Befehl bei Wiederaufnahme 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) bestimmt wird, ob der gesicherte I/O-Trap-Indikator ge setzt ist, und der zurückgespeicherte Befehlszähler auf den zu rückgespeicherten Befehlszähler des vorangegangenen Befehls de krementiert 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.
9. Verfahren nach Anspruch 8, dadurch gekennzeichnet, daß
als dedizierter Speicherbereich ein Teil eines platineneigenen,
zu den Speichereinheiten gehörigen RAM verwendet wird.
10. Verfahren nach Anspruch 8, dadurch gekennzeichnet, daß
als dedizierter Speicherbereich ein Teil eines separaten RAM
verwendet wird, der mit einem platineneigenen RAM-Steuergerät
gekoppelt ist.
11. Mikroprozessorsystem nach einem der Ansprüche 8 bis 10,
dadurch gekennzeichnet, daß die Verfahrensschritte (b) bis (g)
bei Eingang eines elektrischen Signals von Interruptmitteln der
CPU durchgeführt werden und daß das elektrische Signal an eine
Schnittstelle der Interruptmittel angelegt wird.
12. Verfahren nach Anspruch 11, dadurch gekennzeichnet, daß
als Schnittstelle ein externer Schaltungspin verwendet wird.
13. Verfahren nach Anspruch 11 oder 12, dadurch gekenn
zeichnet, daß das elektrische Signal von einem mit wenigstens
einer System-Funktionseinheit des Mikroprozessorsystems und den
Interruptmitteln gekoppelten Ereignisdetektor dann erzeugt und
an die Schnittstelle angelegt wird, wenn ein vorgegebenes Er
eignis in Zuordnung zu der System-Funktionseinheit festgestellt
wird.
14. Verfahren nach Anspruch 11, dadurch gekennzeichnet, daß
der Schritt (a) und die Schritte (i) bis (l) von CPU-eigenen
Befehlsmitteln ausgeführt werden.
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 true DE4228754A1 (de) | 1993-03-04 |
DE4228754C2 DE4228754C2 (de) | 1997-01-09 |
Family
ID=25029188
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
DE19924228754 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 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4907150A (en) * | 1986-01-17 | 1990-03-06 | International Business Machines Corporation | Apparatus and method for suspending and resuming software applications on a computer |
US5027273A (en) * | 1985-04-10 | 1991-06-25 | Microsoft Corporation | Method and operating system for executing programs in a multi-mode microprocessor |
Family Cites Families (7)
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 |
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 DE DE19924228754 patent/DE4228754C2/de not_active Expired - Fee Related
- 1992-08-28 FR FR9210351A patent/FR2681963B1/fr 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
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
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 |
Also Published As
Publication number | Publication date |
---|---|
GB2259166B (en) | 1995-05-03 |
GB9217580D0 (en) | 1992-09-30 |
DE4228754C2 (de) | 1997-01-09 |
GB2259166A (en) | 1993-03-03 |
JPH05233325A (ja) | 1993-09-10 |
FR2681963A1 (fr) | 1993-04-02 |
HK170895A (en) | 1995-11-17 |
FR2681963B1 (fr) | 1995-01-13 |
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 | |
DE4309532C2 (de) | Verfahren zum Sichern einer Systemabbildung eines Computersystems auf einer permanenten Speichereinrichtung sowie ein Computersystem | |
DE2722099C2 (de) | ||
DE3607889C2 (de) | ||
DE3311880C2 (de) | ||
EP0333123B1 (de) | Modular strukturiertes ISDN-Kommunikationssystem | |
DE69535187T2 (de) | Speichersteuergerät und Bussteuerungsverfahren dafür | |
DE2718051C3 (de) | Datenverarbeitungsanlage mit Einrichtungen zur wechselnden Bearbeitung mehrerer Aufgaben | |
DE10085374B4 (de) | Systemmanagementspeicher für die Systemmanagement-Interrupt-Behandler wird in die Speichersteuereinrichtung integriert, unabhängig vom BIOS und Betriebssystem | |
DE4311441C2 (de) | Verfahren zum Betreiben eines Mikroprozessors mit einem externen Anschluß | |
DE69908682T2 (de) | Prozessor mit Echtzeit-Ablaufsteuerung zur Fehlerbeseitigung ohne Fehlerbeseitigungsmonitor | |
DE2714805A1 (de) | Datenverarbeitungssystem | |
CH654943A5 (de) | Pruefeinrichtung fuer mikroprogramme. | |
DE602004007754T2 (de) | Verfahren und Vorrichtung zur Feststellung einer Prozessorenbelastung | |
DE4011745A1 (de) | Taskverfolgungseinrichtung | |
DE3735828C2 (de) | Verfahren zur Wiederaufnahme der Ausführung von Anweisungen nach einer Unterbrechung in einer mikroprogrammgesteuerten Datenverarbeitungsvorrichtung | |
DE112013002054T5 (de) | Neu konfigurierbare Wiederherstellungsmodi in Hochverfügbarkeitsprozessoren | |
DE102006039747A1 (de) | Verfahren für Kontextzustandsmanagement | |
DE2721623A1 (de) | System zur bearbeitung eines zielsystemprogrammes | |
DE10393396B4 (de) | Schnittstelle und Vorrichtungstreiber zum lokalen Leistungsmanagement sowie Verfahren und Software zu deren Steuerung | |
DE4228754C2 (de) | Unterbrechungseinrichtung für ein Mikroprozessorsystem und Verfahren zum zuverlässigen Unterbrechen einer CPU | |
EP0048991B1 (de) | Verfahren und Anordnung zur Behandlung von Unterbrechungsbedingungen während des Arbeitsablaufes in Datenverarbeitungsanlagen mit Mikroprogrammsteuerung | |
DE4406094C2 (de) | Vorrichtung zum Betrieb einer Steuerungsanwendung | |
DE69333445T2 (de) | Mikroprozessor mit hardwaregesteuerter Leistungsverwaltung und auswählbaren Eingangs-/Ausgangssteuerungssteckerstiften und Verfahren hierfür |
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 |