JP2005242437A - Information processor, and information processing method and program - Google Patents

Information processor, and information processing method and program Download PDF

Info

Publication number
JP2005242437A
JP2005242437A JP2004047745A JP2004047745A JP2005242437A JP 2005242437 A JP2005242437 A JP 2005242437A JP 2004047745 A JP2004047745 A JP 2004047745A JP 2004047745 A JP2004047745 A JP 2004047745A JP 2005242437 A JP2005242437 A JP 2005242437A
Authority
JP
Japan
Prior art keywords
master device
data transfer
measurement
target
standby time
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP2004047745A
Other languages
Japanese (ja)
Inventor
Makoto Ogura
小倉  真
Takeharu Hino
竹春 日野
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 JP2004047745A priority Critical patent/JP2005242437A/en
Publication of JP2005242437A publication Critical patent/JP2005242437A/en
Pending legal-status Critical Current

Links

Images

Landscapes

  • Information Transfer Systems (AREA)

Abstract

<P>PROBLEM TO BE SOLVED: To enable each device of a system bus to much more validly utilize the system bus. <P>SOLUTION: An initial away value setting part supplies an initial away value to an initiator in a step S21. An address set processing part supplies an access destination address for setting the latency value of each target corresponding to the initiator in a step S22. A measurement processing performance control part makes the initiator start the performance of measurement processing to the i-th target in a step S24, and monitors a completion flag in a step S25, and when a completion flag has been asserted, increments variables i in a step S26, and when any unprocessed target exists, returns processing to the step S24 to repeat the following processing, and when measurement processing has been performed to all the targets, ends the 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, method, and program, and in particular, each device of the system bus makes more effective use of the system bus, for example, by reducing bus traffic by reducing the number of accesses. The present invention relates to an information processing apparatus and method, 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バスシステムの例を図1に示す。PCIバスシステム1は、上述したようなPCIバス11、およびPCIバス11に接続された複数のPCIデバイス12−1乃至PCIデバイス12−Nにより構成されている。   An example of a PCI bus system using the PCI bus is shown in FIG. The PCI bus system 1 includes the PCI bus 11 as described above and a plurality of PCI devices 12-1 to 12-N connected to the PCI bus 11.

これらのPCIデバイス12−1乃至PCIデバイス12−Nは、PCIバス11を介して互いにアクセスし、コマンドの授受やデータ転送等を行う。PCIバス11を介した通信は、図示せぬPCIバスコントローラにより制御され、PCIデバイスからの要求に基づいてバスの使用権が割り当てられる。   The PCI devices 12-1 to 12-N access each other via the PCI bus 11, and exchange commands and transfer data. Communication via the PCI bus 11 is controlled by a PCI bus controller (not shown), and the right to use the bus is assigned based on a request from a PCI device.

例えば、PCIバス11に接続されたPCIデバイス12−1乃至PCIデバイス12−Nの内の1つのPCIデバイスであり、PCIデータ転送13を制御するイニシエータ14は、最初に、図示せぬPCIバスコントローラに対してバスの使用権を要求する。そしてPCIバスコントローラよりPCIバス11の使用権が与えられると、イニシエータ14は、PCIデータ転送13における通信相手となるPCIデバイスであるターゲット15に対して、ターゲット15にローカルバス16を介して接続されたローカルメモリ17に記憶されているデータを要求する(リード要求)。イニシエータ14よりリード要求を取得したターゲット15は、ローカルバス16を介してローカルメモリ17より要求されたアドレスに対応するデータを読み出し、内蔵するキャッシュメモリ18に蓄積する。キャッシュメモリ18に要求されたデータが蓄積され、データ転送の準備が整うと、ターゲット15は、そのデータを、PCIバス11を介して、イニシエータ14に供給する。イニシエータ14は、ターゲット15よりデータを取得すると、PCIデータ転送13を終了し、PCIバス11を解放する。   For example, one of the PCI devices 12-1 to 12 -N connected to the PCI bus 11, and the initiator 14 that controls the PCI data transfer 13 is first a PCI bus controller (not shown). Request the right to use the bus. When the right to use the PCI bus 11 is given from the PCI bus controller, the initiator 14 is connected to the target 15 via the local bus 16 with respect to the target 15 which is a PCI device to be a communication partner in the PCI data transfer 13. The data stored in the local memory 17 is requested (read request). The target 15 that has acquired the read request from the initiator 14 reads data corresponding to the address requested from the local memory 17 via the local bus 16 and accumulates it in the built-in cache memory 18. When the requested data is accumulated in the cache memory 18 and preparation for data transfer is completed, the target 15 supplies the data to the initiator 14 via the PCI bus 11. When the initiator 14 acquires data from the target 15, the initiator 14 ends the PCI data transfer 13 and releases the PCI bus 11.

このようなPCIデータ通信13において、イニシエータ14とターゲット15との間で行われるやり取りの詳細を図2に示す。図2に示されるように、PCIバス11の使用権を与えられたイニシエータ14は、まず、ターゲット15に対するリード要求21−1を発行し、それを、PCIバス11を介してターゲット15に供給する(矢印22−1および矢印24−1)。これによりPCIバス11にはトランザクション23−1が生じる。矢印24−1のようにリード要求が供給されるとターゲット15は、応答処理25−1を行い、矢印26のように、ローカルバス16を介してローカルメモリ17にアクセスし、要求されたアドレスのデータを取得してキャッシュメモリ18に蓄積させる処理を開始する。このとき、キャッシュメモリ18のデータ(キャッシュデータ)は、要求されたデータではない無効データ27であるので、ターゲット15は、イニシエータ14に対して、このキャッシュデータを供給せずに、リトライ処理を返す(矢印28−1および矢印29−1)。   Details of the exchanges performed between the initiator 14 and the target 15 in the PCI data communication 13 are shown in FIG. As shown in FIG. 2, the initiator 14 given the right to use the PCI bus 11 first issues a read request 21-1 to the target 15 and supplies it to the target 15 through the PCI bus 11. (Arrow 22-1 and Arrow 24-1). As a result, a transaction 23-1 occurs on the PCI bus 11. When a read request is supplied as indicated by an arrow 24-1, the target 15 performs a response process 25-1, accesses the local memory 17 via the local bus 16 as indicated by an arrow 26, and receives the requested address. Processing for acquiring data and storing it in the cache memory 18 is started. At this time, since the data (cache data) in the cache memory 18 is invalid data 27 that is not the requested data, the target 15 returns a retry process to the initiator 14 without supplying the cache data. (Arrow 28-1 and Arrow 29-1).

イニシエータ14は、このように供給されたリトライ30−1を検出すると、PCIバス11を不要に占有しないように、一旦、PCIバス11を解放する。しかしながら、イニシエータ14は、不要に待機時間を延ばさないように、矢印31−1のように直ちにバスの使用権を再度確保し、上述したリード要求21−1の場合と同様に、数クロック後にリード要求21−2をターゲット15に対して発行する。ターゲット15は、矢印22−2および矢印24−2のように供給されたリード要求に対して、応答処理25−2を行い、まだキャッシュメモリ18に無効データが蓄積されているので、上述した応答処理25−1の場合と同様に、リトライ処理をイニシエータ14に返す(矢印28−2および矢印29−2)。このようなコマンドの授受によりPCIバス11には新たなトランザクション23−2が発生する。   When the initiator 14 detects the retry 30-1 supplied in this way, the initiator 14 temporarily releases the PCI bus 11 so as not to occupy the PCI bus 11 unnecessarily. However, the initiator 14 immediately secures the right to use the bus again as indicated by an arrow 31-1 so as not to unnecessarily extend the waiting time, and reads after several clocks as in the case of the read request 21-1. A request 21-2 is issued to the target 15. The target 15 performs response processing 25-2 to the read request supplied as indicated by the arrows 22-2 and 24-2, and invalid data is still accumulated in the cache memory 18, so that the above-described response Similar to the case of the process 25-1, the retry process is returned to the initiator 14 (arrow 28-2 and arrow 29-2). A new transaction 23-2 is generated on the PCI bus 11 by such a command exchange.

イニシエータ14は、リトライ30−2を検出すると、リトライ30−1を検出したときと同様に、一旦、PCIバス11を解放し、PCIバス11の使用権を再度確保し、数クロック後にリード要求21−2をターゲット15に対して発行する。   When the initiator 14 detects the retry 30-2, the PCI bus 11 is once released, the right to use the PCI bus 11 is secured again, and the read request 21 is received after several clocks, as when the retry 30-1 is detected. -2 is issued to the target 15.

イニシエータ14およびターゲット15は、キャッシュメモリ18に要求されたデータが蓄積されるまで、上述したような処理を((M−1)回)繰り返す。そして、イニシエータ14がM回目のリード要求を発行し、それを矢印22−Mおよび矢印24−MのようにPCIバス11を介して(トランザクション23−M)ターゲット15に供給し、ターゲット15がそれに対する応答処理25−Mを行ったときに、キャッシュメモリ18に有効データ32が蓄積されていたとすると、ターゲット15は、応答処理25−Mとして、矢印33のようにキャッシュメモリ18にアクセスし、その有効データ32をイニシエータ14に供給させる。有効データ32は、矢印34および矢印36のように、PCIバス11を介して(トランザクション35)、イニシエータ14に供給される。イニシエータ14は、このように供給された有効データ37を取得する。   The initiator 14 and the target 15 repeat the above-described processing ((M−1) times) until the requested data is accumulated in the cache memory 18. The initiator 14 issues an M-th read request and supplies it to the target 15 via the PCI bus 11 (transaction 23-M) as indicated by arrows 22-M and 24-M. If the valid data 32 is stored in the cache memory 18 when the response process 25-M is performed, the target 15 accesses the cache memory 18 as indicated by an arrow 33 as the response process 25-M. The valid data 32 is supplied to the initiator 14. The valid data 32 is supplied to the initiator 14 via the PCI bus 11 (transaction 35) as indicated by arrows 34 and 36. The initiator 14 acquires the valid data 37 supplied in this way.

以上のように、ターゲット15におけるデータ転送の準備が完了するまでの間(区間41)、ターゲット15は、イニシエータ14からのリード要求に対してリトライ処理を発行し、イニシエータ14は、このリトライの検出に基づいてリード要求を繰り返す。従って、この場合、区間41において、PCIバス11には、M−2個のトランザクションが発生し、これらが不要なトラフィックとなりPCIバス11を占有する。   As described above, until the preparation for data transfer in the target 15 is completed (section 41), the target 15 issues a retry process to the read request from the initiator 14, and the initiator 14 detects this retry. Repeat the read request based on Therefore, in this case, in the section 41, M-2 transactions occur on the PCI bus 11, and these become unnecessary traffic and occupy the PCI bus 11.

なお、PCIバスシステム1においては、例えば、図3に示されるように、1回のコマンドにより複数のデータを一度に転送させるバースト転送も実行可能である。この場合、上述したようなリトライ処理によるトランザクションは、最初のコマンド発行時においてのみ発生する。   In the PCI bus system 1, for example, as shown in FIG. 3, burst transfer for transferring a plurality of data at a time by one command can be executed. In this case, the transaction by the retry processing as described above occurs only when the first command is issued.

また、イニシエータの待機時間に関する情報を予め用意したターゲットを用いることにより、区間41におけるトランザクションを削減する方法もある(例えば、特許文献1参照)。この場合、ターゲットの所定のレジスタに、予めレイテンシ情報、すなわち、ターゲットが要求を受けてからデータ転送の準備が整うまでの時間に関する情報を保持させておき、イニシエータからのアクセス要求に応答して、イニシエータにその情報を供給するようにする。イニシエータは、その情報を取得すると、そのターゲットに対してPCIデータ転送を要求する場合、リトライを検出後、そのターゲットより供給されたレイテンシ情報により指定された時間待機してから転送要求を行う。すなわち、この場合、ターゲットの準備が整うまでイニシエータは、要求の繰返しを行わない。   In addition, there is a method of reducing transactions in the section 41 by using a target prepared in advance with information on the standby time of the initiator (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 until the target is ready for data transfer after receiving the request, in response to the access request from the initiator, The information is supplied to the initiator. When the initiator acquires the information, when requesting PCI data transfer to the target, the initiator waits for a 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

しかしながら、以上のようなバスシステムにおいて、図2に示されるように、イニシエータ14が発行したリード要求に対するリトライを検出した後、すぐにリード要求を再度発行する場合、イニシエータ14は、このように処理を行うことにより、ターゲット15がデータ転送の準備が整い次第すぐにデータ転送を開始させることはできるが、ターゲット15の準備が整うまでの間、上述したように不要なトラフィックをPCIバス11に発生させてしまい、実質的にその間バスを占有してしまうので、他のマスタデバイスは、その間PCIバス11を使用することができなくなってしまう場合があるという課題があった。   However, in the bus system as described above, as shown in FIG. 2, when a read request is issued again immediately after detecting a retry for the read request issued by the initiator 14, the initiator 14 performs processing in this way. , The target 15 can start data transfer as soon as it is ready for data transfer, but it generates unnecessary traffic on the PCI bus 11 as described above until the target 15 is ready. In other words, other master devices may not be able to use the PCI bus 11 during that time because the bus is substantially occupied during that time.

特に、例えば映像機器や放送局用サーバ等におけるバスシステムの場合、映像データや音声データ等の大容量のデータを頻繁に転送させる必要がある。また、このような映像機器においては、例えば外部より取り込んだ映像データ等を記録媒体に記録したり、記録媒体に記録されている映像データ等を再生し、モニタに表示したり、外部に出力したりする処理が主に行われる。従って、バスシステムにおける各データ転送は、即時性を必要とするものが多く、バスを介したデータ転送において、上述したような不要なトラフィックにより待機時間が長くなりすぎると、記録処理や再生処理等が破綻してしまう恐れがあった。   In particular, in the case of a bus system in, for example, video equipment or a broadcasting 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 in the data transfer via the bus, if the standby time becomes too long due to unnecessary traffic as described above, a recording process, a reproduction process, etc. Could collapse.

また、図3を用いて説明したようにバースト転送により大容量のデータを効率よく転送させる方法もあるが、この場合においても、最初のコマンド発行フェーズにおいて、リトライ処理による不要なトラフィックが発生してしまう。このようなバースト転送の場合、一見、その後の一連のデータ転送時にリード要求によるトランザクションが発生しないため、バスのトラフィックは軽減されているように見えるが、一連のデータ転送により、データの転送が開始されてからバスが解放されるまでの時間がより長くなるので、1回のPCIデータ転送によるバスの占有時間が長くなってしまう。すなわち、他のマスタデバイスにとっては、本来の必要なトランザクションに対する待機時間自体が長くなってしまうことになる。従って、このようにバースト転送を行う場合、他のマスタデバイスの、上述したような不要なトラフィックによる待機時間に対する許容量は、通常のデータ転送よりも少なくなってしまう。   In addition, as described with reference to FIG. 3, there is a method for efficiently transferring a large amount of data by burst transfer. However, even in this case, unnecessary traffic is generated by retry processing in the first command issue phase. End up. In the case of such a burst transfer, at first glance, since a transaction due to a read request does not occur during a subsequent series of data transfer, the bus traffic seems to be reduced, but the series of data transfer starts data transfer. Since the time from when the bus is released until the bus is released becomes longer, the bus occupation time by one PCI data transfer becomes longer. That is, for other master devices, the waiting time itself for the originally necessary transaction becomes long. Therefore, when burst transfer is performed in this way, the allowable amount of other master devices with respect to the waiting time due to unnecessary traffic as described above is smaller than that of normal data transfer.

さらに、この不要なトラフィックを回避するために、ターゲットにイニシエータの待機時間に関する情報を保持させる方法の場合、各ターゲットが、その待機時間に関する情報を予め保持しておき、マスタデバイス(イニシエータ)からのアクセス要求に対して、それをイニシエータに供給する等の処理を行うことができるようにする必要があった。一般的に、バスシステムにおいて、全てのデバイスを開発すると製造コストが増大してしまうので、既存のデバイスをターゲットとして流用することも考えられる。このような場合、そのような処理を行えない従来のデバイスをターゲットとするデータ転送処理においては、図2に示されるようなリトライ処理によるトランザクションが発生してしまう恐れがあった。   Furthermore, in order to avoid this unnecessary traffic, in the case of a method for causing the target to hold information related to the standby time of the initiator, each target holds information related to the standby time in advance so that it can be received from the master device (initiator). It was necessary to be able to perform processing such as supplying an access request to the initiator. In general, if all devices are developed in a bus system, the manufacturing cost increases. Therefore, it is possible to use existing devices as targets. In such a case, in a data transfer process targeting a conventional device that cannot perform such a process, there is a possibility that a transaction due to a retry process as shown in FIG. 2 may occur.

また、バスシステムにおいては、場合により様々なデバイスをバスに接続することが想定される。従って、このような待機時間はターゲットの性能によってのみ決定されるとは限らず、例えば、マスタデバイス(イニシエータ)の性能、PCIバスコントローラの性能、またはデバイスの接続状況などによっても変化する可能性がある。従って、このように、ターゲットがどのマスタデバイスに対しても常に同じレイテンシ情報(待機時間の指定)を供給する場合、イニシエータは、待機時間が短すぎ、ターゲットのデータ転送の準備が完了していないのに再度アクセス要求をしてしまったり(すなわち、リトライが発生したり)、待機時間が長すぎ、ターゲットのデータ転送の準備が整っているにも関わらず、不要に待機してしまったりして、データ転送効率が低下してしまう恐れもあった。   In the bus system, it is assumed that various devices are connected to the bus depending on circumstances. Therefore, such a waiting time is not always determined only by the performance of the target, and may vary depending on, for example, the performance of the master device (initiator), the performance of the PCI bus controller, or the connection status of the device. is there. Therefore, in this way, when the target always supplies the same latency information (specifying the waiting time) to any master device, the initiator is not ready for data transfer of the target because the waiting time is too short. However, it makes an access request again (ie, a retry occurs), waits too long, and waits unnecessarily even though the target is ready for data transfer. The data transfer efficiency may also be reduced.

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

本発明の情報処理装置は、データ転送を制御してデータ転送を行うデバイスであるマスタデバイスが、データ転送の開始を要求するコマンドを発行後、コマンドを再発行するまでの待機時間を制御し、マスタデバイスの待機時間として設定するマスタデバイス待機時間を計測する計測手段と、計測手段により計測されたマスタデバイス待機時間に対応する値を、マスタデバイスがデータ転送において使用するレイテンシ値として設定するレイテンシ値設定手段とを備えることを特徴とする。   The information processing apparatus of the present invention controls a waiting time until a master device, which is a device that performs data transfer by controlling data transfer, issues a command requesting the start of data transfer, and reissues the command, Latency value that sets the value corresponding to the master device waiting time measured by the measuring means that measures the master device waiting time set as the waiting time of the master device as the latency value that the master device uses in data transfer And setting means.

前記計測手段は、待機時間を制御し、マスタデバイス待機時間として、マスタデバイスのデータ転送の相手のデバイスであるターゲットがコマンドを取得してからデータ転送の準備を整えるまでの時間を計測するようにすることができる。   The measuring means controls the standby time, and measures the time from the acquisition of the command by the target, which is the partner device of the master device to the data transfer, to the preparation of the data transfer as the master device standby time. can do.

前記計測手段は、待機時間を制御し、マスタデバイスのデータ転送の相手のデバイスであるターゲットがコマンドを取得してからデータ転送の準備を整えるまでの時間よりも長いマスタデバイス待機時間を計測するようにすることができる。   The measuring means controls the standby time so as to measure a master device standby time longer than a time from when a target, which is a device to which the master device is to transfer data, acquires a command and prepares for data transfer. Can be.

前記計測手段は、待機時間を制御し、マスタデバイス待機時間として、最も短い時間となるように最適化された待機時間である最適待機時間を計測するようにすることができる。   The measuring means may control the standby time and measure an optimal standby time that is a standby time optimized to be the shortest as the master device standby time.

前記計測手段は、待機時間を制御し、待機時間の制御単位上において、最適待機時間を計測するようにすることができる。   The measuring means can control the standby time and measure the optimal standby time on the control unit of the standby time.

前記制御単位は、情報処理装置のシステムクロックに基づいた時間単位であるようにすることができる。   The control unit may be a time unit based on a system clock of the information processing apparatus.

前記計測手段は、待機時間を制御して待機時間の長さを変更しながら、マスタデバイスにデータ転送を繰返し実行させることにより、マスタデバイス待機時間を計測するようにすることができる。 The measuring means can measure the master device standby time by causing the master device to repeatedly execute data transfer while controlling the standby time to change the length of the standby time.

クロックをカウントするカウント手段をさらに備え、計測手段は、カウント手段によるクロックのカウント処理実行中の期間を待機時間とし、カウント手段にカウントさせるクロックの数を変更することによって待機時間の長さを変更しながら、マスタデバイスにデータ転送を繰返し実行させることにより、マスタデバイス待機時間を計測するようにすることができる。   Counting means for counting the clock is further provided, and the measuring means changes the length of the waiting time by changing the number of clocks to be counted by the counting means while the period during which the counting process is being performed by the counting means is set as the waiting time. However, the master device standby time can be measured by causing the master device to repeatedly execute data transfer.

前記計測手段による計測処理においてマスタデバイスが繰返し実行するデータ転送における待機時間の初期値を設定する初期待機時間設定手段をさらに備え、計測手段は、計測処理において、初期待機時間設定手段により設定された初期値を用いて、マスタデバイスに最初のデータ転送を実行させるようにすることができる。   The apparatus further comprises initial standby time setting means for setting an initial value of standby time in data transfer repeatedly executed by the master device in the measurement processing by the measurement means, and the measurement means is set by the initial standby time setting means in the measurement processing The initial value can be used to cause the master device to perform an initial data transfer.

前記計測手段は、計測処理において繰返し実行されるデータ転送において、初期待機時間設定手段により設定される初期値を待機時間の最大値とし、マスタデバイスがデータ転送を繰り返す度に、待機時間が短くなるように待機時間を再設定するようにすることができる。   In the data transfer repeatedly executed in the measurement process, the measurement unit sets the initial value set by the initial standby time setting unit as the maximum value of the standby time, and the standby time is shortened each time the master device repeats the data transfer. So that the waiting time can be reset.

前記計測手段は、待機時間が短くなるように待機時間を再設定しながら、データ転送に対応するターゲットがマスタデバイスに対して発行した、データ転送の準備が完了していないことを示す応答であるリトライを検出するまで、マスタデバイスにデータ転送を繰り返し実行させるようにすることができる。   The measurement means is a response indicating that the preparation for data transfer is not completed, issued to the master device by the target corresponding to the data transfer while resetting the standby time so that the standby time is shortened. Until the retry is detected, the master device can repeatedly execute the data transfer.

前記計測手段は、リトライを検出すると、データ転送の繰り返しを中止して、1回前のデータ転送における待機時間をマスタデバイス待機時間とするようにすることができる。   When the measurement unit detects a retry, it can stop repeating the data transfer and set the standby time in the previous data transfer as the master device standby time.

前記計測手段は、1つのマスタデバイスに対して、ターゲット毎にマスタデバイス待機時間を計測し、レイテンシ値設定手段は、計測手段により計測されたターゲット毎のマスタデバイス待機時間に対応する値を、ターゲット毎のレイテンシ値として設定するようにすることができる。   The measuring unit measures a master device standby time for each target with respect to one master device, and the latency value setting unit calculates a value corresponding to the master device standby time for each target measured by the measuring unit. It can be set as a latency value for each.

前記計測手段による計測処理において、マスタデバイスがアクセスするアクセス先アドレスを設定するアドレス設定手段をさらに備え、計測手段は、マスタデバイスが、アドレス設定手段により設定されたアクセス先アドレスに対して、データ転送の開始を要求するコマンドを発行後、コマンドを再発行するまでの待機時間を制御し、マスタデバイス待機時間を計測するようにすることができる。   In the measurement process by the measurement unit, the measurement unit further includes an address setting unit that sets an access destination address accessed by the master device, and the measurement unit transfers data to the access destination address set by the address setting unit. It is possible to control the waiting time until the command is reissued after issuing the command requesting the start of the device, and measure the master device waiting time.

前記アドレス設定手段は、1つのターゲットに対応して、互いに異なる2つのアクセス先アドレスを設定し、計測手段は、マスタデバイスが、アドレス設定手段により設定された2つのアクセス先アドレスに対して交互に実行する2つのデータ転送の両方に基づいて、マスタデバイス待機時間を計測するようにすることができる。   The address setting means sets two different access destination addresses corresponding to one target, and the measuring means alternately selects the master device for the two access destination addresses set by the address setting means. The master device waiting time can be measured based on both of the two data transfers to be performed.

前記システムバスに接続された複数のデバイスの中から、計測手段によりマスタデバイス待機時間を計測するデータ転送を行うマスタデバイスを特定するマスタデバイス特定手段をさらに備え、計測手段はマスタデバイスに特定されたマスタデバイスに対応するマスタデバイス待機時間を計測するようにすることができる。   Master device specifying means for specifying a master device for performing data transfer for measuring the master device standby time by the measuring means from among a plurality of devices connected to the system bus is further provided, and the measuring means is specified as the master device. The master device standby time corresponding to the master device can be measured.

前記計測手段による計測処理の実行を制御する計測処理実行制御手段をさらに備えるようにすることができる。   Measurement processing execution control means for controlling execution of measurement processing by the measurement means can be further provided.

前記制御手段は、計測手段がマスタデバイス待機時間を計測するデータ転送を行うデバイスを選択するデバイス選択手段と、計測手段による計測処理の開始を制御する開始制御手段とを備えるようにすることができる。   The control unit may include a device selection unit that selects a device that performs data transfer in which the measurement unit measures the master device standby time, and a start control unit that controls the start of measurement processing by the measurement unit. .

前記複数のデバイスがシステムバスを介して互いに行うデータ転送において、ターゲットがマスタデバイスに対して発行した、データ転送の準備が完了していないことを示す応答であるリトライを検出することにより、リトライの数を監視するリトライ監視手段をさらに備え、開始制御手段は、リトライ監視手段により、1回のデータ転送において、予め定められた所定の数より多くリトライを検出した場合、計測手段による計測処理を開始させるようにすることができる。   In the data transfer performed by the plurality of devices to each other via the system bus, a retry issued by the target to the master device indicating a response indicating that preparation for data transfer is not completed is detected. Retry monitoring means for monitoring the number is further provided, and the start control means starts measurement processing by the measurement means when the retry monitoring means detects more retries than a predetermined number in one data transfer. You can make it.

本発明の情報処理方法は、データ転送を制御してデータ転送を行うデバイスであるマスタデバイスが、データ転送の開始を要求するコマンドを発行後、コマンドを再発行するまでの待機時間を制御し、マスタデバイスの待機時間として設定するマスタデバイス待機時間を計測する計測ステップと、計測ステップの処理により計測されたマスタデバイス待機時間に対応する値を、マスタデバイスがデータ転送において使用するレイテンシ値として設定するレイテンシ値設定ステップとを含むことを特徴とする。   The information processing method of the present invention controls a waiting time until a master device, which is a device that controls data transfer and performs data transfer, issues a command requesting the start of data transfer and reissues the command, A measurement step for measuring the master device standby time set as the master device standby time, and a value corresponding to the master device standby time measured by the processing of the measurement step are set as a latency value used by the master device in data transfer. And a latency value setting step.

本発明のプログラムは、データ転送を制御してデータ転送を行うデバイスであるマスタデバイスが、データ転送の開始を要求するコマンドを発行後、コマンドを再発行するまでの待機時間を制御し、マスタデバイスの待機時間として設定するマスタデバイス待機時間を計測する計測ステップと、計測ステップの処理により計測されたマスタデバイス待機時間に対応する値を、マスタデバイスがデータ転送において使用するレイテンシ値として設定するレイテンシ値設定ステップとをコンピュータに実行させる。   The program of the present invention controls a waiting time until a master device, which is a device that controls data transfer and performs data transfer, issues a command requesting the start of data transfer and reissues the command. Latency value that sets the master device standby time that is set as the standby time for the master device and the value that corresponds to the master device standby time measured by the processing of the measurement step as the latency value that the master device uses for data transfer Let the computer execute the configuration steps.

本発明の情報処理装置および方法、並びにプログラムにおいては、データ転送を制御してデータ転送を行うデバイスであるマスタデバイスが、データ転送の開始を要求するコマンドを発行後、コマンドを再発行するまでの待機時間が制御され、マスタデバイス待機時間として設定されるマスタデバイス待機時間が計測され、計測されたマスタデバイス待機時間に対応する値が、マスタデバイスがデータ転送において使用するレイテンシ値として設定される。   In the information processing apparatus, method, and program according to the present invention, the master device, which is a device that controls data transfer and performs data transfer, issues a command for requesting the start of data transfer and then issues the command again. The standby time is controlled, the master device standby time set as the master device standby time is measured, and a value corresponding to the measured master device standby time is set as a latency value used by the master device in data transfer.

本発明によれば、データ転送を制御することができる。特に、例えば、アクセス回数を減少させることによりバスのトラフィックを軽減させる等して、システムバスの各デバイスがそのシステムバスをより有効に活用することができる。   According to the present invention, data transfer can be controlled. In particular, each device of the system bus can use the system bus more effectively, for example, by reducing the traffic of the bus by reducing the number of accesses.

以下に本発明の実施の形態を説明するが、請求項に記載の構成要件と、発明の実施の形態における具体例との対応関係を例示すると、次のようになる。この記載は、請求項に記載されている発明をサポートする具体例が、発明の実施の形態に記載されていることを確認するためのものである。従って、発明の実施の形態中には記載されているが、構成要件に対応するものとして、ここには記載されていない具体例があったとしても、そのことは、その具体例が、その構成要件に対応するものではないことを意味するものではない。逆に、具体例が構成要件に対応するものとしてここに記載されていたとしても、そのことは、その具体例が、その構成要件以外の構成要件には対応しないものであることを意味するものでもない。   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.

本発明においては、複数のデバイス(例えば、図4のPCIデバイス111)が接続されたシステムバス(例えば、図4のPCIバス110)を有し、前記複数のデバイスが前記システムバスを介して互いにデータ転送(例えば、図4のPCIデータ転送112)を行う情報処理装置(例えば、図4の画像処理装置100)が提供される。この情報処理装置では、データ転送を制御してデータ転送を行うデバイスであるマスタデバイス(例えば、図4のイニシエータ113)が、データ転送の開始を要求するコマンド(例えば、図14のリード要求321−1)を発行後、コマンド(例えば、図14のリード要求321−2)を再発行するまでの待機時間(例えば、図14の区間341)を制御し、マスタデバイスの待機時間として設定するマスタデバイス待機時間(例えば、図19の区間411)を計測する計測手段(例えば、図11のステップS61乃至ステップS70、並びに図12のステップS81乃至ステップS89の処理を実行する図14の計測処理部131)と、計測手段により計測されたマスタデバイス待機時間に対応する値を、マスタデバイスがデータ転送において使用するレイテンシ値(例えば、図6のレイテンシ値283)として設定するレイテンシ値設定手段(例えば、図13のステップS92またはステップS95の処理を実行する図14の計測処理部131)とを備える。   The present invention has a system bus (for example, PCI bus 110 in FIG. 4) to which a plurality of devices (for example, PCI device 111 in FIG. 4) are connected, and the plurality of devices are connected to each other via the system bus. An information processing apparatus (for example, the image processing apparatus 100 of FIG. 4) that performs data transfer (for example, the PCI data transfer 112 of FIG. 4) is provided. In this information processing apparatus, a master device (for example, the initiator 113 in FIG. 4) that controls data transfer and performs data transfer requests a command (for example, a read request 321-in FIG. 14) that requests the start of data transfer. 1) After issuing 1), the master device that controls the standby time (eg, section 341 in FIG. 14) until the command (eg, read request 321-2 in FIG. 14) is reissued and is set as the standby time of the master device Measuring means for measuring the waiting time (for example, the section 411 in FIG. 19) (for example, the measurement processing unit 131 in FIG. 14 that executes the processes in steps S61 to S70 in FIG. 11 and steps S81 to S89 in FIG. 12). And the value corresponding to the master device standby time measured by the measuring means Latency values have been used (e.g., latency value 283 in FIG. 6) and a latency value setting means for setting as a (e.g., measurement processing unit 131 in FIG. 14 for executing the processing of step S92 or step S95 in FIG. 13).

