JP2009064341A - Data transfer system - Google Patents

Data transfer system Download PDF

Info

Publication number
JP2009064341A
JP2009064341A JP2007233146A JP2007233146A JP2009064341A JP 2009064341 A JP2009064341 A JP 2009064341A JP 2007233146 A JP2007233146 A JP 2007233146A JP 2007233146 A JP2007233146 A JP 2007233146A JP 2009064341 A JP2009064341 A JP 2009064341A
Authority
JP
Japan
Prior art keywords
input
output device
data
address
transfer
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.)
Pending
Application number
JP2007233146A
Other languages
Japanese (ja)
Inventor
Tetsuji Yamaguchi
哲治 山口
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.)
Murata Machinery Ltd
Original Assignee
Murata Machinery Ltd
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 Murata Machinery Ltd filed Critical Murata Machinery Ltd
Priority to JP2007233146A priority Critical patent/JP2009064341A/en
Publication of JP2009064341A publication Critical patent/JP2009064341A/en
Pending legal-status Critical Current

Links

Images

Abstract

<P>PROBLEM TO BE SOLVED: To provide a data transfer system with improved data transfer efficiency when writing in data from another input/output device into a non-shared region and reading out the data to another input/output device. <P>SOLUTION: The data transfer system consists of an input/output device 110 and an input/output device 120 which are connected in data transferable manner through a PCI bus. The input/output device 110 includes: an address allocation change part which changes the memory address of RAM 113 allocated to an address space of the PCI bus based on a transfer request from the input/output device 120 to which write-in to the non-shared region 113b on the RAM 113 or reading from the non-shared region 113b is specified, and makes part or the whole of the non-shared region 113b a shared region; and a transfer response generation part which generates a transfer response sent out to the input/output device 120 through a PCI bus controller 112 as a response to the transfer request after changing of the memory address by the address allocation change part. <P>COPYRIGHT: (C)2009,JPO&INPIT

Description

本発明は、データ転送システムに係り、さらに詳しくは、PCIバスなどの入出力バスを介して入出力装置間でデータの転送を行うデータ転送システムの改良に関する。   The present invention relates to a data transfer system, and more particularly, to an improvement in a data transfer system that transfers data between input / output devices via an input / output bus such as a PCI bus.

入出力バスを介して入出力装置間でデータの転送を行うデータ転送システムでは、各入出力装置における入出力バスコントローラにより、入出力バスを介して行われるデータ転送の制御が行われる。例えば、カラーコピー機能、ファクシミリ通信機能、ネットワークスキャナ機能及びネットワークプリンタ機能を有する複合機(MultiFunction Peripheral:MFP)では、PCI(Peripheral Component Interconnect)バスを介して行われるデータ転送がPCIコントローラによって制御される(例えば、特許文献1)。   In a data transfer system that transfers data between input / output devices via an input / output bus, the input / output bus controller in each input / output device controls the data transfer performed via the input / output bus. For example, in a multi-function peripheral (MFP) having a color copy function, a facsimile communication function, a network scanner function, and a network printer function, data transfer performed via a PCI (Peripheral Component Interconnect) bus is controlled by the PCI controller. (For example, patent document 1).

一般に、入出力バスを介して行われるデータ転送では、入出力バスコントローラがデータ転送時に使用するアドレス線の数により、入出力バスのバスアドレスからなるアドレス空間のサイズが決定される。この様なアドレス空間に入出力装置内のメモリのメモリアドレスを割り当てる場合のアドレス割当ては、入出力装置の使用目的や機能に応じて入出力装置ごとに適宜定められる。このため、メモリアドレスのビット数に比べて、アドレス空間のサイズが小さい場合や、アドレス空間に割り当てられるメモリアドレスの数が少ない場合に、入出力装置によっては、他の入出力装置と共有できないメモリ領域が生じることになる。すなわち、入出力バスのアドレス空間にメモリアドレスが割り当てられず、他の入出力装置と共有されないメモリ領域(非共有領域)が生じることになる。従来のデータ転送システムでは、この様な非共有領域へ他の入出力装置からデータを書き込む場合、一旦、転送先の入出力装置の共有領域、すなわち、アドレス空間にメモリアドレスが割り当てられたメモリ領域内にデータを書き込ませ、そして、転送元の入出力装置が書き込んだ共有領域上のデータを転送先の入出力装置内で非共有領域に移動させなければならなかった。また、非共有領域から他の入出力装置へデータを読み出す場合、まず、転送元の入出力装置に非共有領域上のデータを共有領域へ移動させ、それから、共有領域上に移動されたデータを転送先の入出力装置に読み出させなければならなかった。このため、データの転送効率が良くないという問題があった。   In general, in data transfer performed via an input / output bus, the size of an address space composed of bus addresses of the input / output bus is determined by the number of address lines used by the input / output bus controller during data transfer. The address assignment in the case of assigning the memory address of the memory in the input / output device to such an address space is appropriately determined for each input / output device according to the purpose and function of the input / output device. For this reason, when the size of the address space is small compared to the number of bits of the memory address or when the number of memory addresses allocated to the address space is small, some input / output devices cannot be shared with other input / output devices. An area will be created. That is, no memory address is assigned to the address space of the input / output bus, and a memory area (non-shared area) that is not shared with other input / output devices is generated. In a conventional data transfer system, when data is written from other input / output devices to such a non-shared area, the shared area of the transfer destination input / output device, that is, a memory area in which a memory address is assigned to the address space. The data on the shared area written by the transfer source input / output device must be moved to the non-shared area in the transfer destination input / output device. When data is read from the non-shared area to another input / output device, first, the transfer source input / output device moves the data on the non-shared area to the shared area, and then moves the data that has been moved to the shared area. The transfer destination I / O device had to be read. Therefore, there is a problem that the data transfer efficiency is not good.

なお、PCIバスを介して入出力装置間でデータ転送を行う技術については、例えば、特許文献2及び3に記載されている。
特開2006−309444号公報 特開2001−243206号公報 国際公開WO2004/088522号
For example, Patent Documents 2 and 3 describe a technique for transferring data between input / output devices via a PCI bus.
JP 2006-309444 A JP 2001-243206 A International Publication WO2004 / 085522

上述した様に、従来のデータ転送システムでは、入出力装置間でデータを転送する際のデータの転送効率が良くないという問題があった。   As described above, the conventional data transfer system has a problem that data transfer efficiency is not good when data is transferred between input / output devices.

本発明は、上記事情に鑑みてなされたものであり、入出力装置間でデータを転送する際のデータの転送効率を向上させたデータ転送システムを提供することを目的としている。特に、非共有領域へ他の入出力装置からデータを書き込む際や非共有領域から他の入出力装置へデータを読み出す際の転送効率を向上させたデータ転送システムを提供することを目的としている。   The present invention has been made in view of the above circumstances, and an object of the present invention is to provide a data transfer system with improved data transfer efficiency when transferring data between input / output devices. In particular, an object of the present invention is to provide a data transfer system with improved transfer efficiency when data is written from another input / output device to a non-shared area or when data is read from the non-shared area to another input / output device.

