TWI263938B - 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 - Google Patents

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 Download PDF

Info

Publication number
TWI263938B
TWI263938B TW092130386A TW92130386A TWI263938B TW I263938 B TWI263938 B TW I263938B TW 092130386 A TW092130386 A TW 092130386A TW 92130386 A TW92130386 A TW 92130386A TW I263938 B TWI263938 B TW I263938B
Authority
TW
Taiwan
Prior art keywords
processor
state
hard
processing
memory
Prior art date
Application number
TW092130386A
Other languages
English (en)
Other versions
TW200422949A (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 TW200422949A publication Critical patent/TW200422949A/zh
Application granted granted Critical
Publication of TWI263938B publication Critical patent/TWI263938B/zh

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30098Register arrangements
    • G06F9/30105Register structure
    • G06F9/30116Shadow registers, e.g. coupled registers, not forming part of the register space
    • 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/46Multiprogramming arrangements
    • G06F9/461Saving or restoring of program or task context
    • G06F9/462Saving or restoring of program or task context with multiple register sets

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Memory System Of A Hierarchy Structure (AREA)
  • Advance Control (AREA)
  • Multi Processors (AREA)
  • Electrotherapy Devices (AREA)
  • Hardware Redundancy (AREA)
  • Control Of Multiple Motors (AREA)

Description

1263938 寻來自處理器内的一事件。 術H , 例外較令斷頻繁許多。 何h中fe/f"與"例外”通常可以互換。 術含五"Φ f於本揭ii之目的, 中辦可同時說明"令斷"與”例外"之中斷。 由於軟體與硬體變得較複雜, 性增加。此等中斷右数目與頻千亦戲劇 行、多重月ΓΓ 為其可支援多重處理之執 特性呈右1、, 仟〜效此監視。雖然這類 且、夹=效盈’但中斷消耗之計算能力將戲劇性增加,而 4處理器處理速度之改良。因此下 理器之時脈相专说丄 / — 丨 W g處 頒率增加,但貫際上系統效能卻減少。 »圖1圖解—傳統處理器核心⑽。於處理器核心_内,— 第尸白才曰7快取記憶體(L1快取記憶體)102提供指令给 指令順序邏輯1()4,其再將指令發給適當之執行單元⑽,α 以便執行α。包括一浮點執行單元、一定點執行單元、—分 支執行單元之執行單元1〇8具有一載入/儲存單元(Ls仍 108a。載入/儲存單元(LSU) 1〇8a執行載入與儲存指令,分 別將貧料從第1階資料快取記憶體(LI D-快取記憶體)112 載入架構式暫存器11〇,以及將來自架構式暫存器u〇之資 料儲存於LI D-快取記憶體112。在u快取記憶體ι〇2與ιΐ2 中所遺漏之資料與指令需求可經由記憶體匯流排116存取 系統記憶體118而解析。 如以上之註明,處理器核心1〇〇遵循來自外部中斷線114 所示之一些來源的中斷。當處理器核心100(例如:經由中 斷線114之)接收一中斷信號時,目前所處理之執行將懸 置,且由稱為中斷處置器的一中斷專用軟體處置該中斷。
〇 \89\89074 DOC 1263938 尤其,中斷處置器透過以載入/儲存單元(LSU)丨〇8a執行儲 存與載入指令而保存及復原中斷時所執行之處理的架構式 狀態。如此使用載入/儲存單元(LSU) 1〇8以主返系統記憶體 11 8而轉移架構式狀態將阻擋中斷處置器執行其他記憶體 $取指令(一超純量電腦情況下為另一處理),直到狀態轉移 完成為止。結果,透過處理器之執行單元保存且於後續復 原處理其木構式狀怨將造成中斷之處理與中斷處置器兩 者的執行延遲。此種延遲導致處理器整體效能降低。因此, 本毛明了冑·需要-種最小化保存與復原尤其響應中斷之 架構式狀態所招致之處理延遲的方法及系統。 【發明内容】 本發明導引至在一資料處理系統的一處理 中斷處置之方法及系統 =理器接收-中斷信號時,—目前執行之處理的 =式狀態將被載人_或更多專屬之影子暫存器中。 物態包括處理器内用執行中斷之處理的基本資訊。進 了存此硬架構式狀態的—有利方法包括:❹: 見匯流排將硬架構式狀能产旦/ ^ 再式狀怨攸影子暫存器直接轉移至一/ 吕己憶體,而沒有侫用广田;& , 糸统 ,, (因而綁住)正常之載人/儲存路徑方a 及處理器執行單元。於 方向 、更木構式狀怨載入影子暫 中斷處置器可在接收 态唆, ./ 亥中斷之處理器或者一多處理写:欠… 处理系統中之另一處理哭 貝料 产 杰立即開始運轉。排定執行之 處理的硬架構係儲存 之下一 之下^ 處理為的一組暫存器中,所 之下一處理的硬架構將載入 ^排疋 里杰的目則處理硬架構暫存 °^9\89〇74.D〇c 1263938 器,使下一處理可迅速開始執行。 包括快取記憶體内容之處理的軟 至系統記憶體中。為了加速軟狀態之保^至乂口戸刀保存 之令斷處置器的資料碰撞,較蚀、子以f防止與執订 僅在製造商測試期間使用而不在正常::前技術中” 鍊路徑方向從處理器轉移軟狀態。”月間使用之知4田 :::處置器,完成時,將復原—中斷之處理的硬架構式 狀使其可在硬架構式狀態載人時立即運轉。 分割存取,硬與軟狀態將館存:可 存取之系統記憶體保留區域Γ 處理器與/或分割 從以下詳細撰寫之說明將 的、特性與優勢。【實施方式】 可明白本發明之上述及額外目 現在參照圖2’其中騎—多處理器(Mp)f料處理系統 2〇1的—示範具體實施例之高階方塊圖。雖'然多處理哭(MP) 資料處理系統2G1係以-對稱多處理器(清)加以描緣,但 本發明可用於熟習電腦架構技藝者所知之任何多處理写 ⑽)資料處理系統,其包括但不限於一非統一記憶體存取 (NUMA)多處理器(MP)或者一唯快取記憶體架構(c〇ma)多 處理器(MP)。 根據本發明,多處理器(Mp)資料處理系統2〇丨包括如處理 單元20〇a至200η所描繪之複數個處理單元2〇〇,其係以一互 連222耦合,以進行通信。在一較佳具體實施例中,將可了
O:\89\89074 DOC -9- 1263938 解·包括處理單元2〇〇2與處理軍 料處…麟… 多處理器(MP)資 同二單元200於架構上相似或者相 :理早二200a係-單-積體電路超純量處理器,如以 行單:步::論’其包括全部由積體電路所形成之各種執 :丁…暫存器、緩衝器、記憶體與其他功能單元。在多 =里器(州資料處理系侧中,每—處理單元2⑼係藉—夕 ::員見私用匯流排116福合至各別系統記憶體118,如處理 早兀200a之系統記憶體 憶體U8n。 m處理早之系統記 執=單包括一指令順序單元(isu)2〇2,其中含有 輯7° u) 204所執订之提取、排定與發出指令的邏 輯。“令順序單元(ISU) 2〇2盥勃 以圖3中示範之形式給定。 早綱之細節將 =單元(EU) 204聯結”硬”狀態暫存器2〇6,其中含有在 :rrGa内執行目前執行之處理所使用的基本資訊。 更狀恕暫存器2_禺合至下_硬狀態暫存器21〇,其中 :如當目前之處理終止或中斷時所執行之下一處理的硬狀 "狀態暫存器206同時聯結影子暫存器,其中含有 :1 3有)田目月執订之處理終止或中斷時硬狀態暫存器 2〇6其内容的一複本。 j —處理單元2⑻進—步包括—快取記憶體階層212 ’盆 央取記憶體。從系統記憶體ιΐ8載入之指令與資料 :使用的-晶載儲存器可藉像是快取記憶體階層212加以 士圖3所不’其包含—第一階指令快取記憶體(L II·
O:\89\89074.DOC -10- 1263938 快取記憶體)1 8、一第一階資料快取記憶體(L i d-快取記悻 體)20以及-統-之第二階快取記憶體(L2快取記憶幻 16。快取§己憶體階層212經由快取記憶體資料路徑218以及 根據至少一具體實施例而經由掃描鍊路徑方向2 1 4耦合至 系統記憶體118的一晶載整合記憶體控制器(IMc) 22〇。由 於掃描鍊路徑218係-串列路徑方向,所以掃描鍊路徑方向 214與整合記憶體控制器(IMC) 22〇間耦合串 2M。以下詳述描繪之處理單元2〇〇a的組件功能。 丨 J見在參照圖3a,其中出示處理單元2〇〇之額外細節。處理 單兀200包括一晶載多階快取記憶體階層,分別包括一統一 之第二階(L2)快取記憶體16,以及雙又之第—階⑼指令⑴ 與資料⑼快取記憶體18與20。如熟習此項技藝者所知,快 取記憶體16、18㈣提供低潛伏存取㈣記憶體ιΐ8之記憶 體位置的對應快取記憶體線。 響應指令提取位址暫存器(IFAR) 3〇中常駐之有效位址 (EA)而從L1 快取記憶體18中提取指令,以便處理。每一 週期中,將有-新的指令提取位址從以下三來源之一載入 指令提取位址暫存器(IFAR) 3G :分支預測單元(Βρυ) 3 6, 其提供條件式分支指令所導出之推測的目標路徑與順序位 址;總體完成表(⑽)38,其提供^與t斷位址;以及 :刀支執行單元(卿)92’其提供預測之條件式分支指令解 斤所導出的非推測位址。分支預測單元(Bpu) ^聯結—分 測的條件式分支指令解析 土歷史表⑽Τ) 35’其中記錄用以輔助未來之分支指令預
O:\89\89074.DOC 1263938 如指令提取位址暫存b(ifar) 30内之指令提取位址的— 有效位址(EA)係一處理器所產生之資料或指令位址。有效 位址(EA)扣疋一段暫存器以及該段内之偏移資訊。為了存 取記憶體之資料(包括指令),有效位址(EA)將透過與資料或 指令之實體儲存位置相關聯的一或更多階翻譯而轉換成一 貫位址(RA)。 於處理單元200内,有效轉實位址之翻譯係由記憶體管理 單元(MMUs)及關聯之位址翻譯設施所執行。較佳者,可提 供一分離之記憶體管理單元(MMU)供指令存取與資料存取 用。圖3a中為了清楚,在圖解中僅顯示一單一記憶體管理 單元(]\/[]^1;)112連接指令順序單元(181;)2〇2。然而,熟習 此項技藝者了解:較佳者,其同時包括連接(未出示)至載入 /儲存單元(LSUs) 96、98以及管理記憶體存取所需之其他組 件。記憶體管理單元(MMU) 112包括資料翻譯後備緩衝器 (DTLB) 113與指令翻譯後備緩衝器(ITLB) 115。每一翻譯後 備緩衝器(TLB)包含最近參照之頁表登錄,其(資料翻譯後 備緩衝器(DTLB) 113)或(指令翻譯後備緩衝器(ITLB) 115) 被存取用來將資料或指令之有效位址(EA)翻譯成實位址 (RA)。來自指令翻譯後備緩衝器(ITLB) 115之最近參照的有 效位址(EA)轉貫位址(ra)翻譯將高速緩衝於E〇p有效轉實 位址表(ERAT) 32中。 當指令提取位址暫存器(IFAR) 3〇中之有效位址(EA)經有 效轉實位址表(ERAT) 32翻譯以及〗_快取記憶體目錄34中之 貫位址(RA)經查找後,如果命中/遺漏邏輯22決定··指令提 O:\89\89074 DOC -12- 1263938 取位址暫存器(IFAR) 30中之有效位址(EA)的對應指令之快 取記憶體線並未常駐於L1 -快取記憶體18,則命中/遺漏邏 輯22、、二由I-快取§己憶體需求匯流排μ將實位址(ra)當作一 需求位址提供給L2快取記憶體16‘。這類需求位址亦可由L2 快取記憶體16内之預提取邏輯根據最近存取型樣而產生。 響應一需求位址,L2快取記憶體丨6輸出一指令之快取記憶 體線,其經由I-快取記憶體重載匯流排26,而且可能於通過 選擇性之預解碼邏輯丨44後載入預提取緩衝器28與U I-快取記憶體18。 只要指令提取位址暫存器(IFAR)30中之有效位址(ea)所 指定的快取記憶體線常駐於L1快取記憶體18,則li丨-快取 記憶體18將快取記憶體線同時輸出至分支預測單元(卿) 3 6與指令提取緩衝器(IFB) 4()。分支預測單元(卿)%掃描 分支指令之指令快取記憶體、線,而且如果存在的話,則預 測該條件式分支指令之結果。繼一分支預測後,如以上所 討論’分支預測單元(刖)36將-推測之指令提取位址配 置給指令提取位址暫存器(IFAR) 3G,並將該預測傳至分支 指令符列64,當分支執行單元92順序解析條件式分支指令 時,可以決定預測精確度。 指令提取緩衝器(IFB) 40暫時緩衝來自L1 L快取記憶體 18之接收指令的快取記憶體線,i到指令之快取記憶體線 可由指令翻譯單元(ITU) 42翻譯為止。在處理單元綱之圖 解具體實施例巾,指令翻譯單元(ITU) 42將使用者指令集架 構(UISA)指令翻譯成可能具有不同數目之内部isa
O\89\89074.DOC -13 - 1263938 ^ ,、可由處理單元200之執行單元直接執行。這類翻譯 可例如藉由參照一唯讀記憶體(R〇m)模板中儲存之微碼而 行在至 > 某些具體貫施例中,使用者指令集架構(Uisa) 轉内部ISA (IISA)之翻譯導致數目與使用者指令集架構 (UISA)指令不同的内部ISA (IISA)指令,與/或長度與對應 之使用者指令集架構(UISA)指令不同的内部ISA 指 令。然後,產生之内部ISA(IISA)指令由總體完成表38指派 給-指令群組’其成M可不依彼此間之次序加以調度及執 行。總體完成表38以至少一關聯之有效位址(EA),較佳者, 以指令群組中最舊指令之有效位址(EA)追縱尚未執行完畢 的每一指令群組。 繼使用者指令集架構_A)轉内部ISA (IISA)指令之翻 譯後’則根據指令類型,也許不依次序,將指令調度給鎖 存44、46、48與5G。亦即,將分支指令與其他狀態暫存器 (CR)修正指令調度給鎖存44,將定點與載人儲存指令調度 給鎖存46或48,以及將浮點指令調度給鎖存50。然、後,: 求-更名暫存W料料其執行結果之每_指令將由狀 態暫存器(CR)映射器52、鏈接與計數(Lc)暫存器映射器 5广、例外暫存器(XER)映射器56、多用途暫存器(⑽)映射 器58與浮點暫存器(FpR)映射器⑹中之適當者指派 多更名暫存器。 然後’調度之指令被暫時放置於狀態暫存器(叫發出广 me卿62、分支發出仔列(BIQ) 64、定點發出件列(F 丁 66與68,以及浮點發出仔列(FPIQ) 7〇與72中—適當)
O:\89\89074 DOC -14 - 1263938 觀察資料之相依性與反相依性後,則將指令從發出佇列 62、64、66、68、70與72伺機發給處理單元10之執行單元, 以便執行。然而,指令將在發出佇列62-72中維護到該指令 執行完畢為止,而且如果有的話,產生之資料將被寫回, 以防止有任何指令必需重新發出。 如圖解,處理單元204之執行單元包括:執行狀態暫存器 (CR)修正指令的一狀態暫存器(CR)單元(CRU) 90、執行分 支指令的一分支執行單元(BEU) 92、執行定點指令的兩定 點單元(FXUs) 94與100、執行載入與儲存指令的兩載入/儲 存單元(LSUs) 96與98,以及執行浮點指令的兩浮點單元 (FPUs) 102與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 O:\89\89074 DOC -15 - 1263938 可據以解析條件式分支,以獲得—路徑位址。同步化之多 料暫存11 (GPRs)84與86心«暫存^ «、健存由定 早tl(FXU) 94與1〇〇及载入/儲存單元(lsUs) %句8所存 取及產生之定點與整數值。如同多用途暫存器(GpRs)_ 6可以同步化之暫存杰的複製組加以實作的浮點暫存器 (FPR)檔案88包含浮點數值,其係浮點單元(刚s)⑽盘^ 之浮點指令執行以及載入/儲存單元(LSUs) 9_8之浮點 載入指令執行的結果。 、於—執行單元完成-指令之執行後,該執行通知總體完 成表(GCT) 38 ’其係、以程式次序排定指令之完成。為了 — 成由狀態暫存器(CR)單元(CRU) 9G '定點單元(Fxus) 9: 二〇或浮點單元(FPUs) i 〇2與i 〇4之一所執行的一指令,總體 ^成表(GCT) 38發信號給執行單元,如果有的話,產生之 貝枓將從指派之更名暫存器寫回適當之暫存器槽案内的一 或更夕木構式暫存器。,然後,將該指令從發出仔列中移除, 一旦指令群組内之所有指令均已完成’則將其從總體完成 ()3 8中移除。然而,其他指令類型係以不同方式完 成。 當分支執行單元(卿)92解析-條件式分支指令而且決 定應採用之執行路徑的路徑位址時’該路徑位址將與分支 預測單元(BPU) 36所預測之推測路徑位址相比較。如果路 徑位址相符,則不需進一步處理。然而,如果計算之路徑 :址與預測之路徑位址不相符’則分支執行單元(B岡Μ 七、應正確之路位址給指令提取位址暫存ϋ (IFAR) 30。以
O:\89\89074 DOC -16- 1263938 上任-事件都從分支發出仔列(BIQ) 64中移除該分支指 令,而且當相同指令群組内之所有其他指令均完成時,則 將其從總體完成表(GCT) 38中移除。 繼-載入指令之執行後,藉由執行載入指令而計算之有 效:址係以一資料之有效轉實位址表㈣AT)(未圖解)翻譯 成一實位址,然後當作-需求位址提供^id_快取記憶體 2〇 °此時,載入指令將從定點發出仵列(FXIQ) 66或68中移 除’亚且放置於載入重排序佇列(LRQ) 114中,直到指示之 載入執行為止。如果需求位址在L1 D_快取記憶體2〇中遺 漏’則該需求位址將被放置於載入遺漏件列(lmq)u6,其 中要求之資料係從L2快取記憶體16擷取,但無法從另一處 理單元200或系統記憶體118 (如圖2所示)操取。載入重排序 佇列(LRQ) 114檢測互斥之存取需求(例如:讀取而且希望 修正),在互連222結構(如圖2所示)上將傳遞中之載入清除 或刪除’而且如果發生一命巾,則取消並且重新發出該載 入指令。同樣地,儲存指令係利用一儲存佇列^丁⑺^0加 以完f ’繼儲存指令之執行後,用以儲存之有效位址被載 入。資料將從儲存仔列(STQ) 11〇儲存至L1 d_快取記憶體 20或L2快取記憶體16,或其兩者。 處理器狀態 -處理器之狀態包括··儲存之資料、指令,以及於一特 殊時間之硬體狀態、,而1此處將該硬體狀態定義為:”硬,, 或”軟"。”硬”狀態定義為:一處理器從一處理之目前執行點 執行該處理之架構上所需的處理器内資訊。相料,”軟"
〇:\89\89〇74 DOC -17- 1263938 狀態定義為:彳改良一處理之執行效率但並非達成一芊構 上正確之結果所需的處理器内資訊。於圖3a之處理單元川〇 中,硬狀態包括像是狀態暫存器檔案(CRR) 8〇、鏈接與計 數器播案(LCR) 82、多用途暫存器(GpRs)料與%、浮點暫 存器(FPR) 88等使用者等級暫存器以及監督者等級暫存: 51之内容。處理單元·之軟狀態㈣包括像是w τ•快取 記憶體18、L] D·快取記憶體2G之内容、資料翻譯後備緩 衝器(DTLB) 113與指令翻譯後備緩衝器(itlb) ιΐ5之位址 翻譯資訊等”效能關鍵”資訊;以及像是分支歷史表⑺町⑶ 與L2快取記憶體16之全部或部分内容等非關鍵資訊。 暫存器 以上說明中,像是多用途暫存器(GpR) %、浮點暫存写 (FPR)88、狀態暫存器樓案(CRR)8〇與鏈接與計數暫存器槽 案(LCR) 82等處理單元·之暫存器槽案通常被定義為"使 用者等級暫存器,,,其中此等暫存器可由具有使用者或監督 :特權之所有軟體加以存取。監督者等級暫存器51包括通 ㊉由-作業系統在作業系統核心中作為像是記憶體管理、 _例外處置等作業之暫存器。因Λ,監督者等級暫存 益51通常僅限由具有充分存取許可之_些處理(亦即: 者等級之處理)加以存取。 "" =圖3b所料,監督者等級暫存器叫常包括:組態暫 存為3〇2、5己憶體管理暫存器3〇8、例外處置暫存器川與雜 項暫存态322 ,以下將更詳細說明。 組態暫存器302包括一機器狀態暫存器(msr) 3〇6與—處
O:\89\89074.DOC -18 - 1263938 里扣版本暫存益(PVR) 304。機器狀態暫存器讓定 義處理器之狀態。亦即,機器狀態暫存器(msr)3〇6用以識 ^於處置-指♦中斷(例外)後指令執行應在何處回復。處理 為版本暫存器(PVR) 304用以識別處理單元2⑼之特定類型 (版本)。 記憶體管理暫存器3 〇 8包括區塊位址翻譯(B at )暫存器 31〇。區塊位址翻譯(ΒΑΤ)暫存器310係軟體控制之陣列,用 以儲存晶載之可用區塊位址翻譯。較佳者,存在wibat3〇9 /、DBAT 3 11所示之分離的指令與資料區塊位址翻譯 暫存器。記憶體管理暫存器同時包括段暫存器(SR)312,當 區塊位址翻譯(BAT)翻譯失敗時用以將有效位址(ea)翻譯 成虛擬位址(VA)。 例外處置暫存器314包括一資料位址暫存器(DAR) 336、 特殊用途暫存器(SPRs) 318與機器狀態保存/復原(ssr)暫 存杰320。如果一記憶體存取造成像是一調正例外的一例 外,則資料位址暫存器(DAR) 3 16將包含該記憶體存取指令 所執行之有效位址。特殊用途暫存器(spR)用於作業系統所 定義之特殊用途,例如··用以識別保留給一第一階例外處 置為(FLIH)使用的一圮憶體區域。較佳者,系統中的每一 處理器具有唯一記憶體區域。一特殊用途暫存器(spR)3i8 可由第一階例外處置器(FLIH)當作一暫用暫存器,用以儲 存夕用返暫存為(GPR)之内容,該内容可從特殊用途暫存 器(8卩11)318載入,以及當作其他多用途暫存器((}1^)用來 保存至記憶體的一基底暫存器。狀態保存/復原(ssr)暫存
〇:'89\89〇74 DOC -19- 1263938 器320用以保存例外(中斷)時之機器狀態,以及當執行從中 斷指令轉回時’用以復原機器狀態。 位址斷點暫存器(0顧)328。再者,雜項暫存器功包括一 時基中斷暫存器(TBIR) 33G,於—職時期後將啟動一中 斷。這類時基中斷可與處理單元上運轉之㈣維護常式 雜項暫存器322包括··用以維護—天中之時間的—時基 ㈤)暫存器324、用以減量計數的—衰減計暫存器(dec) 326’以及如果遇到一指定資料位址則引發一斷點的一資料 一起使用。 軟體組織 於像是圖2之多處理器(MP)資料處理系統2〇1的一多處理 器⑽資料處理系統中’多重應用程式可以在可能不同之 作業系統下同B寺間運#。圖4描繪根據本發明 < 多處理器 (MP)資料處理系統201的一示範之軟體組態層圖形。扣 如圖解,軟體組態包括-超管理員4〇2,其係將多處理器 (MP)資料處理系統2()1之資源分配給多重分割㈣協調多 重分割内(可能不同之)多重作業系、统之執行的監督者軟 體。例如,超管理員402可分配處理單元2_、系統記憶體 11 8a的一第一區域及其他資源給作業系統4〇乜操作的一第 -分割。同#地,$管理員402可分配處理單元2〇〇n、系統 記憶體11 8 η的-第二區域及其他資源給作業系統4。4 n操作 的一第二分割。 於一作業系統404控制下,可運轉像是—文字處理器'一 試算表、1劉覽器1多重應用程式406。例如,應用程式 O:\89\89074.DOC -20- 1263938 至4〇6x均在作業系統404a之控制下運轉。 通常作業系統404與應用程式406個別包含多重處理。例 如’所示之應用程式4〇6a具有多重處理4〇8&至4〇82。假設: 母一處理單元2〇〇具有一處理所需之指令、資料與狀態資 ’則該處理單元2〇〇可獨立執行該處理。 中斷處置 現在麥照圖化與5b,其中描繪根據本發明可由像是處理 早凡200的一處理單元用以處置一中斷之示範方法的流程 固如方塊5 02所示,處理器接收一中斷。此中斷可為一例 (J 士 位)、一外部中斷(例如:來自一輸入/輸出(ι/〇) I置)或者一内部中斷。 於接枚中斷時,將保存目前運轉之處理的硬架構式狀態 (方塊5〇4)與軟狀態(方塊505)。以下將參照圖0a (硬)與圖6b (軟)况明根據本發明保存及管理硬與軟狀態之較佳處理的 、’、田筇。於處理之硬狀態被保存至記憶體後,將執行至少一 第一階中斷處置器(FLIH)或第二階中斷處置器(SLIH),以 服務該中斷。 第一階中斷處置器(FLIH)係用以接收一中斷後之處理器 &制的 $式。當通知有一中斷時,第一階中斷處置器 (FUH)藉由讀取一中斷控制器檔案而決定中斷之原因。較 佳者,透過使用一向量暫存器而作成此決定。亦即,第一 階中斷處置器(FLIH)讀取一表單,使一中斷與用以處置該 中斷之初始處理的一例外向量位址相匹配。 第二階中斷處置器(SUH)係用以處置來自一特定中斷來
O:\89\89074 DOC -21 - 1263938 源的:中斷之處理的-中斷相依常式。#即,第一階中斷 處置器(fuh)呼叫用以處置裝置中斷之第二階中斷處置器 (SLIH),而非裝置驅動器本身。 於圖5a中’圓圈506内所示步驟係由第—階中斷處置器 (FUH)加以執行。如方塊5〇8之圖解,較佳者,如以上所述, 該中斷係使用一向量暫存器作為唯_識別。然後,取決於 =收何種t斷,此—中斷識別將造成處理器跳越至記憶體 中的一特殊位址。 如熟f此項技藝者所了解,任何第二階中斷處置器(SUH) 均可設置與—輸入/輸出⑽)裝置或另—處理器(外部中斷) 的-通信程序,或者在作業系統❹讀射斷之處理* 的超管理員控制下執行—組指令。例如,如方塊训與516 所不,一第一中斷可能造成處理器跳越至向量位址i,導致 第二,中斷處置器(SUH) A之執行。如所示,第二階中斷 處置器(SUH) A完成中斷之處置,而沒有呼叫任何額外軟 體常式。同樣地’如方塊512、52〇與似之圖解,跳至向量 ㈣3的—分支導致示範之第二階中斷處置器(SLIH) C之 執行’然後執行屬於(同時在圖4中出示之)作業系統4〇4或超 管理員402的-或更多指令’以服務該中斷。替代上,如方 塊5H與518所示,如果該中斷指導處理器跳越至向量位址 2,則執行示範之第二階中斷處置器(SUH)B。’然後第二階 中斷處置ti(SLIH) B呼叫(方塊524)發出該中斷之裝置的一 裝置驅動器。 繼方塊516、524或526後,該處理透過頁連接符號’’A”進
O:\89\89074.DOC -22 - 1263938 仃至圖5b之方塊528。—旦服務該中斷後, ’解析第:階中斷處置器(SUH),以及° =處卿UH)’以反應t斷之執行與完二弟 如方塊532-536所示’载入及運轉下一處 置之處理終止。 、便。亥中岍處 通常藉由處理器之作業系#十、> 益丄 ^ 腦系統的超管理_=:處理器所屬之電 … 貝、擇其後運轉何處理(方塊532)以及(如 果一多處理器(ΜΡ)電腦系統),則在何處理器上(方塊534)。 :疋之處理可為目前處理器上中斷之處理,或者目前處理 為或另一處理器上新的或執行時中斷之另一處理。 如方塊536之圖解,—旦選定處理與處理器,則選定之處 理器將使用圖2所示之下—硬狀態暫存器21(),以下一運= 之處理的狀態加以初始化。下—硬狀態暫存器训包含下一 ,,最熱”處理之硬架構式狀態。通常,此下一最熱處理係先 前中斷而且新回復的-處理。極少見到τ—最熱處理係一 新處理,而非先前所中斷。 下-最熱處理係確定具有最高執行優先權之處理。該優 先權可根據一處理對整體麻闲#斗、> 〃 T ^ ^應用私式之關鍵程度、對該處理 其結果之需要或者任何其他優先權理由。由於運轉多重處 理,所以每-等待回復之處理的優先權時常改變。因此, 動態指派更新之優先權位準給硬架構式狀態。亦即,在任 何給定之時刻,下-硬狀態暫存器㈣包含來自系統記憶體 118之連續且動態更新的硬架構式狀態,因而具有下一必需 運轉之”最熱”處理。 O:\89\89074 DOC -23 - 1263938 保存硬架構式狀態 :在先刖技術中’硬架構式狀態係透過處理器核心之載入/ 儲存早兀儲存至系統記憶體,如此將阻擔中斷處置器或另 -處理之執行持續若干處理器時脈週期之久。在本發明 中如圖5a方塊504中描緣之保存一硬狀態的步驟係根據圖 :圖解之方法而加速’其係參照圖2中概要圖解之硬體加以 說明。 —如二塊602之圖解,於接受—中斷時,處理單元縣置 —目前執行之處理的執行。’然後如方塊_之圖解,硬狀態 2存器中儲存之硬㈣式狀態被直接複製至影子暫存 為208。(替代上’透過以目前硬架構式狀態連續更新影子 暫存IS2G8的-處理而使影子暫存器具有硬架構式狀能 的一複本。)當處理單元扇檢視硬架構式㈣之影子複本 時,其最好非執行中,然後如方塊_之圖冑,在整合記憶 體控制器(IMC) 220之控制下儲存至系統記憶體m。硬架 構式狀態之影子複本係經由高頻寬記憶體匯流排⑴轉移 至系統記憶體U8。由於將目前硬架構式狀態之複本儲存至 影子暫存最多僅花費料脈,㈣處理單元· 很快可以開始處置該中斷或執行下一處理之"真實工作”。 —如以下關於圖H)之說明’較佳者,硬架構式狀態之影子 複本係儲存於保留給硬苹構或^ 更木稱式狀恶用之系統記憶體11 8内 的一特殊記憶體區域中。 保存軟狀態 當一傳統處理器執行一中斷處置器時,中斷之處理的軟
O:\89\89074 DOC -24- 1263938 狀悲系被污染。亦即,中 口口 '宁辦處置為軟體之執行將以中斷處 置器使用之資料(包括扣人、一 &本 σ 曰7 )/可乐處理器的快取記憶體、位址 翻譯設施與歷史表。间山 ^ . 口此,表處置一中斷後,當中斷之處 理回復時,該處理承夸沪 K又‘々與負科快取記憶體遺漏增加、 翻譯遺漏增加,以男八w i 及刀支錯疾預測增加。這類遺漏與錯誤 預測嚴重降低處理效能,古η //Λ 士 一 处政此,直到從處理器清除中斷處置之相 關資訊並以該處理之;I;日關次μ + &上 处里之相關貝讯重新殖入用以儲存該處理之 軟狀態的快取記憶體和Α他组 1 /、他、、且仵為止。因此,本發明保存 及復原一處理之軟狀能的5 w、 μ χ 心的至^ 一邛分,以降低與中斷處置 相關聯之效能懲罰。 現在參照圖6b以及圖2與33中描緣之對應硬體,如方塊 之圖解LI I决取§己憶體以與^ D_快取記憶體之整 體内容係被純至I統記憶體118的—專屬區域。同樣地, 刀支歷史表(BHT) 35 (方塊612)、指令翻譯後備緩衝器 (ITLB) i i 5與資料翻譯後備緩衝器(Dtlb) (i 3 (方塊6丄4)、 有效轉實㈣表(ERAT) 32 (方塊616)以及L2快取記憶體 16(方塊618)之内容將保存至系統記憶體118。 因為L2快取記憶體16可能相當大(例如:數百萬位元組之 大小)’所以將L2快取記憶體16全部儲存可能就系統記憶體 之覆蓋區域與轉移資料所需之時間/頻寬方面均不允許。因 此’在-較佳具體實施例中,僅將最近使用(mru)集合的 一子集保存於每一全等類別内。 應了解:雖然圖6b中圖解具有—處理之軟狀態的一些不 同組件之個別保存,但保存之組件奏欠目與保存之組件次序 O:\89\89074 DOC -25 - 1263938 可依實作而變化’而且可透過硬體模式之位元以軟體加以 程式規劃或控制。 因此’雖然中斷處置器常式(或下一處理)執行中,但本 务明仍可輸出軟狀態。此種(與中斷處置器之執行無關的) f同步作業可能導致(中斷之處理與中斷處置器的)軟狀態 混合。儘管如此,此種資料混合仍可被接受,因為竿構式 校正不需精確保留軟狀態’以及因為效能改良係藉由在執 行中斷處置器時縮短延遲而達成。 再次茶照圖2,來自L1㈠夬取記憶體以、u ^ 取 體與L2快取記憶體16之軟狀態係經由快取記憶體資祕 徑218傳輸至整合記憶體控制器(麗)咖,而且像是分支 歷史表(BHT)35之其他軟狀態係經由類似之内部資料路徑 (未出不)傳輸至整合記憶體控制器(IMC) 22〇。替代上或此 外,在-較佳具體實施例令,至少某些軟狀態之組件係經 2描鍊路徑方向214傳輸至整合記憶體控制器(跳) 經由一掃描鍊路徑方向保存軟狀態 基於複雜性,處理器與其他1(:通常包括 之電路。該測試電路包括如電機電子工程師協會 ==二990”標準測試存取埠及邊界掃描架構”所述的-邊界⑹鍊,此處以引用的方式併人本文中。通常透過一 上之專屬插腳而存取的邊界掃描鍊係編 積體琶路組件間之資料的一路徑方向。 現在參照圖7,其令描緣根據本發明的一積體電路之
0 \89\89074 DOC -26- 1263938 方塊圖。較佳者,積體電路700係如圖2之處理單元200的— 處理器。積體電路700包含三邏輯組件(邏輯)7〇2、7〇4與 7〇6,為了解釋本發明,其中將包含用以儲存處理軟狀態的 二圯憶體兀件。例如,邏輯7〇2可為圖3at所示之山&快 取圮憶體20,邏輯704可為有效轉實位址表(erat) ,而 邏輯706可為上述L2快取記憶體丨6的一部分。 、於積體電路700之製造商測試期間,一信號係透過掃描鍊 邊界細胞708而傳送,較佳者,掃描鍊邊界細胞谓為時脈 控制之鎖存。由掃描鍊邊界細胞7〇8a輪出的—信號提供給 邏輯702的-測試輸人,其進而輸出—信號給掃描鍊邊界細 胞7〇8b,接著透過其他邏輯(7〇4與7〇6)傳送該測試信號,直 到該信號到達掃描鍊邊界細胞7〇8c為止。因此,其中存在 多米諾P_m。)骨牌效應,只有當接收來自掃描鍊邊:細 胞708c之預期輸出時,邏輯7〇2_7〇6才算通過測試。 玄,π裂造後 %< 逻介掃描鍊0 然而,本發明利用所述之測試路徑方向作為一路徑方向, 以不阻擋快取記憶體/暫存器埠的一 干J万式將軟架構式狀態 轉移至圖2之整合記憶體控制器(IMC) 、)220。亦即,當執行 中斷處置器(IH)或下一處理時,軟牟 、 τ孕人木構式狀態可藉由使用 掃描鍊測試路徑方向從快取記憶體/暫 , 曰什态輸出,而沒有阻 擋下一處理或中斷處置器存取快取記憶體/暫存器。 由於知* 4田鍊2 1 4係'^串列路經方向 行邏輯2 1 6將提供平行資料給整合 220,以利將軟狀態適當傳輸至系統 ,圖2圖解之串列轉平 記憶體控制器(IMq 記憶體11 8。在一較佳 O:\89\89074.DOC -27 - 1263938 具體實施例中,Φ列轉平行邏輯2 1 6同時包括用以識別何資 料來自何暫存器/快取記憶體之邏輯。此種識別可藉由包括 識別串列資料之前導識別標籤等熟習此項技藝者所知之任 何方法。於軟狀態資料轉換成平行格式後,整合記憶體控 制器(IMC) 220經由高頻寬記憶體匯流排222將軟狀態傳輸 至系統記憶體11 8。 請注意,該相同之掃描鍊路徑方向可進一步傳輸像是圖9 中描繪之影子暫存器208所包含的硬架構式狀態。 第二階中斷處置器(SLIH)/第一階中斷處置器(flih)快閃 唯讀記憶體 在先前技術系統中,第一階中斷處置器(FUHs)與第二階 中斷處置器(SUHs)係儲存於系統記憶體,而且於;叫:二 入快取記憶體階層。在一傳統系統中,初始時從系統記憶 體今叫-第-階中斷處置器(FLIH)或第二階中斷處置器 (SLIH)將導致很長之存取潛伏(當快取記憶體巾㈣&,& 系統記憶體定& ’以及從其中載入第一階中斷處置器 (FLIH)/第二階中斷處置器(SUH))。將 ㈣零二階中斷處卿UH)指令與她人 體會使快取記憶體受到後續處理不需要之資料與指令,,污 染”。 … 如圖3a與8續騎,為了降低第—階中斷處置器(F岡 與第二階中斷處置器(SLIH)之存取潛伏以及防止快取記憶 體 >可染’處理單元200將至少某些第—階中斷處置器 與第二階中斷處置器(SLIH)儲存於一特殊晶載記憶體(例 〇 '89\89074 DOC -28- 1263938 如:快閃唯讀記憶體(ROM) 802)中。第一階中斷處置器 (?二1即804與第.一階中斷處置器(3[1{^)8〇6可於製造時燒 入快閃唯項圮憶體(ROM) 802,或者於製造後藉由熟習此項 技蟄者热知之快閃程式規劃技術加以燒入。當(圖2描繚之) 處理單元200接收一中斷時,第一階中斷處置器(flih)/第二 階中斷處置為(SLIH)係從快閃唯讀記憶體(R〇M)8〇2直接 存取,而非從系統記憶體11 8或快取記憶體階層2丨2存取。 第二階中斷處置器(SLIH)之預測 正常下,當處理單元200中發生一中斷時,將呼叫一第一 階中斷處置器(FLIH),然後第一階中斷處置器(FLm)呼叫 一第二階中斷處置器(SLIH),以完成中斷之處置。至於呼 叫何第二階中斷處置器(SLIH)以及第二階中斷處置器 (SUH)如何執行將取決於包括傳遞之參數、條件狀態等各 種因子而變化。例如於圖8b中,呼叫第一階中斷處置器 (FLIH) 812導致呼叫與執行第二階中斷處置器(slih) 8 14 ’進而導致執行位於點B之指令。 因為程式之行為可以重覆,所以經常有一中斷發生多次 的h况,因而執行相同的第一階中斷處置器(flih)與第二 ί1白中斷處置裔(SLIH)(例如:第一階中斷處置器(FLm) 8工2 與第二階中斷處置器(SUH) 814)。結果,本發明了解:籍 :預測中斷處置處理之控制圖可能重I,以及沒有先執行 第^中斷處置器(FLIH)而推測執行第二階中斷處置器 (SLIH)邛分,可加速後續發生的一中斷之中斷處置。 為了促進中斷處置預測,處理單元2〇〇配備一中斷處置器
O:\89\89074 DOC -29- 1263938 預測表(ΙΗΡΤ) 808,圖8c中將更詳細加以顯示。中斷處置器 預測表(IHPT) 808包含多重第一階中斷處置器(FLm)之基 底位址8 1 6 (中斷向量)的一清單。中斷處置器預測表(IHp丁) 808儲存分別與每一第一階中斷處置器(FLm)位址816相關 聯的一組一或更多第二階中斷處置器(SLIH)位址818,其先 前已由關聯之第一階中斷處置器(FUH)加以呼叫。當以一 特定第一階中斷處置器(FLIH)之基底位址存取中斷處置器 預測表(IHPT) 808時,預測邏輯820選擇與中斷處置器預測 表(IHPT) 808中特定第一階中斷處置器(fuh)位址8丨6相關 的一第一階中斷處置器(SLIH)位址8 1 8作為可能被該特 定第一階中斷處置器(FLIH)呼叫的第二階中斷處置器 (SLIH)位址。凊注意,雖然圖解中預測之第二階中斷處置 器(SLIH)位址可為如圖8b中圖解之第二階中斷處置器 (SLIH) 8 14的基底位址,但該位址亦可為第二階中斷處置器 (SLIH) 8 14内之起始點(例如··點B)其後續一指令的位址。 預測邏輯820使用預測特定第一階中斷處置器(FLm)將 呼叫何第二階中斷處置器(SLIH)的一演算法。在一較佳具 體實施例中,此演算法挑選與特定第一階中斷處置器(FLm) 相關聯的一最近使用之第二階中斷處置器(SUH)。在另一 較佳具體實施例中,此演算法挑選與特定第一階中斷處置 器(FLIH)相關聯的一歷史上最常呼叫之第二階中斷處置器 (SLIH)。上述之任一較佳具體實施例可在要求預測第二階 中斷處置器(SLIH)時運轉該演算法,或者連續更新預測之 第一卩0中斷處置露(SLIH),並將其儲存於中斷處置器預測 0 \89\89074 DOC -30- 1263938 表(ΙΗΡΤ) 808 中。 值得注意的是:本發明與技藝中所知之分支預測方法不 同。首先,上述方法造成跳越至一特定中斷處置器,而非 根據-分支指令位址。/亦即,先前技術中使用之分支預測 方法係預測一分支作案夕私, 下菜之輪出,而本發明係根據一(可能) 非刀支4日令而預測跳越至某特定中斷處置器。#此導弓I出 第相異處亦即.相較於先前技術之分支預測,藉由 本^明之主日的中斷處置器預測可跨越更多程式碼,因為 本發明允許略過(像是第—階中斷處置器(FLIH)中之)任意 4日令數’然而,由於一值么点八丄 田% 得統分支預測機構可掃描之指令窗 幻原本有限,因此僅准許分支預測略過所預測之分支前 面的有限&令數。第三,根據本發明之中斷處置器預測未 被限:於先前技術中所知之採用/不採用分支預測的二選 一決疋。因此,再次參照圖8c,預測邏輯82〇可從任意數目 之歷史第二階中斷處置器(SUH)位址818中選擇預測之第 二階中斷處置器(SLIH)位址822,而—分支預測方案僅可從 順序之執行路徑與一分支路徑中選擇。 現在參照圖9,其中圖解根據本發明而預測一中斷處置器 的一示範方法之流程圖。當—處理器接收一中斷時(方: 902) ’该中斷所呼叫之第—階中斷處置器(me)(方塊_) 以及根據先前執行歷史之中斷處置器預測表(ΐΗρτ)讀所 指示的-預測之第二階中斷處置器(SUH)(方塊9()6)同時開 始同時間多執行緒(SMT)之並行執行。 在-較佳具體實施例中’於接受一中斷時,響應監視該
O:\89\89074.DOC -31 - 1263938 呼叫之第一階中斷處置器(FLIH),將執行跳越至預測之第 二階中斷處置器(SLIH)(方塊906)。例如,再次參照圖8中所 示之中斷處置器預測表(IHPT) 808。當接收中斷時,比較第 一階中斷處置器(FLIH)與中斷處置器預測表(IHPT) 808中 儲存之第一階中斷處置器(FLIH)位址816。如果所比較之中 斷處置器預測表(IHPT) 808中儲存的第一階中斷處置器 (FLIH)位址8 16與該中斷所呼叫之第一階中斷處置器(FLIH) 的位址相同,則中斷處置器預測表(ΙΗΡΤ) 808提供預測之第 二階中斷處置器(SLIH)位址822,而且立即開始從預測之第 一階中斷處置器(SLIH)位址822起始的程式碼執行。 較佳者,已知正確之第二階中斷處置器(SLIH)與預測之 第二階中斷處置器(SLIH)的後續比較係藉由將使用中斷處 置器預測表(IHPT) 808所呼叫之預測的第二階中斷處置器 (SLIH)位址822係以一預測旗標儲存於包含第一階中斷處 置器(FLIH)位址的一第二階中斷處置器(slih)預測暫存器 中。在本發明的一較佳具體實施例中,當知道執行如一”跳 越π指令之類從第一階中斷處置器(FLIH)呼叫一第二階中 斷處置器(SLIH)的一指令時,該跳越所呼叫之位址將與位 於預測暫存器(並以預測旗標識別為先前所預測且目前執 行)之預測的第二階中斷處置器(SLIH)位址822相比較。比 較來自預測暫存器之預測的第二階中斷處置器(SLIH)位址 822與執行之第一階中斷處置器(FUH)所選擇的第二階中 斷處置器(SLIH)(方塊910)。如果預測之第二階中斷處置器 (SLIH)正確,則完成預測之第二階中斷處置器(SLm)的執 〇划\89〇74. D〇c -32- 1263938 仃(方塊914),因而加速中斷之處置。然而,如果第二階中 斷處置器(SLIH)係錯誤之預㈣,則取消預測之第二階中斷 處置器(SLIH)的進一步執行,並以執行正碟的第二階中斷 處置器(SLIH)取代之(方塊916)。 狀態管理 現在蒼照圖1G ’其中騎以圖形圖解系統記憶體中儲存 之硬和軟狀態與一示範多處理器(Mp)資料處理系統之各種 處理器和記憶體分割間之邏輯關係的概念圖。如圖_ 丁所有硬木構式狀想及軟狀態係儲存於超管理員所分 配且可供任何分割内處理器加以存取的—特殊記憶體區域 中。亦即初始時’超管理㈣2可配置處理器A與處理器B 作為分割X内的-對稱多處理器(SMp),而處理器c與處理 器D被配置以作為分割Y内的—對稱多處理器(sMp)。當執 订t處S為A-D可月巨中斷,造成處理器A _d個別以上述討 論之方式將硬狀態A-D與軟狀態A_D分別儲存至記憶體。有 別於先前技術之系統不准許相異分割的處理器存取相同的 記憶體空間,任何處理器可以存取任何硬或軟狀態Μ,以 回復關聯之中斷的處理。例如,了其分割内所產生之硬 及軟狀態«D外’處理器D亦可存取硬及軟狀態A與B。因 此,任何處理狀態均可由任何分割或處理器加以存取。结 果,超管理員術對於分割間之負載平衡可以有很大的 度與彈性。 軟狀態快取記憶體一致性 如以上所討論,中斷之處理的軟狀態可包括像是圖3种
O:\89\89074 DOC ^ 33 - I263938 圖解之Ll I-快取記憶體18、 憶體16的快取記情體之内… 體_快取記 取仏,之内谷。雖然此等軟狀態係儲存於李 統記憶體中,但如以上夂昭R仏仏、+、 ^ 上,心圖6b所述,包含軟狀態之至少 某些貢料有可能因為其他處理所進行之資料修正而變質。 因此本發日月提供—種使系統記憶體中儲存之軟狀態保持快 取冗憶體一致的機構。 如圖U之圖解,系統記憶體118中儲存之軟狀態可被概念 化為料在”虛擬快取記憶體”中。例如,L2快取記憶體16 之軟狀態係於L2虛擬快取記憶體UG2中。L2虛擬快取記情 =包含-位址部分,其中包括來⑴快取記憶體16之保存 貧料1U〇其每一快取記憶體線的標籤Π04與索引1106。同 樣地,L1虛擬1_快取記憶體1112包含一位址部分,其中包 括來自LI I-快取記憶體18之保存指令112〇的標籤丨丨14與索 引1116,而且L1虛擬D_快取記憶體1122包含一位址部分, 其中包括來自LI D-快取記憶體2〇之保存資料113〇其每一 快取記憶體線的一標籤1124與索引1126。此等”虛擬快取記 憶體’’各由整合記憶體控制器(IMC) 22〇經由互連222加以管 理’以維護一致性。 整合兄憶體控制器(IMC) 220檢測系統互連222上之每一 作業。當檢測一作業要求一快取記憶體線無效時,整合記 憶體控制器(IMC) 220以該作業檢測虛擬快取記憶體目錄 11 32。如果偵測得一檢測命中,則整合記憶體控制器(IMC) 220藉由更新適當之虛擬快取記憶體目錄使系統記憶體11 8 之虛擬快取記憶體線無效。雖然檢測無效有可能要求確切
O:\89\89074 DOC ,34- 1263938 之位址匹配(亦即··標籤與索引均匹配),但實作_精確之位 址匹配要求整合記憶體控制器(iMC) 22〇具有大量電路(尤 其用於64位元與更大位址)。因此,在一較佳具體實鞋 中,檢測無效並不精$,因而選定之最大有效位元⑽叫 /、榼測位址相匹配的所有虛擬快取記憶體線將無效。使用 那些取大有效位^ (MSBs)決定虛擬快取記憶體記憶體中哪 些快取記憶體線無效係實作之特性,而且可經由模式位元 以軟體控制或硬體控制。因此,可對標藏或只有標藏的一 部分(像是10個最大有效位元)檢測位址。此種虛擬快取記情 f之無效性方案具有使依舊包含有效資料之快取記憶體線 …、效的缺點,但此缺點可藉由提供一種非常快速維護虛擬 快取記憶體線-致性之方法達成效能優勢而加以超越。 製造等級測試 、於匕造期間,積體電路遵循各式各樣之作業條件下的一 連^測試L其中—測試為使用上述IEEE i i49· i測試掃描鍊 ^測。式貝料流測試所有積體電路之内部閘的一資料測 錢前技術中,當積體電路安裝於一作業環境後,這 =it式將不再運轉,部分係因為在大部分作業環境中 執仃測試的一測試固定物並不合 二’以及因為這類測試防止積體電路進行預計之用途。例 處理器100中’硬架構式狀態必須經由載入/儲存執 二:::保存以及從系統記憶體復原,以防止於測試期 70只際工作’而引進重大潛伏。 由於保存及復原硬架構式狀態之時間非常短,較 ,'陶9074.doc -35 - 1263938 :;者^數時脈週期,所以儘管一處理器被安裝於一正常 硬:=(:1如:一電腦系統)中’該處理器依舊可使用上述 '、冓式儲存方法例行性運轉—製造等級測試程式。 在〜圖12,其中描綠根據本發明之製造等級測試程 轉的—示範方法之流程圖。較佳者,該測試程式係定期運 口此’如方塊1202與1204所描繪,於經過—預定時間 :處理器中啟動-中斷(方塊讓)。以使用本發明之任 。斷為例,§測试程式開始運轉且發出該中斷時,如方 塊1208所描緣,將使用上述保存硬架構式狀態之較佳方法 立即:存(通常在2_3時脈週期内)目前執行之處理的硬架構 狀態。較佳者’以上述圖6b中的一方式並行保存目前執 仃之處理的軟狀態之至少-部分(方塊1210)。 处如方塊1212所述’選擇性將製造測試程式之硬架構式狀 態載入處理器。在本發明的_較佳具體實施例中,擊造等 級測試程式係、從圖8a所描繪之快閃唯讀記憶體(r〇m) 8〇2 所載入的-製造等級測試程式㈣。製造等級測試程式㈣ 可於處理單元最初製造時燒人快閃唯讀記憶體(ROM) 8〇2 ’或者製造等級測試程式81()可於後續燒人。如果快閃 唯讀記憶體(刪)802中儲存多重製造等級測試程式,則選 擇該等製造等級測試程式之—,以便執行。在㈣本㈣ 的-較佳具體實施例中,如以上方塊⑽與^⑽所述,製 造等級測試程式係於每次執行—計時器中斷時運轉。 一旦硬架構式狀態載入處理器後,較佳者,使用上述ieee 114 9 ·1測1式掃描鍊開始㈣製造等級測試程式(方塊
〇..\89\89074.DOC -36 - 1263938 1214)。較佳者’軟架構式狀態以上述軟狀態更新(圖6b)之 方式並行流人處理器(方塊⑵6)。於完成製造等級測試程式 之執订時’中斷將完成,而且藉由載入下-處理之硬架構 式狀態與軟狀態而執行該處理(方塊1218)。 ;載入更木構式狀悲僅要求數時脈週期’因此於執行 養呈式本身所要求之時間約束内,可依設計者希望之頻 繁程度運轉製造等級測試程式。製造測試程式之執行可由 使用者、作業系統或超管理者加以啟動。 因此:本發明提供—種因應尤其有關中斷之潛伏問題的 ,系、·充例如,在先鈿技術中,如果中斷處置器係一 不*呼叫之處理’則當在低快取記憶體階層甚至系統記憶 體中搜尋適當之中斷處置器時,通常存在一長潛伏。當中 斷處置器執行時,將以處置該中斷所需之指令/資料殖入處 理器之快取記憶體階層’因此’當中斷之處理恢復執行時, 快取記憶體階層將受’,污染"。本發明利用此處所述之發明 處理來解決此等問題。 雖然已就一電腦處理器及軟體說明本發明之各種方面, 但應了解:替代上’本發明之至少某些方面可以一資料儲 存糸統或電腦系統所使用的一程式產品加以實作。定義本 發明其功能之程式可經由包括但不限於:不可寫入儲存媒 體(例如··唯讀光碟(CD_R〇M))、可寫入儲存媒體(例如··— 磁片、硬碟驅動、讀取/寫入唯讀光碟(cd_r〇m)、光學媒 虹)以及像是包括乙太(Ethernet)之電腦與電話網路的通信 媒體等各式各樣信號載送媒體投遞給-資料儲存系統或電
〇:'.89\89074 DOC -37- 1263938 月n統。因此’應了解··這類信號載送媒體提供本發明之 替代具體實施例,以承載或編碼用以指導本發明之方、去功 能的電腦可讀取指令。再者,可以了解:本發明可藉由且 有如此處所述或其等效之硬體、軟體或軟體與硬體的—組 合等形式之裝置的一系統加以實作。 雖然已特別參照-較佳具體實施例出示及說明本發明, 但熟習此項技藝者可了解··於沒右 ;解〜有偏離本發明之精神與範 圍下,其中可進行形式與細節上之各種改變。 【圖式簡單說明】 附加之申請專利範圍中陳述本發明特有之新賴特性。铁 而,當結合附圖一起閱讀,且參照-圖解之具體實施例的 以下詳細說明時,將可完全了解本發明其本身,以 佳使用模式、進一步目的與優勢,其中·· 乂 圖1描㈣用—先前技術之方法的—傳統電«統之方 其中使用—載人/儲存單元儲存處理器之架構式狀 圖2圖解根據本發明的一資料處理 例之方塊圖; 不祀具體實施 圖3a與3b描緣圖2中圖解的一處理單元之額外細節; 圖4圖解根據本發明的一示範軟體組態層之圖彤· 圖㈣外-起形成根據本發明的—示範^置 流程圖; 心1处现之 圖6a與㈣出示圖5a中所述步驟其進—步細節之 圖,其中根據本發明保存一硬架構式狀態與軟狀雖;王
O:\89\89074 DOC -38- 1263938 處理之軟狀態通信至記憶體的 圖7描繪本發明將至少 掃描鍊路徑方向; 圖8: 8c圖解圖2中描繪的一快閃唯讀記憶體(R〇M)之額 卜,田即其用以根據本發明儲存至少第一階中斷處置器 (FLIHs)、第—階中斷處置器(SUHs)與製造等級測試指令; 圖9係描述根據本發明在—處理器接受—中斷時跳越至 一預測之第二階中斷處置器(SUH)的—流程圖; 圖1〇描繪儲存之硬架構式狀態、儲存之軟狀態、記憶體 分割與處理器間之邏輯及通信關係; 圖11圖解軟狀態儲存於記憶體中的—示範之資料結構; 以及 圖12係於一電腦系統正常作業期間透過執行一製造等級 測試程式而測試一處理器的一示範方法之流程圖。 【圖式代表符號說明】 16 第二階快取記憶體 22 命中/遺漏邏輯 24 指令快取記憶體需求匯流排 26 指令快取記憶體重載匯流排 28 預提取緩衝器 30 指令提取位址暫存器 32 效轉實位址表 34 指令快取記憶體目錄 35 分支歷史表 36 分支預測單元 DOC -39- 1263938 38 40 42 5 1 52 54 56 58 60 62 64 80 82 88 90 92 94 100 104 110 113 114 總體完成表 指令提取緩衝器 指令翻譯單元 監督者等級暫存器 狀態暫存器映射器 鏈接與計數暫存器映射器 例外暫存器映射器 多用途暫存器映射器 浮點暫存器映射器 狀態暫存器發出佇列 分支指令佇列 狀態暫存器檔案 鏈接與計數暫存器檔案 浮點暫存器檔案 狀態暫存器單元 分支執行單元 定點單元 處理器核心 指令順序邏輯 架構式暫存器 資料翻譯後備緩衝器 中斷線 115 指令翻譯後備緩衝器 116 記憶體匯流排 O:\89\89074.DOC -40- 1263938 18, 102 第一階指令快取記憶體 20, 112 第一階資料快取記憶體 66, 68 定點發出佇列 70, 72 浮點發出佇列 144 預解碼邏輯 84, 86 多用途暫存器 44, 46, 48, 50 鎖存器 201 多處理器資料處理系統 202 指令順序單元 208 影子暫存器 212 快取記憶體階層 216 串列轉平行介面 220 整合記憶體控制器 222 互連 302 組態暫存器 304 處理器版本暫存器 306 機器狀態暫存器 308 記憶體管理暫存器 309 指令區塊位址翻譯暫存器 310 區塊位址翻譯暫存器 311 資料區塊位址翻譯暫存器 312 段暫存器 314 例外處置暫存器 316 資料位址暫存器 O:\89\89074 DOC -41 - 1263938 318 特殊用途暫存器 320 狀態儲存/復原暫存器 322 雜項暫存器 324 時基暫存器 326 衰減計暫存器 328 資料位址斷點暫存器 330 時基中斷暫存器 118,118a,118η 糸統記憶體 402 超管理員 96, 98, 108a,108d 載入/儲存單元 206, 210 硬狀態暫存器 214, 218 掃描鍵路徑方向 700 積體電路 802 快閃唯讀記憶體 808 中斷處置器預測表 810 製造等級測試程式 10, 200, 200a,200n,204 處理單元 816 第一階中斷處置器位址 820 預測邏輯 1132 虛擬快取記憶體目錄 4〇4a,404b,404n 作業系統 408a, 408b, 408z 處理 804, 812 第一階中斷處置器 806, 814 第二階中斷處置器
Ο \89\89074 DOC 1263938 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 應用程式 第二階中斷處置器位址 邏輯組件 掃描鍊邊界細胞 第一階虛擬資料快取記憶體 索引 一致性狀態 資料 標籤

Claims (1)

1263938 拾、申請專利範圍: 〜種操作-處理器之方法,該方法包含. 將該處理器目前所執行的 式狀態儲存於該處理器中的_第一;^其—第一硬架構 將閒置的一第二處理其— 、、且儲存位置; 處理” $ 弟—硬颂式狀態儲存於該 〜卫口口甲一弟二組儲存位置; 響應在處理器接收一處理 從爷篦-4 將弟二硬架構式狀態 Μ弟—、、且儲存位置載入一 乐組儲存位置;以及 執行該第二處理。 2, 如申請專利範圍第丨項之方法,— 并押 進一步包含當第一處理執 仃盼,以另一閒置處理的—第二加 執 二硬架構式狀態。 U代弟 3.如申請專利範圍第1項之方法,進—步包含. _ :據該第二處理的一優先權從—池閒置5處理中選擇第 4 H而將第:硬架構式狀態料於該處判中。 •如申請專利範圍第!項之方法,進—步包含: #應接收該處理中斷而保存第-硬架構式狀離。 •如申請專利範圍第丨項之方法,進—步包含. 將第-硬架構式狀態的一影子複:儲3存 内;以及 & 響應處理器中接收該處理中斷 涵力g ^ ^ 研將弟一硬架構式狀能 之衫子複本儲存於一記憶體中。 一 6. 一種處理器,包含: 至少一執行單元; 0 .89\S9074 DOC 1263938 耦合該至少一執行單元的一指令順序單元; 用以儲存該處理器目前所執行的—第一處理立 硬架構式狀態的一第一組儲存位置;以及 用以儲存閒置的一第二處理苴_ 一筮-4 、弟一硬采構式狀態的 弟一、,且儲存位置,其中該第二 王¥,曰甘占^ 士 你木自一池閒置處 ,、中儲存於第二組儲存位置之 係根據指派給該池閒置處理 —更采構式狀態 擇。 處理優先權指定而選 7. 如申#專利範圍第6項之處理器,一 Φ ^ ^ ^ - 步包含響應一處理 8. 中斷而更新弟二硬架構式狀態之裝置。 处 如申清專利範圍第6項之處理器,一 梦包含· 用以執行記憶體存取指令之財 ·“ 此儲存第二架構式狀態,而與該執〜以处理盗可猎 取指令無關。 仃包路執行記憶體存 9. 如申凊專利側第6項之處理器 疋~梦穸各· 耦合至第一組儲存位置的一對應巧 · 暫存器包含第一硬_構+ 存器,該影子 本;以及 芝夕一部分的一影子複 耦合至該影子暫存器的一記愫 令斷時,該處理器將第—硬架構’…其令於接受一處理 至該記憶體。 I狀怨之影子複本儲存 10· —種資料處理系統,包含·· 包括根據申請真女丨f τ㈢寻利靶圍第6項的一 理器; 處理器之複數個處 q \gg\8〇〇7^ DOC 1263938 耦合至複數個處理器的一依電性記憶體階層;以及 耦合複數個處理器的一互連。 1 1 ·—種處理器,包含: 將該處理器目前所執行的一第—處理其一第一硬架構 式狀態儲存於該處理器中一第一組儲存位置之裝置; 將閒置的-第二處理其一第二硬架構式狀態儲存於該 處理器中一第二組儲存位置之裝置; j應在處理器接收一處理中斷而將第二硬架構式狀態 從第二組儲存位置載入第一組儲存位置之裝置;以及 用以執行該第二處理之裝置。 12. 如中請專利範圍第u項之處理器,進—步包含當第一處 里執仃日寸以另一閒置處理的一第三架構式狀態來動態地 取代第二硬架構式狀態之裝置。 13. 如申請專利範圍第u項之處理器,進—步包含: _根據該第二處理的-優先權從-池閒置處理中選擇第 二處理,而儲存於處理器中。 14. 如申請專利範圍第11項之處理器,進一步包含: 響應接收該處理中斷而保存第一硬架構式狀態之裝 置。 K如申請專利範圍第_之處理器,進_步包含: 硬架構式狀態的_影子複本料於該處理器内 之裝置;以及 響應該處理器中 態之影子複本儲存 接收該處理中斷而將第一硬架構式狀 於一記憶體之裝置。 〇:\89\89074 DOC
TW092130386A 2002-12-05 2003-10-31 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 TWI263938B (en)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US10/313,320 US6981083B2 (en) 2002-12-05 2002-12-05 Processor virtualization mechanism via an enhanced restoration of hard architected states

Publications (2)

Publication Number Publication Date
TW200422949A TW200422949A (en) 2004-11-01
TWI263938B true TWI263938B (en) 2006-10-11

Family

ID=32468218

Family Applications (1)

Application Number Title Priority Date Filing Date
TW092130386A TWI263938B (en) 2002-12-05 2003-10-31 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

Country Status (10)

Country Link
US (1) US6981083B2 (zh)
EP (1) EP1570352B1 (zh)
KR (1) KR100615775B1 (zh)
CN (1) CN1726469A (zh)
AT (1) ATE487180T1 (zh)
AU (1) AU2003298240A1 (zh)
CA (1) CA2508041C (zh)
DE (1) DE60334835D1 (zh)
TW (1) TWI263938B (zh)
WO (1) WO2004051463A2 (zh)

Cited By (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9547602B2 (en) 2013-03-14 2017-01-17 Nvidia Corporation Translation lookaside buffer entry systems and methods
US9569214B2 (en) 2012-12-27 2017-02-14 Nvidia Corporation Execution pipeline data forwarding
US9582280B2 (en) 2013-07-18 2017-02-28 Nvidia Corporation Branching to alternate code based on runahead determination
US9645929B2 (en) 2012-09-14 2017-05-09 Nvidia Corporation Speculative permission acquisition for shared memory
US9740553B2 (en) 2012-11-14 2017-08-22 Nvidia Corporation Managing potentially invalid results during runahead
US9823931B2 (en) 2012-12-28 2017-11-21 Nvidia Corporation Queued instruction re-dispatch after runahead
US9875105B2 (en) 2012-05-03 2018-01-23 Nvidia Corporation Checkpointed buffer for re-entry from runahead
US9880846B2 (en) 2012-04-11 2018-01-30 Nvidia Corporation Improving hit rate of code translation redirection table with replacement strategy based on usage history table of evicted entries
US9891972B2 (en) 2012-12-07 2018-02-13 Nvidia Corporation Lazy runahead operation for a microprocessor
US10001996B2 (en) 2012-10-26 2018-06-19 Nvidia Corporation Selective poisoning of data during runahead
US10146545B2 (en) 2012-03-13 2018-12-04 Nvidia Corporation Translation address cache for a microprocessor
US10241810B2 (en) 2012-05-18 2019-03-26 Nvidia Corporation Instruction-optimizing processor with branch-count table in hardware
US10324725B2 (en) 2012-12-27 2019-06-18 Nvidia Corporation Fault detection in instruction translations

Families Citing this family (47)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7272664B2 (en) * 2002-12-05 2007-09-18 International Business Machines Corporation Cross partition sharing of state information
US7117319B2 (en) * 2002-12-05 2006-10-03 International Business Machines Corporation Managing processor architected state upon an interrupt
US7493478B2 (en) * 2002-12-05 2009-02-17 International Business Machines Corporation Enhanced processor virtualization mechanism via saving and restoring soft processor/system states
US20070074013A1 (en) * 2003-08-25 2007-03-29 Lonnie Goff Dynamic retention of hardware register content in a computer system
US7657807B1 (en) 2005-06-27 2010-02-02 Sun Microsystems, Inc. Integrated circuit with embedded test functionality
JP4388005B2 (ja) * 2005-10-06 2009-12-24 パナソニック株式会社 コンテキスト切替え装置
US7424563B2 (en) * 2006-02-24 2008-09-09 Qualcomm Incorporated Two-level interrupt service routine
US8327115B2 (en) 2006-04-12 2012-12-04 Soft Machines, Inc. Plural matrices of execution units for processing matrices of row dependent instructions in single clock cycle in super or separate mode
EP2523101B1 (en) 2006-11-14 2014-06-04 Soft Machines, Inc. Apparatus and method for processing complex instruction formats in a multi- threaded architecture supporting various context switch modes and virtualization schemes
US8250354B2 (en) * 2007-11-29 2012-08-21 GlobalFoundries, Inc. Method and apparatus for making a processor sideband interface adhere to secure mode restrictions
US8966476B2 (en) * 2008-05-28 2015-02-24 Hewlett-Packard Development Company, L.P. Providing object-level input/output requests between virtual machines to access a storage subsystem
US7831816B2 (en) * 2008-05-30 2010-11-09 Globalfoundries Inc. Non-destructive sideband reading of processor state information
US8135894B1 (en) * 2009-07-31 2012-03-13 Altera Corporation Methods and systems for reducing interrupt latency by using a dedicated bit
KR101685247B1 (ko) 2010-09-17 2016-12-09 소프트 머신즈, 인크. 조기 원거리 분기 예측을 위한 섀도우 캐시를 포함하는 단일 사이클 다중 분기 예측
CN108376097B (zh) 2011-03-25 2022-04-15 英特尔公司 用于通过使用由可分割引擎实例化的虚拟核来支持代码块执行的寄存器文件段
EP2689327B1 (en) 2011-03-25 2021-07-28 Intel Corporation Executing instruction sequence code blocks by using virtual cores instantiated by partitionable engines
KR101966712B1 (ko) 2011-03-25 2019-04-09 인텔 코포레이션 분할가능한 엔진에 의해 인스턴스화된 가상 코어를 이용한 코드 블록의 실행을 지원하는 메모리 프래그먼트
CN103649931B (zh) 2011-05-20 2016-10-12 索夫特机械公司 用于支持由多个引擎执行指令序列的互连结构
KR101639853B1 (ko) 2011-05-20 2016-07-14 소프트 머신즈, 인크. 복수의 엔진에 의해 명령어 시퀀스들의 실행을 지원하기 위한 자원들 및 상호접속 구조들의 비집중 할당
KR101703401B1 (ko) 2011-11-22 2017-02-06 소프트 머신즈, 인크. 다중 엔진 마이크로프로세서용 가속 코드 최적화기
WO2013077876A1 (en) 2011-11-22 2013-05-30 Soft Machines, Inc. A microprocessor accelerated code optimizer
US9569279B2 (en) * 2012-07-31 2017-02-14 Nvidia Corporation Heterogeneous multiprocessor design for power-efficient and area-efficient computing
DE102013108041B4 (de) 2012-07-31 2024-01-04 Nvidia Corporation Heterogene Mehrprozessor-Anordnung für ein leistungseffizientes und flächeneffizientes Rechnen
US10108424B2 (en) 2013-03-14 2018-10-23 Nvidia Corporation Profiling code portions to generate translations
WO2014150991A1 (en) 2013-03-15 2014-09-25 Soft Machines, Inc. A method for implementing a reduced size register view data structure in a microprocessor
US9891924B2 (en) 2013-03-15 2018-02-13 Intel Corporation Method for implementing a reduced size register view data structure in a microprocessor
US9904625B2 (en) 2013-03-15 2018-02-27 Intel Corporation Methods, systems and apparatus for predicting the way of a set associative cache
US9632825B2 (en) 2013-03-15 2017-04-25 Intel Corporation Method and apparatus for efficient scheduling for asymmetrical execution units
US9811342B2 (en) 2013-03-15 2017-11-07 Intel Corporation Method for performing dual dispatch of blocks and half blocks
US10140138B2 (en) 2013-03-15 2018-11-27 Intel Corporation Methods, systems and apparatus for supporting wide and efficient front-end operation with guest-architecture emulation
WO2014151018A1 (en) 2013-03-15 2014-09-25 Soft Machines, Inc. A method for executing multithreaded instructions grouped onto blocks
US9569216B2 (en) 2013-03-15 2017-02-14 Soft Machines, Inc. Method for populating a source view data structure by using register template snapshots
WO2014151043A1 (en) 2013-03-15 2014-09-25 Soft Machines, Inc. A method for emulating a guest centralized flag architecture by using a native distributed flag architecture
WO2014150971A1 (en) 2013-03-15 2014-09-25 Soft Machines, Inc. A method for dependency broadcasting through a block organized source view data structure
US10275255B2 (en) 2013-03-15 2019-04-30 Intel Corporation Method for dependency broadcasting through a source organized source view data structure
US9886279B2 (en) 2013-03-15 2018-02-06 Intel Corporation Method for populating and instruction view data structure by using register template snapshots
WO2014150806A1 (en) 2013-03-15 2014-09-25 Soft Machines, Inc. A method for populating register view data structure by using register template snapshots
US9507597B2 (en) 2013-06-10 2016-11-29 Via Alliance Semiconductor Co., Ltd. Selective accumulation and use of predicting unit history
US9891918B2 (en) 2014-01-27 2018-02-13 Via Alliance Semiconductor Co., Ltd. Fractional use of prediction history storage for operating system routines
EP2940575B1 (en) * 2014-05-02 2018-05-09 Nxp B.V. Controller circuits, data interface blocks, and methods for transferring data
US10346170B2 (en) * 2015-05-05 2019-07-09 Intel Corporation Performing partial register write operations in a processor
US10671426B2 (en) 2016-11-28 2020-06-02 Arm Limited Data processing
US10552212B2 (en) * 2016-11-28 2020-02-04 Arm Limited Data processing
US10423446B2 (en) 2016-11-28 2019-09-24 Arm Limited Data processing
CN108804139B (zh) * 2017-06-16 2020-10-20 上海兆芯集成电路有限公司 可编程设备及其操作方法和计算机可用介质
US10996990B2 (en) 2018-11-15 2021-05-04 International Business Machines Corporation Interrupt context switching using dedicated processors
KR20200100958A (ko) * 2019-02-19 2020-08-27 삼성전자주식회사 어플리케이션을 프리페치하는 전자 장치 및 방법

Family Cites Families (61)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US30007A (en) * 1860-09-11 Improvement in horse-rakes
US2878715A (en) * 1956-02-06 1959-03-24 Mark C Rhees Method of blood plasma prothrombin time determinations
US3296922A (en) * 1963-04-22 1967-01-10 American Optical Corp Apparatus for determining oxygen saturation of blood
US3516746A (en) * 1965-01-28 1970-06-23 Shimadzu Corp Cross slide spectrophotometer with a diffusing element between sample cell and photoelectric tube
US3527542A (en) * 1966-06-15 1970-09-08 Beckman Instruments Inc Cardiac output apparatus
US3638640A (en) * 1967-11-01 1972-02-01 Robert F Shaw Oximeter and method for in vivo determination of oxygen saturation in blood using three or more different wavelengths
US3649204A (en) * 1968-09-18 1972-03-14 Farr Devices Inc Metering pump for analytical samples
HU164637B (zh) * 1970-02-02 1974-03-28
US3781810A (en) * 1972-04-26 1973-12-25 Bell Telephone Labor Inc Scheme for saving and restoring register contents in a data processor
US3799672A (en) * 1972-09-15 1974-03-26 Us Health Education & Welfare Oximeter for monitoring oxygen saturation in blood
US4025904A (en) * 1973-10-19 1977-05-24 Texas Instruments Incorporated Programmed allocation of computer memory workspace
GB1486505A (en) * 1974-06-04 1977-09-21 Compur Werk Gmbh & Co Handheld photoelectric appliance for testing liquids
US3972614A (en) * 1974-07-10 1976-08-03 Radiometer A/S Method and apparatus for measuring one or more constituents of a blood sample
IT1019866B (it) * 1974-08-09 1977-11-30 Biomedix Ag Apparecchiatura per la determinazio ne della concentrazione di emoglobi na totale ossigenata e risotta car bossiemoglobina del la capacita dell emoglobina per lo ossigeno della saturazione per centuale in ossigeno e in ossido di carbonio nel sangue o in solu zioni di emoglobina
CH581836A5 (zh) * 1974-08-20 1976-11-15 Contraves Ag
US4057394A (en) * 1976-05-24 1977-11-08 Miles Laboratories, Inc. Test device and method for determining blood hemoglobin
DK146287C (da) * 1976-10-18 1984-01-30 Radiometer As Fremgangsmaade til deoxygenering af et blodproevemateriale og kapillarroer til anvendelse ved fremgangsmaaden
US4134678A (en) * 1977-03-16 1979-01-16 Instrumentation Laboratory Inc. Automatic blood analysis apparatus and method
AT374008B (de) * 1977-10-25 1984-03-12 Compur Electronic Gmbh Kuevette
US4243883A (en) * 1979-01-19 1981-01-06 Midwest Cardiovascular Institute Foundation Blood hematocrit monitoring system
US4301412A (en) * 1979-10-29 1981-11-17 United States Surgical Corporation Liquid conductivity measuring system and sample cards therefor
US4303887A (en) * 1979-10-29 1981-12-01 United States Surgical Corporation Electrical liquid conductivity measuring system
US4502786A (en) * 1979-12-26 1985-03-05 Helena Laboratories Corporation Method and apparatus for automated determination of hemoglobin species
US4324556A (en) * 1980-03-25 1982-04-13 The United States Of America As Represented By The Secretary Of The Navy Portable COHB analyzer
US4453266A (en) * 1980-04-21 1984-06-05 Rush-Presbyterian-St. Luke's Medical Center Method and apparatus for measuring mean cell volume of red blood cells
US4357105A (en) * 1980-08-06 1982-11-02 Buffalo Medical Specialties Mfg., Inc. Blood diagnostic spectrophotometer
US4444498A (en) * 1981-02-27 1984-04-24 Bentley Laboratories Apparatus and method for measuring blood oxygen saturation
FR2530029A1 (fr) * 1982-07-06 1984-01-13 Centre Nat Rech Scient Nephelometre a laser perfectionne pour la detection des antigenes et des anticorps
US4700708A (en) * 1982-09-02 1987-10-20 Nellcor Incorporated Calibrated optical oximeter probe
US4484274A (en) * 1982-09-07 1984-11-20 At&T Bell Laboratories Computer system with improved process switch routine
US4565448A (en) * 1983-03-11 1986-01-21 E. I. Du Pont De Nemours And Company Particle counting apparatus
US4651741A (en) * 1985-05-30 1987-03-24 Baxter Travenol Laboratories, Inc. Method and apparatus for determining oxygen saturation in vivo
DK282085D0 (da) * 1985-06-21 1985-06-21 Radiometer As Fremgangsmaade og apparat til bestemmelse af blodkomponenter
US5142677A (en) * 1989-05-04 1992-08-25 Texas Instruments Incorporated Context switching devices, systems and methods
US5057997A (en) * 1989-02-13 1991-10-15 International Business Machines Corp. Interruption systems for externally changing a context of program execution of a programmed processor
US5280616A (en) * 1989-02-27 1994-01-18 International Business Machines Corporation Logic circuit for task processing
JPH0353328A (ja) * 1989-07-20 1991-03-07 Hitachi Ltd レジスタ退避回復方法ならびに処理装置
US5064282A (en) * 1989-09-26 1991-11-12 Artel, Inc. Photometric apparatus and method for measuring hemoglobin
US5345567A (en) * 1991-06-10 1994-09-06 International Business Machines Corporation System and method for modifying program status word system mask, system access key, and address space code with overlap enabled
US5574936A (en) * 1992-01-02 1996-11-12 Amdahl Corporation Access control mechanism controlling access to and logical purging of access register translation lookaside buffer (ALB) in a computer system
US5428779A (en) * 1992-11-09 1995-06-27 Seiko Epson Corporation System and method for supporting context switching within a multiprocessor system having functional blocks that generate state programs with coded register load instructions
US5802359A (en) * 1995-03-31 1998-09-01 International Business Machines Corporation Mapping processor state into a millicode addressable processor state register array
US5943494A (en) * 1995-06-07 1999-08-24 International Business Machines Corporation Method and system for processing multiple branch instructions that write to count and link registers
US6070235A (en) * 1997-07-14 2000-05-30 International Business Machines Corporation Data processing system and method for capturing history buffer data
US6405234B2 (en) * 1997-09-11 2002-06-11 International Business Machines Corporation Full time operating system
US6128641A (en) * 1997-09-12 2000-10-03 Siemens Aktiengesellschaft Data processing unit with hardware assisted context switching capability
US5987495A (en) * 1997-11-07 1999-11-16 International Business Machines Corporation Method and apparatus for fully restoring a program context following an interrupt
US6006293A (en) * 1998-04-21 1999-12-21 Comsat Corporation Method and apparatus for zero overhead sharing for registered digital hardware
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
US6341347B1 (en) * 1999-05-11 2002-01-22 Sun Microsystems, Inc. Thread switch logic in a multiple-thread processor
US7318090B1 (en) * 1999-10-20 2008-01-08 Sony Corporation Method for utilizing concurrent context switching to support isochronous processes
US6629236B1 (en) * 1999-11-12 2003-09-30 International Business Machines Corporation Master-slave latch circuit for multithreaded processing
US6496925B1 (en) * 1999-12-09 2002-12-17 Intel Corporation Method and apparatus for processing an event occurrence within a multithreaded processor
US7120783B2 (en) * 1999-12-22 2006-10-10 Ubicom, Inc. System and method for reading and writing a thread state in a multithreaded central processing unit
US6553487B1 (en) * 2000-01-07 2003-04-22 Motorola, Inc. Device and method for performing high-speed low overhead context switch
US6845501B2 (en) * 2001-07-27 2005-01-18 Hewlett-Packard Development Company, L.P. Method and apparatus for enabling a compiler to reduce cache misses by performing pre-fetches in the event of context switch
JP2003099272A (ja) * 2001-09-20 2003-04-04 Ricoh Co Ltd タスク切替システムと方法およびdspとモデム
US7313797B2 (en) * 2002-09-18 2007-12-25 Wind River Systems, Inc. Uniprocessor operating system design facilitating fast context switching
US7152169B2 (en) * 2002-11-29 2006-12-19 Intel Corporation Method for providing power management on multi-threaded processor by using SMM mode to place a physical processor into lower power state
US7337442B2 (en) * 2002-12-03 2008-02-26 Microsoft Corporation Methods and systems for cooperative scheduling of hardware resource elements

Cited By (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10146545B2 (en) 2012-03-13 2018-12-04 Nvidia Corporation Translation address cache for a microprocessor
US9880846B2 (en) 2012-04-11 2018-01-30 Nvidia Corporation Improving hit rate of code translation redirection table with replacement strategy based on usage history table of evicted entries
US9875105B2 (en) 2012-05-03 2018-01-23 Nvidia Corporation Checkpointed buffer for re-entry from runahead
US10241810B2 (en) 2012-05-18 2019-03-26 Nvidia Corporation Instruction-optimizing processor with branch-count table in hardware
US9645929B2 (en) 2012-09-14 2017-05-09 Nvidia Corporation Speculative permission acquisition for shared memory
US10628160B2 (en) 2012-10-26 2020-04-21 Nvidia Corporation Selective poisoning of data during runahead
US10001996B2 (en) 2012-10-26 2018-06-19 Nvidia Corporation Selective poisoning of data during runahead
US9740553B2 (en) 2012-11-14 2017-08-22 Nvidia Corporation Managing potentially invalid results during runahead
US9891972B2 (en) 2012-12-07 2018-02-13 Nvidia Corporation Lazy runahead operation for a microprocessor
US10324725B2 (en) 2012-12-27 2019-06-18 Nvidia Corporation Fault detection in instruction translations
US9569214B2 (en) 2012-12-27 2017-02-14 Nvidia Corporation Execution pipeline data forwarding
US9823931B2 (en) 2012-12-28 2017-11-21 Nvidia Corporation Queued instruction re-dispatch after runahead
US9547602B2 (en) 2013-03-14 2017-01-17 Nvidia Corporation Translation lookaside buffer entry systems and methods
US9804854B2 (en) 2013-07-18 2017-10-31 Nvidia Corporation Branching to alternate code based on runahead determination
US9582280B2 (en) 2013-07-18 2017-02-28 Nvidia Corporation Branching to alternate code based on runahead determination

Also Published As

Publication number Publication date
TW200422949A (en) 2004-11-01
AU2003298240A8 (en) 2004-06-23
WO2004051463A2 (en) 2004-06-17
WO2004051463A3 (en) 2005-06-02
ATE487180T1 (de) 2010-11-15
CA2508041A1 (en) 2004-06-17
EP1570352A2 (en) 2005-09-07
EP1570352B1 (en) 2010-11-03
US20040111548A1 (en) 2004-06-10
AU2003298240A1 (en) 2004-06-23
CA2508041C (en) 2011-06-07
KR100615775B1 (ko) 2006-08-25
US6981083B2 (en) 2005-12-27
DE60334835D1 (de) 2010-12-16
KR20040049256A (ko) 2004-06-11
CN1726469A (zh) 2006-01-25

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
TWI240202B (en) Enhanced processor virtualization mechanism via saving and restoring soft processor/system states
US20110040956A1 (en) Symmetric Multiprocessor Operating System for Execution On Non-Independent Lightweight Thread Contexts
US20070044106A2 (en) Symmetric multiprocessor operating system for execution on non-independent lightweight thread contexts
US20070101102A1 (en) Selectively pausing a software thread
JP3874287B2 (ja) 割込み時のプロセッサのアーキテクチャ状態の管理
TWI240205B (en) Interrupt handler prediction method and system
US5875326A (en) Data processing system and method for completing out-of-order instructions
JP3872470B2 (ja) メモリにおいてセーブされたプロセス状態を管理する方法、処理ユニットおよびデータ処理システム
US7039832B2 (en) Robust system reliability via systolic manufacturing level chip test operating real time on microprocessors/systems
Monreal et al. Hardware support for early register release

Legal Events

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