Ψηφιακή Λογική Σχεδίαση

Σχετικά έγγραφα
Διοικητική Λογιστική

Θερμοδυναμική. Ανοικτά Ακαδημαϊκά Μαθήματα. Πίνακες Νερού σε κατάσταση Κορεσμού. Γεώργιος Κ. Χατζηκωνσταντής Επίκουρος Καθηγητής

Εισαγωγή στους Αλγορίθμους

Εισαγωγή στους Αλγορίθμους

Εισαγωγή στην Πληροφορική

Λογιστική Κόστους Ενότητα 12: Λογισμός Κόστους (2)

Τίτλος Μαθήματος: Μαθηματική Ανάλυση Ενότητα Γ. Ολοκληρωτικός Λογισμός

ΣΥΣΤΗΜΑΤΑ ΗΛΕΚΤΡΙΚΗΣ ΕΝΕΡΓΕΙΑΣ ΙIΙ

ΣΥΣΤΗΜΑΤΑ ΗΛΕΚΤΡΙΚΗΣ ΕΝΕΡΓΕΙΑΣ ΙIΙ

ΣΥΣΤΗΜΑΤΑ ΗΛΕΚΤΡΙΚΗΣ ΕΝΕΡΓΕΙΑΣ ΙIΙ

Κβαντική Επεξεργασία Πληροφορίας

Ανοικτά Ακαδημαϊκά Μαθήματα στο ΤΕΙ Αθήνας. Βιοστατιστική (Ε) Ενότητα 3: Έλεγχοι στατιστικών υποθέσεων

Ανοικτά Ακαδημαϊκά Μαθήματα στο ΤΕΙ Αθήνας. Βιοστατιστική (Ε) Ενότητα 1: Καταχώρηση δεδομένων

Ανοικτά Ακαδημαϊκά Μαθήματα στο ΤΕΙ Αθήνας. Βιοστατιστική (Ε) Ενότητα 2: Περιγραφική στατιστική

Εισαγωγή στην Επιστήμη των Υπολογιστών

Ενότητα. Εισαγωγή στις βάσεις δεδομένων

Βέλτιστος Έλεγχος Συστημάτων

Κβαντική Επεξεργασία Πληροφορίας

Διοικητική Λογιστική

Εισαγωγή στους Η/Υ. Ενότητα 2β: Αντίστροφο Πρόβλημα. Δημήτρης Σαραβάνος, Καθηγητής Πολυτεχνική Σχολή Τμήμα Μηχανολόγων & Αεροναυπηγών Μηχανικών

Μηχανολογικό Σχέδιο Ι

Θερμοδυναμική. Ανοικτά Ακαδημαϊκά Μαθήματα. Πίνακες Νερού Υπέρθερμου Ατμού. Γεώργιος Κ. Χατζηκωνσταντής Επίκουρος Καθηγητής

Έλεγχος και Διασφάλιση Ποιότητας Ενότητα 4: Μελέτη ISO Κουππάρης Μιχαήλ Τμήμα Χημείας Εργαστήριο Αναλυτικής Χημείας

Ψηφιακή Λογική Σχεδίαση

Εισαγωγή στους Αλγορίθμους

Λογιστική Κόστους Ενότητα 8: Κοστολογική διάρθρωση Κύρια / Βοηθητικά Κέντρα Κόστους.

Διεθνείς Οικονομικές Σχέσεις και Ανάπτυξη

ΗΛΕΚΤΡΟΝΙΚΗ ΙIΙ Ενότητα 6

Εισαγωγή στην Διοίκηση Επιχειρήσεων

Τεχνικό Σχέδιο - CAD

Βάσεις Περιβαλλοντικών Δεδομένων

Μυελού των Οστών Ενότητα #1: Ερωτήσεις κατανόησης και αυτόαξιολόγησης

Ενδεικτικές λύσεις ασκήσεων διαχείρισης έργου υπό συνθήκες αβεβαιότητας

Σχεδιασμός Ολοκληρωμένων Κυκλωμάτων VLSI II

Τεχνολογία Πολιτισμικού Λογισμικού

Εννοιες και Παράγοντες της Ψηφιακής Επεξεργασίας Εικόνας

Σχεδιασμός Ολοκληρωμένων Κυκλωμάτων VLSI II

Εισαγωγή στην Πληροφορική

ΣΥΜΠΕΡΙΦΟΡΑ ΚΑΤΑΝΑΛΩΤΗ

Διδακτική Πληροφορικής

Τεχνικό Σχέδιο - CAD

1 η Διάλεξη. Ενδεικτικές λύσεις ασκήσεων

Εισαγωγή στους Αλγορίθμους Ενότητα 9η Άσκηση - Αλγόριθμος Kruskal

Προγραμματισμός Η/Υ. Βασικές Προγραμματιστικές Δομές. ΤΕΙ Ιονίων Νήσων Τμήμα Τεχνολόγων Περιβάλλοντος Κατεύθυνση Τεχνολογιών Φυσικού Περιβάλλοντος

Κβαντική Επεξεργασία Πληροφορίας

