亚洲成年人黄色一级片,日本香港三级亚洲三级,黄色成人小视频,国产青草视频,国产一区二区久久精品,91在线免费公开视频,成年轻人网站色直接看

圖形流水線的有效狀態(tài)管理的制作方法

文檔序號:6479274閱讀:195來源:國知局
專利名稱:圖形流水線的有效狀態(tài)管理的制作方法
技術領域
本發(fā)明涉及執(zhí)行在計算機系統(tǒng)內的計算操作。
背景技術
圖形處理單元(GPU)是一被專門設計成執(zhí)行圖形處理任務的專用集成電路 (ASIC)。GPU可例如執(zhí)行終端用戶應用所要求的圖形處理任務,該終端用戶應用例如為視頻 游戲應用。于此例中,該終端用戶應用與該GPU之間有數個軟件層。該終端用戶應用與應 用程序接口(API)交流。API允許該終端用戶應用以標準化格式輸出圖形數據及命令,而不 是以依賴該GPU的格式輸出圖形數據及命令。數個類型的API市面有售,包括微軟公司開 發(fā)的DirectX 以及硅谷圖形公司開發(fā)的OpenGL 。該API與驅動器(driver)交流。該 驅動器將接收自該API的標準碼翻譯成該GPU理解的指令的原始格式。該驅動器典型地由 該GPU制造商寫出。接著該GPU執(zhí)行來自該驅動器的指令。許多GPU包括執(zhí)行所述指令的圖形流水線。圖形流水線包括多個處理模塊,所述 處理模塊同時工作于一指令的不同階段。流水線操作能使GPU利用存在于執(zhí)行該指令所需 的所述階段中的并行性。因此,GPU可在更短的時間周期內執(zhí)行更多的指令。該圖形流水線的輸出依賴該圖形流水線的狀態(tài)。該圖形流水線的狀態(tài)依據狀態(tài) 封包更新,所述狀態(tài)封包即特定背景常量(context-specific constant)(例如紋理句柄 (texture handle)、著色常量(shader constant)、變換矩陣(transform matrix)等等), 其被該圖形流水線局部存儲。由于所述特定背景常量是局部保存,所以可被該圖形流水線 快速存取。該圖形流水線保存的狀態(tài)封包的數量依賴于該GPU耦接(couple)的API。所述 狀態(tài)封包與普通的API有關,所述狀態(tài)封包可儲存在相對小數量的寄存器內,例如8個寄存 器。然而,與普通的API不同,較新的API(例如DirectX 10)需要相對大數量的頻繁背景 切換,所述切換關于該流水線的某些方面。與這些頻繁背景切換有關的所述狀態(tài)封包的數 量不能被普通圖形流水線所保存的相對小數量寄存器所支持。處理與較新API有關的較大數量狀態(tài)封包的潛在解決方案是僅僅增加該圖形流 水線支持的狀態(tài)封包的數量。然而,由于需要額外的寄存器以處理額外的狀態(tài)封包,這種解 決方案將會顯著增加晶片面積。此外,如果所述狀態(tài)封包的數量超過該流水線的儲存能力, 該圖形流水線將會暫緩,因此,這種解決方案可能產生時間問題(timing issue)。另一潛在解決方案將嘗試使用軟件對增加的狀態(tài)封包數量進行補償。例如該驅動 器或該終端用戶應用可嘗試將發(fā)送給該GPU的工作重定序以減少狀態(tài)改變數量(增加每一 狀態(tài)改變所發(fā)送的工作)。然而這種解決方案具有至少兩個缺點。第一缺點為,這種解決方 案僅對一些工作負荷(workload)(—些固有太多狀態(tài)改變的工作負荷)起作用。第二缺點 為,這種解決方案顯著增加該CPU檢索及分類輸入事務(inputtransaction)的工作負荷。綜上所述,需要一種提供有效狀態(tài)管理系統(tǒng)的方法及系統(tǒng)。

發(fā)明內容
透過提供一有效狀態(tài)管理系統(tǒng)及其應用,本發(fā)明滿足上述確定的要求。根據本發(fā)明一實施例,提出一執(zhí)行狀態(tài)依賴進程(state-cbpedentprocess)的基 于計算機的系統(tǒng)(computer-based system)。該基于計算機的系統(tǒng)包括命令處理器以及多 個處理模塊。該命令處理器接收命令流內的命令,并管理響應于該命令流內的全局背景事 件的全局狀態(tài)。該多個處理模塊接收該命令流內的所述命令,并管理響應于該命令流內的 模塊背景事件的各個模塊狀態(tài)。該多個處理模塊依據該全局狀態(tài)及所述各個處理模塊的模 塊狀態(tài)在一數據流內的數據上執(zhí)行進程。根據本發(fā)明另一實施例,提出一在一ASIC內執(zhí)行狀態(tài)依賴進程的方法。該方法包 括管理響應于一命令流內的全局背景事件的該ASIC的全局狀態(tài)、以及分別管理響應于該 命令流內的模塊背景事件的多個處理模塊內的每一處理模塊的模塊狀態(tài)。該多個處理模塊 依據該全局狀態(tài)及所述各個處理模塊的模塊狀態(tài)在一數據流內的數據上執(zhí)行進程。根據本發(fā)明的再一實施例,提出一有形計算機可讀儲存媒介,包括具體表現在軟 件內的ASIC,其中,該ASIC執(zhí)行狀態(tài)依賴進程。該ASIC包括命令處理器以及多個處理模 塊。該命令處理器接收命令流內的命令,并管理響應于該命令流內的全局背景事件的全局 狀態(tài)。該多個處理模塊接收該命令流內的所述命令,并管理響應于該命令流內的模塊背景 事件的各個模塊狀態(tài)。該多個處理模塊依據該全局狀態(tài)及所述各個處理模塊的模塊狀態(tài)在 一數據流內的數據上執(zhí)行進程。以下參考附圖詳細描述本發(fā)明更多的特征及優(yōu)點和本發(fā)明的各種實施例的結構 及操作。注意本發(fā)明并非限制于本文描述的所述特定實施例。本文介紹的所述實施例僅作 說明目的。依據本文包含的所述教導,本領域的技術人員將明了附加的實施例。


