DE112010001971T5 - Auf Zustandsvariablen basierende Detektion und/oder Korrektur einesFehlers - Google Patents

Auf Zustandsvariablen basierende Detektion und/oder Korrektur einesFehlers Download PDF

Info

Publication number
DE112010001971T5
DE112010001971T5 DE112010001971T DE112010001971T DE112010001971T5 DE 112010001971 T5 DE112010001971 T5 DE 112010001971T5 DE 112010001971 T DE112010001971 T DE 112010001971T DE 112010001971 T DE112010001971 T DE 112010001971T DE 112010001971 T5 DE112010001971 T5 DE 112010001971T5
Authority
DE
Germany
Prior art keywords
computing platform
abort
state
calculation
state variables
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Ceased
Application number
DE112010001971T
Other languages
English (en)
Inventor
Miodrag Potkonjak
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Empire Technology Development LLC
Original Assignee
Empire Technology Development LLC
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Empire Technology Development LLC filed Critical Empire Technology Development LLC
Publication of DE112010001971T5 publication Critical patent/DE112010001971T5/de
Ceased legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0793Remedial or corrective actions
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0706Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment
    • G06F11/0721Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment within a central processing unit [CPU]

Abstract

Ausführungsformen schaffen Verfahren und Einrichtungen zum Detektieren von Fehlern bei einer Berechnung unter Verwendung von Zustandsvariablen. Bei verschiedenen Ausführungsformen sind ferner Korrekturen der Fehler mittels der Zustandsvariablen vorgesehen. Bei verschiedenen Ausführungsformen können die offengelegten Techniken unter anderen Aufgaben zur Leistungsbedarfs- und/oder Energieminimierung/-reduzierung und zur Programmfehlerbeseitigung angewendet werden. Es können weitere Ausführungsformen und/oder Anwendungen offengelegt und/oder beansprucht werden.

