DE102005053715A1 - Trapmodusregister - Google Patents

Trapmodusregister Download PDF

Info

Publication number
DE102005053715A1
DE102005053715A1 DE102005053715A DE102005053715A DE102005053715A1 DE 102005053715 A1 DE102005053715 A1 DE 102005053715A1 DE 102005053715 A DE102005053715 A DE 102005053715A DE 102005053715 A DE102005053715 A DE 102005053715A DE 102005053715 A1 DE102005053715 A1 DE 102005053715A1
Authority
DE
Germany
Prior art keywords
trap
address
interrupt
interrupt vector
vector table
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.)
Ceased
Application number
DE102005053715A
Other languages
English (en)
Inventor
Russ Fort Collins Herrell
Gerald J. Jr. Fort Collins Kaufman
John A. Fort Collins Morrison
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.)
Hewlett Packard Development Co LP
Original Assignee
Hewlett Packard Development Co LP
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 Development Co LP filed Critical Hewlett Packard Development Co LP
Publication of DE102005053715A1 publication Critical patent/DE102005053715A1/de
Ceased legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/20Handling requests for interconnection or transfer for access to input/output bus
    • G06F13/24Handling requests for interconnection or transfer for access to input/output bus using interrupt

Landscapes

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

Abstract

Es werden Systeme, Methodologien, Medien und andere Ausführungsbeispiele beschrieben, die einem System zugeordnet sind, das mit einem Trapmodusregister, mehreren Unterbrechungsvektoradressregistern und mehreren Unterbrechungsvektortabellen konfiguriert ist. Ein exemplarisches Ausführungsbeispiel eines Systems umfasst eine Logik zum Initialisieren des Trapmodusregisters, zum Initialisieren von Unterbrechungsvektoradressregistern und zum Initialisieren von Unterbrechungsvektortabellen. Wenn in einem mit dem exemplarischen System konfigurierten Computer ein Trap auftritt, kann das Trapmodusregister beispielsweise auf der Basis des Traptyps oder von Trapdaten ein zugeordnetes Unterbrechungsvektoradressregister auswählen, um eine Adresse einer Unterbrechungsvektortabelle zu liefern, durch die eine Trap-Handhabungsvorrichtung aufgerufen werden kann.

