הבאג הקריטי במעבדי אינטל

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

נכון להרגע, אין נתונים רשמיים עד לתחילת שבוע הבא ככל הנראה – אבל ממה שכן ידוע, מדובר על באג במעבדי אינטל מהעשור האחרון.

בשביל להסביר לגבי הבאג, נתחיל בדברים בסיסיים: אפליקציות בד"כ רצות במצב שנקרא User Mode ויש מצב שהוא Protected Mode שאפליקציות רגילות לא מגיעות אליו למעט כשצריך גישה לציודים כמו דיסק, רשת, כרטיס גרפי ועוד. במצבים כאלו, בד"כ האפליקציה פונה למערכת הפעלה, מערכת ההפעלה פונה ל-Protected Mode, מבוצעים הדברים שצריך להתבצע ומיד זה חוזר ל-User Mode. זו הסיבה, אגב, שבמקרים לא מעטים על מנת לעדכן קושחה, צריך לעשות Boot ל-DOS כי מערכת ההפעלה חוסמת אפשרות גישה ישירה לציוד למעט במקרים מסויימים המורשים ע"י היצרן.

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

הבאג עצמו – הוא באג חומרה, כלומר תיקון דרך מיקרו-קוד לא אפשרי במקרים כאלו והוא משפיע על מעבדים לשרתים, דסקטופ, מחשבים ניידים וגם Appliances. בקיצור – כל מה שיש בו מעבד אינטל מהעשור האחרון בערך, חשוף – ובתרגום לאנשי IT: גשו לחווה שלכם, תסתכלו על השרתים שלכם, 90% מהם – חשופים.

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

איזה מחיר? בביצועים. תלוי מה האפליקציות שאתם מריצים ולאיזה ציוד הם ניגשים – הביצועים ירדו בין 3 ל-30 אחוז אחרי התקנת הטלאי (הטלאי יהיה חובה בכל מערכות ההפעלה). במילים אחרות – אם אתם לדוגמא מריצים מערכת מורכבת נניח על 10 מכונות VM, אחרי התקנת הטלאי ועל מנת לקבל את אותם ביצועים – תצטרכו בין VM ל-3 VM נוספים. ישנם דברים שאינם מושפעים והם יותר קשורים למכונות דסקטופ או מחשבים ניידים כמו משחקים, קידוד וידאו ועוד מספר דברים. הפרטים יתבהרו יותר בשבוע הבא, אבל הנה דוגמאת גרף של מעבד דסקטופ חדש (משפחת CofeeLake, מעבד i7 8700K) בהשוואה למעבד i7 מלפני 2 דורות: ה-i7 6800K (תודה לאתר phoronix.com על הגרפים)

הפס הסגול מציין מצב לפני הטמעת טלאי במערכות Linux והפס הירוק – אחרי. הבדיקה היא גישת יצירה/כתיבה/קריאה ל-4000 קבצים שנמצאים במכונה, בתוך 32 תיקיות, כל קובץ בגודל 1 מגהבייט. כפי שאתם יכולים לראות – לאחר ההטמעה כמו שניתן לראות במעבד החדש – המהירות צונחת חזק מטה. אגב, הגרף נוצר עם בדיקות על Linux אולם גם אם תשנו מערכת הפעלה, התמונה תהיה פחות או יותר אותו דבר.

אז מה ניתן לעשות לגבי איבוד אותם אחוזים יקרים מבחינת ביצועים? לא הרבה כרגע. אינטל לא יכולה לשחרר מחדש מעבדים ישנים שהם הפסיקו לייצר + תיקון ולא ניתן להחליף מעבד ישן במעבד עכשוי ללא החלפת לוח אם, זכרונות ודברים אחרים. לעומת זאת, אם קניתם מחשבים או שרתים עם מעבדים חדשים מהחודשים האחרונים, סביר להניח שאינטל תוכל להחליף ללא תשלום את המעבדים שברשותכם. האם יש מקום לאופטימיות? אני מאמין שכן – ברגע שהטלאים יצאו באופן רשמי, חברות התוכנה שהאפליקציות שלהן יהיו יותר איטיות אחרי התיקון – יוציאו גירסאות עם "מעקף" כלשהו על מנת לקבל את הביצועים בחזרה, אם כי זה יקח זמן.

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

אינטל מציגה – הדור השמיני .. בערך

אינטל הציגה שלשום את הדור ה-8 של המעבדים החדשים שלה. אנחנו רגילים לשמוע אחת לשנה מאינטל הכרזות שונות על המעבדים החדשים, כמה הם מעולים, כמה הם מהירים וכו' וכו'. הפעם, בניגוד לעבר, הדברים .. שונים במעט.

