JP3712471B2 - コンピュータシステム及び第1の回路と第2の回路との間でデータを転送するインタフェース回路 - Google Patents

コンピュータシステム及び第1の回路と第2の回路との間でデータを転送するインタフェース回路 Download PDF

Info

Publication number
JP3712471B2
JP3712471B2 JP19416796A JP19416796A JP3712471B2 JP 3712471 B2 JP3712471 B2 JP 3712471B2 JP 19416796 A JP19416796 A JP 19416796A JP 19416796 A JP19416796 A JP 19416796A JP 3712471 B2 JP3712471 B2 JP 3712471B2
Authority
JP
Japan
Prior art keywords
buffer
circuit
fifo
clock
read
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 - Lifetime
Application number
JP19416796A
Other languages
English (en)
Other versions
JPH09222988A (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.)
Sun Microsystems Inc
Original Assignee
Sun Microsystems Inc
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 Sun Microsystems Inc filed Critical Sun Microsystems Inc
Publication of JPH09222988A publication Critical patent/JPH09222988A/ja
Application granted granted Critical
Publication of JP3712471B2 publication Critical patent/JP3712471B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F5/00Methods or arrangements for data conversion without changing the order or content of the data handled
    • G06F5/06Methods or arrangements for data conversion without changing the order or content of the data handled for changing the speed of data flow, i.e. speed regularising or timing, e.g. delay lines, FIFO buffers; over- or underrun control therefor
    • G06F5/10Methods or arrangements for data conversion without changing the order or content of the data handled for changing the speed of data flow, i.e. speed regularising or timing, e.g. delay lines, FIFO buffers; over- or underrun control therefor having a sequence of storage locations each being individually accessible for both enqueue and dequeue operations, e.g. using random access memory

Description

