《電子技術(shù)應用》
您所在的位置:首頁 > 其他 > 業(yè)界動態(tài) > 超標量處理器中重排序緩沖器的研究

超標量處理器中重排序緩沖器的研究

2009-09-23
作者:張 鶴

  摘 要:介紹了重排序緩沖器實現(xiàn)思想與硬件結(jié)構(gòu),并提出了增加結(jié)果鎖存器和將重排序緩沖器由集中式改為分布式的設(shè)計,來降低重排序緩沖器設(shè)計復雜度的方案。
  關(guān)鍵詞:重排序緩沖器;寄存器重命名;超標量;亂序執(zhí)行;低復雜度

?

  隨著科技的發(fā)展,人們對計算機處理速度的要求越來越高。為了提高微處理器的性能,人們提出了超標量流水線技術(shù)。超標量技術(shù)是指CPU在每個時鐘周期內(nèi)可以完成一條以上指令的并行執(zhí)行技術(shù)[1]。實現(xiàn)多指令并行執(zhí)行的關(guān)鍵在于亂序執(zhí)行。亂序執(zhí)行是指不按照指令原始順序執(zhí)行的技術(shù)。而實現(xiàn)指令亂序執(zhí)行的關(guān)鍵是用到了寄存器重命名技術(shù)。寄存器重命名是用一個或者多個虛擬寄存器來代替真實的數(shù)據(jù)寄存器的硬件猜測方法。重排序緩沖器ROB(Reorder Buffer)是超標量處理器中基于寄存器重命名技術(shù)的一種實現(xiàn)結(jié)構(gòu),在MIPS R10000、Intel Pentium系列處理器和IBM Power系列處理器中得到了廣泛的應用。
  本文在介紹重排序緩沖器原理和實現(xiàn)的基礎(chǔ)上,分析了重排序緩沖器的復雜度問題,即重排序緩沖器是一個占用大量寄存器資源并且有多個并行讀寫端口的復雜器件,耗費大量的功耗,容易出現(xiàn)不必要的延時。文中通過適當?shù)母倪M方法,優(yōu)化了重排序緩沖器的結(jié)構(gòu)和性能。
1 超標量處理器中的寄存器重命名技術(shù)
1.1?超標量處理器
  現(xiàn)今的超標量處理器都是通過一個時鐘周期內(nèi)發(fā)射多條指令并且亂序執(zhí)行這些指令來實現(xiàn)多指令并行技術(shù)的。
  一般流水線技術(shù)的局限在于采用了按序發(fā)射指令的機制,指令必須按照原來的順序執(zhí)行。即如果流水線中出現(xiàn)停頓,那么后續(xù)指令則無法前行。因此,若2條緊挨著的指令存在相關(guān)關(guān)系就會引起停頓。對于有多個功能部件的機器,會造成這些功能的閑置。亂序執(zhí)行技術(shù)允許指令不按照原來的發(fā)射順序執(zhí)行,哪條指令的操作數(shù)已經(jīng)就緒,就可以提前執(zhí)行。這樣可有效提高指令的執(zhí)行效率。
1.2?寄存器重命名
  亂序執(zhí)行帶來的數(shù)據(jù)相關(guān)和控制相關(guān)的問題,實質(zhì)上是由于使用了共同的寄存器資源保存了不同的變量值所引發(fā)的[2]。若采用更名的方法,用2個不同的寄存器來保存這2個變量,出現(xiàn)相關(guān)的2條指令就能并發(fā)執(zhí)行,不會引起性能的損失。Tomasulo算法就是一種基于寄存器重命名的動態(tài)調(diào)度算法,并在超標量流水線中得到廣泛應用。
