TWI338861B - System and method for grouping execution threads - Google Patents

System and method for grouping execution threads Download PDF

Info

Publication number
TWI338861B
TWI338861B TW095147158A TW95147158A TWI338861B TW I338861 B TWI338861 B TW I338861B TW 095147158 A TW095147158 A TW 095147158A TW 95147158 A TW95147158 A TW 95147158A TW I338861 B TWI338861 B TW I338861B
Authority
TW
Taiwan
Prior art keywords
string
line
instruction
command line
command
Prior art date
Application number
TW095147158A
Other languages
English (en)
Other versions
TW200745953A (en
Inventor
Brett W Coon
John Erik Lindholm
Original Assignee
Nvidia 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 Nvidia Corp filed Critical Nvidia Corp
Publication of TW200745953A publication Critical patent/TW200745953A/zh
Application granted granted Critical
Publication of TWI338861B publication Critical patent/TWI338861B/zh

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline, look ahead
    • G06F9/3836Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution
    • G06F9/3851Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution from multiple instruction streams, e.g. multistreaming
    • 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/3009Thread control 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

Description

1338861 九、發明說明: 【發明所屬之技術領域】 —本發明之實施例大體而言係關於多線串之處理,且更特 疋5之係關於一種用於將執行線串分組以 利用率的系統及方法。 々之硬體 【先前技術】 通常’需要多個時脈週期來執行電腦指 串處理器以一連續方式執行並行指令用勒夕線 等“之硬體可盡可能保持忙碌。舉例而言, 下文展示之特徵之指令線串時,多線串产理二有 四個並行料。㈣以此 0也續排程 ^ Λ 07^ * Μ線串’多線串處理琴萨
夠在23個時脈週期後完成4個線 -理W 期㈣期間執行第—線串、在時脈週期^期=時脈週 線串、在時脈週期3-22期間執行第,订第— C間執行第四線串。對照而言:若二=時脈週期 行處理中之線串方才對-線串進行^處理益直至完成執 週期以完成,線串的執行則將需8°個時脈 行第一線串、/姓、 1 *、Α週期I -20期間執 脈週期41,期間執二::。期::行第二線串、在時 執行第四線串。 且在時脈週期ό 1-80期間 指令 1 潛時 2 4個時脈週期 3 4個時脈週期 4 4個時脈週期 5 4個時脈週期 4個時脈過期 所需資源 3個暫存器 4個暫存器 3個暫存器 5個暫存器 3個暫存器 117236.doc 、、而上文所述之並行處理.需要更大量之硬體資源,例 如’大置暫存器。在上文給出之實例中’對照用於非並行 處理之5個暫存器而言,並行處理所需之暫存器的數 2 0個。 巧 在許多狀況下,執行潛時並不均…舉例而言,在圖形 二理之狀况下’一指令線串通常包括一般具有小於W個 脈週期之潛時的數學 牙 町数千運异及具有超過100個時脈週期之纸 時的記憶體存取操作。在 /a 牡系寺狀況下,連續排程並行線串 仃,:作狀況不佳。若連續執行之並行線串的數目過 :’則尚潛時記憶體存取操作的結果為 利用不足。另—古品 ^ ^ 又® A付 π 、 一 右使連續執行之並行線串的數目大 付足以覆蓋記憶體存取操 古 ⑴-一)所需之暫存、r “ ’則支援活動線串 少汀茗之暫存β的數目將顯著增加。 【發明内容】 本發月提仏帛用於將執行線串分組以便更有效地 執行硬體的方法。本發明亦接仳^ £更有效地利用 〜 亦k供-種包括經組態以將勃广 W刀一此Μ效地利用執行硬體之丁 系統。 丨〜瓸早兀的電腦 根據本發明之實施例,將多個 線串之夥伴群組,以使各 兩個以上 在各夥伴群組令,僅一個錄虫刀配有:或多個夥伴線串。 Φ it ^ ^ 有效執行指令。當—有效绩 串梃遇诸如一調換指令 ,政綠 ,M 0 . °周換事件時,該有效線串暫0# + 止執订,且其夥伴線串中之—者開始執行。 時中 该調換指令通常在一古 4時指令之後出現,且導致當前 H7236.doc 串賴為有料㈣表巾之㈣伴 艇續執行夥伴線串,古s 4。 的者。 調換指令導致卿m 串遭遇一調換指令,該 線串中的-者線串調換為有效執行列表中之其夥伴 線串調換為有二::中僅存在兩個夥伴,則將夥伴 執行。若在群ΓΓ 線串,且时該原線串之 右在—群組中存在兩個以上 定之次序蔣救技,6 Λ 則根據某些預 ^ 、友串調換為該群組中的下一夥伴。 :即約暫存器檔案利用率’各夥伴線 分為兩個群组· Α田„ , 玲廿裔配置 „ ' 用及共用。僅屬於私用群組之暫存5|在 間保持其值…暫存器通常由夥伴群前: 效線串所有。 a月’J有 =群=在載入程式以供執行時,使用駐有線 :==:rr上暫存”。該表具有多個 言據各夥伴群組中之線串的數目而組態。舉例而 行。:各夥伴群組中存在兩個線串,則該表組態有兩 行。各办伴群組中存在三個線串,則該表組態有三 根據本發明$ _者 存在力己㈣中例之電腦系統將上文所描述之表儲 理單心,且包含一組態有第-及第二執行管線之處 :。該第—執行管線用於進行數學運算,而二 仃官線用於進行記憶體操作。 【實施方式】 ,、貫轭具有其中可實施本發明之複數個處理單元之 圖浴處理早元(GPU)12。之電腦系統】。。的簡化方塊圖。 117236.doc 1338861 括—介面早元122,其耗接至複數個處理單元 理單元=,:124-N,其中N為大於1之整數。該等處 憶體控制器126存取-區域圖形記憶 體130。趟ui20與該區域圖形記憶㈣〇代表一圓 糸統,其可由電腦系統100之— " 用一辟六七. r央處理早几(CPU)llO使 用-儲存在-糸統記憶體112中之驅動程式來存取。 圖2以額外細節說明該等處理單元124中之 所說明之處理單元(本文中標 處理單元m中之任―者。處二代表圖1中所展示之 單元212,其用於發出 :〇包括.-指令調度 竹由處理早兀200執行之指令;一 檔案214,其儲存用於執行指令之運算元;及一對 執行管線222、224。該裳—拥~ & 對 數學運算,且該第二執行管;丁二線222係經組態以進行 存取操作。大體而言,在;=經組態以進行記憶體 的潛時遠大於在第-執行線224中執行之指令 ”八… 丁官線222中執行之指令的潛時。 元212發出—指令時,指令調度單元212將管 該兩個執行f線如、2辦之—者 =為數學類型,則將管線組態信號發送至該第一執行 :=rr記憶體存取類型,則將管線組二 之热1 線224。將該兩個執行管線222、224 之執仃、‘果向回寫入至暫存器檔案叫中。 圖3為指令調度單元 212包括—且右射“的功此方塊圖。指令調度單元 施例中, 槽之指令緩衝器31〇。在此例示性實 槽之數目為12,且各槽可保持達兩個指令。若該 "7236.doc 1338861 等槽中之任一者具有用於另一指令之空間,則自_線串集 • 區305進行一提取312至一指令快取區314中。當載入程式 以供執行時,線串集區3〇5中駐有(p〇puiated叫讣)線串。 ,將儲存於指令快取區314中之指令添加至處於飛 行狀態(in flight)"之指令(亦即,已發出但尚未完成之指 令)的計分板322中且置放於指令緩衝器31〇之空餘空間中 之前’該指令經歷解碼3 16。 • #令調度單元212進一步包括一發出邏輯320。該發出邏 輯320檢查計分板322,且自指令緩衝器3 ι〇發出—不依賴 T等“處於飛行狀態”指令中之任一指令的指令。連同自 指令緩衝器31()之發出,發出邏輯32()將管線組態信號發送 至合適之執行管線。 ▲圖4說明根據本發明之一第一實施例之線串集區3〇5的組 態。線串集區305經組態為一具有〗2列及2行的表。表中之 各單7L代表一儲存一線串之記憶體槽。表中之各列代表一 夥伴群組。因此,在表之單元〇A中之線串為在表之單: 〇B中之線串的料1據本發明之實_,在—夥伴群组 中,每次僅一個線串為有效的。在指令提取期間,提取一 來自有效線串的指彳。該提取之指令隨後經歷解碼,且被 儲存於指令緩衝器310之對應槽中。在本文所說明之本發 明的實施例中’將自線串集區3〇5之單元〇a或單元⑽提‘ 之指令儲存在指令緩衝器31〇的槽〇中’且將自線串集區 3〇5之單元1A或單以B提取之指令儲存在指令緩衝器川 的槽!中’等等。同樣,根據發出邏輯32〇以連續時脈週期 117236.doc .10- t出儲存於指令緩衝器3 1 0中冬指令。在圖6中所示之簡化 實例中’以始於列〇中之指.令且隨後為列1中之指令,等等 之連續時脈週期發出儲存於指令緩衝器3 1 0中的指令。 圖5說明根據本發明之一第二實施例之線串集區3〇5的組 態。線串集區305經組態為一具有8列及3行的表。表中之 各單凡代表一儲存一線串之記憶體槽。表中之各列代表一 夥伴群組。因此,將在表之單元〇Α、0Β及0C中之線串視 為夥伴線串。根據本發明之實施例’在一夥伴群組中,每 -人僅一個線串為有效的。在指令提取期間,提取—來自有 效線串的指令。該提取之指令隨後經歷解碼,且被儲存於 才曰令緩衝器3 10之對應槽中。在本文所說明之本發明的實 施例中,將自線串集區305之單元〇Α、單元0Β或單元〇c提 取之指令儲存在指令緩衝器的槽0中,且將自線串集區 3〇5之單元ία、單元1Β或單元1C提取之指令儲存在指令緩 衝器310的槽1中,等等。而且,根據發出邏輯320以連續 時脈週期發出儲存於指令緩衝器3 1 0中的指令。 富線串集區305駐有線串8寺,其係由以行為主的次序載 入。首先載入單元〇八、繼之為單元1A、單元2八等,直至 將行A填滿。然後,載入單元0B '繼之為單元1B、單元2B 等,直至將行B填滿。若線串集區3〇5組態有額外行,則此 線串載人過程開m續,直至將所有行填滿。藉由 以行主序載人料集㈣5,可將料◎盡可能遠的彼 此暫時分開。而且’夥伴線串之各列適當獨立於其他列, 以使當指令自指令緩衝器310發出時,由發出邏輯320最低 I17236.doc 1338861 限度地執行列之間的次序。 換==每個群組存在兩個夥伴線串之狀況下,調 串序圖。實線箭頭對應於針對-有效線 -之單元从中=串該時序圖展示首先起始線串集區 早⑽中之線串,且執行來自該線串之一連串指 ν至自錢串發出—調換指 今砗,始虫隹r, 虽發出該調換指 7時,線串集區305之單元〇八中 .X. , 深串進入休眠(亦即,使 之無效),且使其夥伴線串,亦即,後志垒「 使 . ,. 深串集區305之里亓fift 中之線串有效。此揸,妯—^ w疋早兀 ,φ 執订來自線串集區305之單元〇Β4ι 之線串的一連串指今,古<早7L0B中 止。者發出此憾 自該線串發出一調換指令為 止田啦出此調換指令時 ^ 串進入休眠’且使其夥伴線串,亦中。 元⑽之線^效。此過程繼續直至^^3G5之早 為止。當一续由pa 至至兩線串均完成其執行 行至-夥伴線串的調換。 "未4時’亦進 如圖6中所示,在單 (Ϊ 30541 J: · 之線串之後連續起始線串隼 &川5之具他有效線串 κ甲呆 有效線串中之每一者吉WM之線串,執行其他 彼時該線串進入休眠且ϋ自該線串發出調換拍令為止, 線李之間交替有效執行直、知伴線串有效。然後,在夥伴 圖7為說明當執二至兩線串均完成其執行為止。 串)時,由片饤夕伴群纽中之線串(簡言之,夥伴線 串)時,由一處理單元 _ 夕1于琛 -中,配置用於夥伴線仃串過程步驟的流程圓。在步驟 器。該等配置之暫存 之硬體資源’詳言之為暫存 »已括用於夥伴線串中之每一者的私 U7236.doc -12- 1338861 用暫存器及待由夥伴線串共用之丑用 之配置節约暫存器利用 例 、用暫存器 串,且該等夥伴線串中之每去在兩個夥伴線 要共48個暫存与來 者而要24個暫存器,則將需 $仔為來達行習知多處 之實施例中,配置共用暫存器。此等在本發明 一線串為有料^虫##存5對應於彼等當 :成長潛時操作)時不需要的暫存器。私用;二“ 配置以儲存需扃%仏 私用暫存窃係經 仔為在凋換之間保留的任 串中之每-者需要24個暫存器 …^個移伴線 器中之咐配置為共用暫存器,列^ :可將此等暫存 器來執行兩夥伴線串。 而要〜共僅32個暫存 串,則節約更多。在㈣ 夥伴群组存在三個夥伴線 ”個暫存上: 與習知多處理方法⑷ 益相比’本發明將需要共40個暫存g。 、 夥伴,㈣相料騎 串之指令以執行(步叫 且::來自該線 712中操取之指令的執行 '然後,在步二:始對在步驟 :之指令以判视其是否為1換指 為檢查所擷 令’則使當前有效線串為Mm右4 —調換指 串中之-者為有效(步驟717)β若盆不 1伴群組中之其他線 查在步驟7】4中起始的執行是否._指令,則檢 完成時,檢查當前有效線串以判:是否:7】8)。當此執行 剩餘指令(步驟720)。若存在:子在待執行之任何 712,其中自A a '处理流程返回至步驟 ”中自备别有效線串操取待執 至步驟 存在,則進行-核對以判視是否所有二7令。若不 仟線串已完成執行 117236.doc 1338861 (步驟722)。若已完成,則處理序結 · 右禾兀成,則處理 k程返回至步驟71 7,其中調換至一夫〜 禾凡成之夥伴線串。 在上文所描述之本發明的實施例中,調換指令係在編譯 程式時插入。調換指令通常緊接在高潛時指令之後插入, 且較佳在程式中之可相對於私用暫 曰 甘甘茚炙數目而言配置大
罝/、用暫存器之點處插入。舉例而言,在圖形處理中,可 緊接在紋理指令之後插入調換指令。在本發明之替代實施 例中,㈣事#可並料職指令,㈣ 某些事件。舉例而言,硬體可經組態以辨識指令執= 長潛時。當其辨識到長潛時時,其可導致發出導致長潛時 之指令的線串變為無效’且使同一夥伴群組中之另一線串 變為有效。而且’調換事件可為在長潛時操作期間之某些 可辨識事件,例如,在長潛時操作期間發生之第一計分板 失速。
以下指令序列說明可㈣譯程式在繪製程式(shader program)中之何處插入調換指令:
Inst—00: Interpolate iw Inst一01: Reciprocal w Inst」)2: Interpolate s,w Inst_03 Interpolate t,W Inst一04: Texture s,t //Texture returns r, g, b,a values Inst_05: Swap Inst_06: Multiply r,r,w Inst—07: Multiply g,g,w 117236.doc 1338861 由編譯程式緊接在長潛時紋理指令(Inst_〇4)之後插入調 換指令(Inst_05)。以此方.式,當執行長潛時紋理指令 (Inst_04)時可進行至夥伴線串之調換。較不意欲在乘法指 令(Inst_06)之後插入調換指令,此係因為乘法指令 (Inst_06)係視紋理指令(lnst_〇4)之結果而定,且直至長潛 時紋理指令(Inst一04)完成其執行之後才可進行至夥伴線串 之調換。
出於說明之簡單性’用於本發明之實施例之上文描述的 線串代表一單個指令線串。然而,本發明亦適用於將相同 線串分組在一起且經由多個並行資料路徑使用一單個指令 多重資料(SIMD)處理器來處理來自此群組(亦稱為一護運 隊)之相同指令的實施例。 儘管上文係針對本發明之實施例’但可設計出本發明之 其他及其他實施例而不偏離本發明之基本範疇。本發明之 範疇由以下申請專利範圍判定:
【圖式簡單說明】 圖1為實施具有其中可實施本發明之複數個處理單元之 GPU之電腦系統的簡化方塊圖。 圖2以額外細節說明圖1中之處理單元。 圖3為圖2中展示之指令調度單元的功能方塊圖。 圖4為展示根據本發明之一第—實施例之線串集區及指 令緩衝器的概念圖》 圖5為展示根據本發明之一第二實施例之線串集區及 令緩衝器的概念圖 °° 117236.doc 1338861 圖6為說明在夥伴線串之間調換有效執行線串的時序 圖。 · 圖7為說明當執行夥伴線串時,由處理單元進行之過程 步驟的流程圖。 【主要元件符號說明】
100 電腦糸統 110 中央處理單元(CPU) 112 糸統記憶體 120 圖形處理單元(GPU) 122 介面單元 124 處理單元 126 記憶體控制器 130 圖形記憶體 200 處理單元 212 指令調度單元 214 暫存器檔案 222 數學管道 305 線串集區 305 線串集區 310 指令緩衝器 3 12 提取 314 指令快取區 316 解碼 320 發出邏輯 322 計分板 117236.doc -16«

