DE69838343T2 - Ein system unmd verfahren für fallenaddressenerfassung für fehlerisolation - Google Patents

Ein system unmd verfahren für fallenaddressenerfassung für fehlerisolation Download PDF

Info

Publication number
DE69838343T2
DE69838343T2 DE69838343T DE69838343T DE69838343T2 DE 69838343 T2 DE69838343 T2 DE 69838343T2 DE 69838343 T DE69838343 T DE 69838343T DE 69838343 T DE69838343 T DE 69838343T DE 69838343 T2 DE69838343 T2 DE 69838343T2
Authority
DE
Germany
Prior art keywords
segment
offset
address
unique
interrupt
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Lifetime
Application number
DE69838343T
Other languages
English (en)
Other versions
DE69838343D1 (de
Inventor
Vincent J. Federal Way ZIMMER
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Intel Corp
Original Assignee
Intel Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Intel Corp filed Critical Intel Corp
Application granted granted Critical
Publication of DE69838343D1 publication Critical patent/DE69838343D1/de
Publication of DE69838343T2 publication Critical patent/DE69838343T2/de
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/0292User address space allocation, e.g. contiguous or non contiguous base addressing using tables or multilevel address translation means
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/32Address formation of the next instruction, e.g. by incrementing the instruction counter

Description

  • 1. GEBIET DER ERFINDUNG
  • Die vorliegende Erfindung betrifft das Gebiet der Fehlerbehandlung. Im Besonderen betrifft die vorliegende Erfindung ein System und ein Verfahren zur Feststellung des Ursprungs für einen Fehlerzustand durch Manipulation des Segments und Versatzes, die zur Berechnung einer effektiven Adresse eingesetzt werden.
  • 2. BESCHREIBUNG DES STANDS DER TECHNIK
  • EP-A-0444624 offenbart eine Vorrichtung zum Erzeugen einer Adresse für einen Zugriff auf einen Speicher. Eine Schaltung verschiebt eine vorbestimmte Anzahl von Bits zwischen den Versatz- und Segmentadressen. Die Verschiebung variiert abhängig von einem Segment-Override-Präfixbefehl.
  • Seit vielen Jahren wird die Unterbrechungsbehandlung eines elektronischen Systems durch den Einsatz einer Unterbrechungsvektortabelle (IVT) erreicht, die durch BIOS-Firmware (Basic Input/Output System) erzeugt wird. Eine IVT weist für gewöhnlich eine Reihe von Einträgen auf (z.B. 256 Vier-Byte-Einträge), die jeweils eine Adresse einer Routine aufweisen können, die der Behandlung von Unterbrechungen dient. Beim Hochfahren bzw. Einschalten lädt die Systemsoftware für gewöhnlich eine identische Adresse in jeden Eintrag der IVT. Diese Adresse richtet sich an eine Standardunterbrechungsbehandlungsroutine zur Behandlung von Unterbrechungen, für die erwartet wird, dass sie bei der Initialisierung auftreten (z.B. eine Festplattenunterbrechung, eine Zeitgeberunterbrechung, eine nicht maskierbare Unterbrechung (NMI), durch Software aufgerufene Unterbrechungen, wie etwa Abfangbefehle, etc.). Bei dieser Unterbrechungsbehandlungstechnik wird eine unerwartete Unterbrechung (Nebenunterbrechung) (als "Fehlerzustand" bezeichnet), die durch Hardware oder Software verursacht wird, nicht wirksam berücksichtigt.
  • Wenn heute ein Fehlerzustand auftritt, wird auf die Standardunterbrechungsbehandlungsroutine zugegriffen. Leider kann die Standardunterbrechungsbehandlungsroutine nur bestimmen, ob die Unterbrechung einer vorbestimmten Reihe externer Unterbrechungen (z.B. einer Festplattenunterbrechung, einem Zeitgeberfehler, einer NMI, etc.) zugeordnet ist, die von einer oder mehreren programmierbaren Unterbrechungssteuereinheiten (PICs) unterstützt werden, wie zum Beispiel den Steuereinheiten INTEL® 8259. Diese Bestimmung wird erreicht, indem der Zustand der verschiedenen Logikschaltkreisanordnungen (z.B. Latches, etc.) geprüft wird, die der bzw. den PIC(s) zugeordnet sind.
  • Wenn der Fehlerzustand auf einer beliebigen vorbestimmten Reihe von Unterbrechungen basiert, wird eine dieser Unterbrechung zugeordnete Nummer in ein Status- bzw. Zustandsregister geladen. Der Inhalt des Zustandsregisters zeigt die Ursache für den Fehlerzustand an. Ansonsten wird ein Nullwert in das Zustandsregister geladen, wobei die Ursache für den Fehlerzustand nicht angezeigt wird. Folglich wird der Ursprung eines Fehlerzustands nur selten bestimmt, da durch die aktuelle IVT nur fünfzehn Arten von Unterbrechungen bestimmt werden können.
  • Natürlich ist es möglich, einen Unterbrechungsbehandlungsmechanismus zu entwickeln, bei dem jeder Eintrag der IVT mit einer Adresse einer eindeutigen Unterbrechungsbehandlungsroutine geladen wird. Dies kann eine mögliche Lösung darstellen, wenn strikte Speichergrößenbeschränkungen nicht gegeben sind. Da im BIOS jedoch nur ein begrenzter Coderaum zur Verfügung steht, würde dabei unnötig Systemleistung geopfert werden, um den Laufzeitcode in dem BIOS gegen Fehlerbehandlungscode zu ersetzen, der nur selten eingesetzt wird.
  • ZUSAMMENFASSUNG DER ERFINDUNG
  • Vorgesehen ist gemäß einem ersten Aspekt der vorliegenden Erfindung ein Verfahren gemäß dem gegenständlichen Anspruch 1.
  • Vorgesehen ist gemäß einem zweiten Aspekte der vorliegenden Erfindung ein System gemäß dem gegenständlichen Anspruch 9.
  • KURZE BESCHREIBUNG DER ZEICHNUNGEN
  • Die Merkmale und Vorteile der vorliegenden Erfindung werden aus der folgenden genauen Beschreibung der vorliegenden Erfindung deutlich. In den Zeichnungen zeigen:
  • 1 ein veranschaulichendes Blockdiagramm eines elektronischen Systems, das die vorliegende Erfindung verwendet;
  • 2 ein veranschaulichendes Blockdiagramm einer Unterbrechungsvektortabelle (IVT), die durch ein System Executive wie etwa die BIOS-Firmware erzeugt wird;
  • 3 ein Blockdiagramm eines herkömmlichen Ablaufs bei der Berechnung der effektiven Adresse;
  • 4 ein veranschaulichendes Flussdiagramm der Ablaufschritte, die für die Erzeugung der IVT aus 2 erforderlich sind; und
  • 5 ein veranschaulichendes Flussdiagramm der Ablaufschritte für die Erzeugung einer eindeutigen Segmentadresse der Standardunterbrechungsbehandlungsroutine des elektronischen Systems aus 1.
  • BESCHREIBUNG DES BEVORZUGTEN AUSFÜHRUNGSBEISPIELS
  • Die vorliegende Erfindung betrifft ein System und ein Verfahren zur Bestimmung eines Ursprungs für einen Fehlerzustand durch Modifikation eines Segments und eines Versatzes, die zur Bildung einer effektiven Adresse einer Unterbrechungsbehandlungsroutine verwendet werden, ohne dass die effektive Adresse verändert wird.
  • In der folgenden Beschreibung wird eine bestimmte Terminologie verwendet, um bestimmte Merkmale oder Eigenschaften der vorliegenden Erfindung allgemein zu beschreiben. Zum Beispiel kann ein "elektronisches System" einen Computer (z.B. einen Laptop bzw. ein Notebook, einen Desktop, einen Server, einen Großrechner, etc.) oder jede andere Hardwarevorrichtung umfassen, welche die Unterbrechungsbehandlung unterstützt. "Informationen" bzw. "Daten" sind allgemein als ein oder mehrere Bits (i) Daten, (ii) Adressen und/oder (iii) Steuerung definiert. Eine "Zwischenverbindung" ist jedes Medium, das zur Informationsübertragung von einer Quelle an ein Ziel verwendet wird, wie zum Beispiel ein oder mehrere Drähte, Busse, Spurleitungen oder Faseroptik bzw. Lichtwellenleiter, sowie ein kabelloses Medium. Ein "System Executive" ist ein Softwareagent, der eine intermediäre Softwaresteuerungsschicht zwischen Hardware und einer Softwareanwendung bereitstellt. Zu den Beispielen für ein System Executive zählen unter anderem, ohne darauf beschränkt zu sein, ein Betriebssystem oder ein Basic Input/Output System (BIOS).
  • In folgendem Bezug auf die Abbildung aus 1 zeigt diese ein veranschaulichendes Ausführungsbeispiel eines elektronischen Systems 100, das die vorliegende Erfindung einsetzt. In dem vorliegenden Ausführungsbeispiel umfasst das elektronische System 100 ein Prozessor-Teilsystem 110, ein Speicher-Teilsystem 120 und ein Ein-Ausgabe-Teilsystem (E/A-Teilsystem) 130. Die Teilsysteme sind über einen Chipsatz 140 und eine Reihe von Zwischenverbindungen, wie etwa eine Host-Zwischenverbindung 150, eine Speicherzwischenverbindung 160 und eine E/A-Zwischenverbindung 170 miteinander verbunden.
  • Das Prozessor-Teilsystem 110 weist einen oder mehrere Mikroprozessoren 1151 115m ("m" ist eine positive ganze Zahl) auf, die mit der Host-Zwischenverbindung 150 verbunden sind. Jeder Mikroprozessor, zum Beispiel der Mikroprozessor (μP) 1151 , weist ein Codesegment-Speicherelement (CS-Speicherelement) 116 auf. Normalerweise handelt es sich bei dem CS-Speicherelement 116 m ein 16-Bit-Register, das ein Segment aufweist bzw. enthält. Ein "Segment" ist ein Abschnitt der Anfangsadresse eines vorbestimmten Speicherblocks, der Informationen enthält, wie etwa eine Unterbrechungsvektortabelle (IVT) 200 aus 2. Es ist jedoch möglich, dass das CS-Speicherelement 116 als eine Speichervorrichtung beliebiger Bitgröße konfiguriert werden kann.
  • Das Speicher-Teilsystem 120 ist über eine Speicherzwischenverbindung 160 mit dem Chipsatz 140 verbunden und weist mindestens ein Speicherelement 125 auf. Vorzugsweise handelt es sich bei dem Speicherelement 125 um einen flüchtigen Speicher, wie etwa einen dynamischen Direktzugriffsspeicher (DRAM), der ein System Executive, wie etwa ein Betriebssystem laden kann, wie zum Beispiel ein Betriebssystem auf der Basis von WindowsTM, hergestellt von der Microsoft Corporation, Redmond, Washington, USA. Es ist jedoch auch möglich, dass ein nichtflüchtiger Speicher (z.B. jede Art von Nur-Lesespeicher ("ROM"), Flash-Speicher und dergleichen) an Stelle eines flüchtigen Speichers als Speicherelement 125 verwendet werden kann. Natürlich ist es auch möglich, dass eine Speichersteuereinheit 126 in dem Speicher-Teilsystem 120 implementiert wird.
  • Die E/A-Zwischenverbindung 170 stellt einen Kommunikationspfad zwischen einer Mehrzahl von Peripheriegeräten 1351 135n ("n" ist eine positive ganze Zahl) bereit, die in dem E/A-Teilsystem 130 enthalten sind. Die E/A-Zwischenverbindung 170 kann einen PCI-Bus (PCI als Abkürzung von Peripheral Component Interconnect), einen ISA-Bus (ISA als Abkrüzung von Industry Standard Architecture) oder eine andere Art der Busarchitektur darstellen. Es ist auch möglich, dass die E/A-Zwischenverbindung 170 als einzelner Bus dargestellt ist, wobei sie jedoch auch mehrere Busse aufweisen kann, die über eine Brückenschaltkreisanordnung miteinander verbunden sind, wobei jedes Peripheriegerät bzw. jede periphere Vorrichtung 1351 135n mit mindestens einem der Mehrzahl von Bussen verbunden ist. Eine periphere Vorrichtung 1351 , ist ein nichtflüchtiges Speicherelement, das ein anderes System Executive aufweist, bei dem es sich um einen BIOS-Code handelt. Bei den anderen peripheren Vorrichtungen kann es sich unter anderem und ohne darauf beschränkt zu sein, um, eine Massenspeichervorrichtung 1352 (z.B. ein Festplattenlaufwerk, einen CD-ROM-Player (Compact Disc Nur-Lesespeicher-Player), einen CD-R-Player, ein digitales Bandlaufwerk, ein Floppy-Disk-Laufwerk, einen DVD-Player, etc.), eine Transceiver-Vorrichtung 135n (z.B. eine Netzwerkschnittstellenkarte (NIC), ein Modem, etc.) und dergleichen handeln.
  • In folgendem Bezug auf die Abbildung aus 2 ist eine IVT 200 dargestellt, die durch ein System Executive bzw. Systemausführungsprogramm (z.B. BIOS) gemäß der vorliegenden Erfindung erzeugt wird. Bei der IVT 200 handelt es sich um eine Tabelle mit einer Mehrzahl von Einträgen 2011 210r ("r" ist eine positive ganze Zahl). Jeder Eintrag entspricht einer Unterbrechung, die von dem elektronischen System 100 unterstützt wird. Gemäß der Abbildung ist jeder Eintrag 2011 210r dafür zuständig, eine Abfang- bzw. Auffangadresse an einen Mikroprozessor bereitzustellen (z.B. einen Mikroprozessor 1151 aus 1). Die Abfangadresse 220 weist ein Segment 230 und einen Versatz 240 auf, die, wenn sie kombiniert werden, eine effektive physische Adresse für eine Standardunterbrechungsbehandlungsroutine erzeugen, die von dem Speicherelement 125 aus 1 erfasst wird.
  • Wie dies in der Abbildung aus 3 dargestellt ist, wird in Bezug auf herkömmliche INTEL® Mikroprozessorarchitekturen und andere kompatible Architekturen die effektive Adresse, die der Standardunterbrechungsbehandlungsroutine zugeordnet ist, durch den Mikroprozessor 1151 aus 1 berechnet, der das Segment 230 der Abfangadresse 220 abruft. Das Segment 230 wird mit sechzehn (16) multipliziert und zu dem aus der Abfangadresse 220 erhaltenen Versatz 240 addiert. Die resultierende Summe entspricht der effektiven Adresse der Standardunterbrechungsbehandlungsroutine gemäß der Definition durch die erste Gleichung: Effektive Adresse = Segment(Routine) × 16 + Versatz(Routine) (1)
  • Da die effektive Adresse abhängig ist von dem Segment und dem Versatz, kann die gleichzeitige Anpassung sowohl von Segment als auch Versatz ausgeführt werden, ohne die effektive Adresse zu modifizieren. Die Manipulation dieser Faktoren bildet die effektive Adresse, die einen Mechanismus bereitstellen kann, um die Ursprünge einer umfassenden Vielzahl von Fehlerbedingungen anzuzeigen, ohne dass mehrere Standardunterbrechungsbehandlungsroutinen erforderlich sind.
  • In Bezug auf die Abbildung aus 4 zeigt diese ein Flussdiagramm einer Technik zur Vorbereitung der IVT aus der Abbildung aus 2. Zuerst wird eine Adresse der Standardunterbrechungsbehandlungsroutine bestimmt, da diese Adresse für alle Prozeduren in dem System Executive allgemein bekannt ist, ebenso wie alle Subroutinen, die mit dem System Executive verknüpft sind. Im Besonderen weist der frühe Initialisierungscode (der für die Einrichtung der IVT verwendet wird) Zugriff auf die Adresse der Standardunterbrechungsbehandlungsroutine auf, so dass permutierte Versionen dieser Adresse erzeugt werden (Schritt 300). Zur deutlicheren Darstellung wird diese Adresse, die der Standardunterbrechungsbehandlungsroutine zugeordnet ist, als Abfangadresse "TRAP_ADDR" bezeichnet.
  • Als nächstes wird ein Indexparameter ("IDX" genannt) anfänglich auf einen vorbestimmten Wert gesetzt (Schritt 310). Dieser vorbestimmte Wert stellt eine Eintragsnummer dar, von der die Indexierung der Einträge der IVT beginnt. Dieser vorbestimmte Wert wird (i) geprüft, um sicherzustellen, dass er weiterhin innerhalb eines gegebenen Bereichs liegt, der der Anzahl der Einträge der IVT entspricht, und (ii) modifiziert (d.h. heraufgesetzt oder herabgesetzt), = nachdem das Segment und der Versatz, die in dem jeweiligen indexierten Eintrag gespeichert sind, verändert worden sind (Schritte 320 und 350). Als Folge dessen fungiert IDX als Zähler.
  • Bevor der vorbestimmte Wert von IDX modifiziert wird, wird der Wert von TRAP_ADDR in dem indexierten Eintrag der IVT 200 aus 2 verändert, indem ein erster dynamischer vorbestimmter Wert zu einem ersten Abschnitt von TRAP_ADDR addiert und ein zweiter vorbestimmter Wert von einem zweiten Abschnitt von TRAP_ADDR subtrahiert wird (Schritte 330 und 340). Im Besonderen wird der erste Abschnitt (z.B. das Segment) verändert, um einen eindeutigen Wert zu erzeugen, indem ein dynamischer Wert (IDX × 16) zu dem aktuellen Wert addiert wird. Als Folge dessen unterscheidet sich der Inhalt jedes Eintrags der IVT von dem Inhalt anderer Einträge, da IDX für jeden Eintrag eindeutig ist. Somit kann die erste Berechnung des eindeutigen Segments, das mit dem ersten Byte eines Vier-Byte-Eintrags beginnt, durch die folgende zweite Gleichung dargestellt werden: MEM[IDX × 4 + 0] = SEG(TRAP_ADDR) + (IDX × 16) (2).
  • Als nächstes wird der zweite Abschnitt (z.B. der Versatz) verändert, um den Effekten der Veränderung des Segments entgegenzuwirken. Dies stellt sicher, dass die effektive Adresse konstant bleibt, ohne Modifikation der internen Berechnungen (siehe erste Gleichung), so dass die effektive Adresse der Standardunterbrechungsbehandlungsroutine erzeugt wird. Gemäß dem vorstehend beschriebenen Ausführungsbeispiel würde der eindeutige Versatz um IDX × 256 reduziert, da eine Verschiebung um vier Bits des Segments (effektiv ein 20-Bit-Wert) einer 8-Bit-Verschiebung des Versatzes (effektiv ein 16-Bit-Wert) gleich kommt. Die Berechnung des eindeutigen Versatzes, beginnend mit dem dritten Byte des Eintrags ist in der dritten Gleichung dargestellt: MEM[IDX × 4 + 2] = VERSATZ(TRAP_ADDR) – (IDX × 256) (3).
  • In folgendem Bezug auf die Abbildung aus 5 sind die Verfahrensschritte für einen Fehlerzustand dargestellt. Wenn ein Fehlerzustand bzw. eine Fehlerbedingung (z.B. eine unerwartete Unterbrechung) detektiert wird, wird der Inhalt des CS-Speicherelements in ein Universalregister transportiert (Schritte 400 und 410). Danach wird der sich dann in dem Universalregister befindende Inhalt um vier Bits nach rechts verschoben (Schritt 415). Dies ist notwendig, um einen Index zu erzeugen, der eine 1:1 Abbildung zu dem IVT-Eintrag aufweist, der die störende bzw. Nebenunterbrechung verursacht hat.
  • Im Besonderen weist ein veranschaulichender Bereich von Eingangsunterbrechungsmerkmalen 256 Unterbrechungen auf, die unter Verwendung eines 8-Bit-Wertes (0 bis 255) codiert werden können. Durch eine Verschiebung nach rechts um vier, wird der IVT-Versatzeintrag auf praktische Weise in das wertniedrigste Byte des CS-Registers ausgerichtet. Somit normalisiert die Verschiebung nach rechts TRAP_ADDRESS auf eine 8-Bit-Zahl bzw. 8-Bit-Nummer, die eine Nebenunterbrechung eindeutig darstellt. Die 8-Bit-Nummer kann beim Prüfen bzw. Testen eines elektronischen Systems von einer herkömmlichen "Port 80h"-Karte eingesetzt werden.
  • Die "Port80h"-Karten werden zurzeit von PC-Herstellern und Anbietern von PC BIOS eingesetzt, um den Fortschritt von Operationen von Selbsttests nach dem Einschalten von PCs (POST) zu prüfen. Jeder Aufgabe in einem POST ist ein Codewert zugeordnet, d.h. ein 8-Bit-Wert, der in eine bestimmte E/A-Adresse geschrieben wird (z.B. die E/A-Position 80h, wobei "h" eine hexadezimale Ziffer anzeigt), und wobei dies unmittelbar vor der Ausführung einer POST-Aufgabe erfolgt. Darüber hinaus kann jede Eingangsunterbrechung an eine bestimmte E/A-Adresse geschrieben werden, um Eingangsunterbrechungen während dem Testen bzw. Prüfen des elektronischen Systems zu überwachen. Bei einem Systemausfall vor dem Hochfahren eines Betriebssystems kann somit der letzte an das System ausgegebene Codewert ebenso geprüft werden, wie die Nebenunterbrechung. Neben Port 80h-Karten können Nebenfehler auch über viele andere Arten von Aufzeichnungsmechanismen aufgezeichnet werden, wobei der Codewert zum Beispiel in einem Verlaufsprotokoll in einem nichtflüchtigen Speicher und/oder Elementen der Systemspeicher-Datenstruktur (z.B. BIOS-Datenbereich ("BDA") an einer physikalischen Adresse 0×400) aufgezeichnet werden kann, wie dies in dem Schritt 420 dargestellt ist.
  • Vorstehend wurden verschiedene Ausführungsbeispiele der vorliegenden Erfindung beschrieben, wobei der Fachmann auf dem Gebiet jedoch erkennt, dass auch andere Ausführungsbeispiele der Erfindung leicht vorstellbar sind, ohne dabei vom Umfang der vorliegenden Erfindung abzuweichen. Ferner wurde auf die detaillierte Ausführung allgemein bekannter Schaltkreisanordnungen und Verfahrensschritte verzichtet, um die vorliegende Erfindung nicht unnötig zu verschleiern. Die vorliegende Erfindung kann somit gemäß den Ausführungen in den folgenden Ansprüchen definiert werden.

Claims (10)

  1. Verfahren zur Fehlerbehandlung in einem elektronischen System, wobei das Verfahren die folgenden Schritte umfasst: das Bereitstellen einer Adresse (220) einer Softwareroutine zur Fehlerbehandlung, die zumindest beim Einschalten des elektronischen Systems verwendet wird, wobei die Adresse ein Segment (230) und einen Versatz (240) aufweist, der zur Berechnung einer effektiven Adresse der Software-Routine verwendet wird; das Ausführen einer arithmetischen Operation an dem Segment (330), um ein eindeutiges Segment zu erzeugen, das sich um eine erste Zahl von dem Segment unterscheidet; und das Ausführen einer arithmetischen Operation an dem Versatz (340), um einen eindeutigen Versatz zu erzeugen, der sich von dem Versatz um eine zweite Zahl unterscheidet, die einen Faktor der ersten Zahl darstellt, so dass die effektive Adresse unverändert bleibt.
  2. Verfahren nach Anspruch 1, wobei der Schritt des Ausführens der Operation an dem Segment die folgenden Schritte aufweist; das Multiplizieren einer dynamischen Zahl und einer ersten statischen Zahl miteinander, zur Berechnung der ersten Zahl; und das Addieren der ersten Zahl zu dem Segment, um das eindeutige Segment zu erzeugen.
  3. Verfahren nach Anspruch 2, wobei die dynamische Zahl eine Indexzahl darstellt, die einen Eintrag einer Unterbrechungsvektortabelle anzeigt, die eine Adresse aufweist.
  4. Verfahren nach Anspruch 3, wobei die erste statische Zahl einer binären Darstellung von sechzehn entspricht.
  5. Verfahren nach Anspruch 2, wobei der Schritt des Ausführens der Operation an dem Versatz die folgenden Schritte aufweist: das Multiplizieren der dynamischen Zahl und einer zweiten statischen Zahl miteinander, zur Berechnung der zweiten Zahl; und das Subtrahieren der zweiten Zahl von dem Versatz, so dass der eindeutige Versatz erzeugt wird.
  6. Verfahren nach Anspruch 5, wobei die dynamische Zahl eine Indexzahl darstellt, die einen Eintrag einer Unterbrechungsvektortabelle anzeigt, welche die Adresse aufweist.
  7. Verfahren nach Anspruch 6, wobei die zweite statische Zahl gleich zweihundertundsechsundfünfzig ist.
  8. Verfahren nach Anspruch 1, wobei die Softwareroutine eine Standardunterbrechungsbehandlungsroutine umfasst.
  9. System (100), das folgendes umfasst: ein Speicherelement (125, 1352 ); und einen Mikroprozessor (116), der sich in Übertragungsverbindung mit dem Speicherelement befindet, wobei der Mikroprozessor in der Lage ist, ein Systemausführungsprogramm (135) zu verarbeiten, das sich in dem Speicherelement befindet, um eine Unterbrechungsvektortabelle (200) zu erzeugen, wobei jeder Eintrag der Unterbrechungsvektortabelle eine Adresse (220) mit einem Segment (230) und einem Versatz (240) aufweist, die beide zur Berechnung einer effektiven Adresse einer Standardunterbrechungsbehandlungsroutine verwendet werden können, wobei jedes Segment von einem ursprünglichen Segmentwert um einen ersten eindeutigen Wert ansteigt, während der entsprechende Versatz von einem ursprünglichen Versatzwert um einen zweiten eindeutigen Wert abnimmt, der einen Faktor des ersten eindeutigen Wertes ist, so dass die effektive Adresse der Standardunterbrechungsbehandlungsroutine unverändert bleibt.
  10. System nach Anspruch 9, wobei das Speicherelement ein nichtflüchtiges Speicherelement umfasst, das das Systemausführungsprogramm aufweist, das ein Betriebssystem- oder einen BIOS-Code (Basic Input/Output System) aufweist.
DE69838343T 1997-12-12 1998-11-16 Ein system unmd verfahren für fallenaddressenerfassung für fehlerisolation Expired - Lifetime DE69838343T2 (de)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US08/989,421 US5940587A (en) 1997-12-12 1997-12-12 System and method for trap address mapping for fault isolation
US989421 1997-12-12
PCT/US1998/024419 WO1999031591A1 (en) 1997-12-12 1998-11-16 A system and method for trap address mapping for fault isolation

Publications (2)

Publication Number Publication Date
DE69838343D1 DE69838343D1 (de) 2007-10-11
DE69838343T2 true DE69838343T2 (de) 2008-05-21

Family

ID=25535101

Family Applications (1)

Application Number Title Priority Date Filing Date
DE69838343T Expired - Lifetime DE69838343T2 (de) 1997-12-12 1998-11-16 Ein system unmd verfahren für fallenaddressenerfassung für fehlerisolation

Country Status (5)

Country Link
US (1) US5940587A (de)
EP (1) EP1038227B1 (de)
AU (1) AU1412099A (de)
DE (1) DE69838343T2 (de)
WO (1) WO1999031591A1 (de)

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6606676B1 (en) * 1999-11-08 2003-08-12 International Business Machines Corporation Method and apparatus to distribute interrupts to multiple interrupt handlers in a distributed symmetric multiprocessor system
US7487339B2 (en) * 2001-10-12 2009-02-03 Mips Technologies, Inc. Method and apparatus for binding shadow registers to vectored interrupts
US7552261B2 (en) * 2001-10-12 2009-06-23 Mips Technologies, Inc. Configurable prioritization of core generated interrupts
US20040128493A1 (en) * 2002-12-27 2004-07-01 Zimmer Vincent J. Methods and apparatus for providing a firmware defined radio
TWI259358B (en) * 2004-04-16 2006-08-01 Quanta Comp Inc A system and a method for decoding port data
US7747899B2 (en) * 2007-06-26 2010-06-29 Microsoft Corporation Providing mapping fault processing
US8566780B2 (en) 2007-06-26 2013-10-22 Microsoft Corporation Object model based mapping
CN106547653B (zh) * 2015-09-21 2020-03-13 龙芯中科技术有限公司 计算机系统故障状态检测方法、装置及系统
CN106547668B (zh) * 2015-09-21 2019-09-24 龙芯中科技术有限公司 计算机系统故障告警方法、装置及系统

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5027273A (en) * 1985-04-10 1991-06-25 Microsoft Corporation Method and operating system for executing programs in a multi-mode microprocessor
JPH01112450A (ja) * 1987-10-27 1989-05-01 Sharp Corp メモリ管理ユニット
US5125087A (en) * 1988-11-07 1992-06-23 Microsoft Corporation Method of resetting sequence of access to extended memory disrupted by interrupt processing in 80286 compatible system using code segment register
JP2658473B2 (ja) * 1990-02-26 1997-09-30 日本電気株式会社 マイクロコンピュータ
US5175847A (en) * 1990-09-20 1992-12-29 Logicon Incorporated Computer system capable of program execution recovery
US5418956A (en) * 1992-02-26 1995-05-23 Microsoft Corporation Method and system for avoiding selector loads
US5715420A (en) * 1995-02-10 1998-02-03 International Business Machines Corporation Method and system for efficient memory management in a data processing system utilizing a dual mode translation lookaside buffer
US5692170A (en) * 1995-04-28 1997-11-25 Metaflow Technologies, Inc. Apparatus for detecting and executing traps in a superscalar processor
US5812868A (en) * 1996-09-16 1998-09-22 Motorola Inc. Method and apparatus for selecting a register file in a data processing system
US5784550A (en) * 1996-10-29 1998-07-21 Hewlett-Packard Company Method for enhanced functional testing of a processor using dynamic trap handlers

Also Published As

Publication number Publication date
WO1999031591A1 (en) 1999-06-24
US5940587A (en) 1999-08-17
EP1038227A4 (de) 2002-06-19
EP1038227A1 (de) 2000-09-27
EP1038227B1 (de) 2007-08-29
DE69838343D1 (de) 2007-10-11
AU1412099A (en) 1999-07-05

Similar Documents

Publication Publication Date Title
DE112009000344B4 (de) Zugriffsrechte auf eine Speicher-Map
DE10297433B4 (de) Speicherverwaltungseinheit, Verfahren zum Bereitstellen einer Speicherzugriffssicherheit auf der Basis einer linearen Adresse und Prozessor
DE4329336C2 (de) Einrichtung und Verfahren zur Identifizierung eines Computer-Mikroprozessors
DE60210434T2 (de) Betriebssystemselektor und Datenplattenspeicher
DE2517276A1 (de) Datenverarbeitungssystem
DE19635204A1 (de) Ausnahme-Sicherheitsschaltung
DE10253137A1 (de) Verfahren zur Auswertung von skalierbaren, symmetrischen Kohärenz-Protokollen und Algorithmen eines Mehrprozessor-Cache-Speichers
DE10296986T5 (de) Automatischer Austausch einer detekten BIOS-Abbildung
DE69838343T2 (de) Ein system unmd verfahren für fallenaddressenerfassung für fehlerisolation
DE10297687B4 (de) Prozessor mit Eingabe/Ausgabeerlaubnisbitstrukturen für in Bereiche aufgeteilte Sicherheit und Verfahren zum selektiven Ausführen einer Eingabe/Ausgabe-Instruktion
DE112007000688B4 (de) Fehlerverwaltungstopologien
DE19852250A1 (de) System und Verfahren zum Ändern der Zuordnung einer Partition zu einem logischen Laufwerk in einem Computerspeicher
DE102009049078A1 (de) Verwendung von Ausführer-Wissen über Speicherregion-Ordnungsanforderungen zum Modifizieren von Transaktionsattributen
DE102005037855A1 (de) System und Verfahren zum Speichern von Benutzerdaten in einer Partitionsdatei oder zum Verwenden einer Partitionsdatei, die Benutzerdaten enthält
DE112014000340T5 (de) Vorablesezugriff auf Daten für einen Chip mit einem übergeordneten Kern und einem Scout-Kern
DE102013213314A1 (de) Hinterlegen mindestens eines berechenbaren Integritätsmesswertes in einem Speicherbereich eines Speichers
DE3911721C2 (de)
DE10297686B4 (de) System und Verfahren zum Steuern der Zugriffe zwischen einzelnen Geräten innerhalb eines Computersystems
DE2906789A1 (de) Speicherpruefsystem
DE10392810T5 (de) System und Verfahren zum Filtern von Prozessoren nach Integrität während früher Firmware für eine Architektur mit aufgeteilter Wiederherstellung
DE2723706A1 (de) Einrichtung zum adressenvergleich
DE102006040794A1 (de) Softwareprogramm mit alternativen Funktionsbibliotheken
DE112017006932B4 (de) Simulationseinrichtung, Simulationsverfahren und Simulationsprogramm
DE102020118022A1 (de) Erzeugen verschiedener traces für grafikprozessorcode
DE3241357A1 (de) Vorrichtung zur mikrobefehls-bereitstellung fuer mindestens zwei unabhaengig arbeitende funktionseinheiten in einem integrierten, mikroprogrammierten elektronischen baustein und verfahren zu ihrem betrieb

Legal Events

Date Code Title Description
8364 No opposition during term of opposition
8328 Change in the person/name/address of the agent

Representative=s name: HEYER, V., DIPL.-PHYS. DR.RER.NAT., PAT.-ANW., 806