Σχεδιασμός Ολοκληρωμένων Κυκλωμάτων VLSI II

Ψηφιακή Επεξεργασία Εικόνων

Σχεδίαση και Ανάλυση Αλγορίθμων Ενότητα 4: ΑΝΑΠΑΡΑΣΤΑΣΗ ΔΕΔΟΜΕΝΩΝ - ΔΕΝΤΡΑ

Εισαγωγή στην Διοίκηση Επιχειρήσεων

Οργάνωση Υπολογιστών

Οργάνωση Υπολογιστών

Εισαγωγή στους Αλγορίθμους Ενότητα 10η Άσκηση Αλγόριθμος Dijkstra

ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΡΗΤΗΣ

Εισαγωγή στους Υπολογιστές

Μαθηματικά Διοικητικών & Οικονομικών Επιστημών

Διοίκηση Εξωτερικής Εμπορικής Δραστηριότητας

Βάσεις Περιβαλλοντικών Δεδομένων

Εισαγωγή στη Δικτύωση Υπολογιστών

Διδακτική Πληροφορικής

Εφαρμογές των Τεχνολογιών της Πληροφορίας και των Επικοινωνιών στη διδασκαλία και τη μάθηση

Μεθοδολογία Έρευνας Κοινωνικών Επιστημών Ενότητα 2: ΣΥΓΚΕΝΤΡΩΣΗ ΠΛΗΡΟΦΟΡΙΩΝ ΜΑΡΚΕΤΙΝΓΚ Λοίζου Ευστράτιος Τμήμα Τεχνολόγων Γεωπόνων-Kατεύθυνση

Εισαγωγή στην Πληροφορική

Τεχνικό Σχέδιο - CAD. Τόξο Κύκλου. Τόξο Κύκλου - Έλλειψη. ΤΕΙ Ιονίων Νήσων Τμήμα Τεχνολόγων Περιβάλλοντος Κατεύθυνση Τεχνολογιών Φυσικού Περιβάλλοντος

Εισαγωγή στους Αλγορίθμους Ενότητα 9η Άσκηση - Αλγόριθμος Prim

ΠΛΗΡΟΦΟΡΙΚΗ Ι Ενότητα 8: Συστήματα αρίθμησης

Εισαγωγή στην Διοίκηση Επιχειρήσεων

Οργάνωση Υπολογιστών

Ιστορία της μετάφρασης

Η ΓΝΩΣΗ ΚΑΙ ΤΟ ΠΡΑΓΜΑΤΙΚΟ ΣΤΟΝ ΠΛΑΤΩΝΑ ΚΑΙ ΤΟΝ ΑΡΙΣΤΟΤΕΛΗ

Δυναμική και Έλεγχος E-L Ηλεκτρομηχανικών Συστημάτων

Εκκλησιαστικό Δίκαιο. Ενότητα 10η: Ιερά Σύνοδος της Ιεραρχίας και Διαρκής Ιερά Σύνοδος Κυριάκος Κυριαζόπουλος Τμήμα Νομικής Α.Π.Θ.

Λογιστική Κόστους Ενότητα 11: Λογισμός Κόστους (1)

Διδακτική Πληροφορικής

Ψηφιακή Λογική Σχεδίαση

Εισαγωγή στην Πληροφορική

Πρακτική Άσκηση σε σχολεία της δευτεροβάθμιας εκπαίδευσης

Διδακτική των εικαστικών τεχνών Ενότητα 3

Εισαγωγή στην Πληροφορική

Διδακτική των εικαστικών τεχνών Ενότητα 1

Διδακτική των εικαστικών τεχνών Ενότητα 2

Βέλτιστος Έλεγχος Συστημάτων

Διδακτική των εικαστικών τεχνών Ενότητα 2

Διδακτική των εικαστικών τεχνών Ενότητα 2

Διδακτική των εικαστικών τεχνών Ενότητα 2

Διαχείριση Πολιτισμικών Δεδομένων

Διδακτική Πληροφορικής

Εισαγωγή στην Διοίκηση Επιχειρήσεων

Εφαρμογές πληροφορικής σε θέματα πολιτικού μηχανικού

Γενικά Μαθηματικά Ι. Ενότητα 12: Κριτήρια Σύγκλισης Σειρών. Λουκάς Βλάχος Τμήμα Φυσικής ΑΝΟΙΚΤΑ ΑΚΑΔΗΜΑΪΚΑ ΜΑΘΗΜΑΤΑ

Κβαντική Επεξεργασία Πληροφορίας

Μηχανολογικό Σχέδιο Ι

Αερισμός. Ενότητα 1: Αερισμός και αιμάτωση. Κωνσταντίνος Σπυρόπουλος, Καθηγητής Σχολή Επιστημών Υγείας Τμήμα Ιατρικής

Εισαγωγή στην Διοίκηση Επιχειρήσεων

Βάσεις Περιβαλλοντικών Δεδομένων

Συστήματα Επικοινωνιών

