DE10297598T5 - Mechanismus zum Abschätzen und Steuern von di/dt-induzierten Spannungsänderungen bei Energieversorgungen - Google Patents

Mechanismus zum Abschätzen und Steuern von di/dt-induzierten Spannungsänderungen bei Energieversorgungen Download PDF

Info

Publication number
DE10297598T5
DE10297598T5 DE2002197598 DE10297598T DE10297598T5 DE 10297598 T5 DE10297598 T5 DE 10297598T5 DE 2002197598 DE2002197598 DE 2002197598 DE 10297598 T DE10297598 T DE 10297598T DE 10297598 T5 DE10297598 T5 DE 10297598T5
Authority
DE
Germany
Prior art keywords
voltage
current
adder
inputs
unit
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
DE2002197598
Other languages
English (en)
Other versions
DE10297598B4 (de
Inventor
Edward T. San Jose Grochowski
David Portland Sager
Vivek San Jose Tiwari
Ian Portland Young
David J. Fremont Ayers
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 DE10297598T5 publication Critical patent/DE10297598T5/de
Application granted granted Critical
Publication of DE10297598B4 publication Critical patent/DE10297598B4/de
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • G06F1/3234Power saving characterised by the action undertaken
    • G06F1/3296Power saving characterised by the action undertaken by lowering the supply or operating voltage
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/30Circuit design
    • G06F30/36Circuit design at the analogue level
    • G06F30/367Design verification, e.g. using simulation, simulation program with integrated circuit emphasis [SPICE], direct methods or relaxation methods
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2119/00Details relating to the type or aim of the analysis or the optimisation
    • G06F2119/06Power analysis or power optimisation
    • 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

Abstract

System, das Folgendes umfaßt:
– ein Energieversorgungsnetzwerk, um Leistung in einem spezifizierten Spannungsbereich bereitzustellen, wobei das Netzwerk durch eine Antwortfunktion charakterisiert ist, und
– eine Einrichtung, um Leistung aus dem Netzwerk zu ziehen, wobei die Einrichtung Folgendes umfaßt:
– ein erstes Schieberegister, um Werte zu speichern, welche eine Abfolge von Stromamplituden darstellen, die von der Einrichtung in aufeinanderfolgenden Taktzyklen gezogen werden,
– einen Addierer mit gewichteten Eingängen, um die Antwortfunktion des Energieversorgungsnetzwerks wiederzugeben, wobei der Addierer eine gewichtete Summe der Abfolge der Stromamplituden ermittelt, um eine Spannung abzuschätzen, die an die Einrichtung abgegeben wird.

Description

  • Hintergrund der Erfindung
  • Technisches Gebiet
  • Die vorliegende Erfindung betrifft Energieversorgungen und insbesondere Mechanismen zum Simulieren der Geschwindigkeit, mit der sich die Spannungen in der Energieversorgung in Abhängigkeit des Strombedarfs von integrierten Schaltungen ändern.
  • Technischer Hintergrund
  • Über die letzten 25 Jahre ist der Leistungsaufnahme für integrierte Schaltungen, wie Mikroprozessoren, von weniger als 1 Watt bis über 100 Watt angestiegen. Der drastische Anstieg in der Leistung ist ein Ergebnis der Transistorgrößen, wodurch viel mehr Transistoren auf einem Chip hervorgebracht wurden, die bei viel höheren Frequenzen betrieben werden. Herkömmlicherweise wurde die Spannung entsprechend skaliert, um die Leistung auf handhabbare Niveaus herabzusetzen. Als jedoch die Versorgungsspannungen 1 Volt erreichten, war eine weitere große Verringerung der Spannung nicht zu erwarten, um damit für eine zusätzliche Leistungsverringerung zu sorgen. Die folgende Diskussion bezieht sich auf Mikroprozessoren. Es ist jedoch zu verstehen, daß jegliche integrierte Schaltungen, die bei hohen Frequenzen betrieben werden und die sich verändernden Arbeitsbelastungen ausgesetzt werden, auch Gegenstand ähnliche Probleme sind.
  • Ein Mikroprozessor, der 100 Watt aufnimmt, erfordert eine Energieversorgung, einen Spannungsregler und ein Energieverteilungsnetzwerk, das in der Lage ist, 100 Watt zu liefern, sowie ein thermisches Lösungskonzept (Gehäuse, Kühlkörper und Lüfter), das in der Lage ist, die erzeugte Wärme abzuführen. Solche Komponenten sind kostenintensiv und es ist nicht damit zu rechnen, daß sie den höheren Leistungsniveaus so angepaßt werden können, wie die Transistorabmessungen schrumpfen.
  • Zusätzlich zu den absoluten Leistungsniveaus sind Änderungen der Leistungsniveaus problematisch. Insbesondere können Stromfluktuationen, die mit schnellen Änderungen in dem Leistungsniveau verbunden sind, bewirken, daß die von der Einrichtung gesehene Spannung sich aus dem spezifizierten Bereich bewegt. Ein hypothetischer 100 Watt-Mikroprozessor, der bei 1,0 Volt betrieben wird, zieht 100 A. Um einen korrekten Betrieb der Schaltungen sicherzustellen, muß ein Spannungsregulator und ein Energieverteilungsnetzwerk eine Versorgungsspannung innerhalb von ± 5% aufrechterhalten. Das bedeutet, daß eine Peak-to-Peak-Welligkeit von nicht mehr als 100 mW toleriert werden kann, unabhängig davon, was der Mikroprozessor (oder die ablaufende Software) macht. Ein ideales Energieverteilungsnetzwerk besitzt eine ausreichende Kapazität und ausreichend kleine Induktivität und Widerstand, um die Versorgungsspannung innerhalb von 100 mV aufrechtzuerhalten, selbst wenn sich der Versorgungsstrom des Mikroprozessors innerhalb weniger Nanosekunden drastisch ändert. Dieses letztere Problem wird als di/dt-Problem nach der Definition der Induktivität V = L×di/dt genannt. V ist die Spannung über einer Induktivität vom Wert L, wenn diese einer Stromänderung di/dt ausgesetzt ist. Tatsächliche Energieverteilungsnetzwerke stellen derzeit diese idealen Eigenschaften nicht zur Verfügung.
  • Das Abschwächen der Effekte von di/dt auf die Spannungsniveaus wurde zunehmend schwieriger, als Leistungsmanagementtechniken, wie das Clock-Gating, bei den Mikroprozessorkonstruktionen entwickelt wurden. Zum Beispiel kann eine Einheit mit hohem Leistungsbedarf, wie die Ausführungseinheit für Fließkomaperationen, mit einer Schaltung ausgestattet sein, welche den Takt anschaltet, wenn die Einheit aktiv ist und den Takt ausschaltet, wenn die Einheit inaktiv ist. Clock-Gating kann mit einer extrem feinen Granulierung implementiert werden – Einheit für Einheit und Pipeliningstufe für Pipeliningstufe –, was zu einer großen Anzahl von Clock-Gating-Signalen führt. Diese Technik minimiert die Leistungsaufnahme in inaktiven Einheiten, führt jedoch zu großen Veränderungen in den Gesamtleistungsniveaus, die von der ablaufenden Software abhängen.
  • Die vorliegende Erfindung richtet sich an diese und andere Probleme, die mit Energieversorgungsnetzwerken verbunden sind.
  • Kurze Beschreibung der Zeichnungen
  • Die vorliegende Erfindung kann mit Bezug auf die folgenden Zeichnungen verstanden werden, in denen gleiche Elemente durch gleiche Nummern gekennzeichnet sind. Diese Zeichnungen dienen zur Darstellung ausgewählter Ausführungsformen der vorliegenden Erfindung und sind nicht dazu bestimmt, den Umfang der Erfindung zu beschränken.
  • 1 ist ein Schaltdiagramm eines elektrischen Modells, welches ein Energieverteilungsnetzwerk darstellt, das zum Gebrauch mit einem Prozessor geeignet ist.
  • 2 stellt eine Sprungantwort und eine Impulsantwort für ein Energieverteilungsnetzwerk der 1 dar.
  • 3 ist ein Ablaufdiagramm, das eine Ausführungsform eines Verfahrens gemäß der vorliegenden Erfindung darstellt zum Simulieren von Spannungsänderungen in einer integrierten Schaltung.
  • 4 ist eine schematische Darstellung des Verfahrens, das in 3 gezeigt ist.
  • 5 stellt den Ausgang eines Leistungssimulators für einen Prozessor dar, der einen Block eines Codes über etwa 2000 Taktzyklen ausführt.
  • 6 stellt die Versorgungsspannung des Prozessors, der in 5 simuliert wird, über das gleiche Intervall dar, wie es unter Verwendung eines Simulators gemäß der vorliegenden Erfindung bestimmt wurde.
  • 7 ist ein Blockdiagramm, welches eine Ausführungsform eines Computersystems darstellt, bei dem ein di/dt-Steuermechanismus eingesetzt ist.
  • 8A ist ein Blockdiagramm einer Ausführungsform einer di/dt-Steuerung gemäß der vorliegenden Erfindung.
  • 8B bis 8E sind Blockdiagramme verschiedener Ausführungsformen der Strom-Spannungs-Berechnungseinheit der 8A.
  • 9 stellt eine Simulation der Ausgabeleistung des Prozessors der 7 dar, welcher unter Steuerung der Stromsteuereinheit der 8A betrieben wird.
  • 10 stellt die Änderung in der Versorgungsspannung des Prozessors dar, der in 8A simuliert wird, über dem gleichen Intervall.
  • 11 stellt eine Simulation der Änderung der Versorgungsspannung gegenüber der Leistung dar, wie sie unter Verwendung eines abgeschnittenen Faltungsintervalls bestimmt wurde.
  • 12 stellt eine Simulation der Änderung der Versorgungsspannung gegenüber der Performance dar, wie sie unter Verwendung eines abgeschnittenen Faltungsintervalls bestimmt wurde.
  • Detaillierte Beschreibung der Erfindung
  • Ein Mikroarchitektur-Simulator, wie ein SimpleScalar oder SMTSIM, umfaßt ein Modell einer Mikroprozessor-Pipeline und einer Steuerlogik, sowie ein Architektur-Simulator, um den Befehlsfluß durch die Mikroprozessor-Pipeline zu simulieren. Der Simulator bestimmt, wieviele Takte benötigt werden, um einen vorgegebenen Bewertungstest auszuführen, und erzeugt eine Statistik über die Vorkommnisse wie Pipelinestalls, Cash-Fehler, falsch vorhergesagte Äste und dergleichen. Solche Simulatoren sind gut bekannt und intensiv in der Literatur diskutiert, vgl. z.B. D. Burger und T.M. Austin, "The SimpleScalar Toolset, Version 2.0", Computer Architekture News, Band 25, Nr. 3 Juni 1997, Seiten 13–25, oder D.M. Tullsen, "Simulation and Modeling of a Simultaneous Multithreading Processor", 22nd Annual Computer Measurement Group Conference, Dezember 1996.
  • Diese und andere Simulatoren können erweitert werden, um die Leistungsaufnahme abzuschätzen, einschließlich dem Effekt des Clock-Gating. Beispielsweise kann der Simulator auf jedem Taktintervall bestimmen, welche Einheiten und Pipelinezustände aktiv sind. Der Simulator kann die Gesamtleistungsaufnahme während des Takts durch Aufaddieren der Wirkleistung und der Blindleistung der Einheiten/Pipelinezustände ("Blöcke"), die angeschaltet bzw. ausgeschaltet sind, berechnen. Die Wirk- und Blindleistung für jeden Block kann auf low-level-Schaltungssimulatoren, Abschätzungen, die von Schaltungsdesignern zur Verfügung gestellt werden, Messungen, die auf tatsächlichen Schaltungen beruhen, und dgl. basieren.
  • Entsprechend einer Ausführungsform der vorliegenden Erfindung wird die Spannung der Energieversorgung, welche an einen Prozessor abgegeben wird, aus dem Ausgang einer Leistungssimulation, unter Verwendung eines elektrischen Modells eines Energieversorgungsnetzwerks für den Prozessor in Verbindung mit geeigneten Antwortfunktionen für das Verteilungssystem simuliert.
  • 1 zeigt ein elektrisches Modell eines Energieversorgungsnetzwerks 100 für einen High-Performance-Mikroprozessor. Das Modell umfaßt Entkopplungskapazitäten 110(a) bis 110(c) auf dem Chip, in dem Gehäuse bzw. in dem Spannungsregler. Außerdem sind parasitäre Induktivitäten 120(a) bis 120(d) und Widerstände 130(a) bis 130(d) gezeigt, die mit dem Gehäuse, dem Sockel, der Schaltungsplatine und Einrichtungen in dem Spannungsregulator verbunden sind. Der Mikroprozessor wird als eine variable Stromsenke 140 nachgebildet und der Rest des Spannungsregulators wird als eine ideale Spannungsquelle 150 nachgebildet. Die Werte der Komponenten sind so gewählt, daß sie zu denen in dem speziellen System, welches nachgebildet wird, repräsentativ sind. Die Konstruktion solcher Modelle ist beschrieben in D.J. Herrell, B. Beker, "Modelling of Power Distribution Systems for High-Performance Microprocessors", IEEE Transactions on Advanced Packing, Band 22, Ausgabe 3, August 1999, Seiten 240–248.
  • 2 stellt die simulierte Antwort des Energieversorgungsnetzwerks 100 auf das Anlegen eines Stromsprung von 25 A (nicht gezeigt) dar. Ein fortwährender Stromzuwachs von 25 A wird auf das Energieversorgungsnetzwerk 100 angewandt und die Antwort (Sprungantwort 210) der Versorgungsspannung, wie sie der Mikroprozessor sieht, wird nachgebildet. Die Sprungantwort 210 kann beispielsweise durch Ablauf eines Spice oder einer vergleichbaren Simulation auf dem Netzwerk 100 ermittelt werden.
  • Die horizontale Achse in 2 ist in eine Abfolge von Zeitintervallen aufgeteilt. Die Intervalle können beispielsweise den Taktzyklen des Prozessors entsprechen, der durch das Energieverteilungssystem 100 betrieben wird. Für die offenbarte Simulation entspricht jedes Intervall einem Taktzyklus von 0,3 Nanosekunden (ns), um die Antwort auf einen mit 3,3 GHz getak teten Prozessor darzustellen. Die Sprungantwort 210 bricht ein und "schwingt nach" aufgrund der Induktivität und der Kapazität des Energieverteilungsnetzwerks 100. Sie erreicht ein lokales Minimum 220 etwa 30 Takte nach dem Anfang des Stromsprungs. Zwei exponentiell abklingende sinusförmige Signale sind in der Sprungantwort über dem simulierten Intervall erkennbar. Ein Hochfrequenzbeitrag ist für das lokale Minimum 220 verantwortlich. Dieser Beitrag kann RLC-Resonanzen zugeschrieben werden, die mit den Komponenten 110(a) usw. auf dem Chip verknüpft sind. Eine Beitrag mit niedrigerer Frequenz ist für ein zweites lokales Minimum 250 verantwortlich. Dieser Beitrag kann RLC-Resonanzen zugeordnet werden, die mit dem Gehäuse und/oder Verbindungskomponenten 110(b), 120(a), 130(a) usw. verknüpft sind. Ein Beitrag mit noch niedrigerer Frequenz, der mit den Energieversorgungskomponenten verknüpft ist, kann auftreten, wenn das simulierte Intervall ausgedehnt wird.
  • Eine Impulsantwort 230 ist auch in 2 gezeigt. Hier stellt die Impulsantwort 230 die Antwort des Energieversorgungsnetzwerks 100 auf einen einzelnen 25 A Puls von 0,3 ns Dauer dar. Die Impulsantwort 230 ist proportional und zur ersten Ableitung der Sprungantwort 210. Sie kann aus der Sprungantwort 210 berechnet werden, indem man die Differenz zwischen aneinandergrenzenden Ausführungen der Stufenfunktion 210 betrachtet. Alternativ kann sie direkt durch Simulieren der Antwort des Systems 100 auf einen Puls von 0,3 ns mit einer Amplitude von 25 A berechnet werden.
  • Die Sprungantwort 210 und die Impulsantwort 230 sind Beispiele von Antwortfunktionen, die benutzt werden können, um das Verhalten des Energieversorgungssystems auf eine elektrische Anregung zu charakterisieren.
  • Eine Ausführungsform der vorliegenden Erfindung stellt einen Mechanismus zum Ermitteln der von dem Prozessor gesehenen Spannung als eine Funktion seiner unterschiedlichen Aktivität über die Zeit zur Verfügung. Die Aktivität kann als eine Stromwellenform oder als diskrete Strompulse dargestellt werden. Diese können durch einen Simulator zur Verfügung gestellt werden, wie ein SimpleScalar oder SMTSIM, das weiterentwickelt wurde, um die Effekte der Leistungsaufnahme zu simulieren. Wie nachfolgend im größeren Detail beschrieben wird, kann die Aktivität auch durch einen in Betrieb befindlichen Prozessor zur Verfügung gestellt werden. Im letzteren Fall ist ein Mechanismus vorgesehen, um die Effekte der di/dt-induzierten Spannungsänderungen zu dämpfen.
  • Der offenbarte Mechanismus beruht teilweise auf der Beobachtung, daß das Energieversorgungsnetzwerk 100 in grober Näherung ein lineares Netzwerk ist. Lineare Systeme sind durch zwei Eigenschaften charakterisiert: (1) das Skalieren einer Eingabe in das System (Stromstufe oder Pulsamplitude) um einen bestimmten Betrag bewirkt, daß der Ausgang sich proportional in der Größe ändert; und (2) das Anlegen einer Linearkombination von zwei Eingängen an das System erzeugt den gleichen Ausgang, wie wenn man die Linearkombination der Ausgänge nimmt, die von dem System in Reaktion auf jeden einzelnen Eingang erzeugt werden (Superposition). Die Skalierungseigenschaft kann mathematisch als f(c×x)=c×f(x) dargestellt werden, wobei c eine Konstante ist. Beispielsweise führt eine Verdoppelung der Amplitude in der Eingangsstromstufe in 2 auf 50 A näherungsweise zu einer Verdoppelung der Tiefe des lokalen Minimums 220. Die Superposition kann mathematisch als f(x+y)=f(x)+f(y) dargestellt werden. In dem Beispiel der 2 bedeutet dies, daß die Antwort des Verteilungsnetzwerks 100 auf einen ersten und einen zweiten Stromimpuls im wesentlichen approximiert wird durch die Summe der Antworten des Verteilungsnetzwerks 100 auf den ersten Stromimpuls und seinen Antwort auf den zweiten Stromimpuls, der einem Intervall folgt, welches den Abstand zwischen dem ersten und dem zweiten Stromimpuls darstellt.
  • 3 ist ein Ablaufdiagramm, das eine Ausführung eines Verfahrens 300 gemäß der vorliegenden Erfindung darstellt, um die Spannungsantwort eines Energieverteilungsnetzwerks auf ein Aktivitätsprofil eines integrierten Schaltkreises abzuschätzen. Gemäß der vorliegenden Erfindung wird ein Aktivitätsprofil für das System bestimmt 310. Das Aktivitätsprofil kann eine Stromwellenform, eine Abfolge von Strompulsen oder ein vergleichbarer Ausgang eines Simulators, wie vorhergehend beschrieben, sein. Wenn ein Prozessor simuliert wird, kann das Aktivitätsprofil aus dem Ausgang eines Simulators in Reaktion auf eine bestimme Codesequenz über eine gegebene Periode genommen werden. Beispielsweise kann eine Abfolge von Strompulsen (ein Puls pro Takt), welche den Strom darstellen, der von den aktiven und inaktiven Einheiten eines Prozessors in einer Abfolgen von Taktzyklen ("Intervallen") gezogen wird, in der oben beschriebenen Weise berechnet werden. Für einen echten Prozessor kann das Aktivitätsprofil zur Verfügung gestellt werden, indem der Stromverbrauch, z.B. auf einer Takt für Takt-Basis, verfolgt wird. Eine Stromwellenform, die das Aktivitätsprofil des Prozessors darstellt, kann in einer Abfolge von Strompulsen aufgelöst werden. In beiden Fällen wird das Aktivitätsprofil in ausgewählten Intervallen durch eine Größe (Amplitude des Strompulses) und einem Offset (Zeit des Intervalls gegenüber einer Referenzzeit) charakteri siert 320. Für einen Mikroprozessor kann das ausgewählte Intervall einem oder mehreren Taktintervallen entsprechen. In der nachfolgenden Diskussion wird für das Aktivitätsprofil bei einem ausgewählten Intervall auf einen Puls Bezug genommen.
  • Die Impulsantwort eines Zielenergieversorgungsnetzwerks, das eine Einrichtung, z.B. ein Mikroprozessor, umfaßt, wird bestimmt 330. In einer Ausführungsform des Verfahrens 300 kann die Anwendung eines Stromsprungs mit einer bestimmten Größe und einer bestimmten Dauer auf das Zielnetzwerk simuliert werden und eine Impulsantwort aus der simulierten Spannungsantwort bestimmt werden. Alternativ kann die Antwort des Energieversorgungsnetzwerks auf einen Stromimpuls mit einer Länge, die einem ausgewählten Taktintervall (Taktintervallen) entspricht, direkt simuliert werden. Wenn eine echtes System verfügbar ist, kann es möglich sein, die Impulsantwort direkt zu messen.
  • Die Strompulse des Aktivitätsprofils werden anschließend in eine Spannungsantwort des Energienetzwerks unter Verwendung der Impulsantwort des Netzwerks und einer Filtertechnik umgewandelt 340. Geeignete Filtertechniken umfassen z.B. Filter mit begrenzter Impulsantwort (FIR), z.B. Faltung, und Filter mit unbegrenzter Impulsantwort (IIR).
  • In einer Ausführungsform skaliert und verschiebt ein FIR-Filter jeden Strompuls entsprechend seiner Amplitude und seines Offsets, um eine entsprechend skalierte, verschobene Impulsantwort zu liefern. Die skalierten/verschobenen Impulsantworten für jeden Puls, der eine Antwort in einem gegebenen Intervall erzeugt, werden anschließend summiert, um eine Spannungsantwort des Energienetzwerks in dem Intervall zu liefern. Die skalierten/verschobenen Antworten des Netzwerks auf die Abfolge von Pulsen über die Zeitperiode stellen eine Faltung der Aktivitätspulse mit der Antwortfunktion des Netzwerks dar.
  • In einer anderen Ausführungsform werden Koeffizienten für ein IIR-Filter bestimmt, das die Impulsantwort nachgebildet. Die Koeffizienten werden auf die Strompulse und rekursiv auf frühere Spannungen, die aus den Strompulsen bestimmt wurden, angewandt, um ein Spannungsprofil abzubilden, das von der Einrichtung gesehen wird.
  • 4 ist eine schematische Darstellung eines FIR-Verfahrens, welches in Verbindung mit 3 beschrieben wird. In dem dargestellten Beispiel umfaßt ein Aktivitätsprofil 400 Strompulse 410, 420, 430 mit Amplituden A1, A2 bzw. A3. Die Strompulse 410, 420, 430 können beispielsweise den Strom darstellen, der von einem Prozessor gezogen wird, wenn er eine Codesequenz in aufeinander abfolgenden Taktzyklen ausführt. Die Strompulse 410, 420, 430 beginnen bei Offset-Zeiten T0, T1, T2 ...
  • Zur Veranschaulichung ist eine Basisimpulsantwort 490 für eine spezifizierte Stromamplitude, z.B. 25 A, durch eine Sequenz von Impulsantwortamplituden R0 bis R7 über acht Intervalle (t0 bis t7) dargestellt. Die Impulsantworten 440, 450 und 460 stellen die Basisimpulsantwort 490 (Impulsantwortamplituden R0 bis R8) im Anschluß an ein Skalieren durch die Amplituden (A1, A2, A3, ...) und einem Verschieben durch die Offsets (T0, T1, T2, ...) der Pulse 410, 420 bzw. 430 dar. Hierin stellt Rij die Amplitude Rj der Impulsantwort 490 dar, skaliert um die Strompulsamplitude Ai. Unter der Annahme, daß das Leistungsversorgungsnetzwerk, das durch die Basisimpulsantwort 490 charakterisiert ist, linear ist, gilt R10 = c·A1·R0, R32 = c·A3·R2 und allgemein Rij = c·Ai·Rj (Skalierung). Die Verschiebung der Impulsantworten 440, 450, 460 gibt die unterschiedlichen Zeiten wieder, an denen ihre Quellstrompulse 410, 420 bzw. 430 initiert wurde. In dem offenbarten Beispiel wird T0 als eine Referenzzeit genommen. Die Spannungswellenform 470 stellt die Summe der Impulsantworten 440, 450 und 460 in den entsprechenden Intervallen t0, t1, t2, ... dar (Superposition).
  • Zum Beispiel stellt der Spannungspuls V0 eine Amplitude der Impulsantwort 440 bei dem Zeitintervall t0 (R10) dar. Die Spannungsantwort V1 stellt die Summe der Impulsantwortamplituden R11 und R20 in dem Zeitintervall t1 dar und die Spannungsantwort V2 stellt die Summe der Impulsantwortamplituden R12, R21 und R30 in dem Zeitintervall t2 dar. Durch die Verschiebungen, die durch die Offsets T1 und T2 angegeben sind, werden die Impulsantwortamplituden R20 bis R28 und R30 bis R38 der Impulsantworten 440 bzw. 450 relativ zu den Amplituden R10 bis R18 der Impulsantwort 460 ausgerichtet.
  • Im Allgemeinen ist die Spannung bei dem Intervall tn die Summe der Impulsantwortamplituden für alle Strompulse, die eine von Null verschiedene Amplitude bei tn besitzen. Wenn der Strompuls bei einer Zeit Tk beginnt, ist, wie in 4 gezeigt, der Beitrag des Strompulses zur Spannung bei dem Intervall tn proponional zu c·Ak·Rn-k. Dabei ist Rn-k die Amplitude der Impulsantwort 490 in dem Intervall n-k, wobei die Differenz die Startzeit des Strompulses gegenüber der Referenzzeit T0 wiedergibt.
  • Eine Stromsimulation für einen Mikroprozessor und eine Spannungsantwort, die aus der Stromsimulation gemäß der vorliegenden Erfindung erzeugt wurde, sind in den 5 bzw. 6 gezeigt. 5 stellt eine Simulation der Leistungsaufnahme von einem ItaniumTM-Prozessor von Intel® Corporation von Santa Clara, Kalifornien, dar. Es wird simuliert, daß der Prozessor einen Teil eines Apache-Webserver- und gzip-Dateikomprimierungsprogramm für 2000 Taktzyklen durchläuft. Die Stromkurve 510 weist verschiedene Phasen einer Programmausführung auf, wobei jede Phase durch die Effizienz, z.B. Befehle pro Zyklus (IPC), und Stromniveaus charakterisiert ist. Im Allgemeinen sind jene Taktzyklen, in denen eine größere Anzahl von Befehlen parallel ausgeführt werden (high IPC), durch eine entsprechend höhere Stromaufnahme gekennzeichnet, da mehrere Einheiten des Prozessors angeschaltet werden. Umgekehrt besitzen Taktzyklen, in denen weniger Befehle parallel ausgeführt werden (lower IPC), weniger aktivierte Einheiten und die Stromaufnahme ist entsprechend geringer. Über das simulierte Intervall variiert der Versorgungsstrom des Prozessors von 52 A bis 72 A.
  • Die Phasen 520, 530, 540, in denen Stromniveaus schnell und wiederholt zwischen hohen und niedrigen Leistungsniveaus oszillieren, sind mit Programmschleifen verknüpft. Programmschleifen führen die gleichen Befehle wiederholt mit höheren und niedrigeren Niveaus von IPC aus. Diese Phasen sind verschachtelt mit Phasen 524, 534, 544, in denen eine geringe Schleifenaktivität sichtbar ist und die Stromniveaus mehr zufällig variieren. Die peak-to-peak-Stromvariationen in den Phasen 534, 534, 544 sind erkennbar höher als jene, die mit den Schleifenphasen 520, 540, 550 verknüpft sind. Etwa beginnend mit dem Taktzyklus 1200 befindet sich ein ausgedehntes Intervall, in dem der Codeabschnitt nur sehr wenige kurze Schleifensegmente enthält. In diesem Bereich variiert die Stromaufnahme weit und unvorhersehbar.
  • 6 stellt eine erfindungsgemäße Simulation der Versorgungsspannungsvariationen 610 dar, welche der Stromaufnahme des Prozessors entspricht, die in 5 gezeigt ist. Die Stromkurve 610 gibt in etwa die Ereignisse wieder, die in der Kurve 510 der 5 gezeigt sind. Zum Beispiel entsprechen die Phasen 620, 630, 640 den Schleifenphasen 520, 530 bzw. 540, in denen der peak-to-peak-Strom regelmäßig variiert. Für die simulierte Codesequenz und den Prozessor sind Schleifenphasen durch relativ hohen IPC und eine hohe Stromaufnahme charakterisiert. Das Niveau der Versorgungsspannung bricht in den Phasen 620, 630 und 640 ein, was die erhöhten Stromaufnahme durch den Prozessor wiedergibt. Die Spannungsvariationen unterhalb des Taktzyklus 900 sind vergleichsweise gering. Oberhalb des Taktzyklus 1152, bei der die Leistungsaufnahme unregelmäßiger ist, sind die Spannungsschwingungen signifikant größer. Da diese Spannungsschwankung immer noch in den für Prozessoren tolerierten Bereich fällt, stellt die Apache/gzip-Arbeitsbelastung nicht den schlimmsten Fall einer di/dt-Verteilung dar.
  • Die Spannungsvariationen, die in der Kurve 610 sichtbar sind, können verschiedene Konsequenzen für den Betrieb des Prozessors haben. Zum Beispiel benötigen die Logikschaltungen, die den Prozessor bilden, Energieversorgungsspannungen innerhalb eines bestimmten Bereichs, um zuverlässig zu arbeiten. Spannungsausreiser außerhalb dieses Bereichs können zu Rechenfehlern oder zu dramatischen Schaltungsfehlern in dem Prozessor führen. Simulationen, wie jene, die in der 6 gezeigt sind, ermöglichen den Konstrukteuren von Prozessoren die Auswirkung auf die Prozessorspannung für verschiedene Leistungs/Performance-Kompromisse zu untersuchen. Wie nachfolgend detaillierter beschrieben wird, können Echtzeitbestimmungen der Spannungsprofile auf tatsächlichen Systemen benutzt werden, um das Ausmaß der Spannungsausreiser zu begrenzen.
  • Ein Energieversorgungssystem für Mikroprozessoren ist üblicherweise für die schlimmste anzunehmenden Software, die voraussichtlich auf ihnen betrieben wird, konstruiert. Die schlimmste anzunehmende Software ist normalerweise ein Programm mit extrem hoher IPC (für eine maximale Leistungsaufnahme) oder ein Programm, das rasch zwischen extrem hoher IPC und extrem geringer IPC hin und her wechselt (für ein maximales di/dt). Solche Programme werden als Leistungsviren bezeichnet, weil sie ein Energieversorungssystem viel stärker als eine normale Anwendungssoftware beanspruchen. Clock-gating ermöglicht einem Prozessor, der eher für eine typische Leistungsaufnahme als für eine Worst-Case-Leistungsaufnahme konstruiert ist, seine Performance zu drosseln, wenn er eine bestimmte Leistungsgrenze erreicht. Clock-gating verstärkt aber auch die in di/dt-Effekte auf die Spannung.
  • Das oben beschriebene Verfahren ermöglicht die Entwicklung von Hardware zur Leistungsberechnung und Regulation auf dem Chip ("Stromsteuereinheiten") für Prozessoren und andere befehlsausführende Vorrichtungen. Zusätzlich zu Einblicken darin, wie verschiedene Codesequenzen auf eine Prozessorspannung Einfluß nehmen können, ermöglichen diese Simulationen verschiedene di/dt-Dämpfungsstrategien auszuprobieren in einem Zustand vor dem Siliziumchip. Der Vorteil von Einblicken, welche die oben beschriebenen Simulationen ge statten, sind erkennbar durch Bezugnahme auf eine Prozessorkonstruktion, die eine di/dt-Steuerung enthält. Eine solche Ausführungsform wird im größeren Detail nachfolgend beschrieben.
  • 7 ist ein Blockdiagramm einer Ausführungsform eines Computersystems 700, bei dem eine di/dt-Steuerung eingesetzt ist. Beispielsweise umfaßt das Computersystem 700 einen Prozessor 710, einen Hauptspeicher 740, einen nicht flüchtigen Speicher 750, verschiedene Peripheriegeräte 760, eine Systemlogik 770 und eine Energieversorgung 780. Die Systemlogik 770 steuert den Datentransfer zwischen dem Prozessor 710, dem Hauptspeicher 740, dem nicht flüchtigen Speicher 750 und den Peripheriegeräten 760. Die Energieversorgung 780 stellt die Leistung bei einer Referenzspannung für die Logikeinrichtungen in dem Prozessor 710 zur Verfügung. Das Computersystem 700 dient zur Illustration verschiedener Merkmale der vorliegenden Erfindung. Der spezielle gezeigte Aufbau ist zum Einsatz der vorliegenden Erfindung nicht notwendig. Zum Beispiel kann das System 700 mehrere Prozessoren 710 oder andere befehlsausführenden Einheiten umfassen, und die verschiedenen gezeigten Komponenten können kombiniert oder ganz oder teilweise eliminiert werden. Es ist zu erwarten, daß Systeme, wie Personal Digital Assistance (PDAs), Smart Phones und dgl., Einrichtungen und Verbindungen enthalten, die in der offenbarten Ausführungsform nicht gezeigt sind.
  • Der Prozessor 710 umfaßt mehrere Einheiten 724, die eine befehlsausführende Pipeline 720 bilden. Die Befehle können an dem Prozessor 710 von dem Hauptspeicher 740, dem nicht flüchtigen Speicher 750 oder anderen Speichereinrichtungen (nicht gezeigt) geliefert werden. Die Stromstärke, die von dem Prozessor 710 aufgenommen wird, ist durch die Stärke der Aktivität bestimmt, die in verschiedenen Einheiten 724 durch Befehle (oder dem Ausbleiben davon) in der Pipeline 720 erzeugt wird. Eine Stromsteuereinheit (CCU) 730 überwacht den Strombedarf von verschiedenen Einheiten 724 in Reaktion auf die ausgeführten Befehle und paßt das Aktivitätsniveau des Prozessors 710 entsprechend an. Das System 700 ist mit einer einzelnen CCU 730 gezeigt. In anderen Ausführungsformen können auch mehrere CCUs 730 eingesetzt werden, von denen jede di/dt lokal für eine oder mehrere Einheiten 724 steuert.
  • Wenn ein Befehl entlang der Pipeline 720 ausgeführt wird, spricht er verschiedene Einheiten 724 an, um eine oder mehrere Vorgänge auszuführen, die zusammen genommen den Befehl implementieren. Zum Beispiel kann ein Fließkomma-Mehrfachakkumulationsbefehl (FMAC) verursachen, daß die folgenden Vorgänge in den bezeichneten Ressourcen stattfinden: eine Fließkomma-Registerdatei liest drei Operanden aus, eine FMAC-Ausführungseinheit multipliziert zwei der Operanden und addiert das Produkt zu dem dritten Operand, eine Fehlereinheit kontrolliert das Produkt und die Summe auf Fehler und eine Ausscheideeinheit schreibt das Ergebnis in die Fließkomma-Registerdatei, wenn keine Fehler ermittelt wurden. Abhängig von der speziellen Prozessorimplementierung können diese Ressourcen oder ihre Komponenten in einer oder mehreren Einheiten 724 gruppiert sein, die an- und ausgeschaltet werden, wenn der Befehl entlang der Pipeline ausgeführt wird.
  • Jede Einheit 724 zieht eine bestimmte Strommenge, wenn sie von dem Befehl aktiviert wird. Für das Computersystem 700 stellt die Energieversorgung 780 den Strom so zur Verfügung, daß das Referenzspannungsniveau innerhalb eines spezifizierten Bereichs aufrechterhalten wird. Wenn die Aktivierung oder Deaktivierung von einer oder mehreren Einheiten 724 eine signifikante Änderung in dem Strom hervorruft, den der Prozessor 710 beansprucht, reagiert die CCU 730, um die Änderungen zu dämpfen. Eine Ausführungsform der CCU 730 macht sich das Verhalten zu Nutze, das in der oben beschriebenen Simulation dargestellt ist, um die Effekte von di/dt auf die Referenzspannung, die von dem Prozessor 710 benutzt wird, zu dämpfen.
  • Die aktivierten/deaktivierten Zustände von ausgewählten Einheiten 724' können überwacht werden, um eine Abschätzung des Stroms zur Verfügung zu stellen, der von dem Prozessor 710 zu einen gegebenen Taktzyklus aufgenommen wird. Die ausgewählten Einheiten 724' können diejenigen sein, die große Ströme ziehen, wenn sie aktiviert werden, weil diese voraussichtlich plötzliche Änderungen in di/dt erzeugen, wenn diese zwischen ihrem aktiven und inaktiven Zustand umgeschaltet werden. Die CCU 730 überwacht die Zustände von einer oder mehreren ausgewählten Einheiten 724' an aufeinanderfolgenden Taktzyklen, um ein resultierendes Strom- oder Spannungsniveau über eine ausgewählte Zeitperiode abzuschätzen. Das abgeschätzte Niveau wird mit einer oder mehreren Schwellenwerten verglichen, um zu ermitteln, ob das Aktivitätsniveau des Prozessors angepaßt werden sollte. Wenn zum Beispiel ein abgeschätztes Spannungsniveau geringer als eine erste Schwelle ist, kann der Befehlsfluß durch die Pipeline 720 verringert werden. Wenn das abgeschätzte Spannungsniveau größer als eine zweite Schwelle ist, kann eine Einheit 724' aktiviert bleiben, die andernfalls deaktiviert wäre, um den Anstieg der Spannung zu reduzieren.
  • Eine Ausführungsform der CCU 730 schätzte das Spannungsniveau ab, das von dem Prozessor gesehen wird, indem sie die aktiv/inaktiv-Zustände (z.B. Aktivitätszustand = 1/0) einer ausgewählten Einheit 724' in n aufeinanderfolgenden Taktzyklen (Probeperiode) verfolgt. Die verfolgten Zustände können, wie nachfolgend beschrieben, gewichtet werden, um eine Aktivitätswellenform oder Profile für den Prozessor 710 darzustellen. Strompulse, die das Profil bilden, können analysiert werden unter Verwendung einer Impulsantwort, die für das Energieversorgungsnetzwerk des Systems 700 geeignet ist, um ein Profil der von dem Prozessor gesehen Spannung zur Verfügung zu stellen. Wenn die Spannung außerhalb des spezifizierten Bereichs fällt, kann die CCU 730 das Aktivitätsniveau des Prozessors 710 verändern, um die zu erwartende Änderung auszugleichen.
  • In einer Ausführungsform der CCU 730 können die Werte, welche die Amplituden von jedem der n Strompulse darstellen, in einer Abfolge von Speicherbereichen gespeichert werden. Ein Schieberegister, das in der Lage ist, Multi-Bit-Amplitudenwerte in jedem Eintrag zu speichern, kann für diesen Zweck benutzt werden. Wie nachfolgend detaillierter beschrieben ist, wird die Zahl der Einträge teilweise durch die Genauigkeit, mit der die von dem Prozessor gesehene Spannung ermittelt wird, und dem verwendeten Filteralgorithmus bestimmt. Der Eintrag, in dem sich der Amplitudenwert befindet, stellt den Offset des entsprechenden Strompulses gegenüber dem Beginn des Prüffensters dar.
  • Die von dem Prozessor gesehene Spannung wird periodisch, z.B. auf jedem Taktzyklus, aus den Stromamplituden (Ai) abgeschätzt, die in den Einträgen des Schieberegisters gespeichert sind. In einer Ausführungsform der CCU 730 werden die Stromamplituden durch das Schieberegister hintereinander vom Eintrag 0 zum Eintrag n-1 (E0 bis En-1) in aufeinanderfolgenden Taktzyklen geschoben. Die Inhalte des Schieberegisters stellen damit eine Momentaufnahme des Aktivitätsniveauprofils der Einrichtung über ein Fenster von n Taktzyklen dar. Zu einer gegebenen Zeit ist die jüngste Strompulsamplitude in E0 und steuert zu der von dem Prozessor gesehenen Spannung eine Beitrag dar, der proportional ist zu dem Amplitudenwert, den sie speichert ([E0]), und zu der Netzwerkimpulsantwort in dem ersten Intervall (R0). Genauso ist der nächstjüngere Puls im Eintrag 1, und sein Beitrag zu der Spannung ist proportional zu dem Amplitudenwert, den er speichert ([E1]), und zu der Netzwerkimpulsantwort in dem zweiten Intervall (R1).
  • Allgemein kann die Spannungsantwort zu einer bestimmten Zeit abgeschätzt werden als:
    Figure 00150001
  • Das heißt, eine gewichtete Summe der Stromamplituden für die letzten n Taktzyklen wird bei jedem Taktzyklus berechnet, wobei die Gewichte von den Impulsantwortamplituden in den entsprechenden Intervallen geliefert werden. Das Schieberegister schiebt die Strompulsamplituden, um für den Offset gegenüber der Impulsantwort zu sorgen, der im Zusammenhang mit der 4 beschrieben wurde. Die Inhalte des Schieberegisters stellen daher ein gleitendes Fenster zur Verfügung, durch das ein laufendes Profil der von dem Prozessor gesehenen Spannungsniveaus abgeschätzt werden kann. Letztendlich faltet diese Ausführungsform der CCU 730 das gemessene Aktivitätsprofil des Prozessors mit der Impulsantwort seines Energieversorgungsnetzwerks, um den Änderungen in den von dem Prozessor gesehenen Spannungsniveau Rechnung zu tragen. Faltung ist ein Beispiel eines Algorithmus einer begrenzten Impulsantwort (FIR). Wie nachfolgend beschrieben, können auch Stromsteuerschaltungen eingesetzt werden, die auf einem Algorithmus mit unbegrenzter Impulsantwort (IIR) beruhen.
  • In einer Ausführungsform eines Systems, in der eine CCU 730 eingesetzt ist, paßt eine Pipelinesteuerschaltung (8A) die Pipelineaktivität an, um die zu erwartenden Änderung in dem Spannungsniveau auszugleichen, wenn sie außerhalb eines akzeptablen Bereichs fällt. Die Impulsantwort kann unter Verwendung eines Energieversorgungsnetzwerkes, ähnlich zu dem der 2, mit Komponenten simuliert werden, die dafür konstruiert sind, die kapazitiven, induktiven und resisitiven Eigenschaften des Computersystems 700 wiederzugeben. Alternativ kann die Pulsantwort eines tatsächlichen Systems gemessen werden.
  • 8A ist ein Blockdiagramm, das eine Ausführungsform einer CCU 730 und ihre Interaktionen mit ausgewählten Einheiten 724' der Pipeline 720 darstellt. Die offenbarte Ausführungsform der CCU 730 umfaßt Gate-Einheiten 810(1) bis 810(n) (allgemein: Gate-Einheit 810), eine Überwachungsschaltung 820 und eine Dämpfungsschaltung 830. Jede Gate-Einheit 810 steuert die Leistungsabgabe an eine zugehörige Einheit 724' in der Pipeline 720. Zum Beispiel kann die Gate-Einheit 810 eine Clock-Gating-Schaltung sein, welche ein Taktsignal zu der Einheit 724' koppelt oder von dieser entkoppelt, je nachdem, ob der Dienst der Einheit 724 benutzt wird, um einen Befehl aktuell in dem Pipelinezustand (den Pipelinezuständen) zu implementieren, in welchem die Einheit 724' betrieben wird, oder nicht. In 8A ist außerdem eine Pipeline-Steuerschaltung 850 gezeigt, die den Gate-Einheiten 810 anzeigt, welche Einheiten 724' bei den aktuell ausgeführten Befehlen aktiv sind.
  • Für die offenbarte Ausführungsform der CCU 730 liefert die Gate-Einheit 810 ein Signal an die Überwachungsschaltung 820, um anzuzeigen, ob ihre zugehörige Einheit 724' aktiv ist. Das Signal kann ein Aktivitätszustand der Einheit 724' sein, der gesetzt ist, wenn die Einheit 724' "angeschaltet" ist, und nicht gesetzt ist, wenn die Einheit 724 "ausgeschaltet" ist. Ein typischer Prozessor kann 10 bis 20 Gate-Einheiten 820 umfassen, um die Leistungsabgabe zu 10 bis 20 Einheiten 724' zu steuern. Alle Einheiten können auf Stromänderungen überwacht werden, oder es können Untermengen der Einheiten überwacht werden. Beispielsweise können nur jene Einheiten, z.B. 724', überwacht werden, die viel Strom verbrauchen. Wie vorhergehend bemerkt, können mehrere CCUs 730 eingesetzt werden, um mehrere Einheiten oder Gruppen von Einheiten zu überwachen.
  • Die Überwachungsschaltung 820 sammelt Signale von den Gate-Einheiten 810 über ein Prüffenster auf und schätzt die von dem Prozessor 710 gesehene Spannung aufgrund der aufgesammelten Signale ab. Die offenbarte Ausführungsform der Überwachungsschaltung 820 umfaßt eine Stromberechnungseinheit (ICU) 812, eine Strom-Spannung-Berechnungseinheit (IVCU) 814 und eine Schwellenkomperatoreinheit (TCU) 816. Wie nachfolgend im größeren Detail beschrieben wird, stellt die ICU 812 eine Abschätzung des verbrauchten Stroms in aufeinanderfolgenden Taktzyklen zur Verfügung. Die IVCU 814 wendet einen Filteralgorithmus auf die abgeschätzten Ströme an, um eine Abschätzung der Spannung zu erzeugen, die von der Einrichtung, z.B. dem Prozessor 710, gesehen wird. Die TCU 816 vergleicht die abgeschätzte Spannung mit einer oder mehreren Schwellen, und die Dämpfungsschaltung 830 paßt das Aktivitätsniveau des Prozessors 710 an, wenn dies durch den Vergleich angezeigt ist.
  • Bei der offenbarten Ausführungsform der CCU 730 umfaßt die ICU 812 Gewichtungseinheiten 814(1) bis 814(n) (allgemein: Gewichtungseinheiten 814) und einen Addierer 822, 826. Wenn vorhanden, liefert jede Gewichtungseinheit 814 einen ersten oder einen zweiten Wert zu dem Addierer 822 je nachdem, ob der Aktivitätszustand, der von einer Gating-Schaltung 810 angezeigt wird, für seine zugehörige Einheit 724' jeweils aktiv oder inaktiv ist. Der erste Wert stellt den von der Einheit 724' gezogenen Strom dar, wenn diese nicht aktiv ist, und der zweite Werte stellt den von der Einheit 724' gezogene Strom dar, wenn diese aktiviert ist. Der Addierer 822 summiert die Werte, die von den Gewichtungseinheiten 814 geliefert werden, und gibt die Summe als eine Abschätzung der Strompulse aus, die in jedem folgenden Taktzyklus von den überwachten Einheiten 724' des Prozessors 710 gezogen wird. Der Addierer 822 und mögliche Gewichtungseinheiten 814 können vermieden werden, wenn die CCU 730 eine einzelne Einheit 724' steuert. Außerdem kann auf die Gewichtungseinheiten 814 verzichtet werden, wenn die von den überwachten Einheiten 724' gezogenen Ströme in etwa vergleichbar sind.
  • Die IVCU 814 wendet einen Filteralgorithmus auf einen Strompuls an, der von der ICU 814 zur Verfügung gestellt wird, um eine Abschätzung der von dem Prozessor 710 gesehenen Spannung zu erzeugen, und die TCU 816 vergleicht die abgeschätzte Spannung mit einem oder mehreren Schwellenwerten. Wenn die abgeschätzte Spannung den Schwellenwert (die Schwellenwerte) überschreitet, paßt die Dämpfungsschaltung 830 das Aktivitätsniveau des Prozessors 710 an, um dem Überschreiten der Schwelle entgegenzuwirken.
  • Bei einer Ausführungsform der Überwachungsschaltung 820 zeigt ein abgeschätzter Spannungswert, der unter eine untere Spannungsschwelle fällt, an, daß der Prozessor 710 mehr Strom ziehen kann, als das Energieversorgungsnetzwerk liefern kann, wenn es innerhalb eines erlaubten Spannungsbereichs bleibt. Unter diesen Umständen kann die Dämpfungsschaltung 830 einige Einheiten deaktivieren, die andernfalls aktiviert worden wären. Zum Beispiel kann die Dämpfungsschaltung 830 verursachen, daß eine Abrufeinheit (nicht gezeigt) in dem Prozessor 710 Leeranweisungen (NOPs) in die Pipeline 720 eingibt. NOPs sind im wesentlichen Leerbefehle, welche die Aktivierung, wenn überhaupt, von wenigen Einheiten erfordern. Unter diesen Umständen nimmt die Performance ab, da produktive Befehle verzögert werden, während die NOPs (nicht produktive Befehle) durch die Pipeline 720 laufen. Die Leistungsaufnahme wird ebenfalls reduziert, da die NOPs, wenn überhaupt, nur wenige Einheiten aktivieren.
  • Andererseits kann die abgeschätzte Spannung eine obere Spannungsschwelle überschreiten, wenn der Prozessor 710 unterbeschäftigt ist und nur wenige Einheiten aktiviert sind. In diesem Fall kann die Dämpfungsschaltung 830 Einheiten 724' aktivieren, z.B. einen Antriebsstrom zu diesen liefern, die andernfalls von Befehlen, die aktuell in der Pipeline 720 sind, nicht beansprucht werden. Zum Beispiel kann sie damit fortfahren, Taktsignale zu unbenutzten Einheiten 724' zu liefern, wodurch ein Laden und Entladen ihrer Schaltungen hervorgeru fen wird, obgleich entsprechende Befehle nicht vorhanden sind. Dies erhöht die Leistung, die von dem Prozessor 710 verbraucht wird, gegenüber derjenigen, die für die aktuell ausgeführten Befehle notwendig ist. Dies hat jedoch keine direkte Auswirkung auf die Prozessorperformance.
  • 8B ist ein Blockdiagramm einer Ausführungsform einer IVCU 814, die zur Implementierung des Algorithmus zur Spannungsabschätzung mit gewichteten Summen (FIR), wie oben beschrieben, geeignet ist. In einer Ausführungsform der TCU 816 ist ebenfalls gezeigt. Die offenbarte Ausführungsform der IVCU 814 umfaßt ein n-Eingangsschieberegister 824, und ein Addierer 826 empfängt die Eingangssignale durch n Gewichtungseinheiten 850(0) bis 850(n-1) (allgemein: Gewichtungseinheiten 850). Das Schieberegister 824 speichert Stromamplituden (A0 bis –An-1) für n aufeinanderfolgende Taktzyklen an seinen Eingängen. Die Gewichtungseinheiten 850(0) bis 850(n-1) skalieren jeweils ihre Eingänge (A0 bis –An-1) von dem Schieberegister 824 proportional zu den Amplituden der entsprechenden Intervalle einer Impulsantwort für das betreffende Energieversorgungssystem. Die offenbarte Ausführungsform des Addierers 826 führt die gewichtete Summe der Gleichung 1 aus. Das heißt, der Addierer 826 faltet effektiv die n Aktivitätszustände mit der Impulsantwort des Energieversorgungsnetzwerks, das die Energieversorgung 780 und den Prozessor 710 umfaßt.
  • Die Ausgabe des Addierers 826 stellt die abgeschätzten Spannungsantworten VE des Energieversorgungsnetzwerks 784 zu dem aktuellen Aktivitätsniveau des Prozessors 710 dar. In der 8B wird VE an die Komparatoren 860(a) und 860(b) des Schwellenkomparators 816 zum Vergleichen mit einer oberen bzw. einer unteren Spannungsschwelle abgegeben. Der Komparator 860(b) ermittelt, ob VE unter die untere Spannungsschwelle fällt, und signalisiert, falls dies der Fall ist, der Dämpfungsschaltung 830, die Stromaufnahme zu reduzieren. Die Stromaufnahme kann direkt durch Ausschalten des Takts, durch Reduzieren der Befehlsaufnahme- oder -ausgaberaten oder durch Starten anderer stromverbrauchender Maßnahmen reduziert werden.
  • Der Komparator 860(a) ermittelt, ob VE die obere Spannungsschwelle überschreitet, und signalisiert der Dämpfungsschaltung, den Stromverbrauch zu erhöhen (oder ihn wenigstens auf seinem aktuellen Niveau zu halten). Zum Beispiel kann die Dämpfungsschaltung die Stromaufnahme durch Betreiben von Einheiten erhöhen, die andernfalls durch das Clock-Gate aus geschaltet wären, oder sie kann die Leistung erhalten, indem sie das Abschneiden weiterer Einheiten durch das Glock-Gating verhindert.
  • Zwischen der oberen und unteren Schwelle wird der Einrichtung , z.B. dem Prozessor 710, ermöglicht, normal zu laufen. Die Spannungsberechnung, der Schwellenwertvergleich und die Stromanpassung (falls notwendig) können in jedem Takt oder alle m Takte ausgeführt werden, abhängig von der benötigten Granularität, den verfügbaren Rechnerressourcen und anderen Faktoren. Eine Echtzeitsteuerung der Energieversorgungsspannung wird unter der Voraussetzung ermöglicht, daß die benötigten Rechnerressourcen, um VE mit einer erforderlichen Geschwindigkeit abzuschätzen, auf dem Prozessorchip aufgenommen werden können.
  • 8C ist ein Blockdiagramm einer Ausführungsform der IVCU 814, die geeignet ist, um ein IRR- oder ein rekursives Filter einzusetzen. IIR-Filter verwenden vorher berechnete Filterausgaben (z.B. frühere Spannungsabschätzungen vom Addierer 826) zusätzlich zu dem Eingabesignal (z.B. Strömen aus der ICU 816), um eine neue Filterausgabe (z.B. aktuelle Spannungsabschätzungen) zu bestimmen. IIR-Filter werden im größeren Detail z.B. bei Steven W. Smith, "The Scientists and Engineers Guide to Digital Signal Processing", California Technical Publishing ISBN 0-966176-3-3 (1997), beschrieben. Im Allgemeinen bestimmt ein IIR- oder ein rekursives Filter einen Ausgang aus einer Linearkombination von Eingangssignalen und vorher berechneten Ausgaben, wobei Letztere das rekursive Element liefern. Eine IIR-Filterfunktion kann beispielsweise folgendermaßen dargestellt werden:
    Figure 00190001
  • Dabei stellen a0 bis ap die Koeffizienten dar, die zu p Stromamplituden (Ai) gehören, und b0 bis bm stellen die Koeffizienten dar, die zu den m früheren Spannungsabschätzungen (V;) gehören. Wenn die letzten p Stromwerte verfolgt werden, sind im Allgemeinen p–1 abgeschätzte Spannungen zum Verfolgen erhältlich und m=p–1. Die Koeffizienten {ai} und {bi} können durch Anpassen einer Kurve an die Impulsantwort oder die Sprungantwort (2) des Energieversorgungsnetzwerks bestimmt werden.
  • Die offenbarte Ausführungsform der IVCU 814' umfaßt ein zweites Schieberegister 826 und Gewichtungseinheiten 854(1) bis 854(p-1) zusätzlich zu dem p-Eingangschieberegister 824, dem Addierer 826 und den Gewichtungseinheiten 850(1) bis 850(p). Das Schieberegister 824 speichert eine Abfolge von p Stromamplituden, und das Schieberegister 828 speichert eine Abfolge der abhängigen p–1 abgeschätzten Spannungen. Letztere werden zu dem Addierer 826 zurückgegeben, um die rekursive Eingabe für die IVCU 814 zur Verfügung zu stellen.
  • Die IVCU 814' ist zur Filterung von Stromsignalen geeignet, um eine Abschätzung der von dem Prozessor 710 gesehenen Spannung für den Fall zu liefern, bei dem die Sprungfunktion 210 oder die Impulsantwort 230 von einem abklingenden sinusförmigen Beitrag dominiert wird. Verschiedene IVCUs 814 können eingesetzt werden, um Spannungsabschätzungen für die Fälle zu erzeugen, in denen mehrer abklingende sinusförmige Beträge in der Antwort des Energieversorgungsnetzwerks vorhanden sind. Jeder sinusförmige Beitrag kann durch seinen eigenen Satz von Koeffizienten {ai} und {bi} beschrieben werden. Die 8D zeigt ein IVCU 814'', bei dem die Ergebnisse von k Filtern parallel kombiniert werden, um eine Abschätzung der von dem Prozessor 710 gesehenen Spannung zu liefern. 8E zeigt ein IVCU 814''', bei dem die Ergebnisse von k Filtern in Serie kombiniert werden, um eine Abschätzung der von dem Prozessor 710 gesehene Spannung zu liefern. Beide Konfigurationen können benutzt werden, um die IIR-Filterergebnisse für mehrere Resonanzquellen zu kombinieren.
  • Wie in der 8A gezeigt, umfaßt die CCU 730 eine Rückkopplungsschleife, da die Aktion des Ein- oder Ausschaltens der Einheiten 724' auf den berechneten Versorgungsstrom und die Spannung Einfluß nehmen. Diese nehmen umgekehrt Einfluß auf das nachfolgende Verhalten der CCU 730. Für IIR-Filter (8C bis 8E) stellten die rekursiven Komponenten eine zusätzliche Rückkopplungsschleife innerhalb des IVCU 824 zur Verfügung.
  • Simulationen der Effekte der CCU 730 auf den Strom und die Energieversorgungsspannung sind in den 9 bzw. 10 gezeigt. Im Vergleich zu den 5 und 6 führt die di/dt-Steuerung, die von der CCU 730 zur Verfügung gestellt wird, scharfe Eintaktspikes sowohl zu dem maximalen als auch zu dem minimalen Stromniveau hinzu. Die Spikes sind ein Resultat der CCU 730, welche den Takt an- oder ausschaltet in Abhängigkeit zu der berechneten Spannung, die außerhalb vorbestimmter Grenzen fällt. Trotz der Spikes ist die Peak-to-Peak-Variation der Energieversorgungsspannung geringer als im nicht gesteuerten Fall, weil die CCU 730 durch ihre Konstruktion den Strom so reguliert, daß angeregte RLC-Resonanzen in dem Energieverteilungsnetzwerk vermieden werden.
  • Die Ergebnisse der 9 und 10 wurden unter Verwendung eines FIR-Algorithmus simuliert, der auf den ganzen Bereich der Impulsantwort 230 (2) angewandt wurde, der sich über mehr als 300 Taktzyklen erstreckt. Für die CCU 730 würde das bedeuten, daß ein Schieberegister 824, Gewichte 850 und ein Addierer 826 in entsprechender Dimensionierung (n>300) verwendet wird. Selbst bei den Schaltungsdichten, die heutzutage in Hochleistungsprozessoren verfügbar sind, ist es nicht praktikabel, eine Überwachungsschaltung 820 zu implementieren, die in der Lage ist, eine Impulsantwort mit Strompulsen von mehr als 300 Taktintervallen in einem Taktzyklus oder selbst in mehreren Taktzyklen zu falten.
  • Simulationsergebnisse zeigen, daß ein Intervall mit 300 Taktzyklen der 1 nicht notwendig ist, um Ergebnisse zu liefern, die brauchbar sind. Zum Beispiel findet in der 2 die größte Änderung der Impulsantwort 230, beispielsweise das lokale Minimum 240, etwa 25 Taktzyklen nach der Initiierung des Strompulses statt. Dadurch ist nahegelegt, daß die CCU 730 den Strompuls und die Impulsantwort über ein kürzeres Intervall falten kann und immer noch eine brauchbare Approximation der Spannungsantwort des Energieversorgungsnetzwerks liefert. Wie nachfolgend detaillierter beschrieben wird, kann die Überwachungsschaltung 826 mit einem so klein n wie 25 oder 30 realisiert werden.
  • Eine Ausführungsform der vorliegenden Erfindung ermöglicht den Kompromiß zwischen Performance und Spannungsstabilität für verschiedene Faltungsintervalle zu simulieren. Verschieden Performanceniveaus können durch Verändern der Spannungsschwellen geprüft werden, bei denen die CCU 730 den di/dt-Dämpfungsvorgang triggert. Wenn z.B. die untere Spannungsgrenze reduziert wird, bei der die CCU 730 die Aktivität-Verringerungsvorgänge einleitet, z.B. das Einfügen von NOPs, arbeitet der Prozessor 710 weiterhin mit voller Performance über einen weiten Spannungsbereich, jedoch auf Kosten darauf, daß seine Schaltung größeren Spannungsvariationen ausgesetzt wird. Durch Anheben der unteren Spannungsschwelle, bei der die CCU 730 die Aktivitäts-Verringerungsvorgänge einleitet, verschmälert sich der Spannungsbereich, über den es dem Prozessor 710 ermöglicht wird, bei voller Performance zu arbeiten. Insgesamt wird die Performance reduziert, der Prozessor 710 sieht jedoch eine stabilere Versorgungsspannung.
  • 11 stellt Simulationen einer peak-to-peak-Spannungsänderung eines Energieversorgungsnetzwerks für ein System 700 gegenüber der Performance für drei verschiedene Inter valle dar. Es ist aus der 11 ersichtlich, daß es einen geringen Unterschied in den Ergebnissen gibt, die durch die Simulation für Intervalle mit 25 (Kurve 1110), 43 (Kurve 1120) und 350 (Kurve 1130) Taktzyklen erzeugt wurden. In jedem Fall können die peak-to-peak-Spannungsänderungen auf etwa 1 mV begrenzt werden bei einer Performanceeinbuße von weniger als 5%.
  • 12 stellt Simulationen für peak-to-peak-Spannungsänderungen eines Energieversorgungsnetzwerks für das System 700 gegenüber der abgegebenen Leistung für drei verschiedene Faltungsintervalle dar. Die Ergebnisse sind für die drei Intervalle vergleichbar, was bedeutet, daß so wenig wie 25 Intervalle ausreichend sind, um eine praktikable di/dt-Steuerung zur Verfügung zu stellen.
  • Die Latenz der CCU 730 kann einen erheblichen Einfluß auf ihre Effizienz zum Steuern der Spannungsänderungen haben, die mit di/dt-Schwingungen verbunden sind. Zum Beispiels ist aus 2 erkennbar, daß die größeren Spannungsänderungen in der Sprung- und Impulsantwort 210 bzw. 230 innerhalb der ersten paar Intervalle einer Stromänderung auftreten. Demgemäß ist eine effiziente CCU 730 so konstruiert, daß sie mit einer geringen Latenz, z.B. 1 oder 2 Zyklen, antwortet. Die 13 und 14 stellten die Abhängigkeit der peak-to-peak-Spannungsänderung auf die Performance und die Leistung für CCUs mit einer Latenz von 1 bis 4 Taktzyklen dar. Aus diesen Figuren wird deutlich, daß eine Menge der Vorteile der di/dt-Steuerung bei Latenzen von mehr als zwei Taktzyklen verschwinden.
  • Für die offenbarte Ausführungsform der CCU 730 sind die Hauptquellen der Latenz die ICU 812 und die IVCU 814. Wie vorhergehend für Filter auf FIR-Basis gezeigt, hilft das Verringern der Größe der überwachten Intervalle. In dieser Hinsicht erscheint es wahrscheinlich, daß Filter, die auf IIR basieren, bei einer gegebenen Latenz bessere Ergebnisse liefern. Simulationen haben beispielsweise gezeigt, daß annehmbare Abschätzungen der Spannung, die von der Einrichtung gesehen wird, unter Verwendung von IIR-Filtern zweiter Ordnung erzielt werden können. Ein Filter zweiter Ordnung verwendet lediglich drei Stromkoeffizienten (a0, a1, a2) und zwei Spannungskoeffizienten (b0, b1), was sehr vorteilhaft im Vergleich zu den 25 Koeffizienten ist, die bei dem FIR-Filter 814' verwendet werden.
  • Es können auch andere Maßnahmen verwendet werden, um die Latenz zu verringern. Zum Beispiel kann die Stromaufnahme für die Blöcke weiter hinten in der Ausführungspipeline zu einem früheren Zeitpunkt vorausberechnet werden. Falls notwendig, können zwei Berechnungen an einem früheren Zustand vorgenommen werden und danach eine ausgewählt werden, abhängig davon, ob die relevante Einheit aktiv oder inaktiv war. Außerdem braucht für die offenbarte Ausführungsform der Überwachungsschaltung 820 nur das erste Elemente der Impulsantwort mit einer Latenz von einem Takt berechnet zu werden. Das zweite Element kann zwei Taktzyklen in Anspruch nehmen, das dritte Element drei Takte usw.
  • Latenzbeschränkungen zeigen außerdem, daß eine einzelne zentrale CCU für z.B. einen Prozessor nicht die gleichen Vorteile liefert, wie das Steuern von di/dt in einer verteilten/lokalen Weise. Zum Beispiel kann eine lokale CCU entlang der (oder den) Einheiten gebildet werden, deren Aktivität sie kontrolliert (kontrollieren), um schneller auf Stromänderungen in der (oder den) zugeordneten Einheiten zu antworten. Eine zentrale CCU muß auf Daten von Einheiten warten, die über den Chip verteilt sind. Wenn lokale CCUs mit verschiedenen Pipelines in einem Prozessor verknüpft sind, wird eine Kommunikation zwischen den Pipelines notwendig, um sicherzustellen, daß keine Daten, die zwischen den Pipelines ausgetauscht werden, verloren gehen. Beispielsweise müssen Queues zwischen den Pipelines hinzugefügt werden, um die Daten von einer Pipeline, die für eine andere Pipeline bestimmt sind, die momentan von ihrer CCU blockiert ist, zu puffern.
  • Hiermit wurde ein Mechanismus zum Simulieren der von einer Einrichtung gesehenen Spannung in einem Energieversorgungsnetzwerk zur Verfügung gestellt. Der Mechanismus kann benutzt werden, um die Wirksamkeit verschiedener Strategien zum Dämpfen von di/dt-induzierten Veränderungen in dieser Spannung zu studieren. In einer Ausführungsform der Erfindung wird eine Impulsantwort für das Energieversorgungsnetzwerk bestimmt, und ein Aktivitätsprofil für die Einrichtung, die von dem Netzwerk mit Leistung versorgt wird, wird bei dem Vorgang überwacht. Das Aktivitätsprofil wird anschließend mit der Impulsantwort gefaltet, um ein Profil der Spannungen an der Einrichtung zur Verfügung zu stellen.
  • Diese und andere Ausführungsformen, die vorgestellt wurden, um verschiedene Merkmale der vorliegenden Erfindung zu darzustellen, können zum Simulieren elektronischer Systeme, wie Computer und anderen auf Prozessoren basierenden Systeme, die mit einem Clock-Gating funktionieren oder aus anderen Gründen erheblichen di/dt-Veränderungen unterworfen sind, eingesetzt werden. Personen auf diesem Fachgebiet und mit dem Nutzen dieser Offenbarungen werden Veränderungen und Modifikationen der offenbarten Ausführungsformen er kennen, die nichts desto weniger in den Grundgedanken und den Schutzumfang der nachfolgenden Ansprüche fallen.
  • Zusammenfassung
  • Es wird ein System zur Versorgung einer Einrichtung mit Leistung in einem spezifizierten Spannungsbereich offenbart. Das System umfaßt ein Energieversorgungsnetzwerk, das durch eine Antwortfunktion charakterisiert ist, um die Einrichtung mit Leistung zu versorgen. Eine Stromberechnungseinheit speichert Werte, die eine Abfolge von Stromamplituden darstellen, die von der Einrichtung in aufeinanderfolgenden Taktzyklen gezogen werden, und liefert diese an eine Strom-Spannungs-Berechnungseinheit. Die Strom-Spannungs-Berechnungseinheit filtert die Stromamplituden entsprechend von Koeffizienten, die aus der Antwortfunktion gewonnen werden, um eine Abschätzung der Spannung, die von der Einrichtung gesehen wird, zur Verfügung zu stellen. Der Betrieb der Einrichtung wird angepaßt, wenn die abgeschätzte Spannung außerhalb des spezifizierten Bereichs fällt.

Claims (25)

  1. System, das Folgendes umfaßt: – ein Energieversorgungsnetzwerk, um Leistung in einem spezifizierten Spannungsbereich bereitzustellen, wobei das Netzwerk durch eine Antwortfunktion charakterisiert ist, und – eine Einrichtung, um Leistung aus dem Netzwerk zu ziehen, wobei die Einrichtung Folgendes umfaßt: – ein erstes Schieberegister, um Werte zu speichern, welche eine Abfolge von Stromamplituden darstellen, die von der Einrichtung in aufeinanderfolgenden Taktzyklen gezogen werden, – einen Addierer mit gewichteten Eingängen, um die Antwortfunktion des Energieversorgungsnetzwerks wiederzugeben, wobei der Addierer eine gewichtete Summe der Abfolge der Stromamplituden ermittelt, um eine Spannung abzuschätzen, die an die Einrichtung abgegeben wird.
  2. System nach Anspruch 1, bei dem die Einrichtung weiterhin einen Spannungskomparator umfaßt, um die abgeschätzte Spannung mit einer Spannungsschwelle zu vergleichen.
  3. System nach Anspruch 2, das weiterhin eine Dämpfungseinheit aufweist, um Arbeitsabläufe der Einrichtung anzupassen in Abhängigkeit davon, ob die abgeschätzte Spannung die Spannungsschwelle erreicht.
  4. System nach Anspruch 3, bei dem die Einrichtung ein Prozessor ist, der weiterhin Folgendes umfaßt: – eine Ausführungspipeline, die eine oder mehrere Einheiten umfaßt, um Befehle zu bearbeiten, – eine Abrufeinheit, um Befehle an die Ausführungseinheit zu liefern und – eine Clock-Gating-Einheit, um die Abgabe von Leistung an die eine oder die mehreren Einheiten zu steuern in Abhängigkeit von der Benutzung der Einheit durch einen aktuell ausgeführten Befehl.
  5. System nach Anspruch 4, bei dem die Dämpfungseinheit davor schützt, daß die Clock-Gating-Einheit die Leistung für die eine oder die mehreren Einheiten sperrt, abhängig davon, ob die abgeschätzte Spannung die obere Spannungsschwelle übersteigt.
  6. System nach Anspruch 4, bei dem die Dämpfungseinheit der Abrufeinheit signalisiert, Befehle an die Ausführungspipeline mit einer reduzierten Rate abzugeben, abhängig davon, ob die abgeschätzte Spannung unter die untere Spannungsschwelle fällt.
  7. System nach Anspruch 1, bei dem die Antwortfunktion des Energieversorgungsnetzwerks von n Antwortfunktionsamplituden dargestellt wird und die gewichteten Eingänge des Addierers n Eingänge umfassen, die jeweils proportional zu den n Antwortfunktionsamplituden gewichtet werden.
  8. System nach Anspruch 1, bei dem die Antwortfunktion des Energieversorgungsnetzwerks durch einen Satz von Rekursionskoeffizienten dargestellt wird und die gewichteten Eingänge des Addierers proportional zu den Rekursionskoeffizienten gewichtet werden.
  9. System nach Anspruch 8, bei dem die Einrichtung weiterhin ein zweites Schieberegister aufweist, um eine Abfolge von abgeschätzten Spannungen zu verfolgen, die von dem Addierer zur Verfügung gestellt werden, und die Abfolge der abgeschätzten Spannungen auf ausgewählte Eingänge des Addierers zurückzukoppelt.
  10. System nach Anspruch 9, bei die Rekursionskoeffizienten einen Satz von Stromkoeffizienten und einen Satz von Spannungskoeffizienten umfassen.
  11. System nach Anspruch 1, bei dem die Addierereingänge einen ersten und einen zweiten Satz von Eingängen aufweisen, die mit Ausgängen des ersten und zweiten Schieberegisters gekoppelt sind, wobei der erste Satz von Eingängen proportional zu den Stromkoeffizienten gewichtet ist und der zweite Satz von Eingängen proportional zu den Spannungskoeffizienten gewichtet ist.
  12. System, das Folgendes umfaßt: – ein Energieversorgungsnetzwerk, um Leistung in einem spezifizierten Spannungsbereich zur Verfügung zu stellen, wobei das Netzwerk durch eine Antwortfunktion charakterisiert ist, und – einen Prozessorkern, um Befehle auszuführen, wobei der Prozessorkern dazu dient, Leistungen aus dem Netzwerk in Reaktion auf die Befehle, die er ausführt, zu ziehen, – eine Überwachungseinheit, um eine von dem Prozessorkern gesehene Spannung abzuschätzen, wobei die Überwachungseinheit Folgendes umfaßt: – eine Stromberechnungseinheit, um eine Abfolge von Stromwerten zu verfolgen, die von dem Prozessorkern in aufeinanderfolgenden Taktzyklen gezogen wird, und – eine Strom-Spannungs-Berechnungseinheit, um die Abfolge von Stromwerten entsprechend der Antwortfunktion zu filtern, um eine abgeschätzte Spannung zu liefern, die von dem Prozessorkern gesehen wird.
  13. System nach Anspruch 12, bei dem die Überwachungseinheit weiterhin Folgendes umfaßt: – einen Schwellen-Komperator, um zu ermitteln, ob die abgeschätzte Spannung innerhalb eines spezifizierten Bereichs liegt, und – eine Dämpfungseinheit, um den Betrieb des Prozessorkerns anzupassen, abhängig davon, ob die abgeschätzte Spannung nicht innerhalb des spezifizierten Bereichs liegt.
  14. System nach Anspruch 13, bei dem der Prozessorkern mehrere Pipeline-Einheiten umfaßt, die selektiv aktiviert werden, in Reaktion auf von einem oder mehreren der Befehle, wobei jede der Pipeline-Einheiten eine zugeordnete Gate-Einheit aufweist, um ein Stromsignal an die Pipeline zu liefern, wenn die Pipeline-Einheit bei einem gegebenen Taktzyklus aktiviert ist.
  15. System nach Anspruch 14, bei dem die Stromberechnungseinheit ein Schieberegister mit einer Abfolge von Eingängen umfaßt, um Stromwerte für eine Abfolge von Taktzyklen zu speichern, wobei die gespeicherten Stromwerte eine Summe der Stromsi gnale darstellen, die von der Pipeline-Einheit in jedem der Taktzyklen der Abfolge zur Verfügung gestellt werden.
  16. System nach Anspruch 12, bei dem die Stromberechnungseinheit einen Addierer, um Stromamplituden abzuschätzen, die von dem Prozessorkern in einer Abfolge von m Intervallen gezogen werden, und ein m-Eingangs-Schieberegister umfaßt, um die abgeschätzten Stromamplituden zu speichern.
  17. System nach Anspruch 16, bei dem die Strom-Spannungs-Berechnungseinheit einen Addierer mit m Eingängen aufweist, wobei jeder Eingang entsprechend der Antwortfunktion des Energieversorgungsnetzwerks gewichtet wird, wobei der Addierer dazu dient, die von dem Prozessorkern gesehene Spannung abzuschätzen als eine gewichtete Summe von m Stromamplituden, die von dem ersten Schieberegister zur Verfügung gestellt werden.
  18. System nach Anspruch 17, bei dem die Antwortfunktion eine Impulsfunktion für das Energieversorgungsnetzwerk ist und die m Eingänge des Addierers proportional zu den Amplituden der Impulsfunktion in m Intervallen gewichtet werden.
  19. System nach Anspruch 17, das weiterhin ein zweites Schieberegister aufweist, um eine Abfolge von p abgeschätzten Spannungen zu speichern, die von dem Addierer zur Verfügung gestellt werden, und um die p abgeschätzten Spannungen auf Eingänge des Addierers zurückzukoppeln.
  20. System nach Anspruch 19, bei dem die Addierereingänge, die mit dem m-Eingangs-Schieberegister gekoppelt sind, proportional zu einem ersten Satz von Rekursionskoeffizienten gewichtet werden, die aus der Antwortfunktion des Energieversorgungsnetzwerks gewonnen worden sind, und die Addierereingänge, die mit dem p-Eingangs-Schieberegister gekoppelt sind, proportional zu einem zweiten Satz von Rekursionskoeffizienten gewichtet werden, die aus der Antwortfunktion gewonnen worden sind.
  21. Vorrichtung, die Folgendes umfaßt: – ein Schieberegister mit n Eingängen, um Werte zu speichern, die eine Stromamplitude in n aufeinanderfolgenden Intervallen darstellen, – n Gewichtungseinheiten, wobei jede Gewichtungseinheit dazu dient, einen Stromamplitudenwert von einem entsprechenden Eingang des Schieberegisters zu skalieren, und – einen Addierer, um die skalierten Stromamplituden aus den Gewichtungseinheiten zu summieren, um eine abgeschätzte Spannung zu liefern.
  22. Vorrichtung nach Anspruch 21, die weiterhin einen zweiten Addierer umfaßt, um Stromamplituden aus einer oder mehreren Schaltungen zu addieren, und um die Summe zu einem ersten Eingang des Schieberegisters zu liefern, abhängig von einem Taktsignal.
  23. Vorrichtung nach Anspruch 22, bei dem jede der Gewichtungseinheiten einen Wert speichert, der eine Antwortfunktion für ein System darstellt, in dem die Vorrichtung betrieben wird.
  24. Vorrichtung nach Anspruch 23, bei welcher der n-Eingangs-Addierer p zusätzliche Eingänge umfaßt und die Vorrichtung weiterhin ein zweites Schieberegister mit p Eingängen aufweist, um eine Abfolge von abgeschätzten Spannungen zu speichern, die von dem n+p-Eingangs-Addierer geliefert werden, und um die abgeschätzten Spannungen zu p gewichteten Eingängen des Addierers zurückzukoppeln.
  25. Vorrichtung nach Anspruch 23, bei dem die zusätzlichen n und p Eingänge des Addierers entsprechend zu Strom- und Spannungs-Rekursionskoeffizienten gewichtet werden, welche aus der Antwortfunktion gewonnen worden sind.
DE10297598T 2001-12-28 2002-12-11 Vorrichtung und System zum Abschätzen und Steuern von di/dt-induzierten Spannungsänderungen bei Energieversorgungen Expired - Fee Related DE10297598B4 (de)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US10/040,582 US7035785B2 (en) 2001-12-28 2001-12-28 Mechanism for estimating and controlling di/dt-induced power supply voltage variations
US10/040,582 2001-12-28
PCT/US2002/039785 WO2003058415A2 (en) 2001-12-28 2002-12-11 Power supply control system

Publications (2)

Publication Number Publication Date
DE10297598T5 true DE10297598T5 (de) 2005-01-13
DE10297598B4 DE10297598B4 (de) 2009-06-10

Family

ID=21911762

Family Applications (1)

Application Number Title Priority Date Filing Date
DE10297598T Expired - Fee Related DE10297598B4 (de) 2001-12-28 2002-12-11 Vorrichtung und System zum Abschätzen und Steuern von di/dt-induzierten Spannungsänderungen bei Energieversorgungen

Country Status (9)

Country Link
US (3) US7035785B2 (de)
JP (1) JP3996127B2 (de)
KR (1) KR100806423B1 (de)
CN (2) CN101539795B (de)
AU (1) AU2002364556A1 (de)
DE (1) DE10297598B4 (de)
GB (1) GB2400459B (de)
MY (1) MY136359A (de)
WO (1) WO2003058415A2 (de)

Families Citing this family (39)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9281718B2 (en) * 2004-06-28 2016-03-08 Broadcom Corporation On-board power supply monitor and power control system
US7249331B2 (en) * 2004-10-07 2007-07-24 International Business Machines Corporation Architectural level throughput based power modeling methodology and apparatus for pervasively clock-gated processor cores
EP1886240A2 (de) * 2005-06-03 2008-02-13 Quickturn Design Systems, Inc. System und verfahren zur analyse des leistungsverbrauchs einer elektronischen anordnung in emulation oder hardware auf basis von simulationsbeschleunigung
DE102005027691B4 (de) * 2005-06-15 2007-11-08 Infineon Technologies Ag Schaltanordnung zur Aktivierung eines Schaltungsblocks und Verfahren hierzu
US20070044046A1 (en) * 2005-08-22 2007-02-22 Faour Fouad A Method for providing a current sink model for an asic
US7397228B2 (en) * 2006-01-12 2008-07-08 International Business Machines Corporation Programmable on-chip sense line
US7480810B2 (en) * 2006-02-14 2009-01-20 International Business Machines Corporation Voltage droop dynamic recovery
US20070220293A1 (en) * 2006-03-16 2007-09-20 Toshiba America Electronic Components Systems and methods for managing power consumption in data processors using execution mode selection
US7607028B2 (en) * 2006-05-30 2009-10-20 International Business Machines Corporation Mitigate power supply noise response by throttling execution units based upon voltage sensing
US7467050B2 (en) * 2006-05-30 2008-12-16 International Business Machines Corporation Method for detecting noise events in systems with time variable operating points
KR100852188B1 (ko) 2007-02-27 2008-08-13 삼성전자주식회사 동적 전압 스케일링 시스템 및 방법
CN101646988B (zh) * 2007-03-28 2013-11-06 倪泰软件有限公司 电子装置以及确定电子装置工作负荷的方法
US8073669B2 (en) * 2007-08-21 2011-12-06 International Business Machines Corporation Method and apparatus for detecting clock gating opportunities in a pipelined electronic circuit design
US8244515B2 (en) * 2007-08-21 2012-08-14 International Business Machines Corporation Structure for detecting clock gating opportunities in a pipelined electronic circuit design
US7720621B2 (en) * 2007-08-30 2010-05-18 International Business Machines Corporation Application of multiple voltage droop detection
US7599808B2 (en) * 2007-08-31 2009-10-06 International Business Machines Corporation Application of multiple voltage droop detection and instruction throttling instances with customized thresholds across a semiconductor chip
US7818599B2 (en) * 2007-10-09 2010-10-19 International Business Machines Corporation Statistical switched capacitor droop sensor for application in power distribution noise mitigation
US8085024B2 (en) * 2008-04-29 2011-12-27 Exar Corporation Self-tuning digital current estimator for low-power switching converters
US20090281922A1 (en) * 2008-05-12 2009-11-12 Childress Rhonda L Method and system for selecting clothing items according to predetermined criteria
US8825464B2 (en) * 2008-09-02 2014-09-02 Oracle America, Inc. Method and apparatus for parallelization of sequential power simulation
CN102541130A (zh) * 2010-12-29 2012-07-04 鸿富锦精密工业(深圳)有限公司 Cpu工作电压控制系统及控制方法
US20120210151A1 (en) * 2011-02-11 2012-08-16 Mediatek Inc. Communication systems
US8429590B2 (en) * 2011-07-18 2013-04-23 International Business Machines Corporation System-level method for reducing power supply noise in an electronic system
JP5880962B2 (ja) * 2012-06-12 2016-03-09 ソニー株式会社 電子装置、計算方法、プログラム、および情報処理装置
US20140074449A1 (en) * 2012-09-07 2014-03-13 Lsi Corporation Scalable power model calibration
US9542517B2 (en) * 2012-12-31 2017-01-10 Taiwan Semiconductor Manufacturing Co., Ltd. Techniques for fast resonance convergence
CN105191296B (zh) * 2013-03-15 2019-12-03 罗伯特·博世有限公司 会议系统以及用于操作会议系统的过程
US9400295B2 (en) * 2013-05-09 2016-07-26 Qualcomm Incorporated Method and devices for non-intrusive power monitoring
US9342136B2 (en) * 2013-12-28 2016-05-17 Samsung Electronics Co., Ltd. Dynamic thermal budget allocation for multi-processor systems
KR20170013040A (ko) * 2015-07-27 2017-02-06 에스케이하이닉스 주식회사 버퍼, 반도체 장치 및 이를 이용한 반도체 시스템
KR20170025894A (ko) * 2015-08-31 2017-03-08 에스케이하이닉스 주식회사 등화 회로, 반도체 장치 및 이를 이용한 반도체 시스템
US10234920B2 (en) * 2016-08-31 2019-03-19 Intel Corporation Controlling current consumption of a processor based at least in part on platform capacitance
US10719320B2 (en) * 2017-07-31 2020-07-21 Intel Corporation Power noise injection to control rate of change of current
US10860051B2 (en) * 2018-09-10 2020-12-08 Qualcomm Incorporated Proactive clock gating system to mitigate supply voltage droops
US11809549B2 (en) * 2019-12-27 2023-11-07 Intel Corporation Apparatus and method for power virus protection in a processor
US11556342B1 (en) * 2020-09-24 2023-01-17 Amazon Technologies, Inc. Configurable delay insertion in compiled instructions
CN113899963A (zh) * 2021-08-30 2022-01-07 科华数据股份有限公司 交流系统晃电检测方法、装置及终端设备
CN113655994B (zh) * 2021-10-21 2022-02-18 北京壁仞科技开发有限公司 多核处理器的电流变化斜率控制方法、控制设备和介质
US20240094794A1 (en) * 2022-09-09 2024-03-21 SambaNova Systems, Inc. Integrated circuit that mitigates inductive-induced voltage droop using compute unit group identifiers

Family Cites Families (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4583111A (en) * 1983-09-09 1986-04-15 Fairchild Semiconductor Corporation Integrated circuit chip wiring arrangement providing reduced circuit inductance and controlled voltage gradients
US5442370A (en) * 1987-08-13 1995-08-15 Seiko Epson Corporation System for driving a liquid crystal display device
KR0130159B1 (ko) * 1994-10-28 1998-04-09 배순훈 모니터의 수평 출력 트랜지스터의 보호장치
US5872952A (en) * 1995-04-17 1999-02-16 Synopsys, Inc. Integrated circuit power net analysis through simulation
US6130602A (en) * 1996-05-13 2000-10-10 Micron Technology, Inc. Radio frequency data communications device
US5948106A (en) * 1997-06-25 1999-09-07 Sun Microsystems, Inc. System for thermal overload detection and prevention for an integrated circuit processor
US6532439B2 (en) * 1998-06-18 2003-03-11 Sun Microsystems, Inc. Method for determining the desired decoupling components for power distribution systems
US6304978B1 (en) * 1998-11-24 2001-10-16 Intel Corporation Method and apparatus for control of the rate of change of current consumption of an electronic component
US6477654B1 (en) * 1999-04-06 2002-11-05 International Business Machines Corporation Managing VT for reduced power using power setting commands in the instruction stream
US6937971B1 (en) * 1999-07-30 2005-08-30 Sun Microsystems, Inc. System and method for determining the desired decoupling components for a power distribution system having a voltage regulator module
US6564328B1 (en) 1999-12-23 2003-05-13 Intel Corporation Microprocessor with digital power throttle
US6304972B1 (en) * 2000-01-03 2001-10-16 Massachusetts Institute Of Technology Secure software system and related techniques
US6754784B1 (en) * 2000-02-01 2004-06-22 Cirrus Logic, Inc. Methods and circuits for securing encached information
US6549867B1 (en) * 2000-05-26 2003-04-15 Intel Corporation Power supply feed-forward compensation technique
US6636976B1 (en) * 2000-06-30 2003-10-21 Intel Corporation Mechanism to control di/dt for a microprocessor
US6536024B1 (en) * 2000-07-14 2003-03-18 International Business Machines Corporation Method for making integrated circuits having gated clock trees
US6735706B2 (en) * 2000-12-06 2004-05-11 Lattice Semiconductor Corporation Programmable power management system and method
US6523154B2 (en) * 2000-12-14 2003-02-18 International Business Machines Corporation Method for supply voltage drop analysis during placement phase of chip design
US6819538B2 (en) * 2001-05-15 2004-11-16 Freescale Semiconductor, Inc. Method and apparatus for controlling current demand in an integrated circuit
US7020590B2 (en) * 2001-12-28 2006-03-28 Intel Corporation Simulation of di/dt-induced power supply voltage variation

Also Published As

Publication number Publication date
CN1739079A (zh) 2006-02-22
GB0414214D0 (en) 2004-07-28
US7236920B2 (en) 2007-06-26
AU2002364556A8 (en) 2003-07-24
US20070225959A1 (en) 2007-09-27
KR20040072686A (ko) 2004-08-18
US20030125922A1 (en) 2003-07-03
JP3996127B2 (ja) 2007-10-24
JP2006504151A (ja) 2006-02-02
WO2003058415A2 (en) 2003-07-17
US7035785B2 (en) 2006-04-25
US7742910B2 (en) 2010-06-22
KR100806423B1 (ko) 2008-02-21
AU2002364556A1 (en) 2003-07-24
WO2003058415A3 (en) 2004-09-30
MY136359A (en) 2008-09-30
DE10297598B4 (de) 2009-06-10
GB2400459B (en) 2005-09-14
CN101539795B (zh) 2013-02-06
CN101539795A (zh) 2009-09-23
GB2400459A (en) 2004-10-13
US20060100840A1 (en) 2006-05-11
CN100489734C (zh) 2009-05-20

Similar Documents

Publication Publication Date Title
DE10297598B4 (de) Vorrichtung und System zum Abschätzen und Steuern von di/dt-induzierten Spannungsänderungen bei Energieversorgungen
US10002212B2 (en) Virtual power management multiprocessor system simulation
DE112007000446B4 (de) Verfahren und Vorrichtung zum Verwenden dynamischer Arbeitsmengenmerkmale, um die Skalierung von Frequenz und Spannung einer CPU zu steuern
DE102014014301B4 (de) Verfahren und Einrichtung zum Verwalten globaler Chip-Energie auf einem Chip-internen Mehrkernsystem
Gupta et al. Understanding voltage variations in chip multiprocessors using a distributed power-delivery network
DE102004062911B4 (de) Verfahren zum Betrieb eines Prozessors und zugehöriges Prozessorsystem
DE69629123T2 (de) Apparat und verfahren zum reduzieren des stromverbrauchs durch skalierung von spannung und frequenz
DE102005044533A1 (de) Aufgabenplanungsverfahren für geringe Leistungsableitung in einem Systemchip
DE69822591T2 (de) System und Verfahren zur Kontextumschaltung über vorbestimmte Unterbrechungspunkte
DE112004002506B4 (de) Vorrichtung und Verfahren für Energieleistungsüberwachungsgeräte zur Programmanpassung auf einen geringen Energieverbrauch
DE102020120019A1 (de) Proaktive di/dt-spannungs-dachabfall-abschwächung
DE102010029209B4 (de) Verfahren zur dynamischen Verteilung von einem oder mehreren Diensten in einem Netz aus einer Vielzahl von Rechnern
Nandi et al. System-level power/performance analysis for embedded systems design
DE112008004030T5 (de) Leistungsverwaltung in einem System mit einem Prozessor und einem Spannungswandler, der eine Leistungsspannung zu dem Prozessor liefert
DE102013217804A1 (de) System und Verfahren zur Berücksichtigung von Alterungswirkungen in einer Computervorrichtung
WO2004107144A1 (en) Monitoring and controlling power consumption
EP2765528A1 (de) Wahlfreier Zugriff auf Signalwerte eines FPGA zur Laufzeit
DE112020004583T5 (de) Adaptiver digitaler on-chip-leistungsschätzer
DE102006041444B4 (de) Schaltungsanordnung und Verfahren zum Erfassen einer Ausführungszeit eines Befehls in einem Rechnersystem
DE112018000372T5 (de) Systeme und verfahren für eine kohärente energieverwaltung
DE102006001073A1 (de) Arbeitszyklusdetektor mit erstem, zweitem und drittem Wert
DE112012006163T5 (de) Steuerung des Energieverbrauchs in Mehrkernumgebungen
DE102021121216A1 (de) Einrichtung und Verfahren zum Steuern eines Prozessorspitzensttroms
US20030125923A1 (en) Simulation of di/dt-induced power supply voltage variation
DE10354215B4 (de) Taktregulierungsvorrichtung sowie Schaltungsanordnung

Legal Events

Date Code Title Description
OP8 Request for examination as to paragraph 44 patent law

Ref document number: 10297598

Country of ref document: DE

Date of ref document: 20050113

Kind code of ref document: P

8364 No opposition during term of opposition
R119 Application deemed withdrawn, or ip right lapsed, due to non-payment of renewal fee