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

用于管理虛擬圖形處理器單元的裝置和方法_3

文檔序號(hào):9756974閱讀:來(lái)源:國(guó)知局
ll)、跳(jmp))包括采用OOlOxxxxb形 式(例如,0x20)的指令。雜項(xiàng)指令組746包括指令的混合,包括采用OOllxxxxb形式(例 如,0x30)的同步指令(例如,等待(wait)、發(fā)送(send))。并行數(shù)學(xué)指令組748包括采用 OlOOxxxxb形式(例如,0x40)的部件方面的算術(shù)指令(例如,加(add)、減(mul))。并行數(shù) 學(xué)組748跨數(shù)據(jù)通道并行執(zhí)行算術(shù)操作。向量數(shù)學(xué)組750包括采用OlOlxxxxb形式(例如, 0x50)的算術(shù)指令(例如,dp4)。向量數(shù)學(xué)組在向量操作數(shù)上執(zhí)行算術(shù),例如,點(diǎn)乘運(yùn)算。
[0083] 圖形管線
[0084] 圖8是圖形處理器800的另一實(shí)施例的框圖。圖8中與本文任意其它圖的元件具 有相同附圖標(biāo)記(或名稱(chēng))的元件可以以類(lèi)似于本文他處所描述的任意方式來(lái)操作或運(yùn) 行,但是不限于此。
[0085] 在一些實(shí)施例中,圖形處理器800包括圖形管線820、媒體管線830、顯示引擎840、 線程執(zhí)行邏輯850以及渲染輸出管線870。在一些實(shí)施例中,圖形處理器800是包括一個(gè) 或多個(gè)通用處理核的多核處理系統(tǒng)中的圖形處理器。通過(guò)到一個(gè)或多個(gè)控制寄存器(未示 出)的寄存器寫(xiě)入來(lái)控制圖形處理器,或通過(guò)經(jīng)由環(huán)形互連802發(fā)布到圖形處理器800的 命令來(lái)控制圖形處理器。在一些實(shí)施例中,環(huán)形互連802將圖形處理器800耦合到其它處 理部件,例如其它圖形處理器或通用處理器。來(lái)自環(huán)形互連802的命令通過(guò)命令流轉(zhuǎn)化器 803進(jìn)行解釋?zhuān)盍鬓D(zhuǎn)化器803將指令提供到圖形管線820或媒體管線830的各個(gè)部件。
[0086] 在一些實(shí)施例中,命令流轉(zhuǎn)化器803引導(dǎo)頂點(diǎn)獲取器805的操作,其從存儲(chǔ)器讀取 頂點(diǎn)數(shù)據(jù)并執(zhí)行命令流轉(zhuǎn)化器803所提供的頂點(diǎn)處理命令。在一些實(shí)施例中,頂點(diǎn)獲取器 805將頂點(diǎn)數(shù)據(jù)提供給頂點(diǎn)著色器807,頂點(diǎn)著色器807對(duì)每個(gè)頂點(diǎn)執(zhí)行坐標(biāo)空間轉(zhuǎn)換和變 亮操作。在一些實(shí)施例中,頂點(diǎn)獲取器805和頂點(diǎn)著色器807通過(guò)經(jīng)由線程分派器831將 執(zhí)行線程分派到執(zhí)行單元852A、852B來(lái)執(zhí)行頂點(diǎn)處理指令。
[0087] 在一些實(shí)施例中,執(zhí)行單元852A、852B是具有用于執(zhí)行圖形和媒體操作的指令集 的向量處理器的陣列。在一些實(shí)施例中,執(zhí)行單元852A、852B具有附接的L1高速緩存851, 其專(zhuān)用于每個(gè)陣列或在陣列之間共享。高速緩存可以被配置為數(shù)據(jù)高速緩存、指令高速緩 存或被分割以在不同分區(qū)包含數(shù)據(jù)和指令的單個(gè)高速緩存。
[0088] 在一些實(shí)施例中,圖形管線820包括曲面細(xì)分部件,以執(zhí)行3D對(duì)象的硬件加速曲 面細(xì)分。在一些實(shí)施例中,可編程外殼(hull)著色器811配置曲面細(xì)分操作??删幊逃蛑?色器817提供對(duì)曲面細(xì)分輸出的后端評(píng)估。曲面細(xì)分器813在外殼著色器811的方向操 作,且包含專(zhuān)用邏輯以基于作為輸入提供給圖形管線820的粗幾何模型來(lái)生成一組詳細(xì)的 幾何對(duì)象。在一些實(shí)施例中,如果未使用曲面細(xì)分,則可略過(guò)曲面細(xì)分部件811、813、817。
[0089] 在一些實(shí)施例中,可以通過(guò)幾何著色器819經(jīng)由分派給執(zhí)行單元852A、852B的一 個(gè)或多個(gè)線程來(lái)處理完全幾何對(duì)象,或者可以直接將完全幾何對(duì)象轉(zhuǎn)到剪輯器829。在一些 實(shí)施例中,幾何著色器在整個(gè)幾何對(duì)象上操作,而不是像圖形管線的前幾個(gè)階段一樣在頂 點(diǎn)或一片片頂點(diǎn)上操作。如果禁用曲面細(xì)分,則幾何著色器819從頂點(diǎn)著色器807接收輸 入。在一些實(shí)施例中,幾何著色器819是可以通過(guò)幾何著色器程序來(lái)編程的,以在禁用曲面 細(xì)分單元時(shí)執(zhí)行幾何曲面細(xì)分。
[0090] 在光柵化之前,剪輯器829處理頂點(diǎn)數(shù)據(jù)。剪輯器829可以是固定功能的剪輯器 或者是具有剪輯和幾何著色功能的可編程剪輯器。在一些實(shí)施例中,在渲染輸出管線870 中的光柵化器873分派像素著色器以將幾何對(duì)象轉(zhuǎn)換成它們的每像素表示。在一些實(shí)施例 中,像素著色器邏輯包括在線程執(zhí)行邏輯850中。在一些實(shí)施例中,應(yīng)用能夠略過(guò)光柵化器 873并經(jīng)由流出單元823訪問(wèn)未光柵化的頂點(diǎn)數(shù)據(jù)。
[0091] 圖形處理器800具有互連總線、互連結(jié)構(gòu)、或者允許在處理器的主要部件之間傳 遞數(shù)據(jù)和消息的一些其它互連機(jī)制。在一些實(shí)施例中,執(zhí)行單元852A、852B和相關(guān)聯(lián)的高 速緩存851、紋理和媒體采樣器854、以及紋理/采樣器高速緩存858經(jīng)由數(shù)據(jù)端口 856互 連,以執(zhí)行存儲(chǔ)器訪問(wèn)并與處理器的渲染輸出管線部件進(jìn)行通信。在一些實(shí)施例中,采樣器 854、高速緩存85U858和執(zhí)行單元852A、852B每個(gè)均具有單獨(dú)的存儲(chǔ)器訪問(wèn)路徑。
[0092] 在一些實(shí)施例中,渲染輸出管線870包含光柵化器和深度測(cè)試部件873,其將基于 頂點(diǎn)的對(duì)象轉(zhuǎn)換為相關(guān)聯(lián)的基于像素的表示。在一些實(shí)施例中,光柵化器邏輯包括窗口器 (windower)/掩模器(masker)單元,以執(zhí)行固定功能的三角和直線光柵化。相關(guān)聯(lián)的植染 和深度緩沖器高速緩存878、879在一些實(shí)施例中也是可用的。像素操作部件877在數(shù)據(jù)上 執(zhí)行基于像素的操作,但是在一些實(shí)例中,與2D操作相關(guān)聯(lián)的像素操作(例如,具有混合的 位塊圖像轉(zhuǎn)換)由2D引擎841執(zhí)行,或者在顯示時(shí)間通過(guò)顯示控制器843利用疊加顯示平 面進(jìn)行替代。在一些實(shí)施例中,共享的L3高速緩存875可用于所有圖形部件,允許在不使 用主系統(tǒng)存儲(chǔ)器的情況下共享數(shù)據(jù)。
[0093] 在一些實(shí)施例中,圖形處理器媒體管線830包括媒體引擎837和視頻前端834。在 一些實(shí)施例中,視頻前端834從命令流轉(zhuǎn)化器803接收管線命令。在一些實(shí)施例中,媒體管 線830包括單獨(dú)的命令流轉(zhuǎn)化器。在一些實(shí)施例中,視頻前端834在發(fā)送命令到媒體引擎 837之前處理媒體命令。在一些實(shí)施例中,媒體引擎337包括線程產(chǎn)生功能以產(chǎn)生線程,以 用于經(jīng)由線程分派器831分派到線程執(zhí)行邏輯850。
[0094] 在一些實(shí)施例中,圖形處理器800包括顯示引擎840。在一些實(shí)施例中,顯示引擎 840在處理器800外部,并經(jīng)由環(huán)形互連802或者一些其它互連總線或結(jié)構(gòu)與圖形處理器 耦合。在一些實(shí)施例中,顯示引擎840包括2D引擎841和顯示控制器843。在一些實(shí)施例 中,顯示引擎840包含能夠獨(dú)立于3D管線進(jìn)行操作的專(zhuān)用邏輯。在一些實(shí)施例中,顯示控 制器843與顯示設(shè)備(未示出)耦合,所述顯示設(shè)備可以是如在膝上型計(jì)算機(jī)中的系統(tǒng)集 成顯示設(shè)備,或者是經(jīng)由顯示設(shè)備連接器附接的外部顯示設(shè)備。
[0095] 在一些實(shí)施例中,圖形管線820和媒體管線830是可配置的以用于基于多個(gè)圖 形和媒體程序接口來(lái)執(zhí)行操作,而不是專(zhuān)用于任意一個(gè)應(yīng)用程序接口(API)。在一些實(shí)施 例中,用于圖形處理器的驅(qū)動(dòng)器軟件將專(zhuān)用于特定圖形或媒體庫(kù)的API調(diào)用轉(zhuǎn)化為能夠 由圖形處理器處理的命令。在一些實(shí)施例中,提供對(duì)來(lái)自Khronos Group的開(kāi)放式圖形 庫(kù)(OpenGL)和開(kāi)放式計(jì)算語(yǔ)言(OpenCL)、來(lái)自微軟公司(Microsoft Corporation)的 Direct3D庫(kù)的支持,或者可以提供對(duì)OpenGL和D3D兩者的支持。還可以提供對(duì)開(kāi)源計(jì)算機(jī) 視覺(jué)庫(kù)(OpenCV)的支持。如果可以從未來(lái)API的管線映射到圖形處理器的管線,則也將支 持具有兼容3D管線的未來(lái)API。
[0096] 圖形管線編稈
[0097] 圖9A是示出了根據(jù)一些實(shí)施例的圖形處理器命令格式900的框圖。圖9B是示出 了根據(jù)實(shí)施例的圖形處理器命令序列910的框圖。圖9A中的實(shí)線框示出了通常包括在圖形 命令中的部件,而虛線包括可選的或僅包括在圖形命令的子集中的部件。圖9A的示例性圖 形處理器命令格式900包括用于標(biāo)識(shí)命令的目標(biāo)客戶(hù)端902、命令操作代碼(操作碼)904 以及命令的相關(guān)數(shù)據(jù)906的數(shù)據(jù)字段。子操作碼905和命令大小908也包括在一些命令中。
[0098] 在一些實(shí)施例中,客戶(hù)端902指定處理命令數(shù)據(jù)的圖形設(shè)備的客戶(hù)端單元。在一 些實(shí)施例中,圖形處理器命令解析器檢查每個(gè)命令的客戶(hù)端字段以決定命令的進(jìn)一步處理 并將命令數(shù)據(jù)路由到適當(dāng)?shù)目蛻?hù)端單元。在一些實(shí)施例中,圖形處理器客戶(hù)端單元包括存 儲(chǔ)器接口單元、植染單元、2D單元、3D單元和媒體單元。每個(gè)客戶(hù)端單元具有用于處理命令 的相對(duì)應(yīng)的處理管線。一旦客戶(hù)端單元接收到命令,則客戶(hù)端單元讀取操作碼904,并且如 果存在的話,則讀取子操作碼905以確定要執(zhí)行的操作。客戶(hù)端單元利用數(shù)據(jù)字段906中 的信息來(lái)執(zhí)行命令。對(duì)于一些命令,期望明確的命令大小908來(lái)指定命令的大小。在一些 實(shí)施例中,命令解析器基于命令操作碼自動(dòng)地確定命令中的至少一些的大小。在一些實(shí)施 例中,經(jīng)由多個(gè)雙字來(lái)對(duì)命令進(jìn)行對(duì)準(zhǔn)。
[0099] 圖9B中的流程圖示出了示例性命令序列910。在一些實(shí)施例中,以圖形處理器的 實(shí)施例為特征的數(shù)據(jù)處理系統(tǒng)的軟件或固件使用所示命令序列的版本來(lái)建立、執(zhí)行和終止 一組圖形操作。僅出于示例的目的示出并描述了采樣命令序列,實(shí)施例并不局限于這些具 體命令或該命令序列。此外,命令可以被發(fā)布為命令序列中的一批命令,以使得圖形處理器 將至少部分并發(fā)地處理命令的序列。
[0100] 在一些實(shí)施例中,采樣命令序列910可以開(kāi)始于管線沖洗(flush)命令912,以使 得任意活動(dòng)的圖形管線完成管線的當(dāng)前未決命令。在一些實(shí)施例中,3D管線922和媒體管 線924并不并發(fā)操作。執(zhí)行管線沖洗以使得活動(dòng)的圖形管線完成任何未決命令。響應(yīng)于管 線沖洗,圖形處理器的命令解析器將暫停命令處理,直到活動(dòng)的繪制引擎完成未決操作并 且使相關(guān)的讀高速緩存無(wú)效為止??蛇x地,渲染高速緩存中標(biāo)記為"臟的"任意數(shù)據(jù)可以被 沖洗到存儲(chǔ)器。在一些實(shí)施例中,管線沖洗命令912可以用于管線同步或用在將圖形處理 器放置到低功率狀態(tài)之前。
[0101] 在一些實(shí)施例中,當(dāng)命令序列要求圖形處理器明確地在管線之間切換時(shí),使用管 線選擇命令913。在一些實(shí)施例中,在發(fā)布管線命令之前在執(zhí)行上下文中僅要求一次管線選 擇命令913,除非所述上下文要發(fā)布針對(duì)兩個(gè)管線二者的命令。在一些實(shí)施例中,在經(jīng)由管 線選擇命令913的管線切換之前立即要求管線沖洗命令912。
[0102] 在一些實(shí)施例中,管線控制命令914配置用于操作的圖形管線,并用于對(duì)3D管線 922和媒體管線924進(jìn)行編程。在一些實(shí)施例中,管線控制命令914配置針對(duì)活動(dòng)的管線的 管線狀態(tài)。在一個(gè)實(shí)施例中,管線控制命令914用于管線同步,并在處理一批命令之前從活 動(dòng)的管線中的一個(gè)或多個(gè)高速緩存存儲(chǔ)器中清除數(shù)據(jù)。
[0103] 在一些實(shí)施例中,返回緩沖器狀態(tài)命令916用于配置針對(duì)各個(gè)管線的一組返回緩 沖器以用于寫(xiě)入數(shù)據(jù)。一些管線操作要求分配、選擇或配置在處理期間操作向其寫(xiě)入立即 數(shù)的一個(gè)或多個(gè)返回緩沖器。在一些實(shí)施例中,圖形處理器還使用一個(gè)或多個(gè)返回緩沖器 來(lái)存儲(chǔ)輸出數(shù)據(jù)并執(zhí)行跨線程通信。在一些實(shí)施例中,返回緩沖器狀態(tài)916包括選擇返回 緩沖器的大小和數(shù)量以用于一組管線操作。
[0104] 命令序列中剩余的命令基于用于操作的活動(dòng)管線而不同?;诠芫€確定920,命令 序列被定制為以3D管線狀態(tài)930開(kāi)始的3D管線922,或者在媒體管線狀態(tài)940處開(kāi)始的媒 體管線924。
[0105] 3D管線狀態(tài)930的命令包括3D狀態(tài)設(shè)置命令,3D狀態(tài)設(shè)置命令針對(duì)在處理3D基 元(primitive)命令之前配置的頂點(diǎn)緩沖器狀態(tài)、頂點(diǎn)元件狀態(tài)、恒定顏色狀態(tài)、深度緩沖 器狀態(tài)、以及其它狀態(tài)變量。至少部分地基于所使用的特定3D API來(lái)確定這些命令的值。 在一些實(shí)施例中,如果不使用某些管線元件,3D管線狀態(tài)930命令也能夠選擇性禁用或略 過(guò)那些元件。
[0106] 在一些實(shí)施例中,3D基元932命令用于提交將由3D管線處理的3D基元。經(jīng)由3D 基元932命令傳遞到圖形處理器的命令和相關(guān)聯(lián)的參數(shù)被轉(zhuǎn)發(fā)到圖形管線中的頂點(diǎn)獲取 函數(shù)。頂點(diǎn)獲取函數(shù)使用3D基元932命令數(shù)據(jù)來(lái)生成頂點(diǎn)數(shù)據(jù)結(jié)構(gòu)。頂點(diǎn)數(shù)據(jù)結(jié)構(gòu)被存 儲(chǔ)在一個(gè)或多個(gè)返回緩沖器中。在一些實(shí)施例中,3D基元932命令被用于經(jīng)由頂點(diǎn)著色器 在3D基元上執(zhí)行頂點(diǎn)操作。為了處理頂點(diǎn)著色器,3D管線922將著色器執(zhí)行線程分派到圖 形處理器執(zhí)行單元。
[0107] 在一些實(shí)施例中,經(jīng)由執(zhí)行934命令或事件來(lái)觸發(fā)3D管線922。在一些實(shí)施例中, 寄存器寫(xiě)入觸發(fā)命令執(zhí)行。在一些實(shí)施例中,經(jīng)由命令序列中的"go"或"kick"命令來(lái)觸 發(fā)執(zhí)行。在一個(gè)實(shí)施例中,利用管線同步命令來(lái)觸發(fā)命令執(zhí)行,以通過(guò)圖形管線來(lái)沖洗命令 序列。3D管線將執(zhí)行針對(duì)3D基元的幾何處理。一旦完成操作,則對(duì)所產(chǎn)生的幾何對(duì)象進(jìn)行 光柵化并且像素引擎對(duì)所得到的像素進(jìn)行填色。也可以包括用于控制像素著色和像素后端 操作的額外的命令以用于那些操作。
[0108] 在一些實(shí)施例中,當(dāng)執(zhí)行媒體操作時(shí),采樣命令序列910跟隨媒體管線924路徑。 通常,對(duì)于媒體管線924的編程的具體用途和方式取決于將要執(zhí)行的媒體或計(jì)算操作。在 媒體解碼期間可以將特定媒體解碼操作卸載到媒體管線。在一些實(shí)施例中,還可以略過(guò)媒 體管線,而可以利用一個(gè)或多個(gè)通用處理核所提供的資源整體地或部分地執(zhí)行媒體解碼。 在一個(gè)實(shí)施例中,媒體管線還包括針對(duì)通用圖形處理器單元(GPGPU)的元件,其中圖形處 理器用于利用并不明確與渲染圖形基元相關(guān)的計(jì)算著色器程序來(lái)執(zhí)行SB?向量操作。
[0109] 在一些實(shí)施例中,媒體管線924被配置為與3D管線922類(lèi)似的方式。將一組媒體 管線狀態(tài)命令940分派或放置到媒體對(duì)象命令942之前的命令隊(duì)列中。在一些實(shí)施例中, 媒體管線狀態(tài)命令940包括用于配置將用于處理媒體對(duì)象的媒體管線元件的數(shù)據(jù)。這包括 用于配置媒體管線內(nèi)的視頻解碼和視頻編碼邏輯的數(shù)據(jù),例如,編碼或解碼格式。在一些實(shí) 施例中,媒體管線狀態(tài)命令940還支持使用指向包含一批狀態(tài)設(shè)置的"間接"狀態(tài)元件的一 個(gè)或多個(gè)指針。
[0110] 在一些實(shí)施例中,媒體對(duì)象命令942提供指向供媒體管線進(jìn)行處理的媒體對(duì)象的 指針。媒體對(duì)象包括包含待處理的視頻數(shù)據(jù)的存儲(chǔ)器緩沖器。在一些實(shí)施例中,在發(fā)布媒 體對(duì)象命令942之前,所有的媒體管線狀態(tài)必須是有效的。一旦配置管線狀態(tài)并且對(duì)媒體 對(duì)象命令942進(jìn)行排隊(duì),則經(jīng)由執(zhí)行命令944或等價(jià)執(zhí)行事件(例如,寄存器寫(xiě)入)來(lái)觸發(fā) 媒體管線924。然后來(lái)自媒體管線924的輸出可以通過(guò)由3D管線922或媒體管線924提供 的操作來(lái)進(jìn)行后期處理。在一些實(shí)施例中,以與媒體操作類(lèi)似的方式配置和執(zhí)行GPGPU操 作。
[0111] 圖形軟件架構(gòu)
[0112] 圖10示出了根據(jù)一些實(shí)施例的針對(duì)數(shù)據(jù)處理系統(tǒng)的示例性圖形軟件架構(gòu)1000。 在一些實(shí)施例中,軟件架構(gòu)包括3D圖形應(yīng)用1010、操作系統(tǒng)1020以及至少一個(gè)處理器 1030。在一些實(shí)施例中,處理器1030包括圖形處理器1032以及一個(gè)或多個(gè)通用處理器核 1034。圖形應(yīng)用1010和操作系統(tǒng)1020每個(gè)均在數(shù)據(jù)處理系統(tǒng)的系統(tǒng)存儲(chǔ)器1050中執(zhí)行。
[0113] 在一些實(shí)施例中,3D圖形應(yīng)用1010包含一個(gè)或多個(gè)著色器程序,著色器程序包 括著色器指令1012。著色器語(yǔ)言指令可以采用高級(jí)著色器語(yǔ)言,例如,高級(jí)著色器語(yǔ)言 (HLSL)或者OpenGL著色器語(yǔ)言(GLSL)。應(yīng)用還包括采用適用于由通用處理器核1034執(zhí) 行的機(jī)器語(yǔ)言的可執(zhí)行指令1014。應(yīng)用還包括由頂點(diǎn)數(shù)據(jù)定義的圖形對(duì)象1016。
[0114] 在一些實(shí)施例中,操作系統(tǒng)1020是來(lái)自微軟公司的Microsoft? Windows?操 作系統(tǒng)、專(zhuān)有的UNIX類(lèi)操作系統(tǒng)或者利用Linux內(nèi)核的變型的開(kāi)源的UNIX類(lèi)操作系統(tǒng)。當(dāng) 使用Direct3D API時(shí),操作系統(tǒng)1020使用前端著色器編譯器1024來(lái)將采用HLSL的任意 著色器指令1012編譯成
當(dāng)前第3頁(yè)1 2 3 4 5 6 
網(wǎng)友詢(xún)問(wèn)留言 已有0條留言
  • 還沒(méi)有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1