ΟΙΚΟΝΟΜΙΚΑ ΜΑΘΗΜΑΤΙΚΑ

ΟΙΚΟΝΟΜΙΚΑ ΜΑΘΗΜΑΤΙΚΑ

ΗΛΕΚΤΡΟΤΕΧΝΙΑ-ΗΛΕΚΤΡΟΝΙΚΗ ΕΡΓΑΣΤΗΡΙΟ

Γραμμική Άλγεβρα και Μαθηματικός Λογισμός για Οικονομικά και Επιχειρησιακά Προβλήματα

Διδακτική των εικαστικών τεχνών Ενότητα 2

Transcript:

Ψηφιακή Λογική Σχεδίαση Επιμέλεια: Γεώργιος Θεοδωρίδης, Επίκουρος Καθηγητής Ανδρέας Εμερετλής, Υποψήφιος Διδάκτορας Τμήμα Ηλεκτρολόγων Μηχανικών και Τεχνολογίας Υπολογιστών

Σημείωμα Αδειοδότησης Το παρόν υλικό διατίθεται με τους όρους της άδειας χρήσης Creative Commons Αναφορά, Μη Εμπορική Χρήση Παρόμοια Διανομή 4.0 [1] ή μεταγενέστερη, Διεθνής Έκδοση. Εξαιρούνται τα αυτοτελή έργα τρίτων π.χ. φωτογραφίες, διαγράμματα κ.λ.π., τα οποία εμπεριέχονται σε αυτό και τα οποία αναφέρονται μαζί με τους όρους χρήσης τους στο «Σημείωμα Χρήσης Έργων Τρίτων». [1] http://creativecommons.org/licenses/by-nc-sa/4.0/ Ως Μη Εμπορική ορίζεται η χρήση: που δεν περιλαμβάνει άμεσο ή έμμεσο οικονομικό όφελος από την χρήση του έργου, για το διανομέα του έργου και αδειοδόχο που δεν περιλαμβάνει οικονομική συναλλαγή ως προϋπόθεση για τη χρήση ή πρόσβαση στο έργο που δεν προσπορίζει στο διανομέα του έργου και αδειοδόχο έμμεσο οικονομικό όφελος (π.χ. διαφημίσεις) από την προβολή του έργου σε διαδικτυακό τόπο Ψηφιακή Λογική Σχεδίαση 2

Διατήρηση Σημειωμάτων Οποιαδήποτε αναπαραγωγή ή διασκευή του υλικού θα πρέπει να συμπεριλαμβάνει: το Σημείωμα Αναφοράς το Σημείωμα Αδειοδότησης τη Δήλωση Διατήρησης Σημειωμάτων το Σημείωμα Χρήσης Έργων Τρίτων (εφόσον υπάρχει) μαζί με τους συνοδευόμενους υπερσυνδέσμους. Ψηφιακή Λογική Σχεδίαση 3

Ανάπτυξη Το παρόν εκπαιδευτικό υλικό αναπτύχθηκε στο Τμήμα Ηλεκτρολόγων Μηχανικών και Τεχνολογίας Υπολογιστών του Πανεπιστημίου Πατρών. Ψηφιακή Λογική Σχεδίαση 4

Ανίχνευση και Διόρθωση Λαθών Ψηφιακή Λογική Σχεδίαση 5

Περίγραμμα Παρουσίασης Εισαγωγή Απόσταση Hamming Κώδικες ανίχνευσης λαθών Κώδικες διόρθωσης λαθών Κώδικας Hamming Ψηφιακή Λογική Σχεδίαση 6

Εισαγωγή Κυρίως κατά τη μετάδοση πληροφορίας ή ακόμα και κατά την αποθήκευση δεδομένων υπάρχει πιθανότητα αλλοίωση της πληροφορίας Λάθος: αλλαγή τιμής ενός η περισσοτέρων ψηφίων λόγω Θορύβου, α σωματιδίων. Απαιτείται ανάπτυξη μεθόδων (κώδικες διόρθωσης/ανίχνευσης λαθών) αντιμετώπισης του προβλήματος Κυκλώματα ανίχνευσης & κυκλώματα διόρθωσης λάθους Ψηφιακή Λογική Σχεδίαση 7

Περίγραμμα Παρουσίασης Εισαγωγή Απόσταση Hamming Κώδικες ανίχνευσης λαθών Κώδικες διόρθωσης λαθών Κώδικας Hamming Ψηφιακή Λογική Σχεδίαση 8

Απόσταση Hamming Hamming Distance (HD) Για την ανίχνευση και διόρθωση λαθών χρησιμοποιούνται κώδικες και κατάλληλες λέξεις στους κώδικες Οι περισσότεροι κώδικες βασίζονται στην έννοια της απόστασης Hamming Ως απόσταση Hamming μεταξύ δύο λέξεων n ψηφίων ορίζεται το πλήθος των ψηφίων που πρέπει να αλλάξουν τιμή στη μία λέξη ώστε να ταυτιστούν οι λέξεις Οι λέξεις 0110 και 0101 έχουν απόσταση 2 Οι λέξεις 0110 και 1011 έχουν απόσταση 3 Ψηφιακή Λογική Σχεδίαση 9

