两个人的电影免费视频_国产精品久久久久久久久成人_97视频在线观看播放_久久这里只有精品777_亚洲熟女少妇二三区_4438x8成人网亚洲av_内谢国产内射夫妻免费视频_人妻精品久久久久中国字幕

Dma控制系統(tǒng)、打印裝置以及轉(zhuǎn)移指示方法

文檔序號:6480789閱讀:268來源:國知局
專利名稱:Dma控制系統(tǒng)、打印裝置以及轉(zhuǎn)移指示方法
技術(shù)領(lǐng)域
本發(fā)明涉及DMA控制系統(tǒng)、打印裝置以及轉(zhuǎn)移指示方法。
背景技術(shù)
已知一種用于控制直接存儲器存取(DMA)轉(zhuǎn)移的DMA控制器,在直接存儲器存取轉(zhuǎn)移中,各種裝置和存儲器可在不干擾中央處理單元(CPU)的情況下轉(zhuǎn)移數(shù)據(jù)。 '
專利文獻1 (JP-A-2005-258509)披露了這樣一種技術(shù)處理器在存儲器中設置分別具有不同優(yōu)先級的多個描述符區(qū)域,并且DMA控制電路優(yōu)先地在存儲器中準備的描述符中取出具有較高優(yōu)先級的描述符。
專利文獻2 (JP-A-2006-277363)披露了這樣一種技術(shù)包括在模塊與存儲器之間轉(zhuǎn)移的數(shù)據(jù)的大小等的描述符信息中包含作為在裁決多個模塊使用共享總線的權(quán)限時的指標的優(yōu)先級,并且基于根據(jù)描述符信息的優(yōu)先級來裁決多個模塊使用共享總線的權(quán)限。.

發(fā)明內(nèi)容
本發(fā)明的目的在于提供DMA (直接存儲器存取)控制系統(tǒng)、打印裝置和轉(zhuǎn)移指示方法,該系統(tǒng)、該裝置和該方法能夠根據(jù)使用其他DMA轉(zhuǎn)移單元的狀態(tài)來控制多個DMA轉(zhuǎn)移單元中的特定DMA轉(zhuǎn)移單元進行DMA轉(zhuǎn)移的轉(zhuǎn)移量。根據(jù)本發(fā)明的一個方面, 一種DMA控制系統(tǒng)包括多個DMA控制單元和轉(zhuǎn)移指示單元。所述多個DMA控制單元以這樣的方式被控制,S卩在所述多個DMA控制單元中的一個使用傳輸路徑的同時,防止除了所述多個DMA控制單元中的所述一個之外的其他DMA控制單元使用所述傳輸路徑。并且所述轉(zhuǎn)移指示單元為各個所述DMA控制單元限定DMA轉(zhuǎn)移的轉(zhuǎn)移量,并且將轉(zhuǎn)移指令提供給各個所述
DMA控制單元。當所述轉(zhuǎn)移指示單元將轉(zhuǎn)移指令提供給所述多個DMA控制單元的第一 DMA控制單元時,所述轉(zhuǎn)移指示單元根據(jù)使用所述多個DMA控制單元的第二DMA控制單元的狀態(tài)為所述第一DMA控制單元限定轉(zhuǎn)移量,并將所述轉(zhuǎn)移指令提供給所述第一DMA控制單元。根據(jù)第[1]項中所描述的DMA控制系統(tǒng),當所述轉(zhuǎn)移指示單元檢測到開始使用所述第二DMA控制單元時,所述轉(zhuǎn)移指示單元(i)廢棄生成的待提供給所述第一DMA控制單元的轉(zhuǎn)移指令,并且(ii)根據(jù)所述第二DMA控制單元正在被使用的情況為所述第一DMA控制單元限定新轉(zhuǎn)移量,并將新轉(zhuǎn)移指令提供給所述第一DMA控制單元c根據(jù)第[1]項或第[2]項中所描述的DMA控制系統(tǒng),當所述轉(zhuǎn)移指示單元檢測到結(jié)束使用所述第二 DMA控制單元時,所述轉(zhuǎn)移指示單元(i)廢棄生成的待提供給所述第一 DMA控制單元的轉(zhuǎn)移指令,并且(ii)根據(jù)所述第二DMA控制單元沒有正在被使用的情況為所述第一 DMA控制單元限定新轉(zhuǎn)移量,并將新轉(zhuǎn)移指令提供給所述第一 DMA控制單元。根據(jù)第[1]項中所描述的DMA控制系統(tǒng),當所述轉(zhuǎn)移指示單元對所述第一 DMA控制單元生成轉(zhuǎn)移指令時,所述轉(zhuǎn)移指示單元根據(jù)使用除了所述第一DMA控制單元之外的DMA控制單元的狀態(tài)的組合為所述第一 DMA控制單元限定轉(zhuǎn)移量,并將轉(zhuǎn)移指令提供給所述第一DMA控制單元。根據(jù)第[4]項中所描述的DMA控制系統(tǒng),當所述轉(zhuǎn)移指示單元檢測到所述組合的變化時,所述轉(zhuǎn)移指示單元(i)廢棄生成的待提供給所述第一DMA控制單元的轉(zhuǎn)移指令,并且(ii)根據(jù)所述變化之后的組合為所述第一DMA控制單元限定新轉(zhuǎn)移量,并將新轉(zhuǎn)移指令提供給所述第一 DMA控制單元。根據(jù)本發(fā)明的另一個方面, 一種打印裝置包括多個DMA控制單元和轉(zhuǎn)移指示單元。所述多個DMA控制單元以這樣的方式被控制,即當所述多個DMA控制單元中的一個使用傳輸路徑時,防止
除了所述多個DMA控制單元中的所述一個之外的其他DMA控制單元使用所述傳輸路徑。并且所述轉(zhuǎn)移指示單元為各個所述DMA控制單元限定DMA轉(zhuǎn)移的轉(zhuǎn)移量,并且將轉(zhuǎn)移指令提供給各個所述DMA控制單元。當所述轉(zhuǎn)移指示單元將轉(zhuǎn)移指令提供給所述多個DMA控制單元的第一 DMA控制單元時,所述轉(zhuǎn)移指示單元根據(jù)使用所述多個DMA控制單元的第二DMA控制單元的狀態(tài)為所述第一DMA控制單元限定轉(zhuǎn)移量,并將所述轉(zhuǎn)移指令提供給所述第一DMA控制單元。提供給所述第一DMA控制單元的所述轉(zhuǎn)移指令是為了進行圖像讀取、打印、圖像信息的轉(zhuǎn)換而執(zhí)行所述圖像信息的DMA轉(zhuǎn)移的指令。根據(jù)本發(fā)明的一個方面, 一種轉(zhuǎn)移指示方法包括控制歩驟,以這樣的方式控制多個DMA控制單元,即在所述多個DMA控制單元中的一個使用傳輸路徑的同時,防止除了所述多個DMA控制單元的所述一個之外的其他DMA控制單元使用所述傳輸路徑;限定步驟,為各個所述DMA控制單元限定DMA轉(zhuǎn)移的轉(zhuǎn)移量;以及提供步驟,將轉(zhuǎn)移指令提供給各個所述DMA控制單元。當將轉(zhuǎn)移指令提供給所述多個DMA控制單元的第一 DMA控制單元時,所述限定步驟和所述提供步驟包括根據(jù)使用所述多個DMA控制單元的第二DMA控制單元的狀態(tài)為所述第一 DMA控制單元限定轉(zhuǎn)移量以及將所述轉(zhuǎn)移指令提供給所述第一 DMA控制單元。
根據(jù)第[l]項,可以控制多個DMA控制單元的第一 DMA控制單元進行DMA轉(zhuǎn)移的轉(zhuǎn)移量,從而根據(jù)使用第二 DMA控制單元的狀態(tài)有效地利用傳輸路徑的帶寬。
根據(jù)第[2]項,可以與開始使用第二 DMA控制單元相關(guān)聯(lián)地進行控制,從而根據(jù)第二 DMA控制單元正在使用傳輸路徑的情況有效地利用傳輸路徑的帶寬。
根據(jù)第[3]項,可以與結(jié)束使用第二 DMA控制單元相關(guān)聯(lián)地進行控制,從而根據(jù)第二 DMA控制單元沒有正在使用傳輸路徑的情況有效地利用傳輸路徑的帶寬。根據(jù)第[4]項,可以控制多個DMA控制單元的特定DMA控制單元進行DMA轉(zhuǎn)移的轉(zhuǎn)移量,從而根據(jù)除了第一 DMA控制單元之外的DMA控制單元的使用狀態(tài)的組合有效地利用傳輸路徑的帶寬。
根據(jù)第[5]項,可以根據(jù)使用除了第一 DMA控制單元之外的DMA控制單元的狀態(tài)的組合的變化來生成用于有效地利用傳輸路徑的帶寬的轉(zhuǎn)移指令。
根據(jù)第[6]項,可以控制多個DMA控制單元的特定DMA控制單元進行DMA轉(zhuǎn)移的轉(zhuǎn)移量,從而根據(jù)使用第二 DMA控制單元的狀態(tài)有效地利用傳輸路徑的帶寬。
根據(jù)第[7]項,可以控制多個DMA控制單元中的特定DMA控制單元進行DMA轉(zhuǎn)移的轉(zhuǎn)移量,從而根據(jù)使用第二 DMA控制單元的狀態(tài)有效地利用傳輸路徑的帶寬。


