TW409224B - Processor and method of fetching an instruction that select one of a plurality of fetch addresses generated in parallel to form a memory request - Google Patents

Processor and method of fetching an instruction that select one of a plurality of fetch addresses generated in parallel to form a memory request Download PDF

Info

Publication number
TW409224B
TW409224B TW088101982A TW88101982A TW409224B TW 409224 B TW409224 B TW 409224B TW 088101982 A TW088101982 A TW 088101982A TW 88101982 A TW88101982 A TW 88101982A TW 409224 B TW409224 B TW 409224B
Authority
TW
Taiwan
Prior art keywords
instruction
processor
branch instruction
address
addresses
Prior art date
Application number
TW088101982A
Other languages
English (en)
Inventor
Hoo Sang Dhong
Joel Abraham Silberman
Original Assignee
Ibm
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Ibm filed Critical Ibm
Application granted granted Critical
Publication of TW409224B publication Critical patent/TW409224B/zh

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3802Instruction prefetching
    • G06F9/3804Instruction prefetching for branches, e.g. hedging, branch folding
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/32Address formation of the next instruction, e.g. by incrementing the instruction counter
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/32Address formation of the next instruction, e.g. by incrementing the instruction counter
    • G06F9/322Address formation of the next instruction, e.g. by incrementing the instruction counter for non-sequential address

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Advance Control (AREA)
  • Executing Machine-Instructions (AREA)

Description

