(57)【特許請求の範囲】
【請求項１】
第１のクロック信号に同期する第１の回路と第２のクロック信号に同期する第２の回路との間に設けられ、前記第１の回路と前記第２の回路との間でデータを転送するインターフェース回路であって、
前記第１の回路から供給されるデータを書き込むとともに、記憶された前記データを読み出して前記第２の回路へ出力する記憶手段と、
前記第１のクロック信号に基づいて、前記記憶手段の書込位置を指示する書込アドレスを生成する書込アドレス生成手段と、
前記第２のクロック信号に基づいて、前記記憶手段の読出位置を指示する読出アドレスを生成する読出アドレス生成手段と、
前記第１のクロック信号と前記第２のクロック信号とに基づいて、前記書込アドレスと前記読出アドレスとが同時に確定するタイミングを検出するタイミング検出手段と、
前記タイミング検出手段によって検出されたタイミングにおける前記書込アドレスと前記読出アドレスに基づいて、前記第１の回路の書込動作と前記第２の回路の読出動作とを制御する制御手段であって、前記読出アドレスと前記書込アドレスとを比較して前記記憶手段の蓄積データ数を検出する蓄積データ数検出手段と、前記蓄積データ数を予め定められた読出設定値とを比較する比較手段と、前記比較手段の比較結果に基づいて、前記第２の回路の読出動作を制御する読出制御手段と、を有する制御手段と、
を備え、
前記読出設定値は、
前記記憶手段からのデータ読出が開始されてから変化した前記読出アドレスに基づいて前記第２の回路に対する読出制御動作が行われるまでの期間中に読み出される可能性がある最大データ数と、前記制御手段が前記第２の回路に対して読出停止を指示してから前記第２の回路が読出動作を停止するまでに読み出される可能性がある最大データ数とに基づいて予め定められている
ことを特徴とするインターフェース回路。
【請求項２】
前記読出制御手段は、前記タイミング検出手段によって検出されたタイミングに基づいて、前記比較手段の比較結果の中から前記読出アドレスと前記書込アドレスとが同時に確定しているタイミングに対応する比較結果を抽出し、抽出された比較結果に基づいて前記第２の回路の読出動作を制御する
ことを特徴とする請求項１に記載のインターフェース回路。
【請求項３】
前記蓄積データ数検出手段は、前記タイミング検出手段によって検出されたタイミングにおける前記読出アドレスと前記書込アドレスとを比較して、前記記憶手段の蓄積データ数を検出する
ことを特徴とする請求項１に記載のインターフェース回路。
【請求項４】
前記比較手段は、前記タイミング検出手段によって検出されたタイミングにおける前記蓄積データ数を、予め定められた読出設定値とを比較する
ことを特徴とする請求項１に記載のインターフェース回路。
【請求項５】
第１のクロック信号に同期する第１の回路と第２のクロック信号に同期する第２の回路との間に設けられ、前記第１の回路と前記第２の回路との間でデータを転送するインターフェース回路であって、
前記第１の回路から供給されるデータを書き込むとともに、記憶された前記データを読み出して前記第２の回路へ出力する記憶手段と、
前記第１のクロック信号に基づいて、前記記憶手段の書込位置を指示する書込アドレスを生成する書込アドレス生成手段と、
前記第２のクロック信号に基づいて、前記記憶手段の読出位置を指示する読出アドレスを生成する読出アドレス生成手段と、
前記第１のクロック信号と前記第２のクロック信号とに基づいて、前記書込アドレスと前記読出アドレスとが同時に確定するタイミングを検出するタイミング検出手段と、
前記タイミング検出手段によって検出されたタイミングにおける前記書込アドレスと前記読出アドレスに基づいて、前記第１の回路の書込動作と前記第２の回路の読出動作とを制御する制御手段であって、前記読出アドレスと前記書込アドレスとを比較して前記記憶手段の蓄積データ数を検出する蓄積データ数検出手段と、前記蓄積データ数を予め定められた読出設定値とを比較する比較手段と、前記比較手段の比較結果に基づいて、前記第１の回路の書込動作を制御する書込制御手段と、を有する制御手段と、
を備え、
前記書込設定値は、
前記記憶手段へのデータ書込が開始されてから変化した前記書込アドレスに基づいて前記第１の回路に対する書込制御動作が行われるまでの期間中に書き込まれる可能性がある最大データ数と、前記制御手段が前記第１の回路に対して書込停止を指示してから前記第１の回路が書込動作を停止するまでに書き込まれる可能性がある最大データ数とに基づいて予め定められている
ことを特徴とするインターフェース回路。
【請求項６】
前記書込制御手段は、前記タイミング検出手段によって検出されたタイミングに基づいて、前記比較手段の比較結果の中から前記読出アドレスと前記書込アドレスとが同時に確定しているタイミングに対応する比較結果を抽出し、抽出された比較結果に基づいて前記第１の回路の書込動作を制御することを特徴とする請求項５に記載のインターフェース回路。
【請求項７】
前記蓄積データ数検出手段は、前記タイミング検出手段によって検出されたタイミングにおける前記読出アドレスと前記書込アドレスとを比較して、前記記憶手段の蓄積データ数を検出することを特徴とする請求項５に記載のインターフェース回路。
【請求項８】
前記比較手段は、前記タイミング検出手段によって検出されたタイミングにおける前記蓄積データ数を、予め定められた書込設定値と比較することを特徴とする請求項５に記載のインターフェース回路。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、二つの回路間でデータ転送を行うために設けられるインターフェース回路に関するものであり、特に、非同期で動作する回路間でデータを高速転送するのに好適である。
【０００２】
【従来の技術】
デジタルデータを処理するシステムにおいては、複数の回路間でデータの授受を行いながら、処理を進めるものが多い。データを出力する回路とデータを入力する回路とが非同期で動作する場合には、両回路の間にデータを一時的に記憶するバッファを有するインターフェース回路を設け、同期をとる必要がある。
【０００３】
このようなインターフェース回路として、バッファへの書き込みあるいは読み出しを一方の回路に用いられるクロックに同期させて行うものが特開平９−２２２９８８号公報に開示されている。このインターフェース回路では、バッファの書込位置を指示する書込アドレスとバッファへの読出位置を指示する読出アドレスとが完全に同期する点に特徴があり、同期化に用いたクロックのタイミングで両アドレスを比較して、バッファのデータ蓄積度を常に検出している。したがって、この技術によれば、データ蓄積度を常時監視することにより、バッファが完全に空の状態になるのを待たずに書込動作を開始でき、また、それが完全に満杯の状態になるのを待たずに読出動作を開始することができる。
【０００４】
【発明が解決しようとする課題】
ところで、特開平９−２２２９８８号公報に開示されたインターフェース回路では、読出アドレスと書込アドレスとを完全に同期化させるために、出力回路のクロックｓｃｌｋと入力回路のクロックｍｃｌｋに一定の関係が必要とされていた。すなわち、特開平９−２２２９８８号公報の段落番号００６４に記載されているように、クロックｓｃｌｋの周期はクロックｍｃｌｋの周期の１．５倍以上必要とされ、この場合に限って、比較的簡易な回路によってインターフェース回路を構成することができた。仮に、クロックｓｃｌｋの周期がクロックｍｃｌｋの周期の１．５倍未満であるならば、同期化のために高速のクロックを別回路で生成する必要があった。
したがって、従来技術では、非同期で動作する二つの回路に使用されるクロック周期に制約があるといった問題があり、また、クロック周期に制約を設けない場合には、回路構成が複雑になるという問題があった。
【０００５】
本発明は、上述した事情に鑑みてなされたものであり、非同期で動作する二つの回路に使用されるクロック周期に制約がなく、簡易な回路構成で高速のデータ伝送が可能なインターフェース回路を提供することを目的とする。
【０００６】
【課題を解決するための手段】
上述した課題を解決するため本発明にあっては、第１のクロック信号に同期する第１の回路と第２のクロック信号に同期する第２の回路との間に設けられ、前記第１の回路と前記第２の回路との間でデータを転送するインターフェース回路であって、前記第１の回路から供給されるデータを書き込むとともに、記憶された前記データを読み出して前記第２の回路へ出力する記憶手段と、前記第１のクロック信号に基づいて、前記記憶手段の書込位置を指示する書込アドレスを生成する書込アドレス生成手段と、前記第２のクロック信号に基づいて、前記記憶手段の読出位置を指示する読出アドレスを生成する読出アドレス生成手段と、前記第１のクロック信号と前記第２のクロック信号とに基づいて、前記書込アドレスと前記読出アドレスとが同時に確定するタイミングを検出するタイミング検出手段と、前記タイミング検出手段によって検出されたタイミングにおける前記書込アドレスと前記読出アドレスに基づいて、前記第１の回路の書込動作と前記第２の回路の読出動作とを制御する制御手段であって、前記読出アドレスと前記書込アドレスとを比較して前記記憶手段の蓄積データ数を検出する蓄積データ数検出手段と、前記蓄積データ数を予め定められた読出設定値とを比較する比較手段と、前記比較手段の比較結果に基づいて、前記第２の回路の読出動作を制御する読出制御手段と、を有する制御手段と、を備え、前記読出設定値は、前記記憶手段からのデータ読出が開始されてから変化した前記読出アドレスに基づいて前記第２の回路に対する読出制御動作が行われるまでの期間中に読み出される可能性がある最大データ数と、前記制御手段が前記第２の回路に対して読出停止を指示してから前記第２の回路が読出動作を停止するまでに読み出される可能性がある最大データ数とに基づいて予め定められていることを特徴としている。
また、本発明の別の態様にあっては、第１のクロック信号に同期する第１の回路と第２のクロック信号に同期する第２の回路との間に設けられ、前記第１の回路と前記第２の回路との間でデータを転送するインターフェース回路であって、前記第１の回路から供給されるデータを書き込むとともに、記憶された前記データを読み出して前記第２の回路へ出力する記憶手段と、前記第１のクロック信号に基づいて、前記記憶手段の書込位置を指示する書込アドレスを生成する書込アドレス生成手段と、前記第２のクロック信号に基づいて、前記記憶手段の読出位置を指示する読出アドレスを生成する読出アドレス生成手段と、前記第１のクロック信号と前記第２のクロック信号とに基づいて、前記書込アドレスと前記読出アドレスとが同時に確定するタイミングを検出するタイミング検出手段と、前記タイミング検出手段によって検出されたタイミングにおける前記書込アドレスと前記読出アドレスに基づいて、前記第１の回路の書込動作と前記第２の回路の読出動作とを制御する制御手段であって、前記読出アドレスと前記書込アドレスとを比較して前記記憶手段の蓄積データ数を検出する蓄積データ数検出手段と、前記蓄積データ数を予め定められた読出設定値とを比較する比較手段と、前記比較手段の比較結果に基づいて、前記第１の回路の書込動作を制御する書込制御手段と、を有する制御手段と、を備え、前記書込設定値は、前記記憶手段へのデータ書込が開始されてから変化した前記書込アドレスに基づいて前記第１の回路に対する書込制御動作が行われるまでの期間中に書き込まれる可能性がある最大データ数と、前記制御手段が前記第１の回路に対して書込停止を指示してから前記第１の回路が書込動作を停止するまでに書き込まれる可能性がある最大データ数とに基づいて予め定められていることを特徴としている。
【０００７】
【発明の実施の形態】
Ａ．第１実施形態
以下、本発明の一実施形態に係わるインターフェース回路を用いたデータ伝送システムについて説明する。
１．第１実施形態の構成
１−１；全体構成
図１は、本発明の一実施形態に係わるインターフェース回路を用いたデータ伝送システムの回路図である。図において、１０は第１のクロック信号１００に同期して動作する第１の回路、１１は第２のクロック信号１０１に同期して動作する第２の回路であり、これらの回路の間にインターフェース回路１が設けられている。なお、この例では、第１の回路１０から第２の回路１１にデータを転送するものとする。また、第１のクロック信号１００と第２のクロック信号１０１の周期は任意であるが、理解を容易にするため、この例では第１のクロック信号１００の周期が第２のクロック信号１０１の周期よりも長いものとする。
【０００８】
第１の回路１０には、書込要求信号１１４が供給されるようになっており、書込要求信号１１４の有効期間中（例えば、ローレベル期間中）に、第１の回路１０は、第１のクロック信号１００に同期してライトデータ１０２とライトイネーブル信号１０３とを出力するように構成されている。一方、第２の回路１１には、読出許可信号１１２が供給されるようになっており、読出許可信号１１２の有効期間中（例えば、ローレベル期間中）に、第２の回路１１は、第２のクロック信号１０１に同期してリードイネーブル信号１０３を出力するとともに、リードデータ１０６を取り込むように構成されている。
【０００９】
次に、インターフェース回路１は、バッファ１２、ライト信号発生器１３、ＷＲアドレスカウンタ１４、リード信号発生器１５、ＲＤアドレスカウンタ１６、アドレス比較タイミング生成回路１７、およびアドレス比較回路１９から構成されている。
【００１０】
まず、バッファ１２は、書込と読出が同時に行えるように、例えば、２ポートのＲＡＭによって構成されている。バッファ１２には、第１の回路１０からのライトデータ１０２が書き込まれ、これが、所定のタイミングでリードデータ１０６として読み出され第２の回路１１に供給されるようになっている。
【００１１】
次に、ライト信号発生器１３は、第１のクロック信号１００とライトイネーブル信号１０３とに基づいて、ライト信号１０４を生成する。ライト信号発生器１３は、例えば、オア回路で構成され、第１のクロック信号１００とライトイネーブル信号１０３の論理和がライト信号１０４として出力される。ライト信号１０４は、バッファ１２へライトデータ１０２を書き込むためのクロックとして作用する。
【００１２】
次に、ＷＲアドレスカウンタ１４は、カウント値をライトアドレス１０５として出力する。ＷＲアドレスカウンタ１４のイネーブル入力端子にはライトイネーブル信号１０３が供給され、そのクロック入力端子には第１のクロック信号１００が供給されるようになっている。したがって、ライトイネーブル信号１０３が有効な時に、第１のクロック信号１００と同期してライトアドレス１０５がインクリメントされる。
【００１３】
次に、リード信号発生器１５は、第２のクロック信号１０１とリードイネーブル信号１０７とに基づいて、リード信号１０８を生成する。リード信号発生器１５は、ライト信号発生器１３と同様に、例えば、オア回路で構成される。リード信号１０８は、バッファ１２からリードデータ１０６を読み出すためのクロックとして作用する。
【００１４】
次に、ＲＤアドレスカウンタ１６は、カウント値をリードアドレス１０９として出力する。ＲＤアドレスカウンタ１６においては、リードイネーブル信号１０７が有効な時に、第２のクロック信号１０１と同期してリードアドレス１０９がインクリメントされる。
【００１５】
次に、アドレス比較タイミング生成回路１７は、第１のクロック信号１００に基づいて、第１，第２の比較タイミング信号１１０，１１１を生成する。アドレス比較タイミング生成回路１７は、例えば、第１のクロック信号１００を分周するトグル回路によって構成され、トグル信号とこれを反転した信号とが第１，第２の比較タイミング信号１１０，１１１として出力されるようになっている。
【００１６】
次に、アドレス比較回路１９は、ライトアドレス１０５とリードアドレス１０９とを比較し、この比較結果に基づいて書込許可信号１１３と読出許可信号１１２とを第２のクロック信号１０１に同期して生成するように構成されている。書込許可信号１１３は、その値がロ−レベルであるときバッファ１２へライトデータ１０２を書き込むことを許可する。また、読出許可信号１１２は、その値がローレベルであるときバッファ１２からリードデータ１０６を読み出すことを許可する。
【００１７】
次に、ライトＲＥＱ生成回路１８は、書込許可信号１１３を第１のクロック信号１００に同期させた書込要求信号１１４を生成する。ライトＲＥＱ生成回路１８は、例えば、Ｄフリップフロップによって構成される。
【００１８】
１−２；アドレス比較回路の構成
次に、アドレス比較回路１９の具体的な構成を説明する。図２はアドレス比較回路の回路図である。この図に示すように、アドレス比較回路１９は、Ａレジスタ２１、比較回路２２、フリップフロップ２３、Ｂレジスタ２４およびＣレジスタ２５から構成され、これらによって、バッファ１２に蓄積されるているデータ数が検出され、検出結果に基づいて読出許可信号１１２と書込許可信号１１３とが生成されるようになっている。
【００１９】
まず、Ａレジスタ２１は、ライトアドレス１０５、第１の比較タイミング信号１１０、および第１のクロック信号１００に基づいて、Ａアドレス２００を生成する。具体的には、第１の比較タイミング信号１１０が有効な時（この例では、ハイレベルの時）、第１のクロック信号１００の立ち上がりエッジでライトアドレス１０５がラッチされ、Ａアドレス２００が生成される。この場合、第１の比較タイミング信号１１０は、上述したように第１のクロック信号１００を分周したトグル信号として与えられるから、Ａアドレス２００は、２クロック毎にライトアドレスを伝搬させたものとなる。
【００２０】
次に、比較回路２２は、リードアドレス１０９とＡアドレス２００に基づいて、バッファ１２に蓄積されているデータ数を検出し、これを予め決められた所定値と比較することによって、第１，第２の比較結果２０１，２０２を生成する。第１の比較結果２０１はバッファ１２からデータを読み出せるか否かを示し、第２の比較結果２０２はバッファ１２へデータを書き込めるか否かを示している。なお、比較の方法についは後述する。
【００２１】
次に、フリップフロップ２３は、第２の比較タイミング信号１１１を第２のクロック信号１０１でラッチすることにより、第１のクロック信号１００に同期している第２の比較タイミング信号１１１を第２のクロック信号１０１に同期化させて、第３の比較タイミング信号２０３を生成する。
【００２２】
次に、Ｂレジスタ２４には、第１の比較結果２０１と第３の比較タイミング信号２０３が供給され、第３の比較タイミング信号２０３が有効な時（この例ではハイレベル）、第２のクロック信号１０１の立ち上がりエッジで第１の比較結果２０１を読み出して、読出許可信号１１２を生成する。
【００２３】
次に、Ｃレジスタ２５には、第２の比較結果２０２と第３の比較タイミング信号２０３が供給され、第３の比較タイミング信号２０３が有効な時（この例ではハイレベル）、第２のクロック信号１０１の立ち上がりエッジで第２の比較結果２０２を読み出して、書込許可信号１１３を生成する。
【００２４】
２．第１実施形態の動作
次に、第１実施形態のデータ伝送システムの動作を図面を参照しつつ説明する。
２−１；書込動作
図３は、第１の回路１０からバッファ１２へライトデータ１０２を書き込む際のタイミングの一例を示すタイミングチャートである。図３（ａ）に示す第１のクロック信号１００に同期して、図３（ｂ）に示す書込要求信号１１４が第１の回路１０に供給されたとすると、第１の回路１０は、書込要求信号１１４が有効となる期間（この例では、ローレベル期間）において、データの書込を行う。
例えば、図３（ｄ）に示すライトデータＤ１〜Ｄ４、Ｄ５〜Ｄ７をバッファ１２に書き込むものとすれば、第１の回路１０は、図３（ｃ）に示すライトイネーブル信号１０３を生成する。ライトイネーブル信号１０３はローレベルで有効となる。
【００２５】
このライトイネーブル信号１０３がライト信号発生器１３に供給されると、ライト信号発生器１３は、ライトイネーブル信号１０３と第１のクロック信号１００に基づいて、図３（ｅ）に示すライト信号１０４を生成する。また、ライトイネーブル信号１０３がＷＲアドレスカウンタ１４に供給されると、ＷＲアドレスカウンタ１４は、ライトイネーブル信号１０３が有効な時（ローレベルの時）、第１のクロック信号１００の立ち上がりエッジでカウント値をインクリメントして、これを図３（ｆ）に示すライトアドレス１０５として生成する。
【００２６】
ライトアドレス１０５が図３（ｆ）に示すように、「１→２→３→４→５→６→７」と変化すると、ライトデータＤ１がアドレス値「１」に対応する記憶領域、ライトデータＤ２がアドレス値「２」に対応する記憶領域といったように順次記憶されていく。このようにして、４個の連続したライトデータＤ１〜Ｄ４が書き込まれ、この後、３個の連続したライトデータＤ５〜Ｄ７が書き込まれる。
このように、バッファ１２に対するデータ書込はバーストライト動作で行うことができるので、高速のデータ転送に対応することが可能となる。
【００２７】
２−２；読出動作
次に、図４は、第２の回路１１がバッファ１２からリードデータ１０６を読み出すタイミングの一例を示すタイミングチャートである。図４（ａ）に示す第２のクロック信号１０１に同期して、図４（ｂ）に示す読出許可信号１１２が第２の回路１１に供給されたとすると、第２の回路１１は、読出許可信号１１２が有効となる期間（この例では、ローレベル期間）において、データの読出を行う。
【００２８】
例えば、図３（ｃ）に示すリードイネーブル信号１０７を第２の回路１１が出力したとすると、リード信号発生器１５はリードイネーブル信号１０７と第２のクロック信号１０１とに基づいて、図４（ｄ）に示すリード信号１０８を生成する。
【００２９】
また、リードイネーブル信号１０７がＲＤアドレスカウンタ１６に供給されると、ＲＤアドレスカウンタ１６は、リードイネーブル信号１０７がローレベルの時、第２のクロック信号１０１の立ち上がりエッジでカウント値をインクリメントして、これを図４（ｆ）に示すリードアドレス１０９として生成する。
【００３０】
リードアドレス１０９が図４（ｆ）に示すように「０→２→…→９」と変化し、各アドレスに対応するバッファ１２の記憶領域に記憶されているデータが、各々Ｄ０〜Ｄ９であるとすれば、図４（ｅ）に示すように、まず、データＤ０〜Ｄ４が連続して読み出され、この後、データＤ５〜Ｄ８が読み出される。
このように、バッファ１２に対するデータ読出はバーストリード動作で行うことができるので、高速のデータ転送に対応することが可能となる。
【００３１】
２−３；アドレス比較動作
次に、図５はアドレス比較の動作タイミングの一例を示すタイミングチャートである。まず、アドレス比較タイミング生成回路１７は、図５（ａ）に示す第１のクロック信号１００を分周して第１，第２の比較タイミング信号１１０，１１１（図５（ｃ），（ｅ）参照）を生成してアドレス比較回路１９に出力する。アドレス比較回路１９のＡレジスタ２１では、第１の比較タイミング信号１１０が有効な時（この例では、ハイレベルの時）、第１のクロック信号１００の立ち上がりエッジでライトアドレス１０５（図５（ｂ）参照）をラッチしてＡアドレス２００を生成する。このため、Ａアドレス２００は、図５（ｄ）に示すように２クロックに１回の割合でライトアドレス１０５を更新したものとなり、その値は「６→７→９→Ａ→Ｂ」といったように変化する。
【００３２】
一方、第２の比較タイミング信号１１１がフリップフロップ２３に供給されると、フリップフロップ２３は、第２の比較タイミング信号１１１を図５（ｆ）に示す第２のクロック信号１０１の立ち上がりエッジでラッチして図５（ｇ）に示す第３の比較タイミング信号２０３を生成する。これにより、第２の比較タイミング信号１１１は、第２のクロック信号１０１によって同期化される。
【００３３】
次に、図５（ｈ）に示すリードアドレス１０９とＡアドレス２００が比較回路２２に供給されると、比較回路２２は、２つのアドレスと予め決められた設定値を比較して第１の比較結果２０１と第２の比較結果２０２とを生成する。
ここで、比較結果の求める方法の一例を説明する。例えば、バッファ１２の記憶容量が３２ワードであり、５ビットのアドレスによって各記憶領域を指定できるものとする。また、ＷＲアドレスカウンタ１４とＲＤアドレスカウンタ１６はともに６ビットカウンタで、そのカウント値の下位５ビットがバッファ１２に供給されており、アドレス比較回路１９には６ビットのライトアドレス１０５とリードアドレス１０９が入力され、比較回路２２には６ビットのリードアドレス１０９とＡアドレス２００とが入力されているものとする。
【００３４】
まず、比較回路２２は、バッファ１２に蓄積されているデータ数を検出するため、Ａアドレス２００とリードアドレス１０９の差分値を求める。ところで、バッファ１２は、巡回型のメモリで構成されるため、リードアドレス１０９の値がＡアドレス２００の値を上回ることもある。そこで、以下の条件で蓄積データ数を検出する。
▲１▼Ａアドレス≧リードアドレスの場合
この場合にはライトアドレス（Ａアドレス）が先行しているので、蓄積データ数は、次式で与えられる。
蓄積データ数＝Ａアドレス−リードアドレス
▲２▼Ａアドレス＜リードアドレスの場合
この場合には、リードアドレスが先行しているので、バッファ１２の記憶容量を考慮してデータ数を算出する必要がある。このため、データ数は次式で与えられる。
蓄積データ数＝（Ａアドレス＋６４）−リードアドレス
こうして算出された蓄積データ数が「０」の場合には、バッファ１２は空の状態にあり、蓄積データ数が「３２」の場合には、バッファ１２は満杯の状態にある。
【００３５】
第１の比較結果２０１は、蓄積データ数を予め定められたリード設定値と比較することにより生成され、蓄積データ数がリード設定値以上である場合には’０’となり、蓄積データ数がリード設定値未満である場合には’１’となる。
リード設定値は、バッファ１２が空の状態の時に第２の回路１１がリードイネーブル信号１０７を有効にしないように設けられた値であり、正常にリードデータ１０６を読み出すことができるようなデータ数に設定される。具体的には、１回のリード動作を終了した後にアドレス比較を経て読出許可信号１１２に到達するまでの遅延、読出許可信号１１２が無効になってから第２の回路１１がリード動作を止めるまでの遅延、および第２の回路１１のリード動作タイミング仕様を考慮して、これらの遅延分の間に読み出される最大ワード数に基づいて決定される。
【００３６】
この例では、リード動作終了後から読出許可信号１１２に到達する遅延は最大で３クロック（第２のクロック信号１０１）である。ここで、読出許可信号１１２が無効になってから第２の回路１１がリード動作を止めるまでの遅延は無く、第２の回路１１は全てのサイクルでリードする可能性があるものとすれば、リード設定値は「３」とすればよい。仮に、第２の回路１１が２サイクルに１回の割合でリードするのであれば、リード設定値は「２」とすればよい。なお、リード設定値が「３」の場合の真理値表を図６に示す。この場合には、蓄積データ数が３以上、すなわち、バッファ１２に３ワード以上のデータが残っていれば、第１の比較結果２０１は’０’となり、２ワード以下のときには’１’となる。
【００３７】
次に、第２の比較結果２０２は、蓄積データ数を予め定められたライト設定値と比較することにより生成され、蓄積データ数がライト設定値以上である場合には’１’となり、蓄積データ数がライト設定値未満である場合には’０’となる。
ライト設定値は、バッファ１２が満杯の状態の時に第１の回路１１がライトイネーブル信号１０３を有効にしないように設けられた値であり、正常にライトデータ１０２を書き込めるようなデータ数に設定される。具体的には、１）１回のライト動作を終了した後にアドレス比較を経て書込許可信号１１３が生成され、ライトＲＥＱ生成回路１８で第１のクロック信号１００に書込許可信号１１３を同期化させ書込要求信号１１４を生成するまでの遅延、２）書込要求信号１１４が無効になってから第１の回路１０がライト動作を止めるまでの遅延、３）第１の回路１０のライト動作タイミング仕様を考慮して、これらの遅延分の間に書き込まれる最大ワード数に基づいて決定される。
【００３８】
この例では、ライト動作が終了した後にライトアドレス１０５がＡアドレス２００に伝搬されるまで最大２クロック（第１のクロック信号１００）の遅延があり、Ａアドレス２００とリードアドレス１０９の比較結果が書込許可信号１１３に伝搬されるまでの遅延を第１のクロック信号１００に対して換算すると最大でも３クロック未満の遅延があり、書込許可信号１１３がライトＲＥＱ生成回路１８で１段のフリップフロップを介して第１のクロック信号１００に同期化させる際に１クロックの遅延がある。また、第１の回路１０では書込要求信号１１４が無効になってからライト動作を止めるまでの遅延を１クロックとすると、これらの遅延の合計は６クロックとなる。６クロックの間にバッファ１２に書き込むワード数の最大値は第１の回路１０のライト動作のタイミング仕様によるが、ここでは、６クロック全てに書込の可能性があるものとする。
【００３９】
また、第１の回路１０では、複数ワード（図３の例では４ワード）を連続して書き込むバーストライト動作を行っている。仮に、書込要求信号１１４が無効になるのと同時にバーストライト動作を開始してしまうと、当該バーストサイクルでさらに４ワード書き込まれることになる。このことから、比較アドレスに該当するライト動作を行った後、最大でさらに１０ワードの書込が行われる可能性がある。したがって、ライト設定値は、バッファ１２のデータ容量である「３２」から、「１０」を差し引いた値「２２」に設定される。なお、ライト設定値が「２２」の場合の真理値表を図７に示す。この場合には、蓄積データ数が２２以上、すなわち、バッファ１２に２２ワード以上のデータが残っていれば、第２の比較結果２０２は’１’となり、２１ワード以下のときには’０’となる。
【００４０】
このようにして、第１の比較結果２０１と第２の比較結果２０２が、リードアドレス１０９とＡアドレス２００とに基づいて生成されるが、両アドレスの時間基準となる第１，第２のクロック信号１００，１０１は同期していないため、比較結果が不安定となるタイミングが存在する。
【００４１】
例えば、図５（ｉ）に示すように第１の比較結果２０１は、網掛け部分で不安定な値をとる。なお、第２の比較結果２０２についても同様である。このため、Ｂレジスタ２４とＣレジスタ２５は、図５（ｇ）に示す第３の比較タイミング信号２０３がハイレベルの期間中に第２のクロック信号１０１の立ち上がりエッジで、第１，第２の比較結果２０１，２０２を各々ラッチして、読出許可信号１１２と書込許可信号１１３を各々生成している。
【００４２】
図５に示す例にあっては、点線で示す各タイミング（アドレスが確定しているタイミング）において、図５（ｉ）に示す第１の比較結果２０１がＢレジスタ２４から読み出され、図５（ｊ）に示す読出許可信号１１２として第２の回路１１に出力される。
【００４３】
このように、第１実施形態によれば、第１のクロック信号１００と第２のクロック信号１０１の間に周期上の制約はなく、簡易な構成によって、第１の回路１０に対して安定な書込要求信号１１４を第１のクロック信号１００に同期して送出することができる。また、第２の回路１１に対して安定した読出許可信号１１２を第２のクロック信号１０１に同期して送出することができる。
【００４４】
また、バッファ１２に対してバーストライト動作およびバーストリード動作を行うことができ、しかもバッファ１２の蓄積データ数を適切に監視することにより、バッファが完全に空の状態になるのを待たずに書込動作を開始でき、また、それが完全に満杯の状態になるのを待たずに読出動作を開始することができる。この結果、第１，第２の回路１０，１１の間で高速のデータ転送を実現することが可能となる。
【００４５】
Ｂ．第２実施形態
次に、本発明の第２実施形態に係わるインターフェース回路を用いたデータ伝送システムについて説明する。このデータ伝送システムは、データを第２の回路１１から第１の回路１０に伝送する点で、第１実施形態と相違する。
【００４６】
図８は、第２実施形態に係わるインターフェース回路を用いたデータ伝送システムの回路図である。なお、図１と同一の構成部分には同一の符号が付してある。また、図８に示すリード信号発生器６３、ＲＤアドレスカウンタ６４、ライト信号発生器６５、およびＷＲアドレスカウンタ６６は、図１に示すリード信号発生器１５、ＲＤアドレスカウンタ１６、ライト信号発生器１３、およびＷＲアドレスカウンタ１４に各々相当し、第２の回路１１側に設けられているのか、第１の回路１０に設けられているのかという点でのみ相違する。
【００４７】
図８において、第１のクロック信号１００に同期して動作する第１の回路１０と、第２のクロック信号１０１に同期して動作する第２の回路１１の間には、インターフェース回路２が設けられている。なお、この例では、第１実施形態と同様に第１のクロック信号１００の周期が第２のクロック信号１０１の周期よりも長いものとする。
【００４８】
まず、第１の回路１０からのリードイネーブル信号６０３がリード信号発生器６３に入力されると、リード信号発生器６３はリードイネーブル信号６０３が有効な時にリード信号６０４を出力する。また、ＲＤアドレスカウンタ６４はリードイネーブル信号６０３が有効な時に、第１のクロック信号１００を用いてリードアドレス６０５をインクリメントする。バッファ１２ではリード信号６０４が入力された時、リードアドレス６０５の指示する位置からリードデータ６０２を読み出して出力する。
【００４９】
次に、第２の回路１１からのライトイネーブル信号６０７がライト信号発生器６５に入力されると、ライト信号発生器６５はライトイネーブル信号６０７が有効な時にライト信号６０８を出力する。また、ＷＲアドレスカウンタ６６はライトイネーブル信号６０７が有効な時に、第２のクロック信号１０１を用いてライトアドレス６０９をインクリメントする。バッファ１２ではライト信号６０８が入力された時、ライトアドレス６０９の指示する位置にライトデータ６０６を書き込む。
【００５０】
次に、アドレス比較タイミング生成回路１７からは、第１の比較タイミング生成信号１１０と第２の比較タイミング生成信号１１１とが第１のクロック信号１００に同期して出力される。また、アドレス比較回路１９は、リードアドレス６０５とライトアドレス６０９を比較して、書込許可信号６１２と読出許可信号６１３を第２のクロック信号１０１に同期させて出力する。
【００５１】
次に、リードＲＥＱ生成回路６８は  読出許可信号６１３を第１のクロック信号１００でラッチして、第１のクロック信号１００に同期化させた読出要求信号６１４を生成している。
【００５２】
ここで、アドレス比較回路１９の回路図を図９に示す。Ａレジスタ２１に、リードアドレス６０５、第１の比較タイミング信号１１０、および第１のクロック信号１００が供給されると、Ａレジスタ２１は、第１の比較タイミング信号１１０が有効な時（この例では、ハイレベルの時）、第１のクロック信号１００の立ち上がりエッジでリードアドレス６０５をラッチしてＡアドレス２００を生成する。この場合、第１の比較タイミング信号１１０は、第１のクロック信号１００を分周したトグル信号として与えられる。このため、Ａアドレス２００は、２クロック毎にリードアドレス６０５を伝搬させたものとなる。
【００５３】
次に、比較回路２２は、ライトアドレス６０９とＡアドレス２００に基づいて、バッファ１２に蓄積されているデータ数を検出し、これを予め決められた所定値と比較することによって、第１，第２の比較結果２０１，２０２を生成する。第１の比較結果２０１はバッファ１２へデータを書き込めるか否かを示し、第２の比較結果２０２はバッファ１２からデータを読み出せるか否かを示している。なお、比較の方法についは上述した第１実施形態と同様であり、第１実施形態のリードアドレス１０９を第２実施形態のＡアドレス２００に、第１実施形態のＡアドレス２００を第２実施形態のライトアドレス６０９に置き換えればよい。
【００５４】
次に、フリップフロップ２３は、第２の比較タイミング信号１１１を第２のクロック信号１０１でラッチすることにより、第１のクロック信号１００に同期している第２の比較タイミング信号１１１を第２のクロック信号１０１に同期化させて、第３の比較タイミング信号２０３を生成する。
【００５５】
ところで、Ａアドレス２００とライトアドレス６０９は各々第１，第２のクロック信号１００，１０１に同期しているので、第１実施形態と同様に第１，第２の比較結果２０１，２０２には、不安定になるタイミングが存在する。このため、両アドレスの値が安定しているタイミングにおける比較結果を得るためＢレジスタ２４とＣレジスタ２５が設けられている。Ｂレジスタ２４には、第１の比較結果２０１と第３の比較タイミング信号２０３が供給され、第３の比較タイミング信号２０３が有効な時（この例ではハイレベル）、第２のクロック信号１０１の立ち上がりエッジで第１の比較結果２０１を伝搬して、書込許可信号６１２を生成する。一方、Ｃレジスタ２５には、第２の比較結果２０２と第３の比較タイミング信号２０３が供給され、第３の比較タイミング信号２０３が有効な時（この例ではハイレベル）、第２のクロック信号１０１の立ち上がりエッジで第２の比較結果２０２を伝搬して、読出許可信号６１３を生成する。これにより、書込許可信号６１２と読出許可信号６１３を安定したものとすることができる。
【００５６】
このように、第２実施形態によれば、第１のクロック信号１００と第２のクロック信号１０１の間に周期上の制約はなく、簡易な構成によって、第１の回路１０に対して安定な読出要求信号６１４を第１のクロック信号１００に同期して送出することができる。また、第２の回路１１に対して安定な書込許可信号６１２を第２のクロック信号１０１に同期して送出することができる。
【００５７】
また、バッファ１２に対してバーストライト動作およびバーストリード動作を行うことができ、しかもバッファ１２の蓄積データ数を適切に監視することにより、バッファが完全に空の状態になるのを待たずに書込動作を開始でき、また、それが完全に満杯の状態になるのを待たずに読出動作を開始することができる。この結果、第１，第２の回路１０，１１の間で高速のデータ転送を実現することが可能となる。
【００５８】
Ｃ．変形例
以上、本発明に係わる実施形態を説明したが、本発明は上述した実施形態に限定されるものではなく、以下に述べる各種の変形が可能である。
▲１▼上述した各実施形態において、アドレス比較タイミング生成回路１７からは必ずしも第１の比較タイミング信号１１０と第２の比較タイミング信号１１１の両方が必要というわけではない。これらの信号は互いに反転しているだけであるから、どちらかの有効となるレベルを反対にすれば１つの信号に両方の意味合いを持たせることができる。
【００５９】
▲２▼上述した各実施形態のインターフェース回路１，２は、コンピュータシステムに用いることもできる。図１０は、インターフェース回路１，２を利用したコンピュータシステムのブロック図である。図において、第１の回路１０は、ＰＣＩバスを介してＣＰＵとの間でデータＤの授受を行う。この場合のデータ伝送は、ＰＣＩバスのバースト転送モードを用いて実行してもよい。第１の回路１０と第２の回路１１との間には、上述したインターフェース回路１，２が設けられており、非同期で動作する第１，第２の回路１０，１１間でデータ処理が行われるようになっている。この場合、インターフェース回路１，２は、高速でデータ転送を行うことができるので、処理能力の高いコンピュータシステムを構築するこｔができる。
【００６０】
▲３▼上述した各実施形態においては、アドレス比較回路１９において、第１の比較結果２０１と第２の比較結果２０２のうち、ライトアドレス１０５とリードアドレス１０９とが同時に確定するタイミング（図５中の点線のタイミング）における比較結果をＢレジスタ２４とＣレジスタ２５で抽出するように構成した。
この場合、同時に確定するタイミングは、第１のクロック信号１００に基づいて生成される第２の比較タイミング信号１１１を第２のクロック信号１０１で同期化した第３の比較タイミング信号２０３と、第２のクロック信号１０１によって特定したが、他の方法によって、当該タイミングを生成するようにしてもよい。  すなわち、上述した実施形態のようにライトアドレス１０５が第１のクロック信号１００に同期し、リードアドレス１０９が第２のクロック信号１０１に同期する場合には、両アドレスの変化タイミングは第１，第２のクロック信号１００，１０１に依存するから、第１，第２のクロック信号１００，１０１に基づいてライトアドレス１０５とリードアドレス１０９が同時に確定するタイミングを検出するように構成してもよい。
【００６１】
▲４▼また、上述した各実施形態の比較回路２２は、リードアドレス１０９とライトアドレス１０５（Ａアドレス２００）を比較して蓄積データ数を検出する蓄積データ数検出手段と、蓄積データ数とリード設定値を比較する第１の比較手段、蓄積データ数とライト設定値を比較する第２の比較手段として把握してもよい。また、Ｂレジスタ２４は、第１の比較手段の比較結果を第２のクロック信号１０１に同期化させる手段と、Ｃレジスタ２５は第２の比較手段の比較結果を第１のクロック信号１００に同期化させる手段として各々把握してもよいことは勿論である。
また、蓄積データ数検出手段は、アドレスが同時に確定するタイミングにおいてのみ蓄積データ数を検出するようにしてもよい。また、第１，第２の比較手段は、アドレスが同時に確定するタイミングにおいてのみ比較動作を行うようにしてもよい。要は、アドレスが同時に確定するタイミングにおけるライトアドレス１０５とリードアドレス１０９に基づいて第１，第２の回路１０，１１の書込読出動作を制御するのであればどのようなものであってもよい。
【００６２】
【発明の効果】
上述したように本発明に係る発明特定事項によれば、アドレスが同時に確定するタイミングにおける読出アドレスと書込アドレスに基づいて第１の回路の書込動作と第２の回路の読出動作を制御するようにしたので、非同期で動作する二つの回路に使用されるクロック周期に制約がなく、簡易な回路構成で高速のデータ伝送が可能なインターフェース回路を提供することができる。
【図面の簡単な説明】
【図１】  本発明に係わるインターフェース回路を用いた第１実施形態のデータ伝送システムの回路図である。
【図２】  同実施形態に係わるアドレス比較回路の回路図である。
【図３】  同実施形態において、第１の回路からバッファへライトデータを書き込む際のタイミングの一例を示すタイミングチャートである。
【図４】  同実施形態において、第２の回路がバッファからリードデータを読み出すタイミングの一例を示すタイミングチャートである。
【図５】  同実施形態において、アドレス比較の動作タイミングの一例を示すタイミングチャートである。
【図６】  同実施形態において、リード設定値を「３」とした場合の第１の比較結果を求めるための真理値表を示す図である。
【図７】  同実施形態において、ライト設定値を「２２」とした場合の第２の比較結果を求めるための真理値表を示す図である。
【図８】  第２実施形態に係わるインターフェース回路を用いたデータ伝送システムの回路図である。
【図９】  同実施形態に係わるアドレス比較回路の回路図である。
【図１０】  第１，第２同実施形態に係わるインターフェース回路を用いたコンピュータシステムの構成例を示すブロック図である。
【符号の説明】
１，２…インターフェース回路
１０…第１の回路
１１…第２の回路
１２…バッファ（記憶手段）
１４…ＷＲアドレスカウンタ（書込アドレス生成手段）
１６…ＲＤアドレスカウンタ（読出アドレス生成手段）
１７…アドレス比較タイミング生成回路（タイミング検出手段）
２２…比較回路（蓄積データ数検出手段、比較手段）
２４…Ｂレジスタ（読出制御手段）
２５…Ｃレジスタ（書込制御手段）
１９…アドレス比較回路（制御手段）
１００…第１のクロック信号
１０１…第２のクロック信号
１０３…ライトイネーブル信号
１０５…ライトアドレス（書込アドレス）
１０９…リードアドレス（読出アドレス）
１０７…リードイネーブル信号
１１４…書込要求信号（書込制御信号）
１１２…読出許可信号（読出制御信号）
【図１】
0003711730.tif 000002
【図２】
0003711730.tif 000003
【図３】
0003711730.tif 000004
【図４】
0003711730.tif 000005
【図５】
0003711730.tif 000006
【図６】
0003711730.tif 000007
【図７】
0003711730.tif 000008
【図８】
0003711730.tif 000009
【図９】
0003711730.tif 000010
【図１０】
0003711730.tif 000011