JP2017016285A - Data control apparatus which shares buffer among plural data processing units, and control method - Google Patents

Data control apparatus which shares buffer among plural data processing units, and control method Download PDF

Info

Publication number
JP2017016285A
JP2017016285A JP2015130617A JP2015130617A JP2017016285A JP 2017016285 A JP2017016285 A JP 2017016285A JP 2015130617 A JP2015130617 A JP 2015130617A JP 2015130617 A JP2015130617 A JP 2015130617A JP 2017016285 A JP2017016285 A JP 2017016285A
Authority
JP
Japan
Prior art keywords
data
intermediate buffer
buffer
status information
unit
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2015130617A
Other languages
Japanese (ja)
Other versions
JP6548483B2 (en
Inventor
智之 川本
Tomoyuki Kawamoto
智之 川本
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Canon Inc
Original Assignee
Canon Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Canon Inc filed Critical Canon Inc
Priority to JP2015130617A priority Critical patent/JP6548483B2/en
Publication of JP2017016285A publication Critical patent/JP2017016285A/en
Application granted granted Critical
Publication of JP6548483B2 publication Critical patent/JP6548483B2/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Abstract

PROBLEM TO BE SOLVED: To provide fast data communication which allows plural arithmetic units to share the data of an intermediate buffer.SOLUTION: The present invention relates to a data control apparatus equipped with plural intermediate buffer (BF) control means. The intermediate BF control means comprises: input means for controlling data transfer from a DRAM to data processing means via an intermediate BF; output means for controlling data transfer from the data processing means to the DRAM via an intermediate BF; and synchronous execution means for controlling the operation of the input and output means, according to each BF status information set. The synchronous execution means, upon reception of an execution completion notification from the input means, sets the BF status information of the input means to a write-in status; and upon reception of an execution completion notification from the output means, sets the BF status information of the output means to a read-out status. The synchronous execution means transmits the BF status information mutually with the synchronous execution means of other intermediate BF control means when an intermediate BF is shared, and transmits the BF status information of the output means mutually with the BF status information of the input means such that the BF status information is updated by a synchronization signal when the intermediate BF is not shared.SELECTED DRAWING: Figure 3

Description

本発明は、データ処理装置及びその制御方法に関し、特に、データ処理部へ供給するデータを保持するバッファを、複数のデータ処理部で共有する場合のデータ制御装置、制御方法に関する。   The present invention relates to a data processing device and a control method thereof, and more particularly to a data control device and a control method in the case where a buffer that holds data to be supplied to a data processing unit is shared by a plurality of data processing units.

システムバスにCPU(Central Processing Unit)、DRAM(Random Access Memory)、データ処理部など様々なモジューが接続されている場合、システムバス上のデータ通信が多くなると、システムバスの帯域が圧迫され、スムーズなデータ通信を阻害してしまう。そこで、例えばシングルコアプロセッサではキャッシュメモリにDRAM上のデータを移し、キャッシュメモリとコアの間でデータ通信することでDRAMとコアの間で行われるデータ通信を低減している。しかし、複数のシングルコアプロセッサがキャッシュ上のデータを共有するにはDRAMを介して通信する必要がある。   When various modules such as CPU (Central Processing Unit), DRAM (Random Access Memory), and data processing unit are connected to the system bus, if the data communication on the system bus increases, the bandwidth of the system bus is compressed and smooth. Data communication will be hindered. Thus, for example, in a single core processor, data communication between the DRAM and the core is reduced by transferring data on the DRAM to the cache memory and performing data communication between the cache memory and the core. However, in order for a plurality of single core processors to share data on the cache, it is necessary to communicate via DRAM.

このため、複数のコア間でデータを共有する場合には、DRAMとの通信が肥大化してシステムバスの帯域を圧迫してしまう。そこで、マルチコアプロセッサのように複数のコアでキャッシュメモリのデータを共有するコヒーレンシ制御を行い、システムバス上でのデータ通信を低減するといった方法が開発されている(特許文献1)。また、特許文献2に示されるCELLプロセッサでもシステムバスとのデータ通信を低減する施策がなされている。   For this reason, when data is shared among a plurality of cores, communication with the DRAM is enlarged, and the bandwidth of the system bus is compressed. Therefore, a method has been developed in which coherency control is performed in which cache memory data is shared by a plurality of cores, such as a multi-core processor, to reduce data communication on the system bus (Patent Document 1). The CELL processor disclosed in Patent Document 2 also takes measures to reduce data communication with the system bus.

CELLプロセッサは演算部とLS(Local Store)を持つSPE(Synergistic Processor Element)を複数搭載し、これらはSPE間で高速なデータ通信を行うEIB(Element Interconnect Bus)で接続されている。また、SPEがDRAMとデータ通信する場合はEIBに接続されるMIC(Memory Interface Controller)からシステムバスを介して行われる。このような構成であることから、あるSPEのLSに保持されているデータを他のSPEのLSに受け渡す場合は、EIBを介して行われる。つまり、SPE間ではシステムバスとは独立した高速データ通信バスのEIBが用いられるため、システムバス上のデータ通信を低減する事が出来る。   The CELL processor includes a plurality of SPEs (Synergistic Processor Elements) having an arithmetic unit and an LS (Local Store), and these are connected by an EIB (Element Interconnect Bus) that performs high-speed data communication between the SPEs. Further, when the SPE performs data communication with the DRAM, it is performed from a MIC (Memory Interface Controller) connected to the EIB via the system bus. Because of such a configuration, when data held in the LS of a certain SPE is transferred to the LS of another SPE, it is performed via the EIB. That is, since the EIB, which is a high-speed data communication bus independent of the system bus, is used between the SPEs, data communication on the system bus can be reduced.

特許第3378270号公報Japanese Patent No. 3378270 特許第4719655号公報Japanese Patent No. 4719655

しかしながら、マルチコアプロセッサではコヒーレンシ制御を行う際、コヒーレンシ制御に数クロックサイクルの制御が必要となり、データ共有のオーバーヘッドとなり得た。また、CELLプロセッサではあるSPEのLSで保持しているデータを他のSPEが参照するには、EIBを介したデータ通信が必要となるため、データ通信制御に多くのクロックサイクルを消費していた。
本発明は、上記のような課題を鑑みて、ローカルメモリを持つ系を複数搭載するシステムでも簡易な構成で高速なデータ共有を行うバッファの制御方法及び制御装置を提供する。
However, in multi-core processors, when performing coherency control, control of several clock cycles is required for coherency control, which may be an overhead of data sharing. In addition, since the CELL processor requires data communication via the EIB in order for other SPEs to refer to data held in the LS of a certain SPE, many clock cycles are consumed for data communication control. .
In view of the above-described problems, the present invention provides a buffer control method and control apparatus that perform high-speed data sharing with a simple configuration even in a system that includes a plurality of systems having local memories.

複数の中間バッファ制御手段を備えるデータ制御装置であって、
前記中間バッファ制御手段は、
DRAMから中間バッファへのデータ転送および前記中間バッファからデータ処理手段へのデータ転送を制御する入力手段と、
前記データ処理手段から前記中間バッファへのデータ転送および前記中間バッファから前記DRAMへのデータ転送を制御する出力手段と、
前記入力手段および前記出力手段のバッファ状態情報を各々保持し、前記バッファ状態情報に応じて、前記入力手段および前記出力手段の動作を制御する同期実行手段とを備え、
前記同期実行手段は、
前記入力手段から実行完了通知を受け取ると、前記入力手段のバッファ状態情報を書込状態と設定し、
前記出力手段から実行完了通知を受け取ると、前記出力手段のバッファ状態情報を読出状態と設定し、
他の中間バッファ制御手段と中間バッファを共有する場合には、該他の中間バッファ制御手段の同期実行手段とバッファ状態情報を相互に送信し、
他の中間バッファ制御手段と中間バッファを共有しない場合には、前記入力手段のバッファ状態情報と前記出力手段のバッファ状態情報を相互に送信し、
同期信号によってそれぞれの同期実行手段のバッファ状態情報を更新する。
A data control device comprising a plurality of intermediate buffer control means,
The intermediate buffer control means includes
Input means for controlling data transfer from the DRAM to the intermediate buffer and data transfer from the intermediate buffer to the data processing means;
Output means for controlling data transfer from the data processing means to the intermediate buffer and data transfer from the intermediate buffer to the DRAM;
Synchronization holding means for holding buffer status information of the input means and the output means, respectively, and controlling operations of the input means and the output means according to the buffer status information,
The synchronization execution means includes
When the execution completion notification is received from the input means, the buffer status information of the input means is set to the write state,
When the execution completion notification is received from the output means, the buffer status information of the output means is set as a read state,
When the intermediate buffer is shared with other intermediate buffer control means, the synchronization execution means of the other intermediate buffer control means and the buffer status information are mutually transmitted,
When the intermediate buffer is not shared with other intermediate buffer control means, the buffer status information of the input means and the buffer status information of the output means are sent to each other,
The buffer status information of each synchronization execution means is updated by the synchronization signal.

複数の中間バッファ制御部にて、中間バッファの状態情報を保持し、中間バッファ状態情報の書込状態信号と読出状態信号、同期信号を各中間バッファ制御部で相互に通信し、同期信号を相互に受信したタイミングで中間バッファ状態情報を更新する。これにより、簡易な構成で複数の中間バッファ制御部で1つの中間バッファを共有でき、高速なデータ共有が可能となる。   A plurality of intermediate buffer control units hold the intermediate buffer state information, and the intermediate buffer control unit communicates the write state signal, the read state signal, and the synchronization signal of the intermediate buffer state information to each other. The intermediate buffer status information is updated at the timing received at the time. As a result, one intermediate buffer can be shared by a plurality of intermediate buffer control units with a simple configuration, and high-speed data sharing becomes possible.

本発明における実施例の画像処理装置を示すブロック図である。It is a block diagram which shows the image processing apparatus of the Example in this invention. 画像データの説明図である。It is explanatory drawing of image data. 画像処理部の詳細な構成を示すブロック図である。It is a block diagram which shows the detailed structure of an image process part. 画像入力部と画像出力部の詳細な構成を示すブロック図である。It is a block diagram which shows the detailed structure of an image input part and an image output part. 同期実行部の詳細な構成を示すブロック図である。It is a block diagram which shows the detailed structure of a synchronous execution part. 同期実行のフローチャートである。It is a flowchart of synchronous execution. 入力制御のフローチャートである。It is a flowchart of input control. 出力制御のフローチャートである。It is a flowchart of output control. 実施例1において中間バッファを共有した場合の動作を示す図である。FIG. 10 is a diagram illustrating an operation when an intermediate buffer is shared in the first embodiment. 実施例1において中間バッファを共有した場合の動作を示す図である。FIG. 10 is a diagram illustrating an operation when an intermediate buffer is shared in the first embodiment. 実施例2において中間バッファを共有した場合の動作を示す図である。FIG. 10 is a diagram illustrating an operation when an intermediate buffer is shared in the second embodiment. 実施例2において中間バッファを共有した場合の動作を示す図である。FIG. 10 is a diagram illustrating an operation when an intermediate buffer is shared in the second embodiment. 実施例2において中間バッファを共有した場合の動作を示す図である。FIG. 10 is a diagram illustrating an operation when an intermediate buffer is shared in the second embodiment. 実施例3における同期実行部の詳細な構成を示す図である。FIG. 10 is a diagram illustrating a detailed configuration of a synchronization execution unit according to a third embodiment. 実施例3における同期実行のフローチャートである。10 is a flowchart of synchronization execution in the third embodiment. 実施例3における入力制御のフローチャートである。10 is a flowchart of input control in the third embodiment. 実施例3における出力制御のフローチャートである。10 is a flowchart of output control in Embodiment 3. 出力画像が入力画像に比べて画素数が減少する場合に関する図である。It is a figure regarding the case where the number of pixels decreases compared with an input image in an output image. 複数の中間バッファが並列動作する場合の効果を説明する図である。It is a figure explaining the effect when a plurality of intermediate buffers operate in parallel.

以下、図面を参照して本発明の実施形態を説明する。ただし、本発明は以下の実施形態に限定されるものではない。
<実施例1>
(画像処理装置)
図1は、本発明の第1の実施形態における画像処理装置の一構成例を示すブロック図である。画像処理装置100は、システム制御部110、スキャナ制御部120、画像処理部130、プリンタ制御部140からなる。
システム制御部110は、画像処理装置のシステムバス170に接続された各モジュールを制御するCPU111、画像データや各モジュールの設定値など、一時的なデータを保持するDRAM112、後述する制御用のプログラムを保持するROM113からなる。
Hereinafter, embodiments of the present invention will be described with reference to the drawings. However, the present invention is not limited to the following embodiments.
<Example 1>
(Image processing device)
FIG. 1 is a block diagram illustrating a configuration example of an image processing apparatus according to the first embodiment of the present invention. The image processing apparatus 100 includes a system control unit 110, a scanner control unit 120, an image processing unit 130, and a printer control unit 140.
The system control unit 110 includes a CPU 111 that controls each module connected to the system bus 170 of the image processing apparatus, a DRAM 112 that stores temporary data such as image data and setting values of each module, and a control program described later. It consists of a ROM 113 that holds it.

スキャナ制御部120は接続されているスキャナ121を制御し、得られた画像データをDMA(Direct Memory Access)転送にてDRAM112に書き出すモジュールである。CPU111からスキャン開始命令を受けると、スキャナ121を起動し、読み取り媒体をスキャンする。スキャナ121はスキャンによってCCDセンサなどから得られたアナログ画像信号に対してアナログ/デジタル変換を行い、デジタル画像データ(以下、画像データと記載する。)を生成する。この画像データをスキャナ制御部120が受信し、DMA転送によってDRAM112に書き出す。以上のスキャン処理を終えたら、スキャン終了信号をCPU111や画像処理部130に送信する。   The scanner control unit 120 is a module that controls the connected scanner 121 and writes the obtained image data to the DRAM 112 by DMA (Direct Memory Access) transfer. When a scan start command is received from the CPU 111, the scanner 121 is activated to scan the reading medium. The scanner 121 performs analog / digital conversion on an analog image signal obtained from a CCD sensor or the like by scanning to generate digital image data (hereinafter referred to as image data). This image data is received by the scanner control unit 120 and written to the DRAM 112 by DMA transfer. When the above scan processing is completed, a scan end signal is transmitted to the CPU 111 and the image processing unit 130.

プリンタ制御部140は接続されているプリンタ141を制御し、DRAM上の画像データを印刷媒体に記録させるモジュールである。CPU111からプリント開始命令を受けると、DMA転送でDRAM112からプリント用の画像データを取り出し、プリンタ141を起動する。そして、プリンタ141が備えるプリントヘッダなどからインクを吐出し、印刷媒体に画像を記録する。以上のプリント処理を終えたらプリント終了信号をCPU111に送信する。   The printer control unit 140 is a module that controls the connected printer 141 and records image data on the DRAM on a print medium. When a print start command is received from the CPU 111, image data for printing is taken out from the DRAM 112 by DMA transfer, and the printer 141 is activated. Then, ink is ejected from a print header or the like provided in the printer 141, and an image is recorded on the print medium. When the above print processing is completed, a print end signal is transmitted to the CPU 111.

ここで、扱う画像データはUSBメモリやフラッシュカードなどから読み書きされてもよく、図1のようにシステムバス170にUSB制御部150やメディア制御部160を接続しておき、こちらから画像データをDRAM112に転送しても良い。いずれにしても、これらのモジュールは色々な形で実現できることは明らかで、図示している構成に限定されるものではない。   Here, the image data to be handled may be read and written from a USB memory, a flash card, or the like, and the USB control unit 150 or the media control unit 160 is connected to the system bus 170 as shown in FIG. You may forward to. In any case, it is obvious that these modules can be realized in various forms, and the present invention is not limited to the illustrated configuration.

画像処理部130は本発明の特徴である中間バッファの制御を含む画像処理制御部131とスキャナ用画像処理回路群132、プリンタ用画像処理回路群133で構成されるデータ制御装置である。画像処理部130は、CPU111から画像処理実行開始の命令を受けると、画像処理制御部131がDMA転送によってDRAM上の画像データの一部を取得し、後に説明する中間バッファに書きこむ。そして、中間バッファで保持しているデータをスキャナ用画像処理回路群132やプリンタ用画像処理回路群133に転送して画像処理を実行する。その後、中間バッファに画像処理結果を書き出し、DMA転送にて中間バッファに保持されている画像処理結果をDRAM112に書き戻す。以上の操作を、画像データ全体に適用する事で画像処理を完了する。   The image processing unit 130 is a data control device including an image processing control unit 131 including control of an intermediate buffer, which is a feature of the present invention, a scanner image processing circuit group 132, and a printer image processing circuit group 133. When the image processing unit 130 receives a command to start image processing execution from the CPU 111, the image processing control unit 131 acquires part of the image data on the DRAM by DMA transfer and writes it in an intermediate buffer described later. Then, the data held in the intermediate buffer is transferred to the scanner image processing circuit group 132 and the printer image processing circuit group 133 to execute image processing. Thereafter, the image processing result is written to the intermediate buffer, and the image processing result held in the intermediate buffer by DMA transfer is written back to the DRAM 112. The image processing is completed by applying the above operation to the entire image data.

ここで、一例としてスキャン処理とプリント処理を連続して実行する際の画像処理装置の動作を簡単に説明する。説明を簡単にするため、DRAM、中間バッファは画像データを保持できるだけ容量があるものとする。まず、CPU111はROM113からプログラムを読み出し、実行を開始する。CPU111はプログラムに従って、スキャナ制御部120、画像処理部130、プリンタ制御部140の設定を行う。   Here, as an example, the operation of the image processing apparatus when the scan process and the print process are continuously executed will be briefly described. In order to simplify the explanation, it is assumed that the DRAM and the intermediate buffer have enough capacity to hold image data. First, the CPU 111 reads a program from the ROM 113 and starts execution. The CPU 111 sets the scanner control unit 120, the image processing unit 130, and the printer control unit 140 according to the program.

その後、スキャナ制御部120を起動し、スキャンした画像データをDRAM112に書き込む。その後、画像処理部130を起動し、DRAM112に保持されている画像データに対して適切な画像処理を行わせて、処理結果をDRAM112に書き出す。最後に、プリンタ制御部140を起動し、画像処理されたDRAM上の画像データを読み出し、印刷する。   Thereafter, the scanner control unit 120 is activated and the scanned image data is written into the DRAM 112. Thereafter, the image processing unit 130 is activated, and appropriate image processing is performed on the image data held in the DRAM 112, and the processing result is written to the DRAM 112. Finally, the printer control unit 140 is activated to read and print image data on the DRAM subjected to image processing.

以上のようにしてスキャン処理、プリント処理を実行する。また、システム制御部110はプログラムに従って各モジュールを制御するもので、適切なプログラムを用いることで種々の処理を実現する事が出来るものである。
続けて、DRAM112や中間バッファの容量が画像データ200の全体を保持できない容量における動作について説明する。DRAM112や中間バッファの容量が少ない場合は、画像データを分割して画像処理を行う。
The scan process and the print process are executed as described above. The system control unit 110 controls each module in accordance with a program, and can implement various processes by using an appropriate program.
Next, an operation in a capacity where the capacity of the DRAM 112 and the intermediate buffer cannot hold the entire image data 200 will be described. When the capacity of the DRAM 112 or the intermediate buffer is small, image processing is performed by dividing the image data.

(バンド処理)
家庭用プリンタのように安価に提供しなければならない機器では、ハードウェアのコストを抑えるため、1枚のデジタル画像データ全体を記憶できるだけの容量のメモリを実装できない場合がある。そのため、1枚のデジタル画像データを複数の短冊状のバンド領域に分割し、逐次的にバンド領域のみをメモリ(以下、バンドメモリと称する)に展開して各種の画像処理を施す、いわゆるバンド処理が行われることがある。
(Band processing)
In a device that needs to be provided at a low cost such as a home printer, there is a case where it is not possible to mount a memory having a capacity enough to store one piece of digital image data in order to reduce hardware costs. Therefore, one digital image data is divided into a plurality of strip-shaped band areas, and only the band areas are sequentially developed in a memory (hereinafter referred to as a band memory) to perform various image processing, so-called band processing. May be performed.

ここでは、DRAMは図2に示すバンド領域210の全体を保持することができるだけの容量を持つが、中間バッファの容量はバンド領域の一部しか保持できない容量である場合の動作について説明する。
まず、前述と同様にCPU111はROM113からプログラムを読み出し、スキャナ制御部120、画像処理部130、プリンタ制御部140の設定を行う。その後、スキャナ制御部120を起動し、画像データの一部分であるバンド領域210をスキャンしてDRAM112に書き込む。
Here, although the DRAM has a capacity that can hold the entire band area 210 shown in FIG. 2, the operation when the capacity of the intermediate buffer is a capacity that can hold only a part of the band area will be described.
First, as described above, the CPU 111 reads a program from the ROM 113 and sets the scanner control unit 120, the image processing unit 130, and the printer control unit 140. Thereafter, the scanner control unit 120 is activated to scan the band area 210 which is a part of the image data and write it in the DRAM 112.

その後、画像処理部130を起動し、バンド領域210に対して画像処理を行う。ただし、画像処理部130の中間バッファはバンド領域の一部を保持できるだけの容量しか持たないため、バンド領域210をバンド分割領域A230、バンド分割領域B231及びバンド分割領域C232の3つに分割して画像処理を適用する。(図2(h)〜(j))   Thereafter, the image processing unit 130 is activated to perform image processing on the band region 210. However, since the intermediate buffer of the image processing unit 130 has a capacity sufficient to hold a part of the band area, the band area 210 is divided into three parts, a band division area A230, a band division area B231, and a band division area C232. Apply image processing. (Fig. 2 (h) to (j))

まず、画像処理部130はバンド分割領域A230をDRAM112から読み出し、画像処理を適用した画像データをDRAM112に書き出す。
続けて、画像処理部130は次のバンド分割領域B231をDRAM112から読み出し、画像処理を適用した画像データをDRAM112に書き出す。
これを繰り返すことでバンド領域210に対する画像処理を完了する。
その後、プリンタ制御部140を起動し、DRAM上の画像処理されたバンド領域を読み出し、印刷する。
First, the image processing unit 130 reads the band division area A230 from the DRAM 112, and writes image data to which image processing is applied to the DRAM 112.
Subsequently, the image processing unit 130 reads the next band division region B231 from the DRAM 112, and writes image data to which image processing is applied to the DRAM 112.
By repeating this, the image processing for the band region 210 is completed.
Thereafter, the printer control unit 140 is activated to read and print the image-processed band area on the DRAM.

このようにしてバンド領域210(図2(a))の処理が終わったら、続けてバンド領域211(図2(b))をスキャナで読み込み、バンド領域210の処理と同様にバンド領域211を分割して画像処理を行う。
以上の処理を繰り返し、画像全体に適用する事で、DRAM112や中間バッファの容量が画像データ200の全体を保持できない容量の場合でも、画像200全体に対して画像処理を適用する事が出来る。
When the processing of the band area 210 (FIG. 2A) is completed in this way, the band area 211 (FIG. 2B) is read by the scanner, and the band area 211 is divided in the same manner as the processing of the band area 210. Image processing.
By repeating the above processing and applying it to the entire image, the image processing can be applied to the entire image 200 even when the capacity of the DRAM 112 or the intermediate buffer is a capacity that cannot hold the entire image data 200.

(画像処理部)
次に図3を用いて画像処理部130の詳細を説明する。
画像処理部130は、上述の通り、画像処理制御部131と、スキャナ用画像処理回路群132と、プリンタ用画像処理回路群133とからなるデータ制御装置である。スキャナ用画像処理回路群132と、プリンタ用画像処理回路群133とは、データ処理部としての役割を担う。
(Image processing unit)
Next, details of the image processing unit 130 will be described with reference to FIG.
As described above, the image processing unit 130 is a data control device including the image processing control unit 131, the scanner image processing circuit group 132, and the printer image processing circuit group 133. The scanner image processing circuit group 132 and the printer image processing circuit group 133 serve as a data processing unit.

スキャナ用画像処理回路群132は、接続するスキャナ121ごとのCCDセンサ特性を補正するためのガンマ変換や、スキャン時のノイズを除去するフィルタ等の画像処理回路132−1〜132−nを含む。スキャナ用画像処理回路群132は、中間バッファ制御部a320と接続され、スキャン処理実行時には中間バッファ制御部a320から、各画像処理回路に画像データが入力され、各画像処理回路で演算した結果を中間バッファ制御部a320に出力する。   The scanner image processing circuit group 132 includes image processing circuits 132-1 to 132-n such as a gamma conversion for correcting CCD sensor characteristics for each scanner 121 to be connected and a filter for removing noise at the time of scanning. The scanner image processing circuit group 132 is connected to the intermediate buffer control unit a320, and when executing scan processing, image data is input from the intermediate buffer control unit a320 to each image processing circuit, and the result calculated by each image processing circuit is intermediate. The data is output to the buffer control unit a320.

プリンタ用画像処理回路群133は、画像データを印刷用インクの色空間に変換する色空間変換や、多階調の画像データを低階調で表現する形に変換するハーフトーン処理などの画像処理回路133−1〜133−nを含む。プリンタ用画像処理回路群133は、中間バッファ制御部b330と接続され、プリント処理実行時にはスキャナ用画像処理回路群と同様に、中間バッファ制御部b330と設定コマンドや画像データの入出力を行う。   The image processing circuit group for printer 133 performs image processing such as color space conversion for converting image data into a color space for printing ink, and halftone processing for converting multi-gradation image data into a form expressing low gradation. Circuits 133-1 to 133-n are included. The printer image processing circuit group 133 is connected to the intermediate buffer control unit b330, and performs input / output of setting commands and image data to and from the intermediate buffer control unit b330 at the time of execution of print processing.

画像処理制御部131は、内蔵する中間バッファを介して、DRAM112と画像処理回路間のデータ通信を制御する回路である。画像処理制御部131は、DMAコントローラ310と、中間バッファ制御部a320と、中間バッファ制御部b330と、中間バッファ群340とで構成される。   The image processing control unit 131 is a circuit that controls data communication between the DRAM 112 and the image processing circuit via a built-in intermediate buffer. The image processing control unit 131 includes a DMA controller 310, an intermediate buffer control unit a320, an intermediate buffer control unit b330, and an intermediate buffer group 340.

DMAコントローラ310は、中間バッファ制御部a、bからのリクエストに応じてDRAM上のデータを中間バッファに書き込む操作と、中間バッファのデータをDRAM112に書き出す操作をDMA転送で行う。DRAM上のどのアドレスにアクセスするか、どの中間バッファにアクセスするかは、中間バッファ制御部a、bからのリクエストで指定される。   The DMA controller 310 performs an operation of writing data on the DRAM to the intermediate buffer and an operation of writing the data of the intermediate buffer to the DRAM 112 by DMA transfer in response to requests from the intermediate buffer control units a and b. Which address on the DRAM is accessed and which intermediate buffer is accessed are specified by a request from the intermediate buffer control units a and b.

中間バッファ群340は、画像データを一時的に保持する複数の中間バッファ342−1〜342−4と、各バッファへのアクセスリクエストを調停し、アクセス結果をリクエスト発行元へ送信するアービタ341とから構成される。
アービタ341は、中間バッファ342と、中間バッファ342へのリクエストを発行するDMAコントローラ310と、中間バッファ制御部a320と、中間バッファ制御部b330とに接続される。アービタ341はリクエスト発行元からの中間バッファ342への書き込み、読み出しリクエストを調停し、実行する。具体的には、複数のモジュールから同時に同じバッファへのアクセス要求があった場合には、優先順位の高いモジュールのアクセスから先に実行して行くといった調停を行う。ただし、調停方法についてはこれを限定するものではない。
The intermediate buffer group 340 includes a plurality of intermediate buffers 342-1 to 342-4 that temporarily hold image data, and an arbiter 341 that arbitrates access requests to each buffer and transmits an access result to the request issuer. Composed.
The arbiter 341 is connected to the intermediate buffer 342, the DMA controller 310 that issues a request to the intermediate buffer 342, the intermediate buffer control unit a320, and the intermediate buffer control unit b330. The arbiter 341 arbitrates write and read requests from the request issuer to the intermediate buffer 342 and executes them. Specifically, when there is an access request to the same buffer from a plurality of modules at the same time, arbitration is performed such that the module with higher priority is executed first. However, the arbitration method is not limited to this.

中間バッファ制御部a320は、DRAM112と中間バッファとの間の通信、中間バッファ342と画像処理回路との間の通信を制御するモジュールである。中間バッファ制御部a320は、画像入力部321と画像出力部322と、これらの設定、実行管理を行う同期実行部333とから構成される。また、中間バッファ制御部b330も同様の構成、動作であるため、以下、中間バッファ制御部a320を主として説明する。   The intermediate buffer control unit a320 is a module that controls communication between the DRAM 112 and the intermediate buffer and communication between the intermediate buffer 342 and the image processing circuit. The intermediate buffer control unit a320 includes an image input unit 321 and an image output unit 322, and a synchronization execution unit 333 that performs setting and execution management thereof. Further, since the intermediate buffer control unit b330 has the same configuration and operation, the intermediate buffer control unit a320 will be mainly described below.

(画像入力部)
画像入力部321は、同期実行部323の命令に応じて、中間バッファを操作するリクエストを発行するモジュールである。リクエストには2種類あり、1つはDRAM112から画像データを取得して中間バッファ342へ書き込むリクエストで、DMAコントローラ310に発行するものである。もう一つは、中間バッファ342に保持されている画像データを読み出し、画像処理回路132に送信するリクエストで、中間バッファ群340に発行するものである。
(Image input part)
The image input unit 321 is a module that issues a request for operating the intermediate buffer in accordance with an instruction from the synchronization execution unit 323. There are two types of requests. One is a request for acquiring image data from the DRAM 112 and writing it to the intermediate buffer 342, which is issued to the DMA controller 310. The other is a request for reading the image data held in the intermediate buffer 342 and transmitting it to the image processing circuit 132, which is issued to the intermediate buffer group 340.

図4(a)を用いて画像入力部321の詳細について説明する。
画像入力部321はDMA受信部411とパケット送信部412で構成される。
Details of the image input unit 321 will be described with reference to FIG.
The image input unit 321 includes a DMA receiver 411 and a packet transmitter 412.

DMA受信部411は、DMAコントローラ310へ発行するリクエストの制御を行う。画像処理時には、同期実行部323からDRAM上の画像データが置かれているアドレスや、どの中間バッファを利用するかが設定される。その後、同期実行部323から実行開始命令を受信すると、設定されたDRAM112のアドレス領域から所定量の画像データを取得し、中間バッファ342へ書き込むようDMAコントローラ310にリクエストを発行する。DMAコントローラ310からリクエストの実行完了を通知されたら、同期実行部323へ実行完了を通知する。   The DMA receiver 411 controls a request issued to the DMA controller 310. At the time of image processing, an address where image data on the DRAM is placed and which intermediate buffer is used are set from the synchronization execution unit 323. Thereafter, when an execution start command is received from the synchronization execution unit 323, a predetermined amount of image data is acquired from the set address area of the DRAM 112, and a request is issued to the DMA controller 310 to write to the intermediate buffer 342. When the completion of execution of the request is notified from the DMA controller 310, the execution completion is notified to the synchronization execution unit 323.

(パケット送信部)
パケット送信部412は、中間バッファ群340に発行するリクエストと、画像処理回路132へのデータ出力を制御するモジュールである。画像処理時には、同期実行部323からどのバッファを利用するか、扱う画像フォーマットや画像サイズが設定される。その後、同期実行部323からの実行開始命令を受信すると、設定されたいずれかの中間バッファ342から画像フォーマットに合わせてデータを取り出すようリクエストを生成し、中間バッファ群340に発行する。
(Packet transmitter)
The packet transmission unit 412 is a module that controls a request issued to the intermediate buffer group 340 and data output to the image processing circuit 132. At the time of image processing, the synchronization execution unit 323 sets which buffer to use and the image format and image size to be handled. Thereafter, when an execution start command is received from the synchronization execution unit 323, a request is generated to extract data from any of the set intermediate buffers 342 according to the image format, and is issued to the intermediate buffer group 340.

同時に中間バッファ群340から読み出した画像データに対して、同期実行部323から設定された画像サイズに合わせて画素位置を特定するための情報を付加したパケットデータを生成し、画像処理部132に送信する。送信を完了したら、同期実行部323へ実行完了を通知する。
ここで、パケット送信部412が画像データに付加する画素位置を特定するための情報について図2を用いて説明する。
At the same time, packet data in which information for specifying the pixel position is added to the image data read from the intermediate buffer group 340 in accordance with the image size set by the synchronization execution unit 323 is generated and transmitted to the image processing unit 132. To do. When the transmission is completed, the synchronization execution unit 323 is notified of the execution completion.
Here, information for specifying a pixel position added to the image data by the packet transmission unit 412 will be described with reference to FIG.

図2(k)は、パケット送信部412が画像処理部132に送信する画像データ240を示している。パケット送信部412は転送するデータ量として同期実行部323から主走査方向にv画素、副走査方向にh画素の画像データを扱うように設定される。パケット送信部412は画素240−1から副走査方向順に画素データを送信する。h画素目を送信したら主走査方向に1画素移動し、副走査方向に1画素目から順に送信する。   FIG. 2K shows image data 240 that the packet transmission unit 412 transmits to the image processing unit 132. The packet transmitting unit 412 is set to handle image data of v pixels in the main scanning direction and h pixels in the sub scanning direction from the synchronization execution unit 323 as the amount of data to be transferred. The packet transmission unit 412 transmits pixel data from the pixel 240-1 in the sub-scanning direction. When the h-th pixel is transmitted, one pixel is moved in the main scanning direction, and the first pixel is sequentially transmitted in the sub-scanning direction.

転送開始時、1画素目の画素240−1のデータを転送する際には、画素位置を特定するための情報として、転送開始信号とラインスタート信号を付加する。
転送終了時、最後の画素240−nのデータを送信する際には、転送終了信号とラインエンド信号を付加する。
また、副走査方向に見たときに1画素目となる画素のデータを送信する際には、ラインスタート信号のみ付加する。
副走査方向に見た時に最終画素となるh画素目の画素のデータを送信する際には、ラインエンド信号のみ付加する。
画素位置を特定するためのこれらの信号は画像処理回路、画像出力部322で利用され、画像出力部322では画像処理後の画像データのサイズを算出する際に用いる。
At the start of transfer, when data of the first pixel 240-1 is transferred, a transfer start signal and a line start signal are added as information for specifying the pixel position.
When the data of the last pixel 240-n is transmitted at the end of transfer, a transfer end signal and a line end signal are added.
In addition, when transmitting data of the first pixel when viewed in the sub-scanning direction, only the line start signal is added.
Only the line end signal is added when transmitting the data of the h-th pixel which is the final pixel when viewed in the sub-scanning direction.
These signals for specifying the pixel position are used by the image processing circuit and the image output unit 322, and the image output unit 322 uses them when calculating the size of the image data after the image processing.

(画像出力部)
画像出力部322は同期実行部323の命令に応じて、中間バッファを操作するリクエストを発行するモジュールである。リクエストには2種類あり、1つは画像処理回路132で処理した画像データを受信し、中間バッファ342に書き出すリクエストを中間バッファ群340に発行するものである。もう一つは、中間バッファ342に保持されている処理済みの画像データをDRAM112に書き出すリクエストをDMAコントローラ310に発行するものである。ここで、図4(b)を用いて画像出力部322の詳細について説明する。
画像出力部332はパケット受信部422とDMA送信部421で構成されている。
(Image output part)
The image output unit 322 is a module that issues a request to operate the intermediate buffer in accordance with a command from the synchronization execution unit 323. There are two types of requests, one for receiving image data processed by the image processing circuit 132 and issuing a request for writing to the intermediate buffer 342 to the intermediate buffer group 340. The other is to issue a request to the DMA controller 310 to write the processed image data held in the intermediate buffer 342 to the DRAM 112. Here, details of the image output unit 322 will be described with reference to FIG.
The image output unit 332 includes a packet reception unit 422 and a DMA transmission unit 421.

(パケット受信部)
パケット受信部422は、画像処理回路132からの画像データを受信し、中間バッファ群340に発行するリクエストを制御するモジュールである。画像処理時には、同期実行部323から、どの中間バッファ342を利用するかといった設定や、扱う画像フォーマットが設定される。
(Packet receiver)
The packet receiving unit 422 is a module that receives image data from the image processing circuit 132 and controls a request issued to the intermediate buffer group 340. At the time of image processing, settings such as which intermediate buffer 342 to use and an image format to be handled are set from the synchronization execution unit 323.

その後、同期実行部323から実行開始命令を受信すると、画像処理部132からの画像データを受信し、設定された画像フォーマットに合わせて中間バッファ243にデータを書き込むようリクエストを生成し、中間バッファ群340に発行する。また、画像入力部321で付加された転送終了信号を受信したら、同期実行部323へ実行完了と出力画像サイズを通知する。ここで、出力画像サイズの算出方法と利用方法について図2を用いて説明する。   Thereafter, when an execution start command is received from the synchronization execution unit 323, the image data from the image processing unit 132 is received, a request is generated to write the data to the intermediate buffer 243 in accordance with the set image format, and the intermediate buffer group Issued to 340. When the transfer end signal added by the image input unit 321 is received, the execution completion and the output image size are notified to the synchronization execution unit 323. Here, a method for calculating and using an output image size will be described with reference to FIG.

図2(l)に示す画像データ240´は、図2(k)に示す画像データ240を画像処理回路群で処理して得られた画像データであり、パケット受信部で受信される画像データを示している。画像データ240´は主走査方向にv´画素、副走査方向にh´画素の画像データである。パケット受信部422は、画素240−1´から副走査方向順に画素データ受信する。h´画素目の画素を受信したら副走査方向に1画素移動し、主走査方向に1画素目から順に受信する。   The image data 240 ′ shown in FIG. 2 (l) is image data obtained by processing the image data 240 shown in FIG. 2 (k) by the image processing circuit group, and the image data received by the packet receiving unit. Show. The image data 240 ′ is image data of v ′ pixels in the main scanning direction and h ′ pixels in the sub scanning direction. The packet receiving unit 422 receives pixel data from the pixel 240-1 ′ in the sub scanning direction. When the h'th pixel is received, the pixel is moved by one pixel in the sub-scanning direction, and received in order from the first pixel in the main scanning direction.

パケット受信部422では副走査方向に1画素目の画素を受信する際、画像入力部で付加されたラインスタート信号を検知して、受信画素数のカウントを開始する。
続けて画素240−2´、240−3´を受信するごとに受信画素数をカウントアップする。
そして、主走査方向にh´画素目の画素を受信した際には画像入力部321によって付加したラインエンド信号を検知して受信画素数のカウントアップを終了する。
このようにして、パケット受信部422は、画像処理回路で処理されて得られた出力画像のサイズとして主走査方向の画素数h´を算出する。
When the packet receiving unit 422 receives the first pixel in the sub-scanning direction, it detects the line start signal added by the image input unit and starts counting the number of received pixels.
Each time the pixels 240-2 ′ and 240-3 ′ are received, the number of received pixels is counted up.
When the h'th pixel is received in the main scanning direction, the line end signal added by the image input unit 321 is detected, and the count up of the number of received pixels is completed.
In this way, the packet receiving unit 422 calculates the number h ′ of pixels in the main scanning direction as the size of the output image obtained by processing by the image processing circuit.

その後、この画素数h´はパケット受信部422を含む画像出力部322から信号5113aにて実行制御部510に送信される。そして、実行制御部510にてDMA受信部411が複数のバンド領域を連続して処理する際のDRAM上のアドレスを算出する際の受信データ量として用いられる。算出したDRAMアドレスは実行制御部510から信号511にてDMA受信部411に設定される。
後で詳細に説明するが、スキャン処理とプリント処理を連続実行する際に、中間バッファ制御部a、bで中間バッファ342を共有する場合における出力画素数の利用方法について説明する。
まず、バンド領域に対して前段のスキャン処理を実行する。
その後、後段のプリント処理を担当する中間バッファ制御部b330で出力画像の画素数h´を算出する。
この画素数h´を前段のスキャン処理を担当する中間バッファ制御部a320の信号線5113bで受信する。
中間バッファ制御部a320は、受信した値(画素数h´)を用いて次に取得するバンド領域のDRAM上のアドレスを算出する。
Thereafter, the pixel number h ′ is transmitted from the image output unit 322 including the packet receiving unit 422 to the execution control unit 510 as a signal 5113a. The execution control unit 510 uses the received data amount when calculating the address on the DRAM when the DMA reception unit 411 continuously processes a plurality of band areas. The calculated DRAM address is set in the DMA receiver 411 by the signal 511 from the execution controller 510.
As will be described in detail later, a method of using the number of output pixels when the intermediate buffer control units a and b share the intermediate buffer 342 when the scan process and the print process are continuously executed will be described.
First, the preceding scan process is executed for the band region.
Thereafter, the intermediate buffer control unit b330 in charge of the subsequent printing process calculates the pixel number h ′ of the output image.
The number h ′ of pixels is received by the signal line 5113b of the intermediate buffer control unit a320 that is in charge of the preceding scan process.
The intermediate buffer control unit a320 calculates an address on the DRAM of the band area to be acquired next using the received value (number of pixels h ′).

具体的には、図2(e)に示すように、副走査方向にh画素のバンド領域210に対して画像処理をした結果、副走査方向にh´画素の出力画像データが得られたとする。この場合、実行制御部510は画像出力部422によって算出された画素数h´を用いて、次に処理するバンド領域を算出して、バンド領域220からh´画素分副走査方向に移動したバンド領域221を取得するよう制御する。
この仕組みにより、画像処理回路の中にフィルタのように出力画像のサイズが変化する画像処理があった場合においても、画像処理部130内で自律的にDRAM上のアドレス参照先を切り替えることによって、出力画像の連続性を確保することが出来る。つまり、出力画像の連続性を確保するために、処理するバンド領域を切り替えるごとにCPU111から、実行制御部510の設定を切り替える、という必要が無くなり、CPU111の制御を待つことなく複数のバンド領域を連続して転送する事が可能となる。
この点について以下に詳しく説明する。
Specifically, as shown in FIG. 2E, as a result of performing image processing on the band region 210 of h pixels in the sub-scanning direction, output image data of h ′ pixels in the sub-scanning direction is obtained. . In this case, the execution control unit 510 calculates the band region to be processed next by using the number of pixels h ′ calculated by the image output unit 422, and moves the band from the band region 220 by h ′ pixels in the sub-scanning direction. Control is performed to acquire the area 221.
By this mechanism, even when there is image processing in which the size of the output image changes like a filter in the image processing circuit, by autonomously switching the address reference destination on the DRAM within the image processing unit 130, The continuity of the output image can be ensured. That is, in order to ensure the continuity of the output image, it is not necessary to switch the setting of the execution control unit 510 from the CPU 111 each time the band region to be processed is switched, and a plurality of band regions can be created without waiting for control of the CPU 111. It is possible to transfer continuously.
This point will be described in detail below.

図15(a)は、入力画像データ1500と、画像処理部に入力される1つ目の入力バンド領域1511,2つ目の入力バンド領域1521を示す。
図15(b)は、画像処理部から出力される1つ目の出力バンド領域1512,2つ目の出力バンド領域1522を示す。
入力バンド領域1511(のデータ)が処理されて出力バンド領域1512(のデータ)が出力され、入力バンド領域1521が処理されて出力バンド領域1522が出力される。
また、入力バンド領域1511が入力されたら、次に入力バンド領域1521が入力される。
FIG. 15A shows input image data 1500 and a first input band area 1511 and a second input band area 1521 input to the image processing unit.
FIG. 15B shows a first output band region 1512 and a second output band region 1522 output from the image processing unit.
The input band region 1511 (data) is processed to output the output band region 1512 (data), the input band region 1521 is processed, and the output band region 1522 is output.
When the input band region 1511 is input, the input band region 1521 is input next.

図15(a)に示すように、入力バンド領域1511,1521の副走査方向の画素数はそれぞれhであり、図15(b)に示すように、出力バンド領域1512,1522の副走査方向の画素数はそれぞれh´であるとする。
図15(a)および(b)に示すように、出力バンド領域1512は、入力バンド領域1511に比べて副走査方向に上下各{(h−h´)/2}画素、この例では1画素、小さいとする。
同様に、出力バンド領域1522も、入力バンド領域1521に比べて副走査方向に上下各{(h−h´)/2}画素、この例では1画素、小さいとする。
As shown in FIG. 15 (a), the number of pixels in the sub-scanning direction of the input band regions 1511 and 1521 is h, respectively, and as shown in FIG. 15 (b), the output band regions 1512 and 1522 in the sub-scanning direction. Assume that the number of pixels is h ′.
As shown in FIGS. 15A and 15B, the output band region 1512 has {(h−h ′) / 2} pixels above and below in the sub-scanning direction as compared with the input band region 1511, and one pixel in this example. Suppose it is small.
Similarly, the output band region 1522 is smaller than the input band region 1521 by {(h−h ′) / 2} pixels above and below in the sub-scanning direction, one pixel in this example.

このような場合に、
図15(b)に示すように、出力バンド領域1512の下端の画素と出力バンド領域1522の上端の画素とが、隙間なく連続するようにするためには、
図15(a)に示すように、入力バンド領域1511と入力バンド領域1521とを(h−h´)画素、この例では2画素、オーバーラップさせる必要がある。
In such a case,
As shown in FIG. 15B, in order for the pixel at the lower end of the output band region 1512 and the pixel at the upper end of the output band region 1522 to be continuous without a gap,
As shown in FIG. 15A, it is necessary to overlap the input band region 1511 and the input band region 1521 by (h−h ′) pixels, two pixels in this example.

また、出力画像データサイズの算出方法については上記に限らず、画像処理回路群で算出して実行制御部510に設定してもよいし、実行制御部510が各画像処理回路の設定を参照して、出力画像サイズを算出するという構成にしても良い。いずれにしても、出力画像データのサイズを同期制御部で自律的に算出する方法を備えていれば良い。   Further, the method for calculating the output image data size is not limited to the above, and it may be calculated by the image processing circuit group and set in the execution control unit 510. The execution control unit 510 refers to the setting of each image processing circuit. Thus, the output image size may be calculated. In any case, it suffices to have a method for autonomously calculating the size of the output image data by the synchronization control unit.

DMA送信部421は、DMAコントローラ310へ発行するリクエストの制御を行う。画像処理時には、同期実行部323から処理した画像データを書きだすDRAM上のアドレスや、どの中間バッファを利用するかが設定される。その後、同期実行部323からの実行開始命令を受信すると、設定された中間バッファ342から所定量の画像データを取得し、DRAM112に書き出すようDMAコントローラ310にリクエストを発行する。DMAコントローラ310からリクエストの実行完了を通知されたら、同期実行部323へ実行完了を通知する。   The DMA transmission unit 421 controls a request issued to the DMA controller 310. At the time of image processing, an address on the DRAM for writing the processed image data from the synchronization execution unit 323 and which intermediate buffer to use are set. Thereafter, when an execution start command is received from the synchronization execution unit 323, a predetermined amount of image data is acquired from the set intermediate buffer 342 and a request is issued to the DMA controller 310 to write it out to the DRAM 112. When the completion of execution of the request is notified from the DMA controller 310, the execution completion is notified to the synchronization execution unit 323.

(同期実行部)
同期実行部323は、中間バッファ342の管理と、画像入力部321及び画像出力部322の実行とを制御するモジュールである。同期実行部323には、CPU111と、画像入力部321と、画像出力部322と、そして他の中間バッファ制御部330の同期実行部333とが接続される。
CPU111とは、画像処理実行開始命令の受信と、画像処理実行終了信号の送信とを行う。
画像入力部321には、画像入力部が用いるバッファや、アクセスするDRAM上のアドレス、画像データのサイズなどを設定するための信号と、画像入力部321の動作を制御するための信号とが接続される。
(Synchronous execution part)
The synchronization execution unit 323 is a module that controls the management of the intermediate buffer 342 and the execution of the image input unit 321 and the image output unit 322. The synchronization execution unit 323 is connected to the CPU 111, the image input unit 321, the image output unit 322, and the synchronization execution unit 333 of the other intermediate buffer control unit 330.
The CPU 111 receives an image processing execution start command and transmits an image processing execution end signal.
Connected to the image input unit 321 are a buffer used by the image input unit, a signal for setting an address on the DRAM to be accessed, a size of image data, and a signal for controlling the operation of the image input unit 321. Is done.

画像出力部322も同様に、画像出力部が用いるバッファや、アクセスするDRAM上のアドレス、画像データのサイズなどを設定するための信号と、画像出力部322の動作を制御するための信号とが接続される。
また、他の中間バッファ制御部330には、複数の画像処理回路群で中間バッファを共有するためのバッファ状態情報を更新するための信号と、同期信号とが接続される。
Similarly, the image output unit 322 includes a signal used for setting a buffer used by the image output unit, an address on the DRAM to be accessed, a size of the image data, and a signal for controlling the operation of the image output unit 322. Connected.
The other intermediate buffer control unit 330 is connected with a signal for updating buffer status information for sharing the intermediate buffer among a plurality of image processing circuit groups, and a synchronization signal.

図5を用いて同期実行部323の詳細な構成について説明する。
同期実行部323は、実行制御部510、入力制御部520、及び出力制御部530から構成される。
A detailed configuration of the synchronization execution unit 323 will be described with reference to FIG.
The synchronization execution unit 323 includes an execution control unit 510, an input control unit 520, and an output control unit 530.

実行制御部510は、画像入力部321及び画像出力部322の設定と、入力制御部520及び出力制御部530の実行制御とを行うモジュールである。
画像入力部321の設定を信号511(DMA受信部の設定)、512(パケット送信部の設定)にて行い、画像出力部322の設定を信号513(DMA送信部の設定)、514(パケット受信部の設定)にて行う。
The execution control unit 510 is a module that performs setting of the image input unit 321 and the image output unit 322 and execution control of the input control unit 520 and the output control unit 530.
The image input unit 321 is set by signals 511 (DMA reception unit setting) and 512 (packet transmission unit setting), and the image output unit 322 is set by signals 513 (DMA transmission unit setting) and 514 (packet reception). Part setting).