Claims (1)

  1. 公告本 9特刀序12: It 正替換本 1'、申請專利範園: •—種在一處理單开 以下步驟: 中執行多個指令線串之方法,其包含 將該處理單元之第—、 第-及第二指令線串;—及共用硬體資源組配置至 使用該第一及該妓 * 更體資源組執行今第.t ^ ^ _ ’直至發生—預定事件;及 …了 線 回應於該預定事件之該發生 串的該執行’使用該第二及辟該第-指令線 第二指令線_,且儲存次 硬體資源組來執行該 之暫存器内。訊於包含於㈣—硬體資源組 ==1之方法,其中執行該第二指令線串直至發生另 Φ,_ ^ 預疋事件之該發生,暫停 中止該第二指令線串之該勃 亥執仃,且繼續該第一指令線串 之该執行。 如》g求項2之方法,其中# g ,t . t ” Y 4第一指令線串包含一調換指 々 且%·執行該第一線串中夕:一》U , 甲〈喊碉谀指令時發生該預定 J'其中胃第-指令線串包含-調換指令,且當 行該第二線串中之該調換指令時發生該另—預定事 件。 如叫求項1之方法’其進一步包含以下步驟:將一第三硬 體資源組及該共用硬體資源組配置至一第三指令線串, 其中執行該第二指令線串直至發生另一預定事件,且回 應於該另-預;t事件之該發生,暫時中止該第二指令線 〇〇υι
    5 ΐ之誘執行’且執行該第三指令線串。 5.如請求項!之古生^ 甲 線串中 +’、中該預定事件係在執行該第-指令 之一咼潛時指令時發生。 6·如請求項5之太 指令。 法’其中該高潛時指令包含-記憶體存取 7 ♦如請求項1之方、、先 8. 如請求項7之方::其中該等硬體資源包含暫存器。 緩衝器。 ’、中6亥等硬體資源進-步包含一指令 9. 如請求们之方法,其進—步包含: 將該處理單元之第=、 第三及第四指令線串「、四及第五硬體資源組配置至 使用該第二及該第五 串’直至發生一針 體貝源組執行該第三指令線 回應於該針之賴事件;及 尹止該第三指令” Γ ㈣事件之該發生,暫時 硬體資源组執行 的该執行’且使用該第四及該第五 1。,如請求項9之方二:中指:線串。 -針對該第四c指令線串,直至發生 線串之該調換事件的該發午’且回應於該針對該第四 之該執行,且繼續兮生’暫時中止該第四指令線串 Λ弟二指令線串之該執行。 2
