איטניום

תכנון

ברמה הבסיסית, התכנון של איטניום דומה לזה של RISC – ליבת הלוגיקה מכילה סט קטן של הוראות אשר תוכננו לרוץ מהר מאד. האיטניום משתמש בתכנון אשר מאפשר הרצה של מספר ליבות באופן מקבילי בשביל להשיג מהירות נוספת. הדבר שבו פילוסופיית תכנון האיטניום שונה מ-RISC הוא הצורה שבה ההוראות מועברות ליחידות ליבה אלה.
בתכנון "חוסר-סדר" הרווח, מפענח מורכב בוחן כל הוראה בזמן שהיא עוברת דרך הצינור (pipeline) ורואה איזה מהן יכולה להתבצע במקביל במספר ליבות. למשל בסדרת הוראות שמבצעת A = B + C וD = F + G לא תהיה השפעה של ההוראות אחת על השנייה, לכן ניתן להזין אותם לשתי ליבות כדי שירוצו בו זמנית.
ניבוי של איזה קוד יכול להיות מחולק בדרך כזו הוא משימה מורכבת מאד. במקרים רבים, ערכי הקלט של שורה אחת תלויים בערכי הפלט של שורה אחרת, אך רק אם תנאי מסוים מתקיים. למשל, נסתכל על אותה דוגמה מקודם בשינוי קל :
A = B + C; IF A==5 THEN D = F + G. במקרה כזה, החיישובים נשארים זהים, אך הפעולה השנייה דורשת את התוצאות של החישוב הראשון כדי לדעת אם יש בכלל צורך בהרצתה.
במקרים כאלה, התוכנית שמובנת במעבד בדרך כלל "מנחשת" איזה מצב יתרחש. ברוב המקרים, פקודת התנאי IF תתבצע, בהנחה שהדוגמה שלנו תבצע ב90 אחוז מהמקרים את החלק השני שלה, ולכן אפשר בבטחה להזינה לליבה אחרת. אולם, ניחוש מוטעה יכול להביא לירידה ניכרת בביצועים, כיוון שתוצאת החישוב נזרקת והמעבד ממתין לתוצאה הנכונה של החישוב להגיע. חלק גדול משיפור הביצועים במעבדים מודרניים נובע משיפור בלוגיקת החיזוי, אולם בתקופה האחרונה מגמת השיפורים החלה להאט.
במקום זאת, האיטניום מסתמך על המהדר שיבצע משימה זו. עוד לפני שהתוכנית מוזנת למעבד, המהדר מנתח את הקוד ומבצע את אותם סוגים של החלטות אשר היו מתבצעות בזמן ריצה על השבב עצמו. ברגע שהוא החליט איזה נתיבים לבחור, הוא אוסף את כל הפקודות שהוא יודע שניתן להריץ במקביל, אוגד אותם להוראה גדולה יותר בצורה כזו בתוכנית תחת ההגדרה VLIW (מאנגלית: מילת הוראה ארוכה מאוד - Very Long Instruction Word).
העברת משימה זו מהמעבד למהדר היא בעלת מספר יתרונות. ראשית, המהדר יכול להשקיע יותר זמן בניתוח הקוד, יתרון שלמעבד אין כיוון שהוא חייב לסיים את המשימה כמה שיותר מהר. לכן גרסת המהדר יכולה להיות מדויקת באופן מהותי יותר מאשר אותו קוד אשר רץ דרך האלגוריתמים של המעבד. שנית, הניבוי של תוכנית המעגל החשמלי של המעבד היא מסובכת למדי, והעברת הניבוי למהדר מורידה את הסיבוכיות מהמעבד בצורה רבה. המעבד לא צריך יותר לנתח שום דבר; הוא פשוט מפרק את ההוראה לחלקים ומזין את חלקיה לליבות השונות. שלישית, ביצוע הניבוי על ידי המהדר היא "הוצאה" חד פעמים, לעומת הניבוי במעבד שמתרחש כל פעם שהתוכנית רצה. 
החסרון בכך הוא שהתנהגות תוכנית שרצה לא תמיד מובנת מאליו ולא נובעת ישירות מהקוד שאיתו נוצרה, ויכולה להשתנות מאוד כתלות במידע שמעובד. מעבד ממוצע יכול מעשית לבצע החלטות עיבוד לפי המידע אשר מועבר, לעומת המהדר שיכול רק לנחש זאת. מכך, זה אפשרי מאוד שהמהדר יטעה בניבוי שלו אפילו באופן יותר תדיר מאשר לוגיקה מקבילה הנמצאת על המעבד. לכן, תכנון ה-VLIW מסתמך רבות על הביצועים של המהדרים,
פשרה המאפשרת להפחית את מורכבות החומרה של המעבד על חשבון הגדלת המורכבות של תוכנת המהדר.

