《電子技術應用》
您所在的位置:首頁 > 其他 > 業界動態 > CPU寄存器集的實現方法與重疊寄存器窗口技術

CPU寄存器集的實現方法與重疊寄存器窗口技術

2008-07-18
作者:劉 研

??? 摘 要: 簡要介紹了CPU通用寄存器" title="通用寄存器">通用寄存器及窗口技術" title="窗口技術">窗口技術的產生和發展背景,提出了以CALL和RETURN為代表的指令存在的問題,并給出了解決方法,討論了大寄存器集及窗口技術的缺點和一些相關應用。
??? 關鍵詞: 寄存器? RISC? MIPS? 重疊寄存器窗口技術? CPU

?

??? CPU的通用寄存器是數據存儲體系的最內層。寄存器操作避免了內存地址計算,其訪問時間遠小于Cache和主存。RISC MPU都具有較CISC大的寄存器集(Register file),而且都是LOAD/STORE體系結構,即所有運算的操作數都只針對寄存器中的數據施行,僅用LOAD/STORE類指令訪問內存。從RISC CPU高速處理時間(單周期執行指令)的角度來看,這些主存訪問是非常昂貴的開銷。為了減少LOAD/STORE操作,使CPU與內存間的通訊量最小,不同的RISC體系結構采用了不同的寄存器集設計。從RISC早期開創性研究開始,就存在著兩種不同的風格。
??? (1)Berkeley風格:在美國加州大學伯克利分校RISC I(1981)和RISC II(1983)項目中,CPU采用100個以上的寄存器,組成相互重疊的多寄存器窗口,用這種硬件結構實現寄存器的高效率使用。SUN SPARC是這種風格體系結構的典型范例。
??? (2)IBM/Stanford風格:在IBM 801(1975~1982)和斯坦福大學MIPS(1981~l983)項目中,體系結構設計人員(包括編譯軟件專家)采用非常高級、復雜的優化編譯算法實現對寄存器的最佳分配。目前在這類設計中,以MIPS的優化編譯軟件及其配套的RISC R3000 CPU芯片最為典型,功能最強,發展最成熟。MIPS是高效精簡指令集計算機(RISC)體系結構中最優雅的一種,即使是MIPS的競爭對手也這樣認為。這可以從MIPS對于后來研制的新型體系結構,如DEC的Alpha和HP的Precision產生的強烈影響看出來。雖然自身的優雅設計并不能保證在充滿競爭的市場上長盛不衰,但是MIPS微處理器卻經常能在處理器的每個技術發展階段保持速度最快的同時保持設計的簡潔。
??? 表1列出了不同RISC體系結構的寄存器集的寄存器個數,包括通用寄存器個數及浮點寄存器個數。

?????????????????????????
1 寄存器窗口技術
??? RISC的指令系統比較簡單,CISC中的一條復雜指令,在RISC中通常要用一段子程序" title="子程序">子程序來實現。因此,RISC程序中的CALL和RETURN的子程序指令要比CISC程序中多。為了使CALL和RETURN操作盡量少地訪問存儲器,美國加洲大學伯克利分校的F.Baskett提出重疊寄存器窗口(Overlapping Register Window)技術,并且首先在RISC I上應用。重疊寄存器窗口的基本思想基于在處理機中設置一個數量比較大的寄存器堆,并把它劃分成多個窗口。在RISC II中,寄存器的數量增加到138個。目前,重疊寄存器窗口技術已經成為RISC的一種基本技術。
??? RISC技術的主要設計技巧為:短周期時間;單周期執行指令;LOAD/STORE結構;簡單固定格式的指令系統;不用微碼技術;大寄存器堆;哈佛(Harvard)總線結構;高效的流水線操作;延遲轉移;硬連線控制;重疊寄存器窗口技術;優化編譯程序" title="編譯程序">編譯程序;增強存儲管理功能;面向高級語言。
2 存在的問題
??? 指令執行過程中,某些指令占據與其自身在程序中所占比例不相稱的大量訪存信息量。這一點,在CALL和RETURN指令上表現最為明顯。
??? 在執行CALL指令時,必須把硬件現場(主要包括程序計數器和處理機狀態字)和程序本身的軟件現場(主要指在子程序中要使用的通用寄存器等)保存到主存儲器中。另外,還要把執行子程序所需要的參數從主程序傳送過去。在執行RETURN指令時,要做相反的工作,最后把運算結果傳送回主程序。因此,執行CALL和RETURN指令時,訪問存儲器的信息量非常大。據統計,在PASCAL語言和C語言中分別有15%和12%的CALL和RETURN指令,而它們訪問存儲器的信息量卻占整個訪存信息量的44%和45%。
3 問題解決
??? 重疊寄存器窗口的基本思想:在處理機中設置一個數量比較大的寄存器堆,并把它劃分成很多個窗口。每個過程使用其中相鄰的三個窗口和一個公共窗口,而在這些窗口中有一個窗口是與前一個過程共用,還有一個窗口是與下一個過程共用的。與前一過程共用的窗口可以用來存放前一過程傳送給本過程的參數,同時也存放本過程傳送給前一過程的計算結果。同樣,與下一過程共用窗口可以用來存放本過程傳送給下一過程的參數和存放下一過程傳送給本過程的計算結果。圖1表現了重疊寄存器窗口的基本思想。

