JP4152387B2 - Bus system - Google Patents
Bus system Download PDFInfo
- Publication number
- JP4152387B2 JP4152387B2 JP2005062244A JP2005062244A JP4152387B2 JP 4152387 B2 JP4152387 B2 JP 4152387B2 JP 2005062244 A JP2005062244 A JP 2005062244A JP 2005062244 A JP2005062244 A JP 2005062244A JP 4152387 B2 JP4152387 B2 JP 4152387B2
- Authority
- JP
- Japan
- Prior art keywords
- retry
- bus
- master
- slave
- value
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
Images
Landscapes
- Bus Control (AREA)
Description
本発明は、バスシステムに関し、特に、マスタ装置からの転送要求がスレーブで拒否されたときのリトライ間隔についてライブ・ロックの発生を回避できるように適正化するバスシステムおよびリトライ方法に関する。 The present invention relates to a bus system, and more particularly, to a bus system and a retry method for optimizing a retry interval when a transfer request from a master device is rejected by a slave so as to avoid occurrence of a live lock.
図12は従来のバスシステムの一例を示す図である。マスタユニット1−1およびマスタインタフェース91−1からなる第1のマスタ装置と、マスタユニット1−2およびマスタインタフェース91−2からなる第2のマスタ装置とが、コマンド、アドレス、ライトデータなどを転送するCWバス3に接続されている。また、スレーブユニット5およびスレーブインタフェース92からなるスレーブ装置がCWバス3に接続されている。また、第1のマスタ装置のマスタインタフェース91−1、第2のマスタ装置のマスタインタフェース91−2およびスレーブ装置のスレーブインタフェース92は、リードデータを転送するRDバス6に接続されている。
FIG. 12 shows an example of a conventional bus system. The first master device composed of the master unit 1-1 and the master interface 91-1 and the second master device composed of the master unit 1-2 and the master interface 91-2 transfer commands, addresses, write data, and the like. Connected to the CW
第1のマスタ装置のマスタユニット1−1からマスタインタフェース91−1へ、転送要求REQm1、コマンドCMDm1、アドレスADm1、ライトデータWDm1が送られる。逆方向に、マスタインタフェース91−1からマスタユニット1−1へ、コマンドアクノリッジCACKm1、バスエラー信号BERm1が送られる。また、マスタインタフェース91−1からCWバス3を介してスレーブ装置のスレーブインタフェース92へ、転送要求REQb、コマンドCMDb、アドレス・ライトデータAD/WDbが送られる。逆方向に、スレーブインタフェース92からCWバス3を介してマスタインタフェース91−1へ、確認応答ACKb、否定応答NACKbが送られる。
Transfer request REQm1, command CMDm1, address ADm1, and write data WDm1 are sent from master unit 1-1 of the first master device to master interface 91-1. In the reverse direction, the command acknowledge CACKm1 and the bus error signal BERm1 are sent from the master interface 91-1 to the master unit 1-1. Also, a transfer request REQb, a command CMDb, and address / write data AD / WDb are sent from the master interface 91-1 to the
同様に、第2のマスタ装置のマスタユニット1−2からマスタインタフェース91−2へ、転送要求REQm2、コマンドCMDm2、アドレスADm2、ライトデータWDm2が送られる。逆方向に、マスタインタフェース91−2からマスタユニット1−2へ、コマンドアクノリッジCACKm2、バスエラー信号BERm2が送られる。また、マスタインタフェース91−2からCWバス3を介してスレーブ装置のスレーブインタフェース92へ、転送要求REQb、コマンドCMDb、多重化されたアドレス・ライトデータAD/WDbが送られる。逆方向に、スレーブインタフェース92からCWバス3を介してマスタインタフェース91−2へ、確認応答ACKb、否定応答NACKbが送られる。
Similarly, a transfer request REQm2, a command CMDm2, an address ADm2, and write data WDm2 are sent from the master unit 1-2 of the second master device to the master interface 91-2. In the reverse direction, the command acknowledge CACKm2 and the bus error signal BERm2 are sent from the master interface 91-2 to the master unit 1-2. Also, a transfer request REQb, a command CMDb, and multiplexed address / write data AD / WDb are sent from the master interface 91-2 to the
スレーブ装置のスレーブインタフェース92からスレーブユニット5へ、転送要求REQs、コマンドCMDs、アドレスADs、ライトデータWDsが送られる。逆方向に、スレーブユニット5からスレーブインタフェース92へ、コマンドアクノリッジCACKsが送られる。
A transfer request REQs, a command CMDs, an address ADs, and write data WDs are sent from the
リードデータについては、スレーブユニット5からスレーブインタフェース92へリードデータRDsが送られる。スレーブインタフェース92からRDバス6を介して第1のマスタ装置のマスタインタフェース91−1または第2のマスタ装置のマスタインタフェース91−2へリードデータRDbが送られる。第1のマスタ装置ではマスタインタフェース91−1からマスタユニット1−1へリードデータRDm1が送られ、第2のマスタ装置ではマスタインタフェース91−2からマスタユニット1−2へリードデータRDm2が送られる。
As for the read data, read data RDs is sent from the
CWバス3の使用権を決めるために、調停回路7が設けられている。第1のマスタ装置のマスタインタフェース91−1から調停回路7へバス使用権要求AREQm1が送られ、第2のマスタ装置のマスタインタフェース91−2から調停回路7へバス使用権要求AREQm2が送られる。調停回路7が、第1のマスタ装置にCWバス3のバス使用権を与える場合にはグラント信号AGNTm1をマスタインタフェース91−1に送る。調停回路7が、第2のマスタ装置にCWバス3のバス使用権を与える場合にはグラント信号AGNTm2をマスタインタフェース91−2に送る。
An
図13は、マスタインタフェース91のCWバス3に関係する部分の内部ブロック図である。図13では、RDバス6に関係する部分すなわちリードデータの受信に関係する部分は省略されている。マスタプロトコル制御回路11は、マスタユニット1からの転送要求およびコマンドを受け、プロトコルに基づいてマスタユニット1とスレーブ装置との間の通信を制御する。リトライ間隔値レジスタ12には、予め設定されたリトライ間隔値RINが格納される。リトライ間隔カウンタ13は、否定応答NACKbを受信すると計数値をリセットした後に、クロックCLKのパルスを入力する毎に計数値をインクリメントしてクロックパルス数を計数する。比較器14は、リトライ間隔カウンタ13の計数値がリトライ間隔値RINに一致したことを検出してリトライ時間通知信号RTをアクティブレベルにする。リトライ回数レジスタ15には予め許容リトライ回数PRCが格納される。リトライ回数カウンタ16は、マスタユニット1からの転送要求REQmにより計数値をリセットした後に、否定応答NACKbが受信される毎にインクリメントする。比較器17は、計数値がリトライ回数レジスタ15の許容リトライ回数PRCよりも大きい値になったことを検出してオーバーフロー信号OFをアクティブレベルにする。リトライ要求回路18は、オーバーフロー信号OFがインアクティブレベルにあるときにリトライ時間通知信号RTがアクティブレベルに変化したことを検出した場合には、リトライ起動要求信号RRQをマスタプロトコル制御回路11に送る。リトライ起動要求信号RRQを受信したときには、マスタプロトコル制御回路11は転送要求REQb、コマンドCMDb、アドレス(AD/WDのアドレス部分)を再送する。バスエラー判定回路19は、オーバーフロー信号OFがアクティブレベルに変化したことを検出して、バスエラー信号BERmを出力する。
FIG. 13 is an internal block diagram of a portion related to the
図14(a)は、図12および図13で示した従来のバスシステムの動作シーケンス図である。図14(a)では、2個のマスタ装置が前後して1個のスレーブ装置に対してリード転送要求を発信した場合の動作を示しており、これを参照して図12の従来のバスシステムの動作を説明する。 FIG. 14A is an operation sequence diagram of the conventional bus system shown in FIGS. FIG. 14A shows the operation when two master devices send and receive a read transfer request to one slave device before and after, referring to this, the conventional bus system of FIG. The operation of will be described.
時刻T11において、マスタユニット1−1からマスタインタフェース91−1へ転送要求REQm1が送られる。同時にアドレスADm1、コマンドCMDm1などが同時にマスタインタフェース91−1に渡される。 At time T11, the transfer request REQm1 is sent from the master unit 1-1 to the master interface 91-1. At the same time, the address ADm1, the command CMDm1, etc. are simultaneously passed to the master interface 91-1.
マスタインタフェース91−1は、調停回路7にCWバス3のバス使用権を要求し、バス使用権が付与され且つCWバス3が未使用な状態になったときにCWバス3上に転送要求REQbを出す。マスタインタフェース91−1内のリトライ回数カウンタ16は0にリセットされる。
The master interface 91-1 requests the
スレーブインタフェース92は、CWバス3を介してマスタユニット1−1からの転送要求REQb、アドレス・ライトデータAD/WDb、コマンドCMDbを受信し、受信したコマンドCMDbおよびスレーブユニット5の状態に応じて、その転送要求REQbを受信するか拒否するかを判定する。スレーブユニット5は受信可能な状態なので、スレーブインタフェース92はCWバス3上に確認応答ACKbを出力するとともにスレーブユニット5に転送要求REQsを送信する。
The
マスタインタフェース91−1は、確認応答ACKbを受信すると、マスタユニット1−1にコマンドアクノリッジCACKm1を送る。同時にデータフェーズの転送を開始する。データフェーズでは、マスタインタフェース91−1は、ライトならばマスタユニット1−1にライトデータを要求し、受信したデータをCWバス3に出力するが、ここではリードであるので、CWバス3を開放してリードデータが準備されるまでの所定の時間待つ。
When receiving the acknowledgment ACKb, the master interface 91-1 sends a command acknowledge CACKm1 to the master unit 1-1. At the same time, data phase transfer is started. In the data phase, the master interface 91-1 requests write data from the master unit 1-1 if it is a write, and outputs the received data to the
一方、時刻T12において、マスタユニット1−2からマスタインタフェース91−2へ転送要求REQm2が送られたとする。同時にアドレスADm2、コマンドCMDm2などがマスタインタフェース91−2に渡される。 On the other hand, assume that a transfer request REQm2 is sent from the master unit 1-2 to the master interface 91-2 at time T12. At the same time, the address ADm2, the command CMDm2, etc. are passed to the master interface 91-2.
マスタインタフェース91−2は、調停回路7にCWバス3のバス使用権を要求し、CWバス3が使用中のため開放されるまで待ち、バス使用権が付与されると、CWバス3上に転送要求REQbを出す。マスタインタフェース91−2のリトライ回数カウンタ16は0にリセットされる。
The master interface 91-2 requests the right to use the
スレーブインタフェース92は、CWバス3を介してマスタユニット1−2からの転送要求REQb、アドレスADb、コマンドCMDbを受信する。しかしながら、スレーブユニット5はマスタユニット1−2からの転送要求の処理でビジー状態にあるので、スレーブインタフェース92は、転送要求REQbを拒否すると判定し、否定応答NACKbを返信する。
The
マスタインタフェース91−2は、否定応答NACKbを受信するとCWバス3を開放したのちに、リトライ回数カウンタ16の計数値をインクリメントし、リトライ回数レジスタ15に格納された許容リトライ回数PRCよりも大きいか否かを判定する。計数値が許容リトライ回数PRCを越えてしまった場合にはバスエラー判定回路19がバスエラー信号BERm1を出力するが、図14(a)の場合には、計数値が許容リトライ回数PRCよりも小さい場合なので、マスタインタフェース91−2は、リトライ間隔カウンタ13がリトライ間隔値レジスタ12に格納されたリトライ間隔値RINの個数分のクロックパルスを計数するまでの時間(リトライ間隔時間)Triだけ待つ。
When the master interface 91-2 receives the negative response NACKb, the master interface 91-2 opens the
スレーブインタフェース92では、マスタインタフェース1−1からの転送要求に対するリードデータの転送準備ができるとスレーブユニット5からリードデータRDsを受信し、RDバス6にリードデータRDbを出力する。
The
マスタインタフェース91−1は、RDバス6を介してリードデータRDbを受信してマスタユニット1−1へリードデータRDm1を送信する。時刻T13に、マスタユニット1−1はリードデータRDm1を受信し、マスタユニット1−1のリード転送要求の処理を完了する。 The master interface 91-1 receives the read data RDb via the RD bus 6 and transmits the read data RDm1 to the master unit 1-1. At time T13, the master unit 1-1 receives the read data RDm1, and completes the read transfer request processing of the master unit 1-1.
一方、マスタインタフェース1−2では、リトライ間隔カウンタ13の計数値がリトライ間隔値RINに達したときに、プロトコル制御回路11は、再度CWバス3のバス使用権を調停回路7に要求する。バス使用権が付与されるとバス上に転送要求REQbを出力する。
On the other hand, in the master interface 1-2, when the count value of the retry
スレーブインタフェース92は、CWバス3を介してマスタユニット1−2からの転送要求REQb、アドレスADb、コマンドCMDbを受信し、今回はスレーブユニット5が受信可能な状態にあるので、スレーブインタフェース92はCWバス3上に確認応答ACKbを出力するとともにスレーブユニット5に転送要求REQsを発信する。
The
マスタインタフェース91−2は、確認応答ACKbを受信すると、マスタユニット1−2にコマンドアクノリッジCACKm2を送り、CWバス3を開放してリードデータが準備されるまでの所定の時間待つ。スレーブインタフェース92では、マスタインタフェース1−2からの転送要求に対するリードデータの転送準備ができるとスレーブユニット5からリードデータRDsを受信し、RDバス6にリードデータRDbを出力する。マスタインタフェース91−2は、RDバス6を介してリードデータRDbを受信してマスタユニット1−2へリードデータRDm2を送信する。時刻T14に、マスタユニット1−2はリードデータRDm2を受信し、マスタユニット1−2のリード転送要求の処理を完了する。
When the master interface 91-2 receives the confirmation response ACKb, the master interface 91-2 sends a command acknowledge CACKm2 to the master unit 1-2, and waits for a predetermined time until the
図14(b)のタイミング図は、図14(a)を用いて以上に説明した動作をタイミング図に示したものである。図14(b)では、マスタインタフェース91−1から調停回路7へのバス使用権要求AREQm1およびこれに対する調停回路7からマスタインタフェース91−1へのバス使用権付与のグラント信号AGNTm1と、マスタインタフェース91−2から調停回路7へのバス使用権要求AREQm2およびこれに対する調停回路7からマスタインタフェース91−2へのバス使用権付与のグラント信号AGNTm2とについても図示している。
The timing chart of FIG. 14B shows the operation described above with reference to FIG. 14A. In FIG. 14B, the bus use right request AREQm1 from the master interface 91-1 to the
従来のバスシステムでは、このようにして、複数のマスタユニットから1個のスレーブユニットへ転送要求が集中したときにおいても複数の転送要求を調整して応答することができる。 In the conventional bus system, even when transfer requests are concentrated from a plurality of master units to one slave unit, a plurality of transfer requests can be adjusted and responded.
しかしながら、例えば図12において、マスタユニット1−1からスレーブユニット5への転送要求ACKbが周期的に発生し、これがマスタユニット1−2によりリトライ間隔値RINに基づいて生成される転送要求ACKbの周期と一致する場合には、マスタユニット1−2からの転送要求が拒否され続けて実行されない状況が続くことがある。これをライブ・ロックと称し、バスの転送効率を著しく低下させるため、発生を未然に防止し、発生した場合には速やかに解消させる必要がある。
However, for example, in FIG. 12, a transfer request ACKb from the master unit 1-1 to the
図15は、ライブ・ロックの発生を示す動作シーケンス図である。時刻T1で、マスタユニット1−1から転送要求REQm1が発信され、時刻T2で、マスタユニット1−2から転送要求REQm2が発信されたが、先に発信されたマスタユニット1−1からの転送要求が受け付けられてスレーブユニット5がビジー状態になるために、マスタユニット1−2からの転送要求はスレーブインタフェース92において拒否され否定応答NACKbがマスタインタフェース91−2へ返信される。スレーブインタフェース92は、否定応答NACKbを受信してリトライ間隔時間Triの計時を始める。
FIG. 15 is an operation sequence diagram showing the occurrence of live lock. At time T1, the transfer request REQm1 is transmitted from the master unit 1-1, and at time T2, the transfer request REQm2 is transmitted from the master unit 1-2. Is received and the
一方、マスタユニット1−1の転送要求に対するリードデータRDm1がスレーブユニット5からRDバス6を介して時刻T3にマスタユニット1−1に転送され、リード処理が完了する。直後にマスタユニット1−1が次の転送要求REQm1を発信するので、マスタユニット1−1からの転送要求が受け付けられてスレーブユニット5が再びビジー状態になる。
On the other hand, read data RDm1 corresponding to the transfer request of the master unit 1-1 is transferred from the
マスタインタフェース91−2では、リトライ間隔時間Triが経過したことを検出して転送要求REQbをスレーブインタフェース92に再送信するが、スレーブユニット5がビジー状態にあるため拒否されて、否定応答NACKbがマスタインタフェース91−2へ再度返信される。マスタインタフェース91−2は、否定応答NACKbを受信してリトライ間隔時間Triの計時を再度開始する。
The master interface 91-2 detects that the retry interval time Tri has elapsed and resends the transfer request REQb to the
図15の場合には、マスタユニット1−1からの転送要求の発信周期が、マスタインタフェース91−2の転送要求の再送信の周期と一致するため、以降はマスタユニット1−1からの転送要求のみが連続して実行される。マスタユニット1−2からの転送要求は拒否され続けるのでライブ・ロック状態となる。 In the case of FIG. 15, since the transmission cycle of the transfer request from the master unit 1-1 coincides with the cycle of retransmission of the transfer request of the master interface 91-2, the transfer request from the master unit 1-1 is thereafter performed. Only runs continuously. Since the transfer request from the master unit 1-2 continues to be rejected, the live lock state is entered.
ライブ・ロックが発生した場合にこれを解消するためには、周期的に転送要求の発信を行うマスタ装置(図15ではマスタユニット1−1)の転送要求を一時停止させるか、または、ライブ・ロック状態にあるマスタ装置(図15ではマスタインタフェース91−2)が転送要求を再送信するまでのリトライ間隔時間を変更するかの何れかを行う必要がある。 In order to eliminate this when the live lock occurs, the transfer request of the master device (master unit 1-1 in FIG. 15) that periodically issues the transfer request is suspended, or the live It is necessary to change either the retry interval time until the master device in the locked state (master interface 91-2 in FIG. 15) retransmits the transfer request.
周期的に転送要求するマスタ装置を一時停止させる方法をとるものとして、特開2000−315188号公報に、バストランザクションを監視してライブ・ロックが発生したことを検出するとライブ・ロック状態のマスタ装置にバスを独占的に使用させるように制御する技術が開示されている。この技術を用いることにより確実にライブ・ロックを解消することが可能となるものの、バス使用権の調停回路内にライブ・ロック状態にあるか否かを検出するためのライブ・ロック検出回路を各マスタ装置に対応させて設け、またライブ・ロック状態が検出されたマスタ装置に対してバスの独占使用を設定する回路を設ける必要があるので、バス使用権調停回路のハードウェア量が大幅に増大してしまう。 As a method of temporarily stopping a master device that periodically requests transfer, JP 2000-315188 A discloses a master device in a live lock state when a bus lock is monitored and a live lock is detected. Discloses a technique for controlling the bus to be used exclusively. Although it is possible to reliably cancel live lock by using this technology, each of the live lock detection circuits for detecting whether or not the live lock state is present in the bus use right arbitration circuit. Since it is necessary to provide a circuit for setting the exclusive use of the bus for the master device that is provided corresponding to the master device and the live lock state is detected, the amount of hardware of the bus use right arbitration circuit is greatly increased. Resulting in.
ライブ・ロック状態にあるマスタ装置のリトライ間隔時間を変更するものとして、特開平9−114750号公報に、マスタ装置が複数のリトライ間隔時間レジスタを備え、第1のレジスタのリトライ間隔時間に設定したときに否定応答を所定の回数連続して受信した場合には、第2のレジスタに変更して異なるリトライ間隔時間とし、それでも所定回数の否定応答を受けた場合には第3のレジスタに変更して異なるリトライ間隔時間に順次設定する技術が開示されている。しかしながら、バスに複数のスレーブ装置が接続されている場合に、スレーブ装置のリード/ライトに要する時間は、スレーブ装置が高速のメモリであるか低速の周辺装置であるかなどスレーブ装置の機能により大きく異なる。このため、適切なリトライ間隔時間も転送要求対象のスレーブ装置毎に異なっている。したがって、バスに多数のスレーブ装置が接続される場合には、各マスタ装置内に、1個のスレーブ装置につき複数個のレジスタを含むレジスタグループとしたうえで複数個のスレーブ装置に対応して複数個のレジスタグループを設けなければならず、マスタ装置のハードウェア量が大幅に増大してしまう。 In order to change the retry interval time of the master device in the live lock state, in Japanese Patent Laid-Open No. 9-114750, the master device has a plurality of retry interval time registers and is set to the retry interval time of the first register. When a negative response is received continuously for a predetermined number of times, the second register is changed to a different retry interval, and when a predetermined number of negative responses are still received, it is changed to the third register. A technique for sequentially setting different retry interval times is disclosed. However, when multiple slave devices are connected to the bus, the time required for the slave device to read / write depends on the function of the slave device, such as whether the slave device is a high-speed memory or a low-speed peripheral device. Different. For this reason, an appropriate retry interval time is also different for each slave device to which a transfer request is made. Therefore, when a large number of slave devices are connected to the bus, a register group including a plurality of registers per slave device is formed in each master device, and a plurality of slave devices corresponding to the plurality of slave devices are provided. The number of register groups must be provided, which greatly increases the amount of hardware of the master device.
特開2000−250850号公報には、スレーブ装置にリトライ間隔時間について基本のリトライ間隔時間を記憶した第1のタイムテーブルとこれより短いリトライ間隔時間を記憶した第2のタイムテーブルを備え、最初の否定応答を返信するときには第1のタイムテーブルのリトライ間隔時間をマスタ装置へ通知し、2回目以降の否定応答を返信するときには第2のタイムテーブルのリトライ間隔時間をマスタ装置へ通知する技術が開示されている。マスタ装置は、最初の否定応答を受けてから第1のタイムテーブルの基本リトライ間隔時間の経過を待って転送要求を再送信し、2回目以降は否定応答を受けてから第2のタイムテーブルのリトライ間隔時間の経過を待って転送要求を再送信する。この技術では、スレーブ装置が固有の基本リトライ間隔時間を記憶しているため、マスタ側でそれぞれのスレーブ装置に適合したリトライ間隔時間を記憶する必要がない点で前述の特開平9−114750号公報に開示された技術よりも改良されているが、第2のタイムテーブルのリトライ間隔時間が他のマスタ装置からの転送要求の周期と一致してライブ・ロックが発生する可能性があり、また、一旦ライブ・ロック状態になった場合にこれを解消するものでもない。但しこの技術では、第2のタイムテーブルのリトライ間隔時間を極めて短い時間に設定すれば実質的にバスの占有権を独占できるため、2回以上の否定応答を受けたマスタ装置からの転送要求が優先的に処理されることになり、ライブ・ロックの発生を未然に防止することが可能である。しかしながら、このようにするとバスが独占されるために転送要求対象のスレーブ装置が周辺装置のようにリード/ライトに時間がかかる装置であったときには、バスに接続された他のマスタ装置およびスレーブ装置間の送受信が長時間停止しバス使用効率が大幅に低下してしまう。 Japanese Patent Laid-Open No. 2000-250850 includes a first time table in which basic retry interval times are stored in a slave device and a second time table in which a retry interval time shorter than this is stored. A technique for notifying the master device of the retry interval time of the first time table when returning a negative response, and notifying the master device of the retry interval time of the second time table when returning a negative response after the second time is disclosed. Has been. After receiving the first negative response, the master device retransmits the transfer request after the basic retry interval time of the first time table has elapsed, and after receiving the negative response for the second and subsequent times, Resend the transfer request after the retry interval has elapsed. In this technique, since the slave device stores a unique basic retry interval time, it is not necessary to store the retry interval time suitable for each slave device on the master side. However, there is a possibility that a live lock may occur when the retry interval time of the second time table coincides with the period of the transfer request from another master device. This is not a solution to the problem once the live lock is entered. However, in this technique, if the retry interval time of the second time table is set to an extremely short time, the right to occupy the bus can be substantially monopolized. Therefore, a transfer request from the master device that has received two or more negative responses is received. It is preferentially processed, and it is possible to prevent a live lock from occurring. However, since the bus is monopolized in this way, when the slave device to be transferred is a device that takes time to read / write like a peripheral device, other master devices and slave devices connected to the bus The transmission / reception between them is stopped for a long time, and the bus use efficiency is greatly reduced.
本発明の目的は、ライブ・ロックの発生を防止し、また、ライブ・ロック状態に陥った場合にもこれを解消することが可能で、且つ、これを実現するためのハードウェア量の増加が従来よりも小さくて済むバスシステムおよびリトライ方法を提供することにある。 The object of the present invention is to prevent the occurrence of live lock, and to eliminate this even when the live lock state occurs, and increase the amount of hardware for realizing this. An object of the present invention is to provide a bus system and a retry method that can be made smaller than before.
本発明の第1の発明のバスシステムは、スレーブユニットとバスとの間に設けられ、前記スレーブユニットに固有に定められたリトライ設定値を格納するリトライ設定値格納回路と、擬似的に乱数を生成する疑似乱数発生器とを備え、マスタユニットからの転送要求への応答を拒否するときに否定応答を送信するとともに前記リトライ設定値と前記疑似乱数発生器で生成した乱数値とを含む否定応答付帯情報を前記バスを介してマスタユニットへ送信するスレーブインタフェースと、マスタユニットと前記バスとの間に設けられ、前記否定応答付帯情報から抽出された前記リトライ設定値と前記乱数値とを加算する加算器と、加算結果をリトライ間隔値として格納するリトライ間隔値格納回路とを備え、前記リトライ間隔値に基づいて転送要求を再送信するまでの時間を決定するマスタインターフェースと、を有して構成される。 A bus system according to a first aspect of the present invention includes a retry setting value storage circuit that is provided between a slave unit and a bus and stores a retry setting value uniquely determined for the slave unit, and a pseudo random number. A negative response including a retry setting value and a random value generated by the pseudo-random number generator and a negative response when rejecting a response to the transfer request from the master unit. A slave interface for transmitting incidental information to the master unit via the bus, and provided between the master unit and the bus, adds the retry setting value extracted from the negative acknowledgment incidental information and the random value. An adder and a retry interval value storage circuit for storing the addition result as a retry interval value, and transfer is required based on the retry interval value. And a master interface to determine a time before retransmitting, configured with a.
第2の発明のバスシステムは、スレーブユニットとバスとの間に設けられ、前記スレーブユニットに固有に定められたリトライ設定値を格納するリトライ設定値格納回路を備え、マスタユニットからの転送要求への応答を拒否するときに否定応答を送信するとともに前記リトライ設定値を含む否定応答付帯情報を前記バスを介してマスタユニットへ送信するスレーブインタフェースと、マスタユニットと前記バスとの間に設けられ擬似的に乱数を生成する疑似乱数発生器と、生成された乱数値と前記否定応答付帯情報から抽出された前記リトライ設定値とを加算する加算器と、加算結果をリトライ間隔値として格納するリトライ間隔値格納回路とを備え、前記リトライ間隔値に基づいて転送要求を再送信するまでの時間を決定するマスタインターフェースと、を有して構成される。
A bus system according to a second aspect of the present invention includes a retry setting value storage circuit that is provided between a slave unit and a bus and stores a retry setting value that is uniquely determined for the slave unit. A slave interface that transmits a negative response when rejecting a response to the master unit and transmits negative response-accompanying information including the retry setting value to the master unit via the bus, and is provided between the master unit and the bus. A pseudo-random number generator that generates random numbers, an adder that adds the generated random number value and the retry setting value extracted from the negative acknowledgment additional information, and a retry interval that stores the addition result as a retry interval value A master storage unit for determining a time until a transfer request is retransmitted based on the retry interval value. Configured to have and over the face, the.
第3の発明のバスシステムは、スレーブユニットとバスとの間に設けられ、マスタユニットからの転送要求とアドレスとを前記バスを介して受信し前記スレーブユニットに対する転送要求であればアドレス条件検出信号を出力するアドレスデコーダと、前記アドレス条件検出信号、マスタユニットからのコマンドおよび前記スレーブユニットの動作状態からマスタユニットからの転送要求に応答するか否かを判断し応答可能なときは前記バスに確認応答を出力し応答不可能なときは前記バスに否定応答を出力する応答条件判定回路と、前記スレーブユニットに固有に定められたリトライ設定値を格納するリトライ設定値格納回路と、前記否定応答が出力されたときに追随して前記リトライ設定値を含む否定応答付帯情報を前記バスに出力する否定応答付帯情報生成回路と、を備えるスレーブインタフェースと、前記バスとマスタユニットとの間に設けられ、前記バスから前記否定応答付帯情報を入力し前記リトライ設定値を抽出して出力するリトライ情報抽出回路と、所定の信号に起動されて擬似的に乱数を生成する疑似乱数発生器と、前記リトライ設定値と前記疑似乱数発生器により生成された乱数値とを加算してリトライ間隔値を算出する加算器と、前記否定応答の受信によりクロックパルスの計数を開始し計数値が前記リトライ間隔値と等しくなったことを検出してリトライ時間通知信号を出力するリトライ間隔計数部と、マスタユニットからの転送要求の受信により前記否定応答の受信回数の計数を開始し計数値が予め設定された許容リトライ回数より大きくなったことを検出してオーバーフロー信号を出力するリトライ回数計数部と、前記オーバーフロー信号がインアクティブレベルで前記リトライ時間通知信号がアクティブレベルとなったことを検出して転送要求の再送信を起動するリトライ要求回路と、を備えるマスタインタフェースと、を有して構成されている。
A bus system according to a third aspect of the present invention is provided between a slave unit and a bus, receives a transfer request and an address from a master unit via the bus, and if it is a transfer request to the slave unit, an address condition detection signal An address decoder that outputs, and determines whether to respond to a transfer request from the master unit from the address condition detection signal, a command from the master unit, and an operation state of the slave unit, and confirms to the bus when a response is possible A response condition determination circuit that outputs a response and outputs a negative response to the bus when a response is impossible, a retry setting value storage circuit that stores a retry setting value uniquely determined for the slave unit, and the negative response When it is output, the information accompanying the negative response including the retry setting value is output to the bus. Retrieval information extraction provided between the bus and the master unit, inputting the negative response incidental information from the bus, extracting the retry setting value, and outputting the slave interface provided with a constant response incidental information generation circuit A circuit, a pseudo random number generator that is activated by a predetermined signal to generate pseudo random numbers, and adds the retry setting value and the random number value generated by the pseudo random number generator to calculate a retry interval value An adder, a retry interval counter that starts counting clock pulses by receiving the negative response, detects that the count value is equal to the retry interval value, and outputs a retry time notification signal; When the transfer request is received, counting of the number of times of negative acknowledgment is started, and the count value is larger than the preset allowable retry count. A retry request circuit that starts the retry count counting section for outputting an overflow signal, retransmits the detected and forwards the request to the overflow signal is the retry time notification signal at the inactive level becomes an active level out, and is configured with a, a master interface with a.
本発明を適用することにより、ライブ・ロックの発生を未然に防止することができ、また、極めて希にライブ・ロック状態に陥ることが生じたとしてもこれを解消することが可能となる。また、リトライ設定値SRIはスレーブ装置に固有に設定された値を転送要求したスレーブ装置から送られて使用するので、転送準備に要する時間が大きく異なる種々のスレーブ装置がバスに接続される場合においても、リトライ間隔時間をそれぞれのスレーブ装置に対して適切な範囲に設定することできる。また、ライブ・ロックを回避するため追加するハードウェア量が特開平9−114750号公報に記載の技術によるバスシステムと比較して大幅に削減でき、特開2000−250850号公報に記載された技術を用いてライブ・ロックを回避する場合に生じるバスの独占によるバス使用効率の低下も回避できる。 By applying the present invention, it is possible to prevent the occurrence of a live lock, and it is possible to eliminate this even if the live lock state occurs very rarely. Further, since the retry setting value SRI is sent from the slave device that requested the transfer and is set to a value uniquely set in the slave device, when various slave devices having greatly different transfer preparation times are connected to the bus. In addition, the retry interval time can be set to an appropriate range for each slave device. Further, the amount of hardware added to avoid live lock can be significantly reduced as compared with the bus system according to the technique described in JP-A-9-114750, and the technique described in JP-A-2000-250850 is disclosed. It is also possible to avoid a decrease in bus use efficiency due to bus monopoly that occurs when live lock is avoided by using.
本発明は、スレーブ装置に固有に定められたリトライ設定値と疑似乱数生成した乱数値とを加算して得られるリトライ間隔値に基づいてマスタ装置からスレーブ装置へ転送要求を再送信するまでの時間を決定する点が以下にあげる実施形態に共通する。以下、本発明について図面を参照して詳細に説明する。 The present invention relates to a time until a transfer request is retransmitted from a master device to a slave device on the basis of a retry interval value obtained by adding a retry setting value uniquely determined for the slave device and a random value generated with a pseudo-random number. This point is common to the following embodiments. Hereinafter, the present invention will be described in detail with reference to the drawings.
図1、図2、図3は、本発明のバスシステムの第1実施形態を説明する図である。第1実施形態では、スレーブインタフェースで乱数値を生成してマスタインタフェースで加算する。図1はマスタインタフェースのブロック図であり、図2は、スレーブインタフェースのブロック図であり、図3は、バスシステムの一例を示す図である。 1, 2 and 3 are diagrams for explaining a first embodiment of the bus system of the present invention. In the first embodiment, random values are generated by the slave interface and added by the master interface. FIG. 1 is a block diagram of a master interface, FIG. 2 is a block diagram of a slave interface, and FIG. 3 is a diagram illustrating an example of a bus system.
まず、バスシステム全体について図3を参照して説明する。第1実施形態のバスシステムは、図12の従来のバスシステムにおけるスレーブインタフェース92に替えて、スレーブインタフェース92と同様の入出力に加えて否定応答付帯情報NAINFbを出力するスレーブインタフェース4を備えている。また、第1実施形態のバスシステムは、マスタインタフェース91−1,91−2に替えて、マスタインタフェース91と同様の入出力に加え否定応答付帯情報NAINFbを入力するマスタインタフェース2−1,2−2を備えている。以下、バスシステムの構成を述べる。
First, the entire bus system will be described with reference to FIG. The bus system according to the first embodiment includes a
マスタユニット1−1およびマスタインタフェース2−1からなる第1のマスタ装置と、マスタユニット1−2およびマスタインタフェース2−2からなる第2のマスタ装置とが、コマンド、アドレス、ライトデータなどを転送するCWバス3に接続されている。また、スレーブユニット5およびスレーブインタフェース4からなるスレーブ装置がCWバス3に接続されている。また、第1のマスタ装置のマスタインタフェース2−1、第2のマスタ装置のマスタインタフェース2−2およびスレーブ装置のスレーブインタフェース4は、リードデータを転送するRDバス6に接続されている。
The first master device comprising the master unit 1-1 and master interface 2-1 and the second master device comprising the master unit 1-2 and master interface 2-2 transfer commands, addresses, write data, etc. Connected to the
第1のマスタ装置のマスタユニット1−1からマスタインタフェース2−1へ、転送要求REQm1、コマンドCMDm1、アドレスADm1、ライトデータWDm1が送られる。逆方向に、マスタインタフェース2−1からマスタユニット1−1へ、コマンドアクノリッジCACKm1、バスエラー信号BERm1が送られる。コマンドアクノリッジCACKm1はマスタインタフェース2−1がスレーブ装置から確認応答ACKbを受信したことを通知する。また、マスタインタフェース2−1からCWバス3を介してスレーブ装置のスレーブインタフェース4へ、転送要求REQb、コマンドCMDb、アドレス・ライトデータAD/WDbが送られる。逆方向に、スレーブインタフェース4からCWバス3を介してマスタインタフェース2−1へ、確認応答ACKb、否定応答NACKb、否定応答付帯情報NAINFbが送られる。
A transfer request REQm1, a command CMDm1, an address ADm1, and write data WDm1 are sent from the master unit 1-1 of the first master device to the master interface 2-1. In the reverse direction, a command acknowledge CACKm1 and a bus error signal BERm1 are sent from the master interface 2-1 to the master unit 1-1. The command acknowledge CACKm1 notifies that the master interface 2-1 has received the confirmation response ACKb from the slave device. Further, a transfer request REQb, a command CMDb, and address / write data AD / WDb are sent from the master interface 2-1 to the
同様に、第2のマスタ装置のマスタユニット1−2からマスタインタフェース2−2へ、転送要求REQm2、コマンドCMDm2、アドレスADm2、ライトデータWDm2が送られる。逆方向に、マスタインタフェース2−2からマスタユニット1−2へ、コマンドアクノリッジCACKm2、バスエラー信号BERm2が送られる。また、マスタインタフェース2−2からCWバス3を介してスレーブ装置のスレーブインタフェース4へ、転送要求REQb、コマンドCMDb、多重化されたアドレス・ライトデータAD/WDbが送られる。逆方向に、スレーブインタフェース4からCWバス3を介してマスタインタフェース91−2へ、確認応答ACKb、否定応答NACKb、否定応答付帯情報NAINFbが送られる。
Similarly, a transfer request REQm2, a command CMDm2, an address ADm2, and write data WDm2 are sent from the master unit 1-2 of the second master device to the master interface 2-2. In the reverse direction, the command acknowledge CACKm2 and the bus error signal BERm2 are sent from the master interface 2-2 to the master unit 1-2. Also, a transfer request REQb, a command CMDb, and multiplexed address / write data AD / WDb are sent from the master interface 2-2 to the
スレーブ装置のスレーブインタフェース4からスレーブユニット5へ、転送要求REQs、コマンドCMDs、アドレスADs、ライトデータWDsが送られる。逆方向に、スレーブユニット5からスレーブインタフェース4へ、コマンドアクノリッジCACKsが送られる。コマンドアクノリッジCACKsはスレーブユニット5が次のコマンドを受信可能であることを通知する。
A transfer request REQs, a command CMDs, an address ADs, and write data WDs are sent from the
リードデータについては、スレーブユニット5からスレーブインタフェース4へリードデータRDsが送られる。スレーブインタフェース4からRDバス6を介して第1のマスタ装置のマスタインタフェース2−1または第2のマスタ装置のマスタインタフェース2−2へリードデータRDbが送られる。第1のマスタ装置ではマスタインタフェース2−1からマスタユニット1−1へリードデータRDm1が送られ、第2のマスタ装置ではマスタインタフェース2−2からマスタユニット1−2へリードデータRDm2が送られる。
As for the read data, read data RDs is sent from the
CWバス3の使用権を決めるために、調停回路7が設けられている。第1のマスタ装置のマスタインタフェース2−1から調停回路7へバス使用権要求AREQm1が送られ、第2のマスタ装置のマスタインタフェース2−2から調停回路7へバス使用権要求AREQm2が送られる。調停回路7が、第1のマスタ装置にCWバス3のバス使用権を与える場合にはグラント信号AGNTm1をマスタインタフェース2−1に送る。調停回路7が、第2のマスタ装置にCWバス3のバス使用権を与える場合にはグラント信号AGNTm2をマスタインタフェース2−2に送る。
An
次に、図1について説明する。図1は、第1実施形態のマスタインタフェース2aのCWバス3に関係する部分の内部ブロックを示し、RDバス6に関係する部分すなわちリードデータの受信に関係する部分は省略されている。
Next, FIG. 1 will be described. FIG. 1 shows an internal block of a portion related to the
マスタインタフェース2aにおいて、マスタプロトコル制御回路11は、マスタユニット1からの転送要求REQmおよびコマンドCMDmを受け、プロトコルに基づいてマスタユニット1とスレーブ装置との間の通信を制御する。リトライ情報抽出回路31は、スレーブインタフェース4aより送信された否定応答付帯情報NAINFbからリトライ設定値SRIと乱数値RNとを抽出する。リトライ設定値SRIがコード化されたものである場合にはデコードをも行う。例えば、4個のスレーブ装置のそれぞれのリトライ設定値SRIが、10進数で10、50、100、200の場合には、スレーブ装置からは、10が(00)、50が(01)、100が(10)、200が(11)のようにコード化されて送信され、リトライ情報抽出回路31はデコード回路(またはデコード対照テーブル)を備えていてそれぞれを元のリトライ設定値10、50、100、200に復元する。この例では10進数の200をそのまま送信する場合には8ビット必要であるが、この例ではコード化することにより2ビットで送信可能である。加算器32は、リトライ設定値SRIと乱数値RNとを加算してリトライ間隔値RINを出力する。
In the
リトライ間隔計数部33は、否定応答NACKbを受信してからのクロックCLKのパルスを計数し、リトライ間隔値RINの個数に達したことを検出してリトライ時間通知信号RTをアクティブレベルにする。リトライ間隔計数部33は、例えば、リトライ間隔値RINを保持するリトライ間隔値レジスタ12と、否定応答NACKbを受信すると計数値をリセットした後にクロックCLKのパルスを入力する毎に計数値をインクリメントしてクロックパルス数を計数するリトライ間隔カウンタ13と、リトライ間隔カウンタ13の計数値がリトライ間隔値RINに一致したことを検出してリトライ時間通知信号RTをアクティブレベルにする比較器14とによって構成される。なお、例えば加算等の回路動作によるクロック時間消費によるズレを考慮し、リトライ間隔値レジスタに設定する値を算出されたリトライ間隔値RINに対して所定数αを増減して補正した値として設定してもよい。
The retry interval counter 33 counts the pulses of the clock CLK after receiving the negative response NACKb, detects that the number of retry interval values RIN has been reached, and sets the retry time notification signal RT to the active level. For example, the retry
リトライ回数計数部34は、マスタユニット1からの転送要求REQmを受信してからの否定応答NACKbの受信回数を計数し、計数値が予め設定された許容リトライ回数PRCよりも大きくなったことを検出してオーバーフロー信号OFをアクティブレベルにする。リトライ回数計数部34は、例えば、予め所定の許容リトライ回数PRCが格納されるにリトライ回数レジスタ15と、マスタユニット1からの転送要求REQmにより計数値をリセットした後に否定応答NACKbが受信される毎にインクリメントするリトライ回数カウンタ16と、計数値がリトライ回数レジスタ15の許容リトライ回数PRCよりも大きい値になったことを検出してオーバーフロー信号OFをアクティブレベルにする比較器17とによって構成される。
The retry count counter 34 counts the number of times of negative acknowledgment NACKb received after receiving the transfer request REQm from the master unit 1, and detects that the count value is larger than the preset allowable retry count PRC. Then, the overflow signal OF is set to the active level. For example, the retry
リトライ要求回路18は、オーバーフロー信号OFがインアクティブレベルにあるときにリトライ時間通知信号RTがアクティブレベルに変化したことを検出した場合には、リトライ起動要求信号RRQをマスタプロトコル制御回路11に送る。リトライ起動要求信号RRQを受信したときには、マスタプロトコル制御回路11は転送要求REQb、コマンドCMDb、アドレス(AD/WDのアドレス部分)を再送信する。バスエラー判定回路19aは、オーバーフロー信号OFがアクティブレベルに変化したことを検出して、バスエラー信号BERmを出力する。また、バスエラー判定回路19aは、否定応答付帯情報NACKbの否定応答原因情報部分を判定し、コマンドがスレーブ装置でサポートされていないなどの原因でリトライしても無駄である場合にもバスエラー信号BERmを出力する。
When the retry
次に、図2について説明する。図2は、第1実施形態のスレーブインタフェース4aのCWバス3に関係する部分の内部ブロックを示し、RDバス6に関係する部分すなわちリードデータの受信に関係する部分は省略されている。
Next, FIG. 2 will be described. FIG. 2 shows an internal block of a portion related to the
スレーブインタフェース4aにおいて、アドレスデコーダ21は、マスタユニット1からマスタインタフェース2aおよびCWバス3を介して転送要求REQbと多重化されたアドレス・ライトデータAD/WDのアドレス部分とを受信し、スレーブユニット4a自身に対する転送要求であればアドレス条件検出信号ACDを出力する。スレーブプロトコル制御回路22は、アドレス条件検出信号ACD、マスタ装置からのコマンドCMDbを受け、プロトコルに基づいてマスタ装置とスレーブユニット5との間の通信を制御する。
In the
スレーブ状態保持回路23は、スレーブユニット5が転送要求を処理可能な状態であるか、または処理不能なビジー状態にあるかを示すスレーブ状態情報を入力し保持する。応答条件判定回路24は、アドレス条件検出信号ACD、コマンドCMDb、スレーブ状態保持回路23に保持されたスレーブ状態情報から転送要求REQbに応答するか否かを判断し、応答可能なときはCWバス3に確認応答ACKbを出力し、応答不可能なときは否定応答NACKbを出力する。
The slave
否定応答原因情報生成回路25は、スレーブ状態保持回路23に保持されたスレーブ状態情報を参照して否定応答NACKbを返信する原因に関する情報を生成する。例えば、スレーブユニットがビジー状態にある、受信したコマンドがスレーブ装置でサポートされていない、などの情報がコード化されて生成される。
The negative response cause
リトライ設定値格納回路であるリトライ設定値レジスタ41は、スレーブユニットに固有に定められたリトライ設定値SRIsを格納する。リトライ設定値がコード化されてスレーブユニットから送られる場合には、コード化された状態でリトライ設定値SRIsを格納する。
A retry setting
疑似乱数発生器42は、所定の信号に起動されて擬似的に乱数を生成する。図2では、所定の信号として否定応答NACKbを用いているが、否定応答NACKbに替えてアドレスデコーダ21の出力であるアドレス条件検出信号ACDを用いても良い。アドレス条件検出信号ACDを用いた場合には、応答条件判定回路24からの否定応答NACKbの発信に先行して乱数値RNsの生成を行うことができるので、疑似乱数発生器42には高速動作が要求されないという利点がある。応答判定結果が確認応答ACKbであるときには生成済の乱数値RNsはそのまま廃棄される。
The pseudo
否定応答付帯情報生成回路43は、否定応答NACKbが出力されたときに追随して否定応答原因情報NAI、リトライ設定値SRIsおよび乱数値RNsを多重化して否定応答付帯情報NAINFbを生成しCWバス3へ出力する。否定応答付帯情報生成回路43は、例えば、スレーブプロトコル制御装置により出力選択制御されるマルチプレクサ44を用いて構成される。否定応答付帯情報NAINFの転送では、一系統の信号線または信号線群により、否定応答原因情報NAI、リトライ設定値SRIsおよび乱数値RNsがスレーブプロトコル制御回路22により設定された順序にしたがって順次転送される。
When the negative response NACKb is output, the negative response incidental information generation circuit 43 multiplexes the negative response cause information NAI, the retry setting value SRIs, and the random value RNs to generate negative response additional information NAINFb, and generates the
または、否定応答付帯情報NAINFを構成する否定応答原因情報NAI、リトライ設定値SRIsおよび乱数値RNsが複数の系統の信号線または信号線群により別々に転送されるようにしてもよく、このように構成された場合には否定応答付帯情報生成回路43を省略することができる。 Alternatively, the negative response cause information NAI, the retry setting value SRIs, and the random value RNs constituting the negative response incidental information NAINF may be separately transferred by a plurality of signal lines or signal line groups. When configured, the negative response incidental information generation circuit 43 can be omitted.
次に、本発明の第1実施形態の動作について図1,2,3,4を参照して説明する。図4は、第1実施形態の動作シーケンス図である。従来例でライブ・ロックが発生する図15の場合と同様に、マスタユニット1−1からスレーブユニット5への転送要求ACKbが周期的に発生し、これがマスタユニット1−2によりリトライ間隔値RINに基づいて生成される転送要求ACKbの周期と一致するように初期設定されている場合を例として説明する。
Next, the operation of the first embodiment of the present invention will be described with reference to FIGS. FIG. 4 is an operation sequence diagram of the first embodiment. As in the case of FIG. 15 where live lock occurs in the conventional example, a transfer request ACKb from the master unit 1-1 to the
時刻T1において、マスタユニット1−1からマスタインタフェース2−1に転送要求REQm1が発生する。同時にアドレスADDm1、コマンドCMDm1などがマスタインタフェース2−1に渡される。 At time T1, a transfer request REQm1 is generated from the master unit 1-1 to the master interface 2-1. At the same time, the address ADDm1, the command CMDm1, and the like are passed to the master interface 2-1.
マスタインタフェース2−1は、調停回路7にバス使用権を要求し、バス使用権が付与され且つCWバス3が未使用な状態になったときに、CWバス3上に転送要求REQbを出す。同時に多重化されたアドレス・ライトデータAD/WDb、コマンドCMDbをCWバス3に出力する。マスタインタフェース2−1のリトライ回数カウンタ16は0にリセットされる。
The master interface 2-1 requests the
スレーブインタフェース4内のアドレスデコーダ21は、アドレス・ライトデータAD/WDのアドレス部分をデコードし、自身がアドレスに指定されたスレーブ装置であることを検出した場合には、スレーブインタフェース4はCWバス3から転送要求REQb、アドレス・ライトデータAD/WDb、コマンドCMDbを取り込む。
When the
スレーブインタフェース4の応答条件判定回路24では、受信したコマンドCMDbおよびスレーブ状態保持回路23保持されたスレーブユニット5の状態に応じて、マスタユニット1−1からの転送要求REQbを受信するか拒否するかを判定する。図4では処理可能と判定したのでCWバス3上に確認応答ACKbを出力するとともに、スレーブユニット5に転送要求REQbを送信する。
The response
マスタインタフェース2−1は、確認応答ACKbを受信すると、マスタユニット1−1にコマンドアクノリッジCACKm1(図3参照)を送る。同時にデータフェーズの転送を開始する。データフェーズでは、マスタインタフェース2−1は、ライトならばマスタユニット1−1にライトデータを要求し、受信したデータをCWバス3に出力するが、図4ではリードであるので、CWバス3を開放してリードデータが準備されるまでの所定の時間待つ。
When the master interface 2-1 receives the confirmation response ACKb, the master interface 2-1 sends a command acknowledge CACKm1 (see FIG. 3) to the master unit 1-1. At the same time, data phase transfer is started. In the data phase, the master interface 2-1 requests write data from the master unit 1-1 if it is a write and outputs the received data to the
一方、時刻T2において、マスタユニット1−2からマスタインタフェース2−2へ転送要求REQm2が送られたとする。同時にアドレスADm2、コマンドCMDm2などがマスタインタフェース2−2に渡される。 On the other hand, assume that a transfer request REQm2 is sent from the master unit 1-2 to the master interface 2-2 at time T2. At the same time, the address ADm2, the command CMDm2, etc. are passed to the master interface 2-2.
マスタインタフェース2−2は、調停回路7にCWバス3のバス使用権を要求し、CWバス3が使用中のため開放されるまで待ち、バス使用権が付与されると、CWバス3上に転送要求REQbを出す。マスタインタフェース2−2のリトライ回数カウンタ16は0にリセットされる。
The master interface 2-2 requests the
スレーブインタフェース4内のアドレスデコーダ21はアドレス・ライトデータAD/WDのアドレス部分をデコードし、自身がアドレスに指定されたスレーブ装置であることを検出した場合には、スレーブインタフェース4はCWバス3を介してマスタユニット1−2からの転送要求REQb、アドレス・ライトデータAD/WDb、コマンドCMDbを取り込む。
The
スレーブインタフェース4の応答条件判定回路24では、受信したコマンドCMDbおよびスレーブ状態保持回路23保持されたスレーブユニット5の状態に応じて、マスタユニット1−1からの転送要求REQbを受信するか拒否するかを判定する。スレーブユニット5はマスタユニット1−2からの転送要求の処理でビジー状態にあるので、スレーブインタフェース4内の応答条件判定回路24ではマスタユニット1−2からの転送要求REQbを拒否すると判定し、否定応答NACKbをCWバス3を介して返信する。また、否定応答付帯情報生成回路43から否定応答付帯情報NAINFbをCWバス3へ出力する。この第1回目の否定応答付帯情報NAINFbには、否定応答原因情報NAIとリトライ設定値SRIと乱数値RN(第1回目の乱数値RN1とする)とが含まれている。
The response
マスタインタフェース2−2は、否定応答NACKbおよび否定応答付帯情報NAINFbを受信するとリトライ回数カウンタ16をカウントアップし、リトライ回数レジスタ15に格納されている許容リトライ回数PRCよりも大きいか否かを判定する。リトライ回数カウンタの計数値は1であるのでオーバーフロー信号はインアクティブレベルを維持する。
When the master interface 2-2 receives the negative response NACKb and the negative response incidental information NAINFb, the master interface 2-2 counts up the retry
また、マスタインタフェース2−2では、リトライ情報抽出回路31により第1回目の否定応答付帯情報NAINFbからリトライ設定値SRIと乱数値RN(第1回目の乱数値RN1)を抽出し、加算器32により加算しリトライ間隔値RIN(第1回目のリトライ間隔値RIN1=SRI+RN1)を算出してリトライ間隔値レジスタ12に格納する。なお、バス使用権は開放する。否定応答NACKbをによりリトライ間隔カウンタ13の計数値を一旦0にリセットしてからクロックパルス毎にインクリメントする。
In the master interface 2-2, the retry
一方、マスタユニット1−1の転送要求に対するリードデータRDm1がスレーブユニット5からRDバス6を介して時刻T3にマスタユニット1−1に転送され、リード処理が完了する。直後にマスタユニット1−1が次の転送要求REQm1を発信するので、転送要求が受け付けられてスレーブユニット5が再びビジー状態になる。
On the other hand, read data RDm1 corresponding to the transfer request of the master unit 1-1 is transferred from the
マスタインタフェース2−2では、リトライ間隔カウンタ13の計数値がリトライ間隔値レジスタ12に格納された第1回目のリトライ間隔値RIN1と等しくなると第1回目のリトライ間隔時間Tri1が経過したとして比較器14からリトライ時間通知信号RTがリトライ要求回路18に送られてリトライ起動要求信号PRQが出力され、マスタプロトコル制御回路11から転送要求REQbをスレーブインタフェース4に再送信する。
In the master interface 2-2, when the count value of the retry
しかしながら、マスタインタフェース2−2から再送信された転送要求REQbはスレーブユニット5がビジー状態にあるため拒否され、否定応答NACKbおよび第2回目の否定応答付帯情報NAINFbを送信する。第2回目の否定応答付帯情報NAINFbには、否定応答原因情報NAIとリトライ設定値SRIと乱数値RN(第2回目の乱数値RN2とする)が含まれている。マスタインタフェース2−2は、リトライ間隔値レジスタ12に、第2回目のリトライ間隔値RIN2=SRI+RN2を格納し、否定応答NACKbを受信して第2回目のリトライ間隔時間Tri2の計時を再度開始する。
However, the transfer request REQb retransmitted from the master interface 2-2 is rejected because the
第1回目の乱数値RN1と第2回目の乱数値RN2が異なった値である場合には、第2回目のリトライ間隔時間Tri2は第2回目のリトライ間隔時間Tri2とは異なった時間となる。第1回目のリトライ間隔時間Tr1がマスタユニット1−1からの転送要求の発信周期と一致した場合でも第2回目のリトライ間隔時間Tr2が第1回目のリトライ間隔時間Tri1とは(擬似的にではあるが)独立に決定されるため、第1回目のリトライ間隔時間Tr1とは異なる可能性が大きい。さらに第3回目以降のリトライ間隔時間についてもそれ以前のどのリトライ間隔時間に対しても独立に決定されるために、マスタインタフェース2−2のリトライ間隔時間とマスタユニット1−1からの転送要求の発信周期とが一致した状態が長期間継続することは実質的にあり得ないと容易に理解できる。したがって、本実施形態においては、ライブ・ロックの発生を防止し、また、ライブ・ロック状態に陥った場合にもこれを解消することが可能である。 When the first random number value RN1 and the second random number value RN2 are different from each other, the second retry interval time Tri2 is different from the second retry interval time Tri2. Even if the first retry interval time Tr1 coincides with the transmission cycle of the transfer request from the master unit 1-1, the second retry interval time Tr2 is different from the first retry interval time Tri1 (in a pseudo manner). Since it is determined independently, there is a high possibility that it is different from the first retry interval time Tr1. Further, since the retry interval time after the third time is determined independently of any retry interval time before that, the retry interval time of the master interface 2-2 and the transfer request from the master unit 1-1 are also determined. It can be easily understood that the state in which the transmission period is consistent cannot be continued for a long time. Therefore, in the present embodiment, it is possible to prevent the occurrence of live lock and to eliminate this even when the live lock state is entered.
図4は、リトライ間隔時間がTri1<Tri2<Tri3となって発生した例であるが、3回目のリトライ間隔時間Tri3後のマスタインタフェース2−2からの転送要求REQbに対して時刻T4にスレーブインタフェース4から確認応答ACKbが返信され、マスタユニット1−2からのリード転送要求に対するリードデータRDm2が、時刻T5にマスタユニット1−2に受信されている。 FIG. 4 shows an example in which the retry interval time has occurred as Tri1 <Tri2 <Tri3, but the slave interface at time T4 in response to the transfer request REQb from the master interface 2-2 after the third retry interval time Tri3. 4 is returned as a confirmation response ACKb, and the read data RDm2 corresponding to the read transfer request from the master unit 1-2 is received by the master unit 1-2 at time T5.
このように、本実施形態では、ライブ・ロックの発生を防止し、また、ライブ・ロック状態に陥った場合にもこれを解消することが可能である。また、リトライ設定値SRIはスレーブ装置に固有に設定された値を転送要求したスレーブ装置から送られて使用するので、転送準備に要する時間が大きく異なる種々のスレーブ装置がバスに接続される場合においても、リトライ間隔時間をそれぞれのスレーブ装置に対して適切な範囲に設定することできる。 As described above, in this embodiment, the occurrence of live lock can be prevented, and this can be solved even when the live lock state occurs. Further, since the retry setting value SRI is sent from the slave device that requested the transfer and is set to a value uniquely set in the slave device, when various slave devices having greatly different transfer preparation times are connected to the bus. In addition, the retry interval time can be set to an appropriate range for each slave device.
また、例えばリトライ設定値を8ビットとし、生成する乱数値を4ビットとすると、疑似乱数発生器は4ビット分のフリップフロップと排他的ORゲートとで構成でき、加算器は8ビットのリトライ設定値と4ビットの乱数値との加算が可能なものでよいので、本実施形態を構成するために追加されるハードウェア量は小さい。特に、多種類のスレーブ装置がバスに接続される場合には、特開平9−114750号公報に記載の技術によるバスシステムと比較して追加ハードウェア量を大幅に削減できる。 For example, if the retry setting value is 8 bits and the generated random number value is 4 bits, the pseudo random number generator can be composed of a 4-bit flip-flop and an exclusive OR gate, and the adder has an 8-bit retry setting. Since the value and a 4-bit random value can be added, the amount of hardware added to configure the present embodiment is small. In particular, when many types of slave devices are connected to the bus, the amount of additional hardware can be significantly reduced as compared with a bus system based on the technique described in Japanese Patent Laid-Open No. 9-114750.
さらに、特開2000−250850号公報に記載された技術を用いてライブ・ロックを回避する場合のように、特定のマスタ装置にバスが長期間占有され、他のマスタ装置がバスを使用できなくなることがあるという副作用も生じない。 Further, as in the case of avoiding live lock using the technique described in Japanese Patent Laid-Open No. 2000-250850, a bus is occupied by a specific master device for a long time, and other master devices cannot use the bus. There are no side effects.
なお、図1では、リトライ間隔計数部33を、リトライ間隔値レジスタ12、
リトライ間隔カウンタ13および比較器14で構成しているが、リトライ間隔カウンタ13に替えて否定応答NACKbを受信したときに加算器32からリトライ間隔値をプリセットしクロックパルス毎にデクリメントするデクリメント型リトライ間隔カウンタとし、比較器14に替えてデクリメントカウンタの計数値が0になったことを検出してリトライ時間通知信号RTを出力するゼロ比較器としても良い。リトライ間隔計数部33をこのように構成することにより、リトライ間隔値レジスタが不要になり、またゼロ比較器の回路が簡単化できる。
In FIG. 1, the retry
The retry
同様に、図1では、リトライ回数計数部34を、リトライ回数レジスタ15、
リトライ回数カウンタ16および比較器17で構成しているが、リトライ間隔カウンタ13に替えてマスタユニットからの転送要求REQmを受信したときに所定の許容リトライ回数PRCに1を加えた値をプリセットし否定応答NACKbを受信する毎にデクリメントするデクリメント型リトライ回数カウンタとし、比較器17に替えてデクリメントカウンタの計数値が0になったことを検出してオーバーフロー信号OFを出力するゼロ比較器としても良い。リトライ回数計数部34をこのように構成することにより、リトライ回数レジスタが不要になり、またゼロ比較器の回路が簡単化できる。
Similarly, in FIG. 1, the retry
The retry
次に、本発明の第2実施形態について説明する。図5は、第2実施形態のバスシステムのマスタインタフェース2bのブロック図であり、図6は、第2実施形態のバスシステムのスレーブインタフェース4bのブロック図である。バスシステム全体の構成は第1実施形態の図3と同様であるが、第2実施形態では、マスタインタフェース2b内で疑似乱数発生を行いリトライ設定値と加算する。
Next, a second embodiment of the present invention will be described. FIG. 5 is a block diagram of the
図5のマスタインタフェース4bにおいて、マスタプロトコル制御回路11は、マスタユニット1からの転送要求およびコマンドを受け、プロトコルに基づいてマスタユニット1とスレーブ装置との間の通信を制御する。リトライ情報抽出回路31aは、スレーブインタフェース4bより送信された否定応答付帯情報NAINFbからリトライ設定値SRIを抽出する。リトライ設定値SRIがコード化されたものである場合にはデコードを行うことは図1の第1実施形態におけるリトライ情報抽出回路31と同様である。
In the
疑似乱数発生器51は、所定の信号を受信して乱数値RNを生成し出力する。
なお、図5では、所定の信号として否定応答NACKbを用いているが、否定応答NACKbに替えてマスタプロトコル制御回路11からCWバス3に出力される転送要求REQbを用いても良い。転送要求REQbを用いた場合には、否定応答NACKbの受信に先行して乱数値RNの生成を行うことができるので、疑似乱数発生器51には高速動作が要求されないという利点がある。確認応答ACKbを受信したときには生成済の乱数値RNはそのまま廃棄される。加算器32は、リトライ設定値SRIと乱数値RNとを加算してリトライ間隔値RINを算出して出力する。
The
In FIG. 5, the negative response NACKb is used as the predetermined signal, but the transfer request REQb output from the master
リトライ間隔計数部33は、否定応答NACKbを受信してからのクロックCLKのパルスを計数し、リトライ間隔値RINの個数に達したことを検出してリトライ時間通知信号RTをアクティブレベルにする。リトライ間隔計数部33は、例えば、リトライ間隔値RINを保持するリトライ間隔値レジスタ12と、否定応答NACKbを受信すると計数値をリセットした後にクロックCLKのパルスを入力する毎に計数値をインクリメントしてクロックパルス数を計数するリトライ間隔カウンタ13と、リトライ間隔カウンタ13の計数値がリトライ間隔値RINに一致したことを検出してリトライ時間通知信号RTをアクティブレベルにする比較器14とによって構成される。
The retry interval counter 33 counts the pulses of the clock CLK after receiving the negative response NACKb, detects that the number of retry interval values RIN has been reached, and sets the retry time notification signal RT to the active level. For example, the retry
リトライ回数計数部34は、マスタユニット1からの転送要求REQmを受信してからの否定応答NACKbの受信回数を計数し、計数値が予め設定された許容リトライ回数PRCよりも大きくなったことを検出してオーバーフロー信号OFをアクティブレベルにする。リトライ回数計数部34は、例えば、予め所定の許容リトライ回数PRCが格納されるにリトライ回数レジスタ15と、マスタユニット1からの転送要求REQmにより計数値をリセットした後に否定応答NACKbが受信される毎にインクリメントするリトライ回数カウンタ16と、計数値がリトライ回数レジスタ15の許容リトライ回数PRCよりも大きい値になったことを検出してオーバーフロー信号OFをアクティブレベルにする比較器17とによって構成される。
The retry count counter 34 counts the number of times of negative acknowledgment NACKb received after receiving the transfer request REQm from the master unit 1, and detects that the count value is larger than the preset allowable retry count PRC. Then, the overflow signal OF is set to the active level. For example, the retry
リトライ要求回路18は、オーバーフロー信号OFがインアクティブレベルにあるときにリトライ時間通知信号RTがアクティブレベルに変化したことを検出した場合には、リトライ起動要求信号RRQをマスタプロトコル制御回路11に送る。リトライ起動要求信号RRQを受信したときには、マスタプロトコル制御回路11は転送要求REQb、コマンドCMDb、アドレス(AD/WDのアドレス部分)を再送信する。バスエラー判定回路19aは、オーバーフロー信号OFがアクティブレベルに変化したことを検出して、バスエラー信号BERmを出力する。また、バスエラー判定回路19aは、否定応答付帯情報NACKbの否定応答原因情報部分を判定し、コマンドがスレーブ装置でサポートされていないなどの原因でリトライしても無駄である場合にもバスエラー信号BERmを出力する。
When the retry
次に、図6について説明する。スレーブインタフェース4bにおいて、アドレスデコーダ21は、マスタユニット1からマスタインタフェース2bおよびCWバス3を介して転送要求REQbと多重化されたアドレス・ライトデータAD/WDのアドレス部分とを受信し、スレーブユニット4b自身に対する転送要求であればアドレス条件検出信号ACDを出力する。スレーブプロトコル制御回路22は、アドレス条件検出信号ACD、マスタ装置からのコマンドCMDbを受け、プロトコルに基づいてマスタ装置とスレーブユニット5との間の通信を制御する。
Next, FIG. 6 will be described. In the
スレーブ状態保持回路23は、スレーブユニット5が転送要求を処理可能な状態であるか、または処理不能なビジー状態にあるかを示すスレーブ状態情報を入力し保持する。応答条件判定回路24は、アドレス条件検出信号ACD、コマンドCMDb、スレーブ状態保持回路23に保持されたスレーブ状態情報から転送要求REQbに応答するか否かを判断し、応答可能なときはCWバス3に確認応答ACKbを出力し、応答不可能なときは否定応答NACKbを出力する。
The slave
否定応答原因情報生成回路25は、スレーブ状態保持回路23に保持されたスレーブ状態情報を参照して否定応答NACKbを返信する原因に関する情報を生成する。
The negative response cause
リトライ設定値格納回路であるリトライ設定値レジスタ41は、スレーブユニットに固有に定められたリトライ設定値SRIsを格納する。リトライ設定値がコード化されてスレーブユニットから送られる場合には、コード化された状態でリトライ設定値SRIsを格納することは、図2の第1実施形態におけるリトライ設定値レジスタ41と同様である。
A retry setting
否定応答付帯情報生成回路43aは、否定応答NACKbが出力されたときに追随して否定応答原因情報NAIおよびリトライ設定値SRIsを多重化して否定応答付帯情報NAINFbを生成しCWバス3へ出力する。否定応答付帯情報生成回路43aは、例えば、スレーブプロトコル制御装置により出力選択制御されるマルチプレクサ61を用いて構成される。否定応答付帯情報NAINFの転送では、一系統の信号線または信号線群により、否定応答原因情報NAIおよびリトライ設定値SRIsがスレーブプロトコル制御回路22により設定された順序にしたがって順次転送される。
When the negative response NACKb is output, the negative response-accompanying information generation circuit 43a multiplexes the negative response cause information NAI and the retry setting value SRIs to generate negative response-accompanying information NAINFb and outputs it to the
または、否定応答付帯情報NAINFを構成する否定応答原因情報NAIおよびリトライ設定値SRIsが複数の系統の信号線または信号線群により別々に転送されるようにしてもよく、このように構成された場合には否定応答付帯情報生成回路43aを省略することができる。 Alternatively, the negative response cause information NAI and the retry set value SRIs constituting the negative response incidental information NAINF may be separately transferred by a plurality of signal lines or signal line groups. The negative response incidental information generation circuit 43a can be omitted.
第2実施形態では、スレーブインタフェース4bからリトライ設定値SRIを含む否定応答付帯情報NAINFbがマスタインタフェース2bに送られ、マスタインタフェース2b内の疑似乱数発生器51で生成された乱数値RNと否定応答付帯情報NAINFbから抽出されたリトライ設定値SRIとを加算して算出したリトライ間隔値RINに基づいて転送要求REQbを再送信するまでのリトライ間隔時間が決定される。この第2実施形態においてもリトライ設定値SRIと乱数値RNとを加算してリトライ間隔値SRIとする点において第1実施形態と同様であるので、効果においても第1実施形態と同様であり、ライブ・ロックの発生を防止することができ、また、ライブ・ロック状態に陥ったとしてもこれを解消することが可能である。また、リトライ設定値SRIはスレーブ装置に固有に設定された値を転送要求したスレーブ装置から送られて使用するので、転送準備に要する時間が大きく異なる種々のスレーブ装置がバスに接続される場合においても、リトライ間隔時間をそれぞれのスレーブ装置に対して適切な範囲に設定することできる。
In the second embodiment, negative response supplementary information NAINFb including the retry set value SRI is sent from the
第2実施形態では、疑似乱数発生器と加算器とをマスタインタフェース内にのみ持つので、バスに接続するマスタ装置の個数が少なくスレーブ装置の個数が多い構成のバスシステムでは、第1実施形態よりもハードウェア量の増加を少なく抑えることができる。 In the second embodiment, since the pseudo random number generator and the adder are provided only in the master interface, the bus system having a configuration in which the number of master devices connected to the bus is small and the number of slave devices is large is compared with the first embodiment. However, the increase in the amount of hardware can be suppressed.
次に、本発明の第3実施形態について説明する。図7は、第3実施形態のバスシステムのマスタインタフェース2cのブロック図であり、図8は、第3実施形態のバスシステムのスレーブインタフェース4cのブロック図である。バスシステム全体の構成は第1実施形態の図3と同様であるが、第3実施形態では、スレーブインタフェース4c内で乱数値を発生してリトライ設定値と加算してリトライ間隔値を算出し、リトライ間隔値をマスタインタフェース2cへ送る。
Next, a third embodiment of the present invention will be described. FIG. 7 is a block diagram of the
図7のマスタインタフェース4cにおいて、マスタプロトコル制御回路11は、マスタユニット1からの転送要求およびコマンドを受け、プロトコルに基づいてマスタユニット1とスレーブ装置との間の通信を制御する。リトライ情報抽出回路71は、スレーブインタフェース4cより送信された否定応答付帯情報NAINFbからリトライ間隔値RINを抽出する。
In the
リトライ間隔計数部33は、否定応答NACKbを受信してからのクロックCLKのパルスを計数し、リトライ間隔値RINの個数に達したことを検出してリトライ時間通知信号RTをアクティブレベルにする。リトライ間隔計数部33は、例えば、リトライ間隔値RINを保持するリトライ間隔値レジスタ12と、否定応答NACKbを受信すると計数値をリセットした後にクロックCLKのパルスを入力する毎に計数値をインクリメントしてクロックパルス数を計数するリトライ間隔カウンタ13と、リトライ間隔カウンタ13の計数値がリトライ間隔値RINに一致したことを検出してリトライ時間通知信号RTをアクティブレベルにする比較器14とによって構成される。
The retry interval counter 33 counts the pulses of the clock CLK after receiving the negative response NACKb, detects that the number of retry interval values RIN has been reached, and sets the retry time notification signal RT to the active level. For example, the retry
リトライ回数計数部34は、マスタユニット1からの転送要求REQmを受信してからの否定応答NACKbの受信回数を計数し、計数値が予め設定された許容リトライ回数PRCよりも大きくなったことを検出してオーバーフロー信号OFをアクティブレベルにする。リトライ回数計数部34は、例えば、予め所定の許容リトライ回数PRCが格納されるにリトライ回数レジスタ15と、マスタユニット1からの転送要求REQmにより計数値をリセットした後に否定応答NACKbが受信される毎にインクリメントするリトライ回数カウンタ16と、計数値がリトライ回数レジスタ15の許容リトライ回数PRCよりも大きい値になったことを検出してオーバーフロー信号OFをアクティブレベルにする比較器17とによって構成される。
The retry count counter 34 counts the number of times of negative acknowledgment NACKb received after receiving the transfer request REQm from the master unit 1, and detects that the count value is larger than the preset allowable retry count PRC. Then, the overflow signal OF is set to the active level. For example, the retry
リトライ要求回路18は、オーバーフロー信号OFがインアクティブレベルにあるときにリトライ時間通知信号RTがアクティブレベルに変化したことを検出した場合には、リトライ起動要求信号RRQをマスタプロトコル制御回路11に送る。リトライ起動要求信号RRQを受信したときには、マスタプロトコル制御回路11は転送要求REQb、コマンドCMDb、アドレス(AD/WDのアドレス部分)を再送信する。バスエラー判定回路19aは、オーバーフロー信号OFがアクティブレベルに変化したことを検出して、バスエラー信号BERmを出力する。また、バスエラー判定回路19aは、否定応答付帯情報NACKbの否定応答原因情報部分を判定し、コマンドがスレーブ装置でサポートされていないなどの原因でリトライしても無駄である場合にもバスエラー信号BERmを出力する。
When the retry
次に、図8について説明する。スレーブインタフェース4cにおいて、アドレスデコーダ21は、マスタユニット1からマスタインタフェース2cおよびCWバス3を介して転送要求REQbと多重化されたアドレス・ライトデータAD/WDのアドレス部分とを受信し、スレーブユニット4c自身に対する転送要求であればアドレス条件検出信号ACDを出力する。スレーブプロトコル制御回路22は、アドレス条件検出信号ACD、マスタ装置からのコマンドCMDbを受け、プロトコルに基づいてマスタ装置とスレーブユニット5との間の通信を制御する。
Next, FIG. 8 will be described. In the
スレーブ状態保持回路23は、スレーブユニット5が転送要求を処理可能な状態であるか、または処理不能なビジー状態にあるかを示すスレーブ状態情報を入力し保持する。応答条件判定回路24は、アドレス条件検出信号ACD、コマンドCMDb、スレーブ状態保持回路23に保持されたスレーブ状態情報から転送要求REQbに応答するか否かを判断し、応答可能なときはCWバス3に確認応答ACKbを出力し、応答不可能なときは否定応答NACKbを出力する。
The slave
否定応答原因情報生成回路25は、スレーブ状態保持回路23に保持されたスレーブ状態情報を参照して否定応答NACKbを返信する原因に関する情報を生成する。
The negative response cause
リトライ設定値格納回路であるリトライ設定値レジスタ41は、スレーブユニットに固有に定められたリトライ設定値SRIsを格納する。第3実施形態ではリトライ設定値SRIsには実際の数値とし、コード化されたものは使用しない。
A retry setting
疑似乱数発生器42は、所定の信号に起動されて乱数値RNsを生成する。図8では、所定の信号として否定応答NACKbを用いているが、否定応答NACKbに替えてアドレスデコーダ21の出力であるアドレス条件検出信号ACDを用いても良い。アドレス条件検出信号ACDを用いた場合には、応答条件判定回路24からの否定応答NACKbの発信に先行して乱数値RNsの生成を行うことができるので、疑似乱数発生器42には高速動作が要求されないという利点がある。加算器81は、リトライ設定値SRIsと乱数値RNsを加算してリトライ間隔値RINsを生成する。
The pseudo
否定応答付帯情報生成回路82は、否定応答NACKbが出力されたときに追随して否定応答原因情報NAIおよびリトライ間隔値RINsを多重化して否定応答付帯情報NAINFbを生成しCWバス3へ出力する。否定応答付帯情報生成回路82は、例えば、スレーブプロトコル制御装置により出力選択制御されるマルチプレクサ83を用いて構成される。否定応答付帯情報NAINFの転送では、一系統の信号線または信号線群により、否定応答原因情報NAIおよびリトライ間隔値RINsがスレーブプロトコル制御回路22により設定された順序にしたがって順次転送される。
When the negative response NACKb is output, the negative response-accompanying
または、否定応答付帯情報NAINFを構成する否定応答原因情報NAIおよびリトライ間隔値RINsが複数の系統の信号線または信号線群により別々に転送されるようにしてもよく、このように構成された場合には否定応答付帯情報生成回路82を省略することができる。
Alternatively, the negative response cause information NAI and the retry interval value RINs constituting the negative response incidental information NAINF may be separately transferred by a plurality of signal lines or signal line groups. The negative response incidental
第3実施形態では、スレーブインタフェース4c内で乱数値RNとリトライ設定値SRIとを加算してリトライ間隔値RINが算出され、マスタインタフェース2cに送られて、リトライ間隔値RINに基づいて転送要求REQbを再送信するまでのリトライ間隔時間が決定される。第3実施形態においてもリトライ設定値SRIと乱数値RNとを加算してリトライ間隔値SRIとする点では第1実施形態と同様であるので、効果においても第1実施形態と同様であり、ライブ・ロックの発生を防止することができ、また、ライブ・ロック状態に陥ったとしてもこれを解消することが可能である。また、リトライ設定値SRIはスレーブ装置に固有に設定された値を使用するので、転送準備に要する時間が大きく異なる種々のスレーブ装置がバスに接続される場合においても、リトライ間隔時間をそれぞれのスレーブ装置に対して適切な範囲に設定することできる。
In the third embodiment, the retry interval value RIN is calculated by adding the random value RN and the retry setting value SRI in the
第3実施形態では、疑似乱数発生器と加算器とをスレーブインタフェース内にのみ持つので、バスに接続するスレーブ装置の個数が少なくマスタ装置の個数が多い構成のバスシステムでは、第1実施形態よりもハードウェア量の増加を少なく抑えることができる。 In the third embodiment, since the pseudo random number generator and the adder are provided only in the slave interface, the bus system having a configuration in which the number of slave devices connected to the bus is small and the number of master devices is large than that in the first embodiment. However, the increase in the amount of hardware can be suppressed.
なお、図5および図7では、リトライ間隔計数部33を、リトライ間隔値レジスタ12、リトライ間隔カウンタ13および比較器14で構成しているが、図1の場合と同様に、リトライ間隔カウンタ13に替えて否定応答NACKbを受信したときに加算器32からリトライ間隔値をプリセットしクロックパルス毎にデクリメントするデクリメント型リトライ間隔カウンタとし、比較器14に替えてデクリメントカウンタの計数値が0になったことを検出してリトライ時間通知信号RTを出力するゼロ比較器としても良い。リトライ間隔計数部33をこのように構成することにより、リトライ間隔値レジスタが不要になり、またゼロ比較器の回路が簡単化できる。
In FIG. 5 and FIG. 7, the retry
同様に、図5および図7では、リトライ回数計数部34を、リトライ回数レジスタ15、リトライ回数カウンタ16および比較器17で構成しているが、図1の場合と同様に、リトライ間隔カウンタ13に替えてマスタユニットからの転送要求REQmを受信したときに所定の許容リトライ回数PRCに1を加えた値をプリセットし否定応答NACKbを受信する毎にデクリメントするデクリメント型リトライ回数カウンタとし、比較器17に替えてデクリメントカウンタの計数値が0になったことを検出してオーバーフロー信号OFを出力するゼロ比較器としても良い。リトライ回数計数部34をこのように構成することにより、リトライ回数レジスタが不要になり、またゼロ比較器の回路が簡単化できる。
Similarly, in FIG. 5 and FIG. 7, the retry
図9は、本発明のバスシステムを搭載した半導体集積回路の一例を示す図である。半導体集積回路101は内部に本発明のバスシステム100を搭載し、バスシステム100は、CPUであるバスマスタ1−1がマスタインタフェース2−1を介してCWバス3に接続され、DMA(Direct Memory Access)であるバスマスタ2−2がマスタインタフェース2−2を介してCWバス3に接続され、メモリであるスレーブユニット5−1がスレーブインタフェース4−1を介してCWバス3に接続され、外部との通信用I/Oであるスレーブユニット5−2がスレーブインタフェース4−2を介してCWバス3に接続されている。7は調停回路で、6はRDバスである。バスシステム100を備えることにより、半導体集積回路101においては、ライブ・ロックの発生を未然に防止することができ、また、ライブ・ロック状態が生じたとしてもこれを解消することができる。
FIG. 9 is a diagram showing an example of a semiconductor integrated circuit equipped with the bus system of the present invention. The semiconductor integrated
図10は、本発明のバスシステムを有する情報処理装置の一例を示す図である。情報処理装置110は内部に本発明のバスシステム100aを有し、バスシステム100aは、CWバス3に接続するマスタインタフェース2−1を含むマイクロコンピュータチップ111と、CWバス3に接続するマスタインタフェース2−2を含むDMAチップ112と、CWバス3に接続するスレーブインタフェース4−1を含むメモリチップ113と、CWバス3に接続に接続するスレーブインタフェース4−2を含む通信用I/Oチップを備えて構成されている。図9と同様に、7は調停回路で、6はRDバスである。バスシステム100aを備えることにより、情報処理装置110においては、ライブ・ロックの発生を未然に防止することができ、また、ライブ・ロック状態が生じたとしてもこれを解消することができる。
FIG. 10 is a diagram showing an example of an information processing apparatus having the bus system of the present invention. The
図11は、本発明のバスシステムを搭載した半導体集積回路を有する情報処理装置の一例を示す図である。情報処理装置120は、本発明のバスシステム100を搭載した半導体集積回路101aと、外部バス122と、外部メモリ123とを有して構成されている。バスシステム100はバスブリッジ121を介して外部バス122と接続され、バスシステム100内のCPU(図9参照)はバスシステム内のCWバス3およびRDバス6と、バスブリッジ121と、外部バス122とを介して外部メモリ123にアクセスできる構成となっている。この情報処理装置120においても半導体集積回路101aがバスシステム100aを備えていることにより、ライブ・ロックの発生を未然に防止することができ、また、ライブ・ロック状態が生じたとしてもこれを解消することができる。
FIG. 11 is a diagram showing an example of an information processing apparatus having a semiconductor integrated circuit on which the bus system of the present invention is mounted. The
1 マスタユニット
2,2a,2b,2c マスタインタフェース
3 CWバス
4,4a,4b,4c スレーブインタフェース
5 スレーブユニット
6 RDバス
7 調停回路
11 マスタプロトコル制御回路
18 リトライ要求回路
19,19a バスエラー判定回路
21 アドレスデコーダ
22 スレーブプロトコル制御回路
23 スレーブ状態保持回路
24 応答条件判定回路
25 否定応答原因情報生成回路
31,31a,71 リトライ情報抽出回路
32,81 加算器
33 リトライ間隔計数部
34 リトライ回数計数部
41 リトライ設定値レジスタ
42,51 疑似乱数発生器
43,43a,82 否定応答付帯情報生成回路
100,100a バスシステム
101,101a 半導体集積回路
110,120 情報処理装置
111 マイクロコンピュータチップ
112 DMAチップ
113 メモリチップ
114 通信処理チップ
121 バスブリッジ
122 外部バス
123 外部メモリ
REQm,REQb,REQs 転送要求
ACKb 確認応答
NACKb 否定応答
NAINFb 否定応答付帯情報
1
Claims (9)
マスタユニットと前記バスとの間に設けられ、前記否定応答付帯情報から抽出された前記リトライ設定値と前記乱数値とを加算する加算器と、加算結果をリトライ間隔値として格納するリトライ間隔値格納回路とを備え、前記リトライ間隔値に基づいて転送要求を再送信するまでの時間を決定するマスタインターフェースと、
を有することを特徴とするバスシステム。 A master unit, which is provided between a slave unit and a bus and includes a retry setting value storage circuit that stores a retry setting value that is uniquely determined by the slave unit, and a pseudo-random number generator that generates pseudo-random numbers. A negative response is transmitted when a response to a transfer request from is rejected, and a negative response supplementary information including the retry setting value and a random value generated by the pseudo random number generator is transmitted to the master unit via the bus. Slave interface to
An adder that is provided between the master unit and the bus and adds the retry setting value extracted from the negative response supplementary information and the random number value, and a retry interval value storage that stores the addition result as a retry interval value A master interface for determining a time until a transfer request is retransmitted based on the retry interval value;
A bus system comprising:
マスタユニットと前記バスとの間に設けられ擬似的に乱数を生成する疑似乱数発生器と、生成された乱数値と前記否定応答付帯情報から抽出された前記リトライ設定値とを加算する加算器と、加算結果をリトライ間隔値として格納するリトライ間隔値格納回路とを備え、前記リトライ間隔値に基づいて転送要求を再送信するまでの時間を決定するマスタインターフェースと、
を有することを特徴とするバスシステム。 Provided between the slave unit and the bus and provided with a retry setting value storage circuit for storing a retry setting value uniquely determined for the slave unit, and a negative response when refusing a response to a transfer request from the master unit And a slave interface for transmitting negative acknowledgment incidental information including the retry setting value to the master unit via the bus, and
A pseudo-random number generator that is provided between the master unit and the bus and generates a pseudo-random number; and an adder that adds the generated random number value and the retry setting value extracted from the negative response supplementary information; A master interface that determines a time until a transfer request is retransmitted based on the retry interval value, and a retry interval value storage circuit that stores the addition result as a retry interval value;
A bus system comprising:
マスタユニットからの転送要求とアドレスとを前記バスを介して受信し前記スレーブユニットに対する転送要求であればアドレス条件検出信号を出力するアドレスデコーダと、
前記アドレス条件検出信号、マスタユニットからのコマンドおよび前記スレーブユニットの動作状態からマスタユニットからの転送要求に応答するか否かを判断し応答可能なときは前記バスに確認応答を出力し応答不可能なときは前記バスに否定応答を出力する応答条件判定回路と、
前記スレーブユニットに固有に定められたリトライ設定値を格納するリトライ設定値格納回路と、
前記否定応答が出力されたときに追随して前記リトライ設定値を含む否定応答付帯情報を前記バスに出力する否定応答付帯情報生成回路と、を備えるスレーブインタフェースと、
前記バスとマスタユニットとの間に設けられ、
前記バスから前記否定応答付帯情報を入力し前記リトライ設定値を抽出して出力するリトライ情報抽出回路と、
所定の信号に起動されて擬似的に乱数を生成する疑似乱数発生器と、
前記リトライ設定値と前記疑似乱数発生器により生成された乱数値とを加算してリトライ間隔値を算出する加算器と、
前記否定応答の受信によりクロックパルスの計数を開始し計数値が前記リトライ間隔値と等しくなったことを検出してリトライ時間通知信号を出力するリトライ間隔計数部と、
マスタユニットからの転送要求の受信により前記否定応答の受信回数の計数を開始し計数値が予め設定された許容リトライ回数より大きくなったことを検出してオーバーフロー信号を出力するリトライ回数計数部と、
前記オーバーフロー信号がインアクティブレベルで前記リトライ時間通知信号がアクティブレベルとなったことを検出して転送要求の再送信を起動するリトライ要求回路と、を備えるマスタインタフェースと、
を有することを特徴とするバスシステム。 Provided between the slave unit and the bus,
An address decoder that receives a transfer request and an address from the master unit via the bus and outputs an address condition detection signal if the transfer request is to the slave unit;
Determine whether to respond to the transfer request from the master unit based on the address condition detection signal, command from the master unit and the operating state of the slave unit. A response condition determination circuit that outputs a negative response to the bus,
A retry setting value storage circuit for storing a retry setting value uniquely determined for the slave unit;
A slave interface comprising a negative response incidental information generation circuit for outputting negative acknowledgment incidental information including the retry setting value to the bus following the negative response output;
Provided between the bus and the master unit,
A retry information extraction circuit that inputs the negative response supplementary information from the bus, extracts the retry setting value, and outputs the retry setting value;
A pseudo random number generator that is activated by a predetermined signal to generate a pseudo random number;
An adder for calculating a retry interval value by adding the retry setting value and the random value generated by the pseudo-random number generator;
A retry interval counter that starts counting clock pulses by receiving the negative response, detects that the count value is equal to the retry interval value, and outputs a retry time notification signal;
A retry count counter that starts counting the number of times the negative response is received upon reception of a transfer request from the master unit, detects that the count value is greater than a preset allowable retry count, and outputs an overflow signal;
A retry request circuit that detects that the retry time notification signal has become an active level when the overflow signal is in an inactive level, and a retry request circuit that activates retransmission of a transfer request; and
A bus system comprising:
前記リトライ情報抽出回路は、前記コード化されたリトライ設定値のデコード機能を有することを特徴とする請求項6記載のバスシステム。 The retry setting value is a coded retry setting value,
7. The bus system according to claim 6, wherein the retry information extraction circuit has a decoding function of the coded retry setting value.
マスタインタフェースが受信した否定応答であることを特徴とする請求項6または7記載のバスシステム。 A predetermined signal for activating the pseudo-random number generator is
8. The bus system according to claim 6, wherein the master interface is a negative response received by the master interface.
マスタインタフェースがバスへ出力するスレーブユニットへの転送要求であることを特徴とする請求項6または7記載のバスシステム。
A predetermined signal for activating the pseudo-random number generator is
8. The bus system according to claim 6, wherein the master interface is a transfer request to a slave unit output to the bus.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2005062244A JP4152387B2 (en) | 2005-03-07 | 2005-03-07 | Bus system |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2005062244A JP4152387B2 (en) | 2005-03-07 | 2005-03-07 | Bus system |
Related Parent Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2001362855A Division JP4063529B2 (en) | 2001-11-28 | 2001-11-28 | Bus system and retry method |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2005196808A JP2005196808A (en) | 2005-07-21 |
JP4152387B2 true JP4152387B2 (en) | 2008-09-17 |
Family
ID=34824815
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2005062244A Expired - Fee Related JP4152387B2 (en) | 2005-03-07 | 2005-03-07 | Bus system |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP4152387B2 (en) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TWI617164B (en) * | 2012-10-19 | 2018-03-01 | 菲爾卻德半導體公司 | Apparatus and method for operating and switching a single conductor interface |
-
2005
- 2005-03-07 JP JP2005062244A patent/JP4152387B2/en not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
JP2005196808A (en) | 2005-07-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP4063529B2 (en) | Bus system and retry method | |
US4458314A (en) | Circuitry for allocating access to a demand shared bus | |
KR100267130B1 (en) | Pci bus system | |
JP2004318901A (en) | High-speed control and data bus system mutually between data processing modules | |
EP2975529B1 (en) | Requests and data handling in a bus architecture | |
WO2016127552A1 (en) | Direct memory access (dma) controller and data transmission method | |
JP5968119B2 (en) | Communication system with cascade connection | |
JPH0786863B2 (en) | Processor access control device for multi-processor system | |
US8386908B2 (en) | Data transmission methods and universal serial bus host controllers utilizing the same | |
JP2015530679A (en) | Method and apparatus using high efficiency atomic operations | |
JP4152387B2 (en) | Bus system | |
JP4104939B2 (en) | Multiprocessor system | |
US20040054843A1 (en) | Configuration and method having a first device and a second device connected to the first device through a cross bar | |
JP2000276437A (en) | Dma controller | |
WO2012093475A1 (en) | Information transfer device and information transfer method of information transfer device | |
JPH08123770A (en) | Data communication control equipment | |
JPH0728748A (en) | Bus control mechanism and computer system | |
JP5334173B2 (en) | Data transfer system and retry control method | |
JP2533923B2 (en) | Storage controller | |
JP6339331B2 (en) | Information processing apparatus and interface control method for controlling interface | |
KR100666950B1 (en) | Multiple memory access system and method for packet processing | |
JP2643776B2 (en) | Arbiter device and arbiter method | |
JP2003281087A (en) | Memory target device and data transfer system | |
KR0138063B1 (en) | Inter processor communication apparatus of broad circuit distributing system | |
JP2008047033A (en) | Controller and control method |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
RD01 | Notification of change of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7421 Effective date: 20070703 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20080311 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20080509 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20080603 |
|
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20080701 |
|
R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110711 Year of fee payment: 3 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110711 Year of fee payment: 3 |
|
S533 | Written request for registration of change of name |
Free format text: JAPANESE INTERMEDIATE CODE: R313533 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110711 Year of fee payment: 3 |
|
R350 | Written notification of registration of transfer |
Free format text: JAPANESE INTERMEDIATE CODE: R350 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120711 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120711 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130711 Year of fee payment: 5 |
|
LAPS | Cancellation because of no payment of annual fees |