כרטיס האצה לתכנות Intel FPGA D5005
על מסמך זה
מסמך זה מתאר את היישום של יחידת פונקציונלית מאיץ (AFU) של גישה ישירה לזיכרון (DMA) וכיצד לבנות את התכנון לרוץ על חומרה או בסימולציה.
קהל מיועד
הקהל המיועד כולל מפתחי חומרה או תוכנה הדורשים פונקציית מאיץ (AF) כדי לאחסן נתונים מקומית בזיכרון המחובר להתקן FPGA של אינטל.
אמנות
אמנות מסמכים
אֲמָנָה | תֵאוּר |
# | לפני פקודה שמציינת שהפקודה צריכה להיות מוזנת כשורש. |
$ | מציין שיש להזין פקודה כמשתמש. |
הגופן הזה | Fileשמות, פקודות ומילות מפתח מודפסים בגופן זה. בגופן זה מודפסות שורות פקודה ארוכות. למרות ששורות פקודה ארוכות עשויות לעבור לשורה הבאה, ההחזרה אינה חלק מהפקודה; אל תלחץ אנטר. |
מציין את טקסט מציין המיקום המופיע בין סוגריים של הזווית חייב להיות מוחלף בערך מתאים. אין להיכנס לסוגרי הזווית. |
ראשי תיבות
ראשי תיבות
ראשי תיבות | הַרחָבָה | תֵאוּר |
AF | פונקציית מאיץ | תמונת מאיץ חומרה מיושם בלוגיקת FPGA שמאיצה אפליקציה. |
AFU | מאיץ יחידה פונקציונלית | מאיץ חומרה מיושם בלוגיקה FPGA אשר מוריד פעולת חישוב עבור יישום מה-CPU כדי לשפר את הביצועים. |
ממשק API | ממשק תכנות יישומים | קבוצה של הגדרות תת שגרתיות, פרוטוקולים וכלים לבניית יישומי תוכנה. |
CCI-P | ממשק מטמון ליבה | CCI-P הוא הממשק הסטנדרטי ש-AFU משתמש בהם כדי לתקשר עם המארח. |
DFH | כותרת תכונת מכשיר | יוצר רשימה מקושרת של כותרות תכונות כדי לספק דרך הניתנת להרחבה להוספת תכונות. |
נִמשָׁך… |
תאגיד אינטל. כל הזכויות שמורות. Intel, הלוגו של Intel וסימני Intel אחרים הם סימנים מסחריים של Intel Corporation או של חברות הבת שלה. אינטל מתחייבת לביצועים של מוצרי ה-FPGA והמוליכים למחצה שלה למפרטים הנוכחיים בהתאם לאחריות הסטנדרטית של אינטל, אך שומרת לעצמה את הזכות לבצע שינויים בכל מוצר ושירות בכל עת ללא הודעה מוקדמת. אינטל אינה נושאת באחריות או חבות הנובעת מהיישום או השימוש בכל מידע, מוצר או שירות המתוארים כאן, למעט כפי שהוסכם במפורש בכתב על ידי אינטל. ללקוחות אינטל מומלץ להשיג את הגרסה העדכנית ביותר של מפרטי המכשיר לפני הסתמכות על מידע שפורסם ולפני ביצוע הזמנות של מוצרים או שירותים. *שמות ומותגים אחרים עשויים להיטען כרכושם של אחרים.
ראשי תיבות | הַרחָבָה | תֵאוּר |
FIM | מנהל ממשק FPGA | חומרת ה-FPGA המכילה את יחידת ממשק FPGA (FIU) וממשקים חיצוניים לזיכרון, רשת וכו'.
פונקציית האקסלרטור (AF) מתממשקת עם ה-FIM בזמן הריצה. |
FIU | יחידת ממשק FPGA | FIU היא שכבת ממשק פלטפורמה הפועלת כגשר בין ממשקי פלטפורמה כמו PCIe*, UPI וממשקי צד של AFU כגון CCI-P. |
MPF | מפעל מאפייני זיכרון | ה-MPF הוא אבן בניין בסיסית (BBB) ש-AFUs יכולים להשתמש בו כדי לספק פעולות עיצוב תעבורה של CCI-P עבור עסקאות עם ה-FIU. |
מילון מונחים של תאוצה
מחסנית האצה עבור Intel® Xeon® CPU עם FPGAs מילון מונחים
מוּנָח | נוֹטָרִיקוֹן | תֵאוּר |
Intel® Acceleration Stack עבור Intel Xeon® CPU עם FPGAs | מחסנית תאוצה | אוסף של תוכנות, קושחה וכלים המספקים קישוריות אופטימלית לביצועים בין Intel FPGA למעבד Intel Xeon. |
כרטיס האצה לתכנות אינטל FPGA | אינטל FPGA PAC | כרטיס מאיץ PCIe FPGA.
מכיל מנהל ממשק FPGA (FIM) שמתאים למעבד Intel Xeon דרך אפיק PCIe. |
- מדריך למשתמש של יחידה פונקציונלית מאיץ DMA: כרטיס האצה לתכנות Intel FPGA D5005
DMA AFU תיאור
מָבוֹא
ה-AFU של גישה ישירה לזיכרון (DMA) למשלample מראה כיצד לנהל העברות זיכרון בין המעבד המארח ל-FPGA. אתה יכול לשלב את ה-DMA AFU בעיצוב שלך כדי להעביר נתונים בין הזיכרון המארח לזיכרון המקומי של FPGA. ה-DMA AFU מורכב מתת-מודולים הבאים:
- Memory Properties Factory (MPF) אבן בניין בסיסית (BBB)
- ממשק מטמון ליבה (CCI-P) למתאם Avalon®-Mapped Memory (Avalon-MM)
- מערכת בדיקות DMA המכילה את ה-DMA BBB
תת-מודולים אלו מתוארים ביתר פירוט בנושא רכיבי החומרה של DMA AFU להלן.
מידע קשור
- רכיבי החומרה של DMA AFU בעמוד 6
- מפרטי ממשק Avalon
למידע נוסף על פרוטוקול Avalon-MM, כולל דיאגרמות תזמון עבור עסקאות קריאה וכתיבה.
חבילת התוכנה DMA AFU
מחסנית ההאצה של Intel עבור Intel Xeon CPU עם חבילת FPGAs file (*.tar.gz), כולל את ה-DMA AFU example. האקסית הזוample מספק מנהל התקן מרחב משתמש. היישום המארח משתמש במנהל ההתקן הזה כך שה-DMA מעביר נתונים בין זיכרון מארח ל-FPGA. הקבצים הבינאריים של החומרה, המקורות ומנהל ההתקן של שטח המשתמש זמינים בספרייה הבאה: $OPAE_PLATFORM_ROOT/hw/samples/dma_afu . לפני הניסוי עם ה-DMA AFU, עליך להתקין את חבילת התוכנה Open Programmable Acceleration Engine (OPAE). עיין בהתקנת חבילת התוכנה OPAE במדריך ההתחלה המהירה של Intel Acceleration Stack עבור כרטיס האצה לתכנות Intel FPGA D5005 לקבלת הוראות התקנה. מדריך התחלה מהירה זה כולל גם מידע בסיסי על מנוע ההאצה הפתוח (OPAE) והגדרת AFU. לאחר התקנת חבילת התוכנה Open Programmable Acceleration Engine (OPAE), כמוampיישום המארח ומנהל ההתקן של שטח המשתמש של DMA AFU זמינים בספרייה הבאה: $OPAE_PLATFORM_ROOT/hw/samples/dma_afu/sw. כדי להפעיל את ה-sampהיישום המארח, fpga_dma_test על החומרה של Intel FPGA PAC D5005 שלך, עיין בשלבים בסעיף הפעלת ה-DMA AFU Example. תאגיד אינטל. כל הזכויות שמורות. Intel, הלוגו של Intel וסימני Intel אחרים הם סימנים מסחריים של Intel Corporation או של חברות הבת שלה. אינטל מתחייבת לביצועים של מוצרי ה-FPGA והמוליכים למחצה שלה לפי המפרט הנוכחי בהתאם לאחריות הסטנדרטית של אינטל, אך שומרת לעצמה את הזכות לבצע שינויים בכל מוצר ושירות בכל עת ללא הודעה מוקדמת. אינטל אינה נושאת באחריות או חבות הנובעת מהיישום או השימוש בכל מידע, מוצר או שירות המתוארים כאן, למעט כפי שהוסכם במפורש בכתב על ידי אינטל. ללקוחות אינטל מומלץ להשיג את הגרסה העדכנית ביותר של מפרטי המכשיר לפני הסתמכות על מידע שפורסם ולפני ביצוע הזמנות של מוצרים או שירותים. *שמות ומותגים אחרים עשויים להיטען כרכושם של אחרים.
מידע קשור
- Intel Acceleration Stack מדריך התחלה מהירה עבור Intel FPGA Acceleration Card D5005
- התקנת חבילת התוכנה OPAE
רכיבי החומרה של DMA AFU
ה-DMA AFU מתממשק עם יחידת ממשק FPGA (FIU) וזיכרון FPGA. עיין בגיליון הנתונים של מנהל ממשק FPGA עבור כרטיס האצה הניתן לתכנות של Intel FPGA D5005 לקבלת מפרטים מפורטים של זיכרון FPGA. החומרה הזמינה כעת מכתיבה את תצורת הזיכרון הזו. חומרה עתידית עשויה לתמוך בתצורות זיכרון שונות. אתה יכול להשתמש ב-DMA AFU כדי להעתיק נתונים בין מיקומי המקור והיעד הבאים:
- זיכרון FPGA מארח למכשיר
- זיכרון FPGA של התקן למארח
מערכת מעצב פלטפורמה, $OPAE_PLATFORM_ROOT/hw/samples/ dma_afu/hw/rtl/TEST_dma/ /dma_test_system.qsys מיישם את רוב ה-DMA
- AFU. ניתן למצוא חלק מה-DMA AFU המיושם במערכת ה-Platform Designer
מיקום:$OPAE_PLATFORM_ROOT/hw/samples/dma_afu/hw/rtl/TEST_dma/ אתה יכול למצוא את ה-DMA BBB במיקום הבא:
- $OPAE_PLATFORM_ROOT/hw/samples/dma_afu/hw/rtl/dma_bbb
מדריך למשתמש של יחידה פונקציונלית מאיץ DMA: כרטיס האצה לתכנות Intel FPGA D5005
תרשים בלוק חומרה של DMA AFU
ה-DMA AFU כולל את המודולים הפנימיים הבאים להתממשק עם יחידת ממשק FPGA (FIU):
- לוגיקה של מפענח IO (MMIO) ממפה זיכרון: מזהה תנועות קריאה וכתיבה של MMIO ומפרידה אותן מערוץ CCI-P RX 0 שממנו הן מגיעות. זה מבטיח שתעבורת MMIO לעולם לא תגיע ל-MPF BBB והיא מטופלת על ידי ערוץ פקודה MMIO עצמאי.
- מפעל מאפייני זיכרון (MPF): מודול זה מבטיח שקריאת תגובות מה-DMA מחזירות בסדר שהן הוצאו. פרוטוקול Avalon-MM דורש שתגובות קריאה יחזרו בסדר הנכון.
- מתאם CCI-P ל-Avalon-MM: מודול זה מתרגם בין עסקאות CCI-P ו-Avalon-MM, באופן הבא:
- מתאם CCI-P ל-Avalon-MMIO: נתיב זה מתרגם עסקאות CCI-P MMIO לעסקאות Avalon-MM.
- מתאם מארח Avalon ל-CCI-P: נתיבים אלה יוצרים נתיבים נפרדים לקריאה בלבד ולכתיבה בלבד עבור ה-DMA כדי לגשת לזיכרון המארח.
- מערכת בדיקות DMA: מודול זה משמש כעטיפה סביב ה-DMA BBB כדי לחשוף את מאסטרי ה-DMA לשאר ההיגיון ב-AFU. הוא מספק את הממשק בין ה-DMA BBB ומתאם CCI-P ל-Avalon. הוא גם מספק את הממשק בין ה-DMA BBB ובנקי FPGA SDRAM המקומיים.
מידע קשור
גיליון נתונים של מנהל ממשק FPGA עבור כרטיס האצה הניתן לתכנות Intel FPGA D5005
מערכת בדיקות DMA
מערכת בדיקת ה-DMA מחברת את ה-DMA BBB לשאר עיצוב ה-FPGA כולל התאמת CCI-P וזיכרון ה-FPGA המקומי.
תרשים בלוקים של מערכת בדיקת DMA
דיאגרמת בלוקים זו מציגה את החלק הפנימי של מערכת בדיקת ה-DMA. מערכת בדיקת ה-DMA מוצגת כבלוק מונוליטי באיור 1 בעמוד 7.
מערכת בדיקת DMA כוללת את המודולים הפנימיים הבאים:
- Far Reach Bridge/Pipeline Bridge: גשר צינורות עם חביון מתכוונן כלול כדי לשלוט בטופולוגיה ולשפר את ה-Fmax התכנון.
- DMA AFU Device Header (DFH): זהו DFH עבור DMA AFU. DFH זה מצביע על ה-DFH הבא הממוקם בהיסט 0x100 (DMA BBB DFH).
- Null DFH: רכיב זה מסיים את הרשימה המקושרת של DFH. אם תוסיף עוד DMA BBBs לעיצוב, ודא שכתובת הבסיס של DFH null ממוקמת בסוף הרשימה המקושרת של DFH.
- MA Basic Building Block (BBB): בלוק זה מעביר נתונים בין המארח לזיכרון ה-FPGA המקומי. זה גם ניגש לזיכרון המארח כדי לגשת לשרשראות מתארים.
DMA BBB
תת-מערכת ה-DMA BBB מעבירה נתונים מכתובות מקור ליעד באמצעות עסקאות Avalon-MM. מנהל ההתקן של ה-DMA שולט ב-DMA BBB על ידי גישה למאגר הבקרה והסטטוס של הרכיבים השונים בתוך המערכת. מנהל ההתקן של ה-DMA שולט גם ב-DMA BBB על ידי שימוש בזיכרון משותף כדי להעביר מתארי העברה. ה-DMA BBB ניגש לנתונים בזיכרון FPGA בהיסט 0x0. ה-DMA BBB ניגש לנתונים ולתיאורים בזיכרון המארח בהיסט 0x1_0000_0000_0000.
תרשים בלוקים של מעצב פלטפורמת DMA BBB
דיאגרמת בלוקים זו אינה כוללת כמה ליבות IP פנימיות של Pipeline Bridge.
מדריך למשתמש של יחידה פונקציונלית מאיץ DMA: כרטיס האצה לתכנות Intel FPGA D5005
DMA AFU תיאור
הרכיבים ב-DMA BBB Platform Designer מיישמים את הפונקציות הבאות:
- גשר טווח רחוק/גשר צינורות: גשר צינורות עם חביון מתכוונן כלול כדי לשלוט בטופולוגיה ולשפר את התכנון Fmax.
- MA BBB DFH: זוהי כותרת תכונה של התקן עבור DMA BBB. DFH זה מצביע על DFH הבא הממוקם בהיסט 0x100 (Null DFH).
- חזית תיאור: אחראי על שליפת מתארים והעברתם לשולח. כאשר העברת DMA מסתיימת, ה-frontend מקבל יצירת סטטוס מה-Dispatcher ומחליף את המתאר בזיכרון המארח.
- שולח: בלוק זה מתזמן בקשות להעברת DMA למאסטר הקריאה והכתיבה.
- קרא מאסטר: בלוק זה אחראי לקריאת נתונים מזיכרון FPGA מארח או מקומי ולשלוח אותם כנתונים זורמים ל-Write Master.
- כתוב מאסטר: בלוק זה אחראי על קבלת נתונים זורמים מה-Read Master וכתיבת התוכן לזיכרון FPGA מארח או מקומי.
רישום מרחבי מפה וכתובות
ה-DMA AFU תומך בשני זכרונות views: ה-DMA view והמארח view. ה-DMA view תומך במרחב כתובות של 49 סיביות. החצי התחתון של ה-DMA view ממפות לזיכרון ה-FPGA המקומי. החצי העליון של ה-DMA view מפות לזיכרון מארח. המארח view כולל את כל האוגרים הנגישים דרך גישה MMIO כגון טבלאות DFH, ואת אוגרי הבקרה/סטטוס של ליבות ה-IP השונות המשמשות בתוך ה-DMA AFU. ה-MMIO נרשם ב-DMA BBB ו-AFU תומכים בגישה של 32 ו-64 סיביות. ה-DMA AFU אינו תומך בגישות MMIO של 512 סיביות. הגישה לאוגרי ה-Dispatcher בתוך ה-DMA BBB חייבות להיות 32 סיביות (הממשק הקדמי של Descriptor מיישם אוגרים של 64 סיביות).
מפת רישום של DMA AFU
מפת הרישום של DMA AFU מספקת את הכתובות המוחלטות של כל המיקומים בתוך היחידה. אוגרים אלה נמצאים במארח view כי רק המארח יכול לגשת אליהם.
מפת זיכרון DMA AFU
קיזוז כתובת בתים | שֵׁם | טווח ב-Bytes | תֵאוּר |
0x0 | DMA AFU DFH | 0x40 | כותרת תכונת מכשיר עבור ה-DMA AFU. ה-ID_L מוגדר ל-0x9081f88b8f655caa ו-ID_H מוגדר ל-0x331db30c988541ea. ה-DMA AFU DFH עבר פרמטרים להצביע על היסט 0x100 כדי למצוא את ה-DFH הבא (DMA BBB DFH). אין לשנות את כתובת הבסיס של ה-DMA AFU DFH מכיוון שהיא חייבת להיות ממוקמת בכתובת 0x0 כפי שהוגדרה על ידי מפרט CCIP. |
0x100 | DMA BBB | 0x100 | מציין ממשק בקרת DMA BBB וממשק סטטוס. אתה יכול לעיין במפת הרישום של DMA BBB למידע נוסף. בתוך ה-DMA BBB בהיסט 0, ה-DMA BBB כולל את ה-DFH שלו. DFH זה הוגדר למצוא את ה-DFH הבא בהיסט 0x100 (NULL DFH). אם תוסיף עוד DMA BBBs, הרווח אותם ב-0x100 זה מזה והבטח שה-NULL DFH עוקב אחר ה-DMA האחרון ב-0x100. |
0x200 | NULL DFH | 0x40 | מסיים את רשימת המקושרים של DFH. ה-ID_L מוגדר ל-0x90fe6aab12a0132f ו-ID_H מוגדר ל-0xda1182b1b3444e23. ה-NULL DFH עבר פרמטרים להיות ה-DFH האחרון בחומרה. מסיבה זו ה-NULL DFH ממוקם בכתובת 0x200. אם אתה מוסיף DMA BBBs נוספים למערכת, עליך להגדיל את כתובת הבסיס NULL DFH בהתאם כך שהיא תישאר בכתובת הגבוהה ביותר. מנהל ההתקן של ה-DMA ויישום הבדיקה אינם משתמשים בחומרה זו. |
תאגיד אינטל. כל הזכויות שמורות. Intel, הלוגו של Intel וסימני Intel אחרים הם סימנים מסחריים של Intel Corporation או של חברות הבת שלה. אינטל מתחייבת לביצועים של מוצרי ה-FPGA והמוליכים למחצה שלה למפרטים הנוכחיים בהתאם לאחריות הסטנדרטית של אינטל, אך שומרת לעצמה את הזכות לבצע שינויים בכל מוצר ושירות בכל עת ללא הודעה מוקדמת. אינטל אינה נושאת באחריות או חבות הנובעת מהיישום או השימוש בכל מידע, מוצר או שירות המתוארים כאן, למעט כפי שהוסכם במפורש בכתב על ידי אינטל. ללקוחות אינטל מומלץ להשיג את הגרסה העדכנית ביותר של מפרטי המכשיר לפני הסתמכות על מידע שפורסם ולפני ביצוע הזמנות של מוצרים או שירותים. *שמות ומותגים אחרים עשויים להיטען כרכושם של אחרים.
רישום מרחבי מפה וכתובות
מפת זיכרון DMA BBB
כתובות הביטים הבאות הן קיזוז יחסי מכתובת הבסיס של DMA BBB במערכת DMA AFU (0x100).
קיזוז כתובת בתים | שֵׁם | טווח ב-Bytes | תֵאוּר |
0x0 | DMA BBB DFH | 0x40 | כותרת תכונת מכשיר עבור ה-DMA AFU. ה-ID_L מוגדר ל-0xa9149a35bace01ea ו-ID_H מוגדר ל-0xef82def7f6ec40fc. ה-DMA BBB DFH עבר פרמטרים להצביע על 0x100 עבור היסט DFH הבא. ההיסט הבא הזה יכול להיות DMA BBB אחר, DFH אחר (לא כלול בעיצוב זה), או NULL DFH. |
0x40 | שדר | 0x40 | יציאת בקרה עבור השולח. מנהל ההתקן של ה-DMA משתמש במיקום זה כדי לשלוט ב-DMA או לשאול את מצבו. |
0x80 | Frontend של מתאר | 0x40 | ממשק ה-descriptor הוא רכיב מותאם אישית הקורא מתארים מזיכרון המארח ומחליף את המתאר כאשר העברת ה-DMA מסתיימת. מנהל ההתקן מורה לחזית הקצה היכן מתאר המתאר הראשון חי בזיכרון המארח ולאחר מכן חומרת הקצה מתקשרת עם מנהל ההתקן בעיקר באמצעות מתארים המאוחסנים בזיכרון המארח. |
מרחב כתובת DMA AFU
המארח יכול לגשת לרשמים הרשומים בטבלה 4 בעמוד 12 ובטבלה 5 בעמוד 13. למערכת המשנה DMA BBB יש גישה למרחב הכתובות המלא של 49 סיביות. החצי התחתון של מרחב הכתובות הזה כולל את זיכרונות ה-FPGA המקומיים. החצי העליון של מרחב הכתובות הזה כולל את זיכרון הכתובות המארח של 48 סיביות. האיור הבא מציג את המארח וה-DMA views של זיכרון.
ה-DMA AFU והמארח Views של זיכרון
רשימה מקושרת של כותרת תכונות מכשיר
עיצוב DMA AFU example מכיל שלוש כותרות תכונות מכשיר (DFH) היוצרות רשימה מקושרת. רשימה מקושרת זו מאפשרת את ה-sampהיישום לזיהוי ה-DMA AFU וכן את הנהג לזיהוי ה-DMA BBB. רשימת DFH כוללת בסוף DFH NULL. הכללת DFH null בסוף הרשימה המקושרת מאפשרת לך להוסיף עוד DMA BBBs לעיצוב שלך. אתה פשוט צריך להעביר את ה-NULL DFH לכתובת אחרי שאר BBBs. כל DMA BBB מצפה שה-DFH הבא יהיה ממוקם 0x100 בתים מכתובת הבסיס של BBB. האיור הבא מתאר את הרשימה המקושרת עבור עיצוב DMA AFU example.
רישום מרחבי מפה וכתובות
שרשרת כותרת תכונת מכשיר DMA AFU (DFH).
מודל תכנות תוכנה
ה-DMA AFU כולל מנהל התקן תוכנה שתוכל להשתמש בו ביישום המארח שלך. ה-fpga_dma.cpp ו-fpga_dma.h files הממוקם במיקום הבא ליישם את מנהל ההתקן של התוכנה:$OPAE_PLATFORM_ROOT/hw/samples/dma_afu/sw מנהל התקן זה תומך בפונקציות הבאות:
ממשק API | תֵאוּר |
fpgaCountDMAChannels | סורק את שרשרת תכונות המכשיר עבור DMA BBBs וסופר את כל הערוצים הזמינים. |
fpgaDMAOpen | פותח ידית לערוץ DMA. |
fpgaDMAClose | סוגר ידית לערוץ DMA. |
fpgaDMATransferInit | מאתחל אובייקט המייצג את העברת ה-DMA. |
fpgaDMATransferReset | מאפס את אובייקט תכונת העברת ה-DMA לערכי ברירת המחדל. |
fpgaDMATransferDestroy | הורס את אובייקט תכונת העברת ה-DMA. |
fpgaDMATransferSetSrc | מגדיר את כתובת המקור של ההעברה. כתובת זו חייבת להיות מיושרת ל-64 בתים. |
fpgaDMATransferSetDst | מגדיר את כתובת היעד של ההעברה. כתובת זו חייבת להיות מיושרת ל-64 בתים. |
fpgaDMATransferSetLen | מגדיר את אורכי ההעברה בבתים. עבור העברות שאינן מנות, עליך להגדיר את אורך ההעברה לכפולה של 64 בתים. עבור העברת מנות, זו אינה דרישה. |
fpgaDMATransferSetTransferType | מגדיר את סוג ההעברה. הערכים המשפטיים הם:
• HOST_MM_TO_FPGA_MM = TX (מארח ל-AFU) • FPGA_MM_TO_HOST_MM = RX (AFU למארח) |
fpgaDMATransferSetTransferCallback | רושם התקשרות חוזרת לקבלת הודעה על השלמת העברה אסינכרונית. אם תציין התקשרות חוזרת, fpgaDMATransfer חוזר מיד (העברה אסינכרונית).
אם לא תציין התקשרות חוזרת, fpgaDMATransfer חוזר לאחר השלמת ההעברה (העברה סינכרונית/חוסמת). |
fpgaDMATransferSetLast | מציין את ההעברה האחרונה כדי שה-DMA יוכל להתחיל לעבד את ההעברות שנשלפו מראש. ערך ברירת המחדל הוא 64 העברות בצנרת לפני שה-DMA מתחיל לעבוד על ההעברות. |
fpgaDMATransfer | מבצע העברת DMA. |
למידע נוסף על ה-API, ארגומנטים של קלט ופלט, עיין בכותרת file נמצא $OPAE_PLATFORM_ROOT/hw/samples/dma_afu/sw/fpga_dma.hIntel Corporation. כל הזכויות שמורות. Intel, הלוגו של Intel וסימני Intel אחרים הם סימנים מסחריים של Intel Corporation או של חברות הבת שלה. אינטל מתחייבת לביצועים של מוצרי ה-FPGA והמוליכים למחצה שלה לפי המפרט הנוכחי בהתאם לאחריות הסטנדרטית של אינטל, אך שומרת לעצמה את הזכות לבצע שינויים בכל מוצר ושירות בכל עת ללא הודעה מוקדמת. אינטל אינה נושאת באחריות או חבות הנובעת מהיישום או השימוש בכל מידע, מוצר או שירות המתוארים כאן, למעט כפי שהוסכם במפורש בכתב על ידי אינטל. ללקוחות אינטל מומלץ להשיג את הגרסה העדכנית ביותר של מפרטי המכשיר לפני הסתמכות על מידע שפורסם ולפני ביצוע הזמנות של מוצרים או שירותים. ניתן לתבוע שמות ומותגים אחרים כרכושם של אחרים.
מודל תכנות תוכנה
למידע נוסף על מודל השימוש של מנהלי התוכנה, עיין ב-README file ממוקם ב-$OPAE_PLATFORM_ROOT/hw/samples/dma_afu/README.md
הפעלת DMA AFU Example
לפני שתתחיל:
- אתה צריך להכיר את האקסampמידע במדריך ההתחלה המהירה של Intel Acceleration Stack עבור כרטיס האצה הניתן לתכנות של Intel FPGA D5005.
- עליך להגדיר משתנה סביבה. משתנה הסביבה תלוי בגרסת Intel Acceleration Stack שבה אתה משתמש:
- עבור הגרסה הנוכחית, הגדר את משתנה הסביבה ל-$OPAE_PLATFORM_ROOT
- עליך להתקין את ספריית Intel Threading Building Blocks (TBB) מכיוון שמנהל ההתקן של ה-DMA מסתמך עליה.
- עליך גם להגדיר שני דפי ענק בנפח 1 GB כדי להפעיל את ה-sampהיישום. $ sudo sh -c "echo 2 > /sys/kernel/mm/hugepages/hugepages-1048576kB/ nr_hugepages"
בצע את השלבים הבאים כדי להוריד את זרם הסיביות של DMA Accelerator Function (AF), כדי לבנות את היישום ואת מנהל ההתקן, ולהפעיל את ה-Design exampעל:
- שנה ליישום DMA וספריית מנהל ההתקן: cd $OPAE_PLATFORM_ROOT/hw/samples/dma_afu/sw
- בנה את הדרייבר והאפליקציה: עשה
- הורד את זרם הסיביות של DMA AFU: sudo fpgasupdate ../bin/dma_afu_unsigned.gbs
- הפעל את היישום המארח כדי לכתוב 100 מגה-בייט בחלקים של 1 מגה-בייט מזיכרון המארח לזיכרון מכשיר FPGA וקרא אותו בחזרה: ./ fpga_dma_test -s 104857600 -p 1048576 -r mtom
מידע קשור
Intel Acceleration Stack מדריך התחלה מהירה עבור Intel FPGA Acceleration Card D5005 Intel Corporation. כל הזכויות שמורות. Intel, הלוגו של Intel וסימני Intel אחרים הם סימנים מסחריים של Intel Corporation או של חברות הבת שלה. אינטל מתחייבת לביצועים של מוצרי ה-FPGA והמוליכים למחצה שלה למפרטים הנוכחיים בהתאם לאחריות הסטנדרטית של אינטל, אך שומרת לעצמה את הזכות לבצע שינויים בכל מוצר ושירות בכל עת ללא הודעה מוקדמת. אינטל אינה נושאת באחריות או חבות הנובעת מהיישום או השימוש בכל מידע, מוצר או שירות המתוארים כאן, למעט כפי שהוסכם במפורש בכתב על ידי אינטל. ללקוחות אינטל מומלץ להשיג את הגרסה העדכנית ביותר של מפרטי המכשיר לפני הסתמכות על מידע שפורסם ולפני ביצוע הזמנות של מוצרים או שירותים. *שמות ומותגים אחרים עשויים להיטען כרכושם של אחרים.
קומפילציה של DMA AFU Example
כדי ליצור סביבת בניית סינתזה להידור AF, השתמש בפקודה afu_synth_setup באופן הבא:
- שנה ל-DMA AFU sampספרייה: $OPAE_PLATFORM_ROOT/hw/samples/dma_afu
- צור את ספריית בניית העיצוב: afu_synth_setup –source hw/rtl/filelist.txt build_synth
- מתוך ספריית בניית הסינתזה שנוצרה על ידי afu_synth_setup, הזן את הפקודות הבאות מחלון מסוף כדי ליצור AF עבור פלטפורמת החומרה היעד: cd build_synth run.sh סקריפט הדור של run.sh AF יוצר את תמונת AF עם אותו בסיס fileשם כתצורת הפלטפורמה של ה-AFU file (.json) עם סיומת .gbs במיקום:$OPAE_PLATFORM_ROOT/hw/samples/build_synth/dma_afu_s10.gbs Intel Corporation. כל הזכויות שמורות. Intel, הלוגו של Intel וסימני Intel אחרים הם סימנים מסחריים של Intel Corporation או של חברות הבת שלה. אינטל מתחייבת לביצועים של מוצרי ה-FPGA והמוליכים למחצה שלה לפי המפרט הנוכחי בהתאם לאחריות הסטנדרטית של אינטל, אך שומרת לעצמה את הזכות לבצע שינויים בכל מוצר ושירות בכל עת ללא הודעה מוקדמת. אינטל אינה נושאת באחריות או חבות הנובעת מהיישום או השימוש בכל מידע, מוצר או שירות המתוארים כאן, למעט כפי שהוסכם במפורש בכתב על ידי אינטל. ללקוחות אינטל מומלץ להשיג את הגרסה העדכנית ביותר של מפרטי המכשיר לפני הסתמכות על מידע שפורסם ולפני ביצוע הזמנות של מוצרים או שירותים. *שמות ומותגים אחרים עשויים להיטען כרכושם של אחרים.
הדמיית ה-AFU Example
אינטל ממליצה לעיין במדריך ההתחלה המהירה של Intel Accelerator Functional Unit (AFU) Simulation Environment (ASE) כדי להכיר את הדמיית דגמים דומים של Intel FPGA PAC.ampכדי להגדיר את הסביבה שלך. לפני שתמשיך בשלבים הבאים, ודא שמשתנה הסביבה OPAE_PLATFORM_ROOT מוגדר לספריית ההתקנה של OPAE SDK. השלם את השלבים הבאים כדי להגדיר את סימולטור החומרה עבור DMA AFU:
- שנה ל-DMA AFU sampספרייה: cd $OPAE_PLATFORM_ROOT/hw/samples/dma_afu
- צור סביבת ASE בספריה חדשה והגדר אותה להדמיית AFU: afu_sim_setup –source hw/rtl/filelist.txt build_ase_dir
- שנה לספריית הבנייה של ASE: cd build_ase_dir
- בנה את הדרייבר והאפליקציה: עשה
- עשה סימולציה: עשה סים
Sampפלט מסימולטור החומרה:
[SIM] ** שימו לב: לפני הפעלת יישום התוכנה ** [SIM] הגדר env(ASE_WORKDIR) בטרמינל שבו היישום ירוץ (העתק והדבק) => [SIM] $SHELL | הפעלה:[SIM] ———+————————————————— [SIM] bash/zsh | ייצוא ASE_WORKDIR=$OPAE_PLATFORM_ROOT/hw/samples/dma_afu/ase_mkdir/work [SIM] tcsh/csh | setenv ASE_WORKDIR $OPAE_PLATFORM_ROOT/hw/samples/dma_afu/ase_mkdir/work [SIM] עבור כל $SHELL אחר, התייעץ עם מנהל הלינוקס שלך [SIM] [SIM] מוכן לסימולציה... [SIM] הקש CTRL-C כדי לסגור את הסימולטור...השלם את השלבים הבאים כדי להדר ולהפעיל את תוכנת DMA AFU בסביבת הסימולציה:
- פתח חלון מסוף חדש.
- שנה את הספרייה ל: cd $OPAE_PLATFORM_ROOT/hw/samples/dma_afu/sw
תאגיד אינטל. כל הזכויות שמורות. Intel, הלוגו של Intel וסימני Intel אחרים הם סימנים מסחריים של Intel Corporation או של חברות הבת שלה. אינטל מתחייבת לביצועים של מוצרי ה-FPGA והמוליכים למחצה שלה למפרטים הנוכחיים בהתאם לאחריות הסטנדרטית של אינטל, אך שומרת לעצמה את הזכות לבצע שינויים בכל מוצר ושירות בכל עת ללא הודעה מוקדמת. אינטל אינה נושאת באחריות או חבות הנובעת מהיישום או השימוש בכל מידע, מוצר או שירות המתוארים כאן, למעט כפי שהוסכם במפורש בכתב על ידי אינטל. ללקוחות אינטל מומלץ להשיג את הגרסה העדכנית ביותר של מפרטי המכשיר לפני הסתמכות על מידע שפורסם ולפני ביצוע הזמנות של מוצרים או שירותים. *שמות ומותגים אחרים עשויים להיטען כרכושם של אחרים.
הדמיית ה-AFU Example
- העתק את מחרוזת הגדרת הסביבה (בחר מחרוזת המתאימה למעטפת שלך) מהשלבים שלמעלה בהדמיית החומרה לחלון הטרמינל. ראה את השורות הבאות בס'ampפלט מסימולטור החומרה. [SIM] bash/zsh | ייצוא ASE_WORKDIR=$OPAE_PLATFORM_ROOT/hw/samples/dma_afu/build_ase_dir/work [SIM] tcsh/csh | setenv ASE_WORKDIR $OPAE_PLATFORM_ROOT/hw/samples/dma_afu/build_ase_dir/work
- הידור התוכנה: $ make USE_ASE=1
- הפעל את היישום המארח כדי לכתוב 4 KB בקטעים של 1 KB מהזיכרון המארח בחזרה לזיכרון מכשיר FPGA במצב loopback: ./ fpga_dma_test -s 4096 -p 1024 -r mtom
מידע קשור
Intel Accelerator Functional Unit (AFU) Simulation Environment (ASE) מדריך למשתמש מהיר
אופטימיזציה לשיפור ביצועי DMA
יישום של NUMA (גישה לא אחידה לזיכרון) אופטימיזציה ב-fpga_dma_test.cpp מאפשר למעבד לגשת לזיכרון המקומי שלו מהר יותר מאשר גישה לזיכרון לא מקומי (זיכרון מקומי למעבד אחר). תצורת NUMA טיפוסית מוצגת בתרשים שלהלן. הגישה המקומית מייצגת גישה מליבה לזיכרון מקומי לאותה ליבה. הגישה מרחוק ממחישה את הנתיב שנלקח כאשר ליבה בצומת 0 ניגשת לזיכרון השוכן בזיכרון המקומי לצומת 1.
תצורת NUMA אופיינית
השתמש בקוד הבא כדי ליישם אופטימיזציה של NUMA ביישום הבדיקה שלך:
// הגדר זיקה נכונה אם תתבקש אם (cpu_affinity || memory_affinity) {dom = 0, bus = 0, dev = 0, func = 0; fpga_properties props;int retval; #if(FPGA_DMA_DEBUG)char str[4096]; #endifres = fpgaGetProperties(afc_token, &props); ON_ERR_GOTO(res, out_destroy_tok, "fpgaGetProperties"); res = fpgaPropertiesGetBus(props, (uint8_t *) & bus);ON_ERR_GOTO(res, out_destroy_tok, "fpgaPropertiesGetBus"); res = fpgaPropertiesGetDevice(props, (uint8_t *) & dev);ON_ERR_GOTO(res, out_destroy_tok, “fpgaPropertiesGetDevice”) res = fpgaPropertiesGetFunction(props, (uint8_t *) & func);ON_ERR_TODevice”GpgaPropertiesGetFunction “GpgaPropertiesGetFunction”; // מצא את המכשיר מהטופולוגיה hwloc_topology_t topology; hwloc_topology_init(&topology); hwloc_topology_set_flags(טופולוגיה, HWLOC_TOPOLOGY_FLAG_IO_DEVICES);Intel Corporation. כל הזכויות שמורות. Intel, הלוגו של Intel וסימני Intel אחרים הם סימנים מסחריים של Intel Corporation או של חברות הבת שלה. אינטל מתחייבת לביצועים של מוצרי ה-FPGA והמוליכים למחצה שלה לפי המפרט הנוכחי בהתאם לאחריות הסטנדרטית של אינטל, אך שומרת לעצמה את הזכות לבצע שינויים בכל מוצר ושירות בכל עת ללא הודעה מוקדמת. אינטל אינה נושאת באחריות או חבות הנובעת מהיישום או השימוש בכל מידע, מוצר או שירות המתוארים כאן, למעט כפי שהוסכם במפורש בכתב על ידי אינטל. ללקוחות אינטל מומלץ להשיג את הגרסה העדכנית ביותר של מפרטי המכשיר לפני הסתמכות על מידע שפורסם ולפני ביצוע הזמנות של מוצרים או שירותים. *שמות ומותגים אחרים עשויים להיטען כרכושם של אחרים.
אופטימיזציה לשיפור ביצועי DMA
hwloc_topology_load(טופולוגיה); hwloc_obj_t obj = hwloc_get_pcidev_by_busid(טופולוגיה, dom, bus, dev, func); hwloc_obj_t obj2 = hwloc_get_non_io_ancestor_obj(טופולוגיה, obj); #if (FPGA_DMA_DEBUG) hwloc_obj_type_snprintf(str, 4096, obj2, 1); printf(“%s\n”, str);hwloc_obj_attr_snprintf(str, 4096, obj2, ” :: “, 1);printf(“%s\n”, str); hwloc_bitmap_taskset_snprintf(str, 4096, obj2->cpuset); printf("CPUSET הוא %s\n", str); hwloc_bitmap_taskset_snprintf(str, 4096, obj2->nodeset); printf("NODESET הוא %s\n", str);#endif if (memory_affinity) { #if HWLOC_API_VERSION > 0x00020000 retval = hwloc_set_membind(topology, obj2->nodeset,HWLOC_MEMBIND_THREAD, HWLOC_MEMBIND_THREAD, HWLOC_MEMBIND_THREADHWLOC_MEMBIND_MEMBINDHINDWYNSET | #else retval =hwloc_set_membind_nodeset(טופולוגיה, obj2->nodeset, HWLOC_MEMBIND_THREAD,HWLOC_MEMBIND_MIGRATE); #endifON_ERR_GOTO(retval, out_destroy_tok, "hwloc_set_membind"); } if (cpu_affinity) { retval = hwloc_set_cpubind(topology, obj2->cpuset, HWLOC_CPUBIND_STRICT); ON_ERR_GOTO(retval, out_destroy_tok, "hwloc_set_cpubind"); } }
מדריך למשתמש של יחידה פונקציונלית מאיץ DMA ארכיון
גרסת Intel Acceleration Stack | מדריך למשתמש (PDF) |
2.0 | מדריך למשתמש של יחידת מאיץ DMA (AFU). |
היסטוריית תיקונים של מסמך עבור המדריך למשתמש של יחידה פונקציונלית של DMA Accelerator
גרסת מסמך |
האצת אינטל גרסת מחסנית |
שינויים |
2020.08.03 |
2.0.1 (נתמך עם Intel
Quartus® Prime Pro Edition 19.2) |
תיקן את תמונת AF file שם בסעיף קומפילציה של DMA AFU Example. |
2020.04.17 |
2.0.1 (נתמך עם Intel
Quartus Prime Pro Edition 19.2) |
תיקן הצהרה ב קהל מיועד סָעִיף. |
2020.02.20 |
2.0.1 (נתמך עם Intel
Quartus Prime Pro Edition 19.2) |
תוקנה שגיאת הקלדה. |
2019.11.04 |
2.0.1 (נתמך עם Intel Quartus Prime Pro Edition 19.2) |
• החליף את ה-fpgaconf ב-fpgasupdate בעת קביעת תצורת ה-FPGA עם ה-AFU המוקדם בסעיף הפעלת ה-DMA AFU Example.
• נוספה כתובית כרטיס האצה לתכנות Intel FPGA D5005 לכותרת המסמך. • נוסף משתנה סביבה $OPAE_PLATFORM_ROOT. • סעיף שונה מודל תכנות תוכנה לעריכות קטנות. • נוסף קטע חדש קומפילציה של DMA AFU Example. • סעיף שונה אופטימיזציה לשיפור ביצועי DMA לעריכות קטנות. |
2019.08.05 |
2.0 (נתמך עם Intel
Quartus Prime Pro Edition 18.1.2) |
שחרור ראשוני. |
תאגיד אינטל. כל הזכויות שמורות. Intel, הלוגו של Intel וסימני Intel אחרים הם סימנים מסחריים של Intel Corporation או של חברות הבת שלה. אינטל מתחייבת לביצועים של מוצרי ה-FPGA והמוליכים למחצה שלה לפי המפרט הנוכחי בהתאם לאחריות הסטנדרטית של אינטל, אך שומרת לעצמה את הזכות לבצע שינויים בכל מוצר ושירות בכל עת ללא הודעה מוקדמת. אינטל אינה נושאת באחריות או חבות הנובעת מהיישום או השימוש בכל מידע, מוצר או שירות המתוארים כאן, למעט כפי שהוסכם במפורש בכתב על ידי אינטל. ללקוחות אינטל מומלץ להשיג את הגרסה העדכנית ביותר של מפרטי המכשיר לפני הסתמכות על מידע שפורסם ולפני ביצוע הזמנות של מוצרים או שירותים.
- ניתן לתבוע שמות ומותגים אחרים כרכושם של אחרים.
מסמכים / משאבים
![]() |
כרטיס האצה לתכנות Intel FPGA D5005 [pdfמדריך למשתמש כרטיס האצה לתכנות FPGA, D5005, כרטיס האצה לתכנות FPGA D5005, יחידה פונקציונלית מאיץ DMA |