Description

  • Herkömmliche Rechensysteme erfassen und handhaben bzw. bewältigen eventuell nicht programmierte Programmsprünge bzw. Traps und/oder Unterbrechungen. Der Begriff „Unterbrechung" wird hierin auf eine Weise verwendet, die sowohl Unterbrechungen als auch Traps umfassen soll. Desgleichen wird der Begriff „Trap" hierin auf eine Weise verwendet, die sowohl Unterbrechungen als auch Traps umfassen soll. Ein typisches Rechensystem interagiert eventuell mit einem einzelnen Unterbrechungsvektorregister, das die Adresse einer einzelnen Unterbrechungsvektortabelle speichert. Das Unterbrechungsvektorregister und eine Unterbrechungsvektoraufzeichnung können ein Indexieren in die Unterbrechungsvektortabelle ermöglichen, um eine Unterbrechungsbehandlungsroutine oder Traphandhabungsvorrichtung zu lokalisieren. Beispielsweise kann die Unterbrechungsvektortabelle eine Unterbrechungsbehandlungsroutine speichern und/oder kann einen Eintrittspunkt für eine Unterbrechungsbehandlungsroutine speichern.
  • Herkömmliche Rechensysteme können ein Betriebssystem betreiben, das mit einer Unterbrechungsbehandlung interagiert. Üblicherweise kann das Betriebssystem Zugang zu dem Unterbrechungsvektorregister und/oder der Unterbrechungsvektortabelle haben. Somit kann ein Speicher, der Traphandhabungsvorrichtungen, Unterbrechungsbehandlungsroutinen usw. zugeordnet ist, entweder beabsichtigterweise oder unbeabsichtigterweise für Prozesse zugänglich sein, für die ein Zugriff im Idealfall verweigert würde.
  • Die beiliegenden Zeichnungen, die in die Spezifikation integriert sind und einen Bestandteil derselben bilden, veranschaulichen verschiedene beispielhafte Systeme, Verfahren usw., die verschiedene beispielhafte Ausführungsbei spiele von Aspekten der Erfindung veranschaulichen. Es wird einleuchten, dass die veranschaulichten Elementgrenzen (z. B. Kästchen, Gruppen von Kästchen oder andere Formen) in den Figuren ein Beispiel der Grenzen darstellen. Fachleute werden erkennen, dass ein Element als mehrere Elemente entworfen sein kann oder dass mehrere Elemente als ein Element entworfen sein können. Ein Element, das als innere Komponente eines anderen Elements gezeigt ist, kann als äußere Komponente implementiert sein, und umgekehrt. Ferner sind Elemente eventuell nicht maßstabsgetreu gezeichnet.
  • 1, die den Stand der Technik darstellt, veranschaulicht ein beispielhaftes Computersystem, das mit einem einzelnen Unterbrechungsvektorregister und einer einzelnen Unterbrechungsvektortabelle konfiguriert ist.
  • 1 veranschaulicht ein beispielhaftes Computersystem, das mit einem Trapmodusregister, zwei Adressregistern und zwei Unterbrechungsvektortabellen konfiguriert ist.
  • 2 veranschaulicht ein weiteres beispielhaftes Computersystem, das mit einem Trapmodusregister, zwei Adressregistern und zwei Unterbrechungsvektortabellen konfiguriert ist.
  • 3 veranschaulicht ein weiteres beispielhaftes Computersystem, das mit einem Trapmodusregister und zwei Adressregistern konfiguriert ist.
  • 4 veranschaulicht ein beispielhaftes Trapmodusregister.
  • 5 veranschaulicht ein beispielhaftes Computersystem, das mit einem Trapmodusregister, zwei Unterbrechungsvektorregistern und einer Übersetzungsseitengriffspufferlogik konfiguriert ist.
  • 6 veranschaulicht ein beispielhaftes Verfahren, das damit verbunden ist, ein Computersystem zu konfigurieren, das mit einem Trapmodusregister, mehreren Adressregistern und mehreren Unterbrechungsvektortabellen konfiguriert ist.
  • 7 veranschaulicht ein beispielhaftes Verfahren, das damit verbunden ist, Unterbrechungen in einem Computersystem zu handhaben, das mit einem Trapmodusregister, mehreren Adressregistern und mehreren Vektortabellen konfiguriert ist.
  • 8 veranschaulicht eine beispielhafte Rechenumgebung, in der hierin veranschaulichte beispielhafte Systeme und Verfahren arbeiten können.
  • 9 veranschaulicht eine beispielhafte Bilderzeugungsvorrichtung, bei der hierin veranschaulichte beispielhafte Systeme und Verfahren arbeiten können.
  • 10 veranschaulicht eine Anwendungsprogrammierungsschnittstelle (API).
  • 11 veranschaulicht ein weiteres beispielhaftes Verfahren, das damit verbunden ist, Unterbrechungen in einem Computersystem zu handhaben, das mit einem Trapmodusregister, mehreren Adressregistern und mehreren Vektortabellen konfiguriert ist.
  • Das Folgende umfasst Definitionen ausgewählter Begriffe, die hierin verwendet werden. Die Definitionen umfassen verschiedene Beispiele und/oder Formen von Komponenten, die in den Gültigkeitsbereich eines Begriffs fallen und die eventuell zur Implementierung verwendet werden. Die Beispiele sollen nicht einschränkend sein. Sowohl Singular als auch Pluralformen von Begriffen können in den Definitionen enthalten sein.
  • Gemäß der Verwendung in der vorliegenden Anmeldung bezieht sich „Unterbrechung" auf ein Signal, das eine Logik informiert, dass ein Ereignis stattgefunden hat. Eine Unterbrechung kann auftreten, wenn ein außergewöhnliches Ereignis einen automatischen Transfer an eine Speziallogik zum Handhaben dieses Ereignisses bewirkt. Wenn eine Unterbrechung erfolgt, kann ein erster Prozess ausgesetzt bzw. angehalten werden, derart, dass der erste Prozess nach dem Handhaben der Unterbrechung wieder aufgenommen werden kann. Unterbrechungen können von Hardware, Software und anderen Quellen stammen. In manchen Kontexten können Unterbrechungen, deren Quelle eine Hardware-Vorrichtung ist, als Hardware-Unterbrechungen oder einfach Unterbrechungen bezeichnet sein. Desgleichen können Unterbrechungen, deren Quelle Software ist, als Software-Unterbrechungen und/oder Traps bezeichnet sein. In der vorliegenden Anmeldung werden „Unterbrechung" und „Trap" synonym verwendet, um auf Hardware- und/oder Software-Unterbrechungen Bezug zu nehmen. Desgleichen werden die Begriffe „Unterbrechungsbehandlungsroutine" und „Traphandhabungsvorrichtung" synonym verwendet.
  • Gemäß der Verwendung in der vorliegenden Anmeldung bezieht sich der Begriff „Computerkomponente" auf eine computerbezogene Entität, entweder Hardware, Firmware, Software, eine Kombination derselben oder auf eine in der Ausführung befindliche Software. Beispielsweise kann eine Computerkomponente ein an einem Prozessor laufender Prozess, ein Prozessor, ein Objekt, ein Ausführelement, ein Ausführungsteilprozess, ein Programm und ein Computer sein, ist aber nicht auf diese beschränkt. Veranschaulichenderweise können sowohl eine Anwendung, die an einem Server läuft, als auch der Server Computerkomponenten sein. Eine oder mehr Computerkomponenten können in einem Prozess und/oder Ausführungsteilprozess vorliegen, und eine Computerkomponente kann sich an einem Computer befinden und/oder auf zwei oder mehr Computer verteilt sein.
  • „Computerlesbares Medium" bezieht sich gemäß seiner Verwendung in dem vorliegenden Dokument auf ein Medium, das daran beteiligt ist, direkt oder indirekt Signale, Befehle und/oder Daten zu liefern. Ein computerlesbares Medium kann Formen wie z. B. nicht-flüchtige Medien, flüchtige Medien und Übertragungsmedien umfassen, ist aber nicht auf diese beschränkt. Nicht-flüchtige Medien können beispielsweise optische oder Magnetplatten usw. umfassen. Flüchtige Medien können beispielsweise optische oder Magnetplatten, einen dynamischen Speicher und dergleichen umfassen. Übertragungsmedien können Koaxialkabel, Kupferdraht, faseroptische Kabel und dergleichen umfassen. Übertragungsmedien können auch die Form von elektromagnetischer Strahlung aufweisen, wie diejenige, die während Funkwellen- und Infrarot-Datenkommunikationen erzeugt wird, oder sie können die Form von einer oder mehr Signalgruppen aufweisen. Übliche Formen eines computerlesbaren Mediums umfassen eine Floppy-Disk, eine flexible Platte, eine Festplatte, ein Magnetband oder andere magnetische Medien, einen CD-ROM, andere optische Medien, Lochkarten, Papierband, andere physische Medien mit Lochmustern, einen RAM, einen ROM, einen EPROM, einen FLASH-EPROM oder einen anderen Speicherchip oder eine andere Speicherkarte, einen Speicherstift, eine Trägerwelle/einen Trägerpuls und andere Medien, aus denen ein Computer, ein Prozessor oder eine andere elektronische Vorrichtung auslesen kann, sind aber nicht auf diese beschränkt. Signale, die verwendet werden, um Befehle oder andere Software über ein Netzwerk, wie das Internet, zu verbreiten, können als „computerlesbares Medium" angesehen werden.
  • „Datenspeicher" bezieht sich gemäß seiner Verwendung in dem vorliegenden Dokument auf eine physische und/oder logische Entität, die Daten speichern kann. Ein Datenspeicher kann z. B. eine Datenbank, eine Tabelle, eine Datei, eine Liste, eine Warteschlange, ein Haufen, ein Speicher, ein Register usw. sein. Ein Datenspeicher kann sich in einer logischen und/oder physischen Entität befinden und/oder kann auf zwei oder mehr logische und/oder physische Entitäten verteilt sein.
  • „Logik" umfasst gemäß seiner Verwendung in dem vorliegenden Dokument Hardware, Firmware, Software und/oder Kombinationen von jeder derselben, um (eine) Funktion(en) oder (eine) Aktion(en) durchzuführen und/oder um eine Funktion oder Aktion von einer anderen Logik, einem anderen Verfahren und/oder einem anderen System zu bewirken, ist aber nicht auf diese beschränkt. Auf der Basis einer gewünschten Anwendung oder von Anforderungen kann eine Logik einen softwaregesteuerten Mikroprozessor, eine diskrete Logik wie eine anwendungsspezifische integrierte Schaltung (ASIC), eine programmierte Logikvorrichtung, eine Speichervorrichtung, die Befehle enthält, oder dergleichen umfassen. Eine Logik kann ein oder mehr Gatter, Kombinationen von Gattern oder andere Schaltungskomponenten umfassen. Eine Logik kann vollständig als Software verkörpert sein. Dort, wo mehrere logische Logiken beschrieben sind, ist es eventuell möglich, die mehreren logischen Logiken in eine physische Logik zu integrieren. Desgleichen kann es dort, wo eine einzelne logische Logik beschrieben ist, möglich sein, diese einzelne logische Logik auf mehrere physische Logiken aufzuteilen.
  • Eine „wirksame Verbindung" bzw. eine Verbindung, durch die Entitäten „wirksam verbunden" sind, ist eine Verbindung, bei der Signale, physische Kommunikationen und/oder logische Kommunikationen gesendet und/oder empfangen werden können. Üblicherweise umfasst eine wirksame bzw. funktionierende Verbindung eine physische Schnittstelle, eine elektrische Schnittstelle und/oder eine Datenschnittstelle, es ist jedoch zu beachten, dass eine wirksame Verbindung verschiedene Kombinationen dieser und anderer Arten von Verbindungen umfassen kann, die ausreichend sind, um eine wirksame Steuerung zu ermöglichen. Beispielsweise können zwei Entitäten dadurch wirksam verbunden sein, dass sie in der Lage sind, sich direkt oder durch eine oder mehr Zwischenentitäten wie z. B. einen Prozessor, ein Betriebssystem, eine Logik, eine Software oder eine andere Entität Signale zukommen zu lassen. Logische und/oder physische Kommunikationskanäle können verwendet werden, um eine wirksame Verbindung zu erzeugen.
  • „Signal" umfasst gemäß seiner Verwendung in dem vorliegenden Dokument ein oder mehr elektrische oder optische Signale, analoge oder digitale Signale, Daten, einen oder mehr Computer- oder Prozessorbefehle, Nachrichten, ein Bit oder einen Bitstrom oder ein anderes Mittel, das empfangen, gesendet und/oder erfasst werden kann und das ein Transferieren von Informationen ermöglichen kann, ist jedoch nicht hierauf beschränkt.
  • „Software" umfasst gemäß seiner Verwendung in dem vorliegenden Dokument einen oder mehr Computer- oder Prozessorbefehle, die gelesen, interpretiert, kompiliert und/oder ausgeführt werden können und die einen Computer, einen Prozessor oder eine andere elektronische Vorrichtung veranlassen, Funktionen, Aktionen durchzuführen und/oder sich auf eine gewünschte Weise zu verhalten, ist aber nicht hierauf beschränkt. Die Befehle können in verschiedenen Formen wie Routinen, Algorithmen, Modulen, Verfahren, Teilprozessen und/oder Programmen verkörpert sein, die separate Anwendungen umfassen oder von dynamisch und/oder statisch verknüpften Bibliotheken codieren. Software kann ferner in einer Vielzahl ausführbarer und/oder ladbarer Formen implementiert sein, einschließlich, aber nicht ausschließlich, eines alleinstehenden Programms, eines Funktionsrufs (lokal und/oder fern), eines Servlets, eines Applets, in einem Speicher gespeicherter Befehle, eines Teils eines Betriebssystems oder anderer Arten von ausführbaren Befehlen. Fachleute werden erkennen, dass die Form der Software beispielsweise von Anforderungen einer gewünschten Anwendung, von der Umgebung, in der sie läuft, und/oder von den Wünschen eines Entwerfers/Programmierers oder dergleichen abhängen kann. Ferner wird man erkennen, dass computerlesbare und/oder -ausführbare Befehle in einer Logik angeordnet sein können und/oder auf zwei oder mehr kommunizierende, zusammenwirkende und/oder parallel verarbeitete Logiken aufgeteilt sein können und somit auf serielle, parallele, massiv-parallele und andere Weise geladen und/oder ausgeführt werden können.
  • Eine geeignete Software zum Implementieren der verschiedenen Komponenten der hierin beschriebenen beispielhaften Systeme und Verfahren kann unter Verwendung von Programmierungssprachen und Tools wie z. B. Java, Pascal, C#, C++, C, CGI, Perl, SQL, APIs, SDKs, Assembler-, Firmware-, Mikrocode- und/oder anderer Sprachen und Tools erzeugt werden. Software, ob ein ganzes System oder eine Komponente eines Systems, kann als Herstellungsartikel verkörpert sein und als Bestandteil eines computerlesbaren Mediums, wie es zuvor definiert wurde, unterhalten und geliefert werden. Eine andere Form der Software kann Signale umfassen, die einen Programmcode der Software über ein Netzwerk oder ein anderes Kommunikationsmedium an einen Empfänger senden. Somit weist ein computerlesbares Medium bei einem Beispiel eine Form von Signalen auf, die die Software/Firmware darstellen, wie sie von einem Webserver zu einem Benutzer heruntergeladen wird. Bei einem anderen Beispiel weist das computerlesbare Medium eine Form der Software/Firmware auf, wie sie auf dem Webserver unterhalten wird. Es können auch andere Formen verwendet werden.
  • Manche Abschnitte der folgenden ausführlichen Beschreibungen sind anhand von Algorithmen und symbolischen Darstellungen von Operationen an Datenbits in einem Speicher präsentiert. Diese algorithmischen Beschreibungen und Darstellungen sind die Mittel, die von Fachleuten verwendet werden, um Anderen die Essenz ihrer Arbeit zu vermitteln. Einen Algorithmus sieht man hier und allgemein als eine Sequenz von Operationen an, die ein Ergebnis erzeugen. Die Operationen können physische Manipulationen physischer Quantitäten umfassen. Üblicherweise, jedoch nicht notwendigerweise, weisen die physischen Quantitäten die Form elektrischer oder magnetischer Signale auf, die in der Lage sind, gespeichert, transferiert, kombiniert, verglichen und auf andere Weise in einer Logik und dergleichen manipuliert zu werden.
  • Es hat sich manchmal als zweckmäßig erwiesen, hauptsächlich aus Gründen der üblichen Verwendung, diese Signale als Bits, Werte, Elemente, Symbole, Schriftzeichen, Terme, Zahlen oder dergleichen zu bezeichnen. Man sollte jedoch im Auge behalten, dass diese und ähnliche Begriffe den entsprechenden physischen Quantitäten zugeordnet werden sollen und lediglich zweckmäßige Bezeichnungen sind, die auf diese Quantitäten angewendet werden. Wenn nicht spezifisch etwas anderes angegeben ist, wird einleuchten, dass in der gesamten Beschreibung Begriffe wie Verarbeiten, Berechnen, Kalkulieren, Ermitteln, Anzeigen und dergleichen auf Aktionen und Prozesse eines Computersystems, einer Logik, eines Prozessors oder einer ähnlichen elektronischen Vorrichtung bezogen sind, das bzw. der bzw. die Daten, die als physische (elektronische) Quantitäten dargestellt sind, manipuliert und transformiert.
  • 1, die den Stand der Technik darstellt, veranschaulicht ein herkömmliches Computersystem 100, das mit einem einzelnen Unterbrechungsvektorregister 140 und einer einzelnen Unterbrechungsvektortabelle 150 konfiguriert ist. Üblicherweise kann ein Prozess 110 oder eine Vorrichtung 120 eine Unterbrechung bewirken, die durch eine Computerhardware, die dem Computersystem 100 zugeordnet ist, erfasst werden kann und in manchen Fällen durch ein Betriebssystem 130 gehandhabt werden kann. Das Betriebssystem 130 kann versuchen, die Unterbrechung zu handhaben. Eine Handhabung einer Unterbrechung kann durch das Unterbrechungsvektorregister 140 und die Unterbrechungsvektortabelle 150 ermöglicht werden, die Daten liefern, die ein Lokalisieren einer Unterbrechungshandhabungsvorrichtung ermöglichen. Beispielsweise kann das Unterbrechungsvektorregister 140 die Adresse der einzelnen Unterbrechungsvektortabelle 150 speichern oder andere Daten umfassen, die ein Lokalisieren der Unterbrechungsvektortabelle 150 und/oder von Einträgen in der Unterbrechungsvektortabelle 150 ermöglichen. Die Unterbrechungsvektortabelle 150 speichert üblicherweise Programmeintrittspunkte für Unterbrechungsbehandlungsroutinen. In manchen Fällen speichert die Unterbrechungsvektortabelle 150 eventuell einen Code (z. B. Unterbrechungsbehandlungsroutinen), und nicht Eintrittsadressen für diese Routinen.
  • Wenn eine Computerhardware, der das Betriebssystem 130 zugeordnet ist, eine durch den Prozess 110 und/oder die Vorrichtung 120 erzeugte Unterbrechung erfasst, kann das Betriebssystem 130 auf das Unterbrechungsvektorregister 140 zugreifen, um die Adresse der Unterbrechungsvektortabelle 150 einzuholen. Das Betriebssystem 130 kann dann unter Verwendung von Indexdaten wie einer Unterbrechungsnummer in die Unterbrechungsvektortabelle 150 indexieren. Die Indexdaten ermöglichen ein Lokalisieren eines der Einträge (z. B. 152 bis 159) in der Unterbrechungsvektortabelle 150. Üblicherweise entsprechen die Indexdaten (z. B. Unterbrechungsnummer) genau einem Eintrag in der Unterbrechungsvektortabelle 150.
  • Herkömmlicherweise stehen dem Betriebssystem 130 zu jeglichem Zeitpunkt genau ein Unterbrechungsvektorregister 140 und genau eine Unterbrechungsvektortabelle 150 zur Verfügung. Ferner sind das Unterbrechungsvektorregister 140 und die Unterbrechungsvektortabelle 150 üblicherweise für das Betriebssystem 130 zugänglich. Somit kann das Betriebssystem 130 das Unterbrechungsvektorregister 140 und/oder die Unterbrechungsvektortabelle 150 initialisieren, es kann das Unterbrechungsvektorregister 140 und/oder die Unterbrechungsvektortabelle 150 umprogrammieren usw.
  • 2 veranschaulicht ein beispielhaftes System, das ein Trapmodusregister 230, zwei Adressregister (240, 250) und zwei Unterbrechungsvektortabellen (241, 251) umfasst. Ein Prozess 200 und/oder eine Vorrichtung 210 können Unterbrechungen erzeugen, die durch eine Computerhardware, die einem Betriebssystem 220 zugeordnet ist, erfasst werden können. Man muss verstehen, dass die Vorrichtung 210 bei manchen Beispielen eine tatsächliche Vorrichtung oder eine virtuelle Vorrichtung sein kann. Statt genau ein Adressregister und genau eine Unterbrechungsvektortabelle zur Verfügung zu haben, um eine Unterbrechungsbehandlungsroutine zu lokalisieren, kann das Betriebssystem 220 und/oder ein Prozessor (nicht veranschaulicht), der das Betriebssystem 220 betreibt, mit einem Trapmodusregister 230 interagieren, das auf zwei oder mehr Adressregister und somit auf zwei oder mehr Unterbrechungsvektortabellen Zugriff hat.
  • Das Trapmodusregister 230 kann wirksam mit dem Betriebssystem 220 verbunden sein und kann dazu konfiguriert sein, auf das Auftreten einer Unterbrechung hin die der Unterbrechung zugeordneten Trapdaten zu empfangen. Das Trapmodusregister 230 kann ferner dazu konfiguriert sein, ein Auswählen zwischen einem ersten Adressregister 240 und einem zweiten Adressregister 250 zu ermöglichen, um eine Adresse zu liefern, die einer Unterbrechungsvektortabelle zugeordnet ist, die beispielsweise die Adresse einer Unterbrechungsbehandlungsroutine und dergleichen bereitstellt. Welches Adressregister durch das Trapmodusregister 230 ausgewählt wird, kann zumindest teilweise auf den Trapdaten basieren. Bei einem Beispiel können die Trapdaten Informationen wie einen Identifizierer vom Unterbrechungstyp und eine Adresse, die einer Vorrichtung (z. B. 210), die dafür verantwortlich ist, die Unterbrechung zu bewirken, einem Prozess (z. B. 200), der dafür verantwortlich ist, die Unterbrechung zu bewirken, und einer Speicherstelle, die dafür verantwortlich ist, die Unterbrechung zu bewirken, zugeordnet ist, umfassen.
  • Dem Trapmodusregister 230 kann eine erste Unterbrechungsvektortabelle 241 zur Verfügung stehen, die dazu konfiguriert ist, ein Lokalisieren einer Unterbrechungsbehandlungsroutine, die einem Handhaben von Unterbrechungen von einem ersten Satz von Unterbrechungstypen zugeordnet ist, zu ermöglichen. Beispielsweise kann die Unterbrechungsvektortabelle 241 Unterbrechungsbehandlungsroutinen zum Handhaben von Unterbrechungen von physischen (z. B. nicht-virtuellen) Vorrichtungen umfassen. Die erste Unterbrechungsvektortabelle 241 kann einem ersten Adressregister 240 zugeordnet sein, das dazu konfiguriert ist, dem Trapmodusregister 230 eine Adresse zu liefern, die der ersten Unterbrechungsvektortabelle 241 zugeordnet ist. Das erste Adressregister 240 kann ferner ein Lokalisieren eines Eintrags in der ersten Unterbrechungsvektortabelle 241 ermöglichen, indem es einen Eintrittspunkt in die erste Unterbrechungsvektortabelle 241 liefert. Bei einem Beispiel kann das erste Adressregister 240 und/oder die erste Unterbrechungsvektortabelle 241 für das Betriebssystem 220 zugänglich sein. Deshalb kann das Betriebssystem 220 dafür verantwortlich sein, das Adressregister 240 und/oder die Unterbrechungsvektortabelle 241 zu initialisieren.
  • Im Gegensatz zu herkömmlichen Systemen kann dem Trapmodusregister 230 auch eine zweite Unterbrechungsvektortabelle 251 zur Verfügung stehen, die dazu konfiguriert ist, ein Lokalisieren einer Unterbrechungsbehandlungsroutine zu ermöglichen, die einem Handhaben einer Unterbrechung von einem zweiten Satz von Unterbrechungen zugeordnet ist. Beispielsweise kann die Unterbrechungsvektortabelle 251 Unterbrechungsbehandlungsroutinen zum Handhaben von Unterbrechungen von virtuellen (z. B. nicht-physischen) Vorrichtungen umfassen. Die zweite Unterbrechungsvektortabelle 251 kann auch einem zweiten Adressregister 250 zugeordnet sein, das dazu konfiguriert ist, dem Trapmodusregister 230 eine Adresse zu liefern, die der zweiten Unterbrechungsvektortabelle 251 zugeordnet ist. Das zweite Adressregister 250 kann ferner ein Lokalisieren eines Eintrags in der zweiten Unterbrechungsvektortabelle 251 ermöglichen. Bei einem Beispiel sind das zweite Adressregister 250 und/oder die zweite Unterbrechungsvektortabelle 251 eventuell nicht für das Betriebssystem 220 zugänglich.
  • Wenn zwei Adressregister zur Verfügung stehen und wenn somit zwei Unterbrechungsvektortabellen zur Verfügung stehen, kann das Trapmodusregister 230 dazu konfiguriert sein, Unterbrechungsbehandlungsroutinen für einen ersten Satz von Unterbrechungen in einer ersten Unterbrechungsvektortabelle zu lokalisieren und Unterbrechungsbehandlungsroutinen für einen zweiten Satz von Unterbrechungen in einer zweiten Unterbrechungsvektortabelle zu lokalisieren.
  • Das Betriebssystem 220 kann dazu konfiguriert sein, zusätzlich zu herkömmlichen Unterbrechungen einen „Nicht-Implementierte-Adresse"-Trap zu verarbeiten. Wenn der Prozess 200 oder die Vorrichtung 210 versucht, auf eine Speicheradresse zuzugreifen, die nicht implementiert ist, kann ein Nicht-Implementierte-Adresse-Trap erzeugt werden. Somit können das Betriebssystem 220 und das Trapmodusregister 230 dazu konfiguriert sein, eine Handhabungsvorrichtung für einen Nicht-Implementierte-Adresse-Trap zu lokalisieren. Beispielsweise kann ein Nicht-Implementierte-Adresse-Trap ein Angehöriger des zweiten Satzes von Unterbrechungen sein und somit das Trapmodusregister 230 dahingehend steuern, das zweite Adressregister 250 auszuwählen und somit eine Unterbrechungsbehandlungsroutine in der zweiten Unterbrechungsvektortabelle 251 zu lokalisieren. Bei einem Beispiel kann der Nicht-Implementierte-Adresse-Trap beispielsweise durch einen Versuch seitens des Prozesses 200 oder der Vorrichtung 210 erzeugt werden, auf eine Adresse zuzugreifen, die einer Trap-fähigen Adressbandbreite zugeordnet ist. Bei einem anderen Beispiel kann der Nicht-Implementierte-Adresse-Trap durch eine Aktion erzeugt werden, die einer virtuellen Vorrichtung zugeordnet ist. Somit kann der Nicht-Implementierte-Adresse-Trap nützlich dafür sein, ein außerhalb des Betriebssystems 220 liegendes Virtualisierungssystem zu implementieren.
  • Die Unterbrechungsvektortabellen können bei verschiedenen Beispielen unterschiedliche Informationen speichern. Beispielsweise kann die erste Unterbrechungsvektortabelle 241 Daten speichern, die einen Satz von Unterbrechungsbehandlungsroutine-Eintrittspunkten und einen Satz von Unterbrechungsbehandlungsroutinen umfassen, aber nicht auf diese beschränkt sind. Desgleichen kann die zweite Unterbrechungsvektortabelle 251 Daten speichern, die einen Satz von Unterbrechungsbehandlungsroutine-Eintrittspunkten und einen Satz von Unterbrechungsbehandlungsroutinen umfassen, aber nicht auf diese beschränkt sind. Bei einem Beispiel kann die erste Unterbrechungsvektortabelle 241 ein Lokalisieren von Unterbrechungsbehandlungsroutinen ermöglichen, die für das Betriebssystem 220 zugänglich sind, während die zweite Unterbrechungsvektortabelle 251 ein Lokalisieren von Unterbrechungsbehandlungsroutinen ermöglichen kann, die für das Betriebssystem 220 nicht zugänglich sind. Beispielsweise können Unterbrechungsbehandlungsroutinen, die durch die Unterbrechungsvektortabelle 251 lokalisierbar sind, ein Virtualisierungssystem betreffen, dessen sich das Betriebssystem 220 eventuell nicht bewusst ist.
  • Obwohl in 2 zwei Adressregister und zwei Unterbrechungsvektortabellen veranschaulicht sind, wird man verstehen, dass das Trapmodusregister 230 auf zwei oder mehr Adressregister und somit auf zwei oder mehr Unterbrechungsvektortabellen Zugriff haben kann. Obwohl ferner beide Adressregister und somit beide Unterbrechungsvektortabellen als eine Umwegsebene von dem Trapmodusregister 230 veranschaulicht sind, können sich andere Adressregister und/oder Unterbrechungsvektortabellen an anderen Umwegsebenen von dem Trapmodusregister 230 befinden. Somit können die zusätzlichen Tabellen ein Hinzufügen einer Unterstützung für eine Eingangs-/Ausgangsvirtualisierung über eine Hierarchie von mehreren unabhängigen Virtualisierungsschichten ermög lichen. Zwei oder mehr Tabellen und Register können auch bei anderen hierin beschriebenen beispielhaften Systemen verwendet werden.
  • 3 veranschaulicht ein beispielhaftes computerbasiertes System, das ein Trapmodusregister 310, zwei Adressregister (320, 330) und zwei Unterbrechungsvektortabellen (321, 331) umfasst. Wie oben in Verbindung mit 2 beschrieben wurde, kann das Trapmodusregister 310 für Unterbrechungen, die durch das Betriebssystem 340 erfasst werden, ein Adressregister auswählen, von dem Daten wie die Adresse einer Unterbrechungsvektortabelle wiedergewonnen werden können. Somit kann das Trapmodusregister 310 ein Lokalisieren einer Unterbrechungsbehandlungsroutine ermöglichen.
  • 3 veranschaulicht das Trapmodusregister 310, das Adressregister 330 und die Unterbrechungsvektortabelle 331, die wirksam mit einer Initialisierungslogik 300 verbunden sind. Die Initialisierungslogik 300 kann dazu konfiguriert sein, das Trapmodusregister 310, die Unterbrechungsvektortabelle 331 und das Adressregister 330 zu initialisieren. Ferner kann die Initialisierungslogik 300 dazu konfiguriert sein, ein Signal zum Steuern einer Betriebssystem-Initialisierungslogik (nicht veranschaulicht), die wirksam mit dem Betriebssystem 340 verbunden ist, zu liefern. Bei einem Beispiel kann die Initialisierungslogik 300 das Signal der Betriebssystem-Initialisierungslogik liefern, nachdem das Trapmodusregister 310, die Unterbrechungsvektortabelle 331 und das Adressregister 330 initialisiert wurden. Das Signal kann das Betriebssystem 340 veranlassen, den Betrieb zu beginnen (z. B. hochzufahren bzw. zu booten). Somit können die in dem Trapmodusregister 310, dem Adressregister 330 und/oder der Unterbrechungsvektortabelle 331 gespeicherten Informationen festgelegt werden, bevor das Betriebssystem 340 zu laufen beginnt. Dies kann ermöglichen, die in dem Trapmodusregister 310, dem Adressregister 330 und/oder der Unterbrechungsvektortabelle 331 ge speicherten Informationen für das Betriebssystem 340 unzugänglich zu halten.
  • Obwohl die Initialisierungslogik 300 das Trapmodusregister 310, das Adressregister 330 und die Unterbrechungsvektortabelle 331 initialisieren kann, kann das Betriebssystem 340 die Unterbrechungsvektortabelle 321 und das Adressregister 320 initialisieren. Somit können die Unterbrechungsvektortabelle 321 und das Adressregister 320 für das Betriebssystem 340 zugänglich sein. In der Lage zu sein, Unterbrechungsvektortabellen, die für das Betriebssystem 340 zugänglich und nicht zugänglich sind, zu trennen, ermöglicht, ein externes Virtualisierungssystem bereitzustellen, um das Betriebssystem 340 und/oder einen Prozessor, der ohne ein Virtualisierungssystem konfiguriert ist, zu unterstützen. Unterbrechungen, die virtuellen Vorrichtungen zugeordnet sind, können Handhabungsvorrichtungen beinhalten, die dem Adressregister 330 und der Unterbrechungsvektortabelle 331, die durch die Initialisierungslogik 300 initialisiert werden, zugeordnet sind. Desgleichen können Unterbrechungen, die physischen Vorrichtungen zugeordnet sind, Unterbrechungsbehandlungsroutinen beinhalten, die dem Adressregister 320 und der Unterbrechungsvektortabelle 321, die durch das Betriebssystem 340 initialisiert wurden und eventuell für dasselbe zugänglich sind, zugeordnet sind.
  • Bei einem Beispiel kann die Initialisierungslogik 300 dazu konfiguriert sein, eine virtuelle Vorrichtung zu definieren und dem Betriebssystem 340 Informationen bezüglich der virtuellen Vorrichtung zu liefern. Somit können die Initialisierungslogik 300, das Trapmodusregister 310, das Adressregister 330 und die Unterbrechungsvektortabelle 331 ein Bereitstellen eines externen Virtualisierungssystems für das Betriebssystem 340 und/oder einen Prozessor, auf dem das Betriebssystem 340 läuft, ermöglichen. Die Funktionen des externen Virtualisierungssystems können dem Betriebssystem 340 zur Verfügung gestellt werden, obwohl das Betriebssystem 340 eventuell nicht in der Lage ist, direkt auf das externe Virtualisierungssystem zuzugreifen. Beispielsweise kann die Initialisierungslogik 300 dazu konfiguriert sein, die Unterbrechungsvektortabelle 331 mit Daten zu initialisieren, die einen Satz von Virtueller-Vorrichtungstreiber-Eintrittspunkten und einen Satz von Virtuelle-Vorrichtung-Treibern, wobei die Virtuelle-Vorrichtung-Treiber einen Teil eines Virtualisierungssystems bilden, umfassen, aber nicht auf diese beschränkt sind. Bei einem Beispiel kann der Satz von Virtuelle-Vorrichtung-Treibern in der Initialisierungslogik 300 vorliegen (z. B. gespeichert sein). Die Initialisierungslogik 300 kann beispielsweise in Firmware implementiert sein. Somit kann das Betriebssystem 340 in der Lage sein, die Virtuelle-Vorrichtung-Treiber aufzurufen, jedoch unfähig sein, den Inhalt dieser Treiber zu verändern.
  • Bei einer Zentralverarbeitungseinheit-Architektur (CPU-Architektur), bei der externe Unterbrechungen vektoriell durch eine Unterbrechungsvektortabelle verarbeitet werden, kann die durch das Trapmodusregister 310, mehrere Adressregister und mehrere Unterbrechungsvektortabellen gelieferte Virtualisierung verwendet werden, um externe Unterbrechungen wie einen Virtuelle-Vorrichtung-Treiber vektoriell auf einen Virtualisierungscode zu richten, indem das Trapmodusregister 310 dahingehend erweitert wird, externe Unterbrechungen zu verarbeiten. Somit kann ein Virtualisierungscode die Gelegenheit haben, eine Unterbrechung zu prüfen und zu bestimmen, ob sie von einer dem Virtualisierungssystem zugeordneten Vorrichtung stammt. Wenn eine Unterbrechung dem Virtualisierungssystem zugeordnet ist, dann handhabt sie eventuell der Virtualisierungscode (z. B. der der Unterbrechungsvektortabelle 331 zugeordnete Code). Andernfalls, wenn die Unterbrechung dem Betriebssystem 340 zugeordnet ist, verarbeitet eventuell der der Unterbrechungsvektortabelle 321 zugeordnete Code die Unterbrechung.
  • Obwohl zwei Adressregister und zwei Unterbrechungsvektortabellen veranschaulicht sind, muss man erkennen, dass das Trapmodusregister 310 wirksam mit zwei oder mehr Adressregistern verbunden sein kann und somit zu zwei oder mehr alternativen Unterbrechungsvektortabellen Zugang haben kann.
  • 4 veranschaulicht ein beispielhaftes Computersystem, das mit einem Trapmodusregister 400, einem ersten Adressregister 410 und einem zweiten Adressregister 420 konfiguriert ist. Unterbrechungsvektortabellen, die den Adressregistern (410, 420) zugeordnet sind, sind nicht veranschaulicht, jedoch wird einleuchten, dass das Trapmodusregister 400 die Adressregister (410, 420) ähnlich dem Trapmodusregister 230 (2) und 310 (3) verwenden kann, um auf Unterbrechungsvektortabellen zuzugreifen. Ferner veranschaulicht 4 einen Datenspeicher 430, der wirksam mit dem Trapmodusregister 400 verbunden ist.
  • Der Datenspeicher 430 kann dazu konfiguriert sein, Daten zu speichern, die eine Trap-fähige Adressbandbreite betreffen. Die Trap-fähige Adressbandbreite kann steuern, wann ein Prozessor 440 und/oder ein Betriebssystem (nicht veranschaulicht) einen „Nicht-Implementierte-Adresse"-Trap und/oder einen „Trap-fähige-Adressbandbreite"-Trap erfasst und/oder erzeugt. Beispielsweise kann die Initialisierungslogik 460 dazu konfiguriert sein, eine Trap-fähige Adressbandbreite in dem Datenspeicher 430 zu speichern, für die Nicht-Implementierte-Adresse-Traps gewünscht sind. Dann kann ein Versuch, auf eine Adresse in der Trap-fähigen Adressbandbreite zuzugreifen, einen Nicht-Implementierte-Adresse-Trap bewirken.
  • Ungünstigerweise kann ein Betriebssystem und/oder ein Anwendungscode, der an dem Prozessor 440 läuft, bei manchen Beispielen beabsichtigterweise und/oder unbeabsichtigterweise eine durch das Trapmodusregister 400 und seine verwandten Computerkomponenten und Datenspeicher gelieferte Virtualisierung durch ein Verändern des Trapmodusregisters 400, der Adressregister (410, 420), der Unterbrechungsbe handlungsroutinen usw. beeinträchtigen. Somit veranschaulicht 4 außerdem eine Sicherer-Modus-Logik 450, die wirksam mit dem Prozessor 440 verbunden ist. Die Trap-fähige Adressbandbreite, die in dem Datenspeicher 430 gespeichert ist, kann mit der Sicherer-Modus-Logik 450 interagieren, um zu ermöglichen, dass eine Beeinträchtigung der Virtualisierung verhindert wird.
  • Um beispielsweise eine Implementierung eines externen Virtualisierungssystems für den Prozessor 440 zu ermöglichen, kann eine Speicherstelle in der geschützten Adressbandbreite für die Initialisierungslogik 460 zugänglich und für den Prozessor 440 und/oder ein Betriebssystem, das auf dem Prozessor 440 läuft, unzugänglich sein. Die Sicherer-Modus-Logik 450 kann dazu konfiguriert sein, ein Steuern eines Zugriffs auf die geschützte Adressbandbreite zu ermöglichen. Beispielsweise können Speicherstellen, die der geschützten Adressbandbreite zugeordnet sind, für Unterbrechungsbehandlungsroutinen, die durch das Adressregister 420, jedoch nicht durch das Adressregister 410 erreichbar sind, zugänglich sein. Desgleichen können Speicherstellen außerhalb der geschützten Adressbandbreite für Unterbrechungsbehandlungsroutinen, die durch das Adressregister 410 erreichbar sind, zugänglich sein. Bei Nichtvorliegen der Sicherer-Modus-Logik 450 kann der Prozessor 440 und/oder ein auf dem Prozessor 440 laufendes Betriebssystem freiwillig zustimmen, auf bestimmte Adressen nicht zuzugreifen. Jedoch greift vielleicht ein missbräuchlicher und/oder fehlerhafter Code absichtlich und/oder unabsichtlich auf diese Adressen zu, wobei ein in diesen Adressen implementiertes Virtualisierungssystem potentiell beeinträchtigt wird.
  • Somit können das Trapmodusregister 400, Adressregister (z. B. Adressregister 420) und/oder Unterbrechungsvektortabellen (nicht veranschaulicht), die den Adressregistern zugeordnet sind, Adressen aufweisen, die in der in dem Datenspeicher 430 identifizierten geschützten Adressband breite angeordnet sind. Die geschützte Adressbandbreite kann durch die Initialisierungslogik 460 initialisiert werden, bevor der Prozessor 440 den Betrieb beginnt. Zusätzlich und/oder alternativ dazu können Daten, die der geschützten Adressbandbreite zugeordnet sind, durch die Initialisierungslogik 460 und/oder durch einen Code, der in der geschützten Adressbandbreite abläuft, aktualisiert werden. Die geschützte Adressbandbreite kann beispielsweise eine einzelne zusammenhängende Adressbandbreite, verschiedene Blöcke von Adressen usw. sein.
  • Obwohl ein Virtualisierungssystem beschrieben ist, wird einleuchten, dass das Trapmodusregister 400, das mit mehreren Adressregistern und mehreren Unterbrechungsvektortabellen zusammenarbeitet, auch eine andere Funktionalität liefern kann. Beispielsweise können ein Fehlerbeseitigungssystem, ein Registrierungssystem und andere Systeme vorgesehen sein. Zusätzlich kann das Trapmodusregister 400, das mit mehreren Adressregistern und mehreren Unterbrechungsvektortabellen zusammenarbeitet, einen Vor-Booten-Firmware-„Verstecken"-Code von einem Prozessor und/oder Betriebssystem ermöglichen. Somit können Konfigurationsroutinen, Sicherheitsfunktionen usw. implementiert und auf selektive Weise durch einen Eintrittspunkt wie ein Nicht-Implementierte-Adresse-Trap oder ein Trap-fähige-Adressbandbreite-Trap aufgerufen werden.
  • Ein Bereitstellen einer Trap-fähigen Adressbandbreite ermöglicht ferner ein Abmildern von Problemen, die mit einer Verwendung eines Nicht-Implementierte-Adresse-Traps für virtuelle Vorrichtungen verbunden sind. Beispielsweise können virtuelle Vorrichtungen dadurch, dass virtuelle Vorrichtungen auf Adressen in einer Trap-fähigen Adressbandbreite abgebildet werden, eine andere Art von Trap als einen Nicht-Implementierte-Adresse-Trap erzeugen. Wenn also ein tatsächlicher Nicht-Implementierte-Adresse-Trap auftritt, ist eine Verarbeitung, um zu ermitteln, ob der Nicht-Implementierte-Adresse-Trap einer virtuellen Vorrich tung zugeordnet ist oder in der Tat einer nichtimplementierten Adresse zugeordnet ist, eventuell nicht erforderlich.
  • 5 veranschaulicht ein beispielhaftes Trapmodusregister 500. Bei einem Beispiel kann das Trapmodusregister 500 einem Feld 510 und/oder einem Datenspeicher zugeordnet sein, das bzw. der Informationen darüber speichert, ob eine alternative Unterbrechungsvektortabelle verfügbar ist, um Unterbrechungsbehandlungsroutinen zu lokalisieren, und dergleichen. Veranschaulichenderweise sei Folgendes gesagt: Wenn das Feld 510 angibt, dass keine alternativen Tabellen verfügbar sind, dann kann das Trapmodusregister 500 dazu konfiguriert sein, Unterbrechungshandhabungsvorrichtungen in einer voreingestellten Unterbrechungsvektortabelle, die über ein voreingestelltes Adressregister zugänglich ist, zu lokalisieren, ohne alternative Adressregister in Betracht zu ziehen. Wenn jedoch das Feld 510 angibt, dass eine alternative Tabelle verfügbar ist, dann kann das Trapmodusregister 500 dazu konfiguriert sein, zu versuchen, alternative Unterbrechungshandhabungsvorrichtungen in alternativen Unterbrechungsvektortabellen, die für alternative Adressregister zugänglich sind, zu lokalisieren. Das Feld 510 ermöglicht ein selektives Ein-/Ausschalten einer Verarbeitung einer alternativen Vektortabelle und kann somit beispielsweise ein selektives Ein-/Ausschalten eines Virtualisierungssystems auf der Basis alternativer Vektortabellen ermöglichen. Bei einem Beispiel kann eine Initialisierungslogik (z. B. Logik 460, 4) das Feld 510 manipulieren (z. B. einstellen/löschen).
  • Das Trapmodusregister 500 kann verschiedene Felder umfassen. Bei einem Beispiel kann das Trapmodusregister 500 ein Feld 520 umfassen, das dazu konfiguriert ist, Daten vom Traptyp zu speichern. Beispielsweise können Traps, die durch ein System erfasst werden können, einen eindeutigen Code aufweisen, der den Traptyp identifiziert. Bei einem Beispiel kann der eindeutige Code ein Indexieren in eine Unterbrechungsvektortabelle ermöglichen. Beispielsweise kann ein Traptyp eine Ganzzahl sein, die, wenn sie mit einer Eintrittsgröße für eine Unterbrechungsvektortabelle multipliziert wird, ein Bestimmen einer Adresse für eine Unterbrechungsbehandlungsroutine in einer Unterbrechungsvektortabelle ermöglicht. Obwohl eine Ganzzahl und eine Eintrittsgröße beschrieben sind, versteht es sich, dass auch andere Indexierungs- und Handhabungsvorrichtungslokalisierungstechniken verwendet werden können.
  • Das Trapmodusregister 500 kann auch ein Feld 530 umfassen, das dazu konfiguriert ist, Informationen wie eine Unterbrechungsvektortabellenadresse, die von einem Adressregister wiedergewonnen wird, zu speichern. Das Adressregister, von dem die Adresse wiedergewonnen wird, kann, wie oben beschrieben wurde, durch in dem Feld 520 vom Traptyp gespeicherte Daten bestimmt werden. Das einem Traptyp zugeordnete Adressregister kann beispielsweise in Hardware, Firmware usw. festgelegt sein. Bei einem weiteren Beispiel kann das einem Traptyp zugeordnete Adressregister dynamisch sein und kann sich verändern, wenn verschiedene Bedingungen eintreten.
  • Das Trapmodusregister 500 kann auch ein Feld 540 umfassen, das dazu konfiguriert ist, Informationen in Bezug darauf zu speichern, ob ein Unterbrechungstyp einen dem Trapmodusregister 500 zugeordneten Prozessor steuert, um in einen sicheren Modus einzutreten. Wie oben beschrieben wurde, kann eine Sicherer-Modus-Logik oder eine andere Logik dazu konfiguriert sein, manche Speicherstellen für ein Betriebssystem und/oder einen Anwendungscode unzugänglich zu machen. Diese Speicherstellen sind eventuell lediglich für einen Prozessor zugänglich, wenn eine Logik wie eine Sicherer-Modus-Logik erfasst, dass der Prozessor, das Betriebssystem, der Anwendungscode usw. in einem sicheren Modus arbeiten. Ein Entwerfer kann wünschen, dass bestimmte Unterbrechungen (z. B. Nicht-Implementierte-Adresse-Traps) bewirken, dass in den sicheren Modus eingetreten wird.
  • Somit kann das Feld „Übergang zu sicherem Modus" 540 Informationen speichern, die eine Sicherer-Modus-Logik oder eine andere Logik verwenden kann, um einen Übergang zu einem sicheren Modus zu bewirken. Obwohl der Übergang zu dem Sichermodusfeld 540 als einzelnes Bitfeld veranschaulicht ist, muss man verstehen, dass Felder anderer Größen und Typen verwendet werden können.
  • Das Trapmodusregister 500 kann auch ein Feld 550 umfassen, das dazu konfiguriert ist, Informationen in Bezug darauf zu speichern, ob ein Unterbrechungstyp aktiviert ist. Zu bestimmten Zeiten wünscht ein System eventuell nicht, unterschiedliche Arten von Unterbrechungen zu handhaben, oder ist eventuell nicht dazu in der Lage. Statt einen Sprung zu einer Unterbrechungsbehandlungsroutine für einen Unterbrechungstyp zu ermöglichen, den das System nicht handhaben möchte, können in einem Trapdeaktivierungsbit 550 Informationen gespeichert sein, die es ermöglichen, ein System dahingehend zu steuern, die Unterbrechung nicht zu nehmen. Das Feld 550 kann ferner ein Steuern dessen ermöglichen, ob ein Unterbrechungstyp deaktiviert wird, wenn sich ein Prozessor in einem sicheren Modus befindet. Dies kann ein Verhindern beispielsweise einer Endlosschleife an einem Nicht-Implementierte-Adresse-Trap ermöglichen. Obwohl das Trapdeaktivierungsfeld 550 als einzelnes Bitfeld veranschaulicht ist, muss man wiederum erkennen, dass Felder anderer Größen und Typen verwendet werden können.
  • Das Trapmodusregister 500 kann auch ein Feld 560 umfassen, um Informationen bezüglich dessen zu speichern, ob ein Unterbrechungstyp in einem sicheren Modus gehandhabt werden soll. Obwohl das Feld 540 Informationen bezüglich dessen speichern mag, ob ein Trap einen Übergang zu einem sicheren Modus bewirkt, mag das Feld 560 Informationen bezüglich dessen speichern, ob eine bestimmte Unterbrechung lediglich in einem sicheren Modus gehandhabt werden kann, ohne Informationen darüber zu enthalten, ob diese Unterbrechung den Übergang bewirken kann. Somit können die Felder 560 und 540 unterschiedliche Informationen bezüglich eines Zustands speichern, der gewünscht ist, um eine Unterbrechung und einen potentiellen Zustandsübergang, der durch eine Unterbrechung bewirkt wird, zu verarbeiten. In dem Feld 560 gespeicherte Informationen können beispielsweise festlegen, ob eine Unterbrechung in einem sicheren Modus genommen wird, um zu ermöglichen, dass ein in einer geschützten Adressbandbreite vorliegender sicherer Code ohne eine unendliche Schleife an einem Adressbandbreitetrap ausgeführt wird. Obwohl das Feld „Nimm Trap in sicherem Modus" 550 als einzelnes Bitfeld veranschaulicht ist, muss man verstehen, dass Felder anderer Größen und Typen verwendet werden können. Zusätzlich dazu muss man verstehen, dass, obwohl fünf Felder in dem Trapmodusregister 500 veranschaulicht sind, eine größere und/oder kleinere Anzahl von Feldern und dass verschiedene Kombinationen der veranschaulichten Felder verwendet werden können.
  • 6 veranschaulicht ein computerbasiertes System, das mit einem Trapmodusregister 600 und mehreren Unterbrechungsvektorregistern (610, 620) konfiguriert ist, die dazu konfiguriert sein können, Adressen zu speichern, die ein Lokalisieren einer Unterbrechungsbehandlungsroutine und dergleichen ermöglichen. 6 veranschaulicht, dass das Trapmodusregister 600 mit einem Betriebssystem 630 interagieren kann, das wiederum mit einer physischen Vorrichtung 670 und einer virtuellen Vorrichtung 680 interagiert. Die virtuelle Vorrichtung 680 kann wiederum mit einer physischen Vorrichtung 682 interagieren oder in derselben implementiert sein. Die physischen Vorrichtungen 670 und 682 und/oder die virtuelle Vorrichtung 680 können Speicherreferenzen auf einen Speicher 640 machen. Der Speicher 640 kann Physischer-Speicher- und Virtueller-Speicher-Zugriffe berücksichtigen. Wenn ein System einen virtuellen Speicher verwendet, kann ein Übersetzungsseitengriffspuffer 650 verwendet werden, um Übersetzungen oder Abbildungen von physischen zu virtuellen und von virtuellen zu physischen Adressen zu ermöglichen. Wenn eine Adressübersetzung oder -abbildung erfolgt, kann das Betriebssystem 630 und/oder eine Übersetzungsseitengriffspufferlogik 660 einen Eintrag (z. B. eine Aufzeichnung) in dem Übersetzungsseitengriffspuffer 650 manipulieren (z. B. erzeugen, zerstören, verändern).
  • Somit kann ein System, das mit einem Trapmodusregister 600 konfiguriert ist, eine Übersetzungsseitengriffspufferlogik 660 umfassen, die dazu konfiguriert ist, auf selektive Weise ein Adressbandbreitenattribut in einem Eintrag in dem Übersetzungsseitengriffspuffer 650 einzustellen. Das Adressbandbreitenattribut kann beispielsweise ein Bestimmen dessen ermöglichen, ob ein Speicherzugriff, der bewirkte, dass die Physische-/Virtuelle-Adresse-Abbildung erfolgt oder dass auf dieselbe Bezug genommen wird, eine Unterbrechung wie einen Nicht-Implementierte-Adresse-Trap bewirkt. Somit kann die Übersetzungsseitengriffspufferlogik 660 bei einem Beispiel dazu konfiguriert sein, auf selektive Weise einen Virtualisierungsprozess aufzurufen, wenn ein Nicht-Implementierte-Adressbandbreite-Trap auftritt. Veranschaulichungshalber kann eine Unterbrechung auftreten, wenn ein Code, der außerhalb eines sicheren Modus läuft, versucht, einen Eintrag in den Übersetzungsseitengriffspuffer 650 einzufügen. Eine Unterbrechungsbehandlungsroutine kann die dem Eintrag zugeordnete echte Adresse untersuchen. Wenn die echte Adresse in einer Trap-fähigen Adressbandbreite liegt, kann die Unterbrechungsbehandlungsroutine ein Adressbandbreitenattribut in dem Eintrag setzen, den Eintrag in den Übersetzungsseitengriffspuffer 650 einfügen und zurückkehren. Somit kann eine Echt-zu-Virtuell-Abbildung mit einem Flag als in einer Trap-fähigen Adressbandbreite befindlich markiert werden. Dann, wenn ein Zugriff auf eine virtuelle Adresse versucht wird, deren Eintrag in den Übersetzungsseitengriffspuffer 650 ein Flag aufweist, das das Adressbandbreitenattribut bezeichnet, kann ein Adressbandbreitentrap genommen und ein Virtualisierungscode aufgerufen werden. Da Einträge in den Übersetzungsseitengriffspuffer 650 bereits Attribute aufweisen, die geprüft werden müssen und die Unterbrechungen bewirken, können Verschlechterungen der Leistungsfähigkeit, die mit einer Hinzufügung eines externen Virtualisierungssystems auf der Basis eines Trapmodusregisters 600 zusammenhängen, abgemildert werden.
  • Beispielhafte Verfahren werden unter Bezugnahme auf die Flussdiagramme der 7 und 8 besser verständlich. Obwohl die veranschaulichten Methodologien für die Zwecke der Vereinfachung der Erläuterung als Serie von Blöcken gezeigt und beschrieben sind, muss man erkennen, dass die Methodologien nicht durch die Reihenfolge der Blöcke eingeschränkt sind, da manche Blöcke in einer Reihenfolge, die sich von der gezeigten und beschriebenen unterscheidet, und/oder gleichzeitig mit anderen Blöcken auftreten können. Ferner können weniger als alle veranschaulichen Blöcke erforderlich sein, um eine beispielhafte Methodologie zu implementieren. Ferner können zusätzliche und/oder alternative Methodologien zusätzliche, nicht veranschaulichte Blöcke verwenden.
  • In den Flussdiagrammen bezeichnen Blöcke „Verarbeitungsblöcke", die mit Logik implementiert werden können. Die Verarbeitungsblöcke können einen Verfahrensschritt und/oder ein Vorrichtungselement zum Durchführen des Verfahrensschritts darstellen. Ein Flussdiagramm zeigt keine Syntax für eine(n) bestimmte(n) Programmierungssprache, Methodologie oder Stil (z. B. verfahrensorientiert, objektorientiert). Vielmehr veranschaulicht ein Flussdiagramm funktionelle Informationen, die Fachleute verwenden können, um eine Logik zu entwickeln, um die veranschaulichte Verarbeitung durchzuführen. Man wird erkennen, dass Programmelemente wie temporäre Variablen, Routineschleifen usw. bei manchen Beispielen nicht gezeigt sind. Ferner wird man erkennen, dass elektronische und Software-Anwendungen dynamische und flexible Prozesse beinhalten können, so dass die veranschaulichten Blöcke in anderen Sequenzen durchgeführt werden können, die sich von den gezeigten unterscheiden, und/oder dass Blöcke zu mehreren Komponenten kombiniert oder in mehrere Komponenten getrennt werden können. Man wird erkennen, dass die Prozesse unter Verwendung verschiedener Programmierungslösungsansätze implementiert werden können, z. B. unter Verwendung von Maschinensprache-, verfahrensorientierten, objektorientierten und/oder Künstliche-Intelligenz-Techniken.
  • 7 veranschaulicht ein beispielhaftes Verfahren 700, das einem Konfigurieren eines Computersystems zugeordnet ist, das mit einem Trapmodusregister, mehreren Adressregistern und mehreren Unterbrechungsvektortabellen konfiguriert ist. Bei einem Beispiel kann das Verfahren 700 von einer Firmware (z. B. Initialisierungslogik) vor einem Betriebssystem betrieben werden, das mit den konfigurierten Trapregister-Bootvorgängen interagiert. Somit kann das Verfahren 700 bei einem Beispiel ein Erzeugen eines Signals umfassen, das eine Bootlogik dahingehend steuert, einen Betriebssystem-Bootvorgang einzuleiten.
  • Das Verfahren 700 kann bei 710 ein dahingehendes Konfigurieren eines Trapmodusregisters umfassen, ein Adressregister auszuwählen, um die Adresse einer Unterbrechungsvektortabelle zumindest teilweise auf der Basis eines Traptyps zu liefern. Beispielsweise kann ein Trapmodusregister wirksam mit einem Satz von Adressregistern verbunden sein. Auf der Basis eines Traptyps kann das Trapmodusregister bestimmen, von welchem des Satzes von Adressregistern eine Unterbrechungsvektortabellenadresse wiedergewonnen werden soll. Ein Konfigurieren eines Trapmodusregisters kann beispielsweise ein Beziehen eines Traptyps auf ein Adressregister umfassen. Zusätzlich und/oder alternativ dazu kann ein Konfigurieren eines Trapmodusregisters ein selektives Beziehen eines Sicherer-Modus-Übergang-Indikators mit einem Traptyp umfassen. Desgleichen kann ein Konfigurieren eines Trapmodusregisters ein selektives Beziehen eines deaktivierten Indikators mit einem Traptyp und/oder ein selektives Beziehen eines Arbeite-in-Sicherem-Modus-Indikators mit einem Traptyp umfassen.
  • Das Verfahren 700 kann bei 720 ferner ein dahingehendes Konfigurieren einer Unterbrechungsvektortabelle umfassen, ein Lokalisieren einer Unterbrechungsbehandlungsroutine zu ermöglichen. Bei einem Beispiel kann die Unterbrechungsbehandlungsroutine dazu konfiguriert sein, Unterbrechungen zu handhaben, die einer Vorrichtungsvirtualisierung zugeordnet sind. Obwohl Unterbrechungen beschrieben sind, muss man verstehen, dass auch Traps gehandhabt werden können. Ein Konfigurieren einer Unterbrechungsvektortabelle kann beispielsweise ein Festlegen eines Satzes von Unterbrechungsbehandlungsroutine-Eintrittspunkten in einer Unterbrechungsvektortabelle, ein Festlegen eines Satzes von Unterbrechungsbehandlungsroutinen in einer Unterbrechungsvektortabelle usw. umfassen.
  • Bei 730 kann das Verfahren 700 ferner ein dahingehendes Konfigurieren eines Adressregisters umfassen, ein Lokalisieren einer Unterbrechungsbehandlungsroutine, die einer Unterbrechungsvektortabelle zugeordnet ist, zu ermöglichen. Ein Konfigurieren eines Adressregisters kann ein Speichern, in dem Adressregister, einer Adresse umfassen, die einer Unterbrechungsvektortabelle zugeordnet ist und die die Unterbrechungsvektortabelle auf das Adressregister bezieht.
  • Bei 740 kann das Verfahren 700 ferner ein Signalisieren, gegenüber einem Betriebssystem, umfassen, dass die Trapmodusregisterkonfiguration, die Unterbrechungsvektortabellenkonfiguration und die Adressregisterkonfiguration abgeschlossen ist. Dieses Signal kann es einem Betriebssystem ermöglichen, beispielsweise seine Bootvorgänge zu beginnen. Ein Verzögern der Signalisierung bis 740 kann z. B. ein Trennen eines Virtualisierungssystemcodes von einem Betriebssystemcode ermöglichen.
  • Obwohl 7 verschiedene Aktionen veranschaulicht, die in Serie auftreten, muss man erkennen, dass verschiedene in 7 veranschaulichte Aktionen im Wesentlichen parallel erfolgen könnten. Veranschaulichungshalber könnte ein erster Prozess ein Trapmodusregister konfigurieren, ein zweiter Prozess könnte eine Unterbrechungsvektortabelle und ein Adressregister konfigurieren, und ein dritter Prozess könnte einem Betriebssystem signalisieren. Obwohl drei Prozesse beschrieben sind, muss man verstehen, dass eine größere und/oder kleinere Anzahl von Prozessen verwendet werden könnte und dass unaufwendige Prozesse, regelmäßige Prozesse, Teilprozesse und andere Lösungsansätze verwendet werden könnten. Man muss verstehen, dass andere beispielhafte Verfahren in manchen Fällen auch Aktionen umfassen können, die im Wesentlichen parallel erfolgen.
  • Bei einem Beispiel können zusätzliche Konfigurationen erfolgen. Beispielsweise kann eine virtuelle Vorrichtung bzw, können virtuelle Vorrichtungen so definiert sein, dass ihre Adressen in einer Bandbreite von nicht-implementierten Adressen und/oder in einer Trap-fähigen Adressbandbreite liegen. Somit kann eine Trap-fähige Adressbandbreite konfiguriert sein. Ferner kann ein Virtuelle-Vorrichtung-Treiber-Eintrittspunkt für die virtuelle Vorrichtung in die Unterbrechungsvektortabelle konfiguriert sein.
  • 8 veranschaulicht ein Verfahren 800, das einem Handhaben von Unterbrechungen in einem Computersystem zugeordnet ist, das mit einem Trapmodusregister, mehreren Adressregistern und mehreren Vektortabellen konfiguriert ist. 12 veranschaulicht ein weiteres Beispiel des Verfahrens 800, das zusätzliche Aktionen umfasst. Bei 810 können Konfigurationen und Initialisierungen wie die bei Verfahren 700 (7) durchgeführten durchgeführt werden. Beispielsweise können ein Trapmodusregister, Adressregister, Unterbrechungsvektortabellen usw, initialisiert werden. Bei 820 kann an ein Betriebssystem ein Signal gesandt werden, dass die Konfigurationen von 810 abgeschlossen sind. Das Signal kann bewirken, dass das Betriebssystem hochgefahren bzw. gebootet wird. Der Prozess des Hochfahrens des Betriebssystems kann beispielsweise ein Initialisieren eines Adressre gisters, einer Unterbrechungsvektortabelle usw. umfassen. Dadurch, dass dem Betriebssystem das Signal geliefert wird, nachdem die Konfigurationen abgeschlossen sind, kann ein Code (z. B. Virtualisierungscode), der den Konfigurationen und Initialisierungen von 810 zugeordnet ist, von einem Betriebssystem separat gehalten und in manchen Fällen vor demselben geschützt werden. Dies kann ermöglichen, ein Virtualisierungssystem für ein Betriebssystem und/oder einen Prozessor zu liefern, das bzw. der ursprünglich nicht dazu entworfen wurde, ein Virtualisierungssystem aufzuweisen. Desgleichen kann dies ermöglichen, Systeme, wie z. B. ein Fehlerbeseitigungssystem, ein Registrierungssystem usw., zu liefern, die dem Betriebssystem und/oder Prozessor bisher eventuell nicht zur Verfügung standen.
  • Das Verfahren 800 kann bei 830 auch ein Erfassen eines Traps umfassen. Der Trap kann beispielsweise eine erste Art von Unterbrechung sein, die durch Unterbrechungsbehandlungsroutinen, die einem ersten Adressregister und einer ersten Unterbrechungsvektortabelle zugeordnet sind, gehandhabt wird. Der Trap kann beispielsweise auch eine zweite Art Unterbrechung sein, die durch Unterbrechungsbehandlungsroutinen gehandhabt wird, die einem eines Satzes von zweiten Adressregistern und einem eines Satzes von zweiten Unterbrechungsvektortabellen zugeordnet sind. Somit kann bei 840 ein Adressregister dazu ausgewählt werden, eine Adresse (z. B. Unterbrechungsvektortabellenadresse) zu liefern. Welches Adressregister ausgewählt wird, kann zumindest teilweise von dem bei 830 erfassten Traptyp abhängen. Nachdem das Adressregister gewählt wurde, kann eine Unterbrechungsbehandlungsroutine lokalisiert werden, die zumindest teilweise auf der ausgewählten Adresse und dem Unterbrechungstyp beruht.
  • Bei einem Beispiel kann die Verarbeitung bei 860 fortgesetzt werden, wenn die Unterbrechung durch ein Virtualisierungssystem gehandhabt werden kann. Bei 860 kann eine weitere Runde oder können weitere Runden einer Adressregis terauswahl erfolgen. Bei manchen Beispielen kann das bereits ausgewählte Adressregister das ausgewählte Adressregister bleiben. Bei anderen Beispielen, bei denen mehrere Virtualisierungsebenen vorliegen, kann auf eine Serie von Adressregistern zugegriffen werden, bevor die Adresse einer Unterbrechungsvektortabelle lokalisiert wird. Bei einem Beispiel, wenn die Unterbrechung ein Nicht-Implementierte-Adresse-Trap ist, kann das Verfahren 800 bei 860 ein Auswählen eines Adressregisters umfassen, das für das Betriebssystem unzugänglich ist, um eine Unterbrechungsvektortabellenadresse zu liefern. Zusätzlich kann die Unterbrechungsvektortabelle für das Betriebssystem unzugänglich sein. Die Unterbrechungsvektortabelle kann ein Lokalisieren, bei 870, einer durch eine Virtualisierungsfirmware gelieferte Unterbrechungsbehandlungsroutine ermöglichen. Die Firmware und/oder die Unterbrechungsbehandlungsroutine können für das Betriebssystem unzugänglich sein. Bei 880 kann ein Virtuelle-Vorrichtung-Treiber die Unterbrechung für das Virtualisierungssystem handhaben. Allgemeiner gesagt kann, nachdem bei 860 ein Adressregister ausgewählt wurde, eine Unterbrechungsbehandlungsroutine bei 870 lokalisiert werden und anschließend die Unterbrechung bei 880 handhaben. Bei 890 kann eine Bestimmung bezüglich dessen durchgeführt werden, ob ein weiterer Trap verarbeitet werden soll. Wenn die Bestimmung Ja lautet, kann die Verarbeitung zu 830 zurückkehren, andernfalls kann die Trapverarbeitung enden.
  • Wie bei 12 veranschaulicht ist, kann bei einem Beispiel, wenn die Unterbrechung durch ein Betriebssystem gehandhabt werden kann, die Verarbeitung bei 850 fortgesetzt werden, wo eine Steuerung an ein Betriebssystem und/oder eine Unterbrechungsbehandlungsroutine übertragen wird, die für das Betriebssystem zugänglich ist und/oder durch dasselbe verwaltet wird. Bei dem Beispiel kann das Verfahren 800 bei 810 auch ein Konfigurieren einer virtuellen Vorrichtung und eine Erstellung einer Beschreibung der virtuellen Vorrichtung umfassen, die dem Betriebssystem zur Verfügung steht, dem bei 820 signalisiert wird. Dann, bei 830, wenn ein der virtuellen Vorrichtung zugeordneter Trap erfasst wird, kann das Verfahren 800 bei 840 ein Auswählen eines Adressregisters umfassen, das einem Verarbeiten einer Unterbrechung für die virtuelle Vorrichtung zugeordnet ist. Wie oben beschrieben wurde, kann bei Virtualisierungssystemen mit mehreren Umwegs- und/oder Virtualisierungsebenen auf eine Serie von Adressregistern zugegriffen werden. Schließlich wird bei 860 ein Adressregister mit einer Adresse einer Unterbrechungsbehandlungsroutine lokalisiert. Dann kann bei 870 eine durch eine Virtualisierungsfirmware gelieferte Unterbrechungsbehandlungsroutine lokalisiert werden, wo die Unterbrechungsbehandlungsroutine dazu konfiguriert ist, Unterbrechungen für die virtuelle Vorrichtung zu handhaben. Bei 880 kann dann der Virtuelle-Vorrichtung-Treiber die Unterbrechung handhaben.
  • Bei einem weiteren Beispiel können die Initialisierungen und Konfigurationen von 810 ein Festlegen einer Trap-fähigen Adressbandbreite umfassen. Auf ein Erfassen eines Traps bei 830 hin, das einem Zugreifen auf eine Speicherstelle in der Trap-fähigen Adressbandbreite zugeordnet ist, kann das Verfahren 800 bei 840 ein Auswählen eines Adressregisters umfassen, das einem Verarbeiten einer Unterbrechung für die Trap-fähige Adressbandbreite zugeordnet ist. Bei 870 kann das Verfahren 800 dann ein Lokalisieren einer durch eine Virtualisierungsfirmware gelieferten Unterbrechungsbehandlungsroutine umfassen, wo die Unterbrechungsbehandlungsroutine dazu konfiguriert ist, einen Trap für die Trap-fähige Adressbandbreite zu handhaben. Bei 880 kann die Unterbrechungsbehandlungsroutine dann in der Firmware ausgeführt werden, um die Unterbrechung zu handhaben.
  • Bei einem Beispiel werden Methodologien als durch einen Prozessor ausführbare Befehle und/oder Operationen implementiert, die auf einem computerlesbaren Medium vorgesehen sind. Somit kann ein computerlesbares Medium bei einem Beispiel durch einen Prozessor ausführbare Befehle spei chern, die wirksam sind, um ein Verfahren auszuführen, das ein dahingehendes Konfigurieren eines Trapmodusregisters umfasst, eines eines Satzes von Adressregistern auszuwählen, um eine Adresse einer Unterbrechungsvektortabelle zu liefern. Das ausgewählte Adressregister kann zumindest teilweise auf der Basis eines Traptyps bestimmt werden, der an dem Trapmodusregister erfasst wird. Das Verfahren kann auch ein Konfigurieren zumindest einer Unterbrechungsvektortabelle dahingehend umfassen, ein Lokalisieren einer Unterbrechungsbehandlungsroutine zu ermöglichen, die dazu konfiguriert ist, eine einer Vorrichtungsvirtualisierung zugeordnete Unterbrechung zu handhaben. Das Verfahren kann ferner ein Konfigurieren zumindest eines Adressregisters dahingehend umfassen, ein Lokalisieren einer Unterbrechungsbehandlungsroutine, die einer Unterbrechungsvektortabelle zugeordnet ist, zu ermöglichen. Das Verfahren kann ferner ein Signalisieren, gegenüber einem Betriebssystem, dass die Trapmodusregisterkonfiguration, die Unterbrechungsvektortabellenkonfiguration und die Adressregisterkonfiguration abgeschlossen ist, umfassen. Bei einem anderen Beispiel kann das Verfahren ferner ein Erfassen eines Traps, ein Auswählen eines Adressregisters, um eine Unterbrechungsvektortabellenadresse zu liefern, die zumindest teilweise auf dem Traptyp beruht, und ein Lokalisieren einer Unterbrechungsbehandlungsroutine, die zumindest teilweise auf der durch das ausgewählte Adressregister bereitgestellten Unterbrechungsvektortabellenadresse beruht, umfassen. Obwohl das obige Verfahren als an einem computerlesbaren Medium bereitgestellt beschrieben ist, ist zu verstehen, dass andere, hierin beschriebene beispielhafte Verfahren ebenfalls an einem computerlesbaren Medium vorgesehen sein können.
  • 9 veranschaulicht einen Computer 900, der einen Prozessor 902, einen Speicher 904 und Eingangs-/Ausgangstore 910 umfasst, die wirksam durch einen Bus 908 verbunden sind. Bei einem Beispiel kann der Computer 900 eine Trapmodusregisterlogik 930 umfassen, die dazu konfiguriert ist, ein Zugreifen auf ein Trapmodusregister, mehrere alternative Adressregister und mehrere alternative Unterbrechungsvektortabellen zu ermöglichen. Obwohl die Logik 930 als wirksam mit dem Bus 908 verbunden veranschaulicht ist, kann sie bei manchen Beispielen in dem Prozessor 902 implementiert sein und/oder direkter mit demselben verbunden sein.
  • Die Trapmodusregisterlogik 930, ob sie im Computer 900 als Hardware, Firmware, Software und/oder als Kombination derselben implementiert ist, kann ein Mittel zum Konfigurieren und/oder Initialisieren von Abschnitten eines Computersystems liefern, das mit einem Trapmodusregister, mehreren Unterbrechungsvektoradressregistern und mehreren Unterbrechungsvektortabellen konfiguriert ist. Die Trapmodusregisterlogik 930 kann auch ein Mittel zum Erfassen eines Nicht-Implementierte-Adresse-Traps, der dem Trapmodusregister präsentiert wird, und ein Mittel zum selektiven Aufrufen einer Unterbrechungsbehandlungsroutine, die einem Handhaben eines Nicht-Implementierte-Adresse-Traps zugeordnet ist, liefern. Bei einem Beispiel kann die Unterbrechungsbehandlungsroutine einem Eintrag in einer der Unterbrechungsvektortabellen zugeordnet sein. Zusätzlich kann auf eine Unterbrechungsvektortabelle durch ein Unterbrechungsvektorregister Bezug genommen werden. Somit ermöglicht die Trapmodusregisterlogik 930 ein Versorgen des Prozessors 902 mit beispielsweise einem externen Virtualisierungssystem.
  • Der Prozessor 902 kann eine Vielzahl verschiedener Prozessoren sein, einschließlich einer Dual-Mikroprozessor- und anderer Multi-Prozessor-Architekturen. Der Speicher 904 kann einen flüchtigen Speicher und/oder einen nicht-flüchtigen Speicher umfassen. Der nicht-flüchtige Speicher kann ROM, PROM, EPROM, EEPROM und dergleichen umfassen, ist aber nicht auf diese beschränkt. Der flüchtige Speicher kann beispielsweise RAM, synchronen RAM (SRAM), dynamischen RAM (DRAM), synchronen DRAM (SDRAM), Doppeldatenrate-SDRAM (DDR SDRAM) und Direkt-RAM-Bus-RAM (DRRAM) umfassen.
  • Eine Platte 906 kann beispielsweise über eine Eingangs-/Ausgangsschnittstelle (z. B. Karte, Vorrichtung) 918 und ein Eingangs-/Ausgangstor 910 wirksam mit dem Computer 900 verbunden sein. Die Platte 906 kann Vorrichtungen wie ein Magnetplattenlaufwerk, ein Festkörperplattenlaufwerk, ein Floppy-Plattenlaufwerk, ein Bandlaufwerk, ein Zip-Laufwerk, eine Flash-Speicherkarte und/oder einen Speicherstift umfassen, ist jedoch nicht auf diese beschränkt. Ferner kann die Platte 906 optische Laufwerke wie einen CD-ROM, ein Laufwerk für bespielbare CDs (CD-R-Laufwerk), ein Laufwerk für wiederbeschreibbare CDs (CD-RW-Laufwerk) und/oder ein Digitalvideo-ROM-Laufwerk (DVD ROM) umfassen. Der Speicher 904 kann beispielsweise Prozesse 914 und/oder Daten 916 speichern. Die Platte 906 und/oder der Speicher 904 können ein Betriebssystem speichern, das Ressourcen des Computers 900 steuert und zuweist.
  • Der Bus 908 kann eine Einzelinternbusverbindungsarchitektur und/oder andere Bus- oder Netzarchitekturen sein. Obwohl ein einzelner Bus veranschaulicht ist, muss man erkennen, dass der Computer 900 unter Verwendung anderer Busse, die nicht veranschaulicht sind (z. B. PCIE, SATA, Infiniband, 1394, USB, Ethernet), mit verschiedenen Vorrichtungen, Logiken und Peripheriegeräten kommunizieren kann. Der Bus 908 kann einer einer Vielzahl von Typen sein, einschließlich, aber nicht ausschließlich, eines Speicherbusses oder einer Speichersteuerung, eines Peripheriebusses oder eines externen Busses, eines Kreuzschienenschalters und/oder eines lokalen Busses. Der lokale Bus kann ein Industriestandardarchitektur-Bus (ISA-Bus), ein Mikrokanal-Architektur-Bus (MSA-Bus), ein erweiterter ISA-Bus (EISA), ein Peripheriekomponentenverbindungsbus (PCI-Bus), ein universeller serieller Bus (USB-Bus) und ein Kleincomputer-Schnittstelle-Bus (SCSI-Bus) sein, ist aber nicht auf diese beschränkt.
  • Der Computer 900 kann über Eingangs-/Ausgangsschnittstellen 918 und Eingangs-/Ausgangstore 910 mit Eingabe-/Ausgabevorrichtungen interagieren. Eingabe-/Ausgabevorrichtungen können eine Tastatur, ein Mikrophon, eine Zeige- und Auswahlvorrichtung, Kameras, Videokarten, Anzeigen, die Platte 906, Netzwerkvorrichtungen 920 und dergleichen umfassen, sind aber nicht auf diese beschränkt. Die Eingangs-/Ausgangstore 910 können serielle Tore, parallele Tore und USB-Tore umfassen, sind aber nicht auf diese beschränkt.
  • Der Computer 900 kann in einer Netzwerkumgebung arbeiten und kann somit über die Eingangs-/Ausgangsschnittstellen 918 und/oder die Eingangs-/Ausgangstore 910 mit Netzwerkvorrichtungen 920 verbunden sein. Durch die Netzwerkvorrichtungen 920 kann der Computer 900 mit einem Netzwerkinteragieren. Durch das Netzwerk kann der Computer 900 auf logische Weise mit entfernten Computern verbunden sein. Die Netzwerke, mit denen der Computer 900 interagieren kann, umfassen ein lokales Netzwerk (LAN), ein Weitverkehrsnetzwerk (WAN) und andere Netzwerke, sind aber nicht auf diese beschränkt. Die Netzwerkvorrichtungen 920 können mit LAN-Technologien verbunden sein, einschließlich, aber nicht ausschließlich, einer Datenschnittstelle an Glasfaser-Verteilnetz (FDDI), einer Datenschnittstelle an Kupfer-Verteilnetz (CDDI), Ethernet (IEEE 802.3), eines Token-Rings (IEEE 802.5), einer drahtlosen Computerkommunikation (IEEE 802.11), Bluetooth (IEEE 802.15.1), Zigbee (IEEE 802.15.4) und dergleichen. Desgleichen können die Netzwerkvorrichtungen 920 mit WAN-Technologien verbunden sein, einschließlich, aber nicht ausschließlich, Punkt-zu-Punkt-Verknüpfungen, Schaltungsschaltnetzwerke wie integrierte digitale Fernmeldenetze (ISDN), Paketschaltnetzwerke und digitaler Teilnehmerleitungen (DSL). Obwohl einzelne Netzwerktypen beschrieben sind, muss man verstehen, dass Kommunikationen mittels, über und/oder durch ein Netzwerk Kombinationen und Mischungen von Kommunikationen umfassen können.
  • Somit kann der Computer 900 bei einem Beispiel ein Computer sein, der mit einem Trapmodusregister, einer Mehrzahl von Unterbrechungsvektoradressregistern und einer Mehrzahl von Unterbrechungsvektortabellen konfiguriert ist. Der Computer 900 kann eine (nicht veranschaulichte) Initialisierungslogik umfassen, die dazu konfiguriert ist, das Trapmodusregister, die Unterbrechungsvektoradressregister und die Unterbrechungsvektortabelle zu initialisieren. Der Computer 900 kann ferner eine Trapverarbeitungslogik umfassen, die dazu konfiguriert ist, dem Trapmodusregister auf das Auftreten eines Traps in dem Computer hin Trapdaten zu liefern, die dazu konfiguriert sind, dem Trapmodusregister ein Auswählen eines Unterbrechungsvektoradressregisters zu ermöglichen und somit ein Lokalisieren einer Trap-Handhabungsvorrichtung zu ermöglichen, die einer Unterbrechungsvektortabelle zugeordnet ist, die dem ausgewählten Unterbrechungsvektoradressregister zugeordnet ist.
  • 10 veranschaulicht eine beispielhafte Bilderzeugungsvorrichtung 1000, die eine Trapmodusregisterlogik 1010 umfasst, die dazu konfiguriert ist, hierin beschriebene beispielhafte Systeme zu implementieren. Die Trapmodusregisterlogik 1010 kann auch dazu konfiguriert sein, ausführbare Verfahren wie die hierin beschriebenen durchzuführen. Bei einem Beispiel kann die Trapmodusregisterlogik 1010 dauerhaft und/oder lösbar an der Bilderzeugungsvorrichtung 1000 angeschlossen sein.
  • Die Bilderzeugungsvorrichtung 1000 kann wiederzugebende Druckdaten empfangen. Somit kann die Bilderzeugungsvorrichtung 1000 auch einen Speicher 1020 umfassen, der dazu konfiguriert ist, Druckdaten zu speichern oder, allgemeiner, zur Bildverarbeitung verwendet zu werden. Die Bilderzeugungsvorrichtung 1000 kann ferner eine Wiedergabelogik 1030 umfassen, die dazu konfiguriert ist, aus Druckdaten ein druckerfertiges Bild zu erzeugen. Die Wiedergabe variiert auf der Basis des Formats der beteiligten Daten und der Art der Bilderzeugungsvorrichtung. Allgemein wandelt die Wiedergabelogik 1030 Hochpegeldaten in ein graphisches Bild zur Anzeige oder zum Drucken um (z. B. das druckfertige Bild). Beispielsweise besteht eine Form in einer Strahlenverfolgung, die ein mathematisches Modell eines dreidimensionalen Objekts oder einer dreidimensionalen Szene nimmt und es in ein Bitabbildungsbild umwandelt. Ein weiteres Beispiel ist der Prozess des Umwandelns von HTML in ein Bild zur Anzeige/zum Drucken. Man muss verstehen, dass die Bilderzeugungsvorrichtung 1000 druckerfertige Daten empfangen kann, die nicht wiedergegeben werden müssen, und somit erscheint die Wiedergabelogik 1030 bei manchen Bilderzeugungsvorrichtungen eventuell nicht.
  • Die Bilderzeugungsvorrichtung 1000 kann auch einen Bilderzeugungsmechanismus 1040 umfassen, der dazu konfiguriert ist, aus dem druckfertigen Bild ein Bild auf einem Druckmedium zu erzeugen. Der Bilderzeugungsmechanismus 1040 kann auf der Basis der Art der Bilderzeugungsvorrichtung 1000 variieren und kann einen Laserbilderzeugungsmechanismus, andere Bilderzeugungsmechanismen auf Tonerbasis, einen Tintenstrahlmechanismus, einen digitalen Bilderzeugungsmechanismus oder eine andere Bilderzeugungsreproduktionsmaschine umfassen. Ein Prozessor 1050 kann enthalten sein, der mit einer Logik implementiert ist, um den Betrieb der Bilderzeugungsvorrichtung 1000 zu steuern. Bei einem Beispiel umfasst der Prozessor 1050 eine Logik, die in der Lage ist, Java-Befehle auszuführen. Andere Komponenten der Bilderzeugungsvorrichtung 1000 sind hierin nicht beschrieben, können jedoch Medienhandhabungs- und -aufbewahrungsmechanismen, Sensoren, Steuerungen und andere Komponenten umfassen, die an dem Bilderzeugungsprozess beteiligt sind.
  • Unter Bezugnahme auf 11 ist eine Anwendungsprogrammierungsschnittstelle (API) 1100 veranschaulicht, die einen Zugriff auf ein Trapmodusregistersystem 1110 liefert. Die API 1100 kann beispielsweise durch einen Programmierer 1120 und/oder einen Prozess 1130 verwendet werden, um einen Zugriff auf eine durch das System 1110 durchgeführte Verarbeitung zu erhalten. Beispielsweise kann ein Programmierer 1120 ein Programm schreiben, um auf das System 1110 zuzugreifen (z. B. seinen Betrieb aufzurufen, seinen Betrieb zu überwachen, seinen Betrieb zu steuern), wo ein Schreiben des Programms durch das Vorliegen der API 1100 ermöglicht wird. Statt dass der Programmierer 1120 das Innenleben des Systems 1110 verstehen muss, muss der Programmierer 1120 lediglich die Schnittstelle mit dem System 1110 lernen. Dies ermöglicht ein Einbetten der Funktionalität des Systems 1110 und ein gleichzeitiges Freilegen dieser Funktionalität.
  • Desgleichen kann die API 1100 dazu verwendet werden, dem System 1110 Datenwerte zu liefern und/oder Datenwerte von dem System 1110 wiederzugewinnen. Beispielsweise kann ein Prozess 1130, der Unterbrechungen für eine virtuelle Vorrichtung verarbeitet, über die API 1100, beispielsweise durch Verwenden eines in der API 1100 vorgesehenen Aufrufs, einen Unterbrechungsbehandlungsroutine-Eintrittspunkt in das System 1110 liefern. Somit kann bei einem Beispiel der API 1100 ein Satz von Anwendungsprogrammierungsschnittstellen auf einem computerlesbaren Medium gespeichert werden. Die Schnittstellen können durch einen Programmierer, eine Computerkomponente, eine Logik usw. verwendet werden, um einen Zugriff auf ein Trapmodusregistersystem 1110 zu erlangen. Die Schnittstellen können eine erste Schnittstelle 1140, die Unterbrechungsvektoradressregisterdaten kommuniziert, eine zweite Schnittstelle 1150, die einen Unterbrechungsvektortabelleneintrag kommuniziert, und eine dritte Schnittstelle 1160, die Trapmodusregister-Konfigurationsdaten, die den Unterbrechungsvektoradressregisterdaten und dem Unterbrechungsvektortabelleneintrag zugeordnet sind, kommuniziert, umfassen, sind aber nicht hierauf beschränkt. Bei einem Beispiel ermöglichen die Trapmodusregister-Konfigurationsdaten ein Auswählen einer Unterbrechungsvektoradresse und ein Lokalisieren eines Unterbrechungsvektortabelleneintrags.
  • Obwohl beispielhafte Systeme, Verfahren usw. durch das Beschreiben von Beispielen veranschaulicht wurden und obwohl die Beispiele in beträchtlichem Detail beschrieben wurden, haben die Anmelder nicht die Absicht, den Schutzumfang der beigefügten Patentansprüche auf derartige Einzelheiten einzuschränken oder in irgendeiner Weise zu begrenzen. Selbstverständlich ist es nicht möglich, jede denkbare Kombination von Komponenten oder Methodologien für die Zwecke des Beschreibens der Systeme, Verfahren usw., die hierin beschrieben sind, zu beschreiben. Fachleuten werden ohne weiteres zusätzliche Vorteile und Modifikationen einleuchten. Somit ist die Erfindung nicht auf die gezeigten und beschriebenen spezifischen Einzelheiten, die repräsentativen Vorrichtungen und veranschaulichenden Beispiele beschränkt. Somit ist beabsichtigt, dass diese Anmeldung Abänderungen, Modifikationen und Variationen, die in den Schutzumfang der beigefügten Patentansprüche fallen, einschließt. Ferner soll die vorstehende Beschreibung den Schutzumfang der Erfindung nicht einschränken. Vielmehr soll der Schutzumfang der Erfindung durch die beigefügten Patentansprüche und ihre Äquivalente bestimmt werden.
  • In dem Umfang, wie der Begriff „umfasst" oder „umfassen" in der ausführlichen Beschreibung oder in den Patentansprüchen verwendet wird, soll er auf ähnliche Weise inklusiv sein wie der Begriff „aufweisen", wie dieser Begriff interpretiert wird, wenn er als Übergangswort in einem Patentanspruch verwendet wird. Ferner soll in dem Umfang, wie der Begriff „oder" in der ausführlichen Beschreibung oder den Patentansprüchen verwendet wird (z. B. A oder B), derselbe „A oder B oder beide" bedeuten. Wenn die Anmelder beabsichtigen, „lediglich A oder B, jedoch nicht beide" anzugeben, dann wird der Begriff „lediglich A oder B, jedoch nicht beide" verwendet. Somit ist die Verwendung des Begriffs „oder" hierin die inklusive und nicht die exklusive Verwen dung. Siehe Bryan A. Garner, A Dictionary of Modern Legal Usage 624 (2. Ausgabe 1995).

