Μονάδα Κινητής Υποδιαστολής: Διαφορά μεταξύ των αναθεωρήσεων

Περιεχόμενο που διαγράφηκε Περιεχόμενο που προστέθηκε
επιμέλεια
Γραμμή 1:
[[Αρχείο:KL Intel C80287.jpg|right|thumb|180px|Ο [[Μικροεπεξεργαστής|επεξεργαστής]] Intel 80287.]]
Η '''μονάδα κινητής υποδιαστολής (FPU)''' αποτελεί μέρος του υπολογιστικού συστήματος ειδικά σχεδιασμένο να πραγματοποιεί πράξεις με αριθμούς κινητής υποδιαστολής, δηλαδή(όπως δεκαδικούςγια αριθμούς(π.χ.παράδειγμα ο πολλαπλασιασμός 5,2343 x 2,345). Τυπικές πράξεις που εκτελεί είναι η πρόσθεση, η αφαίρεση ο πολλαπλασιασμός η διαίρεση και ο υπολογισμός τετραγωνικής ρίζας. Σε ορισμένα συστήματα (παλαιότερης [[Μικροαρχιτεκτονική|μικροαρχιτεκτονικής]] ) μπορεί να εκτελούν και διάφορες άλλες πράξεις και υπολογισμούς όπως τριγωνομετρικούς υπολογισμούς. Στις μέρες μας αυτό επιτυγχάνεται με τη χρήση βιβλιοθηκών ρουτινών στο επίπεδο του [[Λογισμικό|λογισμικού]].
 
Στις περισσότερες σύγχρονες μικροαρχιτεκτονικές γενικού σκοπού, μία ή περισσότερες '''FPU''' είναι ενωματωμένεςενσωματωμένες στον [[μικροεπεξεργαστής|επεξεργαστη]], ωστόσο πολλοί επεξεργαστές, ειδικότερα παλαιότερης γενιάς, δεν διαθέτουν υλική υποστήριξη για τέτοιες πράξεις.
 
Στο παρελθόν, ορισμένα συστήματα έχουν εφαρμόσει πράξεις υποδιαστολής χρησιμοποιώντας έναν συν-επεξεργαστήσυνεπεξεργαστή, παρά με τη χρήση ανεξάρτητης μονάδας. Σήμερα, στην εποχή των μικρο-υπολογιστώνμικροϋπολογιστών, η μονάδα αυτή υλοποιείται με ένα απλό ολοκληρωμένο ψηφιακό κύκλωμα ενσωματωμένο στο υπόλοιπο, ενώ σε παλαιότερα συστήματα ήταν πολύ μεγαλύτερη και λόγω του μεγέθους της βρίσκονταν έξω από τον επεξεργαστή.
 
Δεν έχουν όλες οι μικροαρχιτεκτονικές υλική υποστήριξη FPU. Ελλείψει ενός FPU, πολλές λειτουργίες απομιμούνται εικονικά. Ο τρόπος αυτός ναι μεν γλυτώνει το κόστος κατασκευής της αντίστοιχης μονάδας, αλλά είναι σημαντικά πιο αργός. Η εικονική απομίμηση, μπορεί να εφαρμοστεί σε οποιοδήποτε επίπεδο : εσωτερικά του [[κεντρική μονάδα επεξεργασίας|επεξεργαστη]] με τη μορφή μικροκώδικα ή ως λειτουργία του [[Λειτουργικό σύστημα|λειτουργικού συστήματος]].
 
Στις περισσότερες σύγχρονες αρχιτεκτονικές, υπάρχει ένας διαχωρισμός μεταξύ των δεκαδικώνπράξεων υπολογισμώνμε απόαριθμούς τουςκινητής ακέραιουςυποδιαστολής και των πράξεων με ακεραίους. Αυτός ο διαχωρισμός διαφέρει σημαντικά από αρχιτεκτονική σε αρχιτεκτονική. Μερικές, όπως η [[x86]] της Intel, έχουν εξειδικευμένους καταχωρητές για δεκαδικούς υπολογισμούς αριθμών κινητής υποδιαστολής.
 
Συνήθως οι δεκαδικοί υπολογισμοί κινητής υποδιαστολής εκτελούνται με την μέθοδο της διοχέτευσης. Σε προγενέστερες αρχιτεκτονικές οι δεκαδικοί υπολογισμοί κινητής υποδιαστολής διοχετεύονταν διαφορετικά από τους ακέραιους. Από τις αρχές της δεκαετίας του ’90, πολλοί υπολογιστές και [[Εξυπηρετητής|εξυπηρετητές-servers]], έχουν περισσότερες από μια FPU.
 
Όταν ένας επεξεργαστής εκτελεί ένα πρόγραμμα που απαιτεί δεκαδικούς υπολογισμούς κινητής υποδιαστολής, υπάρχουν 3 τρόποι να τους εκτελέσει :
* Εικονικήεικονική εκτέλεση του υπολογισμού (μέσω ειδικών βιβλιοθηκών)
* Με ολοκληρωμένημε ενσωματωμένη FPU
* Μεμε πρόσθετη FPU
* Με ολοκληρωμένη ενσωματωμένη FPU
 
== Βιβλιοθήκες δεκαδικών υπολογισμών κινητής υποδιαστολής ==
Ορισμένες μονάδες υποστηρίζουν μόνο απλούς δεκαδικούς υπολογισμούς κινητής υποδιαστολής: πρόσθεση, αφαίρεση και πολλαπλασιασμό. Όμως ακόμα και οι πιο πολύπλοκες FPU έχουν ένα πεπερασμένο αριθμό υπολογισμών που μπορούν να κάνουν.
 
Όταν ο επεξεργαστής εκτελεί ένα πρόγραμμα που απαιτεί δεκαδικούς υπολογισμούς κινητής υποδιαστολής οι οποίοι δεν υποστηρίζονται από το υλικό, ο επεξεργαστής χρησιμοποιεί μια σειρά απλούστερων υπολογισμών. Σε συστήματα που δεν υποστηρίζουν καμιάς μορφήςκάποια μονάδα δεκαδικών υπολογισμών κινητής υποδιαστολής, ο επεξεργαστής προσομοιώνει τους υπολογισμούς χρησιμοποιώντας μια σειρά απλούστερων αριθμητικών υπολογισμών, που εκτελούνται στην [[αριθμητική και λογική μονάδα]].
 
Το λογισμικό που χρησιμοποιείται για να κατηγοριοποιήσει αυτή τη σειρά των υπολογισμών, έτσι ώστεγια να προσομοιωθεί εικονικά ένας δεκαδικός υπολογισμός κινητής υποδιαστολής, περιλαμβάνεται σε μια ειδική βιβλιοθήκη.
 
== ΟλοκληρωμένεςΕνσωματωμένες FPU ==
Σε ορισμένες περιπτώσεις οι FPU είναι εξειδικευμένες και χωρισμένες μεταξύ απλών δεκαδικώνπράξεων κινητής υποδιαστολής υπολογισμών(πρόσθεση και αφαίρεση) και πιο περίπλοκων υπολογισμών (διαίρεση). Σε ορισμένες περιπτώσεις, μόνο οι πιο απλοί υπολογισμοί είναι ενσωματωμένοι στο υλικό και/ή σε μορφή [[Μικροκώδικας|μικροκώδικα]], ενώ οι πιο πολύπλοκοι υπολογισμοί υλοποιούνται με προγραμματιστικές ρουτίνες (γραμμένες σε [[συμβολική γλώσσα προγραμματισμού Assembly,]] ή μεταγλωττισμένες σε μια [[Γλώσσαγλώσσα προγραμματισμού υψηλού επιπέδου|γλώσσα υψηλού επιπέδου]]).
 
== Πρόσθετες FPU ==
Τη δεκαετία του 1980, στους υπολογιστές της IBM, το σύνηθες ήταν η FPU να είναι εντελώς ξεχωριστή και ανεξάρτητη από τη λειτουργία του επεξεργαστή, και συνήθως πωλούνταν ξεχωριστά ως προαιρετικό πρόσθετο. Αγοράζονταν μόνο αν χρειαζόταν να επιταχυνθούν ή να εκτελεστούν μαθηματικά προγράμματα.
 
Οι επεξεργαστές [[8088]] και [[8086]] είχαν και μια πρόσθετη υποδοχή για αυτόν τον συν-επεξεργαστήσυνεπεξεργαστή, τον 8087, όπως και οι άμεσοι διάδοχοι τους είχαν αντίστοιχο.
 
Από τον επεξεργαστή 80486 και μετά, η μονάδα δεκαδικών υπολογισμών κινητής υποδιαστολής ενσωματώθηκε στον επεξεργαστή. Μοναδική εξαίρεση αποτέλεσε ο [[80486SX]]. Ο συγκεκριμένος επεξεργαστής είχε πρόσθετη υποδοχή για τον συν-επεξεργαστήσυνεπεξεργαστή του, τον 80487, ο οποίος στην πραγματικότητα ήταν ένας ολοκληρωμένος επεξεργαστής με ενσωματωμένη FPU. Σε περίπτωση που τοποθετούνταν στο σύστημα, ο 80486SX απενεργοποιούνταν.
 
Σε αντίθεση με την σειρά x87, πολλές εταιρείες κατασκεύαζαν συν-επεξεργαστέςσυνεπεξεργαστές για την σειρά x86.
 
Εκτός από τις αρχιτεκτονικές της [[Intel]], οι FPU με τη μορφή συν-επεξεργαστώνσυνεπεξεργαστών μπορούσαν να χρησιμοποιηθούν και από τους επεξεργαστές Motorola 68000. Συγκεκριμένα οι επεξεργαστές Μοtorola [[68020]]/[[68030]] χρησιμοποιούσαν τις FPU 68881 και 68882, στους σταθμούς εργασίας της σειράς Sun 3. Συχνά τοποθετούνταν και στα υψηλότερης απόδοσης μοντέλα των υπολογιστών Apple Macintosh και Commodore Amiga, αλλά δεν συναντώνταν σε χαμηλότερα μοντέλα, εκτός από τους υπολογιστές της ΙΒΜ. Με την κατασκευή του [[68040]], η Motorola ενσωμάτωσε την FPU στον επεξεργαστή, αλλά όπως και στη σειρά επεξεργαστών x86 της Ιντελ, διαθέτονταν και ένας επεξεργαστής (ο 68LC040) χωρίς ενσωματωμένη FPU.
 
== Δείτε επίσης ==