Πανεπιστήμιο Κύπρου Τμήμα Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών ΗΜΥ 424: Συστηματα Ανοχης Σφαλματων Εαρινό Εξάμηνο 2017-2018 Καθηγητής: Χριστόφορος Χατζηκωστής Σειρά Ασκήσεων 3 Real Number Codes, Algorithm-Based Fault Tolerance, Residue Number Systems, Redundant Residue Number Systems Εκδοση: Πέμπτη, 29 Μαρτίου Σχετικά κεφάλαια στα βιβλία: (1) I Koren and C M Krishna, Κεφάλαιο 3, (2) Hadjicostis, Κεφάλαια 2 και 3, (3) Άρθρα από JAbraham και συνεργάτες, (4) Σημειώσεις από διάλεξη Παράδοση: Δευτέρα, 30 Απριλίου Άσκηση 31 (α) Εχουμε δει ότι checksums σε στήλες και σειρές μπορούν να χρησιμοποιηθούν για να ανιχνεύσουν και να διορθώσουν λάθη σε πράξεις με πίνακες Για τον πιο κάτω 3 3 πίνακα 1 2 4 A = 3 5 7, 6 8 9 ποιός είναι ο αντίστοιχος (κωδικοποιημένος) column- και row-weighted πίνακας A rc ; (β) Για ένα άλλο πίνακα B, η μορφή του (πιθανώς λανθασμένου, μετά από κάποιους υπολογισμούς) B rc (f) δίνεται ως 3 5 9 7 B rc (f) = 6 9 13 28 4 5 6 5 5 9 16 30 Θεωρώντας ότι έχει γίνει το πολύ ένα σφάλμα (που έχει επηρεάσει το πολύ ένα στοιχέιο του πίνακα), βρείτε αν έγινε σφάλμα και διορθώστε το αν μπορείτε Δικαιολογείστε την απάντησή σας
Άσκηση 32 Στις τεχνικές algorithm-based fault tolerance (ABFT), ο Abraham και οι συνεργάτες του προστατεύουν ένα διάνυσμα v διάστασης k από λάθος σε ένα από τα στοιχεία του διανύσματος (αυτό το λάθος μπορεί, για παράδειγμα να οφείλεται σε σφάλματα στον υπολογισμό ενός πολλαπλασιασμού ενός k k πίνακα με ένα διάνυσμα διάστασης k σε ένα 1 D systolic array) Η βασική ιδέα είναι να προσθέσουν δύο επιπλέον στοιχεία, κωδικοποιόντας έτσι το διάνυσμα v σε ένα διάνυσμα c το οποίο δίνεται από 1 0 0 0 0 1 0 0 c = v 0 0 0 1 1 1 1 1 1 2 2 2 2 k 1 }{{} I G= k Αν στο i στοιχείο του κωδικοποιημένου διανύσματος c έχει προστεθεί ένα σφάλμα v, τότε το parity check θα δώσει το σύνδρομο C H(c + vu i ) = vhu i = vh(:, i), όπου u i είναι ένα διάνυσμα διάστασης (k + 2) με ένα μοναδικό 1 στο i στοιχείο του και H = [ C I 2 ] (Σημειώστε ότι H(:, i) δηλώνει την i στήλη του πίνακα H) Ενας φοιτητής εισηγείται ότι σφάλματα που επηρεάζουν ένα μόνο στοιχείο μπορούν επίσης να διορθωθούν εάν κωδικοποιήσουμε χρησιμοποιώντας τον πίνακα G = 1 0 0 0 0 1 0 0 0 0 0 1 1 1 1 1 1 2 3 k Συμφωνείτε με αυτή την εισήγηση; Δικαιολογείστε την απάντησή σας Υπάρχουν οποιαδήποτε πλεονεκτήματα/μειονεκτήματα της χρήσης του G αντί του G;
Άσκηση 33 Είναι γνωστό ότι ένας D D πίνακας Vandermonde της μορφής 1 1 1 x 1 x 2 x D x 2 1 x 2 2 x 2 D x D 1 1 x D 1 2 x D 1 D όπου x i R, i {1, 2,, D}, είναι αντιστρέψιμος αν x i x j για i j, i, j {1, 2,, D} (α) Δείξτε ότι ο (n, n 4) real-number κώδικας (για n > 4) με parity check matrix 1 1 1 1 H = 1 2 3 n 1 4 9 n 2 1 8 27 n 3 (με διαστάσεις 4 n) μπορεί να ανιχνεύσει σφάλματα σε 4 θέσεις (β) Διορθώστε το σφάλμα (ή τα σφάλματα) στο διάνυσμα [1 2 0 0 0] T θεωρώντας ότι έχουν γίνει σφάλματα το πολύ σε δύο θέσεις (γ) Διορθώστε το σφάλμα (ή τα σφάλματα) στο διάνυσμα [ 2 0 0 0 35 84 70 20 0 0 0 ] T θεωρώντας ότι έχουν γίνει σφάλματα το πολύ σε δύο θέσεις Βοήθημα: Ξεκινώντας από οποιοδήποτε codeword c, μπορείτε να θεωρήσετε προσθετικά (additive) σφάλματα e i1, e i2, e i3, e i4 R στις θέσεις i 1, i 2, i 3, i 4 {1, 2,, n}, και να δείξετε ότι υποχρεωτικά τα σφάλματα θα ανιχνευθούν από το parity check H(c + e) (όπου το e είναι ένα n 1 διάνυσμα με όλα τα στοιχεία μηδέν εκτός από τις θέσεις i 1, i 2, i 3, i 4, οι οποίες έχουν τιμές e i1, e i2, e i3, e i4 αντίστοιχα) Άσκηση 34 Δείξτε ότι ένα residue check με modulus A = 2 a+1 1 (για κάποιο θετικό ακέραιο a) μπορεί να ανιχνεύσει όλα τα λάθη σε μια ομάδα από a (ή πιο λίγα) γειτονικά bits (τέτοια λάθη ονομάζονται burst errors μήκους a ή λιγότερο) Επίσης, περιγράψτε πώς γίνεται η ανίχνευση των λαθών
Άσκηση 35 Μας δίνεται ένας ακέραιος αριθμός X σε binary μορφή b k b k 1 b 0 για κάποιο ακέραιο k Μας ενδιαφέρει να δούμε πώς αλλάζει το υπόλοιπο του X modulo-3, το οποίο συμβολίζουμε σαν X 3, αν ο αριθμός γίνει shift στα αριστερά Συγκεκριμένα, αν το Y είναι ο ακέραιος που αντιστοιχεί στην binary μορφή b k 1 b k 2 b 0, ποιά η σχέση μεταξύ X 3 και Y 3 ; Θα πρέπει να διαχωρίσετε δύο περιπτώσεις, ανάλογα με το αν το b k = 0 ή b k = 1 Δείξτε την ορθότητα της σχέσης που βρήκατε μεταξύ του X 3 και Y 3, κάνοντας το X = 10101 shift πέντε φορές στα αριστερά Άσκηση 36 Μας δίνεται ένα redundant residue number system (RRNS) με moduli p 1 = 5, p 2 = 7 και p 3 = 13, το οποίο χρησιμοποιείται για να προστατέψει προσθέσεις και αφαιρέσεις ακέραιων αριθμών στο διάστημα [0, 34] (α) Ποιά η μορφή (κωδικοποίηση) του ακέραιου αριθμού 25 στο πιο πάνω RRNS; (β) Δεδομένου ότι έχουμε ένα ακέραιο στην κωδικοποιημένη μορφή (r 1, r 2, r 3 ) σε αυτό το RRNS βρείτε συντελεστές c 1, c 2 και c 3, τέτοιους ώστε r = ( 3 i=1 r ) ic i mod 315 να είναι ο μοναδικός ακέραιος αριθμός στο διάστημα [0, 454] για τον οποίο ισχύει r mod p i = r i, i = 1, 2, 3 (γ) ( Δεδομένου του (r 1, r 2, r 3 ) βρείτε συντελεστές c (12) 1 και c (12) 2 τέτοιους ώστε r = 2 ) i=1 r ic (12) i mod 35 να είναι ο μοναδικός ακέραιος στο διάστημα [0, 34] για τον οποίο ισχύει r mod p i = r i, i = 1, 2 (δ) Θεωρώντας το πολύ ένα σφάλμα (το οποίο επηρεάζει το πολύ ένα moduli) αποφασίστε κατά πόσο το (1, 3, 6) αντιστοιχεί σε σωστό ή λάθος αποτέλεσμα Αν αντιστοιχεί σε λάθος αποτέλεσμα, δώστε πιθανό(ά) σωστό(ά) αποτέλεσμα (αποτελέσματα) (ε) Επαναλάβετε το πιό πάνω (μέρος δ) για το αποτέλεσμα (2, 2, 1) Άσκηση 37 Σχεδιάστε ένα redundant residue number system (RRNS) το οποίο να μπορεί να προστατέψει προσθέσεις και αφαιρέσεις ακέραιων αριθμών στο διάστημα [0, 100000] από ένα σφάλμα το οποίο επηρεάζει ένα από τα moduli Βελτίωστε την επιλογή των moduli p 1, p 2, p 3,, p k, p k+1, p k+2 (όπου k είναι ο αριθμός των non-redundant moduli), με βάση τα ακόλουθα κριτήρια:
Πρώτιστο κριτήριο: Να κρατηθεί το μέγιστο delay (maximum delay) των υπολογισμών στα moduli (το οποίο δίνεται από το log 2 p i για το κάθε moduli) όσο πιο μικρό γίνεται Δευτερεύων κριτήριο: Να κρατήσετε των αριθμό των moduli όσο πιο μικρό γίνεται