Περίγραμμα Παρουσίασης Εισαγωγή Απόσταση Hamming Κώδικες ανίχνευσης λαθών Κώδικες διόρθωσης λαθών Κώδικας Hamming Ψηφιακή Λογική Σχεδίαση 10

Κώδικες Ανίχνευσης Λαθών (1/4) Ένας κώδικας ανίχνευσης λαθών πρέπει είναι φτιαγμένος ώστε όταν συμβεί λάθος να ανιχνεύει τη λάθος μετάδοση δεδομένων Ο δέκτης γνωρίζει τις έγκυρες και άκυρες λέξεις του κώδικα Η λήψη άκυρης λέξης συνεπάγεται την ύπαρξη λάθους => ανίχνευση λάθους μετάδοσης Ένας κώδικας που έχει την παραπάνω ιδιότητα για την περίπτωση που συμβούν μέχρι Ν λάθη καλείται κώδικας ανίχνευσης Ν λαθών Το σημαντικό στην ανάπτυξη του κώδικα είναι η επιλογή των έγκυρων λέξεων για να είναι δυνατή η ανίχνευση των λαθών Κατάλληλο λεξικό με έγκυρες λέξεις (codebook) Ψηφιακή Λογική Σχεδίαση 11

Κώδικες Ανίχνευσης Λαθών (2/4) Οι λέξεις του κώδικα προκύπτουν με την εισαγωγή επιπλέον ψηφίων σε κατάλληλες θέσεις τις λέξης δεδομένων Ως απόσταση σε ένα κώδικα ορίζεται η ελάχιστη Hamming απόσταση μεταξύ των λέξεων του κώδικα Οι χρησιμοποιούμενες λέξεις (έγκυρες λέξεις) πρέπει να έχουν μια συγκεκριμένη απόσταση για να ανιχνεύεται ένας τύπος λάθους Για παράδειγμα HD = 2 Ψηφιακή Λογική Σχεδίαση 12

Κώδικες Ανίχνευσης Λαθών (3/4) Έστω λέξη κώδικα με 3 ψηφία. Όλες οι λέξεις είναι οι ακόλουθες 1. 000 2. 001 010 100 3. 011 101 110 4. 111 111 111 Έστω ότι οι έγκυρες λέξεις του κώδικα είναι οι υπογραμμισμένες (λέξεις των γραμμών 1 και 3) Αν συμβεί λάθος σε ένα ψηφίο μόνο (απλό λάθος), στο δέκτη θα φθάσει μία λέξη από τις άκυρες λέξεις (γραμμές 2, 4) Αν η έγκυρη λέξη είναι η 000 (γραμμή 0), τότε η άκυρη θα είναι μία από τις λέξεις της γραμμής 2 Αν η έγκυρη είναι μία από αυτές τις γραμμής 3, τότε η άκυρη θα είναι η 111 (γραμμή 4) ή κάποια από τη γραμμή 2 (π.χ. 011 001) όχι όμως (001 100, 2 λάθη) Ψηφιακή Λογική Σχεδίαση 13

Κώδικες Ανίχνευσης Λαθών (4/4) 1. 000 2. 001 010 100 3. 011 101 110 4. 111 111 111 Συνεπώς, ένας κώδικας για να ανιχνεύει απλό λάθος πρέπει να έχει απόσταση μεγαλύτερη από 1 Οι λέξεις του κώδικά πρέπει να έχουν απόσταση Hamming (HD) μεγαλύτερη του 1 Στο παράδειγμα HD=2 Γενική αρχή: για να ανιχνεύει ένας κώδικας Ν λάθη πρέπει η απόσταση του κώδικα να είναι μεγαλύτερη του Ν (ΗD min > N) Ψηφιακή Λογική Σχεδίαση 14

Περίγραμμα Παρουσίασης Εισαγωγή Απόσταση Hamming Κώδικες ανίχνευσης λαθών Κώδικες διόρθωσης λαθών Κώδικας Hamming Ψηφιακή Λογική Σχεδίαση 15

Κώδικες Διόρθωσης Λαθών Έστω οι έγκυρες λέξεις αυτές των γραμμών 1, 4 1. 000 2. 001 010 100 3. 011 101 110 4. 111 Ψηφιακή Λογική Σχεδίαση 16

Κώδικες Διόρθωσης Λαθών Έστω οι έγκυρες λέξεις αυτές των γραμμών 1, 4 1. 000 2. 001 010 100 3. 011 101 110 4. 111 Απλό λάθος στη λέξη 000 => λήψη μία από τις λέξεις της 2 ης γραμμής Ψηφιακή Λογική Σχεδίαση 16

Κώδικες Διόρθωσης Λαθών Έστω οι έγκυρες λέξεις αυτές των γραμμών 1, 4 1. 000 2. 001 010 100 3. 011 101 110 4. 111 Απλό λάθος στη λέξη 000 => λήψη μία από τις λέξεις της 2 ης γραμμής Απλό λάθος στη λέξη 111=> λήψη μία από τις λέξεις της 3 ης γραμμής Ψηφιακή Λογική Σχεδίαση 16

