JP2005242414A - Information processor and information processing method and program - Google Patents

Information processor and information processing method and program Download PDF

Info

Publication number
JP2005242414A
JP2005242414A JP2004047330A JP2004047330A JP2005242414A JP 2005242414 A JP2005242414 A JP 2005242414A JP 2004047330 A JP2004047330 A JP 2004047330A JP 2004047330 A JP2004047330 A JP 2004047330A JP 2005242414 A JP2005242414 A JP 2005242414A
Authority
JP
Japan
Prior art keywords
data
transfer
data amount
master
master device
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.)
Withdrawn
Application number
JP2004047330A
Other languages
Japanese (ja)
Inventor
Makoto Ogura
小倉  真
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Sony Corp
Original Assignee
Sony Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Sony Corp filed Critical Sony Corp
Priority to JP2004047330A priority Critical patent/JP2005242414A/en
Publication of JP2005242414A publication Critical patent/JP2005242414A/en
Withdrawn legal-status Critical Current

Links

Images

Landscapes

  • Bus Control (AREA)
  • Information Transfer Systems (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Abstract

<P>PROBLEM TO BE SOLVED: To enable each device in a system bus or a local bus to validly utilize the bus. <P>SOLUTION: A master-categorized transfer length investigating part 71 controls a data transfer processing part 75, and when a transfer length initial value 61 is supplied, the supplied transfer length initial value 61 is set in a predetermined register. When a memory read request is acquired by an initiator, the master-categorized transfer investigating part 71 controls a master discriminating part 72 to discriminate a master which has issued the request. The master-categorized transfer length investigating part 71 controls the data transfer processing part 75 to return retry to a memory read request, and reads data for a transfer length initial value from a local memory, and makes a cash memory 22 store the data. Then, when the memory read request is acquired after the completion of data storage, a transfer length measuring part 73 performs the transfer length measurement processing. This invention may be applied to, for example, a PCI bus system. <P>COPYRIGHT: (C)2005,JPO&NCIPI

Description

本発明は、情報処理装置および方法、並びにプログラムに関し、特に、例えば、不要なデータ転送を抑制することによりバスのトラフィックを軽減させる等して、システムバスまたはローカルバスの各デバイスがそのバスをより有効に活用することができるようにした情報処理装置および方法、並びにプログラムに関する。   The present invention relates to an information processing apparatus and method, and a program, and in particular, each device of a system bus or a local bus uses the bus more effectively by, for example, reducing bus traffic by suppressing unnecessary data transfer. The present invention relates to an information processing apparatus and method that can be used effectively, and a program.

従来、例えばパーソナルコンピュータ等の情報処理装置において、装置内の各デバイスを接続するシステムバスとして、ISAバス(Industry Standard Architecture bus)やPCIバス(Peripheral Components Interconnect bus)等が用いられている。   Conventionally, in an information processing apparatus such as a personal computer, an ISA bus (Industry Standard Architecture bus), a PCI bus (Peripheral Components Interconnect bus), or the like is used as a system bus for connecting each device in the apparatus.

PCIバスは、PCI SIG(PCI Special Interest Group)により策定されたバス規格であり、長い間業界標準だったISAバスに替わる標準規格として急速に普及している。最初のPCI規格においては、バス幅(1回の転送で送れるデータ量)が32ビット、動作周波数(1秒あたりの転送回数)が33MHz(メガヘルツ)であり、最大データ転送速度は133MB/s(メガバイトパーセカンド)であった。最新のPCI規格においては、バス幅が64ビット、動作周波数が66MHzで、最大データ転送速度が533MB/sの高速な仕様も規定されている。   The PCI bus is a bus standard established by PCI SIG (PCI Special Interest Group), and is rapidly spreading as a standard that replaces the ISA bus, which has long been an industry standard. In the first PCI standard, the bus width (the amount of data that can be sent in one transfer) is 32 bits, the operating frequency (number of transfers per second) is 33 MHz (megahertz), and the maximum data transfer rate is 133 MB / s ( Megabyte second). The latest PCI standard also defines a high-speed specification with a bus width of 64 bits, an operating frequency of 66 MHz, and a maximum data transfer rate of 533 MB / s.

このPCIバスを用いたPCIバスシステムにおいては、PCIバスに複数のPCIデバイスが接続されており、PCIバスを介して互いに通信を行い、データの転送等を行う。PCIバスシステムの場合、データ転送(PCIデータ転送)を行うPCIデバイスの一方がPCIデータ転送を制御する。このPCIデバイスをマスタと称する。またPCIデータ転送において、マスタの通信相手となるPCIデバイスをターゲット称する。ターゲットは、マスタに制御されて、マスタと通信を行い、データ転送を行う。   In a PCI bus system using the PCI bus, a plurality of PCI devices are connected to the PCI bus, and communicate with each other via the PCI bus to perform data transfer and the like. In the case of a PCI bus system, one of the PCI devices that performs data transfer (PCI data transfer) controls PCI data transfer. This PCI device is called a master. In PCI data transfer, a PCI device that is a master communication partner is referred to as a target. The target is controlled by the master to communicate with the master and transfer data.

これらのPCIデバイスは、PCIバスコントローラにより制御され、マスタからの要求に基づいてバスの使用権が割り当てられる。バスの使用権を得たマスタは、ターゲットを制御してデータ転送等を行う。例えば、マスタがターゲットのローカルバスに接続されたローカルメモリよりデータを取得したい場合、マスタは、PCIバスを介してターゲットに対してリード要求を行うとともに、目的のデータが記録されたアドレスをターゲットに通知する。   These PCI devices are controlled by a PCI bus controller, and the right to use the bus is assigned based on a request from the master. The master having the right to use the bus controls the target and performs data transfer and the like. For example, when the master wants to obtain data from the local memory connected to the target local bus, the master makes a read request to the target via the PCI bus and uses the address where the target data is recorded as the target. Notice.

リード要求を取得したターゲットは、同時に取得したアドレスに従い、ローカルメモリにアクセスし、要求されたデータを取得する。ただし、一般的に、システムバスであるPCIバスと、ローカルバスとでは動作周波数等も異なり、転送速度が異なる。また、ローカルメモリがターゲットにデータの読み出しを要求されてから、そのデータを出力するまでの時間であるローカルメモリの応答時間も場合により常に一定であるとは限らない。さらに、ローカルバスにも他のローカルデバイス等が接続されており、それらの間でも通信が行われるので、ローカルバスのトラフィックが変化し、その転送速度が一定であるとは限らない。   The target that has acquired the read request accesses the local memory according to the address acquired at the same time, and acquires the requested data. However, generally, the PCI bus, which is a system bus, and the local bus have different operating frequencies and transfer rates. Also, the response time of the local memory, which is the time from when the local memory is requested to read data by the target to when the data is output, is not always constant in some cases. Further, other local devices are connected to the local bus, and communication is performed between them. Therefore, the traffic of the local bus changes and the transfer speed is not always constant.

そこで、ターゲットは、ローカルメモリより読み出したデータを、一旦、キャッシュメモリ等に蓄積し、要求されたデータが全てキャッシュメモリに蓄積され、すぐにPCIバスを介してマスタに供給できる準備が整うまで、PCIバスを介したデータ転送は行わずに待機する。その間、ターゲットは、マスタに対してリトライを返し、マスタに、PCIバスを他のデバイスに開放させる。   Therefore, the target temporarily stores the data read from the local memory in the cache memory, etc., until all the requested data is stored in the cache memory and is ready to be immediately supplied to the master via the PCI bus. Waits for no data transfer via the PCI bus. Meanwhile, the target returns a retry to the master, causing the master to open the PCI bus to other devices.

マスタは、リトライを検出すると、一旦はPCIバスを他のデバイスに解放するが、実際には、マスタのデータ転送の効率化を考慮し、すぐにまたPCIバスの使用権を確保してしまう。バスの使用権を確保すると、マスタは、再度メモリリード要求をターゲットに供給する。ターゲットは、データ転送の準備が整っている場合、データ転送を開始する。データ転送の準備が整っていない場合、ターゲットは、再度リトライをマスタに返す。   When the master detects a retry, it once releases the PCI bus to another device. In practice, however, the right to use the PCI bus is secured again in consideration of the efficiency of data transfer of the master. When the right to use the bus is secured, the master again supplies a memory read request to the target. When the target is ready for data transfer, it starts data transfer. If the data transfer is not ready, the target returns a retry to the master again.

このように、各PCIデバイスが行うPCIデータ転送は、そのデータ転送処理において、場合によって待機時間が生じることもあるリアルタイム性(即時性)が保障されないデータ転送である。   As described above, the PCI data transfer performed by each PCI device is a data transfer in which the real-time property (immediateness) that may cause a waiting time may occur in the data transfer process.

ところで、この待機時間について、例えば、マスタが1度のアクセス(1回のコマンド発行)により複数ワードのデータを転送させる方法(バースト転送)もある。このようなバースト転送を用いることにより、マスタは、コマンド発行によるバスのトラフィックを軽減させ、PCIバスシステムの利用効率を高めることができる。なお、ワードは、メモリの読み出し単位であり、1ワードは、例えば、2バイトである。   By the way, for this waiting time, for example, there is a method (burst transfer) in which the master transfers data of a plurality of words by one access (one command issuance). By using such burst transfer, the master can reduce the bus traffic due to command issuance and increase the utilization efficiency of the PCI bus system. Note that a word is a memory read unit, and one word is, for example, 2 bytes.

また、マスタの待機時間に関する情報を予め用意したターゲットを用いることにより、リトライによるトランザクションを削減する方法もある(例えば、特許文献1参照)。この場合、ターゲットの所定のレジスタに、予めレイテンシ情報、すなわち、ターゲットが要求を受けてからデータ転送の準備が整うまでの時間に関する情報を保持させておき、マスタからのアクセス要求に応答して、マスタにその情報を供給するようにする。マスタは、その情報を取得すると、そのターゲットに対してPCIデータ転送を要求する場合、リトライを検出後、そのターゲットより供給されたレイテンシ情報により指定された時間待機してから転送要求を行う。すなわち、この場合、ターゲットの準備が整うまでイニシエータは、要求の繰返しを行わない。   In addition, there is a method of reducing transactions due to retries by using a target prepared in advance with information on the standby time of the master (see, for example, Patent Document 1). In this case, the predetermined register of the target holds in advance latency information, that is, information on the time from when the request is received until the target is ready for data transfer, in response to an access request from the master, Supply that information to the master. When the master obtains the information, when requesting PCI data transfer to the target, the master waits for the time specified by the latency information supplied from the target after making a retry, and then makes a transfer request. That is, in this case, the initiator does not repeat the request until the target is ready.

特開平10−293744号公報JP-A-10-293744

しかしながら、例えば映像機器や放送局用サーバ等におけるバスシステムの場合、映像データや音声データ等の大容量のデータを頻繁に転送させる必要がある。また、このような映像機器においては、例えば外部より取り込んだ映像データ等を記録媒体に記録したり、記録媒体に記録されている映像データ等を再生し、モニタに表示したり、外部に出力したりする処理が主に行われる。従って、バスシステムにおける各データ転送は、即時性を必要とするものが多く、バスのトラフィックが増大した場合、待機時間が長くなりすぎ、記録処理や再生処理等が破綻してしまう恐れがある。従って、このような映像機器や放送局用サーバ等におけるバスシステムの場合、データ転送にリアルタイム性が要求される。   However, for example, in the case of a bus system in a video device or a broadcast station server, it is necessary to frequently transfer a large amount of data such as video data and audio data. In such a video device, for example, video data captured from the outside is recorded on a recording medium, video data recorded on the recording medium is reproduced, displayed on a monitor, or output to the outside. Is mainly performed. Therefore, each data transfer in the bus system often requires immediacy, and when the bus traffic increases, the waiting time becomes too long, and there is a possibility that the recording process, the reproduction process, etc. will fail. Therefore, in the case of such a bus system in a video device, a broadcast station server, etc., real-time performance is required for data transfer.

ところが、このような映像機器や放送局用サーバ等のシステムバスとして、上述したような汎用のPCIバスを用いる場合、それらの製造コストを低減させることができるが、PCIデータ転送においては、リアルタイム性(即時性)が保障されない。そこで、なるべくトラフィックを軽減させ、バスを有効活用させ、待機時間等を削減することが重要になる。   However, when a general-purpose PCI bus such as that described above is used as a system bus for such video equipment or broadcasting station servers, the manufacturing cost can be reduced. (Immediateness) is not guaranteed. Therefore, it is important to reduce traffic as much as possible, to effectively use the bus, and to reduce waiting time and the like.

そこで、上述した特許文献1のように、マスタのレイテンシ時間を調整し、リトライ処理を軽減させる方法が提案されているが、マスタがデータを要求するターゲットのローカルメモリが接続されたローカルバスのトラフィックについては考慮されていない。   Therefore, as in Patent Document 1 described above, a method for adjusting the latency time of the master and reducing the retry processing has been proposed. However, traffic on the local bus to which the target local memory to which the master requests data is connected is proposed. Is not considered.

従来のPCIバスシステムにおいては、例えば上述したように、マスタがターゲットにローカルバスを介して接続されたローカルメモリよりデータを読み出す場合、ターゲットは、マスタに要求されたデータをキャッシュメモリに蓄積する。このとき、上述したように、マスタがバースト転送を用いてデータを要求する場合もあるので、ターゲットは、不要な処理が発生しないように、マスタが必要とする量のデータをキャッシュメモリに蓄積してからマスタに供給するようにする。   In the conventional PCI bus system, for example, as described above, when the master reads data from the local memory connected to the target via the local bus, the target stores the data requested by the master in the cache memory. At this time, as described above, since the master may request data using burst transfer, the target stores the amount of data required by the master in the cache memory so that unnecessary processing does not occur. Then supply to the master.

しかしながら、マスタが一度に要求するデータ量(ワード数)は、各マスタによって異なる。ターゲットは、どのマスタがどの程度のデータ量を連続で読み出すかがわからないので、不要な処理が発生しないように、大量のデータ(例えば、23ワード)をローカルメモリより読み出し、キャッシュに蓄積する。   However, the amount of data (number of words) requested by the master at a time differs depending on each master. Since the target does not know which master continuously reads how much data amount, a large amount of data (for example, 23 words) is read from the local memory and accumulated in the cache so that unnecessary processing does not occur.

また、マスタがシングルワード用のリードコマンド(シングルリード)を発行しながら複数ワードのデータを連続読み出しする(バースト転送を行う)場合もあり、ターゲットは、不要な処理が発生しないように、常に大量のデータをローカルメモリより読み出し、キャッシュに蓄積しなければならない。   In some cases, the master may continuously read multiple words of data (burst transfer) while issuing a single word read command (single read), and the target is always in large quantities so that unnecessary processing does not occur. Must be read from local memory and stored in the cache.

従って、例えば、マスタによってはシングルリードしか実行できないのに、そのマスタにデータを要求されたターゲットは、ローカルメモリより不要なデータを含む大量のデータを読み出し、キャッシュに蓄積してしまい、不要にローカルバスのトラフィックを増大させてしまう恐れがあった。ローカルバスには、通常、ローカルメモリ以外のローカルデバイスも接続されており、それらのローカルデバイスも互いにデータ転送を行い、ローカルバスを利用する。   Thus, for example, some masters can only perform a single read, but a target that has requested data from that master reads a large amount of data including unnecessary data from the local memory, accumulates it in the cache, and unnecessarily local There was a risk of increasing bus traffic. Normally, local devices other than the local memory are also connected to the local bus, and these local devices also transfer data to each other and use the local bus.

そのようなローカルバスであっても、上述したように、例えば映像機器や放送局用サーバ等においては、リアルタイム性(即時性)が要求されるデータ転送が行われることが多く、上述したように、マスタよりリード要求を取得したターゲットが、不要にローカルバスを占有することにより、記録処理や再生処理が破綻してしまう恐れがあるという課題があった。   Even in such a local bus, as described above, for example, in video equipment and broadcast station servers, data transfer that requires real-time performance (immediateness) is often performed. There is a problem that the target that has acquired the read request from the master occupies the local bus unnecessarily, so that the recording process and the reproduction process may fail.

また、ターゲットが不要なデータをキャッシュメモリに蓄積することにより、ターゲットがデータ転送の準備を整える時間が不要に長くなってしまい、マスタの待機時間が増大してしまうという課題もあった。   In addition, by accumulating unnecessary data in the cache memory, there is a problem that the time for the target to prepare for data transfer becomes unnecessarily long and the standby time of the master increases.

これに対して、ターゲットがローカルメモリより1度に読み出すデータ量を削減し、ローカルバスの占有率や、データ転送の準備に必要な時間を低減させる方法も考えられるが、その場合、マスタが、ターゲットが用意したデータ量より多くのデータ量を連続して読み出すとき、ディスコネクトが発生し、データ転送処理の時間が不要に長くなり、転送効率が低下してしまう恐れがあった。   On the other hand, there is also a method of reducing the amount of data that the target reads from the local memory at one time, and reducing the local bus occupancy rate and the time required for preparation of data transfer. When a data amount larger than the data amount prepared by the target is continuously read, a disconnection occurs, and the data transfer processing time becomes unnecessarily long, which may reduce the transfer efficiency.

本発明は、このような状況に鑑みてなされたものであり、システムバスまたはローカルバスの各デバイスがそのバスをより有効に活用することができるようにするものである。   The present invention has been made in view of such a situation, and enables each device of the system bus or the local bus to more effectively utilize the bus.

本発明の第1の情報処理装置は、データ転送を制御してデータ転送を行うデバイスであるマスタデバイスの要求に基づいて、所定のメモリデバイスより予め定められた所定のデータ量である第1のデータ量のデータを取得し、内蔵するキャッシュメモリに保持した後、データを、システムバスを介してマスタデバイスに転送する第1の転送処理を実行する転送手段と、転送手段により実行される第1の転送処理において、マスタデバイスが1回のアクセスにより取得するデータ量である第2のデータ量を計測する計測手段と、計測手段により計測された第2のデータ量に基づいて、メモリデバイスより読み出すデータ量である第3のデータ量を設定する設定手段と、設定手段により設定された第3のデータ量を記憶する記憶手段とを備え、転送手段は、記憶手段により第3のデータ量が記憶された後において、マスタデバイスの要求に基づいて、メモリデバイスより、記憶手段により記憶された第3のデータ量分のデータを取得し、内蔵するキャッシュメモリに保持した後、データを、システムバスを介してマスタデバイスに転送する第2の転送処理を実行することを特徴とする。   The first information processing apparatus according to the present invention has a first data amount that is a predetermined data amount predetermined by a predetermined memory device based on a request of a master device that controls data transfer and performs data transfer. After acquiring the amount of data and holding it in the built-in cache memory, a transfer means for executing a first transfer process for transferring the data to the master device via the system bus, and a first executed by the transfer means In the transfer process, the master device measures the second data amount that is the data amount acquired by one access, and reads from the memory device based on the second data amount measured by the measuring device. A setting unit that sets a third data amount that is a data amount; and a storage unit that stores the third data amount set by the setting unit. After the third data amount is stored by the storage unit, the unit acquires the data corresponding to the third data amount stored by the storage unit from the memory device based on the request of the master device, and incorporates the data. After the data is held in the cache memory, a second transfer process is executed in which the data is transferred to the master device via the system bus.

前記第1のデータ量は、計測手段により計測される最大の第2のデータ量よりも大きいようにすることができる。   The first data amount may be larger than the maximum second data amount measured by the measuring unit.

前記設定手段は、第3のデータ量が第2のデータ量と近似するように、第3のデータ量を設定するようにすることができる。   The setting means may set the third data amount so that the third data amount approximates the second data amount.

前記マスタデバイスを制御してメモリリード要求を発行させる第1の制御手段と、第1の制御手段により制御されて発行されるメモリリード要求に対して、転送手段を制御して第1の転送処理を実行させ、計測手段を制御して第2のデータ量を計測させ、設定手段を制御して第3のデータ量を設定させ、記憶手段を制御して第3のデータ量を記憶させる第2の制御手段とをさらに備えるようにすることができる。   A first control unit for controlling the master device to issue a memory read request; and a first transfer process by controlling a transfer unit for a memory read request controlled and issued by the first control unit. , The second data amount is measured by controlling the measuring means, the third data amount is set by controlling the setting means, and the third data amount is stored by controlling the storage means. The control means may be further provided.

前記第1の制御手段は、マスタデバイスを制御してメモリリード要求を複数回発行させ、第2の制御手段は、転送手段を制御して、第1の制御手段により制御されて発行された複数のメモリリード要求のそれぞれに対して第1の転送処理を実行させ、計測手段を制御して、転送手段により複数回実行された第1の転送処理のそれぞれについて第2のデータ量を計測させ、設定手段を制御して、計測手段による複数回の計測により得られた複数の第2のデータ量に基づいて第3のデータ量を設定させ、記憶手段を制御して、設定手段により設定された第3のデータ量を記憶させるようにすることができる。   The first control unit controls the master device to issue a memory read request a plurality of times, and the second control unit controls the transfer unit to control and issue a plurality of issued by the first control unit The first transfer process is executed for each of the memory read requests, the measurement unit is controlled, and the second data amount is measured for each of the first transfer processes executed a plurality of times by the transfer unit, The setting means is controlled to set a third data amount based on a plurality of second data amounts obtained by a plurality of measurements by the measuring means, and the storage means is controlled and set by the setting means. The third data amount can be stored.

前記設定手段は、計測手段による複数回の計測により得られた複数の第2のデータ量の平均値、最大値、または最小値を第3のデータ量として設定するようにすることができる。   The setting unit may set an average value, a maximum value, or a minimum value of a plurality of second data amounts obtained by a plurality of measurements by the measuring unit as a third data amount.

前記第1の制御手段は、複数のマスタデバイスのそれぞれを制御し、マスタデバイス毎にメモリリード要求を発行させ、第2の制御手段は、転送手段、計測手段、設定手段、および記憶手段を制御して、マスタデバイス毎に第3のデータ量を設定させて記憶させるようにすることができる。   The first control unit controls each of the plurality of master devices and issues a memory read request for each master device, and the second control unit controls the transfer unit, the measurement unit, the setting unit, and the storage unit. Thus, the third data amount can be set and stored for each master device.

前記第1の制御手段は、複数の機能を有するマスタデバイスのそれぞれを制御し、マスタデバイスの機能毎にメモリリード要求を発行させ、第2の制御手段は、転送手段、計測手段、設定手段、および記憶手段を制御して、マスタデバイスの機能毎に第3のデータ量を設定させて記憶させるようにすることができる。   The first control unit controls each of the master devices having a plurality of functions, and issues a memory read request for each function of the master device. The second control unit includes a transfer unit, a measurement unit, a setting unit, In addition, the third data amount can be set and stored for each function of the master device by controlling the storage means.

前記マスタデバイスのデータ転送の相手のデバイスである複数のターゲットデバイスの中から、第2の制御手段が第3のデータ量を設定させて記憶させるように制御するターゲットデバイスを特定するターゲットデバイス特定手段をさらに備えるようにすることができる。   Target device specifying means for specifying a target device to be controlled so that the second control means sets and stores the third data amount from among a plurality of target devices that are devices to which the master device is to transfer data. Can be further provided.

前記転送手段により実行される第1の転送処理または第2の転送処理において要求を発行したマスタデバイスを判別するマスタデバイス判別手段をさらに備えるようにすることができる。   Master device determination means for determining a master device that has issued a request in the first transfer process or the second transfer process executed by the transfer means may be further provided.

前記転送手段により実行される第2の転送処理においてディスコネクト処理の発生を監視するディスコネクト監視手段をさらに備えるようにすることができる。   Disconnection monitoring means for monitoring occurrence of disconnection processing in the second transfer processing executed by the transfer means can be further provided.

本発明の第1の情報処理方法は、データ転送を制御してデータ転送を行うデバイスであるマスタデバイスの要求に基づいて、所定のメモリデバイスより予め定められた所定のデータ量である第1のデータ量のデータを取得し、内蔵するキャッシュメモリに保持した後、データを、システムバスを介してマスタデバイスに転送する第1の転送処理を実行する第1の転送ステップと、第1の転送ステップの処理により実行される第1の転送処理において、マスタデバイスが1回のアクセスにより取得するデータ量である第2のデータ量を計測する計測ステップと、計測ステップの処理により計測された第2のデータ量に基づいて、メモリデバイスより読み出すデータ量である第3のデータ量を設定する設定ステップと、設定ステップの処理により設定された第3のデータ量を記憶するように制御する記憶制御ステップと、記憶制御ステップの処理により制御されて第3のデータ量が記憶された後において、マスタデバイスの要求に基づいて、メモリデバイスより、記憶制御ステップの処理により制御されて記憶された第3のデータ量分のデータを取得し、内蔵するキャッシュメモリに保持した後、データを、システムバスを介してマスタデバイスに転送する第2の転送処理を実行する第2の転送ステップとを含むことを特徴とする。   According to a first information processing method of the present invention, a first data amount that is a predetermined data amount predetermined from a predetermined memory device based on a request of a master device that is a device that controls data transfer and performs data transfer. A first transfer step for executing a first transfer process for acquiring data of an amount of data and holding the data in a built-in cache memory and then transferring the data to the master device via the system bus; and a first transfer step In the first transfer process executed by the process, the measurement step for measuring the second data amount, which is the data amount acquired by the master device by one access, and the second measured by the process of the measurement step Based on the data amount, a setting step for setting a third data amount, which is a data amount read from the memory device, and a process of the setting step A storage control step for controlling to store the determined third data amount, and a memory based on a request from the master device after the third data amount is stored by being controlled by the processing of the storage control step. A third amount of data controlled and stored by the process of the storage control step is acquired from the device, held in the built-in cache memory, and then transferred to the master device via the system bus. And a second transfer step for executing the second transfer process.

本発明の第1のプログラムは、データ転送を制御してデータ転送を行うデバイスであるマスタデバイスの要求に基づいて、所定のメモリデバイスより予め定められた所定のデータ量である第1のデータ量のデータを取得し、内蔵するキャッシュメモリに保持した後、データを、システムバスを介してマスタデバイスに転送する第1の転送処理を実行する第1の転送ステップと、第1の転送ステップの処理により実行される第1の転送処理において、マスタデバイスが1回のアクセスにより取得するデータ量である第2のデータ量を計測する計測ステップと、計測ステップの処理により計測された第2のデータ量に基づいて、メモリデバイスより読み出すデータ量である第3のデータ量を設定する設定ステップと、設定ステップの処理により設定された第3のデータ量を記憶するように制御する記憶制御ステップと、記憶制御ステップの処理により制御されて第3のデータ量が記憶された後において、マスタデバイスの要求に基づいて、メモリデバイスより、記憶制御ステップの処理により制御されて記憶された第3のデータ量分のデータを取得し、内蔵するキャッシュメモリに保持した後、データを、システムバスを介してマスタデバイスに転送する第2の転送処理を実行する第2の転送ステップとをコンピュータに実行させる。   The first program of the present invention controls a first data amount that is a predetermined data amount predetermined by a predetermined memory device based on a request from a master device that is a device that controls data transfer and performs data transfer. A first transfer step for executing a first transfer process for transferring the data to the master device via the system bus after the data is acquired and held in the built-in cache memory, and a process of the first transfer step In the first transfer processing executed by the above, a measurement step for measuring a second data amount that is a data amount acquired by the master device by one access, and a second data amount measured by the processing of the measurement step On the basis of the setting step for setting the third data amount, which is the amount of data read from the memory device, and the setting step process. A storage control step for controlling the stored third data amount to be stored, and the memory device based on the request of the master device after the third data amount is stored by being controlled by the processing of the storage control step. Thus, after acquiring the data for the third data amount controlled and stored by the processing of the storage control step and holding it in the built-in cache memory, the data is transferred to the master device via the system bus. And causing the computer to execute the second transfer step of executing the transfer process.

本発明の第2の情報処理装置は、2つのシステムバスに接続され、2つのシステムバスの互いに異なるシステムバスに接続されたデバイス間におけるデータ転送において、データ転送を制御してデータ転送を行うデバイスであるマスタデバイスの要求に基づいて、マスタデバイスのデータ転送の相手となるターゲットデバイスより予め定められた所定のデータ量である第1のデータ量のデータを取得し、内蔵するキャッシュメモリに保持した後、マスタデバイスにデータを転送する第1の中継処理を実行する中継手段と、中継手段により実行される第1の中継処理において、マスタデバイスが1回のアクセスによりキャッシュメモリより取得するデータ量である第2のデータ量を計測する計測手段と、計測手段により計測された第2のデータ量に基づいて、ターゲットデバイスより読み出すデータ量である第3のデータ量を設定する設定手段と、設定手段により設定された第3のデータ量を記憶する記憶手段とを備え、中継手段は、記憶手段により第3のデータ量が記憶された後において、マスタデバイスの要求に基づいて、ターゲットデバイスより、記憶手段により記憶された第3のデータ量分のデータを取得し、内蔵するキャッシュメモリに保持した後、データを、システムバスを介してマスタデバイスに転送する第2の中継処理を実行することを特徴とする。   The second information processing apparatus of the present invention is a device that controls data transfer and transfers data in data transfer between devices connected to two system buses and connected to different system buses of the two system buses. Based on the request from the master device, the first data amount, which is a predetermined data amount, is acquired from the target device that is the data transfer partner of the master device, and stored in the built-in cache memory Thereafter, in the relay unit that executes the first relay process for transferring data to the master device and the first relay process that is executed by the relay unit, the amount of data that the master device acquires from the cache memory by one access Measuring means for measuring a certain second amount of data, and second data measured by the measuring means And setting means for setting a third data amount, which is a data amount read from the target device, and storage means for storing the third data amount set by the setting means, and the relay means includes storage means After the third data amount is stored by the above, based on the request of the master device, the third data amount stored by the storage unit is obtained from the target device and stored in the built-in cache memory. Then, a second relay process for transferring data to the master device via the system bus is executed.

本発明の第2の情報処理方法は、2つのシステムバスを接続する処理を行い、2つのシステムバスの互いに異なるシステムバスに接続されたデバイス間におけるデータ転送において、データ転送を制御してデータ転送を行うデバイスであるマスタデバイスの要求に基づいて、マスタデバイスのデータ転送の相手となるターゲットデバイスより予め定められた所定のデータ量である第1のデータ量のデータを取得し、キャッシュメモリを制御して保持させた後、マスタデバイスにデータを転送する第1の中継処理を実行する中継ステップと、中継ステップの処理により実行される第1の中継処理において、マスタデバイスが1回のアクセスによりキャッシュメモリより取得するデータ量である第2のデータ量を計測する計測ステップと、計測ステップの処理により制御されて計測された第2のデータ量に基づいて、ターゲットデバイスより読み出すデータ量である第3のデータ量を設定する設定ステップと、設定ステップの処理により設定された第3のデータ量を記憶する様に制御する記憶制御ステップと、記憶制御ステップの処理により制御されて第3のデータ量が記憶された後において、マスタデバイスの要求に基づいて、ターゲットデバイスより、記憶制御ステップの処理により制御されて記憶された第3のデータ量分のデータを取得し、キャッシュメモリを制御して保持させた後、データを、システムバスを介してマスタデバイスに転送する第2の中継処理を実行する第2の中継ステップとを含むことを特徴とする。   The second information processing method of the present invention performs processing for connecting two system buses, and controls data transfer in data transfer between devices connected to different system buses of the two system buses. Based on a request from a master device that is a device that performs data transfer, a first data amount that is a predetermined data amount is acquired from a target device that is a data transfer partner of the master device, and the cache memory is controlled. In the relay step for executing the first relay process for transferring data to the master device and the first relay process executed by the process of the relay step, the master device caches by one access. A measurement step for measuring a second data amount, which is the amount of data acquired from the memory, and a measurement step A setting step for setting a third data amount, which is a data amount read from the target device, on the basis of the second data amount controlled and measured by the processing of the second step, and a third set by the processing of the setting step Storage control step for controlling to store the amount of data, and after the third data amount is stored by being controlled by the processing of the storage control step, the storage control is performed by the target device based on the request of the master device. The second relay that acquires the data for the third amount of data controlled and stored by the processing of the step, controls and holds the cache memory, and then transfers the data to the master device via the system bus And a second relay step for executing the process.

本発明の第2のプログラムは、2つのシステムバスを接続する処理を行い、2つのシステムバスの互いに異なるシステムバスに接続されたデバイス間におけるデータ転送において、データ転送を制御してデータ転送を行うデバイスであるマスタデバイスの要求に基づいて、マスタデバイスのデータ転送の相手となるターゲットデバイスより予め定められた所定のデータ量である第1のデータ量のデータを取得し、キャッシュメモリを制御して保持させた後、マスタデバイスにデータを転送する第1の中継処理を実行する中継ステップと、中継ステップの処理により実行される第1の中継処理において、マスタデバイスが1回のアクセスによりキャッシュメモリより取得するデータ量である第2のデータ量を計測する計測ステップと、計測ステップの処理により制御されて計測された第2のデータ量に基づいて、ターゲットデバイスより読み出すデータ量である第3のデータ量を設定する設定ステップと、設定ステップの処理により設定された第3のデータ量を記憶する様に制御する記憶制御ステップと、記憶制御ステップの処理により制御されて第3のデータ量が記憶された後において、マスタデバイスの要求に基づいて、ターゲットデバイスより、記憶制御ステップの処理により制御されて記憶された第3のデータ量分のデータを取得し、キャッシュメモリを制御して保持させた後、データを、システムバスを介してマスタデバイスに転送する第2の中継処理を実行する第2の中継ステップとをコンピュータに実行させる。   The second program of the present invention performs processing for connecting two system buses, and controls data transfer and transfers data in data transfer between devices connected to different system buses of the two system buses. Based on the request of the master device, which is a device, obtains data of a first data amount, which is a predetermined data amount, from a target device that is a data transfer partner of the master device, and controls the cache memory In the relay step for executing the first relay process for transferring the data to the master device after being held, and in the first relay process executed by the process of the relay step, the master device is accessed from the cache memory by one access. A measurement step for measuring a second data amount, which is a data amount to be acquired, and a measurement step A setting step for setting a third data amount, which is a data amount read from the target device, on the basis of the second data amount controlled and measured by the processing of the step, and a third set by the processing of the setting step A storage control step for controlling the amount of data to be stored, and a storage control step from the target device based on a request of the master device after the third data amount is stored by being controlled by the processing of the storage control step. The second relay process for acquiring the data for the third data amount controlled and stored by the above process, transferring the data to the master device via the system bus after controlling and holding the cache memory And causing the computer to execute a second relay step for executing.

本発明の第1の情報処理装置および方法、並びに第1のプログラムにおいては、データ転送を制御してデータ転送を行うデバイスであるマスタデバイスの要求に基づいて、所定のメモリデバイスより予め定められた所定のデータ量である第1のデータ量のデータが取得され、内蔵するキャッシュメモリに保持された後、データが、システムバスを介してマスタデバイスに転送される第1の転送処理が実行され、第1の転送処理において、マスタデバイスが1回のアクセスにより取得するデータ量である第2のデータ量が計測され、計測された第2のデータ量に基づいて、メモリデバイスより読み出すデータ量である第3のデータ量が設定され、設定された第3のデータ量が記憶され、第3のデータ量が記憶された後において、マスタデバイスの要求に基づいて、メモリデバイスより、第3のデータ量分のデータが取得され、内蔵するキャッシュメモリに保持された後、データが、システムバスを介してマスタデバイスに転送される第2の転送処理が実行される。   In the first information processing apparatus and method and the first program of the present invention, the predetermined information is predetermined from a predetermined memory device based on a request from a master device that controls data transfer and performs data transfer. After a first data amount of data, which is a predetermined data amount, is acquired and held in a built-in cache memory, a first transfer process is executed in which the data is transferred to the master device via the system bus, In the first transfer process, the second data amount that is the data amount acquired by the master device by one access is measured, and the data amount is read from the memory device based on the measured second data amount. After the third data amount is set, the set third data amount is stored, and after the third data amount is stored, the master device A second transfer process in which data corresponding to the third data amount is acquired from the memory device based on the request, held in the built-in cache memory, and then transferred to the master device via the system bus Is executed.

本発明の第2の情報処理装置および方法、並びに第2のプログラムにおいては、2つのシステムバスに接続され、2つのシステムバスの互いに異なるシステムバスに接続されたデバイス間におけるデータ転送において、データ転送を制御してデータ転送を行うデバイスであるマスタデバイスの要求に基づいて、マスタデバイスのデータ転送の相手となるターゲットデバイスより予め定められた所定のデータ量である第1のデータ量のデータが取得され、内蔵するキャッシュメモリに保持された後、マスタデバイスにデータが転送される第1の中継処理が実行され、第1の中継処理において、マスタデバイスが1回のアクセスによりキャッシュメモリより取得するデータ量である第2のデータ量が計測され、計測された第2のデータ量に基づいて、ターゲットデバイスより読み出すデータ量である第3のデータ量が設定され、設定された第3のデータ量が記憶され、第3のデータ量が記憶された後において、マスタデバイスの要求に基づいて、ターゲットデバイスより、記憶された第3のデータ量分のデータが取得され、内蔵するキャッシュメモリに保持された後、データが、システムバスを介してマスタデバイスに転送される第2の中継処理が実行される。   In the second information processing apparatus and method and the second program of the present invention, data transfer is performed in data transfer between devices connected to two system buses and connected to different system buses of the two system buses. Based on a request from a master device that is a device that performs data transfer by controlling the data, a first data amount that is a predetermined data amount is acquired from a target device that is a data transfer partner of the master device. The first relay process in which data is transferred to the master device after being held in the built-in cache memory is executed, and in the first relay process, the data acquired by the master device from the cache memory by one access A second data amount that is a quantity is measured, and based on the measured second data amount The third data amount that is the amount of data read from the target device is set, the set third data amount is stored, and after the third data amount is stored, based on the request of the master device, After the third data amount stored from the target device is acquired and held in the built-in cache memory, the second relay process is executed in which the data is transferred to the master device via the system bus. Is done.

本発明によれば、データ転送を制御することができる。特に、例えば、不要なデータ転送を抑制することによりバスのトラフィックを軽減させる等して、システムバスまたはローカルバスの各デバイスがそのバスをより有効に活用することができる。   According to the present invention, data transfer can be controlled. In particular, for example, each device of the system bus or the local bus can use the bus more effectively by reducing bus traffic by suppressing unnecessary data transfer.

以下に本発明の実施の形態を説明するが、請求項に記載の構成要件と、発明の実施の形態における具体例との対応関係を例示すると、次のようになる。この記載は、請求項に記載されている発明をサポートする具体例が、発明の実施の形態に記載されていることを確認するためのものである。従って、発明の実施の形態中には記載されているが、構成要件に対応するものとして、ここには記載されていない具体例があったとしても、そのことは、その具体例が、その構成要件に対応するものではないことを意味するものではない。逆に、具体例が構成要件に対応するものとしてここに記載されていたとしても、そのことは、その具体例が、その構成要件以外の構成要件には対応しないものであることを意味するものでもない。   Embodiments of the present invention will be described below. Correspondences between constituent elements described in the claims and specific examples in the embodiments of the present invention are exemplified as follows. This description is to confirm that specific examples supporting the invention described in the claims are described in the embodiments of the invention. Therefore, even if there are specific examples that are described in the embodiment of the invention but are not described here as corresponding to the configuration requirements, the specific examples are not included in the configuration. It does not mean that it does not correspond to a requirement. On the contrary, even if a specific example is described here as corresponding to a configuration requirement, this means that the specific example does not correspond to a configuration requirement other than the configuration requirement. not.

さらに、この記載は、発明の実施の形態に記載されている具体例に対応する発明が、請求項に全て記載されていることを意味するものではない。換言すれば、この記載は、発明の実施の形態に記載されている具体例に対応する発明であって、この出願の請求項には記載されていない発明の存在、すなわち、将来、分割出願されたり、補正により追加される発明の存在を否定したりするものではない。   Further, this description does not mean that all the inventions corresponding to the specific examples described in the embodiments of the invention are described in the claims. In other words, this description is an invention corresponding to the specific example described in the embodiment of the invention, and the existence of an invention not described in the claims of this application, that is, in the future, a divisional application will be made. Nor does it deny the existence of an invention added by amendment.

本発明においては、複数のデバイス(例えば、図1のPCIデバイス11−1乃至11−N)が接続されたシステムバス(例えば、図1のPCIバス10)を有し、前記複数のデバイスが前記システムバスを介して互いにデータ転送(例えば、図1のPCIデータ転送12)を行う情報処理装置(例えば、図1の画像処理装置1)が提供される。この情報処理装置では、データ転送を制御してデータ転送を行うデバイスであるマスタデバイス(例えば、図1のイニシエータ13)の要求に基づいて、所定のメモリデバイス(例えば、図1のローカルメモリ21)より予め定められた所定のデータ量である第1のデータ量のデータ(例えば、図2の転送長初期値61)を取得し、内蔵するキャッシュメモリ(例えば、図1のキャッシュメモリ22)に保持した後、データ(例えば、図3の転送データ91)を、システムバスを介してマスタデバイスに転送する第1の転送処理を実行する転送手段(例えば、図3のデータ転送処理部75)と、転送手段により実行される第1の転送処理において、マスタデバイスが1回のアクセスにより取得するデータ量である第2のデータ量(例えば、図3の転送長計測部73により計測される転送長)を計測する計測手段(例えば、図10のステップS63の処理を実行する図3の転送長計測部73)と、計測手段により計測された第2のデータ量に基づいて、メモリデバイスより読み出すデータ量である第3のデータ量(例えば、図3の最適転送長82)を設定する設定手段(例えば、図10のステップS67の処理を実行する図3の転送長計測部73)と、設定手段により設定された第3のデータ量を記憶する記憶手段(例えば、図1のキャッシュメモリ22)とを備え、転送手段は、記憶手段により第3のデータ量が記憶された後において、マスタデバイスの要求に基づいて、メモリデバイスより、記憶手段により記憶された第3のデータ量分のデータを取得し、内蔵するキャッシュメモリに保持した後、データを、システムバスを介してマスタデバイスに転送する第2の転送処理を実行する(例えば、図14のデータ転送処理)。   In the present invention, a system bus (for example, PCI bus 10 in FIG. 1) to which a plurality of devices (for example, PCI devices 11-1 to 11-N in FIG. 1) are connected is provided. An information processing apparatus (for example, the image processing apparatus 1 of FIG. 1) that performs data transfer (for example, the PCI data transfer 12 of FIG. 1) to each other via the system bus is provided. In this information processing apparatus, based on a request from a master device (for example, the initiator 13 in FIG. 1) that controls data transfer and performs data transfer, a predetermined memory device (for example, the local memory 21 in FIG. 1). The data of the first data amount (for example, the transfer length initial value 61 in FIG. 2) which is a predetermined predetermined data amount is acquired and held in the built-in cache memory (for example, the cache memory 22 in FIG. 1). After that, transfer means (for example, the data transfer processing unit 75 in FIG. 3) for executing a first transfer process for transferring data (for example, the transfer data 91 in FIG. 3) to the master device via the system bus; In the first transfer process executed by the transfer means, a second data amount (for example, FIG. Measurement unit (for example, the transfer length measurement unit 73 in FIG. 3 that executes the process of step S63 in FIG. 10) and the second measured by the measurement unit. FIG. 10 is a diagram for executing a process of step S67 in FIG. 10 for setting a third data amount (for example, the optimum transfer length 82 in FIG. 3) that is a data amount read from the memory device based on the data amount in FIG. 3 and a storage means (for example, the cache memory 22 in FIG. 1) for storing the third data amount set by the setting means. After the data amount is stored, the third data amount stored by the storage means is acquired from the memory device based on the request of the master device, and the built-in cache memory is acquired. After holding the Li, data, performs a second transfer process of transferring to the master device via the system bus (e.g., data transfer process of FIG. 14).

前記マスタデバイスを制御してメモリリード要求を発行させる第1の制御手段(例えば、図2のマスタ別転送長調査制御部56)と、第1の制御手段により制御されて発行されるメモリリード要求に対して、転送手段を制御して第1の転送処理を実行させ、計測手段を制御して第2のデータ量を計測させ、設定手段を制御して第3のデータ量を設定させ、記憶手段を制御して第3のデータ量を記憶させる第2の制御手段(例えば、図3のマスタ別転送長調査部71)とをさらに備えるようにすることができる。   First control means for controlling the master device to issue a memory read request (for example, master-specific transfer length investigation control unit 56 in FIG. 2), and memory read request issued under the control of the first control means In contrast, the transfer unit is controlled to execute the first transfer process, the measurement unit is controlled to measure the second data amount, the setting unit is controlled to set the third data amount, and the storage is performed. It is possible to further include second control means (for example, master-specific transfer length checking unit 71 in FIG. 3) for controlling the means and storing the third data amount.

前記第1の制御手段は、マスタデバイスを制御してメモリリード要求を複数回発行させ(例えば、図7のステップS22)、第2の制御手段は、転送手段を制御して、第1の制御手段により制御されて発行された複数のメモリリード要求のそれぞれに対して第1の転送処理を実行させ、計測手段を制御して、転送手段により複数回実行された第1の転送処理のそれぞれについて第2のデータ量を計測させ、設定手段を制御して、計測手段による複数回の計測により得られた複数の第2のデータ量に基づいて第3のデータ量を設定させ、記憶手段を制御して、設定手段により設定された第3のデータ量を記憶させるようにすることができる。   The first control unit controls the master device to issue a memory read request a plurality of times (for example, step S22 in FIG. 7), and the second control unit controls the transfer unit to perform the first control. The first transfer process is executed for each of the plurality of memory read requests that are controlled and issued by the means, the measuring means is controlled, and each of the first transfer processes executed a plurality of times by the transfer means The second data amount is measured, the setting unit is controlled, the third data amount is set based on a plurality of second data amounts obtained by a plurality of measurements by the measuring unit, and the storage unit is controlled. Thus, the third data amount set by the setting means can be stored.

前記設定手段は、計測手段による複数回の計測により得られた複数の第2のデータ量の平均値、最大値、または最小値を第3のデータ量として設定する(例えば、図10のステップS67)ようにすることができる。   The setting unit sets an average value, a maximum value, or a minimum value of a plurality of second data amounts obtained by a plurality of measurements by the measuring unit as a third data amount (for example, step S67 in FIG. 10). )

前記マスタデバイスのデータ転送の相手のデバイスである複数のターゲットデバイス(例えば、図1のターゲット14)の中から、第2の制御手段が第3のデータ量を設定させて記憶させるように制御するターゲットデバイスを特定するターゲットデバイス特定手段(例えば、図2の調査対象ターゲット特定部53)をさらに備えるようにすることができる。   Control is performed so that the second control means sets and stores a third data amount from among a plurality of target devices (for example, the target 14 in FIG. 1) which are devices to which the master device is to transfer data. A target device specifying unit (for example, the survey target target specifying unit 53 in FIG. 2) for specifying the target device may be further provided.

前記転送手段により実行される第1の転送処理または第2の転送処理において要求を発行したマスタデバイスを判別するマスタデバイス判別手段(例えば、図3のマスタ判別部75)をさらに備えるようにすることができる。   A master device determining unit (for example, master determining unit 75 in FIG. 3) that determines a master device that has issued a request in the first transfer process or the second transfer process executed by the transfer unit is further provided. Can do.

前記転送手段により実行される第2の転送処理においてディスコネクト処理の発生を監視するディスコネクト監視手段(例えば、図21のディスコネクト監視部401)をさらに備えるようにすることができる。   A disconnect monitoring unit (for example, the disconnect monitoring unit 401 in FIG. 21) for monitoring the occurrence of a disconnect process in the second transfer process executed by the transfer unit may be further provided.

本発明においては、複数のデバイス(例えば、図1のPCIデバイス11−1乃至11−N)が接続されたシステムバス(例えば、図1のPCIバス10)を有し、前記複数のデバイスが前記システムバスを介して互いにデータ転送(例えば、図1のPCIデータ転送12)を行う情報処理装置(例えば、図1の画像処理装置1)の情報処理方法が提供される。この情報処理方法においては、データ転送を制御してデータ転送を行うデバイスであるマスタデバイス(例えば、図1のイニシエータ13)の要求に基づいて、所定のメモリデバイス(例えば、図1のローカルメモリ21)より予め定められた所定のデータ量である第1のデータ量のデータ(例えば、図2の転送長初期値61)を取得し、内蔵するキャッシュメモリ(例えば、図1のキャッシュメモリ22)に保持した後、データ(例えば、図3の転送データ91)を、システムバスを介してマスタデバイスに転送する第1の転送処理を実行する第1の転送ステップ(例えば、図10のステップS62およびステップS65)と、第1の転送ステップの処理により実行される第1の転送処理において、マスタデバイスが1回のアクセスにより取得するデータ量である第2のデータ量(例えば、図3の転送長計測部73により計測される転送長)を計測する計測ステップ(例えば、図10のステップS63)と、計測ステップの処理により計測された第2のデータ量に基づいて、メモリデバイスより読み出すデータ量である第3のデータ量(例えば、図3の最適転送長82)を設定する設定ステップ(例えば、図10のステップS67)と、設定ステップの処理により設定された第3のデータ量を記憶するように制御する記憶制御ステップ(例えば、図10のステップS69)と、記憶制御ステップの処理により制御されて第3のデータ量が記憶された後において、マスタデバイスの要求に基づいて、メモリデバイスより、記憶制御ステップの処理により制御されて記憶された第3のデータ量分のデータを取得し、内蔵するキャッシュメモリに保持した後、データを、システムバスを介してマスタデバイスに転送する第2の転送処理を実行する第2の転送ステップ(例えば、図14のデータ転送処理)とを含む。   In the present invention, a system bus (for example, PCI bus 10 in FIG. 1) to which a plurality of devices (for example, PCI devices 11-1 to 11-N in FIG. 1) are connected is provided. An information processing method of an information processing apparatus (for example, the image processing apparatus 1 of FIG. 1) that transfers data to each other (for example, the PCI data transfer 12 of FIG. 1) via a system bus is provided. In this information processing method, based on a request from a master device (for example, the initiator 13 in FIG. 1) that controls data transfer and performs data transfer, a predetermined memory device (for example, the local memory 21 in FIG. 1). ) Is obtained from the first data amount (for example, the transfer length initial value 61 in FIG. 2) which is a predetermined data amount determined in advance, and stored in the built-in cache memory (for example, the cache memory 22 in FIG. 1). After the holding, a first transfer step (for example, step S62 and step of FIG. 10) that executes a first transfer process of transferring data (for example, transfer data 91 of FIG. 3) to the master device via the system bus. S65) and the first transfer process executed by the process of the first transfer step, the master device is accessed once A measurement step (for example, step S63 in FIG. 10) for measuring a second data amount (for example, a transfer length measured by the transfer length measurement unit 73 in FIG. 3), which is the amount of data to be obtained, and a measurement step process. A setting step (for example, step S67 in FIG. 10) for setting a third data amount (for example, the optimum transfer length 82 in FIG. 3), which is the amount of data read from the memory device, based on the second data amount A storage control step (for example, step S69 in FIG. 10) for controlling to store the third data amount set by the setting step process, and a third data amount controlled by the storage control step process. After being stored, the third stored in the memory device is controlled and stored by the memory control step based on the request of the master device. A second transfer step (for example, FIG. 14) of acquiring a data amount and storing the data in a built-in cache memory and then executing a second transfer process for transferring the data to the master device via the system bus. Data transfer processing).