אינטל הציגה לפני כשנה (ב-20 לאוגוסט 2016) את משפחת ה-Kaby Lake, מעבדים חדשים לדסקטופ ולמובייל, הדור השביעי החדש. כשמנפים את כל הילולי היח"צ, מבינים אנשי מקצוע רבים שקניה של המעבדים הללו לא תועיל בהרבה. כן, יש שיפור של 10-15% (וגם זה רק במקרים מאוד מסויימים), אבל שינויים ושיפורים משמעותיים – אין ממש כאן. בהמשך הדרך אינטל הציגה את ה-Kaby Lake-X, משפחת מעבדים שצריכה לוח אם חדש עם צ'יפ X299, רק שעד היום רבים וטובים לא הצליחו להבין מה עבר בראש להנהלת אינטל בחיפה. קניה ושימוש במעבד כזה מבטיחה לך מיידית שהלוח אם היקר שקנית – מחצית ממנו מיד תהיה מושבתת ברגע שתכניס מעבד Kaby Lake-X לתושבת, ושלא לדבר על כך שאין אפילו את היחידה הגרפית במעבד. בקיצור – אתה משלם יותר ממחיר מעבד Kaby Lake (ואם תכלול את מחיר הלוח אז המחיר יוצא הרבה יותר), ואתה מקבל .. פחות. מה בדיוק הטעם לרכוש מעבד כזה ממשפחה כזו? אין לי ולאחרים מושג ירוק.

אז שלשום אינטל ניסתה את מזלה בפעם השלישית בהצגת .. Kaby Lake Refresh כלומר "דור שלישי" ל-Kaby Lake (ובקיצור KLR), וגם הפעם אינטל הבטיחה ניסים ונפלאות, רק שהם יותר התרכזו בתוכן וידאו ברזולוציית 4K (ואם מי שקורא את הוידאו חושב שמעבד כזה ללא כרטיס גרפי חיצוני יתן פתרון טוב לעריכה – הוא טועה טעות מרה), וכרגיל גם הפעם אינטל הצהירה שהמעבדים החדשים יהיו מהירים ב-10-15% בהשוואה ל-Kaby Lake (על Kaby Lake-X אף אחד לא דיבר במהלך החשיפה).

אבל הפעם הדברים מעט שונים ולשם שינוי, הדברים שונים לטובה. לקח לאינטל כמה שנים טובות ותחרות שהתחילה לפני כשנה פלוס מצד AMD (עוד בזמן שהכל היה רכילויות ושמועות) בשביל להפנים משהו פשוט: אנשים לא מחפשים עוד אחוזים בודדים של שיפור ביצועי מעבד, אנשים לא מחפשים גימיקים של תכונות שאפשר להשיג בצד ג' (Optane.. נו באמת!). אנשים מחפשים ליבות ונימים כדי שהמחשב הנייד יעבוד בצורה יותר טובה ומהירה, עם תמיכת זכרון מעבר ל-16 ג'יגהבייט, ואנשים רבים מחפשים זאת עם צריכת חשמל נמוכה.

להלן התשובה של אינטל (לחצו להגדלה):

עד היום בסידרת המעבדים U של אינטל בגירסת ה-15 וואט, היו 2 ליבות ו-4 נימים. אינטל סוף סוף בדגמים i7-8650U, i7-8550U, i5-8350U, i5-8250U מוסיפה 2 ליבות ומאיצה את מהירות השעון כשהמעבד נמצא במצב Turbo (אם כי מהירות הבסיס יותר נמוכה, לא באשמת אינטל, יש גבול למה שאפשר להוסיף במגבלת מעטפת של 15 וואט). בנוסף, אינטל הכפילה את זכרון המטמון בדגמי i7 ל-8 מגהבייט ובדגמי i5 ל-6 מגהבייט. אם נתרגם את זה לביצועים אז אם האפליקציה שאתה מריצה אינה מתפרסת על נימים וליבות נוספים, תקבל עוד 5-15% בביצועים אולם באפליקציות שיודעות לנצל כמות ליבות ונימים, תקבל ביצועים יותר גבוהים עד 40-50%. בכל הקשור לכמות זכרון במחשב, היצרנים יוכלו להציע עד כמות זכרון של 32 ג'יגהבייט (בניגוד למגבלת ה-16 ג'יגהבייט בעבר). שימו לב: המעבדים האלו לא יופיעו בכל המחשבים הניידים אלא יותר במחשבים בסקטור ה-Ultra Book במחירים שמתחילים ב-1000$ ומעלה (מחיר המעבד בלבד הוא בסביבות ה-410$!!)