前記計測手段は、待機時間を制御し、マスタデバイス待機時間として、マスタデバイスのデータ転送の相手のデバイスであるターゲット(例えば、図4のターゲット114)がコマンドを取得してからデータ転送の準備を整えるまでの時間(例えば、図14の時刻T1から時刻T2までの時間)を計測するようにすることができる。   The measuring means controls the standby time, and prepares for the data transfer after the target (for example, the target 114 in FIG. 4), which is the device that is the data transfer partner of the master device, acquires the command as the master device standby time. The time until adjustment (for example, the time from time T1 to time T2 in FIG. 14) can be measured.

前記計測手段は、待機時間を制御し、マスタデバイスのデータ転送の相手のデバイスであるターゲット(例えば、図4のターゲット114)がコマンドを取得してからデータ転送の準備を整えるまでの時間(例えば、図14の時刻T1から時刻T2までの時間)よりも長いマスタデバイス待機時間(例えば、図19の区間411)を計測するようにすることができる。   The measuring means controls the standby time, and the time from when the target (for example, the target 114 in FIG. 4), which is the device to which the master device transfers data, obtains the command until preparation for data transfer is completed (for example, The master device standby time (for example, section 411 in FIG. 19) longer than the time T1 to time T2 in FIG. 14 can be measured.

前記計測手段は、待機時間を制御し、マスタデバイス待機時間として、最も短い時間となるように最適化された待機時間である最適待機時間(例えば、図19の区間411)を計測するようにすることができる。   The measurement means controls the standby time, and measures the optimum standby time (for example, section 411 in FIG. 19) that is the standby time optimized to be the shortest time as the master device standby time. be able to.

前記計測手段は、待機時間を制御し、待機時間の制御単位上(例えば、図17の区間361A)において、最適待機時間を計測するようにすることができる。   The measuring means controls the standby time, and can measure the optimal standby time on the control unit of the standby time (for example, the section 361A in FIG. 17).

前記制御単位は、情報処理装置のシステムクロック(例えば、図15のCLK)に基づいた時間単位であるようにすることができる。   The control unit may be a time unit based on a system clock (for example, CLK in FIG. 15) of the information processing apparatus.

前記計測手段は、待機時間を制御して待機時間の長さを変更しながら(例えば、図11のステップS69または図11のステップS88)、マスタデバイスにデータ転送を繰返し実行させる(例えば、図11のステップS62乃至ステップS68、または、図12のステップS81乃至ステップS87)ことにより、マスタデバイス待機時間を計測するようにすることができる。   The measurement unit controls the standby time to change the length of the standby time (for example, step S69 in FIG. 11 or step S88 in FIG. 11), and causes the master device to repeatedly execute data transfer (for example, FIG. 11). The master device standby time can be measured by performing steps S62 to S68 of FIG. 12 or steps S81 to S87 of FIG.

クロックをカウントするカウント手段(例えば、図6のアウェイタイマ255)をさらに備え、計測手段は、カウント手段によるクロックのカウント処理実行中の期間を待機時間とし、カウント手段にカウントさせるクロックの数(例えば、図6のアウェイタイマ値285)を変更することによって待機時間の長さを変更しながら、マスタデバイスにデータ転送を繰返し実行させることにより、マスタデバイス待機時間を計測するようにすることができる。   Counting means for counting clocks (for example, the away timer 255 in FIG. 6) is further provided, and the measuring means sets the number of clocks to be counted by the counting means (for example, the counting time as a waiting time) The master device standby time can be measured by causing the master device to repeatedly perform data transfer while changing the length of the standby time by changing the away timer value 285) of FIG.

前記計測手段による計測処理においてマスタデバイスが繰返し実行するデータ転送における待機時間の初期値(例えば、図6の初期アウェイ値284)を設定する初期待機時間設定手段(例えば、図5の初期アウェイ値設定部204)をさらに備え、計測手段は、計測処理において、初期待機時間設定手段により設定された初期値を用いて、マスタデバイスに最初のデータ転送を実行させるようにすることができる。   Initial waiting time setting means (for example, initial away value setting in FIG. 5) for setting an initial value (for example, initial away value 284 in FIG. 6) of waiting time in data transfer repeatedly executed by the master device in the measurement processing by the measuring means. Unit 204), and the measurement means can cause the master device to execute the first data transfer in the measurement process using the initial value set by the initial standby time setting means.

前記計測手段は、計測処理において繰返し実行されるデータ転送において、初期待機時間設定手段により設定される初期値を待機時間の最大値とし、マスタデバイスがデータ転送を繰り返す度に、待機時間が短くなるように待機時間を再設定する(例えば、図11のステップS69または図12のステップS88)ようにすることができる。   In the data transfer repeatedly executed in the measurement process, the measurement unit sets the initial value set by the initial standby time setting unit as the maximum value of the standby time, and the standby time is shortened each time the master device repeats the data transfer. Thus, the standby time can be reset (for example, step S69 in FIG. 11 or step S88 in FIG. 12).

前記計測手段は、待機時間が短くなるように待機時間を再設定しながら、データ転送に対応するターゲットがマスタデバイスに対して発行した、データ転送の準備が完了していないことを示す応答であるリトライ(例えば、図14のリトライ330−1)を検出するまで、マスタデバイスにデータ転送を繰り返し実行させる(例えば、図11のステップS67または図12のステップS86)ようにすることができる。   The measurement means is a response indicating that the preparation for data transfer is not completed, issued to the master device by the target corresponding to the data transfer while resetting the standby time so that the standby time is shortened. Until the retry (for example, retry 330-1 in FIG. 14) is detected, the master device can repeatedly execute the data transfer (for example, step S67 in FIG. 11 or step S86 in FIG. 12).

前記計測手段は、リトライを検出すると、データ転送の繰り返しを中止して、1回前のデータ転送における待機時間をマスタデバイス待機時間とする(例えば、図13のステップS91)ようにすることができる。   When the measurement unit detects a retry, it can stop repeating the data transfer and set the standby time in the previous data transfer as the master device standby time (for example, step S91 in FIG. 13). .

前記計測手段は、1つのマスタデバイスに対して、ターゲット毎にマスタデバイス待機時間を計測し、レイテンシ値設定手段は、計測手段により計測されたターゲット毎のマスタデバイス待機時間に対応する値を、ターゲット毎のレイテンシ値(例えば、図6のターゲット別レジスタ空間261−1乃至261−3のそれぞれのレイテンシ値レジスタ273にセットされたレイテンシ値283)として設定するようにすることができる。   The measuring unit measures a master device standby time for each target with respect to one master device, and the latency value setting unit calculates a value corresponding to the master device standby time for each target measured by the measuring unit. Each latency value (for example, the latency value 283 set in each latency value register 273 of the target-specific register spaces 261-1 to 261-3 in FIG. 6) may be set.

前記計測手段による計測処理において、マスタデバイスがアクセスするアクセス先アドレス(例えば、図5のアドレスA221またはアドレスB222)を設定するアドレス設定手段(例えば、図5のアドレス設定部202)をさらに備え、計測手段は、マスタデバイスが、アドレス設定手段により設定されたアクセス先アドレスに対して、データ転送の開始を要求するコマンドを発行後、コマンドを再発行するまでの待機時間を制御し、マスタデバイス待機時間を計測するようにすることができる。   In the measurement process by the measurement unit, the measurement unit further includes an address setting unit (for example, the address setting unit 202 in FIG. 5) for setting an access destination address (for example, the address A221 or the address B222 in FIG. 5) accessed by the master device. The means controls the waiting time until the master device issues a command for requesting the start of data transfer to the access destination address set by the address setting means and then issues the command again. Can be measured.

前記アドレス設定手段は、1つのターゲットに対応して、互いに異なる2つのアクセス先アドレス(例えば、図5のアドレスA221およびアドレスB222)を設定し、計測手段は、マスタデバイスが、アドレス設定手段により設定された2つのアクセス先アドレスに対して交互に実行する2つのデータ転送の両方に基づいて、マスタデバイス待機時間を計測するようにすることができる。   The address setting means sets two different access destination addresses (for example, address A221 and address B222 in FIG. 5) corresponding to one target, and the measuring means is set by the master device by the address setting means. The master device waiting time can be measured based on both of the two data transfers executed alternately with respect to the two accessed addresses.

前記システムバスに接続された複数のデバイスの中から、計測手段によりマスタデバイス待機時間を計測するデータ転送を行うマスタデバイスを特定するマスタデバイス特定手段(例えば、図5のマスタ特定部203)をさらに備え、計測手段はマスタデバイスに特定されたマスタデバイスに対応するマスタデバイス待機時間を計測するようにすることができる。   Master device specifying means (for example, master specifying unit 203 in FIG. 5) for specifying a master device for performing data transfer for measuring the master device standby time by the measuring means from among the plurality of devices connected to the system bus. The measuring means may measure a master device standby time corresponding to the master device specified as the master device.

前記計測手段による計測処理の実行を制御する計測処理実行制御手段(例えば、図5の計測処理実行制御部206)をさらに備えるようにすることができる。   A measurement process execution control unit (for example, the measurement process execution control unit 206 in FIG. 5) that controls execution of the measurement process by the measurement unit may be further provided.

前記制御手段は、計測手段がマスタデバイス待機時間を計測するデータ転送を行うデバイスを選択するデバイス選択手段(例えば、図9のステップS26およびステップS27の処理を実行する図5の計測処理実行制御部206)と、計測手段による計測処理の開始を制御する開始制御手段(例えば、例えば、図9のステップS24の処理を実行する図5の計測処理実行制御部206)とを備えるようにすることができる。   The control means is a device selection means for selecting a device that performs data transfer in which the measurement means measures the master device standby time (for example, the measurement process execution control unit in FIG. 5 that executes the processes in steps S26 and S27 in FIG. 9). 206) and start control means for controlling the start of the measurement process by the measurement means (for example, the measurement process execution control unit 206 in FIG. 5 that executes the process in step S24 in FIG. 9). it can.

前記複数のデバイスがシステムバスを介して互いに行うデータ転送において、ターゲットがマスタデバイスに対して発行した、データ転送の準備が完了していないことを示す応答であるリトライ(例えば、図14のリトライ330−1)を検出することにより、リトライの数を監視するリトライ監視手段(例えば、図21のリトライ監視部421)をさらに備え、開始制御手段は、リトライ監視手段により、1回のデータ転送において、予め定められた所定の数より多くリトライを検出した場合、計測手段による計測処理を開始させる(例えば、図22のステップS135およびステップS136)ようにすることができる。   In data transfer performed by the plurality of devices to each other via the system bus, a retry issued by the target to the master device indicating that the preparation for data transfer is not completed (for example, retry 330 in FIG. 14). -1) is detected, and further includes a retry monitoring unit (for example, the retry monitoring unit 421 in FIG. 21) for monitoring the number of retries, and the start control unit performs a single data transfer by the retry monitoring unit. When more retries are detected than a predetermined number, a measurement process by the measurement unit can be started (for example, step S135 and step S136 in FIG. 22).

本発明においては、複数のデバイス(例えば、図4のPCIデバイス111)が接続されたシステムバス(例えば、図4のPCIバス110)を有し、前記複数のデバイスが前記システムバスを介して互いにデータ転送(例えば、図4のPCIデータ転送112)を行う情報処理装置(例えば、図4の画像処理装置100)の情報処理方法が提供される。この情報処理方法においては、データ転送を制御してデータ転送を行うデバイスであるマスタデバイス(例えば、図4のイニシエータ113)が、データ転送の開始を要求するコマンド(例えば、図14のリード要求321−1)を発行後、コマンド(例えば、図14のリード要求321−2)を再発行するまでの待機時間(例えば、図14の区間341)を制御し、マスタデバイスの待機時間として設定するマスタデバイス待機時間(例えば、図19の区間411)を計測する計測ステップ(例えば、図11のステップS61乃至ステップS70、並びに図12のステップS81乃至ステップS89)と、計測ステップの処理により計測されたマスタデバイス待機時間に対応する値を、マスタデバイスがデータ転送において使用するレイテンシ値(例えば、図6のレイテンシ値283)として設定するレイテンシ値設定ステップ(例えば、図13のステップS92またはステップS95)とを含む。   The present invention has a system bus (for example, PCI bus 110 in FIG. 4) to which a plurality of devices (for example, PCI device 111 in FIG. 4) are connected, and the plurality of devices are connected to each other via the system bus. An information processing method of an information processing apparatus (for example, the image processing apparatus 100 of FIG. 4) that performs data transfer (for example, the PCI data transfer 112 of FIG. 4) is provided. In this information processing method, a master device (for example, the initiator 113 in FIG. 4) that controls data transfer and performs data transfer requests a command (for example, a read request 321 in FIG. 14) that requests the start of data transfer. -1) is issued, and a standby time (for example, section 341 in FIG. 14) until a command (for example, read request 321-2 in FIG. 14) is reissued is controlled and set as a standby time of the master device. A measurement step (for example, step S61 to step S70 in FIG. 11 and step S81 to step S89 in FIG. 12) for measuring the device standby time (for example, section 411 in FIG. 19), and the master measured by the processing of the measurement step The value corresponding to the device wait time is the rate that the master device uses for data transfer. Shi value (e.g., latency value 283 in FIG. 6) and a latency value setting step of setting as a (e.g., step S92 or step S95 in FIG. 13).

本発明においては、複数のデバイス(例えば、図4のPCIデバイス111)が接続されたシステムバス(例えば、図4のPCIバス110)を有し、前記複数のデバイスが前記システムバスを介して互いにデータ転送(例えば、図4のPCIデータ転送112)を行う処理を、コンピュータ(例えば、図4の画像処理装置100)に行わせるプログラムが提供される。このプログラムは、データ転送を制御してデータ転送を行うデバイスであるマスタデバイス(例えば、図4のイニシエータ113)が、データ転送の開始を要求するコマンド(例えば、図14のリード要求321−1)を発行後、コマンド(例えば、図14のリード要求321−2)を再発行するまでの待機時間(例えば、図14の区間341)を制御し、マスタデバイスの待機時間として設定するマスタデバイス待機時間(例えば、図19の区間411)を計測する計測ステップ(例えば、図11のステップS61乃至ステップS70、並びに図12のステップS81乃至ステップS89)と、計測ステップの処理により計測されたマスタデバイス待機時間に対応する値を、マスタデバイスがデータ転送において使用するレイテンシ値(例えば、図6のレイテンシ値283)として設定するレイテンシ値設定ステップ(例えば、図13のステップS92またはステップS95)とを含む。   The present invention has a system bus (for example, PCI bus 110 in FIG. 4) to which a plurality of devices (for example, PCI device 111 in FIG. 4) are connected, and the plurality of devices are connected to each other via the system bus. A program for causing a computer (for example, the image processing apparatus 100 in FIG. 4) to perform a process for performing data transfer (for example, the PCI data transfer 112 in FIG. 4) is provided. In this program, a master device (for example, the initiator 113 in FIG. 4) that controls data transfer and performs data transfer requests a command (for example, a read request 321-1 in FIG. 14) to request the start of data transfer. Device standby time to control the standby time (for example, section 341 in FIG. 14) until the command (for example, read request 321-2 in FIG. 14) is reissued and set as the standby time of the master device The master device standby time measured by the measurement step (for example, step S61 to step S70 in FIG. 11 and step S81 to step S89 in FIG. 12) for measuring (for example, the section 411 in FIG. 19) and the process of the measurement step. The latency value used by the master device for data transfer (example If, and a latency value setting step of setting a latency value 283 in FIG. 6) (e.g., step S92 or step S95 in FIG. 13).

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

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

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