第1の本発明によるデータ転送システムは、入出力バスを介してデータ転送可能に接続された第1の入出力装置及び第2の入出力装置からなるデータ転送システムであって、上記第1の入出力装置が、上記入出力バスによるデータ転送を制御する第1の入出力バスコントローラと、上記第1の入出力バスコントローラが第1のローカルバスを介して通信可能に接続され、メモリアドレスが上記入出力バスのアドレス空間に割り当てられた共有領域、及び、上記アドレス空間に割り当てられていない非共有領域からなる第1のメモリとを有し、上記第2の入出力装置が、上記入出力バスによるデータ転送を制御する第2の入出力バスコントローラと、上記第2の入出力バスコントローラが第2のローカルバスを介して通信可能に接続された第2のメモリとを有するデータ転送システムである。そして、上記第1の入出力装置は、上記非共有領域への書込み又は非共有領域からの読出しが指定された上記第2の入出力装置からの転送要求に基づいて、上記アドレス空間に割り当てられている上記第1のメモリのメモリアドレスを変更するアドレス割当て変更手段と、上記アドレス割当て変更手段によるメモリアドレスの変更後に上記転送要求に対する応答として上記第1の入出力バスコントローラを介して上記第2の入出力装置へ送出される転送応答を生成する転送応答生成手段とを備えて構成される。   A data transfer system according to a first aspect of the present invention is a data transfer system comprising a first input / output device and a second input / output device connected so as to be able to transfer data via an input / output bus. An input / output device is connected to the first input / output bus controller that controls data transfer through the input / output bus, and the first input / output bus controller is communicable via the first local bus, and the memory address is A first memory including a shared area assigned to the address space of the input / output bus and a non-shared area not assigned to the address space, wherein the second input / output device includes the input / output device. A second input / output bus controller that controls data transfer by the bus and a second input / output bus controller that are communicably connected via a second local bus A data transfer system having a memory. The first input / output device is assigned to the address space based on a transfer request from the second input / output device that is designated to write to or read from the non-shared area. Address allocation changing means for changing the memory address of the first memory, and the second input via the first input / output bus controller as a response to the transfer request after the memory address is changed by the address assignment changing means. Transfer response generating means for generating a transfer response sent to the input / output device.

このデータ転送システムでは、第2の入出力装置が第1の入出力装置の非共有領域へデータを書き込む場合、又は、第2の入出力装置が非共有領域からデータを読み出す場合に、第1の入出力装置により第1のメモリのメモリアドレスが変更される。その際、入出力バスのアドレス空間に割り当てられているメモリアドレスが変更され、メモリアドレスの変更後に転送応答が第2の入出力装置へ送出される。従って、データ転送時に第1の入出力装置においてデータを移動させなくても良いので、第1のメモリ上の非共有領域へ他の入出力装置からデータを書き込む際や非共有領域から他の入出力装置へデータを読み出す際の転送効率を向上させることができる。   In this data transfer system, when the second input / output device writes data to the non-shared area of the first input / output device, or when the second input / output device reads data from the non-shared area, the first The memory address of the first memory is changed by the input / output device. At this time, the memory address assigned to the address space of the input / output bus is changed, and a transfer response is sent to the second input / output device after the memory address is changed. Therefore, since it is not necessary to move data in the first input / output device at the time of data transfer, when data is written from another input / output device to the non-shared area on the first memory or another input from the non-shared area is performed. It is possible to improve transfer efficiency when reading data to the output device.

第2の本発明によるデータ転送システムは、上記構成に加え、上記第1の入出力装置が、データ転送後に送出される上記第2の入出力装置からの転送完了通知に基づいて、上記アドレス割当て変更手段により変更されたメモリアドレスを元に戻すアドレス割当て復元手段を備えて構成される。   In addition to the above configuration, the data transfer system according to the second aspect of the present invention assigns the address assignment based on the transfer completion notification from the second input / output device sent by the first input / output device after data transfer. Address allocation restoring means for restoring the memory address changed by the changing means is provided.

第3の本発明によるデータ転送システムは、上記構成に加え、上記転送応答生成手段が、上記第2の入出力装置によるデータ転送中に第2の入出力装置以外の入出力装置から転送要求を受信した場合に、転送不可を示す不許可応答を当該転送要求に対する応答として生成するように構成される。   In the data transfer system according to the third aspect of the present invention, in addition to the above-described configuration, the transfer response generation means sends a transfer request from an input / output device other than the second input / output device during data transfer by the second input / output device. When received, a non-permission response indicating that transfer is not possible is generated as a response to the transfer request.

第4の本発明によるデータ転送システムは、上記構成に加え、上記アドレス割当て変更手段が、書込み先として連続するメモリアドレスが指定されたデータの書込みの場合であって、書き込み先として指定されたメモリアドレスの数が上記共有領域のメモリアドレスの数よりも多い場合に、データの連続書込みの途中でメモリアドレスを変更するように構成される。   In addition to the above configuration, the data transfer system according to the fourth aspect of the present invention is the case where the address assignment changing means is a case of writing data in which a continuous memory address is specified as a write destination, and the memory specified as the write destination When the number of addresses is larger than the number of memory addresses in the shared area, the memory address is changed during the continuous writing of data.

本発明によるデータ転送システムによれば、データ転送時に第1の入出力装置においてデータを移動させなくても良いので、第1のメモリ上の非共有領域へ他の入出力装置からデータを書き込む際や非共有領域から他の入出力装置へデータを読み出す際のデータの転送効率を向上させることができる。   According to the data transfer system of the present invention, since it is not necessary to move data in the first input / output device at the time of data transfer, when data is written from another input / output device to the non-shared area on the first memory. In addition, it is possible to improve the data transfer efficiency when data is read from the non-shared area to another input / output device.

図1は、本発明の実施の形態によるデータ転送システムの一構成例を示したシステム図であり、データ転送システムの一例としてデジタル複合機100が示されている。このデジタル複合機100は、カラーコピー機能、ファクシミリ通信機能、ネットワークスキャナ機能及びネットワークプリンタ機能を有するデータ処理装置であり、PCIバス10を介してデータ転送可能に接続された複数の入出力装置により構成される。   FIG. 1 is a system diagram showing a configuration example of a data transfer system according to an embodiment of the present invention. A digital multi-function peripheral 100 is shown as an example of a data transfer system. The digital multi-function peripheral 100 is a data processing device having a color copy function, a facsimile communication function, a network scanner function, and a network printer function, and includes a plurality of input / output devices connected to be able to transfer data via the PCI bus 10. Is done.

すなわち、デジタル複合機100は、PCIバス10、PCIブリッジ11、MFPコントローラ20、スキャナ26、カラー画像処理ボード30、ネットワークボード40、プリンタコントローラ50及びプリンタ55により構成されている。   That is, the digital multi-function peripheral 100 includes a PCI bus 10, a PCI bridge 11, an MFP controller 20, a scanner 26, a color image processing board 30, a network board 40, a printer controller 50, and a printer 55.

PCIバス10は、データ伝送路としての入出力バスであり、データを伝送するためのデータ線、メモリアドレスを伝送するためのアドレス線、コマンドを伝送するための制御線などからなる。例えば、32ビットのバス幅の入出力バスがPCIバス10として用いられる。   The PCI bus 10 is an input / output bus as a data transmission path, and includes a data line for transmitting data, an address line for transmitting a memory address, a control line for transmitting a command, and the like. For example, an input / output bus having a 32-bit bus width is used as the PCI bus 10.

PCIブリッジ11は、2つのPCIバス10を互いに接続するための回路である。この例では、一方のPCIバス10にMFPコントローラ20及びネットワークコントローラ40が接続され、他方のPCIバス10にカラー画像処理ボード30及びプリンタコントローラ50が接続されている。この様な2つのPCIバス10は、PCIブリッジ11により、1つの入出力バスとして機能するようになっている。   The PCI bridge 11 is a circuit for connecting two PCI buses 10 to each other. In this example, the MFP controller 20 and the network controller 40 are connected to one PCI bus 10, and the color image processing board 30 and the printer controller 50 are connected to the other PCI bus 10. Such two PCI buses 10 function as one input / output bus by the PCI bridge 11.

MFPコントローラ20は、このデータ転送システムにおけるホストデバイスとして機能する入出力装置であり、カラー画像処理ボード30、ネットワークボード40及びプリンタコントローラ50は、いずれもスレーブデバイスとして機能する入出力装置となっている。   The MFP controller 20 is an input / output device that functions as a host device in this data transfer system, and the color image processing board 30, the network board 40, and the printer controller 50 are all input / output devices that function as slave devices. .

MFPコントローラ20は、ローカルバス25を介して互いに通信可能に接続されたCPU21、PCIホストコントローラ22、割込みコントロールレジスタ23及びRAM24からなる。   The MFP controller 20 includes a CPU 21, a PCI host controller 22, an interrupt control register 23, and a RAM 24 that are communicably connected to each other via a local bus 25.

