DE102009050983A1 - Eine Technik, um Interrupts in einem Computersystem zu kommunizieren - Google Patents

Eine Technik, um Interrupts in einem Computersystem zu kommunizieren Download PDF

Info

Publication number
DE102009050983A1
DE102009050983A1 DE102009050983A DE102009050983A DE102009050983A1 DE 102009050983 A1 DE102009050983 A1 DE 102009050983A1 DE 102009050983 A DE102009050983 A DE 102009050983A DE 102009050983 A DE102009050983 A DE 102009050983A DE 102009050983 A1 DE102009050983 A1 DE 102009050983A1
Authority
DE
Germany
Prior art keywords
interrupt
icr
legacy
information
write
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
DE102009050983A
Other languages
English (en)
Inventor
Keshavan Tigard Tiruvallur
Rajesh Hillsboro Parthasarathy
James B. Banks Crossland
Shivnandan Portland Kaushik
Luke Portland Hood
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
Publication of DE102009050983A1 publication Critical patent/DE102009050983A1/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

Abstract

Eine Technik, um effiziente Interruptkommunikation innerhalb eines Computersystems zu ermöglichen. Bei einer Ausführungsform wird ein Advanced Programmable Interrupt Controller (APIC) über eine Reihe von Bits innerhalb eines APIC-Schnittstellenregisters verbunden, indem verschiedene Schnittstellenbefehle oder Operationen verwendet werden ohne Memory-Mapped Input/Output (MMIO) zu verwenden.

