[go: up one dir, main page]

DE10206422A1 - System und Verfahren zum Überwachen der Ausführung privilegierter Befehle - Google Patents

System und Verfahren zum Überwachen der Ausführung privilegierter Befehle

Info

Publication number
DE10206422A1
DE10206422A1 DE10206422A DE10206422A DE10206422A1 DE 10206422 A1 DE10206422 A1 DE 10206422A1 DE 10206422 A DE10206422 A DE 10206422A DE 10206422 A DE10206422 A DE 10206422A DE 10206422 A1 DE10206422 A1 DE 10206422A1
Authority
DE
Germany
Prior art keywords
error
processor
privilege level
trap
current
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.)
Withdrawn
Application number
DE10206422A
Other languages
English (en)
Inventor
Bret A Mckee
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.)
HP Inc
Original Assignee
Hewlett Packard Co
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 Hewlett Packard Co filed Critical Hewlett Packard Co
Publication of DE10206422A1 publication Critical patent/DE10206422A1/de
Withdrawn legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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 OR CALCULATING; 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/468Specific access rights for resources, e.g. using capability register
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/48Indexing scheme relating to G06F9/48
    • G06F2209/481Exception handling

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Debugging And Monitoring (AREA)

Abstract

Ein System überwacht die Ausführung von privilegierten Befehlen durch einen Prozessor eines Computersystems. Der Prozessor umfaßt einen aktuellen Privilegpegel. Der Prozessor erzeugt automatisch einen Fehler, wenn die Ausführung eines Befehls versucht wird, der einen höheren Privilegpegel erfordert als der aktuelle Privilegpegel des Prozessors. Der aktuelle Privilegpegel des Prozessors wird ansprechend auf einen Fehler erhöht, der durch einen ersten fehlerverursachenden Befehl erzeugt wurde. Der erste fehlerverursachende Befehl wird ausgeführt. Durch Ausführen des ersten fehlerverursachenden Befehls wird eine Falle erzeugt. Der aktuelle Privilegpegel des Prozessors wird ansprechend auf die Falle verringert.

Description

