DE102009043411A1 - Bereitstellen eines Zurückstellungsmechanismus für "gepostete" Interrupt-Transaktionen - Google Patents

Bereitstellen eines Zurückstellungsmechanismus für "gepostete" Interrupt-Transaktionen Download PDF

Info

Publication number
DE102009043411A1
DE102009043411A1 DE102009043411A DE102009043411A DE102009043411A1 DE 102009043411 A1 DE102009043411 A1 DE 102009043411A1 DE 102009043411 A DE102009043411 A DE 102009043411A DE 102009043411 A DE102009043411 A DE 102009043411A DE 102009043411 A1 DE102009043411 A1 DE 102009043411A1
Authority
DE
Germany
Prior art keywords
transaction
interrupt
queue
posted
transactions
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.)
Granted
Application number
DE102009043411A
Other languages
English (en)
Other versions
DE102009043411B4 (de
Inventor
Bryan R. Chandler White
Douglas Folsom Moran
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 DE102009043411A1 publication Critical patent/DE102009043411A1/de
Application granted granted Critical
Publication of DE102009043411B4 publication Critical patent/DE102009043411B4/de
Active legal-status Critical Current
Anticipated expiration legal-status Critical

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
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • 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/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/1605Handling requests for interconnection or transfer for access to memory bus based on arbitration
    • G06F13/161Handling requests for interconnection or transfer for access to memory bus based on arbitration with latency improvement
    • 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/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/1605Handling requests for interconnection or transfer for access to memory bus based on arbitration
    • G06F13/161Handling requests for interconnection or transfer for access to memory bus based on arbitration with latency improvement
    • G06F13/1626Handling requests for interconnection or transfer for access to memory bus based on arbitration with latency improvement by reordering requests
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Power Sources (AREA)
  • Bus Control (AREA)
  • Microcomputers (AREA)

Abstract

In einer Ausführungsform umfasst ein Verfahren das Empfangen einer in einem Prozessorkomplex eingehenden geposteten Transaktion von einem Peripheriegerät, das Feststellen, ob die Transaktion eine Interrupt-Transaktion ist, und, wenn dies der Fall ist, das Weiterleiten dieser zu einer ersten Warteschlange und anderenfalls das Weiterleiten dieser zu einer zweiten Warteschlange. Weitere Ausführungsformen sind beschrieben und werden beansprucht.

Description

  • Hintergrund
  • Unterschiedliche Kommunikationsprotokolle weisen bezüglich des Sortierens von Transaktionen unterschiedliche Anforderungen auf. Beispielsweise stellt das Peripheral-Component-Interconnect-Express-(PCI ExpressTM (PCIeTM))-Protokoll für Links auf Grundlage der PCI-ExpressTM-Base-Specification Version 2.0 (veröffentlicht am 17. Januar 2007) (nachfolgend PCIeTM-Spezifikation genannt) Sortier-Anforderungen bezüglich „geposteter” Transaktionen (posted transactions) bereit, derart, dass eine gepostete Transaktion eine früher gepostete Transaktion nicht überholen kann. Eine gepostete Transaktion ist eine Transaktion, bei der ein Requestor keine Completion-Nachricht erhält, wenn die Transaktion erfolgreich beendet wird. Im Gegensatz dazu erwartet ein Requestor, für eine nichtgepostete Transaktion eine Completion-Nachricht zu empfangen, wenn die Transaktion korrekt ausgeführt wurde. Sortierregeln für PCIeTM-Links fordern, dass Transaktionen, die einer geposteten Transaktion folgen, die gepostete Transaktion voranschieben, im Allgemeinen bis die gepostete Transaktion einen Prozessorkern erreicht. Wenn die früher gepostete Transaktion ein Interrupt ist, erzwingen aktuelle Systeme derartige Sortierregeln, indem sie Transaktionen durch eine Kopplungsstruktur hindurch schieben, bis die Interrupt-Transaktion innerhalb eines lokalen Advanced Programmable Interrupt Controllers (APIC) des Prozessors registriert wird.
  • Während diese Regeln sicherstellen, dass Interrupts zu einem Prozessor geleitet werden, kann dies spätere Transaktionen verzögern, wenn sich der Prozessor in einem Energiesparzustand befindet und daher viel Zeit benötigt, um den Interrupt zu akzeptieren und eine Fertigstellung zurückzumelden, um anzuzeigen, dass dieser erkannt wurde. Dies bedeutet, dass ein Prozessor solche Interrupts nicht empfangen und eine Fertigstellung nicht unverzüglich zurückmelden kann, wenn er in einen Energiesparmodus versetzt ist. Es ist vorherzusehen, dass in zukünftigen Systemen mit fortschrittlichen Prozessoren mehr Möglichkeiten für Power-Management-Zustände geschaffen werden, in denen Prozessorkerne Takte und Leistung verlieren können. Je tiefer zudem der eingenommene Energiesparzustand ist, desto länger dauert es, einen betriebsfähigen Zustand wiederherzustellen. Infolgedessen kann die Zeit, bis ein Interrupt in dem Prozessor registriert wird, verhältnismäßig lang sein. Zudem können Plattform-Power-Management- Techniken dazu führen, dass Interrupts zu einem Zeitgeberzeichen des Betriebssystems ausgerichtet werden, so dass eine Anzahl von Interrupts zu einer Gruppe zusammengefasst wird.
  • Folglich kann es durch Beharren auf die Sortieranforderungen eines gegebenen Kommunikationsprotokolls, insbesondere wenn ein Prozessor oder ein Teil davon in einen Energiesparzustand versetzt ist, zu einem Engpass kommen. Infolgedessen können latenzzeitempfindliche Geräte, wie z. B. Peripheriegeräte, die an den Prozessor gekoppelt sind und einen Kommunikationszyklus mittels eines Interrupts beginnen, nachteilig beeinflusst werden. Beispielsweise kann ein Universal-Serial-Bus-(USB)-Gerät eine Frame-Zeit von etwa 20 Mikrosekunden (μs) aufweisen. Ein Prozessorkern kann jedoch mehr Zeit benötigen, um aus einem Energiesparzustand zu erwachen. Somit können bei Benutzen aktueller Kopplungsstruktur-Sortierregeln nachteilige Effekte auftreten.
  • Kurze Beschreibung der Zeichnungen
  • 1 ist ein Ablaufdiagramm eines Verfahrens gemäß einer Ausführungsform der vorliegenden Erfindung.
  • 2 ist ein Blockdiagramm eines Teils eines Systems gemäß einer Ausführungsform der vorliegenden Erfindung.
  • 3 ist ein Blockdiagramm eines Prozessorkomplexes gemäß einer anderen Ausführungsform der vorliegenden Erfindung.
  • 4 ist ein Blockdiagramm eines Systems gemäß einer Ausführungsform der vorliegenden Erfindung.
  • Detaillierte Beschreibung
  • In verschiedenen Ausführungsformen können Interrupts, die in einem Prozessorkomplex eingehen, aus anderen eingehenden Transaktionen aussortiert werden, um die oben beschriebenen Effekte zu vermeiden. Beispielsweise können verschiedene Peripheriegeräte mittels eines Controllers, wie z. B. eines Peripheral-Controller-Hub (PCH), an einen Prozessorkomplex gekoppelt werden. Im Gegensatz zu Prozessoren früherer Generationen kann ein Prozessorkomplex gemäß einer Ausführungsform ohne separate Interrupt-Pins zum Empfang von Interrupts, wie z. B. einem nichtmaskierbaren Interrupt (NMI) oder System-Management-Interrupt (SMI), von einem angeschlossenen Gerät auskommen. Stattdessen können verschiedene Interrupts von einem Peripheriegerät in einer Standard-Kopplungsstruktur, z. B. einer Punkt-zu-Punkt-Kopplungsstruktur zwischen dem Prozessorkomplex und einem Peripheriegerät (z. B. einem PCH), als bandinterne Nachrichten gesendet werden. Solche Interrupts können als Message Signaled Interrupts (MSIs) oder als Virtual Legacy Wire Interrupts (VLWs) bezeichnet werden.
  • Solche Interrupts, die entlang einer Kopplungsstruktur übertragen werden, die andere Transaktionen befördert (z. B. Schreibzugriffe und Lesezugriffe usw.) können die Form von geposteten Transaktionen annehmen. Als solche würden diese Transaktionen herkömmlicherweise den Sortierregeln eines gegebenen Kommunikationsprotokolls, z. B. eines PCIeTM-Protokolls, wie z. B., dass eine gepostete Transaktion eine andere gepostete Transaktion nicht überholen kann, gehorchen. Wie oben erörtert, kann dies jedoch zu Engpässen und unerwünschtem Betrieb eines Peripheriegerätes führen. Demgemäß kann in verschiedenen Ausführungsformen die separate Bearbeitung solcher Interrupts realisiert werden, indem ein Zurückstellungsmechanismus bereitgestellt wird, um diese Interrupt-Transaktionen zu bearbeiten und aus anderen geposteten Transaktionen auszusortieren. Es sei angemerkt, dass beobachtet werden kann, dass verschiedene Anforderungen der Interrupt-Zustellung zeigen, dass MSIs/VLWs datengepostete Zyklen voranschieben und dass Lese-Completions MSIs/VLWs voranschieben. Nachdem diese Sortierregeln befolgt wurden, kann jedoch ein Zurückstellungsmechanismus für die MSIs/VLWs benutzt werden, der ermöglicht, dass nachfolgender Verkehr weiterhin fließt, und somit einen Engpass beseitigt.
  • Diese Interrupts können in einem oder mehreren Speichern in eine Warteschlange eingereiht werden, was Energieeinsparungen des Kerns für einen längeren Zeitraum ermöglicht. Somit können Energiesparzustände für längere Zeiträume aufrechterhalten werden, was Energieeinsparungen erleichtert. Außerdem können solche Energiespartechniken Techniken mit hoher Latenzzeit sein, wie z. B. wenn Kerne usw. heruntergefahren sind, was größere Energieeinsparungen ermöglicht. Solche Techniken mit höherer Latenzzeit können weiter angesichts von Interrupts vorkommen, ohne Probleme mit latenzzeitempfindlichen Geräten, wie z. B. angeschlossenen Peripheriegeräten, zu verursachen. Bei verschiedenen Ausführungsformen können separate Speicher, wie z. B. verschiedene Puffer oder Warteschlangen, für gepostete Transaktionen und diese Interrupt-Transaktionen bereitgestellt sein.
  • Unterschiedliche Implementierungen solcher separaten Speicher können existieren. Beispielsweise kann ein Prozessorkomplex einen separaten On-Die-Speicher, wie z. B. eine erste Warteschlange für eine gepostete Transaktion und eine zweite Warteschlange für eingehende MSIs oder VLWs, umfassen. Bei einer anderen Implementierung kann, anstatt dass ein On-Chip-Speicher bereitgestellt ist, ein Off-Chip-Speicher, wie z. B. ein Teil eines Hauptspeichers, der zum Speichern dieser Interrupt-Transaktionen dediziert ist, bereitgestellt sein. Durch Zurückstellen dieser Interrupt-Transaktionen kann der Verkehr hinter ihnen weiterhin durch die separate Warteschlange fließen, wodurch ein Engpass beseitigt wird. Da ein separater, unabhängiger Speicher für diese MSIs und VLWs bereitgestellt ist, können Energieeinsparungen des Kerns für einen längeren Zeitraum aufrechterhalten werden. Das bedeutet, dass Energiespartechniken mit großer Latenzzeit sogar eingesetzt werden können, wenn Interrupts in eine Warteschlange eingereiht werden – ohne nachteilige Auswirkungen auf latenzzeitempfindliche Geräte, wie z. B. USB-Geräte, die mit einem Prozessorkomplex gekoppelt sind.
  • Es wird Bezug genommen auf 1, die ein Ablaufdiagramm eines Verfahrens gemäß einer Ausführungsform der vorliegenden Erfindung zeigt. Insbesondere kann das Verfahren 100 angewendet werden, um eingehende Transaktionen zu bearbeiten, die in einem Prozessorkomplex von einer Kopplungsstruktur empfangen werden. Als ein Beispiel kann die Kopplungsstruktur ein Direct-Media-Interface (DMI) sein, obwohl der Umfang der vorliegenden Erfindung in dieser Hinsicht nicht eingeschränkt ist. Eingehende Transaktionen können von einem PCH empfangen werden, der wiederum mit einem oder mehreren Peripheriegeräten gekoppelt sein kann, wie internen Geräten eines Systems oder externen Peripheriegeräten, beispielsweise USB-Geräten, z. B. Radioempfängern, Mediaspielern usw.
  • Wie in 1 gezeigt, kann das Verfahren 100 beginnen, indem es eine eingehende Transaktion von der Kopplungsstruktur empfängt (Block 110). Beispielsweise kann eine Ein-/Ausgabe-(I/O)-Schnittstelle eines Prozessorkomplexes eingehende Transaktionen empfangen. Wie oben beschrieben, können diese Transaktionen von unterschiedlicher Art sein, einschließlich unter anderem verschiedener Lese- und Schreib-Transaktionen. Einige dieser Transaktionen können gepostet sein, während andere nichtgepostet sind. Weiter können mindestens einige der geposteten Transaktionen Interrupt-Transaktionen wie z. B. MSIs oder VLWs sein. Die I/O-Schnittstelle oder ein anderer Eingabeflusskontrollmechanismus, wie z. B. ein Arbiter, der mit der Schnittstelle gekoppelt ist, kann feststellen, ob die Transaktion eine gepostete Transaktion ist (Raute 115). Beispielsweise kann der Arbiter oder eine andere Einheit einen Paket-Header der Transaktion analysieren, um festzustellen, ob es eine gepostete Transaktion ist. Ist das nicht der Fall, kann die Transaktion zu einer Warteschlange für nichtgepostete Transaktionen geleitet werden (Block 120). Diese Warteschlange kann Teil eines gegebenen logischen Blocks des Prozessorkomplexes, wie z. B. Uncore-Logik, sein, der abgesehen von den Kernen verschiedene Strukturen und Logik umfassen kann.
  • Wenn stattdessen bei Raute 115 festgestellt wird, dass die Transaktion tatsächlich eine gepostete Transaktion ist, geht die Steuerung an Raute 130, wo festgestellt werden kann, ob die Transaktion ein Interrupt, wie z. B. ein Message-Signaled-Interrupt oder ein Virtual-Legacy-Wire-Interrupt, ist, was wiederum durch Analyse des Nachrichten-Headers festgestellt werden kann. Ist das nicht der Fall, geht die Steuerung an Block 135, wo die gepostete Transaktion zu einer Warteschlange für gepostete Transaktionen geleitet werden kann. Wenn stattdessen festgestellt wird, dass die Transaktion eine Interrupt-Transaktion ist, kann sie zu einer Warteschlange für Interrupt-Transaktionen geleitet werden (Block 140)
  • Wie in 1 gezeigt, können somit verschiedene Warteschlangen für gepostete Transaktionen und für Interrupt-Transaktionen unterhalten werden, so dass die Interrupt-Transaktionen andere eingehende gepostete Transaktionen nicht blockieren. Wie weiter unten beschrieben wird, können solche Transaktionen vielmehr weiterhin verarbeitet werden, selbst wenn sich ein lokaler Advanced-Programmable-Interrupt-Controller (APIC), ein anderer Interrupt-Controller oder Prozessorkern in einem Energiesparzustand befindet, so dass die Interrupt-Transaktionen in der Warteschlange bleiben müssen, bis der APIC-Controller oder ein oder mehrere Kerne wieder hochgefahren werden.
  • Weitere Verarbeitung kann in der Warteschlange für Interrupts durchgeführt werden, wenn ein Eintrag gespeichert ist. Insbesondere kann bei Raute 150 festgestellt werden, ob sich der lokale APIC in einem Energiesparzustand befindet. Wenn das der Fall ist, geht die Steuerung an Raute 160, wo festgestellt werden kann, ob die Transaktion ein vorbestimmtes Weck-Kriterium erfüllt, um den (die) Kern(e) aus einem Energiesparzustand zu erwecken (Raute 160). Beispielsweise kann eine Verfahrensweise sein, zu wecken, wenn der Eintrag, der für diese Interrupt-Transaktion gespeichert ist, der erste Eintrag in der Warteschlange ist. Wenn dies der Fall ist, kann eine Kennzeichnung gesetzt werden, um das Vorhandensein dieses mindestens einen Eintrags innerhalb der Warteschlange für Interrupts anzuzeigen. Zudem kann ein Wecksignal an den lokalen APIC und an einen oder mehrere Kerne gesendet werden, um sie zu wecken, um diesen Interrupt zu bearbeiten. Andere Beispiele für mögliche Verfahrensweisen zum Wecken umfassen: a) bei erstem Interrupt-Eintrag nach Ablauf eines Zeitgebers wecken; b) Wecken, nachdem sich eine bestimmte Anzahl von Interrupts in der Warteschlange befindet; c) Wecken auf Grundlage von Interrupt-Priorität; oder d) Wecken auf Grundlage von anvisiertem(n) Kern(en). Verfahren 100 schließt somit seine Verarbeitung mit dem Speichern der eingehenden Transaktion in der zugehörigen Warteschlange ab. Natürlich können diese Transaktionen anschließend weiterer Verarbeitung unterzogen werden. Unter der Annahme, dass sich ein oder mehrere Kerne in einem normalen Betriebsmodus befinden, können insbesondere Transaktionen von den Warteschlangen zu Kernen oder anderen vorgesehenen Zielen gesendet werden. Bei einigen Implementierungen kann ein Arbiter mit dem Ausgang der Warteschlangen gekoppelt sein, um die verschiedenen Transaktionen zu arbitrieren und zu den zugehörigen Orten zu senden.
  • Wenn sich stattdessen ein oder mehrere Kerne und/oder der lokale APIC in einem Energiesparzustand befinden, können die Interrupt-Transaktionen in der Warteschlange für Interrupts verbleiben. Transaktionen von den Warteschlangen für gepostete und nichtgepostete Transaktionen aus können weiterhin bearbeitet werden, sofern solche Transaktionen keinen Zugriff auf die Kerne benötigen. Beispielsweise können für Lese- oder Schreibanfragen, die auf Hauptspeicher oder Cache-Speicher abzielen, die eventuell nicht heruntergefahren sind, diese Transaktionen weiterhin aus den Warteschlangen für Transaktionen heraustreten und bearbeitet werden. Somit können diese anderen Transaktionen, die nach der (den) Interrupt-Transaktion(en) empfangen worden sein können, die Interrupt-Transaktionen, die in der Warteschlange für Interrupts gespeichert sind, wirkungsvoll überholen. Ein Unterlauf oder eine andere Fehlerbedingung eines Peripheriegerätes kann schlechthin vermieden werden. Es soll beispielsweise angenommen werden, dass ein Kern oder ein lokaler APIC in einen heruntergefahrenen Zustand versetzt ist. In diesem Zustand kann es lange dauern, bis eine Spannungsrampe auftritt; der Zeitbedarf für zusätzliche Aufgaben, wie das Initialisieren eines Phasenregelkreises (phase lock loop, PLL) und anderer Schnittstellen, um den Energiesparzustand zu verlassen, kann in der Größenordnung von 50 bis 100 μs liegen und entspricht somit einer Latenz-Endzeit. Da ein Peripheriegerät eine kürzere Frame-Zeit, z. B. 20 μs, aufweisen kann, würde ein Unterlauf auftreten, falls eine Antwort auf periphere Signalsetzung nicht erfolgt, weil diese Signale hinter einer in der Warteschlange anstehenden Interrupt-Transaktion blockiert sind. Somit können durch Benutzen eines Zurückstellungsmechanismus andere periphere Transaktionen bearbeitet werden, wie von dem Peripheriegerät erwartet, wodurch der Unterlauf oder eine andere Fehlerbedingung vermieden wird. Während diese bestimmte Implementierung bei der Ausführungsform von 1 beschrieben ist, ist der Umfang der vorliegenden Erfindung in dieser Hinsicht nicht eingeschränkt.
  • Ausführungsformen können in vielen verschiedenen Systemen und Prozessortypen implementiert werden. Jedoch können bestimmte Implementierungen in Verbindung mit einer Plattform benutzt werden, die einen Prozessorkomplex aufweist, der ein integrierter Schaltkreis auf Einzelchiplage sein kann, der mehrere Prozessorkerne, Caches, assoziierte Logik, Speicher-Controller, Schnittstellen-Controller usw. umfassen kann.
  • Es wird Bezug genommen auf 2, die ein Blockdiagramm eines Teils eines Systems gemäß einer Ausführungsform der vorliegenden Erfindung zeigt. Wie in 2 gezeigt, umfasst das System 200 einen Prozessorkomplex 210, der mit einem Speicher 260 gekoppelt ist, der bei einer Ausführungsform ein dynamischer Random-Access-Memory (DRAM) sein kann, und einen PCH 280. Wie in 2 gezeigt, kann der Prozessorkomplex 210 mehrere Kerne 220a 220d (generell Kern 220) umfassen. Jeder Kern kann mit einem entsprechenden Cache-Speicher 225a 225d (generell Cache 225) verbunden sein. Außerdem umfasst der Prozessorkomplex 210 die Uncore-Logik 230, die verschiedene Logik des Prozessors umfassen kann, die nicht in den Kernen enthalten ist, wie z. B. bestimmte Schnittstellen- und Steuerungslogik. Ebenfalls innerhalb des Prozessorkomplexes 210 vorhanden ist eine I/O-Schnittstelle 240, die eine Schnittstelle für eine Kopplungsstruktur 245 schafft, die bei einer Ausführungsform ein Direct-Media-Interface (DMI) oder eine andere Punkt-zu-Punkt-Kopplungsstruktur zwischen dem Prozessorkomplex 210 und PCH 280 sein kann. Außerdem umfasst der Prozessorkomplex 210 weiter einen Speicher-Controller 250, der eine Schnittstelle zwischen dem Komplex und dem Speicher 260 bereitstellt.
  • Wie weiter in 2 gezeigt wird, werden eingehende Anfragen von der I/O-Schnittstelle 240 an die Uncore-Logik 230 geleitet und insbesondere zu einer Warteschlangenstruktur, wie z. B. einem Arbiter 232 innerhalb der Logik. Bei der Implementierung von 2, ist dieser Arbiter ein Virtual Channel Arbiter (VCARB), der dafür konfiguriert ist, von mehreren virtuellen Kanälen eingehende Transaktionen zu empfangen. Bei der gezeigten Ausführungsform können diese Kanäle einen ersten virtuellen Kanal (VC0) sowie einen zweiten virtuellen Kanal (VCP) umfassen. Diese virtuellen Kanäle können geeignet sein, unterschiedliche Kommunikations- Verkehrsklassen zu befördern, und können Transaktionen von verschiedenen Quellen innerhalb des Prozessorkomplexes 210 oder anderen derartigen Quellen empfangen.
  • Der Arbiter 232 kann zwischen verschiedenen eingehenden Transaktionen arbitrieren und diese in Abhängigkeit von der Art der Transaktion zu einer gewählten Warteschlange leiten. Bei der Ausführungsform, die in 2 gezeigt wird, sind eine Warteschlange für gepostete Transaktionen 234, eine Warteschlange für nichtgepostete Transaktionen 235 und eine Warteschlange für Interrupt-Transaktionen 236 vorhanden, um Transaktionen dieser Arten zu empfangen. Obwohl der Umfang der vorliegenden Erfindung in dieser Hinsicht nicht beschränkt ist, kann bei einer Ausführungsform die Warteschlange für Interrupts 236 mindestens 32 Einträge lang sein. Auf diese Weise kann diese Warteschlange größenmäßig auf Grundlage der bekannten maximalen Anzahl von Interrupts ausgelegt werden, die während einer gegebenen Zeitdauer, während der sich die Kerne eines Prozessorkomplexes in einem Energiesparzustand befinden können, eine Kopplungsstruktur durchqueren können. Abwechselnd werden die Warteschlange 234 und 236 mit einem Ausgangs-Arbiter 238 gekoppelt, der die unterschiedlichen Transaktionsausgaben aus diesen Warteschlangen arbitrieren kann.
  • Wie weiter in 2 gezeigt wird, kann ein Prozessorkomplex 210 einen lokalen APIC 246 umfassen. Dieser APIC kann benutzt werden, um eingehende Interrupts, z. B. mittels Arbiter 238, zu empfangen und einen oder mehrere Kerne über die Interrupts zu benachrichtigen. Es ist zu beachten, dass der lokale APIC 246 unabhängig von den Kernen und anderer Logik des Prozessorkomplexes gesteuert werden kann. Das bedeutet, dass der APIC unabhängig von diesen in Energiesparzustände versetzt werden und in den Normalzustand zurückkehren kann. Auf diese Weise kann der lokale APIC 246 in einen Energiesparzustand versetzt werden, wenn keine Interrupts zur Bearbeitung vorhanden sind. In ähnlicher Weise kann der lokale APIC 246 hochgefahren werden, um eingehende Interrupts zu bearbeiten, obwohl ein oder mehrere Kerne 220 sich in einem Energiesparzustand befinden können. Unterschiedliche Implementierungen von APICs sind möglich. Beispielsweise kann anstelle eines einzigen APIC für alle Kerne für jeden Kern jeweils ein mit diesem verbundener lokaler APIC vorhanden sein, der sich innerhalb der Kernvertiefung oder außerhalb der Kernvertiefung befinden kann.
  • Die Logik der Uncore-Logik 230 kann benutzt werden, um die Energiezustände des lokalen APIC 246 zu steuern. Beispielsweise können, wenn die Warteschlange für Interrupt-Transaktionen 236 leer ist, ein Signal, eine Nachricht oder eine Energiesparrichtlinie ermöglichen, dass der lokale APIC 246 in einen Energiesparzustand versetzt wird. In ähnlicher Weise kann beispielsweise ein Wecksignal oder eine Wecknachricht an den lokalen APIC 246 gesendet werden, wenn eine erste Interrupt-Transaktion in die Warteschlange für Interrupt-Transaktionen 236 geschrieben wird. Während der Prozessorkomplex 210 zur besseren Veranschaulichung mit diesen begrenzten Komponenten gezeigt wird, ist zu beachten, dass zusätzliche Komponenten, wie z. B. feste Funktionseinheiten, andere Verarbeitungseinheiten usw., in ihm vorhanden sein können.
  • Wird somit eine Implementierung wie die in 2 gezeigte verwendet, können Transaktionen innerhalb der Warteschlange für gepostete Transaktionen 234 weiterhin behandelt werden, während sich der lokale APIC 246 des Prozessorkomplexes in einem Energiesparzustand befindet, so dass Interrupt-Transaktionen innerhalb der Warteschlange für Interrupts 236 verbleiben. Wenn mindestens ein Interrupt in der Warteschlange für Interrupts 236 vorhanden ist, kann natürlich ein Wecksignal oder eine Wecknachricht an den APIC und/oder einen oder mehrere der Kerne gesendet werden, um ihr Wecken auszulösen, um diesen Interrupt zu bearbeiten. Wenn ein Kern hochgefahren ist, sendet er eine Nachricht, um anzuzeigen, dass er bereit ist, Operationen auszuführen, und ein Auslösesignal wird an die Warteschlange 236 gesendet, die die Interrupt-Transaktionen speichert, um zu bewirken, dass sie an den lokalen APIC und dann an den Kern gesendet werden. Während diese bestimmte Implementierung in der Ausführungsform nach 2 gezeigt wird, wird der Schutzbereich der vorliegenden Erfindung in dieser Hinsicht in keiner Weise eingeschränkt.
  • Wie oben beschrieben, kann in verschiedenen Implementierungen, anstatt einen On-Chip-Speicher für eingehende Interrupt-Transaktionen bereitzustellen, ein verfügbarer Off-Chip-Speicher für eine solche Speicherung benutzt werden. Es wird Bezug genommen auf 3, die ein Blockdiagramm eines Prozessorkomplexes gemäß einer anderen Ausführungsform der vorliegenden Erfindung zeigt. Wie in 3 gezeigt, kann ein Prozessorkomplex 210 in ähnlicher Weise wie der Prozessorkomplex in 2 angeordnet sein. Bei der Implementierung von 3 ist jedoch zu beachten, dass dort keine separate Warteschlange für Interrupt-Transaktionen innerhalb der Uncore-Logik 230 des Prozessorkomplexes vorhanden ist. Bei der Ausführungsform von 3 kann stattdessen ein dedizierter Speicherraum 265 innerhalb des Speichers 260 zum Speichern dieser Interrupts benutzt werden. Um eingehende gepostete Interrupt-Transaktionen an den Speicher 260 zu leiten, kann der Arbiter 232 mit einer Direct-Memory-Access-(DMA)-Engine 248 gekoppelt werden, die gepostete Interrupt-Transaktionen empfangen und deren Speicherung in Speicher 260 bearbeiten kann. Insbesondere kann die DMA-Engine 248 mit einem Speicher-Arbiter 255 von MCH 250 kommunizieren, um so empfangene Interrupts an den dedizierten Speicher 265 zu leiten. Sowohl der Speicher-Arbiter 255 als auch die DMA-Engine 248 können weiter in umgekehrter Weise operieren, um gespeicherte Interrupts zu nehmen und sie durch den Arbiter 238 an den lokalen APIC 246 zu leiten, wenn der APIC hochgefahren und in der Lage ist, Interrupts zu bearbeiten.
  • Ausführungsformen können in vielen verschiedenen Arten von Systemen implementiert werden. Es wird Bezug genommen auf 4, die ein Blockdiagramm eines Systems gemäß einer Ausführungsform der vorliegenden Erfindung zeigt. Wie in 4 gezeigt, ist das aus mehreren Prozessoren bestehende System 500 ein System mit einer Punkt-zu-Punkt-Kopplungsstruktur und umfasst einen ersten Prozessor 570 und einen zweiten Prozessor 580, die über eine Punkt-zu-Punkt-Kopplungsstruktur 550 gekoppelt sind. Wie in 4 gezeigt, kann jeder Prozessor 570 und 580 ein Mehrkernprozessor sein und einen ersten und zweiten Prozessorkern umfassen (d. h. Prozessorkern 574a und 574b und Prozessorkern 584a und 584b). Jeder Prozessor kann weiter Uncore-Logik 575 und 585 umfassen, die einen Zurückstellungsmechanismus umfassen kann, um Interrupt-Transaktionen getrennt von anderen geposteten Transaktionen zu bearbeiten.
  • In 4 umfasst der erste Prozessor 570 weiter einen Memory-Controller-Hub (MCH) 572 und die Punkt-zu-Punkt-(P-P)-Schnittstellen 576 und 578. Auf ähnliche Weise umfasst der zweite Prozessor 580 einen MCH 582 und die P-P-Schnittstellen 586 und 588. Wie in 4 gezeigt, koppeln die MCH 572 und 582 die Prozessoren an die jeweiligen Arbeitsspeicher, namentlich an einen Speicher 532 und einen Speicher 534, die Teil eines Hauptspeichers sein können (z. B. eines dynamischen Random Access Memory, DRAM), der lokal an die jeweiligen Prozessoren angeschlossen ist. Der erste Prozessor 570 und der zweite Prozessor 580 können über P-P-Kopplungsstrukturen 552 bzw. 554 an einen Chipsatz 590 gekoppelt werden. Wie in 4 gezeigt, umfasst der Chipsatz 590 die P-P-Schnittstellen 594 und 598.
  • Des Weiteren umfasst der Chipsatz 590 eine Schnittstelle 592 für die Kopplung von Chipsatz 590 mit einer Hochleistungs-Grafik-Engine 538. Chipsatz 590 kann wiederum über die Schnittstelle 596 an einen ersten Bus 516 gekoppelt werden. Wie in 4 gezeigt, können verschiedene I/O-Geräte 514 an den ersten Bus 516 gekoppelt werden, zusammen mit einer Busbrücke 518, die den ersten Bus 516 an einen zweiten Bus 520 koppelt. Verschiedene Geräte können an den zweiten Bus 520 gekoppelt werden, u. a. Tastatur/Maus 522, Kommunikationsgeräte 526 und eine Datenspeichereinheit 528, wie z. B. ein Festplattenlaufwerk oder ein anderes Massenspeichergerät, das bei einer Ausführungsform Code 530 umfassen kann. Des Weiteren kann ein Audio-I/O 524 an den zweiten Bus 520 gekoppelt werden.
  • Während die vorliegende Erfindung im Hinblick auf eine begrenzte Anzahl von Ausführungsformen beschrieben wird, sind sich fachkundige Personen bewusst, dass viele weitere Modifizierungen und Varianten möglich sind. Die beigefügten Ansprüche sollen alle Modifizierungen und Varianten abdecken, die dem Sinn und Schutzbereich der vorliegenden Erfindung entsprechen.

