parastash_pragmatikwn_arithmwn

10
ΠΑΝΕΠΙΣΤΗΜΙΟ ΠΕΙΡΑΙΩΣ ΤΜΗΜΑ ΔΙΔΑΚΤΙΚΗΣ ΤΗΣ ΤΕΧΝΟΛΟΓΙΑΣ ΚΑΙ ΨΗΦΙΑΚΩΝ ΣΥΣΤΗΜΑΤΩΝ Σημειώσεις στο μάθημα ΑΡΧΙΤΕΚΤΟΝΙΚΕΣ ΥΠΟΛΟΓΙΣΤΩΝ «Παράσταση πραγματικών αριθμών» 1 ο Εξάμηνο Ακαδ. έτος: 2007-2008 ∆ιδάσκων: Δρ. Κ. Τσαγκάρης

Transcript of parastash_pragmatikwn_arithmwn

Page 1: parastash_pragmatikwn_arithmwn

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

ΤΜΗΜΑ ΔΙΔΑΚΤΙΚΗΣ ΤΗΣ ΤΕΧΝΟΛΟΓΙΑΣ ΚΑΙ ΨΗΦΙΑΚΩΝ

ΣΥΣΤΗΜΑΤΩΝ

Σημειώσεις στο μάθημα ΑΡΧΙΤΕΚΤΟΝΙΚΕΣ ΥΠΟΛΟΓΙΣΤΩΝ

«Παράσταση πραγματικών αριθμών»

1ο Εξάµηνο

Ακαδ. έτος: 2007-2008 ∆ιδάσκων: Δρ. Κ. Τσαγκάρης

Page 2: parastash_pragmatikwn_arithmwn

ΠΑΝΕΠΙΣΤΗΜΙΟ ΠΕΙΡΑΙΩΣ Τμήμα Ψηφιακών Συστημάτων Αρχιτεκτονικές Υπολογιστών (1ο Εξάμηνο) Δρ. Κ. Τσαγκάρης

- 1 -

ΠΕΡΙΕΧΟΜΕΝΑ 1. ΠΑΡΑΣΤΑΣΗ ΣΤΑΘΕΡΗΣ ΥΠΟΔΙΑΣΤΟΛΗΣ......................................................................... - 2 - 2. ΠΑΡΑΣΤΑΣΗ ΚΙΝΗΤΗΣ ΥΠΟΔΙΑΣΤΟΛΗΣ............................................................................ - 2 -

2.1. ΚΑΝΟΝΙΚΗ ΜΟΡΦΗ ................................................................................................................... - 3 - 2.2. Η ΜΕΘΟΔΟΣ ΤΗΣ ΠΟΛΩΣΗΣ....................................................................................................... - 5 -

3. ΠΡΑΞΕΙΣ ΠΡΑΓΜΑΤΙΚΩΝ ΑΡΙΘΜΩΝ .................................................................................... - 8 -

Page 3: parastash_pragmatikwn_arithmwn

ΠΑΝΕΠΙΣΤΗΜΙΟ ΠΕΙΡΑΙΩΣ Τμήμα Ψηφιακών Συστημάτων Αρχιτεκτονικές Υπολογιστών (1ο Εξάμηνο) Δρ. Κ. Τσαγκάρης

- 2 -

1. ΠΑΡΑΣΤΑΣΗ ΣΤΑΘΕΡΗΣ ΥΠΟΔΙΑΣΤΟΛΗΣ

Από ό,τι έχουμε δει μέχρι τώρα στην παράσταση αριθμών σταθερής υποδιαστολής ή

σταθερού σημείου (Fixed point) η λέξη των n bits διαιρείται σε τρία τμήματα. Έχουμε

ένα τμήμα μήκους 1 για το πρόσημο, ένα τμήμα μήκους n για το ακέραιο μέρος και ένα

τμήμα μήκους m για το κλασματικό μέρος .

