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

超標(biāo)量處理器中重排序緩沖器的研究

2009-09-23
作者:張 鶴

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

?

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


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

?


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

?

?

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

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

?

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

?

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

?

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


參考文獻(xiàn)
[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è)計——超標(biāo)量處理器基礎(chǔ)[M].北京:電子工業(yè)出版社,2004.
[3]?JOHN L H,DAVID A P.計算機(jī)系統(tǒng)結(jié)構(gòu)——量化研究方法(第3版)[M].北京:電子工業(yè)出版社,2004.
[4]?鄧正宏,康慕寧,羅旻. 超標(biāo)量微處理器的研究和應(yīng)用[J].微電子學(xué)與計算機(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]?李學(xué)干. 計算機(jī)系統(tǒng)結(jié)構(gòu)[M]. 西安:西安交通大學(xué)出版社,2007.

本站內(nèi)容除特別聲明的原創(chuàng)文章之外,轉(zhuǎn)載內(nèi)容只為傳遞更多信息,并不代表本網(wǎng)站贊同其觀點(diǎn)。轉(zhuǎn)載的所有的文章、圖片、音/視頻文件等資料的版權(quán)歸版權(quán)所有權(quán)人所有。本站采用的非本站原創(chuàng)文章及圖片等內(nèi)容無法一一聯(lián)系確認(rèn)版權(quán)者。如涉及作品內(nèi)容、版權(quán)和其它問題,請及時通過電子郵件或電話通知我們,以便迅速采取適當(dāng)措施,避免給雙方造成不必要的經(jīng)濟(jì)損失。聯(lián)系電話:010-82306118;郵箱:aet@chinaaet.com。
亚洲一区二区欧美_亚洲丝袜一区_99re亚洲国产精品_日韩亚洲一区二区
亚洲国产欧美日韩| 亚洲高清视频的网址| 狠狠色狠狠色综合人人| 国产精品综合视频| 国产精品手机在线| 国产精品看片你懂得| 欧美视频二区36p| 欧美人成在线视频| 欧美日韩高清区| 欧美日韩国产大片| 欧美色图五月天| 国产精品成人在线观看| 国产精品theporn| 国产精品久久久久久久久久免费| 欧美午夜不卡影院在线观看完整版免费| 欧美日韩视频在线第一区| 欧美日韩国产精品一卡| 欧美日韩免费在线观看| 欧美日韩在线观看一区二区三区| 欧美视频一区二区三区在线观看| 欧美天堂亚洲电影院在线观看 | 欧美综合77777色婷婷| 久久riav二区三区| 久久久久久久久久久久久女国产乱 | 国产精品久久久999| 国产精品一区免费观看| 国产在线观看一区| **网站欧美大片在线观看| 亚洲欧洲一二三| 夜夜夜久久久| 先锋影音一区二区三区| 亚洲黄色性网站| 一本不卡影院| 亚洲欧美在线aaa| 久久青草福利网站| 欧美电影打屁股sp| 国产精品盗摄久久久| 国产日产欧美a一级在线| 黄色精品一二区| 日韩视频精品| 香蕉久久一区二区不卡无毒影院 | 欧美成人午夜免费视在线看片 | 亚洲欧美日本伦理| 久久精品国产在热久久| 日韩亚洲国产精品| 校园春色国产精品| 免费欧美日韩| 欧美体内谢she精2性欧美| 国产免费亚洲高清| 亚洲国产三级在线| 亚洲一区二区三区精品动漫| 久久精品一区蜜桃臀影院| 夜夜嗨av一区二区三区网站四季av| 亚洲综合成人在线| 免费不卡在线观看| 国产精品啊啊啊| 黄色成人在线网址| 一本色道88久久加勒比精品| 欧美在线亚洲综合一区| 在线综合欧美| 久久婷婷国产综合精品青草| 欧美日韩亚洲91| 国语自产精品视频在线看| 夜夜嗨网站十八久久| 久久精品欧美日韩| 亚洲一区二区在线免费观看| 久久久天天操| 国产精品久久久久国产精品日日 | 亚洲久久一区| 久久精品国产77777蜜臀| 欧美理论电影网| 国产一区二区高清| 在线亚洲观看| 亚洲欧洲精品一区二区三区波多野1战4| 亚洲女性喷水在线观看一区| 欧美不卡三区| 国产永久精品大片wwwapp| 一本到高清视频免费精品| 亚洲国产黄色片| 午夜精品久久久久| 欧美日韩国产页| 亚洲电影免费观看高清完整版在线观看| 亚洲欧美国产精品桃花 | 亚洲天堂视频在线观看| 老鸭窝91久久精品色噜噜导演| 国产精品裸体一区二区三区| 亚洲精品国产精品国自产在线| 欧美在线免费观看视频| 午夜精品99久久免费| 欧美日韩国产91| 亚洲国产经典视频| 久久精品一区| 久久精品国内一区二区三区| 国产精品成人免费精品自在线观看| 在线观看一区欧美| 久久狠狠婷婷| 久久国产毛片| 国产欧美日韩麻豆91| 一区二区三区高清视频在线观看| 99re视频这里只有精品| 男人插女人欧美| 一区福利视频| 亚洲国产裸拍裸体视频在线观看乱了中文 | 久久av一区二区三区| 午夜在线一区二区| 国产精品sss| 妖精成人www高清在线观看| 日韩一级大片在线| 欧美国产丝袜视频| 亚洲韩国日本中文字幕| 91久久久久久| 欧美成人一区二免费视频软件| 激情懂色av一区av二区av| 久久精彩免费视频| 久久精品女人的天堂av| 国产亚洲精久久久久久| 欧美一区二区三区婷婷月色 | 欧美三级中文字幕在线观看| 亚洲精品一区在线观看| 99在线精品视频| 欧美日韩美女在线| 99精品热6080yy久久| 亚洲网站啪啪| 国产精品久久网| 亚洲中字黄色| 久久国产精品72免费观看| 国产亚洲激情| 亚洲福利免费| 欧美激情精品久久久久久变态| 亚洲欧洲在线免费| 亚洲性色视频| 国产欧美va欧美不卡在线| 欧美一级二级三级蜜桃| 老司机精品视频一区二区三区| 在线国产欧美| 一本色道久久精品| 国产精品久久久久久户外露出 | 日韩一级黄色片| 欧美色欧美亚洲高清在线视频| 中文无字幕一区二区三区| 午夜精品视频在线观看| 国产一区导航| 亚洲精品视频啊美女在线直播| 欧美日韩国产首页| 亚洲在线视频一区| 久久这里只有| 亚洲精品日韩一| 小黄鸭视频精品导航| 激情六月婷婷综合| 9色porny自拍视频一区二区| 欧美无砖砖区免费| 欧美一区二区三区四区高清| 欧美+日本+国产+在线a∨观看| 99re这里只有精品6| 午夜一区二区三区在线观看| 国内精品美女av在线播放| 亚洲精品免费一区二区三区| 国产精品爱啪在线线免费观看| 欧美一区二粉嫩精品国产一线天| 免费人成精品欧美精品| 在线视频亚洲一区| 久久久久在线观看| 亚洲日本电影在线| 欧美一区二区高清| 亚洲国产欧美不卡在线观看| 亚洲欧美高清| 亚洲大片在线| 午夜久久黄色| 亚洲电影免费观看高清| 午夜精品久久久久久久白皮肤| 在线观看中文字幕亚洲| 亚洲欧美bt| 在线日本成人| 亚洲男同1069视频| 亚洲大片在线| 欧美影院成人| 亚洲日本中文字幕免费在线不卡| 午夜久久福利| 亚洲精品视频免费观看| 欧美一区二区三区精品| 亚洲日本电影在线| 久久久久久亚洲精品不卡4k岛国| 亚洲精品国久久99热| 久久国产欧美| 在线视频精品一区| 欧美高清视频| 欧美在线综合| 国产精品免费aⅴ片在线观看| 亚洲激情网站| 国产一区二区久久久| 亚洲一区二区三区久久 | 夜夜爽99久久国产综合精品女不卡| 国产日韩欧美自拍| 一区二区三区四区五区视频| 伊人久久综合97精品| 欧美资源在线| 亚洲小视频在线观看| 欧美日韩国产色综合一二三四 | 欧美日韩亚洲综合| 亚洲黄色高清|