DE10393969T5 - Mechanismus zur Verteilung von Unterbrechungen niedrigster Priorität unter Berücksichtigung des Prozessorleistungszustands - Google Patents
Mechanismus zur Verteilung von Unterbrechungen niedrigster Priorität unter Berücksichtigung des Prozessorleistungszustands Download PDFInfo
- Publication number
- DE10393969T5 DE10393969T5 DE10393969T DE10393969T DE10393969T5 DE 10393969 T5 DE10393969 T5 DE 10393969T5 DE 10393969 T DE10393969 T DE 10393969T DE 10393969 T DE10393969 T DE 10393969T DE 10393969 T5 DE10393969 T5 DE 10393969T5
- Authority
- DE
- Germany
- Prior art keywords
- component
- processor
- task priority
- information
- interrupt
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Ceased
Links
- 230000007246 mechanism Effects 0.000 title description 18
- 238000000034 method Methods 0.000 claims abstract description 45
- 238000012545 processing Methods 0.000 claims description 15
- 238000003860 storage Methods 0.000 claims description 10
- 238000004590 computer program Methods 0.000 claims description 3
- 238000012546 transfer Methods 0.000 claims description 2
- 238000011156 evaluation Methods 0.000 claims 1
- 238000012360 testing method Methods 0.000 claims 1
- 230000007958 sleep Effects 0.000 description 16
- 238000010586 diagram Methods 0.000 description 9
- 238000009826 distribution Methods 0.000 description 9
- 238000013461 design Methods 0.000 description 6
- 230000000694 effects Effects 0.000 description 4
- 230000006870 function Effects 0.000 description 4
- 230000008901 benefit Effects 0.000 description 3
- 230000008569 process Effects 0.000 description 3
- 230000002618 waking effect Effects 0.000 description 3
- 230000005540 biological transmission Effects 0.000 description 2
- 238000013500 data storage Methods 0.000 description 2
- 230000006266 hibernation Effects 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 230000036581 peripheral resistance Effects 0.000 description 2
- 230000004044 response Effects 0.000 description 2
- 230000003213 activating effect Effects 0.000 description 1
- 238000004458 analytical method Methods 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 230000007423 decrease Effects 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000018109 developmental process Effects 0.000 description 1
- 235000019800 disodium phosphate Nutrition 0.000 description 1
- 230000009977 dual effect Effects 0.000 description 1
- 230000005611 electricity Effects 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 238000012544 monitoring process Methods 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 239000002243 precursor Substances 0.000 description 1
- 230000035755 proliferation Effects 0.000 description 1
- 230000001902 propagating effect Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 238000004088 simulation Methods 0.000 description 1
- 230000005061 slumber Effects 0.000 description 1
- 238000001228 spectrum Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F1/00—Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
- G06F1/26—Power supply means, e.g. regulation thereof
- G06F1/32—Means for saving power
- G06F1/3203—Power management, i.e. event-based initiation of a power-saving mode
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F1/00—Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
- G06F1/26—Power supply means, e.g. regulation thereof
- G06F1/32—Means for saving power
- G06F1/3203—Power management, i.e. event-based initiation of a power-saving mode
- G06F1/3234—Power saving characterised by the action undertaken
- G06F1/3243—Power saving in microcontroller unit
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F1/00—Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
- G06F1/26—Power supply means, e.g. regulation thereof
- G06F1/32—Means for saving power
- G06F1/3203—Power management, i.e. event-based initiation of a power-saving mode
- G06F1/3234—Power saving characterised by the action undertaken
- G06F1/329—Power saving characterised by the action undertaken by task scheduling
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3836—Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution
- G06F9/3851—Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution from multiple instruction streams, e.g. multistreaming
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4812—Task transfer initiation or dispatching by interrupt, e.g. masked
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5094—Allocation of resources, e.g. of the central processing unit [CPU] where the allocation takes into account power or heat criteria
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Multimedia (AREA)
- Power Sources (AREA)
- Exchange Systems With Centralized Control (AREA)
- Pinball Game Machines (AREA)
- Pharmaceuticals Containing Other Organic And Inorganic Compounds (AREA)
Abstract
Verfahren,
Folgendes umfassend:
Empfangen erster Leistungszustandsinformationen von einer ersten Komponente und zweiter Leistungszustandsinformationen von einer zweiten Komponente;
Empfangen erster Aufgabenprioritätsinformationen von der ersten Komponente und zweiter Aufgabenprioritätsinformationen von der zweiten Komponente;
Empfangen einer Unterbrechungsanforderung von einer ersten Vorrichtung zum Bedienen;
Beurteilen von Informationen über Leistungszustand und Aufgabenpriorität für die erste und zweite Komponente, um zu bestimmen, welche Komponente die Unterbrechungsanforderung bedienen soll;
Auswählen auf der Grundlage der Informationen über den Leistungszustand und der Aufgabenpriorität entweder der ersten Komponente oder der zweiten Komponente, eine Zielkomponente zum Bedienen der Unterbrechungsanforderung zu bilden; und
Übermitteln der Unterbrechungsanforderung an die Zielkomponente.
Empfangen erster Leistungszustandsinformationen von einer ersten Komponente und zweiter Leistungszustandsinformationen von einer zweiten Komponente;
Empfangen erster Aufgabenprioritätsinformationen von der ersten Komponente und zweiter Aufgabenprioritätsinformationen von der zweiten Komponente;
Empfangen einer Unterbrechungsanforderung von einer ersten Vorrichtung zum Bedienen;
Beurteilen von Informationen über Leistungszustand und Aufgabenpriorität für die erste und zweite Komponente, um zu bestimmen, welche Komponente die Unterbrechungsanforderung bedienen soll;
Auswählen auf der Grundlage der Informationen über den Leistungszustand und der Aufgabenpriorität entweder der ersten Komponente oder der zweiten Komponente, eine Zielkomponente zum Bedienen der Unterbrechungsanforderung zu bilden; und
Übermitteln der Unterbrechungsanforderung an die Zielkomponente.
Description
- GEBIET DER ERFINDUNG
- Die vorliegende Erfindung betrifft im Allgemeinen das Gebiet der Mikroprozessoren und Computersysteme. Insbesondere betrifft die vorliegende Erfindung ein Verfahren und eine Vorrichtung für einen Mechanismus zur Verteilung von Unterbrechungen niedrigster Priorität unter Berücksichtigung des Prozessorleistungszustands.
- ALLGEMEINER STAND DER TECHNIK
- Computersysteme haben unsere Gesellschaft zunehmend durchdrungen. Die Verarbeitungsfähigkeiten von Computer haben die Effizienz und die Produktivität von Arbeitern in einem breiten Berufespektrum erhöht. Da die Kosten für Kauf und Betrieb eines Computers fortgesetzt fallen, ist es mehr und mehr Konsumenten möglich, neuere und schnellere Maschinen zu nutzen. Weiterhin genießen viele Menschen die Verwendung von Notebook-Computern wegen der Freiheit. Mobile Computer gestatten Benutzern, ihre Daten und ihre Arbeit leicht mitzunehmen, wenn sie das Büro verlassen oder reisen. Mit diesem Szenarium sind Vertriebsmitarbeiter, Geschäftsleute und sogar Studenten ziemlich vertraut.
- Eine ähnliche Erscheinung ist bei Desktop- und Server-Maschinen aufgetreten. Mit der Entwicklung neuerer Entwürfe und Merkmale setzt sich das exponentielle Wachstum der Rechenfähigkeiten von Prozessoren fort. Computer-Entwürfe sowohl für den mobilen als auch den Desktop-Bereich bewegen sich allmählich in Richtung auf die Verwendung von Multi-Core- oder Multi-Threading-Prozessoren zu, welche gleichzeitig eine Anzahl von Anwendungen und Aufgaben durchführen können. Manche Systeme werden auch mit mehreren physikalischen Prozessoren gebaut. Die Kosten für eine erhöhte Rechenleistung umfassen jedoch auch die wirklichen Stromkosten. Mit anderen Worten, der Stromverbrauch in diesen Maschinen wird extrem hoch. Auch thermische Überlegungen können aufgrund der Beziehung zum Strom wichtig werden.
- KURZBESCHREIBUNG DER ZEICHNUNGEN
- Die vorliegende Erfindung wird beispielhaft illustriert und wird durch die Figuren der begleitenden Zeichnungen nicht eingeschränkt, bei welchen gleiche Bezugszeichen gleiche Elemente bezeichnen und bei welchen:
-
1 ein Blockdiagramm eines Parallelprozessor-Computersystems ist, welches mit einem Chipsatz und mit Prozessoren ausgebildet ist, welche einen Mechanismus zur Verteilung von Unterbrechungen niedrigster Priorität unter Berücksichtigung des Leistungszustands gemäß einer Ausführungsform der vorliegenden Erfindung umfassen; -
2 ein Blockdiagramm eines Multi-Core-Prozessormoduls und eines zugeordneten Chipsatzes ist, welche eine Ausführungsform eines Unterbrechungsmechanismus, welcher den Leistungszustand berücksichtigt, der vorliegenden Erfindung umfassen; -
3 ein Blockdiagramm eines Multi-Threading-Prozessors und eines zugeordneten Chipsatzes ist, welche eine andere Ausführungsform eines Unterbrechungsmechanismus, welcher den Leistungszustand berücksichtigt, gemäß der vorliegenden Erfindung umfassen; -
4 die Prozessorleistungszustände bei einer Ausführungsform der vorliegenden Erfindung illustriert; -
5 ein Diagramm eines Eintrags einer Prozessoraufgaben-Informationstabelle für einen Chipsatz einer Ausführungsform ist; -
6A bis D Ablaufdiagramme sind, welche eine Ausführungsform eines Verfahrens zum Verteilen von Unterbrechungen unter Berücksichtigung des Leistungszustands illustrieren; und -
7 ein Ablaufdiagramm ist, welches eine andere Ausführungsform eines Verfahrens zur Verteilung von Unterbrechungen unter Berücksichtigung des Prozessorleistungszustands illustriert. - AUSFÜHRLICHE BESCHREIBUNG
- Es werden ein Verfahren und eine Vorrichtung für einen Mechanismus für eine Verteilung von Unterbrechungen niedrigster Priorität unter Berücksichtigung des Prozessorleistungszustands offenbart. Die hier beschriebenen Ausführungsformen werden insbesondere im Kontext eines universellen Mikroprozessors und Chipsatzes beschrieben. Obwohl die folgenden Ausführungsformen unter Bezugnahme auf einen Prozessor und auf einen Chipsatz beschrieben werden, sind andere Ausführungsformen auf andere Typen integrierter Schaltkreise und Logikvorrichtungen anwendbar. Die gleichen Verfahren und Lehren der vorliegenden Erfindung können leicht auf andere Schaltungs- oder Halbleitervorrichtungen angewendet werden, welche von einer Leistungsüberwachung und verbesserten Unterbrechungsbehandlung profitieren können. Die Lehren der vorliegenden Erfindung sind auf jeden Prozessor oder jede Maschine anwendbar, welche Unterbrechungen durchführen. Die vorliegende Erfindung ist jedoch nicht auf ein Parallelprozessorsystem oder ein Mult-Core-Prozessormodul begrenzt und kann auf jeden Mikroprozessor und auf jeder Maschine angewendet werden, auf welchen Multi-Threading oder ein Multi-Tasking durchgeführt werden kann.
- Bei der folgenden Beschreibung werden für Erklärungszwecke zahlreiche spezifische Einzelheiten dargelegt, um ein gründliches Verständnis der vorliegenden Erfindung bereitzustellen. Durchschnittsfachleute werden jedoch erkennen, daß diese spezifischen Einzelheiten nicht nötig sind, um die vorliegende Erfindung zu praktizieren. In anderen Fällen werden wohlbekannte elektrische Strukturen und Schaltungen nicht in besonderen Einzelheiten dargelegt, um die vorliegende Erfindung nicht unnötig zu verschleiern.
- Technologische Fortschritte haben dazu geführt, daß sich Prozessor- und Anwendungsparallelität weiter verbreitet haben. Viele Server und Plattformen wenden sich zunehmend dem Threading als einem Weg zur Steigerung des Gesamtsystemleistungsvermögens zu. Viele Anwendungen sind threaded, in mehrere Befehlsströme aufgeteilt, um den Vorteil mehrerer Prozessoren zu nutzen. Betriebssysteme, welche parallelverarbeitungsfähig sind, können diese Threads zur parallelen Verarbeitung auf mehrere Prozessoren in dem System einplanen. Weiterhin kann Parallelität auf Thread-Ebene auch auf jedem Prozessor auftreten. Anwendungen mit Dual- oder Parallelverarbeitung in den Bereichen Web-Serving, Suchmaschinen, Sicherheit, Streaming-Medien und Datenbanken können beispielsweise den Vorteil der gesteigerten Verarbeitungsleistung von Multi-Threading und von Parallelprozessor-Computersystemen nutzen.
- Ein Typ der Multi-Threading-Technik, wie beispielsweise die Hyper-Threading-Technik, ist eine Form der simultanen Multi-Threading-Technik (SMT), bei welcher mehrere Threads von Software-Anwendungen gleichzeitig auf einem Prozessor ablaufen können. Dies wird durch ein Duplizieren des Strukturzustands auf jedem Prozessor erreicht, während ein Satz Prozessorausführungsressourcen gemeinsam benutzt wird. Der Strukturzustand verfolgt den Fluß eines Programms oder Threads nach, und die Ausführungsressourcen sind die Einheiten auf dem Prozessor, welche die Arbeit ausführen (d. h. addieren, multiplizieren, laden usw.). Bei manchen Parallelprozessorsystemen weist jeder Prozessor seinen eigenen Satz Prozessorausführungsressourcen und seinen eigenen Strukturzustand auf. Bei Multi-Threading-fähigen Parallelprozessorsystemen kann der Strukturzustand für jeden Prozessor dupliziert werden, obwohl jeder Prozessor immer noch einen Satz Ausführungsressourcen aufweist. Beim Einplanen von Threads behandelt das Betriebssystem die separaten Strukturzustände auf jedem Prozessor als einen separaten, „logischen" Prozessor. Logische Prozessoren nutzen fast alle anderen Ressourcen auf dem physikalischen Prozessor gemeinsam, wie beispielsweise Cache-Speicher, Ausführungseinheiten, Sprungprädiktoren, Steuerungslogik und Busse. Wie physikalische Prozessoren, kann jeder logische Prozessor unabhängig auf Unterbrechungen reagieren. Ein logischer Prozessor kann einen ersten Software-Thread nachverfolgen, während ein anderer logischer Prozessor gleichzeitig einen zweiten Software-Thread nachverfolgen kann. Da mehrere Threads einen Satz Ausführungsressourcen gemeinsam benutzen, kann ein Thread Ressourcen verwenden, welche sich im Ruhezustand befänden, wenn der Prozessor andernfalls nur einen Thread ausführen würde. Im Ergebnis können das Gesamtleistungsvermögen und die Systemreaktion verbessert werden.
- Es können verschiedene Wege zum Verbessern des Stromverbrauchs und des Leistungsvermögens einer Prozessorarchitektur wünschenswert sein. Ein interessanter Bereich bezieht das Behandeln und das Bedienen von Unterbrechungsanforderungen von unterschiedlichen Systemvorrichtungen durch Prozessoren ein. Bei manchen Systemen werden Unterbrechungsanforderungen durch die Chipsatzlogik verwaltet. Die Chipsatzlogik fängt diese Anforderungen ab und bestimmt, auf welchen Prozessor die Anforderung zur Bedienung verteilt wird. Bei Einprozessorsystemen ist dies einfach, da der Chipsatz ein einzelnes Ziel aufweist. Bei Systemen, welche mehrere physikalische und/oder logische Prozessoren umfassen, kann die Aufgabe der Verteilung einer Unterbrechungsanforderung schwieriger werden, da der Chipsatz versucht, den Einfluß von Unterbrechungen auf das Leistungsvermögen zu minimieren.
- Die fortgeschrittene programmierbare Unterbrechungssteuergerät-(Advanced Programmable Interrupt Controller, APIC)-Architektur gestattet die Lieferung einer Geräteunterbrechung an einen Prozessor, welcher in einem Satz von Zielprozessoren mit der niedrigsten Priorität arbeitet. Diese Prozessorpriorität wird über die Inhalte des Aufgabenprioritätsregisters für diese Prozessoren festgestellt. Dieses Merkmal basiert auf der Idee, daß die Priorität, mit welcher ein Prozessor gegenwärtig läuft, die Kritikalität der Aufgabe repräsentiert, welche gerade durchgeführt wird. Je höher die Aufgabenpriorität desto weniger wünschenswert wäre es, diesen Prozessor zu unterbrechen, da ein unerwünschter Einfluß auf das Gesamtleistungsvermögen auftreten kann. Weiterhin würde durch Weiterleiten einer Unterbrechung an den Prozessor, welcher im System mit der niedrigsten Priorität arbeitet, eine bessere Chance bereitgestellt, daß die Unterbrechung mit einer minimalen Wartezeit bedient wird.
- Gegenwärtige Mechanismen zur Unterbrechungslieferung beachten keine Prozessorleistungszustände und wissen folglich nicht, ob sich ein Zielprozessor in einem Stromsparmodus befindet. Diese Unterbrechungsmechanismen ignorieren, ob ein Prozessor sich in einem Arbeitszustand oder sich in irgendeinem Typ eines Schlafzustands (d. h. Haltezuteilung, Tiefschlaf usw.) befindet. Im Ergebnis können Anforderungen zu einer Unterbrechungsbedienung an einen schlafenden Prozessor gerichtet werden, welche bewirken, daß der Prozessor aufwacht und den Schlafmodus zu Gunsten eines Betriebsmodus verläßt, um die Unterbrechung zu behandeln. Da die Schlafzustände des Prozessors entworfen wurden, um Strom zu sparen, wird dieses Ziel durch das Aufwecken eines schlafenden Prozessors zum Durchführen einer Aufgabe durchkreuzt. Mit einer Weiterverbreitung von Parallelprozessor- und Multi-Thread-Konfigurationen sowohl bei mobilen als auch bei Arbeitsplatz-Computersystemen können Stromsparverfahren zum Vermeiden von Störungen der anderer Prozessorstromsparmodi beim Liefern von Unterbrechungen wichtiger werden.
- Ausführungsformen der vorliegenden Erfindung erlauben Lieferungsschemata für Unterbrechungen niedriger Priorität, um beim Bestimmen, wohin Unterbrechungsanforderungen gesendet werden sollen, Prozessorstromsparzustände zu berücksichtigen. Durch Implementieren von Ausführungsformen der vorliegenden Erfindung wäre ein Prozessor in einem tieferen Schlafzustand als ein anderer Prozessor ein weniger bevorzugtes Ziel für eine Unterbrechung niedrigster Priorität. Im Ergebnis können Prozessoren in Schlafzuständen das Schlummern in ihren jeweiligen Schlafzuständen ohne Unterbrechung fortsetzen, was zu besseren Stromeinsparungen führt.
- Bei manchen Ausführungsformen ist das Betriebssystem für ein Steuern der Stromsparzustände, welche auch als C-Zustände bezeichnet werden, verantwortlich, in welche Prozessoren gemäß den ACPI-Spezifikationen eintreten. Das Betriebssystem oder die Systemverwaltungs-Software kann einen passenden Leistungszustand in Abhängigkeit davon wählen, wie weit sich ein Prozessor im Ruhezustand befunden hat. Obwohl eine Anzahl von ACPI-fähigen Betriebssystemen verfügbar ist, können alternative Ausführungsformen der vorliegenden Erfindung auch so implementiert werden, daß sie auf so genannten „Vorläufer-" Betriebssystemen und Maschinen arbeiten, welche nicht ACPI-fähig sein müssen. Alternative Ausführungsformen der vorliegenden Erfindung gestatten eine Fähigkeit zum Durchführen einer Unterbrechungsverteilung niedrigster Priorität, welche den Prozessorleistungszustand beachtet, bei älteren Systemen ohne oder mit wenigen Software-Modifikationen. Dies kann insbesondere bei älteren ACPI-fähigen Betriebssystemen wünschenswert sein, welche nicht modifiziert werden können.
- Unter Bezugnahme auf
1 wird jetzt ein beispielhaftes Computersystem100 gezeigt. Das System100 umfaßt eine Komponente, wie beispielsweise Prozessoren101 ,105 und den Chipsatz116 ,130 , um einen Mechanismus zur Verteilung von Unterbrechungen unter Berücksichtigung des Leistungszustands gemäß der vorliegenden Erfindung einzusetzen, wie beispielsweise bei der hier beschriebenen Ausführungsform. Das System100 ist repräsentativ für Verarbeitungssysteme auf der Grundlage der PENTIUM® III-, PENTIUM® 4-, TitanTM- und/oder XScaleTM-Mikroprozessoren, welche von Intel Corporation in Santa Clara, Kalifornien, erhältlich sind, obwohl auch andere Systeme (einschließlich PCs mit anderen Mikroprozessoren, technischer Arbeitsstationen, Set-Top-Boxen und dergleichen) verwendet werden können. Bei einer Ausführungsform kann das Beispielsystem100 eine Version des WINDOWSTM-Betriebssystems ausführen, welche von Microsoft Corporation in Redmond, Washington, erhältlich ist, obwohl auch andere Betriebssysteme (UNIX und Linux beispielsweise), eingebettete Software und/oder graphische Benutzerschnittstellen verwendet werden können. Folglich ist die vorliegende Erfindung nicht auf eine spezifische Kombination von Hardware-Schaltkomplex und Software beschränkt. - Die vorliegende Verbesserung ist nicht auf Computersysteme beschränkt. Alternative Ausführungsformen der vorliegenden Erfindung können in anderen Geräten verwendet werden, wie beispielsweise in tragbaren Geräten und eingebetteten Anwendungen. Einige Beispiele tragbarer Geräte umfassen Mobiltelefone, Internetprotokoll-Vorrichtungen, digitale Kameras, PDA-Minicomputer (PDAs) und tragbare PCs. Eingebettete Anwendungen können einen Mikrokontroller, einen digitalen Signalprozessor (DSP), einen Systemchip, Netzwerk-Computer (NetPC), Set-Top-Boxen, Netzwerk-Hubs, Fernnetz-(WAN)-Schalter oder ein beliebiges anderes Parallelprozessor- oder Multi-Threading-System umfassen, welches Unterbrechungen verwendet. Weiterhin wurden einige Architekturen implementiert, um den Stromverbrauch über niedrige Leistungszustände oder Schlafmodi zu reduzieren. Mit der fortgesetzten Abnahme von Formfaktoren elektronischer Vorrichtungen und der fortgesetzten Zunahme der Leistungsanforderungen elektronischer Komponenten werden zusätzliche Anstrengungen gebraucht, um bei einem minimalen negativen Einfluß auf das Leistungsvermögen Strom zu sparen.
-
1 ist ein Blockdiagramm eines Parallelprozessor-Computersystems100 , welches mit zwei Prozessoren, A101 und B105 ausgebildet ist, welcher jeder eine Unterbrechungsbehandlungslogik103 ,107 gemäß der vorliegenden Erfindung umfaßt. Die vorliegende Ausführungsform wird im Kontext eines Systems beschrieben, welches mehrere physikalische Prozessoren umfaßt, aber es können alternative Ausführungsformen mit einem Multi-Threading-Prozessor verwendet werden, bei dem auf einem einzelnen physikalischen Prozessor mehrere logische Prozessoren existieren. Genauso kann eine andere Ausführungsform der vorliegenden Erfindung mit einem mehrkernigen Modul implementiert werden, welches mehrere Prozessorkerne aufweist, welche zusammen in einem einzelnen Modul gepackt sind. Das System100 ist ein Beispiel einer Hub-Architektur. Das Computersystem100 umfaßt die Prozessoren101 ,105 zum Verarbeiten von Datensignalen. Die Prozessoren101 ,105 können Mikroprozessoren mit komplexem Befehlssatz (CISC), Mikroprozessoren mit reduziertem Befehlsatz (RISC), Mikroprozessoren mit sehr langem Befehlswort (VLIW), Prozessoren, welche eine Kombination aus Befehlssätzen implementieren, oder beliebige andere Prozessorvorrichtungen sein, wie beispielsweise digitale Signalprozessoren. - Die Prozessoren
101 ,105 sind mit einem Prozessor-Bus110 verbunden, welcher Datensignale zwischen den Prozessoren101 ,105 und anderen Komponenten im System100 übertragen kann. Die Elemente des Systems100 führen ihre herkömmlichen Funktionen durch, welche Durchschnittsfachleuten wohlbekannt sind. Bei einer Ausführungsform umfassen die Prozessoren101 ,105 jeweils einen internen Level-1-(L1)-Cache-Speicher102 ,106 . Es befindet sich auch ein Unterbrechungsbehandlungsmechanismus103 ,107 in den Prozessoren101 ,105 . Bei einer Ausführungsform stellt die Unterbrechungsbehandlung103 ,107 Informationen hinsichtlich der Prozessorpriorität und des Leistungsstatus bereit. Es können auch alternative Ausführungsformen einer Unterbrechungslogik103 ,107 in Mikrokontrollern, eingebetteten Prozessoren, Graphikvorrichtungen, DSPs und anderen Logikschaltungstypen verwendet werden. Das System100 umfaßt einen Speicher120 . - Ein Systemlogikchip
116 ist mit dem Prozessor-Bus110 und dem Speicher120 verbunden. Der Systemlogikchip116 in der illustrierten Ausführungsform ist ein Memory-Controller-Hub (MCH). Die Prozessoren101 ,105 können mit dem MCH116 über einen Prozessor-Bus110 kommunizieren. Der MCH116 stellt einen Speicherweg118 hoher Bandbreite zum Speicher120 für eine Befehls- und Datenspeicherung und für eine Speicherung von Graphikbefehlen, -Daten und -Texturen bereit. Der MCH116 dient der Lenkung von Datensignalen zwischen den Prozessoren101 ,105 , dem Speicher120 und anderen Komponenten im System100 und der Überbrückung der Datensignale zwischen Prozessor-Bus110 , Speicher120 und System-E/A122 . Bei manchen Ausführungsformen kann der Systemlogikchip116 einen Graphik-Port zum Anschließen an ein Graphik-Steuergerät112 bereitstellen. Der MCH116 ist durch eine Speicherschnittstelle118 mit Speicher120 verbunden. Die Graphikkarte112 ist durch eine Accelerated-Graphics-Port-(AGP)-Zwischenverbindung114 mit dem MCH116 verbunden. Bei einer Ausführungsform ist auch die Unterbrechungsbehandlungslogik117 in dem MCH116 angeordnet, da der Chipsatz Unterbrechungsanforderungen von verschiedenen Systemvorrichtungen empfängt und die Unterbrechungen zum Verarbeiten an passende Ziele verteilt. Bei manchen Systemen kann der Chipsatz periodisch Vorrichtungen nach Unterbrechungen (Interrupts) abfragen. Die Unterbrechungslogik117 für den MCH116 dieser Ausführungsform berücksichtigt beim Verteilen von Unterbrechungen, welche eine Prozessorbehandlung erfordern, die Prozessorpriorität und den Prozessorleistungszustand. Auch andere Faktoren können bei einer Unterbrechungsverteilung in Abhängigkeit von der bestimmten Implementierung betrachtet werden. - Das System
100 verwendet einen proprietären Hub-Schnittstellen-Bus122 , um den MCH116 mit dem E/A-Steuergerät-Hub (ICH)130 zu verbinden. Der ICH130 stellt über einen lokalen E/A-Bus unmittelbare Verbindungen zu einigen E/A-Vorrichtungen bereit. Der lokale E/A-Bus ist ein Hochgeschwindigkeits-E/A-Bus zum Verbinden von Peripheriegeräten mit dem Speicher120 , dem Chipsatz und den Prozessoren101 ,105 . Einige Beispiele sind der Datenspeicher124 , der drahtlose Sendeempfänger126 , der Firmware-Hub (Flash-BIOS)128 , das Legacy-E/A-Steuergerät, welches Schnittstellen für Benutzereingabe und Tastatur enthält, ein serieller Erweiterungs-Port, wie beispielsweise ein Universal Serial Bus (USB), das Audio-Steuergerät und ein Netzwerksteuergerät134 . Die Datenspeicherungsvorrichtung124 kann ein Festplattenlaufwerk, ein Diskettenlaufwerk, ein CD-ROM-Gerät, ein Flash-Speichergerät oder ein anderes Massenspeichergerät umfassen. Die verschiedenen oben stehenden Vorrichtungen, welche sowohl mit dem MCH116 als auch mit dem ICH130 verbunden sind, können alle in die Lage kommen, daß sie einen Unterbrechungsdienst brauchen. Zusätzlich können die Prozessoren auch Unterbrechungen an andere Prozessoren ausgeben. - Ausführungsformen von Mechanismen gemäß der vorliegenden Erfindung gestatten die Übertragung von Prozessor-Schlafzustandsinformationen an die Chipsatzlogik oder an die Systemkomponente, welche für die Lieferung der Unterbrechungen niedrigster Priorität verantwortlich ist. Bei manchen Ausführungsformen ist die Chipsatzlogik erweitert, um diese Prozessor-Schlafzustandsinformationen beim Auswählen eines Zielprozessors aus einem Satz verfügbarer Zielprozessoren im System für die Lieferung der Unterbrechungen niedrigster Priorität zu verwenden. Die Mechanismen einer auf Hardware beruhenden Ausführungsform stellen eine Prioritätsbeziehung zwischen den Betriebs- und Schlafzuständen des Prozessors her. Der Mechanismus kommuniziert diesen Typ von Betriebs-/Schlafzustandsinformationen über einen oder mehrere Bus-Zyklen an den Chipsatz. Der Chipsatz bei dieser Ausführungsform ist entworfen, um die Betriebs-/Schlafzustandsinformationen zu empfangen und um die Informationen während des Unterbrechungsverteilungsalgorithmus zu berücksichtigen. Bei einer auf Software beruhenden Ausführungsform gestattet eine Erweiterung in dem Betriebssystem, daß Prozessor-Schlafzustandsinformationen indirekt an den Chipsatz oder die Systemkomponentenantwort für eine Unterbrechungslieferung an den Prozessor übertragen werden. Mit Ausführungsformen der vorliegenden Erfindung kann ein Betriebssystem gewährleisten, daß Prozessoren in tieferen Schlafzuständen weniger bevorzugte Ziele für ein Empfangen von Unterbrechungen niedriger Priorität sind, was bei Parallelprozessor- und Multi-Threading-Konfigurationen zu besseren Stromeinsparungen führt. Bei einer Ausführungsform kann dieser Mechanismus primär in Hardware implementiert werden. Alternative Ausführungsformen der vorliegenden Erfindung können ohne Hardware-Änderungen primär als Software implementiert werden. Weiterhin können einige Ausführungsformen eine Hybrid-Kombination sowohl von Hardware- als auch von Software-Komponenten verwenden. Bei wieder einer anderen Ausführungsform wird ein Schema, welches eine Kombination aus Hardware und Betriebssystems-Software umfaßt, konfiguriert, wobei das Betriebssystem individuellen Prozessoren Prozessoraufgabenprioritäts-TPR-Werte auf der Grundlage des Leistungszustands dieses Prozessors zuordnet. Beispielsweise entspricht ein niedriger Leistungszustand (d. h. ein höherwertiger C-Zustand wie C2 und mehr, wie in
4 unten) einem höheren TPR-Wert, und diesem Prozessor wird dementsprechend ein höherer TPR-Wert zugeordnet. Mit anderen Worten werden durch die TPR-Werte Unterbrechungen davon abgehalten, an einen Prozessor in einem niedrigen Leistungszustand gesendet zu werden. -
2 ist ein Blockdiagramm200 eines Multi-Core-Prozessormoduls201 und eines zugeordneten Chipsatzes240 , welche eine Ausführungsform eines Unterbrechungsmechanismus unter Berücksichtigung des Leistungszustands der vorliegenden Erfindung umfassen. Das Multi-Core-Prozessormodul201 dieser Ausführungsform umfaßt zwei individuelle physikalische Prozessorkerne A220 und B230 . Bei diesem Beispiel sind beide Kerne220 ,230 identisch. Jeder Kern220 ,230 umfaßt: eine Ausführungslogik221 ,231 zum Ausführen von Code und Befehlen; einen internen On-Die-Cache-Speicher222 ,232 zum Speichern von Daten und Befehlen und eine Unterbrechungslogik223 ,233 mit einem Aufgabenprioritätsregister (TPR)224 ,234 . Bei manchen Ausführungsformen können die Unterbrechungslogik223 ,233 und zugeordnete TPRs224 ,234 in dem Prozessormodul202 jedoch außerhalb der Kerne220 ,230 angeordnet sein. Eine Frontside-Bus-(FSB)-Einheit235 , welche die Kommunikation zwischen den Kernen220 ,230 und mit der Außenwelt (d. h. dem externen Bus und Cache-Speicher) überbrückt, ist auch innerhalb des Moduls201 angeordnet. Eine einzelne, gemeinsam genutzte FSB-Einheit235 ist angeschlossen, um bei dieser Ausführungsform sowohl den Prozessorkern A220 als auch den Prozessorkern B230 zu bedienen. Bei alternativen Ausführungsformen kann jeder Kern seine eigene FSB-Einheit aufweisen. Genauso kann bei einer anderen Ausführungsform eine einzelne Unterbrechungslogikeinheit von mehreren Prozessorkernen gemeinsam benutzt werden, wobei ein TPR-Register oder -Eintrag für jeden Kern in diesem Unterbrechungslogikblock unterhalten wird. Obwohl die Unterbrechungslogik223 ,233 im Beispiel der2 als separate Blöcke dargestellt ist, kann die Unterbrechungslogik physikalisch auch als ein Logikblock existieren, aber logisch dupliziert werden. - Zusätzlich zu den beiden Prozessorkernen
220 ,230 befindet sich ein Cache-Speicher210 innerhalb des Prozessormoduls201 . Die Prozessorkerne220 ,230 und der Cache-Speicher210 sind über einen Bus, welcher intern in Modul201 ist, miteinander verbunden. Kommunikation zwischen den Komponenten210 ,220 ,230 innerhalb des Moduls201 und externen Vorrichtungen findet durch eine Bus-Schnittstelle250 statt. Bei dieser Ausführungsform ist der Bus250 mit der Chipsatzlogik240 verbunden. Der Chipsatz240 dieser Ausführungsform umfaßt die Unterbrechungslogik241 mit einer TPR-Tabelle242 und einer Zustandsinformationstabelle243 . Die TPR-Tabelle242 und die Zustandsinformationstabelle243 können generische Speicherungsorte sein, wie beispielsweise Register zum Abspeichern von Daten oder Informationen. Der Begriff „Register" wird hier verwendet, um die Prozessorspeicherungsorte auf der Platine zu bezeichnen, welche als Teil von Makro-Befehlen verwendet werden, um Operanden zu identifizieren. Mit anderen Worten sind die hier bezeichneten Register diejenigen, welche von außerhalb des Prozessors oder der Komponente sichtbar sind (aus der Perspektive eines Programmierers). Die hier beschriebenen Register können jedoch von einem Schaltkomplex innerhalb einer Komponente unter Verwendung einer beliebigen Anzahl von unterschiedlichen Verfahren implementiert werden, wie beispielsweise durch fest zugeordnete physikalische Register, dynamisch zugewiesene physikalische Register unter Verwendung verbleibender Register, Kombinationen fest zugeordneter und dynamisch zugewiesener physikalischer Register usw.. - Während des Systembetriebs werden Daten unter den Prozessoren
220 ,230 , dem Cache-Speicher210 und dem Chipsatz240 kommuniziert. Weiterhin reproduziert der Chipsatz240 Unterbrechungsanforderungen von verschiedenen Systemvorrichtungen zum bedarfsweisen Verarbeiten an die Prozessorkerne220 ,230 . Bei dieser Ausführungsform berücksichtigt der Chipsatz beim Verteilen von Unterbrechungen zusätzlich zu der Prozessorpriorität den Prozessorleistungszustand. Jeder Prozessorkern220 ,230 dieses Moduls201 speichert seine Prioritätsstufe und seinen Leistungszustand in seinem jeweiligen TPR224 ,234 ab. Der Prozessorprioritätswert bezeichnet die Priorität von Operationen eines spezifischen Prozessors und die Toleranz des Prozessors für Unterbrechungen. Weiterhin kann der Prozessorprioritätswert die Hierarchie der Wichtigkeit und der Steuerung relativ zu anderen verfügbaren Prozessoren im System bezeichnen. Beispielsweise kann ein Prozessor der Priorität '0' der Master-Prozessor im System sein. Unterbrechungen hoher Priorität, wie beispielsweise eine Taktunterbrechung oder eine nicht maskierbare Unterbrechung (NMI), werden zum Master-Prozessor geleitet. Unterbrechungen mit fester Lieferung können auch für einen spezifischen Prozessor gekennzeichnet werden. Ein Prozessor mit einem hohen Aufgabenprioritätswert kann eine Prozessoraufgabe bezeichnen, welche nicht unterbrochen werden darf. Wenn beispielsweise ein Prozessor eine systemkritische Funktion ausführt, kann der Prozessor seinen Aufgabenprioritätswert auf einen entsprechenden Wert setzen, um Unterbrechungen zu vermeiden. Andere Prozessoren mit niedrigerem Prioritätswert können weniger kritische Funktionen durchführen und auch zugänglicher für eine Unterbrechung sein, um Unterbrechungsanforderungen niedriger Priorität zu behandeln. - Genauso bezeichnet der Leistungszustandswert in welchem Leistungsbereich der bestimmte Prozessorkern arbeitet. Beispielsweise kann ein Prozessor ,eingeschaltet und belegt', ,eingeschaltet und im Ruhezustand', ,angehalten', ,haltezugeteilt', ,tief schlafend', ,tiefer schlafend' oder ,ausgeschaltet' sein. In Abhängigkeit davon, in welchem Leistungszustand sich ein Prozessor befindet, kann eine Anforderung zum Bedienen einer Unterbrechung unterschiedliche Leistungsimplikationen und Beendigungszeiten aufweisen. Die Kerne
220 ,230 dieses Beispiels verfolgen den Prozessorprioritätswert und den Prozessorleistungszustand in den TPRs224 ,234 innerhalb der Unterbrechungslogik223 ,233 nach. Die Prioritätswerte und Leistungszustände werden aus den Kernen220 ,230 an die Unterbrechungslogik241 des Chipsatzes240 übermittelt. Die Chipsatz-Unterbrechungslogik241 dieser Ausführungsform umfaßt eine TPR-Tabelle242 und eine Leistungszustandsinformationstabelle243 , um die Prozessorprioritätswerte bzw. die Prozessorleistungszustandswerte für jeden Prozessor im System zu speichern. Wenn die Chipsatz-Unterbrechungslogik241 folglich entscheidet, an welchen Prozessor eine Unterbrechung gesendet werden soll, werden die Aufgabenprioritäts- und Zustandsinformationen in den jeweiligen Tabellen242 ,243 beurteilt und berücksichtigt. In Abhängigkeit von dem Zuweisungsalgorithmus der bestimmten Ausführungsform wird eine Unterbrechung an einen spezifischen Prozessor gesendet. Bei einer Ausführungsform werden Unterbrechungen primär von Prozessoren mit einem Zustand ,eingeschaltet und im Ruhezustand' oder ,eingeschaltet und belegt' behandelt, da ,schlafende' oder ,abgeschaltete' Kerne unerwünschte Leistungs- und Latenzeinwirkungen aufweisen. Bei einer Ausführungsform wird jedes Informationsstück für jeden Prozessor in seinem eigenen eindeutigen Register gespeichert. -
3 ist ein Blockdiagramm300 eines Multi-Threading-Prozessors301 und eines zugeordneten Chipsatzes360 , welche eine andere Ausführungsform eines Unterbrechungsmechanismus, welcher den Leistungszustand beachtet, gemäß der vorliegenden Erfindung umfassen. Das Prozessormodul301 dieser Ausführungsform umfaßt einen einzelnen Prozessorkern320 und einen Cache-Speicher310 . Dieser Kern320 umfaßt einen Cache-Speicher321 auf dem Chip, eine Unterbrechungslogik322 , eine Multi-Thread-Logik323 , eine Frontside-Bus-Logik325 , eine Ganzzahlverarbeitungslogik326 und eine Fließkommaverarbeitungslogik327 . Innerhalb der Unterbrechungslogik befindet sich ein TPR324 , wie oben stehend mit dem Beispiel der2 beschrieben. Der Prozessorkern320 und der Cache-Speicher310 sind zusammen durch einen externen Bus350 mit der Chipsatzlogik360 verbunden. Der Chipsatz360 umfaßt eine Unterbrechungslogik361 , welche eine TPR-Tabelle362 und eine Leistungszustandsinformationstabelle363 unterhält. Obwohl die TPR-Tabelle362 und die Zustandsinformationstabelle363 als separate Einheiten gezeigt werden, können bei einer anderen Ausführungsform die Prozessorprioritäts- und Leistungszustandsinformationen zusammen in einer konsolidierten Datenstruktur gespeichert werden. Weiterhin können die Prioritäts- und Leistungszustandsinformationen auch zu einem einzelnen repräsentativen Wert für jeden Prozessor kombiniert werden, um eine relative Wünschbarkeit und/oder eine Priorität bei der Verteilung von Unterbrechungen auf Prozessoren zur Behandlung zu bezeichnen. - Bei dieser Ausführungsform ist ein einzelner physikalischer Prozessorkern vorhanden. Die Multi-Threading-Logik
323 gestattet mehreren Befehls-Threads, auf einem einzelnen Satz von Architekturressourcen durch gemeinsame Benutzung von Ressourcen parallel verarbeitet zu werden. Beispielsweise ist das Prozessormodul301 des Beispiels in der Lage, zwei Threads A und B gleichzeitig zu verarbeiten. Die Threads A und B unterhalten jeder ihre eigenen Strukturzustände A330 und B340 , verwenden die physikalischen Prozessorkern-Ressourcen jedoch durch einen Algorithmus für eine gemeinsame Ressourcen-Benutzung. Zusätzlich zur physikalischen Multi-Threading-Logik323 ist es dem Betriebssystem (wie beispielsweise Windows, UNIX oder Linux, wie zuvor beschrieben) auch erlaubt, mehrere Threads auszugeben oder simultane Programme auszufüren. Bei manchen Parallelprozessorsystemen verwendet das Betriebssystem eine Unterbrechungslieferung niedrigster Priorität als den voreingestellten Algorithmus für alle Geräteunterbrechungen. Aus einer Benutzer- und Betriebssystemsperspektive erscheint das System300 so, daß es mehrere, zwei bei diesem Beispiel, Logikprozessoreinheiten aufweist. Die Strukturzustände A330 und B340 werden hier beispielhaft gezeigt und repräsentieren keine tatsächlichen physikalischen Logikblöcke auf dem Prozessormodul301 . Die Strukturzustände A330 und B340 dieses Beispiels umfassen die jeweiligen Prozessorregister jedes Threads. Bei einer Ausführungsform umfaßt der Strukturzustand Register, wie beispielsweise Universalregister, Steuerungsregister, fortgeschrittene programmierbare Unterbrechungssteuergerät-(Advanced Programmable Interrupt Controller, APIC)-Register und einige Maschinenzustandsregister. Die Daten, Einstellungen usw. jedes Strukturzustands können in einem Speicherbereich auf dem Prozessor301 gespeichert werden. - Bei dieser Ausführungsform verfolgen die TPR-Tabelle
362 und die Leistungszustandsinformationstabelle363 die relevanten Werte für die Logikprozessoren nach. Wie die physikalischen Prozessorkerne220 ,230 des oben stehenden, vorhergehenden Beispiels, weist beispielsweise jeder Strukturzustand330 ,340 logischer Prozessoren bei diesem Beispiel einen Aufgabenprioritätswert und einen Leistungszustandswert auf. Der Aufgabenprioritätswert in diesem Fall gibt auch die relative Wichtigkeit der Aufgabe dieses Threads und die Toleranz für Unterbrechungen weder. Während die Leistungszustandswerte des Beispiels der2 physikalische Leistungseinstellungen übermittelten, zeigen die Leistungszustandswerte für einen Strukturzustand dieser Ausführungsform den Typ der Thread-Aktivität und entsprechend das Ausmaß des Stromverbrauchs an. Beispielsweise kann ein Thread einen ,Belegt'-Status aufweisen, um anzuzeigen, daß der Thread aktiv ist und ausgeführt wird. Oder ein Thread kann einen ,Im Ruhezustand'- oder ,Angehalten'-Status aufweisen, um anzuzeigen, daß der Thread gegenwärtig nicht abläuft oder gerade auf irgendetwas wartet. Genauso kann ein Thread einen ,Schlafend'-Status aufweisen, um anzuzeigen, daß der Thread gerade schläft und sein Strukturzustand gegenwärtig inaktiv gehalten wird. Durch Beurteilen des Prozessorleistungszustands beim Bestimmen, welchem logischen Prozessor eine Anforderung für eine Unterbrechungsbedienung gesendet werden soll, kann der Chipsatz vermeiden, einen schlafenden Thread aufzuwecken, was in Bezug auf die Zeitdauer und den Strom kostspielig sein kann, wenn der Leistungszustand eines anderen Threads ,im Ruhezustand' ist. Der Chipsatz kann zum Bedienen einer Unterbrechung auch einen Thread mit einem ,Belegt'-Zustand unterbrechen, anstatt einen kostspieligeren Thread zu aktiveren. -
4 illustriert die Prozessorleistungszustände (C-Zustände in den ACPI-Spezifikationen) bei einer Ausführungsform der vorliegenden Erfindung. Bei dieser Ausfüh rungsform reichen die Prozessorleistungszustände von C0-BELEGT401 bis Cn406 , wobei je niedriger die an ,C' angehängte Zahl ist, desto niedriger ist das Ausmaß der zusätzlichen Gesamtleistung, welche gebraucht wird, um eine Unterbrechung zu bedienen. Die C0-Ebene umfaßt sowohl einen Belegt-Zustand als auch einen Im-Ruhezustand-Zustand, da der Prozessor in beiden Fällen eingeschaltet ist und entweder gerade Benutzer-/Kern-Code ausführt oder bereit ist, Code auszuführen. Genauso kann ein Thread entweder gerade laufen (belegt) oder sich im Ruhezustand befinden (in Warteschleife). Die Hierarchie der Leistungszustände bei dieser Implementierung von dem aktivsten, welcher die minimale Leistungsmenge erfordert, um aktiv zu werden, ist: C0-BELEGT401 , C0-IM RUHEZUSTAND402 , C1-ANGEHALTEN/WARTEND403 , C2-HALTEZUGETEILT404 , C3-TIEFSCHLAF405 und Cn406 . Hier ist der Cn-Leistungszustand406 ein beliebiger Leistungszustand an der Basis der Hierarchie und benötigt im Vergleich zu den anderen Leistungszuständen ein großes Ausmaß an Zeit und Leistung, bevor er in der Lage ist, eine Unterbrechung zu bedienen. Die Anzahl verfügbarer Leistungszustände kann in Abhängigkeit von der bestimmten Ausführungsform variieren. Die Begriffe Prozessor und Thread werden hier derartig austauschbar verwendet, daß ein Thread sich auch auf einen logischen Prozessor bezieht. - Bei einer Ausführungsform der vorliegenden Erfindung beurteilt die Chipsatz-Unterbrechungslogik die Prozessorleistungszustände, welche von den verschiedenen Prozessoren empfangen wurden, um eine relative Liste zu bestimmen. Bei dieser Ausführungsform ist der Zustand C0-IM RUHEZUSTAND
402 gegenüber dem Zustand C0-BELEGT401 bevorzugt, da beide Zustände einen Prozessor oder einen Thread bezeichnen, welcher eine Unterbrechung ohne oder mit wenig zusätzlichem Aufwand behandeln kann. Ein Prozessor/Thread, welcher belegt ist, müßte jedoch die gegenwärtig laufende Aufgabe unterbrechen und möglicherweise den Strukturzustand sichern, bevor er die Unterbrechungsanforderung bedient, während ein Prozessor/Thread, welcher sich im Ruhezustand befindet, die Unterbrechungsanforderung sofort mit noch weniger zusätzlichem Aufwand übernehmen könnte. Bei einem Prozessor/Thread, welcher angehalten oder schlafend ist, wie bei C2404 bzw. C3405 , müßte der Prozessor/Thread aufgeweckt und sein Strukturzustand wiederhergestellt werden, was variable Zeitmengen erfordern kann. Weiterhin kann ein Aufwecken eines schlafenden Prozessors/Threads auch ein bisschen Leistung erfordern, um die nötige Hardware-Logik erneut zu starten oder zu aktivieren. Je weniger aktiv der Prozessor deshalb ist, desto größer sind die Kosten in Bezug auf Zeit und Leistung, damit dieser Prozessor bereit wird, eine Unterbrechung zu bedienen. Folglich kann die Chipsatz-Unterbrechungslogik konfiguriert werden, um den optimalen Prozessor zum Behandeln einer Unterbrechungsanforderung auf der Grundlage einer Kombination aus Faktoren einschließlich des Prozessorleistungszustands und der Prozessoraufgabenpriorität auszuwählen. -
5 ist ein Diagramm eines Prozessoraufgabeninformations-Tabelleneintrags500 für einen Chipsatz einer Ausführungsform. Die Einträge500 können an verschiedenen Speicherorten einschließlich Register, Zwischenspeicher usw. gespeichert werden. Bei dieser Ausführungsform besteht jeder Eintrag aus fünf Feldern über drei Daten-Bytes und speichert Informationen, wie eine Prozessoraufgabenpriorität und einen Prozessorleistungszustand. Das erste Feld des Eintrags500 ist bei diesem Beispiel eine physikalische fortgeschrittene programmierbare Unterbrechungssteuergerät-(Advance Programmable Interrupt Controller, xAPIC)-Kennung501 . Die physikalische xAPIC-ID501 dieser Ausführungsform identifiziert den physikalischen Prozessor, welchem dieser Eintrag zugeordnet ist. Dieses erste Feld einer Ausführungsform wird eingesetzt, wo mehrere Prozessoren oder mehrere Prozessorkerne physikalisch im System vorhanden sind. Ein zweites Feld jedes Eintrags500 ist eine logische xAPIC-ID502 . Die logische xAPIC-ID502 dieser Ausführungsform identifiziert den logischen Prozessor oder Thread, welchem dieser Eintrag zugeordnet ist. Dieses logische ID-Feld502 wird bei dieser Implementierung durch das Betriebssystem programmiert. - Das dritte Feld des TPR-Eintrags
500 enthält bei dieser Ausführungsform ein Aktiv-Kennzeichen, welches bezeichnet, ob dieser bestimmte Eintrag gültig ist oder nicht. Das Aktiv-Feld kann auch verwendet werden, um zu bezeichnen, ob der Prozessor/Thread in der Lage ist, Unterbrechungen zu behandeln. Wenn ein Prozessor-Eintrag nicht aktiv ist, kann der Prozessor nicht verfügbar oder nicht aktiv sein. Bei dieser Ausführungsform enthält ein viertes Feld den Leistungszustand504 dieses Prozessors. Bei alternativen Ausführungsformen kann dieses Feld jedoch reserviert oder nicht vorhanden sein, da die Unterbrechungslogik die Leistungszustandswerte und die Prozessorprioritätswerte zu einem vereinigten Wert verschmelzen kann. Das fünfte Feld dieser Ausführungsform dient dem Speichern eines TPR-Werts505 für diesen Prozessor. Der TPR-Wert dient zum Bezeichnen der Aufgabenpriorität an dem vorliegenden Prozessor. Der Algorithmus für die Unterbrechungslogik dieser Ausführungsform ist so konfiguriert, daß er keine Aufgabe mit einer höheren Priorität als der der Unterbrechungsanforderung unterbricht und nach einem anderen möglichen Prozessor sucht. Falls aber die Unterbrechungsanforderung eine Priorität aufweist, welche größer ist als die vorliegende Aufgabe, kann die Aufgabe unterbrochen werden, um die Unterbrechung zu bedienen. Bei einer Unterbrechung mit einer Prioritätsebene gleich der der vorliegenden Aufgabe kann die Logik die Aufgabe unterbrechen, falls kein anderer Prozessor mit einer Aufgabe niedrigerer Priorität verfügbar ist. - Bei einer alternativen Ausführungsform kann das TPR-Feld
505 so konfiguriert werden, daß es einen gesamten Leistungs- und Aufgabenprioritätswert enthält, aus welchem die Unterbrechungsverteilungslogik beurteilen kann, wann ein Prozessor gesucht werden soll. Obwohl die Felder dieses Beispiels in5 mit beispielhaften Feldlängen und Feldorten illustriert werden, hängen die Einträge und die Struktur der Aufgabenprioritätstabelle von der bestimmten Implementierung der vorliegenden Erfindung ab. Die in5 gezeigten Tabelleneinträge wurden in dem Umfeld der Chipsatzlogik beschrieben. Ähnliche Strukturtypen können sich jedoch bei jedem individuellen Prozessor und beim Betriebssystem befinden, um die Aufgabenprioritätswerte und Leistungszustandswerte jedes verfügbaren physikalischen und/oder logischen Prozessors nachzuverfolgen. - Die
6A bis D sind Ablaufdiagramme, welche eine Ausführungsform eines Verfahrens zum Verteilen von Unterbrechungen, welches den Leistungszustand beachtet, illustrieren. Das Ablaufdiagramm der6A illustriert das Verfahren der hohen Ebene für eine Unterbrechungsverteilung, welche den Leistungszustand beachtet, einer Ausführungsform. Bei Block602 wird das System gestartet oder zurückgesetzt. Die Systemkomponenten verlassen das Zurücksetzen und werden bei Block610 initialisiert. Ein Beispiel derartiger Systemkomponenten (d. h. Prozessoren, Chipsatz, Speicher, E/A-Vorrichtungen) kann in oben stehender1 gefunden werden. Das Betriebssystem wird auch initialisiert und geladen. Während des Prozesses des Hochfahrens kann das Betriebssystem die verschiedenen Systemvorrichtungen für einen reibungslosen Betrieb konfigurieren. Bei einer Ausführungsform ist das Betriebssystem zur Parallelverarbeitung und zum gleichzeitigen Ablaufen mehrerer Threads in der Lage. In Abhängigkeit von der bestimmten Implementierung kann das Betriebssystem die mehreren Threads auf einer Anzahl von logischen Prozessoren oder, falls vorhanden, von physikalischen Prozessoren/Kernen ablaufen lassen. Bei Block615 tritt das System in den Normalbetrieb ein. Während des normalen Systembetriebs werden verschiedene Typen von Benutzeranwendungen und Systemaufgaben von dem System durchgeführt. Die Aufgabenpriorität und der Leistungszustand jedes Prozessors wird bei Block620 nachverfolgt. Das Nachverfolgen kann ein Sammeln von Informationen über die Aufgabenpriorität, den Leistungszustand und/oder den Aktivitätszustand verschiedener physikalischer und/oder logischer Prozessoren umfassen. Bei Block630 wird eine Prüfung durchgeführt, um zu bestimmen, ob Unterbrechungsanforderungen empfangen wurden. Falls bei Block630 keine Unterbrechungsanforderungen erfaßt wurden, setzt das System bei615 den Normalbetrieb fort. - Falls bei Block
630 eine Unterbrechungsanforderung erfaßt wird, behandelt die Chipsatz-Unterbrechungslogik die Anforderung und bestimmt, wohin die Anforderung für ein Bedienen gesendet wird. Auf der Grundlage einer Analyse von Faktoren, einschließlich insbesondere der Aufgabenprioritätswerte und der Leistungszustandswerte für die logischen/physikalischen Prozessoren, wählt die Unterbrechungslogik einen entsprechenden Prozessor aus und kommuniziert die Unterbrechungsanforderung. Der empfangende Prozessor bedient die Unterbrechungsanforderung und nimmt dann bei Block660 seine vorherigen Aktivitäten wieder auf. Bei Block615 wird ein normaler Systembetrieb fortgesetzt, bis eine andere Unterbrechungsanforderung erfaßt wird. -
6B ist ein Ablaufdiagramm, welches weiterhin die Operationen illustriert, welche während des Initialisierungsprozesses des Blocks610 passieren. Bei Block611 wird das Aufgabenprioritätsregister für jeden Prozessor initialisiert. Die Unterbrechungsbehandlungslogik des Chipsatzes wird auch bei Block612 initialisiert. Jeder Prozessor kommuniziert bei Block613 seine Aufgabenpriorität und seinen Leistungszustand an die Chipsatzlogik. Die Prozessoraufgabenprioritäts- und die Prozessorleistungszustandsinformationen werden mit der Chipsatzlogik bei Block614 für eine spätere Bezugnahme gesichert, wenn Unterbrechungsanforderungen bedient werden müssen. Die Aufgabenprioritäts- und die Leistungszustandsinformationen werden dementsprechend aktualisiert, wann immer sich die Aufgabe oder die Leistungsebene an einem Prozessor verändert. - Das Ablaufdiagramm der
6C illustriert einige der Operationen während des Nachverfolgens der Prozessoraufgabe des Blocks620 ausführlicher. Bei Block621 wird das Aufgabenprioritätsregister in dem Prozessor mit einem Aufgabenprioritätswert und mit einem Leistungszustandswert aktualisiert. Bei einer Ausführungsform speichert das Aufgabenprioritätsregister beide Werte. Bei einer anderen Ausführungsform werden die Werte in unterschiedlichen Registern gespeichert. Bei wieder einer anderen Ausführungsform speichert das Aufgabenprioritätsregister einen vereinigten Wert auf der Grundlage beider Werte. Die neuen Aufgabenprioritäts- und Leistungszustandsinformationen werden bei Block622 an den Chipsatz übermittelt. Bei Block623 speichert die Chipsatzlogik die Aufgabenprioritätsinformationen in einem Eintrag für den Prozessor in einer Aufgabeninformationstabelle. Der Chipsatz dieser Ausführungsform kann Aufgabeninformationen für eine Anzahl von physikalischen/logischen Prozessoren im System nachverfolgen. Jeder Eintrag in der Tabelle ist auf einen spezifischen Prozessor abgebildet. Bei dieser Ausführungsform bildet die Chipsatzlogik bei Block624 auch die Prozessoraufgabenpriorität auf einen entsprechenden Leistungszustand ab. Die Leistungszustandsinformationen, welche von dem Prozessor für diese Aufgabe empfangen wurden, sind in der Aufgabeninformationstabelle gesichert. -
6D ist ein Ablaufdiagramm, welches die Aktivitäten an der Chipsatzlogik und am Prozessor illustriert, wenn bei einer Ausführungsform der vorliegenden Erfindung bei Block630 eine Unterbrechungsanforderung empfangen und bei Block640 bedient wird. Bei dieser Ausführungsform treten die Blöcke641 bis645 und651 bis653 im Allgemeinen am Chipsatz auf, während der Block646 bis650 im Allgemeinen an einem Prozessor passiert. Bei Block641 bestimmt die Chipsatz-Unterbrechungslogik die Unterbrechungspriorität. Die Logik prüft bei Block642 die Aufgabenpriorität für jeden Prozessor. Bei Block643 wird auch der Leistungszustand für jeden Prozessor geprüft. Auf der Grundlage eines Algorithmus, welcher die Aufgabenprioritätsebene und den Leistungszustand berücksichtigt, wählt die Chipsatz-Unterbrechungslogik einen Prozessor aus, um die Anforderung bei Block644 zu bedienen, und sendet bei Block645 die Unterbrechungsanforderung an den Prozessor. Die Chipsatzlogik dieser Ausführungsform aktualisiert auch den Prozessoraufgabeneintrag, um die Unterbrechungspriorität zu vermerken, und um zu vermerken, daß der Prozessor diese Unterbrechung gerade behandelt. - Die Unterbrechungsanforderung wird bei Block
646 an dem ausgewählten Prozessor empfangen. Bei Block647 hält der Prozessor seine vorhandene Aufgabe an, wenn gegenwärtig eine Aufgabe verarbeitet wird. Bei Block648 wird der Aufgabenprioritätseintrag für diesen Prozessor mit einem neuen Prioritätswert aktualisiert. Bei einer Ausführungsform wird der Aufgabenprioritätseintrag an einem physikalischen Registerort auf dem Prozessor und an dem Chipsatz aktualisiert. Bei einer anderen Ausführungsform wird der Aufgabenprioritätseintrag in einer Speicherstruktur aktualisiert, welche durch das Betriebssystem unterhalten wird. Bei Block649 bedient der Prozessor die Unterbrechung. Der Prozessor benachrichtigt den Chipsatz bei Block650 über die Beendigung der Unterbrechungsbedienungsanforderung und aktualisiert den Prozessoraufgabenprioritätswert auf den der unterbrochenen Aufgabe. - Der Chipsatz empfängt die Benachrichtigung über die Unterbrechungsbeendigung und den wiederhergestellten Aufgabenprioritätswert bei Block
651 . Die Prozessorinformationstabelle wird mit der Aufgabenpriorität aktualisiert. Der Prozessor nimmt die Aufgabe wieder auf, welche vor der Unterbrechung in Arbeit war, und der Chipsatz setzt seinen Betrieb bei Block652 fort. Der Chipsatz benachrichtigt bei Block653 auch den Anforderer über die Beendigung der Unterbrechungsbedienungsanforderung. -
7 ist ein Ablaufdiagramm, welches eine andere Ausführungsform eines Verfahrens zur Verteilung von Unterbrechungen, welches den Prozessorleistungszustand beachtet, illustriert. Das Verfahren dieser Ausführungsform wird mit dem Betriebssystem implementiert und arbeitet über verschiedene Steuerungssignale und -befehle. Bei einer Implementierung wird Firmware verwendet, um die Steuerungssignale zwischen den Software- und den Hardware-Komponenten zu übersetzen oder zu kommunizieren. Bei Block702 wird das Betriebssystem hochgefahren oder zurückgesetzt. Die Aufgabenprioritätseinträge in der Prozessorinformationstabelle, welche durch das Betriebssystem unterhalten wird, werden bei Block704 initialisiert. Bei dieser Ausführungsform wird bei Block706 eine Abbildung zwischen den Au Aufgabenprioritätszuständen und den Leistungszuständen eingeführt. Die Aufgabenprioritätseinträge dieser Ausführungsform beziehen den Prozessoraufgabenprioritätswert und den Prozessorleistungszustandswert in einen einzelnen Bezugswert ein. - Bei Block
708 beginnt der normale Systembetrieb. Das Betriebssystem verfolgt bei Block710 die Aufgabenpriorität der aktiven Aufgabe für jeden physikalischen und logischen Prozessor im System nach. Bei Block712 fragt das Betriebssystem ab, ob Unterbrechungsanforderungen empfangen wurden. Falls keine Unterbrechungsanforderungen unerledigt sind, wird bei Block708 der normale Systembetrieb fortgesetzt. Benutzeranwendungen und Systemaufgaben laufen weiter. Falls aber eine Unterbrechungsanforderung anhängig ist, empfängt das Betriebssystem bei Block714 die Anforderung zur Verteilung. Bei Block716 analysiert das Betriebssystem die Aufgabenprioritäts- und die Leistungszustandswerte, welche in der Informationstabelle für jeden Prozessor gespeichert sind. Das Betriebssystem wählt bei Block718 einen Prozessor mit dem entsprechenden Prioritäts- und Leistungszustand aus, um die Unterbrechungsanforderung zu bedienen. Bei einer Ausführungsform ist der entsprechende Prozessor einer mit der Aufgabe niedrigster Priorität und dem höchsten Prioritätszustand. Mit anderen Worten wird der Prozessor mit der minimalen Zeitlatenz und dem minimalen zusätzlichen Leistungsbedarf ausgewählt, bevor eine Anforderung bedient werden kann. - Bei einer Ausführungsform werden kritische Aufgaben oder Aufgaben hoher Priorität typischerweise nicht unterbrochen, um eine Unterbrechung niedriger Priorität zu bedienen. Genauso kann ein Prozessor, welcher sich in irgendeinem Schlafmodustyp befindet, ein unerwünschter Kandidat zum Bedienen einer Unterbrechungsanforderung sein, da ein Aufwecken des Prozessors in Bezug sowohl auf die Leistung als auch auf die Zeit kostspielig sein kann. Bei Block
720 wird die Unterbrechungsanforderung zum Bedienen an den ausgewählten Prozessor übermittelt. Der Aufgabenprioritätseintrag für diesen Prozessor wird bei Block722 aktualisiert, um die Priorität der Unterbrechungsanforderung wiederzugeben. Der Zielprozessor empfängt und behandelt die Anforderung. Bei Block724 wird das Betriebssystem über die Anforderungsbeendigung benachrichtigt. Der Aufgabenprioritätseintrag wird bei Block726 für den Prozessor wiederhergestellt. Bei einer Ausführungsform nimmt der Prozessor bei Block728 den Betrieb mit der Aufgabe wieder auf, welche vorlag, als die jüngste Unterbrechungsanforderung empfangen wurde. - Obwohl oben stehende Beispiele die Unterbrechungsbehandlung und -Verteilung im Kontext von Ausführungseinheiten und Logikschaltungen beschreiben, können andere Ausführungsformen der vorliegenden Erfindung auf dem Wege von Software erzielt werden. Derartige Software kann innerhalb eines Speichers im System gespeichert werden. Genauso kann der Code über ein Netzwerk oder auf dem Weg anderer Computer-lesbarer Medien verteilt werden. Beispielsweise kann ein Computer-Programm durch ein Computer-lesbares Medium, wie beispielsweise eine Diskette oder eine CD-ROM, oder sogar durch eine Übertragung über das Internet verteilt werden. Folglich kann ein maschinenlesbares Medium einen Mechanismus zum Speichern oder zum Übertragen von Informationen in einer Form umfassen, welche von einer Maschine (z. B. von einem Computer) lesbar ist. Beispielsweise kann ein maschinenlesbares Medium einen Nur-Lese-Speicher (ROM), einen Schreib-/Lesespeicher (RAM), Magnetscheiben-Speichermedien, optische Speichermedien, Flash-Speichervorrichtungen und elektrische, optische, akustische oder andere Formen sich fortpflanzender Signale (z. B. Trägerwellen, Infrarotsignale, digitale Signale usw.) umfassen.
- Weiterhin können Ausführungsformen integrierter Schaltkreisentwürfe gemäß der vorliegenden Erfindungen in elektronischer Form kommuniziert oder übermittelt werden. Beispielsweise kann die elektronische Form eines integrierten Schaltkreisentwurfs eines Prozessors bei einer Ausführungsform in einer Chipfabrik verarbeitet oder hergestellt werden, um eine Computer-Komponente zu erhalten. Bei einem anderen Beispiel kann ein integrierter Schaltkreisentwurf in elektronischer Form von einer Maschine verarbeitet werden, um eine Computer-Komponente zu simulieren. Folglich können die Layout-Pläne der Schaltung und/oder Prozessorentwürfe bei manchen Ausführungsformen für eine Fabrikation zu einer Schaltung oder für eine Simulation eines integrierten Schaltkreises, welche einen Prozessor simuliert, wenn sie von einer Maschine verarbeitet wird, über maschinenlesbare Medien verteilt oder darauf ausgeführt werden. Ein maschinenlesbares Medium ist auch in der Lage, Daten zu speichern, welche vorbestimmte Funktionen gemäß anderen Ausführungsformen der vorlegenden Erfindung repräsentieren.
- In der vorangehenden Beschreibung wurde die Erfindung unter Bezugnahme auf spezifische, beispielhafte Ausführungsformen davon beschrieben. Es ist jedoch offensichtlich, daß verschiedene Modifikationen und Veränderungen daran vorgenommen werden können, ohne den breiteren Gedanken und den Umfang der Erfindung zu verlassen, wie sie in den angefügten Ansprüchen dargelegt werden. Die Beschreibung und die Zeichnungen sind dementsprechend in einem beispielhaften statt in einem einschränkenden Sinn zu betrachten.
- ZUSAMMENFASSUNG
- Ein Verfahren für einen Mechanismus zur Verteilung von Unterbrechungen niedrigster Priorität unter Berücksichtigung des Prozessorleistungszustands. Das Verfahren einer Ausführungsform umfaßt ein Empfangen erster Leistungszustandsinformationen von einer ersten Komponente und zweite Leistungszustandsinformationen von einer zweiten Komponente. Erste Aufgabenprioritätsinformationen von der ersten Komponente und zweite Aufgabenprioritätsinformationen von der zweiten Komponente werden auch empfangen. Es wird eine Unterbrechungsanforderung von einer ersten Vorrichtung zum Bedienen empfangen. Informationen über Leistungszustand und Aufgabenpriorität für die erste und zweite Komponente werden beurteilt und bestimmen welche Komponente die Unterbrechungsanforderung bedienen soll. Auf der Grundlage der Informationen über Leistungszustand und Aufgabenpriorität wird entweder die erste Komponente oder die zweite Komponente als eine Zielkomponente ausgewählt, die Unterbrechungsanforderung zu bedienen. Die Unterbrechungsanforderung wird an die Zielkomponente übermittelt.
Claims (44)
- Verfahren, Folgendes umfassend: Empfangen erster Leistungszustandsinformationen von einer ersten Komponente und zweiter Leistungszustandsinformationen von einer zweiten Komponente; Empfangen erster Aufgabenprioritätsinformationen von der ersten Komponente und zweiter Aufgabenprioritätsinformationen von der zweiten Komponente; Empfangen einer Unterbrechungsanforderung von einer ersten Vorrichtung zum Bedienen; Beurteilen von Informationen über Leistungszustand und Aufgabenpriorität für die erste und zweite Komponente, um zu bestimmen, welche Komponente die Unterbrechungsanforderung bedienen soll; Auswählen auf der Grundlage der Informationen über den Leistungszustand und der Aufgabenpriorität entweder der ersten Komponente oder der zweiten Komponente, eine Zielkomponente zum Bedienen der Unterbrechungsanforderung zu bilden; und Übermitteln der Unterbrechungsanforderung an die Zielkomponente.
- Verfahren nach Anspruch 1, weiterhin umfassend ein Speichern der ersten Leistungszustandsinformationen in einem ersten Speicherort und der zweiten Leistungszustandsinformationen in einem zweiten Speicherort.
- Verfahren nach Anspruch 2, weiterhin umfassend ein Speichern der ersten Aufgabenprioritätsinformationen in einem dritten Speicherort und der zweiten Aufgabenprioritätsinformationen in einem vierten Speicherort.
- Verfahren nach Anspruch 3, weiterhin umfassend Prüfvorrichtungen für Unterbrechungsanforderungen.
- Verfahren nach Anspruch 4, weiterhin umfassend ein Aktualisieren von Informationen über Leistungszustand und Aufgabenpriorität für die Zielkomponente, um eine Aufgabenpriorität der Unterbrechungsanforderung wiederzugeben.
- Verfahren nach Anspruch 5, weiterhin umfassend ein Empfangen einer Benachrichtigung über eine Unterbrechungsbeendigung von der Zielkomponente.
- Verfahren nach Anspruch 6, weiterhin umfassend ein Wiederherstellen der Informationen über Leistungszustand und Aufgabenpriorität für die Zielkomponente auf Werte, welche vor dem Bedienen der Unterbrechungsanforderung existierten.
- Verfahren nach Anspruch 7, weiterhin umfassend ein Informieren der Vorrichtung über die Unterbrechungsbeendigung.
- Verfahren nach Anspruch 8, wobei die erste und zweite Komponente Prozessoren sind.
- Verfahren nach Anspruch 9, wobei der erste, zweite, dritte und vierte Speicherort innerhalb einer Chipsatzlogik angeordnet sind.
- Vorrichtung, Folgendes umfassend: eine Unterbrechungsbehandlungslogik, welche mit einem ersten Satz von Signalleitungen verbunden ist, um eine Unterbrechungsanforderung zu empfangen, wobei der erste Satz von Signalleitungen mit einer oder mehrerer Vorrichtungen verbunden ist, welche Unterbrechungsanforderungen erzeugen können; eine Bus-Schnittstelle zum Wechselwirken mit einem Bus, welcher mit einer ersten Komponente und mit einer zweiten Komponente verbunden ist, wobei die Unterbrechungsbehandlungslogik mit dem ersten Bus durch die Bus-Schnittstelle verbunden ist, um Leistungszustandsinformationen und Aufgabenprioritätsinformationen für sowohl die erste als auch die zweite Komponente zu empfangen; eine Beurteilungslogik, welche mit der Unterbrechungsbehandlungslogik verbunden ist, wobei die Beurteilungslogik dazu dient, Informationen über Leistungszustand und Aufgabenpriorität für die erste und zweite Komponente zu beurteilen, wenn die Unterbrechungsbehandlungslogik die Unterbrechungsanforderung empfangt, um zu bestimmen, welche Komponente die Unterbrechungsanforderung bedienen soll; und eine Auswahllogik, welche mit der Beurteilungslogik verbunden ist, um auf der Grundlage der Informationen über Leistungszustand und Aufgabenpriorität entweder die erste Komponente oder die zweite Komponente auszuwählen, eine Zielkomponente zum Bedienen der Unterbrechungsanforderung zu bilden.
- Vorrichtung nach Anspruch 11, weiterhin umfassend einen Speicher zum Speichern der Leistungszustandsinformationen und der Aufgabenprioritätsinformationen für sowohl die erste als auch die zweite Komponente für eine Bezugnahme durch die Beurteilungslogik.
- Vorrichtung nach Anspruch 12, wobei die Auswahllogik weiterhin dazu dient, die Unterbrechungsanforderung an die Zielkomponente für ein Bedienen zu übermitteln.
- Vorrichtung nach Anspruch 13, wobei die Auswahllogik weiterhin dazu dient, Informationen über Leistungszustand und Aufgabenpriorität für die Zielkomponente zu aktualisieren, um eine Aufgabenpriorität der Unterbrechungsanforderung wiederzugeben.
- Vorrichtung nach Anspruch 14, wobei die Unterbrechungsbehandlungslogik weiterhin dazu dient, eine Benachrichtigung über eine Unterbrechungsbeendigung von der Zielkomponente zu empfangen.
- Vorrichtung nach Anspruch 15, wobei die Auswahllogik weiterhin dazu dient, die Informationen über Leistungszustand und Aufgabenpriorität für die Zielkomponente auf Werte wiederherzustellen, welche vor dem Bedienen der Unterbrechungsanforderung existierten.
- Vorrichtung nach Anspruch 16, wobei eine Unterbrechungsbehandlungslogik weiterhin dazu dient, die Vorrichtung über die Unterbrechungsbeendigung zu informieren.
- Vorrichtung nach Anspruch 17, wobei die erste und die zweite Komponente Prozessoren sind.
- Vorrichtung nach Anspruch 17, wobei die erste und die zweite Komponente Threads einer Multi-Threading-Umgebung sind.
- Vorrichtung nach Anspruch 19, wobei die Vorrichtung ein Chipsatz ist.
- System, Folgendes umfassend: einen Bus; einen ersten Prozessor und einen zweiten Prozessor, welche mit dem Bus verbunden sind; eine oder mehrere Systemvorrichtungen, welche Unterbrechungsanforderungen erzeugen können, wobei die Unterbrechungsanforderungen eine Bedienung von entweder dem ersten oder dem zweiten Prozessor erfordern; einen Chipsatz zum Behandeln der Unterbrechungsanforderungen, wobei der Chipsatz mit den Systemvorrichtungen und mit dem ersten und mit dem zweiten Prozessor verbunden ist, wobei der Chipsatz dazu dient, Leistungszustandsinformationen und Aufgabenprioritätsinformationen sowohl für den ersten als auch für den zweiten Prozessor zu empfangen, der Chipsatz dazu dient, die Informationen über Leistungszustand und Aufgabenpriorität zu beurteilen, wenn eine Unterbrechungsanforderung empfangen wird, und zu bestimmen, welcher Prozessor die Unterbrechungsanforderung bedienen soll, und wobei der Chipsatz auf der Grundlage der Informationen über den Leistungszustand und der Aufgabenpriorität entweder den ersten Prozessor oder den zweiten Prozessor auswählt, um die Anforderung zu bedienen.
- System nach Anspruch 21, wobei der Chipsatz weiterhin Speicherregister umfaßt, um die Leistungszustandsinformationen und die Aufgabenprioritätsinformationen für sowohl die erste als auch die zweite Komponente für eine Bezugnahme durch die Beurteilungslogik zu speichern.
- System nach Anspruch 22, wobei der Chipsatz weiterhin eine Logik zum Aktualisieren von Informationen über Leistungszustand und Aufgabenpriorität für die Zielkomponente umfaßt, um eine Aufgabenpriorität der Unterbrechungsanforderung wiederzugeben.
- System nach Anspruch 22, wobei der Chipsatz weiterhin eine Logik zum Nachverfolgen von Informationen über Leistungszustand und Aufgabenpriorität für sowohl den ersten als auch den zweiten Prozessor umfaßt.
- System nach Anspruch 22, wobei der Chipsatz eine Benachrichtigung über eine Beendigung der Unterbrechungsanforderung von einem Prozessor empfängt, welcher zum Bedienen der Unterbrechungsanforderung ausgewählt wurde.
- System nach Anspruch 25, wobei der Chipsatz weiterhin eine Logik zum Wiederherstellen der Informationen über Leistungszustand und Aufgabenpriorität für den Prozessor, welcher zum Bedienen der Unterbrechungsanforderung ausgewählt wurde, auf Werte umfaßt, welche vor dem Bedienen der Unterbrechungsanforderung existierten.
- System nach Anspruch 26, wobei der erste und der zweite Prozessor beide Multi-Threading-Prozessoren sind.
- System nach Anspruch 26, wobei der erste und der zweite Prozessor beide Verarbeitungskerne eines mehrkernigen Moduls sind.
- Maschinenlesbares Medium mit einem darauf verkörperten Computer-Programm, wobei das Computer-Programm von einer Maschine ausführbar ist, zum Durchführen eines Verfahrens, umfassend: Empfangen erster Leistungszustandsinformationen von einer ersten Komponente und zweiter Leistungszustandsinformationen von einer zweiten Komponente; Empfangen erster Aufgabenprioritätsinformationen von der ersten Komponente und zweiter Aufgabenprioritätsinformationen von der zweiten Komponente; Empfangen einer Unterbrechungsanforderung von einer ersten Vorrichtung zum Bedienen; Beurteilen der Informationen über Leistungszustand und Aufgabenpriorität für die erste und zweite Komponente, um zu bestimmen, welche Komponente die Unterbrechungsanforderung bedienen soll; Auswählen auf der Grundlage der Informationen über den Leistungszustand und der Aufgabenpriorität entweder der ersten Komponente oder der zweiten Komponente, eine Zielkomponente zum Bedienen der Unterbrechungsanforderung zu bilden; und Übermitteln der Unterbrechungsanforderung an die Zielkomponente.
- Maschinenlesbares Medium nach Anspruch 29, wobei das Verfahren weiterhin ein Speichern der ersten Leistungszustandsinformationen in einem ersten Speicherort und der zweiten Leistungszustandsinformationen in einem zweiten Speicherort umfaßt.
- Maschinenlesbares Medium nach Anspruch 30, wobei das Verfahren weiterhin ein Speichern der ersten Aufgabenprioritätsinformationen in einem dritten Speicherort und der zweiten Aufgabenprioritätsinformationen in einem vierten Speicherort umfaßt.
- Maschinenlesbares Medium nach Anspruch 29, wobei das Verfahren weiterhin Prüfvorrichtungen für Unterbrechungsanforderungen umfaßt.
- Maschinenlesbares Medium nach Anspruch 29, wobei das Verfahren weiterhin ein Aktualisieren von Informationen über Leistungszustand und Aufgabenpriorität für die Zielkomponente umfaßt, um eine Aufgabenpriorität der Unterbrechungsanforderung wiederzugeben.
- Maschinenlesbares Medium nach Anspruch 33, wobei das Verfahren weiterhin ein Empfangen einer Benachrichtigung über eine Unterbrechungsbeendigung von der Zielkomponente umfaßt.
- Maschinenlesbares Medium nach Anspruch 34, wobei das Verfahren weiterhin ein Wiederherstellen der Informationen über Leistungszustand und Aufgabenpriorität für die Zielkomponente auf Werte umfaßt, welche vor dem Bedienen der Unterbrechungsanforderung existierten.
- Maschinenlesbares Medium nach Anspruch 35, wobei die erste und die zweite Komponente Prozessoren sind.
- Verfahren, Folgendes umfassend: Empfangen erster Leistungszustandsinformationen von einer ersten Komponente und zweiter Leistungszustandsinformationen von einer zweiten Komponente; Zuordnen eines ersten Aufgabenprioritätswerts zu der ersten Komponente auf der Grundlage der ersten Leistungszustandsinformationen; Zuordnen eines zweiten Aufgabenprioritätswerts zu der zweiten Komponente auf der Grundlage der zweiten Leistungszustandsinformationen; Empfangen einer Unterbrechungsanforderung von einer ersten Vorrichtung zum Bedienen; Beurteilen von Aufgabenprioritätswerten für die erste und die zweite Komponente zum Bestimmen, welche Komponente die Unterbrechungsanforderung bedienen soll; Auswählen auf der Grundlage der Aufgabenprioritätswerte entweder der ersten Komponente oder der zweiten Komponente, eine Zielkomponente zum Bedienen der Unterbrechungsanforderung zu bilden; und Übermitteln der Unterbrechungsanforderung an die Zielkomponente.
- Verfahren nach Anspruch 37, weiterhin umfassend ein Speichern des ersten und des zweiten Aufgabenprioritätswerts in einem ersten und einem zweiten Register.
- Verfahren nach Anspruch 38, wobei alle Leistungszustandsinformationen einen Leistungszustandswert umfassen.
- Verfahren nach Anspruch 39, wobei jeder Leistungszustandswert einem Aufgabenprioritätswert entspricht.
- Verfahren nach Anspruch 40, wobei ein höherer Leistungszustandswert einem niedrigeren Aufgabenprioritätswert entspricht und ein niedrigerer Leistungszustandswert einem höheren Aufgabenprioritätswert entspricht.
- Verfahren nach Anspruch 41, wobei eine Komponente mit einem niedrigeren Aufgabenprioritätswert bevorzugter ausgewählt wird, die Zielkomponente zum Bedienen der Unterbrechungsanforderung zu bilden, als eine andere Komponente mit einem höheren Aufgabenprioritätswert.
- Verfahren nach Anspruch 42, wobei die erste und die zweite Komponente ein erster Prozessor bzw. ein zweiter Prozessor sind.
- Verfahren nach Anspruch 43, wobei jeder der Aufgabenprioritätswerte in einem eindeutigen Register gespeichert wird.
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US10/330,622 | 2002-12-26 | ||
US10/330,622 US7191349B2 (en) | 2002-12-26 | 2002-12-26 | Mechanism for processor power state aware distribution of lowest priority interrupt |
PCT/US2003/038612 WO2004061686A2 (en) | 2002-12-26 | 2003-12-05 | Mechanism for processor power state aware distribution of lowest priority interrupts |
Publications (1)
Publication Number | Publication Date |
---|---|
DE10393969T5 true DE10393969T5 (de) | 2008-06-26 |
Family
ID=32654547
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
DE10393969T Ceased DE10393969T5 (de) | 2002-12-26 | 2003-12-05 | Mechanismus zur Verteilung von Unterbrechungen niedrigster Priorität unter Berücksichtigung des Prozessorleistungszustands |
Country Status (8)
Country | Link |
---|---|
US (2) | US7191349B2 (de) |
CN (1) | CN100349147C (de) |
AU (1) | AU2003298903A1 (de) |
DE (1) | DE10393969T5 (de) |
GB (1) | GB2412457B (de) |
HK (1) | HK1075314A1 (de) |
TW (1) | TWI233545B (de) |
WO (1) | WO2004061686A2 (de) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
DE102011013833A1 (de) * | 2011-03-14 | 2012-09-20 | Continental Automotive Gmbh | Anzeigevorrichtung |
Families Citing this family (174)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6760772B2 (en) | 2000-12-15 | 2004-07-06 | Qualcomm, Inc. | Generating and implementing a communication protocol and interface for high data rate signal transfer |
US8812706B1 (en) | 2001-09-06 | 2014-08-19 | Qualcomm Incorporated | Method and apparatus for compensating for mismatched delays in signals of a mobile display interface (MDDI) system |
US7334086B2 (en) | 2002-10-08 | 2008-02-19 | Rmi Corporation | Advanced processor with system on a chip interconnect technology |
US8176298B2 (en) * | 2002-10-08 | 2012-05-08 | Netlogic Microsystems, Inc. | Multi-core multi-threaded processing systems with instruction reordering in an in-order pipeline |
US8015567B2 (en) | 2002-10-08 | 2011-09-06 | Netlogic Microsystems, Inc. | Advanced processor with mechanism for packet distribution at high line rate |
US20050044324A1 (en) * | 2002-10-08 | 2005-02-24 | Abbas Rashid | Advanced processor with mechanism for maximizing resource usage in an in-order pipeline with multiple threads |
US7984268B2 (en) | 2002-10-08 | 2011-07-19 | Netlogic Microsystems, Inc. | Advanced processor scheduling in a multithreaded system |
US7961723B2 (en) | 2002-10-08 | 2011-06-14 | Netlogic Microsystems, Inc. | Advanced processor with mechanism for enforcing ordering between information sent on two independent networks |
US8478811B2 (en) | 2002-10-08 | 2013-07-02 | Netlogic Microsystems, Inc. | Advanced processor with credit based scheme for optimal packet flow in a multi-processor system on a chip |
US7461215B2 (en) * | 2002-10-08 | 2008-12-02 | Rmi Corporation | Advanced processor with implementation of memory ordering on a ring based data movement network |
US7627721B2 (en) | 2002-10-08 | 2009-12-01 | Rmi Corporation | Advanced processor with cache coherency |
US8037224B2 (en) | 2002-10-08 | 2011-10-11 | Netlogic Microsystems, Inc. | Delegating network processor operations to star topology serial bus interfaces |
US7924828B2 (en) | 2002-10-08 | 2011-04-12 | Netlogic Microsystems, Inc. | Advanced processor with mechanism for fast packet queuing operations |
US7346757B2 (en) * | 2002-10-08 | 2008-03-18 | Rmi Corporation | Advanced processor translation lookaside buffer management in a multithreaded system |
US20050033831A1 (en) * | 2002-10-08 | 2005-02-10 | Abbas Rashid | Advanced processor with a thread aware return address stack optimally used across active threads |
US9088474B2 (en) | 2002-10-08 | 2015-07-21 | Broadcom Corporation | Advanced processor with interfacing messaging network to a CPU |
BRPI0410885B1 (pt) | 2003-06-02 | 2018-01-30 | Qualcomm Incorporated | Gerar e implementar um protocolo de sinal e interface para taxas de dados mais altas |
KR101070209B1 (ko) | 2003-08-13 | 2011-10-06 | 퀄컴 인코포레이티드 | 더 높은 데이터 레이트를 위한 신호 인터페이스 |
KR100973103B1 (ko) | 2003-09-10 | 2010-08-02 | 콸콤 인코포레이티드 | 고속 데이터 인터페이스 |
JP2005092780A (ja) * | 2003-09-19 | 2005-04-07 | Matsushita Electric Ind Co Ltd | リアルタイムプロセッサシステム及び制御方法 |
JP2007509533A (ja) | 2003-10-15 | 2007-04-12 | クゥアルコム・インコーポレイテッド | 高速データレートインタフェース |
RU2331160C2 (ru) | 2003-10-29 | 2008-08-10 | Квэлкомм Инкорпорейтед | Интерфейс с высокой скоростью передачи данных |
RU2341906C2 (ru) | 2003-11-12 | 2008-12-20 | Квэлкомм Инкорпорейтед | Интерфейс высокоскоростной передачи данных с улучшенным управлением соединением |
US20050108713A1 (en) * | 2003-11-18 | 2005-05-19 | Geye Scott A. | Affinity mask assignment system and method for multiprocessor systems |
RU2006122542A (ru) | 2003-11-25 | 2008-01-10 | Квэлкомм Инкорпорейтед (US) | Интерфейс с высокой скоростью передачи данных с улучшенной синхронизацией линии связи |
MXPA06006452A (es) * | 2003-12-08 | 2006-08-31 | Qualcomm Inc | Interfase de tasa alta de datos con sincronizacion de enlace mejorada. |
US7093036B2 (en) * | 2003-12-11 | 2006-08-15 | International Business Machines Corporation | Processor state aware interrupts from peripherals |
JP2007528681A (ja) | 2004-03-10 | 2007-10-11 | クゥアルコム・インコーポレイテッド | 高データレートインタフェース装置及び方法 |
AU2005223960B2 (en) * | 2004-03-17 | 2009-04-09 | Qualcomm Incorporated | High data rate interface apparatus and method |
US7784064B2 (en) * | 2004-04-14 | 2010-08-24 | Barclays Capital Inc. | Method for collecting monitor information |
US7512774B2 (en) * | 2004-04-14 | 2009-03-31 | Barclays Capital Inc. | Method and system for collecting processor information |
EP2020790B1 (de) | 2004-06-04 | 2013-02-27 | Qualcomm Incorporated | Schnittstellenvorrichtung mit hoher Datenrate und Verfahren |
US8650304B2 (en) | 2004-06-04 | 2014-02-11 | Qualcomm Incorporated | Determining a pre skew and post skew calibration data rate in a mobile display digital interface (MDDI) communication system |
US8538997B2 (en) | 2004-06-25 | 2013-09-17 | Apple Inc. | Methods and systems for managing data |
US8131674B2 (en) | 2004-06-25 | 2012-03-06 | Apple Inc. | Methods and systems for managing data |
EP1615141B1 (de) * | 2004-07-01 | 2018-03-07 | Harman Becker Automotive Systems GmbH | Rechnerarchitektur für in einem fahrzeug verwendbares mobiles multimediasystem |
WO2006013857A1 (ja) * | 2004-08-05 | 2006-02-09 | Matsushita Electric Industrial Co., Ltd. | 情報処理装置 |
US20060112208A1 (en) * | 2004-11-22 | 2006-05-25 | International Business Machines Corporation | Interrupt thresholding for SMT and multi processor systems |
US8692838B2 (en) | 2004-11-24 | 2014-04-08 | Qualcomm Incorporated | Methods and systems for updating a buffer |
US8723705B2 (en) | 2004-11-24 | 2014-05-13 | Qualcomm Incorporated | Low output skew double data rate serial encoder |
US8699330B2 (en) | 2004-11-24 | 2014-04-15 | Qualcomm Incorporated | Systems and methods for digital data transmission rate control |
US8539119B2 (en) | 2004-11-24 | 2013-09-17 | Qualcomm Incorporated | Methods and apparatus for exchanging messages having a digital data interface device message format |
US8667363B2 (en) | 2004-11-24 | 2014-03-04 | Qualcomm Incorporated | Systems and methods for implementing cyclic redundancy checks |
US8873584B2 (en) | 2004-11-24 | 2014-10-28 | Qualcomm Incorporated | Digital data interface device |
JP2006195867A (ja) * | 2005-01-17 | 2006-07-27 | Matsushita Electric Ind Co Ltd | バス調停方法及び半導体装置 |
US20060294401A1 (en) * | 2005-06-24 | 2006-12-28 | Dell Products L.P. | Power management of multiple processors |
US7849466B2 (en) * | 2005-07-12 | 2010-12-07 | Qualcomm Incorporated | Controlling execution mode of program threads by applying a mask to a control register in a multi-threaded processor |
US7552236B2 (en) * | 2005-07-14 | 2009-06-23 | International Business Machines Corporation | Routing interrupts in a multi-node system |
US7412353B2 (en) | 2005-09-28 | 2008-08-12 | Intel Corporation | Reliable computing with a many-core processor |
GB0519981D0 (en) * | 2005-09-30 | 2005-11-09 | Ignios Ltd | Scheduling in a multicore architecture |
US8730069B2 (en) | 2005-11-23 | 2014-05-20 | Qualcomm Incorporated | Double data rate serial encoder |
US8692839B2 (en) | 2005-11-23 | 2014-04-08 | Qualcomm Incorporated | Methods and systems for updating a buffer |
US7689838B2 (en) * | 2005-12-22 | 2010-03-30 | Intel Corporation | Method and apparatus for providing for detecting processor state transitions |
US8799687B2 (en) * | 2005-12-30 | 2014-08-05 | Intel Corporation | Method, apparatus, and system for energy efficiency and energy conservation including optimizing C-state selection under variable wakeup rates |
WO2007143278A2 (en) | 2006-04-12 | 2007-12-13 | Soft Machines, Inc. | Apparatus and method for processing an instruction matrix specifying parallel and dependent operations |
US7797555B2 (en) * | 2006-05-12 | 2010-09-14 | Intel Corporation | Method and apparatus for managing power from a sequestered partition of a processing system |
US7647509B2 (en) * | 2006-05-12 | 2010-01-12 | Intel Corporation | Method and apparatus for managing power in a processing system with multiple partitions |
CN107368285B (zh) | 2006-11-14 | 2020-10-09 | 英特尔公司 | 多线程架构 |
US8799902B2 (en) * | 2007-04-09 | 2014-08-05 | Intel Corporation | Priority based throttling for power/performance quality of service |
JP4353990B2 (ja) * | 2007-05-18 | 2009-10-28 | 株式会社半導体理工学研究センター | マルチプロセッサ制御装置 |
US8032681B2 (en) | 2007-09-06 | 2011-10-04 | Intel Corporation | Processor selection for an interrupt based on willingness to accept the interrupt and on priority |
US7769938B2 (en) * | 2007-09-06 | 2010-08-03 | Intel Corporation | Processor selection for an interrupt identifying a processor cluster |
US7627706B2 (en) | 2007-09-06 | 2009-12-01 | Intel Corporation | Creation of logical APIC ID with cluster ID and intra-cluster ID |
US7962679B2 (en) * | 2007-09-28 | 2011-06-14 | Intel Corporation | Interrupt balancing for multi-core and power |
US9779235B2 (en) * | 2007-10-17 | 2017-10-03 | Sukamo Mertoguno | Cognizant engines: systems and methods for enabling program observability and controlability at instruction level granularity |
US8190864B1 (en) * | 2007-10-25 | 2012-05-29 | Oracle America, Inc. | APIC implementation for a highly-threaded x86 processor |
US8386684B2 (en) * | 2007-12-12 | 2013-02-26 | Nxp B.V. | Data processing system and method of interrupt handling |
US7730248B2 (en) * | 2007-12-13 | 2010-06-01 | Texas Instruments Incorporated | Interrupt morphing and configuration, circuits, systems and processes |
GB2455744B (en) * | 2007-12-19 | 2012-03-14 | Advanced Risc Mach Ltd | Hardware driven processor state storage prior to entering a low power mode |
US7962771B2 (en) * | 2007-12-31 | 2011-06-14 | Intel Corporation | Method, system, and apparatus for rerouting interrupts in a multi-core processor |
US9596324B2 (en) | 2008-02-08 | 2017-03-14 | Broadcom Corporation | System and method for parsing and allocating a plurality of packets to processor core threads |
JP5397739B2 (ja) * | 2008-03-18 | 2014-01-22 | 株式会社リコー | 画像処理装置、画像処理方法および画像処理プログラム |
US7793025B2 (en) * | 2008-03-28 | 2010-09-07 | Freescale Semiconductor, Inc. | Hardware managed context sensitive interrupt priority level control |
US8141084B2 (en) * | 2008-04-07 | 2012-03-20 | International Business Machines Corporation | Managing preemption in a parallel computing system |
US8024504B2 (en) * | 2008-06-26 | 2011-09-20 | Microsoft Corporation | Processor interrupt determination |
US8555292B2 (en) | 2008-06-27 | 2013-10-08 | Microsoft Corporation | Synchronizing communication over shared memory |
US7779191B2 (en) * | 2008-07-29 | 2010-08-17 | Nvidia Corporation | Platform-based idle-time processing |
WO2010039246A1 (en) * | 2008-09-30 | 2010-04-08 | Searete, Llc | Beam power for local receivers |
CN101403982B (zh) * | 2008-11-03 | 2011-07-20 | 华为技术有限公司 | 一种多核处理器的任务分配方法和系统 |
US7996595B2 (en) * | 2009-04-14 | 2011-08-09 | Lstar Technologies Llc | Interrupt arbitration for multiprocessors |
US8171319B2 (en) * | 2009-04-16 | 2012-05-01 | International Business Machines Corporation | Managing processor power-performance states |
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 |
US8064197B2 (en) * | 2009-05-22 | 2011-11-22 | Advanced Micro Devices, Inc. | Heat management using power management information |
US20100332877A1 (en) * | 2009-06-30 | 2010-12-30 | Yarch Mark A | Method and apparatus for reducing power consumption |
US8234431B2 (en) | 2009-10-13 | 2012-07-31 | Empire Technology Development Llc | Interrupt masking for multi-core processors |
US8578384B2 (en) * | 2009-10-28 | 2013-11-05 | Freescale Semiconductor, Inc. | Method and apparatus for activating system components |
US8365131B2 (en) * | 2010-01-11 | 2013-01-29 | Empire Technology Development Llc | Hardware synthesis using thermally aware scheduling and binding |
US20110307716A1 (en) * | 2010-06-10 | 2011-12-15 | Broadcom Corporation | Global control policy manager |
US9009499B2 (en) | 2010-06-10 | 2015-04-14 | Broadcom Corporation | Power manager for a network having a virtual machine |
US8352685B2 (en) | 2010-08-20 | 2013-01-08 | Apple Inc. | Combining write buffer with dynamically adjustable flush metrics |
CN103081396B (zh) * | 2010-08-24 | 2016-08-10 | 三菱电机株式会社 | 通信终端、通信系统以及通信方法 |
JP5516744B2 (ja) * | 2010-08-27 | 2014-06-11 | 富士通株式会社 | スケジューラ、マルチコアプロセッサシステムおよびスケジューリング方法 |
WO2012037491A2 (en) | 2010-09-17 | 2012-03-22 | Soft Machines, Inc. | Single cycle multi-branch prediction including shadow cache for early far branch prediction |
US9678755B2 (en) | 2010-10-12 | 2017-06-13 | Intel Corporation | Instruction sequence buffer to enhance branch prediction efficiency |
WO2012051281A2 (en) | 2010-10-12 | 2012-04-19 | Soft Machines, Inc. | An instruction sequence buffer to store branches having reliably predictable instruction sequences |
US8959270B2 (en) * | 2010-12-07 | 2015-02-17 | Apple Inc. | Interrupt distribution scheme |
US8458386B2 (en) | 2010-12-07 | 2013-06-04 | Apple Inc. | Atomic interrupt masking in an interrupt controller to prevent delivery of same interrupt vector for consecutive interrupt acknowledgements |
TWI432953B (zh) | 2010-12-09 | 2014-04-01 | Ind Tech Res Inst | 具電源管理之超長指令處理器以及其電源管理裝置與方法 |
US8930676B2 (en) | 2010-12-22 | 2015-01-06 | Via Technologies, Inc. | Master core discovering enabled cores in microprocessor comprising plural multi-core dies |
US8635476B2 (en) | 2010-12-22 | 2014-01-21 | Via Technologies, Inc. | Decentralized power management distributed among multiple processor cores |
US8631256B2 (en) | 2010-12-22 | 2014-01-14 | Via Technologies, Inc. | Distributed management of a shared power source to a multi-core microprocessor |
US9460038B2 (en) | 2010-12-22 | 2016-10-04 | Via Technologies, Inc. | Multi-core microprocessor internal bypass bus |
US8637212B2 (en) | 2010-12-22 | 2014-01-28 | Via Technologies, Inc. | Reticle set modification to produce multi-core dies |
US8782451B2 (en) | 2010-12-22 | 2014-07-15 | Via Technologies, Inc. | Power state synchronization in a multi-core processor |
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 |
US9766893B2 (en) | 2011-03-25 | 2017-09-19 | Intel Corporation | Executing instruction sequence code blocks by using virtual cores instantiated by partitionable engines |
KR101636602B1 (ko) | 2011-03-25 | 2016-07-05 | 소프트 머신즈, 인크. | 분할가능한 엔진에 의해 인스턴스화된 가상 코어를 이용한 코드 블록의 실행을 지원하는 메모리 프래그먼트 |
CN103562866B (zh) | 2011-03-25 | 2018-03-30 | 英特尔公司 | 用于通过使用由可分割引擎实例化的虚拟核来支持代码块执行的寄存器文件段 |
EP2710480B1 (de) | 2011-05-20 | 2018-06-20 | Intel Corporation | Verbindungsstruktur zur unterstützung der ausführung von instruktionssequenzen durch mehrere maschinen |
CN103649932B (zh) | 2011-05-20 | 2017-09-26 | 英特尔公司 | 资源的分散分配以及用于支持由多个引擎执行指令序列的互连结构 |
KR20130021637A (ko) * | 2011-08-23 | 2013-03-06 | 삼성전자주식회사 | 멀티 코어 시스템의 인터럽트 할당 방법 및 장치 |
US8688883B2 (en) | 2011-09-08 | 2014-04-01 | Intel Corporation | Increasing turbo mode residency of a processor |
TWI556092B (zh) | 2011-09-30 | 2016-11-01 | 英特爾公司 | 用以減少電力消耗之基於優先順序的應用程式事件控制技術 |
US9811338B2 (en) * | 2011-11-14 | 2017-11-07 | Intel Corporation | Flag non-modification extension for ISA instructions using prefixes |
EP2783280B1 (de) | 2011-11-22 | 2019-09-11 | Intel Corporation | Beschleunigter codeoptimierer für einen mehrmotor-mikroprozessor |
CN104040491B (zh) | 2011-11-22 | 2018-06-12 | 英特尔公司 | 微处理器加速的代码优化器 |
US9400545B2 (en) | 2011-12-22 | 2016-07-26 | Intel Corporation | Method, apparatus, and system for energy efficiency and energy conservation including autonomous hardware-based deep power down in devices |
US8819461B2 (en) * | 2011-12-22 | 2014-08-26 | Intel Corporation | Method, apparatus, and system for energy efficiency and energy conservation including improved processor core deep power down exit latency by using register secondary uninterrupted power supply |
WO2013095618A1 (en) | 2011-12-23 | 2013-06-27 | Intel Corporation | Instruction execution that broadcasts and masks data values at different levels of granularity |
CA2799974C (en) * | 2011-12-29 | 2018-05-22 | The University Of Western Ontario | Method and apparatus for wireless security enhancement using multiple attributes monitoring, continuous and interleaved authentication, and system adaption |
US8930674B2 (en) | 2012-03-07 | 2015-01-06 | Soft Machines, Inc. | Systems and methods for accessing a unified translation lookaside buffer |
US10146545B2 (en) | 2012-03-13 | 2018-12-04 | Nvidia Corporation | Translation address cache for a microprocessor |
GB2500434A (en) * | 2012-03-23 | 2013-09-25 | Cognovo Ltd | Scheduling actions based on the state of the resources needed to execute the actions |
US9880846B2 (en) | 2012-04-11 | 2018-01-30 | Nvidia Corporation | Improving hit rate of code translation redirection table with replacement strategy based on usage history table of evicted entries |
US10241810B2 (en) | 2012-05-18 | 2019-03-26 | Nvidia Corporation | Instruction-optimizing processor with branch-count table in hardware |
US9740612B2 (en) | 2012-07-30 | 2017-08-22 | Intel Corporation | Systems and methods for maintaining the coherency of a store coalescing cache and a load cache |
US9916253B2 (en) | 2012-07-30 | 2018-03-13 | Intel Corporation | Method and apparatus for supporting a plurality of load accesses of a cache in a single cycle to maintain throughput |
US9229873B2 (en) | 2012-07-30 | 2016-01-05 | Soft Machines, Inc. | Systems and methods for supporting a plurality of load and store accesses of a cache |
US9710399B2 (en) | 2012-07-30 | 2017-07-18 | Intel Corporation | Systems and methods for flushing a cache with modified data |
US9342122B2 (en) | 2012-09-17 | 2016-05-17 | Intel Corporation | Distributing power to heterogeneous compute elements of a processor |
US9678882B2 (en) | 2012-10-11 | 2017-06-13 | Intel Corporation | Systems and methods for non-blocking implementation of cache flush instructions |
US9678564B2 (en) * | 2012-12-21 | 2017-06-13 | Nxp B.V. | Multiprocessor system with interrupt distributor |
US20140189310A1 (en) | 2012-12-27 | 2014-07-03 | Nvidia Corporation | Fault detection in instruction translations |
US9563579B2 (en) | 2013-02-28 | 2017-02-07 | Intel Corporation | Method, apparatus, system for representing, specifying and using deadlines |
US9571329B2 (en) * | 2013-03-11 | 2017-02-14 | International Business Machines Corporation | Collective operation management in a parallel computer |
US10108424B2 (en) | 2013-03-14 | 2018-10-23 | Nvidia Corporation | Profiling code portions to generate translations |
US9904625B2 (en) | 2013-03-15 | 2018-02-27 | Intel Corporation | Methods, systems and apparatus for predicting the way of a set associative cache |
US10140138B2 (en) | 2013-03-15 | 2018-11-27 | Intel Corporation | Methods, systems and apparatus for supporting wide and efficient front-end operation with guest-architecture emulation |
US10275255B2 (en) | 2013-03-15 | 2019-04-30 | Intel Corporation | Method for dependency broadcasting through a source organized source view data structure |
US9891924B2 (en) | 2013-03-15 | 2018-02-13 | Intel Corporation | Method for implementing a reduced size register view data structure in a microprocessor |
US9886279B2 (en) | 2013-03-15 | 2018-02-06 | Intel Corporation | Method for populating and instruction view data structure by using register template snapshots |
WO2014150991A1 (en) | 2013-03-15 | 2014-09-25 | Soft Machines, Inc. | A method for implementing a reduced size register view data structure in a microprocessor |
US9569216B2 (en) | 2013-03-15 | 2017-02-14 | Soft Machines, Inc. | Method for populating a source view data structure by using register template snapshots |
WO2014150806A1 (en) | 2013-03-15 | 2014-09-25 | Soft Machines, Inc. | A method for populating register view data structure by using register template snapshots |
US9811342B2 (en) | 2013-03-15 | 2017-11-07 | Intel Corporation | Method for performing dual dispatch of blocks and half blocks |
WO2014150971A1 (en) | 2013-03-15 | 2014-09-25 | Soft Machines, Inc. | A method for dependency broadcasting through a block organized source view data structure |
CN105247484B (zh) | 2013-03-15 | 2021-02-23 | 英特尔公司 | 利用本地分布式标志体系架构来仿真访客集中式标志体系架构的方法 |
EP2972845B1 (de) | 2013-03-15 | 2021-07-07 | Intel Corporation | Verfahren zur ausführung von in blöcken gruppierten befehlen aus mehreren threads |
GB2514126A (en) * | 2013-05-14 | 2014-11-19 | Ibm | Interruption of chip component managing tasks |
US20140344947A1 (en) * | 2013-05-20 | 2014-11-20 | Advanced Micro Devices, Inc. | Method and apparatus for handling storage of context information |
US9336068B2 (en) | 2013-06-07 | 2016-05-10 | Apple Inc. | Throttling of application access to resources |
US9424212B2 (en) * | 2013-06-13 | 2016-08-23 | Microsoft Technology Licensing, Llc | Operating system-managed interrupt steering in multiprocessor systems |
CN103336571B (zh) * | 2013-06-13 | 2016-02-03 | 中国科学院计算技术研究所 | 一种降低多线程程序功耗的方法及系统 |
US9535488B2 (en) | 2013-08-28 | 2017-01-03 | Via Technologies, Inc. | Multi-core microprocessor that dynamically designates one of its processing cores as the bootstrap processor |
US9792112B2 (en) | 2013-08-28 | 2017-10-17 | Via Technologies, Inc. | Propagation of microcode patches to multiple cores in multicore microprocessor |
CN104360727B (zh) * | 2013-08-28 | 2019-02-01 | 威盛电子股份有限公司 | 微处理器及使用其省电的方法 |
US9465432B2 (en) * | 2013-08-28 | 2016-10-11 | Via Technologies, Inc. | Multi-core synchronization mechanism |
US9183155B2 (en) * | 2013-09-26 | 2015-11-10 | Andes Technology Corporation | Microprocessor and method for using an instruction loop cache thereof |
US9471132B2 (en) * | 2013-09-27 | 2016-10-18 | Intel Corporation | Techniques for putting platform subsystems into a lower power state in parallel |
EP3060996A4 (de) * | 2013-10-25 | 2017-05-10 | Advanced Micro Devices, Inc. | Verfahren und vorrichtung zur durchführung einer busblockierung und ausserkraftsetzung eines adressübersetzungspufferspeichers |
CN103577328B (zh) * | 2013-11-20 | 2016-08-17 | 北京奇虎科技有限公司 | 一种应用的性能分析方法及装置 |
CN104571466A (zh) * | 2015-01-22 | 2015-04-29 | 宇龙计算机通信科技(深圳)有限公司 | 一种多系统终端的省电方法及装置 |
US10028225B2 (en) * | 2015-08-26 | 2018-07-17 | International Business Machines Corporation | Efficient usage of internet services on mobile devices |
CN105183123B (zh) * | 2015-09-21 | 2018-01-09 | 北京元心科技有限公司 | 一种在基于容器的多系统中进行电源管理的方法和装置 |
US9848515B1 (en) | 2016-05-27 | 2017-12-19 | Advanced Micro Devices, Inc. | Multi-compartment computing device with shared cooling device |
CN106250235A (zh) * | 2016-07-26 | 2016-12-21 | 张升泽 | 基于多内核芯片的多任务调度方法及系统 |
US10802831B2 (en) * | 2017-06-30 | 2020-10-13 | Sap Se | Managing parallel processing |
CN108306965B (zh) * | 2018-01-31 | 2021-02-02 | 上海小蚁科技有限公司 | 摄像头的数据处理方法及装置、存储介质、摄像头 |
CN110202953A (zh) * | 2019-07-02 | 2019-09-06 | 深圳劲鑫科技有限公司 | 一种单工作台喷墨机 |
US11630789B2 (en) * | 2020-09-11 | 2023-04-18 | Apple Inc. | Scalable interrupts |
US11675718B2 (en) * | 2021-03-26 | 2023-06-13 | Advanced Micro Devices, Inc. | Enhanced low-priority arbitration |
US11934313B2 (en) | 2021-08-23 | 2024-03-19 | Apple Inc. | Scalable system on a chip |
CN117369987A (zh) * | 2023-08-22 | 2024-01-09 | 华为技术有限公司 | 一种计算装置及相关任务执行调度方法 |
Family Cites Families (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4253146A (en) * | 1978-12-21 | 1981-02-24 | Burroughs Corporation | Module for coupling computer-processors |
US5613128A (en) * | 1990-12-21 | 1997-03-18 | Intel Corporation | Programmable multi-processor interrupt controller system with a processor integrated local interrupt controller |
EP0683451B1 (de) | 1994-05-09 | 2004-02-25 | Canon Kabushiki Kaisha | Verfahren zur Steuerung der Stromversorgung in einer Mehrprozessbetriebsumgebung |
US5918057A (en) | 1997-03-20 | 1999-06-29 | Industrial Technology Research Institute | Method and apparatus for dispatching multiple interrupt requests simultaneously |
DE69818702T2 (de) * | 1997-11-14 | 2004-07-22 | Gen-Probe Inc., San Diego | Arbeitsgerät zur analyse |
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 |
US6904595B2 (en) * | 2000-05-08 | 2005-06-07 | Microtune (San Diego), Inc. | Priority in a portable thread environment |
US6986066B2 (en) * | 2001-01-05 | 2006-01-10 | International Business Machines Corporation | Computer system having low energy consumption |
US6845456B1 (en) * | 2001-05-01 | 2005-01-18 | Advanced Micro Devices, Inc. | CPU utilization measurement techniques for use in power management |
US6823413B2 (en) * | 2001-06-08 | 2004-11-23 | Oki Electronic Industry Co., Ltd. | Interrupt signal processing apparatus |
US6990593B2 (en) * | 2001-07-31 | 2006-01-24 | Hewlett-Packard Development Company, L.P. | Method for diverting power reserves and shifting activities according to activity priorities in a server cluster in the event of a power interruption |
US7213065B2 (en) * | 2001-11-08 | 2007-05-01 | Racemi, Inc. | System and method for dynamic server allocation and provisioning |
US6990320B2 (en) * | 2002-02-26 | 2006-01-24 | Motorola, Inc. | Dynamic reallocation of processing resources for redundant functionality |
US7065766B2 (en) * | 2002-07-11 | 2006-06-20 | International Business Machines Corporation | Apparatus and method for load balancing of fixed priority threads in a multiple run queue environment |
US7152169B2 (en) * | 2002-11-29 | 2006-12-19 | Intel Corporation | Method for providing power management on multi-threaded processor by using SMM mode to place a physical processor into lower power state |
US7546475B2 (en) * | 2003-05-13 | 2009-06-09 | Hewlett-Packard Development Company, L.P. | Power-aware adaptation in a data center |
-
2002
- 2002-12-26 US US10/330,622 patent/US7191349B2/en not_active Expired - Lifetime
-
2003
- 2003-12-05 DE DE10393969T patent/DE10393969T5/de not_active Ceased
- 2003-12-05 GB GB0505391A patent/GB2412457B/en not_active Expired - Fee Related
- 2003-12-05 AU AU2003298903A patent/AU2003298903A1/en not_active Abandoned
- 2003-12-05 WO PCT/US2003/038612 patent/WO2004061686A2/en active Application Filing
- 2003-12-05 CN CNB2003801073724A patent/CN100349147C/zh not_active Expired - Fee Related
- 2003-12-09 TW TW092134722A patent/TWI233545B/zh not_active IP Right Cessation
-
2005
- 2005-10-25 HK HK05109490A patent/HK1075314A1/xx not_active IP Right Cessation
-
2007
- 2007-02-09 US US11/704,760 patent/US7761720B2/en not_active Expired - Fee Related
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
DE102011013833A1 (de) * | 2011-03-14 | 2012-09-20 | Continental Automotive Gmbh | Anzeigevorrichtung |
DE102011013833B4 (de) * | 2011-03-14 | 2014-05-15 | Continental Automotive Gmbh | Anzeigevorrichtung |
US9146140B2 (en) | 2011-03-14 | 2015-09-29 | Continental Automotive Gmbh | Display device having a stepper motor and a watchdog timer |
Also Published As
Publication number | Publication date |
---|---|
GB0505391D0 (en) | 2005-04-20 |
US7761720B2 (en) | 2010-07-20 |
GB2412457A (en) | 2005-09-28 |
HK1075314A1 (en) | 2005-12-09 |
WO2004061686A2 (en) | 2004-07-22 |
US20070143514A1 (en) | 2007-06-21 |
CN100349147C (zh) | 2007-11-14 |
TWI233545B (en) | 2005-06-01 |
CN1732447A (zh) | 2006-02-08 |
TW200413889A (en) | 2004-08-01 |
GB2412457B (en) | 2006-01-25 |
US7191349B2 (en) | 2007-03-13 |
WO2004061686A3 (en) | 2004-11-18 |
AU2003298903A1 (en) | 2004-07-29 |
US20040128563A1 (en) | 2004-07-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
DE10393969T5 (de) | Mechanismus zur Verteilung von Unterbrechungen niedrigster Priorität unter Berücksichtigung des Prozessorleistungszustands | |
DE112006003444B4 (de) | Verfahren und Vorrichtung zum Erfassen von Prozessorzustands-Übergängen | |
DE112007001987B4 (de) | Überführen einer Rechenplattform in einen Systemzustand niedriger Leistung | |
DE102013104328B4 (de) | Aufgabenzuteilung in großen und kleinen Kernen | |
DE69907512T2 (de) | Gerät und verfahren zur automatischen frequenzregelung einer zentralen verarbeitungseinheit | |
US7783907B2 (en) | Power management of multi-processor servers | |
DE102014003704B4 (de) | Plattform-agnostisches Powermanagement | |
DE112012006377B4 (de) | Energieverbrauch und Leistung von Computersystemen steuern | |
DE112011103193B4 (de) | Bereitstellung einer Pro-Kern-Spannungs-und Frequenzsteuerung | |
DE112004001320B3 (de) | Verfahren, System und Vorrichtung zur Verbesserung der Leistung von Mehrkernprozessoren | |
DE69727407T2 (de) | Verteilte Ausführung von modusungeeigneten Befehlen in Multiprozessorsysteme | |
DE69517712T2 (de) | Verfahren und Vorrichtung zur Reduzierung der Leistungsaufnahme in einem Rechnersystem | |
DE102010045743B4 (de) | Verfahren und Vorrichtung, um Turboleistung für das Event-Handling zu verbessern | |
DE102013104329B4 (de) | Aufgabenzuteilung in großen und kleinen Kernen | |
DE112017004110T5 (de) | Verfahren, vorrichtung und system für eine rollenübertragungsfunktion für einen bus-master | |
DE112011105590T5 (de) | Energieeffiziente Prozessorarchitektur | |
DE112004001887B4 (de) | Optimierung der SMI-Behandlung und -Initialisierung | |
DE112011103194B4 (de) | Koordinieren von Gerät- und Anwendungsunterbrechungsereignissen zum Plattformenergiesparen | |
DE202012011944U1 (de) | Vorrichtung und System zur Energie-Effizienz und Energie-Einsparung mit einem Strom- und Leistungsabgleich zwischen mehreren Verarbeitungselementen | |
DE112011102822T5 (de) | Leistungsoptimierte Interrupt-Abgabe | |
DE102009015495A1 (de) | Energieverwaltung bei einer Plattform basierend auf der Lenkung über die Wartezeit | |
DE112012005209T5 (de) | Brückenfunktion zwischen Virtual Machine Monitor und Bare-Metal-Bootvorgang | |
DE112019000662T5 (de) | System, Vorrichtung und Verfahren für ein Handschlag-Protokoll für Niedrigleistungszustandsübergänge | |
DE112013006241T5 (de) | Techniken für Plattform-Arbeitszyklus-Wechsel | |
DE112017003080T5 (de) | Prozessor mit gleichzeitigem kern und gewebeausgang aus einem zustand mit geringer energie |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
OP8 | Request for examination as to paragraph 44 patent law | ||
8131 | Rejection | ||
8172 | Supplementary division/partition in: |
Ref document number: 10394375 Country of ref document: DE Kind code of ref document: P |
|
Q171 | Divided out to: |
Ref document number: 10394375 Country of ref document: DE Kind code of ref document: P |