ARM

**ARM** היא ארכיטקטורת סט פקודות למעבדים מסוג RISC, שמפותחת על ידי חברת Arm Holdings. החברה מתכננת את המעבדים ומוכרת רישיונות שימוש בהם ליצרניות שבבים. הם משמשים כיום בדרך כלל כליבות של מערכות על שבב (שיכולות לכלול גם ליבות ARM נוספות כבקרים משניים).

השם הוא במקורו ראשי תיבות של Acorn RISC Machine (מכונת ה-RISC של Acorn), מכיוון שהוא החל את חייו כמיזם של חברת Acorn הבריטית. בהמשך שונה פירוש ראשי התיבות ל-Advanced RISC Machine.

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

היו כמה דורות של עיצוב ARM. ARM1 המקורי השתמש במבנה פנימי של 32 סיביות אך היה לו מרחב כתובות של 26 סיביות שהגביל אותו ל-64 מגה-בייט של זיכרון ראשי. מגבלה זו הוסרה בסדרת ARMv3, בעלת מרחב כתובות של 32 סיביות, וכמה דורות נוספים עד ARMv7 נותרו ב-32 סיביות. בשנת 2011 פורסמה ארכיטקטורת ARMv8-A, שהוסיפה תמיכה במרחב כתובות של 64 סיביות ואריתמטיקה של 64 סיביות, עם סט פקודות חדש באורך קבוע של 32 סיביות. חברת ARM גם הוציאה סדרה של סטי פקודות נוספים לכללים שונים; הרחבה "Thumb" מוסיפה פקודות של 32 וגם 16 סיביות לצפיפות קוד משופרת, בעוד ש-Jazelle הוסיפה הוראות לטיפול ישיר ב-Java bytecode. שינויים עדכניים יותר כוללים הוספת ריבוי תהליכונים סימולטני (SMT) לשיפור הביצועים או חסינות מתקלות.

מבחר מעבדים מבוססים על ליבת ARM:
* סדרת OMAP של טקסס אינסטרומנטס
* סדרת טגרה של חברת NVIDIA
* סדרת Exynos של חברת סמסונג
* סדרת סנאפדרגון של חברת קוואלקום
* StrongARM - במקור של DEC, בהמשך של אינטל
* XScale - במקור של אינטל, נמכר לחברת מארוול
* Hummingbird של חברת סמסונג
* סדרות A, T ,S ו-M של חברת אפל

## אופן פעולה
פקודות תקניות במעבדי ARM עדכניים הן באורך קבוע של 4 בתים.

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

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

## היסטוריה
### BBC Micro
העיצוב הראשון והמוצלח ביותר של Acorn Computers היה המחשב האישי BBC Micro, שהוצג בדצמבר 1981. זה היה ממחשב המבוסס על מעבד MOS Technology 6502, אך עבד בביצועים כפולים בערך מעיצובים מתחרים כמו Apple II, בשל השימוש שלו בזיכרון דינמי בעל גישה אקראית (DRAM) מהיר יותר. DRAM טיפוסי של התקופה פעל בכ-2 מגה-הרץ; Acorn הגיעה לעסקה עם היטאצ'י לאספקה של רכיבים מהירים יותר של 4 מגה-הרץ.

באותה תקופה מחשבים חלקו בדרך כלל זיכרון בין המעבד לאוגר המסגרות (framebuffer), מה שאפשר למעבד לעדכן במהירות את תוכן המסך ללא צורך לבצע קלט/פלט נפרד. כיוון שתזמון תצוגת הווידאו הוא מדויק, לחומרת הווידאו הייתה צריכה להיות עדיפות בגישה לזיכרון זה. בגלל מוזרויות בעיצוב ה-6502, המעבד השאיר את הזיכרון ללא נגיעה במשך חצי מהזמן. לפיכך, על ידי הפעלת ה-CPU ב-1 מגה-הרץ, מערכת הווידאו יכלה לקרוא נתונים במהלך זמני השבתה אלה, תוך שהיא תופסת את רוחב הפס הכולל של 2 מגה-הרץ של ה-RAM. ב-BBC Micro, השימוש בזיכרון RAM של 4 מגה-הרץ אפשר להשתמש באותה טכניקה, אך במהירות כפולה. זה אפשר לו להתעלות על כל מכונה דומה בשוק.