Κώδικες Διόρθωσης Λαθών Έστω οι έγκυρες λέξεις αυτές των γραμμών 1, 4 1. 000 2. 001 010 100 3. 011 101 110 4. 111 Απλό λάθος στη λέξη 000 => λήψη μία από τις λέξεις της 2 ης γραμμής Απλό λάθος στη λέξη 111=> λήψη μία από τις λέξεις της 3 ης γραμμής Έστω ότι λαμβάνεται λέξη της 2 ης γραμμής Επειδή, ο κώδικας διορθώνει απλό λάθος δεν μπορεί να είχε σταλεί η λέξη 111 και να λήφθηκε λέξη της 2 ης γραμμής Άρα η λέξη που στάλθηκε ήταν η 000 Η διόρθωση γίνεται αντιστρέφοντας το λάθος ψηφίο Ψηφιακή Λογική Σχεδίαση 16

Κώδικες Διόρθωσης Λαθών Έστω οι έγκυρες λέξεις αυτές των γραμμών 1, 4 1. 000 2. 001 010 100 3. 011 101 110 4. 111 Απλό λάθος στη λέξη 000 => λήψη μία από τις λέξεις της 2 ης γραμμής Απλό λάθος στη λέξη 111=> λήψη μία από τις λέξεις της 3 ης γραμμής Έστω ότι λαμβάνεται λέξη της 2 ης γραμμής Επειδή, ο κώδικας διορθώνει απλό λάθος δεν μπορεί να είχε σταλεί η λέξη 111 και να λήφθηκε λέξη της 2 ης γραμμής Άρα η λέξη που στάλθηκε ήταν η 000 Η διόρθωση γίνεται αντιστρέφοντας το λάθος ψηφίο Ένας κώδικας για να ανιχνεύει και να διορθώνει Ν λάθη πρέπει να έχει απόσταση μεγαλύτερη του 2Ν (ΗD>2N) Ψηφιακή Λογική Σχεδίαση 16

Ανίχνευση Λάθους Ο πιο εύκολος και διαδεδομένος τρόπος για την ανίχνευση λάθους είναι η χρήση του ψηφίου ισοτιμίας (parity bit) Σε κάθε λέξη δεδομένων τοποθετείται (στην αρχή ή στο τέλος) ένα επιπλέον ψηφίο ισοτιμίας ώστε το συνολικό πλήθος των 1 να είναι Άρτιο/ περιττό για άρτια περιττή / ισοτιμία Παράδ. Λέξη: 0001 1001 νέα λέξη 1 0001 1001 για άρτια ισοτιμία Με την ανάγνωση της λέξης ελέγχεται η ισοτιμία της νέας λέξης. Αν είναι ίδια με την καθορισμένη δεν υπάρχει λάθος και αφαιρείται το ψηφίο ισοτιμίας δεν είναι ίδια με την καθορισμένη τότε ανιχνεύεται λάθος Ψηφιακή Λογική Σχεδίαση 17

Διόρθωση Λάθους Για τη διόρθωση λάθους εισάγονται σε συγκεκριμένες θέσεις επιπλέον ψηφία στην αρχική λέξη δεδομένων Δημιουργία νέας λέξης με επιπλέον ψηφία Κατά την ανάγνωση ο δέκτης ελέγχει την ισοτιμία της νέας λέξης Στην περίπτωση λάθους παράγεται ένα μοναδικό πρότυπο (pattern) ψηφίων που καλείται σύνδρομο (syndrome) Η τιμή του συνδρόμου καθορίζει τη θέση του ψηφίου με το λάθος Λόγω ότι το σύστημα αναπαράστασης είναι δυαδικό η διόρθωση είναι εύκολη Συμπλήρωση του λανθασμένου ψηφίου Αν αν η τιμή του συνδρόμου είναι 7, τότε αντιστρέφεται το 7 ο ψηφίο Ψηφιακή Λογική Σχεδίαση 18

Περίγραμμα Παρουσίασης Εισαγωγή Απόσταση Hamming Κώδικες ανίχνευσης λαθών Κώδικες διόρθωσης λαθών Κώδικας Hamming Ψηφιακή Λογική Σχεδίαση 19

Κώδικας Hamming Εισαγωγή Ψηφίων Ισοτιμίας Ο κώδικας Hamming είναι από τους πιο κοινούς κώδικες διόρθωσης λαθών Σε κάθε λέξη δεδομένων με n bits, εισάγονται επιπλέον k ψηφία ισοτιμίας => σχηματίζεται μια νέα λέξη με n+k bits Η αρίθμηση της θέσης των ψηφίων της νέας λέξης είναι 1, 2, 3, Οι θέσεις των ψηφίων ισοτιμίας (P1, P2,.) καταλαμβάνουν τις θέσεις που αντιστοιχούν σε δυνάμεις του 2 Ψηφιακή Λογική Σχεδίαση 20

