專利名稱:信息處理裝置和信息處理方法
技術(shù)領(lǐng)域:
本發(fā)明一般涉及信息處理裝置和信息處理方法。特別是本發(fā)明涉及這樣一種信息處理裝置和信息處理方法,其中,使用多個(gè)CPU同時(shí)產(chǎn)生它們各自指令并根據(jù)指定給所述CPU的優(yōu)先權(quán)將所產(chǎn)生的指令傳輸給繪圖單元以允許所述繪圖單元高效地執(zhí)行繪圖處理。
利用近年來實(shí)現(xiàn)的LSI的更大規(guī)模的集成,可以將多個(gè)相同的電路并行布置在一個(gè)LSI中,以允許提高被執(zhí)行處理的速度。順便說一下,近年來所生產(chǎn)的視頻游戲系統(tǒng)包括一個(gè)中央處理單元(CPU)和一個(gè)繪圖單元。在接收表示將被控制器顯示的多邊形數(shù)據(jù)的基礎(chǔ)上,CPU執(zhí)行兩維或三維的數(shù)據(jù)坐標(biāo)變換并建立一個(gè)用于在兩維幀緩沖器上繪制所述多邊形的繪圖指令表。然后CPU將該表(此后該表被稱之為顯示表)傳送給繪圖單元以根據(jù)所述顯示表繪制所述多邊形。
但是,對于在具有繪圖單元情況下重復(fù)執(zhí)行一定數(shù)據(jù)量的簡單操作的系統(tǒng)來講,采用并行處理技術(shù)改善整個(gè)處理系統(tǒng)更加有效。結(jié)果是和近年來所生產(chǎn)的并行處理繪圖單元比較,所述CPU執(zhí)行處理的速度相對較慢。另外,為了減少三維模型數(shù)據(jù)的數(shù)量,在每當(dāng)執(zhí)行繪圖操作時(shí)都需要根據(jù)很少量的頂點(diǎn)數(shù)據(jù)(控制點(diǎn))產(chǎn)生諸如曲面這樣的復(fù)雜圖形。CPU必須承擔(dān)這種處理負(fù)擔(dān)以產(chǎn)生這種復(fù)雜圖形。結(jié)果是出現(xiàn)了一個(gè)問題,就是不能高效地執(zhí)行繪圖處理。
針對上述問題,本發(fā)明的一個(gè)目的是提供一種信息處理裝置和信息處理方法,所述裝置和方法通過將優(yōu)先權(quán)指定給多個(gè)CPU、使各CPU同時(shí)工作和從由具有最高級優(yōu)先權(quán)的CPU產(chǎn)生的一個(gè)顯示表開始的優(yōu)先權(quán)基礎(chǔ)上對由各所述CPU產(chǎn)生的顯示表進(jìn)行處理,來實(shí)現(xiàn)對數(shù)據(jù)進(jìn)行高效處理。
根據(jù)本發(fā)明權(quán)利要求1的信息處理裝置的特征在于該裝置包括第一產(chǎn)生裝置,用于執(zhí)行處理以產(chǎn)生第一指令;第二產(chǎn)生裝置,用于執(zhí)行處理以產(chǎn)生第二指令;執(zhí)行裝置,用于通過利用預(yù)定時(shí)間從所述第一指令轉(zhuǎn)換到所述第二指令或相反,來執(zhí)行所述第一指令和所述第二指令;第一傳輸裝置,用于將所述第一指令傳輸給所述執(zhí)行裝置;和第二傳輸裝置,用于將所述第二指令傳輸給所述執(zhí)行裝置;其中,當(dāng)所述第一產(chǎn)生裝置正處于處理過程當(dāng)中而所述執(zhí)行裝置處于等待狀態(tài)時(shí),如果存在所述第二指令,則所述第二傳輸裝置將該指令提供給所述執(zhí)行裝置,和所述執(zhí)行裝置在接收到該第二指令時(shí)執(zhí)行所述第二指令。
根據(jù)權(quán)利要求5的信息處理方法的特征在于當(dāng)?shù)谝划a(chǎn)生裝置處于處理過程中而執(zhí)行裝置處于等待狀態(tài)時(shí),如果存在第二指令,第二傳輸裝置將該指令提供給所述執(zhí)行裝置,所述執(zhí)行裝置在接收到所述第二指令時(shí)執(zhí)行該第二指令。
在根據(jù)本發(fā)明的權(quán)利要求1的信息處理裝置中,其中第一產(chǎn)生裝置執(zhí)行一個(gè)處理以產(chǎn)生第一指令;第二產(chǎn)生裝置執(zhí)行一個(gè)處理以產(chǎn)生第二指令;通過利用預(yù)定時(shí)間從所述第一指令到所述第二指令或相反的轉(zhuǎn)換,執(zhí)行裝置執(zhí)行所述第一和第二指令;第一傳輸裝置將所述第一指令傳輸給所述執(zhí)行裝置;和第二傳輸裝置將所述第二指令傳輸給所述執(zhí)行裝置,當(dāng)所述第一產(chǎn)生裝置處于處理過程中而所述執(zhí)行裝置處于等待狀態(tài)時(shí),如果有第二指令,則所述第二傳輸裝置將該第二指令提供給所述執(zhí)行裝置,所述執(zhí)行裝置在接收到所述第二指令時(shí)執(zhí)行所述第二指令。
利用根據(jù)權(quán)利要求5所述的信息處理方法,當(dāng)?shù)谝划a(chǎn)生裝置處于處理過程中而執(zhí)行裝置處于等待狀態(tài)時(shí),如果有第二指令,則第二傳輸裝置將所述第二指令提供給所述執(zhí)行裝置,所述執(zhí)行裝置在接收到所述第二指令時(shí)執(zhí)行所述第二指令。
通過下面參照附圖的詳細(xì)描述,本發(fā)明上述和其它目的、特性和優(yōu)點(diǎn)將變得更加明顯。其中,所述附圖通過實(shí)例示出了本發(fā)明的最佳實(shí)施例。
下面結(jié)合附圖描述本發(fā)明最佳實(shí)施例,其中
圖1示出了一種典型的家庭游戲系統(tǒng)的平面圖,它采用了本發(fā)明提供的信息處理裝置;圖2示出了圖1所示家庭游戲系統(tǒng)的正視圖;圖3示出了圖1所示家庭游戲系統(tǒng)的側(cè)視圖4的平面視圖示出了利用圖1所示家庭游戲系統(tǒng)從中播放信息的典型CD-ROM;圖5示出了圖1所示家庭游戲系統(tǒng)典型內(nèi)部電子結(jié)構(gòu)的框圖;圖6的框圖示出了圖5所示主DMAC46、主CPU44、主存儲(chǔ)器45、第二矢量處理引擎(VPEl)48和GPU49的詳細(xì)結(jié)構(gòu);圖7示出了用于處理由多個(gè)處理器產(chǎn)生的顯示表的過程;圖8的框圖示出了其中用3個(gè)處理器控制GPU49的家庭游戲系統(tǒng)另一種典型結(jié)構(gòu);圖9示出了一個(gè)元指令(meta-instruction)的典型格式;圖10用于解釋根據(jù)所述元指令傳送數(shù)據(jù)的過程;圖11用于解釋根據(jù)所述元指令傳送數(shù)據(jù)的另一個(gè)過程;圖12用于解釋根據(jù)所述元指令傳輸數(shù)據(jù)的進(jìn)一步詳細(xì)的過程;圖13用于解釋根據(jù)顯示表傳送數(shù)據(jù)的過程;圖14用于解釋阻塞控制(stall controll)。
圖1到圖3中的每一個(gè)示出了應(yīng)用了本發(fā)明所提供的信息處理裝置的典型的家庭游戲系統(tǒng)。如這些圖所示,家庭游戲系統(tǒng)除包括操作單元17以外還包括一個(gè)游戲系統(tǒng)主單元2和可以被連接到游戲系統(tǒng)主單元2上的記錄單元38。
如圖1到圖3所示,游戲系統(tǒng)主單元2幾乎是方形的。游戲系統(tǒng)主單元2包括用于在其中心安裝CD-ROM(高密度只讀存貯器)40的盤安裝子單元3、置于游戲系統(tǒng)主單元2上適當(dāng)位置處并由用戶使用任意復(fù)位運(yùn)行應(yīng)用程序的復(fù)位開關(guān)4、用于由用戶使用接通和關(guān)斷電源的電源開關(guān)5、用于使用戶將盤安裝到盤安裝子單元3上的盤工作開關(guān)6和分別位于左右側(cè)用于使用戶將游戲系統(tǒng)主單元2連接到所述操作單元17和記錄單元38上的連接器7A和7B,所述操作單元17用于當(dāng)運(yùn)行一個(gè)應(yīng)用過程時(shí)執(zhí)行操作,而所述記錄單元38用于記錄運(yùn)行應(yīng)用程序時(shí)所設(shè)置的各種信息等等。注意,CD-ROM是如圖4所示的一種光盤。CD-ROM是一種用作運(yùn)行應(yīng)用程序記錄介質(zhì)的盤。
如圖2和3所示,連接器7A和7B中的每一個(gè)都被設(shè)計(jì)成兩級,在連接器7A和7B中每一個(gè)的上一級,提供了用于將游戲系統(tǒng)主單元2插入到記錄單元38的記錄插入部分8。另一方面,在連接器7A和7B每一個(gè)的下一級,提供了用于將游戲系統(tǒng)主單元2連接到操作單元17上的連接器端子插入部分12。
記錄插入部分8包括一個(gè)水平長度的矩形插入孔和一個(gè)用于插入記錄單元38的存貯端。所述存貯端被置于所述孔內(nèi)(圖中未示出)。由于記錄單元38沒有連接到游戲系統(tǒng)主單元2上,所以記錄插入部分8被活門9覆蓋以防止存貯端進(jìn)臟物等,如圖2所示。注意,記錄單元38具有一個(gè)電可變程ROM,主CPU44將應(yīng)用軟件數(shù)據(jù)記錄在其中。
當(dāng)將記錄單元38安裝在游戲系統(tǒng)主單元2上時(shí),用戶使用記錄單元38的末端向記錄插入部分8內(nèi)側(cè)按壓活門9,并將記錄單元38插入到所述插入孔,直到記錄單元38與存貯端相連為止。
如圖2所示,連接器端子插入部分12包括一個(gè)水平長度矩形插入孔和一個(gè)用于將連接器插入部分12連接到操作部分17連接器端部分26的連接器端12A。
如圖1所示,操作單元17所具有的結(jié)構(gòu)使用戶可以用兩手保持和夾持并能夠通過每只手五指的自由運(yùn)動(dòng)進(jìn)行操作。操作單元17包括對稱置于左右側(cè)的操作子單元18和19、和置于操作子單元18和19之間的選擇開關(guān)22和開始開關(guān)23、分別置于操作子單元18和19前面的操作子單元24和25和用于將操作單元17連接到游戲系統(tǒng)主單元2上的連接器26和電纜27。
圖5示出了游戲系統(tǒng)主單元2的典型內(nèi)部電子結(jié)構(gòu)。如圖所示,游戲系統(tǒng)主單元2具有通過子總線接口(SBUSIF)43彼此相互連接的主總線41和子總線42。
連接到主總線41的還有由例如微處理器等構(gòu)件組成的主CPU(中央處理單元)44(表產(chǎn)生裝置)和VPE0(第一矢量處理引擎)71、由RAM(隨機(jī)存取存貯器)構(gòu)成的主存貯器45、主DMA(直接存貯器存取控制器)46(數(shù)據(jù)傳輸裝置)、MDEC(MPEG(運(yùn)動(dòng)圖形專家組)譯碼器)47、VPE1(第二矢量處理引擎)48。另外,GPU(圖形處理單元)49也經(jīng)過GPUIF(圖形處理單元接口)72連接到主總線41上。在GPU49上提供有CRTC(CRT控制器)84。另外,幀存儲(chǔ)器58也被連接到GPU49上。
另一方面,連接到子總線42上的有由諸如微處理器等構(gòu)件構(gòu)成的子CPU50、由RAM構(gòu)成的子存貯器51、子DMAC52、用于存貯諸如一個(gè)操作系統(tǒng)的ROM53、SPU(聲音處理單元)54、通信控制單元(ATM)55、也被用于先前所述盤安裝單元3的CD-ROM驅(qū)動(dòng)器56和輸入單元57。如上所述,輸入單元57的連接器端12A也被連接到操作單元17的連接器端部分26。
由于SBUSIF43被連接到主總線41和子總線42上,所以它將來自主總線41的數(shù)據(jù)傳送給子總線42,反之將來自子總線42的數(shù)據(jù)傳送給主總線41。
當(dāng)游戲系統(tǒng)主單元2被激活時(shí),主CPU44借助于SBUSIF43從連接到子總線42上的ROM53中取出激活程序的指令,并執(zhí)行這些激活程序指令以便激活操作系統(tǒng)。
另外,主CPU44向CD-ROM驅(qū)動(dòng)器56發(fā)出一個(gè)讀數(shù)據(jù)請求以便從安裝在CD-ROM驅(qū)動(dòng)器56上的CD-ROM40取得數(shù)據(jù)和應(yīng)用程序,并將應(yīng)用程序載入到主存貯器45。
此外,和第一矢量處理引擎(VPE0)71一起,主CPU44從CD-ROM40中讀出的包括多個(gè)諸如多邊形的基本圖形的三維對象數(shù)據(jù)中,產(chǎn)生用于非類型處理的數(shù)據(jù),即多邊形規(guī)定信息。三維對象數(shù)據(jù)的一個(gè)例子是多邊形各點(diǎn)頂點(diǎn)或特征點(diǎn)的坐標(biāo)值。VPE0(第一矢量處理引擎)71具有多個(gè)處理單元,用于處理浮點(diǎn)實(shí)數(shù),并能夠并行執(zhí)行多個(gè)浮點(diǎn)處理。
具體地說,主CPU44和VPE0(第一矢量處理引擎)71執(zhí)行一個(gè)幾何處理,該處理要在多邊形單元中執(zhí)行細(xì)節(jié)操作。這種處理的一個(gè)例子是產(chǎn)生一個(gè)多邊形數(shù)據(jù),該數(shù)據(jù)表示樹在風(fēng)吹動(dòng)下樹葉擺動(dòng)的狀態(tài)或雨滴打在汽車前窗的狀態(tài)。然后,通過主總線41將從所述處理中發(fā)現(xiàn)的頂點(diǎn)信息和諸如陰影模式信息的多邊形規(guī)定信息以信息包形式提供給主存貯器45。
所述多邊形規(guī)定信息包括繪圖區(qū)域設(shè)定信息和多邊形信息。所述繪圖區(qū)域設(shè)置信息包括繪圖區(qū)域幀存貯器58中的偏移坐標(biāo),即繪圖區(qū)域的幀存貯器地址,還包括用于取消由處于所述繪圖區(qū)域之外一個(gè)多邊形坐標(biāo)指出的繪圖范圍的繪制操作的繪圖剪切區(qū)域坐標(biāo)。另一方面,所述多邊形信息包括多邊形屬性信息和頂點(diǎn)信息。這里,所述多邊形屬性信息是一個(gè)用于規(guī)定陰影模式、ALPHA混合模式和紋理映像模式的信息。另一方面,所述頂點(diǎn)信息是關(guān)于諸如頂點(diǎn)繪圖區(qū)域中的坐標(biāo)、頂點(diǎn)紋理區(qū)域中的坐標(biāo)以及頂點(diǎn)顏色的信息。
與第一矢量處理引擎(VPE0)71非常類似,第二矢量處理引擎(VPE1)48具有多個(gè)處理單元,用于處理浮點(diǎn)實(shí)數(shù)由此能夠并行執(zhí)行多個(gè)浮點(diǎn)處理。VPE1 48能夠根據(jù)使用操作單元17執(zhí)行的操作和矩陣操作產(chǎn)生一個(gè)圖像,即是說,第二矢量處理引擎(VPE1)48產(chǎn)生用于類型處理的數(shù)據(jù)(多邊形規(guī)定信息),即用于相對簡單地足以通過用執(zhí)行VPE1 48上的一個(gè)程序來執(zhí)行的處理的數(shù)據(jù)。由第二矢量處理引擎(VPE1)48執(zhí)行的這種處理的例子包括用于諸如建筑物或汽車等具有簡單形狀的對象的透視變換、平行光源計(jì)算和兩維曲面的產(chǎn)生。然后,由VPE148產(chǎn)生的多邊形規(guī)定信息被提供給GPUIF72。
受主CPU44控制,GPUIF72還接收經(jīng)過主總線41來自主存貯器45的多邊形規(guī)定信息。為此,GPUIF72調(diào)節(jié)處理定時(shí)以避免來自主CPU44的多邊形規(guī)定信息與由第二矢量處理引擎48提供給它的多邊形規(guī)定信息相沖突,從而將它們傳送給GPU49。
GPU49使用基于由幀存貯器58上通過GPUIF72提供給它的多邊形規(guī)定信息的一個(gè)多邊形繪制表示三維對象的圖像。使用表示三維對象的多邊形繪制的圖像下面稱之為多邊形圖像。由于GPU49還可以將幀存貯器58用作紋理存貯器,所以,GPU49可以執(zhí)行紋理映像處理以將幀存貯器58中的一個(gè)像素圖像作為紋理粘貼在一多邊形上。
主DMAC46的一個(gè)操作是用于控制到和從連接到主總線41上的各種電路的DMA傳輸。另外,根據(jù)SBUSIF43的狀態(tài),主DMAC46的一個(gè)操作還能夠控制到和從連接到子總線42上的各電路的DMA傳輸。MDEC47與主CPU44同時(shí)操作,對根據(jù)MPEG(運(yùn)動(dòng)圖形專家組)或JPEG(聯(lián)合圖片專家組)系統(tǒng)壓縮的數(shù)據(jù)解壓縮。
通過執(zhí)行存貯在ROM53中的程序,子CPU50執(zhí)行各種處理。子DMAC52的一個(gè)操作是控制到和從只有在SBUSIF43與主總線41和子總線42脫離連接時(shí)才連接到子總線42上的各種電路的DMA傳輸。
SPU54從聲音存貯器59中讀出聲音數(shù)據(jù),并根據(jù)從子CPU50或子DMAC52接收的聲音命令輸出作為音頻信號的聲音數(shù)據(jù)。然后,所輸出的音頻信號通過一個(gè)放大器電路201提供給揚(yáng)聲器202,并由揚(yáng)聲器202作為聲音最后輸出。
通信控制單元(ATM)55被連接到公共通信線路等并用于經(jīng)過所述線路傳送和接收數(shù)據(jù)。
輸入單元57包括連接器端12A,用于將操作單元17連接到游戲系統(tǒng)主單元2上;視頻輸入電路82,用于將來自圖中未示出的其它裝置的視頻數(shù)據(jù)提供給游戲系統(tǒng)主單元2;以及音頻輸入電路83,用于將來自所述其它裝置的音頻數(shù)據(jù)提供給游戲系統(tǒng)主單元2。
圖6的框圖詳細(xì)示出了圖5所示的主DMAC46、主CPU44、主存貯器45、第二矢量處理引擎(VPE1)48和GPU49的結(jié)構(gòu)。
如圖6所示,主CPU44包括CPU內(nèi)核(CORE)94,指令高速緩存器(I$)95、高速暫存RAM(SPR)96、數(shù)據(jù)高速緩存器(D$)97和第一矢量處理引擎(VPE0)71。CPU內(nèi)核94執(zhí)行預(yù)定指令。指令高速緩存器95用于暫存要提供給CPU內(nèi)核94的指令。高速暫存RAM96用于存貯由CPU內(nèi)核94執(zhí)行的處理結(jié)果。最后,數(shù)據(jù)高速緩存器97用于暫存將在由CPU內(nèi)核94執(zhí)行處理過程中使用的數(shù)據(jù)。
第一矢量處理引擎(VPE0)71包括微存貯器(microMEM)98、FMAC(浮點(diǎn)并行加法器計(jì)算)單元99、除法器(DIV)100、稱之為VU-MEM的功能單元101和包擴(kuò)展器(PKE)102。VU-MEM101包括一個(gè)浮點(diǎn)矢量處理器單元(VU)和一個(gè)嵌入式存貯器(MEM)。浮點(diǎn)矢量處理器單元執(zhí)行存貯在微存貯器98中微程序的64位微指令(后面詳述),以對存貯在VU和嵌入式存貯器內(nèi)部寄存器中的數(shù)據(jù)進(jìn)行處理。
PKE102根據(jù)在下面詳述的由主DMAC109執(zhí)行的控制將提供給它的微代碼擴(kuò)展成將被作為微程序存貯在微存貯器98中并由所述VU執(zhí)行的微指令,并根據(jù)由主DMAC109執(zhí)行的控制對也提供給它的數(shù)據(jù)包進(jìn)行擴(kuò)展,并將擴(kuò)展后的包存貯到在VU-MEM101中使用的嵌入式存貯器(MEM)中。FMAC(浮點(diǎn)并行加法器計(jì)算)單元99在除法器(DIV)100執(zhí)行除法的同時(shí)執(zhí)行浮點(diǎn)處理。如上所述,第一矢量處理引擎(VPE0)71被嵌入主CPU44之中,該主CPU44和VPE071相結(jié)合執(zhí)行非類型處理。
與第一矢量處理引擎(VPE0)71非常相似,第二矢量處理引擎(VPE1)48包括微存貯器(microMEM)103,F(xiàn)MAC(浮點(diǎn)并行加法器計(jì)算)單元104、除法器(DIV)106、被稱作VU-MEM的功能單元107和包擴(kuò)展器(PKE)108。VU-MEM107包括浮點(diǎn)矢量處理器單元(VU)和嵌入式存貯器(MEM)。浮點(diǎn)矢量處理器單元執(zhí)行存貯在微存貯器(microMEM)103中微程序的64位微指令(后面詳述),以便對存貯在VU和嵌入式存貯器內(nèi)部寄存器中的數(shù)據(jù)進(jìn)行處理。
PKE108根據(jù)由主DMAC46執(zhí)行的控制將提供給它的微代碼擴(kuò)展成將被作為微程序存貯在微存貯器103中并將由VU執(zhí)行的微指令,并根據(jù)由主DMAC46執(zhí)行的控制對也提供給它的數(shù)據(jù)包進(jìn)行擴(kuò)展,將被擴(kuò)展的包存貯到在VU-MEM107中使用的嵌入式存貯器(MEM)中。FMAC(浮點(diǎn)并行加法器計(jì)算)單元104在除法器(DIV)106執(zhí)行除法的同時(shí)執(zhí)行浮點(diǎn)處理。第二矢量處理引擎48對從主存貯器45提供給它的數(shù)據(jù)執(zhí)行類型處理并通過GPU49將處理結(jié)果提供給GPUIF72。
主存貯器45用于存貯三維對象數(shù)據(jù)并在需要時(shí)將該數(shù)據(jù)提供給第一矢量處理引擎71和第二矢量處理引擎48。由主CPU44和第一矢量處理引擎(VPE0)71共同建立的顯示表,在通過主總線41提供給GPUIF72之前,暫存在嵌入到主存貯器45中的存貯器FIFO(MFIFO)中,將所述顯示表暫存在存貯器FIFO中的原因在于主CPU44和第一矢量處理引擎71中的每一個(gè)的處理優(yōu)先權(quán)都低于第二矢量處理引擎48的處理優(yōu)先權(quán),所以必須將所述顯示表保存在存貯器FIFO中,直到第二矢量處理引擎48進(jìn)入空閑狀態(tài)為止。
另外,主CPU44和第一矢量處理引擎(VPE0)71共同建立了一個(gè)將由第二矢量處理引擎48處理的矩陣,并將該矩陣存貯到主存貯器45中。然后,第二矢量處理引擎48使用所述矩陣構(gòu)成一個(gè)顯示表。
為了處理通過GPUIF72從第一矢量處理引擎71提供的用于非類型處理的顯示表、和從第二矢量處理引擎48提供的用于類型處理的顯示表,GPU49的一項(xiàng)工作是保持在繪圖時(shí)針對每個(gè)顯示表參照的繪圖偏移和剪切范圍的圖形上下文(即繪圖設(shè)定條件)。在后邊描述中使用的注釋CG0表示與非類型處理相關(guān)的圖形上下文,而注釋CG1表示與類型處理相關(guān)的圖形上下文,這還要在后面詳述。
例如,如上所述,PKE102將根據(jù)由DMAC109執(zhí)行的控制通過主總線41從主存貯器45提供給第一矢量處理引擎71的微代碼擴(kuò)展成將被作為一個(gè)微程序存貯在微存貯器98中并將由所述VU執(zhí)行的微指令,并且還根據(jù)由DMAC109執(zhí)行的控制對經(jīng)過主總線41從主存貯器45提供給它的諸如三維對象數(shù)據(jù)的數(shù)據(jù)包進(jìn)行擴(kuò)展,將被擴(kuò)展的數(shù)據(jù)包存貯到在VU-MEM101中使用的嵌入式存貯器(MEM)。然后,F(xiàn)MAC99和DIV100對三維對象數(shù)據(jù)執(zhí)行諸如矩陣處理,坐標(biāo)變換以及透視變換等一些處理。同時(shí),與CPU內(nèi)核94結(jié)合還執(zhí)行復(fù)雜處理。所述處理通常導(dǎo)致一個(gè)顯示表,用于繪制風(fēng)吹樹葉擺動(dòng)的狀態(tài)和雨滴擊中汽車前窗的狀態(tài)。
以這種方式在屏幕上建立的用于繪制兩維對象的顯示表(復(fù)雜流)在被最終提供給GPUIF72之前經(jīng)過主總線41被暫存在主存貯器45的MFIFO中。
另一方面,如上所述,PKE108將根據(jù)由主DMAC46所執(zhí)行控制經(jīng)過主總線41從主存貯器45提供給第二矢量處理引擎48的微代碼擴(kuò)展成將被作為一個(gè)微程序存貯在微存貯器103中并將由VU執(zhí)行的微指令,并擴(kuò)展根據(jù)由DMAC46所執(zhí)行控制經(jīng)過主總線41從主存貯器45提供給它的諸如三維對象數(shù)據(jù)的數(shù)據(jù)包,將被擴(kuò)展的數(shù)據(jù)包存貯到在VU-MEM107中使用的嵌入式存貯器(MEM)中。然后,F(xiàn)MAC104和DIV106對三維對象數(shù)據(jù)執(zhí)行諸如矩陣處理、坐標(biāo)變換以及透視變換等一些處理。在由主CPU44和第一矢量處理引擎71共同建立和經(jīng)過主總線41從主存貯器45提供給第二矢量處理引擎48的矩陣和圖形上下文的基礎(chǔ)上,處理是相對簡單的類型處理。
用這種方式在屏幕上建立的用于繪制二維對象的顯示表(簡單流)最終經(jīng)過主總線41提供給GPUIF72、然后兩個(gè)流、即所述復(fù)雜流和簡單流通過仲裁以時(shí)分為基礎(chǔ)傳輸給GPU49。
GPU49在通過GPUIF72提供給它的顯示表的基礎(chǔ)上執(zhí)行繪圖處理,在幀存貯器58上繪制多邊形。如果所述顯示表是一個(gè)由主CPU44和第一矢量處理引擎71在主存貯器單元45上共同建立然后經(jīng)過主總線41提供給GPU49的顯示表,則GPU49使用較早談到的圖形上下文GC0執(zhí)行繪圖處理。另一方面,如果所述顯示表是一個(gè)由第二矢量處理引擎48建立的顯示表,則GPU49使用以前所述的圖形上下文GC1執(zhí)行繪圖處理。
在幀存貯器58上繪制的多邊形被根據(jù)CRTC84執(zhí)行的控制轉(zhuǎn)換成與該多邊形相關(guān)的輸出視頻信號。
圖7示出了用于處理兩個(gè)顯示表的時(shí)序。圖7所示的幾何子系統(tǒng)0對應(yīng)于圖6所示的第二矢量處理引擎48,而幾何子系統(tǒng)1對應(yīng)于主CPU44和第一矢量處理引擎71。繪制子系統(tǒng)對應(yīng)于GPU49。注意,圖中所示陰影部分表示由任務(wù)名指示的任務(wù)處于空閑狀態(tài)。
圖7A示出了一種只有一個(gè)處理器即幾何子系統(tǒng)0情況的處理過程。在這種情況下,幾何子系統(tǒng)0形成一個(gè)顯示表(表#0-1),并將這個(gè)表提供給繪制子系統(tǒng)。然后,幾何子系統(tǒng)0在表#0-1之后繼續(xù)形成顯示表,即表#0-2和后續(xù)顯示表。繪制子系統(tǒng)根據(jù)從幾何子系統(tǒng)0提供給它的顯示表(表#0-1)執(zhí)行繪圖處理。如果幾何子系統(tǒng)0在繪制子系統(tǒng)根據(jù)表#0-1完成繪圖處理時(shí)仍在形成下一個(gè)顯示表(表#0-2),則繪制子系統(tǒng)進(jìn)入空閑狀態(tài),等待幾何子系統(tǒng)0完成下一個(gè)顯示表(表#0-2)的建立并將這個(gè)表提供給繪制子系統(tǒng)。
此后,與上述類似,如果幾何子系統(tǒng)0在繪制子系統(tǒng)完成根據(jù)當(dāng)前顯示表的繪圖處理時(shí)還沒有完成形成下一個(gè)顯示表的處理,則繪制子系統(tǒng)進(jìn)入空閑狀態(tài),等待幾何子系統(tǒng)0提供下一個(gè)顯示表給該繪制子系統(tǒng)。
圖7B示出了存在有兩個(gè)處理器,即幾何子系統(tǒng)0和幾何子系統(tǒng)1情況下的處理過程。在這種情況下,當(dāng)幾何子系統(tǒng)0正在形成顯示表(表#0-1)時(shí),繪制子系統(tǒng)應(yīng)當(dāng)處于空閑狀態(tài)。為此,與已經(jīng)由幾何子系統(tǒng)1建立并存貯在主存貯器45中的顯示表(表#1-1)相關(guān)的數(shù)據(jù)被提供給繪制子系統(tǒng)。接收由幾何子系統(tǒng)1建立的第一顯示表(表#1-1),繪制子系統(tǒng)在附加到由幾何子系統(tǒng)1提供給繪制子系統(tǒng)的第一顯示表(表#1-1)上并與幾何子系統(tǒng)1相關(guān)的圖形上下文的基礎(chǔ)上執(zhí)行繪圖處理。
當(dāng)幾何子系統(tǒng)0完成建立第一顯示表(表#0-1)的處理時(shí),幾何子系統(tǒng)1將下一個(gè)顯示表(表#1-2)提供給繪制子系統(tǒng)。此時(shí),幾何子系統(tǒng)1被迫停止向繪制子系統(tǒng)提供下一個(gè)顯示表(表#1-2)的操作。由此,幾何子系統(tǒng)0現(xiàn)在能夠?qū)⒁呀?jīng)完成的第一顯示表(表#0-1)提供給繪制子系統(tǒng)和開始形成下一個(gè)顯示表(表#0-2)。從幾何子系統(tǒng)0接收第一顯示表(表#0-1),繪制子系統(tǒng)在第一顯示表(表#0-1)的基礎(chǔ)上執(zhí)行繪圖處理。
當(dāng)繪制子系統(tǒng)在第一顯示表(表#0-1)的基礎(chǔ)上完成了繪圖處理時(shí),幾何子系統(tǒng)0仍在形成下一個(gè)顯示表(表#0-2)。為此,幾何子系統(tǒng)1從暫停操作中恢復(fù)以將下一個(gè)顯示表(表#1-2)提供給繪制子系統(tǒng)。不然,繪制子系統(tǒng)將進(jìn)入空閑狀態(tài)。接收由幾何子系統(tǒng)1建立的下一個(gè)顯示表(表#1-2),繪制子系統(tǒng)在下一個(gè)顯示表(表#1-2)的基礎(chǔ)上開始執(zhí)行繪圖處理。
然后,與上述相似,幾何子系統(tǒng)1只有當(dāng)幾何子系統(tǒng)0仍在形成一個(gè)顯示表要使繪制子系統(tǒng)處于空閑狀態(tài)時(shí),才將其建立的顯示表提供給繪制子系統(tǒng)。結(jié)果是,繪制子系統(tǒng)能夠有效處理由多個(gè)處理器形成的顯示表。
為了更快地執(zhí)行坐標(biāo)變換處理,例如,在共享共用繪圖單元即GPU49的多個(gè)矢量處理引擎的每一個(gè)中分別從CPU(早些時(shí)候描述的VU)中提供子處理器或坐標(biāo)變換協(xié)處理器,并且它們均給GPU49輸出顯示表。通過使用這種子處理器或協(xié)處理器,在每個(gè)矢量處理引擎中的CPU(處理器)現(xiàn)在能夠更加頻繁地將顯示表提供給被共享的GPU49。因此,在短時(shí)間間隔內(nèi)GPU49必須從一個(gè)處理器切換到另一個(gè)處理器。否則,在提供給每一個(gè)處理器的本地存貯器中將產(chǎn)生溢出。為此,優(yōu)先級被指定給每個(gè)處理器,即幾何子系統(tǒng)0和幾何子系統(tǒng)1,如圖7B所示。當(dāng)不再有顯示表從主處理器,即具有最高優(yōu)先權(quán)的CPU或在圖6所示信息處理裝置情況下在第二矢量處理引擎48中使用的CPU或圖7所示的幾何子系統(tǒng)0,傳輸給GPU49時(shí),對GPU49進(jìn)行訪問的權(quán)利移交給從處理器,即具有僅次于主CPU44優(yōu)先權(quán)的CPU或在圖6所示信息處理裝置情況下在第一矢量處理引擎71中使用的CPU(VU)或圖7所示的幾何子系統(tǒng)1。
主處理器剛一完成形成顯示表的處理和作好向GPU49傳送所述顯示表的準(zhǔn)備,即使從處理器尚未完成傳送一顯示表給GPU49時(shí),從處理器也將被迫將對GPU49訪問權(quán)返回給主處理器。
通常,主處理器能夠高速執(zhí)行處理但具有相對較小存貯容量的本地存貯器。另一方面,從處理器能夠以相對較低的速度執(zhí)行處理卻具有相對較大存貯容量的本地存貯器。
還有一種信息處理裝置,其中,還連接了一個(gè)作為從處理器1的從處理器的處理器2,如圖8所示。在這種信息處理裝置中,具有特別低優(yōu)先權(quán)的處理器需要一個(gè)具有更大存貯容量的本地存貯器,用于存貯更多個(gè)顯示表。為此,通常將低優(yōu)先權(quán)指定給具有主存貯器的主處理器。利用這種方式,主處理器也被用作從處理器。
在由GPU49執(zhí)行的繪圖處理中,除了在顯示表中所描述的頂點(diǎn)信息以外,如上所述,也需要諸如繪圖時(shí)的繪圖偏移和剪切范圍等被稱為繪圖上下文的環(huán)境參數(shù)或繪圖設(shè)置條件。繪制子系統(tǒng)(即GPU49)根據(jù)用于幾何子系統(tǒng)的圖形上下文在由每個(gè)幾何子系統(tǒng)(即CPU)提供顯示表的基礎(chǔ)上執(zhí)行繪圖處理。但是,當(dāng)顯示表提供者被從一個(gè)幾何子系統(tǒng)轉(zhuǎn)換到另一個(gè)時(shí),必須進(jìn)行重新設(shè)置圖形上下文的大量工作。為了解決這個(gè)問題,繪制子系統(tǒng)保持和幾何子系統(tǒng)一樣多的圖形上下文。
圖形上下文被加到圖7所示的通常用于提供給GPU49以供其繪制每個(gè)對象的顯示表上。其結(jié)果是,GPU49能夠在與所述對象相關(guān)的圖形上下文的基礎(chǔ)上執(zhí)行與每個(gè)對象相關(guān)的繪圖處理。
幾何子系統(tǒng)和繪制子系統(tǒng)共享包括數(shù)據(jù)總線和地址總線的主總線41。正在訪問繪制子系統(tǒng)的幾何子系統(tǒng)分別經(jīng)地址總線和數(shù)據(jù)總線將幾何子系統(tǒng)的ID和由幾何子系統(tǒng)建立的顯示表傳送給繪制子系統(tǒng)。繪制子系統(tǒng)接收所述ID和所述顯示表,選擇與所述ID對應(yīng)的圖形上下文和在圖形上下文的基礎(chǔ)上解釋所述顯示表。然后,繪制子系統(tǒng)在幀緩存器上繪制一個(gè)圖像。
通過如上所述在優(yōu)先級基礎(chǔ)上使多個(gè)處理器(矢量處理引擎或幾何子系統(tǒng))控制GPU49(繪制子系統(tǒng)),用于暫存的處理器中所形成顯示表的每個(gè)處理器中提供的本地存貯器的存貯容量可以被減到最小。其結(jié)果是可以在不增加本地存貯器成本的情況下在多個(gè)處理器中并行執(zhí)行處理以形成多個(gè)顯示表。另外,通過在GPU49(繪制子系統(tǒng))中保存用于每個(gè)處理器的圖形上下文,能夠減少將在上下文轉(zhuǎn)換期間執(zhí)行的重復(fù)數(shù)據(jù)傳輸次數(shù),即額外工作量。
嚴(yán)格地說,多個(gè)處理器共享數(shù)據(jù)總線從而在時(shí)間共享基礎(chǔ)上共享主存貯器。下面描述在向GPU49傳送數(shù)據(jù)的期間內(nèi)根據(jù)插入到數(shù)據(jù)本身中的元指令控制數(shù)據(jù)的技術(shù)。
圖9示出了元指令的一般格式。元指令是加到將被傳輸數(shù)據(jù)前面的指令。元指令規(guī)定被傳輸數(shù)據(jù)的長度、數(shù)據(jù)傳輸?shù)慕K點(diǎn)和元指令的操作碼。元指令由128位組成,只有圖中所示的64位是有效的。在第一個(gè)16位數(shù)據(jù)段QWC中規(guī)定將被傳輸數(shù)據(jù)尺寸。這個(gè)元指令的操作碼占據(jù)從第24位到第31位的數(shù)據(jù)段。從第32位到第63位的數(shù)據(jù)段被用于規(guī)定存貯將被傳輸數(shù)據(jù)的存儲(chǔ)地址或下一個(gè)元指令的讀出地址。
根據(jù)插入到數(shù)據(jù)中元指令的操作碼對數(shù)據(jù)傳輸進(jìn)行控制,如下述。
如果操作碼是“cnt”,在跟隨在這個(gè)元指令之后的QWC段規(guī)定的那么多數(shù)據(jù)字被傳輸之后,處理器執(zhí)行跟隨這個(gè)包(即元指令和數(shù)據(jù))之后地址處存儲(chǔ)的元指令。如果操作碼是“cnts”,在通過執(zhí)行阻塞控制使跟隨在這個(gè)元指令之后的QWC數(shù)據(jù)段規(guī)定的那么多數(shù)據(jù)字被傳輸之后,利用處理器執(zhí)行存貯在這個(gè)包之后地址處的元指令。如果操作碼是“next”,在這個(gè)元指令之后的QWC數(shù)據(jù)段規(guī)定的那么多數(shù)據(jù)字被傳輸之后,利用處理器執(zhí)行存貯在由所述地址段中規(guī)定地址處的元指令。
所述阻塞控制(stall control)是由處理器本身執(zhí)行的定時(shí)控制,用于將由該處理器構(gòu)成的對主存貯器45的訪問置于等待狀態(tài),直到由另一個(gè)處理器形成的對主存貯器45的訪問完成為止。
如果操作碼是“REF”,在由存貯在由所述地址段規(guī)定的地址ADDR處的如QWC段規(guī)定的那么多數(shù)據(jù)字被傳輸之后,由所述處理器執(zhí)行存貯在這個(gè)元指令之后一個(gè)地址處的元指令。如果操作碼是“refs”,在由存貯在由所述地址段規(guī)定的地址ADDR處的如QWC段規(guī)定的那么多數(shù)據(jù)字通過執(zhí)行阻塞控制被傳輸之后,由所述處理器執(zhí)行存貯在這個(gè)元指令之后一個(gè)地址處的元指令。如上所述,“REF”元指令被用于從地址段規(guī)定的地址起傳輸具有QWC段中所規(guī)定長度的數(shù)據(jù)。
如果操作碼是“call”,在由這個(gè)元指令之后的如QWC段規(guī)定的那么多數(shù)據(jù)字被傳輸之后,這個(gè)包之后的一個(gè)地址被推入(裝載)到一個(gè)寄存器中作為返回地址,并且由處理器執(zhí)行存貯在由該元指令地址段規(guī)定地址處的元指令。如果操作碼是“ret”,在由這個(gè)元指令之后的QWC段規(guī)定的那么多數(shù)據(jù)字被傳輸之后,該處理器執(zhí)行存貯在從所述寄存器彈出(或讀出)的一個(gè)地址處的元指令。應(yīng)當(dāng)說明,在執(zhí)行具有與這個(gè)“RET”元指令相關(guān)的“call”操作碼的一個(gè)元指令期間,所述地址已經(jīng)被作為返回地址推入所述寄存器。如果操作碼是“end”,在由這個(gè)元指令之后QWC段所規(guī)定的那么多數(shù)據(jù)字被傳輸之后,處理結(jié)束。
圖10用于解釋當(dāng)元指令的操作碼是意味著在這個(gè)元指令之后的下一個(gè)數(shù)據(jù)將被傳輸?shù)摹皀ext”時(shí)由處理器執(zhí)行的操作首先,主DMAC46從存貯在標(biāo)識地址寄存器Dn-TADR中的地址ADDR0處讀出一個(gè)字作為元指令字。假定所述元指令是“NEXT,ADDR=ADDR2,LEN=8”,這意味著操作碼是“next”,QWC段規(guī)定將被傳輸數(shù)據(jù)的長度是8個(gè)qword(四倍數(shù)的字?jǐn)?shù)目),這里,一個(gè)qword是128位,ADDR2是一個(gè)在地址段中規(guī)定的地址。由此,在執(zhí)行元指令“NEXT,ADDR=ADDR2,LEN=8”過程中,8個(gè)qword的數(shù)據(jù)被傳輸。然后執(zhí)行存貯在地址ADDR2處的元指令“NEXT,ADDR=ADD1,LEN=2”。
同樣,在執(zhí)行元指令“NEXT,ADDR=ADD1,LEN=2”的過程中,在由主DMAC46執(zhí)行的控制下執(zhí)行2個(gè)qword的數(shù)據(jù)的傳輸。然后,執(zhí)行存儲(chǔ)在地址ADDR1處的元指令“END,ADDR=-,LEN=8”。在執(zhí)行元指令“END,ADDR=-,LEN=8”的過程中,8個(gè)qword的數(shù)據(jù)被傳輸,然后處理結(jié)束。
圖11用于解釋當(dāng)元指令操作碼是“REF”時(shí)所述處理器執(zhí)行的操作。首先,主DMAC46從存貯在標(biāo)識地址寄存器Dn-TADR中的地址ADDR0處讀出一個(gè)字作為元指令字。假字該元指令是“REF,ADDR=ADDR2,LEN=2”。在執(zhí)行元指令“REF,ADDR=ADDR2,LEN=2”的過程中,存貯在地址ADDR2處的2個(gè)qword數(shù)據(jù)被傳輸。然后執(zhí)行這個(gè)元指令之后的元指令“REF,ADDR=ADDR1,LEN=8”。
在執(zhí)行元指令“REF,ADDR=ADDR1,LEN=8”的過程中,存貯在地址ADDR1處的8個(gè)qword的數(shù)據(jù)被傳輸。然后執(zhí)行跟在這個(gè)元指令之后的元指令“END,ADDR=-,LEN=8”的操作。在元指令“END,ADDR=-,LEN=8”執(zhí)行的過程中,8個(gè)qword的數(shù)據(jù)被傳輸。然后,處理結(jié)束。
圖12用于解釋當(dāng)元指令操作碼是“CALL”和“RET”時(shí)所述處理器執(zhí)行的操作。首先,主DMAC46從存貯在標(biāo)識地址寄存器Dn-TADR中的地址ADDR0讀出一個(gè)字用作元指令字,假定這個(gè)元指令字是“CALL,ADDR=ADDR1,LEN=0”。(在執(zhí)行元指令“CALL,ADDR=ADDR1,LEN=0”的過程中,由于LEN=0,所以沒有跟在這個(gè)元指令之后的數(shù)據(jù)被傳輸。跟在這個(gè)元指令后面的元指令“CALL,ADDR=ADDR2,LEN=8”的地址被推入第一寄存器作為返回地址。)在執(zhí)行元指令“CALL,ADDR=ADDR1,LEN=0”之后,執(zhí)行圖12右側(cè)所示并存貯在地址ADDR1處的元指令“CALL,ADDR=ADDR2,LEN=8”。在執(zhí)行元指令“CALL,ADDR=ADDR2,LEN=8”的過程中,跟隨在這個(gè)元指令之后的8個(gè)qword的數(shù)據(jù)被傳輸(從而將跟在這個(gè)包之后的元指令“RET,ADDR=-,LEN=0”的地址推入第二寄存器,用作返回地址。)然后執(zhí)行存貯在地址ADDR2處的元指令“RET,ADDR=-,LEN=8”。
在執(zhí)行元指令“RET,ADDR=-,LEN=8”的過程中,跟在這個(gè)元指令之后的8個(gè)qword的數(shù)據(jù)被傳輸。然后,執(zhí)行元指令“RET,ADDR=-,LEN=0”,它的地址已經(jīng)在執(zhí)行右側(cè)所示元指令“CALL,ADDR=ADDR2,LEN=8”的過程中推入第二寄存器。在執(zhí)行元指令“RET,ADDR=-,LEN=0”的過程中,由于LEN=0,所以沒有跟在這個(gè)元指令之后的數(shù)據(jù)被傳輸。然后執(zhí)行左側(cè)的元指令“CALL,ADDR=ADDR2,LEN=8”,其地址已經(jīng)在執(zhí)行圖元指令“CALL,ADDR=ADDR1,LEN=0”的過程中被推入第一寄存器。在執(zhí)行左側(cè)上元指令“CALL,ADDR=ADDR2,LEN=8”的過程中,跟在這個(gè)元指令之后的8個(gè)qword的數(shù)據(jù)被傳輸(從而將跟在這個(gè)包之后的元指令“END,ADDR=-,LEN=0”的地址推入第一寄存器用作返回地址)。然后,執(zhí)行存貯在地址ADDR2處的元指令“RET,ADDR=-,LEN=8”。
在執(zhí)行元指令“RET,ADDR=-,LEN=8”的過程中,跟在這個(gè)元指令之后的8個(gè)qword的數(shù)據(jù)被傳輸。然后執(zhí)行元指令“END,ADDR=-,LEN=0”,其地址已經(jīng)在執(zhí)行左側(cè)上元指令“CALL,ADDR=ADDR2,LEN=8”的過程中推入第一寄存器。在執(zhí)行元指令“END,ADDR=-,LEN=0”的過程中,由于LEN=0,所以沒有數(shù)據(jù)被傳輸。然后,處理結(jié)束。
如上所述,根據(jù)插入到數(shù)據(jù)中的元指令控制數(shù)據(jù)傳輸。
圖13示出了根據(jù)插入到所述數(shù)據(jù)中元指令控制數(shù)據(jù)傳輸?shù)臓顟B(tài)。當(dāng)主CPU44正在形成一個(gè)顯示表(顯示表#0)時(shí),與超前于顯示表#0一幀的顯示表(顯示表#1)相關(guān)的數(shù)據(jù)被傳輸給第二矢量處理引擎(VPE1)48。
首先,與第一矢量處理引擎71協(xié)同工作的主CPU44形成一個(gè)顯示表(顯示表#0),包括具有“NEXT”操作碼的元指令、上下文、具有操作碼“REF”的元指令、具有操作碼“REF”的元指令、矩陣、具有“REF”操作碼的元指令、矩陣、具有“REF”操作碼的元指令、矩陣、具有操作碼“REF”的元指令,具有操作碼“REF”的元指令、具有操作碼“REF”的元指令,矩陣和具有“RET”操作碼的元指令,如圖13所示。
如上所述,當(dāng)主CPU44正在與第一矢量處理引擎71協(xié)同形成一個(gè)顯示表(顯示表#0)時(shí),與超前于顯示表#0一幀的顯示表(顯示表#1)相關(guān)的數(shù)據(jù)被如下傳輸給第二矢量處理引擎(VPE1)48。首先,在顯示表#1頭部的具有“NEXT”操作碼的元指令被執(zhí)行以將隨后的上下文傳輸給第二矢量處理引擎48。然后,跟在被傳輸?shù)纳舷挛闹缶哂小癛EF”操作碼的第一個(gè)元指令被執(zhí)行以讀出存貯在主存貯器45中對象數(shù)據(jù)庫內(nèi)的程序0(和然后將該程序傳輸給第二矢量處理引擎48)。例如,頂點(diǎn)數(shù)據(jù)組,即圖13所示對象內(nèi)容可以被存貯在某處且只有顯示表的矩陣被更新。這樣可以針對觀察者視覺產(chǎn)生一個(gè)圖像。利用這種方式,其內(nèi)容不逐幀變化的數(shù)據(jù)諸如程序使用元指令從一個(gè)顯示表中讀出(以將這些數(shù)據(jù)傳輸給第二矢量處理引擎48而不必包括該顯示表上的全部數(shù)據(jù))。其間諸如字符和常數(shù)等固定數(shù)據(jù)可以被不同顯示表中的元指令所共享。結(jié)果是,僅通過簡單更新先前形成的現(xiàn)有顯示表的位置數(shù)據(jù)(即矩陣)(顯示表內(nèi)包含的位置數(shù)據(jù)的內(nèi)容逐幀變化),就能夠形成新的顯示表。
應(yīng)當(dāng)說明,對象數(shù)據(jù)庫包括用于描述三維對象(以下也被稱為對象頂點(diǎn))的三維數(shù)據(jù)和用于解釋對象數(shù)據(jù)的程序。另外,如果在對象裝飾上執(zhí)行紋理映象,用作紋理的圖像數(shù)據(jù)(稱之為紋理圖像)也被存貯在所述對象數(shù)據(jù)庫中。
然后,跟在上述第一個(gè)“REF”元指令之后的具有“REF”操作碼的第二個(gè)元指令被執(zhí)行以讀出三維坐標(biāo)數(shù)據(jù)Vertex of Object0,即對象0的頂點(diǎn)坐標(biāo)(和然后將對象0的頂點(diǎn)坐標(biāo)傳輸給第二矢量處理引擎48)。然后,(通過執(zhí)行在第一矩陣頭部處跟在第二個(gè)“REF”元指令之后的具有操作碼NEXT的元指令)將第一矩陣傳輸給第二矢量處理引擎48。然后,執(zhí)行跟在被傳輸?shù)谝痪仃囍缶哂小癛EF”操作碼的第三個(gè)元指令以讀出三維坐標(biāo)數(shù)據(jù)Vertex of Object1,即對象1的頂點(diǎn)坐標(biāo)(然后將對象1的頂點(diǎn)坐標(biāo)傳輸給第二處理引擎48)。
然后,跟在上述第三個(gè)“REF”元指令之后的第二矩陣被通過執(zhí)行在第二矩陣頭部跟在第三“REF”元指令之后并具有NEXT操作碼的一個(gè)元指令,被傳輸給第二矢量處理引擎48。隨后,執(zhí)行跟在被傳輸?shù)诙仃囍缶哂小癛EF”操作碼的第四個(gè)元指令以再次讀出三維坐標(biāo)數(shù)據(jù)Vertex ofObject1,即對象1的頂點(diǎn)坐標(biāo)(然后將對象1的頂點(diǎn)坐標(biāo)傳輸給第二矢量處理引擎48)。然后,通過執(zhí)行在第三矩陣頭部處跟在第四“REF”元指令之后的具有操作碼NEXT的一個(gè)元指令,將第三矩陣傳輸給第二矢量處理引擎48。然后,執(zhí)行跟在被傳輸?shù)谌仃囍蟛僮鞔a為“REF”的第五元指令以讀出程序3(并將該程序傳輸給第二矢量處理引擎48)。然后,執(zhí)行跟在上述第五“REF”指令之后操作碼為“REF”的第六元指令,以從幀存貯器58中讀出紋理圖像數(shù)據(jù)并將該數(shù)據(jù)傳輸給第二矢量處理引擎48。
如果紋理圖像數(shù)據(jù)還沒有被存貯到幀存貯器58中,在由后面的操作碼是“REF”的第七元指令傳輸對象數(shù)據(jù)Vertex of Object4之前,所述紋理圖像數(shù)據(jù)被傳輸給幀存貯器58。如果紋理圖像數(shù)據(jù)是來自MDEC47的解凍數(shù)據(jù)或來自子總線42的傳輸數(shù)據(jù),則該紋理圖像數(shù)據(jù)逐幀變化。在這種情況下,如下所述,利用阻塞功能來建立與數(shù)據(jù)傳輸?shù)耐健?br>
當(dāng)圖像數(shù)據(jù)正在被傳輸給第二矢量處理引擎48時(shí),由第二矢量處理引擎48執(zhí)行的處理暫停。因此需要暫停在這個(gè)周期內(nèi)由其它DMA通道執(zhí)行的活動(dòng)以使圖像數(shù)據(jù)的傳輸周期最小化??赏ㄟ^在用于傳輸圖像數(shù)據(jù)的元指令內(nèi)的預(yù)定控制位規(guī)定由其它DMA通道執(zhí)行活動(dòng)的暫停。例如,圖9所示元指令的第24和第25位可以用作這樣的控制位。
然后,執(zhí)行最后一個(gè)(第七個(gè))操作碼為“REF”的元指令以讀出三維坐標(biāo)數(shù)據(jù)Vertex of Object4(然后將該數(shù)據(jù)傳輸給第二矢量處理引擎48)。然后,最后一個(gè)(第四個(gè))矩陣被傳輸給第二矢量處理引擎48(通過執(zhí)行第四矩陣頭部處跟在第七“REF”元指令之后的操作碼為NEXT的元指令)。最后,執(zhí)行操作碼為“RET”的元指令以結(jié)束傳輸處理。
圖14用于解釋上述的阻塞處理。假設(shè)數(shù)據(jù)被從設(shè)備0傳輸給主存貯器,然后以主存貯器中數(shù)據(jù)存貯地址增加的順序再從主存貯器傳輸給設(shè)備1。在這種情況下,由于某種原因主存貯器中將把數(shù)據(jù)傳輸給設(shè)備1的地址有時(shí)會(huì)超過主存貯器中最近由設(shè)備0傳來數(shù)據(jù)的地址。在此期間,從主存貯器到設(shè)備1的數(shù)據(jù)傳輸被置于阻塞狀態(tài)。
在圖13所示數(shù)據(jù)傳輸?shù)睦又?,紋理圖像數(shù)據(jù)被從MDEC47中的一個(gè)存貯器傳輸給主存貯器45,然后按照主存貯器45中數(shù)據(jù)存貯地址的增加順序從主存貯器45傳輸給第二矢量處理引擎48。在這種情況下,由于某種原因主存貯器45中將把數(shù)據(jù)傳輸給第二矢量處理引擎48的地址有時(shí)會(huì)超過最近從MDEC47中存貯器將數(shù)據(jù)傳輸給主存貯器45中的地址。在此期間,從主存貯器45向第二矢量處理引擎48傳輸紋理圖像數(shù)據(jù)的操作被置于阻塞狀態(tài)以建立傳輸同步。
如上所述,主DMAC46從顯示表中提取元指令并執(zhí)行這個(gè)元指令以給各處理器分配數(shù)據(jù)。結(jié)果是通過預(yù)先由處理器建立顯示表時(shí)在數(shù)據(jù)中編排傳輸數(shù)據(jù)的順序、格式以及優(yōu)先權(quán),可以依據(jù)所述數(shù)據(jù)的特征以最佳途徑進(jìn)行數(shù)據(jù)傳輸。另外,通過預(yù)先使處理器以諸如顯示表的一個(gè)表的形式規(guī)定傳輸數(shù)據(jù)的順序,處理器不再需要在存貯器中保存與傳輸工作相關(guān)的無用復(fù)制數(shù)據(jù)。結(jié)果是減小了對存貯器無用訪問的次數(shù)和顯示表大小。
此外,僅需要對每個(gè)顯示表重復(fù)2次單獨(dú)存貯每個(gè)要傳輸數(shù)據(jù)中逐幀變化的部分。各顯示表的沒有逐幀變化的部分可以被存貯在所有顯示表共用的存貯區(qū)域內(nèi)。這樣,可以減少存貯顯示表所需的存貯器容量。就是說,在具有小存貯容量的存貯器中能存貯多個(gè)顯示表。
除此之外,由于數(shù)據(jù)是根據(jù)插入到數(shù)據(jù)中的元指令傳輸?shù)?,讀出和寫入數(shù)據(jù)操作的同步可以在多個(gè)處理器之間很容易地建立。結(jié)果是,多個(gè)處理器被允許共享一個(gè)存貯器而不需要在所述存貯器中提供雙重緩沖器。
在上述實(shí)施例的情況下,數(shù)據(jù)被存貯在CD-ROM中。但是應(yīng)當(dāng)說明,也可以使用其它的記錄媒體。
利用根據(jù)權(quán)利要求1的信息處理裝置和根據(jù)權(quán)利要求5的信息處理方法,當(dāng)?shù)谝划a(chǎn)生裝置正在處理期間而執(zhí)行裝置處于等待狀態(tài)時(shí),第二傳輸裝置提供第二指令(如果有)給執(zhí)行裝置,并且執(zhí)行裝置接收到該第二指令時(shí),執(zhí)行該第二指令。
權(quán)利要求
1.一種信息處理裝置,包括第一產(chǎn)生裝置,用于執(zhí)行處理以產(chǎn)生第一指令;第二產(chǎn)生裝置,用于執(zhí)行處理以產(chǎn)生第二指令;執(zhí)行裝置,用于通過利用預(yù)定定時(shí)從所述第一指令轉(zhuǎn)換到所述第二指令或相反,來執(zhí)行所述第一和第二指令;第一傳輸裝置,用于將所述第一指令傳輸給所述執(zhí)行裝置;和第二傳輸裝置,用于將所述第二指令傳輸給所述執(zhí)行裝置,其中,當(dāng)所述第一產(chǎn)生裝置正在進(jìn)行處理而所述執(zhí)行裝置處于等待狀態(tài)時(shí),如果有所述第二指令,所述第二傳輸裝置將該指令提供給所述執(zhí)行裝置,并且所述執(zhí)行裝置在接收到所述第二指令時(shí)執(zhí)行該第二指令。
2.如權(quán)利要求1所述的信息處理裝置,其中,所述執(zhí)行裝置保持用于執(zhí)行所述第一和第二指令的如所述第一和第二產(chǎn)生裝置個(gè)數(shù)那么多的參數(shù);和當(dāng)從所述第一產(chǎn)生裝置中的任一個(gè)接收所述第一指令時(shí),所述執(zhí)行裝置使用與提供所述第一指令的所述第一產(chǎn)生裝置相關(guān)的一個(gè)所述參數(shù)執(zhí)行所述第一指令;和當(dāng)從所述第二產(chǎn)生裝置中的任一個(gè)接收所述第二指令時(shí),所述執(zhí)行裝置使用與提供所述第二指令的所述第二產(chǎn)生裝置相關(guān)的一個(gè)所述參數(shù)執(zhí)行所述第二指令。
3.如權(quán)利要求1所述的信息處理裝置,其中,所述裝置還被提供有一個(gè)存貯裝置,用于存貯由所述第二產(chǎn)生裝置產(chǎn)生的所述第二指令;和所述第二傳輸裝置將存貯在所述存貯裝置中的所述第二指令傳輸給所述執(zhí)行裝置。
4.如權(quán)利要求1所述的信息處理裝置,其中,產(chǎn)生的所述第一指令用于類型處理,而產(chǎn)生的第二指令用于非類型處理。
5.一種在信息處理裝置中采用的信息處理方法,包括第一產(chǎn)生手段,用于執(zhí)行處理以產(chǎn)生第一指令;第二產(chǎn)生手段,用于執(zhí)行處理以產(chǎn)生第二指令;執(zhí)行手段,用于通過利用預(yù)定定時(shí)從所述第一指令轉(zhuǎn)換到所述第二指令或相反,來執(zhí)行所述第一和第二指令;第一傳輸手段,用于將所述第一指令傳輸給所述執(zhí)行手段;和第二傳輸手段,用于將所述第二指令傳輸給所述執(zhí)行手段;借此,當(dāng)所述第一產(chǎn)生手段正在進(jìn)行處理而所述執(zhí)行手段處于等待狀態(tài)時(shí),如果有所述第二指令,所述第二傳輸手段將該指令傳輸給所述執(zhí)行手段,并且所述執(zhí)行手段在接收到所述第二指令時(shí)執(zhí)行所述第二指令。
全文摘要
在信息處理裝置中,對多個(gè)CPU指定優(yōu)先權(quán),各CPU按優(yōu)先權(quán)將各自繪圖指令顯示表發(fā)給繪圖單元。當(dāng)主CPU(幾何子系統(tǒng)0)正建立表#0—1且繪圖單元(繪制子系統(tǒng))處于空閑狀態(tài)時(shí),從PCU(幾何子系統(tǒng)1)可提供所建立的表#1—1(如果有)給繪圖單元。繪圖單元接收表#1—1并據(jù)此繪圖。主CPU完成建立表#0—1的操作時(shí),從CPU將對繪制單元訪問權(quán)歸還給主CPU,使主CPU可將表#0—1提供給繪圖單元,繪制單元接收表#0—1并據(jù)此開始繪圖,以此類推。
文檔編號G09G5/36GK1197969SQ9810828
公開日1998年11月4日 申請日期1998年3月27日 優(yōu)先權(quán)日1997年3月27日
發(fā)明者鈴置雅一 申請人:索尼計(jì)算機(jī)娛樂公司