JP4063529B2 - バスシステムおよびリトライ方法 - Google Patents

バスシステムおよびリトライ方法 Download PDF

Info

Publication number
JP4063529B2
JP4063529B2 JP2001362855A JP2001362855A JP4063529B2 JP 4063529 B2 JP4063529 B2 JP 4063529B2 JP 2001362855 A JP2001362855 A JP 2001362855A JP 2001362855 A JP2001362855 A JP 2001362855A JP 4063529 B2 JP4063529 B2 JP 4063529B2
Authority
JP
Japan
Prior art keywords
retry
bus
value
master
slave
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
Application number
JP2001362855A
Other languages
English (en)
Other versions
JP2003162498A (ja
Inventor
健一朗 安生
淳 岡村
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.)
NEC Electronics Corp
Original Assignee
NEC Electronics 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 NEC Electronics Corp filed Critical NEC Electronics Corp
Priority to JP2001362855A priority Critical patent/JP4063529B2/ja
Priority to US10/306,685 priority patent/US7076719B2/en
Priority to DE10255368A priority patent/DE10255368A1/de
Publication of JP2003162498A publication Critical patent/JP2003162498A/ja
Application granted granted Critical
Publication of JP4063529B2 publication Critical patent/JP4063529B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/12Arrangements for detecting or preventing errors in the information received by using return channel
    • H04L1/16Arrangements for detecting or preventing errors in the information received by using return channel in which the return channel carries supervisory signals, e.g. repetition request signals
    • H04L1/18Automatic repetition systems, e.g. Van Duuren systems
    • H04L1/1867Arrangements specially adapted for the transmitter end
    • H04L1/188Time-out mechanisms

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Bus Control (AREA)
  • Debugging And Monitoring (AREA)
  • Small-Scale Networks (AREA)
  • Communication Control (AREA)
  • Information Transfer Systems (AREA)

Description

