חדשות היום

שילוב FPGA ב- PC מבוסס מערכת הפעלה לזמן אמת בשם Intime ובממשק PCI Express

מאת: אסף גליל ועידו אלפרוביץ

בשנים האחרונות גדל מספר המתכננים שבוחרים  מחשב דמוי  PC  לתוך מוצרי ה-  Embedded  שלהם. במקביל  כל יצרן שואף לכך שמוצריו יהיו יחודיים ותחרותיים.
מאמר זה יציג את אחד המענים האופטימליים ליצרנים אלה:
שילוב של מע”ה לזמן אמת  בשם  INtime  תוצרת חברת TenAsys, שרצה מעל מחשב  PC  (בתצורה של ביצועים גודל הספק  מחיר שמתאימים ליישום) ואליה מחובר בממשק  PCI Express  כרטיס שמכיל רכיב  FPGA  (תוצרת  Xilinx  או  Altera) – שאותו מתכנתים לממשקים הסציפיים ליישום.

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

קצת על טכנולוגית INtime
INtime הינה מערכת הפעלה לזמן אמת שרצה מעל קונפיגורציה “דמוית” PC. המערכת מספקת שתי תכונות עיקריות מעל יכולות  Windows:
דטרמיניסטיות – תגובה לפסיקות שמגיעות מהתקנים חיצוניים ב- Delay  קטן מאד. השונות של ה-  Delay  יכולה להיות פחות ממיקרו שניה אחת.
רובוסטיות – עמידות מפני בעיות תוכנה וחומרה על ידי מנגנוני הגנה תוכנתיים שמוטמעים במערכת ההפעלה.
הטכנולוגיה שעליה מבוססים הפתרונות התפתחה מ- Intellectual Property של אינטל בהשקעה בפיתוח של מאות שנות אדם משנות השמונים עבור טכנולוגית. X86   גירסא 1.0 של  INtime  הוכרזה כבר ב- 1997. כיום ישנם בעולם אלפי יישומים וכמה עשרות בארץ – שמשתמשים  בגירסאות מתקדמות ועשירות ביכולות של  INtime.
ניתן לבחור האם לרוץ לצידה של  Windows  (כל הגירסאות כולל 64 ביט – פרט ל-  Windows CE) או לרוץ כמע”ה עצמאית ללא  Windows – ליישומים שאינם דורשים שרותים כמו  GUI Complex File System  וכו.
בריבוי ליבות קימים מנגנונים להעלאת יכולות המערכת על ידי שיתוף משאבים. ניתן לבנות  Scaling  אוטומטי תוך שמירה על דטרמיניסטיות (להבדיל מ- SMP  שפוגע בדטרמיניסטיות).
INtime  משיגה רובוסטיות על ידי מנגנונים של Exceptions והפרדה מלאה בין התהליכים  לבין עצמם ובינם לבין מע”ה  INtime. במידה וקונפיגורצית הריצה כוללת  Windows קימת כמובן הפרדה מלאה  ועדיפות משאבים לעומתה, כך שגם מסך כחול ב-  Windows  אינו מפיל את החלקים המוגדרים לריצה על הליבות של  INtime.
הדטרמיניסטות – התגובה ל- Interrupts – היא טובה ביותר. ה- jitter  הינו פחות ממיקרו שניה אחת – בריצה על המעבדים החדשים (I7  למשל).
בכל אחד מהפתרונות מבוצע הפיתוח – כולל ה- debug  בזמן אמת, על מערכות מבוססות  Windows  באמצעות Visual Studio וכלים יעודיים נוספים ללא כל חומרה נוספת.
בתרשים מס’ 1 מתואר אופי הפיתוח בסביבה בה חלק מהיישום רץ מעל  Windows  וחלקו מעל  INtime. ביישום מוגדר גם מימשק בין שני החלקים. קימות אופציות רבות למימוש המימשק הזה  Global Object – מטיפוס כלשהוא כמו  Shared Memory  או  Mailbox  או לחילופין  Virtual Ethernet Port. במידה ובישום אין מרכיב של Windows אין צורך כמובן במימשק הנ”ל, ומסלול הפיתוח מכיל את החלק השמאלי בלבד של התרשים.

תרשים מספר 1
תרשים מספר 2

תאור של מערכת מחשב טיפוסית ליישומי Embedded
מערכות רבות מבוססת על PC  תעשיתי, שעל גבו מותקנת מערכת ההפעלה Windows. כרטיס המחשב משתלב עם כרטיס נושא, (Carrier Board) שעל גבו מותקנים רכיבים פריפריאלים כגון בקרי – רשת, מימשקי I/O שונים ורכיבים נוספים הנידרשים לישום הספציפי. בתכנונים בהם משולבים רכיבי FPGA, ממוקם ה- FPGA על גבי הכרטיס נושא.
לשם העברת נתונים מהירה בין המחשב ל- FPGA, מהווה כיום מימשק מסוג PCIExpress כאלטרנטיבה מועדפת.
תרשים מס’ 2 מתאר מערכת המשלבת  מחשב תעשיתי ו-FPGA המותקן על גבי ה- Carrier Board.
תרשים מספר 2 מתאר מערכת המבוססת על שימוש ב- FPGA וברכיבים פריפריאלים “מן המדף”. ה- FPGA מריץ תכן שיועד באופן ספציפי למערכת. הרכיבים האחרים מאפשרים קישוריות I/O  ותקשורת רשת.
לפתרון זה מספר חסרונות:
עלויות (BOM) גבוהות.
שימוש במספר רב של רכיבים.
צריכת הספק גבוהה.
חוסר גמישות תיכנונית לגבי גודלו של הכרטיס.
שימוש ב-  Windows  או  Linux  אינם מספקים מענה לדטרמיניסטיות ורובוסטיות.