このMFPコントローラ20では、例えば、スキャナ26により原稿から読み取られたカラー画像データに対して、色空間変換やデータ圧縮などの画像処理を行い、PCIバス10を介してカラー画像処理ボード30又はネットワークボード40に転送し、或いは、カラー画像データをファクシミリ送受信する動作が行われる。   In the MFP controller 20, for example, color image data read from a document by the scanner 26 is subjected to image processing such as color space conversion and data compression, and the color image processing board 30 or the network board via the PCI bus 10. 40, or an operation of transmitting / receiving color image data by facsimile is performed.

スキャナ26は、原稿などの光学読み取りにより、画像データを生成する光学式の画像読取装置であり、例えば、複数の色成分からなるカラー画像データが生成される。   The scanner 26 is an optical image reading device that generates image data by optical reading of a document or the like. For example, color image data including a plurality of color components is generated.

CPU(Central Processing Unit:中央演算処理装置)21は、ローカルバス25を介してPCIホストコントローラ22、割込みコントロールレジスタ23及びRAM24を制御する制御部である。PCIホストコントローラ22は、PCIバス10によるデータ転送を制御する入出力バスコントローラであり、PCIバス10を介してスレーブデバイスとの間で行われる通信の制御を行っている。   A CPU (Central Processing Unit) 21 is a control unit that controls the PCI host controller 22, the interrupt control register 23, and the RAM 24 via the local bus 25. The PCI host controller 22 is an input / output bus controller that controls data transfer via the PCI bus 10, and controls communication performed with a slave device via the PCI bus 10.

割込みコントロールレジスタ23は、このデータ転送システムを構成する入出力装置の1つが他の入出力装置に対して割込みを発生させる際に、割込み要求を書き込むためのメモリである。この割込みコントロールレジスタ23は、自デバイスのCPU21や他のスレーブデバイスのCPU31、41及び51と割込み信号線により接続されており、割込み要求元のデバイスにより割込み要求が書き込まれると、割込み要求先のデバイスに割込み信号が出力される。   The interrupt control register 23 is a memory for writing an interrupt request when one of the input / output devices constituting the data transfer system generates an interrupt to another input / output device. The interrupt control register 23 is connected to the CPU 21 of its own device and the CPUs 31, 41 and 51 of other slave devices through interrupt signal lines. When an interrupt request is written by the interrupt request source device, the interrupt request destination device An interrupt signal is output.

RAM(Random Access Memory)24は、通信データや画像データを保持するための書き換え可能な揮発性の半導体メモリであり、記憶保持に電力供給が必要なメモリとなっている。このRAM24は、例えば、CPU21のメインメモリとして用いられる。RAM24には、自デバイスとPCIバス10を介して接続されたスレーブデバイスがコマンドを書き込むためのメモリ領域としてコマンド領域が設けられている。CPU21は、このコマンド領域を利用してスレーブデバイスと通信を行うことができる。   A RAM (Random Access Memory) 24 is a rewritable volatile semiconductor memory for holding communication data and image data, and is a memory that requires power supply for storage and holding. The RAM 24 is used as a main memory of the CPU 21, for example. In the RAM 24, a command area is provided as a memory area for a slave device connected to the own device via the PCI bus 10 to write a command. The CPU 21 can communicate with the slave device using this command area.

カラー画像処理ボード30は、ローカルバス34を介して互いに通信可能に接続されたCPU31、PCIバスコントローラ32及びRAM33を有する回路基板からなり、画像データを用紙に印刷するための画像処理を行っている。例えば、PCIバス10を介してMFPコントローラ20から転送された色成分YCrCbからなるカラー画像データを色成分CMYKからなる画像データに色空間変換する処理、或いは、色空間変換された画像データをさらに2値化する階調減少処理などが行われる。   The color image processing board 30 includes a circuit board having a CPU 31, a PCI bus controller 32, and a RAM 33 that are communicably connected to each other via a local bus 34, and performs image processing for printing image data on paper. . For example, the process of converting the color image data composed of the color component YCrCb transferred from the MFP controller 20 via the PCI bus 10 into the image data composed of the color component CMYK, or two more pieces of the image data subjected to the color space conversion. A gradation reduction process is performed.

CPU31は、ローカルバス34を介してPCIバスコントローラ32及びRAM33を制御する制御部であり、割込みコントローラが内蔵されている。この割込みコントローラは、割込み信号線を介して割込みコントロールレジスタ23から割込み信号を受信した場合に、割込みを発生させる。   The CPU 31 is a control unit that controls the PCI bus controller 32 and the RAM 33 via the local bus 34 and incorporates an interrupt controller. The interrupt controller generates an interrupt when an interrupt signal is received from the interrupt control register 23 via the interrupt signal line.

PCIバスコントローラ32は、PCIバス10によるデータ転送を制御する入出力バスコントローラであり、PCIバス10を介して他のデバイスとの間で行われる通信の制御を行っている。RAM33は、書き換え可能な揮発性の半導体メモリであり、例えば、CPU31のメインメモリとして用いられる。   The PCI bus controller 32 is an input / output bus controller that controls data transfer via the PCI bus 10, and controls communication performed with other devices via the PCI bus 10. The RAM 33 is a rewritable volatile semiconductor memory, and is used as a main memory of the CPU 31, for example.

ネットワークボード40は、ローカルバス44を介して互いに通信可能に接続されたCPU41、PCIバスコントローラ42及びRAM43を有する回路基板からなり、LANなどの通信ネットワーク45上のクライアントPC46との間で通信を行っている。例えば、PCIバス10を介してMFPコントローラ20から転送された画像データをクライアントPC46へ送信する処理、或いは、クライアントPC46から受信した画像データをファクシミリ送信するために、PCIバス10を介して画像データをMFPコントローラ20に転送する処理が行われる。或いは、クライアントPC46から受信した画像データをプリンタ出力するために、PCIバス10を介して画像データをプリンタコントローラ50に転送する処理が行われる。   The network board 40 is composed of a circuit board having a CPU 41, a PCI bus controller 42, and a RAM 43 that are communicably connected to each other via a local bus 44, and communicates with a client PC 46 on a communication network 45 such as a LAN. ing. For example, in order to send the image data transferred from the MFP controller 20 via the PCI bus 10 to the client PC 46 or to send the image data received from the client PC 46 by facsimile, the image data is sent via the PCI bus 10. A process of transferring to the MFP controller 20 is performed. Alternatively, a process of transferring the image data to the printer controller 50 via the PCI bus 10 is performed in order to output the image data received from the client PC 46 to the printer.

プリンタコントローラ50は、ローカルバス54を介して互いに通信可能に接続されたCPU51、PCIバスコントローラ52及びRAM53からなり、他のデバイスから転送された画像データに基づいてプリンタ55を制御する動作を行っている。例えば、PCIバス10を介してカラー画像処理ボード30から転送され、或いは、ネットワークボード40から転送された画像データに基づいて、プリンタ55が制御される。プリンタ55は、画像データを用紙などに印刷する画像印刷装置である。   The printer controller 50 includes a CPU 51, a PCI bus controller 52, and a RAM 53 that are communicably connected to each other via a local bus 54. The printer controller 50 performs an operation of controlling the printer 55 based on image data transferred from another device. Yes. For example, the printer 55 is controlled based on the image data transferred from the color image processing board 30 via the PCI bus 10 or transferred from the network board 40. The printer 55 is an image printing apparatus that prints image data on paper or the like.

この様にして構成されたデータ転送システムでは、ホストデバイスとして機能するMFPコントローラ20がPCIバス10を介して接続されたカラー画像処理ボード30、ネットワークボード40及びプリンタコントローラ50の各スレーブデバイスとの間で通信を行うことができるとともに、これらのスレーブデバイスがMFPコントローラ20を介さずに互いに通信を行うこともできる。   In the data transfer system configured as described above, the MFP controller 20 functioning as a host device is connected to each of the slave devices of the color image processing board 30, the network board 40, and the printer controller 50 connected via the PCI bus 10. Can communicate with each other, and these slave devices can also communicate with each other without going through the MFP controller 20.