Claims (20)

  1. Verfahren, das umfasst: das Empfangen einer von einem Peripheriegerät eingehenden geposteten Transaktion in einer Warteschlangenstruktur eines Prozessorkomplexes und das Feststellen, ob die eingehende gepostete Transaktion eine Interrupt-Transaktion ist, und, wenn dies der Fall ist, das Weiterleiten der Interrupt-Transaktion zu einer ersten Warteschlange und anderenfalls das Weiterleiten der eingehenden geposteten Transaktion zu einer zweiten Warteschlange des Prozessorkomplexes.
  2. Verfahren nach Anspruch 1, wobei das Weiterleiten der Interrupt-Transaktion zu der ersten Warteschlange ermöglicht, dass eingehende gepostete Nichtinterrupt-Transaktionen und nichtgepostete Transaktionen die Interrupt-Transaktion überholen, wenn sich mindestens ein Teil des Prozessorkomplexes in einem Energiesparzustand befindet.
  3. Verfahren nach Anspruch 1, das weiter das Weiterleiten der Interrupt-Transaktion zu der ersten Warteschlange umfasst, wobei die erste Warteschlange ein dedizierter Teil eines Systemspeichers ist, der an den Prozessorkomplex gekoppelt ist.
  4. Verfahren nach Anspruch 1, das weiter das Weiterleiten der Interrupt-Transaktion zu der ersten Warteschlange umfasst, wobei die erste Warteschlange eine separate Warteschlange des Prozessorkomplexes ist.
  5. Verfahren nach Anspruch 1, das weiter das Bearbeiten der eingehenden geposteten Transaktion in der zweiten Warteschlange umfasst, während, bedingt durch einen Energiesparzustand eines Advanced Programmable Interrupt Controllers (APIC) des Prozessorkomplexes, mindestens eine Interrupt-Transaktion in der ersten Warteschlange gespeichert ist.
  6. Verfahren nach Anspruch 5, das weiter das Verursachen der Aktivierung des APIC und mindestens eines Kerns des Prozessorkomplexes umfasst, wenn eine erste der mindestens einen Interrupt-Transaktion in die erste Warteschlange geschrieben wird.
  7. Verfahren nach Anspruch 5, das weiter das Übertragen von Daten von dem Prozessorkomplex zu dem Peripheriegerät umfasst, das auf die bearbeitete eingehende gepostete Transaktion reagiert, wobei das Peripheriegerät eine Unterlaufbedingung infolge der bearbeiteten eingehenden geposteten Transaktion vermeidet, wobei sich mindestens ein Teil des Prozessorkomplexes in dem Energiesparzustand befindet und mindestens ein Kern des Prozessorkomplexes in den Energiesparzustand heruntergefahren ist.
  8. Verfahren nach Anspruch 5, wobei die Interrupt-Transaktion ein Virtual-Legacy-Wire-Interrupt ist.
  9. Verfahren nach Anspruch 5, wobei das Speichern der Interrupt-Transaktion in der ersten Warteschlange ermöglicht, dass eine zweite eingehende gepostete Transaktion, die nach der Interrupt-Transaktion in dem Prozessorkomplex empfangen wird, die Interrupt-Transaktion überholt, wobei die Sortierregeln für eine Kopplungsstruktur, die zwischen den Prozessorkomplex und das Peripheriegerät gekoppelt ist, nicht erlauben, dass eine später gepostete Transaktion eine früher gepostete Transaktion überholt.
  10. Vorrichtung, die aufweist: einen Prozessorkomplex, der umfasst: eine Schnittstelle zum Empfangen eingehender Transaktionen von einem Peripheriegerät; einen Arbiter zum Empfangen der eingehenden Transaktionen von der Schnittstelle und zum Bearbeiten einer eingehenden geposteten Transaktion unter Benutzung eines Zurückstellungsmechanismus, wenn die eingehende gepostete Transaktion eine Interrupt-Transaktion ist, und anderenfalls zum Speichern der eingehenden geposteten Transaktion in einer Warteschlange für gepostete Transaktionen; mehrere Kerne, die an den Arbiter gekoppelt sind, um als Reaktion auf Anweisungen Operationen auszuführen, und einen Speicher-Controller, der an den Arbiter gekoppelt ist, um mit einem Systemspeicher zu kommunizieren.
  11. Vorrichtung nach Anspruch 10, die weiter mindestens einen Interrupt-Controller umfasst, der an die mehreren Kerne gekoppelt ist, wobei der mindestens eine Interrupt-Controller nach dem Empfang der Interrupt-Transaktion auf Grundlage einer Richtlinie, die mit dem Zurückstellungsmechanismus verbunden ist, aktiviert wird.
  12. Vorrichtung nach Anspruch 11, wobei der Speicher-Controller mindestens eine gepostete Transaktion bearbeitet, die in der Warteschlange für gepostete Transaktionen gespeichert wird, wenn sich der mindestens eine Interrupt-Controller in einem Energiesparzustand befindet, wobei eine Warteschlange für Interrupts des Zurückstellungsmechanismus und die Warteschlange für gepostete Transaktionen unabhängig sind, so dass die mindestens eine gepostete Transaktion, die nach der Interrupt-Transaktion in dem Prozessorkomplex empfangen wird, nicht durch die Interrupt-Transaktion blockiert wird.
  13. Vorrichtung nach Anspruch 11, wobei der Zurückstellungsmechanismus ein dedizierter Teil des Systemspeichers ist und die Warteschlange für gepostete Transaktionen in dem Prozessorkomplex vorhanden ist.
  14. Vorrichtung nach Anspruch 13, die weiter eine Direct-Memory-Access-(DMA)-Engine umfasst, um die Interrupt-Transaktion von dem Arbiter zu empfangen und zu bewirken, dass die Interrupt-Transaktion in dem dedizierten Teil des Systemspeichers gespeichert wird.
  15. Vorrichtung nach Anspruch 11, wobei eine Warteschlange für Interrupts des Zurückstellungsmechanismus in einem Eintrag, der der Interrupt-Transaktion entspricht, eine Kennzeichnung setzt, wenn in der Warteschlange für Interrupts keine anderen Einträge vorhanden sind.
  16. Vorrichtung nach Anspruch 15, wobei die Kennzeichnung bewirkt, dass eine Nachricht an den mindestens einen Interrupt-Controller gesendet wird.
  17. System, das umfasst: einen Prozessorkomplex, der umfasst: eine Schnittstelle, um von einem Peripheriegerät eingehende Transaktionen zu empfangen, eine Logik, um die von der Schnittstelle eingehenden Transaktionen zu empfangen und festzustellen, ob eine eingehende gepostete Transaktion eine Interrupt-Transaktion ist, und, wenn dies der Fall ist, die eingehende Transaktion in einer Warteschlange für Interrupts zu speichern und anderenfalls die eingehende gepostete Transaktion in einer Warteschlange für gepostete Transaktionen zu speichern, sowie mehrere Kerne, die an die Logik gekoppelt sind, um als Reaktion auf Anweisungen Operationen auszuführen, und einen Speicher-Controller, der an die Logik gekoppelt ist, um mit einem Speicher zu kommunizieren; den Speicher, der an den Prozessorkomplex gekoppelt ist, und ein Peripheriegerät, das mittels einer Kopplungsstruktur an den Prozessorkomplex gekoppelt ist, um die eingehenden Transaktionen zu dem Prozessorkomplex zu übertragen.
  18. System nach Anspruch 17, wobei mindestens ein Kern in einen heruntergefahrenen Zustand mit einer ersten Latenz-Endzeit versetzt wird, und das Peripheriegerät eine Antwort auf eine erste Transaktion innerhalb einer zweiten Zeit empfängt, um eine Fehlerbedingung zu vermeiden, wobei die zweite Zeit kürzer als die erste Latenz-Endzeit ist und die erste Transaktion eine oder mehrere Interrupt-Transaktionen überholt, die in der Warteschlange für Interrupts gespeichert sind und von der Logik des Prozessorkomplexes innerhalb der zweiten Zeit bearbeitet werden.
  19. System nach Anspruch 17, das weiter einen Interrupt-Controller umfasst, der an die mehreren Kerne gekoppelt ist, wobei der Interrupt-Controller eine Nachricht von der Warteschlange für Interrupts empfängt, wenn in die Warteschlange für Interrupts ein Eintrag geschrieben wird, der der Interrupt-Transaktion entspricht, und die Logik mindestens eine eingehende gepostete Transaktion bearbeitet, die in der Warteschlange für gepostete Transaktionen gespeichert ist, wenn sich der Interrupt-Controller in einem Energiesparzustand befindet.
  20. System nach Anspruch 17, wobei die Warteschlange für Interrupts ein dedizierter Teil des Speichers ist, und die Warteschlange für gepostete Transaktionen in dem Prozessorkomplex vorhanden ist, und das weiter eine Direct-Memory-Access-(DMA)-Engine umfasst, um die Interrupt-Transaktion von der Logik zu empfangen und zu bewirken, dass die Interrupt-Transaktion in dem dedizierten Teil des Speichers gespeichert wird.
