數(shù)字信號處理器(DSP)做某些模擬工作比模擬電路要出色,因此得以生存。在某些情況下,由于成本或復雜性的原因,任務甚至不能考慮用模擬電路,DSP仍然是一種可行的選擇,在很多情況下可以輕松地完成那些任務。
這是因為DSP進行算術運算既好又快,如加法和乘法。聰明的數(shù)學家和工程師利用了這一實際,通過創(chuàng)造算法來解決主要采用兩種數(shù)學運算的復雜的信號處理任務。
如今的DSP芯片不僅僅只是一個優(yōu)秀的處理引擎。芯片上還集成了存儲子系統(tǒng)、高速接口、I/O等等。增加這些部件的目的是為了提高整體性能,降低功耗以及針對特殊的處理任務。
為了更好地理解各種DSP芯片的可用選項以及器件各部分是如何配合作為一個整體,分析當今市場上幾種有代表性的DSP是有幫助的。我們將仔細研究單核、單核加微控制器以及多核DSP芯片的例子。
單核DSP芯片
認為DSP芯片有一個單DSP核是很自然的,例如,TI的TMS320C6452(圖1)。此芯片是高性能固點DSP的TMS320C64x+家族的一員,針對工藝密集的多通道電信基礎設施和醫(yī)用成像系統(tǒng)。DSP核只不過是芯片設計的一部分,芯片的其余部分還包括存儲器、I/O以及其他功能模塊。
C6452 DSP集成了組織為兩級存儲子系統(tǒng)的片上存儲器。一級(L1)程序和數(shù)據(jù)存儲器每個都是32k字節(jié)。此存儲器可配置為映射RAM、高速緩存,或者兩者的某種組合。
當配置為高速緩存時,L1程序(L1P)是一個直接映射高速緩存,而L1數(shù)據(jù)(L1D)是一個雙向指令集結(jié)合高速緩存。二級(L2)存儲在程序與數(shù)據(jù)空間之間共享。L2存儲也能配置為映射RAM、高速緩存或者兩者的某種組合。設計師可使用片上存儲器為其項目增加特色。
C6452還包括兩個串行吉比特媒體獨立接口(SGMII)以太媒體接入控制(MAC)口和一個吉比特開關。此開關通過自動監(jiān)控數(shù)據(jù)流以確保只有一個合適的TI將決策門加到所能的開關上,例如,用來辨別語音和數(shù)據(jù)通信,以提高多芯片設計的效率。如果DSP全部用于語音處理,就會阻止數(shù)據(jù)流進入,這樣可更有效地使用其處理帶寬。此外,器件具有兩個電信串行接口端(TSIP),可無縫連接至常見電信串行數(shù)據(jù)流。
C6452上的其他I/O有一個66MHz PCI接口或通用主機端接口(UHPI);一個到外部存儲器的雙數(shù)據(jù)率(DDR2)接口;TI開發(fā)的專利串行通信接口VLYNQ;一個16位外部存儲器接口(EMIFA);一個多通道通用音頻串行口(McASP);以及其他熟悉的接口。從此DSP的I/O判斷,可以肯定它是用于電信應用。其他應用用的是不同的I/O。
C6452和TI其他幾款DSP的核心是C64x mega模塊,其組成包括幾個元件:C64x+處理器、L1程序和數(shù)據(jù)存儲控制器、L2存儲控制器、內(nèi)部DMA(IDMA)、中斷控制器、掉電控制器以及外部存儲控制器(圖2)。Mega模塊還支持對L1P、L1D和L2存儲器的存儲保護。此外還提供mega模塊資源的帶寬管理。
模塊上的C64x+處理器是一非??焖俚腄SP,工作速率可達1.2GHz。它采用8個功能模塊、兩個寄存器文件以及兩個數(shù)據(jù)路徑。在這八個功能單元中,有兩個是乘法器或者M單元。每個M單元在每個時鐘周期執(zhí)行四次16位×16位乘法-累加(MAC)。
因此,在C64x+核上,每個周期可執(zhí)行8次16位×16位MAC。在1.2GHz時鐘速率下,每秒鐘可發(fā)生9600次16位MMAC。此外,C64x+核的每個乘法器每個時鐘周期可計算一次32位×32位MAC或者四次8位×8位MAC。順便提一下,C6452不是以900M的最快的速度工作。
C64x+處理器的新特征有一個令人鐘愛的名字SPLOOP。這一小型指令緩沖器有助于創(chuàng)建軟件流水線操作環(huán)路,在這些環(huán)路中并行執(zhí)行環(huán)路的多次迭代。SPLOOP緩沖器減小了有關軟件流水線操作的代碼大小。
DSP+微控制器芯片
另一類DSP在芯片上附加微控制器核。有時,為一個分離的核,如ARM處理器。有的情況下,處理器核同時包含DSP和MCU功能。這種情況就是眾所周知的模擬器件公司(ADI)的Blackfin DSP架構(gòu)。
Blackfin是基于具有混合16/32型指令集架構(gòu)的10級RISC MCU/DSP流水線,包括雙16位MAC DSP指令和一個32位類似于RISC的指令集。這種組合提供信號處理功能,具有與通用處理器有關的使用方便的特點。Blackfin處理器架構(gòu)完全兼容SIMD(單指令多數(shù)據(jù))并包括視頻與圖像處理加速指令。
這種處理屬性組合使Blackfin處理器與其同類產(chǎn)品不同。他們被設計為在信號處理和控制處理應用方面工作都非常好,在很多情況下,設計中無需獨立的異類處理器。Blackfin處理器在單核產(chǎn)品中速率高達756MHz。
除本地支持8位數(shù)據(jù)外,8位數(shù)據(jù)字長是很多像素處理算法常用的,Blackfin架構(gòu)包括專門定義的指令,用于在視頻處理應用中增強性能。例如,SUM ABSOLUTE DIFFERENCE指令支持用于視頻壓縮算法(如MPEG2、MPEG4和JPEG)的運動估算算法。
這種架構(gòu)處理多長度指令編碼。非常常用的控制型指令被編碼為緊湊的16位字,更多算術密集的信號處理指令編碼為32位值。處理器將16位控制指令與32位信號處理指令混合并連接成64位組,以使存儲器容量最大化。緩沖和取指令時,內(nèi)核完全自動挑選總線長度,因為內(nèi)核沒有調(diào)整約束。
所有Blackfin處理器,如ADSP-BF523,都包含獨立的DMA控制器,支持自動數(shù)據(jù)傳輸,而對處理器內(nèi)核的操作壓力很小(圖3)。DMA傳輸可發(fā)生在內(nèi)部存儲器與許多具備可直接存儲器存取(DMA)功能外設的任何部分之間。傳輸也能發(fā)生在外設和接至外部存儲器接口的外部器件之間,包括SDRAM控制器和異步存儲控制器。