Thread View: de.comp.misc
4 messages
4 total messages
Started by Eric Mueller
Thu, 28 May 1998 00:00
Frage zu Parity-Berechnung
Author: Eric Mueller
Date: Thu, 28 May 1998 00:00
Date: Thu, 28 May 1998 00:00
82 lines
3390 bytes
3390 bytes
Und wiedereinmal (alle Jahre wieder) Poste ich meine Frage, auf
die mir bisher noch nie jemand geantwortet hat. Aber ich gebe nicht
auf ;-). Deshalb hier nochmals:
Hi liebe Netzgemeinde
Ich habe da im PC Direkt Magazin von 1996 (Sonderausgabe "Alles ueber SCSI")
mich mit dem Thema etwas auseinandersetzten wollen und bin auf Seite 44
bei der Erklaerung ueber Paritaetspruefung bei RAID steckengeblieben. Irgend-
wie fehlt mir da der rote Faden, vielleicht kann mir einer weiterhelfen.
Es geht also um Paritaetspruefung bei RAID anhand einfacher XOR Vergleiche
bei 4 HDD plus einer Parity HDD. Das Beispiel zeigt "graphisch" und anhand
zweier Formeln, wie die Parity erst berechnet wird und wie anschliessend
bei einer defekten HDD wieder die Information zurueckberechnet werden kann.
Eigentlich weiss ich ja, wie man zwei binaere Werte XOR nimmt, aber wie man
mehrere Werte gleichzeitig XORt, sehe ich dem Beispiel nicht an, bzw. das
Beispiel kommt auf andere Werte als ich, wenn ich Schritt fuer Schritt
immer nur zwei Ziffern XORe. Wie also muss ich vorgehen?
Ich versuche, das Beispiel aus dem Heft hier zum Besten zu geben:
<ZITAT>
Bits
7 6 5 4 3 2 1 0 Wert
HDD 1 1 0 1 0 1 1 0 0 172
HDD 2 0 1 1 0 1 0 1 0 106
(defekt)
HDD 3 1 1 1 1 0 0 0 0 240
HDD 4 1 0 1 0 1 0 1 0 156
Parity-HDD 1 0 1 0 1 0 1 0 170
Formel zur Berechnung des Paritaetsbits:
HDD 1 HDD 2 HDD 3 HDD 4 Parity
bit7 XOR bit7 XOR bit7 XOR bit7 = bit7
Formel zur Berechnung eines Datenbits bei Plattenausfall:
HDD 1 Parity HDD 3 HDD 4 HDD 2
bit7 XOR bit7 XOR bit7 XOR bit7 = bit7
</ZITAT>
Ja, genauso stehts dort geschrieben. Muesste uebrigens nicht schonmal
HDD 4 und die Parity HDD bei gleichem Bitmuster auch den gleichen Wert
haben??? Was ich nun machen wuerde ware fuer Bit 5 zum Beispiel:
1 XOR 1 = 0, Bit 5 von HDD1 mit Bit 5 von HDD2
0 XOR 1 = 1, Ergebnis von vorhin mit Bit 5 von HDD3
1 XOR 1 = 0, Ergebnis von vorhin mit Bit 5 von HDD4 ergaebe bei mir 0, nicht
wie im Heft 1.......
Wie also loest man eine Ketten-XOR-Rechnung???
Vielen Dank fuer die wohlwollende Antwort.
- Eric Mueller
eric.mueller@sd.id.ethz.ch
--
............................................................snip
eric.mueller@sd.id.ethz.ch +41-01/6321022 (Telefax)
925: +41-01/6323499
Swiss Federal Institute of Technology
PGP on request ETH Zuerich, Switzerland
Re: Frage zu Parity-Berechnung
Author: (C)hris
Date: Thu, 28 May 1998 00:00
Date: Thu, 28 May 1998 00:00
18 lines
1148 bytes
1148 bytes
Grundsaetzlich ist die Frage wie beim XOR die Klammern gesetzt werden. (A XOR B) XOR C ist nicht gleich A XOR (B XOR C). Das wurde da irgendwie unterschlagen. Somit ist XDOR nicht distributiv oder wie das schon wieder hiess. Koennte es auch ein Fehler in Deiner Literatur sein? Ist ja in Computer-Literatur keine Seltenheit. Die Formel um auf das Partity-Teil zu kommen ist mir nicht ersichtlich: Ich habe ein paar Varanten probiert und bin nicht darauf gekommen (nicht dass ich mir Muehe gegeben haette): Alle Kombinationen fuehren nicht zum gewuenschten Resultat. (C)hris, der Bit-Schiebende
Re: Frage zu Parity-Berechnung
Author: Thomas Klaeger
Date: Fri, 29 May 1998 00:00
Date: Fri, 29 May 1998 00:00
51 lines
2533 bytes
2533 bytes
On 28 May 1998 15:25:47 GMT, eric@sd.id.ethz.ch (Eric Mueller) wrote:
>Eigentlich weiss ich ja, wie man zwei binaere Werte XOR nimmt, aber wie man
>mehrere Werte gleichzeitig XORt, sehe ich dem Beispiel nicht an, bzw. das
>Beispiel kommt auf andere Werte als ich, wenn ich Schritt fuer Schritt
>immer nur zwei Ziffern XORe. Wie also muss ich vorgehen?
>
>
>1 XOR 1 = 0, Bit 5 von HDD1 mit Bit 5 von HDD2
>0 XOR 1 = 1, Ergebnis von vorhin mit Bit 5 von HDD3
>1 XOR 1 = 0, Ergebnis von vorhin mit Bit 5 von HDD4 ergaebe bei mir 0, nicht
> wie im Heft 1.......
>
>Wie also loest man eine Ketten-XOR-Rechnung???
>
Hoi Eric,
Deine �berlegung ist schon richtig - deshalb schreiben sie ja auch, dass die
HDD2 defekt ist :-)
Die XOR-Berechnung ist voll kommutativ, assoziativ, ..., also
A XOR B = B XOR A
A XOR B XOR C = (A XOR B) XOR C = A XOR (B XOR C)
Das ist so, weil XOR �quivalent zur Addition Modulo 2 ist - dh addiere alle
Eing�nge einer XOR-Berechnung mit mehreren Eing�ngen und nimm den Rest wenn Du
das Resultat durch 2 teilst.
Aus dieser Vorschrift erh�ltst Du einen einfachen Test: Wenn die Anzahl Bits
(ohne das Parity-Bit) mit Wert 1 ungerade ist, dann ist das Parity-Bit 1, sonst
ist es 0. Oder: Wenn die Anzahl Bits (mit Parity-Bit) mit Wert 1 gerade ist,
dann sind alle Bits korrekt.
Hier nochmals das Beispiel aus dem Heft, mit den richitgen Werten:
Bits
7 6 5 4 3 2 1 0 Wert
HDD 1 1 0 1 0 1 1 0 0 172
HDD 2
(defekt) 0 1 1 0 1 0 1 0 106
richtig 0 1 0 1 1 1 0 0
HDD 3 1 1 1 1 0 0 0 0 240
HDD 4 1 0 1 0 1 0 1 0 156
Parity-HDD 1 0 1 0 1 0 1 0 170
Gruss Thomas
Re: Frage zu Parity-Berechnung
Author: Marc SCHAEFER
Date: Fri, 29 May 1998 00:00
Date: Fri, 29 May 1998 00:00
46 lines
1951 bytes
1951 bytes
(C)hris <chris@staubli.ch> wrote:
> (A XOR B) XOR C ist nicht gleich A XOR (B XOR C).
a b c a X b b X c (a X b) X c a X (b X c)
0 0 0 0 0 0 0
0 0 1 0 1 1 1
0 1 0 1 1 1 1
0 1 1 1 0 0 0
1 0 0 1 0 1 1
1 0 1 1 1 0 0
1 1 0 0 1 0 0
1 1 1 0 0 1 1
maybe I am missing something, but it looks commutative (b.) and
associative (a.), thus
a. (a X b) x c == a X (b X c)
b. (a X b) == (b X a)
But not distributive (unlike AND, for example)
(a X b) X c != (a X c) X (b X c)
counter example:
a = 0, b = 0, c = 1
(0 X 0) X 1 != (0 X 1) X (0 X 1)
1 != 0
`AND' is distributive:
(a AND b) AND c == (a AND c) AND (b AND c)
== a AND c AND b AND c
== a AND b AND c == (a AND b) AND c
Another interesting property of XOR:
if
a X b == c
then
a == c X b == (a X b) X b == a X (b X b) == a
This is because: c X b == (a X b) X b == a X (b X b) == a
^ associativity (cf above)
Some ciphers probably also are based on the property that
(text X key) X key == text
RAID systems are interested in p = a X B; a == p X B for example.
Thread Navigation
This is a paginated view of messages in the thread with full content displayed inline.
Messages are displayed in chronological order, with the original post highlighted in green.
Use pagination controls to navigate through all messages in large threads.
Back to All Threads