|
<!--插入廣告JS代碼--> |
一、結(jié)構(gòu)特點 16-bit定點DSP
C55x有雙MAC單元;C54x有單MAC單元
C55的指令長度可變,且沒有排隊的限制
C55x有12組總線;C54x有8組總線
二、綜合介紹
C5000是16-bit定點DSP系列,包括舊有的C5x、當(dāng)前主流的C54x和最新的C55x。
C55x和C54x源代碼兼容,而C5x和C2x源代碼兼容。C54x關(guān)注于低功耗,而C55x則將低功耗提到一個新水平:300MHz的C55x和120MHz的C54x相比,性能提高5倍,而功耗則降到六分之一。盡管C5x還在全線生產(chǎn),但公司已經(jīng)將新設(shè)計轉(zhuǎn)向C54x 和C55x。C54x 和C55x采用改進(jìn)的哈佛結(jié)構(gòu)。
C55x 具有12組獨立的總線,而C54x則有8組。它們都有一組程序總線和相應(yīng)的程序地址總線。C54x總線的寬度為16-bit,而C55x總線的寬度為32-bit。C55x有三組數(shù)據(jù)讀總線和兩組數(shù)據(jù)寫總線,而C54x有兩組數(shù)據(jù)讀總線和一組數(shù)據(jù)寫總線。每組數(shù)據(jù)總線都有其相應(yīng)的地址總線。C55x的數(shù)據(jù)地址總線的寬度為24-bit,而C54x的數(shù)據(jù)地址總線的寬度為16-bit。
C54x使用兩個輔助寄存器算術(shù)單元,在每個周期內(nèi)產(chǎn)生一個或兩個數(shù)據(jù)存儲器地址。這四組內(nèi)部總線和兩個地址發(fā)生器使其可以進(jìn)行多操作數(shù)運算。
C55x的地址-數(shù)據(jù)流單元(ADFU)包含了專門的硬件來管理五組數(shù)據(jù)總線。該ADFU也可以作為通用的16-bit ALU,用于簡單的算術(shù)運算。該ALU從指令緩沖單元(IU)接收立即數(shù),和存儲器、ADFU寄存器、數(shù)據(jù)計算單元(DCU)寄存器、程序流單元(PFU)寄存器作雙向通信。無論是ALU,還是三個地址寄存器ALU(ARAU)中的一個,都可以修改作間接尋址的九個地址寄存器。這三個ARAU為C55x的三組數(shù)據(jù)讀總線提供獨立的地址。這種并行性保證了在每個CPU周期內(nèi)DCU去讀兩個16-bit的操作數(shù)和一個16-bit的系數(shù)。
C55x的DCU包含了兩個MAC單元,在單周期內(nèi)作兩個17217-bit的MAC運算。它還包含了一個40-bit的ALU和四個40-bit的累加器寄存器、一個桶型移位器、以及專門的Viterbi算法硬件。每個MAC單元包含一個乘法器和帶32-或40-bit飽和邏輯的加法器。三個數(shù)據(jù)讀總線將兩個數(shù)據(jù)流和一個公共系數(shù)流送給兩個MAC單元。用戶可以用ALU作32-bit的運算,或分開作兩個16-bit的運算。除開接受從DCU的40-bit Acc寄存器來的輸入外,ALU還從IU接受立即數(shù),并和存儲器、ADFU寄存器、PFU寄存器作雙向通信。
C54x是單17217-bit MAC機器,有一個40-bit的加法器、兩個40-bit的Acc和一個分開的40-bit的ALU。與C55x相類似,C54x的ALU也可以作成兩個16-bit的配置,完成兩個單周期運算。乘法器輸出處的40-bit的加法器允許作非流水的MAC運算,以及并行的兩個加法和乘法。單周期歸一化和指數(shù)編碼支持浮點數(shù)運算。
兩個系列的結(jié)構(gòu)都支持一個桶型移位器,將40-bit的Acc的值左移或右移最多達(dá)31bit。該桶型移位器將移位后的值送給DCU的ALU,以便作進(jìn)一步的運算。指令集中關(guān)于二操作數(shù)、三操作數(shù)和32-bit操作數(shù)的指令,支持結(jié)構(gòu)的并行性。八個可以獨立尋址的輔助寄存器和軟件堆棧提高了C編譯器的效率。
C55x可以執(zhí)行可變長度的指令,這和C54x有顯著的不同。C54x的指令長度為固定的16-bit,而C55x的指令長度則從8到48 bit。C55x的IU緩存64 byte的代碼,且有一個解碼邏輯來確認(rèn)可變長度指令中各指令的區(qū)別。局部循環(huán)指令使用指令緩沖隊列來循環(huán)執(zhí)行代碼塊。指令緩沖隊列還可以在執(zhí)行條件程序流控制指令的條件測試時,推測性地提取指令。指令解碼器按排列順序?qū)χ噶罱獯a,而不是執(zhí)行動態(tài)時序,從而可以在預(yù)定的時間得到結(jié)果。
C55x的PFU跟蹤程序的執(zhí)行點,并為多達(dá)16Mbyte的程序存儲器產(chǎn)生24-bit的地址。該單元的硬件,可用于循環(huán)、靈活性轉(zhuǎn)移、條件執(zhí)行、以及流水保護(hù)。單獨的程序計數(shù)器可以保證從子程序或中斷服務(wù)子程序快速返回。該PFU還包括管理指令流水和四個CPU狀態(tài)寄存器的邏輯。它以硬件方式可以提供四層塊循環(huán)嵌套。其硬件還支持條件循環(huán)。PFU處理流水控制冒險,并對讀后寫及寫后讀提供保護(hù)。當(dāng)在指令流中這種冒險發(fā)生時,流水保護(hù)邏輯就插入一些周期,保證程序的正確執(zhí)行。集成的軟件等待狀態(tài)發(fā)生器使用戶可以使用較慢的外部存儲器。
該系列的所有DSP都支持片內(nèi)雙訪問RAM(DARAM),用戶可以將其配置為程序存儲器或數(shù)據(jù)存儲器。C55x還有擴(kuò)展的同步突發(fā)性RAM、同步DRAM和異步SRAM及DRAM。片內(nèi)的鎖相環(huán)(PLL)允許用戶抑制時鐘,但C55x核還可以激活與自動管理片內(nèi)外設(shè)和存儲器的功耗。當(dāng)程序不再訪問片內(nèi)存儲器時,它們就會被切換到低功率模式。處理器對片內(nèi)外設(shè)也提供類似的控制。
C55x還設(shè)置了用戶可控的低功率IDLE域,包括CPU、DMA、外設(shè)、外部存儲器接口、指令隊列、以及時鐘發(fā)生電路。
三、尋址模式
C54x支持單數(shù)據(jù)存儲器操作數(shù)尋址和32-bit操作數(shù)尋址,還使用并行指令支持雙數(shù)據(jù)存儲器操作數(shù)尋址。它也提供立即數(shù)尋址、存儲器映射尋址、循環(huán)尋址和位倒序?qū)ぶ贰?
在C54x的基礎(chǔ)上,C55x還支持絕對值尋址、寄存器間接尋址、直接尋址,即位移模式。C55x的ADFU包括專門的寄存器,支持使用間接尋址指令的循環(huán)尋址。可以同時使用五個獨立的循環(huán)緩沖器和三個獨立的緩沖器長度。這些循環(huán)緩沖器沒有地址排隊的限制。C54x支持兩個任意長度的循環(huán)緩沖器。
四、特殊指令
C54x有專門功能指令,如FIR濾波器、單指令或塊指令循環(huán)、八個并行指令(如并行存儲或乘加)、乘法累加和減(十個乘法指令)、八個雙操作數(shù)存儲器搬移。C55x還有專門的指令,充分利用增加的功能單元和并行能力的優(yōu)點。用戶定義的并行機制,允許將執(zhí)行兩個操作的指令加以組合。
五、開發(fā)支持
eXpressDSP軟件技術(shù)包括DSP集成開發(fā)工具:可升級的實時軟件基礎(chǔ)、可重復(fù)使用的應(yīng)用軟件接口標(biāo)準(zhǔn)、以及不斷增加的第三方的軟件模塊。Code Composer Studio是一個集成的DSP開發(fā)工具套件,包括C5000的C編譯器、DSP/BIOS、實時數(shù)據(jù)交換技術(shù)等。