JP5332692B2 - Data transfer control device, data transfer control method, data transfer control program, and recording medium - Google Patents
Data transfer control device, data transfer control method, data transfer control program, and recording medium Download PDFInfo
- Publication number
- JP5332692B2 JP5332692B2 JP2009032213A JP2009032213A JP5332692B2 JP 5332692 B2 JP5332692 B2 JP 5332692B2 JP 2009032213 A JP2009032213 A JP 2009032213A JP 2009032213 A JP2009032213 A JP 2009032213A JP 5332692 B2 JP5332692 B2 JP 5332692B2
- Authority
- JP
- Japan
- Prior art keywords
- data transfer
- transfer request
- internal buffer
- request
- data
- 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.)
- Expired - Fee Related
Links
Images
Landscapes
- Bus Control (AREA)
Abstract
Description
本発明は、データ転送制御装置、データ転送制御方法、データ転送制御プログラム及び記録媒体に関し、詳細には、データ転送を効率的に行うデータ転送制御装置、データ転送制御方法、データ転送制御プログラム及び記録媒体に関する。 The present invention relates to a data transfer control device, a data transfer control method, a data transfer control program, and a recording medium, and more specifically, a data transfer control device, a data transfer control method, a data transfer control program, and a recording that efficiently perform data transfer. It relates to the medium.
近年、データを取り扱う装置、例えば、複合装置、プリンタ装置、複写装置、スキャナ装置、ファクシミリ装置等の画像処理装置においては、スキャナユニット、プリンタユニット及びメインメモリを有するコントローラ等の各ユニットを汎用バスで接続してインターフェイスを共通化することで、ユニットの拡張等における無駄な回路や制御ソフトの増加を抑制し、また、拡張性を向上させることが行われている。 In recent years, in an image processing apparatus such as a composite apparatus, a printer apparatus, a copying apparatus, a scanner apparatus, and a facsimile apparatus that handle data, each unit such as a scanner unit, a printer unit, and a controller having a main memory is connected with a general-purpose bus. By connecting and sharing an interface, an increase in useless circuits and control software in expansion of a unit or the like is suppressed, and expandability is improved.
ところが、このようなバスシステムを用いた画像処理装置においては、スキャナユニットで原稿の画像データを読み取る画像読み取り時やプリンタユニットで画像データに基づいて画像を印刷出力する印刷出力時及びスキャナユニットで読み取った画像データをプリンタユニットで印刷出力するコピー時には、スキャナユニットやプリンタユニットが一定速度で動作する必要があるため、スキャナユニットやプリンタユニットとコントローラのメインメモリとの間で一定量のデータをバスを介して転送する必要があり、一時的にバストラフィックが著しく増加する。この現象は、高速機ほど顕著になる。 However, in such an image processing apparatus using a bus system, the scanner unit reads the image data of the document, the printer unit prints the image based on the image data, and the scanner unit reads the image data. When copying the printed image data with the printer unit, the scanner unit or printer unit must operate at a constant speed, so a certain amount of data is routed between the scanner unit or printer unit and the main memory of the controller. The bus traffic temporarily increases significantly. This phenomenon becomes more prominent with high-speed machines.
そして、画像処理装置においては、上記汎用バスは、IEEE1394やUSB(Universal Serial Bus)等の通信系の外部IF(インターフェース)を接続することも可能であり、このような外部IFを介して、SDカード(Secure Digital memory card)やUSBデバイス等の外部機器及びネットワークとの間でデータを送受信することが一般的に行われている。 In the image processing apparatus, the general-purpose bus can be connected to an external IF (interface) of a communication system such as IEEE1394 or USB (Universal Serial Bus). In general, data is transmitted / received to / from an external device such as a card (Secure Digital memory card) or a USB device and a network.
このように汎用バスに、スキャナユニット、プリンタユニット、通信系インターフェースデバイス等がマスタデバイスとして複数存在する画像処理装置の構成においては、上記汎用バスは、アービタを内蔵するメインCPUを介してメインメモリと接続されており、アービタのバス調停方法が重要となるが、従来、このバスの調停方法として、固定優先順位方式やラウンドロビン方式等が一般的に用いられている。この固定優先順位方式は、複数のマスタデバイスからバス要求が同時に発生した場合に、予め固定的に設定されているマスタデバイスの優先順位に従って優先順位の高い方にバス使用権を与える方法である。ラウンドロビン方式は、優先順位が固定ではなく、バス使用権を獲得したマスタデバイスに対しては、そのバス使用権獲得直後に優先順位を最下位に設定して、全体として公平にバス使用権を調停する方法である。 In the configuration of the image processing apparatus in which a plurality of scanner units, printer units, communication interface devices, and the like exist as master devices in the general-purpose bus in this way, the general-purpose bus is connected to the main memory via the main CPU incorporating the arbiter. The bus arbitration method of the arbiter is important, but conventionally, a fixed priority method, a round robin method, or the like is generally used as the bus arbitration method. This fixed priority ordering method is a method in which when a bus request is simultaneously generated from a plurality of master devices, the right to use the bus is given to the higher priority order according to the priority order of the master device that is fixedly set in advance. In the round robin method, the priority order is not fixed. For the master device that has acquired the right to use the bus, the priority order is set to the lowest immediately after acquiring the right to use the bus. It is a method of mediation.
これらの従来のバス調停方式には、それぞれ長所、短所がある。例えば、固定優先順位方式は、優先順位が高いマスタデバイスにはバス獲得が常に保証されて優位であるが、優先順位の低いマスタデバイスは自分より優先順位の高いマスタデバイスからの要求がある限りバスの使用権を獲得することができない状況が発生するという短所がある。 Each of these conventional bus arbitration methods has advantages and disadvantages. For example, the fixed priority method has an advantage that a master device with a higher priority is always guaranteed to acquire a bus, but a master device with a lower priority has a higher priority than a master device with a higher priority than itself. There is a disadvantage that a situation in which the right to use cannot be obtained occurs.
また、ラウンドロビン方式は、全てのマスタデバイスに対して公平にバス獲得の調停を行うことができるという長所はあるが、逆にバスの使用率を各マスタデバイス毎に転送データ量、密度等に応じて異ならせたい場合には不向きであるという短所がある。 In addition, the round robin method has the advantage that arbitration of bus acquisition can be performed fairly for all master devices, but conversely, the bus usage rate is reduced to the transfer data amount, density, etc. for each master device. There is a disadvantage that it is not suitable when you want to make it different depending on the situation.
特に、ラウンドロビン方式は、本来バス自体の有するデータ転送能力(バス幅×所定バス幅当たりのデータの転送時間)が、入力画像コントローラ(スキャナユニット)、出力画像コントローラ(プリンタユニット)等のデバイス(ユニット)が動作しているときに転送しなければならないデータ量に対して限界に近いほど、不都合が発生するおそれがある。 In particular, in the round robin method, the data transfer capability inherent to the bus itself (bus width × data transfer time per predetermined bus width) is a device such as an input image controller (scanner unit) or an output image controller (printer unit) ( The closer the limit is to the amount of data that must be transferred when the unit is operating, the more inconvenience may arise.
すなわち、スキャナユニットは、読み取った画像に順次画像処理を行いながら画像データをメインメモリへ転送する必要があり、必ずその帯域を確保する必要がある。また、プリンタユニットは、電子写真方式の場合、感光体ドラムにレーザで書き込みながら画像データをメインメモリから転送する必要があり、必ずその帯域を確保する必要がある。さらに、外部IFは、例えば、ネットワークからデータを受信する場合、一旦受信を開始すると、受信したネットワークパケットをメインメモリに転送して一定時間内に応答する必要があり、必ずその帯域を確保する必要がある。 That is, the scanner unit needs to transfer image data to the main memory while sequentially performing image processing on the read image, and it is necessary to ensure the bandwidth. Further, in the case of the electrophotographic system, the printer unit needs to transfer image data from the main memory while writing to the photosensitive drum with a laser, and it is necessary to ensure the bandwidth. Furthermore, for example, when receiving data from the network, the external IF must start receiving once it has to transfer the received network packet to the main memory and respond within a certain time. There is.
そして、画像処理装置におけるデータ転送は、一般的に、DMA(Direct Memory Access)データ転送方式が用いられている。また、バス接続としては、一般的に、メインCPUの内蔵するアービタが担っており、ラウンドロビン方式で動作するアービタが、スキャナユニットやプリンタユニットのデータ転送を優先して確保できるような技術が要望される。 In general, a DMA (Direct Memory Access) data transfer method is used for data transfer in the image processing apparatus. In addition, the bus connection is generally handled by the arbiter built in the main CPU, and there is a demand for a technology that allows the arbiter operating in the round robin method to secure data transfer of the scanner unit and printer unit with priority. Is done.
そこで、従来、ラウンドロビン方式のバスアービタにおいて、特定事象発生時の第1のバスマスタ以外の優先度の低いバスマスタからのバス獲得要求に対して、バス使用権を与えた後の次のバス獲得要求を一定期間マスクすることで、バスの使用頻度を一時的に低下させて、第1のバスマスタのデータ転送効率を確保する技術が提案されている(特許文献1参照)。すなわち、この従来技術は、外部IFからの転送要求に対してバス使用権を与えると、次のバス獲得要求を一定期間マスクすることで、スキャナユニットやプリンタユニットのデータ転送を優先して確保しようとしている。 Therefore, in the conventional round-robin bus arbiter, in response to a bus acquisition request from a low-priority bus master other than the first bus master when a specific event occurs, the next bus acquisition request after giving the bus use right is issued. A technique has been proposed in which the frequency of bus use is temporarily reduced by masking for a certain period to ensure the data transfer efficiency of the first bus master (see Patent Document 1). That is, in this prior art, when a bus use right is given to a transfer request from an external IF, the next bus acquisition request is masked for a certain period, so that data transfer of the scanner unit or printer unit is given priority. It is said.
しかしながら、上記従来技術にあっては、優先度の低いバスマスタにデータ転送を許可すると、単に次の一定期間マスクするのみであるため、効率的なバス獲得の調停(即ち、バス制御)を行って、効率的なデータ転送を行う上で改良の必要があった。 However, in the above prior art, if data transfer is permitted to a bus master with a low priority, it is simply masked for the next fixed period, so efficient bus acquisition arbitration (ie, bus control) is performed. There was a need for improvements in efficient data transfer.
すなわち、従来技術にあっては、全てのマスタデバイスに対して公平にバス獲得の調停を行うラウンドロビン方式において、優先度の低いバスマスタ、例えば、外部IFに複数のデバイスが接続されて各デバイスからのバス獲得要求に対してラウンドロビン方式でバス使用権を与えた後に、スキャナユニットやプリンタユニットによるバス帯域を確保するために、該バス使用権を与えたデバイスに対してマスク期間を設定する。ところが、1ラウンドロビンで転送できるデータ量は決まっているため、外部IFのデバイスからメインメモリに転送するデータ量がこの1ラウンドロビンで転送できるデータ量を超えているときには、外部IFのデバイスから複数回のバス獲得要求を行うこととなる。しかし、1回バス使用権が与えられて1ラウンドロビンデータ転送を行うと、マスク期間に入り、このマスク期間に、例えば、ディスクリプタ転送等のような使用バス帯域の狭いバス転送に対するバス獲得要求に対してバス使用権が与えられると、このバス使用権の1ラウンドロビンのバス転送が終了するまで、他にバス獲得要求がない場合であっても、外部IFのデバイスに対してバス使用権が与えられない。そして、使用バス帯域の狭いバス転送の1ラウンドのバス転送が終了したときに、外部IFからバス獲得要求を行ってバス使用権を獲得しても、1ラウンドロビンのバス転送が終了すると、再度、マスク期間に入るというバス転送が繰り返されることとなる。その結果、効率的なバス獲得の調停を行って、効率的なデータ転送を行う上で改良の必要があるとともに、メインCPUが内蔵するアービタが、該外部IFから転送されるデータを保持するだけの内部バッファを必要とし、コストが高くつくという問題があった。 That is, in the prior art, in a round robin method in which arbitration of bus acquisition is performed fairly for all master devices, a plurality of devices are connected to a low-priority bus master, for example, an external IF. In order to secure the bus bandwidth by the scanner unit or the printer unit, a mask period is set for the device to which the bus use right is given. However, since the amount of data that can be transferred in one round robin is determined, when the amount of data transferred from the external IF device to the main memory exceeds the amount of data that can be transferred in this one round robin, a plurality of data can be transferred from the external IF device. There will be one bus acquisition request. However, once the right to use the bus is granted and one round-robin data transfer is performed, a mask period starts. During this mask period, for example, a bus acquisition request for a bus transfer with a narrow bus bandwidth used, such as descriptor transfer, is made. When the right to use the bus is given, the right to use the bus is granted to the external IF device even if there is no other bus acquisition request until one round-robin bus transfer of the right to use the bus is completed. Not given. When one round of bus transfer with a narrow bus bandwidth is completed, a bus acquisition request is obtained from the external IF and the right to use the bus is acquired. The bus transfer of entering the mask period is repeated. As a result, there is a need for improvement in performing efficient data acquisition by arbitrating for efficient bus acquisition, and the arbiter built in the main CPU only holds the data transferred from the external IF. The internal buffer is required and the cost is high.
そこで、本発明は、安価かつより効率的なラウンドロビン方式でのデータ転送を行うことのできるデータ転送装置、データ転送方法、データ転送プログラム及び記録媒体を提供することを目的としている。 SUMMARY An advantage of some aspects of the invention is that it provides a data transfer device, a data transfer method, a data transfer program, and a recording medium that are capable of performing data transfer in a cheap and more efficient round robin method.
上記目的を達成するため、本発明のデータ転送制御装置は、記憶手段と、前記記憶手段と接続されると共に、第1の内部バッファを有し、当該第1の内部バッファを利用したデータ転送を制御するデータ転送制御手段と、外部とのデータ転送に係るデータ転送要求を行う複数のデータ転送要求手段と、前記複数のデータ転送要求手段の何れかからの前記データ転送要求に対して、当該データ転送要求を所定期間許可又は不許可とする制御を行うデータ転送要求制御手段と、前記データ転送制御手段とバス接続され、前記第1の内部バッファのデータ量を取得して保存する第2の内部バッファを有する転送インターフェイス手段と、を備えたデータ転送制御装置であって、前記データ転送要求制御手段は、前記外部からのデータ転送要求が前記記憶手段との間のデータ転送に係る要求である場合に、前記第1の内部バッファの空き状況を前記第2の内部バッファに取得して保存した当該第1の内部バッファの変化量に基づいて判断し、当該第1の内部バッファの空き容量が十分であると判断したときに当該データ転送要求を許可して当該記憶手段との間のデータを前記転送インターフェイス手段を介して転送し、当該第1の内部バッファの空き容量が十分でないと判断したときに当該データ転送要求を不許可とすることを特徴とする。 To achieve the above Symbol purpose, the data transfer control device of the present invention includes a storage unit, is connected to the storage means, having a first internal buffer, the data transfer using the first internal buffer A data transfer control means for controlling the data transfer, a plurality of data transfer request means for making a data transfer request for data transfer with the outside, and in response to the data transfer request from any of the plurality of data transfer request means, A data transfer request control means for performing control for permitting or not permitting a data transfer request for a predetermined period, and a second bus connected to the data transfer control means for acquiring and storing the data amount of the first internal buffer A transfer interface unit having an internal buffer, wherein the data transfer request control unit is configured to receive the data transfer request from the outside. Based on the amount of change in the first internal buffer obtained and stored in the second internal buffer when the request relates to data transfer with the storage means Determining that when the free space in the first internal buffer is sufficient, permitting the data transfer request and transferring data to and from the storage means via the transfer interface means, space of one internal buffer, characterized in that disallowed the data transfer request when it is judged not to be sufficient.
また、本発明のデータ転送制御方法は、記憶手段と接続されると共に、第1の内部バッファを有するデータ転送制御手段により、当該第1の内部バッファを利用したデータ転送を制御するデータ転送制御処理ステップと、複数のデータ転送要求手段により、外部とのデータ転送に係るデータ転送要求を行う複数のデータ転送要求処理ステップと、データ転送要求制御手段により、前記複数のデータ転送要求手段の何れかからの前記データ転送要求に対して、当該データ転送要求を所定期間許可又は不許可とする制御を行うデータ転送要求制御処理ステップと、前記データ転送制御手段とバス接続された転送インターフェイス手段の第2の内部バッファにより、前記第1の内部バッファのデータ量を取得して保存する転送インターフェイス処理ステップと、を有し、前記データ転送要求制御処理ステップでは、前記外部からのデータ転送要求が前記記憶手段との間のデータ転送に係る要求である場合に、前記第1の内部バッファの空き状況を前記第2の内部バッファに取得して保存した当該第1の内部バッファの変化量に基づいて判断し、当該第1の内部バッファの空き容量が十分であると判断したときに当該データ転送要求を許可して当該記憶手段との間のデータを前記転送インターフェイス手段を介して転送し、当該第1の内部バッファの空き容量が十分でないと判断したときに当該データ転送要求を不許可とすることを特徴とする。 The data transfer control method of the present invention is a data transfer control process for controlling data transfer using the first internal buffer by the data transfer control means connected to the storage means and having the first internal buffer. A plurality of data transfer request processing steps for making a data transfer request related to data transfer with the outside by a plurality of data transfer request means, and a data transfer request control means from any one of the plurality of data transfer request means In response to the data transfer request, a data transfer request control processing step for performing control for permitting or not permitting the data transfer request for a predetermined period of time, and a second of the transfer interface means bus-connected to the data transfer control means Transfer interface processing for acquiring and storing the data amount of the first internal buffer by an internal buffer In the data transfer request control processing step, when the external data transfer request is a request related to data transfer with the storage means, the free state of the first internal buffer Is determined based on the change amount of the first internal buffer acquired and stored in the second internal buffer, and the data transfer request is determined when it is determined that the free space of the first internal buffer is sufficient. Is permitted and data is transferred to and from the storage means via the transfer interface means, and the data transfer request is not permitted when it is determined that the free space of the first internal buffer is not sufficient. It is characterized by .
更に、本発明のデータ転送制御プログラムは、コンピュータにより実行させるデータ転送制御プログラムであって、記憶手段と接続されると共に、第1の内部バッファを有するデータ転送制御手段により、当該第1の内部バッファを利用したデータ転送を制御するデータ転送制御処理ステップの手順と、複数のデータ転送要求手段により、外部とのデータ転送に係るデータ転送要求を行う複数のデータ転送要求処理ステップの手順と、データ転送要求制御手段により、前記複数のデータ転送要求手段の何れかからの前記データ転送要求に対して、当該データ転送要求を所定期間許可又は不許可とする制御を行うデータ転送要求制御処理ステップの手順と、前記データ転送制御手段とバス接続された転送インターフェイス手段の第2の内部バッファにより、前記第1の内部バッファのデータ量を取得して保存する転送インターフェイス処理ステップの手順と、を有し、前記データ転送要求制御処理ステップの手順では、前記外部からのデータ転送要求が前記記憶手段との間のデータ転送に係る要求である場合に、前記第1の内部バッファの空き状況を前記第2の内部バッファに取得して保存した当該第1の内部バッファの変化量に基づいて判断し、当該第1の内部バッファの空き容量が十分であると判断したときに当該データ転送要求を許可して当該記憶手段との間のデータを前記転送インターフェイス手段を介して転送し、当該第1の内部バッファの空き容量が十分でないと判断したときに当該データ転送要求を不許可とすることを特徴とする。 Further, the data transfer control program of the present invention provides a data transfer control program executed by a computer, is connected with the storage means, the data transfer control means having a first internal buffer, internal the first A data transfer control processing step procedure for controlling data transfer using a buffer, a plurality of data transfer request processing step procedures for making a data transfer request for data transfer with the outside by a plurality of data transfer request means, and data Procedure of a data transfer request control processing step for performing control for permitting or not permitting the data transfer request for a predetermined period in response to the data transfer request from any of the plurality of data transfer requesting means by the transfer request control means And a second internal buffer of the transfer interface means bus-connected to the data transfer control means. And a transfer interface processing step procedure for acquiring and storing the data amount of the first internal buffer, and in the procedure of the data transfer request control processing step, the data transfer request from the outside is Based on the change amount of the first internal buffer acquired and stored in the second internal buffer when the request is related to data transfer with the storage means. Determining that when the free space in the first internal buffer is sufficient, permitting the data transfer request and transferring data to and from the storage means via the transfer interface means, space of one internal buffer, characterized in that disallowed the data transfer request when it is judged not to be sufficient.
加えて、本発明の記録媒体は、上記データ転送制御プログラムにおける各ステップの手順をコンピュータが読み取り可能に記録したことを特徴とする。 In addition, the recording medium of the present invention is characterized in that the procedure of each step the computer is capable of recording read at the data transfer control program.
本発明によれば、データ転送要求制御手段によって、外部からのデータ転送要求によりデータ転送制御手段を介して記憶手段とのデータ転送を行う場合に、データ転送制御手段の第1の内部バッファとデータ転送制御手段に対してバス接続されて第1の内部バッファのデータ量を取得して保存する転送インターフェイス手段の第2の内部バッファの変化量に基づいてデータ転送要求の許可、不許可を制御するため、データ転送状況をより適切に把握して制御することができ、安価かつより効率的なデータ転送を行うことができる。 According to the present invention, when the data transfer request control means performs data transfer with the storage means via the data transfer control means in response to an external data transfer request, the data transfer request control means includes the first internal buffer and the data Based on the change amount of the second internal buffer of the transfer interface means, which is connected to the transfer control means by a bus and acquires and stores the data amount of the first internal buffer, the permission / non-permission of the data transfer request is controlled. Therefore, it can be controlled by grasping the data transfer status better, can be performed cheaper and more efficient data transfer.
以下、本発明の好適な実施例を添付図面に基づいて詳細に説明する。なお、以下に述べる実施例は、本発明の好適な実施例であるので、技術的に好ましい種々の限定が付されているが、本発明の範囲は、以下の説明によって不当に限定されるものではなく、また、本実施の形態で説明される構成の全てが本発明の必須の構成要件ではない。 Hereinafter, preferred embodiments of the present invention will be described in detail with reference to the accompanying drawings. In addition, since the Example described below is a suitable Example of this invention, various technically preferable restrictions are attached | subjected, However, The range of this invention is unduly limited by the following description. However, not all the configurations described in the present embodiment are essential constituent elements of the present invention.
図1〜図10は、本発明のデータ転送制御装置、データ転送制御方法、データ転送制御プログラム及び記録媒体の一実施例を示す図であり、図1は、本発明のデータ転送制御装置、データ転送制御方法、データ転送制御プログラム及び記録媒体の一実施例を適用した画像処理装置1のブロック構成図である。 1 to 10 are diagrams showing an embodiment of a data transfer control device, a data transfer control method, a data transfer control program, and a recording medium according to the present invention. FIG. 1 shows a data transfer control device, data according to the present invention. 1 is a block configuration diagram of an image processing apparatus 1 to which an embodiment of a transfer control method, a data transfer control program, and a recording medium are applied. FIG.
図1において、画像処理装置1は、コントローラASIC2、メインCPU3、メインメモリ4、スキャナASIC5、スキャナ部6、プロッタASIC7、プロッタ部8、ハードディスク(HDD)9、外部IFASIC10、ネットワーク11及び外部デバイス12等を備えている。
1, an image processing apparatus 1 includes a
スキャナ部6は、例えば、CCD(Charge Coupled Device )を利用したイメージスキャナ等が利用されており、原稿を走査及び副走査して、原稿の画像を所定の解像度で読み取って、2値化してスキャナASIC5に出力する。 As the scanner unit 6, for example, an image scanner using a CCD (Charge Coupled Device) is used. The scanner 6 scans and sub-scans a document, reads an image of the document with a predetermined resolution, and binarizes the scanner. Output to ASIC5.
スキャナASIC5は、スキャナ部6で読み取られた原稿の画像データに適宜の画像処理を行って画像処理後の画像データをコントローラASIC2に出力する。
The scanner ASIC 5 performs appropriate image processing on the image data of the document read by the scanner unit 6 and outputs the image data after the image processing to the
コントローラASIC2は、スキャナASIC5、ハードディスク9及びメインCPU3と接続されており、スキャナASIC5、ハードディスク9及びメインCPU3との間での画像データの転送制御を行うとともに、メインCPU3の制御下で、ハードディスク9の駆動制御、スキャナASIC5を介したスキャナ部6の駆動制御を行う。
The
コントローラASIC2は、ハードディスク9へのリード/ライトの制御を行い、ハードディスク9は、各種画像データを記憶する。
The
プロッタ部8は、所定の印刷方式、例えば、電子写真式で、図示しないホストコンピュータやファクシミリ受信した画像データやスキャナ部6で読み取った画像データをプロッタASIC7から受け取って、該画像データに基づいて画像を用紙に印刷出力する。 The plotter unit 8 receives image data received by a host computer (not shown) or facsimile received or image data read by the scanner unit 6 from the plotter ASIC 7 in a predetermined printing method, for example, an electrophotographic method, and an image is generated based on the image data. Is printed on paper.
プロッタASIC7は、メインCPU3から受け取った画像データに適宜の画像処理を施してプロッタ部8に出力する。
The plotter ASIC 7 performs appropriate image processing on the image data received from the
メインメモリ4は、メインCPU3に接続されており、RAM(Random Access Memory)等で構成されている。メインメモリ4は、メインCPU3の制御下で、処理対象の画像データ等のデータ、プログラム及びディスクリプタ等を格納し、このプログラムとしては、画像処理装置1としての基本プログラム及び本発明のデータ転送を効率的に行うデータ転送制御方法を実行するデータ転送制御プログラムを格納する。
The main memory 4 is connected to the
なお、画像処理装置1は、ROM、EEPROM(Electrically Erasable and Programmable Read Only Memory )、EPROM、フラッシュメモリ、フレキシブルディスク、CD−ROM(Compact Disc Read Only Memory )、CD−RW(Compact Disc Rewritable )、DVD(Digital Video Disk)、SD(Secure Digital)カード、MO(Magneto-Optical Disc)等のコンピュータが読み取り可能な記録媒体に記録されている本発明のデータ転送制御方法を実行するデータ転送制御プログラムを読み込んでメインメモリ4やハードディスク9に導入することで、後述するデータ転送を効率的に行うデータ転送制御方法を実行するデータ転送制御装置を備えた画像処理装置として構築されている。このデータ転送制御プログラムは、アセンブラ、C、C++、C#、Java(登録商標)等のレガシープログラミング言語やオブジェクト指向ブログラミング言語等で記述されたコンピュータ実行可能なプログラムであり、上記記録媒体に格納して頒布することができる。
The image processing apparatus 1 includes a ROM, an EEPROM (Electrically Erasable and Programmable Read Only Memory), an EPROM, a flash memory, a flexible disk, a CD-ROM (Compact Disc Read Only Memory), a CD-RW (Compact Disc Rewritable), and a DVD. A data transfer control program for executing the data transfer control method of the present invention recorded on a computer-readable recording medium such as a (Digital Video Disk), an SD (Secure Digital) card, or an MO (Magneto-Optical Disc) is read. Thus, it is constructed as an image processing apparatus including a data transfer control device that executes a data transfer control method for efficiently performing data transfer, which will be described later, by being introduced into the main memory 4 and the
外部IFASIC10には、外部機器部として、ネットワーク11や外部デバイス12が接続されており、外部IFASIC10は、ネットワーク11及び外部デバイス12との間でデータ(パケットデータ)の授受を行う。ネットワーク11は、例えば、LAN(Local Area Network)、インターネット等であり、外部デバイス12は、SDカード、USBデバイス等である。
The
メインCPU(データ転送制御手段)3には、メインメモリ4が接続されており、メインCPU3は、メインメモリ4へのデータ等の書き込みやメインメモリ4からのデータ、ディスクリプタ等の読み出しを制御する。すなわち画像処理装置1は、PCIeバスを用いたDMA(Direct Memory Access)によってデータ転送を行っており、メインCPU3は、後述するように、内部バッファ3b(図3参照)を有して、該内部バッファ3bを利用した複数のデータ転送を制御する。
A main memory 4 is connected to the main CPU (data transfer control means) 3, and the
上記外部IFASIC10は、図2に示すように、接続される外部デバイス用の外部デバイスコントローラ20〜50、メインCPU3とのPCIeコントローラ60及び内部アービタ70等を備えており、外部デバイスコントローラ(データ転送要求手段)20〜50は、例えば、ネットワークコントローラ20、SDカードコントローラ30、USBコントローラ40、ICカードコントローラ50等である。なお、PCIeは、PCI(Peripheral Component Interconnect) Expressを略した表示であり、また、本実施例では、外部IFASIC10に接続されるネットワーク11とのデータ転送について詳細に説明するために、図2は、ネットワークコントローラ20について詳細に内部構成を示した図となっている。
As shown in FIG. 2, the
ネットワークコントローラ20は、DMAC(Direct Memory Access Controller :DMAコントローラ)20a、内部バッファ20b及びネットワーク制御部20c等を備えている。ネットワーク制御部20cは、ネットワーク11及び内部バッファ20bと接続されていて、ネットワーク11との通信制御を行い、内部バッファ20bは、所定容量のバッファであって、ネットワーク制御部20cとDMAC20aとの転送データのバッファ処理を行う。DMAC20aは、内部アービタ70に接続され、内部アービタ70にデータ転送要求を行って、ネットワーク11とメインメモリ4との間のデータ転送を行う。外部デバイスコントローラ30〜50は、ネットワークコントローラ20と同様の構成を有しており、それぞれネットワークコントローラ20と同様の処理を行って、対応する外部デバイスとメインメモリ4とのデータ転送を行う。なお、図示しないが、ネットワークコントローラ20以外の他の外部デバイスコントローラ30〜50も、ネットワークコントローラ20と同様に、DMAC30a〜50a以外に、制御部、内部バッファを備えている。
The network controller 20 includes a DMAC (Direct Memory Access Controller) 20a, an
内部アービタ(データ転送要求制御手段)70は、転送要求制御部70aを備えており、転送要求制御部70aが、各コントローラ20〜50のDMAC20a〜50aからのデータ転送要求をラウンドロビン方式で調停して、各コントローラ20〜50のDMAC20a〜50aによるバス利用を制御する。
The internal arbiter (data transfer request control means) 70 includes a transfer request control unit 70a, and the transfer request control unit 70a arbitrates data transfer requests from the DMACs 20a to 50a of the controllers 20 to 50 in a round robin manner. The bus usage by the
PCIeコントローラ60は、PCIeエンドポイント60aを備えており、PCIeエンドポイント(転送インターフェイス手段、データ転送状況判定手段)60aは、内部アービタ70に接続されているとともに、メインCPU3と接続されている。
The PCIe controller 60 includes a
メインCPU3には、上述のように、メインメモリ4が接続されているとともに、コントローラASIC2及びプロッタASIC7等と接続されて、メインCPU3は、通常、アービタを備えているとともに、図3に示すように、PCIeルートコンプレックス3aを備えており、PCIeルートコンプレックス3aは、内部バッファ3bを有している。また、PCIeコントローラ60のPCIeエンドポイント60aは、図3に示すように、内部バッファ60bを有している。
As described above, the
メインCPU3と外部IFASIC10とは、PCIe80で接続されており、PCIeルートコンプレックス3aとPCIeエンドポイント60aとは、PCIe80のトランザクション層に規定されているフローコントロールで、定期的(所定基準時間毎)に相手の内部バッファ3b、60bの状況(データ量等)をやりとりする。
The
内部アービタ70は、コントローラ20〜50に対して、バス使用権を与えると、所定のマスク期間だけ該コントローラ20〜50のバス使用権に対してマスクを行うマスク処理を実行する。また、内部アービタ70は、上記メインCPU3のPCIeルートコンプレックス3aに設けられている内部バッファ3bの状況(データ量等)に基づいてコントローラ20〜50に設定したマスクの解除、マスクの設定可否等のマスク制御を行う。
When the internal arbiter 70 gives the right to use the bus to the controllers 20 to 50, the internal arbiter 70 executes a mask process for masking the right to use the bus of the controller 20 to 50 for a predetermined mask period. Further, the internal arbiter 70 cancels the mask set in the controllers 20 to 50 based on the status (data amount, etc.) of the internal buffer 3b provided in the PCIe root complex 3a of the
次に、本実施例の作用を説明する。本実施例の画像処理装置1は、バス制御をラウンドロビン方式で行うとともに、マスク処理の効率的な制御を行う。 Next, the operation of this embodiment will be described. The image processing apparatus 1 according to the present embodiment performs bus control by a round robin method and efficient control of mask processing.
なお、以下の説明では、外部IFASIC10の内部アービタ70におけるネットワークコントローラ20とメインCPU3を介したメインメモリ4へのデータ転送におけるマスク制御を伴うバス制御について説明するが、外部IFASIC10に接続されているバス制御の対象デバイスとしては、ネットワーク11に限るものではなく、SDカード、USBデバイス等の他の外部デバイス12であっても同様に適用することができる。また、以下の説明では、ネットワーク11からデータ受信要求があって、外部IFASIC10のネットワークコントローラ20が内部アービタ70にバス獲得要求を行って、PCIe80を通して、メインCPU3を介してメインメモリ4にデータをDMA転送する場合について説明するが、バスとしては、PCIe80に限るものではなく、メインCPU3側のバス制御を実行する部分であるデータ転送制御手段が内部バッファを搭載して、該内部バッファの状況を所定間隔毎に取得することで、メインCPU3を介して他のデバイスがメインメモリ4にアクセスしている状況を把握し、該他のデバイスのメインメモリ4へのアクセス状況に応じてマスク制御を伴うバス制御を行う場合に適用することができる。
In the following description, bus control with mask control in data transfer to the main memory 4 via the network controller 20 and the
画像処理装置1は、ネットワーク11からデータ受信要求があると、外部IFASIC10のネットワークコントローラ20が、そのネットワーク制御部20で該データ受信要求を制御して、必要なデータを内部バッファ20bに保管しつつ、DMAC20aが内部アービタ70にバス獲得要求(転送要求)を行い、内部アービタ70は、基本的に、各コントローラ20〜50からのバス獲得要求に対してラウンドロビン方式でバス使用権を与えるというバス制御を行う。
When the image processing apparatus 1 receives a data reception request from the network 11, the network controller 20 of the
画像処理装置1は、メインメモリ4と各デバイスとのデータ転送をDMA転送によって行い、例えば、ネットワークコントローラ20とメインメモリ4とのDMAデータ転送を、図4及び図5に示すように行って、メモリへのデータライト及びデータリードを行う。すなわち、ネットワークコントローラ20のDMAC20aは、メインメモリ4にデータをライトするデータライトの場合、図4に示すように、メインメモリ上のDMAディスクリプタを読み取るリード転送を行い(ステップS101)、ネットワーク制御部20cによってネットワーク制御を行ってデータ受信を開始する(ステップS102)。DMAC20aは、内部バッファ20bに転送データが溜まると(ステップS103)、DMAパケットのライト転送を行い(ステップS104)、パケット終端をメインメモリ4へ転送したかチェックする(ステップS105)。パケット終端をメモリに転送していないときには、DMAC20aは、ディスクリプタをチェーンするかチェックして(ステップS107)、ディスクリプタをチェーンするときには、ステップS101に戻って上記同様に処理する。
The image processing apparatus 1 performs data transfer between the main memory 4 and each device by DMA transfer, for example, performs DMA data transfer between the network controller 20 and the main memory 4 as shown in FIGS. 4 and 5. Data write and data read to the memory are performed. That is, in the case of data write for writing data to the main memory 4, the
ステップS105で、パケット終端をメモリに転送したときには、DMAC20aは、DMAディスクリプタをメインメモリ4にライト転送して書き戻し(ステップS106)、ディスクリプタをチェーンするかチェックする(ステップS107)。ステップS107で、ディスクリプタをチェーンするときには、ステップS101に戻って、メモリのディスクリプタのリード転送から上記同様に処理し(ステップS101〜S107)、ステップS107で、ディスクリプタのチェーンを行わないときには、DMAライト処理を終了する。
When the packet end is transferred to the memory in step S105, the
また、メインメモリ4上のデータをリードしてネットワーク11に転送するデータリードの場合、DMAC20aは、まず、メインメモリ4上のDMAディスクリプタを読み取るリード転送を行い(ステップS201)、該ディスクリプタに基づいてメインメモリ4上のDMAパケット(データ)をリードして内部バッファ20bに書き込むリード転送を開始する(ステップS202)。DMAC20aは、DMAパケットのリード転送を開始すると、ネットワーク制御を行って、データ送信を開始し(ステップS203)、パケット終端をネットワーク11へ送信したかチェックする(ステップS204)。パケット終端をネットワーク11へ送信していないときには、DMAC20aは、内部バッファ20bに空きがあるかチェックし(ステップS206)、内部バッファ20bに空きがないときには、ステップS203に戻って、データの受信を継続してステップS204でパケット終端をネットワークNWへ送信すると、DMAディスクリプのタライト転送をディスクリプタの書き戻しを行い(ステップS205)、内部バッファに空きがあるかチェックする(ステップS206)。
In the case of data read in which data on the main memory 4 is read and transferred to the network 11, the
ステップS206で、内部バッファに空きがないときには、ステップS203に戻って上記同様にネットワーク11へデータ転送する処理を行い(ステップS203〜S206)、ステップS206で内部バッファに空きができると、ディスクリプタをチェーンするかチェックする(ステップS207)。ステップS207で、ディスクリプタをチェーンするときには、DMAC20aは、ステップS201に戻って、メインメモリ4のディスクリプタのリード転送から上記同様に処理し(ステップS201〜S207)、ステップS207で、ディスクリプタのチェーンを行わないときには、DMAリード処理を終了する。
If there is no free space in the internal buffer in step S206, the process returns to step S203 to transfer data to the network 11 in the same manner as described above (steps S203 to S206). If the internal buffer is free in step S206, the descriptor is chained. It is checked whether to do (step S207). When chaining descriptors in step S207, the
すなわち、DMA転送においては、ディスクリプタリード、データリード、データライト、ディスクリプタライトという動作処理を繰り返し行うことで、データ転送を行う。 That is, in DMA transfer, data transfer is performed by repeatedly performing operation processes such as descriptor read, data read, data write, and descriptor write.
そして、ネットワークコントローラ20のDMAC20aは、この動作処理のアクセス毎に、内部アービタ70にバス獲得要求を行い、バス使用権が与えられてデータ転送を開始するまでネットワーク11からのデータを内部バッファ20bに保管して待つという転送待ちが発生する。
The
そして、このDMA転送において用いられるディスクリプタは、一般的に、図6に示すようにフォーマット構成されており、次ディスクリプタアドレス、転送アドレス、転送サイズ、DMA制御/パケット情報がある。次ディスクリプタアドレスは、次に読み込むディスクリプタのメインメモリ4上のアドレスが格納され、「0x0」の場合は、次に読み込むディスクリプタがないことを示している。転送アドレスは、メインメモリ4上のデータの格納先が格納されており、転送サイズは、メインメモリ4に転送するデータ量が格納されている。DMA制御は、DMAを一時停止させたり、割り込みを発生させるための制御情報が格納され、パケット情報は、DMAがパケット終了を示すためにライトする領域である。そして、このディスクリプタは、128bitという少ないデータ量となっており、ディスクリプタの転送によるバス帯域への影響は非常に少ない。 The descriptor used in this DMA transfer is generally formatted as shown in FIG. 6, and includes a next descriptor address, a transfer address, a transfer size, and DMA control / packet information. The next descriptor address stores the address of the descriptor to be read next on the main memory 4, and “0x0” indicates that there is no descriptor to be read next. The transfer address stores the data storage destination on the main memory 4, and the transfer size stores the amount of data transferred to the main memory 4. In the DMA control, control information for temporarily stopping the DMA or generating an interrupt is stored, and the packet information is an area in which the DMA writes to indicate the end of the packet. This descriptor has a small data amount of 128 bits, and the influence of the descriptor transfer on the bus bandwidth is very small.
一方、バス制御においては、メインCPU3を介してメインメモリ4にアクセスするデバイスが、外部IFASIC10に接続されたネットワーク11や外部デバイス12だけでなく、画像処理装置1として優先的にバス使用の確保が必要なスキャナ部6からのデータ転送やプロッタ部8へのデータ転送(以下、必要に応じて、優先データ転送という。)があり、メインCPU3のPCIeバス80の使用をこのような優先データ転送に対して優先させる必要がある。
On the other hand, in bus control, not only the network 11 and the external device 12 connected to the
そこで、外部IFASIC10の内部アービタ70は、ネットワークコントローラ20やその他の外部ドライバコントローラ30〜50に、バス使用権を1ラウンドロビンの間だけ与えて該バス使用権の使用が完了すると、図7に示すように、一定期間(図7では、100クロック間)だけ、バス使用権を与えた該コントローラ20〜50のDMAC20a〜50aからのバス獲得要求(転送要求)に対してマスクする。
Therefore, when the internal arbiter 70 of the
ところが、上述のように、バス使用権を与えて1ラウンド期間が終了し、バス使用が終了するとマスク期間だけマスクするというマスク処理を単純に行うと、メインCPU3のPCIe80の使用状況を無視した制御となり、効率的なバス制御を行うことができない。
However, as described above, when the bus use right is given and the one round period ends, and the mask process of masking only the mask period when the bus use is completed is performed, the control of ignoring the use status of the PCIe 80 of the
そこで、外部IFASIC10の内部アービタ70は、PCIeのトランザクション層に規定されるフローコントロールによる対向デバイスの内部バッファの状況のやり取り機能を利用して、図3に示したように、メインCPU3のPCIeバスの使用状況を、メインCPU3のPCIeルートコンプレックス3aに設けられている内部バッファ3bの状況(データ量等)を把握し、該内部バッファ3bの状況から他のデバイスであるコントロールASIC2やプロッタASIC7等によるメインCPU3のPCIeバスの使用状況を判断してネットワークコントローラ20等の外部デバイス20〜50へのマスク制御を行う。
Therefore, the internal arbiter 70 of the
また、内部アービタ70は、バス獲得要求が発生した場合に、該バス獲得要求の内容に基づいて該バス獲得要求によるバス使用のバス帯域への影響を判断して、マスク制御を行う。内部アービタ70は、このバス帯域への影響を、転送データ量やバス獲得要求の種類に基づいてPCIeバスの帯域への影響を判断して、マスク制御を行う。例えば、上述のように、ディスクリプタは、128bitという少ないデータ量であるため、バス獲得要求がディスクリプタのリード要求、ライト要求であると、マスクをかけないように制御したり、既にかかっているマスクを解除するように制御するマスク制御を行う。 Further, when a bus acquisition request is generated, the internal arbiter 70 determines the influence of the bus acquisition request on the bus bandwidth based on the content of the bus acquisition request, and performs mask control. The internal arbiter 70 performs mask control by determining the influence on the bandwidth of the PCIe bus based on the amount of transfer data and the type of bus acquisition request. For example, as described above, since the descriptor has a small data amount of 128 bits, if the bus acquisition request is a read request or write request for the descriptor, the descriptor is controlled so as not to be masked or the mask already applied is set. Mask control is performed to control the release.
すなわち、内部アービタ70は、図8に示すように、ネットワークコントローラ20のDMAC20aからのバス獲得要求に応じて1ラウンドロビン期間の間だけバス使用権を与え、該バス使用が終了すると、マスク期間(図7、図9、図10では、「100」クロック期間)をマスク期間カウンタにセットして(ステップS301)、該マウス期間カウンタのカウントダウンを開始し(ステップS302)、その後に、DMAC20aから転送要求であるバス獲得要求があると、該バス獲得要求がディスクリプタリードまたはディスクリプタライトのディスクリプタに関するバス獲得要求であるかチェックする(ステップS303)。すなわち、ネットワークコントローラ20のDMAC20aは、通常のバス獲得要求(転送要求)に、その転送要求の種類を示す情報(制御信号等)を付加して、内部アービタ70に入力する。
That is, as shown in FIG. 8, the internal arbiter 70 gives a bus use right only for one round robin period in response to a bus acquisition request from the
ステップS303で、バス獲得要求がディスクリプタに関する要求であると、バス使用帯域が狭いと判断して、内部アービタ70は、図9に示すように、マスク期間カウンタを「0」にクリアして、該バス獲得要求に対してバス使用権を付与し(ステップS304)、転送許可して、該バス使用権による転送が完了すると、ステップS301に戻って上記同様に処理する。なお、図9では、DMAC20aからの転送要求であるREQ1がディスクリプタであるときに、マスク期間カウンタが「100」にセットされて、「99」にカウントダウンしたところで、「0」にクリアして、転送許可(バス使用権)を付与した状態を示している。
In step S303, if the bus acquisition request is a request for a descriptor, it is determined that the bus use bandwidth is narrow, and the internal arbiter 70 clears the mask period counter to “0” as shown in FIG. A bus use right is granted to the bus acquisition request (step S304), transfer is permitted, and when transfer by the bus use right is completed, the process returns to step S301 to perform the same processing as described above. In FIG. 9, when REQ1, which is a transfer request from the
ステップS303で、転送要求がディスクリプタでないとき、例えば、データリードやデータライトの転送要求であるときには、内部アービタ70は、データ量が多いと判断して、メインCPU3のPCIeバスのメモリ帯域に、バス獲得要求に対してバス使用権を付与するのに十分な空きがあるかチェックする(ステップS305)。なお、このメモリ帯域に充分な空きがあるか否かのチェックについては、後述する。
In step S303, when the transfer request is not a descriptor, for example, when the request is a data read or data write transfer request, the internal arbiter 70 determines that the amount of data is large, and sets the bus bandwidth to the PCIe bus memory bandwidth of the
ステップS305で、メモリ帯域に充分な空きがあるときには、内部アービタ70は、図10に示すように、マスク期間カウンタを「0」にクリアして、該バス獲得要求に対してバス使用権を付与し(ステップS304)、転送許可して、該バス使用権による転送が完了すると、ステップS301に戻って上記同様に処理する。 When there is sufficient free memory bandwidth in step S305, the internal arbiter 70 clears the mask period counter to “0” as shown in FIG. 10, and gives the bus use right to the bus acquisition request. (Step S304) When transfer is permitted and transfer by the right to use the bus is completed, the process returns to Step S301 to perform the same processing as described above.
ステップS305で、メモリ帯域に充分な空きがないときには、内部アービタ70は、マスク期間カウンタが「0」であるか、すなわち、マスク期間が過ぎているかチェックし(ステップS306)、マスク期間が過ぎていないときには、図7に示したように、マスクを解除することなく、ステップS302に戻って、マスク期間カウンタのカウントダウンから上記同様に処理する(ステップS302〜S306)。 If there is not enough free memory bandwidth in step S305, the internal arbiter 70 checks whether the mask period counter is “0”, that is, whether the mask period has passed (step S306), and the mask period has passed. If not, as shown in FIG. 7, the process returns to step S302 without releasing the mask, and the same processing as described above is performed from the countdown of the mask period counter (steps S302 to S306).
ステップS306で、マスク期間カウンタが「0」のときには、内部アービタ70は、マスク期間が過ぎていると判断して、バス獲得要求に対してバス使用権を付与し(ステップS304)、転送許可して、該バス使用権による転送が完了すると、ステップS301に戻って上記同様に処理する。 If the mask period counter is “0” in step S306, the internal arbiter 70 determines that the mask period has passed, grants a bus use right to the bus acquisition request (step S304), and permits transfer. When the transfer with the bus use right is completed, the process returns to step S301 and the same processing as described above is performed.
そして、上記メインCPU3のPCIeバスのメモリ帯域に、バス獲得要求に対してバス使用権を付与するのに十分な空きがあるか否かは、メインCPU3のPCIeルートコンプレックス3aの内部バッファ3bの状況に基づいて判断する。すなわち、外部IFASIC10の内部アービタ70は、PCIeのトランザクション層に規定されるフローコントロールによる対向デバイスの内部バッファ3bの状況のやり取り機能を利用して、図3に示したように、メインCPU3のPCIeバスの使用状況を、メインCPU3のPCIeルートコンプレックス3aの内部バッファ3bの状況(データ量等)を把握する。例えば、PCIeエンドポイント60aは、フローコントロールによって、あるフローコントロール処理時点でのメインCPU3のPCIeルートコンプレックス3aの内部バッファ状態を取得して保存し、次のフローコントロール処理で、該次のフローコントロール処理時点でのPCIeルートコンプレックス3aの内部バッファ3bの状況を取得する。PCIeエンドポイント60aは、今回のフローコントロール処理時点での取得したPCIeルートコンプレックス3aの内部バッファ3bの状況と前回のフローコントロール時点での内部バッファ3bの状況との変化量を求めて、該変化量を予め設定されている変化閾値と比較し、フローコントロール処理間隔の間にPCIeバスを使用したデータ転送処理が進行したのかのデータ転送処理進行状況を判定する。例えば、転送要求制御部70aは、変化量が変化閾値よりも大きいときには、スキャナ部6やプロッタ部8の関与するデータ転送が発生せずに、メインCPU3からメインメモリ4へのデータ転送が順調に行われていると判定し、変化量が変化閾値よりも小さいときには、スキャナ部6やプロッタ部8の関係するデータ転送が頻繁に発生していると判定することができる。なお、PCIeルートコンプレックス3aの内部バッファ3bの状況の変化量は、連続するフローコントロール処理間での変化量に限るものではなく、所定数のフローコントロール処理間隔を空けたフローコントロール処理時点での内部バッファ3bの状況の変化量であってもよい。
Whether or not the memory bandwidth of the PCIe bus of the
そして、PCIeエンドポイント60aは、上記判定結果を内部アービタ70に渡し、内部アービタ70が、ステップS305で、該判定結果に基づいてメモリ帯域に充分な空きがあるか判定する。
Then, the
なお、図8の処理では、転送要求(バス獲得要求)がディスクリプタに関する転送要求であるか否かと、メモリ帯域に充分な空きがあるか否かに基づいて、マスクの解除を行っているが、転送要求(バス獲得要求)で要求しているデータ量(転送要求データ量)に基づいてマスクの解除を行ってもよい。この場合、内部アービタ70は、DMAC20aからのバス獲得要求から転送要求データ量を取得し、取得した転送要求データ量を予め設定されているデータ閾値と比較して転送要求データ量がデータ閾値よりも少ないときにのみマスクの解除を行って、該バス獲得要求に応じてバス使用権を設定する。
In the process of FIG. 8, the mask is released based on whether the transfer request (bus acquisition request) is a transfer request related to a descriptor and whether there is sufficient free memory bandwidth. The mask may be canceled based on the data amount (transfer request data amount) requested by the transfer request (bus acquisition request). In this case, the internal arbiter 70 acquires the transfer request data amount from the bus acquisition request from the
また、内部アービタ70は、上記PCIeルートコンプレックス3aの内部バッファ3bのデータ量が所定量よりも少ない場合、少ないデータ量のデータのバス獲得要求を許可して、該データの内部バッファ3bからの転送状況をフローコントロールによって監視し、該監視結果に基づいてマスクを解除して、データ量多いデータ転送を許可するバス使用権を付与するようにしてもよい。 When the amount of data in the internal buffer 3b of the PCIe root complex 3a is smaller than a predetermined amount, the internal arbiter 70 permits a bus acquisition request for a small amount of data and transfers the data from the internal buffer 3b. The situation may be monitored by flow control, the mask may be released based on the monitoring result, and a bus use right may be granted to permit data transfer with a large amount of data.
このように、本実施例の画像処理装置1は、内部バッファ3bを有して該内部バッファ3bを利用した複数のデータ転送を制御するPCIeルートコンプレックス3aを介したバス獲得要求(データ転送要求)が、複数のDMAC20a〜50aからあると、該データ転送要求に対して公平に所定転送期間だけデータ転送を許可するデータ転送の許可/不許可を制御するとともに、許可したデータ転送が該転送期間を経過すると、該DMAC20a〜50aからのデータ転送要求を所定のマスク期間だけ不許可とするマスク処理を制御する際に、PCIeルートコンプレックス3aの内部バッファ3bのデータ量を所定基準時間毎(フローコントロール毎)に取得して、取得した内部バッファ3bのデータ量に基づいてPCIeルートコンプレックス3aによるデータ転送状況を判定し、該判定結果に基づいてマスク処理を制御している。
As described above, the image processing apparatus 1 according to the present embodiment includes the internal buffer 3b and requests for bus acquisition (data transfer request) via the PCIe route complex 3a that controls a plurality of data transfers using the internal buffer 3b. However, if there are a plurality of
したがって、ラウンドロビン方式でのデータ転送の完了したバス獲得要求(データ転送要求)元によるデータ転送要求をマスク期間だけマスクするマスク処理を、データ転送状況を把握して制御することができ、安価かつより効率的なラウンドロビン方式でのデータ転送を行うことができる。 Therefore, the mask processing for masking the data transfer request by the source of the bus acquisition request (data transfer request) for which the data transfer in the round robin method has been completed can be controlled by grasping the data transfer status, and inexpensively. More efficient round robin data transfer can be performed.
また、本実施例の画像処理装置1は、DMAC20a〜50aからのデータ転送要求によってPCIeルートコンプレックス3aでのデータ転送に与える転送負荷の大きさに基づいてマスク処理を制御している。 Further, the image processing apparatus 1 according to the present embodiment controls the mask processing based on the transfer load applied to the data transfer in the PCIe root complex 3a in response to the data transfer request from the DMACs 20a to 50a.
したがって、データ転送状況をより適切に把握して制御することができ、安価かつより一層効率的なラウンドロビン方式でのデータ転送を行うことができる。 Therefore, it is possible to more appropriately grasp and control the data transfer status, and it is possible to perform data transfer by a round robin method that is cheaper and more efficient.
さらに、本実施例の画像処理装置1は、転送負荷の大きさをデータ転送要求の要求する転送データ量に基づいて判断している。 Furthermore, the image processing apparatus 1 of this embodiment determines the magnitude of the transfer load based on the amount of transfer data requested by the data transfer request.
したがって、データ転送状況をより適切に把握して制御することができ、安価かつより一層効率的なラウンドロビン方式でのデータ転送を行うことができる。 Therefore, it is possible to more appropriately grasp and control the data transfer status, and it is possible to perform data transfer by a round robin method that is cheaper and more efficient.
また、本実施例の画像処理装置1は、PCIeルートコンプレックス3aが、DMAデータ転送によるデータ転送を制御し、データ転送要求が、DMAデータ転送要求であって、転送負荷の大きさをDMAデータ転送要求がディスクリプタ転送要求であるかデータ転送要求であるかによって判断している。 Further, in the image processing apparatus 1 according to the present embodiment, the PCIe root complex 3a controls data transfer by DMA data transfer, the data transfer request is a DMA data transfer request, and the transfer load is set to DMA data. transfer request is determined by whether the data transfer request is a descriptor transfer request.
したがって、DMAデータ転送におけるラウンドロビン方式でのデータ転送を安価にかつ効率的に行うことができる。 Therefore, round robin data transfer in DMA data transfer can be performed at low cost and efficiently.
さらに、本実施例の画像処理装置1は、内部アービタ70が、DMAC20a〜50aからのデータ転送要求に基づいて、マスクを設定するか否かのマスク設定制御及び設定したマスクのマスク期間の解除を行うか否かのマスク期間制御を行っている。 Further, in the image processing apparatus 1 of the present embodiment, the internal arbiter 70 performs mask setting control as to whether or not to set a mask based on a data transfer request from the DMACs 20a to 50a and cancels the mask period of the set mask. Whether or not to perform masking period control is performed.
したがって、マスクの設定の事前制御を行うことができるとともに、設定したマスク期間の制御を行うことができ、より一層適切かつ効率的にラウンドロビン方式でのデータ転送を行うことができる。 Therefore, it is possible to perform pre-control of mask setting and control of the set mask period, and it is possible to perform data transfer in a round robin manner more appropriately and efficiently.
なお、上記実施例においては、スキャナ処理とプロッタ処理を行う複合装置、複写装置等の画像処理装置1に適用した場合について説明したが、データ転送装置としては、画像処理装置に限るものではなく、データ転送をラウンドロビン方式で行う装置一般に適用することができる。 In the above-described embodiment, the case where the present invention is applied to the image processing apparatus 1 such as a composite apparatus or a copying apparatus that performs scanner processing and plotter processing has been described. However, the data transfer apparatus is not limited to the image processing apparatus. The present invention can be generally applied to a device that performs data transfer in a round robin manner.
以上、本発明者によってなされた発明を好適な実施例に基づき具体的に説明したが、本発明は上記実施例で説明したものに限定されるものではなく、その要旨を逸脱しない範囲で種々変更可能であることはいうまでもない。 The invention made by the present inventor has been specifically described based on the preferred embodiments. However, the present invention is not limited to that described in the above embodiments, and various modifications can be made without departing from the scope of the invention. It goes without saying that it is possible.
本発明は、データ転送をラウンドロビン方式で行うとともに、マスク処理を行って意図するデバイスの転送を優先させるデータ転送制御装置、画像処理装置、データ転送制御方法、データ転送制御プログラム及び記録媒体に利用することができる。 The present invention is used in a data transfer control device, an image processing device, a data transfer control method, a data transfer control program, and a recording medium that perform data transfer in a round robin manner and prioritize transfer of an intended device by performing mask processing. can do.
1 画像処理装置
2 コントローラASIC
3 メインCPU
3a PCIeルートコンプレックス
3b 内部バッファ
4 メインメモリ
5 スキャナASIC
6 スキャナ部
7 プロッタASIC
8 プロッタ部
9 ハードディスク(HDD)
10 外部IFASIC
11 ネットワーク
12 外部デバイス
20 ネットワークコントローラ
20a DMAC
20b 内部バッファ
20c ネットワーク制御部
30〜50 外部デバイスコントローラ
30a〜50a DMAC
60 PCIeコントローラ
60a PCIeエンドポイント
60b 内部バッファ
70 内部アービタ
70a 転送要求制御部
80 PCIe
1
3 Main CPU
3a PCIe root complex 3b internal buffer 4 main memory 5 scanner ASIC
6 Scanner unit 7 Plotter ASIC
8
10 External IFASIC
11 Network 12 External Device 20
60
Claims (9)
前記記憶手段と接続されると共に、第1の内部バッファを有し、当該第1の内部バッファを利用したデータ転送を制御するデータ転送制御手段と、
外部とのデータ転送に係るデータ転送要求を行う複数のデータ転送要求手段と、
前記複数のデータ転送要求手段の何れかからの前記データ転送要求に対して、当該データ転送要求を所定期間許可又は不許可とする制御を行うデータ転送要求制御手段と、
前記データ転送制御手段とバス接続され、前記第1の内部バッファのデータ量を取得して保存する第2の内部バッファを有する転送インターフェイス手段と、を備えたデータ転送制御装置であって、
前記データ転送要求制御手段は、前記外部からのデータ転送要求が前記記憶手段との間のデータ転送に係る要求である場合に、前記第1の内部バッファの空き状況を前記第2の内部バッファに取得して保存した当該第1の内部バッファの変化量に基づいて判断し、当該第1の内部バッファの空き容量が十分であると判断したときに当該データ転送要求を許可して当該記憶手段との間のデータを前記転送インターフェイス手段を介して転送し、当該第1の内部バッファの空き容量が十分でないと判断したときに当該データ転送要求を不許可とすることを特徴とするデータ転送制御装置。 Storage means;
Is connected to the storage means, having a first internal buffer, and the data transfer control means for controlling data transfer by using the first internal buffer,
A plurality of data transfer request means for making a data transfer request related to data transfer with the outside ;
To the data transfer request from any one of said plurality of data transfer request means, the data transfer request control means for controlling that the data transfer request for a predetermined period allowed or disallowed,
The data transfer control means and connected by a bus to a data transfer control device and a transfer interface means having a second internal buffer and stores the acquired data amount of said first internal buffer,
The data transfer request control means, when the external data transfer request is a request related to data transfer with the storage means, indicates the availability of the first internal buffer in the second internal buffer. Judgment is made based on the change amount of the first internal buffer acquired and stored, and when it is determined that the free space of the first internal buffer is sufficient, the data transfer request is permitted and the storage means The data transfer control device is configured to transfer the data between the first and second data via the transfer interface means, and disallow the data transfer request when it is determined that the free space of the first internal buffer is not sufficient. .
複数のデータ転送要求手段により、外部とのデータ転送に係るデータ転送要求を行う複数のデータ転送要求処理ステップと、
データ転送要求制御手段により、前記複数のデータ転送要求手段の何れかからの前記データ転送要求に対して、当該データ転送要求を所定期間許可又は不許可とする制御を行うデータ転送要求制御処理ステップと、
前記データ転送制御手段とバス接続された転送インターフェイス手段の第2の内部バッファにより、前記第1の内部バッファのデータ量を取得して保存する転送インターフェイス処理ステップと、を有し、
前記データ転送要求制御処理ステップでは、前記外部からのデータ転送要求が前記記憶手段との間のデータ転送に係る要求である場合に、前記第1の内部バッファの空き状況を前記第2の内部バッファに取得して保存した当該第1の内部バッファの変化量に基づいて判断し、当該第1の内部バッファの空き容量が十分であると判断したときに当該データ転送要求を許可して当該記憶手段との間のデータを前記転送インターフェイス手段を介して転送し、当該第1の内部バッファの空き容量が十分でないと判断したときに当該データ転送要求を不許可とすることを特徴とするデータ転送制御方法。 A data transfer control processing step for controlling data transfer using the first internal buffer by the data transfer control means connected to the storage means and having the first internal buffer;
A plurality of data transfer request processing steps for performing a data transfer request related to data transfer with the outside by a plurality of data transfer request means;
A data transfer request control processing step for performing a control for permitting or not permitting the data transfer request for a predetermined period with respect to the data transfer request from any of the plurality of data transfer requesting means by a data transfer request controlling means; ,
A transfer interface processing step of acquiring and storing a data amount of the first internal buffer by a second internal buffer of the transfer interface means connected by bus to the data transfer control means,
In the data transfer request control processing step, when the external data transfer request is a request related to data transfer with the storage unit, the availability of the first internal buffer is determined as the second internal buffer. The storage means permits the data transfer request when it is determined based on the change amount of the first internal buffer acquired and stored in step S1 and when it is determined that the free space of the first internal buffer is sufficient. Data transfer control , wherein the data transfer request is not permitted when it is determined that the first internal buffer has insufficient free space. Way .
記憶手段と接続されると共に、第1の内部バッファを有するデータ転送制御手段により、当該第1の内部バッファを利用したデータ転送を制御するデータ転送制御処理ステップの手順と、
複数のデータ転送要求手段により、外部とのデータ転送に係るデータ転送要求を行う複数のデータ転送要求処理ステップの手順と、
データ転送要求制御手段により、前記複数のデータ転送要求手段の何れかからの前記データ転送要求に対して、当該データ転送要求を所定期間許可又は不許可とする制御を行うデータ転送要求制御処理ステップの手順と、
前記データ転送制御手段とバス接続された転送インターフェイス手段の第2の内部バッファにより、前記第1の内部バッファのデータ量を取得して保存する転送インターフェイス処理ステップの手順と、を有し、
前記データ転送要求制御処理ステップの手順では、前記外部からのデータ転送要求が前記記憶手段との間のデータ転送に係る要求である場合に、前記第1の内部バッファの空き状況を前記第2の内部バッファに取得して保存した当該第1の内部バッファの変化量に基づいて判断し、当該第1の内部バッファの空き容量が十分であると判断したときに当該データ転送要求を許可して当該記憶手段との間のデータを前記転送インターフェイス手段を介して転送し、当該第1の内部バッファの空き容量が十分でないと判断したときに当該データ転送要求を不許可とすることを特徴とするデータ転送制御プログラム。 A data transfer control program executed by a computer,
A procedure of a data transfer control processing step for controlling data transfer using the first internal buffer by the data transfer control means connected to the storage means and having the first internal buffer;
A plurality of data transfer request processing steps for performing a data transfer request related to data transfer with the outside by a plurality of data transfer request means;
A data transfer request control means for performing a control for permitting or not permitting the data transfer request for a predetermined period in response to the data transfer request from any of the plurality of data transfer request means. Procedure and
A transfer interface processing step for acquiring and storing a data amount of the first internal buffer by a second internal buffer of the transfer interface means connected by bus to the data transfer control means, and
In the procedure of the data transfer request control processing step, when the external data transfer request is a request related to data transfer with the storage means, the free state of the first internal buffer is set to the second state. Judgment is made based on the change amount of the first internal buffer acquired and stored in the internal buffer, and when the free space of the first internal buffer is determined to be sufficient, the data transfer request is permitted and the the data between the storage means and transferred through said transfer interface unit, characterized in that the free space of the first internal buffer is not permitted to the data transfer request when it is determined that not enough data Transfer control program .
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2009032213A JP5332692B2 (en) | 2009-02-16 | 2009-02-16 | Data transfer control device, data transfer control method, data transfer control program, and recording medium |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2009032213A JP5332692B2 (en) | 2009-02-16 | 2009-02-16 | Data transfer control device, data transfer control method, data transfer control program, and recording medium |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2010191492A JP2010191492A (en) | 2010-09-02 |
JP5332692B2 true JP5332692B2 (en) | 2013-11-06 |
Family
ID=42817509
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2009032213A Expired - Fee Related JP5332692B2 (en) | 2009-02-16 | 2009-02-16 | Data transfer control device, data transfer control method, data transfer control program, and recording medium |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP5332692B2 (en) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP6175794B2 (en) * | 2013-02-19 | 2017-08-09 | 株式会社リコー | Data processing apparatus and data processing method |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH03233745A (en) * | 1990-02-09 | 1991-10-17 | Fujitsu Ltd | Transmission data control system |
JPH10312359A (en) * | 1997-05-09 | 1998-11-24 | Nec Corp | Deadlock evading mechanism |
JP2000132495A (en) * | 1998-10-28 | 2000-05-12 | Matsushita Electric Ind Co Ltd | Dma device |
JP4549458B2 (en) * | 1999-04-14 | 2010-09-22 | 株式会社沖データ | DMA transfer device |
JP2005085079A (en) * | 2003-09-10 | 2005-03-31 | Matsushita Electric Ind Co Ltd | Data transfer controller |
JP2005258509A (en) * | 2004-03-09 | 2005-09-22 | Fujitsu Ltd | Storage device |
JP4878185B2 (en) * | 2006-03-17 | 2012-02-15 | 株式会社リコー | Data communication circuit and arbitration method |
-
2009
- 2009-02-16 JP JP2009032213A patent/JP5332692B2/en not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
JP2010191492A (en) | 2010-09-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP4778199B2 (en) | Data transfer apparatus and data transfer method | |
US7096292B2 (en) | On-chip inter-subsystem communication | |
JP4356765B2 (en) | Information processing apparatus and method, and program | |
KR102372289B1 (en) | Memory access system, method for controlling the same, computer-readable storage medium, and image forming apparatus | |
JP5565204B2 (en) | Data transfer apparatus, data transfer method and program, and image forming apparatus | |
KR100480605B1 (en) | Method of controlling transmitting buffer and receiving buffer of network controller, and the network controller | |
WO2006024193A1 (en) | Method and system for data transfer | |
JP5332692B2 (en) | Data transfer control device, data transfer control method, data transfer control program, and recording medium | |
JP2011090485A (en) | Circuit and method for pipe arbitration | |
JP2009043089A (en) | Bus control device and bus control method | |
US8135878B1 (en) | Method and apparatus for improving throughput on a common bus | |
JP4953794B2 (en) | Bus arbitration method for bus system and bus system | |
JP2008108126A (en) | Data transfer control device and bus access arbitration system therefor | |
JP2006189919A (en) | Electronic equipment, control method and computer program | |
JP2006053613A (en) | Data transfer controller and data transfer control method | |
JP2004355435A (en) | Access arbitration device | |
JP4862593B2 (en) | Data transfer apparatus and image forming apparatus | |
JP6171367B2 (en) | Switch device, image processing device, and exclusive control method | |
KR100451722B1 (en) | apparatus for controlling direct memory access | |
JP2006277363A (en) | Information transfer system, and image forming device | |
JP2007102509A (en) | Arbitration device | |
KR20070061240A (en) | Apparatus for direct memory access for absolute priority dma request and method thereof | |
JPH0844661A (en) | Information processor | |
JP4832327B2 (en) | Bus arbitration circuit | |
JP3678537B2 (en) | Data transfer method and apparatus |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20120126 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A821 Effective date: 20120203 |
|
RD02 | Notification of acceptance of power of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7422 Effective date: 20120203 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20120706 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20130130 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20130205 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20130404 |
|
RD02 | Notification of acceptance of power of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7422 Effective date: 20130404 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20130702 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20130715 |
|
LAPS | Cancellation because of no payment of annual fees |