מימוש

תכנון סדרת איטניום החלה ב-1994, מבוססת על מחקר חלוצי של חברת HP על תכנוני VLIW. התכנון המקורי של HP היה "נקי", אך זה דבר צפוי מתכנון אשר לעולם לא יבוא לידי ייצור המוני. לאחר שאינטל החלה את מעורבותה, "ניקיונו" של התכנון המקורי נעלם, לאחר שמספר אפשרויות נוספות שנדרשו לעבודה "בשטח" נוספו, ביניהם האפשרות להריץ פקודות IA-32, ואפשרויות של חברת HP עצמה כדי להקל על המעבר ממשפחת HP-PA.
הפרויקט להעמיד איטניום בעל איכות מספקת לייצור המוני ממשיך להתקיים. השחרור המתוכנן היה ל-1997, אך הוא נדחה מספר פעמים. בשנת 2001, גרסה ראשונה נכנסה לשוק, עם השם קוד Merced, במהירויות שעון של 733 עד 800 מגה-הרץ ו2 עד 4 מגה-בית של זיכרון מטמון. המחירים נעו בין 1200 ל-4000 דולר אמריקאיים. אולם, ביצועיו היו מאכזבים. במצב IA-64, ביצועיו היו טובים במעט מתכנון X86 מקביל, וכאשר הורץ קוד X86 הביצועים היו ירודים במיוחד - בסביבות 1/8 מביצועיו של מעבד X86 מקביל. במהרה, גם אינטל סיכמה שזה לא היה שחרור "אמיתי".
הבעיה העיקרית (אך לא היחידה בשום פנים) עם האיטניום הייתה זמן האחזור (latency) הגבוה במיוחד של מטמון השלב השלישי שלו, אשר גרם להפחתה דרמטית ברוחב הפס הניתן לשימוש. אינטל נאלצה להשתמש בפתרונות עוקפים לתכנון הבא שלהם, ובאותו זמן הורידה את זמני האחזור של המטמון הראשי והמשני למינימום של כל תכנון מודרני (פרט לPower4 של IBM). כמו כן, הם שדרגו את אפיק בעל 64-ביט ו-266-מגה-הרץ של האיטניום לאפיק של 128-ביט עם 400 מגה-הרץ, דבר ששילש את רוחב הפס של המערכת.
הדור השני של שבבי איטניום (איטניום 2) הושקו ביולי 2002. במצב IA-64, ביצועים במספרים שלמים היו הטובים ביותר מכל תכנון בזמן ההשקה, כאשר הביצועים בנקודה צפה היו שניים רק לPower4. מהירויות שעון וגודלי L3 היו 1 ג'יגה-הרץ עם 3 מגה-בית ו-900 מגה-הרץ ו-1.5 מגה-בית. ביצועי X86 אמנם שופרו אך עדיין פיגרו מאחורי מעבדי X86 רגילים; ביצועי איטניום 2 היו דומים לביצועי פנטיום 2 (שיצא לשוק ב-1998).
כשנה מאוחר יותר שוחרר תכנון איטניום 2 משופר, בגרסאות של 1.5 ג'יגה-הרץ עם 6 מגה-בית L3, 1.4 ג'יגה הרץ עם 4 מגה-בית, ו1.3 ג'יגה הרץ עם 3 מגה-בית. בזמן השחרור, גרסת ה1.5 ג'יגה-הרץ השיגה את התוצאות הגבוהות ביותר של SpecFP וSpecInt למעבדים בודדים, מבין כל השבבים המופצים.
החברים  ממשפחת איטניום ששוחררו ברבע השלישי של 2003 הם גרסה מוזלת של איטניום 2 עם 1.4 ג'יגה-הרץ ו1.5 מגה-בית זיכרון L3, וגרסה חסכונית בחשמל עם תדירות שעון של 1 ג'יגה-הרץ עם 1.5 מגה-בית. הראשון מיועד לתחנות עבודה זולות ואשכולות HPC (מחשבים בעלי ביצועים גבוהים), והאחרון מיועד לשרתי בלייד ומחשבים "קומפקטים" אחרים.
בזמן שנמשכים המאמצים לשפר את מהירות ההרצה של קוד x86, הוא נותר עדיין איטי מדי למטרות רבות. החשיבות של תפקודיות הx86 נתונה לוויכוח – מעט מאוד אנשים קונים מערכות איטניום כדי להריץ קוד x86. אולם, אינטל מתכננת להחליף את יחידת החומרה האחראית על תרגום x86 עם חבילת תוכנת הדמיה (emulation) (ברוח FX!32 לDEC Alpha של חברת דיגיטל). בעקבות כך, צפויה הרצה מהירה יותר של קוד זה והורדת סיבוכיות שבב. לשבבים עם רכיבי תוכנת הדמיה יש תקדים במחשוב עסקי, למשל במכונות VAX וS/390. 
ייצור ופיתוח מספר ארכיטקטורות מעבדים נעצרו לטובת האיטניום. DEC Alpha של HP ומשפחת PA-RISC עומדים לפרוש לטובת חומרת האיטניום. HP מתכננת לתמוך לעוד 5 שנים בארכיטקטורות הישנות שלה, החל משנת 2003. SGI תכננה במקור לבטל בשלבים את ארכיטקטורת MIPS למעבדים לטובת האיטניום מהר ככל האפשר, אולם תוכניותיה כרגע אינן ברורות, ופיתוח של מוצר בעל שתי ארכיטקטורות צפוי לעתיד הקרוב. ייצור איטניום של SGI מוכר היטב, אולם טכנולוגיית IRIX והבסיס הקיים הם בעלי חשיבות רבה.
תמיכת התוכנה השתפרה מאז שחרורו של איטניום 2. בגרסה זו נעשה שימוש ב Intel QuickPath Interconnect.חלק ממערכות הפעלה שהוסבו הן HP-UX, לינוקס וחלונות של מיקרוסופט. כמו כן OpenVMS וFreeBSD בשלבי הסבה לאיטניום. HP מתכננת להעביר את לקוחות Tru64 לHP-UX על איטניום, במקום להסב אותה לאיטניום. קיימות הסבות של מסד הנתונים Oracle ו-DB/2, בין היתר. 
מספר הפצות (כגון רד האט ואובונטו) הכריזו על הפסקת התמיכה בו בגרסאות עתידיות