Αν υποθέσουμε ότι διαθέτουμε 8 συνολικά ψηφία (4 ψηφία για το ακέραιο μέρος και 3

ψηφία για το κλασματικό μέρος), ο μεγαλύτερος θετικός που μπορεί να παρασταθεί θα

είναι ο 01111,111<2> = 15,875 <10>.

Αντίστοιχα, ο μικρότερος (μεγαλύτερος κατά απόλυτη τιμή) αρνητικός και θεωρώντας

παράσταση συμπληρώματος ως προς 2, θα είναι ο 10000,000 <2> = -16 <10>

Είναι φανερό ότι οι αριθμοί που μπορούν να παρασταθούν σ' ένα σύστημα τέτοιο

βρίσκονται στο πολύ μικρό διάστημα μεταξύ -16 και 15,875, κάτι που περιορίζει

σημαντικά τις αριθμητικές δυνατότητες του Η/Υ. Προκύπτει λοιπόν η ανάγκη

παράστασης μεγαλύτερου εύρους τιμών αλλά και μεγαλύτερης ακρίβειας.

2. ΠΑΡΑΣΤΑΣΗ ΚΙΝΗΤΗΣ ΥΠΟΔΙΑΣΤΟΛΗΣ

Επειδή στο σύστημα αυτό η θέση κάθε δυαδικού σημείου μετακινείται με την ευθύνη του

Η/Υ ονομάζεται σύστημα παράστασης κινητής υποδιαστολής ή κινητού σημείου

(Floating point). Το σύστημα παράστασης αριθμών κινητής υποδιαστολής

χρησιμοποιείται για υπολογισμούς που απαιτούν μεγάλη ακρίβεια και στην ουσία είναι

το σύστημα με το οποίο παριστάνονται οι πραγματικοί (ρητοί ) αριθμοί του Η/Υ.

Το μεγάλο πλεονέκτημα αυτής της μεθόδου είναι ότι μια λέξη μήκους n bits μπορεί να

χωρέσει αριθμούς πολύ μεγαλύτερους από 12 −n .

Ένας δυαδικός αριθμός κινητής υποδιαστολής εκφράζεται από τη σχέση

Page 4: parastash_pragmatikwn_arithmwn

ΠΑΝΕΠΙΣΤΗΜΙΟ ΠΕΙΡΑΙΩΣ Τμήμα Ψηφιακών Συστημάτων Αρχιτεκτονικές Υπολογιστών (1ο Εξάμηνο) Δρ. Κ. Τσαγκάρης

- 3 -

( ) es RmV ⋅⋅−= 1 (1)

Στην παραπάνω σχέση,

s : είναι το πρόσημο (sign)

m : είναι ο συντελεστής (mantissa)

R : είναι η βάση του συστήματος που χρησιμοποιείται (radix) και

e : είναι ο εκθέτης (exponent)

Οι m και e μπορούν να παρασταθούν σε οποιαδήποτε βάση R (π..χ 2 για δυαδικό , 10 για

δεκαδικό κτλ).

Στην παράσταση κινητής υποδιαστολής εκμεταλλευόμαστε το γεγονός ότι υπάρχουν

πολλές εναλλακτικές παραστάσεις ενός αριθμού στην εκθετική μορφή της παραπάνω

σχέσης (1).

Για παράδειγμα στο δεκαδικό σύστημα, το 1023 π.χ. μπορεί να γραφτεί σαν 1,023 · 103,

σαν 10,23 · 102, σαν 0,001023 · 106 κοκ. Κατά τον ίδιο τρόπο, ο αριθμός 101,011<2> σε

εκθετική μορφή μπορεί να γραφτεί με διάφορες μορφές:

0,101011 · 23 όπου m = 0,101011 και ε = 3<10> = 11<2>

1,01011 · 22 όπου m = 1,01011 και ε = 2<10> = 10<2>

10,1011 · 21 όπου m = 10,1011 και ε = 1<10> = 1<2>

