TWI279717B - Method, apparatus and system for multi-threaded processing - Google Patents

Method, apparatus and system for multi-threaded processing Download PDF

Info

Publication number
TWI279717B
TWI279717B TW093140775A TW93140775A TWI279717B TW I279717 B TWI279717 B TW I279717B TW 093140775 A TW093140775 A TW 093140775A TW 93140775 A TW93140775 A TW 93140775A TW I279717 B TWI279717 B TW I279717B
Authority
TW
Taiwan
Prior art keywords
thread
flag
execution
instruction
message
Prior art date
Application number
TW093140775A
Other languages
English (en)
Other versions
TW200535694A (en
Inventor
Hong Jiang
Thomas A Piazza
Original Assignee
Intel Corp
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 Intel Corp filed Critical Intel Corp
Publication of TW200535694A publication Critical patent/TW200535694A/zh
Application granted granted Critical
Publication of TWI279717B publication Critical patent/TWI279717B/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/52Program synchronisation; Mutual exclusion, e.g. by means of semaphores
    • 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/30003Arrangements for executing specific machine instructions
    • G06F9/3004Arrangements for executing specific machine instructions to perform operations on memory
    • 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/30003Arrangements for executing specific machine instructions
    • G06F9/30076Arrangements for executing specific machine instructions to perform miscellaneous control operations, e.g. NOP
    • G06F9/30087Synchronisation or serialisation instructions
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Multi Processors (AREA)
  • Advance Control (AREA)
  • Debugging And Monitoring (AREA)
  • Executing Machine-Instructions (AREA)

Description

^ 1279717 九、發明說明: 【發明所屬之技術領域】 發明領域 本發明係有關多重執行緒處理之技術及多重執行緒處 5 理之架構。特別本發明係有關使用旗號進行多重執行緒處 理之技術及架構。 【先前技術】 發明背景 「旗號」也稱作為「臨界區段」或「交互排它(mutex)」 10 是一種硬體與軟體之建置,其允許對於多重處理競爭共享 資源(例如記憶體、檔案)之操作進行協力或同步化。通常, 一旗號為一儲存於操作系統記憶體之一指定位置之數值, 處理可查核該數值及改變該數值。基於旗號值,一項處理 可存取該共享資源,或等候一段時間再度查核旗號。 15 習知電腦系統之旗號典型係以軟體常式使用硬體支援 極微型「測試與設定」或類似型別之指令(例如鎖定、位元 測試、位元測試與設定、位元測試與復置)來實作。使用此 種旗號實作,可經由共享(例如通用)資料以及一或多個旗號 而建立其製造商-消費者間之通訊關係。旗號允許共享資料 20 由嘗試修改該資料之多重處理中之一選定者修改,來提供 資料之一致性。 此種旗號建置為「被動」,原因在於執行緒必須執行輪 詢操作來獲得旗號。輪詢要求耗用處理器及系統資源,否 則該處理器資源及系統資源可用於其它目的。因此傳統旗 ‘1279717 號導致效率不彰。 【發明内容】 本發明揭露一種方法,其包含有下列步驟:判定對應 於一旗號之一變數的一種狀態;若該變數係處於一第一狀 5 態,則於調度該執行緒供執行前,對一指令執行緒產生一 旗號登錄項;以及若該變數係處於一第二狀態,則於對該 執行緒產生該旗號登錄項前,調度該指令執行緒供執行。 圖式簡單說明 係經由參照附圖之各圖說明本發明,但非限制性,附 10 圖中類似之參考編號表示類似之元件。 第1圖為巨大多重執行緒處理器架構之一具體例之方 塊圖。 第2圖為執行緒調度操作與旗號初始化操作協力之一 具體例之流程圖。 15 第3a-3d圖為其中旗號可用於同步化執行緒之執行之 相依性之構想說明圖。 【實施方式】 較佳實施例之詳細說明 說明用於被動執行緒之主動旗號。後文說明中,供解 20 釋目的,陳述多項特定細節以供徹底了解本發明。但熟諳 技藝人士顯然易知可未使用此等特定細節而實施本發明。 其它情況下,結構及裝置係以方塊圖形式顯示來避免混淆 本發明。 主動旗號之範例使用之綜論 1279717 处。兒月種架構及相關方法’其中多重並列被動指 令執行緒(後文稱作為「執行緒」)使用「主動」旗號來協力 存取共享資源。旗號被稱作為主動,原因在於旗號實體發 送訊息給執行電路及/或控制電路來造成一執行緒之狀態 5的改變。例如一執行緒可藉執行緒排程器響應於未經分辨 之相依性(可由一旗號指示)而被置於休眠模式(或稱作不作 用模式)。對應該相依性之執行緒狀態變數用來指示該執行 緒係於休眠模式。 當相依性經分辨時,一訊息送至控制電路(例如執行緒 10排程器),造成相依性變數之變清晰。響應於清晰之相依性 變數,執行緒被置於作用狀態(或喚醒狀態)。可於作用狀態 之執行緒進行執行。 繼續前述範例,若一執行緒嘗試獲得一旗號,但無法 獲得’則該執行緒被置於不作用狀態。因執行緒為不作用, 15執行緒無法輪詢該旗號來判定何時由旗號所指示之相依性 未經分辨,如先前技術之要求。執行緒維持於不作用狀雜, 直到接收到(例如來自旗5虎貫體)之訊息指示相依性已、纟參τ< 過分辨。響應於該訊息,執行緒被置於作用狀態,其允許 進行執行。 20 第1圖為巨大多重執行緒處理器架構之一具體例之方 塊圖。如此處使用’標示「巨大多重執行緒」架構表干一 種架構其包括複數個處理器而可支援多重執行緒執行。一 具體例中,各個處理可支援一或多個執行緒。於單一产 理器之多重執行緒經由允井執行作用執行緒,同時复它執 1279717 行緒處於不作用狀態,來達成高度執行效率。懸置於一旗 號之處於不作用狀態之執行緒不會耗用/浪費處理器資 源。儘管有關巨大多重執行緒架構之說明,旗號建置及相 關方法可應用於任何多重執行緒架構,而與所支援之執行 5 緒數目無關。 巨大多重執行緒系統100包括記憶體階層110,記憶體 階層110儲存欲於藉一或多個處理核心執行時使用的資料 及指令。記憶體階層110以業界已知之任一種方式可包括動 態隨機存取記憶體(DRAM)、一或多層次指令快取記憶體、 10 一或多層次資料快取記憶體及/或一或多層次共用指令快 取記憶體及資料快取記憶體。執行緒調度器120耦合記憶體 階層110,接收關聯一新執行緒之資訊例如指令指標器及資 料及/或資料指標器。執行緒調度器120也透過訊息匯流排 125而耦合處理核心。一具體例中,執行緒調度器120負責 15 管理處理核心之執行緒資源。當接收到新的懸置執行緒 時,執行緒調度器120選定一具有可執行該懸置執行緒之資 源之處理核心,以及調度該執行緒至該選定之處理核心。 當於一處理核心完成一既有執行緒時,執行緒調度器120接 到通知,隨後讓於處理核心上之該執行緒資源可供未來懸 20 置執行緒使用。 系統100係以複數個處理器核心元件(130、131、139、 150、151及159)顯示,各個處理器核心元件包括具有相關 控制電路之執行電路。各個處理器核心元件可相同,或各 個處理器核心元件可具有不同功能。系統100可含括有任何 1279717 數目之處理器核心元件。一具體例中,處理器核心元件係 組配成列,而各列有一列控制器。例如列控制器140可透過 列控制匯流排145而耦合處理器核心元件13〇、131及139。 同理,列控制器160可透過列控制匯流排165而耦合處理器 核心元件150、151及159。 處理為核心元件也透過訊息匯流排而輕合旗號實體 Π〇。旗號實體170包括記憶體及控制邏輯來提供如此處所 述之旗號功能。一具體例中,旗號實體170經由發射與接收 Λ息來與處理器核心元件互動,容後詳述。 10 15 一執行緒調度器120也透過訊息匯流排125而耦合旗號實 = 70。-具體例中’執行緒調度器經由發射訊息與接收訊 息來與代表—執行社_實體⑽絲,容後詳述。 狄於各個處理核心、之控制電路可含有執行緒排程電路, 來管理於同—處理核心、執行之多重執行緒之狀態;控制電 路也含有指令排程電路來執行—侧指令執行緒。於指令 執行期間’—或多個處理核心嘗試存取共享之系統資源。 一執行緒為了獲得控制—共享資源,—執行緒必_域 應之執行核心來獲得控制一對座 ㈣^存取之共享系統資源 透過訊息匯流排125,發送亦Μ理核心 170。於發送旗號請求訊息後,該請求執行緒被置於不2 狀悲’其中暫停執行及相關操作(例如旗號。 旗號實體17轉歧接__财訊息,旗號實體 20 1279717 授旗狀㈣給該請求執⑽。當該旗_ Μ體170發送一旗號確認訊息給該請求 復至rrt行緒響應於該旗號確認訊息,請求執行緒= 行狀恕,於該作用狀態繼續使用被請求之資源執 放旗=4丁緒完成共享資源之使用時,該執行緒發送一釋 息給旗號實體17G。響應於該釋放旗號訊息, :體17_放該旗號,且允許其純行緒來存取該系^ 10 ^體例中,旗_藉-處理核心執行之指令(旗號 ,'板’以及旗號係由訊息(旗號訊息)支援,旗號訊息 1如係透軌息匯流排125而發送於處理核,讀旗號實體 間。另—具體例中’可支援不同的及/或其它的訊息或指令: 基於一鏈結串列之旗號實體 -具體例中,傳統遵照旗號㈣由—緩衝區替代,节 15緩衝器有多個登錄項用來對各個旗號形成一鏈結串列。二 此各個旗5虎可為指向由該緩衝區之各個登錄項所形成之— 鏈結串列之頭指標器。鏈結串列可為雙向鍵結申列或單向 鍵結串列。 具體例中,旗號表包括對各個支援之旗號之一指標 〇為。-具體例中,旗號表之各個指標器為頭指標器,其指 示用於對應旗號之鏈結串列之頭。儲存庫指標器指示緩衝 區之頭,而未被使用之旗號登錄項包括一NULI^_標器。 一具體例中,各個旗號登錄項包括一釋放狀態欄位、 確忍制止攔位、-執行緒翻符攔位…前—指標器及 10 1279717 位及/或不同 各個旗號也 一次一指標器。另一具體例中,可使用其它攔 攔位,例如可刪除前一指標器。一具體例中, 包括單-位元(或其它指示器)來指示對應該旗號之該鍵結 串列是否為空白。 旗就訊息 獲得旗號訊息(ACQ—MSG)用於一執行緒、或一代表執 行緒之執行緒調度器來對該旗號實體請求擁有旗號。一具 體例中,ACQ一MSG含有一旗號識別符攔位、一執行緒識別 符攔位、一「自動釋放」攔位以及一「確認制止」 1〇 (⑽k-suppressicm)攔位。自動釋放攔位係用於只有頭相依性 之執行緒。換言之,該執行緒係與前一執行緒有相依性, 但並無隨後之執行緒與該執行緒相依。確認制止攔位係用 於只有尾相依性之執行緒。換言之該執行緒並非與任何先 W執行緒有相依性,反而該執行緒確實有與該執行緒相依 15之隨後執行緒。ACq—MSG可由執行緒調度器或其它與該執 行緒相關之控制電路發出。 一具體例中,旗號實體當接收到ACQ-MSCJ時,該旗號 實體經由從儲存庫串列去除頭登錄項,以及將該頭登錄項 加至遠疋之旗琥尾端,來將該請求執行緒之旗號登錄項佇 20列至目標旗號(由旗號識別符欄位規定)之一鏈結串列。該旗 號登錄項之各個攔位係基於該ACQ—MSG之資訊而更新:執 行緒識別符攔位、釋放狀態攔位、及確認制止攔位係由 ACQ—MSG之請求者之執行緒識別符、自動釋放欄位及確認 制止攔位替代。若於ACq一MSG之前該旗號鍵結串列並非空 1279717 白,則該旗號實體並未發送任何訊息。否則若於接收到 ACQ一MSG之前旗號鏈結串列為空白,則採行下列動作之 〇 若域認制止攔位未經没定,則帶有執行緒識別符之 5 ACK一MSG由該訊息匯流排125之旗號實體發送至該請求執 行緒。若該確認制止欄位經設定,則該旗號實體未發送任 何ACK—MSG。若自動釋放欄位未經設定則剛加到件列之旗 號登錄項維持於旗號鏈結串列。若該自動釋放攔位經設 定,則剛加至仔列之旗號登錄項由該旗號鏈結串列被移除。 10 釋放旗號訊息(REL—MSG)用於一執行緒來對該旗號實 體請求自由擁有一旗號。一具體例中,REL—MSG包括一旗 號識別付搁位及一執行緒識別符搁位。一呈體例中, REL—MSG可只由一保有該旗號擁有權之執行緒之控制電 路發出,亦即該執行緒識別符係位於該旗號鏈結串列頂 15端。當接收到REL-MSG時,該旗號實體由該旗號鏈結串列 頭去除該登錄項。 另一具體例中,REL 一 MSG可由與任何共用該旗號之執 行緒相關之控制電路發出。該旗號實體當接收到 町,忒旗唬貫體解除釋放狀態欄位之設定成於旗號鏈結串 20列之對應登錄項,而與該登錄項於旗號鍵結串列之位置無 關。若旗號登錄項係於該鏈結串列之頭端,則登錄項由旗 5虎鏈結串列之頭端去除。然後次一登錄項變成鏈結串列之 頭端。若次一登錄項非為NULL·,則次一登錄項接受檢驗。 右新的鏈結串列頭具有釋放狀態攔位之設定,則該登錄項 12 1279717 再度由旗號鏈結串列之頭端去除。 一具體例中,此種遞歸處理連續進行至鏈結串列之頭 為NULL(旗號仔列為空白)為止,或鍵結串列之頭有釋放狀 態欄位被解除設定為止(等候來自對應該登錄項執行緒之 旗號的釋放)。若鏈結串列頭非為NULL,且確認制止欄位 未被設定,則A C K_ M S G由該旗號登錄項送至由該登錄項之 執行緒識別符攔位所識別之執行緒,若該鏈結串列之頭非 為
NULL,且確認制止欄位經設定,則未發送MSG。 旗號確認訊息(ACK_MSG)係由旗號實體產生,來通知 執行緒已經獲得要求的旗號。一具體例中,ACK_MSG 包括一旗號識別符欄位及一執行緒識別符欄位。ACK_MSG 〃由旗唬貫體發出,而由執行該執行緒識別符欄位所識別 之該執行緒之處理核心接收。 當接收處理核心接收到ACK—MSG時,該接收處理核心 解除該執行緒識別符欄位所識別之該執行緒之等候旗號狀 態攔位。若該執行緒係於不作用狀態,則該執行緒之狀態 改成作用狀態。 旗號指令 獲得旗號(ACS)指令造成一 ACQ—MSG訊息被送至帶 有一所請求旗號之旗號識別符之該旗號實體、ACQ__MSG 赉匕至旗號貫體,該旗號實體帶有所請求旗號之旗號識 別符、請求執行緒之執行緒識別符、以及帶有自動釋放攔 位被解除設定。執行緒被置於不作用狀態,等候旗號狀態 13 1279717 欄位被没疋。ACS指令與(隨後之)釋放旗號(rls)指令配對 (容後詳述)。ACS-RLS指令對例如可用於臨界區段應用用 途0 帶有自動釋放(ASR)指令之獲得旗號造成acq_msg 5被送至一旗號實體,該旗號實體帶有所請求旗號之旗號識 別符、請求執行緒之執行緒識別符、以及帶有自動釋放欄 位被解除設定。執行緒被置於不作用狀態,等候旗號狀態 攔位被設定。一具體例中,ASR指令無法與RLS指令配對。 一具體例中,ASR指令用於只有頭相依性之執行緒。 10 一等候旗號(WTS)指令造成該等候旗號執行緒狀態欄 位被檢查。若該狀態攔位經設定,則該執行緒被置於不作 用狀怨。若邊狀態欄位未經設定,則該執行緒維持於作用 狀態。響應於WTS指令,並無任何訊息被送至旗號實體。 使用WTS指令,暗示該旗號先前於執行緒調度時間,由執 15行緒調度器,使用該ACQ一MSG代表該執行緒而獲得該旗 號。若確認制止攔位被設定於先前由執行緒調度器所發出 之ACQ—MSG,則WTS指令未被使用。 釋放旗號(RLS)指令造成一 REL—MSG被送至該旗號實 體,該旗號實體具有一旗號被釋放之旗號識別符、以及該 20釋放執行緒之執行緒識別符。釋放執行緒維持於作用狀 態。若一ACS指令先前已經發給該釋放執行緒,則只發出 一個RLS指令。若ASR指令先前並未發給該釋放執行緒,則 未發出RLS指令。若WTS指令已經對該釋放執行緒發出, 則依據由執行緒調度器送出之ACq—msg之自動釋放欄位 W9717 而定,wts指令可接著由或未接著由一個rls指令。若兮 自動釋放欄位經解除設定,則無需發出RLs指令。若該自〆 動釋放攔位經設定,則RLS指令應接在㈣指令之後。 一主動旗號之範例獲得 當-指令執行緒係由-處理核心實作時,當資源可供 利用時,執行該等指令。當需要有-旗號之-資源,· 一共用記憶體位置時,需要施古一说咕 而要擁有旗琥來存取該資源。如 種方式達成至需
此指令執行緒之執行係以業界已知之任一 要旗號為止。 -具體例中’當需要—旗號時’執行—獲得旗號⑽ 指,。該ACS指令可藉—處理核心執行,該處理核心係執 行請求該旗號之指令執行緒之處理核心。作為A"指令之 -部分或響應於ACS指令之執行,一獲得旗號訊息 (ACQJMSG)藉執行該執行緒之處理核心,透過訊息匯流排 15而發达至該旗號實體。ACQ—MSG之一種格式說明如前。其 它格式也可使用。
作為ACS指令執行之一部分,或響應於ACS指令之執 灯,請求該旗號之執行緒係置於不作用狀態,等候旗號狀 悲攔位經設定。經由將執行緒置於不作用狀態,於執行緒 2〇之彳日令未被執行,若最初旗號請求被拒絕,則該指令包括 輪°句所請求之旗號。經由將執行緒置於不作用狀態,處理 為貝源、及系統頻寬不會被等候旗號之執行緒耗用。對一支 杈夕重執行緒之處理核心而言,該處理資源及系統頻寬可 由其它作用執行緒使用。 15 U79717 Ό虎汽體接收ACQ MS 主 該目的地旗號之M έ“ — ^求r貝矾登錄項置於 有、或由另若該旗號未被另—執行緒所擁 錄項緣故,被置=所控制’則該旗號登錄項因無其它登 -執行绪所擁有:旗5虎鏈結串列頭端。若該旗號係由另 列之尾π — 5 '制’則旗號登錄項被置於旗號鏈結串 區之鏈二該鏈結串列之尾端係經_^ 別,新二頭登錄項橫過至尾登錄項而被識 結串列之4項變成新的尾登錄項。另—具體例中,該鏈 10 15 20 接識別 _存於旗絲之鏈結串狀尾指標器直 :執仃緒完成對應該錢之資源的使用時,保有該旗 放^執行_朗«之㈣,錢魏。#—旗號被釋 於:於旗號鏈結串列頭端之對應旗號登錄項被去除,而 ;鏈、°串列之隨後旗號登錄項變成該鏈結串列之頭。 § 一旗號登錄項變成該旗號鏈結串列之頭時,其狀態 2位由销號實體檢查。若確認制止欄位未被設定,則確 〜:息(ACK—MSG)由該旗號實體發送至與該旗號登錄項 ^關之執彳了緒。ACKJV[SG之—種格式說明如前。也可使用 ^匕格式。ACK-MSG對接收實體(例如一執行緒)指示:該接 收貫體已經被授與對應旗號之控制權。 響應於ACK一MSG,對應執行緒被致動。當執行緒被致 動時,執行緒之指令處理可被恢復,對應該旗號之共享資 源可被存取。當執行緒完成存取共享資源時,該旗號被釋 放出,容後詳述。 16 1279717 主動旗號之範例釋放 、-具體例中’當釋放旗號(RLS)指令被執行時,一旗號 破釋放。RLS指令可藉-處理核,錢行,該處理核心為執 5二睛求該旗號之指令執行緒之處理核心。作為邮指令之 5 =部分或響應於RLS指令之執行,釋放旗號訊息(赃_M抑 务运至旗號實體。一種rel_msg格式說明如前。其它格式 也可使用。 響應於REL-MSG,旗號實體將REL—MSG之執行緒識 1別付攔位與旗號鏈結串列匹配。若對應旗號登錄項係位於 10鏈結串列頭,則旗號實體由該鏈結串列之頭端去除該執行 緒登錄項。而鏈結串列之隨後登錄項變成頭登錄項。然後 旗號可被授與對應於新頭登錄項之執行緒。若對應之旗號 登錄項非位於鏈結串列之頭登錄項,則旗號實體設定該旗 號登錄項之釋放狀態攔位。 15 行為模式 基於使用之鏈結串列之形成,旗號可被分類為聯合旗 號或排序旗號。基於由旗號實體發射ACK—MSG,旗號可被 分類為主動旗號或預備性旗號。如此共可支援四種型別之 旗號。 20 聯合旗號之一具體例之綜論 ^合旗5虎允终並行執行緒以任一種順序存取旗號。一 具體例中,一旗號係於一段使用null鏈結串列之異動處理 (或單一位元來指示空白鏈結串列)開始時,藉執行緒調度器 來初始化该旗號。並無任何其它訊息由執行緒調度器發送 17 1279717 至該旗號實體。旗號鏈結串列係藉執行電路執 執行緒期間於歸騎當巾建立。 ^ 一具體例中’-執行緒藉執行ACS指令或asr指令請 求-聯合旗號。該執行緒經由執行RLS指令而釋放一聯合 5旗號。-具體例中,新ACq_Msg將導致一登錄項,該魏 項係對應於位在該旗號鏈結串列尾之請求執行緒。如此提 供先到先服務(FCFS)旗號模式。 排序旗號之一具體例之綜論 排序旗號允許並列執行緒以預定順序來存取旗號。該 H)順序係由執行緒調度器於調度時決定。該順序可能與應用 用途相關。由於執行緒調度之本質為循序方式,故執行緒 調度器可發送-個代表各個被調度之執行緒之acq刪 給旗號實體’來根據該麟建立_鏈結串列。 進入-臨界區段之執行緒可使用該w τ s指令來等候 15擁有該旗號。心指令及撕指令並未被使用,原因在於 執行緒已經被置於該旗號鏈結串列。一具體例中,旗號實 體=根據鏈結串列之順序來提供旗號之控制。等候旗號之 執行緒將以鏈結㈣順序接收取CQ—msg。 主動旗號之一具體例之綜論 2〇 , —如前文說明,使用-主動旗號,acq_msg被用來造成 Γ執行緒㈣作綠態變遷成騎狀態。魏實體由執 Γ執行緒之執行電路接收到—或多個ACQ—MSG。旗號實體 二發射-個ACKJMSG給—執行電路,該執行電路係對應於 就鏈、、、。串列柄之執行緒。當去除旗號鏈結串列之頭 18 1279717 時’旗號實體檢驗鏈結串列之新頭之狀態,可發送隨後之 ACK一MSG給對應該旗號鏈結串列新頭之執行緒之該執行 電路。主動旗號也可為聯合旗號。 預備性旗號之一具體例之綜論 預備性旗號發射一個且只發射一個ACK—MSG給位於 旗號鏈結串列頭端之該執行緒,而與該執行緒是否於不作 用狀態無闕。如此適用於使用排序旗號且帶有先前由執行 緒調度器所發送之ACQ—MSG之該等執行绪,因此只有^ 10 15 20 ACK—MSG發送給一執行緒。使用排序旗號之一執行緒可含 有wts指令及/或RLS指令。 對預備性旗號而言,ACK—MSG係由旗號實體自動發送 “於C號鏈結串列頭端之該執行緒。一具體例中,存在 有―種可%之「風險情況」,該風險情況可能存在於來自一 士,、 ^錄項係藉執行緒調度器而加至該旗號鏈結串列 :二=::緒為該執行電路可見時。由於二動作皆係 二故必:二而初始化’但可能經由不同的資料路徑發 生H貝考慮此等事件之時序。 若執行緒之執行係始於旗號 一WTS指令,則將 右万、執仃緒有 J將不會發生風險情況。原因 執行緒狀態變數係藉執在=候旗遽 WTS指令係在執 心认’即使執行緒之 會發生該風險情況。虎鏈結串列之前到達,也不 態,而不會發以自造成執打緒進入不作用狀 、Λ息給旗號實體。當旗 ACK_MSG給該執 ’、“體發达 執仃電路造成該執行緒再度變成 19 1279717 10 15 20 作用狀態。 、右"亥旗遽係藉執行緒調度器組配且有確認制止攔位經 過設定,a 合、 、彳可能發生風險情況。此種情況下,執行緒將不 前、置方、不作用狀態。反而,若在對該執行緒組配旗號之 |上忒執仃緒到達RLS指令且發送REL—MSG給旗號實體, 止Λ旗魂貫體可能並非處於處理REL—MSG的情況。為了防 止:種風險情況,執行緒執行及旗號實體可確収EL一MSG $ L過由该執行緒調度器所發出的ACQ_MSG。 、^ 一具體例中,為了避免風險情況,若確認制止 >被又疋,則執行緒調度器必須於旗號組配完成前完成執 行、者的、錢。若確認制止攔位經過設定,則執行緒調度器 方、執行、麵配完成前,完成旗號的組配。因執行緒調度器 串列^度;it㈣執行緒,故循序操作可4保所要求的順序。 當執行緒組配係於旗號組配完成前完成時,執行緒調 度器可調度_執行緒,且等候一信號,該信號指示執行緒 組配係於發賴息來造成旗號組配之前完成。當旗號組配 係於執仃緒㈣之前完成時,執行_度器可發送一訊牵 來初始化該旗制組配,以及等候—㈣,該錢指科 調度執行緒之前,旗號的組配已經完成。由於串列組態不 -定限制來自調度H的產出量,故組態操作可調整為管線 化0
弟2圖為執行緒调度操作與旗號初始化操作協力之一 具組例之4程圖。一具體例中,執行緒調度器判定對欲發 送之該旗號訊息,是否設定確認制止欄位,2 二 为一具體 20 1279717 例中 兵έ糸統組成元件可決定確認制止 5 10 15 20 或將被設定 若確認制止攔位經設定,210,則執行緒調度器發送一 旗號請求訊息(例如ACQ—MSG)給該旗號實體,22〇。該旗 號實體處理該請求訊息,以及當該請求訊息已經經過處理 時(例如一鏈結串列登錄項已經加至該請求執行緒之仔列 時),發射一「旗號組配完成」之信號給執行緒調度器。「旗 號組配完成」之信號可呈任-卿式,例如單線^;用來發 射一個1位元信號,或訊息可透過訊息匯流排發射。 執行緒調度器等候來自該旗號實體之「 i 〃 心旗唬組配完成. 4吕唬,230。畜等候該「旗號組配完成 」乜琥時,該執行結 调度器例如可調度其它執行緒,或進行认冰 「 不成執行緒祐调度德作。於接收到「旗號組配完成」訊息後 调度器調度該執行緒至該執行電路 、’ 由執行電路執行,25G。 24G°然後該執行_ 若該確認制止欄位未經設定,210, 度該執行緒至該執行電路,215。於調度緒調度器詔 電路後,執行_度科候來自該執行2仃緒至該執七 配完成」信號,225。-具體例中,當該:路之「執行齡 始執行該執行緒時,該執行電路發送^「订f路設定為积 信號給執行緒調度器。「執行緒組配完成執行緒組配完成 種形式,例如單線可用來發射一個丨=_」〜之信號可呈任-過訊息匯流排發射。然後執行緒係藉^= 1訊息 當等候「執行緒組配完成」信號日>仃電路執行,250. 為執行緒調度器
21 1279/1/ 行之開始同 5 時進行 例如可調度其它執行緒,或進行不备 被發送之操作。於接收到「執行緒請求訊息 執行緒調度器發射—旗號請求訊*=成」訊息後,該 =生純行竭叫,_=*,235,如 』:之力實施例提供執行緒執行與帶有預_ 旗號組配協力之循序範例 也可以管線化技奸。°以,麵2_所述操作
執Ί亍緒同步化 10 f3a_3d圖為其中旗號用於同步化執行緒執行之相依 性之構想說明圖。第3a圖顯示1:1:1(—於一)相依性。第如 圖相依性可為強力循序相依性或聯合相依性。對強力循序 相依1±而σ,可使用單一預備性排序旗號。一具體例中,
方、由執行緒調度器發送至旗號實體來請求旗號之 15 ACQ一MSG中,確認制止欄位及自動釋放欄位皆未經設定。 指令執行緒包括一WTS-RLS指令對,來獲得與釋放旗號。 對聯合相依性而言,可使用單一主動聯合旗號。一具 體例中’於執行電路執行執行緒發送至旗號實體來請求該 旗號之ACQJMSG中,確認制止攔位及自動釋放攔位皆未經 20設定。指令執行緒包括ACS-RLS指令對來獲得旗號與釋放 旗號。 第3b圖顯示1:Ν(—於多)相依性,此處一個執行緒對Ν 個其它執行緒有頭相依性,而Ν個其它執行緒彼此並未相 依。此處Ν為正整數,Ν可為1或大於1。對1:Ν相依性而言, 22 1279717 可使用單-預備性排序旗號。一具體例卜對n個各自獨立 之細而言’ ACq_msg係由執行緒調度器代_固執: 緒發达。於由執行緒調度器發送至旗號實體來請求旗號之 ACQ—MSG中,確認制止攔位經過設定,而自動釋放搁^ 5經設定。對單一執行緒其對其它N個執行緒有頭相依性之該 執行緒而言,也由執行緒調度器發送ACQJVISG。於請求旗 號之ACQ—MSG中,確認制止攔位未經設定,而自動=放^ 位經設定。N個指令執行緒只包括一個⑽指令來釋放旗 號。單-指令執行緒包括—WTS_RLS指令對來獲得旗號愈 10釋放旗號。 第3C圖顯示N:1(多於一)相錄,此處N執行緒對單一 執行緒有頭相依性,但該N執行緒彼此不相依。對N:1相依 性而a,可使用單一預備性排序旗號。一具體例中,執行 緒調度器負責代表咐目依執行緒以及該一被相依執行緒發 I5送ACQ—MSG。-具體例中,對單一被相依執行緒而言,於 清求旗叙ACQ—MSG中,確認制止欄位經設定,而自動釋 放欄位未經設定。對N個相依執行緒,於請求旗號之 ACQ—MSG中’確認制止攔位係未經設定,而該自動釋放攔 位經a又定。單一被相依指令執行緒只包括一個rls指令來 20釋放该旗5虎。N個相依指令執行緒包括一WTS_RLS指令對 來獲得旗號與釋放旗號。 第3d圖顯示N:M(多於多)相依性,此處N相依執行緒對 Μ個被相依執行緒有頭相依性。此種情況下 ’ Ν個相依執行 緒彼此亚不相關,而州固被相依執行緒彼此並不相關。比 23 1279717 較前述1··1:1、1:N及N:1情況,N:M相依性案例為更常見情 況。對N:M相依性而言,可使用單一預備性排序旗號。一 具體例中,執行緒調度器負責代表N相依執行緒及M被相依 執行緒發送ACQ_MSG。一具體例中,對Μ個被相依執行緒 5而言,於請求旗號之ACQ-MSG中,確認制止攔位經設定, 而自動釋放攔位未經設定。對Ν個相依執行緒而言,於請求 旗號之ACQ_MSG中,確認制止攔位係未經設定,而自動釋 放欄位係經設定。Μ個被相依之指令執行緒只包括一個rls 指令來釋放該旗號。N個相依指令執行緒包括_ wts_rls 10指令對來獲得該旗號與釋放該旗號。 第3心圖之相依性可用來支援更複雜的相依性。例 對n:i:n相依性而言,可使用兩個預備性排序旗號。則; 健係如敎就第域所述處理,而1:_域偏^前文〕 第3b圖所述處理。 15 結論 晉甲迷及 &人 」故一具體例」. 、、、。5該具體綱述之肢特色、結構、㈣徵係含括; 少一個本發明具體例。於說明書中各個 直一呈j 20
中」二詞的出現並非全部皆係指同—個具體例。- 前文說明書中已經參照特定具體例說明本發明” 然可未㈣本發明之廣義精财範圍,而做出 變化。如此說明書及附圖係視為舉 二二: 意義。 η丨王貝而非限1 【圖式簡單說明】 24 1279717 第1圖為巨大多重執行緒處理器架構之一具體例之方 塊圖。 第2圖為執行緒調度操作與旗號初始化操作協力之一 具體例之流程圖。 5 第3a-3d圖為其中旗號可用於同步化執行緒之執行之 相依性之構想說明圖。 【主要元件符號說明】 145.. .列控制匯流排 150、151、159…處理器核心元件 160.. .列控制器 165.. .列控制匯流排 170.. .旗號實體 210-250…步驟 100.. .巨大多重執行緒系統 110.. .記憶體階層 120.. .執行緒調度器 125…訊息匯流排 130、13卜139…處理器核心元件 140…列控制器
25

Claims (1)

  1. 更)正本 十、申請專利範圍: 第93140775號申請案申請專利範圍修正本 95.05.18· 1. 一種用於多執行緒處理之方法,其包含有下列步驟: 判定對應於一旗號之一變數的一種狀態; 5 若該變數係處於一第一狀態,則於調度該執行緒供 執行前,對一指令執行緒產生一旗號登錄項;以及
    若該變數係處於一第二狀態,則於對該執行緒產生 該旗號登錄項前,調度該指令執行緒供執行。 2. 如申請專利範圍第1項之方法,其進一步包含若該變數 10 係處於一第三狀態,調度該指令執行緒供執行,以及於 該執行緒執行期間,對該執行緒產生一旗號登錄項。 3. 如申請專利範圍第1項之方法,其中對應於該旗號之該 變數指出一旗號實體是否自動發送一指示該旗號之控 制之訊息給對應於該指令執行緒之執行電路。 15 4.如申請專利範圍第1項之方法,其中若該變數係處於一
    第一狀態而於調度該執行緒供執行前對一指令執行緒 產生一旗號登錄項之該步驟包含: 發送一訊息給一旗號實體來請求由該指令執行緒 控制該旗號;以及 20 響應於接收到指出該旗號實體已經處理該訊息之 一信號,調度該指令執行緒至執行電路。 5. 如申請專利範圍第4項之方法,其中發送該訊息至該旗 號實體以及調度該指令執行緒的步驟係經管線化。 6. 如申請專利範圍第4項之方法,其中該訊息包含一旗號 26 1279717 識別符欄位、一執行緒識別符欄位、以及一對應於該變 數之欄位。 7.如申請專利範圍第1項之方法,其中若該變數係處於一 第二狀態而於對該執行緒產生該旗號登錄項前調度該 5 指令執行緒供執行之該步驟包含:
    調度該指令執行緒至執行電路;以及 響應於指出該指令執行緒已經開始執行之一信 號,發送一訊息給一旗號實體來請求由該指令執行緒控 制該旗號。 10 8.如申請專利範圍第7項之方法,其中該指令執行緒之調 度與發送該訊息給該旗號實體的步驟係經管線化。 9.如申請專利範圍第7項之方法,其中該訊息包含一旗號 識別符欄位、一執行緒識別符欄位、以及一對應於該變 數之欄位。 15 10.如申請專利範圍第2項之方法,其中若該變數係處於一
    第三狀態則調度該指令執行緒供執行以及於該執行緒 執行期間對該執行緒產生一旗號登錄項之步驟包含: 調度該指令執行緒至執行電路;以及 響應於一指令集之執行,發送一訊息給一旗號實體 20 來請求由該指令執行緒控制該旗號。 11. 如申請專利範圍第10項之方法,其中該指令集包含一獲 得旗號指令。 12. 如申請專利範圍第10項之方法,其中該指令集包含一帶 有自動釋放指令之獲得旗號。 27 1279717 13. —種用於多執行緒處理之裝置,其包含有: 判定裝置,其係供判定對應於一旗號之一變數之一 種狀態; 產生裝置,其係供若該變數係處於一第一狀態,則 5 於調度該執行緒供執行前,對一指令執行緒產生一旗號 登錄項;以及
    調度裝置,其係供若該變數係處於一第二狀態,則 於對該執行緒產生該旗號登錄項前,調度該指令執行緒 供執行;以及 10 若該變數係處於一第三狀態,則調度該指令執行緒 供執行,以及於該執行緒執行期間,對該執行緒產生一 旗號登錄項。 14. 如申請專利範圍第13項之裝置,其進一步包含用以於該 變數係處於一第三狀態時調度該指令執行緒供執行以 15 及於該執行緒執行期間對該執行緒產生一旗號登錄項
    之調度裝置。 15. 如申請專利範圍第13項之裝置,其中用以於該變數係處 於一第一狀態時於調度該執行緒供執行前對一指令執 行緒產生一旗號登錄項之該產生裝置進一步包含: 20 發送裝置,其係供發送一訊息給一旗號實體來請求 由該指令執行緒控制該旗號;以及 調度裝置,其係供響應於接收到指出該旗號實體已 經處理該訊息之一信號,調度該指令執行緒至執行電 路0 28 Γ 1279717 16. 如申請專利範圍第13項之裝置,其中用以於該變數係處 於一第二狀態時於對該執行緒產生該旗號登錄項前調 度該指令執行緒供執行之該調度裝置進一步包含: 調度裝置,其係供調度該指令執行緒至執行電路; 5 以及
    發送裝置,其係供響應於指出該指令執行緒已經開 始執行之一信號,發送一訊息給一旗號實體來請求由該 指令執行緒控制該旗號。 17. 如申請專利範圍第14項之裝置,其中用以於該變數係處 10 於一第三狀態時調度該指令執行緒供執行及於該執行 緒執行期間對該執行緒產生一旗號登錄項之該調度裝 置進一步包含: 調度裝置,其係供調度該指令執行緒至執行電路; 以及 15 發送裝置,其係供響應於一指令集之執行,發送一
    訊息給一旗號實體來請求由該指令執行緒控制該旗號。 18. —種用於多執行緒處理之裝置,其包含有: 一旗號實體,用來為一旗號維持指出一或多個請求 控制該旗號之指令執行緒的多個登錄項; 20 執行電路,用來執行一或多個指令執行緒;以及 與該旗號實體及該執行電路耦合之一執行緒調度 器,該執行緒調度器係用來:判定對應於該旗號之一變 數之一種狀態;若該變數係處於一第一狀態,則於調度 該指令執行緒至該執行電路供執行前,產生一訊息給該 29 1279717
    旗號實體來造成對該指令執行緒產生一旗號登錄項;以 及若該變數係處於一第二狀態,則於產生一訊息給該旗 號實體造成對該執行緒產生該旗號登錄項前,調度該指 令執行緒至該執行電路供執行。 5 19.如申請專利範圍第18項之裝置,其中若該變數係處於一 第三狀態,則該執行緒調度器進一步調度該指令執行緒 供執行,而不對該執行緒產生一旗號登錄項。
    20.如申請專利範圍第18項之裝置,其中該旗號實體維持一 或多個旗號。 10 21.如申請專利範圍第18項之裝置,其中該訊息包含一旗號 識別符攔位、一執行緒識別符欄位、以及一對應於該變 數之欄位。 22. 如申請專利範圍第18項之裝置,其中對應於該旗號之該 變數指出一旗號實體是否自動發送一指示該旗號之控 15 制之訊息給對應於該指令執行緒之執行電路。
    23. 如申請專利範圍第18項之裝置,其中若該變數係處於一 第一狀態,則於調度一指令執行緒至該執行電路供執行 前,產生一訊息給該旗號實體來造成對該指令執行緒產 生一旗號登錄項的動作,包含:發送一訊息給一旗號實 20 體來請求由該指令執行緒控制該旗號;以及響應於接收 到指出該旗號實體已經處理該訊息之一信號,調度該指 令執行緒至該執行電路。 24. 如申請專利範圍第23項之裝置,其中發送該訊息至該旗 號實體之動作與調度該指令執行緒之動作係經管線化。 30 1279717 25=申請專利範圍第18項之裝置,其中若該變數係處於 狀態’則於產生—訊息給該旗號實體造切 、者產生该旗號登錄項前,調度該指令執行緒至診 丁 路供執行的動作,包含··調度該指令執行緒至 2 路:以及響應於指出該指令執行緒之執行已經開始二 ^號,發送—訊息至一旗號實體來 D 控制該旗號。 ^純令執行緒 26.如申請專利範圍第_之裝置,其中發送 ▲ 10 15 20 號實體之動作與調度該指令執行 27·如申請專利範圍第一,其中該執:二 -指令集之執行,而產生一訊息路曰應於 該指令執行处㈣。Μ㈣來請求由 28. 一種用於多執行緒處理之系統,其包含有: 一記憶體控制器; -或多個請求 =二 合之-執行緒調度器,該 "心己憶體控制器耦 應於該旗號之_變數之仃^度器係、用來:判定對 -狀態,則於調度一指令數係處於-第 前,產生-訊息給該旗號實體來ζ執行電路供執行 生一旗號登錄項;若該變數係處於—第指條緒產 生—訊息給該旗號實體來 一狀悲,則於產 手°亥執行緒產生該旗號 31 1279717 10 15 20 登錄項則’難該指令執行魅減行電路供執行;以 及若該變數係處於-第三狀態,卿度該指令執行緒供 執行,而未對該執行緒產生一旗號登錄項。 29.如申請專利範圍第28項之系統,其中若該變數 — 第三狀態,職執行緒調度輯―步調度該指令執行緒 供執仃’而未對該執行緒產生__旗錄項。 3〇.如申請專利範圍第28項之系統,其中該訊息包含_ 識別符攔位、-執行緒朗 Ά 數之攔位。 及對應於該變 3^申請專利範圍第_之系統,其中對應於該旗 •支數指出-旗號實體是否自動發送—指出該…X 制之訊息給對應於該指令執行狀執〜、〜之控 32·如申請專利範圍㈣項之系統,其中若該變數 :一狀態’則於調度-指令執行緒至該執行電二 别’產生-訊息給該旗號實體來造成物:=供執行 生-旗號登錄項的動作,包含:發:二執仃緒產 體來請求由該指令執行___;^、^旗號實 到指出該旗號實體已經處理該訊息之及各應於接收 令執行緒至該執行電路。 ^调度該指 33:申:::利範圍第28項之系統,其中 弟—狀恶’則於產生—訊息給該錢外錢於一 緒產生該旗號登錄項前,調度該指令執二,該執行 路供執行的動作,包含:調产种^订、,者至該執行電 路;以及響應於指_二=1=彳:
    32 1279717 信號,發送一訊息至一旗號實體來請求由該指令執行緒 控制該旗號。 34.如申請專利範圍第28項之系統,其中發送該訊息至該旗 號實體之動作與調度該指令執行緒之動作係經管線化。
    33 •1279717 七、指定代表圖: (一) 本案指定代表圖為:第(1 )圖。 (二) 本代表圖之元件符號簡單說明: 100.. .巨大多重執行緒系統 110.. .記憶體階層 120.. .執行緒調度器 125…訊息匯流排 130、131、139…處理器核心元件 140.. .列控制器 145.. .列控制匯流排 150、151、159…處理器核心元件 160.. .列控制器 165.. .列控制匯流排 170.. .旗號實體 八、本案若有化學式時,請揭示最能顯示發明特徵的化學式:
TW093140775A 2003-12-31 2004-12-27 Method, apparatus and system for multi-threaded processing TWI279717B (en)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US10/750,090 US7614054B2 (en) 2003-12-31 2003-12-31 Behavioral model based multi-threaded architecture

Publications (2)

Publication Number Publication Date
TW200535694A TW200535694A (en) 2005-11-01
TWI279717B true TWI279717B (en) 2007-04-21

Family

ID=34711206

Family Applications (1)

Application Number Title Priority Date Filing Date
TW093140775A TWI279717B (en) 2003-12-31 2004-12-27 Method, apparatus and system for multi-threaded processing

Country Status (7)

Country Link
US (2) US7614054B2 (zh)
EP (1) EP1700203B1 (zh)
JP (1) JP4584935B2 (zh)
CN (2) CN101189579B (zh)
AT (1) ATE554444T1 (zh)
TW (1) TWI279717B (zh)
WO (1) WO2005066768A2 (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI460659B (zh) * 2008-07-09 2014-11-11 Ibm 用於降低競爭之鎖定窗

Families Citing this family (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7614054B2 (en) * 2003-12-31 2009-11-03 Intel Corporation Behavioral model based multi-threaded architecture
GB0519597D0 (en) * 2005-09-26 2005-11-02 Imagination Tech Ltd Scalable multi-threaded media processing architecture
US7792864B1 (en) * 2006-06-14 2010-09-07 TransUnion Teledata, L.L.C. Entity identification and/or association using multiple data elements
US9348644B2 (en) * 2014-10-08 2016-05-24 International Business Machines Corporation Application-level dispatcher control of application-level pseudo threads and operating system threads
CN104572277B (zh) * 2014-12-17 2018-04-27 大唐移动通信设备有限公司 一种线程流控方法和装置
CN109254834B (zh) * 2017-07-13 2021-05-14 普天信息技术有限公司 一种多线程启动同步方法
US20190042332A1 (en) * 2017-08-03 2019-02-07 Next Silicon, Ltd. Hardware locking primitive system for hardware and methods for generating same
US11119782B2 (en) * 2018-05-07 2021-09-14 Micron Technology, Inc. Thread commencement using a work descriptor packet in a self-scheduling processor
US11099899B2 (en) * 2019-11-14 2021-08-24 Sas Institute Inc. Atomic pool manager for a data pool using a memory slot for storing a data object
CN112612582B (zh) * 2020-12-14 2024-05-28 北京和利时控制技术有限公司 信号量功能实现方法和装置
KR20240102798A (ko) * 2022-12-26 2024-07-03 리벨리온 주식회사 뉴럴 프로세서 및 이의 명령어 페치 방법
CN117076139B (zh) * 2023-10-17 2024-04-02 北京融为科技有限公司 数据处理方法及相关设备

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0381859A (ja) * 1989-08-25 1991-04-08 Nec Corp マルチプロセッサシステム
GB9123264D0 (en) * 1991-11-01 1991-12-18 Int Computers Ltd Semaphone arrangement for a data processing system
US6018785A (en) 1993-12-30 2000-01-25 Cypress Semiconductor Corp. Interrupt-generating hardware semaphore
US5852731A (en) 1995-06-05 1998-12-22 International Business Machines Corporation Computer program product for synchronizing static variable initialization and reference under a multi-threaded computer environment
CA2201275A1 (en) * 1997-03-27 1998-09-27 Chris L. Brealey Locking tool data objects in a framework environment
JP2001084235A (ja) 1999-09-10 2001-03-30 Nec Corp ロック粒度統計情報を利用した排他制御方法及びプログラムを記録した機械読み取り可能な記録媒体
US6687904B1 (en) * 1999-11-22 2004-02-03 Sun Microsystems, Inc. Method and apparatus for selecting a locking policy based on a per-object locking history
US7240058B2 (en) * 2002-03-01 2007-07-03 Sun Microsystems, Inc. Lock mechanism for a distributed data system
CN1212569C (zh) * 2002-11-01 2005-07-27 英业达股份有限公司 多线程自动测试方法
US7614054B2 (en) 2003-12-31 2009-11-03 Intel Corporation Behavioral model based multi-threaded architecture

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI460659B (zh) * 2008-07-09 2014-11-11 Ibm 用於降低競爭之鎖定窗

Also Published As

Publication number Publication date
ATE554444T1 (de) 2012-05-15
EP1700203B1 (en) 2012-04-18
CN101189579A (zh) 2008-05-28
CN102622271B (zh) 2016-08-24
WO2005066768A2 (en) 2005-07-21
US7614054B2 (en) 2009-11-03
JP4584935B2 (ja) 2010-11-24
TW200535694A (en) 2005-11-01
JP2007517328A (ja) 2007-06-28
US8914800B2 (en) 2014-12-16
WO2005066768A3 (en) 2007-02-22
EP1700203A2 (en) 2006-09-13
CN101189579B (zh) 2012-03-07
CN102622271A (zh) 2012-08-01
US20100115518A1 (en) 2010-05-06
US20050149928A1 (en) 2005-07-07

Similar Documents

Publication Publication Date Title
TWI279717B (en) Method, apparatus and system for multi-threaded processing
US8448179B2 (en) Processing architecture having passive threads and active semaphores
CN100533370C (zh) 多处理器系统及运行多处理器系统的方法
EP1025493B1 (en) Queued method invocations on distributed component applications
AU2016298207B2 (en) Background job processing framework
US6378001B1 (en) Collaborative framework with shared objects
US7631108B2 (en) Method and apparatus for executing event driven simulations
EP2857969A2 (en) Data processing management method, information processing apparatus, and data processing management program
TW201030671A (en) Graphics processing units, metacommand processing systems and metacommand executing methods
US7426735B2 (en) Threading and communication architecture for a graphical user interface
TWI285851B (en) Visual and graphical data processing using a multi-threaded architecture
JP2020510908A (ja) 分散システムにおいてコンピュータプロセスまたはタスクをスケジューリングする方法およびシステム
JP2008242983A (ja) データ処理装置、分散処理システム、データ処理方法、及びデータ処理プログラム
CN108737485A (zh) 针对物联网资源的操作的方法及系统
US6978330B1 (en) Shared resource access via declarations that contain a sequence number of a packet
US10713188B2 (en) Inter-process signaling system and method
Andrews Designing the framework of a parallel game engine
JP2006268123A (ja) 情報共有装置
Bahadur et al. FBOS: frequency based optimization strategy for thread pool system
JPH04507019A (ja) 非繁忙待機資源制御
Lu A case study about different network architectures in Federated Machine Learning
JP3764282B2 (ja) プログラム制御システムの制御装置
JP2010191482A (ja) クライアントサーバシステム、クライアント装置および業務処理振分プログラム
Gaspar DELPHI Collaboration@, DELPHI 92-12 PHYS 119

Legal Events

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