בעיות

ב-2002, האיטניום הוא פרויקט המחשבים השני היקר ביותר בהיסטוריה, שני רק ל-IBM System/360 (אשר, יש לציין, היה הצלחה מסחררת). אולם, ישנם ספקות רבים בקשר לעתידו של הפרויקט, בעיקר בגלל שתי בעיות.
הראשונה היא שהיתרונות בפשטות, אחת מהמטרות הראשיות של תכנון VLIW, אינם בולטים למדי באיטניום. לאיטניום מהדור ה2 יש כמות אדירה של טרנזיסטורים, 221 מיליון במספר, אשר דורשים הספק של 130 ואט. בשביל תקציב דומה, הIBM POWER מאפשר 4 מעבדי 64-ביט על רכיב עיבוד אחד. אולם, בעיית הכוח הדרוש רק מתחילה לקבל יחס, נכון ל-2003, בעקבות הוספה של עוד ועוד זיכרון מטמון מסוג L3, וספירת הטרנזיסטורים רק עולה.
השנייה היא - תכנון המהדר אשר מאפשר לאיטניום להגיע למקסימום הביצועים שהוא יכול לבצע הוכיח את עצמו כמשימה קשה, וסוגיה רצינית ביותר. שיפורים מבוצעים בהצבה, אולם הסבת תוכנה לאיטניום קיבלה מוניטין של בעלת קשיים רבים.
השלב הבא במשפחת איטניום יהיה כנראה איטניום 2 עם 9 מגה-בית זיכרון מטמון L3 ותדירות שעון 1.8 ג'יגה-הרץ. גרסה של שבב זה תשתמש ככל הנראה באפיק ראשי בתדירות של 667 מגה-הרץ. לאחר מכן,בשנת 2005 צפוי לצאת תכנון בעל שם הקוד Montecito אשר יהיה עם ליבה כפולה וביליון טרנזיסטורים. לאחריו, צפוי לצאת בסוף שנת 2008 שבב בעל שם הקוד Tukwila אשר על תכנונו עובדים מהנדסים רבים מפרויקט Alpha EV8 המבוטל ואשר ככל הנראה יהיה בעל ביצועים גבוהים פי 10 ממעבד איטניום 2 הנוכחי (בעל תדירות השעון 1.3 ג'יגה הרץ ומעלה).מעבד הביניים הוא MONTVAILE, הנמכר היום ומגיע להשיגים משמעותיים טכנולוגיים וכן במונחי TCO . 
מבקרי המעבד איטניום כבר כינו אותו "Itanic". אינטל צפויה להיות במצב מסובך אם מעבד האיטניום יהיה אכזבה, כיוון שהצורך בארכיטקטורה בעלת 64-ביט לשרתים מסחריים רק גובר, והצורך בארכיטקטורה כזו במחשבים אישיים הוא במרחק של מספר שנים בלבד.