本発明においては、複数のデバイスが接続されたシステムバスを有し、前記複数のデバイスが前記システムバスを介して互いにデータ転送を行う処理を、コンピュータ(例えば、図4の画像処理装置100)に行わせるプログラムが提供される。このプログラムは、データ転送を制御してデータ転送を行うデバイスであるマスタデバイス(例えば、図1のイニシエータ13)の要求に基づいて、所定のメモリデバイス(例えば、図1のローカルメモリ21)より予め定められた所定のデータ量である第1のデータ量のデータ(例えば、図2の転送長初期値61)を取得し、内蔵するキャッシュメモリ(例えば、図1のキャッシュメモリ22)に保持した後、データ(例えば、図3の転送データ91)を、システムバスを介してマスタデバイスに転送する第1の転送処理を実行する第1の転送ステップ(例えば、図10のステップS62およびステップS65)と、第1の転送ステップの処理により実行される第1の転送処理において、マスタデバイスが1回のアクセスにより取得するデータ量である第2のデータ量(例えば、図3の転送長計測部73により計測される転送長)を計測する計測ステップ(例えば、図10のステップS63)と、計測ステップの処理により計測された第2のデータ量に基づいて、メモリデバイスより読み出すデータ量である第3のデータ量(例えば、図3の最適転送長82)を設定する設定ステップ(例えば、図10のステップS67)と、設定ステップの処理により設定された第3のデータ量を記憶するように制御する記憶制御ステップ(例えば、図10のステップS69)と、記憶制御ステップの処理により制御されて第3のデータ量が記憶された後において、マスタデバイスの要求に基づいて、メモリデバイスより、記憶制御ステップの処理により制御されて記憶された第3のデータ量分のデータを取得し、内蔵するキャッシュメモリに保持した後、データを、システムバスを介してマスタデバイスに転送する第2の転送処理を実行する第2の転送ステップ(例えば、図14のデータ転送処理)とを含む。   In the present invention, a process having a system bus to which a plurality of devices are connected, and the plurality of devices transferring data to each other via the system bus is performed on a computer (for example, the image processing apparatus 100 in FIG. 4). A program to be performed is provided. This program is preliminarily stored in a predetermined memory device (for example, the local memory 21 in FIG. 1) based on a request from a master device (for example, the initiator 13 in FIG. 1) that controls data transfer and performs data transfer. After acquiring a first data amount (for example, transfer length initial value 61 in FIG. 2) that is a predetermined predetermined data amount and holding it in a built-in cache memory (for example, cache memory 22 in FIG. 1) A first transfer step (for example, step S62 and step S65 in FIG. 10) for executing a first transfer process for transferring data (for example, transfer data 91 in FIG. 3) to the master device via the system bus; In the first transfer process executed by the process of the first transfer step, the master device obtains the data acquired by one access. A measurement step (for example, step S63 in FIG. 10) for measuring a second data amount (for example, a transfer length measured by the transfer length measurement unit 73 in FIG. 3), and a measurement step process. A setting step (for example, step S67 in FIG. 10) for setting a third data amount (for example, the optimum transfer length 82 in FIG. 3) that is a data amount to be read from the memory device based on the second data amount; A storage control step (for example, step S69 in FIG. 10) for controlling to store the third data amount set by the setting step processing, and the third data amount stored by being controlled by the storage control step processing. Thereafter, based on the request of the master device, the memory device controls the third data amount stored by being controlled by the processing of the storage control step. A second transfer step (for example, the data transfer process of FIG. 14) for executing a second transfer process for acquiring the data and holding it in the built-in cache memory and then transferring the data to the master device via the system bus Including.

