TWI240205B - Interrupt handler prediction method and system - Google Patents

Interrupt handler prediction method and system Download PDF

Info

Publication number
TWI240205B
TWI240205B TW092130508A TW92130508A TWI240205B TW I240205 B TWI240205 B TW I240205B TW 092130508 A TW092130508 A TW 092130508A TW 92130508 A TW92130508 A TW 92130508A TW I240205 B TWI240205 B TW I240205B
Authority
TW
Taiwan
Prior art keywords
execution
processor
interrupt handler
memory
prediction
Prior art date
Application number
TW092130508A
Other languages
English (en)
Other versions
TW200422960A (en
Inventor
Ravi Kumar Arimilli
Robert Alan Cargnoni
Guy Lynn Guthrie
William John Starke
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
Publication of TW200422960A publication Critical patent/TW200422960A/zh
Application granted granted Critical
Publication of TWI240205B publication Critical patent/TWI240205B/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/22Microcontrol or microprogram arrangements
    • 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/3861Recovery, e.g. branch miss-prediction, exception handling
    • G06F9/3863Recovery, e.g. branch miss-prediction, exception handling using multiple copies of the architectural state, e.g. shadow 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/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/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
    • 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
    • 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/3838Dependency mechanisms, e.g. register scoreboarding
    • G06F9/384Register renaming
    • 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/3885Concurrent instruction execution, e.g. pipeline or look ahead using a plurality of independent parallel functional units
    • 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/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4812Task transfer initiation or dispatching by interrupt, e.g. masked

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)

Description