AMD64

ארכיטקטורת AMD64 של חברת AMD היא כנראה האיום האמיתי הגדול ביותר לאינטל בנוגע לארכיטקטורת 64-ביט. AMD64 ממשיכה את ההתנהלות המוקדמת של חברת אינטל דווקא בנוגע להרחבות ארכיטקטורה בלי להוריד את התאימות לאחור, החל מ8080 (8-ביט), דרך 16-ביט (8086), ולבסוף מ16-ביט ל32-ביט (80386 ועד לפנטיום). ארכיטקטורת AMD64 מרחיבה את ארכיטקטורת x86 בעלת 32-ביט על ידי הוספת אוגרים של 64-ביט, עם תאימות מלאה למצבי 32-ביט ו16-ביט לתוכנות ישנות. מערכות AMD64 יצאו לשוק באמצע שנת 2003.
הביצועים שלו טובים למדי, אולם המעבד, הנקרא Opteron, נראה כמתחרה יותר לשבבי השרתים בעלי 32-ביט של אינטל – המערכת הגדולה ביותר שאינה מתקבצת (clustered) הנמצאת בשוק מכילה 4 מעבדים (לעומת 64 של איטניום 2) ומערכות ההפעלה לשרתים המתאימות היחידות כרגע הן Novell NetWare, לינוקס,  NetBSD וFreeBSD.
כישלון האיטניום ישפיע רבות על יצרנים כמו HP, אשר הצהירו שהם נוטשים את שתי ארכיטקטורות המעבדים שלהם - Alpha וPA-RISC) - לטובת האיטניום.
אף על פי זאת, עם אימוץ AMD64 על ידי יצרנים כמו סאן מיקרוסיסטמס ו-HP, אינטל שיחררה בפברואר 2004 את IA-32e, אשר מערך ההוראות שלו תואם לחלוטין עם AMD64.