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

用于執(zhí)行基于圖形處理單元的存儲(chǔ)器傳送操作的多模式存儲(chǔ)器存取技術(shù)的制造方法與工藝

文檔序號(hào):11171257閱讀:603來源:國知局
用于執(zhí)行基于圖形處理單元的存儲(chǔ)器傳送操作的多模式存儲(chǔ)器存取技術(shù)的制造方法與工藝
本發(fā)明涉及圖形處理,且更具體地說,涉及用于以圖形處理器執(zhí)行存儲(chǔ)器傳送操作的技術(shù)。

背景技術(shù):
圖形處理單元(GPU)常常在計(jì)算裝置中使用以處置和/或提供用于顯示圖形圖像所需的操作中的一或多者的硬件加速。GPU通常處置的一類操作是存儲(chǔ)器傳送操作。存儲(chǔ)器傳送操作可包含存儲(chǔ)器復(fù)制操作和組構(gòu)操作。在一些實(shí)例中,存儲(chǔ)器傳送操作可被稱為傳圖(blit)操作或BLT操作(即,位塊傳送操作)。執(zhí)行這些存儲(chǔ)器傳送操作可涉及相對(duì)于存儲(chǔ)用于存儲(chǔ)器傳送操作的源和目的地?cái)?shù)據(jù)的芯片外存儲(chǔ)器執(zhí)行大量讀取和寫入操作。

