Beschreibung
Prozessor bzw. Verfahren zum Betreiben eines Prozessors und/oder Betriebssystems im Fall einer Störung
Die Erfindung bezieht sich auf ein Verfahren zum Betreiben eines Prozessors und/oder Betriebssystems mit den oberbe¬ grifflichen Merkmalen des Patentanspruchs 1 bzw. auf einen Prozessor mit den Oberbegriffliehen Merkmalen des Patentan- spruchs 10.
Ein Prozessor in einem Computer oder einem modernen mobilen Gerät bzw. ein entsprechendes Betriebssystem werden in einem Ausführungsmodus für einen normalen Betriebsablauf betrieben. Eine momentane Programm-Fehlfunktion bewirkt oftmals eine Un¬ terbrechung der Ausführung und einen Absturz der Laufzeitum¬ gebung. Falls die Laufzeitumgebung in einem Überwachungsmo¬ dus, der auch als Kernel-Modus oder privilegierter Level 0 bekannt ist, betrieben wird, tritt die Maschine bzw. der Pro- zessor im Fall einer Störung in einen Störungsmodus, der auch als Panikmodus bezeichnet wird, und wird neu gestartet oder „eingefroren", was ein Ausschalten erforderlich macht, um ei¬ nen kalten Neustart zu ermöglichen. Falls die Laufzeitumge¬ bung eine Anwendung ist, welche nicht in dem Kernel-Modus be- trieben wird, stürzt abhängig von dem Speichermodell und dem Ausführungsmodell des zentralen Prozessors und des Betriebs¬ systems zumindest die gestörte bzw. fehlerhafte Anwendung ab. Im Fall eines einfachen Modells stürzt die gesamte Maschine ab, wie vorstehend beschrieben.
Bekannt ist das Speichern bzw. Retten des Ausführungskontex¬ tes im Störungsmoment, wobei der Ausführungskontext mit den gestörten Zustandsdaten in einem nicht flüchtigen Speicher speicherbar ist. Mittels externer Zugriffe durch eine Be- triebsperson ist damit eine spätere Untersuchung der Stö¬ rungsursache möglich.
Von Programmier-Entwicklungssoftware sind allgemein Entwick¬ lungsprogramme bekannt, bei welchen ein Compiler und ein De¬ bugger als ein einheitliches Entwicklungsprogramm zusammenge¬ führt sind, um im Fall eines Kompilierungsfehlers oder eines nachfolgenden Laufzeitfehlers einen Absturz des kompilierten Programms zur Optimierung der Programmentwicklung zu verhin¬ dern.
Die Aufgabe der Erfindung besteht darin, einen Prozessor bzw. ein Verfahren zum Betreiben eines Prozessors im Fall einer Störung des normalen Betriebsablaufs zu verbessern.
Diese Aufgabe wird durch das Verfahren zum Betreiben eines Prozessors und/oder Betriebssystems mit den Merkmalen des Pa- tentanspruchs 1 bzw. durch einen Prozessor mit den Merkmalen des Patentanspruchs 10 gelöst.
Bevorzugt wird demgemäß ein Verfahren zum Betreiben eines Prozessors und/oder Betriebssystems, bei dem der Prozessor in einem Ausführungsmodus für einen normalen Betriebsablauf be¬ trieben wird, wobei im Fall einer Störung in einen Reparatur¬ modus zum Beseitigen der Störung umgeschaltet wird, wobei der normale Betriebsablauf im Ausführungsmodus nach Beseitigung der Störung fortgesetzt wird.
Vorrichtungsgemäß ist bevorzugt ein Prozessor mit einer Schnittstelle für einen Betriebssystemzugriff in einem Aus¬ führungsmodus zum Ausführen eines normalen Betriebsablaufs. Vorteilhaft wird der Prozessor durch diese oder eine weitere Schnittstelle für einen Betriebssystemzugriff in einem Repa¬ raturmodus zum Ausführen im Fall einer Störung zum Beseitigen der Störung zur nachfolgenden Fortsetzung des Betriebsablaufs im Ausführungsmodus.
Vorteilhafte Ausgestaltungen sind Gegenstand von abhängigen Ansprüchen.
Bevorzugt wird insbesondere ein Verfahren, bei dem für den Reparaturmodus eine Laufzeitumgebung als eigenständige Be¬ triebs-Laufzeitumgebung hochgefahren wird.
Bevorzugt wird insbesondere ein Verfahren, bei dem im Fall der Störung in einen Störungsmodus umgeschaltet wird und vom Störungsmodus nach einem Retten des Ausführungskontextes in den Reparaturmodus umgeschaltet wird.
Bevorzugt wird insbesondere ein Verfahren, bei dem vom Repa¬ raturmodus in den Störungsmodus und von dort in den Ausfüh¬ rungsmodus zurückgewechselt wird.
Bevorzugt wird insbesondere ein Verfahren, bei dem im Repara¬ turmodus eine Störungsbehebung mittels des geretteten Ausfüh¬ rungskontextes durchgeführt wird und die entstörten Daten als Ausführungskontext in den Prozessor und/oder ein Register zu¬ rückgespeichert werden.
Bevorzugt wird insbesondere ein Verfahren, bei dem im Repara¬ turmodus ein fehlerhafter Wert oder Zustand im Prozessor und/oder in einem Register korrigiert wird, so dass eine Fortführung des Ausführungsmodus ermöglicht wird.
Bevorzugt wird insbesondere ein Verfahren, bei dem im Repara¬ turmodus ein fehlerhafter Wert oder Zustand im Prozessor und/oder in einem Register mit einem Wert bzw. Zustand über¬ schrieben wird, der eine Fortführung des Ausführungsmodus er- möglicht.
Bevorzugt wird insbesondere ein Verfahren, bei dem im Repara¬ turmodus zur Störungsbeseitigung ein Reparaturalgorithmus ab¬ hängig von einer ermittelten Störungsursache gestartet wird.
Bevorzugt wird insbesondere ein Verfahren, bei dem im Ausfüh¬ rungsmodus der Betrieb wahlweise vor oder nach dem Betriebs¬ zustand des Störungszustands fortgesetzt wird.
Bevorzugt wird insbesondere ein Prozessor mit einer Schnitt¬ stelle zu zumindest einem Betriebskontext- bzw. Betriebszu- stands-Speicher zum Speichern eines momentanen Störungs- Betriebszustands des gestörten Betriebsablaufs und zum Rück¬ speichern eines ungestörten normalen Betriebszustands nach einer Störungsbehebung durch den Reparaturmodus.
Bevorzugt wird insbesondere ein Prozessor mit einem Repara¬ turdatenbankspeicher zum Speichern verschiedener Reparatur- Algorithmen für verschiedene Fehlertypen.
Bevorzugt werden insbesondere ein solches Verfahren und/oder ein solcher Prozessor, wenn die Störung eine Störung ist, welche bei normaler Ablauffortsetzung zu einem Absturz der Laufzeitumgebung, zu einem Absturz der des Prozessors oder zu einem Absturz der des gesamten Systems führen würde oder ei¬ nen kalten Neustart erforderlich machen würde.
Bevorzugt wird insbesondere ein Mobilfunkgerät zum Durchfüh¬ ren eines solchen Verfahrens und/oder mit einem solchen Pro- zessor. Ein Einsatz des Verfahrens bzw. des Prozessors ist auch in anderen Einsatzgebieten vorteilhaft. Neben dem Ein¬ satz in herkömmlichen Computern bietet sich insbesondere auch ein Einsatz in mobilen Geräten wie mobilen Computern, PDAs etc. an, welche über einen externen Schnittstellenanschluss mit anderen Einrichtungen kommunizieren. Mit Blick auf eine Online-Anwendung wird der Benutzer in die Lage versetzt, mit dem Reparaturalgorithmus bzw. Reparaturmodus zu reagieren und zu interagieren. Letztendlich entscheidend für den Einsatz des Verfahrens bzw. des Prozessors ist auch, wie pflege- und wartungsbedürftig die entsprechende Einrichtung ist und wel¬ che Vorteile im Einzelfall erzielbar sind.
Verfahrensgemäß und vorrichtungsgemäß wird somit eine Lösung bevorzugt, welche einen Mechanismus bietet, der nach einer insbesondere schwerwiegenden Programmfehlfunktion, welche er- fasst wurde, aktiv wird und eine Fehlerkorrektur vor einem Absturz des gesamten Systems oder des Prozessors mit dem Be¬ triebssystem ermöglicht. Es handelt sich um einen Reparatur¬ mechanismus, welcher eine insbesondere minimale Ausführungs¬ umgebung als eine Reparaturumgebung hochfährt oder aktiviert, falls die Reparaturumgebung bereits zu einem früheren Zeit- punkt hochgefahren wurde.
Nach der Aktivierung bildet die Reparaturumgebung den Fehl¬ funktionstyp bzw. einen Fehlercode auf einen entsprechenden Reparaturalgorithmus in einer Reparaturalgorithmusdatenbank ab, führt den Reparaturalgorithmus aus und bewirkt eine Fort¬ führung des normalen Betriebsablaufs im Ausführungsmodus nach der Störungsbeseitigung. Sofern die Störungsbeseitigung mit Hilfe eines gespeicherten bzw. geretteten Ausführungskontex¬ tes von Prozessorinhalten und Prozessorregistern etc. durch- geführt wird, werden der Ausführungskontext bzw. die entspre¬ chenden Daten nach der Störungsbeseitigung wieder in den Pro¬ zessor bzw. die entsprechenden Register etc. zurückgeladen. Ein ansonsten zwangsläufig nach Aktivierung des Störungs¬ bzw. Panikmodus erfolgender Absturz oder kalter Neustart kann dadurch vermieden werden. Nach dem Verlassen des Reparaturmo¬ dus kann die Ausführung des Betriebsablaufs in dem zuvor de¬ fekten Programm wieder in dem Programmabschnitt aufgenommen werden, wo die Fehlfunktion bzw. Störung ansonsten den Ab¬ sturz verursacht hätte.
Die derartigen Reparaturalgorithmen können sehr verschieden¬ artig sein. In einem einfachen Fall kann eine Textnachricht zum Informieren des Benutzers ausgegeben werden, bevor der Absturz auftritt, um Umgehungsmöglichkeiten zur Vermeidung des Absturzes vorzuschlagen. Aufwändigere Reparaturalgorith¬ men können vorteilhafterweise das Programm an der Fehlerstel-
Ie korrigieren und die Ausführung des normalen Betriebsab¬ laufs dieses Programms ohne einen Absturz wiederaufnehmen.
Beschrieben wird somit ein Mechanismus, welcher eine Umgehung von Softwaredefekten ermöglicht und die Verfügbarkeit der Ma¬ schine bzw. des Gerätes mit dem entsprechenden Verfahren bzw. Prozessor verbessert. Insbesondere mobile Einrichtungen soll¬ ten nicht abstürzen und eine bestmögliche Verfügbarkeit bie¬ ten. Da es jedoch üblicherweise keine perfekte Software gibt und Fehler, welche zu einem Absturz führen, auftreten, ist der Einsatz solcher Mechanismen von Vorteil.
Ein Ausführungsbeispiel wird nachfolgend anhand der Zeichnung näher erläutert. Es zeigen:
Fig. 1 schematisch einzelne Komponenten in Verbindung mit Laufzeitumgebungen eines Prozessors; und
Fig. 2 schematisch einen Verfahrensablauf zur Veranschauli- chung eines beispielhaften Reparaturvorgangs zum Be¬ seitigen einer Störung.
Fig. 1 skizziert beispielhaft einen Prozessor CPU mit drei symbolischen Prozessorabschnitten zum Symbolisieren verschie- dener Betriebsabläufe. Bei den Betriebsabläufen handelt es sich um einen Ausführungsmodus N zum Ausführen eines normalen Betriebsablaufs und um einen Panik- bzw. Störungsmodus P zum Speichern bzw. Retten von Prozessorzuständen und Registerzu¬ ständen im Fall einer Störung, welche bei Ablauffortführung einen Absturz des Ausführungsmodus, des Prozessors oder gar des Gesamtsystems verursachen würde. Ausführungsmodus N und Störungsmodus P funktionieren in für sich bekannter Art und Weise in einem solchen Prozessor CPU bzw. unter einem ent¬ sprechenden Betriebssystem OS.
Außerdem vorgesehen ist zusätzlich ein Reparaturmodus R. Die¬ ser dient zum Reparieren bzw. zum Beseitigen einer Störung
bzw. eines Fehlers, welcher ansonsten zu einem Absturz des Systems führen würde. Dem Reparaturmodus R ist dabei zweckmä¬ ßigerweise eine eigene Laufzeitumgebung zugeordnet, welche als eigenständige Betriebs-Laufzeitumgebung hochgefahren wird. Das Hochfahren kann dabei beispielsweise mit dem Star¬ ten des Gerätes, in welchem der Prozessor CPU eingesetzt wird, erfolgen. Das Hochfahren des Reparaturmodus R kann aber vorteilhaft gegebenenfalls auch erst beim Starten eines kri¬ tischen Programms, eines Updates oder nach dem Aktivieren des Störungsmodus P durchgeführt werden.
Dem Reparaturmodus R ist vorzugsweise in einem Speicher M ei¬ ne Reparaturdatenbank RDB zugeordnet, in welcher verschiedene Reparaturalgorithmen Algl, Alg2 gespeichert sind, auf welche der Reparaturmodus R je nach ermittelter Fehlerursache bzw. Störungsursache zum Einleiten geeigneter Maßnahmen zur Ver¬ hinderung eines Absturzes zugreifen kann.
In üblicher Art und Weise umfasst der Prozessor CPU Register, insbesondere Prozessorregister MC, in welchen für den norma¬ len Betriebsablauf benötigte Daten hinterlegt werden. Über einen Bus B ist auch eine Verbindung zu einem externen Spei¬ cher M gegeben. In dem externen Speicher M oder gegebenen¬ falls auch einem im Prozessor CPU integrierten Speicher sind Speicherbereiche zum Speichern des Betriebssystems OS, der
Reparaturdatenbank RDB sowie ein Ausführungskontextspeicher S zum Speichern eines Ausführungskontextes ps im Moment einer Störung oder zuvor bereitgestellt.
Zu Betriebsbeginn wird das Betriebssystem OS in den Prozessor CPU geladen, um diesen im Ausführungsmodus N zu betreiben. Im Fall einer Störung, insbesondere einer Störung, welche zu ei¬ nem Absturz führen würde, wird der Ausführungsmodus N unter¬ brochen und in den Störungsmodus P umgeschaltet f1. Im Stö- rungsmodus P wird der Ausführungskontext ps in einem nachfol¬ genden Schritt f2, soweit möglich, gerettet bzw. im Ausfüh¬ rungskontextspeicher S gespeichert. Nachfolgend wird in den
Reparaturmodus R umgeschaltet f3, um die Störung, soweit mög¬ lich, zu beseitigen. Im Reparaturmodus R wird die eigenstän¬ dige Betriebs-Laufzeitumgebung hochgefahren, sofern sie nicht bereits zu einem früheren Zeitpunkt hochgefahren wurde. Au- ßerdem wird ein Reparaturalgorithmus gestartet. Vorzugsweise wird abhängig von einem erkannten bzw. ermittelten Fehler bzw. der Störungsursache aus der Reparaturdatenbank RDB ein geeigneter Reparaturalgorithmus Algl, Alg2 geladen und in der Betriebs-Laufzeitumgebung des Reparaturmodus R ausgeführt. Dadurch kann die Störung direkt im Prozessor bzw. in Prozes¬ sorregistern MC etc. oder in dem Abbild des gestörten Ausfüh¬ rungskontextes ps im Ausführungskontextspeicher S bearbeitet werden f5. Nachfolgend wird vorzugsweise unter Zwischenschal¬ tung des Störungsmodus P in den Ausführungsmodus N zurückge- schritten f7, f8. Im Ausführungsmodus N kann dann der normale Betriebsablauf fortgesetzt werden, ohne dass es zum Absturz kommt.
Fig. 2 veranschaulicht einen beispielhaften Ablauf eines Ver- fahrens im Bereich des Ausführungsmodus N, des Störungsmodus P und des Reparaturmodus R im Fall einer Störung des normalen Betriebsablaufs. Dargestellt ist insbesondere die Beziehung zwischen einem Reparaturmanager, der im Reparaturmodus R in der entsprechenden Mini-Laufzeitumgebung des Reparaturmodus R läuft, wobei der Reparaturmodus von dem Panikkontext bzw. Störungsmodus P gestartet wird, in welchen im Fall einer Fehlfunktion aus dem Ausführungsmodus N eingetreten wird. Dargestellt sind auch beispielhafte Hauptaufgaben in jedem der Modi und die Ausführung eines Reparaturalgorithmus im Re- paratur- und Ausführungsmodus R, N. In einer beispielhaften Anwendung für kommerzielle Zwecke soll der beispielhafte nachfolgende Code ausgeführt werden:
„Falls „Kartenkonto" = 0, dann starte „leer" sonst starte „kaufe" fi".
Vorgesehen ist somit eine Routine, welche im Fall eines lee¬ ren Kartenkontos entweder eine Routine „leer" oder eine Rou¬ tine „kaufe" startet. Falls die Routine „leer" beispielsweise keinen korrekten Zeiger auf einen geeigneten Speicherbereich aufweist, führt dies zu einem Absturz. Anstelle des abrupten Beendigens der Anwendung wird jedoch der Reparaturmanager R in seinem Minikontext gestartet, wobei dieser den Fehlercode abruft und damit die Reparaturalgorithmustabelle oder Repara- turdatenbank indiziert, um einen entsprechenden Reparatural¬ gorithmus Algl zu laden und auszuführen.
Für den Fall, dass der Reparaturalgorithmus Algl feststellt, dass der fehlerhafte Zeiger die Ursache für die Fehlfunktion bzw. Störung war, können verschiedene Aktionen durchgeführt werden.
Gemäß einer ersten Variante kann der Benutzer des entspre¬ chenden Gerätes mit dem Prozessor informiert werden, bei- spielsweise informiert werden, dass sein Kartenkonto leer ist, der Benutzer die Karte aufladen soll und dann den letz¬ ten Vorgang erneut versuchen soll. Nach Ausgabe der Informa¬ tion wird von dem Reparaturalgorithmus dann ein Sprung zum Ende fi des eigentlichen Algorithmus vorgenommen, so dass ei- ne Fortsetzung im Ausführungsmodus N ohne einen Absturz er¬ möglicht wird f7b. Vorteilhafterweise kann auch ein Fehlerre¬ port aufgezeichnet und gegebenenfalls zu z.B. dem Hersteller des Gerätes oder dem Ausgeber der Kontenkarte übersendet wer¬ den. Um dieses Ausführungsbeispiel zu unterstützen, sollte die Erklärung der Funktion in Verbindung mit einem Absturz¬ texthinweis erstellt werden, welcher durch den Reparaturmana¬ ger bzw. durch den Reparaturmodus R verwendet wird.
Gemäß einer zweiten Variante könnte ein an den Benutzer aus- gegebener Text den Benutzer auch lediglich über das inkorrekt funktionierende Programm informieren und dann zu dem Ende der Anwendung bzw. zum Programmende fi springen, ohne zu einem
Absturz zu führen. Dazu werden gegebenenfalls falsche Regis¬ tereinträge oder Prozessoreinträge durch den Reparaturalgo¬ rithmus Algl vor dem Fortsetzen des Ausführungsmodus N korri¬ giert.
Gemäß einer dritten beispielhaften Variante kann durch den Reparaturalgorithmus Alg2 der fehlerhafte Code des gestörten Programms repariert werden, beispielsweise durch Austauschen des fehlerhaften Zeigers durch die korrekte Adresse der Funk- tion bzw. Routine „leer". Diese korrekte Adresse kann bei¬ spielsweise aufgrund eines automatischen Lernens aus zuvor korrekten Ausführungen des Programms bekannt sein. Nachfol¬ gend ist dann eine Fortsetzung an der Stelle möglich, an der der Fehler bzw. die Störung auftrat. Das heißt, der Betriebs- ablauf im Ausführungsmodus N wird an der Störungsstelle mit einem korrekten Wert fortgesetzt f7a.
Gemäß Fig. 2 wird somit beispielhaft von einem Programmablauf im Ausführungsmodus N und einer Störung des Programmablaufs ausgegangen. Es wird in den Störungsmodus P gewechselt fl, durch welchen der Ausführungskontext ns gespeichert und gege¬ benenfalls die Crashstelle komplett gerettet bzw. gespeichert wird. Es folgt das Starten der Reparaturroutine f3, wobei vorzugsweise ein Fehlertyp mit an den nachfolgenden Repara- turmodus R übergeben wird. Im Reparaturmodus R wird ein ge¬ eigneter Reparaturalgorithmus Algl aufgerufen, ausgeführt und nach Reparatur ein geeigneter Ausführungskontext ns zurückge¬ speichert. Danach wird vom Reparaturmodus R in den Störungs¬ modus P zurückgeschritten f6. Vom Störungsmodus P oder gege- benenfalls auch direkt vom Reparaturmodus R wird der Ausfüh¬ rungskontext wieder gestartet und in den Ausführungsmodus N zurückgeschritten f7. Die Fortsetzung des fehlerhaften Pro¬ gramms im Ausführungsmodus N ist je nach Art der Reparatur an der fehlerhaften und korrigierten Stelle des Programmalgo- rithmus möglich f7a oder am Ende fi des fehlerhaften Pro¬ gramms fortgesetzt f7b.