專利名稱:處理器系統(tǒng),dma控制電路,dma控制方法,dma控制器用控制方法,圖形處理方法和圖形處 ...的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及能夠借助DMA(直接存儲器存取)實現(xiàn)數(shù)據(jù)傳輸過程的處理器系統(tǒng),DMA控制電路,DMA控制方法,DMA控制器用控制方法,圖形處理方法和圖形處理電路。
背景技術(shù):
在傳統(tǒng)的DMA傳輸中,與主處理器的操作并行地進行數(shù)據(jù)傳輸,以便減小主處理器上的處理負(fù)載。在進行DMA傳輸?shù)臅r候,主處理器能夠進行另一過程。為此,DMA傳輸適合于傳送大量數(shù)據(jù),例如圖像數(shù)據(jù)的情況。
一般在DMA控制器的控制下進行DMA傳輸。主處理器事先在DMA控制器中設(shè)置代表進行DMA傳輸?shù)臅r間,從其開始進行DMA傳輸?shù)奈恢茫蛯ζ溥M行DMA傳輸?shù)奈恢玫膫鬏斂刂菩畔?。根?jù)設(shè)置信息,DMA控制器進行DMA傳輸。
另一方面,作為提高處理器系統(tǒng)中的處理速度的方法,已知的有相互并行地排列和操縱多個算術(shù)單元的方法。這種情況下,最好相互并行地傳送多個算術(shù)單元的計算處理結(jié)果,并且可安排多個DMA控制器。
但是,當(dāng)安排多個DMA控制器,使得能夠相互并行地進行數(shù)據(jù)傳輸過程時,主處理器必須為DMA控制器設(shè)置多條傳輸控制信息,主處理器上的處理負(fù)載增大。處理負(fù)載與DMA控制器的數(shù)目成比例地增大。
發(fā)明內(nèi)容
根據(jù)本發(fā)明一個實施例的處理器系統(tǒng)包括能夠并行進行算術(shù)處理的多個算術(shù)單元;保存所述多個算術(shù)單元用于算術(shù)處理的數(shù)據(jù)的存儲器;與主處理器的處理并行地執(zhí)行所述多個算術(shù)單元之間的數(shù)據(jù)傳輸,及所述多個算術(shù)單元和所述存儲器之間的數(shù)據(jù)傳輸?shù)亩鄠€DMA控制器;和與所述主處理器的處理并行地控制所述多個算術(shù)單元和所述多個DMA控制器的啟動的DMA控制電路。
根據(jù)本發(fā)明一個實施例的DMA控制電路包括分別保存與從主處理器指示的多個指令相關(guān)的信息的多個指令存儲器;和與所述主處理器的處理并行地執(zhí)行均能夠并行進行算術(shù)處理的多個算術(shù)單元之間的數(shù)據(jù)傳輸,及保存所述多個算術(shù)單元用于算術(shù)處理的數(shù)據(jù)的存儲器和所述多個算術(shù)單元之間的數(shù)據(jù)傳輸,并根據(jù)保存在所述多個指令存儲器中的信息,啟動所述多個算術(shù)單元的控制的調(diào)度器。
根據(jù)本發(fā)明一個實施例的控制DAM控制器的方法包括把能夠并行進行算術(shù)處理的算術(shù)單元用于算術(shù)處理的數(shù)據(jù)保存到存儲器中;在所述多個算術(shù)單元之間,以及在所述多個算術(shù)單元和所述存儲器之間,并行于主處理器的處理,利用多個DMA控制器進行數(shù)據(jù)傳輸;通過監(jiān)視所述多個DMA控制器和所述多個算術(shù)處理單元,傳送表示數(shù)據(jù)傳輸完成的數(shù)據(jù)傳輸完成信息;根據(jù)數(shù)據(jù)傳輸完成信息,確定其它數(shù)據(jù)傳輸是否可能;和當(dāng)確定數(shù)據(jù)傳輸可能時,通過使用所述多個DMA控制器中的至少一個,進行數(shù)據(jù)傳輸。
根據(jù)本發(fā)明一個實施例的圖形處理方法包括把頂點信息轉(zhuǎn)換成象素信息;
根據(jù)象素信息,由多個算術(shù)單元產(chǎn)生圖像;把能夠并行進行算術(shù)處理的所述算術(shù)單元用于算術(shù)處理的數(shù)據(jù)保存到存儲器中;在所述多個算術(shù)單元之間,以及在所述多個算術(shù)單元和所述存儲器之間,利用多個DMA控制器進行數(shù)據(jù)傳輸;通過監(jiān)視所述多個DMA控制器和所述多個算術(shù)處理單元,傳送表示數(shù)據(jù)傳輸已完成的數(shù)據(jù)傳輸完成信息;根據(jù)數(shù)據(jù)傳輸完成信息,確定其它數(shù)據(jù)傳輸是否可能;和當(dāng)確定其它數(shù)據(jù)傳輸可能時,由所述多個DMA控制器中的至少一個,進行數(shù)據(jù)傳輸。
根據(jù)本發(fā)明一個實施例的圖形處理電路包括把頂點信息轉(zhuǎn)換成象素信息的象素信息轉(zhuǎn)換器;能夠根據(jù)象素信息并行進行算術(shù)處理的多個算術(shù)單元;在所述多個算術(shù)單元之間,以及在保存所述多個算術(shù)單元使用的數(shù)據(jù)的存儲器和所述算術(shù)單元之間,進行數(shù)據(jù)傳輸?shù)亩鄠€DMA控制器;保存與多個DAM控制器相關(guān)的指令信息的指令信息存儲器;和根據(jù)保存在所述指令信息存儲器中的指令信息,確定所述多個DMA控制器的DMA傳輸是否可能的控制電路。
圖1是表示根據(jù)本發(fā)明第一實施例的處理器系統(tǒng)的示意結(jié)構(gòu)的方框圖。
圖2是表示圖1中所示的圖形處理處理器2的內(nèi)部結(jié)構(gòu)的細節(jié)的方框圖。
圖3是表示控制器21的內(nèi)部結(jié)構(gòu)的例子的方框圖。
圖4是表示圖3中的專用電路32的內(nèi)部結(jié)構(gòu)的例子的方框圖。
圖5是表示圖1的控制器21執(zhí)行的程序的例子的流程圖。
圖6A和6B表示專用電路32執(zhí)行的任務(wù)的例子。
圖7A表示傳統(tǒng)DMAC 31的第一操作,圖7B表示傳統(tǒng)DMAC 31的第二操作,圖7C表示根據(jù)本實施例的DMAC的操作。
圖8是對應(yīng)于圖7A的計時圖。
圖9是對應(yīng)于圖7B的計時圖。
圖10是對應(yīng)于圖7C的計時圖。
圖11表示如何使用同步寄存器的一個例子。
圖12表示如何使用同步寄存器的另一例子。
圖13表示如何使用同步寄存器的另一例子。
圖14表示處理兩個指令串的方法。
圖15是表示控制器21的程序的例子的數(shù)據(jù)流程圖。
圖16表示主處理器1的程序的一個例子。
圖17是表示根據(jù)第二實施例的控制器21的內(nèi)部結(jié)構(gòu)的方框圖。
圖18是表示圖17中的專用電路32a的內(nèi)部結(jié)構(gòu)的例子的方框圖。
圖19是表示圖17中的控制器21執(zhí)行的程序的例子的流程圖。
圖20是表示根據(jù)本申請的處理器系統(tǒng)裝入數(shù)字電視機中的情況的方框圖。
圖21是表示根據(jù)本實施例的處理器系統(tǒng)裝入視頻記錄器/播放器中的例子的方框圖。
具體實施例方式
下面參考附圖,說明根據(jù)本發(fā)明一個實施例的處理器系統(tǒng),DMA控制電路,DMA控制方法,DMA控制器用控制方法,圖形處理方法和圖形處理電路。
(第一實施例)圖1是表示根據(jù)本發(fā)明第一實施例的處理器系統(tǒng)的示意結(jié)構(gòu)的方框圖。圖1中所示的處理器系統(tǒng)包括主處理器1,圖形處理處理器2,主存儲器3和I/O處理器4。
主處理器1包括主處理器11,多個數(shù)字信號處理器(DSP)和控制與外部電路的輸入/輸出操作的I/O單元13、14和15。I/O單元13控制與主存儲器3的輸入/輸出操作,I/O單元14控制與圖形處理處理器2的輸入/輸出操作,I/O單元15控制與I/O處理器4的輸入/輸出操作。
圖形處理處理器2包括充當(dāng)本實施例的特征部分的控制器21,執(zhí)行與主處理器1的數(shù)據(jù)交換的I/O單元22,各種通用總線,例如PCI總線,控制視頻數(shù)據(jù)、音頻數(shù)據(jù)等的輸入/輸出操作的I/O單元23,和執(zhí)行圖形處理計算的圖形處理單元24。
圖形處理單元24包括把多邊形的頂點信息轉(zhuǎn)換成象素數(shù)據(jù)的象素轉(zhuǎn)換器26,和處理象素數(shù)據(jù)的多個算術(shù)單元(DSP)27。
I/O處理器4控制與通用總線,諸如HDD和DVD之類的外圍設(shè)備,以及網(wǎng)絡(luò)的連接。
圖2是表示圖1中所示的圖形處理處理器2的內(nèi)部結(jié)構(gòu)的細節(jié)的方框圖。多個算術(shù)單元27中的每一個都包括由多個處理器構(gòu)成的一個處理器群集28,和保存處理器群集28的處理結(jié)構(gòu)的一個存儲器29。處理器群集28中的多個處理器能夠彼此并行地執(zhí)行獨立過程,并且能夠執(zhí)行一個過程,以致多個處理器群集28共享該過程。存儲器29保存處理器群集28的執(zhí)行結(jié)果。圖2中所示的控制器21,象素轉(zhuǎn)換器26,I/O單元22及23,和存儲器29與公共總線30連接。
圖3是表示控制器21的內(nèi)部結(jié)構(gòu)的例子的方框圖。圖3中所示的控制器21包括多個DMA控制器(DMAC)31,一個專用電路32,由多個通用處理器構(gòu)成的一個控制處理器33,一個計時器34,一個中斷單元35和一個存儲器36。
DMA控制器31執(zhí)行多個算術(shù)單元27之間的數(shù)據(jù)傳輸,以及多個算術(shù)單元27和存儲器36之間的數(shù)據(jù)傳輸。專用電路32是專用于該系統(tǒng)的電路,執(zhí)行關(guān)于DMA控制器31和算術(shù)單元27的啟動控制。控制處理器33根據(jù)保存在存儲器36中的程序代碼,或者來自主處理器1的指令,控制專用電路32。計時器34執(zhí)行時間管理,并根據(jù)需要指令中斷單元35執(zhí)行中斷。中斷單元35接收來自計時器34的信號,或者來自DMA控制器31或算術(shù)單元27的完成信號,對控制處理器33執(zhí)行中斷。
圖3中所示的專用電路32,計時器34,中斷單元35和存儲器36與本地網(wǎng)絡(luò)37連接。主處理器1也通過I/O單元22與本地網(wǎng)絡(luò)37連接。存儲器36由例如嵌入式DRAM構(gòu)成。提供例如30個以上的DMA控制器。
圖4是表示圖3中的專用電路32的內(nèi)部結(jié)構(gòu)的例子的方框圖。該方框圖表示其中以控制處理器33的協(xié)處理器的形式,連接專用電路32的結(jié)構(gòu)。圖4中的專用電路32包括控制處理器I/O單元41,多個DMA寄存器42,一個DMA發(fā)布單元43,多個同步寄存器44,和一個同步寄存器控制單元45。
控制處理器I/O單元41與控制處理器33交換數(shù)據(jù)。DMA寄存器保存DMAC 31的操作所需的各種信息。DMA發(fā)布單元43執(zhí)行把DMA寄存器42中的各種信息傳送給DMAC31的過程。從其傳送信息的特定DMA寄存器和向其傳送信息的特定DMAC 31由控制處理器33確定。通過控制處理器I/O單元41,把所述特定DMA寄存器和特定DMAC 31通知DMA發(fā)布單元43。同步寄存器44保存DMAC 31和算術(shù)單元27的操作狀態(tài)。同步寄存器控制單元45控制同步寄存器44的更新。
圖5是表示圖1的控制器21執(zhí)行的程序的例子的流程圖。該流程圖表示當(dāng)在主處理器1中準(zhǔn)備的數(shù)據(jù)被DMA傳送給圖形處理處理器2中的存儲器36時執(zhí)行的程序。
當(dāng)主處理器1準(zhǔn)備將由圖形處理處理器2處理的數(shù)據(jù)時,主處理器1把準(zhǔn)備完成信號傳送給圖3中的本地網(wǎng)絡(luò)37。該信號由圖4中的同步寄存器控制單元45接收(步驟S1)。
同步寄存器控制單元45更新同步寄存器44的值(步驟S2)。更具體地說,同步寄存器44被設(shè)置成代表主處理器1的數(shù)據(jù)傳輸?shù)臏?zhǔn)備已完成的值。
控制處理器33根據(jù)專用指令,通過控制處理器I/O單元41讀取同步寄存器44的值,以確認(rèn)主處理器1的準(zhǔn)備已完成(步驟S3)。這里,所述專用指令表示一項任務(wù)。包括由控制處理器33和專用電路32執(zhí)行的專用指令(任務(wù))的指令串表示一個任務(wù)串。
通過控制處理器I/O單元41,控制處理器33把DMAC 31的設(shè)置信息傳送給DMA寄存器42(步驟S4)。
控制處理器33根據(jù)專用指令,通過控制處理器I/O單元41啟動DMA發(fā)布單元43,并指令DMA發(fā)布單元43把保存在DMA寄存器42中的DMAC 31的設(shè)置信息設(shè)置到每個DMAC 31中(步驟S5)。
之后,DMAC 31執(zhí)行DMA傳輸。當(dāng)DMA傳輸完成時,DMAC31向同步寄存器控制單元45通知DMA傳輸已完成(步驟S6)。同步寄存器控制單元45更新同步寄存器44(步驟S7)。
控制處理器33根據(jù)專用指令,通過控制處理器I/O單元41,讀取同步寄存器的值,并確認(rèn)DMA傳輸完成(步驟S8)。之后,控制處理器33通過控制處理器I/O單元41啟動算術(shù)單元27,處理從主處理器1傳送給圖形處理處理器2中的存儲器的數(shù)據(jù)(步驟S9)。
如上所述,圖4中的同步寄存器控制單元45監(jiān)視同步寄存器44的值。定期監(jiān)視通常被稱為“輪詢”。根據(jù)本實施例的同步寄存器控制單元45能夠通過輪詢,監(jiān)視DMAC 31,算術(shù)單元27和主處理器1的操作。
代替用同步寄存器控制單元45監(jiān)視同步寄存器44,控制處理器33可通過控制處理器I/O單元41監(jiān)視同步寄存器44。
這樣,控制DMAC 31的命令被稱為指令,每個命令由例如256位數(shù)據(jù)構(gòu)成。專用電路32中的同步寄存器控制單元45和同步寄存器44用作任務(wù)調(diào)度器。
更具體地說,任務(wù)包括與DMAC 31的數(shù)據(jù)傳輸控制相關(guān)的命令,與算術(shù)單元27的啟動控制以及算術(shù)單元27的初始設(shè)置相關(guān)的命令,和與關(guān)于主處理器1的中斷通知相關(guān)的命令。
根據(jù)本實施例的專用電路32持續(xù)執(zhí)行任務(wù),直到稱為阻擋任務(wù)(block task)的特殊任務(wù)被執(zhí)行為止。阻擋任務(wù)是等待在所述阻擋任務(wù)之前發(fā)出的任務(wù)(DMA執(zhí)行或者處理器群集的過程)的執(zhí)行完成的任務(wù)。當(dāng)阻擋任務(wù)被執(zhí)行時,專用電路32等待,直到完成設(shè)定的任務(wù)的執(zhí)行為止。
圖6A表示專用電路32執(zhí)行的任務(wù)的例子,表示了其中執(zhí)行任務(wù)A、B、C、D、E、F和G的例子。圖6A中的任務(wù)被寫成如圖6B中所示的數(shù)據(jù)流程圖。專用電路32執(zhí)行任務(wù)A,等待作為阻擋任務(wù)的任務(wù)A的執(zhí)行完成。當(dāng)完成任務(wù)A的執(zhí)行時,專用電路32并行執(zhí)行任務(wù)F和B。專用電路32等待作為阻擋任務(wù)的任務(wù)F和B的執(zhí)行完成。當(dāng)完成任務(wù)F和B的執(zhí)行時,專用電路32并行執(zhí)行任務(wù)C和D。專用電路32等待作為阻擋任務(wù)的任務(wù)C和D的執(zhí)行完成。當(dāng)完成任務(wù)C和D的執(zhí)行時,專用電路32執(zhí)行任務(wù)E。專用電路32等待作為阻擋任務(wù)的任務(wù)E的執(zhí)行完成。當(dāng)完成任務(wù)E的執(zhí)行時,專用電路32執(zhí)行任務(wù)G。
按照這種方式,圖6B中的阻擋任務(wù)能夠使多個DMA傳輸同步。
本實施例的專用電路32能夠借助除了DMA傳輸完成的通知之外的事件啟動接下來的DMA傳輸。這里提及的事件是例如算術(shù)單元27的計算過程的完成,或者來自主處理器1的通知。
圖7A表示傳統(tǒng)DMAC 31的第一操作,圖7B表示傳統(tǒng)DMAC 31的第二操作,圖7C表示根據(jù)本實施例的DMAC的操作。圖8是對應(yīng)于圖7A的計時圖,圖9是對應(yīng)于圖7B的計時圖,圖10是對應(yīng)于圖7C的計時圖。
圖7A和8表示最普及的DMA傳輸。在完成某一DMA傳輸之后,執(zhí)行下一DMA傳輸。這種情況下,如圖8中所示,主處理器1(CPU)執(zhí)行DMA的指定(t1),算術(shù)單元27的寄存器設(shè)置(t2),和算術(shù)單元27的執(zhí)行的指定(t3)。DMAC 31執(zhí)行由主處理器1指定的DMA命令。
在圖7A和8中所示的例子中,與DMA傳輸相關(guān)的各種設(shè)置和指定,以及算術(shù)單元27的執(zhí)行的指定由主處理器1完成。因此,主處理器1上的負(fù)載過大。于是,主處理器1執(zhí)行另一過程的時段(t4)變短,從而主處理器1的性能降低。
在圖7B和9中所示的例子中,能夠相互并行地執(zhí)行多個DMA傳輸。但是,如圖9中所示,主處理器1執(zhí)行寄存器設(shè)置和算術(shù)單元27的起動的指定(時段t5)。根據(jù)所述指定,DMAC 31傳輸寄存器設(shè)置和算術(shù)單元27的起動的指定(時段t6)。該例子中,由于能夠并行地對多個DMAC 31進行寄存器設(shè)置,因此當(dāng)要進行寄存器設(shè)置的寄存器的數(shù)目較大時,能夠減小主處理器1上的處理負(fù)載。但是,當(dāng)只重新設(shè)置一些寄存器時,和圖7A和8中的情況一樣,主處理器1上的處理負(fù)載增大。
另一方面,在圖7C和10中所示的實施例中,不僅只通過利用DMA傳輸?shù)慕Y(jié)束作為觸發(fā)信號,進行下一DMA傳輸,而且還利用來自算術(shù)單元27或主處理器1的通知作為觸發(fā)信號,執(zhí)行下一DMA傳輸。DMAC 31能夠執(zhí)行算術(shù)單元27的寄存器設(shè)置,和算術(shù)單元27的執(zhí)行的指定。更具體地說,如圖10中所示,當(dāng)主處理器1指定DMAC31執(zhí)行DMA傳輸(時段t7)時,響應(yīng)該指定,DMAC 31執(zhí)行算術(shù)單元27的寄存器設(shè)置(時段t8),DMA傳輸(時段t9),和算術(shù)單元27的執(zhí)行的指定(時段t10)。當(dāng)完成計算過程時,算術(shù)單元27把計算過程的結(jié)束通知DMAC 31。
如圖10中所示,由于DMAC 31控制DMA傳輸和控制算術(shù)單元27的執(zhí)行,主處理器1能夠向其它過程分配較長的時間。于是,能夠提高主處理器1的性能。
下面更詳細地說明主處理器1的操作,以及圖形處理處理器2中的控制器21的操作。主處理器1讀取保存在主存儲器3中的任務(wù)串,以便把任務(wù)串傳送給圖形處理處理器2中的存儲器。該傳輸過程可由主處理器1的存儲任務(wù)直接寫入該存儲器中,或者DMA傳輸可實現(xiàn)執(zhí)行成任務(wù)之一。
控制器21中的同步寄存器控制單元45把任務(wù)串的指針信息等設(shè)置到DMAC 31的DMA寄存器42中。根據(jù)DMA寄存器42的內(nèi)容,DMA發(fā)布裝置對每個DMAC 31執(zhí)行各種設(shè)置。
控制器21不僅能夠執(zhí)行DMAC 31的啟動控制,而且能夠執(zhí)行算術(shù)單元27的啟動控制。作為當(dāng)控制器21控制算術(shù)單元27時使用的任務(wù),已知的有兩種任務(wù),即設(shè)置任務(wù)和突跳任務(wù)(kick task)。設(shè)置任務(wù)是對算術(shù)單元27執(zhí)行各種設(shè)置的任務(wù)。更具體地說,進行各種設(shè)置,以便顯示諸如紋理或頂點之類的三維圖像。突跳任務(wù)是指定算術(shù)單元27的開始執(zhí)行的任務(wù)。
如上所述,在同步寄存器44中,保存DMAC 31,算術(shù)單元27等的操作狀態(tài)。主處理器1能夠通過同步寄存器控制單元45,讀取同步寄存器44的值。幾種方法可被用作使用同步寄存器44的方法。圖11、12和13中表示了這些方法中的一個典型方法。
在圖11中,某一過程由控制器21執(zhí)行(步驟S11)。處理結(jié)果由寫任務(wù)寫入同步寄存器44(步驟S12)??刂破?1中斷該任務(wù)的執(zhí)行,直到從主處理器1收到阻擋取消通知為止(步驟S13)。當(dāng)主處理器1定期進行同步寄存器44的輪詢(步驟S13),以獲得在寫任務(wù)中,寫入同步寄存器44中的值時,主處理器1把阻擋取消通知控制器21(步驟S15)。
在圖12中,控制器21借助突跳任務(wù)啟動算術(shù)單元27(步驟S16),并中斷該任務(wù)的執(zhí)行,直到算術(shù)單元27中的過程結(jié)束為止(步驟S17)。由突跳任務(wù)啟動的算術(shù)單元27執(zhí)行某一過程(步驟S18)。當(dāng)完成該過程時,算術(shù)單元27把完成通知傳送給控制器21,并把返回值寫入同步寄存器44(步驟S19)。接收完成通知的控制器21參考通用寄存器的值完成轉(zhuǎn)移(branch)(步驟S20)。
在圖13中,控制器21執(zhí)行某一過程(步驟S21)。當(dāng)完成該過程時,中斷該任務(wù)的執(zhí)行,直到控制器21從主處理器1收到阻擋取消的通知為止(步驟S22)。主處理器1動態(tài)設(shè)置控制器21重新開始執(zhí)行該任務(wù)的時間(步驟S23)。此時,主處理器1取消控制器21的阻擋,并把返回值寫入同步寄存器44中(步驟ST24)。控制器21參考同步寄存器44的值完成轉(zhuǎn)移(步驟ST25)。
如上所述,控制器21能夠同時執(zhí)行多個任務(wù)串。作為所述執(zhí)行的一個例子,下面說明一個程序,執(zhí)行所述程序,以致數(shù)據(jù)從主存儲器3傳送到存儲器中,數(shù)據(jù)的指針被設(shè)置到算術(shù)單元27中。這種情況下,控制器21同時執(zhí)行兩個任務(wù)串,并使任務(wù)串同步。所述同步由來自主處理器1的指定實現(xiàn)。
如圖14中所示,假定存儲器被分成四個區(qū)域(下面稱為FIFO0-3)。在這兩個任務(wù)串中的一個任務(wù)串(下面稱為任務(wù)串1)中,主存儲器3把數(shù)據(jù)傳送給FIFO 0-3。在另一任務(wù)串(下面稱為任務(wù)串2)中,數(shù)據(jù)從FIFO 0-3傳送給算術(shù)單元27。
任務(wù)串2實際上借助設(shè)置任務(wù),執(zhí)行對算術(shù)單元27的初始設(shè)置。算術(shù)單元27從存儲器讀取數(shù)據(jù)。
圖15是表示執(zhí)行上述兩個任務(wù)串1和2的控制器21的程序的例子的數(shù)據(jù)流程圖。彼此并行地執(zhí)行圖15中的任務(wù)串1和任務(wù)串2。在任務(wù)串1中,數(shù)據(jù)被順序從主存儲器3傳送給FIFO 0-3。之后,控制器21返回任務(wù)串1的頂部(步驟S31-S39)。每次完成向FIFO 0-3的數(shù)據(jù)傳輸過程時,該過程被中斷。當(dāng)控制器21從主處理器1收到阻擋取消的通知時,控制器21執(zhí)行下一數(shù)據(jù)傳輸過程。
另一方面,在任務(wù)串2中,F(xiàn)IFO 0-3的地址被設(shè)置到算術(shù)單元27中,順序重復(fù)指定算術(shù)單元27啟動的過程,控制器21返回任務(wù)串2的頂部(步驟S41-S54)。在FIFO 0-3的地址被設(shè)置到算術(shù)單元27中之后,中斷該過程。當(dāng)主處理器1取消該阻擋時,執(zhí)行下一過程。
實現(xiàn)圖15中的過程的主處理器1的程序的一個例子如圖16中所示。
按照這種方式,在第一實施例中,獨立于主處理器1安排具有實現(xiàn)多個DMAC 31和多個算術(shù)單元27的啟動控制的控制器21的圖形處理處理器2,從而能夠并行于在主處理器1中執(zhí)行的過程,由控制器21完成DMAC 31的控制和算術(shù)單元27的啟動指定。因此,能夠減小主處理器上的處理負(fù)載。
DMAC 31和算術(shù)單元27的啟動指定也可由除DMA傳輸結(jié)束的通知之外的事件實現(xiàn)。因此,能夠執(zhí)行具有更高自由度的任務(wù)過程。
(第二實施例)
在上述第一實施例中,說明了其中DMAC 31和算術(shù)單元27的啟動由控制器處理器33和專用電路32控制的例子。但是,DMAC 31和算術(shù)單元27的啟動控制可以只由專用電路32實現(xiàn)。
圖17是表示根據(jù)第二實施例的控制器21的內(nèi)部結(jié)構(gòu)的方框圖。和圖3相同的附圖標(biāo)記表示圖17中的相同部分。下面主要說明圖3和圖17的不同之處。在圖17的控制器21中,圖3中的控制處理器33和專用電路32被集成為一個專用電路32a。
圖17中的專用電路32a根據(jù)保存在存儲器36中的程序代碼,控制DMAC 31和算術(shù)單元27。
圖18是表示圖17中的專用電路32a的內(nèi)部結(jié)構(gòu)的例子的方框圖。圖18中的專用電路32a包括一個任務(wù)取出解碼器51,一個同步管理單元52,一個DMA發(fā)布單元43,多個同步寄存器44,和一個同步寄存器控制單元45。
任務(wù)取出解碼器51解釋保存在存儲器36中的程序代碼。同步管理單元52執(zhí)行由任務(wù)取出解碼器51解釋的任務(wù),并讀取同步寄存器44的值,以便控制算術(shù)單元27和DMA發(fā)布單元43。
圖19是表示圖17中的控制器21執(zhí)行的程序的例子的流程圖。下面主要說明圖19中的流程圖和圖5中的流程圖之間的不同過程。在同步寄存器控制單元45更新同步寄存器44的值(步驟S62)之后,同步管理單元52根據(jù)任務(wù)取出解碼器51譯解的任務(wù),讀取同步寄存器44的值(步驟S63)。按照這種方式,確定完成主處理器1的準(zhǔn)備中,關(guān)于數(shù)據(jù)傳輸?shù)臏?zhǔn)備。
同步管理單元52把各條信息設(shè)置到DMAC 31中,以便把將設(shè)置在DMAC 31中的各條信息(這種情況下,在主處理器1中準(zhǔn)備的數(shù)據(jù))傳送給圖形處理處理器2中的存儲器(步驟S64)。
在DMAC 31被啟動之后,當(dāng)DMAC 31結(jié)束DMA傳輸時,完成信號被傳送給同步寄存器控制單元45(步驟S65)。同步寄存器控制單元45更新同步寄存器44(步驟S66)。
根據(jù)任務(wù)取出解碼器51譯解的任務(wù),同步管理單元52讀取同步寄存器44的值(步驟S67),以確認(rèn)DMAC 31的完成。
根據(jù)任務(wù)取出解碼器51譯解的任務(wù),同步管理單元52啟動算術(shù)單元27,開始處理從主處理器1傳送給圖形處理處理器2中的存儲器的數(shù)據(jù)(步驟S68)。
如上所述,在第二實施例中,DMAC 31和算術(shù)單元27的啟動控制只由專用電路32a實現(xiàn)。因此,能夠獲得比利用通用處理器獲得的電路規(guī)模更小的電路規(guī)模,并且還能夠獲得低能耗。
上面的每個實施例舉例說明了控制器21被安置在圖形處理處理器2中的情況。但是,控制器21可在安置在圖形處理處理器2之外。
上面的每個實施例舉例說明了以不同的芯片的形式,形成主處理器1和圖形處理處理器2的情況。但是,主處理器1和圖形處理處理器2也可作為宏核心(macro core)形成于同一芯片上。這種情況下,控制器21最好被安排在圖形處理處理器2中。但是,控制器21也可安排在圖形處理處理器2之外。
上面的每個實施例舉例說明了控制器21專用于由圖形處理處理器2執(zhí)行的數(shù)據(jù)處理的情況。但是,控制器21也可控制另一DMAC,即,主處理器1中的DMAC。這種情況下,可與控制器21無關(guān)地在主處理器1中安排另一控制器。主處理器1中的DMAC和圖形處理處理器2中的DMAC也可由共同的控制器控制。
如上所述的相同功能也可由代替控制器21的OS(操作系統(tǒng))處理。
根據(jù)本發(fā)明的處理器系統(tǒng)可被裝入游戲機,家用服務(wù)器,電視機,便攜式信息設(shè)備等中。
圖20是表示根據(jù)本申請的處理器系統(tǒng)裝入數(shù)字電視機中的情況的方框圖。充當(dāng)該結(jié)構(gòu)的一個例子的數(shù)字電視機包括控制通信信息的數(shù)字電路板55。數(shù)字電路板55包括實現(xiàn)和圖1中一樣的功能,控制圖像信息的處理器系統(tǒng)56。更具體地說,處理器系統(tǒng)56包括發(fā)射/接收視頻和通信信息的收發(fā)器電路(DEMUX)57,解碼器電路58,處理器(CPU)59,圖形處理電路(圖形引擎)60,和數(shù)字格式轉(zhuǎn)換器61。
圖21是表示根據(jù)本實施例的處理器系統(tǒng)裝入視頻記錄器/播放器中的例子的方框圖。作為該結(jié)構(gòu)的一個例子,視頻記錄器/播放器包括實現(xiàn)和圖1中一樣的功能,并且控制圖像信息的圖像信息控制電路62。更具體地說,圖像信息控制電路62包括處理器(CPU)63,數(shù)字信號處理器(DSP)64,處理視頻(圖像)數(shù)據(jù)的處理器65,和處理音頻數(shù)據(jù)的處理器66。
權(quán)利要求
1.一種處理器系統(tǒng),包括能夠并行進行算術(shù)處理的多個算術(shù)單元;保存所述多個算術(shù)單元用于算術(shù)處理的數(shù)據(jù)的存儲器;與主處理器的處理并行地執(zhí)行所述多個算術(shù)單元之間的數(shù)據(jù)傳輸,及所述多個算術(shù)單元和所述存儲器之間的數(shù)據(jù)傳輸?shù)亩鄠€DMA控制器;和與所述主處理器的處理并行地控制所述多個算術(shù)單元和所述多個DMA控制器的啟動的DMA控制電路。
2.按照權(quán)利要求1所述的處理器系統(tǒng),其中所述DMA控制電路控制所述多個DMA控制器的啟動,以致所述多個DMA控制器并行進行數(shù)據(jù)傳輸。
3.按照權(quán)利要求1所述的處理器系統(tǒng),其中所述DMA控制電路根據(jù)規(guī)定的事件,控制所述多個算術(shù)單元和所述多個DMA控制器的啟動,所述規(guī)定的事件至少包括從所述DMA控制器傳送的數(shù)據(jù)傳輸完成的通知,從所述算術(shù)單元傳送的算術(shù)處理完成的通知,和從所述主處理器傳送的通知之一。
4.按照權(quán)利要求3所述的處理器系統(tǒng),還包括保存與所述多個算術(shù)單元和所述多個DMA控制器的操作狀態(tài)相關(guān)的信息的狀態(tài)存儲器,其中所述DMA控制電路根據(jù)保存在所述狀態(tài)存儲器中的內(nèi)容,控制所述多個算術(shù)單元和所述多個DMA控制器的啟動。
5.按照權(quán)利要求4所述的處理器系統(tǒng),還包括保存操作所述多個DMA控制器所需的信息的DMA信息存儲器,其中所述DMA控制電路根據(jù)保存在所述狀態(tài)存儲器中的內(nèi)容,更新保存在所述DMA信息存儲器中的內(nèi)容。
6.按照權(quán)利要求1所述的處理器系統(tǒng),其中所述DMA控制電路執(zhí)行所述多個算術(shù)單元和所述多個DMA控制器的初始設(shè)置。
7.按照權(quán)利要求1所述的處理器系統(tǒng),其中所述DMA控制電路包括根據(jù)通用程序代碼執(zhí)行算術(shù)處理的通用處理器;和根據(jù)固有算法執(zhí)行算術(shù)處理的專用算術(shù)處理電路,其中所述專用算術(shù)處理電路根據(jù)來自通用處理器的指令,控制所述多個算術(shù)單元和所述多個DMA控制器的啟動。
8.按照權(quán)利要求7所述的處理器系統(tǒng),其中所述通用處理器根據(jù)其中描述所述多個算術(shù)單元和所述多個DMA控制器的啟動序列的程序代碼,指令所述專用算術(shù)處理電路。
9.按照權(quán)利要求1所述的處理器系統(tǒng),其中所述DAM控制電路包括保存其中描述所述多個算術(shù)單元和所述多個DMA控制器的啟動序列的程序代碼的啟動序列存儲器;和根據(jù)保存在所述啟動序列存儲器中的程序代碼,控制所述多個算術(shù)單元和所述多個DMA控制器的啟動的啟動控制器。
10.按照權(quán)利要求1所述的處理器系統(tǒng),還包括一個主處理器;和與所述主處理器連接,執(zhí)行圖形處理的圖形處理處理器,其中所述多個算術(shù)單元,所述存儲器,所述多個DMA控制器和所述DMA控制電路都設(shè)置在所述圖形處理處理器之內(nèi)。
11.按照權(quán)利要求10所述的處理器系統(tǒng),其中所述圖形處理處理器包括把多邊形的頂點信息轉(zhuǎn)換成象素數(shù)據(jù)的象素轉(zhuǎn)換器;和所述象素轉(zhuǎn)換器,所述DMA控制電路和所述存儲器共同連接的總線,其中所述多個算術(shù)單元通過利用所述象素轉(zhuǎn)換器的輸出和保存在所述存儲器中的數(shù)據(jù),進行算術(shù)運算。
12.按照權(quán)利要求1所述的處理器系統(tǒng),其中所述存儲器是獨立于主存儲器單獨設(shè)置的嵌入式DRAM。
13.一種DMA控制電路,包括分別保存與從主處理器指示的多個指令相關(guān)的信息的多個指令存儲器;和與所述主處理器的處理并行地執(zhí)行均能夠并行進行算術(shù)處理的多個算術(shù)單元之間的數(shù)據(jù)傳輸,及保存所述多個算術(shù)單元用于算術(shù)處理的數(shù)據(jù)的存儲器和所述多個算術(shù)單元之間的數(shù)據(jù)傳輸,并根據(jù)保存在所述多個指令存儲器中的信息,啟動所述多個算術(shù)單元的控制的調(diào)度器。
14.一種控制DAM控制器的方法,包括把能夠并行進行算術(shù)處理的算術(shù)單元用于算術(shù)處理的數(shù)據(jù)保存到存儲器中;在所述多個算術(shù)單元之間,以及在所述多個算術(shù)單元和所述存儲器之間,并行于主處理器的處理,利用多個DMA控制器進行數(shù)據(jù)傳輸;通過監(jiān)視所述多個DMA控制器和所述多個算術(shù)處理單元,傳送表示數(shù)據(jù)傳輸完成的數(shù)據(jù)傳輸完成信息;根據(jù)數(shù)據(jù)傳輸完成信息,確定其它數(shù)據(jù)傳輸是否可能;和當(dāng)確定數(shù)據(jù)傳輸可能時,通過使用所述多個DMA控制器中的至少一個,進行數(shù)據(jù)傳輸。
15.一種圖形處理方法,包括把頂點信息轉(zhuǎn)換成象素信息;根據(jù)象素信息,由多個算術(shù)單元產(chǎn)生圖像;把能夠并行進行算術(shù)處理的所述算術(shù)單元用于算術(shù)處理的數(shù)據(jù)保存到存儲器中;在所述多個算術(shù)單元之間,以及在所述多個算術(shù)單元和所述存儲器之間,利用多個DMA控制器進行數(shù)據(jù)傳輸;通過監(jiān)視所述多個DMA控制器和所述多個算術(shù)處理單元,傳送表示數(shù)據(jù)傳輸已完成的數(shù)據(jù)傳輸完成信息;根據(jù)數(shù)據(jù)傳輸完成信息,確定其它數(shù)據(jù)傳輸是否可能;和當(dāng)確定其它數(shù)據(jù)傳輸可能時,由所述多個DMA控制器中的至少一個,進行數(shù)據(jù)傳輸。
16.一種圖形處理電路,包括把頂點信息轉(zhuǎn)換成象素信息的象素信息轉(zhuǎn)換器;能夠根據(jù)象素信息并行進行算術(shù)處理的多個算術(shù)單元;在所述多個算術(shù)單元之間,以及在保存所述多個算術(shù)單元使用的數(shù)據(jù)的存儲器和所述算術(shù)單元之間,進行數(shù)據(jù)傳輸?shù)亩鄠€DMA控制器;保存與多個DAM傳輸相關(guān)的指令信息的指令信息存儲器;和根據(jù)保存在所述指令信息存儲器中的指令信息,確定所述多個DMA控制器的DMA傳輸是否可能的控制電路。
17.按照權(quán)利要求16所述的圖形處理電路,其中所述控制電路通過監(jiān)視所述多個DMA控制器,確定DMA傳輸是否完成。
18.按照權(quán)利要求17所述的圖形處理電路,其中所述指令信息是表示所述多個DMA控制器和所述多個算術(shù)單元之間的DMA傳輸是否完成的信息。
19.按照權(quán)利要求16所述的圖形處理電路,其中所述控制電路控制所述多個DMA控制器的啟動,從而所述多個DMA控制器并行進行數(shù)據(jù)傳輸。
20.按照權(quán)利要求16所述的圖形處理電路,其中所述控制電路根據(jù)規(guī)定的事件,控制所述多個算術(shù)單元和所述多個DMA控制器的啟動,所述規(guī)定的事件至少包括從所述DMA控制器傳送的數(shù)據(jù)傳輸完成的通知,從所述算術(shù)單元傳送的算術(shù)處理完成的通知,和從所述主處理器傳送的通知之一。
21.按照權(quán)利要求16所述的圖形處理電路,其中所述控制電路包括根據(jù)通用程序代碼執(zhí)行算術(shù)處理的通用處理器;和根據(jù)固有算法執(zhí)行算術(shù)處理的專用算術(shù)處理電路,其中所述專用算術(shù)處理電路根據(jù)所述通用處理器的指令,控制所述多個算術(shù)單元和所述多個DMA控制器的啟動。
22.按照權(quán)利要求16所述的圖形處理電路,其中設(shè)置30個以上的所述DMA控制器。
23.按照權(quán)利要求16所述的圖形處理電路,其中所述指令信息存儲器是嵌入式DRAM。
全文摘要
一種處理器系統(tǒng),包括能夠并行進行算術(shù)處理的多個算術(shù)單元;保存所述多個算術(shù)單元用于算術(shù)處理的數(shù)據(jù)的存儲器;與主處理器的處理并行地執(zhí)行所述多個算術(shù)單元之間的數(shù)據(jù)傳輸,及所述多個算術(shù)單元和所述存儲器之間的數(shù)據(jù)傳輸?shù)亩鄠€DMA控制器;和與所述主處理器的處理并行地控制所述多個算術(shù)單元和所述多個DMA控制器的啟動的DMA控制電路。
文檔編號G06T1/20GK1641614SQ20051000450
公開日2005年7月20日 申請日期2005年1月14日 優(yōu)先權(quán)日2004年1月16日
發(fā)明者齋藤誠一郎 申請人:株式會社東芝