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

        ?

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

        2021-08-06 03:22:56隋兵才孫彩霞王永文
        關(guān)鍵詞:流水線隊(duì)列功耗

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

        (國(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)工作

        指令通過(guò)取指和譯碼流水站之后,通過(guò)分派邏輯被存儲(chǔ)到發(fā)射隊(duì)列中,在所有操作數(shù)準(zhǔn)備好之后被發(fā)射到執(zhí)行單元。發(fā)射隊(duì)列的設(shè)計(jì)需要著重考慮影響性能和復(fù)雜性的相關(guān)問(wè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)的功耗問(wèn)題進(jìn)行優(yōu)化[2,3],大多通過(guò)動(dòng)態(tài)調(diào)整發(fā)射隊(duì)列的大小,或者通過(guò)關(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ǔ)緩沖,以保存與訪問(wèn)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è)比較大的問(wèn)題。

        上述很多實(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)。通過(guò)分析指令特性,發(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ù)可以通過(guò)旁路獲得的時(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ì)列并沒(méi)有增加很多額外的硬件開銷。相比于分布式的單端口發(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)化其他亂序資源,以獲得資源的最大利用率。

        猜你喜歡
        流水線隊(duì)列功耗
        Gen Z Migrant Workers Are Leaving the Assembly Line
        隊(duì)列里的小秘密
        基于多隊(duì)列切換的SDN擁塞控制*
        軟件(2020年3期)2020-04-20 00:58:44
        流水線
        在隊(duì)列里
        豐田加速駛?cè)胱詣?dòng)駕駛隊(duì)列
        揭開GPU功耗的面紗
        數(shù)字電路功耗的分析及優(yōu)化
        電子制作(2016年19期)2016-08-24 07:49:54
        報(bào)廢汽車拆解半自動(dòng)流水線研究
        “功耗”說(shuō)了算 MCU Cortex-M系列占優(yōu)
        電子世界(2015年22期)2015-12-29 02:49:44
        亚洲精品视频1区2区| 日本不卡的一区二区三区| 久久精品国产一区老色匹| 强开小婷嫩苞又嫩又紧视频| 久久综合九色综合欧美狠狠| 亚洲国产麻豆综合一区| 色婷婷亚洲一区二区在线| 极品人妻少妇av免费久久| 亚洲 另类 日韩 制服 无码| 欧美黑人性色黄在线视频| 精品国产麻豆一区二区三区| 青青草在线免费视频播放| 国内露脸少妇精品视频| 久久免费大片| 久久亚洲春色中文字幕久久久综合 | 日本强好片久久久久久aaa| 久久久久久久久久91精品日韩午夜福利| 日韩女优视频网站一区二区三区| 亚洲爆乳精品无码一区二区三区 | 人妻夜夜爽天天爽三区丁香花| 无码精品日韩中文字幕| 久久久久久99精品| 日韩精品一区二区亚洲专区| 无码小电影在线观看网站免费| 内射交换多p国产| 国产一级片内射在线视频| 国产变态av一区二区三区调教| 黑人巨大精品欧美一区二区| 国内精品人妻无码久久久影院94| 91热久久免费频精品99| 亚洲综合激情另类小说区| 欧美俄罗斯乱妇| 黄色三级视频中文字幕| 日韩精品视频久久一区二区| 久久久久久久岛国免费观看| 亚洲区偷拍自拍29p| 成人男性视频在线观看| 老师露出两个奶球让我吃奶头 | 无码毛片视频一区二区本码| 亚洲天堂av免费在线看| 开心五月骚婷婷综合网|