【0001】
【発明の属する技術分野】
本発明は、バスシステムに関し、特に、マスタ装置からの転送要求がスレーブで拒否されたときのリトライ間隔についてライブ・ロックの発生を回避できるように適正化するバスシステムおよびリトライ方法に関する。
【0002】
【従来の技術】
図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に接続されている。
【0003】
第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が送られる。
【0004】
同様に、第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が送られる。
【0005】
スレーブ装置のスレーブインタフェース92からスレーブユニット5へ、転送要求REQs、コマンドCMDs、アドレスADs、ライトデータWDsが送られる。逆方向に、スレーブユニット5からスレーブインタフェース92へ、コマンドアクノリッジCACKsが送られる。
【0006】
リードデータについては、スレーブユニット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が送られる。
【0007】
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に送る。
【0008】
図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を出力する。
【0009】
図14(a)は、図12および図13で示した従来のバスシステムの動作シーケンス図である。図14(a)では、2個のマスタ装置が前後して1個のスレーブ装置に対してリード転送要求を発信した場合の動作を示しており、これを参照して図12の従来のバスシステムの動作を説明する。
【0010】
時刻T11において、マスタユニット1−1からマスタインタフェース91−1へ転送要求REQm1が送られる。同時にアドレスADm1、コマンドCMDm1などが同時にマスタインタフェース91−1に渡される。
【0011】
マスタインタフェース91−1は、調停回路7にCWバス3のバス使用権を要求し、バス使用権が付与され且つCWバス3が未使用な状態になったときにCWバス3上に転送要求REQbを出す。マスタインタフェース91−1内のリトライ回数カウンタ16は0にリセットされる。
【0012】
スレーブインタフェース92は、CWバス3を介してマスタユニット1−1からの転送要求REQb、アドレス・ライトデータAD/WDb、コマンドCMDbを受信し、受信したコマンドCMDbおよびスレーブユニット5の状態に応じて、その転送要求REQbを受信するか拒否するかを判定する。スレーブユニット5は受信可能な状態なので、スレーブインタフェース92はCWバス3上に確認応答ACKbを出力するとともにスレーブユニット5に転送要求REQsを送信する。
【0013】
マスタインタフェース91−1は、確認応答ACKbを受信すると、マスタユニット1−1にコマンドアクノリッジCACKm1を送る。同時にデータフェーズの転送を開始する。データフェーズでは、マスタインタフェース91−1は、ライトならばマスタユニット1−1にライトデータを要求し、受信したデータをCWバス3に出力するが、ここではリードであるので、CWバス3を開放してリードデータが準備されるまでの所定の時間待つ。
【0014】
一方、時刻T12において、マスタユニット1−2からマスタインタフェース91−2へ転送要求REQm2が送られたとする。同時にアドレスADm2、コマンドCMDm2などがマスタインタフェース91−2に渡される。
【0015】
マスタインタフェース91−2は、調停回路7にCWバス3のバス使用権を要求し、CWバス3が使用中のため開放されるまで待ち、バス使用権が付与されると、CWバス3上に転送要求REQbを出す。マスタインタフェース91−2のリトライ回数カウンタ16は0にリセットされる。
【0016】
スレーブインタフェース92は、CWバス3を介してマスタユニット1−2からの転送要求REQb、アドレスADb、コマンドCMDbを受信する。しかしながら、スレーブユニット5はマスタユニット1−2からの転送要求の処理でビジー状態にあるので、スレーブインタフェース92は、転送要求REQbを拒否すると判定し、否定応答NACKbを返信する。
【0017】
マスタインタフェース91−2は、否定応答NACKbを受信するとCWバス3を開放したのちに、リトライ回数カウンタ16の計数値をインクリメントし、リトライ回数レジスタ15に格納された許容リトライ回数PRCよりも大きいか否かを判定する。計数値が許容リトライ回数PRCを越えてしまった場合にはバスエラー判定回路19がバスエラー信号BERm1を出力するが、図14(a)の場合には、計数値が許容リトライ回数PRCよりも小さい場合なので、マスタインタフェース91−2は、リトライ間隔カウンタ13がリトライ間隔値レジスタ12に格納されたリトライ間隔値RINの個数分のクロックパルスを計数するまでの時間(リトライ間隔時間)Triだけ待つ。
【0018】
スレーブインタフェース92では、マスタインタフェース1−1からの転送要求に対するリードデータの転送準備ができるとスレーブユニット5からリードデータRDsを受信し、RDバス6にリードデータRDbを出力する。
【0019】
マスタインタフェース91−1は、RDバス6を介してリードデータRDbを受信してマスタユニット1−1へリードデータRDm1を送信する。時刻T13に、マスタユニット1−1はリードデータRDm1を受信し、マスタユニット1−1のリード転送要求の処理を完了する。
【0020】
一方、マスタインタフェース1−2では、リトライ間隔カウンタ13の計数値がリトライ間隔値RINに達したときに、プロトコル制御回路11は、再度CWバス3のバス使用権を調停回路7に要求する。バス使用権が付与されるとバス上に転送要求REQbを出力する。
【0021】
スレーブインタフェース92は、CWバス3を介してマスタユニット1−2からの転送要求REQb、アドレスADb、コマンドCMDbを受信し、今回はスレーブユニット5が受信可能な状態にあるので、スレーブインタフェース92はCWバス3上に確認応答ACKbを出力するとともにスレーブユニット5に転送要求REQsを発信する。
【0022】
マスタインタフェース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のリード転送要求の処理を完了する。
【0023】
図14(b)のタイミング図は、図14(a)を用いて以上に説明した動作をタイミング図に示したものである。図14(b)では、マスタインタフェース91−1から調停回路7へのバス使用権要求AREQm1およびこれに対する調停回路7からマスタインタフェース91−1へのバス使用権付与のグラント信号AGNTm1と、マスタインタフェース91−2から調停回路7へのバス使用権要求AREQm2およびこれに対する調停回路7からマスタインタフェース91−2へのバス使用権付与のグラント信号AGNTm2とについても図示している。
【0024】
従来のバスシステムでは、このようにして、複数のマスタユニットから1個のスレーブユニットへ転送要求が集中したときにおいても複数の転送要求を調整して応答することができる。
【0025】
【発明が解決しようとする課題】
しかしながら、例えば図12において、マスタユニット1−1からスレーブユニット5への転送要求ACKbが周期的に発生し、これがマスタユニット1−2によりリトライ間隔値RINに基づいて生成される転送要求ACKbの周期と一致する場合には、マスタユニット1−2からの転送要求が拒否され続けて実行されない状況が続くことがある。これをライブ・ロックと称し、バスの転送効率を著しく低下させるため、発生を未然に防止し、発生した場合には速やかに解消させる必要がある。
【0026】
図15は、ライブ・ロックの発生を示す動作シーケンス図である。時刻T1で、マスタユニット1−1から転送要求REQm1が発信され、時刻T2で、マスタユニット1−2から転送要求REQm2が発信されたが、先に発信されたマスタユニット1−1からの転送要求が受け付けられてスレーブユニット5がビジー状態になるために、マスタユニット1−2からの転送要求はスレーブインタフェース92において拒否され否定応答NACKbがマスタインタフェース91−2へ返信される。スレーブインタフェース92は、否定応答NACKbを受信してリトライ間隔時間Triの計時を始める。
【0027】
一方、マスタユニット1−1の転送要求に対するリードデータRDm1がスレーブユニット5からRDバス6を介して時刻T3にマスタユニット1−1に転送され、リード処理が完了する。直後にマスタユニット1−1が次の転送要求REQm1を発信するので、マスタユニット1−1からの転送要求が受け付けられてスレーブユニット5が再びビジー状態になる。
【0028】
マスタインタフェース91−2では、リトライ間隔時間Triが経過したことを検出して転送要求REQbをスレーブインタフェース92に再送信するが、スレーブユニット5がビジー状態にあるため拒否されて、否定応答NACKbがマスタインタフェース91−2へ再度返信される。マスタインタフェース91−2は、否定応答NACKbを受信してリトライ間隔時間Triの計時を再度開始する。
【0029】
図15の場合には、マスタユニット1−1からの転送要求の発信周期が、マスタインタフェース91−2の転送要求の再送信の周期と一致するため、以降はマスタユニット1−1からの転送要求のみが連続して実行される。マスタユニット1−2からの転送要求は拒否され続けるのでライブ・ロック状態となる。
【0030】
ライブ・ロックが発生した場合にこれを解消するためには、周期的に転送要求の発信を行うマスタ装置(図15ではマスタユニット1−1)の転送要求を一時停止させるか、または、ライブ・ロック状態にあるマスタ装置(図15ではマスタインタフェース91−2)が転送要求を再送信するまでのリトライ間隔時間を変更するかの何れかを行う必要がある。
【0031】
周期的に転送要求するマスタ装置を一時停止させる方法をとるものとして、特開2000−315188号公報に、バストランザクションを監視してライブ・ロックが発生したことを検出するとライブ・ロック状態のマスタ装置にバスを独占的に使用させるように制御する技術が開示されている。この技術を用いることにより確実にライブ・ロックを解消することが可能となるものの、バス使用権の調停回路内にライブ・ロック状態にあるか否かを検出するためのライブ・ロック検出回路を各マスタ装置に対応させて設け、またライブ・ロック状態が検出されたマスタ装置に対してバスの独占使用を設定する回路を設ける必要があるので、バス使用権調停回路のハードウェア量が大幅に増大してしまう。
【0032】
ライブ・ロック状態にあるマスタ装置のリトライ間隔時間を変更するものとして、特開平9−114750号公報に、マスタ装置が複数のリトライ間隔時間レジスタを備え、第1のレジスタのリトライ間隔時間に設定したときに否定応答を所定の回数連続して受信した場合には、第2のレジスタに変更して異なるリトライ間隔時間とし、それでも所定回数の否定応答を受けた場合には第3のレジスタに変更して異なるリトライ間隔時間に順次設定する技術が開示されている。しかしながら、バスに複数のスレーブ装置が接続されている場合に、スレーブ装置のリード/ライトに要する時間は、スレーブ装置が高速のメモリであるか低速の周辺装置であるかなどスレーブ装置の機能により大きく異なる。このため、適切なリトライ間隔時間も転送要求対象のスレーブ装置毎に異なっている。したがって、バスに多数のスレーブ装置が接続される場合には、各マスタ装置内に、1個のスレーブ装置につき複数個のレジスタを含むレジスタグループとしたうえで複数個のスレーブ装置に対応して複数個のレジスタグループを設けなければならず、マスタ装置のハードウェア量が大幅に増大してしまう。
【0033】
特開2000−250850号公報には、スレーブ装置にリトライ間隔時間について基本のリトライ間隔時間を記憶した第1のタイムテーブルとこれより短いリトライ間隔時間を記憶した第2のタイムテーブルを備え、最初の否定応答を返信するときには第1のタイムテーブルのリトライ間隔時間をマスタ装置へ通知し、2回目以降の否定応答を返信するときには第2のタイムテーブルのリトライ間隔時間をマスタ装置へ通知する技術が開示されている。マスタ装置は、最初の否定応答を受けてから第1のタイムテーブルの基本リトライ間隔時間の経過を待って転送要求を再送信し、2回目以降は否定応答を受けてから第2のタイムテーブルのリトライ間隔時間の経過を待って転送要求を再送信する。この技術では、スレーブ装置が固有の基本リトライ間隔時間を記憶しているため、マスタ側でそれぞれのスレーブ装置に適合したリトライ間隔時間を記憶する必要がない点で前述の特開平9−114750号公報に開示された技術よりも改良されているが、第2のタイムテーブルのリトライ間隔時間が他のマスタ装置からの転送要求の周期と一致してライブ・ロックが発生する可能性があり、また、一旦ライブ・ロック状態になった場合にこれを解消するものでもない。但しこの技術では、第2のタイムテーブルのリトライ間隔時間を極めて短い時間に設定すれば実質的にバスの占有権を独占できるため、2回以上の否定応答を受けたマスタ装置からの転送要求が優先的に処理されることになり、ライブ・ロックの発生を未然に防止することが可能である。しかしながら、このようにするとバスが独占されるために転送要求対象のスレーブ装置が周辺装置のようにリード/ライトに時間がかかる装置であったときには、バスに接続された他のマスタ装置およびスレーブ装置間の送受信が長時間停止しバス使用効率が大幅に低下してしまう。
【0034】
本発明の目的は、ライブ・ロックの発生を防止し、また、ライブ・ロック状態に陥った場合にもこれを解消することが可能で、且つ、これを実現するためのハードウェア量の増加が従来よりも小さくて済むバスシステムおよびリトライ方法を提供することにある。
【0035】
【課題を解決するための手段】
本発明の第1の発明のバスシステムは、スレーブユニットとバスとの間に設けられ、前記スレーブユニットに固有に定められたリトライ設定値を格納するリトライ設定値格納回路と、擬似的に乱数を生成する疑似乱数発生器とを備え、マスタユニットからの転送要求への応答を拒否するときに否定応答を送信するとともに前記リトライ設定値と前記疑似乱数発生器で生成した乱数値とを含む否定応答付帯情報を前記バスを介してマスタユニットへ送信するスレーブインタフェースと、マスタユニットと前記バスとの間に設けられ、前記否定応答付帯情報から抽出された前記リトライ設定値と前記乱数値とを加算する加算器と、加算結果をリトライ間隔値として格納するリトライ間隔値格納回路とを備え、前記リトライ間隔値に基づいて転送要求を再送信するまでの時間を決定するマスタインターフェースと、を有して構成される。
【0036】
第2の発明のバスシステムは、スレーブユニットとバスとの間に設けられ、マスタユニットからの転送要求とアドレスとを前記バスを介して受信し前記スレーブユニットに対する転送要求であればアドレス条件検出信号を出力するアドレスデコーダと、前記アドレス条件検出信号、マスタユニットからのコマンドおよび前記スレーブユニットの動作状態からマスタユニットからの転送要求に応答するか否かを判断し応答可能なときは前記バスに確認応答を出力し応答不可能なときは前記バスに否定応答を出力する応答条件判定回路と、前記スレーブユニットに固有に定められたリトライ設定値を格納するリトライ設定値格納回路と、所定の信号に起動されて擬似的に乱数を生成する疑似乱数発生器と、前記否定応答が出力されたときに追随して前記リトライ設定値および前記疑似乱数発生器で発生させた乱数値を含む否定応答付帯情報を前記バスに出力する否定応答付帯情報生成回路と、を備えるスレーブインタフェースと、前記バスとマスタユニットとの間に設けられ、前記バスから前記否定応答付帯情報を入力し前記リトライ設定値と前記乱数値とを抽出して出力するリトライ情報抽出回路と、前記リトライ設定値と前記乱数値とを加算してリトライ間隔値を算出する加算器と、前記否定応答の受信によりクロックパルスの計数を開始し計数値が前記リトライ間隔値と等しくなったことを検出してリトライ時間通知信号を出力するリトライ間隔計数部と、マスタユニットからの転送要求の受信により前記否定応答の受信回数の計数を開始し計数値が予め設定された許容リトライ回数より大きくなったことを検出してオーバーフロー信号を出力するリトライ回数計数部と、前記オーバーフロー信号がインアクティブレベルで前記リトライ時間通知信号がアクティブレベルとなったことを検出して転送要求の再送信を起動するリトライ要求回路と、前記オーバーフロー信号に基づいてバスエラーの発生を判定しマスタユニットへバスエラー信号を出力するバスエラー判定回路と、を備えるマスタインタフェースと、を有して構成される。
【0037】
第3の発明のバスシステムは、スレーブユニットとバスとの間に設けられ、前記スレーブユニットに固有に定められたリトライ設定値を格納するリトライ設定値格納回路を備え、マスタユニットからの転送要求への応答を拒否するときに否定応答を送信するとともに前記リトライ設定値を含む否定応答付帯情報を前記バスを介してマスタユニットへ送信するスレーブインタフェースと、マスタユニットと前記バスとの間に設けられ擬似的に乱数を生成する疑似乱数発生器と、生成された乱数値と前記否定応答付帯情報から抽出された前記リトライ設定値とを加算する加算器と、加算結果をリトライ間隔値として格納するリトライ間隔値格納回路とを備え、前記リトライ間隔値に基づいて転送要求を再送信するまでの時間を決定するマスタインターフェースと、を有して構成される。
【0038】
第4の発明のバスシステムは、スレーブユニットとバスとの間に設けられ、マスタユニットからの転送要求とアドレスとを前記バスを介して受信し前記スレーブユニットに対する転送要求であればアドレス条件検出信号を出力するアドレスデコーダと、前記アドレス条件検出信号、マスタユニットからのコマンドおよび前記スレーブユニットの動作状態からマスタユニットからの転送要求に応答するか否かを判断し応答可能なときは前記バスに確認応答を出力し応答不可能なときは前記バスに否定応答を出力する応答条件判定回路と、前記スレーブユニットに固有に定められたリトライ設定値を格納するリトライ設定値格納回路と、前記否定応答が出力されたときに追随して前記リトライ設定値を含む否定応答付帯情報を前記バスに出力する否定応答付帯情報生成回路と、を備えるスレーブインタフェースと、前記バスとマスタユニットとの間に設けられ、前記バスから前記否定応答付帯情報を入力し前記リトライ設定値を抽出して出力するリトライ情報抽出回路と、所定の信号に起動されて擬似的に乱数を生成する疑似乱数発生器と、前記リトライ設定値と前記疑似乱数発生器により生成された乱数値とを加算してリトライ間隔値を算出する加算器と、前記否定応答の受信によりクロックパルスの計数を開始し計数値が前記リトライ間隔値と等しくなったことを検出してリトライ時間通知信号を出力するリトライ間隔計数部と、マスタユニットからの転送要求の受信により前記否定応答の受信回数の計数を開始し計数値が予め設定された許容リトライ回数より大きくなったことを検出してオーバーフロー信号を出力するリトライ回数計数部と、前記オーバーフロー信号がインアクティブレベルで前記リトライ時間通知信号がアクティブレベルとなったことを検出して転送要求の再送信を起動するリトライ要求回路と、前記オーバーフロー信号に基づいてバスエラーの発生を判定しマスタユニットへバスエラー信号を出力するバスエラー判定回路と、を備えるマスタインタフェースと、を有して構成されている。
【0039】
第5の発明のバスシステムは、スレーブユニットとバスとの間に設けられ、前記スレーブユニットに固有に定められたリトライ設定値を格納するリトライ設定値格納回路と、擬似的に乱数を生成する疑似乱数発生器と、生成した乱数値と前記リトライ設定値とを加算してリトライ間隔値を生成する加算器とを備え、マスタユニットからの転送要求への応答を拒否するときに否定応答を送信するとともに前記リトライ間隔値を含む否定応答付帯情報を前記バスを介してマスタユニットへ送信するスレーブインタフェースと、マスタユニットと前記バスとの間に設けられ、前記否定応答付帯情報から抽出された前記リトライ間隔値を格納するリトライ間隔値格納回路を備え、前記リトライ間隔値に基づいて転送要求を再送信するまでの時間を決定するマスタインターフェースと、を有して構成されている。
【0040】
第6の発明のバスシステムは、スレーブユニットとバスとの間に設けられ、マスタユニットからの転送要求とアドレスとを前記バスを介して受信し前記スレーブユニットに対する転送要求であればアドレス条件検出信号を出力するアドレスデコーダと、前記アドレス条件検出信号、マスタユニットからのコマンドおよび前記スレーブユニットの動作状態からマスタユニットからの転送要求に応答するか否かを判断し応答可能なときは前記バスに確認応答を出力し応答不可能なときは前記バスに否定応答を出力する応答条件判定回路と、前記スレーブユニットに固有に定められたリトライ設定値を格納するリトライ設定値格納回路と、所定の信号に起動されて擬似的に乱数を生成する疑似乱数発生器と、前記リトライ設定値と前記疑似乱数発生器で生成した乱数値とを加算してリトライ間隔値を算出する加算器と、前記否定応答が出力されたときに追随して前記リトライ間隔値を含む否定応答付帯情報を前記バスに出力する否定応答付帯情報生成回路と、を備えるスレーブインタフェースと、前記バスとマスタユニットとの間に設けられ、前記バスから前記否定応答付帯情報を入力し前記リトライ間隔値を抽出して出力するリトライ情報抽出回路と、前記否定応答の受信によりクロックパルスの計数を開始し計数値が前記リトライ間隔値と等しくなったことを検出してリトライ時間通知信号を出力するリトライ間隔計数部と、マスタユニットからの転送要求の受信により前記否定応答の受信回数の計数を開始し計数値が予め設定された許容リトライ回数より大きくなったことを検出してオーバーフロー信号を出力するリトライ回数計数部と、前記オーバーフロー信号がインアクティブレベルで前記リトライ時間通知信号がアクティブレベルとなったことを検出して転送要求の再送信を起動するリトライ要求回路と、前記オーバーフロー信号に基づいてバスエラーの発生を判定しマスタユニットへバスエラー信号を出力するバスエラー判定回路と、を備えるマスタインタフェースと、を有して構成されている。
【0041】
第7の発明のリトライ方法は、マスタ装置とスレーブ装置がバスを介して接続されたバスシステムの転送要求のリトライ方法において、前記スレーブ装置に固有に定められたリトライ設定値と疑似乱数生成した乱数値とを加算して得られるリトライ間隔値に基づいて前記マスタ装置から前記スレーブ装置へ転送要求を再送信するまでの時間を決定することを特徴としている。
【0042】
【発明の実施の形態】
本発明は、スレーブ装置に固有に定められたリトライ設定値と疑似乱数生成した乱数値とを加算して得られるリトライ間隔値に基づいてマスタ装置からスレーブ装置へ転送要求を再送信するまでの時間を決定する点が以下にあげる実施形態に共通する。以下、本発明について図面を参照して詳細に説明する。
【0043】
図1、図2、図3は、本発明のバスシステムの第1実施形態を説明する図である。第1実施形態では、スレーブインタフェースで乱数値を生成してマスタインタフェースで加算する。図1はマスタインタフェースのブロック図であり、図2は、スレーブインタフェースのブロック図であり、図3は、バスシステムの一例を示す図である。
【0044】
まず、バスシステム全体について図3を参照して説明する。第1実施形態のバスシステムは、図12の従来のバスシステムにおけるスレーブインタフェース92に替えて、スレーブインタフェース92と同様の入出力に加えて否定応答付帯情報NAINFbを出力するスレーブインタフェース4を備えている。また、第1実施形態のバスシステムは、マスタインタフェース91−1,91−2に替えて、マスタインタフェース91と同様の入出力に加え否定応答付帯情報NAINFbを入力するマスタインタフェース2−1,2−2を備えている。以下、バスシステムの構成を述べる。
【0045】
マスタユニット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に接続されている。
【0046】
第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が送られる。
【0047】
同様に、第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が送られる。
【0048】
スレーブ装置のスレーブインタフェース4からスレーブユニット5へ、転送要求REQs、コマンドCMDs、アドレスADs、ライトデータWDsが送られる。逆方向に、スレーブユニット5からスレーブインタフェース4へ、コマンドアクノリッジCACKsが送られる。コマンドアクノリッジCACKsはスレーブユニット5が次のコマンドを受信可能であることを通知する。
【0049】
リードデータについては、スレーブユニット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が送られる。
【0050】
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に送る。
【0051】
次に、図1について説明する。図1は、第1実施形態のマスタインタフェース2aのCWバス3に関係する部分の内部ブロックを示し、RDバス6に関係する部分すなわちリードデータの受信に関係する部分は省略されている。
【0052】
マスタインタフェース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を出力する。
【0053】
リトライ間隔計数部33は、否定応答NACKbを受信してからのクロックCLKのパルスを計数し、リトライ間隔値RINの個数に達したことを検出してリトライ時間通知信号RTをアクティブレベルにする。リトライ間隔計数部33は、例えば、リトライ間隔値RINを保持するリトライ間隔値レジスタ12と、否定応答NACKbを受信すると計数値をリセットした後にクロックCLKのパルスを入力する毎に計数値をインクリメントしてクロックパルス数を計数するリトライ間隔カウンタ13と、リトライ間隔カウンタ13の計数値がリトライ間隔値RINに一致したことを検出してリトライ時間通知信号RTをアクティブレベルにする比較器14とによって構成される。なお、例えば加算等の回路動作によるクロック時間消費によるズレを考慮し、リトライ間隔値レジスタに設定する値を算出されたリトライ間隔値RINに対して所定数αを増減して補正した値として設定してもよい。
【0054】
リトライ回数計数部34は、マスタユニット1からの転送要求REQmを受信してからの否定応答NACKbの受信回数を計数し、計数値が予め設定された許容リトライ回数PRCよりも大きくなったことを検出してオーバーフロー信号OFをアクティブレベルにする。リトライ回数計数部34は、例えば、予め所定の許容リトライ回数PRCが格納されるにリトライ回数レジスタ15と、マスタユニット1からの転送要求REQmにより計数値をリセットした後に否定応答NACKbが受信される毎にインクリメントするリトライ回数カウンタ16と、計数値がリトライ回数レジスタ15の許容リトライ回数PRCよりも大きい値になったことを検出してオーバーフロー信号OFをアクティブレベルにする比較器17とによって構成される。
【0055】
リトライ要求回路18は、オーバーフロー信号OFがインアクティブレベルにあるときにリトライ時間通知信号RTがアクティブレベルに変化したことを検出した場合には、リトライ起動要求信号RRQをマスタプロトコル制御回路11に送る。リトライ起動要求信号RRQを受信したときには、マスタプロトコル制御回路11は転送要求REQb、コマンドCMDb、アドレス(AD/WDのアドレス部分)を再送信する。バスエラー判定回路19aは、オーバーフロー信号OFがアクティブレベルに変化したことを検出して、バスエラー信号BERmを出力する。また、バスエラー判定回路19aは、否定応答付帯情報NACKbの否定応答原因情報部分を判定し、コマンドがスレーブ装置でサポートされていないなどの原因でリトライしても無駄である場合にもバスエラー信号BERmを出力する。
【0056】
次に、図2について説明する。図2は、第1実施形態のスレーブインタフェース4aのCWバス3に関係する部分の内部ブロックを示し、RDバス6に関係する部分すなわちリードデータの受信に関係する部分は省略されている。
【0057】
スレーブインタフェース4aにおいて、アドレスデコーダ21は、マスタユニット1からマスタインタフェース2aおよびCWバス3を介して転送要求REQbと多重化されたアドレス・ライトデータAD/WDのアドレス部分とを受信し、スレーブユニット4a自身に対する転送要求であればアドレス条件検出信号ACDを出力する。スレーブプロトコル制御回路22は、アドレス条件検出信号ACD、マスタ装置からのコマンドCMDbを受け、プロトコルに基づいてマスタ装置とスレーブユニット5との間の通信を制御する。
【0058】
スレーブ状態保持回路23は、スレーブユニット5が転送要求を処理可能な状態であるか、または処理不能なビジー状態にあるかを示すスレーブ状態情報を入力し保持する。応答条件判定回路24は、アドレス条件検出信号ACD、コマンドCMDb、スレーブ状態保持回路23に保持されたスレーブ状態情報から転送要求REQbに応答するか否かを判断し、応答可能なときはCWバス3に確認応答ACKbを出力し、応答不可能なときは否定応答NACKbを出力する。
【0059】
否定応答原因情報生成回路25は、スレーブ状態保持回路23に保持されたスレーブ状態情報を参照して否定応答NACKbを返信する原因に関する情報を生成する。例えば、スレーブユニットがビジー状態にある、受信したコマンドがスレーブ装置でサポートされていない、などの情報がコード化されて生成される。
【0060】
リトライ設定値格納回路であるリトライ設定値レジスタ41は、スレーブユニットに固有に定められたリトライ設定値SRIsを格納する。リトライ設定値がコード化されてスレーブユニットから送られる場合には、コード化された状態でリトライ設定値SRIsを格納する。
【0061】
疑似乱数発生器42は、所定の信号に起動されて擬似的に乱数を生成する。図2では、所定の信号として否定応答NACKbを用いているが、否定応答NACKbに替えてアドレスデコーダ21の出力であるアドレス条件検出信号ACDを用いても良い。アドレス条件検出信号ACDを用いた場合には、応答条件判定回路24からの否定応答NACKbの発信に先行して乱数値RNsの生成を行うことができるので、疑似乱数発生器42には高速動作が要求されないという利点がある。応答判定結果が確認応答ACKbであるときには生成済の乱数値RNsはそのまま廃棄される。
【0062】
否定応答付帯情報生成回路43は、否定応答NACKbが出力されたときに追随して否定応答原因情報NAI、リトライ設定値SRIsおよび乱数値RNsを多重化して否定応答付帯情報NAINFbを生成しCWバス3へ出力する。否定応答付帯情報生成回路43は、例えば、スレーブプロトコル制御装置により出力選択制御されるマルチプレクサ44を用いて構成される。否定応答付帯情報NAINFの転送では、一系統の信号線または信号線群により、否定応答原因情報NAI、リトライ設定値SRIsおよび乱数値RNsがスレーブプロトコル制御回路22により設定された順序にしたがって順次転送される。
【0063】
または、否定応答付帯情報NAINFを構成する否定応答原因情報NAI、リトライ設定値SRIsおよび乱数値RNsが複数の系統の信号線または信号線群により別々に転送されるようにしてもよく、このように構成された場合には否定応答付帯情報生成回路43を省略することができる。
【0064】
次に、本発明の第1実施形態の動作について図1,2,3,4を参照して説明する。図4は、第1実施形態の動作シーケンス図である。従来例でライブ・ロックが発生する図15の場合と同様に、マスタユニット1−1からスレーブユニット5への転送要求ACKbが周期的に発生し、これがマスタユニット1−2によりリトライ間隔値RINに基づいて生成される転送要求ACKbの周期と一致するように初期設定されている場合を例として説明する。
【0065】
時刻T1において、マスタユニット1−1からマスタインタフェース2−1に転送要求REQm1が発生する。同時にアドレスADDm1、コマンドCMDm1などがマスタインタフェース2−1に渡される。
【0066】
マスタインタフェース2−1は、調停回路7にバス使用権を要求し、バス使用権が付与され且つCWバス3が未使用な状態になったときに、CWバス3上に転送要求REQbを出す。同時に多重化されたアドレス・ライトデータAD/WDb、コマンドCMDbをCWバス3に出力する。マスタインタフェース2−1のリトライ回数カウンタ16は0にリセットされる。
【0067】
スレーブインタフェース4内のアドレスデコーダ21は、アドレス・ライトデータAD/WDのアドレス部分をデコードし、自身がアドレスに指定されたスレーブ装置であることを検出した場合には、スレーブインタフェース4はCWバス3から転送要求REQb、アドレス・ライトデータAD/WDb、コマンドCMDbを取り込む。
【0068】
スレーブインタフェース4の応答条件判定回路24では、受信したコマンドCMDbおよびスレーブ状態保持回路23保持されたスレーブユニット5の状態に応じて、マスタユニット1−1からの転送要求REQbを受信するか拒否するかを判定する。図4では処理可能と判定したのでCWバス3上に確認応答ACKbを出力するとともに、スレーブユニット5に転送要求REQbを送信する。
【0069】
マスタインタフェース2−1は、確認応答ACKbを受信すると、マスタユニット1−1にコマンドアクノリッジCACKm1(図3参照)を送る。同時にデータフェーズの転送を開始する。データフェーズでは、マスタインタフェース2−1は、ライトならばマスタユニット1−1にライトデータを要求し、受信したデータをCWバス3に出力するが、図4ではリードであるので、CWバス3を開放してリードデータが準備されるまでの所定の時間待つ。
【0070】
一方、時刻T2において、マスタユニット1−2からマスタインタフェース2−2へ転送要求REQm2が送られたとする。同時にアドレスADm2、コマンドCMDm2などがマスタインタフェース2−2に渡される。
【0071】
マスタインタフェース2−2は、調停回路7にCWバス3のバス使用権を要求し、CWバス3が使用中のため開放されるまで待ち、バス使用権が付与されると、CWバス3上に転送要求REQbを出す。マスタインタフェース2−2のリトライ回数カウンタ16は0にリセットされる。
【0072】
スレーブインタフェース4内のアドレスデコーダ21はアドレス・ライトデータAD/WDのアドレス部分をデコードし、自身がアドレスに指定されたスレーブ装置であることを検出した場合には、スレーブインタフェース4はCWバス3を介してマスタユニット1−2からの転送要求REQb、アドレス・ライトデータAD/WDb、コマンドCMDbを取り込む。
【0073】
スレーブインタフェース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とする)とが含まれている。
【0074】
マスタインタフェース2−2は、否定応答NACKbおよび否定応答付帯情報NAINFbを受信するとリトライ回数カウンタ16をカウントアップし、リトライ回数レジスタ15に格納されている許容リトライ回数PRCよりも大きいか否かを判定する。リトライ回数カウンタの計数値は1であるのでオーバーフロー信号はインアクティブレベルを維持する。
【0075】
また、マスタインタフェース2−2では、リトライ情報抽出回路31により第1回目の否定応答付帯情報NAINFbからリトライ設定値SRIと乱数値RN(第1回目の乱数値RN1)を抽出し、加算器32により加算しリトライ間隔値RIN(第1回目のリトライ間隔値RIN1=SRI+RN1)を算出してリトライ間隔値レジスタ12に格納する。なお、バス使用権は開放する。否定応答NACKbをによりリトライ間隔カウンタ13の計数値を一旦0にリセットしてからクロックパルス毎にインクリメントする。
【0076】
一方、マスタユニット1−1の転送要求に対するリードデータRDm1がスレーブユニット5からRDバス6を介して時刻T3にマスタユニット1−1に転送され、リード処理が完了する。直後にマスタユニット1−1が次の転送要求REQm1を発信するので、転送要求が受け付けられてスレーブユニット5が再びビジー状態になる。
【0077】
マスタインタフェース2−2では、リトライ間隔カウンタ13の計数値がリトライ間隔値レジスタ12に格納された第1回目のリトライ間隔値RIN1と等しくなると第1回目のリトライ間隔時間Tri1が経過したとして比較器14からリトライ時間通知信号RTがリトライ要求回路18に送られてリトライ起動要求信号PRQが出力され、マスタプロトコル制御回路11から転送要求REQbをスレーブインタフェース4に再送信する。
【0078】
しかしながら、マスタインタフェース2−2から再送信された転送要求REQbはスレーブユニット5がビジー状態にあるため拒否され、否定応答NACKbおよび第2回目の否定応答付帯情報NAINFbを送信する。第2回目の否定応答付帯情報NAINFbには、否定応答原因情報NAIとリトライ設定値SRIと乱数値RN(第2回目の乱数値RN2とする)が含まれている。マスタインタフェース2−2は、リトライ間隔値レジスタ12に、第2回目のリトライ間隔値RIN2=SRI+RN2を格納し、否定応答NACKbを受信して第2回目のリトライ間隔時間Tri2の計時を再度開始する。
【0079】
第1回目の乱数値RN1と第2回目の乱数値RN2が異なった値である場合には、第2回目のリトライ間隔時間Tri2は第2回目のリトライ間隔時間Tri2とは異なった時間となる。第1回目のリトライ間隔時間Tr1がマスタユニット1−1からの転送要求の発信周期と一致した場合でも第2回目のリトライ間隔時間Tr2が第1回目のリトライ間隔時間Tri1とは(擬似的にではあるが)独立に決定されるため、第1回目のリトライ間隔時間Tr1とは異なる可能性が大きい。さらに第3回目以降のリトライ間隔時間についてもそれ以前のどのリトライ間隔時間に対しても独立に決定されるために、マスタインタフェース2−2のリトライ間隔時間とマスタユニット1−1からの転送要求の発信周期とが一致した状態が長期間継続することは実質的にあり得ないと容易に理解できる。したがって、本実施形態においては、ライブ・ロックの発生を防止し、また、ライブ・ロック状態に陥った場合にもこれを解消することが可能である。
【0080】
図4は、リトライ間隔時間がTri1<Tri2<Tri3となって発生した例であるが、3回目のリトライ間隔時間Tri3後のマスタインタフェース2−2からの転送要求REQbに対して時刻T4にスレーブインタフェース4から確認応答ACKbが返信され、マスタユニット1−2からのリード転送要求に対するリードデータRDm2が、時刻T5にマスタユニット1−2に受信されている。
【0081】
このように、本実施形態では、ライブ・ロックの発生を防止し、また、ライブ・ロック状態に陥った場合にもこれを解消することが可能である。また、リトライ設定値SRIはスレーブ装置に固有に設定された値を転送要求したスレーブ装置から送られて使用するので、転送準備に要する時間が大きく異なる種々のスレーブ装置がバスに接続される場合においても、リトライ間隔時間をそれぞれのスレーブ装置に対して適切な範囲に設定することできる。
【0082】
また、例えばリトライ設定値を8ビットとし、生成する乱数値を4ビットとすると、疑似乱数発生器は4ビット分のフリップフロップと排他的ORゲートとで構成でき、加算器は8ビットのリトライ設定値と4ビットの乱数値との加算が可能なものでよいので、本実施形態を構成するために追加されるハードウェア量は小さい。特に、多種類のスレーブ装置がバスに接続される場合には、特開平9−114750号公報に記載の技術によるバスシステムと比較して追加ハードウェア量を大幅に削減できる。
【0083】
さらに、特開2000−250850号公報に記載された技術を用いてライブ・ロックを回避する場合のように、特定のマスタ装置にバスが長期間占有され、他のマスタ装置がバスを使用できなくなることがあるという副作用も生じない。
【0084】
なお、図1では、リトライ間隔計数部33を、リトライ間隔値レジスタ12、リトライ間隔カウンタ13および比較器14で構成しているが、リトライ間隔カウンタ13に替えて否定応答NACKbを受信したときに加算器32からリトライ間隔値をプリセットしクロックパルス毎にデクリメントするデクリメント型リトライ間隔カウンタとし、比較器14に替えてデクリメントカウンタの計数値が0になったことを検出してリトライ時間通知信号RTを出力するゼロ比較器としても良い。リトライ間隔計数部33をこのように構成することにより、リトライ間隔値レジスタが不要になり、またゼロ比較器の回路が簡単化できる。
【0085】
同様に、図1では、リトライ回数計数部34を、リトライ回数レジスタ15、リトライ回数カウンタ16および比較器17で構成しているが、リトライ間隔カウンタ13に替えてマスタユニットからの転送要求REQmを受信したときに所定の許容リトライ回数PRCに1を加えた値をプリセットし否定応答NACKbを受信する毎にデクリメントするデクリメント型リトライ回数カウンタとし、比較器17に替えてデクリメントカウンタの計数値が0になったことを検出してオーバーフロー信号OFを出力するゼロ比較器としても良い。リトライ回数計数部34をこのように構成することにより、リトライ回数レジスタが不要になり、またゼロ比較器の回路が簡単化できる。
【0086】
次に、本発明の第2実施形態について説明する。図5は、第2実施形態のバスシステムのマスタインタフェース2bのブロック図であり、図6は、第2実施形態のバスシステムのスレーブインタフェース4bのブロック図である。バスシステム全体の構成は第1実施形態の図3と同様であるが、第2実施形態では、マスタインタフェース2b内で疑似乱数発生を行いリトライ設定値と加算する。
【0087】
図5のマスタインタフェース4bにおいて、マスタプロトコル制御回路11は、マスタユニット1からの転送要求およびコマンドを受け、プロトコルに基づいてマスタユニット1とスレーブ装置との間の通信を制御する。リトライ情報抽出回路31aは、スレーブインタフェース4bより送信された否定応答付帯情報NAINFbからリトライ設定値SRIを抽出する。リトライ設定値SRIがコード化されたものである場合にはデコードを行うことは図1の第1実施形態におけるリトライ情報抽出回路31と同様である。
【0088】
疑似乱数発生器51は、所定の信号を受信して乱数値RNを生成し出力する。なお、図5では、所定の信号として否定応答NACKbを用いているが、否定応答NACKbに替えてマスタプロトコル制御回路11からCWバス3に出力される転送要求REQbを用いても良い。転送要求REQbを用いた場合には、否定応答NACKbの受信に先行して乱数値RNの生成を行うことができるので、疑似乱数発生器51には高速動作が要求されないという利点がある。確認応答ACKbを受信したときには生成済の乱数値RNはそのまま廃棄される。加算器32は、リトライ設定値SRIと乱数値RNとを加算してリトライ間隔値RINを算出して出力する。
【0089】
リトライ間隔計数部33は、否定応答NACKbを受信してからのクロックCLKのパルスを計数し、リトライ間隔値RINの個数に達したことを検出してリトライ時間通知信号RTをアクティブレベルにする。リトライ間隔計数部33は、例えば、リトライ間隔値RINを保持するリトライ間隔値レジスタ12と、否定応答NACKbを受信すると計数値をリセットした後にクロックCLKのパルスを入力する毎に計数値をインクリメントしてクロックパルス数を計数するリトライ間隔カウンタ13と、リトライ間隔カウンタ13の計数値がリトライ間隔値RINに一致したことを検出してリトライ時間通知信号RTをアクティブレベルにする比較器14とによって構成される。
【0090】
リトライ回数計数部34は、マスタユニット1からの転送要求REQmを受信してからの否定応答NACKbの受信回数を計数し、計数値が予め設定された許容リトライ回数PRCよりも大きくなったことを検出してオーバーフロー信号OFをアクティブレベルにする。リトライ回数計数部34は、例えば、予め所定の許容リトライ回数PRCが格納されるにリトライ回数レジスタ15と、マスタユニット1からの転送要求REQmにより計数値をリセットした後に否定応答NACKbが受信される毎にインクリメントするリトライ回数カウンタ16と、計数値がリトライ回数レジスタ15の許容リトライ回数PRCよりも大きい値になったことを検出してオーバーフロー信号OFをアクティブレベルにする比較器17とによって構成される。
【0091】
リトライ要求回路18は、オーバーフロー信号OFがインアクティブレベルにあるときにリトライ時間通知信号RTがアクティブレベルに変化したことを検出した場合には、リトライ起動要求信号RRQをマスタプロトコル制御回路11に送る。リトライ起動要求信号RRQを受信したときには、マスタプロトコル制御回路11は転送要求REQb、コマンドCMDb、アドレス(AD/WDのアドレス部分)を再送信する。バスエラー判定回路19aは、オーバーフロー信号OFがアクティブレベルに変化したことを検出して、バスエラー信号BERmを出力する。また、バスエラー判定回路19aは、否定応答付帯情報NACKbの否定応答原因情報部分を判定し、コマンドがスレーブ装置でサポートされていないなどの原因でリトライしても無駄である場合にもバスエラー信号BERmを出力する。
【0092】
次に、図6について説明する。スレーブインタフェース4bにおいて、アドレスデコーダ21は、マスタユニット1からマスタインタフェース2bおよびCWバス3を介して転送要求REQbと多重化されたアドレス・ライトデータAD/WDのアドレス部分とを受信し、スレーブユニット4b自身に対する転送要求であればアドレス条件検出信号ACDを出力する。スレーブプロトコル制御回路22は、アドレス条件検出信号ACD、マスタ装置からのコマンドCMDbを受け、プロトコルに基づいてマスタ装置とスレーブユニット5との間の通信を制御する。
【0093】
スレーブ状態保持回路23は、スレーブユニット5が転送要求を処理可能な状態であるか、または処理不能なビジー状態にあるかを示すスレーブ状態情報を入力し保持する。応答条件判定回路24は、アドレス条件検出信号ACD、コマンドCMDb、スレーブ状態保持回路23に保持されたスレーブ状態情報から転送要求REQbに応答するか否かを判断し、応答可能なときはCWバス3に確認応答ACKbを出力し、応答不可能なときは否定応答NACKbを出力する。
【0094】
否定応答原因情報生成回路25は、スレーブ状態保持回路23に保持されたスレーブ状態情報を参照して否定応答NACKbを返信する原因に関する情報を生成する。
【0095】
リトライ設定値格納回路であるリトライ設定値レジスタ41は、スレーブユニットに固有に定められたリトライ設定値SRIsを格納する。リトライ設定値がコード化されてスレーブユニットから送られる場合には、コード化された状態でリトライ設定値SRIsを格納することは、図2の第1実施形態におけるリトライ設定値レジスタ41と同様である。
【0096】
否定応答付帯情報生成回路43aは、否定応答NACKbが出力されたときに追随して否定応答原因情報NAIおよびリトライ設定値SRIsを多重化して否定応答付帯情報NAINFbを生成しCWバス3へ出力する。否定応答付帯情報生成回路43aは、例えば、スレーブプロトコル制御装置により出力選択制御されるマルチプレクサ61を用いて構成される。否定応答付帯情報NAINFの転送では、一系統の信号線または信号線群により、否定応答原因情報NAIおよびリトライ設定値SRIsがスレーブプロトコル制御回路22により設定された順序にしたがって順次転送される。
【0097】
または、否定応答付帯情報NAINFを構成する否定応答原因情報NAIおよびリトライ設定値SRIsが複数の系統の信号線または信号線群により別々に転送されるようにしてもよく、このように構成された場合には否定応答付帯情報生成回路43aを省略することができる。
【0098】
第2実施形態では、スレーブインタフェース4bからリトライ設定値SRIを含む否定応答付帯情報NAINFbがマスタインタフェース2bに送られ、マスタインタフェース2b内の疑似乱数発生器51で生成された乱数値RNと否定応答付帯情報NAINFbから抽出されたリトライ設定値SRIとを加算して算出したリトライ間隔値RINに基づいて転送要求REQbを再送信するまでのリトライ間隔時間が決定される。この第2実施形態においてもリトライ設定値SRIと乱数値RNとを加算してリトライ間隔値SRIとする点において第1実施形態と同様であるので、効果においても第1実施形態と同様であり、ライブ・ロックの発生を防止することができ、また、ライブ・ロック状態に陥ったとしてもこれを解消することが可能である。また、リトライ設定値SRIはスレーブ装置に固有に設定された値を転送要求したスレーブ装置から送られて使用するので、転送準備に要する時間が大きく異なる種々のスレーブ装置がバスに接続される場合においても、リトライ間隔時間をそれぞれのスレーブ装置に対して適切な範囲に設定することできる。
【0099】
第2実施形態では、疑似乱数発生器と加算器とをマスタインタフェース内にのみ持つので、バスに接続するマスタ装置の個数が少なくスレーブ装置の個数が多い構成のバスシステムでは、第1実施形態よりもハードウェア量の増加を少なく抑えることができる。
【0100】
次に、本発明の第3実施形態について説明する。図7は、第3実施形態のバスシステムのマスタインタフェース2cのブロック図であり、図8は、第3実施形態のバスシステムのスレーブインタフェース4cのブロック図である。バスシステム全体の構成は第1実施形態の図3と同様であるが、第3実施形態では、スレーブインタフェース4c内で乱数値を発生してリトライ設定値と加算してリトライ間隔値を算出し、リトライ間隔値をマスタインタフェース2cへ送る。
【0101】
図7のマスタインタフェース4cにおいて、マスタプロトコル制御回路11は、マスタユニット1からの転送要求およびコマンドを受け、プロトコルに基づいてマスタユニット1とスレーブ装置との間の通信を制御する。リトライ情報抽出回路71は、スレーブインタフェース4cより送信された否定応答付帯情報NAINFbからリトライ間隔値RINを抽出する。
【0102】
リトライ間隔計数部33は、否定応答NACKbを受信してからのクロックCLKのパルスを計数し、リトライ間隔値RINの個数に達したことを検出してリトライ時間通知信号RTをアクティブレベルにする。リトライ間隔計数部33は、例えば、リトライ間隔値RINを保持するリトライ間隔値レジスタ12と、否定応答NACKbを受信すると計数値をリセットした後にクロックCLKのパルスを入力する毎に計数値をインクリメントしてクロックパルス数を計数するリトライ間隔カウンタ13と、リトライ間隔カウンタ13の計数値がリトライ間隔値RINに一致したことを検出してリトライ時間通知信号RTをアクティブレベルにする比較器14とによって構成される。
【0103】
リトライ回数計数部34は、マスタユニット1からの転送要求REQmを受信してからの否定応答NACKbの受信回数を計数し、計数値が予め設定された許容リトライ回数PRCよりも大きくなったことを検出してオーバーフロー信号OFをアクティブレベルにする。リトライ回数計数部34は、例えば、予め所定の許容リトライ回数PRCが格納されるにリトライ回数レジスタ15と、マスタユニット1からの転送要求REQmにより計数値をリセットした後に否定応答NACKbが受信される毎にインクリメントするリトライ回数カウンタ16と、計数値がリトライ回数レジスタ15の許容リトライ回数PRCよりも大きい値になったことを検出してオーバーフロー信号OFをアクティブレベルにする比較器17とによって構成される。
【0104】
リトライ要求回路18は、オーバーフロー信号OFがインアクティブレベルにあるときにリトライ時間通知信号RTがアクティブレベルに変化したことを検出した場合には、リトライ起動要求信号RRQをマスタプロトコル制御回路11に送る。リトライ起動要求信号RRQを受信したときには、マスタプロトコル制御回路11は転送要求REQb、コマンドCMDb、アドレス(AD/WDのアドレス部分)を再送信する。バスエラー判定回路19aは、オーバーフロー信号OFがアクティブレベルに変化したことを検出して、バスエラー信号BERmを出力する。また、バスエラー判定回路19aは、否定応答付帯情報NACKbの否定応答原因情報部分を判定し、コマンドがスレーブ装置でサポートされていないなどの原因でリトライしても無駄である場合にもバスエラー信号BERmを出力する。
【0105】
次に、図8について説明する。スレーブインタフェース4cにおいて、アドレスデコーダ21は、マスタユニット1からマスタインタフェース2cおよびCWバス3を介して転送要求REQbと多重化されたアドレス・ライトデータAD/WDのアドレス部分とを受信し、スレーブユニット4c自身に対する転送要求であればアドレス条件検出信号ACDを出力する。スレーブプロトコル制御回路22は、アドレス条件検出信号ACD、マスタ装置からのコマンドCMDbを受け、プロトコルに基づいてマスタ装置とスレーブユニット5との間の通信を制御する。
【0106】
スレーブ状態保持回路23は、スレーブユニット5が転送要求を処理可能な状態であるか、または処理不能なビジー状態にあるかを示すスレーブ状態情報を入力し保持する。応答条件判定回路24は、アドレス条件検出信号ACD、コマンドCMDb、スレーブ状態保持回路23に保持されたスレーブ状態情報から転送要求REQbに応答するか否かを判断し、応答可能なときはCWバス3に確認応答ACKbを出力し、応答不可能なときは否定応答NACKbを出力する。
【0107】
否定応答原因情報生成回路25は、スレーブ状態保持回路23に保持されたスレーブ状態情報を参照して否定応答NACKbを返信する原因に関する情報を生成する。
【0108】
リトライ設定値格納回路であるリトライ設定値レジスタ41は、スレーブユニットに固有に定められたリトライ設定値SRIsを格納する。第3実施形態ではリトライ設定値SRIsには実際の数値とし、コード化されたものは使用しない。
【0109】
疑似乱数発生器42は、所定の信号に起動されて乱数値RNsを生成する。図8では、所定の信号として否定応答NACKbを用いているが、否定応答NACKbに替えてアドレスデコーダ21の出力であるアドレス条件検出信号ACDを用いても良い。アドレス条件検出信号ACDを用いた場合には、応答条件判定回路24からの否定応答NACKbの発信に先行して乱数値RNsの生成を行うことができるので、疑似乱数発生器42には高速動作が要求されないという利点がある。加算器81は、リトライ設定値SRIsと乱数値RNsを加算してリトライ間隔値RINsを生成する。
【0110】
否定応答付帯情報生成回路82は、否定応答NACKbが出力されたときに追随して否定応答原因情報NAIおよびリトライ間隔値RINsを多重化して否定応答付帯情報NAINFbを生成しCWバス3へ出力する。否定応答付帯情報生成回路82は、例えば、スレーブプロトコル制御装置により出力選択制御されるマルチプレクサ83を用いて構成される。否定応答付帯情報NAINFの転送では、一系統の信号線または信号線群により、否定応答原因情報NAIおよびリトライ間隔値RINsがスレーブプロトコル制御回路22により設定された順序にしたがって順次転送される。
【0111】
または、否定応答付帯情報NAINFを構成する否定応答原因情報NAIおよびリトライ間隔値RINsが複数の系統の信号線または信号線群により別々に転送されるようにしてもよく、このように構成された場合には否定応答付帯情報生成回路82を省略することができる。
【0112】
第3実施形態では、スレーブインタフェース4c内で乱数値RNとリトライ設定値SRIとを加算してリトライ間隔値RINが算出され、マスタインタフェース2cに送られて、リトライ間隔値RINに基づいて転送要求REQbを再送信するまでのリトライ間隔時間が決定される。第3実施形態においてもリトライ設定値SRIと乱数値RNとを加算してリトライ間隔値SRIとする点では第1実施形態と同様であるので、効果においても第1実施形態と同様であり、ライブ・ロックの発生を防止することができ、また、ライブ・ロック状態に陥ったとしてもこれを解消することが可能である。また、リトライ設定値SRIはスレーブ装置に固有に設定された値を使用するので、転送準備に要する時間が大きく異なる種々のスレーブ装置がバスに接続される場合においても、リトライ間隔時間をそれぞれのスレーブ装置に対して適切な範囲に設定することできる。
【0113】
第3実施形態では、疑似乱数発生器と加算器とをスレーブインタフェース内にのみ持つので、バスに接続するスレーブ装置の個数が少なくマスタ装置の個数が多い構成のバスシステムでは、第1実施形態よりもハードウェア量の増加を少なく抑えることができる。
【0114】
なお、図5および図7では、リトライ間隔計数部33を、リトライ間隔値レジスタ12、リトライ間隔カウンタ13および比較器14で構成しているが、図1の場合と同様に、リトライ間隔カウンタ13に替えて否定応答NACKbを受信したときに加算器32からリトライ間隔値をプリセットしクロックパルス毎にデクリメントするデクリメント型リトライ間隔カウンタとし、比較器14に替えてデクリメントカウンタの計数値が0になったことを検出してリトライ時間通知信号RTを出力するゼロ比較器としても良い。リトライ間隔計数部33をこのように構成することにより、リトライ間隔値レジスタが不要になり、またゼロ比較器の回路が簡単化できる。
【0115】
同様に、図5および図7では、リトライ回数計数部34を、リトライ回数レジスタ15、リトライ回数カウンタ16および比較器17で構成しているが、図1の場合と同様に、リトライ間隔カウンタ13に替えてマスタユニットからの転送要求REQmを受信したときに所定の許容リトライ回数PRCに1を加えた値をプリセットし否定応答NACKbを受信する毎にデクリメントするデクリメント型リトライ回数カウンタとし、比較器17に替えてデクリメントカウンタの計数値が0になったことを検出してオーバーフロー信号OFを出力するゼロ比較器としても良い。リトライ回数計数部34をこのように構成することにより、リトライ回数レジスタが不要になり、またゼロ比較器の回路が簡単化できる。
【0116】
図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においては、ライブ・ロックの発生を未然に防止することができ、また、ライブ・ロック状態が生じたとしてもこれを解消することができる。
【0117】
図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においては、ライブ・ロックの発生を未然に防止することができ、また、ライブ・ロック状態が生じたとしてもこれを解消することができる。
【0118】
図11は、本発明のバスシステムを搭載した半導体集積回路を有する情報処理装置の一例を示す図である。情報処理装置120は、本発明のバスシステム100を搭載した半導体集積回路101aと、外部バス122と、外部メモリ123とを有して構成されている。バスシステム100はバスブリッジ121を介して外部バス122と接続され、バスシステム100内のCPU(図9参照)はバスシステム内のCWバス3およびRDバス6と、バスブリッジ121と、外部バス122とを介して外部メモリ123にアクセスできる構成となっている。この情報処理装置120においても半導体集積回路101aがバスシステム100aを備えていることにより、ライブ・ロックの発生を未然に防止することができ、また、ライブ・ロック状態が生じたとしてもこれを解消することができる。
【0119】
【発明の効果】
以上に説明したように、本発明を適用することにより、ライブ・ロックの発生を未然に防止することができ、また、極めて希にライブ・ロック状態に陥ることが生じたとしてもこれを解消することが可能となる。また、リトライ設定値SRIはスレーブ装置に固有に設定された値を転送要求したスレーブ装置から送られて使用するので、転送準備に要する時間が大きく異なる種々のスレーブ装置がバスに接続される場合においても、リトライ間隔時間をそれぞれのスレーブ装置に対して適切な範囲に設定することできる。また、ライブ・ロックを回避するため追加するハードウェア量が特開平9−114750号公報に記載の技術によるバスシステムと比較して大幅に削減でき、特開2000−250850号公報に記載された技術を用いてライブ・ロックを回避する場合に生じるバスの独占によるバス使用効率の低下も回避できる。
【図面の簡単な説明】
【図1】本発明の第1実施形態のマスタインタフェースのブロック図である。
【図2】本発明の第1実施形態のスレーブインタフェースのブロック図である。
【図3】本発明のバスシステムの一例を示す図である。
【図4】第1実施形態の動作シーケンス図である。
【図5】本発明の第2実施形態のマスタインタフェースのブロック図である。
【図6】本発明の第2実施形態のスレーブインタフェースのブロック図である。
【図7】本発明の第3実施形態のマスタインタフェースのブロック図である。
【図8】本発明の第3実施形態のスレーブインタフェースのブロック図である。
【図9】本発明を搭載した半導体集積回路の一例を示す図である。
【図10】本発明を有する情報処理装置の一例を示す図である。
【図11】本発明を搭載した半導体集積回路を有する情報処理装置の一例を示す図である。
【図12】従来のバスシステムの一例を示す図である。
【図13】従来のバスシステムにおけるマスタインタフェースのブロック図である。
【図14】(a)は従来のバスシステムの動作シーケンス図であり、(b)は動作タイミング図である。
【図15】ライブ・ロックの発生を示す動作シーケンス図である。
【符号の説明】
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 否定応答付帯情報

