JP2005018768A - 単一ポートセルメモリ装置のための二重ポート機能 - Google Patents

単一ポートセルメモリ装置のための二重ポート機能 Download PDF

Info

Publication number
JP2005018768A
JP2005018768A JP2004183995A JP2004183995A JP2005018768A JP 2005018768 A JP2005018768 A JP 2005018768A JP 2004183995 A JP2004183995 A JP 2004183995A JP 2004183995 A JP2004183995 A JP 2004183995A JP 2005018768 A JP2005018768 A JP 2005018768A
Authority
JP
Japan
Prior art keywords
read
memory
fifo
data
write
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.)
Abandoned
Application number
JP2004183995A
Other languages
English (en)
Inventor
Heyun H Liu
エイチ リウ ヘユン
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.)
Texas Instruments Inc
Original Assignee
Texas Instruments 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 Texas Instruments Inc filed Critical Texas Instruments Inc
Publication of JP2005018768A publication Critical patent/JP2005018768A/ja
Abandoned 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
    • G06F5/12Means for monitoring the fill level; Means for resolving contention, i.e. conflicts between simultaneous enqueue and dequeue operations
    • 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/90Buffering arrangements
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/90Buffering arrangements
    • H04L49/9084Reactions to storage capacity overflow
    • H04L49/9089Reactions to storage capacity overflow replacing packets in a storage arrangement, e.g. pushout
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2205/00Indexing scheme relating to group G06F5/00; Methods or arrangements for data conversion without changing the order or content of the data handled
    • G06F2205/10Indexing scheme relating to groups G06F5/10 - G06F5/14
    • G06F2205/108Reading or writing the data blockwise, e.g. using an extra end-of-block pointer
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2205/00Indexing scheme relating to group G06F5/00; Methods or arrangements for data conversion without changing the order or content of the data handled
    • G06F2205/12Indexing scheme relating to groups G06F5/12 - G06F5/14
    • G06F2205/123Contention resolution, i.e. resolving conflicts between simultaneous read and write operations

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Communication Control (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Information Transfer Systems (AREA)
  • Memory System (AREA)

Abstract

【課題】 本発明は、二重ポートメモリのように動作するが従来の単一ポートメモリセルから実現でき、大きなFIFOメモリの製造を可能にする。
【解決手段】 パケット通信のラインカード(20)を含むネットワーク・ノード(5)が開示される。ラインカード内の通信をバッファリングする送信FIFOバッファ(24T)及び受信FIFOバッファ(24R)を含む。各バッファは、データ・ワードの書込み及び読出し要求を非同期的に受信する二重ポート態様で動作する。バッファの各々は、従来の単一ポートSRAMのメモリ配列(45)を含む。クロック・サイクルが、交互に内部読出し及び書込みサイクルとして割当てられる。書込みバッファ(42)が、内部書込みサイクルで、メモリ配列へ二倍データ・ワード書込みをスケジュールする。読出し要求バッファ(44)が、メモリ配列から二倍データ・ワード読出しをスケジュールする。
【選択図】 図5

Description

本発明は、集積回路メモリアーキテクチャの分野に関し、より詳細には、ファーストイン・ファーストアウト(FIFO)バッファに使用されるメモリアーキテクチャに関する。
最近の広範囲のコンピュータ・ネットワークの使用と配備は、主として、イーサネット(登録商標)技術に依存している。この分野では良く知られているように、イーサネット・ネットワークは、パケット・ベースの通信の使用を含み、これにより各通信は複数パケットで通信される。各パケットはメッセージの宛先及びソース・アドレス及び全体の通信を構成するシーケンス内のパケット位置などの識別情報を含む。この手法は構造的に大変複雑な高容量ネットワークの効率的な配備を、異なるタイプ及び大きさのデジタル・データの効率的且つ成功的な送信の高い信頼性を可能とする態様でできる。実際、イーサネット技術はインターネットの発展と配備に主要な役割を果たしている。
パケットに基づいた通信は、デジタル・マルチメデイア通信及び変化するサービス品質(QoS)レベルの通信で主要な役割を果たしている。異なるQoSレベルは異なるデータ性能を指定し、そして異なる優先通信を支援し、そして、ユーザに対して課金できる異なるレート又は料金を支援する。QoSレベル又はクラスの例は、一定ビット・レート(CBR)、未指定ビット・レート(UBR、最良努力ともいう)、及び可変ビット・レート(VBR)を含む。これらの周知のカテゴリは、通信チャンネル上で利用可能な帯域幅の公平な割当てを可能にする。
典型的に、イーサネット・コンテキストで損失のない流れ制御は、ネットワーク中での各ノードにおいて送信されたデータのある量のバッファリングを含む。このバッファリングは、与えられたネットワークのアーキテクチャの可変な性質のため、そしてボトルネックが与えられたネットワーク・ノードから下流のネットワークのどこかで存在する可能性のため、しばしば必要である。損失がないようにするため、十分なバッファ容量が、下流ボトルネックの際にノードの受信側と送信側に1つ又は複数のパケットを格納するために設けられなければならない。そして、バッファされたパケットはネットワーク状態が許すならば後で転送できる。このバッファリングはしばしば二重ポート・ファーストイン・ファーストアウト(FIFO)バッファとして動作する二重ポート・メモリにより達成される。二重ポート・バッファは、バッファへの同時的且つ非同期的な、読出しと書込みを許容して、与えられたネットワーク・ノードの両側での通信の非同期的な性質を考慮すると特に有利である。十分な容量のFIFOバッファが与えられると、損失のない流れ制御を容易に実行できる。
しかし、現代のイーサネット技術は、現在人気のある10ギガビット・イーサネット・バックボーン・ネットワークなど、非常に高いデータ・レートで運ぶことができる。このデータ・レートでは、相対的に大きなFIFOバッファが損失のない流れ制御を達成するために必要となる。また、損失のない流れ制御のために必要なバッファの大きさは、ネットワーク・ノード間の距離が増大するにつれて増加する。バッファの大きさとデータ・レートとノード距離との間の関係は、ネットワーク接続上の送信及び受信ノードの間で実行される流れ制御操作でのハンドシェイク方法から発生する。例えば、ネットワーク・ノードの受信FIFOバッファは、ボトルネックが受信ノードから下流で発生した場合、急速に満たされる。このFIFOが閾値を越えて満たされると、受信ノードの送信側は送信ネットワーク・ノードへ停止要求を出し、データ・パケットの送信の停止を要求する。停止要求の受信の際、送信ノードは現在のパケットの送信を終了し、その残りは送信が損失のないようにするために受信ノードにおいてバッファされなければならない。従って、受信ノードのFIFOバッファは、受信ノードが停止要求を開始するために必要な遅延の間、停止要求を受信して処理する送信ノードの遅延の間、そして現在のパケットの残りの間に送信されるデータの容量を記憶するために十分な大きさを持つ必要がある。したがって、損失のない操作のために、高いデータ・レートは相当に大きいバッファを必要とする。ネットワーク・ノード間の長距離もまた、FIFOが施設上に送信されているビットをバッファしなければならないために、必要なFIFOの大きさに寄与する。
本発明に関連して、従来の二重ポートメモリFIFOは、ギガビット・イーサネット・メトロエリアネットワーク(MAN)実現中の合理的なケーブル長に対して小さすぎることが発見された。これは、二重ポートメモリが集積回路チップ領域(シリコン領域)の観点から非常に高価であるからである。例えば、現在のアプリケーション特有集積回路(ASIC)技術では、二重ポートRAM又は二重ポート・レジスタ・ファイルは、現実的に、約250kビットの大きさに限定されている。不幸なことに、250kビットFIFOは、この大きさのバッファは最も寛大な10GEクラス(普通のパケットのみを支援する10GBASE−X)でさえ約2kmのケーブル長を越えて支援できないため、損失のないギガビット・イーサネットに対して実質的に役に立たない。
これと対照的に、現実的なメトロエリアネットワーク(MAN)は、40kmの程度のケーブル長を持ち、10GBASE−Wに従いジャンボ・パケットを支援するギガビット・イーサネット通信が可能でなければならない。上記の解析から、この機能は数メガバイト程度のFIFOの大きさを必要とし、特に、イーサネットについてメディアアクセス制御(MAC)回路及び他のパケットベース・ネットワーキングを単一集積回路内に集積する最近の傾向を考えると、二重ポートRAMを介して実現するにはもちろん禁止的に高価である。これらの理由のため、FIFOメモリについて利用可能な技術とMAN環境中でのギガビット・イーサネットの機能的必要性との間に、切断が存在する。
さらなる背景技術として、二重ポートメモリの多くの他の応用が当該技術に存在する。典型的には、二重ポートメモリは、非同期的システム要素間のどんな大きなデータ・レート、又はデータ品質、インターフェイスで有用である。このようなインターフェイスの例は、コンピュータ・サブシステム又は入出力装置、及び主コンピュータ・バス、非パケットベース・ネットワーキング・アプリケーションの間のデータ転送インターフェイス、マルチプロセシング環境、エミュレーション・システム等の異なるマイクロプロセッサ又はCPU間インターフェイスを含む。
従って、高速パケットベース・ネットワーク通信のみならず、多くのシステム及びシステム応用において、費用効率的な二重ポートメモリに対する必要性が存在する。
従って、本発明の1つの目的は、二重ポート能力を有する低コストメモリ・アーキテクチャを提供することである。
本発明の別の目的は、二重ポート態様でアクセス可能な単一ポートメモリセルの配列を持つようなメモリ・アーキテクチャを提供することである。
本発明の別の目的は、大規模論理装置内の埋め込みメモリとして効率的な実現に適するようなメモリ・アーキテクチャを提供することである。
本発明の別の目的は、送信及び受信FIFOバッファリングのためにこのようなメモリ・アーキテクチャを組み込んだ高速パケットベース・ネットワーク通信のためのメディアアクセスコントローラを提供することである。
本発明の別の目的は、例えば、メトロエリアネットワーク(MAN)文脈中の、数十キロメートル程度及びそれ以上のケーブル長について、ギガビット・イーサネット文脈中で損失のない流れ制御を実現するコントローラを提供することである。
本発明の他の目的及び長所は、添付の図面を参照した以下の詳細な説明から当業者にとり明らかとなるであろう。
本発明は、通常の単一ポートメモリセルの二倍幅配列を含むメモリ・アーキテクチャ内に実現できる。メモリ配列は外部データ幅と比較して二倍ワード幅である。書込みバッファは、二倍ワード幅であるメモリ配列に書込む、2データ・ワードをバッファする。読出し側では、外部読出し要求は、メモリ配列からの読出しが受信された二つ又はそれ以上の要求について実行される、二倍ワードとなるようにバッファされる。順次論理が、非同期外部読出し及び書込みがメモリ配列に対してスケジュールされた読出し及び書込みとして内部的に実行されるように制御する。
本発明によると、大変に費用効率的なFIFOメモリが提供される。本発明のFIFOメモリは、対外的な機能が、非同期的な書込み及び読出しを受信可能な二重ポートメモリのように見える。しかし、本発明によるFIFOメモリは従来の単一ポートメモリセルから実現できる。従って、現代の技術で集積化及び実現可能な二重ポートFIFOの大きさを越えた、二重ポート機能を持つ大変大きいFIFOメモリの製造を可能にする。
本発明により構成された二重ポートFIFOの大きさは、ネットワーク通信のコンテキストにおいて、特に、10Gビットイーサネットのような高いデータ・レート・ネットワークにおいて、特に有利である。本発明のFIFOにより提供されるバッファ機能は、キロメートルの程度の大きさで、ネットワーク・ノードを分離することを可能にし、損失のない流れ制御を達成するための効率的で単純な方法を提供し、メトロネットワークで非常に高いデータ・レート・ネットワークの実現を可能にする。
さらに、本発明の二重ポートFIFOは、この装置を含むネットワーク・ノードにおいて、パケット通信が容易に実行できるようにパケット管理機能を含む。
本発明が、好適な実施の形態に関連して、すなわち、高データ・レート・イーサネット・ネットワーク・ノードの送信及び受信バッファに実現されたものとして、説明される。この例の説明は、本発明がこの環境に与える特定の利益のために選ばれた。しかし、本明細書を読んだ当業者には本発明がファーストイン・ファーストアウト(FIFO)バッファの一般に関連して使用でき、そして広い範囲の応用に実現できることが理解される。従って、以下の説明は例示として与えられ、請求項に記載された本発明の範囲を限定する意図がないことに理解すべきである。
図1aには、本発明の好適な実施の形態が実現されている高データ・レート通信システムの一例が、機能的なデータ流れの形式で示されている。この例では、2つのネットワーク・ノード5A、5Bが互いに、この例では光ファイバ施設FOである媒体上で、交信している。ネットワーク・ノード5のいずれか又は両方がメトロエリアネットワーク(MAN)ノード、ローカルエリアネットワーク(LAN)スイッチ等であり、図1aのシステム機能図では一般的にネットワーク・ノード5として示されている。各ネットワーク・ノード5A、5Bは、送信側及び受信側の両方を含み、各々がFIFOバッファリング及びメディアアクセス制御(MAC)機能を含む。例えば、ネットワーク5Aを見ると、送信MACFIFO2Aは、送信MAC機能4Aを経由して施設FO上に送信されるべきデータをバッファし、受信側では、受信MAC機能6Aが施設FOからのデータを受信して受信されたデータを受信MACFIFO8Aに転送する。ネットワーク・ノード5Bは同様に構成されている。
図1aのネットワーク・ノード5A、5Bが実現される特定のハードウェアは、利用可能な技術に従い変化し、そして通信施設のタイプ(例えば、光ファイバ、同軸ケーブル、ツイステッド対、無線)など、特定のシステムの属性に従い変化する。このようにして、ネットワーク・ノード5は、別の従来のネットワーク要素又はネットワーク線のラインカードの形式で実現できる。図2は、光ネットワーク実現のためのギガビット・イーサネット・ラインカードの例示的な実現による、典型的なネットワーク・ノード5のハードウェア実現をブロック図で示す。もちろん、ネットワーク5A、5Bは図2で示されるものと異なる方法で構成できる。実際、適当な通信プロトコルが各々により遵守される限り、互いに同様な構成である必要はない。
図2に示すように、ネットワーク・ノード5は、図1aの全体通信ネットワーク中のノード5の機能を一般的に指すシステム10を含む。例えば、もし、ネットワーク・ノード5がスイッチ又はルーターに対応する場合、システム10はこれらスイッチング及びルーテイング機能に対応する。代替的に、もし、ネットワーク・ノード5がサーバである場合、システム10はサーバ・アーキテクチャにより実現される。システム10は、スイッチング・ファブリックにより、又はあるアーキテクチャにおいては単に他のラインカードに接続されたバスにより、実現できる。
ラインカード20は、光ファイバ施設FOを介して下流機能10からのデータを送信すること及び下流機能10のため光ファイバ施設FOから信号を受信することを含むさまざまの機能を実行する。ラインカード20により実行される機能は、層2プロトコル・プロセッシング(例えば、メディアアクセス制御、又はMAC)及び物理的(PHY)プロトコル層に含まれる機能を含む。このように、ラインカード20はそのシステム側を下流機能10に接続し、そしてそのライン側をレーザ・ダイオード及び増幅器32(送信用)及びフォト・ダイオード及び増幅器34(受信用)を経由して光ファイバ施設FOに接続している。
本発明の好適な実施の形態によると、ラインカード20はコスト低減と性能改良のために単一の集積回路装置で実現される。ラインカード20のこの実現は、アプリケーション特有信号プロセッサ(ASSP)と呼ばれ、そして1つ又は開く数のデジタル信号プロセッサ(DSP)により実現できる。代替的に、ラインカード20は、チップセットとしていくつかの装置で実現でき、又は下流機能10の全て又はいくつかの追加の機能と一緒に集積化できる。
図2の例では、ラインカード20は機能的には送信側と受信側を持つとみなすことができる。典型的に、ラインカード20の受信側及び送信側の各々の機能のいくつかは、DSPコア又はカスタム論理などの同じ物理的なハードウェアにより実行できる。しかし、説明の簡潔さのために、本発明の好適な実施の形態によるラインカードの構造は、その送信側及び受信側によるラインカード20の構成を指す。管理論理25が、送信及び受信機能の操作と調整を制御するために、好ましくはラインカード20中に設けられる。
ラインカード20の送信側を最初に説明すると、送信システム・インターフェイス22Tは、好ましくは、システム・パケット・インターフェイス(SPI)標準などの現代のインターフェイス・プロトコルに従い、下流機能10とインターフェイスする。インターフェイス22は、下流機能10からデータを受信し、そしてこのデータを光ファイバ施設FOを介しての最終的な送信のために送信FIFO24Tへ転送する。図1aの機能図中の送信MACFIFO2A又は2Bと同一視される送信FIFO24Tは、データがラインカード20中の送信MACプロセッサ26Tに転送できるまで、下流機能10から受信されたデータをバッファする。本発明の好適な実施の形態による送信FIFO24Tの構成が、層2プロトコル・プロセッシング層がメディアアクセス制御(MAC)層と同一視されるギガビット・イーサネット実現の例について、下に詳細に説明されている。もちろん、本発明は特定のプロトコルについて特有のものではなく、ギガビット・イーサネット通信に関する本発明の好適な実施の形態の説明は例示目的のためにのみ提供される。
送信MACプロセッサ26Tは、置かれている特定のプロトコルに従い、施設FO上で送信されるために適当な形式にバッファされた受信データを処理する。典型的に、LSB最初からMSB最初へバイトをフリッピングし、イーサネット・ヘッダーをストリッピングし、バイト計算し、制御バイトを挿入し、文字又は記号整列し、そしてパケットにフォーマットするような操作は、送信MACプロセッサ26Tにより実行されると考えられる。そして、XGMII(10Gビットメディア独立インターフェイス)などの適当なフォーマットにフォーマットされて処理されたデータは、XAUI28Tへ転送される。
送信XAUI(10Gビット・アタッチメント・ユニット・インターフェイス)28Tはデータを、例えば、40ビット4チャンネル・データ経路である適当なフォーマットに変換する。このXAUIフォーマット化データは、送信シリアライザ30Tへ転送されて、並列チャンネルデータを送信標準と一致する直列ストリームに変換する。例えば、送信XAUI28Tの出力が並列な10ビットの4チャンネルとして提供される場合、送信シリアライザ30Tはこれらの4つのチャンネルを、各々が10Gビット通信のために3.125Gbpsの程度の高速度で動作する4つの単一ビット直列チャンネルに直列化する。送信シリアライザ30Tにより出力された直列データはレーザダイオード及び増幅器ブロック32に加えられて、光ファイバ施設FOに加えられる適当な光信号を生成する。
ラインカード20の受信側では処理が反転される。入力する光信号は、フォトダイオード及び増幅器34により電気信号に変換されて、ラインカード20のデシリアライザ30Rに転送される。並列出力がデシリアライザ30Rから受信XAUI28Rへチャンネルされ、信号が例えばXGMIIの所望のフォーマットへ再フォーマットされて、そして受信信号が受信MACプロセッサ26Rに加えられる。MACプロセッサ26Rは、MSB最初をLSB最初への翻訳、イーサネット・ヘッダーの追加、バイト計数、制御バイトの削除、文字又は記号の整列、及び所望のパケット構造へのフォーマットなどの機能を実行する。この点に関して、送信及び受信XAUI28T、28R、シリアライザ30T、デシリアライザ30Rは、当該技術分野で送受信機と呼ばれる単一の集積回路装置内に具体化できる。もちろん、ラインカード20中に使用される集積回路の特定の境界は、利用可能な機能と製造技術に依存して大変広く変化する。
受信FIFO24Rは、図1a中の機能図中の受信MACFIFO8A又は8Bと同一視できる。図2の実施の形態では、受信FIFO24Rは、データが下流機能10に転送されるまで、光ファイバ施設FO上で受信されてフォーマットされ処理されるデータをバッファする。本発明の好適な実施の形態による送信FIFO24Rの構成もまた、下に詳細に説明される。受信FIFO24Rは、バッフアされたデータを受信システム・インターフェイス22Rへ出力し、好ましくは、システム・パケット・インターフェイス(SPI)標準などの現代のインターフェイス・プロトコルに従って、下流機能10とインターフェイスする。
図1aの機能図を再び参照すると、損失のない流れ制御は受信MACFIFO8A、8Bにより開始される。上述の通り、受信MACFIFO8A、8Bは、図2に示され上述した受信FIFO24Rとしてラインカード20内に実現できる。ネットワーク・ノード5Aでの損失のない流れ制御の例では、一旦、受信MACFIFO8Aが閾値レベル(「充満」閾値)を越えて満たされると、ネットワーク・ノード5Bからのトラフイックはデータが下流に転送できるよりも高い速度で受信されるため、受信MACFIFO8Aはその送信MAC機能4Aへ停止フレーム(pause_fr_req)のための要求を送信する。そして、送信MAC機能4Aは、ネットワーク・ノード5Bへ、指定された期間(pause_time)の停止フレームの要求(pause_fr)を送信する。実際は、停止フレームは、オン及びオフのメッセージであり、オンのメッセージは最大の停止定量を持つフレームであり、オフのメッセージはゼロの停止定量を持つフレームである。受信MAC機能6Bは、この要求を受信して、現在送信中のパケットの完了後に、従来方法で停止カウンタにより測定される指定される期間の間、その対応する送信MAC機能4Bのデータの送信を停止させる。
損失のない通信を確保するために、使用されている特定のMACプロトコルに関係なく、受信MACFIFO8A(例えば、ラインカード20内の受信FIFO24)は、その停止フレーム要求が送信された後で停止が実際に開始されるまで送信され続けるパケット・データを記憶するため、それが停止フレーム要求を送信する閾値の大きさを越えて、十分な大きさを持たなければならない。受信MACFIFO8Aの大きさ、及びそれが停止フレーム要求を送信する閾値は、このトラフイックの吸収を考慮しなければならない。この大きさは、停止フレーム要求が送信されてから停止が送信ノードにより実際に行われるまでの時間を含む遅延時間、好ましくは、クロック数を推定し、これら遅延時間の合計にデータ送信速度を掛算することで必要な大きさを得ることで推定できる。この大きさの決定は図1bを参照してより簡単にできる。図1bは、ネットワーク・ノード5Aをいくぶん抽象的にプロトコルから独立に表示していて、送信及び受信回路を一般的な送受信機7Aとして示す。図1bに示すように、遅延時間Dt_intは、受信FIFO8Aがその「充満」閾値に到達するクロックサイクルと停止フレーム要求が外部PHY媒体(FO施設)の端に伝搬するクロックサイクルとの間、ネットワーク・ノード5Aの内部の遅延時間である。遅延時間Dextは、停止要求が光ファイバ施設FO上をネットワーク・ノード5Bへ送信される時の停止要求の遅延、及び、ネットワーク・ノード5Bからネットワーク・ノード5Aまで導く光ファイバ施設FOの端へ伝搬する停止トラフイックの先端の遅延である。ネットワーク5Aの受信側では、内部遅延時間Dr_intは、停止要求を受信した送受信機7A、停止要求を処理するプロトコル機能6A、及び受信FIFO8Aで受信トラフイックの実際の停止の間の内部的遅延時間である。さらに、現在のパケットの完了に必要な時間、すなわち、遅延時間Dpkt、を考慮しなければならない。受信FIFO8Aについての「充満」閾値は典型的に、その全容量Cの半分に設定されることを考慮し、そしてネットワーク5Bがネットワーク5Aと同様に構成されていて、等しい内部遅延時間を含むと仮定すると、この容量Cは以下の様に定義できる。
C/2=2(Dt_int+Dext+Dr_int)+Dpkt (1)
ここで、遅延時間Dは、「ビット時間」(すなわち、クロック・サイクル数にサイクル当たりに送信されるビットを掛算したもの)により測定される。
典型的にこの技術分野で知られているように、受信FIFO8Aは、その「充満」閾値よりはるか下の範囲で変動するデータ量を始めは記憶する。しかし、一旦、この「充満」閾値に達すると、受信FIFO8A内に記憶されるデータ量は「充満」閾値の周りで変動する傾向を持ち、送信ノードへ停止フレーム要求を送信することにより維持される。
FIFOバッファの実際の物理的大きさは、特定の通信プロトコル及びシステムについて計算できる。例えば、いわゆる、「メトロ・ネットワーク」を実現する現代の10ギガビット・イーサネット・ワイドエリアネットワーク(WAN)では、典型的にパケット長は、1526バイト・ペイロードに118オーバーヘッド・バイトを持つ程度に長い。もし、いわゆる「ジャンボ」パケットが可能な場合、パケット長は10000バイトに780オーバーヘッド・バイトを持つ程長い。従って、ジャンボWANパケットに対する最悪の場合の遅延時間Dpktは、約86,240ビット時間である(10780*8)。内部遅延成分Dintは、10GEコーデイングの特定のタイプ(すなわち、10GBASE−R、−W、又は−X)に依存して14848から30720ビット時間まで変化できる。外部遅延成分Dextはもちろんネットワーク・ノード5A、5B間のケーブル長及び施設内の光の相対的速度に依存する。
ext=100M/3n(ビット時間) (2)
ここで、Mはメートルのケーブル長であり、nはケーブル内の光の相対的速度(自由空間内の光速cに相対的な)であり、0.4乃至0.9で変化する。
式(1)及び(2)の組合わせから、受信MACFIFO8A、8Bに対して必要なメモリ容量Cを評価できる。さらに、上流データ源が、損失のない流れ制御のトラフイック停止の時間の間、送信されるべきデータを転送し続けることを考慮すると、送信MACFIFO2A、2Bは同じ容量を持たなければならない。与えられたFIFO容量Cにより支援できる最大距離Mを考慮することが有用である。このような評価から、250kビット又はそれ以下の容量Cは、この容量が最も寛大な10GEクラス(10GBASE−X、n=0.9について、通常のパケットのみを支援する)についてさえもせいぜい2km程度のケーブル長しか与えないため、損失のない流れ制御機能に対してはほとんど役に立たないことが発見された。通常のメトロエリアネットワークについてより望ましい設置は、10GBASE−Wに従いジャンボ・パケットを支援し、40km程度のケーブル長Mである。この機能は、数メガバイト程度のFIFO容量Cを必要とする。
上述したように、FIFOバッファは典型的に従来の二重ポート・アーキテクチャのメモリにより実現される。二重ポート・アーキテクチャは、各メモリセルへの2つのポートがFIFO自身の非同期バッファ機能に一致した効率的な非同期態様で動作できるため、効率的なFIFO動作を可能にする。しかし、上述したように、メガビット容量の二重ポートメモリは、特に、このようなメモリをVLSI集積回路内のオンチップ機能として集積化することを考慮する時に、禁止的に高価である。対照的に、従来のこの大きさの単一ポートメモリは、合理的なチップ領域で実現でき、図2のラインカード20のようなギガビット・イーサネット送受信機機能に含まれる論理のような複雑な論理回路中に実現するのに適している。
従って、本発明の好適な実施の形態によると、ラインカード20の送信及び受信FIFO24T、24Rは、例えば、数メガビット程度までの容量の単一ポートメモリ配列を持つメモリとして構成されているが、外部回路に対しては二重ポート・バッファとして見え、そしてFIFO24T、24Rへ書込み及びから読出す機能を持つように見える。すなわち、FIFO24T、24Rは図1aのネットワーク構成において送信及び受信MACFIFO2、8として機能し、例えば、キロメートル程度のノード間の距離を持つMAN文脈中でのギガビット・イーサネット通信における相対的に長距離間の高速通信の実現を可能にする。
図3を参照して、本発明の好適な実施の形態によるFIFOメモリの構成を詳細に説明する。上述の説明から明らかなように、本発明のこの好適な実施の形態によるこのFIFOメモリは、図1aに機能的に示されるシステム内のMACFIFOバッファ機能2A、2B、8A、8Bを実行するため、図2のネットワーク・ノード中に送信及び受信FIFO24T、24Rのいずれか1つとして実現できる。本発明の好適な実施の形態によるFIFOメモリの構成は、高速ネットワーク通信を超えて、他のFIFOバッファリングの応用においても有利である。このような他の使用例は、コンピュータ・サブシステム又は入力/出力装置及びメインコンピュータ・バス間のインターフェイス、非パケットベース・ネットワーキング応用、マルチプロセシング環境、エミュレーションシステム等の異なるマイクロプロセッサ又はCPU間のインターフェイスのデータ転送を含む。
しかし、図2のネットワーク・ノードの例及び図1aのネットワーク実現に対して、本発明の好適な実施の形態によるFIFOメモリの構造は最適である。この例では、FIFOメモリは、共通クロックを使用して、非同期読出し及び書込み可能化信号を処理し、そして非同期書込みデータ応用を処理できなければならない。図3は、本発明の好適な実施の形態による、FIFOメモリ40に対するインターフェイスの単純化したモデルである。この例では、クロックCLKが、FIFOメモリ40及びその動作についてのシステムクロックとして機能するために、FIFOメモリ40に加えられている。書込み側では、FIFOメモリ40が書込み可能化信号WRENを受信する。このWRENは、FIFOメモリ40へのデータ源が入力データ線WRDATA上に存在するデータの書込み操作を要求していることを指示する。入力データ線WRDATAのデータ幅は、少なくとも1バイト(8ビット)、好ましくは、1データ・ワード(16又は32ビット)幅であると考えられる。読出し側では、FIFOメモリ40は、読出し可能信号RDENを受信する。このRDENは、FIFOメモリ40からのデータの宛先がデータの読出しを要求していることを示す。FIFOメモリ40は、典型的には入力データ線WRDATAと同じデータ幅である出力データ線RDDATA上にデータを出力する。
図4a及び図4bを参照して、本発明の実施の形態によるFIFOメモリ40への書込み及び読出しインターフェイスの外部動作を説明する。図4aは、非同期書込み及び読出し動作のシーケンス時のFIFOメモリ40への書込みインターフェイスの動作を示す。図4bは、図4aに示されるのと同じサイクル上でのFIFOメモリ40への読出しインターフェイスの動作を示す。
図4aでは、入力データ線WRDATAがデータ値WR1を運ぶ時などには、書込み可能化線WRENが高い活性レベルに取られる。書込みサイクルwcyc1において、クロックCLKの次の上昇端で、データ値WR1がFIFOメモリ40中に書き込まれる。書込み可能線WRENが高くとどまる間に、入力データ線WRDATAは次のデータ値WR2を受信する。このデータ値WR2は、書込みサイクルwcyc2において、クロックCLKの次の上昇端で、FIFOメモリ40中に書き込まれる。この例では、書込み可能線WRENが、1サイクル程度の間、不活性低に取られる。そして、入力データ線WRDATAがデータ値WR3を運ぶ時に再び活性化される。このデータ値WR3は、書込みサイクルwcyc3において、クロックCLKの次の上昇端で、FIFOメモリ40内に書き込まれる。入力データ線WRDATAは次のデータ値WR4を受信する。このデータ値は書込み可能化線WRENがサイクル中に高にとどまっているため、クロックCLKの次の上昇端でFIFOメモリ40中に書き込まれる。
図4aに示すように、FIFOメモリ40からの読出し操作は書込み操作中に実行される。書込み及び読出し可能化信号WREN、RDENの非整列的性質から明らかのように、そして入力及び出力データ線WRDATA、RDDATA上の非整列的活動からも明らかのように、これらの読出しは書込み操作と非同期的である。図4bは、本発明の好適な実施の形態によるFIFOメモリ40からこれらのサイクル中に実行される読出し操作の動作を示す。
図4bのクロックCLKの最初の上昇端の前に、読出し可能化線RDENが高い活動に取られる。そして、クロックCLKの上昇端がFIFOメモリ40からの読出しを開始し、データがアクセス時間後(例えば、クロックCLKの1サイクル)に出力データ線RDDATA上に出現する。この第1例では、クロックCLKの最初の上昇端からのデータ値はデータ値RD1として示されている。この例では、読出し可能化線RDENはクロックCLKの次の上昇端の間、高に留まる。これに応答して、FIFOメモリ40は次のデータ値RD2を出力データ線RDDATA上に与える。この例では、読出し可能化線RDENが1サイクル程度の間、不活性化されて、クロックCLKの次の上昇端に応答した読出しを阻止する。読出しを要求するために読出し可能化線RDENが再び高に駆動されて、この例では、3サイクルの間、高に留まる時、クロックCLKの3つの連続する上昇端が、図4bに示すように、連続するサイクルでデータ値RD3、RD4、RD5の対応するシーケンスを出力させる。
図4a及び図4bの例に示されるように、本発明のこの実施の形態によるFIFOメモリ40は、読出し及び書込みが互いに非同期的態様で効果的に要求されて実行されるため、対外的には全く二重ポートRAMのように見える。FIFOメモリ40に書き込まれ及びから読み出されるデータは、FIFOメモリ40に書き込まれた最初のデータ値がそこから読み出される最初の値であるFIFO態様で、互いに関係する。本発明の好適な実施の形態によると、FIFOメモリ40は二重ポートRAMのような対外的な機能として見られるが、それは単一ポートRAMアーキテクチャから構成されていて、従って、その実現のために必要とされるシリコン領域及びコストを大幅に節約する。実際に、本発明は禁止的でないコストで二重ポート能力を持つ相当に大きなFIFOメモリを製造することを可能にする。本発明により製造される二重ポートFIFO機能は、事実、上述したようなネットワーク通信に使用される論理機能と同じ集積回路中に組み込むことができる。
図5を参照して、本発明の好適な実施の形態によるFIFOメモリ40の一般的な構成及び一般的な動作を説明する。FIFOメモリ40は、当該技術分野で知られている従来の典型的なSRAM配列のような適当なアドレス回路、センス増幅器、及び入力/出力回路と一緒に、行及び列に配列された単一ポートメモリセルの配列として構成されたSRAM配列45に基づいている。SRM配列45中のメモリセルは、従来の6トランジスタ、又は4トランジスタ、2抵抗セルであってよい。しかし、本発明のこの実施の形態によると、SRAM配列45への及びからの入力及び出力データ幅は、FIFOメモリ40への読出し及び書込みインターフェイスのワード幅に対して、2ワード幅である。例えば、もし、FIFOメモリへの外部インターフェイス・ワード幅が16ビットの場合、SRAMメモリ45への入力及び出力データ経路幅は32ビットである。すなわち、図5に示されるFIFOメモリ40は、以下に説明するように、SRAM配列45及びそれのインターフェイス回路を含み、「二倍ワード幅領域」を含む。以下の説明から明らかなように、この二倍ワード幅領域は、SRAM配列45中の単一ポートメモリセルを使用しながら、FIFOメモリ40が対外的には二重ポートとして見えることを可能にし、SRAM配列45への書込み及び読出し衝突を解決する役割を果たす。
FIFOメモリ40はまた、当該技術では普通の適当な電源及びクロック制御回路を含む。図5はまた、以下に説明するような操作によることも含む、FIFOメモリ40の操作を制御するための適当な論理を含んだ制御論理及びクロック回路を示す。さらに、制御論理及びクロック回路47は、クロックCLKを受信し、そして、最終的にはクロックCLKに応答する、本発明の好適な実施の形態による交替的な内部読出し及び書込みクロック・サイクルを含んだ適当な内部クロックを発生するための回路を含む。当業者には理解されるように、別のクロック回路がシステムクロックCLKを受信してバッファするために代替的にFIFOメモリ40内に設けることができ、そして、必要に応じて、FIFOメモリ40の構成機能へシステムクロックCLKに基づいた内部クロックを生成して転送する。本明細書から明らかなように、FIFOメモリ40の制御の多くは好ましくは、以下に説明する状態図に従い、順次論理により実現される。この順次論理は図5の制御論理及びクロック回路47により示唆されるように中心位置に実現できる。又は、必要に応じて、FIFOメモリ40中に分散できる。特定の応用のため、これらの制御機能の特定の実現は本明細書を読めば当業者により容易に達成できることが理解される。
FIFOメモリ40への書込みインターフェイスは、本発明の好適な実施の形態によれば、書込みバッファ42により実現される。図5に示されるように、書込みバッファ42は、書込み可能化信号WRENを受信し、そして入力データWRDATAも受信する。書込みバッファ42は、書込み可能化信号WRENにより可能化されている時にクロックCLKの上昇端で、入力データWRDATAの各入力するデータ・ワードをバッファする。一般に、FIFOメモリ40への各単一ワード書込み要求及びその対応するデータは、書込みバッファ42にバッファされる。SRAM配列45の適当な位置への実際の書込みは、2つのワードが受信されて内部書込みサイクルが利用可能となる時に実行される。一般に、クロックCLKのサイクルは等しく分配され、そして、SRAM配列45への内部書込みサイクル及びからの内部読出しサイクルの間に好ましくは交互に配される。書込みバッファによる単一データ・ワードの受信、及び書込みバッファ42によるSRAM配列45への二倍ワードの書込みは、本発明のこの実施の形態によるデータ・ワード幅変換機能を効率的に実行する。この操作が以下に詳細に説明される。
本発明の好適な実施の形態によると、上述の説明から明らかなように、二倍ワード幅内部入力及び出力から及びへ単一ワード幅内部入力及び出力を変換することは、SRAM配列45中の単一ポートメモリセルを使用して、FIFOメモリ40の実現を可能にする。FIFOメモリ40の二倍ワード幅領域は、読出しサイクル又は書込みサイクルのいずれかを各クロック・サイクルへ割当てることにより、そして読出し及び書込みインターフェイスの両方に2ステージ、2ワード幅バッファを含むことにより、SRAM配列45への非同期的読出し及び書込みの間の衝突を解決する。
図6に、このバッファリングの一例が説明されている。この例では、書込みバッファ42が、それぞれ、書込み及び読出しインターフェイスに2つの行(0,1)と2つの列(a,b)に配列されたエントリイを含む。各エントリイa0、a1、b0、b1は、単一データ・ワードを記憶する。本発明のこの実施の形態によると、書込み及び読出しデータ(バッファに依存して)は、固定された順序、例えば、a1、a0、b1、b0、a1、a0、b1、b0等、でバッファ内に登録される。命名法として、バッファの列は、もしその両エントリイが占められた場合に、「熟した」とみなされる。内部的読出し及び書込みの衝突の解決は、これらのバッファ内のエントリイの占有、線WREN、RDEN上の書込み信号の状態、及び現在のクロック・サイクルが読出しサイクル又は書込みサイクルかどうか、に基づいている。本発明の好適な実施の形態によると、クロックCLKの交替するサイクルは、場合に応じて、SRAM配列45及び書込みバッファ42又は出力幅変換器46の間の読出し及び書込みサイクルとして指示される(図6では、読出しサイクルRCYC、及び書込みサイクルWCYCとして示されている)。
要約すると、本発明の好適な実施の形態によるバッファリングの操作は、(i)各サイクルにおいて、固定された順序(a1、a0、b1、b0、・・・)で入力及び出力データをバッファ内に登録し、(ii)もし、列が読出し及び書込みバッファ中で熟した場合、それぞれ、対応する読出し又は書込みサイクルにおいて読出し又は書込み操作を実行する、ことを含む。この態様の書込みバッファ42の操作が、図7の状態図と関連して以下に説明される。
FIFOメモリ40のリセット又は初期化の後、又は、FIFOメモリ40が満杯となるような誤り状態時に、書込みバッファ42は「全て空」状態50に入る。図7に示すように、この状態50では、書込みバッファ42の4つのデータ・ワード・エントリイのいずれも登録済みのデータを含まず、書込みバッファ42は実際に空である。書込み可能化線WRENが不活性(図7中では、〜WRENにより示される)であるクロックCLKのサイクル(読出し又は書込み)に対して、書込みバッファ42は空状態に留まる。書込み可能化線が活性(WREM)になると、書込みバッファ42はクロックCLKの次のサイクルで状態52に入り、入力データ・ワードがそのエントリイa1中に登録される。
その状態52において書込みバッファ42内の列が完全に登録されていないため、この状態からはSRAM配列45への書込みは実行されない。書込み可能化線WRENが不活性な追加のクロック・サイクルは、書込みバッファ42を状態52に保つ。書込み可能化線WREN上の活性信号は、書込みバッファ42がエントリイa0内にデータ・ワードを登録させて、書込みバッファ42を完全な列(列a)が登録済みのデータを含む状態54へ移動させる。この列は現在熟したので、次の書込みサイクル(WCYC)で、二倍データ・ワードが書込みバッファ42からSRAM配列45に書込み可能となる。もし、次の書込みサイクルWCYCが書込み可能化線WREN上の活性化レベルと一緒に発生すると、二倍データ・ワードが書込みバッファ42の列aから書き込まれ、そしてデータ・ワードが書込みバッファのエントリイb1中に受信されて、書込みバッファ42を図7に示す状態55に移す。状態52と同様な態様で、書込みバッファ42は、不活性な書込可能化信号〜WRENにより1つ又はそれ以上の連続したサイクルの間、状態55に留まる。書込み可能化線WREN上の活性化レベルを持つ次のサイクルにおいて、書込みバッファはデータ・ワードをエントリイb0に登録して、状態57に移る。状態54に戻って参照すると、もし、逆に次の書込みサイクルWCYCが書込み可能化線WREN上の不活性化レベルと一緒に発生すると、列aからの二倍データ・ワードがSRAM配列45に書き込まれて、新データ・ワードが受信されない。この場合、書込みバッファ42は空の状態50に戻る。読出しサイクルRCYCにおいて、書込みバッファ42は別のデータ・ワードをエントリイb1中に登録し、もし、書込み可能化線WRENが活性ならば、状態56へ移り、もし、書込み可能化線WRENが不活性ならば、追加のデータ・ワードはないから状態54を維持する。
状態56で、書込みバッファ42の列aが熟し、そしてエントリイb1もデータにより登録される。状態56は読出しサイクルRCYCの間だけ入るため、クロックCLKの次のサイクルは本発明のこの実施の形態では必ず書込みサイクル(WCYC)である。従って、状態56からの状態変化は、書込み可能化線WREN上に活性レベルが受信されるかどうかに依存する。もし、次の書込みサイクル(WCYC)で書込み可能化線WRENが不活性(〜WREN)の場合、新しいデータは受信されないが、二倍データ・ワードが熟した列aからSRAMメモリ45に書き込まれて、この結果、書込みバッファ42は状態55に入る。一方、もし、書込み可能化線WRENが活性である場合、データ・ワードがエントリイb0内に登録されて、二倍データ・ワードが書込みバッファ42の列aからSRAM配列45中に書き込まれ、そして書込みバッファ42は状態57に移る。
状態57で、列bが熟する。よって、次の書込みクロック・サイクル(WCYC)がこの列bをSRAM配列45中に書き込む。もし、次の書込みサイクル(WCYC)が書込み可能化線WRENの活性レベルと一緒に発生する場合、二倍データ・ワードが列bからSRAM配列45へ書き込まれて、新データ・エントリイがエントリイa1に登録され、書込みバッファ42を状態52に置く。もし、書込み可能化線がこの次の書込みサイクルにおいて不活性の場合、二倍データ・ワードのみが列bからSRAM配列45へ書き込まれて、新しいデータ・ワードは受信されず、書込みバッファ42を空の状態50に置く。逆に、もし、次のサイクルが読出しサイクル(RCYC)の場合、書込みバッファ42の列bは熟したままに維持されて、SRAM配列45には書き込まれない。もし、この読出しサイクルが活性の書込み可能化(WREN)と一緒に発生する場合、新しいデータ・ワードがエントリイa1中に登録されて、書込みバッファ42は状態58に入る。逆に、もし、この読出しサイクルにおいて不活性の書込み可能化(〜WREN)が受信される場合、書込みバッファ42の内容には変化はなく、状態57に留まる。
再び図5を参照すると、FIFOメモリ40の読出しインターフェイスは読出しバッファ46s出力FIFO48を含む。この特定の構成は、パケットの読み出しはパケットから十分な量のデータがFIFOメモリ40内に記憶されるまで開始されないという制約を実行することにより、パケット・ストリームの整合性を確保するため、図1及び図2に関して上述したように、ネットワーク応用中のFIFOメモリ40の使用に対して特に有益である。この機能は、パケット状態(十分なデータ又は完全なパケット)がFIFOメモリ40中のパケット・ストリーム・データの読み出しを行うことを可能であると示す時、制御線RD_RDY上に活性信号を出力することにより、FIFOメモリ40中で実行される。
また、読出しのコンテキストにおいては、しばしば、読出しデータの宛先(例えば、図2の例では送信MAC26T)が、例えば、ネットワーク通信のためにそのパケット処理でデータ・ワードを挿入するために、時々、パケット・ストリームを停止する必要がある。これは、FIFOメモリ40が提供するデータと同期化するために、宛先からFIFOメモリ40へ読出しストロボ(又は読出し要求)信号を必要とする。従来の二重ポートメモリでは、この読出しストロボを出力データと同期化することは容易に行うことができる。しかし、本発明の実施の形態によると、読出しと書込みの衝突を回避するため、外部からFIFOメモリ40への非同期的読出し及び書込みは内部的にはスケジュールされた読出し及び書込みに変換されなければならない。従って、スケジュールされた読出しは外部の非同期的、読出しストロボ又は要求と必ずしも同期化できるものではない。本発明のこの実施の形態によると、この同期化は、SRAM配列45からのデータ出力の応答時間差を効率的に吸収する、好ましくは、小さな真の二重ポートメモリで構成される、出力FIFOバッファ48により行われる。
図5の例を参照すると、SRAM配列45がデータを提供する準備ができて、それを実行するために線SRAM_rd_rdy上に信号を送る時、今度は出力FIFO48はデータがFIFOメモリ40から読出すことができる時に、外部の下流のデータの宛先に対して線RF_RDY上に信号を送る。例えば、パケットについてパケット終了(EOP)指示がSRAM配列45中に記憶された時、又は、あるパケットに対して十分な量のデータが記憶された時、FIFOメモリ40は読み出される準備ができる。そして、出力FIFO48は、線RDEN上の活性信号により作られる、外部が発生した読出し要求又は読出しストロボを受信することが可能となる。これらの外部要求は、FIFO_rden線を経由して読出し要求バッファ44へ転送される。読出し要求バッファ44は入力する要求を記憶して、内部的にFIFOメモリ40に利用可能となる読出しクロック・サイクルと一緒に2つのこのような要求がなされる時、SRAM配列45からの2つのデータ・ワードのスケジュールされた読出しを、次の内部的な読出しサイクルが利用可能となる時に発生するように行う。
SRAM配列45からの二倍ワード幅出力は出力データ変換器46に加えられて、そして、出力データ変換器46は、読出されたデータの単一ワードを出力FIFO48へ送るためデータ線SRAM_rddata上に、このデータ線SRAM_rddata上に有効なデータが転送されていることを示す線SRAM_rdval上の活性信号と一緒に、加える。この例では、出力FIFO48は、好ましくは、読出し要求を制御して実行するため及び線RDEN上の要求に対して相対的に一定の時間関係で線RDDATA上に加えられるべき出力データを同期化するためのさまざまな制御論理と一緒にした、小さな量の二重ポートRAMとして構成される。このように、出力FIFO48は、FIFOメモリ40内の内部的読出し及び書込みが互いにスケジュールされているにもかかわらず、実効的に出力データ・ストリームを同期化する。出力FIFO48はデータ線RDDATA上に要求されたデータ・ワードを転送し、そして有効なデータの存在を示すために、線D_VAL上に活性レベルを出力する。
図1及び図2のネットワーク通信のコンテキストでは、FIFOメモリ40に書込まれる及びから読出されるデータ・ストリームは上述したように、パケットに基づいている。当該技術分野では知られているように、パケットの終りは、パケット終了(EOP)指示子として符号化されたデータ・ワードにより指示される。EOP指示子は奇数データ・ワードに存在することがもちろん可能である(実際は、同様にありうる)。書込みバッファ42は熟した列のみをSRAM配列45中に書込むから、EOP指示子が書込みバッファ42の列の最初のエントリイ中で不明瞭にならないようにするため、各EOP指示子には、少なくとも1つのアイドルのデータ・ワードが続くようにすべきである。
従って、本発明のこの実施の形態による、交互の読出し及び書込みクロック・サイクル(RCYC、WCYC)と2つの二倍データ・ワード・エントリイを持つ書込みバッファとの組合わせは、外部ソースからFIFOメモリ40への非同期的な書込みを可能にしながら、FIFOメモリ40内の単一ポートSRAM配列45へのスケジュールされた書込みを可能にする。
本発明の好適な実施の形態によるFIFOメモリの上記構成は、対外的には二重ポートメモリとしていて見えるが、従来の単一ポートRAMセルにより実現できるメモリを提供することにより、電子システム中のFIFOバッファの全ての応用に有用である。FIFOメモリ40を通過するデータがパケットで構成される又は構成されるべきネットワーク通信のコンテキストでは、FIFOメモリ40は好ましくは、これらパケットを管理するための追加の制御機能を含む。本発明の好適な実施の形態によるパケット管理のためのこの制御機能が、図8の状態図と関連して以下に説明される。この制御機能は、制御論理及びクロック回路47内のパケット管理として、FIFOメモリ40内に中心にまたは分散形式のいずれかで実現される。
一般に、パケット管理論理は、FIFOメモリ40から読出されるパケットの一貫性を確保するために提供される。この点に関し、制御論理47がFIFOメモリ40内に記憶されているパケット数を把握することが重要である。さらに、本発明のこの実施の形態によるFIFOメモリ40は、構成可能な閾値よりも大きなパケットを「カット・スルー」処理する能力を持つ。この閾値よりも大きいパケットに対しては、FIFOメモリ40からパケットの最初を読出すことがパケットの終わりを書込む前に可能である。このように、「カット・スルー」パケットは、いかなる時点でもFIFOメモリ40内に始まりと終わりの両方を持つことがない。
図8の状態図は、パケット管理機能を制御するFIFOメモリ40の制御論理47内の順次論理の状態を言及する。この状態図は、一組の状態変数と一緒に動作する。この内で、SOPはデータ・ストリーム内のパケット開始指示子を指す。EOPはパケット終了指示子を指す。






Figure 2005018768
これら及び他の状態変数が、FIFOメモリ40から読出され及びへ書込まれるパケットを管理するための制御論理47と一緒に動作する。
図8を参照すると、FIFOメモリ40のリセット時に、最初のno_pkt状態70が入力される。状態70では、FIFOメモリ40内にはどんなパケットの部分も記憶されていない。FIFOメモリ40は、SOPがFIFOメモリ40内に書込まれていること(write_sop)の指示を受信する時、fist_sop状態72に遷移し、この事象に応答して、writing_pkt状態変数がセットされる。first_sop状態72からの遷移はこの最初のパケットの終わりが書込まれる時(write_eop)に発生し、これに応答して、witing_pkt状態変数がクリアされ、そして#pkt状態変数が値1に増加されて、1つの完全なパケットがFIFOメモリ40内に書込まれたことを示す。そして、制御論理47は、one_pkt_rdy状態74に入る。
制御論理47は、次のパケットの開始がFIFOメモリ40内に書込まれている(write_sop)後も、one_pkt_rdy状態74に留まり、この時間中はwriting_pkt状態変数がセットされている。FIFOメモリ40へのこのパケットの書込み完了時(write_eop)に、制御論理47は、pkts_rdy状態75に遷移して、writing_pkt状態変数をクリアし、そして#pkt状態変数を新カウント(#pkt=2)に増加する。pkts_rdy状態75は、FIFOメモリ40内に複数のパケットが記憶されていることを示す。
一方、one_pkt_rdy状態74から、もし、この単一パケットが読出される場合(read_sop)、制御論理47はtx_last_pkt状態76への遷移を行い、sending_pkt状態の変数をセットする。その名前から明らかなように、tx_last_pkt状態76は、唯一の又は最後の残ったパケットがFIFOメモリ40から読出されている過程中の状態を示す。この最後又は唯一のパケットの読出しの完了時に(#pkt−1=0の状態の確認と組合わせられた、read_eop)、制御論理47は、以下に説明するpkt_brake状態80への遷移を行う。一方、もし、新パケットの開始が読出された場合(write_sop)、制御論理47はtx_last_pkt状態76に留まり、状態変数writing_pktをセットする。もし、最後のパケットが読出される前に、この次のパケットの終わりが書込まれる場合(#pkt+1が2に等しいか又はそれより大きい状態の確認と組合わせられた、write_eop)、制御論理47はpkts_rdy状態75への遷移を行い、状態変数#pktを増加して、状態変数writing_pktをクリアする。
FIFOメモリ40のこの操作はこの方法で続き、制御論理47はゼロ、1つ、又は複数の可能性の記憶されているパケットを管理する。「カット・スルー」パケットを処理するために、制御論理47は、真の状態ではSOPが書込まれた(状態72)パケットの大きさが予め選択された閾値よりも大きいことを示す状態変数pass_cut_thru_Thに応答して、first_sop状態72からcut_thru状態78に入る。この遷移と関連して、状態変数sending_pktはこのパケットがFIFOメモリ40から読出し可能であることを示すためにセットされる。両状態変数writing_pkt及びsending_pktがこの条件にセットされて、同じ大きなパケットが同時に書込まれて読出されていることの両方を示す。cut_thru状態78で、FIFOメモリ40によるジャンボ・パケットの終わりの受領は(write_eop)、制御論理47をtx_last_pkt状態76へ遷移させて、状態変数#pktを増加させて、writing_pkt状態変数をクリアする。この時点でFIFOメモリ40内に残っているパケットは、ジャンボ・パケットの残りである。
上述したように、図1及び図2に関して説明されたネットワーク通信のコンテキストにおけるFIFOメモリ40の実現は好ましくは、読出しストロボRDENと同期してFIFOメモリ40からの読出しが停止できるコンテキストで、FIFOメモリ40が動作することを考慮する。上記のアーキテクチャでは、FIFOメモリ40の内部のSRAM配列45の読出しは、非同期的又はストロボされた読出しではなく、スケジュールされた読出しのため、これは幾分困難である。本発明の好適な実施の形態によると、SRAM配列45からのデータの読出しの同期的な停止の必要性は、2つの状況で発生する。第1の状況では、SRAM配列45が次のパケットのEOPを受信する前に全ての利用可能なデータがFIFOメモリ40から読出されたアンダーフロー状態を回避するために、もし、次のデータのフレームが準備できない場合(すなわち、SRAM配列45内に一杯に記憶されておらず、又は「カット・スルー」フレームにも対応していないため)、FIFOメモリ40から対外的にEOPが出力された後に、SRAM配列45からの読出しは好ましくは停止される。第2のこのような状況は、外部の下流の宛先が、パケットの終了又はパケットの中間のいずれかで、読出し可能化信号を出力しなくなる時に発生する。本発明の好適な実施の形態では、図9に関連して以下に説明するように、出力FIFO48がこれら2つの状況における「読出しブレーキ」機能を実行するために設けられる。
本発明のこの実施の形態による出力FIFO48は、図9に示すような構成を有する。図9に示すように、出力FIFO48は、二重ポートFIFO92、出力レジスタ94、及びストロボ・バッファ90(図5の読出し要求バッファ44に対応する)を含む。ストロボ・バッファ90は、データ宛先からの外部読出し可能化線RDEN上に読出しストロボを受信して、この読出しストロボを二重ポートFIFO92に加えられる信号中にバッファする。二重ポートFIFO92は、従来の小さなFIFOメモリであり、好ましくは、二重ポートメモリセルで構成されている。しかし、典型的に、二重ポートFIFO92はSRAM配列45よりはずっと小さく、数データ・ワードを維持するのに十分な大きさを必要とするだけである。レジスタ92は、同期を達成するために、二重ポートFIFO92により出力された後で出力データ線RDDATA上に加えられる前に一時的にデータ・ワードを記憶する。
上述したように、FIFOメモリ40からのデータの下流の外部宛先は、データ・アクセスを要求及び停止するために、それぞれ、読出し可能化線RDEN上に読出しストロボ信号を出力し及び出力しない。本発明のこの実施の形態によると、上述したように、出力FIFO48の1つの機能は、読出し可能化線RDENが不活性になる時、出力データの即座の停止を行うことである。図9を参照すると、これは読出し可能化線RDEN上の不活性状態を検知するストロボ・バッファ90により達成され、これに応答してレジスタ94から出力を直ちに不可能化する。ストロボ・バッファ90はまた、線D_VAL上の有効データ信号を出力せず、線RDDATA上のデータはもはや有効でないことを指示する。
また、この場合、ストロボ・バッファ90は読出し可能化線RDEN上の読出しストロボが出力されないことに応答して、信号を二重ポートFIFO92へ転送する。そして、二重ポートFIFO92は、FIFO_rden線を不活性状態にする。この時、SRAM配列45からの読出しがスケジュール化されたままの範囲内で、このスケジュール化された読出しが実行され続けて、結果を二重ポートFIFO92内に記憶する。このようにして、外部読出し要求又は読出しストロボの停止は、FIFOメモリ40からの対外的な出力データの即座の停止を結果し、一方、スケジュールされたままのSRAM配列45の読出しを行うことを可能にする。
「読出しブレーキ」機能が有用な別の状況は、FIFOメモリ40内に記憶された最後の完全なパケットの終わりの読出し又は送信の時に発生する。これはFIFOメモリ40でのアンダーフロー状態が可能である。図5に戻ると、SRAM配列45はその最後又は唯一のパケットについてのEOP指示子を出力する時、線SRAM_rd_rdy上の制御信号の出力を停止する。この信号は、RD_RDY制御線を経由して下流の宛先装置により受信されて、これに応答して、この下流の外部装置は読出し可能化線RDEN上に読出しストロボ信号を送信することを停止する。しかし、読出し操作を完全に停止するためにはいくつかのクロック・サイクルを含むため、FIFOメモリ40は所望の時点又は状態でその操作を停止できるように「読出しブレーキ」機能を含む。そうでない場合は、パケットの出力が準備される前に、次のパケットの開始が不要に読み出されて、パケットの損失を生ずる。
図9に戻り図8を併せて参照すると、送信されるべき最後のパケットに対するEOPの読出し(tx_last_pkt状態76から)は、状態変数read_eopと、状態変数#pktの値が1であり(すなわち、#pkt−1=0)及び状態変数sop_cntも1に等しくて別のパケットの開始が既にメモリ内にあることを意味しているとの組合わせにより指示される。この場合、制御論理47は、read_brake状態80へ遷移して、状態変数sending_pktをリセットする。もし、次のパケットに対するSOPの読出しが後で要求されたとしても(この場合、状態変数sending_pktがセットされる)、制御論理47はread_brake状態80に留まる。その次のパケットに対するEOPの書込み時に(write_eop)、もし、パケットがまだ送信されていなければ(sending_pktがクリア)、制御論理47はone_pkt_rdy状態74に遷移し、そしてパケット・カウント状態変数#pktを増加する。もし、SOPが書き込まれている新パケットが、その長さがカット・スルー閾値を超えるようなジャンボ・パケットの場合(pass_cut_thru_Thがセット)、制御論理47はジャンボ・パケットを処理するために、cut_thru状態78へ渡される。
さらに、出力FIFO48は、下流機能へ準備信号RD−RDYを発生して、また、SRAM配列45から出力FIFO48へのデータ流れを制御するために閾値論理を含む。図10は、この閾値の好適な例と、これによりこの閾値論理の動作を概略的に示す。ここでは、出力FIFO48は3つの閾値に従い動作する。もし、出力FIFO48が、出力FIFO48の容量の中点に近い閾値FIFO_readyを越えて充満すると、下流のデータ宛先はそのFIFOメモリ40から読出しが可能なことを示す信号を受信する。第2の閾値stop_readは、閾値FIFO_readyよりも高い。出力FIFO48の充満容量がこの閾値stp_readを越える時、出力FIFO48のオーバーフローを回避するために、SRAM配列45の読出しが停止される。出力FIFO48の充満容量が閾値FIFO_readyよりも低い第3の閾値start_readよりも下に落ちる時、出力FIFO48がアンダーフローにならないことを確保するため、SRA配列45から出力FIFO48へのデータの読出しが開始される。この出力FIFO48からの多レベル制御は、FIFOメモリ40を通じての効率的なデータ流れを維持するのに特に有用である。
本発明の好適な実施の形態によると、大変に費用効率的なFIFOメモリが提供された。本発明のFIFOメモリは、対外的な機能が、非同期的な書込み及び読出しを受信可能な二重ポートメモリのように見える。しかし、本発明によるFIFOメモリは従来の単一ポートメモリセルから実現できる。従って、現代の技術で集積化及び実現可能な二重ポートFIFOの大きさを越えた、二重ポート機能を持つ大変大きいFIFOメモリの製造を可能にする。
本発明により構成された二重ポートFIFOの大きさは、ネットワーク通信のコンテキストにおいて、特に、10Gビットイーサネットのような高いデータ・レート・ネットワークにおいて、特に有利である。本発明のFIFOにより提供されるバッファ機能は、キロメートルの程度の大きさで、ネットワーク・ノードを分離することを可能にし、損失のない流れ制御を達成するための効率的で単純な方法を提供し、メトロネットワークで非常に高いデータ・レート・ネットワークの実現を可能にする。
さらに、本発明の好適な実施の形態による二重ポートFIFOは、この装置を含むネットワーク・ノードにおいてパケット通信が容易に実行できるようにパケット管理機能を含む。
好適な実施の形態により本発明が説明されたが、これらの実施の形態についてもちろん修正及び変形が考えられ、このような修正及び変形も本発明の利点及び効果を有することが、本明細書と添付図面を参照すれば当業者にとっては明らかである。このような修正及び変形も特許請求の範囲の請求項に記載された本発明の範囲内であると考えられる。
以上の記載に関して、以下の各項を開示する。
1.ファーストイン・ファーストアウト・メモリであって、
メモリ配列と、
クロック信号を受信するためのクロック端子と、
書込み可能化信号を受信するための書込み可能化端子と、
入力データ・ワードを受信するための入力と、
読出し可能化信号を受信するための読出し可能化端子と、
入力データ・ワードと同じワード幅の出力データ・ワードを与える出力と、
入力とメモリセル配列に接続されて、書込み可能化端子における対応する書込み可能化信号と一緒に入力から第1及び第2入力データ・ワードのシーケンスを受信し、単一書込みサイクルにおいて第1及び第2入力データ・ワードをメモリ配列に書込むための書込みバッファと、
読出し可能化端子における第1及び第2読出し可能化信号の受信に応答して、メモリ配列の読出し要求をするための読出し回路と、
メモリ配列の読出し要求に応答してメモリ配列から第1及び第2出力データ・ワードを受信して、第1及び第2出力データ・ワードを順番に出力に与えるための読出しバッファと、
を含むファーストイン・ファーストアウト・メモリ。
2.書込みバッファが、
複数のバッファ記憶位置と、
バッファ記憶位置の選択された1つに入力から受信された入力データ・ワードを記憶するために書込みバッファを記憶し、メモリ配列へ記憶された入力データ・ワードの対を転送するために書込みバッファを制御するための順次論理と、
を含む1項記載のメモリ回路。
3.複数のバッファ記憶位置が、第1及び第2行の記憶位置を持つバッファ記憶位置の第1及び第2列を含んだ、行及び列に配列されている2項記載のメモリ回路。
4.順次論理が、第1入力データ・ワードをバッファ記憶位置の第1行及び第1列に記憶し、第2入力データ・ワードをバッファ記憶位置の第2行及び第1列に記憶するように書込みバッファを制御し、
順次論理が、そして内部書込みサイクルにおいて第1及び第2入力データ・ワードをメモリ配列へ転送するように書込みバッファを制御する3項記載のメモリ回路。
5.周期的なクロック信号を受信するためのクロック入力と、
周期的なクロック信号の交互のサイクルを内部書込み及び内部読出しサイクルとして割当てるためのクロック回路と、
をさらに含む4項記載のメモリ回路。
6.順次論理が、内部書込みサイクルの前に第3データ・ワードを受信する入力に応答して、第3入力データ・ワードをバッファ記憶位置の第2列に記憶するために、書込みバッファを制御する5項記載のメモリ回路。
7.読出しバッファが、
メモリ配列から読出された二倍幅の出力データ・ワードを出力データ・ワードの順番に変換するための出力幅変換器と、
出力幅変換器に接続されて、ファーストイン・ファーストアウトの態様で出力データ・ワードをバッファするための出力FIFOと、
を含む1項に記載のメモリ回路。
8.読出しバッファがさらに、
読出し可能化信号を受信する読出し回路に応答して、データ有効信号と一緒に、出力において出力FIFOから受信された出力データ・ワードを提供するための出力レジスタを含む7項に記載のメモリ回路。
9.出力FIFOが、第1閾値を越えた出力データ・ワード数を記憶したその内容に応答して、読出し準備信号を発生する7項に記載のメモリ回路。
10.出力FIFOが、第1閾値よりも高い第2閾値を越えた出力データ・ワード数を記憶したその内容に応答してメモリ配列へ読出し停止信号を発生し、そして
出力FIFOが、第1閾値よりも低い第3閾値を下回る出力データ・ワード数を記憶したその内容に応答してメモリ配列へ読出し開始信号を発生する9項に記載のメモリ回路。
11.入力データ・ワード及び出力データ・ワードがパケットに配列されたデータに対応し、各パケットがパケット開始指示子及びパケット終了指示子を含み、そして
パケット開始指示子及びパケット終了指示子の書込みの検出に応答して、パケットに対応した出力データ・ワードの出力を可能化するように、メモリ回路の動作を制御するためのパケット管理論理をさらに含む1項に記載のメモリ回路。
12.パケット管理論理が、閾値よりも大きい長さを持つパケットを示すパケット大きさ指示子及びパケット開始指示子の書込みの検出に応答して、ジャンボ・パケットに対応する出力データ・ワードの出力を可能にするように、メモリ回路の動作を制御する11項に記載のメモリ回路。
13.パケット管理論理が、メモリ配列内に記憶されているパケット数のカウントを維持する11項に記載のメモリ回路。
14.パケット管理論理が、パケットについてのパケット終了指示子の出力及び追加のパケットが記憶されていないことを示すカウントに応答して、出力データ・ワードの出力を不可能化する13項に記載のメモリ回路。
15.読出しバッファが、
メモリ配列から読み出された二倍幅の出力データ・ワードを出力データ・ワードのシーケンスに変換するための出力幅変換器と、
出力幅変換器に接続されて、ファーストイン・ファーストアウトの態様で出力データ・ワードをバッファするための出力FIFOと、
読出し可能化信号を受信する読出し回路に応答して、データ有効信号と一緒に、出力において出力FIFOから受信された出力データ・ワードを提供するための出力レジスタとを含み、そして
パケット管理論理が、パケットについてのパケット終了指示子の出力及び追加のパケットが記憶されていないことを示すカウントに応答して、出力データ・ワードの出力を不可能化するために出力レジスタを制御する14項に記載のメモリ回路。
16.メモリ回路と共にデータ・ワードをバッファするための方法であって、
メモリ回路の入力端子において入力データ・ワードのシーケンスを受信するステップと、
第1入力データ・ワード及び第2入力データ・ワードの受信に応答して、第1及び第2入力データ・ワードを単一の書込みサイクルにおいてメモリ回路のメモリ配列中に書込むステップと、
読出しストロボ信号を受信するステップと、
第1及び第2読出しストロボ信号に応答して、第1及び第2出力データ・ワードを単一の読出しサイクルにおいてメモリ配列から読出すステップと、
第1及び第2出力データ・ワードをメモリ回路の出力端子に順番に提供するステップと、
を含む方法。
17.入力データ・ワードの受信に応答して、入力データ・ワードを、各列がそれぞれ第1及び第2行に関連した第1及び第2バッファ記憶位置を持つ、行及び列に配列された複数のバッファ記憶位置を持つ書込みバッファ中に記憶するステップをさらに含み、
書込むステップが、第1及び第2入力データ・ワードをそれぞれ記憶する第1列の第1及び第2バッファ記憶位置に応答して実行される16項に記載の方法。
18.周期的なシステム・クロック信号を受信するステップと、
内部書込みサイクル及び内部読出しサイクルを、システム・クロック信号に対応した内部クロックの交互の1つに割当てるステップと、をさらに含む17項に記載の方法。
19.書込むステップが、内部書込みサイクルと組合わせられて、それぞれ第1及び第2入力データ・ワードを記憶する第1列の第1及び第2バッファ記憶位置に応答して実行される18項に記載の方法。
20.第3入力データ・ワードを受信するステップと、
第3入力データ・ワードの受信及びそれぞれ第1及び第2入力データ・ワードを記憶する第1列の第1及び第2バッファ記憶位置に応答して、内部書込みサイクル前に、第3入力データ・ワードを第2列のバッファ記憶位置に記憶するステップと、
をさらに含む19項に記載の方法。
21.読出すステップの後で且つ提供するステップの前に、第1及び第2出力データ・ワードを出力FIFOバッファ中にバッファリングするステップと、
提供するステップの前に、第1閾値を越えた出力データ・ワード数を記憶する出力FIFOバッファに応答して、読出し準備信号を発生するステップと、をさらに含み、
提供するステップが、読出し準備信号を発生した後に読出しストロボ信号を受信したことに応答して実行される16項に記載の方法。
22.第1閾値よりも高い第2閾値を越えた出力データ・ワード数を記憶する出力FIFOバッファに応答して、メモリ配列へ読出し停止信号を発生するステップと、
第1閾値よりも低い第3閾値を下回る出力データ・ワード数を記憶する出力FIFOバッファに応答して、メモリ配列へ読出し開始信号を発生するステップと、
をさらに含む21項に記載の方法。
23.データ・ワードの各パケットがパケット開始指示子及びパケット終了指示子を含む、パケットで構成されたデータ・ワードの通信を管理する方法であって、
メモリ回路の入力端子において、入力データ・ワードのシーケンスを受信し、
第1入力データ・ワード及び第2入力データ・ワードの受信に応答して、第1及び第2入力データ・ワードを単一書込みサイクルでメモリ回路のメモリ配列中に書込み、
パケット開始指示子及びパケット終了指示子を含む入力データ・ワードの書込みの検出に応答して、パケットに対応したデータ・ワードの出力を可能化し、
読出しストロボ信号を受信し、
第1及び第2読出しストロボ信号の受信に応答し、メモリ配列から単一読出しサイクルで第1及び第2出力データ・ワードを読出し、
メモリ回路の出力端子において第1及び第2出力データ・ワードを順番に提供する、
ことを含む方法。
24.閾値よりも大きい長さを持つパケットを示すパケット大きさ指示子及びパケット開始指示子の書込みの検出に応答して、パケットに対応するデータ・ワードの出力を可能にする、ことをさらに含む23項に記載の方法。
25.パケット終了指示子の書込みの検出に応答して、メモリ配列内に記憶されたパケット数のカウントを増加する、ことをさらに含む23項に記載の方法。
26.パケットについてのパケット終了指示子の出力及び追加のパケットが記憶されていないことを示すカウントに応答して、出力データ・ワードの出力を不可能化する、ことをさらに含む25項に記載の方法。
27.不可能化することが、
出力端子に出力データ・ワードを提供することを不可能化するために出力レジスタを制御する、ことをさらに含む26項に記載の方法。
28.通信施設上でパケットに基づいたデータの受信及び送信を制御するためのネットワーク・ノードであって、
システムからの送信データを受け取り、システムへ処理された受信信号を出力するためのシステム・インターフェイスと、
システム・インターフェイスにおいて受け取られた送信データをバッファするための送信FIFOバッファと、
通信施設を送信データに対応した送信信号により駆動し及び通信施設から信号を受信するための送受信機と、
受信信号をバッファリングするための受信FIFOバッファと、を含み、
送信及び受信FIFOバッファの各々が、
メモリ配列と、
クロック信号を受信するためのクロック端子と、
書込み可能化信号を受信するための書込み可能化端子と、
入力データ・ワードを受信するための入力と、
読出し可能化信号を受信するための読出し可能化端子と、
入力データ・ワードと同じワード幅の出力データ・ワードを提供するための出力と、
入力に接続されて、書込み可能化端子における対応した書込み可能化信号と組合わせられて入力からの第1及び第2入力データ・ワードのシーケンスを受け取り、そして単一書込みサイクルでメモリ配列中に第1及び第2入力データ・ワードを書込むための書込みバッファと、
読出し可能化端子において第1及び第2読出し可能化信号を受信することに応答して、メモリ配列の読出しを要求するための読出し回路と、
メモリ配列の読出し要求に応答してメモリ配列から第1及び第2出力データ・ワードを受信して、第1及び第2出力データ・ワードを順番に出力に提供するための読出しバッファと、
を有するネットワーク・ノード。
29.送受信機が、
送信データを直列化するためのシリアライザと、
シリアライザからのシリアル信号により通信施設を駆動するためのライン・ドライバと、
通信施設からシリアル信号を受信するための受信機と、
受信機により受信された信号を非直列化するためのデシリアライザと、
を含む28項に記載のネットワーク・ノード。
30.送信FIFOバッファによりバッファされた送信データを処理するための送信メディアアクセス制御機能と、
受信信号を処理し、処理された受信信号を受信FIFOバッファへ加えるための受信メディアアクセス制御機能と、
をさらに含む28項に記載のネットワーク・ノード。
31.送信及び受信FIFOバッファの各々の書込みバッファが、
第1及び第2行に記憶位置を持つバッファ記憶位置の第1及び第2列を含む、行及び列に配置された複数のバッファ記憶位置と、
第1列及び第1行のバッファ記憶位置に第1入力データ・ワードを記憶し、第1列及び第2行のバッファ記憶位置に第2入力データ・ワードを記憶し、そしてメモリ配列に第1及び第2入力データ・ワードを内部書込みサイクルで転送するために書込みバッファを制御する順次論理と、を含む28項に記載のネットワーク・ノード。
32.送信及び受信FIFOバッファの各々の書込みバッファが、
周期的なクロック信号を受信するためのクロック入力と、
周期的なクロック信号の交互のサイクルを内部書込み及び内部読出しサイクルとして割当てるためのクロック回路と、を含み、
順次論理が、内部書込みサイクル前に第3入力データ・ワードを受信する入力に応答して、第3入力データ・ワードを第2列のバッファ記憶位置に記憶するために書込みバッファを制御する31項に記載のネットワーク・ノード。
33.送信及び受信FIFOバッファの各々の読出しバッファが、
メモリ配列から読出された二倍幅の出力データ・ワードを出力データ・ワードのシーケンスに変換するための出力幅変換器と、
出力幅変換器に接続されて、ファーストイン・ファーストアウト態様で出力データ・ワードをバッファするための出力FIFOと、
を含む28項に記載のネットワーク・ノード。
34.読出し回路がさらに、
読出し回路が読出し可能化信号を受信することに応答して、データ有効信号と一緒に、出力FIFOから受信された出力データ・ワードを出力に提供するための出力レジスタを含む33項に記載のネットワーク・ノード。
35.出力FIFOが、閾値を越えた出力データ・ワード数を記憶したその内容に応答して読出し準備信号を発生する33項に記載のネットワーク・ノード。
36.出力FIFOが、第1閾値よりも高い第2閾値を越えた出力データ・ワード数を記憶したその内容に応答してメモリ配列へ読出し停止信号を発生し、そして
出力FIFOが、第1閾値よりも低い第3閾値を下回る出力データ・ワード数を記憶したその内容に応答してメモリ配列へ読出し開始信号を発生する35項に記載のネットワーク・ノード。
37.データ・ワードの各パケットがパケット開始指示子及びパケット終了指示子を含み、そして
送信及び受信FIFOバッファの各々が、
パケット開始指示子及びパケット終了指示子の書込みの検出に応答して、パケットに対応した出力データ・ワードの出力を可能化するように、メモリ回路の動作を制御するためのパケット管理論理をさらに含む28項に記載のネットワーク・ノード。
38.パケット管理論理が、閾値よりも大きい長さを持つパケットを示すパケット大きさ指示子及びパケット開始指示子の書込みの検出に応答して、ジャンボ・パケットに対応する出力データ・ワードの出力を可能化する37項に記載のネットワーク・ノード。
39.パケット管理論理が、メモリ配列内に記憶されたパケット数のカウントを維持する37項に記載のネットワーク・ノード。
40.パケット管理論理が、パケットについてのパケット終了指示子の出力及び追加のパケットが記憶されていないことを示すカウントに応答して、出力データ・ワードの出力を不可能化する39項に記載のネットワーク・ノード。
41.読出しバッファが、
メモリ配列から読み出された二倍幅の出力データ・ワードを出力データ・ワードのシーケンスに変換するための出力幅変換器と、
出力幅変換器に接続されていて、ファーストイン・ファーストアウトの態様で出力データ・ワードをバッファするための出力FIFOと、
読出し可能化信号を受信する読出し回路に応答して、データ有効信号と一緒に、出力において出力FIFOから受信された出力データ・ワードを提供するための出力レジスタとを含み、そして
パケット管理論理が、パケットについてのパケット終了指示子の出力及び追加のパケットが記憶されていないことを示すカウントに応答して、出力データ・ワードの出力を不可能化するために出力レジスタを制御する40項に記載のネットワーク・ノード。
42.パケットに基づいたデータ通信のためのラインカード(20)を含むネットワーク・ノード(5)が開示される。ラインカード(20)は、ラインカード(20)内の通信をバッファリングするために送信FIFOバッファ(24T)及び受信FIFOバッファ(24R)を含む。バッファ(24T、24R)の各々は、バッファ(24T、24R)へデータ・ワードを書込み及びからデータ・ワードを受信するための書込み及び読出し要求を非同期的に受信する、二重ポート態様で動作する。バッファ(24T、24R)の各々は、例えば、スタチックRAMセルの従来の単一ポートランダムアクセスメモリセルのメモリ配列(45)を含む。クロック・サイクルがバッファ(24T、24R)により、交互に、内部読出し及び内部書込みサイクルとして割当てられる。書込みバッファ(42)は入力データ・ワードを受信して、一対の入力データ・ワードの受信する時、次の内部書込みサイクルにおいて、メモリ配列(45)への二倍データ・ワード書込みをスケジュールする。読出し要求バッファ(44)は、下流機能から読出しストロボ又は読出し可能化信号を受信して、2つのこのようなストロボを受信する時、メモリ配列(45)からの二倍データ・ワード読出しをスケジュールする。非同期的読出し及び書込み要求をそれぞれスケジュールされた読出し及び書込みに変換することにより、バッファ(24T、24R)は二重ポートFIFOバッフアとして動作する。
本発明の好適な実施の形態が実現された2つのネットワーク・ノード中のメディアアクセス制御(MAC)機能を含んだ、高速データネットワークの機能的データ流れを示すブロック図。 本発明の好適な実施の形態による、損失のない流れ制御を確保するために含まれるさまざまな遅延時間を示す、図1aのネットワークの電気回路の抽象的なブロック図。 本発明の好適な実施の形態が実現された例示的な送受信装置を含む図1aのネットワーク・ノードの電気回路のブロック図。 本発明の好適な実施の形態による、ファーストイン・ファーストアウト(FIFO)メモリ間の外部通信を示す機能的なブロック図。 本発明の好適な実施の形態による、FIFOメモリに対する非同期的な読出し及び書込みの例を示すタイミング図。 本発明の好適な実施の形態による、FIFOメモリに対する非同期的な読出し及び書込みの例を示すタイミング図。 本発明の好適な実施の形態による、FIFOメモリの構造の電気回路のブロック図。 本発明の好適な実施の形態による、FIFOメモリに使用される単一ポートメモリへのデータ入出力の書込み及び読出しバッファリングを示すデータ流れ図。 本発明の好適な実施の形態によるFIFOメモリに使用されるメモリ配列へのデータ書込み操作を示す状態図。 本発明の好適な実施の形態による、FIFOメモリからのデータ読出し操作を示す状態図。 本発明の好適な実施の形態による、FIFOメモリの読出しブレーキ機能を示す電気回路のブロック図。 開始及び停止操作のための閾値を示す出力FIFOバッファ容量の図。
符号の説明
5 ネットワーク・ノード
10 システム
20 ラインカード
24R 受信FIFOバッファ
24T 送信FIFOバッファ
42 書込みバッファ
44 読出し要求バッファ
45 メモリ配列
46 出力幅変換器
47 制御論理及びクロック回路
48 出力FIFO

Claims (2)

  1. ファーストイン・ファーストアウト・メモリであって、
    メモリ配列と、
    クロック信号を受信するためのクロック端子と、
    書込み可能化信号を受信するための書込み可能化端子と、
    入力データ・ワードを受信するための入力と、
    読出し可能化信号を受信するための読出し可能化端子と、
    入力データ・ワードと同じワード幅の出力データ・ワードを与える出力と、
    入力とメモリセル配列に接続されて、書込み可能化端子における対応する書込み可能化信号と一緒に入力から第1及び第2入力データ・ワードのシーケンスを受信し、単一書込みサイクルにおいて第1及び第2入力データ・ワードをメモリ配列に書込むための書込みバッファと、
    読出し可能化端子における第1及び第2読出し可能化信号の受信に応答して、メモリ配列の読出し要求をするための読出し回路と、
    メモリ配列の読出し要求に応答してメモリ配列から第1及び第2出力データ・ワードを受信して、第1及び第2出力データ・ワードを順番に出力に与えるための読出しバッファと、
    を含むファーストイン・ファーストアウト・メモリ。
  2. メモリ回路と共にデータ・ワードをバッファするための方法であって、
    メモリ回路の入力端子において入力データ・ワードのシーケンスを受信するステップと、
    第1入力データ・ワード及び第2入力データ・ワードの受信に応答して、第1及び第2入力データ・ワードを単一の書込みサイクルにおいてメモリ回路のメモリ配列中に書込むステップと、
    読出しストロボ信号を受信するステップと、
    第1及び第2読出しストロボ信号に応答して、第1及び第2出力データ・ワードを単一の読出しサイクルにおいてメモリ配列から読出すステップと、
    第1及び第2出力データ・ワードをメモリ回路の出力端子に順番に提供するステップと、
    を含む方法。
JP2004183995A 2003-06-23 2004-06-22 単一ポートセルメモリ装置のための二重ポート機能 Abandoned JP2005018768A (ja)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US10/601,816 US20040257856A1 (en) 2003-06-23 2003-06-23 Dual-port functionality for a single-port cell memory device

Publications (1)

Publication Number Publication Date
JP2005018768A true JP2005018768A (ja) 2005-01-20

Family

ID=33418610

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2004183995A Abandoned JP2005018768A (ja) 2003-06-23 2004-06-22 単一ポートセルメモリ装置のための二重ポート機能

Country Status (4)

Country Link
US (2) US20040257856A1 (ja)
EP (1) EP1491995B1 (ja)
JP (1) JP2005018768A (ja)
DE (1) DE602004022614D1 (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100785892B1 (ko) 2005-12-07 2007-12-17 한국전자통신연구원 양방향 데이터 통신용 단일 포트 메모리 제어 장치 및 그제어 방법
US7447110B2 (en) 2005-12-02 2008-11-04 Samsung Electronics Co., Ltd. Integrated circuit devices having dual data rate (DDR) output circuits therein

Families Citing this family (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050018786A1 (en) * 2003-07-21 2005-01-27 Parhi Keshab K. Interleaved trellis coded modulation and decoding
US20050160215A1 (en) * 2004-01-20 2005-07-21 International Business Machines Corporation Flow through asynchronous elastic FIFO apparatus and method for implementing multi-engine parsing and authentication
US7672573B2 (en) * 2004-05-13 2010-03-02 Sunplus Technology Co., Ltd. Shared memory architecture and method in an optical storage and recording system
US8255598B2 (en) * 2004-12-22 2012-08-28 Bank Of America Corporation Method and apparatus for managing item sequence numbers in an item processing system
US20090323728A1 (en) * 2006-06-30 2009-12-31 Nxp B.V. Asynchronous data fifo that provides uninterrupted data flow
US8184651B2 (en) * 2008-04-09 2012-05-22 Altera Corporation PLD architecture optimized for 10G Ethernet physical layer solution
KR20130102393A (ko) 2012-03-07 2013-09-17 삼성전자주식회사 Fifo 메모리 장치 및 이를 포함하는 전자 장치
CN103594103B (zh) * 2013-11-15 2017-04-05 腾讯科技(成都)有限公司 音频处理方法及相关装置
WO2016036352A1 (en) 2014-09-03 2016-03-10 Hewlett-Packard Development Company, L.P. Presentation of a digital image of an object
KR101860234B1 (ko) * 2016-12-20 2018-05-21 엘에스산전 주식회사 듀얼 포트 스위치의 링크 속도 설정 방법
EP4111323A4 (en) * 2020-02-27 2024-03-13 Achronix Semiconductor Corporation ETHERNET PACKET PROCESSING IN A PROGRAMMABLE INTEGRATED CIRCUIT
FR3107776B1 (fr) * 2020-02-28 2022-02-18 Valeo Vision Module de memoire tampon et dispositif lumineux pour un vehicule automobile equipe d’un tel module
US20210223815A1 (en) * 2020-09-21 2021-07-22 Intel Corporation First-In First-Out Buffer with Lookahead Performance Booster

Family Cites Families (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4916658A (en) * 1987-12-18 1990-04-10 International Business Machines Corporation Dynamic buffer control
JP3085391B2 (ja) * 1989-06-19 2000-09-04 株式会社日立製作所 通信装置
US5210749A (en) * 1990-05-29 1993-05-11 Advanced Micro Devices, Inc. Configuration of srams as logical fifos for transmit and receive of packet data
US5136582A (en) * 1990-05-29 1992-08-04 Advanced Micro Devices, Inc. Memory management system and method for network controller
US5546347A (en) * 1994-07-22 1996-08-13 Integrated Device Technology, Inc. Interleaving architecture and method for a high density FIFO
US5717870A (en) * 1994-10-26 1998-02-10 Hayes Microcomputer Products, Inc. Serial port controller for preventing repetitive interrupt signals
EP0718847B1 (en) * 1994-12-22 2003-06-25 Cypress Semiconductor Corporation Single ended dual port memory cell
US6282203B1 (en) * 1995-06-28 2001-08-28 Hyundai Electronics Ind. Co., Ltd. Packet data transmitting apparatus, and method therefor
JP4404233B2 (ja) * 1996-12-09 2010-01-27 ソニー株式会社 編集装置およびデータ伝送方法
US5901100A (en) * 1997-04-01 1999-05-04 Ramtron International Corporation First-in, first-out integrated circuit memory device utilizing a dynamic random access memory array for data storage implemented in conjunction with an associated static random access memory cache
DE69836786T2 (de) * 1997-10-03 2007-04-26 Matsushita Electric Industrial Co., Ltd., Kadoma Speicherschnittstellenvorrichtung und Vorrichtung zur Speicheradressengeneration
US6252880B1 (en) * 1997-11-10 2001-06-26 Advanced Micro Devices, Inc. Apparatus and method for selectively supplying a data packet to a selected network node in a buffered distributor
US6650640B1 (en) * 1999-03-01 2003-11-18 Sun Microsystems, Inc. Method and apparatus for managing a network flow in a high performance network interface
US6601150B1 (en) * 1999-05-10 2003-07-29 Nortel Networks Limited Memory management technique for maintaining packet order in a packet processing system
EP1091288A1 (en) * 1999-10-08 2001-04-11 Hewlett-Packard Company Device for processing sonet or SDH frames having an H.100 bus
US6731566B1 (en) * 1999-11-18 2004-05-04 Cypress Semiconductor Corporation Single ended simplex dual port memory cell
US6839351B1 (en) * 2001-03-28 2005-01-04 Advanced Micro Devices, Inc. Parallel packet lookup in a packet-switched network
DE10121196A1 (de) * 2001-04-30 2002-11-07 Infineon Technologies Ag FIFO-Speichervorrichtung und Verfahren zum Speichern und Auslesen von Daten unter Verwendung eines FIFO-Speichers
US6556495B2 (en) * 2001-07-09 2003-04-29 International Business Machines Corporation 2-D FIFO memory having full-width read/write capability
US7860120B1 (en) * 2001-07-27 2010-12-28 Hewlett-Packard Company Network interface supporting of virtual paths for quality of service with dynamic buffer allocation
US7468975B1 (en) * 2002-05-06 2008-12-23 Foundry Networks, Inc. Flexible method for processing data packets in a network routing system for enhanced efficiency and monitoring capability

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7447110B2 (en) 2005-12-02 2008-11-04 Samsung Electronics Co., Ltd. Integrated circuit devices having dual data rate (DDR) output circuits therein
KR100785892B1 (ko) 2005-12-07 2007-12-17 한국전자통신연구원 양방향 데이터 통신용 단일 포트 메모리 제어 장치 및 그제어 방법

Also Published As

Publication number Publication date
DE602004022614D1 (de) 2009-10-01
EP1491995A3 (en) 2006-03-29
EP1491995A2 (en) 2004-12-29
EP1491995B1 (en) 2009-08-19
US20110276731A1 (en) 2011-11-10
US20040257856A1 (en) 2004-12-23

Similar Documents

Publication Publication Date Title
US20110276731A1 (en) Dual-port functionality for a single-port cell memory device
EP0459752B1 (en) Network adapter using buffers and multiple descriptor rings
US6081844A (en) Point-to-point interconnect communications utility
US7301906B2 (en) Methods and structures for improved buffer management and dynamic adaption of flow control status in high-speed communication networks
EP0459758B1 (en) Network adapter having memories configured as logical FIFOs to transmit and receive packet data
US7072349B2 (en) Ethernet device and method for extending ethernet FIFO buffer
US7573896B2 (en) Method and apparatus for generic interface, packet cut-through, overbooking, queue concatenation, and logical identification priority for a system packet interface device
US8155136B2 (en) Single network interface circuit with multiple-ports and method thereof
US9459829B2 (en) Low latency first-in-first-out (FIFO) buffer
US20030026267A1 (en) Virtual channels in a network switch
JPH11187051A (ja) 媒体アクセスコントローラからのパケットデータを伝送するための方法および装置
US20050138238A1 (en) Flow control interface
US6529518B1 (en) Method and apparatus for providing a network interface
CN108614792B (zh) 1394事务层数据包存储管理方法及电路
US6622183B1 (en) Data transmission buffer having frame counter feedback for re-transmitting aborted data frames
US6473818B1 (en) Apparatus and method in a network interface device for asynchronously generating SRAM full and empty flags using coded read and write pointer values
US7697555B1 (en) Fibre channel SERDES with elastic transmitter FIFO
CN111147175B (zh) 时间触发以太网数据帧捕获、存储装置及方法
US7372812B2 (en) Proxy FC port, FC network system, and FC transfer method used therefor
CN100591067C (zh) 一种用逻辑实现sdh和以太网速率适配的方法
EP1508225B1 (en) Method for data storage in external and on-chip memory in a packet switch
US20020143983A1 (en) Credit management for data flow between two networks
KR0177231B1 (ko) 에이에이엘-1 계층의 정보 처리 장치
CN114553801A (zh) 实现InfiniBand网络长距离传输的设备及方法
KR20050070841A (ko) 비동기 전송모드에 적용되는 인터페이스 제어 방법

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20070622

A762 Written abandonment of application

Free format text: JAPANESE INTERMEDIATE CODE: A762

Effective date: 20090911