新四季網

用於修復鏈棧的方法和設備的製作方法

2023-05-31 17:40:01 2

專利名稱:用於修復鏈棧的方法和設備的製作方法
技術領域:
本發明大體上涉及處理器,且特定來說涉及修復處理器中的鏈棧返回錯誤。
背景技術:
常規處理器在指令預取與推測性指令執行之間進行平衡以改善性能。推測性指令獲 取由分支預測機制實現,所述機制利用用於預測較早在指令管線中的分支指令的方向和 目標地址的技術。通過預測分支指令的結果,處理器資源可推測性地獲取指令而不是閒 置(或僅沿著預定路徑獲取),直到沿著指令管線進一步解析分支決策為止。由此,如果 正確地分支預測,那麼處理器性能可得到改善。
對於與過程調用和返回相關的分支指令,常規處理器維持用於存儲所預測的返回地 址值的鏈棧。所存儲的返回地址值對應於在所調用過程放棄程序控制之後將獲取的下一 指令的存儲器位置。由此,當處理器預測分支指令將導致過程調用以使得在所調用過程 返回時處理器可開始獲取所預測的返回指令流時,常規處理器存儲或將返回地址值"推 入"鏈棧。當處理器檢測到來自過程調用的返回並預測將獲得所述返回時,處理器檢索 或"彈出"當前為了從鏈棧中檢索而排隊的返回地址值。接著由處理器從存儲器獲取與 彈出的返回地址值相關聯的指令。因此,鏈棧提供一種機制,通過所述機制,預測跟隨 過程返回的指令可在已通過使用存儲在鏈棧中的返回地址值來執行過程返回本身之前由 處理器推測性地獲取。
然而,並非總是正確地預測分支。當發生分支錯誤預測時,處理器可引起顯著的性 能損失。通常,分支指令解析所預測的分支是否匹配於指令管線末端附近的實際分支決 策。如果分支被正確預測,那麼指令獲取沿著預測路徑繼續。然而如果指令被錯誤預測, 那麼就要從處理器管線中清洗推測性地獲取的指令及其結果,且使用正確的地址重新引 導指令獲取。
過程返回指令可以許多方式被錯誤預測。舉例來說,鏈棧溢出使將返回地址值從堆 棧中推出。由此,可能從堆棧丟失一個或一個以上有效返回地址值,且因此當相關聯的 過程返回嘗試從鏈棧中彈出其值時引起錯誤預測。而且,有條件過程返回可能錯誤預測 其分支方向。此外,過程返回可能被軟體有目的地跳過。也就是說, 一個過程可能調用 另一過程,即嵌套的過程調用。特定的嵌套過程當控制返回到其而不是連結回到調用其
的過程時可能沒有進一步指令要執行。由此,軟體可跳過此類過程返回,並直接連結回 到僅那些在返回到其時具有實質指令要執行的過程,因此改進了代碼的性能。當由處理 器執行此優化代碼時,可跳過一個或一個以上嵌套過程。然而,常規的硬體鏈棧並不跳 過存儲在鏈棧中的返回地址值。由此,當一過程返回跟隨跳過的過程返回指令彈出鏈棧 而沒有介入的分支和連結指令時,使用常規硬體鏈棧將錯誤預測所預測的返回地址值。 彈出的值與跳過的返回相關聯,而不是與後續返回相關聯。
用於校正錯誤預測的過程返回的常規技術消耗若干處理器循環。舉例來說,當從硬 件鏈棧彈出的返回地址值不匹配於所解析的地址時,處理器執行校正序列。錯誤預測校 正常規上涉及從管線中清洗推測性地獲取的指令,並獲取正確的指令流。然而,不針對 跳過的返回校正硬體鏈棧。由此,彈出的下一個硬體鏈棧條目總是在遠離正確條目的至 少一個位置(所跳過返回的數目)處。因此,與跳過的返回之前建立的鏈棧條目相關聯 的後續過程返回將導致進一步的錯誤預測。因此,常規處理器必須針對這些錯誤預測中 的每一者執行校正序列。每次從硬體鏈棧彈出一個不正確的返回地址就要執行分支校正 序列降低了處理器性能且增加了功率消耗,例如在每次檢測到返回地址錯誤預測的錯誤 時消耗十個或十個以上處理器循環來獲取位於經校正地址處的指令。

