TW508533B - Cache architecture to enable accurate cache sensitivity - Google Patents
Cache architecture to enable accurate cache sensitivity Download PDFInfo
- Publication number
- TW508533B TW508533B TW088108865A TW88108865A TW508533B TW 508533 B TW508533 B TW 508533B TW 088108865 A TW088108865 A TW 088108865A TW 88108865 A TW88108865 A TW 88108865A TW 508533 B TW508533 B TW 508533B
- Authority
- TW
- Taiwan
- Prior art keywords
- cache
- thread
- processor
- threads
- memory
- 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
-
- 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/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5027—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
- G06F9/5033—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering data affinity
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)
Description
刈 8533 A7 B7 五 發明說明( 説明 技術領域 本發明係關於電腦系統之線程排程。更明確地説,本發 明係關於用以便於追縱線程之快取覆蓋區,以執行快取敏 感型排程,之方法及系統。 丛_前技術説明 在現代電腦架構中’ CPU效能漸次上升之速度遠快於記 憶體存取速度。因此處理記憶體延遲之影響變得愈來愈 要。爲降低相當高之記憶體存取時間,如圖1所示之電 系統插入愈來愈大尺寸之快取記憶體(14a,14b)於微處 务(1 2 )及記憶體(丨3 )之間,且經常運用更多層次之快^ 口己版(14,15)[1]。但是,如果出現快取不中,則cpu速 度g加與记彳思骨豆速度增加之不同會導致較大之快取記憶 重新載入時間,以CPU循環來衡量。已知存在各種技術 用以隱藏快取不中,例如指令相依性分析,預測型執行 脱序執仃及預擷取[i ]。當快取記憶體存取時間及記憶 之差異逐漸擴大時’使用該等技術來隱藏快取不 知’交件愈來愈困難。因此,微處理器將遭遇更多停止, 而增加執行指令所需之循環之平均數目㈣。若要使電腦 系統之cpi保持爲低,則重要的是 取不中之數目。j重㈣疋要降低微處理器遭遇之快 。。快取不中通常是由於快取資源有限而發生,其中 用線程之工作集合無法全部存在於快取記情^ a it ’在㈣線程之間切換將導致快取不中, 重 腦
取 訂 體 可 體 中 因 腦 線 在 因 本紙張尺涵(C^4 — -4- 观533 A7 B7 五 、發明說明( 濟 部 智 慧
I :―線程所存取之記憶體將逐出其他線程之快取内容。減 ,問題之-明顯方法是增加執行線程之時間分配量 因而增加在該較長時段之快取再使用之機率。^是, 時間分配量對於其他系統參數,例如回應時間,而^ p 不利影響,且因此,其通常不會受到採用。 、 ::〔或甚至大多數,現代伺服器系統是快取記 :d、旱記憶體型多處理器系統( :理器(广:12賴至1更多之記憶體模組= 在孩寺系統中,當一線程之執行自—處理 )[_] 理其所存取之記憶體之_部份㈣快 』 -處理^快取記憶體時,快取不中就會發生。―子二 該等記憶體位置,則快取不中即發生而導致快取線轉移Γ =處理器。此種系統之排程器可藉由不僅考 ^ ^呈之優先權,而且考慮線程料不同處理器之^= 來改吾輸出量及回應性[2,4,5,6]。如果線程 程於他們具有高度類似性之處理器,則快取不中之地又 降低,且因此輸出量會增加。排程一線 :曰 於其具有類似性之處理器所導致之少量延遲實際 該線程之回應性,因爲當該線程眞的開始執行時^ 2广時間於重新建立其之快取記憶體内容。雖“ 户夕處理咨排程器的確f試某種型式之類似性排程 :程之有效性很有限,因爲排程器無法精確估計快取類似 作業系統之第一種嘗試且仍然是最廣泛用於多處理器系 事 項 頁 線 程 加 器 5- 本紙張尺度適用中國國家標準(CNS)A4規格(210 X 297公釐
I 508533 A7 B7 五、發明說明(3 經濟部智慧財產局員工消費合作社印製 、,无〈商用作業系統之方法是使用虛擬時間戳記(★㈣一 St卿)。在此處,_旦線程了在處理器始執行,則指配 :每-處理器時間戳記給該線程。指配較高之類似性値給 對於-給定(處理器具有最高時間戳記之線程。通常使用 非常簡單之建構來實現此概念,亦即如果該線程最後在此 處執行,則指配値”1”,否則指配値,,(),,。此方法未將線 程〈快取覆蓋區列入考量。其假設,i常是錯誤的,最近 在-處理器執行之線程對於該處理器具有最高之類似性。 4多處理咨已使用機制以將在_設^區段之快取不中之 數目列入考量,且作業系統開始使用此資訊[3,4,5,6]。 在最少不中(minimum misses)策略中,排程器記憶一線程 在其最後一次執行期間所遭遇之快取不中之數目。一給定 、、泉私之取;f;中之數目愈少,^指配給該線程之快取類似 性恩同。一更複雜之策略是基於快取記憶體重新載入暫態 杈型(cache reload transient model)。重新載入暫態(Reload Transient)疋足我成爲在重新啓始一線程之後重新建立該線 紅4覆盍區之成本。馬可夫鏈模型(Mark〇v Chain M〇dei) 可用以估計一给足時間之線程之覆蓋區[3,5,6]。尤其, 馬可夫鍵模擬由於在線程執行期間之快取不中所導致之作 用快取線數目增加之機率。例如,假設一系統具有N快取 線且執行線私T目前掌握μ快取線,快取不中會增加τ之 快取覆蓋區(亦即Τ之快取線皆未由於不中而受到取代)之 機率是(Ν-Μ)/Ν。該鏈接著可藉由應用相同邏輯於多於一 快取不中來加以建構。同樣地,相同之模型可用以估計一 -6 - h張尺度適用中國國家標準(CNS)A4規格(210 X 297公爱) ϋ n LI ϋ I I n ϋ I · I n (請先閱讀背面之注意事項ml寫本頁) 訂: -丨線- 508533
五、發明說明(4 各程(快取覆蓋區之減少,假設自該線程最後 始算起之快取不中之數目爲已知。接著,當排程時執選丁: :有最低重新載入暫態之線程就很合理,因爲我們預期今 線程會遭受最少快取不中以恢復至其之前一狀態。此種; 略假設系統爲馬可夫型,亦即與歷史無關,而此可能益法 精確反映-線程之行爲,也無法反映快取記憶體之硬體限 制,例如快取記憶體相關性⑴。另夕卜,因爲是在該線程之 存活期間漸次遞增估計快取覆蓋區,此模型可能無法達成 同步,而導致不良之排程決定。 目前之類似性排程方法之主要障礙,如前所述,是快取 類似性函數是基於非常簡單之直覺方法,例如虛擬時間戳 記’或者他們是基於快取覆蓋區估計,例如隨機模型,例 如馬可夫鏈。 因此’需要一種具有改良之快取類似性排程之作業系 統’且該種快取類似性排程是基於精確之快取覆蓋區測 量。 · 參考文獻 1. J. L. Hennessy, D. A. Patterson,nComputer Architecture: A Quantitative Approach," Morgan Kaufmann Publishers, ISBN 1-55860-329-8,1996. 2. U· Vahalla,"UNIX Internals: The New Frontier/ Prentice
Hall,ISBN 0-13-101908-2, 1996。 3. D. Thiebaut,H. Stone. "Footprints in the Cache,丨丨 ACM .Transactions on Computer Systems,5(4),Nov. 1987,pp. 本紙張尺度適用中國國家標準(CNS)A4規格(210 X 297公釐) n il· n IT ϋ n ^ n n I I - ϋ I (請先閱讀背面之注意事項m寫本頁) 經濟部智慧財產局員工消費合作社印製 508533 A7 B7 經濟部智慧財產局員工消費合作社印製 五、發明說明(5 ) 305-329 。 4. M. Squillante, E. Lazowska, "Using Processor Cache Affinity in Shared-Memory Multiprocessor Scheduling," IEEE Transactions on Parallel and Distributed Systems, 4(2),Feb. 1993, pp. 131-143。 5. A. Tucker,丨丨Efficient Scheduling on Multiprogrammed Shared Memory Multiprocessors,丨丨 Ph. D. Thesis, Department of Computer Science, Stanford University, CX-TN-94-4, Dec. 1993. 6. F. Belossa, "Locality-Information-Based Scheduling in Shared-Memory Multiprocessors," IPPS'96 Workshop 〇n Job Scheduling Strategies for Parallel Processing, Honolulu, Hawaii, April 1996. 在此提及前文所列之參考文獻1 - 6以供參考。 發明概述 本發明之一目標是提供改良之快取類似性排程。因此, 本發明提供一種,藉由量測每一線程針對每一處理器之快 取覆蓋區,來排程多處理器系統之線程之方法及裝置。接 著:每-線程對於每-處理器之類似性是藉由使用面二 決定(快取覆蓋區來決定。每一線程在每—處理器之執、 接著是依照類似性來排#呈。在纟發明之一更特定實例中了 每-線程對於每-快取記憶體之快取覆蓋區是藉由自: 定快取記憶體所擷取之作用快取線之數目來量測。 i式簡單説明 -8 - (請先閱讀背面之注意事項ml寫本頁) -------. 訂· 線- 私紙張尺度朝+關家鮮(CNS)A4規格⑵〇: 297公釐)
) 五、發明說明(6 圖1示意顯示一且古私 處理器; 、正5型快取架構之共享記憶體型多 圖2是與本發明之容 示音圖; 處理器系統整合之快取架構之高階 圖3示意顯示本於日曰 一 Λ月足快取監測單元之内部架構; 圖4示意顯示根;j虑士 & 豕本發明之快取監測單元更新運作; 圖5示意顯示用以洫; M 决疋、、泉程在一給定處理器之執行優先 — < F線敎孓通用演算法;以及 圖0 TF意顯7J?排程哭 ^ 且包含該等線程之一線程之分派 佇列及類似性向量。 例之説明 如前所討論,圖]姑祕 m ^ 口描述一具有多個處理器或CPU (12a··· 12b)之示範多處理器系統⑴)。每一處理器連接至一儲存 媒體’短記憶體(13),且該記憶體保存及/或支援應用及作 m軟體° i少-對應快取記憶體(14a,ub)穿插於處 理器及其相關記憶體之通訊路徑之間,雖然也可穿插多重 層次之快取記憶體(14&,咐,153,151?)。該等快取記憶體 (目標是暫時儲存經常受到存取之該記憶體之内容,且提 供一通往該快取之記憶體内容之較快通訊路徑,以提供較 快之記憶體存取-。 根據如圖2所示之本發明,標準之快取架構是藉由一快 取監測單元(20) (CMU)來加以延伸。如其名稱所此種 延伸之目標是監測及歸屬快取記憶體之所有權及使用,以 進行一計算單元(程序,線程)之快取覆蓋區之量測。圖: 9- 本紙張尺度適用中國國家標準(CNS)A4規格(210 X 297公复) (請先閱讀背面之注意事項ΛΡϋ寫本頁) --rw^-------裝 •線· 經濟部智慧財產局員工消費合作社印製 508533 A7 B7 五、發明說明(7 ) 才疋供CMU與其他標準系統元件,亦即快取記憶體(21), CPU (22),及記憶體(23),之整合及互動之高階概圖。當 目前線程,在CPU執行其之指令流,藉由載入或儲存運作 ld(A)/st(A)(24)來存取記憶體位置A之内容(M[A])時,cpu 經濟部智慧財產局員工消費合作社印製 -ϋ n 1» %-v an n ϋ 11 ϋ m I · ϋ· I (請先閱讀背面之注音筆項Hi寫本頁) --線- 經由CPU-快取記憶體介面(28)來發出該等請求至其之相 關快取記憶體(21)。快取記憶體之工作接著是(a)辨識是否 M[A]已儲存於快取記憶體,且接著送回資料(如⑷至 CPU ’或(b)是否在執行該工作⑷之前必須首先自主記憶體 擷取M[A]。如果M[A]已存在於快取記憶體,則送回叫^] 至CPU而不存取記憶體。在此時無需與(:1^1;進行互動。但 是,如果从[A]未儲存於快取記憶體,則快取記憶體必須經 由快取記憶體-記憶體介面(23)自記憶體單元擷取資料。因 爲快取記憶體遠小於主記憶體,快取記憶體必須挪出空間 或•’排除”其他快取之記憶體以儲存M[A]。快取記憶體是 配置成爲一有限數目(NUM一CL)之快取線,其中每一 ^ = 線保存-特定數目之連續記憶體位元組,冑爲快取線大小 (CLS)。快取記憶體通常基於一簡單對映函數f⑷㈠列如位 址位元雜亂化)來配置多個快取線成爲許多群組。換句二 説,M[A]只可儲存於一屬於他們相關之快取線群組 之快取線。如果CG[A]之所有快取、線皆不可使用,叫快取 記憶體必須自CG[A]排除一快取線。如果快取線處於修改 狀態,亦即記憶體及快取記憶體之内容不一致,則排除快 取線包含寫回至記憶體。只有在該種情形之tm[a]方可擷 取至新釋出之快取線。配置及排除機制是目前之快取記= -10- 508533 A7 B7 五、發明說明(8 ) 體運用之標準建構Π]。 但是’根據本發明之另一方面,必須自快取記憶體獲得 應排除那一線及某些記憶體内容應充填那一線之通告。爲 使CMU可在任何給定時間提供精確之快取覆蓋區量測,當 排除或充填事件發生時,該等通告應立刻送出。該等額外 之運作可並行執行且不會在存取快取記憶體之關鍵路徑上 造成任何額外之架空。尤其,一旦快取記憶體決定排除快 取線h,則快取記憶體在快$記憶體-CMU通訊匯流排(c3-匯泥排)(27)發出’’ evicl^Li)’’通告,且一旦快取記憶體填滿 一快取線,則傳送” filled(Li)”通告至CMU。實際上,除了 一快取線無效化及啓始CMU狀態以外,所有排除之後皆緊 接著相同快取線之充填。因此,’,evicKLi),,及” fillecKLi),, 可整合於一請求。無效化指令可藉由增加一額外參數INv 至请求來提供(在硬體上這是當發出快取無效化指令時會 受到提升之一額外信號線)。因此,自快取記憶體發出至 CMU之每一請求具有Req<L,ιην>之型態,其中l辨識受到 # %之快取線’而Inv辨識是否此請求是一無效化指令之 結果,或一快取線充填之結果(意謂一排除)。 現在説明一種方法,且該種方法運用來自快取記憶體之 通告請求,及致能CMU以提供該等線程之每一線程所擷取 之快取線有多少快取線仍作用於快取記憶體之量測給該等 線程之每一線程。 CMU彳頡取及確認母一通告請求Req<L,Inv>(例如藉由降 低,C3-匯流排之一特定信號)。除了 CMU-快取記憶體介面 -11 - 本纸張尺度適用中國國家標準(CNS)A4規格(210 X 297公釐) τ i^i If an —1 H- ϋ ϋ ·ϋ I · ϋ (請先閱讀背面之注意事項HI寫本頁) . -丨線· 經濟部智慧財產局員工消費合作社印製 508533 A7 _ ___B7__^五、發明說明(9 ) 經濟部智慧財產局員工消費合作社印制π 以外,CMU提供通往CPU (29)之介面,且該介面暴露下列 二π指令’’以修改及查詢CMU之狀態: 1) setowner(oid):辨識自此處開始擴取直到發出另/ nsetowner(oid)n爲止之所有快取線之所有者。〇 i d必須 是有效之識別(請參看下文)。 2) getusage(oid):擷取該有效oid所擁有之快取線之數目。 做爲有效之oid,我們假設必須滿足下列限制: [〇<oid<MAX—OID],其中M^X—OID爲某一系統常數,且〇 是預留以處理INV情形及CMU之啓始狀態。在此處爲簡化 本實例之討論,我們假設潛在所有者(例如線程,程序)之 數目不會超過ΜΑΧ-OID。稍號將説明潛在所有者之數目 的確超過MAX_OID之情形。 對於母一有效之oid,而非僅對於目前之所有者,必 須維持此oid”擁有”之快取線之數目,稱爲〇c(〇id)。爲維 持此種計數,CMU必須維持每一快取線^之快取線所有者 CLO(Li)。尤其,對於自快取記憶體所接收之每一請求 <L ’ lnv>,CMU減少相關於快取線L之目前所有者之計數 器且增加相關於新所有者之計數器,如最後一,,set〇wn^,, 指令所示。-般而t,當進行本文切換時,作業系統會發 出"set〇wner"指令給CMU。如果請求之Inv信號受到提升, 則選擇” 0 ”做爲新所有者以顯示盏所古 、、 ,石〜、不抶所有者相關於快取線(請 '/王思·’ 0 ’’不是有效之〇id)。同樣地去 ’ U诼也田糸統啓始時,所有快 取線皆歸屬於〇 i d " 〇,,。 圖3更詳細展示CMU之内部架構且歸屬前述需求於下文 本紙張尺錢財關家鮮(CNS)A4規格⑵〇一 12- 297 ) I ϋ n ϋ «^9 ϋ ϋ ϋ n ϋ I · ϋ ϋ c請先閱讀背面之江意事項1!^寫本頁) · -線- 508533 A7 五、發明說明(1〇) 所列之各種CMU元件: !.-所有者辨識碼暫存器。如eg(3()),I其包含— 以辨識目前正在執行之所有者(線程,程序)。 2. —大小爲NUM_CL之快取線_〇1(1向量(32),且對於每一 快取線L[G...NUM-CL-i](32a-z)保存快取線之所有者之 〇 i d = CLO(Li) 〇 3. 一计數器向量(33),且Jt對私在、紙+ 士、, 、)且,、對於母一潛在有效〇id値皆維 持該oid所擁有之快取線攀目之計數。 4. 一 C3-匯流排介面(34),且其與快取單元進行互動。 5. — CMU更新單元(35),且其基於”排除"及,,充填,,,通告 來修改CMU狀態。 6. — CPU介面(36),且其運作於cpu所發出之如〇職^及 getusage指令。 田1J作用疋CMU可輕易追縱否則會固定於快取核心硬體 本身之其他資訊。例如,藉由只計數通告請求,CMU可提 供實際之快取不中統計資訊。 CMU更新單元(35)之運作是維持快取線之正確計數及所 有權。如圖4之圖形所示,CMU更新單元遵循下列之運作 流矛王: • (41)自C3·匯流排介面(34)擷取下一通告請求(L,Inv)。 • (42)自快取線-〇id向量(32)擷取快取線L之目前所有者。 • (43)減少剛決定之所有者之輸入項的c〇unter_vector (33) 〇 • (44)如果Inv信號獲得提升,則new_owner設定爲π 〇 以顯 13- 良紙張尺度適用中國國家標準(CNS)A4規格(210 X 297公釐) ρ ϋ «»_τ i_i LI S4 ϋ ϋ ϋ n ϋ ϋ I ^ ϋ I (請先閱讀背面之注意事項HI寫本頁) 訂: -丨線· 經濟部智慧財產局員工消費合作社印製 508533 A7 B7 五、發明說明(11) 示無效(46)’否則1^\^一〇〜1^1:是藉由(^(1^§(45)之内容 來決定。 (47) $又足快取線之所有者cl〇(L)爲new__owner 〇 • (48)增加 new—owner 之 counter—vector(34)。 max_oid之選擇決定於各種系統參數,例如快取線之數 目NUM—CL及快取線大小CLS,與線程及程序之數目。下 文將提供一些基於最新技術之快取架構及作業系統參數之 估計。快取記憶體之快取線數目NUM—CL是數千或數萬之 數量級,而非數百萬之數量級。例如,假設快取記憶體之 大7小爲4百萬位元組(222 ),且快取線之大小爲128位元組 (2 ),則導\致快取線之數目爲32768( 2”)。另外假設作業系 統限制可產生之線程數目爲4096(^)。請注意許多商用作 業系統提供遠較少之線程數目。但是,以2位元組之儲存 來表示〇id允許最多發出穴不同之〇id。給定前述該等數 字,則快取記憶體設計需提供64千位元組之儲存空間給 CaCheline-〇id-vect〇r,且如果ΜΑχ一〇m=4〇96,則需提供另 外8千位兀組以儲存c〇unter—vect〇r,而總共需要η千位元 組《額外儲存空間。這是原始儲存空間之大約"5%。雖 然快取記憶體大小-直在增加,CMU延伸所需之總快取吃 憶,大小之有效百分率可能將會下降,因爲快取線大小也 可能會增加。因此快取線之數目將不會依照快取記憶體大 速率來增加,而最終可降低相對於總快取記體 日曰片面和之CMU所需之晶片面積。 但是’作業系統必須準備好以處理〇id可爲關鍵資源之事 -14 本紙張尺度顧中國國家鮮(CNS)A4絲(2K) X 297公爱) (請先閱讀背面之注意事項寫本頁:> 裝 ,丨線· 經濟部智慧財產局員工消費合作社印製 508533 A7 五、發明說明(12 ) 貫。本發明提供一種用以處理多於ΜΑχ一〇ID線程之方 法。二種通用之方法很合理,其中第一種方法是靜態的且 配置諸線程成爲許多群組,而第二種方法則較爲動態且要 求作業系統積極地隨著時間處理^“之指配。 在靜態心oid指配方法中,應指配一共同〇id給屬於相同 位址2間或程序之線程。這相對於隨機線程群組化具有優 點,因爲屬於相同程序之線程通常共享資料及/或碼,亦 即圮憶體。分隔一程序之所有線程成爲許多線程群組並指 配一分別oid給每一此種群組也是可行的。尤其,如果可 獲待關於線程之記憶體共享之資訊,則共享他們所定址之 "己u把之大邵份的該等線程應指配給一具有不同之線 群、、且這會限制私序或線程群組之最大數目成爲 MAX^oid 〇 動態oid指配方法認知下列事實:在快取類似性排程中, /、有有限數目之線程可受益,亦即受到致能可以執行之該 等線程。一般而言,許多線程是處於去能狀態,而此經過 時間 < 轉移將無可避免地減少線程之快取覆蓋區。因此下 列方法對於作業系統而言是有效的:(1)如果一線程或線程 群組已受到去能,則重新使用該線程或線程群組之一 0ld,(2)重新指配該oid給一不同之個體及(3)一旦該線程或 線程群組重新受到致能,則指配一新〇id給該線程或=程 群組。在此種情形之下,MAX-〇ID限制系統之受到致能 並準備好執行之線程的數目,而非線程之總數目,且此^ 大·多數多處理器系,因爲内部資源之限制,無論如何必^ 15 本纸張尺度適財_家標準(CNS)A4規格(21G X 297公爱 n n i_l n 1 ϋ mmj» i el· ϋ ϋ n n ·ϋ I 0 ϋ n (請先閱讀背面之注意事項寫本頁) -丨線_ 經濟部智慧財產局員工消費合作社印製 A7 五、發明說明(13) 經濟部智慧財產局員工消費合作社印製 做的事。 每一方法皆有其之優點及缺點, 於在該等系統上執行之 泎夕k點及缺點決足 方法對於、 作負載,且因此選擇靜態或動態 万忐對於此貫例而1是形成正交的。 雖然未受限於下文,女夕 、 nset〇wner„.M f 大夕數〈處理器設計可提供 setowner 及 getusage"指令 .^ ^ ^ 1文馬特殊用途暫存器指令 (颌似於快取線無效化,或讀 >.^ 乂貝取即時性時脈,或擷取/重置 快取狀悲(例如擷取快取不中 P八甘rb Θ · 數目)),或做爲載入/儲存 才日々’其中CMU暫存器對映至#取_、^ , 7呎至處理态〈實體位址範圍之 一邵份。 +例而7 ’我們在此處展示_作業I统之簡單指令序 以使用CPU-CMU介面於—暫存器型指令集與記憶體對映 《CMU暫存态。熟悉本技術領域者應可輕易對映此範例於 其他,令集及/或特殊用途暫存器。在不失通用性之下,、 在此範例中,我們假設暫存器Γ 4保存一線程説明區塊之位 址,OID一OFFSET説明此區塊之某一固定偏移量,其中 存此線程之oid,CMU-OID常數説明CMU 〇id暫存器所對' 之貫體位址,且CMU一VEC説明一 CMU計數器向量之第一 輸入項所對映之實體位址(每一輸入項2位元組)。 如稍早所述,排程器最好當一排程決策正好要切換執行 至所選工作之前使用類似於下文之碼來設定〇id-reg : Ids r3, r4(0ID—OFFSET) //載入線程 <〇id> 1 6-位元植 於暫存器r3 * Idw r5?@CMU_0ID "載入CMU—OID暫存器之位址 16- 本纸張尺度適用中國國家標準(CNS)A4規格(210 X 297公釐) 某 列 儲 • B^i AIV— n If Tw ammmt βϋ ϋ I— I Mmi I · n el (請先閱讀背面之注意事項HI寫本頁) 訂. •線· 508533 A7 B7 五、發明說明(14) stsx r3? 0(r5) //以0偏移量來儲存1 6-伯 元於CMU—OID暫存器 爲執行快取類似性排程,排程器必須建立每一線程之快 取類似性成爲快取覆蓋區之—函數,且因此必須自⑽擷 取後者。 Ids r3,r4(〇ID一OFFSET) 經濟部智慧財產局員工消費合作社印製 //載入線程<oid>16-位元値於 暫存器r 3 //載入CMU—OID暫存器之位址 //向左偏1位置以取得正確 之向量偏移量 //載入 counter—vector[〇id]之 16-位元内容於r6 快取覆蓋區測量現在儲存於暫存器r6,且可與其他排程 優先杻結合以推導一總體執行優先權。此説明如下。 我們現在展示如何整合快取監測裝置之使用於作業系統 排程:。首先,我們說明圖5所示之通用及摘要演算法、: 且接著我們更詳細説明—標準公平排程器,例如圖6所于 之蘭X排程器,《整合。但是,請注意,本發明未受限 於孩等説明。4目對地,熟悉本技術領域者應可推導快取臣々 測裝置與本發明之基本演算法之整合程序至其他排程演^ 法。 π 最後,在給定一組排程參數之下,所有排程器 線程推導某一正規化數字,我 我們%馬執行優先權 (execution priority),且這使得排程器可比較該等數字以選 ldw r5,@CMU—VEC shl r3,r3,1 ldsx r6>r3(r5) (請先閱讀背面之注意事項m · I I 寫本頁) --線· -17- 本紙張尺度適用中國國家標準(Ci\TS)A4規格(210
508533 A7 B7 五、發明說明(15 ) ,下=個要執行之適當線程。在**通用性之下,我們假 設較高之數字表示優先權較高。圖5展示影響執行優先^ eP(50)之總體計算之各種參數。線程&之產生也將產生某 一基本優先權bP(Tj)(51)。爲提供某種程度之公平性,不= 恆常,照線程η之基本優先權bp(Tj)來排程乃。相對地了 對於每一時間分配量而言,藉由降低線程之基本優先權 2(丁』)某一時間t相依量⑴gbp(Tj)(53)來計算時間〖之目 前優先權οΡ(ν)(52)。因此,目前之優先權cp(丁〆)屬於某 =優先權區間却(Tj)。_般而言ς⑴是使用某種簡單之遞 減万法來加以建構。在非快取類似性排程中,執行優 是等於目前優先權: 6ρ(τ^ι)=ερ(^^)=1?ρ(η)-ζ(η,〇 (方程式!) 因爲在本發明中,當計算線程Tj在給定處理器ρ之執行 優先權時,線程Tj與處理器匕之快取類似性CA(Tj,Pi)會列 入考慮,其意謂相同線程在同一時間在不同處理^之執行 優先權之計算可能產生不同値。尤其,線程之目前優先J ερ(Τ』,υ(52)(其與處理器無關)在每一排程點增加 (54)ΛΡ(55)(0ΜΡ<Ρ)。Δρ是一線程可依照此方式來增 加之最大S目之優先權位帛。〜是冑由某種單調心 ^匸八(丁』七))(56)利用快取類似性CA(Tj,Pi)(57)來加以計 算。本身是藉由一單調函_(CFp(T〆⑴⑽利 用線程η之快取覆蓋區CFP(Tj,Pi)(59)來計算,而本發明 裝置測量CFPCTpPi)。此執行優先權因此是線程之美本1 先.權’時間’及處理器之函數,且後者是以其對於處㈣1 項 訂 線 之 優 之 18 本紙張尺度賴 1關家標準(CNSM4祕⑵G X 297公爱
類似性來表示: ep(Pi5Tj?t)=cp(Tj5t)+Ap (方程式 2 ) cp(Tj,t)=bp(Tj )-ς(Τ〆) Δρ=ΨΘ(ΟΡΡ(Ρί5η))) 爲置放此於一穩固之環境,現在我們藉由舉例來展示如 何整合本發明之裝置於一通用公平之UNIX型排程器。t 注意’本發明未限制此種整合於本文所述之排程器。相^ 地,熟悉本技術領域者應可融入此策略於其他排程演算 法。在此提及參考文獻[2]以供參考。圖6展示中央分派向 量或分派佇列(60),而分派佇列(60)是排程狀態之主要部 伤排程狀悲爲所有處理器所共享,且對於排程狀態之存 取是藉由使用鎖定或其他爲眾所知之機制來適當加以協 凋。這是必要的,因爲當目前執行之線程自願讓出處理器 給另一線程時,或當目前執行於此處理器之線程之時間分 配量到期時,排程器碼會在每一處理器上執行。分派佇列 (6 0)在概念上是組織成爲一仔列之彳宁列q i,實際上可視爲 一陣列之佇列Qi(61a至61z),其中每一佇列(^連接一組線 程控制區塊TCB(62a至62z),且每一 TCB保存狀態,例如線 私之優先權及儲存暫存器。此向量有max個優先權且因此 max個佇列。相關於線程TjiTCBj排入Qi等候之充份必要 條件是Tj準備好執行,且在目前時間t其之目前優先權 cp(Tj,t)是FRIO』,其中〇d<PRI〇max。產生TCBj表示之線程
Tj同時也會產生基本優先權bp(Tj),且
Pi?/Omax / 2 < bp(Ti) < PRIOmay - ΔΡ — L一' Α 。母經過一時間分配量則減少線 -19- 本紙張尺度適用中國國家標準(CNS)A4規格(210 X 297公复) -ϋ el· MJ1 ϋ ΡΛ -ϋ ϋ n H ϋ ϋ I · —.1 I (請先閱讀背面之泛曰?事項jii寫本頁} ·- 丨線- 經濟部智慧財產局員工消費合作社印製 508533 五、發明說明(17 ) 以CP 丁』,0直到其達到0或爲止〇在那 時,〇Ρ(τμ)再度重置成爲bp(丁』)。 圖6展7Γ ΛΡ(63)之優先權區間,且該優先權區間説明排 程器願意基於線程之快取類似性來增加線程之執行優先權 數量。例如:假設使用重新載入暫態模型來決定快取類似 性。如果重新載入暫態很小,以必須重新揭取以建立先前 狀態之快取線之數目來衡量,排程器將賦與接近Δρ(63)之 優先權調整量~(54)。如果重新載入暫態落於關鍵臨限値 以下,則排程器不考慮賦與線程任何優先權提升。 0(CFP(Tj,Pi))(58)所決定之CA(Tj Pi)可只爲線程CFP(T心 之快取覆蓋區與線程在其最後一次執行CFP(乃,pi)st()p二後 之快取覆蓋區之差,亦即重新載入暫態。Ψ((^Α(Τ P”函 數(56)可爲相當簡單之函數(例如一移位及位元遮罩運作或 對於一線程之C Α値之表檢查)。 經濟部智慧財產局員工消費合作社印別衣 因爲任何線程之優先權最多可增加△"“),所以排程器 只必須查看及/或計算侍列(^謝至Q謝. j⑷之線 程(62a··· 62f)之快取類似性。相關於快取覆蓋區或快取類 似性之一些資訊必須以每一處理器爲基礎受到儲存,以推 導CACTj’Pi)値。我們稱呼該等値之此每一處理器向量爲類 似性使用向量AUV(64)。決定於0][(1指配方法(獨特或群組 化),AUV應相關於不同之資料結構。在獨特指配方法 中,AUV應相關於線程控制區塊tcb(65)本身。在群組化 oid4曰配方法中,AUV應相關於一相關於線程群組之共古 式,貧料結構(66) ’例如程序控制區塊,如果一程序之所有 -20- 本纸張尺度適用中國國家標準(CNS)A4規格(210 X 297公爱) 508533 Α7 __— Β7 五、發明說明(18 ) 線程共享相同之oi(^ auv(64)可具有如下所述之各種語 意。在説明於先前技術段落之時間戳記型演算法中,一位 向量即足以充s — AUV,且在線程最近執行之處理器上 才疋升忒位7L,或者如果孩最後—次執行是在太遙遠之過 去’ m位元向量可爲2白。在此種情形之下,Auv向量 之每一輸入項AUV[i]是表示成爲位元i,且儲存一二進位 快取類似性値。如果使用重新載人暫態模型,則當其停止 在處理器Pi之最後-次執行時,Auv[i]儲存線程之快取覆 蓋區。 當排程演算法執彳亍於處理器匕時(例如由於目前執行之線 程之自動退讓,或由於計時器中斷),排程器必須查看仔 列Qcur至Qeur-M之所有線程Tj,且使得他們之cp(T」,Pj)增加 TWCFPCTpPi))) ’且決定最大値。爲取得所有線程之
CA(Tj’pi)値,排裎态首先必須擷取每一線程Tj之快取覆蓋 區,藉由爲該等線程之每一線程啓動,,gejtusage(T I oid)丨'。 J 、 /、大約相同之目前優先權之多個線程將傾向於 經濟部智慧財產局員工消費合作社印製 !-------裝·11 (請先閱讀背面之注咅?事項ml寫本頁) --線- 重複排私於先前執行他們之相同處理器,以導致改善之效 月匕目則優先權cP(Tj,t)惡化ζ(Τ』,ΐ)意謂即使具有非常高類 似性,線程之執行優先權最終將低於具有較低快取類似性 之線程之執行優先權,以確保處理器排程爲公平且具有回 應性。 我們現在说明方法以維持快取類似性使用狀態,且檢查 此狀態以降低與快取監測單元之互動次數。ϋ查詢 21 - 508533 A7 B7 五、發明說明(19 ) U空很昂貴,則此種降低變得重要。沒有_種方法 於每-種情形,且他們決定於所選之oid指配淳算法。 在每-線程維持-獨特oid之情形巾,可使用下列最佳 化。相關於此種情形之資料結構展示於(65)。熟悉本技術 領域者應可明瞭,就具有獨特Gid之—線程而士,,線矛。 對於處$里器Pi之快取覆蓋區CFP(TJ,pi)及快取類似= CMT^Pj)可增加,如果該線程未執行於匕。因此,排程哭 執行下列動作即足夠:(a)在最後執行之線程τ之一時間單 位之末端計算cA(Tj,Pi严,及(b)在線程選擇階段重新計算 CA(丁j,Pi),如果且只有如果 方 導 取 每 掏 I I - J I I I I I I * · I I (請先閱讀背面之注意事項ι|Ι||寫本頁) όρ(ν3)4-Ψ(〇Α(Τ^Ρί)^31)>6ριηαχ ,(方程式 3 ) 其中epmax是到目前爲止所發現之最高執行優先權。此 法之新線程應使得CA(Tj,Pi)ust儲存至最大値。此演算法 致下列行爲··就具有低類似性之線程而言,只重新擷 ("getusageyCFP—有限次數(一般而言只有一次),因爲 一重新擷取皆保證新計算之CA(Tj,Pi)last將較小。就具有 快取類似性之線程而言,在排程程序中將更頻繁地重新 取 CFP〇 在線程群組化之情形中(66),前述假設並不成立。 經濟部智慧財產局員工消費合作社印製 但 合 器 是,在排程時之CMU請求之數目可降低至表示於佇列集 Qcur至Qcur(AP-l)(61b…61d)之線程群組之數目。每一處理 向量AUV儲存於相同線程群組所共用之一分別資料結構 (67) ’例如程序説明區塊。另外,一時間戳記,最好是每 一·次出現排程嘗試皆會增加之每一處理器序列號碼(66), 22 本紙張尺度適用中國國家標準(CNS)A4規格(2〗0 X 297公釐) 508533
五、發明說明(20) 經濟部智慧財產局員工消費合作社印製 样員示在一給定之處理器上贫 上靖取〇id辨識之群組説明區塊之 CFP的最後一次時間。在矣_ 、 在每一排私循環,必須只讀取一給 足線私群組之C F P —次,亦g卩 a +1» 万即,當其之序列號碼(66)不匹 配排程循環之目前序列號碼時。 在如述二種最佳化皆不可、 士 自小了仃 < 情形中,可使用下列之近 似方法。該近似方法適用於獨特。id及群組化。id指配方 法。排程器週期性取得-給定線程或線程群組T〆 CFP(T],Pj) ’例如每第η個排笋循環,而非在每一排程循環 白存取》格線程或線程群組之快取覆蓋區。在所有其他 t排私循J衣中,排程器可使用如先前技術段落所述之cFp 之近似方法。例如,在重新載入暫態方法中,排程器可使 用快取不中資訊,而每一排程循環必須只可讀取快取不中 貝Λ —次’及基於自最後一次讀取算起之快取 不中之數目,使用馬可夫鏈來估計CFp(Tj,D之變化。此 加入一估计因數回至排程演算法;但是,相較於先前技術 段洛所述之排程方法,此方法未遭遇先前技術段落所提及 之相同問題。首先,因爲CFp(Tj,Pi)只對映至一些潛在之 △ P ’彼此接近之CFP値將最可能對映至相同之△ p。因 此,估計CFP(Tj,Pi)所導致之小誤差不會產生任何嚴重後 果。因爲估計之.CFPCTj’Pi)値週期性重置成爲實際之量測 CFP(Tj,Pi) ’小為差不會累積成爲較大之誤差,而較大之 誤差實際上的確會影響計算之結果。 23- 本紙張尺度翻中關家鮮(CNS)A伐格(210 X 297公爱) • I L· ·1*· I l· .( — — — — — — — · I I (請先閱讀背面之注意事項HI寫本頁) -丨線' 508533 第88108865號專利申請案 中文說明書修正頁(90年9月) A7
五、發明説明(2〇a ) 圖式元件符號說明 11多處理器系統 、:L2a、12b 多個處理器 13 記憶體 14a、14b、15a、15b 快取記憶體 20 快取監測單元(CMU) 21 快取記懷體… 22 CPU 63 ΔΡ之優先權區塊 64 類似性使用向量AUV 65 線程控制區塊TCB 66共享式資料結構 67 分別資料結構
23 快取記憶體-記憶體介面 24 載入或儲存運作ld(A)/st(A) 25 REQ<LI,INV> 27 CMU-快取介面 28 CPU-快取記憶體-介面 29 CPU-CMU-介面 30 所有者辨識碼暫存器oid-reg 31 oid 32 快取線-oid向量 33 計數器向量 34 C3-匯流排介面 35 CMU更新單元 36 CPU介面 60 中央分派向量或分派佇列 61a-*-61z 陣列之4宁列Qi 62a"_62z 線程控制區塊TCB -23a- 本紙張尺度適用中國國家標準(CNS) A4規格(210X 297公釐)
裝 訂
Claims (1)
- 六、申請專利範圍 A8 B8 C8 D8 經濟部智慧財產局員工消費合作社印製 1 · 一種在一電腦系統中排程於在 老 、、 τ併狂於母一處理器之線程之方法, 該電腦系統具有多個處理哭 — I主时,而母一處理器具有至少/ 相關之快取記憶體,該方法包含: a.量測每一處理器之每一岣 ^ 母、、果心 < 一快取覆蓋區;以及 b·藉由使用步驟&所決宕夕彻…& 叮沃疋足個別快取覆蓋區來決定每/ 線程對於每一處理器之一稍彳 、— ^ ^ ^ 頒似性,其中在每一處理器上 之每、泉程之執行係至少根據其類似性來排程以便執 行0 2 ·如申請專利範圍第1項之古、、表 ^万法,其中該快取覆蓋區量測 是利用每一快取不中來更新。 3.如申請專利範圍第Η之方法,其中每—線程對於每〆 菘等快取記憶體之該快取覆蓋區是藉由該每一線程自該 每-快取記憶體所掏取之作用快取線之數目來量測。 4·如申請專利範圍第3項之古、、土 ^ , 丁 s寸们礼固矛又万去,其中一線程所擷取之作 用快取線之該數目是藉由維持下列參數來量測: a.每快取所有權辨識碼暫存器,以顯示那一線程 擁有擷取至該快取記憶體之快取線; b·一每一快取線所有者識別,以顯示每一該等快取線 之擁有線程; c· 一每一快取計數器向量,其中該向量之每一分量表 不孩等線程之一線程對於該等快取記憶體之一對應快取 記憶體之該快取覆蓋區;及 d· —每一快取記憶體方法,以擷取每一該等線程之 counter vector之内容。 C請先閱讀背面之江意事頊v - I I V寫本ί 訂-- -線_ 24- 508533 &δ C8 ------D8 _ 六、申請專利範圍 5.如申請專利範圍第4項之方法,其中一些該等線程可超 出計數器向量之大小。 6·如申請專利範圍第丨項之方法,其中每一該等線程是藉 由指配一執行優先權來排程在一處理器上執行,且該執 行優先權是該線程對於該處理器之類似性之一函數。 7·=申請專利範圍第丨項之方法,其中就每一該等線程而 Τ,該執行優先權是一每一線程使用者指配之基本優先 權,時間及快取類似性之組合。 8·如申請專利範圍第丨項之方法,其中一執行於該等處理 态之一處理器之排程器可基於一線程之先前計算之類似 性,而非爲該線程在每一排程循環重新計算一執行優先 權,來決足疋否該等線程之一線程產生最高之執行優先 權。 9 · 種可由一機备項取之程式儲存裝置,該程式儲存裝置 貫體實現該機器可執行之一指令程式來執行方法步驟, 以在具有多個處理器之電腦系統中排程多個線程,該方 法步驟包含: a. 量測每一處理器之每一線程之快取覆蓋區;及 b. 藉由使用步驟a所決定之對應快取覆蓋區,決定每一 線程對於每一處理器之類似性,其中每一線程在每一處 理器之執行係至少根據其類似性來排程以便執行。 -25- 本紙張尺度適用中國國家標準(CNS)A4規格(210 X 297公釐) ii;l—-J-I·-------裝--- (請先閱讀背面之注意事項本頁) -線· 經濟部智慧財產局員工消費合作社印制取
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US09/098,988 US6243788B1 (en) | 1998-06-17 | 1998-06-17 | Cache architecture to enable accurate cache sensitivity |
Publications (1)
Publication Number | Publication Date |
---|---|
TW508533B true TW508533B (en) | 2002-11-01 |
Family
ID=22271873
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW088108865A TW508533B (en) | 1998-06-17 | 1999-05-28 | Cache architecture to enable accurate cache sensitivity |
Country Status (6)
Country | Link |
---|---|
US (1) | US6243788B1 (zh) |
EP (1) | EP0965918A3 (zh) |
JP (1) | JP2000148518A (zh) |
KR (1) | KR100337219B1 (zh) |
CN (1) | CN1133942C (zh) |
TW (1) | TW508533B (zh) |
Families Citing this family (65)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6216178B1 (en) * | 1998-11-16 | 2001-04-10 | Infineon Technologies Ag | Methods and apparatus for detecting the collision of data on a data bus in case of out-of-order memory accesses of different times of memory access execution |
JP3601677B2 (ja) * | 1999-06-09 | 2004-12-15 | 日本電気株式会社 | タスク処理システム |
US7086053B2 (en) * | 2000-06-12 | 2006-08-01 | Sun Microsystems, Inc. | Method and apparatus for enabling threads to reach a consistent state without explicit thread suspension |
US6826754B1 (en) * | 2000-09-29 | 2004-11-30 | International Business Machines Corporation | Method for eliminating or reducing hang conditions in computer systems |
US6615316B1 (en) * | 2000-11-16 | 2003-09-02 | International Business Machines, Corporation | Using hardware counters to estimate cache warmth for process/thread schedulers |
US7069424B2 (en) * | 2002-01-02 | 2006-06-27 | Intel Corporation | Placing front instruction in replay loop to front to place side instruction into execution stream upon determination of criticality |
ATE392662T1 (de) | 2002-01-30 | 2008-05-15 | Real Entpr Solutions Dev Bv | Verfahren und programme zur einstellung von prioritätsstufen in einem datenverarbeitungssystem mit multiprogrammierung und priorisierte warteschlangenbildung |
US8032891B2 (en) * | 2002-05-20 | 2011-10-04 | Texas Instruments Incorporated | Energy-aware scheduling of application execution |
US6920514B2 (en) * | 2002-10-10 | 2005-07-19 | International Business Machines Corporation | Method, apparatus and system that cache promotion information within a processor separate from instructions and data |
US6901483B2 (en) * | 2002-10-24 | 2005-05-31 | International Business Machines Corporation | Prioritizing and locking removed and subsequently reloaded cache lines |
US6928526B1 (en) | 2002-12-20 | 2005-08-09 | Datadomain, Inc. | Efficient data storage system |
US7496928B2 (en) * | 2003-08-28 | 2009-02-24 | Microsoft Corporation | Method and system for moderating thread priority boost for I/O completion |
US7373489B1 (en) | 2004-06-30 | 2008-05-13 | Sun Microsystems, Inc. | Apparatus and method for floating-point exception prediction and recovery |
US7890734B2 (en) * | 2004-06-30 | 2011-02-15 | Open Computing Trust I & II | Mechanism for selecting instructions for execution in a multithreaded processor |
US7437538B1 (en) | 2004-06-30 | 2008-10-14 | Sun Microsystems, Inc. | Apparatus and method for reducing execution latency of floating point operations having special case operands |
US7401206B2 (en) * | 2004-06-30 | 2008-07-15 | Sun Microsystems, Inc. | Apparatus and method for fine-grained multithreading in a multipipelined processor core |
US7631144B1 (en) * | 2004-09-13 | 2009-12-08 | Datadomain, Inc. | Write latency efficient storage system |
US8490101B1 (en) * | 2004-11-29 | 2013-07-16 | Oracle America, Inc. | Thread scheduling in chip multithreading processors |
US7721047B2 (en) * | 2004-12-07 | 2010-05-18 | International Business Machines Corporation | System, method and computer program product for application-level cache-mapping awareness and reallocation requests |
US8145870B2 (en) * | 2004-12-07 | 2012-03-27 | International Business Machines Corporation | System, method and computer program product for application-level cache-mapping awareness and reallocation |
US7937709B2 (en) * | 2004-12-29 | 2011-05-03 | Intel Corporation | Synchronizing multiple threads efficiently |
US20070061805A1 (en) * | 2005-09-15 | 2007-03-15 | Brenner Larry B | Method and apparatus for improving thread posting efficiency in a multiprocessor data processing system |
US7818747B1 (en) * | 2005-11-03 | 2010-10-19 | Oracle America, Inc. | Cache-aware scheduling for a chip multithreading processor |
US7865895B2 (en) * | 2006-05-18 | 2011-01-04 | International Business Machines Corporation | Heuristic based affinity dispatching for shared processor partition dispatching |
US7870551B2 (en) * | 2006-05-18 | 2011-01-11 | International Business Machines Corporation | Optimization of thread wake up for shared processor partitions |
US8533710B1 (en) * | 2006-08-31 | 2013-09-10 | Oracle America, Inc. | Using observed thread activity to dynamically tune a virtual machine for responsiveness |
US8356284B2 (en) * | 2006-12-28 | 2013-01-15 | International Business Machines Corporation | Threading model analysis system and method |
US8219995B2 (en) * | 2007-03-28 | 2012-07-10 | International Business Machins Corporation | Capturing hardware statistics for partitions to enable dispatching and scheduling efficiency |
US7617375B2 (en) * | 2007-03-28 | 2009-11-10 | International Business Machines Corporation | Workload management in virtualized data processing environment |
US7698531B2 (en) * | 2007-03-28 | 2010-04-13 | International Business Machines Corporation | Workload management in virtualized data processing environment |
US7698530B2 (en) * | 2007-03-28 | 2010-04-13 | International Business Machines Corporation | Workload management in virtualized data processing environment |
US8438003B2 (en) * | 2007-04-12 | 2013-05-07 | Cadence Design Systems, Inc. | Methods for improved simulation of integrated circuit designs |
US20080271027A1 (en) * | 2007-04-27 | 2008-10-30 | Norton Scott J | Fair share scheduling with hardware multithreading |
US8544014B2 (en) * | 2007-07-24 | 2013-09-24 | Microsoft Corporation | Scheduling threads in multi-core systems |
US8327363B2 (en) * | 2007-07-24 | 2012-12-04 | Microsoft Corporation | Application compatibility in multi-core systems |
US9588810B2 (en) * | 2007-08-08 | 2017-03-07 | Microsoft Technology Licensing, Llc | Parallelism-aware memory request scheduling in shared memory controllers |
US7958313B2 (en) * | 2007-12-18 | 2011-06-07 | International Business Machines Corporation | Target computer processor unit (CPU) determination during cache injection using input/output (I/O) adapter resources |
US8510509B2 (en) * | 2007-12-18 | 2013-08-13 | International Business Machines Corporation | Data transfer to memory over an input/output (I/O) interconnect |
US20090165004A1 (en) * | 2007-12-21 | 2009-06-25 | Jaideep Moses | Resource-aware application scheduling |
US8739165B2 (en) * | 2008-01-22 | 2014-05-27 | Freescale Semiconductor, Inc. | Shared resource based thread scheduling with affinity and/or selectable criteria |
JP5012628B2 (ja) * | 2008-04-04 | 2012-08-29 | 日本電気株式会社 | メモリデータベース、メモリデータベースシステム及びメモリデータベース更新方法 |
US8429665B2 (en) * | 2010-03-19 | 2013-04-23 | Vmware, Inc. | Cache performance prediction, partitioning and scheduling based on cache pressure of threads |
US9569270B2 (en) * | 2009-04-21 | 2017-02-14 | Empire Technology Development Llc | Mapping thread phases onto heterogeneous cores based on execution characteristics and cache line eviction counts |
US20110066830A1 (en) * | 2009-09-11 | 2011-03-17 | Andrew Wolfe | Cache prefill on thread migration |
US8881157B2 (en) * | 2009-09-11 | 2014-11-04 | Empire Technology Development Llc | Allocating threads to cores based on threads falling behind thread completion target deadline |
US9189282B2 (en) * | 2009-04-21 | 2015-11-17 | Empire Technology Development Llc | Thread-to-core mapping based on thread deadline, thread demand, and hardware characteristics data collected by a performance counter |
JP2009277243A (ja) * | 2009-07-21 | 2009-11-26 | Panasonic Corp | コンパイラ装置およびオペレーティングシステム |
US8799912B2 (en) * | 2009-07-22 | 2014-08-05 | Empire Technology Development Llc | Application selection of memory request scheduling |
US8607234B2 (en) * | 2009-07-22 | 2013-12-10 | Empire Technology Development, Llc | Batch scheduling with thread segregation and per thread type marking caps |
US8839255B2 (en) * | 2009-07-23 | 2014-09-16 | Empire Technology Development Llc | Scheduling of threads by batch scheduling |
US8438574B1 (en) * | 2009-08-14 | 2013-05-07 | Translattice, Inc. | Generating monotone hash preferences |
US8959525B2 (en) * | 2009-10-28 | 2015-02-17 | International Business Machines Corporation | Systems and methods for affinity driven distributed scheduling of parallel computations |
WO2011130604A1 (en) * | 2010-04-16 | 2011-10-20 | Massachusetts Institute Of Technology | Execution migration |
US8935248B2 (en) | 2010-05-17 | 2015-01-13 | United States Postal Service | Localized data affinity system and hybrid method |
JP5354108B2 (ja) * | 2010-09-01 | 2013-11-27 | 富士通株式会社 | 情報処理プログラム、情報処理装置及び情報処理方法 |
US9015449B2 (en) | 2011-03-27 | 2015-04-21 | International Business Machines Corporation | Region-weighted accounting of multi-threaded processor core according to dispatch state |
US9262181B2 (en) | 2011-05-10 | 2016-02-16 | International Business Machines Corporation | Process grouping for improved cache and memory affinity |
KR20130093995A (ko) * | 2012-02-15 | 2013-08-23 | 한국전자통신연구원 | 계층적 멀티코어 프로세서의 성능 최적화 방법 및 이를 수행하는 멀티코어 프로세서 시스템 |
JP6459784B2 (ja) * | 2015-06-03 | 2019-01-30 | 富士通株式会社 | 並列計算機、マイグレーションプログラム、及び、マイグレーション方法 |
US10282707B2 (en) * | 2015-07-02 | 2019-05-07 | International Business Machines Corporation | Scheduling business process |
GB2540761B (en) * | 2015-07-23 | 2017-12-06 | Advanced Risc Mach Ltd | Cache usage estimation |
US10452397B2 (en) | 2017-04-01 | 2019-10-22 | Intel Corporation | Efficient multi-context thread distribution |
US10691621B2 (en) * | 2018-04-12 | 2020-06-23 | Sony Interactive Entertainment Inc. | Data cache segregation for spectre mitigation |
US10698737B2 (en) * | 2018-04-26 | 2020-06-30 | Hewlett Packard Enterprise Development Lp | Interoperable neural network operation scheduler |
US11593167B2 (en) | 2019-05-09 | 2023-02-28 | International Business Machines Corporation | Thread embedded cache management |
Family Cites Families (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4985831A (en) * | 1988-10-31 | 1991-01-15 | Evans & Sutherland Computer Corp. | Multiprocessor task scheduling system |
US5185861A (en) * | 1991-08-19 | 1993-02-09 | Sequent Computer Systems, Inc. | Cache affinity scheduler |
JPH05204875A (ja) * | 1992-01-27 | 1993-08-13 | Mitsubishi Electric Corp | スレッドのスケジュール方式 |
US5317738A (en) * | 1992-02-18 | 1994-05-31 | Ncr Corporation | Process affinity scheduling method and apparatus |
US5287508A (en) * | 1992-04-07 | 1994-02-15 | Sun Microsystems, Inc. | Method and apparatus for efficient scheduling in a multiprocessor system |
US5553305A (en) * | 1992-04-14 | 1996-09-03 | International Business Machines Corporation | System for synchronizing execution by a processing element of threads within a process using a state indicator |
US5745778A (en) * | 1994-01-26 | 1998-04-28 | Data General Corporation | Apparatus and method for improved CPU affinity in a multiprocessor system |
US5826081A (en) * | 1996-05-06 | 1998-10-20 | Sun Microsystems, Inc. | Real time thread dispatcher for multiprocessor applications |
US5724586A (en) * | 1996-09-30 | 1998-03-03 | Nec Research Institute, Inc. | Method for improving cache locality of a computer program |
US5974438A (en) * | 1996-12-31 | 1999-10-26 | Compaq Computer Corporation | Scoreboard for cached multi-thread processes |
-
1998
- 1998-06-17 US US09/098,988 patent/US6243788B1/en not_active Expired - Fee Related
-
1999
- 1999-05-17 KR KR1019990017613A patent/KR100337219B1/ko not_active IP Right Cessation
- 1999-05-19 EP EP99303893A patent/EP0965918A3/en not_active Withdrawn
- 1999-05-21 JP JP11141208A patent/JP2000148518A/ja active Pending
- 1999-05-28 TW TW088108865A patent/TW508533B/zh not_active IP Right Cessation
- 1999-05-31 CN CNB991069501A patent/CN1133942C/zh not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
KR100337219B1 (ko) | 2002-05-17 |
EP0965918A3 (en) | 2004-01-21 |
CN1133942C (zh) | 2004-01-07 |
CN1239249A (zh) | 1999-12-22 |
US6243788B1 (en) | 2001-06-05 |
KR20000005675A (ko) | 2000-01-25 |
JP2000148518A (ja) | 2000-05-30 |
EP0965918A2 (en) | 1999-12-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TW508533B (en) | Cache architecture to enable accurate cache sensitivity | |
US11513836B2 (en) | Scheduling resuming of ready to run virtual processors in a distributed system | |
US9430287B2 (en) | Cache performance prediction and scheduling on commodity processors with shared caches | |
US7404041B2 (en) | Low complexity speculative multithreading system based on unmodified microprocessor core | |
US9195606B2 (en) | Dead block predictors for cooperative execution in the last level cache | |
Molka et al. | Detecting memory-boundedness with hardware performance counters | |
JP6341931B2 (ja) | 更新確率値を格納する共用確率的カウンタを実施するシステムおよび方法 | |
JP6310943B2 (ja) | Numaアウェア統計カウンタを実施するシステムおよび方法 | |
Tabbakh et al. | G-TSC: Timestamp based coherence for GPUs | |
US20130097613A1 (en) | Appartus and method for thread progress tracking | |
Datta et al. | Buffer management in real-time active database systems | |
Riedel et al. | LRSCwait: Enabling Scalable and Efficient Synchronization in Manycore Systems through Polling-Free and Retry-Free Operation | |
Schmidt | Achieving Optimal Throughput for Persistent Memory with Per-Process Accounting | |
Asri | Hardware-Assisted Data Movement Optimizations for Heterogeneous System Architectures | |
Grannæs | Reducing Memory Latency by Improving Resource Utilization | |
Sarkar | Predictable Task Migration Support and Static Task Partitioning for Scalable Multicore Real-Time Systems | |
Do | Improving Reliability, Power and Performance in Hardware Transactional Memory | |
Few | Infovis as seen by the world out there: 2007 in review | |
US8438335B2 (en) | Probe speculative address file | |
Cherian | A study of backoff barrier synchronization | |
Salas | Support for dynamic management of parallelism in chip multiprocessors | |
Gunther et al. | Multicomputer Analysis with PDQ |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
GD4A | Issue of patent certificate for granted invention patent | ||
MM4A | Annulment or lapse of patent due to non-payment of fees |