ここで、スレーブデバイス間でMFPコントローラ20を介さずに行われるデータ転送の一例として、カラー画像処理ボード30がコマンド送信側のスレーブデバイスであり、プリンタコントローラ50がコマンド受信側のスレーブデバイスである場合のデータ転送について説明する。   Here, as an example of data transfer performed between the slave devices without using the MFP controller 20, the color image processing board 30 is a slave device on the command transmission side, and the printer controller 50 is a slave device on the command reception side. The data transfer will be described.

まず、コマンド送信側のカラー画像処理ボード30のCPU31は、コマンド受信側のプリンタコントローラ50のRAM53上に設けられている自デバイス、すなわち、カラー画像処理ボード30用のコマンド領域のセマフォ(semaphore)を獲得する。具体的には、CPU31が、自デバイスのRAM33上の所定領域内に上記コマンド領域の使用権を獲得するための情報を書き込むことにより、RAM53上のコマンド領域のセマフォが獲得される。   First, the CPU 31 of the color image processing board 30 on the command transmission side uses its own device provided on the RAM 53 of the printer controller 50 on the command reception side, that is, the semaphore of the command area for the color image processing board 30. To win. Specifically, the CPU 31 writes information for acquiring the right to use the command area in a predetermined area on the RAM 33 of its own device, whereby a semaphore in the command area on the RAM 53 is acquired.

次に、CPU31は、RAM53上のコマンド領域内にコマンドを書き込む。このコマンドの書込みは、PCIバスコントローラ32がPCIバス10を介してプリンタコントローラ50のPCIバスコントローラ52にコマンドを送信し、PCIバスコントローラ52が受信したコマンドをRAM53上のコマンド領域内にローカルバス54を介して書き込むことにより行われる。   Next, the CPU 31 writes a command in the command area on the RAM 53. For writing this command, the PCI bus controller 32 transmits a command to the PCI bus controller 52 of the printer controller 50 via the PCI bus 10, and the command received by the PCI bus controller 52 is stored in the command area on the RAM 53 in the local bus 54. This is done by writing via

次に、CPU31は、転送すべきデータをRAM53上のデータ領域内に書き込む。具体的には、PCIバスコントローラ32がPCIバス10を介してプリンタコントローラ50のPCIバスコントローラ52にデータを送信し、PCIバスコントローラ52が受信したデータをRAM53上のデータ領域内にローカルバス54を介して書き込むことにより行われる。   Next, the CPU 31 writes the data to be transferred in the data area on the RAM 53. Specifically, the PCI bus controller 32 transmits data to the PCI bus controller 52 of the printer controller 50 via the PCI bus 10, and the data received by the PCI bus controller 52 is transferred to the local area in the data area on the RAM 53. This is done by writing via.

コマンド送信側のカラー画像処理ボード30のCPU31は、この様にしてコマンド受信側のRAM53にコマンド及びデータを書き込むと、その旨をコマンド受信側のプリンタコントローラ50に通知するために、割込みを発生させる。すなわち、PCIバスコントローラ32により、プリンタコントローラ50に対して割込みを発生させるための割込み要求が割込みコントロールレジスタ23にPCIバス10を介して書き込まれる。   When the CPU 31 of the color image processing board 30 on the command transmission side writes the command and data in the RAM 53 on the command reception side in this manner, an interrupt is generated to notify the command controller 50 on the command reception side. . That is, the PCI bus controller 32 writes an interrupt request for causing the printer controller 50 to generate an interrupt to the interrupt control register 23 via the PCI bus 10.

この割込み要求の書込みは、PCIバスコントローラ32がPCIバス10を介してPCIホストコントローラ22に割込み要求を送信し、PCIホストコントローラ22が受信した割込み要求を割込みコントロールレジスタ23にローカルバス25を介して書き込むことにより行われる。   In writing the interrupt request, the PCI bus controller 32 transmits an interrupt request to the PCI host controller 22 via the PCI bus 10, and the interrupt request received by the PCI host controller 22 is transmitted to the interrupt control register 23 via the local bus 25. This is done by writing.

カラー画像処理ボード30からプリンタコントローラ50への割込み要求が割込みコントロールレジスタ23にセットされると、割込みコントロールレジスタ23から割込み信号線を介してプリンタコントローラ50のCPU51に割込み信号が送信される。この様にして、CPU31がプリンタコントローラ50のCPU51に対して割込みを発生させることにより、コマンド及びデータの書込み完了がプリンタコントローラ50に通知される。   When an interrupt request from the color image processing board 30 to the printer controller 50 is set in the interrupt control register 23, an interrupt signal is transmitted from the interrupt control register 23 to the CPU 51 of the printer controller 50 via the interrupt signal line. In this way, when the CPU 31 generates an interrupt to the CPU 51 of the printer controller 50, the completion of writing of the command and data is notified to the printer controller 50.

一方、書込み完了が通知されたプリンタコントローラ50のCPU51は、RAM53内におけるカラー画像処理ボード30用のコマンド領域からコマンドを読出し、データ領域からデータを読み出す。   On the other hand, the CPU 51 of the printer controller 50 notified of the completion of writing reads the command from the command area for the color image processing board 30 in the RAM 53 and reads the data from the data area.

次に、CPU51は、データ領域から読み出したデータに対して、カラー画像処理ボード30用のコマンド領域から読み出したコマンドに対応する処理を実行し、カラー画像処理ボード30用のコマンド領域からコマンド及びデータを読み出したことをコマンド送信側に通知するために、カラー画像処理ボード30に対して割込みを発生させる。   Next, the CPU 51 executes processing corresponding to the command read from the command area for the color image processing board 30 on the data read from the data area, and executes the command and data from the command area for the color image processing board 30. Is interrupted to the color image processing board 30 in order to notify the command transmission side that the data has been read out.

すなわち、PCIバスコントローラ52により、カラー画像処理ボード30に対して割込みを発生させるための割込み要求が割込みコントロールレジスタ23にPCIバス10を介して書き込まれる。   That is, the PCI bus controller 52 writes an interrupt request for causing the color image processing board 30 to generate an interrupt to the interrupt control register 23 via the PCI bus 10.

この割込み要求の書込みは、PCIバスコントローラ52がPCIバス10を介してPCIホストコントローラ22に割込み要求を送信し、PCIホストコントローラ22が受信した割込み要求を割込みコントロールレジスタ23にローカルバス25を介して書き込むことにより行われる。   For writing the interrupt request, the PCI bus controller 52 transmits an interrupt request to the PCI host controller 22 via the PCI bus 10, and the interrupt request received by the PCI host controller 22 is transmitted to the interrupt control register 23 via the local bus 25. This is done by writing.

プリンタコントローラ50からカラー画像処理ボード30への割込み要求が割込みコントロールレジスタ23にセットされると、割込みコントロールレジスタ23から割込み信号線を介してカラー画像処理ボード30のCPU31に割込み信号が送信される。   When an interrupt request from the printer controller 50 to the color image processing board 30 is set in the interrupt control register 23, an interrupt signal is transmitted from the interrupt control register 23 to the CPU 31 of the color image processing board 30 via the interrupt signal line.

カラー画像処理ボード30のCPU31は、割込みコントロールレジスタ23からの割込み信号の受信により、自デバイス用のコマンド領域に書き込んだコマンド及びデータがプリンタコントローラ50のCPU51によって読み出されて不要になったと判断する。そして、CPU31は、RAM53内における自デバイス用のコマンド領域に未使用であることを示すコマンドを書き込み、RAM33内の所定領域に上記コマンド領域の使用権を返却するための情報を書き込んで、自デバイス用のコマンド領域のセマフォを返却してこの通信を終了する。   When the CPU 31 of the color image processing board 30 receives the interrupt signal from the interrupt control register 23, the CPU 31 of the printer controller 50 determines that the command and data written in the command area for the device itself are no longer necessary. . Then, the CPU 31 writes a command indicating that it is not used in the command area for its own device in the RAM 53 and writes information for returning the right to use the command area in a predetermined area in the RAM 33. The semaphore in the command area is returned and this communication is terminated.

