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 CPU

Info

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
Application number
DE4228754A
Other languages
English (en)
Other versions
DE4228754A1 (de
Inventor
James Kardach
Cau Nguyen
Kameswaran Sivamani
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Intel Corp
Original Assignee
Intel Corp
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Intel Corp filed Critical Intel Corp
Publication of DE4228754A1 publication Critical patent/DE4228754A1/de
Application granted granted Critical
Publication of DE4228754C2 publication Critical patent/DE4228754C2/de
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4812Task transfer initiation or dispatching by interrupt, e.g. masked
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30003Arrangements for executing specific machine instructions
    • G06F9/3004Arrangements for executing specific machine instructions to perform operations on memory
    • G06F9/30043LOAD or STORE instructions; Clear instruction
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30003Arrangements for executing specific machine instructions
    • G06F9/3005Arrangements for executing specific machine instructions to perform operations for flow control
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3861Recovery, e.g. branch miss-prediction, exception handling
    • G06F9/3863Recovery, e.g. branch miss-prediction, exception handling using multiple copies of the architectural state, e.g. shadow registers
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/461Saving or restoring of program or task context
    • G06F9/463Program 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.
Systemüberblick
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.
Transparentes Systeminterrupt mit automatisiertem Neustart bei einem I/O-Trap
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.
DE4228754A 1991-08-30 1992-08-28 Unterbrechungseinrichtung für ein Mikroprozessorsystem und Verfahren zum zuverlässigen Unterbrechen einer CPU Expired - Fee Related DE4228754C2 (de)

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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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

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