入力制御部への実行開始命令は、信号515にて送信し、入力制御部からの実行完了通知は信号516にて受信する。
出力制御部への実行開始命令は、信号517にて送信し、出力制御部からの実行完了通知は、信号518にて受信する。
また、CPU111からの画像処理実行開始信号は信号519にて受信し、CPU111への画像処理終了信号は信号5110より送信する。
An execution start command to the input control unit is transmitted by a signal 515, and an execution completion notification from the input control unit is received by a signal 516.
An execution start command to the output control unit is transmitted by a signal 517, and an execution completion notification from the output control unit is received by a signal 518.
An image processing execution start signal from the CPU 111 is received by a signal 519, and an image processing end signal to the CPU 111 is transmitted from a signal 5110.

図6を用いて実行制御部510の制御シーケンスを説明する。
S601にてCPUからの画像処理開始の割り込みを待ち、検知するとS602に遷移する。
S602では入力制御部520と出力制御部530とに実行開始命令を発行し、S603に遷移する。
S603では入力側制御部520と出力側制御部530からの実行終了信号を待機し、両方の信号を受信したらS604に遷移する。
S604では入出力制御を終了し、CPU111に画像処理終了の割り込みを通知する。
A control sequence of the execution control unit 510 will be described with reference to FIG.
In step S601, the CPU waits for an interruption of image processing start from the CPU, and if detected, the process proceeds to step S602.
In S602, an execution start command is issued to the input control unit 520 and the output control unit 530, and the process proceeds to S603.
In S603, it waits for the execution end signal from the input side control part 520 and the output side control part 530, and when both signals are received, it changes to S604.
In step S604, the input / output control is ended, and the CPU 111 is notified of an interruption for the end of image processing.