Die vorliegende Erfindung bezieht sich auf das Überwachen der Ausführung privilegierter Befehle bei Computersystemen und insbesondere auf das Überwachen der Ausführung privile­ gierter Befehle bei Computersystemen unter Verwendung von Hardwareeinzelschrittverarbeitung.
Computersysteme umfassen zumindest einen Prozessor und ei­ nen Speicher. Der Speicher speichert Anwendungsprogrammbe­ fehle, Daten und ein Betriebssystem. Das Betriebssystem steuert den Prozessor und den Speicher für Systemoperatio­ nen und zum Ausführen der Anwendungsprogrammbefehle. Pro­ zessoren weisen oft einen aktuellen Privilegpegel auf, der die Anwendungsbefehlausführung bei dem Computersystem durch Steuern der Zugriffsmöglichkeit auf Systemressourcen bzw. Systembetriebsmittel, wie z. B. Systemregister, Systembe­ fehle und Systemspeicherseiten, steuert. Der aktuelle Pri­ vilegpegel variiert zwischen zwei oder mehreren Ausfüh­ rungsprivilegpegeln.
Manchmal ist es wünschenswert, ein Programm, das ursprüng­ lich als eine privilegierte Anwendung ausgeführt werden sollte, als nichtprivilegierte Anwendung auszuführen. Eine solche Anwendung wird hierin als privilegwünschende Anwen­ dung bezeichnet. Es wäre wünschenswert, die Ausführung von privilegierten Befehlen bei einer privilegwünschenden An­ wendung zu überwachen, zu zählen und zu verfolgen. Eine ak­ tuelle Lösung zum Überwachen der Ausführung von Befehlen in einem Programm besteht darin, einen Softwareemulator zu bilden, um fehlerverursachende Befehle handzuhaben, so daß die Ausführung fortsetzen kann, wenn ein Fehler auftritt. Diese Lösung ist jedoch sehr komplex und erfordert, daß ei­ ne Software entwickelt wird, die den Prozessorzustand ak­ tualisieren kann, als ob ein fehlerverursachender Befehl ausgeführt wurde.
Softwaredebugger bzw. -fehlersuchprogramme wurden ebenfalls entwickelt, um die Ausführung von Programmbefehlen zu über­ wachen. Softwarefehlersuchprogramme verwenden typischerwei­ se ein Einzelschrittmerkmal. Ein Einzelschrittmerkmal kann in einer Software implementiert sein oder kann ein Hard­ waremerkmal sein, das durch den Prozessor geliefert wird. Ein Einzelschrittmerkmal wurde von Softwarefehlersuchpro­ grammen verwendet, um schrittweise, Befehl um Befehl, durch das Programm zu gehen, zu überwachen, wie der Prozessorzu­ stand sich nach jedem Befehl ändert, und Fehler auf der Ba­ sis der Änderungen bei dem Prozessorzustand zu identifizie­ ren. Ein Hardwareeinzelschrittmerkmal wurde vorher nicht als Teil einer Lösung zum Überwachen, Zählen und Verfolgen der Ausführung von privilegierten Befehlen bei einer privi­ legwünschenden Anwendung verwendet.
Es wäre wünschenswert, eine vereinfachte Lösung zum Überwa­ chen, Zählen und Verfolgen der Ausführung von privilegier­ ten Befehlen bei einer privilegwünschenden Anwendung zu liefern, ohne daß es erforderlich ist, einen komplexen Softwareemulator zu erstellen.
Es ist die Aufgabe der vorliegenden Erfindung, ein Verfah­ ren, System und Medium für das unaufwendigere Überwachen, Zählen und Verfolgen der Ausführung von privilegierten Be­ fehlen bei einem Computersystem zu schaffen.
Diese Aufgabe wird durch ein Verfahren gemäß Anspruch 1 oder 11, ein System gemäß Anspruch 20 und ein computerles­ bares Medium gemäß Anspruch 23 gelöst.
Die vorliegende Erfindung liefert ein Computersystem und ein Verfahren zum Überwachen der Ausführung von privile­ gierten Befehlen durch einen Prozessor eines Computersy­ stems. Der Prozessor umfaßt einen aktuellen Privilegpegel.
Der Prozessor erzeugt automatisch einen Fehler, wenn er die Ausführung eines Befehls versucht, der einen höheren Privi­ legpegel erfordert als den aktuellen Privilegpegel des Pro­ zessors. Der aktuelle Privilegpegel des Prozessors wird an­ sprechend auf einen Fehler, der durch einen ersten fehler­ verursachenden Befehl erzeugt wird, erhöht. Der erste feh­ lerverursachende Befehl wird ausgeführt. Durch Ausführen des ersten fehlerverursachenden Befehls wird eine Falle bzw. Softwareunterbrechung erzeugt. Der aktuelle Privileg­ pegel des Prozessors wird ansprechend auf die Falle ernied­ rigt.
Bei einem Ausführungsbeispiel wird der aktuelle Privilegpe­ gel des Prozessors vor dem Ausführen der Befehle ernied­ rigt.
Bei einem Ausführungsbeispiel wird eine Fehlerhandhabungs­ einrichtung bzw. Fehlerroutine aufgerufen, um den Fehler zu verarbeiten. Der Schritt des Erhöhens des aktuellen Privi­ legpegels wird durch die Fehlerhandhabungseinrichtung durchgeführt.
Bei einem Ausführungsbeispiel wird eine Fallenhandhabungs­ einrichtung bzw. Fallenroutine aufgerufen, um die Falle zu verarbeiten. Der Schritt des Erniedrigens des aktuellen Privilegpegels wird durch die Fallenhandhabungseinrichtung durchgeführt.
Bei einem Ausführungsbeispiel wird ansprechend auf den Feh­ ler ein Einzelschrittmodus des Prozessors aktiviert. Der Einzelschrittmodus wird durch Einstellen eines Feldes in einem Systemregister des Prozessors aktiviert.
Bei einem Ausführungsbeispiel werden ansprechend auf den Fehler Zustandsinformationen gespeichert. Die Zustandsin­ formationen umfassen die Anzahl von Befehlen, die einen Fehler bewirkten, und eine Identifikation der Befehle, die einen Fehler bewirkten.
Eine Form der vorliegenden Erfindung liefert ein Verfahren zum Ausführen von Befehlen durch einen Prozessor eines Com­ putersystems, der durch ein Betriebssystem gesteuert wird. Der Prozessor weist einen aktuellen Privilegpegel auf. Ein Privilegierte-Operation-Fehler wird auf der Basis der ver­ suchten Ausführung eines ersten Befehls erzeugt. Anspre­ chend auf den Privilegierte-Operation-Fehler wird der aktu­ elle Privilegpegel des Prozessors erhöht. Ein Einzel­ schrittmodus wird ansprechend auf den Privilegierte- Operation-Fehler aktiviert. Der erste Befehl wird ausge­ führt, wodurch eine Einzelschrittfalle erzeugt wird. Der aktuelle Privilegpegel des Prozessors wird ansprechend auf die Einzelschrittfalle erniedrigt. Der Einzelschrittmodus wird ansprechend auf die Einzelschrittfalle deaktiviert.
Eine Form der vorliegenden Erfindung liefert ein Computer­ system, das einen Prozessor mit einem aktuellen Privilegpe­ gel umfaßt, der die Anwendungsbefehlausführung bei dem Com­ putersystem steuert. Ein Speicher speichert ein privileg­ wünschendes Anwendungsprogramm mit Anwendungsbefehlen. Ein Betriebssystem, das in dem Speicher gespeichert ist, steu­ ert den Prozessor. Das Betriebssystem umfaßt eine Fehler­ handhabungseinrichtung und eine Fallenhandhabungseinrich­ tung. Die Fehlerhandhabungseinrichtung erhöht den aktuellen Privilegpegel und aktiviert einen Einzelschrittmodus an­ sprechend auf einen Privilegierte-Operation-Fehler. Die Fallenhandhabungseinrichtung erniedrigt den aktuellen Pri­ vilegpegel und deaktiviert den Einzelschrittmodus anspre­ chend auf eine Einzelschrittfalle.
Eine Form der vorliegenden Erfindung liefert ein computer­ lesbares Medium, das ein Betriebssystem zum Steuern eines Prozessors eines Computersystems umfaßt, um ein Verfahren zum Überwachen der Ausführung von privilegierten Befehlen durchzuführen. Der Prozessor weist einen aktuellen Privi­ legpegel auf, der die Befehlsausführung in dem Computersy­ stem steuert. Das Verfahren umfaßt das Erhöhen des aktuel­ len Privilegpegels des Prozessors ansprechend auf einen Fehler, der durch einen ersten fehlerverursachenden Befehl erzeugt wurde. Der erste fehlerverursachende Befehl wird ausgeführt. Durch Ausführen des ersten fehlerverursachenden Befehls wird eine Falle erzeugt. Der aktuelle Privilegpegel des Prozessors wird ansprechend auf die Falle erniedrigt.
Die vorliegende Erfindung liefert eine vereinfachte Lösung zum Überwachen, Zählen und Verfolgen der Ausführung von privilegierten Befehlen bei einem privilegwünschenden An­ wendungsprogramm. Bei einem Ausführungsbeispiel wird ein Hardwareeinzelschrittmerkmal eines Prozessors verwendet, um speziellen Befehlen vorübergehend Privilegien zu gewähren. Privilegierte Befehle werden von der Hardware selbst "emu­ liert", wodurch die Notwendigkeit zum Erstellen eines kom­ plexen Softwareemulators eliminiert wird.
Bevorzugte Ausführungsbeispiele der vorliegenden Erfindung werden nachfolgend Bezug nehmend auf die beiliegenden Zeichnungen näher erläutert. Es zeigen:
Fig. 1 ein Blockdiagramm eines Computersystems gemäß der vorliegenden Erfindung, das die Ausführung von privilegierten Befehlen überwacht;
Fig. 2 ein Flußdiagramm, das einen Prozeß zum Überwachen der Ausführung von privilegierten Befehlen bei einem privilegwünschenden Anwendungsprogramm ge­ mäß der vorliegenden Erfindung darstellt;
Fig. 3 ein Flußdiagramm, das ein Ausführungsbeispiel ei­ nes Privilegabstiegsprozesses darstellt; und
Fig. 4 ein Flußdiagramm, das ein Ausführungsbeispiel ei­ nes Privilegaufstiegsprozesses darstellt.
Bei der folgenden detaillierten Beschreibung der bevorzug­ ten Ausführungsbeispiele wird auf die beiliegenden Zeich­ nungen Bezug genommen, die einen Teil derselben bilden, und bei denen zu Darstellungszwecken spezifische Ausführungs­ beispiele gezeigt sind, bei denen die Erfindung praktiziert werden kann. Es ist offensichtlich, daß andere Ausführungs­ beispiele verwendet werden können und strukturelle oder lo­ gische Änderungen durchgeführt werden können, ohne von dem Schutzbereich der vorliegenden Erfindung abzuweichen. Die folgende detaillierte Beschreibung soll daher nicht in ei­ nem begrenzenden Sinne angesehen werden, und der Schutzbe­ reich der vorliegenden Erfindung wird durch die angehängten Ansprüche definiert.
Ein Computersystem gemäß der vorliegenden Erfindung ist allgemein bei 30 in Fig. 1 dargestellt. Das Computersystem 30 umfaßt zumindest einen Prozessor, wie z. B. einen Pro­ zessor 32, zum Durchführen von Sequenzen von logischen Ope­ rationen. Das Computersystem 30 umfaßt außerdem einen Spei­ cher 52 zum Speichern von Befehlen und Daten für die Ver­ wendung durch den Prozessor 32. Ein Betriebssystem 60 ist in dem Speicher 52 gespeichert und steuert den Prozessor 32 und den Speicher 52 für Systemoperationen und zum Ausführen von Anwendungsprogrammbefehlen, die in dem Speicher 52 ge­ speichert sind. Der Speicher 52 umfaßt typischerweise einen Direktzugriffsspeicher (RAM; RAM = Random Access Memory), einen nichtflüchtigen Speicher und ein Festplattenlaufwerk, aber kann jeden bekannten Typ von Speicher umfassen.
Der Prozessor 32 umfaßt einen Anwendungsregistersatz 34 und einen Systemregistersatz 44. Ein Architekturzustand des Computersystems 30 wird durch den Anwendungsregistersatz 34, den Systemregistersatz 44 und den Speicher 52 darge­ stellt. Der Anwendungsregistersatz 34 umfaßt Register, die für Anwendungsprogramme, die in dem Speicher 52 gespeichert sind, verfügbar sind. Der Systemregistersatz 44 liefert Sy­ stemregisterressourcen zur Prozeßsteuerung, Unterbrechungs­ handhabung, zum Schutz, zur Fehlerbeseitigung, zur Lei­ stungsüberwachung und dergleichen. Der Systemregistersatz 44 ist im allgemeinen nur für das Betriebssystem 60 sicht­ bar.
Beispielregister, die in dem Anwendungsregistersatz 34 ent­ halten sein können, umfassen allgemeine Register, Gleitkom­ maregister, Vergleichsergebnisregister, Verzweigungsinfor­ mationsregister, Befehlszeiger, eine Markierung des aktuel­ len Rahmens (frame), Prozeßidentifizierer und eine Benut­ zermaske. Der Anwendungsregistersatz 34 umfaßt eine Anwen­ dungsregisterdatei 36. Die Anwendungsregisterdatei 36 um­ faßt Spezialdatenregister und Steuerregister für die anwen­ dungssichtbare Prozessorfunktionen für Anwendungsbefehle. Die Anwendungsregisterdatei 36 umfaßt ein Vorhergehende- Funktion-Zustand- (PFS-)Register 38 mit mehreren Feldern, die Werte darstellen, die bei einem Aufrufbefehl von einem Aktueller-Rahmen-Markierungsregister automatisch kopiert werden, um das Prozeduraufrufen zu beschleunigen. Das PFS- Register 38 umfaßt ein Vorhergehender-Privilegpegel-Feld (PFS.ppl) 38A.
Der Anwendungsregistersatz 34 umfaßt außerdem eine allge­ meine Registerdatei 39. Die allgemeine Registerdatei 39 um­ faßt eine Mehrzahl von allgemeinen Registern. Die allgemei­ ne Registerdatei 39 umfaßt allgemeine Register 40, 41 und 42. Die allgemeinen Register 40, 41 und 42 liefern eine Ressource für allgemeine Berechnungen. Bei einem Ausfüh­ rungsbeispiel sind die allgemeinen Register 40 und 41 ge­ stapelte allgemeine Register, die für jede Prozedur lokal sind und durch Zuweisen eines Registerstapelrahmens verfüg­ bar gemacht werden, der aus einer programmierbaren Anzahl von Lokal- und Ausgaberegistern besteht. Bei einem Ausfüh­ rungsbeispiel ist das allgemeine Register 42 ein statisches allgemeines Register und ist für alle Prozeduren sichtbar.
Beispielsregister, die in dem Systemregistersatz 44 enthal­ ten sein können, umfassen Regionsregister, Schutzschlüssel­ register, Fehlersuchunterbrechungspunktregister, maschinen­ spezifische Register und Steuerregister. Der Systemregi­ stersatz 44 umfaßt ein Prozessorstatusregister (PSR) 46, das Steuerinformationen beibehält, um die aktuelle Ausfüh­ rungsumgebung für den aktuell laufenden Prozeß des Prozes­ sors 32 definiert.
Der Prozessor 32 weist einen aktuellen Privilegpegel auf, der durch ein aktuelles Privilegpegelfeld (PSR.cpl) 46A in PSR 46 dargestellt ist. Der aktuelle Privilegpegel, der in dem PSR.cpl-Feld 46A gespeichert ist, steuert die Zugriffs­ möglichkeit auf die Systemressourcen in dem Prozessor 32, wie z. B. die Systemregister in dem Systemregistersatz 44, die Systembefehle und Systemspeicherseiten. Der aktuelle Privilegpegel, der in dem PSR.cpl-Feld 46A gespeichert ist, variiert zwischen zwei oder mehr Ausführungsprivilegpegeln. Bei einem Ausführungsbeispiel des Computersystems 30 werden vier Privilegpegel verwendet, wobei der Privilegpegel 0 der privilegierteste Pegel ist, der Zugriff zu allen privile­ gierten Befehle liefert, und der Privilegpegel 3 der am we­ nigsten privilegierte Pegel ist. Ein Aufrufbefehl speichert den aktuellen Privilegpegel von dem PSR.cpl-Feld 46A in PFS.ppl 38A des PFS-Registers 38.
Der Prozessor 32 kann einzelschrittweise durch die Anwen­ dungsbefehle gehen, indem das Einzelschrittfeld (PSR.ss) 46B von PSR 46 aktiviert wird. Wenn die einzelschrittweise Bearbeitung aktiviert ist, führt die erfolgreiche Ausfüh­ rung eines Befehls zu einer Einzelschrittfalle.
Der Systemregistersatz 44 umfaßt Steuerregister 47. Die Steuerregister 47 umfassen ein Unterbrechungsstatusregister (ISR) 48, ein Unterbrechungsvektoradressen- (IVA-)Register 50 und ein Unterbrechungsprozessorstatusregister (IPSR) 51. Das ISR 48 empfängt Informationen von dem Prozessor 32, be­ züglich der Natur einer Unterbrechung. Das ISR 48 enthält Informationen über den ausnahmeerzeugenden Befehl und seine Eigenschaften, wie z. B. ob der ausnahmeerzeugende Befehl eine Lese-, Schreib-, Ausführ-, Spekulations- oder Nicht­ zugriffsoperation durchgeführt hat. Fehler- und Fallenspe­ zifische Informationen werden in einem Codefeld (ISR.code) 48A von ISR 48 gespeichert. Das IVA-Register 50 spezifi­ ziert eine Basisadresse der Unterbrechungsvektortabelle (IVT) 62 (die nachfolgend erörtert wird). Das IPSR 51 emp­ fängt den Wert von PSR 46 bei einer Unterbrechung. IPSR 51 wird verwendet, um PSR 46 nach einer Rückkehr von einer Un­ terbrechung zu aktualisieren. Wie PSR 46 umfaßt IPSR 51 ein Aktueller-Privilegpegel- (cpl-)Feld 51A und ein Einzel­ schritt-(ss-)Feld 51B.
Der Speicher 52 speichert ein privilegwünschendes Anwen­ dungsprogramm 54, das Anwendungsbefehle aufweist. Bei einem Ausführungsbeispiel ist das Anwendungsprogramm 54 ein Be­ triebssystem. Der Speicher 52 speichert außerdem einen Pri­ vilegaufstiegsprozeß 56 und einen Privilegabstiegsprozeß 58. Das Betriebssystem 60, das in dem Speicher 52 gespei­ chert ist, umfaßt IVT 62. Die IVT 62 speichert eine Mehr­ zahl von Unterbrechungshandhabungseinrichtungen. Die IVT 62 speichert die Allgemeine-Ausnahme-Handhabungseinrichtung 62A und eine Einzelschrittfallenhandhabungseinrichtung 62B. Zusätzlich zum Verwenden von IVT 62, um spezielle Unterbre­ chungen handzuhaben, können andere Unterbrechungen durch andere Prozesse handgehabt werden.
Eine Unterbrechung ist ein Ereignis, das bewirkt, daß die Hardware automatisch die Ausführung des aktuellen Befehls­ stroms stoppt und die Ausführung bei einer Befehlsadresse beginnt, die einer Unterbrechungshandhabungseinrichtung für diese Unterbrechung entspricht. Unterbrechungen umfassen Fehler und Fallen. Ein Fehler tritt auf, wenn eine Be­ triebssystemintervention erforderlich ist, bevor der aktu­ elle Befehl ausgeführt werden kann. Eine Falle tritt auf, wenn eine Betriebssystemintervention erforderlich ist, nachdem der aktuelle Befehl beendet ist. Unterbrechungen werden durch das Betriebssystem 60 an einer Adresse gehand­ habt, die durch die Basisposition von IVT 62 bestimmt wird (spezifiziert durch das IVA-Register 50), versetzt um einen Betrag, der auf der speziellen Unterbrechung basiert, die aufgetreten ist. Jede Unterbrechung weist ihren eigenen ar­ chitektonischen Versatz in IVT 62 auf.
Wenn eine Unterbrechung auftritt, stoppt der Prozessor 32 die Ausführung an dem aktuellen Befehlszeiger (IP), stellt den aktuellen Privilegpegel auf 0 (PSR.cpl 46A = 0) und be­ ginnt damit, Befehle von der Adresse der Eintrittsstelle zu der Unterbrechungshandhabungseinrichtung in IVT 62 für die spezielle Unterbrechung, die aufgetreten ist, zu holen. Un­ terbrechungshandhabungseinrichtungen können vollständig in IVT 62 enthalten sein oder Handhabungseinrichtungen können zu Code außerhalb von IVT 62 Verzweigungen bilden, falls mehr Platz benötigt wird.
Die Position der Unterbrechungshandhabungseinrichtungen in IVT 62 ist durch einen Unterbrechungsvektor spezifiziert. Bei einem Ausführungsbeispiel gibt es mehr Unterbrechungen als Unterbrechungsvektoren in IVT 62. Somit gibt es eine Viele-zu-Einem-Beziehung zwischen Unterbrechungen und Un­ terbrechungsvektoren. Eine Handhabungseinrichtung, die ei­ nem speziellen Unterbrechungsvektor zugewiesen ist, kann die spezielle Unterbrechung, die aufgetreten ist durch Le­ sen von ISR.code 48A bestimmen. Nachdem eine Unterbrechung durch eine Unterbrechungshandhabungseinrichtung verarbeitet wurde, wird ein Rückkehr-von-der-Unterbrechung-(rfi = re­ turn from interruption)Befehl durch den Prozessor 32 aus­ geführt, und vorher gespeicherte Prozessorzustandsinforma­ tionen werden verwendet, um den Prozessorzustand wiederherzustellen.
Bei einem Ausführungsbeispiel erzeugt der Prozessor 32 ei­ nen Allgemeine-Ausnahme-Unterbrechungsvektor, wenn ein Pri­ vilegierte-Operation-Fehler auftritt. Auf der Basis der Ba­ sisadresse von IVT 62, die in dem IVA-Register 50 enthalten ist, und dem Versatz, der dem Allgemeine-Ausnahme- Unterbrechungsvektor zugewiesen ist, springt der Prozessor 32 zu der Allgemeine-Ausnahme-Handhabungseinrichtung 62A, um den Privilegierte-Operation-Fehler handzuhaben. Die All­ gemeine-Ausnahme-Handhabungseinrichtung 62A wird nachfol­ gend näher erörtert.
Bei einem Ausführungsbeispiel erzeugt der Prozessor 32 ei­ nen Einzelschrittfalleunterbrechungsvektor, wenn eine Ein­ zelschrittfalle auftritt. Auf der Basis der Basisadresse von IVT 62, die in dem IVA-Register 50 enthalten ist, und dem Versatz, der dem Einzelschrittfallenunterbrechungsvek­ tor zugewiesen ist, springt der Prozessor 32 zu der Einzel­ schrittfallenhandhabungseinrichtung 62B, um die Einzel­ schrittfalle handzuhaben. Die Einzelschrittfallenhandha­ bungseinrichtung 62B wird nachfolgend näher erörtert.
Der Prozessor 32 würde typischerweise ein privilegwünschen­ des Anwendungsprogramm, wie z. B. das Anwendungsprogramm 54, an einem niedrigen aktuellen Privilegpegel (z. B. PSR.cpl = 2) ausführen. Der aktuelle Privilegpegel, der in dem PSR.cpl-Feld 46A gespeichert ist, steuert die Be­ fehlsausführung des Anwendungsprogramms 54 in dem Computer­ system 30 durch Steuern der Zugriffsmöglichkeit auf System­ ressourcen, wie z. B. die Systemregister in dem Systemregi­ stersatz 44, die Systembefehle und die Speicherseiten des Speichers 52. Falls der Prozessor 32 versucht, einen Befehl in einem Anwendungsprogramm 54 auszuführen, der einen höhe­ ren Privilegpegel (z. B. PSR.cpl = 0) erfordert, tritt ein Privilegierte-Operation-Fehler auf.
Fig. 2 stellt ein Flußdiagramm eines Prozesses 200 zum Überwachen der Ausführung von privilegierten Befehlen in privilegwünschenden Anwendungsprogrammen 54 gemäß der vor­ liegenden Erfindung dar. Im Schritt 202 des Prozesses 200 erniedrigt der Prozessor 32 den aktuellen Privilegpegel. Bei einem Ausführungsbeispiel erniedrigt der Prozessor 32 den aktuellen Privilegpegel durch Ausführen des Privilegab­ stiegsprozesses 58. Ein "Erniedrigen" des Privilegpegels bei der vorliegenden Erfindung umfaßt das Erhöhen des Wer­ tes bei PSR.cpl 46A, da höhere Zahlen bei PSR.cpl 46A nied­ rigeren Privilegpegeln entsprechen.
Fig. 3 stellt die Schritte dar, die durch den Prozessor 32 bei einem Ausführungsbeispiel während der Ausführung des Privilegabstiegsprozesses 58 durchgeführt werden. Im Schritt 302 weist der Prozessor 32 einen Stapelrahmen auf einem allgemeinen Registerstapel zu, einschließlich zwei gestapelten allgemeinen Registern 40 und 41. Während der Zuweisung kopiert der Prozessor 32 die Inhalte des PFS- Registers 38 in das gestapelte allgemeine Register 40. Im Schritt 304 extrahiert der Prozessor 32 das ppl-Feld 38A von dem gestapelten allgemeinen Register 40 und plaziert das extrahierte ppl-Feld 38A in das statische allgemeine Register 42. Da bei einem Ausführungsbeispiel das statische allgemeine Register 42 für alle Prozeduren sichtbar ist, können andere Prozeduren auf das allgemeine Register 42 zugreifen, um den darin spezifizierten Privilegpegel zu bestimmen. Die Inhalte des allgemeinen Registers 42 werden zu dem Prozeß zurückgesendet, der den Privilegabstiegspro­ zeß aufgerufen hat. Danach legt der Prozessor 32 im Schritt 306 ausgewählte Bits, die dem gewünschten niedrigeren Pri­ vilegpegel entsprechen, von dem gestapelten allgemeinen Re­ gister 41 in das gestapelte allgemeine Register 40 ab. Bei einem Ausführungsbeispiel werden Bits, die einem Privileg­ pegel von 2 entsprechen, in dem allgemeinen Register 41 ge­ speichert, und in dem gestapelten allgemeinen Register 40 abgelegt. Andere Bitkombinationen, die anderen Privilegpe­ geln entsprechen, können in dem gestapelten allgemeinen Re­ gister 41 gespeichert werden und in dem gestapelten allge­ meinen Register 40 abgelegt werden. Die Bits, die dem ge­ wünschten Privilegpegel entsprechen, werden in dem gesta­ pelten allgemeinen Register 41 gespeichert, durch den Auf­ ruf an den Privilegabstiegsprozeß 58, der den gewünschten Privilegpegel spezifiziert. Im Schritt 308 bewegt der Pro­ zessor 32 die Inhalte des gestapelten allgemeinen Registers 40, einschließlich der neu eingestellten Privilegpegelbits, zu dem PFS-Register 38. Nach der Bewegung enthält PFS.ppl 38A Bits, die dem gewünschten niedrigeren Privilegpegel entsprechen. Im Schritt 310 führt der Prozessor 32 einen Zweigrückkehrbefehl durch. Während dem Zweigrückkehrbefehl aktualisiert der Prozessor 32 PSR.cpl 46A mit dem Wert von PFS.ppl 38A, wodurch der gewünschte niedrigere Privilegpe­ gel in PSR.cpl 46A eingestellt wird.
Nachdem der aktuelle Privilegpegel im Schritt 202 zu dem gewünschten Wert erniedrigt wurde, ruft der Prozessor 32, wie es in Fig. 2 gezeigt ist, dann im Schritt 204 einen Be­ fehl von dem privilegwünschenden Anwendungsprogramm 54 ab, decodiert denselben und versucht ihn auszuführen. Falls das Einzelschrittfallenfeld (PSR.ss 46B) im Schritt 206 akti­ viert ist, führt die erfolgreiche Ausführung des Befehls zu einer Einzelschrittfalle und die Einzelschrittfallenhandha­ bungseinrichtung 62B wird im Schritt 208 aufgerufen (nach­ folgend erörtert). Falls die versuchte Ausführung des Be­ fehls zu der Erzeugung eines Allgemeine-Ausnahme- Unterbrechungsvektors führt, wird im Schritt 216 die Allge­ meine-Ausnahme-Handhabungseinrichtung 62A aufgerufen. Falls weder eine Einzelschrittfalle noch ein Allgemeine-Ausnahme- Unterbrechungsvektor erzeugt wird, springt der Prozeß 200 zum Schritt 204 und der nächste Befehl wird geholt, deco­ diert und die Ausführung dieses Befehls wird versucht.
Wenn die Allgemeine-Ausnahme-Handhabungseinrichtung 62A im Schritt 216 aufgerufen wird, bestimmt dieselbe im Schritt 218, ob der Allgemeine-Ausnahme-Unterbrechungsvektor auf­ grund eines Privilegierte-Operation-Fehlers erzeugt wurde. Bei einem Ausführungsbeispiel macht die Allgemeine- Ausnahme-Handhabungseinrichtung 62A die Bestimmung durch Lesen des ISR.code 48A. Falls der ISR.code 48A anzeigt, daß der Allgemeine-Ausnahme-Unterbrechungsvektor nicht aufgrund eines Privilegierte-Operation-Fehlers erzeugt wurde, hand­ habt die Allgemeine-Ausnahme-Handhabungseinrichtung 62A die allgemeine Ausnahme im Schritt 220 auf normale Weise. Falls ISR.code 48A anzeigt, daß der Allgemeine-Ausnahme- Unterbrechungsvektor aufgrund eines Privilegierte- Operation-Fehlers erzeugt wurde, springt der Prozeß 200 zum Schritt 222.
Im Schritt 222 bestimmt die Allgemeine-Ausnahme- Handhabungseinrichtung 62A, ob der aktuelle Befehl "emu­ liert" werden sollte. Das Wort "emuliert" in diesem Zusam­ menhang stellt nicht die traditionelle Emulation auf Soft­ warebasis dar. Statt dessen führt der Prozessor 32 durch temporäres Modifizieren von Privilegpegeln, um tatsächlich den Befehl auszuführen, im wesentlichen das Äquivalent ei­ ner Emulation eines Befehls durch. Bei einem Ausführungs­ beispiel führt die Allgemeine-Ausnahme- Handhabungseinrichtung 62A die Bestimmung durch, ob der ak­ tuelle Befehl emuliert werden sollte auf der Basis dessen, ob ein Benutzermodus durch das Betriebssystem 60 spezifi­ ziert wurde. Bei einem Ausführungsbeispiel zeigt ein Benut­ zermodus an, daß das Anwendungsprogramm bei dem Privilegpe­ gel 3 läuft (d. h. PSR.cpl = 3). Falls kein Benutzermodus spezifiziert wurde, handhabt die Allgemeine-Ausnahme- Handhabungseinrichtung 62A den Privilegierte-Operation- Fehler im Schritt 224 auf normale Weise. Falls ein Benut­ zermodus spezifiziert wurde, springt die Allgemeine- Ausnahme-Handhabungseinrichtung 62A zum Schritt 226. Im Schritt 226 speichert die Allgemeine-Ausnahme- Handhabungseinrichtung 62A Zustandsinformationen 64 in dem Speicher 52. Bei einem Ausführungsbeispiel umfassen die Zu­ standsinformationen 64 Prozessorzustandsinformationen, wie sie in dem PSR 46 spezifiziert sind. Die Zustandsinforma­ tionen 64 umfassen vorzugsweise auch alle Informationen, die hilfreich sein können beim späteren Analysieren des Privilegierte-Operation-Fehlers, einschließlich, welcher Befehl einen Fehler verursachte, in welchem Zustand der Prozessor 32 war, als ein Privilegfehler auftrat, die An­ zahl von Privilegfehlern, die während der Ausführung eines privilegwünschenden Anwendungsprogramms 54 auftraten, und auch andere Informationen.
Nachfolgend erhöht die Allgemeine-Ausnahme- Handhabungseinrichtung 62A im Schritt 228 den aktuellen Privilegpegel des Prozessors 32, der in dem PSR.cpl-Feld 46A gespeichert ist, durch Ausführen des Privilegaufstiegs­ prozesses 56. Fig. 4 zeigt ein Flußdiagramm eines Ausfüh­ rungsbeispiels eines Privilegaufstiegsprozesses 56. Der Privilegaufstiegsprozeß 56 umfaßt den Schritt 402 des Spei­ cherns des Werts von IPSR.cpl 51A in einer Datenstruktur. Im Schritt 404 wird der Wert in der Datenstruktur, der IPSR.cpl 51A darstellt, zu dem gewünschten höheren Privi­ legpegelwert (z. B. 0) geändert. Im Schritt 406 wird IPSR 51 auf der Basis der Daten aktualisiert, die in der Daten­ struktur gespeichert sind. Nachdem das Aktualisieren durch­ geführt wurde, enthält IPSR.cpl 51A den gewünschten höheren Privilegpegel (z. B. IPSR.cpl 51A = 0). Im Schritt 408 wird eine Rückkehr von der Unterbrechung (rfi) durchgeführt. Ei­ ne Rückkehr von der Unterbrechung bewirkt, daß PSR 46 von IPSR 51 aktualisiert wird. Somit enthält PSR.cpl 46A nach der Rückkehr von der Unterbrechung den gewünschten höheren Privilegpegel (z. B. PSR.cpl 46A = 0).
Schließlich, wie es bei Fig. 2 gezeigt ist, akaiviert die Allgemeine-Ausnahme-Handhabungseinrichtung 62A im Schritt 230 einen Einzelschrittmodus. Die Allgemeine-Ausnahme- Handhabungseinrichtung 62A aktiviert den Einzelschrittmodus durch Aktivieren des Einzelschrittfeldes PSR.ss 46B bei PSR 46. Bei einem Ausführungsbeispiel aktiviert die Allgemeine- Ausnahme-Handhabungseinrichtung 62A das Einzelschrittfeld PSR.ss 46B auf die gleiche Weise und bei dem gleichen Pro­ zeß wie die Allgemeine-Ausnahme-Handhabungseinrichtung 62A das PSR.cpl-Feld 46A modifiziert (oben mit Bezugnahme auf Fig. 4 erörtert). Insbesondere speichert die Allgemeine- Ausnahme-Handhabungseinrichtung 62A den Wert von IPSR.ss 51B im Schritt 402 in einer Datenstruktur. Im Schritt 404 wird der Wert in der Datenstruktur, der IPSR.ss 51B dar­ stellt, dann geändert, um eine Einzelschrittbearbeitung zu aktivieren. Im Schritt 406 wird IPSR 51 auf der Basis der Daten, die in der Datenstruktur gespeichert sind, aktuali­ siert. Nachdem die Aktualisierung durchgeführt wurde, ist IPSR.ss 51B = 1. Im Schritt 408 wird eine Rückkehr von der Unterbrechung (rfi) durchgeführt. Eine Rückkehr von der Un­ terbrechung bewirkt, daß PSR 46 von IPSR 51 aktualisiert wird. Somit enthält PSR.ss 46B nach der Rückkehr von der Unterbrechung den gewünschten Wert (z. B. PSR.ss 46B = 1).
Danach kehrt der Fluß zum Schritt 204 zurück, um den aktu­ ellen Befehl auszuführen. Da das Einzelschrittfallenfeld PSR.ss 46B nach der Ausführung des aktuellen Befehls akti­ viert wurde, wird im Schritt 206 eine Einzelschrittfalle erzeugt und im Schritt 208 wird eine Einzelschrittfallen­ handhabungseinrichtung 62B aufgerufen. Im Schritt 210 er­ niedrigt die Einzelschrittfallenhandhabungseinrichtung 62B den aktuellen Privilegpegel, der in dem PSR.cpl-Feld 46A gespeichert ist, unter Verwendung des Privilegabstiegspro­ zesses 58, der in Fig. 3 gezeigt ist und oben erörtert wur­ de. Im Schritt 212 deaktiviert die Einzelschrittfallenhandhabungseinrichtung 62B die Einzelschrittbearbeitung. Bei einem Ausführungsbeispiel deaktiviert die Einzelschrittfallenhandhabungseinrichtung 62B die Einzelschrittbearbeitung durch Deaktivieren des Einzelschrittfallenfelds PSR.ss 46B bei PSR 46 auf die gleiche Weise, wie oben erörtert ist, wenn PSR.ss 46B aktiviert ist. Bei einem Ausführungsbeispiel speichert die Einzelschrittfallenhandhabungseinrichtung 62B außerdem Zustandsinformationen 64, einschließlich des aktuellen Zustands von PSR 46 vor irgendwelchen Modifikationen durch die Einzelschrittfallenhandhabungseinrichtung 62B. Der Fluß kehrt dann zum Schritt 204 zurück, wo der nächste Befehl abgerufen, decodiert, und die Ausführung desselben versucht wird.
Die vorliegende Erfindung ist nicht auf einen Prozessortyp begrenzt, sondern gilt statt dessen für jeden Prozessor, der eine Einzelschritt- und Unterbrechungsfunktionalität liefert, einschließlich einer IA-64-Prozessorarchitektur, aber nicht auf dieselbe beschränkt.