發明內容
根據本文教示的方法和設備,響應於過程返回地址錯誤預測的錯誤而修復處理器中 的鏈棧。在一個或一個以上實施例中,鏈棧電路包括鏈棧和鏈棧指針。所述鏈棧經配置 以存儲多個過程返回地址值。所述鏈棧指針經配置以響應於先前從所述鏈棧中檢索到的 過程返回地址值中檢測到的錯誤而跳過當前為了從所述鏈棧中檢索而排隊的過程返回地 址值。
因此,在至少一個實施例中,通過檢測從所述鏈棧中檢索到的過程返回地址值中的 錯誤以及響應於檢測到所述錯誤而跳過當前為了從所述鏈棧中檢索而排隊的過程返回地 址值,來修復用於處理器中的鏈棧。在一個實例中,跳過當前為了檢索而排隊的所述過 程返回地址值包括修改鏈棧指針以響應於檢測到所述錯誤而跳過當前為了檢索而排隊的 所述過程返回地址值。可通過保存對應於引起所述錯誤的所述過程返回地址值的鏈棧指 針指數以及使用偏移了兩個鏈棧條目位置的所述保存的鏈棧指針指數來替代當前鏈棧指 針指數,來修改所述鏈棧指針。在另一實例中,跳過所述當前為了檢索而排隊的過程返 回地址值包括從所述鏈棧中彈出緊接在引起所述錯誤的所述過程返回地址值之後排隊的 過程返回地址值以及從所述鏈棧中彈出緊接在所述彈出的過程返回地址值之後排隊的過
程返回地址值。
對應於上述設備和方法,補充的處理器包括鏈棧和指令獲取邏輯。鏈棧經配置以存 儲多個過程返回地址值。指令獲取邏輯經配置以響應於先前從所述鏈棧中檢索到的過程 返回地址值中檢測到的錯誤而跳過當前為了從所述鏈棧中檢索而排隊的過程返回地址 值。在一個實施例中,所述鏈棧包括循環緩衝器。所述指令獲取邏輯經配置以通過修改 鏈棧指針以跳過為了檢索而排隊的所述過程返回地址值來跳過當前為了從所述循環緩衝 器中檢索而排隊的所述過程返回地址值。在另一實施例中,所述鏈棧包括推入-彈出緩衝 器。
所述指令獲取邏輯經配置以通過從所述推入-彈出緩衝器中彈出緊接在引起所述錯 誤的所述過程返回地址值之後排隊的過程返回地址值以及從所述推入-彈出緩衝器中彈 出緊接在所述彈出的過程返回地址值之後排隊的過程返回地址值,來跳過當前為了檢索 而排隊的所述過程返回地址值。
當然,本發明不限於以上特徵。所屬領域的技術人員在閱讀以下具體實施方式
並觀 看附圖之後將認識到額外的特徵。


