專利名稱:數(shù)據(jù)處理裝置的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及一種可以以直接存儲器存取模式傳送數(shù)據(jù)的數(shù)據(jù)處理裝置。
背景技術(shù):
對于安裝在包含復(fù)印機(jī)、掃描儀、打印機(jī)和傳真機(jī)的組合裝置上并且處理圖像數(shù)據(jù)的數(shù)據(jù)處理裝置來說,近年來,由于日益支持彩色化并且需要較快的數(shù)據(jù)處理,因此通過以直接存儲器存取(簡稱DMA)模式傳送數(shù)據(jù)來加快數(shù)據(jù)處理。
上述數(shù)據(jù)處理裝置的現(xiàn)有技術(shù)包括例如圖1所示的內(nèi)容。該常規(guī)數(shù)據(jù)處理裝置包括作為主控單元的CPU1、存儲器2,和三個(gè)內(nèi)部分塊3(3a、3b、3c)。每個(gè)內(nèi)部分塊3包括寄存器4、作為存儲器處理單元的DMA電路5,和控制電路6。
圖2是CPU1的DMA相關(guān)操作的說明性流程圖。在圖1中,為每個(gè)寄存器4提供來自CPU1的設(shè)定條件。DMA電路5基于存儲在寄存器4中的設(shè)定條件,執(zhí)行向存儲器2寫入數(shù)據(jù)和從存儲器2中讀取數(shù)據(jù)之中的至少一項(xiàng)。DMA電路5響應(yīng)來自CPU1的起動指令而起動。當(dāng)完成向存儲器2寫入數(shù)據(jù)和從存儲器2中讀取數(shù)據(jù)之中的至少一項(xiàng)時(shí),DMA電路5向CPU1提出中斷請求。
在此數(shù)據(jù)處理裝置中,每個(gè)DMA電路5每次完成向存儲器2寫入數(shù)據(jù)和從存儲器2中讀取數(shù)據(jù)之中的至少一項(xiàng)時(shí),每個(gè)DMA電路5向CPU1提出中斷請求。當(dāng)CPU1得到中斷請求時(shí),CPU1對下次應(yīng)該起動的DMA電路5執(zhí)行寄存器設(shè)定,并向DMA電路5提供起動指令。因此,各DMA電路5被順次起動。
在上述常規(guī)數(shù)據(jù)處理裝置的情況下,當(dāng)順次起動各DMA電路5時(shí),每個(gè)DMA電路5在每次完成向存儲器2寫入數(shù)據(jù)和從存儲器2中讀取數(shù)據(jù)之中的至少一項(xiàng)時(shí)向CPU1提出中斷請求,并且當(dāng)CPU1得到中斷請求時(shí),CPU1必須為下次應(yīng)該起動的DMA電路5執(zhí)行寄存器設(shè)定并為DMA電路5提供起動指令。因此,產(chǎn)生了CPU的處理負(fù)荷并使CPU的性能劣化。
為了解決該問題,申請人提出了日本專利公開號2006-172107中所示的一種數(shù)據(jù)處理裝置。
圖3是日本專利公開號2006-172107中所示的數(shù)據(jù)處理裝置的簡化方框圖。該數(shù)據(jù)處理裝置可以以DMA模式執(zhí)行向存儲器2寫入數(shù)據(jù)和從存儲器2中讀取數(shù)據(jù)之中的至少一項(xiàng),而無需CPU1的干預(yù),并且該數(shù)據(jù)處理裝置包括CPU1、存儲器2、多個(gè)(圖3的實(shí)例中為11a、11b和11c三個(gè))DMA電路11,和多個(gè)(在此實(shí)施例中為12a、12b和12c三個(gè))選擇器電路12。
DMA電路11(11a、11b和11c)是存儲器處理單元,對公共存儲器2進(jìn)行存取。每個(gè)DMA電路11執(zhí)行向存儲器2寫入數(shù)據(jù)和從存儲器2讀取數(shù)據(jù),并在完成寫入和讀取之中的至少一項(xiàng)時(shí)輸出結(jié)束通知。響應(yīng)來自每個(gè)選擇器電路12(12a、12b和12c)的起動指令,每個(gè)DMA電路11開始向存儲器2寫入數(shù)據(jù)和從存儲器2讀取數(shù)據(jù)之中的至少一項(xiàng)。
CPU1輸出向存儲器2寫入數(shù)據(jù)和從存儲器2讀取數(shù)據(jù)的開始指令。CPU1輸出指示是選擇來自CPU1的開始指令還是來自每個(gè)DMA電路11的結(jié)束通知的選擇指令。每個(gè)選擇器電路12響應(yīng)來自CPU1的開始指令或來自每個(gè)DMA電路11的結(jié)束通知,輸出開始指令。每個(gè)選擇器電路12根據(jù)來自CPU的選擇指令,對來自CPU1的開始指令或者來自每個(gè)DMA電路11的結(jié)束通知做出響應(yīng)。
圖4是由DMA電路11a、11b和11c向存儲器2寫入數(shù)據(jù)和從存儲器2讀取數(shù)據(jù)的一個(gè)實(shí)例的說明圖。將第一DMA電路11a設(shè)置成向存儲器2寫入數(shù)據(jù);將開始地址設(shè)置成地址A;并將傳送字節(jié)數(shù)設(shè)置成N字節(jié)。將第二DMA電路11b設(shè)置成從存儲器2中讀取數(shù)據(jù);將開始地址設(shè)置成地址A;并將傳送字節(jié)數(shù)設(shè)置成N字節(jié)。將第三DMA電路11c設(shè)置成向存儲器2中寫入數(shù)據(jù);將開始地址設(shè)置成地址B;將傳送字節(jié)數(shù)設(shè)置成M字節(jié)。
關(guān)于選擇器12a、12b和12c,將第一選擇器電路12a設(shè)置成響應(yīng)來自CPU1的開始指令而輸出起動指令。將第二選擇器電路12b設(shè)置成響應(yīng)來自第一DMA電路11a的結(jié)束通知而輸出起動指令。將第三選擇器電路12c設(shè)置成響應(yīng)來自第二DMA電路11b的結(jié)束通知而輸出起動指令。
當(dāng)以此方式設(shè)置DMA電路11和選擇器電路12時(shí),如果CPU1輸出開始指令,則第一選擇器電路12a響應(yīng)來自CPU1的開始指令而輸出起動指令。第一DMA電路11a響應(yīng)來自第一選擇器電路12a的起動指令而起動,并將數(shù)據(jù)寫入存儲器2中。數(shù)據(jù)被順次寫入存儲器2中,從存儲器2的地址A開始,占用N字節(jié)。當(dāng)完成將數(shù)據(jù)寫入存儲器2時(shí),第一DMA電路11a輸出結(jié)束通知。
第二選擇器電路12b響應(yīng)來自第一DMA電路11a的結(jié)束通知,輸出起動指令。第二DMA電路11b響應(yīng)來自第二選擇器電路12b的起動指令而起動,并從存儲器2中讀取數(shù)據(jù)。順次從地址A開始從存儲器2中讀取N字節(jié)的數(shù)據(jù)。當(dāng)完成從存儲器2中讀取數(shù)據(jù)時(shí),第二DMA電路11b輸出結(jié)束通知。
第三選擇器電路12c響應(yīng)來自第二DMA電路11b的結(jié)束通知而輸出起動指令。第三DMA電路11c響應(yīng)來自第三選擇器電路12c的起動指令而起動,并向存儲器2中寫入數(shù)據(jù)。將數(shù)據(jù)順次寫入存儲器2中,從存儲器2的地址B開始,占用M字節(jié)。
圖5是數(shù)據(jù)處理裝置的整體結(jié)構(gòu)的方框圖,圖6是表示圖5所示的內(nèi)部分塊13a的細(xì)節(jié)的方框圖。該數(shù)據(jù)處理裝置包括存儲器2、控制存儲器2的存儲器控制器9、判優(yōu)器和選擇器8、多個(gè)(所示實(shí)例中為三個(gè))內(nèi)部分塊13(13a至13c)(后面會描述),和CPU1。判優(yōu)器和選擇器8位于存儲器控制器9與內(nèi)部分塊13之間,選擇內(nèi)部分塊13(13a至13c)中的一個(gè),并將總線使用權(quán)分配給選定的內(nèi)部分塊。
內(nèi)部分塊13包括寄存器14、DMA電路15、選擇器電路16和控制電路17,DMA電路15可以通過判優(yōu)器和選擇器8控制存儲器控制器9以執(zhí)行向存儲器2寫入數(shù)據(jù)和從存儲器2讀取數(shù)據(jù)之中的至少一項(xiàng)并且具有例如掃描輸入功能、壓縮輸入和擴(kuò)展輸出功能、旋轉(zhuǎn)輸入/輸出功能和激光輸出功能之中的任一項(xiàng)功能。
CPU1為寄存器14提供CPU地址CPU_ADR和CPU數(shù)據(jù)CPU_DATA。CPU地址CPU_ADR指示寄存器14的地址,CPU數(shù)據(jù)CPU_DATA指示控制電路17、DMA電路15和選擇器電路16的設(shè)定條件。CPU1得到從寄存器14提供的CPU數(shù)據(jù)CPU_DATA。CPU數(shù)據(jù)CPU_DATA指示控制電路17、DMA電路15和選擇器電路16的狀態(tài)。
寄存器14解碼CPU地址CPU_ADR,并在寫入時(shí)由CPU地址CPU_ADR指定的地址處獲取CPU數(shù)據(jù)CPU_DATA。寄存器14在讀取時(shí)從由CPU地址CPU_ADR指定的地址開始傳送CPU數(shù)據(jù)CPU_DATA。
控制電路17基于寄存器14中存儲的控制電路17的設(shè)定條件來計(jì)算數(shù)據(jù)。控制電路17為寄存器14提供控制電路17的狀態(tài)??刂齐娐?7控制輸入/輸出裝置10??刂齐娐?7為輸入/輸出裝置10提供數(shù)據(jù)。控制電路17包括存儲數(shù)據(jù)的緩沖電路,并得到從輸入/輸出裝置10提供的數(shù)據(jù)。
例如,如果第一內(nèi)部分塊13a是具有掃描輸入功能的內(nèi)部分塊,則控制電路17包括定時(shí)信號發(fā)生電路和緩沖電路。定時(shí)信號發(fā)生電路產(chǎn)生由作為輸入/輸出裝置10的圖像讀取單元從原稿讀取的掃描數(shù)據(jù)的進(jìn)行讀取的定時(shí)。緩沖電路存儲掃描數(shù)據(jù)。
DMA電路15基于寄存器14中存儲的DMA電路15的設(shè)定條件來傳送數(shù)據(jù)。DMA電路15的設(shè)定條件指示開始地址和傳送字節(jié)數(shù)。DMA電路15為寄存器14提供DMA電路15的狀態(tài)。DMA電路15響應(yīng)來自選擇器電路(后面將描述)的起動指令D_TRG1而起動。DMA電路15讀取存儲在控制電路17內(nèi)的緩沖電路中的數(shù)據(jù),并將數(shù)據(jù)寫入到存儲器2中??商娲兀珼MA電路15讀取存儲在存儲器2中的數(shù)據(jù),并將數(shù)據(jù)寫入到控制電路17內(nèi)的緩沖電路中。
具體地,DMA電路15通過判優(yōu)器和選擇器8為存儲器控制器9提供DMA地址DMA_ADR1。DMA地址DMA_ADR1指示存儲器2的地址。DMA電路15通過判優(yōu)器和選擇器8為存儲器控制器9提供DMA控制信號DMA_CONT1。該DMA控制信號DMA_CONT1指示寫入存儲器2的指令和從存儲器2讀取的指令。DMA電路15通過判優(yōu)器和選擇器8得到從存儲器控制器9提供的DMA控制信號DMA_CONT1。該DMA控制信號DMA_CONT1指示存儲器控制器9的狀態(tài)。
DMA電路15用DMA地址DMA_ADR1來指定存儲器2的地址。DMA電路15用DMA控制信號DMA_CONT1來指示寫入和讀取之中的至少一項(xiàng)。以此方式,DMA電路15可以執(zhí)行將數(shù)據(jù)寫入存儲器2的指定地址和從存儲器2的指定地址中讀取數(shù)據(jù)之中的至少一項(xiàng)。該數(shù)據(jù)對應(yīng)于圖6中的DMA數(shù)據(jù)DMA_DATA。
當(dāng)完成將數(shù)據(jù)寫入存儲器2和從存儲器2中讀取數(shù)據(jù)之中的至少一項(xiàng)時(shí),DMA電路15輸出結(jié)束通知DMA_END1并輸出中斷請求INTR1。DMA電路15的設(shè)定條件還指示是否屏蔽中斷請求INTR1。當(dāng)屏蔽中斷請求INTR1時(shí),在完成了寫入和讀取之中的至少一項(xiàng)的情況下,DMA電路15不輸出中斷請求INTR1。
向″或″電路7提供中斷請求INTR1。″或″電路7得到從每個(gè)內(nèi)部分塊13的DMA電路15提供的中斷請求INTR1至INTR3。當(dāng)?shù)玫街袛嗾埱驣NTR1至INTR3中的任一個(gè)時(shí),″或″電路7輸出中斷請求INTR。中斷請求INTR被提供給CPU1。
選擇器電路16基于作為寄存器14中所存儲的選擇器電路16的設(shè)定條件的選擇指令,輸出起動指令。選擇器電路16響應(yīng)來自CPU1的通過寄存器14提供的開始指令DMA_TRG1和來自第二、第三內(nèi)部分塊13b、13c的DMA電路15的結(jié)束通知DMA_END2、DMA_END3中的任一個(gè),輸出起動指令D_TRG1。
圖7是CPU1的DMA相關(guān)操作的說明性流程圖。在圖7中,假定按照第一DMA電路15a、第二DMA電路15b和第三DMA電路15c的順序起動DMA電路15。
當(dāng)輸入預(yù)定操作開始指令時(shí),CPU1開始DMA相關(guān)操作,向每個(gè)內(nèi)部分塊13的寄存器14提供每個(gè)內(nèi)部分塊13的控制電路17的設(shè)定條件,以執(zhí)行步驟S11的每個(gè)內(nèi)部分塊13的控制電路17的寄存器設(shè)定,并前進(jìn)至步驟S12。
在步驟S12,向第一內(nèi)部分塊13a的寄存器14提供第一DMA電路15a的設(shè)定條件,以執(zhí)行第一DMA電路15a的寄存器設(shè)定;在步驟S13,向第二內(nèi)部分塊13b的寄存器14提供第二DMA電路15b的設(shè)定條件,以執(zhí)行第二DMA電路15b的寄存器設(shè)定;在步驟S14,向第三內(nèi)部分塊13c的寄存器14提供第三DMA電路15c的設(shè)定條件,以執(zhí)行第三DMA電路15c的寄存器設(shè)定。在S12至S14這些步驟中,執(zhí)行對開始地址、傳送字節(jié)數(shù)等的設(shè)定。
在步驟S15,每個(gè)內(nèi)部分塊13的寄存器14得到作為每個(gè)選擇器電路16的設(shè)定條件的選擇指令,程序前進(jìn)到步驟S16。在圖6中,第一內(nèi)部分塊13a的寄存器14得到選擇指令,指示選擇了來自CPU1的開始指令。第二內(nèi)部分塊13b的寄存器14得到選擇指令,指示選擇了來自第一DMA電路15a的結(jié)束通知。第三內(nèi)部分塊13c的寄存器14得到選擇指令,指示選擇了來自第二DMA電路15b的結(jié)束通知。通過向內(nèi)部分塊13的寄存器14提供選擇指令,CPU1執(zhí)行用于協(xié)調(diào)各DMA電路15的協(xié)調(diào)設(shè)定。
在步驟S16,對內(nèi)部分塊13的寄存器14執(zhí)行設(shè)定,以屏蔽不必要的中斷請求,程序前進(jìn)到步驟S17。不必要的中斷請求是指,來自除了應(yīng)該起動的各DMA電路15中的最后起動的DMA電路15之外的其余DMA電路15的中斷請求。在圖6中,來自第一、第二DMA電路15a、15b的中斷請求被屏蔽。
在步驟S17,輸出開始指令以設(shè)置第一DMA電路15a的開始位,程序前進(jìn)到步驟S18。在步驟S18,當(dāng)?shù)玫綇腄MA電路15提供的中斷請求,即,來自圖7中的第三DMA電路的中斷請求時(shí),終止DMA相關(guān)操作。
當(dāng)CPU1在步驟S17輸出開始指令時(shí),第一選擇器電路16a響應(yīng)來自CPU1的開始指令而輸出起動指令。第一DMA電路15a響應(yīng)來自第一選擇器電路16a的起動指令而起動。響應(yīng)來自第一DMA電路15a的結(jié)束通知,第二選擇器電路16b輸出起動指令。第二DMA電路15b響應(yīng)來自第二選擇器電路16b的起動指令而起動。響應(yīng)來自第二DMA電路15b的結(jié)束通知,第三選擇器電路16c輸出起動指令。第三DMA電路15c響應(yīng)來自第三選擇器電路16c的起動指令而起動。當(dāng)完成將數(shù)據(jù)寫入存儲器2和從存儲器2讀取數(shù)據(jù)之中的至少一項(xiàng)時(shí),第三DMA電路15c輸出中斷請求。向″或″電路7提供中斷請求?!寤颉咫娐?將中斷請求提供給CPU1。
從CPU1輸出開始指令到CPU1得到中斷請求的期間,每個(gè)DMA電路15可以將數(shù)據(jù)寫入存儲器中和從存儲器中讀取數(shù)據(jù),而不需CPU1的干預(yù)。在此期間,CPU1可以執(zhí)行其它處理。
在上述現(xiàn)有技術(shù)中,每個(gè)選擇器電路16不僅可以響應(yīng)來自CPU1的開始指令,還可以響應(yīng)來自每個(gè)DMA電路15的結(jié)束通知,來輸出起動指令。因此,如果各選擇器電路16中的任一個(gè)得到從CPU1提供的開始指令,即使當(dāng)其它選擇器電路16沒有得到從CPU1提供的開始指令時(shí),選擇器電路16也可以順次地起動DMA電路15。
換言之,可以在沒有CPU1的干預(yù)的情況下來協(xié)調(diào)各DMA電路15。因此,由于每個(gè)DMA電路不會如先前的常規(guī)技術(shù)那樣,每當(dāng)每個(gè)DMA電路完成將數(shù)據(jù)寫入存儲器和從存儲器讀取數(shù)據(jù)之中的至少一項(xiàng)時(shí),就向CPU提供中斷請求,以從CPU輸出開始指令,所以可以減少CPU的處理負(fù)擔(dān)并可防止CPU的性能劣化。
然而,如果多個(gè)處理塊對相同數(shù)據(jù)執(zhí)行一系列處理,即使預(yù)先知道多個(gè)處理塊在相同地址讀取數(shù)據(jù)或由一個(gè)處理塊寫入的數(shù)據(jù)被上述現(xiàn)有技術(shù)中的另一個(gè)處理塊讀取的處理程序,除非一個(gè)DMA的讀取或?qū)懭胍淹瓿桑駝t下一個(gè)DMA不能開始操作,這限制了進(jìn)一步高速化。
在一種使多個(gè)DMA裝置能夠同時(shí)在存儲器的相同地址上讀取數(shù)據(jù)的現(xiàn)有技術(shù)中,當(dāng)檢測出多個(gè)連接到不同I/O總線上的DMA裝置試圖在相同存儲器地址上讀取數(shù)據(jù)時(shí),通過使用將數(shù)據(jù)從存儲器總線傳送到多個(gè)I/O總線的電橋來執(zhí)行(日本專利公開號H11-134287)。然而,該常規(guī)技術(shù)只有在檢測到各DMA裝置試圖同時(shí)在相同地址讀取數(shù)據(jù)時(shí)才執(zhí)行,而在讀取之后在各傳送目的地的數(shù)據(jù)處理速度不同時(shí)很難實(shí)施。
發(fā)明內(nèi)容
本發(fā)明的目的在于提供一種數(shù)據(jù)處理裝置,通過在預(yù)先知道多個(gè)處理塊在相同地址讀取數(shù)據(jù)或由一個(gè)處理塊寫入的數(shù)據(jù)被另一個(gè)處理塊讀取的處理程序的情況下,即使當(dāng)多個(gè)處理塊具有不同處理速度時(shí),也使其它DMA電路獲得相同的數(shù)據(jù),該數(shù)據(jù)處理裝置能夠進(jìn)一步加快數(shù)據(jù)處理速度并有效使用存儲器總線。
本發(fā)明的另一目的在于提供一種數(shù)據(jù)處理裝置,包括允許數(shù)據(jù)寫入和數(shù)據(jù)讀取的存儲器;主控單元,其輸出將數(shù)據(jù)寫入到存儲器和從存儲器讀取數(shù)據(jù)的開始指令;多個(gè)DMA電路,其執(zhí)行將數(shù)據(jù)寫入存儲器和從存儲器讀取數(shù)據(jù)之中的至少一項(xiàng),以在完成將數(shù)據(jù)寫入存儲器和從存儲器讀取數(shù)據(jù)之中的至少一項(xiàng)時(shí)輸出結(jié)束通知;和多個(gè)起動指令單元,其輸出用來起動每個(gè)DMA電路的起動指令,該起動指令單元響應(yīng)來自主控單元的開始指令或來自DMA電路的結(jié)束通知而輸出起動指令,DMA電路響應(yīng)來自起動指令單元的起動指令而起動,數(shù)據(jù)處理裝置具有并列組形成電路,并列組形成電路用來基于來自主控單元的指令而形成DMA電路中任兩個(gè)或多個(gè)DMA電路的并列組,該并列組形成電路使得其它DMA電路能夠獲取一個(gè)DMA電路的寫入處理或讀取處理中處理的數(shù)據(jù)。
本發(fā)明的另一目的在于提供一種數(shù)據(jù)處理裝置,其中由并列組形成電路形成并列組的DMA電路中的一個(gè)被設(shè)置成主電路,另一個(gè)被設(shè)置成被控電路,其中使被設(shè)置成被控電路的DMA電路中的信號線無效。
本發(fā)明的另一目的在于提供一種數(shù)據(jù)處理裝置,其中通過結(jié)合DMA電路輸出的起動/結(jié)束信號來形成并且串行協(xié)調(diào)DMA組,其中除最后的DMA電路之外的中斷請求無效。
本發(fā)明的另一目的在于提供一種數(shù)據(jù)處理裝置,其中另一DMA電路在每次完成數(shù)據(jù)處理時(shí)向一個(gè)DMA電路提供結(jié)束通知,其中一個(gè)DMA電路被設(shè)置成除非得到另一DMA電路提供的結(jié)束通知,否則不執(zhí)行下一突發(fā)存取操作。
本發(fā)明的另一目的在于提供一種數(shù)據(jù)處理裝置,其中各DMA電路中的預(yù)定DMA電路被設(shè)置成選擇數(shù)據(jù)處理塊中需要最長數(shù)據(jù)處理時(shí)間的一個(gè)。
本發(fā)明的另一目的在于提供一種數(shù)據(jù)處理裝置,其中并列組形成電路基于來自主控單元的指令,連接一個(gè)DMA電路和另一個(gè)DMA電路的存儲器數(shù)據(jù)線和命令信號線。
本發(fā)明的另一目的在于提供一種數(shù)據(jù)處理裝置,其中并列組形成電路將選擇器布置于各DMA電路上,并允許數(shù)據(jù)總線被共用,以基于來自主控單元的指令使必要的DMA電路有效。
本發(fā)明的另一目的在于提供一種數(shù)據(jù)處理裝置,其中并列組形成電路連接與各DMA電路相對應(yīng)的輸入/輸出裝置側(cè)上的控制信號線。
圖1是常規(guī)技術(shù)中數(shù)據(jù)處理裝置的結(jié)構(gòu)的方框圖;圖2是常規(guī)技術(shù)中CPU的DMA相關(guān)操作的流程圖;圖3是本發(fā)明的現(xiàn)有技術(shù)中的數(shù)據(jù)處理裝置的簡化方框圖;圖4是由DMA電路將數(shù)據(jù)寫入存儲器和從存儲器讀取數(shù)據(jù)的一個(gè)實(shí)例的說明圖;圖5是本發(fā)明的現(xiàn)有技術(shù)中的數(shù)據(jù)處理裝置的整體結(jié)構(gòu)的方框圖;圖6是本發(fā)明的現(xiàn)有技術(shù)中的數(shù)據(jù)處理裝置的內(nèi)部分塊結(jié)構(gòu)的方框圖;圖7是本發(fā)明的現(xiàn)有技術(shù)中的數(shù)據(jù)處理裝置的CPU的DMA相關(guān)操作的說明性流程圖;圖8是根據(jù)本發(fā)明的一個(gè)實(shí)施例的數(shù)據(jù)處理裝置的簡化方框圖;圖9是數(shù)據(jù)處理裝置的整體結(jié)構(gòu)的方框圖;圖10示出了數(shù)據(jù)處理裝置的相關(guān)部分的結(jié)構(gòu);圖11是CPU的DMA相關(guān)操作和DMA的操作的說明性流程圖;和圖12示出了根據(jù)本發(fā)明的另一實(shí)施例的數(shù)據(jù)處理裝置的相關(guān)部分的結(jié)構(gòu)。
具體實(shí)施例方式
現(xiàn)將參考附圖描述本發(fā)明。與上述現(xiàn)有技術(shù)中相同的部分將不再贅述。
圖8是根據(jù)本發(fā)明的一個(gè)實(shí)施例的數(shù)據(jù)處理裝置的簡化方框圖。根據(jù)本發(fā)明的數(shù)據(jù)處理裝置包括CPU1、存儲器2、多個(gè)DMA電路15(15a至15c),和多個(gè)選擇器電路16(16a、16c)。DMA電路15有時(shí)將被稱作第一至第三DMA電路15a至15c。選擇器電路16有時(shí)將被稱作第一至第三選擇器電路16a至16c。
圖8的一個(gè)實(shí)施例示出了將三個(gè)DMA電路中的兩個(gè)DMA電路15a、15b分成一組的實(shí)例,并示出了當(dāng)從第一DMA電路15a和第二DMA電路15b輸出結(jié)束信號時(shí),由于″與″電路18的輸出信號,起動信號從第三選擇器電路16c被輸入到第三DMA電路15c中,當(dāng)完成第三DMA電路15c中的處理時(shí),結(jié)束信號被輸入到第一選擇器電路16a中,并且下一處理塊的開始信號被輸入到第一DMA電路15a。
圖9是根據(jù)該實(shí)施例的數(shù)據(jù)處理裝置整體結(jié)構(gòu)的方框圖。該數(shù)據(jù)處理裝置包括CPU1、存儲器2、包括DMA電路的多個(gè)(該實(shí)例中示出的為三個(gè))內(nèi)部分塊13(13a至13c)、控制存儲器2的存儲器控制器9,以及判優(yōu)器和選擇器8,第一內(nèi)部分塊13a和第二內(nèi)部分塊13b分成一組。
圖10示出了根據(jù)該實(shí)施例的數(shù)據(jù)處理裝置的相關(guān)部分的細(xì)節(jié)。在圖10的實(shí)例中,當(dāng)將數(shù)據(jù)寫入存儲器或從存儲器中讀取數(shù)據(jù)時(shí),第一DMA電路15a和第二DMA電路15b可以同時(shí)執(zhí)行并行處理,第一DMA電路15a的存儲器數(shù)據(jù)線和命令信號線,經(jīng)由根據(jù)來自CPU的控制信號CPU_CONT來運(yùn)行的開關(guān)SW1,通過連接線L1、L2,連接到第二DMA電路15b的存儲器數(shù)據(jù)線和命令信號線。
以另一種方式形成DMA電路的并列組,例如,各DMA可以使用相同的總線,并可設(shè)有芯片選擇,以使必要DMA有效。也就是說,可以在單獨(dú)工作時(shí)通過逐一地使DMA有效,和在并行工作時(shí)通過使多個(gè)被分成一組的DMA有效,來執(zhí)行類似的操作。
圖11是CPU1的DMA相關(guān)操作和DMA的操作的說明性流程圖。當(dāng)輸入預(yù)定操作開始指令時(shí),CPU1開始DMA相關(guān)操作,向每個(gè)內(nèi)部分塊13的寄存器14提供每個(gè)內(nèi)部分塊13的控制電路17的設(shè)定條件,以在步驟S1中執(zhí)行每個(gè)內(nèi)部分塊13的控制電路17的寄存器設(shè)定。
在步驟S2,向第一內(nèi)部分塊13a的寄存器14提供第一DMA電路15a的設(shè)定條件,以執(zhí)行第一DMA電路15a的寄存器設(shè)定;在步驟S3,向第二內(nèi)部分塊13b的寄存器14提供第二DMA電路15b的設(shè)定條件,以執(zhí)行第二DMA電路15b的寄存器設(shè)定;在步驟S4,向第三內(nèi)部分塊13c的寄存器14提供第三DMA電路15c的設(shè)定條件,以執(zhí)行第三DMA電路15c的寄存器設(shè)定。在S2至S4這些步驟中,執(zhí)行對開始地址、傳送字節(jié)數(shù)等的設(shè)定。
在步驟S5,通過來自CPU1的控制信號CPU_CONT閉合開關(guān)SW1,以通過連接線L1、L2連接第一DMA電路15a和第二DMA電路15b的存儲器數(shù)據(jù)線和命令信號線,并且第一DMA電路15a和第二DMA電路15b被分成并列的一組,將任一個(gè)DMA電路設(shè)置為主電路,另一DMA電路設(shè)置為被控電路。在步驟S5,執(zhí)行設(shè)定以屏蔽第二DMA電路15b的中斷請求。
在步驟S6,CPU1向每個(gè)內(nèi)部分塊13的寄存器14提供選擇指令,選擇指令表示每個(gè)選擇器電路16的設(shè)定條件。在圖10中,第一內(nèi)部分塊13a的寄存器14a和第二內(nèi)部分塊13b的寄存器14b都得到指示選擇了來自CPU1的開始指令的選擇指令。
盡管在圖10中未示出,第三內(nèi)部分塊13c的寄存器14c得到選擇指令,指示選擇了結(jié)束通知,結(jié)束通知是由于來自第一DMA電路15a和第二DMA電路15b的結(jié)束信號而從″與″電路18輸出的。通過向內(nèi)部分塊13的寄存器14提供選擇指令,CPU1執(zhí)行協(xié)調(diào)設(shè)定,以協(xié)調(diào)各DMA電路15。
在步驟S6,CPU1還對內(nèi)部分塊13的寄存器14進(jìn)行設(shè)定,以屏蔽不必要的中斷請求。不必要的中斷請求是指來自應(yīng)該起動的各DMA電路15中除了最后起動的DMA電路之外的DMA電路的中斷請求。在圖10中,來自第一、第二DMA電路15a、15b的中斷請求被屏蔽。中斷請求被提供給″或″電路7,″或″電路7將中斷請求提供給CPU1。
在步驟S6,如果預(yù)先設(shè)定第一DMA電路15a來選擇該組中需要最長處理時(shí)間的一個(gè),例如,掃描儀的圖像數(shù)據(jù)獲取處理等,第一DMA電路15a可以在不需要來自第二DMA電路15b的結(jié)束通知的情況下來執(zhí)行突發(fā)存取操作。也就是,如果確保第二DMA電路15b的處理時(shí)間總是短于第一DMA電路15a的處理時(shí)間,則第二DMA電路15b不必在每次完成數(shù)據(jù)處理時(shí)向第一DMA電路15a發(fā)送結(jié)束通知。
在步驟S7,CPU1輸出開始指令以設(shè)置第一DMA電路15a和第二DMA電路15b的開始位;在步驟S8,第一DMA電路15a和第二DMA電路15b執(zhí)行數(shù)據(jù)傳送;當(dāng)完成數(shù)據(jù)傳送時(shí)(步驟S9),第一DMA電路15a在步驟S10輸出結(jié)束通知。
在步驟S11,第三DMA電路15c根據(jù)第一DMA電路15a的結(jié)束通知而起動;在步驟S12,第三DMA電路15c執(zhí)行數(shù)據(jù)傳送;當(dāng)完成數(shù)據(jù)傳送時(shí)(步驟S13),第三DMA電路15c在步驟S14輸出結(jié)束通知。
在步驟S15中,CPU1得到從第三DMA電路15c,即,最后的DMA電路提供的中斷請求,DMA相關(guān)操作完成。
圖12示出了本發(fā)明的另一個(gè)實(shí)施例,其中開關(guān)SW2被布置在與DMA電路相對應(yīng)的輸入/輸出側(cè)以便能夠連接信號線。在這種結(jié)構(gòu)的情況下,多個(gè)DMA電路即使在輸入/輸出裝置10提供和接收數(shù)據(jù)時(shí)也可以共享數(shù)據(jù)。
在從CPU1輸出開始指令直到CPU1得到中斷請求的期間內(nèi),當(dāng)?shù)谝籇MA電路15a將數(shù)據(jù)寫入存儲器或從存儲器中讀取數(shù)據(jù)時(shí),第二DMA電路15b可以同時(shí)獲得由第一DMA電路15a寫入到存儲器2中的數(shù)據(jù)或從存儲器2中讀取的數(shù)據(jù),并且可以將數(shù)據(jù)寫入到存儲器2中的其它地址或者將數(shù)據(jù)傳送到控制電路17b的緩沖器中而不需CPU1的干預(yù)。
因此,可以同時(shí)使用相同的數(shù)據(jù);減少讀取操作以有效地使用存儲器總線;從CPU的觀點(diǎn)來看可以減少DMA的數(shù)量。
根據(jù)本發(fā)明,由于多個(gè)DMA電路處理相同數(shù)據(jù),所以可以進(jìn)一步加快數(shù)據(jù)處理速度,并且可以有效地使用存儲器總線。
從CPU的觀點(diǎn)來看,可以減少DMA電路的數(shù)量。
而且,可以在不影響每個(gè)DMA處理速度且沒有遺漏的情況下完成DMA組中的數(shù)據(jù)處理。
權(quán)利要求
1.一種數(shù)據(jù)處理裝置,包括允許數(shù)據(jù)寫入和數(shù)據(jù)讀取的存儲器;主控單元,其輸出將數(shù)據(jù)寫入到所述存儲器和從所述存儲器讀取數(shù)據(jù)的開始指令;多個(gè)DMA電路,其執(zhí)行將數(shù)據(jù)寫入所述存儲器和從所述存儲器讀取數(shù)據(jù)之中的至少一項(xiàng),以在完成將數(shù)據(jù)寫入所述存儲器和從所述存儲器讀取數(shù)據(jù)之中的至少一項(xiàng)時(shí)輸出結(jié)束通知;和多個(gè)起動指令單元,其輸出用于起動所述DMA電路中的每個(gè)的起動指令,所述起動指令單元響應(yīng)來自所述主控單元的所述開始指令或來自所述DMA電路的所述結(jié)束通知而輸出所述起動指令,所述DMA電路響應(yīng)來自所述起動指令單元的起動指令而起動;所述數(shù)據(jù)處理裝置具有并列組形成電路,所述并列組形成電路用于基于來自所述主控單元的指令而形成所述DMA電路中的任兩個(gè)或多個(gè)DMA電路的并列組,所述并列組形成電路允許在一個(gè)DMA電路的寫入處理或讀取處理中被處理的數(shù)據(jù)被另一個(gè)DMA電路獲得。
2.如權(quán)利要求1所述的數(shù)據(jù)處理裝置,其中,由所述并列組形成電路形成并聯(lián)組的所述DMA電路中的一個(gè)被設(shè)置成主電路,另一個(gè)被設(shè)置成被控電路,并且其中使被設(shè)置成被控電路的DMA電路中的信號線無效。
3.如權(quán)利要求2所述的數(shù)據(jù)處理裝置,其中,通過結(jié)合所述DMA電路輸出的所述起動/結(jié)束信號而形成并且串行協(xié)調(diào)DMA組,其中使除最后的DMA電路的中斷請求之外的中斷請求失效。
4.如權(quán)利要求2或3所述的數(shù)據(jù)處理裝置,其中,所述另一個(gè)DMA電路在每次完成數(shù)據(jù)處理時(shí)向一個(gè)DMA電路提供結(jié)束通知,其中,一個(gè)DMA電路被設(shè)置成,除非所述另一個(gè)DMA電路提供結(jié)束通知,否則不執(zhí)行下一突發(fā)存取操作。
5.如權(quán)利要求2或3所述的數(shù)據(jù)處理裝置,其中,所述DMA電路中的預(yù)定DMA電路被設(shè)置成選擇數(shù)據(jù)處理塊中需要最長數(shù)據(jù)處理時(shí)間的一個(gè)。
6.如權(quán)利要求1或2所述的數(shù)據(jù)處理裝置,其中,所述并列組形成電路基于來自所述主控單元的指令,連接一個(gè)DMA電路和另一個(gè)DMA電路的存儲器數(shù)據(jù)線和命令信號線。
7.如權(quán)利要求1或2所述的數(shù)據(jù)處理裝置,其中,所述并列組形成電路將選擇器布置于所述DMA電路上,并允許數(shù)據(jù)總線共用以便基于來自所述主控單元的指令使必要的DMA電路有效。
8.如權(quán)利要求1所述的數(shù)據(jù)處理裝置,其中,所述并列組形成電路連接與所述DMA電路相對應(yīng)的輸入/輸出裝置側(cè)上的控制信號線。
全文摘要
本發(fā)明提供了一種DMA模式數(shù)據(jù)處理裝置,該數(shù)據(jù)處理裝置能夠進(jìn)行高速的數(shù)據(jù)處理并能夠有效使用存儲器總線。對于執(zhí)行將數(shù)據(jù)寫入存儲器和從存儲器讀取數(shù)據(jù)中的至少一項(xiàng)的DMA電路,設(shè)置了根據(jù)CPU的指令工作的開關(guān)SW,并且可以基于CPU指令將第一DMA電路和第二DMA電路的存儲器數(shù)據(jù)線和命令信號線通過線路連接起來。因此,當(dāng)一個(gè)DMA電路執(zhí)行將數(shù)據(jù)寫入存儲器或從存儲器讀取數(shù)據(jù)時(shí),另一個(gè)DMA電路可以獲取數(shù)據(jù)并可以將數(shù)據(jù)傳送到存儲器的其它地址或?qū)?shù)據(jù)傳送到輸入/輸出裝置。
文檔編號H04N1/00GK101025722SQ20071007882
公開日2007年8月29日 申請日期2007年2月15日 優(yōu)先權(quán)日2006年2月22日
發(fā)明者南崇博 申請人:夏普株式會社