Claims (44)

  1. System, das folgende Merkmale aufweist: eine erste Unterbrechungsvektortabelle (321), die dazu konfiguriert ist, ein Lokalisieren einer Unterbrechungsbehandlungsroutine, die einem Handhaben eines eines ersten Satzes von Unterbrechungstypen zugeordnet ist, zu ermöglichen; ein erstes Adressregister (320), das dazu konfiguriert ist, eine Adresse zu liefern, die der ersten Unterbrechungsvektortabelle (321) zugeordnet ist, und ein Lokalisieren eines Eintrags in der ersten Unterbrechungsvektortabelle (321) zu ermöglichen; eine zweite Unterbrechungsvektortabelle (331), die dazu konfiguriert ist, ein Lokalisieren einer Unterbrechungsbehandlungsroutine, die einem Handhaben eines eines zweiten Satzes von Unterbrechungstypen zugeordnet ist, zu ermöglichen; ein zweites Adressregister (330), das dazu konfiguriert ist, eine Adresse, die der zweiten Unterbrechungsvektortabelle (331) zugeordnet ist, zu liefern und ein Lokalisieren eines Eintrags in der zweiten Unterbrechungsvektortabelle (331) zu ermöglichen; ein Trapmodusregister (310), das wirksam mit einem Computersystem verbunden ist, wobei das Trapmodusregister (310) dazu konfiguriert ist, auf das Auftreten eines Traps in dem Computersystem hin Trapdaten zu empfangen, die dem Trap zugeordnet sind, und ein Auswählen zwischen dem ersten Adressregister (320) und dem zweiten Adressregister (330) zu ermöglichen, um eine Adresse zu liefern, die einer Unterbrechungsvektortabelle zugeordnet ist, zumindest teilweise auf der Basis der Trapdaten; und eine Initialisierungslogik (300), die dazu konfiguriert ist, das Trapmodusregister (310), die zweite Unterbrechungsvektortabelle (331) und das zweite Adressregister (330) zu initialisieren und ein Signal zum zumindest teilweisen Steuern einer Betriebssystem-Initialisierungslogik, die wirksam mit dem Computersystem verbunden ist, zu liefern.
  2. System gemäß Anspruch 1, bei dem die Trapdaten eine(n) oder mehr eines Traptyp-Identifizierers und einer Adresse, die einem oder mehreren einer Vorrichtung, die für das Bewirken des Traps verantwortlich ist, und einer Speicherstelle, die für das Bewirken des Traps verantwortlich ist, zugeordnet ist, umfasst.
  3. System gemäß Anspruch 1 oder 2, bei dem der Trap ein Nicht-Implementierte-Adresse-Trap sein kann und bei dem ein Nicht-Implementierte-Adresse-Trap ein Angehöriger des zweiten Satzes von Unterbrechungstypen ist und das Trapmodusregister dahingehend steuert, das zweite Adressregister (330) auszuwählen.
  4. System gemäß Anspruch 3, bei dem der Nicht-Implementierte-Adresse-Trap durch einen Versuch seitens des Computersystems, auf eine einer Trap-fähigen Adressbandbreite zugeordnete Adresse zuzugreifen, erzeugt werden kann.
  5. System gemäß Anspruch 3, bei dem der Nicht-Implementierte-Adresse-Trap durch eine Aktion erzeugt werden kann, die einer virtuellen Vorrichtung zugeordnet ist, die wirksam mit dem Computersystem verbunden ist.
  6. System gemäß einem der Ansprüche 1 bis 5, bei dem die erste Unterbrechungsvektortabelle (321) durch ein Betriebssystem (340) initialisiert wird und für ein Be triebssystem zugänglich ist, das dazu konfiguriert ist, auf dem Computersystem zu laufen und durch die Betriebssystem-Initialisierungslogik initialisiert zu werden.
  7. System gemäß Anspruch 6, bei dem die erste Unterbrechungsvektortabelle (321) ein Lokalisieren einer Unterbrechungsbehandlungsroutine ermöglicht, indem einer oder mehr eines Satz von Unterbrechungsbehandlungsroutine-Eintrittspunkten und eines Satzes von Unterbrechungsbehandlungsroutinen gespeichert werden.
  8. System gemäß Anspruch 7, bei dem die erste Unterbrechungsvektortabelle (321) durch ein Element der Trapdaten indexiert werden kann.
  9. Das System gemäß einem der Ansprüche 6 bis 8, bei dem die zweite Unterbrechungsvektortabelle (331) durch die Initialisierungslogik (300) initialisiert wird und für ein Betriebssystem (340), das durch die Betriebssystem-Initialisierungslogik initialisiert wird, unzugänglich ist.
  10. System gemäß Anspruch 9, bei dem die zweite Unterbrechungsvektortabelle (331) ein Lokalisieren einer Unterbrechungsbehandlungsroutine ermöglicht, indem einer oder mehr eines Satz von Unterbrechungsbehandlungsroutine-Eintrittspunkten und eines Satzes von Unterbrechungsbehandlungsroutinen gespeichert werden.
  11. Das System gemäß Anspruch 10, bei dem die zweite Unterbrechungsvektortabelle (331) durch ein Element der Trapdaten indexiert werden kann.
  12. Das System gemäß einem der Ansprüche 1 bis 11, das einen Datenspeicher umfasst, der dazu konfiguriert ist, eine Trap-fähige Adressbandbreite zu speichern.
  13. Das System gemäß Anspruch 12, wobei die Initialisierungslogik (300) dazu konfiguriert ist, eine Trap-fähige Adressbandbreite in dem Datenspeicher zu speichern, und wo ein Versuch seitens des Computersystems, auf eine Adresse in der Trap-fähigen Adressbandbreite zuzugreifen, einen Nicht-Implementierte-Adresse-Trap bewirkt.
  14. System gemäß einem der Ansprüche 1 bis 13, wobei die Initialisierungslogik (300) dazu konfiguriert ist, eine virtuelle Vorrichtung zu definieren und Informationen bezüglich der virtuellen Vorrichtung an das durch die Betriebssystem-Initialisierungslogik initialisierte Betriebssystem (340) zu liefern.
  15. System gemäß einem der Ansprüche 1 bis 14, wobei die Initialisierungslogik (300) dazu konfiguriert ist, das Trapmodusregister (310) dahingehend zu initialisieren, das erste Adressregister (320) auszuwählen, wenn der Trap ein Angehöriger des ersten Satzes von Unterbrechungstypen ist, und das zweite Adressregister (330) auszuwählen, wenn der Trap ein Angehöriger des zweiten Satzes von Unterbrechungstypen ist.
  16. System gemäß Anspruch 15, wobei der zweite Satz von Unterbrechungstypen einen Nicht-Implementierte-Adresse-Trap umfasst.
  17. System gemäß Anspruch 16, wobei die Initialisierungslogik (300) dazu konfiguriert ist, die zweite Unterbrechungsvektortabelle (331) mit einem oder mehreren eines Satzes von Unterbrechungsbehandlungsroutine-Eintrittspunkten und eines Satzes von Unterbrechungsbehandlungsroutinen zu initialisieren, wo der Satz von Unterbrechungsbehandlungsroutinen einen Abschnitt eines Virtualisierungssystems umfasst und wo der Satz von Unterbrechungsbehandlungsroutinen in der Initialisierungslogik (300) angeordnet ist.
  18. System gemäß Anspruch 17, wobei die Initialisierungslogik (300) dazu konfiguriert ist, das zweite Adressregister (330) mit der Adresse der zweiten Unterbrechungsvektortabelle (331) zu initialisieren.
  19. System gemäß Anspruch 18, wobei die Initialisierungslogik (300) dazu konfiguriert ist, das Signal nach dem Initialisieren des Trapmodusregisters (310), der zweiten Unterbrechungsvektortabelle (331) und des zweiten Adressregisters (330) der Betriebssystem-Initialisierungslogik zu liefern, wobei das Signal dazu konfiguriert ist, ein durch die Betriebssystem-Initialisierungslogik initialisiertes Betriebssystem (340) zu veranlassen, den Betrieb zu beginnen.
  20. System gemäß einem der Ansprüche 1 bis 19, das eine Sicherer-Modus-Logik (450) aufweist, die dazu konfiguriert ist, einen Zugriff auf eine dem Computersystem zugeordnete geschützte Adressbandbreite zu steuern, wo eine Speicherstelle in der geschützten Adressbandbreite für die Initialisierungslogik (300) zugänglich und für ein Betriebssystem (340), das auf dem Computersystem läuft, unzugänglich ist.
  21. System gemäß Anspruch 20, bei dem eine(s) oder mehr des Trapmodusregisters (310), des zweiten Adressregisters (330) und der zweiten Unterbrechungsvektortabelle (331) in der geschützten Adressbandbreite angeordnet sind.
  22. System gemäß Anspruch 20 oder 21, wobei das Trapmodusregister (310) folgende Merkmale aufweist: ein erstes Feld (520), das dazu konfiguriert ist, Daten vom Traptyp zu speichern; und ein zweites Feld (540), das dazu konfiguriert ist, Informationen bezüglich dessen zu speichern, ob ein Traptyp einen Prozessor in dem Computersystem dahingehend steuert, in einen sicheren Modus einzutreten.
  23. System gemäß Anspruch 22, wobei das Trapmodusregister (310) folgendes Merkmal aufweist: ein drittes Feld (550), das dazu konfiguriert ist, Informationen bezüglich dessen, ob ein Traptyp aktiviert ist, zu speichern.
  24. System gemäß Anspruch 22, wobei das Trapmodusregister (310) folgendes Merkmal aufweist: ein drittes Feld, das dazu konfiguriert ist, Informationen bezüglich dessen, ob ein Traptyp in dem sicheren Modus gehandhabt werden soll, zu speichern.
  25. System gemäß einem der Ansprüche 1 bis 24, das folgende Merkmale aufweist: einen Übersetzungsseitengriffspuffer (650), der dazu konfiguriert ist, Informationen bezüglich einer physischen/virtuellen Speicherabbildung zu speichern; und eine Übersetzungsseitengriffspufferlogik (660), die dazu konfiguriert ist, in einem Übersetzungsseitengriffspuffereintrag selektiv ein Adressbandbreitenattribut einzustellen.
  26. System gemäß Anspruch 25, wobei die Übersetzungsseitengriffspufferlogik (660) dazu konfiguriert ist, selektiv einen Virtualisierungsprozess aufzurufen, wenn ein Nicht-Implementierte-Adressbandbreite-Trap auftritt.
  27. System, das folgende Merkmale aufweist: eine erste Unterbrechungsvektortabelle (321), die dazu konfiguriert ist, ein Lokalisieren einer Unterbrechungsbehandlungsroutine, die einem Handhaben eines eines ersten Satzes von Unterbrechungstypen zugeordnet ist, zu ermöglichen, wo die erste Unterbrechungsvektortabelle (321) durch ein Betriebssystem, das dazu konfiguriert ist, auf einem Computersystem zu laufen, initialisiert wird und für dasselbe zugänglich ist; ein erstes Adressregister (320), das dazu konfiguriert ist, eine Adresse zu liefern, die der ersten Unterbrechungsvektortabelle (321) zugeordnet ist, und ein Lokalisieren eines Eintrags in der ersten Unterbrechungsvektortabelle (321) zu ermöglichen; eine zweite Unterbrechungsvektortabelle (331), die dazu konfiguriert ist, ein Lokalisieren einer Unterbrechungsbehandlungsroutine, die einem Handhaben eines eines zweiten Satzes von Unterbrechungstypen zugeordnet ist, zu ermöglichen, wo ein Nicht-Implementierte-Adresse-Trap ein Angehöriger des zweiten Satzes von Unterbrechungstypen ist und das Trapmodusregister (310) dahingehend steuert, das zweite Adressregister (330) auszuwählen, wo ein Nicht-Implementierte-Adresse-Trap durch eine(n) oder mehr eines Versuchs seitens des Computersystems, auf eine einer Trap-fähigen Adressbandbreite zugeordnete Adresse zuzugreifen, und einer Aktion, die einer wirksam mit dem Computersystem verbundenen virtuellen Vorrichtung zugeordnet ist, erzeugt werden kann; ein zweites Adressregister (330), das dazu konfiguriert ist, eine Adresse, die der zweiten Unterbrechungsvektortabelle (331) zugeordnet ist, zu liefern und ein Lokalisieren eines Eintrags in der zweiten Unterbrechungsvektortabelle (331) zu ermöglichen; ein Trapmodusregister (310), das wirksam mit einem Computersystem verbunden ist, wobei das Trapmodusregister (310) dazu konfiguriert ist, auf das Auftreten eines Traps in dem Computersystem hin Trapdaten zu empfangen, die dem Trap zugeordnet sind, und ein Auswählen zwischen dem ersten Adressregister (320) und dem zweiten Adressregister (330) zu ermöglichen, um eine Adresse zu liefern, die einer Unterbrechungsvektortabelle zugeordnet ist, zumindest teilweise auf der Basis der Trapdaten, wo die Trapdaten eine(n) oder mehr eines Traptyp-Identifizierers und einer Adresse, die einer oder mehreren einer Vorrichtung, die dafür verantwortlich ist, den Trap zu bewirken, und einer Speicherstelle, die dafür verantwortlich ist, den Trap zu bewirken, zugeordnet ist, umfasst; und eine Initialisierungslogik (300), die dazu konfiguriert ist, das Trapmodusregister (310) dahingehend zu initialisieren, das erste Adressregister (320) auszuwählen, wenn der Trap ein Angehöriger des ersten Satzes von Unterbrechungstypen ist, und das zweite Adressregister (330) auszuwählen, wenn der Trap ein Angehöriger des zweiten Satzes von Unterbrechungstypen ist, die zweite Unterbrechungsvektortabelle (331) mit einem oder mehreren eines Satzes von Unterbrechungsbehandlungsroutine-Eintrittspunkten und eines Satzes von Unterbrechungsbehandlungsroutinen zu initialisieren, wo der Satz von Unterbrechungsbehandlungsroutinen einen Abschnitt eines Virtualisierungssystems aufweist und wo der Satz von Unterbrechungsbehandlungsroutinen in der Initialisierungslogik (300) gespeichert ist, das zweite Adressregister (330) zu initialisieren und ein Signal zum Steuern einer wirksam mit dem Computersystem verbundenen Betriebssystem-Initialisierungs-logik zu liefern; und wo die zweite Unterbrechungsvektortabelle (331) durch die Initialisierungslogik (300) initialisiert wird und für ein durch die Betriebssystem-Initialisierungslogik initialisiertes Betriebssystem (340) unzugänglich ist.
  28. Ein Verfahren, das folgende Schritte aufweist: Konfigurieren eines Trapmodusregisters (310) dahingehend, eines einer Mehrzahl von Adressregistern auszuwählen, um eine Adresse einer einer Mehrzahl von Unterbrechungsvektortabellen zumindest teilweise auf der Basis eines Traptyps zu liefern; Konfigurieren zumindest einer der Mehrzahl von Unterbrechungsvektortabellen dahingehend, ein Lokalisieren einer Unterbrechungsbehandlungsroutine zu ermöglichen, die dazu konfiguriert ist, einen Trap, der einer Vorrichtungsvirtualisierung zugeordnet ist, zu handhaben; Konfigurieren zumindest eines der Mehrzahl von Adressregistern dahingehend, ein Lokalisieren einer Unterbrechungsbehandlungsroutine, die der einen oder den mehreren Unterbrechungsvektortabellen zugeordnet ist, zu ermöglichen; und Signalisieren, gegenüber einem Betriebssystem (340), dass die Trapmodusregisterkonfiguration, die Unterbrechungsvektortabellenkonfiguration und die Adressregisterkonfiguration abgeschlossen sind.
  29. Verfahren gemäß Anspruch 28, bei dem das Konfigurieren des Trapmodusregisters (310) ein Beziehen eines Traptyps auf eines der Mehrzahl von Adressregistern umfasst.
  30. Verfahren gemäß Anspruch 29, bei dem das Konfigurieren des Trapmodusregisters (310) ein selektives Beziehen eines Sicherer-Modus-Übergang-Indikators mit einem Traptyp umfasst.
  31. Verfahren gemäß Anspruch 30, bei dem das Konfigurieren des Trapmodusregisters (310) ein selektives Beziehen eines deaktivierten Indikators mit einem Traptyp umfasst.
  32. Verfahren gemäß Anspruch 31, bei dem das Konfigurieren des Trapmodusregisters (310) ein selektives Beziehen eines Arbeite-in-Sicherem-Modus-Indikators mit einem Traptyp umfasst.
  33. Verfahren gemäß einem der Ansprüche 28 bis 32, bei dem das Konfigurieren einer Unterbrechungsvektortabelle eines oder mehr eines Festlegens eines Satzes von Unterbrechungsbehandlungsroutine-Eintrittspunkten in der Unterbrechungsvektortabelle und eines Festlegens eines Satzes von Unterbrechungsbehandlungsroutinen in der Unterbrechungsvektortabelle umfasst.
  34. Verfahren gemäß einem der Ansprüche 28 bis 33, bei dem das Konfigurieren eines Adressregisters ein Speichern, in dem Adressregister, einer Adresse umfasst, die der Unterbrechungsvektortabelle zugeordnet ist und die die Unterbrechungsvektortabelle auf das Adressregister bezieht.
  35. Verfahren gemäß einem der Ansprüche 28 bis 34, bei dem das Signalisieren, gegenüber einem Betriebssystem (340), ein Liefern eines Signals umfasst, das eine Bootlogik dahingehend steuert, einen Betriebssystem-Bootvorgang einzuleiten.
  36. Verfahren gemäß einem der Ansprüche 28 bis 35, das folgende Schritte umfasst: Erfassen eines Traps; Auswählen eines Adressregisters, um eine Unterbrechungsvektortabellenadresse zumindest teilweise auf der Basis des Traptyps zu liefern; und Lokalisieren einer Unterbrechungsbehandlungsroutine zumindest teilweise auf der Basis der durch das ausgewählte Adressregister gelieferten Unterbrechungsvektortabellenadresse.
  37. Verfahren gemäß Anspruch 36, das folgenden Schritt umfasst: wenn der Traptyp ein Nicht-Implementierte-Adresse-Trap ist, Auswählen eines Adressregisters, das für das Betriebssystem unzugänglich ist, um eine Unterbrechungsvektortabellenadresse zu liefern, wobei die Unterbrechungsvektortabelle für das Betriebssystem (340) unzugänglich ist, und wo die Unterbrechungsvektortabelle ein Lokalisieren einer durch eine Virtualisierungsfirmware gelieferten Unterbrechungsbehandlungsroutine ermöglicht, wo die Firmware und die Unterbrechungsbehandlungsroutine für das Betriebssystem (340) unzugänglich sind.
  38. Verfahren gemäß einem der Ansprüche 28 bis 37, das folgende Schritte umfasst: Konfigurieren einer virtuellen Vorrichtung; Liefern einer Beschreibung der virtuellen Vorrichtung an das Betriebssystem (340); und wenn ein der virtuellen Vorrichtung zugeordneter Trap erfasst wird, Auswählen eines Adressregisters, das einem Verarbeiten eines Traps für die virtuelle Vorrichtung zugeordnet ist, und Lokalisieren einer durch eine Virtualisierungsfirmware gelieferten Unterbrechungsbehandlungsroutine, wo die Unterbrechungsbehandlungsrou tine dazu konfiguriert ist, Unterbrechungen für die virtuelle Vorrichtung zu handhaben.
  39. Verfahren gemäß einem der Ansprüche 28 bis 38, das folgende Schritte umfasst: Festlegen einer Trap-fähigen Adressbandbreite; und auf ein Erfassen eines Traps hin, der einem Zugreifen auf eine Speicherstelle in der Trap-fähigen Adressbandbreite zugeordnet ist, Auswählen eines Adressregisters, das einem Verarbeiten eines Traps für die Trap-fähige Adressbandbreite zugeordnet ist, und Lokalisieren einer durch eine Virtualisierungsfirmware gelieferten Unterbrechungsbehandlungsroutine, wo die Unterbrechungsbehandlungsroutine dazu konfiguriert ist, einen Trap für die Trap-fähige Adressbandbreite zu handhaben.
  40. Ein Verfahren, das folgende Schritte aufweist: Konfigurieren eines Trapmodusregisters (310) dahingehend, eines einer Mehrzahl von Adressregistern auszuwählen, um eine Adresse einer einer Mehrzahl von Unterbrechungsvektortabellen zumindest teilweise auf der Basis eines Traptyps zu liefern, wo das Konfigurieren des Trapmodusregisters (310) ein Beziehen eines Traptyps auf ein Adressregister, ein selektives Beziehen eines Sicherer-Modus-Übergang-Indikators mit einem Traptyp und ein selektives Beziehen eines deaktivierten Indikators mit einem Traptyp umfasst; Konfigurieren zumindest einer der Mehrzahl von Unterbrechungsvektortabellen dahingehend, ein Lokalisieren einer Unterbrechungsbehandlungsroutine zu ermöglichen, die dazu konfiguriert ist, einen Trap, der einer Vorrichtungsvirtualisierung zugeordnet ist, zu handhaben, wo das Konfigurieren einer Unterbrechungsvektortabelle eines oder mehr eines Festlegens eines Satzes von Unterbrechungsbehandlungsroutine-Eintrittspunkten in der Unterbrechungsvektortabelle und eines Festlegens eines Satzes von Unterbrechungsbehandlungsroutinen in der Unterbrechungsvektortabelle umfasst; Konfigurieren zumindest eines der Mehrzahl von Adressregistern dahingehend, ein Lokalisieren einer Unterbrechungsbehandlungsroutine, die der einen oder den mehreren Unterbrechungsvektortabellen zugeordnet ist, zu ermöglichen, wo das Konfigurieren des Adressregisters ein Speichern, in dem Adressregister, einer Adresse umfasst, die der Unterbrechungsvektortabelle zugeordnet ist und die die Unterbrechungsvektortabelle auf das Adressregister bezieht; Signalisieren, gegenüber einem Betriebssystem (340), dass die Trapmodusregisterkonfiguration, die Unterbrechungsvektortabellenkonfiguration und die Adressregisterkonfiguration abgeschlossen sind, wo das Signalisieren, gegenüber einem Betriebssystem (340), ein Liefern eines Signals umfasst, das eine Bootlogik dahingehend steuert, einen Betriebssystem-Bootvorgang einzuleiten; Erfassen eines Traps; Auswählen eines Adressregisters, um eine Unterbrechungsvektortabellenadresse zumindest teilweise auf der Basis des Traptyps zu liefern; und Lokalisieren einer Unterbrechungsbehandlungsroutine zumindest teilweise auf der Basis der durch das ausgewählte Adressregister gelieferten Unterbrechungsvektortabellenadresse.
  41. Computerlesbares Medium, das durch einen Prozessor ausführbare Befehle speichert, die wirksam sind, um ein Verfahren durchzuführen, wobei das Verfahren folgende Schritte aufweist: Konfigurieren eines Trapmodusregisters (310) dahingehend, eines einer Mehrzahl von Adressregistern auszuwählen, um eine Adresse einer Unterbrechungsvektortabelle zumindest teilweise auf der Basis eines Traptyps zu liefern; Konfigurieren zumindest einer der Mehrzahl von Unterbrechungsvektortabellen dahingehend, ein Lokalisieren einer Unterbrechungsbehandlungsroutine zu ermöglichen, die dazu konfiguriert ist, einen Trap, der einer Vorrichtungsvirtualisierung zugeordnet ist, zu handhaben; Konfigurieren zumindest eines der Mehrzahl von Adressregistern dahingehend, ein Lokalisieren einer Unterbrechungsbehandlungsroutine, die der einen oder den mehreren Unterbrechungsvektortabellen zugeordnet ist, zu ermöglichen; Signalisieren, gegenüber einem Betriebssystem (340), dass die Trapmodusregisterkonfiguration, die Unterbrechungsvektortabellenkonfiguration und die Adressregisterkonfiguration abgeschlossen sind; Erfassen eines Traps; Auswählen eines Adressregisters, um eine Unterbrechungsvektortabellenadresse zumindest teilweise auf der Basis des Traptyps zu liefern; und Lokalisieren einer Unterbrechungsbehandlungsroutine zumindest teilweise auf der Basis der durch das ausgewählte Adressregister gelieferten Unterbrechungsvektortabellenadresse.
  42. System, das folgende Merkmale aufweist: eine Einrichtung zum Initialisieren eines Computersystems, das mit einem Trapmodusregister (310), einer Mehrzahl von Unterbrechungsvektoradressregistern und einer Mehrzahl von Unterbrechungsvektortabellen konfiguriert ist; eine Einrichtung zum Erfassen eines Nicht-Implementierte-Adresse-Traps, der dem Trapmodusregister (310) präsentiert wird; und eine Einrichtung zum selektiven Aufrufen einer Unterbrechungsbehandlungsroutine, die einem Handhaben eines Nicht-Implementierte-Adresse-Traps zugeordnet ist, wo die Unterbrechungsbehandlungsroutine einem Eintrag in einer der Unterbrechungsvektortabellen zugeordnet ist. und wo auf eine Unterbrechungsvektortabelle durch ein Unterbrechungsvektoradressregister Bezug genommen werden kann.
  43. Ein Satz von Anwendungsprogrammierungsschnittstellen, die auf einem computerlesbaren Medium verkörpert sind, zur Ausführung durch eine Computerkomponente in Verbindung mit einem Steuern eines Systems, das mit einem Trapmodusregister (310), zwei oder mehr Unterbrechungsvektoradressregistern und zwei oder mehr Unterbrechungsvektortabellen konfiguriert ist, wobei der Satz von APIs folgende Merkmale aufweist: eine erste Schnittstelle zum Kommunizieren von Unterbrechungsvektoradressregisterdaten; eine zweite Schnittstelle zum Kommunizieren eines Unterbrechungsvektortabelleneintrags; und eine dritte Schnittstelle zum Kommunizieren von Trapmodusregister-Konfigurationsdaten, die den Unterbrechungsvektoradressregisterdaten und dem Unterbre chungsvektortabelleneintrag zugeordnet sind, wo die Trapmodusregister-Konfigurationsdaten ein Auswählen einer Unterbrechungsvektoradresse und ein Lokalisieren eines Unterbrechungsvektortabelleneintrags ermöglichen.
  44. System, das folgende Merkmale aufweist: einen Computer, der mit einem Trapmodusregister (310), einer Mehrzahl von Unterbrechungsvektoradressregistern und einer Mehrzahl von Unterbrechungsvektortabellen konfiguriert ist; eine Initialisierungslogik (300), die dazu konfiguriert ist, das Trapmodusregister (310), eines oder mehr der Mehrzahl von Unterbrechungsvektoradressregistern und eine oder mehr der Unterbrechungsvektortabellen zu initialisieren; und eine Trapverarbeitungslogik, die dazu konfiguriert ist, auf das Auftreten eines Traps in dem Computer hin dem Trapmodusregister (310) Trapdaten zu liefern, die dazu konfiguriert sind, es dem Trapmodusregister zu ermöglichen, ein Unterbrechungsvektoradressregister aus der Mehrzahl von Unterbrechungsvektoradressregistern auszuwählen, und um somit ein Lokalisieren einer Unterbrechungsbehandlungsroutine zu ermöglichen, die einer Unterbrechungsvektortabelle zugeordnet ist, die dem ausgewählten Unterbrechungsvektoradressregister zugeordnet ist.