【0001】
【発明の属する技術分野】
本発明は、先入れ先出し(FIFO)バッファの分野に関し、詳細には、2つの非同期クロック・ドメイン間の境界を横切る情報を同時に同期させ、あらゆるクロック・サイクルに一方のクロック・ドメインにFIFOフルネス(fullness)度の表示を与え、あらゆるクロック・サイクルに、FIFOがデータを受け入れ、あるいは供給する準備が完了したことを示す他方のクロック・ドメインに対するフラグを与える方法および装置に関する。
【0002】
【従来の技術】
図1は、あるクロック・ドメインと他のクロック・ドメインとの間でデータを転送する従来技術の手法を示す図である。ブロック_A3は、クロック・ドメインAの回路を表す(たとえば、ブロック_A3の信号はクロック_A5に同期し、クロック_A5の立上りで信頼できるデータを有する)。同様に、ブロック_B7は、クロック_B9に同期する回路および信号を表す。クロック・ドメインAとクロック・ドメインBとの間にFIFO11が配置される。この場合、データはFIFO11を通じてブロック_A3からブロック_B7へ転送される。論理機構13は、FIFOに関連付けられており、FIFO11が満杯であることを論理ブロック_A3に示す。関連するこのFIFO論理機構13はまた、FIFO11が空であることをブロック_B7に示す。
【0003】
FIFO11が満杯である場合、ブロック_A3の回路はブロック_A3からFIFO11へのデータの転送を停止し、有効なデータの上書きを防止する。満杯表示15に対して、ブロック_B7の回路は、ブロック_B7へのデータの転送を開始し、空信号17がアサートされ、ブロック_B7によって受け取られるまで転送を継続する。ブロック_B7は、空信号17に対してFIFO11からのデータの読取りを停止し、無効なデータ(たとえば、古いデータ)を読み取らないようにする。
【0004】
従来技術のこのシステムでは、クロック・ドメインA中の論理機構が、空信号17を受け取るまでFIFOへの書込みを開始しないことは明白である。同様に、クロック・ドメインB中の論理機構は、満杯標識15を受け取るまでFIFO11から読取りを行わない。したがって、クロック・ドメインA中の論理機構が、書込みを行う前にFIFO11が完全に空になるのを待つ待ち時間と、クロック・ドメインB中の論理機構が、FIFO11の内容を読み取る前にFIFO11が完全に満杯になるのを待つ他の待ち時間がある。
【0005】
従来技術のこの手法は、両方のクロック・ドメインが比較的低速であり、あるいは両方のクロック・ドメインが同様に高速であるときには十分である。この従来技術は、FIFOの読取りと書込みを同時に行うことが重要でないときには十分である。言い換えれば、低スループットのシステムでは、この手法は十分である。しかし、ATMがSバスよりもずっと高速にクロッキングされるSバスATM(非同期転送モード)システムでは、従来技術の方法はもはや十分ではない。Sバス性能を高めてATMの要件を満たすには、あらゆるクロック・サイクルを利用する必要がある。さらに、クロック・ドメインB(Sバス側)中の論理機構が高速ターンアラウンド(たとえば、平均負荷Sバス32ビット32バイト・システムで毎秒155メガバイト(Mbps)デュプレックスを必要とするATMプロトコル)を必要とするとき、従来技術のこの手法は不適切なものとなる。高速ネットワーク・システムでは、スループットを最大にして、FIFOが100%満杯または空になるのを待たずにFIFOとの間のデータの転送を開始する必要がある。したがって、特にFIFOが大型の場合に満杯フラグまたは空フラグを待つ際の固有の待ち行列時間を短縮するために様々なフルネス度(満杯度)標識またはエンプティネス度(空の程度)標識を提供する必要がある。
【0006】
さらに、クロック・ドメインA中の論理機構とクロック・ドメインB中の論理機構は互いに同期しない(たとえば、FIFOに対する読取りと書込みは同期しない)ので、任意のクロック・サイクルに、FIFO中の内容の「真の」レベルを動的に判定する必要がある。たとえば、ブロックAによってFIFOに4つのデータ語が書き込まれ、同じクロック中にブロックBによって4つのデータ語が読み取られた場合、FIFOのエンプティネス度またはフルネス度に正味変化はない。
【0007】
任意のクロック・サイクルでFIFOの内容の「真の」レベルを正確に判定するには、ドメインBから得たFIFOポインタ情報をドメインAのクロックに同期させ、ドメインBから得た制御情報をドメインAに同期させなければならないことは明白である。この情報は、FIFOの現フルネス状態またはフルネス度を判定する(たとえば、より低速のクロック・ドメインからの信号をより高速のクロック・ドメインに同期させる)ために使用される。
【0008】
各クロック・サイクルでのFIFOのレディネス(たとえば、十分な空間またはデータを有する)を算出し、入出力バスを介してIO DMAスレーブ(たとえばホスト・メモリ)との間でデータをやり取りするには、制御信号、アドレス情報、FIFOに対してどのくらいのデータを書き込み、あるいは読み取るかのサイズ情報などの情報が必要である。
【0009】
あるクロック・ドメインからの信号と他のクロック・ドメインとを同期させる従来型の方法は、IOバスを介したデータ転送にFIFOを使用し、高速ネットワークをサポートするためにスループットを最大にする準備をただちに完了することを必要とする前述の状況には不適切である。
【0010】
1ビット同期は2つの理由で実施することができない。第1に、前述のように、FIFOのデータ転送に関する現レベルおよびレディネス(readiness )を正しく算出するためには複数の情報ビットを一方のクロック・ドメインから他方のクロック・ドメインに同期させなければならない。第2に、クロック・ドメインAからクロック・ドメインBに、およびその逆に同期させる必要があるのが1情報ビットだけである場合でも、従来技術の1ビット同期方式は受け入れられない走行時間または待ち時間を有する。たとえば、従来技術の1ビット同期方式は、マスタ・スレーブ原則に基づいて動作し、完全なハンドシェークが必要とされる(たとえば、情報ビットをクロック・ドメインAからクロック・ドメインBに同期させ、逆にクロック・ドメインBからクロック・ドメインAに同期させることは、クロック・ドメインB中の情報に依存し、逆もまた同様である)。したがって、同期が行われている間はクロック・ドメインAの状態を変更してはならない(たとえば、クロック・ドメインAからの信号をクロック・ドメインBに同期させている間にはクロック・ドメインAの状態を保持する)。
【0011】
さらに、クロック・ドメインB中の現在同期中の信号は、クロック・ドメインBでの計算に使用される。しかし、信号は、計算され更新された後、クロック・ドメインAで計算できるようにクロック・ドメインAに同期させなければならない(たとえば、一方のクロック・ドメインから他方のクロック・ドメインへの走行時間およびその逆の走行時間が、現応用例の時間制約を超える)。
【0012】
クロック・ドメイン間の複数ビット同期は、固有の準安定性問題を導入する。1ビット同期方式における特定のクロック・エッジでデータが無効または不確かである(たとえば、準安定性)とき、真のデータは最終的に正しい値(0または1)に達する(たとえば、遅延が挿入され、正しい値は次のクロック・サイクルで提示される)。クロックAとクロックBは互いにまったく同期しない(たとえば、クロックの位相および周波数が異なる)ので、ある種の例では、同期クロックの特定のクロック・エッジでのデータが予想できず、かつ信頼できないものとなる。
【0013】
しかし、複数のビットをクロック・ドメイン間で同時に同期させる(たとえば、アドレス情報またはサイズ情報中の複数のビット)ときには、2つ以上のビットが信頼できないデータを有すると完全に誤ったアドレスまたはサイズがもたらされ、単なる遅延では済まなくなるので、この準安定性問題は深刻である。言い換えると、複数ビット値はクロックの立上りにおいては信頼できない(すなわち、準安定性)。したがって、クロック・ドメイン間の複数ビット同期を必要とする従来技術の方法は通常、複数ビット値がクロック・サイクル当たりに1ビットしか変化しないようにする技法(たとえば、グレー・コードまたはジョンソン・カウンタ)を使用する。このような方式は実施費用が高価であり(たとえば、特に、複数ビット値が4ビットよりも大きい場合、グレー・コードを実施するとビットが無駄になる)、特に、クロック境界を横切って多数の信号を同期させる場合、結果的に使用されるハードウェアは試験およびデバッグが困難である。
【0014】
【発明が解決しようとする課題】
したがって、クロック・ドメイン間で同期させるビットの数を最小限に抑え、しかも各クロック・サイクルでFIFOのデータ転送に関するレディネスの真の標識を提供する同期論理機構を提供する方法および装置も必要である。本発明はそれを実現することを課題とする。
【0015】
【課題を解決するための手段】
本発明は、最小の待ち時間および最小の回路複雑度で、第1の回路と第2の回路との間でデータを転送するために第1のクロック(たとえば、sclk)に同期する第1の回路と第2のクロック(たとえば、mclk)に同期する第2の回路との間に結合されたインタフェース回路である。
【0016】
本発明は、第1の回路によってFIFOに書き込まれ、第2の回路によってFIFOから読み取られるデータを転送するFIFOバッファ(すなわち、読取りFIFO)を含む。読取りFIFOは複数の記憶位置を有する。この読取りFIFOは、FIFO中の次の読取り位置を指す関連する読取りポインタと、FIFO中の次の書込み位置を指す関連する書込みポインタとを有する。第1の回路は、書込みポインタが指す位置に書込みを行い、第2の回路は、読取りポインタが指す位置から読取りを行う。
【0017】
本発明は、読取りFIFOに対する非同期読取りおよび書込みを同期させ、読取りFIFOの読取りポインタおよび書込みポインタを管理する論理機構を提供する。本発明は、バス要求イネーブル、すなわち、FIFOが、読取りポインタ、書込みポインタ、第2の回路からのサイズ情報およびアドレス情報、第1の回路からのバス・サイクル情報、すなわちmclkおよびsclkに基づいて第1の回路への入出力バス上へデータを転送する準備が完了したことを示す標識を提供する読取りバス要求イネーブル生成装置も提供する。読取りバス要求イネーブル生成装置は、第2の回路からのデータ要求から第1の回路のバス要求までの迅速なターンアラウンド時間を与えることによって、sclkドメイン中のバスの帯域幅の使用度を最大にして155/622Mbps ATM SARプロトコルをサポートする。
【0018】
さらに、読取りバス要求イネーブル生成装置は、前のDMAサイクルがまだ継続している間(たとえば、バック・ツー・バックDMA読取りのケース)にsclkドメイン中の回路がバス要求をアサートできるようにする。読取りバス要求イネーブル生成装置は、FIFOにいくつの空き記憶位置があるかを算出し、まだFIFOに書き込まれていないデータの量も算出する回路を含む。これらの計算は、あらゆるクロック・サイクルにmclkドメイン内で行われ、1ビット信号のrd_BR_enがsclkドメインに同期する。
【0019】
本発明は、読取りFIFOのフルネス度を第2の回路に示す複数のフラグを提供するAt_least_x_words_filledフラグ生成装置も含む。At_least_x_words_filledフラグ生成装置は、単なるFIFO満杯標識ではなく、読取りFIFOの様々なフルネス度の標識を提供する。本発明では、ATMコア(たとえば、インタフェース論理)は、すべてのデータがFIFOに入るのを待つのではなく、早めに部分的な読取りを実行することができる。FIFOを満杯にする時間は、入出力バス・スレーブ待ち時間に依存する。本発明は、FIFOがハンドシェーク志向可変スレーブ待ち時間バスDMA読取りからのすべてのデータを受け入れ、あるいは、ハンドシェーク指向可変スレーブ待ち時間バスDMA書込みにすべてのデータを提供する準備が完了したことを示すフラグを、あらゆるクロック・サイクルにSバス側に提供する(たとえば、スレーブ装置は、最悪ケースに備えて、バス要求に応答する際の可変待ち時間を有する)。
【0020】
本発明は、このフラグ生成装置を提供して、より密な粒度での迅速なデータ移動を保証し、従来技術で論じた待ち時間を短縮する。具体的には、様々なフルネス度のこれらの標識によって、mclkドメイン回路は、読取りFIFOが完全に満杯になるのを待たずにバッファからデータを読み取ることができる。本発明では、読取りFIFOが必要な数の書き込まれた記憶位置を有するようになった直後に、mclkドメイン回路が読取りFIFOからデータを読み取ることができる。
【0021】
本発明は、第2の回路から第1の回路(すなわち、書込みFIFO)へデータを転送するFIFOバッファも含む。書込みFIFOは複数の記憶位置を有する。書込みFIFOは、次の読取り位置を指す読取りポインタと、次の書込み位置を指す書込みポインタとを有する。第1の回路は、読取りポインタが指す書込みFIFO中の記憶位置に対する読取りを行い、第2の回路は、書込みポインタが指す書込みFIFO中の位置への書込みを行う。
【0022】
本発明は、書込みFIFOに対する読取りと書込みを同期させ、読取りポインタおよび書込みポインタを管理する論理機構を含む。本発明は、読取りポインタ、書込みポインタ、第2の回路からのサイズ情報およびアドレス情報、第1の回路からのバス・サイクル情報、すなわちmclkおよびsclkに基づいて第1の回路へのバス要求イネーブル信号を生成する書込みバス要求イネーブル生成装置も含む。
【0023】
バック・ツー・バックDMA書込みの場合、このイネーブル生成装置によって、sclkドメイン中の回路は、前のDMA書込みサイクルがまだ継続中である間にバス要求をアサートすることができる。このイネーブル生成装置は、mclkドメインにおいて、バス要求イネーブルをいつ生成することができるかを動的に判定し、その場合、1情報ビットはwr_BR_en信号の形でsclkドメインに同期する。
【0024】
本発明は、読取りポインタ、書込みポインタ、mclkに基づいて第2の回路に複数のフラグを提供するAt_least_y_words_emptyフラグ生成装置も含む。このような空フラグはあらゆるmclkサイクルに、書込みFIFO中の空記憶位置の数を第2の回路に示す。
【0025】
sclkドメインのバス・プロトコルは非同期的なもの(たとえば、データはあらゆるsclkサイクルに現れるとは限らない)なので、本発明は書込みFIFOの様々なエンプティネス度を示すフラグを提供し、それによって、書込みFIFOに十分な空間ができた直後に、mclkドメイン中の回路が書込みFIFOへのあるデータの書込みを開始することができる。
【0026】
したがって、本発明は、完全満杯フラグまたは完全空フラグのみを待つ際の固有の待ち時間を最小限に抑えることによってmclkドメイン回路要求とsclkドメイン・バス要求との間の迅速なターンアラウンドを達成するために、読取りFIFO、関連する同期論理機構、読取りバス要求イネーブル生成装置、At_least_x_words_filledフラグ生成装置、書込みFIFO、関連する同期論理機構、書込みバス要求イネーブル生成装置、At_least_y_words_emptyフラグ生成装置を提供する。さらに、本発明は、あらゆるmclkサイクルに、FIFOの状態(たとえば、読取りFIFOおよび書込みFIFO中の満杯記憶位置または利用可能な記憶位置の数)の正確な表示を第2の回路に提供する。
【0027】
【発明の実施の形態】
図2は、本発明32を組み込んだコンピュータ・システムを示す。本発明32は、ホスト・コンピュータ・システム18とコンピュータ・ネットワーク・インタフェース19との間でデータを転送するインタフェース回路(すなわち、SB_ATM)である。インタフェース回路SB_ATM32は、ホスト・コンピュータ・システム18からコンピュータ・ネットワーク・インタフェース論理機構19へデータを転送する読取りモジュール33と、コンピュータ・ネットワーク・インタフェース論理機構19からホスト・コンピュータ・システム18への転送を行う書込みモジュール34とを含む。
【0028】
ホスト・コンピュータ・システム18は、プロセッサ19と、ホスト・メモリ20と、入出力装置をホスト・プロセッサ19に接続する入出力(I/O)バス35と、入出力バス35とのプロトコル・インタフェースを実施する入出力装置回路37(たとえば、Sバス・プロトコル・エンジン)とを含む。プロセッサ19は、メモリ・バス22を介してホスト・メモリ20に結合される。ホスト・コンピュータ・システム18中の要素は、第1のクロック(たとえば、sclk38)に対して同期する。
【0029】
コンピュータ・ネットワーク・インタフェース論理機構19は、ホスト・コンピュータ・システム18によって指定された第1のフォーマットを有するデータを、コンピュータ・ネットワーク19によって指定された第2のフォーマットに変換するATM_SYS47を含む。ATM_SYS47は、読取りモジュール33からデータ経路23を通じてATM_SYS47までのデータ転送を管理するATM読取り論理機構20を含む。ATM読取り論理機構20は、複数の制御情報およびアドレス情報を読取りモジュール33に提供し、ATM読取り論理機構には、データ経路21を通じて読取りモジュール33から複数のフラグが提供される。
【0030】
プロトコル・エンジン37は、データ経路29を通じて読取りモジュール33に(たとえば、メモリ20から得た)データを提供する。プロトコル・エンジン37は、バス・サイクル情報、sclk38および複数の制御信号をデータ経路28を通じて読取りモジュール33に提供し、プロトコル・エンジンには、やはりデータ経路28を通じてバス要求イネーブル信号が提供される。
【0031】
コンピュータ・ネットワーク・インタフェース論理機構19は、データ経路27を通じたコンピュータ・ネットワーク媒体から書込みモジュール34へのデータ転送を管理するATM書込み論理機構24も含む。ATM書込み論理機構24は、サイズ情報、アドレス情報、イネーブル信号をデータ経路25を通じて書込みモジュール34に提供し、かつATM書込み論理機構には、書込みモジュール34によって、書込みモジュール34中のいくつかの空記憶位置を示す複数のフラグが提供される。ATM_SYS47中の回路構成要素は第2のクロック(たとえば、mclk58)に同期する。
【0032】
書込みモジュール34は、データ経路31を通じてホスト・コンピュータ・システム18(たとえば、メモリ20)へデータを転送する。プロトコル・エンジン37はバス・サイクル情報、sclk38、複数の制御信号をデータ経路30を通じて書込みモジュール34に提供し、かつ書込みモジュール34はバス要求イネーブル信号をSB_PRO37に提供する。
【0033】
図3は、本発明をブロック図でさらに詳細に示すものである。読取りモジュール33はさらに、読取りFIFO83自体用の同期論理機構84に結合された読取りFIFO83を含む。Rf_Sync84はさらに、読取りバス要求イネーブル生成装置(RBREG)89およびAt_least_x_words_filledフラグ生成装置(ALXWFFG)91に結合される。
【0034】
読取りFIFOバッファ(読取りFIFO)83は複数の記憶位置を有する。読取りFIFOバッファ83は、RF_SYNC装置84によって管理される書込みポインタ(wptr)が指す位置にSB_PRO37によって書き込まれる。読取りFIFO83は、やはりRF_SYNC装置84によって管理される読取りポインタ(rptr)が指す位置からATM_SYS47によって読み取られる。読取りFIFOバッファ83は、読取りポートと書込みポートとを含む二重ポートRAM(DPRAM)によって実施することができる。rptrポインタおよびwptrポインタはこの二重ポートRAMのアドレスとして働く。
【0035】
ATM_SYS47は、sclk38よりも高い周波数を有するSB_ATM31への第2のクロック(すなわち、mclk58)を提供する。sclk38とmclk58は、この2つのクロックの周波数または位相間に必要な関係がないという点で互いに同期しない。
【0036】
読取りFIFO83は、SB_PRO37からATM_SYS47へ転送されるデータをバッファする。データは、sclkに同期するFIFO_wr_en41を介しSB_PRO37によって読取りFIFO83に書き込まれる。データは、あらゆるsclk38サイクルに読取りFIFO83に書き込むことができ、あるいは、必ずしもあらゆるsclkサイクルに書き込まなくてもよい。sclkの立上りでFIFO_wr_enable41がアサートされた場合、読取りFIFO83にデータが書き込まれる。FIFO_wr_en41は、sclkベースのものであり、読取りモジュール33に入り、読取りFIFO83に書き込まれるデータがあることを示す。同様に、データはATM_SYS47によって、あらゆるmclk58サイクルに読取りFIFO83から読み取ることができる。ATM_rd_en信号63が1mclkにわたってアサートされた場合、mclk58の立上りに1データ語が読取りFIFO83からATM_SYS47に読み込まれる。ATM_rd_en63がアサートされるmclkサイクルの数は、読み出される語の数に等しい。
【0037】
指定”read”および”write”は、”FIFO”と共に使用されたときには、ホスト・コンピュータ・システム(たとえば、メモリ20)中のデータへのアクセスを示す。たとえば、”Read”は、ホスト・コンピュータ・システム中のメモリ20からデータが読み取られることを示す。同様に、”Write”はホスト・コンピュータ・システム中のメモリ20へのデータ転送を示す。
【0038】
sclk38がmclk58に同期しないので、読取りFIFO83は独立型であり、非同期的に書き込まれ読み取られる。本発明は、RF_SYNC84を提供し、非同期読取りおよび書込みをそれに同期させる。したがって、本発明は、以下で詳しく説明する同期論理機構を提供して読取りFIFOを同期させる。
【0039】
書込みモジュール34は、WR_SYNC論理機構114に結合された書込みFIFO113も含む。書込みモジュール34は、共に、WF_SYNC114に結合された、書込みバス要求イネーブル生成装置(WBREG)119とAt_least_y_words_emptyフラグ生成装置(ALYWEFG)121も含む。書込みFIFO113は、mclk58およびATM_wr_en71の組合せを通じてATM_SYS47によって書き込まれる。書込みFIFO113はあらゆるmclkサイクル58に書き込むことができる。ATM_wr_en信号がアサートされた場合71、mclk58の立上りにATM_SYS47から書込みFIFO113にデータが書き込まれる。書込みFIFO113は、sclk38およびFIFO_rd_en42信号の組合せを通じてSB_PRO37によって読み取られる。sclk38の立上りでFIFO_rd_en42がアサートされた場合、SB_PRO37によって書込みFIFO113からデータが読み取られる。
【0040】
WF_SYNC論理機構114は、書込みFIFO113に対する読取りおよび書込みを同期させる。
【0041】
本発明のSB_ATM32は、SB_ATM32と入出力バス35との間のインタフェースを提供するSB_PRO37に結合される。前述のように、SB_PRO37はプロトコル・エンジンであり、入出力バス35プロトコルを実施する。この実施形態のSB_PRO37は状態マシンであり、IEEE Institute of Electronics Electrical Engineers Sbus 1496プロトコルを実施する。たとえば、SB_PRO37は、アドレスおよびデータをバスを介して転送するタイミング信号およびハンドシェーク信号を生成する。SB_PRO37は、入出力バス35を通じてSB_ATM32とメモリ20との間でデータを転送するデータ経路(図示せず)を含む。SB_PRO37は、メモリとの間でデータを転送するデータ経路を提供するだけでなく、本発明に関連するいくつかの信号も提供する。
【0042】
第1に、SB_PRO37は、コンピュータ・システム(たとえば、ホスト・プロセッサ19)によって生成されるシステム・クロック38(たとえば、Sバス用のsclk)を提供する。前述のように、メモリ20や入出力バス35などのシステム構成要素はsclk38に対して同期する。第2に、SB_PRO37は、読取りFIFO83にデータを書き込めるようにするFIFO書込みイネーブル信号(FIFO_wr_en)41と、書込みFIFO113からデータを読み取れるようにするFIFO読取りイネーブル信号(FIFO_rd_en)42を提供する。
【0043】
本発明はATM_SYS47にも結合される。ATM_SYS47は、読取りFIFO83からATM_data_outを受け取る送信FIFO22と、本発明にATM_data_in51を提供する受信FIFO26とを含む。ATM_SYS47は、mclk58を生成するmclkクロック生成装置28も含む。読取りイネーブル信号(たとえば、ATM_rd_en)63、ならびにrd_size57およびrd_addr61の形のサイズ情報およびアドレス情報(たとえば、読取りのサイズおよび読み取るべきメモリ位置のアドレス)を本発明に提供するATM読取り論理機構20も含む。ATM読取り論理機構20はALXWFFG91から複数のAt_least_x_words_filledフラグも受け取る。
【0044】
ATM_SYS47は、初期書込みアドレス(たとえば、wr_addr67)および書き込むべきデータの量(たとえば、wr_size67)の形の書込みに関するサイズ情報およびアドレス情報を提供するATM書込み論理機構24も含む。ATM_Write_logic24はまた、書込みイネーブル信号(たとえば、ATM_wr_en71)を本発明に提供し、複数のAt_least_y_words_emptyフラグをAlYWEFG121から受け取る。
【0045】
ATM読取り論理機構および書込み論理機構(20、24)は、あらゆるmclkサイクル58に本発明の読取りFIFO83および書込みFIFO113に対する読取りおよび書込みをイネーブルすることができる。本発明のALXWFFG論理機構91およびALYWEFG論理機構121は、読取りFIFO83中の満杯位置の数および書込みFIFO113中の空位置の数をそれぞれ、ATM読取り論理機構および書込み論理機構に示す複数のフラグを提供する。論理ブロック91および121は、所定数の位置が満杯または空になった後、ATM_SYS47がただちに読取りFIFO83からの読取りを行い、あるいは書込みFIFO113への書込みを行うことができるように、あらゆるmclk58サイクルにそれぞれのFIFOの状態(たとえば、満杯または空の位置の数)を判定し提示する。あらゆるmclkサイクルに読取りFIFOおよび書込みFIFOの状態が変化する可能性があるので、本発明は、あらゆるmclkサイクルに読取りFIFOまたは書込みFIFOの状態を提示する。
【0046】
SB_PRO37は、入出力バス35自体の制御をSB_PRO37に与えるバス・アービタ(図示せず)への入出力バス35上にバス要求信号43をアサートするバス要求生成装置41も含む。
【0047】
本発明は、読取りバス要求イネーブル信号39(すなわち、rd_BR_en)および書込みバス要求イネーブル信号40(すなわち、wr_BR_en)をバス要求生成装置41に与える。バス要求生成装置41は、どちらかの信号に応答して、入出力バス35へのバス要求43を生成することをイネーブルされる。
【0048】
たとえば、バス要求生成装置41は、rd_BR_en信号39を受け取ったときに、バス要求43を入出力バス35上にアサートすることをイネーブルされる。SB_PRO37がバス35の制御を与えられた後、直接メモリ・アクセス(DMA)バースト・サイクルを介しSB_PRO37を通じてメモリ37から本発明の読取りFIFO83にデータが転送される。
【0049】
図4は、SB_ATM32の特定の構成要素を詳しく示すものである。本発明は、さらに読取りFIFO(たとえば、二重ポートRAM)83とRf_Sync84とを含む同期読取りFIFO81を含む。Rf_Sync84はさらに、読取りFIFO83中の次に読み取るべき位置を指す読取りポインタ(rptr)101を管理する読取り論理機構85と、読取りFIFO83の次に書き込むべき位置を指す書込みポインタ(wptr)103を管理する書込み論理機構87とを含む。
【0050】
同期読取りFIFO81には、sclk38、SB_PRO37からのFIFO_wr_en41、ATM_SYS47からのmclk58およびATM_rd_en63が提供される。同期読取りFIFO81は、読取りバス要求イネーブル生成装置89および”At_least_x_words_filled”フラグ生成装置91にrptr101(たとえば、FIFOアドレス情報)およびwptr103(たとえば、FIFOアドレス情報)を提供する。
【0051】
読取りバス要求イネーブル生成装置89は、他のバス・サイクル情報105をSB_PRO37から受け取ると共に、DMA読取り要求サイズ情報およびアドレス情報をATM_SYS47から受け取り、rd_BR_en39をSB_PRO37に提供する。読取りバス要求イネーブル生成装置89については下記で詳しく説明する。”At_least_x_words_filled”フラグ生成装置91は、At_least_x_words_filledフラグ65をATM_SYS47に提供する。この場合、xは整数である。
【0052】
本発明は、さらに第2の二重ポートRAM113とWf_Sync114とを含む同期書込みFIFO111も含む。Wf_Sync114はさらに、書込みFIFOの読取りポインタ(rptr)123を管理する読取り論理機構115と、書込みFIFO111の書込みポインタ(wptr)125を管理する書込み論理機構117とを含む。
【0053】
同期読取りFIFO81と同様に、同期書込みFIFO111は、書込みバス要求イネーブル生成装置119と”At_least_y_words_empty”フラグ生成装置121の両方にrptr123およびwptr125を提供する。DPRAM113にATM_data_inが書き込まれ、書込みFIFO111からSB_data_outが読み取られる。書込みバス要求イネーブル生成装置119には、mclk58、sclk38、wr_sizeのサイズ情報、wr_addrのメモリ・アドレス情報がATM_SYS47から提供され、かつ書込みバス要求イネーブル生成装置はSB_PRO37にwr_BR_en40を提供する。書込みイネーブル生成装置119はSB_PRO37からSバス・サイクル情報27も受け取る。
【0054】
”At_least_y_words_empty”フラグ生成装置121にはrptr123およびwptr125が提供され、かつ”At_least_y_words_empty”フラグ生成装置121はATM−SYS47に対する適切な1組のAt_least_y_words_emptyフラグを生成する。これらのフラグは、あらゆるmclk58サイクルに書込みFIFO113中の空記憶位置の数(たとえば、”y”、すなわち2語、4語など)をATM_SYS47に示す。同様に、At_least_x_filledフラグ65は、あらゆるmclkサイクルに、有効なデータが書き込まれている読取りFIFO81中の記憶位置の数を示す。
【0055】
図5は、同期読取りFIFO81を詳しく示すものである。読取りFIFO83は、二重ポートRAM(DPRAM)自体への書込みを行うAポートとDPRAM自体からの読取りを行うBポートとを有するDPRAMとして実施することができる。各ポートは、別々のアドレス線、クロック、読取りイネーブルまたは書込みイネーブルを有する。
【0056】
書込み論理機構87は、DPRAM83のポートAに対するwptr(たとえば、アドレス)を生成する書込みポインタ生成装置141を含む。書込みポインタ生成装置141は、クロック信号を受け取ったときには必ずwptr103を増分する循環カウンタと共に実施することができる。書込み論理機構87は、sclkベースのFIFO_wr_en41をmclk58に同期させるWr_clka生成装置143も含む。このWr_clka生成装置143にはmclk58、sclk38、FIFO_wr_en信号41が提供され、かつWr_clka生成装置は書込みポインタ生成装置141に同期書込みクロック信号(wr_clka)147を提供する。wr_clka信号147は、DPRAM83のポートAのクロック入力(すなわち、clk_a)にも提供される。Wr_clka生成装置143を実施する回路については、図6に関して下記に詳しく説明する。
【0057】
読取り論理機構85は、DPRAM83のポートBのアドレス入力に提供される読取りポインタ101を生成するためにmclk58によってクロッキングされる読取りポインタ生成装置(Rptr生成装置)149を含む。ポートBはmclk58を用いてクロッキングされる。読取りポインタ生成装置149は、あらゆるmclkサイクルにrptr101を増分する循環カウンタとして実施することもできる。ポートB用の読取りイネーブルはATM_rd_en信号63である。
【0058】
図6は、本発明のWr_clka生成装置回路143を示す。wr_clka147によってクロッキングされる第2のフリップフロップ163へ送られる信号を生成するために第1のフリップフロップ161にsclk38が提供される。フリップフロップ163の出力はtog1信号165であり、トグル信号171を生成するために第1の比較回路167に提供される。トグル信号171はさらに、ANDゲート173へ送られる。比較回路167は、tog1 165と、mclk58を用いてクロッキングされるフリップフロップ169の出力とを比較する。フリップフロップ163の反転出力は、フリップフロップ161の入力に提供される。
【0059】
ANDゲート173には、FIFO_wr_en信号41と、反転されたmclkを用いてクロッキングされるフリップフロップ168の出力からの信号が提供される。フリップフロップ168の入力にはFIFO_wr_en信号41が提供される。
【0060】
ANDゲート173の出力は、反転されたmclk58を用いてクロッキングされる他のフリップフロップ183に提供される。このフロップ183の出力は、wr_clka信号147を生成するようにmclk58を用いてクロッキングされるORゲート・パルス形成回路185に渡される。
【0061】
点線内の回路構成要素は、Wr_clka生成装置143の底部としてミラーリングされる。具体的には、反転されたmclkを用いてクロッキングされるフリップフロップ177は、第2の比較回路179へ送られるtog2信号を生成する。比較回路179の出力は第2のANDゲート181に提供される。ANDゲート181には、FIFO_wr_enable信号41と、mclk58を用いてクロッキングされるフリップフロップ175の出力が提供される。ANDゲート181の出力は、やはりmclk58を用いてクロッキングされる別のフリップフロップ187への入力として提供される。フリップフロップ187の出力は、wr_clka147を生成するためにORゲート・パルス形成回路185に提供される。
【0062】
前述のように、点線ブロックはWr_clka生成装置143の下部と対称的である。点線部分の回路要素は、mclk58立上りを用い、次いでmclk58立下りを用いてFIFO_wr_en41をサンプリングする。あらゆる同期に2つのサンプルが必要である。Wr_clka生成装置回路143の下部は、mclkの立下り、次いでmclkの立上りでFIFO_wr_enをサンプリングする。回路の上半分と下半分のどちらかが、FIFO_wr_en41のサンプルを得て、適切な内部フラグをトグルし(すなわち、tog1またはtog2)他の半分がサンプルを得るのを禁止する。
【0063】
Wr_clka生成装置143は、sclkベースのFIFO_wr_en41信号をmclk38に同期させる。wr_clka信号147は、mclk58の関数であり、有効なFIFO_wr_en41があるときにはいつでも生成される。wr_clka147はmclk58の立上りと立下りのどちらかに同期する。wr_clka147は、wptr103を維持しDPRAM83のポートAをクロッキングするために使用される。
【0064】
本発明は、mclk58がsclk38よりもずっと高速であることを使用する。この特定の実施形態では、各sclk38周期の長さは、mclk58の3つのエッジに適応するためにmclk58の長さの少なくとも1.5倍である必要がある。この特性の結果、同期論理機構84は極めて簡略化される(たとえば、本発明を実施するのに必要なのは、従来技術で必要とされる多数のフリップフロップおよび特殊なハンドシェーク論理機構ではなく、最小数のゲートおよびフリップフロップだけである)。この同期方式は、FIFOの大きさがどれだけかにかかわらずに(すなわちFIFOサイズに依存せずに)、同様にうまく機能する。本発明は、同期回路143が適切とみなしたときに、mclk58によってsclkベースのFIFO_wr_en41をサンプリングする。FIFO_wr_en41のサンプリングは、各mclkエッジ(たとえば、立上り、次いで立下り、あるいは立下り、次いで立上り)に基づくものである。このサンプリングまたは同期の結果はパルスwr_clka147であり、書込みポインタを更新するために使用され、読取りDPRAM83への書込みクロックとしても使用される。したがって、読取りFIFO(DPRAM)83は、1つのクロック・ドメインのみ(すなわち、mclkドメイン)において、ラッチ・ベースではなく完全な同期エッジ・ベースで動作する。
【0065】
Wr_clka生成装置143中のトグル生成装置145は、2つのmclk58エッジによって有効なFIFO_wr_en41がサンプリングされた後にあらゆるsclk38立上りでトグルされるフラグ(たとえば、トグル)を生成し、wr_clka147が生成される。フラグがトグルしており、mclkエッジによって別のFIFO_wr_en41が検知された場合、その信号は引き続き同期回路(たとえば、直列された2つのフロップ)内を進行して別のwr_clka147を生成することができる。wr_clka147が生成された後、次のsclk立上りで、フラグは再びトグルする。したがって、本発明は、あらゆるmclk58立上りで信頼できるものとなるロックステップ同期を行う。さらに、本発明は簡単に、かつ効率的に実施することができる(たとえば、最小限の論理機構で実施することができる)。
【0066】
図7は、図6に示したwr_clka生成装置およびシンクロナイザ・ブロック143に関するタイミング図を示す。図7は、mclk58、sclk38、トグル信号171、wr_clka147、FIFO_wr_en信号41、wptr103の各関連信号を示す。前述のように、mclk58とsclk38は互いに同期しない(たとえば、mclk58とsclk38の相対位相に関する仮定はない)。この特定の実施形態では、mclk58は約40MHzであり、sclk38は約16MHzないし25MHzの範囲である。rptr101とwptr103は共にmclk58に同期する。本発明は、At_least_x_words_filledフラグを使用して、同じ位置に対する同時読取りおよび書込みが行われないようにする。ATM読取り論理機構20は、適切なフラグを参照し、フラグが許容するものだけを読み取る。フラグは常に(たとえば、FIFOがラップアラウンドしているとき、あるいはFIFOがラップアラウンドされていないとき、あるいはFIFOに対するあるポインタが固定されているとき)、FIFO中の読み取られていない新しい語の数の真のリアルタイム標識であるので、
【0067】
この実施形態では、一度に64データ・ビットが読取りFIFO83に書き込まれ、あるいは読取りFIFOから読み取られる。
【0068】
次に図7を参照すると分かるように、mclk58の立上りと立下りの両方でFIFO_wr_en41がアサートされたときにwr_clka147が生成され、mclk58の立上りでのFIFO_wr_en41のサンプルはmclk58の立下りでのサンプル値に等しい。wr_clka147は、mclk58の2分の1周期だけ持続し、特定のトグル値に対して1度だけ生成される。このトグルは、前のwr_clkaサイクルでの値とは異なる値である(すなわち、あらゆるwr_clkaサイクルに2つの値間でトグルする)。wr_clkaは、wptr103を、次に書き込むべき記憶位置を指すように増分する。mclk58は、読取りポインタ(rptr)101を、次に読み取るべき記憶位置を指すように増分する。
【0069】
図8は、同期書込みFIFO111を詳しく示すものである。書込みFIFO113は、二重ポートRAM(DPRAM)自体からの読取りを行うAポートとDPRAM自体への書込みを行うBポートとを有するDPRAMとして実施することができる。各ポートは、別々のアドレス線、クロック、読取りイネーブルまたは書込みイネーブルを有する。
【0070】
読取り論理機構115は、DPRAM113のポートAに対するrptr123(たとえば、アドレス)を生成する読取りポインタ生成装置249を含む。読取りポインタ生成装置249は、クロック信号を受け取ったときには必ずrptr123を増分する循環カウンタと共に実施することができる。読取り論理機構115は、sclkベースのFIFO_rd_en42をmclk58に同期させるRd_clka生成装置243も含む。このRd_clka生成装置243にはmclk58、sclk38、FIFO_rd_en信号42が与えられ、かつRd_clka生成装置は読取りポインタ生成装置249に同期書込みクロック信号(rd_clka)247を与える。rd_clka信号247は、DPRAM113のポートAのクロック入力(すなわち、clk_a)にも与えられる。Rd_clka生成装置243を実施する回路については、図9に関して下記に詳しく説明する。
【0071】
書込み論理機構117は、ATM_wr_en71がアサートされたときにmclk58によってクロッキングされる書込みポインタ生成装置(Wptr生成装置)241を含む。書込みポインタ生成装置241は、DPRAM113のポートBのアドレス入力に与えられる書込みポインタ125を生成する。ポートBはmclk58を用いてクロッキングされる。書込みポインタ生成装置241は、あらゆるmclkサイクルにwptr125を増分する循環カウンタとして実施することもできる。
【0072】
図9は、本発明のRd_clka生成装置回路243を示す。rd_clka247によってクロッキングされる第2のフリップフロップ263へ送られる信号を生成するために第1のフリップフロップ261にsclk38が提供される。フリップフロップ263の出力はtog1信号265であり、トグル信号271を生成するために第1の比較回路267に提供される。トグル信号271はさらに、ANDゲート273へ送られる。比較回路267は、tog1 265と、mclk58を用いてクロッキングされるフリップフロップ269の出力とを比較する。フリップフロップ263の反転出力は、フリップフロップ261の入力に結合される。
【0073】
ANDゲート273の出力は、反転されたmclk58を用いてクロッキングされる他のフリップフロップ283に与えられる。このフリップフロップ283の出力は、rd_clka信号247を生成するようにmclk58を用いてクロッキングされるORゲート・パルス形成回路285に渡される。
【0074】
ANDゲート273には、FIFO_rd_en信号42と、反転されたmclkによってクロッキングされるフリップフロップ268の出力も加えられる。フリップフロップ268は入力としてFIFO_rd_en信号42を有する。
【0075】
点線内の回路構成要素は、Rd_clka生成装置243の下部としてミラーリングされる。具体的には、反転されたmclk58を用いてクロッキングされるフリップフロップ277は、第2の比較回路279へ送られるtog2信号を生成する。比較回路279の出力は第2のANDゲート281に提供される。ANDゲート281には、FIFO_rd_enable信号42と、やはりmclk58を用いてクロッキングされるフリップフロップ275の出力が提供される。ANDゲート281の出力は、やはりmclk58を用いてクロッキングされる別のフリップフロップ287への入力として提供される。フリップフロップ287の出力は、rd_clka247を生成するためにORゲート・パルス形成回路285に提供される。
【0076】
前述のように、点線ブロックはRd_clka生成装置243の下部と対称的である。点線部分の回路要素は、mclk58立上りを用い、次いでmclk58立下りを用いてFIFO_rd_en42をサンプリングする。あらゆる同期に2つのサンプルが必要である。Rd_clka生成装置回路243の下部は、mclkの立下り、次いでmclkの立上りでFIFO_rd_enをサンプリングする。回路の上半分と下半分のどちらかが、FIFO_rd_en42のサンプルを得て、適切な内部フラグをトグルし(すなわち、tog1またはtog2)他の半分がサンプルを得るのを禁止する。
【0077】
Rd_clka生成装置243は、sclkベースのFIFO_rd_en42信号をmclk38に同期させる。rd_clka信号247は、mclk58の関数であり、有効なFIFO_rd_en42があるときにはいつでも生成される。rd_clka247は、rptr123を維持しDPRAM113のポートAをクロッキングするために使用される。
【0078】
本発明は、mclk58がsclk38よりもずっと高速であることを使用する。この特定の実施形態では、各sclk38周期の長さは、mclk58の長さの少なくとも1.5倍である必要がある。本発明は、同期回路243が適切とみなしたときに、mclk58によってsclkベースのFIFO_rd_en42をサンプリングする。FIFO_rd_en42のサンプリングは、各mclkエッジ(たとえば、立上り、次いで立下り、あるいは立下り、次いで立上り)に基づくものである。このサンプリングまたは同期の結果はパルスrd_clka247であり、書込みポインタを更新するために使用され、読取りDPRAM113への書込みクロックとしても使用される。したがって、読取りFIFO(DPRAM)113は、1つのクロック・ドメインのみ(すなわち、mclkドメイン)において、ラッチ・ベースではなく完全な同期エッジ・ベースで動作する。
【0079】
Rd_clka生成装置243中のトグル生成装置245は、2つのmclk58エッジによって有効なFIFO_rd_en42がサンプリングされた後にあらゆるsclk38立上りでトグルされるフラグ(たとえば、トグル)を生成し、rd_clka247が生成される。フラグがトグルしており、mclkエッジによって別のFIFO_rd_en42が検知された場合、この信号は引き続き同期回路(たとえば、直列された2つのフロップ)内を進行して別のrd_clka247を生成することができる。rd_clka247が生成された後、次のsclk立上りで、フラグは再びトグルする。したがって、本発明は、あらゆるmclk58立上りで信頼できるものとなるロックステップ同期を行う。さらに、本発明は簡単に、かつ効率的に実施することができる(たとえば、最小限の論理機構で実施することができる)。
【0080】
図10は、図9に示したRd_clka生成装置243に関するタイミング図を示す。図10は、mclk58、sclk38、トグル信号271、rd_clka247、FIFO_rd_en信号42、rptr123の各関連信号を示す。前述のように、mclk58とsclk38は互いに同期しない(たとえば、mclk58とsclk38の相対位相に関する仮定はない)。この特定の実施形態では、mclk58は約40MHzであり、sclk38は約16MHzないし25MHzの範囲である。wptr125とrptr123は共にmclk58に同期する。At_least_y_words_emptyフラグ生成装置121は、書込みFIFO113中の同じ位置に対して読取りと書込みが同時に行われることがないようにする。
【0081】
この実施形態では、一度に64データ・ビットが書込みFIFO113に書き込まれ、あるいは書込みFIFO113から読み取られる。
【0082】
次に図10を参照すると分かるように、mclk58の立上りと立下りの両方でFIFO_rd_en42がアサートされたときにrd_clka247が生成される。トグル信号271は、前のrd_clkaが発生しており、これがFIFO_rd_en42の新しいサンプルであることを示す。rd_clka247は、mclk58の2分の1周期だけ持続し、特定のトグル値に対して1度だけ生成される。rd_clka247は、rptr123を、次に書き込むべき記憶位置を指すように増分する。mclk58は、書込みポインタ(wptr)125を、次に書き込むべき記憶位置を指すように増分する。
【0083】
読取りFIFOが特定のsclkサイクルに直接メモリ・データ転送(DMA)用の十分な空間を有するかどうかは、rptrとwptrの両方の値に依存する。rptrおよびwptrはあらゆるmclkに更新される可能性があるので、「距離」(たとえば、rptrが指す位置とwptrが指す位置との間の記憶位置の数)は、本発明によってあらゆるmclkサイクルに動的に判定される。
【0084】
考慮すべき4つの別々なケースがある。第1のケースでは、rptrがwptrよりも小さく(すなわち、wptrの後方に位置する)、wptrがラップアラウンドしていない。第2のケースでは、rptrがwptrよりも小さく、wptrがラップアラウンドしている。第3のケースでは、rptrがwptrに等しく、rptrがwptrに追いついた。第4のケースでは、rptrがwptrに等しく、rptrがwptrの方へ逆進した(たとえば、rptrが位置2に停止しており、wptrが位置0から位置1に増分している)。
【0085】
前のSバスDMAがまだ継続中であり、データがまだ読取りFIFOに書き込まれているときには、rptrとwptrとの間の距離を調整する必要がある。本発明は、現要求(たとえば、ホスト・メモリからバイト・ブロックを読み取り、あるいはホスト・メモリにバイト・ブロックを書き込むことを要求するATM_SYS47からの読取り要求または書込み要求)を処理する際、前の要求のデータ・サイズおよびアドレスならびに現要求のデータ・サイズおよびアドレスに基づくバス許可イネーブル信号39、42をアサートするか否かを決定する際にrptrとwptrとの間の距離の調整を動的に実行する。
【0086】
この調整は、まだ読取りFIFOへ転送されていない語の予想される古い数に基づくものである。まだ転送されていない語の予想される古い数は、古いrd_size、rd_addr、wptrのスナップショット(すなわち、SB_PROが、トランザクションの始めであることを示したときのwptrの値)に依存する。Sバス状態は、Sバス・トランザクションの始めを示す。現wptr、rptr、rd_size、rd_addrはすべてmclkに同期する。
【0087】
rd_BR_enは、rptrとwptrの間の距離と調整値との差が、ATM_SYS47からのこの現要求に対してメモリへ、あるいはメモリから転送すべきバイトの数以上であるときに生成されるフラグである。rd_BR_enは、mclkドメインで動的に決定され、sclkに同期する。
【0088】
したがって、rd_BR_enは、あらゆるmclkに更新され、あらゆるsclkによってサンプリングされる。SB_PROがバス要求をアサートする準備が完了すると、rd_BR_en信号は、そのsclkサイクルにバス35上にバス要求をアサートできるかどうかを判定する。
【0089】
図11は、本発明の読取りバス要求イネーブル生成装置89の構成要素を詳しく示すものである。読取りバス要求イネーブル生成装置89は、いつ読取りバス要求イネーブル信号(rd_BR_en)39をアサートすべきかを判定する回路301を含む。この回路301はさらに、複数のスナップショット・レジスタ303とイネーブル生成装置305とを含む。回路301は、sclk38ベースのSバス情報101を、mclk58に同期するSバス情報307(すなわち、info_mclk)に変換する同期回路(synchro)306に結合される。Sバス情報101は、Sバス・サイクルのアドレス変換サイクル中の適当な点をRBREG89に示し、それによって、wptrまたはrptrの信頼できるスナップショットをとることができる。第1のクロックに基づく第1の信号を、第2のクロックに同期する第2の信号に同期させる同期回路は当技術分野において良く知られている。直列された2つのフリップフロップによって同期回路を実施することができる。
【0090】
イネーブル生成装置305は、mclk58に同期するバス要求イネーブル信号(enable_mclk)306を生成する。イネーブル生成装置305には、同期読取りFIFO回路81からの現rptr101およびwptr103、同期回路306からのinfo_mclk307、ATM_SYS47からの現rd_size59およびrd_addr61、複数のスナップショット・レジスタ303からのrptr101、wptr103、rd_size59、rd_addr61、info_mclk307の古い値が提供される。スナップショット・レジスタ303は、古い値(たとえば、前のmclkサイクルでの読取りFIFOの状態)をラッチするように働く。イネーブル生成装置305は、提供された情報(たとえば、読取りFIFOの現状態情報と読取りFIFOの古い状態情報の両方)からenable_mclk信号306を動的に決定する。enable_mclk信号306は、(rptrとwptrとの間の距離)−(たとえば、バック・ツー・バック読取りDMAの場合に継続中の前のSバスDMAからまだ転送されていない語)≧(現rd_sizeおよびrd_addrに基づいてSバスを介して読み取るべきバイトの数)を計算することによって生成される。この関係は、当技術分野で知られている演算論理回路または組合せ論理回路、あるいはその両方によって実施することができる。enable_mclk306は、rd_BR_en信号39を生成する同期回路309へ送られる。enable_mclk306は単一ビット・フラグである。同期回路309は、このmclkベースの信号、enable_mclk306をsclkベースの信号rd_BR_en39に同期させる。
【0091】
図11は、バック・ツー・バックDMA読取りに適応できるように読取りバス要求イネーブル信号39を生成する論理機構89を示し、これに対して、図12はバック・ツー・バックDMA書込みに対処する書込みバス要求イネーブル生成装置119の構成要素を詳しく示している。書込み生成装置119は、書込みバス・イネーブル信号40(wr_BR_en)を生成し、それをSB_PRO37に提供する。さらに、Sバス・サイクル情報127、書込みサイズ69、書込みアドレス67がバック・ツー・バックDMA書込みに関係している。言い換えれば、書込みバス要求イネーブル生成装置119はあらゆるmclk58サイクルに、メモリ20へ転送して書き込むのに十分なデータが書込みFIFO113中にあるか否かを動的に判定する。バス要求イネーブル生成装置89、119は、入出力帯域幅の使用度を最大にしてバック・ツー・バックDMAをパイプライン化する。enable_mclk信号356は、(rptrとwptrとの間の距離)−(バック・ツー・バック書込みDMAの場合に継続中の前のSバスDMAからまだ読み取られていない語)≧(現wr_sizeおよびwr_addrに基づいてSバスを介して書き込むべきバイトの数)を計算することによって生成される。この関係は、当技術分野で知られている演算論理回路または組合せ論理回路、あるいはその両方によって実施することができる。
【0092】
図13は、At_least_x_words_filledフラグ生成装置91が、読取りFIFO83に書き込まれている語の数を示す複数のフラグをどのように生成するかを説明するフローチャートを示す。第1に、フラグ生成装置91は、読取りポインタと書込みポインタが等しいか否かを判定する(決定論理ブロック401)。読取りポインタと書込みポインタが等しい場合、フラグ生成装置91はさらに、読取りFIFO83が満杯かどうかを判定する(決定論理ブロック403)。読取りFIFO83が満杯である場合、フラグ生成装置91はすべてのAt_least_x_words_filledフラグ65をアサートする(すなわち、すべてのフラグが有効になる)(論理ブロック407)。FIFO83が満杯ではない場合、FIFO83は空でなければならず(すなわち、rptr=wptrであり、満杯ではない場合、FIFOは空でなければならない)、フラグ生成装置91はすべてのAt_least_x_words_filledフラグ405をデアサートする。
【0093】
書込みポインタが読取りポインタに等しくないとフラグ生成装置91が判定した場合、wptr103がラップアラウンドしているか否かがさらに判定される(409)。wptr103がラップアラウンドされていると判定された場合、書き込まれている語の数は、FIFOのサイズ(この実施形態では14個の64ビット位置)から読取りポインタと書込みポインタとの間の差を減じた値に等しい(論理ブロック411)。読取りFIFO83がラップアラウンドされていない場合、書き込まれている語の数は、書込みポインタと読取りポインタとの差に等しいに過ぎない(論理ブロック415)。書き込まれている語の数が算出された後、フラグ生成装置91によって適当なフラグがセットされ(論理ブロック413、417)、あらゆるmclkサイクルにATM_SYS47へ送られる。本発明は、あらゆるmclkサイクルにこれらのフラグを更新する。
【0094】
図14は、At_least_y_words_emptyフラグ生成装置121があらゆるmclkサイクルに、どのように書込みFIFO113中の空記憶位置の数を動的に判定するかを示す。この方法は、フラグ生成装置121によって実行され、図14に示したステップが実行される。フラグ生成装置121は、書込みFIFO113中の空の記憶位置の数を動的に判定する。フラグ生成装置121は、書込みFIFO113中に少なくとも”y”個の空語位置があることを示す複数のフラグを生成する。Yは任意の整数であってよい(たとえば、この実施態様では、yは2、または4、または6、または8に等しい)。これらのフラグ73は、ATM_SYS47が、あらゆるmclk58に、ATM_SYS47自体が書込みFIFO113に書き込むことができる語の数を判定できるように、ATM_SYS47に情報を提供する。
【0095】
第1に、フラグ生成装置121はまず、wptr123がwptr125に等しいかどうかを判定する(決定論理ブロック501)。これらの2つのポインタが等しい場合、書込みFIFO113が空であるか否かが判定される(決定論理ブロック503)。書込みFIFO113が空である場合、フラグ生成装置121はすべてのAt_least_y_words_emptyフラグをアサートする(論理ブロック507)。FIFO113が空になると判定された場合、FIFO83は空でなければならず(すなわち、rptr=wptrであり、フラグ生成装置121はすべてのAt_least_y_words_emptyフラグをデアサートする(論理ブロック505)。
【0096】
wptr125がrptr123に等しくないと判定された場合、さらに、wptr125がラップアラウンドしているか否かが判定される(509)。wptr125がラップアラウンドしている場合、フラグ生成装置121は、空位置の数=FIFOサイズ−(wptr−rptr(論理ブロック511)という数式によって書込みFIFO113中の空位置の数を判定する。次いで、適当なフラグがアサートされる(論理ブロック513)。wptr125がラップアラウンドされていない場合、フラグ生成装置121は、空位置の数=FIFOサイズ−rptr−wptrという数式によってFIFO113中の空位置の数を判定し、適当なフラグがセットされる(論理ブロック515および517)。
【0097】
したがって、フラグ生成装置91は、ATM_SYS47が、読取りFIFO83が完全に満杯になるのを待つ必要なしにATM_data_out49が利用可能になった直後にそれを読取りFIFO83から読み取れるように、読取りFIFO83中の値データを用いて記憶位置の数をATM_SYS47に示す複数のフラグを提供する。同様に、本発明のフラグ生成装置121は、ATM_SYS47があらゆるmclk58サイクルに、ATM_SYS自体が書込みFIFO113に書き込むことができる語の数を判定できるように、書込みFIFO113中の空記憶位置の数を示すフラグを提供する。
【0098】
本発明は、従来技術に勝る多数の利点を提供する。第1に、本発明は、トグル信号を使用してsclkベースの信号(たとえば、FIFO_write_enおよびFIFO_rd_en)をロックステップ式に同期させる(たとえば、サンプリングする)簡略化された同期方式を提供する。第2に、本発明では、粒度を用いてFIFOの内容を示すフルネス標識を提供することによって、FIFOを通じた迅速なデータ移動が可能である。第3に、本発明によって、ATM_SYSはバック・ツー・バック・データ要求(たとえば、ホスト・メモリに対する読取り要求および書込み要求)を実行することができる。言い換えれば、本発明は、ルック・アヘッド表示を提供し、その結果、ATM_SYSは、1つのメモリ要求が完全に完了するのを待たなくても、その後の要求をアサートすることができる。
【0099】
前述の明細では、本発明を特定の例示的な実施形態に関して説明した。しかし、添付の特許請求の範囲に記載した本発明のより広い趣旨および範囲から逸脱せずに本発明に様々な修正および変更を加えられることは明白である。したがって、明細書および図面は、制限的ではなく例示的なものとみなすべきである。
【図面の簡単な説明】
【図1】 従来技術のインタフェース回路を示す図である。
【図2】 本発明のシステム・レベル・ブロック図である。
【図3】 本発明のより詳細なシステム・レベル・ブロック図である。
【図4】 本発明の詳細なブロック図である。
【図5】 本発明の同期読取りFIFOのブロック図である。
【図6】 読取りFIFOに関連する同期論理機構の詳細な実施態様を示す図である。
【図7】 図6に示した同期論理機構に関連するタイミング図である。
【図8】 本発明の同期書込みFIFOの詳細なブロック図である。
【図9】 本発明の書込みFIFOに関連する同期論理機構の詳細な実施態様を示す図である。
【図10】 図9の同期論理機構に関連するタイミング図である。
【図11】 本発明の読取りバス要求イネーブル生成装置の詳細なブロック図である。
【図12】 書込みバス要求イネーブル生成装置の詳細なブロック図である。
【図13】 あらゆるクロック・サイクルに書込みFIFO中に満杯空間がいくつあるかを示すフラグを動的に決定するにはどうすべきかを説明するフローチャートである。
【図14】 あらゆるクロック・サイクルに書込みFIFO中に空の空間がいくつあるかを示すフラグを動的に決定するにはどうすべきかを説明するフローチャートである。
【符号の説明】
32 本発明
18 ホスト・コンピュータ・システム
19 コンピュータ・ネットワーク・インタフェース論理機構
20 ホスト・メモリ
22 メモリ・バス
24 ATM書込み論理機構
25 データ経路
26 受信FIFO
28 mclkクロック生成装置
31 SB_ATM
33 読取りモジュール
34 書込みモジュール
35 入出力バス
37 Sバスプロトコル・エンジン
38 sclk
41 FIFO_wr_en
42 FIFO_rd_en
43 バス要求信号
47 ATM_SYS
51 ATM_data_in
57 rd_size
58 mclk
61 rd_addr
63 ATM_rd_en信号
65 At_least_x_words_filledフラグ
67 wr_addr
71 ATM_wr_en
81 同期読取りFIFO
83 読取りFIFO
84 Rf_Sync
85 読取り論理機構
87 書込み論理機構
89 読取りバス要求イネーブル生成装置(RBREG)
91 At_least_x_words_filledフラグ生成装置(ALXWFFG)
101 読取りポインタ(rptr)
103 書込みポインタ(wptr)
113 書込みFIFO
114 WR_SYNC論理機構
119 書込みバス要求イネーブル生成装置(WBREG)
121 At_least_y_words_emptyフラグ生成装置(ALYWEFG)

Claims (5)

  1. 第1のクロックに同期する第1の回路と第2のクロックに同期する第2の回路との間に挿入され、第1の回路と第2の回路との間でデータを転送するインタフェース回路であって、
    (a)第1の回路から第2の回路へデータを転送するための複数の記憶位置を有する第1のバッファであって、第1の回路が第1のバッファ自体中の書込みポインタが指す記憶位置に書込みを行い、第2の回路が第1のバッファ自体中の読取りポインタが指す記憶位置から読取りを行う第1のバッファと、
    (b)第1のバッファに対する書込みと読取りを同期させるために第1のバッファに結合された第1の同期手段と、
    (c)第2のクロックのあらゆるサイクルに、第1のバッファにいくつの空記憶位置があるかを動的に判定し、第1のバッファが所定数の空記憶位置を有するときに第1の回路にバス要求イネーブル信号を与えるために前記第1の同期手段に結合された空位置判定手段と、
    (d)いくつの記憶位置にデータが書き込まれているかを動的に判定し、第2のクロックのあらゆるサイクルに、第1のバッファのフルネス度を示す複数のフラグを提供するために前記第1の同期手段に結合された満杯位置判定手段と
    を備えることを特徴とするインタフェース回路。
  2. (a)第2の回路から第1の回路へデータを転送するための複数の記憶位置を有する第2のバッファであって、第2の回路が、第2のバッファ自体中の書込みポインタが指す記憶位置に書込みを行い、第1の回路が、第2のバッファ自体中の読取りポインタが指す記憶位置から読取りを行う第2のバッファと、
    (b)第2のバッファに対する書込みと読取りを同期させるために第2のバッファに結合された第2の同期手段と、
    (c)第2のクロックのあらゆるサイクルに、第2のバッファ中のいくつの記憶位置にデータが書き込まれているかを動的に判定し、第2のバッファが、有効なデータを含む所定数の記憶位置を有するときに第1の回路にバス要求イネーブル信号を提供するために前記第2の同期手段に結合された満杯位置判定手段と、(d)第2のバッファ中のいくつの記憶位置が空であるかを動的に判定し、第2のクロックのあらゆるサイクルに、第2のバッファのエンプティネス度を示す複数のフラグを提供するために第2の同期手段に結合された空位置判定手段と
    を備えることを特徴とする請求項1に記載のインタフェース回路。
  3. 空位置判定手段がさらに、
    (a)読取りポインタと書込みポインタとを比較する手段と、
    (b)読取りポインタと書込みポインタとが等価であるか否かを判定する手段と、
    (c)第2のクロックのあらゆるクロックに、第2のバッファ中の空記憶位置の数を動的に判定する手段と
    を備える請求項2に記載のインタフェース回路。
  4. コンピュータ・システムであって、
    第1のクロックに同期するホスト・プロセッサと、
    ホスト・プロセッサに結合されたメモリと、
    ホスト・プロセッサに結合されたシステム・バスと、
    ネットワーク通信を可能にするために、第2のクロックに同期し、かつシステム・バスに結合されたネットワーク・カードと、
    システム・バスと前記ネットワーク・カードとの間でデータを転送するためにシステム・バスおよび前記ネットワーク・カードに結合されたインタフェース回路と
    を備え、
    (a)第1の回路から第2の回路へデータを転送するための複数の記憶位置を有する第1のバッファであって、第1の回路が、第1のバッファ自体中の書込みポインタが指す記憶位置に書込みを行い、第2の回路が、第1のバッファ自体中の読取りポインタが指す記憶位置から読取りを行う第1のバッファと、
    (b)第1のバッファに対する書込みと読取りを同期させるために第1のバッファに結合された第1の同期手段と、
    (c)第2のクロックのあらゆるサイクルに、第1のバッファにいくつの空記憶位置があるかを動的に判定し、第1のバッファが所定数の空記憶位置を有するときに第1の回路にバス要求イネーブル信号を提供するために前記第1の同期手段に結合された空位置判定手段と、
    (d)いくつの記憶位置にデータが書き込まれているかを動的に判定し、第2のクロックのあらゆるサイクルに、第1のバッファのフルネス度を示す複数のフラグを提供するために前記第1の同期手段に結合された満杯位置判定手段と
    を備えることを特徴とするコンピュータ・システム。
  5. (a)第2の回路から第1の回路へデータを転送するための複数の記憶位置を有する第2のバッファであって、第2の回路が、第2のバッファ自体中の書込みポインタが指す記憶位置に書込みを行い、第1の回路が、第2のバッファ自体中の読取りポインタが指す記憶位置から読取りを行う第2のバッファと、
    (b)第2のバッファに対する書込みと読取りを同期させるために第2のバッファに結合された第2の同期手段と、
    (c)第2のクロックのあらゆるサイクルに、第2のバッファ中のいくつの記憶位置にデータが書き込まれているかを動的に判定し、第2のバッファが、有効なデータを含む所定数の記憶位置を有するときに第1の回路にバス要求イネーブル信号を提供するために前記第2の同期手段に結合された満杯位置判定手段と、
    (d)第2のバッファ中のいくつの記憶位置が空であるかを動的に判定し、第2のクロックのあらゆるサイクルに、第2のバッファのエンプティネス度を示す複数のフラグを提供するために第2の同期手段に結合された空位置判定手段と
    を備えることを特徴とする請求項4に記載のコンピュータ・システム。
JP19416796A 1995-07-07 1996-07-05 コンピュータシステム及び第1の回路と第2の回路との間でデータを転送するインタフェース回路 Expired - Lifetime JP3712471B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US49861895A 1995-07-07 1995-07-07
US08/498618 1995-07-07

Publications (2)

Publication Number Publication Date
JPH09222988A JPH09222988A (ja) 1997-08-26
JP3712471B2 true JP3712471B2 (ja) 2005-11-02

Family

ID=23981803

Family Applications (1)

Application Number Title Priority Date Filing Date
JP19416796A Expired - Lifetime JP3712471B2 (ja) 1995-07-07 1996-07-05 コンピュータシステム及び第1の回路と第2の回路との間でデータを転送するインタフェース回路

Country Status (3)

Country Link
US (1) US5931926A (ja)
JP (1) JP3712471B2 (ja)
DE (1) DE69615471T2 (ja)

Families Citing this family (29)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5896384A (en) * 1997-02-28 1999-04-20 Intel Corporation Method and apparatus for transferring deterministic latency packets in a ringlet
US6112319A (en) * 1998-02-20 2000-08-29 Micron Electronics, Inc. Method and system for verifying the accuracy of stored data
US7055151B1 (en) * 1998-04-03 2006-05-30 Applied Micro Circuits Corporation Systems and methods for multi-tasking, resource sharing and execution of computer instructions
US6912566B1 (en) * 1998-07-28 2005-06-28 Siemens Aktiengesellschaft Memory device and method for operating the memory device
US6166963A (en) 1998-09-17 2000-12-26 National Semiconductor Corporation Dual port memory with synchronized read and write pointers
US6862635B1 (en) * 1998-11-13 2005-03-01 Cray Inc. Synchronization techniques in a multithreaded environment
US6460130B1 (en) * 1999-02-19 2002-10-01 Advanced Micro Devices, Inc. Detecting full conditions in a queue
US6745265B1 (en) 2000-03-21 2004-06-01 Agere Systems Inc. Method and apparatus for generating status flags in a memory device
WO2001095089A2 (en) * 2000-06-09 2001-12-13 The Trustees Of Columbia University In The City Of New York Low latency fifo circuits for mixed asynchronous and synchronous systems
US20040128413A1 (en) * 2001-06-08 2004-07-01 Tiberiu Chelcea Low latency fifo circuits for mixed asynchronous and synchronous systems
KR100419256B1 (ko) * 2001-12-21 2004-02-18 엘지전자 주식회사 클럭 속도가 서로 다른 시스템의 셀 인터페이스 장치 및방법
US20050283669A1 (en) * 2004-06-03 2005-12-22 Adkisson Richard W Edge detect circuit for performance counter
US7676530B2 (en) * 2004-06-03 2010-03-09 Hewlett-Packard Development Company, L.P. Duration minimum and maximum circuit for performance counter
US7624319B2 (en) * 2004-06-03 2009-11-24 Hewlett-Packard Development Company, L.P. Performance monitoring system
FR2887093B1 (fr) * 2005-06-10 2007-08-31 Arteris Sa Systeme et procede de transmission de donnees dans un circuit electronique
JP4254932B2 (ja) * 2005-08-31 2009-04-15 Tdk株式会社 メモリコントローラ及びフラッシュメモリシステム
FR2890766B1 (fr) * 2005-09-12 2007-11-30 Arteris Sa Systeme et procede de communication asynchrone sur circuit, entre des sous-circuits synchrones
FR2899413B1 (fr) * 2006-03-31 2008-08-08 Arteris Sa Systeme de commutation de message
FR2900017B1 (fr) * 2006-04-12 2008-10-31 Arteris Sa Systeme d'interconnexions de blocs fonctionnels externes sur puce muni d'un unique protocole parametrable de communication
FR2901437B1 (fr) * 2006-05-16 2008-08-08 Arteris Sa Procede de realisation d'un circuit de synchronisation de donnees echangees de maniere asynchrone entre deux blocs synchrones, et circuit de synchronisation elabore a partir d'un tel procede
FR2902957B1 (fr) * 2006-06-23 2008-09-12 Arteris Sa Systeme et procede de gestions de messages transmis dans un reseau d'interconnexions
FR2904445B1 (fr) * 2006-07-26 2008-10-10 Arteris Sa Systeme de gestion de messages transmis dans un reseau d'interconnexions sur puce
TWI325532B (en) * 2006-09-14 2010-06-01 Novatek Microelectronics Corp Controlling circuit and method for power saving
JP2008276283A (ja) * 2007-04-25 2008-11-13 Seiko Epson Corp ブリッジ回路及びプリンタ
WO2009029509A2 (en) * 2007-08-24 2009-03-05 Air Power Systems, Llc. Vertical axis self-breaking wind turbine
US8711639B2 (en) 2010-11-02 2014-04-29 Micron Technology, Inc. Data paths using a first signal to capture data and a second signal to output data and methods for providing data
GB2497525A (en) 2011-12-12 2013-06-19 St Microelectronics Ltd Controlling shared memory data flow
US11461030B2 (en) * 2019-07-15 2022-10-04 Micron Technology, Inc. Transferring data between clock domains using pulses across a queue
CN113419985A (zh) * 2021-06-15 2021-09-21 珠海市一微半导体有限公司 Spi系统自动读取数据的控制方法及spi系统

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4751671A (en) * 1983-02-14 1988-06-14 Prime Computer, Inc. Size configurable data storage system
US4935894A (en) * 1987-08-31 1990-06-19 Motorola, Inc. Multi-processor, multi-bus system with bus interface comprising FIFO register stocks for receiving and transmitting data and control information
US5426756A (en) * 1992-08-11 1995-06-20 S3, Incorporated Memory controller and method determining empty/full status of a FIFO memory using gray code counters
US5473756A (en) * 1992-12-30 1995-12-05 Intel Corporation FIFO buffer with full/empty detection by comparing respective registers in read and write circular shift registers

Also Published As

Publication number Publication date
DE69615471D1 (de) 2001-10-31
JPH09222988A (ja) 1997-08-26
US5931926A (en) 1999-08-03
DE69615471T2 (de) 2002-05-08

Similar Documents

Publication Publication Date Title
JP3712471B2 (ja) コンピュータシステム及び第1の回路と第2の回路との間でデータを転送するインタフェース回路
US6226698B1 (en) Method and apparatus for dynamically calculating degrees of fullness of a synchronous FIFO
US5884100A (en) Low-latency, high-throughput, integrated cache coherent I/O system for a single-chip processor
US4873703A (en) Synchronizing system
US8260982B2 (en) Method for reducing latency
US6161160A (en) Network interface device architecture for storing transmit and receive data in a random access buffer memory across independent clock domains
US7180332B2 (en) Clock synchronization circuit
US8001409B2 (en) Synchronization device and methods thereof
US5539739A (en) Asynchronous interface between parallel processor nodes
JPH06259225A (ja) データ転送同期装置
US20010032302A1 (en) Methods and apparatus for byte alignment operations for a memory device that stores an odd number of bytes
US6366973B1 (en) Slave interface circuit for providing communication between a peripheral component interconnect (PCI) domain and an advanced system bus (ASB)
US5768624A (en) Method and apparatus for employing ping-pong buffering with one level deep buffers for fast DRAM access
US5898895A (en) System and method for controlling data transmission rates between circuits in different clock domains via selectable acknowledge signal timing
US5894567A (en) Mechanism for enabling multi-bit counter values to reliably cross between clocking domains
KR100963706B1 (ko) 데이터 전송 방법, 데이터 전송 브리지 및 고속 데이터전송 장치
EP0752642B1 (en) Method and apparatus for dynamically calculating degrees of fullness of a synchronous fifo
US7444448B2 (en) Data bus mechanism for dynamic source synchronized sampling adjust
US6880050B1 (en) Storage device, system and method which can use tag bits to synchronize queuing between two clock domains, and detect valid entries within the storage device
US6584536B1 (en) Bus transaction accelerator for multi-clock systems
US6952791B2 (en) Method and circuit for initializing a de-skewing buffer in a clock forwarded system
US9880961B2 (en) Asynchronous bridge circuitry and a method of transferring data using asynchronous bridge circuitry
CN115168264A (zh) 一种跨时钟域的apb总线桥及其方法
CN113491082B (zh) 一种数据处理装置
JP6030033B2 (ja) メモリ装置

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20050712

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20050719

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20050817

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

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

Free format text: PAYMENT UNTIL: 20080826

Year of fee payment: 3

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

Free format text: PAYMENT UNTIL: 20090826

Year of fee payment: 4

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

Free format text: PAYMENT UNTIL: 20090826

Year of fee payment: 4

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

Free format text: PAYMENT UNTIL: 20100826

Year of fee payment: 5

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

Free format text: PAYMENT UNTIL: 20110826

Year of fee payment: 6

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

Free format text: PAYMENT UNTIL: 20110826

Year of fee payment: 6

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

Free format text: PAYMENT UNTIL: 20120826

Year of fee payment: 7

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

Free format text: PAYMENT UNTIL: 20130826

Year of fee payment: 8

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

EXPY Cancellation because of completion of term