專利名稱:圖形處理單元管線多階同步控制處理器及其方法
技術(shù)領(lǐng)域:
本發(fā)明涉及繪圖處理,特別是涉及一種同步及控制繪圖管線的方法及裝置。
背景技術(shù):
目前的計(jì)算機(jī)應(yīng)用程序常常運(yùn)用大量的繪圖,比以往更需高程度的繪圖處理能力,諸如游戲等應(yīng)用程序通常涉及復(fù)雜且非常精細(xì)的繪圖,故需要大量而不間斷的計(jì)算,為了滿足消費(fèi)者的需求,提高游戲等計(jì)算機(jī)應(yīng)用程序的繪圖能力,計(jì)算機(jī)結(jié)構(gòu)亦隨之改變。
有鑒于程序設(shè)計(jì)師對(duì)娛樂(lè)和多媒體應(yīng)用程序(例如高畫(huà)質(zhì)視訊及最新3D游戲)的要求越來(lái)越嚴(yán)苛,隨著計(jì)算機(jī)(尤其是個(gè)人計(jì)算機(jī))必須要能應(yīng)付此種需求,系統(tǒng)頻寬亦開(kāi)始受到重視,因此,已出現(xiàn)若干方法以分配頻寬給這種高度需求頻寬的應(yīng)用程序,以及提供將來(lái)產(chǎn)生的應(yīng)用程序更余裕的頻寬空間。
基于這些理由,目前的計(jì)算機(jī)系統(tǒng)往往包含多個(gè)處理器,舉例來(lái)說(shuō),除了中央處理單元(central processing unit,CPU)等主處理器之外,尚包含諸如圖形處理單元(graphics processing unit,GPU)等副處理器,依其設(shè)計(jì)用以進(jìn)行特定的處理工作,于進(jìn)行這種工作的過(guò)程中,圖形處理單元可讓中央處理單元處理其它工作。于某些情況下,圖形處理單元等副處理器可連同中央處理單元(可為微處理器)整合于計(jì)算機(jī)系統(tǒng)的主機(jī)板上,不過(guò),本領(lǐng)域的技術(shù)人員應(yīng)當(dāng)明白,圖形處理單元和/或其它副處理裝置可設(shè)置于獨(dú)立的適配卡上,再與計(jì)算機(jī)系統(tǒng)電連接,例如圖形處理單元就設(shè)置于顯示卡上。
副處理器(例如圖形處理單元)通??纱嫒U(kuò)充存儲(chǔ)器,例如視訊存儲(chǔ)器,以進(jìn)行其處理工作,副處理器通常設(shè)計(jì)專門(mén)用來(lái)進(jìn)行特定的工作,如圖形處理單元就專門(mén)負(fù)責(zé)執(zhí)行三維繪圖運(yùn)算,以支持需要大量繪圖的應(yīng)用程序,雖然現(xiàn)有的計(jì)算機(jī)系統(tǒng)及副處理器在執(zhí)行單一需大量繪圖的應(yīng)用程序時(shí)可能沒(méi)什么問(wèn)題,但是當(dāng)嘗試同時(shí)執(zhí)行多個(gè)需大量繪圖的應(yīng)用程序時(shí),這種計(jì)算機(jī)系統(tǒng)及副處理器即可能遇到問(wèn)題。
我們??吹降氖牵话愀碧幚砥饕砸环N缺乏效率的方式安排其處理工作,于一些操作系統(tǒng)中,圖形處理單元會(huì)依照所接收指令的順序來(lái)執(zhí)行各操作,以此種方式執(zhí)行多個(gè)工作。
此方式有一個(gè)問(wèn)題,當(dāng)具有不同優(yōu)先級(jí)的應(yīng)用程序欲存取相同資源時(shí),此方式無(wú)法進(jìn)行妥善的安排,目前控制圖形處理單元副處理器資源的第一應(yīng)用程序必須釋出其控制權(quán),這樣其它的應(yīng)用程序方能進(jìn)行存取,倘若第一應(yīng)用程序未釋出其控制權(quán)給其它等待中的應(yīng)用程序,則圖形處理單元即被綁定,當(dāng)圖形處理單元完成處理有關(guān)第一應(yīng)用程序的計(jì)算時(shí),等待中的應(yīng)用程序已被堵住,如前所述,如果僅執(zhí)行單一需大量繪圖的應(yīng)用程序,這種堵住的情況可能還不嚴(yán)重,然而,當(dāng)多個(gè)應(yīng)用程序嘗試同時(shí)使用圖形處理單元或副處理器時(shí),這種綁住圖形處理單元或其它副處理器資源的問(wèn)題就變得更明顯。
現(xiàn)有提出一種利用可中斷的中央處理單元來(lái)進(jìn)行工作切換的概念,以分配處理程序,尤其是,最近的中央處理單元已利用環(huán)境(context)儲(chǔ)存/恢復(fù)(restore)的概念,以儲(chǔ)存相關(guān)緩存器的內(nèi)容以及程序計(jì)數(shù)器數(shù)據(jù),以恢復(fù)被中斷的處理工作。雖然使用復(fù)雜排程的中央處理單元的分配處理問(wèn)題已獲得解決,但尚未有效率地解決副處理器的排程問(wèn)題。
導(dǎo)致此種情況的原因在于副處理器(例如圖形處理單元)通常被視為一種代替中央處理單元進(jìn)行計(jì)算繁重及耗時(shí)操作的資源,讓中央處理單元得以處理其它功能。已知繪圖操作包含大量的計(jì)算,要有相當(dāng)?shù)奶幚砟芰Σ拍苓M(jìn)行,隨著繪圖應(yīng)用程序的復(fù)雜度提高,圖形處理單元變得更進(jìn)步,方可處理繁重的計(jì)算及描繪操作。
然而,當(dāng)要重新命名架構(gòu)緩存器、或于處理管線的不同階段中同時(shí)執(zhí)行數(shù)十個(gè)指令,具有平行功能單元和非循序(out-of-order)執(zhí)行的超純量(superscalar)及并行指令代碼(explicitly parallel instruction code,EPIC)型中央處理單元的復(fù)雜架構(gòu)并無(wú)法精確中斷中央處理單元,為了要實(shí)現(xiàn)精確中斷的功能,超純量中央處理單元中設(shè)置了重排緩沖區(qū),并于處理管線中新增「命令提交(或撤回)」階段。
由于目前的圖形處理單元涵括連接于多重先進(jìn)先出(first-in-first-out,F(xiàn)IFO)緩沖器的可程序化(programmable)和固定功能單元,其結(jié)構(gòu)也就變得愈來(lái)愈復(fù)雜,執(zhí)行每一個(gè)圖形處理單元命令可能要花上數(shù)百至數(shù)千周期,相較于中央處理單元,用于今日繪圖處理應(yīng)用程序中的圖形處理單元更加仰賴管線技術(shù),因此,大部份圖形處理單元設(shè)計(jì)成在任何時(shí)候均能處理大量數(shù)據(jù),這使得嘗試分配圖形處理單元處理的工作更加復(fù)雜,因?yàn)閳D形處理單元不具有適當(dāng)?shù)臋C(jī)構(gòu)以于儲(chǔ)存或恢復(fù)操作中處理大量數(shù)據(jù)。
為處理大量數(shù)據(jù)而發(fā)展的現(xiàn)代圖形處理單元架構(gòu)具有復(fù)雜的形式,涉及新的機(jī)制以同步數(shù)據(jù)串流處理中的管線單元,除主要的固定功能繪圖管線單元外,另外應(yīng)用的可程序化平行處理單元涉及維持圖形處理單元管線于不同階段中接收及更新的像素?cái)?shù)據(jù)的順序。再者,于圖形處理單元的繪圖管線中同時(shí)保持具有可中斷性的多重環(huán)境亦涉及這些中斷環(huán)境的再同步化,務(wù)期效能損失能減到最低,并能平順地于中斷和恢復(fù)繪圖環(huán)境間切換。然而,目前的圖形處理單元架構(gòu)無(wú)法妥善地處理環(huán)境的同步化,反而造成管線的完全清空(flush),因而使得操作效率低下及降低繪圖能力。
再者,當(dāng)圖形處理單元描繪的表面將成為下一流程的來(lái)源表面時(shí),這樣的多流程描繪(multi-pass rendering)亦牽涉到同步操作,以避免當(dāng)?shù)诙鞒涕_(kāi)始存取共享表面時(shí)所產(chǎn)生的寫(xiě)后讀(read after write,RAW)數(shù)據(jù)問(wèn)題,再者,當(dāng)圖形處理單元根據(jù)中央處理單元執(zhí)行緒(thread)內(nèi)的事件及目前圖形處理單元環(huán)境開(kāi)始和/或恢復(fù)某一環(huán)境執(zhí)行時(shí),中央處理單元工作執(zhí)行的同步化亦為目前圖形處理單元處理實(shí)務(wù)的一重要議題,然而,目前的中央處理單元卻無(wú)法適時(shí)地傳遞及響應(yīng)此種變化,其發(fā)展尚無(wú)法跟上繪圖應(yīng)用程序的需求。
因此,迄今仍有需要克服以上所述的這種缺陷和缺點(diǎn)。
發(fā)明內(nèi)容
一種使用于應(yīng)用程序及繪圖管線間的高階同步方法包含一步驟一指定組件接收從中央處理單元送出的一輸入流內(nèi)的應(yīng)用程序指令,此指定組件可為一命令流處理器(command stream processor,CSP),命令流處理器的第一部分耦接至繪圖管線內(nèi)的次一組件,第二部分則耦接至繪圖管線的多個(gè)組件,第一部分會(huì)將與應(yīng)用程序指令相關(guān)的命令傳送到繪圖管線中的次一組件或是其它與其相耦接的組件,待稍后執(zhí)行此接收的命令后,將通過(guò)反饋路徑輸出一應(yīng)答信號(hào)給命令流處理器的第二部分,于一非限定實(shí)施例中,可由命令流處理器接收及執(zhí)行的該應(yīng)用程序指令包含檢查表面錯(cuò)誤(check surfacefault)指令、陷阱中斷(trap)指令、等候(wait)指令、信號(hào)指令、內(nèi)部暫停(internalstall)指令、瀏覽(flip)指令、觸發(fā)(trigger)指令等等。
如果應(yīng)用程序指令是檢查表面錯(cuò)誤指令,從命令流處理器送出一命令給一接受組件,使其檢查虛擬存儲(chǔ)器,并確認(rèn)繪圖管線內(nèi)將執(zhí)行的特定環(huán)境所需的所有表面是否可用,如果虛擬存儲(chǔ)器缺乏執(zhí)行特定環(huán)境的所需表面,則命令流處理器會(huì)中斷該特定環(huán)境,并切換執(zhí)行一個(gè)新環(huán)境。
產(chǎn)生一中斷指令,從其它儲(chǔ)存位置取回沒(méi)有儲(chǔ)存在虛擬存儲(chǔ)器內(nèi)的所有表面,當(dāng)虛擬存儲(chǔ)器取回所有表面并可供存取,命令流處理器可以恢復(fù)執(zhí)行先前中斷的環(huán)境。
如果應(yīng)用程序指令為一陷阱中斷指令,命令流處理器會(huì)從第一部分(已知可為前端部分)傳送一陷阱中斷符記(trap token)給繪圖管線中的次一組件,之后,陷阱中斷符記會(huì)通過(guò)繪圖管線傳送到繪圖管線最后階段組件,于一非限定實(shí)施例中,繪圖管線最后階段組件可為一寫(xiě)回(write back)單元。
然后繪圖管線最后階段單元會(huì)將陷阱中斷符記傳回命令流處理器中用來(lái)接收此類信號(hào)的第二部分(已知可為后端部分),接著,當(dāng)命令流處理器的第二部分接收到此陷阱中斷符紀(jì),便會(huì)產(chǎn)生一中斷訊息給中央處理單元,中央處理單元在接收到此中斷訊息后,會(huì)識(shí)別與繪圖管線中指定命令或數(shù)據(jù)(如給定環(huán)境)的處理結(jié)束有關(guān)的中斷訊息,同樣地,命令流處理器會(huì)將有關(guān)陷阱中斷符記的識(shí)別信息存入存儲(chǔ)器中。
如果應(yīng)用程序指令為一等候指令,當(dāng)命令流處理器辨識(shí)到中央處理單元送出的輸入流內(nèi)有等候指令,便會(huì)檢查一計(jì)數(shù)器,以判斷計(jì)數(shù)器的值是否大于或等于一臨限值,臨限值可以是零值或其它的預(yù)定值,如果計(jì)數(shù)值大于該臨限值,命令流處理器會(huì)減少計(jì)數(shù)值,繼續(xù)執(zhí)行與目前繪圖環(huán)境相關(guān)的指令;如果計(jì)數(shù)值等于臨限值,則命令流處理器(或部分的命令流處理器)會(huì)將目前的繪圖環(huán)境切換至另一繪圖環(huán)境,此環(huán)境可能是環(huán)境列表中的一組指令,每一個(gè)環(huán)境會(huì)針對(duì)有關(guān)對(duì)象而對(duì)應(yīng)不同組的指令,在切換到另一繪圖環(huán)境時(shí),命令流處理器會(huì)重置(reset)指令指針,以執(zhí)行新的繪圖環(huán)境。
于一非限定實(shí)施例中,計(jì)數(shù)器可以是圖形處理單元的內(nèi)部觸發(fā)計(jì)數(shù)器,也可以是位于耦接的視訊存儲(chǔ)器內(nèi)的外部計(jì)數(shù)器。于一非限定實(shí)施例中,計(jì)數(shù)器(不管是在存儲(chǔ)器內(nèi)部或外部)可以是一64位計(jì)數(shù)器,不過(guò),本領(lǐng)域的技術(shù)人員應(yīng)當(dāng)了解可使用其它邏輯位數(shù)的計(jì)數(shù)器。
如果應(yīng)用程序指令為一信號(hào)指令,命令流處理器辨識(shí)到從中央處理單元送出的輸入流內(nèi)含有此種指令,則將計(jì)數(shù)值增加一單位,此計(jì)數(shù)值可以位于信號(hào)命令所含地址內(nèi),之后,如果一預(yù)定位位于一預(yù)定邏輯狀態(tài),同時(shí)計(jì)數(shù)值從第一特定值變成第二特定值,則命令流處理器中斷中央處理單元,于一非限定實(shí)施例中,第一特定值可為0,而第二特定值可為1。
如果應(yīng)用程序指令為一瀏覽指令,命令流處理器可從第一部分送出一瀏覽符記給繪圖管線中的次一組件,如三角形設(shè)定單元(triangle setup unit),瀏覽符記會(huì)移往繪圖管線的最后階段組件,如寫(xiě)回單元,然后繪圖管線的最后階段組件會(huì)將瀏覽符記傳送給用來(lái)接收此信號(hào)的命令流處理器的第二部分(或后端部分)。
當(dāng)命令流處理器接收到瀏覽符記,便會(huì)進(jìn)入等候模式等待從顯示接口單元發(fā)出的信號(hào),顯示接口單元可以是一種在繪圖管線中與命令流處理器耦接的單元或組件,命令流處理器也可以利用與瀏覽符記相關(guān)的數(shù)據(jù)來(lái)規(guī)劃顯示接口單元的預(yù)定緩存器。
為了避免暫停繪圖管線內(nèi)的最后階段組件,命令流處理器可以耦接至用于從最后階段組件接收瀏覽符記的緩沖器,這種緩沖器可以是先進(jìn)先出裝置,可依據(jù)從繪圖管線最后階段組件接收到的瀏覽符記知順序,將瀏覽符記傳送給命令流處理器。
如果命令流處理器可執(zhí)行的應(yīng)用程序指令為一屏蔽指令,屏蔽指令使命令流處理器檢查指定計(jì)數(shù)器,判斷計(jì)數(shù)器的值是否等于一預(yù)定值,于一非限定實(shí)施例中,此預(yù)定值可為0,如果等于此預(yù)定值,則命令流處理器檢查是否從預(yù)定單元(如顯示接口單元)接收到預(yù)定信號(hào),命令流處理器會(huì)暫停不處理接下來(lái)的操作,一直等到從預(yù)定單元接收到信號(hào)為止。如果命令流處理器檢查到計(jì)數(shù)值大于此預(yù)定值(如前述為0),則命令流處理器將計(jì)數(shù)值減一。
命令流處理器也可用于接收輸入流中的觸發(fā)指令,而對(duì)應(yīng)一預(yù)定的響應(yīng),于一非限定實(shí)施例中,命令流處理器可輸出一操作碼給目標(biāo)組件,于一非限定實(shí)施例中,目標(biāo)組件可以是圖形處理單元內(nèi)的任何單元,當(dāng)目標(biāo)組件接收到操作碼,操作碼會(huì)指示目標(biāo)組件進(jìn)行預(yù)定的操作,于一非限定實(shí)施例中,預(yù)定操作可以是預(yù)載(preload)操作、清空(flush)操作、排出(drain)操作等等。
根據(jù)觸發(fā)指令的種類,命令流處理器可能暫?;虿粫和2僮鳎钡酵瓿捎|發(fā)指令所指定的操作為止,這種操作可能由繪圖管線內(nèi)命令流處理器以外的一個(gè)或多個(gè)組件來(lái)執(zhí)行,所以命令流處理器可以等候并持續(xù)檢查等候屏蔽(計(jì)數(shù)器)的狀態(tài),判斷其是否消失,如果消失,則命令流處理器恢復(fù)輸入流內(nèi)的處理操作。
上述特征非用于限制本發(fā)明,而僅為非限定的范例,后面將計(jì)劃附圖更詳細(xì)的說(shuō)明。
圖1為具有一計(jì)算機(jī)的一計(jì)算機(jī)系統(tǒng)的示意圖。
圖2示出了圖1中處理單元所執(zhí)行的中央處理單元應(yīng)用程序及圖形處理單元所執(zhí)行的圖形處理單元環(huán)境間的關(guān)系。
圖3為圖形處理單元繪圖管線的示意圖,其可存在于圖1所示的圖形處理單元中,并且可包含固定功能與可程序化單元,這種單元通過(guò)傳遞不同數(shù)據(jù)結(jié)構(gòu)的多重先進(jìn)先出裝置而彼此連接。
圖4為圖3圖形處理單元繪圖管線的非限定實(shí)施方式示意圖。
圖5為圖4中命令流處理器的部分示意圖,說(shuō)明檢查表面錯(cuò)誤命令或指令的功能操作。
圖6圖6為圖4中命令流處理器的部分示意圖,說(shuō)明陷阱中斷命令或指令的功能操作。
圖7為圖4中命令流處理器的部分示意圖,說(shuō)明等候命令或指令的功能操作。
圖8為圖4中命令流處理器的部分示意圖,說(shuō)明信號(hào)命令或指令的功能操作。
圖9為圖4中命令流處理器的部分示意圖,說(shuō)明瀏覽命令或指令的功能操作。
圖10為圖4中命令流處理器的部分示意圖,說(shuō)明內(nèi)部等候(或暫停)命令或指令的功能操作。
圖11為圖4中命令流處理器的部分示意圖,利用等候屏蔽執(zhí)行內(nèi)部等候。
圖12為圖4中命令流處理器的部分示意圖,說(shuō)明其用于命令流處理器導(dǎo)向觸發(fā)命令的操作,該觸發(fā)命令將被一輔助區(qū)塊ID重新導(dǎo)向至管線中的另一區(qū)塊。
圖13為圖1中圖形處理單元84內(nèi)的繪圖管線的部分示意圖。
附圖符號(hào)說(shuō)明計(jì)算機(jī)系統(tǒng)10計(jì)算機(jī)12處理單元16 系統(tǒng)存儲(chǔ)器18系統(tǒng)總線21 只讀存儲(chǔ)器24隨機(jī)存取存儲(chǔ)器26基本輸出入系統(tǒng)27操作系統(tǒng)29 應(yīng)用程序31其它程序模塊33 程序數(shù)據(jù)35硬盤(pán)機(jī)41磁盤(pán)驅(qū)動(dòng)器51磁盤(pán)52 光驅(qū)55光盤(pán)片56使用者輸入接口60指針裝置61 鍵盤(pán)62網(wǎng)絡(luò)接口70 局域網(wǎng)絡(luò)71調(diào)制解調(diào)器72廣域網(wǎng)絡(luò)73遠(yuǎn)程計(jì)算機(jī)80存儲(chǔ)器儲(chǔ)存裝置81圖形接口82 圖形處理單元84遠(yuǎn)程應(yīng)用程序85 視訊存儲(chǔ)器86視訊接口90 顯示器91輸出外圍接口95 打印機(jī)96揚(yáng)聲器97中央處理單元應(yīng)用程序101圖形處理器單元環(huán)境102 分界命令103、107a登錄表104 存儲(chǔ)器表面105等候命令106、107b圖形處理器單元繪圖管線108、110存儲(chǔ)器存取單元109 先進(jìn)先出裝置11 1、112、113命令流處理器114 命令流處理器前端部分114a命令流處理器后端部分114b陰影產(chǎn)生器117屬性設(shè)定單元118 寫(xiě)回單元119
圖形處理單元管線的最后階段121保留緩沖器137 觸發(fā)命令152、154、157、167管線區(qū)塊169具體實(shí)施方式
圖1為一例示非限定的計(jì)算機(jī)系統(tǒng)10的示意圖,其包含一計(jì)算機(jī)12,于此非限制定實(shí)施例中,計(jì)算機(jī)12的組件可包含一處理單元16、一系統(tǒng)存儲(chǔ)器18以及一系統(tǒng)總線21,該系統(tǒng)總線21系將諸如系統(tǒng)存儲(chǔ)器18等不同的系統(tǒng)組件連接于處理單元16,系統(tǒng)總線21可為本領(lǐng)域的技術(shù)人員所知曉的任一種總線結(jié)構(gòu),如存儲(chǔ)器總線或存儲(chǔ)器控制器、外圍裝置總線以及局部總線,就一非限定實(shí)施例而言,這種架構(gòu)可包含外圍組件互連(peripheralcomponent interconnect,PCI)總線、繪圖加速端口(accelerated graphics port,AGP)及/或快速外圍組件互連(PCI Express)總線。
計(jì)算機(jī)12可包含多種計(jì)算機(jī)可讀取的媒介,計(jì)算機(jī)可讀取的媒介可為任一種已知的計(jì)算機(jī)可存取媒介,并且包含易失性和非易失性存儲(chǔ)器,可為可移除或不可移除的存儲(chǔ)器。
系統(tǒng)存儲(chǔ)器18可為易失性和/或非易失性存儲(chǔ)器形式的計(jì)算機(jī)儲(chǔ)存媒介,例如只讀存儲(chǔ)器(read only memory,ROM)24及隨機(jī)存取存儲(chǔ)器(randomaccess memory,RAM)26,只讀存儲(chǔ)器24中可儲(chǔ)存有基本輸出入系統(tǒng)(basicinput/output system,BIOS)27,于一非限定實(shí)施例中,隨機(jī)存取存儲(chǔ)器26可涵括操作系統(tǒng)29、應(yīng)用程序31、其它程序模塊33及程序數(shù)據(jù)35。
計(jì)算機(jī)12亦包含其它可移除/不可移除的易失性/非易失性計(jì)算機(jī)儲(chǔ)存媒介,于一非限定實(shí)施例中,硬盤(pán)機(jī)41可擦寫(xiě)不可移除的非易失性磁性媒介,磁盤(pán)驅(qū)動(dòng)器51可擦寫(xiě)可移除的非易失性磁盤(pán)52,光驅(qū)55則可擦寫(xiě)光盤(pán)片56。
通過(guò)如鍵盤(pán)62及指針裝置61等輸入裝置,使用者可輸入命令及信息給計(jì)算機(jī)12,所述輸入裝置通過(guò)使用者輸入接口60及系統(tǒng)總線21而與處理單元16連接,然而,本領(lǐng)域的技術(shù)人員應(yīng)當(dāng)了解,其它接口及總線結(jié)構(gòu)亦可用于連接這種裝置與計(jì)算機(jī)12,例如并行端口、游戲端口、通用序列總線(universal serial bus,USB)。
一種或多種圖形處理單元(graphics processing unit,GPU)84可通過(guò)系統(tǒng)總線21與圖形接口82信號(hào)連接,于一非限定實(shí)施例中,圖形處理單元84可包含芯片上存儲(chǔ)器儲(chǔ)存裝置,例如緩存器儲(chǔ)存裝置及高速緩存,有必要時(shí),圖形處理單元84亦可與視訊存儲(chǔ)器86信號(hào)連接。
顯示器91或其它類型的顯示裝置亦可通過(guò)視訊接口90與系統(tǒng)總線21連接,視訊接口90亦可與視訊存儲(chǔ)器86信號(hào)連接,除顯示器91外,計(jì)算機(jī)系統(tǒng)10亦可包含其它外圍輸出裝置,例如打印機(jī)96及揚(yáng)聲器97,均可通過(guò)輸出外圍接口95達(dá)成連接的目的。
利用邏輯連接一部或多部遠(yuǎn)程計(jì)算機(jī)80,計(jì)算機(jī)12可于網(wǎng)絡(luò)或分布式環(huán)境中操作,遠(yuǎn)程計(jì)算機(jī)80可為個(gè)人計(jì)算機(jī)、服務(wù)器、路由器、網(wǎng)絡(luò)計(jì)算機(jī)、端末裝置或其它常見(jiàn)的網(wǎng)絡(luò)節(jié)點(diǎn),雖然圖1中僅顯示存儲(chǔ)器儲(chǔ)存裝置81及遠(yuǎn)程應(yīng)用程序85,但遠(yuǎn)程計(jì)算機(jī)80亦可包含許多上述組件,于圖1中所示的邏輯聯(lián)機(jī)包含局域網(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的非限定實(shí)施例中,遠(yuǎn)程計(jì)算機(jī)80可通過(guò)局域網(wǎng)絡(luò)71及網(wǎng)絡(luò)接口70而連接至計(jì)算機(jī)12,同樣地,亦可使用調(diào)制解調(diào)器72及使用者輸入接口60通過(guò)廣域網(wǎng)絡(luò)73將計(jì)算機(jī)12連接至遠(yuǎn)程計(jì)算機(jī)80。
如前所述,于另一環(huán)境處理或操作期間,圖形處理單元84可用以切換處理程序或環(huán)境,在此情形下,圖形處理單元84用以儲(chǔ)存中斷的環(huán)境,以及引發(fā)處理另一環(huán)境,這個(gè)環(huán)境可能是先前中斷及儲(chǔ)存的環(huán)境。
圖形處理單元84可用以支持屬于相同環(huán)境的多重圖形處理單元程序(命令)的循序執(zhí)行,然而,如前所述,為了使圖形處理單元84于處理單元16前后的執(zhí)行同步,可使用多階或同步化程序。
全階存儲(chǔ)器數(shù)據(jù)存取系統(tǒng)同步化可為第一階或高階方法,可同步處理單元16的應(yīng)用程序或驅(qū)動(dòng)程序以及圖形處理單元84執(zhí)行的圖形處理單元環(huán)境。于第二階或中階同步中,存儲(chǔ)器數(shù)據(jù)存取同步化可出現(xiàn)于由圖形處理單元84執(zhí)行的兩個(gè)圖形處理單元環(huán)境之間,因此,如前所述,二個(gè)環(huán)境間的同步化的產(chǎn)生點(diǎn)可恰為其中一個(gè)環(huán)境中斷的場(chǎng)合,以恢復(fù)或引發(fā)另一環(huán)境,另一種情況為第二環(huán)境想要使用同一個(gè)圖形處理單元內(nèi)的第一環(huán)境所產(chǎn)生的存儲(chǔ)器表面(memory surface)數(shù)據(jù),不過(guò)必須等到第一環(huán)境完成有關(guān)此存儲(chǔ)器表面的所有寫(xiě)入操作,第二環(huán)境才能開(kāi)始讀取。于第三階同步中,圖形處理單元84中的管線設(shè)計(jì)成可以同步內(nèi)部的各單元或組件,又稱為較低階的內(nèi)部同步。利用此三階同步方法,處理單元16可與圖形處理單元84前后的執(zhí)行同步,進(jìn)而控制復(fù)雜及循環(huán)的處理操作。
圖2為說(shuō)明圖1中處理單元16所執(zhí)行的中央處理單元應(yīng)用程序101及圖形處理單元84所執(zhí)行的圖形處理單元環(huán)境102的關(guān)系圖,于此非限定實(shí)施例中,將說(shuō)明中央處理單元應(yīng)用程序101及圖形處理單元環(huán)境102間的高階數(shù)據(jù)存取同步方法。
當(dāng)圖形處理單元84接收到由中央處理單元應(yīng)用程序101寫(xiě)入存儲(chǔ)器的圖形處理單元命令及數(shù)據(jù)流緩沖器中的分界(fence)A命令103,執(zhí)行圖形處理單元環(huán)境102的圖形處理單元84會(huì)將分界命令及數(shù)據(jù)寫(xiě)入系統(tǒng)或圖1的視訊存儲(chǔ)器86的登錄表(registry)104,登錄表104包含具有連續(xù)地址的成對(duì)存儲(chǔ)位置,以存放分界及等候登錄值,將分界命令寫(xiě)入后,如果有關(guān)的分界值和寫(xiě)入值符合預(yù)定要求,則可同步中央處理單元應(yīng)用程序101及圖形處理單元環(huán)境102關(guān)于像素(primitive)和/或存儲(chǔ)器表面105的讀寫(xiě)操作。
中央處理單元應(yīng)用程序101會(huì)嘗試讀取登錄表104的數(shù)據(jù)值,以比對(duì)分界值及等候值,經(jīng)過(guò)比較可以讓中央處理單元應(yīng)用程序101知道圖形處理單元環(huán)境102是否已完成特定操作或指定任務(wù),可讓中央處理單元應(yīng)用程序101利用某些數(shù)據(jù)進(jìn)行額外的處理操作。
接著,圖形處理單元環(huán)境102可以從圖形處理單元命令及數(shù)據(jù)流接收等候A命令106,然后圖形處理單元環(huán)境102會(huì)根據(jù)位于登錄表104中所接收到的等候A命令,進(jìn)行讀取、比較、更新等操作,之后,中央處理單元應(yīng)用程序101會(huì)再次讀取并比較登錄表104的數(shù)據(jù)值,中央處理單元應(yīng)用程序101會(huì)識(shí)別因圖形處理單元環(huán)境102接收到等候A命令106而寫(xiě)入的更新值,中央處理單元應(yīng)用程序101識(shí)別這個(gè)更新值并進(jìn)行其它可能需要或影響存儲(chǔ)器表面105或像素的處理程序,利用這種方式,可以同步中央處理單元應(yīng)用程序101和圖形處理單元84所執(zhí)行的圖形處理單元環(huán)境102,所述即為高階數(shù)據(jù)同步的非限定實(shí)施例。
圖3為圖形處理單元繪圖管線108的示意圖,其可存在于圖1的圖形處理單元中,并且經(jīng)由支持不同數(shù)據(jù)結(jié)構(gòu)的多重先進(jìn)先出裝置去連接數(shù)個(gè)固定功能單元及/或可程序化單元,因?yàn)槎囝愋蛥^(qū)塊具有不只一個(gè)輸入或輸出,故圖形處理單元繪圖管線108的同步就很重要,因此,為了嘗試使圖3的圖形處理單元繪圖管線108同步,應(yīng)認(rèn)可不同類型的數(shù)據(jù)流,以維持像素描繪的順序,以及同步現(xiàn)代圖形處理單元中的二維、三維、視訊及其它信道間的時(shí)序。
于一非限定實(shí)施例中,當(dāng)個(gè)別圖形處理單元環(huán)境通過(guò)圖形處理單元繪圖管線108,假設(shè)欲同步圖3中的環(huán)境1與環(huán)境2,則要利用多個(gè)圖形處理單元環(huán)境中階同步,將環(huán)境1中的分界A同步命令107a寫(xiě)入特定邏輯位置,如存儲(chǔ)存取單元(memory access unit,MXU)109,后面跟著環(huán)境2的等候A同步命令107b,環(huán)境2會(huì)在環(huán)境1之后通過(guò)圖形處理單元繪圖管線108。
為了要將相關(guān)的分界命令107a及等候命令107b寫(xiě)入存儲(chǔ)器存取單元109中,圖形處理單元繪圖管線組件要等到與環(huán)境1相關(guān)的數(shù)據(jù)處理到一指定點(diǎn),再來(lái)有關(guān)環(huán)境2的數(shù)據(jù)可于圖形處理單元繪圖管線108的較高邏輯點(diǎn)(logical point)進(jìn)行處理,藉由此方式,圖形處理單元繪圖管線108可以于兩個(gè)不同的圖形處理單元環(huán)境間進(jìn)行中階數(shù)據(jù)同步,關(guān)于更多有關(guān)內(nèi)部分界及等候的同步命令,請(qǐng)參考有關(guān)的美國(guó)專利申請(qǐng)。
圖4為一圖形處理單元繪圖管線110的示意圖,為圖3中繪圖管線108的另一詳細(xì)表現(xiàn)方式,圖形處理單元繪圖管線110包含多個(gè)先進(jìn)先出裝置,如標(biāo)號(hào)111、112及113所指,可以于管線中傳送同步命令,以可改變圖形處理單元環(huán)境,例如從圖3的環(huán)境1切換到環(huán)境2,此時(shí),于管線中傳送符記(token)或其它類似的命令,讓管線110的組件清空與某一環(huán)境相關(guān)的數(shù)據(jù),好處理與另一環(huán)境相關(guān)的數(shù)據(jù),欲知更多有關(guān)圖形處理單元繪圖管線110的低階同步方式,請(qǐng)參考2005年11月10日申請(qǐng)的美國(guó)專利申請(qǐng)?zhí)?1/270,169的美國(guó)專利申請(qǐng)案,其名稱為「處理多重環(huán)境和運(yùn)行列表的可中斷圖形處理單元以及方法」。
命令流處理器114可以是位于圖形處理單元繪圖管線110最前方的組件,以控制整個(gè)圖形處理單元繪圖管線110,命令流處理器114執(zhí)行前述的高階及中階同步程序,也可以產(chǎn)生數(shù)個(gè)內(nèi)部符記以進(jìn)行圖形處理單元繪圖管線內(nèi)部的低階同步成序,因此,命令流處理器114可配合與前述各階同步程序有關(guān)的指令。
于一非限定實(shí)施例中,可于命令流處理器114中設(shè)定一些指令,以執(zhí)行前述各階同步程序,各指令列示如下
后面將會(huì)針對(duì)這些由命令流處理器114執(zhí)行的命令做進(jìn)一步的說(shuō)明,下列為命令流處理器114的同步命令格式
如前所述,檢查表面錯(cuò)誤(或檢查錯(cuò)誤)命令提供高階同步的方式,來(lái)檢查虛擬存儲(chǔ)器(virtual memory,VM)中所有表面的可用度,以供執(zhí)行特定的圖形處理單元環(huán)境,這個(gè)命令通常用在圖形處理單元繪圖管線110所執(zhí)行的環(huán)境的開(kāi)頭處,如果跟此環(huán)境相關(guān)的某些表面不能使用,則檢查表面錯(cuò)誤命令會(huì)使得虛擬存儲(chǔ)器加載這些表面,于此實(shí)施例中,當(dāng)虛擬存儲(chǔ)器加載表面的同時(shí),會(huì)中斷目前的環(huán)境,并切換執(zhí)行另一環(huán)境,命令流處理器114會(huì)配合存儲(chǔ)器存取單元109,其中存儲(chǔ)器存取單元109可支持虛擬存儲(chǔ)器機(jī)制,使處理單元16(或其它中央處理單元)中斷,以配合虛擬存儲(chǔ)器機(jī)制。
圖5為圖4中圖形處理單元繪圖管線110的部分示意圖,命令流處理器114可以接收?qǐng)D形處理單元命令流,為了判斷與圖形處理單元命令流所指定的特定圖形處理單元環(huán)境相關(guān)的表面的可用性,命令流處理器114會(huì)檢查存儲(chǔ)器存取單元109的頁(yè)面項(xiàng)登錄表內(nèi)的表面地址。
如前所述,如果與環(huán)境相關(guān)的表面還不能使用,則檢查表面錯(cuò)誤命令會(huì)使存儲(chǔ)器存取單元109加載視訊存儲(chǔ)器或其它存儲(chǔ)器所儲(chǔ)存的表面,于此同時(shí),存儲(chǔ)器存取單元109中斷中央處理單元(圖1的處理單元16)以獲得這些還不能使可用的表面,同時(shí),存儲(chǔ)器存取單元109會(huì)將命令傳回命令流處理器114(如圖5所示),以中斷缺乏部分表面的環(huán)境,使命令流處理器114暫時(shí)切換到另一環(huán)境,藉此,檢查表面錯(cuò)誤命令使得命令流處理器114切換至另一準(zhǔn)備好的環(huán)境,如此可增加圖形處理單元繪圖管線110的整體效率以及速度。
另說(shuō)明陷阱中斷指令,當(dāng)陷阱中斷指令通過(guò)圖形處理單元繪圖管線110的某個(gè)組件(如寫(xiě)回單元組件,位于圖4中圖形處理單元繪圖管線110的末端組件),便會(huì)產(chǎn)生中央處理單元中斷信號(hào),尤其是陷阱中斷命令可用于通知中央處理單元應(yīng)用程序,當(dāng)陷阱中斷命令到達(dá)圖形處理單元管線的最后階段,便可讓中央處理單元應(yīng)用程序知道圖形處理單元84內(nèi)的命令或數(shù)據(jù)組處理已經(jīng)結(jié)束。
圖6為圖4中命令流處理器的部分示意圖,說(shuō)明陷阱中斷命令的功能操作,于此非限定實(shí)施例中,命令流處理器114具有前端部分(第一部分)114a和后端部分(第二部分)114b,如圖6所示,命令流處理器前端部分114a可接收?qǐng)D形處理單元命令流。
如圖6所示,當(dāng)數(shù)據(jù)及命令從命令流處理器前端部分114a被推入圖形處理單元繪圖管線110后,命令流處理器前端部分114a可以插入一陷阱中斷符記(或類似的命令或識(shí)別碼),表示數(shù)據(jù)及/或命令結(jié)束,如前所述,當(dāng)圖形處理單元繪圖管線110中的某個(gè)處理區(qū)塊或最后處理區(qū)塊針對(duì)命令或數(shù)據(jù)組的處理結(jié)束,則該區(qū)塊(或組件,如圖形處理單元繪圖管線的最后階段121)會(huì)將陷阱中斷符記傳回命令流處理器114之后端部分114b。
命令流處理器后端部分114b便會(huì)通知中央處理單元(圖1的處理單元16),如圖6所示,命令流處理器后端部分114b也會(huì)將對(duì)應(yīng)陷阱中斷符記的一陷阱中斷ID寫(xiě)入存儲(chǔ)器86的事件歷史緩沖器,供后續(xù)程序參考。
等候指令是一種能插入直接存儲(chǔ)器存取流的指令,通知命令流處理器114要檢查一特定計(jì)數(shù)器的值,于此非限定實(shí)施例中,計(jì)數(shù)器可為64位計(jì)數(shù)器,圖7為圖6中命令流處理器前端部分114a的示意圖,其為圖4中命令流處理器114的一部分。
于一非限定實(shí)施例中,如果計(jì)數(shù)值為一非零值,則命令流處理器114要減少計(jì)數(shù)值并且繼續(xù)執(zhí)行目前的圖形處理單元環(huán)境;于一非限定實(shí)施例中,如果計(jì)數(shù)值是零,命令流處理器114會(huì)在等候指令前重置目前圖形處理單元環(huán)境的指令指針,然后切換到運(yùn)行列表(runlist)中的下一個(gè)環(huán)境,運(yùn)行列表包含圖形處理單元84所要執(zhí)行的數(shù)個(gè)環(huán)境,當(dāng)圖形處理單元環(huán)境因應(yīng)一等候指令而必須停止并于稍后再重新安排,在可能沒(méi)有滿足等候條件的情況下,命令流處理器114會(huì)再次執(zhí)行等候指令。
于圖7中,如果計(jì)數(shù)值(如圖中的內(nèi)部觸發(fā)計(jì)數(shù)器(flip counter,F(xiàn)C)的值)等于1或其它非零的臨限值,則命令流處理器前端部分114a會(huì)根據(jù)圖形處理單元84內(nèi)部的觸發(fā)計(jì)數(shù)器而不是外部存儲(chǔ)器的部分(如存儲(chǔ)器86)執(zhí)行指令,于一實(shí)施例中,減少觸發(fā)計(jì)數(shù)值并繼續(xù)執(zhí)行目前的環(huán)境;當(dāng)接收到一等候指令,計(jì)數(shù)值等于零,命令流處理器前端部分114a切換到運(yùn)行列表中的另一環(huán)境,并重置(reset)新環(huán)境的指令指針,指令指針可指出目前要執(zhí)行的指令。
除了檢查內(nèi)部觸發(fā)計(jì)數(shù)器,等候指令也可以使命令流處理器前端部分114a檢查存儲(chǔ)器86內(nèi)的計(jì)數(shù)器,于一非限定實(shí)施例中,檢查存儲(chǔ)器86內(nèi)的計(jì)數(shù)器的值是否不等于零,其方式與前述類似,不同處在于執(zhí)行外部等候命令是外部存儲(chǔ)器的存取操作,而內(nèi)部觸發(fā)計(jì)數(shù)器則保留在圖形處理單元84內(nèi),使得其操作較為快速。
等候指令的命令可為下列形式
第16位FC-觸發(fā)計(jì)數(shù)器0=操作外部64位計(jì)數(shù)器的命令
1=操作內(nèi)部計(jì)數(shù)器的命令第25-24位DWF-DWORD數(shù)目,為00或01地址[31:0]
第0位TD-關(guān)閉虛擬-實(shí)體地址轉(zhuǎn)換0=存儲(chǔ)器存取單元將轉(zhuǎn)換此地址1=存儲(chǔ)器存取單元不會(huì)轉(zhuǎn)換此地址除了等候指令,命令流處理器114可用于信號(hào)操作,圖8為圖4中命令流處理器114的部分示意圖,可用于執(zhí)行信號(hào)指令。
數(shù)據(jù)流中可插入一信號(hào)指令以通知圖形處理單元84必須要更新特定地址上的64位計(jì)數(shù)器的值,如圖8所示,命令流處理器前端部分114a可以接收?qǐng)D形處理單元命令流中的信號(hào)指令,當(dāng)接收到指令,命令流處理器前端部分114a會(huì)將64位計(jì)數(shù)器的值加1(或是其它預(yù)定的增量),其中,計(jì)數(shù)器也可以位于圖1的存儲(chǔ)器86內(nèi)。
于此非限定實(shí)施例中,命令流處里器前端部分114a會(huì)忽略在加法運(yùn)算中的潛在溢位(overflow),如果于指令中有一中斷位(或其它預(yù)定位),命令流處理器前端部分114a也會(huì)發(fā)出一中央處理單元中斷指令給處理單元16(相當(dāng)于圖8中的中央處理單元),于一非限定實(shí)施例中,當(dāng)新(增量)計(jì)數(shù)值為1,即數(shù)值恰好從0轉(zhuǎn)變成1(或從第一特定值轉(zhuǎn)變成第二特定值)時(shí),會(huì)送出中央處理單元中斷指令,命令流處理器前端部分114a所接收到的這個(gè)信號(hào)指令有一參數(shù),可以是必須更新的計(jì)數(shù)值的虛擬地址,本范例中所使用的計(jì)數(shù)器為64位。
信號(hào)指令的命令可為下列形式
第15位INT 0→1轉(zhuǎn)變時(shí)中斷;于此信號(hào)指令的執(zhí)行方式中,當(dāng)計(jì)數(shù)值從0變成1時(shí),發(fā)出中斷要求第25-24位DWF為DWORD數(shù)目,其值為1地址[31:0]
第0位TD-關(guān)閉轉(zhuǎn)換0=存儲(chǔ)器存取單元109將轉(zhuǎn)換此地址1=存儲(chǔ)器存取單元109不會(huì)轉(zhuǎn)換此地址第31-3位排列的地址圖4的命令流處理器114還可以執(zhí)行瀏覽指令,圖9為圖4中命令流處理器的部分示意圖,可執(zhí)行瀏覽命令或指令,當(dāng)命令流處理器114接收到一預(yù)定同步信號(hào),瀏覽指令可設(shè)定一顯示接口單元(display interface unit,DIU)緩存器,瀏覽指令(或命令)會(huì)通過(guò)圖形處理單元繪圖管線110,然后回傳到命令流處理器后端部分114b,命令流處理器114會(huì)等候從顯示接口單元送出的特定同步信號(hào)到達(dá),然后命令流處理器114可以利用命令中的數(shù)據(jù)規(guī)劃特定的顯示接口單元緩存器。
瀏覽指令可為下列形式
第0位SHOW-顯示供后端瀏覽操作的畫(huà)面第1位SS2-垂直同步第2位SS1-垂直同步第3位HS1-水平同步第4位PS2-垂直同步第5位PS1-垂直同步第6位HS2-水平同步第13-7位瀏覽ID-供前端瀏覽操作的用,當(dāng)解析事件歷史緩沖器時(shí),驅(qū)動(dòng)器可使用瀏覽ID第14位FE-前端,識(shí)別前端及后端瀏覽命令第15位INT-供前端瀏覽操作的用,命令流處理器在瀏覽執(zhí)行時(shí),向中央處理單元發(fā)出一中斷要求第23-16位ADDR-欲規(guī)劃的第一顯示接口單元緩存器的起始地址第25-24位DWF-欲規(guī)劃的緩存器數(shù)目(最大為3,前端瀏覽時(shí)值為1)為了避免暫停圖形處理單元繪圖管線的最后階段單元121,如圖9所示,命令流處理器后端部分114b可以具有一保留緩沖器(可為一先進(jìn)先出裝置)137以儲(chǔ)存特定數(shù)量的瀏覽+分界指令對(duì),其中,分界命令或指令可用于區(qū)分環(huán)境、指令、數(shù)據(jù)等。
保留緩沖器137中可儲(chǔ)存一等候指令,供同步瀏覽命令(或指令)利用,如果瀏覽指令后面緊接分界或其它預(yù)定命令,分界命令會(huì)和瀏覽命令在保留緩沖器137中堆棧在一起,所有接下來(lái)的瀏覽+分界指令對(duì)也會(huì)堆棧在保留緩沖器137中。
如果保留緩沖器137中儲(chǔ)存有具有相同ADDR值的瀏覽指令,如同于前述非限定實(shí)施例的地址格式,則命令流處理器114會(huì)使其中較早的瀏覽指令無(wú)效,為了避免命令流處理器114使較早的瀏覽指令無(wú)效,可于命令中加入一SHOW位,具有SHOW位(第0位)的瀏覽指令不會(huì)被命令流處理器114丟棄。
當(dāng)執(zhí)行一瀏覽命令或指令,觸發(fā)計(jì)數(shù)值會(huì)增加,如前所述,也可以利用一補(bǔ)碼等候命令或指令使觸發(fā)計(jì)數(shù)值減少。
命令流處理器114亦能執(zhí)行內(nèi)部等候(或暫停)指令,當(dāng)?shù)群驈娘@示接口單元送出的顯示回掃信號(hào)(display retrace signal)以及預(yù)先檢查觸發(fā)計(jì)數(shù)器,或是清除觸發(fā)指令預(yù)先設(shè)定的等候屏蔽,內(nèi)部暫停指令可以先暫停命令流處理器114,當(dāng)命令流處理器114接收到這些信號(hào),可以繼續(xù)圖形處理單元命令流。
圖10為命令流處理器114的示意圖,利用等候屏蔽或計(jì)數(shù)器執(zhí)行內(nèi)部暫停指令,當(dāng)?shù)群驈娘@示接口單元送出的顯示回掃信號(hào),內(nèi)部暫停指令可以先暫停命令流處理器114,當(dāng)圖形處理單元命令流進(jìn)入命令流處理器前端部分114a,命令流處理器前端部分114a會(huì)檢查觸發(fā)計(jì)數(shù)器,確定觸發(fā)計(jì)數(shù)值是否為0或其它的預(yù)定值,觸發(fā)計(jì)數(shù)器可以是命令流處理器114的內(nèi)部觸發(fā)計(jì)數(shù)器,或是在圖形處理單元84的其它位置,為一64位計(jì)數(shù)器。
如圖10所示,如果觸發(fā)計(jì)數(shù)值不等于0,則命令流處理器前端部分114a會(huì)減少計(jì)數(shù)值,并且執(zhí)行圖形處理單元命令流中的下一指令,換句話說(shuō),于此非限定實(shí)施例中,沒(méi)有啟動(dòng)任何內(nèi)部暫停。
如果觸發(fā)計(jì)數(shù)值等于0,則命令流處理器前端部分114a會(huì)等候從顯示接口單元(或其它預(yù)定單元)送出的顯示回掃信號(hào)(或其它信號(hào)),如圖10所示,命令流處理器前端部分114a會(huì)檢查是否接收到從顯示接口單元送出的顯示回掃信號(hào),如果命令流處理器前端部分114a沒(méi)有從顯示接口單元接收到顯示回掃信號(hào),則命令流處理器前端部分114a會(huì)暫停,持續(xù)到從顯示接口單元接收到顯示回掃信號(hào)為止;當(dāng)接收到顯示回掃信號(hào),命令流處理器前端部分114a會(huì)繼續(xù)操作,執(zhí)行圖形處理單元命令流的下一個(gè)指令。
命令流處理器前端部分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ā)計(jì)數(shù)器狀態(tài)暫停第16位FC-觸發(fā)計(jì)數(shù)器0=不受最佳觸發(fā)計(jì)數(shù)器狀態(tài)的影響1=如果觸發(fā)計(jì)數(shù)值為0,暫停命令流處理器,接著等候直到狀態(tài)改變;否則減少計(jì)數(shù)值并繼續(xù)程序等候標(biāo)志(屏蔽)暫?;蛲瓿晒芫€清空命令第18位WM-等候屏蔽0=不必等待等候屏蔽值變成01=等待等候屏蔽值變成0第25-24位DWF=00于此非限定實(shí)施例中,命令流處理器等后屏蔽系以第18位表示,可使軟件驅(qū)動(dòng)器同步命令流處理器114以接收?qǐng)D形處理單元繪圖管線110的信息,可以藉由通過(guò)圖形處理單元繪圖管線110并回傳至命令流處理器114的一觸發(fā)命令設(shè)定及清除等候屏蔽。
圖11為使用命令流處理器等候屏蔽的示意圖,其中命令流處理器114會(huì)等待存儲(chǔ)器存取單元109將所有的緩存器傳回命令流處理器儲(chǔ)存緩沖器,如前所述,于一非限定實(shí)施例中,可利用命令流處理器觸發(fā)「設(shè)定等候」命令來(lái)設(shè)定命令流處理器等候屏蔽位(如第18位)或計(jì)數(shù)器,因此存儲(chǔ)器存取單元觸發(fā)「轉(zhuǎn)儲(chǔ)暫存」命令(此為一非限定的名稱)將被傳送至存儲(chǔ)器存取單元109,之后命令流處理器「后端」觸發(fā)「清除等候」命令將通過(guò)存儲(chǔ)器存取單元109,以清除指定位(或減少計(jì)數(shù)器值),于此非限定實(shí)施例中,指定位為第18位。
然后,可發(fā)出一命令流處理器內(nèi)部等候(或暫停)命令,以等待清除命令流處理器114等候屏蔽(或計(jì)數(shù)器),這個(gè)命令順序會(huì)使命令流處理器114暫停解析輸入命令流,直到接收到所有的存儲(chǔ)器存取單元109的緩存器而且命令流處理器觸發(fā)符記通過(guò)存儲(chǔ)器存取單元109為止,然而,熟悉此技藝者可知,所舉存儲(chǔ)器存取單元109為非限定實(shí)施例,吾等亦可使用圖形處理單元繪圖管線110中的一個(gè)或多個(gè)其它區(qū)塊或組件。
圖11顯示用于執(zhí)行一內(nèi)部等候屏蔽的一非限定程序流程,可應(yīng)用于圖4的圖形處理單元繪圖管線中,先定義一個(gè)欲與命令流處理器前端部分114a同步的管線區(qū)塊,可使得定義的管線區(qū)塊在命令流處理器前端部分114a繼續(xù)命令解析前完成一些操作,如圖11所示,可將觸發(fā)命令152送至命令流處理器前端部分114a,于此非限定實(shí)施例中,觸發(fā)命令152可設(shè)定等候屏蔽位(如前述第18位)或計(jì)數(shù)器為一預(yù)定狀態(tài),于此非限定實(shí)施例中,可將一存儲(chǔ)器存取單元觸發(fā)「轉(zhuǎn)儲(chǔ)暫存」命令154傳送至存儲(chǔ)器存取單元109以觸發(fā)某些操作,命令流處理器前端部分114a根據(jù)接收與存儲(chǔ)器存取單元109有關(guān)的命令154,可以送出一組命令定義特定區(qū)塊的操作。
命令流處理器前端部分114a可接收下一個(gè)觸發(fā)命令157,并將其傳送給存儲(chǔ)器存取單元109,再傳給命令流處理器后端部分114b,如圖11所示,這個(gè)命令157可包含一清除等候屏蔽(或減少計(jì)數(shù)值)選項(xiàng),存儲(chǔ)器存取單元109在接收到與清除等候屏蔽位(其系的前由命令152所設(shè)定)有關(guān)的觸發(fā)命令后,會(huì)將其傳送給命令流處理器后端部分114b,命令流處理器114于接收到觸發(fā)命令152時(shí)進(jìn)行等候操作,直到接收到等候清除命令157為止,而存儲(chǔ)器存取單元109要等到完成觸發(fā)「轉(zhuǎn)儲(chǔ)暫存」命令154,才會(huì)傳送等候清除命令157。
如此,存儲(chǔ)器存取單元109最后傳送等候清除指令157給命令流處理器后端部分114b的等候屏蔽緩存器,這種候屏蔽緩存器與命令流處理器前端部分114a的對(duì)應(yīng)緩存器相關(guān),藉此,在接收到所有的存儲(chǔ)器存取單元109緩存器,同時(shí)命令流處理器觸發(fā)符記(于此實(shí)施例中為等候清除命令157)通過(guò)存儲(chǔ)器存取單元109之后,命令流處理器114可以有效地暫停解析輸入命令流。
如前面有關(guān)等候(或暫停)指令的說(shuō)明,命令流處理器114可以執(zhí)行觸發(fā)功能或指令,觸發(fā)指令可讓命令流處理器114開(kāi)始一預(yù)載、無(wú)效、清空、排出、清除、自動(dòng)清除操作或其它針對(duì)圖4中圖形處理單元繪圖管線110內(nèi)的不同區(qū)塊或單元的操作,所列的位格式為一非限定實(shí)施例,目的在顯示命令流處理器114如何于圖形處理單元繪圖管線110內(nèi)的一個(gè)或多個(gè)組件中觸發(fā)事件(即預(yù)載、無(wú)效、清空等等)。
第7-0位觸發(fā)位;指定要執(zhí)行的操作。
第14-10位區(qū)塊ID;指定位于圖形處理單元繪圖管線110中的特定區(qū)塊,接收觸發(fā)命令后進(jìn)行預(yù)定操作。
第20-16位輔助區(qū)塊ID;這些位指定圖形處理單元繪圖管線110內(nèi)的其它區(qū)塊,這個(gè)信息和區(qū)塊ID有關(guān),當(dāng)?shù)?1位的BE設(shè)定成1,可傳送命令給此區(qū)塊,如果BE設(shè)定成0,則忽略此輔助區(qū)塊ID位。
第21位BE(后端);這個(gè)位對(duì)應(yīng)命令流處理器「后端」觸發(fā),可以和輔助區(qū)塊ID(第20-16位)一起通過(guò)圖形處理單元繪圖管線110,然后回傳到命令流處理器,以達(dá)成同步目的。
第22位POS(位置);這個(gè)位和命令流處理器114是否要輸出通過(guò)圖形處理單元繪圖管線110的一位置命令有關(guān),以配合對(duì)應(yīng)的觸發(fā)命令。
第25-24位DWF(雙字符域(double word field)),指定這個(gè)命令之后有多少的雙字符,其值根據(jù)接收這個(gè)觸發(fā)命令的區(qū)塊而定,有些區(qū)塊需要較多或較少的雙字符。
這個(gè)觸發(fā)命令可做為多功能內(nèi)部緩沖器管理及同步命令,而被傳送至圖形處理單元繪圖管線110中的多個(gè)單元(或區(qū)塊),如前所述,此觸發(fā)命令的操作可于觸發(fā)位屏蔽(第7-0位)定義,另外,每一潛在接收區(qū)塊的操作可能因特定管線區(qū)塊的功能性而不同,可應(yīng)用至命令流處理器114、存儲(chǔ)器存取單元109、陰影產(chǎn)生器(shade generator,SG)117、屬性設(shè)定單元(attributesetup unit,ASU)118、寫(xiě)回單元(write back unit,WBU)119及其它圖4中所示區(qū)塊(及其它圖4未繪出,但熟悉此技藝人士可知位于圖形處理單元84的區(qū)塊),因此,接收觸發(fā)命令的每一區(qū)塊可能因其功能性而進(jìn)行不同的操作。
如前所述,于一非限定實(shí)施例中,觸發(fā)命令可以送至命令流處理器114,如前面有關(guān)命令流處理器導(dǎo)向的觸發(fā)命令的說(shuō)明,可同時(shí)配合使用控制位POS(第22位)及后端位BE(第21位)可與輔助區(qū)塊ID位(第20-16位)。
于一非限定實(shí)施例中,下表說(shuō)明幾個(gè)命令流處理器114導(dǎo)向的觸發(fā)命令選項(xiàng)
藉由輔助區(qū)塊ID域(于一非限定實(shí)施例中為第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,于此非限定實(shí)施例中,命令流處理器114會(huì)利用觸發(fā)命令167內(nèi)對(duì)應(yīng)輔助區(qū)塊ID的第20-16位的識(shí)別信息,來(lái)識(shí)別管線區(qū)塊J。
如圖12所示,命令流處理器前端部分114a可以傳送觸發(fā)命令167給圖4中圖形處理單元繪圖管線110內(nèi)的尋址接收管線區(qū)塊J 169,于此非限定實(shí)施例中,命令流處理器114會(huì)利用觸發(fā)命令167內(nèi)對(duì)應(yīng)輔助區(qū)塊ID的第20-16位的識(shí)別信息,來(lái)識(shí)別管線區(qū)塊J。
圖13為繪圖管線的例示圖,包含圖1所示圖形處理單元84的一部分,其中說(shuō)明了命令流處理器前端部分114a如何將觸發(fā)命令傳送給繪圖管線的各組件,可看出與各特定組件配合的各特定命令。
應(yīng)強(qiáng)調(diào)的是,以上所述的具體例及非限定實(shí)施例僅為可能的施行范例,僅用以清楚說(shuō)明本披露的原理,即便對(duì)上述具體例及非限定實(shí)施例施以變化和修飾,然皆不脫此中所述的精神和范圍。所有這種修飾及變化應(yīng)涵括于本發(fā)明的范圍內(nèi),受如附申請(qǐng)專利范圍保護(hù)。
權(quán)利要求
1.一種同步一應(yīng)用程序與一繪圖管線的方法,包含下列步驟一繪圖管線中的一特定組件接收一輸入流內(nèi)的一圖形處理單元指令,該圖形處理單元指令是由該應(yīng)用程序所產(chǎn)生,并根據(jù)一中央處理單元所執(zhí)行的該應(yīng)用程序而被插入該輸入流,該特定組件的第一部分耦接至該繪圖管線的次一組件,該特定組件的第二部分藉由多個(gè)反饋路徑耦接至該繪圖管線內(nèi)的多個(gè)組件;從該第一部分傳送與該圖形處理單元指令有關(guān)的一圖形處理單元命令到該次一組件以及與該特定組件耦接的另一組件中的至少一組件;以及該至少一組件接收與該圖形處理單元指令有關(guān)的該圖形處理單元命令,并執(zhí)行與該圖形處理單元命令相關(guān)的數(shù)個(gè)特定操作。
2.如權(quán)利要求1所述的方法,其中該圖形處理單元指令包含一操作碼部分;以及至少一雙字符部分,其包含一識(shí)別信息、地址信息及數(shù)據(jù)中的至少一項(xiàng)信息。
3.如權(quán)利要求1所述的方法,其中該操作碼部分及該至少一雙字符部分均為32位。
4.如權(quán)利要求1所述的方法,其中該圖形處理單元指令為一檢查表面錯(cuò)誤指令,該檢查表面錯(cuò)誤指令包含下列步驟從該特定組件傳送一圖形處理單元命令給一接收組件,以檢查一虛擬存儲(chǔ)器及決定將于該繪圖管線中執(zhí)行的一特定環(huán)境的所有表面是否可用;當(dāng)該虛擬存儲(chǔ)器沒(méi)有該特定環(huán)境所需的所有表面,中斷該特定組件的該特定環(huán)境,并切換至一新環(huán)境;以及產(chǎn)生一中斷訊息,以取回不在該虛擬存儲(chǔ)器內(nèi)的所有表面。
5.如權(quán)利要求4所述的方法,還包含下列步驟當(dāng)該虛擬存儲(chǔ)器取回所有表面,恢復(fù)中斷的該特定環(huán)境。
6.如權(quán)利要求4所述的方法,其中該中斷訊息被傳送至該中央處理單元。
7.如權(quán)利要求4所述的方法,其中該接收組件為一存儲(chǔ)器存取單元組件。
8.如權(quán)利要求4所述的方法,還包含下列步驟如果該虛擬存儲(chǔ)器包含該特定環(huán)境所需的所有表面,因應(yīng)從該特定組件傳送給該接收組件的該命令,繼續(xù)執(zhí)行該特定環(huán)境。
9.如權(quán)利要求1所述的方法,其中該圖形處理單元指令為一陷阱中斷指令,該陷阱中斷指令還包含下列步驟從該特定組件的該第一部分傳送一陷阱中斷符記給該繪圖管線中的該次一組件,其中該陷阱中斷符記是經(jīng)由該繪圖管線傳送至該繪圖管線的一最后階段組件;藉由一反饋路徑從該最后階段組件傳送該陷阱中斷符記給該特定組件的該第二部分;以及當(dāng)該特定組件的該第二部分接收到該陷阱中斷符記,產(chǎn)生一中斷訊息給該中央處理單元。
10.如權(quán)利要求9所述的方法,其中該中央處理單元接收到該中斷訊息后,識(shí)別與該繪圖管線內(nèi)指定命令或數(shù)據(jù)的處理結(jié)束有關(guān)的中斷訊息。
11.如權(quán)利要求9所述的方法,還包含下列步驟從該特定組件的該第二部分傳送與該陷阱中斷符記有關(guān)的一識(shí)別訊息給一存儲(chǔ)器儲(chǔ)存。
12.如權(quán)利要求1所述的方法,其中該應(yīng)用程序產(chǎn)生圖形處理單元指令為一等候指令,所述候指令還包含下列步驟該特定組件的該第一部分識(shí)別該輸入流內(nèi)的所述候指令;檢查一計(jì)數(shù)器,判斷一計(jì)數(shù)值是否大于或等于一臨限值;當(dāng)該計(jì)數(shù)值大于該臨限值,減少該計(jì)數(shù)值,并繼續(xù)執(zhí)行與目前繪圖環(huán)境有關(guān)的指令;以及當(dāng)該計(jì)數(shù)值等于該臨限值,將該特定組件的該第一部分從該目前繪圖環(huán)境切換至另一繪圖環(huán)境;其中該計(jì)數(shù)器為一觸發(fā)計(jì)數(shù)器,位于包含該圖形管線的一圖形處理單元內(nèi)。
13.如權(quán)利要求12所述的方法,其中該計(jì)數(shù)器位于視訊存儲(chǔ)器內(nèi),該視訊存儲(chǔ)器位于包含該繪圖管線的該圖形處理單元之外。
14.如權(quán)利要求12所述的方法,其中該計(jì)數(shù)器為一64位計(jì)數(shù)器。
15.如權(quán)利要求12所述的方法,還包含下列步驟當(dāng)該特定組件的該第一部分從該目前繪圖環(huán)境切換至另一繪圖環(huán)境,重置一指令指針到一預(yù)定邏輯點(diǎn)。
16.如權(quán)利要求1所述的方法,其中該圖形處理單元指令為一瀏覽指令,該方法還包含下列步驟從該特定組件的該第一部分傳送一瀏覽符記給該繪圖管線內(nèi)的該次一組件,其中該瀏覽符記通過(guò)該繪圖管線而移往該繪圖管線內(nèi)的該最后階段組件;藉由該反饋路徑從該繪圖管線內(nèi)的該最后階段組件傳送該瀏覽符記給該特定組件的該第二部分;該特定組件等候從一顯示接口單元接收一信號(hào);以及利用與該瀏覽符記相關(guān)的數(shù)據(jù)規(guī)劃該顯示接口單元的一緩存器。
17.如權(quán)利要求16所述的方法,還包含下列步驟緩沖從該反饋路徑接收到的數(shù)個(gè)瀏覽符記,其中根據(jù)接收到的一命令,一緩沖器的一輸出將從該反饋路徑接收到的該瀏覽符記傳送給該特定組件的該第二部分。
18.如權(quán)利要求1所述的方法,其中該圖形處理單元指令為一內(nèi)部暫停指令,該方法還包含下列步驟該特定組件的該第一部分接收該暫停指令;檢查一觸發(fā)計(jì)數(shù)器,判斷一計(jì)數(shù)值是否等于一預(yù)定值;當(dāng)該計(jì)數(shù)值等于該預(yù)定值,檢查是否從一預(yù)定單元接收到一預(yù)定信號(hào);以及暫停該特定組件進(jìn)行操作,直到接收到該預(yù)定信號(hào)為止。
19.如權(quán)利要求18所述的方法,還包含下列步驟反復(fù)檢查一等候屏蔽計(jì)數(shù)器;以及當(dāng)所述候屏蔽計(jì)數(shù)器的值不等于一預(yù)定值,暫停該特定組件進(jìn)行操作。
20.如權(quán)利要求18所述的方法,其中該預(yù)定單元為一圖形處理單元內(nèi)的一顯示接口單元。
21.如權(quán)利要求18所述的方法,其中還包含下列步驟當(dāng)該計(jì)數(shù)值大于該預(yù)定值,減量少計(jì)數(shù)值。
22.如權(quán)利要求18所述的方法,其中該預(yù)定值為0。
23.如權(quán)利要求1所述的方法,其中該圖形處理單元指令為一觸發(fā)指令,該方法還包含下列步驟該特定組件的該第一部分接收該觸發(fā)指令;輸出一操作碼指令給該繪圖管線中的一目標(biāo)組件,該目標(biāo)組件耦接于該特定組件的該第一部分;使該目標(biāo)組件執(zhí)行對(duì)應(yīng)該操作碼指令的一編碼部分的一指示操作;當(dāng)執(zhí)行該指示操作,經(jīng)由該反饋路徑從該目標(biāo)組件傳送一應(yīng)答信號(hào)給該特定組件的該第二部分;以及當(dāng)從該反饋路徑上接收到該應(yīng)答信號(hào),執(zhí)行一應(yīng)答操作。
24.如權(quán)利要求23所述的方法,其中該指示操作為一預(yù)載操作、一清空操作、一排出操作、一快取無(wú)效操作或一等候(暫停)屏蔽更新操作。
25.如權(quán)利要求23所述的方法,其中該觸發(fā)指令包含該操作碼指令。
26.如權(quán)利要求23所述的方法,其中該應(yīng)答操作為清除先前于接受到該觸發(fā)指令時(shí)所設(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)的多個(gè)組件,從該第一部分傳送與應(yīng)用程序指令相關(guān)的命令至繪圖管線內(nèi)的次一組件或其它與其耦接的組件,在接收及執(zhí)行該命令之后,藉由反饋路徑將應(yīng)答訊息傳送至命令流處理器的第二部分,命令流處理器能接收及執(zhí)行的應(yīng)用程序指令有檢查表面錯(cuò)誤指令、陷阱中斷指令、等候指令、信號(hào)指令、暫停指令、瀏覽指令、觸發(fā)指令等。
文檔編號(hào)G06T1/20GK1983326SQ20061013659
公開(kāi)日2007年6月20日 申請(qǐng)日期2006年10月26日 優(yōu)先權(quán)日2005年10月26日
發(fā)明者約翰·柏拉勒斯, 黃錫霖, 提莫·佩塔西, 柏瑞斯·柏克潘克, 廖群峰 申請(qǐng)人:威盛電子股份有限公司