-
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
-