Claims (32)

1. Verfahren zum Überwachen der Ausführung privilegierter Befehle durch einen Prozessor (32) eines Computersy­ stems (30), wobei der Prozessor (32) einen aktuellen Privilegpegel umfaßt, wobei der Prozessor automatisch einen Fehler erzeugt, wenn derselbe die Ausführung ei­ nes Befehls versucht, der einen höheren Privilegpegel erfordert als den aktuellen Privilegpegel des Prozes­ sors, wobei das Verfahren folgende Schritte umfaßt:
Erhöhen (228) des aktuellen Privilegpegels des Prozes­ sors ansprechend auf einen Fehler, der durch einen er­ sten fehlerverursachenden Befehl erzeugt wurde;
Ausführen (204) des ersten fehlerverursachenden Be­ fehls;
Erzeugen (206) einer Falle durch Ausführen des ersten fehlerverursachenden Befehls; und
Erniedrigen (210) des aktuellen Privilegpegels des Prozessors ansprechend auf die Falle.
2. Verfahren gemäß Anspruch 1, das ferner folgenden Schritt umfaßt:
Erniedrigen (202) des aktuellen Privilegpegels des Prozessors vor dem Ausführen der Befehle.
3. Verfahren gemäß Anspruch 1 oder 2, das ferner folgen­ den Schritt umfaßt:
Aufrufen (216) einer Fehlerhandhabungseinrichtung (62A), um den Fehler zu verarbeiten.
4. Verfahren gemäß Anspruch 3, bei dem der Schritt des Erhöhens des aktuellen Privilegpegels durch die Feh­ lerhandhabungseinrichtung (62A) durchgeführt wird.
5. Verfahren gemäß einem der Ansprüche 1 bis 4, das fer­ ner folgenden Schritt umfaßt:
Aufrufen (208) einer Fallenhandhabungseinrichtung (62B), um die Falle zu verarbeiten.
6. Verfahren gemäß Anspruch 5, bei dem der Schritt des Erniedrigens des aktuellen Privilegpegels durch die Fallenhandhabungseinrichtung (62B) durchgeführt wird.
7. Verfahren gemäß einem der Ansprüche 1 bis 7, das fer­ ner folgenden Schritt umfaßt:
Aktivieren (230) eines Einzelschrittmodus des Prozes­ sors ansprechend auf den Fehler.
8. Verfahren gemäß Anspruch 7, das ferner folgenden Schritt umfaßt:
Einstellen eines Felds (46B) in einem Systemregister (46) des Prozessors, um den Einzelschrittmodus zu ak­ tivieren.
9. Verfahren gemäß einem der Ansprüche 1 bis 8, das fer­ ner folgenden Schritt umfaßt:
Speichern (226) von Zustandsinformationen ansprechend auf den Fehler.
10. Verfahren gemäß Anspruch 9, bei dem die Zustandsinfor­ mationen (64) die Anzahl von Befehlen umfassen, die einen Fehler bewirkten, und eine Identifikation von Befehlen, die einen Fehler bewirkten.
11. Verfahren zum Ausführen von Befehlen durch einen Pro­ zessor (32) eines Computersystems (30), der durch ein Betriebssystem (60) gesteuert wird, wobei der Prozes­ sor einen aktuellen Privilegpegel aufweist, und wobei das Verfahren folgende Schritte umfaßt:
Erzeugen (204) eines Privilegierte-Operation-Fehlers (218) auf der Basis einer versuchten Ausführung eines ersten Befehls;
Erhöhen (228) des aktuellen Privilegpegels des Prozes­ sors ansprechend auf den Privilegierte-Operation- Fehler;
Aktivieren (230) eines Einzelschrittmodus ansprechend auf den Privilegierte-Operation-Fehler;
Ausführen des ersten Befehls und dadurch Erzeugen (206) einer Einzelschrittfalle;
Erniedrigen (210) des aktuellen Privilegpegels des Prozessors ansprechend auf die Einzelschrittfalle; und
Deaktivieren (212) des Einzelschrittmodus ansprechend auf die Einzelschrittfalle.
12. Verfahren gemäß Anspruch 11, das ferner folgenden Schritt umfaßt:
Erniedrigen (202) des aktuellen Privilegpegels des Prozessors vor dem Ausführen der Befehle.
13. Verfahren gemäß Anspruch 11 oder 12, das ferner fol­ genden Schritt umfaßt:
Aufrufen (216) einer Fehlerhandhabungseinrichtung (62A), um den Privilegierte-Operation-Fehler zu verar­ beiten.
14. Verfahren gemäß Anspruch 13, bei dem die Schritte des Erhöhens (228) des aktuellen Privilegpegels und des Aktivierens (230) eines Einzelschrittmodus durch die Fehlerhandhabungseinrichtung (62A) durchgeführt wer­ den.
15. Verfahren gemäß einem der Ansprüche 11 bis 14, das ferner folgenden Schritt umfaßt:
Aufrufen (208) einer Fehlerhandhabungseinrichtung (62B), um die Einzelschrittfalle zu verarbeiten.
16. Verfahren gemäß Anspruch 15, bei dem die Schritte des Erniedrigens (210) des aktuellen Privilegpegels und des Deaktivierens (212) des Einzelschrittmodus durch die Fallenhandhabungseinrichtung (62B) durchgeführt werden.
17. Verfahren gemäß einem der Ansprüche 11 bis 16, das ferner folgenden Schritt umfaßt:
Einstellen eines Felds in einem Systemregister des Prozessors (32), um den Einzelschrittmodus zu aktivie­ ren.
18. Verfahren gemäß einem der Ansprüche 11 bis 17, das ferner folgenden Schritt umfaßt:
Speichern (226) von Zustandsinformationen (64) anspre­ chend auf den Privilegierte-Operation-Fehler.
19. Verfahren gemäß Anspruch 18, bei dem die Zustandsin­ formationen (64) die Anzahl von Befehlen umfassen, die einen Fehler verursachten, und eine Identifikation von Befehlen, die einen Fehler verursachten.
20. Computersystem (30), das folgende Merkmale umfaßt:
einen Prozessor (32) mit einem aktuellen Privilegpe­ gel, der die Anwendungsbefehlausführung in dem Compu­ tersystem (30) steuert;
einen Speicher (52), der ein privilegwünschendes An­ wendungsprogramm (54) mit Anwendungsbefehlen spei­ chert; und
ein Betriebssystem (60), das in dem Speicher (52) ge­ speichert ist, zum Steuern des Prozessors (32), wobei das Betriebssystem eine Fehlerhandhabungseinrichtung (62A) und eine Fallenhandhabungseinrichtung (62B) um­ faßt, wobei die Fehlerhandhabungseinrichtung anspre­ chend auf einen Privilegierte-Operation-Fehler den ak­ tuellen Privilegpegel erhöht (228) und einen Einzel­ schrittmodus aktiviert (230), wobei die Fallenhandha­ bungseinrichtung ansprechend auf eine Einzelschritt­ falle (206) den aktuellen Privilegpegel erniedrigt (210) und den Einzelschrittmodus deaktiviert (212).
21. Computersystem gemäß Anspruch 20, bei dem die Fehler­ handhabungseinrichtung (62A) Zustandsinformationen in dem Speicher (52) speichert.
22. Computersystem gemäß Anspruch 21, bei dem die Zu­ standsinformationen (64) die Anzahl von Befehlen um­ fassen, die einen Fehler bewirkten, und eine Identifi­ kation der Befehle, die einen Fehler bewirkten.
23. Computerlesbares Medium, das Befehle für ein Betriebs­ system (60) zum Steuern eines Prozessors (32) eines Computersystems (30) umfaßt, um ein Verfahren zum Überwachen der Ausführung von privilegierten Befehlen durchzuführen, wobei der Prozessor einen aktuellen Privilegpegel aufweist, der die Befehlsausführung in dem Computersystem steuert, wobei das Verfahren fol­ gende Schritte umfaßt:
Erhöhen (228) des aktuellen Privilegpegels des Prozes­ sors ansprechend auf einen Fehler, der durch einen er­ sten fehlerverursachenden Befehl erzeugt wurde;
Ausführen (204) des ersten fehlerverursachenden Be­ fehls;
Erzeugen (206) einer Falle durch Ausführen des ersten fehlerverursachenden Befehls; und
Erniedrigen (210) des aktuellen Privilegpegels des Prozessors ansprechend auf die Falle.
24. Computerlesbares Medium gemäß Anspruch 23, bei dem das Verfahren ferner folgenden Schritt umfaßt:
Erniedrigen (202) des aktuellen Privilegpegels des Prozessors vor dem Ausführen der Befehle.
25. Computerlesbares Medium gemäß Anspruch 23 oder 24, bei dem das Verfahren ferner folgenden Schritt umfaßt:
Aufrufen (216) einer Fehlerhandhabungseinrichtung (62A), um den Fehler zu verarbeiten.
26. Computerlesbares Medium gemäß Anspruch 25, bei dem der Schritt des Erhöhens des aktuellen Privilegpegels durch die Fehlerhandhabungseinrichtung (62A) durchge­ führt wird.
27. Computerlesbares Medium gemäß einem der Ansprüche 23 bis 26, bei dem das Verfahren ferner folgenden Schritt umfaßt:
Aufrufen (208) einer Fallenhandhabungseinrichtung (62B), um die Falle zu verarbeiten.
28. Computerlesbares Medium gemäß Anspruch 27, bei dem der Schritt des Erniedrigens des aktuellen Privilegpegels durch die Fallenhandhabungseinrichtung (62B) durchge­ führt wird.
29. Computerlesbares Medium gemäß einem der Ansprüche 23 bis 28, bei dem das Verfahren ferner folgenden Schritt umfaßt:
Aktivieren (230) eines Einzelschrittmodus des Prozes­ sors ansprechend auf den Fehler.
30. Computerlesbares Medium gemäß Anspruch 29, bei dem das Verfahren ferner folgenden Schritt umfaßt:
Einstellen eines Felds (46B) in einem Systemregister (46) des Prozessors, um den Einzelschrittmodus zu ak­ tivieren.
31. Computerlesbares Medium gemäß einem der Ansprüche 23 bis 30, bei dem das Verfahren ferner folgenden Schritt umfaßt:
Speichern (226) von Zustandsinformationen ansprechend auf den Fehler.
32. Computerlesbares Medium gemäß Anspruch 31, bei dem die Zustandsinformationen (64) die Anzahl von Befehlen um­ fassen, die einen Fehler verursachten, und eine Iden­ tifikation von Befehlen, die einen Fehler verursach­ ten.
DE10206422A 2001-03-06 2002-02-15 System und Verfahren zum Überwachen der Ausführung privilegierter Befehle Withdrawn DE10206422A1 (de)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US09/799,999 US6694457B2 (en) 2001-03-06 2001-03-06 System and method for monitoring execution of privileged instructions