Κώδικας Hamming Εισαγωγή Ψηφίων Ισοτιμίας Ο κώδικας Hamming είναι από τους πιο κοινούς κώδικες διόρθωσης λαθών Σε κάθε λέξη δεδομένων με n bits, εισάγονται επιπλέον k ψηφία ισοτιμίας => σχηματίζεται μια νέα λέξη με n+k bits Η αρίθμηση της θέσης των ψηφίων της νέας λέξης είναι 1, 2, 3, Οι θέσεις των ψηφίων ισοτιμίας (P1, P2,.) καταλαμβάνουν τις θέσεις που αντιστοιχούν σε δυνάμεις του 2 Παράδειγμα: λέξη δεδομένων 1100 0100 => Νέα κωδικοποιημένη λέξη (με ψηφία ισοτιμίας P1, P2, P3, P4) Ψηφιακή Λογική Σχεδίαση 20

Κώδικας Hamming Εισαγωγή Ψηφίων Ισοτιμίας Ο κώδικας Hamming είναι από τους πιο κοινούς κώδικες διόρθωσης λαθών Σε κάθε λέξη δεδομένων με n bits, εισάγονται επιπλέον k ψηφία ισοτιμίας => σχηματίζεται μια νέα λέξη με n+k bits Η αρίθμηση της θέσης των ψηφίων της νέας λέξης είναι 1, 2, 3, Οι θέσεις των ψηφίων ισοτιμίας (P1, P2,.) καταλαμβάνουν τις θέσεις που αντιστοιχούν σε δυνάμεις του 2 Παράδειγμα: λέξη δεδομένων 1100 0100 => Νέα κωδικοποιημένη λέξη (με ψηφία ισοτιμίας P1, P2, P3, P4) 1 2 3 4 5 6 7 8 9 10 11 12 Ρ1 Ρ2 1 Ρ3 1 0 0 Ρ4 0 1 0 0 Ψηφιακή Λογική Σχεδίαση 20

Κώδικας Hamming Πλήθος Ψηφίων Ισοτιμίας Σε κάθε n-bit λέξη εισάγονται επιπλέον k bits ισοτιμίας Πόσα k ψηφία ισοτιμίας απαιτούνται για λέξη n ψηφίων? Ισχύει η ακόλουθη σχέση 2 k -1-k >= n Αριθμός bits Ελέγχου (k) Εύρος Δεδομένων (n) 3 2-4 4 5-11 5 12-26 6 27-57 7 58-120 Ψηφιακή Λογική Σχεδίαση 21

Κώδικας Hamming Δημιουργία Ψηφίων Ισοτιμίας (1/3) Το κάθε ψηφίο ισοτιμίας κωδικοποιεί μία ομάδα ψηφίων της λέξης δεδομένων Ομαδοποίηση των ψηφίων δεδομένων ανά ψηφίο ισοτιμίας Ψηφιακή Λογική Σχεδίαση 22

Κώδικας Hamming Δημιουργία Ψηφίων Ισοτιμίας (1/3) Το κάθε ψηφίο ισοτιμίας κωδικοποιεί μία ομάδα ψηφίων της λέξης δεδομένων Ομαδοποίηση των ψηφίων δεδομένων ανά ψηφίο ισοτιμίας 1 ο ψηφίο ισοτιμίας (Ρ1) Το ψηφίο Ρ1 τοποθετείται στη 1 η θέση της κωδικοποιημένης λέξης Η 1 η θέση έχει δυαδική αναπαράσταση 0001 δηλ, έναν 1 στο 1 ο από δεξιά ψηφίο Το ψηφίο Ρ1 κωδικοποιεί την ομάδα ψηφίων των οποίων οι θέσεις έχουν δυαδική αναπαράσταση με 1 στο 1 ο από δεξιά ψηφίο (ψηφία θέσεων 3, 5, 7,9, 11,...) Ψηφιακή Λογική Σχεδίαση 22

Κώδικας Hamming Δημιουργία Ψηφίων Ισοτιμίας (1/3) Το κάθε ψηφίο ισοτιμίας κωδικοποιεί μία ομάδα ψηφίων της λέξης δεδομένων Ομαδοποίηση των ψηφίων δεδομένων ανά ψηφίο ισοτιμίας 1 ο ψηφίο ισοτιμίας (Ρ1) Το ψηφίο Ρ1 τοποθετείται στη 1 η θέση της κωδικοποιημένης λέξης Η 1 η θέση έχει δυαδική αναπαράσταση 0001 δηλ, έναν 1 στο 1 ο από δεξιά ψηφίο Το ψηφίο Ρ1 κωδικοποιεί την ομάδα ψηφίων των οποίων οι θέσεις έχουν δυαδική αναπαράσταση με 1 στο 1 ο από δεξιά ψηφίο (ψηφία θέσεων 3, 5, 7,9, 11,...) 2 ο ψηφίο ισοτιμίας (Ρ2) Το ψηφίο Ρ2 τοποθετείται στη 2 η θέση της κωδικοποιημένης λέξης Η 2 η θέση έχει δυαδική αναπαράσταση 0010 δηλ, έναν 1 στο 2 ο από δεξιά ψηφίο Το ψηφίο Ρ1 κωδικοποιεί την ομάδα ψηφίων των οποίων οι θέσεις έχουν δυαδική αναπαράσταση με 1 στο 2 ο από δεξιά ψηφίο (ψηφία θέσεων 3, 6, 7,...) Ψηφιακή Λογική Σχεδίαση 22