本発明においては、複数のデバイス(例えば、図16のPCIデバイス11−1乃至11−N、並びに、PCIデバイス211−1乃至211−K)が接続された複数のシステムバス(例えば、図1のPCIバス10およびPCIバス210)を有し、前記複数のデバイスが前記システムバスを介して互いにデータ転送を行う情報処理装置(例えば、図16の画像処理装置200)が提供される。この情報処理装置では、2つのシステムバスに接続され、2つのシステムバスの互いに異なるシステムバスに接続されたデバイス間におけるデータ転送において、データ転送を制御してデータ転送を行うデバイスであるマスタデバイス(例えば、図16のイニシエータ13)の要求に基づいて、マスタデバイスのデータ転送の相手となるターゲットデバイス(例えば、図16のターゲット214)より予め定められた所定のデータ量である第1のデータ量(例えば、図2の転送長初期値61)のデータを取得し、内蔵するキャッシュメモリ(例えば、図16のキャッシュメモリ202)に保持した後、マスタデバイスにデータを転送する第1の中継処理を実行する中継手段(例えば、図16のPCI-PCIブリッジ201)と、中継手段により実行される第1の中継処理において、マスタデバイスが1回のアクセスによりキャッシュメモリより取得するデータ量である第2のデータ量(例えば、図17の転送長計測部73により計測される転送長)を計測する計測手段(例えば、図10のステップS63の処理を実行する図3の転送長計測部73)と、計測手段により計測された第2のデータ量に基づいて、ターゲットデバイスより読み出すデータ量である第3のデータ量(例えば、図17の最適転送長82)を設定する設定手段(例えば、図10のステップS67の処理を実行する図17の転送長計測部73)と、設定手段により設定された第3のデータ量を記憶する記憶手段(例えば、図17の最適転送長82)とを備え、中継手段は、記憶手段により第3のデータ量が記憶された後において、マスタデバイスの要求に基づいて、ターゲットデバイスより、記憶手段により記憶された第3のデータ量分のデータを取得し、内蔵するキャッシュメモリに保持した後、データを、システムバスを介してマスタデバイスに転送する第2の中継処理を実行する(例えば、図14のデータ転送処理)。   In the present invention, a plurality of system buses (for example, FIG. 1) to which a plurality of devices (for example, PCI devices 11-1 to 11-N and PCI devices 211-1 to 211-K in FIG. 16) are connected. An information processing apparatus (for example, the image processing apparatus 200 in FIG. 16) having the PCI bus 10 and the PCI bus 210) in which the plurality of devices transfer data to each other via the system bus is provided. In this information processing apparatus, in data transfer between devices connected to two system buses and connected to different system buses of the two system buses, a master device (device that controls data transfer and performs data transfer) For example, based on the request of the initiator 13) in FIG. 16, the first data amount that is a predetermined data amount predetermined by the target device (for example, the target 214 in FIG. 16) that is the data transfer partner of the master device. After the data of (for example, the transfer length initial value 61 in FIG. 2) is acquired and held in the built-in cache memory (for example, the cache memory 202 in FIG. 16), the first relay processing for transferring the data to the master device is performed. The relay means to be executed (for example, the PCI-PCI bridge 201 in FIG. 16) and the relay means In the first relay process, the second data amount (for example, the transfer length measured by the transfer length measuring unit 73 in FIG. 17) that is the amount of data that the master device acquires from the cache memory by one access is measured. This is the amount of data read from the target device based on the measurement means (for example, the transfer length measurement unit 73 in FIG. 3 that executes the processing of step S63 in FIG. 10) and the second data amount measured by the measurement means. Setting means for setting a third data amount (for example, the optimum transfer length 82 in FIG. 17) (for example, the transfer length measuring unit 73 in FIG. 17 for executing the processing in step S67 in FIG. 10) and the setting means. Storage means (for example, optimum transfer length 82 in FIG. 17) for storing the third data amount, and the relay means after the third data amount is stored by the storage means Then, based on the request of the master device, the data corresponding to the third amount of data stored in the storage means is obtained from the target device, held in the built-in cache memory, and then the data is transferred to the master via the system bus. A second relay process to be transferred to the device is executed (for example, the data transfer process in FIG. 14).

本発明においては、複数のデバイス(例えば、図16のPCIデバイス11−1乃至11−N、並びに、PCIデバイス211−1乃至211−K)が接続された複数のシステムバス(例えば、図1のPCIバス10およびPCIバス210)を有し、前記複数のデバイスが前記システムバスを介して互いにデータ転送を行う情報処理装置(例えば、図16の画像処理装置200)の情報処理方法が提供される。この情報処理方法においては、2つのシステムバスを接続する処理を行い、2つのシステムバスの互いに異なるシステムバスに接続されたデバイス間におけるデータ転送において、データ転送を制御してデータ転送を行うデバイスであるマスタデバイス(例えば、図16のイニシエータ13)の要求に基づいて、マスタデバイスのデータ転送の相手となるターゲットデバイス(例えば、図16のターゲット13)より予め定められた所定のデータ量である第1のデータ量(例えば、図2の転送長初期値61)のデータを取得し、キャッシュメモリ(例えば、図16のキャッシュメモリ202)を制御して保持させた後、マスタデバイスにデータを転送する第1の中継処理を実行する中継ステップ(例えば、図20のステップS126)と、中継ステップの処理により実行される第1の中継処理において、マスタデバイスが1回のアクセスによりキャッシュメモリより取得するデータ量である第2のデータ量(例えば、図16の転送長計測部73により計測される転送長)を計測する計測ステップ(例えば、図10のステップS63)と、計測ステップの処理により制御されて計測された第2のデータ量に基づいて、ターゲットデバイスより読み出すデータ量である第3のデータ量を設定する設定ステップと、設定ステップの処理により設定された第3のデータ量(例えば、図17の最適転送長82)を記憶する様に制御する記憶制御ステップ(例えば、図10のステップS69)と、記憶制御ステップの処理により制御されて第3のデータ量が記憶された後において、マスタデバイスの要求に基づいて、ターゲットデバイスより、記憶制御ステップの処理により制御されて記憶された第3のデータ量分のデータを取得し、キャッシュメモリを制御して保持させた後、データを、システムバスを介してマスタデバイスに転送する第2の中継処理を実行する第2の中継ステップ(例えば、図14のデータ転送処理)とを含む。   In the present invention, a plurality of system buses (for example, FIG. 1) to which a plurality of devices (for example, PCI devices 11-1 to 11-N and PCI devices 211-1 to 211-K in FIG. 16) are connected. There is provided an information processing method of an information processing apparatus (for example, the image processing apparatus 200 in FIG. 16) having the PCI bus 10 and the PCI bus 210), in which the plurality of devices transfer data to each other via the system bus. . In this information processing method, a device that performs processing for connecting two system buses and performs data transfer by controlling data transfer in data transfer between devices connected to different system buses of the two system buses. Based on a request of a certain master device (for example, the initiator 13 in FIG. 16), a predetermined data amount that is predetermined by a target device (for example, the target 13 in FIG. 16) that is a partner of data transfer of the master device. 1 is acquired (for example, the transfer length initial value 61 in FIG. 2), the cache memory (for example, the cache memory 202 in FIG. 16) is controlled and held, and then the data is transferred to the master device. A relay step (for example, step S126 in FIG. 20) for executing the first relay process; In the first relay process executed by the step process, the second data amount (for example, measured by the transfer length measuring unit 73 in FIG. 16) is the data amount that the master device acquires from the cache memory by one access. And a third data amount that is read from the target device based on a measurement step (for example, step S63 in FIG. 10) and a second data amount that is controlled and measured by the processing of the measurement step. And a storage control step for controlling to store the third data amount set by the processing of the setting step (for example, the optimum transfer length 82 of FIG. 17) (for example, FIG. 10). Step S69) and after the third data amount is stored under the control of the storage control step, the master device On the basis of the request from the target device, the data corresponding to the third data amount controlled and stored by the processing of the storage control step is acquired from the target device, and the cache memory is controlled and held, and then the data is transferred to the system bus. And a second relay step (for example, the data transfer process of FIG. 14) for executing a second relay process of transferring to the master device via

本発明においては、複数のデバイスが接続された複数のシステムバスを有し、前記複数のデバイスが前記システムバスを介して互いにデータ転送を行う処理を、コンピュータ(例えば、図4の画像処理装置100)に行わせるプログラムが提供される。このプログラムは、2つのシステムバスを接続する処理を行い、2つのシステムバスの互いに異なるシステムバスに接続されたデバイス間におけるデータ転送において、データ転送を制御してデータ転送を行うデバイスであるマスタデバイス(例えば、図16のイニシエータ13)の要求に基づいて、マスタデバイスのデータ転送の相手となるターゲットデバイス(例えば、図16のターゲット13)より予め定められた所定のデータ量である第1のデータ量(例えば、図2の転送長初期値61)のデータを取得し、キャッシュメモリ(例えば、図16のキャッシュメモリ202)を制御して保持させた後、マスタデバイスにデータを転送する第1の中継処理を実行する中継ステップ(例えば、図20のステップS126)と、中継ステップの処理により実行される第1の中継処理において、マスタデバイスが1回のアクセスによりキャッシュメモリより取得するデータ量である第2のデータ量(例えば、図16の転送長計測部73により計測される転送長)を計測する計測ステップ(例えば、図10のステップS63)と、計測ステップの処理により制御されて計測された第2のデータ量に基づいて、ターゲットデバイスより読み出すデータ量である第3のデータ量を設定する設定ステップと、設定ステップの処理により設定された第3のデータ量(例えば、図17の最適転送長82)を記憶する様に制御する記憶制御ステップ(例えば、図10のステップS69)と、記憶制御ステップの処理により制御されて第3のデータ量が記憶された後において、マスタデバイスの要求に基づいて、ターゲットデバイスより、記憶制御ステップの処理により制御されて記憶された第3のデータ量分のデータを取得し、キャッシュメモリを制御して保持させた後、データを、システムバスを介してマスタデバイスに転送する第2の中継処理を実行する第2の中継ステップ(例えば、図14のデータ転送処理)とを含む。   In the present invention, a process including a plurality of system buses to which a plurality of devices are connected, and the plurality of devices transferring data to each other via the system bus is performed by a computer (for example, the image processing apparatus 100 in FIG. 4). ) Is provided. This program performs processing for connecting two system buses, and in a data transfer between devices connected to different system buses of the two system buses, a master device which is a device that controls data transfer and performs data transfer First data having a predetermined data amount determined in advance by a target device (for example, the target 13 in FIG. 16) that is a partner of data transfer of the master device based on a request from the master device (for example, the initiator 13 in FIG. 16). A first amount of data (for example, transfer length initial value 61 in FIG. 2) is acquired, and the cache memory (for example, cache memory 202 in FIG. 16) is controlled and held, and then transferred to the master device. A relay step (for example, step S126 in FIG. 20) for executing the relay process, and a relay step In the first relay process executed by the process, a second data amount (for example, transfer measured by the transfer length measuring unit 73 in FIG. 16) that is the amount of data that the master device acquires from the cache memory by one access. 3rd data which is the data amount read from the target device based on the measurement step (for example, step S63 in FIG. 10) and the second data amount measured and measured by the processing of the measurement step. A setting step for setting the amount, and a storage control step for controlling to store the third data amount (for example, the optimum transfer length 82 in FIG. 17) set by the processing in the setting step (for example, step S69 in FIG. 10). ), And after the third data amount is stored under the control of the storage control step, Therefore, after acquiring the data for the third data amount controlled and stored by the processing of the storage control step from the target device and controlling and holding the cache memory, the data is transferred via the system bus. And a second relay step (for example, the data transfer process of FIG. 14) for executing a second relay process for transferring to the master device.

以下に、本発明の実施の形態について図面を参照して説明する。   Embodiments of the present invention will be described below with reference to the drawings.

図1は、本発明を適用した画像処理装置の主な構成例を表している。   FIG. 1 shows a main configuration example of an image processing apparatus to which the present invention is applied.

図1に示される画像処理装置1は、例えば、映像データの記録再生装置等の映像機器であり、システムバスとしてPCIバス(Peripheral Components Interconnect bus)10が適用されている。   An image processing apparatus 1 shown in FIG. 1 is a video device such as a video data recording / reproducing apparatus, for example, and a PCI bus (Peripheral Components Interconnect bus) 10 is applied as a system bus.

PCIバス10は、例えば、バス幅(1回の転送で送れるデータ量)が32ビット、動作周波数(1秒あたりの転送回数)が33MHz(メガヘルツ)、最大データ転送速度が133MB/s(メガバイトパーセカンド)のバスである。   For example, the PCI bus 10 has a bus width (the amount of data that can be sent in one transfer) of 32 bits, an operating frequency (number of transfers per second) of 33 MHz (megahertz), and a maximum data transfer rate of 133 MB / s (megabyte par) This is the second bus.

PCIバス10には、PCIデバイス11−1乃至PCIデバイス11−Nが接続されている。なお、以下において、PCIデバイス11−1乃至PCIデバイス11−Nの各PCIデバイスを区別して説明する必要のない場合は、PCIデバイス11と称する。また、図1においてPCIデバイス11は、PCIバス10に両矢印により接続されているが、実際には、複数の信号線、電源、およびグランド等により接続される。PCIデバイス11としては、PCIバス10を介してデータ転送が相互に可能な様々なデバイスが適用される。例えば、SCSI(Small Computer System Interface)インタフェース、IDE(Integrated Drive Electronics)インタフェース、およびフレキシブルディスクドライブ等の大容量記憶装置コントローラ、イーサネット(登録商標)インタフェースやATM(Asynchronous Transfer Mode)インタフェース等のネットワークコントローラ、ビデオコントローラやオーディオコントローラ等のマルチメディアコントローラ、SDRAM(Synchronous Dynamic Random Access Memory)やフラッシュメモリ等のメモリコントローラ、ISA(Industry Standard Architecture)ブリッジ、PCI-PCIブリッジ、PCMCIA(Personal Computer Memory Card International Association)ブリッジ等の各種ブリッジ、キーボードやマウス等の入力インタフェース、CPU等のプロセッサ、並びに、IEEE(Institute of Electrical and Electronic Engineers)1394やUSB(Universal Serial Bus)等のシリアルバスのコントローラ等が含まれる。もちろん、これ以外のデバイスもPCIデバイス11としてPCIバス10に接続されるようにしてもよい。   The PCI device 11-1 to PCI device 11 -N are connected to the PCI bus 10. Hereinafter, the PCI devices 11-1 to 11-N are referred to as PCI devices 11 when it is not necessary to distinguish between the PCI devices 11-1 to 11-N. In FIG. 1, the PCI device 11 is connected to the PCI bus 10 by a double-headed arrow, but is actually connected by a plurality of signal lines, a power source, a ground, and the like. As the PCI device 11, various devices that can mutually transfer data via the PCI bus 10 are applied. For example, a SCSI (Small Computer System Interface) interface, an IDE (Integrated Drive Electronics) interface, a mass storage controller such as a flexible disk drive, a network controller such as an Ethernet (registered trademark) interface or an ATM (Asynchronous Transfer Mode) interface, Multimedia controllers such as video controllers and audio controllers, memory controllers such as SDRAM (Synchronous Dynamic Random Access Memory) and flash memory, ISA (Industry Standard Architecture) bridge, PCI-PCI bridge, PCMCIA (Personal Computer Memory Card International Association) bridge Bridges, input interfaces such as keyboard and mouse, processors such as CPU, IEEE (Institute of Electrical and Electronic Engineers) 1394 and USB (Universal Serial Bus) Controller or the like is included in the serial bus and the like. Of course, other devices may be connected to the PCI bus 10 as the PCI device 11.

以下において、PCIバス10を介して行われるデータ転送(PCIデータ転送)を制御するPCIデバイスをマスタと称し、マスタの通信相手となるPCIデバイスをターゲットと称する。また、このようにマスタとして動作可能なPCIデバイス11をマスタデバイスと称し、ターゲットとしてのみ動作するデバイスをターゲットデバイスと称する。   Hereinafter, a PCI device that controls data transfer (PCI data transfer) performed via the PCI bus 10 is referred to as a master, and a PCI device that is a communication partner of the master is referred to as a target. The PCI device 11 that can operate as a master is called a master device, and a device that operates only as a target is called a target device.

また、1つのPCIデータ転送において、マスタとして動作するPCIデバイス11は1つしか存在せず、このときのマスタをイニシエータと称する。すなわち、1つのPCIデータ転送において、イニシエータはマスタとしてデータ転送を制御し、他のターゲットと通信を行い、データの授受などを行う。なお、マスタデバイスはターゲットとして動作し、他のマスタデバイスとPCIデータ転送を行う場合がある。このときのPCIデータ転送におけるイニシエータは他のマスタデバイスとなる。   In one PCI data transfer, there is only one PCI device 11 operating as a master, and the master at this time is called an initiator. That is, in one PCI data transfer, the initiator controls data transfer as a master, communicates with other targets, and exchanges data. Note that the master device may operate as a target and perform PCI data transfer with other master devices. The initiator in the PCI data transfer at this time is another master device.

図1において、イニシエータ13は、PCIデバイス11の1つであり、同じくPCIデバイスの1つであるターゲット14にアクセスしPCIデータ転送12を行う。すなわち、イニシエータ13は、ターゲット14に対するPCIデータ転送12を制御する。以下において、イニシエータ13およびターゲット14によるPCIデータ転送12について説明するが、PCIデータ転送12は、特定のPCIデバイス間におけるデータ転送を示すものではなく、PCIバス110のPCIバスシステムにおける全てのデータ転送に対して適応可能である。すなわち、イニシエータ13は、PCIデバイス11に含まれる任意のマスタデバイスのことを示し、ターゲット14は、イニシエータ13とPCIデータ転送を行う全てのPCIデバイス11のことを示す。   In FIG. 1, an initiator 13 is one of PCI devices 11, and accesses a target 14 that is also one of PCI devices to perform PCI data transfer 12. That is, the initiator 13 controls the PCI data transfer 12 to the target 14. In the following, the PCI data transfer 12 by the initiator 13 and the target 14 will be described, but the PCI data transfer 12 does not indicate data transfer between specific PCI devices, but all data transfer in the PCI bus system of the PCI bus 110. Can be adapted to. That is, the initiator 13 indicates an arbitrary master device included in the PCI device 11, and the target 14 indicates all PCI devices 11 that perform PCI data transfer with the initiator 13.

ターゲット14は、PCIバス10に接続されるとともに、ローカルバス20を介してローカルメモリ21に接続されており、ローカルメモリ21のデータの入出力を制御するデバイスである。ターゲット14は、内部にキャッシュメモリ22を有している。このキャッシュメモリ22は、データ転送等に用いられ、例えば、PCIバス10とローカルバス20のデータ転送速度の違いを吸収させるため等に用いられる。例えば、イニシエータ13がPCIデータ転送12により、ターゲット14に対してローカルメモリ21のデータのリード要求を行うと、ターゲット14は、まず、ローカルバス20を介してローカルメモリ21にアクセスし、要求されたデータを読み出し、それをキャッシュメモリ22に保持させる。ターゲット14は、後述するように、イニシエータ13が1度のアクセスにより取得するデータ量(ワード数)の情報を予め計測しており、その情報に基づいて、イニシエータ13が1度のアクセスにより取得するデータ量(ワード数)のデータをローカルメモリ21より取得し、それをキャッシュメモリ22に保持させる。   The target 14 is connected to the PCI bus 10 and is connected to the local memory 21 via the local bus 20, and is a device that controls data input / output of the local memory 21. The target 14 has a cache memory 22 inside. The cache memory 22 is used for data transfer or the like, for example, to absorb a difference in data transfer speed between the PCI bus 10 and the local bus 20. For example, when the initiator 13 requests the target 14 to read data in the local memory 21 by the PCI data transfer 12, the target 14 first accesses the local memory 21 via the local bus 20 and is requested. Data is read and stored in the cache memory 22. As will be described later, the target 14 measures in advance information on the amount of data (number of words) acquired by the initiator 13 by one access, and the initiator 13 acquires by one access based on the information. Data of the amount of data (number of words) is acquired from the local memory 21 and stored in the cache memory 22.

以下において、イニシエータ13が1度のアクセスにより取得するデータ量(ワード数)のことを、イニシエータ13に対する転送長と称する。なお、ワードは、メモリの読み出し単位であり、1ワードは、例えば、2バイトである。ターゲット14は、転送させるデータ(イニシエータ13に対する転送長分の転送用データ)をキャッシュメモリ22に保持させ、データ転送の準備が整うと、ターゲット14は、それを、PCIバス10を介してイニシエータ13に供給する。   Hereinafter, the data amount (number of words) acquired by the initiator 13 by one access is referred to as a transfer length for the initiator 13. Note that a word is a memory read unit, and one word is, for example, 2 bytes. The target 14 holds the data to be transferred (transfer data corresponding to the transfer length for the initiator 13) in the cache memory 22, and when the target 14 is ready for data transfer, the target 14 sends it to the initiator 13 via the PCI bus 10. To supply.

PCIバス10には、また、PCIバス10とホストバス30を接続するブリッジであるホストPCIブリッジ15も接続されている。ホストPCIブリッジ15は、PCIバス10とホストバス30とのブリッジとして動作するだけでなく、ホストバス30を介して接続されるCPU(Central Processing Unit)31の制御に基づいて、PCIバス10を制御するPCIバスコントローラとしても動作する。   Also connected to the PCI bus 10 is a host PCI bridge 15 which is a bridge connecting the PCI bus 10 and the host bus 30. The host PCI bridge 15 not only operates as a bridge between the PCI bus 10 and the host bus 30, but also controls the PCI bus 10 based on control of a CPU (Central Processing Unit) 31 connected via the host bus 30. It also works as a PCI bus controller.

さらに、PCIバス10には、アービタ16も接続される。アービタ16は、PCIバス10の使用権の調停処理(アービトレーション)を実行する。すなわち、アービタ16は、各マスタデバイスからの要求(リクエスト)を受け付け、同時に2つ以上のマスタデバイスからバス要求を受け付けた場合には、どのマスタデバイスにPCIバス10の使用権を与えるかを選択し、選択したマスタデバイスに対して、PCIバス10の使用権を与え、許可したことを通知する(グラント)。   Further, an arbiter 16 is also connected to the PCI bus 10. The arbiter 16 executes arbitration processing (arbitration) of the right to use the PCI bus 10. In other words, the arbiter 16 accepts requests from each master device, and when receiving a bus request from two or more master devices at the same time, selects which master device is given the right to use the PCI bus 10 Then, the right to use the PCI bus 10 is given to the selected master device, and the permission is notified (grant).