(入力制御部)
入力制御部520は、画像入力部321のDMA受信部411及びパケット送信部412の同期制御と、中間バッファ342の管理とを行うモジュールである。DMA受信部411への実行開始命令は信号521にて送信し、DMA受信部からの実行終了を信号522にて受信する。パケット送信部412への実行開始命令は信号523にて送信し、パケット送信部からの実行終了は信号524にて受信する。
(Input control unit)
The input control unit 520 is a module that performs synchronization control of the DMA reception unit 411 and the packet transmission unit 412 of the image input unit 321 and management of the intermediate buffer 342. An execution start command to the DMA receiver 411 is transmitted by a signal 521, and an execution end from the DMA receiver is received by a signal 522. An execution start command to the packet transmission unit 412 is transmitted by a signal 523, and an execution end from the packet transmission unit is received by a signal 524.

他の中間バッファ制御部330と中間バッファ342を共有する場合には、信号5111にて中間バッファを共有するように設定がなされ、信号525にて送信する同期信号と、信号526にて受信する同期信号とを用いて同期制御を行う。
同時に、バッファ状態情報を書込状態にする更新情報を信号527にて他の中間バッファ制御部330へ送信し、バッファ状態情報を読出状態にする更新情報を信号528bにて他の中間バッファ制御部330から受信することでバッファ状態情報の同期も行う。
また、パケット送信部412で画像データやバンド領域の送信が完了した場合には、入力制御部520の実行を終了させるための信号を信号529にて受信する。
When sharing the intermediate buffer 342 with another intermediate buffer control unit 330, the signal 5111 is set to share the intermediate buffer, and the synchronization signal transmitted by the signal 525 and the synchronization received by the signal 526 are set. Synchronous control is performed using the signal.
At the same time, update information for setting the buffer state information to the write state is transmitted to another intermediate buffer control unit 330 by signal 527, and update information for setting the buffer state information to the read state is transmitted to other intermediate buffer control unit 330 by signal 528b. By receiving from 330, the buffer status information is also synchronized.
When the packet transmission unit 412 completes the transmission of the image data and the band area, the signal 529 receives a signal for ending the execution of the input control unit 520.