2.1. Κανονική μορφή

Επιλέγουμε μία από τις παραστάσεις αυτές, η οποία έχει την ιδιότητα 121 <≤ m και την

ονομάζουμε κανονική ή κανονικοποιημένη μορφή (normal ή normalized form). Όταν ο

συντελεστής είναι μεταξύ 21 και 1 ισχύουν τα παρακάτω:

- Το ακέραιο μέρος του είναι πάντα 0. Έτσι δε χρειάζεται να το αποθηκεύουμε, γιατί η

τιμή του είναι γνωστή και δεδομένη.

Page 5: parastash_pragmatikwn_arithmwn

ΠΑΝΕΠΙΣΤΗΜΙΟ ΠΕΙΡΑΙΩΣ Τμήμα Ψηφιακών Συστημάτων Αρχιτεκτονικές Υπολογιστών (1ο Εξάμηνο) Δρ. Κ. Τσαγκάρης

- 4 -

- Το πρώτο του κλασματικό ψηφίο είναι πάντα 1. Αυτό συμβαίνει, γιατί, οι

κλασματικοί αριθμοί που είναι μεγαλύτεροι από 21 (= 12− ), στο δυαδικό σύστημα

περιέχουν πάντα τον προσθετέο = 12− .

Επομένως, επανερχόμενοι στο παράδειγμά μας, από όλες τις εκθετικές μορφές του

αριθμού 101,011<2>, η κανονική μορφή είναι η 0,101011·23. Αντίστοιχα, η κανονική

μορφή του αριθμού 0,000100<2> είναι η 0,100 · 2-3. Γενικά, η μετατροπή ενός δυαδικού

αριθμού σε κανονική μορφή ονομάζεται κανονικοποίηση.

ΠΡΟΣΟΧΗ: Η κανονική μορφή που επιλέγεται εδώ για τις ανάγκες του μαθήματος δεν

είναι μοναδική. Αντιθέτως, στους σύγχρονους υπολογιστές ορίζεται μία άλλου τύπου

κανονική μορφή, σύμφωνα με το πρότυπο 754 του IEEE, όπως θα δούμε παρακάτω.

H θέση μνήμης του Η/Υ που θα αποθηκεύσει τον εκάστοτε αριθμό σε κανονική μορφή,

χρειάζεται να έχει τρεις χώρους: 'Έναν για το πρόσημο s , ένα για τον εκθέτη e (έστω

2n bits) και έναν για τον συντελεστή m (έστω 1n bits), έτσι ώστε το συνολικό μέγεθος

να ισούται με N =(1+ 1n + 2n ) bits. Η βάση R είναι ίδια για όλους τους αριθμούς και δεν

χρειάζεται να έχουμε ιδιαίτερο χώρο γι' αυτήν και ονομάζεται βάση του συστήματος

κινητής υποδιαστολής.

ΠΡΟΣΟΧΗ: Εάν ο συντελεστής έχει λιγότερα από 1n ψηφία, προσθέτουμε μηδενικά στο

τέλος, ενώ αν έχει περισσότερα από 1n ψηφία, τότε τον στρογγυλοποιούμε. Κατά τη

στρογγυλοποίηση (rounding),

α) εάν το πρώτο ψηφίο που περισσεύει είναι 0, τότε αγνοούμε όλα τα ψηφία που

περισσεύουν

Page 6: parastash_pragmatikwn_arithmwn

ΠΑΝΕΠΙΣΤΗΜΙΟ ΠΕΙΡΑΙΩΣ Τμήμα Ψηφιακών Συστημάτων Αρχιτεκτονικές Υπολογιστών (1ο Εξάμηνο) Δρ. Κ. Τσαγκάρης

- 5 -

β) εάν το πρώτο ψηφίο που περισσεύει είναι 1, τότε προσθέτουμε 1 στο λιγότερο σημαντικό

ψηφίο του συντελεστή.

