16位DSP處理器的移位器的研究-基礎(chǔ)電子_第1頁
16位DSP處理器的移位器的研究-基礎(chǔ)電子_第2頁
16位DSP處理器的移位器的研究-基礎(chǔ)電子_第3頁
16位DSP處理器的移位器的研究-基礎(chǔ)電子_第4頁
16位DSP處理器的移位器的研究-基礎(chǔ)電子_第5頁
已閱讀5頁,還剩4頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

精品文檔-下載后可編輯位DSP處理器的移位器的研究-基礎(chǔ)電子

摘要:本文從移位器的功能描述、結(jié)構(gòu)分析入手,并詳細(xì)闡述了一款16位DSP處理器的高頻率低功耗移位器的三個模塊的設(shè)計。

關(guān)鍵詞:移位器;DSPs;設(shè)計

在一般的微處理器中,沒有單獨(dú)設(shè)計的移位器,移位功能在算術(shù)邏輯單元中實現(xiàn)。但由于DSP處理器對運(yùn)算速度要求較高,通過ALU來實現(xiàn)一些移位功能無法滿足其要求,所以在DSP中一般設(shè)有專門的移位器。移位器不僅可以提高一般移位功能的速度,還可以更加高速地實現(xiàn)與2的n次冪的乘法運(yùn)算。因此對DSP處理器的移位器(Shifter)的研究很有必要的。

移位器是是執(zhí)行單元的重要組成部分,所有算法的實現(xiàn)都是由執(zhí)行單元的基本功能組合而成,所有的其他單元例如控制、數(shù)據(jù)通路都是為執(zhí)行單元服務(wù)的,控制執(zhí)行部件的具體動作,為執(zhí)行部件提供充分的數(shù)據(jù)。嵌入式定點(diǎn)16位DSP的執(zhí)行單元結(jié)構(gòu)如圖1所示。DSP執(zhí)行單元包含3個子單元:16位(結(jié)果為40位)移位單元(SHIFT)、16位算術(shù)邏輯單元(ALU)和16位(結(jié)果為40位)乘法累加單元(MAC)。并行的對數(shù)據(jù)寄存器堆(DREG)進(jìn)行數(shù)據(jù)的存取。DREG包含16個16位的通用寄存器,流水線的從DREG中讀取數(shù)據(jù),將指令執(zhí)行的結(jié)果,寫回到DREG中,而所有的這些運(yùn)算操作在一個時鐘周期內(nèi)完成[1]。

16位DSP處理器的移位器主要執(zhí)行的是兩類功能:一是實現(xiàn)移位操作,它的輸入是16位,移位后的輸出是40位。二是指數(shù)檢測,即從16位的輸入數(shù)據(jù)中檢測出前導(dǎo)冗余位的位數(shù)(從高位起),作為結(jié)果指數(shù)輸出到寄存器。

移位操作主要有三種:邏輯移位,算術(shù)移位和規(guī)格化操作。它們都可以在左右兩個方向進(jìn)行,但不能進(jìn)行循環(huán)移位。執(zhí)行邏輯移位時,它的輸入看作是無符號數(shù),移位后左右兩邊的空位均用0填充;算術(shù)移位時,輸入看作有符號補(bǔ)碼數(shù),移位后左邊的空位填充符號位,右邊補(bǔ)0;規(guī)格化操作和上述兩種移位操作相似,但擴(kuò)展位情況比較復(fù)雜一些,移位后右邊填0,左邊的空位要根據(jù)移位控制信號的不同情況填充0、符號位或算術(shù)狀態(tài)寄存器中的進(jìn)位標(biāo)志位AC。三種移位操作中移出邊界(SR39或SR0)的位都被舍棄。

指數(shù)檢測的目的是進(jìn)行類似于定點(diǎn)到浮點(diǎn)的數(shù)據(jù)轉(zhuǎn)換。一個定點(diǎn)數(shù),可以用一個包含尾數(shù)和指數(shù)(也稱階碼)的浮點(diǎn)數(shù)來表示,這樣可以提高數(shù)據(jù)的表數(shù)范圍,同時使得我們的定點(diǎn)DSP能在不增加浮點(diǎn)算法開銷的情況下獲得浮點(diǎn)DSP的某些運(yùn)算能力。指數(shù)檢測(也稱為指數(shù)提取)的結(jié)果就作為指數(shù),然后用這個指數(shù)作為移位控制碼對輸入數(shù)據(jù)進(jìn)行規(guī)格化操作,就得到了尾數(shù)。也可以采用這個方法使一串?dāng)?shù)據(jù)(數(shù)據(jù)塊)共用同一個指數(shù),只是各自的尾數(shù)不同,這種數(shù)據(jù)格式稱為塊浮點(diǎn)格式。

1.結(jié)構(gòu)分析