Description

  • Technisches Sachgebiet
  • Diese Anmeldung betrifft grundsätzlich das Gebiet der Berechnung und insbesondere die auf Zustandsvariablen basierende Detektion und/oder Korrektur eines Fehlers.
  • Hintergrund
  • Es können zahlreiche Zielsetzungen bezüglich Auslegung und Betrieb bestehen, die Latenz, Durchsatz, Bereich, Kosten und Leistungsbedarf umfassen. Die relative Bedeutung dieser Zielsetzungen bezüglich Auslegung und Betrieb können sich zusammen mit Trends bei Implementierungstechnologien, Anwendungen und Support Tools verändern. Diese Zielsetzungen oder Metriken bezüglich Auslegung und Betrieb können jedoch relevant sein, wenn die programmierbare oder anwendungsspezifische Auslegung korrekt funktioniert. Daher kann die Entwicklung von Techniken und Tools für die Fehlerdetektion, -diagnose und -korrektur von höchster Wichtigkeit sein. Die Bedeutung von Techniken und Tools für die Fehlerdetektion, -diagnose und -korrektur kann bei einer Auslegung mit niedrigem Leistungsbedarf und/oder bei Vorrichtungsbetrieb mit niedrigem Leistungsbedarf und bei der Programmfehlerbeseitigung, wie z. B. bei drahtlosen und mobilen Systemen, die unter schwierigen Bedingungen und bei strengen Einschränkungen hinsichtlich Rechenressourcen und Energie arbeiten, sogar noch größer sein. Andere Systemtypen mit besonderer Bedeutung aufgrund von möglicher Wärmeempfindlichkeit und Dauerbetrieb umfassen Computer und Kommunikationsvorrichtungen, die in Rechenzentren verwendet werden.
  • Übersicht
  • Ausführungsformen der vorliegenden Offenlegung umfassen Verfahren, Einrichtungen und Herstellungsartikel in Zusammenhang mit auf Zustandsvariablen basierender Detektion und/oder Korrektur eines Fehlers bei der Berechnung. Bei verschiedenen Ausführungsformen kann ein Verfahren das Empfangen durch eine erste Rechenplattform eines oder mehrerer aktueller Werte eines Satzes einer oder mehrerer Zustandsvariablen eines Abbruchs einer Berechnung, die auf einer zweiten Rechenplattform unter Verwendung eines oder mehrerer Eingangsdaten durchgeführt wird, umfassen. Der Satz einer oder mehrerer Zustandsvariablen kann die Berechnung nach dem Abbruch definieren. Bei verschiedenen Ausführungsformen kann das Verfahren ferner das Detektieren durch die erste Rechenplattform eines oder mehrerer Fehler bei der von der zweiten Rechenplattform durchgeführten Berechnung umfassen. Das Detektieren kann zumindest teilweise auf dem Satz einer oder mehrerer Zustandsvariablen des Abbruchs der Berechnung basieren.
  • Bei verschiedenen Ausführungsformen kann das Verfahren ferner das Bestimmen eines Satzes einer oder mehrerer Korrekturen durch eine dritte Rechenplattform und das Liefern des Satzes einer oder mehrerer Korrekturen durch die dritte Rechenplattform zu der zweiten Rechenplattform umfassen. Die erste und die dritte Rechenplattform können entweder dieselbe oder verschiedene Rechenplattformen sein. Bei verschiedenen Ausführungsformen kann das Bestimmen das Lösen eines Systems von linearen Gleichungen mit einer Vielzahl von Variablen umfassen, wobei eine separate Zustandsvariable aus der einen oder den mehreren Zustandsvariablen einer Variablen für das System von linearen Gleichungen entspricht.
  • Bei verschiedenen Ausführungsformen kann das Verfahren ferner umfassen, dass die erste Rechenplattform die gleiche Berechnung auf der ersten Rechenplattform unter Verwendung der gleichen einen oder mehreren Eingangsdaten durchführt und dass die erste Rechenplattform einen oder mehrere entsprechende aktuelle Werte des Satzes einer oder mehrerer Zustandsvariablen eines entsprechenden Abbruchs der Berechnung, die auf der ersten Rechenplattform durchgeführt werden, erfasst. Das Detektieren kann das Vergleichen des einen oder der mehreren aktuellen Werte des Satzes einer oder mehrerer Zustandsvariablen der Abbrüche der Berechnungen, die auf der zweiten bzw. der ersten Rechenplattform durchgeführt werden, umfassen.
  • Bei verschiedenen Ausführungsformen kann ein Abbruch einen vollständigen Abbruch einschließlich sämtlicher Zustandsvariablen, die die Berechnung nach dem Abbruch definieren, umfassen. Bei verschiedenen Ausführungsformen kann ein Abbruch einen teilweisen Abbruch einschließlich eines Teilsatzes sämtlicher Zustandsvariablen, die die Berechnung nach dem Abbruch definieren, umfassen.
  • Bei verschiedenen Ausführungsformen kann die Berechnung unter einer ersten Zeitsteuerungskonfiguration der zweiten Rechenplattform durchgeführt werden, und das Verfahren kann ferner das Wiederholen des Empfangens, Detektierens, Bestimmens und Bereitstellens für die Berechnung, die unter einer zweiten Zeitsteuerungskonfiguration der zweiten Rechenplattform durchgeführt wird, umfassen. Die erste und die zweite Zeitsteuerungskonfiguration können unterschiedlich sein.
  • Bei verschiedenen Ausführungsformen kann die Berechnung auf der zweiten Rechenplattform mit einem ersten Satz von Zustandselementen durchgeführt werden, und das Verfahren kann ferner das Wiederholen des Empfangens, Detektierens, Bestimmens und Lieferns für die Berechnung, die auf der zweiten Rechenplattform mit einem zweiten Satz von Zustandselementen durchgeführt wird, umfassen, wobei die ersten und die zweiten Zustandselemente unterschiedlich sind. Der erste und der zweite Satz von Zustandselementen können einem ersten und einem zweiten Satz von Zustandsvariablen entsprechen.
  • Bei verschiedenen Ausführungsformen kann die Berechnung auf der zweiten Rechenplattform mit einem ersten Satz von Zustandselementen durchgeführt werden, und das Verfahren kann ferner das Wiederholen des Empfangens, Detektierens, Bestimmens und Lieferns für die Berechnung, die auf der zweiten Rechenplattform mit einem zweiten Satz von Zustandselementen durchgeführt wird, umfassen. Die ersten und die zweiten Zustandselemente können unterschiedlich sein, und der erste und der zweite Satz von Zustandselementen können einem ersten und einem zweiten Satz von Zustandsvariablen entsprechen.
  • Bei verschiedenen Ausführungsformen kann ein Verfahren umfassen: das Durchführen einer Berechnung durch eine erste Rechenplattform unter Verwendung eines oder mehrerer Eingangsdaten, das Erfassen durch die erste Rechenplattform eines oder mehrerer aktueller Werte eines Satzes einer oder mehrerer Zustandsvariablen eines Abbruchs der Berechnung, wobei der Satz einer oder mehrerer Zustandsvariablen die Berechnung nach dem Abbruch definiert, und das Senden des einen oder der mehreren erfassten aktuellen Werte des Satzes einer oder mehrerer Zustandsvariablen des Abbruchs der Berechnung von der ersten Rechenplattform zu einer zweiten Rechenplattform, damit die zweite Rechenplattform einen oder mehrere Fehler der Berechnung, die auf der ersten Rechenplattform durchgeführt wird, detektiert und Korrekturen für den einen oder die mehreren detektierten Fehler zu der ersten Rechenplattform liefert.
  • Bei verschiedenen Ausführungsformen kann ein Abbruch einen vollständigen Abbruch einschließlich sämtlicher Zustandsvariablen, die die Berechnung nach dem Abbruch definieren, umfassen. Bei verschiedenen Ausführungsformen kann ein Abbruch einen teilweisen Abbruch einschließlich eines Teilsatzes sämtlicher Zustandsvariablen, die die Berechnung nach dem Abbruch definieren, umfassen.
  • Bei verschiedenen Ausführungsformen kann die Berechnung unter einer ersten Zeitsteuerungskonfiguration der zweiten Rechenplattform durchgeführt werden, und das Verfahren kann ferner das Wiederholen des Empfangens, Detektierens, Bestimmens und Lieferns für die Berechnung, die unter einer zweiten Zeitsteuerungskonfiguration der zweiten Rechenplattform durchgeführt wird, umfassen. Die erste und die zweite Zeitsteuerungskonfiguration können unterschiedlich sein.
  • Bei verschiedenen Ausführungsformen kann die Berechnung auf der ersten Rechenplattform mit einem ersten Satz von Zustandselementen durchgeführt werden, und das Verfahren kann ferner das Wiederholen des Durchführens, Erfassens und Sendes für die Berechnung, die auf der ersten Rechenplattform mit einem zweiten Satz von Zustandselementen durchgeführt wird, umfassen. Die ersten und die zweiten Zustandselemente können unterschiedlich sein.
  • Bei verschiedenen Ausführungsformen kann das Verfahren ferner das Empfangen der Korrekturen für einen oder mehrere detektierte Fehler umfassen, wobei die Korrekturen einen Satz von Korrekturvariablen aufweisen. Bei verschiedenen Ausführungsformen kann das Durchführen, Erfassen und Senden durchgeführt werden, um eine Auslegungsmetrik für die erste Rechenplattform zu optimieren, wobei die Auslegungsmetrik einen ausgewählten einen aus Latenz, Durchsatz oder Leistungsbedarf umfasst. Bei verschiedenen Ausführungsformen kann das Durchführen, Erfassen und Senden durchgeführt werden, um ein oder mehrere Dienstgütekriterien für die erste Rechenplattform einzuhalten.
  • Bei verschiedenen Ausführungsformen kann die erste Rechenplattform eine drahtlose mobile Rechenplattform sein. Die zweite Rechenplattform kann eine Server-Recherplattform sein. Bei verschiedenen Ausführungsformen kann die erste Rechenplattform mit einer Energieverbrauchsrate arbeiten, die kleiner ist als eine Betriebsenergieverbrauchsrate der zweiten Rechenplattform.
  • Bei verschiedenen Ausführungsformen können Einrichtungen dazu vorgesehen sein, ausgewählte oder sämtliche Aspekte der verschiedenen oben beschriebenen Ausführungsformen durchzuführen. Bei verschiedenen Ausführungsformen können Herstellungsartikel Befehle umfassen, die dazu vorgesehen sind zu bewirken, dass eine Einrichtung in Reaktion auf das Ausführen der Befehle ausgewählte oder sämtliche Aspekte der verschiedenen oben in einer Übersicht dargestellten Ausführungsformen durchführt.
  • Die vorstehende Übersicht dient nur der Erläuterung und darf in keiner Weise als Einschränkung angesehen werden. Zusätzlich zu den erläuternden Aspekten, Ausführungsformen und Merkmalen, die oben beschrieben sind, werden weitere Aspekte, Ausführungsformen und Merkmale anhand der Zeichnungen und der nachstehenden detaillierten Beschreibung offensichtlich.
  • Kurze Beschreibung der Zeichnungen
  • Die oben genannten und weitere Merkmale der vorliegenden Offenlegung werden anhand der nachstehenden Beschreibung und der beiliegenden Patentansprüche in Zusammenhang mit den beiliegenden Zeichnungen offensichtlich. Unter Berücksichtigung der Tatsache, dass diese Zeichnungen nur einige Ausführungsformen nach der Offenlegung darstellen und daher nicht als Einschränkung des Schutzumfangs angesehen werden dürfen, wird die Offenlegung mit zusätzlicher Genauigkeit und Ausführlichkeit anhand der beiliegenden Zeichnungen beschrieben.
  • In den Zeichnungen gilt:
  • 1 zeigt eine auf Zustandsvariablen basierende Detektion und Korrektur von Fehlern in Zusammenhang mit einer beispielhaften Schaltung nach verschiedenen Ausführungsformen;
  • 2 zeigt zwei Prozessoren oder Rechenplattformen, die dazu vorgesehen sind, eine auf Zustandsvariablen basierende Detektion und Korrektur durchzuführen, nach verschiedenen Ausführungsformen;
  • 3 zeigt ein Verfahren der vorliegenden Offenlegung nach verschiedenen Ausführungsformen;
  • 4 zeigt weitere Aspekte der auf Zustandsvariablen basierenden Detektion und Korrektur von Fehlern in Zusammenhang mit einer weiteren beispielhaften Schaltung, einschließlich Retiming, nach verschiedenen Ausführungsformen;
  • 5 zeigt ein Rechensystem nach verschiedenen Ausführungsformen; und
  • 6 zeigt ein Rechenprogrammprodukt nach verschiedenen Ausführungsformen.
  • Detaillierte Beschreibung von Ausführungsformen
  • In der nachstehenden detaillierten Beschreibung wird auf die beiliegenden Zeichnungen Bezug genommen, die Teil der Beschreibung bilden. In den Zeichnungen bezeichnen gleiche Bezugszeichen typischerweise gleiche Bauteile, sofern im Zusammenhang nichts anderes vorgegeben ist. Die erläuternden Beispiele oder Ausführungsformen, die in der detaillierten Beschreibung, den Zeichnungen und den Patentansprüche dargestellt sind, dürfen nicht als Einschränkung angesehen werden. Es können andere Beispiele oder Ausführungsformen verwendet werden, und es können andere Änderungen durchgeführt werden, ohne dass dadurch vom Geist oder Umfang des hier vorgestellten Gegenstands abgewichen wird. Es ist offensichtlich, dass Aspekte dieser Offenlegung, wie allgemein hier beschrieben und in den Figuren dargestellt, in einer großen Vielzahl von unterschiedlichen Ausgestaltungen angeordnet, ersetzt, kombiniert und ausgelegt werden können, die alle ausdrücklich vorgesehen sind und Teil dieser Offenlegung bilden.
  • Diese Offenlegung betrifft unter anderem Verfahren, Einrichtungen, Systeme und Computerprogrammprodukte für eine auf Zustandsvariablen basierende Detektion und/oder Korrektur eines Fehlers. Bei verschiedenen Ausführungsformen können die offengelegten Techniken angewendet werden, um permanente Fehler zu korrigieren, die aufgrund von Schwankungen bei der Herstellung auftreten.
  • Die vorliegende Offenlegung umfasst eine auf Zustandsvariablen basierende Technik zur Fehlerdetektion, -diagnose, -charakterisierung und -korrektur. Bei verschiedenen Ausführungsformen kann ein Satz von Zustandsvariablen bei einem Abbruch einer Berechnung beobachtet, analysiert und korrigiert werden. Bei verschiedenen Ausführungsformen können die Beobachtung, Analyse und Korrektur so durchgeführt werden, dass die Richtigkeit (entweder absolut oder als Dienstgüte (quality of service – QoS) definiert) beibehalten wird, während relevante interessierende Metriken, wie z. B. Latenz, Durchsatz, Energieverbrauch, Detektion und Korrektur optimiert werden können.
  • In 1 ist eine auf Zustandsvariablen basierende Fehlerdetektion und Korrektur von Fehlern in Zusammenhang mit einer beispielhaften Schaltung 100 dargestellt, nach verschiedenen Ausführungsformen der vorliegenden Offenlegung. Die Schaltung 100 kann ein Biquad-basiertes Filter mit unbegrenztem Impulsansprechverhalten (infinite impulse response – IIR) 4. Ordnung sein, das bei einer Anwendung zur Verarbeitung digitaler Signale verwendet werden kann oder das in einem Digitalsignalprozessor vorhanden sein kann.
  • Wie dargestellt, umfasst die Schaltung 100 eine Anzahl von Addierern A1 bis A8, eine Anzahl von Multiplizierern mit dazugehörigen Koeffizienten C1 bis C8, die miteinander gekoppelt sind, und einen Eingang (In) und einen Ausgang (Out). Ferner kann bei den Ausführungsformen die Schaltung 100 außerdem mit einer Anzahl von Zustandselementen versehen sein, die zwischen Knotenpunkten n1 und n2, n2 und n3, n4 und n5 bzw. n5 und n6 angeordnet sind, um Zustandsvariable S1, S2, S3 und S4 nach einer separaten Iteration einer Operation zu erfassen.
  • Entsprechend kann die Schaltung 100 in einer Endlosschleife im Dauerbetrieb mit der Semantik eines synchronen Datenflusses arbeiten. Bei einigen Ausführungsformen gilt nach der Iteration #1 S1@1 = In1 + C1·S1@0 + C3@0 S2@1 = S1@0 SV1 = S1@1 + C2·S1@0 + C3·S2@0 S3@1 = SV2 + C5·S3@0 + C6·S4@0 S4@1 = S3@0 Out2 = S3@1 + C7·S3@0 + C8·S4@0
  • Nach der Iteration #2 gilt S1@2 = In2 + C1·S1@1 + S4@1 S2@2 = S1@1 SV2 = S1@2 + C2·S1@1 + C3·S2@1 S3@2 = SV2 + C5·S3@1 + C6·S4@1 S4@2 = S3@1 Out2 = S3@2 + C7·S3@1 + C8·S4@1 und so weiter.
  • Bei einigen Ausführungsformen kann es zum Überwachen der korrekten Funktion der Schaltung 100 oder zum Überwachen auf Fehler ausreichend sein, einen relativ kleinen und finiten Variablensatz zu überwachen (z. B. Variable, die mit S1, S2, S3, S4 und Out bezeichnet sind). Ferner können die gleichen Variablen zum Korrigieren eines willkürlich wählbaren Satzes von Fehlern verwendet werden. Ein beispielhafter Satz von Variablen S1, S2, S3, S4 und Out braucht nicht notwendigerweise der einzige Variablensatz zu sein, der zum Überwachen auf Fehler verwendet werden kann. Es kann ein alternativer Variablensatz gebildet und überwacht werden, z. B. die Variablen, die Ausgänge der Addierer A2, A4, A5, A8, S2, S4 und Out sind.
  • Im Sinne der vorliegenden Offenlegung können die Variablen S1, S2, S3, S4 und Out (oder A2, A4, A5, A8, S2, S4 und Out), die am Ende einer Iteration beobachtet werden, als Zustandsvariable bezeichnet werden, die bei einem Abbruch der Berechnung beobachtet werden. Die Zustandsvariablen eines Abbruchs können die Berechnung nach dem Abbruch definieren. Bei verschiedenen Ausführungsformen kann ein Abbruch ein vollständiger oder kompletter Abbruch oder ein teilweiser Abbruch sein. Ein vollständiger oder kompletter Abbruch umfasst sämtliche Zustandsvariablen, die die Berechnung nach dem Abbruch definieren, während ein teilweiser Abbruch einen Teilsatz sämtlicher Zustandsvariablen umfasst.
  • Ein vollständiger oder kompletter Abbruch weist die Eigenschaft auf, die bewirkt, dass der vollständige oder komplette Abbruch genügend Zustandsvariable zum Detektieren und Korrigieren zumindest eines wesentlichen Teils von Fehlern in der Berechnung umfasst. Der vollständige oder komplette Abbruch kann sich hinsichtlich der Granularität wesentlich unterscheiden. Beispielsweise umfasst ein trivialer Abbruch sämtliche Zustandsvariablen entweder in einer ungeradzahligen oder einer geradzahligen Iteration der Berechnung. Andere kleinere oder teilweise Abbrüche können von einem Teilsatz der Zustandsvariablen in einer Iteration gebildet werden. Es sei darauf hingewiesen, dass es nicht erforderlich zu sein braucht, dass die Zustandsvariablen Zustandselementen entsprechen, die in 1 von Rechtecken dargestellt sind. Beispielsweise können die Ausgänge von Additionen A1, A4, A5, A8 und Multiplikationen mit C1, C4, C5 und C6 einen solches Abbruch bilden.
  • Ein Beispiel für einen teilweisen Abbruch für die Schaltung 100 kann die Variablen S1 und S2 umfassen. Ein weiteres Beispiel für einen teilweisen Abbruch für das Schaltungsfilter 100 kann die Variablen SV, S3 und S4 umfassen. Es kann von besonderem Interesse sein, dass ein erster teilweiser Abbruch ausreichen kann, um einen großen Prozentsatz an Fehlern, die unbedingt korrigiert werden müssen, zu korrigieren. Insbesondere kann dies der Fall sein, wenn die Koeffizienten für Multiplikationen C1, C2, C3 und C4 wesentlich größer sind als die Koeffizienten C5, C6, C7 und C8.
  • Daher braucht es abhängig von den Zielsetzungen der Operationen nicht erforderlich zu sein, den Satz von Variablen eines vollständigen oder kompletten Abbruchs immer zu überwachen.
  • 2 zeigt zwei Prozessoren oder Rechenplattformen, die dazu vorgesehen sind, eine auf Zustandsvariablen basierende Detektion und Korrektur durchzuführen, nach verschiedenen Ausführungsformen. Wie dargestellt, weist ein Prozessor oder eine Rechenplattform 201 eine Schaltungsanordnung 202 auf, die eine Anzahl von Zustandselementen zum Durchführen verschiedener Berechnungen umfasst. Der Prozessor oder die Rechenplattform 201 weist ferner eine Steuereinrichtung 204 zum Konfigurieren der Schaltungsanordnung 202 mit einem Satz von Zustandselementen zum Durchführen einer Berechnung auf. Die Steuereinrichtung 204 ist vorgesehen zur Überwachung der Berechnung durch einen Satz von Zustandsvariablen, die den Zustandselementen entsprechen, weiche in der Konfiguration zum Durchführen einer Berechnung enthalten sind, z. B. wie oben anhand von 1 beschrieben. Ein Prozessor oder eine Rechenplattform 203 kann dazu vorgesehen sein, den Prozessor oder die Rechenplattform 201 zu ergänzen. Der Prozessor oder die Rechenplattform 201 kann durch Energie, Rechenressource, Auslegung oder Herstellung eingeschränkt sein, was möglicherweise zu einer größeren Wahrscheinlichkeit eines Fehlerauftritts führt. Dagegen kann der Prozessor oder die Rechenplattform 203 einen besseren Zugang zu Energie oder Rechenressourcen etc. haben und kann robuster gegenüber einem großen Satz von Fehlern sein.
  • Bei verschiedenen Ausführungsformen ist der Prozessor oder die Rechenplattform 201 dazu vorgesehen, Zustandsvariable bei einem Abbruch einer Berechnung zu erfassen und Zustandsvariable 205 zu dem Prozessor oder der Rechenplattform 203 zu senden. Wie oben beschrieben, kann der Abbruch ein vollständiger/kompletter oder ein teilweiser Abbruch der Berechnung sein. Bei verschiedenen Ausführungsformen analysiert der Prozessor oder die Rechenplattform 203 bei Empfang 206 die empfangenen Zustandsvariablen und detektiert 208 Fehler auf der Basis des Ergebnisses der Analyse. Bei verschiedenen Ausführungsformen diagnostiziert der Prozessor oder die Rechenplattform 203 ferner die Fehler, erstellt Korrekturen 210 zum Korrigieren eines oder mehrerer der detektierten Fehler und sendet 210 Korrekturen 207 zu dem Prozessor oder der Rechenplattform 201.
  • Bei verschiedenen Ausführungsformen können dem Prozessor oder der Rechenplattform 203 die gleichen Programm- oder Eingangsdaten zum Erzeugen von entsprechenden Zustandsvariablen beim Abbruch, die zur Fehlerdetektion und -korrektur vorgesehen sind, zugeführt werden. Bei verschiedenen Ausführungsformen können den Prozessoren oder Rechenplattformen 201 und 203 unabhängig voneinander oder separat die auszuführenden Programm- oder Eingangsdaten zugeführt werden. Bei verschiedenen Ausführungsformen analysiert der Prozessor oder die Rechenplattform 203 bei Empfang die empfangenen Variablenwerte und detektiert Fehler auf der Basis des Ergebnisses der Analyse. Bei verschiedenen Ausführungsformen kann der Prozessor oder die Rechenplattform 203 ferner die Fehler diagnostizieren, Korrekturen zum Korrigieren eines oder mehrerer der detektierten Fehler erstellen und Korrekturen 207 zu dem Prozessor oder der Rechenplattform 203 senden. Die Korrekturen 207 können den Prozessor oder die Rechenplattform 203 anweisen, wie die detektierten Fehler zu korrigieren sind.
  • Bei alternativen Ausführungsformen kann der Prozessor oder die Rechenplattform 203 den Prozessor oder die Rechenplattform 201 hinsichtlich seiner/ihrer Fehler charakterisieren, seine/ihre Ausführung simulieren oder emulieren und die erforderlichen Korrekturen zum Korrigieren von Fehlern senden. Die Korrekturen können für ein entsprechendes Programm entweder datenabhängig oder generisch sein.
  • Bei verschiedenen Ausführungsformen kann die vorliegende Offenlegung offline ausgeführt werden, bei anderen Ausführungsformen kann die vorliegende Offenlegung online ausgeführt werden. Bei einer online-Ausführungsform können die Daten unter Anwendung entweder einer verdrahteten oder einer drahtlosen Datenkommunikation zwischen den beteiligten Vorrichtungen übertragen werden.
  • Vor einer weiteren Beschreibung von Ausführungsformen der vorliegenden Offenlegung sei darauf hingewiesen, dass im Sinne der vorliegenden Patentschrift das, was als Fehler angesehen werden kann, nicht auf Fehler in den Ausführungseinheiten, in den relevanten Datenpfaden oder Datenpfaden selbst beschränkt ist, sondern Fehler bei verschiedenen Arten von Verbindungen, Speicherelementen, Taktschaltungsanordnungen, Leistungsverteilungsnetzwerken oder anderen Arten von Vorrichtungen umfassen kann, die an der Datenverarbeitung, -speicherung, -kommunikation oder -aufnahme beteiligt sein können.
  • Bei verschiedenen Ausführungsformen kann der Prozessor oder die Rechenplattform 201 eine drahtlose Rechenvorrichtung sein, wie z. B. ein Mobiltelefon, ein Mediaplayer, ein Laptop-Computer, ein persönlicher digitaler Assistent und so weiter. Bei dem Prozessor oder der Rechenplattform 203 andererseits kann es sich um einen geeigneten einen aus einer Anzahl von Servern handeln. Die zwei Prozessoren oder Rechenplattformen 201 und 203 können über verdrahtete und/oder drahtlose Netzwerke miteinander gekoppelt sein. Bei verschiedenen Ausführungsformen, insbesondere Echtzeit-Ausführungsformen mit Echtzeit-Betriebsanforderungen, können eine schnelle Kommunikation zwischen den Rechenplattformen und eine schnelle Verarbeitung ermöglicht werden, damit die Echtzeit-Betriebsanforderungen erfüllt werden können.
  • Bei einigen Ausführungsformen können detektierte Fehler transitiv oder permanent sein und können durch die Auslegung oder die Herstellung hervorgerufen werden. Detektierte Fehler können ferner bei verschiedenen Anwendungen auftreten, z. B. drahtlosen Schaltungen, Digitalsignalverarbeitungsschaltungen, Kodierungs-/Dekodierungsschaltungen, Komprimierungs-/Dekomprimierungsschaltungen, Verschlüsselungs-/Entschlüsselungsschaltungen. Bei verschiedenen Ausführungsformen kann, wie bei den vorstehenden Beschreibungen erwähnt, die Anzahl von Fehlerkorrekturen minimiert werden. Ein Vorteil bei der Anwendung einer minimalen Anzahl von Fehlerkorrekturen kann darin bestehen, dass die Korrekturen einfacher zu komprimieren und zu dekomprimieren sind.
  • Bei verschiedenen Ausführungsformen können Fehler detektiert und dann durch Verändern von Daten, die als Eingang zu einem in einem programmierbaren Prozessor ausgeführten Programm dienen können, oder durch Verändern von Daten, die von einem anwendungsspezifischen Prozessor verarbeitet werden können, korrigiert werden. Bei verschiedenen Ausführungsformen können die Rechenfehler durch Verändern einer so kleinen Anzahl von (Primär-)Eingängen wie möglich korrigiert werden oder im Wesentlichen korrigiert werden, wie von den QoS-Kriterien gefordert.
  • 3 zeigt ein Verfahren der vorliegenden Offenlegung nach verschiedenen Ausführungsformen. Bei den Ausführungsformen kann die offengelegte Methode bis zu vier Teilaufgaben umfassen, um z. B. den Energieverbrauch oder andere Zielsetzungen bezüglich der Auslegung oder des Betriebs (z. B. Stabilität gegenüber Soft Errors) zu verbessern:
    • (i) Senden einer Zustandsvariablen (301);
    • (ii) Detektion von Fehlern (302);
    • (iii) Bestimmen von Korrekturen (304);
    • (iv) Übertragen von Korrekturen (306); und
    • (v) Implementieren von Korrekturen (308).
  • Bei verschiedenen Ausführungsformen wird davon ausgegangen, dass sowohl die Programm- als auch die Eingangsdaten vorher bekannt sind. Daher können alle vier Teilaufgaben im Offline-Modus ausgeführt werden.
  • Bei verschiedenen Ausführungsformen können, wie oben beschrieben, die Fehlerdetektion und die Korrekturbestimmung (z. B. Teilaufgaben 302 und 304) durchgeführt werden, wenn wesentliche oder erhebliche Energie- oder Rechenressourcen vorhanden sind.
  • Bei verschiedenen Ausführungsformen können eine vollständige Richtigkeit oder fehlerfreie Ergebnisse erforderlich sein. Bei anderen Ausführungsformen, das heißt bei Anwendungen, wie z. B. Audio- und Video-Streams, Sensornetzwerken, Grafiken, Gamming und so weiter, kann es jedoch ausreichen, entweder eine objektive oder eine subjektive QoS-Metrik beizubehalten. Bei verschiedenen Ausführungsformen kann eine QoS-Metrik als eine von Fehlernormen ausgedrückt werden. Bei verschiedenen Ausführungsformen kann das Profil eines bestimmten Benutzers hinsichtlich einer bestimmten QoS-Metrik oder der maximalen Energie, die für eine spezielle Programmausführungsmetrik verbraucht wird, vorgegeben sein. Bei verschiedenen Ausführungsformen können QoS und verbrauchte Energie im Primär-/Dual-Framework bearbeitet werden, wobei eine der Metriken als eine Einschränkung definiert sein kann und die andere Metrik einer Optimierung unterzogen werden kann. Die vorliegende Offenlegung kann ferner zum Optimieren anderer Metriken, wie z. B. Latenz von Fehlerkorrektur(en), anwendbar sein.
  • Bei verschiedenen Ausführungsformen kann ein Ziel darin bestehen, eine Fehlerkorrektur zu schaffen, die einfach zu komprimieren und kostengünstig (z. B. niedriger Verbrauch von Energie oder Rechenressourcen) bei der Dekomprimierung ist. Mögliche Wege zum Erreichen dieses Ziels können das Auferlegen einer Einschränkung oder das Hinzufügen eines Terms bei einer Zielfunktion umfassen, wodurch Fehlerkorrekturen mittels des gleichen Werts durchgesetzt oder veranlasst werden. Ferner erfolgen bei verschiedenen Ausführungsformen Eingangs-Überkompensationen so, dass ein einziger Wechsel eines oder mehrerer Eingänge so durchgeführt werden kann, dass zwei oder mehr Ausgänge innerhalb einer bestimmten Toleranz gleichzeitig korrigiert werden.
  • Bei verschiedenen Ausführungsformen kann den Eingangswechseln für die Fehlerkorrektur in linearen Systemen besondere Aufmerksamkeit gewidmet werden. Bei diesen Systemtypen kann die nachweisebar optimale Korrektur hinsichtlich der korrigierten Anzahl von Variablen unter Anwendung der linearen Programmierung oder anderer Techniken zum Lösen von Systemen linearer Gleichungen, wie z. B. der Gaußschen Elimination oder der Einzelwertzerlegung, berechnet werden.
  • Bei verschiedenen Ausführungsformen wird die Fehlerkorrektur durch Überschreiben sämtlicher abgebrochener Zustandsvariablen, die falsch sind, mit ihren korrekten Werten durchgeführt. Bei verschiedenen Ausführungsformen kann der Abbruch mit der kleinsten Kardinalität zum Durchführen der Korrekturen festgestellt werden. Diese Ausführungsform kann ferner das Korrigieren von Zustandsvariablen, die stärker als der spezifizierte Wert abweichen, zum Ziel haben in einem Fall, bei dem eine QoS-Metrik vorgegeben ist. Bei einigen Ausführungsformen kann es wünschenswert sein, ein Rechenergebnis an einer Stelle zu korrigieren, an der ein Fehler möglicherweise diagnostiziert worden ist.
  • Bei verschiedenen Ausführungsformen können bei einer Fehlerkorrektur lineare Berechnungen oder Teile der linearen Berechnungen vorgegeben sein. Bei dieser Ausführungsform kann die kleinste Anzahl von Fehlerkorrekturen durch Lösen eines Systems von linearen Gleichungen errechnet werden. Jede Variable bei den Berechnungen kann eine Variable in dem entsprechenden Satz von linearen Gleichungen sein. Durch das Ergebnis jeder Operation kann eine Gleichung erstellt werden. Bei verschiedenen Ausführungsformen kann die lineare Programmierung angewendet werden, um die besten Stellen (Zwischen- oder Ausgangsvariable in der ursprünglichen Funktonalität) für Fehlerkorrekturen zu finden. Im Falle einer nicht linearen Berechnung kann bei verschiedenen Ausführungsformen die gleiche Vorgehensweise unter Anwendung von Methoden zum Lösen der Systeme von nicht linearen Gleichungen, einschließlich des Gauß-Jordan-Verfahrens oder nicht linearer Programmiertechniken, wie z. B. steilster Abfall, konjuguierter Gradient und Powel-Verfahren, durchgeführt werden.
  • Bei verschiedenen Ausführungsformen kann die Effizienz einer Methode zur Fehlerdetektion und -korrektur durch Verwendung eines Compilers und von Verhaltenssynthese-Transformationen, wie z. B. Retiming und Software- oder funktionales Pipelining, weiter verbessert werden. Ferner können andere Transformationen, einschließlich algebraischer Transformationen (z. B. Assoziativität, Distributivität) und Schleifentransformationen, zum Verringern der Anzahl von Zustandsvariablen bei einem Abbruch angewendet werden. Die anderen Transformationen können auch für andere Aufgaben, die für die auf Zustandsvariablen basierenden Techniken zur Fehlerdetektion, -diagnose, -charakterisierung und -korrektur erforderlich sind, angewendet werden.
  • Die auf Zustandsvariablen basierenden Techniken zur Fehlerdetektion, -diagnose, -charakterisierung und -korrektur können in Zusammenhang mit anderer Optimierungstechniken angewendet werden, bei denen eine bestimmte Auslegungs- oder Betriebsmetrik, wie z. B. Energieminimierung, vorgegeben ist. Beispielsweise können diese zum Verbessern der Durchführung von Managementtechniken bezüglich schwankender Versorgungs- und/oder der Schwellenspannungen angewendet werden.
  • Die auf Zustandsvariablen basierenden Techniken zur Fehlerdetektion, -diagnose, -charakterisierung und -korrektur können auch zum Korrigieren von Funktionalitäts- und Zeitsteuerungsfehlern, die durch Schwankungen bei der Herstellung hervorgerufen werden, angewendet werden, wodurch eine integrierte Schaltung mit einer bestimmten Auslegung hinsichtlich Eigenschaften von Transistoren und Verbindungen einzigartig wird. Bei der aktuellen Herstellung wird, damit integrierte Schaltungen relativ schnell bleiben und ein niedriger Betriebsleistungsbedarf, jedoch eine hohe Herstellungsleistung beibehalten werden, ein kleiner Teilsatz von Vorrichtungselementen häufig entweder fehlerhaft oder zu langsam. Bei verschiedenen Ausführungsformen kann die Funktionalität, die mittels anwendungsspezifischer Vorrichtungen oder auf einem programmierbaren Prozessor ausgeführter Programme implementiert werden, unter Anwendung der oben beschriebenen auf Zustandsvariablen basierenden Techniken zur Fehlerdetektion, -diagnose, -charakterisierung und -korrektur korrigiert werden. Bei verschiedenen Ausführungsformen kann ein Fehler unabhängig von den tatsächlichen Daten, die von der Funktionalität oder dem Programm verwendet werden, korrigiert werden. Bei verschiedenen Ausführungsformen kann bei der oben beschriebenen auf Zustandsvariablen basierenden Fehlerdetektion und -korrektur eine Schaltung vorgegeben sein, die Schwankungen bei der Herstellung ausgesetzt ist, wobei die Detektion und Korrektur auf eine gesamte Familie von Vorrichtungen oder Systemen, die die Schaltung enthalten, anwendbar ist.
  • 4 zeigt weitere Aspekte der auf Zustandsvariablen basierenden Detektion und Korrektur von Fehlern in Zusammenhang mit einer weiteren beispielhaften Schaltung, einschließlich Retiming, nach verschiedenen Ausführungsformen. Das Retiming kann angewendet werden, um die Fehlerdetektions-, -diagnose-, -charakterisierungs- und -korrekturtechniken, die in der vorliegenden Offenlegung beschrieben sind, weiter zu verbessern. Wie in 4 gezeigt, weist eine beispielhafte Schaltung 400 eine Anzahl von Addierern A1, A2 und A3 und eine Multiplikationsschaltung M1 auf, die miteinander gekoppelt sind, wie dargestellt. Bei verschiedenen Ausführungsformen kann die Schaltung 400 dazu vorgesehen sein, mit einer ersten Zeitsteuerungskonfiguration zu arbeiten. Für die Zeitsteuerungskonfiguration wird die Schaltung 400 mit einem Satz von Zustandsvariablen S1, S2, S3 und S4 konfiguriert, um das Erfassen und Überwachen der Zustandsvariablen zu vereinfachen.
  • Bei verschiedenen Ausführungsformen kann es bei einigen Schaltungen, wie z. B. der beispielhaften Schaltung 400, möglich sein, eine Schaltung so zu rekonfigurieren, dass sie mit einer anderen Zeitsteuerungskonfiguration arbeitet, insbesondere einer Konfiguration, bei der ein kleinerer Satz von Variablen überwacht werden kann, um eine QoS-Metrik oder eine andere Art von Metrik einzuhalten. Beispielsweise kann nach einer Retiming-Konfiguration der Satz von Zustandsvariablen für die Schaltung 400 auf einen kleineren Satz von Variablen, der S2 und S4 umfasst, verringert werden. Es sei darauf hingewiesen, dass bei diesem Beispiel die Out-Variable nicht in dem Satz von Variablen enthalten ist, daher kann es erforderlich sein, dass die Fehlerkorrektur in einer fortlaufenden oder nachfolgenden Iteration und nicht in der aktuellen Iteration erfolgt.
  • Zusätzlich zu der Rekonfigurierung der Zeitsteuerung kann bei einigen Ausführungsformen die Fehlerdetektion, -diagnose, -charakterisierung und -korrektur auch durch Pipelining durchgeführt werden, das durch Einbringen zusätzlicher Elemente in eine Berechnung implementiert werden kann, um den Durchsatz zu verbessern, die Energie zu verringern oder einen anderen Satz von Betriebs- und Auslegungsmetriken zu verbessern. Ähnlich wie bei der Zeitsteuerungskonfiguration besteht das Ziel darin, die zusätzlichen Elemente so einzubringen, dass der Satz von Zustandsvariablen, die überwacht werden müssen, verringert wird.
  • 5 zeigt ein Blockdiagramm mit Darstellung einer beispielhaften Rechenvorrichtung, die nach der vorliegenden Offenlegung ausgestaltet ist. Bei einer sehr einfachen Ausgestaltung 501 weist eine Rechenvorrichtung 500 typischerweise einen oder mehrere Prozessoren 510 und einen Systemspeicher 520 auf. Ein Speicherbus 530 kann Zur Kommunikation zwischen dem Prozessor 510 und dem Systemspeicher 520 verwendet werden.
  • Je nach der gewünschten Ausgestaltung kann es sich bei dem Prozessor 510 um jeden geeigneten Typ handeln, einschließlich, jedoch nicht beschränkt auf, einen Mikroprozessor (μP), einen Mikrocontroller (μC), einen Digitalsignalprozessor (DSP) oder jede geeignete Kombination daraus. Der Prozessor 510 kann einen oder mehrere Cache-Levels aufweisen, wie z. B. einen Level-eins-Cache 511 und einen Level-zwei-Cache 12, einen Prozessorkern 513 und Register 514. Ein beispielhafter Prozessorkern 513 kann eine arithmetisch-logische Einheit (arithmetic logic unit ALU), eine Gleitkommaeinheit (floating point unit FPU), einen Digitalsignalverarbeitungskern (DSP-Kern) oder jede geeignete Kombination daraus aufweisen. Eine beispielhafte Speichersteuereinrichtung 515 kann ebenfalls in Zusammenhang mit dem Prozessor 510 verwendet werden, oder bei einigen Implementierungen kann die Speichersteuereinrichtung 515 ein interner Bestandteil des Prozessors 510 sein.
  • Je nach der gewünschten Ausgestaltung kann es sich bei dem Systemspeicher 520 um jeden geeigneten Typ handeln, einschließlich, jedoch nicht beschränkt auf, einen flüchtigen Speicher (wie z. B. RAM), einen nicht flüchtigen Speicher (wie z. B. ROM, Flashspeicher etc.) oder jede geeignete Kombination daraus. Der Systemspeicher 520 kann ein Betriebssystem 521, eine oder mehrere Anwendungen 522 und Programmdaten 524 aufweisen. Die Anwendung 522 kann Programmierbefehle aufweisen, die eine Logik zum Implementieren der oben beschriebenen auf Zustandsvariablen basierenden Fehlerdetektion und -korrektur bereitstellt. Die Programmdaten 524 können die anwendbare Zustandsvariable und damit verwandte Werte aufweisen.
  • Die Rechenvorrichtung 500 kann weitere Merkmale oder Funktionalitäten und weitere Schnittstellen zum Vereinfachen der Kommunikation zwischen der Basisausgestaltung 501 und anderen erforderlichen Vorrichtungen und Schnittstellen aufweisen. Beispielsweise kann eine Bus-/Schnittstellensteuereinrichtung 540 verwendet werden, um die Kommunikation zwischen der Basisausgestaltung 501 und einer oder mehreren Datenspeichervorrichtungen 550 über einen Speicherschnittstellenbus 541 zu vereinfachen. Die Datenspeichervorrichtungen 550 können Wechselspeichervorrichtungen 551, Nichtwechsel-Speichervorrichtungen 552 oder eine Kombination daraus sein. Beispiele für Wechselspeicher- und Nichtwechsel-Speichervorrichtungen umfassen Magnetplattenvorrichtungen, wie z. B. Laufwerke für flexible Platten und Festplattenlaufwerke (hard-disk drives HDD), Laufwerke für optische Platten, wie z. B. Compact Disk-(CD-)Laufwerke oder Laufwerke für digitale vielseitige Disketten (DVD), Festkorperlaufwerke (solid state drives SSD) und Bandlaufwerke, um nur einige zu nennen. Beispiele für Computerspeichermedien können flüchtige und nicht flüchtige, Wechsel- und Nichtwechsel-Medien umfassen, die unter Anwendung eines geeigneten Verfahrens oder einer geeigneten Technologie zum Speichern von Informationen, wie z. B. computerlesbare Befehle, Datenstrukturen, Programmmodule oder andere Daten, implementiert werden.
  • Der Systemspeicher 520, der Wechselspeicher 551 und der Nichtwechel-Speicher 552 sind alle Beispiele für Computerspeichermedien. Computerspeichermedien umfassen, sind jedoch nicht beschränkt auf, RAM, ROM, EEPROM, Flashspeicher oder eine andere Speichertechnologie, CD-ROM, digitale vielseitige Disketten (DVD) oder einen anderen optischen Speicher, Magnetkassetten, Magnetband, Magnetplattenspeicher oder andere Magnetspeichervorrichtungen oder jedes andere geeignete Medium, das zum Speichern der gewünschten Informationen verwendet werden kann und auf das die Rechenvorrichtung 500 zugreifen kann. Ein solches geeignetes Computerspeichermedium kann Teil der Vorrichtung 500 sein.
  • Die Rechenvorrichtung 500 kann ferner einen Schnittstellenbus 542 zum Vereinfachen der Kommunikation von verschiedenen Schnittstellenvorrichtungen (z. B. Ausgabeschnittstellen, Peripheriegeräte-Schnittstellen und Kommunikationsschnittstellen) über die Bus-/Schnittstellensteuereinrichtung 540 zu der Basisausgestaltung 501 aufweisen. Beispielhafte Ausgabevorrichtungen 560 umfassen eine Grafikverarbeitungseinheit 561 und eine Audioverarbeitungseinheit 562, die dazu vorgesehen sein können, über einen oder mehrere A/V-Ports 563 mit verschiedenen externen Vorrichtungen, wie z. B. einer Anzeige oder Lautsprechern, zu kommunizieren. Beispielhafte Peripheriegeräte-Schnittstellen 570 umfassen eine Seriellschnittstellen-Steuereinrichtung 571 oder eine Parallelschnittstellen-Steuereinrichtung 572, die dazu vorgesehen sein können, über einen oder mehrere Eingabe-/Ausgabeports 573 mit externen Vorrichtungen, wie z. B. Eingabevorrichtungen (z. B. Tastatur, Maus, Pen, Spracherngabevorrichtung, Berührungseingabevorrichtung etc.) oder anderen Peripherievorrichtungen (z. B. Drucker, Scanner etc.), zu kommunizieren. Eine beispielhafte Kommunikationsvorrichtung 580 weist eine Netzwerksteuereinrichtung 581 auf, die dazu vorgesehen sein kann, eine Kommunikation mit einer oder mehreren anderen Rechenvorrichtungen 590 über eine Netzwerk-Kommunikationsverbindung via einen oder mehrere Kommunikationsports 582 zu vereinfachen.
  • Die Netzwerk-Kommunikationsverbindung kann ein Beispiel für ein Kommunikationsmedium sein. Kommunikationsmedien können typischerweise in computerlesbaren Befehlen, Datenstrukturen, Programmmodulen oder anderen Daten in einem modulierten Datensignal, wie z. B. einer Trägerwelle oder einem anderen Transportmechanismus, enthalten sein und können jedes geeignete Informationsliefermedium umfassen. Ein ”moduliertes Datensignal” kann ein Signal sein, bei dem ein oder mehrere seiner Charakteristiken so gesetzt oder geändert sind, dass Informationen in dem Signal kodiert sind. Als nicht als Einschränkung anzusehende Beispiele können Kommunikationsmedien verdrahtete Medien, wie z. B. ein verdrahtetes Netzwerk oder eine direkt verdrahtete Verbindung, und drahtlose Medien, wie z. B. akustische, Radiofrequenz-(RF-), Mikrowellen-, Infrarot-(IR-) und andere drahtlose Medien, sein. Der Ausdruck computerlesbares Medium, wie er hier verwendet wird, kann sowohl Speichermedien als auch Kommunikationsmedien umfassen.
  • Die Rechenvorrichtung 500 kann als Teil einer tragbaren (oder mobilen) Small-Form-Factor-Elektronikvorrichtung, wie z. B. eines Mobiltelefons, eines persönlichen Datenassistenten (PDA), einer persönlichen Mediaplayervorrichtung, einer drahtlosen WebWatch-Vorrichtung, einer persönlichen Headsetvorrichtung, einer anwendungsspezifischen Vorrichtung oder einer Hybridvorrichtung, die eine der vorgenannten Funktionen aufweisen, implementiert sein. Die Rechenvorrichtung 500 kann ferner als Personal Computer, einschließlich sowohl Laptop-Computer- als auch Nicht-Laptop-Computerausgestaltungen, implementiert sein.
  • 6 zeigt ein Blockdiagramm für ein beispielhaftes Computerprogrammprodukt 600 nach der vorliegenden Offenlegung. Bei einigen Beispielen umfasst, wie in 6 gezeigt, das Computerprogrammprodukt 600 ein signalführendes Medium 602, das auch Programmierbefehle 604 aufweisen kann. Die Programmierbefehle 604 können zum Melden und/oder Empfangen eines oder mehrerer aktueller Werte eines Satzes einer oder mehrerer Zustandsvariablen eines Abbruchs einer Berechnung, die auf einer anderen Rechenplattform unter Verwendung eines oder mehrerer Eingangsdaten durchgeführt wird, verwendet werden, wobei der Satz einer oder mehrerer Zustandsvariablen die Berechnung nach dem Abbruch definiert. Die Programmierbefehle 604 können ferner zum Detektieren eines oder mehrerer Fehler in der Berechnung, die auf der anderen Rechenplattform durchgeführt wird, zumindest teilweise auf der Basis des Satzes einer oder mehrerer Zustandsvariablen des Abbruchs der Berechnung vorgesehen sein. Ferner können die Programmierbefehle 604 zum Bestimmen eines Satzes einer oder mehrerer Korrekturen und zum Übertragen des Satzes einer oder mehrerer Korrekturen zu der anderen Rechenplattform vorgesehen sein. Bei einigen Ausführungsformen können die Programmierbefehle 604 ferner zum Implementieren eines Satzes von bereitgestellten Korrekturen vorgesehen sein.
  • Wie ferner in 6 gezeigt, kann bei einigen Beispielen das Computerprodukt 600 eines oder mehrere aus einem computerlesbaren Medium 606, einem beschreibbaren Medium 608 und einem Kommunikationsmedium 610 aufweisen. Die gestrichelten Kästchen um diese Elemente zeigen unterschiedliche Typen von Medien, die in dem signalführenden Medium 602 enthalten sind, jedoch nicht darauf beschränkt sind. Diese Medientypen können die Programmierbefehle 604 verteilen, so dass diese von einer Logik ausgeführt werden. Das computerlesbare Medium 606 und das beschreibbare Medium 608 können eine flexible Platte, ein Festplattenlaufwerk (HDD), eine Compact Disk (CD), eine digitale Videodiskette (DVD), ein digitales Band, einen Computerspeicher etc. umfassen, sind jedoch nicht darauf beschränkt. Das Kommunikationsmedium 610 kann ein digitales und/oder ein analoges Kommunikationsmedium (z. B. ein Faseroptikkabel, einen Wellenleiter, eine verdrahtete Kommunikationsverbindung, eine drahtlose Kommunikationsverbindung etc.) umfassen, ist jedoch nicht darauf beschränkt.
  • Der beanspruchte Gegenstand ist in seinem Umfang nicht auf die hier beschriebenen besonderen Implementierungen beschränkt. Beispielsweise können einige Implementierungen in der Hardware ausgeführt sein, wie sie z. B. zum Laufen auf einer Vorrichtung oder einer Kombination aus Vorrichtungen verwendet wird, während andere Implementierungen in der Software und/oder Firmware ausgeführt sein können. Gleichermaßen können, obwohl der beanspruchte Gegenstand in seinem Umfang nicht dahingehend eingeschränkt werden darf, einige Implementierungen ein oder mehrere Artikel, wie z. B. ein Speichermedium oder Speichermedien, umfassen. In diesen Speichermedien, wie z. B. CD-ROMs, Computerdisketten, Flashspeicher oder ähnliches, können Befehle gespeichert sein, die bei Ausführung durch ein System, wie z. B. ein Computersystem, eine Rechenplattform oder ein anderes System, eine Ausführung durch einen Prozessor entsprechend dem beanspruchten Gegenstand bewirken können, wie z. B. eine der oben beschriebenen Implementierungen. Als eine Möglichkeit kann eine Rechenplattform eine oder mehrere Verarbeitungseinheiten oder Prozessoren, eine oder mehrere Eingabe-/Ausgabevorrichtungen, wie z. B. eine Anzeige, eine Tastatur und/oder eine Maus, und einen oder mehrere Speicher, wie z. B. einen statischen Direktzugriffsspeicher, einen dynamischen Direktzugriffsspeicher, einen Flashspeicher und/oder eine Festplatte, aufweisen.
  • Es gibt nur noch einen kleinen Unterschied zwischen Hardware- und Softwareimplementierungen von Aspekten von Systemen; die Verwendung von Hardware oder Software kann im Allgemeinen (aber nicht immer, in bestimmten Zusammenhängen kann die Wahl zwischen Hardware und Software wichtig werden) eine Wahl der Auslegung sein, bei der Kompromisse zwischen Kosten und Effizienz gemacht werden müssen. Es kann verschiedene Mittel geben, mit denen Prozesse und/oder Systeme und/oder andere Technologien, die hier beschrieben sind, ausgeführt werden können (z. B. Hardware, Software und/oder Firmware), und das bevorzugte Mittel kann mit dem Zusammenhang variieren, in dem die Prozesse und/oder Systeme und/oder anderen Technologien verwendet werden. Beispielsweise kann dann, wenn ein Implementierer bestimmt, dass Geschwindigkeit und Genauigkeit Priorität haben, der Implementierer hauptsächlich das Mittel der Hardware und/oder Firmware wählen; wenn Flexibilität Priorität hat, kann der Implementierer eine hauptsächlich von der Software durchgeführte Implementierung wählen; oder der Implementierer kann alternativ eine Kombination aus Hardware, Software und/oder Firmware wählen.
  • Bei einigen Ausführungsformen können einige Teile des hier beschriebenen Gegenstands über anwendungsspezifische integrierte Schaltungen (Application Specific Integrated Circuits ASICs), feldprogrammierbare Gatearrays (Field Programmable Gate Arrays FPGAs), Digitalsignalprozessoren (DSPs) oder andere integrierte Formate implementiert werden. Kenner der Technik erkennen jedoch, dass einige Aspekte der hier offengelegten Ausführungsformen ganz oder teilweise auf äquivalente Weise in integrierte Schaltungen implementiert werden können, und zwar als ein oder mehrere Computerprogramme, die auf einem oder mehreren Computern laufen (z. B. als ein oder mehrere Programme, die auf einem oder mehreren Computersystemen laufen), als ein oder mehrere Programme, die auf einem oder mehreren Prozessoren laufen (z. B. als ein oder mehrere Programme, die auf einem oder mehreren Mikroprozessoren laufen), als Firmware oder als praktisch jede geeignete Kombination daraus und dass das Auslegen der Schaltungsanordnung und/oder das Schreiben des Codes für die Software und/oder Firmware anhand dieser Offenlegung in die Fähigkeiten eines Kenners der Technik fallen. Ferner erkennen Kenner der Technik, dass die Mechanismen des hier beschriebenen Gegenstands als ein Programmprodukt in einer Vielzahl von Formen verteilt werden können und dass eine der Erläuterung dienende Ausführungsform des hier beschriebenen Gegenstands unabhängig von dem speziellen Typ des signalführenden Mediums, das zur eigentlichen Durchführung der Verteilung verwendet wird, angewendet werden kann. Beispiele für ein signalführendes Medium umfassen, sind jedoch nicht beschränkt auf, folgende: ein beschreibbares Medium, wie z. B. eine Floppy Disk, ein Festplattenlaufwerk, eine Compact Disk (CD), eine digitale Videodiskette (DVD), ein digitales Band, ein Computerspeicher etc.; und ein Übertragungsmedium, wie z. B. ein digitales und/oder analoges Kommunikationsmedium (z. B. ein Faseroptikkabel, ein Wellenleiter, eine verdrahtete Kommunikationsverbindung, eine drahtlose Kommunikationsverbindung etc.).
  • Kenner der Technik erkennen, dass es gängige Praxis auf dem Sachgebiet ist, Vorrichtungen und/oder Prozesse in der hier dargelegten Art zu beschreiben und danach technische Methoden anzuwenden, um solche beschriebenen Vorrichtungen (z. B. Knotenpunkte, RF-Steuereinrichtung, Rechenvorrichtung etc.) und/oder Verfahren in Datenverarbeitungssysteme zu integrieren. Das heißt, dass zumindest ein Teil der hier beschriebenen Vorrichtungen und/oder Verfahren mittels eines sinnvollen Maßes an Experimenten in ein Datenverarbeitungssystem integriert werden können. Kenner der Technik erkennen, dass ein typisches Datenverarbeitungssystem im Allgemeinen ein oder mehrere aus einem Systemeinheitsgehäuse, einer Videoanzeigevorrichtung, einem Speicher, wie z. B. einem flüchtigen und einem nicht flüchtigen Speicher, Prozessoren, wie z. B. Mikroprozessoren und Digitalsignalprozessoren, Rechenentitäten, wie z. B. Betriebssystemen, Treibern, grafischen Benutzerschnittstellen und Anwendungsprogrammen, einer oder mehreren Interaktionsvorrichtungen, wie z. B. einem Touchpad oder einem Bildschirm, und/oder Steuersystemen, einschließlich Rückkopplungsschleifen und Steuermotoren (z. B. Rückführung zum Erfassen einer Position und/oder Geschwindigkeit; Steuermotoren zum Bewegen und/oder Einstellen von Bauteilen und/oder Mengen), umfasst. Ein typisches Datenverarbeitungssystem kann unter Verwendung jedes geeigneten handelsüblichen Bauteils, wie z. B. solchen, die typischerweise in Datenberechnungs/-kommunikations- und/oder Netzwerkberechnungs-/-kommunikationssystemen zu finden sind, implementiert werden.
  • Der hier beschriebene Gegenstand weist manchmal unterschiedliche Bauteile oder Elemente auf, die in unterschiedlichen anderen Bauteilen oder Elementen enthalten sind oder mit diesen verbunden sind. Es sei darauf hingewiesen, dass solche dargestellten Architekturen nur Beispiele sind und dass zahlreiche andere Architekturen implementiert werden können, die die gleiche Funktionalität erreichen. In einem konzeptuellen Sinne ist jede geeignete Anordnung von Bauteilen zum Erreichen der gleichen Funktionalität effektiv so ”verbunden”, dass die gewünschte Funktionalität erreicht wird. Somit können zwei Bauteile, die hier kombiniert sind, um eine spezielle Funktionalität zu erreichen, als so ”miteinander verbunden” angesehen werden, dass die gewünschte Funktionalität unabhängig von Architekturen oder intermedialen Bauteilen erreicht wird. Gleichermaßen können zwei so miteinander verbundene Bauteile auch als ”betriebsmäßig miteinander verbunden” oder ”betriebsmäßig miteinander gekoppelt” angesehen werden, um die gewünschte Funktionalität zu erreichen, und zwei Bauteile, die so miteinander verbunden werden können, können als ”betriebsmäßig miteinander koppelbar” angesehen werden, um die gewünschte Funktionalität zu erreichen. Besondere Beispiele für betriebsmäßig koppelbar umfassen, sind jedoch nicht beschränkt auf, physisch zusammensteckbare und/oder physisch miteinander interagierende Bauteile und/oder drahtlos miteinander interagierbare und/oder drahtlos miteinander interagierende Bauteile und/oder logisch miteinander interagierende und/oder logisch miteinander interagierbare Bauteile.
  • Bezüglich der Verwendung von im Wesentlichen jedes hier im Plural und/oder im Singular stehenden Ausdrucks können Kenner der Technik diese Ausdrücke vom Plural in den Singular oder vom Singular in den Plural umsetzen, wie es in dem jeweiligen Zusammenhang und/oder bei der jeweiligen Anwendung sachgemäß ist. Die verschiedenen Umsetzungen von Singular/Plural können hier aus Gründen der Klarheit ausdrücklich dargelegt werden.
  • Es ist für Kenner der Technik offensichtlich, dass im Allgemeinen hier und insbesondere in den Patentansprüchen (z. B. Hauptteile der beiliegenden Patentansprüche) verwendete Ausdrücke im Allgemeinen als ”offene” Ausdrücke gemeint sind (z. B. muss der Ausdruck ”einschließlich” als ”einschließlich, aber nicht beschränkt auf” interpretiert werden, muss der Ausdruck ”weist auf” als ”weist zumindest auf” interpretiert werden, muss der Ausdruck ”umfasst” als ”umfasst, ist aber nicht beschränkt auf” interpretiert werden etc.). Es ist ferner für Kenner der Technik offensichtlich, dass dann, wenn eine bestimmte Anzahl einer Nennung im Oberbegriff beabsichtigt ist, eine solche Absicht ausdrücklich in dem Patentanspruch genannt wird, und wenn eine solche Nennung fehlt, ist eine solche Absicht nicht vorhanden. Beispielsweise können als Hilfe zum Verständnis die folgenden beiliegenden Patentansprüche die Verwendung der einleitenden Phrasen ”mindestens ein” und ”ein oder mehr” zur Einleitung von Patentansprüchen enthalten. Die Verwendung solcher Phrasen darf jedoch nicht dahingehend ausgelegt werden, dass impliziert wird, dass durch die Einleitung eines Patentanspruchs durch den unbestimmten Artikel ”ein” oder ”eine” ein bestimmter Patentanspruch, der einen solchen einleitenden Teil aufweist, auf Erfindungen beschränkt ist, die nur eine solche Nennung umfassen, selbst wenn der gleiche Patentanspruch die einleitenden Phrasen ”ein oder mehr” oder ”mindestens ein” und unbestimmte Artikel, wie ”ein” oder ”eine” aufweist (z. B. muss ”ein” und/oder ”eine” typischerweise so interpretiert werden, das ”mindestens ein” oder ”ein oder mehr” gemeint ist); das Gleiche gilt für die Verwendung von bestimmten Artikeln, die in dem Oberbegriff von Patentansprüchen verwendet werden. Ferner ist es selbst dann, wenn eine bestimmte Anzahl in einem Oberbegriff eines Patentanspruchs ausdrücklich genannt ist, für Kenner der Technik offensichtlich, dass diese Nennung typischerweise dahingehen zu interpretieren ist, dass sie mindestens die genannte Anzahl bedeutet (z. B. bedeutet die bloße Nennung von ”zwei Nennungen” ohne andere Modifikatoren typischerweise mindestens zwei Nennungen oder zwei oder mehr Nennungen). Ferner ist in denjenigen Fällen, in denen eine Gepflogenheit analog zu ”A, B und/oder C etc.” verwendet wird, eine solche Konstruktion im Allgemeinen in dem Sinne gemeint, in dem Kenner der Technik die Gepflogenheit verstehen würden (z. B. würde ”ein System, das A, B und/oder C aufweist” Systeme umfassen, aber nicht auf solche beschränkt sein, die A allein, B allein, C allein, A und B zusammen, A und C zusammen, B und C zusammen und/oder A, B und C zusammen etc. aufweisen). In denjenigen Fällen, in denen eine Gepflogenheit analog zu ”A, B und/oder C etc.” verwendet wird, ist eine solche Konstruktion im Allgemeinen in dem Sinne gemeint, in dem Kenner der Technik diese Gepflogenheit verstehen würden (z. B. würde ”ein System, das A, B und/oder C aufweist” Systeme umfassen, aber nicht auf diese beschränkt sein, die A allein, B allein, C allein, A und B zusammen, A und C zusammen, B und C zusammen und/oder A, B und C zusammen etc. aufweisen). Es ist ferner für Kenner der Technik offensichtlich, dass praktisch jedes disjunktive Wort und/oder jede disjunktive Phrase, das/die zwei oder mehr alternative Ausdrücke präsentiert, ganz gleich, ob in der Beschreibung, den Patentansprüchen oder den Zeichnungen, so verstanden werden muss, dass die Möglichkeiten des Einschließens eines dieser Ausdrücke, eines der beiden Ausdrücke oder beider Ausdrücke in Betracht gezogen wird. Beispielsweise wird die Phrase ”A oder B” so verstanden, dass sie die Möglichkeiten von ”A” oder ”B” oder ”A und B” umfasst.
  • Obwohl bestimmte Ausführungsformen hier zur Beschreibung der bevorzugten Ausführungsform dargestellt und beschrieben worden sind, ist es für Kenner der Technik offensichtlich, dass eine Vielzahl von alternativen und/oder äquivalenten Ausführungsformen oder Implementierungen, welche dazu vorgesehen sind, die gleichen Ziele zu erreichen, die gezeigten und beschriebenen Ausführungsformen ersetzen können, ohne dass dadurch vom Schutzumfang der Offenlegung abgewichen wird. Kenner der Technik erkennen, dass Ausführungsformen der Offenlegung in einer großen Vielzahl von Arten implementiert werden können, Diese Anmeldung deckt sämtliche Anpassungen und Varianten der hier beschriebenen Ausführungsformen ab. Daher ist es offenkundig, dass Ausführungsformen der Offenlegung nur durch die Patentansprüche und deren Äquivalente eingeschränkt werden.

