欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

一種指令移除裝置及其方法

文檔序號(hào):6650393閱讀:366來(lái)源:國(guó)知局
專利名稱:一種指令移除裝置及其方法
技術(shù)領(lǐng)域
本發(fā)明涉及一種指令移除裝置及其方法,尤指一種可用于圖像處理程序中的簡(jiǎn)單指令移除裝置及其方法。
背景技術(shù)
像素著色器(Pixel Shader,PS)可用于處理在3D圖像處理器(3-Dimensional Graphic Processor,GPU)或3D圖像加速器(3-DimensionalGraphic Accelerator,GPU整合入系統(tǒng)芯片組的情形)中像素的可程序化(Programmable)部份。近來(lái),一些繪圖應(yīng)用程序接口(Application ProgramInterface,API)加入像素著色器于其中,如DirectX規(guī)格由8.0版起加入的像素著色器,及OpenGL由1.5版加入的圖像片段處理器(FragmentProcessor),都各自定義了類似匯編語(yǔ)言(Assembly Language)的著色器語(yǔ)言(Shader Language)。
請(qǐng)參閱圖1,傳統(tǒng)的圖像處理器的處理程序包括若干主要步驟用以對(duì)像素進(jìn)行處理。首先,由頂點(diǎn)處理程序(Vertex Processing Procedure)用以執(zhí)行幾何轉(zhuǎn)換與光線處理程序(Transform and Lighting Process,T&LProcess)902,并執(zhí)行程序904以將該頂點(diǎn)切割(Clipping)至視窗(Viewport)。接著,用一個(gè)三角形圖像設(shè)定程序(Triangle Setup Process)906來(lái)結(jié)合該頂點(diǎn)使成為各個(gè)三角形圖像,并以二維像素鋪滿每個(gè)三角形圖像。這些二維像素會(huì)被傳送出去以執(zhí)行像素處理程序。在像素處理程序中,有一個(gè)材質(zhì)處理單元(Texture Unit,TU或稱為材質(zhì)單元)908,可依據(jù)像素位置及對(duì)應(yīng)三角形頂點(diǎn)中的材質(zhì)坐標(biāo)(Texture Coordinate),進(jìn)行內(nèi)插運(yùn)算(Interpolate)從而求出該二維像素的材質(zhì)坐標(biāo)。該二維像素的材質(zhì)坐標(biāo)從材質(zhì)圖(Texture Map)中取樣(Sample)出像素的材質(zhì)顏色。同時(shí),一個(gè)色彩內(nèi)插器(Color Interpolator,CI)910依據(jù)像素位置及對(duì)應(yīng)三角形頂點(diǎn)中的頂點(diǎn)顏色,內(nèi)插運(yùn)算出各像素的頂點(diǎn)顏色。而后,由混色程序(BlendingProcedure)912用以處理該材質(zhì)顏色與像素顏色以獲得該像素的最終顏色。最后,用深度處理程序(Depth Processing Procedure)914來(lái)比較出最靠近視窗的像素并將其最終顏色畫出,以產(chǎn)生完整的畫面(Frame)。
在近來(lái)的繪圖應(yīng)用程式接口中,該頂點(diǎn)處理程序與像素處理程序已被改變?yōu)榭沙绦蚧?,以符合為處理更多圖形特效所采用的硬件加速運(yùn)算的要求。如圖2所示,在DirectX規(guī)格中的頂點(diǎn)著色器916(在OpenGL規(guī)格中為頂點(diǎn)處理器,vertex processor)即用以取代前述像素處理程序中的混色程序。頂點(diǎn)著色器916與像素著色器926為具有特殊指令的通用處理器(GeneralPurpose Processor)用以執(zhí)行相應(yīng)著色器語(yǔ)言的程序。頂點(diǎn)著色器916執(zhí)行頂點(diǎn)著色器程式(Vertex Shader Program)以處理頂點(diǎn)層次的特效,而像素著色器926執(zhí)行一像素著色器程式樣(Pixel Shader Program)以處理更精致的特效。因此,更多特效可藉由頂點(diǎn)著色器程式與像素著色器程式的配合來(lái)達(dá)成,以改進(jìn)硬件的效能。
另一現(xiàn)有技術(shù)的像素著色器如圖3所示,其即由在像素處理程序中材質(zhì)顏色與頂點(diǎn)顏色的可程式化混色程序所演進(jìn)而來(lái)。由材質(zhì)著色器932所得到的材質(zhì)顏色與由色彩內(nèi)插器934所得到的頂點(diǎn)顏色會(huì)被像素著色程式與像素著色器936進(jìn)行混色處理,以獲得各像素的最終顏色與深度,再傳給深度處理程序進(jìn)行處理。
請(qǐng)續(xù)參閱圖4。目前最新的像素著色器可執(zhí)行更復(fù)雜的運(yùn)算處理以實(shí)現(xiàn)更精致的光影特效與表面處理特效。像素著色器946被要求可處理算術(shù)運(yùn)算指令(Algorithmic Instruction)以對(duì)來(lái)自材質(zhì)處理單元942的材質(zhì)坐標(biāo)執(zhí)行內(nèi)插運(yùn)算,再以特殊的材質(zhì)擷取指令(Texture Load Instruction,如DirectX規(guī)格中的texld指令)將處理后的坐標(biāo)傳回材質(zhì)處理單元942從材質(zhì)圖中取樣出材質(zhì)顏色,再傳回像素著色器946做混色處理。
圖5為在DirectX規(guī)格中像素著色器程式的一個(gè)實(shí)例。DirectX規(guī)格的像素著色器定義了數(shù)組緩存器,包括一般緩存器rn、材質(zhì)坐標(biāo)緩存器tn、材質(zhì)編號(hào)緩存器sn、頂點(diǎn)顏色緩存器vn及最終顏色緩存器oCn。材質(zhì)坐標(biāo)系由材質(zhì)處理單元950進(jìn)行內(nèi)插運(yùn)算獲得,而材質(zhì)編號(hào)則用以指定材質(zhì)處理單元950中的材質(zhì)編號(hào)。該像素著色器程式包括四個(gè)主要階段(a)坐標(biāo)運(yùn)算;(b)材質(zhì)處理;(c)混色處理;及(d)指令發(fā)出。
(a)在坐標(biāo)運(yùn)算階段,tn值與rn值被進(jìn)行一般算術(shù)運(yùn)算,運(yùn)算所得的結(jié)果存于該一般緩存器rn中;
(b)在材質(zhì)處理階段,將材質(zhì)坐標(biāo)緩存器tn與一般緩存器rn中所存的坐標(biāo)以一材質(zhì)擷取指令texld通知材質(zhì)處理單元950從材質(zhì)編號(hào)緩存器sn所指定的材質(zhì)圖中取樣出材質(zhì)顏色。該材質(zhì)顏色信息將被傳回至一般緩存器rn;(c)在混色處理階段,將存于一般緩存器rn的材質(zhì)顏色與存于頂點(diǎn)顏色緩存器vn的頂點(diǎn)顏色以一般算術(shù)運(yùn)算混色,并將該運(yùn)算結(jié)果存于一般緩存器rn中;(d)在指令發(fā)出階段,將存于一般緩存器rn中的最終顏色信息傳出以執(zhí)行一深度處理程序。
圖6為某一現(xiàn)有技術(shù)之像素著色器的組件方塊圖。首先,像素著色器程式由被輸入至指令陣列(Instruction Queue)970,由三角形圖像設(shè)定程序得到像素方塊(Tile)中的每個(gè)像素必須被以指令隊(duì)列970中的所有指令執(zhí)行過(guò)一次,然后由最后發(fā)出階段的指令將結(jié)果傳給深度處理程序972。程式計(jì)數(shù)器(Program Counter,PC)965擷取該指令并交由譯碼器(Decoder)966進(jìn)行譯碼,以執(zhí)行算術(shù)邏輯單元(Algorithmic Logic Unit,ALU)968的運(yùn)算。
在指令間存在有資料相依性(Data Dependency)和控制相依性(ControlDependency)的問題,但像素間并不存在有資料或控制相依性。所謂資料相依性意是指若一個(gè)在后指令必須根據(jù)其在前指令的執(zhí)行結(jié)果才能加以執(zhí)行,則該在后指令就必須等待該在前指令處理完成后,才能開始進(jìn)行處理。所謂控制相依性意是指除非具有復(fù)雜的資料相依性判別裝置來(lái)實(shí)現(xiàn)亂序執(zhí)行(Out-of-order Execution),否則某一程式會(huì)根據(jù)各指令本身的順序來(lái)依序執(zhí)行,亦即,每個(gè)指令都要等前一個(gè)指令完成,才能開始執(zhí)行。因此,在一個(gè)執(zhí)行時(shí)脈(Execution Cycle)中可同時(shí)處理數(shù)個(gè)像素,而且像素著色器可累積相同指令的多個(gè)時(shí)脈,在同一處理批次(Batch)中處理數(shù)個(gè)像素的執(zhí)行時(shí)脈。藉此,在該處理批次的最后時(shí)脈所處理的像素發(fā)出后,該處理批次的最初時(shí)脈所處理的像素已處理完成且可被發(fā)出,因此可避免或減少資料相依性所造成的管線阻滯(Pipeline Bubble)。然而,假設(shè)在同一處理批次中可處理N個(gè)像素,則像素著色器的規(guī)格即必須設(shè)置N組緩存器以存放N個(gè)像素于像素著色器960中。
假設(shè)算術(shù)邏輯單元968可于一時(shí)脈中同時(shí)執(zhí)行W個(gè)像素,且其處理常用指令的最長(zhǎng)執(zhí)行時(shí)脈為L(zhǎng)個(gè)時(shí)脈,則像素著色器960需要N個(gè)緩存器來(lái)儲(chǔ)存在同一處理批次中須同時(shí)執(zhí)行的N個(gè)像素,其中N必須等于或大于L×W。否則,當(dāng)在同一處理批次中所有可同時(shí)執(zhí)行的像素都已執(zhí)行,但最初執(zhí)行的像素卻尚未完成,就無(wú)法繼續(xù)執(zhí)行下個(gè)指令,而造成管線的間斷性節(jié)流(Pipeline Throttling)。
由于材質(zhì)擷取指令texld須進(jìn)行復(fù)雜的內(nèi)插運(yùn)算,故其為常用指令中執(zhí)行時(shí)脈最長(zhǎng)的指令。材質(zhì)擷取指令texld必須由材質(zhì)處理單元956從指定的材質(zhì)圖中取樣出材質(zhì)顏色,再傳回給像素著色器960。而取樣的動(dòng)作是很復(fù)雜的內(nèi)插運(yùn)算,且材質(zhì)圖又是存放在內(nèi)存中,就算以內(nèi)存快取(Memory Cache)來(lái)加速,都要30個(gè)時(shí)脈以上,當(dāng)發(fā)生快取失誤(Cache Miss)時(shí)更要上百個(gè)時(shí)脈來(lái)由內(nèi)存讀取。隨著每一代像素著色器新規(guī)格的緩存器數(shù)量倍增(目前約由300bit/pixel增至600bit/pixel),以及算術(shù)邏輯單元968每個(gè)時(shí)脈可平行執(zhí)行的像素運(yùn)算倍增(近期由1pixel/cycle增至16pixel/cycle),像素著色器960愈來(lái)愈不可能存放足夠的緩存器數(shù)量。如此會(huì)造成大量的管線間斷性節(jié)流,使得增加的運(yùn)算頻寬無(wú)用化,而隨著材質(zhì)圖愈來(lái)愈精致,內(nèi)存快取的失誤率(Miss Rate)也會(huì)愈來(lái)愈高。因此,具有長(zhǎng)執(zhí)行時(shí)脈的材質(zhì)擷取指令texld會(huì)造成影響像素處理效能的嚴(yán)重問題。
近來(lái)愈來(lái)愈多的光線與陰影特效也會(huì)造成更高的快取失誤率,如曲面法線貼圖(Normal Map)技術(shù)。曲面法線貼圖技術(shù)為一種先進(jìn)的皺面貼圖(Bump-mapping)技術(shù),其包含多邊形對(duì)象詳細(xì)信息的特殊材質(zhì)資料。然而,曲面法線貼圖技術(shù)需要更大的資料量,因而會(huì)導(dǎo)致更高的材質(zhì)快取失誤率。
這種管線嚴(yán)重的間斷性節(jié)流起因是因?yàn)椴馁|(zhì)擷取指令texld和其它指令有數(shù)據(jù)和控制相依性。如圖7所示的例子,某程式的第一個(gè)指令為一個(gè)材質(zhì)擷取指令texld,其后為其它指令。在此例中僅有一個(gè)材質(zhì)擷取指令texld在此程式中。圖7例示管線的執(zhí)行排程并標(biāo)示出像素著色器與材質(zhì)處理單元的執(zhí)行與閑置狀態(tài)。假設(shè)該像素著色器以具有Lpixel/cycle頻寬(bandwidth)的算術(shù)邏輯單元在同一處理批次可執(zhí)行N個(gè)像素。該材質(zhì)處理單元根據(jù)一材質(zhì)擷取指令texld取樣出材質(zhì)顏色后傳回給像素著色器,而其它指令必須等到材質(zhì)處理單元處理完該材質(zhì)擷取指令texld后方可開始執(zhí)行。由于N小于L,故像素著色器在執(zhí)行其它指令前必須閑置L-N個(gè)時(shí)脈。接著,在像素著色器處理完其它指令前,由于材質(zhì)處理單元將無(wú)法收到下N個(gè)像素的材質(zhì)擷取指令texld,故材質(zhì)處理單元必須閑置。此時(shí)材質(zhì)處理單元變成效能瓶頸,故其閑置時(shí)間會(huì)造成顯著的管線間斷性節(jié)流。并且當(dāng)其它指令的數(shù)量i增加時(shí),材質(zhì)處理單元的閑置時(shí)間將會(huì)倍增為N×i。
美國(guó)專利公告第5,978,871號(hào)揭示一種分解高速緩存操作與特定結(jié)構(gòu)功能的分層方法,其利用一快取控制器以允許復(fù)雜的運(yùn)算可被分解為數(shù)個(gè)相等的簡(jiǎn)單運(yùn)算。可將基本操作的結(jié)構(gòu)變化態(tài)樣轉(zhuǎn)換成獨(dú)立的高速緩存和結(jié)構(gòu)性,并且加以分別處理。以該邏輯運(yùn)算可簡(jiǎn)化復(fù)雜的操作并且提高效能。然而,該分解高速緩存操作與特定結(jié)構(gòu)功能的分層方法并不適用于指令無(wú)法被分解為數(shù)個(gè)相同簡(jiǎn)單指令的情況。
美國(guó)專利公告第6,609,190號(hào)揭示了一種處理器、數(shù)據(jù)處理系統(tǒng)和處理器執(zhí)行指令的相關(guān)方法。該處理器可分派指令至一個(gè)發(fā)出單元。該發(fā)出單元包括主要發(fā)出陣列和次要發(fā)出陣列。如果當(dāng)前的指令不滿足被發(fā)出的條件,則被存儲(chǔ)在主要發(fā)出陣列中。如果當(dāng)前的指令滿足被發(fā)出的條件,則被存儲(chǔ)在次要發(fā)出陣列中。處理器從主要發(fā)出陣列的指令中確定要發(fā)出的下一個(gè)指令。如果指令依賴于另一個(gè)指令的執(zhí)行結(jié)果,則可以從主要發(fā)出陣列中轉(zhuǎn)移到次要發(fā)出陣列中。然而,被分派至次要發(fā)出陣列的指令仍須在處理器的執(zhí)行管線中等待,直到該指令被判定為可執(zhí)行或去除。
綜上所述可知,即使指令間不存在數(shù)據(jù)相依性,材質(zhì)擷取指令texld與其它指令間的控制相依性仍會(huì)造成嚴(yán)重的管線間斷性間斷性節(jié)流。因此必須消除材質(zhì)擷取指令texld與其它指令間的控制相依性以增進(jìn)圖像處理效能。

