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

תפקיד הזיכרון הבסיסי בעומסי עיבוד אותות

עומסי עיבוד אותות הם ביסודו של דבר נתונים-intensive. Algorithms כגון תגובה אימפולס סופי (FIR) מסננים, מהיר ארבעהייה הופכת (FFTs), convolution, ו matrix multiplication לפעול על סמך מנגנונים גדולים של טיפות דגימות דגימות בו-זמנית של אלגוריתמים אלה מציגים תבנית גישה צפויה, חוזרת: רצף של קידודים (בזיכרון) מוכפל שוב ושוב עם דגימות נכנסות (במחזור נתונים), אך ורק באמצעות ניתוח DSP) אך ורק באמצעות מחזור אחד (D2 אינו יכול לספק את יחידת זיכרון יעיל).

יתר על כן, מגבלות בזמן אמת דורשות כי עיבוד לעמוד בקצב הדגימה.עבור אודיו ב-48 kHz, המעבד חייב להשלים את האלגוריתם שלו בתוך כ-20 מיקרו-שניות. עבור וידאו ב -30 מסגרות לשנייה עם רזולוציה 1080p, דרישה זו הופכת עשרות אלפי שניות למסגרת - ולעתים קרובות יותר הדוקה לעיבוד תת-מסגרת.

סוגי זיכרון Core ב-DSP Systems

זיכרון רישום

המרשם הוא הזיכרון המהיר ביותר בכל DSP. מיושם בדרך כלל כפסים או מערך SRAM קטן בתוך הליבה המעבד, רישומים מחזיקים אופרות כי הם מפוצצים באופן פעיל. רוב ליבות DSP יש סט ייעודי של accumulators (למשל, 40 סיביות או 64 סיביות לרשום על מנת למנוע זרימה של פעולות MAC256) והגדרת כתובות עבור נקודות עבור פחות קידוד אחד (בדרך כלל פחות מ-DLC) הוא פחות יעיל של שימוש ב-D.

זיכרון Cache

זיכרון Cache הוא קטן, מהיר SRAM שמאחסן עותקים של נתונים או הוראות מזיכרון ראשי.DSP עשויים לכלול רמות הוראות נפרדות (I-cache) ו-Cches נתונים (D-cache) כדי להימנע מתכנים.עם זאת, caches מציגות רמות לא מועדות - מטמון יכול לעכב את הצינור עבור עשרות או מאות מחזורים - וזה בעייתי עבור מערכות בזמן אמתיות, כמו גם עלייה של 2 סיביות קריטיים, כאשר הם משתמשים ב-DLCDLC CLC.

על-ידי צ'יפ SRAM (זיכרון צ'יפ)

על שבב סטטי RAM (SRAM), לעתים קרובות נקרא זיכרון סלפי, מספק אחסון צפוי, נמוך חסכוני ישירות על המעבד למות.בניגוד לחקיפי, זיכרון סלפי מנוהל במפורש על ידי תוכנה - נתונים חייב להיות מועבר החוצה על ידי המתכנת או מדרדר.התנהגות ⁇ זה עושה את הבחירה המועדפת לעיבוד אות בזמן אמת שבו זמן ביצוע הגרוע (ET) חייב להיות ידוע על ידי מספר יחידות דואר אלקטרונים, בהתאם ל-Spchi, 000 יחידות CLC, 000 רגיל.

זיכרון חיצוני (DRAM/פלאש)

זיכרון חיצוני, בדרך כלל DDR SDRAM (במיוחד LPDDR עבור נייד / מעומעם), מספק יכולת גדולה -gigabytes - עלות של שקיפות גבוהה (עשרות ננו שניות עד 100+ ns) ואנרגיה גבוהה יותר לגישה. עבור מחזורי DSP רבים, זיכרון חיצוני מחזיק נתונים גדולים כי על אחסון שבבים, כגון קטעי וידאו, buff, או זיכרון RAM (DR) דורש שימוש ב-DR2.

מודלי זיכרון בDSPs

אדריכלות הרווארד

הארכיטקטורה של הרווארד מפרידה את זיכרון ההוראה ואת הזיכרון נתונים לאוטובוסים נפרדים פיזית, ומאפשרת גישה בו זמנית הן במהלך מחזור שעון יחיד.ד. טיפוסי עם אדריכלות הרווארד יכול להביא הוראה מזיכרון התוכנית (לעתים קרובות על שבב או SRAM) תוך קריאה שתי מילים נתונים מזיכרון נתונים - אחד עבור coefficient ואחד עבור הדגימה.זה הוא הבסיס של ביצוע יחיד-מעגל DSP מודרני (gRC, 000), אבל ניתן לשנות את Cog) אבל עבור ארכיטקטורת Cog יחיד, אבל אחד עבור אדריכלות Cx.

