Η αρχιτεκτονική προσέγγιση του FPTAN

Ο Intel 8087 δεν ήταν απλώς ένας μαθηματικός συνεπεξεργαστής (coprocessor), αλλά ένα θαύμα μηχανικής της δεκαετίας του '80. Η εντολή FPTAN αποτελεί ένα εξαιρετικό παράδειγμα βελτιστοποίησης, όπου ο σχεδιασμός του hardware και του microcode συνεργάζονται για να επιτύχουν υπολογισμούς που προηγουμένως απαιτούσαν χιλιάδες κύκλους επεξεργαστή.

Ο ρόλος του CORDIC και της πολυωνυμικής προσέγγισης

Ο αλγόριθμος CORDIC (COordinate Rotation DIgital Computer) επιτρέπει την περιστροφή διανυσμάτων μέσω μιας σειράς προκαθορισμένων γωνιών. Ωστόσο, για να επιτευχθεί η απαιτούμενη ακρίβεια 64-bit χωρίς υπερβολικό αριθμό επαναλήψεων, ο 8087 χρησιμοποιεί μια υβριδική μέθοδο:

  1. Pseudo-division: Προσδιορίζει τις απαραίτητες περιστροφές μέσω μιας διαδικασίας παρόμοιας με τη διαίρεση.
  2. Padé approximant: Για το εναπομείναν μικρό σφάλμα γωνίας, χρησιμοποιεί τον τύπο 3x/(3-x²), ο οποίος είναι εξαιρετικά ακριβής για μικρές τιμές.
  3. Pseudo-multiplication: Εφαρμόζει τις περιστροφές που αποφασίστηκαν στο πρώτο στάδιο, χρησιμοποιώντας μόνο shifts και προσθέσεις.

Hardware και Microcode: Η καρδιά του επεξεργαστή

Η ανάλυση του die του 8087 αποκαλύπτει ένα datapath 80-bit, όπου οι καταχωρητές (registers) και η μονάδα αθροιστή (adder) λειτουργούν σε στενή συνεργασία. Το microcode διαχειρίζεται τις καταστάσεις των stack registers και των temporary registers (tmpA, tmpB, tmpC), εξασφαλίζοντας ότι οι ενδιάμεσοι υπολογισμοί παραμένουν εντός των ορίων ακρίβειας. Η απόφαση να μην εκτελείται η τελική διαίρεση από το hardware, αλλά να επιστρέφονται τα συστατικά μέρη του αποτελέσματος, αποτελεί μια κλασική περίπτωση hardware optimization που προτιμά την ταχύτητα έναντι της ευκολίας χρήσης.