[發(fā)明專利]用于管理返回堆棧的方法和設備無效
| 申請?zhí)枺?/td> | 200680011577.6 | 申請日: | 2006-02-17 |
| 公開(公告)號: | CN101156135A | 公開(公告)日: | 2008-04-02 |
| 發(fā)明(設計)人: | 羅德尼·韋恩·史密斯;杰弗里·托德·布里奇斯;詹姆斯·諾里斯·迪芬德爾費爾;托馬斯·安德魯·薩托里烏斯 | 申請(專利權)人: | 高通股份有限公司 |
| 主分類號: | G06F9/38 | 分類號: | G06F9/38;G06F9/42 |
| 代理公司: | 北京律盟知識產權代理有限責任公司 | 代理人: | 劉國偉 |
| 地址: | 美國加利*** | 國省代碼: | 美國;US |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 用于 管理 返回 堆棧 方法 設備 | ||
技術領域
本發(fā)明大體上涉及微處理器,且確切地說,涉及管理某些類型的微處理器使用的硬件返回堆棧以便加速從程序調用的返回。
背景技術
由于在要求復雜功能性的不斷增加的應用陣列中部署微處理器,所以需要提高微處理器的執(zhí)行速度。此外,在例如具有有限電池電力的便攜式電子裝置的嵌入式應用中,需要減少微處理器的電力消耗。然而,簡單地提高微處理器的時鐘速度可能不會產生所要的系統性能提高,因為各種輸入/輸出瓶頸會對微處理器的現實性能強加約束。舉例來說,芯片外存儲器存取一般比芯片上存儲器存取運行得慢,從而導致使用指令和數據高速緩存技術。精簡指令集計算機(RISC)一般在每個時鐘循環(huán)發(fā)布一個或一個以上指令,且通常使用指令高速緩存來增強性能。管線RISC處理器可在每個時鐘循環(huán)發(fā)布多個指令,且通常大量使用數據和指令高速緩存。
指令高速緩存(“預取”)預測未來指令并在微處理器執(zhí)行所述指令之前將其放入芯片上指令高速緩沖存儲器中。當預取了正確的指令時,預取可消除與較慢芯片外指令存儲器相關的大部分延遲。大部分指令依序執(zhí)行,且可有把握地預取。條件分支指令可“采用”或不“采用”分支,這取決于通常僅在管線深處評估的分支條件。為了避免等待此評估的延遲,通常在管線早期預測分支指令的行為,且從預測的分支目標地址預取指令。指令預取方法包含靜態(tài)和動態(tài)指令預取兩者。
動態(tài)指令預取依賴于指令執(zhí)行歷史,且可能涉及(例如)追蹤給定數目的最新近條件分支指令的先前采用或未采用預測的準確性。靜態(tài)預取一般不依賴于執(zhí)行歷史,且可(例如)在首次遇到條件分支時使用。靜態(tài)預取為其提供性能優(yōu)點的一種類型的分支指令是來自被調用程序的返回指令,其中對所述程序的返回地址進行預測以支持對在所述預測返回地址處開始的指令進行預取。
可使用“返回堆棧”來支持對程序調用返回指令的返回地址的靜態(tài)預測。典型的返回堆棧包括多層級緩沖區(qū)。當預測或辨別程序調用指令時,可將相應的返回地址從微處理器的指令管線的執(zhí)行級中取出并推到返回堆棧上。相反,當預測或辨別程序返回指令時,將當前位于返回堆棧頂部的返回地址從堆棧上托,并用作所預測的用于指令預取的返回地址。
因此,在常規(guī)的管理返回堆棧的方法中,當遇到程序調用時將相應的預測返回地址依序推到返回堆棧上。相反,當遇到程序返回指令時,將返回地址依序從堆棧上托。這種常規(guī)方法不正確地預測多層級程序調用中的程序返回地址,其中連續(xù)程序調用“串”在一起,因為串中的每一隨后程序調用的返回指令均指回到前一程序調用的返回指令。
最佳地,應當針對所述串中的最后程序的返回指令預測的返回地址是對應于所述串中的第一程序調用的返回地址。然而,由于連續(xù)程序調用導致將每一嵌套程序調用的返回地址依序推到返回堆棧上,因而針對最后程序調用的返回指令上托的返回地址是所述串中的緊接在前的調用程序的返回地址。如果從所述地址繼續(xù)預取,那么接下來預取的指令將是另一返回,其將再次上托返回堆棧。以此方式連續(xù)上托返回堆棧不必要地降低了處理器性能且浪費了電力。
發(fā)明內容
本發(fā)明包括一種使得微處理器能夠正確地預測多層級程序調用中的初始頂部層級調用程序的返回地址的方法和設備。此類多層級程序調用包括一串兩個或兩個以上連續(xù)程序調用,其中每一隨后程序的返回地址均指回到緊接在前的程序的返回指令。根據本發(fā)明的一個或一個以上實施例的返回堆棧電路不是提供最后推入的返回地址作為串中調用的最后程序中的返回指令的目標,而是從堆棧依序上托某一數目的返回地址,所述數目等于連續(xù)調用程序串中的返回層級的數目。這樣做時,返回堆棧電路檢索初始調用程序的返回地址,可將所述返回地址提供到指令預取單元作為指令預取的目標。
因此,在一個實施例中,本發(fā)明包括一種基于以下操作來管理返回堆棧的方法:確定與返回指令相關聯的返回層級數目,且將所述數目的返回地址從返回堆棧上托。可將最后上托的地址提供到指令預取單元作為用于指令預取的目標地址。將從堆棧上托以獲得給定返回指令的預測返回地址的返回地址數目可從與返回指令相關聯的靜態(tài)層級指示符值中讀取,或者可在程序執(zhí)行期間在運行中確定。
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于高通股份有限公司,未經高通股份有限公司許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業(yè)授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/200680011577.6/2.html,轉載請聲明來源鉆瓜專利網。
- 上一篇:無線網絡的幀處理方法與系統
- 下一篇:一種基于IP接入的業(yè)務注冊方法