本実施の形態では、この様にしてPCIバス10を介して行われるスレーブデバイス間のデータ転送と、ホストデバイス及びスレーブデバイス間で行われるデータ転送において、他の入出力装置がメモリ上の非共有領域へデータを書き込む場合や、他の入出力装置が非共有領域からデータを読み出す場合に、非共有領域を有する入出力装置によりメモリアドレスを変更する動作が行われる。   In this embodiment, in the data transfer between the slave devices performed through the PCI bus 10 in this manner and the data transfer performed between the host device and the slave device, other input / output devices are not shared on the memory. When data is written to the area or when another input / output device reads data from the non-shared area, an operation to change the memory address is performed by the input / output apparatus having the non-shared area.

図2は、図1のデジタル複合機100の要部における構成例を示したブロック図であり、PCIバス10により接続された入出力装置110及び120が示されている。入出力装置110及び120は、いずれもデータ転送システムを構成するホストデバイス又はスレーブデバイスである。   FIG. 2 is a block diagram illustrating a configuration example of a main part of the digital multifunction peripheral 100 of FIG. 1, in which input / output devices 110 and 120 connected by the PCI bus 10 are illustrated. The input / output devices 110 and 120 are both host devices or slave devices that constitute the data transfer system.

ここでは、MFPコントローラ20、カラー画像処理ボード30、ネットワークボード40及びプリンタコントローラ50の各入出力装置のうち、RAM113上に共有領域113a及び非共有領域113bを有する入出力装置110を第1の入出力装置「デバイスA」とする。一方、「デバイスA」とは異なる入出力装置120を第2の入出力装置「デバイスB」とする。   Here, among the input / output devices of the MFP controller 20, the color image processing board 30, the network board 40, and the printer controller 50, the input / output device 110 having the shared area 113a and the non-shared area 113b on the RAM 113 is first input. The output device is “device A”. On the other hand, an input / output device 120 different from “device A” is set as a second input / output device “device B”.

すなわち、入出力装置110は、CPU111、PCIバスコントローラ112、共有領域113a、非共有領域113b及びローカルバス114からなる。入出力装置120は、CPU121、PCIバスコントローラ122、RAM123及びローカルバス124からなる。   That is, the input / output device 110 includes a CPU 111, a PCI bus controller 112, a shared area 113a, a non-shared area 113b, and a local bus 114. The input / output device 120 includes a CPU 121, a PCI bus controller 122, a RAM 123, and a local bus 124.

共有領域113aは、PCIバス10のアドレス空間にメモリアドレスが割り当てられ、PCIバス10を介して他の入出力装置と共有されるメモリ領域からなる。一方、非共有領域113bは、PCIバス10のアドレス空間にメモリアドレスが割り当てられず、他の入出力装置と共有されないメモリ領域からなる。   The shared area 113 a is a memory area in which a memory address is assigned to the address space of the PCI bus 10 and is shared with other input / output devices via the PCI bus 10. On the other hand, the non-shared area 113b is a memory area that is not assigned a memory address in the address space of the PCI bus 10 and is not shared with other input / output devices.

つまり、RAM113は、メモリアドレスがPCIバス10のアドレス空間に割り当てられた共有領域113aと、メモリアドレスがアドレス空間に割り当てられていない非共有領域113bとからなるメモリとなっている。   That is, the RAM 113 is a memory composed of a shared area 113a in which the memory address is assigned to the address space of the PCI bus 10 and a non-shared area 113b in which the memory address is not assigned to the address space.

デジタル複合機100には、この様な入出力装置110及び120がそれぞれ1以上存在するものとする。この様な入出力装置間で行われるデータ転送において、入出力装置120が入出力装置110の非共有領域113bへデータを書き込む場合と、入出力装置120が非共有領域113bからデータを読み出す場合に、非共有領域113bを含むRAM113のメモリアドレスが変更される。   It is assumed that the digital multifunction peripheral 100 includes one or more such input / output devices 110 and 120. In such data transfer between the input / output devices, the input / output device 120 writes data to the non-shared area 113b of the input / output device 110 and the input / output device 120 reads data from the non-shared area 113b. The memory address of the RAM 113 including the non-shared area 113b is changed.

具体的には、入出力装置120からの転送要求に基づいて、PCIバス10のアドレス空間に割り当てられているRAM113のメモリアドレスが変更される。その際、非共有領域113bの一部又は全部が共有領域として機能するように、メモリアドレスが変更される。   More specifically, the memory address of the RAM 113 assigned to the address space of the PCI bus 10 is changed based on a transfer request from the input / output device 120. At that time, the memory address is changed so that a part or all of the non-shared area 113b functions as a shared area.

一般に、PCIバス10のアドレス空間は、PCIバス10のバスアドレスからなる仮想空間であり、PCIバスコントローラがPCIバス10を介してデータを転送する際に使用するアドレス線の数に応じてそのサイズが定められる。   In general, the address space of the PCI bus 10 is a virtual space composed of the bus addresses of the PCI bus 10, and the size thereof depends on the number of address lines used when the PCI bus controller transfers data via the PCI bus 10. Is determined.

アドレス空間には、PCIバス10を介して互いにデータ転送可能に接続されている入出力装置ごとに、メモリアドレスの割当て領域が形成される。例えば、入出力装置110のRAM113に対するアドレス割当てが配置される割当て領域と、入出力装置120のRAM123に対するアドレス割当てが配置される割当て領域が形成される。   In the address space, a memory address allocation area is formed for each input / output device connected to be able to transfer data to each other via the PCI bus 10. For example, an allocation area in which address allocation to the RAM 113 of the input / output device 110 is arranged and an allocation area in which address allocation to the RAM 123 of the input / output device 120 is arranged are formed.

このとき、RAMのメモリアドレスのビット数や記憶容量に比べて、アドレス空間が小さくて割当て領域が狭い場合、又は、アドレス空間のサイズがたとえ大きくても、メモリアドレスが割り当てられる割当て領域が狭い場合に、アドレス空間にメモリアドレスが割り当てられないメモリ領域、すなわち、非共有領域が生じることになる。入出力装置110の場合、アドレス空間には、RAM113内のメモリ領域のうち、共有領域113aに対してだけメモリアドレスが対応する割当て領域内に割り当てられている。   At this time, when the address space is small and the allocation area is small compared to the number of bits and the storage capacity of the memory address of the RAM, or the allocation area to which the memory address is allocated is small even if the address space size is large In addition, a memory area in which no memory address is assigned to the address space, that is, a non-shared area is generated. In the case of the input / output device 110, a memory address is allocated to the address space only in the allocation area corresponding to the shared area 113a in the memory area in the RAM 113.

一方、割当て領域が大きい場合には、非共有領域が生じることはなく、RAMの全メモリアドレスがアドレス空間に割り当てられる。   On the other hand, when the allocation area is large, no non-shared area is generated, and all memory addresses of the RAM are allocated to the address space.

図3は、図2の入出力装置110におけるCPU111の構成例を示したブロック図である。このCPU111は、アドレス割当て変更部1、転送応答生成部2、デフォルト情報記憶部3、アドレス割当て記憶部4、転送制御部5及びアドレス割当て復元部6により構成される。   FIG. 3 is a block diagram showing a configuration example of the CPU 111 in the input / output device 110 of FIG. The CPU 111 includes an address assignment change unit 1, a transfer response generation unit 2, a default information storage unit 3, an address assignment storage unit 4, a transfer control unit 5, and an address assignment restoration unit 6.

アドレス割当て変更部1は、非共有領域113bへの書込み又は非共有領域113bからの読出しが指定された入出力装置120からの転送要求に基づいて、PCIバス10のアドレス空間に割り当てられているRAM113のメモリアドレスを変更する動作を行っている。このメモリアドレスの変更では、アドレス空間に割り当てられていなかったメモリ領域を共有領域とし、共有領域としてメモリアドレスが割り当てられていたメモリ領域を非共有領域とする処理が行われる。   The address assignment changing unit 1 is a RAM 113 assigned to the address space of the PCI bus 10 based on a transfer request from the input / output device 120 that is designated to write to the non-shared area 113b or to read from the non-shared area 113b. The operation to change the memory address is performed. In this memory address change, a process is performed in which a memory area that has not been assigned to the address space is used as a shared area, and a memory area that has been assigned a memory address as a shared area is used as a non-shared area.