DE102005053715A 2004-12-08 2005-11-10 Trapmodusregister Ceased DE102005053715A1 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US11/006,964 2004-12-08
US11/006,964 US7480755B2 (en) 2004-12-08 2004-12-08 Trap mode register

Publications (1)

Publication Number Publication Date
DE102005053715A1 true DE102005053715A1 (de) 2006-06-14

Family

ID=36500337

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102005053715A Ceased DE102005053715A1 (de) 2004-12-08 2005-11-10 Trapmodusregister

Country Status (3)

Country Link
US (1) US7480755B2 (de)
JP (1) JP2006164284A (de)
DE (1) DE102005053715A1 (de)

Families Citing this family (157)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7636815B1 (en) * 2003-04-09 2009-12-22 Klaiber Alexander C System and method for handling direct memory accesses
US8751753B1 (en) 2003-04-09 2014-06-10 Guillermo J. Rozas Coherence de-coupling buffer
US7904943B2 (en) * 2004-12-28 2011-03-08 O'connor Dennis M Secure controller for block oriented storage
US7971002B1 (en) * 2005-04-07 2011-06-28 Guillermo Rozas Maintaining instruction coherency in a translation-based computer system architecture
US7200700B2 (en) * 2005-05-19 2007-04-03 Inventec Corporation Shared-IRQ user defined interrupt signal handling method and system
CN101305377A (zh) * 2005-11-09 2008-11-12 日本电气株式会社 通信终端装置、服务器终端装置、使用它们的通信系统
US20070124522A1 (en) * 2005-11-30 2007-05-31 Ellison Brandon J Node detach in multi-node system
US8286162B2 (en) 2005-12-30 2012-10-09 Intel Corporation Delivering interrupts directly to a virtual processor
US7657694B2 (en) * 2006-12-20 2010-02-02 Arm Limited Handling access requests in a data processing apparatus
JP4661854B2 (ja) * 2007-11-09 2011-03-30 株式会社デンソー 検査システム及びプログラム
US20100017893A1 (en) * 2008-07-21 2010-01-21 Ati Technologies Ulc System for Securing Register Space and Method of Securing the Same
US8984174B2 (en) * 2011-12-06 2015-03-17 Qualcomm Incorporated Method and a portable computing device (PCD) for exposing a peripheral component interface express (PCIE) coupled device to an operating system operable on the PCD
US9729583B1 (en) 2016-06-10 2017-08-08 OneTrust, LLC Data processing systems and methods for performing privacy assessments and monitoring of new versions of computer code for privacy compliance
US10754967B1 (en) * 2014-12-15 2020-08-25 Marvell Asia Pte, Ltd. Secure interrupt handling between security zones
US11244367B2 (en) 2016-04-01 2022-02-08 OneTrust, LLC Data processing systems and methods for integrating privacy information management systems with data loss prevention tools or other tools for privacy design
US10706447B2 (en) 2016-04-01 2020-07-07 OneTrust, LLC Data processing systems and communication systems and methods for the efficient generation of privacy risk assessments
US20220164840A1 (en) 2016-04-01 2022-05-26 OneTrust, LLC Data processing systems and methods for integrating privacy information management systems with data loss prevention tools or other tools for privacy design
US11004125B2 (en) 2016-04-01 2021-05-11 OneTrust, LLC Data processing systems and methods for integrating privacy information management systems with data loss prevention tools or other tools for privacy design
US11210420B2 (en) 2016-06-10 2021-12-28 OneTrust, LLC Data subject access request processing systems and related methods
US10776518B2 (en) 2016-06-10 2020-09-15 OneTrust, LLC Consent receipt management systems and related methods
US11025675B2 (en) 2016-06-10 2021-06-01 OneTrust, LLC Data processing systems and methods for performing privacy assessments and monitoring of new versions of computer code for privacy compliance
US11222142B2 (en) 2016-06-10 2022-01-11 OneTrust, LLC Data processing systems for validating authorization for personal data collection, storage, and processing
US10997315B2 (en) 2016-06-10 2021-05-04 OneTrust, LLC Data processing systems for fulfilling data subject access requests and related methods
US11222139B2 (en) 2016-06-10 2022-01-11 OneTrust, LLC Data processing systems and methods for automatic discovery and assessment of mobile software development kits
US10949170B2 (en) 2016-06-10 2021-03-16 OneTrust, LLC Data processing systems for integration of consumer feedback with data subject access requests and related methods
US10607028B2 (en) 2016-06-10 2020-03-31 OneTrust, LLC Data processing systems for data testing to confirm data deletion and related methods
US10242228B2 (en) 2016-06-10 2019-03-26 OneTrust, LLC Data processing systems for measuring privacy maturity within an organization
US10685140B2 (en) 2016-06-10 2020-06-16 OneTrust, LLC Consent receipt management systems and related methods
US11475136B2 (en) 2016-06-10 2022-10-18 OneTrust, LLC Data processing systems for data transfer risk identification and related methods
US11354434B2 (en) 2016-06-10 2022-06-07 OneTrust, LLC Data processing systems for verification of consent and notice processing and related methods
US11625502B2 (en) 2016-06-10 2023-04-11 OneTrust, LLC Data processing systems for identifying and modifying processes that are subject to data subject access requests
US10776514B2 (en) 2016-06-10 2020-09-15 OneTrust, LLC Data processing systems for the identification and deletion of personal data in computer systems
US10496846B1 (en) 2016-06-10 2019-12-03 OneTrust, LLC Data processing and communications systems and methods for the efficient implementation of privacy by design
US11138242B2 (en) 2016-06-10 2021-10-05 OneTrust, LLC Data processing systems and methods for automatically detecting and documenting privacy-related aspects of computer software
US10565236B1 (en) 2016-06-10 2020-02-18 OneTrust, LLC Data processing systems for generating and populating a data inventory
US10762236B2 (en) 2016-06-10 2020-09-01 OneTrust, LLC Data processing user interface monitoring systems and related methods
US10284604B2 (en) 2016-06-10 2019-05-07 OneTrust, LLC Data processing and scanning systems for generating and populating a data inventory
US10592692B2 (en) 2016-06-10 2020-03-17 OneTrust, LLC Data processing systems for central consent repository and related methods
US10848523B2 (en) 2016-06-10 2020-11-24 OneTrust, LLC Data processing systems for data-transfer risk identification, cross-border visualization generation, and related methods
US11562097B2 (en) 2016-06-10 2023-01-24 OneTrust, LLC Data processing systems for central consent repository and related methods
US11461500B2 (en) 2016-06-10 2022-10-04 OneTrust, LLC Data processing systems for cookie compliance testing with website scanning and related methods
US11341447B2 (en) 2016-06-10 2022-05-24 OneTrust, LLC Privacy management systems and methods
US11544667B2 (en) 2016-06-10 2023-01-03 OneTrust, LLC Data processing systems for generating and populating a data inventory
US10796260B2 (en) 2016-06-10 2020-10-06 OneTrust, LLC Privacy management systems and methods
US11188862B2 (en) 2016-06-10 2021-11-30 OneTrust, LLC Privacy management systems and methods
US11227247B2 (en) 2016-06-10 2022-01-18 OneTrust, LLC Data processing systems and methods for bundled privacy policies
US11138299B2 (en) 2016-06-10 2021-10-05 OneTrust, LLC Data processing and scanning systems for assessing vendor risk
US11328092B2 (en) 2016-06-10 2022-05-10 OneTrust, LLC Data processing systems for processing and managing data subject access in a distributed environment
US10909265B2 (en) 2016-06-10 2021-02-02 OneTrust, LLC Application privacy scanning systems and related methods
US11146566B2 (en) 2016-06-10 2021-10-12 OneTrust, LLC Data processing systems for fulfilling data subject access requests and related methods
US11675929B2 (en) 2016-06-10 2023-06-13 OneTrust, LLC Data processing consent sharing systems and related methods
US11586700B2 (en) 2016-06-10 2023-02-21 OneTrust, LLC Data processing systems and methods for automatically blocking the use of tracking tools
US11727141B2 (en) 2016-06-10 2023-08-15 OneTrust, LLC Data processing systems and methods for synching privacy-related user consent across multiple computing devices
US10839102B2 (en) 2016-06-10 2020-11-17 OneTrust, LLC Data processing systems for identifying and modifying processes that are subject to data subject access requests
US11157600B2 (en) 2016-06-10 2021-10-26 OneTrust, LLC Data processing and scanning systems for assessing vendor risk
US11100444B2 (en) 2016-06-10 2021-08-24 OneTrust, LLC Data processing systems and methods for providing training in a vendor procurement process
US11023842B2 (en) 2016-06-10 2021-06-01 OneTrust, LLC Data processing systems and methods for bundled privacy policies
US10572686B2 (en) 2016-06-10 2020-02-25 OneTrust, LLC Consent receipt management systems and related methods
US11277448B2 (en) 2016-06-10 2022-03-15 OneTrust, LLC Data processing systems for data-transfer risk identification, cross-border visualization generation, and related methods
US11336697B2 (en) 2016-06-10 2022-05-17 OneTrust, LLC Data processing systems for data-transfer risk identification, cross-border visualization generation, and related methods
US11295316B2 (en) 2016-06-10 2022-04-05 OneTrust, LLC Data processing systems for identity validation for consumer rights requests and related methods
US10776517B2 (en) 2016-06-10 2020-09-15 OneTrust, LLC Data processing systems for calculating and communicating cost of fulfilling data subject access requests and related methods
US10706379B2 (en) 2016-06-10 2020-07-07 OneTrust, LLC Data processing systems for automatic preparation for remediation and related methods
US11200341B2 (en) 2016-06-10 2021-12-14 OneTrust, LLC Consent receipt management systems and related methods
US11392720B2 (en) 2016-06-10 2022-07-19 OneTrust, LLC Data processing systems for verification of consent and notice processing and related methods
US10565161B2 (en) 2016-06-10 2020-02-18 OneTrust, LLC Data processing systems for processing data subject access requests
US10503926B2 (en) 2016-06-10 2019-12-10 OneTrust, LLC Consent receipt management systems and related methods
US11481710B2 (en) 2016-06-10 2022-10-25 OneTrust, LLC Privacy management systems and methods
US10169609B1 (en) 2016-06-10 2019-01-01 OneTrust, LLC Data processing systems for fulfilling data subject access requests and related methods
US11636171B2 (en) 2016-06-10 2023-04-25 OneTrust, LLC Data processing user interface monitoring systems and related methods
US11354435B2 (en) 2016-06-10 2022-06-07 OneTrust, LLC Data processing systems for data testing to confirm data deletion and related methods
US10949565B2 (en) 2016-06-10 2021-03-16 OneTrust, LLC Data processing systems for generating and populating a data inventory
US11301796B2 (en) 2016-06-10 2022-04-12 OneTrust, LLC Data processing systems and methods for customizing privacy training
US11294939B2 (en) 2016-06-10 2022-04-05 OneTrust, LLC Data processing systems and methods for automatically detecting and documenting privacy-related aspects of computer software
US10318761B2 (en) 2016-06-10 2019-06-11 OneTrust, LLC Data processing systems and methods for auditing data request compliance
US11520928B2 (en) 2016-06-10 2022-12-06 OneTrust, LLC Data processing systems for generating personal data receipts and related methods
US11228620B2 (en) 2016-06-10 2022-01-18 OneTrust, LLC Data processing systems for data-transfer risk identification, cross-border visualization generation, and related methods
US10873606B2 (en) 2016-06-10 2020-12-22 OneTrust, LLC Data processing systems for data-transfer risk identification, cross-border visualization generation, and related methods
US10944725B2 (en) 2016-06-10 2021-03-09 OneTrust, LLC Data processing systems and methods for using a data model to select a target data asset in a data migration
US11144622B2 (en) 2016-06-10 2021-10-12 OneTrust, LLC Privacy management systems and methods
US10510031B2 (en) 2016-06-10 2019-12-17 OneTrust, LLC Data processing systems for identifying, assessing, and remediating data processing risks using data modeling techniques
US11416109B2 (en) 2016-06-10 2022-08-16 OneTrust, LLC Automated data processing systems and methods for automatically processing data subject access requests using a chatbot
US10585968B2 (en) 2016-06-10 2020-03-10 OneTrust, LLC Data processing systems for fulfilling data subject access requests and related methods
US11134086B2 (en) 2016-06-10 2021-09-28 OneTrust, LLC Consent conversion optimization systems and related methods
US11038925B2 (en) 2016-06-10 2021-06-15 OneTrust, LLC Data processing systems for data-transfer risk identification, cross-border visualization generation, and related methods
US11416798B2 (en) 2016-06-10 2022-08-16 OneTrust, LLC Data processing systems and methods for providing training in a vendor procurement process
US11057356B2 (en) 2016-06-10 2021-07-06 OneTrust, LLC Automated data processing systems and methods for automatically processing data subject access requests using a chatbot
US10353673B2 (en) 2016-06-10 2019-07-16 OneTrust, LLC Data processing systems for integration of consumer feedback with data subject access requests and related methods
US11403377B2 (en) 2016-06-10 2022-08-02 OneTrust, LLC Privacy management systems and methods
US10592648B2 (en) 2016-06-10 2020-03-17 OneTrust, LLC Consent receipt management systems and related methods
US10614247B2 (en) 2016-06-10 2020-04-07 OneTrust, LLC Data processing systems for automated classification of personal information from documents and related methods
US10846433B2 (en) 2016-06-10 2020-11-24 OneTrust, LLC Data processing consent management systems and related methods
US11087260B2 (en) 2016-06-10 2021-08-10 OneTrust, LLC Data processing systems and methods for customizing privacy training
US11238390B2 (en) 2016-06-10 2022-02-01 OneTrust, LLC Privacy management systems and methods
US11151233B2 (en) 2016-06-10 2021-10-19 OneTrust, LLC Data processing and scanning systems for assessing vendor risk
US11343284B2 (en) 2016-06-10 2022-05-24 OneTrust, LLC Data processing systems and methods for performing privacy assessments and monitoring of new versions of computer code for privacy compliance
US10769301B2 (en) 2016-06-10 2020-09-08 OneTrust, LLC Data processing systems for webform crawling to map processing activities and related methods
US10565397B1 (en) 2016-06-10 2020-02-18 OneTrust, LLC Data processing systems for fulfilling data subject access requests and related methods
US11222309B2 (en) 2016-06-10 2022-01-11 OneTrust, LLC Data processing systems for generating and populating a data inventory
US11651104B2 (en) 2016-06-10 2023-05-16 OneTrust, LLC Consent receipt management systems and related methods
US11651106B2 (en) 2016-06-10 2023-05-16 OneTrust, LLC Data processing systems for fulfilling data subject access requests and related methods
US10416966B2 (en) 2016-06-10 2019-09-17 OneTrust, LLC Data processing systems for identity validation of data subject access requests and related methods
US10783256B2 (en) 2016-06-10 2020-09-22 OneTrust, LLC Data processing systems for data transfer risk identification and related methods
US11418492B2 (en) 2016-06-10 2022-08-16 OneTrust, LLC Data processing systems and methods for using a data model to select a target data asset in a data migration
US10997318B2 (en) 2016-06-10 2021-05-04 OneTrust, LLC Data processing systems for generating and populating a data inventory for processing data access requests
US10282700B2 (en) 2016-06-10 2019-05-07 OneTrust, LLC Data processing systems for generating and populating a data inventory
US10467432B2 (en) 2016-06-10 2019-11-05 OneTrust, LLC Data processing systems for use in automatically generating, populating, and submitting data subject access requests
US10706176B2 (en) 2016-06-10 2020-07-07 OneTrust, LLC Data-processing consent refresh, re-prompt, and recapture systems and related methods
US11438386B2 (en) 2016-06-10 2022-09-06 OneTrust, LLC Data processing systems for data-transfer risk identification, cross-border visualization generation, and related methods
US10803200B2 (en) 2016-06-10 2020-10-13 OneTrust, LLC Data processing systems for processing and managing data subject access in a distributed environment
US11366786B2 (en) 2016-06-10 2022-06-21 OneTrust, LLC Data processing systems for processing data subject access requests
US10282559B2 (en) 2016-06-10 2019-05-07 OneTrust, LLC Data processing systems for identifying, assessing, and remediating data processing risks using data modeling techniques
US10726158B2 (en) 2016-06-10 2020-07-28 OneTrust, LLC Consent receipt management and automated process blocking systems and related methods
US10853501B2 (en) 2016-06-10 2020-12-01 OneTrust, LLC Data processing and scanning systems for assessing vendor risk
US10454973B2 (en) 2016-06-10 2019-10-22 OneTrust, LLC Data processing systems for data-transfer risk identification, cross-border visualization generation, and related methods
US11074367B2 (en) 2016-06-10 2021-07-27 OneTrust, LLC Data processing systems for identity validation for consumer rights requests and related methods
US10706131B2 (en) 2016-06-10 2020-07-07 OneTrust, LLC Data processing systems and methods for efficiently assessing the risk of privacy campaigns
US10896394B2 (en) 2016-06-10 2021-01-19 OneTrust, LLC Privacy management systems and methods
US10708305B2 (en) 2016-06-10 2020-07-07 OneTrust, LLC Automated data processing systems and methods for automatically processing requests for privacy-related information
US10878127B2 (en) 2016-06-10 2020-12-29 OneTrust, LLC Data subject access request processing systems and related methods
US11366909B2 (en) 2016-06-10 2022-06-21 OneTrust, LLC Data processing and scanning systems for assessing vendor risk
US10713387B2 (en) 2016-06-10 2020-07-14 OneTrust, LLC Consent conversion optimization systems and related methods
US10586075B2 (en) 2016-06-10 2020-03-10 OneTrust, LLC Data processing systems for orphaned data identification and deletion and related methods
US11188615B2 (en) 2016-06-10 2021-11-30 OneTrust, LLC Data processing consent capture systems and related methods
US11416589B2 (en) 2016-06-10 2022-08-16 OneTrust, LLC Data processing and scanning systems for assessing vendor risk
US10606916B2 (en) 2016-06-10 2020-03-31 OneTrust, LLC Data processing user interface monitoring systems and related methods
US10740487B2 (en) 2016-06-10 2020-08-11 OneTrust, LLC Data processing systems and methods for populating and maintaining a centralized database of personal data
US10642870B2 (en) 2016-06-10 2020-05-05 OneTrust, LLC Data processing systems and methods for automatically detecting and documenting privacy-related aspects of computer software
US10678945B2 (en) 2016-06-10 2020-06-09 OneTrust, LLC Consent receipt management systems and related methods
US11416590B2 (en) 2016-06-10 2022-08-16 OneTrust, LLC Data processing and scanning systems for assessing vendor risk
US10706174B2 (en) 2016-06-10 2020-07-07 OneTrust, LLC Data processing systems for prioritizing data subject access requests for fulfillment and related methods
US10909488B2 (en) 2016-06-10 2021-02-02 OneTrust, LLC Data processing systems for assessing readiness for responding to privacy-related incidents
US10885485B2 (en) 2016-06-10 2021-01-05 OneTrust, LLC Privacy management systems and methods
US10798133B2 (en) 2016-06-10 2020-10-06 OneTrust, LLC Data processing systems for data-transfer risk identification, cross-border visualization generation, and related methods
US10324872B2 (en) * 2016-09-20 2019-06-18 Intel IP Corporation Interrupt-vector translation lookaside buffer
US10013577B1 (en) 2017-06-16 2018-07-03 OneTrust, LLC Data processing systems for identifying whether cookies contain personally identifying information
US10706180B2 (en) * 2017-07-07 2020-07-07 Endgame, Inc. System and method for enabling a malware prevention module in response to a context switch within a certain process being executed by a processor
US11144675B2 (en) 2018-09-07 2021-10-12 OneTrust, LLC Data processing systems and methods for automatically protecting sensitive data within privacy management systems
US10803202B2 (en) 2018-09-07 2020-10-13 OneTrust, LLC Data processing systems for orphaned data identification and deletion and related methods
US11544409B2 (en) 2018-09-07 2023-01-03 OneTrust, LLC Data processing systems and methods for automatically protecting sensitive data within privacy management systems
US11314522B2 (en) 2020-02-26 2022-04-26 Red Hat, Inc. Fast boot resource allocation for virtual machines
US11586458B2 (en) 2020-02-26 2023-02-21 Red Hat, Inc. Fast device discovery for virtual machines
US11797528B2 (en) 2020-07-08 2023-10-24 OneTrust, LLC Systems and methods for targeted data discovery
US11444976B2 (en) 2020-07-28 2022-09-13 OneTrust, LLC Systems and methods for automatically blocking the use of tracking tools
WO2022032072A1 (en) 2020-08-06 2022-02-10 OneTrust, LLC Data processing systems and methods for automatically redacting unstructured data from a data subject access request
US11436373B2 (en) 2020-09-15 2022-09-06 OneTrust, LLC Data processing systems and methods for detecting tools for the automatic blocking of consent requests
US20230334158A1 (en) 2020-09-21 2023-10-19 OneTrust, LLC Data processing systems and methods for automatically detecting target data transfers and target data processing
US11397819B2 (en) 2020-11-06 2022-07-26 OneTrust, LLC Systems and methods for identifying data processing activities based on data discovery results
WO2022159901A1 (en) 2021-01-25 2022-07-28 OneTrust, LLC Systems and methods for discovery, classification, and indexing of data in a native computing system
WO2022170047A1 (en) 2021-02-04 2022-08-11 OneTrust, LLC Managing custom attributes for domain objects defined within microservices
US11494515B2 (en) 2021-02-08 2022-11-08 OneTrust, LLC Data processing systems and methods for anonymizing data samples in classification analysis
WO2022173912A1 (en) 2021-02-10 2022-08-18 OneTrust, LLC Systems and methods for mitigating risks of third-party computing system functionality integration into a first-party computing system
US11775348B2 (en) 2021-02-17 2023-10-03 OneTrust, LLC Managing custom workflows for domain objects defined within microservices
US11546661B2 (en) 2021-02-18 2023-01-03 OneTrust, LLC Selective redaction of media content
WO2022192269A1 (en) 2021-03-08 2022-09-15 OneTrust, LLC Data transfer discovery and analysis systems and related methods
US11562078B2 (en) 2021-04-16 2023-01-24 OneTrust, LLC Assessing and managing computational risk involved with integrating third party computing functionality within a computing system
US11620142B1 (en) 2022-06-03 2023-04-04 OneTrust, LLC Generating and customizing user interfaces for demonstrating functions of interactive user environments