1240205 玖、發明說明: 【發明所屬之技術領域】 相關申請案 本發明係關於共同讓渡與待決且於相同日期申請之美國 專利申請案號09/________(檔案號碼AUS920020161US1)、 案號09/________(檔案號碼AUS920020162US1)、案號 09/________(檔案號碼AUS920020163US1)、案號09/________(檔 案號碼AUS920020164US1)、案號09/________(檔案號碼 AUS920020166US1)、案號09/_(檔案號碼AUS920020167US1) 之主旨。以上參照之申請案内容以引用的方式併入本文中。 領域 本發明概言之係關於資料處理之領域,且尤其關於一種 處置中斷之改良式資料處理系統及方法。 【先前技術】 當執行一組電腦指令時,一處理器經常被中斷。此種中 斷可由一中斷或一例外造成。 一中斷係與該中斷發生時執行之指令無關的一非同步中 斷事件。亦即,中斷通常由像是來自一輸入/輸出(I/O)裝置 的一輸入、來自另一處理器的一作業呼叫等處理器外面之 某事件造成。其他中斷可能為内部造成,例如控制任務交 換之計時器過期。 一例外係由該例外發生時所執行之指令執行所直接引起 的一同步事件。亦即,一例外係像是一算術溢位、一計時 維護檢查、一内部效能監視程式、一機載工作負載管理員
O:\89\89075.DOC 1240205 等來自處理器内的—I μ 術語"舞與,,例=常卜較中斷頻繁許多。 術語”中斷”可同p 本揭路之目的: 同日爛”中斷”與”例外”之中斷。 由於軟體與硬體變得較複雜 性增加。此等巾^ t # 目人頻率亦戲劇 有其必要,因為i 行、多重周、嘉 > 本 ”、、一 了支杈夕重處理之執 夕重周邊之處置以及各種組 特性具有效益,作中p 然這類 且、”户… 嫩之汁算能力將戲劇性增加,而 田„。 度之改良。因此許多情況下’儘管處 理為之時脈頻率辦力 .^ 貝羊曰加,但實際上系統效能卻減少。 —圖圖解I統處理器核心1〇〇。於處理器核心1〇〇内,一 :-階指令快取記憶體(L"快取記憶體)1〇2提供指令給指 令順序邏輯1 04,J:再蔣沪a八认Λ丄 "再將私々叙給適當之執行單元1〇8,以 便執行。包括-浮點執行單元、—定點執行單元、一分支 執行單元之執行單元_具有一載入/儲存單元 (LSU)108a。載入/儲存單元(LSU)i〇8a執行載入與儲存指 令’分別將資料從第丨階資料快取記憶體⑹&快取記憶 體川2載入架構式暫存器11〇,以及將來自架構式暫存器 11〇之資料儲存於L1 D-快取記憶體112。在L1快取記憶體_ 人112中所遺漏之貧料與指令需求可經由記憶體匯流排 11 6存取系統記憶體丨丨8而解析。 士以上之σ主明,處理器核心1 〇〇遵循來自外部中斷線114 所示之些來源的中斷。當處理器核心1 〇〇(例如:經由中 斷線114之一)接收一中斷信號時,目前所處理之執行將懸 置,且由稱為中斷處置器的一中斷專用軟體處置該中斷。
0 \89\89075 DOC 1240205 尤其,中斷處置器透過以載入/儲存單元(LSU)1〇8a執行儲 存與載入指令而保存及復原中斷時所執行之處理的架構式 狀態。如此使用載入/健存單元(LSU)1〇8a往返系統記憶體 118而轉移架才冓式狀態將阻擔巾斷處置器&行其他記憶體 ^取指令(―超純量電腦情況下為另—處理),直到狀態轉移 完成為止。結果,透過處S||飞執行單元保存且於後續復 原-處理其架構式狀態將造成中斷之處理與中斷處置器兩 者的執行延遲。此種延遲導致處理器整體效能降低。因此, 本發明了解:需要一種最小化保存與復原尤其響應中斷之 架構式狀態所招致之處理延遲的方法及系統。 【發明内容】 本發明導引至在一資料處理系統的一處理器内用 中斷處置之方法及系統。 加:處理器接收-令斷信號時,—目前執行之處理的—硬 二式狀悲將被載入一或更多專屬之影子暫存器中。硬牵 構式狀態包括處理器内用執 用钒仃中斷之處理的基本資訊。進 :步保存此硬架構式狀態的-有利方法包括:使用一高頻 匯流排將硬架構式狀能你旦/工紅+ °
^ 衫子暫存器直接轉移至H ό己f思體,而沒有使用「同而鉍 ’、° 及處理哭執: 綁住)正常之載入/儲存路徑方向 及處Lm。於硬架人景彡子暫存 中断處置n立㈣始運轉。包括 — 斂壯能P1 «士 r丨 。己It、m内各之處理的 軟狀怨叫至少部分保存至 能夕仅六、,” U 中。為了加速軟狀 心之保存以及防止與執行之中斷處置 者,使用先前技術中通常僅在製、^貝料碰撞,較佳 “堇在氣造商測試期間使用而不在
O:\89\89075.DOC 1240205 ,常作業期間使用之掃描鏈路徑方向從處理器轉移軟狀 態。 在先前技術中,中斷得由丨假g^ ^ Τ研加错由順序運轉一第一階中斷處置 器(FUH)然後其呼叫一第二階令斷處置器(SL即常式而正 常處置。其中根據來自相似中斷之歷史資料而作成第一階 中斷處置器(FUH)將由第二階中斷處置器(SUH)呼叫的一 預測。進行跳越至預測之第二階中斷處置器(suh),而且 指令從預測之第二階中斷處置器(SLm)内的一預測位置開 始執行。並行運轉第一階中斷處置器(fuh),而導致呼叫 -第二階中斷處置器飢即。如果第__階中斷處置器㈣识) .所呼叫之弟—巾斷處置器(SUH)與預測之第二階令斷處 置器(SLIH)相同’則由第一階中斷處置器(FUH)所呼叫之 弟-階中斷處置li(SUH)的執行將巾止,而且預測之第二 产白t斷處置器(SLIH)的執行完成。如果第二階中斷處置器 (SLIH)之預測不確正,則預測之第二階中斷處置器(SUH) 的執行將中止,而且由第一階中斷處置器(FUH)所啤叫之 第二階中斷處置器(SUH)的執行繼續完成。同樣地,預測 之跳二可此到達沿著第一階中斷處置器第二階中斷 處置器(SLIH)指令鏈之任何執行點,包括第—階中斷處置· 器(FUH)内或第二階中斷處置器(SLm)内的-執行點。 A:中斷處置器凡成時’將復原-中斷之處理的硬架構式 狀態與㈣態,使其可在硬架構式狀態載人時立即運轉。 八為了提供有可能運轉不同作業系統之其他處理器與其他 刀J存取,硬與軟狀態將健存於可供任何處理器與/或分割
O:\89\89075.DOC 1240205 存取之系統記憶體保留區域中。 從以下詳細撰寫之說明將可明白本發明之上述及額外目 的、特性與優勢。 【實施方式】 現在參照圖2,豆中描怜一客♦ _ ’、 夕處理為(ΜΡ)資料處理系統 训的-示範具體實施例之高階方塊圖。雖然多處理器(Μρ) 貧料處理系統2(Π係以-對稱多處理器(SMp)加以描Κ曰 本發明可用於熟習電腦架構技藝者所知之任何多處理器 ()資料處理系統,其包括但不限於—非統―記憶體存取 (NUMA)多處理器(mp)或者一唯协 羋厌取汜憶體架構(COMA)多 處理器(MP)。 根據本發明,多處理器(MP)資料處理系統2〇ι包括如處理 早凡扇a至2_所財之複數個處理單元·,其係、以一互 連222輕合’以進行通信。在一較佳具體實施例中,將可了 解·包括處理單元2〇〇a與處理單亓 早凡2〇〇n之多處理器(Mp)資 料處理糸統2 0 1中每一虚採置-〇 A n 母處理早凡200於架構上相似或者相 同。處理單元20〇a係一單一積,雷 平積股寬路超純置處理器,如以 下進一步之討論,其包括令立 —σσ — 匕祜王邛由積體電路所形成之各種執 行單元、暫存器、緩衝哭、兮倍w 口口 。己匕脰與其他功能單元。在多 處理裔(MP)資料處理系统2〇 1中直 古 ^ 矛元2U1中母一處理單元200係藉一 南頻見私用匯流排11 6搞人$久它丨么 σσ — 祸口至各別糸統記憶體11δ,如處理 单元2 0 0 a之糸統記情體〗〗只 〔^U8a以及處理單元20〇n之系統記 憶體118η。 處理單元200a包括一指入順& σ。一 / 枯才日7順序早凡(ISU)2〇2,其中含有
O:\89\89075 DOC -10- 【240205 執仃單元(EU)204所執行之楹 指八丨丨丨g生σσ &取、排定與發出指令的邏輯。 知7順序單元(ISU)2〇2i 、饵 中干/ ”執仃早兀(Εϋ)204之細節將以圖3 甲不靶之形式給定。 口 j 執行單元(EU)204聯結,,硬” 虛裡.σ 一 更狀怨暫存器200,其中含有在 处里早兀20〇a内執行目前執 硬狀能執仃之處理所使用的基本資訊。 更狀怨暫存器206耦合至下一 下硬狀怨暫存器21〇,其中含有 能 备 斷日守所執行之下一處理的硬狀 心。硬狀態暫存器206同時 ,★ T “衫子暫存器208,苴中令右 (或將含有)當目前執行處 、有 ?n_ ^ 〈爽理終止或中斷時硬狀態暫存器 2〇6其内容的一複本。 19廿口口 勺二广里單兀2°〇進-步包括-快取記憶體階層212,盆 夕階快取記憶體。從系統記«1_人之指令與㈣ 所使用的一晶載儲;^ g ^ 、 . 曰曰載儲#為可糟像是快取記憶體階層212加以 貧現’如圖3所示,苴句Α 一贷 八 第一^礼令快取記憶體(L1 I- 、取汜憶體)1 8、一第一階資料快 體)2〇以及-統一之第二心H(L1 D-快取記憶 白決取5己憶體(L2快取記憶體)J 6。 快取記憶體階層212經由快取卞严辟次上丨^ 田厌取Z憶體貧料路徑2丨8以及根據 至少-具體實施例而經由掃描鏈路徑方向214搞合至系統 記憶體118的-晶載整合記憶體控制器(mc⑽。由於掃描 鍵路徑218係—串列路徑方向,所以掃描鏈路徑方向214與 整合記憶體控制器(IMC)22_麵合串列轉平行介面216。以 下詳述描繪之處理單元2〇〇a的組件功能。 現在參照圖3 a,直中屮+ # j田留-1Λ A π ,、甲出不處理早疋2〇〇之額外細節。處理 單元200包括—晶載多階快取記憶體階層,分別包括一統一
O:\89\89075.DOC -11 - 1240205 之^二階(L2)快取記憶體16,以及雙叉之第—階(li)指令⑴ 與貧料(D)快取記憶體18與2〇。如熟習此項技藝者所知,快 取記憶體16、18與2()提供低潛伏存取系統記憶體ιΐ8之記憶 體位置的對應快取記憶體線。 響應指令提取位址暫存器(IFAR)3〇中常駐之有效位址 (EA)而從L1 ^快取記憶體18中提取指令,以便處理。每一 週期巾’將有一新的指令提取位址從以下三來源之一載入 才曰々提取位址暫存為(IFAR)3〇 ••分支預測單元,其 提供條件式分支指令所導出之推測的目標路徑與順序位 址;總體完成表(GCT)38,其提供清除與中斷位址;以及分 支執行單元(BEU)92,其提供預測之條件式分支指令解析所 導出的非推測位址。分支預測單元(BPU)36聯結一分支歷史 表(BHT)35,其中記錄用以辅助未來之分支指令預測的條件 式分支指令解析。 如指令提取位址暫存-(IFAR)3〇内之指令提取位址的一 有效位址(EA)係一處理器所產生之資料或指令位址。有效 位址(EA)指定一段暫存器以及該段内之偏移資訊。為了存 取記憶體之資料(包括指令),有效位址(EA)將透過與資料或 指令之實體儲存位置相關聯的一或更多階翻譯而轉換成一 實位址(RA)。 於處理單元200内,有效轉實位址之翻譯係由記憶體管理 單元(MMU)及關聯之位址翻譯設施所執行。較佳者,可提 供一分離之記憶體管理單元(MMU)供指令存取與資料存取 用。圖3a中為了清楚,在圖解中僅顯示一單一記憶體管理 O:\89\89075.DOC -12- 1240205 早难MU川2連接指令順序單元(isu)2〇2。然而,孰習此 項技藝者了解:較佳者,其同時包括連接(未出示)至載入/ 健存單元(聊)96、似及f理記㈣存取所需之其他組 牛。己體吕理單TC (MMU) 112包括資料翻譯後備緩衝器 (DTLB) 11 3與指令翻譯後備緩衝器(itlb)工} 5。每一翻譯後 備緩衝器(TLB)包含最近參照之頁表絲,其(資料翻譯後 備緩衝器(DTLB) 11 3)或(指令翻譯後備緩衝器(ITLB) i} 5)被 存取用來將資料或指令之有效位址(EA)翻譯成實位址 (RA)。來自指令翻譯後備緩衝器(itlb)ii5之最近參照的有 效位址(EA)轉實位址(RA)翻譯將高速緩衝於E〇p有效轉實 位址表(ERAT)32中。 當指令提取位址暫存器(IFAR)3〇中之有效位址(EA)經有 效轉實位址表(ERAT)32翻譯以及l快取記憶體目錄34中之 實位址(RA)經查找後,如果命中/遺漏邏輯22決定:指令提 取位址暫存器(IFAR)30中之有效位址(EA)的對應指令之快 取5己憶體線並未常駐於L 1 I-快取記憶體1 §,則命中/遺漏邏 輯22經由I-快取記憶體需求匯流排24將實位址(RA)當作一 需求位址提供給L2快取記憶體1 6。這類需求位址亦可由L2 快取記憶體16内之預提取邏輯根據最近存取型樣而產生。 響應一需求位址,L2快取記憶體16輸出一指令之快取記憶 體線,其經由I-快取記憶體重載匯流排26,而且可能於通過 選擇性之預解碼邏輯144後載入預提取緩衝器(pB)28與L1 I-快取記憶體18。 只要指令提取位址暫存器(IFAR)30中之有效位址(ea)所 O:\89\89075.DOC -13 - 1240205 $曰疋的决取3己彳思體線常駐於L 1快取記憶體1 8,則L 1 I -快取 記憶體1 8將快取記憶體線同時輸出至分支預測單元 (BPU)36與指令提取緩衝器(IFB)4〇。分支預測單元(Bpu)36 掃描分支指令之指令快取記憶體線,而且如果存在的話, 則預測該條件式分支指令之結果。繼一分支預測後,如以 上所討論,分支預測單元(BPU)36將一推測之指令提取位址 配置給指令提取位址暫存器(IFAR)3〇,並將該預測傳至分 支指令佇列64,當分支執行單元92順序解析條件式分支指 令時,可以決定預測精確度。 指令提取緩衝器(IFB)40暫時緩衝來自L1 ^快取記憶體 1 8之接收彳g々的快取§己憶體線,直到指令之快取記憶體線 可由指令翻譯單元(ITU)42翻譯為止。在處理單元2〇〇之圖 解具體實施例中,指令翻譯單元(ITU)42將使用者指令集架 構(UISA)指令翻譯成可能具有不同數目之内部isA(nsA) 指令,其可由處理單元200之執行單元直接執行。這類翻譯 可例如藉由參照一唯讀記憶體(R〇M)模板中儲存之微碼而 執行。在至少某些具體實施例中,使用者指令集架構(uisa) 轉内部ISA(IISA)之翻譯導致數目與使用者指令集架構 (UIS A)指令不同的内部IS A(IIS A)指令,與/或長度與對應之 使用者指令集架構(UISA)指令不同的内部ISa(usa^ 令。然後,產生之内部ISA(IISA)指令由總體完成表%指派 給一指令群組,其成員可不依彼此間之次序加以調度及執 行。總體完成表38以至少一關聯之有效位址(EA”較佳者, 以指令群組中最舊指令之有效位址(EA)追蹤尚未執行完畢 0 \89\89075 DOC -14- 1240205 的每一指令群組。 繼使用者指令集架構(UISA)轉内部ISA(IISA)指令之翻 譯後,則根據指令類型,也許不依次序,將指令調度給鎖 存44、46、48與50。亦即,將分支指令與其他狀態暫存器 (CR)修正指令調度給鎖存44,將定點與載入儲存指令調度 給鎖存46或48,以及將浮點指令調度給鎖存50。然後,要 求一更名暫存器以暫時儲存其執行結果之每一指令將由狀 態暫存器(CR)映射器52、鏈接與計數(LC)暫存器映射器 54、例外暫存器(XER)映射器56、多用途暫存器(GPR)映射 器58與浮點暫存器(FPR)映射器60中之適當者指派一或更 多更名暫存器。 然後,調度之指令被暫時放置於狀態暫存器(CR)發出佇 列(CRIQ)62、分支發出佇列(BIQ)64、定點發出佇列 (FXIQ)66與68,以及浮點發出佇列(FPIQ)70與72中一適當 者。於觀察資料之相依性與反相依性後,則將指令從發出 佇列62、64、66、68、70與72伺機發給處理單元10之執行 單元,以便執行。然而,指令將在發出佇列62-72中維護到 該指令執行完畢為止,而且如果有的話,產生之資料將被 寫回,以防止有任何指令必需重新發出。 如圖解,處理單元204之執行單元包括:埶行狀態暫存器 (CR)修正指令的一狀態暫存器(CR)單元(CRU)90、執行分支 指令的一分支執行單元(BEU)92、執行定點指令的兩定點單 元(FXU)94與100、執行載入與儲存指令的兩載入/儲存單元 (LSU)96與98,以及執行浮點指令的兩浮點單元(FPU)102 O:\89\89075 DOC -15 - 1240205 與104。較佳者,執行單元90-104各以具有一些管線級的一 執行管線加以實作。 於執行單元90-104之一執行期間,一指令將接收來自與 該執行單元耦合的一暫存器檔案内之一或更多架構式與/ 或更名暫存器之運算元(如果有的話)。當執行狀態暫存器 (CR)修正或者狀態暫存器(CR)相依指令時,狀態暫存器(CR) 單元(CRU)90與分支執行單元(BEU)92存取狀態暫存器(CR) 暫存器檔案80,在一較佳具體實施例中,該檔案包含一狀 態暫存器(CR)與一些狀態暫存器(CR)更名暫存器,個別具 有由一或更多位元所形成的一些相異欄位。此等欄位有 LT、GT與EQ欄位,分別指示是否一數值(通常為一指令之 結杲或運算元)係小於零、大於零或等於零。鏈接與計數暫 存器(LCR)暫存器檔案82包含一計數暫存器(CTR)、一鏈接 暫存器(LR)以及各別之更名暫存器,分支執行單元(BEU)92 可據以解析條件式分支,以獲得一路徑位址。同步化之多 用途暫存器(GPR)84與86用以複製暫存器檔案、儲存由定點 單元(FXU)94與100及載入/儲存單元(LSU)96與98所存取及 產生之定點與整數值。如同多用途暫存器(GPR)84與86可以 同步化之暫存器的複製組加以實作的浮點暫存器(FPR)檔 案88包含浮點數值,其係浮點單元(FPU) 102輿104之浮點指 令執行以及載入/儲存單元(LSU)96與98之浮點載入指令執 行的結果。 於一執行單元完成一指令之執行後,該執行通知總體完 成表(GCT)38,其係以程式次序排定指令之完成。為了完成 O:\89\89075.DOC -16- 1240205 由狀態暫存器(CR)單元(cru)9〇、_ σσ 士、4 σσ 疋點早元(FXU)94, 100 或序點單元(FPU) 102與1〇4之一所勃一 " 表(GCT)3 8發信號給執行單元 "凡 r _ 果有的話,產生之資料將 攸私派之更名暫存器寫回適當〃 加播彳鉍+ 9子态檔案内的一或更多 式暫存器 '錢,將該指令從發出仵列中移除,一旦 指令群組内之所有指令均p 6 -70成,則將其從總體完成表 (GCT)38中移除。然而,其他指 … 伯7颂型係以不同方式完成。 备分支執行單元(卿)92解析—條件式分支指令而且決 疋應採用之執行路徑的路徑位址時,該路徑位址將與分支 預測早元(则)36所預測之推測路徑位址相比較。如果路徑 位址相符,則不需進-步處理1而,如果計算之路徑位 址與預測之路徑位址不相符,則分支執行單㈣卿2供摩 μ之路徑位址給指令提取位址暫存器(ifar)3〇。以上任 :事件都從分支發出件列(BIQ)64中移除該分支指令,而且 當,同指令群組内之所有其他指令均完成時,則將其從總 體完成表(GCT)38中移除。 *繼一載入指令之執行後,藉由執行載入指令而計算之有 效位2係以一資料之有效轉實位址表(ERAT)(未圖解)翻譯 成一實位址,然後當作一需求位址提供給L1D-快取記憶體 〇此日守,載入指令將從定點發出佇列(FXIQ)664 68中移 除亚且放置於載入重排序佇列(LRQ)l 14中,直到指示之 、執行為止。如果需求位址在L1 D-快取記憶體20中遺 '属則°亥需求位址將被放置於載入遺漏佇列(LMQ) 11 6,其 中要求之貧料係從L2快取記憶體1 6擷取,但無法從另一處
O:\89\89075.DOC -17- 1240205 =單元2〇m統記憶體11δ(如圖2所示)#|取。載入重排序 仵列(LRQ)114檢測互斥之存取需求(例如:讀取而且希望修 正)’在互連222結構(如圖2所示)上將傳遞中之載入清除或 L2快取記憶體16,或其兩者。 處理器狀態 刪除,而且如果發生—命中,則取消並且重新發出該載入 =令。同樣地,儲存指令係利用-儲存仵列(STQ)110加以 完成,繼儲存指令之執行後,用以儲存之有效位址被載入。 資料將從儲存仔列(STQ)11G儲存心D_快取記憶體2〇或 -處理器之狀態包括··儲存之資料、指令,以及於一特 殊恰間之硬體狀態,而且此處將該硬體狀態定義為··,,硬,, 或权。硬狀悲m —處理器從一處理之目前執行點 執行該處理之架構上所需的處理器内資訊。相對地,,,軟,, 狀L定義為·可改良一處理之執行效率但並非達成一架構 上正確之結果所需的處理器内資訊。於圖3a之處理單元200 中,硬狀態包括像是狀態暫存器檔案(CRR)8〇、鏈接與計數 器檔案(LCR)82、多用途暫存器((;}1^)84與86、浮點暫存器 (FPR)88等使用者等級暫存器以及監督者等級暫存器Η之 内谷。處理單元2〇〇之軟狀態同時包括像是二^ j —快取記憶 體18、L-l D-快取記憶體2〇之内容、資料翻譯後備緩衝器 (DTLB)l 1 3與指令翻澤後備緩衝器(ITLB)i ι5之位址翻譯資 訊等’’效能關鍵,,資訊;以及像是分支歷史表 快取記憶體1 6之全部或部分内容等非關鍵資訊。 暫存器
O:\89\89075.DOC 18- 1240205 、兒月中像是多用途暫存克(GPR)86、浮點暫存器 (FPR)88、狀態暫存器檔案(CRR)肋與鏈接與計數暫存器檔 案(lcr)82等處理單元2〇〇之暫存器標案通常被定義為:使田 用者等級暫存器”,其_此等暫存器可由具有使用者或監督 ^特振之所有軟體加以存取。監督者等級暫存器5丄包括通 常由-作業系統在作業系統核心中作為像是記憶體管理、 組態與例外處置等作業之暫存器。因此’監督者等級暫存. 器51通常僅限由具有充分存取許可之一些處理(亦即:監督^ 者等級之處理)加以存取。 - 如圖3b所描繪,監督者等級暫存器“通常包括··組態暫 存器302、記憶體管理暫存器3〇8、例外處置暫存器314與雜 項暫存器3 2 2,以下將更詳細說明。 組態暫存器302包括一機器狀態暫存器(MSR)3〇6與一處 理器版本暫存器(PVR)3〇4。機器狀態暫存器(msr)遍定義 處理為之狀態。亦即’貞器狀態暫存器(msr)3〇6用以識別· 於處置-指令中斷(例外)後指令執行應在何處回復。處理器 版本暫存器(PVR)304用以識別處理單元200之特定類型(版· 本)。 · 逗憶體官理暫存器308包括區塊位址翻譯(Ba丁)暫存器 31〇。區塊位址翻譯(BAT)暫存器31〇係軟體控制之陣列,用 以儲存晶載之可用區塊位址翻譯。較佳者,存在如IBΑτ 3〇9 與DBAT 311所示之分離的指令與資料區塊位址翻譯(ΒΑ 丁) 暫存器。記憶體管理暫存器同時包括段暫存器(SR)312,當 區塊位址翻譯(BAT)翻譯失敗時用以將有效位址(EA)翻譯 O:\89\89075.DOC -19- 1240205 成虛擬位址(VA)。 例外處置暫存器314包括一資料位址暫存器(DAR)316、特 殊用途暫存器(SPR)3丨8與機器狀態保存/復原(SSR)暫存器 320。如果一記憶體存取造成像是一調正例外的一例外,則 貝料位址暫存器(DAR)3丨6將包含該記憶體存取指令所執行 之有效位址。特殊用途暫存器(SpR)用於作業系統所定義之 特殊用途,例如:用以識別保留給—第_階例外處置器 ㈣H)使用的—記憶體區域。較佳者,系統中的每一處理 具有唯一 s己憶體區域。一特殊用途暫存器可由 階例外處置器(FUH)當作—暫用暫存器,肖以儲存一 夕用述暫存器(GPR)之内容,㈣容可從特殊用途暫存器 (SPR)318載入’以及當作其他多用途暫存器(GpR)用來保存 至記憶體的一基底暫存器。狀態保存/復原(SSR)暫存器320 用以保存例外(中斷)時之機器狀態,以及當執行從中斷指令 轉回時,用以復原機器狀態。 雜員暫存S 322包括··用以維護—天中之時間的一時基 (TB)暫存器324、用以減量計數的一衰減計暫存器 (DEC)326以及如果遇到一指定資料位址則引發一斷點的 一貧料位址斷點暫存器(DABR)328。再者,雜項暫存哭322 包括-時基中斷暫存器(tbir⑽,於—預定時期後將啟動 一中斷。這類時基中斷可與處理單元200上運轉之定期維護 常式一起使用。 軟體組織 於像是圖2之多處理器(MP)資料處理系統201的-多處理
O:\89\89075.DOC -20- 1240205 器(MP)資料處理系統中,乡重應用程式可以在可能不同之 作業系統下同時間運轉。圖4描繪根據本發明之多處理器 (MP)資料處理系統2〇 1的一示範之軟體組態層圖形。 如圖解叙體組恶包括一超管理員402,其係將多處理器 (MP)貧料處理系統2〇1之資源分配給多重分割然後協調多 重分割内(可能不同之)多重作業系統之執行的監督者軟 體。例如,超管理員402可分配處理單元2〇(^、系統記憶體 11 8a的一第一區域及其他資源給作業系統4〇4a操作的一第 一分割。同樣地,超管理員402可分配處理單元2〇〇n、系統 。己隐拉11 8n的一第二區域及其他資源給作業系統仙知操作 的一第二分割。 於一作業系統404控制下,可運轉像是一文字處理器、一 试斤表、一瀏覽器等多重應用程式4〇6。例如,應用程式仰仏 至406x均在作業系統4〇4a之控制下運轉。 通常作業系統404與應用程式406個別包含多重處理。例 如,所不之應用程式406a具有多重處理4〇8as4〇8z。假設: 每一處理單元200具有一處理所需之指令、資料與狀態資 訊’則該處理單元200可獨立執行該處理。 中斷處置 現在參照圖5a與5b,其中描繪根據本發明可由像是處理 早兀200的一處理單元用以處置一中斷之示範方法的流程 圖。如方塊502所示,處理器接收一中斷。此中斷可為一例 卜(例如·溢位)、一外部中斷(例如:來自一輸入/輸出(P〇) 裝置)或者一内部中斷。
O:\89\89075.DOC -21 - 1240205 於接收中斷時,將保存目前運轉之處理的硬架構式狀態 (方塊5〇4)與軟狀態(方塊505)。以下將參照圖6a(硬)與圖 6b(軚)況明根據本發明保存及管理硬與軟狀態之較佳處理 的細卽。於處理之硬狀態被保存至記憶體後,將執行至少 第一階中斷處置器(FLIH)或第二階中斷處置器(SLIH), 以服務該中斷。
第二階中斷處置器(SUH)係用以處置來 第一階中斷處置器(FLm)係用以接收一中斷後之處理器 控制的一常式。當通知有一中斷時,第一階中斷處置器 (FLIH)猎由讀取_中斷控制器槽案而決定中斷之原因。較 成此決定。亦即,第一 使一中斷與用以處置該 以處置來自
(SLIH),而非裝置驅動器本身。 一特定中斷來 常式。亦即,第一階中斷 中斷之第二階令斷處置器
中的一特殊位址。 於圖5a中,圓圈506内所示步驟係由 一階中斷處置器 I ’如以上所述, 別。然後,取決於 理杰跳越至記憶體
置器(SJLIH) ,一處理器(外部中斷) 以控制中斷之處理器
O:\89\89075.DOC -22- 1240205 、超g理員控制下執行一組指令。例如,如方塊5 1 0與5 1 6 二 第 中辦可能造成處理器跳越至向量位址1,導致 第一階中斷處置器(SUH) Α之執行。如所示,第二階中 置扣(SLIH) A元成中斷之處置,而沒有呼叫任何額外軟 吊式。同樣地,如方塊512、52〇與526之圖解,跳至向量 位址3的一分支導致示範之第二階中斷處置器(SLIH) C之 執仃然後執仃屬於(同時在圖4中出示之)作業系統4〇4或超 “里貝402的一或更多指令,以服務該中斷。替代上,如方 塊5 14與51 8所示,如果該中斷指導處理器跳越至向量位址 2則執订不範之第二階中斷處置器(SLIH) B。然後第二階 中斷處置器(SUH) B呼叫(方塊524)發出該中斷之裝置的一 裝置驅動器。 繼方塊516、524或526後,該處理透過頁連接符號”A”進 行至圖5b之方塊528。—旦服務該中斷後,則如方塊528與 530所不,解析第—階中斷處置器,以及重新設置第 -階中斷處置器(FLIH)’以反應中斷之執行與完成。其後, 如方塊532·536所示,載人及運轉下—處理。然後該中斷處 置之處理終止。 通ΐ藉由處理g之作業系統或者藉由該處理器所屬之電 腦系統的超管理員選擇其後運轉何處理(方塊532)以及(如 果一多處理器(MP)電腦系、統,則)在何處理器上(方塊…)。 ,定之處理可為目前處理器上中斷之處理,或者目前處理 裔或另一處理器上新的或執行時中斷之另一處理。 如方塊5 3 6之圖解,一曰選宝♦ 了田咖名 固听 一 &疋處理與處理器,則選定之處
O:\89\89075 DOC -23 - 1240205 理菇將使用圖2所示之下一硬狀態暫存器2丨〇,以下一運轉 之處理的狀態加以初始化。下一硬狀態暫存器2 1 〇包含下一 ’’最熱處理之硬架構式狀態。通常,此下一最熱處理係先 前中斷而且新回復的一處理。極少見到下一最熱處理係一 新處理’而非先前所中斷。 下一最熱處理係確定具有最高執行優先之處理。該優先 可根據一處理對整體應用程式之關鍵程度、對該處理其結 果之需要或者任何其他優先理由。由於運轉多重處理,所 以每一等待回復之處理的優先時常改變。因此,動態指派 更新之優先位準給硬架構式狀態。亦即,在任何給定之時 刻,下-硬狀態暫存器21G包含來自系統記憶體u8之連續 且動態更新的硬架構式狀態,因而具有下—必需運轉之”最 熱”處理。 保存硬架構式狀態 在先前技術中,硬架構式狀態係透過處理器核心之載入/ 儲存早兀儲存至系統記憶體,如此將阻斷處置器或另 -處理之執行持續若干處理器時脈週期之久。在本發明 中’如圖5a方塊5G4中騎之保存—硬狀態的步耗根據圖 6a圖解之方法而加速,其係參照圖2中概要圖解之硬體加以 說明。 一如:塊602之圖解’於接受一中斷時’處理單元懸置 二行之處理的執行。然後如方塊604之圖•,硬狀態 =ΓΓ儲存之硬架構式狀態被直接複製至影子暫存 X替代上,透過以目前硬架構式狀態連續更新影子
O:\89\89075 DOC -24- 1240205 暫存器208的一處理而使影子暫存器2〇8具有硬架構式狀態 的一禝本。)當處理單元200檢視硬架構式狀態之影子複本 吩,其最好非執行中,然後如方塊6〇6之圖解,在整合記憶 體控制器(IMC)22G之控制下儲存至系統記憶體118。硬架構 式狀怨之衫子複本係經由高頻寬記憶體匯流排丨丨6轉移至 系統記憶體118。由於將目前硬架構式狀態之複本儲存至影 子暫存器208最多僅花費數時脈週期,所以處理單元很 快可以開始處置該中斷或執行下一處理之,,真實工作"。 、—如以下關於圖10之說明,較佳者,硬架構式狀態之影子 後本係儲存於保留給硬架構式狀態用之系統記憶體⑴内 的一特殊記憶體區域中。 保存軟狀態 當一傳統處理器執杆一 Φ iff ^ n-b ^ 机仃中斷處置為時,中斷之處理的軟 狀f常被污染。亦即’中斷處置器軟體之執行將以中斷處 置A使用之貧料(包括指令)污染處理器的快取記憶體、位址 翻譯設施與歷史表。因此,於_ 此於處置一中斷後,當中斷之處 理回设時’該處理承受指八次 . 又才曰7舁貝枓快取記憶體遺漏增加、 翻譯遺漏增加,以及分Φ▲ 支錯决預測增加。這類遺漏與錯誤 預測嚴重降低處理效能,直到 — 直糾攸處理裔清除中斷處置之相 關資訊並以該處理之相關資 邳關貝汛重新殖入用以儲存該處理之 軟狀態的快取記憶體和复他相 "他、、且件為止。因此,本發明保存 及復原一處理之軟狀能的5 /h 一 〜的至V —邛y ,以降低與中斷處置 相關聯之效能懲罰。 現在參照圖6b以及m 9你a a , 及圖2與3a中描繪之對應硬體,如方塊
〇:\89\89075 DOC -25 - 1240205 610之圖解,L1快取記憶體以與^ D_快取記憶體2〇之整 體内容係被保存至系統記憶體丨丨8的一專屬區域。同樣地, 分支歷史表(BHT)35(方塊612)、指令翻譯後備緩衝器 (ITLB) 11 5與資料翻澤後備緩衝器(D丁Ljg) m(方塊$ 1 4)、有 效轉實位址表(ERAT)32(方塊616)以及L2快取記憶體16(方 塊6 1 8)之内容將保存至系統記憶體丨丨8。
因為L2陕取圮仡體丨6可能相當大(例如··數百萬位元組之 大小),所以將L2快取記憶體丨6全部儲存可能就系統記憶體 之覆蓋區域與轉移資料所需之時間/頻寬方面均不允許。因 此,在-較佳具體實施例中,僅將最近使用(以肋)集合的 一子集保存於每一全等類別内。 應了解:雖然圖6b中圖解具有一處理之軟狀態的一些; 同組件之個別保存,但保存之組件數目與保存之組件^ 可:實作而變化’而且可透過硬體模式之位元以軟體力“ 程式規劃或控制。 - 明仍可輪屮私灿… 订中’但本發 ,人狀恶。此種(與中斷處置器之執行無關的 步作業可能導致(中鼢夕走 t )非同 (中斷之處理與中斷處置器的 合。儘管如此,此種資料、3入γ 狀怨混 此種貝枓混合仍可被接受,因 正不需精確保留軟狀態,以及因為效能改良係、校 中斷處置器時縮短延遲而達成。 a在執行 再次參照圖2,來自L1I•快取記憶體ΐδ、 體20與L2快取記憶體16之 能 -快取記憶 一 狀心、係、由快取記蝴 徑218傳輸至整合圮情 ^粗為料路 正口屺隱體控制器(IMC)22〇,而 琢疋分支歷
O:\89\89075 DOC -26 - 1240205 史表(ΒΗΤ)35之其他軟狀態係經由類似之内部資料路徑(未 出示)傳輪至整合記憶體控制器(iMC)22〇。替代上或此外, 在-杈佳具體實施例中,至少某些軟狀態之組件係經由掃 描鏈路徑方向214傳輸至整合記憶體控制器(imc)22〇。 經由一掃描鏈路徑方向保存軟狀態
基於複雜性,處理器與其feIC通常包括用以促進心則試 之電路。該測試電路包括如電機電子卫程師協會(麵)標 準1149.1 _ 1 990”標準$彳試存取埠及邊界掃描架構”所述的一 邊界掃㈣,此處以引用的方式併入本文中。通常透過一 封裝積體電路上之專屬插腳而存取的邊界掃描鏈係提供測 試一積體電路組件間之資料的一路徑方向。 現在參照圖7,其中描繪根據本發明的一積體電路7〇〇之 方塊圖。較佳者,積體電路700係如圖2之處理單元2〇〇的一 處理器。積體電路700包含三邏輯組件(邏輯)7〇2、7〇4與 7〇6,為了解釋本發明,其中將包含用以儲存處理軟狀態的 二記憶體元件。例如,邏輯702可為圖3a中所示之。快 取記憶體20,邏輯704可為有效轉實位址表(erat)32,而邏 輯706可為上述L2快取記憶體16的一部分。 於積體電路700之製造商測試期間,一信號係透過掃描鏈 邊界細胞708而傳送,較佳者,掃描鏈邊界細胞7〇8為時脈 控制之鎖存。由掃描鏈邊界細胞7〇8a輸出的一信號提供給 邏輯702的一測試輸入,其進而輸出一信號給掃描鏈邊界細 胞708b,接著透過其他邏輯(7〇4與7〇6)傳送該測試信號,直 到該信號到達掃描鏈邊界細胞708c為止。因此,其中存在 O:\89\89075 DOC •27- 1240205 多米諾骨牌效應’只有當接收來自掃描鏈邊界細 胞7〇8C之預期輸出時,邏輯702-706才算通過測試。、,' 過去,於製造後,將不再使用—積體電路之邊界掃描鍵。 然而,本發明利用所述之測試路徑方向作為—路徑方向, 以不阻料取記憶體/暫存H埠的―方式將軟_核離 轉移至圖2之整合記憶體控制器(IMC)22〇。亦即,當執行中 斷處置器(ih)或下—處理時,軟架構式狀態可藉:使I掃 描鏈測試路徑方向從快取記憶體/暫存器輸出,而沒有阻擋 下一處理或中斷處置器存取快取記憶體/暫存器。 " 由於掃描鏈214係一串列路徑方向,圖2圖解之串列轉平 行邏輯216將提供平行資料給整合記憶體控制器 (IMC)22G,以利將軟狀態適當傳輸至系統記憶體^ 8。在一 較佳具體實施例中,串列轉平行邏輯216同時包括用以識別 何資料來自何暫存器/快取記憶體之邏輯。此種識別可藉由 包括識別串列資料之前導識別標籤等熟習此項技藝者所知 之任何方法。於軟狀態資料轉換成平行格式後,整合記憶 體控制器(IMC)220經由高頻寬記憶體匯流排222將軟狀態 傳輸至系統記憶體11 8。 睛注意,該相同之掃描鏈路徑方向可進一步傳輸像是圖2 中描繪之影子暫存器208所包含的硬架構式狀態·。 第二階中斷處置器(SLIH)/第一階中斷處置器(FLIH)快閃 唯讀記憶體 在先前技術系統中,第一階中斷處置器(FLIH)與第二階 中斷處置器(SLIH)係儲存於系統記憶體,而且於呼叫時殖
O:\89\89075.DOC -28- 1240205 入快取記憶體階層。在一傳統系統中,初始時從系統記憶 體呼叫一第一階中斷處置器(FLIH)或第二階中斷處置器 (S LIΗ)將導致很長之存取潛伏(當快取記憶體中遺漏後,在 系統記憶體定位,以及從其中載入第一階中斷處置器 (FLIH)/第二階中斷處置器(slih))。將第一階中斷處置器 (FLIH)/第二階中斷處置器(SLIH)指令與資料殖入快取記憶 體會使快取記憶體受到後續處理不需要之資料與指令,,污 染丨丨。 如圖3a與8a所描繪,為了降低第一階中斷處置器(FLIH) 與第二階中斷處置器(SLIH)之存取潛伏以及防止快取記憶 體污染,處理單元200將至少某些第一階中斷處置器(FLIH) 與第二階中斷處置器(SLIH)儲存於一特殊晶載記憶體(例 如:快閃唯讀記憶體(R〇M)802)中。第一階中斷處置器 (FLIH)804與第二階中斷處置器(Slih)806可於製造時燒入 快閃唯讀記憶體(R〇M)802,或者於製造後藉由熟習此項技 藝者熟知之快閃程式規劃技術加以燒入。當(圖2描繪之)處 理單元200接收一中斷時,第一階中斷處置器(FLIH)/第二階 中斷處置器(SLIH)係從快閃唯讀記憶體(r〇m)802直接存 取’而非從糸統記憶體11 8或快取記憶體階層212存取。 第二階中斷處置器(SLIH)之預測 正常下,當處理單元200中發生一中斷時,將呼叫一第一 階中斷處置器(FLIH),然後第一階中斷處置器(flih)呼叫 一第二階中斷處置器(SLIH),以完成中斷之處置。至於呼 叫何第二階中斷處置器(SLIH)以及第二階中斷處置器 O:\89\89075 DOC -29- 1240205 (SLIH)如何執行將取決於包括傳遞之參數、條件狀態等各 種因子而變化。例如於圖8b中,呼叫第一階中斷處置器 (FLIH)8 1 2導致呼叫與執行第二階中斷處置器(SLIH)8丨斗, 進而導致執行位於點B之指令。 因為程式之行為可以重覆,所以經常有一中斷發生多二欠 的情況,因而執行相同的第一階中斷處置器(FLIH)與第二 階中斷處置器(SLIH)(例如:第一階中斷處置器(FLIH)8l2 與第二階中斷處置器(SLIH)814)。結果,本發明了解:藉 由預測中斷處置處理之控制圖可能重覆,以及沒有先執行 第一階中斷處置器(FLIH)而推測執行第二階中斷處置器 (SLIH)部分,可加速後續發生的一中斷之中斷處置。 為了促進中斷處置預測,處理單元200配備一中斷處置器 預測表(IHPT)808,圖8c中將更詳細加以顯示。中斷處置器 預測表(IHPT)808包含多重第一階中斷處置器(FLIH)之基 底位址8 16(中斷向量)的一清單。中斷處置器預測表 (IHPT)808儲存分別與每一第一階中斷處置器(FLIH)位址 8 16相關聯的一組一或更多第二階中斷處置器(SLIH)位址 8 1 8,其先前已由關聯之第一階中斷處置器(FLIH)加以呼 叫。當以一特定第一階中斷處置器(FLIH)之基底位址存取 中斷處置器預測表(ΙΗΡΤ)808時,預測邏輯δ20選擇與中斷 處置器預測表(ΙΗΡΤ)808中特定第一階中斷處置器(FLIH) 位址816相關聯的一第二階中斷處置器(SLIH)位址8 18作為 可能被該特定第一階中斷處置器(FLIH)呼叫的第二階中斷 處置器(SLIH)位址。請注意,雖然圖解中預測之第二階中 O:\89\89075 DOC -30- 1240205 斷處置器剛位址可為如圖8b中圖解之第二階中斷處置 器(SLm)814的基底位址,但該位址亦可為第二階中斷處置 器(SLm)8丨4内之起始點(例如··點B)其後續—指令的位址。 預測璉輯820使用預測特定第一階中斷處置器將 呼叫何第二階中斷處置器(SLIH)的—演算法^一較佳具 體實施例中,此演算法挑選與特定第—階中斷處置器(flih) 相關聯的一最近使用之第二階中斷處置器(suh)。在另一 較佳具體實施例中,此演算法挑選與特定第一階中斷處置 器(FLIH)相關聯的-歷史上最常呼叫之第二階中斷處置器 (SLm)。上述之任一較佳具體實施例可在要求預測第二階 中斷處置器(SLm)時運轉該演算法,或者連續更新預測之 第二階中斷處置器(SLIH),並將其儲存於中斷處置器預測 表(IHPT)808 中。 值得注意的是:本發明與技藝中所知之分支預測方法不 同。首先,上述方法造成跳越至一特定中斷處置器,而非 根據-分支指令位址。亦即’先前技術中使用之分支預測 方法係預測-分支作業之輸出,而本發明係根據一(可能) 非分支指令而預測跳越至某特定中斷處置器。如此導引出 一第二相異處’亦gp :相較於先前技術之分支預測,藉由 本發明之主旨的中斷處置器預測可跨越更多程式碼,因為 本發明允許略過(像是第n斷處置^ (flih)巾之)任音 指令數然而’由於-傳統分支預測機構可掃描之指令= 大】原本有限因此僅准許分支預測略過所預測之分支前 面的有限指令數。第三,根據本發明之中斷處置器預測未
O:\89\89075 DOC >31 - 1240205 被限制於先前技術中所知之採用/不採用分支預測的二選 一決定。因此,再次參照圖8c,預測邏輯820可從任意數目 之歷史第二階中斷處置器(SLIH)位址818中選擇預測之第 二階中斷處置器(SLIH)位址822,而一分支預測方案僅可從 一順序之執行路徑與一分支路徑中選擇。 現在參照圖9,其中圖解根據本發明而預測一中斷處置器 的一示範方法之流程圖。當一處理器接收一中斷時(方塊, 902) ’該中斷所呼叫之第一階中斷處置器(FLIH)(方塊904) 以及根據先前執行歷史之中斷處置器預測表(ΙΗΡΤ)808所 指示的一預測之第二階中斷處置器(SLIH)(方塊906)同時開 始同時間多執行緒(SMT)之並行執行。 在一較佳具體實施例中,於接受一中斷時,響應監視該 呼叫之第一階中斷處置器(FLIH),將執行跳越至預測之第 二階中斷處置器(SLIH)(方塊906)。例如,再次參照圖8中所 不之中斷處置器預測表(IHPT)808。當接收中斷時,比較第· —階中斷處置器(FLIH)與中斷處置器預測表(mPT)808中_ 儲存之第一階中斷處置器(FLIH)位址816。如果所比較之中, 斷處置器預測表(IHPT)808中儲存的第一階中斷處置器 (FLIH)位址816與該中斷所呼叫之第一階中斷處置器(FLIH) 的位址相同,則中斷處置器預測表(IHPT)808提供預測之第 ~ &中斷處置器(SLIH)位址822,而且立即開始從預測之第 ~階中斷處置器(SLIH)位址822起始的程式碼執行。 車又佳者’已知正確之第二階中斷處置器(SLIH)與預測之 $ —階中斷處置器(SLIH)的後續比較係藉由將使用中斷處
0:\89\89〇75.D〇C -32- 1240205 階τ斷處置器 置益'預測表(IΗ Ρ Τ) 8 0 8所呼叫之預測的第 (SLIH)位址822係以一預測旗標儲存於包含第一階中斷處 置器(FLIH)位址的一第二階中斷處置器(SUH)預測暫存器 中。在本發明的—較佳具體實施例中,當知道執行如-”跳 越”指令之類從第一階中斷處置器(fuh)呼叫一第二階中 斷處置器(SLIH)的-指令時,該跳越所呼叫之位址將與位 於預測暫存器(並以預測旗標識別為先前所預測且目前執 行)之預測的第二階中斷處置器(SLm)位址822相比較。比 較來自預測暫存器之預測的第二階中斷處置器(suh)位址 822與執行之第―階中斷處置器(FuH)所選擇的第二 斷處置器(SUH)(方塊91〇)。如果預測之第二階中斷處置器 (紅IH)正確,則完成預測之第二階中斷處置器(SUH)的執 的方塊9叫’因而加速中斷之處置。然而,如果第二階中 斷處置器(SUH)係、錯誤之預測,則取消預測之第二階 =印LIH)的進—步執行,並以執行正確㈣二階中斷 处置器(SLIH)取代之(方塊916)。 狀態管理 ^在參照圖1〇,其中描綠以圖形圖解系統記憶體 ;::狀:與一示範多處理器⑽則處理版 處理一體分割間之邏輯關係的概念圖。如圖_ 丁所有硬木構式狀態及軟狀態係儲存於 :且:::任::割内處理器力,取的-特殊:: ㈣始時,超管理員術可配置處理器績處理w 作為分㈣的-對稱多處判=
〇:\89\89075 DOC -33 - 1240205 器D被配置以作為分割γ内的—對稱多處理器(讀)。當執 行時,處理器A_D可能中斷,造成處理器A-D個別以上述討 論之方切硬狀態A_D與軟狀態A-D分別儲存至記憶體。有 別於先則技術之系統不准許相異分割的處理器存取相同的 記憶體空間,任何處理器可以存取任何硬或軟狀態Μ,以 回復關聯之中斷的處理。例如,了其分割内所產生之硬 及軟狀態C與D外,處理器〇亦可存取硬及軟狀態八與8。因 此,任何處理狀態均可由任何分割或處理器加以存取。結 果’超官理貝402對於分割間之負載平衡可以有很大的自由 度與彈性。 軟狀態快取記憶體一致性 如以上所討論,中斷之處理的軟狀態可包括像是圖^中 圖解之L 1 I決取a己憶體! 8、L2 D_快取記憶體與[a快取記 Μ 16的快取㈣體之内容。雖然此等軟狀態係儲存於系 統記憶體中’但如以上參照圖补所述,包含軟狀態之至少 某些貢料有可能因為其他處理所進行之資料修正而變質。 因此本發明提供一種使系統記憶體中儲存之軟狀態保持快 取記憶體一致的機構。 如圖η之圖解,系統記憶體118中儲存之軟狀態可被概念 化為儲存在”虛擬快取記憶體”中。例如,L2快取記憶體16 之軟狀態係於L2虛擬快取記憶體11()2中。L2虛擬快取記憶 體包含-位址部分,其中包括來㈣快取記憶體Μ之絲 貧料⑴〇其每一快取記憶體線的標籤11〇4與索引η%。同 樣地,L1虛擬ί-快取記憶體1112包含一位址部分,其中包括 〇:\89\89〇75 D〇c -34- 1240205 來自Ll I-快取記憶體18之保存指令112〇的標籤ιη4與索引 111 6,而且L 1虛擬D-快取記憶體1丨22包含一位址部分,其 中包括來自LI D-快取記憶體20之保存資料113〇其每一快 取記憶體線的一標籤1124與索引1126。此等,,虛擬快取記憶 體”各由整合記憶體控制器(IMC)22〇經由互連222加以管 理,以維護一致性。 整合記憶體控制器(IMC)220檢測系統互連222上之每一 作業。當檢測一作業要求一快取記憶體線無效時,整合記 憶體控制器(IMC)220以該作業檢測虛擬快取記憶體目^錄 1132。如果偵測得一檢測命中,貝j整合記憶體控制器 (IMC)22G藉由更新適當之虛擬快取記憶體目錄使系統記憶 體118之虛擬快取記憶體線無效。雖然檢測無效有可能要^ 確切之位址匹配(亦即:標籤與索引均匹配),但實作一精確 之位址匹配要求整合記憶體控制器(IMC)22〇具有大量^路 (尤其用於64位元與更大位址)。因此,在一較佳具體實施例 中,檢測無效並不精確,因而選定之最大有效位元⑽B) 與檢測位址相匹配的所有虛擬快取記憶體線將益效。使用 哪些最大有效位元(謂)決定虛擬快取記憶體記憶體中哪 些快取記憶體線無效係實作之特性,而且可經由模式位元 以軟體控制或硬體控制◊因此,可對標籤或只有標籤的一 部分(像是U)個最大有效位元)檢測位址。此種虛㈣取纪憶 體之無效性方案具有使依舊包含有效資料之快取記憶體線 無效的缺點’但此缺點可藉由提供一種非常快速維護虛擬 快取記憶體線一致性之方法達成效能優勢而加以超越^ O:\89\89075.DOC '35- 1240205 製造等級剩試 於製造期間,積體帝欠、曾 、兒路遲循各式各樣之作業條件下的— 連亭測試。其卜測試為使用上述删⑽丨測試掃描鍵 二一測試㈣流測試所有積體電路之内料1的-資料測 :式,,先別技術中’當積體電路安裝於-作業環境後,這 員則式私式將不再運轉,部分係、因為在大部分作業環境中 將積體電路連接至用以執行測試的—測試固定物並不合 理’以及因為這類測試防止積體電路進行預計之用途。例 如’於處理器_中’硬架構式狀態必須經由載人/儲存執 行路輕加㈣存以及從^記㈣復原,㈣止於測試期 間元成貫際工作,而引進重大潛伏。 土然而,由於保存及復原硬架構式狀態之時間非常短,較 仏者」堇數時脈週期’所以儘管-處理器被安裝於-正常 乍業衣i兄(例如·_電腦系統)中,該處理器依舊可使用上述 更木構式狀態儲存方法例行性運轉—製造等級測試程式。 、、、圖1 2,其中描繪根據本發明之製造等級測試程 式的一示範方法之流程圖。較佳者,該測試程式係定期運 因此,如方塊1202與1204所描繪,於經過一預定時間 量後,處ί里器中啟動—中斷(方塊m6)。以使用本發明之任 何中斷為例,當測試程式開始運轉且發出該中斷時,如方 A 斤搖繪,將使用上述保存硬架構式狀態之較佳方法 、、呆存(通吊在2-3時脈週期内)目前執行之處理的硬架構 式狀怨。較佳者’以上述圖6b中的—方式並行保存目前執 行之處理的軟狀態之至少一部分(方塊121〇)。
O:\89\89075.DOC -36- 1240205 “如方塊m2所述,„性將製造測試程式之硬架構式狀 態載入處理器。在本發明的—較佳具體實施例中,制、土等 級測試程式係從圖峨繪之快閃唯讀記憶體(二二 所載入的-製造等級測試程式81〇。製造等級測試程式 可於處理單元200最初製造時燒入快閃唯讀記情體 (麵卿,或者製造等級測試程式㈣可於後續燒入。如 果快閃唯讀記憶體(ROM)8〇2中儲存多重製造等級 式,則選擇該等製造等級測試程式之一,以便執行。在: 用本發明的—較佳具體實施例中,如以上方塊1202與1204 所述,製造等級測試程式係於每次執行一計時器 轉。 一旦硬架構式狀態載人處理器後,較佳者,❹上述咖 1149.1測試掃描鏈開始運轉製造等級測試程式(方塊 12丨4)。#父佳者’軟架構式狀態以上述軟狀態更新(圖6b)之 方式並行流人處理器(方塊1216)。於完成製造等級測試程式 之執:時’中斷將完成,而且藉由載入下-處理之硬架構 式狀恶舆軟狀態而執行該處理(方塊1218)。 :載入更木構式狀態僅要求數時脈週期, ==所要求之時間約束™計者希望= π 轉製造等級測試程式。製造測試程式之執行可由 使用者、作業系統或超管理者加以啟動。 方:此:本發明提供一種因應尤其有關中斷之潛伏問題的 ^ 例如,在先岫技術中,如果中斷處置器係一 书呼Η之處理,則當在低快取記憶體階層甚至系統記憶
O:\89\89075.DOC -37- 1240205 體中搜尋適當之中斷處置器時,通常存在一長潛伏。當t 斷處置器執行時,將以處置該中斷所需之指令/資料殖入處 理為之快取記憶體階層,因此,當中斷之處理恢復執行時, 快取記憶體階層將受”污染"。本發明利用此處所述之發明 處理來解決此等問題。 雖然已就一電腦處 - 、丨’、肌% ’十、"VI、合種万面, 但應了解:替代上,本發明之至少某些方面可以一資料儲 存系統或電腦系統所使用的一程式產品加以實作。定義本 發明其功能之程式可經由包括但不限於··不可寫入儲存媒 體(例如·唯讀光碟(CD_R〇M))、可寫入儲存媒體(例如··一 磁片、硬碟驅動、讀取/寫入唯讀光碟(cd_r〇m)、光學媒 體=及像是包括乙太(Fernet)之電腦^ f ^、網路的通信 二“各式各樣信號載送媒體投遞給一資料儲存系統或電 :乐、洗。因此’應了解··這類信號載送媒體提供本發明之 代具體貫施例’以承載或編碼用以指導本發明之 月匕的電腦可讀取於人 $ + 力 再者,可以了解··本發明可藉由具 有如此處所述或其等 ^ '、 文之硬體、軟體或軟體與硬體的一組 口荨形式之裝置的—系統加以實作。 但= = = —較佳具體實施例出示及說明本發明, 圍下者可了解:於沒有偏離本發明之精神與範 r 二 了進仃形式與細節上之各種改變。 【圖式簡單說明】 寸力之申清專利範圍中 而,當結人㈣土 陳11本么月特有之新穎特性。然 附圖—起閱讀’且參照-圖解之具體實施例的
O:\89\89075.DOC -38- 1240205 以下詳細說明時,將可完全了解本 ^ d具本身,以及一較 佳使用模式 '進一步目的與優勢,其中· 圖1描繪利用一先前技術之方法的_ 心门4 J傳統電腦系統之方 塊圖,其中使用一載入/儲存單元 仔處理為之架構式狀 態; 圖2圖解根據本發明的一資料處 乐、、死其不範具體實施 例之方塊圖; 圖3a與3b描緣圖2中圖解的一處理單元之額外細_ ; 圖4圖解根據本發明的一示範軟體組態層之圖形; 、圖㈣5b-起形成根據本發明的—示範”處置處理之 流程圖; 圖㈣㈣出示圖5a中所述步驟其進-步細節之流程 圖’其中根據本發明保存—硬架構式狀態與軟狀態; 圖7描繪本發明將至少一處理之軟狀態通信至記憶體的 掃描鏈路徑方向; 圖8a-8c圖解圖2中描繪的一快閃唯讀記憶體(R〇M)之額 外、、田節其用以根據本發明儲存至少第一階中斷處置器 (FLIH)、第二階中斷處置器(SLm)與製造等級測試指令; 圖9係描述根據本發明在一處理器接受一中斷時跳越至 一預測之第二階中斷處置器(SUH)的一流程圖; 圖10描繪儲存之硬架構式狀態、儲存之軟狀態、記憶體 分割與處理器間之邏輯及通信關係; 圖11圖解軟狀態儲存於記憶體中的一示範之資料結構; 以及
O:\89\89075.DOC -39- 1240205 圖1 2係於一電腦系統正常作業期間透過執行一製造等級 測試程式而測試一處理器的一示範方法之流程圖。 【圖式代表符號說明】 16 第二階快取記憶體 22 命中/遺漏邏輯 24 指令快取記憶體需求匯流排 26 指令快取記憶體重載匯流排 28 預提取緩衝器 30 指令提取位址暫存器 32 效轉實位址表 34 指令快取記憶體目錄 35 分支歷史表 36 分支預測單元 38 總體完成表 40 指令提取緩衝器 42 指令翻譯單元 5 1 監督者等級暫存器 52 狀態暫存器映射器 54 鏈接與計數暫存器映射器 56 例外暫存器映射器 58 多用途暫存器映射器 60 浮點暫存器映射器 62 狀態暫存器發出佇列 64 分支指令佇列 O:\89\89075.DOC -40- 1240205 80 狀態暫存器檔案 82 鏈接與計數暫存器檔案 88 浮點暫存器檔案 90 狀態暫存器單元 92 分支執行單元 94 定點單元 100 處理器核心 104 指令順序邏輯 110 架構式暫存器 113 資料翻譯後備緩衝器 114 中斷線 115 指令翻譯後備緩衝器 116 記憶體匯流排 18, 102 第一階指令快取記憶體 20, 112 第一階資料快取記憶體 66, 68 定點發出佇列 70, 72 浮點發出佇列 144 預解碼邏輯 84, 86 多用途暫存器 44, 46, 48, 50 鎖存器 201 多處理器資料處理系統 202 指令順序單元 208 影子暫存器 212 快取記憶體階層 O:\89\89075.DOC -41 - 1240205 216 串列轉平行介面 220 整合記憶體控制器 222 互連 302 組態暫存器 304 處理器版本暫存器 306 機器狀態暫存器 308 記憶體管理暫存器 309 指令區塊位址翻譯暫存器 310 區塊位址翻譯暫存器 311 資料區塊位址翻譯暫存器 312 段暫存器 314 例外處置暫存器 316 資料位址暫存器 318 特殊用途暫存器 320 狀態儲存/復原暫存器 322 雜項暫存器 324 時基暫存器 326 衰減計暫存器 328 資料位址斷點暫存器 330 時基中斷暫存器 118, 118a, 118η 系統記憶體 402 超管理員 96, 98, 108a,108d 載入/儲存單元 206, 210 硬狀態暫存器 O:\89\89075.DOC -42- 1240205 掃描鏈路徑方向 積體電路 快閃唯讀記憶體 中斷處置器預測表 製造等級測試程式 204處理單元 214, 218 700 802 808 810 10, 200, 200a,200η, 816 第一階中斷處置器位址 820 預測邏輯 1132 虛擬快取記憶體目錄 404a, 404b, 404η 作業系統 408a,408b,408z 處理 804, 812 第一階中斷處-置器 806, 814 第二階中斷處置器 406, 406a,406b,406x 應用程式 818, 822 第一階中斷處置器位址 702, 704, 706 邏輯組件 708a,708b,708c 掃描鍵邊界細胞 1102, 1112, 1122 第一階虛擬資料快取記憶體 1106, 1116, 1126 索引 1108, 1118, 1128 一致性狀態 1110, 1120, 1130 資料 1104,1114, 1124 標籤 O:\89\89075.DOC -43 -

Claims (1)

1240205 拾、申請專利範圍: L 一種在一處理器内之中斷處置方法,該方法包含: 響應在處理器接受一處理中 -中斷處置器之執行; ,罐讀仃歷史而預測 推測執行預測之中斷處置器;以及 係正:動預測之中斷處置器的推測執行後,解析該推測執行 係正確之預測或錯誤之預測。 2· 如申請專利範圍第1項之方法,進一步包含· 3. 響應解析《測執行係錯誤之制,财止_之令斷處 的執灯’而且執行-替代之t斷處置哭。 項之方法…該解析包含執行-第— =含置"決定—正確之第二階中斷處置器,該方法 響應解㈣推測執行係正確之預測,則停止正確之第^ 中:處置為的執行,而且完成預測之中斷處置器的執行/ 4. 如申請專利範圍第#之方法,進—步包含: 根據一執仃歷史而維護一中斷處置器預測表之處理器,盆 中忒預測步驟包含藉由參照 ” 測之中斷處置器的執行。 益預測表而預測所預 5. 利範圍第4項之方法,其中處置 在處理器内維護。 只〜衣係 範圍第4之方法,進一步包含 存於一唯讀記憶體。 及I為保 7·如申請專利範圍第6項之方法,其中將中斷處置器儲存於唯 O:\89\89075.DOC 1240205 讀記憶體包含射斷處£||儲存於處判内所 讀記憶體。 % 8. -種處理器,包含·· 至少一執行單元; 耦合至少一執行單元的一指令順序單元;以及 理,It旨令順序單元的一中斷處置器預測表,其令響應處 為接收-中斷,該中斷處置器預測表根據中斷處置 表内料的-中斷處置器執行歷史而預測複數個中斷處置 =一的執行4其中該指令順序單元指導至少—執行單元 執行預測之中斷處置器。 9.如中請專利範㈣8項之處理器,其中響應處理器決定預測 之中斷處置器係錯誤之預測’處理器中止預測之中斷處置器 的執行。 10·如申請專利範圍第8項之處理器,進一步包含·· 轉合至該指令順序單元且包含複數個中斷處置器的一機 載可程式記憶體。 11 · 一種資料處理系統,包含·· 仰包括根射請專利制第8項的—處理單元之複數個處理 器, 耦合至複數個處理器的-依電性記憶體階層;以及 輕合複數個處理器的一互連。 12. —種處理器,包含: 響應在處理器接受_虛f + 安又處理中斷而根據先前執行歷史預測 一中斷處置器之執行的裝置; O:\89\89075.DOC 1240205 推測執行預測之中斷處置器的裝置;以及 係動預測之中斷處置器的推測執行後解析該推測執行 ,、確之預測或錯誤之預測的裝置。 lj•如申W專利範圍第12項之處理器,進一步包含·· j應解析該推測執行係錯誤之預測而預測所預測之中斷 處置器的執行之裝置,以及執行一替代中斷處置器的裝中置斷 14·二j利範圍第12項之處理器,其中該解析裝置包含執行 階中斷處置^決定—正確之第二階 裝置,該處理器進一步包含: 益的 響應解析該推測執行係正確之預測而停止正確之第二 2斷處置盗的執行以及完成預測之中斷處置器的執行之裝 15·如申請專利範圍第12項之處理器,進一步包含·· 根據一執行歷史而維護一中斷處置器預測表之裝置,其中 該預測裝置包含藉由參照中斷處置器預測表而預測所預測 之中斷處置器的執行之裝置。 16.如:請專利範圍第15項之處理器,其中該維職置包含在處 理器内維護中斷處置器預測表之裝置。 Π.如申請專利範圍第12項之處理器,進—步包含財斷處置器. 儲存於一唯讀記憶體之裝置。 18.如申請專利範圍第17項之處理器,其中將中斷處置器儲存於 唯讀記憶體之裝置包含將中斷處置器儲存於處理器内所整 合的一唯讀記憶體之裝置。 19· 一種資料處理系統,包含: O:\89\89075.DOC 1240205 包括根據申請專利範圍第11項的一處理單元之複數個處 理器; 耦合至複數個處理器的一依電性記憶體階層;以及 耦合複數個處理器的一互連。 O:\89\89075.DOC
TW092130508A 2002-12-05 2003-10-31 Interrupt handler prediction method and system TWI240205B (en)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US10/313,301 US20040111593A1 (en) 2002-12-05 2002-12-05 Interrupt handler prediction method and system

Publications (2)

Publication Number Publication Date
TW200422960A TW200422960A (en) 2004-11-01
TWI240205B true TWI240205B (en) 2005-09-21

Family

ID=32468210

Family Applications (1)

Application Number Title Priority Date Filing Date
TW092130508A TWI240205B (en) 2002-12-05 2003-10-31 Interrupt handler prediction method and system

Country Status (5)

Country Link
US (1) US20040111593A1 (zh)
JP (1) JP2004185603A (zh)
KR (1) KR20040049255A (zh)
CN (1) CN1295611C (zh)
TW (1) TWI240205B (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI630554B (zh) * 2013-08-23 2018-07-21 Arm股份有限公司 處理用於資料存取的存取屬性

Families Citing this family (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7529914B2 (en) * 2004-06-30 2009-05-05 Intel Corporation Method and apparatus for speculative execution of uncontended lock instructions
US7424563B2 (en) * 2006-02-24 2008-09-09 Qualcomm Incorporated Two-level interrupt service routine
US7913009B2 (en) * 2007-06-20 2011-03-22 Microsoft Corporation Monitored notification facility for reducing inter-process/inter-partition interrupts
US8024504B2 (en) * 2008-06-26 2011-09-20 Microsoft Corporation Processor interrupt determination
US20090327556A1 (en) * 2008-06-27 2009-12-31 Microsoft Corporation Processor Interrupt Selection
US8291202B2 (en) * 2008-08-08 2012-10-16 Qualcomm Incorporated Apparatus and methods for speculative interrupt vector prefetching
US9785462B2 (en) * 2008-12-30 2017-10-10 Intel Corporation Registering a user-handler in hardware for transactional memory event handling
US8171328B2 (en) 2008-12-31 2012-05-01 Intel Corporation State history storage for synchronizing redundant processors
KR101610828B1 (ko) * 2009-09-23 2016-04-08 삼성전자주식회사 멀티코어 프로세서의 인터럽트 온/오프 관리 장치와 방법
US8972642B2 (en) 2011-10-04 2015-03-03 Qualcomm Incorporated Low latency two-level interrupt controller interface to multi-threaded processor
GB2513043B (en) * 2013-01-15 2015-09-30 Imagination Tech Ltd Improved control of pre-fetch traffic
GB2522477B (en) * 2014-01-28 2020-06-17 Advanced Risc Mach Ltd Speculative interrupt signalling

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5214785A (en) * 1989-09-27 1993-05-25 Third Point Systems, Inc. Controller with keyboard emulation capability for control of host computer operation
US6356989B1 (en) * 1992-12-21 2002-03-12 Intel Corporation Translation lookaside buffer (TLB) arrangement wherein the TLB contents retained for a task as swapped out and reloaded when a task is rescheduled
DE69326935T2 (de) * 1993-03-02 2000-05-18 International Business Machines Corp., Armonk Verfahren und Vorrichtung zur Übertragung von einem Datenstrom mit hoher Bitfolgefrequenz über unabhängige digitale Kommunikationskanäle
AU6023894A (en) * 1993-03-25 1994-10-11 Taligent, Inc. Multi-level interrupt system
ES2138051T3 (es) * 1994-01-03 2000-01-01 Intel Corp Metodo y aparato para la realizacion de un sistema de resolucion de bifurcaciones en cuatro etapas en un procesador informatico.
US6189112B1 (en) * 1998-04-30 2001-02-13 International Business Machines Corporation Transparent processor sparing
US6247109B1 (en) * 1998-06-10 2001-06-12 Compaq Computer Corp. Dynamically assigning CPUs to different partitions each having an operation system instance in a shared memory space
US6571359B1 (en) * 1999-12-13 2003-05-27 Intel Corporation Systems and methods for testing processors
JP3404322B2 (ja) * 1999-05-25 2003-05-06 株式会社エルミックシステム 割込処理方法、os支援システム、情報処理装置、記録媒体
US6981129B1 (en) * 2000-11-02 2005-12-27 Intel Corporation Breaking replay dependency loops in a processor using a rescheduled replay queue

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI630554B (zh) * 2013-08-23 2018-07-21 Arm股份有限公司 處理用於資料存取的存取屬性

Also Published As

Publication number Publication date
CN1504882A (zh) 2004-06-16
JP2004185603A (ja) 2004-07-02
TW200422960A (en) 2004-11-01
KR20040049255A (ko) 2004-06-11
CN1295611C (zh) 2007-01-17
US20040111593A1 (en) 2004-06-10

Similar Documents

Publication Publication Date Title
TWI263938B (en) Method, processor and data processing system for pre-loading a hard architected state of a next process from a pool of idle processes awaiting execution
EP1570351B1 (en) Cross partition sharing of state information
US7849298B2 (en) Enhanced processor virtualization mechanism via saving and restoring soft processor/system states
US20080127182A1 (en) Managing Memory Pages During Virtual Machine Migration
TWI240205B (en) Interrupt handler prediction method and system
JP3874287B2 (ja) 割込み時のプロセッサのアーキテクチャ状態の管理
JP3872470B2 (ja) メモリにおいてセーブされたプロセス状態を管理する方法、処理ユニットおよびデータ処理システム
US7039832B2 (en) Robust system reliability via systolic manufacturing level chip test operating real time on microprocessors/systems
JP2019510313A (ja) ベクトル命令の処理

Legal Events

Date Code Title Description
MM4A Annulment or lapse of patent due to non-payment of fees