TWI354241B - Methods and apparatus for graphics processing - Google Patents

Methods and apparatus for graphics processing Download PDF

Info

Publication number
TWI354241B
TWI354241B TW96104078A TW96104078A TWI354241B TW I354241 B TWI354241 B TW I354241B TW 96104078 A TW96104078 A TW 96104078A TW 96104078 A TW96104078 A TW 96104078A TW I354241 B TWI354241 B TW I354241B
Authority
TW
Taiwan
Prior art keywords
processing
logic unit
data
mode
instruction
Prior art date
Application number
TW96104078A
Other languages
English (en)
Other versions
TW200727198A (en
Inventor
Jeff Jiao Yang
Chiente Ho
Original Assignee
Via Tech Inc
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 Via Tech Inc filed Critical Via Tech Inc
Publication of TW200727198A publication Critical patent/TW200727198A/zh
Application granted granted Critical
Publication of TWI354241B publication Critical patent/TWI354241B/zh

Links

Landscapes

  • Image Processing (AREA)
  • Image Generation (AREA)
  • Executing Machine-Instructions (AREA)

Description

1354241 九、發明說明: 【發明所屬之技術領域】 本發明係有關於一種繪圖處理裝置,特別是有關於複數之算 術邏輯單元中處理指令及資料之繪圖處理裝置。 【先前技術】 ί線计鼻或處理架構為眾所週知,而此類管線架構隨深度(例 如.官線階層數量)而不同。許多管線架構包括五個基本管線階 層.(1)讀取、(2)解碼、(3)執行、(4)記憶體存取、以及(5) 寫回階層。這些階層之一般操作為人所熟知。 請參考第1圖,係顯示此一基本管線架構之部份。具體地, 如第1圖所示之一暫存檔12及一算術邏輯單元(ALu) 14。一管 線架構之執行階層包括一或多個處理單元(例如:—算術邏輯單 元),用以實現與指令相關之處理操作。第i圖之算術邏輯單元 14以不同虛線表示多個操作週期(例如:時序週期)。 “關於該暫存檔!2,眾所皆知’係由系統記憶_取資料至一 “暫存檔”,其為一高速記憶區,被配置為暫存器。當資料於該 暫存構i2中時,通常可於-單-時序週期中,被任一管線階層(例 如:讀取、執行等)單元娜。該键檔U祕第i圖之底曰部附 近(於虛線處)描述,以表示由該執行階層至該暫存檔之資料 寫回傳送。為簡化說明,其它管線階層並未被描述。 眾所皆知’為改善多維運算之效能’已開發單指令、多資料
Client’s Docket N〇.:P2006063 TT*s Docket No: 0608-A41094-TW/Final/Rita/2007/02/02 MD)之架構。-典型單指令多資料阳则架構使一指令能同 2作幾個心尤其,單齡多她测刺具有可將-些資料元龍m拥或記㈣位置之伽。透過硬體平行 執仃H指令執行許多操作,透過減少程式之大小及控制, 達到顯者之效能改善及硬體之簡化。某些單指令多資料(S工⑽ 架構乃運作於在顿運算元中能被平行簡立地執行之元件。 現在參考第2圖’類似於第1酸構之方塊圖,係顯示複數 之鼻術邏輯單元16、18、20、芬^ 夕 20及22。此一咼效能架構應用於許 多單指令錢料(SIMD)架射。對此—_之高效輯作而言, 資料被排序於該暫存檔12中,可使在相同時序週期之運算元(或 者其它相_料〉立即地被載人(平行)至各種算魏輯單元。 儘官透過第2圖架構可瞭顧善之效能,飾仍需針對此架 構更進一步地改善。 【發明内容】 有鑑於此,本發日月提供_種於多數算術邏輯單元中用喊行處理 #作之全新方法及裝置。根據—實施靖提供之—賴處理裝置,此 裝置係包括:複數之算術邏輯單元(則s),被配置以平行處理獨立之 指令。預處理邏輯單元,被配置以由一暫存稽接收指令及相料, 以指向該等算術邏解元其中之—處理,該賊理邏輯單元被配置以 選擇性雜式化所制欠指令,用以傳送至該等算術邏輯單元。後處理 邏輯單元’被配置以接收該等算術邏輯單元輪出之資料,並將所接收
Client's Docket N〇.:P2006063 TT^ Docket No: 0608-A41094-TW/Final/Rita/2007/02/02 1354241 資料傳送及寫回至該暫存播, 細等_雜^增,===性祕 -算術邏輯單元触資料。 卻存檔’如透過-單 ,,圖處理裝置係包括:-暫存檔、邏輯單 ::數之執行緒、以及複數之算術邏輯單元。該 二步^料配置邏輯單元,於一第一處理模式中,能選擇性地配置 :-特·有關之暫存檔彻資料,以依序傳送至該等算術邏 麟擇性地配置與一特定執 打緒有關之暫存檔之連序資料’以峨送至相異之算觸解元。 於另實獅彳巾,彳級供—種帛:ί^理複數之算術邏輯單元 (AL㈣操作之方法,該方法包括:由—暫存播娜一指令及相關資 料;決定-操倾式;當敎簡式為—水平狱時,直接將該操取 指令及相關資料傳送至該等算術邏輯單元。該方法更進一步包括將該 擷取指令及相關資料重新格式化’因此,最初被格式化以傳送至鄰近 該等算術邏輯單元之項目,被重新格式化以傳送至一單一算術邏輯單 元’而接著將重新格式化之指令及相關資料傳送至該等算術邏輯單元。 於另一實施例中,係提供一種用於處理指令及資料之方法。該方 法由一暫存檔接收指令及相關資料,並為已接收之指令及相關資料決 定兩模式中何者為有效。該方法進一步於一第一模式有效時,直接將 該指令及資料傳送至複數之算術邏輯單元處理,而不需重組,並且於 一第二模式有效時,重組該指令及資料,以及將該指令及資料傳送至
Client’s Docket Ν〇.:Ρ2006063 TT’s Docket No: 06O8-A41O94-TW/Final/Rita/2007/02/02 1354241 該等算術邏輯單元處理。 為使本發明之上述目的、特徵和優點能更明顯易懂,下文特 舉實施例’並配合所附圖示,詳細說明如下。 【實施方式】 現在請配合圖示參考對實施例詳細之說明。配合圖示所說明 之實施例’並非用以限制所揭露之該實施例或其它實施例。反之, 乃用以包括所有之選擇、變更、及替代。 • 於本發明實施例之敘述過程中,當各相關資料(例如:運算元) 已於算術賴單it (ALUs)巾fSJ時平行處辦,往往可制更有效 地處理某些心令(SIMD或其它指令)的結果。而且部分内容更提 到^相關=貝料同時位於單一算術邏輯單元(ALU)處理時,整體 之计算效能亦獲得更進—步的改善。在單—架構或應用導向之實 例裡,於電腦繪圖領域中,通常當相關資料在平行之算術邏輯單 凡(ALUs)中處理時’透過繪圖硬體(例如:一幾何加速器)所執 鲁饤之某些運算能更有效地執行,然而其它計算可能僅需透過一單 一算術邏輯單元(ALU)g卩缺有效地纽。更具體言之,不難發 見在某二例子巾’當設計成相關資料乃在平行算術邏輯單元 (ALUS)中處理時,許多幾何著色程式(geometry shader 之操作可更有效率,而在某些例子中,當設計成相關 資料乃在-單-算術邏輯單元(勘)中處理時,某些像素著色程 式之執行效率亦可獲得提昇。
Client's Docket No.:P2〇〇6〇63 ΤΓ s Docket No: 0608^41094^^^2007/02/02 1354241 _ 本發明實施例所提供之架構及方法適合處理兩種類型:其一 為於複數平行之算術邏輯單元(ALUs)中以共同方式處理指令及 相關資料’而另-為於一單一算術邏輯單元(ALU)中處理指令及 相關資料。至於所使用之名稱,通常以“水平”或“水平處理” 描述’於複數之算術邏輯單元(ALUs)中,處理指令及相關資料係 採共同方式,而“垂直”及“垂直處理,,將被用以描述,於一單 -算術邏輯單元(ALU)中,處理指令及相關資料係採一連串或連 •、續方式。應當了解到“水平,’或“垂直,,並未具有特殊或特別之 3思,而僅用於方便描述本發明實施例之不同架構及處理模式。 • 進一步地說明,本發明實施例更明確地提供有關於指令及相 關資料動態重新配置及動態處理之架構及方法,因此,指令及相 關資料可利用相同之硬體以一水平方式或垂直方式處理。藉由提 供此類實關而減彡、硬體之數量(例如:額外之算術邏輯單元 (ALUs)及控制邏輯單元),而藉由以不同處理模式處理不同類型 鲁之才曰令及凟算法改善速度及效能。於2006年4月19日提出之美 國專利申請案11/4〇6,543中,係揭露於電腦繪圖硬體場合中之 此-常用(例如:環境)架構,於此作為參考文件。而此申請案提 及,欲由-組執行單元_行共_作,該單組執行單元槔必須 具有進行各種著色程式之處理能力,這些著色程式包括:頂點著 色程式(vertex shader program)、幾何著色程式加咖杜吓 shader program)、以及像素著色程式(pixel吐时过
Client’s Docket Ν〇·:Ρ2006063 TT*s Docket No: 0608-A41094-TW/Final/Rita/2007/02/02 1354241 • - PrQgram)。且此巾請案更進—步提及,將該組執行單元蟑之資 源分配至各鮮色㈣可_齡線贿最大化之效果(或 者將於任-耗程式中所發生之_鼓最少㈣_細。如 上所述,對域何著色程式,水平處輯常效錄好而對於像 素著色程式而言’垂直處理通常效能較好。而本發明實施例之重 細己置架制尤其適合具有—組單—共享執行單鱗(而非每一 著色器專狀處理執行單元)之處_構及環境(例如:上述申請 φ 案)。 凊參考第3A及3B圖,係顯示於一水平處理模式(第3a圖) 以及一垂直處理模式(第3B圖)中處理-指令及相關資料之方塊 圖。類似於第2圖之方塊圖,第从及3B圖所示之實施例包括一 暫存檔U2及複數之算術邏輯單元(ALUs) ii6、ii8、12〇及 1=。應當瞭解的是’雖然說明之實施例係顯示具有四個算術邏 輯單兀(ALUs) 116、118、12〇及122,在不脫離本發明之精神 •和範圍内,可於其它實施例中使用較多或較少之算術邏輯單元 (ALUs)。 首先參考第3A圖,每-算術邏輯單it (ALU) 116、118、12〇 及I22 ’皆具有-深度”以說明連續的多個週期處理。於第从 圖中’係顯示3個此類之連續指令(以“指令Η,,、“指令、 及“指令心1”表示之)。於該平行之算術邏輯單元(ALUs) t, 亦說明每-個細於該等指令之L例如:算術邏輯單元a工工8
Clienfs Docket N〇.:P2006063 TT's Docket No: 〇6〇8-A41〇94-TW/Final^ita/20〇7/〇2/〇2 1354241 •係顯示與齡N相關之資料_。地,於算術邏輯單元12〇 及122之對應位置中,分別顯示與指令N相關聯之資料μ及· 因此’當將指令N記錄至算術邏輯單元虹瓜116時該指令之 相關資料亦記錄至平行之算術邏輯單元(ALUs) ii8、12〇、及 122 (假設此相關資料存在)。應當瞭解的是,對於任一特定指令, 可能沒有相關資料存在,或可能僅工至2位元組(或者字元組)之 相關資料存在。對於沒有相關資料存在之路徑,一閒置指令或資 φ 料區段之時序可記錄至該相關算術邏輯單元(ALUs)。 現在參考$ 3B ® ’係顯示相同架構元件。然而,該指令n_工、 N、及N+1’及其相關資料被區分至不同之算術邏輯單元(則十 例如,將指令N-i及其相關資料D1、D2、及D3記錄至算術邏輯 單兀i2〇中,而將指令N及其相關資料記錄至算術邏輯單元工18 中,且將指令N-1及其相關資料記錄至算術邏輯單元虹口丄ιΐ6 中。 • 以此一水平(第3A圖)或垂直方式(第3B圖),分開地且選擇 性地處理資料,即可根據被處理的程式或指令類型,最佳化該架 構以更有效地處理指令。有鑑於此,架構設計者更瞭解,當於平 行之算術邏輯單元(ALUs)巾計算時,某些處_赌有較佳之效 能’而其它處理類型則於-單一算術邏輯單元中計#時取得較佳 之效能。因此,於此略去詳述這些不同之處理類型。又於一實施 例中’如為先前參考文件之專利申請案仫/4%, 543所描述,某
Client's Docket No.:P2006063
TT’s Docket No: 0608-A41094-TW/Final/Rita/2007/02/02 ( S 12 一處理架顯觀可包括-喊雜行單 多執行緒操作配置。於此一架構中,母執订早7^ 稱r可月b要求於該等算術邏輯單 ^7s)情(水侧處理)處理—單—執行緒之指令,然 而糾他情況下’ _要求於—單__輯單元_)中處 理一早-執行狀齡。於此,特賊處轉為水平指令 處理。 如前所述,資料(例如··單指令流多資料流(s刪資料)係被 預先組織化或格式化,·存於暫_U2卜依據本發明某些 實施例,預先組織化或格式化該單指令流多資料流(SIMD)指令及 _資料,並將其儲存於暫雜出中,可使處於-水平模式之 "及相關資料直接被傳送至該等算術邏輯單元(AL_處理。因 此’虽需要在操作模式屬於垂直模式(有時亦為垂直指令模式)中 處理指令及糊資㈣’職資料必須於被傳送至該等算術邏輯 單元(ALUs) II6、iig、丄2〇、及工22之前重新格式化,或以其 匕方式處理。所以於某些實施例中’必須提供預處理邏輯單元 13〇 ’以執行此資料處理,又於某些實施例巾,此預處理邏輯單 兀工3〇係包括移位及延遲邏輯單元以執行複數之移位(或延 遲),並提供此資料處理。此邏輯單元之一組織範例,可於依據一 實施例所完成之第6圖中,找到相關描述。 參考第犯圖之敘述,指令N-1係被直接傳送至ALU3 120, 其中載入指令N-1以及相關資料〇1、D2、及〇3卻非為完全連續
Client’s Docket Ν〇·:Ρ2006063 TT's Docket No: 〇6〇8-A41〇94-TW/Final^ita/2007/02/02 13 1354241 •地破載人算術鞠單元ALU3 12〇巾。糾,縣為了將與載入 才曰7 N-1相關之資料D1傳送至虹口2 11S,該相關資料m即 被格式化或配置於暫存檔⑴中,所以需由移位及延遲邏輯單元 ⑶將:貝料〇1之傳送延遲(一週期),並移動一個路徑或通道後, 下週期(指令Ν'"1之後的週期),資料D1方能被送至处仍 UO。同樣地’將相關資料μ及叫分別地)延遲兩個及三個週 期’並且(分別地)移動兩個及三個通道,以便將其連續記錄至 _ ALU3 12 0 〇 接上所述’為了將指令N傳送至ALU2 II8,則需將原先於 暫存檔II2中’透過初始格式化以預備傳送至ALU11ιβ之指令 N移位。同樣地’將指令N+1之湖龍延遲及移位以傳送至 ALU1 116 ° 再如第3B圖所示,在將該等算術邏輯單元(ALUs)i輸出資 料寫回至暫存檔112 (猶如透過—單—算術邏輯單元輸出資料)之 # 前’後處理邏輯單元㈣係被用來有效執行該反向處理或預處理 邏輯單元13〇之格式化。最後,指示邏輯單元15〇提供有關於目 别指令及相關資料之處理,是否依據水平模式處理或垂直模式處 理之一指示。依據一實施例,該指示邏輯單元U0可包括一暫存 器,透過控制邏輯單元設置或重置,以指示是否以一水平模式或 垂直模式執行處理。就此而言,係參考於2〇〇6年2月6日提出 之美國專利申請案I"347,922,以及於2〇〇5年7月6日所提
Client’s Docket Νο·:Ρ2〇〇6〇63 TT’s Docket No: 〇608-A41094-TW/Final/Rita/2007/02/02 出之美國專利电枝 為夂考 明案11/175'229。這些申請案之内容於此均作 ".牛依這些申請案所述,一模式選擇暫存器可用以指示 J如理模式係為一水平處理模式或一垂直處理模式。 技術7貝域中具有通常知識者所瞭解,當一開始於兩種 ^模式間變鱗’與該聽理邏輯單元及後處理邏輯單元 有關之移錢延遲操作’通常需額外時脈週期。然而,需進 V瞭解到’於—指令觀序執行之基礎上該處理模式將不會 ’反錢換。相反地’―系舰續指令(例如:包括—幾何著色器之 指令、或包括一像素著色器之指令)將於一單-、特定操作模式中 .依序處理。因此’於模式間切換所造成之少量降低效能,可藉由 操作於-特絲倾式所增加之效能細外補償。 於描述本發明實施例之一般架構及操作之後,請參考第4圖。 第4圖係顯示本發明實施例之基本元件方塊圖。如同第3a&3b 圖之實施例-樣,第4圖之實施例係包括—暫存檔山及複數之 • 算術邏輯單元(紅诉)116、118、12〇、及122。第4圖之實施 例進一步包括一算術邏輯單元(ALU)格式化邏輯單元2%,將由 該暫存檔112所接收或擷取之資料格式化,以傳送至該等算術邏 輯單元(处此)116、118、12〇、及122。簡言之,算術邏輯單 元(ALU)格式化邏輯單元23〇乃根據目前操作模式(例如:水平 或垂直),以將指令及相關資料適當地傳送至算術邏輯單元 (ALUs)116、ll8、l2〇、及I22。同樣地,寫回格式化邏輯單
Client’s Docket No.:P2006O63 XT's Docket No: 0608-A41094-TW/Final/Rita/2007/02/02 15 ⑶4241 _ 4。則將由該等舁術邏輯單元⑽us) ιΐ6、ιΐ8、ΐ2〇、及⑵ 斤輪出之指令及糊資料格式似傳回至該暫雜m。依據第 ^所顯不之實施例’類似第3A及SB圖之邏輯單元咖及㈣, s_算術邏輯單元{ALU}格式化邏輯單元η。及寫回格式化邏輯單 元^4〇 ’可包括用以執行移位、延遲、以及/或者旋轉操作之電 路系統或賴單元。或者’算術賴單元(alu)格式化邏輯單元 23〇及寫回格式化邏輯單元_之基本電路祕或架構可與第 A及3B圖不同。對於第4圖所示實施例而言’其重點為利用算 術邏輯單元(ALU)格式化邏輯單元挪及寫回格式化邏輯單元 24〇之基本電路系統,以提供與暫存檔m及該等算術邏輯單元 (ALUs)ll6、11S、U〇、及Μ間之相關操作及資料格式化、 以及與該等算術賴單元(ALUs)及暫存制之相瞧作及資料 格式化。 於描述本發明某些實施例架構之後,亦將瞭解到,本發明所 包含之實施_方法乃為了在以具獅性及可供選擇之水平及垂 直模式中’完成指令及資料處理。據此,請參考第5圖。第5圖 係顯示本發明某些實施例之高階操作流程圖。依據第S圖所示之 方法’先由一暫存檔H2接收或擷取指令及相關資料(步驟 3〇2)。之後’依照所選擇之模式為水平操作模式或垂直操作模 式’處理此指令及相關資料(步驟3〇4)。若依照一水平模式處理, 則直接將該指令及相關資料由該暫存檔傳送至對應之平行算術邏
Client’s Docket N〇.:P2006063 TT*s Docket No: 〇608-A41094-TW/Final/Rita/2007/〇2/〇2 1354241 輯單元(ALUs)(步驟3〇6)。該等算術邏輯單元理完該 指令及相關資料後,該等算術邏輯單元(ALUs)之輸出將直接寫回 至該暫存檔(步驟308)。 相反地,若依照一垂直模式操作,則先處理或格式化從一暫 存檔所擷取之資料,以傳送至該等算術邏輯單元(虹1;3)(步驟 310)。處理完該指令及相關資料之後,直接將其傳送至所對應之 該等算術邏輯單元(ALUs)(步驟312)。該等算術邏輯單元(ALUs) Φ 處理元該指令及相關資料後’將該等算術邏輯單元(ALUs)之輸出 爾後再一次處理或重新格式化(例如:重組),以傳回至該暫存檔 (步驟3:u)。接著,將該重組資料引回該暫存檔(步驟ns)。最 後如節點“A”所示,再重覆第5圖所顯示之處理過程。 再次強調,於此所使用之水平及垂直之名稱,為用以代表不 同(正交的)操作模式所使用之任意名稱。而且於此所述之實施例 的描述乃基於寫入暫存檔之資料會被預先格式化猶如該資料將以 _ 水平模式處理之假設。依據這些實施例,當該邏輯單元(例如:第 3圖之13〇及14〇、以及第4圖之23〇及24〇)不需執行任何功 旎時’將有效地使其禁能或失效。然而,當以一垂直模式操作時, 將致能或使第3及4圖所示之重新格式化或處理邏輯單元有效。 相反地’以垂直模式操作時,若於該暫存檔中預先配置指令及 相關資料’則該資料處理單元邏輯將於該垂直模式操作下被禁 能’而於該水平模式操作下被致能。㈣直或水平模式操作下,
Client’s Docket Νο·:Ρ2006063 (s ) TT's Docket No: 〇6〇8-A41〇94-TW/Fmal^ta/20〇7/〇2/〇2 17 1354241 .疋否預先將該指令及資料配置該暫存槽112令,可根據為特定實 施例所架構設狀目標及需求且依實際執行而不同。在本案中, 更重要的是瞭解到本發明實施例之架構,允許資料之動態重新配 ^因此,於水平或垂直模式中,能有效地使賴數之算術邏輯 單元(ALUs)來處理資料。 _參考第6圖,係類似於第从及3B圖,但為顯示一特定 實施例之·額外細節的方塊圖。於第6圖之實施射,邏輯單 籲it 43〇係顯示為左旋移位器’。於操作中此移位器將資料 向左移動-個通道,而將最左通道(相當於則工以)旋轉至最 右之位置(至對應之ALU4 I22)。反向之操作係由邏輯單元44〇 之右旋移位器所提供。延遲元件431、432、433、434、435、 及436係與該左旋移位器43〇相關。就像清楚說明資料路徑係由 該暫存檔112至不同延遲元件、以及至該左旋移位器4:3〇 一樣, 可輕易地證實,就水平處理而言,於該暫存檔1:L2中初始格式化 • 之資料如何被移位及延遲,用以為一特定算術邏輯單元(ALU)來 整理平行/相關資料元件。同樣地’透過該右旋移位器44 〇及相 關延遲元件441、442、443、444、445、及446所顯示之資料 流路徑及電路系統可輕易地證實反向之預處理操作。 依上述例子所示’若非向左移位’若欲將指令及相關資料向 右移位,則將實現延遲元件之反向配置。就此而言,將延遲元件 433、435、及436與對應之ALU1 116排成一列,而將延遲元
Client’s Docket No. :P2⑻6063 TT's Docket No: 0608-A41094-TW/Final/Rita/2007/02/02 18 1354241 件432及434與對應之腦2 118排成一歹卜以及將延遲元件 431與對應之ALU3 12〇排成一列。 現在簡單地參考第及7B圖。第从及圖,雖類似於第 3A及SB ®之方麵’但卻制如何利賴轉以處理不同執行 緒之指令及相關資料。所以如上概述,一專利申請案係描述具^ 可多執行緒操作的一組共享執行單元埠之架構。於此架構中,'可 能需要於單―砸1 116中連續地由不同執行緒執行指令’即使 • 相關資料係在平行之算術邏輯單元(ALUs) IIS、:^心及^2中 處理。第7A圖係顯示此一操作。同樣地,對於某些操作而言,以 分配至不同算術邏輯單元(ALUS)之不同執行緒,來處理指令及於 一單一算術邏輯單元(ALU)中一單一指令之相關資料,可能是更 好的。此一方法係顯示於第7B圖。總而言之,第7厶及圖係 說明本發明實施例如何提供一彈性且實用之操作,以供兩種操作 之類型’並且於邏輯單元53〇及54〇中處理資料之重新格式化及 • 操作(例如:資料配置邏輯單元),亦類似於第3A及3B圖之邏輯 單元13〇及14〇。此外,一邏輯單元55〇亦被用以管理多執行緒 (例如:一執行緒管理器)。 於一實施例中,一繪圖處理裝置包括一暫存檔112,一邏輯 單元55〇以管理複數之執行緒,複數之算術邏輯單元 (ALUs) 116、118、120、及122以及兩資料配置邏輯單元53〇 及54〇’此兩資料配置邏輯單元wo及54〇可於一第一處理模式
Client's Docket N〇.:P2006063 TT5s Docket No: 0608-A41094-TW/FinayRita/2007/02/02 1354241 中 112之連序資 ,選擇性地配置與一特定執行緒有關的暫存檔 料,以依序傳送至該等算術邏輯單元其中之―,且# 112之連 理模式中,選擇性地配置與—特定執行緒有關的暫存檔 序資料’以依序傳送至不同之算術邏輯單元。 於-實施财’藉由-第—著色程式之執行(未具體顯示), :確認該繪圖處理裝置處於第—處理模式,而藉由—第二著色程 ^之執行(亦未顯示),可碟認騎圖處理裝置處於第二處理模 ^如關技術領域中具有通常知識者所瞭解,著色程式係為定 義著色程式執行之程式碼,如像素 幾何著色財。 如像輪料、獅_式、及 顧現行之諸多朗已能此垂直操作,但仍有為數不少 之重大應用須於執行垂直操作之前,進行資料元件之重新整理, 以v該應用實現。在本發明示範之實施例内已包含多數經常使用 ;曰圖及訊號纽巾之上述翻。若卿較益於垂直操作之應 #用相較下w利用水平模式操作執行時,許多應用便能更有效率。 在此’水平模式操作之說明亦可就記憶體细論述之。該水平模 式操作類似於傳統向量處理,藉由將請載人—向量暫存器而設 向里接著以平行方式處理之。就目前處理器而言,亦可利 向里處理’即執行-向量操作,如由—整體運算操作所產生, 作為一多平行操作之一内積。 舉例而έ ’-水平模式崎操作可以“垂直,,方式處理。具
CHent^s Docket Νο.:Ρ2〇〇6〇63 s Docket No: 〇6〇8-A41〇94-TW/Final^ta/2007/〇2/〇2 20 1354241 體地考慮DPW4之内積操作。此内積操作可藉由連續之乘法 及累加(例如:MUL及MAC)運算處理,如下:; DP2{yQ · xy, vl · xy"j = vO · λ: * vl · x + vO · j; * vl ^ = MUL(vO x,vl x\MAC(vO y,vl y); DP,i{v^-xyz,v\-xyz) = vOx*v\x + vQy*v\y + v〇-z*v\.z =MUL{vQ ·χ,ν\· 4M4C(vO y,vb y\MAC(v〇· zM. z); DP4(vO · xyzw, vl · xyzw)
= ν〇.χ*ν1·χ + νΟ·^*ν1·:>; + νΟ·ζ*ν1·2 + ν〇.1νι|<ν1.νν =概(v()._4鑛:(v〇7,vl4M4C(v〇.z,vl.z),⑽c(v〇,,心)。 如所屬技術領域中具有通常知識者所瞭解,上述實施例係顯 示此-操作之齡卜其它針對可以“垂直”方式處理之水平操作 亦包括鄰近像素間之梯度導數之計算。在此實施例之目的,係為 有關於可有效_祕輯述之賴及枝,財輯作於垂直 及水平兩種操作模式中。 於許多操料,可透過_垂直處理技巧提高-繪圖管線之 效能’其中’該繪圖資料部份係於獨立平行之通道中處理。然而 其匕操侧受益於水平處理技巧,其中,崎圖資料部份係以序 列方式處理。稱為髓狀_垂直赋及水顿式處理之使 :’於提供-編狀單—指令集以支援兩贼理模式方面時,於 是乎有其挑戰性。所以,因具體模式技術之便增加了挑戰性, k些問題如資料調配(dataswizzling),即一資料結構中之名 稱、陣列索引、或參考,於將該資料結構存入主記 Cheat's Docket No.:P2〇〇6〇63 〇c etN〇:0608-A41094-TW/Final/Rita/2007/02/02 憶體時,通常 C S ) 21 1354241 . 兩轉換至位址指標。由於這些原因,將一指令集編碼以用於一雙 模式計算環境,以及該指令集之編碼方法將導致效能之改善。 如所屬技術領域中具有通常知識者所瞭解,於此所提供實施 例之說明一致,亦可於一執行單元中包括額外之元件,以實現各 種任務及操作》 於此處所使用之名稱“邏輯單元,,意指專用之硬體(例如:電 子或半導體電路系統),以及被設計以透過軟體實現某些專用或定 義之功能或操作之通用硬體。 於實現具體邏輯功能或步驟之過程中,所有處理之描述或流 程,應被視為包括一或多個可執行指令之程式碼之代表單元、區 段、或部份,而於本發明較佳實施例所揭露範圍,包括了實現所 顯示或討論之不規則執行功能,包括同時或逆序,係取決於相關 之功能,將為熟習本發明所揭露之技藝者所理解。 雖然本發明已崎佳實施_露如上,财並_以限定本 籲發明,任何所屬技術領域中具有通常知識者,在不脫離本發明之 精神和範_ ’當可做些許更動制飾,因此本發明之保護範圍 當視後附之申請專利範圍所界定者為準。
Client’s Docket No. :P2〇〇6〇63 TT>s Docket No: 〇6〇8^41094^^^2〇〇7/02/02 22 1354241 【圖式簡單說明】 第1圖係顯示習知技術之―管線處理H架構之部份方塊圖; 第2圖類似於第1圖架構之方塊圖,係顯示習知技術之複數 之异術邏輯單元,用以平行處理齡以及/或者相關資料; 第3A及3B ®係顯示依據本發明實施例之—架構之元件方塊 圖; 第4圖係顯示依據本發明實補之—架構之元件方塊圖;
第5圖係顯示依據本發明實關之執行高雜作流程圖; 第6圖係顯示依據本發明實施例之—_之元件方塊圖; 第7A及7B圖係顯示依據本發明另—實施例之一架構之 方塊圖。 【主要元件符號說明】 112~暫存標, 150〜指示邏輯單元; 132〜移位及延遲; 13Q〜預處理邏輯單元; 140〜後處理邏輯單元;112〜暫存槽(寫回); 116、118、12〇、122〜算術邏輯單元(ALUs^
Client's Docket No. :P2006063 TT's Docket No: 〇608-A41094-TW/Final/Rita/2007/02/02 23

Claims (1)

1354241 十、申請專利範圍: •種繪圖處理裝置,包括: 1. 之异術邏輯單元’接收齡及她置鮮行處理糊之資料; 預處獨輯單元,被配置以由一暫存檔接收指令及相關資料以 扣向該等稍邏輯早4丨之―處理,該贿理邏輯單元被配置以選 擇性祕式化所接收指令,用以傳送等算術邏輯單元;以及 、後處理駢單元’被配奴無鱗算觸解元触之資料, 並將所接㈣.送及寫回至該暫储’該後處理邏解元被配置以 選擇性地格式化鱗算術賴單元_之#料,赠送至該暫存槽, 如透過一單一算術邏輯單元輸出資料。 2.如申請專利範圍第丄項所述之緣圖處理裝置,其中,該等算術 邏輯單元明確地由四個算術邏輯單元所組成。 3 ·如申請專利細第2項所述之繪圖處理裝置,其中,該預處理 邏輯單元包括一邏輯單元以執行移位及延遲操作。
4 ·如申請糊麵帛3糊·述之軸處理裝置,其巾,該預處理 邏輯單元逐一地將所接收的資料在該等算術邏解元前移位及延遲, 並且為使每一額外之算術邏輯單元傳送指令及相關資料,於該預處理 邏輯單元中執行一額外之移位及延遲操作。 5.如申請專利範圍第1項所述之緣圖處理裝置,其中,該後處理 邏輯單元包括一邏輯單元以執行移位及延遲操作。 6.如申請專利範圍第5項所述之繪圖處理裝置,其中,該後處理 Chenfs Docket No.;P2006063 s Docket No: 0608-A41094-TW/Final/Rita/2007/02/02 24 1354241 邏輯單:逐一地將所接收的資料從該等算術邏輯單元移位及延遲,並 且為使每-額外之算術邏輯科傳送資料,於該後處理邏輯單元中執 行一額外之移位及延遲操作。 二.如申請專利範圍第!項所述之繪圖處理裝置,更包括一指示邏 輯私,桃稀贿理雜科之:雜是否顧雜祕式化所接 收指令及倾,狀巾顧纽邏輯單元更依據胃細
狀態’將所接收資料格式化以傳送至一單一算術邏輯單元或傳送至 該等算術邏輯單元。 及相關資料 二如申請項所述之繪圖處理妓,其中,該預處理 雜早讀翻示邏輯單元之,出,聰_式化所接收指令, 且該指示邏輯單元指出是否於一水平或一垂直模式中處理—目前指令 9. 一種繪圖處理裝置,包括: 一暫存檔; -邏輯單元用以管理複數之執行緒; ϋ之算術邏輯單元;以及 貝料配置邏輯單元,於一第一處理模式中,能選擇性地配置益 =:行緒有關之暫存檔之連序資料,以依序傳送至該等算觸轉 早凡其中之一,於一第-*声挪松二、丄 弟—處理模式申,能選擇性地配置與一特定 緒有關之暫雜爾資料,以⑽傳送至相異之算術邏輯單元。 申明專利細第9項所述之_處理裝置,其中,該第 Client’s Docket Νο·:Ρ2〇〇6〇63 25 處理模式為一水平指令模式。 11·如申請專利範圍第9項所述 -處理模式為一垂直指令模式。 圖處理裝置,其中,該第 -處理模^申凊專利範圍第9項所述之繪圖處理裝置’复中,嗲第 處理模式為一第一著色程式鲁 U,該第 工3.如申請專利範圍第12項所述之繪 二處理模式為一第1“4 α 處理裝置,其中,該第 著色程式。钟以之執行,郷二託財蝴於該第- 14. 種用於處雕令及資料之方法,其. 由一暫存槽接收指令及相關資料; 括. 為已接收之指令及相關資料決定兩模式+何者為有效; 有效時’禁止重組該指令及資料以直接將該指令及 貝枓傳送至魏之算觸輯單元處理;以及 、於一第二模式有断,重_齡及餅,並且_指令及資料 傳送至該等4術邏輯單元處理。 15.如申請專利範圍帛14項所述之祕處理指令及資料之方 法,其中,該第一模式為一水平模式。 16'如申凊專利範圍第14項所述之用於處理指令及資料之方 法,其中,該第二模式為一垂直模式。 17 *如申請專利範圍第14項所述之用於處理指令及資料之方 法’其中,重組該指令及資料時更包括移位及延遲該指令及資料。 Client’s Docket No.:P2〇〇6〇63 TT's Docket No: 〇608-A41094-TW/Final/Rita/2007/02/02 26 1354241 18* —種用於處理複數之算術邏輯單元操作之方法,其步驟勹 括· 由一暫存檔擷取一指令及相關資料; 決定一操作模式; 、當確定該操作模式為一水平模式時,直接將該指令及相關資料傳 送至該等鼻術邏輯單元;以及 將該指令及相關資料重新格式化,並且,最初被格式化以傳送至 • 鄰近該等算術邏輯單元之項目,被重新格式化以傳送至-單一算_ 輯單元,而接著將重新格式化之指令及相關資料傳送至該等算術邏輯 單元。 • 19 ·如申請專利棚第18項所述之用於處理複數之算術邏輯單 元操作之方法,其卜财法之所有係為舳進行以處理不同執 行緒之指令及相關資料。
Client's Docket N〇.:P2006063 ΤΤΐ Docket No: 0608-A41094-TW/Fmal/Rita/2007/02/02 27
TW96104078A 2006-02-06 2007-02-05 Methods and apparatus for graphics processing TWI354241B (en)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US76565406P 2006-02-06 2006-02-06

Publications (2)

Publication Number Publication Date
TW200727198A TW200727198A (en) 2007-07-16
TWI354241B true TWI354241B (en) 2011-12-11

Family

ID=46727943

Family Applications (1)

Application Number Title Priority Date Filing Date
TW96104078A TWI354241B (en) 2006-02-06 2007-02-05 Methods and apparatus for graphics processing

Country Status (1)

Country Link
TW (1) TWI354241B (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2013101198A1 (en) * 2011-12-30 2013-07-04 Intel Corporation Simd variable shift and rotate using control manipulation
US20160283242A1 (en) * 2014-12-23 2016-09-29 Intel Corporation Apparatus and method for vector horizontal logical instruction

Also Published As

Publication number Publication date
TW200727198A (en) 2007-07-16

Similar Documents

Publication Publication Date Title
US8049760B2 (en) System and method for vector computations in arithmetic logic units (ALUs)
CA2758366C (en) System, device, and method for on-the-fly permutations of vector memories for executing intra-vector operations
US8255665B2 (en) SIMD processor with register addressing, buffer stall and methods
KR102318531B1 (ko) 스트리밍 메모리의 치환 동작
US20170329610A1 (en) Flexible microprocessor register file
US5268995A (en) Method for executing graphics Z-compare and pixel merge instructions in a data processor
EP3557434B1 (en) Computational resource pipelining in general purpose graphics processing unit
US6330657B1 (en) Pairing of micro instructions in the instruction queue
TWI437507B (zh) 具有多線程執行單元之繪圖處理裝置及其記憶體存取方法
TW200527203A (en) A data processing apparatus and method for moving data between registers and memory
JPH02501243A (ja) マルチポートベクトルレジスタファイル
FR2752630A1 (fr) Traitement de donnees multiples a une seule instruction dans un processeur de signaux multisupport
FR2752965A1 (fr) Traitement de donnees multiples a une seule instruction utilisant des rangees multiples de registres vectoriels
US5276819A (en) Horizontal computer having register multiconnect for operand address generation during execution of iterations of a loop of program code
US5036454A (en) Horizontal computer having register multiconnect for execution of a loop with overlapped code
US8977835B2 (en) Reversing processing order in half-pumped SIMD execution units to achieve K cycle issue-to-issue latency
KR20180033527A (ko) 레지스터 뱅크에 저장된 데이터 요소들의 하나 이상의 벡터와 메모리 사이에서 복수의 데이터 구조를 전송하는 장치 및 방법
TWI354241B (en) Methods and apparatus for graphics processing
US6067099A (en) High-performance band combine function
JP7541515B2 (ja) レイトレーシングにおけるトライアングル及びボックスの交差テストのための統合されたデータパス
US8151090B2 (en) Sequentially propagating instructions of thread through serially coupled PEs for concurrent processing respective thread on different data and synchronizing upon branch
US11531638B2 (en) Reconfigurable circuit array using instructions including a fetch configuration data portion and a transfer configuration data portion
FR2752629A1 (fr) Traitement de donnees multiples a une seule instruction avec operations scalaires/vectorielles combinees
EP0775973B1 (en) Method and computer program product of transposing data
WO2024030351A1 (en) Parallel processing architecture with dual load buffers