אינטל בחודשים הקרובים תציג את שאר המעבדים שמיועדים לדסקטופ או למחשבים ניידים כתחנות עבודה (Mobile Workstation – סידרת ה-35 וואט) תחת השם Coffee Lake ובשנה הבאה היא תציג עוד מעבדים באותו דור (אם כי ביצור של 10 ננומטר) תחת שם הקוד Ice Lake. על מעבדי ה-Coffee Lake אפרסם פוסט בקרוב אבל ממה שכבר ידוע, אינטל החליטה להוסיף לכל המעבדים עוד 2 ליבות ולהרחיב את הזכרון מטמון בחלק מהמקרים.

כפי שציינתי לעיל, עניין הליבות הוא מאוד חשוב ואני שמח שאינטל החלה לזוז בעניין. אחד הצעדים המבורכים שאינטל עשתה היא להוציא את סידרת ה-Sky Lake X שסוף סוף מאפשרת לצרכנים לרכוש מעבדים ופתרונות עם 8 עד 18 ליבות מבלי למכור כליה או למשכן את הבית בקניית מעבדי Xeon (הסידרה הזו לא מחליפה את Kaby Lake אלא רק מוסיפה דגמים לשוק היותר מקצועי). אפשר לראות זאת גם בסידרת מעבדי ה-Atom C3000 החדשה שמיועדת לשרתים קטנים (דגש על "קטנים", זה מובנה בתוך לוח אם Mini ITX) ששם אינטל סוף סוף מציעה מעבדים עם 16 ליבות ו-16 מגהבייט זכרון מטמון במחיר זול (יחסית!) של 449$ (הלוח עם המעבד עולה בערך $1000).

מה שעכשיו אינטל צריכה לעשות, זה להפסיק עם ההתנהגות של "בשביל מה לך?". אינטל מדור לדור של מעבדים ו-Chipset מקצצת בכמות ניתובי ה-PCIe. מילא היה מדובר בחסכון מחיר לצרכן אך כפי ש-AMD מוכיחה עם מעבד ה-Threadripper 1900X שלה (ששם AMD מציעים 8 ליבות ו-16 נימים עם 60 ניתובי PCIe זמינים למשתמש! במחיר של 549$ למעבד) – אין כאן שום חסכון. גרוע מכך – בלוחות עם ה-X299 Chipset, כל מקל M.2 SSD עובר דרך ה-Chipset ואם יש לך 2 מקלות או יותר, אתה תקבל ביצועים שמוגבלים ע"י ה-Chipset. ב-AMD אין שום מגבלה כזו במעבדי ה-Threadripper, ואין שום בעיה להכניס אפילו 4 כרטיסים גרפיים ולקבל PCIe X16 על כל כרטיס, דבר שהוא בלתי אפשרי בלוחות המבוססים על X299 וחבל.

עוד נקודה שאינטל צריכה להבין – היא עניין המחירים. כש-AMD יצאו עם מעבדי ה-Ryzen, אינטל חתכה במכה אחת את המעבד עם הכי הרבה ליבות שהיה לה לדסקטופ (ה-6950X) מ-1700$ למחיר של 628$ (כיום באמזון ניתן להשיג אותו במחיר מצחיק של $359!). כיום בסידרת מעבדי ה-Sky Lake-X, מחיר מעבד של 16 ליבות ו-32 נימים שיצא בקרוב יעלה לא פחות מ-1700$ (בשעה שמעבד Threadripper עם 16 ליבות ו-32 נימים עולה $1000). כפי שתיארתי לעיל, גם מעבד כזה יסבול מהגבלות בגלל ה-X299 Chipset אולם עד כה אינטל לא חשבה להוריד מחירים.

לסיכום: לעניות דעתי, אינטל צריכה הרבה יותר להקשיב לצרכנים שהם הלקוחות שלה. מבחינת מכירות, אינטל מוכרת הרבה יותר ללקוחות הדסקטופ והמחשבים הניידים מאשר לשרתים או לסקטורים אחרים. לקוחות רוצים יותר ואם לקוחות מעוניינים, אז כדאי לספק להם את מה שהם רוצים במחיר הוגן. אם לקוח רוצה שהמחשב שלו ירוץ בצורה מעולה ללא תקלות ורוצה להשתמש בזכרון מסוג ECC – אינטל צריכה לאפשר לו במקום לחסום את זה ברמת ה-Chipset. אם לקוח רוצה להכניס 4 מקלות M.2 ולקבל מהירות מקסימלית ב-RAID-5 ולא להיות מוגבל על ידי Chipset – אפשרו לו ותחסכו את הפדיחות ש-AMD מציעה כל מה שלא הצעתם ובמחיר יותר זול.