Η αρχιτεκτονική του datapath στον 8087

Ο Intel 8087 αποτέλεσε ορόσημο για την εποχή του, προσφέροντας επιτάχυνση έως και 100 φορές σε μαθηματικές πράξεις. Η καρδιά του συστήματος είναι το datapath, το οποίο περιλαμβάνει έναν 69-bit integer adder και έναν εξαιρετικά αποδοτικό shifter. Ο shifter είναι κρίσιμος, καθώς η πρόσθεση και η αφαίρεση κινητής υποδιαστολής απαιτούν την ευθυγράμμιση των δυαδικών σημείων (binary points) μέσω μετατοπίσεων (shifts), μια διαδικασία που καταλαμβάνει σημαντικό χώρο στο die του επεξεργαστή.

Μηχανισμός πρόσθεσης και αφαίρεσης

Η διαδικασία πρόσθεσης/αφαίρεσης ξεκινά με την ευθυγράμμιση των εκθετών. Το microcode υπολογίζει τη διαφορά τους και μετατοπίζει το significand του μικρότερου αριθμού. Σε περίπτωση αφαίρεσης, το microcode πρέπει να διαχειριστεί την πιθανότητα αρνητικού αποτελέσματος, την κανονικοποίηση (normalization) του αποτελέσματος ώστε να ξεκινά με '1', και τον χειρισμό ειδικών τιμών όπως το μηδέν (+0/-0).

Διαχείριση ειδικών περιπτώσεων και microcode

Το microcode του 8087 δεν περιορίζεται στις βασικές πράξεις, αλλά περιλαμβάνει εκτεταμένη λογική για τον χειρισμό εξαιρέσεων. Η δομή του microcode είναι εξαιρετικά πυκνή, με διακλαδώσεις που ελέγχουν για infinities, NaNs και denormalized τιμές. Η χρήση ενός 'exponent converter' επιτρέπει την ανίχνευση overflow και underflow σε πραγματικό χρόνο, διασφαλίζοντας την ακρίβεια των υπολογισμών σύμφωνα με τις προδιαγραφές της εποχής.

Συμπεράσματα για τον σχεδιασμό hardware

Η ανάλυση του 8087 αναδεικνύει μια εποχή όπου οι περιορισμοί του πυριτίου ανάγκαζαν τους μηχανικούς σε ευφυείς, αν και συχνά 'spaghetti', λύσεις στο microcode. Η ικανότητα του 8087 να εκτελεί σύνθετες πράξεις με hardware-level υποστήριξη έθεσε τις βάσεις για τους σύγχρονους FPU (Floating Point Units) που συναντάμε σήμερα σε κάθε CPU.