Κώδικας Hamming Δημιουργία Ψηφίων Ισοτιμίας (2/3) Το κάθε ψηφίο ισοτιμίας κωδικοποιεί μία ομάδα ψηφίων της λέξης δεδομένων Ομαδοποίηση των ψηφίων δεδομένων ανά ψηφίο ισοτιμίας 3 ο ψηφίο ισοτιμίας (Ρ3) Το ψηφίο Ρ3 τοποθετείται στη 4 η θέση της κωδικοποιημένης λέξης Η 4 η θέση έχει δυαδική αναπαράσταση 0100 δηλ, έναν 1 στο 3 ο από δεξιά ψηφίο Το ψηφίο Ρ1 κωδικοποιεί την ομάδα ψηφίων των οποίων οι θέσεις έχουν δυαδική αναπαράσταση με 1 στο 3 ο από δεξιά ψηφίο (ψηφία θέσεων 5, 6, 7, 12,...) 4 ο ψηφίο ισοτιμίας (Ρ4) Το ψηφίο Ρ4 τοποθετείται στη 8 η θέση της κωδικοποιημένης λέξης Η 8 η θέση έχει δυαδική αναπαράσταση 1000 δηλ, έναν 1 στο 4 ο από δεξιά ψηφίο Το ψηφίο Ρ4 κωδικοποιεί την ομάδα ψηφίων των οποίων οι θέσεις έχουν δυαδική αναπαράσταση με 1 στο 4 ο από δεξιά ψηφίο (ψηφία θέσεων 9, 10, 11, 12,...) κοκ. Ψηφιακή Λογική Σχεδίαση 23

Κώδικας Hamming Δημιουργία Ψηφίων Ισοτιμίας (3/3) Τα ψηφία ισοτιμίας παράγονται μετρώντας τους 1 στις αντίστοιχες ομάδες ψηφίων (b i, b l, b m ) και θέτοντας το ψηφίο Pi στην τιμή ώστε για την ομάδα ψηφίων (b i, b l, b m,, Pi) να προκύπτει η καθορισμένη ισοτιμία Λέξη δεδομένων 1100 0100 & άρτια ισοτιμία Μορφή νέας λέξης Ψηφιακή Λογική Σχεδίαση 24

Κώδικας Hamming Δημιουργία Ψηφίων Ισοτιμίας (3/3) Τα ψηφία ισοτιμίας παράγονται μετρώντας τους 1 στις αντίστοιχες ομάδες ψηφίων (b i, b l, b m ) και θέτοντας το ψηφίο Pi στην τιμή ώστε για την ομάδα ψηφίων (b i, b l, b m,, Pi) να προκύπτει η καθορισμένη ισοτιμία Λέξη δεδομένων 1100 0100 & άρτια ισοτιμία Μορφή νέας λέξης 1 2 3 4 5 6 7 8 9 10 11 12 P1 P2 1 P3 1 0 0 P4 0 1 0 0 Ψηφιακή Λογική Σχεδίαση 24

Κώδικας Hamming Δημιουργία Ψηφίων Ισοτιμίας (3/3) Τα ψηφία ισοτιμίας παράγονται μετρώντας τους 1 στις αντίστοιχες ομάδες ψηφίων (b i, b l, b m ) και θέτοντας το ψηφίο Pi στην τιμή ώστε για την ομάδα ψηφίων (b i, b l, b m,, Pi) να προκύπτει η καθορισμένη ισοτιμία Λέξη δεδομένων 1100 0100 & άρτια ισοτιμία Μορφή νέας λέξης 1 2 3 4 5 6 7 8 9 10 11 12 P1 P2 1 P3 1 0 0 P4 0 1 0 0 Ρ1 : κωδικ. bits θέσεων (3, 5,7, 9, 11) = (1, 1, 0, 0, 0) => P1 = 0 (άρτια ισοτιμία) Ρ2 : κωδικ. bits θέσεων (3, 6, 7, 10, 11) = (1, 0, 0, 1, 0) => P2 = 0 (άρτια ισοτιμία) Ρ3 : κωδικ. bits θέσεων (5, 6, 7, 12) = (1, 0, 0, 0) => P3 = 1 (άρτια ισοτιμία) Ρ4 : κωδικ. bits θέσεων (9, 10,11, 12) = (0, 1, 0, 0) => P4 = 1(άρτια ισοτιμία) Η κωδικοποιημένη λέξη είναι 1 2 3 4 5 6 7 8 9 10 11 12 0 0 1 1 1 0 0 1 0 1 0 0 Ψηφιακή Λογική Σχεδίαση 24

