
הנדסה לאחור של אלגוריתם הטנגנס של Intel 8087: יותר מ-CORDIC
קן שיריף חקר את השבב והמיקרו-קוד של המעבד המתמטי Intel 8087 וגילה שהוראת FPTAN שילבה CORDIC של 16 סיביות עם קירוב רציונלי מסוג Padé כדי להגיע לדיוק של 64 סיביות, ולא הסתפקה ב-CORDIC בלבד.
המעבד המתמטי Intel 8087, שהוצג ב-1980, האיץ מאוד חישובי נקודה צפה ב-IBM PC: טנגנס חושב בכ-90 מיקרושניות לעומת כ-13,000 ב-8086. קן שיריף שחזר את האלגוריתם של הוראת FPTAN על ידי בחינת השבב והמיקרו-קוד, ומצא שהשבב לא הסתפק ב-CORDIC בלבד.
CORDIC: מ-B-58 אל 8087
השבב השתמש ב-CORDIC, אלגוריתם שג'ק וולדר פיתח ב-1956 עבור המפציץ B-58 Hustler. האלגוריתם נזקק רק להזזות, חיבורים וטבלה של זוויות מיוחדות מחושבות מראש, arctan(2^-n), בלי כפל או חילוק: סיבוב הווקטור (1, 0) בזוויות האלה נותן את הנקודה (X, Y), והטנגנס הוא Y/X.

למה פולינום רציונלי
16 צעדי CORDIC נותנים כ-16 סיביות, ולדיוק של 64 סיביות יידרשו 64 צעדים. לכן 8087 מחשב את הזווית השיורית הקטנה (כ-2^-16) בקירוב Padé: היחס 3x/(3-x²), ששגיאתו גדלה כמו x⁴ ונשארת מתחת ל-2^-64. יחס של שני פולינומים מתאים לטנגנס יותר מטור טיילור, כי הפונקציה שואפת לאינסוף ב-π/2; ומכיוון ש-FPTAN מחזירה מונה ומכנה בנפרד, החילוק אינו עולה דבר.
שלושה שלבים במיקרו-קוד
ה-ROM של המיקרו-קוד מכיל 1648 מיקרו-הוראות, ו-FPTAN מתחילה בכתובת #1039. הפסאודו-חילוק משווה את זווית הקלט לזוויות השמורות של CORDIC ורושם את ההחלטות ברגיסטר הזזה של 16 סיביות; עבור 0.95 רדיאן מתקבל הרצף 10010101 00100111. אחר כך בא הקירוב הרציונלי, ולבסוף הפסאודו-כפל: הסיבובים מבוצעים בהזזות ובחיבורים בסדר הפוך, מהקטן לגדול. רוב החשבון הוא מספרים שלמים של 64 סיביות עם מעריכים משתמעים, והפעולה היקרה היחידה היא העלאת הזווית בריבוע.

חומרה וביצועים
המספרים נשמרים בפורמט «temporary real» של 80 סיביות: סיבית סימן, מעריך מוזז של 15 סיביות ו-64 סיביות מנטיסה, ולכל אוגר במחסנית יש תג: zero, valid, special או empty. FPTAN אורכת בדרך כלל 450 מחזורי שעון; עבור 0.95, 33% מהזמן מוקדשים לפסאודו-חילוק, 15% לפולינום, 47% לפסאודו-כפל ו-5% לתקורה. עבור Pentium עברה Intel לקירובים פולינומיים.
המחקר נעשה עם «Opcode Collective»: תמונות ה-ROM הומרו לנתוני מיקרו-קוד בעזרת מסווג של למידת מכונה.
SiTech — פיתוח אתרים בכוח ה-AI
אנחנו בונים אתרים מהירים ומודרניים ומשלבים AI בתהליכי עבודה אמיתיים. יש לכם פרויקט או שאלה? נשמח לעזור.