DE102009043411.9A 2008-09-30 2009-09-29 Bereitstellen eines Zurückstellungsmechanismus für "gepostete" Interrupt-Transaktionen Active DE102009043411B4 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US12/286,324 2008-09-30
US12/286,324 US7861024B2 (en) 2008-09-30 2008-09-30 Providing a set aside mechanism for posted interrupt transactions

Publications (2)

Publication Number Publication Date
DE102009043411A1 true DE102009043411A1 (de) 2010-04-22
DE102009043411B4 DE102009043411B4 (de) 2022-08-25

Family

ID=41350590

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102009043411.9A Active DE102009043411B4 (de) 2008-09-30 2009-09-29 Bereitstellen eines Zurückstellungsmechanismus für "gepostete" Interrupt-Transaktionen

Country Status (6)

Country Link
US (1) US7861024B2 (de)
JP (1) JP5047249B2 (de)
CN (1) CN101916236B (de)
DE (1) DE102009043411B4 (de)
GB (1) GB2463800B (de)
TW (1) TWI410804B (de)

Families Citing this family (26)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8234458B2 (en) * 2008-12-09 2012-07-31 Nvidia Corporation System and method for maintaining cache coherency across a serial interface bus using a snoop request and complete message
US8914661B2 (en) * 2010-06-30 2014-12-16 Via Technologies, Inc. Multicore processor power credit management in which multiple processing cores use shared memory to communicate individual energy consumption
US8719630B2 (en) 2010-08-23 2014-05-06 Qualcomm Incorporated Method and apparatus for monitoring interrupts during a power down event at a processor
RU2470125C2 (ru) * 2010-11-26 2012-12-20 Федеральное государственное бюджетное образовательное учреждение высшего профессионального образования "Ульяновский государственный технический университет" Устройство для удаления сосулек с крыши здания
RU2468163C2 (ru) * 2011-02-25 2012-11-27 Федеральное государственное бюджетное образовательное учреждение высшего профессионального образования "Ульяновский государственный технический университет" Карниз крыши здания
RU2468162C1 (ru) * 2011-03-15 2012-11-27 Федеральное государственное бюджетное образовательное учреждение высшего профессионального образования "Ульяновский государственный технический университет" Карниз крыши здания
JP5318139B2 (ja) * 2011-03-24 2013-10-16 株式会社東芝 制御装置およびプログラム
US8788863B2 (en) 2011-08-10 2014-07-22 Microsoft Corporation System and method for restoring and/or continuing execution functionality to various processes based on predefined power classifications while transitioning a computing environment from connected standby state to execution state
RU2475606C1 (ru) * 2011-08-30 2013-02-20 Федеральное государственное бюджетное образовательное учреждение высшего профессионального образования "Ульяновский государственный технический университет" Консольный свес кровли
US9952897B2 (en) 2011-09-12 2018-04-24 Microsoft Technology Licensing, Llc Managing processes within suspend states and execution states
US8621494B2 (en) * 2011-09-12 2013-12-31 Microsoft Corporation Managing processes within suspend states and execution states
US9588576B2 (en) 2011-09-12 2017-03-07 Microsoft Technology Licensing, Llc Managing processes within suspend states and execution states
TWI556092B (zh) 2011-09-30 2016-11-01 英特爾公司 用以減少電力消耗之基於優先順序的應用程式事件控制技術
US20130157639A1 (en) * 2011-12-16 2013-06-20 SRC Computers, LLC Mobile electronic devices utilizing reconfigurable processing techniques to enable higher speed applications with lowered power consumption
US9148384B2 (en) * 2012-02-10 2015-09-29 Hewlett-Packard Development Company, L.P. Posted and unencumbered queues
WO2013147914A1 (en) * 2012-03-31 2013-10-03 Intel Corporation Controlling power management in micro-servers
US8996774B2 (en) * 2012-06-27 2015-03-31 Intel Corporation Performing emulated message signaled interrupt handling
US9311243B2 (en) * 2012-11-30 2016-04-12 Intel Corporation Emulated message signaled interrupts in multiprocessor systems
US9354694B2 (en) * 2013-03-14 2016-05-31 Intel Corporation Controlling processor consumption using on-off keying having a maximum off time
US9766685B2 (en) * 2013-05-15 2017-09-19 Intel Corporation Controlling power consumption of a processor using interrupt-mediated on-off keying
JP6354387B2 (ja) * 2014-06-30 2018-07-11 富士通株式会社 情報処理装置、情報処理システム及び割込装置制御方法
US9541988B2 (en) * 2014-09-22 2017-01-10 Western Digital Technologies, Inc. Data storage devices with performance-aware power capping
US20160188503A1 (en) * 2014-12-25 2016-06-30 Intel Corporation Virtual legacy wire
US10846126B2 (en) * 2016-12-28 2020-11-24 Intel Corporation Method, apparatus and system for handling non-posted memory write transactions in a fabric
US10346328B2 (en) * 2017-09-11 2019-07-09 Apple Inc. Method and apparatus for indicating interrupts
CN116774637B (zh) * 2023-08-16 2023-12-08 通用技术集团机床工程研究院有限公司 数控系统及数控系统的数据传输方法

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6128669A (en) * 1997-09-30 2000-10-03 Compaq Computer Corporation System having a bridge with distributed burst engine to decouple input/output task from a processor
US6347349B1 (en) * 1998-12-28 2002-02-12 International Business Machines Corp. System for determining whether a subsequent transaction may be allowed or must be allowed or must not be allowed to bypass a preceding transaction
US6629179B1 (en) * 2000-07-31 2003-09-30 Adaptec, Inc. Message signaled interrupt generating device and method
DE60109940T2 (de) * 2000-08-17 2006-02-09 Advanced Micro Devices, Inc., Sunnyvale System und verfahren bei getrennten virtuellen kanälen für aufgegebene anforderungen in einem mulitprozessorsystem
US7069367B2 (en) 2000-12-29 2006-06-27 Intel Corporation Method and apparatus for avoiding race condition with edge-triggered interrupts
US20040019726A1 (en) * 2002-07-29 2004-01-29 Kelley Richard A. Buffer management and transaction control for serial I/O systems
US7165131B2 (en) * 2004-04-27 2007-01-16 Intel Corporation Separating transactions into different virtual channels
US7454551B2 (en) * 2004-05-26 2008-11-18 Synopsys, Inc. Reconstructing transaction order using clump tags
US8463969B2 (en) * 2005-06-30 2013-06-11 Intel Corporation Extended message signal interrupt
US7487284B2 (en) * 2006-07-28 2009-02-03 Intel Corporation Transaction flow and ordering for a packet processing engine, located within an input-output hub
US7945719B2 (en) * 2006-09-20 2011-05-17 Intel Corporation Controller link for manageability engine
US7949794B2 (en) * 2006-11-02 2011-05-24 Intel Corporation PCI express enhancements and extensions

