ΗΜΥ-20: Σχεδιασμός Ψηφιακών Συστημάτων Σκοπός του μαθήματος Λογικός Σχεδιασμός και Σχεδιασμός Η/Υ Εισαγωγή, Υπολογιστές και Πληροφορία Διδάσκουσα: Μαρία Κ. Μιχαήλ Βασικές έννοιες & εργαλεία που χρησιμοποιούνται για το σχεδιασμό ψηφιακού υλικού (από ψηφιακά κυκλώματα) Επιπρόσθετες έννοιες & εργαλεία που χρησιμοποιούνται για το σχεδιασμό Υπολογιστικών Συστημάτων Πανεπιστήμιο Κύπρου Τμήμα Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών Σχεδιασμός Ψηφιακών Συστημάτων MKM - 2 Περίληψη ου Κεφαλαίου Ψηφιακοί Υπολογιστές Αριθμητικά Συστήματα Αναπαραστάσεις Μετατροπές Αριθμητικές Λειτουργίες εκαδικοί Κώδικες Αλφαριθμητικοί Κώδικες Ψηφιακά Συστήματα Κύρια χαρακτηριστικά: επεξεργασία διακριτών στοιχείων πληροφορίας (οποιοδήποτε σύνολο που περιορίζεται σε ένα πεπερασμένο αριθμό στοιχείων) π.χ. 0 δεκαδικά ψηφία,, 26 γράμματα, ιακριτά στοιχεία (σε ψηφιακά συστήματα) αναπαριστούν σήματα (φυσικές έ οντότητες) ) Πιο κοινά σήματα: ηλεκτρικά (voltage, current) MKM - 3 MKM - 4 Υπολογιστές και Πληροφορία
Εύρος Τάσης (Voltage Ranges) Ένα ψηφιακό σήμα έχει δυαδική τιμή (HIGH, LOW) η οποία αναπαριστεί ένα εύρος τιμών τάσης Εύρος Εξόδου: HIGH: 4.0.. 5.5 V LOW: -0.5...0 V Εύρος Εισόδου: HIGH: 3.0.. 5.5 V LOW: -0.5.. 2.0 V Το εύρος των εισόδων είναι μεγαλύτερο έτσι ώστε να λαμβάνεται υπόψη ο θόρυβος εισόδου Αναπαράσταση Πληροφοριών υαδικά σήματα (2 διακριτές τιμές) 0 και (ή LOW και HIGH ή FALSE και TRUE) υαδική μονάδα: δυαδικό ψηφίο/μπιτ (digit/bit) Πληροφορία: σύνολο από bits (=words). Τυπικό μέγεθος: : 8, 6, 32, 64, Ψηφιακό Υλικό: υπολογίζει δυαδικές συναρτήσεις από διάδικους αριθμούς Συνδυαστικά υλικό (χωρίς μνήμη) Ακολουθιακά υλικό (με μνήμη) MKM - 5 MKM - 6 Ελέγχει τη ροή πληροφοριών σε όλες τις μονάδες Βασική ομή Η/Υ Αποθηκεύει προγρ., δεδομένα I/O, και ενδιάμεσα δεδομένα Εκτελεί αριθμητικές και άλλες λειτουργίες επεξεργασίας δεδομένων Μια πιο λεπτομερής όψη Επεξεργαστής: ξργ Πολύπλοκο κύκλωμα (αποτελείτε από εκατομμύρια transistors) Μνήμη FPU CPU External Cache (κρυφή μνήμη - εξωτερική ) Internal Cache MMU RAM (μνήμη τυχαίας προσπέλασης) MKM - 7 MKM - 8 Υπολογιστές και Πληροφορία 2
Αριθμητικά Συστήματα Αναπαράσταση αριθμών Radix: η βάση βασική μονάδα μιας ομάδας αριθμών, π. χ. για το δεκαδικό σύστημα το radix =0 ( βάση βάση 0) Για κάθε σύστημα χρειαζόμαστε αριθμητικές λειτουργίες (πρόσθεση, αφαίρεση, πολλαπλασιασμός) Επίσης, μετατροπή από μια βάση σε άλλη Αριθμητικά Συστήματα - εκαδικό βάση 0 (το radix είναι 0) 0 ψηφία: : 0...9.9 (25.3) 0 = 2 0 2 + 5 0 + 00 0 + 3 0 - Σημείωση: :. ονομάζεται η υποδιαστολή για το σύστημα radix (υποδιαστολή για τη βάση 0) MKM - 9 MKM - 0 Αριθμητικά Συστήματα εκαδικό (συν.) Γενικά, ένας δεκαδικός αριθμός με n ψηφία αριστερά (πριν) από την υποδιαστολή, και m ψηφία στα δεξιά (μετά) γράφεται ως ακολούθως: A n- A n-2 A A 0. A - A -2 A -m+ A -m το A i λέγεται συντελεστής (coefficient) και παίρνει τιμές μεταξύ 0...9,.9, ενώ το i δείχνει το βάρος (την τάξη) (=0 i ) του A i. Αριθμητικά Συστήματα εκαδικό (συν.) Η τιμή του A n- A n-2 A A 0. A - A -2 A -m+ A -m υπολογίζεται από (A i 0 i ) + (A i 0 i ) i=n-..0 i=-....-m MKM - MKM - 2 Υπολογιστές και Πληροφορία 3
Αριθμητικά Συστήματα Γενικά βάση r (radix r) r ψηφία N r = A n- r n- + A n-2 r n- 2 + + A r +A 0 + A - r - + A -2 r - 2 + + A -m r -m Περισσότερο Σημαντικό Ψηφίο (Most Significant Bit -MSB) Λιγότερο Σημαντικό Ψηφίο (Least Significant Bit - LSB) Αριθμητικά Συστήματα Γενικά (συν.) π. χ. r = 6 (32.4) 6 6 6 6 6 = 3 6 2 + 6 + 2 6 0 + 4 6 - = (6.66) 0 Μετατροπή από n-δικό (οποιοδήποτε σύστημα με radix n) σε δεκαδικό ακολουθεί παρόμοια διαδικασία δαδκα όπως την πιο πάνω άω MKM - 3 MKM - 4 Αριθμητικά Συστήματα (συν.) Τα πιο κοινά αριθμητικά συστήματα για Η/Υ: υαδικό (r = 2) (Binary) Οκταδικό (r = 8) (Octal) εκαεξαδικό (r = 6) (Hexadecimal) υαδικοί αριθμοί -- βάση 2 Οι Η/Υ αναπαριστούν όλα τα δεδομένα σαν συμβολοσειρές bits, κάθε bit είναι 0 ή βάση 2, με 2 ψηφία: : 0 και π.χ. (00.0) 2 = 2 5 + 0 2 4 + 2 3 + 2 2 + 0 2 + 2 0 + 2 - + 0 2-2 (σε δεκαδικό) ) = 32 + 0 + 8 + 4 + 0 + + ½ + 0 = (45.5) 0 MKM - 5 MKM - 6 Υπολογιστές και Πληροφορία 4
υαδικοί αριθμοί -- βάση 2(συν.) υνάμεις του 2 π.χ. (00.0) 0) 2 = 2 3 + 0 2 2 + 0 2 + 2 0 + 0 2 - + 2-2 + 2-3 (σε δεκαδικό) ) = 8 + + 0.25 + 0.25 = (9.375) 0 MKM - 7 MKM - 8 Οκταδικοί αριθμοί (Octal) - βάση 8 βάση 8, με 8 ψηφία: : 0..7 π.χ. (762) 8 = 7 8 2 + 6 8 + 2 8 0 (σε δεκαδικό) ) = 448 + 48 + 2 = (498) 0 εκαεξαδικοί αριθμοί (Hex) - βάση 6 r = 6 Ψηφία (σύμβαση σύμβαση): 0..9, A, B, C, D, E, F A=0, B=,, F = 5 π.χ. (3FB) 6 = 3 6 2 + 5 66 + 66 0 (σε δεκαδικό) ) = 768 + 240 + = (09) 0 MKM - 9 MKM - 20 Υπολογιστές και Πληροφορία 5
Μετατροπή Βάσεων Οποιαδήποτε βάση r δεκαδικό Εύκολο! (Το έχουμε δει, βλέπε διαφάνειες 3-4, 4, 6-7, 7, 9-20) εκαδικό υαδικό Οκταδικό υαδικό εκαεξαδικό υαδικό εκαδικό Όποια βάση r εκαδικό σε υαδικό N είναι ένας δεκαδικός αριθμός. a) Βρείτε το μεγαλύτερο αριθμό που είναι δύναμη του 2 και όταν αφαιρείται από το N παράγει μια θετική διαφορά N ( Ν = 2 x +Ν ) b) Βάλτε στο MSB c) Εκτελέστε αναδρομικά το α), ξεκινώντας από το N και βρίσκοντας την διαφορά N 2, βάζοντας στα bit που αναλογούν στο x και 0 στα υπόλοιπα bit. Σταμάτησε όταν η διαφορά είναι 0. MKM - 2 MKM - 22 εκαδικό σε υαδικό (συν.) π. χ. N = (77) 0 77 52 = 205 = N 52 = 2 9 (x = 9) 205 28 = 77 = N 2 28 = 2 7 (x = 7) 77 64 = 3 = N 3 64 = 2 6 (x = 6) 3 8 = 5 = N 4 8 = 2 3 (x = 3) 5 4 = = N 5 4 = 2 2 (x = 2) = 0 = N 6 = 2 0 (x = 0) (77) 0 = 2 9 + 2 7 + 2 6 + 2 3 + 2 2 + 2 0 = ( 0 0 0 0 ) 2 υαδικό σε Οκταδικό και εκαεξαδικό Οκταδικό: 8 = 2 3 κάθε 3 bits μεταφράζονται σε οκταδικό εκαεξαδικό: 6 = 2 4 κάθε 4 bits μεταφράζονται σε δεκαεξαδικό MKM - 23 MKM - 24 Υπολογιστές και Πληροφορία 6
υαδικό Οκταδικό υαδικό εκαεξαδικό (0 00 0 000. 0 0 00) 2 ( 00 00 000. 00 00 ) 2 ( 3 2 5 0. 7 5 3 4 ) 8 ( 6 A 8. F 5 C ) 6 MKM - 25 MKM - 26 Οκταδικό εκαεξαδικό Μέσο δυαδικού! εκαεξαδικό υαδικό Οκταδικό Οκταδικό υαδικό εκαεξαδικό Μετατροπή εκαδικών σε οποιαδήποτε βάση r Ακέραιο Μέρος: Αναδρομικά, διαιρέστε το ακέραιο μέρος δια τη βάση, κρατώντας το υπόλοιπο μέχρι το ακέραιο μέρος να γίνει 0 π.χ.. (53) 0 = (? ) 8, r = 8 53 / 8 = 9 + /8 υπόλοιπο = LSB 9 / 8 = 2 + 3/8 υπόλοιπο = 3 2 / 8 = 0 + 2/8 υπόλοιπο = 2 MSB τέλος (53) 0 = ( 23) 8 MKM - 27 MKM - 28 Υπολογιστές και Πληροφορία 7
Μετατροπή εκαδικών σε οποιαδήποτε βάση r Κλασματικό Μέρος: Αναδρομικά, πολ/στε το κλασματικό μέρος επί τη βάση κρατώντας το ακέραιο μέρος μέχρι το κλασματικό μέρος να γίνει 0 π.χ.. (0.7825) 0 = (? ) 6, r = 6 0.7825 6 = 2.5 ακέραιος = 2 = C MSB 0.5 6 = 8.0 ακέραιος = 8 = 8 LSB τέλος (0.7825) 0 = (0.C8) 6 υαδικές Αριθμητικές Πράξεις: Πρόσθεση Ακολουθεί τους ίδιους κανόνες με τη δεκαδική πρόσθεση, με την διαφορά ότι όταν το άθροισμα είναι 2 (και όχι 0) έχουμε κρατούμενο Νέοι κανόνες κρατουμένου (carry) 0+0 = 0c0 (άθροισμα 0 με carry 0) 0+ = +0 = c0 + = 0c ++ = c Κρατούμενο 0 Προσθετέος 0 0 0 0 Προσθετέος 2 0 Αποτέλεσμα 0 0 0 0 + MKM - 29 MKM - 30 υαδικές Αριθμητικές Πράξεις: Πρόσθεση (συν.) Ημιάθροισμα (δεξιότερο bit, π.χ LSB): μόνο 2 bits προσθέτονται, με αποτέλεσμα ένα ψηφίο αθροίσματος και ένα κρατουμένου Πλήρες Άθροισμα (υπόλοιπες θέσεις): 3 bits προσθέτονται με αποτέλεσμα ένα άθροισμα (3 ψηφίων) και ένα κρατούμενο Στο κεφάλαιο 3, θα δούμε πολλές διαφορετικές υλοποιήσεις ημιαθροιστών (half-adders) και αθροιστών (full-adders). Υπερχείλιση Εάν το μέγεθος της λέξης (word) είναι n bits και το αποτέλεσμα του αθροίσματος είναι (n+) bits, έχουμε υπερχείλιση (overflow) το αποτέλεσμα δεν μπορεί να αναπαρασταθεί ορθά (πλήρως) με n bits Υπερχείλιση δεν συμβαίνει ποτέ στην αφαίρεση. Γιατί; MKM - 3 MKM - 32 Υπολογιστές και Πληροφορία 8
υαδικές Αριθμητικές Πράξεις: Αφαίρεση Νέοι κανόνες δανεικού (borrow) 0-0 0 = - = 0b0 (αποτέλεσμα 0 με δανεικό 0) -0 = b0 0- = b ανεικό 0 0 Αφαιρετέος 0 Αφαιρέτης 0 0 - Αποτέλεσμα 0 0 Κλειδιά για επιτυχία Χρήση των ίδιων αλγορίθμων που χρησιμοποιούνται για την εκτέλεση δεκαδικών αριθμητικών λειτουργιών Γενίκευση για τη καινούργια βάση (οι κανόνες carry, borrow αλλάζουν) ιατήρηση της βάσης! Στο δυαδικό,, +=0 MKM - 33 MKM - 34 υαδικές Αριθμητικές Πράξεις: Πολ/σμός Αλγόριθμος Ολίσθησης-και-πρόσθεσης (Shift-and- add), όπως για τη βάση 0 Πολλ/στής 0 0 0 0 Πολλ/στέος 0 0 0 0 0 () 0 0 0 0 0 0 0 (2) 0 0 0 0 (3) 0 0 0 0 Άθροισμα 0 0 0 Επαλήθευση: : 3 * 6 = 78 Κώδικες Αναπαράσταση ενός συνόλου από στοιχεία (π.χ. αριθμούς) αντιστοιχώντας ένα κώδικα (codeword) για κάθε στοιχείο του συνόλου. Ο κώδικας είναι μια συμβολοσειρά υαδικός κώδικας με n bits: μια ομάδα από n bits που κωδικοποιούν 2 n διακριτά στοιχεία π.χ. Ένα σύνολο από 4 διακριτούς αριθμούς μπορεί να αναπαρασταθεί με κώδικα 2-bit έτσι ώστε κάθε αριθμός του συνόλου να αντιστοιχεί ακριβώς σε ένα συνδυασμό στο σύνολο {00,0,0,}. MKM - 35 MKM - 36 Υπολογιστές και Πληροφορία 9
Κώδικες (συν.) Για την κωδικοποίηση m διακριτών στοιχείων με ένα κώδικα n-bit πρέπει: 2 n >= m Σημείωση: Ο κώδικας που συσχετίζεται με κάθε αριθμό γίνεται κωδικοποιώντας τον αριθμό και ΟΧΙ με την μετατροπή του αριθμού σε δυαδικό Θα δούμε: : BCD, ASCII, Unicode εκαδικοί με υαδική Κωδικοποίηση (Binary Coded Decimals -BCD) Ένας δεκαδικός κώδικας: εκαδικοί αριθμοί (0..9) κωδικοποιούνται χρησιμοποιώντας διακριτές δυαδικές λέξεις 4 ων bit 00.. (δεκαδικοί 0..5) δεν αναπαρίστανται (άκυρες λέξεις για BCD) MKM - 37 MKM - 38 εκαδικοί με υαδική Κωδικοποίηση (συν.) Για την κωδικοποίηση αριθμών με n δεκαδικά ψηφία, χρειαζόμαστε 4n bits στο BCD π. χ.. (365) 0 = (00 00 00) BCD Αυτό είναι διαφορετικό από την μετατροπή σε δυαδικό όπου (365) 0 = (000) 2 Ο κώδικας BCD χρειάζεται περισσότερα bits. Όμως, παρέχει μεγαλύτερη ευκολία στην ανάγνωση/ερμηνεία. Πρόσθεση με BCD Όταν 2 κώδικες BCD προστίθενται: Εάν το δυαδικό άθροισμα είναι ία μικρότερο από 00 2 (=0 0 ), το αποτέλεσμα της πρόσθεσης δίνει έγκυρο και ορθό κώδικα για BCD Εάν το δυαδικό άθροισμα είναι ίσο ή μεγαλύτερο από 00 2, τότε το αποτέλεσμα της πρόσθεσης δίνει άκυρο ή/και λανθασμένο κώδικα για BCD. ιορθώνεται με την πρόσθεση του 00 2 (=6 0 ) στο αποτέλεσμα της πρόσθεσης, έτσι ώστε να παραχθεί το σωστό κρατούμενο στο αριστερό ψηφίο. Γιατί 6 0 ; MKM - 39 MKM - 40 Υπολογιστές και Πληροφορία 0
Πρόσθεση με BCD (συν.) Παράδειγμα: Πρόσθεση 448 & 489 σε BCD. 000 000 000 (448 σε BCD) 000 000 00 (489 σε BCD) 000 ( >9, πρόσθεσε 6) 0 (κρατούμενο στο μεσαίο ψηφίο) 0 ( > 9, πρόσθεσε 6) 00 00 (κρατούμενο στο αριστερότερο ψηφίο) 00 00 0 (κώδικας BCD για 937 0 0 ) Κώδικας Gray Απόσταση Hamming: Ο # των αλλαγών στις τιμές των bit μεταξύ δύο δυαδικών τιμών/κωδίκων 000 Στον κώδικα Gray, η απόσταση Hamming πρέπει να είναι μεταξύ κάθε δύο συνεχόμενων κωδίκων Σε ένα κώδικα Gray των n κωδίκων (n άρτιος): Οι πρώτοι n/2 κώδικες έχουν 0 για MSB και άρτια ισοτιμία μεταξύ συνεχόμενων bit Οι υπόλοιποι n/2 παράγονται παίρνοντας την πρώτη λίστα ανάποδα, με για MSB υαδικός κώδικας Για οκταδικό # αλλαγών Κώδικας Gray 000 000 00 00 00 2 0 0 00 00 3 0 0 2 0 0 00 3 000 000 # αλλαγών MKM - 4 MKM - 42 Κώδικας Χαρακτήρων ASCII Πίνακας ASCII Χρειαζόμαστε αναπαράσταση γραμμάτων και άλλων συμβόλων αλφαριθμητικοί κώδικες ASCII = American Standard Code for Information Interchange. Γνωστό ως «Western European» Περιέχει 28 χαρακτήρες: 94 εκτυπώσιμους (26 κεφαλαία και 26 μικρά γράμματα,, 0 ψηφία,, 32 ειδικά σύμβολα) ) 34 μη εκτυπώσιμους (για πράξεις ελέγχου) Χρησιμοποιεί δυαδικό κώδικα των 7-bit για να αναπαραστήσει κάθε ένα από τους 28 χαρακτήρες MKM - 43 MKM - 44 Υπολογιστές και Πληροφορία
Κώδικας Unicode Καθιερωμένο Πρότυπο (Established Standard) Αλφαριθμητικός κώδικας 6-bit για γα διεθνή σύνολα χαρακτήρων Αφού έχει 6-bit, υποστηρίζει 65,536 διαφορετικούς κώδικες Αναπαρίσταται από 4 δεκαεξαδικά (Hex) ψηφία Οι ASCII χαρακτήρες αντιστοιχούν στις τιμές 0000 6 έως 007F 6 του Unicode Πίνακας Unicode (9 πρώτοι χαρακτήρες) MKM - 45 MKM - 46 Bit ισοτιμίας (Parity Bit) για ASCII Η κωδικοποίηση με ισοτιμία (parity parity) χρησιμοποιείται για τον εντοπισμό σφαλμάτων κατά τη διάρκεια μεταφοράς (επικοινωνία) ή/και υπολογισμού δεδομένων Ένα 8 ο bit προστίθεται στον 7-bit κώδικα ASCII Άρτια (Περιττή) Ισοτιμία: το bit ισοτιμίας ορίζεται έτσι ώστε ο αριθμός των στην 8-bit λέξη να είναι άρτιος (περιττός) Bit ισοτιμίας για ASCII (συν.) Για παράδειγμα: Μετατροπή της 7-bit λέξης 00 σε 8-bit λέξη άρτιας ισοτιμίας 0000 Μετατροπή της 7-bit λέξη 00 σε 8-bit λέξη περιττής ισοτιμίας 000 Και οι 2 κώδικες ισοτιμίας μπορούν να ανιχνεύσουν περιττό αριθμό λαθών. Κανένας άρτιος αριθμός λαθών δεν εντοπίζεται. MKM - 47 MKM - 48 Υπολογιστές και Πληροφορία 2