
摘要:德州儀器TI推出的八核DSP芯片TMS320C6678是目前基於Keystone架構的最高性能的DSP器件,是市場上應用廣泛的C6455高端處理平台升級的理想選擇。本文主要研究了C6678 DSP程序的各種單核加栽和多核加載的幾種模式,主要用到多核boot技術,對EMIF16 FLASH boot引導模式、主機(PCIe接口)引導模式、I2C引導模式、SRIO引導模式、網絡引導boot引導模式的方法做了研究,對TI的高性能多核架構DSP芯片的程序加載提供了有效的參考幫助。
近年來,以數字信號處理器(DSP)為基礎的通用信號處理模塊的研製受到人們的重視,DSP技術廣泛應用於雷達、通信、圖像處理等領域。隨著聲納、雷達、高清視頻以及嵌入式機器視覺等需求不斷攀升,多核DSP的應用已成為滿足發展的重要途徑。由於DSP係統穩定運行起來後,在實際的應用中都要脫離件,實現係統的自動加載,尤其是多核DSP加載過程中,不同於多芯片間的加載方式,需要實現核間的調度,數據協同處理,因此多核啟動的加載方式需要做具體研究。
TMS320C6678 DSP是TI最新發布的一款基於KeyStone架構高性能的超長指令字(VLIW)架構芯片,片內有8個內核,每個核頻率為1.25 GHz,單核每秒高達40 GB MAC定點運算和20 GB FLOP浮點運算能力,工作速度可達10GHz。與目前應用較為廣泛的TMS320C6455 DSP,為單核1.2GHz工作,定點處理能力為9600M MAC。可見C6678的處理能力要遠強於C6455。針對C6678多核協同處理特性,本文以自定義的雙6678板卡平台為基礎,深入研究C6678的多種加載方式,對EMIF16 FLASH boot引導模式、I2C引導模式、SRIO引導模式、網絡引導boot模式做了分析和說明,主機(PCIe接口)引導模式、HYPERLINK引導模式和SPI引導模式的使用,本文不做說明。
1 多核加載方式論述
在C6678的片內地址空間0x20800000到0x20B1FFFF間集成了一塊128K的內部ROM程序,又叫做RBL(ROMBoot Loader),Rom code是C6678出廠時固化在Rom中的,用戶不能改變,在DSP複位或上電時實現將DSP代碼從外部接口讀入到內部高速ram。啟動過程可以大致分為主機引導和內存引導啟動,在內存引導啟動過程代碼從一個外部內存的加載初始應用程序到內部的內存來執行。如果主機模式,啟動程序配置DSP在被動狀態,等待代碼將DSP應用程序程序由外部主機寫入ram開始執行。為適應不同的係統要求,RBL提供了幾種啟動的執行方式。不同的引導方式如表1所示。
2 多核boot預處理
C6678有8個核,采用基於KeyStone架構的中斷控製器、核間通信寄存器以及合適的通信拓撲結構實現多核間的通信,core0為主核,其它7個核可以統一執行相同的Romcode代碼,也可以不同,或者根據核號(即DNUM)進行不同程序的分支。對於core0來說,它主要是讀取DEVS TAT寄存器的加載模式,並根據當前加載模式進行一些接口的初始化和PLL的配置,還要根據加載模式決定是否搬移數據。對於其它的7個核來說,它們主要是掛載IPC中斷,然後進入IDLE狀態等待core0發過來的中斷。中斷一到,就跳到入口地址開始執行程序,待加載工程總體流程如圖1所示。
代碼讀入前要根據不同的boot方式進行轉換格式,轉換工具是將各核的.out文件轉換成.dat或.bin文件,也有網絡boot時要轉換成.eth格式的文件來傳送,不同的轉化方式在各自的boot說明中詳細闡述。無論哪一種啟動方式,首先要boot起來core0之後再引導其他的從核,重點是從核在boot啟動時通過host向DSP寫了MAGIC_ADDRESS並觸發IPC中斷,DSP跳轉到BOOT_MAIGC_ADDRESS所指向的地址執行程序。
本文来自电脑杂谈,转载请注明本文网址:
http://www.pc-fly.com/a/ruanjian/article-32688-1.html
写几亿个字儿也是毫无价值的
许多男人一生娶过多个女人