TW434511B - A digital processor having branch history table with branch pattern field - Google Patents
A digital processor having branch history table with branch pattern field Download PDFInfo
- Publication number
- TW434511B TW434511B TW086119317A TW86119317A TW434511B TW 434511 B TW434511 B TW 434511B TW 086119317 A TW086119317 A TW 086119317A TW 86119317 A TW86119317 A TW 86119317A TW 434511 B TW434511 B TW 434511B
- Authority
- TW
- Taiwan
- Prior art keywords
- branch
- instruction
- item
- address
- history table
- Prior art date
Links
- 230000015654 memory Effects 0.000 claims description 43
- 238000000605 extraction Methods 0.000 claims description 27
- 239000000284 extract Substances 0.000 claims description 10
- 230000002079 cooperative effect Effects 0.000 claims description 7
- 230000000875 corresponding effect Effects 0.000 claims description 3
- 210000000078 claw Anatomy 0.000 claims 1
- 238000001514 detection method Methods 0.000 abstract description 5
- 238000000034 method Methods 0.000 description 8
- 238000005516 engineering process Methods 0.000 description 7
- 238000013461 design Methods 0.000 description 5
- 238000010586 diagram Methods 0.000 description 4
- 238000012545 processing Methods 0.000 description 4
- 230000008901 benefit Effects 0.000 description 3
- 238000012790 confirmation Methods 0.000 description 3
- 238000010276 construction Methods 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 238000007667 floating Methods 0.000 description 2
- 230000008569 process Effects 0.000 description 2
- 241001125840 Coryphaenidae Species 0.000 description 1
- 241000270666 Testudines Species 0.000 description 1
- 230000009471 action Effects 0.000 description 1
- 229910052797 bismuth Inorganic materials 0.000 description 1
- JCXGWMGPZLAOME-UHFFFAOYSA-N bismuth atom Chemical compound [Bi] JCXGWMGPZLAOME-UHFFFAOYSA-N 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000005457 optimization Methods 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 239000002689 soil Substances 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3836—Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution
- G06F9/3842—Speculative instruction execution
- G06F9/3844—Speculative instruction execution using dynamic branch prediction, e.g. using branch history tables
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)
- Memory System Of A Hierarchy Structure (AREA)
Description
21345 1 im A7 B7 五、發明説明( 説明 發明背景 發明範圍 大也上,本發明與數位處理器有關,特別是與具有分支 經歷表的處理器有關。這種處理器提取多重指令及/或與提 取的記憶體區段任意校準的指令。 背景説明 超純量微處理器這類現代數位處理器,可以在每個機器 循%解碼、調度、執行多重指令。爲了要使這類超純量微 處理器的設計最佳化,必須至少從儲存存提取解碼/執行複 數於機器循環所能處理相當的指令。由於提取指令的欄位 可能包括多重分支指令,因此必須設計分支經歷表位址快 取记憶體,以預測下一個分支指令的可能位置。基於微處 理器循環時間的最佳化考量,必須以較爲簡單的方法來找 出所預測的分支(亦即判定該位址的目標位址),並起始記 憶體區段的指令提取。 經濟部中央標準局員工消费合作社印裂 之前亦曾提出、實行幾個分支預測裝置,各有其優、缺 點。針對多重預測裝置的美國專利號碼5 353,42 1,對於部 分方法有所説明。如上所述,預測分支指令的成果,可使 處理器將管線充滿指令。如果猜對了分支成果,即可避免 管線分裂。接下來’ Emma及其他人將提供分支預測機洩 的發展簡史。 此外,美國專利號碼5,367,703(持有人Levi tan)亦説明了 預測分支成果的技術,其中分支視指令提取位址的距離, _____:__-4- 本紙張尺度適用中國國家標举(CNS ) A4規格(210X297公釐) ' 4345 1 A7 B7 五、發明説明(2 經濟部中央標準局員工消费合作社印製 而使用不巧的預測器,而指令提取位址係用來提取記憶體 區段及分支於記憶體區段的位置。距離不同,反應該距離 分支經歷的預測器位元組也就不同Q Veh與Patt於第九屆國際電腦建構研討會,説明了視一 個或多個之前的分支,以及目前分支指令的歷史成果。 發明概要 因此,喊化偵測、逐取分支經歷表中合適的分支目標位 址’就成了本發明的一璎目標;如此可於指令提取區段指 示多重分支指令。 本發明的另一個目標在於減低分支經豚奉搜取;糙的种 雜度’並提供一個可以隨著較大的指令提取區段尺寸擴展 的結構。 根據本發明’於分支經歷表項写引進分支j兹式棚苻,可 完成上述及其他目標;其中分支經歷表項目於指令提取區 段指示其他分支(未被目前項目定義的分支)的存在與否。 實行本發明的超純量微處理器具備了改良的系統,可以根 罈指令提取區段上土·%么數」來預油丨去辛的分支3這種微 處理器其指令提取裝置可以提取記憶體區段,該區段可以 包含許多分支指令。該提取裝置包括一個分支經歷表,該 表有一個或多個項目,每個項目將該指令提取區段所包含 的分支其分支位址與目標位址,與儲存指令提取區段中的 模式分支一起儲存。您可以在下一次出現指令區段提取_ ’對於所儲存的分支、目標位址、以及分支經歷表中的分 支模式攔位加以操取。分支模式爛位用來確定只預測其中 -5- Μλ張认賴巾g|( CNS ) A4^TllOX297^t (請先閱讀背面之注意事項再填寫本頁) 裝 訂 經濟部中央標準局員工消費合作.社印製 4345 1 1 η Α7 —----- Β7 五、發明説明(3 ) 個分支項目。執行單位必須執行分支指令,判定成果、 並修正上述分支指令的目標位址。 圖式簡述 參照所附圖式’更能了解本發明實例對於上述及其他目 標、觀點、與優點的説明。 圖1係實行本發明的超純量微處理器的構造圖。 圖2係分支經歷表的詳細構造圖。 -圖J係用來更新分支經歷表的分支模式產生器的詳細構 造圖。 發明較佳之具體實施例詳述 本發明應用了兩種獨特的分支經歷表组態。第一種,也 是最常見的組態爲快取記憶體,該快取記憶體係由η項、 m個分路組的相關快取記憶體所组成。表1描述了每個分 支經歷表項目的欄位。 表1 :分支經歷表項目欄位定義 分支位址—般稱爲分支位址欄位。本欄位並不包括可以 將分支經歷表定址的索引位元’亦不包括可以識別指令 提取區段中分支位置的低序位元另外,還排除了分支 位址的高序位元。本欄位亦稱爲去階梯欄位。 分支偏移-分支偏移欄位可以識別指令提取區段其分支 的啓動位置。 有效-該項目有效。 分支目標位址-分支指令執行順利時,下一個指令的記憶 體位置。 -6- 本紙張尺度適用中國國家標準(CNS ) Λ4规格(210χ 297公沒) (請先閲讀背面之注意事項再填寫本頁) -裝- 訂 4345 1 1埋 A7 B7 經濟部中央標率局<貝工消費合作杜印— 五、發明説明(4 用以提取下一個指令區段的位址係分爲以下四個個別的 攔位:字偏移、索引、去階梯欄位、以及捨棄的位元。字 偏移包括低序位址位元,該位元指示了記憶體提取區段的 位置,指令解碼係於記憶體提取區段開始。金引攔位爲 log2(n)位元,可以定址分支經歷表。自快取記憧靜讀取m 甸項弓。如果去階梯攔位相等,則接受該,目爲提取的記 憶體區段中指配一個分支;通常提取記憶體分支時,亦同 時提取分支經歷表詢問。假設分支經歷表項目包括了用來 預測分支成果的資訊,則將預測的分支成果應用於讀取自 快取記憶體的m個項目。由於提取多重指令,指令提取記 憶體區段可以識別所預測的多重分支。指令解碼可於指令 提取區段的任何位置開始=> 所有被預測的分支,如果字偏 移小於指令提取位址的字偏移,將因無法解碼而被忽略。 由於提供一個單一指令提取位址做爲下一個栺令記憶體提 取位址,爲分支經歷表的目標之一:如果所預測的多重分 支其字偏移等於或大於指令解碼開始處的字偏移,則會選 取字偏移較小的項目。所選項目的分支目標位址做爲下一 個指令記憶體提取。 熟悉本技術的人士都了解,必須將、分克經歷表項目的韋 ^位埤的字偏移以及他_項目的字龟I力η以 比|交。因此,需要的比較器數目爲^。隨著所提取的 指令增加的數目,分支經歷表設計會受到兩種效應的影響 。一爲字位元欄位的位元數目會增加。另外,亦需增加結 合性等級的數目,以確保可以辨識指令提取區段中的多重 表紙張尺度適用悄眺料(CNS ) Α4規格(2丨0X297公楚 Γ¾ή (請先閲讀背面之注意Ϋ項再填寫本頁) A7 B7 五、發明説明( 分支。這些效應的組合,佶 ΐ破沾八士S t 件所需迴路的幾何增加選取了 正確的分支經歷表項目。 分支經歷表的每個項目舶 i 曰新增了分支模式欄位,以減低分 支經歷表選取邏輯的複雜舟 、 人並提供一個可以隨著較大指 令k取區段尺寸擴展的处崧 ^ frL _ . 1〜構。分支模式欄位對於指令提取 區I又的每個位置皆有二進位p 一 k π,除了最右邊的位置以外 ,都可以開始指令解碼。#如八4 更新分支經歷表項目時,指令提 取區段中被預測的分支與牲Α Λ 1 又抖特疋分支經歷表項目的字偏移组 ’以提供一個具有位元纟且的她 、的欄位,與指令提取區段中任何 被預測的分支相對應。並中沾 ”干的;ί曰令提取區段位址較目前項 目所指示的分支指令低。以丨士舍彳1 丄 , - 乂此實例而Τ ’實行時移除了罕 偏移比較器,而由一個簡單佔,_ . 間早的2 —及j —及3 -及邏輯結構 取代。其中j較分支模式欄位的位元數多一。 經濟部中央橾準局員工消費合作社印製 本發明亦可應用於做爲内容可定址記憶體(CAM)的分支 經歷表。本實例可看成是—般結合性記憶體快取記憶體設 計組中較爲退化的例子,其中索引攔位有〇位元’且分支 經歷表的每個項目有其本身的去階梯欄位比較器以及命中 偵測邏輯。分支模式欄位解決了計算系統使用内容可定址 i己憶體的相關問題,該計算系統每個循環都提取多重指令。 一般實行分支經歷表時,如以提取位址針對預測的分支 指令搜尋分支經歷表’並不會考量分支偏移。指令提取區 段所能預測的獨特分支數目,係由πι判定,亦即一個命中 檢查的項目數目。m越小,越能選出接近如分支預測的提 取位址的分支指令。m越大,比如像是全結合内容可定址 8 本紙張尺度適用中國國家標率(CNS ) A4規格(210X297公釐) 1 kl B7 五、發明説明() 6 記憶體的例子,缺少本發明將難以進行多重去階梯攔位匹 配°因此,一般對於指令提取區段其分支多於一個分支經 歷表,都無法預測。P〇werPcTM 6(Me微處理器於去階梯欄 位比較時,包括了分支偏移欄位的位元,以求解主,如此 可以在指令提取區段中辨識多重分支。不過,广缺點^於 單一分支需要多重分支經歷表項目。事實上,如果去階梯 攔位比較包括了分支偏移欄位的j位元,則最多僅能指派 分支經歷表中的兩個項目以便預測一單一之分支指令。於 内容可定址己憶體應用分支模式爛位,可以在指令提取區 段中,以每個分支指令一個單一項目來預測多重分支。 經濟部中央樣準局員工消費合作社印製 以下就圓示加以討論。圖1係超純量微處理器系統10的 高級結構圖’該系統可以實行本發明的方法與系統。如圖 所示,微處理器系統1 〇包括了一個記憶體18,可以儲存 資料、指令等。記憶體18所儲存的指令及資料,係由悅取 記憶體/記憶體介面2 0加以存取。熟悉本發明相關技術的 人士都知道存取方法^熟悉資料處理的人士都了解快取記 憶體兒憶體系統的尺寸及用途,此處恕不贅言。僅管如此 ,相信熟悉本技術的人士仍會佩服:使用現代結合性快取 記憶體技術,利用快取記憶體/記憶體介面2 〇所暫存的資 料來達到高記憶體存取百分比。 正常情況下’ 憶體/記憶體介面2 〇的指令係載入 指令f宁列22 ’指令仵列22最好包括數個佇列位置。以超 純量微處理器的典型實例而言,佇列可包持8個件列位置 ,因此在循環中,可以於八〇至8個指令。 ^張纽適3中國國家標率(CMS ) Α4規格(2!ϋ97公楚) 4345 1 \m A7 B7 經濟部中央標準局員工消費合作社印製 五、發明説明(. 其數目取決於快取記憶體/記憶體介面20傳遞的有效指令 數目,以及指令佇列22的可用空間。 與超純量微處理器的情況—樣,指令佇列22將指令配送 至多重執行裝置。如圖丨所示,微處理器系統1 〇包括一個 浮點處理器裝置24 ' —個或多個定點或整處理器装置26 、以及一個分支處理器裝置28。因此,指令佇列22可以 在單一循環中配送〇至3個指令(或者更多,視定點處理器 裝置數目及/或其他特定微處理器執行裝置的數目而定), 每個執行裝置配送一個指令。 才曰令fr列2 2除了可以配送順序指令之外,亦可載入所謂 的”條件分支指令,,,以利分支處理器裝置28執行。條件分 支指令指定了應用程式中相關的條件分支,以回應處理一 個或多個順序指令的所選成果。爲了要將微處理器系統ί〇 這類配有管線的處理器系統其執行時間延遲降至最少,必 須在分支經歷表將指令區段取至指令佇列22時,預測指令 仵列其出現條件分支指令;其中分支經歷表係提取裝置的 一部分,稱之爲提取器30。以下會對分支經歷表詳加說明 。热悉本技術的人士都知道,如果條件分支預測爲”未取„ ’指令佇列中的順序指令會按照目前的路徑繼續下去,而 不會改變任何指令。不過’如果預測分支出現不正確時, 則指令佇列必須清除追蹤條件分支指令程式指令的順序指 令’並提取目標指令。相反的,如果條件指令預測爲,,已取,, ’則必須提取目標指令,並在預測正確時用以追蹤條件分 支。當然,如果”已取"的條件分支預測不正確,則必須清 k紙張尺度適用中國國家標準(CNS ) Α4規格(210Χ297公釐) (請先閱讀背面之注意事項再填寫本頁) -裝
11T 21345 1 A7 五、發明説明( 除目標指令’並揭取程式和人1 a 巧和令中追蹤條件分支指 指令。 日 令的順序 經濟部中央樣準局員工消費合作社印掣 如圖所示,微處理考萃紅 _ &里态糸統i〇還包括一個條件暫 。條件暫存器32可以暫時儲存各種比較成果,果^ :處理器t統1〇處理順序指令的成果。因此,浮點= 冬置24、疋點處理器裝置%、以及分支處理器裝置以皆 搞合至條件暫存器32 °可以偵測條件暫存器32特定條件 的狀態,並將測得狀態耦合至分支處理器裝置Μ,以產生 目標位址,該目標位址會耦合至提取器3〇。 圖2詳示了提取器30。目標位址與位址確認邏輯2〇6其 分支fr列204中所預測的目標位址加以比較。如果分支目 標預測正確,將不需要任何動作。不過,如果未預測分支 ,或者分支目標位址不正確,則必須兵除以下指令,並提 取正確的目標指令。此外,必須以分支位址、正確的目標 位址、以及分支模式,來更新分支經歷表2〇丨。 如π it取奋:)0出現了分支目標位址,則目標位址確認失 效’分支目標位址將被載入指令位址暫存器205,而分支 目標位址及分支位址則載入分支佇列2 04。指令位址暫存 器205的内容耦合至快取記憶體/記憶體介面2〇 β分支佇列 204的内容則耦合至分支經歷表201。使用本技術最少用的 (LRU)算法,來取代其中一個所.選的m項目。並循問剩餘 的每個項目,以判定該項目的去階梯欄位是否匹配分支位 址的去階梯欄位。 如圖3所示,每個匹配項目其分支偏移欄位以及分支佇 請 先. 閱 讀 背 意 事 項 再 裝 訂 -11 本紙張尺度適用中國國家標準(CNS ) A4規格(210X297公釐) A7 B7 43^5 1 ^ v 五、發明説明(9 ) 列 ζυ4的:¾、又 1 v巧一调六丁 — 如圖3所示’這些代碼係以”式 考'組合’以提伊_ > Jp -ttj 區段所預測分支的模式,其中” S ? 取 、Y如令提取區段係 提取。圖3描述了四分路組鉍八、 乃文扯 ,, ,A ,..Q合分支經歷表的設計。孰染 本技術的人士都了解,可以A抵 1 見心 以擴展這項設計至任 分路"以及指令提取區段尺寸。^ ^ ^ 00 %種分支模式可以包 "1",以與包括了一個預測的e & Λ i u ^ 〕已取分支的指令提取區段的每 個位置相對應。 特定實例中,會有一個預測彦 項4爲已取”的分支指令,除了 使用LRU算法的狀況外,备佶八 g使分支偏移的分支被不同分支 所覆蛊3以先前的實例來說,爲 _ ^ ^ 更新分支經歷表201 , 必須更新-組m個項目’並將這些項目的區階梯锅位盘分 支位址的去階梯襴位加以比較。對於去階梯糊位匹配的m 個項目子组來説’必須更新這些項目的分支模式掏位,以 反映新增至分支經録2Q1的分支其分支位p以本實例 而言’分支模式係與分支經歷表項目的分支偏移组合,該 分支經歷表項目的分支模式項目已被更新。新的分支模式 稱之爲項目特定分支模式”,產生過程如下:係經由設 疋員目特定分支模式的每個位元,以利設定相對應的分支 杈式位7L ;其中分支模式代表分支位址,該分支位址少於 刀支偏移所代表的分支位址.。這項編碼作業的目的在於將 命中偵測邏輯中選取_,優勝.,的分支經歷表項目的邏輯加以 間化。表2顯示了—個具備指令提取區段的微處理器產生 項目特定分支模式的例子,其中的指令提取區段包括了四 裝 J I ^_1τ (請先閱讀背面之注意事項再填寫本頁) 經濟部中央標準局員工消費合作社印製 本纸張尺度剌 12- (210X 297公釐) A7 B7 1 t 五、發明说明(1〇 ) 個可能的分支偏移。換言之’指令提取區段Φ 士 T有四彻V、 可能包含了指令。 k置 經濟部中央標準局工消費合作社印製 表2 :對於項目特定分支模式欄位
値得注意的是,表2最右邊的位元皆爲〇 , 在分支經歷表。 並且不需儲存 裝-------訂 ί靖先閔讀背面之注意事項再填{·Η·本頁} -13- 本纸張尺度通用中國國家標牟(CNS ) Α4規格(210X297公釐) A7 B7 經濟部中央標準局員工消費合作社印製 五 '發明説明(11 ) 只要指令提取區段位址耦合至快取記憶體/記憶體介面 2〇,來起始指令提取區段,則該指令提取區段位址亦會耦 合至匯流排208的分支經歷表20 1。該指令提取位址分爲 去階梯欄位、索引欄位、以及提取偏移。索引欄位可以選 取一組m個分支經歷表項目》指令提取位址的去階梯欄位 則與m個分支經歷表項目的去階梯欄位加以比較。如果m 組去階悌欄位與指令提取位址去階梯欄位相等,則其所有 的分支經歷表項目會形成一個m’,m’組可能空白,或者包 含一個單一項目,或者包含多重項目。如果m,空白,則該 才a令區段並無分支預測。如果m,組包含—個單一項目,則 居頁目可以預測一個分支。如果m ·組包含多重項目,則指 々&取偏移將編碼至一個具有位元组的攔位,其中該位元 组與分支模式的每個位元相對應,而該分支模式代表其指 t位置與提取偏移一致或更高的偏移。示一個指令 坪個可能的分支偏移的里器將所產生 的提取偏移重新编碼。 表3 :指令提取位址重新編
由於每個分支經歷表項目有其本身的項目特定分支模式 欄 7---14- ---- 尺度相中國61家棣準(CNS ) A4JStf«· ( 21GX 297公釐
經濟部中央標準局員工消費合作社印製 五、發明説明(12) 位,因此使用以下的方式來判定分支預測所用的項目爲正 確的項目。必須符合以下條件,才是正確的項目: •分支偏移必須一致,或者位於指令提取位址的右側。 •指令提取區段其指令提取位址及分支提取之間不可有其 他分支。 以本實例而言’分支偏移爲分支經歷表項目中的解碼値。 換言之’所儲存的位元與指令提取區段的每個位置相對應 ’其中該指令提取區段可以包括一個分支指令。僅能設定 孩項目其中一個位元,來指示目前項目所表示的分支的位 置。爲了便於討論我門指配該項目做爲偏移,分支經歷表 項目分支模式則指配爲模式,重新編碼的指令提取位址指 配爲提取。將使用最右侧遭到截除的位元提取指配爲題取 !。項目命中的等式如下: 項目命中<={(提取及偏移)* 〇}以及 {(提取!及模式)= 〇} 本發明的一項優點係提取請求其項目有效判定係與去階 梯比較平行進行。如果該項目的項目命中及去階梯匹配皆 爲眞,則該分支經歷表項目的目標位址攔位會耦合至指令 位址暫存器205。如果所有所選的m個分支經歷表項目其 項目命中或去階梯欄位爲僞,則不會針對該指令區段提取 任何分支預測,而遞增器207尚輸出資料會耦合至指令位 址暫存器208 ^下一步提取的是下—個順序指令區段。如 果目標位址搞合至指令暫存器205,則目標位址及分支位 址都會核合至分支作列204加以保留’直到執行所預測的 (請先閱讀背面之注•意事項再填寫本頁) 裝. 訂 -15- 弟iS61iy:H7號寻利甲請茉 說明書修正頁(88年η月) A7 B7 五、發明説明(13) 分支為止。之所以省略提取器的許多操作細節,原因在於 這些細節並不受新增的分支模式欄位,以及其後對於分支 經歷表更新所做修改、以及分支命中偵測的影響。熟悉本 技術以及之前技術的人士可以视實際應用的需要,增添省 略的細節。 僅管以超純量微處理器來說明本發明實例,熟悉本技術 的人士應能體認:即使對本發明加以修改,只要未超出本 發明所附專利申請範圍的精神及領域,皆可應用。比方說 ,本發明可應用於包含分支經歷表,並提取不止一個單一 指令的計算裝置;該裝置包括主訊框及數位信號處理器。 (請先閲讀背面之注意事項再填寫本頁) 經濟部中央標準局員工消費合作社印聚 元件符號說明 10 微處理器系統 32 條件暫存器 18 記憶體 201 分支經歷表 20 快取記憶體/記憶體介面 203 命中偵測邏輯 22 指令佇列 204 分支抒列 24 浮點單位 205 指令位址暫存器 26 定點單元 206 目標位址確認 28 分支單位 207 增量器 30 提取器 208 滙流排 -16- 本紙張尺度適用中國國家榡準(CNS ) Α4規格(2丨Ο X Μ7公釐)
Claims (1)
- 經濟部中央標準局員工消費合作社印製 A8 B8 C8 D8 六、申請專利範圍 1. 一種數位處理器,該處理器具備一種改良的系統,可以 根據指令區段提取的出t庫項¾^分支,該處理器包 括: 一個指令區段提取裝置,該裝置可以提取記憶體的區 段,該區段可以包括多個分支指令; 一個分支經歷表,該表具備一個或多個項目,每個項 目針對指令提取區段所包含的分支,儲存其分支位址與 分支目標位址,並將分支的分支模式襴位儲存在該指令 提取區段: 擷取裝置’此擷取裝置可以在下一個指令區段提取出 現時,從該分支經歷表揭取所儲存的分支、目標位址、 與分支模式攔位; 選取裝置,此選取裝置採用分支模式欄位以確保只會 預測其中一個分支項目;以及 一個執行單位’該執行單位執行分支指令、判定分支 指令結果、以及該分支指令的正確目標位址。 2. 如申請專利範圍第1項之數位處.理器,還包括可以根據 分支指令結果來更新該分支經歷表的更新裝$。 3. 如申請專利範圍第2項之數位處理器,其中更新裝置實 行一個最近最’少用的异法(LRU),以更新分支目標位址。 .4.如申請專利範圍第2項之數植處理器,其中分支經歷表 中的項目包括一個去階梯欄位、—個索引欄位、以$ 一 個提取偏移,索引欄位可用來選取—組 項目,指令提取位址的去階梯搁位會與一分支經= -17- 各紙張度逋用中國國家榇準(CNS ) A4規格(2ΐ〇χ297公董) ---^-------¢---.---ir------冰 (請先閔讀背齑之^-意事項存填寫本頁) Α8 BS C8 D8 申請專利範圍 項目的去階梯欄位相互比較,所有具備與指令提取位址 去階梯搁位同一個去階梯攔位的分支經歷表項目形成一 個組m’,如果該组m'空白,將不會爲指令區段指示任何 分支預測,如果該組m·包含一個單—項目,則會以該項 目來預測分支。 5.如::專利範圍第4項之數位處理器,其中如果該组爪, 包含多重嗔目,則會將指令提取偏移編碼至一個欄位, 該欄位具有-個與分支模式每個位元相對應的位元组, 琢分支模式代表了指令位置與提取偏移—致 偏移。 6‘如中請專利範圍帛5項之數位處理器’其中分支經歷表 項目所儲存的分支模式爲項目特定分支模式,該模:的 編碼万式係設定分支模式中每個位元的相對庳位元,以 及位元位置代表分支位址,此分支位址小於分支偏移所 代表的分支位址’該分支偏移代表了該项目的分支的分 支偏移。 7·如申請專利範圍第6項之數位處理器,其中數位處 爲超純量微處理器。 " (諳先閱讀背面之:义意事項再填寫本頁) • -I —1— ----- 裝-------- -T 輕濟部中央標隼局貞工消費合作社印製 I張 -紙 本 準 標 家 國 一國 一中 -用 一適
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US08/823,628 US5822576A (en) | 1997-03-26 | 1997-03-26 | Branch history table with branch pattern field |
Publications (1)
Publication Number | Publication Date |
---|---|
TW434511B true TW434511B (en) | 2001-05-16 |
Family
ID=25239276
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW086119317A TW434511B (en) | 1997-03-26 | 1997-12-19 | A digital processor having branch history table with branch pattern field |
Country Status (4)
Country | Link |
---|---|
US (1) | US5822576A (zh) |
KR (1) | KR100276138B1 (zh) |
CN (1) | CN1093658C (zh) |
TW (1) | TW434511B (zh) |
Families Citing this family (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH10333908A (ja) * | 1997-05-30 | 1998-12-18 | Mitsubishi Electric Corp | 分岐予測方法 |
US6385720B1 (en) * | 1997-07-14 | 2002-05-07 | Matsushita Electric Industrial Co., Ltd. | Branch prediction method and processor using origin information, relative position information and history information |
US7434036B1 (en) * | 2002-08-30 | 2008-10-07 | Verisilicon Holdings Co. Ltd. | System and method for executing software program instructions using a condition specified within a conditional execution instruction |
KR101076815B1 (ko) * | 2004-05-29 | 2011-10-25 | 삼성전자주식회사 | 분기 타겟 어드레스 캐쉬를 포함하는 캐쉬 시스템 |
DE102005037250A1 (de) * | 2005-08-08 | 2007-02-15 | Robert Bosch Gmbh | Verfahren und Vorrichtung zur Steuerung eines Speicherzugriffs bei einem Rechnersystem mit wenigstens zwei Ausführungseinheiten |
DE102005037248A1 (de) * | 2005-08-08 | 2007-02-15 | Robert Bosch Gmbh | Verfahren und Vorrichtung zur Steuerung eines Speicherzugriffs bei einem Rechnersystem mit wenigsterns zwei Ausführungseinheiten |
US7640400B2 (en) * | 2007-04-10 | 2009-12-29 | International Business Machines Corporation | Programmable data prefetching |
JP2008299795A (ja) * | 2007-06-04 | 2008-12-11 | Nec Electronics Corp | 分岐予測制御装置及びその方法 |
US9778934B2 (en) * | 2010-11-16 | 2017-10-03 | Advanced Micro Devices, Inc. | Power efficient pattern history table fetch in branch predictor |
US8886920B2 (en) * | 2011-05-13 | 2014-11-11 | Oracle International Corporation | Associating tag to branch instruction to access array storing predicted target addresses for page crossing targets for comparison with resolved address at execution stage |
US10007522B2 (en) * | 2014-05-20 | 2018-06-26 | Nxp Usa, Inc. | System and method for selectively allocating entries at a branch target buffer |
US9940262B2 (en) * | 2014-09-19 | 2018-04-10 | Apple Inc. | Immediate branch recode that handles aliasing |
US20170185402A1 (en) * | 2015-12-23 | 2017-06-29 | Intel Corporation | Instructions and logic for bit field address and insertion |
Family Cites Families (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US3559183A (en) * | 1968-02-29 | 1971-01-26 | Ibm | Instruction sequence control |
US4594659A (en) * | 1982-10-13 | 1986-06-10 | Honeywell Information Systems Inc. | Method and apparatus for prefetching instructions for a central execution pipeline unit |
GB8608494D0 (en) * | 1986-04-08 | 1986-05-14 | Davy Mckee Sheffield | Strip guiding for downcoilers |
US4894772A (en) * | 1987-07-31 | 1990-01-16 | Prime Computer, Inc. | Method and apparatus for qualifying branch cache entries |
US5093778A (en) * | 1990-02-26 | 1992-03-03 | Nexgen Microsystems | Integrated single structure branch prediction cache |
US5226130A (en) * | 1990-02-26 | 1993-07-06 | Nexgen Microsystems | Method and apparatus for store-into-instruction-stream detection and maintaining branch prediction cache consistency |
US5163140A (en) * | 1990-02-26 | 1992-11-10 | Nexgen Microsystems | Two-level branch prediction cache |
JPH0820950B2 (ja) * | 1990-10-09 | 1996-03-04 | インターナショナル・ビジネス・マシーンズ・コーポレイション | マルチ予測型分岐予測機構 |
US5394530A (en) * | 1991-03-15 | 1995-02-28 | Nec Corporation | Arrangement for predicting a branch target address in the second iteration of a short loop |
US5287467A (en) * | 1991-04-18 | 1994-02-15 | International Business Machines Corporation | Pipeline for removing and concurrently executing two or more branch instructions in synchronization with other instructions executing in the execution unit |
AU665368B2 (en) * | 1992-02-27 | 1996-01-04 | Samsung Electronics Co., Ltd. | CPU having pipelined instruction unit and effective address calculation unit with retained virtual address capability |
US5434985A (en) * | 1992-08-11 | 1995-07-18 | International Business Machines Corporation | Simultaneous prediction of multiple branches for superscalar processing |
US5367703A (en) * | 1993-01-08 | 1994-11-22 | International Business Machines Corporation | Method and system for enhanced branch history prediction accuracy in a superscalar processor system |
US5454117A (en) * | 1993-08-25 | 1995-09-26 | Nexgen, Inc. | Configurable branch prediction for a processor performing speculative execution |
US5479627A (en) * | 1993-09-08 | 1995-12-26 | Sun Microsystems, Inc. | Virtual address to physical address translation cache that supports multiple page sizes |
US5471597A (en) * | 1993-12-23 | 1995-11-28 | Unisys Corporation | System and method for executing branch instructions wherein branch target addresses are dynamically selectable under programmer control from writable branch address tables |
-
1997
- 1997-03-26 US US08/823,628 patent/US5822576A/en not_active Expired - Fee Related
- 1997-12-19 TW TW086119317A patent/TW434511B/zh not_active IP Right Cessation
- 1997-12-23 KR KR1019970072661A patent/KR100276138B1/ko not_active IP Right Cessation
-
1998
- 1998-02-25 CN CN98105331A patent/CN1093658C/zh not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
KR100276138B1 (ko) | 2000-12-15 |
US5822576A (en) | 1998-10-13 |
CN1093658C (zh) | 2002-10-30 |
KR19980079539A (ko) | 1998-11-25 |
CN1196522A (zh) | 1998-10-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US5515519A (en) | Data processor and method utilizing coded no-operation instructions | |
KR100212204B1 (ko) | 계산기 시스템 내부에서 명령을 처리하는 장치 | |
US5822778A (en) | Microprocessor and method of using a segment override prefix instruction field to expand the register file | |
US5826074A (en) | Extenstion of 32-bit architecture for 64-bit addressing with shared super-page register | |
TW434511B (en) | A digital processor having branch history table with branch pattern field | |
US7111126B2 (en) | Apparatus and method for loading data values | |
US4477872A (en) | Decode history table for conditional branch instructions | |
US5421022A (en) | Apparatus and method for speculatively executing instructions in a computer system | |
TW457426B (en) | Aligned instruction cache handling of instruction fetches across multiple predicted branch instructions | |
US5768574A (en) | Microprocessor using an instruction field to expand the condition flags and a computer system employing the microprocessor | |
US6351796B1 (en) | Methods and apparatus for increasing the efficiency of a higher level cache by selectively performing writes to the higher level cache | |
JP2744890B2 (ja) | ブランチ予測式データ処理装置および動作方法 | |
AU632558B2 (en) | Method and apparatus for controlling the conversion of virtual to physical memory addresses in a digital computer system | |
US5446849A (en) | Electronic computer which executes squash branching | |
JPH10198563A (ja) | マイクロプロセッサ内の動的にロード可能なパターン履歴表 | |
JP2006099800A (ja) | 先進のマイクロプロセッサにおけるスケジューリング強化方法および装置 | |
JP2007058875A (ja) | コンピュータシステムのためのプログラマブルなブランチ予測システムおよび方法 | |
US7200738B2 (en) | Reducing data hazards in pipelined processors to provide high processor utilization | |
US5790845A (en) | System with reservation instruction execution to store branch target address for use upon reaching the branch point | |
JPH06242951A (ja) | キャッシュメモリシステム | |
US7603545B2 (en) | Instruction control method and processor to process instructions by out-of-order processing using delay instructions for branching | |
US5680578A (en) | Microprocessor using an instruction field to specify expanded functionality and a computer system employing same | |
US5819080A (en) | Microprocessor using an instruction field to specify condition flags for use with branch instructions and a computer system employing the microprocessor | |
EP0736830B1 (en) | Method and apparatus for reconstructing the address of the next instruction to be completed in a pipelined processor | |
KR101076815B1 (ko) | 분기 타겟 어드레스 캐쉬를 포함하는 캐쉬 시스템 |
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 |