PCIバス110は、例えば、バス幅(1回の転送で送れるデータ量)が32ビット、動作周波数(1秒あたりの転送回数)が33MHz(メガヘルツ)、最大データ転送速度が133MB/s(メガバイトパーセカンド)のバスである。   For example, the PCI bus 110 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バス110には、PCIデバイス111−1乃至PCIデバイス111−Nが接続されている。なお、以下において、PCIデバイス111−1乃至PCIデバイス111−Nの各PCIデバイスを区別する必要のない場合は、PCIデバイス111と称する。また、図4においてPCIデバイス111は、PCIバス110に両矢印により接続されているが、実際には、複数の信号線、電源、およびグランド等により接続される。PCIデバイス111としては、PCIバス110を介してデータ転送が相互に可能な様々なデバイスが適用される。例えば、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デバイス111としてPCIバス110に接続されるようにしてもよい。   PCI devices 111-1 to 111 -N are connected to the PCI bus 110. In the following, when there is no need to distinguish between the PCI devices 111-1 to 111 -N, they are referred to as PCI devices 111. In FIG. 4, the PCI device 111 is connected to the PCI bus 110 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 111, various devices that can mutually transfer data via the PCI bus 110 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 110 as the PCI device 111.

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

また、1つのPCIデータ転送において、マスタとして動作するPCIデバイス111は1つしか存在せず、このときのマスタをイニシエータと称する。すなわち、1つのPCIデータ転送において、イニシエータはマスタとしてデータ転送を制御し、他のターゲットと通信を行い、データの授受などを行う。なお、マスタデバイスはターゲットとして動作し、他のマスタデバイスとPCIデータ転送を行う場合がある。このときのPCIデータ転送におけるイニシエータは他のマスタデバイスとなる。   In one PCI data transfer, there is only one PCI device 111 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.

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

ターゲット114は、PCIバス110に接続されるとともに、ローカルバス120を介してローカルメモリ121に接続されており、ローカルメモリ121のデータの入出力を制御するデバイスである。ターゲット114は、内部にキャッシュメモリ122を有している。このキャッシュメモリ122は、データ転送等に用いられ、例えば、PCIバス110とローカルバス120のデータ転送速度の違いを吸収させるため等に用いられる。例えば、イニシエータ113がPCIデータ転送112により、ターゲット114に対してローカルメモリ121のデータのリード要求を行うと、ターゲット114は、まず、ローカルバス120を介してローカルメモリ121にアクセスし、要求されたデータを読み出し、それをキャッシュメモリ122に保持させる。そして、転送させるデータをキャッシュメモリ122に保持させ、データ転送の準備が整うと、ターゲット114は、それを、PCIバス110を介してイニシエータ113に供給する。   The target 114 is a device that is connected to the PCI bus 110 and is connected to the local memory 121 via the local bus 120 and controls input / output of data in the local memory 121. The target 114 has a cache memory 122 inside. The cache memory 122 is used for data transfer and the like, for example, to absorb a difference in data transfer speed between the PCI bus 110 and the local bus 120. For example, when the initiator 113 requests the target 114 to read data in the local memory 121 by the PCI data transfer 112, the target 114 first accesses the local memory 121 via the local bus 120 and is requested. Data is read and held in the cache memory 122. Then, the data to be transferred is held in the cache memory 122, and when preparation for data transfer is completed, the target 114 supplies it to the initiator 113 via the PCI bus 110.

イニシエータ113は、ターゲット114に対するPCIデータ転送112において、コマンドを出力してからの最適な待機時間を計測する計測処理部131を有している。具体的には後述するが、計測処理部131は、CPU141に制御され、イニシエータ113がPCIデータ転送を行う全てのターゲットに対して、待機する時間であるマスタデバイス待機時間として最適な待機時間(最適待機時間)をそれぞれ計測する。イニシエータ113は、計測処理部131において計測された待機時間を用いてPCIデータ転送112を行うことにより、PCIバス110の有効利用を実現する。   The initiator 113 includes a measurement processing unit 131 that measures an optimum waiting time after outputting a command in the PCI data transfer 112 to the target 114. As will be described in detail later, the measurement processing unit 131 is controlled by the CPU 141, and an optimum standby time (optimal time) as a master device standby time that is a time for which the initiator 113 waits for all targets to which PCI data transfer is performed. (Waiting time) is measured. The initiator 113 implements effective use of the PCI bus 110 by performing the PCI data transfer 112 using the standby time measured by the measurement processing unit 131.

PCIバス110には、また、画像処理装置100全体を制御するCPU(Central Processing Unit)141も接続されている。CPU141は、ホストバス160を介してメインメモリ161にアクセスし、メインメモリ161にロードされたプログラムに従って各種の処理を実行し、画像処理装置100の各部の動作を制御する。メインメモリ161にはまた、CPU141が各種の処理を実行する上において必要なデータなども適宜記憶される。また、CPU141は、内部にホストPCIブリッジ151を有しており、CPU141とメインメモリ161を接続するホストバス160と、PCIバス110とのブリッジとしても動作する。さらに、CPU141は、各マスタデバイスがコマンド出力後に待機するマスタデバイス待機時間として最適な待機時間(最適待機時間)を設定するための処理を制御するレイテンシ値設定制御部152を有している。CPU141は、レイテンシ値設定制御部152を用いて、PCIバス110においてデータ転送処理が開始される前に、各マスタデバイスに対して、各ターゲットに対する待機時間(レイテンシ値)を設定させる。   A CPU (Central Processing Unit) 141 that controls the entire image processing apparatus 100 is also connected to the PCI bus 110. The CPU 141 accesses the main memory 161 via the host bus 160, executes various processes according to a program loaded in the main memory 161, and controls the operation of each unit of the image processing apparatus 100. The main memory 161 also appropriately stores data necessary for the CPU 141 to execute various processes. The CPU 141 has a host PCI bridge 151 therein, and also operates as a bridge between the PCI bus 110 and the host bus 160 that connects the CPU 141 and the main memory 161. Further, the CPU 141 includes a latency value setting control unit 152 that controls processing for setting an optimal standby time (optimal standby time) as a master device standby time that each master device waits after outputting a command. The CPU 141 uses the latency value setting control unit 152 to cause each master device to set a standby time (latency value) for each target before starting the data transfer process on the PCI bus 110.

また、図示は省略するが、CPU141のホストPCIブリッジ151は、PCIバス110におけるデータ転送の制御を行うPCIバスコントローラや、データ転送の制御権の割り当てを行うアービタ等も含む。   Although not shown, the host PCI bridge 151 of the CPU 141 includes a PCI bus controller that controls data transfer in the PCI bus 110, an arbiter that assigns control rights for data transfer, and the like.

CPU141には、さらに、CPU141が実行するプログラムやデータが予め記憶されたROM(Read Only Memory)171、書き換え可能なフラッシュメモリ等により構成され、CPU141が実行するプログラムやデータが記憶される記憶部172、および、CPU141に制御されるなどして、装着されたリムーバブルメディア174に記憶されているプログラムやデータを読み出し、CPU141に供給するドライブ173が接続されている。さらに、キーボード等の入力デバイスやモニタ等の出力デバイスのように上述した以外のデバイスがCPU141に接続されるようにしてももちろんよい。   The CPU 141 further includes a ROM (Read Only Memory) 171 in which programs and data executed by the CPU 141 are stored in advance, a rewritable flash memory, and the like, and a storage unit 172 in which programs and data executed by the CPU 141 are stored. Also connected is a drive 173 that reads the program and data stored in the attached removable medium 174 and supplies it to the CPU 141 under the control of the CPU 141. Further, other devices such as an input device such as a keyboard and an output device such as a monitor may be connected to the CPU 141 as a matter of course.

図5は、図4のCPU141の内部の詳細な構成例を示すブロック図である。なお、図5において、CPU141は、イニシエータ113のレイテンシ値の設定に関する処理部についてのみ示されている。   FIG. 5 is a block diagram showing an example of a detailed configuration inside the CPU 141 of FIG. In FIG. 5, the CPU 141 is shown only for the processing unit related to the setting of the latency value of the initiator 113.

CPU141は、ホストPCIブリッジ151およびレイテンシ値設定制御部152の他に、PCIコンフィギュレーション処理部201、アドレス設定部202、およびマスタ特定部203を有している。   The CPU 141 includes a PCI configuration processing unit 201, an address setting unit 202, and a master specifying unit 203 in addition to the host PCI bridge 151 and the latency value setting control unit 152.

PCIコンフィギュレーション処理部201は、ホストPCIブリッジ151を介して各PCIデバイス111にアクセスし、各PCIデバイスに対して、メモリアドレス、I/Oアドレス、割り込みレベル、およびDMA(Direct Memory Access transfer)チャネル等のシステムリソースの割り当て、ドライバのロード/アンロード、および各種パラメータの設定等を行うコンフィギュレーション処理を行う。そして、PCIコンフィギュレーション処理部201は、その処理結果をアドレス設定部202に供給する。   The PCI configuration processing unit 201 accesses each PCI device 111 via the host PCI bridge 151, and for each PCI device, a memory address, an I / O address, an interrupt level, and a DMA (Direct Memory Access transfer) channel Configuration processing for assigning system resources such as, loading / unloading drivers, setting various parameters, and the like is performed. Then, the PCI configuration processing unit 201 supplies the processing result to the address setting unit 202.

アドレス設定部202は、レイテンシ値設定処理における各ターゲットのアクセス先アドレスを、PCIコンフィギュレーション処理部201が割り当てたアドレスに基づいて設定し、それをレイテンシ値設定制御部152のレイテンシ値設定用アクセス先アドレス保持部207に供給し、保持させる。また、アドレス設定部202は、PCIコンフィギュレーション処理部201より供給されたコンフィギュレーション処理結果をマスタ特定部203に供給する。   The address setting unit 202 sets the access destination address of each target in the latency value setting process based on the address assigned by the PCI configuration processing unit 201, and sets it as the latency value setting access destination of the latency value setting control unit 152. This is supplied to the address holding unit 207 and held. The address setting unit 202 supplies the configuration processing result supplied from the PCI configuration processing unit 201 to the master specifying unit 203.

マスタ特定部203は、PCIコンフィギュレーション処理部201によるコンフィギュレーション処理結果に基づいて、PCIバス110に接続されたPCIデバイス111の中からマスタデバイスを特定する。また、マスタ特定部203は、その特定したマスタデバイスに関する情報をレイテンシ値設定制御部152の初期アウェイ値設定部204に供給する。   The master specifying unit 203 specifies a master device from the PCI devices 111 connected to the PCI bus 110 based on the configuration processing result by the PCI configuration processing unit 201. In addition, the master specifying unit 203 supplies information regarding the specified master device to the initial away value setting unit 204 of the latency value setting control unit 152.

レイテンシ値設定制御部152は、内部に、初期アウェイ値設定部204、アドレスセット処理部205、計測処理実行制御部206、およびレイテンシ値設定用アクセス先アドレス保持部207を有している。   The latency value setting control unit 152 includes an initial away value setting unit 204, an address set processing unit 205, a measurement process execution control unit 206, and a latency value setting access destination address holding unit 207.

初期アウェイ値設定部204は、各マスタデバイスが各ターゲットに対する待機時間を計測する際に利用する、待機時間の初期値である初期アウェイ値を設定する処理部であり、マスタ特定部203において特定されたマスタデバイスに対して、ホストPCIブリッジ151を介して、予め保持している初期アウェイ値211を供給し、設定させる。   The initial away value setting unit 204 is a processing unit that sets an initial away value that is an initial value of the standby time used when each master device measures the standby time for each target, and is specified by the master specifying unit 203. The initial away value 211 held in advance is supplied to the master device via the host PCI bridge 151 and set.

アドレスセット処理部205は、アドレス設定部202により設定され、レイテンシ値設定用アクセス先アドレス保持部207に保持されているレイテンシ値設定用アクセス先アドレスを取得し、マスタ特定部205により特定されたマスタデバイスに対して、それぞれ対応するターゲットのレイテンシ値設定用アクセス先アドレスを、ホストPCIブリッジ151を介して供給する。   The address set processing unit 205 acquires the latency value setting access destination address set by the address setting unit 202 and held in the latency value setting access destination address holding unit 207, and the master specified by the master specifying unit 205 The access target address for setting the latency value of the corresponding target is supplied to the device via the host PCI bridge 151.

計測処理実行制御部206は、ホストPCIブリッジ151を介して各マスタデバイスにアクセスし、各マスタデバイスが有する計測処理部131に対して、ターゲットに対する計測処理を実行させるように制御する。なお、計測処理実行制御部206は、内部に計測処理の完了を示す完了フラグ212を有しており、マスタデバイス(イニシエータ)の計測処理部131が計測処理を終了すると、完了フラグ212をオンにセット(アサート)する。計測処理実行制御部206は、この完了フラグ212の値によりマスタデバイスによる計測処理が終了したか否かを判定する。   The measurement processing execution control unit 206 accesses each master device via the host PCI bridge 151 and controls the measurement processing unit 131 included in each master device to execute measurement processing on the target. The measurement process execution control unit 206 includes a completion flag 212 indicating the completion of the measurement process. When the measurement process unit 131 of the master device (initiator) ends the measurement process, the completion flag 212 is turned on. Set (assert). The measurement process execution control unit 206 determines whether or not the measurement process by the master device is completed based on the value of the completion flag 212.

レイテンシ値設定用アクセス先アドレス保持部207は、図5に示されるように、アドレス設定部202により設定された各ターゲットに対するレイテンシ値設定用アクセス先アドレスを、レイテンシ値設定用アクセス先アドレス213−1、213−2、213−3、・・・のように、ターゲット毎に保持し、必要に応じてそれらのアドレスをアドレスセット処理部205に供給する。なお、アドレス設定部202は、後述するように、各ターゲットに対してレイテンシ値設定用アクセス先アドレスとして2つのアドレス(アドレスA221およびアドレスB222)を設定する。レイテンシ値設定用アクセス先アドレス保持部207は、それらの2つのアドレス(アドレスAおよびアドレスB)をターゲット毎に保持する。   As shown in FIG. 5, the latency value setting access destination address holding unit 207 sets the latency value setting access destination address for each target set by the address setting unit 202 as the latency value setting access destination address 213-1. .., 213-2, 213-3,..., And the addresses are supplied to the address set processing unit 205 as necessary. The address setting unit 202 sets two addresses (address A221 and address B222) as latency value setting access destination addresses for each target, as will be described later. The latency value setting access destination address holding unit 207 holds these two addresses (address A and address B) for each target.

図6は、図4のイニシエータ113の、内部の詳細な構成例を示すブロック図である。なお、図6において、イニシエータ113は、PCIデバイス111としての通常の処理に関するブロックについては省略されており、レイテンシ値の設定に関する処理部についてのみ示されている。   FIG. 6 is a block diagram illustrating a detailed internal configuration example of the initiator 113 in FIG. In FIG. 6, the initiator 113 is omitted for blocks related to normal processing as the PCI device 111, and only the processing unit related to setting of the latency value is shown.

図6において、イニシエータ113は、上述した計測処理部131の他に、PCIバス110とイニシエータ113の内部とのインタフェース処理を行うPCIインタフェース処理部251、イニシエータ113の各部の動作を制御するデバイス制御部252、計測処理部131による待機時間の計測処理に用いられる初期アウェイ値をレジスタにセットする初期アウェイ値セット処理部253、計測処理部131による待機時間の計測処理に用いられるターゲットのレイテンシ値設定用アクセス先アドレスをレジスタにセットするアドレスセット処理部254、計測処理部131に制御され、待機時間(レイテンシ値)の計測に利用されるタイマであるアウェイタイマ255、および各種のレジスタ等の情報を保持するRAM(Random Access Memory)256を有している。   6, in addition to the above-described measurement processing unit 131, the initiator 113 includes a PCI interface processing unit 251 that performs interface processing between the PCI bus 110 and the inside of the initiator 113, and a device control unit that controls the operation of each unit of the initiator 113. 252, an initial away value setting processing unit 253 that sets an initial away value used in the standby time measurement process by the measurement processing unit 131 in a register, and a target latency value setting used in the standby time measurement process by the measurement processing unit 131 The information is controlled by the address set processing unit 254 and the measurement processing unit 131 for setting the access destination address in the register, and stores information such as an away timer 255 that is a timer used for measuring a waiting time (latency value), and various registers. RAM (Random Access Memory) 256 doing.

PCIデバイス251は、PCIバス110とのインタフェース処理を行う処理部であり、PCIバス110に接続されるとともに、デバイス制御部252、初期アウェイ値セット処理部253、アドレスセット処理部254、および計測処理部131等と接続されている。   The PCI device 251 is a processing unit that performs interface processing with the PCI bus 110, and is connected to the PCI bus 110, and also includes a device control unit 252, an initial away value set processing unit 253, an address set processing unit 254, and measurement processing. Connected to the unit 131 and the like.

デバイス制御部252は、イニシエータ113の各部の動作の制御に関する処理を行う。例えば、デバイス制御部252は、RAM256にロードされたプログラムやデータに基づいて、初期アウェイ値セット処理部253、アドレスセット処理部254、アウェイタイマ255、RAM256、および計測処理部131等の各部の動作タイミングや処理手順を制御したり、CPU141等より供給されたプログラムやデータをRAM256にロードしたり、RAM256に保持されているプログラムやデータをアンロードしたりする。   The device control unit 252 performs processing related to operation control of each unit of the initiator 113. For example, the device control unit 252 operates the respective units such as the initial away value set processing unit 253, the address set processing unit 254, the away timer 255, the RAM 256, and the measurement processing unit 131 based on programs and data loaded in the RAM 256. The timing and processing procedure are controlled, the program and data supplied from the CPU 141 and the like are loaded into the RAM 256, and the program and data held in the RAM 256 are unloaded.

初期アウェイ値セット処理部253は、CPU141の初期アウェイ値設定部204より供給された初期アウェイ値を、PCIインタフェース処理部251を介して取得すると、それをRAM256に設けられた初期アウェイ値レジスタ274に供給し、初期アウェイ値284をセットする。   When the initial away value set processing unit 253 acquires the initial away value supplied from the initial away value setting unit 204 of the CPU 141 via the PCI interface processing unit 251, the initial away value set processing unit 253 stores the initial away value in the initial away value register 274 provided in the RAM 256. And set an initial away value 284.

アドレスセット処理部254は、CPU141のアドレスセット処理部205より供給されるレイテンシ値設定用アクセス先アドレス(アドレスA221およびアドレスB222)を、PCIインタフェース処理部251を介して取得すると、それらをRAM256に設けられたターゲット別レジスタ空間にセットする。   When the address set processing unit 254 obtains the latency value setting access destination addresses (address A221 and address B222) supplied from the address set processing unit 205 of the CPU 141 via the PCI interface processing unit 251, they are provided in the RAM 256. To the specified register space for each target.

アウェイタイマ255は、計測処理部131に制御され、計測制御部131にセットされたアウェイタイマ値分のクロックをカウントし、カウントが終了するとそれを計測制御部131に通知する。   The away timer 255 is controlled by the measurement processing unit 131, counts the clock for the away timer value set in the measurement control unit 131, and notifies the measurement control unit 131 when the count is completed.

RAM256には、デバイス制御部252やイニシエータ113の各部により実行されるプログラムやデータの他に、イニシエータ113がデータ転送を行うターゲットに関する情報が格納(セット)されるターゲット別レジスタ空間261−1、261−2、261−3、・・・がターゲットの数だけ設けられている。なお、以下において、各ターゲット別レジスタ空間を区別して説明する必要の無い場合は、ターゲット別レジスタ空間261と称する。   In the RAM 256, in addition to programs and data executed by the device control unit 252 and the respective units of the initiator 113, information on targets for which the initiator 113 performs data transfer is stored (set). -2, 261-3,... Are provided as many as the number of targets. In the following description, when there is no need to explain each target register space separately, it is referred to as a target register space 261.

ターゲット別レジスタ空間261のそれぞれには、各レジスタが対応するターゲットのレイテンシ値設定用アクセス先アドレスであるアドレスA221が格納(セット)されるレイテンシ値設定用アクセス先アドレスレジスタA271、各レジスタが対応するターゲットのレイテンシ値設定用アクセス先アドレスであるアドレスB222が格納(セット)されるレイテンシ値設定用アクセス先アドレスレジスタB272、並びに、計測処理部131による計測処理により設定された、各レジスタが対応するターゲットのレイテンシ値283が格納(セット)されるレイテンシ値レジスタ273が設けられている。   Each target register space 261 corresponds to a latency value setting access destination address register A271 in which an address A221 which is a target latency value setting access destination address corresponding to each register is stored (set). The latency value setting access destination address register B272 in which the address B222, which is the target latency value setting access destination address, is stored (set), and the target corresponding to each register set by the measurement processing by the measurement processing unit 131. A latency value register 273 is provided in which the latency value 283 is stored (set).

レイテンシ値設定用アクセス先アドレスレジスタA271のアドレスA221、およびレイテンシ値設定用アクセス先アドレスレジスタB272のアドレスB222は、PCIバス110を介してCPU141のアドレスセット処理部205より供給され、アドレスセット処理部254によりセットされる。また、これらの値は、計測処理部131により参照され、レイテンシ値の設定時におけるターゲットのアクセス先アドレスとして計測処理に利用される。   The address A221 of the latency value setting access destination address register A271 and the address B222 of the latency value setting access destination address register B272 are supplied from the address set processing unit 205 of the CPU 141 via the PCI bus 110, and the address set processing unit 254 Set by Further, these values are referred to by the measurement processing unit 131, and are used for the measurement process as the access destination address of the target when the latency value is set.

また、RAM256には、初期アウェイ値セット処理部253により初期アウェイ値284がセットされる初期アウェイレジスタ274が設けられている。この初期アウェイ値284は、計測処理部131により参照され、アウェイタイマ255がカウントするクロック数の初期値として利用される。すなわち、初期アウェイ値284は、計測処理におけるイニシエータ113の、コマンド発行後に再度同じアドレスに対する同じコマンドを発行するまでの待機時間の初期値である。   Further, the RAM 256 is provided with an initial away register 274 in which the initial away value 284 is set by the initial away value set processing unit 253. The initial away value 284 is referred to by the measurement processing unit 131 and is used as an initial value of the number of clocks counted by the away timer 255. That is, the initial away value 284 is an initial value of the waiting time until the initiator 113 in the measurement process issues the same command for the same address again after issuing the command.

さらに、RAM256には、計測処理部131の計測処理において、アウェイタイマがカウントするクロック数を示すアウェイタイマ値285を格納(セット)するアウェイタイマ値レジスタ275が設けられている。アウェイタイマ値レジスタ275にセットされるアウェイタイマ値285は、計測処理においてアウェイタイマ255がカウントするクロック数であり、その値は、計測処理が進行するに従って更新されていく。なお、アウェイタイマ値285の初期値は、初期アウェイ値284にセットされる。   Further, the RAM 256 is provided with an away timer value register 275 for storing (setting) an away timer value 285 indicating the number of clocks counted by the away timer in the measurement processing of the measurement processing unit 131. The away timer value 285 set in the away timer value register 275 is the number of clocks counted by the away timer 255 in the measurement process, and the value is updated as the measurement process proceeds. The initial value of the away timer value 285 is set to the initial away value 284.