Description

  • Gebiet der Erfindung
  • Ausführungsformen der Erfindung betreffen allgemein das Gebiet der Datenverarbeitung und spezifischer das Gebiet des Kommunizierens von Interrupts in Computersystemen und Mikroprozessoren.
  • Hintergrund
  • Da Prozessoren mehrere Rechenkerne entweder heterogen oder homogen vereinigen und da Computersysteme mehrere Prozessoren enthalten, wird das Management von Interrupts immer schwieriger. Einige gegenwärtige Techniken haben Interrupts behandelt, indem sie ein Memory-Mapped Input/Output(MMIO)-Schema verwendeten, in dem ein Prozessor oder Kern (hier allgemein als „Agent” bezeichnet) Interruptinformation durch eine Speicherregion (z. B. DRAM) kommuniziert, die spezifisch für die Interrupt-Kommunikationsinformation reserviert ist. Zum Beispiel kann eine Stand der Technik Interrupt-Kommunikationstechnik, bei der ein Advanced Programmable Interrupt Controller (APIC) programmiert werden soll, die zu programmierende Information zum APIC durch die MMIO-Region kommunizieren.
  • Die Kommunikation von Interruptinformation zu/von einem APIC durch MMIO kann mehrere Nachteile haben, die verstärkt werden, während die Anzahl an Agenten und deshalb der Verkehr ansteigt. Zum Beispiel können MMIO-Zugänge erfordern, dass die Speicherregion, die in Verbindung mit dem APIC steht, mit einem „nicht in den Cache aufgenommen” (UC) Zugriffsmerkmal zugeordnet wird, das mit einem Hochleistungs-Overhead in Verbindung steht. Die UC-Schnittstelle erzwingt auch ein Serialisierungsverhalten, das für einen großen Teilsatz des APIC-Registers nicht erforderlich sein mag.
  • Das Verwenden einer MMIO-Schnittstelle kann auch die Verwendung von geposteten Schreibsemantiken erfordern und stellt einem Agenten begrenzte Kontrolle über die Reihenfolge von Lese- und Schreibvorgängen zum APIC bereit. Dies kann eine Auswirkung auf die Effizienz des Sendens von Interrupts mit einer größeren Anzahl an Lese-/Schreibvorgängen haben, die für grundlegende, mit Interrupts in Zusammenhang stehende Befehle, benötigt werden. Zum Beispiel kann das Senden eines Interrupts von einem Prozessor zu einem anderen über den Inter-Processor Interrupt (IPI; Zwischenprozessor-Interrupt) bei einigen Stand der Technik MMIO-Implementierungen entweder 1 UC-Lesevorgang und 2 UC-Schreibvorgänge erfordern, wenn eine Software keine Garantie braucht, dass der Interrupt den lokalen APIC verlassen hat, oder 2 UC-Lesevorgänge und 2 UC-Schreibvorgänge wenn eine Software eine Garantie braucht, dass der Interrupt den lokalen APIC verlassen hat.
  • Die Verwendung einer Stand der Technik MMIO-Schnittstelle kann die Fähigkeit begrenzen, der Systemsoftware erwünschte Mechanismen für die Interruptlieferung effizient bereitzustellen. Spezifische Beispiele enthalten Operationen, um Interrupt-Prioritätsebenen zu ändern, die bei einigen Stand der Technik Implementierungen durch die Systemsoftware durchgeführt werden, indem sie in das Task Priority Register (TPR) schreibt, und „End-Of-Interrupt”(EOI)-Operationen, die von der Systemsoftware durchgeführt werden können, indem sie in das EOI-Register des APIC schreibt. Die Systemsoftware kann die Fertigstellung von diesen Operationen in Verbindung mit der Fertigstellung jeglicher Repriorisierungsoperation erwünschen, sodass jegliche Interrupts, die deterministisch vor diesen Operationen gepostet wurden, sofort im Anschluss an diese Operationen hochgestellt werden. Wenn diese Garantien fehlen, kann die Systemsoftware ineffiziente abfragebasierte Mechanismen verwenden, die den APIC-Verkehr erhöhen.
  • Die Verwendung MMIO-basierter Interruptinformation kann auch andere Merkmale innerhalb eines Computersystems beeinflussen. Zum Beispiel kaum die Verwendung von Stand der Technik MMIO-Interrupt-Kommunikationssschnittstellen-Techniken die Virtualisierungskomplexität und den Overhead für die Virtualisierung von APIC-Zugriffen erhöhen. Befehle, die verwendet werden, um auf den Interruptcontroller zuzugreifen, können zum Beispiel die Verwendung eines Virtual Machine Monitor (VVM) erfordern, um Virtualisierung in einem Computersystem zu unterstützen. Der zuvor mit MMIO-Operationen besprochene Overhead kaum mit denjenigen verbunden werden, die vom VMM verwendet werden, um in virtuelle Maschinen im System ein- und auszusteigen.
  • Schließlich kann das Erkennen und das Erzwingen von reservierten Bits innerhalb einer APIC-Schnittstelle hohe Implementierungskosten beinhalten, wenn sie durch MMIO verbunden werden, insbesondere da die Anzahl an Agenten, die den APIC verwenden, erhöht ist. Einige Stand der Technik Interrupt-Kommunikationstechniken können die Verwendung von reservierten Bitadressen für zukünftige erweiterungsfähige Architekturen begrenzen, da Legacy-Software inkorrekterweise in eines der Register schreiben könnte.
  • Zumindest aus den obengenannten Gründen können einige Stand der Technik Interrupt-Kommunikationstechniken, einschließlich derjenigen, die MMIO bei der Kommunikation von Interruptinformation verwenden, nicht geeignet sein, um eine zunehmende Anzahl an Verarbeitungskernen in Mehrkernprozessoren oder Prozessoren in Mehrprozessorsystemen zu unterstützen.
  • Kurze Beschreibung der Zeichnungen
  • Ausführungsformen der Erfindung werden exemplarisch und in keiner Weise einschränkend in den Figuren der begleitenden Zeichnungen dargestellt, wobei Bezugsnummern zum Verweis auf ähnliche Elemente verwendet werden:
  • 1 zeigt das Blockdiagramm eines Mikroprozessors, in dem mindestens eine Ausführungsform der Erfindung verwendet werden kann.
  • 2 zeigt ein Blockdiagramm eines gemeinsam genutzten Computer-Bussystems, in dem mindestens eine erfindungsgemäße Ausführungsform verwendet werden kann.
  • 3 zeigt ein Blockdiagramm einer Punkt-zu-Punkt-Kopplungsstruktur eines Computersystems, in der mindestens eine erfindungsgemäße Ausführungsform verwendet werden kann.
  • 4 zeigt das Blockdiagramm einer Logik, in der mindestens eine Ausführungsform der Erfindung implementiert werden kann.
  • 5 ist ein Flussdiagramm der Operationen, die in Verbindung mit mindestens einer Ausführungsform der Erfindung verwendet werden können.
  • Ausführliche Beschreibung
  • 1 zeigt einen Mikroprozessor, in dem mindestens eine Ausführungsform der Erfindung verwendet werden kann. Insbesondere zeigt 1 den Mikroprozessor 100, der einen oder mehre Prozessoren 105 und 110 besitzt, von denen jeder mit einem lokalen Cache 107 und 113 verbunden ist. 1 zeigt auch einen gemeinsam benutzten Cache-Speicher 115, der Versionen von mindestens einem Teil der Information, die in jedem der lokalen Caches 107 und 113 gespeichert ist, speichern kann. Bei einigen Ausführungsformen kann Mikroprozessor 100 auch andere Logik umfassen, die nicht in 1 gezeigt wird, wie z. B. einen integrierten Memory-Controller, einen integrierten Grafikcontroller, sowie weitere Logik, um andere Funktionen innerhalb eines Computersystems wie z. B. die Eingangs/Ausgangs-(I/O–Input/Output)-Steuerung auszuführen. Bei einer Ausführungsform kann jeder Mikroprozessor in einem Mehrprozessorsystem oder jeder Prozessorkern in einem Mehrkernprozessor Logik 119 enthalten oder anderweitig damit in Verbindung stehen, um Interrupt-Kommunikationstechniken in Verbindung mit mindestens einer Ausführungsform zu aktivieren. Die Logik kann Schaltungen, Software oder beides enthalten, um effizientere Interruptkommunikation unter einer Mehrzahl von Kernen oder Prozessoren zu ermöglichen, als es in einigen Stand der Technik Implementierungen der Fall ist.
  • Bei einer Ausführungsform kann Logik 119 ein oder mehrere APIC-Schnittstellenregister enthalten, deren Inhalt durch eine Reihe von Standardbefehlen oder durch anwendungsspezifische Befehle ohne Verwendung von MMIO manipuliert oder gelesen werden kann. Bei einer Ausführungsform enthält die Logik 119 zum Beispiel eine Registerschnittstelle, die unter Verwendung einer ursprünglichen Instruction Set Architecture (ISA; Befehlsvorrat-Architektur) kommuniziert werden kann. Indem ein Register mehrere Register oder andere Speicher unterstützt, die über die native ISA verbunden werden können, kann bei einer Ausführungsform die Anzahl an Zugriffszyklen und der Overhead in Verbindung mit kommunizierenden Interrupts, im Vergleich zu einigen gegenwärtigen Techniken, reduziert werden. Bei einer Ausführungsform kann ein oder mehrere Model-Specific Register (MSR; modellspezifisches Register) verwendet und über Stand der Technik Lese- und Schreiboperationen (z. B. „RDMSR” und „WRMSR” Befehle) darauf zugegriffen werden, indem Stand der Technik MSR-Adressen verwendet werden. Bei anderen Ausführungsformen ein neuer Satz von Lese-/Schreibbefehlen und der Adressbereich für die Interruptcontroller-Register. Bei einer Ausführungsform wird neue Semantik innerhalb einer neuen APIC-Registerschnittstelle explizit unterstützt, die die Anzahl an Zugriffszyklen, die erforderlich sind, um Interruptinformation zu kommunizieren, in Bezug auf den Stand der Technik reduzieren kann. Bei einer Ausführungsform können vorhandene Mikroarchitektur-Mechanismen für die Überprüfung von reservierten Bits verwendet werden, um die Verwendung von reservierten Registerspeichern für zukünftige Architekturerweiterungen sicherzustellen. Bei einer Ausführungsform kann eine Systemsoftware weiterhin die Legacy-MMIO-Schnittstelle verwenden. Deshalb kann mindestens eine Ausführungsform beides bereitstellen, die Legacy- als auch die neue hier beschriebene APIC-Registerschnittstelle. Bei einer Ausführungsform kann eine Implementierung einer neuen APIC-Registerschnittstelle, die MSRs verwendet, mit der Legacy-Schnittstelle mit relativ niedrigen stufenweisen Implementierungskosten koexistieren.
  • 2 zeigt zum Beispiel ein Front-Side-Bus(FSB)-Computersystem, in dem eine Ausführungsform der Erfindung verwendet werden kann. Jeder Prozessor 201, 205, 210 oder 215 kann auf Information von jedem lokalen Level Eins(L1)-Cachespeicher 220, 225, 230, 235, 240, 245, 250, 255 innerhalb oder anderweitig in Verbindung mit einem der Prozessorkerne 223, 227, 233, 237, 243, 247, 253, 257 stehend, zugreifen. Außerdem kann jeder Prozessor 201, 205, 210, oder 215 auf Information von jedem der gemeinsam benutzten Level Zwei(L2)-Caches 203, 207, 213, 217 oder vom Systemspeicher 260 über den Chipsatz 265 zugreifen. Ein Prozessor oder mehrere der Prozessoren in 2 können Logik 219 enthalten oder anderweitig damit in Verbindung stehen, um Interrupt-Kommunikationstechniken in Verbindung mit mindestens einer Ausführungsform zu ermöglichen.
  • Neben dem FSB-Computersystem nach 2 können auch andere Systemkonfigurationen in Verbindung mit verschiedenen erfindungsgemäßen Ausführungsformen, einschließlich Punkt-zu-Punkt(P2P)-Kopplungssysteme und Ringkopplungssysteme, verwendet werden. Das P2P-System nach 3 kann z. B. mehrere Prozessoren umfassen, von denen nur zwei, nämlich Prozessor 370, 380, exemplarisch gezeigt werden. Die Prozessoren 370, 380 können je einen lokalen Memory Controller Hub (MCH) 372, 382 für die Verbindung mit dem Speicher 32, 34 enthalten. Die Prozessoren 370, 380 können über eine Punkt-zu-Punkt(PtP)-Schnittstelle 350 unter Verwendung der PtP-Schnittstellenschaltungen 378, 388 Daten austauschen. Bei den Prozessoren 370, 380 erfolgt der Datenaustausch mit einem Chipsatz 390 über einzelne PtP-Schnittstellen 352, 354, wobei die Punkt-zu-Punkt-Schnittstellenschaltungen 376, 394, 386, 398 verwendet werden. Der Chipsatz 390 kann mit einer Hochleistungsgrafikschaltung 338 über eine Hochleistungsgraphikschnittstelle 339 Daten austauschen. Erfindungsgemäße Ausführungsformen können innerhalb jedes Prozessors mit beliebiger Anzahl an Prozessorkernen oder innerhalb jedes PtP-Bus-Agenten nach 3 vorgesehen werden. Bei einer Ausführungsform kann jeder Prozessorkern einen lokalen Cachespeicher (nicht abgebildet) enthalten oder anderweitig damit in Verbindung stehen. Außerdem kann in jedem Prozessor ein gemeinsam benutzter Cache (nicht abgebildet) außerhalb von den beiden Prozessoren enthalten sein, der jedoch mit den Prozessoren über die P2P-Kopplungsstruktur in solcher Weise verbunden ist, dass jede (oder beide) der lokalen Cache-Informationen der Prozessoren im gemeinsam benutzten Cache gespeichert werden können, wenn ein Prozessor in einen Energiesparmodus versetzt wird. Ein Prozessor oder mehrere der Prozessoren oder Kerne in 3 können Logik 319 enthalten oder anderweitig damit in Verbindung stehen, um Interrupt-Kommunikationstechniken in Verbindung mit mindestens einer Ausführungsform zu ermöglichen.
  • 4 zeigt Logik, um mindestens eine Ausführungsform der Erfindung auszuführen. Besonders 4 zeigt zwei APIC Interrupt Command Register (ICRs; Interruptbefehlsregister), die verwendet werden können, um Information zu speichern und Interruptkommunikation gemäß einer Ausführungsform zu ermöglichen. Register 401 zum Beispiel enthält die reservierten Bits 31–20 und verschiedene andere Steuerbits, um APIC-Kommunikation gemäß einer Ausführungsform zu ermöglichen. Außerdem enthält 4 ein Register 405, um ein 32-Bit-Zielstellenidentifikations(ID)-Feld zu speichern, das dazu dient, den Interruptziel-Agenten zu identifizieren. Bei einigen Ausführungsformen könnte sich das Zielstellen-ID-Feld wie die anderen Kontrollfelder und Bits innerhalb des gleichen Registers 401 befinden. Außerdem sind bei einigen Ausführungsformen die ICRs 401 und 405 MSRs, wohingegen diese bei anderen Ausführungsformen andere Register oder Speicherbereiche sind. Bei einer Ausführungsform können die in den Registern 401 und 405 gespeicherten Bits unter Verwendung verschiedener Stand der Technik MSR Schreib- und Lesebefehle manipuliert und gelesen werden, während bei anderen Ausführungsformen neue Befehle definiert und verwendet werden können, um den Inhalt der Register 401 und 405 zu manipulieren und zu lesen.
  • Die darin enthaltenen Register und die Information, die in 4 gezeigt wird, können bei einer Ausführungsform verwendet werden, um Interrupt-Transaktionen auf einen einzelnen Registerschreibvorgang zu reduzieren, im Gegensatz zu gegenwärtigen Techniken, die auf geposteter Schreibsemantik basieren, welche ein Minimum von 1 UC Lesevorgang und 2 UC Schreibvorgängen erfordert (falls eine Software keine Garantie bräuchte, dass der Interrupt den lokalen APIC verlassen hat) oder 2 UC Lesevorgänge und 2 UC Schreibvorgänge (falls eine Software eine Garantie bräuchte, dass der Interrupt den lokalen APIC verlassen hat).
  • Bei einer Ausführungsform kann ein Prozessor einen Inter-Processor Interrupt (IPI) generieren, indem er in ein Interruptbefehlsregister eines lokalen APIC schreibt. Bei einer Ausführungsform enthält der APIC ICR ein Legacy-Lieferstatus-Bit (Bit 12 in 4), das den Status der Lieferung von diesem Interrupt, der Read-Only-Merkmale haben kann, anzeigt. Bei einer Ausführungsform zeigt ein Wert von 0 im Bit 12 des ICR 401 an, dass es zurzeit keine Aktivität gibt, während ein Wert von 1 anzeigt, dass ein Sendevorgang wartet. Bei einer Ausführungsform wird das Lieferstatus-Bit (Bit 12 von ICR 401) entfernt, wenn der Interrupt gesendet wurde. Um eine Legacy-Schnittstelle zu unterstützen, würde eine Systemsoftware auf das Lieferstatus-Bit warten, um vor dem Senden eines IPI zu räumen. Auf ähnliche Weise würde eine Systemsoftware darauf warten, dass das Lieferstatus-Bit entfernt wird, falls die Semantik der Sendeoperation es erfordert, dass der Interrupt von der lokalen APIC-Einheit gesendet wird. Bei einer APIC-Schnittstelle wird gemäß einer Ausführungsform der ICR 401, wie in 4 gezeigt, in ein einzelnes 64-Bit-MSR kombiniert. Ein einzelner MSR-Schreibvorgang zum ICR 401 wird verwendet, um einen Interrupt abzusenden. Insbesondere mit der Registerschnittstelle zum APIC ICR 401 und 405 ist es gemäß einer Ausführungsform für die Systemsoftware nicht erforderlich, den Status des Lieferstatus-Bit vor dem Schreiben zum ICR zu überprüfen, um einen IPI zu senden.
  • Bei einer Ausführungsform, kann die Zuweisung (und effizientere Implementierung) von spezifischer Semantik mit typischen interruptcontroller-verwandten Operationen, insbesondere TPR-Schreibvorgänge und EOI-Schreibvorgänge, die Effizienz von interrupt-verwandter Kommunikation und Verkehr verbessern, während sie den geringsten Umfang an Softwarenachbesserung erfordert. Zum Beispiel kann die Semantik für das Lesen und Schreiben zum TPR-Register über die, wie in 4 gezeigten, ICRs sicherstellen, dass das Resultat von jeglicher Repriorisierungsaktion auf Grund der Änderung in der Prozessorpriorität dem Prozessor vor dem nächsten Befehl, der dem ausgeführten TPR folgt, zurückgegeben wird. Jegliche resultierenden lieferbaren Interrupts würden bei der Befehlsgrenze im Anschluss an den TPR-Schreibvorgang genommen werden. Der Zugriff auf das EOI-Register über die ICRs von 4 stellt sicher, dass das Resultat von jeglicher Repriorisierungsaktion auf Grund des EOI dem Prozessor vor dem nächsten Befehl, der dem ausgeführten EOI folgt, zurückgegeben wird. Jegliche resultierenden lieferbaren Interrupts würden bei der Befehlsgrenze im Anschluss an den EOI-Schreibvorgang genommen werden.
  • Bei einer Ausführungsform kann die Verwendung von MSRs, um die in 4 gezeigten ICRs zu implementieren, dem gleichen Adressbereich wie bei Legacy-Implementierungen zugeordnet werden. Bei einer Ausführungsform wird zum Beispiel Eins-Zu-Eins-Korrespondenz zwischen einem Legacy-Register-Offset und dem MSR-Offset aufrechterhalten, abgesehen von Registern, bei denen eine semantische Veränderung im Verhalten existiert. Bei einer Ausführungsform kann ein Legacy-Register ein 32-Bit-Register auf einer 128-Bit-Grenze sein. Bei einer Ausführungsform, bei der ein 32-Bit-Register auf einer 128-Bit-Grenze mit einem 64-Bit-MSR korrespondiert, kann jedoch der MSR-Register-Offset gemäß der folgenden Formel berechnet werden:
    „MSR-Register-Offset = Legacy-Register-Offset/16”
  • Für einen ICR werden jedoch gemäß einer Ausführungsform, wie in 4 gezeigt, zwei 32-Bit Legacy-Register in ein 64-Bit-MSR kombiniert.
  • Bei einer Ausführungsform richtet sich die Erfindung an Probleme in Verbindung mit Stand der Technik MMIO-basierten Schnittstellen mit einem APIC. Des Weiteren stellt mindestens eine Implementierung von Ausführungsformen der Erfindung auch niedrige stufenweise Implementierungskosten in einem System zur Verfügung, das sowohl die Legacy als auch die in Verbindung mit mindestens einer Ausführungsform stehenden ICRs unterstützen muss.
  • 5a zeigt ein Flussdiagramm der Operationen, die in Verbindung mit mindestens einer Ausführungsform der Erfindung verwendet werden können, unabhängig vom Prozessor oder der Systemkonfiguration, in der die Ausführungsform verwendet wird. Insbesondere zeigt 5a eine Technik, um Interrupts über das legacy-unterstützte Protokoll zu kommunizieren, wenn der Interrupt kommuniziert wird, indem Legacy-Techniken gemäß einer Ausführungsform verwendet werden. Bei der Operation 501a wird das Lieferstatus-Bit (Bit 12 in 4) abgefragt, bis eine ICR-Schnittstelle verfügbar ist. Bei der Operation 505a wird ein Legacy-UC-MMIO-Lesevorgang an 510a ausgeführt, während das Status-Bit deassertiert ist. Bei einer Ausführungsform, bei der die Legacy-Register 32 Bit lang sind, wird ein Interrupt durch die schreibende Zielstelle im High- und Low-Modus gesendet. Zum Beispiel wird eine Interrupt-Zieladresse in ein Allzweckregister (z. B. „EAX” in einem x86 Prozessor) geschrieben. Um mit dem Legacy-Modus bei der Operation 515a kompatibel zu sein, wird ein ICR-Zielstellen-ID-High-Abschnitt unter Verwendung eines UC MMIO-Schreibvorgangs, geschrieben. Bei der Operation 520a wird der Modus und die Vektorfelder des ICR geschrieben, um verschiedene Legacy-Interrupteigenschaften anzuzeigen, indem ein UC MMIO-Schreibvorgang an die Low-Position (z. B. die unteren 32 Bits) des ICR ausgeführt wird. Bei der Operation 525a wird der ICR abgefragt, bis der Interrupt den lokalen APIC verlässt, indem eine Schleife von UC MMIO-Lesevorgängen ausgeführt wird, während das Statusfeld des ICR deassertiert ist.
  • 5b zeigt ein Flussdiagramm der Operationen, die in Verbindung mit mindestens einer Ausführungsform der Erfindung verwendet werden können, unabhängig vom Prozessor oder der Systemkonfiguration, in der die Ausführungsform verwendet wird. Bei einer Ausführungsform wird ein Interrupt über eine ICR-Schnittstelle kommuniziert, die wie in 4 gezeigt aus einem oder mehreren MSRs besteht, wobei sich das Zielstellen-Feld in den oberen 32 Bits befindet und die Modus-/Vektorinformation in den unteren 32 Bits. Bei der Operation 501b wird eine Zieladresse des Interrupts in einem ersten Allzweckregister (z. B. „EDX”) gespeichert und bei der Operation 505b wird die Modus- und Vektorinformation in einem zweiten Allzweckregister (z. B. „EAX”) gespeichert. Bei der Operation 510b wird die ICR-Offsetadresse, die mit dem ICR im MSR-Adressbereich korrespondiert, in einem dritten Allzweckregister (z. B. „ECX”) gespeichert. Bei der Operation 515b wird ein Befehl ausgeführt, um den Inhalt, der sich innerhalb befindet oder auf den durch das erste oder zweite Allzweckregister gezeigt wird, in die Adresse im dritten Allzweckregister zu schreiben. Bei einer Ausführungsform ist der Befehl ein Stand der Technik MSR-Schreibbefehl (z. B. „WRMSR”). Bei anderen Ausführungsformen kann der Befehl ein neu definierter Befehl sein, insbesondere der ISA des Prozessors, der die obengenannten Techniken implementiert.
  • Einer oder mehrere Aspekte mindestens einer Ausführungsform können verwirklicht werden, indem die hier beschriebenen Techniken durch repräsentative Daten ausgeführt werden, die auf einem maschinenlesbaren Datenträger gespeichert sind, welcher verschiedene Logiken innerhalb des Prozessors repräsentiert, die beim Lesen durch eine Maschine die Maschine veranlassen, die Logik zu fabrizieren. Solche Repräsentationen, auch als „IP-Kerne” bekannt, können auf einem maschinenlesbaren Datenträger („Band”) gespeichert und an verschiedene Kunden oder Fertigungsanlagen geliefert werden, wo sie in Fabrikationsmaschinen geladen werden, welche die Logik oder den Prozessor herstellen.
  • Somit wurde hier ein Verfahren und eine Vorrichtung für die Leitung von Zugriffen auf Mikroarchitektur-Speicherregionen beschrieben. Es ist offenbar, dass die vorstehende Beschreibung rein illustrativ und in keiner Weise einschränkend ist. Viele andere Ausführungsformen sind für fachkundige Personen offenkundig, nachdem sie die vorstehende Beschreibung gelesen und verstanden haben. Der Umfang der Erfindung ist deshalb mit Verweis auf die angehängten Ansprüche festgelegt, zusammen mit dem vollen Umfang von gleichwertigen Ausführungen, zu denen. die Ansprüche berechtigen.

