日本黄色一级经典视频|伊人久久精品视频|亚洲黄色色周成人视频九九九|av免费网址黄色小短片|黄色Av无码亚洲成年人|亚洲1区2区3区无码|真人黄片免费观看|无码一级小说欧美日免费三级|日韩中文字幕91在线看|精品久久久无码中文字幕边打电话

當(dāng)前位置:首頁 > 嵌入式 > 嵌入式硬件
[導(dǎo)讀]在航空微電子中心的某預(yù)研項目中,需要開發(fā)設(shè)計某32位浮點(diǎn)通用數(shù)字信號處理器(DSP)。本系統(tǒng)控制通路部分的設(shè)計采用超級哈佛及五級流水線結(jié)構(gòu)。本文分析了該流水線的設(shè)計過程,并對遇到的數(shù)據(jù)相關(guān)問題。

在航空微電子中心的某預(yù)研項目中,需要開發(fā)設(shè)計某32位浮點(diǎn)通用數(shù)字信號處理器(DSP)。本系統(tǒng)控制通路部分的設(shè)計采用超級哈佛及五級流水線結(jié)構(gòu)。本文分析了該流水線的設(shè)計過程,并對遇到的數(shù)據(jù)相關(guān)問題提出了一種新的解決方法。

1 流水線結(jié)構(gòu)

流水線處理器一般把一條指令的執(zhí)行分成幾個步驟,或稱為級(stages)。每一級在一個時鐘周期內(nèi)完成,也就是說在每個時鐘周期,處理器啟動并執(zhí)行一條指令。如果處理器的流水線有m級,則同時可重疊執(zhí)行的指令總條數(shù)為m。由于每條指令處在不同的執(zhí)行階段,因此,如果分級分得好,每一級都沒有時間上的浪費(fèi),這就是最理想的情況。流水線處理器在理想情況下與非流水線處理器的性能加速比為:

式中,I為一個程序被執(zhí)行的總的指令條數(shù),它在流水線處理器和非流水線處理器中是相等的。CPInp是每條指令總體平均所需的時鐘周期數(shù)。因為流水線處理器把一條指令的執(zhí)行時間理想地分成了m級,故有m條指令在同時(重疊)執(zhí)行。T是每個時鐘周期的時間長度,本例可假設(shè)它在兩種處理器中也是相同的,那么,最后總的加速比為m(即等于流水線的級數(shù))。并不是說把流水線級數(shù)分得越多,處理器的性能就越好。流水線處理器性能提高的關(guān)鍵在于每個時鐘周期處理器都應(yīng)當(dāng)能啟動一條指令的執(zhí)行。


2 數(shù)據(jù)相關(guān)問題

下面來討論數(shù)據(jù)相關(guān)(data dependence)問題及解決方法,先來看看下面的程序例子:

在上述程序段中,I1指令把寄存器r2和r3的內(nèi)容相加,并將結(jié)果存人寄存器r1,這樣,它下面的4條指令均與I1相關(guān),其使用I1的結(jié)果如圖1給出的數(shù)據(jù)相關(guān)關(guān)系圖。從圖中可見,當(dāng)每個周期結(jié)束時,在時鐘上升沿應(yīng)把數(shù)據(jù)打入寄存器。在數(shù)據(jù)沒被打入之前,任何從該寄存器讀出的數(shù)據(jù)都是過時的。圖1中的I2到I4的3條指令就屬于這種情況。它們從r1寄存器讀出的數(shù)據(jù)都是過時的,是不能使用的。I5則沒關(guān)系,當(dāng)它讀r1寄存器時,I1已將結(jié)果寫入。

I1下面有3條指令不能從寄存器r1讀出正確的數(shù)據(jù)。為了減少數(shù)據(jù)相關(guān)指令的條數(shù),設(shè)計時可以讓寫寄存器堆的操作提前半個周期,即由時鐘的下降沿打入。實(shí)踐證明這樣做是可行的,因為假定一個時鐘周期是10 ns,寄存器堆的訪問只需要5 ns。這樣,數(shù)據(jù)相關(guān)的指令條數(shù)就減至兩條,其操作示意圖如圖2所示。