### Acorn Business Computer
1981 הייתה גם השנה שבה הוצג המחשב האישי של IBM. באמצעות מעבד אינטל 8088, מעבד 16 סיביות בהשוואה לעיצוב 8 סיביות של ה-6502, הוא הציע ביצועים כלליים גבוהים יותר. הצגתו שינתה את שוק המחשבים השולחניים באופן קיצוני: מה שהיה בעיקרו שוק תחביבים ומשחקים שהתפתח בחמש השנים הקודמות החל להשתנות לכלי עסקי שבו המחשבים המוקדמים של 8 סיביות פשוט לא יכלו להתחרות. גם מעבדים חדשים יותר של 32 סיביות הגיעו לשוק, כמו מוטורולה 68000 ו-נשיונל סמיקונדקטור NS32016.

Acorn החלה לשקול כיצד להתחרות בשוק זה והגדירה מחשב חדש בשם Acorn Business Computer, שנועד להיות מחשב בעל ביצועים פי עשרה מה-BBC Micro, אך באותו מחיר. במקביל, ההשקה של אפל ליזה הביאה את מושג ממשק המשתמש הגרפי (GUI) לקהל רחב יותר והציעה שהעתיד שייך למכונות עם ממשק משתמש גרפי. אפל ליזה, לעומת זאת, עלה 9,995 דולר, מכיוון שהיה עמוס בשבבי תמיכה, כמויות גדולות של זיכרון וכונן דיסק קשיח, שכולם היו יקרים מאוד.

המהנדסים החלו ללמוד את כל עיצובי המעבד הזמינים. המסקנה שלהם לגבי העיצובים הקיימים של 16 סיביות הייתה שהם הרבה יותר יקרים ועדיין היו "קצת מטומטמים", ומציעים ביצועים רק מעט גבוהים יותר מעיצוב ה-BBC Micro שלהם. הם גם דרשו כמעט תמיד מספר רב של שבבי תמיכה אפילו ברמה זו, מה שהעלה את עלות המחשב בכללותו. מערכות אלו פשוט לא יגיעו ליעד התכנון. הם שקלו גם את העיצובים החדשים של 32 סיביות, אבל אלה עלו אפילו יותר והיו להם אותן בעיות עם שבבי תמיכה. לדברי סופי וילסון, כל המעבדים שנבדקו באותה תקופה ביצעו בערך אותו הדבר, עם רוחב פס של כ-4 Mbit/שנייה.

שני אירועים מרכזיים הובילו את Acorn בדרך ל-ARM. אחד מהם היה פרסום סדרה של דוחות מאוניברסיטת קליפורניה בברקלי, שהציעו שעיצוב שבב פשוט יכול בכל זאת לקבל ביצועים גבוהים במיוחד, גבוהים בהרבה מהעיצובים האחרונים של 32 סיביות בשוק. השני היה ביקור של סטיב פורבר וסופי וילסון בבחברת Western Design Center, שהפכה ליורשת של צוות MOS והציעה גרסאות חדשות כמו WDC 65C02. צוות Acorn ראה תלמידי תיכון מייצרים תכנוני שבבים על מחשבי Apple II, מה שהציע שכל אחד יכול לעשות זאת. לעומת זאת, ביקור בחברת עיצוב אחרת שעבדה על מעבד מודרני של 32 סיביות חשף צוות עם יותר מתריסר חברים שכבר היו בגרסה H של העיצוב שלהם ובכל זאת הוא עדיין הכיל באגים. זה חיזק את החלטתם בסוף 1983 להתחיל את עיצוב המעבד שלהם, Acorn RISC.

