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