לדלג לתוכן

ההבדל בין x86 ל-ARM - ולמה זה בכלל אמור לעניין אתכם

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

שתי פילוסופיות שונות לגמרי - CISC מול RISC

ארכיטקטורת x86, זו שמאחורי כמעט כל מחשב נייח ונייד עם מעבד אינטל או AMD, שייכת למשפחה שנקראת CISC, ראשי תיבות של Complex Instruction Set Computer. הרעיון המרכזי הוא פקודות מורכבות ובאורך משתנה, שכל אחת מהן יכולה לבצע כמה שלבים בפעולה אחת. זה מאפשר קוד קומפקטי יותר, אבל דורש חומרה מורכבת יותר כדי לפענח את הפקודות האלה.

לעומת זאת, ARM שייכת למשפחת RISC, Reduced Instruction Set Computer. הפילוסופיה כאן הפוכה: פקודות פשוטות יותר, כולן באורך קבוע, שכל אחת עושה דבר אחד בלבד וקטן. זה אומר שצריך יותר פקודות כדי לבצע את אותה המשימה, אבל כל פקודה בודדת פשוטה וזולה יותר לביצוע, וקל יותר לתכנן חומרה יעילה סביבה.

למה ARM כבשה את העולם הנייד

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

ואז זה עלה גם למחשבים ולשרתים

מה שהיה נכון רק לעולם הנייד לאורך שנים התחיל לחלחל גם למחשבים אישיים ולשרתים. הדוגמה המוכרת ביותר היא כמובן המעבר של אפל למחשבי מק עם צ'יפים מבוססי ARM משלה, מהלך שהוכיח שאפשר לקבל גם ביצועים גבוהים וגם יעילות אנרגטית ברמת מחשב נייח לכל דבר. באופן דומה, גם ספקי ענן גדולים החלו להציע היום שרתים מבוססי ARM לצד השרתים המסורתיים מבוססי x86, בדיוק בגלל אותם יתרונות של יעילות וצריכת חשמל.

מודל עסקי שונה לגמרי מאחורי הקלעים

מעבר להבדל הטכני, יש כאן גם הבדל עסקי מהותי. ARM לא מייצרת בעצמה שבבים ומוכרת אותם. היא מעצבת את ארכיטקטורת הפקודות ומעניקה רישיון לחברות אחרות, כמו אפל, קוואלקום, סמסונג ורבות נוספות, לבנות על בסיסה את הצ'יפים שלהן. x86, לעומת זאת, נשלטת כמעט לחלוטין על ידי שתי חברות בלבד, אינטל ו-AMD. זה הבדל שמשפיע ישירות על כמה גיוון ותחרות יש בשוק סביב כל אחת מהארכיטקטורות.

אז זה בכלל משנה למשתמש הרגיל

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

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

ואם אתם מתלבטים איזו ארכיטקטורה מתאימה למה שאתם רוצים ללמוד, אפשר תמיד לשאול בדיסקורד שלנו.

הצטרפו לקהילה בדיסקורד

לסיכום

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