Publications (1)

Publication Number Publication Date
DE10206422A1 true DE10206422A1 (de) 2002-09-19

Family

ID=25177260

Family Applications (1)

Application Number Title Priority Date Filing Date
DE10206422A Withdrawn DE10206422A1 (de) 2001-03-06 2002-02-15 System und Verfahren zum Überwachen der Ausführung privilegierter Befehle

Country Status (4)

Country Link
US (1) US6694457B2 (de)
JP (1) JP2002268914A (de)
DE (1) DE10206422A1 (de)
GB (1) GB2375200A (de)

Families Citing this family (47)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8074055B1 (en) 1999-01-28 2011-12-06 Ati Technologies Ulc Altering data storage conventions of a processor when execution flows from first architecture code to second architecture code
US8127121B2 (en) * 1999-01-28 2012-02-28 Ati Technologies Ulc Apparatus for executing programs for a first computer architechture on a computer of a second architechture
US8121828B2 (en) * 1999-01-28 2012-02-21 Ati Technologies Ulc Detecting conditions for transfer of execution from one computer instruction stream to another and executing transfer on satisfaction of the conditions
US7941647B2 (en) 1999-01-28 2011-05-10 Ati Technologies Ulc Computer for executing two instruction sets and adds a macroinstruction end marker for performing iterations after loop termination
US7275246B1 (en) 1999-01-28 2007-09-25 Ati International Srl Executing programs for a first computer architecture on a computer of a second architecture
US7254806B1 (en) 1999-08-30 2007-08-07 Ati International Srl Detecting reordered side-effects
US6934832B1 (en) * 2000-01-18 2005-08-23 Ati International Srl Exception mechanism for a computer
US6851006B2 (en) * 2001-08-25 2005-02-01 International Business Machines Corporation Interruption handler-operating system dialog for operating system handling of hardware interruptions
US20040064723A1 (en) * 2001-10-31 2004-04-01 Barnes Brian C. Method and apparatus for physical address-based security to determine target security
US6745307B2 (en) * 2001-10-31 2004-06-01 Hewlett-Packard Development Company, L.P. Method and system for privilege-level-access to memory within a computer
US7698522B1 (en) 2002-01-11 2010-04-13 Global Foundries Method and apparatus for linear address based page level security scheme to determine current security context
US7739498B2 (en) * 2002-01-15 2010-06-15 GlobalFoundries, Inc. Method and apparatus for multi-table accessing of input/output devices using target security
US6968547B2 (en) * 2002-01-29 2005-11-22 Sun Microsystems, Inc. Dynamic trap table interposition for efficient collection of trap statistics
US7210144B2 (en) * 2002-08-02 2007-04-24 Microsoft Corporation Method for monitoring and emulating privileged instructions of programs in a virtual machine
US7434264B2 (en) * 2003-03-07 2008-10-07 Freescale Semiconductor, Inc. Data processing system with peripheral access protection and method therefor
US7444547B2 (en) 2003-06-19 2008-10-28 International Business Machines Corproation Method, system, and product for programming in a simultaneous multi-threaded processor environment
US7149929B2 (en) * 2003-08-25 2006-12-12 Hewlett-Packard Development Company, L.P. Method of and apparatus for cross-platform core dumping during dynamic binary translation
US20050138263A1 (en) * 2003-12-23 2005-06-23 Mckeen Francis X. Method and apparatus to retain system control when a buffer overflow attack occurs
US7613951B2 (en) * 2005-05-13 2009-11-03 Texas Instruments Incorporated Scaled time trace
US8984636B2 (en) * 2005-07-29 2015-03-17 Bit9, Inc. Content extractor and analysis system
US8272058B2 (en) * 2005-07-29 2012-09-18 Bit 9, Inc. Centralized timed analysis in a network security system
US20070028291A1 (en) * 2005-07-29 2007-02-01 Bit 9, Inc. Parametric content control in a network security system
US7895651B2 (en) * 2005-07-29 2011-02-22 Bit 9, Inc. Content tracking in a network security system
US7953961B1 (en) 2005-09-28 2011-05-31 Oracle America, Inc. Trace unit with an op path from a decoder (bypass mode) and from a basic-block builder
US8019944B1 (en) 2005-09-28 2011-09-13 Oracle America, Inc. Checking for a memory ordering violation after a speculative cache write
US7966479B1 (en) 2005-09-28 2011-06-21 Oracle America, Inc. Concurrent vs. low power branch prediction
US8051247B1 (en) 2005-09-28 2011-11-01 Oracle America, Inc. Trace based deallocation of entries in a versioning cache circuit
US8499293B1 (en) 2005-09-28 2013-07-30 Oracle America, Inc. Symbolic renaming optimization of a trace
US8370576B1 (en) 2005-09-28 2013-02-05 Oracle America, Inc. Cache rollback acceleration via a bank based versioning cache ciruit
US7877630B1 (en) 2005-09-28 2011-01-25 Oracle America, Inc. Trace based rollback of a speculatively updated cache
US8032710B1 (en) 2005-09-28 2011-10-04 Oracle America, Inc. System and method for ensuring coherency in trace execution
US7870369B1 (en) 2005-09-28 2011-01-11 Oracle America, Inc. Abort prioritization in a trace-based processor
US8015359B1 (en) 2005-09-28 2011-09-06 Oracle America, Inc. Method and system for utilizing a common structure for trace verification and maintaining coherency in an instruction processing circuit
US7937564B1 (en) 2005-09-28 2011-05-03 Oracle America, Inc. Emit vector optimization of a trace
US8037285B1 (en) * 2005-09-28 2011-10-11 Oracle America, Inc. Trace unit
US8024522B1 (en) 2005-09-28 2011-09-20 Oracle America, Inc. Memory ordering queue/versioning cache circuit
US7987342B1 (en) 2005-09-28 2011-07-26 Oracle America, Inc. Trace unit with a decoder, a basic-block cache, a multi-block cache, and sequencer
US7676634B1 (en) * 2005-09-28 2010-03-09 Sun Microsystems, Inc. Selective trace cache invalidation for self-modifying code via memory aging
US7949854B1 (en) 2005-09-28 2011-05-24 Oracle America, Inc. Trace unit with a trace builder
CN101283332A (zh) * 2005-10-04 2008-10-08 日本电气株式会社 信息处理装置、信息处理方法及程序
US7797681B2 (en) * 2006-05-11 2010-09-14 Arm Limited Stack memory selection upon exception in a data processing system
US8010745B1 (en) 2006-09-27 2011-08-30 Oracle America, Inc. Rolling back a speculative update of a non-modifiable cache line
US8370609B1 (en) 2006-09-27 2013-02-05 Oracle America, Inc. Data cache rollbacks for failed speculative traces with memory operations
JP5215655B2 (ja) * 2007-12-27 2013-06-19 ルネサスエレクトロニクス株式会社 データ処理装置及びデータ処理装置におけるバスアクセス制御方法
US10503662B2 (en) * 2012-06-29 2019-12-10 Intel Corporation Systems, apparatuses, and methods for implementing temporary escalated privilege
US9785783B2 (en) * 2015-07-23 2017-10-10 Ca, Inc. Executing privileged code in a process
GB201807589D0 (en) * 2018-05-10 2018-06-27 Nordic Semiconductor Asa Memory access