TW095147158A 2005-12-16 2006-12-15 System and method for grouping execution threads TWI338861B (en)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US11/305,558 US20070143582A1 (en) 2005-12-16 2005-12-16 System and method for grouping execution threads

Publications (2)

Publication Number Publication Date
TW200745953A TW200745953A (en) 2007-12-16
TWI338861B true TWI338861B (en) 2011-03-11

Family

ID=38165749

Family Applications (1)

Application Number Title Priority Date Filing Date
TW095147158A TWI338861B (en) 2005-12-16 2006-12-15 System and method for grouping execution threads

Country Status (4)

Country Link
US (1) US20070143582A1 (zh)
JP (1) JP4292198B2 (zh)
CN (1) CN1983196B (zh)
TW (1) TWI338861B (zh)

Families Citing this family (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20090089564A1 (en) * 2006-12-06 2009-04-02 Brickell Ernie F Protecting a Branch Instruction from Side Channel Vulnerabilities
GB2451845B (en) * 2007-08-14 2010-03-17 Imagination Tech Ltd Compound instructions in a multi-threaded processor
JP5433676B2 (ja) 2009-02-24 2014-03-05 パナソニック株式会社 プロセッサ装置、マルチスレッドプロセッサ装置
US8589922B2 (en) 2010-10-08 2013-11-19 International Business Machines Corporation Performance monitor design for counting events generated by thread groups
US8601193B2 (en) 2010-10-08 2013-12-03 International Business Machines Corporation Performance monitor design for instruction profiling using shared counters
US8489787B2 (en) 2010-10-12 2013-07-16 International Business Machines Corporation Sharing sampled instruction address registers for efficient instruction sampling in massively multithreaded processors
US9152462B2 (en) 2011-05-19 2015-10-06 Nec Corporation Parallel processing device, parallel processing method, optimization device, optimization method and computer program
CN102520916B (zh) * 2011-11-28 2015-02-11 深圳中微电科技有限公司 在mvp处理器中消除纹理延迟和寄存器管理的方法
JP5894496B2 (ja) * 2012-05-01 2016-03-30 ルネサスエレクトロニクス株式会社 半導体装置
US9747107B2 (en) * 2012-11-05 2017-08-29 Nvidia Corporation System and method for compiling or runtime executing a fork-join data parallel program with function calls on a single-instruction-multiple-thread processor
US9086813B2 (en) * 2013-03-15 2015-07-21 Qualcomm Incorporated Method and apparatus to save and restore system memory management unit (MMU) contexts
KR20150019349A (ko) * 2013-08-13 2015-02-25 삼성전자주식회사 다중 쓰레드 실행 프로세서 및 이의 동작 방법
GB2524063B (en) 2014-03-13 2020-07-01 Advanced Risc Mach Ltd Data processing apparatus for executing an access instruction for N threads
GB2540937B (en) * 2015-07-30 2019-04-03 Advanced Risc Mach Ltd Graphics processing systems
GB2544994A (en) * 2015-12-02 2017-06-07 Swarm64 As Data processing
US11537397B2 (en) 2017-03-27 2022-12-27 Advanced Micro Devices, Inc. Compiler-assisted inter-SIMD-group register sharing
CN114035847B (zh) * 2021-11-08 2023-08-29 海飞科(南京)信息技术有限公司 用于并行执行核心程序的方法和装置

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6092175A (en) * 1998-04-02 2000-07-18 University Of Washington Shared register storage mechanisms for multithreaded computer systems with out-of-order execution
US6735769B1 (en) * 2000-07-13 2004-05-11 International Business Machines Corporation Apparatus and method for initial load balancing in a multiple run queue system
US7681018B2 (en) * 2000-08-31 2010-03-16 Intel Corporation Method and apparatus for providing large register address space while maximizing cycletime performance for a multi-threaded register file set
US7984268B2 (en) * 2002-10-08 2011-07-19 Netlogic Microsystems, Inc. Advanced processor scheduling in a multithreaded system
US7430654B2 (en) * 2003-07-09 2008-09-30 Via Technologies, Inc. Dynamic instruction dependency monitor and control system

Also Published As

Publication number Publication date
JP4292198B2 (ja) 2009-07-08
CN1983196B (zh) 2010-09-29
TW200745953A (en) 2007-12-16
JP2007200288A (ja) 2007-08-09
US20070143582A1 (en) 2007-06-21
CN1983196A (zh) 2007-06-20

Similar Documents

Publication Publication Date Title
TWI338861B (en) System and method for grouping execution threads
US9830158B2 (en) Speculative execution and rollback
TWI331300B (en) System and method for processing thread groups in a simd architecture
JP6628801B2 (ja) プロセッサ・コアのための実行ユニット回路、プロセッサ・コア、およびプロセッサ・コア内のプログラム命令を実行する方法
JP7087029B2 (ja) 中央処理装置(cpu)と補助プロセッサとの間の改善した関数コールバック機構
CN104603749B (zh) 用于在单指令多数据simd处理系统中控制发散分支指令的方法和设备
CN105579959B (zh) 硬件加速器虚拟化
Narasiman et al. Improving GPU performance via large warps and two-level warp scheduling
Agarwal Performance tradeoffs in multithreaded processors
CN103917959B (zh) 用于工作项同步的方法和系统
US7398376B2 (en) Instructions for ordering execution in pipelined processes
US20140123150A1 (en) Hardware scheduling of ordered critical code sections
JPH07501163A (ja) マルチプルスレッド用同期コプロセッサ付データ処理システム
US20080141253A1 (en) Cascaded Delayed Float/Vector Execution Pipeline
TW201028918A (en) Multiple processor core vector morph coupling mechanism
US8635621B2 (en) Method and apparatus to implement software to hardware thread priority
TW200525354A (en) Microprocessor and apparatus for performing fast speculative pop operation from a stack memory
TW200809614A (en) System and method for selecting between load or store performance schemes
CN110597606B (zh) 一种高速缓存友好的用户级线程调度方法
US8180998B1 (en) System of lanes of processing units receiving instructions via shared memory units for data-parallel or task-parallel operations
US10152329B2 (en) Pre-scheduled replays of divergent operations
CN116414541B (zh) 兼容多种任务工作模式的任务执行方法和装置
US20080141252A1 (en) Cascaded Delayed Execution Pipeline
Jin et al. Improved GPU SIMD control flow efficiency via hybrid warp size mechanism
Ball et al. Barrier synchronisation in java