חדשות היום

מעבד ARM® CortexTM-M0+ מציע הספק נמוך במיוחד

מאת: ג’וזף יו, ARM. מעבד Cortex-M0+ מבוסס על המעבד הפופולרי Cortex-M0 שיצא לשוק לפני כשלוש שנים. ה-Cortex-M0 סיפק צפיפות קוד מצוינת יחד עם נצילות אנרגיה מהטובות מסוגן בשטח סיליקון דומה לזה של מעבדי 8 ביט ו-16 ביט. מאז יציאתו לשוק, התגלה ה-Cortex-M0 כליבת המעבד של ARM בעלת קצב הרישוי המהיר ביותר שנראה עד כה, עם 50 רישיונות חדשים עד סוף 2011. מאז, ממשיכים צוותי התכנון ב-ARM לעמול ולעבוד בצמוד לשותפינו במטרה לבחון באופן רציף מה ואיך ניתן לשפר. עבודה זו הולידה את התפיסה של ה-“Flycatcher” (שם קוד של הפרויקט עבור Cortex-M0+).
שותפינו הדגישו מספר קריטריונים שכיחים ביישומים תובעניים אשר פתרונות המעבד הזמינים כיום בשוק אינם מספקים להם מענה מלא. אחת הדרישות הבולטות ביותר שעלתה הייתה הרצון להשיג צריכת הספק נמוכה עוד יותר מהקיים במקביל לנצילות אנרגיה משופרת. כדי לעמוד בדרישות הללו עבר ה-Cortex-M0+ תכנון מלא מחדש תוך שמירה על מערך פקודות מלא ועל יכולת ניפוי שגיאות. זו הפעם הראשונה בה ARM יוצרת תכנון מעבד עם צינור דו-שלבי, והיא ניצלה את ההזדמנות כדי לשפר את הביצועים במקביל לשמירה על אותה תכיפות גישה מרבית. התוצאה הסופית שהתקבלה הביאה לשביעות רצונם של צוותי הפיתוח בדיקת ניתוח עם הרצה של לולאות Dhrystone הראתה, כי המעבד החדש Cortex-M0+ צורך רק שני שלישים מההספק הדינמי של המעבד הקודם, ה-Cortex-M0.
צמצום צריכת ההספק של המעבד עצמו הוא ללא ספק גורם חשוב, אך נשארה שאלה פתוחה אחת: מה באשר לצריכת ההספק ברמת המערכת? ובכן, המעבר לתכנון של צינור עיבוד נתונים דו-שלבי אפשר הקטנה של “צל ההסתעפות” (branch shadow) של המעבד. כתוצאה מכך יש גם ירידה במספר הגישות לזיכרון ההבזק. כיוון שההספק של זיכרון ההבזק הוא לעתים קרובות התורם המרכזי לצריכת ההספק במיקרו-בקר, הרי שכל הפחתה במספר הגישות להספק תשפיע השפעה ישירה על צריכת ההספק הכוללת.

