TW200805150A - Digital data processing apparatus having asymmetric hardware multithreading support for different threads - Google Patents
Digital data processing apparatus having asymmetric hardware multithreading support for different threads Download PDFInfo
- Publication number
- TW200805150A TW200805150A TW095141321A TW95141321A TW200805150A TW 200805150 A TW200805150 A TW 200805150A TW 095141321 A TW095141321 A TW 095141321A TW 95141321 A TW95141321 A TW 95141321A TW 200805150 A TW200805150 A TW 200805150A
- Authority
- TW
- Taiwan
- Prior art keywords
- thread
- cache
- processor
- special
- execution
- Prior art date
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4843—Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
- G06F9/4881—Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline, look ahead
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0844—Multiple simultaneous or quasi-simultaneous cache accessing
- G06F12/0855—Overlapped cache accessing, e.g. pipeline
- G06F12/0859—Overlapped cache accessing, e.g. pipeline with reload from main memory
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/461—Saving or restoring of program or task context
- G06F9/462—Saving or restoring of program or task context with multiple register sets
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Memory System Of A Hierarchy Structure (AREA)
- Executing Machine-Instructions (AREA)
Description
200805150 九、發明說明: 【發明所屬之技術領域】 本發明係關於一種數位資 _
之,係關於數位資料處理装置的處理 行緒(multiple threads)之同時執行 體設計及操作。 T .貝抖處理硬體,具體言 單元内支援多執 之數位資料處理硬 【先前技術】 在二十世紀的後半開始了 雖然資訊革命在歷史發展的程度比^貝^革命現象。 的廣,但任何—種單—裝置沒有比數=件或機益來 j資訊革命。電腦系統的發 成:腦】二代 每-年’電腦系統成長的更快,儲】種革命。 供更多應用程式給使用者。 更夕貝料,且提 現在的電腦系統一般包含/ 以及儲存、擷取及移轉資、=理系統(c P U) 訊匯流減記如通 體’例如輪入/輪出控制器或錯存^制=戶1= 依附的裝置,好比鍵般、輿蓋 工制时,以及與其 網路輕接的通訊線等rCPj=帶機、硬碟機、與 指令包含雷腦浐4、,4 為系、、先的核心。其執行的 亚指引其㈣統構件的操作。 攸電腦硬體的角度而言,大 以相同的方式運作。處數的系、、先基本上是 处里时Ύ運作有限的簡易操作, 41BM/06122TW _ R〇C9-2005.〇216TW1(JHW) 5 200805150 例如算數、邏輯比較以及將資料從一位置移到另 但每個作業都運作得非常快速。指 運作大置的這些簡易作業的程式,導致带 ㈣。使用者所認知的:二戈功能增 作二二=系同的簡易操 需要這㈣統運作得更快。的持續改進 電腦系統的整體速度(亦稱為「吞 地測量每個時間單位所運作的作業量。理‘,2 系統速度最簡單的方式,_加^二 3爾度’具體而言’即處理器的時脈速欠 之,右每個構件以同樣的方式運作但 二也口 兩倍,則系統僅需一半的時間運作 、=又快了 的_處理器,係從多個個別構件物::。早期 及結合構件,其易受時脈脈逮==塑糟㈣少 封褒整個處理器為單一晶片上 ς曰、,取終將 ㈣作業的平均數、1曾:脈週期所執 量。現在的電腦纽係設計為同料^的吞吐 =一既定時間内所執行的作業的平均以 的平行對應,係增加系統吞吐量的==誇多類型 吕’個別處理器的尺寸及成本減縮使“單 4IBM/06122TW ROC9-2005-0216TW1 (JHW) 6 200805150 統中付以平行操衫個cpu。 電腦設計中,平^ 内的硬體多執行^、「夕種4寸定類型係使用電腦處理器 中所使用的,二多 此,「硬體多執杆铁^用之闽思亚不相同,有鑑於 「多執行緒」或「夕」。㈤通常係為了區別軟體文意中 執行。此詞囊在敕二2」與處理器設計文意中的多 務被進一步分為n的使用’係表示單一程序或任 執行。硬體多執行緒:關^丁緒,其可獨立遞送以供 緒的同時執行。這此:及早—處理器内多重軟體執行 獨立的任務。如在^此仃緒可代表相互無關聯之完全 他限制,係指硬體多執:緒「多執行緒」-詞除非有其 支援硬體多執行緒的處理 多重有效執行緒。即,^即可在任何時間點支援 送多執行緒到相同的處理^統中的遞送器可同時遞 言,似乎有兩個處理哭,。從作業系統的角度而 行緒。硬體多執行緒:夕母個處理器執行其個別的執 通常稱為厂細質多執二種=法^較習知的型態, 的基礎上相互執行,、π」士处理态藉由在週期對週期 -執行緒内每個指令的執『峨行緒。這在單 於減少等待某短期延遲事^產生一個縫隙,以致 業的完成。多執行緒的第二等待管線作 執行緒」,單一執行緒的八2常稱為「粗質多 理器遇到某較長的延曰7冒專屬執打’直到處 爭件,例如快取丟失,此時處 4IBM/06122TW ROC9-2005-0216TW1 (JHW) 200805150 胃換到另—個執行緒。 — 處理器及執行緒狀態, _= 執了緒中選擇-❹個指令作執行。期攸夕 =所貧施的硬體多執行緒類型為何 由夕行緒通常會增加某處理器資源的 、 其他執行緒是處於延遲狀態,因為二弗夕1用’即 執行緒可_處理哭來 i或夕個有效的 取線被填補時。即二Itt 好比當等待快 某些處理資源,你、更早—執行緒的處理器中, 中等待間可 則資源可被_料能性即增加有^有效崎緒, 援單—執行緒的處理哭相比,1換句老5兄,與僅支 了每時脈週期所執行之作#4數仃緒的處理器增加 ❿ 處理為每個執行緒複製某 rf實施—架構運作多執行U處 I處理器必須維持Ν個狀態來執行Ν個執行緒:二 ㈣I列暫存11會被複製Ν次:—般目的暫存界、、i 子器、條件暫存器、浮點狀態及控制暫存界:“十 數暫存器、鏈結暫存器、例外暫存器 存器及特殊目的暫存器。再者,某些特殊緩衝:设好 ,側看缓衝器(segmentl00ka^ ‘或每個項目可貼有—執行緒號的標籤。又,某^ 4IBM/06122TW ROC9-2005-0216TW1 (JHW) 200805150 不會被複製’而是由所有的執::=::架構通常 因此可知,硬體多執行緒涉 護狀態資訊所需的其他架構型態;:=暫存器及維 “需要以 元,用性=二 執行單 用分旱的硬體資源,利用性微改^ ^、更加利 常約兩個w所支㈣執行緒數量會相對較小,通 的先:在表:斷及其他特殊處理器
限綱〜 在執仃。一具體範例為I/O 這此執1/0程序的執行緒。-般而言, 待;ί 的時間在等待ι/〇完成的等 ‘一田執行日守,僅執行—短暫時間且益需大旦的 ::Γ!。當此等執行緒正在等待-罐,且二 ^ =作業糸統遞送器通常會立即遞送執行緒給 i先^寻於其高優先性),導致某些正在執行的執行 雖然每個I/O限制執行緒遞送時,可能僅執行一 短、、%·間’但許多高優先性的先行取得所累積的影塑 可減少系統作業的效率。有些經常性使用包含先行取 4IBM/06122TW _ ROC9-2005-0216TW1 (JHW) 200805150 /旱目成正在執行的執行緒 I/O限制執行绪 子:狀態’以及遞送 ,用乘上許多此等事二某:::費用’當這些管 作。再者,高優先性的執行绪且曰2嚴重的額外工 二二Γ行—短暫時間亦 要^,導ΐίίί近處理器的高階快取 因此執行緒所需的資料被移除 = 戈減少服務此等高優先性的執二 t= 文進技術, 副作用。 仃、、者所產生的不良 【發明内容】 Φ 在本發明之較佳實施例的第一声 行緒的處理器包含支援執行緒狀離’支援多執 行緒的同時執行的則固暫存器集合。=以,N個執 集合係供一種特殊類別的執行緒專屬使;—個暫存器 有特殊類別的執行緒執行,亦不能被另—種;::使沒 行緒使用。 種類別的執 的執’特殊類別 執行緒僅可填補快取二=2=別的 能發生的快取刷新。 从減少可 在較佳實施例中,處理器支援三個暫存哭隹人 一是專供特殊類別的執行緒使用。較佳=特 4IBM/06122TW ROC9-2005-0216TW1 (JHW) 200805150 =類22優f生的執行緒’通常僅執行一短暫時 口口市合大部分的時間是處於 =二、暫存 別的執行緒時,其狀態心=、。當遞送特殊類 Sti/1行緒進—步受限於討填補⑴快取及 在每個關聯集合中僅有某限匕=疋:方關聯’ 類別的執行緒使用。特殊類別::的快取線可供特殊 入此:取—分,載 在較佳實施例中,處理哭係 僅要 。即, 優先性的執行緒先選擇指令供:曰從最高 的執行緒指令未立即準備好做執,:車::優先性 先性的執行緒選擇齡。然而 較低優 型態的多執行緒。 本發明亦可使用其他 、車r地,作業系統的遞送器係根據特殊類別的合 執行於特殊類別的暫存器集合中Λ之執仃緒疋否欲 ,然可能會有人認為限制Ν個暫存器集 之為某類別的執行緒,導致暫存哭隹人 、/、 間無效,會比允許任一執行緒在 "集合中執行來的有效率(增加暫存器集合壬的利用子
4IBM/06122TW ROC9-20〇5-0216TW1(JHW) 11 200805150 性)’但並非如此。隨著暫隹 較低優先性㈣存轉合數量增加, ,個集合的優勢成為負擔。藉由頻=使得 執行緒建立特殊暫存器集合::些局優先性的 卻很短暫,使得遞送的特殊執;; 器中顯示為無效的特殊執行緒。當暫存 理器時,無需將有效n目;緒釋放處 這減少了作業系統中受-般目的執::者::換入。 器集合大多數的時間呈間置比特殊暫存 „供特殊執行緒使用“取m ^,藉 的執行週期刷新快取免在其短暫 斷。 而減夕其他有效執行緒的中 伴^4=的㈣’包含其架構及操作,皆透過參考 同的構件。肖月瞭其中相同的參考數表示相 【實施方式】 π播i照®式,其中在許多層面上,相隨字表示相 同構件’ ^!根據本發明之較佳實施例,係利用 :::多執行緒支援不同執行緒之電腦系統之主要硬 體構件之磁方塊圖統⑽駐要構件 一或多個中央處理單元(CPU) lGlA.lGlD、主記憶 4IBM/06122TW ROC9-2005-0216TW1 (JHW) 200805150 體取記憶體屬、終端介面lu、儲存介_、 〇衣置面113以及通訊/網路介面114,所 匯流排103,4及匯流排介面1〇5她⑽: =統1GG包含-或多個—般目的可程式化的 里::(CPU)101A_101D,在此—般稱作特徵ιοί: 在%d土實施例中,系統⑽包含—般相對大
典型的多處理器;然而,系統2⑽可替換為單二咖 j。每個處理器101代替多個有效執行緒同時執抒 储f於記憶體1〇2中的指令。指令及其他資料會從 记憶體102載入快取記憶體1〇6作處理。主記憶體^ 為隨機存取半導體記憶體,係用於儲存資料^此資 包含程式。雖然主記憶體102與快取1〇6在圖工概余 上=單一項目呈現,但熟此技藝者當知這些單一項I 非常複雜,具體而言,快取存在於多個不同的階層, 如此詳述。類似地,雖然某些階層的快取可在多個 間共享,如圖1所示,但其他階層的快取可包含多個 快取陣列,每個快取陣列皆緊密耦接單一 cPU。 一匯流排103_1〇5提供許多系統構件間的通訊路 控。記憶體匯流排103提供CPU 101與快取106、主 圯fe體102及I/O匯流排介面單元1〇5間資料移轉的 資料通訊路徑。I/O匯流排介面105進一步耦接系统 I/O匯流排104,以將資料移轉於許多j/ο單元之間 I/O匯流排介面105係透過系統I/O匯流排1〇4與多個 4IBM/06122TW _ ROC9-2005-0216TW1 (JHW) 13 200805150 ’丨面單兀111-114通訊,ι/ο介面單元亦τ/ 處理器(财)或1/0 早70亦無為1/0 可為例如工掌桿準m ^ ()。系統1/0匯流排 流排技術。CI匯流排,或任何其他適合的匯 置之:〇=:元而,4支援與許多館存器及1/0裝 κ舉例而s,終端介面單元lu 個使用者終端12〗_124的依 支扠一或夕
援-或多個直接存取館存裝置寸(=二面二二; 而其亦可由其他襄 置代曰’包g配置作為對主機的單―大型儲存穿 磁碟機陣列)的依附。1/0及其他裝置介面ιΐ3提供 :t ί他輪入’輸出裝置或其他類型的裝置之介面:、兩 =專裝置’即印表機128與傳真機129,係顯示於 ,1的不耗實施例,需要知道的是,許多其他的此等 衣置可能存在,其可能以不同類型呈現。網路介面 提供系統100到其他數位裝置及電腦系統的一或多個 通訊路徑;此等路徑可包含例如一或多個網路\30, 好比網際網路、區域網路或其他網路,或可包含、袁山 裝置通訊線、無線連結等等。 匕3 1¾¾ 需要知道的是,圖1試圖以高階方式描述系統1〇〇 的代表主構件,個別構件可能比圖1所示者更 雜,此等構件的數量、類型及配置可能不同。更需2 知道的是,並非所有圖1所示的構件皆存在於特定的 電腦系統。此複雜性或不同的特定範例揭露於此,+ 4IBM/06122TW ROC9-2005-0216TW1 (JHW) 200805150 要知道的是,此範例僅供參考且並非僅有此種變化。 雖然在圖1中主記憶體1〇2係顯示為單一整體項 目,但記憶體可進一步作分佈且與不同的CPU或CPU 集合相關聯,如任何一種所謂的非一致性記憶體存取 (NUMA)電腦架構。雖然圖1所示的記憶體匯流排 1〇3為相對簡單、單一匯流排架構提供快取106、主記 憶體102及I/O匯流排介面105間的直接通訊路徑, 實際上記憶體匯流排103可包含多個不同的匯流排或 通訊路徑,其可以任何型態排列,例如階層式的點對 點鏈結、星狀或網狀配置、多重階層式匯流排、平行 及冗餘路徑等。再者,雖然I/O匯流排介面1〇5與1/〇 匯流排104係顯示為單一個別單元,但系統1〇〇實際 上可包含多個I/O匯流排介面單元105及/或多個i/q 匯流排104。雖然所示的多重I/O介面單元係將連接許 多I/O裝置的許多訊路徑與系統I/O匯流排104分離, 但亦可直接連接某些或所有的I/O裝置到一或多個系 統I/O匯流排。 圖1所不的電腦系統100具有多個依附之終端 12Μ24,例如一般典型的多使用者「大型電腦」電腦 系統。典型地,在此情況下依附裝置的實際數量會大 於圖1所示的數量,雖然本發明並未限定系統於任何 特定大小。電腦系統100亦可為單一使用者系統,典 型僅包含單一使用者顯示器及鍵盤輸入,或可為伺服 器或類似裝置,其具有一些或沒有直接的使用者介 4IBM/06122TW ROC9-2005-0216TW1 (JHW) 200805150 但可揍收來自其他電腦系統(客戶端)的請求。 雖然許多系統構件已以高階方式作描述及顯示, 但需要知道的是,典型的電腦系統包含未圖示的許多 其他構件,並非了解本發明之重要構件。
立圖2代表較佳實施例中,階層式CPU與暫存主記 憶體102某部分之許多階層之快取的細節。在此實施 幻中除了主s己憶體外,另有階層式的快取,指定階 t 1 (最咼階)、階層2及階層3。一般而言,在越高 ^白層(越罪近處理器),快取變的越快,且儲存較少資 料。每個處理器101與個別的1階快取對相關連,此 快取對並不與其他處理器分享。此對的其中一個快取 皆指令快取(L1 !快取)2〇1A、2_ (在此稱為 寸斂201 ),供儲存執行於相關處理器101的指令。此 對的另外—快取為資料快取(L1 D快取)2〇2A、202B (在此稱為特徵202),供儲存執行於相關處理器101 =行緒所欲處理的資料(除了指令之外)。每個處理 ^進—步與—個別2階快取203及3階快取204相 關%,其通常可從記憶體1〇2儲存任何類型的 ί快!^每—對201、202較佳係專屬單—對應處理 -丄母固L2快取2〇3及每個u快取2〇4 個處理器間作分寒, 在夕 子雖w一或夕個此荨快取可替換作 二、:早個別處理器。為了清楚顯示 叛^0兩對快取210、202、一個U快 取203以及—個u快取2〇4,但系統議每一階層的
4IBM/06122TW ROC9-2005-0216TW1(JHW) 200805150 處理器及快取數量皆可不同。更需要 3的數量可能不同,且L1快取無須被二: 7貝枓快取,且可能有大於或小於三個階層的快取。 件雖^試圖描述許多快取之間的功能關係,有些構
:::不為獨立構件’但並非意在表現這些構;的 士衣方式。現代的積體電路技術已演進到至小 取一般是封裝在與處理器相同的積體電路“二= 為處理器核心,以與快取及其他機二區別)。 3快取201、202係與處理器封袭於相同的 年貝體私路晶片,且可視為處理器的— 將多個處理器核心放置於單一晶片上,分 取。舉例而言,在圖2所示的實施例中,—對、CPU 101A、101B與一對個別的L1J快取2〇iA、加汨、一 對個別的L1 D快取2〇2A、2㈣以及由處理器ι〇ΐΑ、 :共享的單—L2快取2G3皆係封裝於單_積體電 路曰曰片210。L3快取2〇4 一般為與對應之處理晶片一 同安置在共通電路封裝的分離式積體電路晶片。然 而,此排列僅係可行的封裝排列之一,且隨著積體^ 路及其他電子塊技術的演進,未來可想*知 一步的整合。 晶片210包含雙向外部資料通訊介面2〇5,供處 理與晶片210外部之系統構件的資料通訊。主記憶體 102、L3快取204與晶片外部資料介面2〇5間、以及 介面205間、L2快取203及L1快取201、202間有資 4IBM/06122TW _ ROC9-2005-0216TW1 (JHW) 17 200805150 料路徑。雖然圖2概念上以直接路徑表示資料路徑, 但其實際上可以多個連續匯流排或類似的資料路=每 施。 4工貝 圖3根據較佳實施例,係包含某些相關的快 構之cpu ιοί的主構件之高階圖式,顯示比圖j或1 更為詳細的CPUl〇^CpU101包含指令單元部八^ 以及執行單元部分311。一般而言,指令單元取
得^1—快取2〇1的指令,選擇並解碼指令以遞送給執 打單元,並解決分支狀態以控制程式流。執行單元°311 運作暫存器中之資料的算術及邏輯作業,並從u d 取f02裝載或儲存資料。CPU 101進-步包含位址解 澤早元322。 在此實施例中,CPU在處理器101内支援最多三 個獨立的執行緒同時執行。需要知道的是所支援的執 行緒數量可以改變。具體而言,CPU維護最多三個有 效執行緒的狀態,任何—者皆可利用處驾的硬體資 有效執行緒的狀態’每個執行緒維 #又狀恶貧簡某些暫存器或其某些部分會被複製。有 效執行緒在此指定為執行緒〇、】及2(T〇、TUT2)有 其1TI為最高優先的執行緒,而τ2為最低優先的執 订緒。執行緒TG係保留供特殊類別的執行緒使用,一 15關執^者及某些其他的執行緒。此特殊類 I; —般花費大部分的時間在作業系統的等待 狀悲,專待某事件的發生(例如ι/〇中斷)。當遞送給 4IBM/06122TW ROC9-2005-0216TW1 (JHW) 200805150 處理器作執行時,執行緒會以 地’執行時間报短,且執行緒;==行。典型 丁。(特殊執以:==,執行緒 中之一作執行。 /者^一他—般執行緒的其 才曰々早元3〇i包含分古|
304。LI I快取2〇1沾壮本口(亦稱為指令緩衝器) 304。在較佳實施射令會在執行前先载入緩衝器 的次集包有r個指令缓衝器 應至處理器所支援的個別執行緒。解對 或多個指令作執二204選擇欲遞送之-業或分支狀態。分支單元;二:以決定欲運作的作 程序流,並從L1 I快取221殖^鐘定分支狀態控制 > _ - 取221填滿緩衝器204。 # - 211包含多個執行管線312_314。圖3 2管=雖然圖示三個代 的數二:If,可以改變,且可能有相同類型 線。母個管線對應機器週期,以多重階段對 作業或作業集合。習知技術中,作業 週期進入管線’且在每個後繼週期 =、、泉中 個階段。假設管線永歧呈滿狀態, 則母個週期可平均運作一個作業,不管需要多少個階 4IBM/06122TW ROC9-2005-0216TW1 (JHW) 19 200805150 t:!此作業(雖然實際上不可能總是將管線維持在 滿狀恶)。 執仃單7L 211進一步包含〆般目的資料暫存器隹 合215,係根據指令單元3〇1的指令儲存欲在管^ 312 314中處理的貧料。_般目的資料暫存器包含固 次集合316-318,每個次集合的大小皆相同,且 理器二支援的個別執行緒。為了作清楚的描述,J =
暫存态的每個次集合316_318係以相同大小之
的早一總合作代表。然而,在許多處理器架構中,I =暫存器包含整數資料暫存詩合以及浮點資料暫二 為的獨立集合,後者通常較長。在處理器架構支接敕 數及浮點暫存器的情況下,每個次集合3⑹18勺1 整數及洋點暫存器的完整補數。當處理器實作包^ 存器的情況下,額外的補數= 配、、口 4寸疋的次集合316-318或共享之。 除了圖2中所示的構件外,處理器1〇1 :二定:,的狀態資訊時; 、㈢、、处里為所支援的每個執行緒作複掣 巧體丨02中對應的位址(通 丄) 址」或「貫體位址」)。位址_單元較佳包二
4IBM/06122TW ROC9-2005-0216TW1(JHW) 一 20 200805150 看緩衝器(TLB) 322,其實際上為記憶體中一頁表的 某些位址解譯資料的快取,並亦可包含其他資料。根 據其架構的不同,位址解譯可能會依照產生位址的執 行緒而有所不同。若是這種情況,則每個TLb項目包 含執行緒辨識符,辨識TLB項目所對應的執行緒。匕 隹較侄貫施例肀
利用真實位址作定址,而L1快取201、2〇2是透過有 效位址作定址。使用真實位址存取快取表示資料存取 的位址必須由位址解譯單元321在存取快取前先作解 譯,但在其他方面有重大優勢,尤其在系統具有多重 處理器及快取的情況下維護快取一致性。利用真實對 有效位址存取快取係涉及許多因素的算術設計選^, 有些系統架構完全利用真實位址所有的快取,有些完 全利用有效位址,也有些對某些快取(較高階快取^ 利用有效位址而其他的快取則利用真實位址。雖然在 此以一特定實施例作描述,但本發明並非限 特定的架構,而可利用任何—種變化在系統内何 在作業中,解碼/遞送單元303從暫存器3〇4 指令遞送給執行單元311。每個執行於cpu ^的扑 基礎:業,例如裝載、儲存、整數算‘ 、乍業序點作業、分支等。解碼/遞送單元3〇3可 在單一機器週期,同時遞送多個此等指令,且這必指 令可能是來自相同的執行緒或不同的執行緒。 處理指令中的最初階段。在指令遞送到執行單元^管 4IBM/06122TW _ ROC9-2005-0216TW1 (JHVV) 200805150 線312-314之情況,指令可能 成,且其他指令可在隨德沾、s 週,、月來元 解瑪/#、” 遞制相同的管線。 、解馬/遞达早凡如3根據執行緒優先順 作遞送。若硬體處理資源, 、、扣7 令,且在準備制處理A s線’可用以接收指 田g人 處貝源的T〇緩衝器305中有可栋 用射曰令’則會從TG緩衝器選擇並遞送指令。 的處理資源’但在可利用資源的το緩衝二 則解碼遞送單元將會從T1緩衝器中Ξ Ϊ: 此指令存在,且失效,則從T2緩衝 可用的指令’若此指令存在的話。處理資 在每個接㈣指令。管線有時會遲 :在2多個週期間無法使用。再者,指令 =能可以同時執行多個指令,或在不損毀程式 情況下不按照順序執行)。 i弭的 2個正在執行的執行緒内的指令係以非獨立 性才曰令之群組作組合。當指令從LU快取2()1载入緩 衝= 204時,附屬性檢測單力雇自動分析指令流以 ^哪個指令可關時執行,哪個指令可不按照順序 仃。附屬性檢測單元在每個群_最後—個指令内 放置-個停止位元(stop bit),以將指令流分為幾個順 序性指令。在任何-個群組巾,指令沒相屬性且可
4IBM/06122TW ROC9-2005-0216TW1(JHW) 22 200805150 附屬性;順iff之。具體而言,闕於每個指令, 、、A 6 Η 、早70胃在相同群組中,先前指今6此a士 算碼:附!附屬性會根據指令類型及運 情況下=並 ::4^ 的貝科來源,則沒有附屬性存在。 =、果
位置而第二指令從相同位置讀取,二"二 第二令,且無法在第-指令以 屬= 單元會在前一指令放置一個停止=: =擇指令作遞送時,不會超過一; 止位所不),麵所有的切指令皆已被遞送為止。 因為TO執行緒暫存器係保留給特殊類 緒使用(而剩餘的暫存器集合可供任何、 使用),所以大部分的_沒有有效的執行緒執 理器,且TO暫存器集合大部二巩仃於處 態。當沒有有效的T。執行緒時,解:遞 通常會從T1執行緒選擇指令作遞送,且有時會選擇硬 體資源可供制的T2執行緒指令,且沒有τι執^ 指令可遞送將其填補。當TG執行緒為有效時 = 性高於其他,錢及T2執行緒結果會以非常^頻 率被遞迗。在她式下,具有最低優先性的了2執行緒
4IBM/06122TW ROC9-2005-0216TW1(JHW) 23 200805150 可能極少或永遠無法將其指令 持在暫存器集合中,當T〇m,但其狀態維 重回更頻繁的執行。丁、、者釋放處理器時,準備 雖然各種CPU構件已力士 及顯示,但需要知道的是,較佳^過f階方式作描述 Φ 不具重=構件,轉構件對於了解本發明並 構中的的,’圖3的CPU僅係CPU架 ^個間早靶例,CPU 1〇1内槿件夕勃旦、箱荆 = 變化’除了描述的構件外“有 =之=’ i並非所有描述的_存 不同·執二?而:時緩衝器及快取的數量及配置可能 可以不rJ早兀官、、泉的數量及功能可能不同;暫存器 J Μ不同的配置盥隼人 等。再者,m/ rT 可能有專屬浮點硬體 合。 可具有一個簡單或複雜的指令集 ,較佳實施例中,TG執行緒僅得以使用某快取的 傾^刀/此限制是因為以高優先性操作之 TO執行緒會 短塹快取’並以自己本身的資料代替其内容。在 靳n订後’、T1及17執行緒接著必須以其資料重 快取。然而’刊執行緒典型地不像其他執行緒 =要大置的快取空間。其工作集合通常較小。若 =1 ’則會導致最不常使用的快取線被驅逐;通常, 這二疋與其他執行緒相關聯的線。但若W執行緒係限 4IBM/06122TW ROC9-2005-0216TW1 (JHW) 24 200805150 部分(其仍大到足夠提供適當的工作 :他勃」二/艇逐其自身不再需要的快取線,而非 八他執仃、、者將來會用到的快取線。 好勒’向優先性的執行緒所引_刷新效果 二次:、r/白層·響越大。因為T〇執行緒一般無須 此即使未受限制,越大、越低階的快取
刷新。因此,在較佳實施例中,僅 1快取文到限制,即το執行緒僅限制在L1快取的一 ^刀,且未限制L2或L3快取的任何部分。取而代之 者亦可限制T0執杆块力Τ? 寺τ, 部分。 钒仃、、者在L2及/或L3快取的某些適當
圖4根據較佳實施例中係包含相關存取機制之快 =的一般架構之代表。圖4可代表LU快取2()1、L1 D :L2快取203或L3快取2〇4之任一者,雖 ;、、、'在較么貫施例中,驅逐選擇邏輯41〇在 不相同,解釋如後。 %取中亚 技藝者所知,快取的存取是從選擇位址位 兀(有些6況是額外位元,例如執行緒辨識符位元 將關連集合的識別作解碼,並將關聯集合中:: 位址與理想的資料位址作比較。舉例而言,在快取中 有1K關聯集合的情況,1K中的10位元需要用以指 定一特定關聯集合。理想狀態下,這10仇元的決定| 使母個關聯集合有相同的機會被存取。在較佳實施例 中’ L1快取201、202是利用有效位址作定址,、而二2 4IBM/06122TW ROC9-2005-0216TW1 (JHW) 200805150 快取203及L3快取204係利用有效位址作定址。因 此’為了存取L2或L3快取,處理器所產生的有效位 址首先由位址解譯硬體321解譯為真實位址。或者, 如某些電腦系統設計,亦可利用真實位址存取所有的 快取階層,或利用虛擬或有效位址,無須解譯即存取 L1下的某些或所有快取。 芩考圖4,快取包含快取資料表4〇1及快取索引 4〇2。資料表401包含多個資料的快取線4〇3群組為關 耳外集合404。在較佳實施例中,每個快取線403在所 有快取中的大小皆相同,雖然並不一定需要如此。快 取線是資料可被帶入快取中或從快取中被驅逐的最小 單位。典型的快取線大小為128位元組,雖然這有可 能改變。每個關聯集合4〇4中的快取線數量會有所不 同,在越低階的快取這個數量越大。舉例而言,L1快 取可在每個關聯集合中包含八個快取線,而L2及L3 快取在每個關聯集合中有十六個線,需要知道的是這 僅是代表參數,這些參數可能變化。 索引402包含多列405的索引項目406,每列405 對應至資料表401的一個別關聯集合404,其包含的 索引項目406數夏寻同於關聯集合404中的快取線4〇3 數量。每個索引項目406包含對應快取線403的位址 421之至少一部分、某控制位元422以及執行緒辨識 符423。根據存取快取所使用之位址,位址部份421 可為真實或有效位址的一部分。控制位元422可包含 4IBM/06122TW ROC9-2005-0216TW1 (JHW) 26 200805150 但不 元 疋限於射匕技蟄者所知者·修飾位a;益效位 兀;-或多個需要選擇欲驅逐之快取線的位元,例如 最久沒使用(LRU)位it 或多個作為旗語的位元; 維持快取一致性的鎖或類似機制等等。 快取線是利用選擇器邏輯407選擇對應理想資料 之位址420的一部分之某功能的索引4〇4的一列4〇5
作芩考(在此稱為芩考位址)。這個功能是選擇用以達 成存多關聯集合間大致相同分佈的資料參照。通常, 這個功能是直接解碼在對應快取線大小之1^個最低位 元上之位置的參考位址的N個位元。舉例而言,對於 快取線大小為128或27,Μ為7。N係依照快取中的 關聯集合數量,且夠大選擇任何關聯集合。一般而言, 這表示Ν是關連集合數的2 log基數。即,對於有1024 個關聯集合的快取而言,N為1〇。然而,較複雜的赫 序函數(hashing function)可代替使用,其可包含位址以 外的位元,例如執行緒辨識符。再者,所有快取的函 數不須相同;直接解碼可供一快取使用,而較複雜的 赫序函數可供另一快取使用。參考位址包含大於(N+M) 個位,使得多個位址映射到相同關聯集合。 參考位址的選擇位元是輸入至選擇器邏輯407, 選擇器邏輯407產生選擇信號選擇快取索引402的一 單一列405。所選列405中每個個別索引項目406的 位址接著由比較器邏輯409與參考位址420作比較。 事實上,通常僅需要比較參考位址未被選擇器407使 4IBM/06122TW ROC9-2005-0216TW1 (JHW) 200805150 用的某個部分’因為运擇器407所使用的位元係依照 列選擇作比較。若有匹配,則比較器邏輯4〇9輸出對 應索引項目之匹配者的選擇信號。選擇器邏輯4〇8利 用运擇器407所使用的相同參考位址選擇快取線403 的關聯集合404 ’且比較器409的輸出在所選關聯集 合内%擇快取線403中的單一快取線。所選線為快取 的資料輸出413。比較器409輸出的許多選擇線是由 或閘(or gate)412做邏輯性的或(〇Recj),以產生快取命 重信號(cache hit signal)。即,假如或閘的輸出412為 有效,則會偵測到快取命中,且資料輸出413可視為 有效;若或閘412的輸出為無效,則發生快取丢失二 雖然圖4中以獨立個體顯示選擇器4〇7與4〇8, 但可發現的是其運作相同功能。根據晶片設計,其可 能實際上為單一選擇器,其輸出同時選擇索引402中 的索引列405以及快取資料表401的關聯集合4〇4。 當參照快取的資料產生快取丟失(所需資料不在 快取中),則通常需要從一較低階快取或從主記憶體 102載入所需負料。根據糸統設計,通常亦可能預期 將資料載入快取’雖然通常僅在較低階快取中才奋之 樣做,且不適用於L1快取。當新的快取線欲载入快^ 時,需要選擇現有的線作代替(從快取中被「驅逐')。 選擇係由驅逐選擇邏輯410運作之。 被驅逐的線必須與欲代替之線同屬相同的關聯集 合。透過選擇器407藉由選擇快取索引402的適去列 4IBM/06122TW ROC9-2005-0216TW1 (JHW) 28 200805150 405選擇-條線作驅逐,並輪入選擇控制位似及每 二執行緒辨識符給驅逐選擇邏輯410。驅 。輪出選擇信號’用以選擇關聯集合404 供寫出快取線表-,或供從裝載匯流 m 線到快取資料表4g卜當載入新快 二日寸」區逐選擇邏輯410的輸出亦驅動寫選擇器 411,其祕快取索引之一列德的一個項目傷從裝
載匯流排413、位址42G或適合新裝載之快取線的1 他控制資訊寫入資料。 〃 在較佳實施例中,對於至少一個快取,驅逐邏輯 410會有效地限制το執行緒可能填補之每個關聯集合 中的快取線數。這個數量稱為TG限制(皿),且兩 要小於每個關聯集合中快取線的數量。外部信號⑽而 對驅逐,輯表示要求新快取線的執行緒是否為T0執 行緒。若否,驅除邏輯根據任何適當的驅逐演算式, 選擇關聯集合中的任一快取線作驅除。習知許多此等 演算式、現在或未來所開發的演算式皆可使用。若丁0 2行緒要求新快取線,且若執行緒10所填補的關聯集 合已有T0L快取線,則驅逐邏輯受限將丁〇執行緒鎖 填補的快取線之一驅除。藉此,執行緒τ〇所填補之快 取中的快取線數不得超過T0L。 、 驅逐邏輯410可藉由在某個環境下修改驅逐優先 性簡單地實施此限制。一般而言,驅逐邏輯41〇針對 所選關聯集合中的每個快取線衍生優先性,並選擇較 4IBM/06122TW ROC9-2005-0216TW1 (JHW) 29 200805150 低優先的線作驅逐。優先性通常是根據任何現有習知 技術或未來所發展之技術,從控制欄位422的某些位 衍生而出,例如表示最近參考之訊息的LRU位、無效 位等。若執行緒T0重新填滿新快取線,且T0所填補 的關聯集合中已有T0L或更多快取線,則會修改此優 先性(StdJPriority )。分配給每個快取線的修改優先性 可作以下陳述: IF ( ZCache^LineTO(i) + New Line__T〇>TOL) AND (Cache Line T0(S)=0 )
THEN Priority—Cache_Line(S)=MAX
ELSE
Priority—Cache—Line(S)二 Std—Priority—Cache—Line(S) 其中若正在填補新快取線的執行緒是TO執行 緒’則New—Line_T0等於1,否則等於零;若快取線 i由執行緒T0填補,則Cache_Line—T0(i)等於1,否則 等於零(在關聯集合中橫跨所有快取線的總合為i); MAX是可行的最高優先性;Priority—Cache Line(S)是 快取線S的修改優先性,以及 Std—Pdority—Cache—Line⑻根據LRU、無效及/或其他 控制位是快取線s的未修改之優先性。較佳地,]^1八又 是高於任何其他位階的特殊高優先性位階,雖然根據 LRU (即,等效於最近存取快取線的位階)其亦可代 替作為最高,位階。藉由增加快取線s必須有效以接收 MAX優先性的額外條件,其亦有可能修改以上描述。
4 旧 M/06122TW ROC9-2005-0216TW1 (JHW) 30 200805150 =頜外條件可允許無效錄線域行緒W所 快取線取代,因此在有限的環 " 的快取線可能超過T= 則行緒Τ〇所填補 Τ0暫人殊類型的執行緒是利用處理器1〇1之 、,暫存為木&執行。需要觀察的是,在處理器自身内 亚热避免任何執行緒類型在TG暫存器集合內卜 者。處理器依靠作孝夺统辨噹麻 m、口 仃 人的护執行於TG暫存器集 行緒二並4:Γ ΐ業:系統的遞送器獨立紀錄執 存界'集人。σ σ&理讀奴執行緒所應執行之暫 圖5疋一概念圖,其顯示記憶體1〇2之某些主要 权體構件以及電腦㈣丨⑽中體^ ^ =之區分的抽象圖。= 峨機器。這些程序可在任何抽象階層作 的抽象圖中,使用者指定程序及輸入, 二接收輪出。越往低階層移動’這些程序是某程式語 :的和、n將持續降低會解譯為較低階指令順 :透過2業系統碼及資料位元’這些資料位元會 U機,暫存器以推進某些動作。在最低階,改 雙电堅導,許多電晶體被開啟及關閉。圖5中,抽象 圖的「較高」階是表現於圖式的 現於圖式的底層。 自疋表 顯示於圖5的硬體層5〇1代表實體處理器、記悻 體、匯流排及其他執行指令的構件。如在此所示,硬
4IBM/06122TW ROC9-2005-0216TW1(JHW) 31 200805150 集合(而非儲存 中所示的其他硬 體層501代表圖〗_4中之實體裝置的 於衣置中的資料),並包含未在圖1_4 體。 硬體的上層是低階作業系統層5〇2 糸統中稱為「執行核心」。在實體層面, 恤憶體位置且執行於::或多=
广運作所品功能之指令型態的資料。低階作業系 享系統資源、分配記憶體、執行安 作聿李统糸統功能。執行緒遞送功能為低階 業糸、、先502戶斤提供的功能之一。遞送器503遞送在 處理器中準備被執行的執行緒,如此詳述。盥遞送哭 2相關的是包含準備執行且等待被遞送器503遞送 的執仃緒之準備仔列資料結構5G4 執行(:’、在被遞送至處理器作執行前等;^ 知式510_5丨2及使用者資料物件犯—训。系統可選擇 ,包含其他較高階作業系統功能5〇9。一般而言,較 南階作業L力能509提供附加性能及功能給欲存取 此等功能的使用者,但使用者程序可直接存取低階作 業系統502供執行。 t業i元成等某些事件的發生)之實體執行緒的等待 仵列育料結構5G5 ;以及執行狀態資料結構(由項目 50=-5060所不’且在此一般稱為特徵5〇6),係紀錄 目前正執行於每-烟處㈣1G1A_1G1D的執行緒。 位於低階作業系統502之上的是各種使用者應用
4IBM/06122TW ROC9-2005-0216TW1 (JHW) 一 32 200805150 在任遞送係取決於執行緒的狀態及優先性。 言,執行^二f1行緒是處於許多狀態之一。舉例而 送至處理行狀態’其中此執行緒已被遞 準備==發生且因此等待此事件的發生、或
的處理哭#執仃鱗備練行且僅在等待可使用 態的改作f統’可^義附加狀態或上述狀 相關聯。習知的#f㈣優先性一般係與每個執行緒 明之方法7觀紐分配^法或以後所發 理者或iitt優先性一般是由使用者、系統管 已在準備㈣等待的時間長短。 匕執订、、者 的狀ΐΐ佳!Γ”,每個執行緒或執行緒群組所有 之執:::員包含=;=傳特,」 :::要多個位元的狀態資訊的多二或= 舉例:類==='由任何其他技術指定。 別。亦可由作業系统根據觀察到的行為,動:= 4IBM/06122TW ROC9-2005-0216TW1 (JHW) 33 200805150 行緒給特殊類別,比八 行的時間。會員制曰;=量或先前遞送時其執 其程式碼或部於允許任何使用者指定 理想,僅可由授別之執行_ 殊類別之會員制殊工具較佳用以指定特 Φ 者應二 1為會比使用 於特殊類別的執行绪料,統功施。非指定為屬 中,特殊類別執行_ =別」執行緒。圖5 行緒係由「G」N表示,其中」NN為表^且-般類別執 5〇5 構504及執行緒等待佇列結構 習知形數,且Ϊ中的資料可根據適當的 單-清單以宁列__圖5中这些件列結構是由個別的 他考量而= 可根據優_ 的執行緒血型為J/L , 不準備仔列504 ,:心 別執行緒與—般類別執行緒的混合。支包3祕類 件發待糾505 ’直到其等待的事 送請從準備者,轉到準備仔列504。遞 執行绪俜;^G4进擇執行緒作遞送。典型地, 、糸根•先性選擇之,且在具有相同優先性的
4IBM/06122TW R〇C9-20〇5.〇216TW1(JHW) 34 200805150 然而,也可2備分列中最久的執行緒會先被選取。 (例如非其他考量。舉_言,在某些系統中 性分割憶體架構「而退」系統、或邏輯 處理哭群糾可能會為不同的處理器或 纟轉於线中,或《鱗
行緒到το暫存L隹早人作广業糸統及遞运特*類別之執 多個、羅龉、态木^的遞送器,但電腦系統可分宝J為 自身個別的作業系= 類別之ΪΓ 選擇遞送至το暫存器集合的特殊 草此、》結仃、、者可能會存在於邏輯分割中之並中之 某些避所有賴分财。 /、中之-、 之每個暫存哭506紀錄執行於每個處理器中 與處理哭Γ〇ΓΓ=的執行緒。舉例而言,如圖5所示, 紀錄;執行===構506Α將執行緒「S4」 τι執行緒暫存器存益集合、執行緒「G3」紀錄於 行緒暫存器集合;^ 紀錄於T2執 忙碌,因此一般類別及了2暫存器集合為 然而,-般來请會料於準備㈣504。 列5〇5,僅非常少別的執行緒會等待於等待俾 執行特殊類別的執在任何時間點執行。典型地, 量,即會超過處理器㈣ 馳及101D的τ〇 里°如圖5所不’處理器 97 Τ0暫存器集合(分別如紀錄於執行 4IBM/06122TW ROC9-2005-0216TVV1 (JHW) 35 200805150 狀恶資料結構遞及506D)為閒置。 —般類別的執行緒是從 使用的T! · T2暫存器集合,且^^遞=到可 置’也不會遞送到Τ0暫存哭隹a :吏;:—者為閒 T1或增子器集合成;;;·(=理器中的 釋放處理器、或預先取 :(口為執行執行緒
&成為有效,則遞送哭、 暫存态集 緒切換到T1二二^導致處㈣將現有T2執行 T2暫存器集合^ ’亚遞送糾中的執行緒到 T2暫存器集合的“ 備仔列遞送到们或 少數情況下,切能H 的執㈣’雖然在 也j I為锊殊類別執行緒,如 成為二Ϊ件的發生,導致等待件列505中的執如者 :為準備執行’則執行緒會移轉到準 :仃、: 緒,且ί 3=行緒,則通常是高優⑽ =則特殊類別的執行緒會被遞送ίΤ0暫: Μ,至少會有-個可使 ^^口。 類別的執行緒立即遞送。在少數:可供特殊 暫存器集合可為忙斿^义 月况下,所有的το ,可能被遞送到T1暫存器集 』2執仃 情況下’通常會轉現 此在這種 立即被遞送到T1暫在哭隹人叙备殊執行緒,並 暫存TO7K&。右锊殊類別的執行緒被 4IBM/06122TW ROC9-2005-0216TW1 (J H W) 36 200805150
遞送到τι暫在哭、I 緒-般地執行於:合貝:其會如任何-般 類別的執行 中的某些快取線之次 且並不會受限於丄1快取 的執行緒-般)。調敕=σ同執行於το暫存器集舍 是否被遞送到Τϊ二τ? ?作業系統控制特殊執行緒 及U的邏輯處理器。 口種軟體項目在圖5
在其他項目内n ★疋』不為獨立項目或包含 考,特定掇Γ/ 需要知道的是,此表現僅供矣 的-部分或許多模組的封裝:再蜀貝目二戈共用模組 念表現顯示軟俨炤日从甘 再者,雖然圖5中以概 ,二專項目的實際數量可能 在稷雜的多處理器系統環 」/、體而吕, 般會較大。 中此4項目的複雜性一 雖然圖5的軟體構件 體202中,作n音一心地』不為常駐於記憶
咖太小以致無法同時保留所有的程式統 訊通常是儲存於眘枓辟六壯座 飞及貝科,貧 :储存衣置,好比旋轉式磁碟機,且資訊 = 業糸統分頁到記憶體。再者,需要知道岐 f要表現並非意指任何特定的記憶體組織模型:㈣ ⑽可實施單一位址空間虛擬記憶體,】$ = 璺的多重虛擬位址空間。 貝e相重 在此所描述的本發明之實施例,係具有— 性但快取限制硬體執行緒及二個硬體普通執行=可
4IBM/06122TW ROC9-2005-0216TW1(JHW) 200805150 ί具^三個#通執行緒的處理器作比較。為了作比 :,集執行緒的二 腦密集應用程式運作非同步"。及/或:為: 置複製槽案到另-裝置的實用功能。 攸一瓜 處理特:暫存器集合的三個執行緒的習知 密集執行緒之-的狀能、^子—個正在執行的計算 雜恶’以及回復ι/〇執行緒的狀離。 複i -區塊:資::::行:厂,體緩衝; 緒資料來自快取,則其將會刷 備執行計算密集的執行緒之狀態;亚,準 緒都在執行,但很緩慢,0 ^ 异執行 且這些快取丟失導致指令 ^歷快取丢失 行。 仏而要更多個時脈週期作執 相較而言,因為遞送了一個1/〇 施例避免計算料的執行緒的=’較佳實 免計算執行紅⑽執㈣㈣其亦避 在系統忙碌於許多同時17〇 1/0中斷後成為可遞送的情況’會有二=
-4旧M/06122TW ROC9-2005-0216TW1(JHW) 38 200805150 執行緒。在本發明之實施财 先性的硬體執行緒而非-般目的執行緒的利用间叙
緒的情個計算密集應用執行 執行緒的經歷;⑵:=至服務1峨 下’若兩者以上共享:同的;編的情況 會有中斷及内容切換發生乍業系統 執行緒間時間分享系統資源::。由如其在這棚 情況=常在習知處理器僅支援兩個執行緒的 T0L,^貫Ϊ例中’當T〇填補線的數量為預定限制 Τ0埴^驅逐選擇邏輯運作以限制藉由驅逐 數旦真補線快取線的數量’由TG執行緒填補的快取線 =。此貫施例的優勢在於其實作簡單,且有足夠的 w允許在沒有有效TG執行緒時,由非TG執行绪使 Γ2Γ取線:然而’有許多方法限制το執行緒所 勺快取線數I。舉例而言’每個關聯集合中固定 的線次集合可保留給T0執行緒’其不可使用任何其他 的快取線。此次集合可專屬保留給το執行緒,或在沒 有有效Τ0執行緒時,由其他執行緒使用。或者,= 執行緒在每階層可具有其自身的獨立快取,無法由其 他執行緒存取。獨立快取所提供的分離可提^某浐^ 上較佳的性能,儘管Ή或T2執行緒無法使用專 τ〇執行緒的額外快取線。 4IBM/06122TW ROC9-2005-0216TW1 (JHW) 39 200805150 你平父佐頁她例丫 -丨、^个蜗训叼轨行块人、士广 專屬高優先性的暫存器集合,且會破遞送到 :的快取線次集合。然而,亦可 中的其中之一。舉例而言,特殊高優先性哭隹人 可能會為特殊類別的執行緒而保留, :本s 用的快取線數量。或者,可提供某二::= 補之快取線數量上的限制’提供特 哭隹义
給此等執行緒。 $仔為集合 在較佳實施例中,特殊類別的執行_[ 別的執行緒無法使用之專屬高優先性的暫存哭隹二員 且限制在僅利用快取中的快取線次集合。缺二二 ^共其他型態的非對稱硬體資源執行緒給特殊類別: 執仃緒。舉_言’—般會期彳铸殊 ^、 運作密集的浮點或向量作業。若處理哭包人不 向量及浮點暫存器以支= U在—集合中省略此暫= '』月匕冒需要在沒有使用浮點和人ΛΑ壯1 模式中’編輯器可編㈣可使用的執 巧 器集合的附加的硬體轉變或變更亦為可:、者το暫存 如此所述’多執行緒的處理哭了 同時執行,其中Ν較佳為3。然:,N‘C: 终多設㈣素,且可為3以相數字。隨著處理= 4IBM/06122TW ROC9-2005-0216TW1 (JH W) 40 200805150 功能變的更多,設計考慮將可能傾向大量的 。 再者,雖然在較佳實施财,單 隹人早 == 亍緒’但可想見的是為; 订緒所保留的暫存器數量可能比一高。 體例執行實施本發明所示之實施例的軟 八,氣疋實作為作業系統執行核心的-部
指令,當㈣本㈣。程式典型包含 中的-上it 的電腦系統中的裝置或系統 個處理器讀取及執行時,會導致這 要件所需的步驟。再者執仃^或產生 冉者雖然本發明在此以電腦系統 二::!ΓΓ乍描述’但本發明的許多實施例可以 二沾:的私ί產品作分佈’不論實際實現此分部所 吏的仏號攜帶媒體的特定類型為何,本發明皆相 適用之^號攜^>媒體的範例包含但不限於揮發及非 揮體裝置、磁帶機、硬碟機、光碟機、DVD、 、▼專荨再者本發明適用於任何型態的信號攜帶 媒體,不管是資料是從—種㈣的信號攜帶媒體透過 傳輸網路(包含無線網路)交制另—種型態。信號 攜帶媒體的範例在圖丨中係以系統記憶體1〇2及資 儲存裝置125 -127顯示。 ' ^雖然本發明之一具體實施例與其他替換已在此揭 露,但熟此技藝者當知其型態及細節的變更可能落入 以下請求向的範圍之内。 ° 4IBM/06122TW ROC9-2005-0216TW1 (J H W) 41 200805150 【圖式簡單說明】 圖1根據本發明之較佳實施例,係利 體多執行緒支援不同執行狀電腦系統硬: 件之高階方塊目; 要硬體構
圖2根據較佳實施例,呈現暫時儲存主 些部分之快取的許多階層及階料CPU的細^'體某 圖3根據較佳實施例,係包含某些相 構的CPU之主構件的高階圖; 决取木 圖4根據較佳實施例,係包含相關之存取 快取之一般架構的表現; 戍剩的 圖5根據較佳實施例,係顯示記憶體1〇2之某主 要軟體構件以及電腦系統中不同階層上抽象的硬體 軟體功能之區分的概要圖。 # 【主要元件符號說明】 100電腦系統 101中央處理單元 102主記憶體 103、104、105 匯流排 106快取記憶體 111、112、113、114 1/0 介面單元 121、122、123、124使用者終端 41BM/06122TW ROC9-2005-0216TW1 (JHW) 42 200805150 125、126、127直接存取儲存裝置 128印表機 129傳真機 130網路 201、202 特徵 203階層2快取 204階層3快取 205雙向外部資料通訊介面 210晶片 215 —般目的資料暫存器集合 301指令單元 302分支單元 303指令解碼/遞送單元 304指令暫存器集合 305、306、307 次集合 308附屬性檢測單元 311執行單元 312裝載-儲存管線 313整數算術/邏輯管線 314浮點管線 316、317、318 次集合 321位址解譯單元 4IBM/06122TW ROC9-2005-0216TW1 (JHW) 200805150 322解譯侧看緩衝器 401快取資料表 402快取索引 403快取線 404關聯集合 405列 406索引項目 4〇7、408選擇器邏輯 409比較器 410驅逐選擇邏輯 411驅動寫選擇器 412或閘 413資料輸出 420、421 位址 422控制位 423執行緒辨識符 501硬體層 502低階作業系統層 503遞送器 504準備佇列資料結構 505等待佇列資料結構 506執行狀態資料結構 4IBM/06122TW ROC9-2005-0216TW1 (JHW) 200805150 509高階作業系統功能 510、511、512使用者應用程式 513、514、515、516、517、518 使用者資料物件
4IBM/06122TW ROC9-2005-0216TW1 (JHW)
Claims (1)
- 200805150 十、申請專利範圍·· 1· 一種數位資料處理裝置,包含·· 、一處理器’該處理器包含^^數個暫存器集合供 支援執行緒狀態之維護以及複數個執行緒之同時 執行,該複數個暫存器集合之每一暫存器集合對應 一個別執行緒; …一記憶體,供儲存該處理器可執行之指令;以 及 a 作業系統,嵌入於複數個處理器可執行之指 j,該作業系統包含—遞送器,係供選擇遞送給二 處理器之執行緒; Q μ 其中該執行緒包含一特殊類別 ,及不屬於該特殊類別之複數個執行緒,以= :-該暫存器集合係保留給特殊類別的該執 2.如請求項1所述之數位資料處理裝置,其 別的該執行緒包含高優先性I/O限制執行緒。頒 3·如請求項1所述之數位資料處理裝 i 執行優先性係與該複數個暫存器集人/、> 一個別 存器集合相關聯,·其中該處理器包I二之該暫 係從該複數個暫存器集合選擇勃指令單元, 單元根據每-該暫存器集合之該個別 4IBM/06122TW ROC9-2005-0216TW1 (J H W) 46 200805150 優先選擇指令 4. 戶二述之數位資料處理裝置,其中保留給 :=二:執⑽的該暫存器集合比非保留給 j 一二、斬六::執行緒之該複數個暫存器集合的任 …古暫^集合有—較高的執行優先性。 5. 述之數位資料處理裝置,其中該遞送 i 的暫存器集合中遞送執行的執行 該執行緒仏暫在n4不屬於該特殊類別的 _子态木&,除了保留給特殊類別之該 執仃、、者之忒至少一暫存器集合。 6.如請求項】所述之數位資料處理裝置,更包含: "至〆快取,供暫時儲存執行於該處理器上之 執行緒所使用之該記憶體的所選内容; 2中二行於該處理器上之特殊類別的該執行 緒被不止九、補超過該快取之一部分,該部分係小於 該快取的全部。 7· —種數位資料處理裝置,包含: / -處理H ’該處理H包含複數個暫存器集合供 支板執灯驗叙維護以及複數個執行緒之同時 執行,該複數個暫存器集合之每-暫存n集合對應 4IBM/06122TW ROC9-2005-0216TW1 (JHW) 47 200805150 個別執行緒; 及 以 —記憶體’供儲存該處理H可執行之指令; 緒顺Ξί談供己存執行於該處理器上之執行 μ°己丨思體的所選内容;以及 緒以ίΓί執行'緒包含—特殊類別的複數個執行 、、^不屬於該特殊類別之複數個執行緒,以及 緒被禁止上之特殊類別的該執行 該快取的全ί快取之—部分,該部分係小於 8. 所述之數位資料處理裝置,其 ’白、亥執仃緒包含高優先性1/〇限制執行緒。犬、 9. 二,項7所述之數位資料處理 包含複數個快取線,每-快取線對特殊2 t快取 行緒皆相等有效;以及其中該次 犬、彳的该執 -快取填補功能,係限制特殊類別二置J包含 補之該快取線的數量。 /執仃緒所填 10. 如請求項9所述之數位資料處理事 包含複數個關聯集合,每一關华^中該快取 取線,其中N係大於-的整數^含/個快 填補功能包含清除邏輯,係從該快取選擇、I:: 4IBM/06122TW ROC9-2005-0216TW1(JHW) 48 200805150 取線’當該特殊類 的快取線之緒所填補之關聯集合中 之一執行緒所填補t:線關^合選擇該特殊類別 lh =2:2=數位資料處理裝置’其中該快取 部分’至少一部分係分配給該 於該特殊類== 及至少-部分係分配給不屬 12·如:m所述之數位資料處理裝置,其中該至少 一快取包含位於_箪 /、丫成主夕 -第二階之㈠皆之至少一快取以及位於 該處理器,以及ϋ取’該第;:階比該第二階接近 取之一部分3乡於該至少一快 一快取的全部位於該第—階之該至少 少-快取之㈣二階不限制填補多於該至 13. -種支板遞送功能之電腦程式產品,包含· r,:Lt行緒處理器之一遞送器,實施為紀劍 ϋ負载媒體之複數個t腦可執行指令,居 至少-電腦系統執行時,該指令導致至少一 * 統選擇遞送之執行緒給該多執行緒處理器;屯' 4IBM/06122TW ROC9-2005-0216TW1 (JHW) 49 200805150 合以理器包含複數個暫存器集 同時執行,η 之維濩以及複數個執行緒之 對應至itl存器集舍之每—暫存器集合 1固別執行緒; 緒以及^ ί ί含—特殊類別之複數個執行 中至少—於料殊類別之複數個執行緒,以及其 行緒;以^暫存盗集合係保留給特殊類別之該執 殊類別之^ =在遞較該執行緒是否為該特 —暫存處心之該複數㈣存11集合選擇 員13之電腦程式產品,其中 執仃緒包含高優先1/0限制執行緒。、別之及 ❿ 15· 數位資料處理 了種數位資料處理器晶片,適用於 糸統’包含: π隹人ί理讀心,該處理11核心包含複數個暫存 援執行緒狀態之維護以及複數個執行緒 同德仃,该複數個暫存器集合之每一暫存 合對應一個別執行緒; TO:?K 執行於該處理器核心之執行緒所使用之-快 取,該快取暫時儲存執行於該處理器上之執行緒所 4IBIW06122TW ROC9-2005-0216TW1 (JHW) 200805150 使用之該數位資料處理系統之 容;以及 所選内 其中該執行緒包含-特殊類別 緒以=屬於婦殊_之複數個執行緒,^執/ 八中執打於該處理器上之特殊 及 緒被禁止填補超過該快取之-部分;亥部亥執行 該快取的全部。 刀係小於16.如請求項15之數位資料處理 包含複數個快取線,每一快取 行緒皆相等有效;以及其中該 一快取填補功能,係限制特殊 補之該快取線的數量。盗晶片,其中該快取 線對特殊軸的該執 資料處理裝置更包含 類別之該執行緒所填 包含複數個關聯集合%&里1^片人’其中該快取 取線,其中Ν係大於一的整數^口包含Ν個快 填補功能包含驅逐邏輯,係從該快取^擇1 =快取 取線,當該特殊類別之執杆铁取、擇清除之快 的快取線之總數等於或超過、於補之:聯集合中 時’該清除邏輯優先從一人選擇的:予!定值 之-執行緒所填補之'線作、、主;擇㈤寸殊類別 18·如請求項15之數位資料 處理器晶片 其中該快取 4IBM/06122TW ROC9-2005-0216TW1 (JH W) 51 200805150 係被分為複數個離散部分 特殊類別之執行緒,以及至小二f刀係分配給該 於該特殊類別之執行 夕一°卩分係分配給不屬 19.如清求項15之數位 器晶片包含位於-第—二 其中§亥處理-第二階之至少-快取二3 一快之以及位於 該處理器,以及# t #彳=^階比絲二階接近 別的該執行緒在^^ 亥處理器核心之特殊類 丁、、者在δ亥弟—階不得填補多於該至少一 小'一心部分係小於位於該第-卩皆之該至 二、取的全部’但在該第二階不限制填補多於該 至少一快取之一部分。 20.如請求項15之數位資料處理器晶片,其中至少一 该暫存H集合係保留給特殊類狀該執行緒。4IBM/06122TW ROC9-2005-0216TW1 (JHW) 52
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US11/290,887 US7624257B2 (en) | 2005-11-30 | 2005-11-30 | Digital data processing apparatus having hardware multithreading support including a register set reserved for special class threads |
Publications (1)
Publication Number | Publication Date |
---|---|
TW200805150A true TW200805150A (en) | 2008-01-16 |
Family
ID=38088885
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW095141321A TW200805150A (en) | 2005-11-30 | 2006-11-08 | Digital data processing apparatus having asymmetric hardware multithreading support for different threads |
Country Status (4)
Country | Link |
---|---|
US (2) | US7624257B2 (zh) |
KR (1) | KR100810017B1 (zh) |
CN (1) | CN100530082C (zh) |
TW (1) | TW200805150A (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9229790B2 (en) | 2011-08-31 | 2016-01-05 | Microsoft Technology Licensing, Llc | Projecting native application programming interfaces of an operating system into other programming languages |
US9563487B2 (en) | 2011-08-11 | 2017-02-07 | Microsoft Technology Licensing, Llc. | Runtime system |
US10089119B2 (en) | 2009-12-18 | 2018-10-02 | Microsoft Technology Licensing, Llc | API namespace virtualization |
US10635504B2 (en) | 2014-10-16 | 2020-04-28 | Microsoft Technology Licensing, Llc | API versioning independent of product releases |
Families Citing this family (45)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7624257B2 (en) * | 2005-11-30 | 2009-11-24 | International Business Machines Corporation | Digital data processing apparatus having hardware multithreading support including a register set reserved for special class threads |
KR100770034B1 (ko) * | 2006-03-02 | 2007-10-26 | 삼성전자주식회사 | 복수의 레지스터 파일을 이용한 문맥 교환 방법 및 시스템 |
US9003410B2 (en) * | 2007-01-30 | 2015-04-07 | Hewlett-Packard Development Company, L.P. | Abstracting a multithreaded processor core to a single threaded processor core |
GB2448118B (en) * | 2007-04-03 | 2011-08-24 | Advanced Risc Mach Ltd | Error recovery following erroneous execution with an instruction processing pipeline |
US7747820B2 (en) * | 2007-06-15 | 2010-06-29 | Microsoft Corporation | Managing working set use of a cache via page coloring |
US8584138B2 (en) * | 2007-07-30 | 2013-11-12 | Hewlett-Packard Development Company, L.P. | Direct switching of software threads by selectively bypassing run queue based on selection criteria |
US9772853B1 (en) * | 2007-09-17 | 2017-09-26 | Rocket Software, Inc | Dispatching a unit of work to a specialty engine or a general processor and exception handling including continuing execution until reaching a defined exit point or restarting execution at a predefined retry point using a different engine or processor |
CN101546282B (zh) * | 2008-03-28 | 2011-05-18 | 国际商业机器公司 | 用于在处理器中执行写拷贝的方法和设备 |
US8341355B2 (en) * | 2010-05-25 | 2012-12-25 | International Business Machines Corporation | Reducing energy consumption of set associative caches by reducing checked ways of the set association |
US8413158B2 (en) | 2010-09-13 | 2013-04-02 | International Business Machines Corporation | Processor thread load balancing manager |
CN102141938B (zh) * | 2010-12-03 | 2013-01-30 | 华为技术有限公司 | 多线程系统中软件负荷的调整方法及装置 |
US8725993B2 (en) * | 2011-02-23 | 2014-05-13 | International Business Machines Corporation | Thread transition management |
TWI556092B (zh) * | 2011-09-30 | 2016-11-01 | 英特爾公司 | 用以減少電力消耗之基於優先順序的應用程式事件控制技術 |
TWI497419B (zh) | 2011-10-20 | 2015-08-21 | Via Tech Inc | 電腦裝置及其中斷任務分配方法 |
US9069598B2 (en) | 2012-01-06 | 2015-06-30 | International Business Machines Corporation | Providing logical partions with hardware-thread specific information reflective of exclusive use of a processor core |
US9201810B2 (en) * | 2012-01-26 | 2015-12-01 | Microsoft Technology Licensing, Llc | Memory page eviction priority in mobile computing devices |
US9639466B2 (en) * | 2012-10-30 | 2017-05-02 | Nvidia Corporation | Control mechanism for fine-tuned cache to backing-store synchronization |
US10095765B1 (en) * | 2013-04-10 | 2018-10-09 | Marvell International Ltd. | Method and apparatus for a hardware-implemented AVL tree module |
US9817667B2 (en) * | 2013-05-23 | 2017-11-14 | Advanced Micro Devices, Inc. | Techniques for scheduling operations at an instruction pipeline |
US9760511B2 (en) * | 2014-10-08 | 2017-09-12 | International Business Machines Corporation | Efficient interruption routing for a multithreaded processor |
US9575802B2 (en) * | 2014-10-28 | 2017-02-21 | International Business Machines Corporation | Controlling execution of threads in a multi-threaded processor |
US11080064B2 (en) | 2014-10-28 | 2021-08-03 | International Business Machines Corporation | Instructions controlling access to shared registers of a multi-threaded processor |
US9652817B2 (en) * | 2015-03-12 | 2017-05-16 | Samsung Electronics Co., Ltd. | Automated compute kernel fusion, resizing, and interleave |
US10275280B2 (en) | 2016-08-10 | 2019-04-30 | International Business Machines Corporation | Reserving a core of a processor complex for a critical task |
US10248457B2 (en) | 2016-08-10 | 2019-04-02 | International Business Machines Corporation | Providing exclusive use of cache associated with a processing entity of a processor complex to a selected task |
CN117555598A (zh) * | 2016-09-28 | 2024-02-13 | 北京忆芯科技有限公司 | 调度方法与装置 |
US10223164B2 (en) | 2016-10-24 | 2019-03-05 | International Business Machines Corporation | Execution of critical tasks based on the number of available processing entities |
US10248464B2 (en) | 2016-10-24 | 2019-04-02 | International Business Machines Corporation | Providing additional memory and cache for the execution of critical tasks by folding processing units of a processor complex |
CN107707665A (zh) * | 2017-10-19 | 2018-02-16 | 郑州云海信息技术有限公司 | 一种网络存储方法、装置、系统及计算机可读存储介质 |
US10592164B2 (en) | 2017-11-14 | 2020-03-17 | International Business Machines Corporation | Portions of configuration state registers in-memory |
US10558366B2 (en) | 2017-11-14 | 2020-02-11 | International Business Machines Corporation | Automatic pinning of units of memory |
US10698686B2 (en) | 2017-11-14 | 2020-06-30 | International Business Machines Corporation | Configurable architectural placement control |
US10761751B2 (en) | 2017-11-14 | 2020-09-01 | International Business Machines Corporation | Configuration state registers grouped based on functional affinity |
US10901738B2 (en) | 2017-11-14 | 2021-01-26 | International Business Machines Corporation | Bulk store and load operations of configuration state registers |
US10635602B2 (en) | 2017-11-14 | 2020-04-28 | International Business Machines Corporation | Address translation prior to receiving a storage reference using the address to be translated |
US10664181B2 (en) | 2017-11-14 | 2020-05-26 | International Business Machines Corporation | Protecting in-memory configuration state registers |
US10552070B2 (en) | 2017-11-14 | 2020-02-04 | International Business Machines Corporation | Separation of memory-based configuration state registers based on groups |
US10496437B2 (en) | 2017-11-14 | 2019-12-03 | International Business Machines Corporation | Context switch by changing memory pointers |
US10761983B2 (en) | 2017-11-14 | 2020-09-01 | International Business Machines Corporation | Memory based configuration state registers |
US10642757B2 (en) | 2017-11-14 | 2020-05-05 | International Business Machines Corporation | Single call to perform pin and unpin operations |
KR102407128B1 (ko) * | 2018-01-29 | 2022-06-10 | 마이크론 테크놀로지, 인크. | 메모리 컨트롤러 |
US10691490B2 (en) * | 2018-07-06 | 2020-06-23 | Apple Inc. | System for scheduling threads for execution |
CN110297722B (zh) * | 2019-06-28 | 2021-08-24 | Oppo广东移动通信有限公司 | 线程任务通信方法及相关产品 |
KR20210051718A (ko) | 2019-10-31 | 2021-05-10 | 에스케이하이닉스 주식회사 | 데이터 저장 장치 및 그것의 동작 방법 |
US11625269B1 (en) * | 2021-03-31 | 2023-04-11 | Amazon Technologies, Inc. | Scheduling for locality of reference to memory |
Family Cites Families (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5197138A (en) * | 1989-12-26 | 1993-03-23 | Digital Equipment Corporation | Reporting delayed coprocessor exceptions to code threads having caused the exceptions by saving and restoring exception state during code thread switching |
US5404469A (en) * | 1992-02-25 | 1995-04-04 | Industrial Technology Research Institute | Multi-threaded microprocessor architecture utilizing static interleaving |
JPH11203149A (ja) | 1998-01-13 | 1999-07-30 | Matsushita Electric Ind Co Ltd | タスクスケジュール装置およびその方法 |
US6202129B1 (en) | 1998-03-31 | 2001-03-13 | Intel Corporation | Shared cache structure for temporal and non-temporal information using indicative bits |
US6275907B1 (en) * | 1998-11-02 | 2001-08-14 | International Business Machines Corporation | Reservation management in a non-uniform memory access (NUMA) data processing system |
US6938252B2 (en) | 2000-12-14 | 2005-08-30 | International Business Machines Corporation | Hardware-assisted method for scheduling threads using data cache locality |
US20020103847A1 (en) * | 2001-02-01 | 2002-08-01 | Hanan Potash | Efficient mechanism for inter-thread communication within a multi-threaded computer system |
US7080379B2 (en) | 2002-06-20 | 2006-07-18 | International Business Machines Corporation | Multiprocessor load balancing system for prioritizing threads and assigning threads into one of a plurality of run queues based on a priority band and a current load of the run queue |
US7222343B2 (en) * | 2003-01-16 | 2007-05-22 | International Business Machines Corporation | Dynamic allocation of computer resources based on thread type |
US7496915B2 (en) * | 2003-04-24 | 2009-02-24 | International Business Machines Corporation | Dynamic switching of multithreaded processor between single threaded and simultaneous multithreaded modes |
US20040268093A1 (en) | 2003-06-26 | 2004-12-30 | Samra Nicholas G | Cross-thread register sharing technique |
US7103735B2 (en) * | 2003-11-26 | 2006-09-05 | Intel Corporation | Methods and apparatus to process cache allocation requests based on priority |
US7310722B2 (en) | 2003-12-18 | 2007-12-18 | Nvidia Corporation | Across-thread out of order instruction dispatch in a multithreaded graphics processor |
US7475399B2 (en) * | 2004-01-13 | 2009-01-06 | International Business Machines Corporation | Method and data processing system optimizing performance through reporting of thread-level hardware resource utilization |
US20060036810A1 (en) * | 2004-08-12 | 2006-02-16 | International Business Machines Corporation | System, application and method of reducing cache thrashing in a multi-processor with a shared cache on which a disruptive process is executing |
US7624257B2 (en) * | 2005-11-30 | 2009-11-24 | International Business Machines Corporation | Digital data processing apparatus having hardware multithreading support including a register set reserved for special class threads |
-
2005
- 2005-11-30 US US11/290,887 patent/US7624257B2/en not_active Expired - Fee Related
-
2006
- 2006-09-08 CN CNB2006101517453A patent/CN100530082C/zh not_active Expired - Fee Related
- 2006-11-08 TW TW095141321A patent/TW200805150A/zh unknown
- 2006-11-10 KR KR1020060110854A patent/KR100810017B1/ko not_active IP Right Cessation
-
2007
- 2007-10-24 US US11/923,455 patent/US8250347B2/en not_active Expired - Fee Related
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10089119B2 (en) | 2009-12-18 | 2018-10-02 | Microsoft Technology Licensing, Llc | API namespace virtualization |
US9563487B2 (en) | 2011-08-11 | 2017-02-07 | Microsoft Technology Licensing, Llc. | Runtime system |
TWI577539B (zh) * | 2011-08-11 | 2017-04-11 | 微軟技術授權有限責任公司 | 用於運行時間系統的電腦實施方法、電腦可讀取儲存記憶體及系統 |
US9229790B2 (en) | 2011-08-31 | 2016-01-05 | Microsoft Technology Licensing, Llc | Projecting native application programming interfaces of an operating system into other programming languages |
US10635504B2 (en) | 2014-10-16 | 2020-04-28 | Microsoft Technology Licensing, Llc | API versioning independent of product releases |
Also Published As
Publication number | Publication date |
---|---|
CN100530082C (zh) | 2009-08-19 |
US8250347B2 (en) | 2012-08-21 |
US20070124568A1 (en) | 2007-05-31 |
CN1975663A (zh) | 2007-06-06 |
KR100810017B1 (ko) | 2008-03-07 |
US7624257B2 (en) | 2009-11-24 |
US20080040583A1 (en) | 2008-02-14 |
KR20070056945A (ko) | 2007-06-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TW200805150A (en) | Digital data processing apparatus having asymmetric hardware multithreading support for different threads | |
US20130074088A1 (en) | Scheduling and management of compute tasks with different execution priority levels | |
TWI276959B (en) | Memory management system having a forward progress bit | |
US5323489A (en) | Method and apparatus employing lookahead to reduce memory bank contention for decoupled operand references | |
CN110121698A (zh) | 用于异构计算的系统、方法和装置 | |
US8195883B2 (en) | Resource sharing to reduce implementation costs in a multicore processor | |
US7644255B2 (en) | Method and apparatus for enable/disable control of SIMD processor slices | |
TWI354930B (en) | Method and system for speculatively sending proces | |
US7219185B2 (en) | Apparatus and method for selecting instructions for execution based on bank prediction of a multi-bank cache | |
US20060206635A1 (en) | DMA engine for protocol processing | |
WO2019152063A1 (en) | Efficient work unit processing in a multicore system | |
US20070101013A1 (en) | Scalable multi-threaded media processing architecture | |
TW201227521A (en) | Non-blocking wait-free data-parallel scheduler | |
TW201234264A (en) | Remote core operations in a multi-core computer | |
IL134823A (en) | Method and device for selecting an event in a multi-process processor | |
JP2014501969A (ja) | コンテキスト切替え方法及び装置 | |
JP2004038981A (ja) | データ処理装置用トレース要素生成システム | |
JP2002503845A (ja) | タスク切り替えによるゼロオーバヘッドコンピュータ割り込み | |
WO2009088396A2 (en) | Age matrix for queue dispatch order | |
US20160371116A1 (en) | Heterogeneous enqueuing and dequeuing mechanism for task scheduling | |
Racunas et al. | Partitioned first-level cache design for clustered microarchitectures | |
US6427189B1 (en) | Multiple issue algorithm with over subscription avoidance feature to get high bandwidth through cache pipeline | |
US8959319B2 (en) | Executing first instructions for smaller set of SIMD threads diverging upon conditional branch instruction | |
Govindarajan et al. | Design and performance evaluation of a multithreaded architecture | |
CN108733585B (zh) | 缓存系统及相关方法 |