發(fā)明內(nèi)容本發(fā)明的目的在于提供一種指令移除裝置及其方法,其可用以移除在圖像處理程序中的簡(jiǎn)單指令。
本發(fā)明的另一目的在于提供一種指令移除裝置及其方法,其可用以降低在一個(gè)圖像處理程序中材質(zhì)處理單元的閑置時(shí)間。
為實(shí)現(xiàn)上述目的,本發(fā)明采用如下技術(shù)方案本發(fā)明指令移除裝置及其方法,該指令移除裝置可掃描圖像處理程式以決定其中是否具有簡(jiǎn)單材質(zhì)擷取指令。而該簡(jiǎn)單材質(zhì)擷取指令將會(huì)被直接傳送至材質(zhì)處理單元并從一個(gè)材質(zhì)指令集中器中移除,以避免像素著色器在該材質(zhì)處理單元處理該簡(jiǎn)單材質(zhì)擷取指令之前先執(zhí)行該指令。
該方法用以偵測(cè)與移除該簡(jiǎn)單材質(zhì)擷取指令,其包括以下步驟步驟一開始;步驟二載入原始像素處理程式;步驟三清除材質(zhì)指令表;步驟四掃描該原始像素處理程式中的一指令;步驟五對(duì)該指令進(jìn)行譯碼;步驟六判別該指令是否為簡(jiǎn)單材質(zhì)指令,若該指令為簡(jiǎn)單材質(zhì)指令則進(jìn)行步驟七,否則進(jìn)行步驟八;步驟七檢查該材質(zhì)指令表是否已滿,若該材質(zhì)指令表已滿則進(jìn)行步驟八,否則進(jìn)行步驟九;步驟八將該指令寫入新像素處理程式中;步驟九將該簡(jiǎn)單材質(zhì)指令寫入該材質(zhì)指令表中;步驟十判斷是否仍有其它指令,若有其它指令則進(jìn)行步驟四,否則進(jìn)行步驟十一;步驟十一 準(zhǔn)備執(zhí)行該新像素處理程式并將材質(zhì)處理命令傳送至材質(zhì)處理單元;步驟十二 結(jié)束。
與現(xiàn)有技術(shù)相比,本發(fā)明具有以下優(yōu)點(diǎn)(1)可改進(jìn)圖像處理程序的效能;(2)可減少該材質(zhì)處理單元的閑置時(shí)間;以及(3)可提供簡(jiǎn)單指令移除裝置與方法以有效地利用被指派給該圖像處理程序的實(shí)體緩存器。

