software-engineering-and-programming
מדריך מקיף לתכנות של Dsp Processor באמצעות שפת האספה
Table of Contents
מעבדי אותות דיגיטליים (DSPs) הם מיקרומעבדים מיוחדים המיועדים חישובים נומרניים במהירות גבוהה, במיוחד עבור משימות עיבוד אותות כגון אודיו, וידאו ותקשורת. תכנות מעבדים אלה ביעילות דורש הבנה עמוקה של הארכיטקטורה שלהם והשימוש בשפה ההרכבה עבור ביצועים אופטימליים.מדריך מקיף זה מציג את היסודות של מעבד DSP באמצעות שפה, במטרה לצייד תלמידים עם ידע חיוני כי מגיע מעבר לטכניקות ייצור בסיסיות.
הבנת אדריכלות DSP
לפני צלילה לתוך תכנות הרכב, חיוני להבין את האדריכלות של DSPs. רוב DSPs תכונה רכיבים מיוחדים כי להגדיר אותם בנפרד מ CPUs למטרות כלליות, המאפשר עיבוד בזמן אמת של זרמי נתונים רצופים.
אדריכלות הרווארד ואוטובוסים רבים
בניגוד למכונות פון נוימן, DSPs בדרך כלל משתמשות באדריכלות בהרווארד:0modified Harvard ArchitectFeloLT:1 עם תוכנית נפרדת ומרחבי זיכרון נתונים.עיצוב זה מאפשר גישה במקביל להוראות ונתונים על אוטובוסים מרובים.DSPs רבים כוללים שלושה אוטובוסים פנימיים או יותר: אוטובוס תוכנית, אוטובוס נתונים קורא, ואוטובוס נתונים זה קריטי לביצוע מקבילות מוכפלות (C) במבצעים מחזור יחיד.
Multiply-Accumulate (MAC) Units
לב כל DSP הוא ה-FLT:0 (מפרק כפול) ממולטור (DLCFLT:1 ). A MAC מבצע את FLT:0 במחזור שעון אחד, בעוד CPU בעל מטרה כללית עשוי לדרוש מספר מחזורים.DSPs מודרניים כוללים לעתים קרובות יחידות MAC מרובות כדי לנצל מקבילות ברמת ההוראה.
צ'רלי Buffers ו- Modulo Addressing
אלגוריתמי עיבוד אותות פועלים לעתים קרובות על ידי קידוד חלונות של נתונים.DSPs לספק את ה-FLT:0circular buffirFLT:1 נתמך על ידי חומרה מודולו מטפל.התכנת להגדיר buffer מתחיל כתובת ואורך, ואת הטיפול חומרה באופן אוטומטי עוטפת סביב כאשר המצביע מגיע לסוף.זה מבטל את הגבול של בדיקות בלולאות, מה שהופך אותו חיוני עבור פילטרים ופילטרים.
המונחים: call modes
(ד) עיין במספר מצבי טיפול מעבר לסטנדרט ישיר ועקיף: (FLT:0bit-reverse Reference) 1 ל-FFT Reordering:2circular address address מתייחס ל-FLT 3:0bit-reverseing: ו-FLT:4register-indirect-indirect-in-in-in-in-in-in-in-in-in-in-incrementFLT:5 אלה מאפשרים דפוסים של גישה יסודיתאמת אישית.
מקורות שפה לDSPs
שפת האספה מספקת שליטה ברמה נמוכה על חומרת DSP. בעוד שפיטורים ברמה גבוהה השתפרו, לולאות פנימיות קריטיות בעיבוד אותות עדיין מקובעות יד כדי להשיג מקסימום באמצעות חישוב.
- (FLT:0)Registers:FLT:1 , DSPs בדרך כלל יש קבצים מיוחדים הרשמה: נתונים למטרות כלליות, accumulator לרשום (לעתים קרובות יותר רחב מרישום נתונים כדי למנוע התעלות), הרשמה מצביעה עבור טיפול, ובקרת / סטטינוס רישום. לדוגמה, טקסס מכשירים TMSC320x יש ארבעה קידודים (AC-3) של 40 סיביות.
- (ב) ויקרא י"א): "ה' (ב') ויקרא י' (ב') ,"ב) ,"ב' (ב') ,"ב) ,"ה' (ב') ,"ב' (ב') ,"ב') , ו'ה''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
- (FLT:0) תבניות הוראה: FLT:1 ; הוראת DSP הם לעתים קרובות אורכי קבוע כדי לפשט את הקידוד.יש משפחות שמשתמשות בהוראות באורך משתנה כדי להפחית את גודל הקוד.
- (ב) ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇
- (ב) [ה]הההתערות: [ה] [ה] [ה] [ה] [הלאה] [הלאה] היא סימן ההיכר של ה-DSPs.הוראות כמו FLT 7 ( ⁇ ), FLT:8 (לאה בלוק) לאפשר חסימה של קוד לבצע מספר מוגדר של פעמים ללא תקלות בתוכנה, חיסכון במחזורים.
מאסטרינג יסודות אלה חיוני לכתיבת שגרות ייצור יעילות עבור יישומי DSP. נקודת התחלה טובה היא לעבוד באמצעות מדריך ההרכבה בגליון הנתונים הרשמי של DSP או מדריך של מתכנתים עבור האדריכלות שנבחרה שלך.
הקמת סביבת פיתוח DSP
פיתוח תוכניות ייצור DSP דורש כלים מיוחדים.רוב היצרנים מספקים סביבות פיתוח משולבות (IDE) המייעלות את זרימת העבודה.
מקבץ וקישור
(הופנה מהדף ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇
סימולטור ו Emulator
לפני פריסה על חומרה אמיתית, השתמש סימולטור הדרכה-set כדי לבדוק קוד. סימולטורים מציעים ביצוע מחזורי-תיקון ויכולות פרופיל, המאפשר לך למדוד צווארי בקבוק ביצועים. An מחקר (JTAG מבוסס) מספק בזמן אמת פענוח על לוח היעד, עם תכונות כמו נקודות חומרה ועוקבים.
משפחות ומכשירים
- (ב) ⁇ :0)Texas Instruments TMS320C6000/C5000:FLT:1 השתמש ב- Code Composer Studio (CCS) IDE עם C6000 או C5000 מפרש/assembler. Extensive Document זמין ב-FLT:2TI של DSPIRFLT 3.
- (ב) ,0) ,(א) , (ב) ,ב) , (ב) ,ב) , (ב) ,ב) , (ב) , ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇
- (ב) [15] ויקרא י"ד): "ה' (ב') או'' (ב') ,2MSC815x:FLT 3: השתמש בקודריטור או כלי שווה ערך.
- (ב) .0.CEVA XC/TL: FLT:1 סימולציה וכלים מטבוליים זמינים דרך סביבת הפיתוח של CEVA.
בחר משפחת DSP המבוססת על הביצועים, הכוח והמגבלות של היישום שלך.ללמידה, מודול הערכת TITMS320C551515 (EVM) הוא בחירה פופולרית בגלל העלות הנמוכה שלה וספריית התוכנה המקיפה.
טכניקות אופטימיזציה ב-DSP Assembly
תכנות ייצור DSP יעיל כרוך מספר טכניקות המשפיעות ישירות על ביצועים בזמן אמת.השיטות הבאות משמשות באופן נרחב בתעשייה.
תוכנה
צינורות תוכנה מנקה מחדש של סידורים לולאות, כך כי מספר רב של חומרים חופפים בביצוע.הלחמה פרולוג, הקרנל, ואפילוג נבנות כדי לשמור יחידות פונקציונליות עסוקות בכל מחזור.לדוגמה, בלולאה מסנן FIR, אחד ההסרה עשוי לטעון את המקדם הבא בעוד ה- MAC הקודם הוא השלמת.טכניקה זו יעילה במיוחד על VLIW (מילים ארוכות מאוד) כמו 6000.
« « החלפה
Unrolling מפחיתה מעל הראש (branches ועדכונים נקודה) על ידי העתקת גוף הלולאה מספר פעמים.עם לולאות חומרה, unrolling יכול גם לאפשר אריזה הוראה טובה יותר.עם זאת, לאול עלייה בגודל קוד, כך צריך להיות מיושם רק על לולאות פנימיות קריטיות כי לתפוס חלק קטן של התוכנית.
תנועת נתונים יעילה
(ב) הוראות עומס / חנות על ידי שמירה על נתונים בשימוש לעתים קרובות ברישום.DSPs יש לעתים קרובות מספר מוגבל של רישומים, כך הקצאה רישום חיוני.שימוש FLT:0register רוטט 1 או קבצים רישום מעגלי שבו זמין.בנוסף, מנף:2 גישה זיכרון עקיף (DMA)FLT 3 בקרים להעביר נתונים בין זיכרון לפריפריה ללא CPU, התערבות חופשית עבור מחזורי זיכרון חישוב (DMA)
מינוף יחידות MAC
השתמש בהוראות מרובות-אקומציה לסינון, אבולוציה, קורלציה, ו- 4ier מהיר הופך.וודא כי נתונים ו- coefficients מתאימים כראוי כך שניתן יהיה להוציא את ה- MAC בכל מחזור.ב-DSPs רבים, ניתן לקשור הוראות MAC עם עומס כפול או לאחסן באותה מילה הוראה, להשיג שני תוצאות לכל מחזור.
שימוש ב-Circular Buffers
עבור אלגוריתמים שמעבדים נתונים (למשל, מסננים אדפטיים, לולאות שננעלו בשלב), הקימו buffers מעגליים בזיכרון עם טיפול במטנוול חומרה.זה מבטל בדיקות גבול מפורשות והופך את גוף הלולאה מהר יותר וצפוי יותר.
הוראה של גילוח ו-Budling
על VLIW ועל superscalar DSPs, סדר ההוראות חשוב.סידור הוראות להימנע דוכני צינורות עקב תלות בנתונים.רבים להרכיבים מאפשרים ביצוע מקבילה מפורשת עם FLT:13 אסימונים.
LDW .D1T1 *A0++, A1 ; load data into A1 || MPY .M1 A1, A2, A3 ; multiply A1 and A2 into A3 (parallel issue)
פעילות עצמאית ב-Bodling לאותו חבילת ביצוע ממקסימה את התפוקה.
דוגמה מעשית: יישום מסנן FIR
שקול ליישם את מסנן מטבוליזם Finite Impulse (FIR) באסיפה.זה הדוגמה הקלאסית של DSP הוראה.
- קביעת חיץ מעגלי עבור ההיסטוריה של הדגימה קלט (דפי קו).
- לטעון דגימות קלט מסנן coefficients לתוך רישומים.
- ביצוע פעולות מרובות-אקומציה לכל דגימה.
- הובלת הפלט המסונן חזרה לזיכרון.
Pseudo-Assembly עבור TMS320C55x FIR מסנן (N T)
(ב) ,ב[[1924]], [[1924]], [[1924]]]], [[1924]]]], [[1924]]]], [[1924]]]]
- מדרש (ב) ,ב[[1924]], [[1924]], [[1924]]]]
- כתוב דגימה חדשה ל-buffer במיקום הנוכחי (מודולולו מטפל בעטיפה).
- הגדרת ספירת לולאה ל-N-1 (לאה קשה).
- בכל הרצה: לטעון מדגם נתונים ומקדם, ולאחר מכן לבצע MAC.
- לאחר לולאה, לאחסן accumulator כדי פלט ועדכון מצביע.
על C55x, ניתן לעשות זאת עם יחיד (RPT) או בלוק קידוד (RPTB) לבנות.הוראות מפתח: FLT:20 עם טיפול מעגלי, FLT:21, ו-FLT:22 עבור ניהול accumulator.הקוד בפועל ישתנה בהתאם לגודל האופרה (16 סיביות או 32 סיביות) ודרישות ריצוף.
הערות אופטימיזציה
כדי להשיג אחד MAC לכל מחזור, ודא כי נתונים וגישה יעילה אינם סותרים את האוטובוסים הפנימיים.אם ל-DSP יש חללי זיכרון כפולים (למשל, זיכרון נפרד ל- coefficients ו-Data), מציבים אותם באבני זיכרון שונות כדי לאפשר עומסים מקבילים.
עבור מסננים גבוהים יותר, לשקול decomposing את המסנן לחלקים מקבילים (מימושpolyphase) או באמצעות אופטימיזציה מבוזרת.כל אופטימיזציה חייבת להיות מאוזנת עם גודל קוד ופיתוח זמן.
יישומים מתקדמים: IIR Filters ו-FFT
תגובה אינסופית (IIR) מסננים
מסננים IIR דורשים משוב של תפוקה קודמת, אשר יוצר תלות בנתונים אשר מדגימים את ביצועי הצינור.טכניקות של אספה עבור מסננים IIR כוללים:
- באמצעות צורה ישירה I או Transposed Direct Form II מבנים כדי למזער את משתנים המדינה.
- שילוב פעולות MAC בסעיפים דו-ממדיים.
- חישוב סכומי חלקית כדי להפחית את הסבלנות.
מכיוון שיציבות היא דאגה ב- DSPs של נקודות קבועות, טיפול בזרימה (בטבע או קנה מידה) חייב להיות משולב בקפידה בקוד הרכבה.
Fast Fourier Transform (FFT)
FFT הוא עמוד השדרה של ניתוח ספקטרלי ו- של DM מודמים. אופטימיזציה של האסיפה עבור FFT כולל:
- (ב) שימוש ב-[[1924]] ב[[1924]], ב[[1924]]
- תוכנה מניקה את הקרנל החמאה.
- באמצעות טבלאות של גורם twidle מאוחסנים בבנק זיכרון נפרד.
- כפלה מורכבת עם הוראות ספציפיות ל-DSP (למשל, ההרחבה:23 או FLT:24 עם מספרים מורכבים).
רדיוקס-2 decimation-in-time FFT חמאה ניתן לכתוב בפחות מ -10 מחזורי הדרכה על מודרני VLIW DSP. Achieving זה דורש ידע אינטימי של הצינור ומשימה זוירה של יצרנים רבים לספק שגרות ספריות FFT אופטימיזציה; לומד אותם היא דרך מצוינת ללמוד טכניקות מגובשות מתקדמות.
מלכודות נפוצות וטיפים
אפילו מפתחים מנוסים נתקלים באגים עדינים ב-DSP ההרכבה, הנה נושאים משותפים וכיצד להימנע מהם:
- (ב) ,0) , ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇
- (FLT:0) תצורה מעגלית תיקון:FIRLT:1 ; בדקו כפול כי גודל החילוף הוא כוח של שניים אם נדרש על ידי טיפול מודולולו חומרה.
- (ב) ,0) ,Overflow:IRFLT:1 , DSPs לספק מחסנים משמרים, אך הם עדיין יכולים לעלות על גדות במקרים קיצוניים.
- (ב) ⁇ :0) ,(התוויית זיכרון: 1) רבים דורשים גישה של 32 סיביות או 64 סיביות כדי להיות מתואמים לגבולות הטבעיים שלהם.
- (FLT:0) טיפול בין-פרפטורי: 1FLT 1 שמור ולשחזר את כל הרשומות המשמשות ברדיפת שירות (ISRs), כולל הרחבה של מטענים. השתמש במספר ההנחיות המינימליות כדי להשיג תגובה בזמן אמתית מקובלת.
- (ב) [ה]כלים: [ה] [ה]] [ה]] [ה]] [ה]]], [ה]][ה]]], [ה]][ה]]]], [ה]], [ה], [ה]]][ה']] [ה'[ה']']'[ה']']']'[ה'[ה']']'[ה']']'[ה'[ה']'[ה'[ה'[ה'[ה'[ה'[ה'[ה']']']'[ה']']'[ה'[ה']']'[ה']']'[ה'[ה']'[ה']']']']']'[ה'[ה']']']'[ה'[ה']'[ה']']'[ה']']'[ה'[ה']'[ה']']'[ה']']'[ה'[ה'['[ה'[ה'
מסקנה
מעבדי תכנות DSP בשפת הרכב מציעים שליטה ויעילות שאין כמותה של משימות עיבוד אותות.הבנת האדריכלות, ניהול הוראות הרכבה, יישום טכניקות אופטימיזציה חיוניים לפיתוח יישומים ביצועים גבוהים.עם הכלים והידע הנכונים - כולל היכרות עם אדריכלות הרווארד, יחידות MAC, buffers מעגלי, צינורות תוכנה - מלומדים ומחנכים יכולים לרתום את מלוא הפוטנציאל של טכנולוגיית DSP עבור יישומים שונים כגון קוד, בעוד קוד פתוח, פונקציות הפעלה, ומיומנויות הפעלה סטנדרטיות, המשך עיבוד.