このアドレス割当て変更部1では、デフォルト情報として予め定められたアドレス割当てに基づいてメモリアドレスを変更する処理が行われる。デフォルト情報記憶部3には、この様な予め定められたアドレス割当て、すなわち、アドレス空間に対するメモリアドレスの割当て情報がデフォルト情報として保持されている。一方、アドレス割当て記憶部4には、変更後のアドレス割当てが保持される。   In the address assignment changing unit 1, a process of changing the memory address based on an address assignment predetermined as default information is performed. The default information storage unit 3 holds such predetermined address allocation, that is, memory address allocation information for the address space as default information. On the other hand, the address assignment storage unit 4 holds the changed address assignment.

ここでは、アドレス割当てとして、複数のメモリアドレスがそれぞれPCIバス10の異なるバスアドレスに対応づけて保持されているものとする。   Here, as the address assignment, it is assumed that a plurality of memory addresses are held in association with different bus addresses of the PCI bus 10, respectively.

また、アドレス割当て変更部1が、書込み先として連続するメモリアドレスが指定されたデータの書込みの場合であって、書込み先として指定されたメモリアドレスの数が共有領域のメモリアドレスの数よりも多い場合に、データの連続書込みの途中でメモリアドレスを変更する動作が行われるものとする。   Further, the address allocation changing unit 1 is a case of writing data in which a continuous memory address is specified as a write destination, and the number of memory addresses specified as the write destination is larger than the number of memory addresses in the shared area. In this case, it is assumed that an operation for changing the memory address is performed during the continuous writing of data.

転送応答生成部2は、入出力装置120からの転送要求に基づいて、転送応答を生成する動作を行っている。この転送応答は、PCIバスコントローラ112を介して入出力装置120へ送出される。   The transfer response generation unit 2 performs an operation of generating a transfer response based on the transfer request from the input / output device 120. This transfer response is sent to the input / output device 120 via the PCI bus controller 112.

具体的には、非共有領域113bへの書込み又は非共有領域113bからの読出しが指定された転送要求に対して、アドレス割当て変更部1によるメモリアドレスの変更後に、転送要求に対する応答として転送応答が生成され、入出力装置120へ送出される。   Specifically, for a transfer request in which writing to the non-shared area 113b or reading from the non-shared area 113b is specified, a transfer response is returned as a response to the transfer request after the memory allocation is changed by the address assignment changing unit 1. It is generated and sent to the input / output device 120.

この転送応答生成部2は、不許可応答生成部2aを有し、入出力装置120によるデータ転送中に入出力装置120以外の入出力装置から転送要求を受信した場合に、転送不可を示す不許可応答が当該転送要求に対する応答として生成される。   The transfer response generation unit 2 includes a non-permission response generation unit 2a. When a transfer request is received from an input / output device other than the input / output device 120 during data transfer by the input / output device 120, the transfer response generation unit 2 A permission response is generated as a response to the transfer request.

つまり、データ転送中に他の入出力装置から転送要求があった場合に、当該入出力装置に対して転送不可を通知することによる排他制御が行われる。この様な排他制御により、他の入出力装置がRAM113上の非共有領域へデータを誤転送してしまうのを防止することができる。   In other words, when there is a transfer request from another input / output device during data transfer, exclusive control is performed by notifying the input / output device that transfer is not possible. Such exclusive control can prevent other input / output devices from erroneously transferring data to a non-shared area on the RAM 113.

転送制御部5は、アドレス割当て記憶部4内に保持されているアドレス割当てに基づいて、PCIバスコントローラ112及びRAM113間におけるデータ転送の制御を行っている。   The transfer control unit 5 controls data transfer between the PCI bus controller 112 and the RAM 113 based on the address assignment held in the address assignment storage unit 4.

アドレス割当て復元部6は、データ転送後に送出される入出力装置120からの転送完了通知に基づいて、アドレス割当て変更部1により変更されたRAM113のメモリアドレスを元の状態に戻す動作を行っている。このメモリアドレスを元の状態に戻す動作は、デフォルト情報記憶部3からデフォルト情報を読み出して行われ、復元後のアドレス割当てがアドレス割当て記憶部4に書き込まれる。   The address assignment restoring unit 6 performs an operation of returning the memory address of the RAM 113 changed by the address assignment changing unit 1 to the original state based on the transfer completion notification sent from the input / output device 120 sent after the data transfer. . The operation of returning the memory address to the original state is performed by reading the default information from the default information storage unit 3 and the restored address assignment is written in the address assignment storage unit 4.

図4は、図3のCPU111における動作の一例を示した図であり、デフォルト情報として予め定められているアドレス割当て3aと、変更後のアドレス割当て4a及び4bが示されている。デフォルト情報として予め定められているアドレス割当て3aでは、RAM113上のメモリ領域A1を共有領域としてメモリアドレスがアドレス空間に割り当てられており、このメモリ領域A1以外のメモリ領域、すなわち、メモリ領域A2が非共有領域となっている。   FIG. 4 is a diagram showing an example of the operation in the CPU 111 of FIG. 3, and shows address assignment 3a that is predetermined as default information and changed address assignments 4a and 4b. In the address allocation 3a predetermined as default information, a memory address is allocated to an address space using the memory area A1 on the RAM 113 as a shared area, and a memory area other than the memory area A1, that is, the memory area A2 is not stored. It is a shared area.

つまり、PCIバス10を介して行われるデータ転送では、他の入出力装置がメモリ領域A1内にデータを書込み、或いは、メモリ領域A1内からデータを読み出すことができる。   That is, in data transfer performed via the PCI bus 10, another input / output device can write data into the memory area A1 or read data from the memory area A1.

アドレス割当て変更部1では、この様な予め定められているアドレス割当て3aに対して、他の入出力装置からの転送要求に基づいてアドレス空間に割り当てられているメモリアドレスを変更する動作が行われる。変更後のアドレス割当て4aでは、非共有領域であったメモリ領域A2の一部が共有領域B12としてメモリアドレスがアドレス空間に割り当てられ、共有領域であったメモリ領域A1の一部が非共有領域B11となっている。非共有領域であったメモリ領域A2の他の部分は、そのまま非共有領域B13となっている。   The address assignment changing unit 1 performs an operation of changing the memory address assigned to the address space based on a transfer request from another input / output device in response to such a predetermined address assignment 3a. . In the address assignment 4a after the change, a part of the memory area A2 that was a non-shared area is assigned to the address space as a shared area B12, and a part of the memory area A1 that was a shared area is assigned to the non-shared area B11. It has become. The other part of the memory area A2 that was the non-shared area is the non-shared area B13 as it is.

また、変更後のアドレス割当て4bでは、非共有領域であったメモリ領域A2の全部が共有領域B22としてメモリアドレスがアドレス空間に割り当てられ、共有領域であったメモリ領域A1の全部が非共有領域B21となっている。   In the changed address assignment 4b, all of the memory area A2 that was the non-shared area is assigned to the address space as the shared area B22, and all of the memory area A1 that was the shared area is the non-shared area B21. It has become.

この様に、他の入出力装置からの転送要求に応じてRAM113のメモリアドレスを変更することにより、デフォルトで非共有領域であったメモリ領域A2に他の入出力装置がデータを書き込み、或いは、メモリ領域A2からデータを読み出すことができる。   In this way, by changing the memory address of the RAM 113 in response to a transfer request from another input / output device, the other input / output device writes data into the memory area A2 which is a non-shared area by default, or Data can be read from the memory area A2.

図5は、図2の入出力装置110及び120間でPCIバス10を介して行われるデータ転送の一例を示したシーケンス図であり、入出力装置120が入出力装置110へデータを書き込む場合が示されている。入出力装置120「デバイスB」から入出力装置110「デバイスA」にPCIバス10を介してデータを転送する場合、まず、入出力装置120のCPU121は、転送要求として送信コマンドを発行し、PCIバスコントローラ122を介して入出力装置110へ送出する(ステップS101)。   FIG. 5 is a sequence diagram illustrating an example of data transfer performed between the input / output devices 110 and 120 of FIG. 2 via the PCI bus 10, and the input / output device 120 may write data to the input / output device 110. It is shown. When data is transferred from the input / output device 120 “device B” to the input / output device 110 “device A” via the PCI bus 10, first, the CPU 121 of the input / output device 120 issues a transmission command as a transfer request, and PCI The data is sent to the input / output device 110 via the bus controller 122 (step S101).

