JP2009064341A - Data transfer system - Google Patents
Data transfer system Download PDFInfo
- 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
Links
Images
Abstract
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に記載されている。
上述した様に、従来のデータ転送システムでは、入出力装置間でデータを転送する際のデータの転送効率が良くないという問題があった。 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
すなわち、デジタル複合機100は、PCIバス10、PCIブリッジ11、MFPコントローラ20、スキャナ26、カラー画像処理ボード30、ネットワークボード40、プリンタコントローラ50及びプリンタ55により構成されている。
That is, the digital multi-function peripheral 100 includes a
PCIバス10は、データ伝送路としての入出力バスであり、データを伝送するためのデータ線、メモリアドレスを伝送するためのアドレス線、コマンドを伝送するための制御線などからなる。例えば、32ビットのバス幅の入出力バスがPCIバス10として用いられる。
The
PCIブリッジ11は、2つのPCIバス10を互いに接続するための回路である。この例では、一方のPCIバス10にMFPコントローラ20及びネットワークコントローラ40が接続され、他方のPCIバス10にカラー画像処理ボード30及びプリンタコントローラ50が接続されている。この様な2つのPCIバス10は、PCIブリッジ11により、1つの入出力バスとして機能するようになっている。
The
MFPコントローラ20は、このデータ転送システムにおけるホストデバイスとして機能する入出力装置であり、カラー画像処理ボード30、ネットワークボード40及びプリンタコントローラ50は、いずれもスレーブデバイスとして機能する入出力装置となっている。
The
MFPコントローラ20は、ローカルバス25を介して互いに通信可能に接続されたCPU21、PCIホストコントローラ22、割込みコントロールレジスタ23及びRAM24からなる。
The
このMFPコントローラ20では、例えば、スキャナ26により原稿から読み取られたカラー画像データに対して、色空間変換やデータ圧縮などの画像処理を行い、PCIバス10を介してカラー画像処理ボード30又はネットワークボード40に転送し、或いは、カラー画像データをファクシミリ送受信する動作が行われる。
In the
スキャナ26は、原稿などの光学読み取りにより、画像データを生成する光学式の画像読取装置であり、例えば、複数の色成分からなるカラー画像データが生成される。
The
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
割込みコントロールレジスタ23は、このデータ転送システムを構成する入出力装置の1つが他の入出力装置に対して割込みを発生させる際に、割込み要求を書き込むためのメモリである。この割込みコントロールレジスタ23は、自デバイスのCPU21や他のスレーブデバイスのCPU31、41及び51と割込み信号線により接続されており、割込み要求元のデバイスにより割込み要求が書き込まれると、割込み要求先のデバイスに割込み信号が出力される。
The
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
カラー画像処理ボード30は、ローカルバス34を介して互いに通信可能に接続されたCPU31、PCIバスコントローラ32及びRAM33を有する回路基板からなり、画像データを用紙に印刷するための画像処理を行っている。例えば、PCIバス10を介してMFPコントローラ20から転送された色成分YCrCbからなるカラー画像データを色成分CMYKからなる画像データに色空間変換する処理、或いは、色空間変換された画像データをさらに2値化する階調減少処理などが行われる。
The color
CPU31は、ローカルバス34を介してPCIバスコントローラ32及びRAM33を制御する制御部であり、割込みコントローラが内蔵されている。この割込みコントローラは、割込み信号線を介して割込みコントロールレジスタ23から割込み信号を受信した場合に、割込みを発生させる。
The
PCIバスコントローラ32は、PCIバス10によるデータ転送を制御する入出力バスコントローラであり、PCIバス10を介して他のデバイスとの間で行われる通信の制御を行っている。RAM33は、書き換え可能な揮発性の半導体メモリであり、例えば、CPU31のメインメモリとして用いられる。
The
ネットワークボード40は、ローカルバス44を介して互いに通信可能に接続されたCPU41、PCIバスコントローラ42及びRAM43を有する回路基板からなり、LANなどの通信ネットワーク45上のクライアントPC46との間で通信を行っている。例えば、PCIバス10を介してMFPコントローラ20から転送された画像データをクライアントPC46へ送信する処理、或いは、クライアントPC46から受信した画像データをファクシミリ送信するために、PCIバス10を介して画像データをMFPコントローラ20に転送する処理が行われる。或いは、クライアントPC46から受信した画像データをプリンタ出力するために、PCIバス10を介して画像データをプリンタコントローラ50に転送する処理が行われる。
The
プリンタコントローラ50は、ローカルバス54を介して互いに通信可能に接続されたCPU51、PCIバスコントローラ52及びRAM53からなり、他のデバイスから転送された画像データに基づいてプリンタ55を制御する動作を行っている。例えば、PCIバス10を介してカラー画像処理ボード30から転送され、或いは、ネットワークボード40から転送された画像データに基づいて、プリンタ55が制御される。プリンタ55は、画像データを用紙などに印刷する画像印刷装置である。
The
この様にして構成されたデータ転送システムでは、ホストデバイスとして機能するMFPコントローラ20がPCIバス10を介して接続されたカラー画像処理ボード30、ネットワークボード40及びプリンタコントローラ50の各スレーブデバイスとの間で通信を行うことができるとともに、これらのスレーブデバイスがMFPコントローラ20を介さずに互いに通信を行うこともできる。
In the data transfer system configured as described above, the
ここで、スレーブデバイス間でMFPコントローラ20を介さずに行われるデータ転送の一例として、カラー画像処理ボード30がコマンド送信側のスレーブデバイスであり、プリンタコントローラ50がコマンド受信側のスレーブデバイスである場合のデータ転送について説明する。
Here, as an example of data transfer performed between the slave devices without using the
まず、コマンド送信側のカラー画像処理ボード30のCPU31は、コマンド受信側のプリンタコントローラ50のRAM53上に設けられている自デバイス、すなわち、カラー画像処理ボード30用のコマンド領域のセマフォ(semaphore)を獲得する。具体的には、CPU31が、自デバイスのRAM33上の所定領域内に上記コマンド領域の使用権を獲得するための情報を書き込むことにより、RAM53上のコマンド領域のセマフォが獲得される。
First, the
次に、CPU31は、RAM53上のコマンド領域内にコマンドを書き込む。このコマンドの書込みは、PCIバスコントローラ32がPCIバス10を介してプリンタコントローラ50のPCIバスコントローラ52にコマンドを送信し、PCIバスコントローラ52が受信したコマンドをRAM53上のコマンド領域内にローカルバス54を介して書き込むことにより行われる。
Next, the
次に、CPU31は、転送すべきデータをRAM53上のデータ領域内に書き込む。具体的には、PCIバスコントローラ32がPCIバス10を介してプリンタコントローラ50のPCIバスコントローラ52にデータを送信し、PCIバスコントローラ52が受信したデータをRAM53上のデータ領域内にローカルバス54を介して書き込むことにより行われる。
Next, the
コマンド送信側のカラー画像処理ボード30のCPU31は、この様にしてコマンド受信側のRAM53にコマンド及びデータを書き込むと、その旨をコマンド受信側のプリンタコントローラ50に通知するために、割込みを発生させる。すなわち、PCIバスコントローラ32により、プリンタコントローラ50に対して割込みを発生させるための割込み要求が割込みコントロールレジスタ23にPCIバス10を介して書き込まれる。
When the
この割込み要求の書込みは、PCIバスコントローラ32がPCIバス10を介してPCIホストコントローラ22に割込み要求を送信し、PCIホストコントローラ22が受信した割込み要求を割込みコントロールレジスタ23にローカルバス25を介して書き込むことにより行われる。
In writing the interrupt request, the
カラー画像処理ボード30からプリンタコントローラ50への割込み要求が割込みコントロールレジスタ23にセットされると、割込みコントロールレジスタ23から割込み信号線を介してプリンタコントローラ50のCPU51に割込み信号が送信される。この様にして、CPU31がプリンタコントローラ50のCPU51に対して割込みを発生させることにより、コマンド及びデータの書込み完了がプリンタコントローラ50に通知される。
When an interrupt request from the color
一方、書込み完了が通知されたプリンタコントローラ50のCPU51は、RAM53内におけるカラー画像処理ボード30用のコマンド領域からコマンドを読出し、データ領域からデータを読み出す。
On the other hand, the
次に、CPU51は、データ領域から読み出したデータに対して、カラー画像処理ボード30用のコマンド領域から読み出したコマンドに対応する処理を実行し、カラー画像処理ボード30用のコマンド領域からコマンド及びデータを読み出したことをコマンド送信側に通知するために、カラー画像処理ボード30に対して割込みを発生させる。
Next, the
すなわち、PCIバスコントローラ52により、カラー画像処理ボード30に対して割込みを発生させるための割込み要求が割込みコントロールレジスタ23にPCIバス10を介して書き込まれる。
That is, the
この割込み要求の書込みは、PCIバスコントローラ52がPCIバス10を介してPCIホストコントローラ22に割込み要求を送信し、PCIホストコントローラ22が受信した割込み要求を割込みコントロールレジスタ23にローカルバス25を介して書き込むことにより行われる。
For writing the interrupt request, the
プリンタコントローラ50からカラー画像処理ボード30への割込み要求が割込みコントロールレジスタ23にセットされると、割込みコントロールレジスタ23から割込み信号線を介してカラー画像処理ボード30のCPU31に割込み信号が送信される。
When an interrupt request from the
カラー画像処理ボード30のCPU31は、割込みコントロールレジスタ23からの割込み信号の受信により、自デバイス用のコマンド領域に書き込んだコマンド及びデータがプリンタコントローラ50のCPU51によって読み出されて不要になったと判断する。そして、CPU31は、RAM53内における自デバイス用のコマンド領域に未使用であることを示すコマンドを書き込み、RAM33内の所定領域に上記コマンド領域の使用権を返却するための情報を書き込んで、自デバイス用のコマンド領域のセマフォを返却してこの通信を終了する。
When the
本実施の形態では、この様にしてPCIバス10を介して行われるスレーブデバイス間のデータ転送と、ホストデバイス及びスレーブデバイス間で行われるデータ転送において、他の入出力装置がメモリ上の非共有領域へデータを書き込む場合や、他の入出力装置が非共有領域からデータを読み出す場合に、非共有領域を有する入出力装置によりメモリアドレスを変更する動作が行われる。
In this embodiment, in the data transfer between the slave devices performed through the
図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
ここでは、MFPコントローラ20、カラー画像処理ボード30、ネットワークボード40及びプリンタコントローラ50の各入出力装置のうち、RAM113上に共有領域113a及び非共有領域113bを有する入出力装置110を第1の入出力装置「デバイスA」とする。一方、「デバイスA」とは異なる入出力装置120を第2の入出力装置「デバイスB」とする。
Here, among the input / output devices of the
すなわち、入出力装置110は、CPU111、PCIバスコントローラ112、共有領域113a、非共有領域113b及びローカルバス114からなる。入出力装置120は、CPU121、PCIバスコントローラ122、RAM123及びローカルバス124からなる。
That is, the input /
共有領域113aは、PCIバス10のアドレス空間にメモリアドレスが割り当てられ、PCIバス10を介して他の入出力装置と共有されるメモリ領域からなる。一方、非共有領域113bは、PCIバス10のアドレス空間にメモリアドレスが割り当てられず、他の入出力装置と共有されないメモリ領域からなる。
The shared
つまり、RAM113は、メモリアドレスがPCIバス10のアドレス空間に割り当てられた共有領域113aと、メモリアドレスがアドレス空間に割り当てられていない非共有領域113bとからなるメモリとなっている。
That is, the RAM 113 is a memory composed of a shared
デジタル複合機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 /
具体的には、入出力装置120からの転送要求に基づいて、PCIバス10のアドレス空間に割り当てられているRAM113のメモリアドレスが変更される。その際、非共有領域113bの一部又は全部が共有領域として機能するように、メモリアドレスが変更される。
More specifically, the memory address of the RAM 113 assigned to the address space of the
一般に、PCIバス10のアドレス空間は、PCIバス10のバスアドレスからなる仮想空間であり、PCIバスコントローラがPCIバス10を介してデータを転送する際に使用するアドレス線の数に応じてそのサイズが定められる。
In general, the address space of the
アドレス空間には、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
このとき、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 /
一方、割当て領域が大きい場合には、非共有領域が生じることはなく、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
アドレス割当て変更部1は、非共有領域113bへの書込み又は非共有領域113bからの読出しが指定された入出力装置120からの転送要求に基づいて、PCIバス10のアドレス空間に割り当てられているRAM113のメモリアドレスを変更する動作を行っている。このメモリアドレスの変更では、アドレス空間に割り当てられていなかったメモリ領域を共有領域とし、共有領域としてメモリアドレスが割り当てられていたメモリ領域を非共有領域とする処理が行われる。
The address assignment changing unit 1 is a RAM 113 assigned to the address space of the
このアドレス割当て変更部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
また、アドレス割当て変更部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
具体的には、非共有領域113bへの書込み又は非共有領域113bからの読出しが指定された転送要求に対して、アドレス割当て変更部1によるメモリアドレスの変更後に、転送要求に対する応答として転送応答が生成され、入出力装置120へ送出される。
Specifically, for a transfer request in which writing to the
この転送応答生成部2は、不許可応答生成部2aを有し、入出力装置120によるデータ転送中に入出力装置120以外の入出力装置から転送要求を受信した場合に、転送不可を示す不許可応答が当該転送要求に対する応答として生成される。
The transfer
つまり、データ転送中に他の入出力装置から転送要求があった場合に、当該入出力装置に対して転送不可を通知することによる排他制御が行われる。この様な排他制御により、他の入出力装置が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
アドレス割当て復元部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 /
図4は、図3のCPU111における動作の一例を示した図であり、デフォルト情報として予め定められているアドレス割当て3aと、変更後のアドレス割当て4a及び4bが示されている。デフォルト情報として予め定められているアドレス割当て3aでは、RAM113上のメモリ領域A1を共有領域としてメモリアドレスがアドレス空間に割り当てられており、このメモリ領域A1以外のメモリ領域、すなわち、メモリ領域A2が非共有領域となっている。
FIG. 4 is a diagram showing an example of the operation in the
つまり、PCIバス10を介して行われるデータ転送では、他の入出力装置がメモリ領域A1内にデータを書込み、或いは、メモリ領域A1内からデータを読み出すことができる。
That is, in data transfer performed via the
アドレス割当て変更部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
また、変更後のアドレス割当て4bでは、非共有領域であったメモリ領域A2の全部が共有領域B22としてメモリアドレスがアドレス空間に割り当てられ、共有領域であったメモリ領域A1の全部が非共有領域B21となっている。
In the changed
この様に、他の入出力装置からの転送要求に応じて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 /
入出力装置110のCPU111は、入出力装置120からの送信コマンドを受信すると、当該送信コマンドに基づいてRAM113に対するアドレス割当てを変更する(ステップS102)。
When receiving the transmission command from the input /
次に、CPU111は、アドレス割当ての変更後、転送応答として当該送信コマンドのレスポンスを発行し、PCIバスコントローラ112を介して入出力装置120へ送出する(ステップS103)。
Next, after changing the address assignment, the
CPU121は、このレスポンスを受信すると、PCIバスコントローラ122を介して入出力装置110のRAM113に対するデータの書込みを行う(ステップS104)。
Upon receiving this response, the
次に、CPU121は、データの書込みが終了し、データ転送が完了すると、転送完了通知として送信完了コマンドを発行し、PCIバスコントローラ122を介して入出力装置110へ送出する(ステップS105,S106)。
Next, when the data writing is completed and the data transfer is completed, the
入出力装置110のCPU111は、入出力装置120からの送信完了コマンドを受信すると、アドレス割当てを元の状態に戻す(ステップS107)。次に、CPU111は、送信完了コマンドのレスポンスを発行し、この処理を終了する(ステップS108)。
When receiving the transmission completion command from the input /
送信完了コマンドのレスポンスは、PCIバスコントローラ112を介して入出力装置120へ送出され、CPU121は、入出力装置110からの当該レスポンスを受信すると、その受信結果に基づいてこの処理を終了する。
The response to the transmission completion command is sent to the input /
本実施の形態によれば、データ転送時に入出力装置110においてデータを移動させなくても良いので、RAN113上の非共有領域113bへ他の入出力装置からデータを書き込む際や非共有領域113bから他の入出力装置へデータを読み出す際の転送効率を向上させることができる。
According to the present embodiment, it is not necessary to move data in the input /
特に、入出力装置120からの転送完了通知に基づいてメモリアドレスが元の状態に自動的に戻されるので、データ転送の終了後に他の入出力装置によってRAM113にデータが誤書込みされるのを防止することができる。また、書込み先として連続するメモリアドレスが指定されたデータの書込みの場合であって、書込み先として指定されたメモリアドレスの数が共有領域のメモリアドレスの数よりも多い場合に、データの連続書込みの途中でメモリアドレスが変更されるので、転送効率をさらに向上させることができる。
In particular, since the memory address is automatically restored to the original state based on the transfer completion notification from the input /
なお、本実施の形態では、データ転送後に送出される入出力装置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 /
また、本実施の形態では、入出力装置120によるデータ転送中に入出力装置120以外の入出力装置から転送要求を受信した際に、不許可応答が当該転送要求に対する応答として送出される場合の例について説明したが、本発明はこれに限られるものではない。例えば、データ転送中に他の入出力装置からの転送要求が受信した場合に、データ転送が終了して、RAM113のメモリアドレスが元の状態に戻されるまで、当該転送要求に対する応答を送出しないようなものであっても良い。
In this embodiment, when a transfer request is received from an input / output device other than the input /
また、本実施の形態では、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.
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
22
25, 34, 44, 54
112, 122
Claims (4)
上記第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.
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)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112241382A (en) * | 2019-07-18 | 2021-01-19 | 叶锋 | Intelligent bus computer |
-
2007
- 2007-09-07 JP JP2007233146A patent/JP2009064341A/en active Pending
Cited By (1)
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 |