TMS320C55x DSP并行處理技術分析與應用
發(fā)布時間:2008/5/26 0:00:00 訪問次數(shù):805
    
    
     tms320c55x dsp是一種高性能的數(shù)字信號處理器,其強大的并行處理能力能夠進一步提高其運算能力。本文介紹了c55xdsp的內核結構以及用戶自定義并行指令時必須遵守如下3條并行處理基本規(guī)則,并介紹了6種典型的并行處理應用。利用本文介紹的方法使用并行處理能力將有效提高程序執(zhí)行效率,同時降低系統(tǒng)功耗。 德州儀器公司(ti)的tms320c55x(簡稱c55x)dsp內核是在tms320c54x(簡稱c54x)基礎上開發(fā)出來的,并可以兼容c54x的源代碼。c55x的內核電壓降到了1v,功耗降到0.05mw/mips,是c54x的1/6。c55x的運行時鐘可以達到200mhz,是c54x的兩倍,再加上c55x在c54x結構上作了相當大的擴展,程序執(zhí)行時可以大量采用并行處理,這樣使得c55x的實際運算能力可以達到300mips以上。 c55x dsp已越來越多地應用于各種手持便攜終端當中。以下我們將通過詳細介紹c55x的cpu內核結構,討論其并行處理技術的應用。 c55x dsp內核結構 c55x dsp是一款采用改良型哈佛結構,高度模塊化的數(shù)字信號處理器擁有比普通dsp更為豐富的硬件資源,能夠有效提高運算能力。其內核結構如圖1所示,整個處理器內部分為5個大的功能單元:存儲器緩沖單元(m單元)、指令緩沖單元(i單元)、程序控制單元(p單元)、地址生成單元(a單元)和數(shù)據(jù)計算單元(d單元),各個功能單元之間通過總線連接。c55x dsp中有1條32位程序數(shù)據(jù)總線(p總線),1條24位程序地址總線(pa總線),5條16位的數(shù)據(jù)總線(b、c、d、e、f總線)和5條24位的數(shù)據(jù)地址總線(ba、ca、da、ea、fa總線)。這種高度模塊化的多總線結構使得c55x dsp擁有超強的并行處理能力。 m單元主要管理數(shù)據(jù)區(qū)(包括i/o數(shù)據(jù)區(qū))與中央處理器(cpu)之間的數(shù)據(jù)傳送,使得高速cpu與外部相對低速的存儲器之間在吞吐量上的瓶頸可以得到一定程度的緩解。 i單元從程序數(shù)據(jù)總線接收程序代碼,并將其放入指令緩沖隊列(ibq)中,然后利用指令譯碼器將指令緩沖隊列中的程序代碼進行譯碼,最后再將譯碼后的指令送給p單元、a單元、d單元進行處理。 p單元主要是通過判斷是否滿足條件執(zhí)行指令的條件來控制程序地址的產生,達到控制程序流程的目的。程序控制單元中還含有程序控制寄存器、循環(huán)控制寄存器、中斷寄存器和狀態(tài)寄存器等硬件寄存器。通過循環(huán)控制寄存器的設置,可以直接控制程序中的循環(huán)次數(shù)等,而不必像在普通dsp中一樣在外部對循環(huán)條件進行判斷,從而可以有效提高運行效率。 a單元的功能是產生讀寫數(shù)據(jù)空間的地址。地址生成單元由數(shù)據(jù)地址產生電路(dagen)、16位的算術邏輯單元(alu)和一組寄存器構成。c55x dsp地址產生與其他功能模塊分開,保證不會因為地址產生的原因使得單條指令需要在多個時鐘周期內完成,提高了dsp的運行效率。a單元中的寄存器包括數(shù)據(jù)頁寄存器、輔助寄存器、堆棧指針寄存器、循環(huán)尋址寄存器和臨時寄存器等。 d單元是c55x dsp中主要的數(shù)據(jù)執(zhí)行部件,完成大部分數(shù)據(jù)的算術運算工作。它由移位器、40位alu、兩個17位的乘累加器(mac)和若干寄存器構成。數(shù)據(jù)計算單元的兩個乘累加器能夠并行使用,可以有效提高dsp運行效率。d單元中的寄存器包括累加器和兩個用于維特比譯碼的專用指令寄存器。 并行處理基本準則 如圖1所示c55x dsp內核結構可知,整個處理器的地址及數(shù)據(jù)運算由p單元、a單元和d單元完成。這三個單元相對獨立,各自通過總線與數(shù)據(jù)區(qū)及程序區(qū)相連。這種相互獨立的模塊化結構,在硬件特性上確保這三個單元在同一時鐘周期內能夠進行并行處理,完成各自不同的運算操作。 在c55x dsp指令集中有一些固定搭配的并行執(zhí)行指令(主要是利用d單元雙mac結構的并行指令),這些被固定使用的并行指令之間使用“::”符號連接。除了這些固有的并行指令外,用戶也可以根據(jù)cpu結構特征自行定義并行指令,并行的兩條指令之間需使用“||”符號連接,以區(qū)分指令集中的并行指令。 用戶自定義并行指令時,必須遵守如下3條并行處理基本規(guī)則: 規(guī)則1: 保證不產生硬件沖突,包括操作數(shù)、寄存器、總線及各運算模塊的沖突。在對c55x dsp的所有操作中,對p、a、d三個單元進行操作的指令類型有14類,這14類操作指令之間有很大一部分可以相互并行運行。經過我們對c55x dsp硬件電路結構的分析,在只考慮硬件模塊沖突的情況下,我們得出如圖2所示的c55xdsp并行處理能力分析圖。圖中將14類操作指令組成了一個14×14的矩陣,列出了每一類指令與其自身及其他13類指令并行執(zhí)行的能力。圖中畫有(符號的空格代表不能并行執(zhí)行,相反沒有任何符號的空格代表可以并行執(zhí)行。 在考慮并行處理的硬件沖突時,還需要考慮總線資源的沖突?偩資源的沖突通常發(fā)生在數(shù)據(jù)總線和常量總線,c55x dsp中含有5條數(shù)據(jù)總線和2條常量總線,各條總線與各運算模塊的連接如圖3所示
    
    
     tms320c55x dsp是一種高性能的數(shù)字信號處理器,其強大的并行處理能力能夠進一步提高其運算能力。本文介紹了c55xdsp的內核結構以及用戶自定義并行指令時必須遵守如下3條并行處理基本規(guī)則,并介紹了6種典型的并行處理應用。利用本文介紹的方法使用并行處理能力將有效提高程序執(zhí)行效率,同時降低系統(tǒng)功耗。 德州儀器公司(ti)的tms320c55x(簡稱c55x)dsp內核是在tms320c54x(簡稱c54x)基礎上開發(fā)出來的,并可以兼容c54x的源代碼。c55x的內核電壓降到了1v,功耗降到0.05mw/mips,是c54x的1/6。c55x的運行時鐘可以達到200mhz,是c54x的兩倍,再加上c55x在c54x結構上作了相當大的擴展,程序執(zhí)行時可以大量采用并行處理,這樣使得c55x的實際運算能力可以達到300mips以上。 c55x dsp已越來越多地應用于各種手持便攜終端當中。以下我們將通過詳細介紹c55x的cpu內核結構,討論其并行處理技術的應用。 c55x dsp內核結構 c55x dsp是一款采用改良型哈佛結構,高度模塊化的數(shù)字信號處理器擁有比普通dsp更為豐富的硬件資源,能夠有效提高運算能力。其內核結構如圖1所示,整個處理器內部分為5個大的功能單元:存儲器緩沖單元(m單元)、指令緩沖單元(i單元)、程序控制單元(p單元)、地址生成單元(a單元)和數(shù)據(jù)計算單元(d單元),各個功能單元之間通過總線連接。c55x dsp中有1條32位程序數(shù)據(jù)總線(p總線),1條24位程序地址總線(pa總線),5條16位的數(shù)據(jù)總線(b、c、d、e、f總線)和5條24位的數(shù)據(jù)地址總線(ba、ca、da、ea、fa總線)。這種高度模塊化的多總線結構使得c55x dsp擁有超強的并行處理能力。 m單元主要管理數(shù)據(jù)區(qū)(包括i/o數(shù)據(jù)區(qū))與中央處理器(cpu)之間的數(shù)據(jù)傳送,使得高速cpu與外部相對低速的存儲器之間在吞吐量上的瓶頸可以得到一定程度的緩解。 i單元從程序數(shù)據(jù)總線接收程序代碼,并將其放入指令緩沖隊列(ibq)中,然后利用指令譯碼器將指令緩沖隊列中的程序代碼進行譯碼,最后再將譯碼后的指令送給p單元、a單元、d單元進行處理。 p單元主要是通過判斷是否滿足條件執(zhí)行指令的條件來控制程序地址的產生,達到控制程序流程的目的。程序控制單元中還含有程序控制寄存器、循環(huán)控制寄存器、中斷寄存器和狀態(tài)寄存器等硬件寄存器。通過循環(huán)控制寄存器的設置,可以直接控制程序中的循環(huán)次數(shù)等,而不必像在普通dsp中一樣在外部對循環(huán)條件進行判斷,從而可以有效提高運行效率。 a單元的功能是產生讀寫數(shù)據(jù)空間的地址。地址生成單元由數(shù)據(jù)地址產生電路(dagen)、16位的算術邏輯單元(alu)和一組寄存器構成。c55x dsp地址產生與其他功能模塊分開,保證不會因為地址產生的原因使得單條指令需要在多個時鐘周期內完成,提高了dsp的運行效率。a單元中的寄存器包括數(shù)據(jù)頁寄存器、輔助寄存器、堆棧指針寄存器、循環(huán)尋址寄存器和臨時寄存器等。 d單元是c55x dsp中主要的數(shù)據(jù)執(zhí)行部件,完成大部分數(shù)據(jù)的算術運算工作。它由移位器、40位alu、兩個17位的乘累加器(mac)和若干寄存器構成。數(shù)據(jù)計算單元的兩個乘累加器能夠并行使用,可以有效提高dsp運行效率。d單元中的寄存器包括累加器和兩個用于維特比譯碼的專用指令寄存器。 并行處理基本準則 如圖1所示c55x dsp內核結構可知,整個處理器的地址及數(shù)據(jù)運算由p單元、a單元和d單元完成。這三個單元相對獨立,各自通過總線與數(shù)據(jù)區(qū)及程序區(qū)相連。這種相互獨立的模塊化結構,在硬件特性上確保這三個單元在同一時鐘周期內能夠進行并行處理,完成各自不同的運算操作。 在c55x dsp指令集中有一些固定搭配的并行執(zhí)行指令(主要是利用d單元雙mac結構的并行指令),這些被固定使用的并行指令之間使用“::”符號連接。除了這些固有的并行指令外,用戶也可以根據(jù)cpu結構特征自行定義并行指令,并行的兩條指令之間需使用“||”符號連接,以區(qū)分指令集中的并行指令。 用戶自定義并行指令時,必須遵守如下3條并行處理基本規(guī)則: 規(guī)則1: 保證不產生硬件沖突,包括操作數(shù)、寄存器、總線及各運算模塊的沖突。在對c55x dsp的所有操作中,對p、a、d三個單元進行操作的指令類型有14類,這14類操作指令之間有很大一部分可以相互并行運行。經過我們對c55x dsp硬件電路結構的分析,在只考慮硬件模塊沖突的情況下,我們得出如圖2所示的c55xdsp并行處理能力分析圖。圖中將14類操作指令組成了一個14×14的矩陣,列出了每一類指令與其自身及其他13類指令并行執(zhí)行的能力。圖中畫有(符號的空格代表不能并行執(zhí)行,相反沒有任何符號的空格代表可以并行執(zhí)行。 在考慮并行處理的硬件沖突時,還需要考慮總線資源的沖突。總線資源的沖突通常發(fā)生在數(shù)據(jù)總線和常量總線,c55x dsp中含有5條數(shù)據(jù)總線和2條常量總線,各條總線與各運算模塊的連接如圖3所示