図7にて入力制御部の制御シーケンスを説明する。
S701にて実行制御部510から実行開始命令515を待ち、受信するとS702に遷移する。
S702にて他の中間バッファ制御部と中間バッファを共有しない設定であればS703−0に遷移し、共有する設定であればS710に遷移する。
S703−0では入力制御部520のバッファ状態保持部520bに保持されているバッファの状態情報を参照して、
空であれば信号521からDMA受信部411に対して実行開始命令を発行し、
フルであれば信号523からパケット送信部412に対して実行開始命令を発行し、S704−0に遷移する。
S704−0では実行開始命令を発行したモジュールからの実行終了通知を信号522、524で受信するまで待機し、終了信号を検知したら、S707−0に遷移する。
S707−0では、実行開始命令を発行したモジュールが用いた、バッファ状態保持部520bに保持されているバッファ状態情報を更新する。DMA受信部411がバッファを更新した場合はバッファ状態情報の書込状態信号528をアサートしてバッファ状態保持部520bに保持されているバッファ状態情報をフルとする。パケット送信部412がバッファを更新した場合は読出状態信号527をアサートしてバッファ状態保持部520bに保持されているバッファ状態情報を空にする。そして、バッファ状態情報を更新したら、S708に遷移する。
S708では、画像入力部321からの処理終了信号529が送信されていなかったらS702に遷移し、送信されていたらS709に遷移する。
The control sequence of the input control unit will be described with reference to FIG.
In S701, the process waits for the execution start instruction 515 from the execution control unit 510. When the execution start instruction 515 is received, the process proceeds to S702.
In S702, if the setting does not share the intermediate buffer with another intermediate buffer control unit, the process proceeds to S703-0, and if the setting is shared, the process proceeds to S710.
In S703-0, referring to the buffer status information held in the buffer status holding unit 520b of the input control unit 520,
If it is empty, an execution start command is issued from the signal 521 to the DMA receiver 411,
If it is full, an execution start command is issued from the signal 523 to the packet transmission unit 412 and the process proceeds to S704-0.
In S704-0, the process waits until receiving an end-of-execution notification from the module that has issued the execution start instruction using the signals 522 and 524. When the end signal is detected, the process proceeds to S707-0.
In S707-0, the buffer status information held in the buffer status holding unit 520b used by the module that issued the execution start command is updated. When the DMA receiving unit 411 updates the buffer, the buffer state information write state signal 528 is asserted to make the buffer state information held in the buffer state holding unit 520b full. When the packet transmission unit 412 updates the buffer, the read state signal 527 is asserted to empty the buffer state information held in the buffer state holding unit 520b. When the buffer status information is updated, the process proceeds to S708.
In S708, if the processing end signal 529 from the image input unit 321 is not transmitted, the process proceeds to S702, and if it is transmitted, the process proceeds to S709.

