QuickPath interconnect
ארכיטקטורת ה-Core, שהחזירה לאינטל את כתר הביצועים, הסתמכה על ערוץ תקשורת מיושן בדמות ה-FSB. אמנם מבחני ביצועים רבים הראו כי ה-FSB לא פגע באופן מהותי בביצועי מחשבים שולחניים (ובודאי לא באלה של מחשבים ניידים) ואף היה נתון לשיפור מתמיד בקצב העבודה שלו והגיע עד ל-1600MT/s במעבד ה-QX9770, במערכות שרתים מרובות מעבדים המצב היה שונה. במערכות אלו ישנו צורך להעביר בנוסף לכל פעולות הגישה לזיכרון גם את משימת הסנכרון בין זיכרונות המטמון של המעבדים כדי לשמור על עקביות הנתונים (Coherency), וזו נתגלתה כמשימה גדולה מדי עבור ה-FSB המזדקן.
הפתרון לבעיית התקשורת בין המעבדים הוא ערוצי תקשורת טוריים, דו-כיווניים ומהירים מנקודה לנקודה הנקראיםQPI (ר"ת QuickPath Interconnect).
ערוץ תקשורת בודד הוא דו-כיווני ומעביר ביט אחד בלבד בכל כיוון. לעומת זאת, אפיק של QPI בנוי ממספר ערוצים בודדים ויכול להיות מורכב מ-5, 10 או 20 ערוצים. עבור מעבדי הנהלם הנוכחיים מדובר באפיק הכולל 20 ביטים (לכל כיוון), מתוכם 16 משמשים עבור הנתונים וארבעה נוספים לשימוש הפרוטוקול וגילוי שגיאות.

אפיק ה-QPI (נכון למעבד ה-i7-965 Extreme Edition) פועל בקצב של 6.4GT/s. משמעות יחידת ה-GT/s היא מספר העברות הנתונים לשנייה באפיק, אך היות ורוחב האפיק משתנה, קצב העברת הנתונים תלוי ברוחב האפיק. רוחב האפיק הוא כאמור 16bit ולכן כל העברה כוללת שני בתים - אם נכפיל את קצב ההעברה בשני בתים נקבל רוחב פס מרבי של 12.8GB/s.
כדאי לציין כי גם ה-FSB בגילגולו האחרון ובמהירות של 1600MT/s מגיע לרוחב פס של 12.8GB/s אולם הוא אינו דו כיווני ויכול לבצע רק קריאה או כתיבה בכל זמן נתון ובנוסף צריך לחלוק את רוחב הפס בין בקר הזיכרון לבין תקשורת עם מעבדים אחרים. במערכת עם QPI, נפח התעבורה לזיכרון עובר ישירות דרך בקר הזיכרון ואילו עבור תקשורת עם מעבדים אחרים ניתן לשלב במעבד מספר יחידות QPI, אחת עבור כל מעבד. בכך מוסרת למעשה כל מגבלה על רוחב הפס לתקשורת עבור המעבד.
כיאה לאפיק תקשורת מודרני, ה-QPI מבוסס על מודל שכבות וכולל חמש שכבות (Protocol, Routing, Transport, Link, Physical) המאפשרות לנהל באופן חכם את תעבורת הנתונים. ה-QPI מתוכנן לחיסכון באנרגיה ומסוגל לעבור למצבי חיסכון שונים בהתאם לתעבורת הנתונים או עקב פקודה לעשות זאת.
כמו כן, אם נפח התקשורת נמוך, האפיק יכול באופן דינאמי לנצל רק חלק מהערוצים ולעבור בין הצירופים של 5,10 או 20 ערוצים.
Cache
זיכרון המטמון האינטגרלי לכל ליבה כולל 32KB של זיכרון מטמון מרמה ראשונה עבור פקודות (four-way associative) ו-32KB זיכרון מטמון מרמה ראשונה עבור נתונים (eight-way associative). בנוסף מכילה כל ליבת עיבוד גם זיכרון מטמון מרמה שנייה בנפח של 256KB (מסוג eight-way associative).זיכרון המטמון מרמה שניה תוכנן מחדש וכעת הוא בעל השהיה נמוכה של כעשרה מחזורי שעון יחסית ל-15 בפנרין. שיפורים אלה התאפשרו הודות לגודלו הקטן יחסית.
זיכרון המטמון של ה-Core 2 עבד בצורה מיטבית אם הקריאה ממנו הייתה בגבולות של שורה בזיכרון (המכילה 64 בתים), כאשר קריאה לקטע זיכרון שלא "ישב יפה" בגבולות השורה הייתה כרוכה ב"קנס" של מחזורי שעון נוספים. בליבת הנהלם המנגנון שופר והקריאה מזיכרון המטמון אינה כרוכה יותר בעיכובים מיותרים, ללא תלות במיקומו של הקטע הדרוש.
זיכרון המטמון מרמה שלישית הוא חידוש עבור אינטל והוא זיכרון מטמון הכולל בתוכו את זיכרונות המטמון הנמוכים יותר (inclusive), כלומר הוא מכיל את כל הנתונים שנמצאים ברמה הראשונה והשניה. הדבר נעשה בעיקר כדי לשפר את הביצועים ולקצר את הזמן הדרוש ל"הצצה" (snooping) של ליבה אחת בזיכרון המטמון של ליבה אחרת.
החיסרון בזיכרון מטמון מסוג inclusive הוא כמובן בבזבוז חלק מהזיכרון בהחזקת מידע כפול, אולם העובדה כי נפח זיכרונות המטמון מרמה ראשונה ושניה קטן יחסית ומסתכם ב-1.25MB בלבד עבור ארבעת הליבות, ממתנת את הבעיה. זיכרון זה פועל בתדר שונה הנמוך מתדר הליבות ולכן ההשהיה בגישה אליו היא בסביבות 40 מחזורי שעון.
מנועי חיזוי ועיבוד משופרים
Fetch and Decode
מנגנון ההבאה והפענוח של הנהלם כולל גם את זיכרון המטמון מרמה ראשונה ומכונה החלק הקדמי (front-end) של הליבה. חלק זה אחראי על יצירת יחידות הנתונים לחישוב (operands) ואף מבצע חיזוי הסתעפות. בנהלם נוספו למנגנון טכניקות Macrofusion עדכניות ומנגנון גילוי הלולאות (loop stream detector). ה-Macrofusion, בדומה למה שהוצג ב-Core 2, משלב הוראות מסוימות לביצוע ביחד כדי להגדיל את יעילות הביצוע. מיזוג זה היה אפשרי רק לפקודות של 32bit אולם הנהלם מאפשר מיזוג הוראות גם לפקודות 64bit. בנוסף הנהלם הרחיב את סט פקודות ה-Macrofusion ומסוגל להשתמש בתכונה לעיתים קרובות יותר.


מנגנון גילוי הלולאות אחראי לזהות מצב בו יש לולאה בקוד אשר אמורה כמובן להתבצע מספר פעמים. המנגנון מחזיק בחוצץ יעודי את כל ההוראות האחרונות שבצינור הביצוע (pipeline) ובסך הכול 18 פקודות (במעבדי ה-Core 2). כאשר מתגלה לולאה, חלקים מסוימים במנגנון ההבאה והפענוח מפסיקים לעבוד היות ואין צורך לקרוא את ההוראות מזיכרון המטמון המקומי. בנהלם, החוצץ הורחב ל-28 פקודות ובנוסף הוא הועבר קדימה לאחר המפענח ולכן מכיל Micro-Ops. כך מושגות שתי מטרות, חיסכון בהספק עקב כך שהדרגות שלפני החוצץ לא פועלות כל עוד הלולאה מתבצעת, והשגת מהירות גבוהה יותר שכן אין צורך בהבאה ופענוח של הוראות חדשות.
Branch Predictor
שיפור נוסף ל-front-end הוא כאמור מנגנון חיזוי ההסתעפות. מנגנון זה חשוב במיוחד כאשר המעבד מבצע הרבה פעולות במקביל כדי לשמור על קצב ההזנה ליחידות הביצוע. מנגנון החיזוי קובע מתי תתבצע הסתעפות ומה תהיה הכתובת בה ימשיך הביצוע. המנגנון מורכב בדרך כלל ממערך של הסתעפויות (BTB – Branch target Buffer) השומר את היסטורית ההסתעפויות וכתובת היעד ואלגוריתם הניזון מנתונים אלה וקובע את תוצאות ההסתעפות הבאה.
החידוש בנהלם הוא השימוש בשתי דרגות חיזוי. הדרגה הראשונה זהה למימוש הקיים ב-Core 2, אך הדרגה הנוספת איטית יותר ויכולה לשמור מידע רב יותר על הסטורית ההסתעפויות. אינטל טוענת כי סידור כזה משפר את חיזוי ההסתעפויות עבור ישומים מסויימים הכוללים נפח קוד גדול, כמו בסיסי נתונים.
Execution Engine and SMT
מנגנון הביצוע של הנהלם (בכל ליבה) כולל 6 יחידות ביצוע המסוגלות לבצע בכל מחזור 3 פעולות זיכרון ו-3 פעולות חישוב. מנגנון ה-Unified Reservation Station דואג להתאים את המטלות ליחידות העיבוד השונות היות וכל יחידה יודעת לבצע סוג מסוים של פעילות.


רעיון ה-SMT (ר"ת Simultaneous Multithreading) הוצג לראשונה בפנטיום 4, אולם נזנח כאמור במעבדי ה-Core 2 וכעת מקבל שוב עדנה. כעיקרון, היכולת של כל ליבה להריץ שני נימים במקביל אמנם אינה שינוי מערכתי אולם היא בהחלט משפיעה על ארכיטקטורת המעבד באופן נרחב. מעבד שמסוגל להריץ יותר נימים במקביל יוביל בהכרח ליותר החטאות בקריאה מזיכרון המטמון ולכן ייצר יותר תעבורה לבקר הזיכרון. לכן העברת הבקר למעבד וציודו בממשק ה-QPI בהחלט מאפשרות למעבד בעל 4 ליבות ו-SMT לעבוד באופן יעיל ולשפר את הביצועים מבלי לסבול מצווארי בקבוק. מנגנון הביצוע בנהלם רחב וקשה להזנה במקביל, ואם לא יהיה מנגנון הזנה יעיל, הרי שיהיו מחזורים רבים בו לא ינוצל ברובו. לכן מנגנון ה-SMT מחפש פעולות לביצוע במקביל בשני נימים שונים (threads).
כדי למנוע צווארי בקבוק אינטל הגדילה את החוצצים הפנימיים (buffers) הקשורים למנגנון ההזנה ולביצוע הוראות שלא בסדר הנכון (out-of-order execution). ה-reorder buffer העוקב אחר ההוראות המתבצעות במטרה לסדר אותן בצורה יעילה יותר הוגדל מ-96 מקומות ב-Core 2, ל-128 מקומות בנהלם. ישנה חלוקה קבועה של 64 מקומות לכל נים כאשר שני נימים רצים ב-SMT ו-128 מקומות לנים בודד, כך שבכל מקרה ישנו שיפור יחסית ל-Core 2.
ה-Unified Reservation Station האחראי להקצאת יחידות הביצוע להוראות הורחב אף הוא מ-32 מקומות ל-36 מקומות. כאן החלוקה היא דינמית וכל נים מקבל מקומות במנגנון בהתאם לצורך. שני חוצצים נוספים שהוגדלו הם ה-load buffer וה-store buffer, כאשר הראשון גדל מ-32 ל-48 מקומות והשני מ-20 ל-32 מקומות.
חסכון בהספק - צעד משמעותי נוסף
Turbo Mode and Power Management
כידוע, צריכת האנרגיה של המעבדים מהווה פרמטר חשוב והיצרנים נאבקים ללא הרף בכדי לשפר את הביצועים ולהישאר במעטפת הספק סבירה שמאפשרת פתרונות קירור סטנדרטיים. בנהלם, הלכה אינטל צעד נוסף קדימה ושילבה בקר הספק במעבד עצמו הקרוי PCU (ר"ת Power Control Unit) אשר מנטר באופן רציף את טמפרטורת הליבות וצריכת ההספק שלהן ודואג להוריד את צריכת ההספק של ליבות שלא בשימוש ואפילו לכבות אותן באופן מוחלט, כך שצריכת ההספק של ליבה שאינה בשימוש קרובה לאפס. הבקר כולל גם קושחה (firmware) עצמאית וייתכן שתהיה אפשרות לעדכן אותה ולשפר את תפקודו.

תכונה נוספת, ואולי המעניינת שבהן, היא מצב טורבו (Turbo Mode) שעוזר לשמור ליבות במצב סגור כאשר אין בהן צורך אמיתי. כאשר, ישנן ליבות סגורות ועומס העבודה שאינו מנצל ריבוי ליבות עולה, מנגנון הבקרה מעלה את תדר הליבה או הליבות הפעילות בכדי להתמודד עם העומס הזמני, במקום להפעיל ליבה סגורה שתצרוך הספק גדול יותר. העלאת התדר מבוצעת בצורה מבוקרת ובשלבים תוך שמירה על מעטפת ההספק המירבית המותרת. זהו למעשה אוברקלוק אוטומטי לפי דרישה המתבצע ברמת חומרת המעבד באופן שקוף לגמרי למערכת ההפעלה ולמשתמש.

בקרב רוכשי המעבדים ישנה התלבטות מתמדת האם לקנות מעבד דו-ליבתי בעל תדר שעון גבוה או מעבד בעל ארבע ליבות בעל תדר שעון נמוך יותר. בעוד הראשון יספק ביצועים טובים יותר ליישומים שאינם מסוגלים לנצל ריבוי ליבות, השני יוכל לספק ביצועים טובים ליישומים שהותאמו מראש לריבוי ליבות.
כעת אינטל פותרת את הבעיה הלכה למעשה וניתן ליהנות משני העולמות ללא לבטים. ניתן לבחור במעבד בעל ארבע ליבות שייתן ביצועים טובים גם כאשר מריצים יישום שלא מנצל את כל הליבות, שכן הליבות הנושאות בעומס יקבלו תוספת ביצועים על ידי העלאת התדר (כל עוד המעבד עומד בגבולות שהוצבו לו מבחינת חום והספק). לכן ניתן לומר שעבור מעבד Core i7, קניית קירור טוב יותר תספק ביצועים טובים יותר, פשוטו כמשמעו.


אולם, הבקר המשולב בליבה יחד עם תכונה נוספת בשם Overspeed Protection עלולים לאכזב את ציבור האוברקלוקרים שמצא עד כה במעבדי אינטל פוטנציאל אוברקלוק לא מבוטל. תכונת ה-Overspeed Protection כוללת הגבלה קשיחה לצריכה מקסימלית של 100A או 130W. רק במעבדים מסדרת Extreme Edition (כמו ה-Core i7 965 Extreme) התכונה הזו מנוטרלת. לכן, ניסיונות אוברקלוק למעבד נהלם הכרוכים בהגדלת המתח יובילו ממילא להעלאת ההספק וכשזה יגיע למגבלה הקבועה במעבד, מנגנון הבקרה יוריד את קצב השעון כדי לעמוד במגבלות ועל כן אפשרות האוברקלוק תוגבל. אין זה אומר שלא ניתן לבצע אוברקלוק כלל למעבדי ה-Core i7, אלא שכעת קיים גורם נוסף המובנה במעבד שיגביל את האפשרות לבצע אוברקלוק.
כמו כן, תכונה זו יכולה לסמן את הסוף לאוברלוק בתקציב נמוך שכן כעת לא תוכלו להסתפק במעבד זול ובקירור טוב על מנת להשיג את הביצועים של המעבד הטוב בסדרה ולחסוך בכך כמה מאות דולרים. המשמעות הסופית היא שאוברקלוק הופך להיות ספורט לעשירים בלבד. עם זאת, נשארת התקווה שיצרני הלוחות יצליחו בדרך פלאית כלשהי לעקוף מנגנון זה ולאפשר אוברקלוק של המעבדים הזולים יותר (כפי שעשו בכמה מקרים בעבר, בהם הוגבלו המעבדים על ידי "פיצ'רים" שונים ומשונים של אינטל).
תמיכה ב-SSE 4.2
מעבדי ה-Nehalem כוללים תמיכה ב-SSE 4.2, קבוצת פקודות חדשה המכילה 7 פקודות נוספות. סט הפקודות SSE4 של אינטל מורכב מ-54 פקודות, מתוכן 47 פקודות נקראות SSE4.1 ומיושמות כבר ב-Penryn וב-Wolfdale ואילו הנהלם תומך גם בשבע הפקודות הנותרות. מרבית הפקודות החדשות נועדו לתמוך במחרוזות ולדברי אינטל יאיצו עיבוד של קבצי XML. פקודות נוספות יכולות לשפר את מהירות העיבוד של קודים לתיקון שגיאות (CRC32) ולהיות שימושיות עבור יישומים של זיהוי קול.
ערכת השבבים X58 - סקירה טכנית
ביטול אפיק ה-FSB ושילוב בקר הזיכרון במעבד גורמים לכך שערכות השבבים הקיימות אינן מתאימות יותר למעבדים החדשים, ולכן תוכננו ערכות שבבים חדשות למעבדי הנהלם בשם Tylersburg. ערכת האקסטרים בסדרה זו היא ה-X58 והיא הראשונה אשר תהיה זמינה מיד בהשקה, כאשר בהמשך יושקו ערכת נוספות לשוק המיינסטרים בשם P55. שני השינויים המתחייבים הם כי ה-X58 תכלול מעתה ממשק QPI לצורך חיבור למעבד (במקום ה-FSB), וכן את ביטול בקר הזיכרון. ממשק ה-DMI לגשר הדרומי נשאר כשהיה ויתחבר ל-ICH10 המוכר לנו כבר מערכות ה-P45.


מהתבוננות בדיאגרמת המלבנים של ה-X58 ניתן לראות כי הזיכרון מחובר כעת ישירות למעבד ואילו ה-X58, או בשמו הפונקציונלי IOH (ר"ת Input/Output Hub), מכיל כעת 36 נתיבי PCI Express 2.0. שפע נתיבי ה-PCI Express יכול להיות מוקצה במספר דרכים למספר חריצי הרחבה כפי שמפורט בטבלה הבאה.

כל לוח עם ערכת X58 יתמוך כמובן במערך כרטיסי מסך של ATI בטכנולוגית CrossFire, כאשר החידוש הפעם הוא האפשרות לתמיכה גם במערכי SLI של NVIDIA. יצרנים שיבחרו בכך יוכלו להוסיף תמיכה ב-SLI ללוחות שלהם ללא צורך בשבב ייעודי של NVIDIA, הקרוי NF200. אנו אף צפויים לראות לוחות עם צירופים שונים של חריצי PCI Express לכרטיסי מסך, החל בשני חריצים שיתמכו בשני כרטיסים במהירות המקסימלית X16, דרך לוחות עם 3 חריצים כאשר אחד מהם הוא X16 ושניים נוספים X8 וייתכנו אף לוחות שיציעו 4 חריצי הרחבה, שאם ישתמשו בכולם יציעו מהירות של X8. ניתן יהיה כמובן גם למצוא לוחות עם ארבעה חריצי PCI Express ברוחב של 16x פיזי (חשמלי כמובן במגבלות השבב) ואף לוח של ASUS מסדרת ה-WS המתהדר בלא פחות משישה חריצי PCI Express x16, אם כי טרם ברור כיצד הדבר מתבצע בפועל (ככל הנראה בעזרת שבב ניתוב נוסף).
Clocking
תכנון מעגלי השעון במערכת שונה גם הוא מהדורות הקודמים. ראשית, השעון הבסיסי של המערכת פועל בתדר 133.33MHz בלבד. זהו תדר נמוך משהורגלנו אליו והוא נבחר בעיקר בשל שיקולי תכנון של זמן נעילה קצר והפרעות נמוכות יותר למעגלים המייצרים את תדרי העבודה השונים של הרכיבים (PLL). לכן, מכפלות המעבדים יהיו גבוהים יותר – לדוגמא, מעבד ה-Core i7 965 Extreme הפועל בתדר של 3.2GHz הינו בעל מכפלה של 24.
בלוחות X58 קיימים ארבעה מכפילים המיועדים לספק את תדר השעון של המכלולים השונים של הלוח:
- מכפיל המעבד או הליבה, קובע את התדר בו פועלת הליבה. ישנם ארבעה מכפילי תדר נפרדים (אחד לכל ליבה) כדי שניתן יהיה לשלוט על מאפייני הפעילות וההספק של הליבות בנפרד.
- מכפיל הזיכרון, קובע את תדר העבודה של הזיכרון וניזון אף הוא משעון המערכת. לדוגמא, מכפיל זיכרון של 8 ייתן תדר עבודה של 1066MHz לזיכרון.
- מכפיל עבור ה-QPI המאפשר שינוי תדרי העבודה של הממשק בין המעבד ל-IOH (ה-X58) בהתאם לסוג המעבד או מצב העבודה.
- מכפיל עבור חלקי המעבד האחרים (Uncore). למכפיל זה יש קשר הדוק למכפיל הזיכרון והוא אינו ניתן לשינוי בנפרד ממנו. ערכו לפחות כפול ממכפיל הזיכרון.
סיכום
ניתן לראות כי הנהלם אכן מציג שינוי יסודי ומהותי במבנה המעבד, שינוי שכמוהו מתרחש בערך אחת לעשור. אכן, הארכיטקטורה החדשה תשמש את אינטל כבסיס לשינויים ושיפורים בעשור הקרוב. בוצעה קפיצה משמעותית ממעבד מונוליטי, העשוי כמקשה אחת ומסתמך על אפיק FSB, למערכת מודרנית על שבב מאוחד המציגה מודולריות ויכולת גישה לא אחידה לזיכרון (ע"ע NUMA). אמנם המעבר בוצע באיחור רב (כאמור, AMD ביצעה זאת כבר ב-2003) אולם הוא יאפשר שיפור ביצועים מוחשי ויכולות אינטגרציה משופרות.
השינויים במנוע העיבוד אמנם אינם פורצי דרך אולם הושג שיפור כמעט בכל מנגנון אפשרי והשימוש בריבוי הנימים (SMT) הוא משמעותי גם כן וישמש כבסיס לשיפורים שיבואו בוודאי בהמשך.
ההבדל המשמעותי ביותר בביצועים יורגש כמובן במערכות בהן צוואר הבקבוק היה עד כה רוחב הפס לזיכרון. מטבע הדברים, אלו הן בעיקר מערכות שרתים אשר משתמשים באופן אינטנסיבי בכמויות זיכרון גדולות.
גם שיפורים אחרים במנגנון העיבוד ובניהול ה-TLB יועילו בעיקר למערכות המריצות קוד כבד וגדול ולכן ניכר כי אינטל מכוונת באופן רציני אל שוק השרתים, בו AMD עדיין מציגה יתרונות רבים, בעיקר במערכות מרובות מעבדים.
בהמשך שנת 2009 תגיע הארכיטקטורה החדשה גם למערכות המיינסטרים ותאפשר למשתמשים רבים יותר ליהנות מיכולותיה. לרבים יהיו מעבדים בעלי ארבע ליבות עם יכולת הרצה של 8 נימים במקביל וכאן עובר הכדור לידיהם של מפתחי התוכנה. בעוד שוק השרתים יכול לנצל כבר היום את יכולות הארכיטקטורה, השוק הביתי ימתין לבשורה אמיתית משוק התוכנה, על מנת להביא לניצול מלא של מעבדים רב ליבתיים.
אינטל אף ציינה מטרה לשילוב מעבד גרפי כחלק מהמעבד בארכיטקטורת הנהלם וייתכן בהחלט שהיא אף תקדים את AMD, שהגתה את הרעיון לראשונה עת רכשה את חברת ATI וסימנה את ה-Fusion כטכנולוגיה עתידית שתראה אור בסוף 2009 או תחילת 2010. ב"טיק" הבא של אינטל, לקראת סוף 2009 כאשר המעבדים יעברו לייצור ב-32nm, בהחלט ניתן לצפות שנראה גם מעבד משולב עם רכיב גרפי, אשר יהווה הגשמה של חזונה של AMD.

במאמר זה סקרנו את עיקרי השינויים הטכנולוגיים שמציגה הארכיטקטורה החדשה מבית אינטל. ניתן להבין כי יהיו שיפורים מסוימים, מהותיים בחלקם, יחסית לארכיטקטורת ה-Core 2 אולם בהחלט קשה לכמת אותם ואת אופן השפעתם על יישומים שונים באופן מדויק. לשם כך, אנו שוקדים בימים אלו על מבחני ביצועים מקיפים למעבדים וללוחות האם החדשים, ובקרוב מאוד נעדכן אתכם בתוצאות. יש למה לחכות...

קרדיט ענק לשלמה מזרחי מ- hwzone