חדשות היום

העולם עובר למעבדי 32 ביט, אל תישארו מאחור!

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

עם כל פרויקט חדש יש שאלות שעולות תמיד: מה אנו מפסידים בכך שאנו ממשיכים להשתמש במערכות של 8bit? מה באמת נקבל משימוש בארכיטקטורה של 32bit? והאם כעת, שעה שהתקני 32bit מתחילים להוביל במכירות של יחידות מיקרובקרים (MCU), האם זה הזמן לעבור על מנת שלא נשאר מאחור?
למרבה המזל, מה שמרגש בתעשייה שלנו הוא שלעולם איננו מפסיקים להמציא. עם ליבות כמו Cortex®-M0+ של ®ARM, שכמותן אפשר למצוא בהתקנים של ®Freescale, מעבדי 32bit הגיעו לנקודה שבה הם יכולים להתחרות בנקודות החוזקה של המיקרובקרים ב-8/16bit, ולספק יתרונות מרובים שהופכים את המעבר לכדאי ביותר. ליבת Cortex-M0+ תוכננה במיוחד כדי להפוך את המעבר למושך יותר מאי פעם, ולאפשר קפיצת מדרגה לפרוייקטים עם היכולת של 32bit.
מדוע לעבור ל-32bit?
לו סטודנט טרי להנדסה היה נשאל מדוע כדאי לעבור מ-8bit ל-32bit, ייתכן שהיה עונה את התשובה הברורה מאליה: בארכיטקטורה זו יש פי 4 סיביות, ותמיד טוב יותר כשיש יותר סיביות. במציאות התשובה אינה כה פשוטה, אך קיימות סיבות רבות מדוע השימוש במיקרובקרים ב-32bit הגיוני, אפילו עבור פרויקטים “מסורתיים” של 8 ו-16bit.

ביצועים גבוהים יותר
המעבר ל-32bit יכול לספק ביצועים לכל MHz – פי 2-40 יותר – מאשר בארכיטקטורות של 8 ו-16bit המשמשות כיום. ניתן לקבל עיבוד מתמטי מהיר יותר בהרבה וכפל של 32bit במחזור פעולה יחיד. ויש גם פנייה ל-I/O במחזור יחיד עבור אמולציה של פרוטוקולי תקשורת בתוכנה.
כל היכולות האלה פותחות בפני המשתמש עולם חדש של אפשרויות עם מחסניות תוכנה (®USB, Bluetooth, וכיו”ב), ועם מערכות הפעלה לזמן אמת (RTOS), ממשקי משתמש (UI) מתקדמים ועוד הרבה מעבר לכך, עם יכולת עיבוד שעדיין לא נוצלה לצורך מימוש אפליקציית המשתמש.

נצילות אנרגיה גבוהה יותר
לליבת Cortex-M0+ יש גם נצילות גבוהה מאוד, והיא משיגה פי שניים Coremark®/mA יותר מאשר המתחרים ב-16bit. בשילוב עם ליבת Cortex-M0+ החזקה יותר, מערכת משובצת יכולה להשתמש בפחות אנרגיה, בכך שתוכל לסיים את ביצוע המשימות שלה בצורה הרבה יותר מהירה, ותחזור למצב שינה.
גם למצבי השינה יש יכולות מרשימות בתחום ההספק הנמוך, המגיעות אף לפחות מ-500nA כאשר הם נמצאים במצב ההספק הנמוך ביותר מבין תשעת מצבי ההספק שבמשפחת Kinetis® L של Freescale. הודות למודולים של התקנים היקפיים שמתוכננים בצורה חכמה, כפי שמצויים במשפחות Kinetis, המשתמש יכול כיום לבצע הרבה יותר פעולות מבלי להעיר את הליבה, ולחסוך בכך אף יותר הספק.
צפיפות קוד משופרת
האפשרות ששימוש במעבד של 32bit יוביל לגודל קטן יותר של הקוד נראית מנוגדת למחשבה אינטואיטיבית. עם זאת, ליבת Cortex-M0+ משתמשת בפקודות Thumb-2, שרבות מהן משתמשות ב-16bit בלבד בזיכרון ההבזק (flash). ועוד דבר שיש לזכור, בפועל, פקודות רבות במעבדי 8bit ארוכות יותר מ-8bit. כמו כן, כתלות ביישום, אפשר להחליף כמה מבין הפקודות ב-8bit בפקודה יחידה במיקרובקרים ל-32bit, כמו במקרה של הכפלת משתנים של 16bit המתואר באיור 2.
התוצאה היא שאפשר לשפר באופן משמעותי את צפיפות הקוד, על ידי מעבר לארכיטקטורה של 32bit תוך שימוש
ב-.