また、上述したターゲット14およびローカルメモリ21が接続されるローカルバス20は、メインシステムバスとなるPCIバス10に対してローカルなバスであり、画像処理装置1の一部のデバイスを互いに接続するバスである。ローカルバス20には、ターゲット14およびローカルメモリ21の他に、ローカルデバイス23−1乃至ローカルデバイス23−Mが接続されている。すなわち、ローカルバス20においては、ターゲット14およびローカルメモリ21もローカルデバイスの1つであり、ターゲット14およびローカルメモリ21、並びに、ローカルデバイス23−1乃至ローカルデバイス23−Mの各デバイス間において、PCIバス10の場合と同様に、データ転送が行われる。   The local bus 20 to which the target 14 and the local memory 21 are connected is a local bus with respect to the PCI bus 10 serving as a main system bus, and a bus that connects some devices of the image processing apparatus 1 to each other. It is. In addition to the target 14 and the local memory 21, local devices 23-1 to 23 -M are connected to the local bus 20. That is, in the local bus 20, the target 14 and the local memory 21 are also local devices, and between the target 14 and the local memory 21 and each of the local devices 23-1 to 23 -M, PCI As in the case of the bus 10, data transfer is performed.

ホストバス30には、画像処理装置1全体を制御するCPU31の他にメインメモリ32も接続されている。CPU31は、ホストバス30を介してメインメモリ32にアクセスし、メインメモリ32にロードされたプログラムに従って各種の処理を実行し、画像処理装置1の各部の動作を制御する。メインメモリ32にはまた、CPU31が各種の処理を実行する上において必要なデータなども適宜記憶される。   In addition to the CPU 31 that controls the entire image processing apparatus 1, a main memory 32 is also connected to the host bus 30. The CPU 31 accesses the main memory 32 via the host bus 30, executes various processes according to a program loaded in the main memory 32, and controls the operations of each unit of the image processing apparatus 1. The main memory 32 also appropriately stores data necessary for the CPU 31 to execute various processes.

CPU31には、さらに、CPU31が実行するプログラムやデータが予め記憶されたROM(Read Only Memory)41、書き換え可能なフラッシュメモリ等により構成され、CPU31が実行するプログラムやデータが記憶される記憶部42、および、CPU31に制御されるなどして、装着されたリムーバブルメディア44に記憶されているプログラムやデータを読み出し、CPU31に供給するドライブ43が接続されている。さらに、キーボード等の入力デバイスやモニタ等の出力デバイス(いずれも図示せず)のように上述した以外のデバイスがCPU31に接続されるようにしてももちろんよい。   The CPU 31 further includes a ROM (Read Only Memory) 41 in which programs and data executed by the CPU 31 are stored in advance, a rewritable flash memory, and the like, and a storage unit 42 in which programs and data executed by the CPU 31 are stored. A drive 43 is connected to read out programs and data stored in the mounted removable medium 44 and supply them to the CPU 31 under the control of the CPU 31. Furthermore, other devices than those described above may be connected to the CPU 31 such as an input device such as a keyboard and an output device such as a monitor (both not shown).

以上のような構成の画像処理装置1において、例えば、電源投入時等のようにPCIバス10がリセットされるとき、CPU31は、PCIバス10のリセット処理を行うが、その際、PCIデータ転送12について、イニシエータ13とターゲット14を制御し、イニシエータ13に対する転送長を調査させる。具体的には、CPU31は、イニシエータ13を制御し、ターゲット14に対してメモリリード要求(例えば、ローカルメモリ21のデータの読み出し要求)を発行させる。また、CPU31は、そのメモリリード要求に対する処理を行うターゲット14に対して、イニシエータ13が1回のメモリリード要求において取得するデータの転送長を計測させる。   In the image processing apparatus 1 configured as described above, when the PCI bus 10 is reset, for example, when the power is turned on, the CPU 31 performs reset processing of the PCI bus 10. , The initiator 13 and the target 14 are controlled, and the transfer length for the initiator 13 is checked. Specifically, the CPU 31 controls the initiator 13 to issue a memory read request (for example, a request to read data from the local memory 21) to the target 14. Further, the CPU 31 causes the target 14 that performs processing for the memory read request to measure the transfer length of data that the initiator 13 acquires in one memory read request.

このようなCPU31の制御に基づいて、イニシエータ13は、ターゲット14に対してメモリリード要求を発行し、ターゲット14は、そのリード要求に対する処理を行う。このときターゲット14は、転送長として十分に多いデータ量のデータをローカルメモリ21より読み出し、キャッシュメモリ22に蓄積する。ターゲット14が十分なデータ量のデータをキャッシュメモリ22に蓄積すると、イニシエータ13は、ターゲット14よりそのデータの取得を開始する。ターゲット14は、その取得量(ワード数)を計測する。   Based on such control of the CPU 31, the initiator 13 issues a memory read request to the target 14, and the target 14 performs processing for the read request. At this time, the target 14 reads data having a sufficiently large data amount as the transfer length from the local memory 21 and accumulates it in the cache memory 22. When the target 14 accumulates a sufficient amount of data in the cache memory 22, the initiator 13 starts acquiring the data from the target 14. The target 14 measures the amount of acquisition (number of words).

イニシエータ13の取得量を計測したターゲット14は、その取得量をイニシエータ13に対する転送長として保持し、調査処理を終了する。そして、PCIバス10において、通常のデータ転送が開始され、ターゲット14がそのイニシエータ13よりメモリリード要求を発行されると、ターゲット14は、その保持したイニシエータ13に対する転送長分のデータをローカルメモリ21より読み出す。   The target 14 that has measured the acquisition amount of the initiator 13 holds the acquisition amount as a transfer length for the initiator 13 and ends the investigation process. When normal data transfer is started on the PCI bus 10 and the target 14 issues a memory read request from the initiator 13, the target 14 stores the data for the transfer length for the initiator 13 held in the local memory 21. Read from.

このように各部が動作することにより、画像処理装置1は、PCIデータ転送によるローカルメモリのトラフィックの増大を抑制するとともに、PCIデータ転送において不要なトランザクションの発生や転送効率の低下等を抑制することができ、PCIバス10やローカルバス20を有効に活用することができる。   As each unit operates in this manner, the image processing apparatus 1 suppresses an increase in local memory traffic due to PCI data transfer, and suppresses the occurrence of unnecessary transactions or a decrease in transfer efficiency in PCI data transfer. Thus, the PCI bus 10 and the local bus 20 can be used effectively.

図2は、図1のCPU31の内部の詳細な構成例を示すブロック図である。なお、図2において、CPU31は、後述するターゲット14によるイニシエータ13に対する転送長の設定に関する処理部についてのみ示されている。   FIG. 2 is a block diagram showing an example of a detailed configuration inside the CPU 31 of FIG. In FIG. 2, the CPU 31 is shown only for a processing unit related to setting of a transfer length for the initiator 13 by the target 14 described later.

CPU31は、リセット処理部51、PCIコンフィギュレーション処理部52、調査対象ターゲット特定部53、転送長初期値供給部54、転送長初期値記憶部55、マスタ別転送長調査制御部56、およびインタフェース処理部57を有している。   The CPU 31 includes a reset processing unit 51, a PCI configuration processing unit 52, a check target target specifying unit 53, a transfer length initial value supply unit 54, a transfer length initial value storage unit 55, a master transfer length check control unit 56, and interface processing. A portion 57 is provided.

リセット処理部51は、PCIコンフィギュレーション処理部52乃至マスタ別転送長調査制御部56を制御して、リセット時におけるPCIバス10の初期化に関する処理を行う。   The reset processing unit 51 controls the PCI configuration processing unit 52 to the master-specific transfer length investigation control unit 56 to perform processing related to initialization of the PCI bus 10 at the time of reset.

PCIコンフィギュレーション処理部52は、リセット処理部51に制御されて、ホストPCIブリッジ15を介して各PCIデバイス11にアクセスし、各PCIデバイス11に対して、メモリアドレス、I/Oアドレス、割り込みレベル、およびDMA(Direct Memory Access transfer)チャネル等のシステムリソースの割り当て、ドライバのロード/アンロード、および各種パラメータの設定等を行うコンフィギュレーション処理を行う。   The PCI configuration processing unit 52 is controlled by the reset processing unit 51 to access each PCI device 11 via the host PCI bridge 15, and to each PCI device 11, a memory address, an I / O address, an interrupt level And configuration processing for assigning system resources such as DMA (Direct Memory Access transfer) channels, loading / unloading drivers, and setting various parameters.

調査対象ターゲット特定部53は、リセット処理部51に制御されて、マスタデバイスに対する転送長の設定処理について、PCIコンフィギュレーション処理部52によるコンフィギュレーション処理結果に基づいて、処理を行うデバイス(ターゲットデバイス)を特定する。調査対象ターゲット特定部53は、各PCIデバイス11について転送長の設定が可能であるか否かを判定し、調査処理を実行させるターゲットを特定する。   The investigation target target specifying unit 53 is a device (target device) that is controlled by the reset processing unit 51 and performs processing for setting the transfer length for the master device based on the configuration processing result by the PCI configuration processing unit 52. Is identified. The investigation target target specifying unit 53 determines whether or not the transfer length can be set for each PCI device 11, and specifies a target for executing the investigation processing.

転送長初期値供給部54は、リセット処理部51に制御されて、転送長初期値記憶部55に記憶されている転送長初期値61を読み出し、それを、転送長の設定処理を行うターゲットデバイス(調査対象ターゲット特定部53により特定されたターゲットデバイス)に、インタフェース処理部57を介して供給する。なお、転送長初期値61は、ターゲット14におけるイニシエータ13に対する転送長の初期値であり、予め定められた所定の値である。この転送長初期値61には、後述する転送長の調査処理においてディスコネクト等の不要な処理が発生しないように、イニシエータ13に対する転送長として予想されるデータ量(ワード数)と比較して十分に大きい値、すなわち、計測される最大のイニシエータ13に対する転送長よりも大きくなるように設定される。   The transfer length initial value supply unit 54 is controlled by the reset processing unit 51 to read the transfer length initial value 61 stored in the transfer length initial value storage unit 55 and use it as a target device for performing transfer length setting processing. It is supplied to the (target device specified by the survey target target specifying unit 53) via the interface processing unit 57. The transfer length initial value 61 is an initial value of the transfer length for the initiator 13 in the target 14 and is a predetermined value. This transfer length initial value 61 is sufficiently larger than the data amount (number of words) expected as the transfer length for the initiator 13 so that unnecessary processing such as disconnection does not occur in the transfer length checking process described later. Is set to be larger than the maximum transfer length for the initiator 13 to be measured.

マスタ別転送長調査制御部56は、リセット処理部51に制御されて、各ターゲット14が調査処理を行うことができるように、各マスタデバイスに対して、調査処理を行うターゲット14に対するリード要求を発行させる。また、マスタ別転送長調査制御部56は、リセット処理部51に制御されて、各ターゲット14に対してマスタ別転送長調査処理を実行させる。   The master-specific transfer length investigation control unit 56 controls the reset processing unit 51 to issue a read request to each master device for the investigation target 14 so that each target 14 can conduct the investigation process. Issue. The master-specific transfer length investigation control unit 56 is controlled by the reset processing unit 51 to cause each target 14 to execute master-specific transfer length investigation processing.

インタフェース処理部57は、PCIコンフィギュレーション処理部52、調査対象ターゲット特定部53、転送長初期値供給部54、並びにマスタ別転送長調査制御部56等の、ホストバス30に対するインタフェース処理を実行する。インタフェース処理部57は、上述したこれらの各部が発行したコマンドやデータを、ホストバス30を介して、ホストPCIブリッジ15に供給したり、ホストPCIブリッジ15より供給されたコマンドやデータをCPU31内の各部に供給したりする。   The interface processing unit 57 executes interface processing with respect to the host bus 30 such as the PCI configuration processing unit 52, the investigation target target specifying unit 53, the transfer length initial value supply unit 54, and the master-specific transfer length investigation control unit 56. The interface processing unit 57 supplies the commands and data issued by each of the above-described units to the host PCI bridge 15 via the host bus 30 and the commands and data supplied from the host PCI bridge 15 in the CPU 31. Or supply to each part.

図3は、図1のターゲット14の、内部の詳細な構成例を示すブロック図である。   FIG. 3 is a block diagram showing a detailed internal configuration example of the target 14 of FIG.

図3において、ターゲット14は、上述したキャッシュメモリ22の他に、マスタ別転送長調査部71、マスタ判別部72、転送長計測部73、マスタ別転送長記憶部74、並びにデータ転送処理部75を有している。   In FIG. 3, in addition to the cache memory 22 described above, the target 14 includes a master-specific transfer length checking unit 71, a master discriminating unit 72, a transfer length measuring unit 73, a master-specific transfer length storage unit 74, and a data transfer processing unit 75. have.

マスタ別転送長調査部71は、CPU31のマスタ別転送長調査制御部56に制御され、マスタ判別部72、転送長計測部73、または、データ転送処理部75を制御し、イニシエータ13(ターゲット14とデータ転送を行う全てのマスタデバイス)に対する最適な転送長を調査し、マスタデバイス毎に設定する処理を行う。   The master-specific transfer length checking unit 71 is controlled by the master-specific transfer length checking control unit 56 of the CPU 31 and controls the master discriminating unit 72, the transfer length measuring unit 73, or the data transfer processing unit 75, and the initiator 13 (target 14 And all master devices that perform data transfer) are investigated, and a process for setting each master device is performed.

上述したように、各マスタデバイスがターゲット14に対してメモリリード要求を発行する場合、ターゲット14は、この要求に対して、各マスタデバイスが1回のアクセスで取得するデータ量(ワード数)である転送長分のデータを、キャッシュメモリ22に一時的に蓄積させるが、各マスタデバイスの転送長は互いに異なることがあり、ターゲット14がキャッシュメモリ22に蓄積させたデータ量(ワード数)、すなわち、ターゲット14が想定していたマスタデバイスの転送長が、実際のマスタデバイスの転送長より大きい場合(すなわち、ターゲット14が、不要なデータをキャッシュメモリ22に蓄積させる場合)、ローカルバス20のトラフィックが不要に増加してしまう。逆に、ターゲット14が想定していたマスタデバイスの転送長が、実際のマスタデバイスの転送長より小さい場合(すなわち、ターゲット14がキャッシュメモリ22に蓄積させたデータ量がデータ転送処理に対して不足している場合)、不要なトランザクションが発生し、ローカルバス20のトラフィックが不要に増加してしまう。   As described above, when each master device issues a memory read request to the target 14, the target 14 responds to the request with the amount of data (number of words) that each master device acquires in one access. Data for a certain transfer length is temporarily stored in the cache memory 22, but the transfer length of each master device may be different from each other, and the amount of data (number of words) stored in the cache memory 22 by the target 14, that is, When the transfer length of the master device assumed by the target 14 is larger than the transfer length of the actual master device (that is, when the target 14 accumulates unnecessary data in the cache memory 22), the traffic on the local bus 20 Will increase unnecessarily. On the other hand, when the transfer length of the master device assumed by the target 14 is smaller than the transfer length of the actual master device (that is, the amount of data stored in the cache memory 22 by the target 14 is insufficient for the data transfer processing) If this is the case, unnecessary transactions occur, and traffic on the local bus 20 increases unnecessarily.

そこで、マスタ別転送長調査部71は、例えば、PCIバス10のリセット時等において、CPU31のマスタ別転送長調査制御部56に制御されて、実際のデータ転送前に、予め、各マスタデバイスに対する最適な転送長を調査する。最適な転送長とは、上述したような不要なトラフィックの増加や不要なトランザクションの増加を最も抑制する転送長のことである。すなわち、最適な転送長とは、通常のデータ転送処理においてマスタデバイスが1回のアクセス(要求)により取得するデータ量(ワード数)に近似する(等しい場合を含む)ように設定されるデータ量のことである。   Therefore, the master-specific transfer length check unit 71 is controlled by the master-specific transfer length check control unit 56 of the CPU 31 when the PCI bus 10 is reset, for example, before the actual data transfer, in advance for each master device. Investigate the optimal transfer length. The optimum transfer length is a transfer length that most suppresses an increase in unnecessary traffic and an increase in unnecessary transactions as described above. In other words, the optimum transfer length is the amount of data set so as to approximate (including the case of equality) the amount of data (number of words) that the master device acquires by one access (request) in normal data transfer processing. That is.

マスタ判別部72は、後述するようにPCIバス10やアービタ16に接続されており、各信号の値に基づいて、リード要求を発行したマスタデバイス(イニシエータ13)を判別する処理を実行する。すなわち、マスタ判別部72は、転送長計測時においては、転送長を計測する対象となるマスタデバイス(イニシエータ13)を特定する。   The master determination unit 72 is connected to the PCI bus 10 and the arbiter 16 as will be described later, and executes processing for determining the master device (initiator 13) that issued the read request based on the value of each signal. That is, the master discriminating unit 72 specifies a master device (initiator 13) that is a target for measuring the transfer length when measuring the transfer length.

転送長計測部73は、マスタデバイスからのメモリリード処理に対する処理としてデータ転送処理部75が行う、マスタデバイスの1回のアクセスに対するデータの連続転送ワード数を計測し、そのマスタデバイスに対する最適な転送長(最適転送長)を求める。   The transfer length measurement unit 73 measures the number of continuous transfer words of data for one access of the master device, which is performed by the data transfer processing unit 75 as processing for the memory read processing from the master device, and optimal transfer to the master device. Find the length (optimum transfer length).

マスタ別最適転送長記憶部74は、転送長計測部73により計測された各マスタデバイスに対する最適転送長82を、それぞれが対応するレジスタに格納し、記憶している。例えば、図3の場合、マスタ別最適転送長記憶部74には、マスタA用最適転送長レジスタ81−1、マスタB用最適転送長レジスタ81−2、および、マスタC用最適転送長レジスタ81−3等が設けられており、各レジスタには、各レジスタが対応するマスタの最適転送長82が格納されている。   The master-specific optimum transfer length storage unit 74 stores the optimum transfer length 82 for each master device measured by the transfer length measuring unit 73 in a corresponding register. For example, in the case of FIG. 3, the master-specific optimum transfer length storage unit 74 includes a master A optimum transfer length register 81-1, a master B optimum transfer length register 81-2, and a master C optimum transfer length register 81. -3 etc., and the optimum transfer length 82 of the master to which each register corresponds is stored in each register.