計測処理部131は、PCIインタフェース251を介してCPU141に制御され、初期アウェイ値レジスタ274にセットされている初期アウェイ値284を参照し、その値をアウェイタイマ値285としてアウェイタイマ値レジスタ275にセットする。次に、計測処理部131は、CPU141に制御されて、計測処理を行うターゲットを決定し、そのターゲットのレイテンシ値設定用アクセス先アドレス(アドレスA221およびアドレスB222)をレイテンシ値設定用アクセス先アドレスレジスタA271およびレイテンシ値設定用アクセス先アドレスレジスタB272より読み出し、そのうち一方のアドレス(例えば、アドレスA221)に対してコマンドを発行する。コマンド発行後、そのコマンドに対するリトライを検出すると、計測処理部131は、アウェイタイマ255を制御し、アウェイタイマ値275にセットされたアウェイタイマ値285のクロック数をカウントさせる。   The measurement processing unit 131 is controlled by the CPU 141 via the PCI interface 251, refers to the initial away value 284 set in the initial away value register 274, and sets the value in the away timer value register 275 as the away timer value 285. To do. Next, the measurement processing unit 131 is controlled by the CPU 141 to determine a target on which the measurement process is performed, and the latency value setting access destination address (address A221 and address B222) of the target is set to the latency value setting access destination address register. The data is read from A271 and the latency value setting access destination address register B272, and a command is issued to one of the addresses (for example, address A221). When a retry for the command is detected after the command is issued, the measurement processing unit 131 controls the away timer 255 to count the number of clocks of the away timer value 285 set in the away timer value 275.

アウェイタイマ255がカウントを終了し、処理を戻すと、計測処理部131は、再度、同じアドレスに対してアクセスし、同じコマンドを発行する。このコマンドによりPCIデータ転送が開始され、正常に完了した場合、計測処理部131は、アウェイタイマ値275にセットされたアウェイタイマ値285を1回分(予め定められた所定のクロック数分)ディクリースする。そして、計測処理部131は、次に、他方のアドレス(例えば、アドレスB222)に対してコマンドを発行する。コマンド発行後、そのコマンドに対するリトライを検出すると、計測処理部131は、アウェイタイマ255を制御し、アウェイタイマ値275にセットされたアウェイタイマ値285のクロック数をカウントさせる。   When the away timer 255 finishes counting and returns the process, the measurement processing unit 131 accesses the same address again and issues the same command. When the PCI data transfer is started by this command and is normally completed, the measurement processing unit 131 decreases the away timer value 285 set in the away timer value 275 once (for a predetermined number of clocks). To do. Then, the measurement processing unit 131 issues a command to the other address (for example, the address B222). When a retry for the command is detected after the command is issued, the measurement processing unit 131 controls the away timer 255 to count the number of clocks of the away timer value 285 set in the away timer value 275.

アウェイタイマ255がカウントを終了し、処理を戻すと、計測処理部131は、再度、同じアドレスに対してアクセスし、同じコマンドを発行する。このコマンドによりPCIデータ転送が開始され、正常に完了した場合、計測処理部131は、アウェイタイマ値275にセットされたアウェイタイマ値285を1回分(予め定められた所定のクロック数分)ディクリースする。そして、計測処理部131は、次に、最初のアドレス(例えば、アドレスA221)に対してコマンドを発行する。   When the away timer 255 finishes counting and returns the process, the measurement processing unit 131 accesses the same address again and issues the same command. When the PCI data transfer is started by this command and is normally completed, the measurement processing unit 131 decreases the away timer value 285 set in the away timer value 275 once (for a predetermined number of clocks). To do. Then, the measurement processing unit 131 issues a command to the first address (for example, address A221).

以上の処理を繰り返すことにより、計測処理部131は、アウェイタイマ値285の値を徐々に減らしながら(待機時間を短くしながら)、計測処理を続ける。そして、アウェイタイマ値285に対応する待機時間分待機した後のコマンド発行においてもリトライを検出した場合、計測処理部131は、計測処理を終了し、1回前のアウェイタイマ値285の値(その時点のアウェイタイマ値285に1回分のクロック数をインクリメントした値)をレイテンシ値283として、そのターゲットに対応するターゲット別レジスタ空間261のレイテンシ値レジスタ273に格納(セット)する。   By repeating the above process, the measurement processing unit 131 continues the measurement process while gradually decreasing the away timer value 285 (decreasing the standby time). When the retry is detected in the command issuance after waiting for the waiting time corresponding to the away timer value 285, the measurement processing unit 131 ends the measurement process, and the value of the previous away timer value 285 (then A value obtained by incrementing the number of clocks for one time to the away timer value 285 at the time) is stored (set) as a latency value 283 in the latency value register 273 of the target-specific register space 261 corresponding to the target.

以上のようにしてイニシエータ113は、マスタデバイス待機時間として最適な最適待機時間の計測処理を行う。   As described above, the initiator 113 performs the optimum standby time measurement process that is optimal as the master device standby time.

なお、以上のようなレイテンシ値の設定は、例えば、電源投入時等におけるPCIバス110のリセット後等に行われ、以後の通常のデータ転送処理においては、そのとき設定されたレイテンシ値が適用される。   The latency value is set as described above, for example, after the PCI bus 110 is reset at power-on or the like. In the subsequent normal data transfer processing, the latency value set at that time is applied. The

図4においてPCIバス110のリセットは、CPU141に制御されて実行される。例えば、ユーザ等の指示によりPCIバス110の初期化処理を行う場合や画像処理装置100に電源が投入された場合等において、CPU141は、リセット処理を開始する。CPU141により実行されるリセット処理を図7のフローチャートを参照して説明する。   In FIG. 4, the reset of the PCI bus 110 is executed under the control of the CPU 141. For example, when the initialization processing of the PCI bus 110 is performed according to an instruction from the user or the like, or when the image processing apparatus 100 is powered on, the CPU 141 starts the reset processing. The reset process executed by the CPU 141 will be described with reference to the flowchart of FIG.

最初に、ステップS1において、CPU141のPCIコンフィギュレーション処理部201は、コンフィギュレーション処理を実行し、PCIバス110およびPCIデバイス111を初期化し、各種の設定や割り当てを行う。具体的には、PCIコンフィギュレーション処理部201は、PCIバス110を介して、各PCIデバイス111のコンフィギュレーションレジスタからベンダID、デバイスID、およびクラスコード等の、PCIデバイス111に関する情報を取得する。そして、PCIコンフィギュレーション処理部201は、それらのIDやコードに基づいて各PCIデバイス111を識別し、各デバイスに対して、メモリアドレス、I/Oアドレス、割り込みレベル、およびDMAチャネル等のシステムリソースの割り当て、ドライバのロード/アンロード、および各種パラメータの設定等を行う。このとき、PCIコンフィギュレーション処理部201は、アドレスの割り当てとして、例えば、図8に示されるように、PCIバス110に接続された各PCIデバイスのアドレス領域をPCIバスアドレス空間、すなわち、CPUメモリ空間300に割り当てる。   First, in step S1, the PCI configuration processing unit 201 of the CPU 141 executes configuration processing, initializes the PCI bus 110 and the PCI device 111, and performs various settings and assignments. Specifically, the PCI configuration processing unit 201 acquires information related to the PCI device 111 such as a vendor ID, a device ID, and a class code from the configuration register of each PCI device 111 via the PCI bus 110. The PCI configuration processing unit 201 identifies each PCI device 111 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. At this time, the PCI configuration processing unit 201 assigns the address area of each PCI device connected to the PCI bus 110 to the PCI bus address space, that is, the CPU memory space, for example, as shown in FIG. Assign to 300.

図8において、PCIコンフィギュレーション処理部201は、CPUメモリ空間300の内、アドレス00000h乃至0FFFFhのCPUアドレス領域310以外のメモリ空間を、ターゲット1用アドレス領域311、ターゲット2用アドレス領域312、およびターゲット3用アドレス領域313のように、64KBずつ各ターゲットに割り当てる。また、PCIコンフィギュレーション処理部201は、それぞれのターゲット用アドレス領域において、レジスタ用のアドレス空間と、ローカルメモリ用のアドレス空間とを32ビットずつ割り当てる。すなわち、例えば、ターゲット1用アドレス領域311は、図8に示されるように、10000h乃至17FFFhの32KBのターゲット1のレジスタ空間314と、18000h乃至1FFFFhの32KBのターゲット1のローカルメモリ空間315とにより構成される。他のターゲット用アドレス領域(例えば、ターゲット2用アドレス領域312やターゲット3用アドレス領域313等)も同様であり、それぞれレジスタ空間とローカルメモリ空間により構成される。   In FIG. 8, the PCI configuration processing unit 201 uses a memory space other than the CPU address area 310 of addresses 00000h to 0FFFFh in the CPU memory space 300 as a target 1 address area 311, a target 2 address area 312, and a target As in the address area 313 for 3, 64 KB is allocated to each target. Also, the PCI configuration processing unit 201 allocates 32 bits each for the register address space and the local memory address space in each target address area. That is, for example, as shown in FIG. 8, the target 1 address area 311 includes a 32 KB target 1 register space 314 from 10000h to 17FFFh and a 32 KB target 1 local memory space 315 from 18000h to 1FFFFh. Is done. The same applies to other target address areas (for example, the target 2 address area 312 and the target 3 address area 313), and each is constituted by a register space and a local memory space.

以上のようなコンフィギュレーション処理を行うと、CPU141のPCIコンフィギュレーション処理部201は、図7において、ステップS1のコンフィギュレーション処理を終了しステップS2に処理を進める。   When the configuration processing as described above is performed, the PCI configuration processing unit 201 of the CPU 141 ends the configuration processing in step S1 and proceeds to step S2 in FIG.

ステップS2において、アドレス設定部202は、上述したようにコンフィギュレーション処理により各PCIデバイス111に割り当てられたメモリ空間を用いて、各PCIデバイスのレイテンシ値設定用アクセス先アドレスを、アドレスAおよびアドレスBの2つずつ設定する。   In step S2, the address setting unit 202 uses the memory space allocated to each PCI device 111 by the configuration process as described above, and sets the address A and the address B for the latency value setting of each PCI device. Set two each.

後述するように、レイテンシ値設定の際の計測処理において、イニシエータ113は、同じターゲット114に対して、通常複数回アクセスを繰り返す。これに対して、ターゲット114は、キャッシュメモリ122にデータが格納されたか否かを判断して、データ転送の準備が整ったか否かを判定する。通常、キャッシュメモリ122は、数クロック(例えば6クロック)データを保持した後、それを破棄する。従って、アドレス設定部202が1つのターゲット114に対して、1つのアドレスのみをレイテンシ値設定用アクセス先アドレスとして設定し、イニシエータ113が同じターゲット114の同じアドレスに対して連続してアクセスを繰り返すようにすると、そのアクセスの間隔が狭くなると、ターゲット114が、キャッシュメモリ122が正しいデータに更新されていないのに(古いデータのまま)、データ転送の準備が整ったと判断し、その古いデータ(誤ったデータ)をイニシエータ113に転送してしまう恐れがある。   As will be described later, in the measurement process for setting the latency value, the initiator 113 normally repeats access to the same target 114 a plurality of times. On the other hand, the target 114 determines whether or not data is stored in the cache memory 122, and determines whether or not data transfer is ready. Normally, the cache memory 122 holds data of several clocks (for example, 6 clocks) and then discards the data. Therefore, the address setting unit 202 sets only one address as the latency value setting access destination address for one target 114, and the initiator 113 continuously repeats access to the same address of the same target 114. Then, when the access interval becomes narrower, the target 114 determines that the cache memory 122 is not updated with the correct data (the old data remains), but is ready for data transfer. Data) may be transferred to the initiator 113.

そこで、キャッシュメモリ122の更新サイクルに対して、イニシエータ113による同じアドレスへのアクセスの間隔が短くなり過ぎないように、アドレス設定部202は、2つのアドレスをレイテンシ値設定用アクセス先アドレスとして設定する。   Therefore, the address setting unit 202 sets two addresses as latency value setting access destination addresses so that the access interval to the same address by the initiator 113 does not become too short with respect to the update cycle of the cache memory 122. .

例えば、図8の場合、アドレス設定部202は、ターゲット1のレイテンシ値設定用アクセス先アドレスとして、ターゲット1用アドレス領域311のターゲット1のローカルメモリ空間315よりアドレスA221として18000h番地を設定し、アドレスB222として1C000h番地を設定する。なお、この2つのアドレス(アドレスA221およびアドレスB222)は、各アドレスが互いに異なるデータ転送に対するデータを示すように、ある程度(例えば512ワード)互いに離れたアドレスであれば、ターゲット1のローカルメモリ空間315のどのアドレスであってもよい。   For example, in the case of FIG. 8, the address setting unit 202 sets the address 18000h as the address A221 from the local memory space 315 of the target 1 in the target 1 address area 311 as the access destination address for setting the latency value of the target 1 Set address 1C000h as B222. Note that these two addresses (address A221 and address B222) are local memory space 315 of target 1 if they are addresses separated from each other to some extent (for example, 512 words) so that each address indicates data for different data transfer. Any address may be used.

アドレス設定部202は、ターゲット2やターゲット3等に対してもターゲット1の場合と同様にしてレイテンシ値設定用アクセス先アドレスを設定していき、全てのターゲットに対してレイテンシ値設定用アクセス先アドレスを設定する。全てのターゲットのレイテンシ値設定用アクセス先アドレスを設定すると、アドレス設定部202は、ステップS3に処理を進める。   The address setting unit 202 sets the latency value setting access destination addresses for the target 2 and the target 3 in the same manner as in the case of the target 1, and the latency value setting access destination addresses for all the targets. Set. When the access destination addresses for setting latency values of all targets are set, the address setting unit 202 advances the process to step S3.

ステップS3において、CPU141のマスタ特定部203は、PCIコンフィギュレーション処理部201によるコンフィギュレーション処理結果に基づいて、PCIバス110に接続されたPCIデバイス111の中から、PCIデータ転送のマスタとなり得るマスタデバイスを特定し、処理をステップS4に移行する。CPU141のレイテンシ値設定制御部152は、ステップS4において、このマスタ特定部203により特定されたマスタデバイスのそれぞれに対して、レイテンシ値設定処理を行わせるように制御する。各マスタデバイスに対するレイテンシ値設定制御処理については、図8のフローチャートを参照して後述する。   In step S <b> 3, the master specifying unit 203 of the CPU 141 determines a master device that can be a master for PCI data transfer from the PCI devices 111 connected to the PCI bus 110 based on the configuration processing result by the PCI configuration processing unit 201. And the process proceeds to step S4. In step S4, the latency value setting control unit 152 of the CPU 141 controls each of the master devices specified by the master specifying unit 203 to perform latency value setting processing. The latency value setting control process for each master device will be described later with reference to the flowchart of FIG.

レイテンシ値設定制御処理を終了したレイテンシ値設定制御部152は、リセット処理を終了する。リセット処理が終了すると、PCIバス110に接続された各PCIデバイス111は、必要に応じてPCIデータ転送112の処理を開始する。   After completing the latency value setting control process, the latency value setting control unit 152 ends the reset process. When the reset process ends, each PCI device 111 connected to the PCI bus 110 starts the process of PCI data transfer 112 as necessary.

次に、図7のステップS4において実行されるレイテンシ値設定制御処理について図9のフローチャートを参照して説明する。図9のフローチャートは、マスタデバイスの内の1つであるイニシエータ113に対する処理である。   Next, the latency value setting control process executed in step S4 of FIG. 7 will be described with reference to the flowchart of FIG. The flowchart of FIG. 9 is a process for the initiator 113 which is one of the master devices.

レイテンシ値設定制御処理が開始されると、レイテンシ値設定制御部152の初期アウェイ値設定部204は、ステップS21において、内部に保持している初期アウェイ値211を、ホストPCIブリッジ151を介してイニシエータ113に供給し、この値をレジスタ(初期アウェイ値レジスタ274)にセットさせる。初期アウェイ値211は、予め定められた値であり、後述するようにアウェイタイマ値285(レイテンシ値283)の最大値となる。   When the latency value setting control process is started, the initial away value setting unit 204 of the latency value setting control unit 152 uses the initial away value 211 stored therein as an initiator via the host PCI bridge 151 in step S21. 113, and this value is set in the register (initial away value register 274). The initial away value 211 is a predetermined value, and is the maximum value of the away timer value 285 (latency value 283) as described later.

初期アウェイ値211を供給した初期アウェイ値設定部204は、処理をステップS22に進める。ステップS22において、レイテンシ値設定制御部152のアドレスセット処理部205は、レイテンシ値設定用アクセス先アドレス保持部207に保持されているレイテンシ値設定用アクセス先アドレス213の中から、イニシエータ113に対応する(イニシエータ113がデータ転送を行うことが可能な)各ターゲット114のレイテンシ値設定用アクセス先アドレスを、ホストPCIブリッジ151を介してイニシエータ113に供給し、これらの値(アドレスA221およびアドレスB222)をレジスタ(レイテンシ値設定用アクセス先アドレスレジスタA271またはレイテンシ値設定用アクセス先アドレスB272の内、各アドレスが対応する方のレジスタ)にセットさせる。   The initial away value setting unit 204 that has supplied the initial away value 211 advances the process to step S22. In step S 22, the address set processing unit 205 of the latency value setting control unit 152 corresponds to the initiator 113 from among the latency value setting access destination addresses 213 held in the latency value setting access destination address holding unit 207. The access destination address for setting the latency value of each target 114 (where the initiator 113 can perform data transfer) is supplied to the initiator 113 via the host PCI bridge 151, and these values (address A221 and address B222) are supplied. A register (latency value setting access destination address register A 271 or latency value setting access destination address B 272, whichever address corresponds to) is set.

レイテンシ値設定用アクセス先アドレスを供給したアドレス設定部205は、ステップS23に処理を進める。ステップS23において、計測処理実行制御部206は、処理を行うマスタデバイスを選択するための変数iの値を「0」初期値としてにセットする。なおこのとき計測処理実行制御部206は、予め定められた整数の初期値であれば、どのような値であってもよい。   The address setting unit 205 that has supplied the latency value setting access destination address proceeds to step S23. In step S <b> 23, the measurement process execution control unit 206 sets the value of the variable i for selecting the master device to be processed as an initial value “0”. At this time, the measurement process execution control unit 206 may be any value as long as it is a predetermined integer initial value.

変数iをセットすると、計測処理実行制御部206は、ステップS24において、ホストPCIブリッジ151を介して、イニシエータ113にアクセスし、イニシエータ113に対応するターゲット114の内、i番目のターゲット114に対する計測処理の実行を開始させる。   When the variable i is set, the measurement process execution control unit 206 accesses the initiator 113 via the host PCI bridge 151 in step S24, and the measurement process for the i-th target 114 among the targets 114 corresponding to the initiator 113. Start running.

計測処理を開始させると計測処理実行制御部206は、ステップS25において、完了フラグ212を監視し、完了フラグが212がアサートされたか否かを判定し、イニシエータ113が計測処理を終了して完了フラグ212をアサートさせるまで待機する。なお、計測処理の実行を開始させてから予め定められた所定の時間が経過しても完了フラグ212がアサートされない場合、計測処理実行制御部206は、レイテンシ値設定制御処理を強制終了させるようにしてももちろんよい。   When the measurement process is started, the measurement process execution control unit 206 monitors the completion flag 212 in step S25, determines whether the completion flag 212 is asserted, and the initiator 113 ends the measurement process and completes. Wait until 212 is asserted. Note that if the completion flag 212 is not asserted even after a predetermined time has elapsed since the start of the execution of the measurement process, the measurement process execution control unit 206 forcibly terminates the latency value setting control process. Of course.

以上のように待機し、ステップS25において、イニシエータ113が完了フラグ212をアサートすると、計測処理実行制御部206は、ステップS26に処理を進め、変数iをインクリメントし、ステップS27において、変数iの値がイニシエータ113に対応するターゲット114の数より大きいか否かを判定する。変数iの値がターゲット数より大きくないと判定した場合、すなわち、未処理のターゲットが存在する場合、計測処理実行制御部206は、ステップS24に処理を戻し、それ以降の処理を繰り返す。   When the initiator 113 asserts the completion flag 212 in step S25 as described above, the measurement process execution control unit 206 proceeds to step S26, increments the variable i, and in step S27, the value of the variable i. Is greater than the number of targets 114 corresponding to the initiator 113. When it is determined that the value of the variable i is not larger than the number of targets, that is, when there are unprocessed targets, the measurement process execution control unit 206 returns the process to step S24 and repeats the subsequent processes.

すなわち、計測処理実行制御部206は、ステップS24乃至ステップS27の処理を繰り返すことにより、イニシエータ113が、イニシエータ113に対応する全てのターゲットに対して計測処理を行うように制御する。そして、ステップS27において、変数iの値がターゲット数より大きいと判定した場合、すなわち、イニシエータ113が、イニシエータ113に対応する全てのターゲットに対して計測処理を行ったと判定した場合、計測処理実行制御部206は、レイテンシ値設定制御処理を終了する。   That is, the measurement process execution control unit 206 controls the initiator 113 to perform the measurement process on all the targets corresponding to the initiator 113 by repeating the processes of steps S24 to S27. In step S27, when it is determined that the value of the variable i is larger than the number of targets, that is, when it is determined that the initiator 113 has performed measurement processing for all the targets corresponding to the initiator 113, measurement processing execution control is performed. The unit 206 ends the latency value setting control process.

以上のようにして、CPU141のレイテンシ値設定制御部152は、コンフィギュレーション処理の後、レイテンシ値設定制御処理を実行する。なお、レイテンシ値設定制御部152は、図9のフローチャートを参照して説明したようなレイテンシ値設定制御処理を各マスタデバイスに対して実行する。すなわち、レイテンシ値設定制御部152は、PCIバス110に接続された全てのPCIデバイス111によるPCIデータ転送に対してレイテンシ値を算出するように制御する。   As described above, the latency value setting control unit 152 of the CPU 141 executes the latency value setting control process after the configuration process. Note that the latency value setting control unit 152 executes the latency value setting control process as described with reference to the flowchart of FIG. 9 for each master device. In other words, the latency value setting control unit 152 performs control so as to calculate a latency value for PCI data transfer by all PCI devices 111 connected to the PCI bus 110.

このようにすることにより、各マスタデバイスは、どのターゲットに対してもそれぞれ待機時間として最適な最適待機時間(レイテンシ値)を設定することができ、その最適な待機時間を利用することにより、PCIバス110の不要なトラフィック(リード要求の繰り返しによるトランザクション)の発生を抑制し、各PCIデバイス111がPCIバス110を有効に利用することができる。   In this way, each master device can set an optimum optimum waiting time (latency value) as a waiting time for each target, and by using the optimum waiting time, PCI Occurrence of unnecessary traffic (transaction due to repeated read requests) on the bus 110 is suppressed, and each PCI device 111 can effectively use the PCI bus 110.

次に、以上のようにCPU141のレイテンシ値設定制御部152に制御されて実行する、イニシエータ113によるレイテンシ値の設定に関する処理について説明する。PCIデバイス111であるイニシエータ113に電源が投入され、コンフィギュレーション処理が行われると、イニシエータ113のデバイス制御部252は、イニシエータ113の各部を制御し、レイテンシ値設定処理を開始する。図10のフローチャートを参照して、レイテンシ値設定処理を説明する。   Next, processing related to setting of a latency value by the initiator 113, which is executed under the control of the latency value setting control unit 152 of the CPU 141 as described above, will be described. When power is turned on and configuration processing is performed on the initiator 113 that is the PCI device 111, the device control unit 252 of the initiator 113 controls each unit of the initiator 113 and starts latency value setting processing. The latency value setting process will be described with reference to the flowchart of FIG.

レイテンシ値設定処理が開始されると、初期アウェイ値セット処理部253は、ステップS41において、CPU141の初期アウェイ値設定部204より初期アウェイ値211が供給されたか否かを判定する。PCIインタフェース処理部251を介して初期アウェイ値211が供給されたと判定した場合、初期アウェイ値セット処理部253は、ステップS42に処理を進め、供給された初期アウェイ値211を初期アウェイ値レジスタ274にセットする(初期アウェイ値284)。   When the latency value setting process is started, the initial away value set processing unit 253 determines whether or not the initial away value 211 is supplied from the initial away value setting unit 204 of the CPU 141 in step S41. When it is determined that the initial away value 211 has been supplied via the PCI interface processing unit 251, the initial away value set processing unit 253 proceeds to step S42, and the supplied initial away value 211 is stored in the initial away value register 274. Set (initial away value 284).