五、發明說明(l) 技術領域: 409224 發明背景 概略而言本發明係關 於一種於一處理器產生 本發明係 解碼的指 法。又 並行地 的提取 2.相關 一處 多執行 使用提 理器中 被用於 後,由 而產生 送至記 請求位 期包含 始於 的指令 短處理 能,典 置,例 率,及 更特別 由各被 位址之 技術之 理器包 單元用 取位址 ,優先 產生次 於資料處理方法及系統,特別係關 一記憶聽請求位址之處理器及方 關於一處理器其解碼複數個指令, 令產生一提取位址,然後選擇產生 作為記憶體請求位址。 說明: 括一指令仔列,由 以執行,及一指令 由記憶體 順序邏輯 一提取位 該指令典型藉將 一提取位址。由 為請求位 憶體作 址規定 可循序 檢驗於 之時間 器的指 型注意 如採用 合併額 位置的一 進行之多 才曰令彳宁列 間搞可稱 令提取週 焦點集中 更快速記 外「快取 擷取指令 用於決定 址。於藉 指令長度 被選定的 址,俾便 或多個指 個步驟。 的指令而 作指令提 期時間, 於改良記 憶體技術 於晶片」 該佇列指令被調派至一或 提取器其計算提取位址及 來填補指令佇列。習知處 指令符列中之何一指令須 優先順序邏輯選擇一指令 ,償值加至選擇指令位址 指令·產生的提取位址隨後 獲传儲存於記憶體之由該 令。如此習知指令提取週 終於由記憶體接收被提取 取週期時間。嘗試努力縮 因而增進處理器之整體效 憶體個別組件之設計及配 ’改良指令快取裝置命中 階層於處理器。雖然此等 〇
五、發明說明(2) f決之道確實可改良指令提取週期時間 知經由並排各步驟於指令提取週期也c明包括認 時間。 %短指令提取週期 發明概述 因此本發明之一目的係供— 系統。 的貧料處理方法及 本發明之另一目的係提 /種虚 請求位址之改良的處理器及方法。、胃產生-記憶體 指i發:的係提供1處理器,其解碼複數個 ^亚仃由各被解碼的沐匕今產斗一挺甘 擇;取位址之1為記憶體請=:及然後選 標位址達成。根據本發明方法,複數個目 利用複數個先前提複ΐ個先前提取的指令決定,及 與決定目择f棱s令中之最末者決定—循序位址。 址或循库:立址及循序位址同時,產生規定複數個目標位 個目# # u,之一的選擇信號。該選擇信號用於選擇複數 ==或循序位址之-作為記憶體請求位址。然後記 少一 ^1 t由處理器傳輪矣記憶體,故記憶體將供給至 位址!i庠 器。藉由與選擇信號產生的同時產生目標 位址,可減少指令提取的延遲。 將顯然易明。勢月之目的、特點及優點由後文細節說明 .^ 圖式之簡單說明 相^可特徵性代表 七明之新福特點列舉於隨附之申請 409224
五、發明說明(3) 專利範圍。但本發明本身及較佳使用模式、進一步目的及 優點經由參照後文範例具體例之細節說明連同附圖一起研 讀將顯然易明,附圖中: 圖1闡明可優異地利用之附有本發 明之方法及系統之
料處理糸統, 圖2為圖1資料處理系統之柏 *3曰 圖;及 令單元之進一步細節方塊 之由記憶體提取指令 圖3為邏輯流程圖說明根據本發曰月 之方法。 範例具體例之詳細說明 0 現在參照附圖,特別參照圖i,說明隨附之申請專利範 圍引述之本發明之處理指令及資料用之處理器(概括指示 為10)。之範例具體例之方塊圖。於闡明之範例具體例中, 處理器10包含早-積體電路超定標器微處理器。如此容 詳述,處理器10包括多個執行單元,暫存器,緩衝器,$ 憶體及其他功能單元,全部係藉積體電路製成。處理心 、 較佳包含威力PC(PowerPC)系列微處理器(得自ΙβΜ微電 公司)其係根據精簡指令運算(RISC)技術執行;但業界 士由後文說明瞭解本發明也可應用於任何其他處理器。 如圖^示例說明,處理器10透過處理器10内部之一隨後' 排^面早πΒΐυ 12耦合至處理器匯流排23。BIU 12控制 理器1 0與其他耦合至處理器匯流排1丨之器件間之資訊移 轉,其他器件例如外部第二階(L2)快取裝置或主記憶體 (圖中未顯示)參與匯流排仲裁移轉。處理器1〇、處理器職
第8頁 409224 五、發明說明(4) 流棑23及其他韓合至處理器匯流排丨〗之器件共同形成資料 處理系統。 β I U 1 2連結至處理器丨〇内部的指令(i )快取裝置丨4及資 料(D)快取裝置13。高速快取裝置如卜快取裝置14及卜快 取裝置13可使處理器丨〇對先前由低階記憶體移轉至快取裝 置之寅料或指令子集達到相對快速存取時間5如此改進主 機資料處理系統性能。I —快取裝置丨4進一步耦合至指令單 το 1 1 ’其於各週期期間由卜快取裝置丨4提取指令。資料單
兀1 1於内部處理分支指令,但調度循序指令至處理器1 〇之 循序執行電路用於執行。 Q s亥fej列具體_例中’循序執行電路包括整數單元丨5,載入 /儲存單T〇(LSim6及浮點單元(Fpu)n。各執行15_17典型 於各處理週期期間執行—或多個特定類型循序指令之指 令。.例如整數單元1 5執行數學及邏輯運算如加、減、 ANDing、〇Ring及X〇Ring於接收自特定通用暫存器(GpR)i8 . 或GP\重新命名缓衝器的整數運算元。於一指令執行後’ ^數早几15輸出所得指令資料(若有)至⑶^重新命名缓衝 Ϊ 2 4 i其提供所得資料的暫時儲存至指令完成為止,遵照 凡成單tl20之指不移轉所得資料由GpR重新命名緩衝器^丨) 至一或多個GPR 18。 FPU。17典型對接收自浮點暫存器(FpR)1 9 *FpR重新命名 ,衝二2 5之來源運异元執行單及雙精密浮點算術及邏輯運 ί刺如浮點乘法及除法。FPU 30輸出由執行浮點指令,所得 育;斗至選定的FPR重新命名緩衝器2 5 ,其暫時儲存所得資
409224 五、發明說明(5) 料至指令完成,遵照完成單元2 0之指示將所得資料由FPR 重新命名緩衝器25傳輸至選定的FPR 19。 如同名稱暗示,L S U 1 6典型執行浮點及定點指令,該等 指令由記憶體(亦即D -快取裝置1 3或主記憶體)載入資料至 選定的GPR 18或FPR 19,或儲存源自GPR 18,GPR 重新命 名缓衝器24,FPR 19或FPR重新命名缓衝器15的資料至記 憶體。處理器1 0可選擇性包括一前解碼器2 2插置於B I U 1 2 與I -快取裝置1 4間,其係於儲存前解碼指令於I -快取裝置 1 4之前,前解碼接收自低階記憶體的指令。此種前解碼包 括例如設置分支指令於一致格式輔助藉指令單元1 1之流線 化處理。 處理器1 0較佳採用管線化及脫序執行指令俾便進一步改 良其超定標器架構性能。如此,只要觀察得資料相關,則 指令可以任一種順序藉整數單元15、LSU 16及FPU 17執 行。此外,指令可藉處理器1 0於一系列管線化階段處理, 包括提取,解碼/調度,執行,結束及完成。根據本發明 且容後詳述,處理器1 0之整體性能可藉由縮短提取管線階 段之指令提取週期時間增進。 現在參照圖2,說明指令單元1 1之進行細節方塊圖。如 示例說明,指令單元11包括指令件列3 0,其包括與執行有 關聯的登錄數目,其暫時儲存提取自I -快取裝置1 4的指 令。指示係以程式順序載入指令佇列3 0的登錄,始於底登 錄。於調度窗3 2内部之指令表示於指令佇列3 0之最老指令 於各處理器時脈週期呈現給多工器3 4用於調度。當由調度
第10頁 409224 五、發明說明(6) 邏輯36主張適當選擇信號時,—& / 環 系統執行單元1 5- 1 7用以執行,/夕個指令被調度至循 殘留於指令佇列3 0及指令於調@ ’丁'由指令佇列3 0移出。 位。依據預定執行而定,調声m :於私令被去除時向下移 執行單元及運算元)變成可利用、6可於執行寊源(例如 另外調度邏輯可確證資料關聯限於調度程式順序;或 序的指令。 聯性的觀察且調度非屬程式川員 如圖2所示,指令佇列3 0也右M , 完全重疊調度窗32或可由調度窗;二:取窗38 ’其部分或 Θ 之各指令由解碼器40及優先嘴序邏輯^於提取窗38内部 , . 貝斤邏軏42及分支處理單元 BP1044中之對應者接s:作為輪Λ^解崎器4〇係基於假設 提取窗38内部之各個指令為分支指令運算。如此響應指令 的接收,各解碼器40解碼其個別指令彷彿為分支指令而決 定一解碼目標位址,該位址為進行"分支"時執行將會分支 的位址。解碼器4 0決定之解碼目標位址構成多工器5 〇之輸 入 指令由解碼器4 〇解碼之方式隨處理器1 〇執行指令集合架 構及預定邏輯複雜度決定。最簡單例中,其中全部分支指 令皆規定或假設規定中間分支,解碼器4 〇可單純利用分支 才曰々之直接搁位值決定被解碼的目標位址^於相關分支被 支援的處理器1 〇之具體例中,圖1之前解碼器2 2較佳用於 刖處理關係分支及直接分支成為一致格式,故直接及關係 分支}曰令可由解碼器4 〇以相同方式處理。此種前處理方式 例如延長各分支指令包括一額外多位元(例如5位元)分支
第11頁
搁位’該分支欄位可由解碼器 址 又更複雜的具體例也可支 程式流將分支至架構暫存器例 之—内部之一位址。本具體例 含有暫存器間接分支位址,較 多工器50 。 4 0用於計算被解碼的目標位 援暫存器間接分支,其規定 如威力PC鏈結與計數暫存器 中,架構暫存器46之内容; 佳藉解碼器4 0解碼然後輪\ 合後洋述’指令佇列3 〇之最末(程式順序)指令位址可位 於或非位於提取窗3 8,該位址連同指令長度一起輸入加法 加法器48計算指令位址與指令長度之和,該和規定 次:循序指令的位址。然後循序指令位址由解碼器4〇解碼^ 及輸入多工器5 〇 ^如此全部輸入多工器5 〇的位址皆為解 位址。 與解碼器40及加法器48之運算同時,優先順序邏輯42決 定$取窗38之指令中之何者(若有)實際為分支指令,及分 支指令令之何者為提取窗38之最早的(於程式順序)未經處 理的分支指令。此外,BPU 44決定將取提取窗38之分支指 令中之何者(若有)。如此BPU 44指示優先順序邏輯42何者 指令為無條件分支指令,所取經解析的條件分支指令,或 利用靜態或動態分支預測預測為條件分支指令。如業界人 士已知’靜態預測典型係基於藉編譯器與分支指令關聯的 位元’而動態預測典型至少部分係基於分支指令的指令位 址。如示例說明,BPU 44也提供分支預測及分支解析至調 度邏輯3 6 ’其利用分支預測及分支解析來產生控制多工器 3 4的選擇信號。
第12頁 _ 409224 -—--------------- 五、發明說明(8) 基於接受自BPU 44之輸入及決定提取窗38之何者指令 -(若有)為最早未經處理的分支指令,優先順序邏輯42產生 被解碼的選擇信號52,其數目較佳等於多工器5〇的輸入。 選擇信號5 2使多工器5 〇選擇對應一主動選擇信號之被解碼 的輸入位址作為記憶體請求位址。響應接收記憶體請求位 址,I -快取裝置丨4提供一或多個記憶體請求位址的關聯指 令至指令佇列3 0。要緊地,因記憶體請求位址係於I -快取 裝置1 4接收記憶體請求位址前,由指令單元11之解碼器4 〇 之一解碼,故可免除I -快取裝置丨4解碼記憶體請求位址的 需求。如此因位址解碼係藉解碼器4〇與優先順序邏輯42的 運算並行執抒,故可縮短指令提取週期時間。 現在參照圖3,說明根據本發明之範例提取指令方法之 高階邏輯流程圖。如示例說明,方法始於方塊6 〇及隨後前 進至方塊6 2 ’其說明登錄内部之一或多個提取指令儲存於 指令作列3 0頂部。雖然指令佇列3 0於前文說明為移位佇 列’其中當前一個登錄被去除時登錄朝向指令佇列3〇底移 位’但需瞭解本發明同等適用於其他指令佇列3 〇如圓形佇 1 列的實施。然後處理由方塊β 2前進至方塊6 4,示例說明解 碼器4 0決疋來自提取窗3 8之各指令之目標位址。此外方塊) 6 4表不加法4 8由指令佇列3 〇之最末指令位址及最末指令— 長度計算次一循序提取位址。 與方塊64表示之運算並行,方塊7 〇_76表示的運算係由 優先順序邏輯42及BPU 44執行。現在參照方塊7 〇 ,優先順 序邏輯42判定提取窗38是否含有未經處理的分支指令。於
第13頁 ___ 409224 五、發明說明(9) ' ' 方,70,響應判定提取窗38不含未經處理的分支指令,處 理削進至方塊72 ’其說明優先順序邏輯42產生適當選擇信- 號來選擇循序提取位址作為記憶體請求位址。然後處理前 進至方塊80 ’容後詳述。 回到方塊7 0 ’響應優先順序邏輯4 2判定提取窗3 8含有一 未經處理的分支指令’處理前進至方塊74。方塊74說明 ΒΡϋ 44解析或預測提取窗38之各分支指令。雖然方塊係 於^塊70之後說明,但需瞭解方塊7〇及以之運算可循序或 並行執行,依據時序的考量決定。換言之,為了縮短指令一 提取,期㈠'間’方塊7 〇 - 7 6的相當延遲不可比解碼器4 0及^ $法器48之延-遲中之最長時間更長。如此若由時序考量有 ^ 方塊7 &可選擇性刪除(如虛線指示),全部分支假定 二採=本具體例中’ ΒΡϋ 44可用於取消錯誤預測執行路 徑的指,,如後文就方塊84討論。處理由方塊74前進至方 f 76 ’ δ兒明優先順序邏輯42產生選擇信號而由提取窗内 ,早未經處理的分支指令選擇決定的目標位址。選定的目 ,位址可藉關聯提取窗38之指令之解碼器4〇之一輸出;或 若暫存器間接分支指令可支援,則由架構暫存器46之解碼 器40輸出。隨後處理進入方塊8〇。 方塊80不例说明多工器5〇響應選擇信號選擇其解 - ^、一位址作為記憶體請求位址。然後記憶體請 =位址由夕工器5 〇傳輪至快取裝置1 4。於推測的分支目 ,位址供給I-快取襞置14作為記憶體請求位址之例中,優 順序邏輯42也產生選擇信號52,其引起多工器5〇供給加
409_二 五、發明說明(10) '------ 法器4 8計算的循序位址至I -快取裝置1 4作A _ ’r句一-欠提取位 址。藉此方式,若目標位址被解析為正確, ^ 幻偏序路彳Φ指 - 々可被拋棄。另外若目標位址稍後決定為屬於錯誤 行路徑内部,則錯誤預測路徑内部之指令可被抛^ @ = 處理可與循序執行路徑内部的指令執行而 會二 々 个矿招致額外延 遲。 於方塊80後,處理前進至方塊82,農袅干冰〜 〃衣不厌疋記憶體諸
求位址規定的指令是否已經接收於指令彳宁列3 〇。4 T J 右否,貝] 處理單純於方塊8 2重複進行至接收到要求的指令為止。塑 應於接收到指令佇列30要求的指令,指令提取&期完成:〇 及處理前進i:選擇性方塊84。選擇性方塊84示例說$βρυ 4 4解析預測分支或預測分支指令(若預測未於方塊7 &進行) 而決定提取指令中之何者(若有)須被拋棄。要緊地,方塊 8 4說明的運算不屬於指令提取週期内部,因此不會促成分 支被正確預測案例中之指令提取延遲。隨後處理回到方塊 62 ° 如前已述,本發明提供一種處理器其採用改良之指令提 取方法來縮短指令提取週期時間。根據本發明,產生多個 可能的記憶體請求位址,且與位址 ^, 位址的選#,可縮;!明求位址。藉由重4位址的產生與 可能記憶體請求:令提:週期時間。如前文說明, 求位址前解碼,故:車父佳係於缶擇位址之-作為記憶體請 雖然已經參昭較=碼t需於關鍵時序路徑上進行。 、板佳具體例特別顯示及說明本發明,但業
第15頁 409224
第16頁