入出力装置110のCPU111は、入出力装置120からの送信コマンドを受信すると、当該送信コマンドに基づいてRAM113に対するアドレス割当てを変更する(ステップS102)。   When receiving the transmission command from the input / output device 120, the CPU 111 of the input / output device 110 changes the address assignment to the RAM 113 based on the transmission command (step S102).

次に、CPU111は、アドレス割当ての変更後、転送応答として当該送信コマンドのレスポンスを発行し、PCIバスコントローラ112を介して入出力装置120へ送出する(ステップS103)。   Next, after changing the address assignment, the CPU 111 issues a response to the transmission command as a transfer response, and sends the response to the input / output device 120 via the PCI bus controller 112 (step S103).

CPU121は、このレスポンスを受信すると、PCIバスコントローラ122を介して入出力装置110のRAM113に対するデータの書込みを行う(ステップS104)。   Upon receiving this response, the CPU 121 writes data to the RAM 113 of the input / output device 110 via the PCI bus controller 122 (step S104).

次に、CPU121は、データの書込みが終了し、データ転送が完了すると、転送完了通知として送信完了コマンドを発行し、PCIバスコントローラ122を介して入出力装置110へ送出する(ステップS105,S106)。   Next, when the data writing is completed and the data transfer is completed, the CPU 121 issues a transmission completion command as a transfer completion notification and sends it to the input / output device 110 via the PCI bus controller 122 (steps S105 and S106). .

入出力装置110のCPU111は、入出力装置120からの送信完了コマンドを受信すると、アドレス割当てを元の状態に戻す(ステップS107)。次に、CPU111は、送信完了コマンドのレスポンスを発行し、この処理を終了する(ステップS108)。   When receiving the transmission completion command from the input / output device 120, the CPU 111 of the input / output device 110 returns the address assignment to the original state (step S107). Next, the CPU 111 issues a response to the transmission completion command, and ends this process (step S108).

送信完了コマンドのレスポンスは、PCIバスコントローラ112を介して入出力装置120へ送出され、CPU121は、入出力装置110からの当該レスポンスを受信すると、その受信結果に基づいてこの処理を終了する。   The response to the transmission completion command is sent to the input / output device 120 via the PCI bus controller 112. Upon receiving the response from the input / output device 110, the CPU 121 ends this processing based on the reception result.

本実施の形態によれば、データ転送時に入出力装置110においてデータを移動させなくても良いので、RAN113上の非共有領域113bへ他の入出力装置からデータを書き込む際や非共有領域113bから他の入出力装置へデータを読み出す際の転送効率を向上させることができる。   According to the present embodiment, it is not necessary to move data in the input / output device 110 during data transfer. Therefore, when data is written from another input / output device to the non-shared area 113b on the RAN 113 or from the non-shared area 113b. It is possible to improve the transfer efficiency when reading data to another input / output device.

特に、入出力装置120からの転送完了通知に基づいてメモリアドレスが元の状態に自動的に戻されるので、データ転送の終了後に他の入出力装置によってRAM113にデータが誤書込みされるのを防止することができる。また、書込み先として連続するメモリアドレスが指定されたデータの書込みの場合であって、書込み先として指定されたメモリアドレスの数が共有領域のメモリアドレスの数よりも多い場合に、データの連続書込みの途中でメモリアドレスが変更されるので、転送効率をさらに向上させることができる。   In particular, since the memory address is automatically restored to the original state based on the transfer completion notification from the input / output device 120, it is possible to prevent data from being erroneously written to the RAM 113 by another input / output device after the data transfer is completed. can do. In addition, when data is written with a continuous memory address specified as the write destination and the number of memory addresses specified as the write destination is greater than the number of memory addresses in the shared area, continuous data write Since the memory address is changed during the transfer, the transfer efficiency can be further improved.

なお、本実施の形態では、データ転送後に送出される入出力装置120からの転送完了通知に基づいてアドレス割当て変更部1により変更されたメモリアドレスが元の状態に戻される場合の例について説明したが、本発明はこれに限られるものではない。例えば、データ転送の終了後、他の入出力装置からの転送要求が受信した場合に、当該転送要求の受信結果に基づいてメモリアドレスを元の状態に戻すようなものであっても良い。   In this embodiment, an example has been described in which the memory address changed by the address assignment changing unit 1 is returned to the original state based on the transfer completion notification from the input / output device 120 sent after data transfer. However, the present invention is not limited to this. For example, when a transfer request from another input / output device is received after the data transfer is completed, the memory address may be returned to the original state based on the reception result of the transfer request.

また、本実施の形態では、入出力装置120によるデータ転送中に入出力装置120以外の入出力装置から転送要求を受信した際に、不許可応答が当該転送要求に対する応答として送出される場合の例について説明したが、本発明はこれに限られるものではない。例えば、データ転送中に他の入出力装置からの転送要求が受信した場合に、データ転送が終了して、RAM113のメモリアドレスが元の状態に戻されるまで、当該転送要求に対する応答を送出しないようなものであっても良い。   In this embodiment, when a transfer request is received from an input / output device other than the input / output device 120 during data transfer by the input / output device 120, a non-permission response is sent as a response to the transfer request. Although an example has been described, the present invention is not limited to this. For example, when a transfer request from another input / output device is received during data transfer, a response to the transfer request is not sent until the data transfer is completed and the memory address of the RAM 113 is returned to the original state. It may be anything.

また、本実施の形態では、CPUがPCIバスコントローラ及びRAM間におけるデータの送受信を行う場合の例について説明したが、本発明はこれに限られるものではない。例えば、入出力装置内にDMA(Direct Memory Access)コントローラを設け、このDMAコントローラがCPUからの指示に基づいて動作することにより、CPUを介さずにPCIバスコントローラ及びRAM間でデータが送受信されるようにしても良い。この様に、DMAコントローラにデータの送受信を行わせることにより、CPUの負荷を低減することができる。   In this embodiment, an example in which the CPU transmits and receives data between the PCI bus controller and the RAM has been described. However, the present invention is not limited to this. For example, a DMA (Direct Memory Access) controller is provided in the input / output device, and when this DMA controller operates based on an instruction from the CPU, data is transmitted and received between the PCI bus controller and the RAM without going through the CPU. You may do it. In this way, the CPU load can be reduced by causing the DMA controller to transmit and receive data.

DMAコントローラを用いてPCIバスコントローラ及びRAM間のデータの送受信を行わせる際、DMAコントローラがアクセスできないメモリ領域が存在する場合には、SRAM(Static Random Access Memory)などの不揮発性メモリからなるワークバッファに一旦、データを受信して転送することが考えられる。   When data is transmitted / received between the PCI bus controller and the RAM using the DMA controller, if there is a memory area that cannot be accessed by the DMA controller, a work buffer composed of a nonvolatile memory such as SRAM (Static Random Access Memory) It is conceivable that data is once received and transferred.

本発明の実施の形態によるデータ転送システムの一構成例を示したシステム図であり、データ転送システムの一例としてデジタル複合機100が示されている。1 is a system diagram showing a configuration example of a data transfer system according to an embodiment of the present invention, in which a digital multifunction peripheral 100 is shown as an example of a data transfer system. 図1のデジタル複合機100の要部における構成例を示したブロック図であり、PCIバス10により接続された入出力装置110及び120が示されている。FIG. 2 is a block diagram illustrating a configuration example of a main part of the digital multifunction peripheral 100 of FIG. 1, in which input / output devices 110 and 120 connected by a PCI bus 10 are illustrated. 図2の入出力装置110におけるCPU111の構成例を示したブロック図である。FIG. 3 is a block diagram illustrating a configuration example of a CPU 111 in the input / output device 110 in FIG. 2. 図3のCPU111における動作の一例を示した図であり、予め定められているアドレス割当て3a、変更後のアドレス割当て4a及び4bが示されている。It is the figure which showed an example of the operation | movement in CPU111 of FIG. 3, and the predetermined address assignment 3a and the changed address assignments 4a and 4b are shown. 図2の入出力装置110及び120間でPCIバス10を介して行われるデータ転送の一例を示したシーケンス図である。FIG. 3 is a sequence diagram showing an example of data transfer performed between the input / output devices 110 and 120 of FIG. 2 via the PCI bus 10.