圖1是說明包含可修復鏈棧的處理器的實施例的框圖。
圖2是說明用於修復處理器中所包含的鏈棧的程序邏輯的實施例的邏輯流程圖。
圖3是說明用於修復處理器中所包含的鏈棧的程序邏輯的另一實施例的邏輯流程圖。
圖4是說明用於修復處理器中所包含的鏈棧的程序邏輯的又一實施例的邏輯流程圖。
圖5是說明使用可修復鏈棧連結的一系列經嵌套過程返回的程序指令流程圖。 圖6是說明使用可修復鏈棧將圖5中所說明的經嵌套過程返回解開連結的程序指令 流程圖。
具體實施例方式
圖1說明包含鏈棧12的處理器10的實施例,鏈棧12用於存儲預測的返回地址值, 即,指向或以其它方式指示預測或預期跟隨一過程返回的指令所存儲的存儲器位置的地 址值。處理器10用作計算系統(未圖示)中的中央或主處理單元,所述計算系統例如為 伺服器、臺式計算機或移動裝置,例如可攜式計算機、行動電話、個人數字助理或類似 物。處理器10執行引起處理器IO採取特定動作的指令集合,所述特定動作可能包含分
支預測和推測性指令獲取。在許多情況下可通過跳過當前為了從鏈棧12中檢索而排隊的 返回地址值,響應於返回地址錯誤預測的錯誤而修復鏈棧12,如下文將詳細描述。
處理器IO進一步包括指令單元14、多個執行單元18、完成單元18、總線接口單元 20、指令與數據高速緩衝存儲器22、 24和多個系統寄存器26,包含通用寄存器(40) 和堆棧指針寄存器(42)。指令單元14提供對到達執行單元16的指令流的集中化控制。 可包含一個或一個以上裝載/存儲單元(未圖示)、浮點單元(未圖示)和整數單元(未 圖示)的執行單元16可並行執行多個指令。由此,處理器10可為超標量和/或超管線化 的。此外,執行單元16中的一者或一者以上可解析預測的分支。完成單元18跟蹤從分 派到執行的指令。總線接口單元20提供用於傳送去往/來自處理器IO的數據、地址和控 制信號的機制。指令與數據高速緩衝存儲器22、 24使系統寄存器26和執行單元16能夠 快速地存儲指令與數據。此外,數據可經由執行單元16中的一者,例如裝載/存儲單元 (未圖示),在數據高速緩衝存儲器24與系統寄存器26之間移動。
更詳細地,指令單元14包含指令獲取邏輯28、分支預測單元(BPU) 30、指令隊列 32、指令分派邏輯34以及分支信息隊列36。鏈棧12和鏈棧指針38包含在指令單元14 中或與其相關聯。指令獲取邏輯28從指令高速緩衝存儲器22中檢索指令,將其解碼, 並將經解碼的指令裝載到指令隊列32中。指令分派邏輯34將經排隊的指令分派到適當 的執行單元18。取決於檢測到的分支的類型,BPU30執行各種分支預測機制,例如預測 分支目標地址和/或是否將採用特定分支。此外,BPU 30維持分支信息隊列36,其含有 與由BPU30放置在該處的分支指令相關的信息。舉例來說,分支信息隊列36可含有關 於是否將無條件地採用特定分支、所預測的目標地址、所預測的分支方向等相關的指示。 分支信息隊列36可由處理器IO用於確定分支是否被正確預測,且如果沒有,便確定在 何處開始指令獲取且如何更新分支歷史表(未圖示)。舉例來說,處理器IO將由執行單 元16中的一者或一者以上確定的實際結果與存儲在分支信息隊列36中的預測結果進行 比較,以確定分支是否被正確預測。
當指令獲取邏輯28檢索到本文稱為"分支與連結指令"的與過程調用相關的分支指 令時,指令獲取邏輯28將跟隨所述分支與連結指令的循序指令的地址推入鏈棧12中。 下一循序指令地址一般用作過程返回指令的返回地址。每次指令獲取邏輯28檢測到分支 與連結指令並進行預測時,相應的返回地址值就被推入鏈棧12中。由此,鏈棧12含有 與一系列成鏈或連結的過程相關聯的預測返回地址鏈。如果鏈棧12被實施為循環緩衝 器,那麼指令獲取邏輯28還使用指向鏈棧12中的一條目的指數值更新鏈棧指針38,所
述條目對應於最近被推入鏈棧12中的返回地址值。由此,鏈棧指針38指向當前為了檢 索而排隊的鏈棧條目。在一個實例中,通過響應於推入鏈棧12中的新地址值而將鏈棧指 針38的指針指數增加一個鏈棧條目位置的等效值來更新鏈棧指針38。
當指令獲取邏輯28檢索到本文稱為"分支到連結指令"的與過程返回相關的分支指 令時,指令獲取邏輯28彈出當前為了從鏈棧12中檢索而排隊的返回地址值。特定來說, 從鏈棧12中彈出目前由鏈棧指針38指示的返回地址值,且從由彈出的地址值指示的存 儲器位置獲取位於預測的返回地址處的指令。舉例來說,從指令高速緩衝存儲器22中或 在外部存儲器中對應於彈出的返回地址值的位置獲取位於預測的返回地址處的指令。在 從鏈棧12中彈出一地址值之後,鏈棧指針38中的指針指數遞減以指向在鏈棧12中排隊 的下一返回地址值。
鏈棧指針38可包含在指令單元14中或與指令單元14相關聯。鏈棧指針38中含有 的當前指針指數結合從鏈棧12中彈出相應返回地址值而由BPU30存儲在(例如)分支 信息隊列36中。所存儲的指針指數隨後用於在發生返回地址錯誤預測的錯誤之後修復鏈 棧12,如下文將詳細描述。在一個實例中,所存儲的指針指數隨分支指令行進通過管線。 在另一實例中,通過將指針指數連同指令信息(例如,所預測的分支指令或與指令相關 的有關信息)存儲在分支信息隊列36中而使當前指針指數與其相應的所預測分支指令相 關聯。
在另一實施例中,鏈桟12實施為真實的推入-彈出緩衝器(未圖示.),其中當新地址 值被推入鏈棧12中時保存的返回地址值每一者向下移位一個點,且當從鏈棧12中彈出 一地址值時保存的返回地址值每一者向上移位一個點。由此,不需要鏈棧指針38。替代 地,僅響應於分支與連結指令而將返回地址值推入鏈棧12中,且響應於分支到連結指令 而從鏈棧12中彈出返回地址值。
當處理器IO檢測到返回地址錯誤預測的錯誤時,如圖2的步驟100所說明,處理器 IO執行校正序列。處理器10可檢測返回地址錯誤預測的錯誤,例如堆棧溢出和軟體代 碼跳過的過程返回。錯誤預測校正常規上涉及從管線中清洗推測性地獲取的指令和獲取 正確的指令流。響應於處理器IO檢測到返回地址錯誤預測的錯誤,指令獲取邏輯28通 過使鏈棧12跳過當前為了檢索而排隊的返回地址值而修復鏈棧12,如圖2的步驟102 說明。在軟體已跳過一過程返回的情況下,如果未跳過當前為了從鏈棧12中檢索而排隊 的返回地址值,那麼在下一次從鏈棧12中彈出一地址且如果沒有介入的分支與連結指令 使將一值推入鏈棧中時,將自動發生返回地址錯誤預測的錯誤。發生錯誤是因為當前為
了從鏈棧12中檢索而排隊的地址值對應於已跳過的過程返回指令。由此,跳過當前為了 從硬體鏈棧12中檢索而排隊的返回地址值通過使鏈棧與軟體的過程調用和返回鏈重新 同步,而減少了將在下一鏈棧彈出期間發生地址錯誤預測的可能性。
圖3說明用於使鏈棧12跳過當前為了檢索而排隊的返回地址值的程序邏輯的一個實 施例,其中鏈棧12包括循環緩衝器。每次從鏈棧12中彈出一返回地址值時,均會如先 前描述那樣保存與彈出的地址值相關聯的鏈棧指針指數38 (步驟104)。因此,與彈出的 返回地址值相關聯的鏈棧指針指數可用於在需要時修復鏈棧。響應於處理器IO檢測到返 回地址錯誤預測的錯誤,所保存的與錯誤預測的返回地址相關聯的指針指數由指令獲取 邏輯28用於通過使鏈棧12跳過當前為了檢索而排隊的返回地址值而修復鏈棧12。特定 來說,指令獲取邏輯28使用偏移了兩個鏈棧條目位置的所保存指針指數來替代鏈棧指針 38中所包含的當前指針指數(步驟106)。在一個實例中,指令獲取邏輯28包含或可存 取一邏輯電路,例如加法器電路(未圖示)或算術邏輯單元(未圖示),其能夠將保存的 鏈棧指針指數遞減兩個鏈棧條目位置。因此,現在與引起錯誤預測的錯誤的地址值相距 兩個條目位置而存儲的返回地址值當前為了從鏈棧12中檢索而排隊,進而減小後續過程 返回地址錯誤預測的錯誤的可能性。
圖4說明用於使鏈棧12跳過當前為了檢索而排隊的返回地址值的程序邏輯的另一實 施例,其中鏈棧12包括推入-彈出緩衝器。響應於處理器IO檢測到錯誤預測的返回地址 值,指令獲取邏輯28通過使鏈棧12彈出當前排隊的鏈棧條目,即緊接在引起錯誤的返 回地址值之後排隊的條目,來修復鏈棧12 (步驟108)。指令獲取邏輯28接著使鏈棧12 彈出緊接在後面的返回地址值。由此,鏈棧12執行兩個連續彈出,因此跳過緊接在錯誤 預測的地址值之後的為了檢索而排隊的返回地址值。不考慮特定的鏈棧實施方案,通過 使鏈棧跳過緊接在錯誤預測的地址值之後的為了檢索而排隊的返回地址值可避免分支校 正序列的至少一次重複。
圖5說明一系列示範性程序指令,其使將若干成鏈或連結的返回地址值推入鏈棧12 中且相應地更新鏈棧指針38。根據所說明的程序流,過程A使用分支與連結指令(bl過 程—b)調用過程B。同樣,過程B調用過程C (bl過程—c),過程C調用過程D (bl過程 —d),且過程D調用過程E (bl過程—e)。總共有四個過程調用嵌套並鏈結到過程A。由 此,每次檢測到預測或已知將進行的分支與連結指令時,相應的返回地址值被推入鏈棧 12中以實現返回地址預測,例如,地址—a、地址一b等。推入鏈棧12中的每個返回地址 識別與在所調用過程放棄過程控制之後將獲取的下一指令的存儲器位置對應的存儲器地
址,例如返回—a、返回一b等。響應於每一預測或已知進行的分支與連結指令而更新鏈棧 指針38,使得最近推入的堆棧條目由鏈棧指針38指示。由此,使用鏈棧指針38按程序 次序在鏈棧12中建立與過程返回指令鏈相關聯的一系列地址。
在此特定實例中,在過程D調用過程E之後,過程D不再包含除分支到連結指令以 外的任何用於執行的指令,其中返回—d表示分支到連結指令。所述分支到連結指令僅恢 復對過程C的程序控制。由此,過程E中的經優化軟體代碼可跳過此分支到連結指令(返 回一d)並將程序控制直接返回給過程C (返回_。。因此,當解析與過程E相關聯的分支 到連結指令時,程序控制將直接返回給過程C而不是過程D,從而使過程E中的經優化 代碼跳過與過程D相關聯的過程返回指令。然而,鏈棧12不知道已跳過一過程返回。因 此,鏈棧12傳遞與跳過的返回相關聯的地址(地址—d)而不是與下一返回相關聯的地址 (地址一c),其中軟體已重新引導程序流。因此,當鏈棧指針38使與過程D相關聯的返回 地址值(地址—d)從鏈棧12中彈出且推測性地獲取時,將發生返回地址錯誤預測的錯誤。
圖6說明一系列示範性程序指令,其使從鏈棧12中彈出根據圖5所說明的示範性程 序指令先前推入鏈棧12中的返回地址值,因此引起錯誤預測的錯誤。在圖6中,由經優 化代碼確定的實際程序返迴路徑由實線表示,而由鏈棧指針38結合鏈棧12預測的返回 路徑由虛線表示。 一旦在過程E的末尾遇到分支到連結指令,鏈棧指針38就指向與過程 D相關聯的返回地址值(地址一d)。由此,從鏈棧12中彈出地址—d,且獲取相應的指令 (返回—d)。然而,使用與過程D相關聯的返回地址值(地址—d)使地址錯誤預測的錯誤, 因為實際地址是由過程E中由經優化代碼指定的與過程C相關聯的返回地址值(地址—c)。
響應於地址錯誤預測,處理器IO如先前描述執行校正序列。應適當地注意,不會響 應於地址錯誤預測而修復常規處理器中所包含的常規鏈棧。由此,每次在初始地址錯誤 預測發生之後從常規鏈棧彈出返回地址值時,執行校正序列。也就是說,每次在初始地 址錯誤預測發生之後隨後從常規鏈棧彈出一條目時,常規鏈棧指針將指向錯誤的返回地 址,因為沒有響應於地址錯誤預測的錯誤而修改常規鏈棧。由此,在初始地址錯誤預測 之後,隨後從常規鏈棧彈出的每一返回地址值使常規處理器執行校正序列,因為常規鏈 棧指針指向與正確條目相距至少一個鏈棧條目處。
返回到圖6,指令獲取邏輯28檢索與具有返回地址錯誤預測的錯誤的分支到連結指 令相關聯的保存的鏈棧指針指數。指令獲取邏輯28接著通過使用偏移了兩個鏈棧條目位 置的保存的鏈棧指針指數來替代鏈棧指針38中所包含的當前鏈棧指針指數來修復鏈棧 12。由此,當過程C最終將控制返回給過程B時,鏈棧指針38將不指向與過程C相關
聯的返回地址值(地址—C),而是將指向與過程B相關聯的返回地址值(地址—b)。因此, 在圖6說明的實例中,防止了後續的返回地址錯誤預測的錯誤。
通過上述變化形式和應用的範圍應了解,本發明不受前述描述限制,也不受附圖限 制。而是本發明僅受到所附權利要求書及其合法等效物限制。
權利要求
1. 一種修復用於處理器中的鏈棧的方法,其包括檢測從所述鏈棧中檢索到的過程返回地址值中的錯誤;以及響應於檢測到所述錯誤而跳過當前為了從所述鏈棧中檢索而排隊的過程返回地址值。
2. 根據權利要求l所述的方法,其中跳過當前為了檢索而排隊的所述過程返回地址值 包括修改鏈棧指針以響應於檢測到所述錯誤而跳過當前為了檢索而排隊的所述過 程返回地址值。
3. 根據權利要求2所述的方法,其中修改所述鏈棧指針以跳過當前為了檢索而排隊的 所述過程返回地址值包括保存對應於引起所述錯誤的所述過程返回地址值的鏈棧指針指數;以及 響應於檢測到所述錯誤,使用偏移了兩個鏈棧條目位置的所述保存的鏈棧指針指 數來替代當前的鏈棧指針指數。
4. 根據權利要求3所述的方法,其中保存所述鏈棧指針指數包括結合從所述鏈棧中彈 出引起所述錯誤的所述過程返回地址值而保存所述鏈棧指針指數。
5. 根據權利要求3所述的方法,其進一步包括將所述保存的鏈棧指針指數與對應於所 述保存的鏈棧指針指數的分支指令信息相關聯。
6. 根據權利要求l所述的方法,其中跳過當前為了檢索而排隊的所述過程返回地址值 包括從所述鏈棧中彈出緊接在引起所述錯誤的所述過程返回地址值之後排隊的過程 返回地址值;以及從所述鏈棧中彈出緊接在所述彈出的過程返回地址值之後排隊的過程返回地址 值。
7. 根據權利要求l所述的方法,其中檢測從所述鏈棧中檢索到的所述過程返回地址值 中的錯誤包括檢測鏈棧溢出或跳過的程序返回。
8. —種處理器,其包括鏈棧,其經配置以存儲多個過程返回地址值;及指令獲取邏輯,其經配置以響應於先前從所述鏈棧中檢索到的過程返回地址值中 檢測到的錯誤而跳過當前為了從所述鏈棧中檢索而排隊的過程返回地址值。
9. 根據權利要求8所述的處理器,其中所述鏈棧包括循環緩衝器。
10. 根據權利要求9所述的處理器,其中所述指令獲取邏輯經配置以通過修改鏈棧指針 而響應於所述檢測到的錯誤而跳過當前為了檢索而排隊的所述過程返回地址值來 跳過當前為了檢索而排隊的所述過程返回地址值。
11. 根據權利要求10所述的處理器,其中所述指令獲取邏輯經配置以通過保存對應於 引起所述錯誤的所述過程返回地址值的鏈棧指針指數、及響應於檢測到所述錯誤而 使用偏移了兩個鏈棧條目位置的所述保存的鏈棧指針指數來替代當前鏈棧指針指 數,來修改所述鏈棧指針以跳過當前為了檢索而排隊的所述過程返回地址值。
12. 根據權利要求11所述的處理器,其進一步包括隊列,所述隊列經配置以存儲對應於 所述保存的鏈棧指針指數的指令信息並將所述存儲的指令信息與所述保存的鏈棧 指針指數相關聯。
13. 根據權利要求8所述的處理器,其中所述鏈棧包括推入-彈出緩衝器。
14. 根據權利要求13所述的處理器,其中所述指令獲取邏輯經配置以通過從所述推入-彈出緩衝器中彈出緊接在引起所述錯誤的所述過程返回地址值之後排隊的過程返 回地址值以及從所述推入-彈出緩衝器中彈出緊接在所述彈出的過程返回地址值之 後排隊的過程返回地址值,來跳過當前為了檢索而排隊的所述過程返回地址值。
15. 根據權利要求8所述的處理器,其中所述檢測到的錯誤包括鏈棧溢出或跳過的程序 返回。
16. —種用於處理器中的鏈棧電路,其包括鏈棧,其經配置以存儲多個過程返回地址值;以及鏈棧指針,其經配置以響應於先前從所述鏈棧中檢索到的過程返回地址值中檢測 到的錯誤而跳過當前為了從所述鏈棧中檢索而排隊的過程返回地址值。
17. 根據權利要求16所述的鏈棧電路,其中所述鏈棧包括循環緩衝器。
18. 根據權利要求16所述的鏈棧電路,其中所述鏈棧指針經配置以通過響應於所述檢 測到的錯誤而指向所述鏈棧中與緊接在當前為了檢索而排隊的所述過程返回地址 值之後存儲的過程返回地址值相對應的條目,來跳過當前為了檢索而排隊的所述過 程返回地址值。
19. 根據權利要求18所述的鏈棧電路,其中所述鏈棧指針經配置以通過響應於所述檢 測到的錯誤而使用偏移了兩個鏈棧條目位置的所保存鏈棧指針指數來替代當前鏈 棧指針指數,來指向所述鏈棧中與緊接在當前為了檢索而排隊的所述過程返回地址值之後存儲的所述過程返回地址值相對應的所述條目。 20.根據權利要求16所述的鏈棧電路,其中所述檢測到的錯誤包括鏈棧溢出或跳過的 程序返回。
全文摘要
響應於過程返回地址錯誤預測的錯誤而修復處理器中的鏈棧。在一個實例中,通過檢測從所述鏈棧中檢索到的過程返回地址值中的錯誤以及響應於檢測到所述錯誤而跳過當前為了從所述鏈棧中檢索而排隊的過程返回地址值,來修復用於處理器中的鏈棧。在一個或一個以上實施例中,鏈棧電路包括鏈棧和鏈棧指針。所述鏈棧經配置以存儲多個過程返回地址值。所述鏈棧指針經配置以響應於先前從所述鏈棧中檢索到的過程返回地址值中檢測到的錯誤而跳過當前為了從所述鏈棧中檢索而排隊的過程返回地址值。
文檔編號G06F9/38GK101390046SQ200780006350
公開日2009年3月18日 申請日期2007年2月27日 優先權日2006年2月27日
發明者布賴恩·麥可·斯坦普爾, 戴維·約翰·曼德扎克, 羅德尼·韋恩·史密斯, 詹姆斯·諾裡斯·迪芬德爾費爾 申請人:高通股份有限公司

同类文章

一種新型多功能組合攝影箱的製作方法

一種新型多功能組合攝影箱的製作方法【專利摘要】本實用新型公開了一種新型多功能組合攝影箱,包括敞開式箱體和前攝影蓋,在箱體頂部設有移動式光源盒,在箱體底部設有LED脫影板,LED脫影板放置在底板上;移動式光源盒包括上蓋,上蓋內設有光源,上蓋部設有磨沙透光片,磨沙透光片將光源封閉在上蓋內;所述LED脫影

壓縮模式圖樣重疊檢測方法與裝置與流程

本發明涉及通信領域,特別涉及一種壓縮模式圖樣重疊檢測方法與裝置。背景技術:在寬帶碼分多址(WCDMA,WidebandCodeDivisionMultipleAccess)系統頻分復用(FDD,FrequencyDivisionDuplex)模式下,為了進行異頻硬切換、FDD到時分復用(TDD,Ti

個性化檯曆的製作方法

專利名稱::個性化檯曆的製作方法技術領域::本實用新型涉及一種檯曆,尤其涉及一種既顯示月曆、又能插入照片的個性化檯曆,屬於生活文化藝術用品領域。背景技術::公知的立式檯曆每頁皆由月曆和畫面兩部分構成,這兩部分都是事先印刷好,固定而不能更換的。畫面或為風景,或為模特、明星。功能單一局限性較大。特別是畫

一種實現縮放的視頻解碼方法

專利名稱:一種實現縮放的視頻解碼方法技術領域:本發明涉及視頻信號處理領域,特別是一種實現縮放的視頻解碼方法。背景技術: Mpeg標準是由運動圖像專家組(Moving Picture Expert Group,MPEG)開發的用於視頻和音頻壓縮的一系列演進的標準。按照Mpeg標準,視頻圖像壓縮編碼後包

基於加熱模壓的纖維增強PBT複合材料成型工藝的製作方法

本發明涉及一種基於加熱模壓的纖維增強pbt複合材料成型工藝。背景技術:熱塑性複合材料與傳統熱固性複合材料相比其具有較好的韌性和抗衝擊性能,此外其還具有可回收利用等優點。熱塑性塑料在液態時流動能力差,使得其與纖維結合浸潤困難。環狀對苯二甲酸丁二醇酯(cbt)是一種環狀預聚物,該材料力學性能差不適合做纖

一種pe滾塑儲槽的製作方法

專利名稱:一種pe滾塑儲槽的製作方法技術領域:一種PE滾塑儲槽一、 技術領域 本實用新型涉及一種PE滾塑儲槽,主要用於化工、染料、醫藥、農藥、冶金、稀土、機械、電子、電力、環保、紡織、釀造、釀造、食品、給水、排水等行業儲存液體使用。二、 背景技術 目前,化工液體耐腐蝕貯運設備,普遍使用傳統的玻璃鋼容

釘的製作方法

專利名稱:釘的製作方法技術領域:本實用新型涉及一種釘,尤其涉及一種可提供方便拔除的鐵(鋼)釘。背景技術:考慮到廢木材回收後再加工利用作業的方便性與安全性,根據環保規定,廢木材的回收是必須將釘於廢木材上的鐵(鋼)釘拔除。如圖1、圖2所示,目前用以釘入木材的鐵(鋼)釘10主要是在一釘體11的一端形成一尖

直流氧噴裝置的製作方法

專利名稱:直流氧噴裝置的製作方法技術領域:本實用新型涉及ー種醫療器械,具體地說是ー種直流氧噴裝置。背景技術:臨床上的放療過程極易造成患者的局部皮膚損傷和炎症,被稱為「放射性皮炎」。目前對於放射性皮炎的主要治療措施是塗抹藥膏,而放射性皮炎患者多伴有局部疼痛,對於止痛,多是通過ロ服或靜脈注射進行止痛治療

新型熱網閥門操作手輪的製作方法

專利名稱:新型熱網閥門操作手輪的製作方法技術領域:新型熱網閥門操作手輪技術領域:本實用新型涉及一種新型熱網閥門操作手輪,屬於機械領域。背景技術::閥門作為流體控制裝置應用廣泛,手輪傳動的閥門使用比例佔90%以上。國家標準中提及手輪所起作用為傳動功能,不作為閥門的運輸、起吊裝置,不承受軸向力。現有閥門

用來自動讀取管狀容器所載識別碼的裝置的製作方法

專利名稱:用來自動讀取管狀容器所載識別碼的裝置的製作方法背景技術:1-本發明所屬領域本發明涉及一種用來自動讀取管狀容器所載識別碼的裝置,其中的管狀容器被放在循環於配送鏈上的文檔匣或託架裝置中。本發明特別適用於,然而並非僅僅專用於,對引入自動分析系統的血液樣本試管之類的自動識別。本發明還涉及專為實現讀