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

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

Info

Publication number
JPH09222988A
JPH09222988A JP8194167A JP19416796A JPH09222988A JP H09222988 A JPH09222988 A JP H09222988A JP 8194167 A JP8194167 A JP 8194167A JP 19416796 A JP19416796 A JP 19416796A JP H09222988 A JPH09222988 A JP H09222988A
Authority
JP
Japan
Prior art keywords
buffer
circuit
read
fifo
clock
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.)
Granted
Application number
JP8194167A
Other languages
English (en)
Other versions
JP3712471B2 (ja
Inventor
Louise Y Yeung
ルイズ・ワイ・ユング
Ling Cen
リン・セン
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

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

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Synchronisation In Digital Transmission Systems (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Communication Control (AREA)

Abstract

(57)【要約】 【課題】 同期していない第1の回路と第2の回路との
間でデータを転送するときに、mclkドメイン回路か
らのデータ要求とsclkドメインでのバス要求との間
の短いターンアラウンド時間を達成するインタフェース
回路を提供する。 【解決手段】 読取りバス要求イネーブル生成装置が、
読取りバス要求イネーブル信号を第1の回路に提供し、
At_least_x_words_filledフラ
グ生成装置が、第1のFIFOバッファのフルネス度を
第2の回路に示す複数のフラグを提供する。第2のFI
FOバッファが第2の回路から第1の回路へデータを転
送する。第2のFIFOバッファに対する読取りと書込
みを同期させる関連する論理機構が提供される。書込み
バス要求イネーブル生成装置は、書込みバス要求イネー
ブル信号を第1の回路に提供し、At_least_y
_words_emptyフラグ生成装置は、第2のバ
ッファのエンプティネス度を第2の回路に示す複数のフ
ラグを提供する。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、先入れ先出し(F
IFO)バッファの分野に関し、詳細には、2つの非同
期クロック・ドメイン間の境界を横切る情報を同時に同
期させ、あらゆるクロック・サイクルに一方のクロック
・ドメインにFIFOフルネス(fullness)度の表示を与
え、あらゆるクロック・サイクルに、FIFOがデータ
を受け入れ、あるいは供給する準備が完了したことを示
す他方のクロック・ドメインに対するフラグを与える方
法および装置に関する。
【0002】
【従来の技術】図1は、あるクロック・ドメインと他の
クロック・ドメインとの間でデータを転送する従来技術
の手法を示す図である。ブロック_A3は、クロック・
ドメインAの回路を表す(たとえば、ブロック_A3の
信号はクロック_A5に同期し、クロック_A5の立上
りで信頼できるデータを有する)。同様に、ブロック_
B7は、クロック_B9に同期する回路および信号を表
す。クロック・ドメインAとクロック・ドメインBとの
間にFIFO11が配置される。この場合、データはF
IFO11を通じてブロック_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に対する読取りと書込みは同
期しない)ので、任意のクロック・サイクルに、FIF
O中の内容の「真の」レベルを動的に判定する必要があ
る。たとえば、ブロックAによってFIFOに4つのデ
ータ語が書き込まれ、同じクロック中にブロックBによ
って4つのデータ語が読み取られた場合、FIFOのエ
ンプティネス度またはフルネス度に正味変化はない。
【0007】任意のクロック・サイクルでFIFOの内
容の「真の」レベルを正確に判定するには、ドメインB
から得たFIFOポインタ情報をドメインAのクロック
に同期させ、ドメインBから得た制御情報をドメインA
に同期させなければならないことは明白である。この情
報は、FIFOの現フルネス状態またはフルネス度を判
定する(たとえば、より低速のクロック・ドメインから
の信号をより高速のクロック・ドメインに同期させる)
ために使用される。
【0008】各クロック・サイクルでのFIFOのレデ
ィネス(たとえば、十分な空間またはデータを有する)
を算出し、入出力バスを介してIO DMAスレーブ
(たとえばホスト・メモリ)との間でデータをやり取り
するには、制御信号、アドレス情報、FIFOに対して
どのくらいのデータを書き込み、あるいは読み取るかの
サイズ情報などの情報が必要である。
【0009】あるクロック・ドメインからの信号と他の
クロック・ドメインとを同期させる従来型の方法は、I
Oバスを介したデータ転送に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およびs
clkに基づいて第1の回路への入出力バス上へデータ
を転送する準備が完了したことを示す標識を提供する読
取りバス要求イネーブル生成装置も提供する。読取りバ
ス要求イネーブル生成装置は、第2の回路からのデータ
要求から第1の回路のバス要求までの迅速なターンアラ
ウンド時間を与えることによって、sclkドメイン中
のバスの帯域幅の使用度を最大にして155/622M
bps ATM SARプロトコルをサポートする。
【0018】さらに、読取りバス要求イネーブル生成装
置は、前のDMAサイクルがまだ継続している間(たと
えば、バック・ツー・バックDMA読取りのケース)に
sclkドメイン中の回路がバス要求をアサートできる
ようにする。読取りバス要求イネーブル生成装置は、F
IFOにいくつの空き記憶位置があるかを算出し、まだ
FIFOに書き込まれていないデータの量も算出する回
路を含む。これらの計算は、あらゆるクロック・サイク
ルにmclkドメイン内で行われ、1ビット信号のrd
_BR_enがsclkドメインに同期する。
【0019】本発明は、読取りFIFOのフルネス度を
第2の回路に示す複数のフラグを提供するAt_lea
st_x_words_filledフラグ生成装置も
含む。At_least_x_words_fille
dフラグ生成装置は、単なるFIFO満杯標識ではな
く、読取りFIFOの様々なフルネス度の標識を提供す
る。本発明では、ATMコア(たとえば、インタフェー
ス論理)は、すべてのデータがFIFOに入るのを待つ
のではなく、早めに部分的な読取りを実行することがで
きる。FIFOを満杯にする時間は、入出力バス・スレ
ーブ待ち時間に依存する。本発明は、FIFOがハンド
シェーク志向可変スレーブ待ち時間バスDMA読取りか
らのすべてのデータを受け入れ、あるいは、ハンドシェ
ーク指向可変スレーブ待ち時間バスDMA書込みにすべ
てのデータを提供する準備が完了したことを示すフラグ
を、あらゆるクロック・サイクルにSバス側に提供する
(たとえば、スレーブ装置は、最悪ケースに備えて、バ
ス要求に応答する際の可変待ち時間を有する)。
【0020】本発明は、このフラグ生成装置を提供し
て、より密な粒度での迅速なデータ移動を保証し、従来
技術で論じた待ち時間を短縮する。具体的には、様々な
フルネス度のこれらの標識によって、mclkドメイン
回路は、読取りFIFOが完全に満杯になるのを待たず
にバッファからデータを読み取ることができる。本発明
では、読取りFIFOが必要な数の書き込まれた記憶位
置を有するようになった直後に、mclkドメイン回路
が読取りFIFOからデータを読み取ることができる。
【0021】本発明は、第2の回路から第1の回路(す
なわち、書込みFIFO)へデータを転送するFIFO
バッファも含む。書込みFIFOは複数の記憶位置を有
する。書込みFIFOは、次の読取り位置を指す読取り
ポインタと、次の書込み位置を指す書込みポインタとを
有する。第1の回路は、読取りポインタが指す書込みF
IFO中の記憶位置に対する読取りを行い、第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ドメイン回路要求とs
clkドメイン・バス要求との間の迅速なターンアラウ
ンドを達成するために、読取りFIFO、関連する同期
論理機構、読取りバス要求イネーブル生成装置、At_
least_x_words_filledフラグ生成
装置、書込みFIFO、関連する同期論理機構、書込み
バス要求イネーブル生成装置、At_least_y_
words_emptyフラグ生成装置を提供する。さ
らに、本発明は、あらゆるmclkサイクルに、FIF
Oの状態(たとえば、読取りFIFOおよび書込みFI
FO中の満杯記憶位置または利用可能な記憶位置の数)
の正確な表示を第2の回路に提供する。
【0027】
【発明の実施の形態】図2は、本発明32を組み込んだ
コンピュータ・システムを示す。本発明32は、ホスト
・コンピュータ・システム18とコンピュータ・ネット
ワーク・インタフェース19との間でデータを転送する
インタフェース回路(すなわち、SB_ATM)であ
る。インタフェース回路SB_ATM32は、ホスト・
コンピュータ・システム18からコンピュータ・ネット
ワーク・インタフェース論理機構19へデータを転送す
る読取りモジュール33と、コンピュータ・ネットワー
ク・インタフェース論理機構19からホスト・コンピュ
ータ・システム18への転送を行う書込みモジュール3
4とを含む。
【0028】ホスト・コンピュータ・システム18は、
プロセッサ19と、ホスト・メモリ20と、入出力装置
をホスト・プロセッサ19に接続する入出力(I/O)
バス35と、入出力バス35とのプロトコル・インタフ
ェースを実施する入出力装置回路37(たとえば、Sバ
ス・プロトコル・エンジン)とを含む。プロセッサ19
は、メモリ・バス22を介してホスト・メモリ20に結
合される。ホスト・コンピュータ・システム18中の要
素は、第1のクロック(たとえば、sclk38)に対
して同期する。
【0029】コンピュータ・ネットワーク・インタフェ
ース論理機構19は、ホスト・コンピュータ・システム
18によって指定された第1のフォーマットを有するデ
ータを、コンピュータ・ネットワーク19によって指定
された第2のフォーマットに変換するATM_SYS4
7を含む。ATM_SYS47は、読取りモジュール3
3からデータ経路23を通じてATM_SYS47まで
のデータ転送を管理するATM読取り論理機構20を含
む。ATM読取り論理機構20は、複数の制御情報およ
びアドレス情報を読取りモジュール33に提供し、AT
M読取り論理機構には、データ経路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はさ
らに、読取りバス要求イネーブル生成装置(RBRE
G)89およびAt_least_x_words_f
illedフラグ生成装置(ALXWFFG)91に結
合される。
【0034】読取りFIFOバッファ(読取りFIF
O)83は複数の記憶位置を有する。読取りFIFOバ
ッファ83は、RF_SYNC装置84によって管理さ
れる書込みポインタ(wptr)が指す位置にSB_P
RO37によって書き込まれる。読取りFIFO83
は、やはりRF_SYNC装置84によって管理される
読取りポインタ(rptr)が指す位置からATM_S
YS47によって読み取られる。読取りFIFOバッフ
ァ83は、読取りポートと書込みポートとを含む二重ポ
ートRAM(DPRAM)によって実施することができ
る。rptrポインタおよびwptrポインタはこの二
重ポートRAMのアドレスとして働く。
【0035】ATM_SYS47は、sclk38より
も高い周波数を有するSB_ATM31への第2のクロ
ック(すなわち、mclk58)を提供する。sclk
38とmclk58は、この2つのクロックの周波数ま
たは位相間に必要な関係がないという点で互いに同期し
ない。
【0036】読取りFIFO83は、SB_PRO37
からATM_SYS47へ転送されるデータをバッファ
する。データは、sclkに同期するFIFO_wr_
en41を介しSB_PRO37によって読取りFIF
O83に書き込まれる。データは、あらゆるsclk3
8サイクルに読取りFIFO83に書き込むことがで
き、あるいは、必ずしもあらゆるsclkサイクルに書
き込まなくてもよい。sclkの立上りでFIFO_w
r_enable41がアサートされた場合、読取りF
IFO83にデータが書き込まれる。FIFO_wr_
en41は、sclkベースのものであり、読取りモジ
ュール33に入り、読取りFIFO83に書き込まれる
データがあることを示す。同様に、データはATM_S
YS47によって、あらゆるmclk58サイクルに読
取りFIFO83から読み取ることができる。ATM_
rd_en信号63が1mclkにわたってアサートさ
れた場合、mclk58の立上りに1データ語が読取り
FIFO83からATM_SYS47に読み込まれる。
ATM_rd_en63がアサートされるmclkサイ
クルの数は、読み出される語の数に等しい。
【0037】指定”read”および”write”
は、”FIFO”と共に使用されたときには、ホスト・
コンピュータ・システム(たとえば、メモリ20)中の
データへのアクセスを示す。たとえば、”Read”
は、ホスト・コンピュータ・システム中のメモリ20か
らデータが読み取られることを示す。同様に、”Wri
te”はホスト・コンピュータ・システム中のメモリ2
0へのデータ転送を示す。
【0038】sclk38がmclk58に同期しない
ので、読取りFIFO83は独立型であり、非同期的に
書き込まれ読み取られる。本発明は、RF_SYNC8
4を提供し、非同期読取りおよび書込みをそれに同期さ
せる。したがって、本発明は、以下で詳しく説明する同
期論理機構を提供して読取りFIFOを同期させる。
【0039】書込みモジュール34は、WR_SYNC
論理機構114に結合された書込みFIFO113も含
む。書込みモジュール34は、共に、WF_SYNC1
14に結合された、書込みバス要求イネーブル生成装置
(WBREG)119とAt_least_y_wor
ds_emptyフラグ生成装置(ALYWEFG)1
21も含む。書込みFIFO113は、mclk58お
よびATM_wr_en71の組合せを通じてATM_
SYS47によって書き込まれる。書込みFIFO11
3はあらゆるmclkサイクル58に書き込むことがで
きる。ATM_wr_en信号がアサートされた場合7
1、mclk58の立上りにATM_SYS47から書
込みFIFO113にデータが書き込まれる。書込みF
IFO113は、sclk38およびFIFO_rd_
en42信号の組合せを通じてSB_PRO37によっ
て読み取られる。sclk38の立上りでFIFO_r
d_en42がアサートされた場合、SB_PRO37
によって書込みFIFO113からデータが読み取られ
る。
【0040】WF_SYNC論理機構114は、書込み
FIFO113に対する読取りおよび書込みを同期させ
る。
【0041】本発明のSB_ATM32は、SB_AT
M32と入出力バス35との間のインタフェースを提供
するSB_PRO37に結合される。前述のように、S
B_PRO37はプロトコル・エンジンであり、入出力
バス35プロトコルを実施する。この実施形態のSB_
PRO37は状態マシンであり、IEEE Insti
tute of Electronics Elect
rical Engineers Sbus 1496
プロトコルを実施する。たとえば、SB_PRO37
は、アドレスおよびデータをバスを介して転送するタイ
ミング信号およびハンドシェーク信号を生成する。SB
_PRO37は、入出力バス35を通じてSB_ATM
32とメモリ20との間でデータを転送するデータ経路
(図示せず)を含む。SB_PRO37は、メモリとの
間でデータを転送するデータ経路を提供するだけでな
く、本発明に関連するいくつかの信号も提供する。
【0042】第1に、SB_PRO37は、コンピュー
タ・システム(たとえば、ホスト・プロセッサ19)に
よって生成されるシステム・クロック38(たとえば、
Sバス用のsclk)を提供する。前述のように、メモ
リ20や入出力バス35などのシステム構成要素はsc
lk38に対して同期する。第2に、SB_PRO37
は、読取りFIFO83にデータを書き込めるようにす
るFIFO書込みイネーブル信号(FIFO_wr_e
n)41と、書込みFIFO113からデータを読み取
れるようにするFIFO読取りイネーブル信号(FIF
O_rd_en)42を提供する。
【0043】本発明はATM_SYS47にも結合され
る。ATM_SYS47は、読取りFIFO83からA
TM_data_outを受け取る送信FIFO22
と、本発明にATM_data_in51を提供する受
信FIFO26とを含む。ATM_SYS47は、mc
lk58を生成するmclkクロック生成装置28も含
む。読取りイネーブル信号(たとえば、ATM_rd_
en)63、ならびにrd_size57およびrd_
addr61の形のサイズ情報およびアドレス情報(た
とえば、読取りのサイズおよび読み取るべきメモリ位置
のアドレス)を本発明に提供するATM読取り論理機構
20も含む。ATM読取り論理機構20はALXWFF
G91から複数のAt_least_x_words_
filledフラグも受け取る。
【0044】ATM_SYS47は、初期書込みアドレ
ス(たとえば、wr_addr67)および書き込むべ
きデータの量(たとえば、wr_size67)の形の
書込みに関するサイズ情報およびアドレス情報を提供す
るATM書込み論理機構24も含む。ATM_Writ
e_logic24はまた、書込みイネーブル信号(た
とえば、ATM_wr_en71)を本発明に提供し、
複数のAt_least_y_words_empty
フラグをAlYWEFG121から受け取る。
【0045】ATM読取り論理機構および書込み論理機
構(20、24)は、あらゆるmclkサイクル58に
本発明の読取りFIFO83および書込みFIFO11
3に対する読取りおよび書込みをイネーブルすることが
できる。本発明のALXWFFG論理機構91およびA
LYWEFG論理機構121は、読取りFIFO83中
の満杯位置の数および書込みFIFO113中の空位置
の数をそれぞれ、ATM読取り論理機構および書込み論
理機構に示す複数のフラグを提供する。論理ブロック9
1および121は、所定数の位置が満杯または空になっ
た後、ATM_SYS47がただちに読取りFIFO8
3からの読取りを行い、あるいは書込みFIFO113
への書込みを行うことができるように、あらゆるmcl
k58サイクルにそれぞれのFIFOの状態(たとえ
ば、満杯または空の位置の数)を判定し提示する。あら
ゆるmclkサイクルに読取りFIFOおよび書込みF
IFOの状態が変化する可能性があるので、本発明は、
あらゆるmclkサイクルに読取りFIFOまたは書込
みFIFOの状態を提示する。
【0046】SB_PRO37は、入出力バス35自体
の制御をSB_PRO37に与えるバス・アービタ(図
示せず)への入出力バス35上にバス要求信号43をア
サートするバス要求生成装置41も含む。
【0047】本発明は、読取りバス要求イネーブル信号
39(すなわち、rd_BR_en)および書込みバス
要求イネーブル信号40(すなわち、wr_BR_e
n)をバス要求生成装置41に与える。バス要求生成装
置41は、どちらかの信号に応答して、入出力バス35
へのバス要求43を生成することをイネーブルされる。
【0048】たとえば、バス要求生成装置41は、rd
_BR_en信号39を受け取ったときに、バス要求4
3を入出力バス35上にアサートすることをイネーブル
される。SB_PRO37がバス35の制御を与えられ
た後、直接メモリ・アクセス(DMA)バースト・サイ
クルを介しSB_PRO37を通じてメモリ37から本
発明の読取りFIFO83にデータが転送される。
【0049】図4は、SB_ATM32の特定の構成要
素を詳しく示すものである。本発明は、さらに読取りF
IFO(たとえば、二重ポートRAM)83とRf_S
ync84とを含む同期読取りFIFO81を含む。R
f_Sync84はさらに、読取りFIFO83中の次
に読み取るべき位置を指す読取りポインタ(rptr)
101を管理する読取り論理機構85と、読取りFIF
O83の次に書き込むべき位置を指す書込みポインタ
(wptr)103を管理する書込み論理機構87とを
含む。
【0050】同期読取りFIFO81には、sclk3
8、SB_PRO37からのFIFO_wr_en4
1、ATM_SYS47からのmclk58およびAT
M_rd_en63が提供される。同期読取りFIFO
81は、読取りバス要求イネーブル生成装置89およ
び”At_least_x_words_fille
d”フラグ生成装置91にrptr101(たとえば、
FIFOアドレス情報)およびwptr103(たとえ
ば、FIFOアドレス情報)を提供する。
【0051】読取りバス要求イネーブル生成装置89
は、他のバス・サイクル情報105をSB_PRO37
から受け取ると共に、DMA読取り要求サイズ情報およ
びアドレス情報をATM_SYS47から受け取り、r
d_BR_en39をSB_PRO37に提供する。読
取りバス要求イネーブル生成装置89については下記で
詳しく説明する。”At_least_x_words
_filled”フラグ生成装置91は、At_lea
st_x_words_filledフラグ65をAT
M_SYS47に提供する。この場合、xは整数であ
る。
【0052】本発明は、さらに第2の二重ポートRAM
113とWf_Sync114とを含む同期書込みFI
FO111も含む。Wf_Sync114はさらに、書
込みFIFOの読取りポインタ(rptr)123を管
理する読取り論理機構115と、書込みFIFO111
の書込みポインタ(wptr)125を管理する書込み
論理機構117とを含む。
【0053】同期読取りFIFO81と同様に、同期書
込みFIFO111は、書込みバス要求イネーブル生成
装置119と”At_least_y_words_e
mpty”フラグ生成装置121の両方にrptr12
3およびwptr125を提供する。DPRAM113
にATM_data_inが書き込まれ、書込みFIF
O111からSB_data_outが読み取られる。
書込みバス要求イネーブル生成装置119には、mcl
k58、sclk38、wr_sizeのサイズ情報、
wr_addrのメモリ・アドレス情報がATM_SY
S47から提供され、かつ書込みバス要求イネーブル生
成装置はSB_PRO37にwr_BR_en40を提
供する。書込みイネーブル生成装置119はSB_PR
O37からSバス・サイクル情報27も受け取る。
【0054】”At_least_y_words_e
mpty”フラグ生成装置121にはrptr123お
よびwptr125が提供され、かつ”At_leas
t_y_words_empty”フラグ生成装置12
1はATM−SYS47に対する適切な1組のAt_l
east_y_words_emptyフラグを生成す
る。これらのフラグは、あらゆるmclk58サイクル
に書込みFIFO113中の空記憶位置の数(たとえ
ば、”y”、すなわち2語、4語など)をATM_SY
S47に示す。同様に、At_least_x_fil
ledフラグ65は、あらゆるmclkサイクルに、有
効なデータが書き込まれている読取りFIFO81中の
記憶位置の数を示す。
【0055】図5は、同期読取りFIFO81を詳しく
示すものである。読取りFIFO83は、二重ポートR
AM(DPRAM)自体への書込みを行うAポートとD
PRAM自体からの読取りを行うBポートとを有するD
PRAMとして実施することができる。各ポートは、別
々のアドレス線、クロック、読取りイネーブルまたは書
込みイネーブルを有する。
【0056】書込み論理機構87は、DPRAM83の
ポートAに対するwptr(たとえば、アドレス)を生
成する書込みポインタ生成装置141を含む。書込みポ
インタ生成装置141は、クロック信号を受け取ったと
きには必ずwptr103を増分する循環カウンタと共
に実施することができる。書込み論理機構87は、sc
lkベースのFIFO_wr_en41をmclk58
に同期させるWr_clka生成装置143も含む。こ
のWr_clka生成装置143にはmclk58、s
clk38、FIFO_wr_en信号41が提供さ
れ、かつWr_clka生成装置は書込みポインタ生成
装置141に同期書込みクロック信号(wr_clk
a)147を提供する。wr_clka信号147は、
DPRAM83のポートAのクロック入力(すなわち、
clk_a)にも提供される。Wr_clka生成装置
143を実施する回路については、図6に関して下記に
詳しく説明する。
【0057】読取り論理機構85は、DPRAM83の
ポートBのアドレス入力に提供される読取りポインタ1
01を生成するために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と、mcl
k58を用いてクロッキングされるフリップフロップ1
69の出力とを比較する。フリップフロップ163の反
転出力は、フリップフロップ161の入力に提供され
る。
【0059】ANDゲート173には、FIFO_wr
_en信号41と、反転されたmclkを用いてクロッ
キングされるフリップフロップ168の出力からの信号
が提供される。フリップフロップ168の入力にはFI
FO_wr_en信号41が提供される。
【0060】ANDゲート173の出力は、反転された
mclk58を用いてクロッキングされる他のフリップ
フロップ183に提供される。このフロップ183の出
力は、wr_clka信号147を生成するようにmc
lk58を用いてクロッキングされるORゲート・パル
ス形成回路185に渡される。
【0061】点線内の回路構成要素は、Wr_clka
生成装置143の底部としてミラーリングされる。具体
的には、反転されたmclkを用いてクロッキングされ
るフリップフロップ177は、第2の比較回路179へ
送られるtog2信号を生成する。比較回路179の出
力は第2のANDゲート181に提供される。ANDゲ
ート181には、FIFO_wr_enable信号4
1と、mclk58を用いてクロッキングされるフリッ
プフロップ175の出力が提供される。ANDゲート1
81の出力は、やはりmclk58を用いてクロッキン
グされる別のフリップフロップ187への入力として提
供される。フリップフロップ187の出力は、wr_c
lka147を生成するためにORゲート・パルス形成
回路185に提供される。
【0062】前述のように、点線ブロックはWr_cl
ka生成装置143の下部と対称的である。点線部分の
回路要素は、mclk58立上りを用い、次いでmcl
k58立下りを用いてFIFO_wr_en41をサン
プリングする。あらゆる同期に2つのサンプルが必要で
ある。Wr_clka生成装置回路143の下部は、m
clkの立下り、次いでmclkの立上りでFIFO_
wr_enをサンプリングする。回路の上半分と下半分
のどちらかが、FIFO_wr_en41のサンプルを
得て、適切な内部フラグをトグルし(すなわち、tog
1またはtog2)他の半分がサンプルを得るのを禁止
する。
【0063】Wr_clka生成装置143は、scl
kベースのFIFO_wr_en41信号をmclk3
8に同期させる。wr_clka信号147は、mcl
k58の関数であり、有効なFIFO_wr_en41
があるときにはいつでも生成される。wr_clka1
47はmclk58の立上りと立下りのどちらかに同期
する。wr_clka147は、wptr103を維持
しDPRAM83のポートAをクロッキングするために
使用される。
【0064】本発明は、mclk58がsclk38よ
りもずっと高速であることを使用する。この特定の実施
形態では、各sclk38周期の長さは、mclk58
の3つのエッジに適応するためにmclk58の長さの
少なくとも1.5倍である必要がある。この特性の結
果、同期論理機構84は極めて簡略化される(たとえ
ば、本発明を実施するのに必要なのは、従来技術で必要
とされる多数のフリップフロップおよび特殊なハンドシ
ェーク論理機構ではなく、最小数のゲートおよびフリッ
プフロップだけである)。この同期方式は、FIFOの
大きさがどれだけかにかかわらずに(すなわちFIFO
サイズに依存せずに)、同様にうまく機能する。本発明
は、同期回路143が適切とみなしたときに、mclk
58によってsclkベースのFIFO_wr_en4
1をサンプリングする。FIFO_wr_en41のサ
ンプリングは、各mclkエッジ(たとえば、立上り、
次いで立下り、あるいは立下り、次いで立上り)に基づ
くものである。このサンプリングまたは同期の結果はパ
ルスwr_clka147であり、書込みポインタを更
新するために使用され、読取りDPRAM83への書込
みクロックとしても使用される。したがって、読取りF
IFO(DPRAM)83は、1つのクロック・ドメイ
ンのみ(すなわち、mclkドメイン)において、ラッ
チ・ベースではなく完全な同期エッジ・ベースで動作す
る。
【0065】Wr_clka生成装置143中のトグル
生成装置145は、2つのmclk58エッジによって
有効なFIFO_wr_en41がサンプリングされた
後にあらゆるsclk38立上りでトグルされるフラグ
(たとえば、トグル)を生成し、wr_clka147
が生成される。フラグがトグルしており、mclkエッ
ジによって別のFIFO_wr_en41が検知された
場合、その信号は引き続き同期回路(たとえば、直列さ
れた2つのフロップ)内を進行して別のwr_clka
147を生成することができる。wr_clka147
が生成された後、次のsclk立上りで、フラグは再び
トグルする。したがって、本発明は、あらゆるmclk
58立上りで信頼できるものとなるロックステップ同期
を行う。さらに、本発明は簡単に、かつ効率的に実施す
ることができる(たとえば、最小限の論理機構で実施す
ることができる)。
【0066】図7は、図6に示したwr_clka生成
装置およびシンクロナイザ・ブロック143に関するタ
イミング図を示す。図7は、mclk58、sclk3
8、トグル信号171、wr_clka147、FIF
O_wr_en信号41、wptr103の各関連信号
を示す。前述のように、mclk58とsclk38は
互いに同期しない(たとえば、mclk58とsclk
38の相対位相に関する仮定はない)。この特定の実施
形態では、mclk58は約40MHzであり、scl
k38は約16MHzないし25MHzの範囲である。
rptr101とwptr103は共にmclk58に
同期する。本発明は、At_least_x_word
s_filledフラグを使用して、同じ位置に対する
同時読取りおよび書込みが行われないようにする。AT
M読取り論理機構20は、適切なフラグを参照し、フラ
グが許容するものだけを読み取る。フラグは常に(たと
えば、FIFOがラップアラウンドしているとき、ある
いはFIFOがラップアラウンドされていないとき、あ
るいはFIFOに対するあるポインタが固定されている
とき)、FIFO中の読み取られていない新しい語の数
の真のリアルタイム標識であるので、
【0067】この実施形態では、一度に64データ・ビ
ットが読取りFIFO83に書き込まれ、あるいは読取
りFIFOから読み取られる。
【0068】次に図7を参照すると分かるように、mc
lk58の立上りと立下りの両方でFIFO_wr_e
n41がアサートされたときに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は、DPRAM11
3のポートAに対するrptr123(たとえば、アド
レス)を生成する読取りポインタ生成装置249を含
む。読取りポインタ生成装置249は、クロック信号を
受け取ったときには必ずrptr123を増分する循環
カウンタと共に実施することができる。読取り論理機構
115は、sclkベースのFIFO_rd_en42
をmclk58に同期させるRd_clka生成装置2
43も含む。このRd_clka生成装置243にはm
clk58、sclk38、FIFO_rd_en信号
42が与えられ、かつRd_clka生成装置は読取り
ポインタ生成装置249に同期書込みクロック信号(r
d_clka)247を与える。rd_clka信号2
47は、DPRAM113のポートAのクロック入力
(すなわち、clk_a)にも与えられる。Rd_cl
ka生成装置243を実施する回路については、図9に
関して下記に詳しく説明する。
【0071】書込み論理機構117は、ATM_wr_
en71がアサートされたときにmclk58によって
クロッキングされる書込みポインタ生成装置(Wptr
生成装置)241を含む。書込みポインタ生成装置24
1は、DPRAM113のポートBのアドレス入力に与
えられる書込みポインタ125を生成する。ポートBは
mclk58を用いてクロッキングされる。書込みポイ
ンタ生成装置241は、あらゆるmclkサイクルにw
ptr125を増分する循環カウンタとして実施するこ
ともできる。
【0072】図9は、本発明のRd_clka生成装置
回路243を示す。rd_clka247によってクロ
ッキングされる第2のフリップフロップ263へ送られ
る信号を生成するために第1のフリップフロップ261
にsclk38が提供される。フリップフロップ263
の出力はtog1信号265であり、トグル信号271
を生成するために第1の比較回路267に提供される。
トグル信号271はさらに、ANDゲート273へ送ら
れる。比較回路267は、tog1 265と、mcl
k58を用いてクロッキングされるフリップフロップ2
69の出力とを比較する。フリップフロップ263の反
転出力は、フリップフロップ261の入力に結合され
る。
【0073】ANDゲート273の出力は、反転された
mclk58を用いてクロッキングされる他のフリップ
フロップ283に与えられる。このフリップフロップ2
83の出力は、rd_clka信号247を生成するよ
うにmclk58を用いてクロッキングされるORゲー
ト・パルス形成回路285に渡される。
【0074】ANDゲート273には、FIFO_rd
_en信号42と、反転されたmclkによってクロッ
キングされるフリップフロップ268の出力も加えられ
る。フリップフロップ268は入力としてFIFO_r
d_en信号42を有する。
【0075】点線内の回路構成要素は、Rd_clka
生成装置243の下部としてミラーリングされる。具体
的には、反転されたmclk58を用いてクロッキング
されるフリップフロップ277は、第2の比較回路27
9へ送られるtog2信号を生成する。比較回路279
の出力は第2のANDゲート281に提供される。AN
Dゲート281には、FIFO_rd_enable信
号42と、やはりmclk58を用いてクロッキングさ
れるフリップフロップ275の出力が提供される。AN
Dゲート281の出力は、やはりmclk58を用いて
クロッキングされる別のフリップフロップ287への入
力として提供される。フリップフロップ287の出力
は、rd_clka247を生成するためにORゲート
・パルス形成回路285に提供される。
【0076】前述のように、点線ブロックはRd_cl
ka生成装置243の下部と対称的である。点線部分の
回路要素は、mclk58立上りを用い、次いでmcl
k58立下りを用いてFIFO_rd_en42をサン
プリングする。あらゆる同期に2つのサンプルが必要で
ある。Rd_clka生成装置回路243の下部は、m
clkの立下り、次いでmclkの立上りでFIFO_
rd_enをサンプリングする。回路の上半分と下半分
のどちらかが、FIFO_rd_en42のサンプルを
得て、適切な内部フラグをトグルし(すなわち、tog
1またはtog2)他の半分がサンプルを得るのを禁止
する。
【0077】Rd_clka生成装置243は、scl
kベースのFIFO_rd_en42信号をmclk3
8に同期させる。rd_clka信号247は、mcl
k58の関数であり、有効なFIFO_rd_en42
があるときにはいつでも生成される。rd_clka2
47は、rptr123を維持しDPRAM113のポ
ートAをクロッキングするために使用される。
【0078】本発明は、mclk58がsclk38よ
りもずっと高速であることを使用する。この特定の実施
形態では、各sclk38周期の長さは、mclk58
の長さの少なくとも1.5倍である必要がある。本発明
は、同期回路243が適切とみなしたときに、mclk
58によってsclkベースのFIFO_rd_en4
2をサンプリングする。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_clka
247を生成することができる。rd_clka247
が生成された後、次のsclk立上りで、フラグは再び
トグルする。したがって、本発明は、あらゆるmclk
58立上りで信頼できるものとなるロックステップ同期
を行う。さらに、本発明は簡単に、かつ効率的に実施す
ることができる(たとえば、最小限の論理機構で実施す
ることができる)。
【0080】図10は、図9に示したRd_clka生
成装置243に関するタイミング図を示す。図10は、
mclk58、sclk38、トグル信号271、rd
_clka247、FIFO_rd_en信号42、r
ptr123の各関連信号を示す。前述のように、mc
lk58とsclk38は互いに同期しない(たとえ
ば、mclk58とsclk38の相対位相に関する仮
定はない)。この特定の実施形態では、mclk58は
約40MHzであり、sclk38は約16MHzない
し25MHzの範囲である。wptr125とrptr
123は共にmclk58に同期する。At_leas
t_y_words_emptyフラグ生成装置121
は、書込みFIFO113中の同じ位置に対して読取り
と書込みが同時に行われることがないようにする。
【0081】この実施形態では、一度に64データ・ビ
ットが書込みFIFO113に書き込まれ、あるいは書
込みFIFO113から読み取られる。
【0082】次に図10を参照すると分かるように、m
clk58の立上りと立下りの両方でFIFO_rd_
en42がアサートされたときにrd_clka247
が生成される。トグル信号271は、前のrd_clk
aが発生しており、これがFIFO_rd_en42の
新しいサンプルであることを示す。rd_clka24
7は、mclk58の2分の1周期だけ持続し、特定の
トグル値に対して1度だけ生成される。rd_clka
247は、rptr123を、次に書き込むべき記憶位
置を指すように増分する。mclk58は、書込みポイ
ンタ(wptr)125を、次に書き込むべき記憶位置
を指すように増分する。
【0083】読取りFIFOが特定のsclkサイクル
に直接メモリ・データ転送(DMA)用の十分な空間を
有するかどうかは、rptrとwptrの両方の値に依
存する。rptrおよびwptrはあらゆるmclkに
更新される可能性があるので、「距離」(たとえば、r
ptrが指す位置とwptrが指す位置との間の記憶位
置の数)は、本発明によってあらゆるmclkサイクル
に動的に判定される。
【0084】考慮すべき4つの別々なケースがある。第
1のケースでは、rptrがwptrよりも小さく(す
なわち、wptrの後方に位置する)、wptrがラッ
プアラウンドしていない。第2のケースでは、rptr
がwptrよりも小さく、wptrがラップアラウンド
している。第3のケースでは、rptrがwptrに等
しく、rptrがwptrに追いついた。第4のケース
では、rptrがwptrに等しく、rptrがwpt
rの方へ逆進した(たとえば、rptrが位置2に停止
しており、wptrが位置0から位置1に増分してい
る)。
【0085】前のSバスDMAがまだ継続中であり、デ
ータがまだ読取りFIFOに書き込まれているときに
は、rptrとwptrとの間の距離を調整する必要が
ある。本発明は、現要求(たとえば、ホスト・メモリか
らバイト・ブロックを読み取り、あるいはホスト・メモ
リにバイト・ブロックを書き込むことを要求するATM
_SYS47からの読取り要求または書込み要求)を処
理する際、前の要求のデータ・サイズおよびアドレスな
らびに現要求のデータ・サイズおよびアドレスに基づく
バス許可イネーブル信号39、42をアサートするか否
かを決定する際にrptrとwptrとの間の距離の調
整を動的に実行する。
【0086】この調整は、まだ読取りFIFOへ転送さ
れていない語の予想される古い数に基づくものである。
まだ転送されていない語の予想される古い数は、古いr
d_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信号は、そのs
clkサイクルにバス35上にバス要求をアサートでき
るかどうかを判定する。
【0089】図11は、本発明の読取りバス要求イネー
ブル生成装置89の構成要素を詳しく示すものである。
読取りバス要求イネーブル生成装置89は、いつ読取り
バス要求イネーブル信号(rd_BR_en)39をア
サートすべきかを判定する回路301を含む。この回路
301はさらに、複数のスナップショット・レジスタ3
03とイネーブル生成装置305とを含む。回路301
は、sclk38ベースのSバス情報101を、mcl
k58に同期するSバス情報307(すなわち、inf
o_mclk)に変換する同期回路(synchro)
306に結合される。Sバス情報101は、Sバス・サ
イクルのアドレス変換サイクル中の適当な点をRBRE
G89に示し、それによって、wptrまたはrptr
の信頼できるスナップショットをとることができる。第
1のクロックに基づく第1の信号を、第2のクロックに
同期する第2の信号に同期させる同期回路は当技術分野
において良く知られている。直列された2つのフリップ
フロップによって同期回路を実施することができる。
【0090】イネーブル生成装置305は、mclk5
8に同期するバス要求イネーブル信号(enable_
mclk)306を生成する。イネーブル生成装置30
5には、同期読取りFIFO回路81からの現rptr
101およびwptr103、同期回路306からのi
nfo_mclk307、ATM_SYS47からの現
rd_size59およびrd_addr61、複数の
スナップショット・レジスタ303からのrptr10
1、wptr103、rd_size59、rd_ad
dr61、info_mclk307の古い値が提供さ
れる。スナップショット・レジスタ303は、古い値
(たとえば、前のmclkサイクルでの読取りFIFO
の状態)をラッチするように働く。イネーブル生成装置
305は、提供された情報(たとえば、読取りFIFO
の現状態情報と読取りFIFOの古い状態情報の両方)
からenable_mclk信号306を動的に決定す
る。enable_mclk信号306は、(rptr
とwptrとの間の距離)−(たとえば、バック・ツー
・バック読取りDMAの場合に継続中の前のSバスDM
Aからまだ転送されていない語)≧(現rd_size
およびrd_addrに基づいてSバスを介して読み取
るべきバイトの数)を計算することによって生成され
る。この関係は、当技術分野で知られている演算論理回
路または組合せ論理回路、あるいはその両方によって実
施することができる。enable_mclk306
は、rd_BR_en信号39を生成する同期回路30
9へ送られる。enable_mclk306は単一ビ
ット・フラグである。同期回路309は、このmclk
ベースの信号、enable_mclk306をscl
kベースの信号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サイクルに、メモリ2
0へ転送して書き込むのに十分なデータが書込みFIF
O113中にあるか否かを動的に判定する。バス要求イ
ネーブル生成装置89、119は、入出力帯域幅の使用
度を最大にしてバック・ツー・バックDMAをパイプラ
イン化する。enable_mclk信号356は、
(rptrとwptrとの間の距離)−(バック・ツー
・バック書込みDMAの場合に継続中の前のSバスDM
Aからまだ読み取られていない語)≧(現wr_siz
eおよびwr_addrに基づいてSバスを介して書き
込むべきバイトの数)を計算することによって生成され
る。この関係は、当技術分野で知られている演算論理回
路または組合せ論理回路、あるいはその両方によって実
施することができる。
【0092】図13は、At_least_x_wor
ds_filledフラグ生成装置91が、読取りFI
FO83に書き込まれている語の数を示す複数のフラグ
をどのように生成するかを説明するフローチャートを示
す。第1に、フラグ生成装置91は、読取りポインタと
書込みポインタが等しいか否かを判定する(決定論理ブ
ロック401)。読取りポインタと書込みポインタが等
しい場合、フラグ生成装置91はさらに、読取りFIF
O83が満杯かどうかを判定する(決定論理ブロック4
03)。読取りFIFO83が満杯である場合、フラグ
生成装置91はすべてのAt_least_x_wor
ds_filledフラグ65をアサートする(すなわ
ち、すべてのフラグが有効になる)(論理ブロック40
7)。FIFO83が満杯ではない場合、FIFO83
は空でなければならず(すなわち、rptr=wptr
であり、満杯ではない場合、FIFOは空でなければな
らない)、フラグ生成装置91はすべてのAt_lea
st_x_words_filledフラグ405をデ
アサートする。
【0093】書込みポインタが読取りポインタに等しく
ないとフラグ生成装置91が判定した場合、wptr1
03がラップアラウンドしているか否かがさらに判定さ
れる(409)。wptr103がラップアラウンドさ
れていると判定された場合、書き込まれている語の数
は、FIFOのサイズ(この実施形態では14個の64
ビット位置)から読取りポインタと書込みポインタとの
間の差を減じた値に等しい(論理ブロック411)。読
取りFIFO83がラップアラウンドされていない場
合、書き込まれている語の数は、書込みポインタと読取
りポインタとの差に等しいに過ぎない(論理ブロック4
15)。書き込まれている語の数が算出された後、フラ
グ生成装置91によって適当なフラグがセットされ(論
理ブロック413、417)、あらゆるmclkサイク
ルにATM_SYS47へ送られる。本発明は、あらゆ
るmclkサイクルにこれらのフラグを更新する。
【0094】図14は、At_least_y_wor
ds_emptyフラグ生成装置121があらゆるmc
lkサイクルに、どのように書込みFIFO113中の
空記憶位置の数を動的に判定するかを示す。この方法
は、フラグ生成装置121によって実行され、図14に
示したステップが実行される。フラグ生成装置121
は、書込みFIFO113中の空の記憶位置の数を動的
に判定する。フラグ生成装置121は、書込みFIFO
113中に少なくとも”y”個の空語位置があることを
示す複数のフラグを生成する。Yは任意の整数であって
よい(たとえば、この実施態様では、yは2、または
4、または6、または8に等しい)。これらのフラグ7
3は、ATM_SYS47が、あらゆるmclk58
に、ATM_SYS47自体が書込みFIFO113に
書き込むことができる語の数を判定できるように、AT
M_SYS47に情報を提供する。
【0095】第1に、フラグ生成装置121はまず、w
ptr123がwptr125に等しいかどうかを判定
する(決定論理ブロック501)。これらの2つのポイ
ンタが等しい場合、書込みFIFO113が空であるか
否かが判定される(決定論理ブロック503)。書込み
FIFO113が空である場合、フラグ生成装置121
はすべてのAt_least_y_words_emp
tyフラグをアサートする(論理ブロック507)。F
IFO113が空になると判定された場合、FIFO8
3は空でなければならず(すなわち、rptr=wpt
rであり、フラグ生成装置121はすべてのAt_le
ast_y_words_emptyフラグをデアサー
トする(論理ブロック505)。
【0096】wptr125がrptr123に等しく
ないと判定された場合、さらに、wptr125がラッ
プアラウンドしているか否かが判定される(509)。
wptr125がラップアラウンドしている場合、フラ
グ生成装置121は、空位置の数=FIFOサイズ−
(wptr−rptr(論理ブロック511)という数
式によって書込みFIFO113中の空位置の数を判定
する。次いで、適当なフラグがアサートされる(論理ブ
ロック513)。wptr125がラップアラウンドさ
れていない場合、フラグ生成装置121は、空位置の数
=FIFOサイズ−rptr−wptrという数式によ
ってFIFO113中の空位置の数を判定し、適当なフ
ラグがセットされる(論理ブロック515および51
7)。
【0097】したがって、フラグ生成装置91は、AT
M_SYS47が、読取りFIFO83が完全に満杯に
なるのを待つ必要なしにATM_data_out49
が利用可能になった直後にそれを読取りFIFO83か
ら読み取れるように、読取りFIFO83中の値データ
を用いて記憶位置の数をATM_SYS47に示す複数
のフラグを提供する。同様に、本発明のフラグ生成装置
121は、ATM_SYS47があらゆるmclk58
サイクルに、ATM_SYS自体が書込みFIFO11
3に書き込むことができる語の数を判定できるように、
書込みFIFO113中の空記憶位置の数を示すフラグ
を提供する。
【0098】本発明は、従来技術に勝る多数の利点を提
供する。第1に、本発明は、トグル信号を使用してsc
lkベースの信号(たとえば、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】 あらゆるクロック・サイクルに書込みFI
FO中に満杯空間がいくつあるかを示すフラグを動的に
決定するにはどうすべきかを説明するフローチャートで
ある。
【図14】 あらゆるクロック・サイクルに書込みFI
FO中に空の空間がいくつあるかを示すフラグを動的に
決定するにはどうすべきかを説明するフローチャートで
ある。
【符号の説明】
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_fille
dフラグ 67 wr_addr 71 ATM_wr_en 81 同期読取りFIFO 83 読取りFIFO 84 Rf_Sync 85 読取り論理機構 87 書込み論理機構 89 読取りバス要求イネーブル生成装置(RBRE
G) 91 At_least_x_words_fille
dフラグ生成装置(ALXWFFG) 101 読取りポインタ(rptr) 103 書込みポインタ(wptr) 113 書込みFIFO 114 WR_SYNC論理機構 119 書込みバス要求イネーブル生成装置(WBRE
G) 121 At_least_y_words_empt
yフラグ生成装置(ALYWEFG)
───────────────────────────────────────────────────── フロントページの続き (72)発明者 リン・セン アメリカ合衆国 90076 オレゴン州・ビ ーバートン・サウスウエスト エスツアリ ー ドライヴ・ナンバー108・16422

Claims (5)

    【特許請求の範囲】
  1. 【請求項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. 【請求項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. 【請求項3】 空位置判定手段がさらに、 (a)読取りポインタと書込みポインタとを比較する手
    段と、 (b)読取りポインタと書込みポインタとが等価である
    か否かを判定する手段と、 (c)第2のクロックのあらゆるクロックに、第2のバ
    ッファ中の空記憶位置の数を動的に判定する手段とを備
    える請求項2に記載のインタフェース回路。
  4. 【請求項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. 【請求項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 true JPH09222988A (ja) 1997-08-26
JP3712471B2 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)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008276283A (ja) * 2007-04-25 2008-11-13 Seiko Epson Corp ブリッジ回路及びプリンタ

Families Citing this family (28)

* 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
ATE370448T1 (de) * 2000-06-09 2007-09-15 Univ Columbia Fifo schaltungen mit niedriger verzögerung für gemischte synchrone und asynchrone systeme
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
US7624319B2 (en) * 2004-06-03 2009-11-24 Hewlett-Packard Development Company, L.P. Performance monitoring system
US7676530B2 (en) * 2004-06-03 2010-03-09 Hewlett-Packard Development Company, L.P. Duration minimum and maximum circuit for performance counter
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
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

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008276283A (ja) * 2007-04-25 2008-11-13 Seiko Epson Corp ブリッジ回路及びプリンタ

Also Published As

Publication number Publication date
US5931926A (en) 1999-08-03
DE69615471T2 (de) 2002-05-08
JP3712471B2 (ja) 2005-11-02
DE69615471D1 (de) 2001-10-31

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
US6493818B2 (en) Technique for pipelining synchronization to maintain throughput across two asynchronous clock domain boundaries
US5487092A (en) System for high-speed synchronization across clock domains
US4873703A (en) Synchronizing system
JP3856696B2 (ja) 2倍データ速度同期式動的ランダムアクセスメモリのための構成可能同期装置
US7310396B1 (en) Asynchronous FIFO buffer for synchronizing data transfers between clock domains
US8520464B2 (en) Interface circuit and semiconductor device incorporating same
US6424688B1 (en) Method to transfer data in a system with multiple clock domains using clock skipping techniques
US8001409B2 (en) Synchronization device and methods thereof
US7352836B1 (en) System and method of cross-clock domain rate matching
US5539739A (en) Asynchronous interface between parallel processor nodes
US6249875B1 (en) Interface circuit using plurality of synchronizers for synchronizing respective control signals over a multi-clock environment
JPH06259225A (ja) データ転送同期装置
US5898895A (en) System and method for controlling data transmission rates between circuits in different clock domains via selectable acknowledge signal timing
KR100963706B1 (ko) 데이터 전송 방법, 데이터 전송 브리지 및 고속 데이터전송 장치
EP0752642B1 (en) Method and apparatus for dynamically calculating degrees of fullness of a synchronous fifo
CN113491082B (zh) 一种数据处理装置
US6952791B2 (en) Method and circuit for initializing a de-skewing buffer in a clock forwarded system
WO2006056904A2 (en) Globally asynchronous locally synchronous systems
GB2521035A (en) A synchronous bridge circuitry and a method of transferring data using asynchronous bridge circuitry
CN115168264A (zh) 一种跨时钟域的apb总线桥及其方法
JP3475857B2 (ja) ソースシンクロナス転送方式
US6956788B1 (en) Asynchronous data structure for storing data generated by a DSP system

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