Τετάρτη 5-12/11/2014 ΣΗΜΕΙΩΣΕΙΣ 3 ου και 4 ου ΜΑΘΗΜΑΤΟΣ ΕΙΔΙΚΟΤΗΤΑ: ΤΕΧΝΙΚΟΣ ΕΦΑΡΜΟΓΩΝ ΠΛΗΡΟΦΟΡΙΚΗΣ ΜΑΘΗΜΑ: ΑΡΧΙΤΕΚΤΟΝΙΚΗ Η/Υ Α ΕΞΑΜΗΝΟ ΕΚΠΑΙΔΕΥΤΗΣ: ΤΡΟΧΙΔΗΣ ΠΑΝΑΓΙΩΤΗΣ 1. Παράσταση και οργάνωση δεδομένων (bits, bytes, words) Το bit (διαβάζεται μπιτ, συμβολίζεται ως b) είναι η στοιχειώδης μονάδα πληροφορίας στην Επιστήμη Υπολογιστών και στις Τηλεπικοινωνίες. Ένα bit είναι η ποσότητα της πληροφορίας που μπορεί να αποθηκευτεί από μία δυαδική συσκευή ή από άλλο φυσικό σύστημα το οποίο μπορεί να υπάρχει σε μία από δύο διακριτές καταστάσεις (για παράδειγμα, αυτές οι καταστάσεις μπορούν να είναι οι δύο θέσεις ενός διακόπτη, οι δύο τάσεις ηλεκτρικού ρεύματος που επιτρέπονται σε ένα κύκλωμα, δύο διακριτές εντάσεις φωτός, δύο κατευθύνσεις μαγνητισμού ή πόλωσης, κ.λ.π.). Στην επιστήμη των υπολογιστών, ένα bit μπορεί επιπλέον να οριστεί ως μια μεταβλητή, ή ως μια υπολογίσιμη ποσότητα η οποία μπορεί να έχει μόνο δύο πιθανές τιμές. Αυτές οι δύο τιμές συνήθως ερμηνεύονται ως δυαδικά ψηφία και αναπαριστούνται με τους αριθμούς 0 και 1. Η λέξη bit στα αγγλικά προκύπτει από την σύντμηση των λέξεων BInary digit, αλλά κυριολεκτικά σημαίνει και «μικροσκοπικό τμήμα, κομματάκι». Στα ελληνικά έχει αποδοθεί ως δυφίο (κατά τον ΕΛΟΤ, και ακολουθώντας το σκεπτικό σύντμησης από τα αγγλικά), από τη σύντμηση των λέξεων ΔΥαδικό ψηφιο, όρος που δεν έχει χρησιμοποιηθεί καθόλου στη βιβλιογραφία. Οι δύο τιμές που μπορεί να πάρει ένα bit μπορούν να ερμηνευθούν ως λογικές τιμές (αληθές/ψευδές, ναι/όχι), ως αλγεβρικά πρόσημα (+/ ), ως καταστάσεις ενεργοποίησης (ενεργό/ανενεργό, on/off), ή ως οποιαδήποτε άλλη ιδιότητα η οποία μπορεί να πάρει μόνο δύο τιμές. Η αντιστοιχία μεταξύ αυτών των δύο τιμών και της φυσικής κατάστασης της συσκευής, είναι απλά θέμα σύμβασης, και μπορεί να χρησιμοποιούνται με διαφορετικό τρόπο ακόμα και μέσα στην ίδια συσκευή ή πρόγραμμα. Το μήκος ενός ψηφιακού αριθμού ονομάζεται «μήκος bit». Οι υπολογιστές εργάζονται με το δυαδικό σύστημα αρίθμησης και χρησιμοποιούν δυαδικά ψηφία για να συμβολίζουν εντολές και δεδομένα. Από φυσική σκοπιά, οι τιμές 0 και 1 υλοποιούνται στο υλικό ως καταστάσεις ηλεκτρικής αγωγιμότητας ενός τρανζίστορ. Στους υπολογιστές χρησιμοποιούμε συνήθως τα bit σε ομάδες των 8, 16, 32, 64, 128 κ.λ.π., δηλαδή δυνάμεις του 2. Μια λέξη 8 μπιτ αντιστοιχεί σε ένα μπάϊτ (byte). Υπάρχουν πολλά πολλαπλάσια του Bit όπως KBit, MBit, GBit, TBit, PBit κ.τ.λ. Ένα από τα σημαντικότερα ζητήματα που αφορούν τα υπολογιστικά συστήματα είναι ο τρόπος με τον οποίο αναπαρίστανται τα δεδομένα. Οι πρώτοι ψηφιακοί υπολογιστές Ε κ π α ι δ ε υ τ ή ς : Τ ρ ο χ ί δ η ς Π α ν α γ ι ώ τ η ς Σ ε λ ί δ α 1
χρησιμοποιούσαν το δεκαδικό σύστημα για την αναπαράσταση αριθμών, ενώ μερικοί άλλοι υπολογιστές χρησιμοποιούσαν το τριαδικό σύστημα. Σχεδόν όλοι οι σύγχρονοι επεξεργαστές χρησιμοποιούν το δυαδικό σύστημα, όπου τα δύο ψηφία, το μηδέν (0) και το ένα (1), αντιστοιχούν σε δύο αντίθετες φυσικές καταστάσεις, όπως η "υψηλή" και η "χαμηλή" τάση. Επομένως οι υπολογιστές αντιλαμβάνονται μόνο τα δύο αυτά ψηφία και έτσι πρέπει να χρησιμοποιείται κάποιος κώδικας που να αποδίδει σημασία σε αυτά τα bit. Η κωδικοποίηση και η αποκωδικοποίηση των δυαδικών ψηφίων ώστε να παριστάνουν έναν αριθμό ή έναν χαρακτήρα, κατανοητό από τους χρήστες, συμβαίνει στην μονάδα Εισόδου/Εξόδου. Η ΚΜΕ και κατ' επέκταση οι υπολογιστές χειρίζονται συγκεκριμένες ομάδες δυαδικών ψηφίων. Οι ομάδες μπορεί να έχουν ένα bit, τέσσερα bit που ονομάζεται nibble, οκτώ bit που ονομάζεται byte και 16 bit που ονομάζεται word (λέξη). Το byte είναι η πιο κοινή ομάδα από δυαδικά ψηφία που χρησιμοποιείται στους υπολογιστές. Με ένα byte μπορούν να αναπαρασταθούν 2 8 διαφορετικές τιμές, αφού ένα byte = 8 bits. Η αρίθμηση των bit σε ένα byte αρχίζει από το μηδέν έως το εφτά ενώ βασικό πεδίο εφαρμογής των byte είναι για την κωδικοποίηση χαρακτήρων. Τα bit μιας λέξης (word) αριθμούνται από το μηδέν έως το 15 και μπορούν να αναπαραστήσουν 2 16, ή 65.536, διαφορετικές τιμές. Κάθε bit ή byte παριστάνει αυτό που εμείς καθορίζουμε να παρασταθεί. Για παράδειγμα ένα bit μπορεί να χρησιμοποιηθεί ως αριθμός ενώ το διπλανό του ως λογική τιμή. Με τον ίδιο τρόπο ένα byte μπορεί να χρησιμοποιηθεί ως αριθμός αλλά και ως χαρακτήρας, αναλόγως την κωδικοποίηση που επιλέξουμε για την ανάγνωσή του. Τα δεδομένα στην ΚΜΕ, στην μνήμη και στον δίαυλο του συστήματος υπάρχουν υπό την ίδια δυαδική μορφή. 2. Κωδικοποίηση BCD Οι πρώτοι υπολογιστές είχαν ως βασική αποστολή την εκτέλεση αριθμητικών πράξεων. Στη σημερινή εποχή, παρ' όλο που οι υπολογιστές χρησιμοποιούνται και για το χειρισμό μη αριθμητικών στοιχείων, η ανάγκη για εκτέλεση μεγάλου όγκου αριθμητικών πράξεων εξακολουθεί να υπάρχει. O τρόπος με τον οποίο οι υπολογιστές αποθηκεύουν τους αριθμούς και εκτελούν τις αριθμητικές πράξεις εξαρτάται από τον τύπο του υπολογιστή. Όμως, οι βασικές αρχές αντιμετώπισης των αριθμών από τους κατασκευαστές υλικού και λογισμικού δεν άλλαξαν και πολύ από το ξεκίνημα των υπολογιστών μέχρι σήμερα και από ό, τι φαίνεται ούτε για το ορατό μέλλον προβλέπεται κάποια δραματική αλλαγή. Για την παράσταση των αριθμών στον υπολογιστή - με τη χρήση των ψηφίων 0 και 1 - έχουν προταθεί διάφοροι κώδικες και μέθοδοι που διευκολύνουν και την εκτέλεση των αριθμητικών πράξεων. Οι κώδικες που χρησιμοποιούνται για την παράσταση των αριθμών στον υπολογιστή λέγονται αριθμητικοί κώδικες. Οι κώδικες αυτοί βασίζονται στο δυαδικό σύστημα αρίθμησης και ο πιο διαδεδομένος είναι ο κώδικας BCD (Binary Coded Decimal - Δυαδική Κωδικοποίηση Δεκαδικών Ψηφίων). Για την αναπαράσταση ενός ψηφίου του δεκαδικού συστήματος με τον κώδικα αυτό χρησιμοποιούνται τέσσερα δυαδικά ψηφία. Τα ψηφία του δεκαδικού συστήματος έχουν, Ε κ π α ι δ ε υ τ ή ς : Τ ρ ο χ ί δ η ς Π α ν α γ ι ώ τ η ς Σ ε λ ί δ α 2
όπως φαίνεται και στον πίνακα που ακολουθεί, την ίδια παράσταση με αυτήν που έχουν και στο δυαδικό σύστημα. Δεκαδικό ψηφίο Δυαδική τιμή Δυαδική κωδικοποίηση δεκαδικών ψηφίων 0 0 0000 1 1 0001 2 10 0010 3 11 0011 4 100 0100 5 101 0101 6 110 0110 7 111 0111 8 1000 1000 9 1001 1001 Για να παραστήσουμε ένα δεκαδικό αριθμό με τη δυαδική κωδικοποίηση δεκαδικών ψηφίων, αρκεί κάθε ψηφίο του να αντικατασταθεί με την αντίστοιχη παράσταση στον κώδικα αυτό. Για παράδειγμα ο αριθμός 5479 (10) γίνεται: Δεκαδικός αριθμός 5 4 7 9 Δυαδική κωδικοποίηση δεκαδικών ψηφίων 101 100 111 001 Ο κώδικας αυτός παρουσιάζει κάποια μειονεκτήματα όπως: Το μεγάλο μήκος των κωδικοποιημένων αριθμών για την παράσταση των δεκαδικών αριθμών. Για παράδειγμα ο αριθμός 125 (10) παριστάνεται στον κώδικα BCD ως 0001 0010 0101, ενώ, αν χρησιμοποιήσουμε το δυαδικό σύστημα, θα έχουμε την παράσταση 1111101 (2). Δυσκολία στην εκτέλεση των αριθμητικών πράξεων. Για να εκτελεστούν πράξεις με αριθμούς που έχουν κωδικοποιηθεί με τον κώδικα αυτό συνήθως: o o ή χρησιμοποιούνται ειδικά ηλεκτρονικά κυκλώματα ή μετατρέπονται οι αριθμοί στο δυαδικό σύστημα αρίθμησης. Ε κ π α ι δ ε υ τ ή ς : Τ ρ ο χ ί δ η ς Π α ν α γ ι ώ τ η ς Σ ε λ ί δ α 3
3. Προσημασμένοι Ακέραιοι Για την παράσταση ενός αριθμού στον υπολογιστή χρησιμοποιούνται n δυαδικά ψηφία (bit), όπου το n είναι σταθερό για κάθε υπολογιστή και συνήθως παραστάνει το μήκος της λέξης του υπολογιστή. Με τον κώδικα BCD δεν είναι εύκολο να παρασταθούν προσημασμένοι ακέραιοι αριθμοί ή πραγματικοί. Γι' αυτούς υπάρχουν άλλες μέθοδοι παράστασης, τις κυριότερες από τις οποίες αναφέρουμε στη συνέχεια. Για να παρασταθεί ένας τέτοιος αριθμός, χρειάζεται να εκφραστεί τόσο η απόλυτη τιμή του, όσο και το πρόσημό του. Το πρόσημο ενός ακεραίου αριθμού εκφράζεται με 0 ή με 1. Για το πρόσημο χρησιμοποιείται το πρώτο από αριστερά δυαδικό ψηφίο της λέξης, ενώ στα υπόλοιπα ψηφία τοποθετείται η απόλυτη τιμή του αριθμού σε δυαδική μορφή. Αν ο αριθμός είναι θετικός, το πρόσημο παριστάνεται με το 0, ενώ αν είναι αρνητικός, με το 1. Έτσι αν το n=6, ο αριθμός +13 παριστάνεται με το 001101, ενώ ο αριθμός -13 με το 101101. Αν και αυτός ο τρόπος παράστασης είναι σχετικά απλός, δεν εξυπηρετεί στη σχεδίαση των κυκλωμάτων που απαιτούνται για τις αριθμητικές πράξεις όταν έχουμε να κάνουμε με αρνητικούς αριθμούς. Έτσι έχουν επινοηθεί και άλλες μέθοδοι παράστασης των ακεραίων, όπως η μέθοδος του συμπληρώματος ως προς 1 (1's complement) και η μέθοδος του συμπληρώματος ως προς 2 (2's complement). Παρακάτω θα παρουσιάσουμε την μέθοδο παράστασης ως προς 2 διότι αυτή χρησιμοποιείται πλέον στα ηλεκτρονικά κυκλώματα και γιατί διευκολύνει και απλοποιεί την εκτέλεση των αριθμητικών πράξεων. 3.1 Μέθοδος συμπληρώματος ως προς 2 Εάν το πιο σημαντικό ψηφίο του αριθμού είναι 1, τότε ο αριθμός είναι αρνητικός. Για να βρούμε το μέτρο του αριθμού πρέπει να υπολογίσουμε το συμπλήρωμα ως προς 2 και των n ψηφίων του (δηλαδή λαμβάνουμε υπόψη και το πρόσημο). Το συμπλήρωμα ως προς 2 ενός δυαδικού αριθμού βρίσκεται, εάν αντικαταστήσουμε το 0 µε 1 και το 1 µε 0 και στη συνέχεια προσθέσουμε 1. Για παράδειγμα, για να βρούμε την παράσταση συμπληρώματος ως προς 2 του αριθμού -17 σε ένα υπολογιστή µε μήκος λέξης 16 bits, αρχικά θα γράψουμε τον αντίστοιχο θετικό (17) σε δυαδική μορφή, δηλαδή 0000 0000 0000 0001 0001. Στη συνέχεια θα αντικαταστήσουμε το 0 µε 1 και το 1 µε 0 στον αριθμό αυτό, και θα πάρουμε 1111 1111 1110 1110. Στον αριθμό αυτό θα προσθέσουμε τον 1. Η τελική του παράσταση θα είναι λοιπόν 1111 1111 1110 1111. Για να βρούμε την τιμή που παριστάνει ο αριθμός 1110 0110 θα υπολογίσουμε το συμπλήρωμά του ως προς 2 μαζί µε το πρόσημο. Αρχικά αντιστρέφουμε όλα τα ψηφία του Ε κ π α ι δ ε υ τ ή ς : Τ ρ ο χ ί δ η ς Π α ν α γ ι ώ τ η ς Σ ε λ ί δ α 4
και παίρνουμε 0001 1001. Μετά προσθέτουμε τον αριθμό 1, και έχουμε 00011001 + 1 = 00011010. Άρα το μέτρο του αριθμού είναι το 00011010 (2) = 26 (10) και ο αριθμός είναι ο (- 26). 4. Παράσταση Χαρακτήρων Εκτός από αριθμούς, θέλουμε να παραστήσουμε στον υπολογιστή και σύμβολα, όπως είναι τα γράμματα, τα σημεία στίξης, τα αριθμητικά ψηφία. Αυτά τα σύμβολα ονομάζονται χαρακτήρες (characters). Όπως οι αριθμοί και όλες οι άλλες πληροφορίες, έτσι και οι χαρακτήρες παριστάνονται στους υπολογιστές σαν µία σειρά από δυαδικά ψηφία. Κάθε χαρακτήρας αντιστοιχίζεται σε µία σειρά ψηφίων που έχει μήκος συνήθως 8 ή 16 bits. Ένα κείμενο παριστάνεται µε την ακολουθία των χαρακτήρων που το αποτελούν. Η παράσταση των αριθμών µε δυαδικά ψηφία είναι πολύ απλή και «αυτονόητη». Με τους χαρακτήρες όμως δε συμβαίνει το ίδιο. Η αντιστοίχιση χαρακτήρων µε ακολουθίες από δυαδικά ψηφία μπορεί να γίνει µε πάρα πολλούς τρόπους. Έτσι για να μπορούν οι υπολογιστές να χρησιμοποιούν από κοινού δεδομένα πρέπει να συμφωνούν στην αντιστοίχιση αυτή. Αν ένας υπολογιστής Υ 1 παριστάνει το γράμμα «A» µε την ακολουθία των δυαδικών ψηφίων 0011 0100, και ένας υπολογιστής Υ 2 παριστάνει µε την ακολουθία αυτή το γράμμα «Ε», τότε όταν ο Υ 1 στείλει ένα κείμενο στον Υ 2, όλα τα «Α» στο κείμενο θα ερμηνεύονται σαν «Ε»! Μία κοινώς αποδεκτή αντιστοίχιση χαρακτήρων - δυαδικών ακολουθιών ονομάζεται σύνολο χαρακτήρων (character set) και συνήθως είναι καθορισμένη από κάποιο διεθνή οργανισμό προτυποποίησης. Για ευκολία, επειδή µία ακολουθία δυαδικών ψηφίων ερμηνεύεται πολύ εύκολα σαν ένας δυαδικός αριθμός, το σύνολο χαρακτήρων αναφέρεται σαν αντιστοιχία χαρακτήρων µε αριθμούς. Για παράδειγμα, αν το γράμμα «Α» παριστάνεται µε τη δυαδική ακολουθία 0100 0001, που σαν δυαδικός αριθμός έχει την τιμή 65, λέμε ότι το γράμμα «Α» παριστάνεται µε τον αριθμό 65. Ένα από τα πρώτα σύνολα χαρακτήρων είναι το ASCII (American Standard Code for Information Interchange), το οποίο στην αρχή παρίστανε τους χαρακτήρες µε 7 bits και περιλάμβανε µόνο το λατινικό αλφάβητο. Το 8 ο bit χρησιμοποιούνταν ως bit ισοτιμίας (parity bit) που δήλωνε το πλήθος των bits του µε την τιμή 1 : αν το πλήθος ήταν περιττό, τότε το 8 ο bit ήταν 1, αλλιώς ήταν 0. Το bit ισοτιμίας χρησίμευε στην ανίχνευση λαθών κατά τη μετάδοση δεδομένων. Για παράδειγμα, ο χαρακτήρας 0110101 (2) έχει άρτιο πλήθος bits µε την τιμή 1, έτσι το bit ισοτιμίας του είναι 0, και η τελική του μορφή είναι 00110101. Ο χαρακτήρας 1001111 (2) έχει περιττό πλήθος bits µε την τιμή 1, έτσι το bit ισοτιμίας του είναι 1, και η τελική του μορφή είναι 11001111. Αργότερα το πρότυπο ASCII επεκτάθηκε στα 8 bits για να περιλάβει και άλλους χαρακτήρες (π.χ. χαρακτήρες µε διακριτικά). Οι πρώτοι 32 χαρακτήρες του προτύπου ASCII, Ε κ π α ι δ ε υ τ ή ς : Τ ρ ο χ ί δ η ς Π α ν α γ ι ώ τ η ς Σ ε λ ί δ α 5
µε τιμές 0-31 είναι «µη εκτυπώσιμοι» (non printable) και χρησιμοποιούνται σαν μηνύματα ελέγχου για οθόνες, εκτυπωτές κ.λ.π. Ο χαρακτήρας 10 δηλώνει την αλλαγή γραμμής σε µία οθόνη τερματικού, ενώ ο χαρακτήρας 12 δηλώνει το τέλος σελίδας σε µία εκτύπωση. Ε κ π α ι δ ε υ τ ή ς : Τ ρ ο χ ί δ η ς Π α ν α γ ι ώ τ η ς Σ ε λ ί δ α 6