[發(fā)明專利]指令取回裝置、處理器和程序計數(shù)器加法控制方法無效
| 申請?zhí)枺?/td> | 201110073313.6 | 申請日: | 2011-03-22 |
| 公開(公告)號: | CN102207848A | 公開(公告)日: | 2011-10-05 |
| 發(fā)明(設(shè)計)人: | 甲斐齊;坂口浩章;小林浩;目次勝彥;山本晴久;森田陽介;長谷川浩一;平尾太一 | 申請(專利權(quán))人: | 索尼公司 |
| 主分類號: | G06F9/30 | 分類號: | G06F9/30 |
| 代理公司: | 北京東方億思知識產(chǎn)權(quán)代理有限責任公司 11258 | 代理人: | 宋鶴 |
| 地址: | 日本*** | 國省代碼: | 日本;JP |
| 權(quán)利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關(guān)鍵詞: | 指令 取回 裝置 處理器 程序 計數(shù)器 加法 控制 方法 | ||
技術(shù)領(lǐng)域
本發(fā)明涉及指令取回(instruction?fetch)裝置。更具體地,本發(fā)明涉及用于預(yù)先取回包括分支指令(branch?instruction)的指令序列的指令取回裝置和處理器、與該裝置和處理器一起使用的處理方法以及用于使計算機執(zhí)行該處理方法的程序。
背景技術(shù)
為了使流水線化CPU(中央處理單元;或處理器)的處理能力最大化,理想地,應(yīng)當使流水線內(nèi)的指令保持流動而不受任何阻礙。為了保持這樣的理想狀態(tài),需要把將被處理的下一指令從保存它的存儲器位置預(yù)先取回到CPU或指令緩存中。然而,如果程序包括分支指令,則在分支指令被執(zhí)行之前,無法清楚地標識出該分支指令之后的將被執(zhí)行的指令的地址。因此,指令取回被暫停;流水線中斷(pipeline?stall)發(fā)生;并且指令執(zhí)行的吞吐量下降。因此,許多CPU具有用于通過執(zhí)行預(yù)取回來抑制流水線中斷而不管因分支引起的不確定性的布置。
可通過簡單硬件實現(xiàn)的典型預(yù)取回方案稱為下一行預(yù)取回(參見日本專利No.4327237(圖1))。這是一種用于按照指令被編程的順序來預(yù)取回指令的技術(shù)。處理器從存儲器取回指令的基本模式包括按照地址的升序順序地訪問存儲器。因此,通過硬件的預(yù)取回構(gòu)成了這樣的一種嘗試:將給定地址的指令存儲到緩存中,并且然后在下一緩存行(cache?line)也將被使用的假設(shè)下,也自動地存儲下一緩存行。
發(fā)明內(nèi)容
盡管上述下一行預(yù)取回可以利用簡單硬件結(jié)構(gòu)來實現(xiàn),然而在不發(fā)生分支的假設(shè)下執(zhí)行預(yù)取回的事實頻繁地產(chǎn)生無用的預(yù)取回(稱為預(yù)取回失誤)。預(yù)取回失誤的發(fā)生引起了這樣的缺點:在丟棄預(yù)取回的指令并再次取回正確分支目的地的指令時使得CPU在其等待狀態(tài)中停留了更長時間。另外,讀寫額外數(shù)據(jù)的需求使得要需要更多的存儲器訪問和更多的功耗。此外,頻繁和無益的預(yù)取回導致了使數(shù)據(jù)路徑上的流量擁塞惡化的問題。
減少預(yù)取回失誤的另一嘗試是使用稱為分支預(yù)測的技術(shù)。鑒于下一行預(yù)取回涉及通過預(yù)測為從不發(fā)生分支來預(yù)取回下一行,分支預(yù)測的特征在于基于過去的歷史來預(yù)測分支方向并且從預(yù)測出的地址預(yù)取回指令。分支預(yù)測是復(fù)雜的,并且需要使用包含大面積電路的硬件,該電路包括歷史表。然而,通過分支預(yù)測獲得的性能益處取決于預(yù)測算法的功效,許多這樣的預(yù)測算法需要利用較大容量的存儲裝置和復(fù)雜的硬件來實現(xiàn)。當預(yù)測失敗時,分支預(yù)測也要承擔與下一行預(yù)取回所帶來的不利方面類似的不利方面。大多數(shù)的實際程序具有比例失調(diào)的高比率的循環(huán)和處理其分支的例外,以使得分支預(yù)測的優(yōu)點通常超過其缺點。盡管如此,一些應(yīng)用是按照無論哪種預(yù)測算法可能被使用都難以提高其預(yù)測性能的方式來構(gòu)成的。特別地,編譯碼應(yīng)用往往會使除了對循環(huán)的預(yù)測以外的預(yù)測失誤。在自然希望增加預(yù)測命中率的情況下,用于實現(xiàn)該目標的方案的電路正變得越來越大越來越復(fù)雜,并且可能不會帶來與實際電路規(guī)模相當?shù)男阅芨倪M。
與上面概述的僅在一個方向上執(zhí)行預(yù)取回的技術(shù)相反,已提出了另一類型的技術(shù),其涉及在分支的兩個方向上預(yù)取回指令而不進行預(yù)測,以消除預(yù)取回失誤。與分支預(yù)測技術(shù)相比,該技術(shù)能夠通過增加有限量的硬件來免除流水線中斷。然而,不僅將被存儲用于預(yù)取回的數(shù)據(jù)量簡單地加倍,而且必須一直讀取無用數(shù)據(jù)。所導致的數(shù)據(jù)路徑上的擁塞可能不利地影響性能;所增加的冗余電路使電路結(jié)構(gòu)復(fù)雜;并且所增加的功耗是不可忽略的。
如上所述,現(xiàn)有的預(yù)取回技術(shù)具有其自己的優(yōu)點(預(yù)期提高吞吐量)和缺點(增加了實現(xiàn)CPU的成本;分支預(yù)測處理的開銷)。在這些技術(shù)的每種技術(shù)的成本和性能之間存在折衷。
本發(fā)明是鑒于上面的狀況而作出的,并且提供了通過平均用于預(yù)取回指令的下一行預(yù)取回中所涉及的不利方面來提高吞吐量的創(chuàng)造性布置。
在實現(xiàn)本發(fā)明時,根據(jù)本發(fā)明的一個實施例,提供了指令取回裝置以及表示其控制功能的程序計數(shù)器加法控制方法,該指令取回裝置包括:程序計數(shù)器,被配置為管理程序中作為執(zhí)行對象的指令的地址,在該程序中,屬于多個指令序列的指令順序地被放置;改變指示寄存器,被配置為指示對程序計數(shù)器上的遞增值的改變;遞增值寄存器,被配置為保存改變后的遞增值;以及加法控制部件,被配置為使得如果改變指示寄存器指示了對程序計數(shù)器上的遞增值的改變,則加法控制部件基于保存在遞增值寄存器中的改變后的遞增值來遞增程序計數(shù)器,如果改變指示寄存器未指示對程序計數(shù)器上的遞增值的改變,則加法控制部件按照每一指令字長度使程序計數(shù)器遞增。上面的指令取回裝置和程序計數(shù)器加法控制方法提供了這樣的效果:在多個指令序列被布置為共同存在的情況中,使得程序計數(shù)器上的遞增值以使得合適的指令序列被取回的方式被改變。
該專利技術(shù)資料僅供研究查看技術(shù)是否侵權(quán)等信息,商用須獲得專利權(quán)人授權(quán)。該專利全部權(quán)利屬于索尼公司,未經(jīng)索尼公司許可,擅自商用是侵權(quán)行為。如果您想購買此專利、獲得商業(yè)授權(quán)和技術(shù)合作,請聯(lián)系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201110073313.6/2.html,轉(zhuǎn)載請聲明來源鉆瓜專利網(wǎng)。
- 上一篇:整體式混合動力電機
- 下一篇:磁控濺射設(shè)備





