אינטל 8087
![]() | |
מידע טכני | |
---|---|
טרנזיסטורים | 65,000 |
קצב שעון מרבי | 4 מגה-הרץ עד 10 מגה-הרץ |
סט פקודות | x87 |
אינטל 8087, שהוכרז בשנת 1980, היה מעבד הנקודה הצפה הראשון עבור סדרת המיקרו-מעבדים אינטל 8086.[1][2] מטרת השבב הייתה להאיץ פעולות אריתמטיות בנקודה צפה, כגון חיבור, חיסור, כפל, חילוק ושורש ריבועי. הוא גם מחשב פונקציות טרנסצנדנטליות כגון פונקציות מעריכיות וחישובים לוגריתמיים וטריגונומטריים. שיפורי הביצועים היו בין כ-20% ליותר מ-500%, בהתאם ליישום הספציפי. ה-8087 יכול היה לבצע כ-50,000 FLOPS תוך שימוש בכ-2.4 ואט.[2]
ה-8087 היה מעגל משולב מתקדם, שדחף את גבולות טכנולוגיית הייצור של התקופה. פעולות בסיסיות ב-8087, כגון חיבור וחיסור יכולות להימשך למעלה מ-100 מחזורי מכונה, וחלק מההוראות עולות על 1,000 מחזורים. השבב אינו כולל פעולת כפל בחומרה והוא מיישם חישובים באמצעות אלגוריתם CORDIC (אנ').[3]
מכירות ה-8087 קיבלו דחיפה משמעותית כאשר שקע מעבד משולב נכלל בלוח האם של IBM PC משנת 1981. פיתוח ה-8087 הוביל לתקן IEEE 754-1985 לאריתמטיקה של נקודה צפה. גרסאות המהירות הזמינות היו 4.77 (5), 8 ו-10 מגה-הרץ. מאוחר יותר היו מעבדי x87 עבור מעבדי 80186, 80286, 80386 ו-80386SX. החל מאינטל 80486DX, מעבדי אינטל x86 כללו מעבדי נקודה צפה משולבים (פונקציות נקודה צפה שולבו עם המעבד). למעבדי 486SX יש יחידת נקודה צפה מושבתת או נעדרת, אך הם מאפשרים יחידת 80487 נפרדת.
תכנון ופיתוח

אינטל ייצרה קודם לכן את יחידת העיבוד האריתמטי 8231 ואת מעבד הנקודה הצפה 8232. אלה תוכננו לשימוש עם מעבדי אינטל 8080 או מעבדים דומים והשתמשו באפיק נתונים של 8 סיביות. הם חוברו למערכת מארחת באמצעות קלט/פלט מתוכנת או בקר גישה ישירה לזיכרון.
ה-8087 תוכנן בתחילה על ידי ביל פולמן, מנהל ההנדסה באינטל שפיקח על פיתוח השבב אינטל 8086. פולמן נקט צעדים כדי לוודא שתכנון ה-8086 יוכל לתמוך בשבב מתמטי שטרם פותח.
בשנת 1977 קיבל פולמן אור ירוק לתכנן את שבב המתמטיקה 8087. ברוס רייבנל מונה כארכיטקט, וג'ון פאלמר נשכר כארכיטקט שותף ומתמטיקאי לפרויקט. השניים הגיעו לעיצוב מהפכני עם 64 סיביות של מנטיסה ו-16 סיביות של אקספוננט עבור המספר הממשי בפורמט הארוך ביותר, עם מעבד בעל ארכיטקטורת מחסנית ושמונה אוגרי מחסנית של 80 סיביות, עם סט פקודות עשיר מבחינה חישובית. העיצוב פתר כמה בעיות ידועות בולטות בחישוב נומרי ובתוכנה נומרית: בעיות שגיאות עיגול בוטלו עבור אופרנדים של 64 סיביות, והמרות מצב נומרי נפתרו עבור כל המספרים של 64 סיביות. פאלמר ייחס השפעה משמעותית על העיצוב לכתביו של ויליאם כאהן (אנ') על נקודה צפה.
עיצוב ה-8087 זכה בתחילה לקבלת פנים קרירה במטה אינטל בסנטה קלרה בשל עיצובו האגרסיבי. בסופו של דבר, העיצוב הוקצה לאינטל ישראל, ורפי נווה הוביל את פיתוח השבב במרכז הפיתוח של אינטל בחיפה. פאלמר, רייבנל ונווה קיבלו פטנטים על העיצוב.[4] רוברט קוהלר וג'ון בייליס קיבלו גם הם פטנט על הטכניקה שבה הוראות מסוימות עם תבנית סיביות מסוימת נמסרו ל-8087.[5]
ל-8087 היו 65,000 טרנזיסטורים והוא יוצר כמעגל HMOS (אנ') של 4.5 מיקרון (ואז הצטמק ל-3 מיקרון). הוא עבד במקביל ל-8086 או 8088 והציג כ-60 הוראות חדשות. רוב פקודות שפת הסף של 8087 מתחילות ב-F, כגון FADD, FMUL, FCOM וכן הלאה, מה שהופך אותן למובחנות בקלות מהוראות 8086. הקידוד הבינארי עבור כל הוראות 8087 מתחיל בתבנית הביטים 11011 (מספר עשרוני 27). ה-8087 היה יקר וקשה לייצור עם תפוקות נמוכות. הוא גם התחמם למדי, מה שאילץ את אינטל להשתמש באריזה קרמית יקרה יותר לפיזור חום משופר.
אוגרים
משפחת x87 אינה משתמשת בקבוצת אוגרים הניתנת למיעון ישיר כמו האוגרים הראשיים של מעבדי x86; במקום זאת, אוגרי x87 יוצרים מבנה מחסנית עמוקה בת שמונה רמות הנע בין st0 ל-st7, כאשר st0 הוא החלק העליון. הוראות x87 פועלות על ידי דחיפה, חישוב ושחרור ערכים על מחסנית זו. עם זאת, פעולות דיאדיות כמו FADD, FMUL, FCMP וכן הלאה עשויות להשתמש באופן מרומז ב-st0 וב-st1 העליונים ביותר או להשתמש ב-st0 יחד עם אופרנד זיכרון או אוגר מפורש; לפיכך, אוגר st0 יכול לשמש כאקומולטור (כלומר כאופרנד יעד ואופרנד שמאלי משולב) וניתן גם להחליפו עם כל אחד משמונת אוגרי המחסנית באמצעות הוראה בשם FXCH stX (קודים D9C8–D9CFh). זה הופך את מחסנית x87 לשימושית כשבעה אוגרים הניתנים לכתובת חופשית בתוספת אקומולטור. זה רלוונטי במיוחד במעבדי x86 סופר-סקלריים (אנ') (פנטיום משנת 1993 ואילך).
תקן IEEE לנקודה צפה
כאשר אינטל עיצבה את ה-8087, היא שאפה ליצור פורמט נקודה צפה סטנדרטי עבור עיצובים עתידיים. היבט חשוב של ה-8087 מנקודת מבט היסטורית היה שהוא הפך לבסיס לתקן הנקודה הצפה IEEE 754. ה-8087 לא יישם את תקן IEEE 754 הסופי בכל פרטיו, מכיוון שהתקן לא הושלם עד 1985, אך ה-80387 כן יישם תקן זה. ה-8087 סיפק שני טיפוסי נתונים בסיסיים של 32/64 סיביות בנקודה צפה ופורמט זמני פנימי מורחב נוסף של 80 סיביות (שיכול להיות מאוחסן גם בזיכרון) כדי לשפר את הדיוק בחישובים גדולים ומורכבים. מלבד זאת, ה-8087 הציע פורמט עשרוני בקידוד בינארי (BCD) ארוז של 80 סיביות/18 ספרות וטיפוסי נתונים שלמים של 16, 32 ו-64 סיביות.
טיפוסי נתונים ב-8087 | |||||||||||||||||
79 | ... | 71 | ... | 67 | ... | 63 | ... | 50 | ... | 31 | ... | 22 | ... | 15 | ... | 00 | (מיקום הביט) |
± | מעריך | מנטיסה | 80 ביט: מספר ממשי בדיוק מורחב | ||||||||||||||
± | מעריך | מנטיסה | 64 ביט: מספר ממשי בדיוק כפול | ||||||||||||||
± | מעריך | מנטיסה | 32 ביט: מספר ממשי בדיוק רגיל | ||||||||||||||
± | מספר שלם עשרוני בקידוד בינארי | מספר עשרוני ב-18 ספרות | |||||||||||||||
± | מספר שלם | 64 ביט: מספר שלם בינארי | |||||||||||||||
± | מספר שלם | 32 ביט: מספר שלם בינארי | |||||||||||||||
± | מספר שלם | 16 ביט: מספר שלם בינארי |
הוקרה
ב-15 בספטמבר 2025 העניק ארגון IEEE לאינטל ישראל את אות IEEE Milestones על פיתוח המעבד אינטל 8087.[6]
קישורים חיצוניים
- אושרי אלקסלסי, כולם מכירים את 8086, אבל דווקא מעבד מהפכני אחר שם את ישראל על המפה, באתר Geektime, 12 בספטמבר 2025
הערות שוליים
- ↑ "Intel FPU". cpu-collection.de. 2011. נבדק ב-1 בדצמבר 2011.
{{cite web}}
: (עזרה) - ^ 2.0 2.1 "8087". Coprocessor Dot Info. 2007. אורכב מ-המקור ב-30 בספטמבר 2011. נבדק ב-1 בדצמבר 2011.
{{cite web}}
: (עזרה) - ↑ Shirriff, Ken (במאי 2020). "Extracting ROM constants from the 8087 math coprocessor's die". righto.com. Self-published by Ken Shirriff. נבדק ב-3 בספטמבר 2020.
The ROM contains 16 arctangent values, the arctans of 2−n. It also contains 14 log values, the base-2 logs of (1+2−n). These may seem like unusual values, but they are used in an efficient algorithm called CORDIC, which was invented in 1958.
{{cite web}}
: (עזרה) - ↑ תבנית:Cite patent/core
- ↑ תבנית:Cite patent/core
- ↑ אבי בליזובסקי, גאווה חיפאית: ההמצאה ששינתה את עולם המחשוב זוכה להכרה עולמית, 15 בספטמבר 2025
מעבדי אינטל | ||
---|---|---|
ייצור שהופסק | ||
BCD (4 ביטים) | Intel 4004 (שנת 1971) • Intel 4040 (שנת 1974) | ![]() |
לפני x86 (8 ביטים) | Intel 8008 (שנת 1972) • Intel 8080 (שנת 1974) • Intel 8085 (שנת 1977) | |
x86 מוקדמים (16 ביטים) | Intel 8086 (שנת 1978) • Intel 8088 (שנת 1979) • Intel 80186 (שנת 1982) • Intel 80188 (שנת 1982) • Intel 80286 (שנת 1982) | |
יחידות נקודה צפה חיצוניות | 8/16-bit databus: Intel 8087 (שנת 1980) • 16-bit databus: Intel 80187 • Intel 80287 • Intel 80387SX • 32-bit databus: Intel 80387 • Intel 80487 | |
IA-32 (32 ביטים) | Intel 80386 (SX • 376 • EX) • Intel 80486 (SX • DX2 • DX4 • SL • RapidCAD • OverDrive) • A100/A110 • Celeron (שנת 1998) (M • D (שנת 2004)) • Pentium (המקורי • OverDrive • Pro • II • II OverDrive • III • 4 • M • Dual-Core) • Core (Solo • Duo) | |
x86-64 (64 ביטים) | Celeron (D • Dual-Core) • Pentium (4 • D • Extreme Edition • Dual-Core) Intel Core (2 • Sandy Bridge) | |
אחרים | CISC: iAPX 432 • RISC: i860 • i960 • StrongARM • XScale | |
ייצור נוכחי | ||
IA-32 (32 ביטים) | EP80579 • Atom (CE • SoC) • Quark | |
x86-64 (64 ביטים) | Atom • Celeron • Pentium • Core (i3 • i5 • i7) • Xeon (E7 • E5 • E3 • Phi) | |
EPIC | Itanium |
אינטל 808741858582Q1632017