Family Cites Families (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS61245237A (ja) * 1985-04-23 1986-10-31 Fujitsu Ltd ベクタ選択方式
JPH01195543A (ja) * 1988-01-29 1989-08-07 Nec Corp 割り込みベクタテーブル切り替えマルチos方式
JPH0264740A (ja) * 1988-08-30 1990-03-05 Fujitsu Ltd マイクロプロセッサ
JPH05143365A (ja) * 1991-11-21 1993-06-11 Nec Corp 割込みテーブル拡張・保護方式
US5901312A (en) * 1994-12-13 1999-05-04 Microsoft Corporation Providing application programs with unmediated access to a contested hardware resource
US5632028A (en) * 1995-03-03 1997-05-20 Hal Computer Systems, Inc. Hardware support for fast software emulation of unimplemented instructions
US6496847B1 (en) * 1998-05-15 2002-12-17 Vmware, Inc. System and method for virtualizing computer systems
US6336184B1 (en) * 1998-08-14 2002-01-01 International Business Machines Corporation Method and apparatus for performing a trap operation in an information handling system
US6502152B1 (en) * 1999-03-08 2002-12-31 Texas Instruments Incorporated Dual interrupt vector mapping
US6799316B1 (en) * 2000-03-23 2004-09-28 International Business Machines Corporation Virtualizing hardware with system management interrupts
US20020099863A1 (en) * 2000-06-02 2002-07-25 Guillaume Comeau Software support layer for processors executing interpreted language applications
US6772259B2 (en) * 2001-09-12 2004-08-03 International Business Machines Corporation Interrupt handlers used in different modes of operations
US7383587B2 (en) * 2002-11-18 2008-06-03 Arm Limited Exception handling control in a secure processing system
JP4447471B2 (ja) * 2002-11-18 2010-04-07 エイアールエム リミテッド 安全処理システムにおける例外タイプ
US7272709B2 (en) * 2002-12-26 2007-09-18 Micron Technology, Inc. Using chip select to specify boot memory
JP2005190207A (ja) * 2003-12-25 2005-07-14 Matsushita Electric Ind Co Ltd 割り込み制御装置、制御方法
US7457960B2 (en) * 2004-11-30 2008-11-25 Analog Devices, Inc. Programmable processor supporting secure mode

Also Published As

Publication number Publication date
JP2006164284A (ja) 2006-06-22
US7480755B2 (en) 2009-01-20
US20060123172A1 (en) 2006-06-08

Similar Documents

Publication Publication Date Title
DE102005053715A1 (de) Trapmodusregister
EP3274825B1 (de) Verfahren und ausführungsumgebung zum gesicherten ausführen von programmbefehlen
DE60115007T2 (de) Verbessertes programmierbares kernmodell mit integrierter graphischer fehlersuchfunktionalität
DE69913553T2 (de) Konfigurierung von systemeinheiten
DE69730276T2 (de) Vorrichtung und Verfahren zur Erleichterung der Vermeidung von exzeptionellen bestimmten Zuständen während des Ablaufs eines Programmes
DE69730004T2 (de) Digitalsystem-Simulation
DE69830285T2 (de) Auf Beans basiertes Verwaltungssystem
DE69936162T2 (de) Verfahren und Gerät für ein objektorientiertes Unterbrechungssystem
DE10393859B4 (de) Entkoppelter Hardwarekonfigurationsmanager
DE10225664A1 (de) System und Verfahren zum Prüfen von Systemabrufereignissen mit Systemabrufumhüllungen
DE69907709T2 (de) Prozessüberwachung in einem rechnersystem
DE112010005821T5 (de) Kontextwechsel
DE112005002405T5 (de) Fehlerverarbeitung für Direktspeicherzugriffs-Adreßübersetzung
DE112005002328T5 (de) Cachespeicherungsunterstützung für Direktspeicherzugriffsadreßübersetzung
DE112007001714T5 (de) Virtualisieren von Leistungszählern
DE112005002304T5 (de) Adreßumsetzung für Eingabe/Ausgabe- Vorrichtungen mittels hierarchischer Umsetzungstabellen
DE102006061939A1 (de) Verfahren und Vorrichtung zum Zugriff auf eine speicherabgebildete Vorrichtung durch einen Gast
DE2714805A1 (de) Datenverarbeitungssystem
DE112013000369T5 (de) Verwaltung von Threads innerhalb einer Datenverarbeitungsumgebung
DE10128883A1 (de) Verfahren und System für die Verteilung von Anwendungsdaten auf verteilte Datenbanken mit verschiedenen Formaten
DE112012004247T5 (de) Passives Überwachen virtueller Systeme unter Verwendung einer erweiterbaren Indexierung
DE102011005209A1 (de) Programmanweisungsgesteuerte Instruktionsflusskontrolle
DE102009043263B4 (de) Verfahren, Vorrichtung und System zum Abfragen eines Gerätes nach Informationen
DE60102694T2 (de) Modulares computersystem und -verfahren
DE60224438T2 (de) Aggregation von hardwareereignissen in mehrfach knotensystemen

Legal Events

Date Code Title Description
OP8 Request for examination as to paragraph 44 patent law
8131 Rejection