??????????????????????????
??? 圖2是RISC II中采用的重疊寄存器窗口,共有138個寄存器,分成17個窗口。其中,有一個由10個寄存器組成的窗口是全局窗口,能被所有過程訪問;另外有8個窗口,每個窗口各10個寄存器,分別作為8個過程的局部寄存器;還有8個窗口,每個窗口各有6個寄存器,是相鄰兩個過程公用的,稱為重疊寄存器窗口。每個過程均可以訪問32個寄存器,其中,有10個是所有過程公用的全局寄存器,有10個是只供本過程使用的局部寄存器,有6個是與上一過程公用的寄存器,還有6個是與下一過程公用的寄存器。

?????????????????????????????????? ???????????
??? 只要調用的深度不超過規定的層數(如8層),重疊寄存器窗口技術可以減少大量的訪存操作。當調用層數超過規定層數時,稱為寄存器溢出,這時,可以在主存中開辟一個堆棧,把超過規定層數的寄存器中的內容壓入堆棧中。
??? 在SUN公司的SPARC處理機以及后來的Super SPARC和Utra SPARC處理機中,還把最后一個過程的公用寄存器與第一個過程的公用寄存器重疊起來,形成一個循環圈。在調用層數很多時,可以循環使用。
??? F.Baskett等人使用Quick sort和Puzzle兩個程序對寄存器窗口技術的有效性進行了測試。Quick sort程序的特點是過程調用的次數在整個程序中所占的比例比較大,但調用的深度不大;而Puzzle程序正好相反。RISC II與VAX-11兩種機器的比較結果如表2所示。RISC II的訪存次數主要是寄存器窗口溢出引起的,而VAX-11訪存次數是為了保持和恢復通用寄存器中內容而引起的。從表2可以看出,RISC II寄存器溢出的次數很少,只占千分之一左右,影響也不大。由于采用了寄存器窗口技術,由程序調用引起的訪問存儲器次數只占程序總訪存次數的1%左右。

??????????????????????
4 開銷比較
??? 表3是RISC II處理機與幾種CISC處理機的每次過程調用的開銷比較。從表3可以看出,在執行時間、執行指令條數、訪問存儲器次數等方面,采用重疊寄存器窗口技術都十分有效。