ここでS710に遷移した場合の説明に戻り、S710に遷移した場合は、入力制御部520のバッファ状態保持部520bに保持されているバッファ状態情報を参照し、フルであればS703−1に遷移し、空であればS705−2に遷移する。
S703−1に遷移した場合、入力制御部520はパケット送信部412に対して信号523から実行開始命令を発行し、S704−1に遷移する。
S704−1ではパケット送信部412の実行終了信号を信号524で受信するまで待機し、終了信号を検知したらS705−1に遷移する。
S705−1では他の中間バッファ制御部330との同期信号525とバッファの読出状態信号527をアサートし、S706−1に遷移する。
Returning to the description of the transition to S710, when transitioning to S710, the buffer state information held in the buffer state holding unit 520b of the input control unit 520 is referred to, and if full, the process proceeds to S703-1. If it is empty, the process proceeds to S705-2.
When the process proceeds to S703-1, the input control unit 520 issues an execution start command from the signal 523 to the packet transmission unit 412, and the process proceeds to S704-1.
In S704-1, it waits until the execution end signal of the packet transmission part 412 is received by the signal 524, and if an end signal is detected, it will transfer to S705-1.
In S705-1, the synchronization signal 525 with the other intermediate buffer control unit 330 and the buffer read state signal 527 are asserted, and the process proceeds to S706-1.

ここで、S705−2に遷移した場合の説明に戻り、S705−2に遷移した場合、他の中間バッファ制御部330との同期信号525をアサートし、バッファの読出状態信号527をネゲートし、S706−1に遷移する。   Returning to the description of the transition to S705-2, when transitioning to S705-2, the synchronization signal 525 with the other intermediate buffer control unit 330 is asserted, the buffer read state signal 527 is negated, and S706. Transition to -1.

S706−1では他の中間バッファ制御部333からの同期信号526を待ち、受信した場合はS707−1に遷移する。
S707−1では入力同期部520aが発行した読出状態信号527と、他の中間バッファ制御部330から発行された書込状態信号528のうちアサートされている信号を用いてバッファ状態保持部520bに保持されているバッファ状態情報を更新する。バッファ状態情報を更新したらS708に遷移する。
S708では実行制御部510に信号516から実行完了通知を行い、入力制御を終了する。
In step S706-1, the process waits for the synchronization signal 526 from the other intermediate buffer control unit 333, and if it is received, the process proceeds to step S707-1.
In S707-1, the buffer state holding unit 520b holds the read state signal 527 issued by the input synchronization unit 520a and the asserted signal among the write state signal 528 issued by the other intermediate buffer control unit 330. Update the buffer status information. When the buffer status information is updated, the process proceeds to S708.
In S708, the execution control unit 510 is notified of execution completion from the signal 516, and the input control is terminated.

(出力制御部)
出力制御部530は、画像出力部322のDMA送信部421及びパケット受信部422の同期制御と中間バッファの管理とを行うモジュールである。DMA送信部421への実行開始命令は信号531にて送信し、DMA送信部421からの実行終了を信号532にて受信する。パケット受信部422への実行開始命令は信号533にて送信し、パケット受信部422からの実行終了は信号534にて受信する。他の中間バッファ制御部330と中間バッファ342を共有する場合には、信号5112にて中間バッファを共有するように設定がなされ、信号536にて送信する同期信号と、信号535にて受信する同期信号を用いて同期制御を行う。
(Output control unit)
The output control unit 530 is a module that performs synchronization control of the DMA transmission unit 421 and the packet reception unit 422 of the image output unit 322 and management of the intermediate buffer. The execution start command to the DMA transmission unit 421 is transmitted by a signal 531, and the execution end from the DMA transmission unit 421 is received by a signal 532. The execution start command to the packet receiving unit 422 is transmitted by a signal 533, and the execution end from the packet receiving unit 422 is received by a signal 534. When sharing the intermediate buffer 342 with another intermediate buffer control unit 330, the signal 5112 is set to share the intermediate buffer, and the synchronization signal transmitted by the signal 536 and the synchronization received by the signal 535 are set. Synchronous control is performed using signals.

同時に、バッファ状態情報を書込状態にする更新情報を信号538にて送信し、バッファ状態情報を読出状態にする更新情報を信号537aにて受信することでバッファ状態保持部530bに保持されているバッファ状態情報の同期も行う。また、パケット受信部422で画像データやバンド領域の受信が完了した場合には出力制御部530の実行を終了させるための信号を信号539にて受信する。この信号は他の中間バッファ制御部330と中間バッファ342を共有する場合には、他の中間バッファ制御部330の画像入力部529bの終了信号を選択して用いる。   At the same time, update information that sets the buffer state information to the write state is transmitted by the signal 538, and update information that sets the buffer state information to the read state is received by the signal 537a, thereby being held in the buffer state holding unit 530b. Also synchronizes buffer status information. Further, when reception of image data or a band region is completed in the packet receiving unit 422, a signal for terminating the execution of the output control unit 530 is received by a signal 539. When this signal shares the intermediate buffer 342 with another intermediate buffer control unit 330, the end signal of the image input unit 529b of the other intermediate buffer control unit 330 is selected and used.

図8を用いて出力制御部530の制御シーケンスを説明する。
S801にて実行制御部510から実行開始命令517を待ち、受信するとS802に遷移する。
S802にて他の中間バッファ制御部330と中間バッファ342を共有しない設定であればS803−0に遷移し、共有する設定であればS810に遷移する。
A control sequence of the output control unit 530 will be described with reference to FIG.
In step S801, the process waits for an execution start instruction 517 from the execution control unit 510. When the execution start instruction 517 is received, the process proceeds to step S802.
If the setting is not to share the intermediate buffer 342 with the other intermediate buffer control unit 330 in S802, the process proceeds to S803-0, and if the setting is to be shared, the process proceeds to S810.

S803−0では出力制御部530のバッファ状態保持部530bに保持されているバッファの状態情報を参照し、
空であればパケット受信部422に対して信号533から実行開始命令を発行し、
フルであればDMA送信部421に対して信号531から実行開始命令を発行し、S804−0に遷移する。
In S803-0, referring to the buffer status information held in the buffer status holding unit 530b of the output control unit 530,
If it is empty, an execution start command is issued from the signal 533 to the packet receiving unit 422,
If it is full, an execution start command is issued from the signal 531 to the DMA transmitter 421, and the process proceeds to S804-0.

S804−0では実行開始命令を発行したモジュールからの実行終了信号を信号532、534から受信するまで待機し、終了信号を検知したら、S807−0に遷移する。   In S804-0, it waits until it receives from the signals 532 and 534 an execution end signal from the module that issued the execution start command, and when an end signal is detected, the process proceeds to S807-0.

S807−0では、実行開始命令を発行したモジュールが用いた、バッファ状態保持部530bに保持されているバッファ状態情報を更新する。
パケット受信部422がバッファを更新した場合は、書込状態信号538をアサートして、バッファ状態保持部530bに保持されているバッファ状態情報をフルとする。DMA送信部421がバッファを更新した場合は、読出状態信号537aをアサートしてバッファ状態保持部530bに保持されているバッファ状態情報を空にする。
そして、バッファ状態保持部530bに保持されているバッファ状態情報を更新したら、S808に遷移する。
In S807-0, the buffer status information held in the buffer status holding unit 530b used by the module that issued the execution start command is updated.
When the packet receiving unit 422 updates the buffer, the write state signal 538 is asserted to make the buffer state information held in the buffer state holding unit 530b full. When the DMA transmission unit 421 updates the buffer, the read state signal 537a is asserted to empty the buffer state information held in the buffer state holding unit 530b.
When the buffer status information held in the buffer status holding unit 530b is updated, the process proceeds to S808.

S808では、パケット受信部422からの処理終了信号539aが送信されていなかったらS802に遷移し、送信されていたらS809に遷移する。   In S808, if the processing end signal 539a from the packet receiving unit 422 is not transmitted, the process proceeds to S802, and if it is transmitted, the process proceeds to S809.

ここでS810に遷移した場合の説明に戻り、S810に遷移した場合は、出力制御部530のバッファ状態保持部530bに保持されているバッファ状態情報を参照し、空であればS803−1に遷移し、フルであればS805−2に遷移する。   Returning to the description of the transition to S810, when transitioning to S810, the buffer status information held in the buffer status holding unit 530b of the output control unit 530 is referred to, and if empty, the procedure transits to S803-1. If it is full, the process proceeds to S805-2.

S803−1に遷移した場合、出力制御部530はパケット受信部422に対して信号533から実行開始命令を発行し、S804−1に遷移する。
S804−1ではパケット送信部422の実行終了信号を信号534で受信するまで待機し、終了信号を検知したらS805−1に遷移する。
S805−1では他の中間バッファ制御部330との同期信号536とバッファの書込状態信号538をアサートし、S806−1に遷移する。
When the process proceeds to S803-1, the output control unit 530 issues an execution start command from the signal 533 to the packet receiving unit 422, and the process proceeds to S804-1.
In step S804-1, the process waits until the execution end signal of the packet transmission unit 422 is received by the signal 534. If the end signal is detected, the process proceeds to step S805-1.
In S805-1, the synchronization signal 536 with the other intermediate buffer control unit 330 and the buffer write state signal 538 are asserted, and the process proceeds to S806-1.

ここで、S805−2に遷移した場合の説明に戻り、S805−2に遷移した場合、他の中間バッファ制御部330との同期信号536をアサートし、バッファの書込状態信号538をネゲートし、S806−1に遷移する。   Returning to the description of the transition to S805-2, when transitioning to S805-2, the synchronization signal 536 with the other intermediate buffer control unit 330 is asserted, the buffer write state signal 538 is negated, The process proceeds to S806-1.

S806−1では他の中間バッファ制御部330からの同期信号535を待ち、受信した場合はS807−1に遷移する。
S807−1では出力同期部530aが発行した書込状態信号538と、他の中間バッファ制御部330から発行された読出状態信号537のうちアサートされている信号を用いてバッファ状態保持部530bに保持されているバッファ状態情報を更新する。バッファ状態保持部530bに保持されているバッファ状態情報を更新したらS808に遷移する。
S808では実行制御部510に信号518から実行完了通知を行い、出力制御を終了する。
In step S806-1, the process waits for the synchronization signal 535 from the other intermediate buffer control unit 330. If it is received, the process proceeds to step S807-1.
In S807-1, the buffer state holding unit 530b uses the asserted signal among the write state signal 538 issued by the output synchronization unit 530a and the read state signal 537 issued from the other intermediate buffer control unit 330. Update the buffer status information. When the buffer state information held in the buffer state holding unit 530b is updated, the process proceeds to S808.
In step S808, an execution completion notification is sent from the signal 518 to the execution control unit 510, and the output control ends.

図9を用いて、スキャナ用画像処理群132の出力を中間バッファを介して、プリンタ用画像処理群133に送信する動作の例について説明する。図9はスキャナ側の出力同期部530とプリンタ側の入力同期部520がバッファを共有する場合について説明するため、図5からバッファ共有動作の説明に必要な要素を抽出した簡易的な図を示している。まず、中間バッファ制御部a320と中間バッファ制御部b330がCPU111から画像処理の実行開始の命令を受信すると、出力制御部530と入力制御部520が起動される。   An example of an operation for transmitting the output of the scanner image processing group 132 to the printer image processing group 133 via the intermediate buffer will be described with reference to FIG. FIG. 9 is a simplified diagram in which elements necessary for explaining the buffer sharing operation are extracted from FIG. 5 in order to explain a case where the output synchronization unit 530 on the scanner side and the input synchronization unit 520 on the printer side share the buffer. ing. First, when the intermediate buffer control unit a320 and the intermediate buffer control unit b330 receive an image processing execution start command from the CPU 111, the output control unit 530 and the input control unit 520 are activated.