符号の説明Explanation of symbols

1 アドレス割当て変更部
2 転送応答生成部
3 デフォルト情報記憶部
4 アドレス割当て記憶部
5 転送制御部
6 アドレス割当て復元部
10 PCIバス
11 PCIブリッジ
20 MFPコントローラ
21,31,41,51 CPU
22 PCIホストコントローラ
23 割込みコントロールレジスタ
24,33,43,53 RAM
25,34,44,54 ローカルバス
26 スキャナ
30 カラー画像処理ボード
32,42,52 PCIバスコントローラ
40 ネットワークボード
50 プリンタコントローラ
55 プリンタ
100 デジタル複合機
110,120 入出力装置
111,121 CPU
112,122 PCIバスコントローラ
113,123 RAM
113a 共有領域
113b 非共有領域
114,124 ローカルバス
DESCRIPTION OF SYMBOLS 1 Address allocation change part 2 Transfer response production | generation part 3 Default information storage part 4 Address assignment storage part 5 Transfer control part 6 Address assignment restoration part 10 PCI bus 11 PCI bridge 20 MFP controller 21, 31, 41, 51 CPU
22 PCI host controller 23 Interrupt control registers 24, 33, 43, 53 RAM
25, 34, 44, 54 Local bus 26 Scanner 30 Color image processing board 32, 42, 52 PCI bus controller 40 Network board 50 Printer controller 55 Printer 100 Digital multi-function peripheral 110, 120 Input / output devices 111, 121 CPU
112, 122 PCI bus controller 113, 123 RAM
113a Shared area 113b Non-shared area 114, 124 Local bus

Claims (4)

入出力バスを介してデータ転送可能に接続された第1の入出力装置及び第2の入出力装置からなるデータ転送システムであって、
上記第1の入出力装置は、上記入出力バスによるデータ転送を制御する第1の入出力バスコントローラと、上記第1の入出力バスコントローラが第1のローカルバスを介して通信可能に接続され、メモリアドレスが上記入出力バスのアドレス空間に割り当てられた共有領域、及び、上記アドレス空間に割り当てられていない非共有領域からなる第1のメモリとを有し、
上記第2の入出力装置は、上記入出力バスによるデータ転送を制御する第2の入出力バスコントローラと、上記第2の入出力バスコントローラが第2のローカルバスを介して通信可能に接続された第2のメモリとを有するデータ転送システムにおいて、
上記第1の入出力装置は、上記非共有領域への書込み又は非共有領域からの読出しが指定された上記第2の入出力装置からの転送要求に基づいて、上記アドレス空間に割り当てられている上記第1のメモリのメモリアドレスを変更するアドレス割当て変更手段と、
上記アドレス割当て変更手段によるメモリアドレスの変更後に上記転送要求に対する応答として上記第1の入出力バスコントローラを介して上記第2の入出力装置へ送出される転送応答を生成する転送応答生成手段とを備えたことを特徴とするデータ転送システム。
A data transfer system comprising a first input / output device and a second input / output device connected to be able to transfer data via an input / output bus,
The first input / output device is connected to a first input / output bus controller that controls data transfer through the input / output bus, and the first input / output bus controller is communicable via a first local bus. A first memory including a shared area in which a memory address is assigned to the address space of the input / output bus and a non-shared area that is not assigned to the address space;
The second input / output device is connected to a second input / output bus controller that controls data transfer through the input / output bus, and the second input / output bus controller is communicable via a second local bus. A data transfer system having a second memory,
The first input / output device is assigned to the address space based on a transfer request from the second input / output device that is designated to write to or read from the non-shared area. Address assignment changing means for changing the memory address of the first memory;
Transfer response generating means for generating a transfer response sent to the second input / output device via the first input / output bus controller as a response to the transfer request after the memory address is changed by the address allocation changing means; A data transfer system characterized by comprising.
上記第1の入出力装置が、データ転送後に送出される上記第2の入出力装置からの転送完了通知に基づいて、上記アドレス割当て変更手段により変更されたメモリアドレスを元に戻すアドレス割当て復元手段を備えたことを特徴とする請求項1に記載のデータ転送システム。   Address assignment restoring means for restoring the memory address changed by the address assignment changing means based on the transfer completion notification from the second input / output apparatus sent by the first input / output device after data transfer. The data transfer system according to claim 1, further comprising: 上記転送応答生成手段が、上記第2の入出力装置によるデータ転送中に第2の入出力装置以外の入出力装置から転送要求を受信した場合に、転送不可を示す不許可応答を当該転送要求に対する応答として生成することを特徴とする請求項1に記載のデータ転送システム。   When the transfer response generation means receives a transfer request from an input / output device other than the second input / output device during the data transfer by the second input / output device, the transfer response generation unit sends an unacceptable response indicating that transfer is impossible. The data transfer system according to claim 1, wherein the data transfer system is generated as a response to. 上記アドレス割当て変更手段は、書込み先として連続するメモリアドレスが指定されたデータの書込みの場合であって、書込み先として指定されたメモリアドレスの数が上記共有領域のメモリアドレスの数よりも多い場合に、データの連続書込みの途中でメモリアドレスを変更することを特徴とする請求項1に記載のデータ転送システム。   The address allocation change means is for writing data in which a continuous memory address is specified as a write destination, and the number of memory addresses specified as the write destination is larger than the number of memory addresses in the shared area 2. The data transfer system according to claim 1, wherein the memory address is changed during continuous writing of data.
JP2007233146A 2007-09-07 2007-09-07 Data transfer system Pending JP2009064341A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2007233146A JP2009064341A (en) 2007-09-07 2007-09-07 Data transfer system

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2007233146A JP2009064341A (en) 2007-09-07 2007-09-07 Data transfer system

Publications (1)

Publication Number Publication Date
JP2009064341A true JP2009064341A (en) 2009-03-26

Family

ID=40558860

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2007233146A Pending JP2009064341A (en) 2007-09-07 2007-09-07 Data transfer system

Country Status (1)

Country Link
JP (1) JP2009064341A (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112241382A (en) * 2019-07-18 2021-01-19 叶锋 Intelligent bus computer

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112241382A (en) * 2019-07-18 2021-01-19 叶锋 Intelligent bus computer

Similar Documents

Publication Publication Date Title
JP3660182B2 (en) Image processing device
US8605301B2 (en) Image processing apparatus, image processing system, and computer program product
JP2010263328A (en) Image processing apparatus, and image processing method
JP6341832B2 (en) Semiconductor integrated circuit, method for controlling power supply in semiconductor integrated circuit, and program
JP5718305B2 (en) Image forming apparatus
US8514430B2 (en) Apparatus, system, and method for processing image in network environment based on local protocol
JP2009064341A (en) Data transfer system
JP2009043089A (en) Bus control device and bus control method
JP2006338232A (en) Communication system
JP2009064340A (en) Data transfer system
JP4848188B2 (en) Unit having memory device having a plurality of memory areas and memory control system
JP2002259205A (en) Image processor
JP6833491B2 (en) Information processing device
JP2020027509A (en) Relay system
JP2006309444A (en) Data processing system
JP3878599B2 (en) Image forming apparatus and control program therefor
JP2009064342A (en) Data transfer system
JP2018118477A (en) Image processing device, control method and program of the same
JP2003091425A (en) Image processor and image processing method
JP2009038776A (en) Image processing apparatus, and image processing method
KR100306749B1 (en) Network Printer System
JP7106825B2 (en) Image processing device, semiconductor device and program
JP2005333676A (en) Image data processing method, image data processing apparatus and image forming apparatus
JP2006323579A (en) Dma controller
JP2005238852A (en) Image forming device and server