2?重排序緩沖器的分析及相關(guān)問題的提出
2.1?重排序緩沖器的原理
  亂序執(zhí)行會帶來數(shù)據(jù)沖突和控制沖突,數(shù)據(jù)沖突問題可以單純地采用保留站的調(diào)度技術(shù)予以解決,控制沖突的解決則要利用分支預測技術(shù),而分支預測常常會帶來預測的失敗。如果僅僅允許亂序執(zhí)行而不順序?qū)懟氐脑挘蜁霈F(xiàn)不可恢復的預測失敗。因此,在Tomasulo算法的基礎(chǔ)上,又采用了一種基于硬件的猜測技術(shù)—重排序緩沖器。
  重排序緩沖器本質(zhì)上也是一種寄存器重命名技術(shù),重排序緩沖器提供了額外的寄存器,就像Tomasulo算法中的保留站擴展了寄存器堆一樣。重排序緩沖器在指令執(zhí)行結(jié)束和指令提交之間保存指令的執(zhí)行結(jié)果。因此,重排序緩沖器可以為指令提供源操作數(shù),就像Tomasulo算法中的保留站一樣提供操作數(shù)[3]。在Tomasulo算法中,一旦一條指令寫入它的執(zhí)行結(jié)果,任何后邊的指令都可以在寄存器堆中讀取該結(jié)果,在指令提交之前,數(shù)據(jù)寄存器不用得到更新,由重排序緩沖器在指令執(zhí)行完畢和提交之前提供操作數(shù)。如圖1所示,重排序機制類似于一種旁路機制,這樣可將在重排序緩沖器中保存的某個指令的結(jié)果送到等待它的執(zhí)行單元中,不用經(jīng)過數(shù)據(jù)寄存器[4]


  相比提供操作數(shù),重排序緩沖器另一個最大的作用是保證指令有序提交和異常行為恢復執(zhí)行[4]。提交階段必須按一開始程序的最初順序提交結(jié)果到指定的存儲單元。在指令譯碼之后、亂序發(fā)射之前,每條指令已經(jīng)在重排序緩沖器中按序申請到存儲單元。當指令執(zhí)行完畢,重排序緩沖器就可以保證最終結(jié)果順序提交。一旦出現(xiàn)中斷或異常行為,則廢除未提交的剩余所有執(zhí)行結(jié)果,進入中斷處理或從正確的指令處重新開始執(zhí)行。如圖2所示。

?


2.2?重排序緩沖器的硬件實現(xiàn)
  重排序緩沖器是用于亂序執(zhí)行后恢復指令原來順序的一種硬件結(jié)構(gòu),以達到指令結(jié)果順序提交的目的。可以把重排序緩沖器看作是一個包含頭指針和尾指針的堆棧FIFO[5]。每條指令進入流水線的時候,按照程序的最先順序都在重排序緩沖器中依次占據(jù)了一列條目,等指令執(zhí)行完畢,按照先入先出的順序依次提交指令。當發(fā)生中斷或者異常行為時,也能恢復原來的執(zhí)行順序。重排序緩沖器主要由下列幾個字段構(gòu)成:
  (1) 指令字段:記錄指令;
  (2) 目標寄存器字段:記錄指令結(jié)果要寫入的數(shù)據(jù)寄存器的地址;
  (3) 數(shù)值字段:記錄指令的最后結(jié)果,如果結(jié)果還沒有得出,則記錄得出該結(jié)果的指令在ROB中的地址;
  (4) 完成字段:記錄指令是否執(zhí)行完畢。
  重排序緩沖器在超標量流水線中的實現(xiàn)如圖3所示。運算單元FU(Floating Unit)計算出結(jié)果后,將其寫到重排序緩沖器中。同時通過前置定向總線FB(Forwarding? Bus)送給發(fā)射隊列IQ(Instruction Queue)中正在等待該操作數(shù)的指令。重排序緩沖器中存儲的結(jié)果將在指令退休時送給相應的數(shù)據(jù)寄存器ARF(Architecture Register Files)中。在指令發(fā)射時,操作數(shù)的值按照具體情況,既可以從數(shù)據(jù)寄存器中獲得,也可以從重排序緩沖器中獲得,如果值還沒有計算出來,指令要在發(fā)射隊列中等待,直到前置定向總線將運算結(jié)果送到發(fā)射隊列指定的位置。

?

?

3?重排序緩沖器的復雜性和優(yōu)化方案
3.1?重排序緩沖器的復雜性

  這類的重排序緩沖器通常以允許多端口同時讀寫的寄存器堆的方式實現(xiàn)。在一個N指令發(fā)射的超標量流水線中重排序緩沖器至少需要2N個讀端口,以供N條指令可以在一個時鐘周期內(nèi)讀取所需要的2N個操作數(shù)。至少需要N個寫端口,以供N條指令一個時鐘周期內(nèi)將結(jié)果寫入重排序緩沖器中。
  多端口寄存器堆的實現(xiàn)會加劇設(shè)計的復雜度,并且實際的端口數(shù)有時還會因為出現(xiàn)雙倍位寬的操作數(shù)而加倍。在通常情況下,可以采用雙重排序緩沖器并行存在的方式,以減少每個重排序緩沖器端口的數(shù)量。但是,雙倍位寬和單倍位寬的數(shù)據(jù)常常一起存在,倘若采用雙ROB的形式將不可避免的帶來極大地浪費。
  另外,隨著端口數(shù)的增加,寄存器堆的面積也呈快速增長趨勢,這必將導致時序的延遲和功耗的增加。因此,合理地優(yōu)化重排序緩沖器的結(jié)構(gòu)設(shè)計日益成為人們關(guān)心的焦點。
