EΠΛ121 Ψηφιακά Συστήματα Καλή Χρονιά και καλωσορίσατε (πισω!) Πληροφορίες για το ΕΠΛ121 Εισαγωγή στους ψηφιακούς υπολογιστές και πληροφορία
Γιατί παίρνετε το EΠΛ121; Η ωρα του μαθηματος ειναι βολικη Απαιτειται στον καταλογο σπουδων Απεριοριστη περιεργεια να μαθετε για τους υπολογιστες Σας αρεσει να δουλευεται σκληρα και εξυπνα Ειναι εξαιρετικα απολαυστικο μαθημα (ΑΠΟΛΥΤΑ!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!)
Επίπεδα Λογισμικού 223,242,244 131,132,233 222 Αρχιτεκτονική 121,221 Λογισμικό Εφαρμογών ( Application Software) 131,132,233 Γλώσσες Υπολογιστή (Computer Languages) Λειτουργικό Σύστημα 222 ( Operating System) Αρχιτεκτονική 121,221 224,321 Υλικό ( Hardware)
Τι θα μάθετε στο ΕΠΛ121; Μεθόδους ανάλυσης και σχεδιασμού υλικού: Ψηφιακών Συστημάτων Χρήση Μεθόδων: χαρτί (paper design) λογισμικό (σχεδιασμό/προσομοίωση -simulation) υλικό (hardware) Πρακτική: σχεδιασμός-προσομοίωση-υλοποίηση συστημάτων
ΕΠΛ121 Α Β
Ψηφιακοί Υπολογιστές και Πληροφορία Κοινωνια της Πληροφοριας Πληροφορια διεπει σχεδον τα παντα Ευρεια χρηση ψηφιακων συστηματών για επεξεργασία και αποθήκευση πληροφοριών Ψηφιάκα Συστήματα Γενικής Χρησεώς (προγραμματιζόμενα) προσωπικός υπολογιστής, servers Εξειδικεύμενης (περιορισμενός προγραμματισμός) mobile phones, πλυντήριο, αύτοκίνητο, CD player, gameboy
Βασική Δομή Ψηφιακού Συστήματος Επεξεργαστης Moνάδα Ελέγχου (Control Unit) Μνημη (memory) Εισοδος/Εξοδος (Input/Output) Διαδρομος Δεδομενων (Datapath)
Βασική Δομή Υπολογιστή Οθονη, Εκτυπωτης Πληκτρολογιο, Ποντικι, Δισκος Επεξεργαστης (CPU, processor) Moναδα Ελεγχου (Control Unit) Μνημη (memory) Εισοδος/Εξοδος (Input/Output) Διαδρομος Δεδομενων (Datapath) Iεραρχια Μνημης 1st level cache 2nd level cache main memory δισκος Προσβαση σε Δευτερευουσα Μνημη, Δικτυο, Διαδυκτυο
Δομή Μαθήματος Αναπαρασταση πληροφοριας σε Ψηφιακά Συστήματα Αναπαρασταση πληροφοριας σε Ψηφιακά Συστήματα Συνδυαστικά Κυκλώματα Διάδρομος Δεδομένων Ακολουθιακά Κυκλώματα Μονάδα Ελέγχου, Διάδρομος Δεδομένων, Μνήμη Μνήμη Διάδρομος Δεδομένων ενος επεξεργαστή
Αναπαρασταση Πληροφοριας Αναπαρασταση πληροφοριων σε υπολογιστες με ψηφιακα διακριτα σηματα voltage/current, transistors Τυπικα δυο σηματα (binary) High/Low True/False 1/0 Δυαδικο ψηφιο (binary digit): 1 bit Αναπαρασταση πληροφοριων με bits (εντολες και δεδομενα)
Αναπαρασταση Αριθμων: Δεκαδικο Συστημα 742.5 = 7 x102 + 4 x101 + 2 x100 + 5 x10-1 γραφουμε το αριστερα εννοουμε το δεξια An-1An-2…A1A0.A-1 A-2…A-m+1 A-m n ψηφια αριστερα (ακεραιο) υποδιαστολης και m ψηφια δεξια (κλασματικο) Ai ενα απο τα ψηφια (0,1,2,3,4,5,6,7,8,9) i ειναι η θεση με βαρος 10i Βαση 10 (base 10) - Δεκαδικο (decimal)
Αναπαρασταση Αριθμων: Βαση r An-1rn-1+An-2rn-2+…+A1r1+A0r0+A-1r-1+A-2r-2 +...+A-m+1r-m+1+A-m r-m Ai ενα απο τα ψηφια (0,1,2,…,r-1) An-1most significant digit(msd) A-mleast significant digit(lsd) (76.3)9 βαση 9: ολα ψηφια μεταξυ 0 και 8 msd lsd Βαση
Αναπαρασταση Αριθμων: Βαση 2:Δυαδικο Συστημα(Binary) μονο δυο ψηφια 0 και 1 βαρoς θεσης i ειναι 2i Μετατροπη απο βαση-2 σε βαση-10 (11010)2=1x24+1x23+0x22+1x21+0x20= (26)10 (110011.01)2= ( )10
Oκταδικό και Δεκαεξαδικό Σύστημα (octal και hexadecimal) Βαση-8: 0,1,2,3,4,5,6,7 (173.04)8= ( )10 Βαση-16: 0,1,2,3,4,5,6,7,8,9,Α,Β,C,D,E,F (B6A3)16= ( )10 8=23: καθε οκταδικο ψηφιο αντιστοιχει σε 3 δυαδικα ψηφια 16=24: καθε δεκαεξαδικο ψηφιο αντιστοχει σε 4 δυαδικα ψηφια Πιο ευκολοδιαβαστο απο 0/1, απλη μετατροπη
Patterns των bits
Xρησιμα... Αν το (ν)10=2n και n 0,1,2.. Αν το (ν)10 = 2n-1 και n 1,2.. (v)10 =(101..0n)2 (256)10 = 28 = (100000000)2 στο binary η ακεραια αναπαρασταση περιεχει ενα 1 και n 0 στα δεξια του 1 Αν το (ν)10 = 2n-1 και n 1,2.. (v)10 =(1112..1n-11n)2 (255)10 = 28-1= (11111111)2 αναπαρασταση περιεχει n 1
Μετατροπη bin2oct, oct2bin, bin2hex, hex2bin (10100111101.10101)2 = ( )8 (275.604)8= ( )2 (3210.987)8= ( )2 (10100111101.10101)2 = ( )16 (B60.FA1)16= ( )2 Πως oct2hex hex2oct;
Πεδίο Τιμών (number ranges) Περιορισμενο πεδιο τιμων λογο καθορισμενου αριθμου bits στο υλικο ενος υπολογιστη (εφαρμογες, αρχιτεκτονικη, υλοποιηση) Υπολογιστες σημερα αναπαραστουν τιμες συνηθως με 8,16,32,64 και 128 bits Με 2 bits ποσοι διαφορετικοι συνδυασμοι; 00 01 10 11
Πεδιο Τιμων (number ranges) Με n bits ποσες διαφορετικες τιμες; 2n Με 16 bits 216 διαφορετικες τιμες απροσημοι ακεραιοι: 0 μεχρι 216-1 (65535) 16 bit αναπαρασταση του 508 0000000011111100 Προεκταση: προγραμματα επεξεργαζονται αμεσα μονο υποσυνολα αριθμων (int, float) Leading Zeros: συνηθως θα τα αγνοουμαι στο χαρτι
Binary Αριθμητικη (arithmetic) Ανεξαρτητα βασης;κανονες ιδιοι με βαση10 Προσθεση Α + Β Α 01100 Β 10001+ Aθροισμα(sum)
Binary Αριθμητικη (arithmetic) Ανεξαρτητα βασης;κανονες ιδιοι με βαση10 Προσθεση Α + Β Kρατουμενο(carry) 00000 Α 01100 Β 10001+ Aθροισμα(sum) 11101 Eπιβεβαιωση...
Binary Αριθμητικη (arithmetic) Ανεξαρτητα βασης;κανονες ιδιοι με βαση10 Προσθεση Α + Β Kρατουμενο(carry) 00000 Α 01100 10110 Β 10001+ 10111+ Aθροισμα(sum) 11101
Binary Αριθμητικη (arithmetic) Ανεξαρτητα βασης;κανονες ιδιοι με βαση10 Προσθεση Α + Β Kρατουμενο(carry) 00000 101100 Α 01100 10110 Β 10001+ 10111+ Aθροισμα(sum) 11101 101101 Eπιβεβαιωση...
Binary Αριθμητικη (arithmetic) Ανεξαρτητα βασης;κανονες ιδιοι με βαση10 Προσθεση Α + Β Kρατουμενο(carry) 00000 101100 Α 01100 10110 Β 10001+ 10111+ Aθροισμα(sum) 11101 101101 ai bi ci ci+1 si 0 0 0 0 0 1 0 1 0 0 1 1 1 0 0 1 0 1 1 1 0 1 1 1
Binary Αριθμητικη (arithmetic) Ανεξαρτητα βασης;κανονες ιδιοι με βαση10 Προσθεση Α + Β Kρατουμενο(carry) 00000 101100 Α 01100 10110 Β 10001+ 10111+ Aθροισμα(sum) 11101 101101 ai bi ci ci+1 si 0 0 0 0 0 0 0 1 0 1 0 1 0 0 1 0 1 1 1 0 1 0 0 0 1 1 0 1 1 0 1 1 0 1 0 1 1 1 1 1
Binary Αριθμητικη (arithmetic) Αφαιρεση A-B Α 10110 10110 Β 10010- 10011- Διαφορα(differ.)
Binary Αριθμητικη (arithmetic) Αφαιρεση A-B Kρατουμ.(borrow) 00000 00110 Α 10110 10110 Β 10010- 10011- Διαφορα(differ.) 00100 00011 Eπιβεβαιωση...
Binary Αριθμητικη (arithmetic) Αφαιρεση A-B Kρατουμ.(borrow) 00000 00110 Α 10110 10110 Β 10010- 10011- Διαφορα(differ.) 00100 00011 Α 10110 Β 11000- Διαφορα(differ.)
Binary Αριθμητικη (arithmetic) Αφαιρεση A-B Kρατουμ.(borrow) 00000 00110 Α 10110 10110 Β 10010- 10011- Διαφορα(differ.) 00100 00011 Α 10110 11000 Β 11000- 10110- Διαφορα(differ.)
Binary Αριθμητικη (arithmetic) Αφαιρεση A-B Kρατουμ.(borrow) 00000 00110 Α 10110 10110 Β 10010- 10011- Διαφορα(differ.) 00100 00011 Α 10110 11000 Β 11000- 10110- Διαφορα(differ.) -
Binary Αριθμητικη (arithmetic) Αφαιρεση A-B Kρατουμ.(borrow) 00000 00110 Α 10110 10110 Β 10010- 10011- Διαφορα(differ.) 00100 00011 Kρατουμ.(borrow) 00100 Α 10110 11000 Β 11000- 10110- Διαφορα(differ.) -00010 Eπιβεβαιωση...
Binary Αριθμητικη (arithmetic) Πολλαπλασιασμος AxB Α 10110 Β 110x
Binary Αριθμητικη (arithmetic) Πολλαπλασιασμος AxB Α 10110 Β 110x 00000 10110 10110 + Γινομενο(prod.) 10000100 Eπιβεβαιωση…
Hex Arithmetic Για καθε ζευγος ψηφιων Α+Β Α 59F Β E46+ Ηex2Dec, Προσθεση Dec2Hex Α+Β Α 59F Β E46+
Hex Arithmetic Για καθε ζευγος ψηφιων Α+Β Carry 1010 Α 59F Β E46+ 13E5 Ηex2Dec, Προσθεση Dec2Hex Α+Β Carry 1010 Α 59F Β E46+ 13E5
Μετατροπη Βασης r2n (base conversion) Αλλιως r2decimal, decimal2n γνωστο Πως;
Mετατροπη decimal2r Ξεχωριστος αλγοριθμος για ακεραιο και κλασματικο μερος Ακεραιο: διαιρουμε τον αριθμο με r σημειωνουμαι το πηλικο και το υπολοιπο σταματα αν το πηλικο ειναι 0 επαναλαβε αλλα με διαρεταιο το πηλικο dec2oct, (153)10 = ( )8 231 r Π Υ 19 1 2 3 0 2
dec2bin (41)10 = ( )2 101001 Π Υ 20 1 10 0 5 0 2 1 1 0 0 1
dec2r Κλασματικο Μερος Αλγοριθμος πολλαπλασιαζουμε τον αριθμο με r σημειωνουμαι το ακεραιο μερος του γινομενου σταματα αν το κλασματικο μερος του γινομενου ειναι 0 επαναλαβε αλλα με πολλαπλασιασταιο το κλασματικο μερος
dec2r Κλασματικο Μερος (0.6875)10 =( )2 0.1011 Γα Γκ 1 0.375 0 0.75 (0.6875)10 =( )2 0.1011 Γα Γκ 1 0.375 0 0.75 1 0.5 1 0
dec2r Κλασματικο Μερος (0.513)10 = ( )8 μεχρι 3 κλασματικα ψηφια 0.407 (0.513)10 = ( )8 μεχρι 3 κλασματικα ψηφια 0.407 Γα Γκ Ακριβεια και Στρογγυλοποιηση 4 0.104 0 0.832 6 0.656 5 0.248 (153.513)10 = (231.407)8 Προσοχη: ιδια τιμη στο ακεραιο και κλασματικο για μια βαση διαφορετικη αναπαρασταση σε αλλη βαση (5.5)10 = (101.1)2
Κωδικοποιησεις Aνθρωποι ανετοι με το δεκαδικο Υπολογιστες με το δυαδικο Δεν μιλουν/γραφουν ολοι αγγλικα Αναγκη για κωδικοποιηση Βinary-Coded Decimal (BCD) (ιστορικο) ASCII UNICODE
Κωδικοποιηση Aναπαρασταση με n-bit κωδικες (2n μοναδικοι κωδικες:0 - 2n-1) ενος συνολου στοιχειων Συνολο με r στοιχεια χρειαζεται n=ceil(log2r) bits ωστε καθε στοιχειο να εχει μοναδικη κωδικα Συνολο με 4 στοιχεια μπορει να κωδικοποιηθει με 2-bit κωδικες (00,01,10,11) Προεκταση:συνολα με περισσοτερα (απειρα) στοιχεια απο μοναδικους κωδικες μπορει να αναπαρασταθουν, αλλα πολλα στοιχεια θα εχουν τον ιδιο κωδικα (πχ πραγματικοι αριθμοι)
ΒCD Κωδικοποιηση δεκαδικων σε δυαδικο Πιο συχνη κωδικοποιηση ceil(log210)= 4bits για καθε δεκαδικο ψηφιο 16-10 = 6 συνδυασμοι δεν χρησιμοποιουνται Πιο συχνη κωδικοποιηση dec BCD 0 0000 1 0001 2 0010 3 0011 4 0100 5 0101 6 0110 7 0111 8 1000 9 1001
BCD Eνας δεκαδικος με ν ψηφια χρειαζεται 4ν bits για να αναπαρασταθει στο ΒCD (2042)10 = (0010 0000 0100 0010)BCD (2042)10 = (11111111110)2 σημασια bits εξαρταται απο την κωδικοποιηση που χρησιμοποιηται (χαρτι και μηχανη) + Πιο ευκολη η μετατροπη dec2bin για ΒCD - Δεν χρησιμοποια ολους τους συνδυασμους
Προσθεση σε ΒCD Binary προσθεση ανα δυο ψηφια. Χρειαζεται προσαρμογη οταν το αθροισμα ειναι >9: carry στο επομενο ζευγος προσθεση 6 στο αθροισμα για σωστο ΒCD κωδικα 48 + 89
Προσθεση σε ΒCD Binary προσθεση ανα δυο ψηφια. Χρειαζεται προσαρμογη οταν το αθροισμα ειναι >9: carry στο επομενο ζευγος προσθεση 6 στο αθροισμα για σωστο ΒCD κωδικα 48 + 89 0100 1000 1000 1001+
Προσθεση σε ΒCD Binary προσθεση ανα δυο ψηφια. Χρειαζεται προσαρμογη οταν το αθροισμα ειναι >9: carry στο επομενο ζευγος προσθεση 6 στο αθροισμα για σωστο ΒCD κωδικα 48 + 89 carry 0 0100 1000 1000 1001+ 10001
Προσθεση σε ΒCD Binary προσθεση ανα δυο ψηφια. Χρειαζεται προσαρμογη οταν το αθροισμα ειναι >9: carry στο επομενο ζευγος προσθεση 6 στο αθροισμα για σωστο ΒCD κωδικα 48 + 89 carry 0 0100 1000 1000 1001+ 10001 0110+ 10111
Προσθεση σε ΒCD Binary προσθεση ανα δυο ψηφια. Χρειαζεται προσαρμογη οταν το αθροισμα ειναι >9: carry στο επομενο ζευγος προσθεση 6 στο αθροισμα για σωστο ΒCD κωδικα 48 + 89 carry 1 0 0100 1000 1000 1001+ 10001 0110+ 10111 0111
Προσθεση σε ΒCD Binary προσθεση ανα δυο ψηφια. Χρειαζεται προσαρμογη οταν το αθροισμα ειναι >9: carry στο επομενο ζευγος προσθεση 6 στο αθροισμα για σωστο ΒCD κωδικα 48 + 89 carry 1 1 0 0100 1000 1000 1001+ 1 1101 10001 0110+ 0110+ 10011 10111 0001 0011 0111
ΑSCII Κωδικοποιηση για αγγλικους αλφαβητικους χαρακτηρες, αριθμητικα ψηφια, ειδικους χαρακτηρες ΑSCII διεθνες προτυπο με 7-bit codes (ποσοι μοναδικοι κωδικες;) a 110 0001,…, z 111 1010 A 100 0001,…, Z 101 1010 0 011 0000,…,9 011 1001
ΑSCII Κωδικοποιηση για αγγλικους αλφαβητικους χαρακτηρες, αριθμητικα ψηφια, ειδικους χαρακτηρες ΑSCII διεθνες προτυπο με 7-bit codes (ποσοι μοναδικοι κωδικες;) 16δικο: a 110 0001,…, z 111 1010 A 100 0001,…, Z 101 1010 0 011 0000,…,9 011 1001
ΑSCII Κωδικοποιηση για αγγλικους αλφαβητικους χαρακτηρες, αριθμητικα ψηφια, ειδικους χαρακτηρες ΑSCII διεθνες προτυπο με 7-bit codes (ποσοι μοναδικοι κωδικες;) 16δικο: a 110 0001,…, z 111 1010 61h,..,7ah A 100 0001,…, Z 101 1010 41h,..,5ah 0 011 0000,…,9 011 1001 30h,..,39h
Parity Bits (ψηφια ακεραιοτητας) Πχ 1bit-parity για κωδικες ΑSCII ΑSCII Even Parity Odd Parity A 1000001 ?1000001 ?1000001 2 0110010 ?0110010 ?0110010
Parity Bits (ψηφια ακεραιοτητας) Πχ parity για κώδικες ΑSCII ΑSCII Even Parity Odd Parity A 1000001 01000001 11000001 2 0110010 10110010 00110010 Πως ανωγνωριζεται το λαθος; Τι γινεται;
Διαδικασία Εαν το αποτελεσμα ελεγχου ορθο καλα, αλλιως Tιμή Πρόσθεσε Αποστολή Μέσο ΠαραλαβήΈλεγχος Tιμή Parity Parity Εαν το αποτελεσμα ελεγχου ορθο καλα, αλλιως ζητουμαι επαναληψη αποστολης δεδομενων
Παραδειγμα με even parity (αποστολη ascii b) Tιμή Πρόσθεσε Αποστολή Μέσο ΠαραλαβήΈλεγχος Tιμή Parity Parity b
Παραδειγμα με even parity Tιμή Πρόσθεσε Αποστολή Μέσο ΠαραλαβήΈλεγχος Tιμή Parity Parity b 62h 1100010
Παραδειγμα με even parity Tιμή Πρόσθεσε Αποστολή Μέσο ΠαραλαβήΈλεγχος Tιμή Parity Parity b 62h 1100010 11100010
Παραδειγμα με even parity Tιμή Πρόσθεσε Αποστολή Μέσο ΠαραλαβήΈλεγχος Tιμή Parity Parity b 62h 1100010 11100010 11100010
Παράδειγμα με even parity Tιμή Πρόσθεσε Αποστολή Μέσο ΠαραλαβήΈλεγχος Tιμή Parity Parity b 62h 1100010 11100010 11100010 OK 1100010
Παράδειγμα με even parity (με λαθος) Tιμή Πρόσθεσε Αποστολή Μέσο ΠαραλαβήΈλεγχος Tιμή Parity Parity b 62h 1100010 11100010 11100000 ΛΑΘΟΣ! Ζήτα αποστολή
Parity Bits (ψηφία ακεραιότητας) Ποσα λαθοι μπορει να αναγνωριστούν με 1 parity bit;