技術(shù)實(shí)現(xiàn)要素:
本發(fā)明描述用于基于可選存儲(chǔ)器傳送模式以圖形處理單元(GPU)執(zhí)行存儲(chǔ)器傳送操作的技術(shù),以及用于選擇用于以GPU執(zhí)行存儲(chǔ)器傳送操作的全部或部分的存儲(chǔ)器傳送模式的技術(shù)。在一些實(shí)例中,用于執(zhí)行存儲(chǔ)器傳送操作的技術(shù)可使用經(jīng)配置以在使用交錯(cuò)存儲(chǔ)器傳送模式與順序存儲(chǔ)器傳送模式之間選擇性切換以用于執(zhí)行存儲(chǔ)器傳送操作的全部或部分的GPU。交錯(cuò)存儲(chǔ)器傳送模式可致使GPU基于生產(chǎn)者-消費(fèi)者范例執(zhí)行存儲(chǔ)器傳送操作,其中讀取請求和寫入請求彼此交錯(cuò)。順序存儲(chǔ)器傳送模式可致使GPU執(zhí)行存儲(chǔ)器傳送操作以使得GPU在發(fā)出多個(gè)連續(xù)讀取請求的群組與多個(gè)連續(xù)寫入請求的群組之間交替。在額外實(shí)例中,用于選擇存儲(chǔ)器傳送模式的技術(shù)可使用主機(jī)處理器(例如,CPU)和/或GPU來基于一或多個(gè)準(zhǔn)則選擇存儲(chǔ)器傳送模式以用于存儲(chǔ)器傳送操作的全部或部分。在一個(gè)實(shí)例中,本發(fā)明描述一種方法,其包含以一或多個(gè)處理器選擇用于執(zhí)行存儲(chǔ)器傳送操作的至少部分的存儲(chǔ)器傳送模式。所述存儲(chǔ)器傳送模式可選自包含交錯(cuò)存儲(chǔ)器傳送模式和順序存儲(chǔ)器傳送模式的至少兩個(gè)不同存儲(chǔ)器傳送模式的集合。所述方法進(jìn)一步包含以GPU基于所述選定存儲(chǔ)器傳送模式執(zhí)行所述存儲(chǔ)器傳送操作。在另一個(gè)實(shí)例中,本發(fā)明描述一種裝置,其包含經(jīng)配置以選擇用于執(zhí)行存儲(chǔ)器傳送操作的至少部分的存儲(chǔ)器傳送模式的一或多個(gè)處理器。所述存儲(chǔ)器傳送模式可選自包含交錯(cuò)存儲(chǔ)器傳送模式和順序存儲(chǔ)器傳送模式的至少兩個(gè)不同存儲(chǔ)器傳送模式的集合。所述裝置進(jìn)一步包含經(jīng)配置以基于所述選定存儲(chǔ)器傳送模式執(zhí)行所述存儲(chǔ)器傳送操作的GPU。在另一個(gè)實(shí)例中,本發(fā)明描述一種設(shè)備,其包含用于選擇用于執(zhí)行存儲(chǔ)器傳送操作的至少部分的存儲(chǔ)器傳送模式的裝置。所述存儲(chǔ)器傳送模式可選自包含交錯(cuò)存儲(chǔ)器傳送模式和順序存儲(chǔ)器傳送模式的至少兩個(gè)不同存儲(chǔ)器傳送模式的集合。所述設(shè)備進(jìn)一步包含用于基于所述選定存儲(chǔ)器傳送模式執(zhí)行所述存儲(chǔ)器傳送操作的裝置。在另一個(gè)實(shí)例中,本發(fā)明描述一種計(jì)算機(jī)可讀存儲(chǔ)媒體,其存儲(chǔ)當(dāng)被執(zhí)行時(shí)致使一或多個(gè)處理器選擇用于執(zhí)行存儲(chǔ)器傳送操作的至少部分的存儲(chǔ)器傳送模式的指令。所述存儲(chǔ)器傳送模式可選自包含交錯(cuò)存儲(chǔ)器傳送模式和順序存儲(chǔ)器傳送模式的至少兩個(gè)不同存儲(chǔ)器傳送模式的集合。所述計(jì)算機(jī)可讀存儲(chǔ)媒體進(jìn)一步存儲(chǔ)當(dāng)被執(zhí)行時(shí)致使一或多個(gè)處理器基于所述選定存儲(chǔ)器傳送模式執(zhí)行所述存儲(chǔ)器傳送操作的指令。在附圖和下文描述中闡述本發(fā)明的一或多個(gè)實(shí)例的細(xì)節(jié)。本發(fā)明的其它特征、目標(biāo)和優(yōu)點(diǎn)將從所述描述和圖式以及權(quán)利要求書而顯而易見。附圖說明圖1是說明可用以實(shí)施本發(fā)明的多模式存儲(chǔ)器傳送技術(shù)和本發(fā)明的存儲(chǔ)器傳送模式選擇技術(shù)的實(shí)例計(jì)算裝置的框圖。圖2是進(jìn)一步詳細(xì)說明圖1中的計(jì)算裝置的CPU、GPU和存儲(chǔ)器子系統(tǒng)的框圖。圖3是說明圖2中所示的實(shí)例配置中可使用的實(shí)例存儲(chǔ)器子系統(tǒng)的框圖。圖4是說明圖2中所示的實(shí)例配置中可使用的另一實(shí)例存儲(chǔ)器子系統(tǒng)的框圖。圖5是說明根據(jù)本發(fā)明的實(shí)例單個(gè)源存儲(chǔ)器傳送操作的概念圖。圖6是說明根據(jù)本發(fā)明的實(shí)例多源存儲(chǔ)器傳送操作的概念圖。圖7是說明根據(jù)本發(fā)明的實(shí)例GPU輔助的單個(gè)源存儲(chǔ)器傳送操作的概念圖。圖8是說明根據(jù)本發(fā)明的實(shí)例GPU輔助的多源存儲(chǔ)器傳送操作的概念圖。圖9A和9B是說明根據(jù)本發(fā)明的交錯(cuò)存儲(chǔ)器傳送模式執(zhí)行的單個(gè)源存儲(chǔ)器傳送操作的實(shí)例時(shí)序特性的時(shí)序圖。圖10是說明根據(jù)本發(fā)明的順序存儲(chǔ)器傳送模式執(zhí)行的單個(gè)源存儲(chǔ)器傳送操作的實(shí)例時(shí)序特性的時(shí)序圖。圖11A和11B是說明根據(jù)本發(fā)明的交錯(cuò)存儲(chǔ)器傳送模式執(zhí)行的多源存儲(chǔ)器傳送操作的實(shí)例時(shí)序特性的時(shí)序圖。圖12是說明根據(jù)本發(fā)明的順序存儲(chǔ)器傳送模式執(zhí)行的多源存儲(chǔ)器傳送操作的實(shí)例時(shí)序特性的時(shí)序圖。圖13是說明用于根據(jù)本發(fā)明的交錯(cuò)存儲(chǔ)器傳送技術(shù)執(zhí)行存儲(chǔ)器傳送操作的實(shí)例技術(shù)的流程圖。圖14是說明用于根據(jù)本發(fā)明的交錯(cuò)同步模式發(fā)出讀取請求的實(shí)例技術(shù)的流程圖。圖15是說明用于根據(jù)本發(fā)明的交錯(cuò)同步模式發(fā)出寫入請求的實(shí)例技術(shù)的流程圖。圖16是說明用于根據(jù)本發(fā)明的順序存儲(chǔ)器傳送技術(shù)執(zhí)行存儲(chǔ)器傳送操作的實(shí)例技術(shù)的流程圖。圖17是說明用于根據(jù)本發(fā)明的順序同步模式發(fā)出讀取請求的實(shí)例技術(shù)的流程圖。圖18是說明用于根據(jù)本發(fā)明的順序同步模式發(fā)出寫入請求的實(shí)例技術(shù)的流程圖。圖19是說明用于根據(jù)本發(fā)明的順序存儲(chǔ)器傳送模式執(zhí)行存儲(chǔ)器傳送操作的實(shí)例技術(shù)的流程圖。圖20是說明根據(jù)本發(fā)明的用于執(zhí)行存儲(chǔ)器傳送操作的實(shí)例技術(shù)的流程圖。圖21和22是說明根據(jù)本發(fā)明的用于選擇用于執(zhí)行存儲(chǔ)器傳送操作的存儲(chǔ)器傳送模式的實(shí)例技術(shù)的流程圖。圖23是說明根據(jù)本發(fā)明的具有多個(gè)屏幕對(duì)準(zhǔn)緩沖區(qū)和一目的地表面的屏幕的概念圖。圖24到26是說明根據(jù)本發(fā)明的用于選擇用于執(zhí)行存儲(chǔ)器傳送操作的存儲(chǔ)器傳送模式的實(shí)例技術(shù)的流程圖。圖27是說明根據(jù)本發(fā)明的用于執(zhí)行存儲(chǔ)器傳送操作的實(shí)例技術(shù)的流程圖。具體實(shí)施方式本發(fā)明描述用于基于可選存儲(chǔ)器傳送模式以圖形處理單元(GPU)執(zhí)行存儲(chǔ)器傳送操作的技術(shù),以及用于選擇用于以GPU執(zhí)行存儲(chǔ)器傳送操作的全部或部分的存儲(chǔ)器傳送模式的技術(shù)。在一些實(shí)例中,用于執(zhí)行存儲(chǔ)器傳送操作的技術(shù)可使用經(jīng)配置以在使用交錯(cuò)存儲(chǔ)器傳送模式與順序存儲(chǔ)器傳送模式之間選擇性切換以用于執(zhí)行存儲(chǔ)器傳送操作的全部或部分的GPU。交錯(cuò)存儲(chǔ)器傳送模式可致使GPU基于生產(chǎn)者-消費(fèi)者范例執(zhí)行存儲(chǔ)器傳送操作,其中讀取請求和寫入請求彼此交錯(cuò)。順序存儲(chǔ)器傳送模式可致使GPU執(zhí)行存儲(chǔ)器傳送操作以使得GPU在發(fā)出多個(gè)連續(xù)讀取請求的群組與多個(gè)連續(xù)寫入請求的群組之間交替。在額外實(shí)例中,用于選擇存儲(chǔ)器傳送模式的技術(shù)可使用主機(jī)處理器(例如,CPU)和/或GPU來基于一或多個(gè)準(zhǔn)則選擇存儲(chǔ)器傳送模式以用于存儲(chǔ)器傳送操作的全部或部分。不同存儲(chǔ)器傳送模式對(duì)于不同類型的存儲(chǔ)器傳送操作可比其它存儲(chǔ)器傳送模式更有效。舉例來說,順序存儲(chǔ)器傳送模式對(duì)于較大存儲(chǔ)器傳送操作可比交錯(cuò)存儲(chǔ)器傳送模式大體上更有效,而交錯(cuò)存儲(chǔ)器傳送模式在一些情況下對(duì)于較小存儲(chǔ)器傳送操作可比順序存儲(chǔ)器傳送模式更有效,具體來說是在其中在順序存儲(chǔ)器傳送模式期間每讀取請求存取的數(shù)據(jù)的最小量較大的情況下。本發(fā)明的技術(shù)可用以選擇性使用較適合于特定類型的存儲(chǔ)器傳送操作的不同存儲(chǔ)器傳送模式,進(jìn)而改善GPU的存儲(chǔ)器傳送操作的性能。存儲(chǔ)器傳送操作可包含存儲(chǔ)器復(fù)制操作和組構(gòu)操作。在一些實(shí)例中,存儲(chǔ)器傳送操作可被稱為傳圖(即,位塊傳送)操作。存儲(chǔ)器復(fù)制操作可涉及將數(shù)據(jù)從源表面的源區(qū)復(fù)制到目的地表面的目的地區(qū)。也就是說,GPU可從源表面的源區(qū)讀取數(shù)據(jù)且將所述源表面的源區(qū)中含有的數(shù)據(jù)的精確復(fù)制品寫入到目的地表面的目的地區(qū)。組構(gòu)操作可涉及以某種方式組合相同或不同源表面的至少兩個(gè)不同源區(qū),且將源區(qū)的組合寫入到目的地表面的目的地區(qū)。在一些情況下,源表面中的一或多者可為與用于組構(gòu)操作的目的地表面相同的表面。舉例來說,組構(gòu)操作可涉及讀數(shù)單個(gè)源區(qū)和單個(gè)目的地區(qū),將所述兩者摻合在一起,且將所摻合結(jié)果寫入回到目的地區(qū)。在一些實(shí)例中,當(dāng)執(zhí)行組構(gòu)操作時(shí),可根據(jù)光柵操作組合不同源區(qū),其對(duì)于組構(gòu)操作的不同實(shí)例可不同。光柵操作可為指定針對(duì)特定組構(gòu)操作應(yīng)如何組合位的操作。在一些實(shí)例中,光柵操作可包含逐位運(yùn)算,例如布爾型邏輯運(yùn)算。布爾型邏輯運(yùn)算可包含例如逐位AND、OR、NOT和/或XOR運(yùn)算。在額外實(shí)例中,光柵操作可包含摻合操作(例如,α摻合操作)。在一些實(shí)例中,摻合操作可指定在摻合操作的執(zhí)行期間將使用的源像素乘數(shù)和目的地像素乘數(shù)。在此些實(shí)例中,在摻合操作的執(zhí)行期間,源像素值(例如,源像素顏色值和/或源像素α值)可乘以源像素乘數(shù)以產(chǎn)生第一乘積,對(duì)應(yīng)目的地像素值(例如,目的地像素顏色值和/或目的地像素α值)可乘以目的地像素乘數(shù)以產(chǎn)生第二乘積,且可將兩個(gè)乘積的總和相加在一起以產(chǎn)生像素位置的目的地值。其它類型的摻合操作也是可能的。在其它實(shí)例中,不同源區(qū)可根據(jù)在GPU上執(zhí)行的著色器程序而組合。存儲(chǔ)器傳送操作中使用的源和目的地表面可為相同或不同表面,且可各自對(duì)應(yīng)于像素?cái)?shù)據(jù)的二維陣列。像素?cái)?shù)據(jù)可包含紅、綠、藍(lán)(RGB)顏色值,且在一些情況下,包含用于表面中的每一像素的α值(A)。因?yàn)樗霰砻鎸?duì)應(yīng)于像素?cái)?shù)據(jù)的二維陣列,所以表面中的個(gè)別像素位置的像素?cái)?shù)據(jù)可通過行和列坐標(biāo)來尋址。存儲(chǔ)器傳送操作中使用的源區(qū)中的每一者可對(duì)應(yīng)于相應(yīng)源表面的全部或子集。類似地,存儲(chǔ)器傳送操作中使用的目的地區(qū)可對(duì)應(yīng)于目的地表面的全部或子集。源和目的地區(qū)可為相同的大小和形狀,且通常但不一定是矩形形狀區(qū)。當(dāng)GPU執(zhí)行存儲(chǔ)器傳送操作時(shí),用于存儲(chǔ)器傳送操作的源表面和目的地表面通常存儲(chǔ)在芯片外存儲(chǔ)器中。換句話說,存儲(chǔ)器可形成于、定位于和/或安置于微芯片、集成電路和/或不同于所述微芯片、集成電路的裸片和/或其上形成、定位和/或安置GPU的裸片上。存儲(chǔ)器可經(jīng)由一或多個(gè)總線且在一些情況下經(jīng)由存儲(chǔ)器控制器以通信方式耦合到GPU。當(dāng)執(zhí)行存儲(chǔ)器復(fù)制操作時(shí),GPU可從源區(qū)中的像素位置中的每一者讀取數(shù)據(jù)且將從源區(qū)讀取的數(shù)據(jù)寫入到目的地區(qū)中的對(duì)應(yīng)像素位置。類似地,組構(gòu)操作的執(zhí)行可涉及從多個(gè)源區(qū)中的位置中的每一者讀數(shù)數(shù)據(jù),組合所述數(shù)據(jù),且將組合數(shù)據(jù)寫入到目的地區(qū)。因此單個(gè)存儲(chǔ)器傳送操作可涉及由GPU經(jīng)由一或多個(gè)總線將大量讀取請求和大量寫入請求發(fā)出到芯片外存儲(chǔ)器。為了執(zhí)行用于存儲(chǔ)器傳送操作的存儲(chǔ)器讀取和寫入操作,在一些實(shí)例中,GPU可使用讀取引擎和寫入引擎。讀取引擎可處置用于存儲(chǔ)器傳送操作的讀取請求的發(fā)出,且寫入引擎可處置用于存儲(chǔ)器傳送操作的寫入請求的發(fā)出。當(dāng)使用交錯(cuò)存儲(chǔ)器傳送模式執(zhí)行存儲(chǔ)器傳送操作時(shí),讀取和寫入引擎可利用生產(chǎn)者-消費(fèi)者類型的同步,其中讀取客戶端發(fā)出初始量的讀取請求,且在響應(yīng)于讀取請求接收到源數(shù)據(jù)之后寫入客戶端可即刻消耗所述數(shù)據(jù)且發(fā)出對(duì)應(yīng)寫入請求到存儲(chǔ)器。在消耗源數(shù)據(jù)之后,讀取引擎可即刻繼續(xù)發(fā)出后續(xù)讀取請求。讀取與寫入引擎之間的此類型的寬松同步可致使讀取和寫入流變?yōu)楸舜嘶旌虾?或交錯(cuò)的。因此,當(dāng)基于交錯(cuò)存儲(chǔ)器傳送模式執(zhí)行存儲(chǔ)器傳送操作時(shí),存儲(chǔ)器和總線在服務(wù)于讀取請求與服務(wù)于寫入請求之間頻繁地切換。對(duì)于一些類型的存儲(chǔ)器,例如雙數(shù)據(jù)速率同步動(dòng)態(tài)隨機(jī)存取存儲(chǔ)器(DDRSDRAM),一定量的處理時(shí)間開銷可與存儲(chǔ)器和/或總線需要在服務(wù)于讀取操作與服務(wù)于寫入操作之間切換的每一時(shí)間相關(guān)聯(lián)。舉例來說,每次在服務(wù)于讀取與寫入請求之間發(fā)生切換時(shí),在總線改變方向之前可需要特定量的空閑時(shí)間來使總線穩(wěn)定。此處理時(shí)間開銷可被稱為讀取-寫入周轉(zhuǎn)時(shí)間。作為另一實(shí)例,如果讀取和寫入流存取存儲(chǔ)器的不同頁,那么每次在服務(wù)于讀取與寫入請求之間發(fā)生切換時(shí)存儲(chǔ)器可需要打開和關(guān)閉存儲(chǔ)器的不同頁和/或組,進(jìn)而對(duì)讀取-寫入切換添加額外處理時(shí)間開銷。存儲(chǔ)器傳送操作,例如組構(gòu)和傳圖操作,常常是存儲(chǔ)器受限的。也就是說,執(zhí)行此些操作需要的存儲(chǔ)器讀取和寫入請求常常變成GPU的性能瓶頸。因此,導(dǎo)致讀取與寫入請求的服務(wù)之間的大量切換的讀取-寫入引擎同步方案可不僅減少GPU的存儲(chǔ)器存取效率,而且還可減少總存儲(chǔ)器傳送操作的性能。本發(fā)明中描述的順序存儲(chǔ)器傳送模式可用以例如通過在單獨(dú)的時(shí)間間隔期間將多個(gè)連續(xù)讀取請求的序列和多個(gè)連續(xù)寫入請求的序列發(fā)出到存儲(chǔ)器而減少當(dāng)在GPU中執(zhí)行存儲(chǔ)器傳送操作時(shí)發(fā)生的讀取-寫入周轉(zhuǎn)開銷。因?yàn)樽x取和寫入請求是在單獨(dú)的時(shí)間間隔期間在多個(gè)連續(xù)請求的群組中發(fā)出,所以系統(tǒng)存儲(chǔ)器和/或總線可需要在服務(wù)于讀取與寫入請求之間切換的次數(shù)可減少,進(jìn)而減少存儲(chǔ)器傳送操作的讀取-寫入周轉(zhuǎn)開銷。對(duì)于相對(duì)大的存儲(chǔ)器傳送操作,由順序存儲(chǔ)器傳送模式提供的減少的讀取-寫入周轉(zhuǎn)開銷可致使順序存儲(chǔ)器傳送模式在執(zhí)行存儲(chǔ)器傳送操作時(shí)比交錯(cuò)存儲(chǔ)器傳送模式更有效。然而,對(duì)于較小存儲(chǔ)器傳送操作,執(zhí)行順序存儲(chǔ)器傳送模式中的同步所需要的額外開銷在一些情況下可能超越了減少讀取-寫入周轉(zhuǎn)開銷的益處。此外,在其中在順序存儲(chǔ)器傳送模式期間針對(duì)讀取請求從存儲(chǔ)器傳送到GPU的數(shù)據(jù)的最小量與存儲(chǔ)器傳送操作(例如,BLT操作)的大小相比相對(duì)大的情況下,順序存儲(chǔ)器傳送模式可致使從存儲(chǔ)器讀取額外的數(shù)據(jù),進(jìn)而減少存儲(chǔ)器傳送操作的性能。根據(jù)本發(fā)明的技術(shù)提供在用于特定存儲(chǔ)器傳送操作或其部分的順序存儲(chǔ)器傳送模式與交錯(cuò)存儲(chǔ)器傳送模式之間選擇性切換的能力可允許GPU選擇性地在其中此模式的益處不被其它因素超過和/或減少的情況下使用順序存儲(chǔ)器傳送模式來增加存儲(chǔ)器效率,且在其中順序存儲(chǔ)器傳送模式的益處被其它因素超過和/或減少的情況下使用交錯(cuò)存儲(chǔ)器傳送模式。通過允許GPU選擇性使用較好地適合于特定類型(例如,大小)的存儲(chǔ)器傳送操作的不同存儲(chǔ)器傳送模式,本發(fā)明的技術(shù)可能夠改善執(zhí)行多種不同類型的存儲(chǔ)器傳送操作的GPU的總性能。在一些實(shí)例中,在應(yīng)用程序處理器上執(zhí)行的GPU和/或GPU驅(qū)動(dòng)器可基于存儲(chǔ)器傳送操作的大小選擇用于執(zhí)行存儲(chǔ)器傳送操作的全部或部分的存儲(chǔ)器傳送模式。存儲(chǔ)器傳送操作的大小可指代存儲(chǔ)器傳送操作將傳送的數(shù)據(jù)的量。舉例來說,如果存儲(chǔ)器傳送操作的大小大于閾值,那么GPU和/或GPU驅(qū)動(dòng)器可將順序存儲(chǔ)器傳送模式選擇為將用于執(zhí)行存儲(chǔ)器傳送操作的全部或部分的存儲(chǔ)器傳送模式。作為另一實(shí)例,如果存儲(chǔ)器傳送操作的大小不大于閾值,那么GPU和/或GPU驅(qū)動(dòng)器可將交錯(cuò)存儲(chǔ)器傳送模式選擇為將用于執(zhí)行存儲(chǔ)器傳送操作的全部或部分的存儲(chǔ)器傳送模式。在額外實(shí)例中,在應(yīng)用程序處理器上執(zhí)行的GPU和/或GPU驅(qū)動(dòng)器可基于針對(duì)存儲(chǔ)器傳送操作界定的目的地區(qū)與固定屏幕對(duì)準(zhǔn)緩沖區(qū)具有的重疊的量而選擇用于執(zhí)行存儲(chǔ)器傳送操作的全部或部分的存儲(chǔ)器傳送模式。在一些情況下,表面可對(duì)應(yīng)于顯示監(jiān)視器或屏幕上含有的像素。屏幕可經(jīng)細(xì)分為多個(gè)區(qū),其各自具有對(duì)應(yīng)于用以存儲(chǔ)所讀取數(shù)據(jù)的緩沖器的大小的固定大小。這些經(jīng)細(xì)分區(qū)可被稱為固定屏幕對(duì)準(zhǔn)緩沖區(qū)。在此些實(shí)例中,當(dāng)在順序存儲(chǔ)器傳送模式中操作時(shí),GPU可經(jīng)配置以在對(duì)應(yīng)于固定屏幕對(duì)準(zhǔn)緩沖區(qū)的大小的固定大小的數(shù)據(jù)單元中在存儲(chǔ)器與GPU之間傳送數(shù)據(jù)。如果目的地區(qū)部分地但不完全地覆蓋特定的固定屏幕對(duì)準(zhǔn)緩沖區(qū),那么GPU和/或GPU驅(qū)動(dòng)器可將交錯(cuò)存儲(chǔ)器傳送模式選擇為用于屏幕的所述區(qū)的存儲(chǔ)器傳送模式,因?yàn)槠渲袑⒋鎯?chǔ)讀取數(shù)據(jù)的緩沖器將不會(huì)完全利用。如果在此情況下選定順序存儲(chǔ)器模式,那么固定大小存儲(chǔ)器讀取將致使從存儲(chǔ)器讀取額外的數(shù)據(jù),這可超越通過使用順序存儲(chǔ)器傳送模式將發(fā)生的任何讀取-寫入周轉(zhuǎn)節(jié)省。另一方面,如果目的地區(qū)完全覆蓋特定的固定屏幕對(duì)準(zhǔn)緩沖區(qū),那么GPU和/或GPU驅(qū)動(dòng)器可將順序存儲(chǔ)器傳送模式選擇為用于屏幕的所述區(qū)的存儲(chǔ)器傳送模式,因?yàn)槠渲袑⒋鎯?chǔ)讀取數(shù)據(jù)的緩沖器將完全利用且將不浪費(fèi)時(shí)間檢索額外的數(shù)據(jù)。在其它實(shí)例中,在應(yīng)用程序處理器上執(zhí)行的GPU和/或GPU驅(qū)動(dòng)器可基于用以執(zhí)行存儲(chǔ)器傳送操作(例如,組構(gòu)操作)的著色器程序的大小和/或復(fù)雜性而選擇用于執(zhí)行存儲(chǔ)器傳送操作的全部或部分的存儲(chǔ)器傳送模式。著色器程序的大小和/或復(fù)雜性可指示用于特定存儲(chǔ)器傳送操作的著色器操作的性能是否可能為存儲(chǔ)器傳送操作的性能瓶頸。在此些實(shí)例中,如果著色器程序的大小和/或復(fù)雜性小于閾值,那么GPU和/或GPU驅(qū)動(dòng)器可確定著色器操作的性能不大可能為存儲(chǔ)器傳送操作的性能瓶頸。在此情況下,GPU和/或GPU驅(qū)動(dòng)器可選擇用于存儲(chǔ)器傳送操作的順序存儲(chǔ)器傳送模式,因?yàn)橛锌赡艽鎯?chǔ)器存取效率可為存儲(chǔ)器傳送操作的性能瓶頸。另一方面,如果著色器程序的大小和/或復(fù)雜性大于閾值,那么GPU和/或GPU驅(qū)動(dòng)器可確定著色器操作的性能可能為存儲(chǔ)器傳送操作的性能瓶頸。在此情況下,GPU和/或GPU驅(qū)動(dòng)器可選擇用于存儲(chǔ)器傳送操作的交錯(cuò)存儲(chǔ)器傳送模式,因?yàn)榇鎯?chǔ)器效率的增加是不需要的且因?yàn)樵陧樞虼鎯?chǔ)器傳送模式中發(fā)生的讀取操作的延期可能具有使著色器程序耗盡數(shù)據(jù)的可能,這在著色器程序是性能瓶頸的情況下通常是不合意的。在額外實(shí)例中,GPU可基于選定存儲(chǔ)器傳送模式選擇和配置用于高速緩沖存儲(chǔ)器的高速緩沖存儲(chǔ)線大小。高速緩沖存儲(chǔ)器可對(duì)應(yīng)于GPU中的其中存儲(chǔ)讀取數(shù)據(jù)的緩沖器。在此些實(shí)例中,如果存儲(chǔ)器傳送模式是順序存儲(chǔ)器傳送模式,那么GPU可選擇等于高速緩沖存儲(chǔ)器的整個(gè)容量的高速緩沖存儲(chǔ)線大小以便允許讀取和寫入操作的盡可能大的分組。另一方面,如果存儲(chǔ)器傳送模式是交錯(cuò)存儲(chǔ)器傳送模式,那么GPU可選擇小于高速緩沖存儲(chǔ)器的整個(gè)容量的高速緩沖存儲(chǔ)線大小以便允許當(dāng)服務(wù)于交錯(cuò)請求時(shí)同時(shí)高速緩沖存儲(chǔ)多個(gè)數(shù)據(jù)區(qū)。根據(jù)本發(fā)明的一些方面,描述用于用信號(hào)表示將由GPU使用用于執(zhí)行存儲(chǔ)器傳送操作的存儲(chǔ)器傳送模式的技術(shù)。所述信令技術(shù)可允許在主機(jī)應(yīng)用程序處理器上執(zhí)行的GPU驅(qū)動(dòng)器和/或用戶應(yīng)用程序控制用于執(zhí)行存儲(chǔ)器傳送操作的存儲(chǔ)器傳送模式。在一些實(shí)例中,指定存儲(chǔ)器傳送模式的信息字段可添加到經(jīng)配置以由GPU執(zhí)行的一或多個(gè)現(xiàn)有GPU命令。所述信息字段在一些情況下可為指定將用于與指令相關(guān)聯(lián)的存儲(chǔ)器傳送操作的存儲(chǔ)器傳送模式的單個(gè)模式位。舉例來說,圖形驅(qū)動(dòng)器可通過對(duì)GPU指定源和目的地存儲(chǔ)器區(qū)且通過發(fā)出(三維)3D繪制調(diào)用指令到GPU而服務(wù)于用戶層級(jí)傳圖命令。3D繪制調(diào)用指令可包含指示在3D繪制調(diào)用指令的執(zhí)行期間將使用的存儲(chǔ)器傳送模式的模式位。GPU可經(jīng)配置以基于指令中指定的存儲(chǔ)器傳送模式執(zhí)行存儲(chǔ)器傳送操作。在額外實(shí)例中,GPU可包含指定將用于執(zhí)行存儲(chǔ)器傳送操作的存儲(chǔ)器傳送模式的存儲(chǔ)器傳送模式狀態(tài)變量。在此些實(shí)例中,GPU命令(例如,從GPU驅(qū)動(dòng)器發(fā)出到GPU的命令)可用以將存儲(chǔ)器傳送模式狀態(tài)變量的狀態(tài)編程到指示將用于執(zhí)行存儲(chǔ)器傳送操作的存儲(chǔ)器傳送模式的值。GPU可經(jīng)配置以基于存儲(chǔ)器傳送模式狀態(tài)變量的狀態(tài)執(zhí)行存儲(chǔ)器傳送操作。在其它實(shí)例中,存儲(chǔ)器傳送模式可為作為GPU命令流的部分而經(jīng)修改的GPU狀態(tài)的部分。GPU命令流可包含到由一或多個(gè)GPU著色器處理器執(zhí)行的代碼的狀態(tài)寄存器設(shè)定命令以及指令(或指令指針)。在額外實(shí)例中,指令可添加到用于GPU驅(qū)動(dòng)器的應(yīng)用程序編程接口(API)。指令可包含存儲(chǔ)器傳送模式指示符,其指示將用于執(zhí)行存儲(chǔ)器傳送操作的存儲(chǔ)器傳送模式。GPU驅(qū)動(dòng)器可經(jīng)配置以致使GPU基于存儲(chǔ)器傳送模式指示符執(zhí)行存儲(chǔ)器傳送操作。以此方式,用戶應(yīng)用程序可能夠指定當(dāng)執(zhí)行存儲(chǔ)器傳送操作時(shí)由GPU使用的存儲(chǔ)器傳送模式。圖1是說明可用以實(shí)施本發(fā)明的多模式存儲(chǔ)器傳送技術(shù)和本發(fā)明的存儲(chǔ)器傳送模式選擇技術(shù)的實(shí)例計(jì)算裝置2的框圖。計(jì)算裝置2可包括個(gè)人計(jì)算機(jī)、桌上型計(jì)算機(jī)、膝上型計(jì)算機(jī)、計(jì)算機(jī)工作站、視頻游戲平臺(tái)或控制臺(tái)、無線通信裝置(例如,移動(dòng)電話、蜂窩式電話、衛(wèi)星電話和/或移動(dòng)電話手持機(jī))、陸線電話、因特網(wǎng)電話、手持式裝置(例如,便攜式視頻游戲裝置或個(gè)人數(shù)字助理(PDA))、個(gè)人音樂播放器、視頻播放器、顯示裝置、電視、電視機(jī)頂盒、服務(wù)器、中間網(wǎng)絡(luò)裝置、主機(jī)計(jì)算機(jī)、或處理及/或顯示圖形數(shù)據(jù)的任何其它類型的裝置。如圖1的實(shí)例中所示,計(jì)算裝置2包含用戶接口4、CPU6、存儲(chǔ)器子系統(tǒng)8、圖形處理單元(GPU)10、GPU高速緩沖存儲(chǔ)器12、顯示器接口14、顯示器16和總線18。用戶接口4、CPU6、存儲(chǔ)器子系統(tǒng)8、GPU10和顯示器接口14可使用總線18彼此通信。應(yīng)注意圖1中所示的不同組件之間的總線和通信接口的特定配置僅是示范性的,且具有相同或不同組件的計(jì)算裝置和/或其它圖形處理系統(tǒng)的其它配置可用以實(shí)施本發(fā)明的技術(shù)。CPU6可包括控制計(jì)算裝置2的操作的通用或?qū)S锰幚砥?。用戶可將輸入提供到?jì)算裝置2以致使CPU6執(zhí)行一或多個(gè)軟件應(yīng)用程序。在CPU6上執(zhí)行的軟件應(yīng)用可包含(例如)操作系統(tǒng)、字處理器應(yīng)用、電子郵件應(yīng)用、電子數(shù)據(jù)表應(yīng)用、媒體播放器應(yīng)用、視頻游戲應(yīng)用、圖形用戶接口應(yīng)用或另一程序。用戶可經(jīng)由一或多個(gè)輸入裝置(未圖示)(例如,鍵盤、鼠標(biāo)、麥克風(fēng)、觸摸墊或經(jīng)由用戶接口4耦合到計(jì)算裝置2的另一輸入裝置)將輸入提供到計(jì)算裝置2。在CPU6上執(zhí)行的軟件應(yīng)用程序可包含指示GPU10致使圖形數(shù)據(jù)到顯示器16的再現(xiàn)的一或多個(gè)圖形再現(xiàn)指令。在一些實(shí)例中,軟件指令可符合圖形應(yīng)用程序編程接口(API),例如開放圖形庫()API、開放圖形庫嵌入系統(tǒng)(OpenGLES)API、Direct3DAPI、DirectXAPI、RenderManAPI、WebGLAPI或任何其它公眾或?qū)S袠?biāo)準(zhǔn)圖形API。為了處理圖形再現(xiàn)指令,CPU6可將一或多個(gè)圖形再現(xiàn)命令發(fā)出到GPU10以致使GPU10執(zhí)行圖形數(shù)據(jù)的再現(xiàn)的一些或全部。在一些實(shí)例中,將再現(xiàn)的圖形數(shù)據(jù)可包含例如點(diǎn)、線、三角形、四邊形、三角形帶、片等圖形基元的列表。存儲(chǔ)器子系統(tǒng)8可經(jīng)配置以服務(wù)于從計(jì)算裝置2內(nèi)的其它組件接收的存儲(chǔ)器存取請求。舉例來說,存儲(chǔ)器子系統(tǒng)8可服務(wù)于來自CPU6、GPU10和/或顯示器接口14的存儲(chǔ)器存取請求。存儲(chǔ)器存取請求可包含讀取存取請求和寫入存取請求。存儲(chǔ)器子系統(tǒng)8經(jīng)由總線18以通信方式耦合到CPU6、GPU10、用戶接口4和顯示器接口14。存儲(chǔ)器子系統(tǒng)8包含存儲(chǔ)器控制器20和存儲(chǔ)器22。存儲(chǔ)器控制器20促進(jìn)進(jìn)出存儲(chǔ)器22的數(shù)據(jù)的傳送。舉例來說,存儲(chǔ)器控制器20可接收來自CPU6和/或GPU10的存儲(chǔ)器讀取請求和存儲(chǔ)器寫入請求,且相對(duì)于存儲(chǔ)器22服務(wù)于此些請求以便為計(jì)算裝置2中的組件提供存儲(chǔ)器服務(wù)。讀取請求可指定返回到請求者的數(shù)據(jù)應(yīng)來自的存儲(chǔ)器地址或存儲(chǔ)地址范圍。寫入請求可指定指定數(shù)據(jù)應(yīng)寫入到的存儲(chǔ)器地址或存儲(chǔ)地址范圍。待寫入的數(shù)據(jù)可結(jié)合寫入請求由請求者(例如,CPU6和/或GPU10)經(jīng)由一或多個(gè)數(shù)據(jù)總線供應(yīng)到存儲(chǔ)器控制器20。在一些實(shí)例中,待寫入數(shù)據(jù)可形成寫入請求的部分。響應(yīng)于接收到存儲(chǔ)器存取請求,存儲(chǔ)器控制器20可發(fā)出一或多個(gè)讀取命令到存儲(chǔ)器22和/或發(fā)出一或多個(gè)寫入命令到存儲(chǔ)器22以服務(wù)于讀取和寫入請求。存儲(chǔ)器控制器20經(jīng)由專用存儲(chǔ)器總線以通信方式耦合到存儲(chǔ)器22,且經(jīng)由總線18耦合到其它組件(例如,CPU6和GPU10)。雖然存儲(chǔ)器控制器20在圖1的實(shí)例計(jì)算裝置2中說明為與CPU6和存儲(chǔ)器22兩者分開的處理模塊,但在其它實(shí)例中,存儲(chǔ)器控制器20的功能性中的一些或全部可在CPU6、GPU10和存儲(chǔ)器22中的一或多者中實(shí)施。存儲(chǔ)器22可存儲(chǔ)可由CPU6存取以用于執(zhí)行的程序模塊及/或指令及/或由在CPU6上執(zhí)行的程序使用的數(shù)據(jù)。舉例來說,存儲(chǔ)器22可存儲(chǔ)用戶應(yīng)用程序及與所述應(yīng)用程序相關(guān)聯(lián)的圖形數(shù)據(jù)。存儲(chǔ)器22還可存儲(chǔ)用于由計(jì)算裝置2的其它組件使用和/或由其產(chǎn)生的信息。舉例來說,存儲(chǔ)器22可充當(dāng)用于GPU10的裝置存儲(chǔ)器且可存儲(chǔ)將在GPU10上操作的數(shù)據(jù)以及由GPU10執(zhí)行的操作而產(chǎn)生的數(shù)據(jù)。舉例來說,存儲(chǔ)器22可存儲(chǔ)表面、源表面、目的地表面、紋理緩沖器、深度緩沖器、模板緩沖器、頂點(diǎn)緩沖器、幀緩沖器或類似物的任何組合。另外,存儲(chǔ)器22可存儲(chǔ)用于由GPU10處理的命令流。存儲(chǔ)器22可包含一或多個(gè)易失性或非易失性存儲(chǔ)器或存儲(chǔ)裝置,例如隨機(jī)存取存儲(chǔ)器(RAM)、靜態(tài)RAM(SRAM)、動(dòng)態(tài)RAM(DRAM)、同步動(dòng)態(tài)隨機(jī)存取存儲(chǔ)器(SDRAM)、只讀存儲(chǔ)器(ROM)、可擦除可編程ROM(EPROM)、電可擦除可編程ROM(EEPROM)、快閃存儲(chǔ)器、磁性數(shù)據(jù)媒體或光學(xué)存儲(chǔ)媒體。在一些實(shí)例中,存儲(chǔ)器22可為雙數(shù)據(jù)速率(DDR)SDRAM,例如DDR1SDRAM、DDR2SDRAM、DDR3SDRAM、DDR4SDRAM等。GPU10可經(jīng)配置以執(zhí)行由CPU6發(fā)出到GPU10的命令。由GPU10執(zhí)行的命令可包含圖形命令、繪制調(diào)用命令、GPU狀態(tài)編程命令、存儲(chǔ)器傳送命令、通用計(jì)算命令、核心執(zhí)行命令等。存儲(chǔ)器傳送命令可包含例如存儲(chǔ)器復(fù)制命令、存儲(chǔ)器組構(gòu)命令和傳圖命令。在一些實(shí)例中,GPU10可經(jīng)配置以執(zhí)行圖形操作以將一或多個(gè)圖形基元再現(xiàn)到顯示器16。在此等實(shí)例中,當(dāng)在CPU6上執(zhí)行的軟件應(yīng)用程序中的一者需要圖形處理時(shí),CPU6可將圖形數(shù)據(jù)提供到GPU10用于向顯示器16再現(xiàn)且將一或多個(gè)圖形命令發(fā)出到GPU10。所述圖形命令可包含例如繪制調(diào)用命令、GPU狀態(tài)編程命令、存儲(chǔ)器傳送命令、傳圖命令等。所述圖形數(shù)據(jù)可包含頂點(diǎn)緩沖器、紋理數(shù)據(jù)、表面數(shù)據(jù)等。在一些實(shí)例中,CPU6可通過將命令和圖形數(shù)據(jù)寫入到可由GPU10存取的存儲(chǔ)器22而將命令和圖形數(shù)據(jù)提供到GPU10。在其它實(shí)例中,GPU10可經(jīng)配置以執(zhí)行用于CPU6上執(zhí)行的應(yīng)用程序的通用計(jì)算。在此等實(shí)例中,當(dāng)CPU6上執(zhí)行的軟件應(yīng)用程序中的一者決定將計(jì)算任務(wù)卸載到GPU10時(shí),CPU6可將通用計(jì)算數(shù)據(jù)提供到GPU10,且將一或多個(gè)通用計(jì)算命令發(fā)出到GPU10。所述通用計(jì)算命令可包含例如核心執(zhí)行命令、存儲(chǔ)器傳送命令等。在一些實(shí)例中,CPU6可通過將命令和圖形數(shù)據(jù)寫入到可由GPU10存取的存儲(chǔ)器22而將命令和通用計(jì)算數(shù)據(jù)提供到GPU10。在一些情況下,GPU10可內(nèi)置有高度并行的結(jié)構(gòu),其提供比CPU6對(duì)向量操作的更有效的處理。舉例來說,GPU10可包含經(jīng)配置而以并行方式對(duì)多個(gè)頂點(diǎn)、控制點(diǎn)、像素和/或其它數(shù)據(jù)操作的多個(gè)處理元件。在一些情況下,GPU10的高度并行本質(zhì)可允許GPU10比使用CPU6再現(xiàn)圖像更快地將圖形圖像(例如,GUI和二維(2D)和/或三維(3D)圖形場景)再現(xiàn)到顯示器16上。另外,GPU10的高度并行本質(zhì)可允許GPU10比CPU6更快地處理某些類型的向量和矩陣運(yùn)算以用于通用計(jì)算應(yīng)用程序。在一些實(shí)例中,GPU10可集成到計(jì)算裝置2的母板中。在其它情況下,GPU10可存在于安裝在計(jì)算裝置2的母板中的端口中的圖形卡上或否則可并入在經(jīng)配置以與計(jì)算裝置2交互操作的外圍裝置內(nèi)。在進(jìn)一步例子中,GPU10可與CPU6位于同一微芯片上從而形成芯片上系統(tǒng)(SoC)。GPU10可包含一或多個(gè)處理器,例如一或多個(gè)微處理器、專用集成電路(ASIC)、現(xiàn)場可編程門陣列(FPGA)、數(shù)字信號(hào)處理器(DSP)或其它等效的集成或離散邏輯電路。在一些實(shí)例中,GPU10可直接耦合到GPU高速緩沖存儲(chǔ)器12。因此,GPU10可從GPU高速緩沖存儲(chǔ)器12讀取數(shù)據(jù)且寫入數(shù)據(jù)到GPU高速緩沖存儲(chǔ)器12而不一定使用總線18。換句話說,GPU10可使用局部存儲(chǔ)裝置而非芯片外存儲(chǔ)器來局部地處理數(shù)據(jù)。此允許GPU10通過消除GPU10經(jīng)由總線18讀取及寫入數(shù)據(jù)的需要而以更有效的方式操作,其中經(jīng)由總線操作可經(jīng)歷繁重的總線業(yè)務(wù)。然而,在一些情況下,GPU10可不包含單獨(dú)的高速緩沖存儲(chǔ)器,而是經(jīng)由總線18利用存儲(chǔ)器22。GPU高速緩沖存儲(chǔ)器12可包含一或多個(gè)易失性或非易失性存儲(chǔ)器或存儲(chǔ)裝置,例如隨機(jī)存取存儲(chǔ)器(RAM)、靜態(tài)RAM(SRAM)、動(dòng)態(tài)RAM(DRAM)、可擦除可編程ROM(EPROM)、電可擦除可編程ROM(EEPROM)、快閃存儲(chǔ)器、磁性數(shù)據(jù)媒體或光學(xué)存儲(chǔ)媒體。CPU6及/或GPU10可將再現(xiàn)的圖像數(shù)據(jù)存儲(chǔ)在存儲(chǔ)器22內(nèi)所分配的幀緩沖器中。顯示器接口14可從幀緩沖器檢索數(shù)據(jù)且配置顯示器16以顯示由經(jīng)再現(xiàn)圖像數(shù)據(jù)表示的圖像。在一些實(shí)例中,顯示器接口14可包含數(shù)/模轉(zhuǎn)換器(DAC),其經(jīng)配置以將從幀緩沖器檢索的數(shù)字值轉(zhuǎn)換為可由顯示器16消耗的模擬信號(hào)。在其它實(shí)例中,顯示器接口14可將數(shù)字值直接傳遞到顯示器16以進(jìn)行處理。顯示器16可包含監(jiān)視器、電視、投影裝置、液晶顯示器(LCD)、等離子顯示器面板、發(fā)光二極管(LED)陣列、陰極射線管(CRT)顯示器、電子紙、表面?zhèn)鲗?dǎo)電子發(fā)射顯示器(SED)、激光電視顯示器、納米晶體顯示器或另一類型的顯示單元。顯示器16可集成在計(jì)算裝置2內(nèi)。舉例來說,顯示器16可為移動(dòng)電話手持機(jī)或平板計(jì)算機(jī)的屏幕。或者,顯示器16可為經(jīng)由有線或無線通信鏈路而耦合到計(jì)算機(jī)裝置2的獨(dú)立裝置。舉例來說,顯示器16可為經(jīng)由電纜或無線鏈路而連接到個(gè)人計(jì)算機(jī)的計(jì)算機(jī)監(jiān)視器或平板顯示器??偩€18可使用總線結(jié)構(gòu)和總線協(xié)議的任何組合來實(shí)施,包含第一、第二和第三代總線結(jié)構(gòu)和協(xié)議、共享總線結(jié)構(gòu)和協(xié)議、點(diǎn)對(duì)點(diǎn)總線結(jié)構(gòu)和協(xié)議、單向總線結(jié)構(gòu)和協(xié)議以及雙向總線結(jié)構(gòu)和協(xié)議。可用以實(shí)施總線18的不同總線結(jié)構(gòu)和協(xié)議的實(shí)例包含例如超傳輸總線、InfiniBand總線、高級(jí)圖形端口總線、外圍組件互連(PCI)總線、PCI高速總線、高級(jí)微控制器總線架構(gòu)(AMBA)、高級(jí)高性能總線(AHB)、AMBA高級(jí)外圍總線(APB),和AMBA高級(jí)eXentisible接口(AXI)總線。也可以使用其它類型的總線結(jié)構(gòu)和協(xié)議。根據(jù)本發(fā)明,CPU6和GPU10中的一者或兩者可經(jīng)配置以選擇用于執(zhí)行存儲(chǔ)器傳送操作的至少部分的存儲(chǔ)器傳送模式,且GPU10可經(jīng)配置以基于所述選定存儲(chǔ)器傳送模式執(zhí)行存儲(chǔ)器傳送操作。存儲(chǔ)器傳送模式可選自至少兩個(gè)不同存儲(chǔ)器傳送模式的集合。在一些實(shí)例中,至少兩個(gè)不同存儲(chǔ)器傳送模式的集合可包含交錯(cuò)存儲(chǔ)器傳送模式和順序存儲(chǔ)器傳送模式。在一些實(shí)例中,存儲(chǔ)器傳送模式可指示在存儲(chǔ)器傳送操作的執(zhí)行期間讀取請求的發(fā)出和寫入請求的發(fā)出如何經(jīng)同步。在此些實(shí)例中,本發(fā)明的技術(shù)可允許GPU10在用于讀取請求和寫入請求的發(fā)出的同步的至少兩個(gè)不同模式之間選擇性切換。舉例來說,如果將交錯(cuò)存儲(chǔ)器傳送模式選擇為將用于執(zhí)行存儲(chǔ)器傳送操作的全部或部分的存儲(chǔ)器傳送模式,那么GPU10可致使基于生產(chǎn)者-消費(fèi)者同步范例發(fā)出讀取請求和寫入請求。舉例來說,寫入引擎可響應(yīng)于GPU10接收到源數(shù)據(jù)(例如,響應(yīng)于正產(chǎn)生源數(shù)據(jù))而消耗源數(shù)據(jù),且讀取引擎可響應(yīng)于源數(shù)據(jù)正由寫入引擎消耗而發(fā)出讀取請求。另一方面,如果將順序存儲(chǔ)器傳送模式選擇為將用于執(zhí)行存儲(chǔ)器傳送操作的全部或部分的存儲(chǔ)器傳送模式,那么GPU10可致使基于相互排斥同步范例發(fā)出讀取請求和寫入請求。舉例來說,GPU10可在單獨(dú)的時(shí)間間隔期間在啟用讀取引擎以發(fā)出多個(gè)連續(xù)讀取請求與啟用寫入引擎以發(fā)出多個(gè)連續(xù)寫入請求之間交替。在其它實(shí)例中,存儲(chǔ)器傳送模式可指示在存儲(chǔ)器傳送操作的執(zhí)行期間讀取請求和寫入請求將交錯(cuò)的粒度級(jí)別。在此些實(shí)例中,本發(fā)明的技術(shù)可允許GPU10在用于存儲(chǔ)器傳送操作的執(zhí)行的讀取請求和寫入請求的至少兩個(gè)不同交錯(cuò)粒度之間選擇性切換。舉例來說,如果將交錯(cuò)存儲(chǔ)器傳送模式選擇為將用于執(zhí)行存儲(chǔ)器傳送操作的全部或部分的存儲(chǔ)器傳送模式,那么GPU10可致使讀取請求和寫入請求以相對(duì)精細(xì)粒度級(jí)別交錯(cuò)。舉例來說,單個(gè)讀取請求和單個(gè)寫入請求可彼此交錯(cuò)。另一方面,如果將順序存儲(chǔ)器傳送模式選擇為將用于執(zhí)行存儲(chǔ)器傳送操作的全部或部分的存儲(chǔ)器傳送模式,那么GPU10可致使讀取請求和寫入請求以相對(duì)粗糙粒度級(jí)別交錯(cuò)。舉例來說,GPU10可在發(fā)出多個(gè)連續(xù)讀取請求的群組與多個(gè)連續(xù)寫入請求的群組之間交替。在額外實(shí)例中,存儲(chǔ)器傳送模式可指示讀取請求和寫入請求是否需要由GPU10以多個(gè)連續(xù)讀取請求的群組和多個(gè)連續(xù)寫入請求的群組發(fā)出。在此些實(shí)例中,本發(fā)明的技術(shù)可允許GPU10在以下各項(xiàng)之間選擇性切換:(1)要求讀取請求和寫入請求以多個(gè)連續(xù)讀取請求的群組和多個(gè)連續(xù)寫入請求的群組發(fā)出;以及(2)不要求讀取請求和寫入請求以多個(gè)連續(xù)讀取請求的群組和多個(gè)連續(xù)寫入請求的群組發(fā)出。舉例來說,如果將交錯(cuò)存儲(chǔ)器傳送模式選擇為將用于執(zhí)行存儲(chǔ)器傳送操作的全部或部分的存儲(chǔ)器傳送模式,那么GPU10可不需要以多個(gè)連續(xù)讀取請求的群組和多個(gè)連續(xù)寫入請求的群組發(fā)出讀取請求和寫入請求。舉例來說,GPU10可允許讀取引擎和寫入引擎基于生產(chǎn)者-消費(fèi)者范例獨(dú)立地發(fā)出個(gè)別存儲(chǔ)器請求。另一方面,如果將順序存儲(chǔ)器傳送模式選擇為將用于執(zhí)行存儲(chǔ)器傳送操作的全部或部分的存儲(chǔ)器傳送模式,那么GPU10可需要以多個(gè)連續(xù)讀取請求的群組和多個(gè)連續(xù)寫入請求的群組發(fā)出讀取請求和寫入請求。舉例來說,GPU10可在對(duì)讀取引擎準(zhǔn)予獨(dú)占式存儲(chǔ)器存取以便發(fā)出多個(gè)連續(xù)讀取請求到存儲(chǔ)器22與對(duì)寫入引擎準(zhǔn)予獨(dú)占式存儲(chǔ)器存取以便發(fā)出多個(gè)連續(xù)寫入請求到存儲(chǔ)器22之間交替。在一些實(shí)例中,GPU10和/或CPU6(例如,在CPU6上執(zhí)行的GPU驅(qū)動(dòng)器)可基于存儲(chǔ)器傳送操作的大小選擇用于執(zhí)行存儲(chǔ)器傳送操作的全部或部分的存儲(chǔ)器傳送模式。存儲(chǔ)器傳送操作的大小可指代存儲(chǔ)器傳送操作將傳送的數(shù)據(jù)的量。舉例來說,如果存儲(chǔ)器傳送操作的大小大于閾值,那么GPU10和/或CPU6可將順序存儲(chǔ)器傳送模式選擇為將用于執(zhí)行存儲(chǔ)器傳送操作的全部或部分的存儲(chǔ)器傳送模式。另一方面,如果存儲(chǔ)器傳送操作的大小不大于閾值,那么GPU10和/或CPU6可將交錯(cuò)存儲(chǔ)器傳送模式選擇為將用于執(zhí)行存儲(chǔ)器傳送操作的全部或部分的存儲(chǔ)器傳送模式。在額外實(shí)例中,GPU10和/或CPU6(例如,在CPU6上執(zhí)行的GPU驅(qū)動(dòng)器)可基于針對(duì)存儲(chǔ)器傳送操作界定的目的地區(qū)與固定屏幕對(duì)準(zhǔn)緩沖區(qū)具有的重疊的量而選擇用于執(zhí)行存儲(chǔ)器傳送操作的全部或部分的存儲(chǔ)器傳送模式。在一些情況下,表面可對(duì)應(yīng)于顯示監(jiān)視器或屏幕上含有的像素。屏幕可經(jīng)細(xì)分為多個(gè)區(qū),其各自具有對(duì)應(yīng)于用以存儲(chǔ)所讀取數(shù)據(jù)的緩沖器的大小的固定大小。這些經(jīng)細(xì)分區(qū)可被稱為固定屏幕對(duì)準(zhǔn)緩沖區(qū)。在此些實(shí)例中,當(dāng)在順序存儲(chǔ)器傳送模式中操作時(shí),GPU10可經(jīng)配置以在對(duì)應(yīng)于固定屏幕對(duì)準(zhǔn)緩沖區(qū)的大小的固定大小的數(shù)據(jù)單元中在存儲(chǔ)器22與GPU10之間傳送數(shù)據(jù)。如果目的地區(qū)部分地但不完全地覆蓋特定的固定屏幕對(duì)準(zhǔn)緩沖區(qū),那么GPU10和/或CPU6可將交錯(cuò)存儲(chǔ)器傳送模式選擇為用于屏幕的所述區(qū)的存儲(chǔ)器傳送模式,因?yàn)槠渲袑⒋鎯?chǔ)讀取數(shù)據(jù)的緩沖器將不會(huì)完全利用。如果在此情況下選定順序存儲(chǔ)器模式,那么固定大小存儲(chǔ)器讀取將致使從存儲(chǔ)器讀取額外的數(shù)據(jù),這可超越通過使用順序存儲(chǔ)器傳送模式將發(fā)生的任何讀取-寫入周轉(zhuǎn)節(jié)省。另一方面,如果目的地區(qū)完全覆蓋特定的固定屏幕對(duì)準(zhǔn)緩沖區(qū),那么GPU10和/或CPU6可將順序存儲(chǔ)器傳送模式選擇為用于屏幕的所述區(qū)的存儲(chǔ)器傳送模式,因?yàn)槠渲袑⒋鎯?chǔ)讀取數(shù)據(jù)的緩沖器將完全利用且將不浪費(fèi)時(shí)間檢索額外的數(shù)據(jù)。在其它實(shí)例中,GPU10和/或CPU6(例如,在CPU6上執(zhí)行的GPU驅(qū)動(dòng)器)可基于用以執(zhí)行存儲(chǔ)器傳送操作(例如,組構(gòu)操作)的著色器程序的大小和/或復(fù)雜性而選擇用于執(zhí)行存儲(chǔ)器傳送操作的存儲(chǔ)器傳送模式。著色器程序的大小和/或復(fù)雜性可指示用于特定存儲(chǔ)器傳送操作的著色器操作的性能是否可能為存儲(chǔ)器傳送操作的性能瓶頸。在此些實(shí)例中,如果著色器程序的大小和/或復(fù)雜性小于閾值,那么GPU10和/或CPU6可確定著色器操作的性能不大可能為存儲(chǔ)器傳送操作的性能瓶頸。在此情況下,GPU10和/或CPU6可選擇用于存儲(chǔ)器傳送操作的順序存儲(chǔ)器傳送模式,因?yàn)橛锌赡艽鎯?chǔ)器存取效率可為存儲(chǔ)器傳送操作的性能瓶頸。另一方面,如果著色器程序的大小和/或復(fù)雜性大于閾值,那么GPU10和/或CPU6可確定著色器操作的性能可能為存儲(chǔ)器傳送操作的性能瓶頸。在此情況下,GPU10和/或CPU6可選擇用于存儲(chǔ)器傳送操作的交錯(cuò)存儲(chǔ)器傳送模式,因?yàn)榇鎯?chǔ)器效率的增加是不需要的且因?yàn)樵陧樞虼鎯?chǔ)器傳送模式中發(fā)生的讀取操作的延期可能具有使著色器程序耗盡數(shù)據(jù)的可能,這在著色器程序是性能瓶頸的情況下通常是不合意的。在額外實(shí)例中,GPU10和/或CPU6(例如,在CPU6上執(zhí)行的GPU驅(qū)動(dòng)器)可基于著色器程序的執(zhí)行是否可能為存儲(chǔ)器傳送操作的性能瓶頸的確定而選擇存儲(chǔ)器傳送模式。舉例來說,GPU10和/或CPU6可響應(yīng)于確定著色器程序的執(zhí)行不大可能為存儲(chǔ)器傳送操作的性能瓶頸而將順序存儲(chǔ)器傳送模式選擇為存儲(chǔ)器傳送模式。另一方面,GPU10和/或CPU6響應(yīng)于確定著色器程序的執(zhí)行可能為存儲(chǔ)器傳送操作的性能瓶頸而交錯(cuò)存儲(chǔ)器傳送模式選擇為存儲(chǔ)器傳送模式。在額外實(shí)例中,GPU10可基于選定存儲(chǔ)器傳送模式選擇和配置用于高速緩沖存儲(chǔ)器的高速緩沖存儲(chǔ)線大小。高速緩沖存儲(chǔ)器可對(duì)應(yīng)于GPU中的其中存儲(chǔ)讀取數(shù)據(jù)的緩沖器。在此些實(shí)例中,如果存儲(chǔ)器傳送模式是順序存儲(chǔ)器傳送模式,那么GPU10可選擇等于高速緩沖存儲(chǔ)器的整個(gè)容量的高速緩沖存儲(chǔ)線大小以便允許讀取和寫入操作的盡可能大的分組。另一方面,如果存儲(chǔ)器傳送模式是交錯(cuò)存儲(chǔ)器傳送模式,那么GPU10可選擇小于高速緩沖存儲(chǔ)器的整個(gè)容量的高速緩沖存儲(chǔ)線大小以便允許當(dāng)服務(wù)于交錯(cuò)請求時(shí)同時(shí)高速緩沖存儲(chǔ)多個(gè)數(shù)據(jù)區(qū)。在一些實(shí)例中,計(jì)算裝置2內(nèi)的一或多個(gè)其它組件(例如,CPU6)可用信號(hào)表示將由GPU10用于執(zhí)行存儲(chǔ)器傳送操作的存儲(chǔ)器傳送模式。所述信令技術(shù)可允許在應(yīng)用程序處理器上執(zhí)行的GPU驅(qū)動(dòng)器和/或用戶應(yīng)用程序控制用于執(zhí)行存儲(chǔ)器傳送操作的存儲(chǔ)器傳送模式。不同存儲(chǔ)器傳送模式對(duì)于不同類型的存儲(chǔ)器傳送操作可比其它存儲(chǔ)器傳送模式更有效。舉例來說,順序存儲(chǔ)器傳送模式對(duì)于較大存儲(chǔ)器傳送操作可比交錯(cuò)存儲(chǔ)器傳送模式大體上更有效,而交錯(cuò)存儲(chǔ)器傳送模式對(duì)于較小存儲(chǔ)器傳送操作可比順序存儲(chǔ)器傳送模式更有效,具體來說是在其中在順序存儲(chǔ)器傳送模式期間每讀取請求存取的數(shù)據(jù)的最小量較大的情況下。本發(fā)明的技術(shù)可用以選擇性使用較適合于特定類型的存儲(chǔ)器傳送操作的不同存儲(chǔ)器傳送模式,進(jìn)而改善GPU的存儲(chǔ)器傳送操作的性能。圖2是進(jìn)一步詳細(xì)說明圖1中計(jì)算裝置2的CPU6、GPU10和存儲(chǔ)器子系統(tǒng)8的框圖。如圖2中所示,CPU6以通信方式耦合到GPU10和存儲(chǔ)器子系統(tǒng)8,且GPU10以通信方式耦合到CPU6和存儲(chǔ)器子系統(tǒng)8。在一些實(shí)例中,GPU10可與CPU6集成到母板上。在額外實(shí)例中,GPU10可實(shí)施在安裝于包含CPU6的母板的端口中的圖形卡上。在其它實(shí)例中,GPU10可并入在經(jīng)配置以與CPU6交互操作的外圍裝置內(nèi)。在額外實(shí)例中,GPU10可與CPU6位于同一微芯片上從而形成芯片上系統(tǒng)(SoC)。CPU6可經(jīng)配置以執(zhí)行軟件應(yīng)用程序24、圖形API26、GPU驅(qū)動(dòng)器28和操作系統(tǒng)30。軟件應(yīng)用程序24可包含致使顯示圖形圖像的一或多個(gè)指令和/或致使在GPU10上執(zhí)行非圖形任務(wù)(例如,通用計(jì)算任務(wù))的一或多個(gè)指令。軟件應(yīng)用程序24可發(fā)出指令到圖形API26。圖形API26可為運(yùn)行時(shí)間服務(wù),其將從軟件應(yīng)用程序24接收的指令轉(zhuǎn)換為可由GPU驅(qū)動(dòng)器28消耗的格式。GPU驅(qū)動(dòng)器28經(jīng)由圖形API26從軟件應(yīng)用24接收指令,且控制GPU10的操作以服務(wù)所述指令。舉例來說,GPU驅(qū)動(dòng)器28可調(diào)配一或多個(gè)命令,將命令放置到存儲(chǔ)器22中,且指示GPU10執(zhí)行所述命令。在一些實(shí)例中,GPU驅(qū)動(dòng)器28可將命令放置到存儲(chǔ)器22中,且經(jīng)由操作系統(tǒng)30(例如經(jīng)由一或多個(gè)系統(tǒng)調(diào)用)與GPU10通信。在一些實(shí)例中,GPU驅(qū)動(dòng)器28(或CPU6上的另一軟件組件)可經(jīng)配置以選擇將用于執(zhí)行存儲(chǔ)器傳送操作的全部或部分的存儲(chǔ)器傳送模式,且致使GPU10基于所述選定存儲(chǔ)器傳送模式執(zhí)行存儲(chǔ)器傳送操作。在一些實(shí)例中,存儲(chǔ)器傳送模式可選自包含交錯(cuò)存儲(chǔ)器傳送模式和順序存儲(chǔ)器傳送模式的至少兩個(gè)存儲(chǔ)器傳送模式的集合。在額外實(shí)例中,GPU驅(qū)動(dòng)器28可經(jīng)配置以根據(jù)本發(fā)明中描述的技術(shù)中的任一者選擇將用于存儲(chǔ)器傳送操作的全部或部分的存儲(chǔ)器傳送模式。舉例來說,GPU驅(qū)動(dòng)器28可基于存儲(chǔ)器傳送操作的大小(例如,存儲(chǔ)器傳送操作將傳送的數(shù)據(jù)的量)而選擇存儲(chǔ)器傳送模式。作為另一實(shí)例,GPU驅(qū)動(dòng)器28可基于針對(duì)存儲(chǔ)器傳送操作界定的目的地區(qū)與固定屏幕對(duì)準(zhǔn)緩沖區(qū)具有的重疊的量而選擇存儲(chǔ)器傳送模式。作為另一個(gè)實(shí)例,GPU驅(qū)動(dòng)器28可基于著色器程序的執(zhí)行是否可能為存儲(chǔ)器傳送操作的性能瓶頸的確定而選擇存儲(chǔ)器傳送模式。在額外實(shí)例中,GPU10可使用一或多個(gè)著色器程序執(zhí)行存儲(chǔ)器傳送操作,且GPU驅(qū)動(dòng)器28可基于用于執(zhí)行存儲(chǔ)器傳送操作的著色器程序的大小和/或用于執(zhí)行存儲(chǔ)器傳送操作的著色器程序的復(fù)雜性而選擇存儲(chǔ)器傳送模式。GPU10包含命令引擎32、光柵操作單元34、緩沖器36、讀取引擎38和寫入引擎40。在一些實(shí)例中,GPU10可包含3D圖形再現(xiàn)管線(未圖示)。在此些實(shí)例中,光柵操作單元34可形成3D圖形再現(xiàn)管線的部分。在一些實(shí)例中,GPU10可包含多個(gè)處理單元(未圖示),其中的每一者可為可編程處理單元或固定功能處理單元。在其中GPU10包含3D圖形再現(xiàn)管線的情況下,所述多個(gè)處理單元可一起操作以實(shí)施3D圖形再現(xiàn)管線。在一些實(shí)例中,3D圖形再現(xiàn)管線可符合由一或多個(gè)公眾和/或?qū)S?D圖形標(biāo)準(zhǔn)API指定的3D圖形管線,例如開放圖形庫()API、開放圖形庫嵌入系統(tǒng)(OpenGLES)API、Direct3DAPI、DirectXAPI等??删幊烫幚韱卧砂?例如)可編程著色器單元,其經(jīng)配置以執(zhí)行從CPU6下載到GPU10上的一或多個(gè)著色器程序。在一些實(shí)例中,著色器程序可為以高級(jí)著色語言編寫的程序的經(jīng)編譯版本,例如OpenGL著色語言(GLSL)、高級(jí)著色語言(HLSL)、用于圖形的C(Cg)著色語言等。在一些實(shí)例中,可編程著色器單元可包含經(jīng)配置以并行操作的多個(gè)處理單元,例如SIMD管線??删幊讨鲉卧删哂写鎯?chǔ)著色器程序指令的程序存儲(chǔ)器和執(zhí)行狀態(tài)寄存器,例如指示程序存儲(chǔ)器中正執(zhí)行的當(dāng)前指令或待提取的下一指令的程序計(jì)數(shù)器寄存器。所述可編程著色器單元可包含(例如)頂點(diǎn)著色器單元、像素著色器單元、幾何著色器單元、殼著色器單元、域著色器單元、計(jì)算著色器單元等。固定功能處理單元可包含經(jīng)硬連線以執(zhí)行某些功能的硬件。雖然固定功能硬件可經(jīng)由(例如)一或多個(gè)控制信號(hào)而配置以執(zhí)行不同功能,但所述固定功能硬件通常并不包含能夠接收用戶編譯程序的程序存儲(chǔ)器。GPU10中包含的固定功能處理單元可包含(例如)執(zhí)行例如光柵操作、深度測試、剪刀測試、α摻合等的處理單元。在其中光柵操作單元34包含在3D再現(xiàn)管線中的實(shí)例中,在一些實(shí)例中光柵操作單元34可為可配置固定功能處理單元。在一些實(shí)例中,光柵操作單元34可實(shí)施為3D再現(xiàn)管線的輸出合并器處理單元。命令引擎32經(jīng)配置以從CPU6接收命令且致使GPU10執(zhí)行所述命令。在一些實(shí)例中,CPU6可將命令放置于存儲(chǔ)器22中,且命令引擎32可從存儲(chǔ)器22檢索所述命令。所述命令可包含(例如)改變GPU10的狀態(tài)(例如,再現(xiàn)狀態(tài))的狀態(tài)命令、指示GPU10將特定著色器程序加載到3D再現(xiàn)管線中的可編程處理單元中的一或多者中的著色器程序綁定命令、指示GPU10再現(xiàn)存儲(chǔ)在存儲(chǔ)器22中的特定數(shù)據(jù)的繪制命令、指示GPU10相對(duì)于存儲(chǔ)在存儲(chǔ)器22中的特定數(shù)據(jù)執(zhí)行一或多個(gè)通用計(jì)算內(nèi)核的通用計(jì)算命令,以及指示GPU10執(zhí)行一或多個(gè)存儲(chǔ)器傳送操作的存儲(chǔ)器傳送命令。響應(yīng)于接收到狀態(tài)命令,命令引擎32可經(jīng)配置以基于狀態(tài)命令將GPU10中的一或多個(gè)狀態(tài)寄存器設(shè)定于特定值,和/或基于狀態(tài)命令配置用于GPU10的3D再現(xiàn)管線(未圖示)中的固定功能處理單元中的一或多者。響應(yīng)于接收到繪制調(diào)用命令,命令引擎32可經(jīng)配置以致使GPU10中的3D再現(xiàn)管線(未圖示)從存儲(chǔ)器22檢索3D幾何形狀,且將所述3D幾何形狀數(shù)據(jù)再現(xiàn)為2D圖...
當(dāng)前第1頁1 2 3 
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1