陳泓言 王浩
北京動力機械研究所 北京 100074
所謂“DSP”,即Digital Signal Process的簡稱,意為數字信號處理技術。基于多核DSP的軟件主從架構設計,就是以配備有數字信號處理功能的多核芯片為硬件基礎,進行特定軟件架構的規劃搭建。現階段,該項技術工作已被廣泛運用在智能家電、工業控制、移動通信、網絡設備等多個領域當中,并發揮出了提升節能降耗水平、提高指令執行速率、增強信號處理兼容性等多種積極作用。
為了確保軟件主從架構的應用質量,相關人員必須要以多核DSP芯片及其他硬件配置為基礎,開展設計需求的全面化、實際化分析,為設計思路的合理規劃提供有力依據。接下來,以業內常用的TMS320C6678八核DSP芯片為例進行具體說明:
首先,在不考慮外設支持的情況下,八核DSP芯片的L1、L2內存空間分別為每核32KB、512KB,對信息數據的承載能力相對有限。所以,相關人員在軟件主從架構的設計實踐中,應對內存空間進行合理的劃分配置,以避免處理器在運行過程中發生系統過載的情況,增大軟件程序進程阻滯、崩潰無響應等故障問題的發生概率[1]。
其次,在設計多核DSP的軟件架構時,必須要對主核與從核的數量、功能進行合理分配,以確保滿足復雜的軟件程序運作機制,實現多種軟件任務的有效執行。在此基礎上,還需避免不同功能核芯之間存在沖突或干涉,并保留核與核之間基本的數據交互與信息共享關系。
最后,為了提高基于多核DSP的軟件系統的適用性與發展性,相關人員在開展主從架構設計時,還需要預留出充足的數據接口與擴展點,以滿足軟件程序后續的換代升級、模塊增刪、規模拓展、自定義開發等需求。在TMS320C66787芯片中,每個核都可實現操作系統的獨立運行,且具備獨立的以太網接口與SRAM。所以,可采取預留整體從核的方式,為軟件系統提供出可靠的拓展空間。
一般情況下,多核DSP芯片保佑4MB的片上共享內存、32KB的L1單核內存以及512KB的L2單核內存。在此基礎上,還可支持一定量的外部擴展內存,如DDR3的2GB外存。在開展軟件主從架構的設計實踐時,相關人員應對核芯單體、芯片整體的存儲空間進行科學分配,以免軟件系統搭建完成后出現程序頻繁崩潰的情況。首先,為了滿足多個從核多量化的數據處理與操作響應需求,應將4MB共享內存中的3MB留給從核使用,僅將1MB空間分配給主核即可。其次,為了獲得更快的數據處理速度,可將多核DSP芯片的所有L2內存設為Cache,以便于目標地址的快速訪問。最后,對空間較大的外部擴展內存進行細化分配,分別將256MB、512MB提供給主核、從核,余下空間則保留下來用于軟件的升級拓展,或同樣設置為Cache,進一步提高數據存儲緩沖與快速處理的能力水平。此外,空間較小的L1單核內存可不作處理,以滿足主核、從核的最基本數據交互需求。
在基于多核DSP芯片設計軟件系統的主從架構時,可將0核設置成主核,并將其余核設置為從核,如TMS320C66787芯片為八核處理器,則1核到7核為從核。其中,主核主要負責軟件系統的核心控制、通信交互與任務管理,從核則負責執行任務,對相關信息數據進行算法處理與傳輸存儲。同時,各從核之間應保證相對獨立性,避免從核出現功能交疊、算法重合、路徑混亂的情況,以免對軟件的有效應用產生負面影響[2]。例如,在設計以TMS320C66787芯片為硬件基礎的工業控制軟件系統時,相關人員可將1核作為主控管理核芯,用于用戶操作指令的反饋,以及多種工業設備的數據調度。將其余7個核作為次核,用于設備運行過程中溫度、電流、電壓等數據的動態獲取與運算處理,并將處理結果反饋給主核,以此推動工業控制行為的實施。
在保證多核DSP芯片中各核獨立的基礎上,還需要實現核之間的數據交互。通常情況下,這一需求可依托芯片的4MB共享內存以及外部擴展內存進行滿足。設計實踐中,可先建立其主核與從核共同使用的DDR3存儲空間,并建立起相應的FIFO隊列。在軟件系統的運行時,FIFO隊列的首尾兩端指針會出現動態變化,以此表明是否存在可用于共享的存儲空間,從而為主核、從核的數據共享、通信交互提供依據。同時,應確保各個從核與FIFO隊列之間的匹配性,防止FIFO隊列在溝通主核時出現相互干涉的情況。值得一提的是,在這樣的設計方式之下,主核與從核的交互無須CPU參與支持,因此能有效避免CPU的利用消耗,為系統運行效率的保持與提升提供有力支持。
總而言之,多核DSP芯片與普通芯片存在結構上的明顯差異,所以相關人員在開展軟件主從架構設計時也應體現針對性。實踐中,應對內存空間配置、核芯主從關系、系統升級拓展等方面的需求進行充分考量,并結合多核DSP芯片的硬件基礎條件,進行內存、功能、數據交互等方面的合理設計,以促進芯片價值的充分發揮,保障軟件系統投用運行的穩定性、高效性與安全性。