亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        一種雙端口發(fā)射隊(duì)列及其性能優(yōu)化

        2021-08-06 03:22:56隋兵才孫彩霞王永文
        關(guān)鍵詞:指令結(jié)構(gòu)

        隋兵才,孫彩霞,王永文,郭 輝

        (國(guó)防科技大學(xué)計(jì)算機(jī)學(xué)院,湖南 長(zhǎng)沙 410073)

        1 引言

        微體系結(jié)構(gòu)技術(shù)的不斷革新,使得微處理器的時(shí)鐘頻率不斷提高,芯片的集成度也越來(lái)越高。這2個(gè)方面也同時(shí)導(dǎo)致了整個(gè)處理器更高的功耗密度,也就必須使用更高的成本以降低整個(gè)處理器的工作溫度。降低處理器的關(guān)鍵功能部件的功耗,可以有效地提高整個(gè)處理器的能效,并能夠降低冷卻成本,或者說(shuō),在給定能效的情況下,處理器可以獲得更高的性能。

        發(fā)射隊(duì)列是超標(biāo)量處理器中的關(guān)鍵功耗部件,并對(duì)整個(gè)處理器的性能起著決定性的作用。為了保證超標(biāo)量處理器的整體性能和功耗,必須要對(duì)發(fā)射隊(duì)列進(jìn)行低延遲、 低功耗的專門設(shè)計(jì)。

        傳統(tǒng)的發(fā)射隊(duì)列都是利用全相聯(lián)的喚醒機(jī)制來(lái)實(shí)現(xiàn)。這種實(shí)現(xiàn)方式需要在每個(gè)時(shí)鐘周期對(duì)發(fā)射隊(duì)列中所有的指令進(jìn)行操作數(shù)的檢查監(jiān)控,直到指令所需要的所有源操作數(shù)就緒,并且執(zhí)行資源可用時(shí),才可以將該指令喚醒并等待到執(zhí)行部件執(zhí)行。選擇控制邏輯在源操作數(shù)就緒的所有指令中選擇一條或者多條指令送入執(zhí)行單元。盡管這種實(shí)現(xiàn)方式可以有效地提高處理器的IPC(Instructions Per Cycle),但是發(fā)射隊(duì)列的延遲會(huì)與處理器的時(shí)鐘頻率不相匹配。 并且,隨著發(fā)射寬度或者發(fā)射隊(duì)列的大小的增大,發(fā)射隊(duì)列的復(fù)雜度會(huì)急劇增大。

        本文提出了一種能夠以較低功耗有效提高亂序超標(biāo)量處理器性能的發(fā)射隊(duì)列結(jié)構(gòu)。該結(jié)構(gòu)包含多個(gè)指令隊(duì)列,能夠根據(jù)指令之間的相關(guān)性,估算指令的發(fā)射時(shí)機(jī),將指令分配到不同的隊(duì)列中。

        2 相關(guān)工作

        指令通過取指和譯碼流水站之后,通過分派邏輯被存儲(chǔ)到發(fā)射隊(duì)列中,在所有操作數(shù)準(zhǔn)備好之后被發(fā)射到執(zhí)行單元。發(fā)射隊(duì)列的設(shè)計(jì)需要著重考慮影響性能和復(fù)雜性的相關(guān)問題,包括:指令的保存方式、指令的發(fā)射邏輯、指令的監(jiān)控邏輯以及如何選擇指令的執(zhí)行單元。

        傳統(tǒng)的發(fā)射隊(duì)列基于CAM(Content-Address- able Memory)結(jié)構(gòu)[1],能夠有效提升處理器的IPC,但是同時(shí)也使得處理器的功耗按比例增大。后續(xù)也有相關(guān)的實(shí)現(xiàn)針對(duì)CAM結(jié)構(gòu)的功耗問題進(jìn)行優(yōu)化[2,3],大多通過動(dòng)態(tài)調(diào)整發(fā)射隊(duì)列的大小,或者通過關(guān)閉空閑的喚醒邏輯,或者利用發(fā)射隊(duì)列與ROB(Re -Order Buffer)的控制邏輯關(guān)系來(lái)降低CAM的功耗。

        Buyuktosunoglu等[4]提出了一種CAM和RAM(Random Access Memeory)相結(jié)合的發(fā)射隊(duì)列實(shí)現(xiàn)結(jié)構(gòu),以有效降低發(fā)射隊(duì)列的功耗。同時(shí),論文中也提出了類似的動(dòng)態(tài)調(diào)整發(fā)射隊(duì)列大小的設(shè)計(jì)思路。Brown等[5]提出了一種流水實(shí)現(xiàn)的發(fā)射隊(duì)列,能夠保證連續(xù)發(fā)射指令。Ernst等[6]提出了一種可以包含3種類型存儲(chǔ)項(xiàng)的發(fā)射隊(duì)列,能夠降低功耗,提高發(fā)射隊(duì)列的性能。

        Cotofana等[7]提出了一種利用計(jì)數(shù)器減少資源沖突的發(fā)射隊(duì)列選擇邏輯,相對(duì)于傳統(tǒng)的發(fā)射機(jī)制,能夠更快地喚醒和選擇指令并發(fā)射到功能單元。Kucuk等[8]針對(duì)發(fā)射隊(duì)列提出了低功耗比較器、0字節(jié)編碼和位處理方式,以有效降低相關(guān)功耗。 Lebeck等[9]提出了一種等待指令的存儲(chǔ)緩沖,以保存與訪問Cache失效指令相關(guān)的指令。當(dāng)Cache失效處理完成之后,相關(guān)指令從緩沖中移動(dòng)到發(fā)射隊(duì)列中。Brekelbaum等[10]提出了基于結(jié)構(gòu)化調(diào)度的發(fā)射隊(duì)列結(jié)構(gòu),關(guān)鍵性的指令被存放在高速CAM/RAM發(fā)射隊(duì)列中,而非關(guān)鍵性指令存放在低功耗高延遲的CAM結(jié)構(gòu)中。Canal等[11,12]提出了不同于傳統(tǒng)方式的發(fā)射隊(duì)列結(jié)構(gòu)。分派時(shí),該結(jié)構(gòu)首先估算每條指令的發(fā)射時(shí)機(jī),然后根據(jù)計(jì)算結(jié)果進(jìn)行順序發(fā)射。由于在分派時(shí)刻很難估算出指令的精確發(fā)射時(shí)機(jī),該結(jié)構(gòu)中實(shí)現(xiàn)了一個(gè)很小的CAM/RAM陣列,以保存在預(yù)計(jì)時(shí)刻不能發(fā)射出去的指令,直到按照傳統(tǒng)的方式將其發(fā)射到功能單元中。Michaud等[13]提出了一種2級(jí)發(fā)射隊(duì)列結(jié)構(gòu),其中第1級(jí)與傳統(tǒng)的CAM/RAM結(jié)構(gòu)相同,第2級(jí)保存暫時(shí)不能被喚醒的指令。該實(shí)現(xiàn)機(jī)制能夠很好地解決指令之間的相關(guān)性,但是在一定程度上增加了實(shí)現(xiàn)的復(fù)雜度。Raasch等[14]提出了一種可調(diào)整的發(fā)射邏輯,該邏輯實(shí)現(xiàn)了多個(gè)存儲(chǔ)體,可以根據(jù)指令的延遲將指令從一個(gè)存儲(chǔ)體調(diào)度到另一個(gè)存儲(chǔ)體,可以實(shí)現(xiàn)很高的頻率,但是功耗依然是一個(gè)比較大的問題。

        上述很多實(shí)現(xiàn)機(jī)制需要在分派時(shí)計(jì)算被分派的多條指令的發(fā)射時(shí)機(jī),這必然導(dǎo)致復(fù)雜的硬件實(shí)現(xiàn)邏輯。

        由于CAM結(jié)構(gòu)的發(fā)射隊(duì)列的功耗更高,因此研究人員提出了很多非CAM結(jié)構(gòu)的發(fā)射隊(duì)列結(jié)構(gòu)。通過分析指令特性,發(fā)現(xiàn)大部分指令的后續(xù)相關(guān)指令并不多,因此Canal等[11]提出了一種根據(jù)每條指令喚醒N條相關(guān)指令的結(jié)構(gòu)。Palacharla等[1]提出了一種FIFO結(jié)構(gòu)的發(fā)射隊(duì)列,只有FIFO頭部的指令才會(huì)被發(fā)射出去。

        Moreshet等[15]提出一種雙端口的發(fā)射隊(duì)列結(jié)構(gòu),能夠以更小的發(fā)射隊(duì)列資源獲得更高的指令并行度,并能夠有效減少發(fā)射信用處理通路的關(guān)鍵路徑。

        其他關(guān)于發(fā)射隊(duì)列結(jié)構(gòu)的綜述可以參考文獻(xiàn)[16]。

        3 發(fā)射隊(duì)列設(shè)計(jì)

        發(fā)射隊(duì)列是超標(biāo)量處理器中的亂序控制部件。發(fā)射隊(duì)列接收指令控制部件分派的指令相關(guān)信息,并負(fù)責(zé)監(jiān)控執(zhí)行部件的數(shù)據(jù)總線使用及空閑狀態(tài),更新發(fā)射隊(duì)列中等待發(fā)射的指令的操作數(shù)相關(guān)信息,一旦指令的所有操作數(shù)準(zhǔn)備就緒,并且不存在后續(xù)的流水線和總線相關(guān),該指令即進(jìn)入準(zhǔn)備狀態(tài)。發(fā)射隊(duì)列從已經(jīng)準(zhǔn)備就緒的所有指令中選擇一條指令發(fā)射到對(duì)應(yīng)的流水線中執(zhí)行。由于VFU(Vector and Float Unit)部件的執(zhí)行流水線是不等長(zhǎng)流水線,并且多個(gè)流水線共享3條結(jié)果總線,因此VFU部件的發(fā)射隊(duì)列還需要根據(jù)各條指令的延遲情況,以及結(jié)果總線的空閑情況,判斷準(zhǔn)備發(fā)射的指令是否存在結(jié)構(gòu)相關(guān)。此外,為了提高浮點(diǎn)處理性能,根據(jù)處理器融合乘加實(shí)現(xiàn)的方式,發(fā)射隊(duì)列也維護(hù)了FMUL/FADD/FCVT(Floating-point CoVerT)部件指令結(jié)果數(shù)據(jù)旁路到浮點(diǎn)融合乘加的累加操作數(shù)中的相關(guān)控制,以保證浮點(diǎn)融合乘加指令不必等到所有的操作數(shù)都全部準(zhǔn)備好之后再進(jìn)行發(fā)射,可以在2個(gè)乘法操作數(shù)準(zhǔn)備好,并且確定累加操作數(shù)可以通過旁路獲得的時(shí)候,就將融合乘加的指令提前發(fā)射到乘法流水線中。

        發(fā)射隊(duì)列的結(jié)構(gòu)圖如圖1所示,其中UOP代表Micro-OPeration。浮點(diǎn)部件的發(fā)射隊(duì)列為2入2出24項(xiàng)的結(jié)構(gòu)。每個(gè)時(shí)鐘周期最多可以接受指令譯碼部件分派來(lái)的2條指令,并且每個(gè)時(shí)鐘周期可以最多向流水線中發(fā)射2條指令執(zhí)行。整個(gè)發(fā)射隊(duì)列采用節(jié)拍(age)計(jì)數(shù)的方式進(jìn)行發(fā)射控制,每個(gè)時(shí)鐘周期從24個(gè)發(fā)射項(xiàng)中選擇操作數(shù)已經(jīng)就緒的并且節(jié)拍數(shù)最多的2條指令進(jìn)行發(fā)射,2個(gè)發(fā)射端口可以分別向VFU的所有2條流水線中各自發(fā)射指令。

        Figure 1 Structure of dual-port issue queue圖1 雙端口發(fā)射隊(duì)列的結(jié)構(gòu)圖

        (1)時(shí)序控制:發(fā)射隊(duì)列的每一項(xiàng)有一個(gè)age標(biāo)識(shí),發(fā)射隊(duì)列有多少項(xiàng)age標(biāo)識(shí)就有多少位,每一位對(duì)應(yīng)一項(xiàng)。每一項(xiàng)根據(jù)age標(biāo)識(shí)來(lái)判斷當(dāng)前項(xiàng)與其他各個(gè)項(xiàng)的時(shí)序關(guān)系,如果age標(biāo)識(shí)中的某個(gè)對(duì)應(yīng)位為1,表示當(dāng)前項(xiàng)要比對(duì)應(yīng)項(xiàng)后進(jìn)入流水線。

        (2)發(fā)射隊(duì)列首項(xiàng):發(fā)射隊(duì)列的結(jié)構(gòu)均為2入2出。指令控制部件分派來(lái)的指令只進(jìn)入發(fā)射隊(duì)列的首2項(xiàng),然后再由首2項(xiàng)輸出指令信息并將其保存到其他項(xiàng),其他發(fā)射隊(duì)列項(xiàng)與ISU(Instruction Schedule Unit)無(wú)接口。首項(xiàng)接收的指令的age標(biāo)識(shí)為全1。

        由于VFU部件的各個(gè)流水線長(zhǎng)度不一致,所有的流水線共享3條結(jié)果總線,因此需要對(duì)發(fā)射出來(lái)的指令進(jìn)行結(jié)果總線的相關(guān)判斷。VFU部件根據(jù)指令的延遲的不同,對(duì)各個(gè)延遲的指令對(duì)應(yīng)的結(jié)果總線維護(hù)了一個(gè)記分牌,用于記錄當(dāng)前流水線中的指令需要占用的結(jié)果總線的情況。發(fā)射隊(duì)列在發(fā)射指令的同時(shí),需要根據(jù)所發(fā)射的指令的延遲,檢查對(duì)應(yīng)的延遲的記分牌,如果有空閑總線,則該指令可以正常發(fā)射;否則,該指令不能發(fā)射。

        4 分析與優(yōu)化

        4.1 硬件開銷分析

        24項(xiàng)的單端口發(fā)射隊(duì)列的結(jié)構(gòu)圖如圖 2所示。

        Figure 2 Structure of single-port issue queue圖2 單端口發(fā)射隊(duì)列的結(jié)構(gòu)圖

        對(duì)比圖 1和圖 2的結(jié)構(gòu)可以看出,本文提出的雙端口發(fā)射隊(duì)列與分布式單端口發(fā)射隊(duì)列的項(xiàng)數(shù)均為24項(xiàng)。雙端口發(fā)射隊(duì)列的頭2項(xiàng)為入口項(xiàng),采用向下移動(dòng)的方式維護(hù),所以其它項(xiàng)的指令信息來(lái)源于2個(gè)入口項(xiàng)。發(fā)射指令時(shí),雙端口需要從24項(xiàng)中選出2項(xiàng),傳統(tǒng)實(shí)現(xiàn)需要2個(gè)24選1的選擇邏輯,但是為了降低硬件實(shí)現(xiàn)的復(fù)雜度,也可以使用12-1的選擇邏輯實(shí)現(xiàn)。單端口發(fā)射隊(duì)列的第11項(xiàng)作為入口項(xiàng),也采用向下移動(dòng)的方式實(shí)現(xiàn),其它項(xiàng)的指令信息來(lái)源于入口項(xiàng)。發(fā)射指令時(shí),分別使用2個(gè)12-1的選擇開關(guān)實(shí)現(xiàn)。因此,從硬件實(shí)現(xiàn)開銷角度來(lái)說(shuō),雙端口的發(fā)射隊(duì)列并沒有增加很多額外的硬件開銷。相比于分布式的單端口發(fā)射隊(duì)列實(shí)現(xiàn),如果流水線端口slotj和slotk屬于不對(duì)稱結(jié)構(gòu)實(shí)現(xiàn),slotj和slotk的可用發(fā)射隊(duì)列項(xiàng)都是24項(xiàng),但是單端口發(fā)射隊(duì)列的可用發(fā)射隊(duì)列項(xiàng)為12項(xiàng),能夠有效提高非對(duì)稱流水線設(shè)計(jì)中發(fā)射隊(duì)列的利用率。

        4.2 發(fā)射策略優(yōu)化

        發(fā)射隊(duì)列向執(zhí)行部件發(fā)射指令的策略對(duì)整個(gè)流水線的效率有很大影響。由于本文的發(fā)射隊(duì)列是一個(gè)2入2出的隊(duì)列結(jié)構(gòu),所輸出的2條指令需要根據(jù)類型不同分配到不同的執(zhí)行槽上。本文設(shè)計(jì)對(duì)比了2種不同的發(fā)射策略對(duì)執(zhí)行性能的影響。2種不同的發(fā)射策略如圖3所示。圖3a的發(fā)射隊(duì)列在接受分派的指令時(shí),不對(duì)指令進(jìn)行分類檢查,而在發(fā)射到執(zhí)行流水線之前,分別從發(fā)射隊(duì)列的高低2部分選取最老的指令,然后對(duì)2條選取出的指令進(jìn)行類別判定。如果2條指令存在執(zhí)行流水線沖突,則取消1條指令。否則,將指令發(fā)射到對(duì)應(yīng)的執(zhí)行流水線中執(zhí)行。圖3b的發(fā)射隊(duì)列在接收分派的指令進(jìn)入發(fā)射隊(duì)列之前,對(duì)所處理的指令進(jìn)行執(zhí)行流水線的標(biāo)記,指令進(jìn)入發(fā)射隊(duì)列之后就已經(jīng)確定在流水線j(slotj)或者流水線k(slotk)執(zhí)行。發(fā)射時(shí),從所有的隊(duì)列項(xiàng)中分別選取流水線j(slotj)或者流水線k(slotk)中的最老的指令進(jìn)行發(fā)射即可。

        Figure 3 Two different issue strategies圖3 2種不同的發(fā)射策略

        對(duì)2種發(fā)射策略進(jìn)行SPEC2006性能評(píng)測(cè)的結(jié)果如圖3所示。發(fā)射隊(duì)列輸入端對(duì)指令進(jìn)行執(zhí)行流水線的標(biāo)記相比于基準(zhǔn)版的發(fā)射策略能夠有效降低執(zhí)行流水線的沖突,提升執(zhí)行的有效IPC,最大可提升10.68%。2種發(fā)射隊(duì)列的主要不同點(diǎn)在于是在發(fā)射隊(duì)列輸入端還是輸出端進(jìn)行執(zhí)行流水線的判定。圖3a從發(fā)射隊(duì)列的高低2部分分別選擇2條指令,在輸出端進(jìn)行執(zhí)行流水線的判定,需要的選擇邏輯較少,但是存在2條指令執(zhí)行流水線沖突的情況。圖3b在發(fā)射隊(duì)列的輸入端就進(jìn)行執(zhí)行流水線的標(biāo)記和確定,在發(fā)射時(shí)只要選擇對(duì)應(yīng)執(zhí)行流水線的指令發(fā)射到對(duì)應(yīng)的執(zhí)行流水線中,能夠有效減少執(zhí)行流水線沖突的情況,但是選擇控制邏輯較多。

        Figure 4 Performance comparison of two issue strategies圖4 2種發(fā)射策略性能對(duì)比

        4.3 發(fā)射隊(duì)列項(xiàng)數(shù)

        由于發(fā)射隊(duì)列是亂序超標(biāo)量處理器中最關(guān)鍵的亂序資源,其項(xiàng)數(shù)對(duì)性能和整個(gè)處理器的PPA(Performance Power and Area)指標(biāo)影響很大,因此,本文也對(duì)比了24項(xiàng)發(fā)射隊(duì)列與32項(xiàng)發(fā)射隊(duì)列對(duì)處理器SPEC2006實(shí)際IPC性能的影響,發(fā)射隊(duì)列均采用輸入端標(biāo)記式的發(fā)射策略。SPEC2006的IPC性能測(cè)試結(jié)果如圖5所示。

        由于僅增加了浮點(diǎn)部件的發(fā)射隊(duì)列,所以SPEC的整數(shù)程序的性能提升不大,但也有稍許提升。對(duì)于浮點(diǎn)測(cè)試程序平均IPC性能提升2%,最大提升8.59%。但是,454.calcculix程序IPC性能降低12%,可能是該程序的訪存較多,增大發(fā)射隊(duì)列會(huì)引起更多的流水線刷新,從而引起性能的降低。因此,增大亂序發(fā)射資源的同時(shí),必須相應(yīng)地優(yōu)化其他亂序資源,以達(dá)到資源的最大利用率,有效提升IPC性能。

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

        發(fā)射隊(duì)列是超標(biāo)量處理器中的關(guān)鍵部件,并對(duì)整個(gè)處理器的性能起著決定性的作用。本文設(shè)計(jì)并實(shí)現(xiàn)了一種2入2出的發(fā)射隊(duì)列結(jié)構(gòu),并對(duì)不同的發(fā)射策略進(jìn)行了性能評(píng)測(cè)與優(yōu)化。比對(duì)了32項(xiàng)與24項(xiàng)發(fā)射隊(duì)列對(duì)處理器有效IPC性能的影響。發(fā)射隊(duì)列的項(xiàng)數(shù)對(duì)處理器的IPC性能有重要影響,在增大發(fā)射隊(duì)列資源的同時(shí),也必須相應(yīng)地優(yōu)化其他亂序資源,以獲得資源的最大利用率。

        猜你喜歡
        指令結(jié)構(gòu)
        聽我指令:大催眠術(shù)
        《形而上學(xué)》△卷的結(jié)構(gòu)和位置
        論結(jié)構(gòu)
        新型平衡塊結(jié)構(gòu)的應(yīng)用
        模具制造(2019年3期)2019-06-06 02:10:54
        ARINC661顯控指令快速驗(yàn)證方法
        LED照明產(chǎn)品歐盟ErP指令要求解讀
        論《日出》的結(jié)構(gòu)
        殺毒軟件中指令虛擬機(jī)的脆弱性分析
        創(chuàng)新治理結(jié)構(gòu)促進(jìn)中小企業(yè)持續(xù)成長(zhǎng)
        一種基于滑窗的余度指令判別算法
        日本视频中文字幕一区在线| 无码无套少妇毛多18p| 欧美video性欧美熟妇| 一本色道久久88—综合亚洲精品 | 久久乐国产精品亚洲综合| 国产成人久久蜜一区二区| 蜜桃视频成年人在线观看| 无套无码孕妇啪啪| 天天躁狠狠躁狠狠躁夜夜躁| 亚洲午夜无码AV不卡| 国产自拍精品在线视频| 免费看美女被靠到爽的视频 | 秒播无码国产在线观看| 女同成片av免费观看| 国产老熟女精品一区二区| 日本av一区二区三区视频| 久久精品人妻无码一区二区三区| 青草福利在线| 精品粉嫩国产一区二区三区| 蜜桃视频国产一区二区| 亚洲精品午夜无码专区| 国产尻逼视频| 亚洲av第二区国产精品| 丰满人妻熟妇乱又仑精品| 久久老子午夜精品无码怎么打 | 国产精品一区二区日本| 天天躁日日躁狠狠躁av| 国产视频网站一区二区三区| 亚洲av成人波多野一区二区| 人妻一区二区三区在线看| 娇妻在交换中哭喊着高潮| 国产精品一区二区暴白浆| 婷婷开心五月综合基地| 美女脱了内裤露出奶头的视频| 国産精品久久久久久久| 精品国产性色av网站| 日韩精品免费视频久久| 国产熟女内射oooo| 婷婷丁香91| 白色月光免费观看完整版| 国产综合精品一区二区三区 |