3.2 重排序緩沖器結(jié)構(gòu)的優(yōu)化
  一個優(yōu)化的方法是去除重排序緩沖器上原操作數(shù)讀端口用以簡化寄存器堆的設(shè)計。當指令的結(jié)果從運算單元送到重排序緩沖器中的同時,通過前置定向總線送到指令發(fā)射單元中等待該操作數(shù)的指令隊列。之后,該操作數(shù)提交給數(shù)據(jù)寄存器,指令分配單元無法再從重排序緩沖器中讀此操作數(shù)。當操作數(shù)需要第二次被提取時,而該操作數(shù)還沒有被提交給數(shù)據(jù)寄存器時,常常會因為無法讀重排序緩沖器中的值,出現(xiàn)延遲,造成流水線的阻塞。因此,可以參考計算機中緩存Cache的設(shè)計方法,如圖4所示,加一個存儲單元數(shù)遠少于重排序緩沖器的數(shù)據(jù)鎖存器RL(Retention Latches)以存儲指令結(jié)果,這樣執(zhí)行結(jié)束的指令結(jié)果在寫入重排序緩沖器的同時也并行寫入了數(shù)據(jù)鎖存器。為了在增加數(shù)據(jù)鎖存器的基礎(chǔ)上而不增加設(shè)計的復雜度,數(shù)據(jù)鎖存器的存儲量應該盡可能的小,不妨采用LRU算法進行鎖存器內(nèi)部數(shù)據(jù)的替換管理。LRU是廣泛應用于計算機緩存Cache中的一種數(shù)據(jù)替換算法,為了減少替換那些可能不久要用到的信息,需要記錄數(shù)據(jù)塊的使用次數(shù)來預測未來的使用情況[6]。這樣在指令被重排序緩沖器提交給數(shù)據(jù)寄存器之前,數(shù)據(jù)鎖存器可以有效解決操作數(shù)延遲獲得的問題。

?

  另一個優(yōu)化的方法,從Tomasulo算法的分布式保留站中得到啟發(fā),將重排序緩沖器由集中式改為分布式,如圖5所示。這樣可以將一個多端口讀寫的重排序緩沖器簡化成多個單端口讀寫的重排序緩沖器。這種方法簡化了原來集中式寄存器堆多端口同時讀寫的復雜度,但也帶來了因為多個分散的重排序緩沖器中指令提交的排序問題。為此,可以在譯碼時給每一條指令加上標志位,指明該指令在程序中的順序,并且標注該指令發(fā)送給哪一個運算單元。這樣,在每個緩沖器提交指令或者預測失敗時,便能在多緩沖器間協(xié)調(diào)讀取指令或者結(jié)果。

?

3.3?性能分析
  根據(jù)對各種模型的分析,列出表1中的順序執(zhí)行、改進前的硬件猜測法以及改進后的硬件猜測法3種實現(xiàn)形式,采用Verilog HDL語言對結(jié)構(gòu)進行描述,采用Synopsy公司的Design Compiler工具在0.18 μm的CMOS工藝下進行綜合和時序分析,得出性能的比較如表1所列。

?

  從表1中可以看出,在普通的順序執(zhí)行算法下,硬件路徑延遲較大,但是面積最小;改進前的硬件猜測算法路徑延遲最小,但是面積最大,帶來了設(shè)計上復雜度和功耗損失較大的問題;采用改進后的硬件猜測算法以后,雖然路徑延遲比改進前大,但是面積相對減少很多,并且路徑的延遲相比順序執(zhí)行仍然減少了不少。因此,采用改進后的硬件猜測算法在減少面積的情況下得到了可觀的效果。
  超標量處理器中的重排序緩沖器對于實現(xiàn)指令的亂序執(zhí)行和順序提交起著重要的作用。隨著對指令并行度要求的不斷提高,重排序緩沖器的設(shè)計結(jié)構(gòu)會越來越復雜。本文提出了幾點改進方法,通過減少單個緩沖器上讀端口的數(shù)目,有效地降低了重排序緩沖器的設(shè)計復雜度,這對將來的超標量處理器的設(shè)計有著深遠影響。