Claims (8)

  1. スレーブユニットとバスとの間に設けられ、前記スレーブユニットに固有に定められたリトライ設定値を格納するリトライ設定値格納回路と、擬似的に乱数を生成する疑似乱数発生器とを備え、マスタユニットからの転送要求への応答を拒否するときに否定応答を送信するとともに前記リトライ設定値と前記疑似乱数発生器で生成した乱数値とを含む否定応答付帯情報を前記バスを介してマスタユニットへ送信するスレーブインタフェースと、
    マスタユニットと前記バスとの間に設けられ、前記否定応答付帯情報から抽出された前記リトライ設定値と前記乱数値とを加算する加算器と、加算結果をリトライ間隔値として格納するリトライ間隔値格納回路とを備え、前記リトライ間隔値に基づいて転送要求を再送信するまでの時間を決定するマスタインターフェースと、を有し、
    前記乱数値は、スレーブインタフェースが接続するスレーブユニットへの転送要求があることを検出する毎に疑似乱数発生器により生成されることを特徴とするバスシステム。
  2. スレーブユニットとバスとの間に設けられ、
    マスタユニットからの転送要求とアドレスとを前記バスを介して受信し前記スレーブユニットに対する転送要求であればアドレス条件検出信号を出力するアドレスデコーダと、
    前記アドレス条件検出信号、マスタユニットからのコマンドおよび前記スレーブユニットの動作状態からマスタユニットからの転送要求に応答するか否かを判断し応答可能なときは前記バスに確認応答を出力し応答不可能なときは前記バスに否定応答を出力する応答条件判定回路と、
    前記スレーブユニットに固有に定められたリトライ設定値を格納するリトライ設定値格納回路と、
    所定の信号に起動されて擬似的に乱数を生成する疑似乱数発生器と、
    前記否定応答が出力されたときに追随して前記リトライ設定値および前記疑似乱数発生器で発生させた乱数値を含む否定応答付帯情報を前記バスに出力する否定応答付帯情報生成回路と、を備えるスレーブインタフェースと、
    前記バスとマスタユニットとの間に設けられ、
    前記バスから前記否定応答付帯情報を入力し前記リトライ設定値と前記乱数値とを抽出して出力するリトライ情報抽出回路と、
    前記リトライ設定値と前記乱数値とを加算してリトライ間隔値を算出する加算器と、
    前記否定応答の受信によりクロックパルスの計数を開始し計数値が前記リトライ間隔値と等しくなったことを検出してリトライ時間通知信号を出力するリトライ間隔計数部と、
    マスタユニットからの転送要求の受信により前記否定応答の受信回数の計数を開始し計数値が予め設定された許容リトライ回数より大きくなったことを検出してオーバーフロー信号を出力するリトライ回数計数部と、
    前記オーバーフロー信号がインアクティブレベルで前記リトライ時間通知信号がアクティブレベルとなったことを検出して転送要求の再送信を起動するリトライ要求回路と、を備えるマスタインタフェースと、
    を有することを特徴とするバスシステム。
  3. 前記リトライ設定値は、コード化されたリトライ設定値であり、
    前記リトライ情報抽出回路は、前記コード化されたリトライ設定値のデコード機能を有することを特徴とする請求項2記載のバスシステム。
  4. 前記疑似乱数発生器を起動する所定の信号が、
    前記応答条件判定回路からの否定応答であることを特徴とする請求項2または3記載のバスシステム。
  5. 前記疑似乱数発生器を起動する所定の信号が、
    アドレスデコーダからのアドレス条件検出信号であることを特徴とする請求項2または3記載のバスシステム。
  6. スレーブユニットとバスとの間に設けられ、
    マスタユニットからの転送要求とアドレスとを前記バスを介して受信し前記スレーブユニットに対する転送要求であればアドレス条件検出信号を出力するアドレスデコーダと、
    前記アドレス条件検出信号、マスタユニットからのコマンドおよび前記スレーブユニットの動作状態からマスタユニットからの転送要求に応答するか否かを判断し応答可能なときは前記バスに確認応答を出力し応答不可能なときは前記バスに否定応答を出力する応答条件判定回路と、
    前記スレーブユニットに固有に定められたリトライ設定値を格納するリトライ設定値格納回路と、
    所定の信号に起動されて擬似的に乱数を生成する疑似乱数発生器と、
    前記リトライ設定値と前記疑似乱数発生器で生成した乱数値とを加算してリトライ間隔値を算出する加算器と、
    前記否定応答が出力されたときに追随して前記リトライ間隔値を含む否定応答付帯情報を前記バスに出力する否定応答付帯情報生成回路と、を備えるスレーブインタフェースと、
    前記バスとマスタユニットとの間に設けられ、
    前記バスから前記否定応答付帯情報を入力し前記リトライ間隔値を抽出して出力するリトライ情報抽出回路と、
    前記否定応答の受信によりクロックパルスの計数を開始し計数値が前記リトライ間隔値と等しくなったことを検出してリトライ時間通知信号を出力するリトライ間隔計数部と、
    マスタユニットからの転送要求の受信により前記否定応答の受信回数の計数を開始し計数値が予め設定された許容リトライ回数より大きくなったことを検出してオーバーフロー信号を出力するリトライ回数計数部と、
    前記オーバーフロー信号がインアクティブレベルで前記リトライ時間通知信号がアクティブレベルとなったことを検出して転送要求の再送信を起動するリトライ要求回路と、を備えるマスタインタフェースと、
    を有することを特徴とするバスシステム。

  7. 前記疑似乱数発生器を起動する所定の信号が、
    前記応答条件判定回路からの否定応答であることを特徴とする請求項6記載のバスシステム。

  8. 前記疑似乱数発生器を起動する所定の信号が、
    アドレスデコーダからのアドレス条件検出信号であることを特徴とする請求項6記載のバスシステム。
