国产精品1024永久观看,大尺度欧美暖暖视频在线观看,亚洲宅男精品一区在线观看,欧美日韩一区二区三区视频,2021中文字幕在线观看

  • <option id="fbvk0"></option>
    1. <rt id="fbvk0"><tr id="fbvk0"></tr></rt>
      <center id="fbvk0"><optgroup id="fbvk0"></optgroup></center>
      <center id="fbvk0"></center>

      <li id="fbvk0"><abbr id="fbvk0"><dl id="fbvk0"></dl></abbr></li>

      圖形處理單元管線多階同步控制處理器及其方法

      文檔序號:6562023閱讀:219來源:國知局
      專利名稱:圖形處理單元管線多階同步控制處理器及其方法
      技術(shù)領(lǐng)域
      本發(fā)明涉及繪圖處理,特別是涉及一種同步及控制繪圖管線的方法及裝置。
      背景技術(shù)
      目前的計算機應(yīng)用程序常常運用大量的繪圖,比以往更需高程度的繪圖處理能力,諸如游戲等應(yīng)用程序通常涉及復(fù)雜且非常精細(xì)的繪圖,故需要大量而不間斷的計算,為了滿足消費者的需求,提高游戲等計算機應(yīng)用程序的繪圖能力,計算機結(jié)構(gòu)亦隨之改變。
      有鑒于程序設(shè)計師對娛樂和多媒體應(yīng)用程序(例如高畫質(zhì)視訊及最新3D游戲)的要求越來越嚴(yán)苛,隨著計算機(尤其是個人計算機)必須要能應(yīng)付此種需求,系統(tǒng)頻寬亦開始受到重視,因此,已出現(xiàn)若干方法以分配頻寬給這種高度需求頻寬的應(yīng)用程序,以及提供將來產(chǎn)生的應(yīng)用程序更余裕的頻寬空間。
      基于這些理由,目前的計算機系統(tǒng)往往包含多個處理器,舉例來說,除了中央處理單元(central processing unit,CPU)等主處理器之外,尚包含諸如圖形處理單元(graphics processing unit,GPU)等副處理器,依其設(shè)計用以進行特定的處理工作,于進行這種工作的過程中,圖形處理單元可讓中央處理單元處理其它工作。于某些情況下,圖形處理單元等副處理器可連同中央處理單元(可為微處理器)整合于計算機系統(tǒng)的主機板上,不過,本領(lǐng)域的技術(shù)人員應(yīng)當(dāng)明白,圖形處理單元和/或其它副處理裝置可設(shè)置于獨立的適配卡上,再與計算機系統(tǒng)電連接,例如圖形處理單元就設(shè)置于顯示卡上。
      副處理器(例如圖形處理單元)通??纱嫒U充存儲器,例如視訊存儲器,以進行其處理工作,副處理器通常設(shè)計專門用來進行特定的工作,如圖形處理單元就專門負(fù)責(zé)執(zhí)行三維繪圖運算,以支持需要大量繪圖的應(yīng)用程序,雖然現(xiàn)有的計算機系統(tǒng)及副處理器在執(zhí)行單一需大量繪圖的應(yīng)用程序時可能沒什么問題,但是當(dāng)嘗試同時執(zhí)行多個需大量繪圖的應(yīng)用程序時,這種計算機系統(tǒng)及副處理器即可能遇到問題。
      我們??吹降氖牵话愀碧幚砥饕砸环N缺乏效率的方式安排其處理工作,于一些操作系統(tǒng)中,圖形處理單元會依照所接收指令的順序來執(zhí)行各操作,以此種方式執(zhí)行多個工作。
      此方式有一個問題,當(dāng)具有不同優(yōu)先級的應(yīng)用程序欲存取相同資源時,此方式無法進行妥善的安排,目前控制圖形處理單元副處理器資源的第一應(yīng)用程序必須釋出其控制權(quán),這樣其它的應(yīng)用程序方能進行存取,倘若第一應(yīng)用程序未釋出其控制權(quán)給其它等待中的應(yīng)用程序,則圖形處理單元即被綁定,當(dāng)圖形處理單元完成處理有關(guān)第一應(yīng)用程序的計算時,等待中的應(yīng)用程序已被堵住,如前所述,如果僅執(zhí)行單一需大量繪圖的應(yīng)用程序,這種堵住的情況可能還不嚴(yán)重,然而,當(dāng)多個應(yīng)用程序嘗試同時使用圖形處理單元或副處理器時,這種綁住圖形處理單元或其它副處理器資源的問題就變得更明顯。
      現(xiàn)有提出一種利用可中斷的中央處理單元來進行工作切換的概念,以分配處理程序,尤其是,最近的中央處理單元已利用環(huán)境(context)儲存/恢復(fù)(restore)的概念,以儲存相關(guān)緩存器的內(nèi)容以及程序計數(shù)器數(shù)據(jù),以恢復(fù)被中斷的處理工作。雖然使用復(fù)雜排程的中央處理單元的分配處理問題已獲得解決,但尚未有效率地解決副處理器的排程問題。
      導(dǎo)致此種情況的原因在于副處理器(例如圖形處理單元)通常被視為一種代替中央處理單元進行計算繁重及耗時操作的資源,讓中央處理單元得以處理其它功能。已知繪圖操作包含大量的計算,要有相當(dāng)?shù)奶幚砟芰Σ拍苓M行,隨著繪圖應(yīng)用程序的復(fù)雜度提高,圖形處理單元變得更進步,方可處理繁重的計算及描繪操作。
      然而,當(dāng)要重新命名架構(gòu)緩存器、或于處理管線的不同階段中同時執(zhí)行數(shù)十個指令,具有平行功能單元和非循序(out-of-order)執(zhí)行的超純量(superscalar)及并行指令代碼(explicitly parallel instruction code,EPIC)型中央處理單元的復(fù)雜架構(gòu)并無法精確中斷中央處理單元,為了要實現(xiàn)精確中斷的功能,超純量中央處理單元中設(shè)置了重排緩沖區(qū),并于處理管線中新增「命令提交(或撤回)」階段。
      由于目前的圖形處理單元涵括連接于多重先進先出(first-in-first-out,F(xiàn)IFO)緩沖器的可程序化(programmable)和固定功能單元,其結(jié)構(gòu)也就變得愈來愈復(fù)雜,執(zhí)行每一個圖形處理單元命令可能要花上數(shù)百至數(shù)千周期,相較于中央處理單元,用于今日繪圖處理應(yīng)用程序中的圖形處理單元更加仰賴管線技術(shù),因此,大部份圖形處理單元設(shè)計成在任何時候均能處理大量數(shù)據(jù),這使得嘗試分配圖形處理單元處理的工作更加復(fù)雜,因為圖形處理單元不具有適當(dāng)?shù)臋C構(gòu)以于儲存或恢復(fù)操作中處理大量數(shù)據(jù)。
      為處理大量數(shù)據(jù)而發(fā)展的現(xiàn)代圖形處理單元架構(gòu)具有復(fù)雜的形式,涉及新的機制以同步數(shù)據(jù)串流處理中的管線單元,除主要的固定功能繪圖管線單元外,另外應(yīng)用的可程序化平行處理單元涉及維持圖形處理單元管線于不同階段中接收及更新的像素數(shù)據(jù)的順序。再者,于圖形處理單元的繪圖管線中同時保持具有可中斷性的多重環(huán)境亦涉及這些中斷環(huán)境的再同步化,務(wù)期效能損失能減到最低,并能平順地于中斷和恢復(fù)繪圖環(huán)境間切換。然而,目前的圖形處理單元架構(gòu)無法妥善地處理環(huán)境的同步化,反而造成管線的完全清空(flush),因而使得操作效率低下及降低繪圖能力。
      再者,當(dāng)圖形處理單元描繪的表面將成為下一流程的來源表面時,這樣的多流程描繪(multi-pass rendering)亦牽涉到同步操作,以避免當(dāng)?shù)诙鞒涕_始存取共享表面時所產(chǎn)生的寫后讀(read after write,RAW)數(shù)據(jù)問題,再者,當(dāng)圖形處理單元根據(jù)中央處理單元執(zhí)行緒(thread)內(nèi)的事件及目前圖形處理單元環(huán)境開始和/或恢復(fù)某一環(huán)境執(zhí)行時,中央處理單元工作執(zhí)行的同步化亦為目前圖形處理單元處理實務(wù)的一重要議題,然而,目前的中央處理單元卻無法適時地傳遞及響應(yīng)此種變化,其發(fā)展尚無法跟上繪圖應(yīng)用程序的需求。
      因此,迄今仍有需要克服以上所述的這種缺陷和缺點。

      發(fā)明內(nèi)容
      一種使用于應(yīng)用程序及繪圖管線間的高階同步方法包含一步驟一指定組件接收從中央處理單元送出的一輸入流內(nèi)的應(yīng)用程序指令,此指定組件可為一命令流處理器(command stream processor,CSP),命令流處理器的第一部分耦接至繪圖管線內(nèi)的次一組件,第二部分則耦接至繪圖管線的多個組件,第一部分會將與應(yīng)用程序指令相關(guān)的命令傳送到繪圖管線中的次一組件或是其它與其相耦接的組件,待稍后執(zhí)行此接收的命令后,將通過反饋路徑輸出一應(yīng)答信號給命令流處理器的第二部分,于一非限定實施例中,可由命令流處理器接收及執(zhí)行的該應(yīng)用程序指令包含檢查表面錯誤(check surfacefault)指令、陷阱中斷(trap)指令、等候(wait)指令、信號指令、內(nèi)部暫停(internalstall)指令、瀏覽(flip)指令、觸發(fā)(trigger)指令等等。
      如果應(yīng)用程序指令是檢查表面錯誤指令,從命令流處理器送出一命令給一接受組件,使其檢查虛擬存儲器,并確認(rèn)繪圖管線內(nèi)將執(zhí)行的特定環(huán)境所需的所有表面是否可用,如果虛擬存儲器缺乏執(zhí)行特定環(huán)境的所需表面,則命令流處理器會中斷該特定環(huán)境,并切換執(zhí)行一個新環(huán)境。
      產(chǎn)生一中斷指令,從其它儲存位置取回沒有儲存在虛擬存儲器內(nèi)的所有表面,當(dāng)虛擬存儲器取回所有表面并可供存取,命令流處理器可以恢復(fù)執(zhí)行先前中斷的環(huán)境。
      如果應(yīng)用程序指令為一陷阱中斷指令,命令流處理器會從第一部分(已知可為前端部分)傳送一陷阱中斷符記(trap token)給繪圖管線中的次一組件,之后,陷阱中斷符記會通過繪圖管線傳送到繪圖管線最后階段組件,于一非限定實施例中,繪圖管線最后階段組件可為一寫回(write back)單元。
      然后繪圖管線最后階段單元會將陷阱中斷符記傳回命令流處理器中用來接收此類信號的第二部分(已知可為后端部分),接著,當(dāng)命令流處理器的第二部分接收到此陷阱中斷符紀(jì),便會產(chǎn)生一中斷訊息給中央處理單元,中央處理單元在接收到此中斷訊息后,會識別與繪圖管線中指定命令或數(shù)據(jù)(如給定環(huán)境)的處理結(jié)束有關(guān)的中斷訊息,同樣地,命令流處理器會將有關(guān)陷阱中斷符記的識別信息存入存儲器中。
      如果應(yīng)用程序指令為一等候指令,當(dāng)命令流處理器辨識到中央處理單元送出的輸入流內(nèi)有等候指令,便會檢查一計數(shù)器,以判斷計數(shù)器的值是否大于或等于一臨限值,臨限值可以是零值或其它的預(yù)定值,如果計數(shù)值大于該臨限值,命令流處理器會減少計數(shù)值,繼續(xù)執(zhí)行與目前繪圖環(huán)境相關(guān)的指令;如果計數(shù)值等于臨限值,則命令流處理器(或部分的命令流處理器)會將目前的繪圖環(huán)境切換至另一繪圖環(huán)境,此環(huán)境可能是環(huán)境列表中的一組指令,每一個環(huán)境會針對有關(guān)對象而對應(yīng)不同組的指令,在切換到另一繪圖環(huán)境時,命令流處理器會重置(reset)指令指針,以執(zhí)行新的繪圖環(huán)境。
      于一非限定實施例中,計數(shù)器可以是圖形處理單元的內(nèi)部觸發(fā)計數(shù)器,也可以是位于耦接的視訊存儲器內(nèi)的外部計數(shù)器。于一非限定實施例中,計數(shù)器(不管是在存儲器內(nèi)部或外部)可以是一64位計數(shù)器,不過,本領(lǐng)域的技術(shù)人員應(yīng)當(dāng)了解可使用其它邏輯位數(shù)的計數(shù)器。
      如果應(yīng)用程序指令為一信號指令,命令流處理器辨識到從中央處理單元送出的輸入流內(nèi)含有此種指令,則將計數(shù)值增加一單位,此計數(shù)值可以位于信號命令所含地址內(nèi),之后,如果一預(yù)定位位于一預(yù)定邏輯狀態(tài),同時計數(shù)值從第一特定值變成第二特定值,則命令流處理器中斷中央處理單元,于一非限定實施例中,第一特定值可為0,而第二特定值可為1。
      如果應(yīng)用程序指令為一瀏覽指令,命令流處理器可從第一部分送出一瀏覽符記給繪圖管線中的次一組件,如三角形設(shè)定單元(triangle setup unit),瀏覽符記會移往繪圖管線的最后階段組件,如寫回單元,然后繪圖管線的最后階段組件會將瀏覽符記傳送給用來接收此信號的命令流處理器的第二部分(或后端部分)。
      當(dāng)命令流處理器接收到瀏覽符記,便會進入等候模式等待從顯示接口單元發(fā)出的信號,顯示接口單元可以是一種在繪圖管線中與命令流處理器耦接的單元或組件,命令流處理器也可以利用與瀏覽符記相關(guān)的數(shù)據(jù)來規(guī)劃顯示接口單元的預(yù)定緩存器。
      為了避免暫停繪圖管線內(nèi)的最后階段組件,命令流處理器可以耦接至用于從最后階段組件接收瀏覽符記的緩沖器,這種緩沖器可以是先進先出裝置,可依據(jù)從繪圖管線最后階段組件接收到的瀏覽符記知順序,將瀏覽符記傳送給命令流處理器。
      如果命令流處理器可執(zhí)行的應(yīng)用程序指令為一屏蔽指令,屏蔽指令使命令流處理器檢查指定計數(shù)器,判斷計數(shù)器的值是否等于一預(yù)定值,于一非限定實施例中,此預(yù)定值可為0,如果等于此預(yù)定值,則命令流處理器檢查是否從預(yù)定單元(如顯示接口單元)接收到預(yù)定信號,命令流處理器會暫停不處理接下來的操作,一直等到從預(yù)定單元接收到信號為止。如果命令流處理器檢查到計數(shù)值大于此預(yù)定值(如前述為0),則命令流處理器將計數(shù)值減一。
      命令流處理器也可用于接收輸入流中的觸發(fā)指令,而對應(yīng)一預(yù)定的響應(yīng),于一非限定實施例中,命令流處理器可輸出一操作碼給目標(biāo)組件,于一非限定實施例中,目標(biāo)組件可以是圖形處理單元內(nèi)的任何單元,當(dāng)目標(biāo)組件接收到操作碼,操作碼會指示目標(biāo)組件進行預(yù)定的操作,于一非限定實施例中,預(yù)定操作可以是預(yù)載(preload)操作、清空(flush)操作、排出(drain)操作等等。
      根據(jù)觸發(fā)指令的種類,命令流處理器可能暫?;虿粫和2僮?,直到完成觸發(fā)指令所指定的操作為止,這種操作可能由繪圖管線內(nèi)命令流處理器以外的一個或多個組件來執(zhí)行,所以命令流處理器可以等候并持續(xù)檢查等候屏蔽(計數(shù)器)的狀態(tài),判斷其是否消失,如果消失,則命令流處理器恢復(fù)輸入流內(nèi)的處理操作。
      上述特征非用于限制本發(fā)明,而僅為非限定的范例,后面將計劃附圖更詳細(xì)的說明。


      圖1為具有一計算機的一計算機系統(tǒng)的示意圖。
      圖2示出了圖1中處理單元所執(zhí)行的中央處理單元應(yīng)用程序及圖形處理單元所執(zhí)行的圖形處理單元環(huán)境間的關(guān)系。
      圖3為圖形處理單元繪圖管線的示意圖,其可存在于圖1所示的圖形處理單元中,并且可包含固定功能與可程序化單元,這種單元通過傳遞不同數(shù)據(jù)結(jié)構(gòu)的多重先進先出裝置而彼此連接。
      圖4為圖3圖形處理單元繪圖管線的非限定實施方式示意圖。
      圖5為圖4中命令流處理器的部分示意圖,說明檢查表面錯誤命令或指令的功能操作。
      圖6圖6為圖4中命令流處理器的部分示意圖,說明陷阱中斷命令或指令的功能操作。
      圖7為圖4中命令流處理器的部分示意圖,說明等候命令或指令的功能操作。
      圖8為圖4中命令流處理器的部分示意圖,說明信號命令或指令的功能操作。
      圖9為圖4中命令流處理器的部分示意圖,說明瀏覽命令或指令的功能操作。
      圖10為圖4中命令流處理器的部分示意圖,說明內(nèi)部等候(或暫停)命令或指令的功能操作。
      圖11為圖4中命令流處理器的部分示意圖,利用等候屏蔽執(zhí)行內(nèi)部等候。
      圖12為圖4中命令流處理器的部分示意圖,說明其用于命令流處理器導(dǎo)向觸發(fā)命令的操作,該觸發(fā)命令將被一輔助區(qū)塊ID重新導(dǎo)向至管線中的另一區(qū)塊。
      圖13為圖1中圖形處理單元84內(nèi)的繪圖管線的部分示意圖。
      附圖符號說明計算機系統(tǒng)10計算機12處理單元16 系統(tǒng)存儲器18系統(tǒng)總線21 只讀存儲器24隨機存取存儲器26基本輸出入系統(tǒng)27操作系統(tǒng)29 應(yīng)用程序31其它程序模塊33 程序數(shù)據(jù)35硬盤機41磁盤驅(qū)動器51磁盤52 光驅(qū)55光盤片56使用者輸入接口60指針裝置61 鍵盤62網(wǎng)絡(luò)接口70 局域網(wǎng)絡(luò)71調(diào)制解調(diào)器72廣域網(wǎng)絡(luò)73遠(yuǎn)程計算機80存儲器儲存裝置81圖形接口82 圖形處理單元84遠(yuǎn)程應(yīng)用程序85 視訊存儲器86視訊接口90 顯示器91輸出外圍接口95 打印機96揚聲器97中央處理單元應(yīng)用程序101圖形處理器單元環(huán)境102 分界命令103、107a登錄表104 存儲器表面105等候命令106、107b圖形處理器單元繪圖管線108、110存儲器存取單元109 先進先出裝置11 1、112、113命令流處理器114 命令流處理器前端部分114a命令流處理器后端部分114b陰影產(chǎn)生器117屬性設(shè)定單元118 寫回單元119
      圖形處理單元管線的最后階段121保留緩沖器137 觸發(fā)命令152、154、157、167管線區(qū)塊169具體實施方式
      圖1為一例示非限定的計算機系統(tǒng)10的示意圖,其包含一計算機12,于此非限制定實施例中,計算機12的組件可包含一處理單元16、一系統(tǒng)存儲器18以及一系統(tǒng)總線21,該系統(tǒng)總線21系將諸如系統(tǒng)存儲器18等不同的系統(tǒng)組件連接于處理單元16,系統(tǒng)總線21可為本領(lǐng)域的技術(shù)人員所知曉的任一種總線結(jié)構(gòu),如存儲器總線或存儲器控制器、外圍裝置總線以及局部總線,就一非限定實施例而言,這種架構(gòu)可包含外圍組件互連(peripheralcomponent interconnect,PCI)總線、繪圖加速端口(accelerated graphics port,AGP)及/或快速外圍組件互連(PCI Express)總線。
      計算機12可包含多種計算機可讀取的媒介,計算機可讀取的媒介可為任一種已知的計算機可存取媒介,并且包含易失性和非易失性存儲器,可為可移除或不可移除的存儲器。
      系統(tǒng)存儲器18可為易失性和/或非易失性存儲器形式的計算機儲存媒介,例如只讀存儲器(read only memory,ROM)24及隨機存取存儲器(randomaccess memory,RAM)26,只讀存儲器24中可儲存有基本輸出入系統(tǒng)(basicinput/output system,BIOS)27,于一非限定實施例中,隨機存取存儲器26可涵括操作系統(tǒng)29、應(yīng)用程序31、其它程序模塊33及程序數(shù)據(jù)35。
      計算機12亦包含其它可移除/不可移除的易失性/非易失性計算機儲存媒介,于一非限定實施例中,硬盤機41可擦寫不可移除的非易失性磁性媒介,磁盤驅(qū)動器51可擦寫可移除的非易失性磁盤52,光驅(qū)55則可擦寫光盤片56。
      通過如鍵盤62及指針裝置61等輸入裝置,使用者可輸入命令及信息給計算機12,所述輸入裝置通過使用者輸入接口60及系統(tǒng)總線21而與處理單元16連接,然而,本領(lǐng)域的技術(shù)人員應(yīng)當(dāng)了解,其它接口及總線結(jié)構(gòu)亦可用于連接這種裝置與計算機12,例如并行端口、游戲端口、通用序列總線(universal serial bus,USB)。
      一種或多種圖形處理單元(graphics processing unit,GPU)84可通過系統(tǒng)總線21與圖形接口82信號連接,于一非限定實施例中,圖形處理單元84可包含芯片上存儲器儲存裝置,例如緩存器儲存裝置及高速緩存,有必要時,圖形處理單元84亦可與視訊存儲器86信號連接。
      顯示器91或其它類型的顯示裝置亦可通過視訊接口90與系統(tǒng)總線21連接,視訊接口90亦可與視訊存儲器86信號連接,除顯示器91外,計算機系統(tǒng)10亦可包含其它外圍輸出裝置,例如打印機96及揚聲器97,均可通過輸出外圍接口95達成連接的目的。
      利用邏輯連接一部或多部遠(yuǎn)程計算機80,計算機12可于網(wǎng)絡(luò)或分布式環(huán)境中操作,遠(yuǎn)程計算機80可為個人計算機、服務(wù)器、路由器、網(wǎng)絡(luò)計算機、端末裝置或其它常見的網(wǎng)絡(luò)節(jié)點,雖然圖1中僅顯示存儲器儲存裝置81及遠(yuǎn)程應(yīng)用程序85,但遠(yuǎn)程計算機80亦可包含許多上述組件,于圖1中所示的邏輯聯(lián)機包含局域網(wǎng)絡(luò)(local area network,LAN)71及廣域網(wǎng)絡(luò)(widearea network,WAN)73,但本領(lǐng)域的技術(shù)人員應(yīng)當(dāng)了解,亦可包含其它種類的網(wǎng)絡(luò)/總線。
      于圖1的非限定實施例中,遠(yuǎn)程計算機80可通過局域網(wǎng)絡(luò)71及網(wǎng)絡(luò)接口70而連接至計算機12,同樣地,亦可使用調(diào)制解調(diào)器72及使用者輸入接口60通過廣域網(wǎng)絡(luò)73將計算機12連接至遠(yuǎn)程計算機80。
      如前所述,于另一環(huán)境處理或操作期間,圖形處理單元84可用以切換處理程序或環(huán)境,在此情形下,圖形處理單元84用以儲存中斷的環(huán)境,以及引發(fā)處理另一環(huán)境,這個環(huán)境可能是先前中斷及儲存的環(huán)境。
      圖形處理單元84可用以支持屬于相同環(huán)境的多重圖形處理單元程序(命令)的循序執(zhí)行,然而,如前所述,為了使圖形處理單元84于處理單元16前后的執(zhí)行同步,可使用多階或同步化程序。
      全階存儲器數(shù)據(jù)存取系統(tǒng)同步化可為第一階或高階方法,可同步處理單元16的應(yīng)用程序或驅(qū)動程序以及圖形處理單元84執(zhí)行的圖形處理單元環(huán)境。于第二階或中階同步中,存儲器數(shù)據(jù)存取同步化可出現(xiàn)于由圖形處理單元84執(zhí)行的兩個圖形處理單元環(huán)境之間,因此,如前所述,二個環(huán)境間的同步化的產(chǎn)生點可恰為其中一個環(huán)境中斷的場合,以恢復(fù)或引發(fā)另一環(huán)境,另一種情況為第二環(huán)境想要使用同一個圖形處理單元內(nèi)的第一環(huán)境所產(chǎn)生的存儲器表面(memory surface)數(shù)據(jù),不過必須等到第一環(huán)境完成有關(guān)此存儲器表面的所有寫入操作,第二環(huán)境才能開始讀取。于第三階同步中,圖形處理單元84中的管線設(shè)計成可以同步內(nèi)部的各單元或組件,又稱為較低階的內(nèi)部同步。利用此三階同步方法,處理單元16可與圖形處理單元84前后的執(zhí)行同步,進而控制復(fù)雜及循環(huán)的處理操作。
      圖2為說明圖1中處理單元16所執(zhí)行的中央處理單元應(yīng)用程序101及圖形處理單元84所執(zhí)行的圖形處理單元環(huán)境102的關(guān)系圖,于此非限定實施例中,將說明中央處理單元應(yīng)用程序101及圖形處理單元環(huán)境102間的高階數(shù)據(jù)存取同步方法。
      當(dāng)圖形處理單元84接收到由中央處理單元應(yīng)用程序101寫入存儲器的圖形處理單元命令及數(shù)據(jù)流緩沖器中的分界(fence)A命令103,執(zhí)行圖形處理單元環(huán)境102的圖形處理單元84會將分界命令及數(shù)據(jù)寫入系統(tǒng)或圖1的視訊存儲器86的登錄表(registry)104,登錄表104包含具有連續(xù)地址的成對存儲位置,以存放分界及等候登錄值,將分界命令寫入后,如果有關(guān)的分界值和寫入值符合預(yù)定要求,則可同步中央處理單元應(yīng)用程序101及圖形處理單元環(huán)境102關(guān)于像素(primitive)和/或存儲器表面105的讀寫操作。
      中央處理單元應(yīng)用程序101會嘗試讀取登錄表104的數(shù)據(jù)值,以比對分界值及等候值,經(jīng)過比較可以讓中央處理單元應(yīng)用程序101知道圖形處理單元環(huán)境102是否已完成特定操作或指定任務(wù),可讓中央處理單元應(yīng)用程序101利用某些數(shù)據(jù)進行額外的處理操作。
      接著,圖形處理單元環(huán)境102可以從圖形處理單元命令及數(shù)據(jù)流接收等候A命令106,然后圖形處理單元環(huán)境102會根據(jù)位于登錄表104中所接收到的等候A命令,進行讀取、比較、更新等操作,之后,中央處理單元應(yīng)用程序101會再次讀取并比較登錄表104的數(shù)據(jù)值,中央處理單元應(yīng)用程序101會識別因圖形處理單元環(huán)境102接收到等候A命令106而寫入的更新值,中央處理單元應(yīng)用程序101識別這個更新值并進行其它可能需要或影響存儲器表面105或像素的處理程序,利用這種方式,可以同步中央處理單元應(yīng)用程序101和圖形處理單元84所執(zhí)行的圖形處理單元環(huán)境102,所述即為高階數(shù)據(jù)同步的非限定實施例。
      圖3為圖形處理單元繪圖管線108的示意圖,其可存在于圖1的圖形處理單元中,并且經(jīng)由支持不同數(shù)據(jù)結(jié)構(gòu)的多重先進先出裝置去連接數(shù)個固定功能單元及/或可程序化單元,因為多類型區(qū)塊具有不只一個輸入或輸出,故圖形處理單元繪圖管線108的同步就很重要,因此,為了嘗試使圖3的圖形處理單元繪圖管線108同步,應(yīng)認(rèn)可不同類型的數(shù)據(jù)流,以維持像素描繪的順序,以及同步現(xiàn)代圖形處理單元中的二維、三維、視訊及其它信道間的時序。
      于一非限定實施例中,當(dāng)個別圖形處理單元環(huán)境通過圖形處理單元繪圖管線108,假設(shè)欲同步圖3中的環(huán)境1與環(huán)境2,則要利用多個圖形處理單元環(huán)境中階同步,將環(huán)境1中的分界A同步命令107a寫入特定邏輯位置,如存儲存取單元(memory access unit,MXU)109,后面跟著環(huán)境2的等候A同步命令107b,環(huán)境2會在環(huán)境1之后通過圖形處理單元繪圖管線108。
      為了要將相關(guān)的分界命令107a及等候命令107b寫入存儲器存取單元109中,圖形處理單元繪圖管線組件要等到與環(huán)境1相關(guān)的數(shù)據(jù)處理到一指定點,再來有關(guān)環(huán)境2的數(shù)據(jù)可于圖形處理單元繪圖管線108的較高邏輯點(logical point)進行處理,藉由此方式,圖形處理單元繪圖管線108可以于兩個不同的圖形處理單元環(huán)境間進行中階數(shù)據(jù)同步,關(guān)于更多有關(guān)內(nèi)部分界及等候的同步命令,請參考有關(guān)的美國專利申請。
      圖4為一圖形處理單元繪圖管線110的示意圖,為圖3中繪圖管線108的另一詳細(xì)表現(xiàn)方式,圖形處理單元繪圖管線110包含多個先進先出裝置,如標(biāo)號111、112及113所指,可以于管線中傳送同步命令,以可改變圖形處理單元環(huán)境,例如從圖3的環(huán)境1切換到環(huán)境2,此時,于管線中傳送符記(token)或其它類似的命令,讓管線110的組件清空與某一環(huán)境相關(guān)的數(shù)據(jù),好處理與另一環(huán)境相關(guān)的數(shù)據(jù),欲知更多有關(guān)圖形處理單元繪圖管線110的低階同步方式,請參考2005年11月10日申請的美國專利申請?zhí)?1/270,169的美國專利申請案,其名稱為「處理多重環(huán)境和運行列表的可中斷圖形處理單元以及方法」。
      命令流處理器114可以是位于圖形處理單元繪圖管線110最前方的組件,以控制整個圖形處理單元繪圖管線110,命令流處理器114執(zhí)行前述的高階及中階同步程序,也可以產(chǎn)生數(shù)個內(nèi)部符記以進行圖形處理單元繪圖管線內(nèi)部的低階同步成序,因此,命令流處理器114可配合與前述各階同步程序有關(guān)的指令。
      于一非限定實施例中,可于命令流處理器114中設(shè)定一些指令,以執(zhí)行前述各階同步程序,各指令列示如下



      后面將會針對這些由命令流處理器114執(zhí)行的命令做進一步的說明,下列為命令流處理器114的同步命令格式

      如前所述,檢查表面錯誤(或檢查錯誤)命令提供高階同步的方式,來檢查虛擬存儲器(virtual memory,VM)中所有表面的可用度,以供執(zhí)行特定的圖形處理單元環(huán)境,這個命令通常用在圖形處理單元繪圖管線110所執(zhí)行的環(huán)境的開頭處,如果跟此環(huán)境相關(guān)的某些表面不能使用,則檢查表面錯誤命令會使得虛擬存儲器加載這些表面,于此實施例中,當(dāng)虛擬存儲器加載表面的同時,會中斷目前的環(huán)境,并切換執(zhí)行另一環(huán)境,命令流處理器114會配合存儲器存取單元109,其中存儲器存取單元109可支持虛擬存儲器機制,使處理單元16(或其它中央處理單元)中斷,以配合虛擬存儲器機制。
      圖5為圖4中圖形處理單元繪圖管線110的部分示意圖,命令流處理器114可以接收圖形處理單元命令流,為了判斷與圖形處理單元命令流所指定的特定圖形處理單元環(huán)境相關(guān)的表面的可用性,命令流處理器114會檢查存儲器存取單元109的頁面項登錄表內(nèi)的表面地址。
      如前所述,如果與環(huán)境相關(guān)的表面還不能使用,則檢查表面錯誤命令會使存儲器存取單元109加載視訊存儲器或其它存儲器所儲存的表面,于此同時,存儲器存取單元109中斷中央處理單元(圖1的處理單元16)以獲得這些還不能使可用的表面,同時,存儲器存取單元109會將命令傳回命令流處理器114(如圖5所示),以中斷缺乏部分表面的環(huán)境,使命令流處理器114暫時切換到另一環(huán)境,藉此,檢查表面錯誤命令使得命令流處理器114切換至另一準(zhǔn)備好的環(huán)境,如此可增加圖形處理單元繪圖管線110的整體效率以及速度。
      另說明陷阱中斷指令,當(dāng)陷阱中斷指令通過圖形處理單元繪圖管線110的某個組件(如寫回單元組件,位于圖4中圖形處理單元繪圖管線110的末端組件),便會產(chǎn)生中央處理單元中斷信號,尤其是陷阱中斷命令可用于通知中央處理單元應(yīng)用程序,當(dāng)陷阱中斷命令到達圖形處理單元管線的最后階段,便可讓中央處理單元應(yīng)用程序知道圖形處理單元84內(nèi)的命令或數(shù)據(jù)組處理已經(jīng)結(jié)束。
      圖6為圖4中命令流處理器的部分示意圖,說明陷阱中斷命令的功能操作,于此非限定實施例中,命令流處理器114具有前端部分(第一部分)114a和后端部分(第二部分)114b,如圖6所示,命令流處理器前端部分114a可接收圖形處理單元命令流。
      如圖6所示,當(dāng)數(shù)據(jù)及命令從命令流處理器前端部分114a被推入圖形處理單元繪圖管線110后,命令流處理器前端部分114a可以插入一陷阱中斷符記(或類似的命令或識別碼),表示數(shù)據(jù)及/或命令結(jié)束,如前所述,當(dāng)圖形處理單元繪圖管線110中的某個處理區(qū)塊或最后處理區(qū)塊針對命令或數(shù)據(jù)組的處理結(jié)束,則該區(qū)塊(或組件,如圖形處理單元繪圖管線的最后階段121)會將陷阱中斷符記傳回命令流處理器114之后端部分114b。
      命令流處理器后端部分114b便會通知中央處理單元(圖1的處理單元16),如圖6所示,命令流處理器后端部分114b也會將對應(yīng)陷阱中斷符記的一陷阱中斷ID寫入存儲器86的事件歷史緩沖器,供后續(xù)程序參考。
      等候指令是一種能插入直接存儲器存取流的指令,通知命令流處理器114要檢查一特定計數(shù)器的值,于此非限定實施例中,計數(shù)器可為64位計數(shù)器,圖7為圖6中命令流處理器前端部分114a的示意圖,其為圖4中命令流處理器114的一部分。
      于一非限定實施例中,如果計數(shù)值為一非零值,則命令流處理器114要減少計數(shù)值并且繼續(xù)執(zhí)行目前的圖形處理單元環(huán)境;于一非限定實施例中,如果計數(shù)值是零,命令流處理器114會在等候指令前重置目前圖形處理單元環(huán)境的指令指針,然后切換到運行列表(runlist)中的下一個環(huán)境,運行列表包含圖形處理單元84所要執(zhí)行的數(shù)個環(huán)境,當(dāng)圖形處理單元環(huán)境因應(yīng)一等候指令而必須停止并于稍后再重新安排,在可能沒有滿足等候條件的情況下,命令流處理器114會再次執(zhí)行等候指令。
      于圖7中,如果計數(shù)值(如圖中的內(nèi)部觸發(fā)計數(shù)器(flip counter,F(xiàn)C)的值)等于1或其它非零的臨限值,則命令流處理器前端部分114a會根據(jù)圖形處理單元84內(nèi)部的觸發(fā)計數(shù)器而不是外部存儲器的部分(如存儲器86)執(zhí)行指令,于一實施例中,減少觸發(fā)計數(shù)值并繼續(xù)執(zhí)行目前的環(huán)境;當(dāng)接收到一等候指令,計數(shù)值等于零,命令流處理器前端部分114a切換到運行列表中的另一環(huán)境,并重置(reset)新環(huán)境的指令指針,指令指針可指出目前要執(zhí)行的指令。
      除了檢查內(nèi)部觸發(fā)計數(shù)器,等候指令也可以使命令流處理器前端部分114a檢查存儲器86內(nèi)的計數(shù)器,于一非限定實施例中,檢查存儲器86內(nèi)的計數(shù)器的值是否不等于零,其方式與前述類似,不同處在于執(zhí)行外部等候命令是外部存儲器的存取操作,而內(nèi)部觸發(fā)計數(shù)器則保留在圖形處理單元84內(nèi),使得其操作較為快速。
      等候指令的命令可為下列形式

      第16位FC-觸發(fā)計數(shù)器0=操作外部64位計數(shù)器的命令
      1=操作內(nèi)部計數(shù)器的命令第25-24位DWF-DWORD數(shù)目,為00或01地址[31:0]

      第0位TD-關(guān)閉虛擬-實體地址轉(zhuǎn)換0=存儲器存取單元將轉(zhuǎn)換此地址1=存儲器存取單元不會轉(zhuǎn)換此地址除了等候指令,命令流處理器114可用于信號操作,圖8為圖4中命令流處理器114的部分示意圖,可用于執(zhí)行信號指令。
      數(shù)據(jù)流中可插入一信號指令以通知圖形處理單元84必須要更新特定地址上的64位計數(shù)器的值,如圖8所示,命令流處理器前端部分114a可以接收圖形處理單元命令流中的信號指令,當(dāng)接收到指令,命令流處理器前端部分114a會將64位計數(shù)器的值加1(或是其它預(yù)定的增量),其中,計數(shù)器也可以位于圖1的存儲器86內(nèi)。
      于此非限定實施例中,命令流處里器前端部分114a會忽略在加法運算中的潛在溢位(overflow),如果于指令中有一中斷位(或其它預(yù)定位),命令流處理器前端部分114a也會發(fā)出一中央處理單元中斷指令給處理單元16(相當(dāng)于圖8中的中央處理單元),于一非限定實施例中,當(dāng)新(增量)計數(shù)值為1,即數(shù)值恰好從0轉(zhuǎn)變成1(或從第一特定值轉(zhuǎn)變成第二特定值)時,會送出中央處理單元中斷指令,命令流處理器前端部分114a所接收到的這個信號指令有一參數(shù),可以是必須更新的計數(shù)值的虛擬地址,本范例中所使用的計數(shù)器為64位。
      信號指令的命令可為下列形式

      第15位INT 0→1轉(zhuǎn)變時中斷;于此信號指令的執(zhí)行方式中,當(dāng)計數(shù)值從0變成1時,發(fā)出中斷要求第25-24位DWF為DWORD數(shù)目,其值為1地址[31:0]

      第0位TD-關(guān)閉轉(zhuǎn)換0=存儲器存取單元109將轉(zhuǎn)換此地址1=存儲器存取單元109不會轉(zhuǎn)換此地址第31-3位排列的地址圖4的命令流處理器114還可以執(zhí)行瀏覽指令,圖9為圖4中命令流處理器的部分示意圖,可執(zhí)行瀏覽命令或指令,當(dāng)命令流處理器114接收到一預(yù)定同步信號,瀏覽指令可設(shè)定一顯示接口單元(display interface unit,DIU)緩存器,瀏覽指令(或命令)會通過圖形處理單元繪圖管線110,然后回傳到命令流處理器后端部分114b,命令流處理器114會等候從顯示接口單元送出的特定同步信號到達,然后命令流處理器114可以利用命令中的數(shù)據(jù)規(guī)劃特定的顯示接口單元緩存器。
      瀏覽指令可為下列形式

      第0位SHOW-顯示供后端瀏覽操作的畫面第1位SS2-垂直同步第2位SS1-垂直同步第3位HS1-水平同步第4位PS2-垂直同步第5位PS1-垂直同步第6位HS2-水平同步第13-7位瀏覽ID-供前端瀏覽操作的用,當(dāng)解析事件歷史緩沖器時,驅(qū)動器可使用瀏覽ID第14位FE-前端,識別前端及后端瀏覽命令第15位INT-供前端瀏覽操作的用,命令流處理器在瀏覽執(zhí)行時,向中央處理單元發(fā)出一中斷要求第23-16位ADDR-欲規(guī)劃的第一顯示接口單元緩存器的起始地址第25-24位DWF-欲規(guī)劃的緩存器數(shù)目(最大為3,前端瀏覽時值為1)為了避免暫停圖形處理單元繪圖管線的最后階段單元121,如圖9所示,命令流處理器后端部分114b可以具有一保留緩沖器(可為一先進先出裝置)137以儲存特定數(shù)量的瀏覽+分界指令對,其中,分界命令或指令可用于區(qū)分環(huán)境、指令、數(shù)據(jù)等。
      保留緩沖器137中可儲存一等候指令,供同步瀏覽命令(或指令)利用,如果瀏覽指令后面緊接分界或其它預(yù)定命令,分界命令會和瀏覽命令在保留緩沖器137中堆棧在一起,所有接下來的瀏覽+分界指令對也會堆棧在保留緩沖器137中。
      如果保留緩沖器137中儲存有具有相同ADDR值的瀏覽指令,如同于前述非限定實施例的地址格式,則命令流處理器114會使其中較早的瀏覽指令無效,為了避免命令流處理器114使較早的瀏覽指令無效,可于命令中加入一SHOW位,具有SHOW位(第0位)的瀏覽指令不會被命令流處理器114丟棄。
      當(dāng)執(zhí)行一瀏覽命令或指令,觸發(fā)計數(shù)值會增加,如前所述,也可以利用一補碼等候命令或指令使觸發(fā)計數(shù)值減少。
      命令流處理器114亦能執(zhí)行內(nèi)部等候(或暫停)指令,當(dāng)?shù)群驈娘@示接口單元送出的顯示回掃信號(display retrace signal)以及預(yù)先檢查觸發(fā)計數(shù)器,或是清除觸發(fā)指令預(yù)先設(shè)定的等候屏蔽,內(nèi)部暫停指令可以先暫停命令流處理器114,當(dāng)命令流處理器114接收到這些信號,可以繼續(xù)圖形處理單元命令流。
      圖10為命令流處理器114的示意圖,利用等候屏蔽或計數(shù)器執(zhí)行內(nèi)部暫停指令,當(dāng)?shù)群驈娘@示接口單元送出的顯示回掃信號,內(nèi)部暫停指令可以先暫停命令流處理器114,當(dāng)圖形處理單元命令流進入命令流處理器前端部分114a,命令流處理器前端部分114a會檢查觸發(fā)計數(shù)器,確定觸發(fā)計數(shù)值是否為0或其它的預(yù)定值,觸發(fā)計數(shù)器可以是命令流處理器114的內(nèi)部觸發(fā)計數(shù)器,或是在圖形處理單元84的其它位置,為一64位計數(shù)器。
      如圖10所示,如果觸發(fā)計數(shù)值不等于0,則命令流處理器前端部分114a會減少計數(shù)值,并且執(zhí)行圖形處理單元命令流中的下一指令,換句話說,于此非限定實施例中,沒有啟動任何內(nèi)部暫停。
      如果觸發(fā)計數(shù)值等于0,則命令流處理器前端部分114a會等候從顯示接口單元(或其它預(yù)定單元)送出的顯示回掃信號(或其它信號),如圖10所示,命令流處理器前端部分114a會檢查是否接收到從顯示接口單元送出的顯示回掃信號,如果命令流處理器前端部分114a沒有從顯示接口單元接收到顯示回掃信號,則命令流處理器前端部分114a會暫停,持續(xù)到從顯示接口單元接收到顯示回掃信號為止;當(dāng)接收到顯示回掃信號,命令流處理器前端部分114a會繼續(xù)操作,執(zhí)行圖形處理單元命令流的下一個指令。
      命令流處理器前端部分114a所接收到的內(nèi)部暫停指令可以具有如下格式

      第0位HS2-水平同步第1位SS2-垂直同步第2位SS1-垂直同步第3位HS1-水平同步第4位PS2-垂直同步第5位PS1-垂直同步第6位2D-二維前端閑置第7位SPP-SPP閑置第8位AES-AES閑置第9位PG-PG閑置觸發(fā)計數(shù)器狀態(tài)暫停第16位FC-觸發(fā)計數(shù)器0=不受最佳觸發(fā)計數(shù)器狀態(tài)的影響1=如果觸發(fā)計數(shù)值為0,暫停命令流處理器,接著等候直到狀態(tài)改變;否則減少計數(shù)值并繼續(xù)程序等候標(biāo)志(屏蔽)暫停或完成管線清空命令第18位WM-等候屏蔽0=不必等待等候屏蔽值變成01=等待等候屏蔽值變成0第25-24位DWF=00于此非限定實施例中,命令流處理器等后屏蔽系以第18位表示,可使軟件驅(qū)動器同步命令流處理器114以接收圖形處理單元繪圖管線110的信息,可以藉由通過圖形處理單元繪圖管線110并回傳至命令流處理器114的一觸發(fā)命令設(shè)定及清除等候屏蔽。
      圖11為使用命令流處理器等候屏蔽的示意圖,其中命令流處理器114會等待存儲器存取單元109將所有的緩存器傳回命令流處理器儲存緩沖器,如前所述,于一非限定實施例中,可利用命令流處理器觸發(fā)「設(shè)定等候」命令來設(shè)定命令流處理器等候屏蔽位(如第18位)或計數(shù)器,因此存儲器存取單元觸發(fā)「轉(zhuǎn)儲暫存」命令(此為一非限定的名稱)將被傳送至存儲器存取單元109,之后命令流處理器「后端」觸發(fā)「清除等候」命令將通過存儲器存取單元109,以清除指定位(或減少計數(shù)器值),于此非限定實施例中,指定位為第18位。
      然后,可發(fā)出一命令流處理器內(nèi)部等候(或暫停)命令,以等待清除命令流處理器114等候屏蔽(或計數(shù)器),這個命令順序會使命令流處理器114暫停解析輸入命令流,直到接收到所有的存儲器存取單元109的緩存器而且命令流處理器觸發(fā)符記通過存儲器存取單元109為止,然而,熟悉此技藝者可知,所舉存儲器存取單元109為非限定實施例,吾等亦可使用圖形處理單元繪圖管線110中的一個或多個其它區(qū)塊或組件。
      圖11顯示用于執(zhí)行一內(nèi)部等候屏蔽的一非限定程序流程,可應(yīng)用于圖4的圖形處理單元繪圖管線中,先定義一個欲與命令流處理器前端部分114a同步的管線區(qū)塊,可使得定義的管線區(qū)塊在命令流處理器前端部分114a繼續(xù)命令解析前完成一些操作,如圖11所示,可將觸發(fā)命令152送至命令流處理器前端部分114a,于此非限定實施例中,觸發(fā)命令152可設(shè)定等候屏蔽位(如前述第18位)或計數(shù)器為一預(yù)定狀態(tài),于此非限定實施例中,可將一存儲器存取單元觸發(fā)「轉(zhuǎn)儲暫存」命令154傳送至存儲器存取單元109以觸發(fā)某些操作,命令流處理器前端部分114a根據(jù)接收與存儲器存取單元109有關(guān)的命令154,可以送出一組命令定義特定區(qū)塊的操作。
      命令流處理器前端部分114a可接收下一個觸發(fā)命令157,并將其傳送給存儲器存取單元109,再傳給命令流處理器后端部分114b,如圖11所示,這個命令157可包含一清除等候屏蔽(或減少計數(shù)值)選項,存儲器存取單元109在接收到與清除等候屏蔽位(其系的前由命令152所設(shè)定)有關(guān)的觸發(fā)命令后,會將其傳送給命令流處理器后端部分114b,命令流處理器114于接收到觸發(fā)命令152時進行等候操作,直到接收到等候清除命令157為止,而存儲器存取單元109要等到完成觸發(fā)「轉(zhuǎn)儲暫存」命令154,才會傳送等候清除命令157。
      如此,存儲器存取單元109最后傳送等候清除指令157給命令流處理器后端部分114b的等候屏蔽緩存器,這種候屏蔽緩存器與命令流處理器前端部分114a的對應(yīng)緩存器相關(guān),藉此,在接收到所有的存儲器存取單元109緩存器,同時命令流處理器觸發(fā)符記(于此實施例中為等候清除命令157)通過存儲器存取單元109之后,命令流處理器114可以有效地暫停解析輸入命令流。
      如前面有關(guān)等候(或暫停)指令的說明,命令流處理器114可以執(zhí)行觸發(fā)功能或指令,觸發(fā)指令可讓命令流處理器114開始一預(yù)載、無效、清空、排出、清除、自動清除操作或其它針對圖4中圖形處理單元繪圖管線110內(nèi)的不同區(qū)塊或單元的操作,所列的位格式為一非限定實施例,目的在顯示命令流處理器114如何于圖形處理單元繪圖管線110內(nèi)的一個或多個組件中觸發(fā)事件(即預(yù)載、無效、清空等等)。

      第7-0位觸發(fā)位;指定要執(zhí)行的操作。
      第14-10位區(qū)塊ID;指定位于圖形處理單元繪圖管線110中的特定區(qū)塊,接收觸發(fā)命令后進行預(yù)定操作。
      第20-16位輔助區(qū)塊ID;這些位指定圖形處理單元繪圖管線110內(nèi)的其它區(qū)塊,這個信息和區(qū)塊ID有關(guān),當(dāng)?shù)?1位的BE設(shè)定成1,可傳送命令給此區(qū)塊,如果BE設(shè)定成0,則忽略此輔助區(qū)塊ID位。
      第21位BE(后端);這個位對應(yīng)命令流處理器「后端」觸發(fā),可以和輔助區(qū)塊ID(第20-16位)一起通過圖形處理單元繪圖管線110,然后回傳到命令流處理器,以達成同步目的。
      第22位POS(位置);這個位和命令流處理器114是否要輸出通過圖形處理單元繪圖管線110的一位置命令有關(guān),以配合對應(yīng)的觸發(fā)命令。
      第25-24位DWF(雙字符域(double word field)),指定這個命令之后有多少的雙字符,其值根據(jù)接收這個觸發(fā)命令的區(qū)塊而定,有些區(qū)塊需要較多或較少的雙字符。
      這個觸發(fā)命令可做為多功能內(nèi)部緩沖器管理及同步命令,而被傳送至圖形處理單元繪圖管線110中的多個單元(或區(qū)塊),如前所述,此觸發(fā)命令的操作可于觸發(fā)位屏蔽(第7-0位)定義,另外,每一潛在接收區(qū)塊的操作可能因特定管線區(qū)塊的功能性而不同,可應(yīng)用至命令流處理器114、存儲器存取單元109、陰影產(chǎn)生器(shade generator,SG)117、屬性設(shè)定單元(attributesetup unit,ASU)118、寫回單元(write back unit,WBU)119及其它圖4中所示區(qū)塊(及其它圖4未繪出,但熟悉此技藝人士可知位于圖形處理單元84的區(qū)塊),因此,接收觸發(fā)命令的每一區(qū)塊可能因其功能性而進行不同的操作。
      如前所述,于一非限定實施例中,觸發(fā)命令可以送至命令流處理器114,如前面有關(guān)命令流處理器導(dǎo)向的觸發(fā)命令的說明,可同時配合使用控制位POS(第22位)及后端位BE(第21位)可與輔助區(qū)塊ID位(第20-16位)。
      于一非限定實施例中,下表說明幾個命令流處理器114導(dǎo)向的觸發(fā)命令選項


      藉由輔助區(qū)塊ID域(于一非限定實施例中為第20-16位)所定義的特定管線區(qū)塊,命令流處理器114可以重新導(dǎo)向觸發(fā)命令到命令流處理器后端部分114b,圖12為圖4中命令流處理器114的示意圖165,可執(zhí)行由命令流處理器114重新導(dǎo)向的命令流處理器導(dǎo)向觸發(fā)命令。
      如圖12所示,命令流處理器前端部分114a可以傳送觸發(fā)命令167給圖4中圖形處理單元繪圖管線110內(nèi)的尋址接收管線區(qū)塊J 169,于此非限定實施例中,命令流處理器114會利用觸發(fā)命令167內(nèi)對應(yīng)輔助區(qū)塊ID的第20-16位的識別信息,來識別管線區(qū)塊J。
      如圖12所示,命令流處理器前端部分114a可以傳送觸發(fā)命令167給圖4中圖形處理單元繪圖管線110內(nèi)的尋址接收管線區(qū)塊J 169,于此非限定實施例中,命令流處理器114會利用觸發(fā)命令167內(nèi)對應(yīng)輔助區(qū)塊ID的第20-16位的識別信息,來識別管線區(qū)塊J。
      圖13為繪圖管線的例示圖,包含圖1所示圖形處理單元84的一部分,其中說明了命令流處理器前端部分114a如何將觸發(fā)命令傳送給繪圖管線的各組件,可看出與各特定組件配合的各特定命令。
      應(yīng)強調(diào)的是,以上所述的具體例及非限定實施例僅為可能的施行范例,僅用以清楚說明本披露的原理,即便對上述具體例及非限定實施例施以變化和修飾,然皆不脫此中所述的精神和范圍。所有這種修飾及變化應(yīng)涵括于本發(fā)明的范圍內(nèi),受如附申請專利范圍保護。
      權(quán)利要求
      1.一種同步一應(yīng)用程序與一繪圖管線的方法,包含下列步驟一繪圖管線中的一特定組件接收一輸入流內(nèi)的一圖形處理單元指令,該圖形處理單元指令是由該應(yīng)用程序所產(chǎn)生,并根據(jù)一中央處理單元所執(zhí)行的該應(yīng)用程序而被插入該輸入流,該特定組件的第一部分耦接至該繪圖管線的次一組件,該特定組件的第二部分藉由多個反饋路徑耦接至該繪圖管線內(nèi)的多個組件;從該第一部分傳送與該圖形處理單元指令有關(guān)的一圖形處理單元命令到該次一組件以及與該特定組件耦接的另一組件中的至少一組件;以及該至少一組件接收與該圖形處理單元指令有關(guān)的該圖形處理單元命令,并執(zhí)行與該圖形處理單元命令相關(guān)的數(shù)個特定操作。
      2.如權(quán)利要求1所述的方法,其中該圖形處理單元指令包含一操作碼部分;以及至少一雙字符部分,其包含一識別信息、地址信息及數(shù)據(jù)中的至少一項信息。
      3.如權(quán)利要求1所述的方法,其中該操作碼部分及該至少一雙字符部分均為32位。
      4.如權(quán)利要求1所述的方法,其中該圖形處理單元指令為一檢查表面錯誤指令,該檢查表面錯誤指令包含下列步驟從該特定組件傳送一圖形處理單元命令給一接收組件,以檢查一虛擬存儲器及決定將于該繪圖管線中執(zhí)行的一特定環(huán)境的所有表面是否可用;當(dāng)該虛擬存儲器沒有該特定環(huán)境所需的所有表面,中斷該特定組件的該特定環(huán)境,并切換至一新環(huán)境;以及產(chǎn)生一中斷訊息,以取回不在該虛擬存儲器內(nèi)的所有表面。
      5.如權(quán)利要求4所述的方法,還包含下列步驟當(dāng)該虛擬存儲器取回所有表面,恢復(fù)中斷的該特定環(huán)境。
      6.如權(quán)利要求4所述的方法,其中該中斷訊息被傳送至該中央處理單元。
      7.如權(quán)利要求4所述的方法,其中該接收組件為一存儲器存取單元組件。
      8.如權(quán)利要求4所述的方法,還包含下列步驟如果該虛擬存儲器包含該特定環(huán)境所需的所有表面,因應(yīng)從該特定組件傳送給該接收組件的該命令,繼續(xù)執(zhí)行該特定環(huán)境。
      9.如權(quán)利要求1所述的方法,其中該圖形處理單元指令為一陷阱中斷指令,該陷阱中斷指令還包含下列步驟從該特定組件的該第一部分傳送一陷阱中斷符記給該繪圖管線中的該次一組件,其中該陷阱中斷符記是經(jīng)由該繪圖管線傳送至該繪圖管線的一最后階段組件;藉由一反饋路徑從該最后階段組件傳送該陷阱中斷符記給該特定組件的該第二部分;以及當(dāng)該特定組件的該第二部分接收到該陷阱中斷符記,產(chǎn)生一中斷訊息給該中央處理單元。
      10.如權(quán)利要求9所述的方法,其中該中央處理單元接收到該中斷訊息后,識別與該繪圖管線內(nèi)指定命令或數(shù)據(jù)的處理結(jié)束有關(guān)的中斷訊息。
      11.如權(quán)利要求9所述的方法,還包含下列步驟從該特定組件的該第二部分傳送與該陷阱中斷符記有關(guān)的一識別訊息給一存儲器儲存。
      12.如權(quán)利要求1所述的方法,其中該應(yīng)用程序產(chǎn)生圖形處理單元指令為一等候指令,所述候指令還包含下列步驟該特定組件的該第一部分識別該輸入流內(nèi)的所述候指令;檢查一計數(shù)器,判斷一計數(shù)值是否大于或等于一臨限值;當(dāng)該計數(shù)值大于該臨限值,減少該計數(shù)值,并繼續(xù)執(zhí)行與目前繪圖環(huán)境有關(guān)的指令;以及當(dāng)該計數(shù)值等于該臨限值,將該特定組件的該第一部分從該目前繪圖環(huán)境切換至另一繪圖環(huán)境;其中該計數(shù)器為一觸發(fā)計數(shù)器,位于包含該圖形管線的一圖形處理單元內(nèi)。
      13.如權(quán)利要求12所述的方法,其中該計數(shù)器位于視訊存儲器內(nèi),該視訊存儲器位于包含該繪圖管線的該圖形處理單元之外。
      14.如權(quán)利要求12所述的方法,其中該計數(shù)器為一64位計數(shù)器。
      15.如權(quán)利要求12所述的方法,還包含下列步驟當(dāng)該特定組件的該第一部分從該目前繪圖環(huán)境切換至另一繪圖環(huán)境,重置一指令指針到一預(yù)定邏輯點。
      16.如權(quán)利要求1所述的方法,其中該圖形處理單元指令為一瀏覽指令,該方法還包含下列步驟從該特定組件的該第一部分傳送一瀏覽符記給該繪圖管線內(nèi)的該次一組件,其中該瀏覽符記通過該繪圖管線而移往該繪圖管線內(nèi)的該最后階段組件;藉由該反饋路徑從該繪圖管線內(nèi)的該最后階段組件傳送該瀏覽符記給該特定組件的該第二部分;該特定組件等候從一顯示接口單元接收一信號;以及利用與該瀏覽符記相關(guān)的數(shù)據(jù)規(guī)劃該顯示接口單元的一緩存器。
      17.如權(quán)利要求16所述的方法,還包含下列步驟緩沖從該反饋路徑接收到的數(shù)個瀏覽符記,其中根據(jù)接收到的一命令,一緩沖器的一輸出將從該反饋路徑接收到的該瀏覽符記傳送給該特定組件的該第二部分。
      18.如權(quán)利要求1所述的方法,其中該圖形處理單元指令為一內(nèi)部暫停指令,該方法還包含下列步驟該特定組件的該第一部分接收該暫停指令;檢查一觸發(fā)計數(shù)器,判斷一計數(shù)值是否等于一預(yù)定值;當(dāng)該計數(shù)值等于該預(yù)定值,檢查是否從一預(yù)定單元接收到一預(yù)定信號;以及暫停該特定組件進行操作,直到接收到該預(yù)定信號為止。
      19.如權(quán)利要求18所述的方法,還包含下列步驟反復(fù)檢查一等候屏蔽計數(shù)器;以及當(dāng)所述候屏蔽計數(shù)器的值不等于一預(yù)定值,暫停該特定組件進行操作。
      20.如權(quán)利要求18所述的方法,其中該預(yù)定單元為一圖形處理單元內(nèi)的一顯示接口單元。
      21.如權(quán)利要求18所述的方法,其中還包含下列步驟當(dāng)該計數(shù)值大于該預(yù)定值,減量少計數(shù)值。
      22.如權(quán)利要求18所述的方法,其中該預(yù)定值為0。
      23.如權(quán)利要求1所述的方法,其中該圖形處理單元指令為一觸發(fā)指令,該方法還包含下列步驟該特定組件的該第一部分接收該觸發(fā)指令;輸出一操作碼指令給該繪圖管線中的一目標(biāo)組件,該目標(biāo)組件耦接于該特定組件的該第一部分;使該目標(biāo)組件執(zhí)行對應(yīng)該操作碼指令的一編碼部分的一指示操作;當(dāng)執(zhí)行該指示操作,經(jīng)由該反饋路徑從該目標(biāo)組件傳送一應(yīng)答信號給該特定組件的該第二部分;以及當(dāng)從該反饋路徑上接收到該應(yīng)答信號,執(zhí)行一應(yīng)答操作。
      24.如權(quán)利要求23所述的方法,其中該指示操作為一預(yù)載操作、一清空操作、一排出操作、一快取無效操作或一等候(暫停)屏蔽更新操作。
      25.如權(quán)利要求23所述的方法,其中該觸發(fā)指令包含該操作碼指令。
      26.如權(quán)利要求23所述的方法,其中該應(yīng)答操作為清除先前于接受到該觸發(fā)指令時所設(shè)定的一等候屏蔽。
      27.如權(quán)利要求1所述的方法,其中該圖形處理單元指令為一等候屏蔽指令,該方法還包含下列步驟該特定組件的該第一部分從一輸入流中接收一等候指令,所述候指令具有一等候屏蔽設(shè)定部分;該特定組件的該第一部分接收一目標(biāo)操作命令,將其傳送至該繪圖管線內(nèi)的一輔助區(qū)塊,其中該輔助區(qū)塊執(zhí)行與該目標(biāo)操作命令內(nèi)的數(shù)據(jù)有關(guān)的一預(yù)定操作;該特定組件的該第一部分接收一等候清除觸發(fā)指令,將其傳送至該繪圖管線內(nèi)的一輔助區(qū)塊,接著從該繪圖管線的該輔助區(qū)塊傳送給該特定組件的該第二部分;以及該特定組件的該第一部分接收一內(nèi)部等候命令及一等候屏蔽狀態(tài)檢查指令,并判斷該特定組件的該第二部分是否有接收到所述候清除觸發(fā)指令,以清除所述候屏蔽設(shè)定部份。
      28.如權(quán)利要求27所述的方法,其中該特定組件接收到該內(nèi)部等候命令及所述候屏蔽狀態(tài)檢查指令后,停止處理指令,直到判斷該特定組件的該第二部分接收到所述候清除指令為止。
      全文摘要
      一種于一應(yīng)用程序及一繪圖管線組件間的高階同步方法,于此方法中,一特定組件接收中央處理單元輸出的輸入流內(nèi)的應(yīng)用程序指令,特定組件可為命令流處理器,命令流處理器的第一部分耦接至繪圖管線內(nèi)的次一組件,而第二部分則耦接至繪圖管線內(nèi)的多個組件,從該第一部分傳送與應(yīng)用程序指令相關(guān)的命令至繪圖管線內(nèi)的次一組件或其它與其耦接的組件,在接收及執(zhí)行該命令之后,藉由反饋路徑將應(yīng)答訊息傳送至命令流處理器的第二部分,命令流處理器能接收及執(zhí)行的應(yīng)用程序指令有檢查表面錯誤指令、陷阱中斷指令、等候指令、信號指令、暫停指令、瀏覽指令、觸發(fā)指令等。
      文檔編號G06T1/20GK1983326SQ20061013659
      公開日2007年6月20日 申請日期2006年10月26日 優(yōu)先權(quán)日2005年10月26日
      發(fā)明者約翰·柏拉勒斯, 黃錫霖, 提莫·佩塔西, 柏瑞斯·柏克潘克, 廖群峰 申請人:威盛電子股份有限公司
      網(wǎng)友詢問留言 已有0條留言
      • 還沒有人留言評論。精彩留言會獲得點贊!
      1