סקלביליות
כתיבה באסמבלי, התלויה בארכיטקטורה אחת מסוימת, של יצרן אחד מסוים בעולם של רכיבי 8bit, לא תגרור יותר עיכובים הנובעים משינויים בצרכי הפרויקט. זאת מפני שעבודה בקוד C עבור התקני 32bit במקום קוד אסמבלי מקצרת את זמני הפיתוח וניפוי השגיאות, והופכת את העברת הקוד להתקנים חדשים לקלה יותר מאי-פעם. ועם כל המיקרובקרים ל-32bit של ARM המפוזרים ברחבי העולם, המערכת הסביבתית (ecosystem) של התוכנה עצומה וממשיכה להתרחב.

ואולם,ישנה נטייה לחשוב שלמרות שכל האמור לעיל נשמע נפלא, עדיין ישנו הצורך בגודל הפיזי הקטן, במחיר הנמוך ובקלות השימוש שמקבלים ממיקרובקרים של 8/16bit. למרבה המזל, זהו עולם מלא וחדש עבור מיקרובקרים של 32bit בימים אלו.

גודל
כאשר הגדלים קטנים כמו 1.6mmx2.0mm, כפי שנמצא במשפחת Kinetis KL03 של Freescale, עובדה שהופכת אותם למיקרובקרים מבוססי ליבת ARM הקטנים ביותר בעולם, אפשר למצוא מיקרובקרים של 32bit בכמה מוצרים קטנים מאוד.

עלות
עם התקנים שמחירם מתחיל
ב- בלבד, מיקרובקרים של 32bit הינם הגיוניים לשימוש ביישומים שקודם לכן המחיר לא אפשר את השימוש בהם. ובזכות צפיפות קוד גבוהה יותר, ייתכן שיידרש פחות זיכרון הבזק (flash) ברכיב 32bit הנבחר לעומת הרכיב המתחרה שלו בארכיטקטורת 8/16bit.

מורכבות
באופן מפתיע, ארכיטקטורה של 32bit יכולה להיות פשוטה יותר באופן מעשי בכמה היבטים. עם מרחב כתובות של 32bit, אין צורך בשימוש בדפדוף (paging), ואפשר לגשת באופן ישיר לכתובות בזיכרון. ארכיטקטורה שלCortex-M0+ כוללת בקר פסיקות בעל תכונות מלאות, שמפשט את הטיפול בפסיקות. בכך שנוספו עוד מאגר זיכרון מעקב (trace buffer) על מנת להקל על ניפוי שגיאות, ורק 56 פקודות עבור אלו שמעונינים להמשיך ולהשתמש באסמבלי, “הקפיצה הגדולה” במעבר ל-32bit נראית פתאום כמו מעבר פשוט.

פיתוח עם 32bit
אחד היתרונות העיקריים של השימוש בליבת ARM של 32bit הוא הכמות העצומה של אפשרויות שימוש בחומרה ותוכנה הזמינות עבור הליבה, ואלו כוללות מגוון רחב ביותר של מהדרים (compiler) ושל כלים לניפוי שגיאות (debugger) שתואמים לה. שימוש חוזר בחומרה ותוכנה הופך לקל יותר ככל שפרוייקטים עוברים שדרוג בין ליבות, כמו המעבר מליבת Cortex-M0+ אל Cortex-M4 בעלת היכולות הרבות יותר. כמו-כן עם תאימות הפינים והמודולים במיקרובקרי Kinetis של Freescale ועם מאות נגזרות במשפחות הרבות, המעבר בין הנגזרות על פני עקומת הביצועים/גודל זיכרון, הופך לקל עוד יותר.
חברת Freescale מוסיפה לחבילת ה-enablement של 32bit גם כלי ליצירת קוד תוכנה (®Processor Expert) ומערכת ההפעלה לזמן אמת (RTOS) בשם
MQX™-Lite ובעזרתם היא מאפשרת להתחיל לעבוד במהירות ולהתקדם, עם פרוייקטים חדשים של 32bit. ה-Processor Expert הוא כלי ממשק גרפי (GUI) משלים, אשר יוצר מנהלי התקנים (דרייברים) בהתאמה אישית ומקצר באופן משמעותי את זמן הפיתוח של יצירת קוד.
מערכת ההפעלה לזמן אמת – MQX-Lite – היא גרסה מפושטת של מערכת ההפעלה לזמן אמת MQX הפופולרית, והיא תוכננה במיוחד עבור מיקרובקרים עם זיכרון קטן. מקורם של מנהלי ההתקנים של מערכת ההפעלה לזמן אמת ב-Processor Expert, ומאחר והיא בנויה כ-subset של מערכת ההפעלה לזמן אמת MQX המלאה, שדרוגים עתידיים לרכיבים חזקים יותר הופכים להיות פשוטים יותר. המערכת MQX-Lite מסופקת כהשלמה ל-Process Expert, ועבור אותם רכיבים הכוללים תמיכה ב-USB, אפשר לקבל כהשלמה גם מחסנית USB.

