TW201013524A - Multi-mode register file for use in branch prediction - Google Patents

Multi-mode register file for use in branch prediction Download PDF

Info

Publication number
TW201013524A
TW201013524A TW098116742A TW98116742A TW201013524A TW 201013524 A TW201013524 A TW 201013524A TW 098116742 A TW098116742 A TW 098116742A TW 98116742 A TW98116742 A TW 98116742A TW 201013524 A TW201013524 A TW 201013524A
Authority
TW
Taiwan
Prior art keywords
mode
register
file
branch
scratchpad
Prior art date
Application number
TW098116742A
Other languages
English (en)
Inventor
Lucian Codrescu
Original Assignee
Qualcomm Inc
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 Qualcomm Inc filed Critical Qualcomm Inc
Publication of TW201013524A publication Critical patent/TW201013524A/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
    • 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/3836Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution
    • G06F9/3851Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution from multiple instruction streams, e.g. multistreaming
    • 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
    • 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/30098Register arrangements
    • G06F9/30101Special purpose registers
    • 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/30098Register arrangements
    • G06F9/3012Organisation of register space, e.g. banked or distributed register file
    • G06F9/30123Organisation of register space, e.g. banked or distributed register file according to context, e.g. thread buffers
    • 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/30181Instruction operation extension or modification
    • G06F9/30189Instruction operation extension or modification according to execution mode, e.g. mode flag
    • 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
    • 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
    • G06F9/3806Instruction prefetching for branches, e.g. hedging, branch folding using address prediction, e.g. return stack, branch history buffer
    • 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/3836Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution
    • G06F9/3842Speculative instruction execution
    • G06F9/3844Speculative 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)
  • Multimedia (AREA)
  • Advance Control (AREA)
  • Executing Machine-Instructions (AREA)

Description

