ΑΡΧΙΤΕΚΤΟΝΙΚΕΣ ΥΠΟΛΟΓΙΣΤΩΝ Μάθηµα: Αρχιτεκτονικές Υπολογιστών Αναπαράσταση εδοµένων ιδάσκων: Αναπλ. Καθ. Κ. Λαµπρινουδάκης clam@unipi.gr Αρχιτεκτονικές Υπολογιστών Aναπλ. Καθ. Κ. Λαµπρινουδάκης 1 εδοµένα και Εντολές πληροφορία δεδοµένα εντολές αριθµητικά δεδοµένα κείµενο εικόνα Αρχιτεκτονικές Υπολογιστών Aναπλ. Καθ. Κ. Λαµπρινουδάκης 2 1
Προσηµασµένοι και απρόσηµοι αριθµοί Τιµή του i-οστού ψηφίου d d βάση i 1011 two αναπαριστά τον αριθµό (1 2 3 ) + (0 2 2 ) + (1 2 1 ) + (1 2 0 ) ten (1 8) + (0 4) + (1 2) + (1 1) ten 8 + 0 + 2 + 1 ten 11 ten 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 1 Αρχιτεκτονικές Υπολογιστών Aναπλ. Καθ. Κ. Λαµπρινουδάκης 3 Εύρος τιµών 0000 0000 0000 0000 0000 0000 0000 0000 two = 0 ten 0000 0000 0000 0000 0000 0000 0000 0001 two = 1 ten 0000 0000 0000 0000 0000 0000 0000 0010 two = 2 ten... 1111 1111 1111 1111 1111 1111 1111 1101 two = 4.294.967.293 ten 1111 1111 1111 1111 1111 1111 1111 1110 two = 4.294.967.294 ten 1111 1111 1111 1111 1111 1111 1111 1111 two = 4.294.967.295 ten Αυτοί είναι οι ακέραιοι αριθµοί των 32 bit Χωρίς πρόσηµο (µόνο θετικοί και µηδέν) Αρχιτεκτονικές Υπολογιστών Aναπλ. Καθ. Κ. Λαµπρινουδάκης 4 2
Προσηµασµένοι: συµπ/µα ως προς 2 Το πρώτο bit δείχνει το πρόσηµο 0 θετικός, 1 αρνητικός 0000 0000 0000 0000 0000 0000 0000 0000 two = 0 ten 0000 0000 0000 0000 0000 0000 0000 0001 two = 1 ten 0000 0000 0000 0000 0000 0000 0000 0010 two = 2 ten... 0111 1111 1111 1111 1111 1111 1111 1101 two = 2.147.483.645 ten 0111 1111 1111 1111 1111 1111 1111 1110 two = 2.147.483.646 ten 0111 1111 1111 1111 1111 1111 1111 1111 two = 2.147.483.647 ten 1000 0000 0000 0000 0000 0000 0000 0000 two = 2.147.483.648 ten 1000 0000 0000 0000 0000 0000 0000 0001 two = 2.147.483.647 ten 1000 0000 0000 0000 0000 0000 0000 0010 two = 2.147.483.646 ten... 1111 1111 1111 1111 1111 1111 1111 1101 two = 3 ten 1111 1111 1111 1111 1111 1111 1111 1110 two = 2 ten 1111 1111 1111 1111 1111 1111 1111 1111 two = 1 ten Αρχιτεκτονικές Υπολογιστών Aναπλ. Καθ. Κ. Λαµπρινουδάκης 5 Πρόσθεση αφαίρεση Το πρόβληµα της υπερχείλησης εν χωράει το αποτέλεσµαστα 32 bit Πράξη Τελεστέος Α Τελεστέος Β Αποτέλεσµα που δείχνει υπερχείλιση A + B > 0 > 0 < 0 A + B < 0 < 0 0 A B > 0 < 0 < 0 A B < 0 > 0 0 Αρχιτεκτονικές Υπολογιστών Aναπλ. Καθ. Κ. Λαµπρινουδάκης 6 3
Κινητή υποδ/λή: πραγµατικοί αριθµοί επιστηµονική σηµειογραφία (scientific notation) Μια σηµειογραφία που δίνει αριθµούς µε ένα µόνο ψηφίο στα αριστερά της υποδιαστολής. κανονικοποιηµένος (normalized) Ένας αριθµός σε σηµειογραφία κινητής υποδιαστολής χωρίς αρχικά 0. Παραδείγµατα 1,0 ten 10 9 [ κανονικοποιηµένος ] 0,1 ten 10 8 και 10,0 ten 10 10 [ µη κανονικοποιηµένοι ] Αρχιτεκτονικές Υπολογιστών Aναπλ. Καθ. Κ. Λαµπρινουδάκης 7 υαδικοί σε επιστ. σηµειογρ. 1,0 two 2 1 = 0,1 two κινητή υποδιαστολή (floating point) Αριθµητική υπολογιστών που αναπαριστά αριθµούς στους οποίους η υποδιαστολή δεν είναι σε σταθερή θέση. κλάσµα (fraction) Η τιµή, γενικά µεταξύ 0 και 1, που τοποθετείται στο κλασµατικό πεδίο. εκθέτης (exponent) Στο σύστηµα αναπαράστασης αριθµών της αριθµητικής κινητής υποδιαστολής, η τιµή που τοποθετείται στο πεδίο του εκθέτη. 1,xxxxxxxxx two 2 yyyy 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 π εκθέτης κλάσµα 1 bit 8 bit 23 bit Αρχιτεκτονικές Υπολογιστών Aναπλ. Καθ. Κ. Λαµπρινουδάκης 8 4
Αριθµοί κινητής υποδιαστολής 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 π εκθέτης κλάσµα 1 bit 8 bit 23 bit ( 1) πρόσηµο κλάσµα 2 εκθέτης υπερχείλισηκινητήςυποδιαστολής (floating point overflow) Κατάσταση στην οποία ένας θετικός εκθέτης γίνεται πολύ µεγάλος για να χωρέσει στο πεδίο του εκθέτη (exponent). ανεπάρκειακινητήςυποδιαστολής (floating point underflow) Κατάσταση στην οποία ένας αρνητικός εκθέτης γίνεται πολύ µεγάλος για να χωρέσει στο πεδίο του εκθέτη (exponent). Αρχιτεκτονικές Υπολογιστών Aναπλ. Καθ. Κ. Λαµπρινουδάκης 9 Απλή και ιπλή ακρίβεια απλήακρίβεια (single precision) Μια τιµή κινητής υποδιαστολής που αναπαρίσταται µε µία λέξη 32 bit. διπλήακρίβεια (double precision) Μια τιµή κινητής υποδιαστολής που αναπαρίσταται µε δύο λέξεις 32 bit. 31302928272625242322212019181716151413121110 9 8 7 6 5 4 3 2 1 0 π εκθέτης κλάσµα 11 bit 20 bit κλάσµα (συνέχεια) 32 bit Αρχιτεκτονικές Υπολογιστών Aναπλ. Καθ. Κ. Λαµπρινουδάκης 10 5
Υπονοούµενο 1 Ψηφία κλάσµατος s1, s2, s3, s4, Αφού ο αριθµός είναι κανονικοποιηµένος και δυαδικός θα είναι πάντα ίσος µε 1,xxxx Συνεπώς το 1 πριν την υποδιαστολή πάντα υπάρχει εν χρειάζεται να αποθηκευθεί ( 1) πρόσηµο (1 + κλάσµα) 2 εκθέτης ( 1) πρόσηµο (1 + (s1 2 1 ) + (s2 2 2 ) + (s3 2 3 ) + (s4 2 4 ) +...) 2 εκθέτης Αρχιτεκτονικές Υπολογιστών Aναπλ. Καθ. Κ. Λαµπρινουδάκης 11 Το πρότυπο IEEE 754 Ειδικές περιπτώσεις Το 0 Μη κανονικοποιηµένοι αριθµοί Άπειρα Νot a Number (NaN) Απλή ακρίβεια ιπλή ακρίβεια Αναπαριστώµενο αντικείµενο Εκθέτης Κλάσµα Εκθέτης Κλάσµα 0 0 0 0 0 0 µη µηδενικό 0 µη µηδενικό ± µη κανονικοποιηµένος αριθµός 1-254 οτιδήποτε 1-2046 οτιδήποτε ± αριθµός κινητής υποδιαστολής 255 0 2047 0 ± άπειρο 255 µη µηδενικό 2047 µη µηδενικό NaN (όχι αριθµός) Αρχιτεκτονικές Υπολογιστών Aναπλ. Καθ. Κ. Λαµπρινουδάκης 12 6
Πολωµένη σηµειογραφία Για απλοποίηση της ταξινόµησης ο εκθέτης µπαίνει πριν από το κλάσµα. Ο µεγάλος εκθέτης πρέπει να δείχνει µεγάλο θετικό αριθµό και ο εκθέτης 0 το µικρότερο αρνητικό εκθέτη Το ΙΕΕΕ 754 χρησιµοποιεί πόλωση 127 για την απλή ακρίβεια (1023 για τη διπλή ακρίβεια) ηλαδή το 1 αποθηκεύεται σαν 1 + 127 = 126, και το +1 αποθηκεύεται σαν +1+127 = 128, κ.λπ. ( 1) πρόσηµο (1 + κλάσµα) 2 (εκθέτης πόλωση) Αρχιτεκτονικές Υπολογιστών Aναπλ. Καθ. Κ. Λαµπρινουδάκης 13 Παράδειγµα αναπ/σης ΙΕΕΕ 754 Ποιαείναιηαναπαράστασητου 0,75 ten σειεεε 754 µε απλή και διπλή ακρίβεια; 0,75 ten = 3/4 ten = 3/2 2 ten Σε δυαδικό κλάσµα είναι: 11 two / 2 2 ten = 0,11 two Σε επιστηµονική σηµειογραφία 0,11 two 2 0 Σε κανονικοποιηµένη µορφή 1,1 two 2-1 Αρχιτεκτονικές Υπολογιστών Aναπλ. Καθ. Κ. Λαµπρινουδάκης 14 7
Συνέχεια παραδείγµατος Σε απλή ακρίβεια ένας αριθµός παριστάνεται: ( 1) πρόσηµο (1 + κλάσµα) 2 (εκθέτης 127) Άραοαριθµόςµας 1,1 two 2-1 είναι ( 1) 1 (1 +,100000000000000000000000 two ) 2 (126 127) 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 1 0 1 1 1 1 1 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 8bit 23 bit Αρχιτεκτονικές Υπολογιστών Aναπλ. Καθ. Κ. Λαµπρινουδάκης 15 Συνέχεια, σε διπλή ακρίβεια ( 1) 1 (1 +,1000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 two ) 2 (1022 1023) 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 1 0 1 1 1 1 1 1 1 1 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 bit 11 bit 20 bit 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 32 bit Αρχιτεκτονικές Υπολογιστών Aναπλ. Καθ. Κ. Λαµπρινουδάκης 16 8
Πρόσθεση κινητής υποδ/λης Αλγόριθµος Έναρξη 1. Σύγκριση των εκθετών των δύο αριθµών. Ολίσθηση του µικρότερου αριθµού προς τα δεξιά µέχρι ο εκθέτης του να ταιριάζει µε το µεγάλο εκθέτη 2. Πρόσθεση των σηµαντικών Υπερχείλιση ή ανεπάρκεια; Όχι Ναι 4. Στρογγυλοποίηση του σηµαντικού στον κατάλληλο αριθµό bit Εξαίρεση 3. Κανονικοποίηση του αθροίσµατος, είτε µε δεξιά ολίσθηση και αύξηση του εκθέτη είτε µε αριστερή ολίσθηση και µείωση του εκθέτη Όχι Ακόµη κανονικοποιηµένος; Ναι Τέλος Αρχιτεκτονικές Υπολογιστών Aναπλ. Καθ. Κ. Λαµπρινουδάκης 17 Πρόσθεση κινητής υποδ/λής (1) Παράδειγµα µε δεκαδικούς αριθµούς Να προστεθούν οι 0,5 ten και 0,4375 ten Βρίσκουµε τις δυαδικές µορφές σε κανονικοποιηµένη επιστ. συµβολογραφία µε ακρίβεια 4 ψηφίων 0,5 ten = 1/2 ten = 1/2 1 ten = 0,1 two = 0,1 two 2 0 = 1,000 two 2 1 0,4375 ten = 7/16 ten = 7/2 4 ten = 0,0111 two = 0,0111 two 2 0 = 1,110 two 2 2 Αρχιτεκτονικές Υπολογιστών Aναπλ. Καθ. Κ. Λαµπρινουδάκης 18 9
Πρόσθεση κινητής υποδ/λής (2) εν είναι ίδιοι οι εκθέτες, άρα ρύθµιση του αριθµού µε τον µικρότερο εκθέτη 1,110 two 2 2 = 0,111 two 2 1 Πρόσθεση των σηµαντικών 1,000 two 2 1 + ( 0,111 two 2 1 ) = 0,001 two 2 1 Κανονικοποίηση και έλεγχος υπερχείλησης/ανεπάρκειας 0,001 two 2 1 =... = 1,000 two 2 4 Στρογγυλοποίηση: δεχρειάζεταιγιατίχωράειστα 4 ψηφία Αρχιτεκτονικές Υπολογιστών Aναπλ. Καθ. Κ. Λαµπρινουδάκης 19 Πρόσθεση κινητής υποδ/λής (3) Επαλήθευση: Προσθέσαµε 0,5 ten + 0,4375 ten Πήραµε 0,0625 ten ; 1,000 two 2 4 = 0,0001000 two = 0,0001 two = 1/2 4 ten = 1/16 ten = 0,0625 ten Αρχιτεκτονικές Υπολογιστών Aναπλ. Καθ. Κ. Λαµπρινουδάκης 20 10