2.2. Η μέθοδος της πόλωσης

Ο εκθέτης παριστάνεται και αυτός σαν ένας δυαδικός αριθμός με 2n ψηφία. Ωστόσο

είθισται να χρησιμοποιείται για την παράστασή του η μέθοδος της πόλωσης. Η πόλωση

(bias) δεν είναι τίποτε άλλο παρά μια σταθερά, η οποία προστίθεται στην πραγματική

τιμή του εκθέτη, έτσι ώστε αυτός να έχει πάντοτε μη αρνητική τιμή. Με αυτόν τον τρόπο

διευκολύνονται οι πράξεις.

Με άλλα λόγια, η τιμή που αποθηκεύεται στον Η/Υ για τον εκάστοτε εκθέτη, έστω a ,

προκύπτει από την προσθήκη της τιμής της πόλωσης p στην πραγματική τιμή του εκθέτη

e, δηλ. ισχύει ep +=α .

Για την τιμή της πόλωσης ισχύει συνήθως ότι 122 −= np ή 12 12 −= −np , όπου

υπενθυμίζεται ότι με 2n είναι τα ψηφία που διατίθενται για τον εκθέτη. Για παράδειγμα,

σε έναν Η/Υ που διαθέτει 8 ψηφία για τον εκθέτη, η πόλωση θα είναι ίση με

12822 718 === −p ή εναλλακτικά με 12711281212 718 =−=−=−− .

ΠΡΟΣΟΧΗ: Αντίθετα με ό,τι έχουμε δει ως τώρα, με την μέθοδο της πόλωσης οι

αρνητικοί αριθμοί έχουν πρόσημο 0 και οι θετικοί αριθμοί έχουν πρόσημο 1.

ΠΡΟΣΟΧΗ: Δε θα πρέπει να συγχέουμε το πρόσημο του εκθέτη με το πρόσημο του

συνολικού πραγματικού αριθμού

Τα παραδείγματα που ακολουθούν, είναι ιδιαίτερα διαφωτιστικά και καλύπτουν όλες τις

δυνατές περιπτώσεις που θα συναντήσουμε στις ασκήσεις.

Page 7: parastash_pragmatikwn_arithmwn

ΠΑΝΕΠΙΣΤΗΜΙΟ ΠΕΙΡΑΙΩΣ Τμήμα Ψηφιακών Συστημάτων Αρχιτεκτονικές Υπολογιστών (1ο Εξάμηνο) Δρ. Κ. Τσαγκάρης

- 6 -

Έστω ότι ένας υπολογιστής διαθέτει 6 ψηφία για το συντελεστή και ότι

χρησιμοποιεί τη μέθοδο της πόλωσης με 62=p =32.

1) Να βρεθεί πώς παριστάνεται ο θετικός εκθέτης +15 με τη μέθοδο της πόλωσης

στον εν λόγω Η/Υ:

Δηλαδή στη σχέση ep +=α γνωρίζω το p (+32) και το e (+15) και ζητώ το α (?).

Α τρόπος

- Βρίσκουμε τη δυαδική μορφή του 32 κατά τα γνωστά, με 6 ψηφία και χωρίς

πρόσημο: 32<10> = 100000<2>

- Βρίσκουμε τη δυαδική μορφή του 15 κατά τα γνωστά, με 6 ψηφία και χωρίς

πρόσημο: 15<10> = 001111<2>

- Προσθέτουμε τους παραπάνω αριθμούς δυαδικά: 100000<2> + 001111<2>=101111<2>

- Το αποτέλεσμα που προκύπτει είναι ο α: =a 101111<2>

Β τρόπος

- Προσθέτω το 32 και το 15 στο δεκαδικό σύστημα: 32+15 =+47

- Εκφράζω δυαδικά το αποτέλεσμα 47, κατά τα γνωστά, χρησιμοποιώντας 6 ψηφία και

χωρίς πρόσημο: 47<10> = 101111<2>