Claims (30)

  1. Verfahren, das umfasst: Empfangen durch eine erste Rechenplattform eines oder mehrerer aktueller Werte eines Satzes eines oder mehrerer Zustandsvariablen eines Abbruchs einer Berechnung, die unter Verwendung eines oder mehrerer Eingangsdaten auf einer zweiten Rechenplattform durchgeführt wird, wobei der Satz eines oder mehrerer Zustandsvariablen die Berechnung nach dem Abbruch definiert; und Detektieren durch die erste Rechenplattform eines oder mehrerer Fehler der Berechnung, die auf der zweiten Rechenplattform durchgeführt wird, wobei das Detektieren zumindest teilweise auf dem Satz eines oder mehrerer Zustandsvariablen des Abbruchs der Berechnung basiert.
  2. Verfahren nach Anspruch 1, das ferner umfasst: Bestimmen durch eine dritte Rechenplattform eines Satzes einer oder mehrerer Korrekturen; und Liefern durch die dritte Rechenplattform des Satzes einer oder mehrerer Korrekturen zu der zweiten Rechenplattform; wobei die erste und die dritte Rechenplattform entweder die gleichen oder unterschiedliche Rechenplattformen sind.
  3. Verfahren nach Anspruch 1, bei dem das Bestimmen das Lösen eines Systems von linearen Gleichungen mit einer Vielzahl von Variablen umfasst, wobei eine separate Zustandsvariable aus der einen oder den mehreren Zustandsvariablen einer Variablen für das System von linearen Gleichungen entspricht.
  4. Verfahren nach Anspruch 1, das ferner umfasst, dass die erste Rechenplattform die gleiche Berechnung auf der ersten Rechenplattform unter Verwendung der gleichen einen oder mehreren Eingangsdaten durchführt und dass die erste Rechenplattform einen entsprechenden einen oder mehrere aktuelle Werte des Satzes eines oder mehrerer Zustandsvariablen eines entsprechenden Abbruchs der Berechnung, die auf der ersten Rechenplattform durchgeführt wird, erfasst.
  5. Verfahren nach Anspruch 4, bei dem das Detektieren das Vergleichen des einen oder der mehreren aktuellen Werte des Satzes eines oder mehrerer Zustandsvariablen der Abbrüche der Berechnungen, die auf der zweiten bzw. der ersten Rechenplattform durchgeführt werden, umfasst.
  6. Verfahren nach Anspruch 1, bei dem der Abbruch einen vollständigen Abbruch einschließlich sämtlicher Zustandsvariablen, die die Berechnung nach dem Abbruch definieren, umfasst.
  7. Verfahren nach Anspruch 1, bei dem der Abbruch einen teilweisen Abbruch einschließlich eines Teilsatzes sämtlicher Zustandsvariablen, die die Berechnung nach dem Abbruch definieren, umfasst.
  8. Verfahren nach Anspruch 1, bei dem die Berechnung unter einer ersten Zeitsteuerungskonfiguration der zweiten Rechenplattform durchgeführt wird und das Verfahren ferner das Wiederholen des Empfangens, Detektierens, Bestimmens und Lieferns für die Berechnung, die unter einer zweiten Zeitsteuerungskonfiguration der zweiten Rechenplattform durchgeführt wird, umfasst, wobei die erste und die zweite Zeitsteuerungskonfiguration unterschiedlich sind.
  9. Verfahren nach Anspruch 8, bei dem die Berechnung auf der zweiten Rechenplattform mit einem ersten Satz von Zustandselementen durchgeführt wird und das Verfahren ferner das Wiederholen des Empfangens, Detektierens, Bestimmens und Lieferns für die Berechnung, die auf der zweiten Rechenplattform mit einem zweiten Satz von Zustandselementen durchgeführt wird, umfasst, wobei die ersten und die zweiten Zustandselemente unterschiedlich sind und wobei der erste und der zweite Satz von Zustandselementen einem ersten und einem zweiten Satz von Zustandsvariablen entsprechen.
  10. Verfahren nach Anspruch 1, bei dem Berechnung auf der zweiten Rechenplattform mit einem ersten Satz von Zustandselementen durchgeführt wird und das Verfahren ferner das Wiederholen des Empfangens, Detektierens, Bestimmens und Lieferns für die Berechnung, die auf der zweiten Rechenplattform mit einem zweiten Satz von Zustandselementen durchgeführt wird, umfasst, wobei die ersten und die zweiten Zustandselemente unterschiedlich sind und wobei der erste und der zweite Satz von Zustandselementen einem ersten und einem zweiten Satz von Zustandsvariablen entsprechen.
  11. Verfahre, das umfasst: Durchführen durch eine erste Rechenplattform einer Berechnung unter Verwendung eines oder mehrerer Eingangsdaten; Erfassen durch die erste Rechenplattform eines oder mehrerer aktueller Werte eines Satzes einer oder mehrerer Zustandsvariablen eines Abbruchs der Berechnung, wobei der Satz einer oder mehrerer Zustandsvariablen die Berechnung nach dem Abbruch definiert; und Senden des einen oder der mehreren erfassten aktuellen Werte des Satzes einer oder mehrerer Zustandsvariablen des Abbruchs der Berechnung von der ersten Rechenplattform zu einer zweiten Rechenplattform, damit die zweite Rechenplattform einen oder mehrere Fehler der Berechnung, die auf der ersten Rechenplattform durchgeführt wird, detektiert und Korrekturen für den einen oder die mehreren detektierten Fehler zu der ersten Rechenplattform liefert.
  12. Verfahren nach Anspruch 11, bei dem der Abbruch ein vollständiger Abbruch ist, der sämtliche Zustandsvariablen umfasst, die die Berechnung nach dem Abbruch definieren.
  13. Verfahren nach Anspruch 11, bei dem der Abbruch ein teilweiser Abbruch ist, der einen Teilsatz sämtlicher Zustandsvariablen umfasst, die die Berechnung nach dem Abbruch definieren.
  14. Verfahren nach Anspruch 11 bei dem die Berechnung unter einer ersten Zeitsteuerungskonfiguration der zweiten Rechenplattform durchgeführt wird und das Verfahren ferner das Wiederholen des Durchführens, Erfassens und Sendens für die Berechnung umfasst, die unter einer zweiten Zeitsteuerungskonfiguration der zweiten Rechenplattform durchgeführt wird, wobei die erste und die zweite Zeitsteuerungskonfiguration unterschiedliche Zeitsteuerungskonfigurationen sind.
  15. Verfahren nach Anspruch 11, bei dem die Berechnung auf der ersten Rechenplattform mit einem ersten Satz von Zustandselementen durchgeführt wird und das Verfahren ferner das Wiederholen des Durchführens, Erfassens und Sendens für die Berechnung umfasst, die auf der ersten Rechenplattform mit einem zweiten Satz von Zustandselementen durchgeführt wird, wobei die ersten und die zweiten Zustandselemente unterschiedlich sind.
  16. Verfahren nach Anspruch 11, das ferner das Empfangen der Korrekturen für einen oder mehrere der detektierten Fehler umfasst, wobei die Korrekturen einen Satz von Korrekturvariablen umfassen.
  17. Verfahren nach Anspruch 11, bei dem das Durchführen, Erfassen und Senden durchgeführt werden, um eine Auslegungsmetrik für die erste Rechenplattform zu optimieren, wobei die Auslegungsmetrik einen ausgewählten einen aus Latenz, Durchsatz oder Leistungsbedarf umfasst.
  18. Verfahren nach Anspruch 11, bei dem das Durchführen, Erfassen und Senden durchgeführt werden, um eine oder mehrere Dienstgütekriterien für die erste Rechenplattform einzuhalten.
  19. Verfahren nach Anspruch 11, bei dem die erste Rechenplattform eine drahtlose mobile Rechenplattform ist, während die zweite Rechenplattform eine Server-Rechenplattform ist.
  20. Verfahren nach Anspruch 11, bei dem die erste Rechenplattform mit einer Energieverbrauchsrate arbeitet, die kleiner ist als eine Betriebsenergieverbrauchsrate der zweiten Rechenplattform.
  21. Einrichtung, die umfasst: einen Prozessor zum Ausführen von Programmierbefehlen; und eine Speichervorrichtung, die mit dem Prozessor gekoppelt ist und in der eine Vielzahl von Programmierbefehlen gespeichert ist, die von dem Prozessor auszuführen sind, wobei die Programmierbefehle bei Ausführung durch den Prozessor die Einrichtung in die Lage versetzen einen oder mehrere aktuelle Werte eines Satzes einer oder mehrerer Zustandsvariablen eines Abbruchs einer Berechnung zu empfangen, die auf einer anderen Rechenplattform unter Verwendung eines oder mehrerer Eingangsdaten durchgeführt wird, wobei der Satz einer oder mehrerer Zustandsvariablen die Berechnung nach dem Abbruch definiert; und einen oder mehrere Fehler der Berechnung, die auf der zweiten Rechenplattform durchgeführt wird, zu detektieren, wobei das Detektieren zumindest teilweise auf dem Satz eines oder mehrerer Zustandsvariablen des Abbruchs der Berechnung, die auf der anderen Rechenplattform durchgeführt wird, basiert.
  22. Einrichtung nach Anspruch 21, bei der die Programmierbefehle ferner die Einrichtung in die Lage versetzen: einen Satz einer oder mehrerer Korrekturen zu bestimmen; und den Satz einer oder mehrerer Korrekturen zu der anderen Rechenplattform zu liefern.
  23. Einrichtung nach Anspruch 22, bei der die Programmierbefehle dazu vorgesehen sind, die Einrichtung in die Lage zu versetzen, ein Bestimmen durch Lösen eines Systems von linearen Gleichungen mit einer Vielzahl von Variablen durchzuführen, wobei eine separate Zustandsvariable aus der einen oder den mehreren Zustandsvariablen einer Variablen für das System von linearen Gleichungen entspricht.
  24. Vorrichtung nach Anspruch 21, bei der die Einrichtung entweder einen besseren Zugang zur Energie hat oder mehr Rechenressourcen aufweist als die andere Rechenplattform.
  25. Einrichtung, die umfasst: eine Schaltungsanordnung zum Durchführen einer Berechnung unter Verwendung eines oder mehrerer Eingangsdaten, die ein oder mehrere Zustandselemente zum Erfassen eines oder mehrerer aktueller Werte der Berechnung zum Liefern eines Satzes einer oder mehrerer Zustandsvariablen eines Abbruchs der Berechnung aufweist, wobei der Satz einer oder mehrerer Zustandsvariablen die Berechnung nach dem Abbruch definiert; und eine Steuereinrichtung, die mit der Schaltungsanordnung gekoppelt ist und dazu vorgesehen ist, die erfassten einen oder mehreren aktuellen Werte des Satzes einer oder mehrerer Zustandsvariablen des Abbruchs der Berechnung von der Einrichtung zu einer anderen Rechenplattform zu senden, damit die andere Rechenplattform einen oder mehrere Fehler der Berechnung detektiert, die in der Einrichtung durchgeführt wird, und damit die andere Rechenplattform Korrekturen für einen oder mehrere der detektierten Fehler zu der Einrichtung liefert.
  26. Einrichtung nach Anspruch 25, bei der die Steuereinrichtung ferner dazu vorgesehen ist, die Schaltungsanordnung zum Durchführen der Berechnung in einer ersten Zeitsteuerungskonfiguration zu konfigurieren und die Schaltungsanordnung zum erneuten Durchführen der Berechnung in einer zweiten Zeitsteuerungskonfiguration zu konfigurieren, wobei die erste und die zweite Zeitsteuerungskonfiguration unterschiedliche Zeitsteuerungskonfigurationen sind.
  27. Einrichtung nach Anspruch 25, bei der die Steuereinrichtung ferner dazu vorgesehen ist, die Schaltungsanordnung zum Durchführen der Berechnung mit einem ersten Satz von Zustandselementen zu konfigurieren und die Schaltungsanordnung zum erneuten Durchführen der Berechnung mit einem zweiten Satz von Zustandselementen zu konfigurieren, wobei der erste und der zweite Satz von Zustandselementen unterschiedlich sind und der erste und der zweite Satz von Zustandselementen einem ersten und einem zweiten Satz von Zustandsvariablen entsprechen.
  28. Einrichtung nach Anspruch 25, bei der die Einrichtung eine drahtlose mobile Rechenplattform ist und die andere Rechenplattform eine Server-Rechenplattform ist.
  29. Herstellungsartikel, der umfasst: ein computerlesbares Medium; und Programmierbefehle, die in dem computerlesbaren Medium gespeichert sind und die dazu vorgesehen sind, eine Rechenplattform zu programmieren und in die Lage zu versetzen: einen oder mehrere aktuelle Werte eines Satzes einer oder mehrerer Zustandsvariablen eines Abbruchs einer Berechnung zu empfangen, die auf einer anderen Rechenplattform unter Verwendung eines oder mehrerer Eingangsdaten durchgeführt wird, wobei der Satz einer oder mehrerer Zustandsvariablen die Berechnung nach dem Abbruch definiert; einen oder mehrere Fehler der Berechnung, die auf der anderen Rechenplattform durchgeführt wird, zu detektieren, wobei das Detektieren zumindest teilweise auf dem Satz eines oder mehrerer Zustandsvariablen des Abbruchs der Berechnung basiert; einen Satz einer oder mehrerer Korrekturen zu bestimmen; und den Satz einer oder mehrerer Korrekturen zu der anderen Rechenplattform zu liefern.
  30. Herstellungsartikel, der umfasst: ein computerlesbares Medium; und Programmierbefehle, die in dem computerlesbaren Medium gespeichert sind und die dazu vorgesehen sind, eine Rechenplattform zu programmieren und in die Lage zu versetzen: die Rechenplattform so zu konfigurieren, dass sie eine Berechnung mit einer Anordnung von Zustandselementen durchführt; einen oder mehrere aktuelle Werte der Zustandselemente zu erfassen, um einen Satz eines oder mehrerer Zustandsvariablenwerte eines Abbruchs der Berechnung, die unter der konfigurierten Zustandselementeanordnung durchgeführt wird, zu liefern, wobei der Satz einer oder mehrerer Zustandsvariablen die Berechnung nach dem Abbruch definiert; und den einen oder die mehreren erfassten aktuellen Werte des Satzes einer oder mehrerer Zustandsvariablen des Abbruchs der Berechnung zu der anderen Rechenplattform zu senden, damit die andere Rechenplattform einen oder mehrere Fehler der Berechnung, die auf der Rechenplattform unter der konfigurierten Zustandselementeanordnung durchgeführt wird, detektiert, und zum Empfangen von Korrekturen für einen oder mehrere der detektierten Fehler von der anderen Rechenplattform.