אדריכלות: Von Neumann

האדריכלות של פון נוימן (או פרינסטון) משתמשת במרחב זיכרון משותף יחיד להנחיות ונתונים, המוגש על ידי אוטובוס אחד.זה מפשט עיצוב מערכת ומיפוי זיכרון אבל יוצר צוואר בקבוק בסיסי (לעתים קרובות נקרא "צוואר בקבוק יין לבן") בהקשר DSP, פון נוימן טהור הוא לעתים רחוקות רק משום שהוא לא יכול לספק הדרכה ושני אופרות נתונים לכל היותר, עם זאת, כמה נמוך זול-תועלת של אוטובוסים דמויי זיכרון (Nex) נמוך לשימוש רק עבור מעבדי זיכרון אלקטרונים (Nexer) נמוך יותר (Nex) אך ורק עבור עיבוד אלקטרונים) נמוך יותר (Nexer) נמוך יותר (Nexerd) נמוך יותר) אך ורק עבור מעבדים (Nexerdowd) הוא רק שימוש ב-DF) נמוך יותר (Nexerdexerdexerd) עם עלויות טיפול אלקטרונים) נמוך יותר (Nex) עם עלויות טיפול אלקטרונים (Nexerd) נמוך יותר (Nex) נמוך יותר (Nex) אך ורק שימוש ב-DFolexerdexerdexerdownexerdownexerd) הוא רק שימוש רק שימוש ב-DLCDSP) הוא רק שימוש ב-Doxerd) הוא

אדריכלות הרווארד משתנה (עם הדרכה ודברים Caches)

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

VLIW ו- SIMD Implications

מעבדי הדרכה ארוכים מאוד (VLIW) כגון TI C6000, לארוז פעולות מרובות לתוך הוראה אחת (למשל, שני MACs בתוספת עומס / בית) כדי לקיים מקבילה VLIW, ארכיטקטורת הזיכרון חייבת לספק מספיק יציאות זיכרון להאכיל את כל יחידות פונקציונליות.זה אומר לעתים קרובות מספר בנקים זיכרון, כל אחד עם נמל קורא משלו.לדוגמה, C6000 יש שני בנקים של נתונים (Aside) כדי 2 נתיבי זיכרון מחוברים ל-S) כדי לאפשר גישה אחת (S) באופן דומה, כולל מספר פעמים) של מספר פעמים, שני מסלולי זיכרון (S) של 2D).

היררכיה ואסטרטגיות זיכרון מתקדמות

Multi-Level Cache ו- Tablet Hybrids

DSPs מודרניים משלבים לעתים קרובות מטמון קטן L1 (למשל, 16 KB הוראה + 16 KB נתונים) עם L2 SRAM גדול (למשל, 256 KB) שניתן להגדיר כ cache או שריטה. לדוגמה, הליבה TI C66xcore מאפשר חלוקת זיכרון L2 בין cache ו-S על בסיס בלוק-by-by נותן גישה היברידית זו שליטה רבה ביותר של נתונים כפול עשוי להיות משותף יותר.

DMA (Direct Memory Access) Engines

בקרים DMA הם חלק בלתי נפרד יעילות הזיכרון של DSP.הם מאפשרים העברות נתונים בין זיכרון חיצוני לבין זיכרון על שבב להתרחש ללא התערבות CPU. דפוס טיפוסי הוא להשתמש בתוכנית כפולה (ping-pong): בעוד DSP מעבד נתונים מ-bup A, DMA ממלא חיץ B מזיכרון חיצוני, ולאחר עיבוד על A נעשה, התפקידים זה מסתיר את רוחב טיפול 2DTM מאפשר טיפול יעיל.

בנקאות זיכרון ובינלאומי

כדי לספק רוחב פס גבוה, על שבב SRAM מתחלק לעתים קרובות לבנקים מרובים (למשל, 8 או 16) לכל בנק יש נמל קורא/כתיבה משלו, כך הרבה גישה בו זמנית אפשרית כל עוד הם מכוונים לבנקים שונים. Interleaving - נצלו כתובות מוצלחות על פני בנקים - מפיצים סכסוכים בנק עבור תבניות גישה של זרע (common in DSP לולאות).

לולא Buffers (Zero-Overhead Loop Support)

