專利名稱:數(shù)據(jù)傳送方法和數(shù)據(jù)傳送設備的制作方法
技術領域:
本發(fā)明涉及數(shù)據(jù)傳送方法和數(shù)據(jù)傳送設備,用于在連接到兩種不同的總線上的兩個裝置或存儲器之間進行數(shù)據(jù)傳送,更具體講,本發(fā)明涉及進行診斷的數(shù)據(jù)傳送方法和數(shù)據(jù)傳送設備,比如診斷數(shù)據(jù)傳送是否在正常作用。
背景技術:
迄今為止,已知有這樣一種系統(tǒng),其中,不同的總線,比如主總線和子總線,通過比如網(wǎng)關等的總線中繼器(repeater)連接,以便由設在主總線中的DMA(直接存儲器存取)控制器在這些總線之間進行DMA數(shù)據(jù)傳送。
例如,在圖1所示的結(jié)構(gòu)中,主總線101和子總線102都連接到總線中繼器103,比如網(wǎng)關等。比如CPU或各種接口等的裝置104,和DMA控制器105連接到主總線101,而裝置106和比如ROM等的存儲器107連接到子總線102。
在圖1的例子中,主總線101上的DMA控制器105也通過總線中繼器103控制子總線102,從而在比如裝置104和裝置106之間實現(xiàn)DMA傳送。如上所述,如果即使在不同的總線101、102之間,各總線的接入時間也在相同的數(shù)量級上,那么就可以在沒有無用等待(備用)時間的情況下實現(xiàn)有效的數(shù)據(jù)傳送。
同時,當在一個系統(tǒng)中同時存在不同總線時,許多情況下都是總線寬度和/或數(shù)據(jù)存取速度不同。例如,在圖1的例子中,主總線101具有32位總線寬度和高數(shù)據(jù)存取速度,而子總線102具有16位總線寬度和低數(shù)據(jù)存取速度。
當讓DMA傳送在總線寬度和/或數(shù)據(jù)存取速度不同的總線之間進行時,有一個缺點就是使無用等待(備用)時間占據(jù)高速總線,如,圖1的主總線101。
從以上來看,有可能通過緩沖存儲器連接兩種不同的總線,以便通過該緩沖存儲器進行DMA傳送。在這種情況下,當試圖進行比如DMA傳送是否正常起作用的診斷時,需要使各總線的CPU運行于調(diào)試模式。這是很麻煩的。
然而,當數(shù)據(jù)傳送還沒有正常進行時,由于考慮到兩條總線的CPU或診斷程序有一些不足,在很多情況下找到原因都變得非常困難。
尤其是,當CPU或DMA控制器等設在一個LSI內(nèi)部時,需要很長的開發(fā)時間,并且診斷進程等變?yōu)楹艽髥栴}。
在LSI被設計或?qū)嵺`中試制之前,進行包括外圍設備的軟件仿真,以盡可能多地確認功能。然而,由于它需要大量仿真時間,不能進行充分驗證,并且,實際情況中還需要在做好了試驗制品LSI等之后,在短時間內(nèi)嚴密檢查問題。這樣,就出現(xiàn)了許多如上所述的調(diào)試困難的情況,造成了產(chǎn)品開發(fā)的障礙。
此外,當在裝置之間進行數(shù)據(jù)傳送時,為方便各個裝置而安排數(shù)據(jù)。為處理這種情況,需要舍去(round down)額外的數(shù)據(jù),或者將另一數(shù)據(jù)插入已傳送的數(shù)據(jù)串之間的部分。
當CPU試圖對于在存儲器上形成的數(shù)據(jù)串進行如上所述的操作時,它一次將這種數(shù)據(jù)串讀入CPU的寄存器,此后須第二次將其寫入。由于此,效率很差(低)。這就減少了當CPU試圖進行其它工作時所需的時間,并且是不可取的。
在此,可以看出,DMA控制器在數(shù)據(jù)傳送時改變每一次的傳送源地址或傳送目的地址。在這種情況下,傳送源地址和傳送數(shù)量表已準備,并且DMA控制器每一次都根據(jù)該表進行DMA傳送。然而,CPU必須準備傳送規(guī)程表。結(jié)果,造成的困難是產(chǎn)生了每一次都檢驗傳送規(guī)程等的額外工作。
而且,如上所述,當在一個系統(tǒng)中同時存在不同總線時,許多情況下都是總線寬度不同。例如,在圖1的例子中,主總線101具有32位總線寬度和高數(shù)據(jù)存取速度,而子總線102具有16位總線寬度和低數(shù)據(jù)存取速度。并且,當讓DMA傳送在如上所述總線寬度不同的總線之間進行時,很多情況下都是舍去額外的數(shù)據(jù),或者將另一數(shù)據(jù)插入已傳送的數(shù)據(jù)串之間的部分。并且,在這種情況下,有可能很容易地進行數(shù)據(jù)結(jié)構(gòu)的改變或地址的確定。
發(fā)明內(nèi)容
鑒于這樣的實際情況提出了本發(fā)明,并且本發(fā)明的一個目的是提供一種能夠容易地在不同的兩條總線之間實施DMA傳送功能,并能夠在短時間內(nèi)指定問題所在的數(shù)據(jù)傳送方法和數(shù)據(jù)傳送設備。
此外,本發(fā)明的另一個目的是提供一種能夠在不同的總線之間的數(shù)據(jù)傳送中,在不增加CPU負擔的情況下,輕易改變傳送數(shù)據(jù)塊,從而實現(xiàn)工作效率的提高的數(shù)據(jù)傳送方法和數(shù)據(jù)傳送設備。
那就是說,為解決上述問題,本發(fā)明包括第一總線和第二總線;總線中繼裝置,具有連接到第一和第二兩條總線的緩沖存儲器;連接到第一總線的第一DMA(直接存儲器存取)控制裝置;和連接到第一總線的第一數(shù)據(jù)處理裝置(CPU),其中所述總線中繼裝置具有發(fā)出DMA請求到第一DMA控制裝置的功能,并具有通過第一數(shù)據(jù)處理裝置屏蔽該DMA請求的功能,以通過第一數(shù)據(jù)處理裝置屏蔽總線中繼裝置的DMA請求,從而在總線中繼裝置內(nèi)直接存取該緩沖存儲器。
在這種情況下,需提到的是第二DMA(直接存儲器存取)控制裝置和第二數(shù)據(jù)處理裝置(CPU)連接到所述第二總線,第一和第二DMA控制裝置對于總線中繼裝置內(nèi)的緩沖存儲器執(zhí)行數(shù)據(jù)讀/寫操作,從而在第一和第二總線之間進行數(shù)據(jù)傳送,所述總線中繼裝置具有發(fā)出DMA請求到第二DMA控制裝置的功能,并具有通過第二數(shù)據(jù)處理裝置屏蔽該DMA請求的功能,以通過第二數(shù)據(jù)處理裝置屏蔽總線中繼裝置的DMA請求,從而在總線中繼裝置內(nèi)直接存取該緩沖存儲器。
在這種情況下,需提到的是在總線中繼裝置的其它總線上的DMA請求由第一和第二數(shù)據(jù)處理裝置(CPU)中的一個屏蔽,以便在在總線中繼器內(nèi)從所述其它總線開始存取所述緩總存儲器。
而且,本發(fā)明的特征在于彼此不同的所述第一和第二總線通過具有緩沖存儲器的總線中繼裝置連接,第一DMA(直接存儲器存取)控制裝置連接到第一總線,而第二DMA控制裝置連接到第二總線,以便在連接到第一總線的存儲器或裝置和連接到第二總線的存儲器或裝置之間,通過所述第一和第二DMA控制裝置實施DMA傳送,并通過數(shù)據(jù)處理裝置(CPU)屏蔽從總線中繼裝置到第一或第二DMA控制裝置的DMA請求,從而在總線中繼裝置內(nèi)通過數(shù)據(jù)處理裝置直接存取緩沖存儲器。
在這種情況下,需提到的是第一數(shù)據(jù)處理裝置設于第一總線處,而所述第二數(shù)據(jù)處理裝置設于第二總線處,第一數(shù)據(jù)處理裝置屏蔽第一總線上的DMA請求,而第二數(shù)據(jù)處理裝置屏蔽第二總線上的直接存儲器存取請求,并且,第一和第二數(shù)據(jù)處理裝置直接存取總線中繼器內(nèi)的緩沖存儲器,其傳送條件與第一和第二數(shù)據(jù)處理裝置存取各總線上的控制裝置的傳送條件相同。
此外,需提到的是第一數(shù)據(jù)處理裝置屏蔽第二總線上的DMA請求,并且第一數(shù)據(jù)處理裝置從第二總線側(cè)直接存取總線中繼器內(nèi)的緩沖存儲器。
在各總線上的存儲器或裝置以及總線中繼裝置的緩沖存儲器之間,通過第一和第二總線上的各自的DMA控制裝置,進行DMA傳送,從而能夠在不同總線的各存儲器和裝置之間通過該緩沖存儲器實現(xiàn)DMA傳送。此時,各總線上的數(shù)據(jù)處理裝置(CPU)屏蔽各總線上的DMA請求,以便直接存取該緩沖存儲器,從而能夠檢驗DMA功能。而且,第一總線上的數(shù)據(jù)處理裝置屏蔽第二總線上的DMA請求,以便從第二總線側(cè)存取緩沖存儲器,從而能夠檢驗第二總線的DMA功能。
此外,為解決上述,問題本發(fā)明的特征在于,彼此不同的第一和第二總線通過具有緩沖存儲器的總線中繼裝置連接,以便通過總線中繼裝置內(nèi)的緩沖存儲器在第一總線和第二總線之間進行數(shù)據(jù)傳送,并且,總線中繼裝置在數(shù)據(jù)傳送時加入虛數(shù)據(jù)(dummy data),從而擴大傳送數(shù)據(jù)塊的大小,或者,總線中繼裝置在數(shù)據(jù)發(fā)送時略去一部分數(shù)據(jù),從而減小傳送數(shù)據(jù)塊的大小。
在這種情況下,需提到的是在總線中繼裝置內(nèi)的第一總線和緩沖存儲器之間,由連接到第一總線的第一直接存儲器存取控制裝置,進行數(shù)據(jù)傳送控制,并且,在總線中繼裝置內(nèi)的第二總線和緩沖存儲器之間,由連接到第二總線的第二直接存儲器存取控制裝置,進行數(shù)據(jù)傳送控制。此外,需提到的是總線中繼裝置是可操作的,以便即使緩沖存儲器中的數(shù)據(jù)在數(shù)據(jù)傳送時丟失,總線中繼裝置也能在提供了輸出請求時輸出虛數(shù)據(jù),從而擴大傳送數(shù)據(jù)塊的大小,或者,在緩沖存儲器中的數(shù)據(jù)于輸出端的數(shù)據(jù)傳送結(jié)束的數(shù)據(jù)傳送之時保持時,總線中繼裝置消除保留數(shù)據(jù),從而減小傳送數(shù)據(jù)塊的大小。
調(diào)節(jié)傳送的總線中繼器另外具有了擴大或減小傳送數(shù)據(jù)的塊大小的功能,從而使其有可能在數(shù)據(jù)傳送時進行簡單數(shù)據(jù)結(jié)構(gòu)的改變。
圖1是說明傳統(tǒng)的使用兩條總線的系統(tǒng)的方框圖;圖2是說明本發(fā)明一個實施例的結(jié)構(gòu)概況的方框圖;圖3是說明用在本發(fā)明實施例中的總線中繼器的內(nèi)部結(jié)構(gòu)例子的方框圖;圖4是用于解釋本發(fā)明實施例的操作的一個例子的流程圖;圖5是用于解釋本發(fā)明實施例的操作的另一個例子的流程圖;圖6是說明更實用的傳送之前的數(shù)據(jù)串例子的圖;圖7是說明更實用的通過略去傳送中的一部分而獲得的數(shù)據(jù)串例子的圖;圖8是說明更實用的通過在傳送中補充另一個數(shù)據(jù)而獲得的數(shù)據(jù)串例子的圖;圖9是說明要傳送到紋理圖片(texture picture)上的數(shù)據(jù)區(qū)域的一個例子的圖;圖10是說明圖9中存儲器上的數(shù)據(jù)安排的圖;圖11是說明將標題分別加到幾個數(shù)據(jù)串的一個例子的圖;圖12是說明更實用的加到圖11的標題的例子的圖;圖13是說明應用本發(fā)明實施例的系統(tǒng)的一個例子的方框圖。
具體實施例方式
下面將參照附圖描述本發(fā)明的實施例。
圖2是說明應用作為本發(fā)明實施例的數(shù)據(jù)傳送方法的系統(tǒng)結(jié)構(gòu)的方框圖。
在圖2中,第一總線11和第二總線12連接到采用FIFO(先進先出)之類緩沖存儲器構(gòu)成的總線中繼器13,這就使得通過總線中繼器13在總線11和12之間進行數(shù)據(jù)的相互傳送。CPU 21、DMA(直接存儲器存取)控制器22、裝置23和存儲器24等連接到第一總線11,而CPU 26、DMA控制器27、裝置28和存儲器29等連接到第二總線12。
裝置23能夠向DMA控制器22發(fā)出DMA請求,而裝置28能夠向DMA控制器27發(fā)出DMA請求。作為裝置23、28的,可以是用于圖片或語音的編碼器/解碼器、用于圖形處理的圖形引擎、圖片處理或語音處理IC等,通過其各個接口的硬盤單元、磁光盤單元、軟盤單元和/或比如CD-ROM單元的外圍設備等??偩€中繼器13能夠分別向DMA控制器22、27發(fā)出DMA請求(DREQ)。通過DMA請求,有可能指定多個DMA通道中的任何一個。此外,總線中繼器13比如能夠向總線12上的CPU 26發(fā)出使用總線12的權利的請求(BREQ總線請求),并從CPU 26接收總線使用允許響應(BACK總線確認)。
圖3示出用在圖2的系統(tǒng)中的總線中繼器13的結(jié)構(gòu)的一個例子。在圖3中,圖2中的第一總線11在此指示為分為數(shù)據(jù)總線11a和地址/控制總線11b,而第二總線12在此指示為分為數(shù)據(jù)總線12a和地址/控制總線12b。在總線中繼器13內(nèi),提供了連接到第一總線11的數(shù)據(jù)總線11a的內(nèi)部總線31,和連接到第二總線12的數(shù)據(jù)總線12a的內(nèi)部總線32。FIFO存儲器33連接到這些內(nèi)部總線31、32。而且,緩沖控制單元34可連接到可連接到這些內(nèi)部總線31、32。緩沖控制單元還連接到第一總線11的地址/控制總線11b和第二總線12的地址/控制總線12b。此外,用于在緩沖控制單元34和圖2的DMA控制器22、27之間進行DMA請求(DREQ)或通道指定等的控制信號線連接到緩沖控制單元34。
屏蔽標志35是禁止總線11側(cè)的DMA的標志。當通過控制圖2的CPU21使該標志為ON或“1”時,不輸出從緩沖控制單元34到圖2的DMA控制器22的DMA請求(DREQ)。屏蔽標志36是禁止總線12側(cè)的DMA的標志。當通過控制圖2的CPU 26使該標志為ON或“1”時,不輸出從緩沖控制單元34到圖2的DMA控制器27的DMA請求(DREQ)。
DREQ位37和38是分別表示對于相應的總線11和12的DMA請求ON/OFF(或“1”/“0”)的標志。這些位能夠從CPU 21、26讀取。這些DREQ位37和38的標志即便在上述屏蔽標志35、36為ON時也不被屏蔽,并且,不在DMA請求(DREQ)中出現(xiàn)的,對于相應的DMA控制器22、27的DMA請求的狀態(tài)可由相應的CPU 21、26讀取。
總線網(wǎng)關39用于連接內(nèi)部總線31和32,以便圖2的總線11側(cè)的CPU21訪問總線12。這些屏蔽標志35,36、DREQ位37,38和總線網(wǎng)關39連接到緩沖控制單元34。
在圖3所示的總線中繼器13中,F(xiàn)IFO存儲器33是用作緩沖器的存儲器,并適合于使數(shù)據(jù)的輸入/輸出對應于總線11、12而被控制,總線11、12由緩沖控制單元34來訪問,即,由與其連接的內(nèi)部總線31、32來訪問。緩沖控制單元34控制FIFO存儲器33的存取操作,并發(fā)出對于相應總線11、12的DMA控制器22、27的DMA請求(DREQ),以接收其響應(DARKDMA確認)。該DMA請求可以指定多個DMA通道中的任何一個來輸出它。來自DMA控制器22、27的DMA通道選擇信息也被發(fā)送到緩沖控制單元34。
此外,例如,當CPU 21對于總線12的地址進行訪問時,總線中繼器13的緩沖控制單元34向總線12的CPU 26發(fā)出總線12的使用權請求(BREQ總線請求)。響應于該總線請求,CPU 26向總線中繼器13的緩沖控制單元34發(fā)送允許使用總線12的響應(BACK總線確認)。此后,CPU 21可訪問總線12上的總線中繼器13的內(nèi)部總線32側(cè)的屏蔽標志36、FIFO 33、DMA控制器27、裝置28和存儲器29等。
同時,當通過總線中繼器13在第一總線11和第二總線12之間進行DMA傳送時,必須使DMA控制器22和27的設定(即,數(shù)據(jù)大小等)相互對應,而沒有不一致現(xiàn)象。CPU 21進行對應于DMA控制器22的總線上的DMA設定,而CPU 26進行對應于DMA控制器27的總線上的DMA設定。
在從第一總線11的存儲器24到第二總線12的存儲器29進行DMA方式的數(shù)據(jù)傳送的情況下,必須進行設定,使得對于從存儲器24到第一總線11的DMA控制器22中的總線中繼器13的DMA來說,以及對于從總線中繼器13到第二總線12的DMA控制器27中的存儲器29的DMA來說,所提供的DMA通道相互對應于同樣的數(shù)據(jù)大小(數(shù)據(jù)量)。在此設定后的處理步驟如圖4所示。
在圖4中,在第一步驟S61,執(zhí)行從總線中繼器13到DMA控制器22的DMA請求(DREQ)。在下一步驟S62中,DMA控制器22向CPU 21發(fā)出對總線11的使用權請求(BREQ),以獲得總線使用權從而進行從存儲器24到總線中繼器13的DMA傳送。在下一步驟S63中,總線中繼器13執(zhí)行對于DMA控制器27的DMA請求(DREQ)。在下一步驟S64中,DMA控制器27向CPU 26發(fā)出對總線12的使用權請求(BREQ),以獲得總線使用權從而進行從總線中繼器13到存儲器24的DMA傳送。
此外,在從第二總線12上的裝置28到第一總線11上的裝置23進行DMA方式的數(shù)據(jù)傳送的情況下,必須進行設定,使得對于從裝置28到DMA控制器27中的總線中繼器13的DMA來說,以及對于從總線中繼器13到DMA控制器22中的裝置23的DMA來說,所提供的DMA通道相互對應于同樣的數(shù)據(jù)大小(數(shù)據(jù)量)。在此設定后的處理步驟如圖5所示。
在圖5的第一步驟S71,第二總線上的裝置28對于DMA控制器27執(zhí)行DMA請求(DREQ)。在下一步驟S72中,總線中繼器13對于DMA控制器27執(zhí)行DMA請求(DREQ)。在步驟S73,DMA控制器27響應以分別接收來自裝置28和總線中繼器13的DMA請求,從而向CPU 26請求總線12的使用權(BREQ),以獲得總線使用權,從而進行從裝置28到總線中繼器13的DMA傳送。此時,類似于正常的DMA傳送,當CPU 26響應于總線請求(BREQ)而打開總線時,CPU 26向DMA控制器27回送響應,并且DMA控制器27向總線中繼器13回送DMA確認(DARK),等。在下一步驟S74中,總線中繼器13對于第一總線上的DMA控制器22執(zhí)行DMA請求(DREQ)。在步驟S75,裝置23對于DMA控制器22執(zhí)行(DREQ)。在下一步驟S76中,DMA控制器22響應以分別接收來自裝置23和總線中繼器13的DMA請求,從而向CPU 21請求總線11的使用權(BREQ),以獲得總線使用權,從而進行從總線中繼器13到裝置23的DMA傳送。
應注意,由于總線中繼器13的比如FIFO等的存儲器容量是有限的,當發(fā)送大于上述容量大小的數(shù)據(jù)時,只要對于DMA控制器22、27設定分傳送以重復從步驟S61到S64或步驟S71到S76的過程就可以了。由總線中繼器13的存儲容量來決定該分傳送的一個傳送(塊)。
因此,通過總線中繼器13的緩沖存儲器而使DMA傳送在兩條總線11、12之間進行,從而能夠在兩條不同總線之間執(zhí)行DMA,而沒有等待(備用)時間出現(xiàn)。而且,多個DMA通道允許在同一時間進行操作,從而簡化了CPU的處理,實現(xiàn)了簡單編程和較少的負擔。此外,可輕易寫入多線程序(programof multi-sled)。
同時,例如,當CPU 21訪問總線12時,總線中繼器13向CPU 26請示總線12的使用權(BREQ),以接收其響應(BACK),從而訪問總線12上的DMA控制器27、裝置28和存儲器29等。
此時,圖3的FIFO 33為可操作的,以使當對于DMA控制器22、27的DMA請求(DREQ)由屏蔽標志35、36禁止時,能夠在相應的總線11、12上進行I/O存取操作。在這種情況下,這種I/O存取必須等同進行,沒有DMA處理上的不一致性。因此,訪問不能隨機進行,但允許I/O存取在與DMA存取相同的條件下進行。這種I/O存取條件的一個例子如下面的表1所示。
表1
該表1的“信號和標志狀態(tài)”一欄中的“*”表示任意(隨意)狀態(tài)。
在這種情況下,作為診斷DMA功能的條件,可以是如下所述情況。
條件#1利用DMA控制器22、27以及總線11、12進行數(shù)據(jù)傳送。
條件#2CPU 21通過I/O存取僅在總線11側(cè)進行數(shù)據(jù)的發(fā)送/接收。
條件#3CPU 26通過I/O存取僅在總線12側(cè)進行數(shù)據(jù)的發(fā)送/接收。
條件#4CPU 21、26通過I/O存取在總線11和總線12兩側(cè)進行數(shù)據(jù)的發(fā)送/接收。
條件#5在總線12側(cè)的裝置不存在或者不使用總線12側(cè)的裝置的情況下,通過總線11側(cè)的DMA控制器22進行DMA方式的數(shù)據(jù)傳送,并且CPU21通過總線12側(cè)的I/O存取進行數(shù)據(jù)傳送。
條件#6在總線12側(cè)的裝置不存在或者不使用總線12側(cè)的裝置的情況下,CPU 21通過總線11和12兩側(cè)的I/O存取進行數(shù)據(jù)傳送。
應注意,在此認為以條件#6開始的相反順序作為實際調(diào)試順序進行DMA功能的診斷。
通過以如上所述程序在上述各條件#1到#6下進行數(shù)據(jù)傳送,以檢測問題發(fā)生在什么條件下,能夠指出不完善功能單元或出問題的功能單元。
條件#1屏蔽標志35off,屏蔽標志36off傳送方向*CPU 21傳送到DMAC 22的指令CPU 26傳送到DMAC 27的指令條件#2屏蔽標志35on,屏蔽標志36off傳送方向總線11→總線12CPU 26傳送到DMAC 27的指令CPU 21等待DREQ位37的on狀態(tài),以將數(shù)據(jù)寫入總線中繼器13。
傳送方向總線12→總線11CPU 26傳送到DMAC 27的指令CPU 21等待DREQ位37的on狀態(tài),以從總線中繼器13讀取數(shù)據(jù)。
條件#3屏蔽標志35off,屏蔽標志36on傳送方向總線11→總線12CPU 21傳送到DMAC 22的指令CPU 26等待DREQ位38的on狀態(tài),以從總線中繼器13讀取數(shù)據(jù)。
傳送方向總線12→總線11CPU 21傳送到DMAC 22的指令CPU 26等待DREQ位38的on狀態(tài),以將數(shù)據(jù)寫入總線中繼器13。
條件#4屏蔽標志35on,屏蔽標志36on傳送方向總線11→總線12CPU 21等待DREQ位37的on狀態(tài),以將數(shù)據(jù)寫入總線中繼器13。
CPU 26等待DREQ位38的on狀態(tài),以從總線中繼器13讀取數(shù)據(jù)。
傳送方向總線12→總線11CPU 21等待DREQ位38的on狀態(tài),以將數(shù)據(jù)寫入總線中繼器13。
CPU 26等待DREQ位37的on狀態(tài),以從總線中繼器13讀取數(shù)據(jù)。
條件#5屏蔽標志35off,屏蔽標志36on傳送方向總線11→總線12CPU 21傳送到DMAC 22的指令等待DREQ位38的on狀態(tài),以從總線中繼器13讀取數(shù)據(jù)。
傳送方向總線12→總線11CPU 21傳送到DMAC 22的指令等待DREQ位38的on狀態(tài),以將數(shù)據(jù)寫入總線中繼器13。
條件#6屏蔽標志35on,屏蔽標志36on傳送方向總線11→總線12CPU 21等待DREQ位37的on狀態(tài),以將數(shù)據(jù)寫入總線中繼器13。等待DREQ位38的on狀態(tài),以從總線中繼器13讀取數(shù)據(jù)。
傳送方向總線12→總線11CPU 21等待DREQ位38的on狀態(tài),以將數(shù)據(jù)寫入總線中繼器13。等待DREQ位37的on狀態(tài),以從總線中繼器13讀取數(shù)據(jù)。
通過確定在什么條件下這六種特別狀態(tài)條件發(fā)生,進行出錯部分或問題點的診斷。在這種情況下,發(fā)送到總線12上的數(shù)據(jù)可以由CPU 21的測試程序通過使CPU 21直接訪問總線12而確認。
因此,根據(jù)本發(fā)明的這種實施例,能夠容易地在不同總線11、12之間調(diào)試DMA傳送功能,從而指定有問題部分。而且,僅通過用作主總線的總線11上的CPU 21,可進行功能確認。而且,通過直接提供對其它總線12的訪問,除DMA功能之外的調(diào)試也可進行。
總結(jié)上述說明,根據(jù)本發(fā)明的實施例,在第一總線和第二總線之間提供具有緩沖存儲器的總線中繼裝置,并且第一直接存儲器存取(DMA)控制裝置連接到第一總線,而第二直接存儲器存取控制裝置連接到第二總線,以便通過緩沖存儲器,利用這些第一和第二直接存儲器存取控制裝置,在連接到第一總線的存儲器或裝置和連接到第二總線的存儲器或裝置之間進行直接存儲器存取傳送,并通過數(shù)據(jù)處理裝置(CPU)屏蔽從總線中繼裝置到第一或第二直接存儲器存取裝置的直接存儲器存取請求,從而通過數(shù)據(jù)處理裝置在總線中繼裝置內(nèi)直接訪問緩沖存儲器,由此,通過緩沖存儲器在不同總線的各存儲器或裝置之間進行直接存儲器存取傳送。此時,各總線上的數(shù)據(jù)處理裝置(CPU)屏蔽各總線上的直接存儲器存取請求,以直接存取緩沖存儲器,從而能夠檢驗直接存儲器存取功能。此外,第一總線上的數(shù)據(jù)處理裝置屏蔽第二總線上的直接存儲器存取請求,以便從第二總線側(cè)訪問緩沖存儲器,從而能夠檢驗第二總線側(cè)的直接存儲器存取功能。
因此,有可能容易調(diào)試不同總線之間的直接存儲器存取傳送功能。而且,僅通過主總線上的數(shù)據(jù)處理裝置,可以進行功能確認。此外,通過提供對其它總線的直接訪問,也可進行除直接存儲器存取功能之外的調(diào)試。
下面將結(jié)合例子給出解釋,在該例子中,可以容易改變通過存儲器在不同總線之間進行DMA傳送的系統(tǒng)的傳送數(shù)據(jù)的塊大小。
在該例中,總線中繼器13在發(fā)送時加入虛數(shù)據(jù),或略去數(shù)據(jù)的一部分,從而改變塊大小。
也就是說,在來自傳送源的連續(xù)數(shù)據(jù)串在DMA傳送中全部寫入傳送目的情況下(如參照上述圖2到5所解釋的),進行設定,以使一個傳送單元(塊)的大小為總線中繼器13內(nèi)的FIFO 33及DMA控制器22的大小,從而可進行最有效的傳送。
在輸入到緩沖器(FIFO 33)中的數(shù)據(jù)量和從其中輸出的數(shù)據(jù)量互不相同的情況下,總線中繼器13具有進行如下所述的處理的作用。
也就是說,首先,在甚至輸入數(shù)據(jù)從緩沖器(FIFO 33)丟失也進一步發(fā)出輸出請求的情況下,總線中繼器13輸出虛數(shù)據(jù)。
其次,在完成輸出側(cè)的DMA輸入數(shù)據(jù)留在緩沖器(FIFO 33)中的情況下,舍去所留數(shù)據(jù)。
利用這樣的總線中繼器13的功能,能夠改變要傳送的數(shù)據(jù)串的結(jié)構(gòu)。作為數(shù)據(jù)串結(jié)構(gòu)的變化,要提到的是在DMA傳送時附加虛數(shù)據(jù)從而擴大數(shù)據(jù)塊大小,和在DMA傳送時略去部分數(shù)據(jù)從而減小數(shù)據(jù)塊大小。
下面將解釋在總線中繼器13的緩沖器(FIFO 33)的容量為64字節(jié)的情況下的一個更實用的例子。
例如,假定圖6所示的數(shù)據(jù)串S1A、S1B、S1C、S2A…形成于圖2的存儲器29中,這些數(shù)據(jù)串S1A、S1B、S1C、S2A…的下標A、B、C代表種類互不相同的數(shù)據(jù),并假定僅將此三個種類的數(shù)據(jù)中的B、C類數(shù)據(jù)傳送到圖2的裝置23中。此時,有必要將圖7所示的數(shù)據(jù)串寫入裝置23。在這種情況下,數(shù)據(jù)串S1A、S1B、S1C、S2A…的下標的數(shù)字1、2、3表示分別為一個傳送單元的數(shù)據(jù)塊號碼。
在DMA控制器27中,對這樣的DMA傳送進行設定,以傳送從數(shù)據(jù)串S1B開始的,包括數(shù)據(jù)S1A、S1B、S1C、S2A…的所有種類(A、B、C)(即,以32字節(jié)作為一個塊)的三個塊。相反,在DMA控制器22中,進行設定,以便僅以兩個種類B、C(即,以24字節(jié)作為一個塊)傳送三個數(shù)據(jù)塊。這樣,舍去了種類C的數(shù)據(jù)串(S1C、S2C)之后的8個字節(jié)(數(shù)據(jù)串S2A、S3A)。鑒于此,圖7所示的數(shù)據(jù)串可被最終寫入到裝置23。
然后,假設為這種情況,其中,試圖從圖2的裝置23輸出如圖7所示格式的數(shù)據(jù)串,以將這樣的數(shù)據(jù)串形成于比如存儲器29中,并如圖8所示將種類D數(shù)據(jù)串插入到種類C數(shù)據(jù)串之后。
在這種情況下,在DMA控制器27中,進行設定,以便以36字節(jié)為一個塊來傳送3個塊。此時,作為DMA傳送的結(jié)果,12字節(jié)的虛數(shù)據(jù)寫入到種類B、C的24字節(jié)數(shù)據(jù)串之后的部分。鑒于此,圖2的CPU 26可直接將種類D數(shù)據(jù)串寫入該虛數(shù)據(jù)區(qū)。也就是說,CPU 26可省去用于轉(zhuǎn)移存儲器29上的數(shù)據(jù)的工作。
應注意,例如,在圖2的裝置28輸出圖8所示的數(shù)據(jù)串以便僅將其種類B、C的數(shù)據(jù)串寫入到裝置23的情況下,在DMA控制器27中進行設定,以便從數(shù)據(jù)串開始之處以36字節(jié)為1塊傳送3個塊就可以了,并且,在DMA控制器27中以24字節(jié)為1塊傳送3個塊也可以了。
通過使調(diào)節(jié)傳送的總線中繼器額外具有上述功能,就能夠在傳送數(shù)據(jù)串時進行簡單數(shù)據(jù)結(jié)構(gòu)的轉(zhuǎn)換,這樣就能提高系統(tǒng)性能。
下面將結(jié)合更實用的例子參照附圖進行解釋,在該例子中,舍去了如上所述的額外數(shù)據(jù)或?qū)⑵渌鼣?shù)據(jù)插入數(shù)據(jù)串之間部分。
圖9示出在計算機圖形等圖片處理中用于紋理映射的紋理圖片區(qū),假設傳送寬紋理區(qū)內(nèi)的一部分,比如由圖中斜線部分所示的區(qū)域T1、T2、T3、T4。紋理圖片形成于如圖10所示的比如存儲器上,并要求當傳送該存儲器上的部分區(qū)域T1、T2、T3、T4的數(shù)據(jù)時,舍去額外的數(shù)據(jù)。
此外,作為數(shù)據(jù)附加的例子,提到了如圖11所示的將標題(header)分別附加到幾個數(shù)據(jù)串,如多邊形數(shù)據(jù)的情況。也就是說,對于多邊形數(shù)據(jù),數(shù)據(jù)串的大小根據(jù)頂點數(shù)目、陰影或紋理的存在/不存在等而變化。此外,為了區(qū)別紋理數(shù)據(jù)或區(qū)別傳送目的地,有附加標題(GPUIFtag)的情況。由GPU(圖形處理單元)的接口GPUIF傳送的數(shù)據(jù),使得由引導標題(GPUIFtag)構(gòu)成的稱為源的一組數(shù)據(jù)和其后的數(shù)據(jù)成為基本單元,而在一束(bundle)中處理的多個源成為集合的GPU包。圖12示出標題(GPUIFtag)結(jié)構(gòu)的例子,其包括從MSB開始的寄存器描述符REGS、寄存器描述符數(shù)碼NREG和數(shù)據(jù)形式FLG等。當如上所述將標題(GPUIFtag)加到多邊形數(shù)據(jù)時,有必要將另一數(shù)據(jù)插入數(shù)據(jù)串之間的部分。
當需要如上所述的簡單數(shù)據(jù)結(jié)構(gòu)的轉(zhuǎn)換時,采用本發(fā)明的上述實施例,從而省去了其中CPU對以DMA傳送到存儲器上的數(shù)據(jù)串進行排序(sequencing)和對要以DMA傳送到存儲器上的數(shù)據(jù)串進行排序的低效率工作。這樣,提高了系統(tǒng)性能。并且能夠在不同數(shù)據(jù)格式的裝置之間進行DMA傳送。此外,也省去了準備特別指定傳送源地址或傳送量表,或者對表進行參照的工作。
從上述說明中可以明顯看出,根據(jù)參照本發(fā)明實施例的圖6到11的例子所說明的,具有緩沖存儲器的總線中繼裝置設在第一總線和第二總線之間,以通過總線中繼裝置內(nèi)的緩沖存儲器在第一總線和第二總線之間進行數(shù)據(jù)傳送。總線中繼裝置在數(shù)據(jù)傳送時加入虛數(shù)據(jù),從而擴大傳送數(shù)據(jù)塊大小,或者在數(shù)據(jù)傳送時略去一部分數(shù)據(jù),從而減小傳送數(shù)據(jù)塊大小,因此能夠在傳送時進行簡單數(shù)據(jù)結(jié)構(gòu)的改變。這樣,就能提高系統(tǒng)性能。
此外,第一直接存儲器存取控制裝置連接到第一總線,以在第一總線和總線中繼裝置內(nèi)的緩沖存儲器之間進行數(shù)據(jù)傳送控制,并且,第二直接存儲器存取控制裝置連接到第二總線,以在第二總線和總線中繼裝置內(nèi)的緩沖存儲器之間進行數(shù)據(jù)傳送控制。使總線中繼裝置具有在發(fā)出輸出請求時,即使緩沖存儲器內(nèi)的數(shù)據(jù)在數(shù)據(jù)傳送時丟失也能輸出虛數(shù)據(jù)的功能,并具有在緩沖存儲器中的數(shù)據(jù)于輸出端的數(shù)據(jù)傳送結(jié)束的數(shù)據(jù)傳送之時保持時,消除保留數(shù)據(jù),從而減小傳送數(shù)據(jù)塊的大小的功能。這樣,就省去了諸如CPU對已進行數(shù)據(jù)傳送的存儲器上的數(shù)據(jù)進行排序處理,和對要進行數(shù)據(jù)傳送的存儲器上的數(shù)據(jù)進行排序處理的低效率工作。而且,也省去了準備或參照用于數(shù)據(jù)傳送的傳送源地址,或傳送量的特別傳送指定表等的精力。此外,還能夠在不同數(shù)據(jù)格式的裝置之間進行數(shù)據(jù)傳送。
圖13示出采用本發(fā)明的上述實施例的系統(tǒng)的例子。在此系統(tǒng)中,執(zhí)行高速圖片處理的主總線111,和連接低速外圍裝置如CD-ROM驅(qū)動器等的子總線112,通過具有緩沖存儲器如FIFO等的總線中繼器113相連。
也就是說,主CPU 121、DMA控制器122、用于高速圖片處理的圖形引擎123和主存儲器124連接到高速主總線111,而子CPU 126、DMA控制器127、比如CD-ROM等的數(shù)據(jù)記錄介質(zhì)128和子總線129連接到相對低速子總線122。如上所述,這些主總線111和子總線112通過具有緩沖存儲器比如FIFO等的總線中繼器113連接,并且總線中繼器113能發(fā)出對應于多個DMA通道的多種DMA請求,例如,三種DMA請求。由于總線中繼器113的更實用的結(jié)構(gòu)和操作類似于參照圖2到5所述的本實施例的總線中繼器13,因而省去了對它的解釋。
當如上所述在高速總線和低速總線之間進行DMA傳送時,可在不使等待時間出現(xiàn)的情況下在高速總線上進行數(shù)據(jù)傳送,并可簡化CPU的處理。此外,能夠容易地在不同總線之間進行DMA傳送功能的調(diào)試。
應注意,本發(fā)明不限于本實施例。雖然已結(jié)合雙向DMA傳送在第一總線和第二總線之間進行的例子進行了說明,但本發(fā)明還可用于DMA傳送僅從第一總線到第二總線,或DMA傳送僅從第二總線到第一總線進行的情況。此外,當然,DMA通道數(shù)目和/或連接到各總線的電路等并不限于那些實施例。
權利要求
1.一種數(shù)據(jù)傳送方法,數(shù)據(jù)傳送由一個用于通過一個緩沖存儲器在第一總線和第二總線之間傳送數(shù)據(jù)的設備進行,所述第一總線和第二總線通過一個具有所述緩沖存儲器的總線中繼裝置相互連接,而所述第一總線的作為在單一傳送中數(shù)據(jù)量的單位量與所述第二總線的單位量是不同的,所述方法包括下列步驟利用所述總線中繼裝置,存儲從所述第一總線向所述緩沖存儲器中傳送的數(shù)據(jù);和利用所述總線中繼裝置,將在緩沖存儲器中所述存儲數(shù)據(jù)的量調(diào)整為所述第二總線的單位量,并將調(diào)整后的數(shù)據(jù)傳送至所述第二總線。
2.如權利要求1所述的數(shù)據(jù)傳送方法,其中,如果所述第一總線的單位量大于所述第二總線的單位量,則所述總線中繼裝置,依照存儲在緩沖存儲器中的數(shù)據(jù),傳送對應于所述第二總線的單位量的數(shù)據(jù)量,并在數(shù)據(jù)傳送之后丟棄剩余的數(shù)據(jù)。
3.如權利要求1所述的數(shù)據(jù)傳送方法,其中,如果所述第一總線的單位量小于所述第二總線的單位量,則所述總線中繼裝置,依照存儲在緩沖存儲器中的數(shù)據(jù),增加虛數(shù)據(jù)到對應于所述第二總線的單位量的數(shù)據(jù)量,并將該數(shù)據(jù)傳送到所述第二總線。
4.一種數(shù)據(jù)傳送設備,包括第一總線和第二總線,所述第一總線的作為在單一傳送中數(shù)據(jù)量的單位量與所述第二總線的單位量是不同的;和具有一個緩沖存儲器的總線中繼裝置,所述總線中繼裝置適合于通過所述緩沖存儲器在所述第一總線和所述第二總線之間傳送數(shù)據(jù),其中,所述總線中繼裝置,存儲從所述第一總線向所述緩沖存儲器中傳送的數(shù)據(jù),并將在緩沖存儲器的所述存儲數(shù)據(jù)的、對應于第一總線的單位量,調(diào)整為第二總線的單位量,并將調(diào)整后的數(shù)據(jù)傳送至所述第二總線。
5.如權利要求4所述的設備,其中,如果所述第一總線的單位量大于所述第二總線的單位量,則所述總線中繼裝置,依照存儲在所述緩沖存儲器中的數(shù)據(jù),傳送對應于所述第二總線的單位量的數(shù)據(jù)量,并從所述緩沖存儲器中丟棄剩余的數(shù)據(jù)。
6.如權利要求4所述的設備,其中,如果所述第一總線的單位量小于所述第二總線的單位量,則所述總線中繼裝置,依照存儲在緩沖存儲器中的數(shù)據(jù),增加虛數(shù)據(jù)到對應于所述第二總線的單位量的數(shù)據(jù)量,并將該數(shù)據(jù)傳送到所述第二總線。
7.如權利要求4所述的設備,其中,直接存儲器存取控制裝置與所述第一總線和所述第二總線中的至少一條連接,以便向所述緩沖存儲器進行直接存儲器數(shù)據(jù)傳送。
全文摘要
第一總線(11)和第二總線(12)通過具有緩沖存儲器的總線中繼器(13)連接,DMA(直接存儲器控制)控制器(22、27)分別連接這兩條總線(11和12)??偩€中繼器(13)能發(fā)出DMA請求到DMA控制器(22、27),CPU(21、26)能屏蔽這些DMA請求,DMA控制器(22)DMA傳送總線(11)上的數(shù)據(jù)到總線中繼器(13)中的緩沖存儲器,或從該緩沖存儲器中DMA傳送數(shù)據(jù)。DMA控制器(27)在緩沖存儲器和總線(12)之間DMA傳送數(shù)據(jù)。CPU(21)能屏蔽來自總線中繼器的DMA請求,并直接存取該緩沖器以檢驗DMA功能。這就有助于要通過緩沖器在不同總線之間進行DMA傳送的系統(tǒng)調(diào)試。
文檔編號G06F13/28GK1497461SQ03147639
公開日2004年5月19日 申請日期1998年4月22日 優(yōu)先權日1997年4月22日
發(fā)明者山本靖之 申請人:索尼計算機娛樂公司