初めは図9Aに示すように、中間バッファ342にはデータが入っていないため、バッファ状態保持部530bに保持されているバッファ状態情報、及びバッファ状態保持部520bに保持されているバッファ状態情報は空となる。
このため、スキャナ側の出力同期部530aはパケット受信部を起動し、パケットの受信が完了したらバッファ状態情報の書込状態信号538と同期信号536をアサートする。
プリンタ側の入力同期部520aではバッファ状態保持部520bに保持されているバッファ状態情報が空のため、パケット送信部412の起動は行わずに同期信号525を出力し、他の中間バッファ制御部330からの同期信号526を待つ。
相互に同期信号が送られたら、バッファ書込状態信号538によってバッファ状態保持部530b、520bのそれぞれに保持されているバッファ状態情報をフルに切り替え、図9Bの状態で次の実行を開始する。
Initially, as shown in FIG. 9A, since the intermediate buffer 342 contains no data, the buffer status information held in the buffer status holding unit 530b and the buffer status information held in the buffer status holding unit 520b are It becomes empty.
Therefore, the output synchronizer 530a on the scanner side activates the packet receiver, and asserts the write status signal 538 and the sync signal 536 of the buffer status information when reception of the packet is completed.
Since the buffer state information held in the buffer state holding unit 520b is empty in the input synchronization unit 520a on the printer side, the synchronization signal 525 is output without starting the packet transmission unit 412, and the other intermediate buffer control unit 330 is output. Wait for the synchronization signal 526 from.
When the synchronization signals are sent to each other, the buffer state information held in each of the buffer state holding units 530b and 520b is switched to full by the buffer write state signal 538, and the next execution is started in the state of FIG. 9B.

図9Bでは、バッファ状態保持部530b、520bのそれぞれに保持されているバッファ状態情報はフルであるため、スキャナ側のパケット受信部422の起動を行わずに同期信号536を出力し、他の中間バッファ制御部からの同期信号535を待つ。プリンタ側の入力同期部520ではバッファ状態保持部520bに保持されているバッファ状態情報がフルであるため、パケット送信部412を起動し、パケットの送信が完了したらバッファ状態情報の読出状態信号527と同期信号525をアサートする。相互に同期信号が送られたら、バッファ読出状態信号527によってバッファ状態保持部530b、520bのそれぞれに保持されているバッファ状態情報を空に切り替え図9Aの状態で次の実行を開始する。
以上のように、異なる中間バッファ制御部320、330でバッファの状態情報をそれぞれ同期して更新することによって、中間バッファ342を介して(DRAMを介することなく)高速なデータ転送を実現する事が出来る。
In FIG. 9B, since the buffer status information held in each of the buffer status holding units 530b and 520b is full, the synchronization signal 536 is output without starting the packet receiving unit 422 on the scanner side, and the other intermediate Wait for the synchronization signal 535 from the buffer controller. In the input synchronization unit 520 on the printer side, since the buffer status information held in the buffer status holding unit 520b is full, the packet transmission unit 412 is activated, and when the packet transmission is completed, the buffer status information read status signal 527 and Assert synchronization signal 525. When the synchronization signals are sent to each other, the buffer status information held in each of the buffer status holding units 530b and 520b is switched to empty by the buffer read status signal 527, and the next execution is started in the state of FIG. 9A.
As described above, it is possible to realize high-speed data transfer via the intermediate buffer 342 (without going through the DRAM) by synchronously updating the buffer status information in the different intermediate buffer control units 320 and 330, respectively. I can do it.

<実施例2>
実施例1では、スキャナ側の画像出力部322と画像入力部331が1つの同じバッファ342にアクセスする場合を例に説明した。
実施例2では、バッファを効率的に用いて高速なデータ共有を実現するための構成について説明する。実施例2では画像出力部322と画像出力部342が2つのバッファ(例えば、342−1、342−2)に交互にアクセスするバッファ構成にし、これを同期制御する。
<Example 2>
In the first embodiment, the case where the image output unit 322 and the image input unit 331 on the scanner side access the same buffer 342 has been described as an example.
In the second embodiment, a configuration for realizing high-speed data sharing using a buffer efficiently will be described. In the second embodiment, the image output unit 322 and the image output unit 342 have a buffer configuration in which two buffers (for example, 342-1 and 342-2) are alternately accessed, and are synchronously controlled.

図10にて実施例2におけるバッファ構成において、バッファを共有する構成について説明する。実施例2ではバッファ状態情報を、管理するバッファの数だけ配置し、それぞれのバッファ状態情報に対して読み出し、書き出し制御信号を送信する事によって、ダブルバッファ構成を実現する。
以下で具体的な動作について図10を用いて説明する。図10に示すバッファ1状態保持部530b−1、520b−1はバッファ342−1の状態情報を保持しており、バッファ2状態保持部530b−2、520b−2はバッファ342−2の状態情報を保持している。
With reference to FIG. 10, a buffer sharing configuration in the second embodiment will be described. In the second embodiment, the buffer status information is arranged by the number of buffers to be managed, and each buffer status information is read and a write control signal is transmitted to realize a double buffer configuration.
A specific operation will be described below with reference to FIG. The buffer 1 state holding units 530b-1 and 520b-1 shown in FIG. 10 hold the state information of the buffer 342-1, and the buffer 2 state holding units 530b-2 and 520b-2 are the state information of the buffer 342-2. Holding.

まず、中間バッファ制御部a320と中間バッファ制御部b330がCPUから画像処理の実行開始の命令を受信すると、
中間バッファ制御部a320の出力制御部530と
中間バッファ制御部b330の入力制御部520が起動される。
図10Aのように、初めは中間バッファ1、2共にデータが入っていないため、バッファ1状態保持部520b−1,バッファ2状態保持部520b−2に保持されている状態情報が共に空となる。
First, when the intermediate buffer control unit a320 and the intermediate buffer control unit b330 receive an image processing execution start command from the CPU,
The output control unit 530 of the intermediate buffer control unit a320 and the input control unit 520 of the intermediate buffer control unit b330 are activated.
As shown in FIG. 10A, since no data is initially stored in both the intermediate buffers 1 and 2, the state information held in the buffer 1 state holding unit 520b-1 and the buffer 2 state holding unit 520b-2 are both empty. .

このため、スキャナ側の出力同期部530aでは、パケット受信部422を起動し、パケットの受信が完了したらバッファ1状態情報の書込状態信号538−1と同期信号536をアサートする。
プリンタ側の入力同期部520aでは、バッファ1の状態情報が空のため、パケット送信部412の起動は行わず、同期信号525を送信し、他の中間バッファ制御部320からの同期信号526を待つ。
相互に同期信号が送られたら、バッファ書込状態信号538−1によってそれぞれのバッファ1の状態情報をフルに切り替え、図10Bの状態で次の実行を開始する。
For this reason, the output synchronizer 530a on the scanner side activates the packet receiver 422, and asserts the write status signal 538-1 and the sync signal 536 of the buffer 1 status information when reception of the packet is completed.
In the input synchronization unit 520a on the printer side, since the state information of the buffer 1 is empty, the packet transmission unit 412 is not activated, transmits the synchronization signal 525, and waits for the synchronization signal 526 from the other intermediate buffer control unit 320. .
When the synchronization signals are sent to each other, the buffer write state signal 538-1 switches the state information of each buffer 1 to full, and the next execution is started in the state of FIG. 10B.

図10Bでは、出力同期部はバッファ2状態保持部530b−2に保持されているバッファ2状態情報を参照する。
バッファ2状態情報は空であるため、スキャナ側のパケット受信部422を起動し、パケットの受信が完了したらバッファ2状態情報の書込状態信号538−2と同期信号536をアサートする。
プリンタ側の入力同期部520ではバッファ1状態保持部520b−1に保持されているバッファ1状態情報を参照する。バッファ1状態情報はフルであるため、パケット送信部412を起動し、パケットの送信が完了したらバッファ1状態情報の読出状態信号527−1と同期信号525をアサートする。
相互に同期信号が送られたら、バッファ1読み出し信号527−1によってバッファ1の状態情報を空にし、バッファ2の書き出し信号538−2によって、バッファ2の状態情報をフルにし、図10Cの状態で次の実行を開始する。
In FIG. 10B, the output synchronization unit refers to the buffer 2 state information held in the buffer 2 state holding unit 530b-2.
Since the buffer 2 status information is empty, the scanner-side packet receiving unit 422 is activated, and when the reception of the packet is completed, the buffer 2 status information write status signal 538-2 and the synchronization signal 536 are asserted.
The input synchronization unit 520 on the printer side refers to the buffer 1 status information held in the buffer 1 status holding unit 520b-1. Since the buffer 1 status information is full, the packet transmission unit 412 is activated, and when the packet transmission is completed, the read status signal 527-1 and the synchronization signal 525 of the buffer 1 status information are asserted.
When the synchronization signals are sent to each other, the status information of the buffer 1 is emptied by the buffer 1 read signal 527-1, the status information of the buffer 2 is made full by the write signal 538-2 of the buffer 2, and the state shown in FIG. Start the next execution.

図10Cでは出力同期部530はバッファ1状態保持部530b−1に保持されているバッファ1状態情報を参照する。
バッファ1状態情報は空であるため、スキャナ側のパケット受信部422を起動し、パケットの受信が完了したらバッファ1状態情報の書込状態信号と同期信号538−1をアサートする。
プリンタ側の入力同期部520ではバッファ2状態保持部520b−2に保持されているバッファ2状態情報を参照する。バッファ2状態情報はフルであるため、パケット送信部412を起動し、パケットの送信が完了したらバッファ2状態情報の読出状態信号527−2と同期信号525をアサートする。相互に同期信号が送られたら、バッファ2読み出し信号527−2によってバッファ2の状態情報を空にし、バッファ1の書込状態信号538−1によって、バッファ状態情報1をフルにし、図10Bの状態で次の実行を開始する。
In FIG. 10C, the output synchronization unit 530 refers to the buffer 1 state information held in the buffer 1 state holding unit 530b-1.
Since the buffer 1 status information is empty, the scanner-side packet receiving unit 422 is activated, and when the reception of the packet is completed, the writing status signal of the buffer 1 status information and the synchronization signal 538-1 are asserted.
The input synchronization unit 520 on the printer side refers to the buffer 2 status information held in the buffer 2 status holding unit 520b-2. Since the buffer 2 status information is full, the packet transmitter 412 is activated, and when the packet transmission is completed, the read status signal 527-2 and the synchronization signal 525 of the buffer 2 status information are asserted. When the synchronization signals are sent to each other, the buffer 2 read signal 527-2 empties the buffer 2 status information, the buffer 1 write status signal 538-1 fills the buffer status information 1 and the status shown in FIG. 10B. Starts the next execution.

以上のように簡易な構成を追加する事で2つのバッファに交互にアクセスする構成においても、パケットの送信と受信を同時に実行する高速なデータ通信を実現する事が出来る。勿論、複数の中間バッファ制御部で共有するバッファの数は2つに限るものではない。   By adding a simple configuration as described above, even in a configuration in which two buffers are alternately accessed, high-speed data communication that simultaneously executes packet transmission and reception can be realized. Of course, the number of buffers shared by the plurality of intermediate buffer control units is not limited to two.

実施例2における並列動作の効果について説明する。
図16(a)は中間バッファが1つしかない場合(中間バッファ1のみの場合)を示し、図16(b)は中間バッファが2つある場合(中間バッファ1と2の場合)を示す。
The effect of the parallel operation in the second embodiment will be described.
FIG. 16A shows a case where there is only one intermediate buffer (in the case of only intermediate buffer 1), and FIG. 16B shows a case where there are two intermediate buffers (in the case of intermediate buffers 1 and 2).

図16(a)に示すように、中間バッファ1しか使用しない場合は、中間バッファ1が空の状態にならなければ出力部からの書込みは開始できない、また、中間バッファ1がフルの状態にならなければ入力部への読出しは開始できない。   As shown in FIG. 16A, when only the intermediate buffer 1 is used, writing from the output unit cannot be started unless the intermediate buffer 1 is empty, and the intermediate buffer 1 is full. If not, reading to the input unit cannot be started.

具体的には、
中間バッファ1がフルの状態になり、中間バッファ1から入力部への読出しが開始され(T11)、
中間バッファ1から入力部への読出しが終了し(T12)、
中間バッファ1が空の状態になり、出力部から中間バッファ1への書込みが開始され(T13)、
中間バッファ1がフルの状態になると、中間バッファ1から入力部への読出しが開始される(T14)。
In particular,
The intermediate buffer 1 becomes full, and reading from the intermediate buffer 1 to the input unit is started (T11).
Reading from the intermediate buffer 1 to the input unit is completed (T12),
The intermediate buffer 1 becomes empty, and writing from the output unit to the intermediate buffer 1 is started (T13).
When the intermediate buffer 1 becomes full, reading from the intermediate buffer 1 to the input unit is started (T14).

