160 likes | 385 Views
Efficient Real-Time Multicore Image Processing on TI C66x. Yaron Doweck Yael Einziger Supervisor: Mike Sumszyk. הצגת הבעיה פלטפורמה CorePac overview KeyStone overview Evaluation Board Code Composer Studio שלבי העבודה לוח זמנים. תוכן המצגת.
E N D
Efficient Real-Time Multicore Image Processing on TI C66x YaronDoweck Yael Einziger Supervisor: Mike Sumszyk
הצגת הבעיה • פלטפורמה • CorePac overview • KeyStone overview • Evaluation Board • Code Composer Studio • שלבי העבודה • לוח זמנים תוכן המצגת
הפרויקט עוסק במימוש אלגוריתם בזמן אמת על מעבד עיבוד אותות מסוג TI C6678. • מימוש מקבילי על מספר ליבות . • ניצול יכולת העברת מידע באופן יעיל ע"י רכיב DMA. • שימוש באפשרויות הזיכרון הרבות –SRAM L1 and L2, CACHE configuration, Shared L2, DDR3 MEMORY הצגת הבעיה
חומרה: TMS320C6678 Multicore Fixed and Floating-Point Digital Signal Processor כרטיס הDSP המתקדם ביותר של חברת TI. • תוכנה: Code Composer Studio v5 with BIOS MCSDK 2.0 סביבת פיתוח של TI הכוללת סימולטור של כל רכיבי הכרטיס. פלטפורמה
8 C66x CorePac DSP’s • Based on TI’s Keystone Multicore Architecture • 320 GMAC/160 GFLOP @ 1.25GHz • 32KB L1P, 32KB L1D, 512KB L2 Per Core • 4MB Shared L2 • 64-Bit DDR3 Interface (DDR3-1600) TMS320C6678
Fixed-Point and Floating point DSP. • L1 Program Memory, configurable as Cache\SRAM. • L1 Data Memory, configurable as Cache\SRAM. • L2 Memory, configurable as Cache\SRAM. • Internal DMA (Data transfer within the CorePac). • External Memory Controller, a bridge from the CorePac to the rest of the device. • Interrupt Controller (redirection due to interrupts or exceptions). C66x CorePac Overview
The KeyStone includes: • Up to 8 cores. • MultiCore Shared Memory (L2 SRAM). • External Memory (DDR 3) interface. • Virtual Address space for each core. • High Speed inter-core communication. C66x device family is based on the KeyStoneMultiCoreArchitechture KeyStone Architecture
הפרויקט יתבצע על כרטיס TMDXEVM6678L, הצפוי להגיע ביוני. הכרטיס מכיל: • TI C6678 Processor • 512MB DDR3 Memory • 128MB FLASH Memory • Ethernet port • LEDs and DIP switches • Onboard JTAG emulation with USB interface Evaluation Board
סביבת פיתוח למערכות Embedded של TI. התוכנה מכילה קומפיילר של רכיבי TI ומספר כלי עזר נוספים: • Debugger. • סימולטור של הכרטיס. • Profiler המאפשר ניתוח מפורט של זמני הריצה. בנוסף, לסביבת העבודה של CCS יש להוסיף את חבילת הפיתוח המורחבת BIOS MCSDK 2.0 המאפשרת פיתוח תוכנה במעבדים מרובי ליבות של TI. Code Composer Studio
BIOS MultiCore Software Development Kit מכילה את אבני הבניין הבסיסיות לפיתוח תוכנה על מעבדים מרובי ליבות של TI: • SYS\BIOS – מערכת הפעלה פשוטה לכרטיס. • Chip-Support Library – ספריה המאפשרת ממשק לרכיבי המעבד השונים (Cache,DMA, etc.) • DSPLIB – ספריה המכילה פונקציות רבות הקשורות לעיבוד אותות. • IMGLIB – ספריה המכילה פונקציות רבות לעיבוד תמונה. • מספר דוגמאות קוד בסיסיות. BIOS MCSDK 2.0
סביבת הפיתוח כוללת סימולטור מתקדם המאפשר לדמות את הרכיבים הבאים: • 8 ליבות המעבד. • מנגנון Cache. • מנגנון ניהול זכרון משותף. • זכרון DDR3. • Inter-processor communication. • Enhanced-DMA. • ועוד. CCS Simulator
לימוד סביבת העבודה (CCS) • לימוד יכולות הכרטיס ותצורות העבודה השונות • מימוש אלגוריתם בעיבוד תמונה תוך ניצול כל יכולות הכרטיס • הערכת ביצועים שלבי העבודה
First part: Learning the fundamentals • Code composer studio basics, profiling and performance analysis capabilities (1 week) • Memory configuration and allocation, DMAs, Interrupts (3 weeks) • Fixed and Floating point Libraries (DSPlib,VLib,...) (1 week) • Multicore configurations (DSP/BIOS operating system, parallel and pipeline processing) (2 weeks) לוח זמנים
Second part: Implementation of an algorithm in image processing using DMAs/Libs/multicore • Implementation of a bidirectional data flow between DDRIII and L1, possibly through L2.(3 weeks) • Performance analysis (throughput, latency and accuracy) when using floating point versus fixed point libraries. (2 weeks) • Usage of hardware semaphores for parallel data access and Multicore Navigator for enabling messages communication between different cores. (4 weeks) לוח זמנים