初期アウェイ値211(初期アウェイ値284)をセットした初期アウェイ値セット処理部253は、ステップS43に処理を進める。また、ステップS41において、初期アウェイ値211が供給されていないと判定した場合、初期アウェイ値セット処理部253は、ステップS42の処理を省略し、ステップS43に処理を進める。   The initial away value set processing unit 253 that has set the initial away value 211 (initial away value 284) advances the process to step S43. If it is determined in step S41 that the initial away value 211 is not supplied, the initial away value set processing unit 253 skips step S42 and proceeds to step S43.

ステップS43において、アドレスセット処理部254は、CPU141のアドレスセット処理部205よりレイテンシ値設定用アクセス先アドレス(アドレスA221およびアドレスB222)が供給されたか否かを判定する。レイテンシ値設定用アクセス先アドレスが供給されたと判定した場合、アドレスセット処理部254は、処理をステップS44に進め、その供給されたアドレスが対応するターゲットのレジスタ空間261にある、レイテンシ値設定用アクセス先アドレスレジスタA271に、供給されたアドレスA221をセットし、レイテンシ値設定用アクセス先アドレスレジスタB272に、供給されたアドレスB222をセットする。   In step S43, the address set processing unit 254 determines whether or not the latency value setting access destination addresses (address A221 and address B222) are supplied from the address set processing unit 205 of the CPU 141. If it is determined that the latency value setting access destination address has been supplied, the address set processing unit 254 advances the process to step S44, and the supplied address is the latency value setting access in the corresponding target register space 261. The supplied address A221 is set in the destination address register A271, and the supplied address B222 is set in the latency value setting access destination address register B272.

アドレスをセットしたアドレスセット処理部254は、処理をステップS45に進める。なお、ステップS43において、アドレスセット処理部205よりレイテンシ値設定用アクセス先アドレスが供給されていないと判定した場合、アドレスセット処理部254は、処理をステップS44の処理を省略し、ステップS45に処理を進める。   The address set processing unit 254 that has set the address advances the processing to step S45. If it is determined in step S43 that the latency value setting access destination address is not supplied from the address set processing unit 205, the address set processing unit 254 omits the process in step S44 and performs the process in step S45. To proceed.

ステップS45において、計測処理部131は、CPU141の計測処理実行制御部206より計測処理の開始が指示されたか否かをか否かを判定する。計測処理の開始が指示されたと判定した場合、計測処理部131は、処理をステップS46に進め、計測処理の開始指示とともに指示されたターゲットに対して計測処理を実行する。計測処理の詳細については、図11乃至図13のフローチャートを参照して後述する。   In step S <b> 45, the measurement processing unit 131 determines whether or not the measurement process execution control unit 206 of the CPU 141 has instructed the start of the measurement process. When it is determined that the start of the measurement process is instructed, the measurement processing unit 131 advances the process to step S46, and executes the measurement process for the instructed target together with the start instruction of the measurement process. Details of the measurement process will be described later with reference to the flowcharts of FIGS.

ステップS46の計測処理を終了した計測処理部131は、ステップS47に処理を進める。また、ステップS45において、計測処理の開始が指示されていないと判定した場合、計測処理部131は、ステップS46の処理を省略し、ステップS47に処理を進める。   After completing the measurement process in step S46, the measurement processing unit 131 advances the process to step S47. In Step S45, when it is determined that the start of the measurement process is not instructed, the measurement processing unit 131 omits the process of Step S46 and proceeds to Step S47.

ステップS47において、デバイス制御部252は、レイテンシ値設定処理を終了するか否かを判定し、終了しないと判定した場合、処理をステップS41に戻し、それ以降の処理を繰り返す。また、ステップS47において、例えば、全てのレイテンシ値の設定が終了し、通常モードに移行する場合や電源をオフする場合等において、レイテンシ値設定処理を終了すると判定した場合、デバイス制御部252は、レイテンシ値設定処理を終了する。   In step S47, the device control unit 252 determines whether to end the latency value setting process. If it is determined not to end the process, the device control unit 252 returns the process to step S41 and repeats the subsequent processes. In step S47, for example, when all the latency values have been set and it is determined that the latency value setting process is to be ended when the mode is shifted to the normal mode or the power is turned off, the device control unit 252 The latency value setting process is terminated.

次に、図10のステップS46において実行される計測処理の詳細を、図11乃至図13のフローチャートを参照して説明する。   Next, details of the measurement process executed in step S46 of FIG. 10 will be described with reference to the flowcharts of FIGS.

計測処理を開始した計測処理部131は、最初に、図11のステップS61において、初期アウェイ値レジスタ274の値である初期アウェイ値284を読み出して、それをアウェイタイマ値レジスタ275にセットする(アウェイタイマ値285)。そして、計測処理部131は、ステップS62において、計測処理実行制御部206により指定されたターゲット114に対応するターゲット別レジスタ空間261のレイテンシ値設定用アクセス先アドレスA271にセットされているアドレスA221を読み出し、そのターゲットのアドレスA221に対してリード要求を行う。   The measurement processing unit 131 that has started the measurement process first reads the initial away value 284, which is the value of the initial away value register 274, in step S61 in FIG. 11, and sets it in the away timer value register 275 (away). Timer value 285). In step S62, the measurement processing unit 131 reads the address A221 set in the latency value setting access destination address A271 of the target-specific register space 261 corresponding to the target 114 specified by the measurement processing execution control unit 206. Then, a read request is made to the target address A221.

リード要求を行った計測処理部131は、ステップS63において、そのリード要求の応答として、データを取得したか否かを判定する。データを取得していないと判定した計測処理部131は、ステップS64に処理を進め、リード要求の応答としてリトライを取得したか否かを判定する。リトライもデータも取得していない、すなわち、リード要求の応答を取得していないと判定した場合、計測処理部131は、処理をステップS63に戻し、それ以降の処理を繰り返す。   In step S63, the measurement processing unit 131 that has made the read request determines whether data has been acquired as a response to the read request. The measurement processing unit 131 that has determined that data has not been acquired proceeds to step S64, and determines whether or not a retry has been acquired as a response to the read request. If it is determined that neither retry nor data has been acquired, that is, the response to the read request has not been acquired, the measurement processing unit 131 returns the process to step S63 and repeats the subsequent processes.

ステップS64においてリトライ処理を取得したと判定した場合、計測処理部131は、アウェイタイマ値レジスタ275にセットされたアウェイタイマ値285(待機するクロック数)をアウェイタイマ255に供給する。アウェイタイマ値285を供給されたアウェイタイマ255は、ステップS65において、供給されたアウェイタイマ値285分のクロックをカウントする。計測処理部131は、アウェイタイマ285よりカウント終了が通知されるまで待機する。   If it is determined in step S64 that the retry process has been acquired, the measurement processing unit 131 supplies the away timer value 285 (the number of standby clocks) set in the away timer value register 275 to the away timer 255. The away timer 255 supplied with the away timer value 285 counts clocks corresponding to the supplied away timer value 285 in step S65. The measurement processing unit 131 waits until the end of the count is notified from the away timer 285.

アウェイタイマ255によるカウントが終了すると、アウェイタイマ255は、カウント終了を計測処理部131に通知する。カウント終了が通知されると計測処理部131は、ステップS66に処理を進め、計測処理実行制御部206により指定されたターゲット114に対応するターゲット別レジスタ空間261のレイテンシ値設定用アクセス先アドレスA271にセットされているアドレスA221に対して再度リード要求を行う。   When the count by the away timer 255 ends, the away timer 255 notifies the measurement processing unit 131 of the end of the count. When the count end is notified, the measurement processing unit 131 advances the process to step S 66, and sets the latency value setting access destination address A 271 in the target-specific register space 261 corresponding to the target 114 specified by the measurement processing execution control unit 206. A read request is made again for the set address A221.

再度、リード要求を行った計測処理部131は、ステップS67において、そのリード要求の応答として、リトライを取得したか否かを判定する。ターゲット114よりリトライを取得していないと判定した計測処理部131は、ステップS68に処理を進め、リード要求の応答として要求したデータを取得したか否かを判定する。リトライもデータも取得していない、すなわち、リード要求の応答を取得していないと判定した場合、計測処理部131は、処理をステップS67に戻し、それ以降の処理を繰り返す。   In step S67, the measurement processing unit 131 that has made the read request again determines whether or not a retry has been acquired as a response to the read request. The measurement processing unit 131 that has determined that the retry has not been acquired from the target 114 proceeds to step S68, and determines whether or not the data requested as a response to the read request has been acquired. If it is determined that neither retry nor data has been acquired, that is, the response to the read request has not been acquired, the measurement processing unit 131 returns the process to step S67 and repeats the subsequent processes.

ステップS68においてリード要求の応答として要求したデータを取得したと判定した場合、計測処理部131は、ステップS69において、アウェイタイマ値レジスタ275にセットされているアウェイタイマ値285(待機するクロック数)の値を1回分(予め設定されているクロック数分)ディクリースする。アウェイタイマ値285をディクリースした計測処理部131は、図12のステップS81に処理を進める。   If it is determined in step S68 that the requested data has been acquired as a response to the read request, the measurement processing unit 131 sets the away timer value 285 (the number of clocks to wait) set in the away timer value register 275 in step S69. Decrease the value once (for a preset number of clocks). The measurement processing unit 131 that has decremented the away timer value 285 advances the process to step S81 in FIG.

図12のステップS81において、計測処理部131は、待機時間の計測を同じアドレスに対して連続して行わないように、今度は、計測処理実行制御部206により指定されたターゲット114に対応するターゲット別レジスタ空間261のレイテンシ値設定用アクセス先アドレスB272にセットされているアドレスB222を読み出し、そのターゲットのアドレスB222に対してリード要求を行う。   In step S81 in FIG. 12, the measurement processing unit 131 this time corresponds to the target 114 specified by the measurement processing execution control unit 206 so that the standby time is not continuously measured for the same address. The address B222 set in the latency value setting access destination address B272 of the separate register space 261 is read, and a read request is made to the target address B222.

リード要求を行った計測処理部131は、アドレスA221の場合と同様に、ステップS82において、そのリード要求の応答としてデータを取得したか否かを判定し、データを取得していないと判定した場合、ステップS83に処理を進め、リード要求の応答としてリトライを取得したか否かを判定する。リトライもデータも取得していない、すなわち、リード要求の応答を取得していないと判定した場合、計測処理部131は、ステップS82に処理を戻し、それ以降の処理を繰り返す。   When the measurement processing unit 131 that has made the read request determines whether or not the data is acquired as a response to the read request in step S82, as in the case of the address A221, and determines that the data is not acquired. Then, the process proceeds to step S83, and it is determined whether a retry is acquired as a response to the read request. If it is determined that neither retry nor data has been acquired, that is, a response to the read request has not been acquired, the measurement processing unit 131 returns the process to step S82 and repeats the subsequent processes.

ステップS83においてリトライ処理を取得したと判定した場合、計測処理部131は、アドレスA221の場合と同様に、アウェイタイマ値レジスタ275にセットされたアウェイタイマ値285(待機するクロック数)をアウェイタイマ255に供給する。このアウェイタイマ値285は、図11のステップS69においてディクリースされたアウェイタイマ値である。アウェイタイマ255は、図12のステップS84において、供給されたアウェイタイマ値285分のクロックをカウントする。計測処理部131は、アウェイタイマ285よりカウント終了が通知されるまでの間待機する。   If it is determined in step S83 that the retry process has been acquired, the measurement processing unit 131 uses the away timer value 285 (the number of clocks to wait) set in the away timer value register 275 as in the case of the address A221. To supply. The away timer value 285 is the away timer value that is decreased in step S69 of FIG. The away timer 255 counts the clock for the supplied away timer value 285 in step S84 of FIG. The measurement processing unit 131 stands by until the count end is notified from the away timer 285.

アウェイタイマ255によるカウントが終了すると、アウェイタイマ255は、カウント終了を計測処理部131に通知する。カウント終了が通知されると計測処理部131は、ステップS85に処理を進め、計測処理実行制御部206により指定されたターゲット114に対応するターゲット別レジスタ空間261のレイテンシ値設定用アクセス先アドレスB272にセットされているアドレスB222に対して再度リード要求を行う。   When the count by the away timer 255 ends, the away timer 255 notifies the measurement processing unit 131 of the end of the count. When the count end is notified, the measurement processing unit 131 proceeds to step S85, and sets the latency value setting access destination address B272 of the target-specific register space 261 corresponding to the target 114 specified by the measurement processing execution control unit 206. A read request is again made to the set address B222.

再度、リード要求を行った計測処理部131は、アドレスA221の場合と同様に、ステップS86において、そのリード要求の応答としてリトライを取得したか否かを判定し、ターゲット114よりリトライを取得していないと判定した場合、ステップS87に処理を進め、リード要求の応答として要求したデータを取得したか否かを判定する。リトライもデータも取得していない、すなわち、リード要求の応答を取得していないと判定した場合、計測処理部131は、処理をステップS86に戻し、それ以降の処理を繰り返す。   The measurement processing unit 131 that has made the read request again determines whether or not a retry has been acquired as a response to the read request in step S86 as in the case of the address A221, and has acquired the retry from the target 114. If not, the process proceeds to step S87, and it is determined whether or not the requested data is acquired as a response to the read request. If it is determined that neither retry nor data has been acquired, that is, a response to the read request has not been acquired, the measurement processing unit 131 returns the process to step S86 and repeats the subsequent processes.

ステップS87においてリード要求の応答として要求したデータを取得したと判定した場合、計測処理部131は、ステップS88において、アウェイタイマ値レジスタ275にセットされているアウェイタイマ値285(待機するクロック数)の値を1回分(予め設定されているクロック数分)ディクリースし、図11のステップS62に処理を戻し、それ以降の処理を繰り返す。   If it is determined in step S87 that the requested data has been acquired as a response to the read request, the measurement processing unit 131 sets the away timer value 285 (the number of clocks to wait) set in the away timer value register 275 in step S88. The value is decremented by one time (for a preset number of clocks), the process returns to step S62 in FIG. 11, and the subsequent processes are repeated.

以上のように、計測処理部131は、図11のステップS62乃至ステップS69、並びに、図12のステップS81乃至ステップS88の処理を繰り返して、アウェイタイマ値レジスタ275に保持されているアウェイタイマ値285を減少させることにより、リトライ検出後に待機する時間を減少させていく。   As described above, the measurement processing unit 131 repeats the processes in steps S62 to S69 in FIG. 11 and steps S81 to S88 in FIG. 12, and the away timer value 285 held in the away timer value register 275. By decreasing, the time to wait after detecting a retry is reduced.

以上のような処理を繰り返してアウェイタイマ値285が減少すると、待機時間が、ターゲットがデータ転送の準備を整えるのに必要な時間より短くなる。その場合、計測処理部131は、待機後に再度行ったリード要求に対する応答としてリトライを検出することになる。そのような場合、計測処理部131は、リトライを検出した時の処理の、1回前の処理におけるアウェイタイマ値285が最適な待機時間(ターゲット114がデータ転送の準備を整えるまでの時間よりも長く、かつ、最も短い待機時間)とし、その値をレイテンシ値283として、そのターゲットに対応するターゲット別対応レジスタ261のレイテンシ値レジスタ273に保存する。   If the away timer value 285 is decreased by repeating the above processing, the waiting time becomes shorter than the time required for the target to prepare for data transfer. In that case, the measurement processing unit 131 detects a retry as a response to the read request made again after waiting. In such a case, the measurement processing unit 131 determines that the away timer value 285 in the previous process of the process when the retry is detected is the optimum waiting time (the time until the target 114 is ready for data transfer). Long and the shortest waiting time), and the value is stored as the latency value 283 in the latency value register 273 of the target corresponding register 261 corresponding to the target.

すなわち、図11のステップS67または図12のステップS86において、リード要求の応答としてリトライを取得したと判定した場合、計測処理部131は、処理を図13のステップS91に進め、アウェイタイマ値285を1回分(1回にディクリースされるクロック数分)インクリメントし、ステップS92において、そのインクリメントされたアウェイタイマ値285をレイテンシ値283として処理を行ったターゲット用のレイテンシ値レジスタ273にセットする。レイテンシ値283をセットした計測処理部131は、ステップS93に処理を進め、CPU141の計測処理実行制御部206が有する完了フラグ212をアサートし、ステップS94において不要なレジスタの値をリセットする等して終了処理を行い、計測処理を終了する。   That is, if it is determined in step S67 in FIG. 11 or step S86 in FIG. 12 that a retry has been acquired as a response to the read request, the measurement processing unit 131 proceeds to step S91 in FIG. 13 and sets the away timer value 285. Incremented by one time (by the number of clocks decremented at one time), and in step S92, the incremented away timer value 285 is set as the latency value 283 in the latency value register 273 for the target that has been processed. The measurement processing unit 131 that has set the latency value 283 advances the processing to step S93, asserts the completion flag 212 of the measurement processing execution control unit 206 of the CPU 141, and resets unnecessary register values in step S94. An end process is performed, and the measurement process ends.

なお、マスタデバイス待機時間として理想的な待機時間は、ターゲット114がデータ転送の準備を整えるまでの時間(と同じ長さの時間)である。しかしながら、実際には、マスタデバイス待機時間をターゲット114がデータ転送の準備を整えるまでの時間と全く同じ長さの時間に設定することは困難である。また、それらの長さを、各部の同期単位であるシステムクロック上において同一の長さに設定することも可能ではあるが、実際にそこまで細かく調整すると計測処理の負荷や計測処理の処理時間が増大する恐れもある。従って、装置の能力に応じて、実用上可能な処理単位として、複数クロック単位で待機時間を制御するようにし、その制御単位上において、ターゲット114がデータ転送の準備を整えるまでの時間よりも長く、かつ、最も短い待機時間を最適な待機時間とするようにするのが望ましい。   Note that the ideal standby time as the master device standby time is the time until the target 114 prepares for data transfer (the same length of time). However, in practice, it is difficult to set the master device standby time to a time that is exactly the same as the time until the target 114 prepares for data transfer. Although it is possible to set these lengths to the same length on the system clock, which is the synchronization unit of each unit, the actual measurement load and measurement processing time will be reduced if you actually make such fine adjustments. There is also a risk of increase. Accordingly, the standby time is controlled in units of a plurality of clocks as a practically possible processing unit according to the capability of the apparatus, and longer than the time until the target 114 prepares for data transfer on the control unit. In addition, it is desirable that the shortest waiting time is the optimum waiting time.

また、図11のステップS63において、リード要求に対する応答として要求したデータを取得したと判定した場合、すなわち、イニシエータ113が発行した最初のリード要求に対してターゲット114がすぐに応答した場合、そのターゲット114が本当に待機時間を必要としないことも考えられるが、ターゲット114のキャッシュメモリ122に保持されている古いデータが間違えて転送された可能性も考えられる。   If it is determined in step S63 in FIG. 11 that the requested data has been acquired as a response to the read request, that is, if the target 114 immediately responds to the first read request issued by the initiator 113, the target Although it is conceivable that 114 does not really need a waiting time, it is possible that old data held in the cache memory 122 of the target 114 has been transferred by mistake.

そこで、計測処理部131は、そのような場合、図11のステップS70に処理を進め、アドレスB222に対する計測処理においても待機せずにデータを取得したか否かを判定する。計測処理部131は、上述したように、アドレスA221に対するリード要求による計測処理とアドレスB222に対するリード要求による計測処理とを交互に繰り返すことにより、キャッシュメモリ122に残された古いデータによるデータ転送を抑制するように処理を行っている。従って、計測処理部131は、このように待機時間無しに1回目のリード要求に対してすぐにデータが返された場合、アドレスA221に対するリード要求と、アドレスB222に対するリード要求の両方において、すぐにデータが返されるか否かを確認し、2つのアドレスのいずれに対するリード要求においてもデータが返される場合、そのターゲット114が本当に待機時間を必要としないものであると判定する。   Therefore, in such a case, the measurement processing unit 131 proceeds to step S70 in FIG. 11 and determines whether or not the data is acquired without waiting in the measurement process for the address B222. As described above, the measurement processing unit 131 suppresses data transfer due to old data remaining in the cache memory 122 by alternately repeating the measurement process based on the read request for the address A221 and the measurement process based on the read request for the address B222. The process is performed. Therefore, when the data is returned immediately in response to the first read request without waiting time as described above, the measurement processing unit 131 immediately performs both the read request for the address A221 and the read request for the address B222. Whether or not data is returned is confirmed, and if data is returned in a read request for any of the two addresses, it is determined that the target 114 does not really require a waiting time.

すなわち、計測処理部131は、上述したように、ステップS70において、アドレスB222に対する計測処理においても待機せずにデータを取得したか否かを判定し、アドレスB222に対する計測処理を行っていない、または、アドレスB222に対する計測処理においてはリトライが検出されたと判定した場合、処理を図12のステップS81に進め、アドレスB222に対するリード要求による計測処理に移行させる。   That is, as described above, the measurement processing unit 131 determines whether or not the data is acquired without waiting in the measurement process for the address B222 in step S70, and the measurement process for the address B222 is not performed, or If it is determined that a retry has been detected in the measurement process for the address B222, the process proceeds to step S81 in FIG. 12, and the process proceeds to a measurement process by a read request for the address B222.

図11のステップS70において、アドレスB222に対する計測処理においても待機せずにデータを取得した、すなわち、アドレスA221およびアドレスB222の両方に対する計測処理において待機せずにデータを取得したと判定した場合、計測処理部131は、処理を図13のステップS95に進め、値「0」をレイテンシ値283として、処理を行ったターゲット用のレイテンシ値レジスタ273にセットし、ステップS93に処理を進め、CPU141の計測処理実行制御部206が有する完了フラグ212をアサートし、ステップS94において不要なレジスタの値をリセットする等して終了処理を行い、計測処理を終了する。   If it is determined in step S70 in FIG. 11 that data has been acquired without waiting even in the measurement process for address B222, that is, it is determined that data has been acquired without waiting in the measurement process for both address A221 and address B222. The processing unit 131 advances the process to step S95 of FIG. 13, sets the value “0” as the latency value 283 in the latency value register 273 for the processed target, advances the process to step S93, and measures the CPU 141 The completion flag 212 possessed by the process execution control unit 206 is asserted, an end process is performed by resetting unnecessary register values in step S94, and the measurement process ends.

なお、以上の処理は、アドレスBに対するリード要求を行っている場合も同様である。すなわち、計測処理部131は、図12のステップS82において、待機時間を経ていない最初のリード要求に対してデータを取得したと判定すると、図12のステップS89に処理を進め、アドレスA221に対する計測処理においても待機せずにデータを取得したか否かを判定し、アドレスA221に対する計測処理を行っていない、または、アドレスA221に対する計測処理においてはリトライが検出されたと判定した場合、処理を図11のステップS62に進め、アドレスA221に対するリード要求による計測処理に移行させる。   The above processing is the same when a read request for address B is made. That is, if the measurement processing unit 131 determines in step S82 in FIG. 12 that data has been acquired for the first read request that has not passed the standby time, the process proceeds to step S89 in FIG. 12, and the measurement process for the address A221 is performed. If it is determined whether or not the data has been acquired without waiting and the measurement process for the address A221 is not performed, or if it is determined that the retry is detected in the measurement process for the address A221, the process is as shown in FIG. Proceeding to step S62, the process proceeds to measurement processing by a read request for address A221.

図12のステップS89において、アドレスA221に対する計測処理においても待機せずにデータを取得した、すなわち、アドレスA221およびアドレスB222の両方に対する計測処理において待機せずにデータを取得したと判定した場合、計測処理部131は、処理を図13のステップS95に進め、値「0」をレイテンシ値283として、処理を行ったターゲット用のレイテンシ値レジスタ273にセットし、ステップS93に処理を進め、CPU141の計測処理実行制御部206が有する完了フラグ212をアサートし、ステップS94において不要なレジスタの値をリセットする等して終了処理を行い、計測処理を終了する。   If it is determined in step S89 in FIG. 12 that data has been acquired without waiting even in the measurement process for address A221, that is, it is determined that data has been acquired without waiting in the measurement process for both address A221 and address B222. The processing unit 131 advances the process to step S95 of FIG. 13, sets the value “0” as the latency value 283 in the latency value register 273 for the processed target, advances the process to step S93, and measures the CPU 141 The completion flag 212 possessed by the process execution control unit 206 is asserted, an end process is performed by resetting unnecessary register values in step S94, and the measurement process ends.