參考文獻
[1]?STEVEN W, NADER B. Modeled and measured instruction fetching performance for superscalar microprocessors. IEEE transaction on parallel and distributed, 1998,9(6).
[2]?JOHN P,MIKKO H L.現(xiàn)代處理器設(shè)計——超標量處理器基礎(chǔ)[M].北京:電子工業(yè)出版社,2004.
[3]?JOHN L H,DAVID A P.計算機系統(tǒng)結(jié)構(gòu)——量化研究方法(第3版)[M].北京:電子工業(yè)出版社,2004.
[4]?鄧正宏,康慕寧,羅旻. 超標量微處理器的研究和應用[J].微電子學與計算機,2004,21(9):59-63.
[5]?TAREK M T, WILLS D S. An instruction throughput model of Superscalar Processors[J]. IEEE Transactions On Computers,2008,57(3).
[6]?李學干. 計算機系統(tǒng)結(jié)構(gòu)[M]. 西安:西安交通大學出版社,2007.

本站內(nèi)容除特別聲明的原創(chuàng)文章之外,轉(zhuǎn)載內(nèi)容只為傳遞更多信息,并不代表本網(wǎng)站贊同其觀點。轉(zhuǎn)載的所有的文章、圖片、音/視頻文件等資料的版權(quán)歸版權(quán)所有權(quán)人所有。本站采用的非本站原創(chuàng)文章及圖片等內(nèi)容無法一一聯(lián)系確認版權(quán)者。如涉及作品內(nèi)容、版權(quán)和其它問題,請及時通過電子郵件或電話通知我們,以便迅速采取適當措施,避免給雙方造成不必要的經(jīng)濟損失。聯(lián)系電話:010-82306118;郵箱:aet@chinaaet.com。
亚洲一区二区欧美_亚洲丝袜一区_99re亚洲国产精品_日韩亚洲一区二区
亚洲精品国产无天堂网2021| 亚洲欧美日韩一区二区三区在线观看 | 国产精品久久午夜| 欧美日韩精品免费观看视一区二区| 蜜臀av性久久久久蜜臀aⅴ| 久久人人97超碰精品888| 久久久噜噜噜久久人人看| 久久精品日韩欧美| 久久精品女人的天堂av| 欧美一级大片在线观看| 欧美一区三区三区高中清蜜桃| 欧美一级日韩一级| 先锋影音久久| 欧美一区二区三区四区在线观看| 性色av一区二区三区在线观看| 欧美一区二区在线免费观看| 香蕉成人啪国产精品视频综合网| 午夜激情一区| 欧美有码在线观看视频| 久久精品日韩欧美| 久久夜色精品国产欧美乱| 免播放器亚洲| 欧美激情五月| 欧美日韩妖精视频| 国产精品第一页第二页第三页| 欧美亚男人的天堂| 国产女优一区| 经典三级久久| 亚洲精品免费网站| 在线亚洲电影| 欧美亚洲综合网| 亚洲电影毛片| aa成人免费视频| 亚洲欧美大片| 久久综合久久综合久久综合| 欧美激情一区二区三区高清视频| 国产精品a级| 国产区在线观看成人精品| 伊人狠狠色丁香综合尤物| 亚洲日产国产精品| 亚洲网站在线播放| 欧美有码视频| 一本大道久久a久久精二百| 亚洲欧美一区二区精品久久久| 久久精品色图| 欧美日韩国产三级| 国产精品日韩专区| 在线观看日韩av先锋影音电影院| 亚洲三级国产| 翔田千里一区二区| 亚洲国产日韩一级| 亚洲一区免费看| 久久婷婷综合激情| 欧美三级午夜理伦三级中文幕| 国产视频精品免费播放| 91久久久精品| 亚洲欧美在线磁力| 日韩视频不卡| 欧美制服丝袜第一页| 欧美精品一区二区高清在线观看| 国产欧美精品日韩| 亚洲人成网站影音先锋播放| 亚洲欧美日韩专区| 亚洲毛片视频| 久久精品2019中文字幕| 欧美日韩国产在线看| 韩国成人福利片在线播放| 99亚洲一区二区| 久久福利一区| 亚洲欧美日韩视频二区| 欧美第一黄网免费网站| 国产亚洲精品bv在线观看| 99综合电影在线视频| 亚洲国产一区在线| 性18欧美另类| 欧美日韩另类国产亚洲欧美一级| 黄页网站一区| 亚洲欧美在线免费| 亚洲性夜色噜噜噜7777| 麻豆freexxxx性91精品| 国产毛片精品国产一区二区三区| 在线观看亚洲视频| 亚洲综合另类| 亚洲桃花岛网站| 欧美高清视频www夜色资源网| 国产亚洲精品一区二555| 中文有码久久| 中文av一区二区| 欧美激情视频在线播放| 在线成人激情黄色| 欧美一级电影久久| 午夜在线不卡| 欧美日韩精品一本二本三本| 一区二区自拍| 欧美在线观看视频一区二区三区| 在线一区二区三区四区五区| 免费欧美电影| 伊人久久亚洲影院| 久久精品久久综合| 久久精品麻豆| 国产伦精品一区二区三区四区免费| 一区二区黄色| 在线综合亚洲欧美在线视频| 欧美破处大片在线视频| 在线日韩成人| 亚洲韩国青草视频| 久久综合网络一区二区| 国产真实久久| 欧美在线国产| 久久久国产亚洲精品| 国产在线高清精品| 久久爱www久久做| 久久久视频精品| 国模大胆一区二区三区| 欧美一区二区在线观看| 久久国产精品网站| 国产在线精品自拍| 久久精品国产2020观看福利| 久久久最新网址| 雨宫琴音一区二区在线| 亚洲第一狼人社区| 蜜桃av一区二区在线观看| 1024亚洲| 日韩一区二区电影网| 欧美日韩亚洲免费| 亚洲性视频h| 欧美一区午夜精品| 合欧美一区二区三区| 亚洲国产专区| 欧美另类亚洲| 制服丝袜亚洲播放| 久久精品国产69国产精品亚洲| 国产一区二区三区免费在线观看| 久久精品国产99国产精品澳门| 美女图片一区二区| 亚洲精品三级| 午夜精品影院| 国产一区亚洲| 亚洲精品美女久久久久| 欧美四级在线观看| 亚洲欧美不卡| 乱中年女人伦av一区二区| 亚洲国产精品精华液2区45| 亚洲免费观看在线观看| 国产精品久久久久久亚洲调教| 亚洲欧美一区二区三区久久| 久久久久国产一区二区三区| 亚洲国产精品久久| 亚洲男人天堂2024| 韩国精品在线观看| 99re热这里只有精品免费视频| 国产精品高精视频免费| 欧美中文在线免费| 欧美极品在线观看| 亚洲欧美日韩电影| 美女精品在线观看| 一二三四社区欧美黄| 久久久精品久久久久| 亚洲欧洲在线免费| 欧美一区二区三区四区在线| 在线观看亚洲视频啊啊啊啊| 亚洲在线观看视频| 国自产拍偷拍福利精品免费一| 亚洲三级视频在线观看| 国产精品久久久久久久一区探花 | 性色av一区二区三区在线观看| 免费观看成人www动漫视频| 一二三区精品| 久久久亚洲成人| 亚洲精品麻豆| 久久久精品免费视频| 日韩视频在线观看国产| 久久久国产一区二区| 日韩亚洲精品视频| 久久久水蜜桃| 亚洲性av在线| 欧美激情第9页| 欧美一级二级三级蜜桃| 欧美精品在线视频观看| 欧美专区在线观看一区| 欧美午夜片在线免费观看| 亚洲国产精品久久久久婷婷老年| 欧美亚一区二区| 亚洲精品在线一区二区| 国产一区二区三区在线免费观看 | 欧美一区二区三区免费视| 欧美色播在线播放| 亚洲激情成人在线| 国产日韩欧美另类| 这里只有视频精品| 在线精品国产欧美| 欧美一区午夜精品| 99在线精品视频在线观看| 免费的成人av| 欧美亚洲在线| 国产精品v日韩精品| 日韩视频免费在线观看| 激情综合激情| 久久国产精品色婷婷| 亚洲一区bb|