פתרון חלופי  מוצע למערכת המחשב
פתרון יעיל יותר מתאפשר על ידי שימוש ב- FPGA כפלטפורמה, שעל גביה משולבים כל המימשקים הנידרשים במערכת. המימוש הלוגי ב- FPGA כולל אלמנטים כגון  Ethernet MAC. מימשקים למצלמות ועוד. הקישוריות למחשב נעשית באמצעות מימשק PCIExpress. מע”ה המוצעת אינה  Windows  או  Linux  אלא הרכבים שונים של מע”ה לזמן אמת  INtime: עם או בלי  Windows.
התכן כולל גם מודול המשלב יכולת של  Multiplexing בין מקורות צרכני הנתונים ב- FPGA לבין המחשב, ויכולת של Bus Mastering הנידרשת על מנת להגיע לניצול גבוה של רוחב הפס שממשק ה- PCIEexpress מאפשר.
תרשים מס’ 3 מציג את המערכת המבוססת על FPGA  ו-  INtime.
בנוסף למימוש הסיפרתי על גבי ה- FPGA משלב הפתרון את תשתיות התוכנה הנידרשות.
על מנת שהיכולות הממומשות בחומרה ישתקפו לתוכנה ברמת האפליקציה באופן סטנדרטי, יש לספק דריבר ספציפי עבור אלמנט חומרתי. הפתרון מכיל סט של דרייבר למערכות הפעלה שונות, כך שישום התוכנה אינו מושפע מהשינוי בארכטקטורת החומרה. תרשים מס’ 4 מתאר את מיבנה מערכת התוכנה והאופן בו מישתלב התכנון עם תוכנה קיימת.

תרשים מספר 3
תרשים מספר 4

השילוב עם מערכת Intime
כאמור מע”ה  Windows  כמו גם  Linux  אינן מערכת לזמן אמת. כלומר אינן מספקות דטרמניסטיות וגם לא רובוסטיות. בחלק משמעותי מיישומי ה-  Embedded  נדרשת לפחות אחת משתי תכונות אלו ולפיכך הפתרון המוצע הוא אחד משני השילובים עם מע”ה  INtime:
שילוב של INtime עם Windows  כשנדרשים שירותים מצד  Windows.
מע”ה  INtime  ללא  Windows כשאפשר לספק את כל השירותים ללא  Windows.
עבור שתי האפשרויות הללו “מישתלטת” מערכת Intime על הממשק ל- FPGA. “הישתלטות” זו מספקת גם  דטרמיניסטיות וגם רובוסטיות לתהליכים המטפלים בהתקנים הממומשים על ידי ה-  FPGA.
כאשר פועלים עם Windows, ורוצים הפעלה של ההתקנים מ”צד” ה-  Windows – מסופקת קישוריות מ-  INtime  ל- Driver  של  Windows.
יתרונות הפתרון המוצע
הקטנת עלויות פיתוח עקב קלות פיתוח בסביבת ה- PC (כלי Visual Studio) ל-  INtime ו- Windows וכלי הפיתוח המשוכללים של ה-  FPGA.
הקטנת סיכוני הפיתוח עקב הפופולריות של סביבת Visual Studio וסביבת כלי הפיתוח ל- FPGA.
הוזלה משמעותית של  עמדת הפיתוח  כיון שניתן לבצע  debug  עד לשלב הסופי של ריצה בזמן אמת על PC רגיל ללא חומרה נוספת.
הורדת מחיר המוצר: קימים  PC  במיגוון מחירים – יותר מכל פלטפורמה אחרת. וכיון ש- INtime  מספק תכונות זמן אמת מצוינות ניתן לבחור בחומרת   PC   “חלשה” וזולה יותר, בנוסף כרטיס אחד שכולל  FPGA  חוסך עלות  כרטיסים ונפח זיווד ל- כמה כרטיסי ממשק.
פונקצינליות המוצר הסופי: כל אחד מהמרכיבים לפיתרון הינם העשירים ביותר בתחומם:  Windows הינו המערכת שעבורה קימת התכנה העשירה ביותר, INtime  הינה מערכת עשירה ביותר בתכונות זמן אמת עקב שורשיה ה”ותיקים” ו- FPGA  מאפשר יצירת חומרה עשירה בפונקציונליות.
רובוסטיות הפתרון מתאפשרת עקב המנגנונים המיוחדים ב-  INtime  למטרה זו.
לסיכום
המאמר אינו מתיחס לשינוי עתידני. קימים כבר מוצרים אזרחיים וצבאיים שמשתמשים בטכנולוגיה זו ומשיגים תוצאות מצוינות בתחרותיות ובביצועים .
על המחברים
עידו אלפרובץ הינו יועץ עצמאי בעל ניסיון של עשרים שנה, החברה שבבעלותו – Consonance, מספקת פיתרונות בתחום ה- Local Connectivity,  המשלבים FPGA ומעבדים המריצים מע”ה שונות.
אסף גליל הינו  מהנדס יישומים של חברת TenAsys והחברה שבבעלותו היא נציגת  TenAsys  בארץ. לאסף למעלה משלושים שנות ניסיון בשוק ה-  Embedded.

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