基于下列附圖詳細地說明本發(fā)明的示例性實施例,其中圖1是示出根據(jù)示例性實施例的DMA控制系統(tǒng)的功能構(gòu)造實例的框圖2是示出根據(jù)示例性實施例的DMA控制系統(tǒng)的物理構(gòu)造實例的框圖3是示出在采用虛擬存儲方法的系統(tǒng)中由DMAC讀取的描述符列表實例的簡圖4是解釋用于管理描述符列表的描述符列表管理隊列的構(gòu)造的說明圖5是示出由轉(zhuǎn)移指示單元執(zhí)行的描述符列表的應用操作實例的流程圖6是示出由轉(zhuǎn)移指示單元執(zhí)行的描述符列表的應用操作實例的流程圖7是示出由轉(zhuǎn)移指示單元執(zhí)行的描述符列表的應用操作的另一實例的流程圖8是示出由轉(zhuǎn)移指示單元執(zhí)行的描述符列表的應用操作的另
8一實例的流程圖9是設置為分別將正在使用的通道的組合與描述符數(shù)目相關(guān)
聯(lián)的表格的實例;
圖IO是示出DMAC的第一操作實例的流程圖;圖11是示出DMAC的通道CH1和CH2的操作實例的順序圖;圖12是示出DMAC的通道CHI和CH2的操作實例的順序圖;圖13是示出DMAC的通道CH1和CH2的操作之間的比較例的
順序圖14是示出DMAC的通道CHI和CH2的操作實例的順序圖;圖15是示出DMAC的第二操作實例的流程圖;圖16是示出DMAC的通道CH1和CH2的操作實例的順序圖;圖17是示出DMAC的通道CHI和CH2的操作實例的順序圖;圖18是示出DMAC的通道CHI和CH2的操作之間的比較例的順序圖19是示出DMAC的通道CHI和CH2的操作實例的順序圖;圖20是示出DMAC的第三操作實例的流程圖;圖21是示出DMAC的通道CH1和CH2的操作實例的順序圖;圖22是示出DMAC的通道CH1和CH2的操作實例的順序圖;圖23是示出DMAC的通道CHI和CH2的操作之間的比較例的順序圖;以及
圖24是示出包括根據(jù)示例性實施例的DMA控制系統(tǒng)的圖像處理系統(tǒng)的構(gòu)造實例的簡圖。
具體實施例方式
在下文中,參考附圖,說明本發(fā)明的示例性實施例。圖1是示出根據(jù)示例性實施例的DMA控制系統(tǒng)1的功能構(gòu)造實例的框圖。在圖1中,DMA控制系統(tǒng)l包括多個DMA控制單元11、 12…、控制單元20、轉(zhuǎn)移(傳送)指示單元30以及轉(zhuǎn)移請求單元40。在下列說明中,當不必在其中區(qū)分時,DMA控制單元ll、12…共同稱為"DMA控制單元10"。圖2是示出根據(jù)示例性實施例的DMA控制系統(tǒng)1的物理構(gòu)造實例的框圖。在圖2中,DMA控制系統(tǒng)1包括CPU 50、存儲器60、輸入/輸出裝置70、 DMA控制器(在下文中,稱為"DMAC")80、以及用于相互連接這些構(gòu)成部件的總線B。
在圖2的實例中,由具有多個通道的單個DMAC 80實現(xiàn)多個DMA控制單元10和控制單元20。例如,分別由DMAC 80的第一通道CH1、第二通道CH2…實現(xiàn)DMA控制單元11、 12…。可以由其他的物理構(gòu)造,例如多個DMAC和用于控制這些DMAC的控制電路實現(xiàn)多個DMA控制單元10和控制單元20。例如,通用DMAC可以用作具有多個通道的每一個DMAC 80以及多個DMAC。
在圖2的實例中,由CPU 50實現(xiàn)圖1中的轉(zhuǎn)移指示單元30。具體而言,以這樣的方式實現(xiàn)轉(zhuǎn)移指示單元30的功能,即:CPU 50將記錄在記錄介質(zhì)上的程序(例如,裝置驅(qū)動程序)讀取到存儲器60中并執(zhí)行??梢杂善渲杏涗浟顺绦虻闹T如CD-ROM等計算機可讀記錄介質(zhì)提供程序,或者可以通過通信提供程序作為數(shù)據(jù)信號。可以由另一種物理構(gòu)造,例如僅由硬件來實現(xiàn)轉(zhuǎn)移指示單元30。也可以提供將計算機用作多個DMA控制單元10和轉(zhuǎn)移指示單元30的程序。
多個DMA控制單元IO的每一個基于轉(zhuǎn)移指令利用傳輸路徑來控制DMA轉(zhuǎn)移。具體而言,多個DMA控制單元10的每一個根據(jù)轉(zhuǎn)移指令經(jīng)由傳輸路徑(例如,總線B)控制從轉(zhuǎn)移源到轉(zhuǎn)移目標的DMA轉(zhuǎn)移。轉(zhuǎn)移源和轉(zhuǎn)移目標表示由轉(zhuǎn)移指令限定的存儲器60和輸入/輸出裝置70等。
控制單元20控制多個DMA控制單元10。具體而言,控制單元20以這樣的方式控制DMA控制單元,即在一個DMA控制單元IO使用傳輸路徑的同時,其余的DMA控制單元IO不使用傳輸路徑。例如,控制單元20根據(jù)諸如輪轉(zhuǎn)法或固定優(yōu)先級順序的方法等裁決方法裁決多個DMA控制單元10中傳輸路徑的使用。根據(jù)一種模式,在將傳輸路徑的使用分配給一個DMA控制單元IO的情況下,控制單元20基于單一轉(zhuǎn)移指令允許該一個DMA控制單元10在從開始
10DMA轉(zhuǎn)移到完成DMA轉(zhuǎn)移的期間內(nèi)占用傳輸路徑(即通過轉(zhuǎn)移指 令)。根據(jù)另一種模式,在以將其劃分成多個轉(zhuǎn)移單元的方式執(zhí)行 基于單一轉(zhuǎn)移指令的DMA轉(zhuǎn)移的構(gòu)造中,在將傳輸路徑的使用分配 給一個DMA控制單元10的情況下,控制單元20允許該一個DMA 控制單元10在從開始單個單元轉(zhuǎn)移到完成單個單元轉(zhuǎn)移的期間內(nèi)占 用傳輸路徑(即通過轉(zhuǎn)移單元)。
轉(zhuǎn)移指示單元30分別為DMA控制單元10生成轉(zhuǎn)移指令,并 且將這些轉(zhuǎn)移指令提供給DMA控制單元10。轉(zhuǎn)移指令包括諸如表 示轉(zhuǎn)移源的地址的信息、表示轉(zhuǎn)移量的信息、表示轉(zhuǎn)移目標的地址 的信息等DMA轉(zhuǎn)移所需的信息。根據(jù)一種模式,轉(zhuǎn)移指示單元30 分別限定相應的多個DMA控制單元10的轉(zhuǎn)移量,并且將轉(zhuǎn)移指令 提供給多個DMA控制單元10。
當轉(zhuǎn)移指示單元30從轉(zhuǎn)移請求單元40接收到對于特定DMA 控制單元IO進行DMA轉(zhuǎn)移的請求時,例如,該轉(zhuǎn)移指示單元基于 該請求為特定DMA控制單元10生成轉(zhuǎn)移指令,并且將轉(zhuǎn)移指令提 供給特定DMA控制單元10。在此情況下,轉(zhuǎn)移指示單元30可以基 于該請求生成一系列轉(zhuǎn)移指令,并且提供給DMA控制單元10。例 如,由較高級的應用程序?qū)崿F(xiàn)轉(zhuǎn)移請求單元40。
在具體實例中,轉(zhuǎn)移指示單元30生成轉(zhuǎn)移指令并將轉(zhuǎn)移指令存 儲在預定存儲區(qū)域中。此后,轉(zhuǎn)移指示單元將表示轉(zhuǎn)移指令的存儲 位置的信息提供給DMA控制單元10。 DMA控制單元10基于由轉(zhuǎn) 移指示單元30提供的信息從預定存儲區(qū)域中讀取轉(zhuǎn)移指令。例如, 預定存儲區(qū)域是存儲器60內(nèi)的存儲區(qū)域。
在轉(zhuǎn)移指示單元30在將轉(zhuǎn)移指令提供給多個DMA控制單元10 中的特定DMA控制單元IO之后,對于該相同的DMA控制單元10 生成后一轉(zhuǎn)移指令的情況下,轉(zhuǎn)移指示單元在基于前一轉(zhuǎn)移指令檢 測到完成DMA轉(zhuǎn)移之后給出后一轉(zhuǎn)移指令。這樣,在基于一系列轉(zhuǎn) 移指令執(zhí)行DMA轉(zhuǎn)移的情況下,由于在基于前一轉(zhuǎn)移指令檢測到完 成DMA轉(zhuǎn)移之后直到給出后一轉(zhuǎn)移指令會花費時間,所以在各次 DMA轉(zhuǎn)移之間會出現(xiàn)空閑時間(間隔)。
11根據(jù)具體模式,當完成基于轉(zhuǎn)移指令的DMA轉(zhuǎn)移時,DMA控 制單元10或控制單元20向轉(zhuǎn)移指示單元30通知DMA轉(zhuǎn)移的完成。 然后,轉(zhuǎn)移指示單元30在接收到完成的通知之后將后一轉(zhuǎn)移指令提 供給DMA控制單元IO。例如,當完成DMA轉(zhuǎn)移時,DMAC80生 成表示完成DMA轉(zhuǎn)移的中斷,并且將該中斷提供給CPU 50。在接 收到中斷之后,CPU 50將后一轉(zhuǎn)移指令提供給DMAC 80。在生成中 斷之后直到應用后一轉(zhuǎn)移指令會出現(xiàn)空閑時間??臻e時間包括中斷 處理時間、操作系統(tǒng)的開銷、DMAC 80的寄存器的設定時間等。
轉(zhuǎn)移指示單元30在為多個DMA控制單元10中的特定DMA控 制單元IO生成轉(zhuǎn)移指令時根據(jù)使用除了特定DMA控制單元IO之外 的至少一個其余DMA控制單元10的狀態(tài)控制由特定DMA控制單 元10的轉(zhuǎn)移指令限定的DMA轉(zhuǎn)移的轉(zhuǎn)移量。根據(jù)一種模式,在對 多個DMA控制單元IO中的特定DMA控制單元IO指示轉(zhuǎn)移時,轉(zhuǎn) 移指示單元30根據(jù)使用除了特定DMA控制單元10之外的另一 DMA控制單元10的狀態(tài)限定特定DMA控制單元10的DMA轉(zhuǎn)移 的轉(zhuǎn)移量,并且將轉(zhuǎn)移指令提供給特定DMA控制單元10。
上述狀態(tài)是指被使用的狀態(tài)或者不是根據(jù)一種模式的狀態(tài)。例 如,轉(zhuǎn)移指示單元30根據(jù)另一DMA控制單元10是否正在被使用控 制由轉(zhuǎn)移指令限定的DMA轉(zhuǎn)移的轉(zhuǎn)移量。在此情況下,轉(zhuǎn)移指示單 元30基于預定判據(jù)判斷另一控制單元10是否正在被使用。例如, 轉(zhuǎn)移指示單元30在下列情況中每一種情況下判定為"正在被使用"
(al)當DMA控制單元IO正在執(zhí)行DMA轉(zhuǎn)移時;
(a2)當在轉(zhuǎn)移指令提供給DMA控制單元IO之后還沒有完成 基于該轉(zhuǎn)移指令的DMA轉(zhuǎn)移時;
(a3)當轉(zhuǎn)移指令提供給DMA控制單元IO之后還沒有完成基 于包括該轉(zhuǎn)移指令的一系列轉(zhuǎn)移指令的DMA轉(zhuǎn)移時;
(a4)當在轉(zhuǎn)移指示單元30接收到對于DMA控制單元10進 行DMA轉(zhuǎn)移的請求之后還沒有完成根據(jù)該進行DMA轉(zhuǎn)移的請求的 DMA轉(zhuǎn)移時;以及
(a5)當轉(zhuǎn)移指示單元30在檢測到使用DMA控制單元10的開始之后沒有檢測到使用DMA控制單元10的完成時(例如,當轉(zhuǎn) 移指示單元30在接收到開始作業(yè)的通知之后沒有接收到完成使用特 定DMA控制單元IO的作業(yè)(工作)的通知時)。
根據(jù)一種模式,在轉(zhuǎn)移指示單元30檢測到開始使用另一 DMA 控制單元IO的情況下,當存在已經(jīng)生成待提供給特定DMA控制單 元10的轉(zhuǎn)移指令時,轉(zhuǎn)移指示單元取消已經(jīng)生成的轉(zhuǎn)移指令,并且 根據(jù)另一 DMA控制單元IO開始使用的情況生成限定轉(zhuǎn)移量的新的 轉(zhuǎn)移指令。根據(jù)一種模式,在轉(zhuǎn)移指示單元30檢測到開始使用另一 DMA控制單元10的情況下,當存在已經(jīng)生成待提供給特定DMA控 制單元IO的轉(zhuǎn)移指令時,轉(zhuǎn)移指示單元取消已經(jīng)生成的轉(zhuǎn)移指令。 然后,轉(zhuǎn)移指示單元30根據(jù)另一DMA控制單元IO正在被使用的情 況限定轉(zhuǎn)移量,并且將轉(zhuǎn)移指令提供給特定DMA控制單元10。存 在下列情況(bl)至(b4)作為檢測到開始使用另一DMA控制單元 IO的情況
(bl)當檢測到DMA控制單元10開始進行DMA轉(zhuǎn)移時;
(b2)當轉(zhuǎn)移指令提供給DMA控制單元10時;
(b3)當轉(zhuǎn)移指示單元30接收到對于DMA控制單元10進行
DMA轉(zhuǎn)移的請求時;以及
(b4)當轉(zhuǎn)移指示單元30接收到使用特定DMA控制單元10
的作業(yè)開始的通知(例如,表示作業(yè)開始的通知或表示作業(yè)已經(jīng)開
始的通知)時。
根據(jù)另一模式,在轉(zhuǎn)移指示單元30檢測到使用另一DMA控制 單元IO完成的情況下,當存在已經(jīng)生成待提供給特定DMA控制單 元10的轉(zhuǎn)移指令時,轉(zhuǎn)移指示單元取消已經(jīng)生成的轉(zhuǎn)移指令,并且 根據(jù)另一 DMA控制單元10沒有正在被使用的情況生成限定轉(zhuǎn)移量 的新的轉(zhuǎn)移指令。根據(jù)一種模式,在轉(zhuǎn)移指示單元30檢測到使用另 一DMA控制單元IO完成的情況下,當存在已經(jīng)生成待提供給特定 DMA控制單元10的轉(zhuǎn)移指令時,轉(zhuǎn)移指示單元取消已經(jīng)生成的轉(zhuǎn) 移指令,然后,根據(jù)另一DMA控制單元IO沒有正在被使用的情況 限定 移量,并且將轉(zhuǎn)移指令提供給特定DMA控制單元10。存在下列情況(cl)至(c5)作為檢測到使用另一 DMA控制單元10完
成的情況
(cl)當檢測到DMA控制單元IO進行的DMA轉(zhuǎn)移完成時; (c2)當檢測到DMA控制單元10基于轉(zhuǎn)移指令進行的DMA 轉(zhuǎn)移完成時;
(c3)當檢測到DMA控制單元IO基于一系列轉(zhuǎn)移指令進行的 DMA轉(zhuǎn)移完成時;
(c4)當檢測到作為請求對象的DMA控制單元IO根據(jù)由轉(zhuǎn)移 指示單元30接收到的請求進行的DMA轉(zhuǎn)移完成時;以及
(c5)在接收到使用DMA控制單元IO的作業(yè)完成的通知的情 況下(例如,將很快完成作業(yè)的通知或已經(jīng)完成作業(yè)的通知)。
在DMA控制系統(tǒng)1包括三個或更多個DMA控制單元10的構(gòu) 造中,根據(jù)一種模式,在為特定DMA控制單元IO生成轉(zhuǎn)移指令的 情況下,轉(zhuǎn)移指示單元30根據(jù)使用除了特定DMA控制單元10之外 的其他DMA控制單元10的狀態(tài)的組合控制由轉(zhuǎn)移指令限定的DMA 轉(zhuǎn)移的轉(zhuǎn)移量。例如,轉(zhuǎn)移指示單元30根據(jù)除了特定DMA控制單 元IO之外的其他DMA控制單元10中正在被使用的DMA控制單元 10的組合控制由轉(zhuǎn)移指令限定的DMA轉(zhuǎn)移的轉(zhuǎn)移量。根據(jù)一種模 式,在為特定DMA控制單元IO生成轉(zhuǎn)移指令的情況下,轉(zhuǎn)移指示 單元30根據(jù)使用除了特定DMA控制單元10之外的其他DMA控制 單元10的狀態(tài)的組合限定特定DMA控制單元10的轉(zhuǎn)移量,并且將 轉(zhuǎn)移指令提供給特定DMA控制單元10。
例如,可以預先提供正在被使用的DMA控制單元IO的組合與 用于控制轉(zhuǎn)移量的控制信息相關(guān)聯(lián)的表格。然后,轉(zhuǎn)移指示單元30 參考該表格指定與正在被使用的DMA控制單元10的組合對應的控 制信息,并且基于這樣指定的控制信息生成轉(zhuǎn)移指令。例如,控制 信息是表示根據(jù)一個轉(zhuǎn)移指令的轉(zhuǎn)移量的上限的信息。此外,例如, 基于DMA轉(zhuǎn)移率的實際測量值設定控制量。例如,根據(jù)一種模式, 表格的控制信息是可變的,從而可以根據(jù)用戶的用途而變化。
根據(jù)一種模式,當特定DMA控制單元IO本身執(zhí)行DMA轉(zhuǎn)移時,或者當沒有使用除了特定DMA控制單元10之外的所有其他 DMA控制單元10中的任一個時,生成特定DMA控制單元10的轉(zhuǎn) 移指令,從而以轉(zhuǎn)移效率最高的轉(zhuǎn)移量執(zhí)行DMA轉(zhuǎn)移。
根據(jù)另一模式,在轉(zhuǎn)移指示單元30檢測到組合的變化的情況 下,當存在已經(jīng)生成待提供給特定DMA控制單元10的轉(zhuǎn)移指令時, 轉(zhuǎn)移指示單元取消已經(jīng)生成的轉(zhuǎn)移指令,并且根據(jù)變化之后的組合
生成限定轉(zhuǎn)移量的新的轉(zhuǎn)移指令。根據(jù)一種模式,在轉(zhuǎn)移指示單元 30檢測到組合的變化的情況下,當存在已經(jīng)生成待提供給特定DMA 控制單元10的轉(zhuǎn)移指令時,轉(zhuǎn)移指示單元取消已經(jīng)生成的轉(zhuǎn)移指令, 然后根據(jù)變化之后的組合限定轉(zhuǎn)移量,并且將轉(zhuǎn)移指令提供給特定 DMA控制單元10。
轉(zhuǎn)移指示單元30可以根據(jù)使用所有的多個DMA控制單元10 或僅僅使用多個DMA控制單元10的一部分的狀態(tài)給出轉(zhuǎn)移量的控 制。也就是說,所有多個DMA控制單元10中的每一個可以是特定 DMA控制單元10,或者僅僅多個DMA控制單元10的一部分可以 是特定DMA控制單元10。
根據(jù)一種模式,DMA控制系統(tǒng)1包含在打印裝置中。在此情況 下,在執(zhí)行圖像讀取、圖像信息的打印或轉(zhuǎn)換的過程的情況下,當 轉(zhuǎn)移指示單元30為多個DMA控制單元10中的特定DMA控制單元 10生成轉(zhuǎn)移指令從而執(zhí)行圖像信息的DMA轉(zhuǎn)移時,轉(zhuǎn)移指示單元 根據(jù)使用除了特定DMA控制單元IO之外的其他DMA控制單元10 的狀態(tài)限定用于特定DMA控制單元10的DMA轉(zhuǎn)移的轉(zhuǎn)移量,并 且將轉(zhuǎn)移指令提供給特定DMA控制單元10。例如,當打印裝置執(zhí) 行圖像讀取、圖像信息的打印或轉(zhuǎn)換的過程時,當轉(zhuǎn)移指示單元30 為特定DMA控制單元10生成轉(zhuǎn)移指令時,轉(zhuǎn)移指示單元根據(jù)使用 除了特定DMA控制單元10之外的其他DMA控制單元10的狀態(tài)控 制由轉(zhuǎn)移指令限定的DMA轉(zhuǎn)移的轉(zhuǎn)移量。
在下文中,將具體地說明根據(jù)示例性實施例的DMA控制系統(tǒng)1 的操作。在下列說明中,假定由具有N (N是2或更大的整數(shù))個 通道CHI至CHN的DMAC 80實現(xiàn)多個DMA控制單元10和控制
15單元20。此外,假定由CPU 50和裝置驅(qū)動程序的結(jié)合實現(xiàn)轉(zhuǎn)移指 示單元30。此外,假定由CPU 50和較高級的應用程序的結(jié)合實現(xiàn) 轉(zhuǎn)移請求單元40。
首先,將對當通知DMAC 80的通道CH1時DMA控制系統(tǒng)1 的操作的具體實例進行說明。
在本實例中,DMAC 80具有能夠?qū)τ陔x散地址連續(xù)地轉(zhuǎn)移數(shù)據(jù) 的分散-聚集功能。此外,DMAC 80基于由轉(zhuǎn)移指示單元30生成的 描述符執(zhí)行DMA轉(zhuǎn)移。描述符是包括DMA轉(zhuǎn)移所需信息的轉(zhuǎn)移信 息。
轉(zhuǎn)移指示單元30為每一個預定單元的轉(zhuǎn)移量生成描述符,并且 通過連接這樣生成的多個描述符而生成描述符列表。描述符列表對 應于轉(zhuǎn)移指令。描述符列表存儲在設置在存儲器60中的描述符存儲 區(qū)域中,并且描述符列表的存儲地址記錄在用于通道CH1的FIFO 類型的描述符列表管理隊列中。描述符列表管理隊列是為DMAC 80 的每一個通道準備的。
轉(zhuǎn)移指示單元30將記錄在用于通道CH1的描述符列表管理隊 列中的地址設定為DMAC 80的通道CH1,并且激活通道CH1。這 樣,DMAC 80依次從存儲在這樣設定的地址中的描述符列表中逐一 地讀取描述符,并且根據(jù)這樣讀取的描述符連續(xù)地執(zhí)行通道CH1的 DMA轉(zhuǎn)移。
當對于描述符列表中所描述的所有描述符完成了DMA轉(zhuǎn)移時, DMAC 80生成表示完成通道CH1的DMA轉(zhuǎn)移的中斷并將其提供給 CPU 50。然后,轉(zhuǎn)移指示單元30從通道CH1的描述符列表管理隊 列中讀取下一個描述符列表的地址,并且將這樣讀取的描述符列表 設定為通道CH1。然后,依次讀取存儲在這樣設定的地址中的描述 符列表中所描述的描述符,并且連續(xù)地執(zhí)行通道CH1的DMA轉(zhuǎn)移。 通過重復地執(zhí)行這些操作,可以基于一系列描述符列表執(zhí)行DMA轉(zhuǎn) 移,從而最終執(zhí)行了待轉(zhuǎn)移的所有數(shù)據(jù)的DMA轉(zhuǎn)移。
圖3是示出在采用虛擬存儲方法的系統(tǒng)中由DMAC 80讀取的 描述符列表實例的簡圖。通過虛擬存儲方法管理存儲器60。如圖3中右側(cè)圖所示,物理 上離散的物理地址區(qū)域映射在連續(xù)的虛擬地址區(qū)域上并被管理。在 實際存取存儲的數(shù)據(jù)的情況下,以這樣的方式存取數(shù)據(jù),即根據(jù) 地址轉(zhuǎn)換表等將虛擬地址區(qū)域的連續(xù)地址區(qū)域轉(zhuǎn)換成相應的物理地 址區(qū)域。盡管能夠映射在虛擬地址上的物理存儲器的最小單位稱為
頁,然而轉(zhuǎn)移指示單元30以頁為單位檢查物理上分散的數(shù)據(jù)的地址,
并且為每一個數(shù)據(jù)生成描述符。
如圖3中左側(cè)圖所示,描述符構(gòu)造為包括關(guān)于下一個描述符地
址、轉(zhuǎn)移數(shù)據(jù)量、轉(zhuǎn)移源地址和轉(zhuǎn)移目標地址的信息。
"下一個描述符地址"是表示依次排列在描述符列表中的描述
符中接下來要由DMAC 80讀取的描述符的地址的數(shù)據(jù)。當下一個描 述符是描述符列表的描述符中最終要讀取的最后一個描述符時,將' 表示下一個描述符是描述符列表的最后一個描述符的數(shù)據(jù)存儲在下 一描述符地址的區(qū)域中。根據(jù)下一描述符地址,連續(xù)地讀取存儲在 物理上離散的地址中的描述符,并且執(zhí)行DMA轉(zhuǎn)移。
"轉(zhuǎn)移數(shù)據(jù)量"是用相應的描述符表示經(jīng)歷DMA轉(zhuǎn)移的數(shù)據(jù) 的大小的數(shù)據(jù)。"轉(zhuǎn)移源地址"是表示存儲待轉(zhuǎn)移數(shù)據(jù)的地址的數(shù) 據(jù)。"轉(zhuǎn)移目標地址"是表示存儲通過一定量的轉(zhuǎn)移數(shù)據(jù)從轉(zhuǎn)移源 地址讀取的數(shù)據(jù)的地址的數(shù)據(jù)。
在本實例中,每一個描述符能夠轉(zhuǎn)移的最大數(shù)據(jù)量是頁大小,
并且每一個描述符的"轉(zhuǎn)移數(shù)據(jù)量"設定為等于或小于頁大小的固 定值(單位轉(zhuǎn)移量)。這樣,構(gòu)成描述符列表的描述符的數(shù)目(即 描述符列表的描述符的數(shù)目)與由描述符列表限定的DMA轉(zhuǎn)移的轉(zhuǎn) 移量成比例。
圖4是說明用于管理描述符列表的描述符列表管理隊列的構(gòu)造 的說明圖。描述符列表管理隊列是通過將各自表示存儲相應的描述 符列表的地址(具體而言,存儲構(gòu)成描述符列表的描述符的開頭部 分處的描述符的地址)的描述符列表指針連續(xù)地排列作為列表結(jié)構(gòu) 而構(gòu)造的緩沖區(qū)。此外,在描述符列表管理隊列的開頭部分表示描 述符列表指針的描述符列表管理隊列指針存儲在CPU 50的預定寄
17存器中(或存儲器的預定區(qū)域中等)。由于描述符列表管理隊列構(gòu)
造為FIFO類型,所以當轉(zhuǎn)移指示單元30讀取開頭部分的描述符列
表指針時,描述符列表管理隊列指針被重寫以表示下一描述符列表
指針。描述符列表管理隊列指針為DMAC80的各個通道而存在。
當新生成描述符列表并將其存儲在預定存儲區(qū)域中時,轉(zhuǎn)移指 示單元30在描述符列表管理隊列的最后部分增加表示這樣生成的描 述符列表的地址的描述符列表指針,從而描述符列表的地址以生成 的順序被記錄。
當沒有描述符列表指針記錄在描述符列表管理隊列中時,描述 符列表管理隊列指針設定為空。
在通過通道CH1熱行DMA轉(zhuǎn)移的情況下,轉(zhuǎn)移指示單元30 將開頭部分的用通道CH1的描述符列表管理隊列指針表示的描述符 列表指針設定為DMAC 80的通道CH1以開始通過通道CH1進行 DMA轉(zhuǎn)移,從而基于用描述符列表指針表示的描述符列表執(zhí)行DMA 轉(zhuǎn)移。連續(xù)地執(zhí)行DMA轉(zhuǎn)移,而不會被CPU50中斷,直到完成單 個描述符列表的DMA轉(zhuǎn)移。另一方面,在通過通道CH1進行DMA 轉(zhuǎn)移的過程中,轉(zhuǎn)移指示單元30以前述方式為通道CH1生成下一個 描述符列表和隨后的描述符列表,并且將這樣生成的這些描述符列 表的描述符列表指針記錄在用于通道CH1的描述符列表管理隊列 中。
當完成了單個描述符列表的DMA轉(zhuǎn)移時,DMAC 80在此時刻 為CPU50生成中斷。然后,轉(zhuǎn)移指示單元30將用通道CH1的描述 符列表管理隊列指針表示的下一描述符列表指針設定為DMAC 80 的通道CH1,從而執(zhí)行DMA轉(zhuǎn)移。這樣,以記錄在用于通道CH1 的描述符列表管理隊列中的順序讀取用于通道CH1的描述符列表, 從而通過通道CH1執(zhí)行DMA轉(zhuǎn)移。
圖5是示出由轉(zhuǎn)移指示單元30執(zhí)行的描述符列表的給定操作實 例的流程圖。在下文中,將參考圖5,對由轉(zhuǎn)移指示單元30執(zhí)行的 描述符列表的給定操作實例進行說明。盡管將要對通道CH1的情況 進行說明,然而也可以以類似的方式對于其他通道執(zhí)行給定操作。例如,可以重復地執(zhí)行圖5的處理。
轉(zhuǎn)移指示單元30判斷描述符指針是否記錄在用于通道CH1的 描述符列表管理隊列中(S11)。
當判定沒有記錄描述符指針(Sll中判斷結(jié)果為否定(NO)) 時,轉(zhuǎn)移指示單元30重復步驟S11的處理。
另一方面,當判定記錄了描述符指針(Sll中判斷結(jié)果為肯定), 轉(zhuǎn)移指示單元30判斷是否可以將描述符列表指針提供給通道CH1 (S12)。具體而言,當在將描述符列表指針設定為通道CH1之后 還沒有生成表示完成由通道CH1進行的DMA轉(zhuǎn)移的中斷時,轉(zhuǎn)移 指示單元30判定不可以提供描述符列表指針,而當生成中斷時,判 定可以提供描述符列表指針。
當判定可以提供描述符列表指針時(S12中判斷結(jié)果為肯定), 轉(zhuǎn)移指示單元30將用描述符列表管理隊列指針表示的描述符列表指 針設定為通道CH1 (S13),并且結(jié)束處理。
另一方面,當判定不可以提供描述符列表指針時(S12中判斷 結(jié)果為否定),轉(zhuǎn)移指示單元30將處理返回封步驟S11。
圖6是示出由轉(zhuǎn)移指示單元30執(zhí)行的用于生成描述符列表的操 作實例的流程圖。圖6示出了在根據(jù)使用通道CH2的狀態(tài)為通道CH1 生成描述符列表的情況下的過程。在下文中,將參考圖6,對由轉(zhuǎn)移 指示單元30執(zhí)行的用于生成描述符列表的操作實例進行說明。例如, 可以重復地執(zhí)行圖6的處理。
轉(zhuǎn)移指示單元30設置在備用狀態(tài),直到從轉(zhuǎn)移請求單元40接 收到對于通道CH1進行DMA轉(zhuǎn)移的請求為止(S21中判斷結(jié)果為 否定),并且在接收到該請求時使處理前進到步驟S22 (S21中判斷 結(jié)果為肯定)。
在步驟S22中,轉(zhuǎn)移指示單元30判斷DMAC 80的通道CH2 是否正在被使用。具體而言,當在檢測到開始使用通道CH2之后還 沒有檢測到完成使用通道CH2時,轉(zhuǎn)移指示單元30判定通道CH2 正在被使用。當檢測到完成使用時,轉(zhuǎn)移指示單元30判定通道CH2 沒有正在被使用。當判定通道CH2沒有正在被使用時(S22中判斷結(jié)果為否定), 轉(zhuǎn)移指示單元30將與沒有使用通道CH2的情況對應的值DO (DO 是1或更大的整數(shù))設定為作為用于生成描述符列表的參數(shù)的最大 描述符數(shù)目D。與沒有使用通道CH2情況(即只有通道CH1進行操 作的情況)對應的值DO是例如通過預先測量獲得的描述符數(shù)目,并 且是轉(zhuǎn)移效率變得最高的描述符數(shù)目。
接下來,轉(zhuǎn)移指示單元30基于最大描述符數(shù)目D (=D0)為通 道CH1生成描述符列表,該描述符列表用于對由請求指定的待轉(zhuǎn)移 的數(shù)據(jù)執(zhí)行DMA轉(zhuǎn)移(S24)。具體而言,轉(zhuǎn)移指示單元30以這樣 的方式生成描述符列表,即最大描述符數(shù)目D (=D0)是構(gòu)成描述 符列表的描述符數(shù)目的最大值。這樣,假定單個描述符的轉(zhuǎn)移數(shù)據(jù) 量是a,在待轉(zhuǎn)移的數(shù)據(jù)中還沒有對其生成描述符的數(shù)據(jù)的剩余量大 于tax(DO-l) }的情況下,生成描述符數(shù)目DO的描述符列表。反之, 當數(shù)據(jù)的剩余量等于或小于(ax (D0-1) }時,生成小于DO且與剩余 數(shù)據(jù)量相符的描述符數(shù)目的描述符列表。
接下來,轉(zhuǎn)移指示單元30判斷是否檢測到開始使用通道CH2 (S25)。具體而言,轉(zhuǎn)移指示單元30判斷是否從較高級的應用程 序接收到使用通道CH2的作業(yè)開始的通知。
當判定還沒有檢測到開始使用通道CH2時(S25中判斷結(jié)果為 否定),轉(zhuǎn)移指示單元30判斷是否完成基于請求的DMA轉(zhuǎn)移(S26)。 具體而言,當描述符列表管理隊列指針設定為空并且沒有對其生成 描述符的數(shù)據(jù)的剩余量是零時,轉(zhuǎn)移指示單元30判定完成DMA轉(zhuǎn) 移,否則,判定還沒有完成DMA轉(zhuǎn)移。
當判定完成了DMA轉(zhuǎn)移(S26中判斷結(jié)果為肯定)時,轉(zhuǎn)移指 示單元30結(jié)束處理。
反之,當判定還沒有完成DMA轉(zhuǎn)移時(S26中判斷結(jié)果為否 定),轉(zhuǎn)移指示單元30將處理返回到步驟S24。在步驟S24的第二 或隨后的處理中,當剩余數(shù)據(jù)量不是零時生成描述符列表,而當剩 余數(shù)據(jù)量是零時不生成描述符列表。
當在步驟S22中判定通道CH2正在被使用時(S22中判斷結(jié)果為肯定),轉(zhuǎn)移指示單元30將與通道CH2正在被使用的情況對應的
值D1 (Dl是1或更大的整數(shù))設定為最大描述符數(shù)目D (S27)。
然后,轉(zhuǎn)移指示單元30基于最大描述符數(shù)目D (=D1)為通道 CH1生成描述符列表,該描述符列表用于執(zhí)行由請求指定的待轉(zhuǎn)移 的數(shù)據(jù)的DMA轉(zhuǎn)移(S28)。具體而言,轉(zhuǎn)移指示單元30以這樣的 方式生成描述符列表,S卩最大描述符數(shù)目D (=D1)是構(gòu)成描述符 列表的描述符數(shù)目的最大值。這樣,假定單個描述符的轉(zhuǎn)移數(shù)據(jù)量 為a,在待轉(zhuǎn)移的數(shù)據(jù)中還沒有對其生成描述符的數(shù)據(jù)的剩余量大于 {ax (Dl-1) }的情況下,生成描述符數(shù)目Dl的描述符列表。反之, 當數(shù)據(jù)的剩余量等于或小于(ax (Dl-1) }時,生成小于D1且與剩余 數(shù)據(jù)量相符的描述符數(shù)目的描述符列表。
接下來,轉(zhuǎn)移指示單元30判斷是否檢測到完成使用通道CH2 (S29)。具體而言,轉(zhuǎn)移指示單元30判斷是否從較高級的應用程 序接收到使用通道CH2的作業(yè)完成的通知。
當判定還沒有檢測到完成使用通道CH2時(S29中判斷結(jié)果為 否定),轉(zhuǎn)移指示單元30判斷是否完成基于請求的DMA轉(zhuǎn)移(S30)。 具體而言,當描述符列表管理隊列指針設定為空并且還沒有對其生 成描述符的數(shù)據(jù)的剩余量是零時,轉(zhuǎn)移指示單元30判定完成DMA 轉(zhuǎn)移,否則,判定還沒有完成DMA轉(zhuǎn)移。
當判定完成DMA轉(zhuǎn)移時(S30中判斷結(jié)果為肯定),轉(zhuǎn)移指示 單元30結(jié)束處理。
反之,當判定還沒有完成DMA轉(zhuǎn)移(S30中判斷結(jié)果為否定), 轉(zhuǎn)移指示單元30將處理返回到步驟S28。在步驟S28的第二或隨后 的處理中,當剩余數(shù)據(jù)量不是零時生成描述符列表,而當剩余數(shù)據(jù) 量是零時不生成描述符列表。
當在步驟S25中判定檢測到開始使用通道CH2時(S25中判斷 結(jié)果為肯定),轉(zhuǎn)移指示單元30廢棄存儲在描述符存儲區(qū)域中的用 于通道CH1的所有描述符列表,并且刪除記錄在用于通道CH1的描 述符列表管理隊列中的所有描述符列表指針(S31),然后使處理前 進到步驟S27。這樣,廢棄了與通道CH2沒有正在被使用的情況相符的描述符數(shù)目的描述符列表,并且生成了與通道CH2正在被使用 的情況相符的描述符數(shù)目的新的描述符列表。當沒有存儲用于通道
CH1的描述符列表時,不執(zhí)行步驟S31的處理。
當在步驟S29中判定檢測到完成使用通道CH2時(S29中判斷 結(jié)果為肯定),轉(zhuǎn)移指示單元30廢棄存儲在描述符存儲區(qū)域中的用 于通道CH1的所有描述符列表,并且刪除記錄在用于通道CH1的描 述符列表管理隊列中的所有描述符列表指針(S32),然后使處理前 進到步驟S23。這樣,廢棄了與通道CH2正在被使用的情況相符的 描述符數(shù)目的描述符列表,并且生成了與通道CH2沒有正在被使用 的情況相符的描述符數(shù)目的新的描述符列表。當沒有存儲用于通道 CH1的描述符列表時,不執(zhí)行步驟S32的處理。
在前述實例中,像通道CH1的前述情況那樣,轉(zhuǎn)移指示單元30 可以根據(jù)使用通道CH1的狀態(tài)為通道CH2生成描述符列表。反之, 轉(zhuǎn)移指示單元30也可以不考慮使用通道CH1的狀態(tài)為通道CH2生 成描述符列表。例如,如圖7所示,假定最大描述符數(shù)目D是常值, 轉(zhuǎn)移指示單元30可以為通道CH2生成描述符列表。
在圖7中,轉(zhuǎn)移指示單元30設置在備用狀態(tài),直到從轉(zhuǎn)移請求 單元40接收到對于通道CH2進行DMA轉(zhuǎn)移的請求(S35中判斷結(jié) 果為否定),并且當接收到該請求時使處理前進到步驟S36 (S35中 判斷結(jié)果為肯定)。
在步驟S36中,轉(zhuǎn)移指示單元30基于作為預定常值的最大描述 符數(shù)目D為通道CH2生成描述符列表,該描述符列表用于對由請求 指定的待轉(zhuǎn)移的數(shù)據(jù)執(zhí)行DMA轉(zhuǎn)移。具體而言,轉(zhuǎn)移指示單元30 以這樣的方式生成描述符列表,即最太描述符數(shù)目D是構(gòu)成描述 符列表的描述符數(shù)目的最大值。這樣,假定單個描述符的轉(zhuǎn)移數(shù)據(jù) 量是a,在待轉(zhuǎn)移的數(shù)據(jù)中還沒有對其生成描述符的數(shù)據(jù)的剩余量大 于(ax (D-l) }的情況下,生成描述符數(shù)目D的描述符列表。反之, 當數(shù)據(jù)的剩余量等于或小于(ax (D-l) }時,生成小于D且與剩余數(shù)
據(jù)量相符的描述符數(shù)目的描述符列表。
然后,轉(zhuǎn)移指示單元30判斷是否完成基于請求的DMA轉(zhuǎn)移(S37)。當判定還沒有完成DMA轉(zhuǎn)移時(S37中判斷結(jié)果為否定), 處理返回到步驟S36。反之,當判定完成DMA轉(zhuǎn)移時(S37中判斷 結(jié)果為肯定),結(jié)束處理。
圖8是示出由轉(zhuǎn)移指示單元30執(zhí)行的用于生成描述符列表的操 作的另一實例的流程圖。圖8示出了根據(jù)使用其他通道CH2至CHN 的狀態(tài)為通道CH1生成描述符列表的情況下的過程。在下文中,將 參考圖8,對由轉(zhuǎn)移指示單元30執(zhí)行的用于生成描述符列表的操作 的另一實例進行說明。
轉(zhuǎn)移指示單元30設置在備用狀態(tài),直到從轉(zhuǎn)移請求單元40接 收到對于通道CH1進行DMA轉(zhuǎn)移的請求(S41中判斷結(jié)果為否定), 并且當接收到該請求時使處理前進到步驟S42(S41中判斷結(jié)果為肯 定)。
在步驟S42中,.轉(zhuǎn)移指示單元30根據(jù)其他通道CH2至CHN中 正在被使用的通道的組合將描述符數(shù)目設定為最大描述符數(shù)目D。 具體而言,轉(zhuǎn)移指示單元30基于預先設定的表格確定最大描述符數(shù) 目D,以便分別將正在被使用的通道的組合與描述符數(shù)目相關(guān)聯(lián)。 例如,該表格中的描述符數(shù)目是從DMA轉(zhuǎn)移率的實際測量值獲得的 最優(yōu)值。
接下來,轉(zhuǎn)移指示單元30基于在步驟S42中設定的最大描述符 數(shù)目D為通道CH1生成描述符列表,該描述符列表用于對由請求指 定的待轉(zhuǎn)移的數(shù)據(jù)執(zhí)行DMA轉(zhuǎn)移(S43)。具體而言,轉(zhuǎn)移指示單 元30以這樣的方式生成描述符列表,S卩最大描述符數(shù)目D是構(gòu)成 描述符列表的描述符數(shù)目的最大值。這樣,假定單個描述符的轉(zhuǎn)移 數(shù)據(jù)量是a,在待轉(zhuǎn)移的數(shù)據(jù)中還沒有對其生成描述符的數(shù)據(jù)的剩余 量大于(ax(D-l) }的情況下,生成描述符數(shù)目D的描述符列表。反 之,當數(shù)據(jù)的剩余量等于或小于(ax (D-l) }時,生成小于D且與剩 余數(shù)據(jù)量相符的描述符數(shù)目的描述符列表。
然后,轉(zhuǎn)移指示單元30判斷是否檢測到其他通道CH2至CHN 中正在被使用的通道的組合的變化(S44)。例如,轉(zhuǎn)移指示單元30 基于來自較高級的應用程序的使用另一個通道的作業(yè)的開始或結(jié)束
23的通知來檢測組合的變化。
當判定還沒有檢測到組合的變化時(S44中判斷結(jié)果為否定),
轉(zhuǎn)移指示單元30判斷是否完成基于請求的DMA轉(zhuǎn)移(S45)。具體 而言,當描述符列表管理隊列指針設定為空并且還沒有對其生成描 述符的數(shù)據(jù)的剩余量是零時,轉(zhuǎn)移指示單元30判定完成了 DMA轉(zhuǎn) 移,否則,判定還沒有完成DMA轉(zhuǎn)移。
當判定完成了DMA轉(zhuǎn)移(S45中判斷結(jié)果為肯定)時,轉(zhuǎn)移指 示單元30結(jié)束處理。
反之,當判定還沒有完成DMA轉(zhuǎn)移(S45中判斷結(jié)果為否定), 轉(zhuǎn)移指示單元30將處理返回到步驟S43。在步驟S43的第二或隨后 的處理中,當剩余數(shù)據(jù)量不是零時生成描述符列表,而當剩余數(shù)據(jù) 量是零時不生成描述符列表。
當判定檢測到組合的變化時(S44中判斷結(jié)果為肯定),轉(zhuǎn)移 指示單元30廢棄存儲在描述符存儲區(qū)域中的用于通道CH1的所有描 述符列表,并且刪除記錄在用于通道CH1的描述符列表管理隊列中 的所有描述符列表指針(S46),然后使處理前進到步驟S42。這樣, 廢棄了與變化之前的組合相符的描述符數(shù)目的描述符列表,并且生
成與變化之后的組合相符的描述符數(shù)目的新的描述符列表。當沒有 存儲用于通道CH1的描述符列表時,不執(zhí)行步驟S46的處理。
在前述實例中,像通道CH1的前述情況那樣,轉(zhuǎn)移指示單元30 可以根據(jù)使用其他通道的狀態(tài)為除了通道CH1之外的通道生成描述 符列表。反之,轉(zhuǎn)移指示單元30也可以不考慮使用其他通道的狀態(tài) 為除了通道CH1之外的通道生成描述符列表。例如,假定最大描述 符數(shù)目D是常值,轉(zhuǎn)移指示單元30可以為除了通道CH1之外的通 道生成描述符列表。
圖9示出了設置為分別將正在被使用的通道的組合與描述符數(shù) 目相關(guān)聯(lián)的表格的實例。例如,基于圖9所示的表格執(zhí)行步驟S42 的處理。在圖9中,表格內(nèi)的數(shù)字表示描述符數(shù)目,表格內(nèi)的"-" 表示相應的通道沒有正在被使用。
在圖9所示的表格中,分別為通道CH1至CH3中正在被使用的通道的每一種組合設定提供給正在被使用的通道的描述符數(shù)目。
例如,組合#1表示所有通道CH1至CH3都正在被使用的情況。
在此情況下,提供給通道CH1、CH2和CH3的描述符數(shù)目分別是512、 4和1。這樣,當在各個通道CH1和CH2正在被使用的情況下生成 用于通道CH1的描述符列表時,將"512"設定為最大描述符數(shù)目D。 此外,當在各個通道CH1和CH3正在被使用的情況下生成用于通道 CH2的描述符列表時,將"4"設定為最大描述符數(shù)目D。
此外,例如,組合#2表示各個通道CH1和CH2正在被使用而 通道CH3沒有正在被使用的情況。在此情況下,提供給通道CH1和 CH2的描述符數(shù)目分別是512和5。這樣,當在通道CH2正在被使 用而通道CH3沒有正在被使用的情況下生成用于通道CH1的描述符 列表時,將"512"設定為最大描述符數(shù)目D。此外,當在通道CH1 正在被使用而通道CH3沒有正在被使用的情況下生成用于通道CH2 的描述符列表時,將"5"設定為最大描述符數(shù)目D。
圖10是示出DMAC80的第一操作實例的流程圖。在此操作實 例中,各個通道CH1和CH2以描述符列表為單位占用傳輸路徑。在 下文中,將參考圖10,說明DMAC80的第一操作的實例。
DMAC 80對通道CH1判斷是否存在還沒有處理的描述符列表
(551) 。具體而言,DMAC 80判斷是否為通道CH1設定了描述符 列表指針。
當判定存在還沒有處理的描述符列表時(S51中判斷結(jié)果為肯 定),DMAC80通過通道CH1基于此描述符列表來執(zhí)行DMA轉(zhuǎn)移
(552) 。然后,當完成了基于此描述符列表的DMA轉(zhuǎn)移時,DMAC 80向CPU50生成中斷(S53),并且使處理前進到步驟S54。
反之,當判定不存在還沒有處理的描述符列表時(S51中判斷 結(jié)果為否定),DMAC80使處理前進到步驟S54。
在步驟S54中,DMAC 80對通道CH2判斷是否存在還沒有處 理的描述符列表。具體而言,DMAC 80判斷是否為通道CH2設定了 描述符列表指針。
當判定存在還沒有處理的描述符列表時(S54中判斷結(jié)果為肯
25定),DMAC 80通過通道CH2基于此描述符列表執(zhí)行DMA轉(zhuǎn)移 (S55)。然后,當完成了基于此描述符列表的DMA轉(zhuǎn)移時,DMAC 80向CPU50生成中斷(S56),并且使處理前進到步驟S51。
反之,當在步驟S54中判定不存在還沒有處理的描述符列表時 (S54中判斷結(jié)果為否定),DMAC 80使處理前進到步驟S51。
圖11和圖12是示出DMAC 80的通道CH1和CH2的操作實例 的順序圖。在本實例中,DMAC 80如圖10所示進行操作。如圖6 所示,根據(jù)使用通道CH2的狀態(tài)生成用于通道CH1的描述符列表。 如圖7所示,不考慮使用通道CH1的狀態(tài)生成用于通道CH2的描述 符列表。對于通道CH1來說,與通道CH2沒有正在被使用的情況對 應的最大描述符數(shù)目DO是"7",而與通道CH2正在被使用的情況 對應的最大描述符數(shù)目Dl是"3"。對于通道CH2來說,最大描述 符數(shù)目D是常值"7"。
根據(jù)一種模式,將通道CH1用于低優(yōu)先級的作業(yè),而將通道 CH2用于高優(yōu)先級的作業(yè)。作為在打印裝置或復印機中利用DMA 轉(zhuǎn)移的作業(yè),存在打印作業(yè)、圖像讀取(掃描)作業(yè)、圖像轉(zhuǎn)換(渲 染)作業(yè)、系統(tǒng)管理作業(yè)等。例如,當以優(yōu)先級變高的順序排列時, 這些作業(yè)可以以打印、渲染和系統(tǒng)管理的順序或以掃描、渲染和系 統(tǒng)管理的順序排列。這樣,例如,可以將通道CH1用于低優(yōu)先級的 渲染,而將通道CH2用于高優(yōu)先級的掃描。
在圖11和圖12中,基于各個描述符的DMA轉(zhuǎn)移部分用矩形 表示。對應于各個矩形的描述符數(shù)目分別表示在矩形的上邊上。圓 括號內(nèi)的數(shù)字分別表示描述符列表數(shù)目。這些附圖的表達方式將應 用于后面類似的附圖中。
在圖11中,只有通道CH1基于一系列描述符列表進行操作以 執(zhí)行DMA轉(zhuǎn)移。在此情況下,各個描述符列表的描述符數(shù)目是"7"。 當完成了基于描述符列表的DMA轉(zhuǎn)移時,生成中斷。然后,在經(jīng)過
了諸如中斷處理時間等空閑時間時,執(zhí)行基于下一個描述符列表的 DMA轉(zhuǎn)移。當只有通道CH2進行操作時,執(zhí)行與只有通道CH1進 行操作的前述情況下的操作相似的操作。
26在圖12中,通道CH1和CH2并行操作,并且這些通道中的每 一個基于一系列相應的描述符列表執(zhí)行DMA轉(zhuǎn)移。在此情況下,通 道CH1的各個描述符列表的描述符數(shù)目是"3",而通道CH2的各 個描述符列表的描述符數(shù)目是"7"。在各個通道中,當開始基于一 系列描述符列表的DMA轉(zhuǎn)移時,傳輸路徑被占用直到完成DMA轉(zhuǎn) 移為止。因而,在通過這些通道中的一個通道執(zhí)行DMA轉(zhuǎn)移的同時, 不能通過其他通道執(zhí)行DMA轉(zhuǎn)移。從而,在其他通道出現(xiàn)了等待時 間。在圖12中,等待時間用陰影區(qū)域表示。當完成這一個通道的 DMA轉(zhuǎn)移并且生成中斷時,開始已經(jīng)等待的其他通道的DMA轉(zhuǎn)移。
圖13是示出DMAC 80的通道CH1與CH2的操作之間的比較 例的順序圖。本比較例在DMAC 80和轉(zhuǎn)移指示單元30的操作條件 上與圖12相同,但是在像通道CH2那樣以圖7中的方式生成用于通 道CH1的描述符列表這一點上與圖12不同。也就是說,在本比較例 中,基于作為常值的最大描述符數(shù)目"7"生成用于通道CH1和CH2 的描述符列表。
在圖13中,通道CH1和CH2并行操作,并且這些通道中的每 一個基于一系列相應的描述符列表執(zhí)行DMA轉(zhuǎn)移。在此情況下,各 個通道CH1和CH2的描述符列表的描述符數(shù)目是"7"。
在圖13中,通道CH1的等待時間幾乎與通道CH2的等待時間 相同。反之,在圖12中,通道CH2的等待時間比通道CH1的等待 時間短。也就是說,通道CH2的DMA轉(zhuǎn)移設定為具有比通道CH1 的DMA轉(zhuǎn)移更高的優(yōu)先級。此外,圖12中的通道CH2的等待時間 設定為比圖13中的通道CH2的等待時間短。
圖14是示出DMAC 80的通道CH1和CH2的操作實例的順序 圖。在本實例中,DMAC 80和轉(zhuǎn)移指示單元30的操作條件與圖12 中的相同。
在圖14中,首先,只有用于低優(yōu)先級作業(yè)的通道CH1進行操 作。具體而言,分別在生成部分D1-1至Dl-4中生成用于通道CH1 的描述符列表DL1-1至DLl-4。然后,分別在轉(zhuǎn)移部分Tl-l至Tl-3 執(zhí)行通道CH1的基于描述符列表DL1-1至DL1-4的DMA轉(zhuǎn)移。在這方面,各個描述符列表DL1-1至DLl-4的描述符數(shù)目是"7"。
在生成部分Dl-4之后,在時刻tl開始利用通道CH2的DMA 轉(zhuǎn)移的高優(yōu)先級作業(yè),并且在時刻t2將此高優(yōu)先級作業(yè)的開始通知 到轉(zhuǎn)移指示單元30。作為對該通知的響應,轉(zhuǎn)移指示單元30廢棄在 生成部分Dl-4生成且沒有轉(zhuǎn)移的描述符列表DLl-4,并且在生成部 分Dl-4'中生成描述符數(shù)目是"3"的新的描述符列表DLl-4'。在下 文中,分別在生成部分Dl-5'至Dl-15'中生成各自的描述符數(shù)目是 "3"的描述符列表DL1-5'至DL1-15'。然后,分別在轉(zhuǎn)移部分Tl-4 至T1-14中執(zhí)行通道CH1的基于描述符列表DL1-4'至DL1-14'的 DMA轉(zhuǎn)移。
反之,在時刻t2之后,通道CH2的DMA轉(zhuǎn)移與通道CH1的 DMA轉(zhuǎn)移并行執(zhí)行。具體而言,分別在生成部分D2-l至D2-END (未示出)中生成用于通道CH2的描述符列表DL2-1至DL2-END。 然后,分別在轉(zhuǎn)移部分T2-l至T2-END執(zhí)行通道CH2的基于描述符 列表DL2-1至DL2-END的DMA轉(zhuǎn)移。在這方面,各個描述符列表 DL2-1至DL2-END的描述符數(shù)目是"7"。
在并行執(zhí)行通道CH2的DMA轉(zhuǎn)移和通道CH1的DMA轉(zhuǎn)移的 期間,在各個通道CH1和CH2中出現(xiàn)了如用陰影區(qū)域所示的等待時 間。在此情況下,通道CH2的等待時間比通道CH1的等待時間短。
在轉(zhuǎn)移部分T2-END中,在完成高優(yōu)先級作業(yè)之前的時刻t3將 完成高優(yōu)先級作業(yè)通知到轉(zhuǎn)移指示單元30。
作為對該通知的響應,轉(zhuǎn)移指示單元30廢棄在生成部分D1-15' 中生成且沒有轉(zhuǎn)移的描述符列表DL1-15',并且在生成部分D1-15 中生成描述符數(shù)目是"7"的新的描述符列表DL1-15。在下文中, 分別在生成部分D1-16、 Dl-17…中生成各自的描述符數(shù)目是"7"的 描述符列表DL1-16、 DL1-17…。然后,分別在轉(zhuǎn)移部分Tl-15、 Tl-16…中執(zhí)行通道CH1的基于描述符列表DL1-15、 DL1-16…的 DMA轉(zhuǎn)移。
在圖11、12和14所示的實例中,當操作單項作業(yè)時,控制DMA 轉(zhuǎn)移,以便以最高效率的描述符數(shù)目執(zhí)行DMA轉(zhuǎn)移。反之,當執(zhí)行高優(yōu)先級作業(yè)時,使得低優(yōu)先級作業(yè)的DAM轉(zhuǎn)移的描述符數(shù)目小,
以便縮短高優(yōu)先級作業(yè)的DMA轉(zhuǎn)移的等待時間。在這方面,以這樣 的方式設定在執(zhí)行高優(yōu)先級作業(yè)的情況下低優(yōu)先級作業(yè)的DMA轉(zhuǎn)
移的描述符數(shù)目(即待調(diào)整的描述符數(shù)目),目卩高優(yōu)先級作業(yè)的
DAM轉(zhuǎn)移的等待時間在高優(yōu)先級作業(yè)的DMA轉(zhuǎn)移的容許等待時間 之內(nèi)。具體而言,以這樣的方式預先確定通道CH2的最大描述符數(shù) 目Dl,即高優(yōu)先級作業(yè)的DMA轉(zhuǎn)移的等待時間等于或小于容許 等待時間。
此外,在圖14的實例中,在開始使用通道CH2的作業(yè)時,通 知轉(zhuǎn)移指示單元30作業(yè)已經(jīng)開始。然后,在開始通道CH1的DMA 轉(zhuǎn)移之前,調(diào)整通道CH1的描述符列表。也就是說,對于通道CH1 而言,廢棄已經(jīng)生成的描述符列表,并且生成新的描述符列表。這 樣,可以減少通道CH2—側(cè)的等待時間。
圖15是示出DMAC80的第二操作實例的流程圖。在此操作實 例中,DMAC80以被劃分成多突發(fā)脈沖轉(zhuǎn)移的方式執(zhí)行基于單個描 述符列表的DMA轉(zhuǎn)移。例如,單突發(fā)脈沖轉(zhuǎn)移的轉(zhuǎn)移量(即突發(fā)脈 沖長度)是恒定的。此外,通過輪轉(zhuǎn)處理來控制通道CH1和CH2的 傳輸路徑的使用,并且通道CH1和CH2以突發(fā)脈沖轉(zhuǎn)移為單位占用 傳輸路徑。在下文中,將參考圖15,說明DMAC 80的第二操作的 實例。
DMAC 80對通道CH1判斷是否存在正在處理或還沒有處理的 描述符列表(S61)。
當判定存在正在處理或還沒有處理的描述符列表時(S61中判 斷結(jié)果為肯定),DMAC 80通過通道CH1執(zhí)行單突發(fā)脈沖轉(zhuǎn)移 (S62)。
然后,DMAC 80判斷是否完成通道CH1的基于描述符列表的 DMA轉(zhuǎn)移(S63)。
當判定完成DMA轉(zhuǎn)移時(S63中判斷結(jié)果為肯定),DMAC 80 向CPU50生成中斷(S64),并且使處理前進到步驟S65。
反之,當判定不存在正在處理或還沒有處理的描述符列表(S61中判斷結(jié)果為否定)或者在步驟S63中判定還沒有完成DMA轉(zhuǎn)移 (S63中判斷結(jié)果為否定)時,DMAC80使處理前進到步驟S65。 在步驟S65中,DMAC 80對通道CH2判斷是否存在正在處理 或還沒有處理的描述符列表。
當判定存在正在處理或還沒有處理的描述符列表時(S65中判 斷結(jié)果為肯定),DMAC 80通過通道CH2執(zhí)行單突發(fā)脈沖轉(zhuǎn)移 (S66)。
然后,DMAC 80判斷是否完成通道CH2的基于描述符列表的 DMA轉(zhuǎn)移(S67)。
當判定完成DMA轉(zhuǎn)移時(S67中判斷結(jié)果為肯定(YES)), DMAC 80向CPU 50生成中斷(S68),并且使處理前進到步驟S61。
反之,當判定不存在正在處理或還沒有處理的描述符列表(S65 中判斷結(jié)果為否定)或者在步驟S67中判定還沒有完成DMA轉(zhuǎn)移 (S63中判斷結(jié)果為否定)時,DMAC 80使處理前進到步驟S61。
圖16和圖17是示出DMAC 80的通道CH1和CH2的操作實例 的順序圖。在本實例中,DMAC80如圖15中所示進行操作。如圖6 所示,根據(jù)使用通道CH2的狀態(tài)生成用于通道CH1的描述符列表。 如圖7所示,不考慮使用通道CH1的狀態(tài)生成用于通道CH2的描述 符列表。對于通道CH1來說,與通道CH2沒有正在被使用的情況對 應的最大描述符數(shù)目DO是"4",而與通道CH2正在被使用的情況 對應的最大描述符數(shù)目Dl是"1"。對于通道CH2來說,最大描述 符數(shù)目D是常值"4"。
根據(jù)一種模式,將通道CH1用于低優(yōu)先級的作業(yè),而將通道 CH2用于高優(yōu)先級的作業(yè)。例如,在復印機的情況下,將通道CH1 用于低優(yōu)先級的渲染,而將通道CH2用于高優(yōu)先級的掃描。
在圖16和圖17中,基于相應的描述符表示DMA轉(zhuǎn)移部分的 矩形中帶有豎線的陰影區(qū)域表示執(zhí)行多突發(fā)脈沖轉(zhuǎn)移。帶有高密度 豎線的陰影區(qū)域表示由單個通道占用傳輸路徑因此以高頻率執(zhí)行突 發(fā)脈沖轉(zhuǎn)移。反之,帶有低密度豎線的陰影區(qū)域表示由兩個通道交 替地占用傳輸路徑因此以低頻率執(zhí)行突發(fā)脈沖轉(zhuǎn)移。在陰影區(qū)域的帶有低密度豎線的部分中,交替地重復突發(fā)脈沖轉(zhuǎn)移的執(zhí)行部分和 等待時間。這些附圖的表達方式將應用于后面類似的附圖。
在圖16中,只有通道CH1基于一系列描述符列表進行操作以
執(zhí)行DMA轉(zhuǎn)移。在此情況下,各個描述符列表的描述符數(shù)目是"4"。 當只有通道CH2進行操作時,執(zhí)行與只有通道CH1進行操作的前述 情況下的操作相似的操作。
在圖17中,通道CH1和CH2并行操作,并且這些通道中的每 一個基于一系列相應的描述符列表執(zhí)行DMA轉(zhuǎn)移。在此情況下,通 道CH1的各個描述符列表的描述符數(shù)目是"1",而通道CH2的各 個描述符列表的描述符數(shù)目是"4"。如圖17所示,在執(zhí)行通道CH2 的DMA轉(zhuǎn)移的部分中以低速執(zhí)行通道CH2的DMA轉(zhuǎn)移。這是由 于傳輸路徑的使用權(quán)限交替地提供給通道CH1和CH2。反之,在不 執(zhí)行通道CH1的DMA轉(zhuǎn)移的部分中(例如,通道CH1的空閑時間), 通道CH2占用傳輸路徑,因此以高速執(zhí)行通道CH2的DMA轉(zhuǎn)移。
圖18是示出DMAC 80的通道CH1與CH2的操作之間的比較 例的順序圖。本比較例在DMAC 80和轉(zhuǎn)移指示單元30的操作條件 上與圖17相同,但是在像通道CH2那樣以圖7的方式生成用于通道 CH1的描述符列表這一點上與圖17不同。也就是說,在本比較例中, 基于作為常值的最大描述符數(shù)目"4"生成用于通道CH1和CH2的 描述符列表。
在圖18中,通道CH1和CH2并行操作,并且這些通道中的每 一個基于一系列相應的描述符列表執(zhí)行DMA轉(zhuǎn)移。在此情況下,各 個通道CH1和CH2的描述符列表的描述符數(shù)目是"4"。
在圖18中,對各個通道CH1和CH2以幾乎相同的頻率生成 DMA轉(zhuǎn)移之間的空閑時間,因此在通道CH1與CH2之間每單位時 間的轉(zhuǎn)移量幾乎相同。反之,在圖17中,以比通道CH2高的頻率生 成通道CH1的空閑時間。這樣,與通道CH1 —側(cè)相比,在通道CH2 一側(cè)更頻繁地以高速執(zhí)行DMA轉(zhuǎn)移,因此與通道CH1 —側(cè)相比, 在通道CH2—側(cè)每單位時間的轉(zhuǎn)移量較大。也就是說,通道CH2 — 側(cè)的DMA轉(zhuǎn)移設定為具有比通道CH1 —側(cè)更高的優(yōu)先級。
31圖19是示出DMAC 80的通道CH1和CH2的操作實例的順序 圖。在本實例中,DMAC 80和轉(zhuǎn)移指示單元30的操作條件與圖17 中相同。
在圖19中,首先,只有用于低優(yōu)先級作業(yè)的通道CH1進行操 作。具體而言,分別在生成部分D1-1至Dl-4中生成用于通道CH1 的描述符列表DL1-1至DLl-4。然后,分別在轉(zhuǎn)移部分Tl-l至Tl-3 執(zhí)行通道CH1的基于描述符列表DL1-1至DL1-3的DMA轉(zhuǎn)移。在 這方面,各個描述符列表DLl-l至DLl-4的描述符數(shù)目是"4"。
在時刻tl開始利用通道CH2的DMA轉(zhuǎn)移的高優(yōu)先級作業(yè),并 且在時刻t2將此高優(yōu)先級作業(yè)的開始通知到轉(zhuǎn)移指示單元30。作為 對該通知的響應,轉(zhuǎn)移指示單元30廢棄在生成部分Dl-4中生成且 還沒有轉(zhuǎn)移的描述符列表DLl-4,并且在生成部分Dl-4'中生成描述 符數(shù)目是"l"的新的描述符列表DLl-4'。在下文中,分別在生成部 分Dl-5'至Dl-15'中生成各自的描述符數(shù)目是"1"的描述符列表 DLl-5,至DL1-15'。然后,分別在轉(zhuǎn)移部分Tl-4至T1-14中執(zhí)行通 道CH1的基于描述符列表DLl-4'至DL1-14'的DMA轉(zhuǎn)移。
反之,在時刻t2之后,通道CH2的DMA轉(zhuǎn)移與通道CH1的 DMA轉(zhuǎn)移并行執(zhí)行。具體而言,分別在生成部分D2-l至D2-END (未示出)中生成用于通道CH2的描述符列表DL2-1至DL2-END。 然后,分別在轉(zhuǎn)移部分T2-l至T2-END中執(zhí)行通道CH2的基于描述 符列表DL2-1至DL2-END的DMA轉(zhuǎn)移。在這方面,各個描述符列 表DL2-1至DL2-END的描述符數(shù)目是"4"。
在轉(zhuǎn)移部分T2-END之后,在完成高優(yōu)先級作業(yè)之前的時刻t3 將高優(yōu)先級作業(yè)的完成通知到轉(zhuǎn)移指示單元30。
作為對該通知的響應,轉(zhuǎn)移指示單元30廢棄在生成部分D1-15' 中生成且還沒有轉(zhuǎn)移的描述符列表DL1-15',并且在生成部分D1-15 中生成描述符數(shù)目是"4"的新的描述符列表DL1-15。在下文中, 分別在生成部分D1-16、 Dl-17…中生成各自的描述符數(shù)目是"4"的 描述符列表DL1-16、 DL1-17…。然后,分別在轉(zhuǎn)移部分Tl-15、 Tl-16…中執(zhí)行通道CH1的基于描述符列表DL1-15、 DL1-16…的DMA轉(zhuǎn)移。
圖20是示出DMAC 80的第三操作實例的流程圖。在本操作實 例中,DMAC 80以被劃分成多突發(fā)脈沖轉(zhuǎn)移的方式執(zhí)行基于單個描 述符列表的DMA轉(zhuǎn)移。通過固定優(yōu)先級順序的方法控制通道CHI 和CH2對傳輸路徑的使用,以便將通道CH1設定為具有比通道CH2 更高的優(yōu)先級。作為高優(yōu)先級通道的通道CH1以描述符列表為單位 占用傳輸路徑,作為低優(yōu)先級通道的通道CH2以突發(fā)脈沖轉(zhuǎn)移為單 位占用傳輸路徑。在下文中,將參考圖20,說明DMAC 80的第三 操作的實例。
DMAC 80對通道CH1判斷是否存在還沒有處理的描述符列表 (S71)。
當判定存在還沒有處理的描述符列表時(S71中判斷結(jié)果為肯 定),DMAC80通過通道CH1執(zhí)行單突發(fā)脈沖轉(zhuǎn)移(S72)。
然后,DMAC 80判斷是否完成通道CH1的基于描述符列表的 DMA轉(zhuǎn)移(S73)。
當判定還沒有完成DMA轉(zhuǎn)移時(S73中判斷結(jié)果為否定), DMAC80將處理返回到步驟S72,并且重復地執(zhí)行突發(fā)脈沖轉(zhuǎn)移。
反之,當判定完成DMA轉(zhuǎn)移時(S73中判斷結(jié)果為肯定), DMAC 80向CPU 50生成中斷(S74),并且使處理前進到步驟S75。
當判定不存在還沒有處理的描述符列表時(S71中判斷結(jié)果為 否定),DMAC80使處理前進到步驟S75。
在步驟S75中,DMAC 80對通道CH2判斷是否存在正在處理 或還沒有處理的描述符列表。
當判定存在正在處理或還沒有處理的描述符列表時(S75中判 斷結(jié)果為肯定),DMAC 80通過通道CH2執(zhí)行單突發(fā)脈沖轉(zhuǎn)移 (S76)。
然后,DMAC 80判斷是否完成通道CH2的基于描述符列表的 DMA轉(zhuǎn)移(S77)。
當判定完成DMA轉(zhuǎn)移時(S77中判斷結(jié)果為肯定),DMAC 80 向CPU50生成中斷(S78),并且使處理前進到步驟S71。反之,當判定不存在正在處理或還沒有處理的描述符列表(S75
中判斷結(jié)果為否定)或者在步驟S77中判定還沒有完成DMA轉(zhuǎn)移 (S77中判斷結(jié)果為否定)時,DMAC 80使處理前進到步驟S71。
圖21和圖22是示出DMAC 80的通道CH1和CH2的操作實例 的順序圖。在本實例中,DMAC 80如圖20所示進行操作。如圖6 所示,根據(jù)使用通道CH2的狀態(tài)生成用于通道CH1的描述符列表。 如圖7所示,不考慮使用通道CH1的狀態(tài)生成用于通道CH2的描述 符列表。對于通道CH1來說,與通道CH2沒有正在被使用的情況對 應的最大描述符數(shù)目DO是"4",而與通道CH2正在被使用的情況 對應的最大描述符數(shù)目Dl是"2"。對于通道CH2來說,最大描述 符數(shù)目D是常值"4"。
根據(jù)一種模式,將高優(yōu)先級的通道CH1用于高優(yōu)先級的作業(yè), 并且將低優(yōu)先級的通道CH2用于低優(yōu)先級的作業(yè)。例如,將通道CH1 用于高優(yōu)先級的掃描,并且將通道CH2用于低優(yōu)先級的渲染。
在圖21中,只有通道CH1基于一系列描述符列表進行操作以 執(zhí)行DMA轉(zhuǎn)移。在此情況下,各個描述符列表的描述符數(shù)目是"4"。 當只有通道CH2進行操作時,執(zhí)行與只有通道CH1進行操作的前述 情況下的操作相似的操作。
在圖22中,通道CH1和CH2并行操作,并且這些通道中的每 一個基于一系列相應的描述符列表執(zhí)行DMA轉(zhuǎn)移。在此情況下,通 道CH1的各個描述符列表的描述符數(shù)目是"2",而通道CH2的各 個描述符列表的描述符數(shù)目是"4"。
圖23是示出DMAC 80的通道CH1與CH2的操作之間的比較 例的順序圖。本比較例在DMAC 80和轉(zhuǎn)移指示單元30的操作條件 上與圖21相同,但是在像通道CH2那樣以圖7中的方式生成用于通 道CH1的描述符列表這一點上與圖21不同。也就是說,在本比較例 中,基于作為常值的最大描述符數(shù)目"4"生成用于通道CH1和CH2 的描述符列表。
在圖23中,通道CH1和CH2并行操作,并且這些通道中的每 一個基于一系列相應的描述符列表執(zhí)行DMA轉(zhuǎn)移。在此情況下,各
34個通道CH1和CH2的描述符列表的描述符數(shù)目是"4"。
在圖22和圖23中,在通道CH1 —側(cè)的空閑時間中執(zhí)行通道 CH2的DMA轉(zhuǎn)移。在圖23中,在通道CH1 —側(cè)以較低的頻率生成 空閑時間。這樣,以低頻率執(zhí)行通道CH2的DMA轉(zhuǎn)移,因此極大 地減少了通道CH2的每單位時間的轉(zhuǎn)移量。反之,在圖22中,以比 圖23中的情況更高的頻率生成通道CH1 —側(cè)的空閑時間,因此更加 頻繁地執(zhí)行通道CH2的DMA轉(zhuǎn)移。這樣,抑制了通道CH2的每單 位時間的轉(zhuǎn)移量的減少程度。例如,在通道CH1—側(cè)的描述符的數(shù) 目設定為保證通道CH2—側(cè)所需的帶寬。
圖24是示出包括根據(jù)示例性實施例的DMA控制系統(tǒng)的圖像處 理系統(tǒng)100的構(gòu)造實例的簡圖。
圖像處理系統(tǒng)100包括具有母板112和控制板114的信息處理 單元113、圖像輸入單元116、圖像輸出單元118、控制器120和LCD (液晶顯示器)122。
母板112包括CPU 124和用作主存儲器的存儲器128。CPU 124 經(jīng)由集線器126通過專用總線連接到存儲器128。存儲器128包括用 于存儲由圖像輸出單元118輸出(打印)的圖像數(shù)據(jù)和由圖像輸入 單元116讀取的圖像數(shù)據(jù)的區(qū)域。圖像數(shù)據(jù)在存儲器和設置在后述 控制板114中的存儲器114之間進行DMA轉(zhuǎn)移,而不會干擾CPU 124。
集線器126與設置在母板112外部的LCD 122連接。LCD 122 是在其顯示表面上設有觸摸面板的液晶顯示裝置,并且用作界面。
用于連接專用總線的集線器126與用于連接通用總線的集線器 130連接。集線器130經(jīng)由通用總線連接到HDD (硬盤驅(qū)動器)132 和I/0端口 134。 HDD 132存儲由CPU 124執(zhí)行的程序和各種數(shù)據(jù)。 I/O端口 134用作輸入/輸出接口并且與圖像處理系統(tǒng)100的外圍裝 置等連接。
用于記錄由CPU 124執(zhí)行的程序和各種數(shù)據(jù)的記錄介質(zhì)不限于 HDD,而可以是未示出的CD-ROM、 DVD盤、磁光盤、IC卡或ROM 等,也可以是諸如遠程通信線路上的轉(zhuǎn)移波等傳輸介質(zhì)。
35母板112設置有通用總線接口 136,通用總線接口 136與設置 在控制器板114上的通用總線接口 138連接。
控制板114包括總線橋接器140、存儲器144、邏輯電路146、 CPU 148和圖像處理電路150。總線橋接器140、存儲器144、CPU 148 和圖像處理電路150連接到邏輯電路146,從而經(jīng)由邏輯電路146在 其間傳輸/接收數(shù)據(jù)。盡管邏輯電路146是編程為數(shù)據(jù)轉(zhuǎn)移電路的電 路,然而該邏輯電路僅僅接收/傳輸數(shù)據(jù)而不控制數(shù)據(jù)轉(zhuǎn)移。圖像處 理電路150是使輸入的圖像數(shù)據(jù)經(jīng)歷預定圖像處理的電路。
總線橋接器140連接到接口 138并且還經(jīng)由通用總線連接到邏 輯電路146??偩€橋接器140具有通用總線之間的橋接功能和總線主 控功能??偩€主控功能是在存儲器144與圖像處理電路150之間傳 輸/接收數(shù)據(jù)而不干擾控制板114上的CPU 148的功能。具體而言, 在控制板114上,在圖像輸出單元118輸出圖像時,圖像數(shù)據(jù)經(jīng)由 邏輯電路146從存儲器144 DMA轉(zhuǎn)移到圖像處理電路150。反之, 當圖像輸入單元116讀取圖像時,通過讀取圖像這樣獲得的圖像數(shù) 據(jù)經(jīng)由邏輯電路146從圖像處理電路150DMA轉(zhuǎn)移到存儲器144。
另一方面,在母板112上的存儲器128與控制板114上的存儲 器144之間轉(zhuǎn)移數(shù)據(jù)而不干擾母板112上的CPU 124的DMA功能 由設置在總線橋接器140中的DMAC 142來實現(xiàn),并獨立于總線橋 接器140的總線主控功能。DMAC 142是具有能夠?qū)τ陔x散地址連 續(xù)地轉(zhuǎn)移數(shù)據(jù)的分散-聚集功能的電路。
設置在控制板114中的連接器152與設置在控制器120中的連 接器156連接,控制器120具有控制圖像輸入單元116和圖像輸出 單元118的控制功能。此外,控制板114的連接器152連接到前述 圖像處理電路150。經(jīng)由連接器152和連接器156傳輸/接收在圖像 處理電路150中經(jīng)歷圖像處理的圖像數(shù)據(jù)。
此外,控制板114設置有與連接器152分離地設置的另一個連 接器154。連接器154直接連接到邏輯電路146并且還與設置在控制 器120中的連接器158連接。經(jīng)由這些連接器154和158執(zhí)行控制 器120與控制板114之間的控制數(shù)據(jù)和消息的傳輸/接收。在前述構(gòu)造中,DMAC 142具有多個通道并且用作多個DMA 控制單元10和控制單元20。此外,CPU 124用作轉(zhuǎn)移指示單元30 和轉(zhuǎn)移請求單元40。DMAC 142的各個通道分配給圖像處理系統(tǒng)100 的各種作業(yè)。也就是說,各種作業(yè)中的每一種利用對應于作業(yè)的通 道執(zhí)行DMA轉(zhuǎn)移。根據(jù)DMA轉(zhuǎn)移,信息從存儲器128轉(zhuǎn)移到存儲 器144或從存儲器144轉(zhuǎn)移到存儲器128。
本發(fā)明不限于前述示例性實施例,并且在不脫離本發(fā)明的要旨 的范圍內(nèi)可以以各種方式變化。
出于解釋和說明的目的提供了本發(fā)明的示例性實施例的前述說 明。其本意并不是窮舉或?qū)⒈景l(fā)明限制為所公開的確切形式。顯然, 對于本技術(shù)領(lǐng)域的技術(shù)人員可以進行許多修改和變型。選擇和說明 該示例性實施例是為了更好地解釋本發(fā)明的原理及其實際應用,因 此使得本技術(shù)領(lǐng)域的其他技術(shù)人員能夠理解本發(fā)明所適用的各種實 施例并預見到適合于特定應用的各種修改。目的在于通過所附權(quán)利 要求及其等同內(nèi)容限定本發(fā)明的范圍。
權(quán)利要求
1.一種DMA控制系統(tǒng),包括多個DMA控制單元,其以這樣的方式被控制,即在所述多個DMA控制單元中的一個使用傳輸路徑的同時,防止除了所述多個DMA控制單元中的所述一個之外的其他DMA控制單元使用所述傳輸路徑;以及轉(zhuǎn)移指示單元,其為各個所述DMA控制單元限定DMA轉(zhuǎn)移的轉(zhuǎn)移量,并且將轉(zhuǎn)移指令提供給各個所述DMA控制單元,其中,當所述轉(zhuǎn)移指示單元將轉(zhuǎn)移指令提供給所述多個DMA控制單元的第一DMA控制單元時,所述轉(zhuǎn)移指示單元根據(jù)使用所述多個DMA控制單元的第二DMA控制單元的狀態(tài)為所述第一DMA控制單元限定轉(zhuǎn)移量,并將所述轉(zhuǎn)移指令提供給所述第一DMA控制單元。
2. 根據(jù)權(quán)利要求1所述的DMA控制系統(tǒng),其中, 當所述轉(zhuǎn)移指示單元檢測到開始使用所述第二 DMA控制單元時,所述轉(zhuǎn)移指示單元(i)廢棄生成的待提供給所述第一 DMA控 制單元的轉(zhuǎn)移指令,并且(ii)根據(jù)所述第二DMA控制單元正在被 使用的情況為所述第一 DMA控制單元限定新轉(zhuǎn)移量,并將新轉(zhuǎn)移指 令提供給所述第一 DMA控制單元。
3. 根據(jù)權(quán)利要求1或2所述的DMA控制系統(tǒng),其中, 當所述轉(zhuǎn)移指示單元檢測到結(jié)束使用所述第二 DMA控制單元時,所述轉(zhuǎn)移指示單元(i)廢棄生成的待提供給所述第一 DMA控 制單元的轉(zhuǎn)移指令,并且(ii)根據(jù)所述第二DMA控制單元沒有正 在被使用的情況為所述第一 DMA控制單元限定新轉(zhuǎn)移量,并將新轉(zhuǎn) 移指令提供給所述第一 DMA控制單元。
4. 根據(jù)權(quán)利要求1所述的DMA控制系統(tǒng),其中,當所述轉(zhuǎn)移指示單元對所述第一 DMA控制單元生成轉(zhuǎn)移指令 時,所述轉(zhuǎn)移指示單元根據(jù)使用除了所述第一DMA控制單元之外的 DMA控制單元的狀態(tài)的組合為所述第一 DMA控制單元限定轉(zhuǎn)移 量,并將轉(zhuǎn)移指令提供給所述第一DMA控制單元。
5. 根據(jù)權(quán)利要求4所述的DMA控制系統(tǒng),其中, 當所述轉(zhuǎn)移指示單元檢測到所述組合的變化時,所述轉(zhuǎn)移指示單元(i)廢棄生成的待提供給所述第一DMA控制單元的轉(zhuǎn)移指令, 并且(ii)根據(jù)所述變化之后的組合為所述第一DMA控制單元限定 新轉(zhuǎn)移量,并將新轉(zhuǎn)移指令提供給所述第一 DMA控制單元。
6. —種打印裝置,包括多個DMA控制單元,其以這樣的方式被控制,SP:當所述多 個DMA控制單元中的一個使用傳輸路徑時,防止除了所述多個 DMA控制單元中的所述一個之外的其他DMA控制單元使用所述傳 輸路徑;以及轉(zhuǎn)移指示單元,其為各個所述DMA控制單元限定DMA轉(zhuǎn)移的 轉(zhuǎn)移量,并且將轉(zhuǎn)移指令提供給各個所述DMA控制單元,其中,當所述轉(zhuǎn)移指示單元將轉(zhuǎn)移指令提供給所述多個DMA 控制單元的第一 DMA控制單元時,所述轉(zhuǎn)移指示單元根據(jù)使用所述 多個DMA控制單元的第二 DMA控制單元的狀態(tài)為所述第一 DMA 控制單元限定轉(zhuǎn)移量,并將所述轉(zhuǎn)移指令提供給所述第一 DMA控制 單元,并且提供給所述第一 DMA控制單元的所述轉(zhuǎn)移指令是為了進行圖 像讀取、打印、圖像信息的轉(zhuǎn)換而執(zhí)行所述圖像信息的DMA轉(zhuǎn)移的 指令。
7. —種轉(zhuǎn)移指示方法,包括-控制步驟,以這樣的方式控制多個DMA控制單元,S卩在所 述多個DMA控制單元中的一個使用傳輸路徑的同時,防止除了所述多個DMA控制單元的所述一個之外的其他DMA控制單元使用所述 傳輸路徑;限定步驟,為各個所述DMA控制單元限定DMA轉(zhuǎn)移的轉(zhuǎn)移量;以及提供步驟,將轉(zhuǎn)移指令提供給各個所述DMA控制單元, 其中,當將轉(zhuǎn)移指令提供給所述多個DMA控制單元的第一 DMA控制單元時,所述限定步驟和所述提供步驟包括根據(jù)使用所述 多個DMA控制單元的第二 DMA控制單元的狀態(tài)為所述第一 DMA 控制單元限定轉(zhuǎn)移量以及將所述轉(zhuǎn)移指令提供給所述第一 DMA控 制單元。
全文摘要
本發(fā)明公開了一種DMA控制系統(tǒng)、打印裝置以及轉(zhuǎn)移指示方法。該DMA控制系統(tǒng)包括多個DMA控制單元,其以這樣的方式被控制在所述多個DMA控制單元中的一個使用傳輸路徑的同時,防止除了所述多個DMA控制單元中的所述一個之外的其他DMA控制單元使用所述傳輸路徑;以及轉(zhuǎn)移指示單元,其為各個DMA控制單元限定DMA轉(zhuǎn)移的轉(zhuǎn)移量,并將轉(zhuǎn)移指令提供給各個所述DMA控制單元。當所述轉(zhuǎn)移指示單元將轉(zhuǎn)移指令提供給所述多個DMA控制單元的第一DMA控制單元時,所述轉(zhuǎn)移指示單元根據(jù)使用所述多個DMA控制單元的第二DMA控制單元的狀態(tài)為所述第一DMA控制單元限定轉(zhuǎn)移量,并將所述轉(zhuǎn)移指令提供給所述第一DMA控制單元。
文檔編號G06F13/28GK101582054SQ200910006980
公開日2009年11月18日 申請日期2009年2月18日 優(yōu)先權(quán)日2008年5月15日
發(fā)明者川原巧 申請人:富士施樂株式會社
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1
桐城市| 宝鸡市| 睢宁县| 陆川县| 名山县| 裕民县| 长寿区| 汉阴县| 赤峰市| 桃源县| 阜新| 瑞安市| 惠州市| 涿州市| 凤庆县| 垫江县| 仁化县| 潜江市| 枝江市| 商水县| 修水县| 突泉县| 体育| 子长县| 师宗县| 大悟县| 尚志市| 万全县| 合作市| 柳江县| 南昌市| 库伦旗| 舟山市| 慈溪市| 陇西县| 深圳市| 鞍山市| 乌审旗| 福建省| 沙湾县| 永和县|