DE102022122719A1 - Leistungsmodulation unter Verwendung von dynamischer Spannungs- und Frequenzskalierung - Google Patents

Leistungsmodulation unter Verwendung von dynamischer Spannungs- und Frequenzskalierung Download PDF

Info

Publication number
DE102022122719A1
DE102022122719A1 DE102022122719.7A DE102022122719A DE102022122719A1 DE 102022122719 A1 DE102022122719 A1 DE 102022122719A1 DE 102022122719 A DE102022122719 A DE 102022122719A DE 102022122719 A1 DE102022122719 A1 DE 102022122719A1
Authority
DE
Germany
Prior art keywords
circuit
cnn
voltage
parameters
metrics
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
DE102022122719.7A
Other languages
English (en)
Inventor
Mark Alan Lovell
Robert Michael Muchsel
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.)
Maxim Integrated Products Inc
Original Assignee
Maxim Integrated Products Inc
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 Maxim Integrated Products Inc filed Critical Maxim Integrated Products Inc
Publication of DE102022122719A1 publication Critical patent/DE102022122719A1/de
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/06Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons
    • G06N3/063Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons using electronic means
    • G06N3/065Analogue means
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3058Monitoring arrangements for monitoring environmental properties or parameters of the computing system or of the computing system component, e.g. monitoring of power, currents, temperature, humidity, position, vibrations
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • G06F1/3206Monitoring of events, devices or parameters that trigger a change in power modality
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • G06F1/3234Power saving characterised by the action undertaken
    • G06F1/3296Power saving characterised by the action undertaken by lowering the supply or operating voltage
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1476Error detection or correction of the data by redundancy in operation in neural networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3409Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment for performance assessment
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/0464Convolutional networks [CNN, ConvNet]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/047Probabilistic or stochastic networks
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Biomedical Technology (AREA)
  • Health & Medical Sciences (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Biophysics (AREA)
  • Artificial Intelligence (AREA)
  • Evolutionary Computation (AREA)
  • Computing Systems (AREA)
  • Molecular Biology (AREA)
  • Computational Linguistics (AREA)
  • Data Mining & Analysis (AREA)
  • General Health & Medical Sciences (AREA)
  • Mathematical Physics (AREA)
  • Software Systems (AREA)
  • Quality & Reliability (AREA)
  • Neurology (AREA)
  • Computer Hardware Design (AREA)
  • Probability & Statistics with Applications (AREA)
  • Power Sources (AREA)

Abstract

Berührungsfreie, kostengünstige Systeme und Verfahren ermöglichen, dass Entwickler Spielraum- und Sicherheitstoleranzanforderungen im Zusammenhang mit Rechenschaltungen wie z. B. Maschinenlernschaltungen verringern, ohne die Grundfläche zu vergrößern oder Rechenkapazität und andere wertvolle Ressourcen opfern zu müssen. Verschiedene Ausführungsformen bewerkstelligen dies durch Ausnutzen von bestimmten Eigenschaften von Maschinenlernschaltungen und die Verwendung eines CNN als Diagnosewerkzeug zum Bewerten des Schaltungsverhaltens und Einstellen von Schaltungsparametern, um verfügbare Rechenressourcen vollständig auszunutzen.

Description

  • Querverweis auf verwandte Patentanmeldungen
  • Die vorliegende Anmeldung beansprucht den Prioritätsvorteil der gleichzeitig anhängigen und gemeinsam zugeteilten nicht vorläufigen US-Patentanmeldung Nr. 17/472 113 , eingereicht am 10. September 2021, mit dem Titel „POWER MODULATION USING DYNAMIC VOLTAGE AND FRE-QUENCY SCALING“, die als Erfinder Mark Alan Lovell und Robert Michael Muchsel auflistet. Das vorstehend erwähnte Patentdokument ist hier durch Bezugnahme vollständig mit aufgenommen.
  • Hintergrund
  • A. Technisches Gebiet
  • Die vorliegende Offenbarung bezieht sich im Allgemeinen auf die Datenverarbeitung in Maschinenlernanwendungen. Insbesondere bezieht sich die vorliegende Offenbarung auf Leistungssteuersysteme und Verfahren zum effizienten Nutzen von Maschinenlernrechenschaltungen, die eine große Anzahl von arithmetischen Operationen durchführen. Im Einzelnen betrifft die vorliegende Erfindung ein Verfahren zum Erhöhen der Rechenressourcennutzung nach Anspruch 1, ein System zum Erhöhen der Rechenressourcennutzung nach Anspruch 11 und ein Verfahren zum Erhöhen der Rechenressourcennutzung nach Anspruch 19. Vorteilhafte Ausführungsformen der Erfindung sind durch die Merkmale der abhängigen Ansprüche gekennzeichnet.
  • B. Hintergrund
  • Das Maschinenlernen ist ein Teilgebiet von künstlicher Intelligenz, das ermöglicht, dass Computer an einem Beispiel lernen, ohne dass sie explizit in einer herkömmlichen Hinsicht programmiert sind. Zahlreiche Maschinenlernanwendungen verwenden faltende neuronale Netze (CNNs), die überwachte Netze sind, die in der Lage sind, komplexe Aufgaben zur Bildklassifikation und semantischen Segmentierung zu lösen. Ein CNN verwendet als Eingabe große Mengen an mehrdimensionalen Trainingsdaten, z. B. Bild- oder Sensordaten, um auffällige Merkmale darin durch Verwendung und Wiederverwendung von Filtern mit lernbaren Parametern zu lernen, die auf die Eingangsdaten angewendet werden. In einer anschließenden Rückschlussphase verwendet das CNN nicht überwachte Operationen, um vorher ungesehene Merkmale oder Ereignisse in neuen Eingangsdaten zu detektieren oder zu interpolieren, um Objekte zu klassifizieren oder um eine Ausgabe wie z. B. Regression zu berechnen oder um seine Ausgabe mit der Eingabe für Aufgaben wie z. B. Rauschunterdrückung zu kombinieren.
  • Um große Zahlen von arithmetischen Berechnungen für Faltungen durchzuführen, werden häufig Hardware-Beschleuniger wie z. B. eingebettete Hardware-Maschinenlernbeschleuniger verwendet. Die Leistungsverbrauchsanforderungen solcher Vorrichtungen variieren über einen breiten dynamischen Bereich, der stark von verschiedenen Faktoren wie z. B. der Topologie des Systems, in dem der Beschleuniger arbeitet, der Größe des CNN, das verarbeitet wird, und der Anzahl von durchgeführten Faltungsberechnungen, dem Typ und den Dimensionen von verarbeiteten Daten, der Taktgeschwindigkeit, mit der Berechnungen durchgeführt werden, und dergleichen abhängt.
  • Interne und externe Leistungsversorgungen wie z. B. lineare Regler oder Schaltleistungsversorgungen, die üblicherweise verwendet werden, um leistungshungrige Hardware-Beschleuniger anzutreiben, sind bemessen, um Leistung auf einer oder mehreren festen Schienenspannungen auszugeben. Da Hardware-Beschleuniger eine große Anzahl von Berechnungen in einer relativ kurzen Zeitdauer durchführen müssen, führt dies häufig zu unerwünschten momentanen Strom- und Leistungsspitzen, die sich gewöhnlich negativ auf die Lebensdauer der Rechen-Hardware auswirken.
  • Obwohl einige Methoden ausgestattet sind, um die Leistung durch Setzen von zumindest einigen Abschnitten einer Schaltung in einen leistungsarmen Modus, z. B. einen Schlafmodus, zu verringern, arbeiten alle verfügbaren Leistungsschienen typischerweise weiterhin mit ihrer nominalen Ausgangsspannung, d. h. mit voller Kapazität. Daher können existierende Methoden niedrigere Arbeitsspeicherversorgungsspannungen und andere Merkmale, die hier dargestellt werden, die die Systemkenntnis verwenden, um den Gesamtleistungsverbrauch intelligent zu verringern, nicht ausnutzen. Im Gegensatz zu Methoden, denen das kontextabhängige Bewusstsein des Typs und der Intensität von Rechenschritten, die Hardware-Beschleuniger und ähnliche Rechenschaltungen zu irgendeinem Zeitpunkt durchführen, und der Leistungsanforderungen von jedem Satz von Operationen fehlt, stellen bestimmte Ausführungsformen hier proaktiv auf die Leistung bezogene Parameter in einer Weise ein, die der Maschinenlernschaltung nutzt und das Verschwenden von wertvollen Leistungsressourcen vermeidet, insbesondere in eingebetteten Systemen.
  • Figurenliste
  • Auf Ausführungsformen der Erfindung wird Bezug genommen, von denen Beispiele in den begleitenden Figuren dargestellt sein können. Diese Figuren sollen erläuternd, nicht begrenzend sein. Obwohl die Erfindung im Allgemeinen im Zusammenhang mit diesen Ausführungsformen beschriebenen wird, sollte selbstverständlich sein, dass dies den Schutzbereich der Erfindung nicht auf diese speziellen Ausführungsformen begrenzen soll.
    • 1 ist eine allgemeine Darstellung eines herkömmlichen eingebetteten Maschinenlernbeschleunigersystems.
    • 2 stellt ein beispielhaftes Blockdiagramm eines Steuersystems zum Erhöhen der Rechenressourcennutzung in Maschinenlernschaltungen gemäß verschiedenen Ausführungsformen der vorliegenden Offenbarung dar.
    • 3 ist ein Ablaufplan eines erläuternden Prozesses zum Erhöhen der Rechenressourcennutzung in CNNs gemäß verschiedenen Ausführungsformen der vorliegenden Offenbarung.
    • 4 ist ein Ablaufplan eines alternativen Prozesses zum Erhöhen der Rechenressourcennutzung in CNNs gemäß verschiedenen Ausführungsformen der vorliegenden Offenbarung.
    • 5 stellt ein vereinfachtes Blockdiagramm einer Rechenvorrichtung/eines Informationsbearbeitungssystems gemäß Ausführungsformen der vorliegenden Offenbarung dar.
  • Ausführliche Beschreibung von Ausführungsformen
  • In der folgenden Beschreibung werden für Erläuterungszwecke spezielle Details dargelegt, um ein Verständnis der Erfindung zu schaffen. Es ist jedoch für einen Fachmann auf dem Gebiet ersichtlich, dass die Erfindung ohne diese Details ausgeführt werden kann. Ferner erkennt ein Fachmann auf dem Gebiet, dass Ausführungsformen der vorliegenden Erfindung, die nachstehend beschrieben werden, in einer Vielfalt von Weisen implementiert werden können, wie z. B. als Prozess, Einrichtung, System, Vorrichtung oder Verfahren auf einem konkreten computerlesbaren Medium.
  • Komponenten oder Module, die in Diagrammen gezeigt sind, veranschaulichen beispielhafte Ausführungsformen der Erfindung und sollen es vermeiden, die Erfindung unklar zu machen. Es soll auch selbstverständlich sein, dass in dieser ganzen Erörterung Komponenten als separate Funktionseinheiten beschrieben werden können, die Untereinheiten umfassen können, aber der Fachmann auf dem Gebiet erkennt, dass verschiedene Komponenten oder Abschnitte davon in separate Komponenten unterteilt werden können oder miteinander integriert werden können, einschließlich innerhalb eines einzelnen Systems oder einer einzelnen Komponente integriert. Es sollte beachtet werden, dass Funktionen oder Operationen, die hier erörtert werden, als Komponenten implementiert werden können. Komponenten können in Software, Hardware oder einer Kombination davon implementiert werden.
  • Ferner sollen Verbindungen zwischen Komponenten oder Systemen innerhalb der Figuren nicht auf direkte Verbindungen begrenzt sein. Vielmehr können Daten zwischen diesen Komponenten durch Zwischenkomponenten modifiziert, umformatiert oder anders geändert werden. Zusätzliche oder weniger Verbindungen können auch verwendet werden. Es soll auch beachtet werden, dass die Begriffe „gekoppelt“, „verbunden“ oder „kommunikativ gekoppelt“ so verstanden werden sollen, dass sie direkte Verbindungen, indirekte Verbindungen durch eine oder mehrere Zwischenvorrichtungen und drahtlose Verbindungen umfassen.
  • Eine Bezugnahme in der Patentbeschreibung auf „eine einzelne Ausführungsform“, eine „bevorzugte Ausführungsform“, „eine Ausführungsform“ oder „Ausführungsformen“ bedeutet, dass ein spezielles Merkmal, eine spezielle Struktur, eine spezielle Eigenschaft oder eine spezielle Funktion, die in Verbindung mit der Ausführungsform beschrieben ist, in mindestens einer Ausführungsform der Erfindung enthalten ist und sich in mehr als einer Ausführungsform befinden kann. Die Erscheinungen der vorstehend angegebenen Ausdrücke an verschiedenen Stellen in der Patentbeschreibung beziehen sich auch nicht notwendigerweise alle auf dieselbe Ausführungsform oder dieselben Ausführungsformen.
  • Die Verwendung von bestimmten Begriffen an verschiedenen Stellen in der Patentbeschreibung dient zur Erläuterung und sollte nicht als Begrenzung aufgefasst werden. Ein Dienst, eine Funktion oder eine Ressource ist nicht auf einen einzelnen Dienst, eine einzelne Funktion oder eine einzelne Ressource begrenzt; die Verwendung dieser Begriffe kann sich auf eine Gruppierung von verwandten Diensten, Funktionen oder Ressourcen beziehen, die verteilt oder aggregiert sein können. Die Worte „optimal“, „optimieren“, „Optimierung“ und dergleichen beziehen sich auf eine Verbesserung oder ein Ergebnis oder einen Prozess und erfordern nicht, dass das angegebene Ergebnis oder der angegebene Prozess einen „optimalen“ oder Spitzenzustand erreicht hat. In diesem Dokument sollen die Begriffe „umfassen“, „einschließlich“, „beinhalten“ und „umfassend“ als offene Begriffe verstanden werden und beliebige Listen, die folgen, sind Beispiele und sollen nicht auf die aufgelisteten Elemente begrenzt sein. Die Begriffe „Arbeitsspeicher“, „Arbeitsspeichervorrichtung“ und „Register“ werden austauschbar verwendet. Ebenso werden die Begriffe Kern, Filter, Gewicht, Parameter und Gewichtsparameter austauschbar verwendet. Der Begriff „Schicht“ bezieht sich auf eine Schicht eines neuronalen Netzes. Ein „neuronales Netz“ umfasst irgendein auf dem Fachgebiet bekanntes neuronales Netz. „Hardware-Beschleuniger“ bezieht sich auf irgendeine elektrische oder optische Schaltung, die verwendet werden kann, um mathematische Operationen und zugehörige Funktionen durchzuführen, einschließlich Hilfssteuerfunktionen. „Schaltung“ umfasst „Unterschaltungen“ und kann sich auf sowohl maßgeschneiderte Schaltungen wie z. B. spezielle Hardware als auch Universalschaltungen beziehen. Die Begriffe „Rechenleistungsfähigkeit“ und „Schaltungsleistungsfähigkeit“ beziehen sich auf die Rechengeschwindigkeit, Netzkapazität, Datenverarbeitungseffizienz, Leistungseffizienz und ähnliche Parameter (und Metriken zum Messen der Leistungsfähigkeit und Rechenressourcen) in Rechensystemen und anderen elektrischen Schaltungen. Die Begriffe „Sicherheitstoleranz“, „Toleranz“, „Fehlertoleranz“ und „Spielraum“ werden austauschbar verwendet.
  • Es wird angemerkt, dass, obwohl hier beschriebene Ausführungsformen im Zusammenhang mit CNNs gegeben werden, ein Fachmann auf dem Gebiet erkennen soll, dass die Lehren der vorliegenden Offenbarung nicht so begrenzt sind und gleichermaßen die Rechenressourcennutzung in anderen Rechensystemen und Schaltungen erhöhen können.
  • 1 stellt ein herkömmliches eingebettetes Maschinenlernbeschleunigersystem dar, das Daten in mehreren Stufen verarbeitet. Das System 100 enthält einen flüchtigen Speicher 102, einen nichtflüchtigen Speicher 104, einen Takt 106, Takt-E/A-Peripheriegeräte, einen Mikrocontroller 110, eine Leistungsversorgung 112 und einen Maschinenlernbeschleuniger 114. Der Mikrocontroller 110 kann ein herkömmlicher DSP oder eine Universalrechenvorrichtung sein, der Maschinenlernbeschleuniger 114 kann als CNN-Beschleuniger implementiert werden, der Hunderte von Registern (nicht gezeigt) umfasst. Wie in 1 dargestellt, koppelt der Maschinenlernbeschleuniger 114 mit anderen Teilen des eingebetteten Maschinenlernbeschleunigersystems 100 über eine Schnittstelle.
  • Im Betrieb führt der Mikrocontroller 110 arithmetische Operationen für Faltungen in Software oder unter Verwendung von einem oder mehreren Hardware-Beschleunigern durch. Der Maschinenlernbeschleuniger 114 verwendet typischerweise Gewichtsdaten, um Matrixmultiplikationen und zugehörige Faltungsberechnungen an Eingangsdaten unter Verwendung der Gewichtsdaten durchzuführen. Die Gewichtsdaten können vom Beschleuniger 114 entladen werden, beispielsweise um neue oder andere Gewichtsdaten zu laden, bevor der Beschleuniger 114 einen neuen Satz von Operationen unter Verwendung des neuen Satzes von Gewichtsdaten durchführt. Üblicher bleiben die Gewichtsdaten unverändert und für jede neue Berechnung werden neue Eingangsdaten in den Beschleuniger 114 geladen, um die Berechnungen durchzuführen. Der Maschinenlernbeschleuniger 114 führt häufig Millionen von Berechnungen in einer kurzen Zeit durch, was verursachen kann, dass die Leistungsversorgung 112 Leistungsspitzen antrifft, z. B. in Form von Stromspitzen, die sich auf die Langzeitleistung des Systems 100 nachteilig auswirken oder verursachen, dass das System ausfällt, wenn nicht die Leistungsversorgung 112 und ihre Unterstützungsschaltungsanordnung dazu ausgelegt sind, den schnellsten Anstieg des Leistungsbedarfs unter allen Umgebungsbedingungen (z. B. höhere Sommertemperaturen) zu handhaben, die das System 100 über seine Lebensdauer antreffen kann.
  • Wenn die Menge an Daten, die Faltungsoperationen unterzogen werden, zunimmt und die Komplexität von Operationen weiterhin wächst, tut dies auch der Leistungsverbrauch. Einer der Mängel der Leistungsversorgung 112 besteht darin, dass ihr irgendwelche Rückmeldungsmechanismen fehlen, um Informationen über den Maschinenlernbeschleuniger 114 zu verwenden, um sich an Operationen mit hoher und niedriger Leistung anzupassen. Folglich ist die Leistungsversorgung 112 außerstande, die Leistung auf der Basis der tatsächlichen Leistungsbedürfnisse der Rechenressourcen des Systems 100 zu steuern, um den Leistungsverbrauch zu verringern. Was folglich erforderlich ist, sind Systeme und Verfahren, die ermöglichen, dass Hardware-Beschleuniger effizient große Menge an komplexen arithmetischen Operationen für neuronale Netze mit geringem Leistungsverbrauch und idealerweise ohne Erhöhung der Hardware-Kosten verarbeiten.
  • In Abhängigkeit von dem Verwendungsfall sind im Allgemeinen elektronische Vorrichtungen dazu ausgelegt, unter einer Anzahl von verschiedenen Umständen zu arbeiten und variierende Umgebungseffekte wie z. B. Temperaturschwankungen zu überstehen. Selbst wenn es in der Praxis selten ist, sind elektronische Vorrichtungen idealerweise dazu ausgelegt, selbst unter Bedingungen „des schlimmsten Falls“ zu arbeiten. Außerdem dominiert statistisch die am schlechtesten arbeitende Schaltungskomponente oder Unterschaltung gewöhnlich die Gesamtleistungsfähigkeit einer elektronischen Schaltung. Daher muss der Schaltungsentwurf, der gewünschte Spezifikationen erfüllt, während die Wahrscheinlichkeit von Schaltungsausfällen niedrig gehalten wird, einen breiten Bereich von möglichen Szenarios berücksichtigen, einschließlich Effekten wie z. B. Abweichungen von Wafer zu Wafer (und sogar zwischen Chips).
  • In der Praxis erfordert dies das Festlegen von relativ vorsichtigen Sicherheitstoleranzen (Toleranzen von 20 % und mehr sind nicht untypisch) für Schaltungsparameter, um erwartete und unerwartete Variationen zu kompensieren. Entwurfseinschränkungen wie z. B. obligatorische Sicherheitstoleranzanforderungen führen jedoch zu meist unterbelasteten Schaltungen, die signifikante verfügbare Rechenkapazität ungenutzt lassen. Da die Leistung quadratisch mit der Spannung zunimmt, führt beispielsweise das Hinzufügen von Spielraum zu einer Versorgungsspannung einer IC zu einer unerwünschten höheren Verlustleistung, was folglich die gesamte Schaltungseffizienz verringert. In den meisten Fällen müssen daher weitreichende Kompromisse zwischen dem Entwerfen für den schlimmsten Fall und dem Erreichen einer gewünschten Schaltungsleistungsfähigkeit gemacht werden.
  • Es existieren zahlreiche Entwurfstechniken zum Einbauen von Spielraum in Schaltungen, um zumindest einige der Szenarios des schlimmsten Falls zu berücksichtigen und auf die Herstellung bezogene Komponentenvariationen zu kompensieren, während nach einer guten Schaltungsleistungsfähigkeit gestrebt wird. Eine Technik, die dynamische Spannungsskalierung, beinhaltet die Verwendung einer Selbsttestschaltung, um einen Ausfall zu detektieren, sobald eine an die Testschaltung angelegte Spannung zu niedrig wird. Das Messen der minimalen Kernversorgungsspannung, bei der die Schaltung ihre Funktionsfähigkeit aufrechterhält, kann beispielsweise beim Bestimmen, wie nahe die Spannung an eine Grenzlinienbedingung gesetzt werden kann (z. B. die nominale minimale Spannung, zu der eine Sicherheitstoleranz hinzugefügt ist), unterstützen, was Energieeinsparungen ergibt, während ein zuverlässiger Betrieb sichergestellt wird.
  • Solche Methoden steuern jedoch physikalische Parameter und Umgebungsbedingungen wie z. B. Temperatur, Spannung, Strom usw., die z. B. an einer begrenzten Anzahl von Messpunkten an oder nahe der Schaltung gemessen werden und in Nachschlagetabellen indiziert werden. Daher eignen sich existierende Techniken nicht für Software- und Maschinenlernanwendungen.
  • Solche Verfahren sind außerdem daran gebunden, relativ vorsichtige Entwurfseinschränkungen aufgrund der Unfähigkeit des Entwicklers zu wählen, alle Umstände zu kennen, denen ein Benutzer die Schaltung aussetzen wird, was zum Entwurf von relativ großen Sicherheitstoleranzen führt, die einen breiten Bereich von möglichen Szenarios abdecken. Ferner macht das indirekte Testen und Messen nicht nur Fehlersuchproblembereiche schwieriger, sondern ermöglicht Entwicklern auch nicht, verfügbare Rechenressourcen vollständig auszunutzen, da indirekt erhaltene Parameter lediglich als Stellvertreter dienen, die nur grob annähern können, wie z. B. ein Mikrocontroller oder eine Maschinenlern-Hardware wie z. B. eine CNN-Schaltung, die schließlich Berechnungen durchführt, die eine gewünschte Ausgabe liefern, sich unter bestimmten Bedingungen verhalten würde.
  • Bestimmte interessierende Bereiche wie z. B. heiße Stellen an einem Chip sind beispielsweise durch eine Logikschaltungsanordnung abgedeckt und folglich nicht zugänglich, um exakte Messungen zu ermöglichen, aus denen zuverlässige Schlussfolgerungen hinsichtlich des Spielraums gezogen werden können, um zu garantieren, dass eine Schaltung zuverlässig ohne Ausfall arbeitet. Ferner erfordert die Implementierung einer Messschaltungsanordnung zusätzlichen Chipraum für mehrere Schaltungskomponenten, die jeweils ihren eigenen Spielraum und ihre eigenen Spielraumanforderungen aufweisen, was folglich teilweise ihren eigenen Zweck vereitelt.
  • Im Gegensatz dazu sind CNN-Anwendungen und ihre Verwendungsfälle vorteilhafterweise viel unkomplizierter und vorhersagbar, was eine viel bessere Näherung von tatsächlichen Schaltungs/Betriebs-Bedingungen ermöglicht. Verschiedene Ausführungsformen hier schaffen berührungsfreie, kostengünstige Systeme und Verfahren, die Entwicklern ermöglichen, Spielraum und Sicherheitstoleranzen einzubauen, die Szenarios des schlimmsten Falls im Zusammenhang mit dem Maschinenlernen berücksichtigen, ohne Rechenkapazität oder andere wertvolle Ressourcen opfern zu müssen. Eine kostengünstige Steuereinheit oder Logik, deren Größe im Vergleich zur Maschinenlern-Hardware selbst relativ klein ist, spart Chipplatz, da kein zusätzlicher Platz für die Schaltungsanordnung erforderlich ist, deren einziger Zweck darin besteht, Messungen durchzuführen. In verschiedenen Ausführungsformen verwendet ein Testnetz die tatsächliche(n) Ausgabe(n) einer Maschinenlernschaltung und nutzt bestimmte Eigenschaften von Maschinenlernschaltungen, um verfügbare Rechenressourcen vollständig auszunutzen.
  • Im Einzelnen besteht eine bekannte Eigenschaft von Maschinenlernschaltungen darin, dass in Anbetracht einer bekannten Eingabe an einem bekannten Netz mit bestimmter Komplexität eine relativ kleine Änderung der Kette von Ereignissen im Allgemeinen auf eine relativ große Änderung an der Ausgabe verstärkt wird. Folglich können potentielle Probleme entlang einer logischen Kette oder eines Rechenpfades leicht detektiert werden. Zum Vergleich ist diese Verstärkung nicht so drastisch wie die bekannte Eigenschaft von Verschlüsselungsschemen in Verschlüsselungsanwendungen, in denen im Durchschnitt ein einzelnes Bit, das am Eingang eines Verschlüsselungsalgorithmus umgekehrt wird, dazu führt, dass die Hälfte der Bits am Ausgang auch umgekehrt werden.
  • Verschiedene Ausführungsformen hier verwenden einiges oder alles einer Maschinenlernschaltung selbst als Diagnosewerkzeug, um das Schaltungsverhalten zu bewerten und Betriebsparameter einer elektrischen Schaltung einzustellen, um schließlich die Leistungsversorgungsressourcennutzung zu optimieren, um die Recheneffizienz zu erhöhen. Eine Maschinenlernschaltung, z. B. ein CNN, ändert das Verhalten während des Betriebs, wenn zumindest ein gewisser Teil der Schaltung, an der das CNN arbeitet, eine kritische Temperatur überschreitet oder zu schnell arbeitet. In solchen Fällen kann das CNN nicht wie erwartet arbeiten und ein falsches Ergebnis ausgeben, das beobachtbar oder messbar ist. Verschiedene Ausführungsformen nutzen dies unter Verwendung einer bekannten Eingabe wie z. B. eines Testmusters oder Testprogramms, um das Verhalten des CNN zu testen und einen oder mehrere Betriebsparameter (z. B. Taktgeschwindigkeit) zu steuern, um eine Sicherheitstoleranz zu verringern (z. B. auf eine niedrigere Taktgeschwindigkeit, die so gering und klein wie praktisch möglich ist), wodurch die Gesamtrechenkapazität erhöht wird.
  • Wie nachstehend mit Bezug auf 2 erörtert, kann in Ausführungsformen, um einen oder mehrere geeignete Schaltungsparameter zu bestimmen, um eine niedrigere Fehlertoleranz zu erreichen, z. B. um das CNN so nahe an der Grenze wie möglich zu betreiben, eine Steuerschaltung berücksichtigen, dass einige ICs schneller als andere ICs arbeiten können oder dass sogar ein Teil einer IC schneller als ein anderer Teil derselben IC arbeiten kann.
  • 2 stellt ein beispielhaftes Blockdiagramm eines Steuersystems zum Erhöhen der Rechenressourcennutzung in Maschinenlernschaltungen gemäß verschiedenen Ausführungsformen der vorliegenden Offenbarung dar. Wie dargestellt, kann das Steuersystem 200 eine Steuereinheit 208, eine Leistungsversorgung 204, Sensoren 202, z. B. Temperatursensoren an der Vorrichtung, und eine Schaltung 206 umfassen, die in Ausführungsformen eine Speichervorrichtung 210, einen Vorprozessor 212 und einen Maschinenlernprozessor 214 umfassen kann. Ein Fachmann auf dem Gebiet erkennt, dass eine oder mehrere Komponenten in 2 an einer ASIC, einer IC, einem Halbleiterchip usw. angeordnet sein können.
  • In Ausführungsformen kann die Steuereinheit 208 mit einem Mikrocontroller oder einer Zustandsmaschine, einem Komparator (nicht gezeigt) und irgendeiner Anzahl von Steuerschaltungselementen, die auf dem Fachgebiet bekannt sind, wie z. B. Logikschaltungen, Wandlern, Verstärkern und einem Arbeitsspeicher, der gemessene, erfasste und berechnete Informationen wie z. B. Schaltungskonfigurationsparameter für den Maschinenlernprozessor 214 (z. B. in einem einmalig programmierbaren Arbeitsspeicher) speichern kann, implementiert werden. Der Maschinenlernprozessor 214 in der Schaltung 206 kann z. B. als Maschinenlern-Hardware-Beschleuniger implementiert werden, der irgendeinen Abschnitt eines CNN betreibt, der einem Trainingsprozess unterzogen werden kann, um eine oder mehrere Aufgaben durchzuführen. Die Leistungsversorgung 204 kann irgendeine Kombination von externen und internen Leistungsversorgungen umfassen, um Leistung zu einer Anzahl von Schaltungskomponenten zu liefern. Die Sensoren 202 an der Vorrichtung können eine Schaltungsanordnung zum Überwachen und/oder Messen von Parametern, die dem Steuersystem 200 zugeordnet sind, umfassen. Beispielhafte Parameter umfassen auf die Hardware bezogene Parameter, wie z. B. Strom oder Spannung, und Umgebungsparameter wie z. B. Temperatur. Auf den Zeitablauf bezogene Parameter können Taktzyklen, Verarbeitungszeiten und dergleichen umfassen. Es wird angemerkt, dass Unterschaltungen innerhalb des Steuersystems 200 jeweils ihren eigenen Satz von Sensoren 202 und eine zugehörige Überwachungsschaltungsanordnung umfassen können.
  • Im Betrieb kann die Steuereinheit 208 eine korrekte Kommunikation innerhalb des Steuersystems 200 und darüber hinaus erleichtern. In Ausführungsformen kann die Steuereinheit 208 ein Leistungsmanagementschema implementieren, das Informationen über gemessene oder modellierte Daten in Bezug auf die Schaltung 206 und ihren Betrieb berücksichtigt, z. B. Betriebs- und/oder Konfigurationsdaten in Bezug auf den Maschinenlernprozessor 214, um eine Spielraumanforderung durch Einstellen von Betriebsparametern dynamisch zu verringern. In Ausführungsformen kann die Steuereinheit 208 den Spielraum verringern durch Bewirken, dass die Leistungsversorgung 204 eine Leistungsversorgungsspannung verringert, oder durch Verringern einer variablen Taktgeschwindigkeit, um einen hohen Grad an Rechenressourcennutzung zu erreichen, während idealerweise Schaltungsspezifikationen trotz sich ändernder Schaltungs- und Umgebungsbedingungen erfüllt werden.
  • In Ausführungsformen kann die Steuereinheit 208 direkt oder indirekt die Schaltung 206 steuern, beispielsweise um den Betrieb mit einer anfänglichen Leistungsversorgungsspannung zu beginnen, bei der bekannte Eingangsdaten 216 an zumindest einen Abschnitt eines CNN oder eines zweckgebundenen Testnetzes angelegt werden können, um eine Ausgabe 218 zu erzeugen, die ein Rückschlussergebnis oder irgendeine andere Schaltungsantwort sein kann. Die anfängliche Spannung kann gewählt worden sein, um eine Spielraumanforderung oder Sicherheitstoleranz zu erfüllen, die die korrekte Funktion der Schaltung 206 sicherstellen soll, insbesondere jene des Maschinenlernprozessors 214. Die Eingangsdaten 216 können ein Testmuster oder andere Testdaten umfassen, die verwendet werden können, um zu überprüfen, dass die Schaltung 206 mit einer bestimmten Einstellung oder einem bestimmten Parameter betriebsfähig ist. In Ausführungsformen kann, sobald der Maschinenlernprozessor 214 das Rückschlussergebnis am Ausgang 218 erzeugt, die Steuereinheit 208 dieses Ergebnis oder seine Gültigkeit mit einem entsprechenden Referenzergebnis vergleichen, um zu bestimmen, ob der Maschinenlernprozessor 214 oder irgendein Teil der Schaltung 206 wie erwartet arbeitet, z. B. ob das Testmuster ein zufriedenstellendes Ergebnis gemäß einer Entwurfsspezifikation erzeugt.
  • In Ausführungsformen kann, sobald die Steuereinheit 208 bestimmt, dass die Schaltung 206 mit dieser anfänglichen Leistungsversorgungsspannung korrekt funktioniert, die Steuereinheit 208 die Leistungsversorgung 204 anweisen, eine niedrigere Spannung auszugeben, wodurch ein Spielraum oder eine Sicherheitstoleranz im Austausch gegen die Erhöhung der Schaltungseffizienz verringert wird. In vielen Anwendungen verlängert vorteilhafterweise die Aufnahme von weniger Leistung die Batterielebensdauer, erhöht den MTBF und weist verschiedene andere wünschenswerte Eigenschaften auf, die sich aus einer verringerten Leistung und Leistungsdichte an einem Chip ergeben.
  • In Ausführungsformen kann die Steuereinheit 208 bewirken, dass die Leistungsversorgung 204 ihre Ausgangsspannung(en) in einer iterativen Weise, z. B. in einer Anzahl von vorgegebenen Inkrementen, unter Verwendung von verschiedenen auf dem Fachgebiet bekannten statistischen Verfahren verringert. In Ausführungsformen kann die Steuereinheit 208 dieselben oder andere Eingangsdaten erneut laden und den Test (die Tests) wiederholen, z. B. bis das CNN, das tatsächlich einer Informantenschaltung ähnelt, kein zufriedenstellendes Ergebnis mehr erzeugt. Anders ausgedrückt, um Leistung zu sparen, kann eine Spannung während einer Testphase gesenkt werden, um z. B. in einer Bestanden/Durchgefallen-Weise die niedrigste annehmbare Betriebsspannung oder höchste annehmbare Taktgeschwindigkeit zu ermitteln, die immer noch korrekte Testergebnisse zurückgibt.
  • In Ausführungsformen kann das CNN einen Satz von Parametern verwenden, die zu jenen identisch oder im Wesentlichen gleich sind, die der Maschinenlernprozessor 214 bei einem tatsächlichen Rückschluss während des regulären Betriebs verwenden würde. In dieser Weise verwenden im Gegensatz zu existierenden dynamischen Spannungsskalierungsverfahren, die lediglich eine Darstellung einer Logik verwenden, die im Mikrocontroller selbst nicht notwendigerweise vorhanden ist, verschiedene Ausführungsformen hier bekannte Testdaten am CNN selbst in Kombination mit Betriebsparametern, um Bedingungen der realen Welt zu emulieren, die praktisch zu jenen identisch sind, wenn die Schaltung 206 während des regulären Betriebs arbeitet, d. h. unter Verwendung von Netzparametern, die das CNN verwenden würde, wenn eine tatsächliche Rückschlussoperation durchgeführt wird.
  • Ein Fachmann auf dem Gebiet erkennt, dass das Testen ein beschleunigtes Testen, Zuverlässigkeitstesten und andere Verfahren umfassen kann und dass für eine gegebene Schaltung, um relativ langsame Drifts zu berücksichtigen, die über eine Zeitdauer auftreten können, Tests automatisch in periodischen oder zufälligen Intervallen, beispielsweise im Hintergrund und/oder wenn der Maschinenlernprozessor 214 nicht in Gebrauch ist, durchgeführt werden können.
  • In Ausführungsformen kann, sobald die Steuereinheit 208 ein Ergebnis detektiert, das als unannehmbar erachtet wird, z. B. wenn der Maschinenlernprozessor 214 einen Rückschluss erzeugt, dessen Ergebnis von einem erwarteten Ergebnis um ein gewisses Ausmaß abweicht, was auf eine Funktionsstörung von einer oder mehreren Komponenten in der Schaltung 206 hinweist, die Steuereinheit 208 die Leistungsversorgung anweisen, eine Ausgangsspannung, Frequenz usw. auf einen korrekten modifizierten Wert zurückzuführen, der kein fehlerhaftes Ergebnis oder einen Ausfall des CNN verursacht hat. In Ausführungsformen kann die Steuereinheit 208 zu diesem modifizierten Wert eine Sicherheitstoleranz hinzufügen, um eine Betriebsspannung zu erhalten, die sowohl eine Spielraumspezifikation erfüllt als auch die Schaltungseffizienz, z. B. des CNN, erhöht, wenn diese Spannung betrieben wird, die niedriger ist als die anfängliche Spannung.
  • In Ausführungsformen kann die hinzugefügte Sicherheitstoleranz, die programmierbar sein kann, mindestens eine Komponente umfassen, die für die Schaltung spezifisch ist, wie z. B. um die einzigartigen Eigenschaften von zumindest einem gewissen Teil der Schaltung 206 zu berücksichtigen. Ein anderer Teil der hinzugefügten Sicherheitstoleranz kann Rauschen (z. B. Schaltrauschen und andere Unsicherheiten) und andere dynamische oder feste Variablen (z. B. Schaltungsimpedanz) berücksichtigen, die charakterisiert werden können und einbezogen werden können, z. B. eine Fehler- oder Toleranzberechnung, die in Ausführungsformen eine statistische Abtastung einer Anzahl von Vorrichtungen und die Anwendung eines geeigneten statistischen Verteilungsmodells verwenden kann, das eine oder mehrere Schaltungsspezifikationen erfüllt. Im Allgemeinen sollte die hinzugefügte Sicherheitstoleranz so klein wie möglich, dennoch ausreichend sein, um einen zuverlässigen Betrieb sicherzustellen.
  • In Ausführungsformen kann die Steuereinheit 208 die Anzahl von Iterationen, um die Betriebsspannung zu bestimmen oder genau zu erkennen, unter Verwendung von einem Satz von Parametern verringern oder minimieren und einen unterschiedlichen Satz von Parametern verwenden, um Änderungen der Schaltungscharakteristiken (z. B. Temperaturverschiebungen), Zustände (z. B. Übergänge von einem Schlafzustand), zeitliche Änderungen und in Reaktion auf die Detektion von anderen Variationen zu berücksichtigen.
  • In Ausführungsformen kann die Steuereinheit 208 Rückschlussergebnisse relativ schnell und häufig erhalten und diese Informationen verwenden, z. B. um Umgebungsbedingungen zu verfolgen. Auf der Basis der Informationen kann dann die Steuerschaltung rasch irgendeinen relevanten Parameter einstellen, um eine Fehlertoleranz einzustellen. In Ausführungsformen kann die Steuereinheit 208 die längste Kette der Logik oder einen dominanten Pfad als Testnetz verwenden. In Ausführungsformen kann die Steuereinheit 208 vorteilhafterweise das CNN selbst als längsten Pfad im Entwurf verwenden, um genauere Testergebnisse zu erhalten. In dieser Weise können sowohl die Spannung als auch die Toleranz auf die niedrigsten Niveaus dynamisch eingestellt werden, die ermöglichen, dass die Schaltung 206 oder irgendeine Unterschaltung physikalisch funktioniert, während Anstiegszeiten und andere Entwurfsparameter immer noch erfüllt werden.
  • Ein Fachmann auf dem Gebiet erkennt, dass, obwohl der längste Pfad (die längsten Pfade) für jeden individuellen Teil oder jede individuelle Vorrichtung konstant ist (sind), Pfadlängen aufgrund von Unterschieden in der Herstellung einer Änderung unterliegen, z. B. in Abhängigkeit davon, wo jede Vorrichtung auf einem Wafer oder einer Charge während des Herstellungsprozesses angeordnet war, was folglich eine Verteilung von Variationen von Chip zu Chip verursacht. In Ausführungsformen kann daher jede Schaltung 206 individuell getestet werden, um die Effekte der Vorrichtungsvariabilität an den Ergebnissen zu beseitigen, was folglich eine weitere Verringerung des Spielraums und eine verbesserte Schaltungseffizienz ermöglicht.
  • In Ausführungsformen kann dagegen die Steuereinheit 208 Schaltungsparameter, wie z. B. die Leistungsausgabe, Verarbeitungsgeschwindigkeit oder andere Leistungsmetriken, einstellen, um Variationen der Schaltung 206 zu nutzen, die durch Herstellungsunterschiede oder Umgebungsfaktoren verursacht worden sein können, was das Ausnutzen von untergenutzten Kapazitäten in einigen Vorrichtungen ermöglichen kann. Sobald Toleranzen für die Schaltung 206 bestimmt wurden, z. B. für einen breiten Bereich von Spannungen, kann die Schaltung 206 das Durchführen von regulären Rückschlussoperationen an nicht vorher „gesehenen“ Eingangsdaten 216 beginnen.
  • Verschiedene Ausführungsformen nutzen die Tatsache, dass viele Funktionen eines Maschinenlernprozessors 214 sehr deterministisch sind, um Energiebedürfnisse für einiges oder alles der Schaltung 206 für eine gegebene Zeitdauer vorherzusehen und die Leistungsversorgung 204 in einer Weise zu steuern, um die Ausgangsleistung zu optimieren, z. B. durch Einstellen einer Leistungsversorgungsspannung auf der Basis von tatsächlichen Energiebedürfnissen. In Ausführungsformen kann die Steuereinheit 208 auf der Basis von vorgegebenen Parametern und momentanen Daten wie z. B. Typ der Operation und Anzahl von erwarteten oder berechneten Berechnungen, den Energiebedarf für irgendeinen Teil der Schaltung 206 vorhersehen und Parameter wie z. B. Leistungsversorgungsspannung und Ausgangsstrom für irgendeine Anzahl von Leistungsversorgungen in einer energieeffizienten Weise einstellen, z. B. um einen Spielraum oder eine Sicherheitstoleranz von Komponenten im Steuersystem 200 zu verringern.
  • Als Beispiel ist in Anbetracht eines Modells eines trainierten neuronalen Netzes das Auftreten von bestimmten Typen von Rechenoperationen wie z. B. Produktsummen- oder Multiplikationsoperationen relativ leicht vorhersagbar, da Lese/Schreib- und Arbeitsspeicherzugriffsoperationen, die damit verbunden sind, relativ leicht bestimmt werden. Für eine gegebene Architektur kann folglich der Leistungsverbrauch der Schaltung 206 relativ genau abgeschätzt werden, d. h. der Leistungsverbrauch kann für eine gegebene Anzahl von Operationen vorgegeben werden.
  • In Ausführungsformen kann die Steuereinheit 208 solche vorbestimmbaren auf das Netz bezogenen und/oder auf die Hardware bezogenen Informationen verwenden, um Toleranzen, wie z. B. Versorgungsspannungstoleranzen, abzuschätzen und einzustellen, um Leistungseinsparungen zu optimieren, wenn die Umstände dies erlauben. Ebenso kann die Steuereinheit 208 auf die Hardware bezogene Daten verwenden, wie z. B. Taktfrequenz, Eingangs- und Ausgangsströme oder Spannungen, die von anderen verfügbaren Quellen erhalten oder abgerufen werden können, und zur Steuereinheit 208 zurückführen, um zu ermöglichen, dass die Steuereinheit 208 Toleranzen einstellt, z. B. auf der Basis von abgeschätzten Spannungen. Es ist selbstverständlich, dass die Steuereinheit 208 abgeschätzte Toleranzen mit empirisch bestimmten Toleranzen vorteilhafterweise kombinieren kann, um zu letztlichen Betriebstoleranzen zu gelangen.
  • Es wird angemerkt, dass die Steuereinheit 208 irgendeinen Typ von anderer und/oder zusätzlicher Metrik manipulieren kann, um die Ressourcennutzung zu steuern, einschließlich eines oder mehrerer Maschinenlernkonfigurationsparameter. Beispielhafte Metriken können quantitative und/oder qualitative, lokale oder globale Metriken umfassen und können Betriebsparameter wie z. B. auf Daten bezogene Parameter, z. B. eine Anzahl von Lese-, Schreib-, Speicher- und Abrufoperationen, Schritte in einer Berechnung usw.; auf den Zeitablauf bezogene Parameter wie z. B. Taktzyklen, Verarbeitungszeiten; Umgebungsparameter wie z. B. Temperaturdaten umfassen. Rechenparameter können den Typ von mathematischen Operationen; den Typ oder die Dimensionen von verarbeiteten Daten und dergleichen umfassen. Außerdem kann irgendeine Anzahl von Metriken erhalten, gemessen oder direkt von irgendeiner Recheneinheit oder irgendeiner Hilfsvorrichtung wie z. B. einem Sensor 202 oder indirekt von Quellen innerhalb oder außerhalb des Systems 200 abgeleitet werden. Ein Fachmann auf dem Gebiet erkennt, dass auf die Schaltung bezogene Daten momentane, gemittelte oder anderweitig manipulierte Daten umfassen können. In Ausführungsformen kann irgendeine Anzahl von Metriken verwendet werden, um einen Spielraum zu berechnen, z. B. unter Verwendung einer Formel, die empirisch oder durch einen Algorithmus abgeleitet wurde.
  • Ein Fachmann auf dem Gebiet erkennt, dass verschiedene Ausführungsformen beliebige bekannte Ressourcennutzungsverfahren ausnutzen können, um die Effizienz, Geschwindigkeit oder andere Schaltungscharakteristiken zu erhöhen. Als Beispiel kann die Leistungsversorgung 204 gesteuert werden, um in einem Bereitschaftsmodus zu arbeiten, um den Leistungsverbrauch zu senken und Leistungseinsparmerkmale des Steuersystems 200 zu erhöhen.
  • 3 ist ein Ablaufplan eines erläuternden Prozesses zum Erhöhen der Rechenressourcennutzung in CNNs gemäß verschiedenen Ausführungsformen der vorliegenden Offenbarung. In Ausführungsformen kann der beispielhafte Prozess 300 zum Erhöhen der Rechenkapazität beginnen, wenn eine Schaltung, die einem oder mehreren Schaltungsparametern zugeordnet ist und mindestens einen Abschnitt eines CNN umfasst, mit einer bestimmten Spannung betrieben wird (302).
  • Bekannte Eingangsdaten können an den Abschnitt des CNN angelegt werden (304), z. B. um ein Rückschlussergebnis zu erhalten, das mit einer Referenz verglichen werden kann (306), z. B. um zu bestimmen, ob die Schaltung korrekt arbeitet.
  • In Reaktion auf die Bestimmung (308), dass die Schaltung korrekt arbeitet, kann die Spannung verringert werden (312), um einen oder mehrere Werte für einen Satz von Betriebsparametern zu erhalten, der eine verringerte Spannung umfasst, und der Prozess 300 kann zu Schritt 302 zurückkehren, um eine Schaltung mit der nun verringerten Spannung zu betreiben.
  • In Reaktion auf die Bestimmung, dass die Schaltung nicht korrekt arbeitet, kann eine Sicherheitstoleranz bestimmt werden (310), die zur verringerten Spannung hinzugefügt werden soll, um eine Betriebsspannung zu erhalten.
  • Schließlich kann das CNN mit der Betriebsspannung betrieben werden (314), um eine CNN-Ausgabe zu erhalten. Es wird angemerkt, dass, obwohl der beispielhafte Prozess 300 im Zusammenhang mit der Spannungsverringerung gegeben ist, ein Fachmann auf dem Gebiet erkennt, dass andere Mittel zum Erhöhen der Rechenressourcennutzung gleichermaßen verwendet werden können. Ein Fachmann auf dem Gebiet erkennt beispielsweise, dass ein äquivalenter Prozess die Frequenz modifizieren kann, um das Ziel der vorliegenden Offenbarung zu erhalten.
  • Hier soll beachtet werden: (1) bestimmte Schritte können wahlweise durchgeführt werden; (2) Schritte können nicht auf die hier dargelegte spezielle Reihenfolge begrenzt sein; (3) bestimmte Schritte können in anderen Reihenfolgen durchgeführt werden; und (4) bestimmte Schritte können gleichzeitig durchgeführt werden. In einer oder mehreren Ausführungsformen kann eine Stoppbedingung hier umfassen: (1) eine festgelegte Anzahl von Iterationen wurde durchgeführt; (2) eine Menge an Verarbeitungszeit wurde erreicht; (3) Konvergenz (z. B. die Differenz zwischen aufeinander folgenden Iterationen ist geringer als ein erster Schwellenwert); (4) Divergenz (Z. B. die Leistungsfähigkeit verschlechtert sich); und (5) ein annehmbares Ergebnis wurde erreicht.
  • 4 ist ein Ablaufplan eines alternativen Prozesses zum Erhöhen der Rechenressourcennutzung in CNNs gemäß verschiedenen Ausführungsformen der vorliegenden Offenbarung. In Ausführungsformen kann der Prozess 400 zum Erhöhen der Rechenkapazität beginnen, wenn ein interessierender Parameter wie z. B. eine Taktfrequenz oder eine Leistungsversorgungsspannung, von dem bekannt ist, dass sie sich auf die Datenverarbeitungseffizienz einer Schaltung auswirkt, verwendet wird, um einiges oder alles eines CNN zu betreiben (402), um ein Rückschlussergebnis zu erhalten.
  • Dieser interessierende Parameter kann in einem oder mehreren Schritten eingestellt werden (404), z. B. bis das Rückschlussergebnis einen Schwellenwert überschreitet, wie z. B. einen Schwellenwert, der das Rückschlussergebnis fehlerhaft macht.
  • Der interessierende Parameter, der einem Schritt, direkt bevor das Rückschlussergebnis den Schwellenwert überschreitet, zugeordnet ist, kann dann als Schaltungsparameter ausgewählt werden (406), der verwendet werden kann, um das CNN mit einer erhöhten Datenverarbeitungseffizienz zu betreiben (408), z. B. um ein Rückschlussergebnis zu erhalten, das das ganze CNN umfasst.
  • 5 stellt ein vereinfachtes Blockdiagramm eines Informationsbearbeitungssystems (oder Rechensystems) gemäß Ausführungsformen der vorliegenden Offenbarung dar. Es ist selbstverständlich, dass die für das System 500 gezeigten Funktionalitäten arbeiten können, um verschiedene Ausführungsformen eines Rechensystems zu unterstützen - obwohl selbstverständlich sein soll, dass ein Rechensystem anders konfiguriert sein kann und andere Komponenten umfassen kann, einschließlich mit weniger oder mehr Komponenten als in 5 dargestellt.
  • Wie in 5 dargestellt, umfasst das Rechensystem 500 eine oder mehrere CPUs 501, die Rechenressourcen bereitstellen und den Computer steuern. Die CPU 501 kann mit einem Mikroprozessor oder dergleichen implementiert werden und kann auch eine oder mehrere Graphikverarbeitungseinheiten 519 und/oder einen Gleitkommacoprozessor für mathematische Berechnungen umfassen. Das System 500 kann auch einen Systemarbeitsspeicher 502 umfassen, der in Form eines Direktzugriffsarbeitsspeichers (RAM), Festwertarbeitsspeichers (ROM) oder beider vorliegen kann.
  • Eine Anzahl von Steuereinheiten und Peripheriegeräten kann auch vorgesehen sein, wie in 5 gezeigt. Eine Eingabesteuereinheit 503 stellt eine Schnittstelle zu verschiedenen Eingabevorrichtung(en) 504 wie z. B. einer Tastatur, einer Maus, einem Berührungsbildschirm und/oder einem Taststift dar. Das Rechensystem 500 kann auch eine Speichersteuereinheit 507 zum Koppeln mit einer oder mehreren Speichervorrichtungen 508 über eine Schnittstelle umfassen, von denen jede ein Speichermedium wie z. B. ein Magnetband oder eine Magnetplatte oder ein optisches Medium umfasst, das verwendet werden könnte, um Programme von Anweisungen für Betriebssysteme, Dienstprogramme und Anwendungen aufzuzeichnen, die Ausführungsformen von Programmen umfassen können, die verschiedene Aspekte der vorliegenden Offenbarung implementieren. Die Speichervorrichtung(en) 506 kann (können) auch verwendet werden, um verarbeitete Daten oder zu verarbeitende Daten gemäß der Offenbarung zu speichern. Das System 500 kann auch eine Anzeigesteuereinheit 509 zum Bereitstellen einer Schnittstelle zu einer Anzeigevorrichtung 511 umfassen, die eine Kathodenstrahlröhre (CRT), eine Dünnschichttransistoranzeige (TFT-Anzeige), eine organische Leuchtdiode, ein Elektrolumineszenzfeld, ein Plasmafeld oder ein anderer Typ von Anzeige sein kann. Das Rechensystem 500 kann auch eine oder mehrere Peripheriegerätsteuereinheiten oder Schnittstellen 505 für ein oder mehrere Peripheriegeräte 506 umfassen. Beispiele von Peripheriegeräten können einen oder mehrere Drucker, Scanner, Eingabevorrichtungen, Ausgabevorrichtungen, Sensoren und dergleichen umfassen. Eine Kommunikationssteuereinheit 514 kann mit einer oder mehreren Kommunikationsvorrichtungen 515 über eine Schnittstelle koppeln, was ermöglicht, dass das System 500 mit entfernten Vorrichtungen durch irgendeines von einer Vielfalt von Netzen, einschließlich des Internets, einer Cloud-Ressource (z. B. einer Ethernet-Cloud, einer Cloud für Faserkanal über Ethernet (FCoE)/Datenzentrumsüberbrückung (DCB) usw.), eines lokalen Netzes (LAN), eines weiträumigen Netzes (WAN), eines Speicherbereichsnetzes (SAN), oder durch beliebige geeignete elektromagnetische Trägersignale, einschließlich Infrarotsignalen, verbindet. Verarbeitete Daten und/oder zu verarbeitende Daten gemäß der Offenbarung können über die Kommunikationsvorrichtungen 515 übermittelt werden. Eine Ladeschaltung 505 in 5 kann beispielsweise Konfigurationsinformationen von einer oder mehreren Kommunikationsvorrichtungen 515 empfangen, die mit der Kommunikationssteuereinheit 514 über einen Bus 516 gekoppelt sind.
  • In dem dargestellten System können alle Hauptsystemkomponenten mit einem Bus 516 verbinden, der mehr als einen physikalischen Bus darstellen kann. Verschiedene Systemkomponenten können jedoch in physikalischer Nähe zueinander liegen oder nicht. Beispielsweise können Eingangsdaten und/oder Ausgangsdaten entfernt von einem physikalischen Ort zu einem anderen übertragen werden. Außerdem kann auf Programme, die verschiedene Aspekte der Offenbarung implementieren, von einem entfernten Ort (z. B. einem Server) über ein Netz zugegriffen werden. Solche Daten und/oder Programme können durch irgendeines von einer Vielfalt von maschinenlesbaren Medien übermittelt werden, die beispielsweise magnetische Medien wie z. B. Festplatten, Disketten und ein Magnetband; optische Medien wie z. B. CD-ROMs und holographische Vorrichtungen; magnetooptische Medien, und Hardware-Vorrichtungen, die speziell dazu konfiguriert sind, einen Programmcode zu speichern oder zu speichern und auszuführen, wie z. B. ASICs, programmierbare Logikvorrichtungen (PLDs), Flash-Arbeitsspeichervorrichtungen und ROM- und RAM-Vorrichtungen, umfassen.
  • Aspekte der vorliegenden Offenbarung können auf einem oder mehreren nichttransitorischen computerlesbaren Medien mit Anweisungen für einen oder mehrere Prozessoren oder Verarbeitungseinheiten codiert sein, um zu bewirken, dass Schritte durchgeführt werden. Es soll beachtet werden, dass das eine oder die mehreren nichttransitorischen computerlesbaren Medien einen flüchtigen und nichtflüchtigen Speicher umfassen sollen. Es soll beachtet werden, dass alternative Implementierungen möglich sind, einschließlich einer Hardware-Implementierung oder einer Software/Hardware-Implementierung. Hardware-implementierte Funktionen können unter Verwendung von ASIC(s), programmierbaren Anordnungen, einer Digitalsignalverarbeitungsschaltung oder dergleichen verwirklicht werden. Folglich sollen die „Mittel“-Begriffe in irgendwelchen Ansprüchen sowohl Software- als auch Hardware-Implementierungen abdecken. Ebenso umfasst der Begriff „computerlesbares Medium oder computerlesbare Medien“, wie hier verwendet, Software und/oder Hardware mit einem Programm von Anweisungen, die darauf verkörpert sind, oder eine Kombination davon. In Anbetracht dieser Implementierungsalternativen soll selbstverständlich sein, dass die Figuren und die begleitende Beschreibung die Funktionsinformationen vorsehen, die ein Fachmann auf dem Gebiet benötigen würde, um einen Programmcode (d. h. Software) zu schreiben und/oder Schaltungen (d. h. Hardware) herzustellen, um die erforderliche Verarbeitung durchzuführen.
  • Es soll beachtet werden, dass Ausführungsformen der vorliegenden Offenbarung sich ferner auf Computerprodukte mit einem nichttransitorischen, konkreten computerlesbaren Medium beziehen können, die einen Computercode zum Durchführen von verschiedenen computerimplementierten Operationen darauf aufweisen. Die Medien und der Computercode können jene sein, die speziell für die Zwecke der vorliegenden Offenbarung entworfen und konstruiert sind, oder sie können von der Art sein, die dem Fachmann auf dem relevanten Gebiet bekannt oder für diesen verfügbar ist. Beispiele von konkreten computerlesbaren Medien umfassen, sind jedoch nicht begrenzt auf: magnetische Medien wie z. B. Festplatten, Disketten und ein Magnetband; optische Medien wie z. B. CD-ROMs und holographische Vorrichtungen; magnetooptische Medien; und Hardware-Vorrichtungen, die speziell dazu konfiguriert sind, einen Programmcode zu speichern oder zu speichern und auszuführen, wie z. B. ASICs, PLDs, Flash-Arbeitsspeichervorrichtungen und ROM- und RAM-Vorrichtungen. Beispiele eines Computercodes umfassen einen Maschinencode, wie z. B. durch einen Kompilierer erzeugt, und Dateien, die einen Code höherer Ebene enthalten, die durch einen Computer unter Verwendung eines Interpreters ausgeführt werden. Ausführungsformen der vorliegenden Offenbarung können ganz oder teilweise als maschinenausführbare Anweisungen implementiert werden, die sich in Programmmodulen befinden, die durch eine Verarbeitungsvorrichtung ausgeführt werden. Beispiele von Programmmodulen umfassen Bibliotheken, Programme, Routinen, Objekte, Komponenten und Datenstrukturen. In verteilten Rechenumgebungen können Programmmodule physikalisch in Einrichtungen angeordnet sein, die lokal, entfernt oder beides sind.
  • Ein Fachmann auf dem Gebiet erkennt, dass kein Rechensystem oder keine Programmiersprache für die Praxis der vorliegenden Offenbarung kritisch ist. Ein Fachmann auf dem Gebiet erkennt auch, dass eine Anzahl der vorstehend beschriebenen Elemente physikalisch und/oder funktional in Untermodule getrennt oder miteinander kombiniert sein kann.
  • Für den Fachmann auf dem Gebiet ist zu erkennen, dass die vorangehenden Beispiele und Ausführungsformen beispielhaft sind und den Schutzbereich der vorliegenden Offenbarung nicht begrenzen. Es ist beabsichtigt, dass alle Permutationen, Erweiterungen, Äquivalente, Kombinationen und Verbesserungen daran, die für den Fachmann auf dem Gebiet beim Lesen der Patentbeschreibung und bei einer Studie der Zeichnungen ersichtlich sind, innerhalb des wahren Gedankens und Schutzbereichs der vorliegenden Offenbarung enthalten sind. Es soll auch beachtet werden, dass Elemente von beliebigen Ansprüchen anders angeordnet sein können, einschließlich mit mehreren Abhängigkeiten, Konfigurationen und Kombinationen.
  • ZITATE ENTHALTEN IN DER BESCHREIBUNG
  • Diese Liste der vom Anmelder aufgeführten Dokumente wurde automatisiert erzeugt und ist ausschließlich zur besseren Information des Lesers aufgenommen. Die Liste ist nicht Bestandteil der deutschen Patent- bzw. Gebrauchsmusteranmeldung. Das DPMA übernimmt keinerlei Haftung für etwaige Fehler oder Auslassungen.
  • Zitierte Patentliteratur
    • US 17472113 [0001]

Claims (20)

  1. Verfahren zum Erhöhen der Rechenressourcennutzung, wobei das Verfahren Folgendes umfasst: iteratives Durchführen von Schritten, die Folgendes umfassen: Betreiben einer Schaltung mit einer Spannung, wobei die Schaltung einem oder mehreren Schaltungsparametern zugeordnet ist und zumindest einen Abschnitt eines faltenden neuronalen Netzes (CNN) umfasst; mit der Spannung Zuführen von bekannten Eingangsdaten an den Abschnitt des CNN, um ein Rückschlussergebnis zu erhalten; Vergleichen des Rückschlussergebnisses mit einem entsprechenden Referenzergebnis, um zu bestimmen, ob die Schaltung eine oder mehrere Metriken erfüllt; in Reaktion auf die Bestimmung, dass die Schaltung die eine oder die mehreren Metriken erfüllt, Senken der Spannung, um einen oder mehrere Werte für einen Satz von Betriebsparametern zu erhalten, der eine verringerte Spannung umfasst; in Reaktion auf die Bestimmung, dass die Schaltung zumindest einige der einen oder der mehreren Metriken nicht erfüllt, Bestimmen einer Sicherheitstoleranz, die zu der verringerten Spannung hinzugefügt werden soll, um eine Betriebsspannung zu erhalten; und Betreiben des CNN mit der Betriebsspannung, um eine CNN-Ausgabe zu erhalten.
  2. Verfahren nach Anspruch 1, das ferner in Reaktion darauf, dass die Schaltung die eine oder die mehreren Metriken erfüllt, die Verwendung einer Steuereinheit umfasst, die mit der Schaltung gekoppelt ist, um zu bewirken, dass die Spannung um einen vorgegebenen Betrag zunimmt.
  3. Verfahren nach Anspruch 2, das ferner die Verwendung von einer oder mehreren Detektionsschaltungen umfasst, die mit der Steuereinheit gekoppelt sind, um einen oder mehrere physikalische Parameter zu bestimmen.
  4. Verfahren nach Anspruch 2, das ferner die Verwendung der Steuereinheit umfasst, um den einen oder die mehreren Schaltungsparameter auf der Basis mindestens eines gemessenen physikalischen Parameters einzustellen.
  5. Verfahren nach Anspruch 3 oder 4, wobei die Sicherheitstoleranz mindestens einen des einen oder der mehreren physikalischen Parameter oder mindestens einen des einen oder der mehreren Schaltungsparameter berücksichtigt.
  6. Verfahren nach einem der Ansprüche 3 bis 5, das ferner das Ableiten der Sicherheitstoleranz auf der Basis eines statistischen Modells umfasst, das eine Verteilung von Abtastwerten in Bezug auf den einen oder die mehreren physikalischen Parameter verwendet, um ein Vertrauensintervall zu berechnen.
  7. Verfahren nach einem der Ansprüche 2 bis 6, das ferner die Verwendung der Steuereinheit umfasst, um die Spannung auf den vorgegebenen Betrag einzustellen.
  8. Verfahren nach einem der Ansprüche 1 bis 7, wobei das Verfahren zum Erhöhen der Rechenkapazität in CNNs in Reaktion auf eine Änderung einer Zielanwendung durchgeführt wird.
  9. Verfahren nach einem der Ansprüche 1 bis 8, wobei zumindest der Abschnitt des CNN einen Rechenpfad in der Schaltung darstellt.
  10. Verfahren nach einem der Ansprüche 1 bis 9, wobei die bekannten Eingangsdaten ein Testmuster umfassen, das dazu konfiguriert ist, den Rechenpfad zu testen, und ferner Konfigurationsdaten und/oder Gewichtsdaten umfassen, die ausgewählt wurden, um die Datenverarbeitungseffizienz zu erhöhen.
  11. System zum Erhöhen der Rechenressourcennutzung, das Folgendes umfasst: eine Leistungsversorgung mit einer Spannung; eine Schaltung mit einem oder mehreren Schaltungsparametern, wobei die Schaltung Folgendes umfasst: eine Speichervorrichtung; und ein faltendes neuronales Netz (CNN), das mit der Speichervorrichtung gekoppelt ist; eine Steuereinheit, die mit dem CNN und der Leistungsversorgung gekoppelt ist und einen Komparator umfasst; und einen oder mehrere Sensoren, die mit der Schaltung gekoppelt sind, wobei die Steuereinheit iterativ Schritte durchführt, die Folgendes umfassen: mit der Spannung Zuführen von bekannten Eingangsdaten an zumindest einen Abschnitt des CNN, um ein Rückschlussergebnis zu erhalten; Verwenden des Komparators, um zu bestimmen, ob das Rückschlussergebnis zu einem entsprechenden Referenzergebnis im Wesentlichen identisch ist, um zu bestimmen, ob die Schaltung eine oder mehrere Metriken erfüllt; in Reaktion auf die Bestimmung, dass die Schaltung die eine oder die mehreren Metriken erfüllt, Senken der Spannung, um einen oder mehrere Werte für einen Satz von Betriebsparametern zu erhalten, der eine verringerte Spannung umfasst; und in Reaktion auf die Bestimmung, dass die Schaltung zumindest einige der einen oder der mehreren Metriken nicht erfüllt, Bestimmen einer Sicherheitstoleranz, die zur verringerten Spannung hinzugefügt werden soll, um eine Betriebsspannung für das CNN zu erhalten, die eine CNN-Ausgabe erzeugt.
  12. System nach Anspruch 11, wobei die Steuereinheit in Reaktion darauf, dass die Schaltung die eine oder die mehreren Metriken erfüllt, bewirkt, dass die Spannung um einen vorgegebenen Betrag zunimmt.
  13. System nach Anspruch 11 oder 12, wobei die Steuereinheit ein Mikrocontroller und/oder eine Zustandsmaschine ist.
  14. System nach einem der Ansprüche 11 bis 13, wobei die bekannten Eingangsdaten ein Testmuster umfassen, das dazu konfiguriert ist, den Abschnitt des CNN zu testen, und ferner Konfigurationsdaten und/oder Gewichtsdaten umfassen, die ausgewählt wurden, um die Datenverarbeitungseffizienz zu erhöhen.
  15. System nach Anspruch 14, wobei das Testmuster dazu konfiguriert ist, einen Ort eines Schaltungsausfalls zu detektieren.
  16. System nach einem der Ansprüche 11 bis 15, wobei die Steuereinheit den einen oder die mehreren Schaltungsparameter auf der Basis mindestens eines gemessenen physikalischen Parameters einstellt, der von der einen oder den mehreren Detektionsschaltungen erhalten wird.
  17. System nach Anspruch 16, wobei die Sicherheitstoleranz auf der Basis eines statistischen Modells abgeleitet wird, das eine Verteilung von Abtastwerten in Bezug auf den einen oder die mehreren physikalischen Parameter verwendet, um ein Vertrauensintervall zu berechnen.
  18. System nach Anspruch 16 oder 17, wobei der eine oder die mehreren physikalischen Parameter eine Umgebungsbedingung und/oder eine Schaltungsimpedanz umfassen.
  19. Verfahren zum Erhöhen der Rechenressourcennutzung, wobei das Verfahren Folgendes umfasst: Verwenden eines interessierenden Parameters, von dem bekannt ist, dass er eine Datenverarbeitungseffizienz einer Schaltung erhöht, um zumindest einen Abschnitt eines faltenden neuronalen Netzes (CNN) zu betreiben, um ein Rückschlussergebnis zu erhalten; in einem oder mehreren Schritten Einstellen des interessierenden Parameters, bis das Rückschlussergebnis einen Schwellenwert überschreitet; Auswählen des interessierenden Parameters, der einem Schritt des einen oder der mehreren Schritte zugeordnet ist, als Schaltungsparameter, bevor das Rückschlussergebnis den Schwellenwert überschreitet; und Verwenden des Schaltungsparameters, um das CNN zu betreiben, um eine CNN-Ausgabe zu erhalten.
  20. Verfahren nach Anspruch 19, wobei der interessierende Parameter eine Frequenz und/oder eine Spannung umfasst.
DE102022122719.7A 2021-09-10 2022-09-07 Leistungsmodulation unter Verwendung von dynamischer Spannungs- und Frequenzskalierung Pending DE102022122719A1 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US17/472,113 2021-09-10
US17/472,113 US20230079229A1 (en) 2021-09-10 2021-09-10 Power modulation using dynamic voltage and frequency scaling

Publications (1)

Publication Number Publication Date
DE102022122719A1 true DE102022122719A1 (de) 2023-03-16

Family

ID=85284507

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102022122719.7A Pending DE102022122719A1 (de) 2021-09-10 2022-09-07 Leistungsmodulation unter Verwendung von dynamischer Spannungs- und Frequenzskalierung

Country Status (3)

Country Link
US (1) US20230079229A1 (de)
CN (1) CN115840498A (de)
DE (1) DE102022122719A1 (de)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11880261B2 (en) * 2021-09-16 2024-01-23 Nvidia Corporation Automatic method for power management tuning in computing systems
US20240045699A1 (en) * 2022-08-03 2024-02-08 Moore Threads Technology Co., Ltd. Machine learning based power and performance optimization system and method for graphics processing units

Also Published As

Publication number Publication date
CN115840498A (zh) 2023-03-24
US20230079229A1 (en) 2023-03-16

Similar Documents

Publication Publication Date Title
DE102022122719A1 (de) Leistungsmodulation unter Verwendung von dynamischer Spannungs- und Frequenzskalierung
US10002212B2 (en) Virtual power management multiprocessor system simulation
Zeng et al. Tradeoff analysis and optimization of power delivery networks with on-chip voltage regulation
DE112014004778B4 (de) Vorrichtung und Verfahren zum Verwalten von Chipgruppen
DE102014001914B4 (de) Dynamische Steuerung einer maximalen Betriebsspannung für einen Prozessor
US9348346B2 (en) Voltage regulation subsystem
WO2007045202A1 (de) Integrierter schaltkreis und verfahren zum betreiben eines integrierten schaltkreises
DE112014005346T5 (de) Temperaturbasierte Flashspeichersystemerhaltung
US20220029835A1 (en) Method of implementing a physical unclonable function
US9129665B2 (en) Dynamic brownout adjustment in a storage device
CN114036895B (zh) 自适应调压SoC系统及控制方法
DE102015211561A1 (de) Leistungsverfolgungsanschluss zum Verfolgen von Zuständen von Leistungsdomänen
DE102013114512B4 (de) Globales Einfangschema mit niedriger Leistung für Kerne
CN105279426B (zh) 配置应用程序相关任务的电子设备及其相关方法
DE112020003722T5 (de) Digital-linearer hybrid-schaltkondensator-spannungsregler
US9280429B2 (en) Power fail latching based on monitoring multiple power supply voltages in a storage device
Song et al. Novel application of deep learning for adaptive testing based on long short-term memory
DE102022102434A1 (de) Flüchtiges Register zum Erkennen eines Stromverlusts
US20240047966A1 (en) Systems, devices and methods for power management and power estimation
US20150127999A1 (en) System and Method for Adjusting Trip Points within a Storage Device
CN115618782A (zh) 局部降电压的集成电路物理实现方法、装置和计算机设备
US10566065B2 (en) Memory control device and memory control method
CN101339582B (zh) 模拟电路合成方法与相关技术
CN109145338A (zh) 一种修复电压降的方法及装置
Gandini et al. A framework for automated detection of power-related software errors in industrial verification processes

Legal Events

Date Code Title Description
R012 Request for examination validly filed