TW200809615A - System and method for processing thread groups in a SIMD architecture - Google Patents
System and method for processing thread groups in a SIMD architecture Download PDFInfo
- Publication number
- TW200809615A TW200809615A TW095144756A TW95144756A TW200809615A TW 200809615 A TW200809615 A TW 200809615A TW 095144756 A TW095144756 A TW 095144756A TW 95144756 A TW95144756 A TW 95144756A TW 200809615 A TW200809615 A TW 200809615A
- Authority
- TW
- Taiwan
- Prior art keywords
- instruction
- execution
- clock
- operands
- rate
- Prior art date
Links
- 238000000034 method Methods 0.000 title claims description 10
- 230000032258 transport Effects 0.000 description 15
- 238000010586 diagram Methods 0.000 description 6
- 239000000463 material Substances 0.000 description 3
- 230000006870 function Effects 0.000 description 2
- RYGMFSIKBFXOCR-UHFFFAOYSA-N Copper Chemical compound [Cu] RYGMFSIKBFXOCR-UHFFFAOYSA-N 0.000 description 1
- 241000237536 Mytilus edulis Species 0.000 description 1
- 241001494479 Pecora Species 0.000 description 1
- 239000008280 blood Substances 0.000 description 1
- 210000004369 blood Anatomy 0.000 description 1
- 229910052802 copper Inorganic materials 0.000 description 1
- 239000010949 copper Substances 0.000 description 1
- PCHJSUWPFVWCPO-UHFFFAOYSA-N gold Chemical compound [Au] PCHJSUWPFVWCPO-UHFFFAOYSA-N 0.000 description 1
- 229910052737 gold Inorganic materials 0.000 description 1
- 239000010931 gold Substances 0.000 description 1
- 235000020638 mussel Nutrition 0.000 description 1
- 238000005457 optimization Methods 0.000 description 1
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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline, look ahead
- G06F9/3885—Concurrent instruction execution, e.g. pipeline, look ahead using a plurality of independent parallel functional units
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline, look ahead
- G06F9/3836—Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution
- G06F9/3838—Dependency mechanisms, e.g. register scoreboarding
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline, look ahead
- G06F9/3836—Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution
- G06F9/3851—Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution from multiple instruction streams, e.g. multistreaming
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline, look ahead
- G06F9/3867—Concurrent instruction execution, e.g. pipeline, look ahead using instruction pipelines
- G06F9/3869—Implementation aspects, e.g. pipeline latches; pipeline synchronisation and clocking
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline, look ahead
- G06F9/3885—Concurrent instruction execution, e.g. pipeline, look ahead using a plurality of independent parallel functional units
- G06F9/3887—Concurrent instruction execution, e.g. pipeline, look ahead using a plurality of independent parallel functional units controlled by a single instruction for multiple data lanes [SIMD]
Description
200809615 九、發明說明: 【發明所屬之技術領域】 本發明之f # μ i _ 〈貝知例大體而言係關於單一指令多重資料 ()處理,且更特定言之,係關於一種在SIMD處理器 中用於處理線串群組之系統及方法。 【先前技術】 MD處理將單—指令與多重資料路徑相關聯以使硬 體f效|也執行資料並行算法。SIMD處理器實施之一般優 ',、π s線L制硬體及指令處理上之降低,此為在鎖步中 執行多重資料路徑之結果。 一般而言’增mSIMD處理器中之資料路徑之數目將允 許並行處理更多資料,且將導致效能改良。然而,處理器 大小約束限制資料路徑之數目不能超過某—數目。而且, 若資料路徑之數目過大,則可存在硬體資源之利用不足。 【發明内容】 本發明提供-種具有-改良之SIMD架構之處理器,其 有效利用其硬體資源以達成更高之資料處理通量。根據本 發明之一實施例,藉由以資料處理側之速率的若干分之一 來決定-SIMD處理單元之指令處理側之時脈,使該$咖 處理單元之有效寬度擴展至實際硬體寬度的數倍。根據本 發明之另一實施例,藉由提供多個執行管線來擴展一 SIMD處理單元之有效寬度。藉由使用不同時脈速率且提 供多個執行管線,可根據下式將大量線串在一起分組為一 線串運送隊:運送隊—大小(convoy_size)=(執行管線之數 116834.doc 200809615 目)χ(在各執行管線中之f料路徑之數目)x(f料處理 時脈速率與指令處理側之時脈速率的比率)。 一種根據本發明之一奋 y … 月轭例之SIMD處理單元包含一 時脈速率操作之指令處理部分及_ = 率#作之資料處理部分,’脈速 -時脈速率。較佳地,二時脈速率不同於該第 時脈速率。該指人户理Γ時脈速率至少兩倍於該第— 執彳ΐa &彳77發丨—待在該資料處理部分中 執仃之心令’且收集待在執 丨刀中 元。收集多組該等運算元。 出之“中使用的運算 該資料處理部分包含至 線。該第—執行管線係經^_執行管線及第二執行管 例如,乘與力•綱,而第:類型之指令, 一第二類型之指令,例 \ 仃官線係經組態以執行 例如’諸如铜金 殊函數指令(SFU)。各執行 '心數、對數等之特 令同等組態之資料路#。 e〜、彳多個根據該發出之指 將在該指令處理部分中 料路徑中之—者運算元供應至該等資 應至該第—執行管線中之該等=相關聯之運算元供 與- SFU指令相關聯之運算元供貞=之—者。將—組 該等資料路裎中之一者。 〃…至該第二執行管線中之 /十對-發出之指令收集之 4 弟-及該第二執行管線中之實^、、且的數目較佳等於··該 ::速率與第—時脈速率之比;徑:數目乘以第二 羊…亥弟—時脈速率之比 田。亥弟-時 116834.doc 時針對-發出之指 200809615 應為:2X(該第-及㈣二執 根據本發明之實施例,益兩 恭山, …、而乂貝料處理速率之每一调划 ”八Γ 亥資料處理部分之完全利用。此允呼 该私令處理部分以一更谪 此兄汗 操作,且結果降低對於卿二…里之降低的時脈速率來 【實施方式】 ⑻日令處理部分之硬體要求。 圖1為一實施一具有一 一 f 面 I22之圖形處理單元 (GPU)120之電腦系統1〇〇 間化方塊圖,該介面單元122係 耦接至複數個SIMD處理器124-1,丨 ’ 2,···’ 124-N。該等 8細處理器124可經由—記憶體控制器126存取―區_ 形C憶體13〇。該咖㈣及該區域圖形記憶體⑽代表— 圖形:系、統,該圖形子系統可藉由電腦系統1〇〇之一中央 处單元(CPU) 110使用一儲存在一系統記憶體i i 2中之驅 動程式來存取。 本务明可應用於具有一或多個SIMD處理器124之任何處 理單元。因此,N可為大於或等於〗之任何整數。而且,包 含SIMD處理器124之處理單元可為cpu、Gpu或任何其他 類型之處理單元。 圖2更詳細地說明根據本發明之一實施例之simd處理 器。如圖所示,可為圖1中所示iSIMD處理器124中之任 一者的SIMD處理器200包含一指令處理部分210及一資料 處理部分220。該指令處理部分2 1 〇以該資料處理部分220 之時脈速率之一半的時脈速率來操作。為方便起見,將用 116834.doc 200809615 :指令處理部分210之時脈在下文中稱為τ時脈,而將用於 資料處理部分220之時脈在下文中稱為Η時脈。 指令處理部分21〇包含··一指令調度單元212,其用於發 出-待由該SIMD處理器200執行之指令;一暫存器檔案 214,其儲存用於執行該指令之運算元;及一對運;:收 集單元。6、218。該運算元收集單元2_接至一第—執 行管線222且收集待供應至該第—執行管線如之運曾元 該運算元收集翠元接至一第二執行管線以且㈣ Γ應至該第二執行管線224之運算元。在本文中所說明之 本發明之實施例中,該第一執行管線係經組態以執行一第 -類型之指令,例如乘與加(MAD),而該第二 呈組態以執行一第二類型之指令,例如,諸如倒數:指 數、對數荨之特殊函數指令 ⑽、以中之任-者^ 某些指令可在執行管 222 994 Φ 仃。舉例而言,可在執行管線 、中之任一者中執行指令MOV及FMUL。該等 管線222、224中之每_去仏曰 Θ等執仃 料路徑。 者均具有8個並行且同等組態之資 當指令調度單元212發出—指令時 將管線組態信號發送至兩個執行管線222 早一:2 t該指令為MAD型’則將管線組態信號發送至第-執^ 線222。若該指令為SFu 吕 二執行管線224。 ’則將管線組態信號發送至第 當發出一指令時,則和 該遮罩對應於與所發出二:度單元212亦傳輸-遮罩, .9令相關聯之一(在本文說明之 116834.doc 200809615 實施例中,為Μ個一 祕型,則運算元收集單元216=隊。若發出之指令為 該線串運送隊相關聯的暫存器/子讀案214内之與 串,收集執行發出之指令所需的隊中^每—線 算元可包含-或多個運算元μ -早-組運 聯的一組運算元包人 巾’與MAD型之指令相關 入相關n έ 個運算元,且與SFU型之指 7相關聯的一組運算元包含一個運算元。 (才曰 若發出之指令為SFU型,則運算=华 存器檔案214内之盥線_ n 茱早凡218項取暫 ,軍… "運达隊相關聯的暫存器,且針對 一运隊中之各線串’收集執行發出之指令 時脈之各週期而言,運算元收集單元216二 ^者月匕夠收集16組運算元。將此等組以每Η時脈週期 ^組之速率供應至執行管線222、224。因此,以兩個丁時 ==四個Η時脈週期來處理與線串運送隊相關聯㈣ 在一對累加器226、228中收集來自執行管線222、咖之 執行結果。該累加器226收集來自執行管線如之執行社 果’而累加㈣8收集來自執行管線以之執行結果。該等 執行管線222、224與該等累加器咖、咖為資料處理部分 220之-部分,且以兩倍於指令處理部分21()之時脈速率的 時脈速率來操作。因暫存器檔案214以丁時脈週期操作,因 此累加器226、228每兩個η時脈週期或每—τ時脈週期將 執行結果回寫至該暫存器檔案214。因此,在執行結果回 寫至暫存器檔案214之前,累加器226、228中之每—者收 116834.doc -10- 200809615 集16組執行結果。 、=於在執行管線222、224中進行之操作類型主要為數學 運异,因此將Η時脈組態為快速時脈。然而,針對數學運 $之有效運算速度通常不同於用於指令處理及用於暫存器 ^ 214之有效運算速度。指令處理及暫存器檔案214使用 之時脈將更有效地運算。因此,使Μ·處理器細組 態有兩個時脈域,纟中以了時脈速率進行指令處理,且以 等於T時脈速率兩倍之H時脈速率進行資料處理。 圖3為指令處理部分21〇之指令調度單元212的功能方塊 ^該指令調度單元212包含-具有複數個槽之指令緩衝 益31〇(每線串運送隊—個槽)。在此例示性實施例中,槽之 數目為24個’且各槽可保持多達兩個來自—對應線串運送 隊的指令。若該等槽中之任一槽具有—用於另一指令的空 間’則自記憶體進行-提取312至一指令快取記憶體314 中。在將儲存於指令快取記憶體314中之指令添加至追縱 ,,處於飛行狀態(inflight)"指令(亦即,已發出但尚未完成 之指令)的計分板322中且置放於指令緩衝器训之空閒空 間之前,該指令經歷解碼316。在解碼指令時,可對該^ 令是否為MAD型或為SFU型進行判定。 該指令調度單元212進一步包含—發出邏輯32〇。該發出 邏輯320檢查該計分板322,且將自指令緩衝器31〇發出_ 不依賴該等,,處於飛行狀態”指令中之任一指令的指令“士 合自指令緩衝器3H)之發出’發出邏輯咖將管線組態信號 —對應於—與發出之指令 I16834.doc -II - 200809615 相關聯的線串運送隊的遮 °亥遮罩私不在該運送隊中 線串中之何者係有效的,亦即,應由發出之指令實現。 圖4進-步詳細說明指令緩衝器31〇。如圖所示, 具有24個槽。在指令緩衝㈣之各槽可 達兩個來自-(32個一群組)線串運送隊的指令。在 之實例中’具有Η)2及11G之程式計數器之來自線串運送: (Τ0至Τ31)的兩個指令儲存在指令緩衝器之槽〇中。此 等指令將為MAD型或SFU型。若一指令為mad型且自扑人 緩衝器31G發出,則將在運算元收集單元216中收集血= 運送隊(το至T31)相關聯之32組運算元且供應至執行管線 222。在另-方面,若—指令為SFU型且自指令緩衝器㈣ 發出,則將在運算元收集單元218中收集與線串運送隊⑽ 至丁31)相關聯之32組運算元且供應至執行管線224。 圖5A-5D說明線串運送隊(丁〇至丁31)經由執行管線η]之 選定處理狀態,該執行管線222係經組態以執行自指令緩 衝器310發出之MAD指令,例如指令a。圖5A展示在已經 過一個Η時脈週期後,執行管線222之狀態。如圖所示,在 一個Η時脈週期之後,分別與線串τ〇、Τ1、χ2、Τ3、τ4、 Τ5、Τ6、Τ7相關聯之標識為〇、 組運算兀進入執行管線222中,且由指令a之第一管級對其 操作。在下一Η時脈週期中,8組運算元之一新群組將進入 執行管線222中,且將由指令Α之第一管級對其操作,且8 組運异元之初始群組將已向下推進一個管級,且將進一步 由指令Α之第二官級對其操作。在四個Η時脈週期之後, 116834.doc -12- 200809615 與一線串運送隊相關聯之所有組運算元將已進人執行管線 ^22中。因此,指令A之各管級將有效四個Η時脈週期。在 第五個Η時脈週期上,其將根據新發出之mad型的指 組態。 7 圖5 B展示在與一線串運送隊相關聯之所有組運算元已進 入執行管線222中且已由指令A之少數管線對其操:之後, 執行管線222之狀態。圖⑽示在任何組運算元正要離開 執行管線222之前,執行管線222之狀態。圖⑺展示在圖 %中展示之狀態之後3個11時脈週期上時,執行管線a?的 狀態。在經過-或多個Η時脈週期之後,與線串運送隊相 關聯之所有組運算元已離開執行管線222。 在一較佳實施例中,當自指令緩衝器310發出指令時, 發出邏輯320在MAD型指令與SFU型指令之間交替。以此 方式,執仃官線222、224兩者皆可完全保持"忙碌"。若指 令緩衝器31G僅含有單個類型之指令,則可允許連續發出日 MAD型指令或SFU型指令。然而’ 32個線串之運送隊要求 執行2個T時脈或4個η時脈,且因此,可至多每隔一個丁時 脈發生同一類型指令之連續發出(例如,mad_mad或咖_ SFU)。在另—方面,將不同類型之指令交替發出至兩個管 線允許每T時脈發出—指令,且提供更高之效能。編以 可幫助指令之排程以確保不同類型之指令儲存於指令緩衝 :31〇中。在程式中,使不同運送隊稱微分開可亦改良效 圖6為說明當執行 一根據本發明之一實施例之用於 一線 116834.doc -13 - 200809615 :運适隊的指令時’由SIMD處理器進行之處理步驟的 "“王圖。在步驟610中’自指令緩衝器31〇發出指令。然 =自暫存器樓案214讀出多組運算元,且對應於發出: ^令的類型,在運算元收集單仏16或218中收集該等組運 -兀(步驟612)。在步驟614中’對應於發出之指令的類型 的執仃管線222或224經組態以執行發出之指令。在步驟 616中,使收集之運算元沿執行管線向下推進,且由發出 之指令的多個管級對其進行操作。連續進行步驟“々及步 驟616 ’直至在步驟612中收集之所有運算元已離開執行管 線為止。當進行步驟614及616時,累加器226、228收集離 開二行管線222、224之運算元,且每隔—個_脈將該等 運异兀向回寫入至暫存器檔案216中(亦即,—次半個運送 隊)。當在步驟612中收集之所有運算元已離開執行管線時 (步驟620),針對在步驟61〇中發出之指令㈣助處理結 束。在圖5A至圖5D中所展示之實例中,在圖^中所展示 之執行管線的狀態之後的兩個Η時脈後,發生初始向回寫 =至暫存器檔案216,且在圖5C中所展示之執行管線的狀 態之後的四個Η時脈後,發生最終向回寫入至暫存器檔案 216。 。田 / 藉由上文所描述之本發明之實施例,增加了經由一 處理器處理之資料的量而不增加執行管線之實體資 料寬度。結果,增加了_處理器之有效指令處理速 率 〇 此外,本發明提供-種對線串進行分組的靈活方式。在 116834.doc -14- 200809615 上述本發明之實施例中’根據下 32個線串之群組:運送隊—大小,」 4組態為— 執行管線中之資料路徑之數 :“之數目)x(在各 之比率㈣㈣。本dtr物Taf脈逮率 Θ所知供之靈活性在於·· 大小。舉例而言’當在執行管線之間交替時,:由 2弟四個T時脈上或每隔_射時脈將指令發出至各= 吕線,運送隊大小可增加至64 0 具有較大之運送隊大小之優點為:在圖形處理中, 執仃之指令為諸如紋理的記憶體存取。若存在大群組之相 關記憶體存取而非小群組之記憶體存取,則由記憶體系统 更有效地執行此等指令。藉由將線串叢集在—起或運送, 本發明提供更大之記憶體效率。使用過大之運送隊的不足 為:諸如分支之物導致在-運送隊中之某些線串執行與在 同-運送隊中之其他線串執行之不同的指令。在該情況 下’由於在同-運送隊内之所有線串一次僅可執行一個指 令,因此將降低效能。 雖然上述針對本發明之實施例,但可設計本發明之其他 及進-步實施例而不偏離其基本料。本發明之範嗜係由 以下申請專利範圍確定。 【圖式簡單說明】 圖1為實施具有複數個SIMD處理器之GPU之電腦系統的 簡化方塊圖。 圖2為根據本發明之一實施例之SIMD處理器的方塊圖。 圖3為圖2中所示之SIMD處理器之指令調度單元的方塊 116834.doc -15- 200809615 圖。 圖4為展示指令緩衝器之内容的概念圖。 圖5A-5D說明經由SIMD執行管線對 '線串群組的處理。 …圖6為說明當執行用於線串群組的指令時,由謝d處理 ^進行之處理步驟的流程圖。 【主要元件符號說明】 電腦系統 中央處理單元 系統記憶體 圖形處理單元 介面單元 simd處理器 記憶體控制器 區域圖形記憶體 SIMD處理器 指令處理部分 指令調度單元 暫存器檔案 運算元收集單元 運算元收集單元 資料處理部分 第一執行管線 第二執行管線 累加器 100 110 112 120 122 124-1,124-2,…,124-N 126 130 200 210 212 214 216 218 220 222 224 226 116834.doc -16- 200809615 228 累加器 310 指令緩衝器 314 指令快取記憶體 320 發出邏輯 322 計分板 116834.doc - 17 -
Claims (1)
- 200809615 十、申清專利範圍·· L :=由複數個執行管線來處理電 其包括以下步驟·· 曰7 I万凌, 發二用於-多個線串群組的指令; 元;及 夺脈速率收集多組與該指令相關聯之運算 以一第二時脈速率將 執行管線中之_者,+所收集之運^凡供應至該等 其中在該群矣且φ 行其绩由 夕個線串的數目等於在該複數個執 仃吕線中所提供之資 執 率叙Μ 士 料L的總數目乘以該第二時脈速 羊與5亥弟一時脈速率之比率。 2 ·如δ月求項1之方法, W /、中以該第一時脈速率彳列地發出 才曰7流,且針對該等指令 田 速率收集多組運算元。者’以該第-時脈 3·如請求項2之方法,其進 少兩種類型中之—者的牛驟=將該^日令分類為至 的步驟’其中將與一第—類型之若 將ill第目J的若干運算元供應至該第-執行管線,且 該第二執若干指令相關聯的若干運算元供應至 4.如請求項3之方法,其中將一 該=執行管線及該第二執行管之者一指令供應至 I :::Γ:之方法’其中該第二時脈速率為該第-時脈 疋千的至少兩倍。 I如睛求項1之方法,其中該指令包括一在皮, 7匕祜在一序列將由該 116834.doc 200809615 線串群組執行之指令中的指令,且該等多組運算元中之 每一組對應於在該群組中之該等線串中的一者。 7.如請求項6之方法,其中該發出之步驟包含自一包括複 數個指令之指令緩衝器選擇一指令的步驟。 116834.doc
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US11/292,614 US7836276B2 (en) | 2005-12-02 | 2005-12-02 | System and method for processing thread groups in a SIMD architecture |
Publications (2)
Publication Number | Publication Date |
---|---|
TW200809615A true TW200809615A (en) | 2008-02-16 |
TWI331300B TWI331300B (en) | 2010-10-01 |
Family
ID=38120161
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW095144756A TWI331300B (en) | 2005-12-02 | 2006-12-01 | System and method for processing thread groups in a simd architecture |
Country Status (4)
Country | Link |
---|---|
US (1) | US7836276B2 (zh) |
JP (1) | JP4292197B2 (zh) |
CN (1) | CN100538628C (zh) |
TW (1) | TWI331300B (zh) |
Families Citing this family (25)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7925860B1 (en) * | 2006-05-11 | 2011-04-12 | Nvidia Corporation | Maximized memory throughput using cooperative thread arrays |
US7484076B1 (en) * | 2006-09-18 | 2009-01-27 | Nvidia Corporation | Executing an SIMD instruction requiring P operations on an execution unit that performs Q operations at a time (Q<P) |
JP4973355B2 (ja) * | 2007-07-18 | 2012-07-11 | トヨタ自動車株式会社 | 内燃機関の排気浄化システム |
US8578387B1 (en) * | 2007-07-31 | 2013-11-05 | Nvidia Corporation | Dynamic load balancing of instructions for execution by heterogeneous processing engines |
US9552206B2 (en) * | 2010-11-18 | 2017-01-24 | Texas Instruments Incorporated | Integrated circuit with control node circuitry and processing circuitry |
US9830156B2 (en) * | 2011-08-12 | 2017-11-28 | Nvidia Corporation | Temporal SIMT execution optimization through elimination of redundant operations |
CN105955704B (zh) * | 2011-11-30 | 2018-12-04 | 英特尔公司 | 用于提供向量横向比较功能的指令和逻辑 |
US10318291B2 (en) | 2011-11-30 | 2019-06-11 | Intel Corporation | Providing vector horizontal compare functionality within a vector register |
CN104081340B (zh) * | 2011-12-23 | 2020-11-10 | 英特尔公司 | 用于数据类型的下转换的装置和方法 |
JP2014016894A (ja) | 2012-07-10 | 2014-01-30 | Renesas Electronics Corp | 並列演算装置、並列演算装置を備えたデータ処理システム、及び、データ処理プログラム |
KR101319287B1 (ko) | 2013-03-08 | 2013-10-17 | 주식회사 에이디칩스 | 파이프라인 구조를 갖는 프로세서 |
US9183611B2 (en) * | 2013-07-03 | 2015-11-10 | Apple Inc. | Apparatus implementing instructions that impose pipeline interdependencies |
US9772867B2 (en) * | 2014-03-27 | 2017-09-26 | International Business Machines Corporation | Control area for managing multiple threads in a computer |
EP3131004A4 (en) * | 2014-04-11 | 2017-11-08 | Murakumo Corporation | Processor and method |
KR102332523B1 (ko) | 2014-12-24 | 2021-11-29 | 삼성전자주식회사 | 연산 처리 장치 및 방법 |
US9727944B2 (en) * | 2015-06-22 | 2017-08-08 | Apple Inc. | GPU instruction storage |
GB2540937B (en) * | 2015-07-30 | 2019-04-03 | Advanced Risc Mach Ltd | Graphics processing systems |
US9921838B2 (en) * | 2015-10-02 | 2018-03-20 | Mediatek Inc. | System and method for managing static divergence in a SIMD computing architecture |
US10410097B2 (en) | 2016-06-06 | 2019-09-10 | Mutualink, Inc. | System and method for distributed intelligent pattern recognition |
US11016932B2 (en) * | 2017-09-21 | 2021-05-25 | Alibaba Group Holding Limited | Systems, methods, and apparatuses for simplifying filesystem operations utilizing a key-value storage system |
CN112424781B (zh) * | 2018-06-19 | 2024-04-26 | 锡克拜控股有限公司 | 数字文件防伪保护 |
US11360778B2 (en) * | 2019-12-11 | 2022-06-14 | Oracle International Corporation | Dynamic insights extraction and trend prediction |
US20210182073A1 (en) * | 2019-12-13 | 2021-06-17 | Yale University | Modular, extensible computer processing architecture |
US20230069890A1 (en) * | 2021-09-03 | 2023-03-09 | Advanced Micro Devices, Inc. | Processing device and method of sharing storage between cache memory, local data storage and register files |
US20230086989A1 (en) * | 2021-09-17 | 2023-03-23 | Nvidia Corporation | Parallel processing of thread groups |
Family Cites Families (48)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5421028A (en) | 1991-03-15 | 1995-05-30 | Hewlett-Packard Company | Processing commands and data in a common pipeline path in a high-speed computer graphics system |
US5579473A (en) | 1994-07-18 | 1996-11-26 | Sun Microsystems, Inc. | Interface controller for frame buffer random access memory devices |
US5815166A (en) | 1995-03-24 | 1998-09-29 | 3Dlabs Inc., Ltd. | Graphics subsystem with slaveable rasterizer |
US6178481B1 (en) | 1995-12-18 | 2001-01-23 | Texas Instruments Incorporated | Microprocessor circuits and systems with life spanned storage circuit for storing non-cacheable data |
US5999727A (en) * | 1997-06-25 | 1999-12-07 | Sun Microsystems, Inc. | Method for restraining over-eager load boosting using a dependency color indicator stored in cache with both the load and store instructions |
US5890008A (en) * | 1997-06-25 | 1999-03-30 | Sun Microsystems, Inc. | Method for dynamically reconfiguring a processor |
US5958047A (en) * | 1997-06-25 | 1999-09-28 | Sun Microsystems, Inc. | Method for precise architectural update in an out-of-order processor |
US5978864A (en) * | 1997-06-25 | 1999-11-02 | Sun Microsystems, Inc. | Method for thermal overload detection and prevention for an intergrated circuit processor |
US5860018A (en) * | 1997-06-25 | 1999-01-12 | Sun Microsystems, Inc. | Method for tracking pipeline resources in a superscalar processor |
US5838988A (en) * | 1997-06-25 | 1998-11-17 | Sun Microsystems, Inc. | Computer product for precise architectural update in an out-of-order processor |
US5948106A (en) * | 1997-06-25 | 1999-09-07 | Sun Microsystems, Inc. | System for thermal overload detection and prevention for an integrated circuit processor |
US6658447B2 (en) * | 1997-07-08 | 2003-12-02 | Intel Corporation | Priority based simultaneous multi-threading |
GB9716251D0 (en) | 1997-08-01 | 1997-10-08 | Philips Electronics Nv | Attribute interpolation in 3d graphics |
US5996060A (en) | 1997-09-25 | 1999-11-30 | Technion Research And Development Foundation Ltd. | System and method for concurrent processing |
US6771264B1 (en) | 1998-08-20 | 2004-08-03 | Apple Computer, Inc. | Method and apparatus for performing tangent space lighting and bump mapping in a deferred shading graphics processor |
WO2000011607A1 (en) | 1998-08-20 | 2000-03-02 | Apple Computer, Inc. | Deferred shading graphics pipeline processor |
US6704925B1 (en) | 1998-09-10 | 2004-03-09 | Vmware, Inc. | Dynamic binary translator with a system and method for updating and maintaining coherency of a translation cache |
US6266733B1 (en) | 1998-11-12 | 2001-07-24 | Terarecon, Inc | Two-level mini-block storage system for volume data sets |
US6279100B1 (en) * | 1998-12-03 | 2001-08-21 | Sun Microsystems, Inc. | Local stall control method and structure in a microprocessor |
US6222550B1 (en) | 1998-12-17 | 2001-04-24 | Neomagic Corp. | Multiple triangle pixel-pipelines with span-range pixel interlock for processing separate non-overlapping triangles for superscalar 3D graphics engine |
US6397300B1 (en) | 1999-06-25 | 2002-05-28 | International Business Machines Corporation | High performance store instruction management via imprecise local cache update mechanism |
US6446166B1 (en) | 1999-06-25 | 2002-09-03 | International Business Machines Corporation | Method for upper level cache victim selection management by a lower level cache |
US6434667B1 (en) | 1999-06-25 | 2002-08-13 | International Business Machines Corporation | Layered local cache with imprecise reload mechanism |
US6418513B1 (en) | 1999-06-25 | 2002-07-09 | International Business Machines Corporation | Queue-less and state-less layered local data cache mechanism |
US6405285B1 (en) | 1999-06-25 | 2002-06-11 | International Business Machines Corporation | Layered local cache mechanism with split register load bus and cache load bus |
US6463507B1 (en) | 1999-06-25 | 2002-10-08 | International Business Machines Corporation | Layered local cache with lower level cache updating upper and lower level cache directories |
US6559852B1 (en) | 1999-07-31 | 2003-05-06 | Hewlett Packard Development Company, L.P. | Z test and conditional merger of colliding pixels during batch building |
US6279086B1 (en) | 1999-08-04 | 2001-08-21 | International Business Machines Corporation | Multiprocessor system bus with combined snoop responses implicitly updating snooper LRU position |
US6819325B2 (en) | 2000-03-07 | 2004-11-16 | Microsoft Corporation | API communications for vertex and pixel shaders |
KR100333375B1 (ko) * | 2000-06-30 | 2002-04-18 | 박종섭 | 반도체 소자의 게이트 제조방법 |
US6750869B1 (en) | 2000-10-13 | 2004-06-15 | Sony Corporation | Method and design for improved fragment processing |
JP2003035589A (ja) | 2001-07-19 | 2003-02-07 | Yokogawa Electric Corp | フロート・レベル計 |
US6947047B1 (en) * | 2001-09-20 | 2005-09-20 | Nvidia Corporation | Method and system for programmable pipelined graphics processing with branching instructions |
US20030097395A1 (en) * | 2001-11-16 | 2003-05-22 | Petersen Paul M. | Executing irregular parallel control structures |
US6816161B2 (en) | 2002-01-30 | 2004-11-09 | Sun Microsystems, Inc. | Vertex assembly buffer and primitive launch buffer |
US7185181B2 (en) * | 2002-08-05 | 2007-02-27 | Intel Corporation | Apparatus and method for maintaining a floating point data segment selector |
US7328438B2 (en) * | 2003-03-27 | 2008-02-05 | International Business Machines Corporation | Deallocation of computer data in a multithreaded computer |
US7714858B2 (en) | 2003-04-18 | 2010-05-11 | Hewlett-Packard Development Company, L.P. | Distributed rendering of interactive soft shadows |
US7015718B2 (en) * | 2003-04-21 | 2006-03-21 | International Buisness Machines Corporation | Register file apparatus and method for computing flush masks in a multi-threaded processing system |
US7103720B1 (en) | 2003-10-29 | 2006-09-05 | Nvidia Corporation | Shader cache using a coherency protocol |
US7139003B1 (en) | 2003-12-15 | 2006-11-21 | Nvidia Corporation | Methods of processing graphics data including reading and writing buffers |
US7904905B2 (en) * | 2003-11-14 | 2011-03-08 | Stmicroelectronics, Inc. | System and method for efficiently executing single program multiple data (SPMD) programs |
US8274517B2 (en) | 2003-11-14 | 2012-09-25 | Microsoft Corporation | Systems and methods for downloading algorithmic elements to a coprocessor and corresponding techniques |
US7278011B2 (en) * | 2004-04-08 | 2007-10-02 | International Business Machines Corporation | Completion table configured to track a larger number of outstanding instructions without increasing the size of the completion table |
US7552316B2 (en) | 2004-07-26 | 2009-06-23 | Via Technologies, Inc. | Method and apparatus for compressing instructions to have consecutively addressed operands and for corresponding decompression in a computer system |
US7237094B2 (en) * | 2004-10-14 | 2007-06-26 | International Business Machines Corporation | Instruction group formation and mechanism for SMT dispatch |
US7254697B2 (en) * | 2005-02-11 | 2007-08-07 | International Business Machines Corporation | Method and apparatus for dynamic modification of microprocessor instruction group at dispatch |
US7447873B1 (en) * | 2005-11-29 | 2008-11-04 | Nvidia Corporation | Multithreaded SIMD parallel processor with loading of groups of threads |
-
2005
- 2005-12-02 US US11/292,614 patent/US7836276B2/en active Active
-
2006
- 2006-12-01 TW TW095144756A patent/TWI331300B/zh active
- 2006-12-04 CN CN200610161033.XA patent/CN100538628C/zh active Active
- 2006-12-04 JP JP2006327322A patent/JP4292197B2/ja active Active
Also Published As
Publication number | Publication date |
---|---|
JP2007157154A (ja) | 2007-06-21 |
TWI331300B (en) | 2010-10-01 |
US20070130447A1 (en) | 2007-06-07 |
US7836276B2 (en) | 2010-11-16 |
CN100538628C (zh) | 2009-09-09 |
JP4292197B2 (ja) | 2009-07-08 |
CN1983165A (zh) | 2007-06-20 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TW200809615A (en) | System and method for processing thread groups in a SIMD architecture | |
US9830156B2 (en) | Temporal SIMT execution optimization through elimination of redundant operations | |
TWI308295B (en) | Apparatus and method for switchable conditional execution in a vliw processor | |
US10949328B2 (en) | Data flow graph computation using exceptions | |
US8135941B2 (en) | Vector morphing mechanism for multiple processor cores | |
WO2019194915A1 (en) | Apparatuses, methods, and systems for unstructured data flow in a configurable spatial accelerator | |
US9612811B2 (en) | Confluence analysis and loop fast-forwarding for improving SIMD execution efficiency | |
DE102012220029A1 (de) | Spekulative Ausführung und Zurücksetzen | |
KR101496597B1 (ko) | 반도체 칩 상에서 구현되는 벡터 논리 감소 연산 | |
WO2001016717A1 (fr) | Unite de commande et support d'enregistrement | |
CN109478140A (zh) | 基于块的处理器中的加载-存储顺序 | |
TW200910096A (en) | Reordering data responses | |
Chen et al. | Characterizing scalar opportunities in GPGPU applications | |
CN104011682B (zh) | 对应用事件响应进行推测性处理的方法和计算机系统 | |
KR20190020672A (ko) | Simd 게더 및 카피 동작들을 수행하기 위한 방법 및 장치 | |
Iliakis et al. | Repurposing GPU microarchitectures with light-weight out-of-order execution | |
Lin et al. | On-GPU thread-data remapping for nested branch divergence | |
CN104866458B (zh) | 一种流水线可逆cpu设计与仿真系统 | |
US11416261B2 (en) | Group load register of a graph streaming processor | |
US20220374286A1 (en) | Parallel processing architecture for atomic operations | |
Chang et al. | Hydra: An energy-efficient programmable cryptographic coprocessor supporting elliptic-curve pairings over fields of large characteristics | |
Ho | Mechanisms towards energy-efficient dynamic hardware specialization | |
Farahini et al. | Atomic stream computation unit based on micro-thread level parallelism | |
Miao et al. | Research and implementation of micro-architecture for Elliptic Curve Cryptography processor | |
Soliman | Mat-core: a decoupled matrix core extension for general-purpose processors |