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 PDF

Info

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
Application number
TW095141321A
Other languages
English (en)
Inventor
David Alan Kra
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 TW200805150A publication Critical patent/TW200805150A/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/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • G06F9/4881Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
    • 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, look ahead
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0844Multiple simultaneous or quasi-simultaneous cache accessing
    • G06F12/0855Overlapped cache accessing, e.g. pipeline
    • G06F12/0859Overlapped cache accessing, e.g. pipeline with reload from main memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control 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
    • 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)
  • 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)

  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
TW095141321A 2005-11-30 2006-11-08 Digital data processing apparatus having asymmetric hardware multithreading support for different threads TW200805150A (en)

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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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

Cited By (5)

* Cited by examiner, † Cited by third party
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) 缓存系统及相关方法