DE112010001971T 2009-05-11 2010-05-04 Auf Zustandsvariablen basierende Detektion und/oder Korrektur einesFehlers Ceased DE112010001971T5 (de)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US12/463,977 US8145943B2 (en) 2009-05-11 2009-05-11 State variable-based detection and correction of errors
US12/463,977 2009-05-11
PCT/US2010/033609 WO2010132242A1 (en) 2009-05-11 2010-05-04 State variable-based detection and/or correction of error

Publications (1)

Publication Number Publication Date
DE112010001971T5 true DE112010001971T5 (de) 2012-12-20

Family

ID=43063077

Family Applications (1)

Application Number Title Priority Date Filing Date
DE112010001971T Ceased DE112010001971T5 (de) 2009-05-11 2010-05-04 Auf Zustandsvariablen basierende Detektion und/oder Korrektur einesFehlers

Country Status (5)

Country Link
US (1) US8145943B2 (de)
KR (1) KR101312551B1 (de)
CN (1) CN102460395B (de)
DE (1) DE112010001971T5 (de)
WO (1) WO2010132242A1 (de)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8661443B2 (en) 2009-04-17 2014-02-25 Empire Technology Development, Llc Scheduling and/or organizing task execution for a target computing platform
US8255743B2 (en) * 2009-05-11 2012-08-28 Empire Technology Development Llc Error detection and/or correction through coordinated computations
DE102016208862A1 (de) * 2016-05-23 2017-11-23 Robert Bosch Gmbh Verfahren und Vorrichtung zum Beobachten interner Daten eines Steuergeräts
CN108984628B (zh) * 2018-06-20 2020-01-24 北京达佳互联信息技术有限公司 内容描述生成模型的损失值获取方法及装置

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5553000A (en) * 1992-11-05 1996-09-03 Nec Usa, Inc. Eliminating retiming bottlenecks to improve performance of synchronous sequential VLSI circuits
US5550749A (en) * 1994-06-03 1996-08-27 Nec Usa, Inc. High level circuit design synthesis using transformations
US6128656A (en) * 1998-09-10 2000-10-03 Cisco Technology, Inc. System for updating selected part of configuration information stored in a memory of a network element depending on status of received state variable
US6643815B1 (en) * 2000-03-30 2003-11-04 International Business Machines Corporation Data compression over communications links which are exposed to occasional errors
US7680635B2 (en) * 2003-09-19 2010-03-16 Hewlett-Packard Development Company, L.P. Configuration system and method
US7606695B1 (en) * 2003-09-30 2009-10-20 Sun Microsystems, Inc. Self-checking simulations using dynamic data loading
US7707474B2 (en) * 2004-08-02 2010-04-27 Nokia Corporation Outer loop power control with transport block diversity transmission
US7694208B2 (en) * 2005-12-20 2010-04-06 Quantum Corporation Error correction algorithm using interleaved parity check and Reed-Solomon code
US7409631B2 (en) * 2005-12-30 2008-08-05 Intel Corporation Error-detection flip-flop
US7492293B2 (en) * 2007-03-28 2009-02-17 Olympus Communication Technology Of America, Inc. Variable rate analog-to-digital converter
CN100479311C (zh) * 2007-05-08 2009-04-15 魏其萃 高精度平均输出电流控制的恒定关断时间控制方案