以上のように計測処理部131が計測処理を行うので、イニシエータ113は、以降のデータ転送処理(通常のPCIデータ転送処理)において、設定されたレイテンシ値283を用いることにより、PCIバス110に不要なトラフィック(本来不要なリード要求の繰り返しによるトランザクション)を発生させずに、かつ、イニシエータ113自身も、データ転送の効率を低下させずに、データ転送を行うことができる。従って、PCIバス110に接続された各PCIデバイス111は、より有効に活用することができる。   Since the measurement processing unit 131 performs the measurement process as described above, the initiator 113 is unnecessary for the PCI bus 110 by using the set latency value 283 in the subsequent data transfer process (normal PCI data transfer process). Initiator 113 itself can perform data transfer without generating unnecessary traffic (transaction due to repeated unnecessary read requests) and without reducing the efficiency of data transfer. Therefore, each PCI device 111 connected to the PCI bus 110 can be used more effectively.

次に、以上の計測処理の具体的な例について、図14乃至図19の図を参照して説明する。   Next, a specific example of the above measurement process will be described with reference to FIGS.

図14に示されるように、PCIバス11の使用権を与えられたイニシエータ113は、まず、ターゲット114に対するリード要求321−1を発行し、それを、PCIバス110を介してターゲット114に供給する(矢印322−1および矢印324−1)。   As shown in FIG. 14, the initiator 113 given the right to use the PCI bus 11 first issues a read request 321-1 to the target 114 and supplies it to the target 114 via the PCI bus 110. (Arrow 322-1 and Arrow 324-1).

図15は、リードサイクルにおけるPCIバス110の主な信号状態の遷移の例を示す図である。なお、図15において、図中左の信号名に記号「#」が付加された信号は、負論理であることを示している。リードサイクルの場合、イニシエータ113は、図示せぬリクエスト(REQ#)をアサートしてアービタにバスの使用権を要求する。アービタがこの要求に対してグラント(GNT#)をアサートすることによりイニシエータ113は、PCIバス110の使用権を得ることができ、トランザクションを開始することができる。   FIG. 15 is a diagram illustrating an example of main signal state transitions of the PCI bus 110 in the read cycle. In FIG. 15, the signal with the symbol “#” added to the signal name on the left in the figure indicates negative logic. In the case of a read cycle, the initiator 113 asserts a request (REQ #) (not shown) and requests the right to use the bus from the arbiter. When the arbiter asserts a grant (GNT #) in response to this request, the initiator 113 can obtain the right to use the PCI bus 110 and can start a transaction.

