למרות שכנראה השתמשת במכשיר עם מעבד AArch64 בפנים, אולי אתה לא יודע מה זה אומר. הנה מה שאתה צריך לדעת.
יש הרבה CPU ארכיטקטורות שם בחוץ, כשהגדולים שבהם x86 ו זְרוֹעַ. אחרי שאמרתי את זה, AArch64 כנראה טס מתחת לרדאר שלך. אפילו חובב הטכנולוגיה הנקרא למדי לא שמע על זה מעולם, למרות העובדה שהוא קיים במיליוני מכשירים. ובכן, העניין הוא ש-AArch64 אינו מסתורי כל כך כמו שהוא מונח טכני מאוד מבלבל. הנה מה שאתה צריך לדעת על AArch64.
AArch64 הוא ARM64, בערך
מקור: זרוע
בקיצור, AArch64 הוא השם הרשמי לארכיטקטורת ערכת ההוראות של Arm (ISA) של 64 סיביות שהוצגה עם עדכון Armv8-A. זה כמעט תמיד מתייחס ל- AArch64. לא ברור בדיוק למה משתמשים ב-ARM64 לעתים קרובות במקום AArch64, אבל נראה שחלק מהבלבול נובע משני מקומות. חלק מזה נובע מכך שהסיומת של 64 סיביות של x86 היא x86-64, כך שמטבע הדברים הרחבת 64 סיביות של ARM צריכה להיות ARM64. נראה שאפל בהחלט חושבת כך והתייחסה ל-AARch64 כ-ARM64 עד 2014. עבור רוב האנשים, "AArch64 הוא ARM64" הוא הסבר מספק מאוד.
אם אתה רוצה להיות ממש טכני, AArch64 הוא לא ה-ISA, אלא ה-ISA מצב ביצוע המאפשר למעבדי ARM להשתמש (ולהשתמש רק) בערכת ההוראות A64 של ARMv8 ISA, שהוצגה לראשונה עם ארכיטקטורת Armv8-A. אם זה נשמע מבלבל, זה בגלל שזה כן. גם אם אתה מכיר את ארכיטקטורת המחשב, זה יכול להיות קשה להבנה, אז אני הולך להסביר את זה צעד אחר צעד.
אז מבחינה טכנית, AArch64 היא מדינה, לא ISA, אבל לאף אחד לא אכפת, אפילו לא Arm עצמו.
ARM היא משפחה של ISAs קשורים, ולמרות ש- ISAs שונים מרמזים בדרך כלל על אי התאמה, זה לא לגמרי נכון. גרסאות שונות של ARM ISA נקראות ARMv1, ARMv2 וכן הלאה, אבל ISAs אלה מכילים מה שהם בעצם תת-ISAs: A-profile, M-profile ו-R-profile. ההבדל הבסיסי בין תתי-ISA אלה הוא הכמות המינימלית של הוראות שכל אחד משתמש בו, כאשר פרופיל A משתמש הכי הרבה ופרופיל M משתמש הכי פחות. אז, ARM ISA מחולקת לגרסאות בודדות כמו ARMv8, ואז גרסאות אלו מחולקות עוד יותר למימושים שונים של ISA.
Armv8-A הוא היישום הראשוני בפרופיל A של ARMv8 ISA, שהוסיף שני דברים חדשים: AArch32 ו- AArch64. אלה מכונים מצבים או מצבים, והם מאפשרים למעבדי ARM לגשת למערכות הוראות שונות, כאשר AArch32 מכיל את הוראות 32 סיביות A32 ו-T32, ו-AArch64 מכיל את 64 סיביות A64 הוראות. לדוגמה, אם מעבד נמצא כעת במצב AArch64 ורוצה להשתמש בהוראות A32, עליו לשנות את מצבו ל AArch32. בנוסף, במצב AArch64, שני האוגרים של 32 סיביות ו-64 סיביות נגישים, בעוד שבמצב AArch32 ניתן להשתמש רק באוגרי 32 סיביות. החלק המבלבל ביותר בכל זה הוא שכל הדברים הללו מכונים באופן משתנה כ-ISAs ואפילו Arm (החברה המפתחת את ARM ISA) אשמה בכך.
אבל אם אנחנו סופר טכניים, זה איך זה בעצם: הגרסה השמינית של ARM ISA, ARMv8, יושמה לראשונה עם Armv8-A, שמכיל שני מצבים שנקראים AArch32 ו- AArch64. כאשר מעבד נמצא במצב AArch64, הוא יכול לבצע הוראות A64 של 64 סיביות. אז מבחינה טכנית, AArch64 היא מדינה, לא ISA, אבל לאף אחד לא אכפת, אפילו לא Arm עצמו.
מדוע גם 32 סיביות וגם 64 סיביות חשובות עבור ARM
אז AArch64 הוא למעשה די מסובך, והצורך להחליף מצבים רק כדי להשתמש בהוראות של 32 סיביות ו-64 סיביות נראה מסורבל. העניין הוא שתמיכה ב-32 סיביות וגם ב-64 סיביות הייתה חשובה מכדי לוותר עליה, אז זה פשוט חייב להיות ככה. זה באמת הסתכם בשתי בעיות עיקריות: הצורך לתמוך בתוכנת 32 סיביות ישנות, ושאיפה למחשוב מודרני עם ביצועים גבוהים.
אם Arm לא כללה תמיכה מקורית עבור תוכנת 32 סיביות ב-ISA הראשון של 64 סיביות, זה יכול היה להיות אסון כי, במילים פשוטות, אף אחד לא רוצה לשכתב קוד. אם ARMv8 דרש מכולם לכתוב תוכנה חדשה מאפס, זה היה יכול להכניס את ה-ISA לספירלת מוות, שבה אף אחד לא מייצר או קונה מכשירי ARMv8 בגלל חוסר תוכנה, ואז מפתחים לא מייצרים אפליקציות בגלל מחסור במשתמשים, עד אינסוף עד ש-Arm צריך לקרוא לזה מתפטר. אז תמיכת 32 סיביות לא הייתה ניתנת למשא ומתן.
מצד שני, גם אי הטמעת מחשוב 64 סיביות לא הייתה אופציה. אינטל ו-AMD, החברות שמאחורי x86, השתמשו בארכיטקטורות של 64 סיביות מאז תחילת שנות ה-2000 עבור מעבדים מדהימים, אם כי בזמנו לא הייתה קריאה לשבבי ARM של 64 סיביות מכיוון שטלפונים לא היו צריכים אותם. אבל המצאת הסמארטפון שינתה הכל, וכולם רצו שהטלפונים שלהם יעשו יותר דברים. לא רק שתמיכה ב-64 סיביות תעזור לסמארטפונים להפוך לחזקים יותר, אלא שהיא גם פתחה את הדלת לחברות לייצר שבבי ARM עבור שווקים שבהם x86 שלטו באופן מסורתי, כמו מחשבים ניידים ו שרתים.
בעיקרון, כל בלבול השמות הזה נבע מכך ש-Arm הייתה צריכה לחדש את הטכנולוגיה שלה בתגובה לשינוי סדרי העדיפויות. אולי Arm לא היה צריך ליישם תמיכה של 64 סיביות בצורה זו, אבל זה קרה, וכך נוצר AArch64. למרות ש-AArch64 אינו ISA, כך רוב האנשים משתמשים במונח, לטוב ולרע.