- Το αποτέλεσμα που προκύπτει είναι ο α: =a 101111<2>

2) Να βρεθεί πώς παριστάνεται ο αρνητικός εκθέτης -30 με τη μέθοδο της πόλωσης

στον εν λόγω Η/Υ:

Δηλαδή στη σχέση ep +=α γνωρίζω το p (+32) και το e (-30) και ζητώ το α (?).

Α τρόπος

- Βρίσκουμε τη δυαδική μορφή του 32 κατά τα γνωστά, με 6 ψηφία και χωρίς

πρόσημο: 32<10> = 100000<2>

- Βρίσκουμε τη δυαδική μορφή του 30 κατά τα γνωστά, με 6 ψηφία και χωρίς

πρόσημο: 30<10> = 011110<2>

- Αφαιρούμε από το 100000<2> το 011110<2>: 100000<2> - 011110<2>= 000010<2>

Page 8: parastash_pragmatikwn_arithmwn

ΠΑΝΕΠΙΣΤΗΜΙΟ ΠΕΙΡΑΙΩΣ Τμήμα Ψηφιακών Συστημάτων Αρχιτεκτονικές Υπολογιστών (1ο Εξάμηνο) Δρ. Κ. Τσαγκάρης

- 7 -

- Το αποτέλεσμα που προκύπτει είναι ο α: =a 000010<2>

Β τρόπος

- Προσθέτω το 32 και το -30 στο δεκαδικό σύστημα: 32+(-30) =2

- Εκφράζω δυαδικά το αποτέλεσμα 2, κατά τα γνωστά, χρησιμοποιώντας 6 ψηφία και

χωρίς πρόσημο: 2<10> = 000010<2>

- Το αποτέλεσμα που προκύπτει είναι ο α: =a 000010<2>

3) Να βρεθεί ποιον αριθμό παριστάνει (πραγματική τιμή) ο πολωμένος εκθέτης

101100:

Δηλαδή στη σχέση ep +=α γνωρίζω το p (+32) και το α (101100) και ζητώ το e

(?). Άρα το αποτέλεσμα θα βρεθεί από την πράξη pe −= α .

Επειδή ο εκθέτης έχει MSB =1, θα είναι θετικός.

- Βρίσκω ποιον αριθμό παριστάνει δυαδικά (κατά τα γνωστά, χωρίς πρόσημο) ο

πολωμένος εκθέτης: 101100<2> = 44<10>

- Αφαιρώ από την τιμή αυτή την πόλωση: 44<10> - 32<10> =12<10>

- Η τιμή που προκύπτει είναι η ζητούμενη πραγματική τιμή του εκθέτη e: e= +12<10>

4) Να βρεθεί ποιον αριθμό παριστάνει (πραγματική τιμή) ο πολωμένος εκθέτης

000101:

Δηλαδή στη σχέση ep +=α γνωρίζω το p (+32) και το α (000101) και ζητώ το e

(?). Άρα το αποτέλεσμα θα βρεθεί από την πράξη pe −= α .

Επειδή ο εκθέτης έχει MSB =0, θα είναι αρνητικός.

- Βρίσκω ποιον αριθμό παριστάνει δυαδικά (κατά τα γνωστά, χωρίς πρόσημο) ο

πολωμένος εκθέτης: 000101<2> = 5<10>

Page 9: parastash_pragmatikwn_arithmwn

ΠΑΝΕΠΙΣΤΗΜΙΟ ΠΕΙΡΑΙΩΣ Τμήμα Ψηφιακών Συστημάτων Αρχιτεκτονικές Υπολογιστών (1ο Εξάμηνο) Δρ. Κ. Τσαγκάρης

- 8 -

- Αφαιρώ από την τιμή αυτή την πόλωση: 5<10> - 32<10> =-27<10>

- Η τιμή που προκύπτει είναι η ζητούμενη πραγματική τιμή του εκθέτη e: e= -27<10>

