-
HINTERGRUND
-
Die vorliegende Erfindung bezieht sich im Allgemeinen auf Streaming-Algorithmen und im Besonderen auf ein Skizzieren von Matrizen unter Verwendung von analogen Kreuzschienen-Architekturen (crossbar architectures).
-
Tiefe neuronale Netzwerke (deep neural network, DNN) haben enorme Fortschritte gemacht und übertreffen in einigen Fällen die Leistung von Menschen, wenn es um die Bewältigung anspruchsvoller Probleme wie Spracherkennung, Verarbeitung natürlicher Sprache, Bildklassifizierung und maschinelle Übersetzung geht. Das Training großer DNNs ist jedoch eine zeitaufwändige und rechenintensive Aufgabe, die Datenverarbeitungsressourcen in der Größenordnung von Rechenzentren erfordert, die mit modernsten Grafikverarbeitungseinheiten (graphical processing unit, GPU) ausgestattet sind. Es gibt Versuche, Deep-Learning-Arbeitslasten jenseits von GPUs zu beschleunigen, indem benutzerdefinierte Hardware entwickelt wird, die Arithmetik mit reduzierter Präzision verwendet, um den Durchsatz und die Energieeffizienz der zugrunde liegenden CMOS-Technologie (complementary metal oxide semiconductor, komplementärer Metalloxid-Halbleiter) zu verbessern. Als Alternative zu digitalen Ansätzen werden Anordnungen mit resistiven Kreuzpunkt-Einheiten vorgeschlagen, um den Durchsatz und die Energieeffizienz des Gesamtsystems weiter zu erhöhen, indem Vektor-Matrix-Multiplikationen im analogen Bereich durchgeführt werden.
-
KURZDARSTELLUNG
-
Gemäß einer Ausführungsform wird ein Verfahren zum Durchführen von einem Skizzieren von Matrizen unter Verwendung einer analogen Kreuzschienen-Architektur bereitgestellt. Das Verfahren umfasst Aktualisieren einer ersten Matrix für eine erste Zeitspanne, Kopieren der ersten Matrix in eine dynamische Korrektur-Datenverarbeitungseinheit, Wechseln zu einer zweiten Matrix, um die zweite Matrix für eine zweite Zeitspanne zu aktualisieren, während bei der zweiten Matrix ein Niedrig-Rang-Aktualisieren durchgeführt wird, Zuführen von ersten stochastischen Impulsen zu der ersten Matrix, um die erste Matrix auf einen ersten Matrix-Symmetriepunkt zurückzusetzen, ein Kopieren der zweiten Matrix in die dynamische Korrektur-Datenverarbeitungseinheit, Zurückwechseln zur ersten Matrix, um die erste Matrix für eine dritte Zeitspanne zu aktualisieren, und, während bei der ersten Matrix ein Niedrig-Rang-Aktualisieren durchgeführt wird, Zuführen von zweiten stochastischen Impulsen zu der zweiten Matrix, um die zweite Matrix auf einen zweiten Matrix-Symmetriepunkt zurückzusetzen. Bei den Aktualisierungen handelt es sich um Niedrig-Rang-Aktualisierungen.
-
Gemäß einer anderen Ausführungsform wird ein System zum Durchführen des Skizzierens von Matrizen unter Verwendung einer analogen Kreuzschienen-Architektur bereitgestellt. Das System umfasst einen Speicher und einen oder mehrere Prozessoren, die Daten mit dem Speicher austauschen und die so konfiguriert sind, dass sie eine erste Matrix für eine erste Zeitspanne aktualisieren, die erste Matrix in eine dynamische Korrektur-Datenverarbeitungseinheit wechseln, um die zweite Matrix für eine zweite Zeitspanne zu aktualisieren, während bei der zweiten Matrix ein Niedrig-Rang-Aktualisieren durchgeführt wird, erste stochastische Impulse zu der ersten Matrix zuführen, um die erste Matrix auf einen ersten Matrix-Symmetriepunkt zurückzusetzen, die zweite Matrix in die dynamische Korrektur-Datenverarbeitungseinheit kopieren, zur ersten Matrix zurückwechseln, um die erste Matrix für eine dritte Zeitspanne zu aktualisieren, und, während bei der ersten Matrix ein Niedrig-Rang-Aktualisieren durchgeführt wird, zweite stochastische Impulse zu der zweiten Matrix zuführen, um die zweite Matrix auf einen zweiten Matrix-Symmetriepunkt zurückzusetzen. Bei den Aktualisierungen handelt es sich um Niedrig-Rang-Aktualisierungen.
-
Gemäß einer weiteren Ausführungsform wird ein nichtflüchtiges, durch einen Computer lesbares Speichermedium vorgelegt, das ein durch einen Computer lesbares Programm aufweist, um ein Skizzieren von Matrizen unter Verwendung einer analogen Kreuzschienen-Architektur durchzuführen. Das nichtflüchtige, durch einen Computer lesbare Speichermedium führt die folgenden Schritte aus: Aktualisieren einer ersten Matrix für eine erste Zeitspanne, Kopieren der ersten Matrix in eine dynamische Korrektur-Datenverarbeitungseinheit, Wechseln zu einer zweiten Matrix, um die zweite Matrix für eine zweite Zeitspanne zu aktualisieren, während bei der zweiten Matrix ein Niedrig-Rang-Aktualisieren durchgeführt wird, Zuführen von ersten stochastischen Impulsen zu der ersten Matrix, um die erste Matrix auf einen ersten Matrix-Symmetriepunkt zurückzusetzen, ein Kopieren der zweiten Matrix in die dynamische Korrektur-Datenverarbeitungseinheit, ein Zurückwechseln zur ersten Matrix, um die erste Matrix für eine dritte Zeitspanne zu aktualisieren, und, während bei der ersten Matrix ein Niedrig-Rang-Aktualisieren durchgeführt wird, Zuführen von zweiten stochastischen Impulsen zu der zweiten Matrix, um die zweite Matrix auf einen zweiten Matrix-Symmetriepunkt zurückzusetzen. Bei den Aktualisierungen handelt es sich um Niedrig-Rang-Aktualisierungen.
-
Gemäß einer Ausführungsform wird ein Verfahren zum Durchführen des Skizzierens von Matrizen unter Verwendung einer analogen Kreuzschienen-Architektur bereitgestellt. Das Verfahren umfasst Durchführen einer Dimensionalitätsreduzierung an Streaming-Daten unter Verwendung von Aktualisierungen eines äußeren Produkts sowie, sobald die Dimensionalitätsreduzierung an einer gesamten Eingabe durchgeführt wurde, Übertragen einer skizzierten Matrix an einen digitalen Computer, um eine Regressionsanalyse durchzuführen. Bei den Aktualisierungen handelt es sich um Niedrig-Rang-Aktualisierungen.
-
Gemäß einer anderen Ausführungsform wird ein System zum Durchführen des Skizzierens von Matrizen unter Verwendung einer analogen Kreuzschienen-Architektur bereitgestellt. Das System umfasst einen Speicher und einen oder mehrere Prozessoren, die Daten mit dem Speicher austauschen und die so konfiguriert sind, dass sie für eine Dimensionalitätsreduzierung an Streaming-Daten unter Verwendung von Aktualisierungen eines äußeren Produkts durchführen, sowie, sobald die Dimensionalitätsreduzierung an einer gesamten Eingabe durchgeführt wurde, eine skizzierte Matrix an einen digitalen Computer übertragen, um eine Regressionsanalyse durchzuführen. Bei den Aktualisierungen handelt es sich um Niedrig-Rang-Aktualisierungen.
-
Es ist zu beachten, dass die beispielhaften Ausführungsformen unter Bezugnahme auf verschiedene Gegenstände beschrieben werden. Insbesondere werden einige Ausführungsformen unter Bezugnahme auf Ansprüche bezüglich der Art des Verfahrens beschrieben, während andere Ausführungsformen unter Bezugnahme auf Ansprüche bezüglich der Art der Vorrichtung beschrieben wurden. Der Fachmann wird jedoch aus dem Vorstehenden und der folgenden Beschreibung entnehmen, dass, sofern nicht anders mitgeteilt, zusätzlich zu jeder Kombination von Funktionen, die zu einer Art von Gegenstand gehören, auch jede Kombination von Funktionen, die sich auf verschiedene Gegenstände beziehen, insbesondere von Funktionen der Ansprüche bezüglich der Art des Verfahrens und Funktionen der Ansprüche bezüglich der Art der Vorrichtung, als in diesem Dokument beschrieben gilt.
-
Diese und andere Funktionen und Vorteile werden aus der folgenden detaillierten Beschreibung veranschaulichender Ausführungsformen davon ersichtlich, die in Verbindung mit den beigefügten Zeichnungen zu lesen ist.
-
Figurenliste
-
In der folgenden Beschreibung von bevorzugten Ausführungsformen wird die Erfindung unter Bezugnahme auf die folgenden Figuren detailliert bereitgestellt, wobei:
- 1 eine beispielhafte analoge Kreuzschienen-Architektur darstellt, die Skizzier-Matrizen gemäß einer Ausführungsform der vorliegenden Erfindung verwendet;
- 2 eine beispielhafte 3D-Kreuzschienenanordnung darstellt, die die Skizzier-Matrizen von 1 gemäß einer Ausführungsform der vorliegenden Erfindung einbezieht;
- 3 ein beispielhaftes System für analoges Streaming mit dynamischer Berechnung gemäß einer Ausführungsform der vorliegenden Erfindung darstellt;
- 4 beispielhafte Diagramme zeigt, die drei verschiedene Eigenschaften für das Wechseln von Einheiten darstellen, die Symmetriepunkte veranschaulichen, gemäß einer Ausführungsform der vorliegenden Erfindung;
- 5 ein Blockschaubild/einen Ablaufplan eines beispielhaften Verfahrens für zwei Anordnungen darstellt, die parallel in einem Integrationsschema mit offenem Regelkreis eingesetzt werden, gemäß einer Ausführungsform der vorliegenden Erfindung;
- 6 ein Blockschaubild/einen Ablaufplan eines beispielhaften Verfahrens zum Wechseln zwischen der ersten und der zweiten Matrix gemäß einer Ausführungsform der vorliegenden Erfindung darstellt;
- 7 ein beispielhaftes Verarbeitungssystem gemäß Ausführungsformen der vorliegenden Erfindung darstellt;
- 8 ein Blockschaubild/einen Ablaufplan einer beispielhaften Cloud-Computing-Umgebung gemäß einer Ausführungsform der vorliegenden Erfindung darstellt;
- 9 eine schematische Darstellung von beispielhaften Abstraktionsmodellschichten gemäß einer Ausführungsform der vorliegenden Erfindung darstellt;
- 10 ein Blockschaubild/einen Ablaufplan eines Verfahrens zum Durchführen eines Integrationsschemas mit offenem Regelkreis in Systemen/Einheiten/Infrastrukturen des Internets der Dinge (IdD; Internet of Things, loT) gemäß Ausführungsformen der vorliegenden Erfindung darstellt; und
- 11 ein Blockschaubild/einen Ablaufplan von beispielhaften IdD-Sensoren darstellt, die zum Erfassen von Daten/Informationen im Zusammenhang mit dem Streaming-Algorithmus des Integrationsschemas mit offenem Regelkreis gemäß Ausführungsformen der vorliegenden Erfindung verwendet werden.
-
In den Zeichnungen stehen gleiche oder ähnliche Bezugsziffern für gleiche oder ähnliche Elemente.
-
AUSFÜHRLICHE BESCHREIBUNG
-
Ausführungsformen gemäß der vorliegenden Erfindung stellen Verfahren und Einheiten zum Durchführen des Skizzierens von Matrizen unter Verwendung von analogen Kreuzschienen-Architekturen bereit. Dank der jüngsten Fortschritte bei den Datenerfassungstechniken werden enorme Datenmengen extrem schnell erfasst. Zudem sind diese Daten potenziell unbegrenzt. Ein unbegrenzter Fluss von Daten, die von Sensoren, Geräten und anderen Datenquellen erfasst werden, wird als Datenstrom bezeichnet. Auf der Suche nach interessanten Mustern können verschiedene Data-Mining-Aufgaben an Datenströmen durchgeführt werden. Bei Data-Mining-Aufgaben werden in der Regel Daten-Streaming-Algorithmen eingesetzt.
-
Streaming-Algorithmen sind in der Lage, einen extrem großen, sogar unbegrenzten Datensatz zu verarbeiten und eine gewünschte Ausgabe lediglich unter Verwendung einer konstanten Menge an Arbeitsspeicher (RAM) zu berechnen. Ist der Datensatz unbegrenzt, spricht man von einem Datenstrom. Wird in einem solchen Fall ein Verarbeiten des Datenstroms an einer bestimmten Position n angehalten, verfügt der Streaming-Algorithmus über eine Lösung, die den bis zu diesem Zeitpunkt gesichteten Daten entspricht. Streaming-Algorithmen sind also Algorithmen zum Verarbeiten von Datenströmen, bei denen die Eingabe als eine Sequenz von Elementen vorgelegt wird und in nur wenigen Durchgängen (in der Regel nur einem) untersucht werden kann. In den meisten Modellen steht diesen Algorithmen nur ein begrenzter Speicher zur Verfügung. Ferner kann die Verarbeitungszeit pro Element begrenzt sein. Diese Beschränkungen können dazu führen, dass ein Algorithmus auf der Grundlage einer Zusammenfassung oder „Skizze“ des Datenstroms eine ungefähre Antwort liefert.
-
Die beispielhaften Ausführungsformen der vorliegenden Erfindung verwenden ein auf einem Streaming-Algorithmus beruhendes Skizzieren von Matrizen unter Verwendung von analogen Kreuzschienen-Architekturen. Eine endgültige Skizzier-Matrix wird in einer analogen Kreuzschienen-Hardware angeordnet. Das äußere Produkt der endgültigen Skizzier-Matrix wird durch ein Anwenden von stochastischen Impulsen verändert. Nachdem der Vorgang des Skizzierens auf die gesamte Eingabe durchgeführt wurde, wird die endgültige skizzierte Matrix auf einen digitalen Computer übertragen, um eine Regressionsanalyse durchzuführen.
-
Es versteht sich, dass die vorliegende Erfindung anhand einer bestimmten veranschaulichenden Architektur beschrieben wird; andere Architekturen, Strukturen, Substratmaterialien und Prozessfunktionen sowie Schritte/Blöcke können jedoch innerhalb des Umfangs der vorliegenden Erfindung variiert werden. Es ist zu beachten, dass bestimmte Funktionen aus Gründen der Übersichtlichkeit nicht in allen Figuren dargestellt werden können. Dies soll nicht als Einschränkung einer bestimmten Ausführungsform, einer Darstellung oder des Umfangs der Ansprüche verstanden werden.
-
1 stellt eine beispielhafte analoge Kreuzschienen-Architektur dar, die Skizzier-Matrizen gemäß einer Ausführungsform der vorliegenden Erfindung verwendet.
-
Die analoge Kreuzschienen-Anordnung 100 umfasst eine Mehrzahl von resistiven Skizzier-Verarbeitungseinheiten (resistive processing unit, RPU) 110, die in einer Matrixkonfiguration angeordnet sind. Das äußere Produkt wird durch ein Durchführen von stochastischen Impulsen 102, 104 verändert. Das äußere Produkt wird verändert, um die Rang-Eins-Aktualisierungen implizit zu berechnen und zu aktualisieren. Am Ende der Operation liegt die endgültige Skizzier-Matrix in analoger Form vor. Der Lösungsvorgang kann entweder analog oder digital durchgeführt werden. Die Impulse reduzieren die Multiplikation auf eine einfache Koinzidenzerkennung 115, die von den RPU-Einheiten 110 durchgeführt werden kann.
-
Beim stochastischen Aktualisierungsschema werden die aus den Spalten und Zeilen (xi und δj) codierten Zahlen unter Verwendung von stochastischen Umsetzungsprogrammen in stochastische Bitströme übersetzt. Diese stochastischen Umsetzungsprogramme passen die Impulswahrscheinlichkeiten an der Peripherie an und steuern somit die Gesamtzahl der Impulskoinzidenzen, die an jedem Kreuzschienenelement auftreten. Bei diesem Schema werden diese Impulse gleichzeitig für alle Zeilen und alle Spalten in die Kreuzschienen-Anordnung gesendet, und dann ändert die entsprechende RPU-Einheit bei jedem Koinzidenzereignis ihren Leitwert um einen kleinen Betrag Δgmin. Es gibt jedoch viele Impulse im Impulsstrom, so dass die vom Algorithmus erforderliche Änderung des Gesamtleitwerts Δgtotal,ij, als eine Reihe kleiner Änderungen des Leitwerts Δgmin pro Impulskoinzidenz realisiert wird. Infolgedessen erfolgt die Aktualisierung des Gewichts als eine Reihe von Koinzidenzereignissen, die jeweils ein Leitwertinkrement (oder Leitwertdekrement) auslösen. Bei Δwmin handelt es sich um die erwartete Änderung des Gewichts aufgrund eines einzelnen Koinzidenzereignisses. Es sei darauf hingewiesen, dass die an der peripheren Einheit erzeugten Impulse an allen RPU-Einheiten innerhalb der Spalte (oder der Zeile) durchgeführt werden, und daher können stochastische Umsetzungsprogramme einen einzigen Wert Δgmin, (oder äquivalent Δwmin) für die gesamte Anordnung annehmen, wenn die Impulswahrscheinlichkeiten so berechnet werden, dass sie die gewünschte Gewichtsänderung an jeder RPU ergeben.
-
2 stellt eine beispielhafte 3D-Kreuzschienenanordnung dar, die die Skizzier-Matrizen von 1 gemäß einer Ausführungsform der vorliegenden Erfindung einbezieht.
-
In verschiedenen beispielhaften Ausführungsformen stellt die Skizzier-Matrix 110 eine Speicherzelle dar, die zwischen einer Mehrzahl von Bitleitungen 122 und einer Mehrzahl von Wortleitungen 124 eingefügt ist. Die Anordnung 120 ergibt sich also aus senkrecht zueinander stehenden leitenden Wortleitungen (Zeilen) 124 und Bitleitungen (Spalten) 122, wobei am Schnittpunkt zwischen jeder Zeile und Spalte eine Skizzier-Matrix 110 angeordnet ist. Auf die Skizzier-Matrix 110 mit einem resistiven Speicherelement kann lesend und schreibend zugegriffen werden, indem die entsprechende Wortleitung 124 und Bitleitung 122 mit Vorspannung versehen werden.
-
3 stellt ein beispielhaftes System für analoges Streaming mit dynamischer Berechnung gemäß einer Ausführungsform der vorliegenden Erfindung dar.
-
Das System 130 umfasst eine erste Matrix 132 und eine zweite Matrix 134. Die erste Matrix 132 und die zweite Matrix 134 tauschen Daten mit einer dynamischen Korrektur-Datenverarbeitungseinheit 136 aus.
-
Die erste Matrix 132 wird für eine erste Zeitspanne τ1 aktualisiert. Nachdem die erste Matrix 132 aktualisiert wurde, wird sie in die dynamische Korrektur-Datenverarbeitungseinheit 136 kopiert. Die Aktualisierungsfunktion wird daraufhin für eine zweite Zeitspanne τ2 zu der zweiten Matrix 134 gewechselt. Während die zweite Matrix 134 aktualisiert wird, werden der ersten Matrix 132 stochastische Impulse zugeführt, um die erste Matrix 132 wieder auf einen Symmetriepunkt zurückzusetzen. Die zweite Matrix 134 wird dann in die dynamische Korrektur-Datenverarbeitungseinheit 136 kopiert. Die Aktualisierungsfunktion wird daraufhin für eine dritte Zeitspanne τ3 zu der ersten Matrix 132 zurückgewechselt. Während die erste Matrix 132 wieder aktualisiert wird, werden der zweiten Matrix 134 stochastische Impulse zugeführt, um die zweite Matrix 134 wieder auf einen Symmetriepunkt zurückzusetzen. Dieser Vorgang wird wiederholt, bis eine endgültige Skizzier-Matrix SXy vorliegt.
-
Die Nutzung der zweiten Anordnung 134 ermöglicht einen kontinuierlichen Betrieb auf Kosten der zusätzlichen Architektur. Die Streaming-Daten (X, y) sollten normalisiert werden, um den Asymmetrieeffekt nicht noch weiter zu verstärken. Außerdem sollten die Aktualisierungen so skaliert werden, dass die endgültige SXy zwischen (-0,1, 0,1) für einen kompletten Bereich von (-1,1) eingestellt wird, um näher am Symmetriepunkt (0) zu operieren.
-
In alternativen Ausführungsformen entfällt die Notwendigkeit der dynamischen Korrektur, wenn die Einheiten vollkommen symmetrisch sind. In diesen Fällen kann eine einzige Anordnung verwendet werden, ohne dass eine Übertragungs-/Nullsetzungsoperation erforderlich ist. Alternativ kann die Nullsetzung übersprungen werden unter der Voraussetzung, dass die zufällige Sequenz die Operation in der Nähe des Symmetriepunkts gewährleistet. In solchen Fällen kann wiederum eine einzige Einheit zusätzlich zu einer digitalen Akkumulationseinheit verwendet werden, bei der die Kopieroperation in kleinen Schritten (z.B. Spalte für Spalte) durchgeführt wird. Alle diese Entscheidungen können je nach der vorliegenden Problemstellung und den vorliegenden Einheiten flexibel und austauschbar getroffen werden.
-
Bei dem Streaming-Algorithmus handelt es sich um einen Integrationsalgorithmus mit offenem Regelkreis. Daher ist bei dem Ansatz eines dynamischen Systems mit einer sekundären Anordnung nicht gewährleistet, dass die erste Matrix zurückgesetzt wird. Diese Algorithmen beruhen jedoch im Gegensatz zu neuronalen Netzwerken nicht auf einer Vektor-Matrix-Multiplikation, so dass die Akkumulationsmatrix in einer digitalen Umgebung vorliegen kann. So können stattdessen zwei Anordnungen oder Matrizen 132, 134 parallel im Wechsel verwendet werden.
-
In alternativen Ausführungsformen können auch mehr als 2 Matrizen verwendet werden. Es können zum Beispiel 3 Matrizen verwendet werden. In einer anderen beispielhaften Ausführungsform können 4 Matrizen verwendet werden. Natürlich kann ein Fachmann eine Mehrzahl von Matrizen in Betracht ziehen, die in Koordination mit der dynamischen Korrektur-Datenverarbeitungseinheit 136 eingesetzt werden. In einem Fall kann eine erste Matrix für eine erste Zeitspanne τ1 aktualisiert werden. Nachdem die erste Matrix aktualisiert wurde, wird sie in die dynamische Korrektur-Datenverarbeitungseinheit 136 kopiert. Die Aktualisierungsfunktion wird daraufhin für eine zweite Zeitspanne τ2 zu einer zweiten Matrix gewechselt. Während die zweite Matrix aktualisiert wird, werden der ersten Matrix und einer dritten Matrix stochastische Impulse zugeführt, um die erste und die dritte Matrix wieder auf ihren jeweiligen Symmetriepunkt zurückzusetzen. Die zweite Matrix wird dann in die dynamische Korrektur-Datenverarbeitungseinheit 136 kopiert. Die Aktualisierungsfunktion wird daraufhin zu der dritten Matrix gewechselt, damit die dritte Matrix für eine dritte Zeitspanne τ3 aktualisiert werden kann. Nachdem die dritte Matrix aktualisiert wurde, wird sie in die dynamische Korrektur-Datenverarbeitungseinheit 136 kopiert. Die Aktualisierungsfunktion wird daraufhin für eine vierte Zeitspanne τ4 zu der ersten Matrix zurückgewechselt. Während die erste Matrix aktualisiert wird, werden der zweiten und der dritten Matrix stochastische Impulse zugeführt, um die zweite und die dritte Matrix wieder auf ihren jeweiligen Symmetriepunkt zurückzusetzen. So kann eine Matrix aktualisiert werden, und zwei weiteren Matrizen können stochastische Impulse zugeführt werden, um sie auf ihren jeweiligen Symmetriepunkt zurückzusetzen. In ähnlicher Weise kann eine Matrix aktualisiert werden, und drei weiteren Matrizen können stochastische Impulse zugeführt werden, um sie auf ihren jeweiligen Symmetriepunkt zurückzusetzen. So kann eine Mehrzahl von Matrizen mit einer oder mehreren dynamischen Korrektur-Datenverarbeitungseinheiten 136 verbunden werden, wobei eine Matrix aktualisiert wird, während allen anderen Matrizen stochastische Impulse zugeführt werden, um sie auf ihren jeweiligen Symmetriepunkt zurückzusetzen. Daher sind die beispielhaften Ausführungsformen nicht auf eine bestimmte Anzahl von mit der dynamischen Korrektur-Datenverarbeitungseinheit 136 verbundenen Matrizen beschränkt.
-
4 zeigt beispielhafte Diagramme, die drei verschiedene Eigenschaften für das Wechseln von Einheiten darstellen, die Symmetriepunkte veranschaulichen, gemäß einer Ausführungsform der vorliegenden Erfindung.
-
Bei asymmetrischen Aktualisierungen hängt die inkrementelle Änderung, die die analogen Einheiten beim Aktualisieren erfahren, vom Gewichtswert ab, der mit einem Softbound-Modell dargestellt werden kann. Dieser Effekt führt zu einer Verzerrung und beeinträchtigt die Trainingsleistung erheblich (Erzeugen von SXy). Für diese Einheiten gibt es einen Punkt, an dem Δwincrement(w) = Δwdecrement(w) ist, der als Symmetriepunkt bezeichnet wird. Eine zufällige Sequenz von Inkrement- und Dekrementoperationen mit gleicher Wahrscheinlichkeit würde den Zustand der Einheit unweigerlich zu diesem Symmetriepunkt führen. Dieses Verhalten wird bei Streaming-Algorithmen beobachtet, da Streaming-Algorithmen eine große Anzahl inkrementeller Änderungen aufweisen. Dazu ist es erforderlich, dass diese analog resistiven Einheiten ihren Leitwert symmetrisch ändern, wenn sie positiven oder negativen Spannungsimpulsen ausgesetzt werden.
-
4 zeigt drei verschiedene Eigenschaften für das Wechseln von Einheiten. Bei der idealen Einheit 160 weisen die Inkremente und Dekremente des Leitwerts die gleiche Größe auf und hängen nicht von dem Leitwert der Einheit ab. Bei der symmetrischen Einheit 170 weisen die Inkremente und Dekremente des Leitwerts die gleiche Stärke auf, sind aber beide von dem Leitwert der Einheit abhängig. Bei der asymmetrischen Einheit 180 weisen die Inkremente und Dekremente des Leitwerts nicht die gleiche Stärke auf und sind beide unterschiedlich stark von dem Leitwert der Einheit abhängig. Es gibt jedoch einen einzigen Punkt, an dem die Stärke des Leitwertinkrements und des Leitwertdekrements die gleiche Größe aufweist. Dieser Punkt wird als Symmetriepunkt bezeichnet und stimmt im gezeigten Beispiel mit dem Referenzleitwert der Einheit überein, liegt also bei = 0. Der Symmetriepunkt 162 ist in der idealen Einheit 160 dargestellt, der Symmetriepunkt 172 ist in der symmetrischen Einheit 170 dargestellt, und der Symmetriepunkt 182 ist in der asymmetrischen Einheit 180 dargestellt.
-
Es ist zu beachten, dass es selbst für die in 180 dargestellte asymmetrische Einheit einen einzigen Punkt (Leitwert) gibt, bei dem die Stärke des Leitwertinkrements und des Leitwertdekrements die gleiche Größe aufweist. Dieser Punkt wird als Symmetriepunkt der aktualisierten Einheit bezeichnet und kann aufgrund der Abweichungen von Einheit zu Einheit einem beliebigen Gewichtswert entsprechen (der nicht unbedingt Null sein muss, wie in 180 gezeigt).
-
5 stellt ein Blockschaubild/einen Ablaufplan eines beispielhaften Verfahrens für zwei Anordnungen dar, die parallel in einem Integrationsschema mit offenem Regelkreis eingesetzt werden, gemäß einer Ausführungsform der vorliegenden Erfindung.
-
In Block 202, Niedrig-Rang-Aktualisieren der ersten Matrix für eine erste Zeitspanne.
-
In Block 204, Kopieren der ersten Matrix in eine dynamische Korrektur-Datenverarbeitungseinheit.
-
In Block 206, Wechseln zu der zweiten Matrix, um bei der zweiten Matrix für eine zweite Zeitspanne ein Niedrig-Rang-Aktualisieren durchzuführen
-
In Block 208, während (oder zur gleichen Zeit, gleichzeitig) bei der zweiten Matrix ein Niedrig-Rang-Aktualisieren durchgeführt wird, Zuführen von Impulsen zu der ersten Matrix, um sie auf einen Symmetriepunkt zurückzusetzen.
-
In Block 210, Kopieren der zweiten Matrix in die dynamische Korrektur-Datenverarbeitungseinheit.
-
In Block 212, Wechseln zu der ersten Matrix, um bei der ersten Matrix für eine dritte Zeitspanne ein Niedrig-Rang-Aktualisieren durchzuführen.
-
In Block 214, während (oder zur gleichen Zeit, gleichzeitig) bei der ersten Matrix ein Niedrig-Rang-Aktualisieren durchgeführt wird, Zuführen von Impulsen zu der zweiten Matrix, um sie auf einen Symmetriepunkt zurückzusetzen.
-
6 stellt ein Blockschaubild/einen Ablaufplan eines beispielhaften Verfahrens zum Wechseln zwischen der ersten und der zweiten Matrix gemäß einer Ausführungsform der vorliegenden Erfindung dar.
-
In Block 220 wartet das Verfahren.
-
In Block 222 wird ermittelt, ob eine neue Stichprobe eingegangen ist. Wenn NEIN, fährt der Prozess mit Block 230 fort, wo die Matrix ausgelesen und die Einheit gewechselt wird. Wenn JA, fährt der Prozess mit Block 224 fort.
-
In Block 224 wird ein Vektor „s“ erzeugt.
-
In Block 226 wird ein analoges Niedrig-Rang-Aktualisieren durchgeführt, und der Prozess fährt mit Block 220 fort.
-
In Block 232 wird die Matrix entweder in digitaler Form oder in einer separaten analogen Einheit gespeichert.
-
7 stellt ein beispielhaftes Verarbeitungssystem zum Verarbeiten von Streaming-Algorithmen gemäß Ausführungsformen der vorliegenden Erfindung dar.
-
Unter Bezugnahme auf 7 zeigt diese Figur eine Hardwarekonfiguration des Datenverarbeitungssystems 600 gemäß einer Ausführungsform der vorliegenden Erfindung. Wie zu sehen ist, verfügt diese Hardwarekonfiguration über mindestens einen Prozessor oder eine Zentraleinheit (CPU) 611. Die CPUs 611 sind über einen Systembus 612 mit einem Direktzugriffsspeicher (RAM) 614 verbunden, sowie mit einem Nur-Lese-Speicher (ROM) 616, einem Eingabe-/Ausgabe-(E/A)-Adapter 618 (zum Anschließen von peripheren Einheiten wie beispielsweise Platteneinheiten 621 und Bandlaufwerken 640 an den Bus 612), einem Benutzerschnittstellenadapter 622 (zum Anschließen einer Tastatur 624, einer Maus 626, eines Lautsprechers 628, eines Mikrofons 632 und/oder einer anderen Benutzerschnittstelleneinheit an den Bus 612), einem Datenübertragungsadapter 634 zum Anschließen des Systems 600 an ein Datenverarbeitungsnetz, das Internet, ein Intranet, ein lokales Netzwerk (LAN) usw., und einem Anzeigeadapter 636 zum Verbinden des Busses 612 mit einer Anzeigeeinheit 638 und/oder einem Drucker 639 (z.B. einem digitalen Drucker oder dergleichen).
-
8 stellt ein Blockschaubild/einen Ablaufplan einer beispielhaften Cloud-Computing-Umgebung gemäß einer Ausführungsform der vorliegenden Erfindung dar.
-
8 stellt ein Blockschaubild/einen Ablaufplan einer beispielhaften Cloud-Computing-Umgebung gemäß einer Ausführungsform der vorliegenden Erfindung dar.
-
Es sei von vornherein klargestellt, dass das Umsetzen der hierin angeführten Lehren nicht auf eine Cloud-Computing-Umgebung beschränkt ist, obwohl diese Erfindung eine ausführliche Beschreibung von Cloud-Computing umfasst. Stattdessen können Ausführungsformen der vorliegenden Erfindung gemeinsam mit jeder beliebigen Art von jetzt bekannter oder später erfundener Datenverarbeitungsumgebung umgesetzt werden.
-
Cloud-Computing ist ein Servicebereitstellungsmodell zum Ermöglichen eines problemlosen bedarfsgesteuerten Netzwerkzugriffs auf einen gemeinsam genutzten Pool von konfigurierbaren Datenverarbeitungsressourcen (z.B. Netzwerke, Netzwerkbandbreite, Server, Verarbeitung, Hauptspeicher, Speicher, Anwendungen, virtuelle Maschinen und Dienste), die mit minimalem Verwaltungsaufwand bzw. minimaler Interaktion mit einem Anbieter des Service schnell bereitgestellt und freigegeben werden können. Dieses Cloud-Modell kann mindestens fünf Eigenschaften umfassen, mindestens drei Dienstmodelle und mindestens vier Implementierungsmodelle.
-
Bei den Eigenschaften handelt es sich um die folgenden:
-
On-Demand Self-Service: Ein Cloud-Nutzer kann einseitig automatisch nach Bedarf für Datenverarbeitungsfunktionen wie Serverzeit und Netzwerkspeicher sorgen, ohne dass eine menschliche Interaktion mit dem Anbieter der Dienste erforderlich ist.
-
Broad Network Access: Es sind Funktionen über ein Netzwerk verfügbar, auf die durch Standardmechanismen zugegriffen wird, welche die Verwendung durch heterogene Thin- oder Thick-Client-Plattformen (z.B. Mobiltelefone, Laptops und PDAs) unterstützen.
-
Resource-Pooling: Die Datenverarbeitungsressourcen des Anbieters werden zusammengeschlossen, um mehreren Nutzern unter Verwendung eines Multi-Tenant-Modells zu dienen, wobei verschiedene physische und virtuelle Ressourcen dynamisch nach Bedarf zugewiesen und neu zugewiesen werden. Es gibt eine gefühlte Standortunabhängigkeit, da der Nutzer allgemein keine Kontrolle bzw. Kenntnis über den genauen Standort der bereitgestellten Ressourcen hat, aber in der Lage sein kann, einen Standort auf einer höheren Abstraktionsebene festzulegen (z.B. Land, Staat oder Rechenzentrum).
-
Rapid Elasticity: Funktionen können für eine schnelle horizontale Skalierung (scale out) schnell und elastisch bereitgestellt werden, in einigen Fällen auch automatisch, und für ein schnelles Scale-in schnell freigegeben werden. Für den Nutzer erscheinen die für das Bereitstellen verfügbaren Funktionen häufig unbegrenzt und sie können jederzeit in jeder beliebigen Menge gekauft werden.
-
Measured Service: Cloud-Systeme steuern und optimieren die Verwendung von Ressourcen automatisch, indem sie eine Messfunktion auf einer gewissen Abstraktionsebene nutzen, die für die Art von Dienst geeignet ist (z.B. Speicher, Verarbeitung, Bandbreite sowie aktive Benutzerkonten). Die Nutzung von Ressourcen kann überwacht, gesteuert und gemeldet werden, wodurch sowohl für den Anbieter als auch für den Nutzer des verwendeten Dienstes Transparenz geschaffen wird.
-
Bei den Dienstmodellen handelt es sich um die folgenden:
-
Software as a Service (SaaS): Die dem Nutzer bereitgestellte Funktion besteht darin, die in einer Cloud-Infrastruktur laufenden Anwendungen des Anbieters zu verwenden. Die Anwendungen sind über eine Thin-Client-Schnittstelle wie einen Web-Browser (z.B. auf dem Web beruhende eMail) von verschiedenen Client-Einheiten her zugänglich. Der Benutzer verwaltet bzw. steuert die zugrunde liegende Cloud-Infrastruktur nicht, darunter das Netzwerk, Server, Betriebssysteme, Speicher bzw. sogar einzelne Anwendungsfunktionen, mit der möglichen Ausnahme von eingeschränkten benutzerspezifischen Anwendungskonfigurationseinstellungen.
-
Platform as a Service (PaaS): Die dem Nutzer bereitgestellte Funktion besteht darin, durch einen Nutzer erstellte bzw. erhaltene Anwendungen, die unter Verwendung von durch den Anbieter unterstützten Programmiersprachen und Tools erstellt wurden, in der Cloud-Infrastruktur einzusetzen. Der Nutzer verwaltet bzw. steuert die zugrunde liegende Cloud-Infrastruktur nicht, darunter Netzwerke, Server, Betriebssysteme bzw. Speicher, hat aber die Kontrolle über die eingesetzten Anwendungen und möglicherweise über Konfigurationen der Application Hosting Environment.
-
Infrastructure as a Service (laaS): Die dem Nutzer bereitgestellte Funktion besteht darin, das Verarbeiten, Speicher, Netzwerke und andere grundlegende Datenverarbeitungsressourcen bereitzustellen, wobei der Nutzer in der Lage ist, beliebige Software einzusetzen und auszuführen, zu der Betriebssysteme und Anwendungen gehören können. Der Nutzer verwaltet bzw. steuert die zugrunde liegende Cloud-Infrastruktur nicht, hat aber die Kontrolle über Betriebssysteme, Speicher, eingesetzte Anwendungen und möglicherweise eine eingeschränkte Kontrolle über ausgewählte Netzwerkkomponenten (z.B. Host-Firewalls).
-
Bei den Einsatzmodellen handelt es sich um die folgenden:
-
Private Cloud: Die Cloud-Infrastruktur wird einzig und allein für eine Organisation betrieben. Sie kann durch die Organisationen oder einen Dritten verwaltet werden und kann in den eigenen Räumen oder fremden Räumen stehen.
-
Community Cloud: Die Cloud-Infrastruktur wird von mehreren Organisationen gemeinsam genutzt und unterstützt eine spezielle Benutzergemeinschaft, die gemeinsame Angelegenheiten hat (z.B. Mission, Sicherheitsanforderungen, Richtlinien sowie Überlegungen bezüglich der Einhaltung von Vorschriften). Sie kann durch die Organisationen oder einen Dritten verwaltet werden und kann in den eigenen Räumen oder fremden Räumen stehen.
-
Public Cloud: Die Cloud-Infrastruktur wird der allgemeinen Öffentlichkeit oder einer großen Industriegruppe zur Verfügung gestellt, und sie gehört einer Cloud-Dienste verkaufenden Organisation.
-
Hybrid Cloud: Die Cloud-Infrastruktur ist eine Zusammensetzung aus zwei oder mehreren Clouds (privat, Benutzergemeinschaft oder öffentlich), die zwar einzelne Einheiten bleiben, aber durch eine standardisierte oder proprietäre Technologie miteinander verbunden sind, die Daten- und Anwendungsportierbarkeit ermöglicht (z.B. Cloud-Zielgruppenverteilung für den Lastenausgleich zwischen Clouds).
-
Eine Cloud-Computing-Umgebung ist dienstorientiert mit Fokus auf Statusunabhängigkeit, geringer Kopplung, Modularität und semantischer Interoperabilität. Im Herzen von Cloud-Computing liegt eine Infrastruktur, die ein Netzwerk aus zusammengeschalteten Knoten aufweist.
-
Unter Bezugnahme auf 8 wird eine veranschaulichende Cloud-Computing-Umgebung 750 gezeigt, die Anwendungsfälle der vorliegenden Erfindung ermöglicht. Wie gezeigt ist, weist die Cloud-Computing-Umgebung 750 einen oder mehrere Cloud-Computing-Knoten 710 auf, mit denen von Cloud-Nutzern verwendete lokale Datenverarbeitungseinheiten wie der elektronische Assistent (PDA, personal digital assistant) oder das Mobiltelefon 754A, der Desktop-Computer 754B, der Laptop-Computer 754C und/oder das Automobil-Computer-System 754N Daten austauschen können. Die Knoten 710 können miteinander Daten austauschen. Sie können physisch oder virtuell in ein oder mehrere Netzwerke wie Private, Community, Public oder Hybrid Clouds gruppiert werden (nicht dargestellt), wie vorstehend beschrieben wurde, oder in eine Kombination daraus. Dies ermöglicht es der Cloud-Computing-Umgebung 750, Infrastruktur, Plattformen und/oder Software als Dienst anzubieten, für die ein Cloud-Nutzer keine Ressourcen auf einer lokalen Datenverarbeitungseinheit vorhalten muss. Es versteht sich, dass die Arten von in 8 gezeigten Datenverarbeitungseinheiten 754A bis N lediglich veranschaulichend sein sollen und dass die Datenverarbeitungsknoten 710 und die Cloud-Computing-Umgebung 750 über eine beliebige Art Netzwerk und/oder über eine beliebige Art von über ein Netzwerk aufrufbarer Verbindung (z.B. unter Verwendung eines Web-Browsers) mit einer beliebigen Art von computergestützter Einheit Daten austauschen können.
-
9 zeigt eine schematische Darstellung von beispielhaften Abstraktionsmodellschichten gemäß einer Ausführungsform der vorliegenden Erfindung. Es sollte von vornherein klar sein, dass die in 9 gezeigten Komponenten, Schichten und Funktionen lediglich veranschaulichend sein sollen und Ausführungsformen der Erfindung nicht darauf beschränkt sind. Wie abgebildet ist, werden die folgenden Schichten und entsprechenden Funktionen bereitgestellt:
-
Eine Hardware- und Software-Schicht 860 umfasst Hardware- und Software-Komponenten. Zu Beispielen für Hardware-Komponenten gehören: Mainframe-Computer 861; auf der RISC- (Reduced Instruction Set Computer) Architektur beruhende Server 862; Server 863; Blade-Server 864; Speichereinheiten 865; und Netzwerke sowie Netzwerkkomponenten 866. In einigen Ausführungsformen umfassen Software-Komponenten eine Netzwerk-Anwendungsserver-Software 867 und eine Datenbank-Software 868.
-
Die Virtualisierungsschicht 870 stellt eine Abstraktionsschicht bereit, aus der die folgenden Beispiele für virtuelle Einheiten bereitgestellt werden können: virtuelle Server 871; virtueller Speicher 872; virtuelle Netzwerke 873, darunter virtuelle private Netzwerke, virtuelle Anwendungen und Betriebssysteme 874; und virtuelle Clients 875.
-
In einem Beispiel kann die Verwaltungsschicht 880 die nachfolgend beschriebenen Funktionen bereitstellen. Eine Ressourcen-Bereitstellung 881 stellt die dynamische Beschaffung von Datenverarbeitungsressourcen sowie anderen Ressourcen bereit, die zum Durchführen von Aufgaben innerhalb der Cloud-Computing-Umgebung verwendet werden. Ein Messen und eine Preisfindung 882 stellen die Kostenverfolgung beim Verwenden von Ressourcen innerhalb der Cloud-Computing-Umgebung sowie die Abrechnung oder Rechnungsstellung für die Inanspruchnahme dieser Ressourcen bereit. In einem Beispiel können diese Ressourcen Anwendungs-Software-Lizenzen aufweisen. Die Sicherheit stellt die Identitätsüberprüfung für Cloud-Nutzer und Aufgaben sowie Schutz für Daten und andere Ressourcen bereit. Ein Benutzerportal 883 stellt Nutzern und Systemadministratoren den Zugang zu der Cloud-Computing-Umgebung bereit. Eine Verwaltung des Dienstumfangs 884 stellt die Zuordnung und Verwaltung von Cloud-Computing-Ressourcen bereit, so dass die benötigten Dienstziele erreicht werden. Ein Planen und Erfüllen von Vereinbarungen zum Dienstumfang (SLA, Service Level Agreement) 885 stellt die Anordnung vorab und die Beschaffung von Cloud-Computing-Ressourcen, für die eine zukünftige Anforderung vorausgesehen wird, gemäß einem SLA bereit.
-
Eine Arbeitslastschicht 890 stellt Beispiele für die Funktionalität bereit, für welche die Cloud-Computing-Umgebung verwendet werden kann. Zu Beispielen für Arbeitslasten und Funktionen, die von dieser Schicht bereitgestellt werden können, gehören: Abbildung und Navigation 891; Software-Entwicklung und Lebenszyklusverwaltung 892; Bereitstellung von Ausbildung in virtuellen Klassenzimmern 893; Datenanalytikverarbeitung 894; Transaktionsverarbeitung 895; und ein Streaming-Algorithmus 896.
-
10 stellt ein Blockschaubild/einen Ablaufplan eines Verfahrens zum Durchführen eines Integrationsschemas mit offenem Regelkreis in Systemen/Einheiten/Infrastrukturen des Internets der Dinge (IdD; Internet of Things, loT) gemäß Ausführungsformen der vorliegenden Erfindung dar.
-
Gemäß einigen Ausführungsformen der Erfindung wird ein Netzwerk unter Verwendung einer IdD-Methodik implementiert. Zum Beispiel kann der Streaming-Algorithmus 902 in am Körper tragbare (wearable), implantierbare oder einnehmbare elektronische Einheiten und Sensoren des Internets der Dinge (IdD) integriert werden. Zu den am Körper tragbaren, implantierbaren oder einnehmbaren Einheiten können zumindest Gesundheits- und Wellness-Überwachungsgeräte sowie Fitnessgeräte gehören. Die am Körper tragbaren, implantierbaren oder einnehmbaren Einheiten können darüber hinaus auch implantierbare Einheiten, intelligente Uhren (smart watches), am Kopf getragene Einheiten, Sicherheits- und Präventionseinheiten sowie Spiel- und Lifestyle-Einheiten umfassen. Die IdD-Sensoren können zumindest in Heimautomatisierungsanwendungen, Automobilanwendungen, Benutzerschnittstellenanwendungen, Lifestyle- und/oder Unterhaltungsanwendungen, Stadt- und/oder Infrastrukturanwendungen, Spielzeuge, das Gesundheitswesen, den Fitnessbereich, Einzelhandels-Tags und/oder-Tracker, Plattformen und Komponenten usw. integriert werden. Der hier beschriebene Streaming-Algorithmus 902 kann in jede Art von elektronischen Einheiten für jede Art von Nutzung oder Anwendung oder Operation eingebunden werden.
-
Durch IdD-Systeme können Nutzer eine tiefergehende Automatisierung, Analyse und Integration innerhalb eines Systems erreichen. Das Internet der Dinge verbessert die Reichweite dieser Bereiche und ihre Genauigkeit. Das Internet der Dinge nutzt bestehende und neue Technologien für Sensorik, Netzwerke und Robotik. Zu den Funktionen des Internets der Dinge gehören künstliche Intelligenz, Konnektivität, Sensoren, aktives Engagement und die Verwendung kleiner Einheiten. In verschiedenen Ausführungsformen kann der Streaming-Algorithmus 902 der vorliegenden Erfindung in eine Vielfalt von verschiedenen Einheiten und/oder Systemen eingebunden werden. Zum Beispiel kann der Streaming-Algorithmus 902 in am Körper tragbare bzw. generell tragbare elektronische Einheiten 904 integriert werden. Zu den am Körper tragbaren/generell tragbaren elektronischen Einheiten 904 können auch implantierbare Einheiten 940 gehören, zum Beispiel intelligente Kleidung 943. Am Körper tragbare/generell tragbare Einheiten 904 können intelligente Uhren 942 und intelligenten Schmuck 945 umfassen. Darüber hinaus können am Körper tragbare/generell tragbare Einheiten 904 Fitness-Überwachungseinheiten 944, Gesundheits- und Wellness-Überwachungseinheiten 946, am Kopf getragene Einheiten 948 (z.B. intelligente Brillen 949), Sicherheits- und Präventionssysteme 950, Spiele- und Lifestyle-Einheiten 952, Smartphones/Tablets 954, Media-Player 956 und/oder Computer/Datenverarbeitungseinheiten 958 umfassen.
-
Der Streaming-Algorithmus 902 der vorliegenden Erfindung kann ferner in Sensoren des Internets der Dinge (IdD) 906 für verschiedene Anwendungen integriert werden, zum Beispiel Hausautomatisierung 920, Automobil 922, Benutzerschnittstelle 924, Lifestyle und/oder Unterhaltung 926, Stadt und/oder Infrastruktur 928, Einzelhandel 910, Tags und/oder Tracker 912, Plattform und Komponenten 914, Spielzeuge 930 und/oder Gesundheitswesen 932 sowie Fitness 934. Die IdD-Sensoren 906 können den Streaming-Algorithmus 902 verwenden. Natürlich kann ein Fachmann in Betracht ziehen, einen solchen Streaming-Algorithmus 902 in jede Art von elektronischen Einheiten für jede Art von Anwendungen einzubinden, und ist nicht auf die hier beschriebenen beschränkt.
-
11 stellt ein Blockschaubild/einen Ablaufplan von beispielhaften IdD-Sensoren dar, die zum Erfassen von Daten/Informationen im Zusammenhang mit dem Streaming-Algorithmus des Integrationsschemas mit offenem Regelkreis gemäß den Ausführungsformen der vorliegenden Erfindung verwendet werden.
-
Ohne Sensoren verliert das Internet der Dinge seine Besonderheit. IdD-Sensoren sind das entscheidende Instrument, um das Internet der Dinge von einem standardmäßigen passiven Netzwerk von Einheiten in ein aktives System zu verwandeln, das sich in die reale Welt integrieren lässt.
-
Die IdD-Sensoren 906 können den Streaming-Algorithmus 902 verwenden, um Informationen/Daten kontinuierlich und in Echtzeit über ein Netzwerk 908 an jede Art von verteiltem System zu übertragen. Zu Beispielen für IdD-Sensoren 906 können Positions-/ Anwesenheits-/Näherungssensoren 1002 gehören, sowie Bewegungs-/ Geschwindigkeitssensoren 1004, Verschiebungssensoren 1006 wie Beschleunigungs-/ Neigungssensoren 1007, Temperatursensoren 1008, Luftfeuchtigkeits-/ Feuchtigkeitssensoren 1010 sowie Strömungssensoren 1011, Akustik-/Schall-/ Vibrationssensoren 1012, chemische Sensoren/Gassensoren 1014, Kraft-/Last-/ Drehmoment-/Dehnungs-/Drucksensoren 1016 und/oder elektrische/magnetische Sensoren 1018, ohne auf diese beschränkt zu sein. Ein Fachmann kann ein Verwenden einer beliebigen Kombination solcher Sensoren in Erwägung ziehen, um Daten/Informationen über den Streaming-Algorithmus 902 des verteilten Systems zur weiteren Verarbeitung zu erfassen. Ein Fachmann kann ein Verwenden anderer Arten von IdD-Sensoren in Erwägung ziehen, zum Beispiel Magnetometer, Gyroskope, Bildsensoren, Lichtsensoren, RFID-Sensoren (radio frequency identification, Radiofrequenzidentifikation) und/oder Mikroströmungssensoren, ohne auf diese beschränkt zu sein. Zu den IdD-Sensoren können auch Energiemodule, Module zur Verwaltung der Stromversorgung, HF-Module und Sensormodule gehören. HF-Module verwalten die Datenübertragung durch ihre Signalverarbeitung, WiFi, ZigBee®, Bluetooth®, Funk-Transceiver, Duplexer usw.
-
Wie hier verwendet, können die Begriffe „Daten“, „Inhalt“, „Information“ und ähnliche Begriffe austauschbar verwendet werden, um sich auf Daten zu beziehen, die gemäß verschiedenen beispielhaften Ausführungsformen erfasst, übertragen, empfangen, angezeigt und/oder gespeichert werden können. Das Verwenden solcher Begriffe sollte daher nicht als Einschränkung des Sinngehalts und Umfangs der Offenbarung verstanden werden. Ferner können in den Fällen, in denen hier bei einer Datenverarbeitungseinheit ein Empfangen von Daten von einer anderen Datenverarbeitungseinheit beschrieben wird, die Daten direkt von der anderen Datenverarbeitungseinheit empfangen werden oder indirekt über eine oder mehrere zwischengeschaltete Datenverarbeitungseinheiten empfangen werden, wie zum Beispiel einen oder mehrere Server, Relais, Leitwegrechner, Netzwerkzugriffspunkte, Basisstationen und/oder dergleichen.
-
Um eine Interaktion mit einem Benutzer bereitzustellen, können Ausführungsformen des in dieser Spezifikation beschriebenen Gegenstands auf einem Computer implementiert werden, der über eine Anzeigeeinheit zum Anzeigen von Informationen für den Benutzer verfügt, zum Beispiel ein CRT-Monitor (cathode ray tube, Kathodenstrahlröhre) oder LCD-Monitor (liquid crystal display, Flüssigkristallanzeige), sowie über eine Tastatur und eine Zeigeeinheit, zum Beispiel eine Maus oder einen Trackball, mit denen der Benutzer Eingaben für den Computer bereitstellen kann. Es können auch andere Arten von Einheiten verwendet werden, um eine Interaktion mit einem Benutzer bereitzustellen; zum Beispiel kann es sich bei der dem Benutzer bereitgestellten Rückmeldung um eine beliebige Form der sensorischen Rückmeldung handeln, zum Beispiel eine visuelle Rückmeldung, auditive Rückmeldung oder tastbare Rückmeldung, und die Eingaben des Benutzers können in beliebiger Form empfangen werden, unter anderem als akustische, sprachliche oder tastbare Eingabe.
-
Bei der vorliegenden Erfindung kann es sich um ein System, ein Verfahren und/oder ein Computerprogrammprodukt handeln. Das Computerprogrammprodukt kann (ein) durch einen Computer lesbare(s) Speichermedium (oder -medien) umfassen, auf dem/denen durch einen Computer lesbare Programmanweisungen gespeichert ist/sind, um einen Prozessor dazu zu veranlassen, Aspekte der vorliegenden Erfindung auszuführen.
-
Bei dem durch einen Computer lesbaren Speichermedium kann es sich um eine physische Einheit handeln, die Anweisungen zur Verwendung durch ein System zur Ausführung von Anweisungen behalten und speichern kann. Bei dem durch einen Computer lesbaren Speichermedium kann es sich zum Beispiel um eine elektronische Speichereinheit, eine magnetische Speichereinheit, eine optische Speichereinheit, eine elektromagnetische Speichereinheit, eine Halbleiterspeichereinheit oder jede geeignete Kombination daraus handeln, ohne auf diese beschränkt zu sein. Zu einer nicht erschöpfenden Liste spezifischerer Beispiele des durch einen Computer lesbaren Speichermediums gehören die folgenden: eine tragbare Computerdiskette, eine Festplatte, ein Direktzugriffsspeicher (RAM), ein Nur-Lese-Speicher (ROM), ein löschbarer programmierbarer Nur-Lese-Speicher (EPROM bzw. Flash-Speicher), ein statischer Direktzugriffsspeicher (SRAM), ein tragbarer Kompaktspeicherplatte-Nur-Lese-Speicher (CD-ROM), eine DVD (digital versatile disc), ein Speicher-Stick, eine Diskette, eine mechanisch codierte Einheit wie zum Beispiel Lochkarten oder erhabene Strukturen in einer Rille, auf denen Anweisungen gespeichert sind, und jede geeignete Kombination daraus. Ein durch einen Computer lesbares Speichermedium soll in der Verwendung hierin nicht als flüchtige Signale an sich aufgefasst werden wie zum Beispiel Funkwellen oder andere sich frei ausbreitende elektromagnetische Wellen, elektromagnetische Wellen, die sich durch einen Wellenleiter oder ein anderes Übertragungsmedium ausbreiten (z.B. ein Lichtwellenleiterkabel durchlaufende Lichtimpulse) oder durch einen Draht übertragene elektrische Signale.
-
Hierin beschriebene, durch einen Computer lesbare Programmanweisungen können von einem durch einen Computer lesbaren Speichermedium auf jeweilige Datenverarbeitungs-/Verarbeitungseinheiten oder über ein Netzwerk wie zum Beispiel das Internet, ein lokales Netzwerk, ein Weitverkehrsnetz und/oder ein drahtloses Netzwerk auf einen externen Computer oder eine externe Speichereinheit heruntergeladen werden. Das Netzwerk kann Kupferübertragungskabel, Lichtwellenübertragungsleiter, drahtlose Übertragungen, Leitwegrechner, Firewalls, Vermittlungseinheiten, Gateway-Computer und/oder Edge-Server aufweisen. Eine Netzwerkadapterkarte oder Netzwerkschnittstelle in jeder Datenverarbeitungs-/Verarbeitungseinheit empfängt durch einen Computer lesbare Programmanweisungen aus dem Netzwerk und leitet die durch einen Computer lesbaren Programmanweisungen zur Speicherung in einem durch einen Computer lesbaren Speichermedium innerhalb der entsprechenden Datenverarbeitungs-/Verarbeitungseinheit weiter.
-
Bei durch einen Computer lesbaren Programmanweisungen zum Ausführen von Arbeitsschritten der vorliegenden Erfindung kann es sich um Assembler-Anweisungen, ISA-Anweisungen (Instruction-Set-Architecture), Maschinenanweisungen, maschinenabhängige Anweisungen, Mikrocode, Firmware-Anweisungen, zustandssetzende Daten oder entweder Quellcode oder Objektcode handeln, die in einer beliebigen Kombination aus einer oder mehreren Programmiersprachen geschrieben werden, darunter objektorientierte Programmiersprachen wie Smalltalk, C++ o.ä. sowie herkömmliche prozedurale Programmiersprachen wie die Programmiersprache „C“ oder ähnliche Programmiersprachen. Die durch einen Computer lesbaren Programmanweisungen können vollständig auf dem Computer des Benutzers, teilweise auf dem Computer des Benutzers, als eigenständiges Software-Paket, teilweise auf dem Computer des Benutzers und teilweise auf einem fernen Computer oder vollständig auf dem fernen Computer oder Server ausgeführt werden. In letzterem Fall kann der entfernt angeordnete Computer mit dem Computer des Benutzers durch eine beliebige Art Netzwerk verbunden sein, darunter ein lokales Netzwerk (LAN) oder ein Weitverkehrsnetz (WAN), oder die Verbindung kann mit einem externen Computer hergestellt werden (zum Beispiel über das Internet unter Verwendung eines Internet-Dienstanbieters). In einigen Ausführungsformen können elektronische Schaltungen, darunter zum Beispiel programmierbare Logikschaltungen, vor Ort programmierbare Gatter-Anordnungen (FPGA, field programmable gate arrays) oder programmierbare Logikanordnungen (PLA, programmable logic arrays) die durch einen Computer lesbaren Programmanweisungen ausführen, indem sie Zustandsinformationen der durch einen Computer lesbaren Programmanweisungen nutzen, um die elektronischen Schaltungen zu personalisieren, um Aspekte der vorliegenden Erfindung durchzuführen.
-
Aspekte der vorliegenden Erfindung sind hierin unter Bezugnahme auf Ablaufpläne und/oder Blockschaubilder von Verfahren, Vorrichtungen (Systemen) und Computerprogrammprodukten gemäß Ausführungsformen der Erfindung beschrieben. Es wird darauf hingewiesen, dass jeder Block der Flussdiagramm-Darstellungen und/oder der Blockschaubilder sowie Kombinationen von Blöcken in den Flussdiagramm-Darstellungen und/oder den Blockschaubildern mittels durch einen Computer lesbare Programmanweisungen ausgeführt werden können.
-
Diese durch einen Computer lesbaren Programmanweisungen können mindestens einem Prozessor eines Universalcomputers, eines Spezialcomputers oder einer anderen programmierbaren Datenverarbeitungsvorrichtung bereitgestellt werden, um eine Maschine zu erzeugen, so dass die über den Prozessor des Computers bzw. der anderen programmierbaren Datenverarbeitungsvorrichtung ausgeführten Anweisungen ein Mittel zur Umsetzung der in dem Block bzw. den Blöcken oder Modulen der Ablaufpläne und/oder der Blockschaubilder festgelegten Funktionen/Schritte erzeugen. Diese durch einen Computer lesbaren Programmanweisungen können auch auf einem durch einen Computer lesbaren Speichermedium gespeichert sein, das einen Computer, eine programmierbare Datenverarbeitungsvorrichtung und/oder andere Einheiten so steuern kann, dass sie auf eine bestimmte Art funktionieren, so dass das durch einen Computer lesbare Speichermedium, auf dem Anweisungen gespeichert sind, ein Herstellungsprodukt umfassen, darunter Anweisungen, welche Aspekte der/des in dem Block bzw. den Blöcken oder Modulen der Ablaufpläne und/oder der Blockschaubilder festgelegten Funktion/Schritts umsetzen.
-
Die durch einen Computer lesbaren Programmanweisungen können auch auf einen Computer, eine andere programmierbare Datenverarbeitungsvorrichtung oder eine andere Einheit geladen werden, um das Ausführen einer Reihe von Blöcken/Prozessschritten auf dem Computer bzw. der anderen programmierbaren Vorrichtung oder anderen Einheit zu verursachen, um einen auf einem Computer ausgeführten Prozess zu erzeugen, so dass die auf dem Computer, einer anderen programmierbaren Vorrichtung oder einer anderen Einheit ausgeführten Anweisungen die in dem Block bzw. den Blöcken oder Modulen der Ablaufpläne und/oder der Blockschaubilder festgelegten Funktionen/Schritte umsetzen.
-
Die Ablaufpläne und die Blockschaubilder in den Figuren veranschaulichen die Architektur, die Funktionalität und den Betrieb möglicher Ausführungen von Systemen, Verfahren und Computerprogrammprodukten gemäß verschiedenen Ausführungsformen der vorliegenden Erfindung. In diesem Zusammenhang kann jeder Block in den Ablaufplänen oder Blockschaubildern ein Modul, ein Segment oder einen Teil von Anweisungen darstellen, die eine oder mehrere ausführbare Anweisungen zur Ausführung der bestimmten logischen Funktion(en) aufweisen. In einigen alternativen Ausführungen können die in den Blöcken angegebenen Funktionen in einer anderen Reihenfolge als in den Figuren gezeigt stattfinden. Zwei nacheinander gezeigte Blöcke können zum Beispiel in Wirklichkeit im Wesentlichen gleichzeitig ausgeführt werden, oder die Blöcke können manchmal je nach entsprechender Funktionalität in umgekehrter Reihenfolge ausgeführt werden. Es ist ferner anzumerken, dass jeder Block der Blockschaubilder und/oder der Ablaufpläne sowie Kombinationen aus Blöcken in den Blockschaubildern und/oder den Ablaufplänen durch spezielle auf Hardware beruhende Systeme umgesetzt werden können, welche die festgelegten Funktionen oder Schritte durchführen, oder Kombinationen aus Spezial-Hardware und Computeranweisungen ausführen.
-
Ein Verweis in der Spezifikation auf „eine einzelne Ausführungsform“ oder „eine Ausführungsform“ der vorliegenden Grundgedanken sowie andere Variationen davon bedeutet, dass eine bestimmte, in Verbindung mit der Ausführungsform beschriebene Funktion, Struktur, Eigenschaft und so weiter in mindestens einer Ausführungsform der vorliegenden Grundgedanken enthalten ist. Daher bezieht sich das Auftreten des Ausdrucks „in einer einzelnen Ausführungsform“ oder „in einer Ausführungsform“ und jede andere Variante davon an verschiedenen Stellen in der Spezifikation nicht zwangsläufig auf dieselbe Ausführungsform.
-
Es sei darauf hingewiesen, dass die Verwendung von „/“, „und/oder“ und „mindestens eines von“, zum Beispiel im Fall von „A/B“, „A und/oder B“ bzw. „mindestens eines von A und B“, nur die Auswahl der ersten aufgeführten Option (A) oder nur die Auswahl der zweiten aufgeführten Option (B) oder die Auswahl beider Optionen (A und B) umfassen soll. Als weiteres Beispiel soll diese Formulierung im Fall von „A, B und/oder C“ bzw. „mindestens eines von A, B und C“ nur die Auswahl der ersten aufgeführten Option (A) oder nur die Auswahl der zweiten aufgeführten Option (B) oder nur die Auswahl der dritten aufgeführten Option (C) umfassen, oder nur die Auswahl der ersten und der zweiten aufgeführten Option (A und B), oder nur die Auswahl der ersten und der dritten aufgeführten Option (A und C), oder nur die Auswahl der zweiten und der dritten aufgeführten Option (B und C), oder die Auswahl aller drei Optionen (A und B und C). Dies kann, wie für einen Fachmann dieser und verwandter Techniken leicht ersichtlich ist, auf beliebig viele Punkte ausgedehnt werden.
-
Nachdem bevorzugte Ausführungsformen eines Systems und Verfahrens für einen Streaming-Algorithmus unter Verwendung analoger Kreuzschienen-Architekturen beschrieben wurden (die zur Veranschaulichung dienen und nicht einschränkend sein sollen), wird darauf hingewiesen, dass Änderungen und Variationen von Fachleuten im Hinblick auf die obigen Lehren vorgenommen werden können. Es versteht sich daher, dass an den jeweiligen beschriebenen Ausführungsformen Änderungen vorgenommen werden können, die in den Umfang der Erfindung fallen, wie er in den beigefügten Ansprüchen beschrieben ist. Nachdem somit Aspekte der Erfindung mit den von den Patentgesetzen geforderten Einzelheiten und Besonderheiten beschrieben worden sind, ist das, was beansprucht und durch die Patentschrift geschützt werden soll, in den beigefügten Ansprüchen dargelegt.