(57)【要約】【課題】  非同期転送でありながら、レイテンシーの少ない転送を実現可能な非同期信号転送システムを提供する。【解決手段】  基準タイミング生成部１１，２１は基準クロックＣ０を基にして送信制御レジスタ１４，２４及び受信制御レジスタ１５，２５から値を読出す基点となるタイミングを生成する。送信制御レジスタ１４，２４はモジュール（ＭＨ）１及びモジュール（ＭＬ）２がドライブする信号のタイミングを規定し、受信制御レジスタ１５，２５は他方のモジュールがドライブする信号を自モジュールがサンプリングできるタイミングを規定する。送信制御部１２，２２は自モジュールがドライブする信号を送信制御レジスタ１４，２４の値にしたがって制御し、受信制御部１３，２３は自モジュールがサンプリングする信号を受信制御レジスタ１５，２５の値にしたがって制御している。【選択図】      図１
2006173689.tif 000002
【特許請求の範囲】
【請求項１】
非同期クロックで動作する非同期信号転送装置間の信号転送を行う非同期信号転送システムであって、
前記非同期信号転送装置は、前記信号の授受を行う相手装置のクロックと自装置のクロックとの最大公約数の周波数を持つ基準クロックとのタイミングを基に前記信号の生成タイミングを発生させる基準タイミング生成手段と、前記信号の送信タイミングを規定する送信制御レジスタと、前記信号の受信タイミングを規定する受信制御レジスタと、自装置にてドライブする信号のタイミングを前記基準クロックと前記送信制御レジスタの値とに基づいて制御する送信制御手段と、自装置にてサンプリングする信号のタイミングを前記基準クロックと前記受信制御レジスタの値とに基づいて制御する受信制御手段とを有することを特徴とする非同期信号転送システム。
【請求項２】
前記基準タイミング生成手段は、前記基準クロックを基に前記送信制御レジスタ及び前記受信制御レジスタから値を読出す基点となるタイミングを生成することを特徴とする請求項１記載の非同期信号転送システム。
【請求項３】
前記非同期信号転送装置は、自装置が前のクロックでドライブした信号を引き続きドライブするタイミングを規定するホールド・タイミング・レジスタを含み、
前記送信制御手段は、前記ホールド・タイミング・レジスタの値にしたがって前のクロックでドライブした信号を引き続きドライブすることを特徴とする請求項１または請求項２記載の非同期信号転送システム。
【請求項４】
他装置と非同期のクロックで動作しかつ前記他装置との間の信号転送を行う非同期信号転送装置であって、
前記信号の授受を行う相手装置のクロックと自装置のクロックとの最大公約数の周波数を持つ基準クロックとのタイミングを基に前記信号の生成タイミングを発生させる基準タイミング生成手段と、前記信号の送信タイミングを規定する送信制御レジスタと、前記信号の受信タイミングを規定する受信制御レジスタと、自装置にてドライブする信号のタイミングを前記基準クロックと前記送信制御レジスタの値とに基づいて制御する送信制御手段と、自装置にてサンプリングする信号のタイミングを前記基準クロックと前記受信制御レジスタの値とに基づいて制御する受信制御手段とを有することを特徴とする非同期信号転送装置。
【請求項５】
前記基準タイミング生成手段は、前記基準クロックを基に前記送信制御レジスタ及び前記受信制御レジスタから値を読出す基点となるタイミングを生成することを特徴とする請求項４記載の非同期信号転送装置。
【請求項６】
自装置が前のクロックでドライブした信号を引き続きドライブするタイミングを規定するホールド・タイミング・レジスタを含み、
前記送信制御手段は、前記ホールド・タイミング・レジスタの値にしたがって前のクロックでドライブした信号を引き続きドライブすることを特徴とする請求項４または請求項５記載の非同期信号転送装置。
【請求項７】
非同期クロックで動作する非同期信号転送装置間の信号転送を行う非同期信号転送方法であって、
前記非同期信号転送装置が、前記信号の授受を行う相手装置のクロックと自装置のクロックとの最大公約数の周波数を持つ基準クロックとのタイミングを基に基準タイミング生成手段で前記信号の生成タイミングを発生させる処理と、自装置にてドライブする信号のタイミングを前記基準クロックと前記信号の送信タイミングを規定する送信制御レジスタとの値とに基づいて送信制御手段にて制御する処理と、自装置にてサンプリングする信号のタイミングを前記基準クロックと前記信号の受信タイミングを規定する受信制御レジスタの値とに基づいて受信制御手段にて制御する処理とを実行することを特徴とする非同期信号転送方法。
【請求項８】
前記基準タイミング生成手段が、前記基準クロックを基に前記送信制御レジスタ及び前記受信制御レジスタから値を読出す基点となるタイミングを生成することを特徴とする請求項７記載の非同期信号転送方法。
【請求項９】
前記非同期信号転送装置が、自装置が前のクロックでドライブした信号を引き続きドライブするタイミングを規定するホールド・タイミング・レジスタの値にしたがって前のクロックでドライブした信号を引き続きドライブすることを特徴とする請求項７または請求項６記載の非同期信号転送方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は非同期信号転送システム、非同期信号転送装置及びそれらに用いる非同期信号転送方法に関し、特に非同期信号を同期化する同期化方法に関する。
【背景技術】
【０００２】
従来、非同期信号の同期化方法としては、一般的に、二段同期が用いられており、その二段同期を改善するものが提案されている（例えば、特許文献１参照）。この特許文献１に記載の方法では、同期化前後のクロックのタイミング（ズレ）によって、信号の受け側が同期化された信号を引き取るタイミングが変わってくる。タイミングのずれは、特に二重化されたモジュールのロック・ステップ動作を保障するフォールト・トレラント・コンピュータにおいては致命傷となる。
【０００３】
また、非同期信号の同期化の他の方法としては、複数の非同期信号を効率よく転送する方法が提案されている（例えば、特許文献２，３参照）。これら特許文献２，３記載の同期化信号の転送方法では、転送する信号が有効か無効かを知る必要があり、有効、無効を示す信号に対しては上記の特許文献１に示すような同期化処理で行われる。
【０００４】
例えば、データ転送を行う際に、同期化回路を削減するためにデータをバッファリングしていても、そのデータが引き取り可能かどうかを示す信号は同期化処理が行われるために、タイミングは不定である。
【０００５】
上記の特許文献２に記載の方法においては、ぶつかり制御部において、２つの制御クロック系の信号を同期化処理して比較しているため、それぞれの同期化信号の値によって結果が異なり、データが転送されるタイミングが両制御系において一定ではない。
【０００６】
上記の特許文献３に記載の方法でも、上記の特許文献２に記載の方法と同様に、同期化回路において、両系の信号の同期化処理をしているため、転送タイミングが不定となる。また、同期化処理には、非同期信号を、例えば二段でサンプリングし直すため、どんな場合においても、信号の受け側のクロックで２クロック以上の遅延が生じる。
【０００７】
このような従来の方法では、決まったタイミングによって信号の授受ができないので、非同期回路が入ったモジュールが二重化されたシステム等において、それぞれの非同期モジュールで何らかのリクエストに対するレスポンスは、決まった時間に返ってこないため、二重化システムの完全なロック・ステップ動作を保障することができない。
【０００８】
【特許文献１】特開平３−２０２９１０号公報
【特許文献２】特開平８−７７１２５号公報
【特許文献３】特開平１１−３３８８２１号公報
【発明の開示】
【発明が解決しようとする課題】
【０００９】
上述した従来の非同期信号の同期化方法では、上記の特許文献１〜３のいずれの同期化信号の転送方法においても、受け取る信号が、あるタイミングで有効か無効かを知る必要がある。例えば、データ転送を行う場合、データをバッファリングしていても、そのデータが引き取り可能かどうかを示す信号のタイミングは不定である。
【００１０】
特許文献２に記載の方法の場合には、ぶつかり制御部において、２つの制御クロック系の信号を同期化して比較しているため、それぞれの同期化信号の値によって結果が異なり、データが転送されるタイミング異なってくる。
【００１１】
特許文献３に記載の方法の場合には、特許文献２に記載の方法の場合と同様に、同期化回路において、両系の信号を同期化しているため、転送タイミングが不定となる。
【００１２】
上記のように、信号授受のタイミングが不定になるような同期化方法では、特にフォールト・トレラント・コンピュータのように、二重化されたシステム間においてロック・ステップ動作を保障するシステムには向かない。
【００１３】
従来の方法では、二重化されたシステムにおいて、異なるクロックで動作するモジュールに対して何らかのリクエストを行った場合に、そのレスポンスは決まった時間に返ってこないので、完全なロック・ステップ動作を行うことができない。
【００１４】
そこで、本発明の目的は上記の問題点を解消し、非同期転送でありながら、レイテンシーの少ない転送を実現することができる非同期信号転送システム、非同期信号転送装置及びそれらに用いる非同期信号転送方法を提供することにある。
【課題を解決するための手段】
【００１５】
本発明による非同期信号転送システムは、非同期クロックで動作する非同期信号転送装置間の信号転送を行う非同期信号転送システムであって、
前記非同期信号転送装置は、前記信号の授受を行う相手装置のクロックと自装置のクロックとの最大公約数の周波数を持つ基準クロックとのタイミングを基に前記信号の生成タイミングを発生させる基準タイミング生成手段と、前記信号の送信タイミングを規定する送信制御レジスタと、前記信号の受信タイミングを規定する受信制御レジスタと、自装置にてドライブする信号のタイミングを前記基準クロックと前記送信制御レジスタの値とに基づいて制御する送信制御手段と、自装置にてサンプリングする信号のタイミングを前記基準クロックと前記受信制御レジスタの値とに基づいて制御する受信制御手段とを備えている。
【００１６】
本発明による非同期信号転送装置は、他装置と非同期のクロックで動作しかつ前記他装置との間の信号転送を行う非同期信号転送装置であって、
前記信号の授受を行う相手装置のクロックと自装置のクロックとの最大公約数の周波数を持つ基準クロックとのタイミングを基に前記信号の生成タイミングを発生させる基準タイミング生成手段と、前記信号の送信タイミングを規定する送信制御レジスタと、前記信号の受信タイミングを規定する受信制御レジスタと、自装置にてドライブする信号のタイミングを前記基準クロックと前記送信制御レジスタの値とに基づいて制御する送信制御手段と、自装置にてサンプリングする信号のタイミングを前記基準クロックと前記受信制御レジスタの値とに基づいて制御する受信制御手段とを備えている。
【００１７】
本発明による非同期信号転送方法は、非同期クロックで動作する非同期信号転送装置間の信号転送を行う非同期信号転送方法であって、
前記非同期信号転送装置が、前記信号の授受を行う相手装置のクロックと自装置のクロックとの最大公約数の周波数を持つ基準クロックとのタイミングを基に基準タイミング生成手段で前記信号の生成タイミングを発生させる処理と、自装置にてドライブする信号のタイミングを前記基準クロックと前記信号の送信タイミングを規定する送信制御レジスタとの値とに基づいて送信制御手段にて制御する処理と、自装置にてサンプリングする信号のタイミングを前記基準クロックと前記信号の受信タイミングを規定する受信制御レジスタの値とに基づいて受信制御手段にて制御する処理とを実行している。
【００１８】
すなわち、本発明の非同期信号転送システムは、クロック周波数が異なるモジュール間の信号授受において、非同期信号の転送時に発生するメタステーブルを避けて、ある決まったタイミングで信号を転送できるようにしたことを特徴としている。
【００１９】
より具体的に説明すると、本発明の非同期信号転送装置（モジュール）は、信号の授受を行う相手方のモジュールのクロックと、自クロックとの最大公約数の周波数を持つ基準クロックとのタイミングを基に、信号の生成タイミングを発生させる基準タイミング生成部と、信号の送信タイミングを規定する送信制御レジスタと、信号の受信タイミングを規定する受信制御レジスタと、モジュールがドライブする信号のタイミングを送信制御レジスタの値にしたがって制御する送信制御部と、モジュールがサンプリングする信号のタイミングを受信制御レジスタの値にしたがって制御する受信制御部とを有している。
【００２０】
ここで、自モジュールと相手方のモジュールとはそれぞれ異なるクロックＣＨ、クロックＣＬにそれぞれ同期して動作するモジュールである。つまり、自モジュールのクロックＣＨと相手方のモジュールのクロックＣＬとはそれぞれ周波数が異なるクロックで、クロックＣＨの周波数＞クロックＣＬの周波数の関係があり、クロックＣＨの方が速いクロックである。基準クロックＣ０はクロックＣＨとクロックＣＬとの最大公約数の周波数を持っている。
【００２１】
上記の基準タイミング生成部は基準クロックＣ０を元にして送信制御レジスタ及び受信制御レジスタから値を読出す基点となるタイミングを生成する。送信制御レジスタはモジュールがドライブする信号のタイミングを規定するレジスタである。送信制御レジスタは、例えば１ビットを１クロックに対応させた情報を保持しており、その情報は“１”がドライブ可能を、“０”がドライブ不可能をそれぞれ表している。
【００２２】
受信制御レジスタは相手方のモジュールがドライブする信号を自モジュールがサンプリングできるタイミングを規定するレジスタである。受信制御レジスタは、例えば１ビットを１クロックに対応させた情報を保持しており、その情報は“１”がサンプリング可能を、“０”がサンプリング不可能をそれぞれ表している。
【００２３】
送信制御部は自モジュールがドライブする信号を送信制御レジスタの値にしたがって制御する。受信制御部は自モジュールがサンプリングする信号を受信制御レジスタの値にしたがって制御する。
【００２４】
上記のように、本発明の非同期信号転送システムでは、２つの非同期モジュールが、同一の基準クロックをベースに信号をドライブ、あるいはサンプリングするタイミングを決定しており、互いのステートを把握可能なので、決まったタイミングで信号をドライブ、サンプリングすることによって、メタステーブルを避けた非同期転送が比較的容易に、非同期化によるオーバヘッドを抑えて実現することが可能となる。
【００２５】
非同期転送が常に決まったタイミングで行われるという特徴は、ロックステップ動作を保障する必要があるフォールト・トレラント・コンピュータ等で非常に有効である。また、本発明の非同期信号転送装置では、信号のドライブ・タイミング及びサンプリング・タイミングをレジスタで指定するので、２つのモジュールのクロック・スキューが予想と異なったような場合に、これらのタイミングを調整することが可能となる。
【００２６】
これによって、本発明の非同期信号転送装置では、メタステーブルを避けた決められたタイミングでドライブ及びサンプリングを行っているので、非同期転送でありながら、レイテンシーの少ない転送が実現可能となる。
【００２７】
また、本発明の非同期信号転送装置では、決められたタイミングで信号の授受をしているので、非同期回路が入ったモジュールでも、ロック・ステップ動作を保障する必要があるフォールト・トレラント・コンピュータで利用可能となる。
【００２８】
さらに、本発明の非同期信号転送装置では、信号授受のタイミングをレジスタのビット値によって示しているので、クロックのスキューがずれて想定していたタイミングでメタステーブルが発生するようなことがあっても、そのメタステーブルを容易に回避することが可能となる。
【発明の効果】
【００２９】
本発明は、以下に述べるような構成及び動作とすることで、非同期転送でありながら、レイテンシーの少ない転送を実現することができるという効果が得られる。
【発明を実施するための最良の形態】
【００３０】
次に、本発明の実施例について図面を参照して説明する。図１は本発明の一実施例による非同期信号転送システムの構成を示すブロック図である。図１において、本発明の一実施例による非同期信号転送システムはクロック周波数が異なる非同期信号転送装置であるモジュール（ＭＨ）１及びモジュール（ＭＬ）２から構成されている。
【００３１】
モジュール（ＭＨ）１及びモジュール（ＭＬ）２はそれぞれ基準タイミング生成部１１，２１と、送信制御部１２，２２と、受信制御部１３，２３と、送信制御レジスタ１４，２４と、受信制御レジスタ１５，２５とから構成されている。
【００３２】
基準タイミング生成部１１，２１は信号の授受を行う相手方のモジュールのクロックＣＬ，ＣＨと、自クロックＣＨ，ＣＬとの最大公約数の周波数を持つ基準クロックＣ０とのタイミングを基に、信号の生成タイミングを発生させる。送信制御レジスタ１４，２４は信号の送信タイミングを規定し、受信制御レジスタ１５，２５は信号の受信タイミングを規定する。
【００３３】
送信制御部１２，２２は自モジュールがドライブする信号のタイミングを送信制御レジスタ１４，２４の値にしたがって制御し、受信制御部１３，２３は自モジュールがサンプリングする信号のタイミングを受信制御レジスタ１５，２５の値にしたがって制御する。
【００３４】
図１において、クロックＣＨ、クロックＣＬはそれぞれ周波数が異なるクロック（例えば、クロックＣＨが２６６ＭＨｚで、クロックＣＬが２００ＭＨｚの場合）で、クロックＣＨの周波数＞クロックＣＬの周波数の関係がある。つまり、クロックＣＨの方が速いクロックである。基準クロックＣ０はクロックＣＨとクロックＣＬの最大公約数の周波数を持つ。モジュール（ＭＨ）１及びモジュール（ＭＬ）２はそれぞれ異なる周波数のクロックＣＨ、クロックＣＬに同期して動作するモジュールである。
【００３５】
基準タイミング生成部１１，２１は基準クロックＣ０を基にして送信制御レジスタ１４，２４及び受信制御レジスタ１５，２５から値を読出す基点となるタイミングを生成する。送信制御レジスタ１４，２４はモジュール（ＭＨ）１及びモジュール（ＭＬ）２がドライブする信号のタイミングを規定するレジスタである。送信制御レジスタ１４，２４には、例えば、１ビットを１クロックに対応させた情報が保持されており、その情報は“１”がドライブ可能を、“０”がドライブ不可能をそれぞれ表している。
【００３６】
受信制御レジスタ１５，２５は他方のモジュールがドライブする信号を自モジュールがサンプリングできるタイミングを規定するレジスタである。受信制御レジスタ１５，２５には、例えば、１ビットを１クロックに対応させた情報が保持されており、その情報は“１”がサンプリング可能、“０”がサンプリング不可能をそれぞれ表している。
【００３７】
送信制御部１２，２２は自モジュールがドライブする信号を送信制御レジスタ１４，２４の値にしたがって制御し、受信制御部１３，２３は自モジュールがサンプリングする信号を受信制御レジスタ１５，２５の値にしたがって制御している。
【００３８】
図２は図１のモジュール（ＭＬ）２の動作を示すタイムチャートであり、図３は図１のモジュール（ＭＨ）１の動作を示すタイムチャートである。これら図１〜図３を参照して、本発明の一実施例による信号授受の動作原理について説明する。
【００３９】
図２は２６６ＭＨｚで動作する信号を２００ＭＨｚで動作するモジュール（ＭＬ）２で受け取る場合の動作を示している。本実施例において、２６６Ｍｈｚの信号と２００ＭＨｚの信号とは、ある時点でクロックの立ち上がりエッジが一致する、すなわちスキューのない理想的な状態を想定している。
【００４０】
図２においては、２６６ＭＨｚ側が信号をドライブ開始できるタイミングを「○」で、ドライブできないタイミングを「×」でそれぞれ表している。「○」の中に数字の「２」があるものは、そのサイクルでドライブを開始した信号は２クロック間ドライブし続ける必要があることを表している。また、図２においては、２００ＭＨｚで信号をサンプリング可能なタイミングを「↑」で表している。
【００４１】
タイミングＴ０でドライブを開始された信号Ｄ０は、ｓ０でサンプリングされる。この時、２６６ＭＨｚでドライブする信号が１クロック間だと、ｓ０で取り込む前に変化してしまうので、２００ＭＨｚでサンプリングする際のセットアップ時間、ホールド時間を守るためには、タイミングＴ０，Ｔ１の２クロック間、ドライブしなければならない。
【００４２】
タイミングＴ２でドライブを開始した信号Ｄ１はｓ１で、タイミングＴ３でドライブを開始した信号Ｄ２はｓ２でそれぞれサンプリング可能である。タイミングＴ４以降は上記のタイミングＴ０〜Ｔ３のサイクルが繰り返される。したがって、２６６ＭＨｚのドライブ側のタイミングを制御することによって、２００ＭＨｚ側では同期信号と同様に扱うことができる。
【００４３】
図３は２００ＭＨｚで動作する信号を２６６ＭＨｚで動作するモジュール（ＭＨ）１で受け取る場合の動作を示している。図３では、ドライブ側、サンプリング側の周波数が違うだけで、記号の説明は上記の図２の場合と同様である。
【００４４】
この場合、ドライブ側はいつでも信号をドライブできる。タイミングｔ０でドライブを開始した信号Ｄ０はＳ０で、タイミングｔ１でドライブを開始した信号Ｄ１はＳ１でそれぞれサンプリングすることができる。
【００４５】
タイミングｔ２でドライブを開始した信号Ｄ２は、サンプリングのポイントが二箇所あるが、Ｓ２でサンプリングすることにする。タイミングｔ３以降でドライブされる信号は、上記のタイミングｔ０〜ｔ２のサイクルと同様である。
【００４６】
したがって、２６６ＭＨｚ側のサンプリング側のタイミングを制御することによって、２００ＭＨｚ側では信号をドライブするタイミングを意識することなく動作することができる。
【００４７】
つまり、図２及び図３に示す例の場合、２６６ＭＨｚ側のドライブ及びサンプリングのタイミングを制御することによって、２００ＭＨｚ側では同期回路と同じように信号を扱っている。
【００４８】
このように、本実施例では、２つの非同期モジュール［モジュール（ＭＨ）１及びモジュール（ＭＬ）２］が、同一の基準クロックＣ０をベースに信号をドライブ、あるいはサンプリングするタイミングを決定しており、互いのステートを把握することができるので、決まったタイミングで信号をドライブ、サンプリングすることによって、メタステーブルを避けた非同期転送を比較的容易に、かつ非同期化によるオーバヘッドを抑えて実現することができる。
【００４９】
この非同期転送が常に決まったタイミングで行われるという特徴は、ロックステップ動作を保障する必要があるフォールト・トレラント・コンピュータ等で非常に有効である。
【００５０】
また、本実施例では、信号のドライブ・タイミング及びサンプリング・タイミングを送信制御レジスタ１４，２４及び受信制御レジスタ１５，２５で指定するので、２つのモジュールのクロック・スキューが予想と異なったような場合に、これらのタイミングを調整することができる。
【００５１】
したがって、本実施例では、メタステーブルを避けた決められたタイミングでドライブ及びサンプリングを行っているので、非同期転送でありながら、レイテンシーの少ない転送を実現することができる。
【００５２】
また、本実施例では、決められたタイミングで信号の授受をしているので、非同期回路が入ったモジュールでも、ロック・ステップ動作を保障する必要があるフォールト・トレラント・コンピュータで利用することができる。
【００５３】
さらに、本実施例では、信号授受のタイミングを送信制御レジスタ１４，２４及び受信制御レジスタ１５，２５のビット値によって示しているので、クロックのスキューがずれて、想定していたタイミングでメタステーブルが発生するようなことがあっても、それを容易に回避することができる。
【００５４】
図４は本発明の他の実施例による非同期信号転送システムの構成を示すブロック図である。図４において、本発明の他の実施例による非同期信号転送システムは、非同期信号転送装置であるモジュール（ＭＨ）３及びモジュール（ＭＬ）４各々において、送信制御レジスタ１４，２４及び受信制御レジスタ１５，２５の代わりにドライブ・タイミング・レジスタ３１，４１、ホールド・タイミング・レジスタ３２、サンプリング・タイミング・レジスタ３３，４２を設けた以外は図１に示す本発明の一実施例と同様の構成となっており、同一構成要素には同一符号を付してある。また、同一構成要素の動作は上記の本発明の一実施例と同様である。
【００５５】
モジュール（ＭＨ）３及びモジュール（ＭＬ）４各々には、非同期のクロックＣＨ、クロックＣＬが入力されている。本実施例では、クロックＣＨを２６６ＭＨｚ、クロックＣＬを２００ＭＨｚとする。
【００５６】
モジュール（ＭＨ）３は基準タイミング生成部１１と、送信制御部１２と、受信制御部１３と、ドライブ・タイミング・レジスタ３１と、ホールド・タイミング・レジスタ３２と、サンプリング・タイミング・レジスタ３３とから構成されている。
【００５７】
基準タイミング生成部１１は信号の送受信タイミングの基準となるカウンタ（図示せず）を持ち、クロックＣＨに同期してカウント・アップする。そのカウンタ値は、信号の授受を行う相手方のモジュール（ＭＬ）４のクロックＣＬと、自クロックＣＨとの最大公約数の周波数６６ＭＨｚを持つ基準クロックＣ０のタイミングでリセットされる。
【００５８】
ドライブ・タイミング・レジスタ３１はモジュール（ＭＨ）３が信号をドライブ開始可能なタイミングを規定する。ホールド・タイミング・レジスタ３２はモジュール（ＭＨ）３が前のクロックでドライブした信号を引き続きドライブするタイミングを規定する。サンプリング・タイミング・レジスタ３３はモジュール（ＭＨ）３が信号を受信するタイミングを規定する。
【００５９】
送信制御部１２はモジュール（ＭＨ）３がドライブするリクエストＲＥＱとコマンドＣＭＤとを、ドライブ・タイミング・レジスタ３１及びホールド・タイミング・レジスタ３２各々の値にしたがって制御する。受信制御部１３はモジュール（ＭＨ）３がサンプリングするリクエスト許可信号ＲＥＱＯＫのタイミングをサンプリング・タイミング・レジスタ３３の値にしたがって制御する。
【００６０】
モジュール（ＭＬ）４は基準タイミング生成部２１と、送信制御部２２と、受信制御部２３と、ドライブ・タイミング・レジスタ４１と、サンプリング・タイミング・レジスタ４２とから構成されている。モジュール（ＭＬ）４内の各ブロックは、上述したモジュール（ＭＨ）３内の各ブロックと同様の動作を行う。
【００６１】
受信制御部２３はモジュール（ＭＨ）３がドライブするリクエストＲＥＱ、コマンドＣＭＤをサンプリングする。送信制御部２２はモジュール（ＭＨ）３に対してリクエスト許可信号ＲＥＱＯＫをドライブする。
【００６２】
図５は図４の基準タイミング生成部１１，２１の構成を示すブロック図である。図５において、基準タイミング生成部１１，２１はＤフリップ・フロップ（ＦＦ０）５１〜（ＦＦ３）５４と、排他的論理和ゲート（ＸＯＲ）５５と、カウンタ（ＣＮＴ）５６とから構成されている。
【００６３】
初段のＤフリップ・フロップ（ＦＦ０）５１は基準クロックＣ０の立ち上がりエッジで出力をトグルさせる。二段目のＤフリップ・フロップ（ＦＦ１）５２から４段目のＤフリップ・フロップ（ＦＦ３）５４は、前段のＤフリップ・フロップ（ＦＦ０）５１〜（ＦＦ２）５３の出力をクロックＣＸ（図４ではクロックＣＨまたはクロックＣＬ）でサンプリングする。
【００６４】
カウンタ（ＣＮＴ）５６はクロックＣＸに同期してカウント・アップし、三段目のＤフリップ・フロップ（ＦＦ２）５３の出力と、四段目のＤフリップ・フロップ（ＦＦ３）５４の出力との排他的論理和によってオール‘０’にクリアされる。
【００６５】
図６は本発明の他の実施例による非同期信号転送システムの動作を示すタイムチャートであり、図７は図５に示す基準タイミング生成部１１，２１の動作を示すタイムチャートである。これら図４〜図７を参照して本発明の他の実施例による非同期信号転送システムの動作について説明する。
【００６６】
まず、本実施例における非同期信号の仕様について説明する。２６６ＭＨｚのクロックＣＨで動作するモジュール（ＭＨ）３から、２００ＭＨｚのクロックＣＬで動作するモジュール（ＭＬ）４に対してコマンドＣＭＤを送信する。この時、モジュール（ＭＨ）３において有効なコマンドＣＭＤがドライブされている期間は、リクエストＲＥＱをＨｉｇｈで示す。
【００６７】
モジュール（ＭＬ）４がこのリクエストＲＥＱを受け付け可能である場合には、リクエスト許可信号ＲＥＱＯＫをＨｉｇｈにする。モジュール（ＭＨ）３はリクエスト許可ＲＥＱＯＫを、モジュール（ＭＬ）４はリクエストＲＥＱをそれぞれ監視し、両方の信号がＨｉｇｈの場合にコマンドＣＭＤが転送される。
【００６８】
モジュール（ＭＨ）３がモジュール（ＭＬ）４に対して、この仕様にしたがってリクエストＲＥＱを発行する動作について説明する。ドライブ・タイミング２０４、サンプリング・タイミング２０５、ホールド・タイミング２０６はそれぞれ４ビットの信号で、ドライブ・タイミング・レジスタ３１、サンプリング・タイミング・レジスタ３２、ホールド・タイミング・レジスタ３３にそれぞれ設定されており、本実施例では「１００１」、「００１１」、「００１０」となっている。
【００６９】
基準タイミング生成部１１はカウンタ２０１を生成している。ここで、基準タイミング生成部１１の動作を図５及び図７を参照して説明する。基準クロックＣ０はクロックＣＨとクロックＣＬとの最大公約数の周波数でトグルしている。クロックＣ０はＤフリップフロップ（ＦＦ０）５１のクロックへ入力され、その出力のクロックは基準クロックＣ０の立ち上がりエッジでトグルする。
【００７０】
Ｄフリップフロップ（ＦＦ１）５２〜（ＦＦ３）５４はモジュール（ＭＨ）３のクロックＣＨに同期して動作しており、Ｄフリップフロップ（ＦＦ０）５１で生成した信号を単純にサンプリングし直している。
【００７１】
Ｄフリップフロップ（ＦＦ１）５１，（ＦＦ２）５３は、モジュール（ＭＨ）３のクロックＣＨとは非同期信号となる基準クロックＣ０を二段同期している。Ｄフリップフロップ（ＦＦ３）５４は、同期化されたクロック２Ｄをさらにサンプリングし、この出力クロック３Ｄとクロック２Ｄとによって、一定の周期を持ったパルスを生成する。このパルスの周期は基準クロックＣ０の周期と同じであり、最終段のカウンタ５６を基準クロックＣ０の周期でリセットする。
【００７２】
カウンタ５６はリセットされない時に、クロックＣＨに同期してカウント・アップする。モジュール（ＭＨ）３及びモジュール（ＭＬ）４ともに、同様の仕組みで、カウンタ値２０１，３０１を生成しており、基準クロックＣ０の周期で両方のカウンタ値２０１，３０１はリセットされる。
【００７３】
図６において、ドライブ開始を示す信号はカウンタ値２０１が「０（ゼロ）」の時、ドライブ・タイミング２０４のビット０の値を出力し、以後、カウンタ値２０１が示すビットの値を順次出力する。ドライブ・タイミング２０４は「１００１」に設定されているので、カウンタ値２０１が「０」の時には「１」、「１」の時には「０」、「２」で「０」、「３」で「１」となる。この値が「１」の時に、モジュール（ＭＨ）３は出力信号のドライブを開始することができる。
【００７４】
上記と同様に、ドライブした信号をホールドするタイミングを示す信号は、カウンタ値２０１の値が示すホールド・タイミング２０６のビット値を出力し、カウンタ値２０１が「０」の時から、「０」、「１」、「０」、「０」となる。「１」の時には出力信号のドライブをホールドしなければならない。これらの制御は送信制御部１２で行う。サンプリング・タイミングを示す信号も、上記の動作と同様で、「１」の時に入力信号をサンプリングする。
【００７５】
モジュール（ＭＬ）４については、モジュール（ＭＨ）３と同様である。但し、モジュール（ＭＬ）４にはホールド・タイミング・レジスタがない。また、ドライブ・タイミング・レジスタ４１、サンプリング・タイミング・レジスタ４２は３ビットのレジスタである。
【００７６】
送信制御部１２ではモジュール（ＭＨ）３が発行したいリクエストが発生すると、ドライブ開始タイミングになるまで待ち、ドライブ開始タイミングになるとリクエストＲＥＱ、コマンドＣＭＤ＝「Ｃ０」をドライブする（図６のタイミングＴ３）。
【００７７】
受信制御部１３ではリクエスト許可ＲＥＱＯＫをサンプリング・タイミングで取込み、リクエスト許可ＲＥＱＯＫが「１」の時には、モジュール（ＭＬ）４がリクエストを受け付け可能であるので、リクエストＲＥＱをＤｅａｓｓｅｒｔする。タイミングＴ３ではホールドを示す信号が「０」なので、ここですぐにＤｅａｓｓｅｒｔすることができる。
【００７８】
次のリクエストＲＥＱは、タイミングＴ７でドライブされており、前回と同様に、リクエスト許可信号ＲＥＱＯＫが「１」なので、すぐにリクエストが転送される。この時、内部では次のリクエストが続けて発生している。タイミングＴ８ではドライブ開始が可能なので、リクエストＲＥＱをそのままドライブする。この時、ホールド信号が「１」であるので、タイミングＴ９でもドライブし続けなければならない。
【００７９】
次に、タイミングＴ９ではドライブ開始、ホールド信号共に「０」なので、タイミングＴ１０では一度有効な信号をＤｅａｓｓｅｒｔする。タイミングＴ１１では再びドライブ可能なので、リクエストＲＥＱをドライブし、サンプリング・タイミングでリクエスト許可ＲＥＱＯＫが「１」で、ホールド信号が「０」ならばリクエストＲＥＱをＤｅａｓｓｅｒｔする。
【００８０】
モジュール（ＭＬ）４ではリクエストＲＥＱが「１」であるのを見て、リクエスト許可ＲＥＱＯＫを一度Ｄｅａｓｓｅｒｔしている。再びリクエストを受け付けることができるようになると、ドライブ開始信号が「１」であるのを見て、リクエスト許可ＲＥＱＯＫをＡｓｓｅｒｔする（タイミングｔ５）。以降、上記の動作と同様に、リクエストＲＥＱとリクエスト許可信号ＲＥＱＯＫとが共に「１」の時にリクエストが転送される。
【００８１】
このように、本発明では、メタステーブルを避けた決められたタイミングでドライブ及びサンプリングを行っているので、非同期転送でありながら、レイテンシーの少ない転送を実現することができる。
【００８２】
また、本発明では、決められたタイミングで信号の授受をしているので、非同期回路が入ったモジュールでも、ロック・ステップ動作を保障する必要があるフォールト・トレラント・コンピュータで利用することができる。
【００８３】
さらに、本発明では、信号授受のタイミングをレジスタのビット値によって示しているので、クロックのスキューがずれて想定していたタイミングでメタステーブルが発生するようなことがあっても、それから容易に回避することができる。
【図面の簡単な説明】
【００８４】
【図１】本発明の一実施例による非同期信号転送システムの構成を示すブロック図である。
【図２】図１のモジュール（ＭＬ）の動作を示すタイムチャートである。
【図３】図１のモジュール（ＭＨ）の動作を示すタイムチャートである。
【図４】本発明の他の実施例による非同期信号転送システムの構成を示すブロック図である。
【図５】図４の基準タイミング生成部の構成を示すブロック図である。
【図６】本発明の他の実施例による非同期信号転送システムの動作を示すタイムチャートである。
【図７】図５に示す基準タイミング生成部の動作を示すタイムチャートである。
【符号の説明】
【００８５】
１，３  モジュール（ＭＨ）
２，４  モジュール（ＭＬ）
１１，２１  基準タイミング生成部
１２，２２  送信制御部
１３，２３  受信制御部
１４，２４  送信制御レジスタ
１５，２５  受信制御レジスタ
３１，４１  ドライブ・タイミング・レジスタ
３２  ホールド・タイミング・レジスタ
３３，４３  サンプリング・タイミング・レジスタ
５１  Ｄフリップ・フロップ（ＦＦ０）
５２  Ｄフリップ・フロップ（ＦＦ１）
５３  Ｄフリップ・フロップ（ＦＦ２）
５４  Ｄフリップ・フロップ（ＦＦ３）
５５  排他的論理和ゲート
５６  カウンタ
【図１】
2006173689.tif 000003
【図２】
2006173689.tif 000004
【図３】
2006173689.tif 000005
【図４】
2006173689.tif 000006
【図５】
2006173689.tif 000007
【図６】
2006173689.tif 000008
【図７】
2006173689.tif 000009