Κώδικας Hamming Διόρθωση Λάθους Όταν τα ψηφία διαβάζονται προκύπτει μία σύνδρομη λέξη C=C 8 C 4 C 2 C 1 Αντιστοιχεί στις θέσεις των ψηφίων ισοτιμίας Το κάθε ψηφίο της σύνδρομης λέξης αφορά την αντίστοιχη ομάδα ψηφίων και παίρνει τιμή ώστε να ικανοποιείται η ισοτιμία Αν C= 000 0 τότε δεν υπάρχει λάθος Αλλιώς η δεκαδική τιμή της λέξης δηλώνει τη θέση του ψηφίου με το λάθος Ψηφιακή Λογική Σχεδίαση 25

Κώδικας Hamming Διόρθωση Λάθους Η κωδικοποιημένη λέξη είναι (με μαύρο χρώμα οι θέσεις των Ρ1, Ρ2, ) 1 2 3 4 5 6 7 8 9 10 11 12 0 0 1 1 1 0 0 1 0 1 0 0 Ψηφιακή Λογική Σχεδίαση 26

Κώδικας Hamming Διόρθωση Λάθους Η κωδικοποιημένη λέξη είναι (με μαύρο χρώμα οι θέσεις των Ρ1, Ρ2, ) 1 2 3 4 5 6 7 8 9 10 11 12 0 0 1 1 1 0 0 1 0 1 0 0 Έστω λάθος στο ψηφίο 3 και η ισοτιμία άρτια 1 2 3 4 5 6 7 8 9 10 11 12 0 0 0 1 1 0 0 1 0 1 0 0 Ψηφιακή Λογική Σχεδίαση 26

Κώδικας Hamming Διόρθωση Λάθους Η κωδικοποιημένη λέξη είναι (με μαύρο χρώμα οι θέσεις των Ρ1, Ρ2, ) 1 2 3 4 5 6 7 8 9 10 11 12 0 0 1 1 1 0 0 1 0 1 0 0 Έστω λάθος στο ψηφίο 3 και η ισοτιμία άρτια 1 2 3 4 5 6 7 8 9 10 11 12 0 0 0 1 1 0 0 1 0 1 0 0 Σύνδρομη λέξη C1 : ομάδα bits (1, 3, 5,7, 9, 11) = (0, 0, 1, 0, 0, 0) => C1 = 1 (λόγω άρτιας ισοτιμίας) C2 : ομάδα bits (2, 3, 6, 7, 10, 11) = (0, 0, 0, 0, 1, 0) => C2 = 1 (λόγω άρτιας ισοτιμίας) C4 : ομάδα bits (4, 5, 6, 7, 12) = (1, 1, 0, 0, 0) => C3 = 0 (λόγω άρτιας ισοτιμίας) C8 : ομάδα bits (8, 9, 10,11, 12) = (1, 0, 1, 0, 0) => C4 = 0 (λόγω άρτιας ισοτιμίας) Επομένως το λάθος είναι στη θέση 3 (C 8, C 4, C 2, C 1 ) = (0, 0, 1, 1) = 3 10 Ψηφιακή Λογική Σχεδίαση 26

Ανίχνευση & Διόρθωση Πολλαπλών Λαθών Ο προηγούμενος κώδικας Hamming μπορεί να ανιχνεύσεις και να διορθώσει μόνο απλά λάθη Περιπτώσεις όπου το λάθος συμβαίνει σε ένα και μόνο ένα ψηφίο Για την ανίχνευση ή/και διόρθωση πολλαπλών λαθών πρέπει να χρησιμοποιηθούν πιο πολύπλοκοι κώδικες και περισσότερα ψηφία ισοτιμίας Ψηφιακή Λογική Σχεδίαση 27

Σημείωμα Αναφοράς Copyright Πανεπιστήμιο Πατρών, Νίκος Φακωτάκης, Γεώργιος Θεοδωρίδης, «Ψηφιακή Λογική Σχεδίαση». Έκδοση: 1.0 Πάτρα 2015 Διαθέσιμο στη διαδικτυακή διεύθυνση https://eclass.upatras.gr/courses/ee890/ Ψηφιακή Λογική Σχεδίαση 40

Χρηματοδότηση Το παρόν εκπαιδευτικό υλικό έχει αναπτυχθεί στα πλαίσια του εκπαιδευτικού έργου των διδασκόντων καθηγητών. Το έργο «Ανοικτά Ακαδημαϊκά Μαθήματα στο Πανεπιστήμιο Πατρών» έχει χρηματοδοτήσει μόνο την αναδιαμόρφωση του εκπαιδευτικού υλικού. Το έργο υλοποιείται στο πλαίσιο του Επιχειρησιακού Προγράμματος «Εκπαίδευση και Δια Βίου Μάθηση» και συγχρηματοδοτείται από την Ευρωπαϊκή Ένωση (Ευρωπαϊκό Κοινωνικό Ταμείο) και από εθνικούς πόρους. Ψηφιακή Λογική Σχεδίαση 28