201013524 六、發明說明: 【發明所屬之技術領域】 本文中所揭示之發明概令的客細 楸必的多個實施例大體而言係關於 資料處理系統的領域。更特定言之,本文中所揭示之發明 概念的多個實施例係關於多模式暫存器檔案。 【先前技術】 ' 為在處理器中處理指令,處理之諸階段可包括提取(用 於獲得該指令)、解碼(用於將該指令分解成運算及運算 元,例如,運算元A加運算元⑴、自暫存器㈣㈣運算 兀、執行該指令及回寫結果(例如,運算元八加運算元B之 和在管線化之前,處理器在進行至下—指令之前將執 行一指令的所有階段。為提高計算速度,在處理器中實施 管線以便分開處理-指令之不同階段。因&,可執行處理 -指令之―階段,同時在同—時脈循環期間執行處理一後 續指令的另一階段。舉例而言,當在第一時脈循環期間對 第一指令解碼時,可在第一時脈循環期間提取第二指令。 接著,當在第二時脈循環期間對於第一指令正自暫存=檔 案擁取運算元時,在第二時脈循環期間可對第二指令解碼 且可提取第三指令。經由管線化而進行之多個指令之同時 處理可提高處理器之計算速度。 分支指令可指示處理器在程式中之不同位置處開始計算 一指令。舉例而言’為分支指令之第五指令可使處理器跳 越以開始處理第二十指令。然而’使用管線化’處理器可 在執行該分支指令之前開始擷取後續指令(例如,第六指 140334.doc 201013524 令、第七指令及第八指令)並對其解碼。因此,若採用一 刀支,則移除正在處理中之指令,且處理經分支化之新指 令。處理不應處理之指令耗時且因此影響處理速度。此 外,誤推測之指令亦浪費能力。 β因此’處理器可包括分支預測邏輯以便使處理器預測應 :取分支指令之後的哪一指令(亦即,判定是否應採用一 分支)。該分支預測邏輯減少處理器由於遺漏之分支而錯 誤地提取指令的次數。分支㈣邏輯可包括—分支歷史表 及/或一分支目標快取。該分支歷史表儲存待預測之每— 刀支&令之分支歷史的某—變化。分支歷史為對於該分支 指令之每-執行採时支還是不㈣分支的記錄。該分支 歷史表可為2 X η位元表’其中_中之每—者對應於程式 之不同刀支扣令,且η列中之每—者的二個位元由處理器 用以預測對於對應於該列之分支指令是否㈣分支。更多 列意謂可預測更多分支指令。二個位元可充當計數器,其 中等於Μ可意謂預測採用分支,W可意謂預測不採用分 支’幻-0或(Μ可意謂不確定。藉由觀測待預測之每一分 支指令的分支歷史來訓練位元。若採用一分支,則使該計 數器遞增(直至達到Μ為止)。若不採賴分支,則使該計 數器遞減(直至達到〇-〇為止)。 該分支目標快取儲存待預測之每—分支指令之目的地 在一實施例中’該分支目標快取可儲存數目等於該分支目 標快取之列或暫存器之數目(例如,每分支目標一列或暫 存器)的分支指令的目的地。該分支目標快取可儲存由分 140334.doc 201013524 支對於支指令而指向之指令的位址。對於在處理器中包 括分支歷史表及/或分支目標快取的一問題在於,該分支 歷史表及該分支目標快取為額外邏輯,因此增大處理器之 區域及處理器之電力消耗。 【發明内容】 在一實施例中,描述一種多模式暫存器檔案。該多模式 暫存器播案在第-模式期間包括—運算元。該多模式暫存 器槽案在第二模式中進-步包括替代該運算元的辅助資 訊。 本文中所揭示之一或多個實施例的優點可包括對用於包 括分支預測邏輯之電路的最小大小增加及電力節省。 提及此說明性實施例並非為了限制或界定本文中所揭示 之發明概念,而是為了提供輔助理解該等概念之實例。在 審閱整個中請案之後,本揭示案之其他態樣、優點及特徵 將變得顯而易見,整個申請案包括以下章節:[圖式簡單 說明]、[實施方式]及[申請專利範圍]。 【實施方式】 當參看附圖閱讀以下[實施方式]時,會更好理解本文中 所揭示之當前發明概念之此等及其他特徵、態樣及優點。 遍及[實施方式],出於解釋之目的,闡述眾多特定細節 以便提供對本文中所揭示之發明概念的透徹理解。然而, 對於熟習此項技術者將顯而易見的是,可在不具有此等特 定細節中之一些的情況下實踐本文中所揭示之發明概念。 在其他情況下,以方塊圖形式展示熟知結構及裝置以避免 140334.doc 201013524 混淆本文中所揭示之發明概念的基本原理。' 本文中所揭示之發明概念的多個實施例係 預測的多模式暫存II媸安 全補 用於刀支 盆…* 一處器之每-執行緒可且有 、棺案。舉例而言,六執行緒處理器可具有> 。在—執行緒之執行期間’-暫存器構案儲 子已由“處理H收回以用於該執行緒的運算元 言,對於指令/運算厂運算元A 歹 案可儲存和以供稍_取。 &」’該暫存器標 而ί多=架構中,並非所有執行緒可同時執行。舉例 而曰訊檔案可使一執行緒運算, =,,在一實施例中,與非作用中執行=關 輔:存器標案可用以儲存不對應於各別作用中執行緒之 ::資訊’諸如,分支預測資訊。該分支預測資訊可由處 理器用以預測指令之作用中垂、、今&八± 的分支。因此,多執行緒 架:之暫存器播案可處於第一模式中,從而健存其各別執 仃緒之運算元,或處於第二模式中’從而 測資訊的輔助資訊。 刀叉預 分支預測資訊可包括一分支歷史表及/或—分支目標快 取。當多模式暫存器㈣處於第二模式中且儲存分支預測 資訊時’該暫存器㈣對於作用中執行緒可儲存分支歷史 表及分支目標快取中之一者或兩者。因此,儲存於該暫存 器檔案之該(等)表用以預測不與該暫存器檔案相關聯之該 等作用中執行緒中的分支一旦對應於第二模式中之暫存 器檔案的執行緒應再次變成作用中的(亦即,執行緒之指 140334.doc 201013524 第令一應二處理器執行)’該暫存器檀案即自第二模式切換至 :錯存新近作用中執行緒的運算s。在—實施 =案;一暫存器檔案切換至第-模式時,儲存於該暫存 非作用中1任何 :助資訊可傳送至多執行緒架構中之當前 中 I订緒的一或多個暫存器播案。在另—實施例 b丢失儲存於該暫存器權案中之輔助資訊中的全部 分。雖然分支預測資訊之去失可能使處理器重新編 '77支預測資訊’但當處理器重新編譯該資訊時,分支預 測之準確性得以確保。 文頂 右多執打緒架構之所有執行緒為作时的,料有暫存 器槽案處於餘存其各別執行緒之運算元的第—模式中。因 此’因為無暫存諸案處於第二模式中以料分支預判資 訊’所以可能不執行分支制。另—方面,多個執行緒可 為非仙巾的,且可能並㈣要非㈣巾執行绪之所有暫 存器播案來储存分支預測資訊。因此,該處理器可包括用 於優先排序哪些暫存器檔案應處於第二模式中(例如,用 於儲存分支預測資訊)的邏輯。此外,該處理器可包括用 於判定哪些執行緒應執行指令串流及哪些執行緒應為非作 用中的邏輯,因此在多個執行緒間對指令執行優先排序。 圖1至圖4之示意圖說明用於實施分支預測之處理器内之 例示性電路的實施例。圖丨之示意圖說明用於分支預測之 處理器100内的例示性電路。圖2之示意圖說明圖1中之示 意圖的例示性暫存諸案單㈣2,纟中暫存器㈣單^ 102包括多個暫存器檔案。圖3之示意圖說明包括多個暫存 140334.doc 201013524 器播案及其各別暫存器權案暫. 一 令存盗的圖1中之示意圖之例 示性暫存器檔案單元102。圖 i不意圖說明用於第一模式 中或用於第二模式中的圖3中暫 心言存器檔案單元102之暫存 器檔案的例示性分離。 處理器HK)(圖υ可包括用於預測分支之分支預測邏輯, 其中分支預測資訊Π)4儲存於暫存器㈣單元M2中該邏 輯可為除包括於處理器100中之其他運算電路之外的電 路。如先前所陳述,分支預測資訊1〇4可為分支歷史表及 分支目標快取中之•者或兩者。在另_實施例中,分支預 測資訊可為允許處理器試圖預測分支之任何資訊。在圖i 中,分支預測資訊1G4為分支目標快取。暫存器標案單元 包括:一讀取琿106,其用於自暫存器標案單元ι〇2讀 取資料;一寫入資料埠108,其用於將資料寫入至暫存器 檔案單元102 ;及一位址匯流排丨1〇,其用於識別待存取 (讀取或寫入)之暫存器擋案單元1〇2之特定位址。如所說 明’暫存器檔案單元102可耦接至控制邏輯丨12。 在一實施例中’控制邏輯112判定在處理來自指令管線 114之指令的過程中是否遭遇到分支指令及對於遭遇到之 分支指令是否應預測一分支。在一實施例中,在管線中之 指令的解碼期間判定分支指令。在判定是否遭遇到分支之 過程中’控制邏輯112可判定遭遇到之指令的位址是否與 分支指令之已知位址相匹配。在一實施例中,可自指令之 程式計數器11 6採集遭遇到之指令的位址。可自分支預測 資訊104或自獨立清單存取已知分支指令之位址。若遭遇 140334.doc 201013524 到之扣7的位址與分支指令之位址相匹配,則控制邏輯 112假設遭遇到之指令為分支指令。 處理器1〇〇可接著藉由存取分支歷史資訊1〇4來判定分支 之目的地。在一實施例中,處理器1〇〇對於待於位址匯流 排U〇上發送之分支指令自程式計數器116產生-位址,以 對於預測資訊118而存取暫存器㈣單元1()2。因為分支預 測資訊104包括分支存取表(其包括分支之目標位址),所以 預測資訊118包括遭遇到之分支指令的目標位址。若應採 用該分支’則在採用該分支之過程中使用來自預測資訊 11 8之目標位址。 多工器120可判定是否應採用該分支,其中對多工器 之控制輸入可為分支歷史資訊。對多工器12〇之一輸入可 為來自預測資訊118之目標位址。在一實施例中,進入至 多工器中之另輸入為邏輯零(例如,接地),以使得多工 器在應不採用該分支之情況下將邏輯零輸出至分支預測 124上。在另一實施例中,多工器12〇經組態以在應不採用 該分支之情況下將高阻抗信號輸出至分支預測〗2 4上。 在圖1之不意圖中,分支歷史資訊可儲存於程式計數器 116中’而f,遭遇到之分支的二位元分支歷史(如先 前對於分支歷史表所描述)可儲存於程式計數器116中。因 此’該電路可將來自程式計數器116之&支歷 <資訊輸出 至控制器12 2上以便控制多工器丨2 〇將是否應採用該分支輸 出至分支預測124上。舉例而言,若程式計數器令之分支 歷史之兩個位元為1-1,則控制器122包括用於切換多工器 I40334.doc -9· 201013524 120之一信號,以便將關於採用該分支之預測輪出至分支 預測124上。 在一實施例中,若將採用一分支(例如’分支歷史等於 卜1),則目標位址發送至分支預測124以便將其反饋至控制 邏輯112。控制邏輯112接著根據該信號判定,該分支應被 採用且使串流跳越至位於目標位址處之指令。在另一實施 例中,邏輯一可經由分支預測124發送至控制邏輯i 12以便 使控制邏輯112判定應採用一分支。若不應採用一分支(例 如,分支歷史等於〇-〇),則可由控制邏輯112經由分支預測 124接收邏輯零或高阻抗。控制邏輯接著根據該信號判 定,在不採用該分支之情況下,串流應前進至處理分支指 令之後的指令。 在另實施例中且如先前所陳述,分支歷史可作為分支 歷史表儲存於暫存器檔案單元102中。因而,暫存器檔案 單元102中之分支歷史表可視情況自讀取資料埠1⑽輸出至 控制器122上以便控制多工器12()的輸出。在—實施例中, 支才曰7之刀支歷史及目標位址可儲存於一暫存器中因 此組合分支歷史表資訊及分支目標快取資訊。 參看圖2,暫存器播案單元1〇2可包括一儲存區2〇2,該 儲存區202包括多個暫存器㈣204至214。在所說明之實 施”中’說明六個暫存器檔案’ λ中該處理器可為六執行 緒架構。在其他實施例中暫存器檔案之數目可為大於一 之任一數目(例如’二),其中該等暫存器播案中之至少-者可處於第-模式中且該等暫存器槽案中之至少一者可處 140334.doc 201013524 於第二模式+。暫存器播案204至214中之每一者與六執行 緒架構處理器之各別執行緒相關聯。舉例而言,暫存器仃 案1 204可與處理器之第一執行緒相關聯。暫存器樓案^ 至214可經由匯流排216而互連。因此,在第二模式中之暫 存器檔案的分支預測資訊可在第二模式中之暫存器槽案間 劃分。在另一實施例中,暫存器標案之一部分可為單—模 式(僅儲存運算元),而剩餘暫存器㈣為多模式暫存器槽 案。 再次參看圖2,儲存區202連接至提取單元218及回寫單 元220。提取單元218將位址222發送至儲存區2〇2以便存取 並提取暫存器槽案204至214中之一者的暫存器值。經存取 之值發送至暫存器檀案資料介面224,其自暫存器構案單 W02輸出該值。回寫單元22〇發送應寫入並儲存資料之儲 存區之暫存器的位址222。在一實施例中,提取單元 218及回寫單元22G可存取來自/去往處於第—模式中之暫 存器檔案的運算元及來自/去往處於第二模式中之暫存器 檔案的輔助資訊(例如,分支預測資訊)。 參看圖3’暫存器檀案單元1〇2可進一步包括暫存器槽案 暫存器302至312(例如,於儲存區繼中在—實施例中, 每一暫存器播案暫存器3()2至312與暫存器㈣綱至214相 關聯。舉例而言,RF1暫存器3〇2與暫存器槽案ι 2〇4相關 聯’㈣暫存器3〇4與暫存器檔案2 2〇6相關聯,以此類 推。暫存器槽案暫存器3〇2至312可包括關於其各別暫存器 204至214之資訊,包括關於何時應將暫存器切換至第二模 140334.doc 201013524 式之優先權資訊、關於暫存器何時應處於第—模式中的優 先權資訊或關於相應暫存器與哪一執行緒相關聯的資訊。 舉例而言,RF1暫存器302可包括以下資訊:暫存器播案! 204與執行緒〇相關聯,暫存器檔案1 2〇4為應處於第一模 式中以便儲存運算元的第一暫存器及/或暫存器檔案1 2〇4 為應處於第二模式中以儲存辅助資訊的最後一暫存器。在 - 另一實施例中,暫存器檔案暫存器可包括關於相應暫存器 . 處於第一模式還是第二模式中的資訊。 在一實施例中,因為每一暫存器2〇4至214之暫存器檔案 _ 暫存器302至312包括關於各別暫存器檔案何時應處於第一 模式中及各別暫存器檔案何時應切換至第二模式之優先權 的資訊,所以處理器100可使用該資訊以便控制哪些暫存 器檔案處於第一模式中及哪些暫存器檔案處於第二模式 中。舉例而言,處理器可藉由經由匯流排214來控制暫存 器槽案暫存器3〇2至312而將暫存器播案自第—模式切換至 第二模式/自第二模式切換至第—模式。 圖4之不意圖說明一實例,其中暫存器檔案204至208處 _ 於第一模式中且暫存器檔案21〇至214處於第二模式中。如 先前所描述,暫存器槽案暫存器302至3 12可包括暫存器標* 案204至214何時應處於第—模式中之優先權資訊。舉例* . 言,該優先權資訊可為:暫存器檔案i 204為應處於第— 模式中之第—暫存器權案(亦即,其相關聯執行緒為用於 才曰v之執订的第一執行緒)’暫存器標案2施為應處於第 模式中之第一暫存器標案(亦即,其相關聯執行緒為用 140334.doc -12- 201013524 ί = 3行的第二執行緒),暫存器構案3 208為應處於 用:=第三暫存器播案(亦即,其相關聯執行緒為 = 行的第三執行緒)’暫存器權案…為應處 為詩^ 四暫存器棺案(亦即’其相關聯執行緒 處於第日ΐΐ執行的第四執行緒),暫存器槽案5 212為應 處於第-模式中之第五暫存器樓案(亦即, 緒為用於指令之執行的第五執行緒、 為應處於第-模式中之第六且最後—暫案?14
Ml is μ m λι. ^ 节存器槽案(亦即, 此,若五個Γ緒為用於指令之執行的第六執行緒)。因 處於笛—緒應執行指令,則暫存器播案204至212將 暫存=6?(例如’儲存其各別執行緒之運算元),且 皙存益檔案6 214不需處於第一模式中。 /如先前所描述,暫存器播案暫存器302至312可包括 舉子=!2,°4至214何時應處於第二模式中之優先權資訊。 於第-二:優:權資訊可為:暫存器槽案1 2°4為應處 模式中之第六且最後一暫存器槽案(例如, =中執行緒之分支預測資訊),暫存器槽案22。6為應 二牵3 一模式中之第五且倒數第二的暫存器檔案,暫存器 =1 208為應處於第二模式中之第四暫存器檀案,暫存 盗槽案4 21〇為應處於第二模式中之第三暫存 存器槽案5 212為應處於第二模式中之第二且緊鄰第1 :存器標案,且暫存器檔案6214為應處於第 ^一暫存器播案。因此,若兩個執行緒正執行指令,則暫 存器槽案208至21何處於第:模式中。若兩個暫存器播案 140334.doc -J3- 201013524 應處於第二模式中,則暫存 节仔器檑案212至214處於第二模式 。在—實施射’暫存H㈣^處於第—模式中(亦 即,各別執行緒為作用中的/正執行指令)相較於暫存器播 案是否應切換至第二模式具有優先權。 再次參看圖4,在該實例中,三個執行緒應為作用中 的’且三個暫存器標案應處於第二模式中。因此,暫存器 槽案2〇4至⑽處於第—模式中,進而㈣作用中執行緒之 運算兀。暫存器槽案2·2Μ處於第二模式中以儲存(例 如)該三個作用令執行緒之分支預測資訊。在一實施例 中,該分支預測資訊可在第二模式中在整個儲存區術上 劃分或展開。因此’當更多暫存器槽案綱至214處於第二 模式中時,存在更多儲存區用於儲存分支預測資訊,因此 允許分支歷史表及分支目標快取更大(例如,每一表中有 更多列)以便允許預測更多分支指令。 圖5為說明用於在圖1至圖3之一多模式暫存器檔案中儲 存資訊之例示性方法500的流程圖。在5〇2處開始,處理器 100判定多模式暫存器檔案(例如,圖3中之暫存器檔案i 2〇4)是否處於第一模式中。在判定暫存器檔案i 2〇4是否處 於第一模式中之一實施例中,處理器1〇〇存取RF1暫存器 3 02 ’該RF1暫存器302與暫存器檔案1 2〇4相關聯且可包括 關於暫存器檔案1 204處於哪一模式的資訊。在另一實施 例中,處理器100可檢查RF1暫存器302之優先權資訊及作 用中執行緒之數目以判定暫存器檔案1 204是否處於第一 模式中。在另一實施例中,處理器1〇〇可判定暫存器檔案j J40334.doc -14- 201013524 執行緒〇)且判定該各別執行緒是 =為作用中的。若暫存器播案12嘴於第—模式中,則 存器檔案1 204之各別執行緒為作用中的,且暫存器檔 案i 204可在5〇4中自回寫單元22〇(圖3)接收運算元。j 收到該運算元後,該暫存器播案可在由回寫單元220識別 之暫存器位置中儲存該運算元(5〇6)。 若處理器100在502中判定暫存器槽案不處於第一模式 :,則處理器HH)可在5〇8中判定多模式暫存器檀案!綱 是否處於第二模式中。名—杳^ ^ τ在實施例中,處理器100可假設 在暫存器槽案"04不處於第一模式中之情況下,暫存器 播案1 204處於第二模式φ。. 禾稞式Τ在另一實施例中,暫存器檔 案1 204可為非作用中的且因此不處於第一模式或第二模 式中。因此’若處理器⑽判定暫存器槽案!綱不處於第 二模式中,則暫存器檔案! 204既不處於第—模式中亦不 處於第二模式中,且當時可能不會正接受資訊。若多模式 暫存器檔案處於第二模式中,則暫存器檔案j 2〇4在51〇中 自回寫單元220(圖3)接收輔助資訊(例如,分支預測資 訊)。在接收到該輔助資訊後,暫存器檔案i 2〇4可在由回 寫單元220識別之暫存器位置中儲存該輔助資訊(5〇6)。 圖6之流程圖說明用於視圖1至圖3中之暫存器權案單元 1 〇2之複數個多模式暫存器檔案2〇4至214中之每一者的模 式而在s玄專多模式暫存器播案2〇4至214中儲存資訊的例示 性方法600。在602處開始,處理器100判定暫存器檔案單 元102之哪些多模式暫存器檔案2〇4至214處於第一模式 140334.doc 15 201013524 中。在一實施例中,處理器ι〇〇判定哪些執行緒為作用中 的且自暫存器檔案暫存器3〇2至312判定哪些暫存 2〇4至214與作用中執行緒相關聯。在另—實施例 器100可自相關聯之暫在 暂存器檔案暫存态讀取暫存器檔案是 否處於第一模式中的資訊。 在參j疋那些暫存器樓案204至214處於第一模式中後處 理器100可在6G4中判定哪些暫存器㈣2()4至214處於第二 模式中。在—實施財,處理器1⑽可讀取不處於第-模 式中之暫存器權案204至214的各別暫存器槽案暫存器3〇2 至312以判定一暫存器檔案是否處於第二模式中。在另一 實施例中,處理㈣峨設不處於第—模式中之所有暫存 器204至214處於第二模式中。在另—實施例中,處理器 ⑽判疋應處於第二模式中之暫存器播案綱至川的數 目,且自暫存器槽案204至214之各別暫存器槽案暫存器 302至3 12讀取第二模式的優先權資訊。 進行至606,處理器100將運算元發送至處於第-模式中 之暫存器播案2〇4至214。舉例而言,若執行緒〇包括由經 執行之^ 7引起的if算% ’貞彳處理器〗⑽將該運算元發送 至暫存器槽案i綱⑽)以儲存。運算元接著在帽中由處 於第-模式中之接收暫存器檔案2〇4至214儲存。 進行至610’處理器〗00將輔助資訊發送至處於第二模式 中之暫存器播案綱至214。舉例而言,處理器!⑽可發送 最近執行之分支指令的分支預測資訊,其可稍後用於預判 相同分支。在-實施例中,處理器1〇〇判定處於第二模式 I40334.doc -J6- 201013524 中之哪一暫存器檔案204至214應儲存哪一段輔助資訊。舉 例而言,再次參看圖4,處理器1〇〇可判定,暫存器檔案 210至212應儲存分支目標快取且暫存器檔案6 214應儲存 執订指令串流的分支歷史表。再次參看圖6,輔助資訊接 著在612中由處於第二模式中之接收暫存器檔案204至214 儲存。 包括上文所描述特徵之實例裝置 夕模式暫存器槽案可包括於諸如數位信號處理器的包括 暫存器檔案之任何處理器中。圖7至圖丨〗之總圖說明可併 有用於在第一模式中儲存(例如)運算元及在第二模式中儲 存分支預測資訊以便用於預測執行分支指令之分支的多模 式暫存器檔案的實例裝置。 圖7為說明攜帶型通信裝置7〇〇之例示性實施例的圖。如 在圖7之總圖中所說明,攜帶型通信裝置包括一晶片上系 統702該a曰片上系統702包括一數位信號處理器 φ (DSP)704。圖7之總圖亦展示一耦接至數位信號處理器704 及顯示器708之顯示器控制器7〇6。此外,一輸入裝置71〇 耦接至DSP 704。如所展示,一記憶體712耦接至Dsp 704。另外,一編碼器/解碼器(編碼解碼器)714可耦接至 DSP 7〇4。一揚聲器716及一麥克風718可耦接至編碼解碼 器 714。 圖7之總圖進一步說明耦接至數位信號處理器7〇4及無線 天線722之無線控制器720。在一特定實施例中,電源724 搞接至βει片上系統702。此外,在一特定實施例中,如圖7 140334.doc -17- 201013524 中所說明,顯示器708、輸入 風718、盔镱長錄79, 、 、揚聲器716、麥克 邱铁 電源724處於晶片上系統702之外 和然而,每—者均㈣至晶片上系統繼之_植件。 ^特定實施例中,DSP綱包括—或多個多模式暫存 案I26以便在暫存器㈣不處於第—模式中(不儲存作 用中執仃緒之運算凡)時儲存(例如)分支預測資訊。舉例而 言,當由處理器704遭遇到分支指令且多模式暫存器播案 726正餘存分支預測資訊時,處理器取接著將該分支預測 資訊用於多模式暫存器槽案726中以判定該分支應被預測 為採用還是不採用。處理器7〇4接著開始處理來自分支預 測之下一個經預測的指令。 圖8為說明蜂巢式電話8〇〇之例示性實施例的圖。如所展 不’蜂巢式電話800包括一晶片上系統8〇2 ’該晶片上系統 802包括耦接在一起之一數位基頻處理器8〇4及一類比基頻 處理器806。在一特定實施例中,數位基頻處理器8〇4為數 位信號處理器。如在圖8之總圖中所說明,一顯示器控制 器808及一觸控螢幕控制器81〇耦接至數位基頻處理器 804。再者’處於晶片上系統8〇2外部之觸控螢幕顯示器 812耦接至顯示器控制器808及觸控螢幕控制器81〇。 圖8之總圖進一步說明一視訊編碼器814(例如,相位交 替線(PAL)編碼器、連續色彩記憶(secAM)編碼器或全國 電視系統委員會(NTSC)編碼器)耦接至數位基頻處理器 804。另外’ 一視訊放大器816耦接至視訊編碼器814及觸 控螢幕顯示器812。再者’一視訊埠818耦接至視訊放大器 140334.doc • 18- 201013524 8 16。如在圖8之總圖中所描繪,一通用串列匯流排(USB) 控制器820耦接至數位基頻處理器804。再者,一USB埠 822耦接至USB控制器820。一記憶體824及一用戶識別模 組(SIM)卡826亦可耦接至數位基頻處理器804。另外,如 在圖8之總圖中所展示,數位相機828可耦接至數位基頻處 理器804。在一例示性實施例中,數位相機828為電荷耦合 裝置(CCD)相機或互補金屬氧化物半導體(CMOS)相機。 如在圖8之總圖中進一步說明,一立體聲音訊編碼解碼 器830可耦接至類比基頻處理器806。此外,一音訊放大器 832可耦接至立體聲音訊編碼解碼器830。在一例示性實施 例中,一第一立體聲揚聲器834及一第二立體聲揚聲器836 耦接至音訊放大器832。一麥克風放大器838亦可耦接至立 體聲音訊編碼解碼器830。另外,一麥克風840可耦接至麥 克風放大器838。在一特定實施例中,一調頻(FM)無線電 調諧器842可耦接至立體聲音訊編碼解碼器830。再者,一 FM天線844耦接至FM無線電調諧器842。另外,立體聲耳 機846可耦接至立體聲音訊編碼解碼器830。 圖8之總圖進一步說明一射頻(RF)收發器848可耦接至類 比基頻處理器806。一 RF開關850可耦接至RF收發器848及 一 RF天線852。一小鍵盤854可耦接至類比基頻處理器 806。另外,一振動器裝置858可耦接至類比基頻處理器 806。圖8之總圖亦展示一電源860可耦接至晶片上系統 802。在一特定實施例中,電源860為將電力提供至蜂巢式 電話800之各種組件的直流(DC)電源。另外,在一特定實 140334.doc •19· 201013524 施例中,電源為可再充電DC電池或DC電源,該DC電源係 自一耦接至AC電力源之交流(AC)至DC變壓器分支。 如在圖8之總圖中所描繪,觸控螢幕顯示器812、視訊埠 818、USB埠822、相機828、第一立體聲揚聲器834、第二 立體聲揚聲器836、麥克風840、FM天線844、立體聲耳機 846、RF開關850、RF天線852、小鍵盤854 '振動器858及 電源860可處於晶片上系統802外部。在一特定實施例中, - 數位基頻處理器804可包括一或多個多模式暫存器檔案862 以便在暫存器檔案862不處於第一模式中(不儲存作用中執 Ο 行緒之運算元)時儲存(例如)分支預測資訊。 圖9為說明無線網際網路協定(IP)電話900之例示性實施 例的圖。如所展示,無線IP電話900包括一晶片上系統 902,該晶片上系統902包括一數位信號處理器(DSP)904。 一顯示器控制器906可耦接至DSP 904且一顯示器908耦接 至該顯示器控制器906。在一例示性實施例中,顯示器908 為液晶顯示器(LCD)。圖9進一步展示一小鍵盤910可耦接 至 DSP 904。 w 一快閃記憶體912可耦接至DSP 904。一同步動態隨機存 取記憶體(SDRAM)914、一靜態隨機存取記憶體(SRAM) ' 916及一電可抹除可程式化唯讀記憶體(EEPROM)918亦可 _ 耦接至DSP 904。圖9之總圖亦展示一發光二極體(LED)920 可耦接至DSP 904。另外,在一特定實施例中,一語音編 碼解碼器922可耦接至DSP 904。一放大器924可耦接至語 音編碼解碼器922且一單聲道揚聲器926可耦接至該放大器 140334.doc -20- 201013524 924。圖9之總圖進一步說明一耦接至語音編碼解碼器922 之單聲道頭戴耳機928。在一特定實施例中,單聲道頭戴 耳機928包括一麥克風。 一無線區域網路(WLAN)基頻處理器930可耦接至DSP 904。一 RF收發器932可耦接至WLAN基頻處理器930且一 RF天線934可耦接至該RF收發器932。在一特定實拖例 中,一藍芽控制器936亦可耦接至DSP 9〇4且一藍芽天線 938可耦接至該控制器936。圖9之總圖亦展示一 USB埠940 亦可耦接至DSP 904。此外,一電源942耦接至晶片上系統 902且將電力提供至無線IP電話900之各種組件。 如在圖9之總圖中所指示,顯示器908、小鍵盤910、 LED 920、單聲道揚聲器926、單聲道頭戴耳機928、RF天 線934、藍芽天線93 8、USB埠940及電源942可處於晶片上 系統902外部且耦接至晶片上系統902之一或多個組件。在 一特定實施例中,DSP 904可包括一或多個多模式暫存器 檔案960以便在暫存器檔案960不處於第一模式中(不儲存 作用中執行緒之運算元)時儲存(例如)分支預測資訊。 圖10為說明攜帶型數位助理(PDA)IOOO之例示性實施例 的圖。如所展示,PDA 1000包括一晶片上系統1002,該晶 片上系統1002包括一數位信號處理器(DSP)l004。一觸控 螢幕控制器1006及一顯示器控制器1〇〇8耦接至DSP 1004。 另外,一觸控螢幕顯示器1010耦接至觸控螢幕控制器1006 且耦接至顯示器控制器1008。圖10之總圖亦指示一小鍵盤 1012可耦接至DSP 1004。 140334.doc -21 - 201013524 在一特定實施例中’一立體聲音訊編碼解碼器1026可耦 接至DSP 1004。一第一立體聲放大器1〇28可耦接至立體聲 音訊編碼解碼器102 6且一第一立體聲揚聲器1〇3〇可搞接至 該第一立體聲放大器1028。另外,一麥克風放大器1〇32可 耦接至立體聲音訊編碼解碼器1026且一麥克風1〇34可耗接 至該麥克風放大器1032。圖1〇之總圖進一步展示一第二立 體聲放大器103 6可耦接至立趙聲音訊編碼解碼器1〇2 6且一 第一立體聲揚聲器1〇38可耦接至該第二立體聲放大器 1036。在一特定實施例中’立體聲耳機1〇4〇亦可耦接至立 體聲音訊編碼解碼器1026。 圖10之總圖亦說明一 802.11控制器1042可搞接至DSP 1004且一 802.1 1天線1044可轉接至該802.11控制器1042。 另外,一藍芽控制器1046可耦接至DSP 1004且一藍芽天線 1048可柄接至該藍穿控制器1046。一 USB控制器1050可輕 接至DSP 10〇4且一 USB埠1〇52可耦接至該USB控制器 1050。另外’一智慧卡1054(例如,多媒體卡(MMC)或安 全數位卡(SD))可搞接至DSP 1004。另外,一電源1056可 耦接至晶片上系統1002且可將電力提供至pda 1000之各種 組件。 如在圖10之總圖中所指示,顯示器1〇1〇、小鍵盤1〇丨2、 IrDA谭1022、數位相機1024、第一立體聲揚聲器1〇3〇、麥 克風1034、第二立體聲揚聲器1〇38、立體聲耳機1040、 802.1 1天線1044、藍芽天線1〇48、USB埠1052及電源1056 可處於晶片上系統1002外部且耦接至該晶片上系統上之一 140334.doc -22- 201013524 或多個組件。在—特定實施例中,DSP 1_可包括一或多 個多模式暫存器槽案_以便在暫存器槽案編不處於第 模式中(不儲存作用中執行緒之運算元)時儲存⑼如 支預測資訊。
圖叫^兒明一音訊樓案播放器(例如,MP3播放器)1100 之例示性實施例的圖。如所展示,音訊播案播放器測包 括阳片上系統1102,該晶片上系統1102包括-數位信號 處理器(DSP)1104。—顯示器控制H 1106可輕接至DSP n〇4且-顯示器1108耦接至該顯示器控制器11〇6。在一例 示性實施例中,顯示器11()8為液晶顯示器(LCD)。一小鍵 盤1110可耦接至DSP 1104。 如在圖11之總圖中進一步描繪,一快閃記憶體1112及一 唯讀記憶體(ROM)1114可耦接至DSP 11〇4。另外,在一特 定實施例中,音訊編碼解碼器1116可耦接至Dsp ιι〇4。一 放大器1118可耦接至音訊編碼解碼器1116且一單聲道揚聲 器1120可耦接至該放大器1118。圖u之總圖進一步指示一 麥克風輸入II22及一立體聲輸入UN亦可耦接至音訊編碼 解碼器1116。在一特定實施例中,立體聲耳機1126亦可耦 接至音訊編碼解碼器1116。 一 USB埠1128及一智慧卡ι130可耦接至dsp 11〇4。另 外’ 一電源1132可叙接至晶片上系統丨丨〇2且可將電力提供 至音sfl標案播放器11〇〇之各種組件。 如在圖11之總圖中所指示,顯示器1108、小鍵盤i丨i〇、 單聲道揚聲器1120、麥克風輸入1122、立體聲輸入1124、 140334.doc •23· 201013524 立體聲耳機1126、聰埠1128及電源1132處於晶片上系統 ⑽外部且耗接至晶片上系統1102上之一或多個組件。'在 -特定實施例中,數位信號處理器11G4可包括—或多個多 模式暫存器槽案116G以便在暫存器檀案116()不處於第—模 式令(不儲存作肖中執#緒之運算元)時錯存(例如 、 測資訊。 概要 本文中所揭示之發明概念之多個實施例的上述描述已僅 出於說明及描述之目的而呈現且不意欲為詳盡的或將本文 中所揭示之發明㈣限於所揭示之精確形式。眾多修改及 調適在不脫離本文中所揭示之發明概念之㈣及範_的情 況下對於熟習此項技術者為顯而易見的。 【圖式簡單說明】 圖1為說明用&實施分支預測之處自器内之例示性電路 的示意圖; 圖2為說明I中之示意圖之例示性暫存器槽案單元的示 意圖; 圖3為說明^中之示意圖之例示性暫存器構案單元的替 代示意圖; 圖4為說明用於第一模式中或用於第二模式中的圖3中之 示意圖之暫存器檔案的例示性分離的示意圖· 一圖5為說明用於在一多模式暫存器檔案中儲存資訊之例 示性方法的流程圖; 圖6為說明用於視複數個多模式暫存器檔案中之每一者 140334.doc •24· 201013524 在該等多模式暫存器㈣中儲訊 法的流程圖; 尸為說明併有可包括多模式暫存器槽案之數位信號處 之實例攜帶型通信裝置的總圖; m為說月併有可包括多模式暫存器檔案之數位信號處 理器之實例蜂巢式電話的總圖; 為說明併包括多模式暫冑器播案之纟位信號處 理器之實例無線網際網路協定電話的總圖; 圖10為說明併有可包括多模式暫存器檔案之數位信號處 理态之實例攜帶型數位助理的總圖;及 圖11為說明併有可包括多模式暫存器檔案之數位信號處 理器之實例音訊檔案播放器的總圖。 【主要元件符號說明】 100 處理器 102 暫存器檔案單元 104 分支預測資訊/分支歷史資訊 106 讀取埠/讀取資料埠 108 寫入資料埠 110 位址匯流排 112 控制.邏輯 114 指令管線 116 程式計數器 118 預測資訊 120 多工器 140334.doc •25· 201013524 122 124 202 204 206 208 210 212 214 216 218 220 222 224 302 304 306 308 310 312 402 700 702 控制器 分支預測 儲存區 有甘命悄系1/暫存器/多 暫存器檔案2/暫存器/多二:器檔案 暫存器樓案暫存器/多=暫存器播案 暫存器編暫存器,多=存器稽索 暫存器播㈣存器器楼* 暫存器存叫楼案 流排 "模式暫存器權案/ 匯流排 提取單元 回寫單元 位址 暫存器檔案資料介面 暫存器檔案暫存器/RF1暫存器 暫存器檔案暫存器/RF2暫存器 暫存器檔案暫存器 暫存器播案暫存器 暫存器標案暫存器 暫存Is播案暫存器 儲存區 攜帶型通信裝置 晶片上系統
140334.doc -26- 201013524 704 數位信號處理器(DSP) 706 顯示器控制器 708 顯示器 710 輸入裝置 712 記憶體 714 編碼器/解碼器(編碼解碼器) 716 揚聲器 718 麥克風 720 無線控制器 722 無線天線 724 電源 726 多模式暫存器檔案 800 蜂巢式電話 802 晶片上系統 804 數位基頻處理器 806 類比基頻處理器 808 顯示器控制器 810 觸控螢幕控制器 812 觸控螢幕顯示器 814 視訊編碼器 816 視訊放大器 818 視訊埠 820 通用串列匯流排(USB)控制器 822 USB缂 140334.doc .27- 201013524 824 記憶體 826 用戶識別模組(SIM)卡 828 數位相機 830 立體聲音訊編碼解碼器 832 音訊放大器 834 第一立體聲揚聲器 836 第二立體聲揚聲器 838 麥克風放大器 840 麥克風 842 調頻(FM)無線電調諧器 844 FM天線 846 立體聲耳機 848 射頻(RF)收發器 850 RF開關 852 RF天線 854 小鍵盤 858 振動器裝置 860 電源 862 多模式暫存器檔案 900 無線網際網路協定(IP)電話 902 晶片上系統 904 數位信號處理器(DSP) 906 顯示器控制器 908 顯示器 140334.doc -28- 201013524 910 小鍵盤 912 快閃記憶體 914 同步動態隨機存取記憶體(SDRAM) 916 靜態隨機存取記憶體(SRAM) 918 電可抹除可程式化唯讀記憶體(EEPROM) 920 發光二極體(LED) 922 語音編碼解碼器 924 放大器 •926 單聲道揚聲器 928 單聲道頭戴耳機 930 無線區域網路(WLAN)基頻處理器 932 RF收發器 934 RF天線 936 藍芽控制器 938 藍芽天線 赢 940 • USB埠 942 電源 960 多模式暫存器檔案 1000 攜帶型數位助理(PDA) 1002 晶片上糸統 1004 數位信號處理器(DSP) 1006 觸控螢幕控制器 1008 顯示器控制器 1010 觸控螢幕顯示器 140334.doc -29- 201013524 1012 小鍵盤 1022 IrDA 琿 1024 數位相機 1026 立體聲音訊編碼解碼器 1028 第一立體聲放大器 1030 第一立體聲揚聲器 1032 麥克風放大β 1034 麥克風 1036 第二立體聲放大器 1038 第二立體聲揚聲器 1040 立體聲耳機 1042 802.1 1控制器 1044 802.1 1天線 1046 藍芽控制器 1048 藍芽天線 1050 USB控制器 1052 USB埠 1054 智慧卡 1056 電源 1060 多模式暫存器檔案 1100 音訊樓案播放器 1102 晶片上系統 1104 數位信號處理器(DSP) 1106 顯示器控制器 140334.doc -30- 201013524 1108 顯示器 1110 小鍵盤 1112 快閃記憶體 1114 唯讀記憶體(ROM) 1116 音訊編碼解碼Is 1118 放大器 1120 單聲道揚聲器 1122 麥克風輸入 1124 立體聲輸入 1126 立體聲耳機 1128 USB埠 1130 智慧卡 1132 電源 1160 多模式暫存器檔案 140334.doc -31 -