Family Cites Families (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4809160A (en) * 1985-10-28 1989-02-28 Hewlett-Packard Company Privilege level checking instruction for implementing a secure hierarchical computer system
US5134701A (en) 1989-02-10 1992-07-28 Hewlett-Packard Co. Test apparatus performing runtime replacement of program instructions with breakpoint instructions for processor having multiple instruction fetch capabilities
US5201043A (en) * 1989-04-05 1993-04-06 Intel Corporation System using both a supervisor level control bit and a user level control bit to enable/disable memory reference alignment checking
DE69110908T2 (de) * 1991-04-01 1996-02-08 Cray Research Inc Auffangen eines priviligierten befehlswortes zur kontrolle eines betriebssystems.
US5450586A (en) 1991-08-14 1995-09-12 Hewlett-Packard Company System for analyzing and debugging embedded software through dynamic and interactive use of code markers
EP0537721B1 (de) 1991-10-15 1998-11-25 Hewlett-Packard Company Hardwarekonfiguriertes Betriebssystemkern für einen Multitaskprozessor
US5596717A (en) * 1995-06-07 1997-01-21 Texas Instruments Incorporated Four state token passing alignment fault state circuit for microprocessor address misalignment fault generation
US5859991A (en) * 1995-06-07 1999-01-12 Advanced Micro Devices, Inc. Parallel and scalable method for identifying valid instructions and a superscalar microprocessor including an instruction scanning unit employing the method
US5742755A (en) * 1996-02-20 1998-04-21 Cyrix Corporation Error-handling circuit and method for memory address alignment double fault
US5815702A (en) * 1996-07-24 1998-09-29 Kannan; Ravi Method and software products for continued application execution after generation of fatal exceptions
US5915114A (en) 1997-02-14 1999-06-22 Hewlett-Packard Company Dynamic trace driven object code optimizer
US5889978A (en) * 1997-04-18 1999-03-30 Intel Corporation Emulation of interrupt control mechanism in a multiprocessor system
US6321337B1 (en) * 1997-09-09 2001-11-20 Sanctum Ltd. Method and system for protecting operations of trusted internal networks
US5991856A (en) * 1997-09-30 1999-11-23 Network Associates, Inc. System and method for computer operating system protection
US6516395B1 (en) * 1997-11-20 2003-02-04 Advanced Micro Devices, Inc. System and method for controlling access to a privilege-partitioned address space with a fixed set of attributes
US6397242B1 (en) * 1998-05-15 2002-05-28 Vmware, Inc. Virtualization system including a virtual machine monitor for a computer with a segmented architecture

Also Published As

Publication number Publication date
US20020129299A1 (en) 2002-09-12
US6694457B2 (en) 2004-02-17
JP2002268914A (ja) 2002-09-20
GB0204895D0 (en) 2002-04-17
GB2375200A (en) 2002-11-06

Similar Documents

Publication Publication Date Title
DE10206422A1 (de) System und Verfahren zum Überwachen der Ausführung privilegierter Befehle
DE69614515T2 (de) Software-emulationssystem mit dynamischer übersetzung von emulierten befehlen zur erhöhung der verarbeitungsgeschwindigkeit
DE3587622T2 (de) Emulationseinrichtung in einem Datenverarbeitungssystem.
DE69622832T2 (de) Vorrichtung und verfahren für kooperative unterbrechungen in einer preemptiven prozessablauffolgeplanungsumgebung
DE10397004B4 (de) Verfahren und Vorrichtung zum Laden eines vertrauenswürdigen Betriebssystems
DE69216020T2 (de) Verbessertes fehlersuchsystem und -verfahren, besonders für die fehlersuche in einer multi-architekturumgebung
DE69505717T2 (de) Verfahren und Vorrichtung zur Feststellung und Durchführung von kreuzweisen Unterprogrammanrufen
DE69609608T2 (de) Vorrichtung und verfahren zur unterbrechungszuweisung
DE3851049T2 (de) Ein Sicherheitswegmechanismus für ein Betriebssystem.
DE69424842T2 (de) Durchführung von Programmen eines ersten Systems auf einem zweiten System
DE3850181T2 (de) Logische Betriebsmittelaufteilung für ein Datenverarbeitungssystem.
DE69621493T2 (de) Hardwareunterstützung zur schnellen Emulation von nicht-implementierten Befehlen
DE69618221T2 (de) Mechanismus zur wartung objektorientierter "methoden" der keine unterbrechung des computersystems erfordert
DE68926706T2 (de) Übersetzungsverfahren
DE69811474T2 (de) Rechnerarchitektur zur aufschiebung von exceptions statischer spekulativer befehle
DE3855029T2 (de) Supervisorverfahren für ein Rechnerbetriebssystem
DE69623146T2 (de) Verfahren und Vorrichtung zum Koordinieren der Benutzung von physikalischen Registern in einem Mikroprozessor
DE3886756T2 (de) Betriebsmittelzugriff für Multiprozessorrechnersystem.
DE102006061939B4 (de) Verfahren und Vorrichtung zum Zugriff auf eine speicherabgebildete Vorrichtung durch einen Gast
DE112007001714T5 (de) Virtualisieren von Leistungszählern
DE4329336A1 (de) Einrichtung und Verfahren zur Identifizierung eines Computer-Mikroprozessors
DE4011745A1 (de) Taskverfolgungseinrichtung
DE69320741T2 (de) Verfahren und Einrichtung zur Emulation der Umgebung eines Mikroprozessors
DE69727177T2 (de) Emulation von asynchronen Signalen mit Verzweigungsmechanismus
WO1999031584A1 (de) Verfahren zum umsetzen eines systemaufrufs

Legal Events

Date Code Title Description
OP8 Request for examination as to paragraph 44 patent law
8130 Withdrawal