Also Published As

Publication number Publication date
WO2010132242A1 (en) 2010-11-18
KR101312551B1 (ko) 2013-09-30
US20100287409A1 (en) 2010-11-11
US8145943B2 (en) 2012-03-27
CN102460395B (zh) 2015-03-04
CN102460395A (zh) 2012-05-16
KR20120011075A (ko) 2012-02-06

Similar Documents

Publication Publication Date Title
CN107251024B (zh) 用于诊断执行问题的数据库查询执行跟踪和数据生成
US7398429B2 (en) System and method for tracing and logging for software module
DE102014116367A1 (de) Verwaltung von leistungsstufen von informationstechnologiesystemen
DE102017125256A1 (de) Suche nach einer neuronalen Architektur
DE60017457T2 (de) Verfahren zur isolierung eines fehlers in fehlernachrichten
DE102016221813A1 (de) Datenreplikation auf der Grundlage des Verlaufs des Komprimierungsverhältnisses
DE112016005290T5 (de) Anomliefusion auf temporalen kausalitätsgraphen
DE102016011905A1 (de) Bestimmen der Qualität einer Zusammenfassung eines Multimediainhalts
DE112013007300T5 (de) Speichersysteme mit adaptiver Löschcode-Generierung
DE112012005051T5 (de) Korrekturbereitstellungssystem
DE112019001799T5 (de) Erweitertes formatieren von binären gleitkommazahlen mit geringerer genauigkeit
EP2799983B1 (de) Flexible Aufteilung der I/O Kanäle einer Hardware Komponente
DE112013000485T5 (de) Automatische Synthese von Einheitentests für Sicherheitstests
DE112018004142T5 (de) Proaktive verringerung und/oder minderung eines spannungseinbruchs in einem prozessorkern
DE112017003884T5 (de) Benutzerschnittstelle für Protokollabfragen
DE102013213047A1 (de) System, Verfahren und Computerprogrammprodukt zum Testen von Vorrichtungsparametern
DE112010001971T5 (de) Auf Zustandsvariablen basierende Detektion und/oder Korrektur einesFehlers
DE202016008043U1 (de) Vorrichtung zum Erzeugen, Erfassen, Speichern und Laden von Debugging-Informationen für gescheiterte Test-Skripts
DE102012204167A1 (de) Vorauslaufende genäherte Berechnungen
DE112013000751T5 (de) Datenverarbeitung, Datensammlung
DE10038499A1 (de) Verfahren und System für die verbesserte Entwicklungsprüfung mittels angepasster Ablaufverfolgung
DE102015009800A1 (de) Automatisiertes System zur sicheren Strategieanwendung
DE112011104830T5 (de) Ein Verfahren zum Sicherstellen der Programmkorrektheit unter Verwendung von feingranularem spekulativem Hardwareausführen
DE112011100168T5 (de) Erfassen von Diagnosedaten in einer Datenverarbeitungsumgebung
DE202016008006U1 (de) Generierung von Integrationstests im Kleinen

Legal Events

Date Code Title Description
R012 Request for examination validly filed
R082 Change of representative

Representative=s name: GRUENECKER PATENT- UND RECHTSANWAELTE PARTG MB, DE

Representative=s name: GRUENECKER, KINKELDEY, STOCKMAIR & SCHWANHAEUS, DE

R016 Response to examination communication
R002 Refusal decision in examination/registration proceedings
R003 Refusal decision now final