Claims (1)

  1. 409224 六、申請專利範圍 1 . 一種於處理器内部由記憶體提取一指令之方法,該方 法包含: 利用複數個先前提取的指令決定複數個目標位址,及利 用複數個先前提取指令中之最末者決定一循序位址; 與該決定複數個目標位址及循序位址同時,產生一選擇 信號規定複數個目標位址或循序位址之一; 利用該選擇信號,選擇複數個目標位址或循序位址之一 作為記憶體請求位址;及 由處理器傳輸記憶體請求位址至記憶體,因此記憶體將 供給至少一指令至處理器。 2. 如申請蓴利範圍第1項之方法,其進一步包含: 儲存複數個先前提取的指令於指令佇列,於由此指令佇 列,指令被處理器調度。 3. 如申請專利範圍第1項之方法,其中該產生步驟包 含: 決定複數個先前提取的指令是否包括一分支指令; 響應於複數個決定先前提取的指令是否包括一分支指 令,產生一選擇信號規定由複數個由分支指令決定的目標 位址中之一目標位址;及 響應複數個決定先前提取不含分支指令,產生一選擇信 號規定該循序位址。 4. 如申請專利範圍第3項之方法,其中: 該方法進一步包含決定是否採行由該分支指令規定的目 標執行路徑;及
    第17頁 ___4Δ9224____— 、 申請專利範圍 s亥產生選擇信號規定由分支指令決定的複數個目標位 址中之一I標位址的步驟係僅響應於決定是否需採行由分 支指令規定的目標執行路徑進行 5.如申請專利範圍第丨項之方法,其中該等複數個先前 提取的指令包括—第一分支指令及第二分支指令,該產生 步驟包含產生一選擇信號於第一分支指令及第二分支指令 之程式順序中規定最早的指令。 6 ·如=請專利範圍第1項之方法,其中該選擇步驟包含 〇 利用夕工器’選擇複數個目標位址及循序位址之一作為 記憶體請求位址。 7·如申請莩利範圍第1項之方法,其進一步包含在該選 擇w解碼複數個目標位址及循序位址。 8. —種處理器,其包含·· 决疋裝置,其利用複數個先前提取的指令決定複數個目 標位址’及矛用韻奴加iL " !_ , pr, .π複數個先丽提取的指令中之农末者決定一 產生裝置,其係與決定複數 時,產生一選擇信號規定複數 個目標位址及循序位址 個目標位址或循序位址 同 之 選擇裝置,其係两於利用選擇信號,選擇複數個目標 址或循序位址之—作為記憶體請求位址;及 忤2輸ϊ ΐ情J 於由處理器傳輪記憶體請求位址至 隐體故π己隐體將供給至少 9.如申請專利範圍^馆+占田主處理口口 車已圍第8項之處理器,其進一
    第18頁 409224 六、申請專利範圍 令佇列用於儲存複數個先前提取的指令,其中該等指令係 藉處理器由指令佇列調度。 - 1 0.如申請專利範圍第8項之處理器,其中該產生裝置包 含·· 決定裝置,其係用於決定複數個先前提取的指令是否包 括一分支指令; 產生裝置,其係響應決定複數個先前提取的指令是否包 括一分支指令,產生一選擇信號規定於複數個目標位址中 由該分支指令決定之一目標位址;及 厂 產生裝置,其係響應決定複數個先前提取的指令不包括γ 一分支指令r用於產生一選擇信號規定該循序位址。 1 1.如申請專利範圍第1 0項之處理器,其中: 該處理器進一步包含決定裝置,其係用於決定是否須採 行由該分支指令規定的目標執行路徑;及 該產生一選擇信號規定複數個目標位址中之一目標位址 係由分支指令規定之裝置,僅響應決定須採行由分支指令 規定之目標執行路徑時才產生該選擇信號。 1 2.如申請專利範圍第8項之處理器,其中複數個先前提 取的指令包括一第一分支指令及第二分支指令,該產生裝.J 置包含產生一選擇信號規定於第一分支指令及第二分支指 令之程式順序中之最早者的裝置。 1 3.如申請專利範圍第8項之處理器,其中該選擇裝置包 含一多工器。 1 4.如申請專利範圍第8項之處理器,其進一步包含於選
    第19頁 _409224_ 六、申請專利範圍 擇前,用於解碼複數個目標位址及循序位址之裝置。 1 5. —種具有關聯記憶體之處理器,該處理器包含: 一執行單元其執行被調度的指令; 一指令佇列其可含有複數個待調度的指令; 一位址決定電路,其利用複數個含於指令佇列中先前被 提取的指令,決定複數個目標位址及循序位址;及 優先順序邏輯,其係與藉位址決定電路決定複數個目標 位址及循序位址同時,選擇複數個目標位址或循序位址之 一作為記憶體請求位址。 1 6 .如申請專利範圍第1 5項之處理器,該優先順序邏輯 包含: 決定裝置,其係用於決定複數個先前提取的指令是否包 括一分支指令; 產生裝置,其係響應決定複數個先前提取的指令是否包 括一分支指令,產生一選擇信號規定於複數個目標位址中 由該分支指令決定之一目標位址;及 產生裝置,其係響應複數個先前提取的指令不包括一分 支指令的決定,用於產生一選擇信號規定該循序位址。 1 7.如申請專利範圍第1 6項之處理器,其進一步包含: 一分支處理單元,其係耦合至優先順序邏輯且決定是否 需採行由該分支指令規定的目標執行路徑;及 該產生裝置其產生一選擇信號規定複數個目標位址中之 一目標位址係由分支指令規定之裝置,僅響應決定需採行 由分支指令規定之目標執行路徑時才產生該選擇信號。
    第20頁 409224 六、申請專利範圍 1 8.如申請專利範圍第1 5項之處理器 前提取的指令包括一第一分支指令及一 其中該優先順序邏輯以第一分支指令及 式順序選擇最早者。 1 9,如申請專利範圍第1 5項之處理器 多工器具有複數個目標位址及循序位址 多工器也包含一選擇輸入耦合至優先順 可耦合至記憶體。 2 0.如申請專利範圍第1 5項之處理器 電路包含複數個指令解碼器,其個別於 擇記憶體請求位址前,解碼於指令佇列 先 個 數 複 =口 其 及程 ,之 令令 指指 支支 分分 二二 第第 進 其 含 包 步 入及 輸輯 為邏 作序 該其 中出 其輸 定 決 址 位 -5 中 其 選之 輯令 邏指 序個 順數 先複 優之 由中 G
    第21頁
