新四季網

使用圖形處理進行粒子操作的方法和裝置的製作方法

2023-05-24 02:27:41

專利名稱:使用圖形處理進行粒子操作的方法和裝置的製作方法
技術領域:
本發明涉及計算機圖形領域,具體而言,涉及對大量圖形數據進 行處理的方法和裝置。
背景技術:
近年來,由於刀片(cutting-edge)計算機應用變得越來越複雜, 而且對處理系統的要求不斷提高,從而對處理數據吞吐的更快計算機 的需求不斷提升,由於圖形應用在相對較短時期需要進行大量數據訪 問、數據計算和數據操作以實現所需視覺效果,從而,它屬於對處理 系統要求最高的應用。實時、多媒體應用也對處理系統具有較高要求; 當然,它們需要極快的處理速度,例如,每秒數千兆位的數據。
例如,對在三維(3D)空間中移動的大量小對象(例如,雨滴、 雪花、彈起的球等)的模擬,在每幀中就涉及確定每個對象的空間位 置變化、執行3D/2D變換、多邊形化和繪製對象以便在顯示屏上顯示 的步驟。為實現滿意的視覺效果,通常以約30Hz(例如,約33毫秒/ 幀)的幀速率繪製圖形數據,以便向人眼呈現出實時平滑的運動。進 行這樣實時運動對象模擬所需的大量計算對計算機處理系統提出了較 高要求。
某些處理系統採用單個處理器達到快速處理速度,而其它系統則 使用多處理器體系結構實現。在多處理器系統中,多個子處理器能夠 並行(或至少同時)操作,以實現預期處理效果。此外,還考慮在多 處理系統中採用模塊化結構,其中,計算模塊可通過寬帶網絡(例如 Internet)訪問,計算模塊可在許多用戶之間進行共享。關於該模塊化 結構的細節可參看美國專利No. 6,526,491 ,其全部內容在此引作參考。
某些多處理系統採用單指令多數據(SIMD)處理體系結構來提
高處理呑吐量。然而,即便通過SIMD處理系統,對106或更多對象 的實時模擬也可能是不夠的。因此,在本領域中需要對圖形數據進行處理的新方法和裝置,其 能夠處理與大量圖形對象有關的圖形數據,以便實現實時模擬效果。發明內容根據本發明的一個或多個方面,有效執行對在每個幀中多個對象 的任何位置變化的計算,特別是當在空間中具有數量可觀(例如,1 百萬或更多)的對象時。即便當採用SIMD並行處理環境時,本發明 的各方面也允許對對象數據在並行處理器之間如何分配和/或在存儲 器中如何存儲對象數據進行控制。例如,可將3D空間的對象劃分成多個子空間(或桶),其中, 每個桶包含一定數量的對象。在每個幀中,每個並行處理器讀入特定 桶的對象數據(初始位置、速度、力、顏色等),並執行在該桶內的 對象運動和/或碰撞計算(例如,使用Euler方程)。當每個處理器完 成桶的計算時,將數據(例如,最終位置、最終速度、顏色等)寫回 到存儲器中,並對下一個桶進行處理。優選地,每個處理器使用"雙緩衝器"技術對存儲器讀取和寫入數 據,以便隱藏桶之間的DMA訪問時延。此外,優選地根據周期時間 (幀速率)、讀取周期/字節、寫入周期/字節、計算周期/字節和本地 存儲存儲器尺寸來選擇將桶的尺寸。優選地按照與在3D空間中粒子位置相符的順序,將粒子數據存 儲在系統存儲器中。例如,在系統存儲器內,將在特定桶中的所有粒 子彼此鄰近地存儲。這提高了在處理器的系統存儲器與本地存儲器之 間可進行數據傳送(例如,DMA傳送)的效率。此外,當採用SIMD 體系結構時,優選地將各種對象數據(例如,位置數據、速度數據、 力數據等)按照彼此鄰近的方式分組(或矢量化),以便符合處理器 的SIMD能力。例如,如果處理器在一個指令中可執行四個數據單元, 則優選地以彼此鄰近的方式存儲四個位置數據單元、四個速度數據單
元和四個力數據單元等,以提高SIMD處理速度。當對對象數據進行操作之後,優選地按照如上所述位置將數據寫 入系統存儲器中,所述位置可能根據該幀的對象的最終位置需進行重 新組織。根據本發明的一個或多個方面,所提供的方法和裝置用於將三 維(3D)圖形空間內的對象分成多個對象集,每個對象集處在3D空 間內的相應子空間中;基於每個對象的初始圖形數據,計算對象集的 每個對象的最終圖形數據,其中,使用多處理器系統的多個處理器中 的相應處理器,執行對於每個對象集的相應計算;對於多個圖像幀的 每個,使用源自前一圖像幀的最終圖形數據作為當前圖像幀的初始圖 形數據,重複上述步驟。給定對象的最終圖形數據計算可包括根據對象的初始位置數據 和以下各項中的至少之一來計算將對象的最終位置數據源自速度數 據的對象初始速度、源自力數據的對象初始力和源自質量數據的對象 初始質量。可選地,或作為補充,給定對象的最終圖形數據的計算可 包括關於對象與另一對象是否碰撞的計算。優選地,將對象分組成3D空間的子空間內的對象集的步驟包括 當最終圖形數據的計算表明一個或多個對象具有落在它們的初始子空 間外部的最終位置數據時,將至少某些對象進行重新分組。該方法和裝置還可用於將對象的最終圖形數據存儲在與多個處 理器連接的系統存儲器中;以及按照與對象集和子空間相對應的方式, 對系統存儲器內的最終圖形數據進行分組。優選地,當最終圖形數據 的計算表明一個或多個對象具有落在它們的初始子空間外部的最終位 置數據時,在系統存儲器內將最終圖形數據進行重新分組。根據本發明的一個或多個其它方面,處理器可用於對系統存儲器 進行按塊數據讀/寫,每個塊是系統存儲器中的連續區域。例如,進行 以下至少之一的操作(i)將所有位置數據存儲在存儲器的相應一個 或多個連續塊中;(ii)將所有力數據存儲在存儲器的相應一個或多 個連續塊中;(iii)將所有速度數據存儲在存儲器的相應一個或多個
連續塊中;以及(iv)將所有顏色數據存儲在存儲器的相應一個或多 個連續塊中。可選地,進行以下至少之一的搮作將給定對象的所有圖形數據 存儲在系統存儲器的同一塊中;將多個對象的所有圖形數據存儲在系 統存儲器的同一塊或連續塊中;將給定對象集的所有圖形數據存儲在 系統存儲器的同一塊或連續塊中。此外,可將給定對象的所有圖形數 據順序存儲在系統存儲器的同 一塊中。可選地,處理器可用於執行單指令多數據(SIMD)計算,多數 據計算的數量為N;以及將具有N個對象的各個集合的至少某些圖形 數據順序存儲在系統存儲器中的同一塊內。優選地,將具有N個對象 的各個集合的位置數據、力數據、速度數據、顏色數據和質量數據中 的至少之一,順序存儲在系統存儲器的同一塊內。該方法和裝置優選地還用於當處理器變得可用時,使用所述處 理器從系統存儲器讀取和處理子空間的對象集的圖形數據。此處,結合附圖,通過關於本發明的描述,將能夠明白本發明的 其它方面、特徵、優點等。


