-
Ausführungsbeispiele gemäß der Erfindung beziehen sich auf das Gebiet der Fehlerkorrektur und Fehlererkennung digitaler binärer Signale und insbesondere auf eine Vorrichtung und ein Verfahren zum Bestimmen einer Position eines 1-Bit-Fehlers in einer codierten Bitsequenz, einer Vorrichtung und einem Verfahren zum Korrigieren eines 1-Bit-Fehlers in einer codierten Bitsequenz und einem Decodierer und ein Verfahren zum Decodieren einer fehlerhaften, codierten Bitsequenz.
-
Aufgrund des hohen Integrationsgrades elektronischer Schaltungen und von Speichern nimmt die Häufigkeit von Fehlern zu. Dadurch ist es zunehmend erforderlich, fehlerhafte digitale Signale z. B. unter Verwendung von fehlerkorrigierenden Codes zu korrigieren und als fehlerhaft zu erkennen.
-
Das betrifft insbesondere auch Signale, die in Speicher eingeschrieben und wieder ausgelesen werden.
-
Insbesondere sind Codes vorteilhaft, die günstige Eigenschaften zur Fehlerkorrektur von 1-Bit Fehlern, zum Erkennen von 2-Bit und von 3-Bit Fehlern aufweisen. Durch sie werden die relativ häufigen 1-Bit-Fehler korrigiert, und die weniger häufig auftretenden 2-Bit- und 3-Bit-Fehler werden erkannt.
-
Ein bekannter 1-Bit-Fehler korrigierender Code, bei dem 2-Bit-Fehler und 3-Bit Fehler in den meisten Fällen sicher oder mit Wahrscheinlichkeit erkannt werden, ist der Vasil'ev-Code, der ein nichtlinearer Code mit einer nichtlinearen Prüfgleichung ist.
-
Er ist so strukturiert, dass er aus einem inneren Code besteht, dem mindestens ein zusätzliches Prüfbit zur Bildung des äußeren Codes hinzugefügt wird, wobei das zusätzliche Bit durch eine nichtlineare Funktion der Bits des inneren Codes bestimmt ist.
-
Der innere Code hat dabei beispielsweise die Eigenschaft, dass es Paare von 1-Bit Fehlern gibt, die durch den inneren Code nicht unterschieden werden können. Es kann dann bei der Decodierung des inneren Codes nicht erkannt werden, welcher der beiden möglichen 1-Bit-Fehler eines solchen Paares vorliegt. Zwischen zwei möglichen 1-Bit Fehlern eines derartigen Paares kann dann unter Verwendung des zusätzlichen Bits, das durch eine nichtlineare Funktion aus den Bits des inneren Codes bestimmt ist, unterschieden werden.
-
Es kann auch ein weiteres Prüfbit, die Parität über die n-Bits des inneren Codes und das zusätzliche nichtlineare Syndrombit, hinzugefügt werden.
-
Dieses Paritätsbit dient einer verbesserten Fehlererkennung und der Unterscheidung von verschiedenen Fehlertypen, wie das beispielsweise für einen Hamming-Code bekannt ist.
-
Die Fehlerkorrektur von 1-Bit Fehlern ist jedoch aufwendig.
-
So wird beispielsweise ein mehrstufiges Verfahren der Fehlerkorrektur verwendet, das zunächst eine probeweise Fehlerkorrektur einer Bitposition eines möglichen Fehlerpaares durchführt. Anschließend wird überprüft, ob die richtige Bitposition des Paares korrigiert wurde. Im Falle einer fehlerhaften Korrektur wird die erfolgte Korrektur rückgängig gemacht. Danach wird die alternative Bitposition korrigiert. Dieses Verfahren ist aufwendig.
-
Es ist die Aufgabe der vorliegenden Erfindung, ein verbessertes Konzept zum Bestimmen einer Position eines 1-Bit-Fehlers in einer codierten Bitsequenz, zur Korrektur eines 1-Bit-Fehlers in einer codierten Bitsequenz und/oder zum Decodieren einer fehlerhaften, codierten Bitsequenz zu schaffen, das es ermöglicht, die Verarbeitungszeit und/oder den Hardwareaufwand zu reduzieren.
-
Diese Aufgabe wird durch eine Vorrichtung gemäß Anspruch 1, 24, 26, 27 oder 28, ein Verfahren gemäß Anspruch 33 oder ein Computerprogram gemäß Anspruch 34 gelöst.
-
Ein Ausführungsbeispiel gemäß der Erfindung schafft eine Vorrichtung zum Bestimmen einer Position eines 1-Bit-Fehlers in einer durch einen inneren Code und einem äußeren nichtlinearen Code codierten Bitsequenz, die einen Fehlerpositionsbestimmer des inneren Codes, einen Fehlersyndrom-Bestimmer des äußeren Codes, einen Ableitungsbestimmer und einen Gesamtfehlerpositionsbestimmer umfasst. Der Fehlerpositionsbestimmer des inneren Codes ist ausgelegt, um basierend auf dem inneren Code zumindest eine mögliche Fehlerposition eines Bit-Fehlers in der codierten Bitsequenz zu bestimmen. Der Fehlersyndrom-Bestimmer des äußeren Codes ist ausgelegt, um einen Wert eines nichtlinearen Syndrombits des äußeren Codes basierend auf einer nichtlinearen Funktion von Bits der codierten Bitsequenz zu bestimmen. Des Weiteren ist der Ableitungsbestimmer ausgelegt, um für zumindest eine bestimmte, mögliche Fehlerposition des Bit-Fehlers einen Wert eines Ableitungsbits basierend auf einer Ableitung der nichtlinearen Funktion nach dem Bit der bestimmten, möglichen Fehlerposition in der codierten Bitsequenz zu bestimmen. Ferner ist der Gesamtfehlerpositionsbestimmer ausgelegt, um eine Fehlerposition des Bit-Fehlers basierend auf dem nichtlinearen Syndrombit und zumindest einem Ableitungsbit zu bestimmen, wenn der Fehlerpositionsbestimmer des inneren Codes mehr als eine mögliche Fehlerposition des Bit-Fehlers bestimmt, oder der Gesamtfehlerpositionsbestimmer ist ausgelegt, um den Bit-Fehler basierend auf dem nichtlinearen Syndrombit und einem Ableitungsbit einer bestimmten, möglichen Fehlerposition als 1-Bit-Fehler zu erkennen und von einem Mehr-Bit-Fehler zu unterscheiden und dadurch die bestimmte, mögliche Fehlerposition als Fehlerposition des 1-Bit-Fehlers zu erkennen, wenn der Fehlerpositionsbestimmer des inneren Codes nur eine mögliche Fehlerposition des Bit-Fehlers in der codierten Bitsequenz bestimmt.
-
Ausführungsbeispiele gemäß der Erfindung basieren auf dem Kerngedanken, die genaue Fehlerposition eines 1-Bit-Fehlers und/oder die Unterscheidung von 1-Bit-Fehlern von Mehr-Bit-Fehlern basierend auf einer Ableitung der nichtlinearen Funktion nach dem jeweiligen Bit der codierten Bitsequenz zu bestimmen. Dafür kann die nichtlineare Funktion beispielsweise gewählt werden, sodass die Ableitung der nichtlinearen Funktion unterschiedliche Werte bei der Ableitung nach Bits von unterschiedlichen bestimmten, möglichen Fehlerpositionen desselben Bit-Fehlers ergibt. Dadurch ist z. B. kein iteratives Verfahren notwendig, um die genaue Fehlerposition eines 1-Bit-Fehlers zu bestimmen, wenn aufgrund der Auswertung der linearen Prüfbits mehrere Fehlerpositionen in der codierten Bitsequenz möglich sind. Dadurch kann die Verarbeitungszeit und/oder der Hardwareaufwand zur Bestimmung der Position eines 1-Bit-Fehlers deutlich reduziert werden.
-
Bei einigen Ausführungsbeispielen gemäß der Erfindung bestimmt der Fehlerpositionsbestimmer des inneren Codes genau eine mögliche Fehlerposition. In diesem Fall kann der Gesamtfehlerpositionsbestimmer basierend auf dem nichtlinearen Syndrombit und einem Ableitungsbit der bestimmten, möglichen Fehlerposition zwischen einem 1-Bit-Fehler und einem Mehr-Bit-Fehler unterscheiden. Handelt es sich um einen 1-Bit-Fehler, kann der Gesamtfehlerpositionsbestimmer die bestimmte, mögliche Fehlerposition als Fehlerposition des 1-Bit-Fehlers erkennen.
-
In einigen Ausführungsbeispielen gemäß der Erfindung bestimmt der Fehlerpositionsbestimmer des inneren Codes zwei mögliche Fehlerpositionen. In diesem Fall kann der Gesamtfehlerpositionsbestimmer das nichtlineare Syndrombit und zumindest ein Ableitungsbit nutzen, um die Fehlerposition eines erkannten 1-Bit-Fehlers zu bestimmen.
-
Bei einigen Ausführungsbeispielen gemäß der Erfindung ist die codierte Bitsequenz basierend auf einem Vasil'ev-Code codiert.
-
Einige Ausführungsbeispiele beziehen sich auf eine Vorrichtung zur Korrektur eines 1-Bit-Fehlers in einer codierten Bitsequenz mit einer Vorrichtung zum Bestimmen einer Position eines 1-Bit-Fehlers und einer 1-Bit-Fehler-Korrektureinheit, die einen Wert des Bits auf der bestimmten oder erkannten Fehlerposition der codierten Bitsequenz ändert, um den 1-Bit-Fehler zu korrigieren.
-
Einige weitere Ausführungsbeispiele gemäß der Erfindung beziehen sich auf einen Decodierer zum Decodieren einer fehlerhaften, codierten Bitsequenz mit einer Vorrichtung zur Korrektur eines 1-Bit-Fehlers und einer Decodiereinheit, die die korrigierte, codierte Bitsequenz decodiert, um eine decodierte Bitsequenz zu erhalten.
-
Ausführungsbeispiele gemäß der Erfindung werden nachfolgend Bezug nehmend auf die beiliegenden Figuren näher erläutert. Es zeigen:
-
1a, 1b ein Blockdiagramm einer Vorrichtung zum Bestimmen einer Position eines 1-Bit-Fehlers in einer codierten Bitsequenz;
-
2 ein Blockdiagramm einer Vorrichtung zur Korrektur eines 1-Bit-Fehlers in einer codierten Bitsequenz;
-
3 ein Schaltungsdiagramm eines Fehlerpositionsbestimmers des inneren Codes;
-
4 ein Schaltungsdiagramm eines Ableitungsbestimmers;
-
5 ein Schaltungsdiagramm eines Gesamtfehlerpositionsbestimmers;
-
6 ein Blockdiagramm einer Vorrichtung zur Korrektur eines 1-Bit-Fehlers in einer codierten Bitsequenz;
-
7 ein Blockdiagramm eines Decodierers zum Decodieren einer fehlerhaften, codierten Bitsequenz;
-
8 ein Diagramm eines Vergleichs der Anteile an erkennbaren Fehlern von verschiedenen Codierverfahren;
-
9 ein Diagramm eines Vergleichs der Anteile erkennbarer 3-Bit-Fehler von verschiedenen Codierverfahren;
-
10 ein Schaltungsdiagramm einer Syndromdecodierung für die Korrektur des i-ten und (1 + n)-ten Bits unter Verwendung eines bekannten Konzepts für lineare Codes; und
-
11 ein Flussdiagramm eines Verfahrens zum Bestimmen einer Position eines 1-Bit-Fehlers in einer codierten Bitsequenz.
-
Im Folgenden werden teilweise für Objekte und Funktionseinheiten, die gleiche oder ähnliche funktionelle Eigenschaften aufweisen, gleiche Bezugszeichen verwendet. Des Weiteren können optionale Merkmale der verschiedenen Ausführungsbeispiele miteinander kombinierbar oder zueinander austauschbar sein.
-
Wird im Folgenden z. B. von einem Bit (z. B. Syndrombit, Ableitungsbit, ...), der Verwendung eines Bits zur Berechnung oder von einem Bit als Ergebnis einer Berechnung gesprochen, so kann neben dem Bit selbst auch der Wert des Bits (logisch 0 oder logisch 1) oder ein binäres Signal, das den Wert des Bits repräsentiert, gemeint sein.
-
1a zeigt ein Blockdiagramm einer Vorrichtung 100 zum Bestimmen einer Position eines 1-Bit-Fehlers in einer durch einen inneren Code und einem äußeren nichtlinearen Code codierten Bitsequenz entsprechend eines Ausführungsbeispiels gemäß der Erfindung. Die Vorrichtung 100 umfasst einen Fehlerpositionsbestimmer des inneren Codes 110, einen Fehlersyndrom-Bestimmer des äußeren Codes 120, einen Ableitungsbestimmer 130 und einen Gesamtfehlerpositionsbestimmer 140. Der Fehlerpositionsbestimmer des inneren Codes 110, der Fehlersyndrom-Bestimmer des äußeren Codes 120 und der Ableitungsbestimmer 130 sind mit dem Gesamtfehlerpositionsbestimmer 140 verbunden. Der Fehlerpositionsbestimmer des inneren Codes 110 bestimmt basierend auf dem inneren Code zumindest eine mögliche Fehlerposition 112 eines Bit-Fehlers in der codierten Bitsequenz 102. Der Fehlersyndrom-Bestimmer des äußeren Codes 120 bestimmt einen Wert eines nichtlinearen Syndrombits 122 des äußeren Codes basierend auf einer nichtlinearen Funktion von Bits der codierten Bitsequenz 102. Des Weiteren bestimmt der Ableitungsbestimmer 130 für zumindest eine bestimmte, mögliche Fehlerposition 112 des Bit-Fehlers einen Wert eines Ableitungsbits 132 basierend auf einer Ableitung der nichtlinearen Funktion nach dem Bit der bestimmten, möglichen Fehlerposition 112 in der codierten Bitsequenz 102. Ferner bestimmt der Gesamtfehlerpositionsbestimmer 140 eine Fehlerposition 142 des Bit-Fehlers basierend auf dem nichtlinearen Syndrombit 122 und zumindest einem Ableitungsbit 132, wenn der Fehlerpositionsbestimmer des inneren Codes 110 mehr als eine mögliche Fehlerposition 112 des Bit-Fehlers in der Bitsequenz 112 bestimmt. Alternativ erkennt der Gesamtfehlerpositionsbestimmer 140 den Bit-Fehler basierend auf dem nichtlinearen Syndrombit 122 und einem Ableitungsbit 132 einer bestimmten, möglichen Fehlerposition 112 als 1-Bit-Fehler und erkennt dadurch die bestimmte, mögliche Fehlerposition 112 als Fehlerposition 142 des 1-Bit-Fehlers, wenn der Fehlerpositionsbestimmer des inneren Codes 110 nur eine mögliche Fehlerposition 112 des Bit-Fehlers in der codierten Bitsequenz 102 bestimmt.
-
Die genaue Fehlerposition 142 eines 1-Bit-Fehlers und/oder die Unterscheidung von 1-Bit-Fehlern von Mehr-Bit-Fehlern kann unter Verwendung der Ableitung der nichtlinearen Funktion nach dem jeweiligen Bit der codierten Bitsequenz bestimmt werden. Dadurch kann beispielsweise ein iterativer Ansatz vermieden werden und somit die Verarbeitungszeit und/oder der Hardwareaufwand zur Bestimmung der Position eines 1-Bit-Fehlers deutlich reduziert werden. In diesem Zusammenhang bedeutet die Unterscheidung von 1-Bit-Fehlern von Mehr-Bit-Fehlern, dass zumindest manche Mehr-Bit-Fehler (z. B. gerade Mehr-Bit-Fehler) von einem 1-Bit-Fehler unterschieden werden kann. Es müssen jedoch nicht alle Mehr-Bit-Fehler von einem 1-Bit-Fehler unterschieden werden können. Ebenso müssen nicht alle erkennbaren Mehr-Bit-Fehler für jede Bitsequenz von einem 1-Bit-Fehler unterscheidbar sein.
-
Die codierte Bitsequenz 102 kann beispielsweise von einer Speichereinheit oder einem Sender zur Verfügung gestellt werden. Die codierte Bitsequenz kann beispielsweise durch den inneren Code eines Vasil'ev Codes codiert sein. Der innere Code kann z. B. ein linearer Hamming-Code ein Hsiao-Code, ein Gerade-Ungerade-Code (Even-Odd-Code) oder wiederum ein nichtlinearer Vasil'ev-Code sein. Zusätzlich kann die codierte Bitsequenz ein nichtlineares Vergleichsprüfbit enthalten oder ein nichtlineares Vergleichsprüfbit kann zusätzlich zur codierten Bitsequenz 102 der Vorrichtung 100 bereitgestellt werden. Das nichtlineare Vergleichsprüfbit ist dabei beispielsweise vor der Speicherung oder Übertragung der codierten Bitsequenz berechnet worden. Die Bitsequenz kann auch als Binärwort bezeichnet werden. Verschiedene codierte Bitsequenzen (die z. B. nacheinander aus einer Speichereinheit ausgelesen werden) können beispielsweise immer die gleiche Anzahl von Bits aufweisen. In anderen Worten, die Wortlänge der von der Vorrichtung 100 verarbeiteten Binärwörter kann immer gleich sein.
-
Die nichtlineare Funktion ist beispielsweise eine Boolsche Funktion. Boolesche Funktionen können in lineare und nichtlineare Funktionen eingeteilt werden, wie es z. B. in
„S. W. Jablonski, G. P. Gawrilow, W. B. Kudrjawzew, „Boolesche Funktionen und Postsche Klassen", Akademie-Verlag, Berlin, 1969, S. 18" beschrieben ist. Eine Boolesche Funktion ist linear, wenn sie sich als
f(x1, x2, ..., xn) = c0 ⊕ c1x1 ⊕ c2x2 ⊕...⊕ cnxn darstellen lässt, wobei ⊕ die Antivalenz bezeichnet und c
i ∊ {0, 1} sind. Alle anderen Funktionen sind nichtlinear.
-
Allgemeine Beispiele für nichtlineare Funktionen sind: f(x1, x2, ..., x5) = x1x2 ⊕ x3x4 ⊕ x5 f(x1, x2, ..., x5) = x1x3 ⊕ x4x5 ⊕ x1x2x4
-
Die nichtlineare Funktion kann in weiten Bereichen variieren. Beispielsweise kann eine nichtlineare Funktion gewählt werden, in der jedes Bit der codierten Bitsequenz 102, das der Fehlerpositionsbestimmer des inneren Codes 110 als mögliche Fehlerposition 112 zusammen mit zumindest einer weiteren möglichen Fehlerposition 112 eines Bit-Fehlers bestimmt, zumindest einmal in einem nichtlinearen Term der nichtlinearen Funktion enthalten ist. In anderen Worten, mindestens ein Paar von Bits, die bei einem Bit-Fehler basierend auf den Prüfbits des inneren Codes nicht voneinander unterschieden werden können, sind in einem nichtlinearen Term der nichtlinearen Funktion enthalten.
-
Zusätzlich oder alternativ kann die nichtlineare Funktion beispielsweise so gewählt werden, dass eine Ableitung der nichtlinearen Funktion nach dem jeweiligen Bit von zwei bestimmten, möglichen Fehlerpositionen 112 für die beiden bestimmten, möglichen Fehlerpositionen 112 eine unterschiedliche abgeleitete Funktion ergibt. In diesem Zusammenhang kann der Ableitungsbestimmer 130 den Wert eines Ableitungsbits basierend auf der zugehörigen abgeleiteten Funktion berechnen. Dann kann basierend auf den unterschiedlichen Werten der Ableitungsbits 132 vom Gesamtfehlerpositionsbestimmer 140 entschieden werden, welche bestimmte, mögliche Fehlerposition 112 die tatsächliche Fehlerposition 142 eines 1-Bit-Fehlers ist.
-
Durch die Wahl der nichtlinearen Funktion kann die Wahrscheinlichkeit 1-Bit-Fehler von Mehr-Bit-Fehlern zu unterscheiden erhöht werden. Speziell bei Vorliegen eines permanenten Fehlers eines Bits (z. B. stuck at 0 oder stuck at 1, Festhängen auf 0 oder Festhängen auf 1) kann die Wahrscheinlichkeit den Fehler über mehrere Taktzyklen der Vorrichtung (nach mehreren bearbeiteten codierten Bitsequenzen) deutlich erhöht werden.
-
Wie bereits erwähnt kann der innere Code unterschiedlich gewählt werden. Beispielsweise kann ein linearer innerer Code verwendet werden. Auch wenn sich im folgenden einige Ausführungsbeispiele auf die Verwendung eines linearen inneren Codes beziehen, sind die beschriebenen Aspekte auch allgemein für eine Vielzahl von unterschiedlichen inneren Codes anwendbar. 1b zeigt ein Blockdiagramm einer Vorrichtung 150 zum Bestimmen einer Position eines 1-Bit-Fehlers in einer codierten Bitsequenz 102 entsprechend eines Ausführungsbeispiels gemäß der Erfindung. Der Aufbau Vorrichtung 150 ist ähnlich dem Aufbau der in 1a gezeigten Vorrichtung, jedoch umfasst der Fehlerpositionsbestimmer des inneren Codes 110 einen Lineare-Syndrombits-Bestimmer 114 und einen Bit-Fehler-Erkenner 118. Der Lineare-Syndrombits-Bestimmer 114 ist mit dem Bit-Fehler-Erkenner 118 verbunden und der Bit-Fehler-Erkenner 118 ist mit dem Gesamtfehlerpositionsbestimmer 140 verbunden.
-
In diesem Beispiel bestimmt der Lineare-Syndrombits-Bestimmer 114 Werte einer Mehrzahl von linearen Syndrombits 116 basierend auf einer Mehrzahl von linearen Funktionen von Bits der codierten Bitsequenz 102. Des Weiteren bestimmt der Bit-Fehler-Erkenner 118 basierend auf der Mehrzahl von linearen Syndrombits 116 zumindest eine mögliche Fehlerposition 112 eines Bit-Fehlers in der codierten Bitsequenz 102.
-
Durch die Berücksichtigung der Ableitung der nichtlinearen Funktion kann eine Unterscheidung zwischen einem 1-Bit-Fehler und einem Mehr-Fehler und/oder einer Identifikation der Fehlerposition eines 1-Bit-Fehlers erfolgen, wenn aufgrund der linearen Prüfbits mehrere mögliche Fehlerpositionen erkannt werden oder unklar ist, ob es sich bei dem Bit-Fehler um einen 1-Bit-Fehler handelt. In anderen Worten, wenn beispielsweise mit Hilfe der linearen Prüfbits und des nichtlinearen Syndrombits mehr als eine mögliche Fehlerposition erkannt wird, kann dieses mehrdeutige Ergebnis mit Hilfe der Ableitung der nichtlinearen Funktion nach dem jeweiligen Bit der bestimmten, möglichen Fehlerposition aufgelöst werden. Durch die Verwendung der Ableitung der nichtlinearen Funktion kann beispielsweise ein iteratives Verfahren zur Identifikation der Fehlerposition des Bit-Fehlers vermieden werden, wodurch die Rechenzeit und/oder der Rechenaufwand deutlich reduziert werden kann.
-
Die Mehrzahl von linearen Funktionen und die nichtlineare Funktion können für die Codierung der codierten Bitsequenz 102 vorgegeben werden (z. B. die Mehrzahl von linearen Funktionen durch den inneren Code eines Vasil'ev Codes und die nichtlineare Funktion zur Berechnung des nichtlinearen Syndrombits des Vasil'ev Codes), so dass der Fehlerpositionsbestimmer des inneren Codes 110 basierend auf der Mehrzahl von linearen Prüfbits 102 zumindest eine mögliche Fehlerposition eines Bit-Fehlers in der codierten Bitsequenz 102 bestimmen kann und der Gesamtfehlerpositionsbestimmer 140 eine Fehlerposition des 1-Bit-Fehlers basierend auf Ableitungsbits bestimmen kann oder den Bit-Fehler basierend auf einem Ableitungsbit als 1-Bit-Fehler erkennen kann. Die lineare Funktion und die nichtlineare Funktion können jeweils von unterschiedlichen Bits der codierten Bitsequenz 102 abhängen. Eine lineare Funktion und/oder die nichtlineare Funktion kann von mehreren der Bits der codierten Funktion oder auch von allen Bits der nichtlinearen Funktion abhängen.
-
Der Fehlerpositionsbestimmer des inneren Codes 110 bestimmt beispielsweise mögliche Fehlerpositionen 112 eines Bit-Fehlers basierend auf der Mehrzahl von linearen Syndrombits 116. Dabei kann beispielsweise durch eine gezielte Auswahl der linearen Funktionen (z. B. basierend auf einen linearen Hamming-Code) ermöglicht werden, dass der Fehlerpositionsbestimmer des inneren Codes alle möglichen Fehlerpositionen eines Bit-Fehlers erkennen kann. In anderen Worten, wenn der Fehlerpositionsbestimmer des inneren Codes 110 erkennt, dass ein Bit-Fehler vorliegt, kann der Fehlerpositionsbestimmer des inneren Codes 110 basierend auf der Mehrzahl von linearen Syndrombits 116 alle möglichen Fehlerpositionen 112 eines Bit-Fehlers bestimmen. Die Anzahl von möglichen Fehlerpositionen 112 eines Bit-Fehlers kann dabei u. a. abhängig von der Anzahl der linearen Prüfbits, den zugrunde liegenden linearen Funktionen und der Art der Codierung der codierten Bitsequenz 102 sein.
-
Handelt es sich bei dem Bit-Fehler um einen Mehr-Bit-Fehler kann es vorkommen, dass eine mögliche Fehlerposition fälschlicherweise als die Fehlerposition 142 des Bit-Fehlers erkannt wird. Daher ist neben der Erkennung der Position des Bit-Fehlers auch eine Unterscheidung zwischen 1-Bit-Fehlern und Mehr-Bit-Fehlern wichtig. Bestimmt der Fehlerpositionsbestimmer des inneren Codes 110 beispielsweise nur genau eine mögliche Fehlerposition 112, dann kann der Gesamtfehlerpositionsbestimmer 140 untersuchen, ob es sich bei dem Bit-Fehler um einen 1-Bit-Fehler oder um einen Mehr-Bit-Fehler handelt. Erkennt der Gesamtfehlerpositionsbestimmer 140 den Bit-Fehler (basierend auf dem nichtlinearen Syndrombit 122 und einem Ableitungsbit 132 der bestimmten, möglichen Fehlerposition) als 1-Bit-Fehler, so kann automatisch auch die bestimmte, mögliche Fehlerposition 112 als Fehlerposition 142 des 1-Bit-Fehlers erkannt werden, da keine weiteren möglichen Fehlerpositionen 112 zur Auswahl stehen.
-
Alternativ erkennt der Fehlerpositionsbestimmer des inneren Codes 110 zwei mögliche Fehlerpositionen 112 eines Bit-Fehlers. In diesem Fall kann der Gesamtfehlerpositionsbestimmer 140 den Bit-Fehler basierend auf dem nichtlinearen Syndrombit 122 als 1-Bit-Fehler erkennen und die Fehlerposition des 1-Bit-Fehlers basierend auf dem nichtlinearen Syndrombit und den zwei Ableitungsbits der bestimmten, möglichen Fehlerpositionen 112 bestimmen.
-
Um mehr als zwei mögliche Fehlerpositionen unterscheiden zu können, kann mehr als ein nichtlineares Syndrombit basierend auf unterschiedlichen nichtlinearen Funktionen genutzt werden. Allgemein kann der Fehlersyndrom-Bestimmer des äußeren Codes 120 beispielsweise eine vordefinierte Anzahl p von nichtlinearen Syndrombits basierend auf einer entsprechenden Anzahl von nichtlinearen Funktionen einen Wert bestimmen. In diesem Beispiel kann der Fehlerpositionsbestimmer des inneren Codes 110 bis zu 2 hoch der vordefinierten Anzahl p von nichtlinearen Syndrombits (2p) verschiedene mögliche Fehlerpositionen bestimmen, von denen der Gesamtfehlerpositionsbestimmer 140 die Fehlerposition des 1-Bit-Fehlers basierend auf der vordefinierten Anzahl von nichtlinearen Syndrombits und den 2 hoch der vordefinierten Anzahl p von nichtlinearen Syndrombits 122 Ableitungsbits 132 bestimmen kann.
-
Wie bereits erwähnt, kann die codierte Bitsequenz 102 beispielsweise basierend auf einem Vasil'ev-Code codiert sein. Z. b. kann ein linearer Code (z. B. linearer Hamming-Code) verdoppelt werden und ein nichtlineares Prüfbit hinzugefügt werden.
-
In manchen Ausführungsbeispielen kann die codierte Bitsequenz 102 beispielsweise eine Anzahl von Bits, die zumindest gleich 2 hoch einer Anzahl von linearen Syndrombits 116 der Mehrzahl von linearen Prüfbits ist, umfassen. In diesem Beispiel ist ein nichtlineares Vergleichsprüfbit nicht von der codierten Bitsequenz 102 umfasst. Alternativ kann die codierte Bitsequenz 102 beispielsweise eine Anzahl von Bits, die zumindest gleich 2 hoch einer Anzahl von linearen Syndrombits 116 der Mehrzahl von linearen Prüfbits plus 1 ist, umfassen, wenn die codierte Bitsequenz 102 ein nichtlineares Vergleichsprüfbit umfasst.
-
Es kann ausreichend sein, dass der Ableitungsbestimmer 130 nur Ableitungsbits 132 für Bits der codierten Bitsequenz 102 bestimmt, für die der Fehlerpositionsbestimmer des inneren Codes 110 basierend auf den linearen Syndrombits 116 für einen 1-Bit-Fehler mehr als eine mögliche Fehlerposition bestimmt. In anderen Worten, es kann ausreichend sein, dass der Ableitungsbestimmer 130 Ableitungsbits 132 für Bits bestimmt, die der Fehlerpositionsbestimmer des inneren Codes 110 basierend auf der Mehrzahl von linearen Prüfbits nicht eindeutig als Fehlerposition eines 1-Bit-Fehlers erkennen kann. Alternativ kann der Ableitungsbestimmer 130 für jedes Bit der codierten Bitsequenz 102 einen Wert eines Ableitungsbits 132 basierend auf einer Ableitung der nichtlinearen Funktion nach dem jeweiligen Bit der codierten Bitsequenz 102 berechnen. Dadurch kann eine Bestimmung der Fehlerposition 142 eines 1-Bit-Fehlers ermöglicht werden, die unabhängig davon ist, für welche Bits der Fehlerpositionsbestimmer des inneren Codes 110 eine eindeutige Fehlerposition eines 1-Bit-Fehlers erkennen kann und für welche Bits der codierten Bitsequenz 102 einen 1-Bit-Fehler nicht eindeutig zuordnen kann, also mehr als eine mögliche Fehlerposition 112 bestimmt.
-
Wie bereits erwähnt, handelt es sich bei der nichtlinearen Funktion beispielsweise um eine Boolesche nichtlineare Funktion. Dementsprechend kann der Ableitungsbestimmer 130 einen Wert eines Ableitungsbits 132 beispielsweise basierend auf einer Booleschen Ableitung der nichtlinearen Funktion berechnen.
-
Das nichtlineare Syndrombit 122 kann einem nichtlinearen Bit entsprechen, dass basierend auf der nichtlinearen Funktion und der codierten Bitsequenz bestimmt werden kann. Alternativ oder zusätzlich kann die codierte Bitsequenz 102 ein nichtlineares Vergleichsprüfbit enthalten oder ein nichtlineares Vergleichsprüfbit mit der codierten Bitsequenz 102 bereitgestellt werden. In diesem Fall, kann der Fehlersyndrom-Bestimmer des äußeren Codes 120 das bereitgestellte, nichtlineare Vergleichsprüfbit zur Fehlerpositionsbestimmung verwenden. Dazu kann der Fehlersyndrom-Bestimmer des äußeren Codes 120 beispielsweise einen Wert eines nichtlinearen Prüfbits basierend auf der nichtlinearen Funktion und der codierten Bitsequenz bestimmen und den bestimmten Wert des nichtlinearen Prüfbits mit einem Wert eines bereitgestellten, nichtlinearen Vergleichsprüfbits der codierten Bitsequenz 102 vergleichen (z. B. durch eine XOR-Verknüpfung), um den Wert des nichtlinearen Syndrombits 122 des äußeren Codes bestimmen.
-
Die Mehrzahl von linearen Funktionen kann beispielsweise durch eine Prüfmatrix oder H-Matrix dargestellt oder bereitgestellt werden. Jede Zeile (oder in transponierter Darstellung jede Spalte) der Prüfmatrix repräsentiert dann eine lineare Funktion der Mehrzahl von linearen Funktionen. Der Fehlerpositionsbestimmer des inneren Codes 110 kann in diesem Beispiel die Werte der Mehrzahl von linearen Syndrombits 116 basierend auf der Prüfmatrix berechnen. Ist beispielsweise die codierte Bitsequenz basierend auf einem Vasil'ev-Code codiert, kann z. B. der innere Code des Vasil'ev-Codes (z. B. ein linearer Hamming-Code) durch die Prüfmatrix repräsentiert werden.
-
Der Fehlerpositionsbestimmer des inneren Codes 110, der Fehlersyndrom-Bestimmer des äußeren Codes 120, der Ableitungsbestimmer 130 und/oder der Gesamtfehlerpositionsbestimmer 140 können beispielsweise unabhängige Hardwareeinheiten oder Teil eines Computer oder Mikrocontrollers sowie Computerprogramme oder Softwareprodukte zur Ausführung auf einem Computer oder Mikrocontroller sein.
-
Der Fehlerpositionsbestimmer des inneren Codes 110, der Fehlersyndrom-Bestimmer des äußeren Codes 120, der Ableitungsbestimmer 130 und der Gesamtfehlerpositionsbestimmer 140 können wenigstens teilweise gemeinsam realisiert sind. Dazu kann beispielsweise die beschriebene Funktionalität des Fehlerpositionsbestimmer des inneren Codes 110, des Fehlersyndrom-Bestimmer des äußeren Codes 120, des Ableitungsbestimmer (130) und/oder des Gesamtfehlerpositionsbestimmer (140) zumindest teilweise durch ein Synthesewerkzeug zu einer kombinierten Hardware- oder Softwareeinheit zusammengefasst werden.
-
Einige Ausführungsbeispiele gemäß der Erfindung beziehen sich auf eine Hardwareimplementierung des beschriebenen Konzepts. Beispielsweise kann der Fehlerpositionsbestimmer des inneren Codes 110 eine Mehrzahl von UND-Logikgattern aufweisen. Dabei kann der Fehlerpositionsbestimmer des inneren Codes die zumindest eine mögliche Fehlerposition 112 basierend auf der Mehrzahl von UND-Logikgattern berechnen, wobei jedes UND-Logikgatter der Mehrzahl von UND-Logikgattern je einen Eingang für jedes lineares Prüfbit 112 der Mehrzahl von linearen Prüfbits aufweist.
-
Unabhängig davon oder zusätzlich kann der Ableitungsbestimmer 130 die Werte von Ableitungsbits 132 von zwei Bits der codierten Bitsequenz 102, die von dem Fehlerpositionsbestimmer des inneren Codes 110 als mögliche Fehlerpositionen 112 desselben Bit-Fehlers bestimmt wurden, basierend auf einer logischen XOR-Verknüpfung der beiden Bits der codierten Bitsequenz 102 berechnen. Der Wert des Ableitungsbits eines der beiden Bits entspricht dabei einem Ergebnis der logischen XOR-Verknüpfung und der Wert des Ableitungsbits des anderen der beiden Bits einem negierten Ergebnis der logischen XOR-Verknüpfung.
-
Des Weiteren kann unabhängig davon oder in Kombination der Fehlerpositionsbestimmer des inneren Codes 110 einen Wert eines Paritätsbits basierend auf den Bits der codierten Bitsequenz 102 berechnen und basierend auf dem Paritätsbit einen 1-Bit-Fehler von einemgeraden Mehr-Bit-Fehler unterscheiden. In anderen Worten, das Paritätsbit kann zusätzlich zum nichtlinearen Syndrombit und/oder einem Ableitungsbit herangezogen werden, um ein 1-Bit-Fehler von Mehr-Bit-Fehlern mit höherer Wahrscheinlichkeit unterscheiden zu können.
-
Wiederum unabhängig davon oder zusätzlich dazu kann der Gesamtfehlerpositionsbestimmer 140 für jedes Bit der codierten Bitsequenz 102 ein Fehlersignal ausgeben. Das Fehlersignal eines Bits der codierten Bitsequenz 102 gibt dabei an, ob bei dem Bit der codierten Bitsequenz 102 ein 1-Bit-Fehler vorliegt. Das Fehlersignal kann danach beispielsweise dazu verwendet werden, um zu entscheiden, ob ein Bit der codierten Bitsequenz 102 korrigiert werden soll.
-
Zusätzlich kann der Fehlerpositionsbestimmer des inneren Codes 110 die zumindest eine mögliche Fehlerposition 112 in Form einer Mehrzahl von Werten von codierten Ausgangsbits bereitstellen. Der Gesamtfehlerpositionsbestimmer 140 kann dann ein Fehlersignal eines Bits der codierten Bitsequenz 102 basierend auf einer logischen XOR-Verknüpfung des Ableitungsbits 132 des Bits der codierten Bitsequenz 102 mit einer Differenz des nichtlinearen Syndrombits 122 und eines bereitgestellten nichtlinearen Vergleichsprüfbits der codierten Bitsequenz 102 und einer logischen UND-Verknüpfung des Ergebnisses der logischen XOR-Verknüpfung und zumindest eines der codierten Ausgangsbits des Fehlerpositionsbestimmer des inneren Codes 110 berechnen.
-
Allgemein kann eine logische UND-Verknüpfung durch ein UND-Logikgatter und eine logische XOR-Verknüpfung durch ein XOR-Logikgatter realisiert werden. Ein negiertes Bit kann durch einen Negator oder Inverter erhalten werden.
-
Einige Ausführungsbeispiele beziehen sich auf eine Vorrichtung zur Korrektur eines 1-Bit-Fehlers in einer codierten Bitsequenz. 6 zeigt ein Blockdiagramm einer solchen Vorrichtung 600 zur Korrektur eines 1-Bit-Fehlers in einer codierten Bitsequenz 102 entsprechend eines Ausführungsbeispiels gemäß der Erfindung. Die Vorrichtung 600 ist ähnlich der in 1a gezeigten Vorrichtung, umfasst jedoch zusätzlich eine 1-Bit-Fehler-Korrektureinheit 610. Dabei ist der Gesamtfehlerpositionsbestimmer 140 mit der 1-Bit-Fehler-Korrektureinheit 610 verbunden. Die 1-Bit-Fehler-Korrektureinheit 610 ändert einen Wert des Bits auf der bestimmten oder erkannten Fehlerposition 142 der codierten Bitsequenz 102, um den 1-Bit-Fehler zu korrigieren und eine korrigierte, codierte Bitsequenz 612 erhalten. Der Fehlerpositionsbestimmer des inneren Codes 110, der Fehlersyndrom-Bestimmer des äußeren Codes 120, der Fehlerpositionsbestimmer des inneren Codes 110, der Ableitungsbestimmer 130 und der Gesamtfehlerpositionsbestimmer 140 können entsprechend dem zuvor beschriebenen Konzept, auch inklusive einer oder mehrerer beschriebener optionaler Ausführungsformen oder Aspekte implementiert werden.
-
In einer möglichen Implementierung kann die 1-Bit-Fehler-Korrektureinheit 610 den 1-Bit-Fehler basierend auf einer logischen XOR-Verknüpfung des Fehlersignals (vom Gesamtfehlerpositionsbestimmer 140 bereitgestellt, wie zuvor beschrieben) jedes Bit der codierten Bitsequenz 102 mit dem jeweiligen Bit der codierten Bitsequenz 102 korrigieren.
-
Im Folgenden ist ein konkretes Beispiel für eine Realisierung einer Vorrichtung zur Korrektur eines 1-Bit-Fehlers in einer codierten Bitsequenz mit einer möglichen Hardwareimplementierung beschrieben. Die beschriebenen Details sind jedoch auch unabhängig voneinander sowohl für eine Vorrichtung zum Bestimmen einer Position eines 1-Bit-Fehlers in einer codierten Bitsequenz als auch für eine Vorrichtung zur Korrektur eines 1-Bit-Fehlers in einer codierten Bitsequenz, wie sie zuvor allgemein, vor allem im Zusammenhang mit 1a, 1b und 6 beschrieben wurden, anwendbar.
-
Ein Aspekt des vorgeschlagenen Konzepts ist es, den Aufwand für die 1-Bit Fehlerkorrektur für nichtlineare Codes mit mindestens einer nichtlinearen Prüfgleichung zu vermindern.
-
Durch das beschriebene Konzept ist es beispielsweise möglich, ein mehrstufiges Verfahren der Fehlerkorrektur zu vermeiden und auch die 1-Bit-Fehler, die durch den inneren Code nicht unterschieden werden können, in einem Schritt zu korrigieren.
-
Als konkretes Beispiel wird ein inneren Code C der Länge n = 11 (Anzahl der Bits der codierten Bitsequenz) betrachtet, der ein linearer Code ist. Die 11 Bits des Codes (der codierten Bitsequenz) sind mit u1, ..., u4, ..., w1, ..., w7 bezeichnet.
-
Dieser innere Code wird in diesem Beispiel durch die H-Matrix H = (h
1, ..., h
11) mit
charakterisiert. In der vierten Zeile dieser Matrix sind die Spaltennummern 1, ..., 11 hinzugefügt und in der fünften Zeile die entsprechenden Bezeichnungen der zugehörigen Variablen. Die vierte und fünfte Zeile dienen in diesem Beispiel nur der besseren Veranschaulichung, sind jedoch eigentlich nicht Teil der H-Matrix, da sie keine lineare Funktion zur Bestimmung eines linearen Prüfbits repräsentieren.
-
Da der innere Code ein linearer Code ist, ist ein Codewort v = v1, ..., v11 = u1, u2, u3, u4, w1, w2, w3, w4, w5, w6, w7 genau dann Codewort des inneren Codes, wenn s = H·vT = 0 (2) oder wenn s1 = u1 + u2 + w1 + w2 + w4 + w5 = 0 (3) s2 = u1 + u3 + w1 + w3 + w4 + w6 = 0 (4) s3 = u2 + u4 + w2 + w3 + w4 + w7 = 0 (5) ist. Dabei ist vT der transponierte Spaltenvektor des Zeilenvektors v, und s = s1, s2, s3 das Fehlersyndrom des betrachteten linearen inneren Codes C. Dabei sind s1, s2, s3 lineare Prüfbits und die Gleichung 3–4 stellen eine Mehrzahl von linearen Funktionen von Bits der codierten Bitsequenz zur Berechnung der linearen Prüfbits dar.
-
Liegt nun ein 1-Bit-Fehler im i-ten Bit vor, der durch die Position [i] oder einem Fehlervektor e[i] mit
beschrieben werden kann, dann ist diesem 1-Bit-Fehler das Fehlersyndrom
s[i] = H·e[i]T = hi (6) zugeordnet, das gleich der i-ten Spalte h
1 der Matrix H ist.
-
Da die erste und die fünfte Spalte, die zweite und die sechste Spalte, die dritte und die zehnte Spalte und die vierte und die elfte Spalte der H-Matrix H von Gleichung (1) jeweils gleich sind, kann man anhand des inneren Codes nicht unterscheiden, ob ein 1-Bit-Fehler im ersten oder fünften Bit, im zweiten oder sechsten Bit, im dritten oder zehnten Bit, im vierten oder elften Bit aufgetreten ist, während der innere Code es erlaubt, einen 1-Bit-Fehler im siebten, achten oder neunten Bit eindeutig zu identifizieren und zu korrigieren.
-
Die Möglichkeiten, die sich bei 1-Bit-Fehlern für die Korrektur durch den inneren Code ergeben, können z. B. durch eine Decodierfunktion D beschrieben werden, deren Ausgabewert durch die Bits des inneren Codes bestimmt ist.
-
Liegt kein Fehler vor, dann ist der Ausgabewert der Decodierfunktion D gleich einer Codierung Cod(0) des Wertes 0. Liegt ein 1-Bit-Fehler[i] vor, der aufgrund des inneren Codes nicht von einem anderen 1-Bit-Fehler[ji] unterschieden werden kann, dann ist der Ausgabewert der Decodierfunktion gleich einer Codierung des Paares der möglichen 1-Bit-Fehler Cod(i, ji). Liegt ein 1-Bit-Fehler [r] vor, der von allen anderen 1-Bit-Fehlern aufgrund des inneren Codes unterschieden werden kann, dann ist der Ausgabewert der Decodierfunktion gleich. Cod(r).
-
Die Decodierfunktion für den inneren Code, der durch die H-Matrix nach Gleichung (1) beschrieben ist, ist z. B. D(u1, ..., u4, w1, ..., w7) = D*(u1 + u2 + w1 + w2 + w4 + w5, u1 + u3 + w1 + w3 + w4 + w6, u2 + u4 + w2 + w3 + w4 + w7) mit
D*(0,0,0) = Cod(0),
D*(1,0,0) = Cod(9),
D*(0,1,0) = Cod(3,10),
D*(0,0,1) = Cod(4,11),
D*(1,1,0) = Cod(1,5),
D*(1,0,1) = Cod(2,6),
D*(0,1,1) = Cod(7),
D*(1,1,1) = Cod(8).
-
Für alle Fehler in den Bits u1, u2, u3, u4, d. h. konkret in den Fehlerpositionen 1, 2, 3, 4 gibt es genau einen Fehler in den Bits w1, w2, w6, w7, d. h. in den Fehlerpositionen 4 + 1 = 5, 4 + 2 = 6, 4 + 6 = 10, 4 + 7 = 11, die durch Auswerten des inneren Codes nicht unterschieden werden können. Die Ausgabewerte der Decodierfunktion sind entsprechend Cod(1,5), Cod(2,6), Cod(3,10), Cod(4,11). Ohne Beschränkung der Allgemeinheit werden die Bits u1, ..., uk mit k = 4 linksbündig angeordnet. Die Bits u1, u2, ..., u4 mit k = 4 fassen wir zur Menge U = {u1, u2, u3, u4} zusammen. Allgemein ist die Menge U ∪ TMW die Menge der Bits, für die ein 1-Bit-Fehler in diesen Bits von einem anderen 1-Bit-Fehler durch den inneren Code nicht unterschieden werden kann. Die Bits w1, w2, w6, w7, deren 1-Bit-Fehler nicht von den 1-Bit-Fehlern in den Bits ui ∈ U unterschieden werden können, bilden eine Teilmenge TMw aus k = 4 Elementen der Menge W = {w1, ..., wt}. In dem betrachteten Beispiel sind TMW = {w1, w2, w6, w7} und W = {w1, w2, w3, w4, w5, w6, w7}.
-
Für ui ∈ U mit i = 1, 2, 3, 4 gibt es dann ein wji ∈ TMw, nämlich die Bits w1, w2, w6, w7, so dass gilt D(ū1, u2, u3, u4, w1, w2, w3, w4, w5, w6, w7) = D(u1, u2, u3, u4, w 1, w2, w3, w4, w5, w6, w7), D(u1, ū2, u3, u4, w1, w2, w3, w4, w5, w6, w7) = D(u1, u2, u3, u4, w1, w 2, w3, w4, w5, w6, w7), D(u1, u2, ū3, u4, w1, w2, w3, w4, w5, w6, w7) = D(u1, u2, u3, u4, w1, w2, w3, w4, w5, w 6, w7), D(u1, u2, u3, ū4, w1, w2, w3, w4, w5, w6, w7) = D(u1, u2, u3, u4, w1, w2, w3, w4, w5, w6, w 7).
-
Anhand der von der Decodierfunktion D(u1, ..., u4, w1, ..., w7) bestimmten Werte kann in dem Ausführungsbeispiel nicht zwischen einem Fehler in ui und einem Fehler in wji unterschieden werden, wobei bei einem Fehler ui in ūi bzw. wji in w ji verfälscht wird.
-
Im Unterschied dazu wird ein Fehler in den Bits w3, w4 und w5 eindeutig an den Ausgabewerten Cod(7), Cod(8), Cod(9) der Decodierfunktion erkannt.
-
Es wird nun ein weiteres Bit ∊ = φ(u1, ..., u4, w1, ..., w7) verwendet, wobei als Funktion φ hier die Funktion φ(u1, ..., u4, w1, ..., w7) = u1 + u2 + u3 + u4 + λ(u1 + w1, u2 + w2, u3 + w6, u4 + w7, w3, w4, w5) gewählt ist. Dabei ist λ eine beliebige nichtlineare Funktion.
-
Unter Verwendung des Begriffs der Ableitung
δf(x) / δx = f(x)+ f(x) einer Booleschen Funktion f(x) gilt dann
und
und damit
-
-
Völlig analog überzeugt man sich, dass gilt
-
Dabei sind
für i = 1, 2, 3, 4 und für j = 1, 2, 6, 7 die partiellen Ableitungen der Booleschen Funktion φ, wie sie z. B. in
„Zander, H., J., Logischer Entwurf binärer Systeme, Verlag Technik, Berlin 1989, 3. Auflage S. 40–41" beschrieben sind. Die Operation „+” steht hier für die Addition modulo 2. Aufgrund der Ausgabe der Decodierfunktion D und aufgrund der Änderung des zusätzlichen Bits ε (bereitgestelltes nichtlineares Vergleichsprüfbit) und der entsprechenden Ableitungen der nichtlinearen Funktion φ kann nun entschieden werden, welches Bit der Bits u
1, ..., u
k, w
1, ..., w
t mit hier k = 4 und t = 7 im Falle eines 1-Bit Fehlers fehlerhaft ist und korrigiert werden muss. Ein 1-Bit-Fehler im Bit ε kann eindeutig erkannt und korrigiert werden, da dann Δε = 1 ist und der Zuordner (der Bit-Fehler-Erkenner) den Wert Cod(0) ausgibt.
-
Ein Beispiel für eine erfindungsgemäße Schaltungsanordnung 200 zur Fehlerkorrektur von 1-Bit Fehlern zeigt 2. Die Schaltungsanordnung besteht aus den kombinatorischen Teilschaltungen S1 211 (Lineare-Syndrombits-Bestimmer und Fehlerpositionsbestimmer des inneren Codes), S2 212 (Nichtlineares-Prüfbit-Bestimmer des äußeren Codes), S3 213 (Differenzbilder), S4 214 (Ableitungsbestimmer) und S5 215 (Gesamtfehlerpositionsbestimmer). Der Nichtlineares-Prüfbit-Bestimmer des äußeren Codes und der Differenzbilder sind ein Beispiel für eine Implementierung des Fehlersyndrom-Bestimmers des äußeren Codes. Der Differenzbildner S3 213 kann auch, wie zuvor allgemein beschrieben, Teil des Gesamtfehlerpositionsbestimmers sein.
-
In 2 bilden die Werte u, w und ε die codierte Bitsequenz. Dabei bilden u und w die Werte des inneren Codes und ε ein nichtlineares Bit des äußeren Codes.
-
Die Werte u, w und ε können beispielsweise aus einem Speicher ausgelesen worden sein.
-
Die Werte u und w liegen gleichzeitig an den k + t binären Eingängen einer kombinatorischen ersten Teilschaltung S1 211 (Fehlerpositionsbestimmer des inneren Codes) zu Bestimmung möglicher Fehlerpositionen an.
-
Die zweite kombinatorische Teilschaltung S2 212 und die dritte kombinatorische Teilschaltung S3 213 bilden den Fehlersyndrombestimmer des äußeren Codes. Die Teilschaltung S2 212 dient der Realisierung der nichtlinearen Funktion φ(u, w), wobei φ(u, w) das aus u und w abgeleitete nichtlineare Prüfbit des äußeren Codes repräsentiert. Die Teilschaltung S3 213 ist durch ein XOR-Gatter realisiert. Sie bildet die Differenz Δε des nichtlinearen, beispielsweise aus einem Speicher ausgelesenen Prüfbits ε und des aus den Bits u und w des inneren Codes abgeleiteten nichtlinearen Prüfbits φ(u, w). Diese Differenz bildet das nichtlineare Fehlersyndrom des äußeren Codes.
-
Die Werte u und w liegen außerdem an den Eingängen einer dritten kombinatorischen Teilschaltung zur Ableitungsbildung S4 214 (Ableitungsbestimmer) an. Die Teilschaltung S1 211 realisiert z. B. die Decodierfunktion D(u, w), so dass an ihrem Ausgang beim Vorliegen eines 1-Bit Fehlers in einem Bit ui ∈ U = {u1, ..., uk} oder in einem Bit wji ∊ TMw der Wert Cod(i, ji), d. h. eine Codierung der beiden möglichen Fehlerpositionen i und k + ji ausgegeben wird. Liegt ein 1-Bit-Fehler in wr ∊ {w1, ..., wt}\TMW vor, dann wird von der Schaltung S1 211 der Wert Cod(r), d. h. eine Codierung der Bitposition k + r ausgegeben. Falls kein Fehler erkannt wurde, wird von S1 der Wert Cod(0) ausgegeben. Die Teilschaltung S2 212 realisiert die Boolesche Funktion φ(u, w) aus den Werten u und w. Der 1-Bit breite Ausgang der Schaltung S2 212 ist in einen ersten Eingang der kombinatorischen Teilschaltung S3 213 geführt, an deren zweiten Eingang der aktuelle Wert des zusätzlichen nichtlinearen Bits ∊ (bereitgestelltes nichtlineares Vergleichsprüfbit) anliegt und die eine XOR-Verknüpfung ihrer beiden Eingänge an ihrem Ausgang realisiert. Die Schaltung S3 213 gibt an ihrem Ausgang den Wert Δ∊ = ∊ + φ(u, w)
-
Aus, d. h. den Wert des Fehlersyndroms aus.
-
Die kombinatorische Teilschaltung zur Ableitungsbildung S4
14 realisiert an ihren k + T Ausgängen die Booleschen Ableitungen
-
Die Schaltung S5 (Gesamtfehlerpositionsbestimmer) zur Bildung der Korrekturwerte weist einen ersten, einen zweiten und einen dritten Eingang auf.
-
Die k + T binären Ausgänge der Schaltung S4 214 sind mit dem dritten k + T Bit breiten Eingang der Schaltung S5 215 zur Bildung der Korrekturwerte (Fehlersignal) Δu1, ..., Δuk, Δwi1, ..., ΔwiT der Bits u1, ..., uk, wi1, ..., wiT verbunden, die an den Ausgängen der Schaltung S5 215 ausgegeben werden.
-
Enthält die Menge des Bits {wi1, ..., wiT} die Bits wj1, ..., wjk, so kann zwischen allen 1-Bit-Fehlern in den Bits ui und wji für i = 1, ..., k unterschieden werden. Ist T = t, dann werden für alle Bits u1, ..., uk, w1, ..., wt des inneren Codes C Ableitungen (Ableitungsbits) bereitgestellt. Soll eine Teilmenge von Bits nicht korrigiert werden, so ist es nicht erforderlich, dass diese Teilmenge in {wi1, ..., wiT} enthalten ist.
-
Der zweite Eingang der Schaltung S5 215 ist mit dem Ausgang der Schaltung S3 213 verbunden, während in den ersten Eingang der Schaltung S5 215 der Ausgang der Schaltung S1 211 geführt ist.
-
Der den Wert Δui führende Ausgang des Schaltung S5 215 ist für i = 1, ..., k mit dem ersten Eingang eines XOR-Gatters 216/i verbunden, in dessen zweiten Eingang das Signal ui (Bit der codierten Bitsequenz) geführt ist und an dessen Ausgang das korrigierte Signal ui(korr) (korrigiertes Bit der codierten Bitsequenz) ausgegeben wird. Beispielsweise kann durch XOR-Logikgatter 216/1–216/k, 217/1–217/T eine 1-Bit-Fehler-Korrektureinheit realisiert werden.
-
Der den Wert Δwj führende Ausgang des Schaltung S5 215 ist für j = 1, ..., T mit dem ersten Eingang eines XOR-Gatters 217/j verbunden, in dessen zweiten Eingang das Signal wj (Bit der codierten Bitsequenz) geführt ist und an dessen Ausgang das korrigierte Signal wj(korr) (korrigiertes Bit der codierten Bitsequenz) ausgegeben wird.
-
Eine konkrete Ausgestaltung der Schaltung S1 211 für k = 4 und t = 7 zur Realisierung der Decodierfunktion D zeigt 3. Sie besteht aus einem Syndrombildner 327 (Lineare-Syndrombits-Bestimmer), der eine kombinatorische Schaltung mit 11 binären Eingängen und 3 binären Ausgängen (Anzahl der linearen Prüfbits) ist, und einem nachgeschalteten Zuordner 328 (Bit-Fehler-Erkenner) zur Codierung der Syndromwerte als mögliche Fehlerpositionen, der in 3 aus sieben 3-Input UND-Gattern 21, ..., 27 aufgebaut ist, und der die Funktion D* realisiert. An dem k + t = 11 Eingängen des Syndrombildners 327 liegen stellenrichtig die binären Werte u1, ..., u4 und w1, ..., w7 an. Der Syndrombildner ist einfach eine Implementierung der Komponenten s1, s2, s3 (lineare Syndrombits) des Syndroms s des durch die H-Matrix H von Gleichung (1) definierten inneren Codes mit s1 = u1 + u2 + w1 + w2 + w4 + w7 s2 = u1 + u3 + w1 + w3 + w4 + w6 s3 = u2 + u4 + w2 + w3 + w4 + w7
-
Eine Implementierung des Syndrombildners 327 kann beispielsweise mit XOR-Gattern erfolgen.
-
Der Zuordner
328 zur Codierung der Syndromwerte als mögliche Fehlerpositionen gibt bei Eingabe von s
1, s
2, s
2 eine binäre Codierung z
1, ..., z
7 (codierte Ausgangssignale des Fehlerpositionsbestimmer des inneren Codes) aus. Dabei werden die möglichen Fehlerpositionen Cod(9), Cod(3,10), Cod(4,11), Cod(1,5), Cod(2,6), Cod(7), Cod(8) als 1-aus-7 Code und Cod(0) z. B. als 0,0,0,0,0,0,0 gemäß der folgenden Tabelle codiert.
s1 | s2 | s3 | z1 | z2 | z3 | z4 | z5 | z6 | z7 | Bedeutung | int. Leitung |
0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | Cod(0) | 0 |
1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | Cod(9) | y9 |
0 | 1 | 0 | 0 | 0 | 1 | 0 | 0 | 0 | 0 | Cod(3,10) | y3, y10 |
0 | 0 | 1 | 0 | 0 | 0 | 1 | 0 | 0 | 0 | Cod(4,11) | y4, y11 |
1 | 1 | 0 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | Cod(1,5) | y1, y5 |
1 | 0 | 1 | 0 | 1 | 0 | 0 | 0 | 0 | 0 | Cod(2,6) | y2, y6 |
0 | 1 | 1 | 0 | 0 | 0 | 0 | 1 | 0 | 0 | Cod(7) | y7 |
1 | 1 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | Cod(8) | y8 |
-
So entspricht beispielsweise dem Syndrom s = s1s2s3 = 000 in der ersten Zeile der Tabelle die Codierung 0000000 bzw. Cod(0), die ein fehlerfreies Wort anzeigt; dem Syndrom 010 in der dritten Zeile der Tabelle die Codierung 0010000 bzw. Cod(3,10), was bedeutet, dass aufgrund der Ausgabe der Schaltung S1 211 nicht unterschieden werden kann, ob ein 1-Bit-Fehler im dritten Bit u3 oder im 10-ten Bit w6 vorliegt.
-
Der Zuordner 328 zur Codierung der Syndromwerte entsprechend der Tabelle soll nun beispielhaft im Detail beschrieben werden. Die drei Ausgänge des Syndrombildners, die die Werte des Syndroms s1, s2 und s3 tragen, sind stellenrichtig mit den drei Eingängen des Zuordners 328 verbunden. Der erste Eingang des Zuordners 328, der den Wert s1 (lineares Prüfbit) des Syndroms trägt, ist gleichzeitig direkt in den ersten Eingang der UND-Gatter 21, 22, 26 und 27 geführt und invertiert in den ersten Eingang der UND-Gatter 23, 24 und 25 geführt. Der zweite Eingang des Zuordners 328, der den Wert des Syndroms trägt, ist gleichzeitig direkt in den zweiten Eingang der UND-Gatter 21, 23, 25 und 27 geführt und invertiert in den zweiten Eingang der UND-Gatter 22, 24 und 26 geführt.
-
Der dritte Eingang des Zuordners 328, der den Wert s3 des Syndroms trägt, ist gleichzeitig direkt in den ersten Eingang der UND-Gatter 22, 24, 25 und 27 geführt und invertiert in den ersten Eingang der UND-Gatter 21, 23 und 26 geführt. Für i = 1, ..., 7 ist der Ausgang des UND-Gatters 2i, der das Ausgabesignal zi trägt, der i-te Ausgang der Schaltung S1 11.
-
Als Beispiel einer nichtlinearen Funktion wird in dem betrachteten Ausführungsbeispiel die nichtlineare Funktion φ(u, w) = u1 + u2 + u3 + u4 + (u1 + w1)(u2 + w2) + (u3 + w6)(u4 + w7) + w3·w4 gewählt, die von der Schaltung S2 212 in 2 implementiert wird.
-
Der Ausgang der Schaltung S2 212, der den Wert φ(u, w) (nichtlineares Prüfbit) trägt, wird in der Schaltung S3 213 mit dem Wert des Bits ε (bereitgestelltes nichtlineares Vergleichsprüfbit) XOR-verknüpft. Schaltung S3 213 gibt damit an ihrem Ausgang den Wert (des nichtlinearen Syndrombits) Δ∊ = ∊ + φ(u, v) aus.
-
Für die Booleschen Ableitungen gilt:
-
Diese Ableitungen werden durch die Schaltung S4 14 gebildet. Eine mögliche Implementierung der Schaltung S4 14 zeigt 4.
-
Man erkennt, dass für i = 1, ..., k, mit k = 4,
gilt, und somit
einfach durch Negation bestimmt sind, so dass sich die Implementierung der Schaltung S4
214 in
4 besonders einfach gestaltet.
-
In
4 sind die die Werte
führenden Ausgänge (Ableitungsbits) durch die Negatoren
35,
36,
37,
38 (Inverter) aus den die Werte
führenden Ausgängen abgeleitet. Ebenso ist es möglich, die die Werte
führenden Ausgänge durch einfache Negation aus den die Werte
führenden Ausgängen abzuleiten, was sinnvoll ist, wenn man an Stelle der XOR-Gatter
31,
32,
33,
34 z. B. entsprechende XNOR-Gatter verwendet.
-
Die Schaltung S4
214 zur Bestimmung der Ableitungen (der Werte der Ableitungsbits) soll nun beispielhaft im Detail beschrieben werden. Die Schaltung S4
214 in
3 hat 11 Eingänge, an denen stellenrichtig die Werte u
1, ..., u
4, w
1, ..., w
7 anliegen und 11 Ausgänge, die die Werte
führen.
-
Im XOR-Gatter
31 wird die das Inputsignal u
1 führende Eingangsleitung mit der das Inputsignal w
1 führenden Eingangsleitung XOR-verknüpft. Der Ausgang des XOR-Gatters
31 ist direkt mit der das Signal
(Ableitungsbit des Bits w
2 der codierten Bitsequenz) führenden Ausgangsleitung und über einen Inverter
36 mit der das Signal
(Ableitungsbit des Bits u
2 der codierten Bitsequenz) führenden Ausgangsleitung verbunden.
-
Im XOR-Gatter
32 wird die das Inputsignal u
2 führende Eingangsleitung mit der das Inputsignal w
2 führenden Eingangsleitung XOR-verknüpft. Der Ausgang des XOR-Gatters
32 ist direkt mit der das Signal
führenden Ausgangsleitung und über einen Inverter
35 mit der das Signal
führenden Ausgangsleitung verbunden.
-
Im XOR-Gatter
33 wird die das Inputsignal u
3 führende Eingangsleitung mit der das Inputsignal w
6 führenden Eingangsleitung XOR-verknüpft. Der Ausgang des XOR-Gatters
33 ist direkt mit der das Signal
führenden Ausgangsleitung und über einen Inverter
38 mit der das Signal
führenden Ausgangsleitung verbunden.
-
Im XOR-Gatter
34 wird die das Inputsignal u
4 führende Eingangsleitung mit der das Inputsignal w
7 führenden Eingangsleitung XOR-verknüpft. Der Ausgang des XOR-Gatters
34 ist direkt mit der das Signal
führenden Ausgangsleitung und über einen Inverter
37 mit der das Signal
führenden Ausgangsleitung verbunden.
-
Der das Signal w
3 tragende Eingang ist direkt mit dem das Signal
tragenden Ausgang verbunden.
-
Der das Signal w
4 tragende Eingang ist direkt mit dem das Signal
tragenden Ausgang verbunden.
-
Der das Signal
führende Ausgang ist konstant gleich 0, da die nichtlineare Funktion φ nicht von w
5 abhängt.
-
5 zeigt eine spezielle Implementierung der Schaltung S5 215 von 2.
-
Die Schaltung von 5 hat 7 binäre Eingänge, in die die Bits z1, z2, z3, z4, z5, z6, z7 (codierte Ausgangssignale des Fehlerpositionsbestimmer des inneren Codes) eingeben werden und die den ersten Eingang der Schaltung bilden und einen zweiten Eingang, in den der Wert Δε eingegeben wird.
-
Weiterhin hat die in
5 abgebildete Schaltung 11 binäre Eingänge, die die Werte
(Ableitungsbits), führen und die den dritten Eingang der Schaltung bilden. Sie hat 11 Ausgänge, an denen die Werte Δu
1, ..., Δu
4, Δw
1, ...Δw
7 (Fehlersignale) zur Korrektur der Bits u
1, ..., u
4, ...w
1, ..., w
7 ausgegeben werden.
-
In speziellen Situationen kann es, wie schon ausgeführt, nicht erforderlich sein, alle Bits u1, ..., u4, w1, ...w7 zu korrigieren. Sind z. B. die Bits w3, w4, w5 nicht zu korrigieren, so können die Ausgänge der Schaltung von 4, die die Werte Δw3,..., Δw4, Δw5 tragen, weggelassen werden. In anderen Worten, bestimmt der Fehlerpositionsbestimmer des inneren Codes nur eine mögliche Fehlerposition für einen Bit-Fehler, so ist nur noch eine Identifikation des Bit-Fehlers als 1-Bit-Fehler notwendig.
-
In diesem Fall kann der Schaltungsteil 58 der Schaltung S5 in 5 weggelassen werden. Die Schaltung von 5 soll nun beispielhaft im Detail beschrieben werden.
-
Der Eingang, der das Signal z1 führt, ist mit den internen Leitungen y1 und y5 verbunden.
-
Der Eingang, der das Signal z2 führt, ist mit den internen Leitungen y2 und y6 verbunden.
-
Der Eingang, der das Signal z3 führt, ist mit den internen Leitungen y3 und y10 verbunden.
-
Der Eingang, der das Signal z4 führt, ist mit den internen Leitungen y4 und y1 verbunden.
-
Der Eingang, der das Signal z5 führt, ist mit der internen Leitung y7 verbunden.
-
Der Eingang, der das Signal z6 führt, ist mit der internen Leitung y9 verbunden.
-
Der Eingang, der das Signal z7 führt, ist mit der internen Leitung y8 verbunden.
-
Für i = 1, ...., 4 ist der das Signal
tragende Eingang mit dem ersten Eingang eines XOR-Gatters 4i verbunden, an dessen zweitem Eingang der Wert Δε anliegt und dessen Ausgang negiert in den ersten Eingang eines UND-Gatters 6i geführt ist, dessen zweiter Eingang mit der Leitung y
i+4 verbunden verbunden ist und dessen Ausgang das Korrektursignal Δu
i führt.
-
Für j = 1, ..., 7 ist der das Signal
tragende Eingang mit dem ersten Eingang eines XOR-Gatters 5j verbunden, an dessen zweitem Eingang der Wert Δε anliegt und dessen Ausgang negiert in den ersten Eingang eines UND-Gatters 7j geführt ist, dessen zweiter Eingang mit der Leitung y
j verbunden ist und dessen Ausgang das Korrektursignal Δw
i führt.
-
Im Folgenden soll nun erläutert werden, wie zwischen einer Korrektur von u
1 und w
1 aufgrund von Δε und der Werte
und
unterschieden wird.
-
Ist beispielsweise u
1 fehlerhaft in ū
1 verändert, dann ist
-
Oder ist beispielsweise w
1 in
w 1 fehlerhaft verändert, dann ist
-
Ist z
1 = 1 und damit y
1 = y
5 = z
1 = 1, dann ist
ist und
ist. Es gilt dabei, dass
ist.
-
Gilt aufgrund eines Fehlers für l = 3, 4, 5
und z
5, z
7 oder z
6 gleich Eins, dann ist das entsprechende Δw
1 gleich Eins. Ist
und ist der entsprechende z
5, z
7 oder z
6 gleich Eins, dann liegt ein unkorrigierbarer Fehler (Mehr-Bit-Fehler) vor.
-
Ist beispielsweise z = 0000010 und damit z
6 = 1 (was Cod(9) entspricht und damit y
9 = 1, dann ist Δw
5 = 1, wenn
ist. Ist
dann erfolgt kein Korrektur von w5. Es liegt dann ein nicht korrigierbarer Mehrbitfehler vor.
-
Die Signale Δu1, ..., Δu4, Δw1, ..., Δw7 werden zur Korrektur mit den Signalen u1, ..., u4, w1, ...w7 XOR-verknüpft.
-
Zur besseren Fehlererkennung kann man ein weiteres Prüfbit π hinzufügen, dass die Parität über alle Bits u1, ..., uk, w1, ..., wt und das Bit ε bildet, π = u1 + u2 + ... + uk + w1 + ... + wt + ∊.
-
Wenn schon der innere Code die Position eines 1-Bit-Fehlers eindeutig bestimmt, wie es im Beispiel für 1-Bit Fehler in den Positionen 7, 8 und 9 zutrifft, dann ist durch das nichtlineare Syndrombit des äußeren Codes eine zusätzliche Prüfgleichung gegeben. Diese Prüfgleichung ist nach der korrekten Korrektur eines 1-Bit-Fehlers stets erfüllt. Bei fehlerhafter Korrektur eines Mehrbitfehlers kann mit Wahrscheinlichkeit erkannt werden, dass kein 1-Bit-Fehler, sondern ein Mehrbitfehler vorliegt. Anhand der Abweichung Δε (nichtlineares Syndrombit) des berechneten Wertes der Prüffunktion von dem ausgelesenen Bitwerts ε (bereitgestelltes nichtlineares Vergleichsprüfbit) sowie der Ableitungen der nichtlinearen Prüffunktion (Ableitungsbit) kann daher mit Wahrscheinlichkeit entschieden werden, ob ein Einbitfehler vorliegt. Kann der innere Code alle die Position aller 1-Bit-Fehler sicher bestimmen, dann erhöht die Verwendung der nichtlinearen Prüffunktion und der vorgeschlagenen Decodierung unter Verwendung der Ableitung der nichtlinearen Funktion die Wahrscheinlichkeit, Mehrbitfehler zu erkennen.
-
Einige Ausführungsbeispiele gemäß der Erfindung beziehen sich auf eine Schaltungsanordnung zur Korrektur von 1-Bit-Fehlern in n-stelligen Binärwörtern v = (u, w, ∊) mit u = u
1, ..., u
k, w = w
1, ..., w
t und k ≤ t, mit u
1, u
2, ..., u
k, w
1, ..., w
t, ε ∈ {0, 1}, wobei (u, w) Elemente eines inneren Codes C sind, wobei das Bit ∊ durch
∊ = φ(u1, ..., uk, w1, ..., wt) bestimmt ist und φ eine nichtlineare Boolesche Funktion ist, wobei es eine Decodierfunktion D(u
1, ..., u
k, w
1, ..., w
t) und eine nichtleere Teilmenge TM
w ⊆ {w
1, ..., w
t} aus k Elementen gibt, so dass für jedes u
i ∊ {u
1, ..., u
k} = U genau ein w
ji ∊ TM
w existiert, so dass für alle Codewörter des inneren Codes (u, w) ∊ C gilt: es ist
D(u1, ..., uk, w1, ..., wji-1, w ji, wji+1, ..., wt) = Cod(i, ji) für alle u
i ∊ U, wobei Cod i, ji eine Codierung der Bitpositionen des Bits u
i und des Bits w
ji ist, wobei
D(u1, ..., uk, w1, ..., wr-1, w r, wr+1, ..., wt) = Cod(r) für w
r ∈ w
1, ..., w
t}\TM
w gilt und Cod(r) eine Codierung der Bitposition des Bits w
r ist, wobei D u, v = Cod 0 für alle Codewörter (u, v) des inneren Codes C gilt und Cod(0) eine Codierung dafür ist, dass kein Fehler korrigiert wird, wobei
für u
i ∈ U gilt, und wobei k + t + 1 = n ist.
-
Dabei ist eine erste Teilschaltung S1 211 zur Realisierung der Decodierfunktion D vorhanden, wobei die Teilschaltung S1 211 k + t binären Eingänge aufweist, an denen die Werte u, w = u1, ...uk, w1, ..., wt anliegen und die an ihrem Ausgang in dem Fall, dass kein Fehler vorliegt, den Wert Cod(0) ausgibt, für den Fall, dass ein 1-Bit-Fehler im Bit ui ∈ U oder im Bit wji ∈ TMw vorliegt, den Wert Cod(i, ji) ausgibt und für den Fall, dass ein 1-Bit-Fehler im Bit wr ∈ {w1, ..., wt}\TMw vorliegt, den Wert Cod(r) ausgibt.
-
Des Weiteren ist eine zweite Teilschaltung S2 212 mit k + 1 binären Eingängen und einem binären Ausgang zur Realisierung der Booleschen Funktion φ vorhanden, an deren k + t binären Eingängen die binären Werte u1, ..., uk, w1, ...wt anliegen und an deren Ausgang der Wert φ[u1, ..., uk, w1, ...wt) ausgegeben wird.
-
Eine dritte Teilschaltung S3 213 mit zwei binären Eingängen und einem binären Ausgang zur Bildung der Differenz Δε = ε + φ(u1, ..., uk, w1, ..., wt) ist vorhanden, an deren ersten Eingang der ε anliegt und deren zweiter Eingang mit dem Ausgang der zweiten Teilschaltung verbunden ist und wobei die Schaltung S3 an ihrem Ausgang die XOR-verknüpften Werte, die an ihren beiden Eingängen anliegen, ausgibt.
-
Ferner ist eine vierte Teilschaltung S4
214 mit k + t binären Eingängen und k + T binären Ausgängen zur Bestimmung der Booleschen Ableitungen
vorhanden, wobei an den k + t Eingängen der Teilschaltung S4
14 die Werte u
1, ..., u
k, w
1, ..., w
t anliegen und T ≤ t ist.
-
Des Weiteren ist eine fünfte Teilschaltung S5 15 zur Bildung der Korrekturwerte mit einem ersten, einem zweiten und einem dritten Eingang und einem k + T Bit breiten Ausgang vorhanden, wobei der erste Eingang mit dem Ausgang der ersten Teilschaltung S1 211 verbunden ist, der zweite Eingang mit dem Ausgang der dritten Teilschaltung S3 213 und der dritte, k + T Bit breite Eingang mit dem ebenfalls k + T Bit breiten Ausgang der vierten Teilschaltung S4 214 verbunden ist, so dass der k + T Bit breite Ausgang der Schaltung S5 215 die k + T Korrekturwerte Δu1, ..., Δuk, Δwi1, ..., ΔwiT führt, die mit den Bits u1, ..., uk, wi1, ..., wiT XOR-verknüpft werden.
-
Gemäß einem Aspekt ist dabei t = T.
-
Des Weiteren ist beispielsweise die Teilschaltung S1 211 eine Reihenschaltung eines Syndrombildners 29 des inneren Codes und eines Zuordners 28 ist, wobei die nichtlineare Funktion φ(u1, ...uk, w1, ..., wt) die Form φ(u1, ..., uk, w1, ..., wt) = u1 + ..., uk + λ(u1 + wj1, ..., uk + wjk, wi1, ..., wi(t-k)) hat und λ eine nichtlineare Funktion ist.
-
Zusätzlich kann ein Paritätsbit vorhanden sein.
-
Optional kann die Schaltung S4
14 zur Ableitungsbildung so realisiert sein, dass an mindestens einem Ausgang dieser Schaltung, an dem die Ableitung
ausgegeben wird, ein Negator
35,
36,
37,
38 angeschlossen ist, an dessen Ausgang die Ableitung
ausgegeben wird.
-
Alternativ oder zusätzlich kann die Schaltung S4
214 zur Ableitungsbildung so realisiert sein, dass an mindestens einem Ausgang dieser Schaltung, an dem die Ableitung
ausgegeben wird, ein Negator angeschlossen ist, an dessen Ausgang die Ableitung
ausgegeben wird.
-
Einige Ausführungsbeispiele gemäß der Erfindung beziehen sich auf einen Decodierer zum Decodieren einer fehlerhaften, codierten Bitsequenz. 7 zeigt ein Blockdiagramm eines solchen Decodierers 700 zum Decodieren einer fehlerhaften, codierten Bitsequenz 102 entsprechend eines Ausführungsbeispiels gemäß der Erfindung. Der Aufbau des Decodierers 700 ist ähnlich der in 6 gezeigten Vorrichtung zur Korrektur eines 1-Bit-Fehlers in einer codierten Bitsequenz, umfasst jedoch zusätzlich eine Decodiereinheit 710. Dabei ist die 1-Bit-Fehler-Korrektureinheit 610 mit der Decodiereinheit 710 verbunden. Die Decodiereinheit 710 decodiert die korrigierte, codierte Bitsequenz 612, um eine decodierte Bitsequenz 712 zu erhalten. Der Fehlerpositionsbestimmer des inneren Codes 110, der Fehlersyndrom-Bestimmer des äußeren Codes 120, der Ableitungsbestimmer 130, der Gesamtfehlerpositionsbestimmer 140 und die 1-Bit-Fehler-Korrektureinheit 610 können auf unterschiedliche Weise implementiert werden, wie zuvor anhand der 1a, 1b und 6 sowie des in den 2 bis 5 gezeigten konkreten Ausführungsbeispiels beschrieben.
-
Die 1-Bit-Fehler-Korrektureinheit 610 und/oder die Decodiereinheit 710 können ebenso wie der Fehlerpositionsbestimmer des inneren Codes 110, der Fehlersyndrom-Bestimmer des äußeren Codes 120, der Ableitungsbestimmer 130 und/oder der Gesamtfehlerpositionsbestimmer 140 beispielsweise unabhängige Hardwareeinheiten oder Teil eines Computer oder Mikrocontrollers sowie ein Computerprogramm oder ein Softwareprodukt zum Ausführen auf einem Computer oder Mikrocontroller sein.
-
Einige Ausführungsbeispiele gemäß der Erfindung beziehen sich auf eine Speichereinheit (z. B. ein RAM, ein Flash-Speicher oder eine Festplatte) mit einer Vorrichtung zur Korrektur eines 1-Bit-Fehlers in einer codierten Bitsequenz nach dem beschriebenen Konzept.
-
Einige weitere Ausführungsbeispiele gemäß der Erfindung beziehen sich auf eine Vorrichtung zum Bestimmen einer Position eines 1-Bit-Fehlers in einer durch einen inneren Code und einem äußeren nichtlinearen Code codierten Bitsequenz, die eine Vorrichtung zum Bestimmen einer Fehlerposition des inneren Codes, eine Vorrichtung zum Bestimmen eines Fehlersyndroms des äußeren Codes, eine Vorrichtung zum Bestimmen eines Ableitungsbits und eine Vorrichtung zum Bestimmen einer Gesamtfehlerposition umfasst. Die Vorrichtung zum Bestimmen einer Fehlerposition des inneren Codes bestimmt basierend auf dem inneren Code zumindest eine mögliche Fehlerposition eines Bit-Fehlers in der codierten Bitsequenz. Die Vorrichtung zum Bestimmen eines Fehlersyndroms des äußeren Codes bestimmt einen Wert eines nichtlinearen Syndrombits des äußeren Codes basierend auf einer nichtlinearen Funktion von Bits der codierten Bitsequenz. Des Weiteren bestimmt die Vorrichtung zum Bestimmen eines Ableitungsbits für zumindest eine bestimmte, mögliche Fehlerposition des Bit-Fehlers einen Wert eines Ableitungsbits basierend auf einer Ableitung der nichtlinearen Funktion nach dem Bit der bestimmten, möglichen Fehlerposition in der codierten Bitsequenz. Ferner bestimmt die Vorrichtung zum Bestimmen einer Gesamtfehlerposition eine Fehlerposition des Bit-Fehlers basierend auf dem nichtlinearen Syndrombit und zumindest einem Ableitungsbits, wenn die Vorrichtung zum Bestimmen einer Fehlerposition des inneren Codes mehr als eine mögliche Fehlerposition des Bit-Fehlers bestimmt. Alternativ erkennt die Vorrichtung zum Bestimmen einer Gesamtfehlerposition den Bit-Fehler basierend auf dem nichtlinearen Syndrombit und einem Ableitungsbit einer bestimmten, möglichen Fehlerposition als 1-Bit-Fehler und erkennt dadurch die bestimmte, mögliche Fehlerposition als Fehlerposition des 1-Bit-Fehlers, wenn die Vorrichtung zum Bestimmen einer Fehlerposition des inneren Codes nur eine mögliche Fehlerposition des Bit-Fehlers in der codierten Bitsequenz bestimmt.
-
11 zeigt ein Flussdiagramm eines Verfahrens 1100 zum Bestimmen einer Position eines 1-Bit-Fehlers in einer durch einen inneren Code und einem äußeren nichtlinearen Code codierten Bitsequenz entsprechend eines Ausführungsbeispiel gemäß der Erfindung. Das Verfahren 1100 umfasst ein Bestimmen 1110 zumindest einer möglichen Fehlerposition eines Bit-Fehlers in der codierten Bitsequenz basierend auf dem inneren Code und ein Bestimmen 1120 eines Werts eines nichtlinearen Syndrombits des äußeren Codes basierend auf einer nichtlinearen Funktion von Bits der codierten Bitsequenz. Des Weiteren umfasst das Verfahren 1100 ein Bestimmen 1130 eines Werts eines Ableitungsbits für zumindest eine bestimmte, mögliche Fehlerposition des Bit-Fehlers basierend auf einer Ableitung der nichtlinearen Funktion nach dem jeweiligen Bit der bestimmten, möglichen Fehlerposition in der codierten Bitsequenz. Ferner umfasst das Verfahren 1100 ein Bestimmen 1150 einer Fehlerposition des Bit-Fehlers basierend auf dem nichtlinearen Syndrombit und zumindest einem Ableitungsbits, wenn mehr als eine mögliche Fehlerposition des Bit-Fehlers bestimmt 1110 wurde, oder ein Erkennen 1160 des Bit-Fehler basierend auf dem nichtlinearen Syndrombit und einem Ableitungsbit einer bestimmten, möglichen Fehlerposition als 1-Bit-Fehler und unterscheiden des 1-Bit-Fehlers von einem Mehr-Bit-Fehler und dadurch erkennen der bestimmten, möglichen Fehlerposition als Fehlerposition des 1-Bit-Fehlers, wenn nur eine mögliche Fehlerposition des Bit-Fehlers in der codierten Bitsequenz bestimmt 1110 wurde.
-
Das Verfahren 1100 kann weitere Verfahrensschritte umfassen, die den zuvor beschriebenen Aspekten des erfindungsgemäßen Konzepts entsprechen.
-
Einige Ausführungsbeispiele gemäß der Erfindung beziehen sich auf ein Verfahren zur Korrektur eines 1-Bit-Fehlers in einer codierten Bitsequenz, die ein Verfahren zum Bestimmen einer Position eines 1-Bit-Fehlers in einer codierten Bitsequenz, wie es zuvor beschrieben wurde, und ein Ändern eines Werts des Bits auf der bestimmten oder erkannten Fehlerposition der codierten Bitsequenz umfasst, um den 1-Bit-Fehler zu korrigieren.
-
Einige weitere Ausführungsbeispiele gemäß der Erfindung beziehen sich auf ein Verfahren zum Decodieren einer fehlerhaften, codierten Bitsequenz, die ein Verfahren zur Korrektur eines 1-Bit-Fehlers, wie zuvor beschrieben, und ein Decodieren der korrigierten, codierten Bitsequenz umfasst, um eine decodierte Bitsequenz zu erhalten.
-
Einige Ausführungsbeispiele gemäß der Erfindung beziehen sich auf eine Decodierungsschaltung für nichtlineare Vasil'ev-Codes. Das beschriebene Konzept kann z. B. die Decodierungslogik nichtlinearer 1-Bit-Fehler korrigierender und 2-Bit-Fehler erkennender Codes (SEC-DED-Codes, SEC-DED ist ein englisches Akronym für singe-error correction, double-error detecting, Einzelfehlerkorrektur, Doppelfehlererkennung) vereinfachen. Durch das vorgeschlagene Konzept kann die Geschwindigkeit der Decodierschaltung erhöht und die vorteilhafte Verwendung von Codes mit mehreren nichtlinearen Syndrombits (im Folgenden Vasil'ev-2 genannt) technisch ermöglicht werden. Das beschriebene Konzept kann für erweiterte Vasil'ev- und verwandte Codes angewendet werden, die bisher wegen der aufwendigen und langsamen Decodierung nicht praktisch einsetzbar sind.
-
Als 1-Bit-Fehler korrigierende, 2-Bit-Fehler erkennende Codes für Speicher der typischen Wort-breiten 16, 32, 64 Bit etc. werden zur Zeit praktisch überall (verkürzte) Hsiao-Codes eingesetzt. Erweiterte Vasil'ev-Codes mit der gleichen Wortbreite ermöglichen eine deutlich bessere Erkennung von permanenten Fehlern mit drei oder mehr fehlerhaften Bitstellen.
-
Die Wahrscheinlichkeit, mit der beliebige Fehler erkannt werden, ist unabhängig vom verwendeten Code nur von der Zahl der Prüfbit abhängig. Lineare Codes erkennen jedoch für jedes gespeicherte Codewort dieselben Fehler – daher wird eine Teilmenge der Fehler stets und eine zweite Teilmenge der Fehler nie erkannt. Bei nichtlinearen Codes hingegen werden in Abhängigkeit vom gespeicherten Codewort unterschiedliche Fehler erkannt. Damit teilen sich die Fehler für Vasil'ev-Codes auf drei Teilmengen auf. Eine erste Teilmenge der Fehler wird stets als fehlerhaft erkannt, die zweite Teilmenge wird mit Wahrscheinlichkeit 1/2 erkannt (gilt für Vasil'ev-1-Codes, bei Vasil'ev-2-Codes ist die bedingte Erkennungswahrscheinlichkeit ≥ ¼ je Taktzyklus.) Die Teilmenge der Fehler, die nie erkannt werden, ist klein und ihr relativer Anteil nimmt mit steigender Wortbreite stark ab. Bei nichtlinearen Codes nimmt daher die Wahrscheinlichkeit der Nichterkennung für fast alle permanenten Fehler exponentiell mit der Zahl der gespeicherten Worte bzw. Schreib-Lese-Zyklen ab.
-
In
8 ist der Anteil der mit linearen und nichtlinearen Codes erkennbaren Fehler dargestellt. Dabei bezeichnet Vasil'ev-1 einen erweiterten Vasil'ev-Code mit einem nichtlinearen Syndrombit und Vasil'ev-2 einen erweiterten Vasil'ev-Code mit zwei nichtlinearen Syndrombits. Der Einsatz von Vasil'ev-2-Codes kann durch das vorgeschlagene Konzept praktisch überhaupt erst ermöglicht werden. Der Anteil erkennbarer 3-Bit-Fehler ist in
9 für Hsiao-, Vasil'ev-1- und Vasil'ev-2-Codes sowie lineare Even-Odd-Codes (es existiert kein Even-Odd-Code für 16 Informationsbits) dargestellt. Die Even-Odd-Codes sind die bzgl. 3-Bit-Fehlererkennung besten linearen Codes. Man erhält sie durch computergestütztes Kürzen von Hamming-Codes mit dem Ziel max. 3-Bit-Fehlererkennung. In den folgenden Tabellen ist die Erkennungsleistung für beliebige Fehler bzw. für 3-Bit-Fehler noch einmal detailliert aufgelistet. Tabelle 1 Erkennbarkeit beliebiger Fehler
(n, m) | Hsiao-Code | Vasil'ev-1 | Vasil'ev-2 |
(22, 16) | 65,63% | 81,24% | 98,82% |
(39, 32) | 69,53% | 89,06% | 99,99% |
(72, 64) | 71,88% | 93,75% | >> 99,99% |
(137, 128) | 73,24% | 96,48% | >> 99,99% |
Tabelle 2 Erkennbarkeit von 3-Bit-Fehlern
Code | Datenbits | sicher | mit Wahrscheinlichkeit erkannte 3-Bit-Fehler (%) | nie |
Hsiao | | 35,06% | 0,00% | 64,94% |
Vasil'ev-1 | 16 | 3,90% | 60,26% (p = 1/2) | 35,84% |
Vasil'ev-2 | | 3,90% | 87,53% (p ≥ 1/4) | 8,57% |
Hsiao | | 40,34% | 0,00% | 59,66% |
Vasil'ev-1 | 32 | 1,91% | 77,12% (p = 1/2) | 20,97% |
Vasil'ev-2 | | 1,91% | 95,56% (p ≥ 1/4) | 2,53% |
Hsiao | | 43,72% | 0,00% | 56,28% |
Vasil'ev-1 | 64 | 0,75% | 87,12% (p = 1/2) | 12,13% |
Vasil'ev-2 | | 0,75% | 98,55% (p ≥ 1/4) | 0,70% |
Hsiao | | 46,29% | 0,00% | 53,71% |
Vasil'ev-1 | 128 | 0,26% | 92,84% (p = 1/2) | 6,90% |
Vasil'ev-2 | | 0,26% | 99,56% (p ≥ 1/4) | 0,19% |
-
In der Tabelle „Erkennbarkeit beliebiger Fehler” sind in der ersten Spalte mit n und m die Länge eines Codes und die Anzahl der Datenbits bezeichnet. So ist beispielsweise in der ersten Zeile dargestellt, dass ein Code der Länge 22 mit 15 Datenbits betrachtet wird. Man entnimmt der ersten Zeile dieser Tabelle, dass für einen Hsiao-Code 65,63% aller möglichen Fehler, für einen Vasilev1-Code 81,24% aller möglichen Fehler und für einen Vasilev2-Code 98,82% aller möglichen Fehler erkannt werden.
-
Vasilev1-Codes und Vasilev2-Codes sind nichtlineare Codes, für die ein Teil der Fehler stets, eine Teil der Fehler mit Wahrscheinlichkeit und ein Teil der Fehler nie erkannt werden können, wobei der Anteil der nie erkennbaren Fehler mit wachsender Codelänge gegen 0 geht.
-
So beträgt der Anteil der erkannten Fehler für einen Vasilev2-Code der Länge 127 mit 128 Datenbits mehr als 99,99%.
-
Für 3-Bit Fehler is ihre Erkennbarkeit in der Tabelle „Erkennbarkeit von 3-Bit Fehlern” dargestellt.
-
In den Spalten „sicher”, „mit Wahrscheinlichkeit erkannte 3-Bit Fehler” und „nie” werden die entsprechenden Prozentzahlen für die betrachteten Codes für 16, 32, 64 und 128 Datenbits dargestellt. Wird ein Fehler mit Wahrscheinlichkeit erkannt, so wird er mit einer Wahrscheinlichkeit ½ für einen Vasilev1-Code und mit Wahrscheinlichkeit ≤ ¼ für einen Vasilev2-Code erkannt. Die nie erkannten 3-Bit Fehler nehmen prozentual mit wachsender Codelänge stark ab.
-
Vasil'ev-Codes können durch Verdopplung eines inneren Codes und das Anhängen eines nicht-linearen Prüfbits erzeugt. Wie Hamming-Codes sind Vasil'ev-Codes 1-Bit-Fehler korrigierende Codes, die durch das Hinzufügen der Parität über alle Codewortbits zu 1-Bit-Fehler korrigierenden, 2-Bit-Fehler erkennenden Codes erweitert werden können. Im Folgenden wird ein erweiterter Vasil'ev-Code mit einem linearen inneren Code (Vasil'ev-1) beschrieben, die Ausführungen lassen sich jedoch leicht auf erweiterte Vasil'ev-Codes, deren innerer Code wiederum ein Vasil'ev-Code ist, übertragen (Vasil'ev-2).
-
Der innere Code wird durch ein nichtlineares Prüfbit ergänzt, das mit Hilfe einer nicht-linearen Funktion über den Bits des inneren Codes (u, w) berechnet wird.
-
Bisher werden für die Fehlererkennung zunächst die Werte der Prüffunktionen des inneren Codes sowie der Wert der nichtlineare Prüffunktion neu berechnet und mit den gespeicherten Prüfbitwerten verglichen. Dabei wird die Abweichung des Werts der nichtlinearen Prüffunktion vom gespeicherten Prüfbitwert als nichtlineares Syndrom bezeichnet.
-
Weisen die Prüfbits des inneren Codes auf einen Einbitfehler hin, wird bisher ein 2-stufiges Decodierungsverfahren angewendet. Mit Hilfe des inneren Codes kann festgestellt werden, dass der Fehler entweder an der i-ten oder an der (i + n)-ten Stelle des Codeworts v liegt (Syndrom ist hi). Zunächst wird probeweise die i-te Speicherstelle korrigiert und anschließend der Wert der nichtlinearen Prüffunktion erneut bestimmt. Erkennt man anhand des neu berechneten Syndromwerts des probeweise korrigierten Wortes, dass kein Fehler mehr vorliegt, dann war die Korrektur von ui erfolgreich. Liegt andererseits nach der probeweisen Korrektur ein 2-Bit-Fehler vor, dann ist die Korrektur von ui rückgängig zu machen und ui+n zu korrigieren.
-
Dies verlangsamt die Decodierung im Vergleich zu linearen Codes deutlich. Die Verwendung von nichtlinearen inneren Codes (Vasil'ev-2) erscheint nach der bisher bekannten Methode nicht sinnvoll technisch umsetzbar, da dann bereits vier mögliche Korrekturen betrachtet werden müssten.
-
Das erfindungsgemäße Konzept kann die Decodierung dadurch beschleunigen, dass die zu korrigierende Position mit Hilfe der booleschen Ableitung der nichtlinearen Prüffunktion direkt bestimmt wird. Das Verfahren ist prinzipiell für alle nichtlinearen Funktionen anwendbar. Obwohl manche Aspekte im Zusammenhang mit einer Vorrichtung beschrieben wurden, versteht es sich, dass diese Aspekte auch eine Beschreibung des entsprechenden Verfahrens darstellen, sodass ein Block oder ein Bauelement einer Vorrichtung auch als ein entsprechender Verfahrensschritt oder als ein Merkmal eines Verfahrensschrittes zu verstehen ist. Analog dazu stellen Aspekte, die im Zusammenhang mit einem oder als ein Verfahrensschritt beschrieben wurden, auch eine Beschreibung eines entsprechenden Blocks oder Details oder Merkmals einer entsprechenden Vorrichtung dar.
-
Je nach bestimmten Implementierungsanforderungen können Ausführungsbeispiele der Erfindung in Hardware oder in Software implementiert sein. Die Implementierung kann unter Verwendung eines digitalen Speichermediums, beispielsweise einer Floppy-Disk, einer DVD, einer Blu-ray Disc, einer CD, eines ROM, eines PROM, eines EPROM, eines EEPROM oder eines FLASH-Speichers, einer Festplatte oder eines anderen magnetischen oder optischen Speichers durchgeführt werden, auf dem elektronisch lesbare Steuersignale gespeichert sind, die mit einem programmierbaren Computersystem derart zusammenwirken können oder zusammenwirken, dass das jeweilige Verfahren durchgeführt wird. Des-halb kann das digitale Speichermedium computerlesbar sein. Manche Ausführungsbeispiele gemäß der Erfindung umfassen also einen Datenträger, der elektronisch lesbare Steuersignale aufweist, die in der Lage sind, mit einem programmierbaren Computersystem derart zusammenzuwirken, dass eines der hierin beschriebenen Verfahren durchgeführt wird.
-
Allgemein können Ausführungsbeispiele der vorliegenden Erfindung als Computerprogrammprodukt mit einem Programmcode implementiert sein, wobei der Programmcode dahin gehend wirksam ist, eines der Verfahren durchzuführen, wenn das Computerprogrammprodukt auf einem Computer abläuft. Der Programmcode kann beispielsweise auch auf einem maschinenlesbaren Träger gespeichert sein.
-
Andere Ausführungsbeispiele umfassen das Computerprogramm zum Durchführen eines der hierin beschriebenen Verfahren, wobei das Computerprogramm auf einem maschinenlesbaren Träger gespeichert ist.
-
Mit anderen Worten ist ein Ausführungsbeispiel des erfindungsgemäßen Verfahrens somit ein Computerprogramm, das einen Programmcode zum Durchführen eines der hierin beschriebenen Verfahren aufweist, wenn das Computerprogramm auf einem Computer ab-läuft. Ein weiteres Ausführungsbeispiel der erfindungsgemäßen Verfahren ist somit ein Datenträger (oder ein digitales Speichermedium oder ein computerlesbares Medium), auf dem das Computerprogramm zum Durchführen eines der hierin beschriebenen Verfahren aufgezeichnet ist.
-
Ein weiteres Ausführungsbeispiel des erfindungsgemäßen Verfahrens ist somit ein Datenstrom oder eine Sequenz von Signalen, der bzw. die das Computerprogramm zum Durchführen eines der hierin beschriebenen Verfahren darstellt bzw. darstellen. Der Datenstrom oder die Sequenz von Signalen kann bzw. können beispielsweise dahin gehend konfiguriert sein, über eine Datenkommunikationsverbindung, beispielsweise über das Internet, transferiert zu werden.
-
Ein weiteres Ausführungsbeispiel umfasst eine Verarbeitungseinrichtung, beispielsweise einen Computer oder ein programmierbares Logikbauelement, die dahin gehend konfiguriert oder angepasst ist, eines der hierin beschriebenen Verfahren durchzuführen.
-
Ein weiteres Ausführungsbeispiel umfasst einen Computer, auf dem das Computerprogramm zum Durchführen eines der hierin beschriebenen Verfahren installiert ist.
-
Bei manchen Ausführungsbeispielen kann ein programmierbares Logikbauelement (beispielsweise ein feldprogrammierbares Gatterarray, ein FPGA) dazu verwendet werden, manche oder alle Funktionalitäten der hierin beschriebenen Verfahren durchzuführen. Bei manchen Ausführungsbeispielen kann ein feldprogrammierbares Gatterarray mit einem Mikroprozessor zusammenwirken, um eines der hierin beschriebenen Verfahren durchzuführen. Allgemein werden die Verfahren bei einigen Ausführungsbeispielen seitens einer beliebigen Hardwarevorrichtung durchgeführt. Diese kann eine universell einsetzbare Hardware wie ein Computerprozessor (CPU) sein oder für das Verfahren spezifische Hardware, wie beispielsweise ein ASIC.
-
Die oben beschriebenen Ausführungsbeispiele stellen lediglich eine Veranschaulichung der Prinzipien der vorliegenden Erfindung dar. Es versteht sich, dass Modifikationen und Variationen der hierin beschriebenen Anordnungen und Einzelheiten anderen Fachleuten ein-leuchten werden. Deshalb ist beabsichtigt, dass die Erfindung lediglich durch den Schutzumfang der nachstehenden Patentansprüche und nicht durch die spezifischen Einzelheiten, die anhand der Beschreibung und der Erläuterung der Ausführungsbeispiele hierin präsentiert wurden, beschränkt sei.
-
ZITATE ENTHALTEN IN DER BESCHREIBUNG
-
Diese Liste der vom Anmelder aufgeführten Dokumente wurde automatisiert erzeugt und ist ausschließlich zur besseren Information des Lesers aufgenommen. Die Liste ist nicht Bestandteil der deutschen Patent- bzw. Gebrauchsmusteranmeldung. Das DPMA übernimmt keinerlei Haftung für etwaige Fehler oder Auslassungen.
-
Zitierte Nicht-Patentliteratur
-
- „S. W. Jablonski, G. P. Gawrilow, W. B. Kudrjawzew, „Boolesche Funktionen und Postsche Klassen”, Akademie-Verlag, Berlin, 1969, S. 18” [0038]
- „Zander, H., J., Logischer Entwurf binärer Systeme, Verlag Technik, Berlin 1989, 3. Auflage S. 40–41” [0085]