下面結(jié)合附圖和實(shí)施例對(duì)本發(fā)明進(jìn)一步說(shuō)明圖1為一現(xiàn)有技術(shù)圖像處理器的處理程序圖。
圖2為另一現(xiàn)有技術(shù)圖像處理器的處理程序圖。
圖3為一現(xiàn)有技術(shù)像素處理程序圖。
圖4為另一現(xiàn)有技術(shù)像素處理程序圖。
圖5為DirectX規(guī)格中像素著色器程序的一個(gè)例子。
圖6為一現(xiàn)有技術(shù)像素著色器的組件方塊圖。
圖7為現(xiàn)有技術(shù)像素著色器與材質(zhì)處理單元的執(zhí)行排程示意圖。
圖8為具有本發(fā)明指令移除裝置的圖像處理器的組件方塊圖。
圖9為本發(fā)明掃描與移除簡(jiǎn)單材質(zhì)擷取指令的一個(gè)實(shí)施例。
圖10為本發(fā)明掃描與移除簡(jiǎn)單材質(zhì)擷取指令的另一個(gè)實(shí)施例。
圖11為本發(fā)明指令移除裝置的一個(gè)實(shí)施例。
圖12為本發(fā)明指令移除裝置的簡(jiǎn)化實(shí)施例。
圖13為本發(fā)明指令移除裝置的執(zhí)行排程圖。
圖14為本發(fā)明指令移除裝置的像素著色器與材質(zhì)處理單元的執(zhí)行排程圖。
圖15為本發(fā)明指令移除裝置的像素著色器與材質(zhì)處理單元的另一執(zhí)行排程圖。
圖16為本發(fā)明指令移除方法的步驟流程圖。
圖17為本發(fā)明指令移除方法的另一步驟流程圖。
主要元件符號(hào)說(shuō)明22簡(jiǎn)單指令移除裝置24指令掃描裝置26材質(zhì)擷取指令集中器27材質(zhì)擷取指令轉(zhuǎn)換單元28、29材質(zhì)擷取指令表30指令過(guò)濾器32材質(zhì)處理單元34像素著色器36、38、48原始圖像處理程序42原始像素著色器程序44、50簡(jiǎn)單材質(zhì)擷取指令46新像素著色器程序52新圖像處理程序
具體實(shí)施方式本發(fā)明一種指令移除裝置及其方法,其可用以移除在圖像處理程序中的簡(jiǎn)單指令。請(qǐng)注意以下的實(shí)施例是以DirectX規(guī)格來(lái)說(shuō)明與例示。而本發(fā)明所揭示的新穎架構(gòu)與方法亦可實(shí)現(xiàn)于其它圖像處理程式語(yǔ)言或硬件中,如OpenGL的著色器語(yǔ)言及硬件。
本發(fā)明中,簡(jiǎn)單材質(zhì)擷取指令意指該材質(zhì)擷取指令的材質(zhì)坐標(biāo)是直接由材質(zhì)處理單元經(jīng)內(nèi)插運(yùn)算所得出的材質(zhì)坐標(biāo),亦即該材質(zhì)擷取指令的材質(zhì)坐標(biāo)未經(jīng)過(guò)像素著色器(或其它像素處理單元)處理。在DirectX規(guī)格中就是指該材質(zhì)擷取指令的材質(zhì)坐標(biāo)為tn的情形,若該材質(zhì)擷取指令并非為簡(jiǎn)單材質(zhì)擷取指令,則該材質(zhì)坐標(biāo)為rn。一個(gè)簡(jiǎn)單材質(zhì)擷取指令的操作要素(Operation Factor)包括一目標(biāo)緩存器rn、一材質(zhì)編號(hào)緩存器sn及一材質(zhì)坐標(biāo)來(lái)源緩存器tn。在DirectX規(guī)格中簡(jiǎn)單材質(zhì)擷取指令的格式為[texldrn,sn,tn]。材質(zhì)處理單元可直接存取該簡(jiǎn)單材質(zhì)擷取指令之材質(zhì)而無(wú)須經(jīng)過(guò)像素著色器的處理。故該簡(jiǎn)單材質(zhì)擷取指令可從須先經(jīng)由該像素著色器的程式中移除。
圖8為具有本發(fā)明指令移除裝置的圖像處理器的組件方塊圖。圖像處理器20包括簡(jiǎn)單指令移除裝置22、材質(zhì)處理單元32與像素著色器34。該簡(jiǎn)單指令移除裝置22包括指令掃描裝置24、材質(zhì)擷取指令集中器26與指令過(guò)濾器30。指令過(guò)濾器30可對(duì)一原始程式36中的指令進(jìn)行譯碼與掃描,以根據(jù)該指令的靜態(tài)模式(Static Status or Non-dynamic Status)來(lái)判斷該指令是否為簡(jiǎn)單材質(zhì)擷取指令,在DirectX規(guī)格中即意指該材質(zhì)擷取指令的材質(zhì)坐標(biāo)為tn。
圖9為掃描與移除一簡(jiǎn)單材質(zhì)擷取指令的一個(gè)例子。當(dāng)一個(gè)簡(jiǎn)單材質(zhì)擷取指令[texld r1,s1,t0]在原始程式中被簡(jiǎn)單指令移除裝置22發(fā)現(xiàn)時(shí),該簡(jiǎn)單材質(zhì)擷取指令[texld r1,s1,t0]會(huì)被存放于一個(gè)材質(zhì)擷取指令表29中。在簡(jiǎn)單指令移除裝置22的指令掃描裝置24掃描過(guò)該原始程式后,指令過(guò)濾器24會(huì)將該簡(jiǎn)單材質(zhì)擷取指令[texld r1,s1,t0]從該原始程序中濾除,而此時(shí)該簡(jiǎn)單材質(zhì)擷取指令[texld r1,s1,t0]已被寫入該材質(zhì)擷取指令表29。
圖10為本發(fā)明掃描與移除簡(jiǎn)單材質(zhì)擷取指令的另一個(gè)實(shí)施例。與圖9中所示實(shí)施例相較,此實(shí)施例是以一個(gè)材質(zhì)擷取指令轉(zhuǎn)換單元27替代材質(zhì)擷取指令集中器26。材質(zhì)擷取指令轉(zhuǎn)換單元27用以轉(zhuǎn)換該簡(jiǎn)單材質(zhì)擷取指令并將其傳送至材質(zhì)處理單元32以供執(zhí)行。
請(qǐng)參閱圖11,常見的像素著色器程式42中的一個(gè)簡(jiǎn)單材質(zhì)擷取指令會(huì)由本發(fā)明的指令移除裝置22移除。指令移除裝置22先掃描原始程式42并發(fā)現(xiàn)一個(gè)簡(jiǎn)單材質(zhì)擷取指令[texld r2,s1,t2](即該簡(jiǎn)單材質(zhì)擷取指令[texld r2,s1,t2]的材質(zhì)坐標(biāo)為t2),接著簡(jiǎn)單材質(zhì)擷取指令[texld r2,s1,t2]會(huì)被傳送至材質(zhì)處理單元32以直接取得該簡(jiǎn)單材質(zhì)擷取指令[texldr2,s1,t2]的材質(zhì)信息。同時(shí)該簡(jiǎn)單材質(zhì)擷取指令[texld r2,s1,t2]會(huì)被從原始程式42中移除。在像素著色器所執(zhí)行的原始程式中的指令具有程式計(jì)數(shù)器(Program Counter)所產(chǎn)生的順序關(guān)系,而在材質(zhì)處理單元中的材質(zhì)擷取指令并無(wú)控制相依性。因此,材質(zhì)處理單元可更有效率地存取材質(zhì)信息而不受控制相依性的限制。
本發(fā)明指令移除裝置可以硬件或軟件的方式來(lái)實(shí)現(xiàn)。以軟件方式實(shí)現(xiàn)時(shí),該指令移除裝置可為一個(gè)獨(dú)立的應(yīng)用程式(Application Program)、一個(gè)程式載入程式(Program Loader)或一個(gè)裝置驅(qū)動(dòng)程式(Device Driver Program)的一部份。若為裝置驅(qū)動(dòng)程式的一部份,則可附加于一程式編輯器(ProgramCompiler)上。而以硬件方式實(shí)現(xiàn)時(shí),該指令移除裝置可內(nèi)含于一個(gè)圖像處理器(Graphic Processor,GPU)或像素著色器中,該指令移除裝置須位于像素著色器指令擷取(Fetch)或譯碼(Decode)之前。
圖12為本發(fā)明指令移除裝置的一個(gè)簡(jiǎn)化實(shí)施例。原始程式48包括兩指令[texld r1,s1,t0]與[mov oC0,r1]。由于該指令[texld r1,s1,t0]為簡(jiǎn)單材質(zhì)擷取指令(因其材質(zhì)坐標(biāo)為t0),故指令移除裝置22將把該簡(jiǎn)單材質(zhì)擷取指令[texld r1,s1,t0]從原始程式48中移除并將該指令傳送至材質(zhì)處理單元32。
請(qǐng)參閱圖13。其上半部為不具有簡(jiǎn)單材質(zhì)擷取指令移除裝置的指令執(zhí)行流程圖,而下半部則為具有簡(jiǎn)單材質(zhì)擷取指令移除裝置的情形。在圖13的上半部的情形時(shí),由于簡(jiǎn)單材質(zhì)擷取指令并未從原始程式中被移除,故當(dāng)像素著色器在處理非簡(jiǎn)單材質(zhì)擷取指令時(shí),材質(zhì)處理單元必須閑置N×i個(gè)時(shí)脈,其中N代表該像素著色器在同一批次可執(zhí)行的像素?cái)?shù)量,而i代表非簡(jiǎn)單材質(zhì)擷取指令的數(shù)量。在圖13下半部的情形時(shí),該簡(jiǎn)單材質(zhì)擷取指令由材質(zhì)處理單元直接執(zhí)行,故此時(shí)像素著色器可同時(shí)執(zhí)行下一批N個(gè)像素材質(zhì)擷取的動(dòng)作。由于簡(jiǎn)單材質(zhì)擷取指令不須依照該像素著色器的控制順序或頻寬,故簡(jiǎn)單材質(zhì)擷取指令無(wú)須等待該像素著色器的執(zhí)行結(jié)果。此外,該指令移除裝置亦可設(shè)計(jì)為可檢查原始程式在靜態(tài)模式下的資料相依性,以節(jié)省必須設(shè)置復(fù)雜的像素處理硬件來(lái)檢查資料相依性的成本。因此,本發(fā)明之指令移除裝置可減少材質(zhì)處理單元的閑置時(shí)間,使材質(zhì)處理單元保持連續(xù)運(yùn)作,以提升圖像處理程序之效能。
圖14為較詳細(xì)的像素著色器與材質(zhì)處理單元的處理流程圖,以比較具備有指令移除裝置與不具有指令移除裝置的情形。在該例中,假設(shè)像素著色器與材質(zhì)處理單元在同一批次可執(zhí)行N個(gè)像素,而材質(zhì)處理單元執(zhí)行每個(gè)指令需要L個(gè)時(shí)脈。如同圖13的上半部所示,圖14上半部不具有指令移除裝置的情形時(shí),材質(zhì)處理單元必須閑置等待像素著色器執(zhí)行完同一批次中的非簡(jiǎn)單材質(zhì)擷取指令,才能繼續(xù)執(zhí)行。而在圖14下半部具有指令移除裝置的情形時(shí),材質(zhì)處理單元可連續(xù)地執(zhí)行簡(jiǎn)單材質(zhì)擷取指令而無(wú)須等待該像素著色器的執(zhí)行結(jié)果。因此,與不具備指令移除裝置的情形相比,該材質(zhì)處理單元每執(zhí)行N個(gè)像素可節(jié)省N×i個(gè)時(shí)脈,其中N代表該像素著色器在同一批次可執(zhí)行的像素?cái)?shù)量,而i代表非簡(jiǎn)單材質(zhì)擷取指令的數(shù)量。
相較于圖14所示,圖15為一更詳細(xì)的像素著色器與材質(zhì)處理單元的處理流程圖。在圖15所示的例子中,該原始程序包含一個(gè)簡(jiǎn)單材質(zhì)擷取指令[texld r1,s1,t0]與一其它指令[mov oC0,r1],且該像素著色器與材質(zhì)處理單元在同一批次可執(zhí)行4個(gè)像素。如同對(duì)圖14的說(shuō)明,則具有指令移除裝置的該材質(zhì)處理單元每執(zhí)行4個(gè)像素可節(jié)省4個(gè)時(shí)脈。
圖16為本發(fā)明指令移除方法的步驟流程圖。該指令移除方法包括以下步驟步驟202 開始;步驟204 載入原始像素處理程式;步驟206 清除材質(zhì)擷取指令表;步驟208 掃描該原始像素處理程式中的一個(gè)指令;步驟210 對(duì)該指令進(jìn)行譯碼;步驟212 判別該指令是否為簡(jiǎn)單材質(zhì)指令,若該指令為簡(jiǎn)單材質(zhì)指令則進(jìn)行步驟214,否則進(jìn)行步驟216;步驟214 檢查材質(zhì)擷取指令表是否已滿,若該材質(zhì)擷取指令表已滿則進(jìn)行步驟216,否則進(jìn)行步驟218;步驟216 將該指令寫入新像素處理程序中;步驟218 將該簡(jiǎn)單材質(zhì)指令寫入該材質(zhì)擷取指令表中;步驟220 判斷是否仍有其它指令,若有其它指令則進(jìn)行步驟208,否則進(jìn)行步驟222;步驟222 準(zhǔn)備執(zhí)行該新像素處理程序并將材質(zhì)處理命令傳送至材質(zhì)處理單元;步驟224 結(jié)束。
請(qǐng)參閱圖17,為本發(fā)明指令移除方法的另一步驟流程圖。圖10所示的實(shí)施例是以材質(zhì)擷取指令轉(zhuǎn)換單元27替代圖9中所示的材質(zhì)擷取指令集中器26,而圖17配合圖10實(shí)施例的指令移除方法步驟流程圖。該指令移除方法包括以下步驟步驟302 開始;步驟304 載入原始像素處理程式;步驟306 令K值為0,其中K為正整數(shù);步驟308 掃描該原始像素處理程式中的一個(gè)指令;步驟310 對(duì)該指令進(jìn)行譯碼;步驟312 判別該指令是否為簡(jiǎn)單材質(zhì)指令,若該指令為簡(jiǎn)單材質(zhì)指令則進(jìn)行步驟314,否則進(jìn)行步驟316;步驟314 檢查該K值是否與材質(zhì)處理單元中所預(yù)設(shè)的材質(zhì)擷取指令表的容量相等,若該K值相等于材質(zhì)擷取指令表的容量則進(jìn)行步驟316,否則進(jìn)行步驟318;步驟316 將該指令寫入新像素處理程式中;步驟318 將該簡(jiǎn)單材質(zhì)指令轉(zhuǎn)換為材質(zhì)擷取命令,并發(fā)出該材質(zhì)擷取命令至材質(zhì)處理單元,同時(shí)令K=K+1;步驟320 判斷是否仍有其它指令,若有其它指令則進(jìn)行步驟308,否則進(jìn)行步驟322;步驟322 準(zhǔn)備執(zhí)行該新像素處理程式;步驟324 結(jié)束。
本發(fā)明的指令移除裝置及其方法,可掃描圖像處理程式中是否具有簡(jiǎn)單材質(zhì)擷取指令,該簡(jiǎn)單材質(zhì)擷取指令將會(huì)被直接傳送至材質(zhì)處理單元并從材質(zhì)指令集中器中移除,以避免像素著色器在材質(zhì)處理單元處理簡(jiǎn)單材質(zhì)擷取指令之前先執(zhí)行該指令,本發(fā)明指令移除裝置及其方法除了可改進(jìn)圖像處理程序的效能與減少材質(zhì)處理單元的閑置時(shí)間之外,還可以使該圖像處理程序的實(shí)體緩存器得到有效的利用。
權(quán)利要求
1.一種指令移除裝置,其包括指令掃描裝置,其掃描一指令,以判定該指令是第一類型指令還是第二類型指令;材質(zhì)處理單元;及像素處理單元;其中該指令掃描裝置將被判定為第一類型指令的指令傳送至該材質(zhì)處理單元,并將被判定為該第二類型指令的指令傳送至該像素處理單元,且該材質(zhì)處理單元對(duì)該第一類型的指令進(jìn)行處理后傳送至該像素處理單元。
2.如權(quán)利要求1所述的指令移除裝置,其中該指令掃描裝置根據(jù)該指令是否已經(jīng)過(guò)該像素處理單元處理來(lái)判定其指令類型。
3.如權(quán)利要求1所述的指令移除裝置,其中該第一類型指令為簡(jiǎn)單材質(zhì)擷取指令,而該第二類型指令為非簡(jiǎn)單材質(zhì)擷取指令。
4.如權(quán)利要求1所述的指令移除裝置,還包括一個(gè)指令集中器,用以收集該第一類型指令。
5.如權(quán)利要求4所述的指令移除裝置,其中該指令集中器可轉(zhuǎn)換該第一類型指令為一個(gè)材質(zhì)著色命令。
6.如權(quán)利要求4所述的指令移除裝置,其中該指令集中器包括指令表,用以儲(chǔ)存該第一類型指令。
7.如權(quán)利要求4所述的指令移除裝置,還包括一個(gè)指令轉(zhuǎn)換單元用以轉(zhuǎn)換該第一類型指令為一個(gè)材質(zhì)著色命令。
8.如權(quán)利要求4所述的指令移除裝置,其中該材質(zhì)處理單元包括一個(gè)命令表用以儲(chǔ)存該材質(zhì)著色命令。
9.如權(quán)利要求1所述的指令移除裝置,其中該第二類型指令被傳送至該像素處理單元。
10.如權(quán)利要求1所述的指令移除裝置,其中該像素處理單元是一個(gè)像素著色器。
11.如權(quán)利要求10所述的指令移除裝置,其中該指令掃描裝置根據(jù)該指令是否已經(jīng)過(guò)該像素著色器處理來(lái)判定其指令類型。
12.如權(quán)利要求1所述的指令移除裝置,還包括一個(gè)指令過(guò)濾器用以防止該第一類型指令被直接傳送至該像素處理單元。
13.一種用于圖像處理裝置的指令移除方法,該圖像處理裝置包括像素處理單元、材質(zhì)處理單元與指令掃描器,該指令移除方法包括以下步驟步驟一該指令掃描器根據(jù)一指令是否已經(jīng)過(guò)像素處理單元處理來(lái)判定該指令為第一類型指令還是第二類型指令;步驟二將該第一類型指令儲(chǔ)存至一個(gè)指令表;步驟三對(duì)儲(chǔ)存至該指令表的該第一類型指令的格式進(jìn)行轉(zhuǎn)換;步驟四將該第一類型指令傳送至該材質(zhì)處理單元;步驟五將該第一類型指令從原始圖像處理程式中移除;及步驟六產(chǎn)生新程式并將該新程式傳送至該像素處理單元。
14.如權(quán)利要求13所述的指令移除方法,其中該第一類型指令為簡(jiǎn)單材質(zhì)擷取指令而該第二類型指令為非簡(jiǎn)單材質(zhì)擷取指令。
15.如權(quán)利要求13所述的指令移除方法,在判定該指令類型的步驟之前,還包括對(duì)該指令進(jìn)行譯碼的步驟。
16.如權(quán)利要求13所述的指令移除方法,在判定該指令類型的步驟之后,還包括檢查該指令表狀態(tài)的步驟。
17.一種用于圖像處理裝置的指令移除方法,該圖像處理裝置包括像素處理單元、材質(zhì)處理單元與指令掃描器,該指令移除方法包括以下步驟步驟一該指令掃描器根據(jù)一指令是否已經(jīng)過(guò)像素處理單元處理來(lái)判定該指令為第一類型指令還是第二類型指令;步驟二轉(zhuǎn)換該第一類型指令的格式;步驟三將該第一類型指令傳送至該材質(zhì)處理單元;步驟四將該第一類型指令從原始圖像處理程式中移除;及步驟五產(chǎn)生新程式并將該新程式傳送至該像素處理單元。
18.如權(quán)利要求17所述的指令移除方法,其中該第一類型指令為簡(jiǎn)單材質(zhì)擷取指令而該第二類型指令為非簡(jiǎn)單材質(zhì)擷取指令。
19.如權(quán)利要求17所述的指令移除方法,在判定該指令類型的步驟之前,還包括對(duì)該指令進(jìn)行譯碼的步驟。
20.如權(quán)利要求17所述的指令移除方法,在傳送該第一類型指令至該材質(zhì)處理單元的步驟之后,還包括將該第一類型指令儲(chǔ)存至該材質(zhì)處理單元中的一個(gè)指令表的步驟。
全文摘要
本發(fā)明公開了一種指令移除裝置及其方法。該指令移除裝置可掃描圖像處理程式以決定其中是否具有簡(jiǎn)單材質(zhì)擷取指令。該簡(jiǎn)單材質(zhì)擷取指令將會(huì)被直接傳送至材質(zhì)處理單元、并從原始圖像處理程式中移除,以避免像素著色器在該材質(zhì)處理單元處理該簡(jiǎn)單材質(zhì)擷取指令之前先執(zhí)行該指令。
文檔編號(hào)G06T15/00GK1971614SQ20051011964
公開日2007年5月30日 申請(qǐng)日期2005年11月25日 優(yōu)先權(quán)日2005年11月25日
發(fā)明者徐日明 申請(qǐng)人:矽統(tǒng)科技股份有限公司
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1
玛纳斯县| 奈曼旗| 谷城县| 秭归县| 轮台县| 镇安县| 江城| 秦安县| 迁西县| 社旗县| 牙克石市| 达拉特旗| 屏边| 康保县| 弥勒县| 博爱县| 金乡县| 称多县| 合川市| 通城县| 满洲里市| 宁国市| 桃源县| 绵阳市| 民权县| 馆陶县| 静安区| 观塘区| 石泉县| 龙海市| 恩施市| 钟祥市| 曲周县| 抚宁县| 纳雍县| 读书| 吉木萨尔县| 南宫市| 林口县| 双城市| 城固县|