(57)【特許請求の範囲】
【請求項１】
入力データの速度を変換して非同期、かつ、順次に出力する非同期データ転送制御装置において、前記入力データを記憶するための緩衝バッファと、書込みクロックに同期して前記入力データを前記緩衝バッファに順次に書き込むライト制御回路と、前記書込みクロックに同期した読出し準備パルスと、前記書込みクロックと非同期の読出しクロックとから読出し同期化パルスを生成する同期化回路と、前記読出し同期化信号に応答して、前記緩衝バッファに記憶されている入力データを読み出すためのリードアドレスを発生するとともに、前記緩衝バッファへのオーバライトを事前に検出して、該検出を前記入力データの入力側に伝えるリード制御回路とを備えたことを特徴とする非同期データ転送回路。
【請求項２】
トランザクション単位のデータ転送を制御する非同期データ転送制御装置であって、前記リード制御回路は、前記読出し同期化パルスによってインクリメントされ、終了通知によってデクリメントされる回数記憶カウンタと、オアゲート前記回数記憶カウンタのカウント値と前記読出し準備パルスの論理和をカウントＥＮとして出力するオアゲートと、前記カウントＥＮが“１”の間は前記緩衝バッファの段数を循環的にインクリメントし、前記カウントＥＮが“０”になるとインクリメントを止め、前記リードアドレスを出力するリードアドレスカウンタと、前記カウントＥＮに応答して前記トランザクションにおけるデータの数だけ循環的にカウントするビットカウンタと、前記ビットカウンタのカウント値が最終値になると終了信号を前記回数記憶カウンタに出力するデコーダと、前記回数記憶カウンタが“１”を記憶しており、かつ、前記ビットカウンタのカウント値が前記最終値の１つ前であるとき前記ＢＵＳＹを発生するビジー信号発生回路とを備えたことを特徴とする請求項１に記載の非同期データ転送装置。
【請求項３】
入力データの速度を変換して非同期、かつ、順次に出力する非同期データ転送制御装置において、前記入力データおよび該入力データが先頭ワードまたは最終ワードであるかを表示するスタートビットまたはエンドビットを記憶するための緩衝バッファと、書込みクロックに同期して前記入力データを前記スタートビットまたはエンドビットとともに前記緩衝バッファに順次に書き込むライト制御回路と、前記書込みクロックに同期した読出し準備パルスと、前記書込みクロックと非同期の読出しクロックとから読出し同期化パルスを生成する同期化回路と、前記読出し同期化信号に応答して、前記緩衝バッファに記憶されている入力データを読み出すためのリードアドレスを発生するリード制御回路と、前記緩衝バッファの読出し時に、前記スタートビットまたはエンドビットに基づき緩衝バッファへのオーバライトを事前に検出して、該検出を前記入力データの入力側に伝えるＢＵＳＹ通知回路とを備えたことを特徴とする非同期データ転送装置。
【請求項４】
入力データの速度を変換して非同期、かつ、順次に出力する非同期データ転送制御方法において、書込みクロックに同期して前記入力データを緩衝バッファに順次に書き込む手順と、前記書込みクロックに同期した読出し準備パルスと、前記書込みクロックと非同期の読出しクロックとから読出し同期化パルスを生成する手順と、前記読出し同期化信号に応答して、前記緩衝バッファに記憶されている入力データを読み出すためのリードアドレスを発生するとともに、前記緩衝バッファのオーバライトを事前に検出して、該検出を前記入力データの入力側に伝える手順とを有することを特徴とする非同期データ転送方法。
【請求項５】
入力データの速度を変換して非同期、かつ、順次に出力する非同期データ転送制御方法において、書込みクロックに同期して前記入力データおよび該入力データが先頭ワードまたは最終ワードであるかを表示するスタートビットまたはエンドビットを緩衝バッファに順次書き込む手順と、前記書込みクロックに同期した読出し準備パルスと、前記書込みクロックと非同期の読出しクロックとから読出し同期化パルスを生成する手順と、
前記書込クロックに同期した読み出し準備パルスと、前記書込みクロックと非同期の読出しクロックとから読出し同期化パルスを生成する手順と、前記読出し同期化信号に応答して、前記緩衝バッファに記憶されている入力データを読み出すためのリードアドレスを発生する手順と、前記緩衝バッファの読出し時に、前記スタートビットまたはエンドビットに基づき緩衝バッファへのオーバライトを事前に検出して、該検出を前記入力データの入力側に伝える手順とを特徴とする非同期データ転送方法。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、非同期データ転送制御に関し、特に、コンピュータ装置、その他電子装置におけるオーバライト抑止に好適な非同期データ転送制御に関する。
【０００２】
【従来の技術】
この種の従来技術の一例が特開平５−１４３２８３号公報に「データ速度変換装置」として記載されている。この装置は、コンピュータ装置において、緩衝バッファ内のデータが消失されることを防止した信頼性の高いデータ速度変換を行うことを目的としており、図９にその例をブロック図で示す。
【０００３】
図９において、データバッファ１０１，１０２，１０３が書込み可能の期間、チップセレクタ制御回路１１４はチップセレクタ４を介してスイッチ１１６を端子ａ，ｂ，ｃ，ａ・・・の順番に切り替えることにより、〔Ａ〕側から入力されるデータがデータバッファ１，２，３，１・・・の順番に書き込まれる。次に、これらデータバッファを読出し可能にした時、これに同期してチップセレクタ制御回路１１５はチップセレクタ１０５を介してスイッチ１１７を端子ｃ，ａ，ｂ，ｃ・・・の順番で切り替えることによって、データバッファ１０３，１０１，１０２，１０３・・・からデータが順番に読み出されて〔Ｂ〕に出力される。この際、同一のデータバッファが同時に書込み用と読出し用にならないように制御され、入力データと出力データの速度が変換される。
【０００４】
【発明が解決しようとする課題】
この種の非同期データ転送制御装置においては、上記の如く、入力データをデータバッファに書き込んだ後、データを読み出して出力する際に、データの書込み速度と読出し速度とを異なる速度にすることによって、書込み速度が読出し速度に比べて速い場合、データバッファの段数は有限であるので、上述した従来技術では、入力データのデータバッファへの書込みが連続すると、同一のデータバッファがデータの読出し用と書込み用に同時に使用されることがあり得る。このような場合、データバッファに書き込まれているデータを読み出す前に新たなデータをオーバーライトで書き込んでしまうと、すでに書き込まれていたデータが消失し、その代わりに新たに書き込まれたデータが読み出されてしまうという不具合が発生する恐れがあるという問題点がある。
【０００５】
本発明の目的は、書込み速度が読出し速度より速い場合であってもオーバライトが発生しない非同期データ転送制御装置および方法を提供することにある。
【０００６】
また、本発明の他の目的は、上記目的を簡単な回路で構成できる非同期データ転送制御装置および方法を提供することにある。
【０００７】
【課題を解決するための手段】
第１の本発明の非同期データ転送制御装置は、入力データ速度を出力データ速度に変換する非同期データ転送制御装置において、前記速度変換を行うための緩衝バッファへのオーバーライトを事前に検出する手段と、該検出を前記入力データの入力が側に伝える手段とを備え、前記緩衝バッファへのオーバーライトを抑止することを特徴とする。
【０００８】
第２の本発明の非同期データ転送制御装置は、入力データの速度を変換して非同期、かつ、順次に出力する非同期データ転送制御装置において、前記入力データを記憶するための緩衝バッファと、書込みクロックに同期して前記入力データを前記緩衝バッファに順次に書き込むライト制御回路と、前記書込みクロックに同期した読出し準備パルスと、前記書込みクロックと非同期の読出しクロックとから読出し同期化パルスを生成する同期化回路と、前記読出し同期化信号に応答して、前記緩衝バッファに記憶されている入力データを読み出すためのリード゛アドレスを発生するとともに、前記緩衝バッファへのオーバーライトを事前に検出して、該検出を前記入力データの入力が側に伝えるリード制御回路とを備えたことを特徴とする。
【０００９】
第３の本発明の非同期データ転送制御装置は、入力データの速度を変換して非同期、かつ、順次に出力する非同期データ転送制御装置において、前記入力データおよび該入力データが先頭ワードまたは最終ワードであるかを表示するスタートビットまたはエンドビットを記憶するための緩衝バッファと、書込みクロックに同期して前記入力データを前記スタートビットまたはエンドビットとともに前記緩衝バッファに順次に書き込むライト制御回路と、前記書込みクロックに同期した読出し準備パルスと、前記書込みクロックと非同期の読出しクロックとから読出し同期化パルスを生成する同期化回路と、前記読出し同期化信号に応答して、前記緩衝バッファに記憶されている入力データを読み出すためのリード゛アドレスを発生するリード制御回路と、前記緩衝バッファの読出し時に、前記スタートビットまたはエンドビットに基づき緩衝バッファへのオーバーライトを事前に検出して、該検出を前記入力データの入力が側に伝えるＢＵＳＹ通知回路とを備えたことを特徴とする。
【００１０】
本発明では、入力データの速度を変換して非同期、かつ、順次に出力する非同期データ転送制御において、まず、書込みクロックに同期して入力データを緩衝バッファに順次に書き込む。そして、書込みクロックに同期した読出し準備パルスと、書込みクロックと非同期の読出しクロックとから読出し同期化パルスを生成する。リードアドレスは、読出し同期化信号に応答して発生される。このとき、緩衝バッファへのオーバーライトを事前に検出して、この検出を入力データの入力が側に伝える。
【００１１】
また、書込みクロックに同期して入力データをおよび入力データが先頭ワードまたは最終ワードであるかを表示するスタートビットまたはエンドビットを緩衝バッファに順次に書き込んでおき、緩衝バッファの読出し時に、スタートビットまたはエンドビットに基づき緩衝バッファへのオーバーライトを事前に検出して、検出を前記入力データの入力が側に伝えるようにしてもよい。
【００１２】
このように、緩衝バッファにオーバーライトされる直前の状態を認識することでデータ入力側にその通知を行い、それによってデータ転送を待たせることができるため、緩衝バッファ内のデータが消失されることを防止できる。
【００１３】
また、緩衝バッファの最適な段数を計算式によって求めて装置に装備するため、必要最小限の緩衝バッファ構成にすることができる。
【００１４】
【発明の実施の形態】
次に、本発明の実施の形態について図面を参照して詳細に説明する。図１は緩衝バッファへのオーバーライト抑止機能を有する本発明の一実施の形態を示したブロック図である。
【００１５】
このデータ転送制御装置は、緩衝バッファに書き込まれたデータを、その順序を変えずにそのままの状態で、書込み時とは異なった速度で読み出す装置である。従って、一つのトランザクシヨンに含まれるデータ構成を変えたり、読み出されないアドレスのデータがあってはならない。なお、書込みと読出しは非同期で行なわれる。
【００１６】
図１において、１，２，３，４，５および６は、伝送速度が変換されるデータと一回のトランザクション転送の終了を示すＥＮＤ信号が読み書きされる緩衝バッファである。また、７，８および９は、同期化のために用いられるフリップフロップ、１０は緩衝バッファ１〜６からのデータの読出し制御を行うリード制御回路、１１は緩衝バッファ１〜６へのデータの書込み制御を行うライト制御回路、１２は緩衝バッファ１〜６の内の一つを選択する制御を行うセレクタである。
【００１７】
次に、本実施の形態の動作についてタイムチャートを参照しながら説明する。一回のトランザクション転送量は４ワードとする。ここに、１ワードは緩衝バッファ一段分のビット長を有する。
【００１８】
緩衝バッファ１〜６は、データ送信側から入力されるＷＥ（ライトイネーブル）がハイレベルの時に書込み可能となる。ライト制御回路１１は、ＷＥがハイレベルの時に図３に示されるように、ストローブクロックに同期してライトアドレスを１から６まで昇順にインクリメントし、それを繰返す。したがって、ライトアドレスは１，２，３，４，５，６，１・・・のように順番にインクリメントしていく。送信側から入力されるデータは、ストローブクロックに同期して、ライトアドレスが示す値と一致した緩衝バッファ１，緩衝バッファ２，緩衝バッファ３，緩衝バッファ４，緩衝バッファ５，緩衝バッファ６，緩衝バッファ１・・・の順番で書込みが行われる。これら緩衝バッファ１〜６には同時に、何ワード目が格納されているかを示すライトアドレスも書き込まれる。
【００１９】
ＲＤＹ同期化パルスは図３に示すように、まず、送信側から入力されるストローブクロックに同期したＲＤＹを、チップクロックに同期して動作するフリップフロップ７に入力する。次に、チップクロックに同期して動作するフリップフロップ８とフリップフロップ９からフリップフロップ８の出力の前縁微分を取ることにより作成される。すなわち、フリップフロップ８の出力と、フリップフロップ９の出力をインバータ１３で反転した出力とのアンドゲート１４による論理積結果がＲＤＹ同期化パルスとなる。
【００２０】
ここで、ＲＤＹはチップクロックの幅以上の幅が要求される。なぜなら、ストローブクロックとチップクロックは非同期であるため、フリップフロップ７のデータとチップクロックの遷移時点が略同一の場合、メタステーブル（不定状態）が発生するからである。しかし、ＲＤＹにチップクロックの幅以上の幅がある場合には、上記動作によりメタステーブルが発生しても次のチップクロックではＲＤＹは遷移しないため、メタステーブルは持続しないので安定するからである。
【００２１】
リード制御回路１０は、図３に示すように、チップクロックに同期してＲＤＹ同期化パルスをトリガとして、リードアドレスを１，２，３，４，５，６，１・・・の順番に４ワード分インクリメントし、セレクタ１２に与えられる。データはセレクタ１２を介し、緩衝バッファ１，緩衝バッファ２，緩衝バッファ３，緩衝バッファ４，緩衝バッファ５，緩衝バッファ６，緩衝バッファ１・・・の順番に緩衝バッファから読み出される。
【００２２】
ここで、ストローブクロックの周波数とチップクロックの周波数が等しい場合には、図６（１）のように、第一、第二トランザクションともにメタステーブルにおけるＲＤＹ同期化パルスのハイレベルのタイミングが同一のときは、ＲＤＹ同期化パルスをトリガとして緩衝バッファからの読出しを正常に連続して行うことができる。
【００２３】
また、図６（２）のように、第一トランザクションが通常に同期化が行われ、第二トランザクションが同期化のメタステーブルによって、フリップフロップ７の出力がハイレベルに傾いた場合、ＲＤＹ同期化パルスが最終ワード（リードアドレス４）の読出しタイミングと同タイミングでハイレベルになることがある。この場合、そのまま読み出すと、リードアドレス４は第一トランザクシヨンから外れて第二トランザクシヨンの第１ワード扱いになってしまう。そこで、このような場合には、ＲＤＹ同期化パルスの１Ｔ遅れたタイミングから第二トランザクションのデータの読出しを行うように制御すればよい。その結果、トランザクシヨンにおけるデータ構成を変えることなく緩衝バッファからの読出しは連続で行われることになる。
【００２４】
なお、ストローブクロックの周波数とチップクロックの周波数が等しいという条件下では、３ワード目のタイミングと同タイミングでＲＤＹ同期化パルスがハイレベルになることはない。３ワード目のタイミングと同タイミングでＲＤＹ同期化パルスがハイレベルになると、このときには、後に詳述するように、前のトランザクシヨンとの関係でなく、それ自体のトランザクシヨンの中でオーバーライトの問題が浮上してくるのである。
【００２５】
また、図４（３）のように、第一トランザクションが同期化のメタステーブルによってフリップフロップ７の出力がハイレベルに傾き、第二トランザクションが通常に同期化が行われた場合はＲＤＹ同期化パルスは第一トランザクションの読出し終了の１Ｔ後にハイレベルになる。よって、第一トランザクションの終了から第二トランザクションの読出し開始まで１Ｔ空くことになり、緩衝バッファからの連続読出しは支障無く行なうことができる。
【００２６】
以上のように、ストローブクロック幅とチップクロック幅が等しい場合には、図６（１），（２），（３）のいずれの場合であっても、最終ワード（図６（２））、もしくは１ワード目（図６（１））と同タイミングでＲＤＹ同期化パルスがハイレベルになることはあっても、３ワード目（リードアドレス３）と同タイミングでＲＤＹ同期化パルスがハイレベルになることはないため、緩衝バッファからの連続読出しは支障無く行なうことができる。
【００２７】
さて、ストローブクロックの周波数がチップクロックの周波数より速い場合すなわち、書込みが速い場合においては、トランザクションが連続した時、図５に示すように、書込みされるタイミングと比較して読出しのタイミングは徐々に遅れていく。そして、遅れが進行すると、図１のように本来は１ワード目のタイミングでハイレベルになるべきＲＤＹ同期化パルスが、図７に示すように３ワード目のタイミングでがハイレベルになる状態が発生する。この経緯は、図１におけるＲＤＹ同期化パルスの生成部分について、図３におけるＲＤＹのパルスの繰返しををチップクロックのそれに対して多くしていった作図を試みることによって理解できるであろう。
【００２８】
そして、更に遅れが進行すると、最終的には緩衝バッファのオーバーライトが発生する。オーバーライトが起こる条件は次式が成り立たなくなった時である。故に、次式が成り立っている状態で、リード制御回路１０は、図７の状態を検出し、ＢＵＳＹをハイレベルにし、データ送信側のデータ出力を待たせればオーバーライトを抑止できる。
【００２９】
Ａ×（ストローブクロック幅）≧Ｂ×（チップクロック幅）−Ｃ＋Ｄ
ここで、Ａとは１トランザクション当りの緩衝バッファの段数であって本実施例では４、Ｂとは同期化段数であって本実施例ではフリップフロップ８および９の２段、Ｃとはストローブクロックとチップクロックのずれであって最大で１、Ｄとはチップクロックからのリード開始の遅れである。
【００３０】
本実施例によれば、上式においてＡ＝４、Ｂ＝２、Ｃの最大が１であるので、Ｄの値が３になった時にオーバーライトが発生する。図７のタイミングが現れるのはＤの値が２の状態である。この時オーバーライトは、まだ発生しないので、これを検出し、ＢＵＳＹをハイレベルにし、データ送信側のデータ出力を待たせればオーバーライトを抑止することができる。
【００３１】
次に、リード制御回路１０の詳細を開示することによって、以上の動作内容を詳述する。図２は、リード制御回路１０の詳細ブロック図であり、回数記憶カウンタ２０，リードアドレスカウンタ２１，２ビットカウンタ２２，デコーダ２３，ビジー信号発生回路２４およびオアゲート２５から成る。また、図４は図２の各回路の動作を示すタイムチャートである。
【００３２】
回数記憶カウンタ２０はＲＤＹ同期化パルスの回数、すなわち、入力トランザクシヨン数を記憶するカウンタであり、ＲＤＹ同期化パルスによってインクリメントされ、デコーダ２３からの終了通知によってデクリメントされる。
【００３３】
オアゲート２５は回数記憶カウンタ２０の値とＲＤＹ同期化パルスの論理和をカウントＥＮとして出力する。リードアドレスカウンタ２１はカウントＥＮが“１”の間は１〜６の間で循環的にインクリメントし、カウントＥＮが“０”になるトインクリメントを止める。リードアドレスカウンタ２１の出力はリードアドレスとしてセレクタ１２に供給される。
【００３４】
カウントＥＮは２ビットカウンタ２２によってもカウントされ、その出力はデコーダ２３とビジー信号発生回路２４に与えられる。デコーダ２３は２ビットカウンタ２３のカウント値が３になると終了信号を回数記憶カウンタ２０に出力する。また、ビジー信号発生回路２４は、前述の条件、すなわち、図４でいえば回数記憶カウンタ２０が“１”を記憶しており、かつ、２ビットカウンタ２２が“２”またはが“３”（現実的には、“３”のときであろう）のときにＢＵＳＹを発生する。
【００３５】
次に、本発明の他の実施の形態について説明する。しかし、この実施の形態は、ＢＵＳＹ発生論理が上に詳述した実施の形態と異なり、図８に示される。
【００３６】
本例では、緩衝バッファ内に入力データの他に、トランザクションの１ワード目を示すスタートビットと、最終ワードを示すエンドビットを装備する。これらは、前述の第１の実施の形態における緩衝バッファ１，２，３，４，５および６の一つ一つにくくりつけられる。緩衝バッファ１，２，３，４，５および６に書込みが行われる時にトランザクションの１ワード目ならば、スタートビットをハイレベルにする。また、トランザクションの最終ワードならば、エンドビットをハイレベルにする。これらのビットは緩衝バッファからの読出し時にデータと同時に読み出される。
【００３７】
ここで、スタートビットまたはエンドビットがハイレベルでないときであって、かつ、ＲＤＹ同期化パルスがハイレベルの時にオーバーライトが発生する可能性があるのでＢＵＳＹをハイレベルにしてデータ送信側のデータ出力を待たせてオーバーライトを抑止する。スタートビットまたはエンドビットがハイレベルでないときとは、図２において、ビジー信号発生回路２４が２ビットカウンタ２２の２ビットカウント値（図４を参照せよ）が“１”または“２”の時をＢＵＳＹ発生の条件としているのに相当する。
【００３８】
構成的には、図１におけるリード制御回路１０の内から、ＢＵＳＹを出力する機能が除かれる。その代わり、セレクタ１２から出力されるリードデータを見て、そのスタートビットまたはエンドビットが“１”であり、かつ、回数記憶カウンタ２０が“１”を出力しているときに、ＢＵＳＹを出力する回路を設ける。回数記憶回路２０は、リード制御回路の内のものを使用する。
【００３９】
本実施の形態では、オーバーライトを事前に予測できるので第１の実施の形態と同様の効果がある。しかも、一回のトランザクションのワード数が可変であっても対応できることからシステムの性能を向上させることができるという効果も有する。
【００４０】
【発明の効果】
本発明によれば、緩衝バッファへの書込み速度が読出し速度より速い場合においてもオーバーライトされる直前の状態を認識することにより、データ送信側にその通知を行う構成としたため、データ転送を待たせることにより、緩衝バッファ内のデータが消失されることを防止でき、装置の信頼性を向上させることができるという第１効果を得ることができる。
【００４１】
また、大規模なカウンタ等を用いることなくオーバーライトの直前の状態を予知することができるため、回路・装置構成を簡易化できるという第２の効果もある。
【図面の簡単な説明】
【図１】本発明の一実施の形態を示すブロック図
【図２】図１におけるリード制御回路１０の詳細ブロック図
【図３】図１に示した非同期データ転送制御装置のタイムチャート
【図４】図２に示したリード制御回路１０のタイムチャート
【図５】データの遅れを示した概念図
【図６】同期化に伴う信号のずれを説明するための図
【図７】緩衝バッファへのオーバーライト検出タイミングを示した図
【図８】本発明の他の実施の形態の特徴を示したブロック図
【図９】従来の非同期転送制御回路の一例を示すブロック図
【符号の説明】
１〜６    緩衝バッファ
７〜９    フリップフロップ
１０      リード制御回路
１１      ライト制御回路
１２      セレクタ
１３      インバータ
１４      アンドゲート
２０      回数記憶カウンタ
２１      リードアドレスレジスタ
２２      ２ビットカウンタ
２３      デコーダ
２４      ビジー信号発生回路
２５      オアゲート
【図１】
0003592169.tif 000002
【図２】
0003592169.tif 000003
【図５】
0003592169.tif 000004
【図７】
0003592169.tif 000005
【図３】
0003592169.tif 000006
【図４】
0003592169.tif 000007
【図６】
0003592169.tif 000008
【図８】
0003592169.tif 000009
【図９】
0003592169.tif 000010