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

用于圖形處理的存儲器復(fù)制引擎的制作方法

文檔序號:6496410閱讀:174來源:國知局
用于圖形處理的存儲器復(fù)制引擎的制作方法
【專利摘要】本發(fā)明中描述的實例性技術(shù)可針對圖形處理單元GPU與系統(tǒng)存儲器之間的交互。舉例來說,所述GPU可包含存儲器復(fù)制引擎,所述存儲器復(fù)制引擎處置與存取已存儲于或待存儲于所述系統(tǒng)存儲器中的數(shù)據(jù)有關(guān)的任務(wù)。另外,在一些實例中,所述存儲器復(fù)制引擎可執(zhí)行例如修改任務(wù)等額外任務(wù)以增加所述GPU的性能。
【專利說明】用于圖形處理的存儲器復(fù)制引擎
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及圖形處理單元(GPU),且更明確地說,涉及GPU與存儲器之間的交互。【背景技術(shù)】
[0002]產(chǎn)生圖形內(nèi)容的裝置通常包含圖形處理單元(GPU)。GPU可處理圖形數(shù)據(jù)以產(chǎn)生顯示器上的像素的像素值。圖形數(shù)據(jù)處理的部分可要求GPU存取其本地存儲器或系統(tǒng)存儲器。舉例來說,圖形數(shù)據(jù)的至少部分可存儲于系統(tǒng)存儲器中,且GPU可從系統(tǒng)存儲器檢索圖形數(shù)據(jù)。

【發(fā)明內(nèi)容】

[0003]一般來說,本發(fā)明描述用于存取存儲于存儲器中的圖形數(shù)據(jù)的技術(shù)。在一些實例中,所述技術(shù)可包含獨立于在圖形處理單元(GPU)上執(zhí)行一個或一個以上程序來執(zhí)行數(shù)據(jù)修改任務(wù)。舉例來說,本發(fā)明的技術(shù)可允許所述GPU將和存儲器管理以及數(shù)據(jù)修改有關(guān)的任務(wù)與和數(shù)據(jù)處理有關(guān)的任務(wù)分離,并允許這些任務(wù)的獨立執(zhí)行。作為一個實例,本發(fā)明中描述的技術(shù)可允許所述GPU從存儲器檢索數(shù)據(jù)或?qū)?shù)據(jù)存儲于存儲器中,且與執(zhí)行此些功能并行地執(zhí)行一個或一個以上程序的指令。作為另一實例,本發(fā)明中描述的技術(shù)可允許所述GPU獨立于所述指令的執(zhí)行將所述被執(zhí)行指令所利用的數(shù)據(jù)轉(zhuǎn)換成更合適的形式。
[0004]在一個實例中,本發(fā)明描述一種設(shè)備,所述設(shè)備包含:可經(jīng)由系統(tǒng)總線存取的系統(tǒng)存儲器,以及圖形處理單元(GPU)。所述GPU包含本地存儲器、存儲器復(fù)制引擎以及著色處理器。所述存儲器復(fù)制引擎可操作以經(jīng)由所述系統(tǒng)總線從所述系統(tǒng)存儲器檢索第一數(shù)據(jù)且將所述第一數(shù)據(jù)存儲于所述本地存儲器中,以及從所述本地存儲器檢索第二數(shù)據(jù)且經(jīng)由所述系統(tǒng)總線將所述第二數(shù)據(jù)存儲于所述系統(tǒng)存儲器中。所述著色處理器可操作以從所述本地存儲器檢索所述第一數(shù)據(jù),處理所述第一數(shù)據(jù)以產(chǎn)生所述第二數(shù)據(jù),且將所述第二數(shù)據(jù)存儲于所述本地存儲器中。
[0005]在另一實例中,本發(fā)明描述一種方法,所述方法包含用圖形處理單兀(GPU)的存儲器復(fù)制引擎經(jīng)由系統(tǒng)總線從所述GPU外部的系統(tǒng)存儲器檢索第一數(shù)據(jù)以及用所述GPU的所述存儲器復(fù)制引擎將所述第一數(shù)據(jù)存儲于所述GPU的本地存儲器中。所述方法進一步包含用所述GPU的著色處理器從所述本地存儲器檢索所述第一數(shù)據(jù)、用所述GPU的所述著色處理器處理所述第一數(shù)據(jù)以產(chǎn)生第二數(shù)據(jù)以及用所述GPU的所述著色處理器將所述第二數(shù)據(jù)存儲于所述本地存儲器中。所述方法還包含用所述GPU的所述存儲器復(fù)制引擎從所述本地存儲器檢索所述第二數(shù)據(jù)以及用所述GPU的所述存儲器復(fù)制引擎經(jīng)由所述系統(tǒng)總線將所述第二數(shù)據(jù)存儲于所述系統(tǒng)存儲器中。
[0006]在另一實例中,本發(fā)明描述一種設(shè)備,所述設(shè)備包含可經(jīng)由系統(tǒng)總線存取的系統(tǒng)存儲器以及處在所述系統(tǒng)存儲器外部的圖形處理單元(GPU)。所述GPU包含本地存儲器。在此實例中,所述GPU還包含用于用所述GPU的存儲器復(fù)制引擎經(jīng)由所述系統(tǒng)總線從所述GPU外部的系統(tǒng)存儲器檢索第一數(shù)據(jù)的裝置以及用于用所述GPU的所述存儲器復(fù)制引擎將所述第一數(shù)據(jù)存儲于所述本地存儲器中的裝置。所述GPU還包含用于用所述GPU的著色處理器從所述本地存儲器檢索所述第一數(shù)據(jù)的裝置、用于用所述GPU的所述著色處理器處理所述第一數(shù)據(jù)以產(chǎn)生第二數(shù)據(jù)的裝置以及用于用所述GPU的所述著色處理器將所述第二數(shù)據(jù)存儲于所述本地存儲器中的裝置。所述GPU進一步包含用于用所述GPU的所述存儲器復(fù)制引擎從所述本地存儲器檢索所述第二數(shù)據(jù)的裝置以及用于用所述GPU的所述存儲器復(fù)制引擎經(jīng)由所述系統(tǒng)總線將所述第二數(shù)據(jù)存儲于所述系統(tǒng)存儲器中的裝置。
[0007]在另一實例中,本發(fā)明描述一種非暫時性計算機可讀存儲媒體。所述非暫時性計算機可讀存儲媒體包含致使圖形處理單元(GPU)用所述GPU的存儲器復(fù)制引擎經(jīng)由系統(tǒng)總線從所述GPU外部的系統(tǒng)存儲器檢索第一數(shù)據(jù)以及用所述GPU的所述存儲器復(fù)制引擎將所述第一數(shù)據(jù)存儲于所述GPU的本地存儲器中的指令。所述指令進一步致使所述GPU用所述GPU的著色處理器從所述本地存儲器檢索所述第一數(shù)據(jù)、用所述GPU的所述著色處理器處理所述第一數(shù)據(jù)以產(chǎn)生第二數(shù)據(jù)以及用所述GPU的所述著色處理器將所述第二數(shù)據(jù)存儲于所述本地存儲器中。所述指令還致使所述GPU用所述GPU的所述存儲器復(fù)制引擎從所述本地存儲器檢索所述第二數(shù)據(jù)以及用所述GPU的所述存儲器復(fù)制引擎經(jīng)由所述系統(tǒng)總線將所述第二數(shù)據(jù)存儲于所述系統(tǒng)存儲器中。
[0008]一個或一個以上實例的細(xì)節(jié)陳述于附圖和以下描述中。其它特征、目標(biāo)和優(yōu)勢將從描述和附圖以及從權(quán)利要求書中顯而易見。
【專利附圖】

