Dma传送设备、数据传送控制方法和数据传送控制程序的制作方法

文档序号:6614993阅读:181来源:国知局
专利名称:Dma传送设备、数据传送控制方法和数据传送控制程序的制作方法
技术领域
本发明涉及一种直4妻存储器存取(direct memory access, DMA )传送设备、使用该DMA传送设备的数据传送控制方法以 及使用该DMA传送设备的数据传送控制程序,所述DMA传送设 备配置成将存储在存储器中的用于数据传送的至少一个传送设 置值依次读取到寄存器中,并且基于所读取的传送设置值,来 进行DMA传送处理。
背景技术
在将基于特定数据格式所描述的输入数据转换成另 一数据 格式的处理期间,传统方法使用诸如DMA控制器的数据传送硬件。
当基于所接收到的已编码或已加密的数据而获得的解码数 据用于诸如打印处理或显示处理的特定处理时,^^用这样的数 据传送硬件。
特别地,传统打印设备打印出基于所接收到的已编码和已 压缩的图像数据而获得的解码后的图像数据。在使用对包括行 序光栅数据的打印数据进行处理的喷墨式打印机(以下简单称 为"打印机")的情况下,主计算机依次发送已针对各行进行编 码和压缩的数据。
如在日本特开07-21117中所讨论的,传统数据传送硬件, 特别是传统DMA传送硬件,将适当存储在存储器中的用于多个 传送操作的传送设置值(以下称为"描述符,,)依次载入寄存器 上,以进行数据传送。这样的DMA传送模式被称为"阵列链式 传送模式(array chain transfer mode ),,或"连接P牟歹'J链式传送
模式(link array chain transfer mode ),,。
在很多情况下,来自主计算机的打印数据在解码处理后可 能逐行具有不同的数据长度。特别是,在诸如紧缩位编码 (PackBits Encoding )或种子行编码(Seed Row Encoding )的 行程长度编码(Run Length Encoding, RLE)的情况下,解码 后的数据长度只可能在进行解码处理之后才能获知。
在传统处理中,统一各行长度的一种方法是将纸张(要读 取的文件的纸张)的宽度设置作为解码数据緩沖长度。然而, 在这点上,在图像处理期间,不关于没有图像的纸张的部分对 存储器进行存取更有用。并且,将纸张宽度的数据长度固定设 置作为解码数据緩冲长度增加了存储器的存取量,这在处理效 率上没有益处。
在这点上,另 一种传统方法预测必要的最小解码数据緩冲 长度,并针对一个带来设置描述符,以进行解码。如果所预测 的必要的最小解码数据緩冲长度与实际解码数据长度不同,特 别是,如果实际解码数据长度大于该解码数据緩沖长度,则以 等于该解码数据緩冲长度的长度对解码数据进行分割或截断。 在这种情况下,CPU重新生成具有延长的解码数据緩沖长度的 合适的描述符,然后,解码器再次进行解码。
在这点上,日本特开06-103181讨i仑了这样的方法当诸如 传送失败的失败发生时,发送单元将异常中止通知信号通知给 DMA控制器。在该方法中,DMA控制器在接收到该通知之后自 动继续数据传送。
同时,对于DMA控制器或解码器来说,减少电路中门的数 量以及其制造成本,存在一些限制。例如,可设置为传送字节 长度的最小值受限。
在必须处理小于最小值的数据的情况下,CPU执行必要的 处理。例如,当CPU必须对种子行编码的第N行数据进行解码 时,仅在第(N-1 )行数据已经被完全解码之后,CPU才可以 解码第N行数据。
在这种情况下,CPU执行包括用于直到第(N-l)行数据 的解码处理的设置的描述符一次,对第N行数据进行解码,并 且向第(N+l)行以及后续的数据提供新的描述符。
然而,在如上所述再次进行解码处理的情况下,虽然可以 将硬件的设置存储在存储器中作为描述符,但是必须生成用于 要利用CPU解码的数据的设置,并且管理存储器上的所生成的 设置。即,在这种情况下,必须生成单独的设置数据,并且管 理所生成的与要利用DMA控制器或解码器进行的解码处理有 关以及与要利用C P U进行的解码处理有关的设置数据。
而且,如果利用CPU解码的数据可以利用硬件来处理,则 必须生成新的描述符。如上所述,在传统方法中,由于关于在 DMA控制器或解码器上可以设置为传送字节长度的最小值的 限制,CPU必须进行复杂的处理。

发明内容
本发明涉及这样的控制程序即使当DMA传送设备(DMA 控制器)不能进行DMA传送时,也使得能够马上预先设置描述 符(传送设置值)。而且,本发明涉及用于减小重处理带来的负 荷的方法,该方法在软件处理(利用CPU的数据传送)和硬件 处理(DMA传送)中使用共享的描述符(存储在存储器中的用 于数据传送的设置值)。而且,本发明涉及这样的方法,该方法 用于在使用DMA传送设备的情况下,使用利用控制程序来预先 生成的描述符,以相互适当合作的方式有效地进行利用DMA传 送设备的解码处理和利用CPU的解码处理。
根据本发明的一个方面, 一种DMA传送设备,配置成将存 储在存储器中的用于数据传送的至少一个传送设置值依次读取 到寄存器中,并且基于所读取的所述传送设置值,来进行DMA 传送处理,所述DMA传送设备包括接收单元,配置成接收用 于指定不进行DMA传送的不操作指定即NOP指定,作为所述传 送设置值;以及生成单元,配置成如果已经利用读取到所述寄 存器的所述传送设置值来进行所述NOP指定,则生成NOP中断 信号,以结束传送处理,而不进行所述DMA传送。
根据本发明的另一个方面, 一种数据传送控制方法,用于 使用直接存储器存取即DMA传送设备来利用中央处理单元即 CPU进行数据传送,所述DMA传送设备配置成将存储在存储器 中的用于数据传送的至少一个传送设置值依次读取到寄存器 中,并且基于所读取的所述传送设置值,来进行DMA传送处理, 所述DMA传送设备包括接收单元,配置成接收用于指定不进 行DMA传送的不操作指定即NOP指定,作为所述传送设置值; 以及生成单元,配置成如果已经利用读取到所述寄存器的所述 传送设置值来进行所述NOP指定,则生成NOP中断信号,以结 束传送处理,而不进行所述DMA传送,所述数据传送控制方法 包括利用由所述CPU进行的处理来进行与所述DMA传送设备 的传送功能相同的传送;检测所述NOP中断信号;以及如果已 经检测到所述N O P中断信号,则基于读取到所述D M A传送设备 中的所述寄存器中的所述传送设置值,利用由所述CPU进行的 处理来进行数据传送,并且此后,重新开始所述DMA传送设备 中的所述DMA传送。例如,可以将计算机可执行指令存储在包 括CPU的设备可读取的介质上;当通过该设备执行该指令时, 该指令使该设备执行该数据传送控制方法。
根据本发明的另一个方面, 一种数据传送控制系统,包括
直接存储器存取即DMA传送设备,配置成将存储在存储器中的
用于数据传送的至少一个传送设置值依次读取到寄存器中,并
且基于所读取的所述传送设置值,来进行DMA传送处理,所述 DMA传送设备包括接收单元,配置成接收用于指定不进行 DMA传送的不操作指定即NOP指定,作为所述传送设置值;以 及生成单元,配置成如果已经利用读取到所述寄存器的所述传 送设置值来进行所述NOP指定,则生成NOP中断信号,以结束 传送处理,而不进行所述DMA传送;以及中央处理单元即CPU, 其中,所述数据传送控制系统使用所述DMA传送设备来利用所 述CPU进行数据传送;所述CPU被编程为具有CPU数据传送 单元,配置成利用由所述CPU进行的处理来进行与所述DMA 传送设备的传送功能相同的传送;中断检测单元,配置成检测 所述NOP中断信号;以及传送单元,配置成如果所述中断检测 单元已经检测到所述NOP中断信号,则基于读取到所述DMA 传送设备中的所述寄存器中的所述传送设置值,利用由所述 CPU进行的处理来进行数据传送,并且此后,重新开始所述 DMA传送设备中的所述DMA传送。
通过下面参考附图对示例性实施例的详细描述,本发明的 其他特征和方面将变得显而易见。


包括在说明书中并且构成说明书的 一部分的附图示出本发 明的示例性实施例、特征和方面,并且与说明书一起,用来说 明本发明的原理。
图l示出根据本发明的示例性实施例的打印机的硬件配置 的例子。
图2示出根据本发明的示例性实施例的、图l中的解码器的 内部配置的例子。
图3示出根据本发明的示例性实施例的、图2中的寄存器块 (REG )的内部寄存器的配置的例子。
图4示出根据本发明的示例性实施例的、图1中的解码器所 读取的描述符的配置的例子。
图5A示出打印机的软件配置的例子。
图5B示出利用打印机处理的编码数据的配置的例子。
图5C示出利用打印机解码的数据的配置的例子。
图6是示出根据本发明的示例性实施例的连接阵列链式传 送的处理的例子的流程图。
图7是示出根据本发明的示例性实施例的针对 一 个带的数 据传送处理(无重处理)的例子的流程图。
图8A是示出根据本发明的示例性实施例的针对带的数据 传送处理(无重处理)的例子的流程图。
图8B是示出根据本发明的另 一 个示例性实施例的针对带 的数据传送处理(无重处理)的例子的流程图。
图8C是示出根据本发明的另 一 个示例性实施例的针对带 的数据传送处理(无重处理)的例子的流程图。
具体实施例方式
现在,在此将参考附图来详细描述本发明的各种示例性实 施例、特征和方面。应当注意,除非特别声明,在这些实施例 中阐述的各个部件的相对布置、数字表达式和数字值并不打算 限制本发明的范围。
如在此所使用的,解码或解码处理也可以指对压缩数据的 解压缩。因此,可以 f艮据本发明来对已编码和已压缩的数据进 行解码,以生成与已编码和已压缩的数据相对应的解码后和解
压缩后的数据。装置中的数据可以可选地描述成装置上的数据, 例如,存储在寄存器中的数据或存储在寄存器上的数据,在意 思上没有变化。虽然描述是针对喷墨式打印机进行的,但是根 据本发明可以可选地使用其他装置类型。 第一示例性实施例
现在,以下将说明本发明的第一示例性实施例。图l示出根 据本发明的示例性实施例的喷墨式打印机(以下简单称为"打 印机")的硬件配置的例子。
参照图l,中央处理单元(CPU) IOO包括微处理器元件。
只读存储器(ROM) 102是存储用于CPU IOO的控制程序的 非易失性存储器。随机存取存储器(RAM) 101是易失性存储 器。当打印机接通电源并启动时,ROM 102上的控制程序被载 入到RAM IOI上,然后,CPU IOO基于载入到RAM 101上的控 制程序,来控制打印机。通用串行总线(USB )接口 (I/F) 105 是利用线缆互相连接的打印机和主计算机之间的I/F。
解码器104是具有对已编码和已压缩的数据进行解码,并且 对解码数据进行DMA传送的功能的解码电路。
CPU 100、 RAM 101、 ROM 102、解码器104以及USB I/F 105 通过系统总线103相互通信。
图2示出根据本示例性实施例的解码器10 4的功能块的例子。
参照图2, DMA控制器(DMAC) 200可以以单传送模式和 连接阵列链式传送模式两种模式来对数据进行DMA传送。 寄存器块(REG) 201可以对解码器104进行操作设置。 解码处理块(DEC ) 204对已进行紧缩位编码和已压缩的数 据或已进行种子行编码和已压缩的数据进行解码。DEC 204基 于REG 201上的设置的内容来进行解码处理。
解码器104还包括接收緩冲器(BUFI) 203和发送緩冲器 (BUFO ) 202。
DMAC 200才艮据REG 201上的设置,通过系统总线103将 RAM IOI上的数据传送到BUFI 203。 DEC 204将解码数据存储 在BUFO 202中。然后,DMAC 200根据REG 201上的设置,通 过系统总线103将BUFO 202中的数据传送到RAM 101。
REG 201包括图3中所示出的寄存器。每个寄存器包括32位 数据。参照图3,开始寄存器300是用于响应于由CPU IOO进行 的值的写入而开始DMA传送的寄存器。可以基于所写入的值来 选择单传送模式或连接阵列链式传送模式作为DMA传送模式。
中断状态寄存器301是描述DMAC 200已经发出请求的中 断的寄存器。CPU IOO可以从中断状态寄存器301读取值以识别 解码器104上的中断状态,并且可以通过在中断状态寄存器301 上写入值来取消中断。在本示例性实施例中,使用位31到29。 位3 1分配给DMA传送结束中断,位30分配给不操作(No Operation, NOP)结束中断,位29分配给解码数据緩冲长度超 出中断。
DMA传送结束中断包括单传送模式下的DMA传送结束中 断,以及连接阵列链式传送模式下针对所有链的DMA传送结束 中断。在由描述符控制寄存器312进行NOP指定的DMA传送开 始之前发出NOP结束中断。当解码数据长度超过预定解码数据 緩冲长度时,发出解码数据緩冲长度超出中断。
中断屏蔽寄存器302与中断状态寄存器301 —起使用。利用 中断屏蔽寄存器302和中断状态寄存器301, CPU IOO可以单独 地并个别地屏蔽以上中断中的每一个。
最大解码长度寄存器303描述并存储关于由DEC 204进行 解码的数据的数据长度的值的最大值。当CPU IOO将该值写入
开始寄存器300,并且DMA传送由此开始时,该值被清空。
后续描述符地址寄存器304是用于设置在连接阵列链式传 送模式期间后续要读取的描述符的开始地址的寄存器。在连接 阵列链式传送模式期间,基于描述符的内容来将各描述符以分 布但链接在一起的方式布置在存储器上。每当DMA传送结束, 读取基于寄存器内容所指向的后续描述符。在开始连接阵列链 式传送之前,CPU 100将值写入后续描述符地址寄存器304中。 在连接阵列链式传送模式期间,CPU IOO写入存储在由DMAC 200读取的描述符中的值。
源地址0寄存器305是用于设置传送源的地址(已编码和已 压缩的数据的开始地址)的寄存器。源地址1寄存器306是用于 设置传送源的地址(根据种子行解码方法进行解码的种子行编 码数据的开始地址(在紧缩位解码中不使用))的寄存器。
目的地地址寄存器307是用于设置传送目的地的地址的寄 存器。可以通过源地址0寄存器305、源地址1寄存器306和目的 地地址寄存器307,来指定DMA传送的范围和传送目的地。
长度0寄存器308是用于设置要解码的已编码和已压缩的数 据的长度的寄存器。在紧缩位解码的情况下,可以为长度O寄存 器308设置4个字节或更大的值。在种子行解码的情况下,可以 为长度0寄存器308设置0个字节、4个字节或更大的值。长度l 寄存器309是用于在种子行解码的情况下指定种子行编码数据 的长度的寄存器。
长度2寄存器310是用于指定解码数据緩沖长度的寄存器。 如果作为解码处理的结果,解码数据长度超过在长度2寄存器 310中设置的值,则暂停解码处理,并将值"1"设置到中断状 态寄存器301的位29。
如果中断还未被中断屏蔽寄存器302屏蔽,则DMAC 200发
出解码数据緩冲长度超出中断,并结束该DMA传送。另 一方面,
如果中断已经被中断屏蔽寄存器302屏蔽,并且如果DMAC 200 处于连接阵列链式传送模式,则DMAC 200继续下一个链的处 理。而且,如果作为解码结果,解码数据长度值小于在长度2 寄存器310中设置的值,则DMAC 200取消不足的部分。
操作寄存器311是用于指定解码方法的寄存器。CPU IOO可 以根据CPU 100写入操作寄存器311上的值,来指定解码方法 (紧缩位解码或种子行解码)。
描述符控制寄存器312是用于指定描述符的控制的寄存器。 根据CPU IOO的设计,CPU IOO不能将设置值写入描述符控制寄
置描述符控制寄存器312的内容。当为位31设置描述当前传送是 最后传送的值"1"时,DMAC 200在根据所读取的描述符中的 设置进行DMA传送之后,结束该连接阵列链式传送。
当中断状态寄存器301的位31的值改变成值"1"时,如果 中断还未被中断屏蔽寄存器302屏蔽,则DMAC 200生成DMA 传送结束中断。
当中断状态寄存器301的位30设置成描述当前传送是NOP 指定传送的值"1"时,DMAC 200结束该连接阵列链式传送, 而不根据所读取的描述符中的设置来进行DMA传送。然后,将 为中断状态寄存器301的位30设置的值改变成值"1",如果中断 还未被中断屏蔽寄存器302屏蔽,则DMAC 200生成NOP结束中
图4示出根据示例性实施例的、在连接阵列链式传送中使用 的描述符的配置的例子。参照图4,后续描述符地址400是与后 续描述符地址寄存器304相对应的设置值。源地址O 401是与源 地址0寄存器305相对应的设置值。源地址l 402是与源地址1寄
存器306相对应的设置值。目的地地址403是与目的地地址寄存 器307相对应的设置值。
长度O 404是与长度0寄存器308相对应的设置值。长度1 405 是与长度1寄存器309相对应的设置值。长度2 406是与长度2寄 存器310相对应的设置值。操作407是与操作寄存器311相对应的 设置值。描述符控制408是与描述符控制寄存器312相对应的设 置值。
当CPU 100通过开始寄存器300发出关于连接阵列链式传 送的指令时,DMAC 200读取地址为在后续描述符地址寄存器 304中所描述的地址的描述符,然后,将所读取的描述符中的值 写入相应寄存器上。然后,根据所设置的寄存器值来进行DMA传送。
在此,描述符控制408的位30实现NOP指定单元。另外, CPU数据传送单元存在于RAM IOI上,作为控制程序。CPU 100 可以读取并执行RAM IOI上的控制程序。中断检测单元被实现 为设置在CPU IOO上的中断向量。
将参照图5A至图5C来描述本示例性实施例的配置。
图5 A简要示出可以与本示例性实施例 一 起使用的打印机 的软件配置的例子,但是应当注意,可以可选地使用其他软件 配置。参照图5A,在解码处理500中,打印一几的软件依次对存 储在接收緩沖器502中的已编码和已压缩的数据进行解码,并且 以几行(也称为"带,,)为单位将解码数据布置在内部緩冲器503 上。在图像处理501中,软件对存储在内部緩冲器503中的数据 进行特定图像处理,然后,将图像处理后的数据存储在输出緩 冲器5 0 4中。将输出緩冲器5 0 4上的数据转换成记录头的驱动信 号,从而,CPU IOO上的软件打印该数据的图像。
图5B示出存储在接收緩冲器502中的已编码和已压缩的数
据5 11的例子。该已编码和已压缩的数据包括描述该已编码和已 压缩的数据的类型的打印控制命令。将该数据按照行序布置为,
例如,红色(R)的第一行,绿色(G)的第一行,蓝色(B) 的第 一 行。已编码和已压缩的数据的类型包括紧缩位编码数据 和种子行编码数据。图5C示出存储在内部緩冲器503中的解码 数据的例子。该数据分别针对各种颜色R、 G、 B以带521、 522、 523为单位存储在内部緩沖器503中。
现在,以下将描述本示例性实施例的操作。
图6是示出由根据本发明示例性实施例的包括DMAC 200 的解码器104进行的连接阵列链式传送操作的例子。本示例性实 施例利用描述符来指定NOP,然后,生成NOP结束中断,从而 可以通过CPU IOO来开始解码处理。
参照图6,在步骤S600中,CPU IOO利用开始寄存器300来 指示开始连接阵列链式传送。
在步骤S601中,DMAC 200基于在后续描述符地址寄存器 304中所描述的、存储在RAM IOI中的地址,来读取一个描述符, 然后,将所读取的描述符传送到REG 201。 REG201将该描述符 中的设置值写入图3中的各个相关联的寄存器中。
在步骤S602中,DMAC 200读取描述符控制寄存器312中的 值,并且判断描述符控制寄存器312的位30是否设置为值"1"。 如果在步骤S602中判断为描述符控制寄存器312的位30设置为 值"l,,,即,指定NOP (步骤S602中的"是"),则处理进入步 骤S607。在步骤S607中,DMAC 200结束该连接阵列链式传送, 并且将值"1" (NOP结束中断)写入中断状态寄存器301的位30 中。如果中断屏蔽寄存器302的位30设置为值"0",则DMAC 200 向CPU IOO发出中断信号,然后,处理进入步骤S611。在步骤 S611中,处理结束。
另 一方面,如果在步骤S602中判断为描述符控制寄存器312的位30设置为值"0"(步骤S602中的"否"),则处理进入 步骤S603。在步骤S603中,DMAC 200与DEC 204、 BUFI 203 和BUFO 202合作,来进行数据传送。在此,DMAC 200对已经 进行内部解码的数据的长度进行计数,如果计数得到的数据长 度达到由长度2寄存器310指定的解码数据緩沖长度,则即使当 数据传送当前正在进行中时,DMAC 200也暂停该数据传送。 然后,处理进入步骤S604。
在步骤S604中,DMAC 200将在步骤S603中计数得到的解码数据的数据长度与最大解码长度寄存器303上的值进行比较, 以判断解码数据的数据长度是否大于在最大解码长度寄存器3 0 3上设置的数据长度。如果在步骤S 6 04中判断为解码数据的数据长度大于最大解码长度寄存器303上的数据长度(步骤S604中的"是"),则处理进入步骤S608。在步骤S608中,DMAC200在最大解码长度寄存器303中写入解码数据的长度,然后,处理进入步骤S605。另一方面,如果在步骤S604中判断为解码数据的数据长度等于或小于最大解码长度寄存器303上的数据长度(步骤S604中的"否"),则处理进入步骤S605,而不经过步骤S608。
在步骤S605中,DMAC 200将在步骤S603中计数得到的解 码数据的长度与长度2寄存器310中的值进行比较,以判断解码 数据长度是否等于长度2寄存器310中的值。
如果在步骤S605中判断为解码数据长度至少等于长度2寄 存器310中的值(步骤S605中的"是"),则DMAC 200判断为解 码数据长度超过解码数据緩冲长度,然后,处理进入步骤S609。 在步骤S609中,DMAC 200结束该连接阵列链式传送,并且将 值"1"(解码数据緩冲长度超出中断)写入中断状态寄存器301的位29中。如果在此中断屏蔽寄存器302的位29已经设置为值 "0",则DMAC 200向CPU IOO发出中断信号。然后,处理进入 步骤S611,以结束该处理。但是,如果在步骤S605中判断为解 码数据长度小于长度2寄存器3 IO中的值(步骤S605中的"否"), 则处理进入步骤S606。
在步骤S606中,DMAC 200判断在步骤S602中读取的描述 符控制寄存器312的位31是否已经设置为值"1"。如果在步骤 S602中读取的描述符控制寄存器312的位31已经设置为值"1" (步骤S606中的"是"),则DMAC 200判断为该连接阵列链式 传送已经完成,处理进入步骤S610。在步骤S610中,DMAC 200 结束该连接阵列链式传送,并且将值"1" ( DMA传送结束中断) 写入中断状态寄存器301的位31中。如果中断屏蔽寄存器302的 位31已经设置为值"0",则DMAC 200向CPU IOO发出中断信号。 然后,处理进入步-骤S611,以结束该处理。
另 一 方面,如果在步骤S606中判断为描述符控制寄存器 312的位31已经设置为值"0"(步骤S606中的"否"),则处理 返回步骤S601,以继续该处理。
现在,以下将描述根据示例性实施例的、在对存储在接收 緩冲器502 (图5A)中的数据进行解码并将解码数据存储在内 部緩沖器503中的处理期间所进行的数据传送控制方法。CPU 100进行解码处理500,同时将64行作为一个段(下文中简称为 "带,,)进行处理。
图7是示出CPU IOO控制包括DMAC 200的解码器104,对存 储在接收緩冲器5 0 2中的图像数据进行解码,并且将解码数据传 送到内部緩冲器503的控制处理的例子的流程图。
在示例性实施例中,在存储器空间上的合适位置提供可以 为一个带设置的描述符。而且,将各描述符的后续描述符地址
400预先设置为某个值,以使可以从第一个描述符开始引用这些
描述符。因此,DMAC 200可以通过简单地读耳又特定描述符, 来识别后续要读取的描述符地址。
而且,由于打印所需的解码数据的长度等于打印纸张的可 打印区域的最大宽度,因此将各描述符的长度2 406设置为等于 最大可打印宽度(纸张宽度)的字节数,作为解码数据緩冲长 度。如果作为解码处理的结果,解码数据长度等于或大于长度2 406中的设置值,则解码器104发出超出解码数据緩冲长度的通 知。然而,在此,不需要通过改变长度2 406的设置值来再次进 行解码处理。因此,DMAC 200既不屏蔽DMA传送结束中断, 也不屏蔽NOP结束中断,而是仅利用中断屏蔽寄存器302来屏蔽 解码数据緩冲长度超出中断。
参照图7,在步骤S700中,CPU IOO开始针对带的处理。
在步骤S701中,CPU IOO存储第一个描述符的地址,作为 写入描述符地址和执行描述符地址。
在步骤S702中,生成描述符。更具体地,CPU IOO开始对 一行进行处理。CPU IOO还解释打印控制命令,并且识别与该 行有关的数据长度和解码方法。而且,CPU IOO在存在于写入 描述符地址的描述符中设置用于将解码数据传送到内部緩冲器 503的设置。
在步骤S703中,CPU IOO判断是否可以进行DMA传送。在 此,如果在紧缩位编码的情况下数据长度等于或小于4个字节, 则CPU IOO判断为不能进行DMA传送。此外,如果在种子行编 码的情况下数据长度为2、 3或4个字节,则CPU100判断为不能 进行DMA传送。然而,可以根据能够设置为DMAC 200和解码 器104的传送字节长度的预定最小值,来改变这些字节长度值。 这可以应用于下述的本发明的其他实施例。
如果在步骤S703中判断为不能进行DMA传送(步骤S703 中的"否,,),则处理进入步骤S705。在步骤S705中,CPU 100 将值"1"设置到描述符控制408的位30,以指定NOP,然后, 处理进入步骤S704。另一方面,如果在步骤S703中判断为可以 进行DMA传送,则CPU IOO将值"0"设置到描述符控制408的 位30,不指定NOP,然后,处理进入步骤S704。
在步骤S704中,CPU IOO判断当前处理的行是不是当前带 的最后行。如果在步骤S704中判断为当前处理的行是当前带的 最后行(步骤S704中的"是,,),则处理进入步骤S707。在步骤 S707中,CPU IOO将值"1"设置到描述符控制408的位31,指 定结束该连接阵列链式传送,然后,处理进入步骤S708。
另一方面,如果在步骤S704中判断为当前处理的行不是当 前带的最后行(步骤S704中的"否,,),则处理进入步骤S706。 在步骤S706中,CPU 100将后续描述符地址400的值存储在写入 描述符地址中,并将值"0"设置到描述符控制408的位31。然 后,处理返回步骤S702。
在步骤S708中,CPU IOO将执行描述符地址写入后续描述 符地址寄存器304中。在步骤S709中,CPU IOO利用开始寄存器 300来指示开始连接阵列链式传送。
在步骤S710中,CPU IOO等待,直到解码器104的中断发生。 在该时间段内,CPU IOO可以(与其他处理或线程)并行地进
行所需要的其他处理。
当解码器104的中断发生时(步骤S710中的"是"),在步 骤S711中,CPU IOO从中断状态寄存器301中读取值,判断该中 断的因素。如果中断因素是DMA传送结束中断(步骤S711中的 "否,,),则CPU 100清空中断状态寄存器301中的值,然后,处 理进入步骤S713。在步骤S713中,数据解码处理结束。
另一方面,如果中断因素是NOP结束中断(步骤S711中的"是"),则处理进入步骤S712。在步骤S712中,CPU IOO读取 REG201的各寄存器的值,(从而获得REG201中的设置,)根据 该设置利用由CPU IOO进行的处理来对数据进行解码,然后, 将解码数据存储在内部缓沖器503中。然后,CPU100清空中断 状态寄存器301中的值,处理返回步骤S709。
在此,REG 201包括在NOP结束中断发生时刻设置的值。 因此,DMAC 200通过基于后续描述符地址寄存器304中的地址 读取描述符,来从下一行继续DMA传送。
在数据包括R、 G、 B三种颜色的情况下,诸如图5B或图5C 中所示的情况,DMAC 200以诸如"R:第一行,G:第一行, B:第一行,R:第二行,G:第二行,B:第二行,……"的 方式和顺序,以可以表示为"行数x颜色数(3)"的次数重复 步骤S702至步骤S704。
利用上述硬件配置和控制方法,通过以带为单位进行数据 传送,本示例性实施例可以在对 一 个带进行处理期间容易地生 成控制程序,而无需分割描述符。即,利用上述本示例性实施 例,不需要针对要利用DMA控制器或解码器进行的解码处理或 者要利用CPU进行的解码处理,来单独地生成或管理设置数据。 而且,根据本示例性实施例,可以通过NOP中断以相互合作的 方式来平滑地执行要利用DMA控制器或解码器进行的解码处 理以及要利用CPU进行的解码处理。
第二示例性实施例
将描述本发明的第二示例性实施例,其中,DMA传送控制 使用硬件配置与图1中的硬件配置相同或可选地相似的打印机。
在图7所示的例子中,将等于最大可打印长度(纸张宽度) 的字节数设置到各行的长度2 406,使得不需要再次进行解码处
理。然而,如果原始文档仅部分具有图像,则可能仅相应部分
存在已编码和已压缩的数据。因此,即使在长度2 406 (解码数 据緩冲长度)中指定了等于最大可打印宽度的字节数,实际解 码数据长度也较小。因此,解码器104可能需要以额外的次数存 取RAMIOI,以完成直至长度2 406的长度的处理。本示例性实 施例意图解决该问题。
在本示例性实施例中,DMAC 200按照图8A至图8C所示的 顺序,将数据从接收緩冲器502传送到内部緩冲器503。图8A至 图8C的各流程图在以相同的字母示出的步骤处延续。
在本示例性实施例中,如以上所述提供足够设置一个带的 适当数量的描述符。而且,将各描述符的后续描述符地址预先 设置为某个值,以使可以从第一个描述符开始引用这些描述符。 中断屏蔽寄存器302既不屏蔽DMA传送结束中断、NOP结束中 断,也不屏蔽解码数据緩冲长度超出中断。
参照图8A,在步骤S800中,CPU IOO开始对一个带进行处理。
在步骤S801中,CPU IOO判断第一行是否可以进行DMA传 送。在此,CPU IOO解释打印控制命令,以识别该行的数据长 度和解码方法。在此,如果在紧缩位编码的情况下数据长度等
于或小于4个字节,贝'JCPU IOO判断为不能进行DMA传送。另外, 如果在种子行编码的情况下数据长度是2、 3或4个字节,则CPU IOO判断为不能进行DMA传送。
如果在步骤S801中判断为第 一行可以进行DMA传送(步骤 S801中的"是,,),则处理进入步骤S802。在步骤S802中,CPU IOO在REG 201上进行用于对第一行进行解码的所需要的设置, 并以单传送模式利用解码器104来进行DMA传送。在此,CPU IOO在中断状态寄存器301中设置等于最大可打印长度(纸张宽
度)的字节数。
在步骤S803中,CPU100等待,直到DMA传送结束中断发 生。如果在步骤S803中^^测到DMA传送结束中断,则处理进入 步骤S804。在步骤S804中,CPU 1 OO读取最大解码长度寄存器 303的值,并且存储所读取的值作为解码緩冲设置长度,然后, 处理进入图8B中的步骤S807。
另 一方面,如果在步骤S801中判断为第一行不能进行DMA 传送(步骤S801中的"否"),则处理进入步骤S805。在步骤S805 中,CPU IOO对数据进行解码,并且对解码数据长度进行计数。
在步骤S806中,CPU IOO存储计数得到的解码数据长度作 为解码緩冲设置长度,然后,处理进入图8B中的步骤S807。
在步骤S807中,如图8B所示,CPU IOO存储第一个描述符 的地址,作为写入描述符地址和执行描述符地址。
在步骤S808中,生成描述符。更具体地,CPU IOO从第一 行开始针对一行的处理。在此,CPU IOO解释打印控制命令, 以识别该行的数据长度和解码方法。而且,CPU IOO将用于将 解码数据传送到内部緩沖器503的设置设置到存在于写入描述 符地址的描述符。
在步骤S809中,CPU IOO判断是否可以进行DMA传送。在 此,如果在紧缩位编码的情况下数据长度等于或小于4个字节, 则CPU IOO判断为不能进行DMA传送。另外,如果在种子行编 码的情况下数据长度是2、 3或4个字节,则CPU100判断为不能 进行DMA传送。
如果在步骤S809中判断为不能进行DMA传送(步骤S809 中的"否"),则处理进入步骤S811。在步骤S811中,CPU 100 将值"1"设置到描述符控制408的位30,以指定NOP。另一方 面,如果在步骤S809中判断为可以进行DMA传送(步骤S809 中的"是"),则CPU IOO将值"0"设置到描述符控制408的位 30,不指定NOP。然后,处理进入步骤S810。
在步骤S810中,CPU IOO判断当前处理的行是不是当前带 的最后行。如果在步骤S810中判断为当前处理的行是当前带的 最后行(步骤S810中的"是"),则处理进入步骤S813。在步骤 S813中,CPU IOO将值"1"设置到描述符控制408的位31,指 定结束该连接阵列链式传送,然后,处理进入步骤S814。
另一方面,如果在步骤S810中判断为当前处理的行不是当 前带的最后行(步骤S810中的"否"),则处理进入步骤S812。 在步骤S812中,CPU 100将后续描述符地址400的值存储在写入 描述符地址中,并将值"0"设置到描述符控制408的位31。然 后,处理返回步骤S808。
在步骤S814中,CPU IOO将执行描述符地址写入后续描述 符地址寄存器304中。
在步骤S815中,CPU IOO利用开始寄存器300来指示开始连 接阵列链式传送。
在步骤S816中,CPU IOO等待,直到解码器104的中断发生。 当解码器104的中断发生时(步骤S816中的"是"),在步骤S817 中,CPU IOO读取中断状态寄存器301的值,判断该中断的因素。
如果中断因素是NOP结束中断(步骤S817中的"是"),则 处理进入步骤S818。在步骤S818中,CPU IOO读取REG 201的各 寄存器中的值,(从而获得REG 201中的设置,)根据该设置利 用由CPU IOO进行的处理来对数据进行解码,然后,将解码数 据存储在内部緩冲器503中。然后,CPU IOO清空中断状态寄存 器301的值,返回步骤S815。
在此,REG 201包括NOP结束中断发生时刻设置的值。因 此,DMAC 200通过基于后续描述符地址寄存器304中的地址读
取描述符,来/人下一行继续DMA传送。
另 一方面,如果在步骤S817中判断为中断因素不是NOP结 束中断(步骤S817中的"否"),则处理进入步骤S819。在步骤 S819中,CPU 100判断解码数据緩冲长度超出中断或DMA传送 结束中断的哪一个是中断因素。如果在步骤S819中判断为中断 因素是DMA传送结束中断(步骤S819中的"否"),则CPU 100 清空中断状态寄存器301的值。然后,处理进入步骤S820,以 结束该处理。
如果在步骤S819中判断为中断因素是解码数据緩沖长度 超出中断(步骤S819中的"是"),则CPU IOO清空中断状态寄 存器301的值。然后,处理进入图8C中所示的步骤S821。
在图8C中的步骤S821中,CPU IOO将执行描述符地址设置 到写入描述符地址。
在步骤S822中,CPU IOO将等于可打印宽度(纸张宽度) 的字节数设置到存在于写入描述符地址的描述符的长度2 406。
在步骤S823中,CPU 100读取该描述符的描述符控制408, 判断是否已经进行用于连接阵列链式传送结束的指定。如果在 步骤S823中判断为已经进行用于连接阵列链式传送结束的指 定(步骤S823中的"是"),则处理返回图8B中的步骤S814。另 一方面,如果在步骤S823中判断为还未进行用于连接阵列链式 传送结束的指定(步骤S823中的"否"),则处理进入步骤S824。 在步骤S824中,CPU 100存储后续描述符地址400的值作为写入 描述符地址,然后,处理返回步骤S822。
按照上述顺序,CPU IOO通过设置所需的最小解码数据緩 沖长度来生成用于一个带的描述符,并且进行解码和传送处理。 在此,可以通过对第一行进行一次解压缩,来预测所需的最小 解码数据緩沖长度。如果作为第一行的解码结果,并且如果存在可以以大于所预观'J的解码数据緩冲长度的长度来进行解码的 已编码和已压缩的数据,则CPU 100在将解码数据緩沖长度改 变为等于最大可打印宽度(纸张宽度)的字节数之后,再次进 行解码处理。
根据本示例性实施例,利用上述处理,如果在一个带内各
行的原始数据的长度相互匹配,则可以减少存耳又RAM IOI的次 数,从而可以才是高打印机的处理效率。本示例性实施例在可以 利用大尺寸纸张来进行打印的大规格打印机中尤其有用。另夕卜, 根据本示例性实施例,将传送设置值,包括利用CPU进行处理 的值,作为描述符进行管理。因此,在需要进行数据的重处理 的情况下,本示例性实施例可以有效地进行用于重处理的设置。
当DMA传送设备已经接收到包括指定不进行DMA传送的 NOP指定的传送设置值时,以及当已经进行NOP指定时,根据 本示例性实施例的DMA传送i殳备可以通过生成NOP中断信号 来结束传送处理,而不进行DMA传送。因此,如果已经检测到 数据传送量超出D M A传送长度的最小值限制,本示例性实施例 可以预先指定包括NOP指定的传送设置值,并且还可以基于 NOP中断信号来利用CPU进行传送处理。
而且,在DMA传送的情况下,根据本示例性实施例的DMA 传送设备可以包括对已编码和已压缩的数据进行解码并将其传 送到传送目的地的解码功能。另外,在例如需要对图像数据进 行解码的DMA传送的情况下,如果不能满足DMA传送长度的最 小值的限制从而不能使用解码功能,则本示例性实施例的DMA 传送设备可以利用上述NOP指定。
另外,按照使用根据本示例性实施例的DMA传送设备利用 CPU来传送数据的数据传送控制方法以及其数据传送控制程 序,如果例如检测到数据传送量超出D M A传送长度的最小值的
限制,则可以-使用NOP指定。而且,在这种情况下,本示例性
实施例可以使用DMA传送设备中的寄存器值,利用CPU来进行 与利用DMA传送设备进行的数据传送类似的数据传送。因此, 本示例性实施例可以以相互合作的方式根据处理状态以高处理 效率,来平滑地进行利用DMA传送设备的数据传送和利用CPU 的数据传送。
即,根据本示例性实施例,可以使用传送设置值(描述符) 来将NOP指定给DMA传送设备。因此,即使当DMA传送设备不 能进行DMA传送时,本示例性实施例也可以马上预先提供传送 设置值。因此,本示例性实施例可以描述用于控制整个数据传 送操作的CPU的控制程序。另外,本发明可以通过在软件处理 (利用CPU的数据传送)和硬件处理(DMA传送)中使用共享 的描述符(存储在存储器中的用于数据传送的设置值),来减小 重处理带来的负荷。而且,本发明设计这样的方法使用利用 控制程序预先生成的描述符,以相互适当合作的方式,使得在 使用DMA传送设备进行解码的情况下,能够进行由DMA传送设 备进行的高效解码处理操作以及由CPU进行的解码处理操作。
本发明不仅可以通过在打印设备中对已编码和已压缩的图 像数据进行解码的DMA传送设备来实现,而且可以通过诸如计 算机、扫描仪、通信设备和数字电视的进行数据传送的各种类 型的数据处理设备来实现。而且,根据本示例性实施例可以处 理的数据不限于图像数据。即,如果解码器(图2中的DEC 204 ) 的处理内容改变,则本发明可以对基于特定目的而加密的数据 进行解码处理。可以将用于实现本发明的CPU的控制程序预先 存储在ROM(ROM 102)中,或者从其他存储介质(磁-光盘 (MO)、致密盘只读存储器(CD-ROM)、 DVD只读存储器 (DVD-ROM)或各种类型的存储卡)加载该控制程序,或者
通过网络在目标系统上安装或更新该控制程序。
虽然参考示例性实施例对本发明进行了描述,但是应当理
解,本发明并不限于所公开的示例性实施例。所附权利要求的
范围符合最宽的解释,以包含所有的修改、等同结构和功能。
权利要求
1.一种直接存储器存取即DMA传送设备,配置成将存储在存储器中的用于数据传送的至少一个传送设置值依次读取到寄存器中,并且基于所读取的所述传送设置值,来进行DMA传送处理,所述DMA传送设备包括接收单元,配置成接收用于指定不进行DMA传送的不操作指定即NOP指定,作为所述传送设置值;以及生成单元,配置成如果已经利用读取到所述寄存器的所述传送设置值来进行所述NOP指定,则生成NOP中断信号,以结束传送处理,而不进行所述DMA传送。
2. 根据权利要求1所述的DMA传送设备,其特征在于,还 包括解码单元,具有在所述DMA传送期间对已编码和已压缩 的数据进行解码,并且将解码数据传送到传送目的地的解码功A匕犯。
3. —种数据传送控制方法,用于使用直接存储器存取即 DMA传送设备来利用中央处理单元即CPU进行数据传送,所述 DMA传送设备配置成将存储在存储器中的用于数据传送的至 少一个传送设置值依次读取到寄存器中,并且基于所读取的所 述传送设置值,来进行DMA传送处理,所述DMA传送设备包括 接收单元,配置成接收用于指定不进行DMA传送的不操作指定 即NOP指定,作为所述传送设置值;以及生成单元,配置成如 果已经利用读取到所述寄存器的所述传送设置值来进行所述 NOP指定,则生成NOP中断信号,以结束传送处理,而不进行 所述DMA传送,所述数据传送控制方法包括利用由所述CPU进行的处理来进行与所述DMA传送设备 的传送功能相同的传送;检测所述NOP中断信号;以及如果已经检测到所述NOP中断信号,则基于读取到所述DMA传送设备中的所述寄存器中的所述传送设置值,利用由所 述CPU进行的处理来进行数据传送,并且此后,重新开始所述 DMA传送设备中的所述DMA传送。
4. 根据权利要求3所述的数据传送控制方法,其特征在于, 还包括如果进行的数据传送的传送长度等于或小于阈值,则 利用所述传送设置值来进行所述NOP指定,如果进行的数据传 送的传送长度大于所述阈值,则不进行所述N O P指定。
5. 根据权利要求3所述的数据传送控制方法,其特征在于, 还包括在所述DMA传送期间,对已编码和已压缩的数据进行 解码,并且将解码数据传送到传送目的地。
6. —种计算机可执行指令,存储在设备可读取的介质上,当由所述设备执行时,所述计算机可执行指令使所述设备执行 根据权利要求3所述的数据传送控制方法。
7. —种数据传送控制系统,包括直接存储器存取即DMA传送设备,配置成将存储在存储器 中的用于数据传送的至少一个传送设置值依次读取到寄存器 中,并且基于所读取的所述传送设置值,来进行DMA传送处理, 所述DMA传送i殳备包括接收单元,配置成接收用于指定不进行DMA传送的不 操作指定即NOP指定,作为所述传送设置值;以及生成单元,配置成如果已经利用读取到所述寄存器的 所述传送设置值来进行所述NOP指定,则生成NOP中断信号, 以结束传送处理,而不进行所述DMA传送;以及中央处理单元即CPU,其中,所述数据传送控制系统使用所述DMA传送设备来利 用所述CPU进行数据传送; 所述CPU被编程为具有CPU数据传送单元,配置成利用由所述CPU进行的处 理来进行与所述DMA传送设备的传送功能相同的传送;中断检测单元,配置成一全测所述NOP中断信号;以及 传送单元,配置成如果所述中断4企测单元已经检测到 所述NOP中断信号,则基于读取到所述DMA传送设备中的所述 寄存器中的所述传送设置值,利用由所述CPU进行的处理来进 行数据传送,并且此后,重新开始所述DMA传送设备中的所述 DMA传送。
8. 根据权利要求7的数据传送控制系统,其特征在于,如 果进行的数据传送的传送长度等于或小于阈值,则所述CPU利 用所述传送设置值来进行所述NOP指定,如果进行的数据传送 的传送长度大于所述阈值,则所述CPU不进行所述NOP指定。
9. 根据权利要求8的数据传送控制系统,其特征在于,所的数据进行解码,并且将解码数据传送到传送目的地的解码功能。
全文摘要
本发明提供一种DMA传送设备、数据传送控制方法和数据传送控制程序。该DMA传送设备配置成将存储在存储器中的用于数据传送的至少一个传送设置值依次读取到寄存器中,并且基于所读取的所述传送设置值,来进行DMA传送处理,并且包括接收单元,配置成接收用于指定不进行DMA传送的不操作(NOP)指定,作为传送设置值;以及生成单元,配置成如果已经利用读取到寄存器的传送设置值来进行NOP指定,则生成NOP中断信号,以结束传送处理,而不进行DMA传送。
文档编号G06F13/20GK101196861SQ20071019901
公开日2008年6月11日 申请日期2007年12月7日 优先权日2006年12月7日
发明者岩田弹 申请人:佳能株式会社
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1