רבים DSPs כוללים קטן, זיכרון מהיר כי מיועד במיוחד עבור לולאות תוכנה. a לולאה buffer יכול להחזיק גרעין קטן (למשל, 128 עד 2048 הוראות) כי הוא מבוצע שוב ושוב מבלי להביא זיכרון הראשי. בשילוב עם מצבי טיפול עבור מטבול עגול, זה מבטל גישה זיכרון מעל ללחישות מתוחות - אירוע נפוץ בעיבוד אותות.

Cache Coherency in Multicore DSPs

כאשר ליבות DSP מרובות חולקות נתונים (למשל, ב מכ"ם או יישום MIMO), פרוטוקולים קוהרנטיות של שפם מונעים נתונים מפוסלים. חומרה או קוהרנטיות מתוכנתת (למשל, באמצעות cache invalidates) משמשים.חלק DSPs נמנעים מ-Clitime לחלוטין בעד גביית ניירת כדי לעקוף קוהרנטיות מעל ל-Kernbnb, לדוגמה, הפונקציה CRAM (S) עם CNX-C) עם פעילות משותפת עם CSD (SDPSD) עם פעילות גופנית (DSPN) יעילה יותר עם CSD) אך היא למעשה, אך היא יעילה יותר מ-DSPNCRD.

השפעה על אדריכלות הזיכרון על ביצועי מפתח

ארכיטקטורת הזיכרון משפיעה ישירות על ארבעה מדדי ביצועים קריטיים: באמצעות חישוב (שיתוף פעולה לשנייה), עצלות (זמן לתוצאה ראשונה), צריכת החשמל הרץ וקביעת זמן אמתית. כדי להמחיש, לשקול מסנן FIR של אורך N. עם ארכיטקטורת זיכרון אידיאלית (Harvard + 2 יציאות קריאה + יחיד-מחזור יחיד), כל אחד דורש מחזור אחד עבור עומסים יעילים, אחד עבור עומס אחד עבור אחד, עבור אחד עבור אחד עבור אחד עבור מחזור אחד, עבור אחד, עבור אחד עבור אחד עבור מחזור אחד יעיל - עבור מחזור אחד - עבור מחזור אחד - 4 קיבולת כפולה, עבור מחזורי זיכרון כפול - 4 קיבולת כפולה, אם הוא לא יכול להיות מופחתת אחת, כלומר, אם הוא אפסית, על ידי 4.

לעיבוד FFT, אלגוריתם Cooley-Tukey כולל פעולות פרפרים שקוראים שני ערכים מורכבים וגורם twiddle, ולאחר מכן לכתוב שני תוצאות. עם נמל זיכרון אחד, זה דורש ארבעה קורא ושניים כותב לחמאה, לוקח לפחות שישה מחזורים. עם ארכיטקטורת דו-בנק כפולה (אחד עבור נתונים, אחד עבור coefficients), את הקריאה ניתן חופפים, להפחית עד שלושה מחזורים להפחתה מיידית של צריכת זיכרון.

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

דרישות עבור מהנדסי מערכת

בעת תכנון מערכת מבוססת DSP, מהנדסים חייבים לחלק את נתוני היישום על פני היררכיה הזיכרון.

  • (FLT:0Data Location:BuildFLT:1) אילו מערךים ממוקמים על שבב SRAM לעומת DRAM חיצוני?בדרך כלל, מערכת העבודה עבור האלגוריתם המבוצע לעתים קרובות ביותר (למשל, פילטרים, משתנים המדינה) חייב להתאים לזיכרון שבב.
  • (FLT:0) ממיפוי: 1FLT (ה) השתמש ברישום המאפיין של DSP כדי להגדיר מדיניות צ'ינג (למשל, כתיבה, גיבוי, אי-אפשרות) עבור נתונים משותפים, להשתמש ללא-כפייה או להקצות ב-SRAM משותף כדי להימנע מבעיות כפייה.
  • (FLT:0) שימוש בתסריטים קישוריים: FIRLT:1 ; § § ; לדוגמה, § בתוך SRAM פנימי לביצוע מהיר, ו .data ב DRAM חיצוני עבור מבולנים גדולים.חלק DSPs תומכים DMA להעתיק נתונים קריטיים מפלאש ל-S במהלך ה-S.
  • (FLT:0) ,ouble buffering with DMA:03FLT:1 ; Allocate שני buffers in on-chip SRAM. Conform a DMA כדי למלא אחד בעוד DSP מעבד את השני.לוודא כי גודל העברת DMA וקוד המקור / דחיסות כתובות פיזור תואמים למקסימום באמצעות חישוב.
  • (FLT:0) בחירת זיכרון חיצוני:FLT:1 עבור רוחב פס גבוה, לשקול LPDDR4 או HBM (זיכרון גבוה פסווי) עבור יישומים רגישים כגון מכ"ם או בסיס 5G. עבור כוח נמוך, השתמש בפלאש סידורי NOR עבור קוד ולבצע את ה-XIP (XIP) אם DSP הוא תומך.
  • (FLT:0) Power Management:BuildFLT:1) השתמש שעון המאגד על בנקים זיכרון שאינם בשימוש (למשל, ממשק חיצוני של idle יכול להיות לשים לתוך עצמו-refresh) רבים DSPs מאפשרים מתח לדרג עבור שבב על שבב SRAM כדי להפחית את הכוח הדינמי.