3. ΠΡΑΞΕΙΣ ΠΡΑΓΜΑΤΙΚΩΝ ΑΡΙΘΜΩΝ

Για να προσθέσουμε δύο πραγματικούς αριθμούς κινητής υποδιαστολής, πρέπει πρώτα

να τους μετατρέψουμε ώστε να έχουν τον ίδιο εκθέτη. Αν ο ένας αριθμός έχει εκθέτη e1

και ο άλλος e2, και ισχύει e1 < e2, τότε αυξάνουμε τον e1 κατά e2-e1 και

«ολισθαίνουμε» το συντελεστή του αριθμού αυτού προς τα δεξιά κατά e2-e1 ψηφία. Στη

συνέχεια προσθέτουμε τους συντελεστές των αριθμών και γράφουμε ξανά το

αποτέλεσμα στην κανονική μορφή στρογγυλοποιώντας το συντελεστή. Σε όλες τις

μετατροπές, όμως, το πλήθος των ψηφίων του συντελεστή παραμένει σταθερό.

Για παράδειγμα, στην παράσταση κινητής υποδιαστολής με 8 ψηφία για το συντελεστή

και 4 ψηφία για τον εκθέτη, ο αριθμός x = 16,125<10> παριστάνεται ως 0,10000001 · 25

και ο αριθμός y = 4,3125<10> παριστάνεται ως 0,10001010 · 23.

Πρώτα μετατρέπουμε τον αριθμό με το μικρότερο εκθέτη, που είναι ο y. Αυξάνουμε τον

εκθέτη του κατά 2 και ολισθαίνουμε το συντελεστή του προς τα δεξιά κατά 2 ψηφία.

y=0,00100010· 25

Στη συνέχεια προσθέτουμε τους δύο συντελεστές.

x+y = 0,10100011· 25

Το άθροισμα δε χρειάζεται κανονικοποίηση, άρα είναι και το τελικό αποτέλεσμα. Η τιμή

του είναι 0,10100011 · 25, δηλαδή 20,375.

ΠΡΟΣΟΧΗ: Το σωστό αποτέλεσμα της παραπάνω πρόσθεσης είναι 20,4375 και όχι

20,375 που βρήκαμε. Το σφάλμα οφείλεται στη μετατροπή του y ώστε να έχει τον ίδιο

εκθέτη με το x. Με άλλα λόγια, κατά την ολίσθηση που απαιτείται για την εξίσωση των

Page 10: parastash_pragmatikwn_arithmwn

ΠΑΝΕΠΙΣΤΗΜΙΟ ΠΕΙΡΑΙΩΣ Τμήμα Ψηφιακών Συστημάτων Αρχιτεκτονικές Υπολογιστών (1ο Εξάμηνο) Δρ. Κ. Τσαγκάρης

- 9 -

εκθετών, τα δεξιότερα ψηφία του αριθμού χάνονται, έτσι το τελικό αποτέλεσμα λοιπόν

μπορεί να μην είναι ακριβές.

Οι πράξεις του πολλαπλασιασμού και της διαίρεσης με πραγματικούς αριθμούς κινητής

υποδιαστολής είναι πιο εύκολες. Για να πολλαπλασιάσουμε δύο αριθμούς, προσθέτουμε

τους εκθέτες τους και πολλαπλασιάζουμε τους συντελεστές. Μετά φέρνουμε πάλι το

αποτέλεσμα στην κανονική μορφή.

( ) ( ) ( ) 2121

22

11 222 eeee mmmm +⋅⋅=⋅⋅⋅

Τέλος, για να διαιρέσουμε δύο αριθμούς, αφαιρούμε τους εκθέτες και διαιρούμε τους

συντελεστές.

( )( )

21

2

12

2

11 2

22 ee

e

e

mm

mm −⋅⎟⎟

⎞⎜⎜⎝

⎛=

⋅⋅