DE69817170T2 - Emulation von unterbrechungsmechanismus in einem multiprozessorsystem - Google Patents

Emulation von unterbrechungsmechanismus in einem multiprozessorsystem Download PDF

Info

Publication number
DE69817170T2
DE69817170T2 DE69817170T DE69817170T DE69817170T2 DE 69817170 T2 DE69817170 T2 DE 69817170T2 DE 69817170 T DE69817170 T DE 69817170T DE 69817170 T DE69817170 T DE 69817170T DE 69817170 T2 DE69817170 T2 DE 69817170T2
Authority
DE
Germany
Prior art keywords
processor
interrupt
information
register
bus
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
DE69817170T
Other languages
English (en)
Other versions
DE69817170D1 (de
Inventor
Muthurajan Jayakumar
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 DE69817170D1 publication Critical patent/DE69817170D1/de
Publication of DE69817170T2 publication Critical patent/DE69817170T2/de
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4812Task transfer initiation or dispatching by interrupt, e.g. masked
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45554Instruction set architectures of guest OS and hypervisor or native processor differ, e.g. Bochs or VirtualPC on PowerPC MacOS

Landscapes

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

Description

  • GEBIET DER ERFINDUNG
  • Die vorliegende Erfindung betrifft allgemein das Gebiet der Computersysteme auf Mikroprozessorbasis. Im Besonderen betrifft die vorliegende Erfindung ein verbessertes Mehrprozessorsystem zur Behandlung der Unterbrechungsanforderungen.
  • STAND DER TECHNIK
  • Auf dem Gebiet der Mikroprozessoren handelt es sich bei Unterbrechungen um Ereignisse, die während der Befehlsverarbeitung auftreten, wobei bewirkt wird, dass die Ablaufsteuerung zu einer Unterbrechungsbehandlungsroutine geleitet wird. Während des Ablaufs werden bestimmte Prozessorzustandsinformationen automatisch durch die Hardware gespeichert, die sich normalerweise auf der gleichen integrierten Schaltung befindet wie die Zentraleinheit (CPU). Nach Abschluss der Unterbrechungsverarbeitung wird ein "Rücksprung von der Unterbrechung" ausgeführt, wobei der gespeicherte Prozessorzustand wiederhergestellt wird, wobei die Ausführung ab dem Unterbrechungsbefehl fortfährt. Jedes komplexe Computersystem weist eine gewisse Art eines Mechanismus für den Umgang mit Unterbrechungen auf.
  • In der Vergangenheit mussten sich kleine Computer auf der Basis der beliebten Mikroprozessoren i386 und i486 nicht mit Unterbrechungskommunikationen unter Prozessoren bzw. innerhalb von Prozessoren auseinandersetzen. Diese System waren zur Kommunikation über einen Systembus ausgerichtet, wobei der Systembus jedoch nicht für Unterbrechungskommunikationen in Prozessoren eingesetzt werden konnte, da die Busarchitektur die Abwärtskompatibilität mit der älteren ×86-Plattform beibehalten musste. Diese Situation hat beispielsweise zu der Entwicklung eines separaten Busses geführt, und zwar eines designierten Busses zur Abwicklung der Funktion der Prozessorunterbrechungskommunikationen, ohne die existierende Plattform zu stören oder die Abwärtskompatibilität zu beeinträchtigen. Dieser Ansatz wird zum Beispiel in dem U.S. Patent US-A-5,511,200 offenbart, das auf den Zessionar des vorliegenden Patents übertragen worden ist.
  • Andere Ansätze zur Lösung des Problems der Unterbrechungsbehandlung umfassen das U.S. Patent US-A-4,495,569, worin ein Mehrprozessorsystem mit einer Unterbrechungs-Steuereinheit gelehrt wird, die dazu dient eine Unterbrechung an einem Zielprozessor anzuwenden. Eine Busschnittstellen-Unterbrechungsanordnung, die separate Unterbrechungs-Controller für jeden Bus in einem Computersystem mit mehreren Bussen vorsieht, wird in dem U.S. Patent US-A-5,134,706 gelehrt. In dem U.S. Patent US-A-5,155,853 wird ein weiterer Ansatz zur Lösung des Problems gelehrt, wobei darin eine in einer CPU integrierte Unterbrechungs-Steuereinheit gelehrt wird. Die Unterbrechungs-Steuereinheit spricht auf Unterbrechungs-Anforderungssignale an und startet eine Unterbrechungsbehandlungsroutine.
  • Bei Mehrprozessorsystemen auf der Basis der Intel ArchitectureTM hat der Einsatz eines dedizierten Busses für die Prozessorunterbrechungssteuerung (PIC) deutlich zugenommen. Folglich wurde ein ganzes Protokoll zur Regelung des Betriebs über den PIC-Bus entwickelt. Zum Beispiel wurden in der Mehrprozessorsystemumgebung bestimmte Merkmale erzeugt, die schnell von Softwareentwicklern übernommen worden sind. Ein derartiges Merkmal ist das Arbitrierungskonzept eines Ziels mit niedrigster Priorität (LPD). Gemäß dem LPD- Arbitrierungsplan wird eine in dem Mehrprozessorsystem erzeugte Unterbrechung zur Unterbrechungsbehandlung zu dem am wenigsten ausgelasteten Prozessor (d. h. dem Prozessor mit der niedrigsten Priorität) übertragen. Anders ausgedrückt bedeutet dies, dass der am wenigsten ausgelastete Prozessor in dem System gemäß dem LPD-Plan identifiziert wird, und wobei dieser Prozessor daraufhin die Aufgabe zur Behandlung von Unterbrechungen übertragen bekommt. Hiermit wird festgestellt, dass die Priorität in einem derartigen System dynamisch ist, das heißt, ein Prozessor kann zu einem bestimmten Zeitpunkt sehr ausgelastet sein (d. h. höchste Priorität), während er zum nächsten Zeitpunkt gar nicht ausgelastet ist.
  • Der Erfolg der PIC-Architektur führte zu deren Aufnahme in Mehrprozessorsysteme auf der Basis von Mehrprozessor-Computersystemen vom Typ Pentium® und Pentium® ProTM. Beide Prozessoren wurden kompatibel mit einem PIC-Bus entwickelt.
  • Im Zuge weiter ansteigender CPU-Frequenzen und immer geringer werdenden Stromversorgungspotentialen hat sich das Problem entwickelt, dass die inhärenten Einschränkungen der PIC-Busarchitektur deutlich geworden sind. Im Besonderen weist die PIC-Busarchitektur bestimmte elektrische Anforderungen in Bezug auf Spannungshübe, Arbeitsfrequenzen, Spannungspotentiale, etc. auf, die mit den modernsten Mehrprozessorsystemen mit hohen Frequenzen und geringer Leistungsaufnahme nicht kompatibel sind. Anders ausgedrückt ist die elektrische Beschaffenheit des PIC-Busses durch dessen Abhängigkeit von hohen Spannungsebenenanforderungen eingeschränkt, die mit den Bauarten modernerer Mehrprozessorsysteme nicht kompatibel sind. Die Herausforderung, die sich Systementwicklern stellt, ist die Frage, wie Hardwareverbesserungen umgesetzt werden können, ohne dass die Softwarekompatibilität darunter leidet, wie etwa die Zielausrichtung auf den Prozessor mit der niedrigsten Priorität, die für die ×86-Kompatibilität erforderlich ist. Mit anderen Worten machen weitere Verbesserungen der Hardware und der Software für zukünftige Mikroprozessorsysteme die Abkehr von der herkömmlichen PIC-Busarchitektur erforderlich. Gleichzeitig müssen zukünftige Prozessorentwicklungen die Merkmale der PIC-Busarchitektur unterstützen, wie etwa die Zielausrichtung auf den Prozessor mit der niedrigsten Priorität, um eine umfassende binäre Kompatibilität mit bereits vorhandener Software zu erreichen.
  • Wie die deutlich wird, sieht die vorliegende Erfindung einen Mechanismus zum Emulieren des Prozessors mit der niedrigsten Priorität in einem Mehrprozessorsystem vor, wobei Prozessorunterbrechungen über einen Hochgeschwindigkeits-Systembus übertragen werden.
  • KURZE BESCHREIBUNG DER ZEICHUNGEN
  • Die vorliegende Erfindung wird beim Lesen der folgenden genauen Beschreibung in Verbindung mit den Zeichnungen besser verständlich. In den Zeichnungen zeigen:
  • 1 ein Blockdiagramm auf höherer Ebene eines gemäß der vorliegenden Erfindung arbeitenden Mehrprozessorsystems;
  • 2 ein Blockdiagramm auf Architekturebene eines Ausführungsbeispiels eines Prozessors, der die vorliegende Erfindung aufweist
  • 3 ein detailliertes Blockdiagramm des in einem Ausführungsbeispiel eines erfindungsgemäßen Mikroprozessors implementierten Emulationsmechanismus;
  • 4A ein Adressierungsformat für externe Unterbrechungsnachrichten gemäß einem Ausführungsbeispiel der vorliegenden Erfindung;
  • 4B das Datenformat für externe Unterbrechungsnachrichten gemäß einem Ausführungsbeispiel der vorliegenden Erfindung; und
  • 5 die Struktur des in einem Ausführungsbeispiel der vorliegenden Erfindung verwendeten lokalen Identifikationsregisters.
  • ZUSAMMENFASSUNG DER ERFINDUNG
  • Bei der vorliegenden Erfindung handelt es sich um ein Mehrprozessor-Computersystem, das ein Emulationsmerkmal für eine Softwarekompatibilität für einen Prozessor mit niedrigster Priorität aufweist und fehlertolerant ist.
  • In einem Ausführungsbeispiel weist das System erste und zweite Prozessoren auf, die mit einem Systembus gekoppelt sind, der die Übermittlung von Unterbrechungsnachrichten in dem System behandelt. Wenn ein Befehl durch den ersten Prozessor decodiert wird, und dieser Befehl ein Unterbrechungsmerkmal spezifiziert, bewirkt ein Mikrocode in dem ersten Prozessor das Auftreten einer Trap. Als Reaktion auf die Trap liest der Mikrocode ID-Informationen aus einem Register des ersten Prozessors. Diese ID-Informationen dienen als physikalischer Name des ersten Prozessors. Danach übermittelt der erste Prozessor eine Unterbrechungsnachricht über den Systembus. Die Unterbrechungsnachricht weist die ID-Informationen auf, die aus dem ID-Register gelesen worden sind. Diese ID-Informationen sind in einem ID-Feld der Nachricht für den Zielprozessor enthalten.
  • Nach der Übermittlung auf dem Systembus akzeptiert der erste Prozessor letztendlich die Unterbrechungsnachricht, da das ID-Feld des Zielprozessors mit dem physikalischen Namen des ersten Prozessors übereinstimmt. Der erste Prozessor wird dadurch als der Prozessor in dem Mehrprozessorsystem (MP-System) bezeichnet, der die Unterbrechung behandelt.
  • GENAUE BESCHREIBUNG
  • Die Abbildung aus 1 zeigt ein allgemeines Blockdiagramm eines Computersystems 10, das vier Prozessoren (CPU1–4) umfasst, von denen jeder mit einem gemeinsamen Systembus 12 gekoppelt ist. In einem Ausführungsbeispiel der vorliegenden Erfindung umfasst der Systembus 12 einen 250 MT/SEC oder höheren Systembus, der auch für die Unterbrechungskommunikationen innerhalb der Prozessoren verwendet wird. Der Systembus 12 ist mit anderen Worten so gestaltet, dass Unterbrechungsnachrichten über den Systembus übermittelt werden.
  • Zum besseren Verständnis der vorliegenden Erfindung zählen zu den verschiedenen Klassen, die während der Befehlsverarbeitung auftreten können, folgende Optionen: Fehler, Traps, Unterbrechungen und Abbrüche. Ein Fehler tritt ein, wenn das aktuelle Befehlspaket einen bestimmten Befehl aufweist, der eine Handlung anfordert, die nicht ausgeführt werden kann oder soll, oder es ist eine anderweitige Systemintervention vor der Ausführung des Befehls erforderlich. Fehler sind in Bezug auf den Befehlsstrom synchron. Der Prozessor führt Zustandsänderungen vollständig aus, die in Befehlen vor dem fehlerhaften Befehl aufgetreten sind. Der fehlerbehaftete Befehl und folgende Befehle weisen jedoch keinen Effekt auf den Maschinenzustand auf. Traps sind in Bezug auf den Befehlsstrom ebenfalls synchron und treten auf, wenn der gerade ausgeführte Befehl einen Systemeingriff erfordert. Der Trap-Befehl und vorherige Befehle werden vollständig ausgeführt. Folgende Befehle wirken sich nicht auf den Maschinenzustand aus. Unterbrechungen treten auf, wenn eine externe oder unabhängige Entität, wie zum Beispiel eine Ein/Ausgabevorrichtung (E/A), ein Timer, ein Ereignis, etc. eine gewisse Aufmerksamkeit erfordern. Unterbrechungen sind im Verhältnis zu dem Befehlsstrom asynchron. Alle vorherigen Befehle erscheinen ausgeführt. Der aktuelle Befehl und folgende Befehle wirken sich nicht auf den Maschinenzustand auf. Schließlich tritt ein Abbruch auf, wenn der Prozessor eine interne Fehlfunktion oder ein Rücksetzereignis feststellt. Abbrüche können im Verhältnis zu dem Befehlsstrom synchron oder asynchron sein und sie können es bewirken, dass der Prozessor den Befehlsstrom an einer unvorhersehbaren Position anhält.
  • Die Abbildung aus 2 zeigt ein Blockdiagramm, das die Grundarchitektur eines Prozessors 20 veranschaulicht, der gemäß einem Ausführungsbeispiel der vorliegenden Erfindung implementiert wird. Die Architektur des Prozessors 20 teilt die Verantwortlichkeiten für die Ausführung auf, und zwar zwischen einem Kernlogikabschnitt 22, der in Bezug auf eine erste Befehlsgruppenarchitektur arbeitet, und einem Abschnitt 21, der eine andere, zweite Befehlsgruppenarchitektur emuliert. In einem speziellen Ausführungsbeispiel decodiert der Abschnitt 21 speziell Befehle der Intel Architecture. Der Kernlogikabschnitt 22 sieht Befehle gemäß einer ersten Befehlsgruppenarchitektur vor sowie Daten, Ausführungsressourcen und einen Registersatz. Mit der Intel Architecture kompatible Befehle werden in dem Abschnitt 21 decodiert, wobei auch eine Folge interner Mikrobefehle erzeugt wird, die in einen Silbensatz umgesetzt werden, die an den Kernlogikabschnitt 22 ausgegeben werden. Diese werden in dem Abschnitt 22 danach durch die Ausführungseinheiten der Kernlogik ausgeführt. Die Mikroarchitektur des Prozessors 20 implementiert somit Makrobefehle mit Mikrocodesequenzen der Intel Architecture, wobei eine Mehrzahl der Makrobefehle einen Code umfasst, der mit dem Kernlogikabschnitt 22 kompatibel ist, in Verbindung mit zusätzlichen Steuersignalen, spezifisch für die Mikroarchitektur. Hiermit wird festgestellt, dass die Architektur des Prozessors 20 binär und codekompatibel ist, jedoch nicht unbedingt Abwärts-PINkompatibel. Der Prozessor 20 kann mit anderen Worten so implementiert werden, dass er mit älteren Computersystemen nicht Steckverbindungs-kompatibel ist. Diesbezüglich implementiert der Prozessor 20 nicht den gewöhnlichen dedizierten Unterbrechungs-Steuerungsbus, der dem Stand der Technik entsprechenden PIC-Architekturen zugeordnet ist. Stattdessen ist der Prozessor 20 so gestaltet, dass er in einem System funktionsfähig ist, wie dies etwa in der Abbildung aus 1 dargestellt ist, in dem Unterbrechungsnachrichten über den Systembus 12 übermittelt werden. Die Codekompatibilität zur Unterstützung der architektonischen Merkmale, wie etwa der Arbitrierung des Prozessors mit er niedrigsten Priorität, werden durch die vorliegende Erfindung unter Verwendung eines Mikrocodes erreicht, der das Ziel mit der niedrigsten Priorität auf die CPU richtet, welche die Software zu diesem Zeitpunkt ausführt.
  • Der Mikrocode greift auf ein spezielles Register zur CPU-Identifikation (CPU-ID) zu und gewinnt einen ID-Wert. Von dieser Stelle erfolgt eine Zielausrichtung auf das Prozessorziel mit der niedrigsten Priorität. Da das Ziel mit der niedrigsten Priorität in Bezug auf Software transparent ist, stellt diese Implementierung die ×86-Softwarekompatibilität sicher, während gleichzeitig eine Fehlertoleranz in einem Mehrprozessorsystem vorgesehen wird. Da der Mikrocode aufgrund der speziellen Beschaffenheit atomar ist, treten Kohärenzprobleme in dem Unterbrechungskommunikationsschema der vorliegenden Erfindung nicht auf. An dieser Stelle sollten Fachleute auf dem Gebiet erkennen, dass die vorliegende Erfindung den wichtigen Vorteil vorsieht, dass sie in die CPU eingeschlossen wird, so dass keine Modifikationen der Hardwareanwendungsschicht (HAL) des Systems erforderlich sind, wodurch keine zusätzlichen Hardwarekosten verursacht werden. Dies bedeutet, dass die Erfindung in Mehrprozessorsystemen integriert werden kann, ohne. dass eine zusätzliche Unterstützung durch andere Plattformsystemkomponenten erforderlich ist.
  • Die Abbildung aus 3 zeigt ein Blockdiagramm verschiedener interner funktionaler Einheiten eines Prozessors 20, die für die vorliegende Erfindung relevant sind. Da Softwareentwickler von Betriebssystemen in ihren Code Merkmale wie etwa das Prozessorziel mit der niedrigsten Priorität aufgenommen haben, kann der Prozessor 20 Software ausführen und zu jedem Zeitpunkt auf einen Befehl mit spezifiziertem Adressierungsmodus mit niedrigster Priorität treffen. Diesbezüglich arbeitet die Translationslogik in Abschnitt 21 in Verbindung mit dem Kernlogikabschnitt 22 des Prozessors, um Befehle zu erfassen und zu decodieren, die mit der Intel Befehlssatzarchitektur kompatibel sind, welche einen spezifizierten Adressierungsmodus mit niedriger Priorität aufweist. Die Decodierung und Translation für diesen Code erfolgt in Abschnitt 21. Wenn ein Befehl auf einen spezifizierten Adressierungsmodus mit niedrigster Priorität trifft, signalisiert die Translationslogik in Abschnitt 21 über ein über die Leitung 33 übermitteltes Signal an die Decodierungs- und Trap-Logik 45. Als Reaktion auf einen Befehl mit spezifiziertem Adressierungsmodus mit niedrigster Priorität erzeugt die Decodierungs- und Trap-Logik 45 eine Trap. Der Mikrocode in dem Abschnitt 21 weist verschiedene Schritte und Befehle auf, wodurch die Behandlung der Trap in der Trap-Steuereinheit 40 eingeleitet wird. Der Mikrocode verwendet die vorhandene PIC-Logik in der Einheit 50, die auch die CPU-ID speichert. Die CPU liest das ID-Register und platziert die ID-Informationen danach in dem Befehlsstrom, so dass es sich bei der laufenden CPU, welche die Unterbrechungen erzeugt hat, um die gleiche CPU handelt, welche die Trap behandelt.
  • Die Signalspeicher 4143 werden zur Kommunikation zwischen der Decodierungs- und Trap-Logikeinheit 45 und der PIC-Logikeinheit 50 eingesetzt. Zum Beispiel speichert der Signalspeicher 41 die Anforderungsinformationen für einen Zugriff auf das CPU ID-Register in der PIC-Logikeinheit 50. Das Lesen und Schreiben von Informationen aus der und in die PIC-Logikeinheit 50 erfolgt über die Signalspeicher 42 und 43. Informationen über den Mikrotrap-Status und die Steuerregister-ID-Nummer werden über die entsprechenden Signalleitungen 34 und 35 zu der Translationslogik in dem Abschnitt 21 übertragen. Der Steuerregisterzugriff wird über die Leitung 36 signalisiert.
  • Hiermit wird festgestellt, dass jeder CPU eine Anzahl von Steuerregistern zugeordnet ist. Außerhalb der CPU können E/A-Register, Speicherregister und speicherabgebildete E/A-Register vorhanden sein, wobei die herkömmliche PIC-Architektur ein Element darstellt. In dem Ausführungsbeispiel aus 3 sind die PIC-Register als Steuerregister in der Einheit 50 implementiert. Dies bedeutet, dass die Speicheradresse der PIC-Register nicht auf die dem Kernlogikabschnitt 22 zugeordnete Steuerregisteranzahl umgesetzt werden muss.
  • In folgendem Bezug auf die Abbildung aus 4A ist ein Adressierungsformat für externe Unterbrechungsnachrichten gemäß einem Ausführungsbeispiel der vorliegenden Erfindung dargestellt. Die Abbildung aus 4B veranschaulicht das Datenformat für externe Unterbrechungsnachrichten. Die Adressprozessor-Bezeichnerfelder EID und ID spezifizieren den Zielprozessor und sind in der folgenden Tabelle 1 definiert.
  • Tabelle 1
    Figure 00120001
  • Hiermit wird festgestellt, dass das Feld EID alle 0en und da Feld ID alle 1en aufweist, wobei die Unterbrechung an alle Prozessoren in dem Mehrprozessorsystem übermittelt wird.
  • Speichervorgänge in den physikalischen Adressbereich 0X000 0000 FFEX XXXX, bei denen es sich um nicht ausgerichtete nicht 8 Bytes handelt oder die durch einen Cache-Speicher abgebildet werden, sind unzulässig und können zu einem unvorhersehbaren Verhalten oder einem Maschinenprüfungsabbruch führen.
  • Das LID-Register ist in der PIC-Logikeinheit 50 angeordnet und speichert die lokalen Bezeichnerfelder des Prozessors. Diese Felder verwalten den physikalischen Namen des Prozessors in allen externen Unterbrechungsnachrichten. Das LID-Register wird beim Einschalten durch Firmware auf der Basis der physikalischen Position des Prozessors geladen. Ein Datenserialisierungsvorgang kann eingesetzt werden, um sicherzustellen, dass das LID-Register für zukünftig ankommende Unterbrechungen aktualisiert worden ist. Die Struktur des LID-Registers ist in der Abbildung aus 5 dargestellt, und die Felder EID und ID des lokalen Bezeichnerregisters werden in Tabelle 1 beschrieben. Hiermit wird festgestellt, dass es sich bei dem LID-Register in der PIC-Logikeinheit 50 um ein Schreib-Lese-Register handelt, auf das nur auf der Privilegebene 0 zugegriffen werden kann, wobei ansonsten ein Privilegbetriebsfehler erzeugt wird.
  • Wie dies bereits vorstehend im Text beschrieben worden ist, übermittelt das erfindungsgemäße Mehrprozessorsystem Unterbrechungsnachrichten über den Systembus, anstatt einen dedizierten Unterbrechungsbus zu verwenden. Implementiert wird dies unter Verwendung des Busanforderungspfads der CPU zur Übermittlung der Unterbrechungsnachricht auf den Systembus 12, wie dies in der Abbildung aus 3 dargestellt ist. Eine Busanforderungswarteschlange 60 wird verwendet, um Unterbrechungsnachrichten zur Übermittlung über den Systembus 12 von der Kernlogikeinheit 22 über die Leitung 61 zu stapeln. Wenn der Prozessor 20 gemäß der vorliegenden Erfindung einen Prozessorunterbrechungsnachricht über den Bus 12 übermittelt, wird diese von allen anderen Prozessoren in dem System ignoriert und kommt zurück zu der CPU 20, von der sie ausging. Dies bedeutet, dass die CPU 20 die Unterbrechungsanforderung behandelt, die sie zu dem Systembus 12 übermittelt hat. Wenn in dem an dem Prozessor 20 ausgeführtem Code auf die Informationen mit der niedrigsten Priorität getroffen wird, ist der Prozessor 20 automatisch der designierte Prozessor mit der niedrigsten Priorität. Hiermit wird jedoch festgestellt, dass für den Fall, dass der gleiche Softwarecode von einer anderen CPU in dem Mehrprozessorsystem ausgeführt wird, die aus dem Befehl erzeugte Unterbrechung, der die Informationen mit der niedrigsten Priorität aufweist, zu dieser CPU übermittelt wird. Der Fachmann erkennt, dass diese Lösung auf jede Anzahl von CPUs skalierbar ist, ohne dass etwaige Probleme in Bezug auf die Aufrechterhaltung der Kohärenz auftreten.

Claims (11)

  1. Verfahren in einem Mehrprozessor-Computersystem, das erste und zweite Prozessoren aufweist sowie einen Systembus zur Informationsübertragung zwischen den Prozessoren, wobei das genannte Verfahren ein Unterbrechungs-Arbitrierungsmerkmal emuliert, das in einem Befehl eines an dem ersten Prozessor ausgeführten Programms spezifiziert ist, wobei der Befehl eine Unterbrechung bewirkt, wobei das Verfahren die folgenden Schritte umfasst: (a) Decodieren des Befehls in dem ersten Prozessor; (b) Ansprechen auf die Decodierung des Befehls, der einen Adressierungsmodus mit der niedrigsten Priorität spezifiziert, wobei das Auftreten einer Trap in dem ersten Prozessor bewirkt wird; (c) Ansprechen auf die Trap, wobei Identifikations-Informationen (ID-Informationen) aus einem ID-Register des ersten Prozessors gelesen werden, wobei die ID-Informationen als physikalischer Name des ersten Prozessors dienen; (d) Senden einer Unterbrechungsnachricht über den Systembus, wobei die Nachricht die ID-Informationen aufweist, welche den Zielprozessor identifizieren; und (e) Annehmen der Unterbrechungsnachricht durch den ersten Prozessor, so dass der erste Prozessor zur Behandlung der Unterbrechung designiert ist.
  2. Verfahren nach Anspruch 1, wobei das Verfahren ferner den folgenden Schritte umfasst: (f) Behandeln der Unterbrechung durch den ersten Prozessor.
  3. Verfahren nach Anspruch 2, wobei die in der Unterbrechungsnachricht vorhandenen ID-Informationen in einem Zielprozessor-Identifikationsfeld gehalten werden.
  4. Verfahren nach Anspruch 1, wobei das Verfahren nach dem Schritt (d) ferner den folgenden Schritt umfasst: Ignorieren der Unterbrechungsnachricht durch den zweiten Prozessor.
  5. Verfahren nach Anspruch 1, wobei die Schritte (b) und (c) durch einen Mikrocode in dem ersten Prozessor implementiert werden.
  6. Verfahren nach Anspruch 1, wobei das Verfahren ferner den folgenden ersten Schritte umfasst: Laden der ID-Register der ersten und zweiten Prozessoren auf der Basis der physikalischen Positionen der ersten und zweiten Prozessoren.
  7. Verfahren nach Anspruch 5, wobei der Ladeschritt beim Einschalten oder Zurücksetzen des Mehrprozessor-Computersystems auftritt.
  8. Mehrprozessor-Computersystem (MP-Computersystem), das ein Unterbrechungs-Arbitrierungsmerkmal emuliert, das in einem Befehl eines Programms spezifiziert ist, wobei das MP-System folgendes umfasst: einen Systembus; eine Mehrzahl von Prozessoren, wobei mindestens ein erster Prozessor in dem MP-System folgendes aufweist: einen Decodierer, der den Befehl des Programms spezifiziert eine Trap-Logik, die es bewirkt, dass eine Trap als Reaktion auf die Decodierung des Befehls auftritt, wobei ein Adressierungsmodus mit der niedrigsten Priorität spezifiziert wird, wobei der Befehl eine Unterbrechung verursacht; ein ID-Register, das ID-Informationen aufweist, die als physikalischer Name des ersten Prozessors dienen; einen Mikrocode, der auf die Trap anspricht, indem er die ID-Informationen aus dem ID-Register liest; eine Busanforderungs-Warteschlange, die Nachrichten speichert, die über den Systembus übermittelt werden; und eine Kernlogik, die eine Unterbrechungsnachricht auf dem Systembus über die Busanforderungs-Warteschlange übermittelt, wobei die Unterbrechungsnachricht die ID-Informationen aufweist, welche den Zielprozessor identifizieren, der durch den Mikrocode aus dem ID-Register gelesen wird; und wobei die Kernlogik die Unterbrechungsnachricht wieder zurück angenommen wird, so dass der erste Prozessor zur Behandlung der Unterbrechung spezifiziert ist.
  9. MP-System nach Anspruch 8, wobei die Unterbrechung eine Innerprozessunterbrechung umfasst.
  10. MP-System nach Anspruch 8, wobei der erste Prozessor ferner eine Unterbrechungs-Behandlungsroutine umfasst, welche die Unterbrechung nach der Annahme der Unterbrechung durch die Kernlogik behandelt.
  11. MP-System nach Anspruch 8, wobei das System ferner eine Signalspeicherlogik zum Lesen und Schreiben von ID-Informationen aus und in das ID-Register umfasst.
DE69817170T 1997-04-18 1998-04-16 Emulation von unterbrechungsmechanismus in einem multiprozessorsystem Expired - Fee Related DE69817170T2 (de)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US08/843,996 US5889978A (en) 1997-04-18 1997-04-18 Emulation of interrupt control mechanism in a multiprocessor system
US843996 1997-04-18
PCT/US1998/007708 WO1998048346A2 (en) 1997-04-18 1998-04-16 Emulation of interrupt control mechanism in a multiprocessor system

Publications (2)

Publication Number Publication Date
DE69817170D1 DE69817170D1 (de) 2003-09-18
DE69817170T2 true DE69817170T2 (de) 2004-06-17

Family

ID=25291513

Family Applications (1)

Application Number Title Priority Date Filing Date
DE69817170T Expired - Fee Related DE69817170T2 (de) 1997-04-18 1998-04-16 Emulation von unterbrechungsmechanismus in einem multiprozessorsystem

Country Status (6)

Country Link
US (1) US5889978A (de)
EP (1) EP0976036B1 (de)
AU (1) AU7249598A (de)
DE (1) DE69817170T2 (de)
HK (1) HK1025642A1 (de)
WO (1) WO1998048346A2 (de)

Families Citing this family (24)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6093213A (en) * 1995-10-06 2000-07-25 Advanced Micro Devices, Inc. Flexible implementation of a system management mode (SMM) in a processor
US6571206B1 (en) * 1998-01-15 2003-05-27 Phoenix Technologies Ltd. Apparatus and method for emulating an I/O instruction for the correct processor and for servicing software SMI's in a multi-processor environment
US6173248B1 (en) * 1998-02-09 2001-01-09 Hewlett-Packard Company Method and apparatus for handling masked exceptions in an instruction interpreter
US6167479A (en) * 1998-08-03 2000-12-26 Unisys Corporation System and method for testing interrupt processing logic within an instruction processor
US6694457B2 (en) * 2001-03-06 2004-02-17 Hewlett-Packard Development Company, L.P. System and method for monitoring execution of privileged instructions
US7187209B2 (en) * 2003-08-13 2007-03-06 Via Technologies, Inc. Non-inverting domino register
US7386712B2 (en) * 2003-02-17 2008-06-10 Hewlett-Packard Development Company, L.P. Firmware developer user interface with break command polling
US20040162978A1 (en) * 2003-02-17 2004-08-19 Reasor Jason W. Firmware developer user interface
US20040162888A1 (en) * 2003-02-17 2004-08-19 Reasor Jason W. Remote access to a firmware developer user interface
US7222064B1 (en) * 2003-10-10 2007-05-22 Unisys Corporation Instruction processor emulation having inter-processor messaging accounting
US7721024B2 (en) * 2003-11-12 2010-05-18 Dell Products L.P. System and method for exiting from an interrupt mode in a multiple processor system
US20050102457A1 (en) * 2003-11-12 2005-05-12 Dell Products L.P. System and method for interrupt processing in a multiple processor system
US20050132022A1 (en) * 2003-12-12 2005-06-16 International Business Machines Corporation Computer system with LAN-based I/O
US7260752B2 (en) 2004-02-19 2007-08-21 International Business Machines Corporation Method and apparatus for responding to critical abstracted platform events in a data processing system
JP4265440B2 (ja) * 2004-02-24 2009-05-20 株式会社デンソー マイクロコンピュータ及びエミュレーション装置
US8853746B2 (en) * 2006-06-29 2014-10-07 International Business Machines Corporation CMOS devices with stressed channel regions, and methods for fabricating the same
US7594144B2 (en) 2006-08-14 2009-09-22 International Business Machines Corporation Handling fatal computer hardware errors
US7734873B2 (en) * 2007-05-29 2010-06-08 Advanced Micro Devices, Inc. Caching of microcode emulation memory
US7996595B2 (en) * 2009-04-14 2011-08-09 Lstar Technologies Llc Interrupt arbitration for multiprocessors
US8321614B2 (en) * 2009-04-24 2012-11-27 Empire Technology Development Llc Dynamic scheduling interrupt controller for multiprocessors
US8260996B2 (en) * 2009-04-24 2012-09-04 Empire Technology Development Llc Interrupt optimization for multiprocessors
US8234431B2 (en) * 2009-10-13 2012-07-31 Empire Technology Development Llc Interrupt masking for multi-core processors
CN103425541A (zh) * 2012-05-25 2013-12-04 鸿富锦精密工业(深圳)有限公司 异常处理机制检测电子装置、系统及方法
US10884751B2 (en) 2018-07-13 2021-01-05 Advanced Micro Devices, Inc. Method and apparatus for virtualizing the micro-op cache

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4763242A (en) * 1985-10-23 1988-08-09 Hewlett-Packard Company Computer providing flexible processor extension, flexible instruction set extension, and implicit emulation for upward software compatibility
US5327567A (en) * 1989-11-16 1994-07-05 Texas Instruments Incorporated Method and system for returning emulated results from a trap handler
US5517626A (en) * 1990-05-07 1996-05-14 S3, Incorporated Open high speed bus for microcomputer system
US5410709A (en) * 1992-12-17 1995-04-25 Bull Hn Information System Inc. Mechanism for rerouting and dispatching interrupts in a hybrid system environment
US5440747A (en) * 1993-09-27 1995-08-08 Hitachi America, Ltd. Data processor with control logic for storing operation mode status and associated method
JPH07334372A (ja) * 1993-12-24 1995-12-22 Seiko Epson Corp エミュレートシステム及びエミュレート方法
US5487146A (en) * 1994-03-08 1996-01-23 Texas Instruments Incorporated Plural memory access address generation employing guide table entries forming linked list

Also Published As

Publication number Publication date
EP0976036B1 (de) 2003-08-13
EP0976036A4 (de) 2001-11-14
WO1998048346A3 (en) 1999-02-18
EP0976036A2 (de) 2000-02-02
AU7249598A (en) 1998-11-13
WO1998048346A2 (en) 1998-10-29
HK1025642A1 (en) 2000-11-17
US5889978A (en) 1999-03-30
DE69817170D1 (de) 2003-09-18

Similar Documents

Publication Publication Date Title
DE69817170T2 (de) Emulation von unterbrechungsmechanismus in einem multiprozessorsystem
DE69421755T2 (de) Initialisierung von Mehrfachbus-Netzwerken
DE69633166T2 (de) Integrierter schaltkreis mit mehreren funktionen und gemeinsamer verwendung mehrerer interner signalbusse zur verteilung der steuerung des buszugriffes und der arbitration
DE69727407T2 (de) Verteilte Ausführung von modusungeeigneten Befehlen in Multiprozessorsysteme
DE69222528T2 (de) Verteilte multiprozessor-initialisierung und selbstprüfungssystem
DE10085374B4 (de) Systemmanagementspeicher für die Systemmanagement-Interrupt-Behandler wird in die Speichersteuereinrichtung integriert, unabhängig vom BIOS und Betriebssystem
DE69737423T2 (de) Verfahren und gerät zum replizieren von datenspeicherung in einem fortgeschrittenen mikroprozessor
DE69527499T2 (de) Schaltung zum Wiederzuweisen des Einschaltsprozessors in einem Mehrprozessorensystem
DE3685876T2 (de) Meister-sklave-mikroprozessorsystem mit einem virtuellen speicher.
DE19882696B4 (de) Speichertransaktionen auf einem Bus geringer Leitungsanzahl
DE69923085T2 (de) Initialisieren und wiederanlaufen von betriebssystemen
DE3687866T2 (de) System zur verwaltung einer mehrzahl gemeinsamer unterbrechungsbehandlungsroutinen in einer datenstruktur mit verknuepften listen.
DE3914265C2 (de)
DE69905689T2 (de) Verfahren und System zum Einstecken unter Spannung von Anpassungskarten in einer Buserweiterungsumgebung
DE69828074T2 (de) Direkt-speicherzugriff / transaktionen auf ein bus mit niedriger pinanzahl
DE102009061252B3 (de) Vorrichtung, Verfahren und System zur Verarbeitung einer Transaktion auf einem PCI-Bus mittels eines Root-Komplexes
DE2517276A1 (de) Datenverarbeitungssystem
DE68920929T2 (de) Zeitgeberkanal mit mehreren Zeitgeberreferenzmerkmalen.
DE3735828C2 (de) Verfahren zur Wiederaufnahme der Ausführung von Anweisungen nach einer Unterbrechung in einer mikroprogrammgesteuerten Datenverarbeitungsvorrichtung
DE3650165T2 (de) Buszustandssteuerungsschaltung.
DE69621212T2 (de) Busfehlerverarbeiter in einem Zweifachbussystem
DE102020133809A1 (de) Schnittstelle und warm-rücksetzpfad für speichervorrichtungsfirmware-upgrades
DE112004001887T5 (de) Optimierung der SMI-Handhabung und -Initialisierung
DE69717232T2 (de) Fehlertolerantes Bussystem
DE68919018T2 (de) Zeitgeberkanal mit Übereinstimmungserkennungsmerkmalen.

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

8339 Ceased/non-payment of the annual fee