????????????????????????
5 大寄存器集及窗口技術的缺點
??? 大寄存器集及窗口技術在有效支持高級語言過程調用結構的同時,也不可避免地出現了一些缺點:
??? (1)窗口策略只是在比較理想的情況下,即嵌套深度在滿足一定限制的時候才非常有效。
??? (2)對關聯轉換(Context Switch)時需將CPU寄存器存入內存的系統來說,大寄存器集的Save/Restore 需較長的時間才能完成,這直接影響多任務轉換和中斷響應時系統的響應速度, 而這對多用戶系統和實時控制是非常關鍵的。
??? (3)對于采用流水線的結構處理器來說,指令譯碼是非常關鍵的一個功能段。RSIC MPU獲得高處理速度的一個重要原因就是其極簡單的指令格式、指令集和尋址方式帶來了極快的指令譯碼時間。但采用大寄存器及窗口結構后就需要在指令譯碼通路中增加電路進行寄存器地址的譯碼,如選擇當前窗口及窗口移動。特別是窗口指針需要計算,更增加了寄存器地址的譯碼時間,而且寄存器集越大,寄存器地址譯碼硬件也越復雜,對每一個寄存器的訪問時間也越長,由此在指令流水線譯碼段內引起的時間延遲對系統整體性能的影響也越大(如目前采用寄存器窗口的體系結構都很難實現快速LOAD/STORE指令,需要兩個或更多的周期)。若像SPARC那樣窗口大小固定,則所需譯碼和加法器電路還較簡單,由此引起的附加延遲也較小,系統性能所受影響也不大(但另一方面窗口較大和窗口個數較少,使窗口上溢" title="上溢">上溢次數和每次上溢后所需保存寄存器的數目都增加了)。
??? 若像AMD29000那樣采用可變大小的寄存器窗口, 則對于把窗口上溢次數和上溢后需要保存寄存器的個數減至最少非常有利,但卻必須在指令譯碼通路中采用更復雜的電路,這最終可能導致指令譯碼時間成為制約處理器芯片采用更高時鐘頻率的瓶頸。
??? (4)大寄存器集及窗口結構需占用較大的CPU芯片面積,限制在片上實現其他關鍵硬件。
6 當前寄存器窗口技術的一些應用
??? 高效的函數調用:大多數RSIC處理器的函數調用需要卸出和重新裝入寄存器,開銷很大。IA-64增加了一個通用寄存器窗來支持高效的函數調用。這個128項的通用寄存器窗口被分為一個32項的全程存儲器和一個96項的堆棧存儲器。IA-64允許編譯程序在被調用的函數過程入口設置一條ALLOC指令,創立一個最多包含96項的新寄存器堆棧;在返回時,恢復調用程序的寄存器堆棧幀。對編譯程序來說,似乎有長度無限的物理寄存器堆棧,從而降低了函數調用的開支、提高了效率;如果在調用和返回時,沒有足夠的寄存器可供使用(堆棧溢出),則處理器將被阻塞,等待卸出和裝入寄存器,直到有足夠的寄存器為止。
參考文獻
[1] 白中英,楊旭東.計算機系統結構(第2版).北京:科學出版社,2004.
[2] 鄭緯民,湯志忠.計算機組成原理.北京:清華大學出版社,2004.
[3] 張晨曦.計算機體系結構.北京:高等教育出版社,2003.
[4] Dominic Sweetman.MIPS處理器設計透視See MIPS Run.北京:北京航空航天大學出版社,2005.

本站內容除特別聲明的原創文章之外,轉載內容只為傳遞更多信息,并不代表本網站贊同其觀點。轉載的所有的文章、圖片、音/視頻文件等資料的版權歸版權所有權人所有。本站采用的非本站原創文章及圖片等內容無法一一聯系確認版權者。如涉及作品內容、版權和其它問題,請及時通過電子郵件或電話通知我們,以便迅速采取適當措施,避免給雙方造成不必要的經濟損失。聯系電話:010-82306118;郵箱:aet@chinaaet.com。
亚洲一区二区欧美_亚洲丝袜一区_99re亚洲国产精品_日韩亚洲一区二区
欧美午夜久久久| 亚洲精选91| 免费观看成人网| 亚洲人成小说网站色在线| 在线高清一区| 欧美激情 亚洲a∨综合| 一区二区免费在线播放| 国产精品99久久久久久久女警| 欧美日韩在线直播| 午夜精品久久久久久久久| 香蕉久久夜色精品国产| 韩日视频一区| 欧美另类一区| 午夜精品影院| 亚洲曰本av电影| 国产在线精品成人一区二区三区| 葵司免费一区二区三区四区五区| 亚洲精品久久久久中文字幕欢迎你| 午夜精品久久久久久| 揄拍成人国产精品视频| 国语自产精品视频在线看抢先版结局 | 亚洲一区二区三区四区五区午夜| 国产精品成人一区二区| 欧美日韩亚洲国产精品| 欧美日产一区二区三区在线观看| 欧美成人激情视频| 亚洲一区二区3| 欧美淫片网站| 亚洲精品看片| 国产美女一区二区| 欧美.com| 午夜综合激情| 亚洲欧美一区二区三区在线 | 免费在线欧美黄色| 欧美大片在线影院| 欧美精品videossex性护士| 亚洲欧美一区二区三区在线| 亚洲欧美日韩电影| 亚洲欧洲日韩女同| 亚洲自拍偷拍色片视频| 亚洲免费人成在线视频观看| 亚洲欧美电影在线观看| 91久久一区二区| 国产一区二区久久久| 欧美日本一道本| 欧美日韩一区在线| 国产精品日韩精品| 欧美老女人xx| 国产精品jvid在线观看蜜臀| 国产精品乱看| 欧美精品成人在线| 欧美色网一区二区| 欧美激情综合在线| 国产精品a级| 国产日韩一区二区三区在线播放| 欧美日韩亚洲一区二| 国产精品久久久久aaaa| 欧美日本韩国在线| 国产精品久久一卡二卡| 韩国三级在线一区| 亚洲精品永久免费| 亚洲自拍偷拍一区| 亚洲成人自拍视频| 亚欧成人在线| 91久久精品国产91久久| 一区二区三区成人| 久久精品国产亚洲一区二区三区 | 久久午夜国产精品| 性高湖久久久久久久久| 久久精品一区| 欧美一区二区三区日韩视频| 亚洲午夜在线观看视频在线| 欧美专区日韩视频| 性视频1819p久久| 久久午夜视频| 国产精品都在这里| 亚洲大黄网站| 亚洲国产成人高清精品| 1024日韩| 夜夜夜精品看看| 日韩午夜视频在线观看| 亚洲国产一区在线| 亚洲国产精品久久91精品| 中文欧美字幕免费| 久久精品女人天堂| 久久精品国产精品亚洲| 一区二区三区免费看| 久久欧美中文字幕| 欧美性事免费在线观看| 1769国产精品| 亚洲欧美中文日韩v在线观看| 99pao成人国产永久免费视频| 亚洲欧洲另类国产综合| 午夜精品99久久免费| 欧美国产亚洲视频| 国产一区二区激情| 中文高清一区| 亚洲一区综合| 亚洲免费播放| 久久伊人亚洲| 国产九区一区在线| 一二三区精品| 99国产精品99久久久久久| 久久久91精品国产| 国产精品久久久久影院亚瑟| 亚洲欧洲精品一区二区三区不卡 | 欧美人与性动交α欧美精品济南到| 国产在线观看一区| 亚洲综合激情| 亚洲视频自拍偷拍| 亚洲欧美成人网| 欧美精品一区二区三区高清aⅴ| 激情综合电影网| 亚洲欧美日韩在线高清直播| 国产精品国产亚洲精品看不卡15| 久久成人在线| 亚洲精品久久视频| 久久精品免费播放| 久久久美女艺术照精彩视频福利播放| 久久人人爽人人爽爽久久| 国产精品嫩草99a| 日韩午夜电影| 一级成人国产| 欧美精品一卡| 亚洲精品久久久久| 99ri日韩精品视频| 欧美激情一区二区三区成人| 亚洲激情影视| 亚洲精品国产精品国产自| 蜜桃视频一区| 亚洲电影免费观看高清| 亚洲国产美女| 亚洲一区二区高清| 欧美日韩亚洲一区二| 999在线观看精品免费不卡网站| 99在线精品视频在线观看| 欧美在线观看视频| 国产欧美日韩亚洲| 亚洲娇小video精品| 亚洲精品国产品国语在线app| 欧美1区视频| 亚洲丰满在线| 日韩天天综合| 欧美日韩国产精品一区| 国产一区二区日韩| 久久国产精品网站| 久久尤物电影视频在线观看| 极品中文字幕一区| 亚洲精品一区二区三区av| 欧美精品在线免费| 一区二区日韩精品| 亚洲欧洲av一区二区| 国产日本欧美视频| 久久精品成人| 欧美激情精品久久久六区热门| 亚洲毛片在线观看| 亚洲福利国产精品| 亚洲影视综合| 欧美不卡高清| 亚洲精选久久| 亚洲女同性videos| 国产自产精品| 亚洲精品视频免费观看| 欧美日韩亚洲一区二| 亚洲一区在线免费| 久久男女视频| 亚洲精品乱码久久久久久蜜桃麻豆 | 欧美一区免费视频| 怡红院av一区二区三区| 日韩手机在线导航| 国产精品久久久久久久久免费| 午夜视频一区在线观看| 欧美jjzz| 亚洲视频axxx| 久久综合色88| aa级大片欧美三级| 久久九九电影| 亚洲精品在线免费| 久久精品国产免费| 亚洲精品美女免费| 欧美在线观看一区| 亚洲激情av在线| 欧美伊人久久大香线蕉综合69| 影音先锋在线一区| 这里只有精品电影| 国产亚洲永久域名| 艳女tv在线观看国产一区| 国产欧美va欧美不卡在线| 亚洲人在线视频| 国产精品视频免费一区| 亚洲三级毛片| 国产拍揄自揄精品视频麻豆| 亚洲精品在线免费观看视频| 国产九区一区在线| 在线视频精品| 激情偷拍久久| 香蕉精品999视频一区二区| 亚洲电影激情视频网站| 欧美在线黄色| 一区二区高清在线观看|