כתבתי כאן בעבר שאינטל די נתפסה עם התחתונים למטה בכל מה שמדובר על הסמארטפונים והטאבלטים, ו-7 שנים אחרי שאפל הציעו את האייפון הראשון – לאינטל אין שום פתרון מבחינת מעבד. אתקן את עצמי: יש להם פתרון, אך הוא פתרון גרוע.
הפתרון של אינטל לטלפונים חכמים וטאבלטים הם מעבדים ממשפחת ה-Atom. כן, אותו מעבד שאינטל הכניסו לנטבוקים ז"ל, עבר שדרוג (ופיצול לכמה מעבדים) מזערי מבחינת גרפיקה, הוא נהפך ל-SoC, יצור בליתוגרפיה של 22 ננומטר (אפשר לראות את כל רשימת הדגמים והמפרטים שלהם כאן) ועבר שיפור מזערי בצריכת חשמל.
אינטל חשבה שאם היא תציע מעבד כזה, תעשה porting לאנדרואיד ותציע חבילה קורצת ליצרנים – הם יתנפלו על ההצעה, ואם לא, תמיד אינטל יכולה להציע כל מיני חבילות "עידוד" (שוחד בעברית) ליצרנים שישתמשו בפתרון שלה ולא בפתרון מבוסס ARM.
הבעיה המרכזית של השוק: רוב היצרנים אמרו לאינטל "תודה, לא תודה" והם העדיפו לבחור פתרון של Qualcomm, nVidia, ויצרנים אחרים שמייצרים פתרונות מבוססים ARM. חלק מהיצרנים הסכימו למכור מכשירי אנדרואיד מבוססי הפתרון של אינטל, אבל רק כ-עוד פתרון, את זה אפשר לראות לדוגמא אצל לנובו עם ה-K800.
היחידים שכן הסכימו ממש להשקיע בפתרון של אינטל ולמכור אותו לציבור – הם סמסונג, עם דגמים מסויימים של ה-Galaxy Tab-3. אינטל סייעה בתקצוב שיווק לטאבלטים האלו ובפרסומים משלה וגם סמסונג פירסמה תחת כל עץ רענן את הטאבלט הזה.
זה עזר? האם סמסונג תמשיך למכור טאבלטים עם מעבדי אינטל? בחודש שעבר יצאו פרטים לגבי דור ההמשך, ה-Galaxy Tab-4 וכפי שתוכלו לראות כאן, גם סמסונג יורדים מהעץ (אם כי יכול להיות שחלק מהדגמי TAB – הם מוציאים מספר גדול של סדרות – יכול להיות מבוסס על פתרון אינטל).
עד כאן, כל מה שאינטל עושה יצרנים אחרים גם עושים, הם מנסים לכבוש שוק. לגטימי.
מה שלא ממש לגטימי, אלו השקרים שאינטל מוכרת לציבור הרוכשים, ואת זה חשוב שהצרכנים ידעו לפני שהם קונים טאבלט. על מנת להבין היכן השקר, אתן הסבר קצר לגבי אנדרואיד ולגבי אפליקציות.
כשאנדרואיד החל להיות מפותח, גוגל חיפשה שיטה איך להריץ אפליקציות תחת מעבדים שונים וגם שפת תכנות מומלצת. בסופו של דבר מבחינת שפה הם הלכו על JAVA וגוגל החליטו לבנות שיטה שהאפליקציות ירוצו כמכונות וירטואליות (מה שגרם לאורקל לתבוע את גוגל – ולהפסיד) מה שנקרא Dalvik VM. תפקידו של ה-Dalvik זה לקחת אפליקציה שכתובה ב-JAVA ולהמיר אותה למצב בינארי ולהריץ אותה כ-VM כך שאם האפליקציה נתקעת, האנדרואיד לא נתקע.
לשיטה זו יש יתרון גדול בכך שכל מעבד שיריץ אנדרואיד, יוכל טכנית להריץ אפליקציות אנדרואיד שנכתבו ב-JAVA. כך לדוגמא חוץ ממעבדים מבוססים ARM שקיימים בשוק, יש גם מעבדים של MIPS שהם זולים ושמריצים גירסת אנדרואיד אחרונה.
החסרון של השיטה היא כמובן בכל מה שקשור לביצועים. מה לעשות, כשצריך להמיר לבינארי, משלמים מחיר בביצועים. חברות שכותבות אפליקציות והיו צריכים ביצועים החליטו לבצע את אחת מהשיטות הבאות:
- להוסיף קוד בינארי לאפליקציה, כך שאותו חלק בינארי ירוץ Native באנדרואיד על המעבד (אפשר לראות זאת באפליקציות רבות שמעבדות תמונה, אודיו וכו')
- לוותר לגמרי על כתיבה ב-JAVA ולהשתמש ב-NDK של אנדרואיד כדי לכתוב את האפליקציה כולה כאפליקציה בינארית.
אלו כמו שיטות לגטימיות… כל עוד אותו אנדרואיד רץ על מעבד מבוסס ARM.
אבל מה קורה כשהמעבד שמריץ את אותן אפליקציות הוא ATOM? אז ישנם מספר סיטואציות:
- אם האפליקציה כתובה לגמרי ב-JAVA, הביצועים יהיו בערך כמו המעבדים של ARM ולפעמים הם ירוצו יותר מהר.
- אם האפליקציה כתובה ב-JAVA אך ישנם חלקים בינאריים שכתובים עבור ARM, באותם חלקים בינאריים, המערכת תצטרך להשתמש באמולציה, מה שיגרום למעבד להתאמץ הרבה יותר והביצועים יהיו הרבה יותר איטיים. כמה איטיים? בין 25-50% יותר איטי.
- אם האפליקציה היא בינארית וקומפלה רק עבור ARM – הביצועים יהיו גרועים עם צריכה כבדה של הסוללה והמעבד יתאמץ הרבה יותר כדי להמיר בינארי מ-ARM לאינטל.
- אם האפליקציה היא בינארית לגמרי וקומפלה עבור אינטל – היא תרוץ מהר ולעיתים יותר מהר ממה שמעבד ARM יכול להציע, אבל המחיר – הוא בביצועי הסוללה, צפו ל-20-30% פחות סוללה בהשוואה למעבדי ARM.
השקר של אינטל מתבטא בשיווק שאומר שרוב הזמן לא תרגיש נחיתה בביצועים, שאפליקציות תואמות ובקיצור אל תדאג, הכל בסדר – הנה ציפור!
ב-ARM הוציאו לאחרונה מסמך שבחן מנקודות שונות את ההבדלים בין ARM ל-X86 של אינטל, הן מבחינת אפליקציות שזמינות ל-2 המעבדים, הן מבחינת תואמות (אחת התוצאות המפתיעות – עליה של 3% בשנה האחרונה בתוכנות שרצות על מעבדי ARM ולא רצות על מעבדי אינטל, גם עם תואמות בינארית). נכון, המסמך עצמו אינו ממש אובייקטיבי אך הנקודות שהמסמך מעלה שם (גם כשלא מדובר באנדרואיד אלא Windows RT לדוגמא) מראים תמונה ברורה: אם הסוללה חשובה לך כך שלא תצטרך לרוץ לשקע כל כמה שעות, אם חשוב לך תאימות כך שכל אפליקציה שתתקין – תרוץ בצורה מיטבית, אז סמארטפון או טאבלט מבוסס מעבד אינטל אינו מוצר שמומלץ לך לרכוש.
ועוד נקודה שהמסמך בקישור לעיל לא מתייחס אליו אך חשוב שאתם תדעו: פיתוח אפליקציית אנדרואיד, בין אם בצורה של Native Binary או JAVA – כולל התאמות לתצורות מכשירים פופולאריות (סמארטפון/טאבלט/פאבלט) לוקח זמן ומשאבים. כרגע זה לוקח יותר מאשר לכתוב לאייפון (שוב, מבחינת עיצוב UX) אבל עוד חודשיים המצב גם עם אפל ישתנה (חכו להכרזות ב-WWDC הקרוב) ורוב מוחלט של החברות פשוט לא מוכנים להשקיע עוד משאבים בקימפול האפליקציות לאינטל אם זה דורש השקעה (כמו במקרים של אפליקציות בינאריות). השוק עצמו לא דורש זאת, אז גם אותן חברות עושות מינימום ואם יש בעיה עם קימפול ל-X86 אז הן פשוט מורידות אותו בשורת הקומפילציה ומוציאות גירסת ARM לאפליקציה. הרבה אפליקציות רצות נהדר על מעבדי אינטל, אבל אף פעם אינך יודע אם האפליקציה שאתה בדיוק צריך כרגע לבצע מטלה מסוימת – תהיה תואמת או לא ואם היא תרוץ בצורה טובה או לא. אתה אוהבת הפתעות?