3 數(shù)據(jù)相關(guān)問題的解決

在流水線處理器中處理數(shù)據(jù)相關(guān)問題有兩種方法:一種是暫停相關(guān)指令的執(zhí)行,即暫停流水線,直到能夠正確讀出寄存器操作數(shù)為止;另一種是采用專門的數(shù)據(jù)通路,直接把結(jié)果送到ALU的輸入端,也就是把內(nèi)部數(shù)據(jù)前推。描述這兩種方法可參考圖2所示的方案,即把寫寄存器堆提前半個周期,這時,只需考慮兩條相關(guān)指令。下面以ALU指令為例對暫停流水線的執(zhí)行方法加以分析。

3.1 暫停數(shù)據(jù)相關(guān)流水線

暫停數(shù)據(jù)相關(guān)流水線指令是當(dāng)數(shù)據(jù)相關(guān)出現(xiàn)時,暫時停止相關(guān)指令的執(zhí)行,等劍相關(guān)數(shù)據(jù)能從寄存器讀出再恢復(fù)執(zhí)行。這里涉及到兩個問題,一個是如何檢測數(shù)據(jù)相關(guān),另一個是如何暫停流水線。下面對這兩個問題分別加以描述。

首先考慮數(shù)據(jù)相關(guān)如何用硬件電路檢測出來。由于I1與目的寄存器rd、I2和I3的源操作數(shù)是寄存器rs1或rs2中的數(shù)據(jù),且只有當(dāng)它們的rs1或rs2與I1的目的寄存器號rd相等時才有可能發(fā)生數(shù)據(jù)相關(guān),因此,硬件電路中要有比較器。由于指令格式中的源寄存器號rs2與立即數(shù)部分重疊,而立即數(shù)是不會出現(xiàn)相關(guān)的,因此,指令操作碼必須要參與檢測,以區(qū)分是寄存器操作數(shù)還是立即數(shù)。另外,如I1指令的rd一定作為目的寄存器號使用,也就是當(dāng)結(jié)果要被寫入目的奇仔器時,后面的指令才有可能與之相關(guān)。上述規(guī)則用表達(dá)式表述如下(它們是在ID級檢測數(shù)據(jù)相關(guān)的表達(dá)式):

由于一條指令中的兩個源操作數(shù)都可能與上一條指令的目的操作數(shù)相關(guān),因此,總的數(shù)據(jù)相關(guān)DEPEN由A DFPEN和B_DEPEN兩部分組成。A_DEPEN指的是源寄存器rs1數(shù)據(jù)相關(guān),B_DE-PEN指的是源寄存器rs2數(shù)據(jù)相關(guān)。另外,兩條指令I(lǐng)2和I3也都可能與I1相關(guān)。如果是在流水線ID級檢測數(shù)據(jù)相關(guān),那么,對于I2來講,I1處在EXE級;對于I3來講,I1處在MEM級,因此,A_DEFPEN包括EXE_A_DEPEN和MEM_B_DEPEN兩部分。EXE_A_DEPEN的意思是處在ID級的指令與處在EXE級的指令數(shù)據(jù)相關(guān)。同理,MEM_A_DEPEN的意思是處在ID級的指令與處在MEM級的指令數(shù)據(jù)相關(guān)。同樣,B_DEPEN也包括EXE_B_DEPEN和MEM_B_DEPEN兩部分。

EXE_A_DEPEN為真的條件是:I2的rs1與I1的rd相等(ID_rs1==EXE_rd),rs1字段是寄存器(ID_rs1IsReg),并且I1的rd確實(shí)是目的寄存器(EXE_WREG==1)。后一個條件是為排除store指令而加上的。EXE_B_DEPEN與EXE_A_DEPEN類似,源寄存器號(ID_rs2IsReg)所包含的指令要比ID_rs1IsReg少得多。I3與I1的數(shù)據(jù)相關(guān)判斷與此類似。