データ転送処理部75は、PCIバス10のバスコマンド/バイトイネーブル(C/BE[3:0]#)、デバイスセレクション(DEVSEL#)、ターゲットレディ(TRDY#)、およびストップ(STOP#)等を含む各種の信号バスに接続され、イニシエータ13(すなわち、他のPCIデバイス11であるマスタデバイス)とPCIデータ転送処理12の制御を行う。また、データ転送処理部75は、ローカルバス20にも接続されており、ローカルメモリ21やローカルデバイス23−1乃至23−Mとローカルバス20を介したデータ転送の制御も行う。   The data transfer processing unit 75 performs bus command / byte enable (C / BE [3: 0] #), device selection (DEVSEL #), target ready (TRDY #), stop (STOP #), and the like of the PCI bus 10. It is connected to various signal buses including the initiator 13 and controls the PCI data transfer processing 12 and the initiator 13 (that is, the master device which is another PCI device 11). The data transfer processing unit 75 is also connected to the local bus 20, and controls data transfer via the local bus 21 and the local devices 23-1 to 23 -M and the local bus 20.

データ転送処理部75は、例えば、イニシエータ13からのメモリリード要求を受け付けたり、その要求に基づいて、バス20を介してローカルメモリ21にアクセスしたり、リード要求されたアドレスよりデータを読み出してキャッシュメモリ22に保持させるように制御したり、キャッシュメモリ22を制御して、保持させたデータを1ワードずつPCIバス22に出力させたりする。   For example, the data transfer processing unit 75 accepts a memory read request from the initiator 13, accesses the local memory 21 via the bus 20 based on the request, reads data from the address requested to be read, and caches it. The memory 22 is controlled to hold, or the cache memory 22 is controlled to output the held data to the PCI bus 22 word by word.

このとき、データ転送処理部75は、マスタ判別部72の判別処理に基づいて、マスタ別最適転送長記憶部74よりイニシエータ13に対応する最適転送長82をレジスタより読み出し、その情報に基づいて、ローカルメモリ21より読み出すデータ量(ワード数)を制御する。   At this time, the data transfer processing unit 75 reads the optimum transfer length 82 corresponding to the initiator 13 from the register from the optimum transfer length storage unit 74 for each master based on the determination process of the master determination unit 72, and based on the information, The amount of data (number of words) read from the local memory 21 is controlled.

また、データ転送処理部75は、マスタ別転送長調査部71に制御されて、イニシエータ13に対する転送長調査時におけるデータ転送処理も行う。このとき、データ転送処理部75は、CPU31より供給された転送長初期値分のデータをローカルメモリ21より読み出し、キャッシュメモリ22に保持させる。また、このデータ転送において、データ転送処理部75により制御されてキャッシュメモリ22がPCIバス20に出力するワード数は転送長計測部73に監視される。   The data transfer processing unit 75 is also controlled by the master-specific transfer length checking unit 71 to perform data transfer processing when the initiator 13 checks the transfer length. At this time, the data transfer processing unit 75 reads the data for the transfer length initial value supplied from the CPU 31 from the local memory 21 and stores the data in the cache memory 22. In this data transfer, the transfer length measuring unit 73 monitors the number of words that the cache memory 22 outputs to the PCI bus 20 under the control of the data transfer processing unit 75.

キャッシュメモリ22は、PCIバス20のアドレス/データバス(AD[31:0])等の信号バスに接続されており、データ転送処理部75に制御され、保持している転送データ91をPCIバス20(アドレス/データバス(AD[31:0]))に出力する。出力された転送データ91は、PCIバス20を介してイニシエータ13に供給される。   The cache memory 22 is connected to a signal bus such as an address / data bus (AD [31: 0]) of the PCI bus 20, and is controlled by the data transfer processing unit 75 to transfer the held transfer data 91 to the PCI bus. 20 (address / data bus (AD [31: 0])). The output transfer data 91 is supplied to the initiator 13 via the PCI bus 20.

次に、上述したマスタ判別部72のPCIバス20との接続について説明する。図4は、マスタ判別部72とアービタ16の接続関係を示す図である。   Next, connection with the PCI bus 20 of the master discrimination | determination part 72 mentioned above is demonstrated. FIG. 4 is a diagram illustrating a connection relationship between the master determination unit 72 and the arbiter 16.

マスタ判別部72は、図4に示されるように、PCIデバイス11であるL個のマスタデバイス101−1乃至101−Lがアサートおよびディアサートするリクエスト(REQ#)の状態と、アービタ16がアサートおよびディアサートするグラント(GNT#)の状態を監視する。   As shown in FIG. 4, the master discriminating unit 72 has a request (REQ #) state asserted and deasserted by the L master devices 101-1 to 101-L, which are the PCI devices 11, and the arbiter 16 asserts. And monitor the status of the deasserting grant (GNT #).

PCIバス10は、あるタイミングにおいては、1つのマスタデバイスにより、その使用権が占有される。すなわち、PCIバス10においては、同時に複数のマスタデバイスがデータ転送の制御を行うことはない。このバスの使用権は、アービタ16により管理されており、上述したように、各マスタデバイスからの要求に基づいて、アービタ16がいずれか1つに割り当てる。   The use right of the PCI bus 10 is occupied by one master device at a certain timing. That is, in the PCI bus 10, a plurality of master devices do not control data transfer at the same time. The right to use the bus is managed by the arbiter 16, and as described above, the arbiter 16 assigns to any one of them based on the request from each master device.

例えば、図4に示されるように、L個のマスタデバイス101−1乃至101−L(以下、区別する必要の無い場合、マスタデバイス101と称する)はそれぞれ、バスの使用権を要求する信号線であるリクエスト(REQ#)111−1乃至111−L(以下、区別する必要の無い場合、リクエスト(REQ#)111と称する)によってアービタ16に接続されている。各マスタデバイスは、このリクエスト(REQ#)111をアサートすることにより、アービタ16に対してPCIバス10の使用権を要求する。   For example, as shown in FIG. 4, each of the L master devices 101-1 to 101-L (hereinafter referred to as master device 101 if it is not necessary to distinguish) is a signal line that requests the right to use the bus. Are connected to the arbiter 16 by the requests (REQ #) 111-1 to 111-L (hereinafter referred to as the request (REQ #) 111 when there is no need to distinguish them). Each master device requests the arbiter 16 to use the PCI bus 10 by asserting this request (REQ #) 111.

また、各マスタデバイス101は、それぞれ、アービタ16がバスの使用権を割り当てたことを通知するための信号線であるグラント(GNT#)112−1乃至112−L(以下、区別する必要の無い場合、グラント(GNT#)112と称する)によってもアービタ16に接続されている。アービタ16は、リクエスト(REQ#)111をアサートさせたマスタデバイス101の中から1つを選択し、そのマスタデバイス101にたいしてグラント(GNT#)112をアサートさせて、PCIバス10の使用権を割り当てたことを通知する。   Each master device 101 also has grants (GNT #) 112-1 to 112-L, which are signal lines for notifying that the arbiter 16 has assigned the right to use the bus (hereinafter, there is no need to distinguish them). (Referred to as a grant (GNT #) 112). The arbiter 16 selects one of the master devices 101 that has asserted the request (REQ #) 111, asserts a grant (GNT #) 112 to the master device 101, and assigns the right to use the PCI bus 10 Notify that.

マスタ判別部72は、図4に示されるように、これらのリクエスト(REQ#)111のそれぞれと、リクエスト(REQ#)121−1乃至121−L(以下、区別する必要の無い場合、リクエスト(REQ#)121と称する)により、接続されており、各リクエスト(REQ#)111の状態を把握することにより、どのマスタデバイス101がPCIバス10の使用権を要求したのかを特定する。   As shown in FIG. 4, the master discriminating unit 72 and each of these requests (REQ #) 111 and requests (REQ #) 121-1 to 121 -L (hereinafter referred to as request (REQ #) REQ #) 121), the master device 101 requests the right to use the PCI bus 10 by identifying the status of each request (REQ #) 111.

また、マスタ判別部72は、図4に示されるように、グラント(GNT#)112のそれぞれとも、グラント(GNT#)122−1乃至122−L(以下、区別する必要の無い場合、グラント(GNT#)122と称する)により接続されており、アービタ16がどのマスタデバイス101にバスの使用権を割り当てたのかを特定する。   Further, as shown in FIG. 4, each of the grants (GNT #) 112 is assigned to each of the grants (GNT #) 122-1 to 122-L. GNT #) 122), and the master device 101 to which the arbiter 16 has assigned the right to use the bus is specified.

このように、マスタ判別部72は、これらの信号を監視することにより、現在行われているPCIデータ転送を行っているマスタデバイス101を判別することができる。   In this way, the master determination unit 72 can determine the master device 101 that is currently performing PCI data transfer by monitoring these signals.

ただし、正確には、アービタ16は、PCIバス10の使用権を与えたマスタデバイス101がコマンド発行等の処理を行い、その処理が終了した時点(トランザクションの途中で)で変更可能である。従って、タイミングによっては、実際に処理を行っているマスタデバイス101と、リクエスト(REQ#)121およびグラント(GNT#)122より判別したマスタデバイス101とが異なってしまうことも考えられる。   However, to be exact, the arbiter 16 can be changed when the master device 101 that has given the right to use the PCI bus 10 performs processing such as command issuance and the processing is completed (in the middle of the transaction). Therefore, depending on the timing, the master device 101 that is actually processing may differ from the master device 101 determined from the request (REQ #) 121 and the grant (GNT #) 122.

そこで、マスタ判別部72は、図5に示されるように、PCIバス10のフレーム(FRAME#)131、およびイニシエータレディ(IRDY#)132の状態も監視し、それらの信号値にも基づいて、どのマスタデバイスがイニシエータ13であるかを判別する。   Therefore, as shown in FIG. 5, the master discriminating unit 72 also monitors the states of the frame (FRAME #) 131 and the initiator ready (IRDY #) 132 of the PCI bus 10, and based on their signal values, It is determined which master device is the initiator 13.

フレーム(FRAME#)131は、イニシエータがトランザクションを開始する際にアサートする信号であり、バースト転送中はアサートされつづけ、最後のデータ転送の直前にディアサートされる。イニシエータレディ(IRDY#)132は、イニシエータがデータ転送可能状態にあるときにアサートする信号である。すなわち、イニシエータがデータ転送する際は、必ず、このイニシエータレディ(IRDY#)132はアサートされている。   The frame (FRAME #) 131 is a signal that is asserted when the initiator starts a transaction. The frame (FRAME #) 131 is continuously asserted during the burst transfer and is deasserted immediately before the last data transfer. The initiator ready (IRDY #) 132 is a signal that is asserted when the initiator is in a data transfer enabled state. That is, when the initiator transfers data, the initiator ready (IRDY #) 132 is always asserted.

従って、フレーム(FRAME#)131またはイニシエータレディ(IRDY#)132のいずれか一方がアサートされている間は、トランザクションが終了しておらず、バスの使用権は他のマスタデバイスに移行していないことを示す。ターゲット14のマスタ判別部72は、これらの信号の状態からこのように判断することにより、バスの使用権を有するマスタデバイス101(イニシエータ13)を判別する。   Therefore, while either the frame (FRAME #) 131 or the initiator ready (IRDY #) 132 is asserted, the transaction has not ended and the right to use the bus has not been transferred to another master device. It shows that. The master discriminating unit 72 of the target 14 discriminates the master device 101 (initiator 13) having the right to use the bus by making such judgment from the state of these signals.

図5において、PCIバス10のフレーム(FRAME#)131には、信号線131−1乃至131−Lのように、各マスタデバイス101−1乃至101−Lが接続されている。また、PCIバス10のイニシエータレディ(IRDY#)132にも、信号線132−1乃至132−Lのように、各マスタデバイス101−1乃至101−Lが接続されている。   In FIG. 5, the master devices 101-1 to 101-L are connected to the frame (FRAME #) 131 of the PCI bus 10 as signal lines 131-1 to 131-L. The master devices 101-1 to 101-L are also connected to the initiator ready (IRDY #) 132 of the PCI bus 10 as signal lines 132-1 to 132-L.

各マスタデバイス101は、これらの信号線を介して、PCIバス10のフレーム(FRAME#)131、およびイニシエータレディ(IRDY#)132をアサートしたりディアサートしたりする。ターゲット14のマスタ判別部72は、信号線141を介してフレーム(FRAME#)131と接続され、信号線142を介してイニシエータレディ(IRDY#)132に接続されており、これらの信号線を介して、PCIバス10のフレーム(FRAME#)131、およびイニシエータレディ(IRDY#)132の状態を取得する。   Each master device 101 asserts and deasserts the frame (FRAME #) 131 and the initiator ready (IRDY #) 132 of the PCI bus 10 via these signal lines. The master discriminating unit 72 of the target 14 is connected to the frame (FRAME #) 131 via the signal line 141, and is connected to the initiator ready (IRDY #) 132 via the signal line 142, via these signal lines. Thus, the status of the frame (FRAME #) 131 and the initiator ready (IRDY #) 132 of the PCI bus 10 is acquired.

次に、このような画像処理装置1における処理の流れについて説明する。   Next, a processing flow in the image processing apparatus 1 will be described.

例えば、電源投入時等のように、PCIバス10(およびPCIデバイス11)がリセットされる場合、CPU31のリセット処理部51は、リセット処理を開始する。   For example, when the PCI bus 10 (and the PCI device 11) is reset, such as when the power is turned on, the reset processing unit 51 of the CPU 31 starts the reset process.

最初に、ステップS1において、CPU31のPCIコンフィギュレーション処理部52は、リセット処理部51に制御されて、コンフィギュレーション処理を実行し、PCIバス10およびPCIデバイス11を初期化し、各種の設定や割り当てを行う。具体的には、PCIコンフィギュレーション処理部52は、PCIバス10を介して、各PCIデバイス11のコンフィギュレーションレジスタからベンダID、デバイスID、およびクラスコード等の、PCIデバイス111に関する情報を取得する。そして、PCIコンフィギュレーション処理部52は、それらのIDやコードに基づいて各PCIデバイス11を識別し、各デバイスに対して、メモリアドレス、I/Oアドレス、割り込みレベル、およびDMAチャネル等のシステムリソースの割り当て、ドライバのロード/アンロード、および各種パラメータの設定等を行う。   First, in step S1, the PCI configuration processing unit 52 of the CPU 31 is controlled by the reset processing unit 51 to execute configuration processing, initialize the PCI bus 10 and the PCI device 11, and perform various settings and assignments. Do. Specifically, the PCI configuration processing unit 52 acquires information about the PCI device 111 such as a vendor ID, a device ID, and a class code from the configuration register of each PCI device 11 via the PCI bus 10. The PCI configuration processing unit 52 identifies each PCI device 11 based on the ID and code, and system resources such as a memory address, an I / O address, an interrupt level, and a DMA channel for each device. Assignment, driver loading / unloading, and various parameter settings.

以上のようなコンフィギュレーション処理を行うと、CPU31のPCIコンフィギュレーション処理部52は、リセット処理部51に制御されて、ステップS1のコンフィギュレーション処理を終了しステップS2に処理を進める。   When the configuration processing as described above is performed, the PCI configuration processing unit 52 of the CPU 31 is controlled by the reset processing unit 51 to end the configuration processing in step S1 and advance the processing to step S2.

ステップS2において、調査対象ターゲット特定部53は、リセット処理部51に制御されて、マスタデバイスの最適な転送長を計測するターゲット(調査対象ターゲット)を特定する。ステップS2の処理が終了すると、調査対象ターゲット特定部53は、ステップS3に処理を進める。   In step S <b> 2, the investigation target target specifying unit 53 is controlled by the reset processing unit 51 to specify a target (survey target) for measuring the optimum transfer length of the master device. When the process of step S2 ends, the investigation target target specifying unit 53 advances the process to step S3.

ステップS3において、CPU141の転送長初期値供給部54は、リセット処理部51に制御されて、転送長初期値記憶部55に予め記憶されている転送長初期値61を読み出し、インタフェース処理部57を介して、調査対象ターゲット特定部53が特定したターゲットにそれを供給する。転送長初期値を供給すると、転送長初期値供給部54は、リセット処理部51に制御されて、処理をステップS4に進める。   In step S <b> 3, the transfer length initial value supply unit 54 of the CPU 141 is controlled by the reset processing unit 51 to read the transfer length initial value 61 stored in advance in the transfer length initial value storage unit 55. Then, it supplies it to the target specified by the survey target target specifying unit 53. When the transfer length initial value is supplied, the transfer length initial value supply unit 54 is controlled by the reset processing unit 51 to advance the process to step S4.

ステップS4において、CPU31のマスタ別転送長調査制御部56は、リセット処理部51に制御されて、マスタ別転送長調査制御処理を実行し、マスタ別転送長調査処理を制御する。マスタ別転送長調査制御処理の詳細については、図7のフローチャートを参照して後述する。   In step S4, the master-specific transfer length investigation control unit 56 of the CPU 31 is controlled by the reset processing unit 51 to execute the master-specific transfer length investigation control process and control the master-specific transfer length investigation process. Details of the master-specific transfer length investigation control process will be described later with reference to the flowchart of FIG.

ステップS4の処理を終了したマスタ別転送長調査制御処理を終了したマスタ別転送長調査制御部56は、リセット処理部51に制御されて、リセット処理を終了する。   The master-by-master transfer length investigation control unit 56 that has finished the master-by-master transfer length investigation control process that has finished the process of step S4 is controlled by the reset processing unit 51 to end the reset process.

次に、図6のステップS4において実行されるマスタ別転送長調査制御処理の詳細について図7のフローチャートを参照して説明する。   Next, details of the master-specific transfer length investigation control process executed in step S4 of FIG. 6 will be described with reference to the flowchart of FIG.

最初に、ステップS21において、マスタ別転送長調査制御部56は、変数iの値を「1」に設定する。   First, in step S21, the master-specific transfer length investigation control unit 56 sets the value of the variable i to “1”.

ステップS22において、マスタ別転送長調査制御部56は、各マスタデバイス(イニシエータ13)に、i番目の調査対象ターゲットに対するメモリリード処理を所定の回数実行させる。すなわち、各マスタデバイスは、この制御により、今回の調査対象であるターゲットに対して、順番にメモリリード要求を所定の回数ずつ発行する。また、このとき、ターゲット14においては、マスタ別転送長調査処理が実行されている。従って、このようにマスタデバイスを制御してメモリリードアクセスさせることにより、調査対象ターゲットは、そのターゲットと通信可能な全てのマスタデバイスの転送長を、所定の回数ずつ計測することができる。   In step S22, the master-specific transfer length investigation control unit 56 causes each master device (initiator 13) to execute a memory read process for the i-th investigation target target a predetermined number of times. In other words, each master device issues a memory read request a predetermined number of times in order to the target that is the current investigation target under this control. At this time, the transfer length check process for each master is executed in the target 14. Therefore, by controlling the master device and performing memory read access in this manner, the target to be investigated can measure the transfer lengths of all the master devices that can communicate with the target by a predetermined number of times.

ステップS22の処理を終了したマスタ別転送長調査制御処理部56は、ステップS23に処理を進め、変数iをインクリメントし、ステップS24において、全ての調査対象ターゲット(調査対象ターゲット特定部53により特定されたターゲット全て)に対して、処理したか否かを判定する。未処理のターゲットが存在すると判定した場合、マスタ別転送長調査制御処理部56は、処理をステップS22に戻し、それ以降の処理を繰り返す。   The master-specific transfer length investigation control processing unit 56 that has finished the process of step S22 advances the process to step S23, increments the variable i, and in step S24, all the investigation target targets (specified by the investigation target target specifying unit 53). For all the targets). If it is determined that there is an unprocessed target, the master-specific transfer length investigation control processing unit 56 returns the process to step S22 and repeats the subsequent processes.

ステップS24において、全ての調査対象ターゲットに対して処理をしたと判定した場合、マスタ別転送長調査制御処理部56は、マスタ別転送長調査制御処理を終了し、図6のステップS4に処理を戻す。   If it is determined in step S24 that processing has been performed for all the targets to be investigated, the master-specific transfer length survey control processing unit 56 ends the master-specific transfer length survey control processing, and the process proceeds to step S4 in FIG. return.

以上のようにして、マスタ別転送長調査制御理部56は、全ての調査対象ターゲットに対して、上述した処理を行い、各マスタデバイスに対する転送長を計測させる。   As described above, the master-by-master transfer length investigation control unit 56 performs the above-described processing on all investigation target targets to measure the transfer length for each master device.

次に、ターゲット14において実行されるマスタ別転送長調査処理を図8のフローチャートを参照して説明する。   Next, the master-specific transfer length check process executed in the target 14 will be described with reference to the flowchart of FIG.

マスタ別転送長調査部71は、ステップS41において、データ転送処理部75を制御し、転送長初期値61が供給されたか否かを判定する。転送長初期値61が供給されたと判定した場合、マスタ別転送長調査部71は、処理をステップS42に進め、供給された転送長初期値61を所定のレジスタ(図示せず)にセットする。   In step S41, the master-specific transfer length checking unit 71 controls the data transfer processing unit 75 to determine whether or not the transfer length initial value 61 has been supplied. If it is determined that the transfer length initial value 61 has been supplied, the master-specific transfer length checking unit 71 advances the processing to step S42, and sets the supplied transfer length initial value 61 in a predetermined register (not shown).

転送長初期値61をレジスタにセットすると、マスタ別転送長調査部71は、処理をステップS43に進める。また、ステップS41において、転送長初期値61が供給されていないと判定した場合、マスタ別転送長調査部71は、ステップS42の処理を省略し、ステップS43に処理を進める。   When the transfer length initial value 61 is set in the register, the master-specific transfer length checking unit 71 advances the process to step S43. If it is determined in step S41 that the transfer length initial value 61 is not supplied, the master-specific transfer length checking unit 71 omits the process of step S42 and advances the process to step S43.

ステップS43において、マスタ別転送長調査部71は、データ転送処理部75を制御して、イニシエータ13よりメモリリード要求を取得したか否かを判定する。メモリリード要求を取得したと判定した場合、マスタ別転送長調査部71は、ステップS44に処理を進める。ステップS44において、マスタ判別部72は、マスタ別転送長調査部71に制御されて、このときの各信号の状態を取得し、メモリリード要求を発行したマスタを判別し、ステップS45に処理を進める。   In step S43, the master-specific transfer length checking unit 71 controls the data transfer processing unit 75 to determine whether or not a memory read request has been acquired from the initiator 13. If it is determined that the memory read request has been acquired, the master-specific transfer length examining unit 71 advances the process to step S44. In step S44, the master discriminating unit 72 is controlled by the master-specific transfer length examining unit 71 to acquire the state of each signal at this time, discriminate the master that issued the memory read request, and proceed to step S45. .

ステップS45において、データ転送処理部75は、メモリリード要求に対してリトライを返すとともに、ローカルメモリ21にアクセスし、ローカルメモリ21より転送長初期値分のデータを読み出し、それをキャッシュメモリ22に蓄積させる。   In step S <b> 45, the data transfer processing unit 75 returns a retry to the memory read request, accesses the local memory 21, reads data for the transfer length initial value from the local memory 21, and stores it in the cache memory 22. Let

図9は、データ転送処理部75がリトライ処理を返す際の、各信号における状態遷移の様子の例を示す図である。   FIG. 9 is a diagram illustrating an example of the state transition in each signal when the data transfer processing unit 75 returns the retry process.

リトライ処理を返す場合、データ転送処理部75は、デバイスセレクション(DEVSEL#)をアサートしたまま、ストップ(STOP#)をアサートする。ストップ(STOP#)のアサートを確認すると、イニシエータ13は、フレーム(FRAME#)をディアサートし、さらに、リクエスト(REQ#)もディアサートし、PCIバス10を一旦解放する。データ転送処理部75は、フレーム(FRAME#)がディアサートされたことを確認すると、ストップ(STOP#)およびデバイスセレクション(DEVSEL#)をディアサートする。また、これに伴い、イニシエータ13は、イニシエータレディ(IRDY#)もディアサートする。   When returning the retry process, the data transfer processing unit 75 asserts a stop (STOP #) while asserting the device selection (DEVSEL #). When the assertion of the stop (STOP #) is confirmed, the initiator 13 deasserts the frame (FRAME #), further deasserts the request (REQ #), and temporarily releases the PCI bus 10. When confirming that the frame (FRAME #) is deasserted, the data transfer processing unit 75 deasserts the stop (STOP #) and the device selection (DEVSEL #). Accordingly, the initiator 13 also deasserts initiator ready (IRDY #).

なお、リトライが返されると、イニシエータ13は、上述したようにPCIバス10を一旦解放した後、同じ内容のメモリリード要求を再度発行する。ターゲット14は、データ転送の準備が整うまで、メモリリード要求に対してリトライを返す。すなわち、ターゲット14がデータ転送の準備が整うまで以上のような処理が繰り返される。   When the retry is returned, the initiator 13 once releases the PCI bus 10 as described above, and then issues a memory read request having the same contents again. The target 14 returns a retry to the memory read request until it is ready for data transfer. That is, the above processing is repeated until the target 14 is ready for data transfer.

ステップS45の処理を終了するとデータ転送処理部75は、処理をステップS46に進め、データ蓄積完了後にメモリリード要求を取得したか否かを判定し、取得したと判定した場合、ステップS47に処理を進める。ステップS47において、転送長計測部73は、転送長計測処理を実行する。転送長計測処理の詳細については、図10のフローチャートを参照して説明する。   When the process of step S45 ends, the data transfer processing unit 75 advances the process to step S46, determines whether or not a memory read request has been acquired after completion of data accumulation, and determines that it has been acquired, the process proceeds to step S47. Proceed. In step S47, the transfer length measurement unit 73 executes transfer length measurement processing. Details of the transfer length measurement processing will be described with reference to the flowchart of FIG.

転送長計測処理を終了すると、マスタ別転送長調査部71は、処理をステップS48に進める。また、ステップS43において、メモリリード要求を取得していないと判定した場合、データ転送処理部75は、処理をステップS48に進める。さらに、ステップS46において、データ蓄積完了後にメモリリード要求を取得していないと判定した場合、データ転送処理部75は、ステップS48に処理を進める。   When the transfer length measurement process ends, the master-specific transfer length examining unit 71 advances the process to step S48. If it is determined in step S43 that the memory read request has not been acquired, the data transfer processing unit 75 advances the process to step S48. Furthermore, if it is determined in step S46 that a memory read request has not been acquired after the completion of data accumulation, the data transfer processing unit 75 advances the process to step S48.

ステップS48において、マスタ別転送長調査部71は、マスタ別転送長調査処理を終了するか否かを判定し、終了しないと判定したばあい、処理をステップS41に戻し、それ以降の処理を繰り返す。また、マスタ別転送長調査処理を終了すると判定した場合、マスタ別転送長調査部71は、マスタ別転送長調査処理を終了する。   In step S48, the master-by-master transfer length checking unit 71 determines whether or not to end the master-by-master transfer length check process. . If it is determined that the master-specific transfer length investigation process is to be terminated, the master-specific transfer length investigation unit 71 terminates the master-specific transfer length investigation process.

次に、図10のフローチャートを参照して、転送長計測処理を説明する。   Next, transfer length measurement processing will be described with reference to the flowchart of FIG.

転送長計測部73は、ステップS61において、内蔵する転送長カウンタ(図示せず)の値を初期化し、ステップS62に処理を進める。ステップS62において、データ転送処理部75は、キャッシュメモリ22に蓄積した転送データ91の最初の1ワード分をPCIバス10に出力させる。   In step S61, the transfer length measuring unit 73 initializes the value of a built-in transfer length counter (not shown), and proceeds to step S62. In step S 62, the data transfer processing unit 75 causes the PCI bus 10 to output the first one word of the transfer data 91 stored in the cache memory 22.

ステップS63において、転送長計測部73は、キャッシュメモリ22より出力されたワード数を計測するために、転送長カウンタを1回インクリメントする。ステップS64において、データ転送処理部75は、マスタ(イニシエータ13)よりデータ転送終了が通知されたか否かを判定する。   In step S63, the transfer length measurement unit 73 increments the transfer length counter once to measure the number of words output from the cache memory 22. In step S64, the data transfer processing unit 75 determines whether or not the data transfer end is notified from the master (initiator 13).

メモリリードサイクル(メモリリード要求によるトランザクション)においては、図11に示されるように、イニシエータ13は、最後のデータ(データ3)を取得する(クロック9の)直前にフレーム(FRAME#)をディアサートし、次のデータでトランザクションを終了することを示す。すなわち、イニシエータ13は、フレーム(FRAME#)をディアサートした状態でデータを取得すると、イニシエータレディ(IRDY#)をディアサートし、バスを解放する。また、ターゲット14(データ転送処理部75)は、このフレーム(FRAME#)がディアサートされた場合、データの供給を次のワードで中止する。   In the memory read cycle (transaction by memory read request), as shown in FIG. 11, the initiator 13 deasserts the frame (FRAME #) immediately before the last data (data 3) is acquired (clock 9). And the transaction ends with the next data. That is, when the initiator 13 acquires data in a state where the frame (FRAME #) is deasserted, the initiator 13 deasserts the initiator ready (IRDY #) and releases the bus. Further, when this frame (FRAME #) is deasserted, the target 14 (data transfer processing unit 75) stops supplying data at the next word.

すなわち、図10のステップS64において、データ転送処理部75は、フレーム(FRAME#)の状態を監視し、ディアサートされることにより、データ転送終了が通知されたか否かを判定する。フレーム(FRAME#)がディアサートされておらず、データ転送終了が通知されていないと判定した場合、データ転送処理部75は、処理をステップS65に進め、キャッシュメモリ22の転送データ91の次の1ワード分をPCIバス10に出力させる。ステップS65の処理を終了した、データ転送処理部75は、処理をステップS63に戻し、それ以降の処理を繰り返す。   That is, in step S64 of FIG. 10, the data transfer processing unit 75 monitors the state of the frame (FRAME #) and determines whether or not the end of data transfer has been notified by deasserting. When it is determined that the frame (FRAME #) has not been deasserted and the data transfer end has not been notified, the data transfer processing unit 75 advances the process to step S65 and continues to the next of the transfer data 91 in the cache memory 22. One word is output to the PCI bus 10. The data transfer processing unit 75 that has finished the process of step S65 returns the process to step S63 and repeats the subsequent processes.

また、ステップS64において、フレーム(FRAME#)がディアサートされ、データ転送終了が通知されたと判定した場合、データ転送処理部75は、ステップS66に処理を進め、キャッシュメモリ22を制御してデータの出力を停止させる。データの出力が停止すると、転送長計測部73は、ステップS67において、転送長カウンタの値に基づいて、最適転送長を求める。例えば、複数回データ転送処理が行われ、複数回転送長が計測された場合、転送長計測部73は、それらの計測結果である転送長の平均値を最適転送長とする。なお、転送長計測部73は、最適転送長として、例えば、計測された転送長群の最大値や最小値等、平均値以外の値を最適転送長とするようにしてもよい。   If it is determined in step S64 that the frame (FRAME #) has been deasserted and the end of data transfer has been notified, the data transfer processing unit 75 proceeds to step S66 and controls the cache memory 22 to control the data transfer. Stop output. When the data output stops, the transfer length measuring unit 73 obtains an optimum transfer length based on the value of the transfer length counter in step S67. For example, when the data transfer process is performed a plurality of times and the transfer length is measured a plurality of times, the transfer length measurement unit 73 sets the average value of the transfer lengths as the measurement results as the optimum transfer length. Note that the transfer length measurement unit 73 may set a value other than the average value, such as the maximum value or the minimum value of the measured transfer length group, as the optimal transfer length as the optimal transfer length.

最適転送長を算出した転送長計測部73は、処理をステップS68に進め、転送長計測処理を終了するか否かを判定し、終了しないと判定した場合、処理をステップS61に戻し、それ以降の処理を繰り返す。   The transfer length measuring unit 73 that has calculated the optimum transfer length advances the process to step S68, determines whether or not to end the transfer length measurement process, and returns to step S61 if determined not to end, and thereafter. Repeat the process.

また、ステップS68において、転送長計測処理を終了すると判定した場合、転送長計測部73は、処理をステップ69に進め、ステップS67において求めた最適転送長を、今回データ転送を行ったイニシエータ13に対応する最適転送長レジスタにセット(格納)し、転送長計測処理を終了し、処理を図8のステップS47に戻す。   If it is determined in step S68 that the transfer length measurement process is to be terminated, the transfer length measurement unit 73 advances the process to step 69, and sets the optimum transfer length obtained in step S67 to the initiator 13 that has performed the current data transfer. It is set (stored) in the corresponding optimum transfer length register, the transfer length measurement process is terminated, and the process returns to step S47 in FIG.

以上のように転送長計測処理を行うことにより、転送長計測部73は、イニシエータ13に対する転送長を求めることができる。   By performing the transfer length measurement process as described above, the transfer length measurement unit 73 can obtain the transfer length for the initiator 13.

次に、以上の転送長計測処理において行われるデータ転送をどのマスタデバイスが行っているかを判断するために実行されるマスタ判別処理について図12のフローチャートを参照して説明する。なお、図10のステップS69において、求められた最適転送長をレジスタにセットする際に、転送長計測部73は、このマスタ判別処理の処理結果を利用し、どのマスタデバイスに対応するレジスタにセットするかを判断する。   Next, a master determination process executed to determine which master device is performing the data transfer performed in the above transfer length measurement process will be described with reference to the flowchart of FIG. In step S69 in FIG. 10, when the obtained optimum transfer length is set in the register, the transfer length measuring unit 73 uses the processing result of the master discrimination process to set the register corresponding to which master device. Judge whether to do.

マスタ判別部72は、ステップS81において、各マスタデバイスに対するグラント(GNT#)のいずれかがアサートされたか否かを判定し、アサートされたと判定するまで待機する。このとき、PCIバス10は、どのマスタデバイスもPCIバス10の使用権を獲得していない(すなわちデータ転送が行われていない)アイドル状態である。グラント(GNT#)のいずれかがアサートされたと判定した場合、マスタ判別部72は、処理をステップS82に進める。   In step S81, the master determination unit 72 determines whether any of the grants (GNT #) for each master device is asserted, and waits until it is determined that it is asserted. At this time, the PCI bus 10 is in an idle state in which no master device has acquired the right to use the PCI bus 10 (that is, no data transfer is performed). If it is determined that any of the grants (GNT #) has been asserted, the master determination unit 72 advances the processing to step S82.

ステップS82において、マスタ判別部72は、グラント(GNT#)がアサートされたマスタを特定マスタに設定する。また、このとき、グラントがアサートされたマスタデバイスは、フレームFRAME#をアサートする。これによりPCIバス10にはトランザクションが発生し、データ転送に関する処理が開始される。   In step S82, the master determination unit 72 sets the master for which the grant (GNT #) is asserted as a specific master. At this time, the master device whose grant is asserted asserts the frame FRAME #. As a result, a transaction occurs on the PCI bus 10 and processing related to data transfer is started.

ステップS82の処理を終了するとマスタ判別部72は、ステップS83に処理を進め、グラント(GNT#)がアサートされたマスタが変更されたか否かを判定し、変更されたと判定した場合、ステップS84に処理を進め、トランザクションが終了し、バスアイドル状態が発生したか否かを判定し、バスアイドル状態が発生したと判定するまで待機する。   When the process of step S82 is completed, the master determination unit 72 proceeds to the process of step S83, determines whether or not the master for which the grant (GNT #) is asserted has been changed, and determines that the master has been changed, the process proceeds to step S84. The process is advanced, and it is determined whether or not the transaction is finished and a bus idle state has occurred, and waits until it is determined that a bus idle state has occurred.

PCIバス10は、ドライバの切り替え等のために、前のトランザクションの終了と、次のトランザクションの開始の間に、少なくとも1クロックの待機状態(バスアイドル状態)の区間(例えば、図13のクロック2、クロック5、クロック9、およびクロック11)が必要である。図13においては、マスタaとマスタbとの間で、バスの使用権が切り替えられる様子が示されている。   The PCI bus 10 is in a waiting state (bus idle state) period of at least one clock (for example, clock 2 in FIG. 13) between the end of the previous transaction and the start of the next transaction for driver switching or the like. , Clock 5, clock 9 and clock 11). FIG. 13 shows how the right to use the bus is switched between master a and master b.

そこで、マスタ判別部72は、アービタ16がトランザクション中にグラント(GNT#)をアサートするデバイスを変更しても(アービタ16が次にバスの使用権を与えるマスタデバイスを、イニシエータ13以外のマスタデバイスの中から選択しても)、すぐにイニシエータ13となるマスタデバイスが変更されたと判断せずに、トランザクションが終了するまで待機する。   Therefore, even if the arbiter 16 changes the device that asserts the grant (GNT #) during the transaction (the arbiter 16 next assigns the master device to which the bus is given the right to use the bus) If the master device that becomes the initiator 13 is not immediately changed, the process waits until the transaction ends.

そして、ステプS84において、バスアイドル状態が発生したと判定した場合、マスタ判別部72は、トランザクションが終了したと判定し、処理をステップS85に進め、特定マスタを、現在グラント(GNT#)がアサートされているマスタに変更する。   If it is determined in step S84 that the bus idle state has occurred, the master determination unit 72 determines that the transaction has ended, proceeds to step S85, and asserts the specific master as the current grant (GNT #). Change to the master that has been set.

ステップS85の処理を終了したマスタ判別部72は、ステップS86に処理を進める。また、ステップS83においてグラントがアサートされたマスタが変更されていないと判定した場合、マスタ判別部72は、ステップS84およびステップS85の処理を省略し、ステップS86に処理を進める。   After completing the process in step S85, the master determination unit 72 advances the process to step S86. If it is determined in step S83 that the master whose grant has been asserted has not been changed, the master determination unit 72 skips steps S84 and S85 and proceeds to step S86.

ステップS86において、マスタ判別部72は、グラント(GNT#)がディアサートされたか否かを判定し、グラント(GNT#)がディアサートされたと判定した場合、処理をステップS87に進め、バスアイドル状態が発生したか否かを判定し、バスアイドル状態が発生したと判定するまで待機する。   In step S86, the master determination unit 72 determines whether or not the grant (GNT #) is deasserted. If it is determined that the grant (GNT #) is deasserted, the process proceeds to step S87, and the bus idle state is reached. It is determined whether a bus idle state has occurred or not.

トランザクション中にグラント(GNT#)がディアサートされ、アービタ16がバスの使用権をどのデバイスにも割り当てないとした場合も、マスタ判別部72は、上述した切り替えの場合と同様に、バスアイドルが発生するまで(トランザクションが終了するまで)待機する。   Even when the grant (GNT #) is deasserted during the transaction and the arbiter 16 does not assign the right to use the bus to any device, the master discriminator 72 determines that the bus idle Wait until it occurs (until the transaction ends).

ステップS87において、バスアイドル状態が発生し、トランザクションが終了したと判定した場合、マスタ判別部72は、ステップS88に処理を進め特定マスタの設定を空にする。   In step S87, when it is determined that a bus idle state has occurred and the transaction has ended, the master determination unit 72 proceeds to step S88 to empty the setting of the specific master.

ステップS89に処理を進めると、マスタ判別部72は、マスタ判別処理を終了するか否かを判定し、終了しないと判定した場合、マスタ判別部72は、処理をステップS81に戻し、それ以降の処理を繰り返す。またステップS89において、マスタ判別処理を終了すると判定したマスタ判別部72は、マスタ判別処理を終了する。   When the process proceeds to step S89, the master determination unit 72 determines whether or not to end the master determination process. If it is determined not to end the master determination unit 72, the master determination unit 72 returns the process to step S81, and the subsequent steps. Repeat the process. In step S89, the master discriminating unit 72 that has decided to end the master discrimination processing ends the master discrimination processing.

また、ステップS86において、グラントがディアサートされなかったと判定した場合、マスタ判別部72は、ステップS90に処理を進め、マスタ判別処理を終了するか否かを判定し、終了しないと判定した場合、処理をステップS83に戻し、それ以降の処理を繰り返す。また、ステップS90において、マスタ判別処理を終了すると判定した場合、マスタ判別部72は、マスタ判別処理を終了する。   If it is determined in step S86 that the grant has not been deasserted, the master determination unit 72 proceeds to step S90, determines whether or not to end the master determination process, and determines that it does not end. The process returns to step S83, and the subsequent processes are repeated. If it is determined in step S90 that the master determination process is to be terminated, the master determination unit 72 ends the master determination process.

以上のようにして、マスタ判別部72は、イニシエータ13となるマスタデバイスを特定する。これにより、転送長計測部73は、計測した最適転送長をマスタデバイス毎に管理する(マスタ別最適転送長記憶部74に記憶させる)ことができる。   As described above, the master determination unit 72 specifies the master device that becomes the initiator 13. Thereby, the transfer length measuring unit 73 can manage the measured optimum transfer length for each master device (store it in the master-specific optimum transfer length storage unit 74).

このようにマスタデバイス毎の最適転送長を準備すると、各PCIデバイス11は、通常のPCIデータ転送処理を開始する。その際、ターゲットとなったPCIデバイス(すなわち、ターゲット14)は、1回のメモリリード要求に対して、上述したように準備したイニシエータ13の最適転送長分のデータをローカルメモリ21より読み出し、キャッシュメモリ22に保持する。   Thus, when the optimum transfer length for each master device is prepared, each PCI device 11 starts a normal PCI data transfer process. At that time, in response to one memory read request, the target PCI device (that is, the target 14) reads the data for the optimum transfer length of the initiator 13 prepared as described above from the local memory 21, and caches it. Stored in the memory 22.

次に、以上のように準備されたマスタデバイス毎の最適転送長を用いたデータ転送処理について図14のフローチャートを参照して説明する。   Next, data transfer processing using the optimum transfer length for each master device prepared as described above will be described with reference to the flowchart of FIG.

最初に、ステップS101において、データ転送処理部75は、メモリリード要求を取得したか否かを判定し、取得したと判定した場合、ステップS102に処理を進める。ステップS102において、マスタ判別部72は、データ転送処理部75に制御され、上述した転送長計測時の場合と同様に、各信号に基づいてメモリリード要求を発行したマスタを判別する(イニシエータ13として動作しているマスタデバイスを特定する)。   First, in step S101, the data transfer processing unit 75 determines whether or not a memory read request has been acquired. If it is determined that the memory read request has been acquired, the process proceeds to step S102. In step S102, the master discriminating unit 72 is controlled by the data transfer processing unit 75 and discriminates the master that issued the memory read request based on each signal (as the initiator 13) as in the case of the transfer length measurement described above. Identify the working master device).

ステップS103において、データ転送処理部75は、メモリリード要求に対してリトライを返すとともに、マスタ判別部72が判別したマスタ用の最適転送長をマスタ別最適転送長記憶部74より取得し、ローカルメモリ21よりその最適転送長分のデータを読み出してキャッシュメモリ22に蓄積させる。なおイニシエータ13より同じ内容のメモリリード要求を繰り返し発行された場合、データ転送処理部75は、データが蓄積するまで、各要求に対してリトライを返す。   In step S103, the data transfer processing unit 75 returns a retry to the memory read request, acquires the master optimum transfer length determined by the master discriminating unit 72 from the master optimum transfer length storage unit 74, and stores the local memory. The data corresponding to the optimum transfer length is read from 21 and stored in the cache memory 22. If the initiator 13 repeatedly issues a memory read request having the same content, the data transfer processing unit 75 returns a retry to each request until data is accumulated.

そして、データ蓄積が完了すると、データ転送処理部75はステップS104に処理を進め、データ蓄積完了後にメモリリード要求を取得したか否かを判定し、取得したと判定するまで待機する。取得したと判定した場合、データ転送処理部75は、ステップS105に処理を進め、キャッシュメモリ22を制御して、キャッシュメモリ22に蓄積したデータをPCIバス10に出力させ、マスタ(イニシエータ13)に転送する。   When the data accumulation is completed, the data transfer processing unit 75 advances the process to step S104, determines whether or not a memory read request has been acquired after the data storage is completed, and waits until it is determined that the data has been acquired. If it is determined that the data has been acquired, the data transfer processing unit 75 advances the processing to step S105, controls the cache memory 22, causes the data stored in the cache memory 22 to be output to the PCI bus 10, and causes the master (initiator 13) to Forward.

データを転送させたデータ転送処理部75は、処理をステップS106に進める。また、ステップS101において、マスタデバイスよりメモリリード要求を取得していないと判定した場合、データ転送処理部101は、ステップS102乃至ステップS105の処理を省略し、ステップS106に処理を進める。   The data transfer processing unit 75 that has transferred the data proceeds to step S106. If it is determined in step S101 that a memory read request has not been acquired from the master device, the data transfer processing unit 101 omits steps S102 to S105 and proceeds to step S106.

ステップS106において、データ転送処理部75は、データ転送処理を終了するか否かを判定し、終了しないと判定した場合、処理をステップS101に戻し、それ以降の処理を繰り返す。また、ステップS106において、データ転送処理を終了すると判定した場合、データ転送処理部75は、データ転送処理を終了する。   In step S106, the data transfer processing unit 75 determines whether or not to end the data transfer process. If it determines not to end the process, the process returns to step S101, and the subsequent processes are repeated. If it is determined in step S106 that the data transfer process is to be terminated, the data transfer processing unit 75 ends the data transfer process.

以上のようにして、データ転送処理部75は、マスタ別最適転送長記憶部74に保持されている、イニシエータ13に対応する最適転送長を取得し、それを用いてデータ転送を行う。このように転送処理を行うことにより、ターゲット14は、どのマスタデバイスに対しても、必要最低限のデータを準備することができる。   As described above, the data transfer processing unit 75 acquires the optimum transfer length corresponding to the initiator 13 held in the optimum transfer length storage unit 74 for each master, and performs data transfer using the optimum transfer length. By performing the transfer process in this way, the target 14 can prepare the minimum necessary data for any master device.

図15は、ターゲット14によるデータ転送の転送長がマスタ毎に異なる場合について説明する図である。   FIG. 15 is a diagram illustrating a case where the transfer length of data transfer by the target 14 differs for each master.

図15において、ターゲット14は、マスタデバイスであるマスタA151からのメモリリード要求に対しては、マスタ別最適転送長記憶部74に記憶されているマスタA用最適転送長161分のデータであるマスタA用転送データ171をローカルメモリ21より取得し、マスタデバイスであるマスタB152からのメモリリード要求に対しては、マスタ別最適転送長記憶部74に記憶されているマスタB用最適転送長162分のデータであるマスタB用転送データ172をローカルメモリ21より取得し、マスタデバイスであるマスタC153からのメモリリード要求に対しては、マスタ別最適転送長記憶部74に記憶されているマスタC用最適転送長163分のデータであるマスタC用転送データ173をローカルメモリ21より取得する。   In FIG. 15, the target 14 is a master which is data corresponding to the master A optimum transfer length 161 stored in the master optimum transfer length storage unit 74 in response to a memory read request from the master device A 151. A transfer data 171 is acquired from the local memory 21, and in response to a memory read request from the master B 152 as a master device, the master B optimum transfer length 162 stored in the master optimum transfer length storage unit 74 Master B transfer data 172 is acquired from the local memory 21, and in response to a memory read request from the master C 153 that is the master device, the master C transfer data 172 stored in the master optimum transfer length storage unit 74 is obtained. Transfer data 173 for master C, which is data for the optimal transfer length 163, is acquired from the local memory 21. That.

このように、ターゲット14は、各マスタデバイスに対して最適な転送長のデータを準備するので、マスタの待機時間を増大させることなく、不要なローカルバス20の占有を抑制し、PCIバス10またはローカルバス20の各デバイスがそのバスをより有効に活用することができる。   In this way, the target 14 prepares data of the optimum transfer length for each master device, so that the unnecessary occupancy of the local bus 20 is suppressed without increasing the standby time of the master, and the PCI bus 10 or Each device of the local bus 20 can use the bus more effectively.

なお、以上においては、イニシエータ13およびターゲット14が、ホストPCIコントローラ15と同じPCIバス10に接続される場合について説明したが、イニシエータ13またはターゲット14のいずれか一方、または両方が、例えば、PCI−PCIブリッジを介してPCIバス10に接続される他のPCIバスのPCIデバイスであってももちろんよい。   In the above description, the case where the initiator 13 and the target 14 are connected to the same PCI bus 10 as the host PCI controller 15 has been described. However, one or both of the initiator 13 and the target 14 is, for example, a PCI−. Of course, other PCI bus PCI devices connected to the PCI bus 10 via a PCI bridge may be used.

図16は、本発明を適用した画像処理装置の他の構成例を示す図である。   FIG. 16 is a diagram showing another configuration example of the image processing apparatus to which the present invention is applied.

図16に示されるように、画像処理装置200は、画像処理装置1の構成と同様の構成を有しており、さらに、そのPCIバス10にはPCI-PCIブリッジ201を介してPCIバス210が接続されている。   As shown in FIG. 16, the image processing apparatus 200 has a configuration similar to that of the image processing apparatus 1, and further, a PCI bus 210 is connected to the PCI bus 10 via a PCI-PCI bridge 201. It is connected.

PCI-PCIブリッジ201は、PCIバス10とPCIバス210とを接続し、互いのバスのデバイス間によるデータ転送の中継処理を行うデバイス(ブリッジデバイス)である。   The PCI-PCI bridge 201 is a device (bridge device) that connects the PCI bus 10 and the PCI bus 210 and relays data transfer between devices on each other's buses.

PCIバス210は、PCIバス10と同様のバスであり、PCIデバイス211−1乃至211−K(以下、区別する必要が無い場合は、PCIデバイス211と称する)のK個のPCIデバイス211が接続されている。また、PCIバス210には、PCIバス210用のアービタ216も接続されている。   The PCI bus 210 is the same bus as the PCI bus 10, and is connected to K PCI devices 211 of PCI devices 211-1 to 211-K (hereinafter referred to as PCI devices 211 when it is not necessary to distinguish them). Has been. The PCI bus 210 is also connected with an arbiter 216 for the PCI bus 210.

PCI−PCIブリッジ201は、PCIバス10およびPCIバス210の両方のPCIデバイスとして動作する。例えば、PCIバス10のイニシエータ13がPCIバス210のターゲット214に対して、メモリリード要求を行う場合、イニシエータ10は、PCI-PCIブリッジ201に対してメモリリード要求を行う。すなわち、PCI-PCIブリッジ201は、このとき、PCIバス10においてターゲットとして動作する。   The PCI-PCI bridge 201 operates as both PCI devices of the PCI bus 10 and the PCI bus 210. For example, when the initiator 13 of the PCI bus 10 makes a memory read request to the target 214 of the PCI bus 210, the initiator 10 makes a memory read request to the PCI-PCI bridge 201. That is, the PCI-PCI bridge 201 operates as a target in the PCI bus 10 at this time.

そして、PCI−PCIブリッジ201は、メモリリード要求を受け取ると、次に、PCIバス210においてイニシエータとして動作し、イニシエータ13の代わりに、ターゲット214に対してメモリリード要求を行う。ターゲット214は、この要求に応じて、ローカルバス220を介してローカルメモリ221より要求されたデータを読み出し、キャッシュメモリ222に保持させ、データ転送の準備を行う。そして、データ転送の準備が完了すると、ターゲット214は、その用意したデータをPCI-PCIブリッジに供給する。   When the PCI-PCI bridge 201 receives the memory read request, it next operates as an initiator in the PCI bus 210 and makes a memory read request to the target 214 instead of the initiator 13. In response to this request, the target 214 reads the data requested from the local memory 221 via the local bus 220, holds the data in the cache memory 222, and prepares for data transfer. When preparation for data transfer is completed, the target 214 supplies the prepared data to the PCI-PCI bridge.

PCIバス210において、PCI−PCIブリッジ201は、PCIバス210に対してイニシエータのように動作し、そのデータを取得するとともに、PCIバス10に対してターゲットのように動作し、取得したデータを内蔵するキャッシュメモリ202に保持し、イニシエータ13に対するデータ転送の準備を行う。そして、データの保持が完了すると、PCI−PCIブリッジ201は、そのデータをPCIバス10に出力し、イニシエータ13に供給する。   In the PCI bus 210, the PCI-PCI bridge 201 operates like an initiator with respect to the PCI bus 210, acquires the data, operates as a target with respect to the PCI bus 10, and incorporates the acquired data. The data is held in the cache memory 202 to be prepared, and preparation for data transfer to the initiator 13 is performed. When the data holding is completed, the PCI-PCI bridge 201 outputs the data to the PCI bus 10 and supplies it to the initiator 13.

つまり、PCIバス210をPCI−PCIブリッジ201のローカルバスと考えると、PCI−PCIブリッジ201は、図1のターゲット14と同様の構成になる。従って、PCI−PCIブリッジ201は、このようなデータ転送において、図1のターゲット14の場合と基本的に同様に動作する。そして、CPU31は、PCI−PCIブリッジ201とターゲット214に対して上述したような制御処理を行う。この場合、PCI−PCIブリッジ201は、PCIバス210に対してイニシエータとして動作するので、ターゲット214は、PCI−PCIブリッジ201に対する最適転送長の計測処理も行う。   That is, when the PCI bus 210 is considered as a local bus of the PCI-PCI bridge 201, the PCI-PCI bridge 201 has the same configuration as the target 14 in FIG. Accordingly, the PCI-PCI bridge 201 operates basically in the same manner as in the case of the target 14 in FIG. 1 in such data transfer. Then, the CPU 31 performs the control process as described above for the PCI-PCI bridge 201 and the target 214. In this case, since the PCI-PCI bridge 201 operates as an initiator for the PCI bus 210, the target 214 also performs an optimum transfer length measurement process for the PCI-PCI bridge 201.

なお、以上においては、PCIバス10側にイニシエータが存在し、PCIバス210側にターゲットが存在する場合について説明したが、画像処理装置200は、逆にPCIバス10側にターゲットが存在し、PCIバス210側にイニシエータが存在するようなデータ転送を行うこともできる。   In the above description, the case where the initiator exists on the PCI bus 10 side and the target exists on the PCI bus 210 side has been described. However, the image processing apparatus 200 has a target on the PCI bus 10 side and PCI Data transfer such that an initiator exists on the bus 210 side can also be performed.

その場合、PCI−PCIブリッジ201は、PCIバス210に対してターゲットとして動作し、PCIバス10側に対してイニシエータとして動作する。すなわち、PCI−PCIブリッジ201は、上述したように、PCIバス10に対して図1のターゲット14と同様に動作するが、逆に、PCIバス210に対して図1のターゲット14と同様に動作することもできる。   In that case, the PCI-PCI bridge 201 operates as a target for the PCI bus 210 and operates as an initiator for the PCI bus 10 side. That is, the PCI-PCI bridge 201 operates on the PCI bus 10 in the same manner as the target 14 in FIG. 1 as described above, but conversely operates on the PCI bus 210 in the same manner as the target 14 in FIG. You can also

図17は、PCI−PCIブリッジ201の内部の構成例を示すブロック図である。上述したように、PCI−PCIブリッジ201は、PCIバス10に対して基本的に同様の構成であるが、マスタ判別部として、PCIバス10用の第1PCIバス用マスタ判別部272−1と、PCIバス210用の第2PCIバス用マスタ判別部272−2の2つのマスタ判別部を有している。また、それらのマスタ判別部の動作を切り替えるために切り替え部271が新たに設けられている。切り替え部271は、PCI−PCIブリッジ201がPCIバス10またはPCIバス210のどちらの側とデータ転送を行うかによって第1PCIバス用マスタ判別部272−1と第2PCIバス用マスタ判別部272−2のいずれか一方を動作させる。さらに、データ転送処理部75およびキャッシュメモリ22は、上述したPCIバス10側と同様に、PCIバス210に接続されている。   FIG. 17 is a block diagram illustrating an internal configuration example of the PCI-PCI bridge 201. As described above, the PCI-PCI bridge 201 has basically the same configuration as that of the PCI bus 10, but as a master determination unit, the first PCI bus master determination unit 272-1 for the PCI bus 10, There are two master discriminating units, a second PCI bus master discriminating unit 272-2 for the PCI bus 210. In addition, a switching unit 271 is newly provided in order to switch the operations of the master determination units. The switching unit 271 includes a first PCI bus master determination unit 272-1 and a second PCI bus master determination unit 272-2 depending on which side the PCI-PCI bridge 201 performs data transfer with the PCI bus 10 or the PCI bus 210. Either one of them is operated. Further, the data transfer processing unit 75 and the cache memory 22 are connected to the PCI bus 210 in the same manner as the PCI bus 10 described above.

図18に示されるように、第1PCIバス用マスタ判別部272−1と第2PCIバス用マスタ判別部272−2は、それぞれ、上述した図3のマスタ判別部72の場合と同様に、アービタ16またはアービタ216と接続されており、それぞれのPCIバスのマスタデバイスがアサートするリクエスト(REQ#)の状態と、それぞれのアービタがアサートするグラント(GNT#)の状態を監視する。   As shown in FIG. 18, each of the first PCI bus master discriminating unit 272-1 and the second PCI bus master discriminating unit 272-2 is similar to the case of the master discriminating unit 72 shown in FIG. Or it is connected to the arbiter 216, and monitors the request (REQ #) state asserted by each PCI bus master device and the grant (GNT #) state asserted by each arbiter.

具体的には、第1PCIバス用マスタ判別部272−1は、マスタデバイス101−1乃至101−Lとアービタ16が接続される信号バスであるリクエスト(REQ#)111−1乃至111−Lのそれぞれと、信号バスであるリクエスト(REQ#)121−1乃至121−Lにより、接続されており、同様に、第2PCIバス用マスタ判別部272−2は、マスタデバイス301−1乃至301−Lとアービタ216が接続される信号バスであるリクエスト(REQ#)311−1乃至311−Lのそれぞれと、信号バスであるリクエスト(REQ#)321−1乃至321−Lにより、接続されている。   Specifically, the first PCI bus master determination unit 272-1 receives requests (REQ #) 111-1 to 111-L, which are signal buses to which the master devices 101-1 to 101-L and the arbiter 16 are connected. Each is connected by a request (REQ #) 121-1 to 121-L which is a signal bus. Similarly, the second PCI bus master determination unit 272-2 is connected to the master devices 301-1 to 301-L. And request (REQ #) 311-1 to 311-L which are signal buses to which the arbiter 216 is connected, and requests (REQ #) 321-1 to 321-L which are signal buses.

また、図19に示されるように、第1PCIバス用マスタ判別部272−1と第2PCIバス用マスタ判別部272−2は、それぞれ、上述した図3のマスタ判別部72の場合と同様に、フレーム(FRAME#)131または331、並びに、イニシエータレディ(IRDY#)132および332と接続されており、それぞれのPCIバスのマスタデバイスがアサートするフレーム(FRAME#)の状態と、イニシエータレディ(IRDY#)の状態を監視する。   Further, as shown in FIG. 19, the first PCI bus master discriminator 272-1 and the second PCI bus master discriminator 272-2 are respectively similar to the master discriminator 72 of FIG. It is connected to the frame (FRAME #) 131 or 331 and the initiator ready (IRDY #) 132 and 332, and the state of the frame (FRAME #) asserted by the master device of each PCI bus and the initiator ready (IRDY #) ) Status.

具体的には、第1PCIバス用マスタ判別部272−1は、第1PCIバス10の信号バスであるフレーム(FRAME#)131およびイニシエータレディ(IRDY#)132と、信号線141または142により接続されており、同様に、第2PCIバス用マスタ判別部272−2は、第2PCIバス210の信号バスであるフレーム(FRAME#)331およびイニシエータレディ(IRDY#)332と、信号線341または342により接続されている。   Specifically, the first PCI bus master determination unit 272-1 is connected to the frame (FRAME #) 131 and the initiator ready (IRDY #) 132, which are signal buses of the first PCI bus 10, by signal lines 141 or 142. Similarly, the second PCI bus master determination unit 272-2 is connected to a frame (FRAME #) 331 and an initiator ready (IRDY #) 332, which are signal buses of the second PCI bus 210, by a signal line 341 or 342. Has been.

このようなPCI−PCIブリッジ201を有する画像処理装置200において、各部の処理は基本的に図1の画像処理装置1と同様に動作するのでその説明は省略する。図20のフローチャートを参照して、PCI−PCIブリッジ201によるマスタ別転送長調査処理について説明する。この場合も、基本的に図8のフローチャートを参照して説明した、図1のターゲット14によるマスタ別転送長調査処理と同様に行われる。   In the image processing apparatus 200 having such a PCI-PCI bridge 201, the processing of each unit basically operates in the same manner as the image processing apparatus 1 in FIG. With reference to the flowchart of FIG. 20, the master-by-master transfer length check process by the PCI-PCI bridge 201 will be described. Also in this case, the processing is basically performed in the same manner as the master-specific transfer length check process by the target 14 shown in FIG. 1 described with reference to the flowchart of FIG.

すなわち、図20においてステップS121乃至ステップS123は、図8のステップS41乃至ステップS43にそれぞれ対応し、ステップS125乃至ステップS129の処理は、図8のステップS44乃至ステップS48にそれぞれ対応し、同様に実行される。   That is, in FIG. 20, Steps S121 through S123 correspond to Steps S41 through S43 in FIG. 8, respectively, and Steps S125 through S129 correspond to Steps S44 through S48 in FIG. Is done.

すなわち、PCI−PCIブリッジ201のデータ転送処理部75が、図20のステップS123においてメモリリード要求を取得すると、処理をステップS124に進める。このとき切り替え部271は、ステップS124において、メモリリード要求を発行した側を特定し、その側のPCIバス用マスタ判別部が動作するように切り替え処理を行い、処理をステップS125に進める。   That is, when the data transfer processing unit 75 of the PCI-PCI bridge 201 acquires a memory read request in step S123 of FIG. 20, the process proceeds to step S124. At this time, the switching unit 271 identifies the side that issued the memory read request in step S124, performs switching processing so that the PCI bus master determination unit on that side operates, and advances the processing to step S125.

すなわち、動作するように制御された方のマスタ判別部がステップS125の処理を実行する。   That is, the master discriminating unit that is controlled to operate executes the process of step S125.

以上のように、切り替え処理を行うことにより、PCI−PCIブリッジ201は、上述したターゲット14のように動作し、PCIバス10およびPCIバス210の両方のバスのトラフィックの増加を抑制させることができる。   As described above, by performing the switching process, the PCI-PCI bridge 201 operates like the target 14 described above, and can suppress an increase in traffic on both the PCI bus 10 and the PCI bus 210. .

すなわち、複数のPCIバスを有する画像処理装置200は、不要なローカルバスの占有を抑制するだけでなく、各PCIバスの不要な占有を抑制し、さらに、各PCIバスにおけるデータ転送の転送効率の低下を抑制することもできる。従って、画像処理装置200は、複数のシステムバスを有する場合であっても、各システムバスまたはローカルバスの各デバイスがそのバスをより有効に活用するようにすることができる。   That is, the image processing apparatus 200 having a plurality of PCI buses not only suppresses the occupancy of unnecessary local buses, but also suppresses the unnecessary occupancy of each PCI bus, and further improves the transfer efficiency of data transfer in each PCI bus. The decrease can also be suppressed. Accordingly, even when the image processing apparatus 200 has a plurality of system buses, each device of the system bus or the local bus can use the bus more effectively.

なお、以上においては、画像処理装置200が2つのPCIバスと、1つのPCI-PCIブリッジを有する場合について説明したが、これに限らず、例えば、画像処理装置が3つ以上のPCIバスを有するようにし、各PCIバスがPCI-PCIブリッジを介して互いに接続されるようにしてももちろんよい。すなわち、イニシエータとターゲットが複数のPCI-PCIブリッジを介してデータ転送を行うようにしてもよい。   In the above description, the image processing apparatus 200 has two PCI buses and one PCI-PCI bridge. However, the present invention is not limited to this. For example, the image processing apparatus has three or more PCI buses. Of course, the PCI buses may be connected to each other via a PCI-PCI bridge. That is, the initiator and the target may perform data transfer via a plurality of PCI-PCI bridges.

また、以上においては、転送長の調査をPCIバスのリセット時に行うように説明したが、これに限らず、例えば、通常のデータ転送においても、各ターゲットが、イニシエータに対して監視処理を行い、不都合が生じた場合、最適転送長の値の再調整を行うようにしてもよい。   In the above description, the transfer length is investigated when the PCI bus is reset. However, the present invention is not limited to this, and for example, in normal data transfer, each target performs monitoring processing on the initiator, When inconvenience occurs, the value of the optimum transfer length may be readjusted.

図21は、図1のターゲット14の内部の構成の、他の例を示すブロック図である。   FIG. 21 is a block diagram showing another example of the internal configuration of the target 14 shown in FIG.

図21において、ターゲット14は、図3に示される構成の他に、ディスコネクト監視部401を有している。   In FIG. 21, the target 14 has a disconnect monitoring unit 401 in addition to the configuration shown in FIG. 3.

ディスコネクト監視部401は、マスタ判別部72およびデータ転送処理部75を監視しながら、データ転送処理部75によるデータ転送においてディスコネクト処理の発生を監視する。そして、ディスコネクト処理が発生した場合、転送長計測部73およびデータ転送処理部75を制御して、最適転送長の再設定処理を行う。   The disconnect monitoring unit 401 monitors the occurrence of disconnect processing in the data transfer by the data transfer processing unit 75 while monitoring the master determination unit 72 and the data transfer processing unit 75. When the disconnection process occurs, the transfer length measuring unit 73 and the data transfer processing unit 75 are controlled to perform the optimum transfer length resetting process.

図22のフローチャートを参照して、ディスコネクト監視部401が実行するディスコネクト監視処理を説明する。   The disconnect monitoring process executed by the disconnect monitoring unit 401 will be described with reference to the flowchart of FIG.

ステップS141において、ディスコネクト監視部401は、メモリリード要求を受け付けたか否かを判定し、受け付けたと判定した場合、ステップS142に処理を進め、ディスコネクトの発生を監視する。そして、ディスコネクト監視部401は、ステップS143においてディスコネクトが発生したか否かを判定し、ディスコネクトが発生したと判定した場合、ステップS144において、マスタ判別部72を制御し、メモリリード要求を発行したマスタを判別し、ステップS145において、判別したマスタに対してリード要求を発行させるように要求し、転送長計測部73およびデータ転送処理部75を制御して、判別したマスタに対する転送長調査処理を実行する。転送長調査処理の詳細については、図23のフローチャートを参照して説明する。   In step S141, the disconnect monitoring unit 401 determines whether a memory read request has been received. If it is determined that the memory read request has been received, the disconnect monitor 401 proceeds to step S142 and monitors the occurrence of a disconnect. Then, the disconnect monitoring unit 401 determines whether or not a disconnection has occurred in step S143. If it is determined that a disconnection has occurred, the disconnect monitoring unit 401 controls the master determination unit 72 to issue a memory read request in step S144. The issued master is determined, and in step S145, the determined master is requested to issue a read request, and the transfer length measurement unit 73 and the data transfer processing unit 75 are controlled to check the transfer length for the determined master. Execute the process. Details of the transfer length check process will be described with reference to the flowchart of FIG.

判別したマスタに対する転送長調査処理が終了するとディスコネクト監視部401は、処理をステップS146に進める。また、ステップS141においてメモリリード要求を受け付けていないと判定した場合、ディスコネクト監視部401は、ステップS142乃至ステップS145の処理を省略し、ステップS146に処理を進める。さらに、ディスコネクト監視部401は、ステップS143においてディスコネクトが発生していないと判定した場合、ステップS144およびステップS145の処理を省略し、ステップS146に処理を進める。   When the transfer length check process for the determined master is completed, the disconnect monitoring unit 401 advances the process to step S146. If it is determined in step S141 that the memory read request has not been received, the disconnect monitoring unit 401 skips steps S142 to S145 and proceeds to step S146. Further, when the disconnect monitoring unit 401 determines in step S143 that no disconnection has occurred, the disconnect monitoring unit 401 omits the processes in steps S144 and S145, and proceeds to step S146.

ステップS146においてディスコネクト監視部401は、ディスコネクト監視処理を終了するか否かを判定し、終了しないと判定した場合、処理をステップS141に戻し、それ以降の処理を繰り返す。また、ステップS146において、ディスコネクト監視処理を終了すると判定した場合、ディスコネクト監視部401は、ディスコネクト監視処理を終了する。   In step S146, the disconnect monitoring unit 401 determines whether or not to end the disconnect monitoring process. If it is determined not to end the process, the disconnect monitoring unit 401 returns the process to step S141 and repeats the subsequent processes. If it is determined in step S146 that the disconnect monitoring process is to be terminated, the disconnect monitoring unit 401 ends the disconnect monitoring process.

次に、図23のフローチャートを参照して、図22のステップS145において実行される転送長調査処理の詳細を説明する。なお、この処理は、基本的に、図8のフローチャートを参照して説明したマスタ別転送長調査処理と同様の処理が実行される。   Next, details of the transfer length checking process executed in step S145 of FIG. 22 will be described with reference to the flowchart of FIG. This process is basically the same as the master-specific transfer length check process described with reference to the flowchart of FIG.

ただし、転送長初期値は、リセット時の処理において既にセットされているので、図8のステップS41およびステップS42に対応する処理は省略される。   However, since the transfer length initial value has already been set in the process at the time of resetting, the processes corresponding to steps S41 and S42 in FIG. 8 are omitted.

ステップS161において、データ転送処理部75は、転送長を計測するマスタよりメモリリード要求を取得したか否かを判定する。この処理は図8のステップS43に対応する。ステップS161において、メモリリード要求を取得したと判定した場合、データ転送処理部75は、ステップS162に処理を進め、メモリリード要求に対してリトライを返すとともに、ローカルメモリ21よりデータを転送長初期値分読み出し、キャッシュメモリ22に蓄積する。この処理は、図8のステップS45に対応する。なお、図23の転送長調査処理においては、転送長を計測するマスタを予め特定してあるので、図8のステップS44に対応する処理は省略される。   In step S161, the data transfer processing unit 75 determines whether a memory read request has been acquired from the master that measures the transfer length. This process corresponds to step S43 in FIG. If it is determined in step S161 that the memory read request has been acquired, the data transfer processing unit 75 proceeds to step S162, returns a retry to the memory read request, and transfers the data from the local memory 21 to the initial transfer length. Minutes are read out and stored in the cache memory 22. This process corresponds to step S45 in FIG. In the transfer length check process of FIG. 23, since the master for measuring the transfer length is specified in advance, the process corresponding to step S44 of FIG. 8 is omitted.

ステップS162の処理を終了すると、データ転送処理部75は、ステップS163に処理を進め、データ蓄積完了後、メモリリード要求を受け付けたか否かを判定し、受け付けたと判定した場合、ステップS164に処理を進める。ステップS164において、転送長計測部73は、図10を参照して説明したような転送長計測処理を実行する。そして、転送長計測処理を終了すると転送長計測部73は、処理をステップS165に進める。   When the process of step S162 is completed, the data transfer processing unit 75 advances the process to step S163, determines whether or not a memory read request has been accepted after the completion of data accumulation, and determines that the memory read request has been accepted, the process proceeds to step S164. Proceed. In step S164, the transfer length measurement unit 73 executes a transfer length measurement process as described with reference to FIG. When the transfer length measurement process ends, the transfer length measurement unit 73 advances the process to step S165.

また、ステップS161において、メモリリード要求を取得していないと判定した場合、または、ステップS163において、データ蓄積完了後、メモリリード要求を受け付けていないと判定した場合、データ転送処理部75は、ステップS165に処理を進める。   If it is determined in step S161 that a memory read request has not been acquired, or if it is determined in step S163 that a memory read request has not been accepted after completion of data storage, the data transfer processing unit 75 performs step The process proceeds to S165.

ステップS165において、データ転送処理部75は、転送長調査処理を終了するか否かを判定し、終了しないと判定した場合、処理をステップS161に戻し、それ以降の処理を繰り返し、終了すると判定した場合、転送長調査処理を終了し、図22のステップS145に処理を戻す。   In step S165, the data transfer processing unit 75 determines whether or not to end the transfer length investigation process. If it is determined not to end, the data transfer processing unit 75 returns the process to step S161, repeats the subsequent processes, and determines to end. In this case, the transfer length check process is terminated, and the process returns to step S145 in FIG.

以上のように通常のデータ転送においてディスコネクトの発生を監視し、ディスコネクトが発生した場合、転送長の再設定を行うことにより、ターゲット14は、イニシエータ13に対して常に最適な転送長を得ることができる。このようにすることにより、画像処理装置1は、最適転送長が時間と共に変化するような場合においても、各システムバスまたはローカルバスの各デバイスがそのバスをより有効に活用するようにすることができる。   As described above, the occurrence of a disconnection is monitored in normal data transfer, and when a disconnection occurs, the target 14 always obtains the optimum transfer length for the initiator 13 by resetting the transfer length. be able to. By doing so, the image processing apparatus 1 can make each system bus or each device of the local bus more effectively use the bus even when the optimum transfer length changes with time. it can.

なお、上述したように、イニシエータ13およびターゲット14は、PCIバス10に接続された任意のPCIデバイス11(複数のPCIバスが存在する場合はそれらの全てのバスに接続された任意のPCIデバイス)であり、それらによるPCIデータ転送12は、任意のPCIデバイス11間のデータ転送に適用することができる。   As described above, the initiator 13 and the target 14 are the arbitrary PCI devices 11 connected to the PCI bus 10 (or arbitrary PCI devices connected to all the buses when there are a plurality of PCI buses). Thus, the PCI data transfer 12 by them can be applied to data transfer between any PCI devices 11.

また、以上においては、PCIバス110を用いたバスシステムについて説明したが、システムバスとしては、これ以外のバスであってももちろんよい。また、そのようなバスであれば、イニシエータとターゲットが、それぞれ、ブリッジで互いに接続された、互いに異なる種類のバスに接続されているようにしてもよい。   In the above description, the bus system using the PCI bus 110 has been described. However, the system bus may be a bus other than this. In such a bus, the initiator and the target may be connected to different types of buses connected to each other by a bridge.

さらに、イニシエータ13が複数のデバイスとしての機能を有している場合(多機能デバイスである場合)、ターゲット14は、イニシエータ13の機能ごとに最適転送長を設定するようにしてもよいし、同じイニシエータ13に対する1つの最適転送長を、1つのPCIデバイス11内で共有するようにしてもよい。逆にターゲット14が複数のデバイスとしての機能を有している場合、ターゲット14は、機能毎に、イニシエータ13に対する最適転送長を計測してもよいし、1つの機能についてのみ計測し、その結果得られた最適転送長を、そのターゲットの全ての機能で共有するようにしてももちろんよい。   Further, when the initiator 13 has a function as a plurality of devices (when it is a multi-function device), the target 14 may set an optimum transfer length for each function of the initiator 13 or the same. One optimum transfer length for the initiator 13 may be shared within one PCI device 11. Conversely, when the target 14 has functions as a plurality of devices, the target 14 may measure the optimum transfer length for the initiator 13 for each function, or measure only one function, and the result Of course, the obtained optimum transfer length may be shared by all the functions of the target.

なお、以上においては、PCIバス10がリセットされると、各ターゲットにおいて、各マスタデバイスに対する最適転送長の計測処理が行われるように説明したが、これに限らず、例えば、ターゲットデバイスの一部または全部が、リセット前に使用されていた各マスタデバイスに対する最適転送長を不揮発性のメモリ等に保持し、リセット後に設定処理を省略してその保持していた最適転送長を流用するようにしてももちろんよい。このようにすることにより、各ターゲットデバイスは、上述したような設定処理や計測処理を省略することができるので、リセット処理の負荷を軽減させることができる。   In the above description, when the PCI bus 10 is reset, the measurement process of the optimum transfer length for each master device is performed in each target. However, the present invention is not limited to this. For example, a part of the target device Or, in all cases, the optimal transfer length for each master device that was used before resetting is held in a non-volatile memory, etc., and the setting process is omitted after resetting, and the held optimal transfer length is diverted. Of course it is good. By doing so, each target device can omit the setting process and the measurement process as described above, and thus the load of the reset process can be reduced.

また、以上においては、映像機器である画像処理装置について説明したが、上述したようなバスシステムを有する装置であれば何でもよく、例えば、パーソナルコンピュータやサーバ等の情報処理装置であってもよいし、PDAや携帯電話器等のモバイル機器であってもよいし、テレビジョン受信装置やハードディスクレコーダ等の家庭電化製品であってももちろんよい。   In the above description, the image processing apparatus which is a video device has been described. However, any apparatus having a bus system as described above may be used. For example, an information processing apparatus such as a personal computer or a server may be used. Of course, it may be a mobile device such as a PDA or a mobile phone, or a home appliance such as a television receiver or a hard disk recorder.

上述した一連の処理は、ハードウェアにより実行させることもできるし、ソフトウエアにより実行させることもできる。この場合、例えば、CPU31が、ドライブ43を介してリムーバブルメディア44より読み出した、各ターゲットデバイスが上述した処理を実行するのに必要なプログラムやデータを、PCIバス10を介して、各マスタデバイス(PCIデバイス11の一部)に供給し、インストールするようにしてもよい。   The series of processes described above can be executed by hardware or can be executed by software. In this case, for example, a program and data required for each target device to execute the processing described above, read from the removable medium 44 via the drive 43, are transferred via the PCI bus 10 to each master device ( It may be supplied to a part of the PCI device 11 and installed.

そのとき、各マスタデバイスが、そのように供給されたプログラムやデータを取得すると、それらを内蔵する不揮発性のメモリ等の記憶部に記憶し、必要に応じてそれらのプログラムを実行し、上述した処理を実行するようにしてもよい。   At that time, when each master device acquires the program and data supplied in such a manner, the master device stores them in a storage unit such as a non-volatile memory in which they are built, and executes those programs as necessary. You may make it perform a process.

このようにすることにより、例えば、上述した処理に対応していない既存のマスタデバイスも、PCIバス10に接続することにより、CPU31が必要なプログラムやデータをインストールすることができる。従って、画像処理装置1は、どのようなPCIデバイス11が接続されてもPCIバス10を有効に活用させることができる。   By doing so, for example, an existing master device that does not support the above-described processing can also install necessary programs and data by the CPU 31 by connecting to the PCI bus 10. Accordingly, the image processing apparatus 1 can effectively utilize the PCI bus 10 regardless of what PCI device 11 is connected.

上述した一連の処理をソフトウエアにより実行させる場合には、そのソフトウエアを構成するプログラムが、ネットワークや記録媒体からインストールされる。   When the above-described series of processing is executed by software, a program constituting the software is installed from a network or a recording medium.

この記録媒体は、例えば、図1に示されるように、装置本体とは別に、ユーザにプログラムを配信するために配布される、プログラムが記録されている磁気ディスク(フレキシブルディスクを含む)、光ディスク(CD-ROM(Compact Disk-Read Only Memory),DVD(Digital Versatile Disk)を含む)、光磁気ディスク(MD(Mini-Disk)(登録商標)を含む)、もしくは半導体メモリなどよりなるリムーバブルメディア44により構成されるだけでなく、装置本体に予め組み込まれた状態でユーザに配信される、プログラムが記録されているROM41や、記憶部42に含まれるフラッシュメモリなどで構成される。   For example, as shown in FIG. 1, the recording medium is distributed to distribute a program to a user separately from the apparatus main body, and includes a magnetic disk (including a flexible disk) on which a program is recorded, an optical disk ( Removable media 44 such as CD-ROM (compact disk-read only memory), DVD (including digital versatile disk), magneto-optical disk (including MD (mini-disk) (registered trademark)), or semiconductor memory In addition to being configured, it is configured by a ROM 41 on which a program is recorded, a flash memory included in the storage unit 42, and the like that are distributed to the user in a state of being incorporated in the apparatus main body in advance.

なお、本明細書において、記録媒体に記録されるプログラムを記述するステップは、記載された順序に沿って時系列的に行われる処理はもちろん、必ずしも時系列的に処理されなくとも、並列的あるいは個別に実行される処理をも含むものである。   In the present specification, the step of describing the program recorded on the recording medium is not limited to the processing performed in chronological order according to the described order, but is not necessarily performed in chronological order. It also includes processes that are executed individually.

また、本明細書において、システムとは、複数のデバイス(装置)により構成される装置全体を表すものである。   Further, in this specification, the system represents the entire apparatus composed of a plurality of devices (apparatuses).

本発明を適用した画像処理装置の構成例を示すブロック図である。It is a block diagram which shows the structural example of the image processing apparatus to which this invention is applied. 図1のCPUの詳細な構成例を示すブロック図である。FIG. 2 is a block diagram illustrating a detailed configuration example of a CPU in FIG. 1. 図1のターゲットの詳細な構成例を示すブロック図である。It is a block diagram which shows the detailed structural example of the target of FIG. 図3のマスタ判別部の接続例を示す図である。It is a figure which shows the example of a connection of the master discrimination | determination part of FIG. 図3のマスタ判別部の接続例を示す図である。It is a figure which shows the example of a connection of the master discrimination | determination part of FIG. リセット処理の例を説明するフローチャートである。It is a flowchart explaining the example of a reset process. マスタ別転送長調査制御処理の例を説明するフローチャートである。It is a flowchart explaining the example of the transfer length investigation control process according to master. マスタ別転送長調査処理の例を説明するフローチャートである。It is a flowchart explaining the example of the transfer length investigation process according to master. リトライにおける信号の状態遷移の例を説明する図である。It is a figure explaining the example of the state transition of the signal in retry. 転送長計測処理の例を説明するフローチャートである。It is a flowchart explaining the example of a transfer length measurement process. メモリリードサイクルにおける信号の状態遷移の例を説明する図である。It is a figure explaining the example of the state transition of the signal in a memory read cycle. マスタ判別処理の例を説明するフローチャートである。It is a flowchart explaining the example of a master discrimination | determination process. アービトレーションの様子の例を説明する図である。It is a figure explaining the example of the mode of arbitration. データ転送処理の例を説明するフローチャートである。It is a flowchart explaining the example of a data transfer process. メモリリード要求に対するデータ転送の様子を説明する図である。It is a figure explaining the mode of the data transfer with respect to a memory read request. 本発明を適用した画像処理装置の他の構成例を示すブロック図である。It is a block diagram which shows the other structural example of the image processing apparatus to which this invention is applied. 図16のPCI-PCIブリッジの詳細な構成例を示すブロック図である。It is a block diagram which shows the detailed structural example of the PCI-PCI bridge of FIG. 図17のマスタ判別部の接続例を示す図である。It is a figure which shows the example of a connection of the master discrimination | determination part of FIG. 図17のマスタ判別部の接続例を示す図である。It is a figure which shows the example of a connection of the master discrimination | determination part of FIG. マスタ別転送長調査処理の例を説明するフローチャートである。It is a flowchart explaining the example of the transfer length investigation process according to master. 図1のターゲットの詳細な他の構成例を示すブロック図である。It is a block diagram which shows the other example of a detailed structure of the target of FIG. ディスコネクト監視処理の例を説明するフローチャートである。It is a flowchart explaining the example of a disconnection monitoring process. 転送長調査処理の例を説明するフローチャートである。It is a flowchart explaining the example of a transfer length investigation process.

符号の説明Explanation of symbols

1 画像処理装置, 10 PCIバス 11 PCIデバイス, 12 PCIデータ転送, 13 イニシエータ, 14 ターゲット, 15 ホストPCIブリッジ, 16 アービタ, 20 ローカルバス, 21 ローカルメモリ, 22 キャッシュメモリ, 31 CPU, 32 メインメモリ, 41 ROM, 42 記憶部, 43 ドライブ, 44 リムーバブルメディア, 51 リセット処理部, 52 PCIコンフィギュレーション処理部, 53 調査対象ターゲット特定部, 54 転送長初期値供給部, 55 転送長初期値記憶部, 56 マスタ別転送長調査制御部, 57 インタフェース処理部, 61 転送長初期値, 71 マスタ別転送長調査部, 72 マスタ判別部, 73 転送長計測部, 74 マスタ別最適転送長記憶部, 75 データ転送処理部, 82 最適転送長, 91 転送データ, 200 画像処理装置, 201 PCI-PCIブリッジ, 202 キャッシュメモリ, 210 PCIバス, 211−1乃至211−K PCIデバイス, 214 ターゲット, 216 アービタ, 220 ローカルバス, 221 ローカルメモリ, 222 キャッシュメモリ, 271 切り替え部, 272−1 第1PCIバス用マスタ判別部, 272−2 第2PCIバス用マスタ判別部, 401 ディスコネクト監視部,   1 image processing device, 10 PCI bus, 11 PCI device, 12 PCI data transfer, 13 initiator, 14 target, 15 host PCI bridge, 16 arbiter, 20 local bus, 21 local memory, 22 cache memory, 31 CPU, 32 main memory, 41 ROM, 42 storage unit, 43 drive, 44 removable media, 51 reset processing unit, 52 PCI configuration processing unit, 53 target target specifying unit, 54 transfer length initial value supply unit, 55 transfer length initial value storage unit, 56 Transfer length check control unit by master, 57 interface processing unit, 61 transfer length initial value, 71 transfer length check unit by master, 72 master discriminating unit, 73 transfer length measurement unit, 74 optimum transfer length storage unit by master, 75 data transfer Transmission processing unit, 82 optimum transfer length, 91 transfer data, 200 image processing device, 201 PCI-PCI bridge, 202 cache memory, 210 PCI bus, 211-1 to 211-K PCI device, 214 target, 216 arbiter, 220 local Bus, 221 local memory, 222 cache memory, 271 switching unit, 272-1 first PCI bus master determining unit, 272-2 second PCI bus master determining unit, 401 disconnect monitoring unit,

Claims (16)

複数のデバイスが接続されたシステムバスを有し、前記複数のデバイスが前記システムバスを介して互いにデータ転送を行う情報処理装置において、
前記データ転送を制御して前記データ転送を行うデバイスであるマスタデバイスの要求に基づいて、所定のメモリデバイスより予め定められた所定のデータ量である第1のデータ量のデータを取得し、内蔵するキャッシュメモリに保持した後、前記データを、前記システムバスを介して前記マスタデバイスに転送する第1の転送処理を実行する転送手段と、
前記転送手段により実行される前記第1の転送処理において、前記マスタデバイスが1回のアクセスにより取得する前記データ量である第2のデータ量を計測する計測手段と、
前記計測手段により計測された前記第2のデータ量に基づいて、前記メモリデバイスより読み出すデータ量である第3のデータ量を設定する設定手段と、
前記設定手段により設定された前記第3のデータ量を記憶する記憶手段とを備え、
前記転送手段は、前記記憶手段により前記第3のデータ量が記憶された後において、前記マスタデバイスの要求に基づいて、前記メモリデバイスより、前記記憶手段により記憶された前記第3のデータ量分のデータを取得し、内蔵するキャッシュメモリに保持した後、前記データを、前記システムバスを介して前記マスタデバイスに転送する第2の転送処理を実行する
ことを特徴とする情報処理装置。
In an information processing apparatus having a system bus to which a plurality of devices are connected, wherein the plurality of devices transfer data to each other via the system bus.
Based on a request of a master device that is a device that controls the data transfer and performs the data transfer, a predetermined data amount of a predetermined data amount is acquired from a predetermined memory device, and is incorporated. Transfer means for executing a first transfer process for transferring the data to the master device via the system bus after being held in the cache memory
In the first transfer process executed by the transfer unit, a measurement unit that measures a second data amount that is the data amount that the master device acquires by one access;
Setting means for setting a third data amount, which is a data amount read from the memory device, based on the second data amount measured by the measuring means;
Storage means for storing the third data amount set by the setting means,
After the third data amount is stored by the storage unit, the transfer unit receives the third data amount stored by the storage unit from the memory device based on a request from the master device. After the data is acquired and held in a built-in cache memory, a second transfer process is performed in which the data is transferred to the master device via the system bus.
前記第1のデータ量は、前記計測手段により計測される最大の前記第2のデータ量よりも大きい
ことを特徴とする請求項1に記載の情報処理装置。
The information processing apparatus according to claim 1, wherein the first data amount is larger than the maximum second data amount measured by the measuring unit.
前記設定手段は、前記第3のデータ量が前記第2のデータ量と近似するように、前記第3のデータ量を設定する
ことを特徴とする請求項2に記載の情報処理装置。
The information processing apparatus according to claim 2, wherein the setting unit sets the third data amount so that the third data amount approximates the second data amount.
前記マスタデバイスを制御してメモリリード要求を発行させる第1の制御手段と、
前記第1の制御手段により制御されて発行される前記メモリリード要求に対して、前記転送手段を制御して前記第1の転送処理を実行させ、前記計測手段を制御して前記第2のデータ量を計測させ、前記設定手段を制御して前記第3のデータ量を設定させ、前記記憶手段を制御して前記第3のデータ量を記憶させる第2の制御手段と
をさらに備えることを特徴とする請求項1に記載の情報処理装置。
First control means for controlling the master device to issue a memory read request;
In response to the memory read request issued under the control of the first control unit, the transfer unit is controlled to execute the first transfer process, and the measurement unit is controlled to control the second data. A second control unit that measures the amount, controls the setting unit to set the third data amount, and controls the storage unit to store the third data amount. The information processing apparatus according to claim 1.
前記第1の制御手段は、前記マスタデバイスを制御して前記メモリリード要求を複数回発行させ、
前記第2の制御手段は、前記転送手段を制御して、前記第1の制御手段により制御されて発行された複数の前記メモリリード要求のそれぞれに対して前記第1の転送処理を実行させ、前記計測手段を制御して、前記転送手段により複数回実行された前記第1の転送処理のそれぞれについて前記第2のデータ量を計測させ、前記設定手段を制御して、前記計測手段による複数回の計測により得られた複数の前記第2のデータ量に基づいて前記第3のデータ量を設定させ、前記記憶手段を制御して、前記設定手段により設定された前記第3のデータ量を記憶させる
ことを特徴とする請求項4に記載の情報処理装置。
The first control means controls the master device to issue the memory read request a plurality of times,
The second control means controls the transfer means to execute the first transfer processing for each of the plurality of memory read requests that are controlled and issued by the first control means, The measurement means is controlled to cause the second data amount to be measured for each of the first transfer processes executed a plurality of times by the transfer means, and the setting means is controlled to perform a plurality of times by the measurement means. The third data amount is set based on a plurality of the second data amounts obtained by the measurement, and the storage unit is controlled to store the third data amount set by the setting unit. The information processing apparatus according to claim 4, wherein:
前記設定手段は、前記計測手段による複数回の計測により得られた複数の前記第2のデータ量の平均値、最大値、または最小値を前記第3のデータ量として設定する
ことを特徴とする請求項5に記載の情報処理装置。
The setting means sets, as the third data amount, an average value, a maximum value, or a minimum value of the plurality of second data amounts obtained by a plurality of measurements by the measuring unit. The information processing apparatus according to claim 5.
前記第1の制御手段は、複数の前記マスタデバイスのそれぞれを制御し、前記マスタデバイス毎に前記メモリリード要求を発行させ、
前記第2の制御手段は、前記転送手段、前記計測手段、前記設定手段、および前記記憶手段を制御して、前記マスタデバイス毎に前記第3のデータ量を設定させて記憶させる
ことを特徴とする請求項4に記載の情報処理装置。
The first control means controls each of the plurality of master devices, causes the memory read request to be issued for each master device,
The second control unit controls the transfer unit, the measurement unit, the setting unit, and the storage unit to set and store the third data amount for each master device. The information processing apparatus according to claim 4.
前記第1の制御手段は、複数の機能を有するマスタデバイスのそれぞれを制御し、前記マスタデバイスの機能毎に前記メモリリード要求を発行させ、
前記第2の制御手段は、前記転送手段、前記計測手段、前記設定手段、および前記記憶手段を制御して、前記マスタデバイスの機能毎に前記第3のデータ量を設定させて記憶させる
ことを特徴とする請求項4に記載の情報処理装置。
The first control means controls each of the master devices having a plurality of functions, causes the memory read request to be issued for each function of the master device,
The second control unit controls the transfer unit, the measurement unit, the setting unit, and the storage unit to set and store the third data amount for each function of the master device. The information processing apparatus according to claim 4.
前記マスタデバイスの前記データ転送の相手のデバイスである複数のターゲットデバイスの中から、前記第2の制御手段が前記第3のデータ量を設定させて記憶させるように制御するターゲットデバイスを特定するターゲットデバイス特定手段をさらに備える
ことを特徴とする請求項4に記載の情報処理装置。
Target that specifies a target device to be controlled so that the second control means sets and stores the third data amount from among a plurality of target devices that are counterpart devices of the data transfer of the master device The information processing apparatus according to claim 4, further comprising device specifying means.
前記転送手段により実行される前記第1の転送処理または前記第2の転送処理において要求を発行したマスタデバイスを判別するマスタデバイス判別手段をさらに備える
ことを特徴とする請求項1に記載の情報処理装置。
The information processing according to claim 1, further comprising: a master device determining unit that determines a master device that has issued a request in the first transfer process or the second transfer process executed by the transfer unit. apparatus.
前記転送手段により実行される前記第2の転送処理においてディスコネクト処理の発生を監視するディスコネクト監視手段をさらに備える
ことを特徴とする請求項1に記載の情報処理装置。
The information processing apparatus according to claim 1, further comprising a disconnect monitoring unit that monitors occurrence of disconnect processing in the second transfer processing executed by the transfer unit.
複数のデバイスが接続されたシステムバスを有し、前記複数のデバイスが前記システムバスを介して互いにデータ転送を行う情報処理装置の情報処理方法であって、
前記データ転送を制御して前記データ転送を行うデバイスであるマスタデバイスの要求に基づいて、所定のメモリデバイスより予め定められた所定のデータ量である第1のデータ量のデータを取得し、内蔵するキャッシュメモリに保持した後、前記データを、前記システムバスを介して前記マスタデバイスに転送する第1の転送処理を実行する第1の転送ステップと、
前記第1の転送ステップの処理により実行される前記第1の転送処理において、前記マスタデバイスが1回のアクセスにより取得する前記データ量である第2のデータ量を計測する計測ステップと、
前記計測ステップの処理により計測された前記第2のデータ量に基づいて、前記メモリデバイスより読み出すデータ量である第3のデータ量を設定する設定ステップと、
前記設定ステップの処理により設定された前記第3のデータ量を記憶するように制御する記憶制御ステップと、
前記記憶制御ステップの処理により制御されて前記第3のデータ量が記憶された後において、前記マスタデバイスの要求に基づいて、前記メモリデバイスより、前記記憶制御ステップの処理により制御されて記憶された前記第3のデータ量分のデータを取得し、内蔵するキャッシュメモリに保持した後、前記データを、前記システムバスを介して前記マスタデバイスに転送する第2の転送処理を実行する第2の転送ステップと
を含むことを特徴とする情報処理方法。
An information processing method of an information processing apparatus having a system bus to which a plurality of devices are connected, wherein the plurality of devices transfer data to each other via the system bus,
Based on a request of a master device that is a device that controls the data transfer and performs the data transfer, a predetermined data amount of a predetermined data amount is acquired from a predetermined memory device, and is incorporated. A first transfer step of executing a first transfer process for transferring the data to the master device via the system bus after being held in the cache memory
In the first transfer process executed by the process of the first transfer step, a measurement step of measuring a second data amount that is the data amount acquired by the master device by one access;
A setting step of setting a third data amount, which is a data amount read from the memory device, based on the second data amount measured by the processing of the measuring step;
A storage control step for controlling to store the third data amount set by the setting step;
After the third data amount is stored by being controlled by the process of the storage control step, the memory device is controlled and stored by the process of the storage control step based on the request of the master device. Second transfer for executing second transfer processing for acquiring the third data amount of data and holding it in a built-in cache memory, and then transferring the data to the master device via the system bus An information processing method comprising: steps.
複数のデバイスが接続されたシステムバスを有し、前記複数のデバイスが前記システムバスを介して互いにデータ転送を行う処理を、コンピュータに行わせるプログラムにおいて、
前記データ転送を制御して前記データ転送を行うデバイスであるマスタデバイスの要求に基づいて、所定のメモリデバイスより予め定められた所定のデータ量である第1のデータ量のデータを取得し、内蔵するキャッシュメモリに保持した後、前記データを、前記システムバスを介して前記マスタデバイスに転送する第1の転送処理を実行する第1の転送ステップと、
前記第1の転送ステップの処理により実行される前記第1の転送処理において、前記マスタデバイスが1回のアクセスにより取得する前記データ量である第2のデータ量を計測する計測ステップと、
前記計測ステップの処理により計測された前記第2のデータ量に基づいて、前記メモリデバイスより読み出すデータ量である第3のデータ量を設定する設定ステップと、
前記設定ステップの処理により設定された前記第3のデータ量を記憶する様に制御する記憶制御ステップと、
前記記憶制御ステップの処理により前記第3のデータ量が記憶された後において、前記マスタデバイスの要求に基づいて、前記メモリデバイスより、前記記憶制御ステップの処理により制御されて記憶された前記第3のデータ量分のデータを取得し、内蔵するキャッシュメモリに保持した後、前記データを、前記システムバスを介して前記マスタデバイスに転送する第2の転送処理を実行する第2の転送ステップと
を含むことを特徴とするプログラム。
In a program having a system bus to which a plurality of devices are connected, and causing the plurality of devices to perform data transfer with each other via the system bus.
Based on a request of a master device that is a device that controls the data transfer and performs the data transfer, a predetermined data amount of a predetermined data amount is acquired from a predetermined memory device, and is incorporated. A first transfer step of executing a first transfer process for transferring the data to the master device via the system bus after being held in the cache memory
In the first transfer process executed by the process of the first transfer step, a measurement step of measuring a second data amount that is the data amount acquired by the master device by one access;
A setting step of setting a third data amount, which is a data amount read from the memory device, based on the second data amount measured by the processing of the measuring step;
A storage control step for controlling to store the third data amount set by the processing of the setting step;
After the third data amount is stored by the process of the storage control step, the third data controlled and stored by the process of the storage control step from the memory device based on the request of the master device. A second transfer step of executing a second transfer process of acquiring the amount of data corresponding to the amount of data and holding the data in a built-in cache memory, and then transferring the data to the master device via the system bus; A program characterized by including.
複数のデバイスが接続された複数のシステムバスを有し、前記複数のデバイスが前記システムバスを介して互いにデータ転送を行う情報処理装置において、
2つのシステムバスに接続され、前記2つのシステムバスの互いに異なるシステムバスに接続されたデバイス間におけるデータ転送において、前記データ転送を制御して前記データ転送を行うデバイスであるマスタデバイスの要求に基づいて、前記マスタデバイスの前記データ転送の相手となるターゲットデバイスより予め定められた所定のデータ量である第1のデータ量のデータを取得し、内蔵するキャッシュメモリに保持した後、前記マスタデバイスに前記データを転送する第1の中継処理を実行する中継手段と、
前記中継手段により実行される前記第1の中継処理において、前記マスタデバイスが1回のアクセスにより前記キャッシュメモリより取得するデータ量である第2のデータ量を計測する計測手段と、
前記計測手段により計測された前記第2のデータ量に基づいて、前記ターゲットデバイスより読み出すデータ量である第3のデータ量を設定する設定手段と、
前記設定手段により設定された前記第3のデータ量を記憶する記憶手段とを備え、
前記中継手段は、前記記憶手段により前記第3のデータ量が記憶された後において、前記マスタデバイスの要求に基づいて、前記ターゲットデバイスより、前記記憶手段により記憶された前記第3のデータ量分のデータを取得し、内蔵するキャッシュメモリに保持した後、前記データを、前記システムバスを介して前記マスタデバイスに転送する第2の中継処理を実行する
ことを特徴とする情報処理装置。
In an information processing apparatus having a plurality of system buses connected to a plurality of devices, wherein the plurality of devices transfer data to each other via the system bus,
In data transfer between devices connected to two system buses and connected to different system buses of the two system buses, based on a request of a master device that is a device that controls the data transfer and performs the data transfer A first data amount that is a predetermined data amount determined in advance from the target device that is the data transfer partner of the master device, and holds the data in a built-in cache memory; Relay means for executing a first relay process for transferring the data;
In the first relay process executed by the relay unit, a measuring unit that measures a second data amount that is a data amount that the master device acquires from the cache memory by one access;
Setting means for setting a third data amount, which is a data amount read from the target device, based on the second data amount measured by the measuring means;
Storage means for storing the third data amount set by the setting means,
After the third data amount is stored by the storage unit, the relay unit receives the third data amount stored by the storage unit from the target device based on a request from the master device. An information processing apparatus that executes a second relay process for transferring the data to the master device via the system bus after the data is acquired and stored in a built-in cache memory.
複数のデバイスが接続された複数のシステムバスを有し、前記複数のデバイスが前記システムバスを介して互いにデータ転送を行う情報処理装置の情報処理方法であって、
2つのシステムバスを接続する処理を行い、前記2つのシステムバスの互いに異なるシステムバスに接続されたデバイス間におけるデータ転送において、前記データ転送を制御して前記データ転送を行うデバイスであるマスタデバイスの要求に基づいて、前記マスタデバイスの前記データ転送の相手となるターゲットデバイスより予め定められた所定のデータ量である第1のデータ量のデータを取得し、キャッシュメモリを制御して保持させた後、前記マスタデバイスに前記データを転送する第1の中継処理を実行する中継ステップと、
前記中継ステップの処理により実行される前記第1の中継処理において、前記マスタデバイスが1回のアクセスにより前記キャッシュメモリより取得するデータ量である第2のデータ量を計測する計測ステップと、
前記計測ステップの処理により制御されて計測された前記第2のデータ量に基づいて、前記ターゲットデバイスより読み出すデータ量である第3のデータ量を設定する設定ステップと、
前記設定ステップの処理により設定された前記第3のデータ量を記憶する様に制御する記憶制御ステップと、
前記記憶制御ステップの処理により制御されて前記第3のデータ量が記憶された後において、前記マスタデバイスの要求に基づいて、前記ターゲットデバイスより、前記記憶制御ステップの処理により制御されて記憶された前記第3のデータ量分のデータを取得し、キャッシュメモリを制御して保持させた後、前記データを、前記システムバスを介して前記マスタデバイスに転送する第2の中継処理を実行する第2の中継ステップと
を含むことを特徴とする情報処理方法。
An information processing method of an information processing apparatus having a plurality of system buses to which a plurality of devices are connected, wherein the plurality of devices transfer data to each other via the system bus,
A process of connecting two system buses, and in data transfer between devices connected to different system buses of the two system buses, a master device that is a device that controls the data transfer and performs the data transfer After acquiring a first data amount of a predetermined data amount from a target device that is a partner of the data transfer of the master device based on the request and controlling and holding the cache memory A relay step for executing a first relay process for transferring the data to the master device;
In the first relay process executed by the process of the relay step, a measurement step of measuring a second data amount that is a data amount that the master device acquires from the cache memory by one access;
A setting step for setting a third data amount, which is a data amount read from the target device, based on the second data amount controlled and measured by the process of the measurement step;
A storage control step for controlling to store the third data amount set by the processing of the setting step;
After the third data amount is stored by being controlled by the process of the storage control step, the target device is controlled and stored by the process of the storage control step based on the request of the master device. A second relay process is executed to acquire data for the third data amount, control and hold the cache memory, and then transfer the data to the master device via the system bus. An information processing method comprising: a relay step.
複数のデバイスが接続された複数のシステムバスを有し、前記複数のデバイスが前記システムバスを介して互いにデータ転送を行う処理を、コンピュータに行わせるプログラムにおいて、
2つのシステムバスを接続する処理を行い、前記2つのシステムバスの互いに異なるシステムバスに接続されたデバイス間におけるデータ転送において、前記データ転送を制御して前記データ転送を行うデバイスであるマスタデバイスの要求に基づいて、前記マスタデバイスの前記データ転送の相手となるターゲットデバイスより予め定められた所定のデータ量である第1のデータ量のデータを取得し、キャッシュメモリを制御して保持させた後、前記マスタデバイスに前記データを転送する第1の中継処理を実行する中継ステップと、
前記中継ステップの処理により実行される前記第1の中継処理において、前記マスタデバイスが1回のアクセスにより前記キャッシュメモリより取得するデータ量である第2のデータ量を計測する計測ステップと、
前記計測ステップの処理により制御されて計測された前記第2のデータ量に基づいて、前記ターゲットデバイスより読み出すデータ量である第3のデータ量を設定する設定ステップと、
前記設定ステップの処理により設定された前記第3のデータ量を記憶する様に制御する記憶制御ステップと、
前記記憶制御ステップの処理により制御されて前記第3のデータ量が記憶された後において、前記マスタデバイスの要求に基づいて、前記ターゲットデバイスより、前記記憶制御ステップの処理により制御されて記憶された前記第3のデータ量分のデータを取得し、キャッシュメモリを制御して保持させた後、前記データを、前記システムバスを介して前記マスタデバイスに転送する第2の中継処理を実行する第2の中継ステップと
を含むことを特徴とするプログラム。
In a program having a plurality of system buses to which a plurality of devices are connected, and causing the plurality of devices to perform data transfer with each other via the system bus.
A process of connecting two system buses, and in data transfer between devices connected to different system buses of the two system buses, a master device which is a device that controls the data transfer and performs the data transfer After acquiring a first data amount of a predetermined data amount from a target device that is a partner of the data transfer of the master device based on the request and controlling and holding the cache memory A relay step for executing a first relay process for transferring the data to the master device;
In the first relay process executed by the process of the relay step, a measurement step of measuring a second data amount that is a data amount that the master device acquires from the cache memory by one access;
A setting step for setting a third data amount, which is a data amount read from the target device, based on the second data amount controlled and measured by the process of the measurement step;
A storage control step for controlling to store the third data amount set by the processing of the setting step;
After the third data amount is stored by being controlled by the process of the storage control step, the target device is controlled and stored by the process of the storage control step based on the request of the master device. A second relay process is executed to acquire data for the third data amount, control and hold the cache memory, and then transfer the data to the master device via the system bus. A relay program comprising:
JP2004047330A 2004-02-24 2004-02-24 Information processor and information processing method and program Withdrawn JP2005242414A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2004047330A JP2005242414A (en) 2004-02-24 2004-02-24 Information processor and information processing method and program

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2004047330A JP2005242414A (en) 2004-02-24 2004-02-24 Information processor and information processing method and program

Publications (1)

Publication Number Publication Date
JP2005242414A true JP2005242414A (en) 2005-09-08

Family

ID=35024129

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2004047330A Withdrawn JP2005242414A (en) 2004-02-24 2004-02-24 Information processor and information processing method and program

Country Status (1)

Country Link
JP (1) JP2005242414A (en)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2011215957A (en) * 2010-03-31 2011-10-27 Fujitsu Ltd Storage controller, storage system, and storage control method
JP4959806B2 (en) * 2007-10-18 2012-06-27 株式会社東芝 Storage device, data transmission method, and transmission control circuit
JP2015201050A (en) * 2014-04-08 2015-11-12 富士通株式会社 Cache storing program, information processing device, and cache storing method
JP2016525237A (en) * 2013-07-26 2016-08-22 インテル・コーポレーション Nonvolatile memory interface

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4959806B2 (en) * 2007-10-18 2012-06-27 株式会社東芝 Storage device, data transmission method, and transmission control circuit
JP2011215957A (en) * 2010-03-31 2011-10-27 Fujitsu Ltd Storage controller, storage system, and storage control method
JP2016525237A (en) * 2013-07-26 2016-08-22 インテル・コーポレーション Nonvolatile memory interface
JP2015201050A (en) * 2014-04-08 2015-11-12 富士通株式会社 Cache storing program, information processing device, and cache storing method

Similar Documents

Publication Publication Date Title
US6145039A (en) Method and apparatus for an improved interface between computer components
US6289406B1 (en) Optimizing the performance of asynchronous bus bridges with dynamic transactions
WO1999045470A2 (en) Trigger points for performance optimization in bridges
CN110716691B (en) Scheduling method and device, flash memory device and system
US20020019899A1 (en) Method of bus priority arbitration
JP3134819B2 (en) Data processing device
EP1068573B1 (en) Method and apparatus for arbitrating access to multiple buses in a data processing system
US20080052424A1 (en) Data access system, data access apparatus, data access integrated circuit, and data access method
JP2005242414A (en) Information processor and information processing method and program
US6519670B1 (en) Method and system for optimizing a host bus that directly interfaces to a 16-bit PCMCIA host bus adapter
US8209453B2 (en) Arbiter, a system and a method for generating a pseudo-grant signal
US8756356B2 (en) Pipe arbitration using an arbitration circuit to select a control circuit among a plurality of control circuits and by updating state information with a data transfer of a predetermined size
KR101022472B1 (en) Method for using bus efficiently
CN115794713A (en) AXI bus read-write transaction balancing method, device, electronic equipment and medium
WO2021036329A1 (en) Data storage method and apparatus
KR101260313B1 (en) Electric apparatus and data sending/receiving method thereof and slave apparatus and communication method between the plural number of apparatuses
JP2007507045A (en) Configuration register access method, setting method, integrated circuit parts, computer system, product
US8713205B2 (en) Data transfer device and data transfer method
KR101226389B1 (en) SYSTEM AND METHOD FOR CONTROLLING EXCLUSIVE ACCESS IN SoC
WO2001031460A9 (en) Method and apparatus for an improved interface between computer components
CN115017093B (en) Method and device for on-chip external bus communication
CN101196859B (en) Direct access memory device and direct access memory operation method
US11914536B2 (en) Device and method for sharing resource via bus
US10565137B2 (en) Non-volatile memory device and controlling apparatus, having extension activating and control parts, where memory device can be operated in an optimum operation mode
JP3241034B2 (en) External storage device

Legal Events

Date Code Title Description
A300 Withdrawal of application because of no request for examination

Free format text: JAPANESE INTERMEDIATE CODE: A300

Effective date: 20070501