הצעד הבא
עכשיו, כשאתם מעוניינים לנסות את מה שיש ל-32bit להציע, כיצד תתחילו?
למרבה המזל יש בשוק מספר גדול של מעגלי פיתוח שמספקים פלטפורמות מצוינות להערכה של 32bit, ואפשר לרכוש אותם בעלות זניחה למדי. הפלטפורמה FRDM-KL05Z מצוינת להתנסות ראשונית מעמיקה בעולם של 32bit והיא תואמת אריזה לחלק מהתקני 8bit S08 של Freescale. הפלטפורמה FRDM-KL26Z מוסיפה תמיכה ב-USB ומודולי התקנים היקפיים מתקדמים יותר והפלטפורמה FRDM-KL46Z מתקדמת אף יותר ויש לה הן תמיכה ב-USB והן בתצוגת LCD סגמנטי. נוסף על כך, במקרה שיציאות וכניסות של 5V ועמידות חשמלית קריטיים ליישום, הפלטפורמה FRDM-KE04 תהיה הבחירה המתאימה למעגל הפיתוח.
כל ארבעת המעגלים, בעלי הגודל הקטן – כגודלו של כרטיס אשראי, מתאימים לליבות Cortex-M0+ ולשימוש עם Processor Expert, מערכת ההפעלה לזמן אמת MQX-Lite, עם מחסניות USB תואמות ועוד. בעזרת מעגל ניפוי השגיאות, שנקרא ™OpenSDA, הבנוי ישירות על המעגל, כבל USB פשוט מספק את כל יכולות ניפוי השגיאות, התקשורת הטורית ואת יכולות התכנות בזיכרון הבזק, אשר נדרשים להתחלת עבודה מהירה.
כל מעגלי הפיתוח הללו, בצד השורה השלמה של פלטפורמות הפיתוח ™Freedom של Freescale, תואמים את פיזור הפינים של מגני () ™Arduino ומספקים גישה קלה לפיני הכניסות והיציאות הדיגיטליים והאנלוגיים. מעגל הפיתוח להערכת חיישני MEMS היא דוגמה טובה לאפשרויות המוצעות, מפני שהוא מחברת פלטפורמת פיתוח Freedom מסוג FRDM-KL25Z של Freescale עם מגן (shield) להערכת חיישני MEMS מעליו, ומספקת למיקרובקר Kinetis L גישה למערך של חיישנים מהשורה הראשונה, לחקירת העולם שסביבו.
לאורך כל שלב הפיתוח, חשוב לשמור על קשר עם מהנדסים אחרים, וכאן קהיליית Freescale יכולה לספק תמיכה. ייתכן שהפתרון לבעיה שנתקלים בה במהלך הפיתוח כבר נמצא על ידי מהנדס אחר, וזה המקום שקהילות מקוונות יכולות להיות משאב מועיל.

העתיד של 32bit
הטכנולוגיה לא מפסיקה להתקדם והמגמה של התרחבות השימוש במיקרובקרים של 32bit ביישומים משובצים רק תואץ. עם ביצועיהם הגבוהים ביותר, נצילות ההספק המרשימה וצפיפות הקוד הטובה יותר, עכשיו הזמן לבצע את הצעד הראשון לעתיד טוב יותר ובהיר יותר ב-32bit עם משפחת ה-Kinetis.

Adi Shieber & Yan Vainter, Freescale Semiconductor

תגובות סגורות