TW088101982A 1998-03-24 1999-02-09 Processor and method of fetching an instruction that select one of a plurality of fetch addresses generated in parallel to form a memory request TW409224B (en)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US09/046,872 US6334184B1 (en) 1998-03-24 1998-03-24 Processor and method of fetching an instruction that select one of a plurality of decoded fetch addresses generated in parallel to form a memory request

Publications (1)

Publication Number Publication Date
TW409224B true TW409224B (en) 2000-10-21

Family

ID=21945849

Family Applications (1)

Application Number Title Priority Date Filing Date
TW088101982A TW409224B (en) 1998-03-24 1999-02-09 Processor and method of fetching an instruction that select one of a plurality of fetch addresses generated in parallel to form a memory request

Country Status (6)

Country Link
US (1) US6334184B1 (zh)
EP (1) EP0945785B1 (zh)
JP (1) JP3721002B2 (zh)
KR (1) KR100331199B1 (zh)
DE (1) DE69938911D1 (zh)
TW (1) TW409224B (zh)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6604191B1 (en) * 2000-02-04 2003-08-05 International Business Machines Corporation Method and apparatus for accelerating instruction fetching for a processor
US7210025B1 (en) * 2000-04-19 2007-04-24 Uht Augustus K Automatic and transparent hardware conversion of traditional control flow to predicates
US6823473B2 (en) * 2000-04-19 2004-11-23 Hewlett-Packard Development Company, L.P. Simultaneous and redundantly threaded processor uncached load address comparator and data value replication circuit
US6854075B2 (en) * 2000-04-19 2005-02-08 Hewlett-Packard Development Company, L.P. Simultaneous and redundantly threaded processor store instruction comparator
US20020073301A1 (en) * 2000-12-07 2002-06-13 International Business Machines Corporation Hardware for use with compiler generated branch information