### ARM1
250px|ממוזער|שמאל|ARM1 כמעבד שני במחשב BBC Micro
המיזם לפיתוח מעבד RISC הושק באוקטובר 1983, לאחר שסופי וילסון הוכיחה את כדאיותו. Acorn בחרה בחברת VLSI Technology כ"שותפת הסיליקון", כיוון שהם היו מקור לשבבי ROM ושבבים מותאמים אישית עבור Acorn. Acorn סיפקה את העיצוב ו-VLSI סיפקה את התכנון והייצור. הדוגמאות הראשונות של המעבד פעלו כראוי כאשר התקבלו ונבדקו לראשונה ב-26 באפריל 1985. המעבד קיבל את השם ARM1, ופעל במהירות 6 מגה-הרץ.

יישום ראשון היה כמעבד שני עבור ה-BBC Micro, שם הוא עזר בפיתוח תוכנת סימולציה לסיום פיתוח שבבי התמיכה (VIDC, IOC, MEMC), והאיץ את תוכנת ה-CAD ששימשה בפיתוח ARM2. לאחר מכן וילסון כתבה מחדש את המהדר BBC BASIC בשפת הסף של ARM1. הידע המעמיק שנצבר מעיצוב מערך ההוראות אפשר לקוד להיות צפוף מאוד, מה שהפך את ARM BBC BASIC למבחן טוב במיוחד עבור כל אמולטור ARM.

### ARM2
התוצאה של הסימולציות על לוחות ARM1 הובילה בשלהי 1986 להצגת תכנון ARM2, שפועל במהירות של 8 מגה-הרץ, והגרסה של 1987 במהירות של 10 עד 12 מגה-הרץ. שינוי משמעותי בארכיטקטורה הבסיסית היה תוספת של מכפיל בות' , בעוד שקודם לכן הכפל התבצע בתוכנה. מצב חדש של בקשת פסיקה מהירה, בקיצור FIQ, אפשר החלפת אוגר (מחשבים)ים 8 עד 14 כחלק מהפסיקה עצמה. משמעות הדבר היא שבקשות FIQ לא היו צריכות לשמור את האוגרים שלהן, מה שהאיץ את הטיפול בהן.[38]

לפי מדד Dhrystone, ה-ARM2 נתן בערך פי שבעה מהביצועים של מערכת טיפוסית מבוססת 68000 ב-7 מגהרץ כמו קומודור אמיגה או מקינטוש SE. הוא היה מהיר פי שניים מאשר אינטל 80386 שרץ במהירות של 16 מגה-הרץ, ובערך באותה מהירות כמו מחשב-על VAX-11/784 מרובה מעבדים. המערכות היחידות שניצחו אותו היו תחנות העבודה מבוססות Sun SPARC ו-MIPS R2000 מבוסס RISC. יתרה מכך, מכיוון שה-CPU תוכנן לקלט/פלט מהיר, הוא ויתר על רבים משבבי התמיכה שנדרשו במחשבים אלה; במיוחד, הוא היה חסר כל בקר ייעודי לגישה ישירה לזיכרון (DMA) אשר נמצא לעיתים קרובות בתחנות עבודה. המערכת הגרפית הפכה גם היא לפשוטה יותר, בהתבסס על אותה מערכת של הנחות יסוד לגבי זיכרון ותזמון. התוצאה הייתה עיצוב פשוט בצורה דרמטית, המציע ביצועים דומים לתחנות עבודה יקרות אך במחיר דומה למחשבים שולחניים.

