DE112014006501T5 - Synchronisierung der Unterbrechungsverarbeitung zur Verringerung des Stromverbrauchs - Google Patents

Synchronisierung der Unterbrechungsverarbeitung zur Verringerung des Stromverbrauchs Download PDF

Info

Publication number
DE112014006501T5
DE112014006501T5 DE112014006501.3T DE112014006501T DE112014006501T5 DE 112014006501 T5 DE112014006501 T5 DE 112014006501T5 DE 112014006501 T DE112014006501 T DE 112014006501T DE 112014006501 T5 DE112014006501 T5 DE 112014006501T5
Authority
DE
Germany
Prior art keywords
interrupt
core
delay
pending
time
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.)
Pending
Application number
DE112014006501.3T
Other languages
English (en)
Inventor
Thiam Wah Loh
Gautham N. Chinya
Per Hammarlund
Reza Fortas
Hong Wang
Huajin Sun
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Intel Corp
Original Assignee
Intel Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Intel Corp filed Critical Intel Corp
Publication of DE112014006501T5 publication Critical patent/DE112014006501T5/de
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/20Handling requests for interconnection or transfer for access to input/output bus
    • G06F13/24Handling requests for interconnection or transfer for access to input/output bus using interrupt
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2213/00Indexing scheme relating to interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F2213/24Interrupt
    • G06F2213/2404Generation of an interrupt or a group of interrupts after a predetermined number of interrupts
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2213/00Indexing scheme relating to interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F2213/24Interrupt
    • G06F2213/2406Generation of an interrupt or a group of interrupts after a fixed or calculated time elapses
    • YGENERAL 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
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE 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/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

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

Abstract

Es wird ein Prozessor offenbart, der wenigstens einen Kern, einschließlich eines ersten Kerns, und eine Unterbrechungsverzögerungslogik umfasst. Die Unterbrechungsverzögerungslogik soll eine erste Unterbrechung zu einer ersten Zeit empfangen und die erste Unterbrechung vor einer Verarbeitung um eine erste Zeitverzögerung verzögern, die zur ersten Zeit beginnt, es sei denn, dass die erste Unterbrechung zu einer zweiten Zeit anhängig ist, wenn eine zweite Unterbrechung durch den ersten Kern verarbeitet wird. Falls die erste Unterbrechung zur zweiten Zeit anhängig ist, soll die Unterbrechungsverzögerungslogik den ersten Kern anweisen, vor Abschluss der ersten Zeitverzögerung mit der Verarbeitung der ersten Unterbrechung zu beginnen. Andere Ausführungsformen werden offenbart und beansprucht.