Family Cites Families (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0774992B2 (ja) 1988-08-09 1995-08-09 松下電器産業株式会社 データ処理装置
JPH0375932A (ja) 1989-08-18 1991-03-29 Nec Corp 数値演算処理装置
US5185868A (en) * 1990-01-16 1993-02-09 Advanced Micro Devices, Inc. Apparatus having hierarchically arranged decoders concurrently decoding instructions and shifting instructions not ready for execution to vacant decoders higher in the hierarchy
JPH04125733A (ja) 1990-09-18 1992-04-27 Nec Corp パイプライン情報処理方式
JP2591325B2 (ja) 1990-10-30 1997-03-19 松下電器産業株式会社 分岐制御装置
JPH05108345A (ja) 1991-10-16 1993-04-30 Nec Corp 分岐命令処理装置
JP2761688B2 (ja) 1992-02-07 1998-06-04 三菱電機株式会社 データ処理装置
US5495598A (en) * 1993-12-23 1996-02-27 Unisys Corporation Stuck fault detection for branch instruction condition signals
US5535346A (en) * 1994-07-05 1996-07-09 Motorola, Inc. Data processor with future file with parallel update and method of operation
TW360852B (en) 1995-04-12 1999-06-11 Matsushita Electric Ind Co Ltd Pipeline processor
JPH08314720A (ja) 1995-05-12 1996-11-29 Hitachi Ltd 分岐制御システム
US5911153A (en) 1996-10-03 1999-06-08 International Business Machines Corporation Memory design which facilitates incremental fetch and store requests off applied base address requests
US5796998A (en) * 1996-11-21 1998-08-18 International Business Machines Corporation Apparatus and method for performing branch target address calculation and branch prediciton in parallel in an information handling system
US5964869A (en) * 1997-06-19 1999-10-12 Sun Microsystems, Inc. Instruction fetch mechanism with simultaneous prediction of control-flow instructions
US5926628A (en) * 1997-07-15 1999-07-20 International Business Machines Corporation Selectable priority bus arbitration scheme
US6112299A (en) 1997-12-31 2000-08-29 International Business Machines Corporation Method and apparatus to select the next instruction in a superscalar or a very long instruction word computer having N-way branching
US5974543A (en) * 1998-01-23 1999-10-26 International Business Machines Corporation Apparatus and method for performing subroutine call and return operations

Also Published As

Publication number Publication date
JP3721002B2 (ja) 2005-11-30
KR100331199B1 (ko) 2002-04-06
JP2000029694A (ja) 2000-01-28
EP0945785A2 (en) 1999-09-29
DE69938911D1 (de) 2008-07-31
KR19990077433A (ko) 1999-10-25
EP0945785B1 (en) 2008-06-18
EP0945785A3 (en) 2000-09-27
US6334184B1 (en) 2001-12-25

Similar Documents

Publication Publication Date Title
US6338136B1 (en) Pairing of load-ALU-store with conditional branch
US7437543B2 (en) Reducing the fetch time of target instructions of a predicted taken branch instruction
JP3628379B2 (ja) 命令を処理するためのパイプラインを有するマイクロプロセッサ装置およびそれにおいて用いるためのプログラムカウンタ値を発生する装置
JP2603626B2 (ja) データ処理装置
US7117347B2 (en) Processor including fallback branch prediction mechanism for far jump and far call instructions
TWI416408B (zh) 一種微處理器和其資訊儲存方法
JPH0334024A (ja) 分岐予測の方法とそのための装置
EP2084602B1 (en) A system and method for using a working global history register
JPH09185506A (ja) プロセッサ内で命令を実行する方法およびシステム
JPH0863356A (ja) 分岐予測装置
US7143269B2 (en) Apparatus and method for killing an instruction after loading the instruction into an instruction queue in a pipelined microprocessor
US7159097B2 (en) Apparatus and method for buffering instructions and late-generated related information using history of previous load/shifts
JP2009048633A (ja) 分岐先アドレス・キャッシュを備えたプロセッサおよびデータを処理する方法
JP2001142692A (ja) 2つの異なる固定長命令セットを実行するマイクロプロセッサ、マイクロコンピュータおよび命令実行方法
JP2002527798A (ja) ストアアドレス生成およびユニバーサルな依存性ベクトルに基づくロードブロックのためのメカニズム
JP3611304B2 (ja) 1サイクルのパイプライン・ストールを生成するパイプライン・プロセッサのシステム及び方法
TW409224B (en) Processor and method of fetching an instruction that select one of a plurality of fetch addresses generated in parallel to form a memory request
JP2001142693A (ja) 2つの異なる固定長命令セットを実行するマイクロプロセッサ、マイクロコンピュータおよび命令実行方法
US5987599A (en) Target instructions prefetch cache
US6170053B1 (en) Microprocessor with circuits, systems and methods for responding to branch instructions based on history of prediction accuracy
US7003649B2 (en) Control forwarding in a pipeline digital processor
US6115810A (en) Bi-level branch target prediction scheme with mux select prediction
JPH11282675A (ja) プロセッサおよび条件コ―ド・ビット計算方法
US20050144427A1 (en) Processor including branch prediction mechanism for far jump and far call instructions
US20080059753A1 (en) Scheduling operations corresponding to store instructions

Legal Events

Date Code Title Description
GD4A Issue of patent certificate for granted invention patent
MM4A Annulment or lapse of patent due to non-payment of fees