得出了數(shù)據(jù)相關(guān)條件后。下一步的任務(wù)是確定如何暫停流水線。這里要特別注意的一個問題是不能停止所有指令的流水線,而只能暫停相關(guān)指令及其后續(xù)的所有指令。假如I2與I1相關(guān),則只暫停I2及I2以下的指令,而不應(yīng)把I1也暫停,否則,處理器將永遠(yuǎn)暫停下去。暫停流水線要注意以下3個方面:

(1) 封鎖當(dāng)前正譯碼的指令的寫控制信號;
(2) 不能把從存儲器取來的下條指令打入IR;
(3) 不改變當(dāng)前PC值。

實(shí)際操作時可使用如下的方法實(shí)現(xiàn)流水線的暫停:


這樣,當(dāng)I2與I1相關(guān)時,流水線將暫停兩個周期。I3與I1相關(guān)時,流水線暫停一個周期。通常把被暫停掉的周期稱作流水線“氣泡”。暫停流水線是解決流水線處理器數(shù)據(jù)相關(guān)問題的一種有效方法。使用這種方法可保證處理器能夠從寄存器堆讀出正確的數(shù)據(jù)。但是,暫停流水線兩個或一個周期會造成處理器性能的損失。因此,如果沒有數(shù)據(jù)相關(guān),處理器完全可以多執(zhí)行兩條或一條指令。在使用這種方法的處理器組成的計算機(jī)系統(tǒng)中,高級語言的編澤器和匯編器在產(chǎn)生最終目標(biāo)機(jī)器碼時,應(yīng)盡量避免出現(xiàn)過多的數(shù)據(jù)相關(guān)指令序列。編譯器和匯編器最初可以在相關(guān)指令之間插入nop指令,然后進(jìn)行優(yōu)化,可以用一些有意義的不相關(guān)的指令替換掉nop,以減少“氣泡”的出現(xiàn)。

3.2 內(nèi)部前推

流水線數(shù)據(jù)相關(guān)問題的本質(zhì)在于一條指令執(zhí)行時要用到上面指令的計算結(jié)果,但這個結(jié)果尚未被寫入寄存器堆,因此,如果讓ALU使用從寄存器堆瀆出的數(shù)據(jù)的話,流水線“氣泡”問題也可以得到解決。試想,數(shù)據(jù)相關(guān)發(fā)生在ALU計算周期,而所有的計算任務(wù)均由這一個ALU來按順序完成,也就是說,ALU計算時發(fā)現(xiàn)與上一條或兩條指令的結(jié)果數(shù)據(jù)相關(guān)的話,這些結(jié)果實(shí)際上已由ALU計算出來了,只是還沒有寫入寄存器堆,但其結(jié)果還在流水線寄存器R和C中,這就可以把它們直接拿過來用。為此,可在ALU的兩個數(shù)據(jù)輸入端各加一個多路器,以使R和C中的數(shù)據(jù)能被直接送到ALU的輸入端,這樣就用內(nèi)部前推技術(shù)提高了流水線的性能。


4 結(jié)束語

采用暫停數(shù)據(jù)相關(guān)流水線的方法可以解決數(shù)據(jù)相關(guān)問題。目前,筆者已將該方法應(yīng)用于某32位浮點(diǎn)通用數(shù)字信號處理器中,而且該處理器已經(jīng)沒計完成,并通過綜合仿真查驗波形證明:該DSP完全符合要求。

本站聲明: 本文章由作者或相關(guān)機(jī)構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點(diǎn),本站亦不保證或承諾內(nèi)容真實(shí)性等。需要轉(zhuǎn)載請聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請及時聯(lián)系本站刪除。
換一批
延伸閱讀

LED驅(qū)動電源的輸入包括高壓工頻交流(即市電)、低壓直流、高壓直流、低壓高頻交流(如電子變壓器的輸出)等。

關(guān)鍵字: 驅(qū)動電源