一方、図16(b)に示すように、中間バッファ1と中間バッファ2を使用する場合は、中間バッファ2が空の状態にならなくても、中間バッファ1が空の状態になれば、出力部から中間バッファ1への書込みは開始できる。また、中間バッファ1が空の状態にならなくても、中間バッファ2が空の状態になれば、出力部から中間バッファ2への書込みは開始できる。
中間バッファ2がフルの状態にならなくても、中間バッファ1がフルの状態になれば、中間バッファ1から入力部への読出しは開始できる。また、中間バッファ1がフルの状態にならなくても、中間バッファ2がフルの状態になれば、中間バッファ2から入力部への読出しは開始できる。
On the other hand, as shown in FIG. 16B, when the intermediate buffer 1 and the intermediate buffer 2 are used, even if the intermediate buffer 2 does not become empty, if the intermediate buffer 1 becomes empty, the output is performed. Writing to the intermediate buffer 1 can be started. Even if the intermediate buffer 1 does not become empty, if the intermediate buffer 2 becomes empty, writing from the output unit to the intermediate buffer 2 can be started.
Even if the intermediate buffer 2 does not become full, reading from the intermediate buffer 1 to the input unit can be started if the intermediate buffer 1 becomes full. Even if the intermediate buffer 1 is not full, reading from the intermediate buffer 2 to the input unit can be started if the intermediate buffer 2 is full.

具体的には、
中間バッファ1がフルの状態になり、中間バッファ1から入力部への読出しが開始され(T21)、
出力部から中間バッファ2への書込みが開始され(T22)、
中間バッファ1から入力部への読出しが終了し(T23)、
中間バッファ2から入力部への読出しが開始され(T24)、
出力部から中間バッファ1への書込みが開始され(T25)、
中間バッファ2から入力部への読出しが終了し(T26)、
中間バッファ1から入力部への読出しが開始される(T27)。
In particular,
The intermediate buffer 1 becomes full, and reading from the intermediate buffer 1 to the input unit is started (T21).
Writing from the output unit to the intermediate buffer 2 is started (T22),
Reading from the intermediate buffer 1 to the input unit is completed (T23),
Reading from the intermediate buffer 2 to the input unit is started (T24),
Writing from the output unit to the intermediate buffer 1 is started (T25),
Reading from the intermediate buffer 2 to the input unit is completed (T26).
Reading from the intermediate buffer 1 to the input unit is started (T27).

中間バッファ1と中間バッファ2を使用することによって、
中間バッファ1から入力部への読出し終了(T23)と、
中間バッファ1から入力部への読出し開始(T27)との間に、
中間バッファ2から入力部への読出しが開始し(T24)、かつ中間バッファ2から入力部への読出しが終了している(T26)。
By using intermediate buffer 1 and intermediate buffer 2,
End of reading from the intermediate buffer 1 to the input unit (T23),
Between the start of reading from the intermediate buffer 1 to the input unit (T27),
Reading from the intermediate buffer 2 to the input unit has started (T24), and reading from the intermediate buffer 2 to the input unit has been completed (T26).

同様に、
出力部から中間バッファ1への書込み終了(T21)と、
出力部から中間バッファ1への書込み開始(T25)との間に、
出力部から中間バッファ2への書込みが開始し(T22)、かつ出力部から中間バッファ2への書込みが終了している(T24)。
Similarly,
End of writing from the output unit to the intermediate buffer 1 (T21),
Between the start of writing to the intermediate buffer 1 from the output unit (T25),
Writing from the output unit to the intermediate buffer 2 has started (T22), and writing from the output unit to the intermediate buffer 2 has been completed (T24).

前記のように、出力部が、中間バッファ1と中間バッファ2を交互に使用し、かつ入力部も、中間バッファ1と中間バッファ2を交互に使用することによって、高速なデータ通信が可能となる。   As described above, the output unit uses the intermediate buffer 1 and the intermediate buffer 2 alternately, and the input unit also uses the intermediate buffer 1 and the intermediate buffer 2 alternately, thereby enabling high-speed data communication. .

<実施例3>
実施例1ではスキャン処理とプリント処理を連続して実行する場合における中間バッファ342の共有方法について説明した。実施例3では、画像データに対してスキャン用画像処理回路群132やプリンタ用画像処理回路群133に含まれる画像処理機能を複数回適用する場合について説明する。
<Example 3>
In the first embodiment, the sharing method of the intermediate buffer 342 in the case where the scan process and the print process are continuously executed has been described. In the third embodiment, a case where the image processing function included in the scan image processing circuit group 132 and the printer image processing circuit group 133 is applied to the image data a plurality of times will be described.

スキャナ用画像処理回路群132では、スキャン時のノイズを低減するためのフィルタ処理を画像データに対して適用している。フィルタ処理はタップ数を大きくするほど空間周波数の低いノイズも除去する事が出来る。しかし、フィルタのタップ数が大きくなるほど回路規模も増大するため、コストとタップ数のバランスをとった構成を検討する必要があった。   In the scanner image processing circuit group 132, filter processing for reducing noise during scanning is applied to image data. The filter processing can remove noise having a low spatial frequency as the number of taps is increased. However, since the circuit scale increases as the number of taps of the filter increases, it is necessary to consider a configuration that balances the cost and the number of taps.

そこで、少ないタップ数のフィルタ処理を画像データに複数回適用する事で疑似的に多タップ数のフィルタ処理を行う事が考えられる。実施例3では中間バッファ342を効率的に用いてこの処理を実現する構成について説明する。ただし、実施例1と同様の構成である部分については説明を省く。   Therefore, it is conceivable to apply a filter process with a large number of taps in a pseudo manner by applying a filter process with a small number of taps to image data a plurality of times. In the third embodiment, a configuration for realizing this processing using the intermediate buffer 342 efficiently will be described. However, description of portions having the same configuration as in the first embodiment will be omitted.

図11は実施例3における同期実行部323の構成を示した図である。図5で示した実施例1における同期実行部323の構成と同等の部分については同じ番号で示し、説明を省く。図11の同期実行部323には実施例1の同期実行部323の構成に加えて状態情報交換部540を備えている。状態情報交換部540は入力制御部520のバッファ状態情報520bと、出力制御部530のバッファ状態情報530bを交換するモジュールである。   FIG. 11 is a diagram illustrating the configuration of the synchronization execution unit 323 according to the third embodiment. Parts equivalent to the configuration of the synchronization execution unit 323 in the first embodiment illustrated in FIG. 5 are denoted by the same reference numerals and description thereof is omitted. The synchronization execution unit 323 of FIG. 11 includes a state information exchange unit 540 in addition to the configuration of the synchronization execution unit 323 of the first embodiment. The status information exchange unit 540 is a module that exchanges the buffer status information 520b of the input control unit 520 and the buffer status information 530b of the output control unit 530.

具体的には、状態情報交換部540は実行制御部510から状態情報交換命令を信号541から受け取ると、入力制御部520のバッファ状態情報520bと出力制御部530のバッファ状態情報530bを入れ替える制御を行う。バッファ状態情報の交換を完了したら実行制御部510に対して信号541から完了を通知する。   Specifically, when the state information exchange unit 540 receives a state information exchange command from the execution control unit 510 from the signal 541, the state information exchange unit 540 performs control to switch the buffer state information 520b of the input control unit 520 and the buffer state information 530b of the output control unit 530. Do. When the exchange of the buffer status information is completed, completion is notified from the signal 541 to the execution control unit 510.

ここで、図12を用いて、実行制御部510の制御シーケンスについて説明する。
S1201にて実行制御部510はフィルタ処理を実行する回数をループ回数としてCPU111から設定され、画像処理実行開始の割り込み信号519を待つ。割り込みを検知したらS1202に遷移する。
S1202ではCPU111から指定された回数の実行開始命令を発行しているかどうか判定し、実行済みもしくはループ実行が不要であればS1203−1に遷移し、指定された回数の実行をしていない場合はS1203−0に遷移する。
Here, the control sequence of the execution control unit 510 will be described with reference to FIG.
In step S1201, the execution control unit 510 sets the number of times the filter process is executed as the number of loops from the CPU 111, and waits for an interrupt signal 519 for starting image processing. If an interrupt is detected, the process proceeds to S1202.
In S1202, it is determined whether or not the CPU 111 has issued a specified number of execution start instructions. If it has been executed or if loop execution is unnecessary, the process proceeds to S1203-1, and if the specified number of times has not been executed, The process proceeds to S1203-0.

S1203−0ではループ実行の初回であれば入力側で中間バッファを共有するように設定し、出力側で中間バッファを共有しないように設定する。ループ実行初回以降であれば入力側、出力側ともに中間バッファを共有しないように設定しS1204−0に遷移する。
S1204−0では入力制御部520と出力制御部530に実行開始命令を発行し、S1205−0に遷移する。
In step S1203-0, if the loop execution is the first time, the input side is set to share the intermediate buffer, and the output side is set not to share the intermediate buffer. If it is after the first loop execution, the input side and the output side are set not to share the intermediate buffer, and the process proceeds to S1204-0.
In S1204-0, an execution start command is issued to the input control unit 520 and the output control unit 530, and the process proceeds to S1205-0.

S1205−0では入力側制御部520と出力側制御部530からの実行終了信号を待機し、両方の信号を受信したらS1206に遷移する。
S1206では状態情報交換部540にバッファ状態情報の交換を命令すると同時に、画像入力部321と画像出力部322がどの利用するバッファを利用するかといった設定についても交換する。交換が完了したらS1202に遷移する。
In step S1205-0, the process waits for execution end signals from the input-side control unit 520 and the output-side control unit 530. If both signals are received, the process proceeds to S1206.
In step S1206, the status information exchanging unit 540 is instructed to exchange buffer status information, and at the same time, settings such as which buffer the image input unit 321 and the image output unit 322 use are also exchanged. When the exchange is completed, the process proceeds to S1202.

ここで、S1202にてS1203−1に遷移した場合について説明する。
S1203−1では入力側で中間バッファを共有しないように設定し、出力側で中間バッファを共有するように設定しS1204−1に遷移する。
S1204−1はS1204−0と同様で、S1205−1とS1205−0も同様の制御を行いS1207に遷移する。
S1207ではCPU111に画像処理終了の割り込みを通知する。
Here, the case where the process proceeds to S1203-1 in S1202 will be described.
In S1203-1, the input side is set not to share the intermediate buffer, and the output side is set to share the intermediate buffer, and the process proceeds to S1204-1.
S1204-1 is the same as S1204-0, and S1205-1 and S1205-0 perform the same control and shift to S1207.
In step S <b> 1207, the CPU 111 is notified of an image processing end interrupt.

次に、図13を用いて、入力制御部520の制御シーケンスについて説明する。
S1301にて実行制御部510から実行開始命令515を待ち、受信するとS1302に遷移する。
S1302にてループ実行の初回またはループ処理をしない場合であればS1303−0に遷移し、2回目〜最終回のループ実行であればS1310に遷移する。
S1303−0では入力共有設定を参照して、中間バッファ342を共有するように設定されていればS1310に、共有しないように設定されていればS1304−0に遷移する。
S1304−0、S1310以降は図7のS703−0とS710と同様の制御であるため説明を省略する。
Next, the control sequence of the input control unit 520 will be described with reference to FIG.
In S1301, the execution control unit 510 waits for the execution start command 515, and when it is received, the process proceeds to S1302.
If it is determined in S1302 that loop execution is not performed for the first time or loop processing, the process proceeds to S1303-0, and if loop execution is performed for the second time to the last time, the process proceeds to S1310.
In S1303-0, referring to the input sharing setting, if the setting is made so that the intermediate buffer 342 is shared, the process proceeds to S1310, and if the setting is set not to share, the process proceeds to S1304-0.
Since steps S1304-0 and S1310 are the same as those in steps S703-0 and S710 in FIG.

次に、図14を用いて、出力制御部530の制御シーケンスについて説明する。
S1401にて実行制御部510から実行開始命令517を待ち、受信するとS1402に遷移する。
S1402にてループ処理をしない、またはループ処理の最終回を実行する場合はS1403に遷移し、ループ処理の初回〜最終回の1つ手前を実行する場合はS1410遷移する。
S1403では出力共有設定を参照して、中間バッファを共有するように設定されていればS1404−1に、共有しないように設定されていればS1410に遷移する。
S1404−0、S14010以降は図8のS803−0とS810と同様の制御であるため説明を省略する。
以上のように構成することで中間バッファを効率的に利用しつつ、画像データに対して同様の画像処理を複数回適用する事が出来る。
<その他の実施例>
本発明は、上述した実施形態の機能を実現するソフトウェアのコンピュータプログラムコードを記録した記憶媒体を、システム或いは装置に供給することによっても実現できる。この場合、そのシステム或いは装置のコンピュータ(又はCPUやMPU)が読み取り可能に記憶媒体に格納されたコンピュータプログラムコードを読み出し実行することにより、上述した実施形態の機能を実現する。
Next, the control sequence of the output control unit 530 will be described with reference to FIG.
In step S1401, the execution control unit 510 waits for the execution start instruction 517. When the execution start instruction 517 is received, the process proceeds to step S1402.
If the loop process is not performed in S1402 or if the final loop process is executed, the process proceeds to S1403. If the loop process is executed immediately before the first to the last process, the process proceeds to S1410.
In S1403, with reference to the output sharing setting, if the setting is made so that the intermediate buffer is shared, the process proceeds to S1404-1, and if the setting is set not to share, the process proceeds to S1410.
Since S1404-0 and S14010 and after are the same controls as S803-0 and S810 in FIG.
With the configuration described above, the same image processing can be applied to image data a plurality of times while efficiently using the intermediate buffer.
<Other examples>
The present invention can also be realized by supplying a storage medium storing a computer program code of software that implements the functions of the above-described embodiments to a system or apparatus. In this case, the function of the above-described embodiment is realized by reading and executing the computer program code stored in the storage medium so as to be readable by the computer (or CPU or MPU) of the system or apparatus.