所述附圖包含在本文內并形成該說明書的一部分,所述附圖與該描述一起闡述本 發(fā)明,進一步擔任解釋本發(fā)明的原理并使本領域技術人員能制造及使用本發(fā)明。圖1描繪一闡述一范例系統(tǒng)的方塊圖,該范例系統(tǒng)包括根據本發(fā)明一實施例的 GPU ;圖2描繪一闡述圖1的GPU特征的方塊圖;圖3描繪一闡述包含在圖1的GPU內的圖形流水線細節(jié)的方塊圖;以及圖4描繪一表,該表闡述根據本發(fā)明一實施例的全局狀態(tài)及模塊狀態(tài)的管理。從以下提出的結合附圖的實施方式中,本發(fā)明的特征及優(yōu)點將變得更明了。于所 述附圖中,相同的參考符號始終識別相關的元件。于所述圖式內,相同的參考數字大體標示 相同的、功能相似及/或結構相似的元件。對應參考數字內的該最左數位標示元件首次出 現其中的該圖式。
具體實施例方式I.概述本發(fā)明提供一用于復雜ASIC的有效狀態(tài)管理系統(tǒng)及其應用。在以下詳細描述中, 關于〃 一個實施例(one embodiment)",“ 一實施例(anembodiment)“,“ 一具體實施例
5(an example embodiment)“等等表明該所述實施例可包括特定特征、結構或特色,但每一 實施例可不必然包括該特定特征、結構或特色。而且,這樣的短語不必然涉及相同實施例。 此外,當結合一實施例描述特定特征、結構或特色時,我們認為在本領域的技術人員的知識 內能夠結合其他實施例以變更這樣的特征、結構或特色,不論所述實施例是否被明確描述。為闡述目的而非做為限制,根據本發(fā)明實施例的有效狀態(tài)管理系統(tǒng)在本文中從 GPU的角度描述,該GPU根據該GPU的圖形流水線的全局狀態(tài)與模塊狀態(tài)執(zhí)行繪圖命令流 (steam of draw command)。然而,需明白的是這樣的有效狀態(tài)管理系統(tǒng)可應用于其他類型 的系統(tǒng),所述其他類型的系統(tǒng)根據所述各個系統(tǒng)的狀態(tài)執(zhí)行命令流。根據本文所述,本領域 技術人員將了解如何在其他類型系統(tǒng)內實施本發(fā)明的實施例。如上所述,根據本發(fā)明一實施例的有效狀態(tài)管理系統(tǒng)獨立管理一圖形流水線的 全局狀態(tài)及模塊狀態(tài)。該全局狀態(tài)包括預定數量的可能的全局狀態(tài)(possible global state),例如,8個可能的全局狀態(tài)。所述模塊狀態(tài)各自包括預定數量的可能的模塊狀態(tài),例 如2、4、8、16、32、64或一些其他數量的可能的模塊狀態(tài)。對于每一模塊,所述可能的模塊狀 態(tài)的數量可能不同。該全局狀態(tài)可相當于與不能頻繁改變的場景內所描繪的特征有關的繪 畫常量,例如該場景內的光線方向。所述模塊狀態(tài)可相當于與該頻繁改變的場景內所描繪 的特征有關的繪畫常量,例如該場景所描繪的由于風所導致的草吹動的方向。如本文所使用,該術語“模塊(block),,指包含在ASIC、CPU的執(zhí)行流水線、及/或 GPU的圖形流水線內的處理模塊。這樣的處理模塊可包括但并非限制于算術邏輯單元、乘 法/除法單元、浮點單元、色彩緩沖器、頂點著色器(vertex shader)、像素著色器、限幅單 元(clippingimit)、Z緩沖器、或本領域技術人員明了的一些其他處理模塊。由于根據本發(fā)明的實施例的圖形流水線獨立管理全局狀態(tài)及模塊狀態(tài),這樣的圖 形流水線可執(zhí)行繪圖命令,該繪圖命令是以比普通圖形流水線更大數量的不同值為基礎。 例如普通圖形流水線可典型地執(zhí)行一基于多達8個不同值的繪圖命令。相反地,根據本發(fā) 明的一實施例的圖形流水線可執(zhí)行一基于多達例如256個不同值的繪圖命令。該全局狀態(tài)被一命令處理器(co_and processor,簡稱CP)管理。該CP保持一全 局狀態(tài)已使用位(globe-state dirty bit)及一全局狀態(tài)識別(ID)位。該全局狀態(tài)已使 用位標示該圖形流水線的該全局狀態(tài)是否需要更新。該全局狀態(tài)ID位標示該圖形流水線 的全局狀態(tài)。一全局背景事件(globe context event)后,該全局狀態(tài)ID位遞增。全局背 景事件是一輸入(數據)流(例如數據封包)內的事件,該輸入流標示該全局狀態(tài)待被更 新(to be updated)。該全局狀態(tài)已使用位由于一繪圖呼叫(draw call)而被清除。所述模塊狀態(tài)被該圖形流水線的所述各個模塊管理。該圖形流水線內的每一模 塊保存一模塊狀態(tài)已使用位及一模塊狀態(tài)ID位。該模塊狀態(tài)已使用位標示一模塊的該模 塊狀態(tài)是否應該更新。符合一模塊的該模塊狀態(tài)ID位標示那個模塊的模塊狀態(tài)。在一模 塊背景事件上,若下一模塊狀態(tài)更新符合那個模塊,一模塊的模塊狀態(tài)ID位遞增。模塊背 景事件是該輸入(數據)流(例如數據封包)內的事件,該輸入流標示一模塊狀態(tài)待被更 新。于一實施例中,該圖形流水線內的模塊根據該下一模塊狀態(tài)更新(next block state update)的地址區(qū)間確定該下一模塊狀態(tài)更新符合該模塊。與該全局狀態(tài)已使用位相似,該 模塊狀態(tài)已使用位由于一繪圖呼叫而被清除。一有效狀態(tài)管理系統(tǒng)可表達在計算機系統(tǒng)內,該計算機系統(tǒng)包括GPU。以下更詳細描述這樣的有效狀態(tài)管理系統(tǒng)的一范例硬件實施及其操作。還描述這樣的有效狀態(tài)管理系 統(tǒng)的軟件實施。II.有效狀態(tài)管理系統(tǒng)的一范例硬件實施如上所述,根據本發(fā)明一實施例的有效狀態(tài)管理系統(tǒng)可實施在一 ASIC內,該ASIC 執(zhí)行一命令流。為闡述目的,并非限制,這樣的有效狀態(tài)管理系統(tǒng)是從一范例圖形流水線角 度描述,該圖形流水線包括在一計算機系統(tǒng)內,以下詳細描述該計算機系統(tǒng)。A.范例計算機系統(tǒng)概述圖1是根據一實施例的計算機系統(tǒng)100的方塊圖。系統(tǒng)100包括中央處理單元 (CPU) 102、圖形處理單元(GPU) 110,且可選擇地包括協同處理器(coprocessor) 112。此外, 計算機系統(tǒng)100包括系統(tǒng)存儲器104,該系統(tǒng)存儲器104可被CPU 102,GPU 110以及協同處 理器112存取。GPU 110以及協同處理器112通過總線114與CPU 102及系統(tǒng)存儲器104 交流??偩€114可以是使用在計算機系統(tǒng)內的任何類型總線,包括但并非限制于周邊元件 擴展接口(PCI)總線、加速圖形接口(AGP)總線以及高速周邊元件擴展接口(PCIE)總線。 GPU 110及協同處理器112透過執(zhí)行某些特殊功能幫助CPU 102,GPU 110及協同處理器 112執(zhí)行所述特殊功能通常比CPU 102以軟件形式執(zhí)行所述特殊功能快。協同處理器112 可包括但并非限制于浮點協同處理器、GPU、聯網協同處理器以及本領域技術人員明了的其 他類型的協同處理器及處理器。系統(tǒng)100還包括第一局部存儲器106及第二局部存儲器108。第一局部存儲器106 耦接至GPU 110以及也耦接至總線114。第二局部存儲器108耦接至協同處理器112并也 耦接至總線114。第一及第二局部存儲器106、108分別對GPU 110及協同處理器112有效 以便提供盡可能更快的存取某些數據(例如頻繁使用的數據),如果所述數據儲存在系統(tǒng) 存儲器104內的話。于一實施例中,GPU 110及協同處理器112與CPU 102 一起并行解碼指令,并且僅 執(zhí)行那些為它們準備的指令。于另一實施例中,CPU102將為GPU 110及協同處理器112準 備的指令發(fā)送至各自的命令緩沖器。例如,圖2描繪一闡述一實施例的方塊圖,于該實施例中,CPU102將為GPU 110準 備的指令發(fā)送至一命令緩沖器202。命令緩沖器202可位于例如系統(tǒng)存儲器104內或可為 耦接至總線114的獨立存儲器。如圖2所示,GPU 110包括程序機204以及圖形流水線206。 程序機204從命令緩沖器202取回指令。程序機204轉送所述指令至圖形流水線206內的 一命令處理器。以下詳細描述圖形流水線206。B.范例圖形流水線圖3描繪一方塊圖,該方塊圖闡述根據本發(fā)明一實施例的圖形流水線206的細節(jié)。 如圖3所示,圖形流水線206包括命令處理器(CP) 310、寄存器總線管理器(register bus manager,簡稱RBM) 320、數據總線傳送(data bus transfer,簡稱DBT)模塊330、模塊A 340a、模塊B 340b、模塊C 340c、以及模塊D 340d。以下詳細描述所述元件中的每一元件。CP 310接收例如來自程序機204的命令流內的命令,所述命令包括繪圖命令、全 局狀態(tài)更新以及模塊狀態(tài)更新。于一實施例中,每一命令包括寄存器地址。于該實施例中, 可根據包括在該命令內的該地址是否落在預定地址范圍內,將一命令解析(parse)為繪圖 命令、全局狀態(tài)更新或模塊狀態(tài)更新。然而,本發(fā)明并非限制于該實施例。本領域技術人員將明了在不悖離本發(fā)明的精神及范疇下可使用解析命令的其他機制。CP 310還保存二已使用位(1)全局管理已使用(GMD)位312以標示全局狀態(tài)更 新是否已被接收;(2)模塊管理已使用(BMD)位314以標示模塊狀態(tài)更新是否已被接收。透 過例如上電成(power up as)邏輯1,GMD位312及BMD位314將已使用(組(set))上電。 透過一繪圖命令清除該二位。CP 310還管理寫進圖形流水線206的模塊340的寄存器的全局狀態(tài)數量。為管理 全局狀態(tài)數量,CP 310管理全局狀態(tài)識別(ID),該全局狀態(tài)識別(ID)標示圖形流水線206 的該全局狀態(tài)。該全局狀態(tài)ID的范圍從0變化至圖形流水線206所承受的全局狀態(tài)最大 數量,例如8個全局狀態(tài)。當GPU 110被上電,該全局狀態(tài)ID被設置處于0狀態(tài)。如下詳 細所述,一全局背景事件被接收以及一新的全局狀態(tài)寫進圖形流水線206之后,該全局狀 態(tài)ID遞增。圖形流水線206(例如模塊D340d)內的一最后的模塊發(fā)送一脈沖回至CP 310 之后,一全局狀態(tài)ID被釋放(且之后可被重新使用)。例如,CP 310可將該全局狀態(tài)ID從 0遞增至1,但全局狀態(tài)ID 0不能被重新使用直到該最后模塊發(fā)送一脈沖回至CP 310標示 與全局狀態(tài)ID 0相對應的該背景已結束。CP 310耦接至RBM 320。CP 310寫所述繪圖命令、所述全局狀態(tài)更新及所述模塊 狀態(tài)更新至RBM 320。如下詳細所述,分配給圖形流水線206的全局狀態(tài)數量由CP 310管理。RBM 320耦接至DBT模塊330。RBM 320寫所述繪圖命令、所述全局狀態(tài)更新及所 述模塊狀態(tài)更新至DBT模塊330。如下詳細所述,分配給圖形流水線206的模塊狀態(tài)數量由 RBM 320及所述各個模塊340共同管理。DBT模塊330透過數據總線380及寄存器總線(控制總線)390耦接至模塊A 340a、模塊B 340b、模塊C 340c以及模塊D 340d。數據總線380提供輸入(數據)流至模 塊340。模塊A 340a到模塊D 340d以串接鏈方式(daisy chain manner)耦接至數據總線 380。也就是說模塊A 340a在該輸入流內的數據上執(zhí)行進程,接著將該數據發(fā)送至模塊B 340b;模塊B 340b在該輸入流內的該數據上執(zhí)行進程,接著將該數據發(fā)送至模塊C 340c; 模塊C 340c在該輸入流內的該數據上執(zhí)行進程,接著將該數據發(fā)送至模塊D 340d;以及模 塊D 340d在該輸入流內的該數據上執(zhí)行進程,接著將該數據輸出作為圖形流水線206的輸 出。模塊D 340d在一給定全局背景的該數據上執(zhí)行進程之后,模塊D 340d發(fā)送一脈沖回至 CP 310以標示與該給定全局背景相關的該全局狀態(tài)ID可被重新分配。除提供一輸入(數 據)流之外,數據總線380提供全局背景事件及模塊背景事件給模塊340。于一實施例中, 數據總線380是一百位寬。寄存器總線390提供命令給模塊340,所述命令包括繪圖命令、全局狀態(tài)更新以及 模塊狀態(tài)更新。一繪圖命令根據分配給該繪圖命令的該全局狀態(tài)及該(所述)模塊狀態(tài)指 示模塊340在自數據總線380接收的該數據上執(zhí)行繪圖。全局狀態(tài)更新被寫進所述各個模塊保持的局部寄存器。如圖3所述,模塊A 340a 寫所述全局狀態(tài)更新至寄存器文件A 342內的寄存器;模塊B 340b寫所述全局狀態(tài)更新至 寄存器文件B 352內的寄存器;模塊C 340c寫所述全局狀態(tài)更新至寄存器文件C 362內的 寄存器;以及模塊D 340d寫所述全局狀態(tài)更新至寄存器文件D 372內的寄存器。模塊狀態(tài)更新僅僅被寫至圖形流水線206內特定模塊。例如寄存器總線390上的
8一模塊狀態(tài)更新可僅為模塊B 340b準備。于該實施例中,僅模塊B 340b將會寫該模塊狀 態(tài)更新至寄存器文件B 352內的一寄存器內。所有其他模塊將不會寫該模塊狀態(tài)更新至它 們各自保持的局部寄存器文件內的寄存器。于一實施例中,一模塊狀態(tài)更新包括地址。于 該實施例中,每一模塊340根據該模塊狀態(tài)更新的地址決定其是否應該寫該模塊狀態(tài)更新 至它的局部寄存器文件。然而,本領域技術人員將明了在不悖離本發(fā)明的精神及范疇下,可 使用決定特定模塊是否應該寫一模塊狀態(tài)更新至它的局部寄存器的其他機制。給定圖形流水線206結構,以下詳細描述其操作。III.有效狀態(tài)管理系統(tǒng)的范例操作如上所述,圖形流水線206獨立管理全局狀態(tài)更新及模塊狀態(tài)更新,因此,使圖形 流水線206能夠根據相對大數量的不同繪圖常量執(zhí)行繪圖命令。首先,介紹全局管理狀態(tài) 及模塊管理狀態(tài)的概述。接著,介紹一限制分配該圖形流水線206的全局狀態(tài)及模塊狀態(tài) 數量的范例方式。最后,介紹一系列范例事件以闡述根據本發(fā)明一實施例的有效狀態(tài)管理 系統(tǒng)的操作。A.全局及模塊管理狀態(tài)轉變CP 310管理全局狀態(tài)更新。如果CP 310檢測到該命令流內的一全局狀態(tài)更新 以及如果圖形流水線206內有可被寫的全局狀態(tài)寄存器,CP 310將執(zhí)行以下功能(i)設 置GMD位312 (如果GMD位312還未被設置);(ii)發(fā)送一全局背景事件(即“Global_ Context.Done")給RBM320,RBM 320在數據總線380上提供該全局背景事件;(iii)遞增 該全局狀態(tài)ID位;(iv)寫給在CP 310內的GBL_C0PY_STATE寄存器;以及(ν)發(fā)送該全 局狀態(tài)更新給RBM 320,RBM 320在寄存器總線390上提供該全局狀態(tài)更新。然而,如果CP 310檢測到該命令流內的一全局狀態(tài)更新,但圖形流水線206內沒有可用的全局狀態(tài)寄存 器,前述寫給該GBL_C0PY_STATE寄存器暫緩直到一背景可用。GMD位312被用于標示一背 景已為了這組狀態(tài)被滾動。如果BMD位314未被設置且CP 310檢測到該命令流內的模塊狀態(tài)更新,CP310將 設置BMD位314,發(fā)送被所述模塊狀態(tài)更新跟隨的Bl0Ck_C0ntext_D0ne事件。由CP 310及 各個的模塊340保存的所述已使用位被設置成標示一背景已為了這組狀態(tài)被滾動。如果沒 有可用的模塊狀態(tài)寄存器,該目標模塊(例如模塊B 340b)若不再接收寄存器更新,則該目 標模塊(例如模塊B 340b)為不能恢復空閑負責。藉由章節(jié)III. C所提供的一系列范例事件進一步闡述該全局及模塊管理狀態(tài)轉 變的操作。B.管理分配給本發(fā)明一實施例的圖形流水線的全局狀態(tài)及模塊狀態(tài)的數量。分配給圖形流水線206的全局狀態(tài)數量由CP 310管理,但是,分配給圖形流水線 206的模塊狀態(tài)數量由RBM 320及所述各個模塊340共同管理。現在詳細描述管理全局狀 態(tài)及模塊狀態(tài)數量的機制。CP 310不斷地寫繪圖命令及模塊狀態(tài)更新給RBM 320。然而,如果所分配的全局 狀態(tài)數量小于圖形流水線206所承受的全局狀態(tài)最大數量,CP 310僅寫全局狀態(tài)更新給 RBM 320。即,分配給圖形流水線206的全局狀態(tài)數量由CP 310管理。RBM 320不斷地寫繪圖命令及全局狀態(tài)更新給DBT模塊330。然而,如果所分配的 模塊狀態(tài)數量小于圖形流水線206的模塊340所承受的模塊狀態(tài)的最大數量,RBM 320僅寫模塊狀態(tài)更新給DBT模塊330。DBT模塊330根據接收自模塊340的信號決定模塊狀態(tài)數 量是否小于該最大數量。即,RBM 320及所述各個模塊340管理分配給圖形流水線206的 模塊狀態(tài)更新數量。如上所述,RBM 320及模塊340共同起作用以調節(jié)(throttle)寫進圖形流水線 206的模塊狀態(tài)更新數量。如圖3所述,模塊340分別透過跡線344、354、364及374連接至 RBM 320。只要分配給所述模塊的模塊狀態(tài)數量小于每一模塊的模塊狀態(tài)的最大數量,RBM 320寫模塊狀態(tài)更新給DBT模塊330,DBT模塊330依次(in turn)寫所述模塊狀態(tài)更新至 寄存器總線390。然而如果一個模塊340的模塊更新數量達到那個模塊的模塊狀態(tài)最大數 量,那個模塊不返回“空閑(free) ”信號給RBM 320。因此,RBM 320暫緩直到先前發(fā)布的繪 圖命令完成執(zhí)行以及分配給那個繪圖命令的該模塊狀態(tài)(或所述模塊狀態(tài))被解除分配。C. 一系列范例事件圖4描繪表400,表400闡述圖形流水線206如何響應于一系列范例事件。如圖4 所示,表400包括8列。第一列410包括行號(linenumber),所述行號列舉所接收到的該一 系列事件。第二列420包括CP 310所接收的并被寫至寄存器總線390的范例事件。第三 列430包括該提供在數據總線380上的輸入(數據)流。第四列440標示CP 310的GMD 位312的狀態(tài)。第五列450包括CP 310的BMD位314的狀態(tài)。第六列460包括全局狀態(tài) ID,該全局狀態(tài)ID標示圖形流水線206的全局狀態(tài)。第七列470標示一模塊已使用位的狀 態(tài)及模塊A 340a的模塊背景標志位。以及第八列480標示模塊A 340a的一模塊狀態(tài)ID。 第七列470及第八列480闡述模塊A 340a如何響應于該一系列范例事件。本領域技術人 員將了解模塊B 340b、模塊C 340c、模塊D 340d以與模塊A 340a相同的方式運行?,F詳 細描述由第一列410內的行號所列舉的該一系列事件。參考表400第一列410,如第四列440及第五列450所分別描述,行1闡述GMD位 312及BMD位314是被上電已使用(power up dirty)(即邏輯1)。此外,第七列470闡述 模塊A 340a的已使用位也被上電已使用(及邏輯1)。于行2及3內,一模塊狀態(tài)及一全局 狀態(tài)被分別接收。所述狀態(tài)寫(state write)不能引起任何狀態(tài)改變。于行4 內,一 Draw_Initiator_in_Context_(Ctx)_0 命令被接收。如第四列 440、 第五列450及第七列470分別所述,這個繪圖命令清除GMD位312、BMD位314以及由模塊 A 340a管理的該已使用位。該繪圖命令被執(zhí)行在數據總線380上所提供的數據上。第三列 430標示這個數據包括頂點/像素矢量(vertex/pixel vectors)。于行5內,Global_Context_Done命令被接收。這個命令標示全局背景0已經結 束。因此,該全局背景事件(Ctx Done Event)被提供在數據總線380上以指示圖形流水線 206內的模塊340該全局背景0已經結束。于一實施例內,該背景完成事件是一數據封包。于行6內,一寫GBL_C0PY_STATE命令被接收。這個命令標示一個新全局狀態(tài)將被 寫進圖形流水線206的所述寄存器。由于這個命令,如第四列440所標示,GMD位312被設 置。此外,如第六列460所標示,該全局狀態(tài)ID位被遞增至1以標示圖形流水線206正進 入一新的全局狀態(tài)。于行7內,與全局背景1相對應的該全局狀態(tài)更新被接收且被寫進圖形流水線206 的所述寄存器。于行8內,DraW_Initiat0r_in_CtX_l命令被接收。這個繪圖命令清除先前設置的
10唯一的已使用位,即第四列440所述的GMD位312。與行4所接收的Draw_Initiator_in_ Ctx_0相似,該Draw_Initiator_in_Ctx_l命令被執(zhí)行在數據總線380上攜帶(carry)的頂
點/像素矢量上。于行9內,一 Block_Context_Done事件被接收。這個命令標示所述模塊背景中的 一個模塊背景已被完成。因此,BMD位314被設置(如第五列450所述)且一模塊背景事件 (Blk_Ctx_Done_Event)被提供在數據總線380上。如第七列470所標示,模塊A 340a檢測 這個事件,但并不初始設置它的已使用位。模塊A 340a不初始設置其已使用位是因為仍然 未確定這個模塊事件是否與模塊A 340a相對應。這個模塊事件可與圖形流水線206內的 任一模塊340相對應。于行10內,一模塊狀態(tài)(BloCk_State)(包括BlkA狀態(tài))命令被接收,該命令標 示這個模塊事件與模塊A 340a相對應。因此,分別如第七列470及第八列480所標示,模 塊A 340a設置它的已使用位并遞增它的狀態(tài)ID。如上所述,于一實施例中,該命令流內的 所述命令包括地址,且由于該BloCk_State的地址落入與模塊A 340a相對應的預定地址范 圍,模塊A 340a決定該BloCk_State應該被寫進寄存器文件A 342內的一寄存器。于行11內,Gl0bal_C0nteXt_D0ne命令被接收。這個命令標示全局背景1已結束。 因此,一全局背景事件(Ctx_D0ne_Event)被提供在數據總線380上,以指示圖形流水線206 內的模塊340全局背景1已結束。于行12內,寫GBL_C0PY_STATE命令被接收,與行6所接收的寫GBL_C0PY_STATE 命令相似,該接收在行12內的命令標示一新的全局狀態(tài)將被寫進圖形流水線206的所述寄 存器。由于這個命令,如第四列440所標示,GMD位312被設置。此外,如第六列460所標 示,該全局狀態(tài)ID位被遞增至2,以標示圖形流水線206正進入一個新的全局狀態(tài)。于行13內,與全局背景2相對應的該全局狀態(tài)更新被接收且寫進圖形流水線206 的所述寄存器。于行14內,DraW_Initiat0r_in_CtX_2命令被接收,這個繪圖命令清除先前設置 的所述已使用位,所述已使用位即分別如第四列440、第五列450及第七列470所述的GMD 位312、BMD位314以及由模塊A 340a管理的該已使用位。與行4所接收的Draw_Initiator_ in_Ctx_0 及行 8 所接收的 Draw_Initiator_in_Ctx_l 相似,該 Draw_Initiator_in_Ctx_2 命令被執(zhí)行在提供于數據總線380上的頂點/像素矢量上。于行15內,Block_Context_Done事件被接收。這個命令標示所述模塊背景中的 一個模塊背景已完成。因此,BMD位314被設置(如第五列450所述),且一模塊背景事件 (Blk_Ctx_Done_Event)被寫進數據總線380。如第七列470所標示,模塊A 340a檢測這個 事件,但并不初始設置它的已使用位。于行16內,模塊狀態(tài)(BloCk_State)(非BlkA狀態(tài))命令被接收,該命令標示這 個模塊事件與模塊A 340a不對應。因此,分別如第七列470及第八列480所標示,模塊A 340a不設置其已使用位,也不遞增它的狀態(tài)ID。于一實施例中,因為這個BloCk_State的 地址沒有落入與模塊A 340a相對應的預定地址范圍,模塊A 340a決定這個BloCk_State 不應該被寫入寄存器文件A 342內的一寄存器。于行17內,另一 DraW_Initiat0r_in_CtX_2命令被接收,這個繪圖命令清除先前 設置的所述已使用位,所述已使用位即分別如第四列440、第五列450及第七列470所述的
11GMD位312、BMD位314以及由模塊A 340a管理的該已使用位。與先前接收的其他Draw_ Initiator命令相似,這個Draw_Initiator_in_Ctx_2命令被執(zhí)行在于數據總線380上攜帶
的頂點/像素矢量上。以與上述相似方式接收及處理附加事件。需注意上面介紹的該一系列范例事件僅 作為說明目的,并非以此限制本發(fā)明。IV.有效狀態(tài)管理系統(tǒng)的范例軟件應用除了 GPU 110的硬件應用之外,GPU 110也可被具體表現在所處理的軟件內,例如 配置用以存儲該軟件的計算機可用(即可讀)媒介(例如計算機可讀程序代碼)內。該 程序代碼促使本發(fā)明的實施例實現,包括以下實施例(i)本文所揭示的所述系統(tǒng)及技術 (例如管理全局狀態(tài)更新及模塊狀態(tài)更新)的所述功能;(ii)本文所揭示的所述系統(tǒng)及技 術的制造(例如GPU 110的制造);或(iii)本文所揭示的所述系統(tǒng)及技術的功能及制造 的組合。例如,這可透過使用一般的編程語言(例如C或C++)、包括Verilog HDL, VHDL, Altera HDL(AHDL)等的硬件描述語言(HDL)、或其他可獲得的編程及/或圖表捕捉工具 (schematiccapture tool)(例如電路捕捉工具)來完成。該程序代碼可被任何已知計算機可讀媒介處理,該任何已知計算機可讀媒介包括 半導體、磁碟、光碟(例如CD-ROM,DVD-ROM)并作為具體表現在一計算機可使用(即可讀) 傳播媒介(例如載波或包括數字的(digital)、光的或以模擬為基礎(analog-based)的媒 介的任何其他媒介)內的一計算機數據信號。就這點而論,該代碼可通過通訊網絡傳播,所 述通訊網絡包括互連網(internet)。需了解所述實現的功能及/或上述系統(tǒng)及技術所提供 的結構可被表現在一核心(例如GPU核心)內,該核心被具體表現在程序代碼內并可被轉 變成硬件以作為集成電路產品一部分。V.結論需明白的是該實施方式章節(jié)(并非發(fā)明說明(Summary)及摘要(Abstract)章節(jié)) 意圖被使用以解釋權利要求。該發(fā)明說明及摘要章節(jié)可闡明如發(fā)明人所周密考慮的本發(fā)明 的一個或多個但并非全部具體實施例,因此,并非意圖以任何方式限制本發(fā)明及附加的權 利要求。
權利要求
一種用以執(zhí)行狀態(tài)依賴進程的基于計算機的系統(tǒng),該系統(tǒng)包括命令處理器,該命令處理器接收命令流內的命令,并管理響應于該命令流內的全局背景事件的全局狀態(tài);以及多個處理模塊,所述處理模塊接收該命令流內的所述命令,并管理響應于該命令流內的模塊背景事件的各個模塊狀態(tài),其中,每一處理模塊分別依據該全局狀態(tài)及所述各個處理模塊的模塊狀態(tài)在數據流內的數據上執(zhí)行進程。
2.如權利要求1所述的系統(tǒng),其中,第一處理模塊管理第一數量的模塊狀態(tài),第二處理 模塊管理第二數量的模塊狀態(tài),其中,該第一數量不等于該第二數量。
3.如權利要求1所述的系統(tǒng),還包括接口模塊,該接口模塊管理每一處理模塊的計數器,該計數器與所述各個處理模塊內 儲存的若干狀態(tài)相對應,且如果任何處理模塊的計數器超過一閾值,該接口模塊暫緩該命 令流內的所述命令。
4.如權利要求1所述的系統(tǒng),其中,該命令處理器管理與該全局狀態(tài)相對應的全局狀 態(tài)計數器,且如果該全局狀態(tài)計數器超過一閾值,該命令處理器暫緩該命令流內的所述命 令。
5.如權利要求1所述的系統(tǒng),其中,該命令處理器僅在接收到空閑信號后重新分配第 一全局狀態(tài),該空閑信號來自該多個處理模塊中最終的處理模塊。
6.如權利要求1所述的系統(tǒng),其中,該基于計算機的系統(tǒng)包括圖形處理單元。
7.一種在專用集成電路ASIC內執(zhí)行狀態(tài)依賴進程的方法,該方法包括管理該ASIC的全局狀態(tài),該全局狀態(tài)響應于命令流內的全局背景事件;分別管理多個處理模塊內的每一處理模塊的模塊狀態(tài),該模塊狀態(tài)響應于該命令流內 的模塊背景事件;以及依據該全局狀態(tài)及該各個處理模塊的模塊狀態(tài),在該多個處理模塊的每一處理模塊內 的數據流內的數據上執(zhí)行進程。
8.如權利要求7所述的方法,其中,分別管理響應于該命令流內的模塊背景事件的多 個處理模塊內的每一處理模塊的模塊狀態(tài)包括管理第一處理模塊內的第一數量的模塊狀態(tài)以及第二處理模塊內的第二數量的模塊 狀態(tài),其中,該第一數量不等于該第二數量。
9.如權利要求7所述的方法,還包括管理每一處理模塊的計數器,該計數器與所述各個處理模塊內儲存的若干狀態(tài)相對 應;以及如果任何處理模塊的計數器超過一閾值,暫緩該命令流內的所述命令。
10.如權利要求7所述的方法,其中,管理響應于命令流內的全局背景事件的該ASIC的 全局狀態(tài)包括管理與該全局狀態(tài)相對應的全局狀態(tài)計數器;以及如果該全局計數器超過一閾值,暫緩該命令流內的所述命令。
11.如權利要求7所述的方法,其中,管理響應于命令流內的全局背景事件的該ASIC的 全局狀態(tài)包括僅在接收到空閑信號后重新分配第一全局狀態(tài),該空閑信號來自該多個處理模塊內的最終的處理模塊。
12.—種有形計算機可讀儲存媒介,包括具體表現在軟件內的ASIC,其中該ASIC執(zhí)行 狀態(tài)依賴進程,該ASIC包括命令處理器,該命令處理器接收命令流內的命令,并管理響應于該命令流內的全局背 景事件的全局狀態(tài);以及多個處理模塊,所述處理模塊被配置以接收該命令流內的所述命令并管理響應于該命 令流內的模塊背景事件的各個模塊狀態(tài),其中,每一處理模塊分別依據該全局狀態(tài)及該各 個處理模塊的模塊狀態(tài)在數據流內的數據上執(zhí)行進程。
13.如權利要求12所述的有形計算機可讀儲存媒介,其中,第一處理模塊管理第一數 量的模塊狀態(tài),第二處理模塊管理第二數量的模塊狀態(tài),其中,該第一數量不等于該第二數 量。
14.如權利要求12所述的有形計算機可讀儲存媒介,其中,該ASIC還包括接口模塊,該接口模塊管理每一處理模塊的計數器,該計數器與所述各個處理模塊內 儲存的若干狀態(tài)相對應,且如果任何處理模塊的計數器超過一閾值,該接口模塊暫緩該命 令流內的所述命令。
15.如權利要求12所述的有形計算機可讀儲存媒介,其中,該命令處理器管理與該全 局狀態(tài)相對應的全局狀態(tài)計數器,且如果該全局狀態(tài)計數器超過一閾值,該命令處理器暫 緩該命令流內的所述命令。
16.如權利要求12所述的有形計算機可讀儲存媒介,其中,該命令處理器僅在接收到 空閑信號后重新分配第一全局狀態(tài),該空閑信號來自該多個處理模塊內最終的處理模塊。
17.如權利要求12所述的有形計算機可讀儲存媒介,其中,該ASIC包括圖形處理單元。
18.如權利要求12所述的有形計算機可讀儲存媒介,其中,該ASIC被具體表現在硬件 描述語言軟件內。
19.如權利要求12所述的有形計算機可讀儲存媒介,其中,該ASIC被具體表現在 Verilog硬件描述語言軟件及VHDL硬件描述語言軟件其中之一內。
全文摘要
本發(fā)明提供一種復雜ASIC的有效狀態(tài)管理系統(tǒng)及其應用。在一實施例中,基于計算機的系統(tǒng)執(zhí)行依賴狀態(tài)進程。該基于計算機的系統(tǒng)包括命令處理器(CP)以及多個處理模塊。該命令處理器接收命令流內的命令,并管理響應于該命令流內的全局背景事件的全局狀態(tài)。該多個處理模塊接收該命令流內的所述命令,并管理響應于該命令流內的模塊背景事件的各個模塊狀態(tài)。每一處理模塊分別依據該全局狀態(tài)及該各個處理模塊的模塊狀態(tài)在一數據流內的數據上執(zhí)行進程。
文檔編號G06T1/20GK101918982SQ200880122341
公開日2010年12月15日 申請日期2008年12月23日 優(yōu)先權日2007年12月26日
發(fā)明者M·曼特, R·E·麥克拉里 申請人:先進微裝置公司
網友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1