在工業(yè)自動化蓬勃發(fā)展的當(dāng)下,工業(yè)電機(jī)作為核心動力設(shè)備,其驅(qū)動電源的性能直接關(guān)系到整個系統(tǒng)的穩(wěn)定性和可靠性。其中,反電動勢抑制與過流保護(hù)是驅(qū)動電源設(shè)計中至關(guān)重要的兩個環(huán)節(jié),集成化方案的設(shè)計成為提升電機(jī)驅(qū)動性能的關(guān)鍵。

關(guān)鍵字: 工業(yè)電機(jī) 驅(qū)動電源

LED 驅(qū)動電源作為 LED 照明系統(tǒng)的 “心臟”,其穩(wěn)定性直接決定了整個照明設(shè)備的使用壽命。然而,在實(shí)際應(yīng)用中,LED 驅(qū)動電源易損壞的問題卻十分常見,不僅增加了維護(hù)成本,還影響了用戶體驗。要解決這一問題,需從設(shè)計、生...

關(guān)鍵字: 驅(qū)動電源 照明系統(tǒng) 散熱

根據(jù)LED驅(qū)動電源的公式,電感內(nèi)電流波動大小和電感值成反比,輸出紋波和輸出電容值成反比。所以加大電感值和輸出電容值可以減小紋波。

關(guān)鍵字: LED 設(shè)計 驅(qū)動電源

電動汽車(EV)作為新能源汽車的重要代表,正逐漸成為全球汽車產(chǎn)業(yè)的重要發(fā)展方向。電動汽車的核心技術(shù)之一是電機(jī)驅(qū)動控制系統(tǒng),而絕緣柵雙極型晶體管(IGBT)作為電機(jī)驅(qū)動系統(tǒng)中的關(guān)鍵元件,其性能直接影響到電動汽車的動力性能和...

關(guān)鍵字: 電動汽車 新能源 驅(qū)動電源

在現(xiàn)代城市建設(shè)中,街道及停車場照明作為基礎(chǔ)設(shè)施的重要組成部分,其質(zhì)量和效率直接關(guān)系到城市的公共安全、居民生活質(zhì)量和能源利用效率。隨著科技的進(jìn)步,高亮度白光發(fā)光二極管(LED)因其獨(dú)特的優(yōu)勢逐漸取代傳統(tǒng)光源,成為大功率區(qū)域...

關(guān)鍵字: 發(fā)光二極管 驅(qū)動電源 LED

LED通用照明設(shè)計工程師會遇到許多挑戰(zhàn),如功率密度、功率因數(shù)校正(PFC)、空間受限和可靠性等。

關(guān)鍵字: LED 驅(qū)動電源 功率因數(shù)校正

在LED照明技術(shù)日益普及的今天,LED驅(qū)動電源的電磁干擾(EMI)問題成為了一個不可忽視的挑戰(zhàn)。電磁干擾不僅會影響LED燈具的正常工作,還可能對周圍電子設(shè)備造成不利影響,甚至引發(fā)系統(tǒng)故障。因此,采取有效的硬件措施來解決L...

關(guān)鍵字: LED照明技術(shù) 電磁干擾 驅(qū)動電源

開關(guān)電源具有效率高的特性,而且開關(guān)電源的變壓器體積比串聯(lián)穩(wěn)壓型電源的要小得多,電源電路比較整潔,整機(jī)重量也有所下降,所以,現(xiàn)在的LED驅(qū)動電源

關(guān)鍵字: LED 驅(qū)動電源 開關(guān)電源

LED驅(qū)動電源是把電源供應(yīng)轉(zhuǎn)換為特定的電壓電流以驅(qū)動LED發(fā)光的電壓轉(zhuǎn)換器,通常情況下:LED驅(qū)動電源的輸入包括高壓工頻交流(即市電)、低壓直流、高壓直流、低壓高頻交流(如電子變壓器的輸出)等。

關(guān)鍵字: LED 隧道燈 驅(qū)動電源
關(guān)閉