בסביבה הקרובה של DSP Memory Architecture

פיתוח יישומי DSP כגון למידה עמוקה בהקצאת מכשירים קצה, עיבוד וידאו בזמן אמת 4K/8K ורדיו מוגדר תוכנה (SDR) דוחף דרישות זיכרון נוספות.

  • (FLT:0)3D ערימה זיכרון (HBM, HBM2E): ההרחבה הראשונה של 1Freave 1 בשימוש כבר ב GPUs high-end, HBM משולב ב DSPs ו- FPGAs עבור מערכות הדורשות רוחב פס מסיבי (עד 460 GB / ערימה).הקרבה מקטין את הגמישות והכוח.
  • (FLT:0) על-chip זיכרון לא-volatile (eNVM): טכנולוגיות מתפתחות כגון MRAM או ReRAM יכולות להחליף את ה-chip SRAM לאחסון קוד, צמצום זמן האתחול וחיסול הצורך בפלאש חיצוני.
  • (FLT:0) מאיצים ברשת של רשתות אלקטרוניקה עם זיכרון משקל מקומי:FLT:1 DSPs המיועד ל- AI inference כוללים buffer משקל מקומי (לעתים קרובות SRAM או SRAM) שיכול להחזיק משקולות מגרות כדי למנוע קריאה חוזרת של זיכרון חיצוני.זה אנלוגי לגרד, אך מותאם לתבניות convolution.
  • (FLT:0) היררכיה זיכרון של זיכרון: קיד 1 (DSPs עתידיים עשויים לפרוס זיכרון מחדש תצורה (למשל, EFPGA עם זיכרון מוטבע) שניתן יהיה לנסח מחדש כ- cache, שריטה או FIFO בהתאם לעומס העבודה.
  • (FLT:0) software-mand cache: ** כמה ארכיטקטורות מחקר מציע להחליף את הטמון בחומרה עם זיכרונות מבוקרים תוכנה עבור חלקים קריטיים תוך שמירה על כאב עבור חלקים לא קריטיים. גישה היברידית זו יכולה להציע את הטוב ביותר של שני העולמות.

מסקנה

אדריכלות זיכרון היא עמוד השדרה של יעילות מעבד DSP. הבנה עמוקה של ה- Trading-offs בין רישום, cache, על שבב SRAM, וזיכרון חיצוני מאפשר למעצבי מערכת למזער את השקיפות של נתונים, למקסם את התפוקה, ולהפחית את צריכת החשמל.הבחירה של מודל האדריכלות (Harvard vs Moding Harvard vs Neumann), השימוש באסטרטגיות מתקדמות כמו DMA, בנקאות, ו-buff, ו-buffer, ו-Hin, יתאים את האפליקציות מורכבות יותר, כמו גם את הביצועים של זיכרון מתקדמים יותר, כמו גם כן, כמו גם כן, כמו גם כן, כמו גם כן, כמו גם כן, כמו גם אלגוריתמים מתקדמים יותר, כמו גם אלגוריתמים מתקדמים יותר, כמו גם אלגוריתמים מתקדמים יותר, כמו גם אלגוריתמים מתקדמים יותר, כמו גם אלגוריתמים מתקדמים יותר, כמו גם אלגוריתמים מתקדמים יותר, כמו גם אלגוריתמים מתקדמים יותר, כמו גם אלגוריתמים מתקדמים יותר, כמו גם אלגוריתמים מתקדמים יותר, כמו גם אלגוריתמים מתקדמים יותר, כמו גם אלגוריתמים מתקדמים יותר, כמו NSP, כמו אלגוריתמים מתקדמים יותר, כמו גם אלגוריתמים מתקדמים יותר, כמו אלגוריתמים מתקדמים יותר, כמו N

  • (ב) ⁇ 0) , 000 ⁇ : הבנת אדריכלות זיכרון DSPRAA06FIRLT
  • (ב) ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇
  • (ב) ◄ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇
  • (ב) ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