移位器陣列是一個16×40的桶形移位器[2]。它用于實現(xiàn)各種移位功能:邏輯移位,算術(shù)移位和規(guī)格化操作。輸入數(shù)據(jù)都是16位寬,移位后的40位結(jié)果分為三部分分別送到三個移位結(jié)果寄存器(統(tǒng)稱為SR):SR2,SR1,SR0。移位操作由一個移位控制碼(SHIFT_CODE)和一個參考信號(HI/LO)來控制。移位控制碼是一個8位的有符號數(shù),它表示移位的方向和位數(shù),當(dāng)它為正時左移,為負(fù)時右移。根據(jù)不同的移位操作,它的有4個:移位器指數(shù)寄存器SE的內(nèi)容,SE寄存器的內(nèi)容的相反數(shù),來自指令的立即數(shù),指令立即數(shù)的相反數(shù)。對于算術(shù)移位和邏輯移位,移位控制碼來自移位器指數(shù)寄存器SE或指令中的立即數(shù);對于規(guī)格化操作,移位控制碼為移位器指數(shù)寄存器SE內(nèi)容或指令中立即數(shù)取反。移位器陣列可實現(xiàn)-128-127范圍內(nèi)任意位數(shù)的移位。參考信號(HI/LO)決定移位操作相對于輸出域的參考點(diǎn),它主要是為了實現(xiàn)32位雙精度數(shù)據(jù)移位操作而設(shè)的。當(dāng)參考信號為HI時,認(rèn)為輸入是32位數(shù)據(jù)的高16位,移位以40位輸出域的高16位為參考點(diǎn);當(dāng)參考信號為LO時,認(rèn)為輸入是32位數(shù)據(jù)的低16位,移位的參考點(diǎn)為輸出域的低16位。連續(xù)進(jìn)行兩次不同參考點(diǎn)的16位輸入的移位操作,然后把兩個結(jié)果相“或”,就可實現(xiàn)一個雙精度32位數(shù)據(jù)的移位操作。移位擴(kuò)展位(X)就是移位操作后左邊的填充位,根據(jù)不同的移位操作,這個擴(kuò)展位可以是0、輸入數(shù)的符號位或ASTAT中的進(jìn)位標(biāo)志位AC。若為邏輯移位,擴(kuò)展位為0;若為算術(shù)移位,擴(kuò)展位為輸入符號位;若是規(guī)格化操作,情況較為復(fù)雜,又分3種情況[3]:如果是高位規(guī)格化,即參考信號為HI時,左移時擴(kuò)展位為符號位,右移時擴(kuò)展位為進(jìn)位標(biāo)志位AC;如果是低位規(guī)格化,無論左移還是右移,擴(kuò)展位都為0。

OR/PASS邏輯就可實現(xiàn)上述的“或”操作。它根據(jù)SR_OR控制信號決定是否對結(jié)果進(jìn)行“或”操作,如果是普通的16位操作或32位雙精度數(shù)移位的次操作,就不需要進(jìn)行“或”操作,移位結(jié)果直接輸出到結(jié)果寄存器;若進(jìn)行的是32位操作的第2次16位移位操作,移位結(jié)果就要和第1次操作的結(jié)果相“或”后送到結(jié)果寄存器。

指數(shù)檢測器實現(xiàn)的是從16位輸入中提取指數(shù)的功能,這個指數(shù)可看作冗余符號位數(shù),它等于前導(dǎo)相同位數(shù)減1。為實現(xiàn)一個32位雙精度數(shù)的操作,指數(shù)提取要受到HIX_HI_LO信號的控制,這個信號表示三種不同的操作方式:高位(HI)、高位擴(kuò)展(HIX)、低位(LO)。若為HI操作方式,則認(rèn)為輸入是32位數(shù)據(jù)的高16位,提取出的結(jié)果直接輸出到移位器指數(shù)寄存器SE或移位器塊指數(shù)寄存器SB;若為HIX方式,輸入就被認(rèn)為可能是執(zhí)行ALU操作后已溢出的數(shù)據(jù),所以指數(shù)檢測器要考慮AV標(biāo)志位,如果AV位為1,表示數(shù)據(jù)已溢出,指數(shù)就為+1,否則,和(HI)選項的操作一樣;若為LO方式,輸入就是32位數(shù)據(jù)的低16位,這時的檢測結(jié)果只有在高16位全為0或全為1、且低16位的冗余符號位和高16位相同時才有效,此時,結(jié)果為低16位的指數(shù)加上16,否則結(jié)果不輸出。由此可見,這里需要比較兩次輸入的符號位,所以在提取指數(shù)的同時可能還要更新移位輸入符號標(biāo)志位SS。實質(zhì)上,由于規(guī)格化時的移位控制碼是SE寄存器的內(nèi)容的相反數(shù),為實現(xiàn)左移,在上述HI和LO操作方式中,提取出的結(jié)果要取相反數(shù)才輸出到SE或SB寄存器。