Description

  • Technisches Gebiet
  • Ausführungsformen betreffen die Unterbrechungsverarbeitung.
  • Hintergrund
  • Vorrichtungen in der Art tragbarer Vorrichtungen, beispielsweise Smartphones, Tablets usw., können eine hohe Rate asynchroner Ereignisse aufweisen, die infolge einer Vielzahl von Peripherievorrichtungen, die eine Eingabe bereitstellen können, auftreten. Beispielsweise können asynchrone Ereignisse Bewegungssensoren, Lichtsensoren, einen Berührungsbildschirm usw. umfassen. Zusätzlich können diese tragbaren Vorrichtungen synchrone Ereignisse in der Art periodischer Unterbrechungen, die sich auf ein Mobilfunknetz-Paging, periodische Zeitgeberereignisse usw. beziehen, empfangen.
  • In einen Prozessor eingegebene Unterbrechungsnachrichten (”Unterbrechungen”), die synchronen und asynchronen Ereignissen zugeordnet sind, können den Prozessor veranlassen, schnelle Zustandsübergänge auszuführen, beispielsweise in zu hohem Maße zwischen einem aktiven Zustand und einem inaktiven Zustand zu oszillieren, wodurch wiederum ein hoher Stromverbrauch infolge eines ”Aufweck”-Stromverbrauchs infolge von Übergängen vom inaktiven in den aktiven Zustand hervorgerufen werden kann, was zu einer Verringerung der Zeitperiode zwischen Wiederaufladevorgängen einer Stromquelle, beispielsweise einer Batterie, führen kann.
  • Kurzbeschreibung der Zeichnung
  • Es zeigen:
  • 1 ein Blockdiagramm eines Systems gemäß einer Ausführungsform der vorliegenden Erfindung,
  • 2 ein Blockdiagramm einer Unterbrechungsverzögerungs-Steuereinrichtung gemäß Ausführungsformen der vorliegenden Erfindung,
  • 3A ein Blockdiagramm eines Prozessorkerns gemäß einer Ausführungsform der vorliegenden Erfindung,
  • 3B ein Zeitablaufdiagramm zu verarbeitender Unterbrechungen gemäß Ausführungsformen der vorliegenden Erfindung,
  • 4 ein Flussdiagramm eines Verfahrens zur Verarbeitung von Unterbrechungsereignissen durch einen Prozessor gemäß einer Ausführungsform der vorliegenden Erfindung,
  • 5 ein Blockdiagramm eines Systems gemäß einer Ausführungsform der vorliegenden Erfindung,
  • 6 ein Blockdiagramm eines Systems gemäß einer anderen Ausführungsform der vorliegenden Erfindung und
  • 7 ein Blockdiagramm eines Systems auf einem Chip gemäß einer Ausführungsform der vorliegenden Erfindung.
  • Detaillierte Beschreibung
  • Unterbrechungsquellen können entsprechend Eigenschaften einer Quelle und Anforderungen zur Verarbeitung von der Quelle empfangener Unterbrechungen klassifiziert werden. Beispielsweise müssen einige Unterbrechungen ohne eine absichtliche Verzögerung vor der Verarbeitung bedient werden (hier ”harte Unterbrechungen” oder ”kritische Unterbrechungen”, beispielsweise periodische Unterbrechungen, beispielsweise in Zusammenhang mit Mobilfunkübertragungsstandards). Andere Unterbrechungen (hier ”weiche Unterbrechungen” oder ”nicht kritische Unterbrechungen”) sind weniger zeitsensitiv und können absichtlich verzögert werden, wobei die zeitliche Verzögerung entsprechend der Natur der Unterbrechungsquelle, beispielsweise Peripherievorrichtung/Anwendung, zuzuweisen ist.
  • Gemäß Ausführungsformen kann ein programmierbarer Verzögerungswert für jedes Ereignis oder eine Gruppe von Ereignissen festgelegt werden. Unterbrechungen können gruppiert werden, so dass ein Prozessor mehrere Unterbrechungen behandeln kann (beispielsweise eine ”Batchverarbeitung” ausführen kann), wenn der Prozessor aus einem inaktiven Zustand (”Schlafzustand”) aktiviert (”aufgeweckt”) wird. Durch eine Batchverarbeitung von Unterbrechungen kann die Gesamtzahl der aktiven/inaktiven Zyklen verringert werden, die der Prozessor in einem gegebenen Zeitrahmen erfährt, wodurch der Gesamtstromverbrauch des Prozessors verringert werden kann.
  • Gemäß Ausführungsformen ist ein programmierbarer Zeitverzögerunggeberwert für ein Betriebssystem zur Verzögerung einer Unterbrechungsverarbeitung (beispielsweise durch Ausführung eines Handlers in Zusammenhang mit der Unterbrechung) verfügbar, beispielsweise wenn der Prozessor und/oder ein System auf einem Chip (”System on a Chip” – SOC) in einem Stromsparzustand (inaktiven Zustand) ist, beispielsweise einem der Herunterfahrzustände C1–C6 der fortgeschrittenen Rechen- und Leistungsschnittstelle (”Advanced Computing and Power Interface” – ACPI). Programmierte Verzögerungswerte für verschiedene Unterbrechungstypen ermöglichen eine Batchverarbeitung einer Unterbrechungsverarbeitung statt jede Unterbrechung einzeln zu verarbeiten, was zu einem hohen Stromverbrauch infolge jedes Inaktiv-zu-aktiv-Übergangs des Prozessors oder SoC führen könnte. Gemäß einer Ausführungsform gruppiert die Unterbrechungsverarbeitung Ereignisse automatisch in dynamischer Weise auf der Grundlage der jeder Unterbrechung zugeordneten entsprechenden Zeitverzögerung.
  • 1 ist ein Blockdiagramm eines Systems 100 gemäß einer Ausführungsform der vorliegenden Erfindung. Das System 100 umfasst einen Prozessor 110 mit einem oder mehreren Kernen 102 0102 N, einer Unterbrechungssteuereinrichtung 104 und einer Unterbrechungsverzögerungs-Steuereinrichtung 106, mehrere Peripherievorrichtungen 120 0120 M, die mit dem Prozessor 110 gekoppelt sind, und einen dynamischen Direktzugriffsspeicher (DRAM) 130, der mit dem Prozessor 110 gekoppelt ist.
  • Beim Betrieb kann der Prozessor 110 Unterbrechungsnachrichten (hier auch ”Unterbrechungen”) von einer oder mehreren der Peripherievorrichtungen 120 0120 M empfangen. Eine oder mehrere der Unterbrechungen (”harte Unterbrechungen”) können einem entsprechenden harten Echtzeit-Unterbrechungsereignis zugeordnet sein, für das die Unterbrechung zu verarbeiten ist, wenn sie empfangen wird, beispielsweise nicht absichtlich verzögert. Beispielsweise kann eine harte Unterbrechung einem periodischen Ereignis, das sich auf einen Mobilfunkstandard bezieht, zugeordnet sein, wobei die harte Unterbrechung vom Prozessor 110 beim Empfang, beispielsweise ohne eine absichtliche Zeitverzögerung, zu verarbeiten ist.
  • Andere Unterbrechungen können periodisch (beispielsweise synchron) oder aperiodisch (beispielsweise asynchron) sein, sie sind jedoch keinen harten Echtzeit-Unterbrechungsereignissen zugeordnet, weshalb die Verarbeitung dieser Unterbrechungen (”weiche Unterbrechungen”) verzögert werden kann, beispielsweise absichtlich zeitlich verzögert werden kann. Beispielsweise können asynchrone Unterbrechungen asynchronen Ereignissen in der Art einer Sensoreingabe, einem Berührungsbildschirm, Daten, die aperiodisch empfangen werden können, usw. zugeordnet sein.
  • Für jede Peripherievorrichtung 120 0120 M, die weiche Ereignisse erzeugt (beispielsweise weiche Unterbrechungen erzeugt), kann eine entsprechende Zeitverzögerung zur Verarbeitung jeder weichen Unterbrechung zugewiesen werden. Die Zeitverzögerung zur Verarbeitung von einer Quellen-Peripherievorrichtung empfangener weicher Unterbrechungen kann auf der Grundlage von Eigenschaften der Quellen-Peripherievorrichtung bestimmt werden und vor der Verwendung des Systems 100 bestimmt werden. Beispielsweise kann ein Faktor, der bei der Bestimmung einer akzeptablen Zeitverzögerung für weiche Unterbrechungen zu berücksichtigen ist, eine im schlimmsten Fall auftretende Frequenz des Auftretens des zugeordneten Ereignisses sein. Falls beispielsweise bei einer Schätzung des schlimmsten Falls ein Ereignis alle 100 Millisekunden auftritt, hätte eine Verzögerung von 100 μs für die Verarbeitung der zugeordneten Unterbrechung einen vernachlässigbaren Einfluss auf die Funktionsweise. Die Zeitverzögerung kann vor dem Empfang einer oder mehrerer Unterbrechungen durch den Prozessor 110 bereitgestellt werden (beispielsweise im Prozessor 110 gespeichert werden).
  • Durch die Unterbrechungsverzögerungs-Steuereinrichtung 106 von einer oder mehreren der Peripherievorrichtungen 120 0120 M empfangene harte Unterbrechungen können an die Unterbrechungssteuereinrichtung 104 übergeben werden, um sie ohne eine absichtliche Zeitverzögerung zu verarbeiten. Wenn eine weiche Unterbrechung vom Prozessor 110 empfangen wird, kann die Unterbrechungsverzögerungs-Steuereinrichtung 106 eine entsprechende Zeitverzögerung (beispielsweise in der Unterbrechungsverzögerungs-Steuereinrichtung 106 gespeichert) auf der Grundlage der Peripherievorrichtung 120, welche die weiche Unterbrechung bereitgestellt hat, auswählen. Für jede empfangene weiche Unterbrechung kann die Unterbrechungsverzögerungs-Steuereinrichtung eine Zählung der entsprechenden Zeitverzögerung, beispielsweise über einen entsprechenden Zeitgeber, beginnen, und wenn der entsprechende Zeitgeber das Ende der Zeitverzögerung erreicht hat, kann die weiche Unterbrechung an die Unterbrechungssteuereinrichtung 104 abgegeben werden und durch die Unterbrechungssteuereinrichtung 104 weitergeleitet werden, damit sie durch einen der Kerne 102 0102 N verarbeitet wird.
  • Gemäß einer Ausführungsform kann die Unterbrechungsverzögerungs-Steuereinrichtung 106, wenn eine harte Unterbrechung zur sofortigen Verarbeitung durch den Prozessor 110 empfangen wird, feststellen, ob weiche Unterbrechungen anstehen, beispielsweise ein zugeordneter Zeitgeber begonnen hat, die Zeitverzögerung für die weiche Unterbrechung zu zählen und die Zählung noch nicht abgeschlossen hat. Die Unterbrechungsverzögerungs-Steuereinrichtung 106 kann eine oder mehrere anhängige weiche Unterbrechungen an die Unterbrechungssteuereinrichtung 104 zur Verarbeitung durch einen der Kerne 102 0102 N abgeben, beispielsweise ohne die Zählung des zugeordneten Zeitgebers abzuschließen. Unterbrechungen, die zur Verarbeitung durch einen Kern abgegeben werden, sind zu verarbeiten, während der Kern aktiv ist, wobei der Kern beispielsweise von einer Zeit, zu der die harte Unterbrechung empfangen wird, bis die Verarbeitung aller weichen Unterbrechungen, die abgegeben werden, abgeschlossen ist, aktiv bleibt.
  • Gemäß einer anderen Ausführungsform ist eine erste weiche Unterbrechung durch einen ersten der Kerne 102 0102 N infolge eines Ablaufs des Zeitgebers zu verarbeiten, wobei der zugeordnete Zeitgeber beispielsweise seine Zählung der jeweiligen Zeitverzögerung abgeschlossen hat. Die Unterbrechungsverzögerungs-Steuereinrichtung 106 kann eine oder mehrere andere anhängige weiche Unterbrechungen an die Unterbrechungssteuereinrichtung 104 zur Verarbeitung durch den ersten Kern vor Abschluss jeder jeweiligen Zeitverzögerung abgeben. Unterbrechungen, die zur Verarbeitung durch den ersten Kern abgegeben werden, sind einer Batchverarbeitung zu unterziehen, beispielsweise einer Verarbeitung zu unterziehen, während der erste Kern infolge der Verarbeitung der ersten weichen Unterbrechung aktiv ist. Der Kern soll aktiv bleiben, bis die Verarbeitung der Unterbrechungen, die abgegeben wurden, abgeschlossen ist.
  • Wenn bei jeder der vorstehend beschriebenen Ausführungsformen eine bestimmte zur Unterbrechungssteuereinrichtung gesendete Unterbrechung zu verarbeiten ist, kann die Unterbrechungsverzögerungs-Steuereinrichtung 106 eine oder mehrere anhängige Unterbrechungen, die während einer einzigen aktiven Zeitperiode des Kerns zu verarbeiten sind, abgeben. Daher oszilliert der jeweilige Kern nicht zwischen einem inaktiven und einem aktiven Zustand für jede zu verarbeitende Unterbrechung. Die Batchverarbeitung der Unterbrechungen kann schnelle Zustandsübergänge verringern und den Stromverbrauch des Prozessors verringern, der andernfalls infolge von ”Aufweck”-Stromverbräuchen aufgewendet werden würde. Das heißt, dass durch die Batchverarbeitung der Unterbrechungen der für das Wiederaktivieren des Kerns aufgewendete Strom von mehreren Aufweckinstanzen zu einer einzigen Aufweckinstanz für mehrere zu verarbeitende Unterbrechungen verringert werden kann.
  • 2 ist ein Blockdiagramm einer Unterbrechungsverzögerungs-Steuereinrichtung 200 gemäß Ausführungsformen der vorliegenden Erfindung. Die Unterbrechungsverzögerungs-Steuereinrichtung 200 umfasst Zeitverzögerungszähler 210 1210 L, Zeitverzögerungsregister 220 1220 L und eine Unterbrechungsverzögerungslogik 222, die eine Unterbrechungsdetektionslogik 224, eine Zählerzuweisungslogik 226 und eine Anhängige-Unterbrechung-Abgabelogik 228 aufweist. Die Unterbrechungsverzögerungslogik 222, welche die Unterbrechungsdetektionslogik 224, die Zählerzuweisungslogik 226 und die Anhängige-Unterbrechung-Abgabelogik 228 umfasst, kann in Software, Hardware, Firmware oder einer Kombination davon implementiert werden.
  • Beim Betrieb können mehrere Peripherievorrichtungen Unterbrechungen 202 1202 J erzeugen. Einige der von einigen Peripherievorrichtungen empfangenen Unterbrechungen können harte Unterbrechungen sein, die beispielsweise ohne eine absichtliche Verzögerung zu verarbeiten sind. Andere Unterbrechungen können weiche Unterbrechungen sein und vor der Verarbeitung verzögert werden.
  • Die Unterbrechungsdetektionslogik 224 kann jede harte Unterbrechung detektieren, die empfangen wird, und jede harte Unterbrechung ohne Verzögerung zur Unterbrechungssteuereinrichtung 230 senden, um sie zur Verarbeitung an einen bestimmten Kern auszugeben.
  • Jeder Zähler 210 1210 L hat ein zugeordnetes Zeitverzögerungsregister 210 1210 L, das eine bestimmte Zeitverzögerung speichert, die einer bestimmten Peripherievorrichtung entspricht, welche weiche Unterbrechungen ausgibt. Die Zeitverzögerung für eine gegebene Peripherievorrichtung kann im zugeordneten Zeitverzögerungsregister 210 1210 L gespeichert werden (beispielsweise vor dem Betrieb der Unterbrechungsverzögerungs-Steuereinrichtung 200) und von mehreren Faktoren abhängen (beispielsweise dem Einfluss auf die Leistungsfähigkeit), wie vorstehend beschrieben wurde. Die Zählerzuweisungslogik 226 kann jede von einer bestimmten Peripherievorrichtung empfangene Unterbrechung einem entsprechenden Zähler 210 i zuweisen, dessen Zeitverzögerungsregister 220 i der bestimmten Peripherievorrichtung zugeordnet ist. Wenn beispielsweise eine erste Unterbrechung von einer ersten Peripherievorrichtung empfangen wird, kann die erste Unterbrechung durch die Zählerzuweisungslogik 226 einem ersten Zeitgeber 210 1 zugewiesen werden, der eine Zeitzählung bis zu einem ersten Zeitverzögerungswert beginnt, welcher der ersten Peripherievorrichtung zugeordnet ist und im Register 220 1 gespeichert wird (beispielsweise Herunterzählen vom ersten Zeitverzögerungswert oder Heraufzählen auf den ersten Zeitverzögerungswert). Wenn die Zeitzählung abgelaufen ist, wird die Unterbrechung an eine Unterbrechungssteuereinrichtung 230 abgegeben, um sie durch einen ausgewählten der Kerne zu verarbeiten, der von der Unterbrechungssteuereinrichtung 230 festgelegt wurde.
  • Die Unterbrechungsdetektionslogik 224 kann den Empfang einer harten Unterbrechung detektieren und die empfangene harte Unterbrechung ohne absichtliche Verzögerung zur Unterbrechungssteuereinrichtung 230 leiten. Die Verarbeitung der harten Unterbrechung kann die Anhängige-Unterbrechung-Abgabelogik 228 veranlassen, an die Unterbrechungssteuereinrichtung 230 vor Ablauf der zugewiesenen Zeitverzögerung eine oder mehrere weiche Unterbrechungen abzugeben, die anhängig sind, beispielsweise absichtlich durch den Zeitverzögerungszähler 210 verzögert werden.
  • Auch wird in jedem Fall, dass ein Zähler 210 das Zählen der zugeordneten Zeitverzögerung abschließt, die entsprechende Unterbrechung an die Unterbrechungssteuereinrichtung 230 abgegeben, um sie durch einen bestimmten Kern des Prozessors (den durch die Unterbrechungssteuereinrichtung 230 festgelegten bestimmten Kern) zu verarbeiten. Die Abgabe der Unterbrechung kann die Anhängige-Unterbrechung-Abgabelogik 228 veranlassen, eine oder mehrere anhängige Unterbrechungen an die Unterbrechungssteuereinrichtung 230 abzugeben, um sie durch den bestimmten Kern zu verarbeiten.
  • 3A zeigt ein Blockdiagramm eines Prozessorkerns 300 gemäß einer Ausführungsform der vorliegenden Erfindung. Wie in 3A dargestellt ist, kann der Prozessorkern 300 ein mehrstufiger Außer-der-Reihenfolge-Vektorprozessor sein.
  • Der Kern 300 kann eine Unterbrechungsverzögerungseinheit 302 gemäß Ausführungsformen der vorliegenden Erfindung aufweisen. Unterbrechungen können von verschiedenen Peripherievorrichtungen empfangen werden, und die Unterbrechungsdetektionslogik 304 kann feststellen, ob eine empfangene Unterbrechung eine harte Unterbrechung oder eine weiche Unterbrechung ist. Falls die empfangene Unterbrechung eine harte Unterbrechung ist, wird die empfangene Unterbrechung zu Frontend-Einheiten 310 gesendet und ist ohne Verzögerung (beispielsweise ohne Einbringen einer absichtlichen Zeitverzögerung) durch die Ausführungseinheiten 320 zu verarbeiten. Falls die empfangene Unterbrechung eine weiche Unterbrechung ist, kann die Unterbrechungsdetektionslogik 304 der Zählerzuweisungslogik 306 angeben, einen der Verzögerungszähler 307 1307 L der empfangenen Unterbrechung zuzuweisen. Der zugewiesene Verzögerungszähler 307 kann eine vorgegebene Zeitverzögerung Ti zählen, wobei Ti in einem entsprechenden Zeitverzögerungsregister 309 1309 L gespeichert wird, und die Unterbrechungsverzögerungseinheit 302 kann die Verarbeitung der empfangenen weichen Unterbrechung verzögern, während der entsprechende Verzögerungszähler 307 die jeweilige Zeitverzögerung Ti zählt.
  • Falls die empfangene (weiche) Unterbrechung anhängig ist (beispielsweise durch die Unterbrechungsverzögerungseinheit 302 festgehalten, bis der jeweilige Verzögerungszähler 307 i abläuft), wenn eine andere Unterbrechung verarbeitet wird (beispielsweise eine harte Unterbrechung oder eine andere weiche Unterbrechung, deren Verzögerungszähler abgelaufen ist), kann gemäß Ausführungsformen der vorliegenden Erfindung die Anhängige-Unterbrechung-Abgabelogik 308 die anhängige weiche Unterbrechung zur Verarbeitung abgeben, bevor ihr jeweiliger Verzögerungszähler 307 i abläuft und während Ausführungseinheiten 320 aktiv sind.
  • Falls keine Unterbrechungen und keine Befehle verarbeitet werden, kann die Leistungseinstelllogik 318 die Ausführungseinheiten 320 anweisen, den Stromverbrauch von einem ganz aktiven Niveau zu einem kleineren Niveau des Stromverbrauchs zu verringern. Wenn Unterbrechungen und/oder Befehle zur Verarbeitung in einer Warteschlange eingereiht sind, kann die Leistungseinstelllogik 318 die Ausführungseinheiten 320 anweisen, einen hochgefahrenen Zustand wiederaufzunehmen.
  • Wie in 3A ersichtlich ist, weist der Kern 300 Frontend-Einheiten 310 auf, die verwendet werden können, um auszuführende Befehle abzurufen und sie zur späteren Verwendung im Prozessor vorzubereiten. Beispielsweise können die Frontend-Einheiten 310 eine Abrufeinheit 301, einen Befehls-Cache 303 und einen Befehlsdecodierer 305 aufweisen. Bei einigen Implementationen können die Frontend-Einheiten 310 ferner einen Spur-Cache zusammen mit einem Mikrocodespeicher sowie einem Mikrooperationsspeicher aufweisen. Die Abrufeinheit 301 kann Makrobefehle, beispielsweise vom Speicher oder Befehls-Cache 303, abrufen und sie dem Befehlsdecodierer 305 zuführen, um sie in primitive Einheiten zu decodieren, d. h. Mikrooperationen zur Ausführung durch den Prozessor.
  • Zwischen die Frontend-Einheiten 310 und die Ausführungseinheiten 320 ist eine Außer-der-Reihenfolge-(”Out-of-Order” – OOO)-Maschine 315 geschaltet, die verwendet werden kann, um die Mikrobefehle zu empfangen und sie für die Ausführung vorzubereiten. Insbesondere kann die OOO-Maschine 315 verschiedene Puffer zum Umordnen des Mikrobefehlsablaufs und zum Zuordnen verschiedener Ressourcen, die sie für die Ausführung benötigt, sowie zum Bereitstellen einer Umbenennung logischer Register auf Speicherstellen innerhalb verschiedener Registerdateien in der Art einer Registerdatei 330 und einer erweiterten Registerdatei 335 aufweisen. Die Registerdatei 330 kann getrennte Registerdateien für ganzzahlige und Gleitkommaoperationen aufweisen. Die erweiterte Registerdatei 335 kann Speicher für Vektorgrößeneinheiten, beispielsweise 256 oder 512 Bits pro Register, bereitstellen.
  • Verschiedene Ressourcen können in den Ausführungseinheiten 320 vorhanden sein, einschließlich beispielsweise verschiedener ganzzahliger, Gleitkomma- und Einzelner-Befehl-mehrere-Daten-(”Single Instruction Multiple Data” – SIMD)-Logikeinheiten, unter anderer spezialisierter Hardware. Beispielsweise können diese Ausführungseinheiten eine oder mehrere Rechen- und Logikeinheiten (”Arithmetic Logic Units” – ALU) 322, unter anderen solchen Ausführungseinheiten, aufweisen.
  • Ergebnisse von den Ausführungseinheiten können der Ablagelogik, nämlich einem Umordnungspuffer (”Reorder Buffer” – ROB) 340, bereitgestellt werden. Insbesondere kann der ROB 340 verschiedene Felder und Logik zum Empfangen von Informationen in Zusammenhang mit Befehlen, die ausgeführt werden, aufweisen. Diese Informationen werden dann durch den ROB 340 untersucht, um festzustellen, ob die Befehle gültig abgelegt werden können und Ergebnisdaten an den Architekturzustand des Prozessors übergeben werden können oder ob eine oder mehrere Ausnahmen aufgetreten sind, die eine geeignete Ablage der Befehle verhindern. Natürlich kann der ROB 340 auch andere Operationen in Zusammenhang mit der Ablage behandeln.
  • Wie in 3A dargestellt ist, ist der ROB 340 mit einem Cache 350 gekoppelt, der gemäß einer Ausführungsform ein Cache niederer Ebene (beispielsweise ein L1-Cache) sein kann, wenngleich der Schutzumfang der vorliegenden Erfindung nicht darauf beschränkt ist. Auch können Ausführungseinheiten 320 direkt mit dem Cache 350 gekoppelt werden. Aus dem Cache 350 kann eine Datenkommunikation mit Cache-Speichern höherer Ebene, einem Systemspeicher usw. erfolgen. Wenngleich in der Ausführungsform aus 3A eine hohe Ebene dargestellt ist, ist zu verstehen, dass der Schutzumfang der vorliegenden Erfindung in dieser Hinsicht nicht beschränkt ist. Wenngleich sich die Implementation aus 3A beispielsweise auf eine Außer-der-Reihenfolge-Maschine in der Art einer so genannten x86-Befehlssatzarchitektur (”Instruction Set Architecture” – ISA) bezieht, ist der Schutzumfang der vorliegenden Erfindung in dieser Hinsicht nicht beschränkt. Das heißt, dass andere Ausführungsformen in einem In-der-Reihenfolge-Prozessor, einem Rechenprozessor mit einem reduzierten Befehlssatz (”Reduced Instruction Set Computing” – RISC) in der Art eines ARM-basierten Prozessors oder einem Prozessor eines anderen ISA-Typs, der Befehle und Operationen einer anderen ISA über eine Emulationsmaschine und eine zugeordnete Logikschaltungsanordnung emulieren kann, implementiert werden können.
  • 3B ist ein Zeitablaufdiagramm zu verarbeitender Unterbrechungen gemäß Ausführungsformen der vorliegenden Erfindung.
  • Unterbrechung-1-Nachrichten (354360) sind harte Unterbrechungen. Unterbrechung-2-Nachrichten (362, 366, 370, 374) sind weiche Unterbrechungen, die periodisch sind. Unterbrechung-3-Nachrichten (378, 382) sind weiche Unterbrechungen, die aperiodisch sind.
  • Alle Unterbrechungen sind durch den gleichen Kern zu verarbeiten. Weiche Unterbrechungen können verzögert werden, wobei jede weiche Unterbrechung eine entsprechende Zeitverzögerung aufweist, wie vorstehend mit Bezug auf 2 erörtert wurde. Jede der periodischen weichen Unterbrechungen 362, 366, 370 und 374 wird zeitlich verzögert, um sie als jeweilige verzögerte Unterbrechungen 364, 368, 372 und 376 zu verarbeiten. Jede der asynchronen weichen Unterbrechungen 378, 382 wird zeitlich verzögert, um sie als jeweilige Unterbrechungen 380 und 384 zu verarbeiten.
  • Jede der harten Unterbrechungen 354360 ist ohne absichtliche Verzögerung zu verarbeiten, und jeder Unterbrechung 354360 wird ein Inaktiv-zu-aktiv-Übergang (386, 390, 394, 396) im die Unterbrechungen verarbeitenden Kern zugeordnet. Die Unterbrechungen 354, 356, 358 und 360 werden zu jeweiligen Kernzeiten 386, 390, 394 und 396 verarbeitet.
  • Während jede der Unterbrechungen 354, 356, 358, 360 verarbeitet wird, können eine oder mehrere anhängige Unterbrechungen (beispielsweise noch nicht verarbeitet und auf den Ablauf einer entsprechenden Zeitverzögerungsperiode wartend) zur Verarbeitung abgegeben werden, während sich der Kern im aktiven Zustand befindet. Beispielsweise wird die Unterbrechung 370 zur Verarbeitung zu 372 verzögert (hier als 370372 bezeichnet) und ist anhängig, wenn die Unterbrechung 358 verarbeitet wird. Daher wird die Unterbrechung (370372) zur Zeit 394 zur Verarbeitung abgegeben, wobei die Abgabe durch die Verarbeitung der Unterbrechung 358 ausgelöst wird. Demgemäß sind zwei Unterbrechungen (358 und 370372) in derselben aktiven Periode des Kerns, die bei 394 beginnt, zu verarbeiten.
  • Die Unterbrechung 374 wird zu 376 verzögert und ist anhängig, wenn die Unterbrechung 360 zu verarbeiten ist, beispielsweise zur Zeit 396. Daher wird die Unterbrechung (374376) während der Periode der Kernaktivität, die bei 396 beginnt, zur Verarbeitung abgegeben. Zusätzlich wird die Unterbrechung 382 zu 384 verzögert und ist anhängig, wenn begonnen wird, die Unterbrechung 360 zu verarbeiten. Daher wird die Unterbrechung (382384) während der Periode der Kernaktivität, die bei 396 beginnt, zur Verarbeitung abgegeben. Demgemäß sind drei Unterbrechungen 360, (374376) und (382384) während einer kontinuierlich aktiven Periode des Kerns, die bei 396 beginnt, zu verarbeiten.
  • Die Unterbrechung 366 wird zur Verarbeitung bei 368 verzögert. Keine andere Unterbrechung wird zur Verarbeitung in einem Zeitraum zwischen 366 und 368 eingeplant, so dass die verzögerte Unterbrechung (366368) zur Zeit 392 zu verarbeiten ist, und die Verarbeitung veranlasst den Kern, zur Zeit 392 von inaktiv zu aktiv überzugehen. Der Kern soll zu einem inaktiven Zustand zurückkehren, nachdem die verzögerte Unterbrechung (366368) verarbeitet wurde.
  • Die Unterbrechung 362 wird zu 364 verzögert (362364). Die asynchrone weiche Unterbrechung 378 wird zu 380 verzögert (378380). Die verzögerte Unterbrechung (362364) ist nicht anhängig, während eine andere Unterbrechung verarbeitet werden soll, und wird daher zur Zeit 388, entsprechend 364, verarbeitet, die am Ende ihrer Zeitverzögerung liegt. Die verzögerte Unterbrechung (378380) ist zur Zeit 388 anhängig und wird daher zur Verarbeitung abgegeben, während sich der Kern infolge der Verarbeitung der verzögerten Unterbrechung im aktiven Zustand befindet (362364). Demgemäß werden zwei Unterbrechungen 364 und (378380) in einer aktiven Periode, die bei 388 beginnt, verarbeitet.
  • Insgesamt 6 Übergänge (386396) vom inaktiven zum aktiven Zustand des Kerns ergeben sich aus der Verarbeitung der 10 empfangenen Unterbrechungen. Daher kann die Einführung einer Zeitverzögerung vor der Verarbeitung weicher Unterbrechungen die Gesamtanzahl der Inaktiv-zu-aktiv-Übergänge des Kerns verringern. Die Verringerung der Anzahl der Inaktiv-zu-aktiv-Übergänge des Kerns kann den Gesamtstromverbrauch durch eine Verringerung der Stromkosten in Zusammenhang mit Inaktiv-zu-aktiv-Übergängen des Kerns verringern.
  • 4 ist ein Flussdiagramm 400 eines Verfahrens zur Verarbeitung von Unterbrechungsereignissen durch einen Prozessor gemäß einer Ausführungsform der vorliegenden Erfindung. In Block 410 empfängt der Prozessor eine Unterbrechung von einer Peripherievorrichtung. Um mit einem Entscheidungsdiamanten 420 fortzufahren, sei bemerkt, dass, falls die erste Unterbrechung eine harte Unterbrechung ist, beispielsweise einem harten Echtzeitereignis zugeordnet ist, für das die Zeitverzögerung TN = 0 ist, mit Block 450 fortsetzend die Unterbrechung durch den Prozessor ohne eine absichtliche Zeitverzögerung verarbeitet wird. Um mit einem Entscheidungsdiamanten 460 fortzufahren, sei bemerkt, dass, falls es andere anhängige Unterbrechungen gibt, die anhängigen Unterbrechungen zu Block 450 zurückkehrend verarbeitet werden. Falls beim Entscheidungsdiamanten 460 keine weiteren anhängigen Unterbrechungen vorhanden sind, endet das Verfahren bei 470.
  • Falls beim Entscheidungsdiamanten 420 eine N-te Unterbrechung keine harte Unterbrechung ist, beispielsweise die N-te Unterbrechung keinem harten Echtzeitereignis zugeordnet ist, beginnt, um mit Block 430 fortzufahren, ein entsprechender Zeitverzögerunggeber mit dem Zählen einer entsprechenden Zeitverzögerung TN der N-ten Unterbrechung. Zum Entscheidungsdiamanten 440 übergehend sei bemerkt, dass, wenn der Zeitverzögerunggeber abgelaufen ist, die N-te Unterbrechung mit Block 450 fortfahrend verarbeitet wird. Um mit dem Entscheidungsdiamanten 460 fortzufahren, sei bemerkt, dass, falls es andere anhängige Unterbrechungen gibt, wenn die N-te Unterbrechung verarbeitet wird, bei der Rückkehr zu Block 450 die anhängigen Unterbrechungen verarbeitet werden, beispielsweise vor Ablauf ihrer jeweiligen Zeitverzögerungen infolge der Verarbeitung der N-ten Unterbrechung. Falls es beim Entscheidungsdiamanten 460 keine anderen anhängigen Unterbrechungen gibt, endet das Verfahren bei 470.
  • Ausführungsformen können in vielen verschiedenen Systemtypen implementiert werden. 5 zeigt ein Blockdiagramm eines Systems gemäß einer Ausführungsform der vorliegenden Erfindung. Wie in 5 dargestellt ist, ist ein Mehrprozessorsystem 500 ein Punkt-zu-Punkt-Verbindungssystem und umfasst einen ersten Prozessor 570 und einen zweiten Prozessor 580, die über eine Punkt-zu-Punkt-Verbindung 550 gekoppelt sind. Wie in 5 dargestellt ist, können die Prozessoren 570 und 580 jeweils Mehrkernprozessoren sein, die erste und zweite Prozessorkerne (d. h. Kerne 574a und 574b und Kerne 584a und 584b) aufweisen, wenngleich möglicherweise viel mehr Kerne in den Prozessoren vorhanden sein können. Gemäß Ausführungsformen der vorliegenden Erfindung weist der Prozessor 570 eine Unterbrechungsverzögerungs-Steuereinrichtung 502 und eine Unterbrechungssteuereinrichtung 504 auf und weist der Prozessor 580 eine Unterbrechungsverzögerungs-Steuereinrichtung 506 und eine Unterbrechungssteuereinrichtung 508 auf. Jede Unterbrechungsverzögerungs-Steuereinrichtung 502, 506 dient dazu, eingehende Unterbrechungen zu detektieren. Falls die eingehende Unterbrechung einem harten Echtzeitereignis zugeordnet ist, ist die Unterbrechung zur jeweiligen Unterbrechungssteuereinrichtung 504, 508 zu senden, um sie ohne absichtliche Verzögerung zu verarbeiten.
  • Für eine erste Unterbrechung, die eine weiche Unterbrechung ist, soll die Unterbrechungsverzögerungs-Steuereinrichtung 502, 506 die Verarbeitung der Unterbrechung um eine bestimmte Zeitverzögerung verzögern, bevor sie die erste Unterbrechung zur jeweiligen Unterbrechungssteuereinrichtung 504, 508 sendet, welche die erste Unterbrechung zur Verarbeitung zu einem Kern leitet, es sei denn, dass die erste Unterbrechung anhängig ist, während eine zweite Unterbrechung verarbeitet wird. Falls die erste Unterbrechung anhängig ist, während die zweite Unterbrechung verarbeitet wird, soll die Unterbrechungsverzögerungs-Steuereinrichtung 502, 506 die erste Unterbrechung zur jeweiligen Unterbrechungssteuereinrichtung 504, 508 senden, um sie zur Verarbeitung zum Kern zu leiten, während sich der Kern in einem aktiven Zustand befindet, der gemäß Ausführungsformen der vorliegenden Erfindung durch die Verarbeitung der zweiten Unterbrechung ausgelöst wird.
  • Unter weiterem Bezug auf 5 sei bemerkt, dass der erste Prozessor 570 ferner einen Speichersteuer-Hub (”Memory Controller Hub” – MCH) 572 und Punkt-zu-Punkt-(”Point-to-Point” – P-P)-Schnittstellen 576 und 578 aufweist. Ähnlich weist der zweite Prozessor 580 einen MCH 582 und P-P-Schnittstellen 586 und 588 auf. Wie in 5 dargestellt ist, koppeln die MCH 572 und 582 die Prozessoren mit jeweiligen Speichern, nämlich einem Speicher 532 und einem Speicher 534, die Abschnitte des Systemspeichers (beispielsweise DRAM) sein können, der lokal an den jeweiligen Prozessoren angebracht ist. Der erste Prozessor 570 und der zweite Prozessor 580 können über jeweilige P-P-Verbindungen 562 und 584 mit einem Chipsatz 590 gekoppelt sein. Wie in 5 dargestellt ist, weist der Chipsatz 590 P-P-Schnittstellen 594 und 598 auf.
  • Ferner weist der Chipsatz 590 eine Schnittstelle 592 zum Koppeln des Chipsatzes 590 mit einer Hochleistungsgraphikmaschine 538 über eine P-P-Verbindung 539 auf. Der Chipsatz 590 kann wiederum über eine Schnittstelle 596 mit einem ersten Bus 516 gekoppelt sein. Wie in 5 dargestellt ist, können verschiedene Ein-/Ausgabe-(”Input/Output” – I/O)-Vorrichtungen 514 zusammen mit einer Busbrücke 518, welche den ersten Bus 516 mit einem zweiten Bus 520 koppelt, mit dem ersten Bus 516 gekoppelt werden. Verschiedene Vorrichtungen können mit dem zweiten Bus 520 gekoppelt werden, einschließlich beispielsweise einer Tastatur/Maus 522, von Kommunikationsvorrichtungen 526 und einer Datenspeichereinheit 528 in der Art eines Plattenlaufwerks oder einer anderen Massenspeichervorrichtung, die gemäß einer Ausführungsform Code 530 aufweisen kann. Ferner kann ein Audio-Ein-/Ausgang (”Input/Output” – I/O) 524 mit dem zweiten Bus 520 gekoppelt werden. Eine oder mehrere der Vorrichtungen 514, 522, 524, 526 können gemäß Ausführungsformen der vorliegenden Erfindung durch den Prozessor 570 oder den Prozessor 580 zu verarbeitende Unterbrechungen bereitstellen. Ausführungsformen können in andere Systemtypen aufgenommen werden, einschließlich mobiler Vorrichtungen in der Art eines Smartphones, eines Tablet-Computers, eines Netbooks, eines UltrabooksTM oder dergleichen.
  • Ausführungsformen können in andere Systemtypen einschließlich mobiler Vorrichtungen in der Art eines Mobiltelefons aufgenommen werden. 6 zeigt ein Blockdiagramm eines Systems gemäß einer anderen Ausführungsform der vorliegenden Erfindung. Wie in 6 dargestellt ist, kann das System 600 eine mobile Vorrichtung sein und verschiedene Komponenten aufweisen. Wie in der Ansicht hoher Ebene aus 6 dargestellt ist, steht ein Anwendungsprozessor 610, der eine Zentralverarbeitungseinheit der Vorrichtung sein kann, in Kommunikation mit verschiedenen Komponenten, einschließlich eines Speichers 615. Der Speicher 615 kann gemäß verschiedenen Ausführungsformen sowohl Programm- als auch Datenspeicherabschnitte aufweisen.
  • Der Anwendungsprozessor 610 kann ferner mit einem Ein-/Ausgabesystem 620 gekoppelt werden, das gemäß verschiedenen Ausführungsformen eine Anzeige und eine oder mehrere Eingabevorrichtungen in der Art eines Berührungstastenfelds aufweisen kann, das selbst auf der Anzeige erscheinen kann, wenn verarbeitet wird. Das System 600 kann auch einen integrierten Sensor-Hub (”Integrated Sensor Hub” – ISH) 660 aufweisen, der Daten von einem oder mehreren Sensoren 670 empfangen kann. Gemäß einigen Ausführungsformen weist der integrierte Sensor-Hub eine Unterbrechungsverzögerungs-Steuereinrichtung (”Interrupt Delay Controller” – IDC) 662 zum Detektieren weicher Unterbrechungen und zum Verzögern der Ausführung einer weichen Unterbrechung um eine entsprechende Zeitverzögerung (TN) auf. Falls eine andere Unterbrechung zu verarbeiten ist, während eine Unterbrechung anhängig ist, wird gemäß Ausführungsformen der vorliegenden Erfindung die Unterbrechung verarbeitet, ohne ihre Zeitverzögerung abzuschließen.
  • Der Anwendungsprozessor 610 kann gemäß Ausführungsformen der vorliegenden Erfindung eine Unterbrechungsverzögerungs-Steuereinrichtung (IDC) 602 aufweisen. Die IDC 602 kann eine eingehende harte Unterbrechung (beispielsweise vom Sendeempfänger 640 und/oder vom Basisbandprozessor 630) in Zusammenhang mit einem harten Echtzeitereignis detektieren und ohne absichtliche Verzögerung die harte Unterbrechung zu einer Unterbrechungssteuereinrichtung (nicht dargestellt) senden, welche die Unterbrechung zu einem Kern des Anwendungsprozessors 610 sendet, um sie zu verarbeiten (beispielsweise zu behandeln).
  • Für eine erste Unterbrechung, die eine weiche Unterbrechung ist (beispielsweise vom I/O 620 und/oder vom integrierten Sensor-Hub 660 empfangen), kann die Unterbrechungsverzögerungs-Steuereinrichtung 602 die Verarbeitung der ersten Unterbrechung vor der Abgabe der ersten Unterbrechung an die Unterbrechungssteuereinrichtung um eine erste Zeitverzögerung verzögern, es sei denn, dass die erste Unterbrechung anhängig ist, wenn eine zweite Unterbrechung am ersten Kern verarbeitet wird. Die Unterbrechungssteuereinrichtung soll die erste Unterbrechung zu einem ersten Kern des Anwendungsprozessors 610 senden, um sie zu verarbeiten. Falls die erste Unterbrechung anhängig ist, wenn die zweite Unterbrechung am ersten Kern verarbeitet wird, veranlasst gemäß Ausführungsformen der vorliegenden Erfindung die Verarbeitung der zweiten Unterbrechung die Unterbrechungsverzögerungs-Steuereinrichtung 602, die erste Unterbrechung ohne Abschluss der Zeitverzögerung zur Unterbrechungssteuereinrichtung zu senden, um sie zur Verarbeitung zum ersten Kern zu leiten, während sich der Kern in einem aktiven Zustand befindet, der durch die Verarbeitung der ersten Unterbrechung ausgelöst wurde. Die zweite Unterbrechung kann eine harte Unterbrechung oder eine weiche Unterbrechung sein, deren Zeitverzögerung abgeschlossen ist (beispielsweise ist der Zeitverzögerungszähler abgelaufen).
  • Der Anwendungsprozessor 610 kann auch mit dem Basisbandprozessor 630 koppeln, der Signale in der Art von Sprach- und Datenkommunikationssignalen für die Ausgabe aufbereiten kann und auch eingehende Telefon- und andere Signale aufbereiten kann. Der Basisbandprozessor 630 kann gemäß Ausführungsformen der vorliegenden Erfindung eine IDC 632 aufweisen, die Unterbrechungen von Peripherievorrichtungen 634 empfängt und die Ausführung einer empfangenen weichen Unterbrechung verzögern kann, es sei denn, dass die weiche Unterbrechung anhängig ist, während eine andere Unterbrechung verarbeitet wird. Wie ersichtlich ist, koppelt der Basisbandprozessor 630 mit dem Sendeempfänger 640, der sowohl Empfangs- als auch Sendefähigkeiten ermöglichen kann. Der Sendeempfänger 640 kann wiederum in Kommunikation mit einer Antenne 650 sein, wobei es sich beispielsweise um einen beliebigen Antennentyp handelt, der in der Lage ist, Sprach- und Datensignale über ein oder mehrere Kommunikationsprotokolle zu senden und zu empfangen, wie über ein drahtloses Weitbereichsnetz (beispielsweise ein 3G- oder 4G-Netz) und/oder ein drahtloses lokales Netz wie BLUETOOTHTM oder ein so genanntes Wi-FiTM-Netz gemäß einer IEEE-802.11-Norm (”Institute of Electrical and Electronics Engineers 802.11 Standard”).
  • Wie ersichtlich ist, kann das System 600 ferner eine wiederaufladbare Stromversorgung 625 mit einer wiederaufladbaren Batterie aufweisen, um den Betrieb in einer mobilen Umgebung zu ermöglichen. Wenngleich dies gemäß der Ausführungsform aus 6 mit dieser bestimmten Implementation dargestellt ist, ist der Schutzumfang der vorliegenden Erfindung nicht in dieser Hinsicht beschränkt.
  • 7 ist ein Blockdiagram eines Systems auf einem Chip (SOC) gemäß Ausführungsformen der vorliegenden Erfindung. Das SOC 700 umfasst ein Mehrkernuntersystem 710, ein Modemuntersystem 720, ein Multimediauntersystem 730, eine Systemstruktur 740, eine Stromversorgung 750 und Schnittstellen 760 zur Verbindung mit einer oder mehreren externen Vorrichtungen. Das SOC 700 kann mehrere Aufgaben gleichzeitig ausführen, beispielsweise Modemaufgaben, Multimediaaufgaben und andere Verarbeitungsaufgaben.
  • Das Mehrkernuntersystem 710 weist Mehrkernprozessoren 712 und 714, L1-Cache-Speicher 716 und 718 und einen L2-Cache-Speicher 742. Jeder der Mehrkernprozessoren 712 und 714 kann eine entsprechende Unterbrechungsverzögerungs-Steuereinrichtung (IDC) 702, 704 aufweisen. Jede der Unterbrechungsverzögerungs-Steuereinrichtungen 702, 704 soll eingehende harte Unterbrechungen in Zusammenhang mit harten Echtzeitereignissen (beispielsweise von den Schnittstellen 760) detektieren und nach Empfang jede harte Unterbrechung zu einer jeweiligen Unterbrechungssteuereinrichtung (nicht dargestellt) senden, welche die Unterbrechung zur Verarbeitung zu einem Kern des jeweiligen Prozessors 712, 714 leitet.
  • Für eine erste Unterbrechung, die eine weiche Unterbrechung ist (beispielsweise von Schnittstellen 760 empfangen), soll die Unterbrechungsverzögerungs-Steuereinrichtung 702, 704 um eine erste Zeitverzögerung verzögern und die erste Unterbrechung zur jeweiligen Unterbrechungssteuereinrichtung senden, welche die Unterbrechung zur Verarbeitung zu einem Kern leiten soll, es sei denn, dass die erste Unterbrechung anhängig ist, während die zweite Unterbrechung durch den Kern verarbeitet wird. Falls die erste Unterbrechung anhängig ist, während die zweite Unterbrechung durch den Kern verarbeitet wird, soll die Unterbrechungsverzögerungs-Steuereinrichtung 702, 704 die erste Unterbrechung ohne Abschluss der Zeitverzögerung zur Unterbrechungssteuereinrichtung senden und zur Verarbeitung zum Kern leiten, während sich der Kern gemäß Ausführungsformen der vorliegenden Erfindung in einem durch die Verarbeitung der zweiten Unterbrechung ausgelösten aktiven Zustand befindet.
  • Das Modemuntersystem 720 kann ein Langzeitentwicklungs-(”Long Term Evolution – LTE)-Modem 722 zur schnellen Drahtlos-Datenkommunikation aufweisen. Das Modemuntersystem 720 kann auch ein globales Positionsbestimmungssystem (GPS) 724 und wenigstens zwei Digitale-Signalprozessor-(DSP)-Kerne 726 und 728 aufweisen. Das LTE-Modem 722 kann eine IDC 721 zur Detektion vom Modemuntersystem 720 (beispielsweise vom GPS 724) eingegebener Unterbrechungen und zum Verzögern weicher Unterbrechungen gemäß Ausführungsformen der vorliegenden Erfindung aufweisen.
  • Das Multimediauntersystem 730 kann eine Graphikverarbeitungseinheit (GPU) 732, Audio/Video-Hardwarebeschleuniger 734, einen Digitalsignal-Verarbeitungskern 736 und einen MMX-Prozessor 738, der in der Lage sein kann, beispielsweise Einzelner-Befehl-mehrere-Daten-(”Single Instruction, Multiple Data” – SIMD)-Befehle zu verarbeiten, aufweisen.
  • Andere Ausführungsformen werden nachstehend beschrieben.
  • Bei einem ersten Beispiel umfasst ein Prozessor wenigstens einen Kern, einschließlich eines ersten Kerns. Der Prozessor umfasst auch eine Unterbrechungsverzögerungslogik, um eine erste Unterbrechung zu einer ersten Zeit zu empfangen, die Verarbeitung der ersten Unterbrechung durch den ersten Kern um eine erste Zeitverzögerung zu verzögern, die zur ersten Zeit beginnt, es sei denn, dass die erste Unterbrechung zu einer zweiten Zeit anhängig ist, wenn die Verarbeitung einer zweiten Unterbrechung durch den ersten Kern beginnt, und falls die erste Unterbrechung zur zweiten Zeit anhängig ist, den ersten Kern anzuweisen, vor Abschluss der ersten Zeitverzögerung mit der Verarbeitung der ersten Unterbrechung zu beginnen.
  • Bei einem zweiten Beispiel, das den Prozessor aus Beispiel 1 umfasst, soll die Unterbrechungsverzögerungslogik mehrere Unterbrechungen, einschließlich der ersten Unterbrechung, empfangen, die zur zweiten Zeit anhängig sind, und soll der erste Kern die mehreren anhängigen Unterbrechungen während einer ersten aktiven Periode verarbeiten, die zur zweiten Zeit beginnt, wobei der erste Kern während der gesamten ersten aktiven Periode in einem aktiven Zustand bleibt.
  • Bei einem dritten Beispiel, das den Prozessor aus Beispiel 2 umfasst, soll der erste Kern vom aktiven Zustand in einen inaktiven Zustand übergehen, nachdem die zweite Unterbrechung und die mehreren anhängigen Unterbrechungen verarbeitet wurden.
  • Bei einem vierten Beispiel, das den Prozessor aus Beispiel 1 umfasst, soll der erste Kern in einem aktiven Zustand bleiben, während die erste Unterbrechung und die zweite Unterbrechung verarbeitet werden, und in einen inaktiven Zustand übergehen, nachdem die erste Unterbrechung und die zweite Unterbrechung verarbeitet worden sind.
  • Bei einem fünften Beispiel, das den Prozessor aus Beispiel 1 umfasst, wird die zweite Unterbrechung periodisch empfangen und ist bei jedem Auftreten des Empfangs der zweiten Unterbrechung die zweite Unterbrechung ohne absichtliche Verzögerung durch den ersten Kern zu verarbeiten, und soll die Unterbrechungsverzögerungslogik den ersten Kern anweisen, vor Abschluss einer entsprechenden Zeitverzögerung und während der Kern in einem aktiven Zustand bleibt, mit der Verarbeitung zusätzlicher anhängiger Unterbrechungen zu beginnen.
  • Bei einem sechsten Beispiel, das den Prozessor aus Beispiel 5 umfasst, soll der erste Kern für jedes Auftreten des Empfangs der zweiten Unterbrechung nach Abschluss der Verarbeitung der zweiten Unterbrechung und der zusätzlichen anhängigen Unterbrechungen in einen inaktiven Zustand übergehen.
  • Bei einem siebten Beispiel, das den Prozessor aus Beispiel 1 umfasst, soll die Unterbrechungsverzögerungslogik ferner eine dritte Unterbrechung zu einer dritten Zeit empfangen und der dritten Unterbrechung eine zweite Zeitverzögerung zuweisen und soll die Unterbrechungsverzögerungslogik die Verarbeitung der dritten Unterbrechung von der dritten Zeit um die zweite Zeitverzögerung verzögern, es sei denn, dass die dritte Unterbrechung anhängig ist, während die erste Unterbrechung oder die zweite Unterbrechung verarbeitet wird, und, falls die dritte Unterbrechung anhängig ist, während die erste Unterbrechung oder die zweite Unterbrechung verarbeitet wird, den ersten Kern anweisen, die dritte Unterbrechung ohne Abschluss der zweiten Zeitverzögerung zu verarbeiten.
  • Bei einem achten Beispiel, das den Prozessor aus Beispiel 7 umfasst, soll die Unterbrechungsverzögerungslogik, falls die dritte Unterbrechung nicht anhängig ist, während die erste Unterbrechung oder die zweite Unterbrechung zu verarbeiten ist, den Kern anweisen, die dritte Unterbrechung nach Abschluss der zweiten Zeitverzögerung zu verarbeiten.
  • Bei einem neunten Beispiel, das den Prozessor aus Beispiel 1 umfasst, umfasst die Unterbrechungsverzögerungslogik einen Zähler zum Zählen der ersten Zeitverzögerung.
  • Bei einem zehnten Beispiel umfasst ein System einen dynamischen Direktzugriffsspeicher (DRAM) und einen Prozessor, der einen oder mehrere Kerne und eine Unterbrechungssteuereinrichtung zum Leiten jeder von der einen oder den mehreren empfangenen Unterbrechungen zu einem ersten von dem einen oder den mehreren Kernen umfasst. Der Prozessor umfasst auch eine Unterbrechungsverzögerungs-Steuereinrichtung, die einen oder mehrere Verzögerungszähler zum Zählen einer jeweiligen Zeitverzögerung für die Verarbeitung einer entsprechenden Unterbrechung umfasst, wobei jeder Verzögerungszähler nach dem Empfang der entsprechenden nicht kritischen Unterbrechung durch den Prozessor mit einer jeweiligen Zählung beginnt, und eine Anhängige-Unterbrechung-Abgabelogik, um ansprechend auf eine Ausführung einer anderen Unterbrechung jede anhängige Unterbrechung zur Unterbrechungssteuereinrichtung zu senden, um sie zum ersten Kern zu leiten, während sich der erste Kern in einem aktiven Zustand befindet.
  • Bei einem elften Beispiel, welches das System aus Beispiel 10 umfasst, soll die Unterbrechungsverzögerungs-Steuereinrichtung, falls keine andere Unterbrechung während einer jeweiligen Zeitverzögerung in Zusammenhang mit einer zweiten Unterbrechung zu verarbeiten ist, die Unterbrechung nach Abschluss der Zählung des entsprechenden Verzögerungszählers zur Unterbrechungssteuereinrichtung senden.
  • Bei einem zwölften Beispiel, welches das System aus Beispiel 10 umfasst, soll, wenn die Zählung eines zweiten Verzögerungszählers abgeschlossen wird, die Anhängige-Unterbrechung-Abgabelogik jede anhängige Unterbrechung zur Unterbrechungssteuereinrichtung senden, um sie zu verarbeiten, während sich der erste Kern im aktiven Zustand befindet.
  • Bei einem dreizehnten Beispiel, welches das System aus Beispiel 10 umfasst, soll, nachdem die anhängigen Unterbrechungen verarbeitet worden sind, der entsprechende Kern inaktiv werden.
  • Bei einem vierzehnten Beispiel, welches das System aus Beispiel 10 umfasst, umfasst der Prozessor ferner eine Kritische-Unterbrechung-Detektionslogik, um nach Empfang einer harten Unterbrechung die harte Unterbrechung ohne eine absichtliche Verzögerung zur Unterbrechungssteuereinrichtung zu senden.
  • Bei einem fünfzehnten Beispiel, welches das System aus Beispiel 10 umfasst, umfasst der Prozessor ferner eine Zählerzuweisungslogik, um jeder empfangenen nicht kritischen Unterbrechung einen entsprechenden Verzögerungszähler zuzuweisen.
  • Bei einem sechzehnten Beispiel umfasst ein Verfahren Folgendes: Verarbeiten einer ersten Unterbrechung durch einen Kern eines Prozessors, beginnend an einer ersten Zeit, Zuweisen einer Zeitverzögerung zu einer zu einer zweiten Zeit empfangenen zweiten Unterbrechung durch den Prozessor, Verarbeiten der zweiten Unterbrechung durch den Kern nach dem Ablaufen der zur zweiten Zeit beginnenden Zeitverzögerung, es sei denn, dass die zweite Unterbrechung zur ersten Zeit anhängig ist, und falls die zweite Unterbrechung zur ersten Zeit anhängig ist, Verarbeiten der zweiten Unterbrechung durch den Kern vor dem Ablauf der Zeitverzögerung.
  • Bei einem siebzehnten Beispiel, welches das Verfahren aus Beispiel 16 umfasst, wird, falls die zweite Unterbrechung zur ersten Zeit anhängig ist, die zweite Unterbrechung verarbeitet, während sich der Kern ansprechend auf die Verarbeitung der ersten Unterbrechung in einem aktiven Zustand befindet.
  • Bei einem achtzehnten Beispiel, welches das Verfahren aus Beispiel 16 umfasst, wird nach der Verarbeitung der ersten Unterbrechung und der zweiten Unterbrechung der Kern in einen inaktiven Zustand überführt.
  • Bei einem neunzehnten Beispiel, welches das Verfahren aus Beispiel 16 umfasst, werden, falls mehrere Unterbrechungen zur ersten Zeit anhängig sind, die mehreren Unterbrechungen vor Abschluss einer jeweiligen Zeitverzögerung jeder der mehreren Unterbrechungen zum Kern gesendet, um sie durch den Kern zu verarbeiten, wobei der Kern in einem aktiven Zustand gehalten wird, während die mehreren Unterbrechungen verarbeitet werden.
  • Bei einem zwanzigsten Beispiel, welches das Verfahren aus Beispiel 19 umfasst, wird der Kern in einen inaktiven Zustand überführt, nachdem alle anhängigen Unterbrechungen verarbeitet worden sind.
  • Bei einem einundzwanzigsten Beispiel, welches das Verfahren aus Beispiel 16 umfasst, wird die Zeitverzögerung auf der Grundlage einer oder mehrerer Eigenschaften einer Peripherievorrichtung, von der die zweite Unterbrechung empfangen wird, festgelegt.
  • Bei einem zweiundzwanzigsten Beispiel, welches das Verfahren aus Beispiel 16 umfasst, wird jeder von mehreren Unterbrechungen eine entsprechende Zeitverzögerung zugewiesen, wobei jede der mehreren Unterbrechungen um die entsprechende Zeitverzögerung, die an einer jeweiligen Empfangszeit beginnt, vor einer Verarbeitung zu verzögern ist, es sei denn, dass eine andere Unterbrechung verarbeitet wird.
  • Bei einem dreiundzwanzigsten Beispiel, welches das Verfahren aus Beispiel 22 umfasst, wird, wenn eine bestimmte Unterbrechung beginnt, verarbeitet zu werden, jede anhängige Unterbrechung ohne Abschluss der entsprechenden Zeitverzögerung zur Verarbeitung zum Kern gesendet.
  • Bei einem vierundzwanzigsten Beispiel umfasst eine Vorrichtung Mittel zum Ausführen des Verfahrens nach einem der Beispiele 16–23.
  • Bei einem fünfundzwanzigsten Beispiel weist wenigstens ein computerlesbares Medium Befehle auf, die, wenn sie ausgeführt werden, ein System in die Lage versetzen, das Verfahren nach einem der Beispiele 16–23 auszuführen.
  • Ausführungsformen können in vielen verschiedenen Systemtypen verwendet werden. Beispielsweise kann gemäß einer Ausführungsform eine Kommunikationsvorrichtung dafür eingerichtet werden, die verschiedenen hier beschriebenen Verfahren und Techniken auszuführen. Natürlich ist der Schutzumfang der vorliegenden Erfindung nicht auf eine Kommunikationsvorrichtung beschränkt und können stattdessen andere Ausführungsformen auf andere Vorrichtungstypen zur Verarbeitung von Befehlen oder ein oder mehrere maschinenlesbare Medien, die Befehle aufweisen, die ansprechend darauf, dass sie auf einer Rechenvorrichtung verarbeitet werden, die Vorrichtung veranlassen, eines oder mehrere der hier beschriebenen Verfahren und Techniken auszuführen, gerichtet werden.
  • Ausführungsformen können in Code implementiert werden und auf einem nicht flüchtigen Speichermedium gespeichert werden, worauf Befehle gespeichert sind, die verwendet werden können, um ein System zur Ausführung der Befehle zu programmieren. Das Speichermedium kann einen beliebigen Scheibentyp in der Art von Disketten, optischen Scheiben, Halbleiterlaufwerken (SSD), CD-Nurlesespeichern (CD-ROM), wiederbeschreibbaren CDs (CD-RW) und magnetooptischen Scheiben, Halbleitervorrichtungen in der Art von Nurlesespeichern (ROM), Direktzugriffsspeichern (RAM) in der Art dynamischer Direktzugriffsspeicher (DRAM), statischer Direktzugriffsspeicher (SRAM), löschbarer programmierbarer Nurlesespeicher (EPROM), Flash-Speicher, elektrisch löschbarer programmierbarer Nurlesespeicher (EEPROM), magnetische oder optische Karten oder einen anderen Typ eines Mediums, das für das Speichern elektronischer Befehle geeignet ist, umfassen, ist jedoch nicht darauf beschränkt.
  • Wenngleich die vorliegende Erfindung mit Bezug auf eine beschränkte Anzahl von Ausführungsformen beschrieben wurde, werden Fachleute zahlreiche Modifikationen und Variationen davon erkennen. Es ist vorgesehen, dass die anliegenden Ansprüche alle solche Modifikationen und Variationen einschließen, die innerhalb des Gedankens und des Schutzumfangs der vorliegenden Erfindung liegen.