100 画像処理装置
110 システム制御部
120 スキャナ制御部
130 画像処理部
140 プリンタ制御部
310 DMAコントローラ
320 中間バッファ制御部a
321 画像入力部
322 画像出力部
323 同期実行部
100 image processing apparatus 110 system control unit 120 scanner control unit 130 image processing unit 140 printer control unit 310 DMA controller 320 intermediate buffer control unit a
321 Image input unit 322 Image output unit 323 Synchronization execution unit

Claims (6)

複数の中間バッファ制御手段を備えるデータ制御装置であって、
前記中間バッファ制御手段は、
DRAMから中間バッファへのデータ転送および前記中間バッファからデータ処理手段へのデータ転送を制御する入力手段と、
前記データ処理手段から前記中間バッファへのデータ転送および前記中間バッファから前記DRAMへのデータ転送を制御する出力手段と、
前記入力手段および前記出力手段のバッファ状態情報を各々保持し、前記バッファ状態情報に応じて、前記入力手段および前記出力手段の動作を制御する同期実行手段とを備え、
前記同期実行手段は、
前記入力手段から実行完了通知を受け取ると、前記入力手段のバッファ状態情報を書込状態と設定し、
前記出力手段から実行完了通知を受け取ると、前記出力手段のバッファ状態情報を読出状態と設定し、
他の中間バッファ制御手段と中間バッファを共有する場合には、該他の中間バッファ制御手段の同期実行手段とバッファ状態情報を相互に送信し、
他の中間バッファ制御手段と中間バッファを共有しない場合には、前記入力手段のバッファ状態情報と前記出力手段のバッファ状態情報を相互に送信し、
同期信号によってそれぞれの同期実行手段のバッファ状態情報を更新する
ことを特徴とするデータ制御装置。
A data control device comprising a plurality of intermediate buffer control means,
The intermediate buffer control means includes
Input means for controlling data transfer from the DRAM to the intermediate buffer and data transfer from the intermediate buffer to the data processing means;
Output means for controlling data transfer from the data processing means to the intermediate buffer and data transfer from the intermediate buffer to the DRAM;
Synchronization holding means for holding buffer status information of the input means and the output means, respectively, and controlling operations of the input means and the output means according to the buffer status information,
The synchronization execution means includes
When the execution completion notification is received from the input means, the buffer status information of the input means is set to the write state,
When the execution completion notification is received from the output means, the buffer status information of the output means is set as a read state,
When the intermediate buffer is shared with other intermediate buffer control means, the synchronization execution means of the other intermediate buffer control means and the buffer status information are mutually transmitted,
When the intermediate buffer is not shared with other intermediate buffer control means, the buffer status information of the input means and the buffer status information of the output means are sent to each other,
A data control apparatus for updating buffer status information of each synchronization execution means by a synchronization signal.
前記入力手段は、前記中間バッファから前記データ処理手段へデータ転送する際、転送開始時に転送開始信号をデータに付加して前記データ処理手段に転送し、所定のデータ量の転送を終えたら転送終了信号をデータに付加して前記データ処理手段に転送し、
前記出力手段は、前記データ処理手段から前記中間バッファ制御手段へデータ転送する際、前記転送開始信号を受信してから前記転送終了信号を受信するまでの間に転送したデータ量から、受信データ量を算出して、前記受信データ量を前記同期実行手段に送信し、
前記同期実行手段は、前記受信データ量に基づいて、前記入力手段がアクセスするDRAM上のアドレスを算出する
ことを特徴とする請求項1に記載のデータ制御装置。
When the data is transferred from the intermediate buffer to the data processing unit, the input unit adds a transfer start signal to the data at the start of transfer and transfers the data to the data processing unit. When the transfer of a predetermined amount of data is completed, the transfer ends. Adding a signal to the data and transferring it to the data processing means;
The output means, when transferring data from the data processing means to the intermediate buffer control means, receives a received data amount from a data amount transferred between receiving the transfer start signal and receiving the transfer end signal. Calculating the received data amount to the synchronization execution means,
The data control apparatus according to claim 1, wherein the synchronization execution unit calculates an address on a DRAM accessed by the input unit based on the received data amount.
第1の中間バッファ制御手段が、第2の中間バッファ制御手段と中間バッファを共有し、
前記第2の中間バッファ制御手段の同期実行手段は、前記第1の中間バッファ制御手段の出力手段が算出した前記受信データ量に基づいて、前記第2の中間バッファ制御手段の入力手段がアクセスするDRAM上のアドレスを算出する
ことを特徴とする請求項2に記載のデータ制御装置。
The first intermediate buffer control means shares the intermediate buffer with the second intermediate buffer control means;
The synchronization execution means of the second intermediate buffer control means is accessed by the input means of the second intermediate buffer control means based on the received data amount calculated by the output means of the first intermediate buffer control means. 3. The data control apparatus according to claim 2, wherein an address on the DRAM is calculated.
前記入力手段が転送するデータ量として、画像データの主走査方向の画素数および副走査方向の画素数が設定され、
前記画像データの転送開始時には前記画像データに転送開始信号とラインスタート信号が付加され、
前記画像データの転送終了時には前記画像データに転送終了信号とラインエンド信号が付加され、
前記画像データの副走査方向における1画素目のデータ転送が行われる際にはラインスタート信号が付加され、
前記画像データの副走査方向における最終画素のデータ転送が行われる際にはラインエンド信号が付加されて、前記データ処理部に転送され、
前記出力手段は前記データ処理手段から転送されるデータに付加された前記ラインスタート信号を検知してから前記ラインエンド信号を検知するまでの画素数を前記受信データ量とする
ことを特徴とする請求項2又は3に記載のデータ制御装置。
As the amount of data transferred by the input means, the number of pixels in the main scanning direction and the number of pixels in the sub-scanning direction of the image data are set,
At the start of transfer of the image data, a transfer start signal and a line start signal are added to the image data,
At the end of the transfer of the image data, a transfer end signal and a line end signal are added to the image data,
When data transfer of the first pixel in the sub-scanning direction of the image data is performed, a line start signal is added,
When data transfer of the final pixel in the sub-scanning direction of the image data is performed, a line end signal is added and transferred to the data processing unit,
The output means uses the number of pixels from detection of the line start signal added to data transferred from the data processing means to detection of the line end signal as the received data amount. Item 4. The data control device according to Item 2 or 3.
スキャン処理に関わる第1のデータ処理手段とプリント処理に関わる第2のデータ処理手段とを備え、
前記第1の中間バッファ制御手段が第1のデータ処理手段に関わるデータ転送を制御し、
前記第2の中間バッファ制御手段が第2のデータ処理手段に関わるデータ転送を制御する
ことを特徴とする請求項3又は4に記載のデータ制御装置。
A first data processing unit related to scan processing and a second data processing unit related to print processing;
The first intermediate buffer control means controls data transfer related to the first data processing means;
5. The data control apparatus according to claim 3, wherein the second intermediate buffer control unit controls data transfer related to the second data processing unit.
複数の中間バッファ制御手段を備えるデータ制御装置の制御方法であって、
前記中間バッファ制御手段は、
DRAMから中間バッファへのデータ転送および前記中間バッファからデータ処理手段へのデータ転送を制御する入力手段と、
前記データ処理手段から前記中間バッファへのデータ転送および前記中間バッファから前記DRAMへのデータ転送を制御する出力手段と、
前記入力手段および前記出力手段のバッファ状態情報を各々保持し、前記バッファ状態情報に応じて、前記入力手段および前記出力手段の動作を制御する同期実行手段とを備え、
前記同期実行手段は、
前記入力手段から実行完了通知を受け取ると、前記入力手段のバッファ状態情報を書込状態と設定し、
前記出力手段から実行完了通知を受け取ると、前記出力手段のバッファ状態情報を読出状態と設定し、
他の中間バッファ制御手段と中間バッファを共有する場合には、該他の中間バッファ制御手段の同期実行手段とバッファ状態情報を相互に送信し、
他の中間バッファ制御手段と中間バッファを共有しない場合には、前記入力手段のバッファ状態情報と前記出力手段のバッファ状態情報を相互に送信し、
同期信号によってそれぞれの同期実行手段のバッファ状態情報を更新する
ことを特徴とするデータ制御方法。
A control method of a data control device comprising a plurality of intermediate buffer control means,
The intermediate buffer control means includes
Input means for controlling data transfer from the DRAM to the intermediate buffer and data transfer from the intermediate buffer to the data processing means;
Output means for controlling data transfer from the data processing means to the intermediate buffer and data transfer from the intermediate buffer to the DRAM;
Synchronization holding means for holding buffer status information of the input means and the output means, respectively, and controlling operations of the input means and the output means according to the buffer status information,
The synchronization execution means includes
When the execution completion notification is received from the input means, the buffer status information of the input means is set to the write state,
When the execution completion notification is received from the output means, the buffer status information of the output means is set as a read state,
When the intermediate buffer is shared with other intermediate buffer control means, the synchronization execution means of the other intermediate buffer control means and the buffer status information are mutually transmitted,
When the intermediate buffer is not shared with other intermediate buffer control means, the buffer status information of the input means and the buffer status information of the output means are sent to each other,
A data control method characterized by updating buffer status information of each synchronization execution means by a synchronization signal.
JP2015130617A 2015-06-30 2015-06-30 Data control apparatus and control method sharing buffer by plural data processing units Active JP6548483B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2015130617A JP6548483B2 (en) 2015-06-30 2015-06-30 Data control apparatus and control method sharing buffer by plural data processing units

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2015130617A JP6548483B2 (en) 2015-06-30 2015-06-30 Data control apparatus and control method sharing buffer by plural data processing units

Publications (2)

Publication Number Publication Date
JP2017016285A true JP2017016285A (en) 2017-01-19
JP6548483B2 JP6548483B2 (en) 2019-07-24

Family

ID=57830576

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2015130617A Active JP6548483B2 (en) 2015-06-30 2015-06-30 Data control apparatus and control method sharing buffer by plural data processing units

Country Status (1)

Country Link
JP (1) JP6548483B2 (en)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2019188233A1 (en) * 2018-03-30 2019-10-03 日立オートモティブシステムズ株式会社 Processing device
WO2020033149A1 (en) * 2018-08-08 2020-02-13 Micron Technology, Inc. Buffer management in memory systems for read and write requests
US10782916B2 (en) 2018-08-08 2020-09-22 Micron Technology, Inc. Proactive return of write credits in a memory system

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3378270B2 (en) * 1992-06-29 2003-02-17 株式会社東芝 Multiprocessor system
JP4719655B2 (en) * 2005-09-27 2011-07-06 株式会社ソニー・コンピュータエンタテインメント Processor control technology on the network

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3378270B2 (en) * 1992-06-29 2003-02-17 株式会社東芝 Multiprocessor system
JP4719655B2 (en) * 2005-09-27 2011-07-06 株式会社ソニー・コンピュータエンタテインメント Processor control technology on the network

Cited By (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2019188233A1 (en) * 2018-03-30 2019-10-03 日立オートモティブシステムズ株式会社 Processing device
JP2019179309A (en) * 2018-03-30 2019-10-17 日立オートモティブシステムズ株式会社 Processor
CN111886588A (en) * 2018-03-30 2020-11-03 日立汽车系统株式会社 Processing apparatus
JP7042138B2 (en) 2018-03-30 2022-03-25 日立Astemo株式会社 Processing equipment
US11768721B2 (en) 2018-03-30 2023-09-26 Hitachi Astemo, Ltd. Processing device
WO2020033149A1 (en) * 2018-08-08 2020-02-13 Micron Technology, Inc. Buffer management in memory systems for read and write requests
US10782916B2 (en) 2018-08-08 2020-09-22 Micron Technology, Inc. Proactive return of write credits in a memory system
US11409436B2 (en) 2018-08-08 2022-08-09 Micron Technology, Inc. Buffer management in memory systems for read and write requests
US11573700B2 (en) 2018-08-08 2023-02-07 Micron Technology, Inc. Buffer management in memory systems for read and write requests
US11650755B2 (en) 2018-08-08 2023-05-16 Micron Technology, Inc. Proactive return of write credits in a memory system

Also Published As

Publication number Publication date
JP6548483B2 (en) 2019-07-24

Similar Documents

Publication Publication Date Title
CN105915780B (en) Image signal processor and apparatus including the same
US6384832B1 (en) Image processing apparatus and image processing system using the apparatus
US8707132B2 (en) Information processing apparatus, information processing method, and storage medium
US8838862B2 (en) Data transfer device, method of transferring data, and image forming apparatus
JP6548483B2 (en) Data control apparatus and control method sharing buffer by plural data processing units
JP2007199815A (en) Memory control device and memory control method
US8982398B2 (en) Image forming apparatus that allows for a multi-operation
JP2006301724A (en) Memory controller, image processing controller and electronic equipment
CN102497514B (en) Three-channel video forwarding equipment and forwarding method
JP2016031547A (en) Signal transfer unit and method for controlling the signal transfer unit
JP3328246B2 (en) DMA transfer method and system
JP2020191520A (en) Imaging device and control method thereof
JP2006094400A (en) Image processor and image processing method
JP3959407B2 (en) Image processing apparatus and image processing system
US20120144150A1 (en) Data processing apparatus
JP4292218B2 (en) Image processing apparatus and image processing system
KR100367084B1 (en) DMA controller for the high speed image processor at real time
JP2014154000A (en) Memory control device, and control method and control program thereof
JP2014130425A (en) Image forming apparatus
JP5889372B2 (en) Information processing apparatus, information processing system, information processing method, control apparatus, and control method
JP2015034891A (en) Register setting control device
JP2004066651A (en) Printing device
JP2005284580A (en) Bus device
JP2008102609A (en) Bus bridge
JP2009193337A (en) Page memory controller

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20180622

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20190227

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20190312

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20190508

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20190528

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20190625

R151 Written notification of patent or utility model registration

Ref document number: 6548483

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R151

RD03 Notification of appointment of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: R3D03