出於說明本發明各方面的目的,在附圖中顯示出優選實施方式。 然而應該理解。本發明並不局限於所示的具體設置和實施方式。圖l所示視圖表示用於根據本發明一個或多個實施例對對象運動 進行模擬的計算機模型;圖2的流程圖表示,根據本發明一個或多個實施例,對如圖1所 示對象進行操作的處理步驟;圖3的框圖表示具有能夠執行圖2所示處理步驟的兩個或多個子 處理器的多處理系統的結構;圖4的框圖表示,根據本發明的一個或多個方面,採用SIMD技 術的可選計算機體系結構;圖5的框圖表示,根據本發明的一個或多個其它實施例,圖4所 示系統的示例性子處理單元(SPU)的結構;圖6的框圖表示,根據本發明的一個或多個其它實施例,圖4所 示系統的處理單元(PU)的結構;圖7表示,根據本發明的一個或多個實施例,在圖3和/或圖4所示計算機系統的系統存儲器中,如何對圖形數據進行組織;圖8表示,根據本發明的一個或多個其它實施例,在圖3和/或 圖4所示計算機系統的系統存儲器中,如何對圖形數據進行組織的可選方法;圖9表示,根據本發明的一個或多個其它實施例,在圖3和/或 圖4所示計算機系統的系統存儲器中,如何對圖形數據進行組織的另 一可選方法;以及圖10表示,根據本發明的一個或多個其它實施例,使用圖3和/ 或圖4所示計算機系統對圖形數據進行的並行處理。
具體實施方式
本發明有利地提供了用於對與圖形對象(尤其是大量對象,例如, 約106之多或更多)相關的圖形數據進行處理(例如,實現計算機模 擬)的方法和裝置。例如,這樣對象可為雨滴、雪花等,其數量可為 數千、數十萬、數百萬以及更多,這取決於具體模擬和對象被放置在 的3D空間。此處,可將這些以及類似運動的對象稱為粒子(particle )。圖1所示視圖100表示用於根據本發明一個或多個實施例對3D 空間104中運動對象102進行模擬的計算機模型。3D空間104示意性 地具有寬度106、高度108和深度110,並被劃分成多個(N個)單獨 子空間或桶112。在所示實施例中,3D空間104示意性地包括四個塊 (pane) 114,每個這樣的塊具有36個桶112,所有桶都具有同一尺 寸。在可選實施例中,3D空間104可具有任意數量的塊,塊可具有任 意數量的桶。此外,桶112的尺寸還可根據具體應用而變化。根據一個或多個示例性實施例,在任意時刻,可將每個對象102 定義成具有質量(或重量)M、具體尺寸、顏色屬性L (RGB,"、 速度V(x,y,z),施加在其上的力F(x,y,z)和/或空間位置P(x,y,z)。此處, x, y和z表示直角迪卡爾坐標,縮寫RGB通常涉及標準(紅/綠/藍) 顏色方案,4表示對象102的視覺圖像的強度。應該理解,在不偏離 本發明精神和範圍的條件下,也可採用其它坐標系,以及可採用其它 顏色約定。在所示實施例中,對象102示意性地具有同一質量和尺寸。然而, 在其它實施例(未示出)中,可部分或完全地去除這樣的限制。例如, 可對至少一部分給定對象102指定單獨特性(例如,尺寸或質量)。 此外,對象102可有選擇性地與其它特性(諸如時間、表面硬度等) 相關聯。因此,為了對具有這樣特性的對象進行模擬,可能需要更多 的計算資源和更多存儲器。根據本發明的一個或多個方面,基於每個對象104的初始圖形數 據,計算在3D空間104中每個對象102的最終圖形數據。優選地逐 幀執行這樣的計算,使得可繪製和顯示圖形數據,以提供在空間104 內對象102的實時運動的表現。在許多應用中,幀持續期優選地約為 1/30秒。在幀中,每個桶112可包括同時處在3D空間104中的對象 102總量中的任何部分。因此,在連續幀中,桶112可包括數量相同 或不同的對象102,這是由於某些對象102能夠移入或移出任何桶112。根據本發明的一個或多個其它方面,在3D空間104中的對象102 的所計算的運動可導致在對象102之間和/或與一個或多個其它對象 (諸如壁、阻擋物,以及在空間104中可選設置的其它障礙物,圖中 未示出)之間發生一次或多次碰撞。碰撞可屬於彈性碰撞類型,或非 彈性碰撞類型。在本領域中,這樣類型的碰撞已知有用於描述對象102 的碰撞後軌跡的分析模型(例如,基於Euler方程或類似公式)。可 選地,碰撞可遵循有選擇性地施加在相互作用對象102上的常規(即, 特定)定律。圖2的流程圖表示,根據本發明一個或多個實施例,對圖形數據 進行處理的方法200。圖3的框圖表示多處理系統250的結構,其具 有能夠執行方法200的一個或多個部分的兩個或更多個子處理器252 和系統存儲器256。每個處理器252A-D優選地包括相關的本地存儲器 254A-D,並通過總線258與主(系統)存儲器256相連。儘管示例性 表示出四個處理器252,然而在不偏離本發明精神和範圍的條件下, 可使用任意數量的處理器。處理器252可通過任何已知技術來實現, 每個處理器252可具有相同的結構或不同的結構。方法200開始(步驟202),進行到步驟204,在此步驟,在3D 圖形空間104內將對象102的圖形數據分組(組織,或分桶)成多個 對象集,每個對象集處在3D空間104內的相應子空間(或桶)112 中。此外,將圖形數據存儲在系統存儲器256中,以使得與處在相同 桶112中的對象102相對應的圖像數據彼此鄰近地處在系統存儲器 256中。在本說明書中,後面將參照圖6-8,更詳細地描述用於在系統 存儲器256中組織和存儲對象102的圖形數據的示例性方法。目前, 優選地實現以下操作就足夠了,即,將類似類型的圖形數據(例如, 位置數據P(x,y,z)、速度數據V(x,y,z)、顏色屬性數據L (RGB, 3) 等)分組並按照彼此鄰近的方式進行存儲,以允許對計算機系統250 的子處理單元252的計算能力(例如,數據處理速度)進行最佳利用。在步驟206,輸入與對象102的初始狀態相關的圖形數據。這可 涉及將圖形數據從系統存儲器256讀出到處理器252的一個或多個本 地存儲器254。例如,圖形數據可包括3D空間104中每個對象102 的初始位置數據P(x,y,z)、初始速度數據V(x,y,z)和初始顏色屬性數據 L (RGB,"。在步驟208,在3D空間104中對象102的初始位置數據P(x,y,z) 處,定義施加到對象102的各個初始力F(x,y,z)。將初始力數據與其餘 圖形數據組合,以便繼續使用子處理器252所採用的計算技術。例如, 如在本說明書中後面將討論的,如果子處理器252釆用SIMD技術, 則圖形數據的某些組合可生成較好的結果。在步驟210,子處理器252基於初始圖形數據計算對象集的每個 對象102的最終圖形數據。例如,在給定幀中,計算在力場F(x,y,z) 中移動的對象102的最終位置P(x,y,z)。更具體而言,可根據對象102
的初始位置數據和以下各項中的至少之一來計算對象102的最終位置 數據對象102的初始速度、對象102的力數據和對象102的初始質 量。該計算可涉及採用分析建模方案來計算在3D空間104中對象102 的最終位置、最終速度、最終顏色、最終質量等。此外,計算也可涉 及確定一個或多個對象102是否與3D空間104中其它對象102或其 它障礙物相碰撞。優選地,使用多處理器系統250的相應子處理器252,來執行對 於每個對象集的相應計算。當然,優選地,在不考慮相鄰子空間112 中的對象102的條件下,給定子處理器252計算出給定子空間112的 所有運動和/或碰撞(最終圖形數據)。對於在3D空間中所有對象102 實時運動的這種假設導致顯著計算和呑吐量效率。當給定子處理器 252已完成給定對象集(給定幀)的最終圖形數據的計算時,子處理 器252有空閒動態地獲得另 一對象集以進行計算。作為所計算的幀中運動的結果,某些對象102可能移到其初始位 置所處的桶112的外部的位置,即,對象可能移到其它桶112。此外, 某些對象102可徹底離開3D空間104,這樣,進一步的模擬可將其排 除在外。由於運動和/或碰撞(最終圖形數據)是對於給定子空間112 來計算的,而沒有考慮相鄰子空間112中的對象102,顯著降低了計 算複雜度。當然,在給定子空間內,沒有必要考慮從另一子空間112 進入該子空間112的對象。從而,無需計算與從另一子空間112進入 子空間112的對象相關的若干可能碰撞。這可大大減少計算。在步驟212,當最終圖形數據的計算表明一個或多個對象102具 有落在其初始子空間112外部的最終位置數據時,將所有對象102的 其中某些重新組成一個或多個新對象集。優選地,這樣的重新分組按 照基本與參照步驟204所述相似的方式,觸發系統存儲器256中圖形 數據的重新組織。在步驟214,最終圖形數據中的至少某些被用於繪製在視頻顯示 器(例如,薄膜電晶體(TFT)顯示器、等離子體顯示器、陰極射線 管顯示器(CRT)、電影屏幕等)上進行顯示的對象。這可包括對對
象102的最終位置數據的3D/2D數據轉換和多邊形化。優選地,以足夠速率逐幀重複進行與步驟208-214相關的操作, 以便對3D空間104內對象102的實時運動進行模擬.在此方面,應 該理解,將源自前一幀的最終圖形數據用作為當前幀的初始圖形數據。 從而,在判定步驟216,方法200查詢是否為所有幀或者對於特定時 間間隔繪製了最終圖形數據。如果步驟216的判定結果為否,則流程 返回到步驟208。如果步驟216的判定結果為是,則流程進行到步驟 218,在此,流程結束。在此,將描述適於實現此處所述一個或多個特徵的多處理器系統 的優選計算機體系結構。根據一個或多個實施例,可將多處理器系統 實現為用於富媒體應用(例如,遊戲系統、家庭終端、PC系統、服 務器系統和工作站)的獨立和/或分布式處理的單晶片解決方案。在某 些應用(例如遊戲系統和家庭終端)中,可能需要進行實時計算。例 如,在實時分布式遊戲應用中, 一個或多個聯網圖像解壓縮、3D計算 機圖像、音頻生成、網絡通信、物理模擬和人工智慧處理必須執行得 足夠快,以便能夠為用戶提供實時體驗的假象。從而,在多處理器系 統中的每個處理器必須在很短和可預測的時間內完成任務。為此,根據該計算機體系結構,由公共計算模塊(或單元)構建 出多處理計算機系統的所有處理器。該公共計算模塊具有一致性結構, 優選地採用同 一指令集體系結構。多處理計算機系統可由一個或多個 客戶機、伺服器、PC、移動計算機、遊戲機、PDA、機頂盒、電器、 數位電視和使用計算機處理器的其它設備組成。如果需要,多個計算機系統也可以是網絡成員。 一致性模塊化結 構使得能夠通過多處理計算機系統對應用和數據進行高效、高速處理, 如果採用網絡的話,則能夠通過網絡對應用和數據進行快速傳送。該 結構還簡化了多種大小和處理能力的網絡成員的構建,以及由這些成 員處理的應用程式的準備。參照圖4,基本處理模塊為處理器元件(PE) 500。 PE500包括 1/0接口 502、處理器單元(PU) 504和多個子處理單元508,即,子 處理單元508A,子處理單元508B,子處理單元508C和子處理單元 508D。本地(或內部)PE總線512在PU 504、子處理單元508和存 儲器接口 511之間傳送數據和應用程式。本地PE總線512可具有, 例如,傳統體系結構,或可將其實現為分組交換網絡。如果實現為分 組交換網絡的話,儘管需要更多硬體,但增大了有效帶寬。能夠使用用於實現數字邏輯的各種方法構建PE 500。優選地將 PE 500構建成採用在矽襯底上的互補金屬氧化物半導體(CMOS )的 單個集成電路。襯底的可選材料包括砷化鎵(gallium arsinide)、砷 化鎵鋁(gallium aluminum arsinide )以及採用多種摻雜的其它所謂 III-B化合物。PE 500也可使用超導材料實現,例如,使用快速單磁 通量子(RSFQ)邏輯。PE 500通過高帶寬存儲器連接516與共享(主)存儲器514緊 密相關。儘管存儲器514優選地為動態隨機存取存儲器(DRAM), 還可使用其它裝置將存儲器514實現為例如靜態隨機存取存儲器 (SRAM)、磁隨機存取存儲器(MRAM)、光存儲器、全息存儲器 等。PU 504和子處理單元508優選地均與包含直接存儲器存取DMA 功能的存儲器流控制器(MFC)相連,存儲器流控制器(MFC)與存 儲器接口 511結合使用,以便於在PE 500的DRAM 514與子處理單 元508和PU 504之間的數據傳送。應該注意,DMAC和/或存儲器 接口 511可相對子處理單元508和PU 504集成或獨立布置。確實, DMAC功能和/或存儲器接口 511功能可與一個或多個(優選地,所 有)子處理單元508和PU 504集成在一起。還應注意,DRAM 514 可相對PE 500集成或獨立布置。例如,可如圖所示將DRAM 514進 行片外布置,或者,可以集成方式將DRAM 514進行片上布置。PU 504可為例如能夠對數據和應用進行單獨處理的標準處理器。 在操作中,PU 504優選地通過子處理單元對數據和應用程式的處理進 行調度(schedule)和安排(orchestrate)。子處理單元優選地為單指 令多數據(SIMD)處理器。在PU 504的控制下,子處理單元按照並
行和獨立方式對這些數據和應用程式執行處理。PU 504優選地使用 PowerPC核心實現,PowerPC核心是採用精簡指令集計算(RISC) 技術的微處理器體系結構。RISC使用簡單指令的組合執行更複雜的 指令。從而,處理器的定時可基於更簡單和更快的操作,使得微處理 器以給定時鐘速度執行更多指令。應該注意,PU 504可使用承擔主處理單元角色的一個子處理單 元508來實現,此處所述主處理單元通過子處理單元508對數據和應 用程序的處理進行調度和安排。此外,在處理器元件500內還可實現 多於一個的PU。根據該模塊化結構,具體計算機系統所採用PE 500的數量取決 於該系統所需的處理能力。例如,伺服器可採用四個PE500,工作站 可採用兩個PE 500, PDA可採用 一個PE 500。指定來處理特定軟體 單元的PE 500的子處理單元的數量取決於在單元內程序和數據的復 雜度和量。圖5表示子處理單元(SPU) 508的優選結構和功能。SPU 508 體系結構優選地填補了通用處理器(其用於實現寬範圍的應用的高平 均性能)與專用處理器(其用於實現單個應用的高性能)之間的空白。 SPU 508用於實現遊戲應用、媒體應用、寬帶應用等的高性能,並對 實時應用的編程人員提供高級別控制。SPU 508的某些功能包括圖形 幾何流水線、表面細分、快速傅立葉變換、圖像處理關鍵字、流處理、 MPEG編碼/解碼、加密、解密、設備驅動器擴展、建模、遊戲物理技 術、內容創建和音頻合成與處理。子處理單元508包括兩個基本功能單元,即,SPU核心510A和 存儲器流控制器(MFC) 510B。 SPU核心510A用於程序執行,數據 操作等,而MFC510B負責系統的SPU核心510A與DRAM 514之間 數據傳送的功能。SPU核心510A包括本地存儲器550、指令單元(IU) 552、寄 存器554、 一個或多個浮點執行級556和一個或多個定點執行級558。 本地存儲器550優選地使用單埠隨機存取存儲器,例如,SRAM。 然而多數處理器通過採用高速緩存來縮減存儲器的時延,SPU核心 510A實現相對較小的本地存儲器550,而非高速緩存。當然,為了對 實時應用(以及此處所提到的其它應用)的編程人員提供一致和可預 知的存儲器訪問時延,在SPU 508A內的高速緩衝存儲器體系結構並 不是優選的。高速緩衝存儲器的高速緩存命中與否(hit/miss )特性導 致易失性存儲器存取時間從數周期到數百周期。這種非易失性削弱了 例如在實時應用編程中想得到的存取定時可預測性。通過將DMA傳 送與數據計算重疊,在本地存儲器SRAM 550中可實現時延隱藏。這 為實時應用的編程提供了高級別控制。由於與DMA傳送相關的時延 和指令開銷超出了為高速緩存命中失誤提供服務的時延和指令開銷, 當DMA傳送尺寸足夠大且充分可預測(例如,可在需要數據之前發 出DMA命令)時,SRAM本地存儲器方法表現出優勢。運行在其中給定一個子處理單元508上的程序使用本地地址訪問 相關本地存儲器550,然而,還在總系統的存儲器映射內為本地存儲 器550的每個位置指定實地址(RA)。這允許特權軟體(Privilge Software)將本地存儲器550映射到處理進程的有效地址(EA, Effective Address ),以便進行在一個本地存儲器550與另 一本地存儲 器550之間的DMA傳送。此外,PU504也能夠使用有效地址直接訪 問本地存儲器550。在優選實施例中,本地存儲器550包含556千字 節存儲空間,寄存器552的容量為128x128位。SPU核心504A優選使用處理流水線實現,其中,以流水線方式 對邏輯指令進行處理。儘管可將流水線劃分成對指令進行處理的任意 數量的級段,不過流水線通常包括,獲取一個或多個指令,將指令解 碼,檢查指令之間的依賴,發出指令,和執行指令。在此方面,IU552 包括指令緩沖器、指令解碼電路、依賴檢查電路和指令發送電路。指令緩衝器優選地包含與本地存儲器550相連接且用於臨時性存 儲它們所獲得指令的多個寄存器。指令緩衝器優選地按照所有指令成 組,即基本同時離開寄存器的方式工作。儘管指令緩沖器可為任何尺 寸,優選地,其尺寸不大於約兩個或三個寄存器。
一般而言,解碼電路將指令分解(breakdown),並生成執行相 應指令功能的邏輯宏操作。例如,邏輯宏操作可指定運算和邏輯操作、 對本地存儲器550的加栽和存儲操作、寄存器源操作數和/或立即數據 操作數。解碼電路也可指示指令使用那些資源,例如,目標寄存器地 址、結構資源、功能單元和/或總線。解碼電路還可提供指示其中需要 資源的指令流水線級段的信息。指令解碼電路優選地能夠基本同時將 數量等於指令緩衝器的寄存器數量的若干指令解碼。依賴檢查電路包括數字邏輯,用於執行測試以確定給定指令的操 作數是否依賴流水線中其它指令的操作數。如果依賴,則不應執行給 定指令,直到更新了該其它指令為止(例如,通過允許其它指令完成 執行)。優選地,依賴檢查電路確定從解碼電路112同時分配的多個 指令的依賴。指令發送電路用於向浮點執行級556和/或定點執行級558發送指令。優選地將寄存器554實現為相對較大的統一寄存器堆,例如,128 項寄存器堆。這允許在無需寄存器重命名的條件下得到深流水線化高 頻實現。重命名硬體通常會消耗處理系統中的較大部分面積和功率。 從而,當通過軟體循環展開(software loop unrolling)或其它交錯技 術掩蓋時延時,可實現有益操作。優選地,SPU核心510A屬於超標量體系結構,使得在每個時鐘 周期中發出多於一個的指令。SPU核心510A優選地以超標量方式工 作,該超標量達到與指令援衝器的同時指令分配的數量,諸如在2和 3之間(表示在每個時鐘周期發出兩個或三個指令)的數量相對應的 程度。根據所需的處理能力,可能會採用或更多或更少的浮點執行級 556和定點執行級558。在優選實施例中,浮點執行級556以每秒32x109 次浮點操作(32GFLOPS)的速度運行,定點執行級558以每秒32xl09 次操作(32GOPS)的速度運行。MFC510B優選地包括總線接口單元(BIU) 564、存儲器管理單 元(MMU) 562和直接存儲器存取控制器(DMAC) 560。除DMAC
560外,MFC 510B優選地以與SPU核心510A和總線512相比為一 半的頻率(半速)運行,以符合低功耗設計目標。MFC510B用於處 理從總線512進入SPU 508的數據和指令,為DMAC提供地址轉換, 以及用於保持數據一致性的窺探操作。BIU 564提供在總線512與 MMU 562以及DMAC 560之間的接口 。從而,將SPU 508 (包括SPU 核心510A和MFC 510B )和DMAC 560與總線512進行物理和/或邏 輯連接。MMU 562優選地用於將有效地址(由DMA命令獲得)轉換成 用於存儲器訪問的實地址。例如,MMU 562可將有效地址的高位轉 換成實地址位。不過,低地址位優選地不可轉換的,並被視為邏輯和 物理的,以用於形成實地址以及請求對存儲器的訪問。在一個或多個 實施例中,MMU562可基於64位存儲器管理模型實現,並可提供具 有4K-, 64K-, 1M-和16M-字節頁尺寸和256MB段尺寸的264位元組有 效地址空間。優選地,MMU562用於支持高達2"字節虛擬存儲器和 用於DMA命令的242位元組(4萬億字節)物理存儲器。MMU 562的 硬體可包括8項全關聯(fully associative ) SLB, 256項4路組關聯(4 way set associative) TLB和TLB的4x4置換管理表(RMT)-用於 硬體TLB命中失誤處理。DMAC 560優選地用於對來自SPU核心510A和諸如PU 504和/ 或其它SPU的一個或多個其它設備的DMA命令進行管理。存在有三 類DMA命令Put命令,用於將數據從本地存儲器550移動到共享 存儲器514; Get命令,用於將數據從共享存儲器514移動到本地存儲 器550中;以及存儲控制命令,包括SLI命令和同步命令。同步命令 可包括原子命令、發送信號命令和專用障礙命令。根據DMA命令, MMU 562將有效地址轉換成實地址,並將實地址轉發到BIU 564。SPU核心510A優選地使用通道接口和數據接口與DMAC 560 內的接口進行通信(發送DMA命令、狀態等)。SPU核心510A通 過通道接口將DMA命令分配到DMAC 560中DMA隊列。 一旦DMA 命令處在DMA隊列中,則通過在DMAC 560內的發送和完成邏輯對
其進行處理。當完成對於DMA命令的所有總線事務時,將完成信號 通過通道接口向回發送到SPU核心510A。圖6表示PU504的優選結構和功能。PU504包括兩個基本功能 單元,PU核心504A和存儲器流控制器(MFC ) 504B。 PU核心504A 實現程序執行、數據操作、多處理器管理功能等,而MFC504B執行 與PU核心504A和系統100的存儲器空間之間的數據傳送相關的功 能。PU核心504A可包括一級高速緩存570、指令單元572、寄存器 574、 一個或多個浮點執行級576和一個或多個定點執行及578。 一級 高速緩存為通過MFC 504B從共享存儲器106、處理器102,或存儲 器空間的其它部分接收的數據提供數據緩存功能。由於優選地將PU 核心504A實現為超流水線,從而優選地將指令單元572實現為具有 多級(包括獲取、解碼、依賴檢查、發送等)的指令流水線。此外, PU核心504A優選地屬於超標量配置,從而,每個時鐘周期從指令單 元572發出多於一個的指令。為實現高處理能力,浮點執行級576和 定點執行級578在流水線配置中包括多個級。根據所需處理能力,可 採用更多或更少數量的浮點執行級576和定點執行級578。MFC 504B包括總線接口單元(BIU)580、 二級高速緩沖存儲器、 非可高速緩存單元(NCU) 584、核心接口單元(CIU) 586和存儲器 管理單元(MMU ) 588。多數MFC 504B以與PU核心504A和總線 108相比為一半的頻率(半速)運行,以符合低功耗設計目標。BIU 580提供總線108與二級高速緩存582以及NCU 584邏輯塊 之間的接口。為此,BIU580在總線108上可起到主和從設備的作用, 以執行完全一致的存儲器操作。作為主設備,它可向總線108發出載 入/存儲請求,以代表二級高速緩存582和NCU 584進行服務。BIU 580 還可實現命令的流控制機制,用於限制可向總線108發送命令的總數 量。可將總線108上的數據操作設計成佔八拍(beat),因此,優選 地將BIU 580設計成約128位元組高速緩存線, 一致性和同步粒度為 128KB。
優選地將二級高速緩存存儲器582 (和支持硬體邏輯)設計成高 速緩存512 KB數據。例如,二級高速緩存582可處理可高速緩存載 入/存儲,數據預取、指令獲取、指令預取、高速緩存操作和障礙操作。 二級高速緩存582優選地為8路組關聯繫統。二級高速緩存582可包 括與六(6)個捨去(castout)隊列(例如,六個RC機)相匹配的六 個再栽入隊列,和八個(64位元組寬)存儲隊列。二級高速緩存582可 用於提供一級高速緩存570中某些或全部數據的備份拷貝。這在對處 理節點進行熱切換(hotswap )時恢復狀態比較有用。該配置還允許一 級高速緩存570以更少埠更快速地運行,並允許進行更快速的高速 緩存到高速緩存的傳送(由於請求可停止在二級高速緩存582)。該 配置還提供將高速緩存一致性管理傳遞到二級高速緩衝存儲器582的 機制。NCU 584與CIU 586、 二級高速緩存存儲器582和BIU 580相接 口 ,其通常起到用於PU核心504A和存儲器系統之間的非可高速緩 存操作的排隊/緩沖電路的作用.NCU 584優選地負責未由二級高速緩 存582處理的與PU核心504A進行的所有通信,例如,禁止高速緩存 的載入/存儲、障礙操作和高速緩存一致性操作。NCU584優選地以半 速運行,以符合上述功耗目標。CIU 586設置在MFC 504B和PU核心504A的邊界,對來自執 行級576, 578、指令單元572和MMU單元588以及去往二級高速緩 存582和NCU 584的請求起到路由、仲裁和流控制點的作用。PU核 心504A和MMU 588優選地以全速運行,而二級高速緩存582和NCU 584以2:1速度比運作。從而,在CIU 586中存在頻率邊界,當它在 兩個頻域之間轉發請求以及重載入數據時,其一項功能是正確處理頻 率交叉。CIU586由三個功能塊組成載入單元、存儲單元和重載入單元。 此外,數據預取功能通過CIU586執行,其優選地是載入單元的功能 部分。CIU 586優選地用於(i )接受來自PU核心504A和MMU 588 的載入和存儲請求;(ii)將請求從全速時鐘頻率轉換成半速(2:1時
鍾頻率轉換);(iii)將可高速緩存的請求路由到二級高速緩存582, 並將非可高速緩存的請求路由到NCU 584; (iv)在對二級高速緩存 582和NCU 584的請求之間進行公平仲裁;和(v)針對對二級高速 緩存582和NCU 584的分配進行流控制,使得在目標窗口中接收請求 並且避免溢出;(vi)接受載入返回數據,並將其路由到執行級576, 578、指令單元572,或MMU 588; (vii)將窺探請求路由到執行級 576, 578、指令單元572,或MMU 588;以及(viii)將載入返回數 據和窺探業務從半速轉換成全速。MMU 588優選地提供PU核心540A的地址轉換,例如,通過二 級地址轉換設備。通過可比MMU 588小得多和更快的各自指令和數 據ERAT (對實地址轉換有效)陣列,優選地在PU核心504A中設置 第一級轉換。在優選實施例中,PU504運行在4-6GHz, 10F04,並具有64位 實現。寄存器優選地為64位長(雖然一個或多個專用寄存器可以更 小),有效地址為64位長。指令單元570、寄存器572和執行級574 和576優選地使用PowerPC技術實施,以實現(RISC )計算技術。關於該計算機系統的模塊化結構的更多細節可參看美國專利No. 6,526,491,在此其全部內容引作參考。如上所述,圖4的PE 500可執行以上參照圖2詳細描述的方法 200。應該注意,為了隱藏DMAC 506的訪問時延,並且增大在重複 存儲器操作期間的數據處理速度(例如,對系統存儲器514或本地存 儲器550讀、寫數據),子處理單元508也可使用眾知的"雙緩沖器" 技術。現在參考圖7-9,其中表示出根據本發明的一個或多個實施例, 在如圖3和/或圖4所示計算機系統的系統存儲器中對圖形數據進行組 織的不同方式。為說明清楚和簡潔起見,將參照圖4所示PE500和系 統存儲器514對圖7-9進行描述。具體而言,處理器508可用於按塊 對系統存儲器514讀/寫數據,每個塊作為系統存儲器514中的鄰近區 域。在美國專利No.6,526,491中對該技術進行了詳細描述。
如圖7所示,存儲器514可包括若干區域404i,每個區域具有一 個或多個鄰近塊。在本發明的該實施例中,將所有力數據F(x,y,z)存儲 在包括存儲器的一個或多個鄰近塊的第一區域404A中。將所有位置 數據P(x,y,z)存儲在包括存儲器的一個或多個鄰近塊的笫二區域404B 中。將所有速度數據V(x,y,z)存儲在包括存儲器的一個或多個鄰近塊 的第三區域404C中。將所有顏色數據L存儲在包括存儲器的一個或 多個鄰近塊的第四區域404D中。通過遍歷區域404i,例如,如附圖 標記406i所示,可定位每個對象102的圖形數據。如以上所描述的, 期望定位存儲器514中給定對象集或子空間112內彼此接近的對象 102的圖形數據。如圖7所示,通過將對象集的圖形數據布置在超過 一個的區域404中,可實現這樣的鄰近。通過該設置,由於可使每個區域404i中未用存儲器位置的數量 最小化和/或使其消除,有效利用了存儲器514。此外,由於即便將數 據設置在不同塊中也能按對象102和按對象集將圖形數據對準,從而 處理器508可獲得圖形數據的速度相對較快。然而,為實現這些優點, 當對象102移入或移出子空間112時,對存儲器514中數據進行組織 的應用程式必須對所有存儲器空間404i中的圖形數據進行重新組織。如圖8所示,存儲器514可包括多個區域408,其中,每個區域 可包括一個或多個鄰近塊。在本發明的該實施例中,在系統存儲器514 的同一區域或塊中存儲給定對象102的所有圖形數據(例如,F, P, V, L)。順序存儲給定對象的所有圖形數據,如附圖標記410i所示。 同樣,還期望定位存儲器514中給定對象集或子空間112內彼此鄰近 的對象102的圖形數據。如圖8所示,通過將對象集的圖形數據布置 在存儲器514中的同一區域404中,可實現這樣的鄰近。通過該設置,可認為與圖7的設置相比較,存儲器514的使用效 率更低,這是由於在每個區域408中需要若干未用存儲器位置以確保 正確對準。在某些多處理環境中,例如當採用SIMD處理器508時, 使處理器508獲得和處理圖形數據所能達到的速度減小,這是由於必 須對數據類型(例如,Fx, Fy, Fz, Px, Py, Pz, Vx, Vy, Vz等) 進行矢量化,以便當使用單個指令時可對相應數據集進行操作.由於在同一塊中可找到給定對象102的所有圖形數據,從而,對存儲器514 中數據進行組織的應用程式能夠較容易地對所有存儲器區域408中的 圖形數據進行重新組織。如圖9所示,存儲器514可包括多個區域412,其中每個區域412 可包括一個或多個鄰近塊。在本發明的該實施例中,將給定對象102 的所有圖形數據(例如,F, P, V, L)存儲在系統存儲器514的同 一區域412或塊中。優選地通過將N個對象的數據順序存儲在塊中, 對圖形數據進行矢量化.例如,如果N為四,則順序存儲力數據的四 個Fx分量、力數據的四個Fy分量和力數據的四個Fz分量、力數據 的四個Fx分量。對於位置數據P、速度數據V、顏色數據L等,採 用同樣的順序分組。從而,在存儲器的塊內,將給定對象102的圖形 數據以某種程度散布,如附圖標記414i所示。有利的是,當採用SIMD 處理器508時,該設置提高了處理數據的速度。這是由於,在存儲器 514中已將數據類型(例如,Fx, Fy, Fz, Px, Py, Pz, Vx, Vy, Vz等)進行矢量化,並且當使用單個SIMD指令時可對其進行操作。然而,通過這樣的設置,可認為與圖7的設置相比較,存儲器514 的使用效率更低,這是由於在每個區域412中需要若干未用存儲器位 置以確保正確對準和矢量化。對存儲器514中數據進行組織的應用程 序可能變得較為複雜,以便當對象102移入或移出子空間112時對所 有存儲器區域412中的圖形數據進行重新組織。現參照圖10,所示時序圖700表示在每個幀期間,在處理器(例 如,如圖4所示處理器SPU1, SPU2, SPU3和SPU4 ( 508A-D ))中, 如何對給定子空間112的圖形數據進行處理。應該注意,給定子空間 112的對象102到具體SPU 508的指定優選地基於SPU是否可用於處 理給定子空間112的所有對象。此外,該指定可通過PU 504進行管 理,或可通過SPU508本身對其進行管理。在時刻Ti,假設所有SPU可用於對對象集進行處理,從而,每 個SPU 508獲得給定子空間112的圖形數據。例如,SPU1- SPU4分
別獲得子空間112rll24的圖形數據。給定SPU對給定對象集的圖形 數據進行處理所需的時期通常與子空間112中的對象102的數量成比 例。從而,SPU1-SPU4中的每個均可在不同時間完成這樣的處理。 在極端情形中,給定子空間112可不包含任何對象102,因此,至少 對於給定時間間隔,可對其進行快速調度和/或一起將其忽略。當SPU3完成對於子空間1123的對象102的計算時,約在時刻 T2, SPU3獲得另一子空間(例如,子空間1125)的圖形數據。同樣, 約在時刻T3, SPU1可完成對子空間112i的處理,並獲得子空間1126 的對象102的圖形數據,並開始對這樣的數據進行處理。約在時刻T4, SPU4可完成對子空間1124的處理,並獲得子空間1127的對象102的 圖形數據,並開始對該數據進行處理。最後,約在時刻Ts, SPU2可 完成對子空間1122的處理,並獲得子空間1128的對象102的圖形數據, 並開始對該數據進行處理。該過程繼續進行,直至在給定幀(例如, 在時刻T語D)中對空間104的所有對象102進行了處理。根據本發明的至少一個其它方面,可使用合適的硬體,例如圖中 所示的硬體,來實現上述方法和裝置。可使用任何已知技術(例如, 標準數字電路)、任何可用於執行軟體和/或固件程序的已知處理器、 一個或多個可編程數字設備或系統(例如,可編程只讀存儲器 (PROM))、可編程陣列邏輯設備(PAL)等,來實現這樣的硬體。 此外,儘管將圖中所示裝置顯示成分為特定的功能塊,然而這樣的功 能塊也可通過獨立電路實現和/或將其組合成一個或多個功能單元,此 外,本發明的各個方面可通過可存儲在合適存儲介質(例如,軟盤、 存儲器晶片等)以便進行運輸和/或發行的軟體和/或固件程序來實現。此處儘管參照具體實施例描述了本發明,然而應該理解,這些實 施例僅僅是對本發明的原理和應用的示意性描述。因此,在不偏離如 所附權利要求所定義的本發明精神和範圍的條件下,可對示意性實施 例進行多種修改,並可設計出其它方案。
權利要求
1. 一種方法,包括將三維(3D)圖形空間內的對象分成多個對象集,每個對象集處在3D空間內的相應子空間中;基於每個對象的初始圖形數據,計算對象集的每個對象的最終圖形數據,其中,使用多處理器系統的多個處理器中的相應處理器,執行對於每個對象集的相應計算;以及對於多個圖像幀的每個,使用源自前一圖像幀的最終圖形數據作為當前圖像幀的初始圖形數據,重複上述步驟。
2. 根據權利要求1的方法,其中,每個對象的圖形數據包括位 置數據、力數據、速度數據、顏色數據和質量數據中的至少之一。
3. 根據權利要求2的方法,其中,給定對象的最終圖形數據的 計算包括根據對象的初始位置數據和以下各項中的至少之一來計算 將對象的最終位置數據源自速度數據的對象初始速度、源自力數據 的對象初始力和源自質量數據的對象初始質量。
4. 根據權利要求1或2的方法,其中,給定對象的最終圖形數 據的計算包括關於對象與另一對象是否碰撞的計算。
5. 根據權利要求1至4其中之一的方法,其中,將對象分成3D 空間的子空間內的對象集的步驟包括當最終圖形數據的計算表明一 個或多個對象具有落在它們的初始子空間外部的最終位置數據時,將 至少某些對象進行重新分組。
6. 根據權利要求1至5其中之一的方法,還包括將至少某些 最終圖形數據變換成2維(2D)數據;以及繪製2D數據以便在顯示 屏上進行顯示。
7. 根據權利要求1至6其中之一的方法,其中,處理器用於執 行單指令多數據(SIMD)計算。
8. 根據權利要求l至7其中之一的方法,還包括 將對象的最終圖形數據存儲在與多個處理器連接的系統存儲器 中;以及按照與對象集和子空間相對應的方式,對系統存儲器內的最終圖 形數據進行分組。
9. 根據權利要求8的方法,還包括當最終圖形數據的計算表 明一個或多個對象具有落在它們的初始子空間外部的最終位置數據 時,將系統存儲器內的最終圖形數據進行重新分組,
10. 根據權利要求8或9的方法,其中,處理器用於對系統存儲器進行按塊數據讀/寫,每個塊是系統存 儲器中的連續區域;以及每個對象的圖形數據包括位置數據、力數據、速度數據、顏色數 據和質量數據中的至少之一,
11. 根據權利要求10的方法,其中,進行以下至少之一的操作 (i)將所有位置數據存儲在存儲器的相應一個或多個連續塊中;(ii)將所有力數據存儲在存儲器的相應一個或多個連續塊中;(iii)將所 有速度數據存儲在存儲器的相應一個或多個連續塊中;以及(iv)將 所有顏色數據存儲在存儲器的相應一個或多個連續塊中。
12. 根據權利要求10的方法,其中,進行以下至少之一的操作 將給定對象的所有圖形數據存儲在系統存儲器的同 一塊中;將多個對象的所有圖形數據存儲在系統存儲器的同 一塊或連續塊中;將給定對象集的所有圖形數據存儲在系統存儲器的同 一塊或連 續塊中。
13. 根據權利要求12的方法,其中,將給定對象的所有圖形數 據順序存儲在系統存儲器的同 一塊中。
14. 才艮據權利要求10的方法,其中,處理器用於執行單指令多數據(SIMD)計算,多數據計算的數 量為N;以及將具有N個對象的各個集合的至少某些圖形數據順序存儲在系 統存儲器中的同一塊內。
15. 根據權利要求14的方法,其中,將具有N個對象的各個集 合的位置數據、力數據、速度數據、顏色數據和質量數據中的至少之 一,順序存儲在系統存儲器的同一塊內。
16. 根據權利要求8的方法,還包括當處理器變得可用時,使 用所述處理器從系統存儲器讀取和處理子空間的對象集的圖形數據。
17. 根據權利要求1至16其中之一的方法,其中,根據處理器 的處理能力確定一個或多個子空間的尺寸。
18. 根據權利要求17的方法,其中,處理能力包括以下中的至 少之一處理器計算對象圖形數據的預期幀速率;處理器訪問存儲器 中圖形數據時所能夠具有的速度;處理器計算圖像數據時所能夠具有 的速度;以及在每個給定處理器內的本地存儲器大小。
19. 一種處理系統,包括系統存儲器,用於存儲三維(3D)圖形空間內多個對象的每個的 圖形數據;以及多個處理器,每個處理器用於將三維(3D)圖形空間內的對象分成多個對象集,每個對象集處 在3D空間內的相應子空間中;基於每個對象的初始圖形數據,計算對象集的每個對象的最終圖 形數據,其中,使用多個處理器中的相應處理器,執行對於每個對象 集的相應計算;以及對於多個圖像幀的每個,使用源自前一圖像幀的最終圖形數據作 為當前圖像幀的初始圖形數據,重複分組和計算功能。
20. 根據權利要求19的系統,其中,每個對象的圖形數據包括 位置數據、力數據、速度數據、顏色數據和質量數據中的至少之一。
21. 根據權利要求20的系統,其中,處理器還用於根據對象的 初始位置數據和以下各項中的至少之一來計算給定對象的最終位置數 據源自速度數據的對象初始速度、源自力數據的對象初始力和源自 質量數據的對象初始質量。
22. 根據權利要求19或20的系統,其中,處理器還用於使得給定對象的最終圖形數據的計算包括關於對象與另一對象是否碰撞的計 算。
23. 根據權利要求19至22其中之一的系統,其中,處理器還用 於使得將對象分組成3D空間的子空間內的對象集包括當最終圖形 數據的計算表明一個或多個對象具有落在它們的初始子空間外部的最 終位置數據時,將至少某些對象進行重新分組。
24. 根據權利要求19至23其中之一的系統,其中,處理器還用 於將至少某些最終圖形數據變換成2維(2D)數據;以及繪製2D數 據以便在顯示屏上進行顯示。
25. 根據權利要求19至24其中之一的系統,其中,處理器用於 執行單指令多數據(SIMD)計算。
26. 根據權利要求19至25其中之一的系統,其中,處理器還用於將對象的最終圖形數據存儲在系統存儲器中;以及 按照與對象集和子空間相對應的方式,對系統存儲器內的最終圖 形數據進行分組。
27. 根據權利要求26的系統,其中,處理器還用於當最終圖形 數據的計算表明一個或多個對象具有落在它們的初始子空間外部的最 終位置數據時,將系統存儲器內的最終圖形數據進行重新分組。
28. 根據權利要求26或27的系統,其中,處理器用於對系統存儲器進行按塊數據讀/寫,每個塊是系統存 儲器中的連續區域;以及每個對象的圖形數據包括位置數據、力數據、速度數據、顏色數 據和質量數據中的至少之一。
29. 根據權利要求28的系統,其中,進行以下至少之一的操作 (i)將所有位置數據存儲在存儲器的相應一個或多個連續塊中;(ii)將所有力數據存儲在存儲器的相應一個或多個連續塊中;(iii)將所 有速度數據存儲在存儲器的相應一個或多個連續塊中;以及(iv)將 所有顏色數據存儲在存儲器的相應一個或多個連續塊中。
30. 根據權利要求28的系統,其中,進行以下至少之一的操作 將給定對象的所有圖形數據存儲在系統存儲器的同 一塊中; 將多個對象的所有圖形數據存儲在系統存儲器的同 一塊或連續塊中;將給定對象集的所有圖形數據存儲在系統存儲器的同 一塊或連 續塊中。
31. 根據權利要求30的系統,其中,將給定對象的所有圖形數 據順序存儲在系統存儲器的同 一塊中。
32. 根據權利要求28的系統,其中,處理器用於執行單指令多數據(SIMD)計算,多數據計算的數 量為N;以及將具有N個對象的各個集合的至少某些圖形數據順序存儲在系 統存儲器中的同一塊內。
33. 根據權利要求32的系統,其中,將具有N個對象的各個集 合的位置數據、力數據、速度數據、顏色數據和質量數據中的至少之 一,順序存儲在系統存儲器的同一塊內。
34. 根據權利要求26的系統,還包括,當處理器變得可用時, 使用所述處理器從系統存儲器讀取和處理子空間的對象集的圖形數 據。
35. 根據權利要求19至34其中之一的系統,其中,根據處理器 的處理能力確定一個或多個子空間的尺寸。
36. 根據權利要求35的系統,其中,處理能力包括以下中的至 少之一處理器計算對象圖形數據的預期幀速率;處理器訪問存儲器 中圖形數據時所能夠具有的速度;處理器計算圖像數據時所能夠具有 的速度;以及在每個給定處理器內的本地存儲器大小。
37. —種處理裝置,包括連接系統存儲器的多個處理器,所述系 統存儲器用於存儲在三維(3D)圖形空間內多個對象的每個的圖形數 據,所述處理裝置包括所述多個處理器,每個處理器用於將三維(3D)圖形空間內的對象分成多個對象集,每個對象集處 在3D空間內的相應子空間中;基於每個對象的初始圖形數據,計算對象集的每個對象的最終圖 形數據,其中,使用多個處理器中的相應處理器,執行對於每個對象 集的相應計算;以及對於多個圖像幀的每個,使用源自前一圖像幀的最終圖形數據作 為當前圖像幀的初始圖形數據,重複分組和計算功能。
38. —種包含有軟體代碼的存儲介質,所述軟體代碼用於使與系 統存儲器相連的多個處理器中的一個或多個執行操作,所述系統存儲 器用於存儲在三維(3D)圖形空間內多個對象的每個的圖形數據,所 述操作包括將三維(3D)圖形空間內的對象分成多個對象集,每個對象集處 在3D空間內的相應子空間中;基於每個對象的初始圖形數據,計算對象集的每個對象的最終圖 形數據,其中,使用多處理器系統的多個處理器中的相應處理器,執 行對於每個對象集的相應計算;以及對於多個圖像幀的每個,使用源自前一圖像幀的最終圖形數據作 為當前圖像幀的初始圖形數據,重複上述步驟。
全文摘要
本發明所提供的方法和裝置用於將三維(3D)圖形空間內的對象分成多個對象集,每個對象集處在3D空間內的相應子空間中;基於每個對象的初始圖形數據,計算對象集的每個對象的最終圖形數據,其中,使用多處理器系統的多個處理器中相應一個,執行每個對象集的相應計算;以及對於多個圖像幀的每個,使用源自前一圖像幀的最終圖形數據作為當前圖像幀的初始圖形數據,重複上述步驟。
文檔編號G06T15/00GK101401128SQ200680001240
公開日2009年4月1日 申請日期2006年2月7日 優先權日2005年2月7日
發明者安江正宏 申請人:索尼計算機娛樂公司

同类文章

一種新型多功能組合攝影箱的製作方法

一種新型多功能組合攝影箱的製作方法【專利摘要】本實用新型公開了一種新型多功能組合攝影箱,包括敞開式箱體和前攝影蓋,在箱體頂部設有移動式光源盒,在箱體底部設有LED脫影板,LED脫影板放置在底板上;移動式光源盒包括上蓋,上蓋內設有光源,上蓋部設有磨沙透光片,磨沙透光片將光源封閉在上蓋內;所述LED脫影

壓縮模式圖樣重疊檢測方法與裝置與流程

本發明涉及通信領域,特別涉及一種壓縮模式圖樣重疊檢測方法與裝置。背景技術:在寬帶碼分多址(WCDMA,WidebandCodeDivisionMultipleAccess)系統頻分復用(FDD,FrequencyDivisionDuplex)模式下,為了進行異頻硬切換、FDD到時分復用(TDD,Ti

個性化檯曆的製作方法

專利名稱::個性化檯曆的製作方法技術領域::本實用新型涉及一種檯曆,尤其涉及一種既顯示月曆、又能插入照片的個性化檯曆,屬於生活文化藝術用品領域。背景技術::公知的立式檯曆每頁皆由月曆和畫面兩部分構成,這兩部分都是事先印刷好,固定而不能更換的。畫面或為風景,或為模特、明星。功能單一局限性較大。特別是畫

一種實現縮放的視頻解碼方法

專利名稱:一種實現縮放的視頻解碼方法技術領域:本發明涉及視頻信號處理領域,特別是一種實現縮放的視頻解碼方法。背景技術: Mpeg標準是由運動圖像專家組(Moving Picture Expert Group,MPEG)開發的用於視頻和音頻壓縮的一系列演進的標準。按照Mpeg標準,視頻圖像壓縮編碼後包

基於加熱模壓的纖維增強PBT複合材料成型工藝的製作方法

本發明涉及一種基於加熱模壓的纖維增強pbt複合材料成型工藝。背景技術:熱塑性複合材料與傳統熱固性複合材料相比其具有較好的韌性和抗衝擊性能,此外其還具有可回收利用等優點。熱塑性塑料在液態時流動能力差,使得其與纖維結合浸潤困難。環狀對苯二甲酸丁二醇酯(cbt)是一種環狀預聚物,該材料力學性能差不適合做纖

一種pe滾塑儲槽的製作方法

專利名稱:一種pe滾塑儲槽的製作方法技術領域:一種PE滾塑儲槽一、 技術領域 本實用新型涉及一種PE滾塑儲槽,主要用於化工、染料、醫藥、農藥、冶金、稀土、機械、電子、電力、環保、紡織、釀造、釀造、食品、給水、排水等行業儲存液體使用。二、 背景技術 目前,化工液體耐腐蝕貯運設備,普遍使用傳統的玻璃鋼容

釘的製作方法

專利名稱:釘的製作方法技術領域:本實用新型涉及一種釘,尤其涉及一種可提供方便拔除的鐵(鋼)釘。背景技術:考慮到廢木材回收後再加工利用作業的方便性與安全性,根據環保規定,廢木材的回收是必須將釘於廢木材上的鐵(鋼)釘拔除。如圖1、圖2所示,目前用以釘入木材的鐵(鋼)釘10主要是在一釘體11的一端形成一尖

直流氧噴裝置的製作方法

專利名稱:直流氧噴裝置的製作方法技術領域:本實用新型涉及ー種醫療器械,具體地說是ー種直流氧噴裝置。背景技術:臨床上的放療過程極易造成患者的局部皮膚損傷和炎症,被稱為「放射性皮炎」。目前對於放射性皮炎的主要治療措施是塗抹藥膏,而放射性皮炎患者多伴有局部疼痛,對於止痛,多是通過ロ服或靜脈注射進行止痛治療

新型熱網閥門操作手輪的製作方法

專利名稱:新型熱網閥門操作手輪的製作方法技術領域:新型熱網閥門操作手輪技術領域:本實用新型涉及一種新型熱網閥門操作手輪,屬於機械領域。背景技術::閥門作為流體控制裝置應用廣泛,手輪傳動的閥門使用比例佔90%以上。國家標準中提及手輪所起作用為傳動功能,不作為閥門的運輸、起吊裝置,不承受軸向力。現有閥門

用來自動讀取管狀容器所載識別碼的裝置的製作方法

專利名稱:用來自動讀取管狀容器所載識別碼的裝置的製作方法背景技術:1-本發明所屬領域本發明涉及一種用來自動讀取管狀容器所載識別碼的裝置,其中的管狀容器被放在循環於配送鏈上的文檔匣或託架裝置中。本發明特別適用於,然而並非僅僅專用於,對引入自動分析系統的血液樣本試管之類的自動識別。本發明還涉及專為實現讀