【附圖說明】
[0009]圖1是說明可操作以實施本發(fā)明的一個或一個以上方面的圖形處理單元(GPU)的實例的框圖。
[0010]圖2是說明可并有圖1中的GPU以實施本發(fā)明的一個或一個以上方面的計算裝置的實例的框圖。
[0011]圖3是說明根據(jù)本發(fā)明的一個或一個以上方面的如圖1中所示的GPU的實例性操作的流程圖。
【具體實施方式】
[0012]一般來說,本發(fā)明涉及圖形處理單元(GPU)與存儲器(例如容納GPU的裝置的系統(tǒng)存儲器)之間的交互。本發(fā)明的技術(shù)大體上適用于視頻裝置,例如媒體播放器、機頂盒、例如移動電話等無線手持機、個人數(shù)字助理(PDA)、桌上型計算機、膝上型計算機、游戲控制臺、顯示裝置、電視等。
[0013]圖形處理系統(tǒng)大體上包含GPU和系統(tǒng)存儲器。GPU包含著色處理器和本地存儲器,有時可與GPU外部的其它處理器或甚至GPU的部分共享所述本地存儲器。著色處理器(有時被稱作著色器內(nèi)核)可經(jīng)配置以執(zhí)行各種類型的圖形相關(guān)程序,例如幾何著色器、頂點著色器以及片段著色器。在一些實例中,除了與圖形處理有關(guān)的程序之外,著色處理器還可經(jīng)配置以執(zhí)行其它程序。
[0014]舉例來說,可針對快速且高效地并行執(zhí)行多個任務(wù)來配置GPU。一些應(yīng)用程序可將GPU的高效并行處理能力用于一般用途處理。就此意義來說,GPU可充當(dāng)通用GPU(GPGPU)。在GPU的著色處理器上執(zhí)行的用于一般用途處理的程序可被稱作計算著色器。圖形相關(guān)程序(例如頂點著色器、像素著色器以及片段著色器)以及一般用途處理程序(例如計算著色器)可被統(tǒng)稱為著色程序,以表明此些程序是由GPU的著色處理器執(zhí)行。換句話說,術(shù)語“著色程序”不應(yīng)被視為僅限于執(zhí)行圖形相關(guān)功能的程序。
[0015]在本發(fā)明中描述的一些實例中,除了著色處理器和本地存儲器之外,GPU還可包含存儲器復(fù)制引擎。存儲器復(fù)制引擎可實施為硬件、在硬件上執(zhí)行的軟件或其組合。存儲器復(fù)制引擎可操作以處置從系統(tǒng)存儲器檢索數(shù)據(jù)以及將數(shù)據(jù)存儲于系統(tǒng)存儲器中的存儲器相關(guān)任務(wù)。以此方式,可將與系統(tǒng)存儲器的存儲器管理有關(guān)的指令與不與存儲器管理有關(guān)的指令分離。這可允許著色處理器執(zhí)行著色程序的指令與存儲器復(fù)制引擎執(zhí)行用于將數(shù)據(jù)存儲于系統(tǒng)存儲器中或從系統(tǒng)存儲器檢索數(shù)據(jù)的指令并行地進行。指令的并行執(zhí)行可指代著色處理器和存儲器復(fù)制引擎同時執(zhí)行指令,以及著色處理器對指令的執(zhí)行與存儲器復(fù)制引擎對指令的執(zhí)行重疊。
[0016]可通過各種機構(gòu)來控制由存儲器復(fù)制引擎執(zhí)行的任務(wù)。舉例來說,命令處理器可調(diào)度存儲器復(fù)制引擎和著色處理器的任務(wù)?;蛘?,著色處理器可調(diào)度存儲器復(fù)制引擎的任務(wù)。在一些其它實例中,GPU外部的裝置(例如中央處理單元(CPU))可調(diào)度存儲器復(fù)制引擎和著色處理器的任務(wù)。
[0017]在一些實例中,除了執(zhí)行復(fù)制指令之外,存儲器復(fù)制引擎還可執(zhí)行其它指令。這些額外指令可被稱作修改指令。作為兩個實例,所述修改指令可將數(shù)據(jù)修改成著色程序可利用的更合適形式,或修改存儲數(shù)據(jù)之處以便于存取。以此方式,使著色處理器進一步空閑下來執(zhí)行算術(shù)運算,且可將其它操作卸下給存儲器復(fù)制引擎。
[0018]圖1是說明可操作以實施本發(fā)明的一個或一個以上方面的圖形處理單元(GPU) 10的實例的框圖。GPUlO的實例包含但不限于數(shù)字信號處理器(DSP)、通用微處理器、專用集成電路(ASIC)、現(xiàn)場可編程邏輯陣列(FPGA)或其它等效的集成或離散邏輯電路。如圖1中所說明,GPUlO可包含命令處理器12、固定功能的圖形單元14、著色處理器16、本地存儲器
18、存儲器復(fù)制引擎20以及存儲器接口 22。存儲器接口 22可實施為硬件組件、在硬件上執(zhí)行的軟件、在硬件上執(zhí)行的固件或其任一組合。GPUlO可包含為清楚起見而未在圖1中說明的額外單元或模塊。
[0019]GPUlO可操作以實施各種類型的圖形管線。舉例來說,GPUlO可實施與OpenGLES2.0規(guī)范中描述的圖形管線類似的圖形管線,所述規(guī)范于2008年4月24日由科納斯組K(Khix)nos Group)發(fā)布且為公眾可獲得的。作為另一實例,本發(fā)明的方面可實施于定義圖形管線的Microsoil? DirectX(DX) 10和11應(yīng)用程序編程接口(API)中。圖形管線可實施為在GPUlO上執(zhí)行的軟件、在GPUlO上執(zhí)行的固件、在GPUlO上形成的一個或一個以上硬件單元(例如固定功能的圖形單元14)或其組合。GPUlO也可實施其它類型的圖形管線,且本發(fā)明的方面不應(yīng)被視為限于OpenGL ES2.0規(guī)范或DXlO和IlAPI的圖形管線。此外,可存在可由GPUlO實施的其它類型的圖形算法。舉例來說,替代于Open GL ES2.0以及DXlO和IlAPI或除了 Open GL ES2.0以及DXlO和IlAPI之外,GPU10還可實施射線追蹤。
[0020]除了實施圖形管線之外,GPU10還可操作以實施非圖形相關(guān)功能。舉例來說,GPU10可經(jīng)配置以支持大規(guī)模并行處理功能性,其適合于需要快速且高效地并行處理多個任務(wù)以產(chǎn)生顯示器的相對大量像素的像素值的圖形相關(guān)功能。對于一些非圖形相關(guān)應(yīng)用,可認(rèn)為利用GPU10的此快速且高效并行處理是合意的。就此意義來說,GPU10可被視為可操作以執(zhí)行圖形相關(guān)和非圖形相關(guān)功能的通用GPU(GPGPU)。如更詳細(xì)地描述,這些圖形相關(guān)和非圖形相關(guān)功能可由在GPUio上執(zhí)行的程序界定。
[0021]命令處理器12可為GPUlO的控制器。舉例來說,命令處理器12可調(diào)度將由著色處理器16和存儲器復(fù)制引擎20執(zhí)行的任務(wù)。作為一個實例,著色處理器16可對存儲于系統(tǒng)存儲器(未圖示)中的數(shù)據(jù)塊執(zhí)行操作,例如算術(shù)運算。在此實例中,命令處理器12可指示存儲器復(fù)制引擎20從系統(tǒng)存儲器檢索第一數(shù)據(jù)塊且將第一數(shù)據(jù)塊存儲于本地存儲器18中。命令處理器12可指示著色處理器16從本地存儲器18檢索第一數(shù)據(jù)塊且對第一數(shù)據(jù)塊執(zhí)行功能。在一些實例中,在著色處理器16正對第一數(shù)據(jù)塊執(zhí)行操作時,命令處理器12可指示存儲器復(fù)制引擎20從系統(tǒng)存儲器檢索第二數(shù)據(jù)塊,此操作與著色處理器16對第一數(shù)據(jù)塊執(zhí)行操作并行進行。
[0022]舉例來說,命令處理器12可被視為使由存儲器復(fù)制引擎20和著色處理器16執(zhí)行的任務(wù)管線化。舉例來說,在存儲器復(fù)制引擎20已完成對當(dāng)前復(fù)制指令的執(zhí)行之前,命令處理器12可指示存儲器復(fù)制引擎20執(zhí)行下一個復(fù)制指令(例如,從系統(tǒng)存儲器檢索數(shù)據(jù)或?qū)?shù)據(jù)存儲到系統(tǒng)存儲器)。在此實例中,在存儲器復(fù)制引擎20完成當(dāng)前復(fù)制指令之后,存儲器復(fù)制引擎20準(zhǔn)備好立即執(zhí)行下一個復(fù)制指令。
[0023]在一些實例中,存儲器復(fù)制引擎20可在完成存儲器復(fù)制任務(wù)時向著色處理器16提供指示。舉例來說,在著色處理器16正對當(dāng)前數(shù)據(jù)塊執(zhí)行任務(wù)時,存儲器復(fù)制引擎20可預(yù)先存儲將由著色處理器16使用的下一個數(shù)據(jù)塊。在此實例中,存儲器復(fù)制引擎20可向著色處理器16指示下一個數(shù)據(jù)塊已存儲在本地存儲器18中,且著色處理器16可從本地存儲器18檢索下一個數(shù)據(jù)塊以進行處理。
[0024]以此方式,存儲器復(fù)制引擎20可使其操作與著色處理器16的操作同步。舉例來說,因為存儲器復(fù)制引擎20在數(shù)據(jù)可供處理時向著色處理器16提供指示,所以著色處理器16可在數(shù)據(jù)可供檢索之前不會嘗試檢索和處理數(shù)據(jù)。在著色處理器16等待來自存儲器復(fù)制引擎20的指示時,此可潛在地致使著色處理器16保持閑置。然而,此閑置時間可少于著色處理器16處置所有存儲器相關(guān)任務(wù)將會花費的時間量,因為在著色處理器16執(zhí)行其算術(shù)運算時,存儲器復(fù)制引擎20執(zhí)行其復(fù)制指令。
[0025]在替代實例中,命令處理器12可監(jiān)視存儲器復(fù)制引擎20何時完成其任務(wù),且向著色處理器16提供存儲器復(fù)制引擎20完成其任務(wù)的指示。換句話說,命令處理器12可維持由著色處理器16執(zhí)行的功能與由存儲器復(fù)制引擎20執(zhí)行的功能之間的恰當(dāng)同步。
[0026]在一些替代實例中,著色處理器16可執(zhí)行命令處理器12的功能,且在這些實例中,命令處理器12可能不是必需的。在一些其它替代實例中,GPUlO可從外部裝置(例如中央處理單元(CPU))接收調(diào)度信息。在這些實例中,命令處理器12可能不是必需的。然而,即使在這些替代實例中的任一者中,GPUlO仍可包含命令處理器12以用于執(zhí)行其它功能。并且,在這些替代實例中的任一者中,存儲器復(fù)制引擎20可在它完成其任務(wù)時向著色處理器16提供指示,以使由著色處理器16執(zhí)行的指令與由存儲器復(fù)制引擎20執(zhí)行的指令同步。
[0027]固定功能的圖形單元14可為可經(jīng)硬連線以執(zhí)行特定任務(wù)的硬件單元。舉例來說,固定功能的圖形單元12可包含圖元裝配單元和光柵化單元中的一者或一者以上,但固定功能的圖形單元14還可包含額外單元。固定功能的圖形單元14的圖元裝配單元可基于從著色處理器16接收的頂點坐標(biāo)來裝配圖元,例如三角形或其它類型的多邊形。固定功能的圖形單元14的光柵化單元可確定經(jīng)裝配多邊形的線方程,且基于所確定的線方程來確定哪些像素駐留在經(jīng)裝配多邊形內(nèi)。固定功能的圖形單元14的此類功能性可能不要求操作靈活性,且因此可經(jīng)硬連線以執(zhí)行特定功能。
[0028]鑒于固定功能的圖形單元14可能不會提供操作靈活性,著色處理器16可提供大范圍的操作靈活性。舉例來說,著色處理器16 (其也可被稱作著色器內(nèi)核)可操作以執(zhí)行程序,例如圖形相關(guān)和非圖形相關(guān)程序兩者。由著色處理器16執(zhí)行的程序界定由著色處理器16執(zhí)行的功能。
[0029]舉例來說,著色處理器16可操作以執(zhí)行圖形相關(guān)程序,例如幾何著色器、頂點著色器以及片段著色器。幾何著色器接收單個多邊形的圖形數(shù)據(jù)且可將單個多邊形分割成多個多邊形。頂點著色器可從幾何著色器接收所述多個多邊形且對所接收的多邊形的頂點執(zhí)行功能,例如坐標(biāo)變換和光源處理。片段著色器可確定在顯示器上顯示的像素的像素值。
[0030]在一些實例中,著色處理器16還可操作以執(zhí)行非圖形相關(guān)程序。舉例來說,GPUlO的大規(guī)模并行處理能力可促進對執(zhí)行多個并行功能的某些類型的非圖形相關(guān)程序的高效執(zhí)行。這些類型的非圖形相關(guān)程序可被稱作計算著色器。術(shù)語“著色程序”可大體上指代在著色處理器16上執(zhí)行的任何程序。舉例來說,術(shù)語著色程序指代幾何著色器、頂點著色器、片段著色器以及計算著色器。
[0031]著色程序(在著色處理器16上執(zhí)行)對存儲于系統(tǒng)存儲器中的數(shù)據(jù)執(zhí)行操作,例如算術(shù)運算。舉例來說,著色處理器16可包含可編程以執(zhí)行所要算術(shù)運算的多個算術(shù)邏輯單元(ALU)。術(shù)語“數(shù)據(jù)”用以指代例如像素值(例如色彩值、不透明度值或像素的其它此類屬性)等圖形相關(guān)數(shù)據(jù),以及非圖形相關(guān)數(shù)據(jù)(例如由計算著色器使用的數(shù)據(jù))。系統(tǒng)存儲器還可存儲由著色程序產(chǎn)生的數(shù)據(jù),例如算術(shù)運算的結(jié)果。系統(tǒng)存儲器可以是在GPUlO外部的存儲器且需要系統(tǒng)總線24以進行數(shù)據(jù)存取。
[0032]根據(jù)本發(fā)明的方面,存儲器復(fù)制引擎20可處置需要與系統(tǒng)存儲器的交互的存儲器相關(guān)任務(wù)。存儲器復(fù)制引擎20可實施為硬件、在硬件上執(zhí)行的軟件或其組合。舉例來說,作為非限制性實例,當(dāng)實施為軟件時,存儲器復(fù)制引擎20可為執(zhí)行非常具體的功能且根據(jù)OpenGL或OpenCL標(biāo)準(zhǔn)設(shè)計的程序。
[0033]出于說明目的,存儲器復(fù)制引擎20在上下文中被描述為硬件單元。舉例來說,存儲器復(fù)制引擎20可形成為DSP、ASIC、FPGA或其它等效的集成電路。在一些實例中,存儲器復(fù)制引擎20可形成為離散邏輯電路或離散模擬電路。上文關(guān)于硬件單元的實例是出于說明目的而提供且不應(yīng)被視為具限制性。
[0034]作為一個實例,存儲器復(fù)制引擎20可執(zhí)行復(fù)制指令,例如從系統(tǒng)存儲器檢索數(shù)據(jù)或?qū)?shù)據(jù)存儲于系統(tǒng)存儲器中的指令。舉例來說,存儲器復(fù)制引擎20可執(zhí)行指令以從系統(tǒng)存儲器檢索數(shù)據(jù)且將所檢索到的數(shù)據(jù)存儲于本地存儲器18中以供在著色處理器16上執(zhí)行的著色程序使用。存儲器復(fù)制引擎20還可執(zhí)行指令以檢索存儲于本地存儲器18中的數(shù)據(jù)且將所檢索到的數(shù)據(jù)存儲于系統(tǒng)存儲器中。
[0035]如圖1中所說明,存儲器復(fù)制引擎20可耦合到存儲器接口 22。存儲器復(fù)制引擎20可經(jīng)由存儲器接口 22從系統(tǒng)存儲器檢索數(shù)據(jù)或?qū)?shù)據(jù)存儲于系統(tǒng)存儲器中。就此意義來說,存儲器接口 22可充當(dāng)GPUlO的組件與系統(tǒng)存儲器之間的中間裝置。舉例來說,存儲器接口 22可包含允許存儲器接口 22經(jīng)由系統(tǒng)總線24輸出數(shù)據(jù)且經(jīng)由系統(tǒng)總線24接收數(shù)據(jù)的組件。
[0036]在本發(fā)明中描述的實例性技術(shù)中,著色處理器16可能夠與存儲器復(fù)制引擎20執(zhí)行將數(shù)據(jù)存儲到系統(tǒng)存儲器或從系統(tǒng)存儲器檢索數(shù)據(jù)的指令并行地執(zhí)行指令。舉例來說,在存儲器復(fù)制引擎20正執(zhí)行將數(shù)據(jù)存儲到系統(tǒng)存儲器或從系統(tǒng)存儲器檢索數(shù)據(jù)的指令時,著色處理器16可執(zhí)行指令。著色處理器16和存儲器復(fù)制引擎20的并行執(zhí)行可指代著色處理器16和存儲器復(fù)制引擎20對指令的同時執(zhí)行或重疊執(zhí)行。
[0037]應(yīng)理解,由著色處理器16和存儲器復(fù)制引擎20執(zhí)行的指令(并行地或以其它方式執(zhí)行)無需為相同指令。一般來說,存儲器復(fù)制引擎20可執(zhí)行與存儲器存取有關(guān)的指令,而著色處理器16可以不執(zhí)行所述指令。并且,雖然本發(fā)明中描述的技術(shù)允許存儲器復(fù)制引擎20和著色處理器16在同一時間執(zhí)行指令,但本發(fā)明的方面不限于此。舉例來說,存儲器復(fù)制引擎20和著色處理器16無需在每個實例中都在同一時間執(zhí)行指令。而是,存儲器復(fù)制引擎20和著色處理器16能夠在同一時間執(zhí)行指令。
[0038]在一些實例中,因為存儲器復(fù)制引擎20可執(zhí)行將數(shù)據(jù)存儲到系統(tǒng)存儲器或從系統(tǒng)存儲器檢索數(shù)據(jù)的指令,所以著色處理器16可經(jīng)配置以不從系統(tǒng)存儲器檢索數(shù)據(jù)或不將數(shù)據(jù)存儲于系統(tǒng)存儲器中。換句話說,在此實例中,存取系統(tǒng)存儲器可完全從著色處理器16卸下,且此存取可僅由存儲器復(fù)制引擎20執(zhí)行。以此方式,在存儲器復(fù)制引擎20檢索并存儲數(shù)據(jù)時,著色處理器16空閑下來執(zhí)行著色程序。這樣使著色處理器16無需執(zhí)行數(shù)據(jù)檢索或存儲的指令,且空閑下來與由存儲器復(fù)制引擎20執(zhí)行的數(shù)據(jù)檢索和存儲功能同時地執(zhí)行著色程序的指令。在替代實例中,著色處理器16仍有可能存取系統(tǒng)存儲器。
[0039]在本發(fā)明的實例中,著色處理器16仍可執(zhí)行用于將由著色程序產(chǎn)生的數(shù)據(jù)存儲于本地存儲器18中的指令以及用于從本地存儲器18檢索數(shù)據(jù)的指令。舉例來說,存儲器復(fù)制引擎20可執(zhí)行與數(shù)據(jù)存儲和檢索有關(guān)的復(fù)制指令,且在存儲器復(fù)制引擎20正執(zhí)行此些復(fù)制指令時,著色處理器16可在同一時間(例如同時地)繼續(xù)執(zhí)行數(shù)據(jù)處理指令,例如著色程序的數(shù)據(jù)處理指令。數(shù)據(jù)處理指令的一個實例可為算術(shù)指令,因為此些指令大體上是用于對數(shù)據(jù)執(zhí)行算術(shù)運算。
[0040]將與存取系統(tǒng)存儲器有關(guān)的指令卸下給存儲器復(fù)制引擎20可進一步提升GPUlO的處理效率。舉例來說,常規(guī)技術(shù)依賴于著色處理器16處置與存取存儲器(例如,本地存儲器18和系統(tǒng)存儲器兩者)有關(guān)的所有指令。舉例來說,在這些常規(guī)技術(shù)中,著色處理器16將經(jīng)由紋理提取管線耦合到存儲器接口 22。根據(jù)這些常規(guī)技術(shù),著色處理器16將經(jīng)由紋理提取管線和存儲器接口 22存取系統(tǒng)存儲器。
[0041]然而,雖然著色程序的用于存取本地存儲器18的指令可與著色程序的其它指令非同步地執(zhí)行,但著色程序的用于存取系統(tǒng)存儲器的指令不可非同步地執(zhí)行。而是,在著色處理器16上,用于存取系統(tǒng)存取器的指令可與著色程序的其它指令同步地執(zhí)行。對于用于存取系統(tǒng)存儲器的指令,在常規(guī)技術(shù)中,在著色處理器16等待將數(shù)據(jù)存儲到系統(tǒng)存儲器上或從系統(tǒng)存儲器檢索數(shù)據(jù)時,著色處理器16可保持閑置,且無法執(zhí)行其它指令。
[0042]借助于存儲器復(fù)制引擎20,本發(fā)明中描述的技術(shù)可允許著色處理器16對用于數(shù)據(jù)的數(shù)據(jù)處理指令的執(zhí)行與存儲器復(fù)制引擎20對存儲器復(fù)制指令的執(zhí)行(例如系統(tǒng)存儲器與GPUlO之間的數(shù)據(jù)傳送操作)并行地(例如,大體上同時地)進行,且性能增加,因為著色處理器16不再需要執(zhí)行存儲器復(fù)制指令。用于著色程序的指令的時間段(先前用于存儲器復(fù)制指令)可空出來由著色處理器16用以執(zhí)行用于執(zhí)行實際算術(shù)運算的指令,例如執(zhí)行數(shù)據(jù)處理指令。借助于存儲器復(fù)制引擎20,在將數(shù)據(jù)復(fù)制到系統(tǒng)存儲器中或從系統(tǒng)存儲器檢索數(shù)據(jù)時,著色處理器16不需要保持閑置且不會無法執(zhí)行其它指令。而是,存儲器復(fù)制引擎20處置這些任務(wù),從而允許著色處理器16繼續(xù)執(zhí)行數(shù)據(jù)處理指令。
[0043]如所說明,存儲器復(fù)制引擎20是與著色處理器16分離的獨立處理單元,但著色處理器16有可能控制存儲器復(fù)制引擎20。舉例來說,雖然存儲器復(fù)制引擎20和著色處理器16可形成于GPUlO內(nèi),但存儲器復(fù)制引擎20和著色處理器16不可形成于彼此之內(nèi)。換句話說,在一些實例中,由存儲器復(fù)制引擎20執(zhí)行的功能是著色處理器16無需執(zhí)行的功能。舉例來說,著色處理器16仍可能夠存取系統(tǒng)存儲器以進行存儲和檢索;然而,在存儲器復(fù)制引擎20執(zhí)行此些任務(wù)的情況下,著色處理器16可無需執(zhí)行此些任務(wù)。將由著色程序執(zhí)行的算術(shù)運算局限于著色處理器16之內(nèi)。與存取系統(tǒng)存儲器有關(guān)的操作局限于存儲器復(fù)制引擎20之內(nèi)。在一些實例中,存儲器復(fù)制引擎20可僅執(zhí)行與存取系統(tǒng)存儲器有關(guān)的功能;然而,如下文所描述,本發(fā)明的方面不限于此。
[0044]—般來說,存儲器復(fù)制引擎20、著色處理器16以及本地存儲器18彼此分離且處在GPUlO的芯片上。舉例來說,在GPUlO為其自己的集成電路(例如,芯片)的情況下,存儲器復(fù)制引擎20、著色處理器16以及本地存儲器18為GPUlO芯片的不同組件(例如,彼此分離且處于GPUlO的芯片上)。在一些其它實例中,存儲器復(fù)制引擎20和著色處理器16可彼此分離且為GPUlO的部分;然而,本地存儲器18可被與其它裝置共享。
[0045]可存在各種方式來致使存儲器復(fù)制引擎20執(zhí)行上文描述的實例性功能。一般來說,用于致使存儲器復(fù)制引擎20執(zhí)行實例性功能的實例性技術(shù)可允許存儲器復(fù)制引擎20將數(shù)據(jù)預(yù)先存儲于本地存儲器18中,使得在著色處理器16上執(zhí)行的著色程序需要所述數(shù)據(jù)時,所述數(shù)據(jù)可供此些著色程序用于處理。舉例來說,在著色處理器16利用頂點數(shù)據(jù)之前,存儲器復(fù)制引擎20可能夠順序地將頂點數(shù)據(jù)存儲于本地存儲器18中。并且,在著色處理器16正執(zhí)行其它指令時,用于致使存儲器復(fù)制引擎20執(zhí)行實例性功能的實例性技術(shù)可允許存儲器復(fù)制引擎20將來自本地存儲器18的數(shù)據(jù)存儲于系統(tǒng)存儲器中。
[0046]作為一個實例,命令處理器12可對由存儲器復(fù)制引擎20執(zhí)行的存儲器復(fù)制指令與由著色處理器16執(zhí)行的數(shù)據(jù)處理指令同時進行調(diào)度。舉例來說,命令處理器12可致使存儲器復(fù)制引擎20從系統(tǒng)存儲器檢索第一源數(shù)據(jù)塊且將第一源數(shù)據(jù)塊存儲在本地存儲器18中。數(shù)據(jù)塊可為預(yù)定量的數(shù)據(jù),例如,僅出于說明目的,作為一個實例,10個像素的屬性值。源數(shù)據(jù)可被認(rèn)為是從系統(tǒng)存儲器檢索的數(shù)據(jù)。
[0047]命令處理器12可接著致使著色處理器16從本地存儲器18檢索第一源數(shù)據(jù)塊且處理所述第一源數(shù)據(jù)塊以產(chǎn)生第一結(jié)果數(shù)據(jù)塊。所述第一結(jié)果數(shù)據(jù)塊可為在著色處理器16處理源數(shù)據(jù)塊之后由著色處理器16產(chǎn)生的數(shù)據(jù)塊。
[0048]在著色處理器16正處理第一源數(shù)據(jù)塊時(例如,在同一時間),命令處理器12可致使存儲器復(fù)制引擎20執(zhí)行指令以從系統(tǒng)存儲器檢索第二源數(shù)據(jù)塊且將第二源數(shù)據(jù)塊存儲于本地存儲器18中。在著色處理器16完成對第一源數(shù)據(jù)塊的處理之后,著色處理器16可接著將第一源數(shù)據(jù)塊的處理結(jié)果(例如第一結(jié)果數(shù)據(jù)塊)存儲于本地存儲器18中且立即開始處理來自本地存儲器18的第二源數(shù)據(jù)塊。以此方式,如果本地存儲器18包含足夠的存儲能力來在同一時間存儲從系統(tǒng)存儲器檢索到的數(shù)據(jù)(例如源數(shù)據(jù))以及存儲由著色處理器16處理的已處理數(shù)據(jù)(例如結(jié)果數(shù)據(jù)),那么在著色處理器16執(zhí)行數(shù)據(jù)處理指令的同一時間,存儲器復(fù)制引擎20可執(zhí)行復(fù)制指令。以此方式,命令處理器12可對由存儲器復(fù)制引擎20執(zhí)行的存儲器復(fù)制操作排隊。
[0049]作為另一實例,著色處理器16可執(zhí)行前一實例中描述的命令處理器12的實例性功能中的一些或全部。在這些實例中,命令處理器12可能不是必需的,因為著色處理器16可執(zhí)行命令處理器12的此些功能。然而,如果命令處理器12需要用于執(zhí)行其它任務(wù),那么GPUlO仍可包含命令處理器12。
[0050]舉例來說,在著色處理器16正處理當(dāng)前源數(shù)據(jù)塊時,著色處理器16可向存儲器復(fù)制引擎20發(fā)出指示存儲器復(fù)制引擎20執(zhí)行檢索下一個源數(shù)據(jù)塊的指令的命令。接著,在完成了對當(dāng)前源數(shù)據(jù)塊的處理之后,著色處理器16可將結(jié)果數(shù)據(jù)(例如當(dāng)前源數(shù)據(jù)塊的處理結(jié)果)存儲于本地存儲器18中,且正處理下一個塊的源數(shù)據(jù),存儲器復(fù)制引擎20將所述下一個塊的源數(shù)據(jù)預(yù)先存儲于本地存儲器18中。著色處理器16還可指示存儲器復(fù)制引擎20從本地存儲器18檢索結(jié)果數(shù)據(jù)且將結(jié)果數(shù)據(jù)存儲于系統(tǒng)存儲器中。
[0051]作為又一實例,命令處理器12可操作為命令定序器。在此實例中,命令處理器12可從另一裝置(例如中央處理單元(CPU))接收將由GPUlO執(zhí)行的指令。命令處理器12可將所接收的指令分割為將由著色處理器16執(zhí)行的指令和將由存儲器復(fù)制引擎20執(zhí)行的指令。舉例來說,命令處理器12可將所述指令分割為將由著色處理器16執(zhí)行的算術(shù)運算和將由存儲器復(fù)制引擎20執(zhí)行的存儲器交互操作。視情況地,命令處理器12可接著將用于執(zhí)行算術(shù)運算的指令轉(zhuǎn)發(fā)給著色處理器16且將用于執(zhí)行存儲器交互操作的指令轉(zhuǎn)發(fā)給存儲器復(fù)制引擎20。
[0052]舉例來說,命令處理器12可將致使著色處理器16從本地存儲器18檢索數(shù)據(jù)塊且處理所述數(shù)據(jù)的指令轉(zhuǎn)發(fā)給著色處理器16。命令處理器12可將從系統(tǒng)存儲器檢索源數(shù)據(jù)塊的指令轉(zhuǎn)發(fā)給存儲器復(fù)制引擎20,且著色處理器16和存儲器復(fù)制引擎20可在同一時間執(zhí)行其相應(yīng)指令。以此方式,著色處理器16接下來將處理的源數(shù)據(jù)被預(yù)先存儲于本地存儲器18中。并且,命令處理器12可將從本地存儲器18檢索由著色處理器16所執(zhí)行的操作產(chǎn)生的數(shù)據(jù)且將此些數(shù)據(jù)存儲于系統(tǒng)存儲器中的指令轉(zhuǎn)發(fā)給存儲器復(fù)制引擎20。
[0053]作為另一實例,另一裝置(例如CPU)可將指令直接傳輸給著色處理器16和存儲器復(fù)制引擎20中的每一者。舉例來說,CPU可將和與系統(tǒng)存儲器的交互有關(guān)的所有指令傳輸給存儲器復(fù)制引擎20且將與算術(shù)運算有關(guān)的所有指令傳輸給著色處理器16。
[0054]在這些實例中,命令處理器12可能不是必需的,因為CPU可將指令直接提供給著色處理器16和存儲器復(fù)制引擎20。然而,如果命令處理器12需要用于執(zhí)行其它任務(wù),那么GPUlO仍可包含命令處理器12。
[0055]在前述實例(例如,其中GPUlO包含命令處理器12或其中GPUlO不包含命令處理器12)中,存儲器復(fù)制引擎20可預(yù)先存儲隨后將由著色處理器16使用的數(shù)據(jù)。在一些實例中,存儲器復(fù)制引擎20可向著色處理器16提供著色處理器16將使用的下一個數(shù)據(jù)已存儲于本地存儲器18中的指示,以使存儲器復(fù)制引擎20和著色處理器16的指令同步。著色處理器16可接著從本地存儲器18檢索所預(yù)先存儲的數(shù)據(jù),處理所述數(shù)據(jù),且產(chǎn)生作為所述數(shù)據(jù)的處理結(jié)果的結(jié)果數(shù)據(jù)。著色處理器16可接著將結(jié)果數(shù)據(jù)存儲于本地存儲器18中。在一些實例中,例如其中著色處理器16不再需要結(jié)果數(shù)據(jù),存儲器復(fù)制引擎20可從本地存儲器18檢索結(jié)果數(shù)據(jù)且將結(jié)果數(shù)據(jù)存儲于系統(tǒng)存儲器中。即使在隨后的處理需要用到結(jié)果數(shù)據(jù)的情況中,存儲器復(fù)制引擎20也有可能從本地存儲器18檢索結(jié)果數(shù)據(jù)且將結(jié)果數(shù)據(jù)存儲于系統(tǒng)存儲器中以釋放本地存儲器18上的存儲空間。
[0056]本發(fā)明中描述的實例性技術(shù)在各種類型的系統(tǒng)中都可能是有益的。作為少許實例,本發(fā)明中描述的技術(shù)可應(yīng)用于優(yōu)化基于分倉(binning)的渲染、圖像處理、邊界區(qū)域復(fù)制(例如,相鄰塊或片的部分的復(fù)制)以及基于隊列的通信。一般來說,本發(fā)明中描述的實例性技術(shù)可有益于需要GPUlO與系統(tǒng)存儲器之間的數(shù)據(jù)傳送的任何著色處理器應(yīng)用。
[0057]作為一實例,此類功能性可有益于執(zhí)行對所產(chǎn)生的圖像執(zhí)行濾波操作的著色程序,但不應(yīng)認(rèn)為本發(fā)明的方面限于此。舉例來說,執(zhí)行濾波操作的著色程序可對所產(chǎn)生的圖像以逐塊或逐片基礎(chǔ)執(zhí)行此些濾波操作。在此實例中,在著色處理器16正對當(dāng)前塊或片執(zhí)行任務(wù)時,存儲器復(fù)制引擎20可預(yù)先存儲下一個塊或片。應(yīng)理解,除了著色處理器16執(zhí)行進行濾波操作的著色程序的情形之外,本發(fā)明的方面還可有益于其它情形。存儲器復(fù)制引擎20預(yù)先存儲數(shù)據(jù)的能力可有益于各種各樣的不同類型的著色程序。
[0058]作為另一實例,當(dāng)執(zhí)行濾波操作時,在濾波要求時,存儲器復(fù)制引擎20的功能性可允許除了源圖像的下一個塊或片之外還載入其相鄰塊或片的部分。在一些實例中,當(dāng)著色程序需要將當(dāng)前塊或片外部的數(shù)據(jù)存儲于本地存儲器18中時,操作可導(dǎo)致冗余或增加的復(fù)雜性。存儲器復(fù)制引擎20可不這樣受到限制。舉例來說,存儲器復(fù)制引擎20可能夠檢索較大部分的數(shù)據(jù),但沒有冗余或增加的復(fù)雜性。
[0059]此外,在一些實例中,可要求這些著色程序載入具有矩形足跡的數(shù)據(jù)(例如,必須存儲于本地存儲器的形成矩形區(qū)域的存儲位置中的數(shù)據(jù))??刹灰蟠鎯ζ鲝?fù)制引擎20載入具有此些限制的數(shù)據(jù)。在一些實例中,存儲器復(fù)制引擎20可經(jīng)配置,使得它可能夠載入具有非矩形足跡的數(shù)據(jù)。以此方式,存儲器復(fù)制引擎20可減少冗余和復(fù)雜性。
[0060]雖然就存儲器復(fù)制引擎20執(zhí)行與存儲系統(tǒng)存儲器有關(guān)的任務(wù)描述了先前實例,但本發(fā)明的方面不限于此。在一些實例中,替代于執(zhí)行與存取系統(tǒng)存儲器有關(guān)的任務(wù)或除了執(zhí)行與存取系統(tǒng)存儲器有關(guān)的任務(wù)之外,存儲器復(fù)制引擎20還可執(zhí)行修改任務(wù)。修改任務(wù)可指代將已存儲于系統(tǒng)中的數(shù)據(jù)或待存儲于系統(tǒng)存儲器中的數(shù)據(jù)修改成更合用的形式。修改任務(wù)還可指代修改存儲數(shù)據(jù)的位置。
[0061]作為修改任務(wù)的其中存儲器復(fù)制引擎20修改存儲數(shù)據(jù)的位置的一個實例,存儲器復(fù)制引擎20可收集和壓縮數(shù)據(jù)。舉例來說,可稀疏地裝填在不同著色程序之間共享的數(shù)據(jù)。經(jīng)稀疏裝填的數(shù)據(jù)可指代在相對較大存儲部分上存儲的相對較少量的數(shù)據(jù)。在這些情況中,存儲器復(fù)制引擎20可壓縮數(shù)據(jù),使得它不存儲于系統(tǒng)存儲器或本地存儲器18的相對較大部分上。而是,經(jīng)稀疏裝填的數(shù)據(jù)可被重寫到存儲器的較小部分。數(shù)據(jù)的此壓縮可允許存儲器復(fù)制引擎20更快速地存取數(shù)據(jù)。并且,因為著色處理器16沒有察覺到此類數(shù)據(jù)壓縮,所以可能不需要修改著色程序的利用所述數(shù)據(jù)進行算術(shù)運算的指令。
[0062]作為其中存儲器復(fù)制引擎20修改已存儲于系統(tǒng)存儲器中的數(shù)據(jù)或待存儲于系統(tǒng)存儲器中的數(shù)據(jù)的少許實例,存儲器復(fù)制引擎20可將數(shù)據(jù)的線狀塊轉(zhuǎn)換成數(shù)據(jù)的平鋪塊(tiled block)或反之亦然以便存儲于本地存儲器18中或存儲于系統(tǒng)存儲器中。存儲器復(fù)制引擎20還可在矩陣的x、y方向上混洗數(shù)據(jù),將紅綠藍(lán)(RGB)色彩轉(zhuǎn)換成亮度和色度分量(YUV)色彩或反之亦然,將RGB或YUV格式編碼成另一格式,以及對著色處理器16有用的任何其它修改。舉例來說,存儲器復(fù)制引擎20還可執(zhí)行將存儲于本地存儲器18中的數(shù)據(jù)轉(zhuǎn)換成某一其它著色程序可用的另一形式的修改指令。存儲器復(fù)制引擎20還可在從系統(tǒng)存儲器檢索數(shù)據(jù)和將數(shù)據(jù)存儲于本地存儲器18中時封裝或解封裝壓縮數(shù)據(jù)結(jié)構(gòu)或圖像格式,以及在從本地存儲器18檢索數(shù)據(jù)和將數(shù)據(jù)存儲于系統(tǒng)存儲器中時封裝或解封裝壓縮數(shù)據(jù)結(jié)構(gòu)或圖像格式。
[0063]舉例來說,計算著色器可為頂點著色器產(chǎn)生結(jié)果數(shù)據(jù)。然而,結(jié)果數(shù)據(jù)的數(shù)據(jù)格式對于頂點著色器來說可能不是恰當(dāng)?shù)母袷?。在此實例中,存儲器?fù)制引擎20可將來自計算著色器的結(jié)果數(shù)據(jù)的格式修改成適合于頂點著色器的格式。存儲器復(fù)制引擎20還可修改存儲數(shù)據(jù)之處(例如,將數(shù)據(jù)從本地存儲器18內(nèi)的一個位置復(fù)制到本地存儲器18內(nèi)的另一位置)。就性能來說,這可能是有益的,因為存儲器復(fù)制引擎20可將數(shù)據(jù)放置于本地存儲器18的某些位置中,著色處理器16可通過使用著色處理器16具有的對本地存儲器18的快速存取模式來高效地存取所述位置。
[0064]作為更多實例,存儲器復(fù)制引擎20還可執(zhí)行修改任務(wù),例如鏈接列表轉(zhuǎn)換到線性格式、平面YUV轉(zhuǎn)換到經(jīng)填補YUV或反之亦然、經(jīng)編碼HDR(高動態(tài)范圍)或RGB格式轉(zhuǎn)換到FP16或FP32,添加或移除填補、數(shù)據(jù)對齊、壓縮或解壓縮數(shù)據(jù)、2D小波變換、數(shù)據(jù)結(jié)構(gòu)剖析(例如列表和樹形結(jié)構(gòu)),等等。存儲器復(fù)制引擎20還可提供數(shù)據(jù)的多個復(fù)本。舉例來說,當(dāng)將數(shù)據(jù)存儲于系統(tǒng)存儲器中時,存儲器復(fù)制引擎20可存儲所述數(shù)據(jù)的多個復(fù)本以保護所述數(shù)據(jù)免遭損毀。存在存儲器復(fù)制引擎20可執(zhí)行的修改任務(wù)的各種實例,所述實例是出于說明目的而提供,且本發(fā)明的方面不應(yīng)被視為限于上述實例。
[0065]以此方式,可能曾由著色處理器16執(zhí)行的修改指令中的一些可被卸下給存儲器復(fù)制引擎20。這可允許著色處理器16僅執(zhí)行例如算術(shù)運算等數(shù)據(jù)處理指令,且存儲器復(fù)制引擎20可執(zhí)行任何復(fù)制和修改任務(wù)。
[0066]本地存儲器18可形成為高速緩存存儲器、寄存器或可存儲數(shù)據(jù)的任何形式。與從系統(tǒng)存儲器檢索數(shù)據(jù)或?qū)?shù)據(jù)存儲于系統(tǒng)存儲器中相比,GPUlO的組件可能夠更快速地且以較少功率消耗來從本地存儲器18檢索數(shù)據(jù)或?qū)?shù)據(jù)存儲于本地存儲器18中。舉例來說,GPUlO的組件可在不需要大量調(diào)度且不具有單獨總線的情況下存取本地存儲器18。然而,存取系統(tǒng)存儲器可能需要可能是耗時的存取調(diào)度。舉例來說,GPUlO可能夠在沒有數(shù)據(jù)沿系統(tǒng)總線24傳送的可用時間段期間存取系統(tǒng)存儲器。經(jīng)由系統(tǒng)總線24存取系統(tǒng)存儲器可消耗功率。
[0067]此外,雖然本地存儲器18被說明為在GPUlO內(nèi)部,但本發(fā)明的方面不限于此。在一些實例中,GPUlO可為較大集成電路的部分。此集成電路可包含額外處理單元,例如顯示處理器、視頻處理器等等。在這些實例中,本地存儲器18可潛在地在GPUlO外部,且可充當(dāng)集成電路內(nèi)的各種處理單元的本地存儲器。就此意義來說,本地存儲器18可被視為共享本地存儲器。然而,即使在這些實例中,與經(jīng)由系統(tǒng)總線24存取系統(tǒng)存儲器相比,GPUlO的組件仍可能夠更快速地且以較少功率消耗來存取本地存儲器18。此外,在這些實例中的任一者中,GPUlO仍可被視為包括本地存儲器18,因為本地存儲器18充當(dāng)GPUlO的本地存儲器。舉例來說,即使在本地存儲器18在GPUlO外部的情況下,從功能上來說,本地存儲器18仍可被視為GPUlO的部分,因為本地存儲器18向GPUlO的組件提供本地存儲器存儲和檢索。[0068]圖2是說明可操作以實施本發(fā)明的一個或一個以上方面的裝置26的實例的框圖。裝置26的實例包含但不限于視頻裝置,例如媒體播放器、機頂盒、例如移動電話等無線手持機、個人數(shù)字助理(PDA)、桌上型計算機、膝上型計算機、游戲控制臺、視頻會議單元、平板計算裝置等。裝置26可包含處理器28、圖形處理單元(GPU) 10、系統(tǒng)存儲器30、收發(fā)器模塊
32、用戶接口 34、顯示緩沖器36以及顯示器38。
[0069]如圖2中所說明,裝置26的GPUlO可與圖1的GPUlO相同或大體上類似。舉例來說,GPUlO包含存儲器復(fù)制引擎20,所述存儲器復(fù)制引擎與圖1的存儲器復(fù)制引擎20相同或大體上類似。舉例來說,存儲器復(fù)制引擎20可執(zhí)行需要存取系統(tǒng)存儲器30的任務(wù),以及在一些實例中,執(zhí)行數(shù)據(jù)格式化任務(wù)。為簡明起見,在圖2的實例中不進一步論述GPUlO和存儲器復(fù)制引擎20的實例性功能性。
[0070]處理器28可為裝置26的中央處理單元(CPU)且可執(zhí)行上文在圖1中描述的CPU的功能。處理器28的實例包含但不限于DSP、通用微處理器、ASIC、FPGA或者其它等效的集成或離散邏輯電路。雖然處理器28和GPUlO被說明為分離的單元,但是本發(fā)明的方面不限于此。在一些實例中,處理器28和GPUlO可形成于共同的集成電路(IC)中。處理器28和GPUlO可各自包含單個處理器內(nèi)核或多個處理器內(nèi)核。
[0071]裝置26可包含為清楚起見而未展示于圖2中的額外模塊或單元。舉例來說,在裝置26為移動無線電話的實例中,裝置26可包含揚聲器和麥克風(fēng)(其無一者展示于圖2中)以實現(xiàn)電話通信,或者在裝置26為媒體播放器的實例中,裝置26可包含揚聲器。此外,在裝置26的每個實例中,展示于裝置26中的各種模塊和單元可能不是必需的。舉例來說,在裝置26為桌上型計算機或經(jīng)裝備以與外部用戶接口或顯示器接口連接的其它裝置的實例中,用戶接口 34和顯示器38可在裝置26外部。
[0072]系統(tǒng)存儲器30可為裝置26的總存儲器,但并非GPUlO的本地存儲器(例如本地存儲器18)。舉例來說,系統(tǒng)存儲器30可存儲由GPUlO產(chǎn)生的數(shù)據(jù),所述數(shù)據(jù)可被稱作結(jié)果數(shù)據(jù),因為所述結(jié)果數(shù)據(jù)可由GPUlO的著色處理器16所執(zhí)行的任務(wù)產(chǎn)生。類似地,系統(tǒng)存儲器30可存儲將由GPUlO使用的數(shù)據(jù),所述數(shù)據(jù)可被稱作源數(shù)據(jù),因為所述源數(shù)據(jù)可為GPUlO的著色處理器16用來執(zhí)行任務(wù)的數(shù)據(jù)。系統(tǒng)存儲器30還可存儲由GPUlO的著色處理器16執(zhí)行的著色程序的經(jīng)預(yù)先編譯和/或經(jīng)編譯代碼。裝置26的各種組件(例如處理器28和GPU10)可經(jīng)由系統(tǒng)總線24存取系統(tǒng)存儲器30。
[0073]系統(tǒng)存儲器30的實例包含但不限于隨機存取存儲器(RAM)、只讀存儲器(ROM)、電可擦可編程只讀存儲器(EEPROM)、CD-ROM或其它光盤存儲裝置、磁盤存儲裝置或其它磁性存儲裝置、快閃存儲器,或者可用于存儲呈指令或數(shù)據(jù)結(jié)構(gòu)的形式的所要程序代碼且可由計算機、處理器或GPU存取的任何其它媒體。在某一實例中,系統(tǒng)存儲器30可包括一個或一個以上計算機可讀存儲媒體,例如計算機可讀存儲裝置。舉例來說,在一些實例性實施方案中,系統(tǒng)存儲器30可包含致使處理器28和/或GPUlO執(zhí)行在本發(fā)明中歸于處理器28和GPUlO的功能的指令。
[0074]在一些實例中,系統(tǒng)存儲器30可被視為非暫時性存儲媒體。術(shù)語“非暫時性”可表明存儲媒體不是體現(xiàn)于載波或傳播信號中。然而,術(shù)語“非暫時性”不應(yīng)被解釋為表示系統(tǒng)存儲器30是不可移動的。作為一個實例,系統(tǒng)存儲器30可從裝置26卸除且移動到另一裝置。作為另一實例,存儲裝置(大體上類似于系統(tǒng)存儲器32)可插入到裝置26中。在某些實例中,非暫時性存儲媒體可存儲可隨時間改變的數(shù)據(jù)(例如,在RAM中)。
[0075]用戶接口 34的實例包含但不限于軌跡球、鼠標(biāo)、鍵盤以及其它類型的輸入裝置。用戶接口 34還可為觸摸屏且可作為顯示器38的部分并入。收發(fā)器模塊32可包含允許裝置26與另一裝置或網(wǎng)絡(luò)之間的無線或有線通信的電路。收發(fā)器模塊32可包含調(diào)制器、解調(diào)器、放大器以及用于有線或無線通信的其它此類電路。
[0076]GPUlO可輸出將在顯示器38上顯示的圖像的像素值。在一些實例中,GPUlO可將像素值直接輸出到顯示器38。在一些替代實例中,GPUlO可將圖像的像素值輸出到顯示緩沖器36。顯示緩沖器36可暫時存儲圖像的像素值,直到渲染了整個圖像為止。顯示緩沖器36可被視為圖像幀緩沖器。顯示緩沖器36可接著傳輸經(jīng)渲染的圖像以便在顯示器38上顯示。顯示器38可包括液晶顯示器(LCD)、有機發(fā)光二極管顯示器(OLED)、陰極射線管(CRT)顯示器、等離子顯示器或另一類型的顯示裝置。
[0077]圖3是說明根據(jù)本發(fā)明的一個或一個以上方面的GPUlO的實例性操作的流程圖。僅出于說明目的,參考圖1和圖2。
[0078]GPUlO的存儲器復(fù)制引擎20可經(jīng)由系統(tǒng)總線24從GPUlO外部的系統(tǒng)存儲器30檢索第一數(shù)據(jù)(40)。第一數(shù)據(jù)可為源數(shù)據(jù),源數(shù)據(jù)指代存儲于系統(tǒng)存儲器30中的數(shù)據(jù)。存儲器復(fù)制引擎20可將第一數(shù)據(jù)存儲于本地存儲器18中(42)。存儲器復(fù)制引擎20可能不需要存取系統(tǒng)總線24以將第一數(shù)據(jù)存儲于本地存儲器18中。在一些實例中,存儲器復(fù)制引擎20可修改第一數(shù)據(jù)且將經(jīng)修改的第一數(shù)據(jù)存儲于本地存儲器中。
[0079]GPUlO的著色處理器16可從本地存儲器18檢索第一數(shù)據(jù)(44)且可在不存取系統(tǒng)總線24的情況下這樣做。著色處理器16可處理第一數(shù)據(jù)以產(chǎn)生第二數(shù)據(jù)(46)。舉例來說,著色處理器16可執(zhí)行著色程序的對第一數(shù)據(jù)執(zhí)行算術(shù)運算以產(chǎn)生第二數(shù)據(jù)的指令。第二數(shù)據(jù)可被視為結(jié)果數(shù)據(jù)以表明它是由著色處理器16的操作產(chǎn)生的數(shù)據(jù)。著色處理器16可將第二數(shù)據(jù)存儲于本地存儲器18中(48)。在一些實例中,著色處理器16可能不能夠存取系統(tǒng)存儲器30,且僅存儲器復(fù)制引擎20可能夠存取系統(tǒng)存儲器30,但本發(fā)明的方面不限于此。并且,在一些實例中,存儲器復(fù)制引擎20可修改第二數(shù)據(jù)且將經(jīng)修改的第二數(shù)據(jù)存儲于系統(tǒng)存儲器中。
[0080]存儲器復(fù)制引擎20可從本地存儲器18檢索第二數(shù)據(jù)(50)。存儲器復(fù)制引擎20可經(jīng)由系統(tǒng)總線24將第二數(shù)據(jù)存儲于系統(tǒng)存儲器30中(52)。在一些實例中,如上文所描述,存儲器復(fù)制引擎還可操作以修改數(shù)據(jù)。舉例來說,存儲器復(fù)制引擎20可將存儲于本地存儲器18中的第一數(shù)據(jù)修改成在著色處理器16上執(zhí)行的著色程序可用的數(shù)據(jù)。作為另一實例,存儲器復(fù)制引擎20可將存儲于本地存儲器18中的第二數(shù)據(jù)修改成在著色處理器16上執(zhí)行的著色程序可用的數(shù)據(jù)。
[0081]在一個或一個以上實例中,所描述的功能可用硬件、軟件、固件或其任何組合來實施。如果以軟件實施,那么所述功能可作為一個或一個以上指令或代碼而存儲于計算機可讀媒體上。計算機可讀媒體可包含計算機數(shù)據(jù)存儲媒體。數(shù)據(jù)存儲媒體可以是可由一個或一個以上計算機或一個或一個以上處理器存取以檢索用于實施本發(fā)明中描述的技術(shù)的指令、代碼和/或數(shù)據(jù)結(jié)構(gòu)的任何可用媒體。以實例方式且并非限制,此類計算機可讀媒體可包括RAM、ROM、EEPROM、CD-ROM或其它光盤存儲裝置、磁盤存儲裝置或其它磁性存儲裝置,或可用于存儲呈指令或數(shù)據(jù)結(jié)構(gòu)的形式的所要程序代碼且可由計算機存取的任何其它媒體。如本文中所使用,磁盤和光盤包含壓縮光盤(⑶)、激光光盤、光學(xué)光盤、數(shù)字多功能光盤(DVD)、軟性磁盤和藍(lán)光光盤,其中磁盤通常以磁性方式再現(xiàn)數(shù)據(jù),而光盤使用激光以光學(xué)方式再現(xiàn)數(shù)據(jù)。上述內(nèi)容的組合也應(yīng)包含在計算機可讀媒體的范圍內(nèi)。
[0082]可由一個或一個以上處理器來執(zhí)行代碼,例如一個或一個以上數(shù)字信號處理器(DSP)、通用微處理器、專用集成電路(ASIC)、現(xiàn)場可編程邏輯陣列(FPGA)或其它等效的集成或離散邏輯電路。因此,如本文中所使用的術(shù)語“處理器”可指代上述結(jié)構(gòu)或適合于實施本文中所描述的技術(shù)的任一其它結(jié)構(gòu)中的任一者。并且,可將所述技術(shù)完全實施于一個或一個以上電路或邏輯元件中。
[0083]本發(fā)明的技術(shù)可實施于各種各樣的裝置或設(shè)備中,包含無線手持機、集成電路(IC)或一組IC(S卩,芯片組)。在本發(fā)明中描述各種組件、模塊或單元是為了強調(diào)經(jīng)配置以執(zhí)行所揭示技術(shù)的裝置的功能方面,而不一定要求通過不同硬件單元來實現(xiàn)。而是,如上所述,各種單元可組合在硬件單元中或由互操作硬件單元(包含如上所述的一個或一個以上處理器)的集合與合適的軟件和/或固件共同提供。
[0084]已描述了各種實例。這些及其它實例屬于所附權(quán)利要求書的范圍內(nèi)。
【權(quán)利要求】
1.一種設(shè)備,其包括: 系統(tǒng)存儲器,其可經(jīng)由系統(tǒng)總線存?。灰约? 圖形處理單元GPU,其包括: 本地存儲器; 存儲器復(fù)制引擎,其可操作以經(jīng)由所述系統(tǒng)總線從所述系統(tǒng)存儲器檢索第一數(shù)據(jù)且將所述第一數(shù)據(jù)存儲于所述本地存儲器中,以及從所述本地存儲器檢索第二數(shù)據(jù)且經(jīng)由所述系統(tǒng)總線將所述第二數(shù)據(jù)存儲于所述系統(tǒng)存儲器中;以及 著色處理器,其可操作以從所述本地存儲器檢索所述第一數(shù)據(jù),處理所述第一數(shù)據(jù)以產(chǎn)生所述第二數(shù)據(jù),且將所述第二數(shù)據(jù)存儲于所述本地存儲器中。
2.根據(jù)權(quán)利要求1所述的設(shè)備,其中所述存儲器復(fù)制引擎、所述著色處理器以及所述本地存儲器彼此分離且處在所述GPU的芯片上。
3.根據(jù)權(quán)利要求1所述的設(shè)備,其中所述第一數(shù)據(jù)包括源數(shù)據(jù),且所述第二數(shù)據(jù)包括由對所述源數(shù)據(jù)的處理產(chǎn)生的結(jié)果數(shù)據(jù)。
4.根據(jù)權(quán)利要求1所述的設(shè)備,其中所述存儲器復(fù)制引擎實施為硬件或在硬件上執(zhí)行的軟件,且其中所述硬件與所述著色處理器分離且處在所述GPU的芯片上。
5.根據(jù)權(quán)利要求1所述的設(shè)備,其中所述著色處理器具有以下情況中的至少一者:不可操作以從所述系統(tǒng)存儲器檢索所述第一數(shù)據(jù),以及不可操作以將所述第二數(shù)據(jù)存儲于所述系統(tǒng)存儲器中。
6.根據(jù)權(quán)利要求1所述 的設(shè)備,其中所述著色處理器可操作以執(zhí)行用于算術(shù)運算的指令以處理所述第一數(shù)據(jù)以便產(chǎn)生所述第二數(shù)據(jù)。
7.根據(jù)權(quán)利要求1所述的設(shè)備,其中所述存儲器復(fù)制引擎進一步可操作以將存儲于所述本地存儲器中的所述第一數(shù)據(jù)修改成在所述著色處理器上執(zhí)行的著色程序可用的數(shù)據(jù)。
8.根據(jù)權(quán)利要求1所述的設(shè)備,其中所述存儲器復(fù)制引擎進一步可操作以將存儲于所述本地存儲器中的所述第二數(shù)據(jù)修改成在所述著色處理器上執(zhí)行的著色程序可用的數(shù)據(jù)。
9.根據(jù)權(quán)利要求1所述的設(shè)備,其中所述設(shè)備包括以下各項中的至少一者:媒體播放器、機頂盒、無線手持機、個人數(shù)字助理PDA、桌上型計算機、膝上型計算機、游戲控制臺、視頻會議單元以及平板計算裝置。
10.根據(jù)權(quán)利要求1所述的設(shè)備,其中所述存儲器復(fù)制引擎可操作以從所述系統(tǒng)存儲器檢索第三數(shù)據(jù)或?qū)⑺龅谌龜?shù)據(jù)存儲于所述系統(tǒng)存儲器中,與此同時所述著色處理器從所述本地存儲器檢索第四數(shù)據(jù)、處理所述第四數(shù)據(jù)或?qū)⑺龅谒臄?shù)據(jù)存儲于所述本地存儲器中。
11.根據(jù)權(quán)利要求1所述的設(shè)備,其中所述存儲器復(fù)制引擎進一步可操作以向所述著色處理器指示所述存儲器復(fù)制引擎完成了將所述第一數(shù)據(jù)存儲于所述本地存儲器中以及將所述第二數(shù)據(jù)存儲于所述系統(tǒng)存儲器中的至少一者。
12.根據(jù)權(quán)利要求1所述的設(shè)備,其中所述存儲器復(fù)制引擎進一步可操作以修改所述第一數(shù)據(jù),且其中所述存儲器復(fù)制引擎可操作以存儲所述第一數(shù)據(jù)包括所述存儲器復(fù)制引擎可操作以將所述經(jīng)修改的第一數(shù)據(jù)存儲于所述本地存儲器中。
13.根據(jù)權(quán)利要求1所述的設(shè)備,其中所述存儲器復(fù)制引擎進一步可操作以修改所述第二數(shù)據(jù),且其中所述存儲器復(fù)制引擎可操作以存儲第二數(shù)據(jù)包括所述存儲器復(fù)制引擎可操作以將所述經(jīng)修改的第二數(shù)據(jù)存儲于所述系統(tǒng)存儲器中。
14.一種方法,其包括: 用圖形處理單元GPU的存儲器復(fù)制引擎經(jīng)由系統(tǒng)總線從所述GPU外部的系統(tǒng)存儲器檢索第一數(shù)據(jù); 用所述GPU的所述存儲器復(fù)制引擎將所述第一數(shù)據(jù)存儲于所述GPU的本地存儲器中; 用所述GPU的著色處理器從所述本地存儲器檢索所述第一數(shù)據(jù); 用所述GPU的所述著色處理器處理所述第一數(shù)據(jù)以產(chǎn)生第二數(shù)據(jù); 用所述GPU的所述著色處理器將所述第二數(shù)據(jù)存儲于所述本地存儲器中; 用所述GPU的所述存儲器復(fù)制引擎從所述本地存儲器檢索所述第二數(shù)據(jù);以及用所述GPU的所述存儲器復(fù)制引擎經(jīng)由所述系統(tǒng)總線將所述第二數(shù)據(jù)存儲于所述系統(tǒng)存儲器中。
15.根據(jù)權(quán)利要求14所述的方法,其中所述存儲器復(fù)制引擎、所述著色處理器以及所述本地存儲器彼此分離且處在所述GPU的芯片上。
16.根據(jù)權(quán)利要求14所述的方法,其中所述第一數(shù)據(jù)包括源數(shù)據(jù),且所述第二數(shù)據(jù)包括由對所述源數(shù)據(jù)的處理產(chǎn)生的結(jié)果數(shù)據(jù)。
17.根據(jù)權(quán)利要求14所述的方法,其中所述著色處理器具有以下情況中的至少一者:不可操作以從所述系統(tǒng)存儲器檢索所述第一數(shù)據(jù),以及不可操作以將所述第二數(shù)據(jù)存儲于所述系統(tǒng)存儲器中。
18.根據(jù)權(quán)利要求14所述的方法`,其中處理所述第一數(shù)據(jù)以產(chǎn)生所述第二數(shù)據(jù)包括執(zhí)行用于算術(shù)運算的指令以處理所述第一數(shù)據(jù)以便產(chǎn)生所述第二數(shù)據(jù)。
19.根據(jù)權(quán)利要求14所述的方法,其進一步包括: 用所述GPU的所述存儲器復(fù)制引擎將存儲于所述本地存儲器中的所述第一數(shù)據(jù)修改成在所述著色處理器上執(zhí)行的著色程序可用的數(shù)據(jù)。
20.根據(jù)權(quán)利要求14所述的方法,其進一步包括: 用所述GPU的所述存儲器復(fù)制引擎將存儲于所述本地存儲器中的所述第二數(shù)據(jù)修改成在所述著色處理器上執(zhí)行的著色程序可用的數(shù)據(jù)。
21.根據(jù)權(quán)利要求14所述的方法,其進一步包括: 用所述存儲器復(fù)制引擎從所述系統(tǒng)存儲器檢索第三數(shù)據(jù)或?qū)⑺龅谌龜?shù)據(jù)存儲于所述系統(tǒng)存儲器中;以及 同時用所述著色處理器從所述本地存儲器檢索第四數(shù)據(jù)、處理所述第四數(shù)據(jù)或?qū)⑺龅谒臄?shù)據(jù)存儲于所述本地存儲器中。
22.根據(jù)權(quán)利要求14所述的方法,其進一步包括: 用所述存儲器復(fù)制引擎向所述著色處理器指示所述存儲器復(fù)制引擎完成了將所述第一數(shù)據(jù)存儲于所述本地存儲器中以及將所述第二數(shù)據(jù)存儲于所述系統(tǒng)存儲器中的至少一者。
23.根據(jù)權(quán)利要求14所述的方法,其進一步包括: 用所述存儲器復(fù)制引擎修改所述第一數(shù)據(jù), 其中用所述GPU的所述存儲器復(fù)制引擎將所述第一數(shù)據(jù)存儲于所述GPU的本地存儲器中包括用所述存儲器復(fù)制引擎將所述經(jīng)修改的第一數(shù)據(jù)存儲于所述GPU的本地存儲器中。
24.根據(jù)權(quán)利要求14所述的方法,其進一步包括: 用所述存儲器復(fù)制引擎修改所述第二數(shù)據(jù), 其中用所述GPU的所述存儲器復(fù)制引擎經(jīng)由所述系統(tǒng)總線將所述第二數(shù)據(jù)存儲于所述系統(tǒng)存儲器中包括用所述GPU的所述存儲器復(fù)制引擎經(jīng)由所述系統(tǒng)總線將所述經(jīng)修改的第二數(shù)據(jù)存儲于所述系統(tǒng)存儲器中。
25.—種設(shè)備,其包括: 系統(tǒng)存儲器,其可經(jīng)由系統(tǒng)總線存??;以及 圖形處理單元GPU,其處于所述系統(tǒng)存儲器外部,所述GPU包括: 本地存儲器; 用于用所述GPU的存儲器復(fù)制引擎經(jīng)由所述系統(tǒng)總線從所述系統(tǒng)存儲器檢索第一數(shù)據(jù)的裝置; 用于用所述GPU的所述存儲器復(fù)制引擎將所述第一數(shù)據(jù)存儲于所述本地存儲器中的裝置; 用于用所述GPU的著色處理器從所述本地存儲器檢索所述第一數(shù)據(jù)的裝置; 用于用所述GPU的所述著色處理器處理所述第一數(shù)據(jù)以產(chǎn)生第二數(shù)據(jù)的裝置; 用于用所述GPU的所述著色處理器將所述第二數(shù)據(jù)存儲于所述本地存儲器中的裝置; 用于用所述GPU的所述 存儲器復(fù)制引擎從所述本地存儲器檢索所述第二數(shù)據(jù)的裝置;以及 用于用所述GPU的所述存儲器復(fù)制引擎經(jīng)由所述系統(tǒng)總線將所述第二數(shù)據(jù)存儲于所述系統(tǒng)存儲器中的裝置。
26.根據(jù)權(quán)利要求25所述的設(shè)備,其中所述存儲器復(fù)制引擎、所述著色處理器以及所述本地存儲器彼此分離且處在所述GPU的芯片上。
27.根據(jù)權(quán)利要求25所述的設(shè)備,其中所述第一數(shù)據(jù)包括源數(shù)據(jù),且所述第二數(shù)據(jù)包括由對所述源數(shù)據(jù)的處理產(chǎn)生的結(jié)果數(shù)據(jù)。
28.根據(jù)權(quán)利要求25所述的設(shè)備,其中所述著色處理器具有以下情況中的至少一者:不可操作以從所述系統(tǒng)存儲器檢索所述第一數(shù)據(jù),以及不可操作以將所述第二數(shù)據(jù)存儲于所述系統(tǒng)存儲器中。
29.根據(jù)權(quán)利要求25所述的設(shè)備,其中所述用于處理所述第一數(shù)據(jù)以產(chǎn)生所述第二數(shù)據(jù)的裝置包括用于執(zhí)行用于算術(shù)運算的指令以處理所述第一數(shù)據(jù)以便產(chǎn)生所述第二數(shù)據(jù)的裝置。
30.根據(jù)權(quán)利要求25所述的設(shè)備,其進一步包括: 用于用所述GPU的所述存儲器復(fù)制引擎將存儲于所述本地存儲器中的所述第一數(shù)據(jù)修改成在所述著色處理器上執(zhí)行的著色程序可用的數(shù)據(jù)的裝置。
31.根據(jù)權(quán)利要求25所述的設(shè)備,其進一步包括: 用于用所述GPU的所述存儲器復(fù)制引擎將存儲于所述本地存儲器中的所述第二數(shù)據(jù)修改成在所述著色處理器上執(zhí)行的著色程序可用的數(shù)據(jù)的裝置。
32.根據(jù)權(quán)利要求25所述的設(shè)備,其中所述設(shè)備包括以下各項中的至少一者:媒體播放器、機頂盒、無線手持機、個人數(shù)字助理PDA、桌上型計算機、膝上型計算機、游戲控制臺、視頻會議單元以及平板計算裝置。
33.根據(jù)權(quán)利要求25所述的設(shè)備,其進一步包括: 用于用所述存儲器復(fù)制引擎從所述系統(tǒng)存儲器檢索第三數(shù)據(jù)或?qū)⑺龅谌龜?shù)據(jù)存儲于所述系統(tǒng)存儲器中的裝置;以及 用于同時用所述著色處理器從所述本地存儲器檢索第四數(shù)據(jù)、處理所述第四數(shù)據(jù)或?qū)⑺龅谒臄?shù)據(jù)存儲于所述本地存儲器中的裝置。
34.一種非暫時性計算機可讀存儲媒體,其包括致使圖形處理單元GPU進行以下操作的指令: 用所述GPU的存儲器復(fù)制引擎經(jīng)由系統(tǒng)總線從所述GPU外部的系統(tǒng)存儲器檢索第一數(shù)據(jù); 用所述GPU的所述存儲器復(fù)制引擎將所述第一數(shù)據(jù)存儲于所述GPU的本地存儲器中; 用所述GPU的著色處理器從所述本地存儲器檢索所述第一數(shù)據(jù); 用所述GPU的所述著色處理器處理所述第一數(shù)據(jù)以產(chǎn)生第二數(shù)據(jù); 用所述GPU的所述著色處理器將所述第二數(shù)據(jù)存儲于所述本地存儲器中; 用所述GPU的所述存儲器復(fù)制引擎從所述本地存儲器檢索所述第二數(shù)據(jù);以及用所述GTO的所述存儲器復(fù)制引擎經(jīng)由所述系統(tǒng)總線將所述第二數(shù)據(jù)存儲于所述系統(tǒng)存儲器中。
35.根據(jù)權(quán)利要求34所述的非暫時性計算機可讀存儲媒體,其中所述存儲器復(fù)制引擎、所述著色處理器以及所述本地存儲器彼此分離且處在所述GPU的芯片上。
36.根據(jù)權(quán)利要求34所述的非暫時性計算機可讀存儲媒體,其中所述第一數(shù)據(jù)包括源數(shù)據(jù),且所述第二數(shù)據(jù)包括由對所述源數(shù)據(jù)的處理產(chǎn)生的結(jié)果數(shù)據(jù)。
37.根據(jù)權(quán)利要求34所述的非暫時性計算機可讀存儲媒體,其中所述著色處理器具有以下情況中的至少一者:不可操作以從所述系統(tǒng)存儲器檢索所述第一數(shù)據(jù),以及不可操作以將所述第二數(shù)據(jù)存儲于所述系統(tǒng)存儲器中。
38.根據(jù)權(quán)利要求34所述的非暫時性計算機可讀存儲媒體,其中所述致使所述GPU處理所述第一數(shù)據(jù)以產(chǎn)生所述第二數(shù)據(jù)的指令包括致使所述GPU執(zhí)行用于算術(shù)運算的指令以處理所述第一數(shù)據(jù)以便產(chǎn)生所述第二數(shù)據(jù)的指令。
39.根據(jù)權(quán)利要求34所述的非暫時性計算機可讀存儲媒體,其進一步包括用于進行以下操作的指令: 用所述GPU的所述存儲器復(fù)制引擎將存儲于所述本地存儲器中的所述第一數(shù)據(jù)修改成在所述著色處理器上執(zhí)行的著色程序可用的數(shù)據(jù)。
40.根據(jù)權(quán)利要求34所述的非暫時性計算機可讀存儲媒體,其進一步包括用于進行以下操作的指令: 用所述GPU的所述存儲器復(fù)制引擎將存儲于所述本地存儲器中的所述第二數(shù)據(jù)修改成在所述著色處理器上執(zhí)行的著色程序可用的數(shù)據(jù)。
41.根據(jù)權(quán)利要求34所述的非暫時性計算機可讀存儲媒體,其進一步包括用于進行以下操作的指令: 用所述存儲器復(fù)制引擎從所述系統(tǒng)存儲器檢索第三數(shù)據(jù)或?qū)⑺龅谌龜?shù)據(jù)存儲于所述系統(tǒng)存儲器中;以及 同時用所述著色處理器從所述本地存儲器檢索第四數(shù)據(jù)、處理所述第四數(shù)據(jù)或?qū)⑺龅谒臄?shù)據(jù)存儲于所述本地存儲器中。
【文檔編號】G06T1/60GK103782280SQ201280043520
【公開日】2014年5月7日 申請日期:2012年8月13日 優(yōu)先權(quán)日:2011年9月7日
【發(fā)明者】彼得里·奧拉維·努德隆德, 尤卡·佩卡·阿爾沃, 羅伯特·J·辛普森 申請人:高通股份有限公司
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1