Claims (25)

  1. Prozessor, welcher Folgendes umfasst: wenigstens einen Kern, einschließlich eines ersten Kerns, und eine Unterbrechungsverzögerungslogik, um Folgendes auszuführen: Empfangen einer ersten Unterbrechung zu einer ersten Zeit, Verzögern der ersten Unterbrechung vor einer Verarbeitung um eine erste Zeitverzögerung, die zur ersten Zeit beginnt, es sei denn, dass die erste Unterbrechung zu einer zweiten Zeit anhängig ist, wenn eine zweite Unterbrechung durch den ersten Kern verarbeitet wird, und falls die erste Unterbrechung zur zweiten Zeit anhängig ist, Anweisen des ersten Kerns, vor Abschluss der ersten Zeitverzögerung mit der Verarbeitung der ersten Unterbrechung zu beginnen.
  2. Prozessor nach Anspruch 1, wobei, wenn mehrere empfangene Unterbrechungen zur zweiten Zeit anhängig sind, der erste Kern die mehreren anhängigen Unterbrechungen während einer ersten aktiven Periode, die zur zweiten Zeit beginnt, verarbeiten soll, wobei der erste Kern während der gesamten ersten aktiven Periode in einem aktiven Zustand bleibt.
  3. Prozessor nach Anspruch 2, wobei der erste Kern vom aktiven Zustand in einen inaktiven Zustand übergehen soll, nachdem die zweite Unterbrechung und die mehreren anhängigen Unterbrechungen verarbeitet wurden.
  4. Prozessor nach Anspruch 1, wobei der erste Kern in einem aktiven Zustand bleiben soll, während die erste Unterbrechung und die zweite Unterbrechung verarbeitet werden, und in einen inaktiven Zustand übergehen soll, nachdem die erste Unterbrechung und die zweite Unterbrechung verarbeitet wurden.
  5. Prozessor nach Anspruch 1, wobei die zweite Unterbrechung periodisch empfangen wird und wobei bei jedem Auftreten des Empfangs der zweiten Unterbrechung die zweite Unterbrechung ohne absichtliche Verzögerung durch den ersten Kern zu verarbeiten ist und die Unterbrechungsverzögerungslogik den ersten Kern anweisen soll, vor Abschluss einer entsprechenden Zeitverzögerung und während der Kern in einem aktiven Zustand bleibt, mit der Verarbeitung jeder zusätzlichen anhängigen Unterbrechung zu beginnen.
  6. Prozessor nach Anspruch 5, wobei ferner für jedes Auftreten des Empfangs der zweiten Unterbrechung nach Abschluss der Verarbeitung der zweiten Unterbrechung und der zusätzlichen anhängigen Unterbrechungen der erste Kern in einen inaktiven Zustand übergehen soll.
  7. Prozessor nach Anspruch 1, wobei die Unterbrechungsverzögerungslogik ferner zu einer dritten Zeit eine dritte Unterbrechung empfangen soll und der dritten Unterbrechung eine zweite Zeitverzögerung zuweisen soll und wobei die Unterbrechungsverzögerungslogik Folgendes ausführen soll: Verzögern der Verarbeitung der dritten Unterbrechung von der dritten Zeit um die zweite Zeitverzögerung, es sei denn, dass die dritte Unterbrechung anhängig ist, während die erste Unterbrechung oder die zweite Unterbrechung verarbeitet wird, und falls die dritte Unterbrechung anhängig ist, während die erste Unterbrechung oder die zweite Unterbrechung verarbeitet wird, Anweisen des ersten Kerns, die dritte Unterbrechung ohne Abschluss der zweiten Zeitverzögerung zu verarbeiten.
  8. Prozessor nach Anspruch 7, wobei, falls die dritte Unterbrechung nicht anhängig ist, während die erste Unterbrechung oder die zweite Unterbrechung zu verarbeiten ist, die Unterbrechungsverzögerungslogik den Kern anweisen soll, die dritte Unterbrechung nach Abschluss der zweiten Zeitverzögerung zu verarbeiten.
  9. Prozessor nach Anspruch 1, wobei die Unterbrechungsverzögerungslogik einen Zähler zum Zählen der ersten Zeitverzögerung umfasst.
  10. System, welches Folgendes umfasst: einen dynamischen Direktzugriffsspeicher (DRAM) und einen Prozessor, der Folgendes umfasst: einen oder mehrere Kerne, eine Unterbrechungssteuereinrichtung zum Leiten von jeder von der einen oder den mehreren empfangenen Unterbrechungen zu einem ersten Kern von dem einen oder den mehreren Kernen und eine Unterbrechungsverzögerungs-Steuereinrichtung, welche Folgendes umfasst: einen oder mehrere Verzögerungszähler zum Zählen einer jeweiligen Zeitverzögerung zur Verarbeitung einer entsprechenden Unterbrechung, wobei jeder Verzögerungszähler nach dem Empfang der entsprechenden Unterbrechung durch den Prozessor mit einer jeweiligen Zählung beginnt, und eine Anhängige-Unterbrechung-Abgabelogik, um ansprechend auf eine Verarbeitung einer ersten Unterbrechung jede anhängige Unterbrechung vor Ablauf der jeweiligen Zeitverzögerung zur Unterbrechungssteuereinrichtung zu senden.
  11. System nach Anspruch 10, wobei, falls während einer jeweiligen Zeitverzögerung in Zusammenhang mit einer zweiten Unterbrechung keine Unterbrechung verarbeitet wird, die Unterbrechungsverzögerungs-Steuereinrichtung die Unterbrechung nach Abschluss der Zählung des entsprechenden Verzögerungszählers zur Unterbrechungssteuereinrichtung senden soll.
  12. System nach Anspruch 10, wobei, wenn die Zählung eines zweiten Verzögerungszählers abgeschlossen wird, die Anhängige-Unterbrechung-Abgabelogik jede anhängige Unterbrechung zur Unterbrechungssteuereinrichtung senden soll, um sie zu verarbeiten, während sich der erste Kern im aktiven Zustand befindet.
  13. System nach Anspruch 10, wobei, nachdem die anhängigen Unterbrechungen verarbeitet worden sind, der entsprechende Kern inaktiv werden soll.
  14. System nach Anspruch 10, wobei der Prozessor ferner eine Unterbrechungsdetektionslogik umfasst, um nach dem Empfang einer harten Unterbrechung die harte Unterbrechung ohne eine absichtliche Verzögerung zur Unterbrechungssteuereinrichtung zu senden.
  15. System nach Anspruch 10, wobei der Prozessor ferner eine Zählerzuweisungslogik umfasst, um jeder empfangenen weichen Unterbrechung einen entsprechenden Verzögerungszähler zuzuweisen.
  16. Verfahren, welches folgende Schritte umfasst: Verarbeiten einer ersten Unterbrechung durch einen Kern eines Prozessors, beginnend an einer ersten Zeit, Zuweisen einer Zeitverzögerung zu einer zu einer zweiten Zeit empfangenen zweiten Unterbrechung durch den Prozessor, Verarbeiten der zweiten Unterbrechung durch den Kern nach dem Ablaufen der zur zweiten Zeit beginnenden Zeitverzögerung, es sei denn, dass die zweite Unterbrechung zur ersten Zeit anhängig ist, und falls die zweite Unterbrechung zur ersten Zeit anhängig ist, Verarbeiten der zweiten Unterbrechung durch den Kern vor dem Ablauf der Zeitverzögerung.
  17. Verfahren nach Anspruch 16, wobei, falls die zweite Unterbrechung zur ersten Zeit anhängig ist, die zweite Unterbrechung verarbeitet wird, während sich der Kern ansprechend auf die Verarbeitung der ersten Unterbrechung in einem aktiven Zustand befindet.
  18. Verfahren nach Anspruch 16, wobei ferner nach der Verarbeitung der ersten Unterbrechung und der zweiten Unterbrechung der Kern in einen inaktiven Zustand überführt wird.
  19. Verfahren nach Anspruch 16, wobei ferner, falls mehrere Unterbrechungen zur ersten Zeit anhängig sind, die mehreren Unterbrechungen vor Abschluss einer jeweiligen Zeitverzögerung jeder der mehreren Unterbrechungen zum Kern gesendet werden, um sie durch den Kern zu verarbeiten, wobei der Kern in einem aktiven Zustand gehalten wird, während die mehreren Unterbrechungen verarbeitet werden.
  20. Verfahren nach Anspruch 19, wobei ferner, nachdem alle anhängigen Unterbrechungen verarbeitet wurden, der Kern in einen inaktiven Zustand überführt wird.
  21. Verfahren nach Anspruch 16, wobei die Zeitverzögerung auf der Grundlage einer oder mehrerer Eigenschaften einer Peripherievorrichtung, von der die zweite Unterbrechung empfangen wird, festgelegt wird.
  22. Verfahren nach Anspruch 16, welches ferner Folgendes umfasst: Zuweisen einer entsprechenden Zeitverzögerung zu jeder von mehreren Unterbrechungen, wobei jede der mehreren Unterbrechungen um die entsprechende Zeitverzögerung, die an einer jeweiligen Empfangszeit beginnt, vor einer Verarbeitung zu verzögern ist, es sei denn, dass eine andere Unterbrechung verarbeitet wird.
  23. Verfahren nach Anspruch 22, wobei ferner, wenn eine bestimmte Unterbrechung beginnt, verarbeitet zu werden, jede anhängige Unterbrechung ohne Abschluss der entsprechenden Zeitverzögerung zur Verarbeitung zum Kern gesendet wird.
  24. Vorrichtung, welche Mittel zum Ausführen des Verfahrens nach einem der Ansprüche 16–23 umfasst.
  25. Wenigstens ein computerlesbares Medium mit Befehlen, die, wenn sie ausgeführt werden, ein System in die Lage versetzen, das Verfahren nach einem der Ansprüche 16–23 auszuführen.