ה-ARM2 כלל אפיק נתונים של 32 סיביות, מרחב כתובות של 26 סיביות ו-27 אוגרים של 32 סיביות, מתוכם 16 נגישים בכל עת. ARM2 כלל 30,000 טרנזיסטורים בלבד, בהשוואה לדגם ה-68000 הישן יותר של מוטורולה עם כ-68,000 טרנזיסטורים. חלק ניכר מהפשטות הזו הגיע מהיעדר מיקרוקוד, המייצג כרבע עד שליש מהטרנזיסטורים של ה-68000, ומהיעדר (כמו רוב המעבדים של היום) מטמון CPU. פשטות זו אפשרה ל-ARM2 צריכת חשמל נמוכה ואריזה תרמית פשוטה יותר, אך עם זאת מציע ביצועים טובים יותר מאשר בני תקופתו, 1987, IBM PS/2 דגם 50, אשר השתמש בתחילה ב-אינטל 80286, שהציע 1.8 MIPS במהירות של 10 מגה-הרץ, ומאוחר יותר ב-1987, שני ה-MIPS של ה-PS/2 70, עם Intel 386 DX במהירות של 16 מגה-הרץ.

הבא בסדרה, ARM3, נוצר עם מטמון של 4 KB, אשר שיפר עוד יותר את הביצועים. אפיק הכתובות הוארך ל-32 סיביות ב-ARM6, אך קוד התוכנית עדיין היה צריך להיות בתוך 64 מגה-בייט הראשונים של הזיכרון במצב תאימות של 26 סיביות, עקב הסיביות השמורות לדגלי המצב.

### ARM6
בסוף שנות ה-80 אפל ו-VLSI Technology החלו לעבוד עם Acorn על גרסאות חדשות יותר של ליבת ARM. בשנת 1990 הוציאה Acorn את צוות העיצוב לחברה חדשה בשם Advanced RISC Machines, שהפכה ל-ARM Ltd כאשר חברת האם שלה, Arm Holdings, נסחרה ב-1998 בבורסה לניירות ערך בלונדון ובנאסד"ק. המיזם החדש של אפל-ARM התפתח בסופו של דבר ל-ARM6, שיצא בתחילת 1992. אפל השתמשה ב-ARM610, המבוסס על ARM6, כבסיס למחשב כף היד אפל ניוטון.

### רישיונות ראשונים
בשנת 1994 השתמשה Acorn ב-ARM610 כיחידת העיבוד המרכזית (CPU) במחשבי RiscPC שלה. DEC קיבלה רישיון לארכיטקטורת ARMv4 ויצרה את המיקרופרוססור StrongARM. ב-233 מגה-הרץ, המעבד הזה צרך ואט אחד בלבד (גרסאות חדשות יותר צרכו הרבה פחות). פיתוח זה הועברה מאוחר יותר לאינטל כחלק מהסדר תביעה, ואינטל ניצלה את ההזדמנות כדי להשלים את קו i960 שלה עם StrongARM. מאוחר יותר פיתחה אינטל מימוש משלה עם ביצועים גבוהים בשם XScale, אותו מכרה מאז למארוול טכנולוגיות. מספר הטרנזיסטורים של ליבת ARM נשאר זהה למעשה לאורך כל השינויים הללו; ל-ARM2 היו 30,000 טרנזיסטורים, בעוד ש-ARM6 גדל רק ל-35,000 טרנזיסטורים.

### נתח שוק
בשנת 2005 כ-98% מכלל הטלפונים הניידים שנמכרו השתמשו במעבד ARM אחד לפחות. בשנת 2010 יצרני שבבים המבוססים על ארכיטקטורות ARM דיווחו על משלוחים של 6.1 מיליארד מעבדים מבוססי ARM, המייצגים 95% מהסמארטפונים, 35% מהטלוויזיות הדיגיטליות והממירים ו-10% מהמחשבים הניידים. בשנת 2011 ארכיטקטורת ARM של 32 סיביות הייתה הארכיטקטורה הנפוצה ביותר במכשירים ניידים והפופולרית ביותר של 32 סיביות במערכות משובצות מחשב. בסוף שנת 2013 ציינה ARM ייצור מצטבר, מאז 1993, של 50 מיליארד שבבים מבוססי ARM, מתוכם יוצרו 10 מיליארד בשנת 2013, ושבבים אלה נמצאים בכמעט 60 אחוז מהמכשירים הניידים בעולם.

## קישורים חיצוניים

* 

## הערות שוליים

קטגוריה:מעבד