(57)【特許請求の範囲】
【請求項１】
(a) データを受け取る入力とデータを送出する出力を有する第１の単一段先入れ先出しメモリ装置と、
(b) 前記単一段先入れ先出しメモリ装置の前記出力に接続されてデータを受け取る入力及びデータを送出する出力を有し、単一多段先入れ先出しメモリを複数個有するメモリ手段と、
(c) 前記メモリ手段の前記出力に接続されてデータを受け取る入力及びデータを送出する出力を有する第２の単一段先入れ先出しメモリ装置と
を含んでなる同期装置。
【請求項２】
前記第１及び第２の先入れ先出しメモリ装置はそれぞれデータ記憶素子及び単一のクロックの間に前記データ記憶素子からデータを読出し及びそこへデータを書込むことができるようにする手段を有することを特徴とする請求項１記載の同期装置。
【請求項３】
前記読出し及び書込むことができるようにする手段は書込み信号及び読出し信号に応答して前記データ記憶素子の記憶状態を表す信号を生成する手段を含むことを特徴とする請求項２記載の同期装置。
【請求項４】
前記読出し及び書込むことができるようにする手段は前記読出し信号を前記データ記憶素子の記憶状態を表す信号と組み合わせる手段を含むことを特徴とする請求項３記載の同期装置。
【請求項５】
前記組み合わせる手段はＯＲゲートを含むことを特徴とする請求項４記載の同期装置。
【請求項６】
前記読出し及び書込むことができるようにする手段は書込み信号及び読出し信号に応答して前記データ記憶素子の記憶状態を表す第２信号を生成する第２手段を含むことを特徴とする請求項２記載の同期装置。
【請求項７】
同期装置において使用される先入れ先出しメモリであって、
(a) データ記憶素子と、
(b) 前記データ記憶素子の記憶状態を表す信号を生成する第１信号生成回路と、
(c) 読出し信号を前記データ記憶素子の記憶状態を表す信号と組み合わせて、単一のクロックからの単一クロック・サイクルの間にまたこれに応答して前記メモリからの読出し及びそこへの書込みができるようにする信号を生成する第２信号生成回路と
を設けた先入れ先出しメモリ。
【請求項８】
前記第１信号生成回路によって生成された信号と相補的な信号を生成する信号生成回路を含むことを特徴とする請求項７記載の先入れ先出しメモリ。
【請求項９】
前記第２信号生成回路はＯＲゲートを含み、
前記ＯＲゲートは前記第１信号生成回路から与えられる第１入力と前記読出し信号によって与えられる第２入力を有することを特徴とする請求項７または８記載の先入れ先出しメモリ。
【発明の詳細な説明】
【０００１】
【産業上の利用分野】
本発明は、データ通信システムに関するものである。特に、本発明は、領域境界にまたがるデータ転送を同期させるシステム及び技法に関するものである。
【０００２】
ここでの、本発明の解説は、特定の用途に関する実施例に関連して行うが、本発明がそれに限定されるものではないという点を理解しておくべきである。当業者には、その範囲内における修正、用途、及び、実施例の追加、さらに、本発明が極めて有効な追加分野を認識するであろう。
【０００３】
【従来の技術】
多くのデータ通信用途において、領域境界にまたがるデジタル・データ転送が必要とされている。これに関して、領域とは、単一クロック信号によって動作するシステムである。従って、領域境界は、異なるクロック信号で動作する２つのシステムの間の境界である。境界にまたがるデータ転送は、同期が必要であり、従って、多少の問題が生じる。
【０００４】
領域境界にまたがる信頼に足るデータ転送を実現するための技法の１つは、「速度整合」と呼ばれている。速度整合には、先入れ先出し（ＦＩＦＯ）メモリへのデータの瞬時記憶、及び、送信システムと受信システムの間における制御ポインタの同期通信が必要とされる。ＦＩＦＯは、受信システムがデータを受け入れることが可能になるまでデータを保持するために、遅延バッファの働きをする。
【０００５】
多くのＦＩＦＯ設計については、当該技術において既知のところである。従来のリップルＦＩＦＯメモリの場合、データは、先入れ先出しフォーマットによってパイプライン・メモリに記憶され、ある所定の数のクロックの後で送り出されることになる。パイプラインＦＩＦＯのデータの記憶可能速度は、データの読み取り速度に制限される。この「フォール・スルー」遅延は、ＦＩＦＯの深さに等しい。従って、リップルＦＩＦＯは、フォール・スルー遅延が大きく、同期の問題を生じることになりがちである。
【０００６】
別のＦＩＦＯ設計では、データを書き込む書き込み側と、データを読み取る読み取り側が設けられる。このより一般的な設計の場合、メモリに送り込まれた、または、メモリから取り出されたデータ量の状況を掌握するために、各側においてポインタが使われる。データは、１クロック・サイクルが済むと、供給側から得られる。この設計は、フォール・スルー遅延を被ることが少ないが、同期問題は、残存する場合が多い。
【０００７】
いずれにせよ、こうした速度整合システムの場合、メモリのサイズつまり深さは重要な考慮事項である。Ｃｒａｎｄａｌｌ他が１９８９年１０月１０日に出願した、米国特許第４，８７３，７０３号”Ｓｙｎｃｈｒｏｎｉｚｉｎｇ  Ｓｙｓｔｅｍ”（同期システム）には、縦続接続される同期装置の数を選択することによって同期信頼度を考慮にいれた、特に有効な速度整合方式について記載がある。
【０００８】
境界にまたがる制御ポインタの同期通信は、同期時における危険を除去するため、１度に１ビットの変更しか生じないグレイ・コーディング方式によって実現する。この結果、フリップ・フロップは、各クロック・サイクル毎に、制御ポインタに関連した値を捉える同期装置の働きをする。しかし、クロック信号は、もとの信号とは異なる時間領域にあるので、フリップ・フロップのセット・アップ時間またはホールド時間の制限に違反することになり、フリップ・フロップが準安定状態になる可能性がある。ここでいっている、セット・アップ時間とはフリップ・フロップにクロック・パルスのトリガー・エッジを確認させるのに必要な時間である。
【０００９】
従って、引用特許では、グレイ・コード化制御ポインタを備えたＦＩＦＯメモリの利用が教示されており、読み取り側と書き込み側のいずれかにおけるフリップ・フロップの１つだけしか準安定状態になる可能性はない。二重同期方式による第２のフリップ・フロップを利用すると、準安定状態になる場合に、フリップ・フロップが安定状態になるための、１フル・クロック・サイクルが提供される。「準安定」という用語は、論理「０」と論理「１」の状態間でサンプリングすることによって生じるエラー出力を表わしている。これは、全て、故障の可能性を減らすのに役立つ。引用特許には、信頼性に関する同期要件を満たす一方で、不必要なホールド・オフを阻止するための、ＦＩＦＯの正確なサイズを決定する方法が教示されている。不必要なホールド・オフが生じるのは、データ・シンクとデータ・ソースの速度が一致し、データ・シンクとデータ・ソースのいずれかが、強制的にデータ転送を（瞬時ではあっても）待たされる場合である。
【００１０】
要するに、従来のシステムに関しては、３つの問題がある。第１に、ＦＩＦＯに対する入力セット・アップ時間は、クロック・スキュー、経路指定による容量性負荷（ＦＩＦＯのデータ段における）、ファンアウトによる容量性負荷、フリップ・フロップに固有のセット・アップ遅延、及び、パッド遅延に依存する。（セット・アップ時間は、クロックのトリガ・エッジが生じる前に、データが安定しなければならない時間量である。）これらの大部分は、設計、バッファ、及び、構成部品の選択によって制御することが可能である。しかし、ファンアウトによる容量性負荷は、通常、ＦＩＦＯのサイズの関数である。ＦＩＦＯが大きくなると、容量性負荷もそれだけ大きくなり、従って、要求されるセット・アップ時間要件もそれだけ増大する。
【００１１】
第２に、ＦＩＦＯからの出力遅延時間は、クロック・スキュー、経路指定による容量性負荷（ＦＩＦＯのデータ段における）、ファンアウトによる容量性負荷、及び、フリップ・フロップ、マルチプレクサ（またはトライステート・バス遅延）、及びパッドに固有のセット・アップ遅延に依存する。これらの大部分は、設計、バッファ、及び、構成部品の選択によって制御することが可能である。しかし、マルチプレクサまたはトライステート・バス負荷に固有の遅延は、ＦＩＦＯのサイズの関数である。従って、ＦＩＦＯが大きくなると、マルチプレクサを通る時の固有の遅延、あるいは、共用トライステート・バスの遅延もそれだけ長くなる。
【００１２】
第３に、ＦＩＦＯの総合動作速度は、通常、ＦＩＦＯの制御セクションにおける組み合わせ論理の伝搬遅延と組み合わせたパッド遅延に依存する。大きなＦＩＦＯの場合、この伝搬遅延は、システム全体の速度に対するかなりの制限になる。
【００１３】
【発明が解決しようとする課題】
従って、本発明の目的は、最小のエラーで、領域境界にまたがる同期データ転送を実施するため、さらに改良された当該技術のシステムを提供することにある。
【００１４】
【課題を解決するための手段】
本発明によれば、当該技術におけるこの課題に取り組んで、改良された多段式同期装置が提供される。本発明の同期装置には、データを記憶するための第１のメモリ手段と、前記第１のメモリ手段の出力に接続されて、データを記憶する第２のメモリ手段と、前記第２のメモリ手段の出力に接続されて、データを記憶するための第３のメモリ手段が備えられている。第２のメモリ手段には、複数の多段式先入れ先出しメモリ装置が備えられている。特定の実施例の場合、先入れ先出しメモリは、単一段の先入れ先出しメモリによって実装される。好適実施例の場合、先入れ先出しメモリは、メモリが充填された後の単一クロック・サイクルの間に、データの読み取り及び書き込みを可能にするように設計されている。これは、当該装置によって発生する「非満杯」信号に外部読み取り信号を追加することによって行われる。
【００１５】
多段ＦＩＦＯメモリの各側に単一段ＦＩＦＯメモリを設けることによって、より早い動作速度で、セット・アップ時間及び出力遅延を短縮することが可能になる。
【００１６】
【実施例】
次に、本発明の有利な教示を開示するため、添付の図面に関連して、例示の実施態様及び典型的な応用例の解説を行うことにする。
【００１７】
上述のように、米国特許第４，８７３，７０３号には、縦続接続される同期装置の数を選択することによって同期の信頼度を考慮にいれた、特に有利な速度整合方式が解説されている。当該システムでは、Ｎワードの多段ＦＩＦＯを利用して、独立した時間領域内で動作する２つの非相関システムの間におけるデータ通信の同期を行う。
【００１８】
本教示によれば、Ｎワード多段ＦＩＦＯの代わりに、２つの単一段ＦＩＦＯと、Ｎ−２段の多段ＦＩＦＯから成る構成が用いられる。図１ａは、本発明の改良されたＮワードＦＩＦＯに接続される信号を表わした概略ブロック図である。図１ｂは、本発明の改良された多段ＦＩＦＯ設計を表わした略ブロック図である。改良されたＦＩＦＯ１０は、縦続接続された、第１と第２の単一段同期ＦＩＦＯ１２及び１６と、Ｎ−２段の多段非同期ＦＩＦＯ１４によって実装される。本好適実施例では、第１と第２の単一段ＦＩＦＯは、さらに詳細に後述するように構成される。多段ＦＩＦＯ１４は、Ｃｒａｎｄａｌｌ他に対する上述の特許の教示に基づいて実現される。
【００１９】
２つの非相関クロック（Ａ及びＢ）が、各ＦＩＦＯのポインタをリセットするリセット(ｎＲＥＳＥＴ）信号と共に、システム１０に加えられる。送信システム（図示せず）によって、第１のＦＩＦＯ１２にデータが加えられる。次に、送信システムによって、そのクロック（例えば、クロックＡ）に対してセット・アップされる書き込み信号が加えられる。書き込み信号がアサートされると、当該クロック信号の次の立ち上がりエッジにおいて、ＤＡＴＡＩＮバスのデータが、ＦＩＦＯによって捕捉される。各ＦＩＦＯメモリは、あるＦＩＦＯの「非空」（ｎＥＭＰＴＹ）信号を後続のＦＩＦＯの書き込み端子に接続し、「非満杯」（ｎＦＵＬＬ）信号を先行ＦＩＦＯの読み取り端子に接続し、当該ＦＩＦＯのデータ出力端子（ＤＡＴＡＯＵＴ）を後続のＦＩＦＯのデータ入力端子（ＤＡＴＡＩＮ）に接続することによって、縦続接続される。受信システム（図示せず）は、読み取り信号をアサートし、そのデータ出力端子からデータを読み取ることによって、第２の単一段ＦＩＦＯ１６からデータを読み取る。データは、１つのクロック・パルスで書き込まれ、次のクロック・パルスで転送される。
【００２０】
図２は、本発明の改良型同期装置の動作を示すタイミング図である。データ転送は、クロック・パルスの立ち上がりエッジで起こる。ＤＡＴＡＡＢは、第１のＦＩＦＯ１２から第２のＦＩＦＯ１４へのデータ転送を表わしている。ＤＡＴＡＢＣは、第２のＦＩＦＯ１４から第３のＦＩＦＯ１６へのデータ転送を表わしている。ＤＡＶＡＢは、データが第１のＦＩＦＯ１２から第２のＦＩＦＯ１４に対して有効であることを意味している。同様に、ＤＡＶＢＣは、データが第２のＦＩＦＯ１４から第３のＦＩＦＯ１６に対して有効であることを意味している。ＲＦＤ表示は、データの準備が整った状態を表わしている。この信号は、図１ｂに示すＦＩＦＯ間のライン上に示されている。
【００２１】
動作時、書き込み信号がアサートされる（ハイになる）と、データは、ＤＡＴＡＩＮラインに与えられ、次のクロック・パルスの立ち上がりエッジにおいて、第１のデータ・パケットＤＡＴＡ０が、第１のＦＩＦＯ１２によって捕捉される。これは、書き込み信号上の点及びＤＡＴＡＩＮライン上のアスタリスク（＊）によって表示される。この第１のデータ・パケットも、同時に、第２のＦＩＦＯ１４に対して有効になるので、ＤＡＶＡＢ信号及びｎＥＭＰＴＹ信号がハイになるという点に留意されたい。この有利な高速でロー・ホールド・オフな動作モードは、さらに詳細に後述することになる、独特な単一段ＦＩＦＯ設計によって可能になる。
【００２２】
次のクロック・パルスの立ち上がりエッジにおいて、次のデータ・パケット（ＤＡＴＡ１）は、第１のメモリ１２によって捕捉され、第１のデータ・パケット（ＤＡＴＡ０）は、第１のＦＩＦＯ１２から第２のＦＩＦＯ１４に転送され、以下同様に動作する。本発明のＦＩＦＯ１０は、３つのＦＩＦＯによって実装されるので、データが通過するのに３クロック・サイクルが必要になることに注意されたい。
【００２３】
次のクロックの立ち上がりエッジにおいて、受信システムによって、読み取り信号がアサートされた後、データが有効であれば、第３のＦＩＦＯ１６のデータ出力端子から出力データが読み取られる。
【００２４】
図３ａは、本発明の改良された単一段ＦＩＦＯに接続される信号を表わしたブロック図である。図３ｂは、本発明の改良された単一段ＦＩＦＯの概略図である。実際には、本発明の有利な動作は、単一段ＦＩＦＯの代わりに、２段ＦＩＦＯを用いることによって実現することができる。しかし、性能は、第１と第２のＦＩＦＯのサイズが増すにつれて、低下する可能性がある。単一段ＦＩＦＯ１２及び１６には、それぞれ、データ入力ライン（ＤＡＴＡＩＮ）及び出力ライン（ＤＡＴＡＯＵＴ）に接続された１ワード・レジスタ２０、ｎＦＵＬＬ信号を発生するための第１の回路２２、及び、ｎＥＭＰＴＹ信号を発生するための第２の回路２３が備えられている。当業者には明らかなように、第１のＦＩＦＯが「ｎ」段ＦＩＦＯとして実装される従来のシステムの場合、レジスタ２０は、「ｎ」段レジスタである。単一段ＦＩＦＯの代わりに多段ＦＩＦＯを用いると、ファンアウトによるさらに大きい容量が生じる可能性がある。送信システムからの書き込み信号は、第１の回路２２における第１のＮＡＮＤゲート２４によって受信され、このゲートには、さらに詳細に後述することになる方法で発生するｎＦＵＬＬ信号が加えられる第２の入力が設けられている。ＮＡＮＤゲートの出力は、１ワード・レジスタ２０にロード信号を供給する。ＮＡＮＤゲートの出力は、又、第１の排他的ＯＲ（ＸＯＲ）ゲート２６にも入力される。第１のＸＯＲゲート２６の出力は、Ｄフリップ・フロップ２８のＤ入力とに供給され、当該フリップ・フロップのＱバーの出力は、送り返されて、第１のＸＯＲゲート２６の第２の入力として供給される。当業者は、このＸＯＲ  Ｄフリップ・フロップの組み合わせを従来のＴフロップとして認識するであろう。フリップ・フロップ２８のＱ出力は、排他的ＮＯＲ（ＸＮＯＲ）ゲート３０に第１の入力を供給する。ＸＮＯＲゲート３０に対する第２の入力は、第２の回路２３の一部をなす第２のＤフリップ・フロップ３８のＱ出力によって供給される。
【００２５】
第２の回路２３は、そこへの第１の入力として、受信システムから読み取り信号を受信する第２のＮＡＮＤゲート３４を備える。第２のＮＡＮＤゲート３４に対する第２の入力は、さらに詳細に後述するやり方で、ｎＥＭＰＴＹ信号によって与えられる。第２のＮＡＮＤゲート３４の出力は、第２の排他的ＯＲゲート３６に第１の入力を加え、該ゲート３６は、さらに、第２のＤフリップ・フロップ３８に対してＤ入力を与える。第１と第２のフリップ・フロップ２８及び３８のＱ出力は、それぞれ、ＸＮＯＲゲート３０及び第３のＸＯＲゲート４０に対して第１と第２の入力を与える。第３のＸＯＲゲート４０は、ｎＥＭＰＴＹ信号を供給する。ＸＮＯＲゲート３０の出力及び読み取り信号は、ＯＲゲート３２に入力され、その出力は、ｎＦＵＬＬ信号を送り出す。
【００２６】
動作時、リセット信号が供給されて、データに対するポインタの働きをする、第１と第２のフリップ・フロップ２８及び３８がリセットされる。書き込み信号が、送信システムによって供給される。ゆえに、レジスタ２０が空のため、ｎＦＵＬＬ信号はハイになり、ＮＡＮＤゲート２４の出力はローになる。この結果、レジスタ２０は、次のクロック・パルスの立ち上がりエッジにおいてデータをロードすることが可能になる。加えて、第１のＸＯＲゲート２６によって、第１のＮＡＮＤゲート２４のローの出力と第１のフリップ・フロップ２８のハイのＱバー出力が組み合わせられる。これによって、第１のＸＯＲゲート２６の出力は、ハイになり、第１のフリップ・フロップ２８がトリガされて、レジスタ２０においてデータが有効であることを示す書き込みポインタが与えられる。
【００２７】
読み取り側における動作は、本質的には同様で、第２のフリップ・フロップ３８が読み取りポインタを提供する。２つのポインタの出力は、第３のＸＯＲゲート４０によって比較される。これらのポインタが同じならば、第３のＸＯＲゲート４０の出力はローになり、レジスタ２０が空であることを示す。ポインタが等しくなければ、第３のＸＯＲゲート４０の出力はハイになり、レジスタ２０が空でないことを示す。
【００２８】
同様の比較が、ＸＮＯＲゲート３０によって行われる。ＸＮＯＲゲートの反転出力は、本質的に、読み取りポインタに「１」を加えることができるようにする。（同様に、ＦＩＦＯ１２、１６が２段ＦＩＦＯとして実施される場合は、「２」が加えられる。）読み取り信号と２つのポインタの比較の補数を組み合わせることによって、ＦＩＦＯ１２、１６は、受信システムが読み取りを行おうとしている場合、次のサイクルにおける書き込みを可能にする。この結果、単一段ＦＩＦＯは、不必要なホールド・オフを伴わずに機能するので、それを利用することによって、システムの性能を向上させることが可能になる。
【００２９】
図４は、本発明の有利なＦＩＦＯ設計の働きを示すタイミング図である。ここでも、全ての変化は、クロックの立ち上がりエッジに関連して起こり、アスタリスク（＊）は、実際にワードが記憶されるのを表わしている。
【００３０】
書き込み信号がアサートされ、データがデータ入力バスに送り出されると、データは次のクロック・パルスにおいて、ＦＩＦＯによって捕捉され、レジスタ２０に記憶される。この時点で、ｎＥＭＰＴＹ信号はハイになり、ｎＦＵＬＬ信号はローになる。もしここで、読み取り信号がアサートされるならば、ｎＦＵＬＬ信号は、非同期的にハイになり、次のクロック・パルスにおいて、データが読み取られる限りは、たとえ次のクロック・パルスでデータが書き込まれる時でも、データを出力することが可能になる。上述のように、本ＦＩＦＯ設計の独特で有利な特徴は、読み取り信号を非満杯を示す信号と組み合わせることによって得られる。その後は、ｎＦＵＬＬ信号は、ハイ状態に戻り、動作は続行される。
【００３１】
このように、特定の用途における特定の実施例に関連した、本発明を開示してきた。当業者は、その範囲内における修正、用途、及び、実施例の追加が明らかであることは容易に認識できよう。従って、本発明の請求の範囲は、本発明の範囲内におけるこうした任意の、及び、全ての用途、修正、及び、実施例を包含するものである。
【００３２】
【発明の効果】
以上のように、本発明を用いると、エラーを減少させ、領域境界にまたがる同期データ転送を実施するための、改良されたＦＩＦＯシステムを提供することができる。
【図面の簡単な説明】
【図１ａ】本発明の改良型ＮワードＦＩＦＯに接続される信号を表わしたブロック図である。
【図１ｂ】本発明の改良型多段ＦＩＦＯ設計を表わした概略ブロック図である。
【図２】本発明の改良型多段ＦＩＦＯの動作を表わしたタイミング図である。
【図３ａ】本発明の改良型単一段ＦＩＦＯに接続される信号を表わしたブロック図である。
【図３ｂ】本発明の改良型単一段ＦＩＦＯの概略ブロック図である。
【図４】本発明の有利な単一段ＦＩＦＯ設計の働きを示すタイミング図である。
【符号の説明】
１０：改良型ＦＩＦＯ
１２：第１のＦＩＦＯ
１４：第２のＦＩＦＯ
１６：第３のＦＩＦＯ
【図１ａ】
0003645584.tif 000002
【図３ａ】
0003645584.tif 000003
【図１ｂ】
0003645584.tif 000004
【図２】
0003645584.tif 000005
【図３ｂ】
0003645584.tif 000006
【図４】
0003645584.tif 000007