このようにして、PCIバス110の使用権を獲得したイニシエータ113は、図15に示されるように、まず、クロック(CLK)1のタイミングでフレーム(FRAME#)とイニシエータレディ(IRDY#)をサンプルし、いずれもディアサート状態であるので、PCIバス110がアイドルステート(解放状態)であり、新規にバスサイクルを開始可能であると判断し、フレーム(FRAME#)をアサートし、バスサイクルの開始を通知する。   In this way, the initiator 113 that has acquired the right to use the PCI bus 110 first samples the frame (FRAME #) and the initiator ready (IRDY #) at the timing of the clock (CLK) 1, as shown in FIG. Since both are deasserted, it is determined that the PCI bus 110 is in an idle state (released state) and a new bus cycle can be started, and a frame (FRAME #) is asserted to start the bus cycle. To be notified.

また、イニシエータ113は、このクロック(CLK)1のタイミングで、アドレス/データバス(AD[31:00])にアドレス(例えば、ターゲット114のアクセス先アドレスA221)を出力し、バスコマンド/バイトイネーブル(C/BE[3:0]#)にバスコマンドを供給する。この場合、メモリリード要求であるので、イニシエータ113は、バスコマンド/バイトイネーブル(C/BE[3:0]#)の各線に”L”,”H”,”H”,”L”をドライブする。   Further, the initiator 113 outputs an address (for example, the access destination address A221 of the target 114) to the address / data bus (AD [31:00]) at the timing of this clock (CLK) 1, and the bus command / byte enable Supply a bus command to (C / BE [3: 0] #). In this case, since it is a memory read request, the initiator 113 drives “L”, “H”, “H”, “L” to each line of the bus command / byte enable (C / BE [3: 0] #). To do.

以上のようにして、図14に示されるように、PCIバス110にはトランザクション323−1が生じる。矢印24−1のようにリード要求が供給されるとターゲット15は、応答処理25−1を行う。   As described above, the transaction 323-1 occurs on the PCI bus 110 as shown in FIG. When a read request is supplied as indicated by an arrow 24-1, the target 15 performs a response process 25-1.

図15において、全てのターゲットデバイス(PCIバス110に接続されている全てのPCIデバイス111)は、クロック(CLK)2のタイミングでフレーム(FRAME#)、アドレス/データバス(AD[31:00])、およびバスコマンド/バイトイネーブル(C/BE[3:0]#)をラッチし、新しいバスサイクルが開始され、現在がアドレスフェーズであることを把握し、アドレス/データバス(AD[31:00])の情報をデコードすることにより、自分がアクセス先のターゲットであるか否かを判定する。   In FIG. 15, all target devices (all PCI devices 111 connected to the PCI bus 110) have a frame (FRAME #) and an address / data bus (AD [31:00]) at the timing of the clock (CLK) 2. ), And bus command / byte enable (C / BE [3: 0] #), knows that a new bus cycle has started and is now in the address phase, and the address / data bus (AD [31: 00]) is decoded to determine whether or not the user is the access target.

自分がアクセスされるターゲットであると判定したターゲット114は、クロック(CLK)2のタイミングで、デバイスセレクション(DEVSEL#)をアサートし、このバスサイクルに応答することを通知する。このとき、イニシエータ113は、アドレス/データバス(AD[31:00])およびバスコマンド/バイトイネーブル(C/BE[3:0]#)の状態をデータフェーズに移行する。   The target 114 determined to be the target to be accessed asserts device selection (DEVSEL #) at the timing of the clock (CLK) 2 and notifies that it responds to this bus cycle. At this time, the initiator 113 shifts the state of the address / data bus (AD [31:00]) and the bus command / byte enable (C / BE [3: 0] #) to the data phase.

そして、ターゲット114は、図14の矢印326−1のように、ローカルバス120を介してローカルメモリ121にアクセスし、要求されたアドレスのデータを取得してキャッシュメモリ122に蓄積させる処理を開始する。このとき、キャッシュメモリ122のデータ(キャッシュデータ)は、要求されたデータではない無効データ327であり、データ転送の準備が整っていないので、ターゲット114は、イニシエータ113に対して、このキャッシュデータを供給せずに(ターゲットレディ(TRDY#)をアサートせずに)、リトライ処理を返す(矢印328−1および矢印329−1)。イニシエータ113は、このように供給されたリトライ330−1を検出すると、PCIバス110を不要に占有しないように、一旦、PCIバス110を解放する。   Then, the target 114 accesses the local memory 121 via the local bus 120 as shown by an arrow 326-1 in FIG. 14, and starts processing for acquiring data at the requested address and storing it in the cache memory 122. . At this time, the data (cache data) in the cache memory 122 is invalid data 327 that is not the requested data and is not ready for data transfer, so the target 114 sends the cache data to the initiator 113. Without supplying (without asserting target ready (TRDY #)), the retry process is returned (arrow 328-1 and arrow 329-1). When the initiator 113 detects the retry 330-1 supplied in this manner, the initiator 113 temporarily releases the PCI bus 110 so as not to occupy the PCI bus 110 unnecessarily.

図16は、ターゲット114がリトライ処理を返す際の、各信号における状態遷移の様子の例を示す図である。   FIG. 16 is a diagram illustrating an example of a state transition in each signal when the target 114 returns the retry process.

リトライ処理を返す場合、ターゲット114は、デバイスセレクション(DEVSEL#)をアサートしたまま、ストップ(STOP#)をアサートする。ストップ(STOP#)のアサートを確認すると、イニシエータ113は、フレーム(FRAME#)をディアサートし、さらに、図示せぬリクエスト(REQ#)もディアサートし、PCIバス110を一旦解放する。ターゲット114は、フレーム(FRAME#)がディアサートされたことを確認すると、ストップ(STOP#)およびデバイスセレクション(DEVSEL#)をディアサートする。また、これに伴い、イニシエータ113は、イニシエータレディ(IRDY#)もディアサートする。   When returning the retry process, the target 114 asserts STOP (STOP #) while asserting device selection (DEVSEL #). Upon confirming the assertion of the stop (STOP #), the initiator 113 deasserts the frame (FRAME #), further deasserts a request (REQ #) (not shown), and temporarily releases the PCI bus 110. When the target 114 confirms that the frame (FRAME #) is deasserted, the target 114 deasserts the stop (STOP #) and the device selection (DEVSEL #). As a result, the initiator 113 also deasserts initiator ready (IRDY #).

図14に戻り、リトライ処理を検出し、バスを解放したイニシエータ113の計測処理部131は、アウェイタイマ255を用いて、アウェイタイマ値285分のクロックをカウントさせ(カウント処理351)、アウェイタイマ255よりカウント終了が通知されるまで待機する。すなわち、イニシエータ113は、図14に示されるように、時刻T1から時刻T3までの区間(区間341)において、リード要求を行わずに待機する。   Returning to FIG. 14, when the retry processing is detected and the bus is released, the measurement processing unit 131 of the initiator 113 uses the away timer 255 to count the clock of the away timer value 285 (count processing 351), and the away timer 255. Wait until the end of the count is notified. That is, as shown in FIG. 14, the initiator 113 stands by without making a read request in a section (section 341) from time T1 to time T3.

この間も、ターゲット114においては、先のリード要求321−1に対するデータ転送処理の準備が続けられ、キャッシュメモリ122には、ローカルメモリ121より読み出されたデータが蓄積される。そして、時刻T2において、リード要求321−1において要求されたデータのキャッシュメモリ122への蓄積処理が完了し、キャッシュメモリ122のデータが有効データ332になる。   During this time, the target 114 continues to prepare for data transfer processing for the previous read request 321-1, and the data read from the local memory 121 is accumulated in the cache memory 122. At time T <b> 2, the storage process of the data requested in the read request 321-1 in the cache memory 122 is completed, and the data in the cache memory 122 becomes valid data 332.

イニシエータ113において、アウェイタイマ255がカウント処理351を終了し、計測処理部131にカウント終了を通知すると、イニシエータ113は、再度、バスの使用権を再度確保し、同じアドレス(例えば、アドレスA221)に対してリード要求321−2を発行する(すなわち、同じデータを要求する)。このリード要求321−2は、リード要求321−1の場合と同様に、PCIバス110を介してターゲット114に供給される(矢印322−2および矢印324−2)。これによりPCIバス110にはトランザクション323−2が生じる。   In the initiator 113, when the away timer 255 ends the count processing 351 and notifies the measurement processing unit 131 of the end of the count, the initiator 113 again secures the right to use the bus and sets the same address (for example, the address A221). A read request 321-2 is issued (that is, the same data is requested). This read request 321-2 is supplied to the target 114 via the PCI bus 110 (arrow 322-2 and arrow 324-2), as in the case of the read request 321-1. As a result, a transaction 323-2 occurs on the PCI bus 110.

ターゲット114は、このリード要求321−2に対して応答処理325−2を行い、矢印326−1のようにキャッシュメモリ122にアクセスするが、この時点で、キャッシュメモリ122に有効データ332が蓄積されているので、矢印333のように有効データ332をイニシエータ113に供給させる。有効データ332は、矢印333および矢印335のように、PCIバス110を介して(トランザクション334)、イニシエータ113に供給される。イニシエータ113は、このように供給された有効データ336を取得する。   The target 114 performs a response process 325-2 for the read request 321-2 and accesses the cache memory 122 as indicated by an arrow 326-1. At this time, the valid data 332 is accumulated in the cache memory 122. Therefore, the valid data 332 is supplied to the initiator 113 as indicated by the arrow 333. The valid data 332 is supplied to the initiator 113 via the PCI bus 110 (transaction 334) as indicated by arrows 333 and 335. The initiator 113 acquires the valid data 336 supplied in this way.

図15の場合、ターゲット114は、リード要求に対してデータ転送の準備が整うと、クロック(CLK)3のタイミングのように、ターゲットレディ(TRDY#)をアサートし、アドレス/データバス(AD[31:00])にキャッシュメモリ121のデータを出力する。イニシエータ113は、このアドレス/データバス(AD[31:00])の値を読み取ることにより、要求したデータを取得することができる。以上のようにして、データ転送を完了したイニシエータ113およびターゲット114は、各信号をディアサートし、バスサイクルを終了し、PCIバス110を解放する。   In the case of FIG. 15, when the target 114 is ready for data transfer in response to the read request, the target 114 asserts the target ready (TRDY #) as in the timing of the clock (CLK) 3, and the address / data bus (AD [ 31:00]), the data of the cache memory 121 is output. The initiator 113 can acquire the requested data by reading the value of this address / data bus (AD [31:00]). As described above, the initiator 113 and the target 114 that have completed the data transfer deassert each signal, end the bus cycle, and release the PCI bus 110.

以上が1つのアドレスに対する1回分の処理(図11のステップS62乃至ステップS68に対応する処理)である。通常のデータ転送時に、このように、イニシエータ113がリトライ検出後にアウェイタイマ値285分のクロック数をカウントする(待機する)ことにより、このバスサイクルにおいてPCIバス110に発生するトランザクションがトランザクション323−1、323−2、および334のみになり、PCIバス110は、不要なトラフィックの発生を抑制することができる。また、区間341において、イニシエータ113がPCIバス110を解放するので、他のマスタデバイスがPCIデータ転送処理を行うこともでき、各PCIデバイス111は、より有効にPCIバス110を利用することができる。   The above is one process for one address (process corresponding to steps S62 to S68 in FIG. 11). As described above, during normal data transfer, the initiator 113 counts (waits) the number of clocks corresponding to the away timer value 285 after detecting the retry, so that the transaction generated in the PCI bus 110 in this bus cycle is the transaction 323-1. 323-2 and 334, and the PCI bus 110 can suppress the generation of unnecessary traffic. Further, since the initiator 113 releases the PCI bus 110 in the section 341, other master devices can also perform PCI data transfer processing, and each PCI device 111 can use the PCI bus 110 more effectively. .

ただし、図14に示されるように、イニシエータ113は、時刻T2の時点で、ターゲット114のキャッシュメモリ122に有効データ332が用意されているのに、時刻T3までリード要求を行っていない。すなわち、イニシエータ113は、時刻T2から時刻T3までの間、不要に待機していることになる。従って、このアウェイタイマ値285では、待機時間が長すぎであり、イニシエータ113のデータ転送の効率が低下してしまう恐れがある。   However, as shown in FIG. 14, the initiator 113 has not made a read request until time T3 even though valid data 332 is prepared in the cache memory 122 of the target 114 at time T2. That is, the initiator 113 waits unnecessarily from time T2 to time T3. Therefore, with this away timer value 285, the waiting time is too long, and the data transfer efficiency of the initiator 113 may be reduced.

そこで、イニシエータ113の計測処理部131は、図17に示されるように、アウェイタイマ値285を1回分(予め定められたクロック数分)ディクリースし(図11のステップS69)、再度、上述したような処理を行う。すなわち、図17の場合、基本的にイニシエータ113およびターゲット114の動作は、図14乃至図16を参照して上述した場合と同様であるが、アウェイタイマ255によるカウント処理361の長さが、図14のカウント処理351の場合と比較して、予め定められたアウェイタイマ値285の減算量1回分に相当する区間361Aの分だけ短くなっている。   Therefore, as shown in FIG. 17, the measurement processing unit 131 of the initiator 113 decrements the away timer value 285 by one time (a predetermined number of clocks) (step S69 in FIG. 11), and again described above. Perform the following process. That is, in the case of FIG. 17, the operations of the initiator 113 and the target 114 are basically the same as those described above with reference to FIGS. 14 to 16, but the length of the count process 361 by the away timer 255 is Compared to the case of the count process 351 of 14, the interval 361A corresponding to one subtraction amount of the predetermined away timer value 285 is shortened.

すなわち、図17の場合、イニシエータ113は、時刻T1においてカウント処理361を開始し、時刻T4においてカウント処理361が終了すると、矢印362のように、リード要求321−2を発行する。従って、イニシエータ113の、リトライ検出後の待機時間は、時刻T1から時刻T4までの区間371となる。当然、この区間371は、図14の区間341より区間361Aだけ短い。   That is, in the case of FIG. 17, the initiator 113 starts the count process 361 at time T1 and, when the count process 361 ends at time T4, issues a read request 321-2 as indicated by an arrow 362. Accordingly, the standby time after the retry detection of the initiator 113 is a section 371 from time T1 to time T4. Naturally, this section 371 is shorter than the section 341 in FIG. 14 by the section 361A.

なお、この図17に示されるリード要求は、図14の場合に要求したアドレス(例えば、アドレスA221)と、同じターゲットの異なるアドレス(例えば、アドレスB222)に対する要求である。このアクセス先アドレスは、上述したように予め設定されている。   Note that the read request shown in FIG. 17 is a request for a different address (for example, address B222) of the same target as the address (for example, address A221) requested in the case of FIG. This access destination address is set in advance as described above.

図17の場合、イニシエータ113は、図14の処理より1回分待機時間を短くしてリード要求を行ったが、この場合においても、まだ、時刻T2から時刻T4までの間、不要に待機していることになる。そこで、イニシエータ113の計測処理部131は、同様にして、アウェイタイマ値285を減算しながら、図14および図17のような処理を繰り返し行う。このとき、イニシエータ113は、2つのアクセス先アドレスであるアドレスA221およびアドレスB222に対する処理を交互に行う。   In the case of FIG. 17, the initiator 113 has made a read request by shortening the waiting time by one time compared with the process of FIG. 14, but even in this case, the initiator 113 still waits unnecessarily from time T2 to time T4. Will be. Therefore, the measurement processing unit 131 of the initiator 113 similarly repeats the processes shown in FIGS. 14 and 17 while subtracting the away timer value 285. At this time, the initiator 113 alternately performs processing on the two access destination addresses, that is, the address A221 and the address B222.

そして、以上の処理の繰り返しにより、アウェイタイマ値285が短くなっていき、時刻T2よりも早くカウントが終了すると、図18に示されるように、待機後のリード要求に対して、イニシエータ113は、またリトライを検出する。   Then, by repeating the above processing, the away timer value 285 becomes shorter, and when the count ends earlier than time T2, the initiator 113 responds to the read request after waiting as shown in FIG. A retry is also detected.

図18の場合、図14のカウント処理351より区間381Aだけ短いカウント処理381が時刻T2より前の時刻T5において終了するので、イニシエータ113は、この時刻T5において、矢印382のようにリード要求321−2を再度発行する。従って、ターゲット114は、応答処理325−2を行う時点で、まだ、キャッシュメモリ122に有効データ331が用意されていない(データ転送の準備が整っていない)ので、矢印328−2および矢印329−2のようにリトライを返す。   In the case of FIG. 18, since the count process 381 shorter than the count process 351 of FIG. 14 by the section 381A ends at time T5 before time T2, the initiator 113 reads the read request 321-as indicated by the arrow 382 at this time T5. Issue 2 again. Accordingly, when the target 114 performs the response process 325-2, the valid data 331 is not yet prepared in the cache memory 122 (not ready for data transfer), so the arrows 328-2 and 329- Returns retry as in 2.

これにより、イニシエータ113は、リトライ処理330−2を検出することになる。このように、イニシエータ113が待機する区間391の時間が時刻T1から時刻T2までの時間より短くなると、待機後のリード要求においてもイニシエータ113はリトライ処理を検出することになる。このときのアウェイタイマ値285をレイテンシ値283とすると、不要なトランザクション323−2が発生してしまうので、イニシエータ113の計測処理部131は、アウェイタイマ値285を、今までディクリースしていた1回分をインクリメントする。   As a result, the initiator 113 detects the retry process 330-2. As described above, when the time of the section 391 in which the initiator 113 waits becomes shorter than the time from the time T1 to the time T2, the initiator 113 detects the retry process even in the read request after waiting. If the away timer value 285 at this time is set to the latency value 283, an unnecessary transaction 323-2 occurs, so the measurement processing unit 131 of the initiator 113 has been decrementing the away timer value 285 until now. Increment the batch.

すなわち、イニシエータ113は、図19に示されるようにリード要求を行う。図19の場合、イニシエータ113は、リトライ333−1を検出後、アウェイタイマ255を用いて、図14のカウント処理351より区間401Aだけ短く、かつ、図18のカウント処理381より区間401Bより長いカウント処理401を実行させる。そして、時刻T6において、カウント処理401が終了すると、イニシエータ113は、矢印402のように、リード要求321−2を発行する。すなわち、この場合、イニシエータ113は、時刻T1から時刻T6までの区間411の間待機し、PCIバス110を解放する。すなわち、この区間411において、他のPCIデバイス111がPCIバス110を利用することができる。   That is, the initiator 113 makes a read request as shown in FIG. In the case of FIG. 19, after detecting the retry 333-1, the initiator 113 uses the away timer 255 to count the section 401A shorter than the count process 351 in FIG. 14 and longer than the section 401B than the count process 381 in FIG. Process 401 is executed. When the count process 401 ends at time T6, the initiator 113 issues a read request 321-2 as indicated by an arrow 402. That is, in this case, the initiator 113 waits for a section 411 from time T1 to time T6 and releases the PCI bus 110. That is, in this section 411, other PCI devices 111 can use the PCI bus 110.

従って、イニシエータ113は、このようにリード要求を行うことにより、リトライ検出後に、最適な待機時間でリード要求を行うことができる。そこで、イニシエータ113の検出処理部131は、この1回分インクリメントしたアウェイタイマ値285をレイテンシ値283としてレイテンシ値レジスタ273に格納する。これにより、イニシエータ113は、通常のデータ転送処理において、このレイテンシ値283を用いて処理を行うことができ、各PCIデバイス110は、PCIバス110を有効に利用することができる。   Therefore, the initiator 113 can make a read request in an optimal standby time after detecting a retry by making a read request in this way. Therefore, the detection processing unit 131 of the initiator 113 stores the one-time incremented away timer value 285 in the latency value register 273 as the latency value 283. Accordingly, the initiator 113 can perform processing using the latency value 283 in normal data transfer processing, and each PCI device 110 can effectively use the PCI bus 110.

図20のフローチャートを参照して、通常のメモリリード処理を説明する。   A normal memory read process will be described with reference to the flowchart of FIG.

メモリリード処理を開始した、イニシエータ113のデバイス制御部252は、ステップS101において、上述したようにフレーム(FRAME#)をアサートし、バスサイクルの開始を通知し、ステップS102において、アドレス/データバス(AD[31:00])にアドレスを出力するとともに、バスコマンド/バイトイネーブル(C/BE[3:0]#)にバスコマンドを供給することによってリードコマンドを供給する。リードコマンドを供給したデバイス制御部252は、ステップS103において、アドレス/データバス(AD[31:00])およびバスコマンド/バイトイネーブル(C/BE[3:0]#)の状態をデータフェーズに移行することにより、データ取得の準備を行う。   The device control unit 252 of the initiator 113 that has started the memory read process asserts the frame (FRAME #) as described above in step S101 and notifies the start of the bus cycle. In step S102, the address / data bus ( AD [31:00]) outputs an address, and supplies a read command by supplying a bus command to the bus command / byte enable (C / BE [3: 0] #). In step S103, the device control unit 252 that has supplied the read command sets the state of the address / data bus (AD [31:00]) and the bus command / byte enable (C / BE [3: 0] #) to the data phase. Prepare for data acquisition by migrating.

そして、デバイス制御部252は、ステップS104において、ストップ(STOP#)を監視し、リトライを検出したか否かを判定する。ストップ(STOP#)がアサートされ、リトライを検出したと判定した場合、デバイス制御部252は、処理をステップS105に進め、フレーム(FRAME#)やリクエスト(REQ#)をディアサートし、PCIバス110を解放し、リード要求を行ったターゲット114に対応するターゲット別レジスタ空間261のレイテンシ値レジスタ273よりレイテンシ値283を読み出し、アウェイタイマ255にその時間をカウントさせ、その間待機する。アウェイタイマ255がカウント終了を出力すると、デバイス制御部252は、それを検知し、処理をステップS10に戻してそれ以降の処理を繰り返し、再度リードコマンドをターゲット114に発行する。   In step S104, the device control unit 252 monitors a stop (STOP #) and determines whether a retry is detected. When it is determined that a stop (STOP #) is asserted and a retry is detected, the device control unit 252 advances the process to step S105, deasserts a frame (FRAME #) or a request (REQ #), and the PCI bus 110 The latency value 283 is read from the latency value register 273 of the target-specific register space 261 corresponding to the target 114 that has made the read request, and the time is counted by the away timer 255, and the process waits. When the away timer 255 outputs the count end, the device control unit 252 detects this, returns the process to step S10, repeats the subsequent processes, and issues the read command to the target 114 again.

また、ステップS104において、リードコマンドに対応するリトライを検出していないと判定した場合、デバイス制御部252は、処理をステップS107に進め、ストップ(STOP#)がディアサートの状態で、かつ、リードコマンドを出力したターゲットよりアドレス/データバス(AD[31:00])にデータが出力されたか否かを判定することにより、データの供給準備が整ったか否かを判定する。   If it is determined in step S104 that a retry corresponding to the read command has not been detected, the device control unit 252 advances the process to step S107, the stop (STOP #) is deasserted, and the read By determining whether or not data is output from the target that has output the command to the address / data bus (AD [31:00]), it is determined whether or not data supply is ready.

データの供給準備が整った(ストップ(STOP#)がディアサートの状態で、かつ、リードコマンドを出力したターゲットよりアドレス/データバス(AD[31:00])にデータが出力された)と判定した場合、デバイス制御部252は、処理をステップS108に進め、アドレス/データバス(AD[31:00])をラッチし、そのデータを取得し、ステップS109において終了処理を行った後、メモリリード処理を終了する。   Determined that data is ready to be supplied (stop (STOP #) is deasserted and data is output to the address / data bus (AD [31:00]) from the target that output the read command) In this case, the device control unit 252 advances the process to step S108, latches the address / data bus (AD [31:00]), acquires the data, performs the termination process in step S109, and then performs the memory read. The process ends.

また、ステップS107において、ストップ(STOP#)およびターゲットレディ(TRDY#)がディアサートの状態でリードコマンドに対する応答を取得していないと判定した場合、デバイス制御部252は、処理をステップS110に進め、リードコマンドに対する応答としてターゲットアボートを検出したか否かを判定する。ターゲットアボートを取得していないと判定した場合、デバイス制御部252は、処理をステップS104に戻し、それ以降の処理を繰り返す。   If it is determined in step S107 that the response to the read command has not been acquired when the stop (STOP #) and the target ready (TRDY #) are deasserted, the device control unit 252 advances the process to step S110. Then, it is determined whether a target abort has been detected as a response to the read command. If it is determined that the target abort has not been acquired, the device control unit 252 returns the process to step S104 and repeats the subsequent processes.

ステップS110において、ストップ(STOP#)がアサートされ、かつ、ターゲットレディ(TRDY#)とデバイスセレクション(DEVSEL#)がディアサートされており、ターゲットアボートを検出したと判定した場合、デバイス制御部252は、ステップS111に処理を進め、アボート処理を実行し、デバイスドライバにエラーを通知する等して、メモリリード処理を終了する。   In step S110, when it is determined that stop (STOP #) is asserted and target ready (TRDY #) and device selection (DEVSEL #) are deasserted and target abort is detected, the device control unit 252 Then, the process proceeds to step S111, the abort process is executed, the error is notified to the device driver, and the memory read process is terminated.

以上のように、メモリリード処理を行うことにより、イニシエータ113は、図19に示されるように最適な待機時間を用いてリード要求を繰り返すことができる。このように要求処理を行うことにより、イニシエータ113は、データ転送処理において余分なアクセス回数を減少させるので、PCIバス110のトラフィックを軽減させる等して、PCIバス110をより有効に活用することができる。   As described above, by performing the memory read process, the initiator 113 can repeat the read request using the optimum standby time as shown in FIG. By performing the request processing in this way, the initiator 113 reduces the number of unnecessary accesses in the data transfer processing, so that the PCI bus 110 can be used more effectively by reducing the PCI bus 110 traffic. it can.

なお、上述したように、イニシエータ113およびターゲット114は、PCIバス110に接続された任意のPCIデバイス111であり、それらによるPCIデータ転送112は、任意のPCIデバイス111間のデータ転送に適用することができる。すなわち、各マスタデバイスは、図10のフローチャートを参照して上述したレイテンシ値設定処理は、それぞれ、各ターゲットに対して行う。すなわち、レイテンシ値の設定が全て完了した時点で、PCIバス110に接続された全てのマスタデバイスは、それぞれ、全てのターゲットに対する最適なレイテンシ値を保持している。従って、PCIバス110に接続された全てのPCIデバイス111は、最適な待機時間を用いてデータ転送処理を行うことができ、PCIバス110をより有効に活用することができる。   As described above, the initiator 113 and the target 114 are arbitrary PCI devices 111 connected to the PCI bus 110, and the PCI data transfer 112 by them is applied to data transfer between arbitrary PCI devices 111. Can do. That is, each master device performs the latency value setting process described above with reference to the flowchart of FIG. 10 for each target. That is, when all the latency value settings are completed, all the master devices connected to the PCI bus 110 hold the optimum latency values for all the targets, respectively. Therefore, all the PCI devices 111 connected to the PCI bus 110 can perform data transfer processing using an optimal standby time, and the PCI bus 110 can be used more effectively.

また、PCIデバイス111は、PCIバス110に接続されており、PCIバス110を介して他のPCIデバイス111とデータ転送を行うものであればよく、例えば、CPU141も含まれる。従って、CPU141をイニシエータ113またはターゲット114とすることも可能である。さらに、イニシエータ113またはターゲット114として、例えば、PCI-PCIブリッジ等を介してPCIバス110に接続された他のPCIバスのPCIデバイス(いずれも図示せず)であってもよい。例えば、イニシエータ113とターゲット114が互いに異なるPCIバスに接続されている場合、イニシエータ113は、その2つのPCIバスを接続するブリッジをターゲットとして動作し、そのブリッジは、イニシエータ113に対してターゲットとして動作する。逆に、ブリッジはターゲット114に対してイニシエータのように振る舞い、ターゲット114は、ブリッジをイニシエータとした上で動作を行う。   The PCI device 111 may be any device that is connected to the PCI bus 110 and performs data transfer with other PCI devices 111 via the PCI bus 110, and includes, for example, a CPU 141. Therefore, the CPU 141 can be the initiator 113 or the target 114. Furthermore, the initiator 113 or the target 114 may be, for example, a PCI device (not shown) of another PCI bus connected to the PCI bus 110 via a PCI-PCI bridge or the like. For example, when the initiator 113 and the target 114 are connected to different PCI buses, the initiator 113 operates using a bridge connecting the two PCI buses as a target, and the bridge operates as a target for the initiator 113. To do. Conversely, the bridge behaves like an initiator with respect to the target 114, and the target 114 operates with the bridge as an initiator.

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

さらに、イニシエータ113が複数のデバイスとしての機能を有している場合(多機能デバイスである場合)、イニシエータ113は、機能ごとにレイテンシ値設定処理を行うようにしてもよいし、同じターゲットに対する1つのレイテンシ値を、1つのPCIデバイス111内で共有するようにしてもよい。逆にターゲット114が複数のデバイスとしての機能を有している場合、イニシエータ113は、各機能毎に、レイテンシ値を計測してもよいし、1つの機能についてのみ計測し、その結果得られたレイテンシ値を、そのターゲットの全ての機能について適用するようにしてももちろんよい。   Furthermore, when the initiator 113 has a function as a plurality of devices (when it is a multi-function device), the initiator 113 may perform a latency value setting process for each function, or 1 for the same target. One latency value may be shared within one PCI device 111. Conversely, when the target 114 has functions as a plurality of devices, the initiator 113 may measure the latency value for each function, or measure only one function, and the result is obtained. Of course, the latency value may be applied to all the functions of the target.

なお、以上においては、イニシエータ113は、メモリリード処理を用いて計測処理を行い、最適なレイテンシ値283を決定するように説明したが、これに限らず、メモリライト処理、I/Oリード処理、またはI/Oライト処理等のように他の処理であってももちろんよい。例えば、イニシエータ113が、ターゲット114の機能に応じて、ターゲット114に対して実際に行う処理を選択し、その処理を繰り返す際の待機時間を、上述したように計測し、レイテンシ値283を決定するようにしてもよい。   In the above description, the initiator 113 performs the measurement process using the memory read process and determines the optimum latency value 283. However, the present invention is not limited to this, and the memory write process, the I / O read process, Of course, other processing such as I / O write processing may be used. For example, the initiator 113 selects a process to be actually performed on the target 114 according to the function of the target 114, measures the waiting time when the process is repeated, and determines the latency value 283 as described above. You may do it.

また、図11乃至図13のフローチャートに示されるように、イニシエータ113は、2つのアドレス(例えば、アドレスA221およびアドレスB222)に対してリード要求を交互に繰り返すように説明したが、このアクセス先アドレスの数は、1つであっても複数であってもよい。ただし、アクセス先アドレスが1つである場合、イニシエータ113は、ターゲット114のキャッシュメモリ122が保持するデータが確実にクリアされるまで待機する必要がある。   Further, as illustrated in the flowcharts of FIGS. 11 to 13, the initiator 113 has been described to alternately repeat the read request for two addresses (for example, the address A 221 and the address B 222). The number of may be one or plural. However, when there is one access destination address, the initiator 113 needs to wait until the data held in the cache memory 122 of the target 114 is securely cleared.

以上においては、全てのPCIデバイス111が上述した処理に対応しているように説明したが、これに限らず、PCIデバイス111の内、一部のマスタデバイスのみが、図6に示されるような計測処理部131を有し、図10のフローチャートを参照して説明したレイテンシ値設定処理や図11乃至図13のフローチャートを参照して説明した計測処理を実行可能であるようにしてもよい。その場合、CPU141は、図7(リセット処理)のステップS3において、レイテンシ値の設定を行うことができるマスタデバイスを特定し、ステップS4において、それらの特定されたマスタデバイスについてのみ制御するようにレイテンシ値設定制御処理を実行する。なお、この場合、マスタ特定部203が、各マスタデバイスについて、レイテンシ値の設定可能であるか否かを判定する方法として、例えば、レイテンシ値設定可能なマスタデバイスのコンフィギュレーションレジスタ等にその情報が予め格納されているようにする方法がある。マスタ特定部203は、図7のステップS3において、コンフィギュレーションレジスタに格納されたその情報を参照することにより、レイテンシ値を設定可能であるか否かを判定する。   In the above, it has been described that all the PCI devices 111 correspond to the above-described processing. However, the present invention is not limited to this, and only some master devices of the PCI devices 111 are as shown in FIG. The measurement processing unit 131 may be provided so that the latency value setting process described with reference to the flowchart of FIG. 10 and the measurement process described with reference to the flowcharts of FIGS. In that case, the CPU 141 identifies master devices that can set latency values in step S3 of FIG. 7 (reset processing), and in step S4, the latency is controlled so as to control only those identified master devices. Execute value setting control processing. In this case, as a method for determining whether or not the latency value can be set for each master device, the master specifying unit 203 includes, for example, the information in the configuration register of the master device capable of setting the latency value. There is a method of storing in advance. In step S3 of FIG. 7, the master specifying unit 203 refers to the information stored in the configuration register to determine whether or not the latency value can be set.

また、以上においては、PCIバス110のリセット時にレイテンシ値の設定処理が行われるように説明したが、これ以外にも、例えば、CPU141が常にPCIバス110の状態を監視し、不要なトランザクション(リトライによるトランザクション)の多発を検知し、その場合、そのPCIデバイスのレイテンシ値を再設定するようにしてもよい。   In the above description, the latency value setting process is performed when the PCI bus 110 is reset. However, for example, the CPU 141 constantly monitors the state of the PCI bus 110 and performs unnecessary transactions (retry). Frequent transactions) may be detected, and in that case, the latency value of the PCI device may be reset.

その場合のCPU141の内部の構成例を図21に示す。なお、図5の場合と同様の構成のブロックについては同じ符号が付されている。すなわち、CPU141は、図5の場合の構成の他に、リトライによるトランザクションを監視するリトライ監視部421を有している。   An example of the internal configuration of the CPU 141 in that case is shown in FIG. In addition, the same code | symbol is attached | subjected about the block of the structure similar to the case of FIG. That is, the CPU 141 includes a retry monitoring unit 421 that monitors a transaction due to a retry in addition to the configuration in the case of FIG.

リトライ監視部421は、ホストPCIブリッジ151を介して、PCIバス110を介して行われる各PCIデータ転送を監視し、リトライによるトランザクションを監視する。そして、リトライの数が予め定められた所定の数より多くなった場合、リトライ監視部421は、計測処理実行制御部206を制御し、そのPCIデータ転送を行ったイニシエータとターゲットとの計測処理の実行制御を開始させる。   The retry monitoring unit 421 monitors each PCI data transfer performed via the PCI bus 110 via the host PCI bridge 151 and monitors a transaction due to the retry. When the number of retries exceeds a predetermined number, the retry monitoring unit 421 controls the measurement processing execution control unit 206 to perform measurement processing of the initiator and target that performed the PCI data transfer. Start execution control.

このようなリトライ監視処理を図22のフローチャートを参照して説明する。   Such retry monitoring processing will be described with reference to the flowchart of FIG.

リトライ監視処理を開始したリトライ監視処理部421は、ステップS131においてPCIバス110を監視し、現在行われているPCIデータ転送を監視する。ステップS132において、リトライ監視処理部421は、リトライを検出したか否かを判定し、リトライを検出した場合、ステップS133に処理を進め、リトライをカウントするカウンタをカウントアップさせ、そのリトライをカウントする。   The retry monitoring processing unit 421 that has started the retry monitoring process monitors the PCI bus 110 in step S131 and monitors the PCI data transfer currently being performed. In step S132, the retry monitoring processing unit 421 determines whether or not a retry has been detected. If a retry is detected, the retry monitoring processing unit 421 proceeds to step S133, increments a counter that counts the retry, and counts the retry. .

リトライをカウントしたリトライ監視部421は、ステップS134に処理を進める。また、ステップS132において、リトライを検出していないと判定した場合、リトライ監視部421は、ステップS133の処理を省略し、ステップS134に処理を進める。   The retry monitoring unit 421 that has counted the retry advances the process to step S134. If it is determined in step S132 that no retry has been detected, the retry monitoring unit 421 skips step S133 and proceeds to step S134.

ステップS134において、リトライ監視部421は、PCIデータ転送が終了したか否かを判定し、終了していないと判定した場合、処理をステップS131に戻してそれ以降の処理を繰り返し、そのPCIデータ転送に対する監視を続け、リトライを検出する度にそのリトライをカウントする。そして、ステップS134において、PCIデータ転送が終了したと判定した場合、リトライ監視部421は、ステップS135に処理を進め、カウントしたカウント値(すなわち、監視したPCIデータ転送において検出したリトライの数)が所定の数より大きいか否かを判定する。   In step S134, the retry monitoring unit 421 determines whether or not the PCI data transfer has been completed. If it is determined that the PCI data transfer has not ended, the retry monitoring unit 421 returns the process to step S131 and repeats the subsequent processes, thereby transferring the PCI data transfer. Monitoring is continued, and each time a retry is detected, the retry is counted. If it is determined in step S134 that the PCI data transfer has ended, the retry monitoring unit 421 proceeds to step S135, and the counted value (that is, the number of retries detected in the monitored PCI data transfer) is obtained. It is determined whether it is larger than a predetermined number.

カウント値が所定の数より大きいと判定した場合、リトライ監視部421は、処理をステップS136に進め、計測処理実行制御部206を制御し、図9のフローチャートを参照して説明したようなレイテンシ値設定制御処理を実行させ、リトライを多数検出したPCIデータ転送を行っていたイニシエータ113にターゲット114に対する計測処理の実行を開始させる。ただし、この場合、計測処理実行制御部206は、イニシエータ113に、少なくとも、監視したPCIデータ転送の通信相手であるターゲット114についてレイテンシ値の再設定を行わせればよく、全てのターゲットに対してレイテンシ値設定処理(図10)を実行させる必要はない。   If it is determined that the count value is greater than the predetermined number, the retry monitoring unit 421 advances the process to step S136 to control the measurement process execution control unit 206, and the latency value as described with reference to the flowchart of FIG. The setting control process is executed, and the initiator 113 that has performed PCI data transfer in which many retries have been detected is started to execute the measurement process for the target 114. However, in this case, the measurement process execution control unit 206 may cause the initiator 113 to reset the latency value for at least the target 114 that is the communication partner of the monitored PCI data transfer, and the latency for all the targets. There is no need to execute the value setting process (FIG. 10).

ステップS136の処理を終了したリトライ監視部421は、ステップS137に処理を進める。また、ステップS135において、リトライ監視部421は、カウント値が所定の数より大きくないと判定した場合、ステップS136の処理を省略し、ステップS137に処理を進める。   The retry monitoring unit 421 that has finished the process of step S136 advances the process to step S137. If the retry monitoring unit 421 determines in step S135 that the count value is not greater than the predetermined number, the process of step S136 is omitted, and the process proceeds to step S137.

ステップS137において、リトライ監視部421は、カウント値をリセットし、ステップS138に処理を進め、リトライ監視処理を終了するか否かを判定し、終了しないと判定した場合、処理をステップS131に進め、次のPCIデータ転送に対する監視を開始する。また、ステップS138において、リトライ監視処理を終了すると判定した場合、リトライ監視部421は、リトライ監視処理を終了する。   In step S137, the retry monitoring unit 421 resets the count value, proceeds to step S138, determines whether or not to end the retry monitoring process, and determines that the retry monitoring process is not ended, the process proceeds to step S131. Start monitoring for the next PCI data transfer. If it is determined in step S138 that the retry monitoring process is to be terminated, the retry monitoring unit 421 ends the retry monitoring process.

以上のように、リトライ監視部421が通常のPCIデータ転送時に、各PCIデータ転送におけるリトライ数をカウントし、リトライ数が多すぎる場合は、計測処理実行制御部206を制御し、イニシエータ113にレイテンシ値の再設定を行わせることにより、例えば、通常のPCIデータ転送が行われている期間に、最適なレイテンシ値が変化するような場合においても、イニシエータ113は、すぐにレイテンシ値の再設定処理を行い、常に最適なレイテンシ値によりPCIデータ転送を行うことができる。   As described above, the retry monitoring unit 421 counts the number of retries in each PCI data transfer during normal PCI data transfer, and if the number of retries is too large, the measurement process execution control unit 206 is controlled and the latency is set to the initiator 113. By causing the value to be reset, for example, even when the optimum latency value changes during a period in which normal PCI data transfer is performed, the initiator 113 immediately resets the latency value. PCI data transfer can always be performed with the optimum latency value.

なお、以上においては、PCIバス110がリセットされると、各マスタデバイスによるレイテンシ値の設定処理が行われるように説明したが、これに限らず、例えば、マスタデバイスの一部または全部が、リセット前に使用されていたレイテンシ値を不揮発性のメモリ等に保持し、リセット後に設定処理を省略してその保持していたレイテンシ値を流用するようにしてももちろんよい。このようにすることにより、各マスタデバイスは、図10を参照して説明したようなレイテンシ値設定処理を省略することができるので、リセット処理の負荷を軽減させることができる。   In the above description, when the PCI bus 110 is reset, the setting process of the latency value is performed by each master device. However, the present invention is not limited to this, and for example, a part or all of the master device is reset. Of course, the previously used latency value may be held in a non-volatile memory or the like, the setting process may be omitted after resetting, and the held latency value may be used. By doing so, each master device can omit the latency value setting process as described with reference to FIG. 10, thereby reducing the load of the reset process.

また、図4においては、画像処理装置100のCPU141がホストPCIブリッジ151を内蔵するように説明したが、これに限らず、例えば、図23に示されるように、CPU141とホストPCIブリッジ151が互いに別体として構成されるようにしてももちろんよい。   In FIG. 4, the CPU 141 of the image processing apparatus 100 has been described as including the host PCI bridge 151. However, the present invention is not limited thereto. For example, as illustrated in FIG. 23, the CPU 141 and the host PCI bridge 151 are mutually connected. Of course, it may be configured as a separate body.

図23において、ホストPCIバス431は、PCIバス110とホストバス440に接続されており、図4のホストPCIブリッジ151と同様の機能を有し、同様の処理を行う。図23の場合、CPU141は、図4の場合と異なりホストPCIブリッジ151を有していないが、PCIバス110側(PCIデバイス111)との通信は、ホストPCIバス431を介して行われるので、CPU141内部の各部の処理は、図4の場合と実質的に同様の処理により実現することができる。   23, the host PCI bus 431 is connected to the PCI bus 110 and the host bus 440, has the same function as the host PCI bridge 151 in FIG. 4, and performs the same processing. In the case of FIG. 23, the CPU 141 does not have the host PCI bridge 151 unlike the case of FIG. 4, but the communication with the PCI bus 110 side (PCI device 111) is performed via the host PCI bus 431. The processing of each part in the CPU 141 can be realized by processing substantially similar to the case of FIG.

また、CPU141は、ホストバス440を介して、ホストPCIバス431の他に、メインメモリ161とも接続されている。ホストバス440は、図4のホストバス160と基本的に同様のバスである。   The CPU 141 is connected to the main memory 161 in addition to the host PCI bus 431 via the host bus 440. The host bus 440 is basically the same bus as the host bus 160 in FIG.

図23においては、図示は省略しているが、PCIバス110のアービタやPCIコントローラは、ホストPCIブリッジ431に内蔵されている。しかしながら、これらのアービタやPCIコントローラ等がさらに、ホストPCIブリッジ431と別体に構成されるようにしてももちろんよい。   Although not shown in FIG. 23, the arbiter and PCI controller of the PCI bus 110 are built in the host PCI bridge 431. However, these arbiters, PCI controllers, and the like may be further configured separately from the host PCI bridge 431.

なお、以上においては、レイテンシ値設定処理や計測処理を(CPU141の制御により)各マスタデバイスが行うように説明したが、これらの処理をCPU141が行うようにしてももちろんよい。その場合、CPU141は、リクエスト(REQ#)やグラント(GNT#)等のように上述した以外の信号も監視し、現在のバスサイクルを行っているPCIデバイス111を特定する必要がある。このように、CPU141が、計測処理等も行うことにより、画像処理装置100は、どのようなPCIデバイス111が接続されてもPCIバス110を有効に活用させることができる。   In the above description, the latency value setting process and the measurement process are described as being performed by each master device (by the control of the CPU 141). However, the CPU 141 may naturally perform these processes. In this case, the CPU 141 needs to monitor signals other than those described above, such as a request (REQ #) and a grant (GNT #), and identify the PCI device 111 that is performing the current bus cycle. As described above, the CPU 141 performs measurement processing and the like, so that the image processing apparatus 100 can effectively use the PCI bus 110 regardless of which PCI device 111 is connected.

また、図10のフローチャートを参照して説明したレイテンシ値設定処理や図11乃至図13のフローチャートを参照して説明した計測処理において、イニシエータ113の計測処理部131は、初めにアウェイタイマ値285(レイテンシ値283)の最大値である初期アウェイ値211をアウェイタイマ値285の初期値とし、そこから所定の値をディクリースしながら計測に関する処理を繰り返すように説明したが、これ以外にも、例えば、アウェイタイマ値285の初期値である初期アウェイ値211がアウェイタイマ値285(レイテンシ値283)の最小値とし、イニシエータ113が、その状態から計測に関する処理を繰り返し、その度に、アウェイタイマ値に所定の値分ずつインクリースしていき、待機後にリトライが検出されなくなるまで繰り返すようにしてもよい。   In the latency value setting process described with reference to the flowchart of FIG. 10 and the measurement process described with reference to the flowcharts of FIGS. 11 to 13, the measurement processing unit 131 of the initiator 113 first sets the away timer value 285 ( The initial away value 211 which is the maximum value of the latency value 283) is set as the initial value of the away timer value 285, and the processing related to measurement is repeated while decrementing a predetermined value therefrom. The initial away value 211, which is the initial value of the away timer value 285, is set to the minimum value of the away timer value 285 (latency value 283), and the initiator 113 repeats the processing related to the measurement from that state, Increments the specified amount, and a retry is detected after waiting It may be repeated until is no longer.

また、イニシエータ113の計測処理部131がアウェイタイマ値285をディクリース(またはインクリース)する値が可変である(例えば、その値がディクリース(またはインクリース)を行う度に変化する)ようにしてももちろんよい。   In addition, the value by which the measurement processing unit 131 of the initiator 113 decrements (or increments) the away timer value 285 is variable (for example, the value changes every time the increment (or increment) is performed). Of course.

また、以上においては、映像機器である画像処理装置について説明したが、上述したようなバスシステムを有する装置であれば何でもよく、例えば、パーソナルコンピュータやサーバ等の情報処理装置であってもよいし、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.

上述した一連の処理は、ハードウェアにより実行させることもできるし、ソフトウエアにより実行させることもできる。この場合、例えば、CPU141が、ドライブ173を介してリムーバブルメディア174より読み出した、マスタデバイスが図10のフローチャートを参照して説明したレイテンシ値設定処理や、図11乃至図13のフローチャートを参照して説明した計測処理等を実行するのに必要なプログラムやデータを、PCIバス110を介して、各マスタデバイス(PCIデバイス111の一部)に供給し、インストールするようにしてもよい。   The series of processes described above can be executed by hardware or can be executed by software. In this case, for example, the master device reads out from the removable medium 174 via the drive 173, and the master device described with reference to the flowchart of FIG. 10 and the latency value setting process described with reference to the flowchart of FIG. A program and data necessary for executing the described measurement processing and the like may be supplied to each master device (part of the PCI device 111) via the PCI bus 110 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バス110に接続することにより、CPU141が必要なプログラムやデータをインストールすることができる。従って、画像処理装置100は、どのようなPCIデバイス111が接続されてもPCIバス110を有効に活用させることができる。   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 141 by connecting to the PCI bus 110. Therefore, the image processing apparatus 100 can effectively utilize the PCI bus 110 regardless of what PCI device 111 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.

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

なお、本明細書において、記録媒体に記録されるプログラムを記述するステップは、記載された順序に沿って時系列的に行われる処理はもちろん、必ずしも時系列的に処理されなくとも、並列的あるいは個別に実行される処理をも含むものである。   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).

従来のPCIバスシステムについて説明するブロック図である。It is a block diagram explaining the conventional PCI bus system. 従来のPCIデータ転送処理の流れについて説明する模式図である。It is a schematic diagram explaining the flow of the conventional PCI data transfer process. バースト転送について説明する図である。It is a figure explaining burst transfer. 本発明を適用した画像処理装置100の構成例を示すブロック図である。It is a block diagram which shows the structural example of the image processing apparatus 100 to which this invention is applied. 図4のCPUの詳細な構成例を示すブロック図である。FIG. 5 is a block diagram illustrating a detailed configuration example of a CPU in FIG. 4. 図4のイニシエータの詳細な構成例を示すブロック図である。FIG. 5 is a block diagram illustrating a detailed configuration example of the initiator in FIG. 4. リセット処理の例を説明するフローチャートである。It is a flowchart explaining the example of a reset process. ターゲットに割り当てられるメモリ空間の構成例を示す模式図である。It is a schematic diagram which shows the structural example of the memory space allocated to a target. レイテンシ値設定制御処理の例を説明するフローチャートである。It is a flowchart explaining the example of a latency value setting control process. レイテンシ値設定処理の例を説明するフローチャートである。It is a flowchart explaining the example of a latency value setting process. 計測処理の例を説明するフローチャートである。It is a flowchart explaining the example of a measurement process. 計測処理の例を説明する、図11に続くフローチャートである。It is a flowchart following FIG. 11 explaining the example of a measurement process. 計測処理の例を説明する、図12に続くフローチャートである。It is a flowchart following FIG. 12 explaining the example of a measurement process. 1つのアドレスに対する計測処理の流れの例を説明する図である。It is a figure explaining the example of the flow of the measurement process with respect to one address. リードサイクルにおける信号の状態遷移の例を説明する図である。It is a figure explaining the example of the state transition of the signal in a read cycle. リトライにおける信号の状態遷移の例を説明する図である。It is a figure explaining the example of the state transition of the signal in retry. 1つのアドレスに対する計測処理の流れの他の例を説明する図である。It is a figure explaining the other example of the flow of the measurement process with respect to one address. 1つのアドレスに対する計測処理の流れの他の例を説明する図である。It is a figure explaining the other example of the flow of the measurement process with respect to one address. 1つのアドレスに対する計測処理の流れの他の例を説明する図である。It is a figure explaining the other example of the flow of the measurement process with respect to one address. メモリリード処理の例を説明するフローチャートである。It is a flowchart explaining the example of a memory read process. 図4のCPUの詳細な他の構成例を示すブロック図である。FIG. 5 is a block diagram illustrating another detailed configuration example of the CPU in FIG. 4. リトライ監視処理の例を説明するフローチャートである。It is a flowchart explaining the example of a retry monitoring process. 本発明を適用した画像処理装置100の他の構成例を示すブロック図である。It is a block diagram which shows the other structural example of the image processing apparatus 100 to which this invention is applied.

符号の説明Explanation of symbols

100 画像処理装置, 110 PCIバス 111 PCIデバイス, 112 PCIデータ転送, 113 イニシエータ, 114 ターゲット, 120 ローカルバス, 121 ローカルメモリ, 122 キャッシュメモリ, 131 計測処理部, 141 CPU, 151 ホストPCIブリッジ, 152 レイテンシ値設定制御部, 160 ホストバス, 161 メインメモリ, 171 ROM, 172 記憶部, 173 ドライブ, 174 リムーバブルメディア, 201 PCIコンフィギュレーション処理部, 202 アドレス設定部, 203 マスタ特定部, 204 初期アウェイ値設定部, 205 アドレスセット処理部, 206 計測処理実行制御部, 211 初期アウェイ値, 212 完了フラグ, 213 レイテンシ値設定用アクセス先アドレス, 221 アドレスA, 222 アドレスB, 251 PCIインタフェース処理部, 252 デバイス制御部, 253 初期アウェイ値セット処理部, 254 アドレスセット処理部, 255 アウェイタイマ, 261 ターゲット別レジスタ空間, 271 レイテンシ値設定用アクセス先アドレスレジスタA, 272 レイテンシ値設定用アクセス先アドレスレジスタB, 273 レイテンシ値レジスタ, 274 初期アウェイ値レジスタ, 275 アウェイタイマ値レジスタ, 283 レイテンシ値, 284 初期アウェイ値, 285 アウェイタイマ値, 421 リトライ監視部, 431 ホストPCIブリッジ, 440 ホストバス   100 image processing apparatus, 110 PCI bus, 111 PCI device, 112 PCI data transfer, 113 initiator, 114 target, 120 local bus, 121 local memory, 122 cache memory, 131 measurement processing unit, 141 CPU, 151 host PCI bridge, 152 latency Value setting control unit, 160 host bus, 161 main memory, 171 ROM, 172 storage unit, 173 drive, 174 removable media, 201 PCI configuration processing unit, 202 address setting unit, 203 master specifying unit, 204 initial away value setting unit , 205 Address set processing unit, 206 Measurement processing execution control unit, 211 Initial away value, 212 Completion flag, 213 Latency value setting action Destination address, 221 address A, 222 address B, 251 PCI interface processing unit, 252 device control unit, 253 initial away value set processing unit, 254 address set processing unit, 255 away timer, 261 target space, 271 latency value Setting access destination address register A, 272 Latency value setting access destination address register B, 273 Latency value register, 274 Initial away value register, 275 Away timer value register, 283 Latency value, 284 Initial away value, 285 Away timer value, 421 retry monitoring unit, 431 host PCI bridge, 440 host bus

Claims (21)

複数のデバイスが接続されたシステムバスを有し、前記複数のデバイスが前記システムバスを介して互いにデータ転送を行う情報処理装置において、
前記データ転送を制御して前記データ転送を行うデバイスであるマスタデバイスが、前記データ転送の開始を要求するコマンドを発行後、前記コマンドを再発行するまでの待機時間を制御し、前記マスタデバイスの待機時間として設定するマスタデバイス待機時間を計測する計測手段と、
前記計測手段により計測された前記マスタデバイス待機時間に対応する値を、前記マスタデバイスが前記データ転送において使用するレイテンシ値として設定するレイテンシ値設定手段と
を備えることを特徴とする情報処理装置。
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.
The master device, which is a device that controls the data transfer and performs the data transfer, controls a waiting time until the command is reissued after issuing a command requesting the start of the data transfer. Measuring means for measuring the master device standby time set as the standby time;
An information processing apparatus comprising: latency value setting means for setting a value corresponding to the master device standby time measured by the measuring means as a latency value used by the master device in the data transfer.
前記計測手段は、前記待機時間を制御し、前記マスタデバイス待機時間として、前記マスタデバイスの前記データ転送の相手のデバイスであるターゲットが前記コマンドを取得してから前記データ転送の準備を整えるまでの時間を計測する
ことを特徴とする請求項1に記載の情報処理装置。
The measuring means controls the standby time, and as the master device standby time, a target that is a device to which the data transfer of the master device is a target until the preparation of the data transfer is completed after acquiring the command. The information processing apparatus according to claim 1, wherein time is measured.
前記計測手段は、前記待機時間を制御し、前記マスタデバイスの前記データ転送の相手のデバイスであるターゲットが前記コマンドを取得してから前記データ転送の準備を整えるまでの時間よりも長い前記マスタデバイス待機時間を計測する
ことを特徴とする請求項1に記載の情報処理装置。
The measuring means controls the standby time, and the master device is longer than the time from when the target of the data transfer partner device of the master device acquires the command to prepare for the data transfer The information processing apparatus according to claim 1, wherein the waiting time is measured.
前記計測手段は、前記待機時間を制御し、前記マスタデバイス待機時間として、最も短い時間となるように最適化された待機時間である最適待機時間を計測する
ことを特徴とする請求項3に記載の情報処理装置。
The said measurement means controls the said waiting time, and measures the optimal waiting time which is the waiting time optimized so that it may become the shortest time as the said master device waiting time. Information processing device.
前記計測手段は、前記待機時間を制御し、前記待機時間の制御単位上において、前記最適待機時間を計測する
ことを特徴とする請求項3に記載の情報処理装置。
The information processing apparatus according to claim 3, wherein the measuring unit controls the standby time and measures the optimum standby time on a control unit of the standby time.
前記制御単位は、前記情報処理装置のシステムクロックに基づいた時間単位である
ことを特徴とする請求項5に記載の情報処理装置。
The information processing apparatus according to claim 5, wherein the control unit is a time unit based on a system clock of the information processing apparatus.
前記計測手段は、前記待機時間を制御して前記待機時間の長さを変更しながら、前記マスタデバイスに前記データ転送を繰返し実行させることにより、前記マスタデバイス待機時間を計測する
ことを特徴とする請求項1に記載の情報処理装置。
The measuring means measures the master device standby time by causing the master device to repeatedly execute the data transfer while controlling the standby time to change the length of the standby time. The information processing apparatus according to claim 1.
クロックをカウントするカウント手段をさらに備え、
前記計測手段は、前記カウント手段による前記クロックのカウント処理実行中の期間を前記待機時間とし、前記カウント手段にカウントさせる前記クロックの数を変更することによって前記待機時間の長さを変更しながら、前記マスタデバイスに前記データ転送を繰返し実行させることにより、前記マスタデバイス待機時間を計測する
ことを特徴とする請求項7に記載の情報処理装置。
It further comprises a counting means for counting the clock,
The measuring means sets the waiting time as a period during which the clock counting process is being performed by the counting means, and changes the length of the waiting time by changing the number of the clocks to be counted by the counting means. The information processing apparatus according to claim 7, wherein the master device standby time is measured by causing the master device to repeatedly execute the data transfer.
前記計測手段による計測処理において前記マスタデバイスが繰返し実行する前記データ転送における前記待機時間の初期値を設定する初期待機時間設定手段をさらに備え、
前記計測手段は、前記計測処理において、前記初期待機時間設定手段により設定された前記初期値を用いて、前記マスタデバイスに最初のデータ転送を実行させる
ことを特徴とする請求項7に記載の情報処理装置。
An initial waiting time setting means for setting an initial value of the waiting time in the data transfer repeatedly executed by the master device in the measurement processing by the measuring means;
8. The information according to claim 7, wherein the measurement unit causes the master device to execute an initial data transfer using the initial value set by the initial standby time setting unit in the measurement process. Processing equipment.
前記計測手段は、前記計測処理において繰返し実行される前記データ転送において、前記初期待機時間設定手段により設定される前記初期値を前記待機時間の最大値とし、前記マスタデバイスが前記データ転送を繰り返す度に、前記待機時間が短くなるように前記待機時間を再設定する
ことを特徴とする請求項9に記載の情報処理装置。
In the data transfer repeatedly executed in the measurement process, the measurement unit sets the initial value set by the initial standby time setting unit as the maximum value of the standby time, and the master device repeats the data transfer. The information processing apparatus according to claim 9, wherein the waiting time is reset so that the waiting time is shortened.
前記計測手段は、前記待機時間が短くなるように前記待機時間を再設定しながら、前記データ転送に対応する前記ターゲットが前記マスタデバイスに対して発行した、前記データ転送の準備が完了していないことを示す応答であるリトライを検出するまで、前記マスタデバイスに前記データ転送を繰り返し実行させる
ことを特徴とする請求項10に記載の情報処理装置。
The measurement means resets the waiting time so that the waiting time is shortened, and the target corresponding to the data transfer issued to the master device is not ready for the data transfer. The information processing apparatus according to claim 10, wherein the master device is configured to repeatedly execute the data transfer until a retry that is a response indicating that is detected.
前記計測手段は、前記リトライを検出すると、前記データ転送の繰り返しを中止して、1回前の前記データ転送における前記待機時間を前記マスタデバイス待機時間とする
ことを特徴とする請求項11に記載の情報処理装置。
12. The measurement unit according to claim 11, wherein when the retry is detected, the repetition of the data transfer is stopped and the standby time in the previous data transfer is set as the master device standby time. Information processing device.
前記計測手段は、1つの前記マスタデバイスに対して、前記ターゲット毎に前記マスタデバイス待機時間を計測し、
前記レイテンシ値設定手段は、前記計測手段により計測された前記ターゲット毎の前記マスタデバイス待機時間に対応する値を、前記ターゲット毎の前記レイテンシ値として設定する
ことを特徴とする請求項1に記載の情報処理装置。
The measuring means measures the master device standby time for each target with respect to one master device,
The said latency value setting means sets the value corresponding to the said master device waiting time for every said target measured by the said measurement means as said latency value for every said target. Information processing device.
前記計測手段による計測処理において、前記マスタデバイスがアクセスするアクセス先アドレスを設定するアドレス設定手段をさらに備え、
前記計測手段は、前記マスタデバイスが、前記アドレス設定手段により設定された前記アクセス先アドレスに対して、前記データ転送の開始を要求するコマンドを発行後、前記コマンドを再発行するまでの待機時間を制御し、前記マスタデバイス待機時間を計測する
ことを特徴とする請求項1に記載の情報処理装置。
In the measurement process by the measurement unit, the measurement unit further includes an address setting unit that sets an access destination address accessed by the master device,
The measuring unit sets a waiting time until the master device reissues the command after issuing a command requesting the start of the data transfer to the access destination address set by the address setting unit. The information processing apparatus according to claim 1, wherein the information processing apparatus controls and measures the master device standby time.
前記アドレス設定手段は、1つのターゲットに対応して、互いに異なる2つの前記アクセス先アドレスを設定し、
前記計測手段は、前記マスタデバイスが、前記アドレス設定手段により設定された2つの前記アクセス先アドレスに対して交互に実行する2つの前記データ転送の両方に基づいて、前記マスタデバイス待機時間を計測する
ことを特徴とする請求項14に記載の情報処理装置。
The address setting means sets two different access destination addresses corresponding to one target,
The measuring unit measures the master device standby time based on both of the two data transfers executed alternately by the master device with respect to the two access destination addresses set by the address setting unit. The information processing apparatus according to claim 14.
前記システムバスに接続された複数の前記デバイスの中から、前記計測手段により前記マスタデバイス待機時間を計測する前記データ転送を行うマスタデバイスを特定するマスタデバイス特定手段をさらに備え、
前記計測手段は前記マスタデバイスに特定された前記マスタデバイスに対応する前記マスタデバイス待機時間を計測する
ことを特徴とする請求項1に記載の情報処理装置。
Master device specifying means for specifying a master device for performing the data transfer for measuring the master device waiting time by the measuring means from among the plurality of devices connected to the system bus,
The information processing apparatus according to claim 1, wherein the measuring unit measures the master device standby time corresponding to the master device specified as the master device.
前記計測手段による計測処理の実行を制御する計測処理実行制御手段をさらに備える
ことを特徴とする請求項1に記載の情報処理装置。
The information processing apparatus according to claim 1, further comprising a measurement process execution control unit that controls execution of the measurement process by the measurement unit.
前記制御手段は、
前記計測手段が前記マスタデバイス待機時間を計測する前記データ転送を行うデバイスを選択するデバイス選択手段と、
前記計測手段による前記計測処理の開始を制御する開始制御手段と
を備える
ことを特徴とする請求項17に記載の情報処理装置。
The control means includes
A device selection means for selecting a device for performing the data transfer in which the measurement means measures the master device standby time;
The information processing apparatus according to claim 17, further comprising start control means for controlling start of the measurement process by the measurement means.
前記複数のデバイスが前記システムバスを介して互いに行う前記データ転送において、前記ターゲットが前記マスタデバイスに対して発行した、前記データ転送の準備が完了していないことを示す応答であるリトライを検出することにより、前記リトライの数を監視するリトライ監視手段をさらに備え、
前記開始制御手段は、前記リトライ監視手段により、1回の前記データ転送において、予め定められた所定の数より多く前記リトライを検出した場合、前記計測手段による前記計測処理を開始させる
ことを特徴とする請求項18に記載の情報処理装置。
In the data transfer performed by the plurality of devices through the system bus, a retry issued by the target to the master device and indicating a response indicating that the preparation for the data transfer is not completed is detected. Further comprising retry monitoring means for monitoring the number of retries,
The start control means starts the measurement processing by the measurement means when the retry monitoring means detects more retries than a predetermined number in one data transfer. The information processing apparatus according to claim 18.
複数のデバイスが接続されたシステムバスを有し、前記複数のデバイスが前記システムバスを介して互いにデータ転送を行う情報処理装置の情報処理方法であって、
前記データ転送を制御して前記データ転送を行うデバイスであるマスタデバイスが、前記データ転送の開始を要求するコマンドを発行後、前記コマンドを再発行するまでの待機時間を制御し、前記マスタデバイスの待機時間として設定するマスタデバイス待機時間を計測する計測ステップと、
前記計測ステップの処理により計測された前記マスタデバイス待機時間に対応する値を、前記マスタデバイスが前記データ転送において使用するレイテンシ値として設定するレイテンシ値設定ステップと
を含むことを特徴とする情報処理方法。
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,
The master device, which is a device that controls the data transfer and performs the data transfer, controls a waiting time until the command is reissued after issuing a command requesting the start of the data transfer. A measurement step for measuring the master device standby time to be set as the standby time;
A latency value setting step of setting a value corresponding to the master device standby time measured by the measurement step as a latency value used by the master device in the data transfer. .
複数のデバイスが接続されたシステムバスを有し、前記複数のデバイスが前記システムバスを介して互いにデータ転送を行う処理を、コンピュータに行わせるプログラムにおいて、
前記データ転送を制御して前記データ転送を行うデバイスであるマスタデバイスが、前記データ転送の開始を要求するコマンドを発行後、前記コマンドを再発行するまでの待機時間を制御し、前記マスタデバイスの待機時間として設定するマスタデバイス待機時間を計測する計測ステップと、
前記計測ステップの処理により計測された前記マスタデバイス待機時間に対応する値を、前記マスタデバイスが前記データ転送において使用するレイテンシ値として設定するレイテンシ値設定ステップと
を含むことを特徴とするプログラム。
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.
The master device, which is a device that controls the data transfer and performs the data transfer, controls a waiting time until the command is reissued after issuing a command requesting the start of the data transfer. A measurement step for measuring the master device standby time to be set as the standby time;
A latency value setting step of setting a value corresponding to the master device standby time measured by the measurement step as a latency value used by the master device in the data transfer.
JP2004047745A 2004-02-24 2004-02-24 Information processor, and information processing method and program Pending JP2005242437A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2004047745A JP2005242437A (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
JP2004047745A JP2005242437A (en) 2004-02-24 2004-02-24 Information processor, and information processing method and program

Publications (1)

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

Family

ID=35024151

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2004047745A Pending JP2005242437A (en) 2004-02-24 2004-02-24 Information processor, and information processing method and program

Country Status (1)

Country Link
JP (1) JP2005242437A (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2014041412A (en) * 2012-08-21 2014-03-06 Casio Electronics Co Ltd Pci bus control device

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2014041412A (en) * 2012-08-21 2014-03-06 Casio Electronics Co Ltd Pci bus control device

Similar Documents

Publication Publication Date Title
US6434654B1 (en) System bus with a variable width selectivity configurable at initialization
US6073199A (en) History-based bus arbitration with hidden re-arbitration during wait cycles
CA2223930C (en) Burst-broadcasting on a peripheral component interconnect bus
US5933610A (en) Predictive arbitration system for PCI bus agents
KR100267130B1 (en) Pci bus system
JPH08227392A (en) Bus system with waiting time and shadow timer
US8335883B2 (en) Data processing device and data processing system
US20030088722A1 (en) System and method for managing priorities in a PCI bus system
EP1068573B1 (en) Method and apparatus for arbitrating access to multiple buses in a data processing system
JPH1153306A (en) Data processor, external storage device, data processing system and data transmission method
US6532507B1 (en) Digital signal processor and method for prioritized access by multiple core processors to shared device
US5668949A (en) System utilizing multiple address decode resources and decoder receiving address determines address corresponding to resource based on select and ready signals by that particular resource
US20010004749A1 (en) Arbitration of control chipsets in bus transaction
JP2005242437A (en) Information processor, and information processing method and program
JP4037788B2 (en) Signal transmission device between control chipsets
US5737545A (en) Computer bus mastery system and method having a lock mechanism
US5915103A (en) Method and system for an extensible on silicon bus supporting multiple functional blocks
WO2001057680A2 (en) Data transaction access system and method
EP0920665B1 (en) A method and apparatus to interface a peripheral device operating in an internal clock domain to a pci bus operating in a pci clock domain
JP2011090485A (en) Circuit and method for pipe arbitration
JP2005242414A (en) Information processor and information processing method and program
US6934789B2 (en) Interface, structure and method for transmitting data of PCI bus which uses bus request signal for judging whether a device supporting dual transmission mode
JP2004265265A (en) Data transfer control device
JP2001256179A (en) Processor system
WO1997029432A1 (en) Apparatus for programmably defining the access latency

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20060823

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20090216

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20090226

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20090702