DE102020132721A1 - Vollständig digitaler spannungsmonitor (advm) mit einzelzykluslatenz - Google Patents

Vollständig digitaler spannungsmonitor (advm) mit einzelzykluslatenz Download PDF

Info

Publication number
DE102020132721A1
DE102020132721A1 DE102020132721.8A DE102020132721A DE102020132721A1 DE 102020132721 A1 DE102020132721 A1 DE 102020132721A1 DE 102020132721 A DE102020132721 A DE 102020132721A DE 102020132721 A1 DE102020132721 A1 DE 102020132721A1
Authority
DE
Germany
Prior art keywords
voltage
clock
code
advm
power supply
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
DE102020132721.8A
Other languages
English (en)
Inventor
Suyoung BANG
Eric Samson
Wootaek Lim
Charles Augustine
Muhammad Khellah
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 DE102020132721A1 publication Critical patent/DE102020132721A1/de
Pending legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03LAUTOMATIC CONTROL, STARTING, SYNCHRONISATION OR STABILISATION OF GENERATORS OF ELECTRONIC OSCILLATIONS OR PULSES
    • H03L7/00Automatic control of frequency or phase; Synchronisation
    • H03L7/06Automatic control of frequency or phase; Synchronisation using a reference signal applied to a frequency- or phase-locked loop
    • H03L7/08Details of the phase-locked loop
    • H03L7/081Details of the phase-locked loop provided with an additional controlled phase shifter
    • H03L7/0812Details of the phase-locked loop provided with an additional controlled phase shifter and where no voltage or current controlled oscillator is used
    • H03L7/0814Details of the phase-locked loop provided with an additional controlled phase shifter and where no voltage or current controlled oscillator is used the phase shifting device being digitally controlled
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/30Circuit design
    • G06F30/39Circuit design at the physical level
    • G06F30/394Routing
    • GPHYSICS
    • G01MEASURING; TESTING
    • G01RMEASURING ELECTRIC VARIABLES; MEASURING MAGNETIC VARIABLES
    • G01R19/00Arrangements for measuring currents or voltages or for indicating presence or sign thereof
    • G01R19/25Arrangements for measuring currents or voltages or for indicating presence or sign thereof using digital measurement techniques
    • G01R19/2503Arrangements for measuring currents or voltages or for indicating presence or sign thereof using digital measurement techniques for measuring voltage only, e.g. digital volt meters (DVM's)
    • GPHYSICS
    • G01MEASURING; TESTING
    • G01RMEASURING ELECTRIC VARIABLES; MEASURING MAGNETIC VARIABLES
    • G01R19/00Arrangements for measuring currents or voltages or for indicating presence or sign thereof
    • G01R19/25Arrangements for measuring currents or voltages or for indicating presence or sign thereof using digital measurement techniques
    • G01R19/2506Arrangements for conditioning or analysing measured signals, e.g. for indicating peak values ; Details concerning sampling, digitizing or waveform capturing
    • G01R19/2509Details concerning sampling, digitizing or waveform capturing
    • GPHYSICS
    • G04HOROLOGY
    • G04FTIME-INTERVAL MEASURING
    • G04F10/00Apparatus for measuring unknown time intervals by electric means
    • G04F10/005Time-to-digital converters [TDC]
    • 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/28Supervision thereof, e.g. detecting power-supply failure by out of limits supervision
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/30Circuit design
    • G06F30/39Circuit design at the physical level
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/30Circuit design
    • G06F30/39Circuit design at the physical level
    • G06F30/392Floor-planning or layout, e.g. partitioning or placement
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03LAUTOMATIC CONTROL, STARTING, SYNCHRONISATION OR STABILISATION OF GENERATORS OF ELECTRONIC OSCILLATIONS OR PULSES
    • H03L7/00Automatic control of frequency or phase; Synchronisation
    • H03L7/06Automatic control of frequency or phase; Synchronisation using a reference signal applied to a frequency- or phase-locked loop
    • H03L7/08Details of the phase-locked loop
    • H03L7/085Details of the phase-locked loop concerning mainly the frequency- or phase-detection arrangement including the filtering or amplification of its output signal
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M1/00Analogue/digital conversion; Digital/analogue conversion

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • General Engineering & Computer Science (AREA)
  • Evolutionary Computation (AREA)
  • Geometry (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Architecture (AREA)
  • Semiconductor Integrated Circuits (AREA)
  • Analogue/Digital Conversion (AREA)

Abstract

Ein vollständig digitaler Spannungsmonitor (ADVM) erzeugt einen Mehrfachbit-Ausgangscode, der sich im Verhältnis zu einer Spannung ändert, die überwacht wird, durch Nutzung der Spannungsauswirkung auf eine Gate-Verzögerung. ADVM benutzt eine einfache Verzögerungskette, die jeden Taktzyklus einen taktzykluslangen Puls empfängt, sodass die überwachte Versorgungsspannung jeden Zyklus für einen vollen Zyklus abgetastet wird. Die Ausgänge aller Verzögerungszellen der Verzögerungskette stellen gemeinsam einen aktuellen Spannungszustand als einen digitalen Thermometercode dar. In AVDM führt somit ein Spannungsabfallereignis zu einer Senkung im Ausgangscode von einem Nennwert, während ein Überschwingen zu einem Anstieg im Ausgangscode führt.

Description

  • ALLGEMEINER STAND DER TECHNIK
  • Ein analoger Spannungsabfalldetektor, wenn auch schnell, erfordert sorgfältiges Neudesign, wenn er von einem Prozess zu einem anderen gebracht wird. Zum Beispiel sind analoge Abfalldetektoren nicht auf Prozesstechnologie skaliert. Analoge Abfalldetektoren benötigen typischerweise auch eine reine Leistungsversorgung für ihre Referenzspannungserzeugung, was sie teuer im Design und Flächenbedarf macht, insbesondere für verteilte Spannungsbewegung.
  • Figurenliste
  • Die Ausführungsformen der Offenbarung werden vollständiger aus der folgenden ausführlichen Beschreibung und aus den beiliegenden Zeichnungen verschiedener Ausführungsformen der Offenbarung verständlich, die jedoch nicht als Begrenzung der Offenbarung auf die spezifischen Ausführungsformen zu verstehen sind, sondern nur der Erklärung und dem Verständnis dienen.
    • 1 veranschaulicht eine Nutzungsarchitektur hoher Ebene eines vollständig digitalen Spannungsmonitors (ADVM), der einen Digitalcode unter Verwendung eines Takts erzeugt, gemäß manchen Ausführungsformen.
    • 2 veranschaulicht eine Kurve, die Betrieb des ADVM zeigt, während er Spannungsänderung im Leistungsversorgungsknoten Vcc gemäß manchen Ausführungsformen überwacht.
    • 3 veranschaulicht eine Architektur hoher Ebene des ADVM gemäß manchen Ausführungsformen.
    • 4 veranschaulicht eine Implementierung auf Schaltungsebene des ADVM gemäß manchen Ausführungsformen.
    • 5 veranschaulicht eine Implementierung auf Schaltungsebene des ADVM gemäß manchen Ausführungsformen.
    • 6 veranschaulicht eine Kurve, die ein Zeitablaufdiagramm des ADVM gemäß manchen Ausführungsformen zeigt.
    • 7A-B veranschaulichen Kurven, die ADVM-Codeänderungen über Vcc und Temperatur und verschiedene Taktfrequenzen gemäß manchen Ausführungsformen zeigen.
    • 8 veranschaulicht eine Kurve, die Wellenformen von ADVM-Verzögerungskette-Inverterzuständen zeigt, die zu Aliasing-Code in einem Thermometercodeformat gemäß manchen Ausführungsformen führen.
    • 9 veranschaulicht eine smarte Vorrichtung oder ein Computersystem oder ein SoC (System-on-Chip) mit ADVM gemäß manchen Ausführungsformen der Offenbarung.
  • AUSFÜHRLICHE BESCHREIBUNG
  • On-Die Spannungsmonitore stellen ein Mittel zum Beobachten des Verhaltens einer Spannungsschiene (z.B. Leistungsversorgungsschiene Vcc) eines bestimmten Rechenblocks geistigen Eigentums (IP) bereit, während diverse Arbeitslasten ausgeführt werden. Ein vollständig digitaler Spannungsmonitor (ADVM) wird leicht so oft wie notwendig im Inneren des IP-Blocks instanziiert, wodurch Einblick in lokale Hot Spots gewährt wird. Hier bezieht sich der Begriff „Block geistigen Eigentums‟ oder „IP-Block“ allgemein auf eine wiederverwendbare Logikeinheit, eine Zelle oder integriertes Schaltungslayoutdesign, das geistiges Eigentum einer Partei ist. IP-Blöcke wie IP-Verarbeitungskerne, können für eine andere Partei lizenziert sein oder können im Besitz und in Verwendung nur einer einzigen Partei sein. Ein ADVM ist sowohl IP als auch prozessagnostisch, wodurch eine rasche Entwicklung eines kritischen Post-Silizium-Fehlerbehebungsmerkmals möglich ist, unabhängig von einer bestimmten Technologie und IP-Architektur. Ein ADVM detektiert rasch und exakt einen lokalen schnellen Versorgungsspannungsabfall. Ein Versorgungsspannungsabfall verschlechtert maximale IP-Frequenz oder benötigt höheres Spannungsschutzband mit damit verbundenen Leistungskosten. Eine schnelle lokale Abfalldetektion kombiniert mit einer gewissen lokalen Abfallminderung (z.B. lokales Anweisungsdrosseln oder lokale Ladungseinspritzung) verringert die Auswirkung des Abfalls auf maximale Frequenz (Fmax) oder minimale Betriebsspannung (Vmin).
  • Der ADVM verschiedener Ausführungsformen hat Mehrfachbitauflösung und Einzelzykluslatenz. Der ADVM mancher Ausführungsformen erzeugt einen Mehrfachbit-Ausgangscode, der sich im Verhältnis zu einer überwachten Spannung ändert, durch Nutzung der Spannungsauswirkung auf eine Gate-Verzögerung. In manchen Ausführungsformen benutzt der ADVM eine einfache Verzögerungskette, die einen taktzykluslangen Puls jeden Taktzyklus empfängt, sodass die überwachte Versorgungsspannung jeden Zyklus für einen vollen Zyklus abgetastet wird. Die Ausgänge aller Verzögerungszellen der Verzögerungskette stellen gemeinsam einen aktuellen Spannungszustand als einen digitalen Thermometercode dar. In dem AVDM führt somit ein Spannungsabfallereignis zu einer Senkung in dem Ausgangscode von einem Nennwert, während ein Überschwingen zu einer Erhöhung im Ausgangscode führt. Zur Behandlung von möglichem Aliasing-Rauschen für verteilte Abfalldetektion wenden verschiedene Ausführungsformen Einsetzen von Blasen für schnelle Abfallminderung an.
  • Es gibt viele technische Wirkungen verschiedener Ausführungsformen. Zum Beispiel ist der ADVM ein einfaches APR-freundliches Design, das kein abstimmbares Gate-Verzögerungselement (z.B. Logik, Zwischenverbindung, Speicher usw.) brauchen könnte, um es IP-agnostisch zu machen, während rasche Entwicklung unabhängig von der gegebenen Prozesstechnologie möglich ist. Hier bezieht sich der Begriff APR allgemein auf ein automatisches Platzierungs- und Routingschema. Werkzeuge für APR werden für ein Layout digitaler integrierter Schaltungen verwendet, die digitale Standardbibliothekenzellen aufweisen, wie Puffer, Inverter, UND-Gate, NUND-Gate, ODER-Gate, NODER-Gate, Multiplexer, Flip-Flop (FF) usw. Digitale Standardbibliothekenzellen stellen vorab designte Layouts digitaler Standardzellen für APR bereit. Die meisten von digitalen integrierten Schaltungen, die Mikroprozessoren und Grafikkerne aufweisen, sind mit Industriestandard-APR-Werkzeugen gebaut, wie Synopsys® IC Compiler und Cadence® Encounter. Es werden digitale Schaltungen verwendet, die digitale Signale erzeugen, im Gegensatz zu analogen Schaltungen, die analoge Signale erzeugen. Als solches erzeugt der ADVM eine exakte Darstellung abgetasteter Spannung im Mehrfachbit-Ausgangscode, der einen weiten Bereich von Spannungsänderungen (z.B. größer als 400 mV), bei einer schnelleren Reaktionszeit mit einer Latenz von nur einem Taktzyklus überwachen kann. Mit einem umfassenden Hochvolumenherstellungs- (HVM, High-Volume Manufacturing) Charakterisierungsfluss überwacht der ADVM Versorgungsspannung präzise (z.B. mit weniger als 7 mV Fehler) über einen sehr weiten Bereich von Prozess-Spannung-Temperatur- (PVT, Process-Voltage-Temperature) und IP-Taktfrequenzbedingungen. Andere technische Wirkungen gehen aus den verschiedenen Figuren und Ausführungsformen hervor.
  • In der folgenden Beschreibung werden zahlreiche Einzelheiten besprochen, um eine umfassendere Erklärung von Ausführungsformen der vorliegenden Offenbarung zu bieten. Für einen Fachmann ist jedoch offensichtlich, dass Ausführungsformen der vorliegenden Offenbarung ohne diese spezifischen Einzelheiten umgesetzt werden können. In anderen Fällen sind allgemein bekannte Strukturen und Vorrichtungen in Form eines Blockdiagramms gezeigt, und nicht im Detail, um eine Verschleierung von Ausführungsformen der vorliegenden Offenbarung zu vermeiden.
  • Es ist zu beachten, dass in den entsprechenden Zeichnungen der Ausführungsformen Signale mit Linien dargestellt sind. Manche Linien können dicker sein, um mehr konstituierende Signalpfade anzugeben, und/oder können Pfeile an einem oder mehreren enden aufweisen, um primäre Informationsflussrichtung anzugeben. Solche Angaben sind nicht als begrenzen gedacht. Vielmehr werden die Linien in Verbindung mit einer oder mehreren beispielhaften Ausführungsformen verwendet, um ein leichteres Verständnis einer Schaltung oder einer logischen Einheit zu erleichtern. Jedes dargestellte Signal, wie durch Designanforderungen oder -präferenzen vorgegeben, kann tatsächlich ein oder mehrere Signale aufweisen, die sich in jeder Richtung bewegen können, und kann mit jeder geeigneten Art von Signalschema implementiert sein.
  • In der gesamten Beschreibung und in den Ansprüchen bedeutet der Begriff „verbunden“ eine direkte Verbindung, wie elektrische, mechanische oder magnetische Verbindung zwischen den Dingen, die verbunden sind, ohne dazwischenliegende Vorrichtungen.
  • Hier ist der Begriff „analoges Signal“ jedes kontinuierliche Signal, für das das zeitlich variierende Merkmal (Variable) des Signals eine Darstellung einer anderen zeitlich variierenden Quantität ist, d.h. analog zu einem anderen zeitlich variierenden Signal.
  • Hier ist der Begriff „digitales Signal“ ein physikalisches Signal, das eine Darstellung einer Sequenz einzelner Werte (ein quantifiziertes diskretes Zeitsignal), zum Beispiel eines beliebigen Bit-Stroms, oder eines digitalisierten (abgetastet und analog/digital gewandelt) analogen Signals ist.
  • Der Begriff „gekoppelt“ bedeutet eine direkte oder indirekte Verbindung, wie eine direkte elektrische, mechanische oder magnetische Verbindung, zwischen den Dingen, die verbunden sind, oder eine indirekte Verbindung durch eine oder mehrere passive oder aktive Zwischenvorrichtungen.
  • Der Begriff „benachbart“ bezieht sich hier allgemein auf eine Position eines Dings, das neben (z.B. unmittelbar neben oder in der Nähe von, mit einem oder mehreren Dingen dazwischen) oder angrenzend zu einem anderen Ding (z.B. an dieses anliegend) liegt.
  • Der Begriff „Schaltung“ oder „Modul“ kann sich auf eine oder mehrere passive und/oder aktive Komponenten beziehen, die angeordnet sind, miteinander zusammenzuwirken, um eine gewünschte Funktion bereitzustellen.
  • Der Begriff „Signal“ kann sich auf mindestens ein Stromsignal, Spannungssignal, magnetisches Signal oder Daten/Taktsignal beziehen. Die Bedeutung von „einer“, „eine“, „eines“ und „der“, „die“, „das“ weisen Verweise auf den Plural auf. Die Bedeutung von „in“ weist „in“ und „auf‟ auf.
  • Der Begriff „Skalieren“ bezieht sich allgemein auf Umwandeln eines Designs (schematisch und Layout) von einer Prozesstechnologie zu einer anderen Prozesstechnologie und anschließende Verkleinerung in der Layoutfläche. Der Begriff „Skalieren“ bezieht sich allgemein auch auf ein Verkleinern von Layout und Vorrichtungen innerhalb desselben Technologieknotens. Der Begriff „Skalieren“ kann sich auch auf Einstellen (z.B. Verlangsamen oder Beschleunigen - d.h. Abwärtsskalieren bzw. Aufwärtsskalieren) einer Signalfrequenz relativ zu einem anderen Parameter beziehen, zum Beispiel Leistungsversorgungspegel. Die Begriffe „im Wesentlichen“, „fast“, „annähernd“, „nahe“ und „etwa“ beziehen sich im Allgemeinen auf innerhalb von +/- 10% eines Zielwertes liegend.
  • Falls nicht anderes spezifiziert ist, gibt die Verwendung der Ordinalzahlen „erster“, „zweiter“ und „dritter“ usw. zur Beschreibung eines gemeinsamen Objekts nur an, dass auf verschiedene Instanzen gleicher Objekte Bezug genommen wird, und soll nicht implizieren, dass die so beschriebenen Objekte in einer gegebenen Reihenfolge, sei es zeitlich, räumlich, in Reihung oder auf andere Weise, sein müssen.
  • Für den Zweck der vorliegenden Offenbarung bedeuten Phrasen „A und/oder B“ und „A oder B“ (A), (B) oder (A und B). Für den Zweck der vorliegenden Offenbarung bedeutet die Phrase „A, B, und/oder C“ (A), (B), (C), (A und B), (A und C), (B und C) oder (A, B und C).
  • Die Begriffe „links“, „rechts“, „vorne“, „hinten“, „oben“, „unten“, „über“, „unter“ und dergleichen in der Beschreibung und den Ansprüchen, falls vorhanden, werden zu beschreibenden Zwecken verwendet und nicht unbedingt zur Beschreibung permanenter relativer Positionen.
  • Es wird hervorgehoben, dass jene Elemente der Figuren, die dieselben Bezugszeichen (oder Namen) wie die Elemente einer anderen Figur haben, in jeder ähnlichen Weise wie die beschriebenen arbeiten oder funktionieren können, aber nicht darauf beschränkt sind.
  • Für die Zwecke der Ausführungsformen sind die Transistoren in verschiedenen hier beschriebenen Schaltungen und Logikblöcken Metalloxidhalbleiter- (MOS, Metal Oxide Semiconductor) Transistoren oder deren Ableitungen, wo die MOS-Transistoren Drain-, Source-, Gate- und Bulk-Anschlüsse aufweisen. Die Transistoren und/oder die MOS-Transistorderivate weisen auch Tri-Gate- -und FinFET-Transistoren, Gate-All-Around zylindrische Transistoren, Tunnelungs-FET (TFET), Quadratdraht, rechteckige Bandtransistoren, ferroelektrischen FET (FeFETs) oder andere Vorrichtungen auf, die Transistorfunktionalität implementieren, wie Kohlenstoffnanoröhrchen oder spintronische Vorrichtungen. Symmetrische MOSFET-Source- und Drain-Anschlüsse, d.h. sind identische Anschlüsse und werden hier austauschbar verwendet. Eine TFET-Vorrichtung hat andererseits asymmetrische Source- und Drain-Anschlüsse. Für Fachleute ist offensichtlich, dass andere Transistoren, zum Beispiel Bipolartransistoren (BJT PNP/NPN), BiCMOS, CMOS usw., verwendet werden können, ohne vom Umfang der Offenbarung abzuweichen.
  • 1 veranschaulicht eine Nutzungsarchitektur hoher Ebene 100 eines vollständig digitalen Spannungsmonitors (ADVM), der einen Digitalcode unter Verwendung eines Takts gemäß manchen Ausführungsformen erzeugt. Architektur 100 weist einen ADVM 101 auf, der IP-agnostisch ist. ADVM 101 koppelt an eine Leistungsversorgungsschiene Vcc, um sämtliche Anomalien in der Leistungsversorgungsspannung zu überwachen. Solche Anomalien weisen Abfall auf Vcc auf, der durch Leistungsabgabenetz- (PDN, Power Delivery Network) Resonanz verursacht wird, verknüpft mit effektivem Widerstand, parasitärer Induktanz und Entkopplungskapazität von Leistungsabgabenetz aufgrund eines plötzlichen Laststromanstiegs aufgrund einer Aktivitätsänderung von Logik oder einer IP, angetrieben durch Vcc. Anomalien weisen auch Überschwingen auf Vcc auf, das durch PDN-Resonanz, verknüpft mit effektivem Widerstand, parasitärer Induktanz und Entkopplungskapazität von PDN, aufgrund einer plötzlichen Laststromabnahme aufgrund einer Aktivitätsänderung von Logik oder einer IP, angetrieben durch Vcc, verursacht wird. Anomalien weisen auch langsame Änderung an Vcc aufgrund eines IR-Abfalls auf, wo ‚I‘ Laststrom von Logik oder eines IP angibt und ‚R‘ effektiven Widerstand des PDN angibt. In manchen Ausführungsformen nutzt ADVM 101 Vcc-Auswirkung auf Gate-Verzögerung (z.B. Ausbreitungsverzögerung durch einen Inverter, Puffer oder ein ähnliches Logikgate) zur Überwachung des Vcc-Pegels. Gate-Verzögerung nimmt mit niedrigerem Vcc-Pegel zu.
  • ADVM 101 weist digitale Komponenten wie Puffer, Inverter, Flip-Flops, Multiplexer, UND/NUND-Gates auf, um eine exakte Darstellung abgetasteter Spannung in Mehrfachbit-Ausgangscode bereitzustellen, die einen weiten Bereich von Spannungsänderungen (z.B. größer als 400 mV) bei einer schnellen Reaktionszeit von nur einem Taktzyklus Latenz überwachen können. ADVM 101 verwendet einen Takt (z.B. einen IP-Domänentakt, auch als Domänentakt bezeichnet) als Eingang, um einen taktzykluslangen Puls, der durch eine Inverterverzögerungskette geht, jeden Zyklus zu erzeugen. Hier bezieht sich Domäne allgemein auf eine Logikfläche wie einen Kern, Funktionseinheitsblock (z.B. Ausführungseinheit, arithmetische Logikeinheit, Gleitkommaeinheit usw.), der unter Verwendung eines bestimmten Takts und einer Leistungsversorgung arbeitet. Domänentakt ist der Takt zu einer solchen Logikfläche. In manchen Ausführungsformen tasten Flip-Flops Inverterzustände bei jeder steigenden Flanke des Domänentakts ab. Für einen ungeraden Zyklus geht eine hohe Phase des geteilten Takts durch die Verzögerungskette und für einen geraden Zyklus geht eine niedere Phase des geteilten Takts durch die Verzögerungskette. Daher, um beständige Ausgangscodes in jedem Domänentaktzyklus zu erzeugen, ungeachtet der Taktphase, die zu der Kette geleitet wird, verwendet ADVM 101 Polaritätsumkehr des Codes in jedem zweiten Zyklus. In manchen Ausführungsformen implementieren einfache Multiplexoren, die durch den geteilten Takt gesteuert werden, Polaritätsumkehr des Codes in jedem zweiten Zyklus.
  • In manchen Ausführungsformen benutzt ADVM 101 Blasenunterdrückungslogikgates zur Unterdrückung einer durch Flip-Flop-Metastabilitätinduzierten Blase im Code. Der Ausgangscode von ADVM 101 ist ein Digitalcode wie ein Thermometercode. Die Ausführungsformen sind jedoch nicht auf einen Thermometercode begrenzt. Andere Codes wie binärer Code und Gray-codierte Codes können verwendet werden.
  • 2 veranschaulicht Kurve 200, die Betrieb von ADVM, wie er Spannungsänderung im Leistungsversorgungsknoten Vcc überwacht, gemäß manchen Ausführungsformen zeigt. ADVM 101 erzeugt Mehrfachbit-Ausgangscode, der sich im Verhältnis zu Vcc ändert. Wenn beispielsweise Vcc zu fallen beginnt, nimmt ADVM-Ausgangscode jeden Zyklus ab.
  • 3 veranschaulicht eine Architektur hoher Ebene 300 von ADVM 101 gemäß manchen Ausführungsformen. Architektur 300 von 3 veranschaulicht ADVM 101, der einen Taktteiler 301 und einen Zeit/Digital-Wandler (TDC, Time-to-Digital Converter) 302 aufweist. In verschiedenen Ausführungsformen empfängt Taktteiler 301 den Eingangstakt und erzeugt einen frequenzgeteilten Takt DivClock für TDC 302. Es kann jede geeignete Taktquelle den Eingangstakt erzeugen. Zum Beispiel kann ein Phasenregelkreis (PLL, Phase Locked Loop), Verzögerungsregelkreis (DLL, Delay Locked Loop), Frequenzregelkreis (FLL, Frequency Locked Loop), Ringoszillator usw. zum Erzeugen des Eingangstakts verwendet werden. TDC 302 ist ein Zeitdigitalisierer, der ein Zeitintervall misst und es in digitalen (z.B. binären) Ausgangscode umwandelt. In manchen Ausführungsformen ist Taktteiler 301 ein durch zwei teilender Frequenzteiler. In anderen Ausführungsformen können andere Teilverhältnisse (z.B. Teilung durch 4, Teilung durch 8 usw.) verwendet werden.
  • In verschiedenen Ausführungsformen weist TDC 302 eine Latenz von einem Zyklus des Eingangstakts auf. In manchen Ausführungsformen weist TDC 302 eine Verzögerungskette auf, die Verzögerungszellen aufweist. Die Verzögerungskette empfängt den frequenzgeteilten Takt DivClk an einem Eingang der Verzögerungskette. Die Verzögerungskette koppelt an mehrere aufeinanderfolgende Schaltkreise. Jeder der aufeinanderfolgenden Schaltkreise koppelt an einen Ausgang einer individuellen Verzögerungszelle der Verzögerungskette. Ein Auswahlschaltkreis koppelt mit den mehreren aufeinanderfolgenden Schaltkreisen. Der Auswahlschaltkreis weist mehrere Multiplexer auf. Jeder Multiplexer koppelt an einen einzelnen folgenden Schaltkreis der mehreren aufeinanderfolgenden Schaltkreise. In verschiedenen Ausführungsformen wendet TDC 302 Polaritätsumkehr des Codes in jedem zweiten Zyklus an. Mehrere Multiplexoren, die durch den geteilten Takt DivClk gesteuert sind, implementieren Polaritätsumkehr des Codes in jedem zweiten Zyklus. In manchen Ausführungsformen weist TDC 302 mehrere Logikgates auf. Jedes Logikgate der mehreren Logikgates weist einen Eingang auf, der an einen Ausgang jedes Multiplexers gekoppelt ist. In manchen Ausführungsformen weist jedes Logikgate eines von einem UND-Gate, NUND-Gate oder NODER-Gate auf. Blasenunterdrückung kann auch andere digitale Logikgates verwenden. Die mehreren Logikgates unterdrücken durch Metastabilität induzierte Blase im Ausgang der mehreren aufeinanderfolgenden Schaltkreise. Als solches ist der Code frei von Aliasing-basierten Fehlern.
  • In manchen Ausführungsformen koppelt TDC 302 an eine Leistungsverwaltungseinheit (PMU, Power Management Unit) 303. PMU 303 empfängt den Ausgangscode von ADVM 101 und ergreift passende Maßnahmen gemäß dem Wert des Codes. Zum Beispiel kann PMU 303 Frequenz eines Takts eines Phasenregelkreises (PLL) erhöhen oder senken, Ladebedingungen verringern (z.B. durch Verschieben oder Verteilen leistungsintensiver Arbeitslasten) usw. In manchen Ausführungsformen stellt PMU 303 den Code einem Stift eines Prozessors bereit, der durch Logik außerhalb des Prozessors zugänglich ist. Als solches kann der Code bei verschiedenen Aspekten des Prozessors Fehlerbehebung durchführen, wie Zeitsteuerungsfehler (z.B. Einrichtungs-/Haltezeitsteuerungsprobleme).
  • 4 veranschaulicht eine Implementierung auf Schaltungsebene 400 von ADVM 101 gemäß manchen Ausführungsformen. In manchen Ausführungsformen ist Taktteiler 401/301 ein durch zwei teilender Teiler, der einen Inverter 403 und Flip-Flop (FF) 404 aufweist. Der Ausgang (Q) von FF 404 koppelt an einen Eingang von Inverter 403, während ein Ausgang von Inverter 403 an einen Eingang (D) von FF 404 koppelt. Ein Eingangstaktstift von FF 404 empfängt einen Takt, und der Ausgang Q von FF 404 ist ein durch zwei teilender (Div-2 Clk) auf Knoten DivClk. Hier werden Knotennamen und Signalnamen untereinander austauschbar verwendet. Zum Beispiel kann sich DivClk auf Knoten DivClk oder Signal DivClk beziehen, abhängig von dem Zusammenhang des Satzes.
  • In manchen Ausführungsformen weist TDC 402/302 eine Verzögerungskette 402a, mehrere aufeinanderfolgende Einheiten 402b, mehrere Auswahlschaltkreise 402c und Blasenunterdrückungslogik 402d auf. In manchen Ausführungsformen weist Verzögerungskette 402a mehrere Verzögerungszellen 405 auf. Der Eingang der Verzögerungskette 402a ist der DivClk. In diesem Beispiel ist jede Verzögerungszelle eine Inversionslogik wie Inverter 405. Jede Verzögerungszelle koppelt an eine Leistungsversorgungschiene Vcc. Als solches hängt eine Ausbreitungsverzögerung jeder Verzögerungszelle direkt mit dem Spannungspegel von Leistungsversorgungschiene Vcc zusammen. Wenn der Spannungspegel fällt, nimmt Ausbreitungsverzögerung der Verzögerungszelle zu, und wenn der Spannungspegel steigt, steigt die Ausbreitungsverzögerung der Verzögerungszelle. Jede Verzögerungszelle koppelt in einem String. Beispielsweise koppelt der Ausgang der ersten Verzögerungszelle an einen Eingang der nächsten Verzögerungszelle und so weiter. In diesem Beispiel zeigt 4 64 Verzögerungszellen. Es kann jedoch eine beliebige Anzahl von Verzögerungszellen verwendet werden. Inversionsverzögerungszellen können beliebige geeignete digitale oder prozessskalierbare Verzögerungszellen sein. Während ein Inverter eine einfachste Form einer Inversionsverzögerungszelle ist, können andere Zellen wie NUND-Gate, NODER-Gate, invertierende Multiplexer usw. als Inversionsverzögerungszellen konfiguriert sein und verwendet werden. Diese Inversionsverzögerungszellen können Standardzellen aus einer Standardzellenbibliothek sein.
  • In verschiedenen Ausführungsformen weisen mehrere aufeinanderfolgende Einheiten 402b mehrere Flip-Flops (FF) 406 auf. Es kann jedes geeignete Flip-Flop-Design zum Implementieren von FF 406 verwendet werden. Zum Beispiel ist FF 406 ein Master-Slave D-FF, ein Stell-Rückstell-basierter FF, ein FF mit Takt-Gating, ein FF mit Abtastkapazität usw. Der Eingang D jedes FF 406 koppelt an einen Ausgang einer invertierenden Verzögerungszelle. Jeder FF 406 verwendet den Clock als den Abtasttakt, der langsamer in Frequenz ist als die Frequenz des DivClock. Zum Beispiel ist Abtasttakt zweimal so langsam wie der DivClock. Ein Eingang durch einen Auswahlschaltkreis empfängt einen Ausgang q jedes FF 406, wie gezeigt. Hier sind 64 FFs 406 gezeigt, die zu 64 Ausgängen q[0], q[1], ... q[62] und q[63] führen. Flip-Flops 406 tasten Zustände von Invertern 405 an jeder steigenden Flanke des Domänen-Clock ab. Für einen ungeraden Zyklus geht hohe Phase des geteilten Takts (Div-2 CLK) durch Verzögerungskette 402a und für einen geraden Zyklus geht niedere Phase von geteiltem Takt (Div-2 CLK) durch Verzögerungskette 402a. Zum Erzeugen beständiger Ausgangscodes in jedem Domänentaktzyklus, ungeachtet der „Div-2 CLK“ Phase, die zu der Kette geleitet wird, verwendet ADVM 400 Polaritätsumkehr des Codes in jedem zweiten Zyklus. In manchen Ausführungsformen implementieren einfache Multiplexoren 408, die durch den geteilten Takt gesteuert werden, Polaritätsumkehr des Codes in jedem zweiten Zyklus.
  • In manchen Ausführungsformen weist jeder Auswahlschaltkreis von Schaltkreis 402c eine Inversionslogik 407 und einen Multiplexer 408 auf. Inversionslogik 407 kann ein Inverter in seiner einfachsten Form sein oder kann eine andere digitale Inversionslogik wie ein NUND-Gate, NODER-Gate usw. sein, das als ein Inverter konfiguriert ist. Jeder Multiplexer ist durch DivClk steuerbar. Wenn zum Beispiel DivClk hoch ist, wird Multiplexereingang ‚1‘ als Ausgang Cm bereitgestellt, und wenn DivClk nieder ist, wird Multiplexereingang ‚0‘ als Ausgang Cm bereitgestellt. Wenn Verzögerungszellen 405 Inversionslogikgates sind, empfängt jeder Multiplexer-Eingang ‚0‘ und -Eingang ‚1‘ abwechselnde Signale. Zum Beispiel empfängt der erste Multiplexer 408 Cf[0] (das eine Inversion von q[0] ist) an seinem Eingang'0' und q[0] (das ein logisches Äquivalent zur Inversion von Cf[0] ist) an seinem Eingang'1', der nächste Multiplexer 408 (z.B. der zweite Multiplexer) empfängt Cf[1] (das äquivalent zu q[1] ist) an seinem Eingang'0' und eine Inversion von q[1] (das logisch äquivalent zu Inversion Cf[1] ist) an seinem Eingang'1' und so weiter. DivClock wählt Cf[63:0] für Cm[63:0], wenn er 0 ist, und Inversion von Cf[63:0], wenn er 1 ist. Logikgate 409 des Blasenunterdrückungsschaltkreises 402d empfängt Ausgang Cm jedes Multiplexers. Bei 402c werden die resultierenden Ausgangscodes Cm[63:0] zu einem Thermometercode. Es kann jedoch jede Anzahl von Multiplexern 408 und 64 Inversionslogik 407 in Übereinstimmung mit der Anzahl von Verzögerungszellen 405 verwendet werden. Im Allgemeinen ist die Zahl von FF 46, Inversionslogikgates 407 und Multiplexern 408 gleich (oder im Wesentlichen gleich) der Anzahl von Verzögerungszellen 405.
  • In manchen Ausführungsformen ist Logikgate 409 ein UND-Gate. In diesem Fall empfängt das erste UND-Gate einen hartverdrahteten Logik ‚1‘-Wert bei seinem ersten Eingang und Cm[0] bei seinem zweiten Eingang. Das nächste UND-Gate (z.B. zweite UND-Gate) empfängt Cm[0] bei seinem ersten Eingang und Cm[1] bei seinem zweiten Eingang und so weiter. Als solches wird jede durch Flip-Flop-Metastabilität induzierte Blase in Code Cm[0] bis Cm[63] durch Blasenunterdrückungslogikgates 409 unterdrückt. Während UND-Gates 409 gezeigt sind, können diese UND-Gates als NUND-Gates implementiert sein. In diesem Fall sind 64 UND-Gate gezeigt, was dieselbe Anzahl von Verzögerungszellen 405 ist. Die Ausgänge C jedes UND-Gates bilden gemeinsam einen Bus (z.B. einen 64-Bit Code).
  • Der verzögerungsbasierte Spannungsmonitor 101 von verschiedenen Ausführungsformen wendet vollständig digitale Standardzellen an. Daher wird sein Layout leicht mit Industriestandard-APR-Werkzeug(en) ohne manuellen Designaufwand von Layoutdesignern gebildet. ADVM 400 hat schnelle Reaktionszeit von einem Zyklus Latenz durch Hindurchleiten eines „Div-2 CLK“ jeden Zyklus und Invertieren der Polarität des Zwischencodes (z.B. Cf[63:0]) jeden zweiten Taktzyklus. ADVM 400 ist durch Abtasten von Vcc über einen vollen Zyklus exakt, wodurch verbesserte Abfalldetektionsauflösung bereitgestellt ist. ADVM 400 hat auch umfassenden HVM- (High Volume Manufacturing, Herstellung hohen Volumens) Charakterisierungsfluss, der ihn prozessagnostisch und IP-agnostisch macht, wodurch rasche Entwicklung für Technologieprozessknoten möglich ist. Während die Ausführungsformen unter Bezugnahme auf 64-Bit Code, der 64 UND-Gates verwendet, und andere Logik beschrieben sind, sind die Ausführungsformen nicht auf eine bestimmte Codegröße begrenzt. Zum Beispiel kann eine 26, 32, 128 usw. Codegröße verwendet werden, die auch die Anzahl von Logikgates für ADVM 400 ändert.
  • 5 veranschaulicht eine Implementierung auf Schaltungsebene von ADVM 500 gemäß manchen Ausführungsformen. ADVM 500 ist ADVM 400 ähnlich, mit Ausnahme einer anderen Implementierung von Verzögerungskette 502a und Auswahlschaltkreis 502c. In manchen Ausführungsformen sind Inversionsverzögerungszellen 405 durch Nicht-Inversionsverzögerungszellen 505 ersetzt. Solche Nicht-Inversionsverzögerungszellen 505 weisen Puffer, UND-Gates, ODER-Gates usw. auf. In diesem Beispiel sind Nicht-Inversionsverzögerungszellen 505 als Puffer veranschaulicht. Durch Verwendung von Puffern 505 werden die Eingänge von Multiplexer 408 nicht gewechselt, wie unter Bezugnahme auf 4 beschrieben. Zum Beispiel empfängt erster Multiplexer 408 Cf[0] (das q[0] äquivalent ist) an seinem Eingang'0' und eine Inversion von q[0] (das logisch äquivalent zu Inversion Cf[0] ist) an seinem Eingang'1', der nächste Multiplexer 408 (z.B. der zweite Multiplexer) empfängt auch Cf[1] (das q[1] äquivalent ist) an seinem Eingang'0' und eine Inversion von q[1] (das logisch äquivalent zu Inversion Cf[1] ist) an seinem Eingang'1' und so weiter. Im Sinne des technischen Effekts ist ADVM 500 ähnlich ADVM 400.
  • 6 veranschaulicht Kurve 600, die ein Zeitablaufdiagramm des ADVM gemäß manchen Ausführungsformen zeigt. Kurve 600 zeigt Daten von jeder Verzögerungszelle von Verzögerungskette 402a. In diesem Fall ist die Verzögerungszelle ein Inverter, und der Strich über d[0] gibt eine Inversion von d[0] an. Ungeachtet der Eingangspulsphase, die in den ADVM eingespeist wird, ist sein Ausgangscode C[63:0] beständig. In dem Beispiel ist C[63:0] = 0000_0000_0000_000F, das in binären Code BIN_C[5:0] = 00 0100 codiert werden kann, entsprechend einer dezimalen Ganzzahl von 4.
  • 7A-B veranschaulichen Kurven 700 und 720, die ADVM-Codeänderungen über Vcc, Temperatur bzw. verschiedene Taktfrequenzen gemäß manchen Ausführungsformen zeigen. In manchen Ausführungsformen wird der HVM-Charakterisierungsfluss verwendet, da ADVM-Code für langsame Variation aufgrund von Die-Prozessecke (P), aktueller Betriebsspannung (Vcc), aufweisend jedes hinzugefügte Spannungsschutzband, aktueller Betriebstaktfrequenz (F), wo AVDM Abtasttaktperiode TCLK = 1/F, und aktueller Temperatur (T) empfindlich ist. 7A-B zeigen ein Beispiel, wie sich ADVM-Code über Vcc und Temperatur, bei einer bestimmten Prozessecke (z.B. langsamen Ecke) bzw. bei zwei Frequenzen von 1 GHz und 2 GHz ändert.
  • Da ein bestimmter IP-Block während tatsächlicher Verwendung verschiedene Betriebsbedingungen durchläuft, kann ein ADVM-Charakterisierungspunkt nicht ausreichend sein, um die Auswirkung von PVT- und F-Variationen auf ADVM-Ausgangscode auszugleichen. Als eine Lösung weist in manchen Ausführungsformen der HVM-Charakterisierungsfluss von ADVM 101 die folgenden zwei Betriebe auf. Der erste Betrieb charakterisiert ADVM-Code pro Die (P_ during test), während der zweite Betrieb, während der tatsächlichen Verwendung von ADVM 101, bestehende PMU des gegebenen IP-Blocks nutzt, um fortlaufend die Auswirkung eines neuen V-, T-, F-Betriebspunkts auf ADVM-Code zu berechnen.
  • In manchen Ausführungsformen ist für den ersten Betrieb ADVM-Code pro Die (P) während Test bei M Spannungspunkten (V), zwei Temperaturpunkten (T) (z.B. heiße und kalte Temperatur) und zwei Frequenzpunkten (F) charakterisiert. Der abgetastete ADVM-Code wird in On-Die-Sicherungen oder anderem nicht flüchtigen Speicher gespeichert. Zum Beispiel werden ADVM-Codes in (M × 2 × 2) × log2 (ADVM-Kettenlänge) gespeichert. Die ADVM-Kettenlänge ist in 4-5 64.
  • Unter erneuter Bezugnahme auf 7A-B berechnet für den zweiten Betrieb, während tatsächlicher Verwendung, um bestehende Leistungsverwaltungseinheit des gegebenen IP zu nutzen, ein Log fortlaufend die Auswirkung eines neuen V-, T-, F-Betriebspunkts auf ADVM-Code. Zum Beispiel werden in ungefähr 100s von Mikrosekunden T Änderungen erfasst. In einem anderen Beispiel berechnet der Log fortlaufend die Auswirkung eines neuen V, T, F sofort, sobald entweder V- oder F-Änderung ausgeführt wird. In manchen Ausführungsformen wird die Auswirkung eines neuen V-, T-, F-Betriebspunkts auf ADVM-Code durch tri-lineare Interpolation in Bezug auf V, T und 1/F (wo 1/F eine Taktperiode ist) basierend auf gemessenen oder gespeicherten Codes aus dem ersten Betrieb in dem Ablauf berechnet.
  • Mit dem oben stehenden zweistufigen Ablauf wird jede kritische Entscheidung, die auf aktuellem AVDM-Code beruht (z.B. Ausscheiden einer Abfallminderungsaktion) korrekt trotz Variationen in P, V, T und F ausgeführt. Simulation zeigt, dass korrigierter AVDM-Code mit dem Schema verschiedener Ausführungsformen einen Vcc-Überwachungsfehler (z.B. kleiner als 7 mV) über einen sehr weiten Bereich von P, V, T und F ergibt.
  • 8 veranschaulicht Kurve 800, die Wellenformen des Zustands von ADVM-Verzögerungsketteninverter zeigt, die zu Aliasing-Code in Thermometercodeformat gemäß manchen Ausführungsformen führt. In Abwesenheit von Logik 402d, wie hier besprochen, kann ADVM an Code-Aliasing leiden, da er keine dedizierte Rückstellphase hat und stattdessen Pulse des geteilten Takts DivClock sich weiter durch die Verzögerungskette ausbreiten, was dazu führt, dass Pulse von vorherigen Taktzyklen einen aktuellen Ausgangscode beeinflussen. Dies manifestiert sich in langer Verzögerungskette und extremen Bedingungen von langsamem P, niederem V, niederem T und schnellem F, was zur Erfüllung der Aliasing-Bedingung führt, dass 2 × TCLK kleiner als Gesamtverzögerung über die Verzögerungskette wird. Andererseits kann unter einer extremen Bedingung von schnellem P, hohem V, hohem T und langsamen F eine Code-Sättigung eintreten, wenn eine kurze Verzögerungskette verwendet wird und ein Betrieb verwendet wird, der zur Erfüllung der Sättigungsbedingung führt, dass TCLK größer als Gesamtverzögerung über Verzögerungskette 402a (oder 502a) wird. Sowohl Code-Aliasing als auch Sättigung sind mit der Eliminierung von abstimmbarer Gate-Verzögerung in ADVM verschärft.
  • Kurve 800 zeigt, wie 16-Bit ADVM-Ausgangscode zu Aliasing führt. Unter der Annahme, dass der Spannungszustand nicht über 4 aufeinanderfolgende Zyklen besteht, sind die ersten zwei erfassten Codes 000F, wie gewünscht, aber die nächsten zwei Codes werden 0F0F und das MSB (signifikanteste Bit) 0F ist auf den vorherigen Puls zurückzuführen, der sich noch durch die Kette ausbreitet.
  • Zur Behandlung von in Konflikt stehenden Aliasing- und Sättigungsbedingungen ist eine Methode, die minimale Verzögerungskettenlänge (z.B. 128b oder 256b) zu verwenden, die notwendig ist, um Sättigung unter ungünstigster (Sättigungs-) Betriebsbedingung für den gegebenen IP-Block zu verhindern und dann Aliasing zu detektieren und zu korrigieren, falls es eintritt.
  • Die folgenden Ausführungsformen beschreiben drei verschiedene Schemata zur Detektion und Korrektur von ADVM-Code-Aliasing.
  • In dem ersten Verfahren oder Schema wird das Aliasing-Codeproblem durch Erzeugen und Fusionieren eines Aliasing-Maskierungscodes während der HVM-Charakterisierungsphase und Bereitstellen des Aliasing-Maskierungscodes dem ADVM 101, um den Aliasing-Code durch Durchführen von bitweisem UND-Betrieb zwischen dem rohen Ausgangscode und dem Maskierungscode herauszufiltern, gelöst. Für das Beispiel in Kurve 800, wo Original-CODE [15:0] = OxOFOF (wo 0x hexadezimale Zahlendarstellung angibt und signifikantestes „0F“ das Ergebnis von Aliasing ist), wird Masking-CODE [15:0] = 0x00FF unter ungünstigsten Bedingungen erzeugt und Filtered-CODE [15:0] wird gleich Original-CODE „&“ Masking-CODE = 000F, wo „&“ bitweise und Betrieb angibt.
  • In dem zweiten Verfahren oder Schema kann die Lösung zur Korrektur eines Aliasing-Codeproblems keinen zusätzlichen Herstellungsaufwand verwenden und benutzt parallele Thermometer-zu-Binärcode-Codierer. Diese parallelen Thermometer-zu-Binärcode-Codierer codieren die am wenigsten signifikanten 2K-1 Bits der Thermometercodes zu K-Bit binären Codes, wo K die Werte E, E+1, ..., E+N-1 für N > 1 annehmen kann, durch Summieren aller einzelnen Bits eines Thermometercodes, der in einen binären Code zu codieren ist. Dann entscheidet eine schnelle Code-Nachbearbeitungs-Aliasing-Korrekturlogik (ACL, Aliasing Correction Logic) durch Untersuchen jedes der K-Bit binären Codes (wo K =E, E+1, ..., E+N-1 und N > 1), ob ein aliased Code vor und welcher K-Bit binäre Code zu Spannungsüberwachung herangezogen werden sollte. Die ACL untersucht alle binären Codes und findet gesättigte binäre Codes. Wenn K-Bit binäre Codes, wo E ≤ K ≤ S, alle gesättigt sind und wenn E ≤ S < E+N-1, nimmt die ACL (S+1)-Bit binären Code als Spannungsüberwachungscode. Wenn S = E+N-1, nimmt die ACL S-Bit binären Code und sendet eine „Notfallwarnung“ an PMU 303, um Code-Sättigung anzuzeigen.
  • In einem Beispiel von 32b Code, wo C[31:0] = 0xOOOF_FFFF, werden drei Binärcode-Codierer mit E = 3 und N = 3 verwendet, um das am wenigsten signifikante 8-Bit, 16-Bit und 32-Bit der Thermometercodes zu 3-Bit, 4-Bit, und 5-Bit binärem Code zu codieren. Die drei codierten binären Codes sind 1112 (=7), 11112 (=15) bzw. 1_01002 (=20). Die ACL untersucht die binären Ausgänge von 1112, und 11112 und informiert, dass sie gesättigt sind (S = 4), so dass die den 5-Bit binären Code als Spannungsüberwachungscode nimmt. Ebenso, wenn C[31:0] = OxFFOO_OFFF, hat der Code Aliasing von „FF“ in den signifikantesten Bits (MSBs) und die ACL filtert den Aliasing-Code „FF“ heraus, die Codierer erzeugen 1112 (=3), 11002 (=12) und die ACL untersucht sie. In diesem Fall ist nur der 3-Bit binäre Code von 1112 gesättigt, sodass die ACL den 4-Bit binären Code von 11002 als Spannungsüberwachungscode nimmt, wobei sie den 5-Bit binären Code ignoriert, und den Aliasing-Code herausfiltert.
  • In dem dritten Verfahren oder Schema kann die Lösung zur Korrektur von Aliasing, anders als das erste Verfahren, keinen zusätzlichen Herstellungsaufwand verwenden und benutzt parallele Thermometer-zu-Binärcode-Codierer wie in dem zweiten Verfahren trotz gleichförmiger Größe. In diesem Verfahren benutzt das Schema zur Verarbeitung von 2K-1 Bits der Thermometercodes (z.B. T[(2K-2):0]) zu K-Bit binären Codes P Einheiten von parallelen Thermometer-zu-Binärcode-Codierern, die jeweils 2E Thermometercodes zu (E+1)-Bit binären Codes codieren, wo K = E + P. Wenn jeder der Codierer ein nicht überlappendes und kontinuierliches 2E-Bit-Segment (wo ein Segment T[2E-1:0], T[(2×2E-1):2E], ..., T[(2K-2):(P-1) ×2E] sein kann) aus dem ursprünglichen Thermometercode (z.B. T[(2K-2):0]) nimmt, kann eine schnelle Nachbearbeitungs-ACL entscheiden, ob ein aliased Code vorhanden ist, und erzeugt einen finalen binären Code.
  • Wenn die Ausgänge aller Q Codierer, die das niedrigere Qx2E-Bit des Thermometercodes (z.B. T[(Q×2E-1):0]) codieren, gesättigt sind und wenn Q ungleich P ist, summiert die ACL Ausgänge von dem Q Codierer, um finalen K-Bit Code zu erzeugen. Wenn Q gleich P ist, erzeugt die ACL 2K-1 (oder Sättigung) im finalen binären Code und sendet eine „Notfallwarnung“ an die PMU 303. Zum Beispiel werden für 127-Bit Thermometer CODE [126:0] = 0x0600_0000_0000_0000_FFFF_FFFF_FFFF_FFFF vier 6-Bit binäre Codes für CODE [126:96], CODE [95:64], CODE [63:32] bzw. CODE [31:0] verwendet. Dann sind die 6-Bit binären codierten Ausgänge 2, 0, 32 bzw. 32. Indem die ACL detektiert, dass CODE [63:32] & CODE [31:0] gesättigt sind und CODE [95:64] nicht, wird der finale binäre Code als 0 + 32 + 32 = 64 korrekt erzeugt.
  • Es folgt ein Designablauf für ADVM 101. Zuerst werden Standardzellen in einem Referenz-ADVM-Design mit Zielbibliothekstandardzellen ersetzt. Zweitens wird Funktionalitätsprüfung mit SPICE-Simulierung durchgeführt. Drittens wird Schema zu Verilog oder einer anderen Hardwarebeschreibungssprache konvertiert. Viertens wird APR mit parametrisiertem Skript für symmetrische dedizierte Platzierung von Verzögerungszellen und anderen, gleich beabstandeten Gates durchgeführt. Fünftens wird Synthese/APR von Code-Nachbearbeitungseinheiten wie Thermometer-zu-Binärcode-Codierer mit Aliasing-Korrekturlogik durchgeführt.
  • 9 veranschaulicht eine smarte Vorrichtung oder ein Computersystem oder ein SoC (System-on-Chip) mit ADVM, gemäß manchen Ausführungsformen der Offenbarung. In manchen Ausführungsformen stellt Vorrichtung 2500 eine passende Rechenvorrichtung, wie ein Rechentablet, ein Mobiltelefon oder Smartphone, einen Laptop, einen Desktop, eine Internet der Dinge- (IOT, Internet-of-Things) Vorrichtung, einen Server, eine tragbare Vorrichtung, eine Set-Top Box, einen drahtlos betreibbaren E-Reader oder dergleichen bereit. Es ist klar, dass gewisse Komponenten allgemein gezeigt sind und nicht alle Komponenten einer solchen Vorrichtung in Vorrichtung 2500 gezeigt sind. Beliebige Komponenten können hier ADVM gemäß den verschiedenen Ausführungsformen haben.
  • In einem Beispiel umfasst die Vorrichtung 2500 ein SoC (System-on-Chip) 2501. Eine beispielhafte Grenze des SOC 2501 ist mit strichlierten Linien in 9 veranschaulicht, wobei manche beispielhaften Komponenten veranschaulicht sind, in dem SOC 2501 aufgewiesen zu sein - SOC 2501 kann jedoch sämtliche passenden Komponenten von Vorrichtung 2500 aufweisen.
  • In manchen Ausführungsformen weist Vorrichtung 2500 Prozessor 2504 auf. Prozessor 2504 kann eine oder mehrere physische Vorrichtungen, wie Mikroprozessoren, Anwendungsprozessoren, Mikrosteuerungen, programmierbare Logikvorrichtungen, Verarbeitungskerne oder andere Verarbeitungsmittel aufweisen. Die Verarbeitungsbetriebe, die durch Prozessor 2504 durchgeführt werden, weisen die Ausführung einer Betriebsplattform oder eines Betriebssystems auf, auf dem Anwendungen und/oder Vorrichtungsfunktionen ausgeführt werden. Die Verarbeitungsbetriebe weisen Betriebe, die mit I/O (Eingabe/Ausgabe) mit einem menschlichen Benutzer oder mit anderen Vorrichtungen in Zusammenhang stehen, Betriebe, die mit Leistungsmanagement in Zusammenhang stehen, Betriebe, die mit Verbinden von Rechenvorrichtung 2500 mit einer anderen Vorrichtung in Zusammenhang stehen, und/oder dergleichen auf. Die Verarbeitungsbetriebe können auch Betriebe aufweisen, die mit Audio-I/O und/oder Anzeige-I/O in Zusammenhang stehen.
  • In manchen Ausführungsformen weist Prozessor 2504 mehrere Verarbeitungskerne (auch als Kerne bezeichnet) 2508a, 2508b, 2508c auf. Obwohl nur drei Kerne 2508a, 2508b, 2508c veranschaulicht sind, kann Prozessor 2504 jede andere passende Anzahl von Verarbeitungskernen, z.B. mehrere zehn oder sogar hunderte von Verarbeitungskernen aufweisen. Prozessorkerne 2508a, 2508b, 2508c können auf einem einzelnen integrierten Schaltungs- (IC) Chip implementiert sein. Ferner kann der Chip einen oder mehrere geteilte und/oder private Caches, Busse oder Zwischenverbindungen, Grafik- und/oder Speichersteuerungen oder andere Komponenten aufweisen.
  • In manchen Ausführungsformen weist Prozessor 2504 Cache 2506 auf. In einem Beispiel können Teile von Cache 2506 für einzelne Kerne 2508 bestimmt sein (z.B. ein erster Teil von Cache 2506 ist für Kern 2508a bestimmt, ein zweiter Teil von Cache 2506 ist für Kern 2508b bestimmt und so weiter). In einem Beispiel können ein oder mehrere Teile von Cache 2506 unter zwei oder mehr von Kernen 2508 geteilt werden. Cache 2506 kann in verschiedene Levels unterteilt sein, z.B. Level 1 (L1) Cache, Level 2 (L2) Cache, Level 3 (L3) Cache usw.
  • In manchen Ausführungsformen kann Prozessorkern 2504 eine Abrufeinheit aufweisen, um Anweisungen (aufweisend Anweisungen mit konditionellen Abzweigungen) zur Ausführung durch den Kern 2504 abzurufen. Die Anweisungen können von beliebigen Datenspeichervorrichtungen wie dem Speicher 2530 abgerufen werden. Prozessorkern 2504 kann auch eine Decodiereinheit zum Decodieren der abgerufenen Anweisung aufweisen. Zum Beispiel kann die Decodiereinheit die abgerufene Anweisung in mehrere Mikrooperationen decodieren. Prozessorkern 2504 kann eine Planungseinheit zum Durchführen verschiedener Betriebe aufweisen, die mit Speichern decodierter Anweisungen verknüpft sind. Zum Beispiel kann die Planungseinheit Daten von der Decodiereinheit halten, bis die Anweisungen bereit zum Versenden sind, z.B. bis alle Quellenwerte einer decodierten Anweisung verfügbar werden. In einer Ausführungsform kann die Planungseinheit decodierte Anweisungen planen und/oder an eine Ausführungseinheit zur Ausführung ausgeben (oder senden).
  • Die Ausführungseinheit kann die gesendeten Anweisungen ausführen, nachdem sie (z.B. durch die Decodiereinheit) decodiert und (z.B. durch die Planungseinheit) gesendet wurden. In einer Ausführungsform kann die Ausführungseinheit mehr als eine Ausführungseinheit aufweisen (wie eine bildgebende Recheneinheit, eine Grafikrecheneinheit, eine Allzweck-Recheneinheit usw.). Die Ausführungseinheit kann auch verschiedene arithmetische Operationen durchführen, wie Addition, Subtraktion, Multiplikation und/oder Division, und kann eine oder mehrere arithmetische Logikeinheiten (ALUs) aufweisen. In einer Ausführungsform kann ein Co-Prozessor (nicht gezeigt) verschiedene arithmetische Operationen in Verbindung mit der Ausführungseinheit durchführen.
  • Weiter kann Ausführungseinheit Anweisungen außerhalb einer Reihenfolge ausführen. Somit kann Prozessorkern 2504 ein Prozessorkern außerhalb einer Reihenfolge in einer Ausführungsform sein. Prozessorkern 2504 kann auch eine Ruhestellungseinheit aufweisen. Die Ruhestellungseinheit kann ausgeführte Anweisungen ruhigstellen, sobald sie abgeschlossen sind. In einer Ausführungsform kann Ruhigstellen der ausgeführten Anweisungen dazu führen, dass der Prozessorzustand durch die Ausführung der Anweisungen gebunden ist, physische Register, die von den Anweisungen verwendet werden, neu zugeordnet werden, usw. Der Prozessorkern 2504 kann auch eine Buseinheit aufweisen, um Kommunikation zwischen Komponenten des Prozessorkerns 2504 und anderen Komponenten über einen oder mehrere Busse zu ermöglichen. Prozessorkern 2504 kann auch ein oder mehrere Register aufweisen, um Daten zu speichern, auf die durch verschiedene Komponenten des Kerns 2504 zugegriffen wird (wie Werte, die mit zugewiesenen Anwendungsprioritäten in Zusammenhang stehen, und/oder Teilsystemzustands- (Moden-) Verknüpfung.
  • In manchen Ausführungsformen weist Vorrichtung 2500 Konnektivitätsschaltkreise 2531 auf. Zum Beispiel weisen Konnektivitätsschaltkreise 2531 Hardwarevorrichtungen (z.B. drahtlose und/oder verdrahtete Verbinder und Kommunikationshardware) und/oder Softwarekomponenten (z.B. Treiber, Protokollstapel) auf, z.B., um Vorrichtung 2500 zu ermöglichen, mit externen Vorrichtungen zu kommunizieren. Vorrichtung 2500 kann von den externen Vorrichtungen, wie anderen Rechenvorrichtungen, drahtlosen Zugangspunkten oder Basisstationen usw. getrennt sein.
  • In einem Beispiel können Konnektivitätsschaltkreise 2531 mehrere verschiedene Arten von Konnektivität aufweisen. Zur Verallgemeinerung, die Konnektivitätsschaltkreise 2531 können zelluläre Konnektivitätsschaltkreise, drahtlose Konnektivitätsschaltkreise usw. aufweisen. Zelluläre Konnektivitätsschaltkreise von Konnektivitätsschaltkreisen 2531 bezieht sich allgemein auf zelluläre Netzwerkkonnektivität, die durch drahtlose Träger bereitgestellt wird, wie über GSM (Global System for Mobile Communications) oder Variationen oder Derivate, CDMA (Code Division Multiple Access) oder Variationen oder Derivate, TDM (Time Division Multiplexing) oder Variationen oder Derivate, 3rd Generation Partnership Project (3GPP) Universal Mobile Telecommunications Systems (UMTS) System oder Variationen oder Derivate, 3GPP Long-Term Evolution (LTE) System oder Variationen oder Derivate, 3GPP LTE-Advanced (LTE-A) System oder Variationen oder Derivate, Fifth Generation (5G) drahtloses System oder, 5G mobiles Netzwerksystem oder Variationen oder Derivate, 5G New Radio (NR) System oder Variationen oder Derivate oder andere zelluläre Dienststandards bereitgestellt wird. Drahtlose Konnektivitätsschaltkreise (oder drahtlose Schnittstelle) der Konnektivitätsschaltkreise 2531 bezieht sich auf drahtlose Konnektivität, die nicht zellulär ist, und kann persönliche Netzwerke (wie Bluetooth, Nahfeld usw.), lokale Netzwerke (wie Wi-Fi) und/oder Weitraumnetzwerke (wie WiMax) und/oder andere drahtlose Kommunikation aufweisen. In einem Beispiel können Konnektivitätsschaltkreise 2531 eine Netzwerkschnittstelle, wie eine verdrahtete oder drahtlose Schnittstelle aufweisen, sodass z.B. eine Systemausführungsform in einer drahtlosen Vorrichtung eingegliedert sein kann, zum Beispiel einem Mobiltelefon oder einem persönlichen digitalen Assistenten.
  • In manchen Ausführungsformen weist Vorrichtung 2500 einen Steuer-Hub 2532 auf, der Hardwarevorrichtungen und/oder Softwarekomponenten darstellt, die mit Interaktion mit einer oder mehreren I/O-Vorrichtungen in Zusammenhang stehen. Zum Beispiel kann Prozessor 2504 mit einem oder mehreren von Anzeige 2522, einer oder mehreren peripheren Vorrichtungen 2524, Datenspeichervorrichtungen 2528, einer oder mehreren anderen externen Vorrichtungen 2529 usw., über Steuer-Hub 2532 kommunizieren. Steuer-Hub 2532 kann ein Chipset, ein Plattformsteuerungshub (PCH, Platform Control Hub) und/oder dergleichen sein.
  • Zum Beispiel veranschaulicht Steuer-Hub 2532 einen oder mehrere Verbindungspunkte für zusätzliche Vorrichtungen, die mit Vorrichtung 2500 verbunden sind, z.B. durch die ein Benutzer mit dem System interagieren kann. Zum Beispiel weisen Vorrichtungen (z.B. Vorrichtungen 2529), die an Vorrichtung 2500 angebracht werden können, Mikrofonvorrichtungen, Lautsprecher- oder Stereosysteme, Audiovorrichtungen, Videosysteme oder andere Anzeigevorrichtungen, Tastatur oder Tastenfeldvorrichtungen oder andere I/O-Vorrichtungen zur Verwendung mit spezifischen Anwendungen wie Kartenlesegeräten oder anderen Vorrichtungen auf.
  • Wie oben erwähnt, kann Steuer-Hub 2532 mit Audiovorrichtungen, Anzeige 2522 usw. interagieren. Zum Beispiel kann Eingabe durch ein Mikrofon oder eine andere Audiovorrichtung Eingabe oder Befehle für eine oder mehrere Anwendungen oder Funktionen von Vorrichtung 2500 bereitstellen. Zusätzlich kann Audioausgang anstelle von oder zusätzlich zu Anzeigeausgang bereitgestellt sein. In einem anderen Beispiel, wenn Anzeige 2522 einen Berührungsbildschirm aufweist, dient Anzeige 2522 auch als eine Eingabevorrichtung, die mindestens teilweise von Steuer-Hub 2532 verwaltet werden kann. Es können auch zusätzliche Tasten oder Schalter auf Rechenvorrichtung 2500 bereitgestellt sein, um I/O-Funktionen bereitzustellen, die von Steuer-Hub 2532 verwaltet werden. In einer Ausführungsform verwaltet Steuer-Hub 2532 Vorrichtungen wie Beschleunigungsmesser, Kameras, Lichtsensoren und andere Umgebungssensoren oder andere Hardware, die in Vorrichtung 2500 aufgewiesen sein kann. Der Eingang kann Teil einer direkten Benutzerinteraktion sein wie auch Umwelteingang zu dem System bereitstellen, um dessen Betriebe zu beeinflussen (wie Filtern von Rauschen, Helligkeitseinstellungen von Anzeigen, Anwenden eines Blitzes für eine Kamera oder andere Merkmale).
  • In manchen Ausführungsformen kann Steuer-Hub 2532 an verschiedene Vorrichtungen unter Verwendung eines geeigneten Kommunikationsprotokolls koppeln, z.B. PCIe (Peripheral Component Interconnect Express), USB (Universal Serial Bus), Thunderbolt, High Definition Multimedia Interface (HDMI), Firewire usw.
  • In manchen Ausführungsformen stellt Anzeige 2522 Hardware- (z.B. Anzeigevorrichtungen) und Software- (z.B. Treiber) Komponenten dar, die eine visuelle und/oder taktile Anzeige für einen Benutzer bereitstellen, um mit Vorrichtung 2500 zu interagieren. Anzeige 2522 kann eine Anzeigeschnittstelle, einen Anzeigeschirm und/oder Hardwarevorrichtung aufweisen, die zum Bereitstellen einer Anzeige für einen Benutzer verwendet wird. In manchen Ausführungsformen weist Anzeige 2522 eine Berührungsschirmvorrichtung (oder Touch Pad) auf, die einem Benutzer sowohl Ausgang als auch Eingang bereitstellt. In einem Beispiel kann Anzeige 2522 direkt mit dem Prozessor 2504 kommunizieren. Anzeige 2522 kann eines oder mehrere von einer internen Anzeigevorrichtung, wie in einer mobilen elektronischen Vorrichtung oder einer Laptopvorrichtung, oder einer externen Anzeigevorrichtung sein, die über eine Anzeigeschnittstelle (z.B. DisplayPort usw.) angebracht ist. In einer Ausführungsform kann Anzeige 2522 eine am Kopf angebrachte Anzeige (HMD, Head Mounted Display) wie eine stereoskopische Anzeigevorrichtung zur Verwendung in virtuellen Realitäts- (VR, Virtual Reality) Anwendungen oder erweiterten Realitäts- (AR, Augmented Reality) Anwendungen sein.
  • In manchen Ausführungsformen und obwohl in der Figur nicht veranschaulicht, kann Vorrichtung 2500 zusätzlich zu (oder anstelle von) Prozessor 2504 Grafikverarbeitungseinheit (GPU, Graphics Processing Unit) aufweisen, aufweisend einen oder mehrere Grafikverarbeitungskerne, die einen oder mehrere Aspekte von Anzeigeinhalt auf Anzeige 2522 steuern können.
  • Steuer-Hub 2532 (oder Plattformsteuerungshub) kann Hardwareschnittstellen und Verbinder aufweisen, wie auch Softwarekomponenten (z.B. Treiber, Protokollstapel), um periphere Verbindungen z.B. zu peripheren Vorrichtungen 2524 herzustellen.
  • Es ist klar, dass Vorrichtung 2500 sowohl eine periphere Vorrichtung zu anderen Rechenvorrichtungen sein kann wie auch mit peripheren Vorrichtungen verbunden sein kann. Vorrichtung 2500 kann einen „Andockverbinder“ zur Verbindung mit anderen Rechenvorrichtungen für Zwecke wie Verwalten (z.B. Herunterladen und/oder Hochladen, Ändern, Synchronisieren) von Inhalt auf Vorrichtung 2500 aufweisen. Zusätzlich kann ein Andockverbinder Vorrichtung 2500 erlauben, sich mit gewissen peripheren Geräten zu verbinden, die Rechenvorrichtung 2500 erlauben, Inhalt zu steuern, der zum Beispiel an audiovisuelle oder andere Systeme ausgegeben wird.
  • Zusätzlich zu einem firmeneigenen Andockverbinder oder andere firmeneigene Verbindungshardware kann Vorrichtung 2500 periphere Verbindungen über allgemeine oder auf Standards beruhende Verbinder herstellen. Allgemeine Arten können einen Universal Serial Bus (USB) Verbinder (der jede einer Reihe verschiedener Hardwareschnittstellen aufweisen kann), DisplayPort aufweisend MiniDisplayPort (MDP), High Definition Multimedia Interface (HDMI), Firewire, oder andere Typen aufweisen.
  • In manchen Ausführungsformen können Konnektivitätsschaltkreise 2531 an Steuer-Hub 2532 gekoppelt sein, z.B. zusätzlich zu oder anstelle von einer direkten Kopplung an den Prozessor 2504. In manchen Ausführungsformen kann Anzeige 2522 an Steuer-Hub 2532 gekoppelt sein, z.B. zusätzlich zu oder anstelle von einer direkten Kopplung an Prozessor 2504.
  • In manchen Ausführungsformen weist Vorrichtung 2500 Speicher 2530 auf, der an Prozessor 2504 über Speicherschnittstelle 2534 gekoppelt ist. Speicher 2530 weist Speichervorrichtungen zum Speichern von Informationen in Vorrichtung 2500 auf. Speicher kann nicht flüchtige (Zustand ändert sich nicht, wenn Leistung zu der Speichervorrichtung unterbrochen ist) und/oder flüchtige (Zustand ist unbestimmt, wenn Leistung zu der Speichervorrichtung unterbrochen ist) Speichervorrichtungen aufweisen. Speichervorrichtung 2530 kann eine dynamische Direktzugriffsspeicher- (DRAM, Dynamic Random Access Memory) Vorrichtung, eine statische Direktzugriffsspeicher- (SRAM, Static Random Access Memory) Vorrichtung, Flash-Speichervorrichtung, Phasenänderungsspeichervorrichtung oder eine andere Speichervorrichtung mit geeigneter Arbeitsleistung sein, um als Prozessspeicher zu dienen. In einer Ausführungsform kann Speicher 2530 als Systemspeicher für Vorrichtung 2500 arbeiten, um Daten und Anweisungen zur Verwendung zu speichern, wenn der eine oder die mehreren Prozessoren 2504 eine Anwendung oder einen Prozess ausführen. Speicher 2530 kann Anwendungsdaten, Benutzerdaten, Musik, Fotos, Dokumente oder andere Daten wie auch Systemdaten (sei es langfristig oder vorübergehend) speichern, die mit der Ausführung der Anwendungen und Funktionen von Vorrichtung 2500 in Zusammenhang stehen.
  • Elemente von verschiedenen Ausführungsformen und Beispielen sind auch als ein maschinenlesbares Medium (z.B. Speicher 2530) zum Speichern der computerausführbaren Anweisungen bereitgestellt (z.B. Anweisungen zur Implementierung anderer hier besprochener Prozesse). Das maschinenlesbare Medium (z.B. Speicher 2530) kann Flash-Speicher, optische Platten, CD-ROMs, DVD ROMs, RAMs, EPROMs, EEPROMs, magnetische oder optische Karten, Phasenänderungsspeicher (PCM) oder andere Arten von maschinenlesbaren Medien aufweisen, ohne aber darauf beschränkt zu sein, die zum Speichern elektronischer oder computerausführbarer Anweisungen geeignet sind. Zum Beispiel können Ausführungsformen der Offenbarung als ein Computerprogramm (z.B. BIOS) heruntergeladen werden, das dann von einem fernen Computer (z.B. einem Server) zu einem anfragenden Computer (z.B. einem Client) mittels Datensignale über einen Kommunikationslink (z.B. eine Modem- oder Netzwerkverbindung) transferiert werden kann.
  • In manchen Ausführungsformen weist Vorrichtung 2500 Temperaturmessungsschaltkreise 2540 auf, z.B. zum Messen von Temperatur von verschiedenen Komponenten von Vorrichtung 2500. In einem Beispiel können Temperaturmessungsschaltkreise 2540 in verschiedene Komponenten eingebettet oder an diese gekoppelt oder an diesen befestigt sein, deren Temperatur zu messen und zu überwachen ist. Zum Beispiel können Temperaturmessungsschaltkreise 2540 Temperatur (oder innerhalb) eines oder mehrerer von Kernen 2508a, 2508b, 2508c, Spannungsregler 2514, Speicher 2530, einer Hauptplatine von SOC 2501 und/oder jeder passenden Komponente von Vorrichtung 2500 messen.
  • In manchen Ausführungsformen weist Vorrichtung 2500 Leistungsmessungsschaltkreise 2542, z.B. zum Messen von Leistung auf, die von einer oder mehreren Komponenten der Vorrichtung 2500 verbraucht wird. In einem Beispiel können die Leistungsmessungsschaltkreise 2542 zusätzlich zu oder anstelle von Messung von Leistung Spannung und/oder Strom messen. In einem Beispiel können die Leistungsmessungsschaltkreise 2542 in verschiedene Komponenten eingebettet oder an diese gekoppelt oder an diesen befestigt sein, deren Leistungs-, Spannungs- und/oder Stromverbrauch zu messen und zu überwachen sind. Zum Beispiel können Leistungsmessungsschaltkreise 2542 Leistung, Strom und/oder Spannung, die durch einen oder mehrere Spannungsregler 2514 verbraucht werden, Leistung, die dem SOC 2501 zugeführt wird, Leistung, die Vorrichtung 2500 zugeführt wird, Leistung, die von Prozessor 2504 (oder jeder anderen Komponente) von Vorrichtung 2500 verbraucht wird, usw. messen.
  • In manchen Ausführungsformen weist Vorrichtung 2500 einen oder mehrere Spannungsreglerschaltkreise auf, allgemein als Spannungsregler (VR) 2514 VR bezeichnet, mit einer hohen Bandbreite und niederem Leistungsdifferential zu einem einseitigen Typ III Kompensator. VR 2514 erzeugt Signale bei passenden Spannungspegeln, die zugeleitet werden können, um beliebige passende Komponenten der Vorrichtung 2500 zu betreiben. Nur als ein Beispiel ist VR 2514 veranschaulicht, Signale von Vorrichtung 2500 zu Prozessor 2504 zu leiten. In manchen Ausführungsformen empfängt VR 2514 ein oder mehrere Spannungsidentifikations- (VID, Voltage Identification) Signale und erzeugt das Spannungssignal bei einem passenden Pegel, basierend auf den VID-Signalen. Verschiedene Arten von VRs können für den VR 2514 benutzt werden. Zum Beispiel kann VR 2514 einen „Buck“-VR, „Boost“-VR, eine Kombination von Buck- und Boost-VRs, Regler mit niederem Ausfall (LDO, Low Dropout), schaltende DC-DC-Regler usw. aufweisen. Buck-VR wird allgemein in Leistungsabgabeanwendungen verwendet, in welchen eine Eingangsspannung zu einer Ausgangsspannung in einem Verhältnis transformiert werden muss, das kleiner als eins ist. Boost-VR wird allgemein in Leistungsabgabeanwendungen verwendet, in welchen eine Eingangsspannung zu einer Ausgangsspannung in einem Verhältnis transformiert werden muss, das größer als eins ist. In manchen Ausführungsformen hat jeder Prozessorkern seinen eigenen VR, der durch PCU 2510a/b und/oder PMIC 2512 gesteuert ist. In manchen Ausführungsformen hat jeder Kern ein Netzwerk von verteilten LDOs, um effiziente Steuerung für Leistungsverwaltung bereitzustellen. Die LDOs können digital, analog oder eine Kombination von digitalen oder analogen LDOs sein. Der VR ist ein adaptiver VR, der einen adaptiven Spannungsausgang bereitstellen kann, wie unter Bezugnahme auf verschiedene Ausführungsformen besprochen.
  • In manchen Ausführungsformen weist Vorrichtung 2500 einen oder mehrere Taktgeneratorschaltkreise auf, allgemein als Taktgenerator 2516 bezeichnet. Taktgenerator 2516 erzeugt Taktsignale bei passenden Frequenzpegeln, die passenden Komponenten von Vorrichtung 2500 zugeleitet werden können. Nur als ein Beispiel ist Taktgenerator 2516 veranschaulicht, Taktsignale von Vorrichtung 2500 zu Prozessor 2504 zu leiten. In manchen Ausführungsformen empfängt Taktgenerator 2516 ein oder mehrere Frequenzidentifizierungs- (FID) Signale und erzeugt die Taktsignale bei einer passenden Frequenz basierend auf den FID-Signalen. Taktgenerator 2516 ist eine adaptive Taktquelle, die einen adaptiven Frequenzausgang bereitstellen kann, wie unter Bezugnahme auf verschiedenen Ausführungsformen besprochen.
  • In manchen Ausführungsformen weist Vorrichtung 2500 Batterie 2518 auf, die verschiedenen Komponenten von Vorrichtung 2500 Leistung zuleitet. Nur als ein Beispiel ist Batterie 2518 veranschaulicht, Leistung zu Prozessor 2504 zu leiten. Obwohl in den Figuren nicht veranschaulicht, kann Vorrichtung 2500 einen Ladungsschaltkreis aufweisen, z.B. um die Batterie wieder aufzuladen, der auf Wechselstrom- (AC, Alternating Current) Leistungsversorgung basiert, die von einem AC-Adapter empfangen wird.
  • In manchen Ausführungsformen weist Vorrichtung 2500 eine Leistungssteuereinheit (PCU, Power Control Unit) 2510 (auch als Leistungsverwaltungseinheit (PMU, Power Management Unit), Leistungssteuerung usw. bezeichnet) auf. In einem Beispiel können manche Teile von PCU 2510 durch einen oder mehrere Verarbeitungskerne 2508 implementiert sein und diese Teile von PCU 2510 sind symbolisch unter Verwendung eines strichlierten Kastens veranschaulicht und mit PCU 2510a bezeichnet. In einem Beispiel können manche anderen Teile von PCU 2510 außerhalb der Verarbeitungskerne 2508 implementiert sein und diese Teile PCU 2510 sind symbolisch unter Verwendung eines strichlierten Kastens veranschaulicht und mit PCU 2510b bezeichnet. PCU 2510 kann verschiedene Leistungsverwaltungsbetriebe für Vorrichtung 2500 implementieren. PCU 2510 kann Hardwareschnittstellen, Hardwareschaltkreise, Verbinder, Register usw., wie auch Softwarekomponenten (z.B. Treiber, Protokollstapel) aufweisen, um verschiedene Leistungsverwaltungsbetriebe für Vorrichtung 2500 zu implementieren.
  • In manchen Ausführungsformen weist Vorrichtung 2500 integrierten Leistungsverwaltungsschaltkreis (PMIC, Power Management Integrated Circuit) 2512 auf, um z.B. verschiedene Leistungsverwaltungsbetriebe für Vorrichtung 2500 zu implementieren. In manchen Ausführungsformen ist PMIC 2512 rekonfigurierbare Leistungsverwaltungs-ICs (RPMICs) und/oder eine IMVP (Intel® Mobile Voltage Positioning). In einem Beispiel ist die PMIC innerhalb eines IC-Chips, separat von Prozessor 2504. Die kann verschiedene Leistungsverwaltungsbetriebe für Vorrichtung 2500 implementiert. PMIC 2512 kann Hardwareschnittstellen, Hardwareschaltkreise, Verbinder, Register usw., wie auch Softwarekomponenten (z.B. Treiber, Protokollstapel) aufweisen, um verschiedene Leistungsverwaltungsbetriebe für Vorrichtung 2500 zu implementieren.
  • In einem Beispiel weist Vorrichtung 2500 PCU 2510 und/oder PMIC 2512 auf. In einem Beispiel kann eine von PCU 2510 oder PMIC 2512 in Vorrichtung 2500 fehlen und somit sind diese Komponenten mit strichlierten Linien veranschaulicht.
  • Verschiedene Leistungsverwaltungsbetriebe von Vorrichtung 2500 können durch PCU 2510, durch PMIC 2512 oder durch eine Kombination von PCU 2510 und PMIC 2512 durchgeführt werden. Zum Beispiel können PCU 2510 und/oder PMIC 2512 einen Leistungszustand (z.B. P-Zustand) für verschiedene Komponenten von Vorrichtung 2500 wählen. Zum Beispiel können PCU 2510 und/oder PMIC 2512 einen Leistungszustand (z.B. nach der ACPI (Advanced Configuration and Power Interface) Spezifikation) für verschiedene Komponenten von Vorrichtung 2500 wählen. Nur als ein Beispiel können PCU 2510 und/oder PMIC 2512 verschiedene Komponenten der Vorrichtung 2500 veranlassen, in einen Schlafzustand, in einen aktiven Zustand, in einen passenden C-Zustand (z.B. C0-Zustand oder einen anderen passenden C-Zustand nach der ACPI-Spezifikation) usw. überzugehen. In einem Beispiel können PCU 2510 und/oder PMIC 2512 eine Spannung, die von VR 2514 (z.B. SCVR) ausgegeben wird, und/oder eine Frequenz eines Taktsignals, das vom Taktgenerator ausgegeben wird, z.B. durch Ausgeben des VID-Signals und/oder des FID-Signals, steuern. In einem Beispiel können PCU 2510 und/oder PMIC 2512 Batterieleistungsnutzung, Ladung von Batterie 2518 und Merkmale, die mit Leistungssparbetrieb in Zusammenhang stehen, steuern.
  • Der Taktgenerator 2516 kann einen Phasenregelkreis (PLL), Frequenzregelkreis (FLL) oder eine geeignete Taktquelle aufweisen. In manchen Ausführungsformen hat jeder Kern von Prozessor 2504 seine eigene Taktquelle. Als solches kann jeder Kern bei einer Frequenz unabhängig von der Betriebsfrequenz des anderen Kerns arbeiten. In manchen Ausführungsformen führen PCU 2510 und/oder PMIC 2512 adaptives oder dynamisches Frequenzskalieren oder -einstellen durch. Zum Beispiel kann Taktfrequenz eines Prozessorkerns erhöht werden, wenn der Kern nicht bei seiner maximalen Leistungsverbrauchsschwelle oder -grenze arbeitet. In manchen Ausführungsformen bestimmen PCU 2510 und/oder PMIC 2512 die Betriebsbedingung jedes Kerns eines Prozessors und stellen opportunistische Frequenz und/oder Leistungsversorgungsspannung dieses Kerns ein, ohne dass die Kerntaktungsquelle (z.B. PLL dieses Kerns) Verriegelung verliert, wenn die PCU 2510 und/oder PMIC 2512 bestimmen, dass der Kern unter einem Zielarbeitsleistungspegel arbeitet. Wenn zum Beispiel ein Kern Strom aus einer Leistungsversorgungschiene zieht, der niedriger als ein Gesamtstrom ist, der diesem Kern oder Prozessor 2504 zugeordnet ist, können PCU 2510 und/oder PMIC 2512 vorübergehend die Leistung erhöhen, die für diesen Kern oder Prozessor 2504 entnommen wird (z.B. durch Erhöhen von Taktfrequenz und/oder Leistungsversorgungsspannungspegel), sodass der Kern oder Prozessor 2504 bei höherem Arbeitsleistungspegel arbeiten können. Als solches können Spannung und/oder Frequenz vorübergehend für Prozessor 2504 erhöht werden, ohne Produktzuverlässigkeit zu beeinträchtigen.
  • In einem Beispiel können PCU 2510 und/oder PMIC 2512 Leistungsverwaltungsbetriebe durchführen, z.B. basierend mindestens teilweise auf Empfang von Messungen von Leistungsmessungsschaltkreisen 2542, Temperaturmessungsschaltkreisen 2540, Ladungspegel von Batterie 2518 und/oder anderen passenden Informationen, die zur Leistungsverwaltung verwendet werden können. Zu diesem Zweck ist PMIC 2512 kommunikativ an einen oder mehrere Sensoren gekoppelt, um verschiedene Werte/Variationen in einem oder mehreren Faktoren zu erfassen/detektieren, die eine Wirkung auf Leistung/thermisches Verhalten des Systems/der Plattform haben. Beispiele des einen oder der mehreren Faktoren weisen elektrischen Strom, Spannungsabfall, Temperatur, Betriebsfrequenz, Betriebsspannung, Leistungsverbrauch, Inter-Kernkommunikationsaktivität usw. auf. Einer oder mehrere dieser Sensoren können in physischer Nähe (und/oder Wärmekontakt/-kopplung) mit einer oder mehreren Komponenten oder Logik/IP-Blöcken eines Rechensystems bereitgestellt sein. Zusätzlich können Sensor(en) in mindestens einer Ausführungsform direkt an PCU 2510 und/oder PMIC 2512 gekoppelt sein, um PCU 2510 und/oder PMIC 2512 zu ermöglichen, Prozessorkernenergie mindestens teilweise basierend auf Wert(en) zu verwalten, die durch einen oder mehrere der Sensoren detektiert werden.
  • Ebenso veranschaulicht ist ein beispielhafter Softwarestapel von Vorrichtung 2500 (obwohl nicht alle Elemente des Softwarestapels veranschaulicht sind). Nur als ein Beispiel können Prozessoren 2504 Anwendungsprogramme 2550, Betriebssystem 2552, ein oder mehrere Leistungsverwaltungs- (PM) spezifische Anwendungsprogramme (z.B. allgemein als PM-Anwendungen 2558) bezeichnet, und/oder dergleichen ausführen. PM-Anwendungen 2558 können auch durch die PCU 2510 und/oder PMIC 2512 ausgeführt werden. OS 2552 kann auch eine oder mehrere PM-Anwendungen 2556a, 2556b, 2556c aufweisen. Das OS 2552 kann auch verschiedene Treiber 2554a, 2554b, 2554c usw. aufweisen, von welchen manche für Leistungsverwaltungszwecke spezifisch sein können. In manchen Ausführungsformen kann Vorrichtung 2500 weiter ein grundlegendes Eingangs-/Ausgangssystem (BIOS, Basic Input/Output System) 2520 aufweisen. BIOS 2520 kann mit OS 2552 (z.B. über einen oder mehrere Treiber 2554) kommunizieren, mit Prozessoren 2504 kommunizieren usw.
  • Zum Beispiel können eine oder mehrere von PM-Anwendungen 2558, 2556, Treibern 2554, BIOS 2520 usw. verwendet werden, um leistungsverwaltungsspezifische Aufgaben zu implementieren, z.B. Spannung und/oder Frequenz verschiedener Komponenten von Vorrichtung 2500 zu steuern, Aufweckzustand, Schlafzustand und/oder jeden anderen passenden Leistungszustand verschiedener Komponenten von Vorrichtung 2500 zu steuern, Batterieleistungsnutzung, Ladung der Batterie 2518, Merkmale in Zusammenhang mit Leistungssparbetrieb usw. zu steuern.
  • Bezugnahme in der Beschreibung auf „eine Ausführungsform“, „eine einzige Ausführungsform“, „manche Ausführungsformen“ oder „andere Ausführungsformen“ bedeutet, dass ein bestimmtes Merkmal, eine Struktur oder Eigenschaft, das bzw. die in Verbindung mit den Ausführungsformen beschrieben ist, in mindestens manchen Ausführungsformen, aber nicht unbedingt allen Ausführungsformen aufgewiesen ist. Die verschiedenen Verwendungen von „einer Ausführungsform“, „einer einzigen Ausführungsform“, oder „manche Ausführungsformen“ beziehen sich nicht unbedingt alle auf dieselben Ausführungsformen. Wenn die Beschreibung besagt, dass eine Komponente, ein Merkmal, eine Struktur oder Eigenschaft aufgewiesen sein „kann“, „könnte“ oder „konnte“, muss diese bestimmte Komponente, das Merkmal, die Struktur oder Eigenschaft nicht aufgewiesen sein. Wenn sich die Beschreibung oder der Anspruch auf „ein“ Element bezieht, bedeutet dies nicht, dass nur eines der Elemente vorhanden ist. Wenn sich die Beschreibung oder der Anspruch auf „ein zusätzliches“ Element bezieht, schließt dies nicht aus, dass mehr als eines des zusätzlichen Elements vorhanden ist.
  • Ferner können die besonderen Merkmale, Strukturen, Funktionen oder Eigenschaften in jeder geeigneten Weise in einer oder mehreren Ausführungsformen kombiniert sein. Zum Beispiel kann eine erste Ausführungsform mit einer zweiten Ausführungsform immer dann kombiniert sein, wenn die besonderen Merkmale, Strukturen, Funktionen oder Eigenschaften, die mit den zwei Ausführungsformen verknüpft sind, nicht wechselseitig ausschließend sind.
  • Während die Offenbarung in Verbindung mit ihren spezifischen Ausführungsformen beschrieben wurde, sind viele Alternativen, Modifikationen und Variationen solcher Ausführungsformen für einen Durchschnittsfachmann angesichts der vorangehenden Beschreibung offensichtlich. Die Ausführungsformen der Offenbarung sollen alle solchen Alternativen, Modifikationen und Variationen umfassen, so dass sie in den weiten Umfang der der beiliegenden Ansprüche fallen.
  • Zusätzlich können allgemein bekannte Leistungs-/Masseverbindungen zu integrierten Schaltungs- (IC) Chips und anderen Komponenten der einfachen Veranschaulichung und Besprechung wegen und um die Offenbarung nicht zu verschleiern in den präsentierten Figuren gezeigt sein oder nicht. Ferner können Anordnungen in Blockdiagrammform gezeigt sein, um die Offenbarung nicht zu verschleiern, und auch angesichts der Tatsache, dass spezifische Einzelheiten in Bezug auf Implementierung solcher Blockdiagrammanordnungen stark von der Plattform abhängig sind, in der die vorliegenden Offenbarung implementiert werden soll (d.h. solche spezifischen Einzelheiten sollten im Ermessen eines Fachmanns liegen). Wenn spezifische Einzelheiten (z.B. Schaltungen) zur Beschreibung beispielhafter Ausführungsformen der Offenbarung angeführt sind, sollte für einen Fachmann offensichtlich sein, dass die Offenbarung ohne oder mit einer Variation dieser spezifischen Einzelheiten umgesetzt werden kann. Die Beschreibung ist daher als veranschaulichend und nicht als einschränkend anzusehen.
  • Die folgenden Beispiele sind zur Veranschaulichung der verschiedenen Ausführungsformen bereitgestellt. Diese Beispiele können in geeigneter Weise voneinander abhängig sein.
  • Beispiel 1: Eine Vorrichtung, aufweisend: einen Frequenzteiler zum Empfangen eines Eingangstakts und zum Erzeugen eines frequenzgeteilten Takts; eine Verzögerungskette, aufweisend Verzögerungszellen, wobei die Verzögerungskette den frequenzgeteilten Takt bei einem Eingang der Verzögerungskette empfangen soll; mehrere aufeinanderfolgende Schaltkreise, wobei jeder der aufeinanderfolgenden Schaltkreise an einen Ausgang einer einzelnen Verzögerungszelle der Verzögerungskette gekoppelt ist; und einen Auswahlschaltkreis, der an die mehreren aufeinanderfolgenden Schaltkreise gekoppelt ist, wobei der Auswahlschaltkreis mehrere Multiplexer aufweist, wobei jeder Multiplexer an einen einzelnen folgenden Schaltkreis der mehreren aufeinanderfolgenden Schaltkreise gekoppelt ist.
  • Beispiel 2: Die Vorrichtung nach Anspruch 1 weist einen Schaltkreis auf, um durch Metastabilität induzierte Blasen in Ausgängen der Auswahlschaltkreise zu unterdrücken.
  • Beispiel 3: Die Vorrichtung nach Anspruch 2, wobei der Schaltkreis mehrere Logikgates aufweist, wobei jedes Logikgate einen Eingang hat, der an einen Ausgang jedes Multiplexers gekoppelt ist.
  • Beispiel 4: Die Vorrichtung nach Anspruch 3, wobei jedes Logikgate eines aufweist von: einem UND-Gate, NUND-Gate oder NODER-Gate.
  • Beispiel 5: Die Vorrichtung nach Anspruch 3, wobei die mehreren Logikgates einen Thermometercode erzeugen.
  • Beispiel 6: Die Vorrichtung nach Anspruch 1, wobei jeder der aufeinanderfolgenden Schaltkreise den Eingangstakt empfängt.
  • Beispiel 7: Die Vorrichtung nach Anspruch 1, wobei jeder Multiplexer durch den frequenzgeteilten Takt steuerbar ist und wobei jeder Multiplexer eines von einem Ausgang des einzelnen folgenden Schaltkreises oder einer Inversion des Ausgangs des einzelnen folgenden Schaltkreises bereitstellt.
  • Beispiel 8: Die Vorrichtung nach Anspruch 1, wobei jede Verzögerungszelle der Verzögerungskette eine Inversionslogik aufweist.
  • Beispiel 9: Die Vorrichtung nach Anspruch 8, wobei die Inversionslogik eines von einem Inverter, NUND-Gate oder NODER-Gate aufweist.
  • Beispiel 10: Die Vorrichtung nach Anspruch 1, wobei jede Verzögerungszelle der Verzögerungskette eine Nicht-Inversionslogik aufweist.
  • Beispiel 11: Die Vorrichtung nach Anspruch 10, wobei die Nicht-Inversionslogik eines aufweist von: einem Puffer, einem UND-Gate oder einem ODER-Gate.
  • Beispiel 12: Die Vorrichtung nach Anspruch 1, wobei der Frequenzteiler einen Flip-Flop und einen Inverter aufweist, der an einen Eingang und Ausgang des Flip-Flops gekoppelt ist.
  • Beispiel 13: Die Vorrichtung nach Anspruch 1, wobei der frequenzgeteilte Takt ein Teilung durch 2-Takt ist.
  • Beispiel 14: Die Vorrichtung nach Anspruch 2, wobei die Verzögerungskette gekoppelt ist an: einen Leistungsversorgungsknoten, dessen Spannung von der Verzögerungskette, den mehreren aufeinanderfolgenden Schaltkreisen, dem Auswahlschaltkreis und dem Schaltkreis überwacht wird.
  • Beispiel 15: Eine Vorrichtung, aufweisend: einen Frequenzteiler zum Empfangen eines Eingangstakts und zum Erzeugen eines frequenzgeteilten Takts; und einen Zeit/Digital-Wandler (TDC), der an den Frequenzteiler und an einen Leistungsversorgungsknoten gekoppelt ist, dessen Spannungspegel überwacht werden soll, wobei der TDC eine Latenz von einem Zyklus des Eingangstakts hat.
  • Beispiel 16: Die Vorrichtung nach Anspruch 15, wobei der TDC aufweist: eine Verzögerungskette, aufweisend Verzögerungszellen, wobei die Verzögerungskette den frequenzgeteilten Takt bei einem Eingang der Verzögerungskette empfangen soll; mehrere aufeinanderfolgende Schaltkreise, wobei jeder der aufeinanderfolgenden Schaltkreise an einen Ausgang einer einzelnen Verzögerungszelle der Verzögerungskette gekoppelt ist; und einen Auswahlschaltkreis, der an die mehreren aufeinanderfolgenden Schaltkreise gekoppelt ist, wobei der Auswahlschaltkreis mehrere Multiplexer aufweist, wobei jeder Multiplexer an einen einzelnen folgenden Schaltkreis der mehreren aufeinanderfolgenden Schaltkreise gekoppelt ist.
  • Beispiel 17: Die Vorrichtung nach Anspruch 16, wobei der TDC mehrere Logikgates aufweist, wobei jedes Logikgate einen Eingang hat, der an einen Ausgang jedes Multiplexers gekoppelt ist, wobei jedes Logikgate eines aufweist von: einem UND-Gate, NUND-Gate oder NODER-Gate.
  • Beispiel 18: Ein System, aufweisend: einen Speicher; einen Prozessor, der an den Speicher gekoppelt ist, wobei der Prozessor eine Leistungsverwaltungslogik aufweist, die an einen Zeit/Digital-Wandler (TDC) gekoppelt ist, wobei der TDC an einen Frequenzteiler und an einen Leistungsversorgungsknoten gekoppelt ist, dessen Spannungspegel überwacht werden soll, wobei der TDC eine Latenz von einem Zyklus des Eingangstakts hat, wobei der Frequenzteiler zum Empfangen eines Eingangstakts und zum Erzeugen eines frequenzgeteilten Takts dient; und eine drahtlose Schnittstelle, um dem Prozessor zu erlauben, mit einer anderen Vorrichtung zu kommunizieren.
  • Beispiel 19: Das System nach Anspruch 18, wobei der TDC aufweist: eine Verzögerungskette, aufweisend Verzögerungszellen, wobei die Verzögerungskette den frequenzgeteilten Takt bei einem Eingang der Verzögerungskette empfangen soll; mehrere aufeinanderfolgende Schaltkreise, wobei jeder der aufeinanderfolgenden Schaltkreise an einen Ausgang einer einzelnen Verzögerungszelle der Verzögerungskette gekoppelt ist; und einen Auswahlschaltkreis, der an die mehreren aufeinanderfolgenden Schaltkreise gekoppelt ist, wobei der Auswahlschaltkreis mehrere Multiplexer aufweist, wobei jeder Multiplexer an einen einzelnen folgenden Schaltkreis der mehreren aufeinanderfolgenden Schaltkreise gekoppelt ist.
  • Beispiel 20: Das System nach Anspruch 18, wobei der TDC mehrere Logikgates aufweist, wobei jedes Logikgate einen Eingang hat, der an einen Ausgang jedes Multiplexers gekoppelt ist, wobei jedes Logikgate eines aufweist von: einem UND-Gate, NUND-Gate oder NODER-Gate.
  • Es ist eine Zusammenfassung bereitgestellt, die dem Leser erlaubt, die Art und das Wesen der technischen Offenbarung zu erfassen. Die Zusammenfassung wird mit dem Verständnis unterbreitet, dass sie nicht zur Beschränkung des Umfangs oder der Bedeutung der Ansprüche verwendet wird. Die folgenden Ansprüche werden hiermit in die ausführliche Beschreibung eingegliedert, wobei jeder Anspruch für sich als eine separate Ausführungsform steht.

Claims (19)

  1. Vorrichtung zur Überwachung von Spannung, die Vorrichtung aufweisend: einen Leistungsversorgungsknoten zum Bereitstellen einer Spannung und/oder von Strom; einen Taktknoten zum Bereitstellen eines Takts; und einen Spannungsmonitor, der an den Leistungsversorgungsknoten und den Taktknoten gekoppelt ist, wobei der Spannungsmonitor Abtaster aufweist, die Mehrfachbitauflösung der Spannung an dem Leistungsversorgungsknoten in einem einzigen Zyklus des Takts bereitstellen.
  2. Vorrichtung nach Anspruch 1, wobei der Spannungsmonitor einen Ausgang erzeugt, der einen aktuellen Spannungszustand der Spannung an dem Leistungsversorgungsknoten als einen digitalen Thermometercode oder Gray-Code darstellt.
  3. Vorrichtung nach Anspruch 1, wobei der Spannungsmonitor einen Bereich von Spannungsänderung der Spannung an dem Leistungsversorgungsknoten überwachen soll, wobei der Bereich größer als 400 mV ist.
  4. Vorrichtung nach Anspruch 1, wobei der Spannungsmonitor einen Spannungsabfall der Spannung an dem Leistungsversorgungsknoten abtasten soll.
  5. Vorrichtung nach Anspruch 1, wobei der Spannungsmonitor Blasenunterdrückungslogikgates aufweist.
  6. Vorrichtung nach Anspruch 1, wobei der Spannungsmonitor Teil einer digitalen Standardbibliothek ist, die mit einem automatischen Platzierungs- und Routenschema übereinstimmt.
  7. Vorrichtung nach Anspruch 1, wobei der Spannungsmonitor Polaritätsumkehr von einem Code von einer Verzögerungsleitung anwenden soll, wobei die Polaritätsumkehr jeden zweiten Zyklus des Takts angewendet wird.
  8. Vorrichtung nach einem der Ansprüche 1 bis 7, wobei der Spannungsmonitor aufweist: einen Taktteiler zum Teilen einer Frequenz des Takts an dem Taktknoten und zum Erzeugen eines frequenzgeteilten Takts; und einen Zeit/Digital-Wandler, der an den Taktteiler und den Leistungsversorgungsknoten gekoppelt ist, wobei der Zeit/Digital-Wandler Änderungen in Spannung an dem Leistungsversorgungsknoten in einen Code erfasst.
  9. Vorrichtung nach Anspruch 8, wobei der Code von einer Leistungsverwaltungseinheit empfangen wird.
  10. Vorrichtung nach Anspruch 8, wobei der Zeit/Digital-Wandler eine Latenz von einem Zyklus des Takts auf dem Taktknoten hat.
  11. Vorrichtung nach Anspruch 8, wobei der Taktteiler ein Teilerverhältnis von 2, 4, oder 8 hat.
  12. Vorrichtung nach Anspruch 8, wobei der Zeit/Digital-Wandler eine Verzögerungskette aufweist, aufweisend Verzögerungszellen, wobei die Verzögerungskette den frequenzgeteilten Takt bei einem Eingang der Verzögerungskette empfangen soll.
  13. Vorrichtung nach Anspruch 12, wobei der Spannungsmonitor mehrere aufeinanderfolgende Schaltkreise aufweist, wobei jeder der aufeinanderfolgenden Schaltkreise an einen Ausgang einer einzelnen Verzögerungszelle der Verzögerungskette gekoppelt ist.
  14. Vorrichtung nach Anspruch 13, wobei der Spannungsmonitor einen Auswahlschaltkreis aufweist, der an die mehreren aufeinanderfolgenden Schaltkreise gekoppelt ist, wobei der Auswahlschaltkreis mehrere Multiplexer aufweist, wobei jeder Multiplexer an einen einzelnen folgenden Schaltkreis der mehreren aufeinanderfolgenden Schaltkreise gekoppelt ist.
  15. Vorrichtung nach Anspruch 14, wobei der Spannungsmonitor Logik aufweist, um durch Metastabilität induzierte Blasen in Ausgängen der Auswahlschaltkreise zu unterdrücken.
  16. Vorrichtung zum Überwachen von Spannung, die Vorrichtung aufweisend: einen Spannungsmonitor, der an einen Leistungsversorgungsknoten und einen Taktknoten gekoppelt ist, wobei der Spannungsmonitor Abtaster aufweist, die Mehrfachbitauflösung einer Spannung an dem Leistungsversorgungsknoten in einem einzigen Zyklus eines Takts an dem Taktknoten bereitstellen; und eine Leistungsverwaltungssteuerung zum Empfangen eines Ausgangs des Spannungsmonitors und Einstellen einer Betriebsfrequenz eines Prozessorkerns gemäß dem Ausgang.
  17. Vorrichtung nach Anspruch 16, wobei der Spannungsmonitor einen Ausgang erzeugt, der einen aktuellen Spannungszustand der Spannung an dem Leistungsversorgungsknoten als einen digitalen Thermometercode oder Gray-Code darstellt.
  18. System, aufweisend: einen Speicher; einen Prozessor, der an den Speicher gekoppelt ist; und eine drahtlose Schnittstelle, um dem Prozessor zu erlauben, mit einer anderen Vorrichtung zu kommunizieren, wobei der Prozessor eine Vorrichtung nach einem der Ansprüche 1 bis 15 aufweist.
  19. System, aufweisend: einen Speicher; einen Prozessor, der an den Speicher gekoppelt ist; und eine drahtlose Schnittstelle, um dem Prozessor zu erlauben, mit einer anderen Vorrichtung zu kommunizieren, wobei der Prozessor eine Vorrichtung nach einem der Ansprüche 16 bis 17 aufweist.
DE102020132721.8A 2020-02-05 2020-12-09 Vollständig digitaler spannungsmonitor (advm) mit einzelzykluslatenz Pending DE102020132721A1 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US16/783,096 2020-02-05
US16/783,096 US10784874B1 (en) 2020-02-05 2020-02-05 All-digital voltage monitor (ADVM) with single-cycle latency

Publications (1)

Publication Number Publication Date
DE102020132721A1 true DE102020132721A1 (de) 2021-08-05

Family

ID=72516741

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102020132721.8A Pending DE102020132721A1 (de) 2020-02-05 2020-12-09 Vollständig digitaler spannungsmonitor (advm) mit einzelzykluslatenz

Country Status (3)

Country Link
US (2) US10784874B1 (de)
CN (1) CN113219238A (de)
DE (1) DE102020132721A1 (de)

Families Citing this family (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11402413B1 (en) 2018-12-12 2022-08-02 Marvell Asia Pte, Ltd. Droop detection and mitigation
US11545987B1 (en) 2018-12-12 2023-01-03 Marvell Asia Pte, Ltd. Traversing a variable delay line in a deterministic number of clock cycles
US11545981B1 (en) 2018-12-31 2023-01-03 Marvell Asia Pte, Ltd. DLL-based clocking architecture with programmable delay at phase detector inputs
US10784874B1 (en) * 2020-02-05 2020-09-22 Intel Corporation All-digital voltage monitor (ADVM) with single-cycle latency
US11774919B2 (en) * 2020-02-05 2023-10-03 Intel Corporation Distributed and scalable all-digital low dropout integrated voltage regulator
JP7312141B2 (ja) * 2020-05-25 2023-07-20 ルネサスエレクトロニクス株式会社 半導体装置
CN112445121B (zh) * 2021-02-01 2021-04-16 南京邮电大学 一种时间寄存器及用于时间-数字转换器的时域运算电路
CN115267304A (zh) 2021-04-30 2022-11-01 脸萌有限公司 供电电压检测器、供电电压检测装置、系统和介质
US20220006459A1 (en) * 2021-09-20 2022-01-06 Intel Corporation Circuits And Methods For Supply Voltage Detection And Timing Monitoring
US11362667B1 (en) * 2021-09-24 2022-06-14 Cypress Semiconductor Corporation Reducing delay-lock loop delay fluctuation
US11927612B1 (en) 2022-04-07 2024-03-12 Marvell Asia Pte Ltd Digital droop detector
TWI804290B (zh) * 2022-04-26 2023-06-01 開曼群島商臉萌有限公司 供電電壓檢測器、供電電壓檢測裝置、系統和介質
US11728814B1 (en) * 2022-06-06 2023-08-15 Taiwan Semiconductor Manufacturing Company, Ltd. Voltage droop monitor and voltage droop monitoring method
KR20240030473A (ko) * 2022-08-31 2024-03-07 삼성전자주식회사 디지털 드룹 검출기, 반도체 장치, 그리고 그것의 켈리브레이션 방법
US20240146316A1 (en) * 2022-10-28 2024-05-02 Mediatek Inc. Dynamic Configuration of an Oscillator Using Adaptive Voltage and Code Scaling to Follow a Target Frequency

Family Cites Families (25)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5844908A (en) * 1996-11-14 1998-12-01 Alcatel Network Systems, Inc. Digital delay system and method for digital cross connect telecommunication systems
US6388602B1 (en) * 2000-08-23 2002-05-14 International Business Machines Corporation Bubble and meta-stability error immune gray-code encoder for high-speed A/D converters
WO2002069552A1 (en) * 2001-02-24 2002-09-06 International Business Machines Corp. Data capture technique for high speed signaling
JP2008028831A (ja) * 2006-07-24 2008-02-07 General Res Of Electronics Inc 電圧制御発振器
US8346832B2 (en) * 2006-10-12 2013-01-01 The Regents Of The University Of Michigan Random number generator
US8204107B2 (en) * 2008-04-09 2012-06-19 National Semiconductor Corporation Bandwidth reduction mechanism for polar modulation
US8447548B2 (en) * 2009-04-07 2013-05-21 The Boeing Company Method using time to digital converter for direct measurement of set pulse widths
JP2010273118A (ja) * 2009-05-21 2010-12-02 Toshiba Corp 時間デジタル変換器
US8405413B2 (en) * 2010-08-23 2013-03-26 International Business Machines Corporation Critical path monitor having selectable operating modes and single edge detection
KR101797625B1 (ko) * 2012-02-16 2017-11-15 한국전자통신연구원 저전력 고해상도 타임투디지털 컨버터
JP6071840B2 (ja) * 2013-10-25 2017-02-01 株式会社東芝 A/dコンバータ及び半導体集積回路
US9772375B2 (en) * 2014-08-01 2017-09-26 Oracle International Corporation High sensitivity digital voltage droop monitor for integrated circuits
US9602113B2 (en) * 2014-08-27 2017-03-21 Qualcomm Incorporated Fast frequency throttling and re-locking technique for phase-locked loops
US20160282889A1 (en) * 2015-03-26 2016-09-29 Tarun Mahajan Linear and non-linear control for digitally-controlled low-dropout circuitry
US9735679B2 (en) * 2015-12-03 2017-08-15 Nuvoton Technology Corporation Method and apparatus for a delay locked power supply regulator
US9628089B1 (en) * 2016-06-24 2017-04-18 Qualcomm Incorporated Supply voltage tracking clock generator in adaptive clock distribution systems
US9746832B1 (en) * 2016-09-09 2017-08-29 Samsung Electronics Co., Ltd System and method for time-to-digital converter fine-conversion using analog-to-digital converter (ADC)
US10382014B2 (en) * 2016-12-23 2019-08-13 Ati Technologies Ulc Adaptive oscillator for clock generation
US10175655B2 (en) * 2017-03-17 2019-01-08 Intel Corporation Time-to-digital converter
CN111034050A (zh) * 2017-09-22 2020-04-17 英特尔公司 低等待时间自适应计时
US11520370B2 (en) * 2018-03-09 2022-12-06 MAX-PLANCK-Gesellschaft zur Förderung der Wissenschaften e.V. Delay element, delay element chain and fast all-digital clock frequency adaptation circuit for voltage droop tolerance
US10745023B2 (en) * 2018-06-28 2020-08-18 Intel Corporation Functional safety power supply framework for real-time automotive systems
US10886847B1 (en) * 2019-06-14 2021-01-05 Arm Limited Performance regulation techniques
US11537375B2 (en) * 2019-08-23 2022-12-27 Intel Corporation Digitally coordinated dynamically adaptable clock and voltage supply apparatus and method
US10784874B1 (en) * 2020-02-05 2020-09-22 Intel Corporation All-digital voltage monitor (ADVM) with single-cycle latency

Also Published As

Publication number Publication date
US10784874B1 (en) 2020-09-22
CN113219238A (zh) 2021-08-06
US11211935B2 (en) 2021-12-28
US20210242872A1 (en) 2021-08-05

Similar Documents

Publication Publication Date Title
DE102020132721A1 (de) Vollständig digitaler spannungsmonitor (advm) mit einzelzykluslatenz
US11444532B2 (en) Non-linear clamp strength tuning method and apparatus
DE102020131640A1 (de) Vorrichtung und verfahren zur laststromerfassung mit schnellem ansprechen
DE102020134347A1 (de) Leistungsfeldeffekttransistor-topologie und bootstrapschaltung für invertierenden buck-boost-gs-gs-wandler
DE112020003722T5 (de) Digital-linearer hybrid-schaltkondensator-spannungsregler
DE102021126686A1 (de) Leistungsverwaltungseinrichtung und -verfahren für mehrebenenspeichersysteme
DE102020131690A1 (de) Energieverwaltung für usb-typ-c-subsysteme
DE112015003632T5 (de) Dynamisches spielraumeinstellen zum steuern von anwendungsspezifischen schaltungen und speichern
DE112019002299T5 (de) Variabel adaptiver integrierter computational digital low-dropout-regler
DE102020134343A1 (de) Treiberunterstützte esd-schutzvorrichtung und zugehöriges verfahren
DE112019000265T5 (de) Zuverlässiger digitaler regler mit niedriger abfallspannung
DE102021121216A1 (de) Einrichtung und Verfahren zum Steuern eines Prozessorspitzensttroms
DE102021130628A1 (de) Sicherheitsverriegelungseinrichtung und verfahren für geistiges eigentum
DE102021119677A1 (de) Low power hybrid reverse-bandlückenreferenz und -digitaltemperatursensor
DE112020002809T5 (de) Einrichtung und verfahren zum aufrechterhalten stabiler taktung
DE102020134682A1 (de) Niederleistungsvorrichtung und verfahren zur vervielfachung der frequenz eines takts
US11398814B2 (en) Low-power single-edge triggered flip-flop, and time borrowing internally stitched flip-flop
US11757434B2 (en) High performance fast Mux-D scan flip-flop
DE102020132082A1 (de) Verfahren und vorrichtung zur genauen messung einer plattformleistung
DE102021123826A1 (de) Verstärker mit niedriger leistung und bereichseffizienter verstärkungsbandbreite-verdreifachung
DE102020130173A1 (de) Technik für den pll-kondensatoraustausch und dynamische bandauswahl für einen digital gesteuerten oszillator mit geringem jitter
DE102022105671A1 (de) Phasenregelkreis-unterstützte schnellstartvorrichtung und schnellstartverfahren
US11791819B2 (en) Low power flip-flop with reduced parasitic capacitance
DE102020130888A1 (de) Doppelflankengetriggertes mux-d-scan-flip-flop
DE102020129577A1 (de) Konvergenter fifo-status-synchronisierer mit taktübergang