JP2001362855A 2001-11-28 2001-11-28 バスシステムおよびリトライ方法 Expired - Fee Related JP4063529B2 (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
JP2001362855A JP4063529B2 (ja) 2001-11-28 2001-11-28 バスシステムおよびリトライ方法
US10/306,685 US7076719B2 (en) 2001-11-28 2002-11-27 Bus system and retry method
DE10255368A DE10255368A1 (de) 2001-11-28 2002-11-27 Bussystem und Wiederholungsverfahren

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2001362855A JP4063529B2 (ja) 2001-11-28 2001-11-28 バスシステムおよびリトライ方法

Related Child Applications (1)

Application Number Title Priority Date Filing Date
JP2005062244A Division JP4152387B2 (ja) 2005-03-07 2005-03-07 バスシステム

Publications (2)

Publication Number Publication Date
JP2003162498A JP2003162498A (ja) 2003-06-06
JP4063529B2 true JP4063529B2 (ja) 2008-03-19

Family

ID=19173292

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2001362855A Expired - Fee Related JP4063529B2 (ja) 2001-11-28 2001-11-28 バスシステムおよびリトライ方法

Country Status (3)

Country Link
US (1) US7076719B2 (ja)
JP (1) JP4063529B2 (ja)
DE (1) DE10255368A1 (ja)

Families Citing this family (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7096289B2 (en) * 2003-01-16 2006-08-22 International Business Machines Corporation Sender to receiver request retry method and apparatus
US7099974B2 (en) * 2003-03-20 2006-08-29 International Business Machines Corporation Method, apparatus, and system for reducing resource contention in multiprocessor systems
US7281075B2 (en) * 2003-04-24 2007-10-09 International Business Machines Corporation Virtualization of a global interrupt queue
US7234083B2 (en) * 2003-12-18 2007-06-19 Hewlett-Packard Development Company, L.P. System and method for transferring information in a computer system
JP2007087247A (ja) * 2005-09-26 2007-04-05 Nec Electronics Corp バス制御システム
JP4841358B2 (ja) * 2006-08-18 2011-12-21 富士通株式会社 リクエスト送信制御装置およびリクエスト送信制御方法
JP5245237B2 (ja) * 2006-09-29 2013-07-24 富士通セミコンダクター株式会社 エラー処理方法
JP2008250632A (ja) * 2007-03-30 2008-10-16 Matsushita Electric Ind Co Ltd データ処理システム
US7865644B2 (en) * 2007-10-30 2011-01-04 International Business Machines Corporation Method and apparatus for attaching multiple slave devices to a single bus controller interface while supporting command pipelining
US7747803B2 (en) * 2007-11-28 2010-06-29 International Business Machines Corporation Device, system, and method of handling delayed transactions
JP2011081551A (ja) * 2009-10-06 2011-04-21 Panasonic Corp データ処理システム
US8564466B2 (en) * 2011-08-01 2013-10-22 Mitsubishi Electric Corporation Analog input system, analog output system, and analog input/output system
JP6034008B2 (ja) * 2011-09-22 2016-11-30 Necプラットフォームズ株式会社 送信権調停装置、送信権調停制御方法、及びそのためのプログラム
US8443251B1 (en) * 2011-12-15 2013-05-14 Lsi Corporation Systems and methods for out of order processing in a data retry
US8910005B2 (en) 2012-12-03 2014-12-09 Lsi Corporation Systems and methods for selective retry data retention processing
US9190104B2 (en) 2012-12-13 2015-11-17 Avago Technologies General Ip (Singapore) Pte. Ltd. Systems and methods for data retry using averaging process
US8949696B2 (en) 2013-02-19 2015-02-03 Lsi Corporation Systems and methods for trapping set disruption
US8976475B1 (en) 2013-11-12 2015-03-10 Lsi Corporation Systems and methods for large sector dynamic format insertion
US9385758B2 (en) 2014-01-02 2016-07-05 Avago Technologies General Ip (Singapore) Pte. Ltd. Systems and methods for efficient targeted symbol flipping
US9201722B1 (en) * 2014-07-10 2015-12-01 Freescale Semiconductor, Inc. System-on-chip and method for sending data in a system-on-chip
DE102016120668A1 (de) * 2016-10-28 2018-05-03 Infineon Technologies Ag Datenkommunikationssystem
US11379401B2 (en) 2020-10-20 2022-07-05 Micron Technology, Inc. Deferred communications over a synchronous interface

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH01161562A (ja) 1987-12-18 1989-06-26 Mitsubishi Electric Corp データ転送網のデータ再送方式
JPH01229541A (ja) 1988-03-09 1989-09-13 Nippon Denki Fuiirudo Service Kk 同一通信パスにおける端末からのアクセス方式
JP3466212B2 (ja) * 1991-09-17 2003-11-10 インテル・コーポレーション コンピュータシステム
EP0660956B1 (en) * 1993-07-16 2001-12-19 D2B Systems Co. Ltd. Communication bus system with mitigation of slave station locking problem
AU6248596A (en) * 1995-05-02 1996-11-21 Apple Computer, Inc. Deadlock avoidance in a split-bus computer system
JPH09114750A (ja) 1995-10-13 1997-05-02 Mitsubishi Electric Corp バス制御装置
US5943483A (en) * 1995-12-11 1999-08-24 Lsi Logic Corporation Method and apparatus for controlling access to a bus in a data processing system
US5717872A (en) * 1996-01-11 1998-02-10 Unisys Corporation Flexible, soft, random-like counter system for bus protocol waiting periods
JP3206585B2 (ja) 1999-02-26 2001-09-10 日本電気株式会社 バス制御装置、マスタ装置及びスレーブ装置並びにバス制御方法
US6654846B1 (en) * 2000-11-14 2003-11-25 Intel Corporation High speed computer bus system with bi-directional transmission medium and interface device

Also Published As

Publication number Publication date
DE10255368A1 (de) 2003-07-03
JP2003162498A (ja) 2003-06-06
US20030101400A1 (en) 2003-05-29
US7076719B2 (en) 2006-07-11

Similar Documents

Publication Publication Date Title
JP4063529B2 (ja) バスシステムおよびリトライ方法
US4458314A (en) Circuitry for allocating access to a demand shared bus
US4570220A (en) High speed parallel bus and data transfer method
JP3604398B2 (ja) 並列パケット化されたモジュール期調停高速制御およびデータバス
KR100267130B1 (ko) Pci 버스 시스템
US5043937A (en) Efficient interface for the main store of a data processing system
WO2004046950A1 (en) Mailbox interface between processors
CN102207920A (zh) 一种bvci总线到ahb总线的转换桥
EP2336897B1 (en) Data processing apparatus, data processing method, and computer-readable storage medium
JP4152387B2 (ja) バスシステム
US5377334A (en) Fast asynchronous resource master-slave combination
JP2972491B2 (ja) バス制御機構及び計算機システム
JP2000276437A (ja) Dma制御装置
JPH0962640A (ja) 共有メモリのアクセス制御方法
WO2012093475A1 (ja) 情報転送装置および情報転送装置の情報転送方法
JPH08314851A (ja) データ処理システム
JPH047620B2 (ja)
JP2507643B2 (ja) 共通バス制御方法及びその制御装置並びにマスタ装置と計算機システム
JP2004013395A (ja) Dmaコントローラ
JP3206562B2 (ja) コンピュータシステム
KR0138063B1 (ko) 광대역회선 분배시스템의 프로세서간 통신장치
JPH0226904B2 (ja)
JPH11102341A (ja) データ転送システム、データ送信装置、データ受信装置、データ転送方法及びバス調停方法
JP2643776B2 (ja) アービタ装置およびアービタ方法
JPS60226246A (ja) デ−タ伝送装置

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20040517

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20040601

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20040730

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20050104

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20050307

A911 Transfer to examiner for re-examination before appeal (zenchi)

Free format text: JAPANESE INTERMEDIATE CODE: A911

Effective date: 20050314

A912 Re-examination (zenchi) completed and case transferred to appeal board

Free format text: JAPANESE INTERMEDIATE CODE: A912

Effective date: 20050520

RD01 Notification of change of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7421

Effective date: 20070703

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20071025

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20071225

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

Ref document number: 4063529

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110111

Year of fee payment: 3

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110111

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: 20110111

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: 20110111

Year of fee payment: 3

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120111

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130111

Year of fee payment: 5

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130111

Year of fee payment: 5

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20140111

Year of fee payment: 6

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

S531 Written request for registration of change of domicile

Free format text: JAPANESE INTERMEDIATE CODE: R313531

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

LAPS Cancellation because of no payment of annual fees