Also Published As

Publication number Publication date
GB2463800A (en) 2010-03-31
JP5047249B2 (ja) 2012-10-10
JP2010092474A (ja) 2010-04-22
TWI410804B (zh) 2013-10-01
CN101916236A (zh) 2010-12-15
DE102009043411B4 (de) 2022-08-25
GB2463800B (en) 2012-04-11
CN101916236B (zh) 2013-06-26
GB0917131D0 (en) 2009-11-11
US7861024B2 (en) 2010-12-28
US20100082866A1 (en) 2010-04-01
TW201025020A (en) 2010-07-01

Similar Documents

Publication Publication Date Title
DE102009043411B4 (de) Bereitstellen eines Zurückstellungsmechanismus für "gepostete" Interrupt-Transaktionen
DE112011105298B4 (de) Reduzieren des Energieverbrauchs von Uncore-Schaltkreisen eines Prozessors
DE112012005210B4 (de) Bereitstellen eines gemeinsamen Caching-Agenten für ein Kern- und integriertes Ein-/Ausgabe-(IO)-Modul
DE69936060T2 (de) Verfahren und Vorrichtung für eine verbesserte Schnittstelle zwischen Computerkomponenten
DE112006003444B4 (de) Verfahren und Vorrichtung zum Erfassen von Prozessorzustands-Übergängen
DE112004001320B3 (de) Verfahren, System und Vorrichtung zur Verbesserung der Leistung von Mehrkernprozessoren
DE19900325B4 (de) Vorrichtung und Verfahren zum Senden und Empfangen von Daten in eine und aus einer universellen seriellen Buseinrichtung
DE19900345B4 (de) Schnittstellenmodul für einen Universellen Seriellen Bus (USB) zur Verbindung mit einem USB über eine Programmierschnittstelle für eine USB-Funktion und Vorrichtung zum Anschluß an einen universellen seriellen Bus
DE112013006184T5 (de) Verwalten eines Leistungszustandes eines Prozessors
DE112008001655T5 (de) Verfahren, System und Vorrichtung für einen Kernaktivitätsdetektor zum Erleichtern von Dynamischer Stromverwaltung in einem verteilten System
DE19900290B4 (de) Verfahren zum Betreiben einer universellen seriellen Buseinrichtung und universelle serielle Buseinrichtung
DE112013001361B4 (de) System auf einem Chip, Verfahren, maschinenlesbares Medium und System für die Bereitstellung einer Snoop-Filterung zugeordnet mit einem Datenpuffer
DE112011103194B4 (de) Koordinieren von Gerät- und Anwendungsunterbrechungsereignissen zum Plattformenergiesparen
DE112017003301T5 (de) Interprozessor-Energiezustandswechsel
DE602004012563T2 (de) Mehrfädiges DMA
DE112017000721T5 (de) Verfahren, einrichtung und befehle für thread-aussetzung auf benutzerebene
DE102009061252B3 (de) Vorrichtung, Verfahren und System zur Verarbeitung einer Transaktion auf einem PCI-Bus mittels eines Root-Komplexes
DE102010052680A1 (de) Ein Befehl, um einen Prozessor-Wartezustand zu ermöglichen
DE10393969T5 (de) Mechanismus zur Verteilung von Unterbrechungen niedrigster Priorität unter Berücksichtigung des Prozessorleistungszustands
DE112014006501T5 (de) Synchronisierung der Unterbrechungsverarbeitung zur Verringerung des Stromverbrauchs
DE112005003133T5 (de) Verminderung hörbarer Geräusche bei Leitungszustandsübergängen
DE112006001290T5 (de) Dynamisches Busparken
DE112004001887T5 (de) Optimierung der SMI-Handhabung und -Initialisierung
DE102007060806A1 (de) Rangbasierter Speicher-Lese/Schreib-Mikrobefehls-Scheduler
DE112010002425T5 (de) Delegieren einer anfrageoperation an eine andere einrichtung

Legal Events

Date Code Title Description
OP8 Request for examination as to paragraph 44 patent law
R016 Response to examination communication
R016 Response to examination communication
R016 Response to examination communication
R079 Amendment of ipc main class

Free format text: PREVIOUS MAIN CLASS: G06F0013240000

Ipc: G06F0013260000

R016 Response to examination communication
R018 Grant decision by examination section/examining division
R020 Patent grant now final