Claims (21)

  1. Vorrichtung, die aufweist: Logik, um Interruptinformation von mindestens einem ersten Agent zu mindestens einem zweiten Agent zu kommunizieren, wobei die Logik eine Interruptsteuerungsschnittstelle enthält, um Interruptinformation zu kommunizieren, die durch mindestens einen Befehl manipuliert werden soll ohne auf Memory-Mapped Input/Output(MMIO)-Bereiche zuzugreifen.
  2. Vorrichtung nach Anspruch 1, wobei die Interruptsteuerungsschnittstelle ein Interruptsteuerungsregister (ICR) enthält, um Statusinformation zu speichern, um mindestens einen wartenden Interrupt anzuzeigen.
  3. Vorrichtung nach Anspruch 2, wobei der ICR ein Vektorfeld enthält.
  4. Vorrichtung nach Anspruch 3, wobei der ICR ein Modus-Feld enthält.
  5. Vorrichtung nach Anspruch 1, wobei mindestens ein Befehl einer Operation entspricht, um Information von oder zu einem Model-Specific Register (MSR) zu lesen oder zu schreiben.
  6. Vorrichtung nach Anspruch 1, wobei die Interruptsteuerungsschnittstelle Interruptinformation zu oder von einem Advanced Programmable Interrupt Controller (APIC) kommunizieren soll.
  7. Vorrichtung nach Anspruch 6, wobei die Interruptsteuerungsschnittstelle Legacy-Kommunikation mit dem APIC und Nicht-Legacy-Kommunikation mit dem APIC unterstützen soll.
  8. Vorrichtung nach Anspruch 7, wobei der APIC einer von mehreren lokalen APICs ist, von denen jeder mit einem unterschiedlichen Agenten korrespondiert.
  9. Verfahren, das umfasst: das Kommunizieren eines Interrupts über ein Interruptsteuerungsregister (ICR), das ein oder mehrere Model-Specific Registers (MSRs) umfasst ohne Memory-Mapped Input/Output(MMIO)-Speicher zu verwenden, wobei das Kommunizieren des Interrupts enthält: Speicherung einer Zieladresse des Interrupts in einem ersten Allzweckregister; Speicherung des Interruptmodus und der Vektorinformation in einem zweiten Allzweckregister; Speicherung eines ICR-Offsets in einem dritten Allzweckregister; das Ausführen eines Befehls, um die Zieladresse, den Modus und die Vektorinformation an die ICR-Offsetadresse zu schreiben.
  10. Verfahren nach Anspruch 9, das des Weiteren das Kommunizieren des Interrupts gemäß einem legacy-unterstützten Protokoll umfasst, falls der Interrupt kommuniziert wird, indem Legacy-Techniken verwendet werden.
  11. Verfahren nach Anspruch 10, wobei das legacy-unterstützte Protokoll das Abfragen eines Status-Bits umfasst, bis die ICR-Schnittstelle verfügbar ist.
  12. Verfahren nach Anspruch 11, wobei das legacy-unterstützte Protokoll des Weiteren das Ausführen eines nicht in den Cache aufgenommenen MMIO-Lesevorgangs umfasst, während das Status-Bit deassertiert ist.
  13. Verfahren nach Anspruch 12, wobei das legacy-unterstützte Protokoll des Weiteren umfasst, die Vektor- und Modusinformation in die entsprechenden Felder innerhalb des ICR zu schreiben, um Legacy-Interrupteigenschaften anzuzeigen.
  14. Verfahren nach Anspruch 13, wobei die Modus- und die Vektorfelder des ICR geschrieben werden, indem eine nicht in den Cache aufgenommene MMIO-Schreiboperation verwendet wird.
  15. Verfahren nach Anspruch 14, wobei das legacy-unterstützte Protokoll umfasst, das Status-Bit des ICR abzufragen, bis der Interrupt einen mit dem ICR korrespondierenden Advanced Programmable Interrupt Controller (APIC) verlässt.
  16. System, das umfasst: einen Speicher, um mindestens einen Lese- und Schreibbefehl zu speichern; mehrere Prozessoren, die mehrere Advanced Programmable Interrupt Controller (APICs) besitzen, wobei jeder der mehreren APICs Interruptinformation über eine Interruptsteuerungsregister(ICR)-Schnittstelle kommunizieren soll, indem mindestens ein Schreib- und ein Lesebefehl verwendet wird, ohne zuerst die Interruptinformation vom Memory-Mapped Input/Output(MMIO)-Adressbereich innerhalb des Speichers zu schreiben oder zu lesen.
  17. Vorrichtung nach Anspruch 16, wobei der ICR ein Vektorfeld enthält.
  18. Vorrichtung nach Anspruch 17, wobei der ICR ein Modus-Feld enthält.
  19. Vorrichtung nach Anspruch 18, wobei mindestens Schreib- und Lesebefehle einer Operation entsprechen, um Information von einem Model-Specific Register (MSR) zu lesen oder in dieses zu schreiben.
  20. Vorrichtung nach Anspruch 19, wobei die Interruptsteuerungsschnittstelle Legacy-Kommunikation mit mehreren APICs und Nicht-Legacy-Kommunikation mit mehreren APICs unterstützen soll.
  21. Vorrichtung nach Anspruch 20, wobei mehrere APICs mit einem unterschiedlichen Prozessor korrespondieren.