תכונות ברמת המערכת
מעבד Cortex-M0+ תומך בממשק I/O חדש המאפשר גישות עם מחזור יחיד, שמשמעותו – הוא מאפשר פעולות מהירות יותר של כניסת I/O. ממשק ה-I/O של המעבד הוא ממשק 32 ביט גנרי שאליו יכולות יצרניות המיקרו-בקר להוסיף התקנים היקפיים של כניסת I/O מתוצרתן. עם ממשק ה-I/O הזה יכול מעבד
ה-Cortex-M0+ לבצע גישות מהירות יותר להתקנים היקפיים בהשוואה לגישות של כל המיקרו-בקרים הפופולריים הקיימים היום. כיוון שממשק ה-I/O הוא חלק ממפת הזיכרון של המערכת, ניתן לגשת לרגיסטר ה-I/O שעל ממשק זה עם פוינטרים רגילים ב-C, ואין צורך בתכונות הרחבה ספציפיות של שפת C, כדוגמת סוגים מיוחדים של נתונים.
כיוון שהגישות ל-AMBA™ HAB-Lite ולממשק I/O במחזור יחיד יכולות להתבצע בו זמנית, הרי שהמעבד Cortex-M0+ מסוגל להביא את הפקודות הבאות תוך כדי הגישה ל-I/Os. תכונה זו מאפשרת השהיית גישות I/O של מחזור יחיד למשך כמה זמן שנדרש.
יישומים רגישים להספק יוכלו ליהנות גם הם משיפור זה באמצעות הרצה במהירות נמוכה יותר עבור אותה תכיפות של החלפת (toggling), או לחלופין באמצעות השלמת בקרת ה-I/O מהר יותר ולאחר מכן מעבר מהיר יותר למצב שינה.
Cortex-M0+ כולל תכונות מועילות נוספות שהיו קיימות במעבדים Cortex-M3 ו-Cortex-M4 אך לא היו זמינות בעבר במעבד Cortex-M0. לדוגמה, הוא תומך גם בפקודות עם רמה גבוהה של מיידיות (privileged) כמו גם בפקודות ללא הרשאות מיוחדות (unprivileged) ובנוסף, גם ביחידת הגנת זיכרון (MPU) הדומה לזו שהייתה במעבדים Cortex-M3 ו-Cortex-M4. ה-MPU היא רכיב מתכנת בעל שמונה אזורים מתכנתים ומערכת ההפעלה יכולה להשתמש ביחידה כדי ליצור כללי הרשאת גישה עבור כמה משימות יישום באורח דינמי במהלך זמן הרצה. מנגנון זה מאפשר לתכנון למנוע מצב שבו משימת יישום משחיתה שטח זיכרון המשמש משימות אחרות ואת הקרנל של מערכת ההפעלה.
בנוסף, תומך מעבד ה-Cortex-M0+ ברילוקציה של טבלת וקטור, ממש כמו המעבדים Cortex-M3 ו-Cortex-M4. תמיכה זו מקלה על ההקצאה מחדש של וקטורים חריגים בזמן ההרצה. כל התכונות הללו הן אופציות ניתנות להגדרה עבור מתכנני סיליקון. בתצורה המינימלית שלו, שטח הסיליקון של המעבד Cortex-M0+ זהה לזה של המעבד Cortex-M0.
חדשות טובות נוספות עבור חלק ממתכנני הסיליקון הן שניתן בקלות להשתמש במעבד החדש עם זכרונות הבזק של 16 ביט עם השפעה מינימלית על הביצועים או על תכנון המערכת. ניתן לבנות את תצורת ה-Cortex-M0+ כך שיחולל הבאת פקודות כגישות של 16 ביט במקום של 32 ביט. כיוון שמרבית הפקודות בארכיטקטורת ה-ARMv6-M הן של 16 ביט, המערכת עדיין יכולה לרוץ עם רמת ביצועים טובה מאוד.
ההתמקדות בשמירה על שטח סיליקון קטן מאוד מאפשרת לשותפינו להמציא פתרונות עם ממדים ממוטבים המותאמים לשוקי הצריכה והבטיחות, כמו אקטואטורים/חיישנים קטנים באוטומציית מפעל, בתחום הרכב ובתחום הרפואה.

ניפוי שגיאות
תכונות חדשות נוספות נמצאות בתחום של תמיכת ניפוי שגיאות. מלבד תכונות ניפוי השגיאות שכבר היו קיימות במעבד Cortex-M0, ה-Cortex-M0+ תומך ב-Micro Trace Buffer המספק עקבת פקודות פשוטה. המתכנת מקצה חלק קטן
מה-SRAM של המערכת לשמש כחוצץ עקבות וה-MTB מאחסן את המידע על זרימת הפקודות אל ה-SRAM השמור כחוצץ מעגלי. אחרי שהמעבד עוצר מפעילותו, למשל עקב נקודת עצירה (breakpoint), מנפה השגיאות מסוגל לאחזר את נתוני העקבה באמצעות חיבור ה-Serial Wire Debug () הפופולרי – המצריך שני פינים בלבד – ולאחר מכן לשחזר את ההיסטוריה האחרונה של הביצועים. בנוסף, יכול ה-MTB לתמוך בטריגרינג מסוג “one shot”.
ממשק ה-SWD במעבד Cortex-M0+ יכול לכלול, במידת הצורך, תכונה שנקראת Multi-drop Serial Wire. תכונה זו מאפשרת לכמה התקנים בעלי יכולת זו לחלוק ביניהם חיבור ניפוי שגיאות יחיד, גורם מועיל במיוחד כאשר בונים מערכות SoC מרובות ליבות.

 

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