指數(shù)比較邏輯用于找出輸入數(shù)據(jù)塊中各指數(shù)的值,實現(xiàn)塊浮點(diǎn)格式。如果要實現(xiàn)1個16位輸入的指數(shù)提取操作,只要把結(jié)果直接送到SE即可,不經(jīng)過比較邏輯;如果要實現(xiàn)一串?dāng)?shù)據(jù)的塊指數(shù)提取操作,則每次提取結(jié)果都要進(jìn)行比較,把較大的指數(shù)值保存在SB中,當(dāng)全部提取和比較完成后,SB中保存的就是各輸入數(shù)據(jù)的指數(shù)的值。

2.具體實現(xiàn)

硬件實現(xiàn)采用自頂向下(Top-Down)的設(shè)計思想,用VerilogHDL對這個移位器進(jìn)行RTL描述。根據(jù)以上的結(jié)構(gòu)分析,硬件實現(xiàn)的整個Shifter模塊由三個子模塊組成:移位器陣列(shifter_array)、指數(shù)檢測器(exponent_detector)和指數(shù)比較器(compare)。另外的OR/PASS邏輯的功能在移位器陣列中實現(xiàn)。下面分別介紹各子模塊的具體實現(xiàn)[4]。

2.1.移位器陣列模塊

為了實現(xiàn)三種類型的移位操作,移位器陣列[5]設(shè)計采用了一個移位鏈結(jié)構(gòu)。

這個移位鏈由6個分別為1、2、4、8、16、32位的雙向移位寄存器組成。這些移位寄存器的移位方向由移位碼的位(即符號位)控制,如果位為1,左移,位為0時右移。而它們移位與否則分別由移位控制碼的第0到5位控制。如果相應(yīng)的位為1,則移位,否則不移位,結(jié)果按原值輸出。前面提到,移位器陣列要實現(xiàn)-128-127范圍內(nèi)的移位功能,而此處設(shè)計的移位鏈能夠?qū)崿F(xiàn)的各種移位組合只是在-63-63范圍內(nèi)。實質(zhì)上,從移位器陣列的輸入(16位)和輸出(40位)的分析可看出:移位的有效范圍是比較小的,當(dāng)高位移位時,左移超過24位或右移超過32位時,結(jié)果是一樣的,就是全為0或全為1;同樣,低位移位時,左移超過40位或右移超過16位時,結(jié)果也是一樣的,就是全為0或全為1,所以設(shè)計時,在移位前進(jìn)行了范圍判斷和縮減,使得實際的移位操作只需在-40-32之間就可以了,且能達(dá)到-128-127范圍的移位效果。這樣的設(shè)計節(jié)省了兩個移位寄存器(否則需要8個移位寄存器),既減小了面積,又降低了功耗。同時數(shù)據(jù)通路也變短了,大大提高了執(zhí)行速度。這個移位器陣列還要判斷移位溢出標(biāo)志位SV。只有當(dāng)輸出的高9位全為1或全為0時,結(jié)果沒有溢出;否則,結(jié)果溢出,SV置為0。

2.2.指數(shù)檢測器模塊

指數(shù)檢測器的實現(xiàn)一般可以采用常見的序列檢測邏輯,即采用計數(shù)器行為的描述方式,從位依次檢測。但這種結(jié)構(gòu)的實現(xiàn)一般面積、功耗都比較大,不宜采用。也可以采用有限狀態(tài)機(jī)來實現(xiàn),但在我們的設(shè)計中有限狀態(tài)機(jī)的狀態(tài)數(shù)量太多,導(dǎo)致硬件實現(xiàn)面積過大,所以這種實現(xiàn)方法也不可取。從指數(shù)檢測器的功能分析和各種可能實現(xiàn)方式的比較可知,采用一個帶優(yōu)先級的多路選擇器可以較為有效地實現(xiàn)指數(shù)檢測,而功耗和面積卻大大減小。由于這個檢測器只檢測前導(dǎo)連續(xù)相同符號位,各種輸入數(shù)據(jù)都可歸納為32種情況,所以只要一個32選1的多路選擇器就可以實現(xiàn)指數(shù)檢測功能。除了提取指數(shù)的操作外,指數(shù)檢測器還需要判斷移位器輸入符號標(biāo)志位SS作為輸出信號。這個標(biāo)志位,它是提供低位(LO)方式指數(shù)檢測時使用的,為了判斷32位數(shù)據(jù)的低16位的符號位是否與高16位相同,高16位的符號位必須在高位(HI)或高位擴(kuò)展(HIX)方式的指數(shù)檢測時保存到標(biāo)志位SS中。所以,移位器輸入符號標(biāo)志位的判斷只在高位或高位擴(kuò)展方式的指數(shù)檢測操作進(jìn)行。

2.3.指數(shù)比較器模塊

指數(shù)比較器邏輯比較簡單,采用一般的有符號數(shù)據(jù)比較器即可實現(xiàn)。比較的對象是這次指數(shù)提取操作提取的指數(shù)值與SB寄存器中保存

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論