www.久久久久|狼友网站av天堂|精品国产无码a片|一级av色欲av|91在线播放视频|亚洲无码主播在线|国产精品草久在线|明星AV网站在线|污污内射久久一区|婷婷综合视频网站

當(dāng)前位置:首頁(yè) > 單片機(jī) > 單片機(jī)
[導(dǎo)讀]本文分析了該流水線的設(shè)計(jì)過(guò)程,并對(duì)遇到的數(shù)據(jù)相關(guān)問(wèn)題提出了一種新的解決方法。

引言

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

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

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

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

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

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

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

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

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

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

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

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

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

由于一條指令中的兩個(gè)源操作數(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)。另外,兩條指令 I2和I3也都可能與I1相關(guān)。如果是在流水線ID級(jí)檢測(cè)數(shù)據(jù)相關(guān),那么,對(duì)于I2來(lái)講,I1處在EXE級(jí);對(duì)于I3來(lái)講,I1處在MEM級(jí),因此, A_DEFPEN包括EXE_A_DEPEN和MEM_B_DEPEN兩部分。EXE_A_DEPEN的意思是處在ID級(jí)的指令與處在EXE級(jí)的指令數(shù)據(jù)相關(guān)。同理,MEM_A_DEPEN的意思是處在ID級(jí)的指令與處在MEM級(jí)的指令數(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)。后一個(gè)條件是為排除store指令而加上的。EXE_B_DEPEN與EXE_A_DEPEN類似,源寄存器號(hào)(ID_rs2IsReg)所包含的指令要比 ID_rs1IsReg少得多。I3與I1的數(shù)據(jù)相關(guān)判斷與此類似。

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

(1) 封鎖當(dāng)前正譯碼的指令的寫控制信號(hào);

(2) 不能把從存儲(chǔ)器取來(lái)的下條指令打入IR;

(3) 不改變當(dāng)前PC值。

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

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

3.2 內(nèi)部前推

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

4 結(jié)束語(yǔ)

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

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

通過(guò)第二項(xiàng)3nm設(shè)計(jì)選用擴(kuò)展技術(shù)領(lǐng)先地位 第三季度強(qiáng)勁的貿(mào)易和設(shè)計(jì)選用反映出我們結(jié)合了IP和定制硅的混合業(yè)務(wù)模式 自2022年9月1日起,OpenFive首次并入集團(tuán) 盡管宏觀環(huán)境困難,但管理層仍對(duì)業(yè)務(wù)...

關(guān)鍵字: BSP ALPHA PEN Silicon

本文中,小編將對(duì)無(wú)線模塊予以介紹,如果你想對(duì)無(wú)線模塊的詳細(xì)情況有所認(rèn)識(shí),或者想要增進(jìn)對(duì)它的了解程度,不妨請(qǐng)看以下內(nèi)容哦。

關(guān)鍵字: 無(wú)線模塊 寄存器 處理器

最經(jīng)典的2DFF 1-bit同步器如下,下圖結(jié)構(gòu)通常用于單bit控制信號(hào)的異步處理:

關(guān)鍵字: 異步電路 寄存器

Sumo Logic可靠性管理為企業(yè)領(lǐng)導(dǎo)者提供關(guān)鍵數(shù)據(jù),以平衡創(chuàng)新速度和服務(wù)可靠性

關(guān)鍵字: LOGIC 應(yīng)用程序 PEN COM

北京2022年9月6日 /美通社/ -- 9月2日,2022年龍芯工業(yè)生態(tài)大會(huì)在蘇州召開,軟通動(dòng)力子公司鴻湖萬(wàn)聯(lián)受邀出席本次峰會(huì)。本次大會(huì)以“自主‘芯’架構(gòu)·連接新未來(lái)”為主題,由龍芯中科技術(shù)股份有限公司主...

關(guān)鍵字: 操作系統(tǒng) 芯片 HARMONY PEN

上海2022年9月5日 /美通社/ -- 以數(shù)字科技為代表的新一輪科技革命和產(chǎn)業(yè)變革正在重塑全球創(chuàng)新、經(jīng)濟(jì)、科技與行業(yè)生態(tài)。作為新興經(jīng)濟(jì)體最為集中的地區(qū),亞洲正在積極探索科技倫理變革并致力于為負(fù)責(zé)任的全球科技發(fā)...

關(guān)鍵字: APP PEN AI 人工智能

(全球TMT2022年9月2日訊)博通公司發(fā)布2022財(cái)年第三財(cái)季財(cái)報(bào)。報(bào)告顯示,博通第三財(cái)季凈營(yíng)收為84.64億美元,同比增長(zhǎng)25%;凈利潤(rùn)為30.74億美元,同比增長(zhǎng)64%;不按照美國(guó)通用會(huì)計(jì)準(zhǔn)則調(diào)整后凈利潤(rùn)為42...

關(guān)鍵字: 博通 PEN EV 富士

合并后的公司將提升Alphawave的領(lǐng)導(dǎo)地位、產(chǎn)品供應(yīng)和客戶群,同時(shí)在擴(kuò)展后的整體潛在市場(chǎng)推動(dòng)更大的業(yè)務(wù)規(guī)模和營(yíng)收增長(zhǎng) 倫敦和多倫多2022年9月1日 /美通社/ -- 世界技術(shù)基礎(chǔ)設(shè)施高速連接領(lǐng)域的全球領(lǐng)先企業(yè)Al...

關(guān)鍵字: PEN ALPHA BSP GROUP

倫敦2022年9月1日 /美通社/ -- 由國(guó)際企業(yè)家和慈善家Elena Baturina創(chuàng)立的創(chuàng)意智庫(kù)BE OPEN通過(guò)社交媒體發(fā)布下一項(xiàng)全球公開呼吁。通過(guò)多項(xiàng)公開呼吁,BE OPEN號(hào)召參與者以最形象的方式...

關(guān)鍵字: 可持續(xù)發(fā)展 PEN BSP BAT

已獲得CIFIUS批準(zhǔn),預(yù)計(jì)交易將于2022年9月完成 倫敦和多倫多2022年8月26日 /美通社/ -- 全球技術(shù)基礎(chǔ)設(shè)施高速連接領(lǐng)域的全球領(lǐng)導(dǎo)者Alphawave IP Group plc(簡(jiǎn)稱為"Alp...

關(guān)鍵字: ALPHA PEN IP GROUP

單片機(jī)

21600 篇文章

關(guān)注

發(fā)布文章

編輯精選

技術(shù)子站

關(guān)閉