Claims (1)

  1. 201013524 七、申請專利範園·· 1· 一種多模式暫存器檔案,其包含: 該辅助資訊替代該 -運算元,其在一第一模式中被儲存;及 輔助資訊,其中在-第二模式令, * 宏 — 運算7G。 訊為分 2. 如請求項丨之多模式暫 仔益檔案,其中該辅助資 支預測貢訊。 訊 3. 如言月求項2之多模式暫存考德宏 仔15檔案,其中該分支預測資 包含· 一分支目標快取;及 一分支歷史表。
    4.如請求項2之多模式暫存器檔案, 在呈夕執行緒架構之複數個暫存 5·如請求項4之多模式暫存 待由該多執行緒架構執行 6_如請求項5之多模式暫存 經組態以: 其中該暫存器檔案係 器檔案中。 器槽案,其中該運算元係來自 的一管線之運算中之一運算。 器檔案,其中該多執行緒架構 判定該多模式暫存器檔案是否處於該第一模式中;且 在判定該多模式暫存器檔案不處於該第-模式中的情 況了判㈣多模式暫存器標案是否處於該第二模式中。 如凊求項4之多模式暫存器檔案,其中該複數個暫存器 樓案中之每-者為—多模式暫存器樓案。 8. 如請求項7之多模式暫存器檔案,其中該多執行緒架構 經组態以判定該等暫存器㈣進人該第二模式的優先 140334.doc 201013524 權。 9·如請求項8之多模式暫存器檔案’其中該複數個暫存器 權案、星組態以在該第二模式中之複數個暫存器槽案之間 劃分該分支預測資訊。 10. —種方法,其包含: 在第一模式期間由一多模式暫存器檔案儲存一運算 元,及 在一第二模式中由該多模式暫存器 代該運算元。 構案以輔助資訊替 11·如請求項1〇之方法, 12.如請求項丨丨之方法, 一分支目標快取; 一分支歷史表。
    其中該輔助資訊為分支預測資訊 其中該分支預測資訊包含: 及 13.如請求項〗〗之方法,其進一步包含 ^疋4多模式暫存器檀案是^處於該第—模式中;
    況下2該多模式暫存^樓案不處於該第—模式中# 14如4灰疋省多模式暫存器檔案是否處於該第二模式中 •绪=之方法,其中該暫存器槽案係在呈-多執 緒系構之複數個多模式暫存器檔案中。 15.如請求項14之方法,其進一步包含 判定該複數個暫存器播 模式中;及 &母者疋否處於該第 對於不處於該第— 每一者判定每一暫存 模式中的該複數個暫存器檔案_之 器檔案是否處於該第二模式中。 140334.doc -2· 201013524 16. 如請求項15之方法’其進-步包含在該第二模式中之複 數個暫存諸案之間劃分該分支預測資訊。 17. -種多模式暫存器檔案其包含 用於在一第一模式期間儲存-運算元的構件;及 件用於在一第二模式中以輔助資訊替代該運算元的構 Η :=17之多模式暫存器槽案,其中該辅助資訊為-为支預測資訊。 19.如請求項18之多模式暫存器檔案,其進一步包含: ;判疋該多模式暫存器檔案是否處於該第-模弋中 的構件;及 4模式中 ;在判定該多模式暫存器樓案不處於該第 的情況下判定該多握+ Μ式中 中的構件 式暫存器播案是否處於該第二模式 2〇.如請求項19之多模式暫存器槽案,其進-步包含: 用於判疋複數個多模式暫存器檔案中之每—者 第二模式之優先權的構件’其中該 : 該複數個多模式暫存器槽案中之一者。〖讀案為 21'種多執行緒系統,其包含: -亥多執仃緒系統之每一執行緒的一多模式暫存 -’其中該多模式暫存器構案經組態以在 :存該執行緒之-運算元且在-第二模式中=模: 執行緒之-分支歷史表;及 #不同 母—多模式暫存器槽案之—多模式暫存器樓案暫存 140334.doc 201013524 器,其用於判定該多模式暫存器檔案處於該第一模式還 是該第二模式中。 140334.doc 4-