DE112014006501.3T 2014-03-24 2014-03-24 Synchronisierung der Unterbrechungsverarbeitung zur Verringerung des Stromverbrauchs Pending DE112014006501T5 (de)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/CN2014/073926 WO2015143594A1 (en) 2014-03-24 2014-03-24 Syncronization of interrupt processing to reduce power consumption

Publications (1)

Publication Number Publication Date
DE112014006501T5 true DE112014006501T5 (de) 2017-01-05

Family

ID=54193839

Family Applications (1)

Application Number Title Priority Date Filing Date
DE112014006501.3T Pending DE112014006501T5 (de) 2014-03-24 2014-03-24 Synchronisierung der Unterbrechungsverarbeitung zur Verringerung des Stromverbrauchs

Country Status (8)

Country Link
US (1) US10089263B2 (de)
EP (2) EP4086776A1 (de)
JP (1) JP2017509059A (de)
KR (1) KR20160110509A (de)
CN (1) CN106030559A (de)
DE (1) DE112014006501T5 (de)
RU (1) RU2651238C2 (de)
WO (1) WO2015143594A1 (de)

Families Citing this family (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9208113B2 (en) * 2013-01-15 2015-12-08 Apple Inc. Deferred inter-processor interrupts
JP6489751B2 (ja) * 2014-03-27 2019-03-27 キヤノン株式会社 データ処理装置とその制御方法、及びプログラム
US9904637B2 (en) * 2014-11-26 2018-02-27 Qualcomm Incorporated In-band interrupt time stamp
US10585826B2 (en) * 2016-01-25 2020-03-10 Advanced Micro Devices, Inc. Using processor types for processing interrupts in a computing device
US10747298B2 (en) * 2017-11-29 2020-08-18 Advanced Micro Devices, Inc. Dynamic interrupt rate control in computing system
US11030133B2 (en) 2018-08-30 2021-06-08 Qualcomm Incorporated Aggregated in-band interrupt based on responses from slave devices on a serial data bus line
LU100947B1 (en) * 2018-09-27 2020-03-27 Nanopower As Device connection system and method of operation
CN111723032B (zh) * 2019-03-21 2021-09-24 杭州宏杉科技股份有限公司 一种中断管控方法及电子设备
FR3094697B1 (fr) 2019-04-02 2021-03-19 Safran Helicopter Engines Installation propulsive hybride pour un aéronef
JP7374622B2 (ja) * 2019-06-17 2023-11-07 キヤノン株式会社 情報処理装置
CN110489089B (zh) * 2019-08-15 2022-12-30 孟庆瑞 基于中断管理框架的嵌入式***低功耗控制方法及***

Family Cites Families (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0474229A (ja) * 1990-07-17 1992-03-09 Toshiba Corp 情報処理装置
GB2264794B (en) * 1992-03-06 1995-09-20 Intel Corp Method and apparatus for automatic power management in a high integration floppy disk controller
US5708817A (en) * 1995-05-31 1998-01-13 Apple Computer, Inc. Programmable delay of an interrupt
US5905913A (en) * 1997-04-24 1999-05-18 International Business Machines Corporation System for collecting a specified number of peripheral interrupts and transferring the interrupts as a group to the processor
US6065089A (en) * 1998-06-25 2000-05-16 Lsi Logic Corporation Method and apparatus for coalescing I/O interrupts that efficiently balances performance and latency
US6115779A (en) * 1999-01-21 2000-09-05 Advanced Micro Devices, Inc. Interrupt management system having batch mechanism for handling interrupt events
US6529986B1 (en) * 1999-01-26 2003-03-04 3Com Corporation Interrupt optimization using storage time for peripheral component events
US6477600B1 (en) * 1999-06-08 2002-11-05 Intel Corporation Apparatus and method for processing isochronous interrupts
US6629252B1 (en) * 1999-10-28 2003-09-30 International Business Machines Corporation Method for determining if a delay required before proceeding with the detected interrupt and exiting the interrupt without clearing the interrupt
US7478186B1 (en) * 2004-06-03 2009-01-13 Integrated Device Technology, Inc. Interrupt coalescer for DMA channel
JP2009098972A (ja) * 2007-10-17 2009-05-07 Toshiba Corp 割り込み制御方法、および割り込みシステム
US8199758B2 (en) * 2008-02-13 2012-06-12 Qualcomm Incorporated Variable abort timer
EP2166457B1 (de) 2008-09-12 2014-04-23 TELEFONAKTIEBOLAGET LM ERICSSON (publ) Unterbrechungssteuerung und Betriebsverfahren
US10521265B2 (en) * 2008-09-19 2019-12-31 Microsoft Technology Licensing, Llc Coalescing periodic timer expiration in guest operating systems in a virtualized environment
US8612998B2 (en) * 2010-09-23 2013-12-17 Intel Corporation Coordinating device and application break events for platform power saving
US8244946B2 (en) * 2009-10-16 2012-08-14 Brocade Communications Systems, Inc. Interrupt moderation
JP5318139B2 (ja) * 2011-03-24 2013-10-16 株式会社東芝 制御装置およびプログラム
US9311137B2 (en) * 2012-09-28 2016-04-12 International Business Machines Corporation Delaying interrupts for a transactional-execution facility

Also Published As

Publication number Publication date
EP3123343A4 (de) 2017-11-22
KR20160110509A (ko) 2016-09-21
EP3123343A1 (de) 2017-02-01
WO2015143594A8 (en) 2016-08-04
JP2017509059A (ja) 2017-03-30
US20170161096A1 (en) 2017-06-08
RU2651238C2 (ru) 2018-04-18
US10089263B2 (en) 2018-10-02
EP4086776A1 (de) 2022-11-09
CN106030559A (zh) 2016-10-12
WO2015143594A1 (en) 2015-10-01
RU2016134601A3 (de) 2018-03-01
RU2016134601A (ru) 2018-03-01

Similar Documents

Publication Publication Date Title
DE112014006501T5 (de) Synchronisierung der Unterbrechungsverarbeitung zur Verringerung des Stromverbrauchs
DE102013104328B4 (de) Aufgabenzuteilung in großen und kleinen Kernen
DE102009043411B4 (de) Bereitstellen eines Zurückstellungsmechanismus für "gepostete" Interrupt-Transaktionen
DE102020120019A1 (de) Proaktive di/dt-spannungs-dachabfall-abschwächung
DE102014011332B4 (de) Priorisieren von anweisungen basierend auf typ
DE60110847T2 (de) Rechnersystem mit niedrigem energieverbrauch
DE112011103193B4 (de) Bereitstellung einer Pro-Kern-Spannungs-und Frequenzsteuerung
US9886077B2 (en) Processor management via thread status
DE112008000603B4 (de) Verfahren zum Steuern von Kernarbeitsakten unter Verwendung von Niedrigleistungsmodi
DE112011103194B4 (de) Koordinieren von Gerät- und Anwendungsunterbrechungsereignissen zum Plattformenergiesparen
DE112017000721T5 (de) Verfahren, einrichtung und befehle für thread-aussetzung auf benutzerebene
US10592210B2 (en) Dynamic evaluation and adaption of hardware hash function
DE102020102783A1 (de) Verfahren und einrichtungen zum verbessern einer leistungsdatensammlung einer hochleistungsberechnungsanwendung
DE102010019487A1 (de) Speichervorrichtung, Datenverarbeitungsvorrichtung und Verfahren
DE102018125236A1 (de) System, Vorrichtung und Verfahren zum Selbsstest vor Ort in einem Diagnose-Ruhezustand
DE102010034555A1 (de) Bereitstellen von Zustandsspeicher in einem Prozessor für Systemmanagement-Modus
DE112012000749T5 (de) Techniken zum Verwalten des Stromverbrauchszustands eines Prozessors
DE112019000662T5 (de) System, Vorrichtung und Verfahren für ein Handschlag-Protokoll für Niedrigleistungszustandsübergänge
DE102013104329A1 (de) Aufgabenzuteilung in großen und kleinen Kernen
DE112017006568T5 (de) Auslegung einer Basistaktfrequenz eines Prozessors auf der Basis von Nutzungsparametern
DE112013006241T5 (de) Techniken für Plattform-Arbeitszyklus-Wechsel
DE112017003080T5 (de) Prozessor mit gleichzeitigem kern und gewebeausgang aus einem zustand mit geringer energie
DE102018129330A1 (de) System, Vorrichtung und Verfahren zur prozessorexternen Überschreibung der Hardwareleistungszustandssteuerung eines Prozessors
DE102019105881A1 (de) Technologien zur bereitstellung von effizienter detektion leerlaufender abfrageschleifen
DE112006000386B4 (de) Vorrichtung und Verfahren zur Steuerung der Sequenz der Taktverteilung an Taktverteilungsbereiche

Legal Events

Date Code Title Description
R012 Request for examination validly filed
R016 Response to examination communication