DE102009050983A 2008-10-28 2009-10-28 Eine Technik, um Interrupts in einem Computersystem zu kommunizieren Ceased DE102009050983A1 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US12/290,208 2008-10-28
US12/290,208 US8103816B2 (en) 2008-10-28 2008-10-28 Technique for communicating interrupts in a computer system

Publications (1)

Publication Number Publication Date
DE102009050983A1 true DE102009050983A1 (de) 2010-06-02

Family

ID=42118584

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102009050983A Ceased DE102009050983A1 (de) 2008-10-28 2009-10-28 Eine Technik, um Interrupts in einem Computersystem zu kommunizieren

Country Status (6)

Country Link
US (2) US8103816B2 (de)
JP (2) JP5357972B2 (de)
CN (3) CN104021109B (de)
DE (1) DE102009050983A1 (de)
TW (1) TWI434181B (de)
WO (1) WO2010062514A2 (de)

Families Citing this family (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8255603B2 (en) * 2009-08-14 2012-08-28 Advanced Micro Devices, Inc. User-level interrupt mechanism for multi-core architectures
JP5387776B2 (ja) * 2010-07-27 2014-01-15 富士通株式会社 割込制御方法、マルチコアプロセッサシステム、および割込制御プログラム
US8631256B2 (en) 2010-12-22 2014-01-14 Via Technologies, Inc. Distributed management of a shared power source to a multi-core microprocessor
US8782451B2 (en) 2010-12-22 2014-07-15 Via Technologies, Inc. Power state synchronization in a multi-core processor
US8930676B2 (en) 2010-12-22 2015-01-06 Via Technologies, Inc. Master core discovering enabled cores in microprocessor comprising plural multi-core dies
US9460038B2 (en) * 2010-12-22 2016-10-04 Via Technologies, Inc. Multi-core microprocessor internal bypass bus
US8972707B2 (en) 2010-12-22 2015-03-03 Via Technologies, Inc. Multi-core processor with core selectively disabled by kill instruction of system software and resettable only via external pin
US8637212B2 (en) 2010-12-22 2014-01-28 Via Technologies, Inc. Reticle set modification to produce multi-core dies
US10019390B2 (en) * 2012-03-30 2018-07-10 Intel Corporation Using memory cache for a race free interrupt scheme without the use of “read clear” registers
US9749413B2 (en) * 2012-05-29 2017-08-29 Intel Corporation Peer-to-peer interrupt signaling between devices coupled via interconnects
US9697031B2 (en) 2013-10-31 2017-07-04 Huawei Technologies Co., Ltd. Method for implementing inter-virtual processor interrupt by writing register data in a single write operation to a virtual register
CN103559087B (zh) * 2013-10-31 2017-11-28 华为技术有限公司 一种虚拟处理器之间的中断的实现方法、相关装置和系统
US9740644B2 (en) 2014-09-26 2017-08-22 Intel Corporation Avoiding premature enabling of nonmaskable interrupts when returning from exceptions
US9747225B2 (en) 2015-05-05 2017-08-29 Microsoft Technology Licensing, Llc Interrupt controller
CN107015931A (zh) * 2016-01-27 2017-08-04 三星电子株式会社 用于中断处理的方法和加速器单元

Family Cites Families (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5495615A (en) 1990-12-21 1996-02-27 Intel Corp Multiprocessor interrupt controller with remote reading of interrupt control registers
SG48803A1 (en) * 1993-04-19 1998-05-18 Intel Corp Programmable multi-processor interrupt controller system with a processor integrated local interrupt controller
JPH09505922A (ja) * 1994-09-19 1997-06-10 フィリップス エレクトロニクス ネムローゼ フェンノートシャップ 多数のマイクロ制御器の演算を実行するマイクロ制御器システム
US5987538A (en) 1997-08-15 1999-11-16 Compaq Computer Corporation Apparatus for initiating generation of an inter-processor interrupt by a peripheral device not directly connected to any of the multi-processor local interrupt controllers
US5946713A (en) * 1997-08-18 1999-08-31 Intel Corporation Memory attribute palette
US6418496B2 (en) * 1997-12-10 2002-07-09 Intel Corporation System and apparatus including lowest priority logic to select a processor to receive an interrupt message
US6370606B1 (en) 1998-11-05 2002-04-09 Compaq Computer Corporation System and method for simulating hardware interrupts in a multiprocessor computer system
US6968412B1 (en) 1999-12-30 2005-11-22 Intel Corporation Method and apparatus for interrupt controller data re-direction
US7051137B2 (en) * 2002-10-31 2006-05-23 Intel Corporation Event delivery
US8984199B2 (en) * 2003-07-31 2015-03-17 Intel Corporation Inter-processor interrupts
US7143223B2 (en) * 2004-10-14 2006-11-28 International Business Machines Corporation Method, system and program product for emulating an interrupt architecture within a data processing system
US20060095624A1 (en) * 2004-11-03 2006-05-04 Ashok Raj Retargeting device interrupt destinations
JP4182948B2 (ja) * 2004-12-21 2008-11-19 日本電気株式会社 フォールト・トレラント・コンピュータシステムと、そのための割り込み制御方法
TW200708969A (en) * 2005-08-24 2007-03-01 Tyan Computer Corp ID allocating method for advanced programmable interrupt controller
CN100543645C (zh) * 2006-06-21 2009-09-23 国际商业机器公司 对中断等待影响最小的热调节控制方法、系统
KR100824792B1 (ko) * 2006-07-11 2008-04-24 삼성전자주식회사 커맨드 처리 장치와 방법 및 이를 포함하는 시스템
US7627706B2 (en) * 2007-09-06 2009-12-01 Intel Corporation Creation of logical APIC ID with cluster ID and intra-cluster ID
US7769938B2 (en) * 2007-09-06 2010-08-03 Intel Corporation Processor selection for an interrupt identifying a processor cluster
US8312309B2 (en) * 2008-03-05 2012-11-13 Intel Corporation Technique for promoting determinism among multiple clock domains

Also Published As

Publication number Publication date
US20120124264A1 (en) 2012-05-17
CN103399833A (zh) 2013-11-20
US8312198B2 (en) 2012-11-13
CN101727414A (zh) 2010-06-09
TW201032055A (en) 2010-09-01
JP5749304B2 (ja) 2015-07-15
CN104021109A (zh) 2014-09-03
JP5357972B2 (ja) 2013-12-04
CN101727414B (zh) 2014-06-25
WO2010062514A3 (en) 2010-07-22
TWI434181B (zh) 2014-04-11
JP2014029702A (ja) 2014-02-13
CN103399833B (zh) 2017-07-04
WO2010062514A2 (en) 2010-06-03
JP2012507080A (ja) 2012-03-22
CN104021109B (zh) 2017-11-07
US20100106875A1 (en) 2010-04-29
US8103816B2 (en) 2012-01-24

Similar Documents

Publication Publication Date Title
DE102009050983A1 (de) Eine Technik, um Interrupts in einem Computersystem zu kommunizieren
DE69633166T2 (de) Integrierter schaltkreis mit mehreren funktionen und gemeinsamer verwendung mehrerer interner signalbusse zur verteilung der steuerung des buszugriffes und der arbitration
DE10393679B9 (de) Prozessor, der einen Übergang zwischen einem virtuellen Maschinen Betriebsmodus (VM) und einem virtuellen Maschinen Monitor Betriebsmodus (VMM) unterstützt
DE69630126T2 (de) Historische zustandinformation verwendendes entscheidungsprotokoll für zugriff auf ein geteiltes speichergebiet
DE112007003801B3 (de) Vorrichtung mit einer speichereinheit und einer logik zur bereitstellung eines effizienten mechanismus‘ für transaktionalspeicherausführungen in out-of-order-prozessoren
DE112004003066B4 (de) Verwendung mehrerer Monitore virtueller Maschinen zur Abwicklung priviligierter Ereignisse
DE69723286T2 (de) Echtzeitprogramm-sprachbeschleuniger
DE112005000706B4 (de) Verfahren und System zum Bereitstellen von Multi-Threading auf Nutzerebene
DE112007002201T5 (de) Quality-of-Service-Implementierung für Plattformressourcen
DE112017000721T5 (de) Verfahren, einrichtung und befehle für thread-aussetzung auf benutzerebene
DE10393920T5 (de) Verfahren und Systeme zur Steuerung virtueller Maschinen
DE102004057756B4 (de) USB-Steuerungseinrichtung mit OTG-Steuerungseinheit
DE102010035603A1 (de) Bereitstellen von Hardwareunterstützung für gemeinsam benutzten virtuellen Speicher zwischen physischem Lokal- und Fernspeicher
DE112011102822T5 (de) Leistungsoptimierte Interrupt-Abgabe
DE102014003705A1 (de) Prozessoren, Verfahren und Systeme zur Befehlsemulation
DE112005002405T5 (de) Fehlerverarbeitung für Direktspeicherzugriffs-Adreßübersetzung
DE112004000464T5 (de) Ungültigmachen von Speichereinträgen, Löschen von Pufferspeicher-Einträgen
DE102006061939A1 (de) Verfahren und Vorrichtung zum Zugriff auf eine speicherabgebildete Vorrichtung durch einen Gast
DE10297166T5 (de) Mechanismus zur Interrupt-Abwicklung in Computersystemen, welche die gleichzeitige Ausführung mehrerer Threads unterstützen
DE112005003098T5 (de) Verfahren und Vorrichtung zum Zugreifen auf einen physikalischen Speicher von einer CPU oder einem Prozessorelement mit hoher Leistung
DE102009043263B4 (de) Verfahren, Vorrichtung und System zum Abfragen eines Gerätes nach Informationen
DE112008001957T5 (de) Systeme und Verfahren zum Verbessern der Leistungsfähigkeit eines routfähigen Netzwerks
DE102018005039A1 (de) System und verfahren für pro-agent-steuerung und - dienstqualität gemeinsam genutzter ressourcen in chip-mehrprozessor-plattformen
DE112017003332T5 (de) Öffnungszugriffsprozessoren, verfahren, systeme und befehle
DE112004001652T5 (de) Vektorieren eines Interrupt oder einer Ausnahme bei Wiederaufnahme des Betriebes einer virtuellen Maschine

Legal Events

Date Code Title Description
OP8 Request for examination as to paragraph 44 patent law
R016 Response to examination communication
R002 Refusal decision in examination/registration proceedings
R003 Refusal decision now final