专利名称:数据处理装置以及数据处理方法
技术领域:
本发明涉及用于对存储装置(storage)进行数据块的读写的数据处理装置以及数据处理方法。
背景技术:
通常,复印机、数码复合机等图像形成装置内置有进行各种图像处理的数据处理装置。那样的数据处理装置在缓冲图像数据时,通过写入侧程序(例如某个图像处理程序) 将1页量的图像数据存储在HDD(硬盘驱动器)等储存装置内的文件中。之后,数据处理装置将该文件的文件标识符通知给读出侧程序(例如后阶段的图像处理程序)。该读出侧程序从储存装置的该文件读出该图像数据。另外,在日本专利文献特开2007-179251号公报中记载了以下技术当向HDD写入数据时,设置FIFO (First-In First-Out,先入先出)作为缓冲器,在一个线程中向该FIFO 写入数据,并在其他的线程中从该FIFO向HDD写入数据。如上所述,通常在将预定单位(在上述的情况下为页)数据存储到储存装置之后, 为了读出该数据,逐次进行数据写入和数据读出。因此,在完成预定单位的数据的数据写入之前无法读出该数据,缓冲后的处理会发生延迟。
发明内容
本发明就是鉴于上述问题而作出的,其目地在于得到一种能够减少由于向储存装置进行数据缓冲而引起的处理延迟的数据处理装置以及数据处理程序。为了解决上述问题,根据本发明的数据处理装置包括储存装置控制器以及控制所述储存装置控制器的处理器。储存装置控制器将构成预定单位的数据的一系列的多个数据块写入到储存装置,并从储存装置读出所述一系列的多个数据块。处理器(i)生成写入侧处理以及读出侧处理,( )从写入侧处理向读出侧处理通知储存装置中的存储区域的标识符,(iii)之后使用写入侧处理使得储存装置控制器将一系列的多个数据块顺序地写入到所述存储区域中,并且(iv)当在读出侧处理中接收到标识符时,从与该标识符对应的存储区域中读出一系列的多个数据块。另外,根据本发明的数据处理方法的特征在于储存装置控制器将构成预定单位的数据的一系列的多个数据块写入到储存装置,并从储存装置读出所述一系列的多个数据块;处理器(i)生成写入侧处理以及读出侧处理,(ii)从写入侧处理向读出侧处理通知储存装置中的存储区域的标识符,(iii)之后使用所述写入侧处理使得所述储存装置控制器将所述一系列的多个数据块顺序地写入到所述存储区域,并且(iv)当在所述读出侧处理中接收到所述标识符时,使用所述读出侧处理使得所述储存装置控制器从与该标识符对应的所述存储区域中读出所述一系列的多个数据块。根据本发明,在数据处理装置中能够减少由于向储存装置进行数据缓冲而引起的后阶段处理的延迟。
图1是示出根据本发明实施方式的数据处理装置的构成的框图;图2是示出在图1中的数据处理电路处理的数据的结构的图;图3是在图1的数据处理电路中处理的数据示例;图4是说明实施方式1中的主控制器的框图;图5是说明实施方式1中的主控制器的动作的流程图;图6是说明实施方式2中的主控制器的框图;图7是说明实施方式2中的主控制器的写入侧处理的动作的流程图;图8是说明实施方式2中的主控制器的读出侧处理的动作的流程图;图9是示出图6的队列系统中的共享存储器区域的图;图10是说明实施方式3中的主控制器的写入侧处理的动作的流程图;图11是说明实施方式3中的主控制器的读出侧处理的动作的流程图;图12是对从实施方式3中的RAM的带数据的读出进行说明的图。
具体实施例方式以下,基于附图对本发明的实施方式进行说明。图1是示出根据本发明实施方式的数据处理装置的构成的框图。图1所示的数据处理装置包括数据处理电路1、主控制器2、RAM (Random Access Memory,随机存取存储器)3、HDD 4、扫描器5、印刷引擎控制电路6、储存装置7、向纸张进行印刷的印刷引擎(未图示)等。数据处理电路1是将来自扫描器5等的图像数据以带为单位或者以页为单位进行处理、并输出给HDD 4或印刷引擎控制电路6的装置。主控制器2是向数据处理电路1中的各部提供指令的装置。主控制器2经由总线接口电路11以及总线12向数据处理电路1内的各部提供指令。主控制器2是CPU (Central Processing Unit,中央处理器)等处理器,其根据存储在储存装置7中的数据处理程序8 来输出指令。RAM 3在由数据处理电路1进行的处理中临时存储带数据等。作为RAM 3例如能够采用1个或多个DRAM (Dynamic RAM,动态随机存取存储器)。HDD 4是用于临时存储构成1页图像数据的一系列的多个带数据的储存装置。扫描器5是光学地读取原稿的图像、并输出通过该图像读取而获得的图像数据的
直ο印刷引擎控制电路6是向印刷引擎提供印刷图像数据、并控制印刷引擎来使其执行印刷的电路。储存装置7是闪存等非易失性存储装置,存储主控制器2所使用的各种程序和数据。这里,数据处理程序8被存储在储存装置7中。这里,对数据处理电路1的结构进行说明。数据处理电路1具有总线接口电路11、总线12、存储器接口 13、HDD控制器14、 数据获取电路15、图像处理电路16、栅格处理电路17、半色调处理电路18、以及数据输出电路 19。此外,数据处理电路 1 作为 ASIC(Application Specific Integrated Circuit,专用集成电路)而实现。总线接口电路11是将主控制器2连接在总线12上的电路。存储器接口 13是收发RAM 3和总线12之间的数据以及指令的电路。HDD控制器14是根据来自主控制器2的指令针对HDD 4进行数据读写的电路。数据获取电路15是根据来自主控制器2的指令将图像数据作为带数据从扫描器 5顺序地获取并将其存储在RAM 3或HDD 4中的电路。数据获取电路15具有DMA (Direct Memory Access,直接存储器存取)控制器。例如,带数据是1 行的数据,每1页有58个带的带数据。图像处理电路16根据来自主控制器2的指令,从RAM 3或HDD 4读出图像数据的带数据,并对这些带数据执行预定的图像处理(图像放大、图像缩小、颜色转换等)。图像处理电路16是将处理后的带数据存储在RAM 3或HDD 4的电路。图像处理电路16具有DMA 控制器。栅格处理电路17是从RAM 3或HDD 4读出图像数据的带数据、并对这些带数据执行栅格化来生成栅格数据的电路。栅格数据按每个带被存储在HDD 4中,并在执行半色调处理时被读出到RAM 3中。半色调处理电路18从RAM 3按每个带读出栅格数据并执行半色调处理。半色调处理电路18是将半色调处理后的数据存储到RAM 3中的电路。数据输出电路19是从RAM 3中读出经半色调处理后的数据并将其提供给印刷引擎控制电路6的电路。在数据处理电路1中,根据需要对从扫描器5获取的图像数据实施旋转、放大/缩小等图像处理。之后,以半色调生成印刷图像数据并将其输出给印刷引擎控制电路6。在这些数据处理的中途,在以带为单位的数据缓冲中使用RAM 3,在以页为单位的数据缓冲中使用 HDD 4。图2示出了在数据处理电路1中处理的数据的结构。一个文档数据由1个或多个页数据构成。页数据由预定数目的带数据构成。有关一个文档的数据作为一个作业被提供给主控制器2。文档的结构用节点的列表描述。文档的节点数据包含向页的节点数据的链接信息,页的节点数据包含向带的节点数据的链接信息。带的节点数据包含页内的带的识别信息、带数据的状态等。因此,通过这些链接,能够确定文档内某个页的某个带数据。详细地说,1个或多个文档用文档节点数据的链接列表描述。在某个文档的文档节点数据上作为分支而连接与构成文档的1个页或多个页相关的页节点数据的链接列表。 并且,在某页的页节点数据上作为分支而连接与构成该页的多个带相关的带数据的链接列表。因此,数据结构为由文档节点数据、页节点数据以及带数据构成的3层结构。图3是示出在数据处理电路1中处理的数据的例子。如图3所示,该数据结构为文档链接列表、页链接列表以及带链接列表的3层结构。在图3的例子中,文档链接列表包含3个文档节点数据。这里,各文档数据包含由 “文档#1”等表示的识别信息、以及链接信息(以后,用识别信息描述各文档节点数据)。文档#1包含向后续的文档#2链接的链接信息。文档#2包含向后续的文档#3链接的链接信息。由此,文档链接列表内的各文档节点数据按照识别号的顺序链接。各文档节点数据还包含向页链接列表链接的链接信息。这里,文档#1的页链接列表包含2个页的页节点数据。各页节点数据包含由“页#1”等表示的识别信息、以及链接信息(以后,用识别信息描述各页节点数据)。文档#1的链接信息链接到作为起始的页节点数据的页#1。页#1包含向后续的页#2链接的链接信息。如此,文档#1通过与页链接列表内的各页节点数据直接或间接链接而链接到页链接列表。同样地,文档#2通过与页#1直接或间接链接来链接到页链接列表,文档#3通过与页#1 页#3直接或间接链接来链接到页链接列表。各页节点数据还包含向带链接列表链接的链接信息。这里,页#1的带链接列表包含N个带数据。这里,由于1个页中的带的数目是固定的,因此带链接列表的大小是固定的。 各带数据包含由“带#1”等表示的识别信息、1带量的图像数据、以及链接信息(以后,用识别信息描述各带数据)。页#1的链接信息与作为起始带数据的带#1链接。带#1包含向后续的带#2链接的链接信息。同样地,各带数据包含向后续的带数据链接的链接信息。此外,最末尾的带測的链接信息包含表示是最末尾的信息。如此,页#1通过与各带数据直接或间接链接来链接到带链接列表。其它页节点数据也与文档#1的页#1同样地链接到带链接列表。如上所述,在数据处理电路1中处理的数据从文档链接列表依次与页链接列表、 带链接列表链接,因此文档节点数据、页节点数据、带数据构成为彼此直接或间接链接的结构。接着,分三个实施方式对由上述数据处理装置向HDD 4写入带数据或从HDD 4读出带数据的动作进行说明。(实施方式1)图4是用于说明实施方式1中的主控制器2的动作的框图。图5是用于说明实施方式1中的主控制器2的动作的流程图。在主控制器2中,支持多处理以及多线程的操作系统正在运行。主控制器2执行数据处理程序8,首先生成写入侧处21以及读出侧处理22。主控制器2使用写入侧处理21 以及读出侧处22来执行将数据缓冲到HDD 4中的应用程序23。在应用程序23中,写入侧程序41在写入侧处理21的写入侧线程31内被执行。主控制器2通过执行写入侧程序41, 能够使HDD控制器14将带数据写入到HDD 4。另一方面,在应用程序23中,读出侧程序51 在读出侧处理22的读出侧线程32内被执行。主控制器2通过执行读出侧程序51,能够使 HDD控制器从HDD 4读出带数据。主控制器2通过在写入侧线程31中执行写入侧程序41来将成为带数据的写入目的地的文件的文件标识符通知给读出侧处理22 (步骤Si)。文件标识符例如被设为文件名。 主控制器2在写入侧线程31中按照写入侧程序41,使用API 42调出文件系统61的共享库。并且,主控制器2在写入侧线程31中按照写入侧程序代码41,打开该文件标识符的文件,并生成文件句柄(步骤S2)。在打开文件后,主控制器2在写入侧线程31中按照写入侧程序41,调出文件系统 61的API 42,并控制HDD控制器14以将带数据写入到HDD 4内的文件中(步骤S3)。这里,主控制器2通过DMA传输从RAM 3读出带数据。HDD控制器14将从RAM 3读出的带数据写入到HDD 4。当完成了将一个带数据写入到HDD 4时,主控制器2使用API 42发送事件(步骤S4)。主控制器2在写入侧线程31中按照写入侧程序41,将完成写入的带数据从 RAM 3中擦除(步骤S5)。如上所述,1页量的多个带数据被顺序地写入。并且,当1页的所有带数据的写入完成时(步骤S6),主控制器2按照写入侧程序41,使用API 42调出文件系统61的共享库, 关闭与文件标识符对应的文件(步骤S7)。另一方面,主控制器2在读出侧线程32中执行读出侧程序51。这里,读出侧程序 51与写入侧不同步地进行动作。主控制器2在读出侧线程32中按照读出侧程序51在从写入侧线程31接受到文件标识符后(步骤Sll),打开与该文件标识符对应的文件并生成文件句柄(步骤S12)。在打开文件后,主控制器2在读出侧线程32中按照读出侧程序51进行等待,直到接收到事件为止(步骤Si; )。在接收到来自写入侧的事件后,主控制器2在读出侧线程32 中按照读出侧程序代码51,调出文件系统61的API 52,并控制HDD控制器14以从HDD 4 内的文件读出一个带数据(步骤S14)。这里,HDD控制器14从HDD 4读出带数据。主控制器2将从HDD 4读出的带数据通过DMA传输写入RAM 3中。如此,针对来自写入侧的事件,带数据被一个一个地顺序读出。并且,当完成了 1 页量的所有带数据的读出时(步骤SK),主控制器2在读出侧线程32中按照读出侧程序 51,使用API 52调出文件系统61的共享库,并关闭与文件标识符对应的文件(步骤S16)。 这里,HDD控制器14从HDD 4中擦除被关闭的文件。如上所述,根据上述实施方式1,主控制器2进行以下动作(i)生成写入侧处理以及读出侧处理,( )从写入侧处理21向读出侧处理22通知要保存到HDD 4的文件的文件标识符,之后(iii)使用写入侧处理21使得HDD控制器14将一系列的多个带数据顺序地写入到HDD 4,(iv)当在读出侧处22中接收到文件标识符时,使用读出侧处理22使得HDD 控制器14从与该文件标识符对应的文件中读出一系列的多个带数据。由此,在向HDD 4写入带数据之前,用于缓冲的存储区域(S卩、文件)的标识符 (即、文件标识符)能够被传递给读出侧处22,从而能够与写入侧处理21独立地通过读出侧处理22开始数据读出。因此,数据处理装置即使在数据写入中途也能够读出带数据。因此,能够减少向储存装置(HDD 4)进行数据缓冲后的处理的延迟。(实施方式2)在本发明的实施方式2中,主控制器2不同于由应用程序23进行动作的写入侧线程以及读出侧线程而另外生成由用于向文件写入带数据的共享库的程序进行动作的线程、 以及由用于从文件读出带数据的共享库的程序进行动作的线程。由此,数据处理装置与应用程序23的处理不同步地执行带数据的写入以及读出处理。以下,对实施方式2中的主控制器2的动作进行说明。图6是示出实施方式2中的主控制器2的动作的框图。图7是用于说明实施方式 2中的主控制器2的写入侧处理21的动作的流程图。图8是用于说明实施方式2中的主控制器2的读出侧处理22的动作的流程图。在主控制器2中,支持多处理以及多线程的操作系统正在运行。主控制器2执行数据处理程序8,首先生成写入侧处理21以及读出侧处理22。主控制器2使用写入侧处理21以及读出侧处理22来执行向HDD 4缓冲数据的应用程序23。在应用程序23中,写入侧程序41在写入侧处理21的写入侧线程31a中被执行。主控制器2通过执行写入侧程序41, 能够使HDD控制器14将带数据写入到HDD 4。另一方面,在应用程序23中,读出侧程序51 在读出侧处理22的读出侧线程32b中被执行。主控制器2通过执行读出侧程序51,能够使得HDD控制器从HDD 4读出带数据。主控制器2在写入侧处理21中生成文件写入线程31b。主控制器2在该文件写入线程31b中执行用于向文件写入带数据的共享库的文件写入程序71。主控制器2在读出侧处22中生成文件读出线程32b。主控制器2在该文件读出线程32b中执行用于读出来自文件的带数据的共享库的文件读出程序81。并且,主控制器2将在应用程序23中发生的数据写入请求以及数据读出请求作为访问请求而排在队列系统91中。主控制器2执行文件写入程序71以及文件读出程序81,并基于在队列系统91中排队的访问请求来执行带数据的写入以及读出。由此,数据处理装置与应用程序23的处理不同步地执行带数据的写入以及读出。主控制器2在接受文档数据后,通过写入侧线程31a以图3所示的3层结构将数据存储到RAM 3中。此时,针对一个文档,一个文档节点数据被添加到文档链接列表,与包含在该文档的页数目相同数目的页节点数据被添加到页链接列表中。并且,针对每一页,重新确保(分配)带链接列表的存储区域,带链接列表被存储到该存储区域中。主控制器2在向 RAM 3中存储1页量的多个带数据时,将该页的页节点数据添加到页链接列表,并确保多个带数据的存储区域,一旦完成该页的写入,就释放该存储区域,并从页链接列表中删除该页节点数据。当确保带数据的存储区域时,如果RAM 3的剩余量不够,则主控制器2等待到释放有关其他页的带数据的存储区域为止,并在完成释放时,确保新页的带数据的存储区域。主控制器2通过在写入侧线程31a中执行写入侧程序41,来将成为带数据的写入目的地的文件的文件标识符通知给读出侧处22的读出侧程序51 (步骤S21)。文件标识符例如被设为文件名。主控制器2在写入侧线程31a中按照写入侧程序41,使用API 42来调出文件系统61的共享库。并且,主控制器2在写入侧线程31a中按照写入侧程序代码41, 打开该文件标识符的文件,并生成文件句柄(步骤S22)。在打开文件后,主控制器2在写入侧线程31a中按照写入侧程序41,调出文件系统61的API 42,并将向与文件标识符对应的文件写入的带数据的数据写入请求依次排到队列系统91中。主控制器2根据数据写入请求,按照写入侧程序41对文件写入线程31b 提供各带数据的写入指令(步骤S2!3)。在写入指令中指定成为写入对象的带数据的识别信息(即,包含该带数据的文档的识别信息、包含该带数据的页的识别信息、以及在该页内的带数据的识别信息)。主控制器2重复步骤S23的处理,直到对所有带数据的数据写入请求进行排队为止(步骤S24)。图9是示出图6中的队列系统91内的共享存储器区域的图。该共享存储器区域在RAM 3上被分配,其物理地址被映射到写入侧处理21以及读出侧处22的逻辑地址。由此,可从各个处理向共享存储器区域进行访问。在队列系统91中,该共享存储器区域包括文档列表区域、页列表区域、FD列表区域、以及队列区域。包含写入对象或读出对象的带数据的文档的节点数据通过API 42或API 52被存储在文档列表区域中。文档的节点数据具有向构成该文档的页的节点数据链接的链接信息。包含写入对象或者读出对象的带数据的页的节点数据通过API 42或API 52被存储在页列表区域中。页的节点数据具有向构成该页的带的节点数据链接的链接信息、以及向文件描述符(File Descriptor)的链接信息。写入对象或读出对象的带的节点数据通过API 42或API 52被存储在带列表区域中。带的节点数据具有该带所属的文档以及页的识别信息,并具有文件内的带数据的识别 fn息οAPI 42或API 52针对每个页将与该页对应的文件的文件描述符写入FD列表区域中。API 42或API 52针对每个带数据将访问请求写入队列区域中。访问请求包含访问类型(写入或读出)、以及作为对象的带数据的识别信息。因此,在一个队列中混合存在数据写入请求和数据读出请求。通过信号量(Semaphore)来排他地控制向该队列系统91的访问,使得写入侧线程 31a、文件写入线程31b、读出侧线程32a、以及文件读出线程32b中的两个以上线程无法同时访问。即,排他地控制一个队列,使得同时只能从一个处理访问该队列。因此,为排队不
需要很多资源。另一方面,主控制器2在文件写入线程31b中按照文件写入程序71,搜索队列内的访问请求(步骤S31)。当在队列中发现发送写入指令的带数据的数据写入请求时(步骤 S32),主控制器2从写入在队列系统91中的结构数据以及文件描述符确定由该数据写入请求指定的带数据以及写入目的地。主控制器2在文件写入线程31b中通过DMA传输从RAM 3该带数据读出到HDD控制器14中。此时,文件写入线程31b从数据写入请求中确定写入对象的带数据所属的文档以及页。接着,文件写入线程31b确定已被确定的文档的文档节点数据。文件写入线程31b 基于所确定的文档节点数据的链接信息来确定链接目的地的页链接列表,并从该页链接列表中确定根据数据写入请求确定的页的页节点数据。并且,文件写入线程31b基于所确定的页节点数据的链接信息来确定链接目的地的带链接列表,并从该带链接列表中确定与数据写入请求对应的写入对象的带数据。如此,主控制器2通过根据文档、页以及带的识别号追寻上述的链接,能够确定并读出文档中某页的某个带数据。HDD控制器14将所读出的带数据写入到被确定的写入目的地(步骤S33)。在一个带数据的写入完成后,主控制器2在文件写入线程31b中按照文件写入程序71从队列中删除该带数据的数据写入请求(步骤S34),并向API 42提供带数据的数据写入完成通知(步骤S35)。如此,通过执行与应用程序23不同的文件写入线程31b的文件写入程序71,被排队的数据写入请求不同步地被处理。并且,当向API 42提供了数据写入完成通知时,主控制器2使用API42发送事件 (步骤S26)。主控制器2在写入侧线程31a中按照写入侧程序41,从RAM 3中擦除上述已完成数据写入的带数据(步骤S27)。并且,在1页量的所有带数据的写入完成后(步骤S28),主控制器2按照写入侧程序41并使用API 42调出文件系统61的共享库,关闭与文件标识符对应的文件(步骤 S29)。另一方面,主控制器2在读出侧线程3 中执行读出侧程序51。这里,读出侧程序 51与写入侧不同步地动作。主控制器2在读出侧线程32a中按照读出侧程序51,在从写入侧线程31a接受到文件标识符后(步骤S41),打开与该文件标识符对应的文件,并生成文件句柄(步骤S42)。在打开文件后,主控制器2在读出侧线程3 中按照读出侧程序51调出文件系统 61的API 52,并将来自与文件标识符对应的文件的各个带数据的数据读出请求依次排到队列系统91中。主控制器2根据数据读出请求,按照读出侧程序51对文件读出线程32b 提供各带数据的读出指令(步骤S4!3)。在读出指令中指定成为读出对象的带数据的识别信息(即,包含该带数据的文档的识别信息、包含该带数据的页的识别信息、以及该页内的带数据的识别信息)。主控制器2重复步骤S43的处理,直到对所有带数据的数据读出请求进行排队为止(步骤S44)。另一方面,当在文件读出线程32b中接收到该带数据的写入完成时的事件时(步骤S51),主控制器2按照文件读出程序81搜索队列内的数据读出请求(步骤S5》。当在队列中发现发送读出指令的带数据的数据读出请求时(步骤S5!3),主控制器2调出文件系统61的API 52,并控制HDD控制器14以从HDD 4内的文件读出带数据(步骤S54)。此时, 从写入在队列系统91中的结构数据以及文件描述符确定由该数据读出请求指定的带数据以及读出源。HDD控制器14从所确定的读出源中读出该带数据。主控制器2按照文件读出程序代码81,将读出的带数据通过DMA传输写入到RAM 3中。当一个带数据的数据读出完成后,主控制器2在文件读出线程32b中按照文件读出程序81从队列中删除该带数据的数据读出请求(步骤S55),并向API 52提供带数据的数据读出完成通知(步骤S56)。如此,针对来自写入侧的事件,带数据被一个一个地顺序读出。并且,主控制器2 在读出侧线程3 中按照读出侧程序51,在每次进行数据读出完成通知时,判定1页量的所有带数据的读出是否完成(步骤S46)。如果1页量的所有带数据的读出已完成,则主控制器2使用API 52调用文件系统61的共享库,并关闭与文件标识符对应的文件(步骤S47)。 这里,HDD控制器14从HDD 4中删去被关闭的文件。如上所述,根据上述实施方式2,主控制器2进行以下动作(i)在写入侧处理21 中生成写入侧线程31a以及文件写入线程31b,(ii)在读出侧处理22中生成读出侧线程 32a以及文件读出线程32b,(iii)在从写入侧线程31a向读出侧线程3 通知HDD 4中的文件的标识符之后,在写入侧线程31a中顺序地排队与一系列的多个带数据的每一个相关的数据写入请求,(iv)使用文件写入线程31b使HDD控制器14按照被排队的数据写入请求的顺序写入一系列的多个带数据,(ν)在读出侧线程32a中当接收到文件的文件标识符时, 顺序地排队与一系列的多个带数据的每一个相关的数据读出请求,(vi)使用文件读出线程 32b使HDD控制器14按照被排队的数据读出请求的顺序读出一系列的多个带数据。由此,用于向HDD 4写入带数据的程序71在不同的线程31b中动作,从而不同步地进行数据写入,因此不等待写入侧程序41完成数据写入就能够进行其它处理。另外,由于用于从HDD 4读出带数据的程序81在不同的线程32b中动作,从而不同步地进行数据读出,因此不等待读出侧程序51完成数据读出就能够执行其它处理。另外,根据上述实施方式2,1页量的带数据被作成针对文档内的各页而设置的链接列表,并被存储在RAM 3中,并且在RAM 3中存储表示文档内的各页的页节点数据。某页的页节点数据具有向关于该页的多个带数据的起始的链接。由此,由于多页的带数据按每页被作成各个链接列表,因此能够在短时间内从多页的带数据中发现处理对象的带数据。(实施方式3)本发明的实施方式3在写入侧线程31a中在带数据的数据写入请求的排队完成的时间点发送事件。在文件读出线程32b中,如果RAM 3中有带数据,则从RAM 3读出该带数据,如果RAM 3中没有带数据,则从HDD 4的文件中读出该带数据。以下对实施方式3中的主控制器2的动作进行说明。实施方式3中的基本程序构成与实施方式2的(图6)相同,但通过写入侧线程31a和文件读出线程32b进行的动作与实施方式2的(图6)不同。图10是用于说明实施方式3中的主控制器2的写入侧处理21的动作的流程图。 图11是用于说明实施方式3中的主控制器2的读出侧处22的动作的流程图。如图10所示,在实施方式3中,主控制器2在写入侧线程31a中不是在完成带数据的写入时而是在每次完成带数据的写入请求的排队(步骤S2!3)时发送事件(步骤S61)。并且,如图11所示,主控制器2在文件读出线程32b中,一旦在队列中发现访问请求,就查找在RAM 3中是否剩有读出对象的带数据(步骤S71)。其结果是,如果在RAM 3中剩有读出对象的带数据,则主控制器2在文件读出线程32中按照文件读出程序从RAM 3读出带数据(步骤S72)。如果RAM 3中没有剩余读出对象的带数据,则主控制器2在文件读出线程中按照文件读出程序来控制HDD控制器,以从HDD 4的文件读出带数据。此时,HDD 控制器14从HDD 4读出带数据(步骤S54)。如此,如果RAM 3中剩有读出对象的带数据,则不是从HDD 4而是从RAM 3读出带数据。因此,不需要根据针对该带数据的数据写入请求而向HDD 4写入带数据。但是,该数据写入请求将保持残留在队列系统91中的状态。如果关于某个作业(文档)的上述不需要的数据写入请求被残留,则即使在读出侧其作业已完成(即,即使该文档的读出已完成),在该数据写入请求被处理之前在写入侧其作业也不会完成,因此导致后续的处理发生延迟。因此,主控制器2通过读出侧线程31在预定定时从队列中删除与已从RAM 3读出的带数据相关的数据写入请求。在该实施方式中,数据写入请求的删除定时被设为读出侧的作业完成时。图12是用于说明实施方式3中的来自RAM 3的带数据的读出的图。如图12所示, 带数据被存储在RAM 3内预定的共享存储器区域,该共享存储器区域的物理地址被映射到各处理21、22的逻辑地址,从而可从各处理21、22的各线程31a、31b、32a、32b向共享存储器区域进行访问。如上所述,根据上述实施方式3,主控制器2进行以下动作(i)在写入侧处理21 中将一个带数据存储在RAM 3中,(ii)在写入侧线程31a中每当对一个带数据的写入请求进行排队时发送事件,(iv)当向HDD 4的带数据的写入完成时,在读出侧线程3 中从RAM 3擦除该带数据,(ν)当顺序地执行被排队的数据读出请求时,如果RAM 3中有读出对象的带数据,则在文件读出线程32b中从RAM 3读出带数据而不是从HDD 4读出该带数据,(vi) 如果RAM 3中没有该带数据,则使HDD控制器14从HDD 4中读出该带数据。由此,如果RAM 3中剩有带数据,则能够立刻使用RAM 3上的带数据。因此,能够以比从HDD 4的读出更短的時间读出数据,能够减少数据读出时的延迟。另外,根据上述实施方式3,主控制器2在预定定时从队列中删除与已从RAM 3读出的带数据相关的数据写入请求。由此,能够避免由虽然不经过HDD 4而从RAM 3读出了带数据但仍残留在队列中的数据写入请求引起的处理延迟。此外,上述各实施方式是本发明优选的例子,但本发明不限定于此,可在不脱离本发明主旨的范围内进行各种变形、变更。例如,在上述实施方式3中,如果在读出侧线程3 中正当从RAM 3读出带数据时在写入侧完成了该带数据向HDD 4的写入,则主控制器2也可以在读出侧线程32a中的带数据的读出完成之后,在写入侧线程31a中从RAM 3删除该带数据。例如,通过排他地控制向带数据的存储区域的访问,能够实现这样的处理。另外,在上述各实施方式中,主控制器2也可以在向HDD 4写入数据之前压缩数据,在从HDD 4读出数据之后解压缩数据。作为压缩、解压缩方式可采用JPEGCJoint Photographic Experts Group, S^^iC^l) ^5^>RLE(Run Length Encoding, SffMIIe 码)方式等。另外,在上述各实施方式中,从写入侧向读出侧通知的文件标识符可使用文件句柄。另外,在上述各实施方式中,主控制器2使用文件系统61进行对HDD 4的数据读写,但也可以没有文件系统61。此时,可使用存储1页量的带数据的HDD 4上的存储区域的识别信息(例如,地址和大小等),来代替文件标识符。另外,在上述各实施方式,写入侧处理21的应用程序和读出侧处理22的应用程序也可以是分别独立的程序。另外,在上述各实施方式中,存储装置采用了 HDD 4,但也可以采用使用了 SSD(Solid State Drive,固态硬盘)等半导体存储器的存储装置。另外,在上述各实施方式中,写入侧以及读出侧的处理各为一个,但在写入侧以及读出侧的任一侧都可以生成多个同样的处理。即使在此情况下,实施方式2、3中的队列系统91 一个已足以。另外,在上述各实施方式中,通过单个主控制器2进行了写入侧以及读出侧两者的处理,但在具有多个处理元件的处理器中也可以分别进行写入侧以及读出侧的处理。另外,在上述各实施方式中,对划分成带数据的图像数据进行了处理,但本发明也可应用于将其它类型的数据划分为预定大小的块并对每个块进行处理的装置。本发明可应用于例如复印机、数码复合机等图像形成装置中的图像处理装置。以上,根据本申请公开的实施方式,在向储存装置写入数据前,将用于缓冲的存储区域的标识符传递给读出侧处理,从而能够与写入侧处理独立地在读出侧处理中开始数据读出,因此即使在数据写入中途也能够进行数据读出。从而能够减少由于向储存装置缓冲数据而引起的后阶段处理的延迟。
14
另外,将预定单位的数据划分而得的一个个数据块可在完成写入后立即读出。因此,能够减少由于向储存装置缓冲数据而引起的处理的延迟。另外,能够通过文件系统对用于缓冲的存储区域进行管理,能够从各个处理简单地访问储存装置内的数据。另外,在打印机、复印机以及数码复合机等图像形成装置中,能够简单地访问有关图像处理的数据。
权利要求
1.一种数据处理装置,包括储存装置控制器,其将一系列的多个数据块写入到储存装置,并从所述储存装置读出所述一系列的多个数据块,其中所述一系列的多个数据块构成预定单位的数据;以及处理器,其控制所述储存装置控制器, 所述数据处理装置的特征在于, 所述处理器生成写入侧处理以及读出侧处理,在从所述写入侧处理向所述读出侧处理通知所述储存装置中的存储区域的标识符之后,使用所述写入侧处理使得所述储存装置控制器将所述一系列的多个数据块顺序地写入到所述存储区域,当在所述读出侧处理中接收到所述标识符时,使用所述读出侧处理使得所述储存装置控制器从与该标识符对应的所述存储区域中读出所述一系列的多个数据块。
2.如权利请求1所述的数据处理装置,其特征在于, 所述处理器每当有一个数据块被写入时就在所述写入侧处理中发送事件, 当在所述读出侧处理中接收所述标识符后,使用所述读出侧处理使得所述储存装置控制器等待进行从与该标识符对应的所述存储区域的所述一系列的多个数据块的读出,当在所述读出侧处理中在所述等待状态下接收到所述事件时,使用所述读出侧处理使得所述储存装置控制器从所述存储区域中读出一个数据块。
3.如权利请求1所述的数据处理装置,其特征在于, 所述处理器在所述写入侧处理中生成第1线程以及第3线程, 在所述读出侧处理中生成第2线程以及第4线程,在从所述第1线程向所述第2线程通知了所述储存装置中的存储区域的标识符后,在所述第1线程中将与所述一系列的多个数据块中的每一个相关的数据写入请求顺序地排队,使用所述第3线程使所述储存装置控制器按照被排队的所述数据写入请求的顺序写入所述一系列的多个数据块,当在所述第2线程中接收到所述标识符时,将与所述一系列的多个数据块中的每一个相关的数据读出请求顺序地排队,使用所述第4线程使所述储存装置控制器按照被排队的所述数据读出请求的顺序读出所述一系列的多个数据块。
4.如权利要求3所述的数据处理装置,其特征在于, 所述处理器每当有一个数据块被写入时,就通过所述第一线程发送事件,当在所述第2线程中接收到所述事件时,使用所述第4线程使所述储存装置控制器从所述存储区域中读出一个数据块。
5.如权利要求3所述的数据处理装置,其特征在于,所述数据处理装置包括存储所述一系列的多个数据块的存储器,所述处理器在所述第3线程中将所述数据块存储到所述存储器中, 每当在所述第1线程中将所述数据块的数据写入请求排队时,就发送事件, 当向所述储存装置的所述数据块的写入完成时,在所述第3线程中从所述存储器擦除所述数据块,当顺序地执行所述被排队的所述数据读出请求时,如果所述存储器中存在所述数据块,则在所述第4线程中从所述存储器读出该数据块,如果所述存储器中没有所述数据块, 则使用所述第4线程使所述储存装置控制器从所述存储装置中读出所述数据块。
6.如权利要求3所述的数据处理装置,其特征在于,所述存储器是所述写入侧处理以及所述读出侧处理的共享存储器, 在所述写入侧处理中生成的所述数据写入请求与在所述读出侧处理中生成的所述数据读出请求以能够识别是数据读出还是数据写入的状态被登记到同一队列中, 排他地控制所述队列,使得同时只能从一个处理访问该队列。
7.如权利要求3所述的数据处理装置,其特征在于,所述数据处理装置包括存储所述一系列的多个数据块的存储器,所述一系列的多个数据块是构成一个文档内的任一页图像数据的多个带数据,所述存储器存储表示所述文档内的各页的页节点数据,所述多个带数据是针对所述文档内的各页而设置的链接列表,某页的所述页节点数据具有向关于该页的所述多个带数据的起始位置的链接。
8.如权利要求7所述的数据处理装置,其特征在于,所述处理器使用所述第3线程在所述页节点数据中确定所述多个带数据的起始位置, 并追寻所述链接列表,使所述储存装置控制器写入所述多个带数据。
9.如权利要求7所述的数据处理装置,其特征在于,所述处理器在向所述存储器存储1页量的所述多个带数据时,确保所述多个带数据的存储区域,当该页的写入完成时释放所述存储区域,如果所述存储器的剩余容量不够,则在释放了与其它页相关的所述多个带数据的存储区域时确保所述多个带数据的存储区域。
10.如权利要求3所述的数据处理装置,其特征在于,所述数据处理装置包括存储所述一系列的多个数据块的存储器, 所述处理器在所述第3线程中将所述数据块存储到所述存储器中, 在所述第1线程中每当将所述数据块的数据写入请求排队时发送事件, 当向所述存储装置的所述数据块的写入完成时,在所述第3线程中从所述存储器中擦除所述数据块,当顺序地执行所述被排队的所述数据读出请求时,如果所述存储器中存在所述数据块,则在所述第4线程中从所述存储器读出该数据块,如果所述存储器中没有所述数据块, 则使用所述第4线程使所述储存装置控制器从所述储存装置读出所述数据块,在预定定时从队列中删除与已从所述存储器读出的数据块相关的所述数据写入请求。
11.如权利要求10所述的数据处理装置,其特征在于,当完成了一个文档的数据的读出时,所述处理器从队列中删除与已从所述存储器读出的数据块相关的所述数据写入请求。
12.如权利要求1至11中任一项所述的数据处理装置,其特征在于, 所述一系列的多个数据块被写入到所述储存装置的文件中,所述存储区域的标识符是所述文件的标识符。
13.如权利要求1至11中任一项所述的数据处理装置,其特征在于, 所述一系列的多个数据块是构成1页图像数据的多个带数据,所述存储装置是在针对所述图像数据的图像处理之前或之后临时存储所述图像数据的缓冲器。
14.一种数据处理方法,其特征在于, 储存装置控制器将构成预定单位的数据的一系列的多个数据块写入到储存装置,从所述储存装置读出所述一系列的多个数据块,处理器生成写入侧处理以及读出侧处理,在从所述写入侧处理向所述读出侧处理通知所述储存装置中的存储区域的标识符之后,使用所述写入侧处理使得所述储存装置控制器将所述一系列的多个数据块顺序地写入到所述存储区域,当在所述读出侧处理中接收到所述标识符时,使用所述读出侧处理使得所述储存装置控制器从与该标识符对应的所述存储区域中读出所述一系列的多个数据块。
全文摘要
本发明涉及对储存装置进行数据块的读写的数据处理装置以及数据处理方法。数据处理装置包括储存装置控制器,其将构成预定单位的数据的一系列的多个数据块写入到储存装置,并从储存装置读出一系列的多个数据块;以及处理器,其控制储存装置控制器。处理器生成写入侧处理以及读出侧处理,在从写入侧处理向读出侧处理通知储存装置中的存储区域的标识符之后,使用写入侧处理使得储存装置控制器将一系列的多个数据块顺序地写入到存储区域,并且当在读出侧处理中接收到标识符时,使用读出侧处理使得储存装置控制器从与该标识符对应的存储区域中读出一系列的多个数据块。通过如此构成,能够减少由于向储存装置进行数据缓冲而引起的后阶段处理的延迟。
文档编号H04N1/00GK102193882SQ20101061190
公开日2011年9月21日 申请日期2010年12月17日 优先权日2010年3月15日
发明者原博幸 申请人:京瓷美达株式会社