מיקרו-בקרים בני 8 סיביות הם עדיין הבחירה המובילה הודות לעיבוד השיתופי

image_pdfimage_print

המיקרו-בקר בן 8 הסיביות הופיע לראשונה בשוק רק לפני 40 שנה. מהנדסים הבחינו במהירות ביתרונות שהוא מביא עימו. כמכשיר יחיד שהכיל מיקרו-מעבד מלא, זיכרון, טיימר ויציאות I/O, הוא פישט את עץ המוצר (BoM) ואת עיצובם של מוצרים אלקטרוניים רבים. המיקרו-בקר מצא את דרכו במהרה אל תוך מקלדות מחשב, בעוד הנגזרות והמתחרים שלו התפשטו על פני מספר עצום של מערכות משובצות בעשורים הבאים.

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

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

נראה שמבחינת החומרה, השימוש במערכת הפעלה כדי לאפשר ביצוע של מספר משימות שונות יחדיו על גבי מעבד יחיד בעל ביצועים גבוהים, היא הגישה הפשוטה ביותר. אך גישה זו היא כמעט תמיד בלתי יעילה מבחינת אנרגטית, משום שחילופי הנתונים בין המערכת לפלט ולקלט שלה מתרחשים לעתים קרובות בקצב הרבה יותר נמוך מאשר בתפוקת השיא של מעבד יוקרתי. כאשר מתקיימים פרוטוקולי I/O, מעבד בן 32 סיביות או 64 סיביות המסוגל לפעול במהירות של 1 מגה-הרץ או יותר חייב להמתין מחזורים רבים עבור כל בית או מילה חדשים שיופיעו. אחת הדרכים להימנע מתשאול היא להשתמש בפסיקות. כך המעבד יכול להמשיך בעבודת הליבה בעוד שכל תנועת I/O נמצאת בבדיקה, אך הצורך לדחוף ולהקפיץ ערכים למחסנית המערכת עם כל החלפת הקשר גורם למחזורים רבים של תקורה לאחר כל פסיקה.

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

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

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

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

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

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

ארכיטקטורת שיתוף הפעולה אינה נעצרת בליבת המעבד. לעיתים קרובות ישנם מצבים שבהם אין צורך בגמישות של ביצועי התוכנה כדי לטפל בחלק הארי של האירוע החיצוני אותו המערכת מזהה. לדוגמה, במקרה של רמקול חכם, המעבד אינו צריך לקבוע אם לצליל נכנס יש מאפייני דיבור אם המיקרופון קולט רק רעשי רקע ברמה נמוכה. ציוד היקפי עצמאי (CIP) יכול לבצע פעולות באופן עצמאי בליבת המעבד, כגון השוואות של קלטים אנלוגיים מול רמות ייחוס. לדוגמה, אם האמפליטודה של אות שנקלט במיקרופון עולה על הסף שנותח על ידי כלי השוואה, המעבד עשוי להתעורר.

איור 1 - ציוד היקפי עצמאי

איור 1 – ציוד היקפי עצמאי

בהתאם למיקרו-בקר, CIPs מספקים מגוון של ציוד היקפי אינטליגנטי הניתן להגדרה, אשר מיישם לוגיקה משולבת, פונקציות מצב ומדידת זמן אותן ניתן לשלב כדי להטמיע בקרת מנוע, רצף הספק, אפנון נתונים ואיתות מותנה ללא התערבות ישירה של ליבת המעבד. בהתקנים כגון ATmega4809, המציעים בקרי לוגיקה מותאמים אישית הניתנים להגדרה (CCL), ניתן לספק את ה-ADC שבשבב עם גורמים מפעילים הניתנים לתכנות ועם פונקציות מונחות מצב אחרות שמורידות עומס של משימות נוספות ממעבד הליבה.

במקרה שמודול ADC2 נמצא במספר מיקרו-בקרים בני 8 סיביות, כגון ה-PIC16F18446, החומרה יכולה לבצע פונקציות עיבוד אותות עבור אותות דיגיטליים, כגון סינון ממוצע וסינון נמוך. כך נמנע מהמערכת להגיב לרעשים קצרים ולתקלות שמע, בנוסף היא מבצעת קדם-עיבוד שימושי כאשר יש צורך להעריך אם יש תוכן דיבור באות שהתקבל מה-ADC. ב-ADC2 משולבות גם תכונות חומרה כדי לפשט את החישה של קיבולי לוחות במגע, בהם נדרשת בדרך כלל רמה גבוהה של עיבוד תוכנה.

 איור 2 - PIC16F18446 תרשים בלוק

איור 2 – PIC16F18446 תרשים בלוק

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

מיקרו-בקרים המבוססים על ארכיטקטורה בת 8 סיביות מתאימים יותר ליישומים מבוססי I/O וליישומים מונחי אירועים בדרכים אחרות. משימות I/O דיגיטליות רבות פועלות ברמת סיבית ותת-סיבית מעבדים בעלי רוחב מילים גבוה יותר נוטים להיות פחות יעילים בטיפול בסוגי נתונים אלה, הם מחייבים תנועה של מילות נתונים שלמות לרשומות וממנה ושימוש במסיכות סיביות מורכבות כדי לתפעל את התוכן הנכון. עם עיצוב עבור פונקציות כגון ריטוט מתג מכני  של קלט כפתור או ייצור אותות PWM למנועי הנעה, מעגלי וספקי כוח, מיקרו-בקרים בני 8 סיביות מספקים את הרמה המתאימה של פונקציונליות עבור יישומים שאינם דורשים מספר רב של חישובים בין כל שלב.

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

השימוש בעיבוד שיתופי עלול להגביר את מורכבות העיצוב משום שעל המפתח להביא בחשבון את הסינכרון בין מספר רב של ליבות שיתופיות של המעבד לבין ציוד היקפי חכם. עם זאת, כלים כגון מגדיר הקודים MPLAB מבית Microchip (MCC) מטפלים בניהול הנדרש ברמת הקושחה ומעניקים פתרונות המתאימים לסוגים רבים של יישומים, כגון קישוריות, בקרת מנוע וטיפול בחשמל.

איור 3 –  מגדיר הקודים MPLAB

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

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