TW098116742A 2008-05-21 2009-05-20 Multi-mode register file for use in branch prediction TW201013524A (en)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US12/124,357 US8639913B2 (en) 2008-05-21 2008-05-21 Multi-mode register file for use in branch prediction

Publications (1)

Publication Number Publication Date
TW201013524A true TW201013524A (en) 2010-04-01

Family

ID=40908655

Family Applications (1)

Application Number Title Priority Date Filing Date
TW098116742A TW201013524A (en) 2008-05-21 2009-05-20 Multi-mode register file for use in branch prediction

Country Status (7)

Country Link
US (1) US8639913B2 (zh)
EP (1) EP2304551B1 (zh)
JP (1) JP5280521B2 (zh)
KR (1) KR101302611B1 (zh)
CN (1) CN102037443B (zh)
TW (1) TW201013524A (zh)
WO (1) WO2009142928A1 (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI506542B (zh) * 2011-12-29 2015-11-01 Intel Corp 使用單一表格儲存臆測結果及架構結果

Families Citing this family (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9582275B2 (en) 2011-05-31 2017-02-28 Intel Corporation Method and apparatus for obtaining a call stack to an event of interest and analyzing the same
GB201300608D0 (en) * 2013-01-14 2013-02-27 Imagination Tech Ltd Indirect branch prediction
GB2533415B (en) * 2014-12-19 2022-01-19 Advanced Risc Mach Ltd Apparatus with at least one resource having thread mode and transaction mode, and method
US9507598B1 (en) * 2015-12-15 2016-11-29 International Business Machines Corporation Auxiliary branch prediction with usefulness tracking
CN105653472A (zh) * 2015-12-31 2016-06-08 北京中科晶上科技有限公司 缓存辅助的向量寄存器堆的缓冲方法
US10884745B2 (en) 2017-08-18 2021-01-05 International Business Machines Corporation Providing a predicted target address to multiple locations based on detecting an affiliated relationship
US10884746B2 (en) 2017-08-18 2021-01-05 International Business Machines Corporation Determining and predicting affiliated registers based on dynamic runtime control flow analysis
US10534609B2 (en) 2017-08-18 2020-01-14 International Business Machines Corporation Code-specific affiliated register prediction
US10884747B2 (en) 2017-08-18 2021-01-05 International Business Machines Corporation Prediction of an affiliated register
US11150908B2 (en) 2017-08-18 2021-10-19 International Business Machines Corporation Dynamic fusion of derived value creation and prediction of derived values in a subroutine branch sequence
US10908911B2 (en) 2017-08-18 2021-02-02 International Business Machines Corporation Predicting and storing a predicted target address in a plurality of selected locations
US10719328B2 (en) 2017-08-18 2020-07-21 International Business Machines Corporation Determining and predicting derived values used in register-indirect branching
US11150904B2 (en) 2017-08-18 2021-10-19 International Business Machines Corporation Concurrent prediction of branch addresses and update of register contents
US11061575B2 (en) 2017-09-19 2021-07-13 International Business Machines Corporation Read-only table of contents register
US10896030B2 (en) 2017-09-19 2021-01-19 International Business Machines Corporation Code generation relating to providing table of contents pointer values
US10620955B2 (en) 2017-09-19 2020-04-14 International Business Machines Corporation Predicting a table of contents pointer value responsive to branching to a subroutine
US10713050B2 (en) 2017-09-19 2020-07-14 International Business Machines Corporation Replacing Table of Contents (TOC)-setting instructions in code with TOC predicting instructions
US10884929B2 (en) 2017-09-19 2021-01-05 International Business Machines Corporation Set table of contents (TOC) register instruction
US10725918B2 (en) 2017-09-19 2020-07-28 International Business Machines Corporation Table of contents cache entry having a pointer for a range of addresses
US10705973B2 (en) 2017-09-19 2020-07-07 International Business Machines Corporation Initializing a data structure for use in predicting table of contents pointer values

Family Cites Families (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4829422A (en) * 1987-04-02 1989-05-09 Stellar Computer, Inc. Control of multiple processors executing in parallel regions
US5210831A (en) * 1989-10-30 1993-05-11 International Business Machines Corporation Methods and apparatus for insulating a branch prediction mechanism from data dependent branch table updates that result from variable test operand locations
JP3776449B2 (ja) * 1992-12-23 2006-05-17 セントル エレクトロニク オルロジェール ソシエテ アノニム マルチタスク低電力制御装置
US5950012A (en) * 1996-03-08 1999-09-07 Texas Instruments Incorporated Single chip microprocessor circuits, systems, and methods for self-loading patch micro-operation codes and patch microinstruction codes
US6092175A (en) * 1998-04-02 2000-07-18 University Of Washington Shared register storage mechanisms for multithreaded computer systems with out-of-order execution
US6357016B1 (en) * 1999-12-09 2002-03-12 Intel Corporation Method and apparatus for disabling a clock signal within a multithreaded processor
US7017073B2 (en) * 2001-02-28 2006-03-21 International Business Machines Corporation Method and apparatus for fault-tolerance via dual thread crosschecking
US20020194461A1 (en) * 2001-05-04 2002-12-19 Ip First Llc Speculative branch target address cache
US6954846B2 (en) * 2001-08-07 2005-10-11 Sun Microsystems, Inc. Microprocessor and method for giving each thread exclusive access to one register file in a multi-threading mode and for giving an active thread access to multiple register files in a single thread mode
US6981113B2 (en) * 2003-04-21 2005-12-27 Intel Corporation Storage registers for a processor pipeline
US7120784B2 (en) 2003-04-28 2006-10-10 International Business Machines Corporation Thread-specific branch prediction by logically splitting branch history tables and predicted target address cache in a simultaneous multithreading processing environment
JP2005284749A (ja) * 2004-03-30 2005-10-13 Kyushu Univ 並列処理コンピュータ
US7278012B2 (en) * 2005-06-02 2007-10-02 Qualcomm Incorporated Method and apparatus for efficiently accessing first and second branch history tables to predict branch instructions
US7877587B2 (en) * 2006-06-09 2011-01-25 Arm Limited Branch prediction within a multithreaded processor
US7454596B2 (en) * 2006-06-29 2008-11-18 Intel Corporation Method and apparatus for partitioned pipelined fetching of multiple execution threads
US7760576B2 (en) * 2007-11-08 2010-07-20 Qualcomm Incorporated Systems and methods for low power, high yield memory

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI506542B (zh) * 2011-12-29 2015-11-01 Intel Corp 使用單一表格儲存臆測結果及架構結果

Also Published As

Publication number Publication date
JP5280521B2 (ja) 2013-09-04
KR20110019751A (ko) 2011-02-28
KR101302611B1 (ko) 2013-09-02
JP2011521382A (ja) 2011-07-21
US20090292906A1 (en) 2009-11-26
EP2304551A1 (en) 2011-04-06
EP2304551B1 (en) 2017-03-29
CN102037443B (zh) 2014-07-09
US8639913B2 (en) 2014-01-28
WO2009142928A1 (en) 2009-11-26
CN102037443A (zh) 2011-04-27

Similar Documents

Publication Publication Date Title
TW201013524A (en) Multi-mode register file for use in branch prediction
US9235418B2 (en) Register files for a digital signal processor operating in an interleaved multi-threaded environment
US8429378B2 (en) System and method to manage a translation lookaside buffer
US7584233B2 (en) System and method of counting leading zeros and counting leading ones in a digital signal processor
US8745627B2 (en) System and method of controlling power in a multi-threaded processor
US20060230253A1 (en) Unified non-partitioned register files for a digital signal processor operating in an interleaved multi-threaded environment
JP2013541758A (ja) 命令フェッチユニットの電力を落とすことによりプロセッサ内の電力消費を低下させる方法および装置
US9715392B2 (en) Multiple clustered very long instruction word processing core
US20120083912A1 (en) Arithmetic logic and shifting device for use in a processor
JPWO2009075102A1 (ja) クロック制御装置、クロック制御方法、クロック制御プログラム及び集積回路
EP3149594B1 (en) Method and apparatus for cache access mode selection
JP2015535634A (ja) 実行パイプラインバブルを低減するためにサブルーチンリターンのための分岐ターゲット命令キャッシュ(btic)エントリを確立すること、ならびに関連するシステム、方法、およびコンピュータ可読媒体
KR101239272B1 (ko) 하드웨어 프리페치 어드레스 및 산술 연산 값을 계산하기 위한 듀얼 함수 가산기
US20060230257A1 (en) System and method of using a predicate value to access a register file
JP5017784B2 (ja) プロセッサ及びこのプロセッサ適用される割込み処理制御方法
US9075620B2 (en) Instruction execution circuit