Yaron Doweck Yael Einziger Supervisor: Mike Sumszyk 1 *הצגת הבעיה *פלטפורמה CorePac overview * KeyStone overview * Evaluation Board * Code Composer Studio * *שלבי העבודה *לוח זמנים 2 * הפרויקט עוסק במימוש אלגוריתם בזמן אמת על מעבד עיבוד אותות מסוג .TI C6678 *מימוש מקבילי על מספר ליבות . *ניצול יכולת העברת מידע באופן יעיל ע"י רכיב .DMA *שימוש באפשרויות הזיכרון הרבות – SRAM L1 and L2, CACHE configuration, Shared L2, DDR3 MEMORY 3 :*חומרה TMS320C6678 Multicore Fixed and Floating-Point Digital Signal Processor .TI המתקדם ביותר של חברתDSPכרטיס ה :*תוכנה Code Composer Studio v5 with BIOS MCSDK 2.0 הכוללת סימולטור של כלTI סביבת פיתוח של .רכיבי הכרטיס 4 * 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) 5 * 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). 6 C66x device family is based on the KeyStone MultiCore Architechture 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. 7 ,TMDXEVM6678L הפרויקט יתבצע על כרטיס : הכרטיס מכיל.הצפוי להגיע ביוני * TI C6678 Processor * 512MB DDR3 Memory * 128MB FLASH Memory * Ethernet port * LEDs and DIP switches * Onboard JTAG emulation with USB interface 8 Core C64x C67x C66x Data type Fixed-Point Floating-Point Fixed and Floating-Point Speed 720-1000 MHz 250-350 MHz 1-1.25 GHz GMAC/core 0.88 0.5 40 GFLOPS/core - 2.4 20 L1 Cache 32KB 32KB 32KB L1P+32KB L1D L2 Cache 1MB - 512KB + 4MB shared Board Power 3.7W@500MHz 1.5W@300MHz (1 core) (1 core) 9 8W@800MHz (8 cores) סביבת פיתוח למערכות Embeddedשל .TIהתוכנה מכילה קומפיילר של רכיבי TIומספר כלי עזר נוספים: * .Debugger * סימולטור של הכרטיס. * Profilerהמאפשר ניתוח מפורט של זמני הריצה. בנוסף ,לסביבת העבודה של CCSיש להוסיף את חבילת הפיתוח המורחבת BIOS MCSDK 2.0המאפשרת פיתוח תוכנה במעבדים מרובי ליבות של .TI 10 BIOS MultiCore Software Development Kit מכילה את אבני הבניין הבסיסיות לפיתוח תוכנה על מעבדים מרובי ליבות של :TI * – SYS\BIOSמערכת הפעלה פשוטה לכרטיס. * – Chip-Support Libraryספריה המאפשרת ממשק לרכיבי המעבד השונים ()Cache,DMA, etc. * – DSPLIBספריה המכילה פונקציות רבות הקשורות לעיבוד אותות. * – IMGLIBספריה המכילה פונקציות רבות לעיבוד תמונה. * מספר דוגמאות קוד בסיסיות. 11 סביבת הפיתוח כוללת סימולטור מתקדם המאפשר לדמות את הרכיבים הבאים: * 8ליבות המעבד. * מנגנון .Cache * מנגנון ניהול זכרון משותף. * זכרון .DDR3 * .Inter-processor communication * .Enhanced-DMA * ועוד. 12 .1 לימוד סביבת העבודה ()CCS .2 לימוד יכולות הכרטיס ותצורות העבודה השונות .3 מימוש אלגוריתם בעיבוד תמונה תוך ניצול כל יכולות הכרטיס .4 הערכת ביצועים 15 First part: Learning the fundamentals 1. Code composer studio basics, profiling and performance analysis capabilities (1 week) 2. Memory configuration and allocation, DMAs, Interrupts (3 weeks) 3. Fixed and Floating point Libraries (DSPlib,VLib,...) (1 week) 4. Multicore configurations (DSP/BIOS operating system, parallel and pipeline processing) (2 weeks) 16 Second part: Implementation of an algorithm in image processing using DMAs/Libs/multicore 1. Implementation of a bidirectional data flow between DDRIII and L1, possibly through L2. (3 weeks) 2. Performance analysis (throughput, latency and accuracy) when using floating point versus fixed point libraries. (2 weeks) 3. Usage of hardware semaphores for parallel data access and Multicore Navigator for enabling messages communication between different cores. (4 weeks) 17