JP4205181B2 - Atmパケット・ヘッダおよびデータをホスト・コンピュータ・システムにバースト転送するための方法および装置 - Google Patents
Atmパケット・ヘッダおよびデータをホスト・コンピュータ・システムにバースト転送するための方法および装置 Download PDFInfo
- Publication number
- JP4205181B2 JP4205181B2 JP30754596A JP30754596A JP4205181B2 JP 4205181 B2 JP4205181 B2 JP 4205181B2 JP 30754596 A JP30754596 A JP 30754596A JP 30754596 A JP30754596 A JP 30754596A JP 4205181 B2 JP4205181 B2 JP 4205181B2
- Authority
- JP
- Japan
- Prior art keywords
- data
- header
- packet
- atm
- burst transfer
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Lifetime
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04Q—SELECTING
- H04Q11/00—Selecting arrangements for multiplex systems
- H04Q11/04—Selecting arrangements for multiplex systems for time-division multiplexing
- H04Q11/0428—Integrated services digital network, i.e. systems for transmission of different types of digitised signals, e.g. speech, data, telecentral, television signals
- H04Q11/0478—Provisions for broadband connections
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L12/00—Data switching networks
- H04L12/54—Store-and-forward switching systems
- H04L12/56—Packet switching systems
- H04L12/5601—Transfer mode dependent, e.g. ATM
- H04L2012/5614—User Network Interface
- H04L2012/5616—Terminal equipment, e.g. codecs, synch.
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L12/00—Data switching networks
- H04L12/54—Store-and-forward switching systems
- H04L12/56—Packet switching systems
- H04L12/5601—Transfer mode dependent, e.g. ATM
- H04L2012/5619—Network Node Interface, e.g. tandem connections, transit switching
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L12/00—Data switching networks
- H04L12/54—Store-and-forward switching systems
- H04L12/56—Packet switching systems
- H04L12/5601—Transfer mode dependent, e.g. ATM
- H04L2012/5678—Traffic aspects, e.g. arbitration, load balancing, smoothing, buffer management
- H04L2012/5681—Buffer or queue management
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
- Computer And Data Communications (AREA)
Description
【発明の属する技術分野】
本発明は、コンピュータ・ネットワーキングの分野に関する。さらに詳細にいえば、本発明は、ネットワーク・インタフェース回線(NIC)からそのホスト・コンピュータ・システムへの非同期転送モード(ATM)パケット・ヘッダとATMデータとの転送に関する。
【0002】
請求の範囲に記載の主題が本願と同一の発明者により発明され、本出願と同一の譲受人に譲渡された米国特許願第08/473、514号において、インターリーブされたATMセルの再配置のための方法および装置が開示されている。米国特許願第08/473、514号の記載によれば、NICによって受信された様々なチャネルのインターリーブされたATMセルは、チャネル・ベースで複数のリンク済みリストとして互いにリンクされた「バケット」にバッファされる。NICは、チャネルの蓄積されたATMセル数が既定のしきい値に達すると、バッファに入ったチャネルのATMをホスト・コンピュータ・システムにバースト転送する。複数のデータ構造およびスケジュール・キューは、空きリソースの位置および転送のスケジューリングを含むATMセルのバッファリングを管理するために使用される。また、固定サイズ・ブロックでバッファされたATMセルを(パケット・ヘッダとデータを識別せずに)バースト転送するための方法についても開示されているが、この方法において、ブロック・サイズはNICとそのホスト・コンピュータ・システムとの間のインタフェース・バスと相補的であるが、ATMセルの境界とそろえる必要はない。開示された方法のもとでは、部分オフセットと共に部分バケット・ポインタが各チャネルに使用されて、アンロードの過程で時に応じ部分的にアンロードされたATMバケットの一時的な存在の管理を行う。部分バケット・ポインタが、部分的にアンロードされたATMバケットを識別するために使用されるのに対し、部分オフセットは部分的にアンロードされたATMバケット内の常駐データの開始位置を識別するために使用される。
【0003】
【発明が解決しようとする課題】
上記のブロック方式によるATMセルのバースト転送時に、パケット・ヘッダとデータとをいつも識別できることがさらに望ましい。さらに具体的には、上記のブロック方式で、ショート・パケットおよび「非定形」パケットの場合を除いて、ATMパケット・ヘッダおよびATMデータをホスト・コンピュータ・システムの別々のバッファにバースト転送できることが望ましい。ショート・パケットとは、比較的長いヘッダの後に数バイトのデータを有するパケットであり、一方「非定形」パケットとは最適化のためにハードウェアをプログラムしてあるほとんどの一般的なパケット・タイプのヘッダ・サイズよりも小さいパケットである。アプリケーションは制御の目的でこれらの非定形パケットを用いる。たとえば、最も一般的なパケット・タイプは206バイトのヘッダ長を有するが、制御パケットは、ヘッダ長36バイトおよびデータ長4バイトで、合計わずか40バイトである。パフォーマンスの理由により、これらの各パケットでは、パケット・ヘッダおよびデータが共にヘッダ・バッファにバースト転送されるようになっている。以下にさらに詳細に開示されるように、本発明ではこれらおよびその他の要求をかなえるものである。
【0004】
【課題を解決するための手段】
NICは、セル境界にそろえないブロック方式でバッファに入れられたATMセルのホスト・コンピュータへのバースト転送を制御するための様々な制御ポインタと、少なくとも1つの制御カウンタを備えており、いくつかの所定の例外を除き、ほとんどの場合、ATMパケット・ヘッダをATMデータと区別する。さらに具体的には、ATMパケット・ヘッダおよびATMデータは、ショートパケットおよび非定形パケットの場合をのぞいて、固定サイズ・ブロックでホスト・コンピュータ・システムの別々のヘッダおよびデータ・バッファにバースト転送されるが、ここでブロック・サイズはインタフェース・バスと相補的であるが必ずしもATMセル境界にそろえる必要はない。その代わり、ショート・パケットおよび非定形パケットについては、ヘッダおよびデータ両方ともヘッダ・バッファにバースト転送される。
【0005】
関連する制御ポインタは、部分バケット・ポインタおよび部分オフセットを含む。さらに、関連制御ポインタは、部分バケット・ポインタに続く第1のフルATMバケットを指す第1バケット・ポインタ、部分バケットがある場合には第1のATMバケットの後に続くATMバケットを指す次バケット・ポインタ、最後のリンク済みATMバケットを指す最終バケット・ポインタを含む。関連する少なくとも1つの制御カウンタは、残余ヘッダ長カウンタを含む。
【0006】
この論理では、ヘッダ/データのヘッダ/データ・バッファへの各バースト転送後に、これらの関連する制御ポインタおよび少なくとも1つの制御カウンタへの適切な更新を判定する2段階の手法を採用する。この論理は、適切な更新を判定する際に、NICがヘッダをバースト転送中であるかあるいはデータをバースト転送中であるか、またNICがヘッダのバースト転送からデータのバースト転送へと移行するところであるかを考慮する。さらにこの論理では、パケットが例外として処理されるか、すなわちヘッダとデータを区別しないかを考慮する。
【0007】
第1の段階では、この論理は新規残余ヘッダ長、そしてNICがヘッダをバースト転送中の場合は新規「非正規化」部分オフセットを判定する。第2段階においては、この論理は、新規「非正規化」部分オフセットの指す位置に応じて、新規「正規化」部分オフセット、新規部分、第1および次バケット・ポインタを判定する。さらに具体的には、新規「非正規化」部分オフセットが、完了したばかりのバーストでバーストした可能性のある最も遠いフルATMセルを超えるリンクされたATMバケット(以下では「最遠のフルATMバケット」と略す)内の位置を指すか、「最遠のフルATMバケット」の最後を指すか、完了したばかりのバーストが開始したATMバケット(以下では「開始ATMバケット」と称する)を超えるが「最遠のフルATMバケット」の最後よりも前を指すか、「開始ATMバケット」の最後を指すか、または依然として「開始ATMバケット」内を指すかにより、この論理は上記の判定を行う。これらの各事例に対して、論理はさらに、EOPマーキングがバースト転送を終えたばかりのヘッダ/データ内にあるかどうかの考慮を計算に入れていく。
【0008】
1つの実施の態様において、この論理はアンロード・ブロックのルックアヘッド状態機械に設けられるが、これはシステムの受信ブロックの一部であり、NICのATM層コアである。
【0009】
【発明の実施の形態】
以下の記述において、本発明をより深く理解するために、説明の目的で特定の数、材料、および構成が示される。しかし当業者には、本発明が具体的な詳細なしに実践できることが明らかであろう。その他の例においては、本発明を不明瞭にすることのないよう、周知の特徴は省略または簡略化してある。
【0010】
図1には、本発明のATM NICを組み込むコンピュータ・システム・ネットワークの例を示す。コンピュータ・システム・ネットワーク10は、1つまたは複数のATM NIC12を組み込むホスト・コンピュータ・システム(図示せず)を含む。NIC12は、ローカルATM交換機14を介して公衆ATM交換機16に接続され、ネットワーク10に接続されたホスト・コンピュータ・システム間のデータの非同期転送を可能にしている。あるいは、NIC12を公衆ATM交換機16に直接接続することもできる。図1に示すように、コンピュータ・システム・ネットワーク10はまた、ローカル・エリア・ネットワーク(LAN)エミュレーション15の使用を組み込むコンピュータ・システム含むこともあり、これはATMネットワークを支援フレームワークとして利用するEthernetまたはトークンリング・ネットワークなど他のネットワークを接続するためのゲートウェイとしての役割を果たす。
【0011】
図2は、本発明の好ましい実施の形態よるATM NIC12のアーキテクチャを示すシステム概略図である。ATM NIC12は、システム・バス38を介して,ATMプロトコルに従って動作するネットワークATMセル・インタフェース40に接続されたホスト・コンピュータ・システム48とインタフェースする。
【0012】
図示のATM NIC12は、システム・バス・インタフェース20、汎用入出力(GIO)インタフェース24、システムおよびATM層コア22、ローカル・スレーブ・インタフェース26、送信(TX)FIFO28、受信(RX)FIFO30、セル・インタフェース・ブロック32、外部バッファ・メモリ・インタフェース34、およびクロック合成回路36を含んでいる。
【0013】
NIC12の構成要素20−36は協働して、複数の帯域幅のグループ内の動的に割り当てられた複数のチャネルを介して、ホスト・コンピュータ48とネットワーク内の他のコンピュータとの間のデータの転送を行う。NIC12の構成要素は集合的に、ホスト・コンピュータ・システム48のシステム・バス38に接続されたマルチチャネル・インテリジェント・ダイレクト・メモリ・アクセス(DMA)コントローラとして機能する。好ましい実施の形態において、複数の送信および受信チャネルは、全二重155/622Mbps物理リンクを利用する仮想接続として機能する。外部バッファ・メモリ・インタフェース34を介して外部バッファ・メモリ42へのシステム・バス38上の別のチャネルに割り当てられた複数のデータのパケットは、セル・インタフェース・ブロック32を介しATMセル・インタフェース40への転送のために、システムおよびATM層コア22によってセグメント化される。コア22には、受信セルのパケットへの再アセンブリを容易にする再アセンブリ論理を含んでいる。
【0014】
3つのメモリ・サブシステムが、NIC12の動作に関連づけられている。これらには、ホスト・コンピュータ・システム48に位置するホスト・メモリ49、NIC12の外部にある外部バッファ・メモリ42およびコア22内に位置する記憶ブロック44を含んでいる。NIC12は、外部バッファ・メモリ42および記憶ブロック44の2つのメモリ領域を管理する。外部バッファ・メモリ42は、NIC12にサポートされるすべての送信および受信チャネルのためのパケット・データを含んでいる。記憶ブロック44は、送信および受信チャネルおよびDMA転送が行われるホスト・メモリ49のデータ構造を指すポインタに関するDMA状態情報を含んでいる。記憶ブロック44はまた、ホスト48およびATMセル・インタフェース40の間の移行時にパケットの複数の送受信バッファを管理するためにデータ構造特性も含んでいる。
【0015】
ホスト・コンピュータ・システム48は、データ・パケットおよび送受信されるパケットを指すポインタを含んでいるホスト・メモリ49を備えている。前述のように、NIC12はまた、ホスト・コンピュータ・システム48上のアプリケーションからの非同期転送のセル記述の詳細を保護する。本発明の目的のため、ホスト・コンピュータ・システム48上で実行中のソフトウェアが、当技術分野で周知のようにパケット・インタフェースで送受信リングのラップ・アラウンドを使用して、データの送受信を行うことを想定している。
【0016】
コア22とセル・インタフェース・ブロック32との間に接続されたTX FIFO28およびRX FIFO30は、送信パケットの送信セル・ペイロードおよび受信パケットの受信セル・ペイロードを段階的に行う。セル・インタフェース・ブロック32は、クロック合成回路36がもたらすクロック信号によって駆動されるネットワークのATMセル・インタフェース40との間のセルの送信および受信を行う。ATMセル・インタフェース40およびATMセル・インタフェース32は、ATMフォーラム特別仕様に記載されているUniversal Test and Operations Physical Interface for ATM(UTOPIA)規格に準拠していることが望ましい。UTOPIA仕様に準拠するために、クロック合成回路36は20−25MHzまたは40−50MHzのクロック信号をもたらして、セル・インタフェース・ブロック32が、155Mbpsデータ・ストリームに対し20−25MHzの8ビット・ストリームを、または622Mbpsデータ・ストリームに対し40−50MHzの16ビット・ストリームをサポートできるようにする。
【0017】
現在好ましい実施の形態において、セル・インタフェース・ブロック32は、コア22の制御のもとに4バイトのグループで、TX FIFO28を介し、それぞれが4バイト・セル・ヘッダおよび48バイト・ペイロードを有する52バイト・データ・セルをTXバッファ・メモリ46から受信する。セル・インタフェース・ブロック32は、53バイト・データ・セルを155または622MbpsでATMセル・インタフェース40に供給する前に、セル・ヘッダの第5番めのバイトとして各セルにチェックサムを挿入する。逆に、セル・インタフェース・ブロック32は、ATMセル・インタフェース40からセルを受信する場合、各セルの第5番目のバイトのチェックサムを調べて、チェックサムが正しいかどうかを判定する。正しい場合は、チェックサムを表すバイトはセルから外され、セルは155または622Mbpsで一度に4バイトずつRX FIFP30に転送される。正しくない場合は、セル全体が脱落する。転送されたバイトはコア22の制御のもとに外部バッファ・メモリ・インタフェース34を介してRXバッファ・メモリ45に保存される。
【0018】
1つの実施の形態においては、TX FIFO28およびRX FIFOS30は33ビットの幅を有し、そのうち32ビットがデータ転送に使用され、1ビットがタグとして使用される。タグ・ビットは48バイト・セル・ペイロードからの4バイト・セル・ヘッダを区別するのに使用される。タグ・ビットは、コア22内に位置するTXブロック50によって生成される。1つの実施の形態においては、タグ・ビットはセル・ヘッダの開始を示すために1にセットされ、セル・ペイロードを示すために0にリセットされる。したがって、セル(ヘッダ)の最初の4バイトに対してタグ・ビットは1であり、セル(セル・ペイロード)の残りの48バイトに対してタグ・ビットは0である。
【0019】
TX FIFO28からのデータ・セルを受信する際、セル・インタフェース・ブロック32内にあるTX回路53はタグ・ビットを調べる。タグ・ビットが1の場合、TX回路53は対応する32ビットをセルのヘッダとしてデコードする。タグ・ビットが0の場合、TX回路53は、対応する32ビットをデータとしてデコードする。逆に、セル・インタフェース・ブロック32がATMセル・インタフェース40からデータ・セルを受信する場合、セル・インタフェース・ブロック32内のRXブロック55は、4バイト・セル・ヘッダを48バイト・セル・ペイロードと区別するためのタグ・ビットを生成する。その後、セル・インタフェース・ブロック32は、データ・セルを4バイトのグループでRX FIFO30に送る。RX FIFO30からのセル・データを受信すると、コア22内のRX回路52は前述のようにタグ・ビットの値に従ってセル・データをデコードする。
【0020】
2つの同期クロック信号である20MHz信号よび40MHz信号は、クロック合成回路36を介してATMセル・インタフェース・クロックからセル・インタフェース・ブロック32に供給される。UTOPIA仕様に従い、622Mbps40MHzに対し16ビット・データ・ストリームをもたらすように40MHzクロックが供給される。UTOPIA仕様に従い、クロック合成回路36内で40MHzクロック信号の2分割が行われて、155Mbpsに対し20MHzの8ビット・データ・ストリームを供給する。40MHzクロック信号もまた、1.2Gbps転送速度をもたらすために外部バッファ・メモリ・インタフェース34に供給される。さらに、GIO24はデータの送受信のために40MHzクロックを使用する。
【0021】
TXバッファ・メモリ46は32ビットのデータをTX FIFO28に供給し、RXバッファ・メモリ45は40MHzクロック信号の各周期ごとにRX FIFO30からの32ビット・データを読み取る。しかし、ATMセル・インタフェース40は、622Mbpsでの動作時に2クロック周期ごとにTX FIFO28からの4バイトのデータを読み取り、155Mbpsでの動作時に8クロック周期ごとにTX FIFO28からの4バイトのデータを読み取る。同様にして、セル・インタフェース・ブロック32は、622Mbpsでの動作時に2クロック周期ごとにTX FIFO28へ4バイト・データを供給し、155Mbpsでの動作時に8クロック周期ごとにTX FIFO28へ4バイトのデータを供給する。コア22のセル・バースト速度は、セル・インタフェース・ブロック32のセル・バースト速度とは異なるが、TX FIFO28およびセル・インタフェース・ブロック32の間のデータ速度は、平均するとTX FIFO28およびコア22の間のデータ速度と等しい。同様にRX FIFO30およびセル・インタフェース・ブロック32の間のデータ速度は、平均するとRX FIFO28およびコア22の間のデータ速度と等しい。これは、TX FIFO28およびRX FIFO30とコア22との間のデータ速度が、データがそれぞれセル・インタフェース・ブロック32によって読取りまたは書込みされる速度に依存しているためである。1つの実施の形態において、TX FIFO28の深さは18ワードまたは1 1/2セルの長さであり、RX FIFO30の深さは70ワードの長さである。
【0022】
システム・バス・インタフェース20およびGIOインタフェース24は、ATMセル・インタフェース40への転送の詳細からホスト・コンピュータ・システム48を遮断する。さらに、コア22はシステム・バス38の詳細およびホストの詳細から遮断される。現在好ましい実施の形態においては、アメリカ電気電子通信学会(IEEE)規格1496仕様に規定のとおり、システム・バスはS−バスである。システム・バス・インタフェース20は、システム・バスの仕様(本実施の形態ではS−バスである)に従って通信するように構成される。システム・バス・インタフェース20は、別のホスト・コンピュータ・システム・バスに適合させて構成することもできると考えられている。システム・バス・インタフェース20はまた、GIOインタフェース24により指定されたプロトコルに従ってデータを送信および受信するように構成されている。GIOインタフェース24は、コア22がホスト・コンピュータと通信する単一のインタフェースをもたらす。したがって、コア22は異なるホスト・コンピュータ・システムおよびバスにインタフェースする様々なNIC12の実施の形態のために変わることはない。
【0023】
図3は、コア22をさらに詳細に示している。コア22は互いに図のように接続されたTXブロック50、RXブロック52、アービタ54および制御メモリ56から構成されている。TXブロック50は、ホスト・コンピュータ・システムからATMパケットを受信し、それをATMセルにセグメント化し、そのセグメント化ATMセルをTX FIFO28に供給するために使用される。現在好ましい実施の形態においては、TXブロック50には、米国特許係属出願第x/xxx、xxx号の教示を組込み、622Mbps以上でATMパケットをセグメント化できるようになっている。RXブロック52は、ATMセルをRX FIFO30から受信し、それをATMパケットに再アセンブルし、再アセンブルされたATMパケットをホスト・コンピュータ・システムに供給するために使用される。RXブロック52は、様々なチャネルのインターリーブされたATMセルの再配列に関する前記米国特許係属出願において開示された教示を組み込んでいる。すなわち、様々なチャネルに受信されたATMセルは、外部メモリ42内のATMバケットに保存される。ATMバケットは、チャネルごとにリンク済みリストに編成される。未使用のまたは空のATMバケットはフリー・リソースのリンク済みリストに編成される。さらに、以下にさらに詳細に記述されるように、RXブロック52は、ブロック方式でのホスト・コンピュータ・システムへのバッファされたATMセルのバースト転送に関する本発明の教示を組込んでいるが、ここで転送ブロックはATMセル境界にそろえる必要はなく、また同時に、前述のショート・パケットおよび非定形パケットのようないくつかの所定の例外を除いてはATMパケット・ヘッダとデータを区別する。
【0024】
制御RAM56は、特に前述のATMバケットのリンク済みリストに、所望の方法でATMセルをアンロードするための関連する制御ポインタ、および以下にさらに詳細に記述される少なくとも1つの制御カウンタに関するリンケージ情報などを含むTXおよびRXブロック50および52の様々な制御情報を保存するために使用される。最後に、アービタ54は、TXおよびRXブロック50および52の間のRAM56を制御するアクセスの調停に使用される。制御RAM56およびアービタ54は、当技術分野において周知のいくつかの方法で実施することができる。
【0025】
図4では、Rxブロック52の1つの実施の形態をさらに詳細に示している。図示の実施の形態の例示では、RXブロック52は、互いに図のように接続されたRXロード・ブロック58、RXアンロード・ブロック60、スケジュール・キュー62、フリー・リスト・マネージャ64、外部RAMインタフェース66、および制御RAMインタフェース68から構成されている。RXロード・ブロック58は、RX FIFO30からインターリーブされたATMセルを受信し、それを外部メモリ34内の空ATMバケットに保存するために使用される。フリー・リスト・マネージャ64は、フリー・バケットのある位置をRXロード・ブロック58に知らせて、フリー・リソースを管理するために使用される。RXロード・ブロック58はまた、スケジュール・キュー62によるアンロード・サービスを必要とするチャネルのスケジュールにも使用される。1つの実施の形態において、アンロード・サービスは、チャネルに蓄積されたATMセルの数が所定のしきい値に達するとスケジュールされる。RXアンロード・ブロック60は、バッファされたATMセルをアンロードし、それを所望の方法で(すなわち、ブロック・サイズがバス・インタフェースと相補的である固定サイズ・ブロックで)ホスト・コンピュータ・システムにバースト転送し、さらに同時に、前述の所定の例外を除いてATMパケット・ヘッダとデータを区別するために使用される。RXロード・ブロック58、RXアンロード・ブロック60、スケジュール・キュー62、およびフリー・リスト・マネージャ64の基本的動作に関して詳しくは、米国特許係属出願第08/473、514号を参照されたい。
【0026】
外部および制御RAMインタフェース66および68は、それぞれのメモリに対してその通常のインタフェース機能を行う。外部および制御RAMインタフェース66および68はまた、当技術分野において周知な任意の手法で実施することができる。
【0027】
RXアンロード・ブロック60についてさらに詳細に記述する前に、図5−図8を参照して、まず所望の転送の方法に関して説明する。図5は、ヘッダ72、データ74、およびEOP76を含む「通常の」ATMパケット70を示している。図示のとおり、ATMパケット70は、複数のATMセル(セル・ヘッダでパッケージされている)78で受信される。さらに様々なチャネルのATMセルはインターリーブされて到着する。すなわち、ATMパケット70のATMセル78は、RX FIFO30に連続して受信される必要はない。ただし、前述のように、パケットが比較的短く、ヘッダ72が比較的長くデータ74がわずか数バイトの長さの場合もある。さらにまた、全パケットがほとんどの一般的パケット・タイプのヘッダよりも短い非定形パケットもある。
【0028】
図6は、パケット・ヘッダおよびパケット・データがホスト・コンピュータ・システム内に配置される所望の方法、すなわちショートおよび非定形パケットの場合を除いてパケット・ヘッダがヘッダ・バッファ80に、パケット・データがヘッダ・バッファ80とは別のデータ・バッファ82に配置される方法を示している。ショートおよび非定形パケットについては、パケット・ヘッダおよびパケット・データは共にヘッダ・バッファ80に配置される。
【0029】
図7および図8は、ATMヘッダ72がバッファ80に、ATMデータ74がバッファ82に転送される所望の方法を示している。図示のとおり、ATMセル78はATMバケットに保存される。ATMバケットはチャネルごとのリンク済みリストのように互いにリンクされている(リンケージ情報は図示せず)。さらに、リンク済み各リストは、複数のポインタで管理される。さらに具体的には、リンクされた各リストは、第1のフルバケット(部分バケットまたは常駐データの入ったバケットに対する)を指す第1バケット・ポインタ84、第1のバケットの後に続く次のATMバケットを指す次バケット・ポインタ86、および最後のATMバケットを指す最終バケット・ポインタ88で管理される。
【0030】
保存されたATMセルは、固定サイズ・ブロックでホスト・コンピュータ・システムに転送されるが、ここでブロック・サイズはバス・インタフェースと相補的であり、ATMセル・サイズとは等しくない。従って、部分的にアンロードされたバケットまたは常駐データを備えるバケットが時として存在することも可能である。各チャネルには一度に部分バケットが1つだけであることに留意されたい。したがって、前述のポインタ84−88に加えて、部分バケット・ポインタ90はまた部分バケットを識別するために各チャネルに採用され、部分オフセット92は部分バケット内の常駐データの開始位置を識別するために使用される。さらに、ヘッダが完全に転送されるまで、残余ヘッダ長を維持することが必要であり、残余ヘッダ長カウンタ94がその目的のため採用される。
【0031】
制御ポインタ84−92および制御カウンタ94は、各バースト転送後に更新される。さらに具体的には、第1ポインタ84、次ポインタ86、部分ポインタ90および部分オフセット92はすべて相応して「進められ」、残りのヘッダ長94は相応してデクリメントされる。チャネルのすべてのバッファされたATMセルがホスト・コンピュータ・システムに転送されてしまうと、最後のバケット・ポインタ88が更新される。
【0032】
部分オフセットは、部分ATMバケット内の常駐データの開始位置を示すために使用されるため、この部分オフセットは0からATMセル・サイズ(CS)の間の値だけを取ることができる。部分バケットがない場合は、部分オフセットは0に等しい。一方、部分オフセットは、ATMバケットの最後を指す場合にCSに等しい。したがって、各バースト転送後の正しい新部分オフセットを判定するためには、部分オフセットをバースト・サイズ(BS)だけ名目上インクリメントする際に、調整または正規化を行って部分オフセット値を0とCSの間にしなければならない。
【0033】
さらに、CSおよびBSは固定されているため、正規化前にインクリメントされた部分オフセットがとることのできる値は有限および事前設定可能である。たとえば、現在好ましい実施の形態においては、CSは48バイト、そしてBSは64バイトである。したがって、正規化前のインクリメントされた部分オフセット値は、必然的に0から28(ワード数の単位で)の間である。さらに説明を加えると、BSが128バイトに変更された場合、正規化前のインクリメントされた部分オフセット値は必然的に0から44(ワード数の単位で)の間である。
【0034】
さらに、バケット・ポインタおよび部分オフセットの管理の目的で、正規化前インクリメント済み部分オフセット値(p)は事前設定可能な有限数の事例として解析することが可能である。現在好ましい実施の形態(CS=48バイト、BS=64バイト)を再度例にあげると、pは必然的に0−28(ワード数の単位で)の間であるから、完了したばかりのバースト転送の停止位置は、pが24よりも大きい場合「最遠のフルATMバケット」を超え、pが13−24の間の場合「最遠のフルATMバケット」内であり、pが0−12の間の場合「開始バケット」内である。この場合の「最遠のフルATMバケット」は、「開始バケット」のすぐ後のバケットである。さらに説明を加えると、CSが48バイトでBSが128バイトである場合の実施の形態では、pは必然的に0−44(ワード数の単位で)の間にあるため、完了したばかりのバースト転送の停止位置は、pが36よりも大きい場合「最遠のフルATMバケット」を超え、pが25−36の間の場合「最遠のフルATMバケット」内であり、pが13−24の間の場合「開始バケット」に続くバケット内であり、pが0−12の間の場合「開始バケット」内である。
【0035】
以上、所望の転送方法を記述してきたが、ここでRXアンロード・ブロック60について、特に本明細書に組み込む本発明の教示について図9および図10−図15を参照しながら、さらに詳細に記述する。図9は、RXアンロード・ブロック60の1つの実施の形態を示している。図示のように、RXアンロード・ブロック60は、それぞれ図のように互いに接続されたデータ・エンジン状態機械96、ルックアヘッド状態機械98、ゲット・バッファ状態機械98、複数のアンロード・レジスタ102および複数の加算器、減算器、比較器、およびマルチプレクサ104を含んでいる。ゲット・バッファ状態機械100は、ホスト・コンピュータ・システム上のバッファを入手するために使用され、データ・エンジン状態機械96は、ホスト・コンピュータ・システム上の適切なバッファにヘッダおよびデータを実際にバースト転送するために使用される。ルックアヘッド状態機械98は、RXアンロード・ブロック60の動作を制御するために使用される。アンロード・レジスタ102は、様々な制御データの保存のために、様々な状態機械96−100、特にルックアヘッド状態機械98によって使用される。制御データに対する変更は、アンロード・レジスタ98から制御データを読み取り、読取りデータを選択された加算器、減算器などの1つ104に供給し、その後選択された加算器、減算器などの1つ104を使用して提供された制御データ上で操作することによって行われる。
【0036】
ルックアヘッド状態機械98は、前述の第1バケット・ポインタ84、次バケット・ポインタ86などを含む、適切な制御情報および制御信号をゲット・バッファ状態機械100およびデータ・エンジン状態機械96に供給する。ルックアヘッド状態機械98は、行われているのがヘッダ・バースト転送またはデータ・バースト転送のいずれであるか、バースト転送されたばかりのヘッダ/データの中にEOPが検出されたかどうか、といった実行中のアンロードを監視する。一方ルックアヘッド状態機械98はこれに応じて、アンロード・レジスタ102および加算器、減算器など104を使用して、制御データを維持する。
【0037】
ルックアヘッド状態機械98によって、関連する制御ポインタ84−92および少なくとも1つの関連するカウンタ94が適切に維持されて、ATMセルを所望の方法でホスト・コンピュータ・システムにバースト転送できる方法については、以下にさらに詳しく記述する。ゲット・バッファ状態機械100、データ・エンジン状態機械96、およびルックアヘッド状態機械98によって実行される他の機能は、本発明の理解には直接には関与しない。したがって以下では、これらについての記述は行わない。
【0038】
図10−図15は様々な関連する制御ポインタ84−92および残余ヘッダ長カウンタ94を維持するためのルックアヘッド状態機械98の動作論理の1つの実施の形態を示している。図10に示されたように、ルックアヘッド状態機械98はまず、バースト転送がヘッダ・バースト転送であるか、またはデータ・バースト転送であるかを判定する、ステップ200。バースト転送がヘッダ・バースト転送であると判定すると、ルックアヘッド状態機械98は以前の残余ヘッダ長からバースト・サイズを除算することにより新たな残余ヘッダ長を計算させる、ステップ202。次に、ルックアヘッド状態機械98は、新規ヘッダ長がゼロ未満であるがどうか判定する、ステップ204。新規ヘッダ長がゼロ未満であると判定されると、ルックアヘッド状態機械98は以前の部分オフセット92に以前のヘッダ長94を加算することにより新たな部分オフセット(未正規化)92を計算させる、ステップ206。さらに、ルックアヘッド状態機械98は、新規ヘッダ長94をゼロに調整させる、ステップ208。
【0039】
一方、ステップ200においてバースト転送がデータ・バースト転送であると判定された場合、もしくはステップ204において新規ヘッダ長94がゼロ未満ではない場合、ルックアヘッド状態機械98は、以前の部分オフセット92にバースト・サイズを加算することにより新規部分オフセット92を計算させる、ステップ210。
【0040】
次に、ルックアヘッド状態機械98が、正規化前の新規部分オフセット92が「最遠フルATMバケット」を超えた位置を指しているかどうかを判定する、ステップ212。判定結果が肯定である場合、ルックアヘッド状態機械98は「最遠のフルATMバケット」の事例に従って関連ポインタ84−92を更新させる、ステップ214。一方、判定結果が否定である場合、ルックアヘッド状態機械98はさらに、正規化前の新規部分オフセットが「最遠のフルATMバケット」の最後を正確に指しているかどうか判定する、ステップ216。
【0041】
ステップ216における判定結果が肯定である場合、ルックアヘッド状態機械98は、「最遠のフルATMバケットの最後」の事例に従って関連ポインタ84−92を更新させる、ステップ218。一方、ステップ216における判定結果が否定である場合、ルックアヘッド状態機械98はさらに、正規化前新規部分オフセットが「開始バケット」を超えた位置を指しているかどうか判定する、ステップ220。
【0042】
再び、ステップ220における判定結果が肯定である場合は、ルックアヘッド状態機械98は、「開始バケットを超える」事例に従って関連ポインタ84−92を更新させる、ステップ222。一方、ステップ220における判定結果が否定である場合は、ルックアヘッド状態機械98はさらに、正規化前新規部分オフセットが「開始バケット」の最後を正確に指しているかどうかを判定する、ステップ224。
【0043】
同様にして、ステップ224における判定結果が肯定である場合は、ルックアヘッド・状態機械98は、「開始バケットの最後」の事例に従って関連ポインタ84−92を更新させる、ステップ226。一方、ステップ224における判定結果が否定である場合は、ルックアヘッド状態機械98は、「開始バケット内」の事例に従って関連ポインタ84−92を更新させる、ステップ228。
【0044】
図11−図15は、関連ポインタ84−92が前述の事例のもとで更新される方法を示している。説明を容易にするために、CSを48バイト、BSを64バイトとする現在好ましい実施の形態に従って更新を例示する。すなわち、現在好ましい実施の形態のもとでは、前述のとおり、部分オフセット92がとることのできる有効値(ワード数の単位で)は、0−12である。部分オフセット92がバースト転送前にとることのできる最大値(ワード数の単位で)は12であり、正規化前新規部分オフセット92がとることのできる最大値(ワード数の単位で)は28(12+16、ここで16はワード数でのBS)である。したがって、本実施の形態では、部分オフセット92の正規化のための適切な調整値(ワード数の単位で)は、「最遠フルATMバケット」を「超える」および「最後」の場合24(つまり2×CS)であり、「開始バケット」を「超える」および「最後」の場合12(1×CS)である。
【0045】
したがって、図11に示されるように、「最遠フルATMバケットを超える」の事例に対しステップ230において、ルックアヘッド・状態機械98は正規化前新規部分オフセット92から2×CSを除算することにより正規化された新規部分オフセット92を計算させる。その後、ルックアヘッド・状態機械98は、以前の部分バケットおよび以前の第1バケットをフリー・リソース・リストに戻させる、ステップ232。次に、ルックアヘッド状態機械98は、前の第1のフルATMバケット、すなわち完了したばかりのバースト転送の前に第1バケット・ポインタによって指されたバケット内にEOPが検出されたかどうかを判定する、ステップ234。判定結果が肯定である場合は、ルックアヘッド状態機械98は、部分バケット・ポインタ90を前の次バケット・ポインタ86と等しくなるようにセットし、維持されたリンケージ情報を使用して新規第1バケット・ポインタ84の適切なアドレス値を調べる。一方、判定結果が否定である場合、ルックアヘッド・状態機械98は新規部分バケット・ポインタ90をヌルに、正規化新規部分オフセット92をゼロに、そして第1バケット・ポインタ84を前の次バケット・ポインタ86に等しくセットする、ステップ238。
【0046】
図12に示されるように、「最遠のフルATMバケットの最後」の事例に対しステップ240において、ルックアヘッド状態機械98は正規化前新規部分オフセット・ポインタ92から2×CSを除算することにより正規化された新規部分オフセット92を計算させる。その後、ルックアヘッド状態機械98は、以前の部分バケットおよび第1バケットをフリー・リソース・リストに戻させる、ステップ242。さらに、ルックアヘッド状態機械98は、新規部分バケット・ポインタ90をヌルに、そして第1バケット・ポインタ84を前の次バケット・ポインタ86に等しくセットする、ステップ244。部分オフセット92はステップ240において効果的にゼロにセットされていることに留意されたい。
【0047】
図13に示されるように、「開始ATMバケットを超える」の事例に対しステップ246において、ルックアヘッド状態機械98は正規化前新規部分オフセット92から1×CSを除算することにより正規化された新規部分オフセット92を計算させる。次に、ルックアヘッド状態機械98は、「開始バケット」が部分バケットであるかどうかを判定する、ステップ248。「開始バケット」が部分バケットである場合は、ルックアヘッド状態機械98は、「開始部分バケット」をフリー・リストに戻させる、ステップ250。その後、ルックアヘッド状態機械98は、部分バケット・ポインタ90を前の第1バケット・ポインタ84と等しく、第1バケット・ポインタ84を前の次バケット・ポインタ86に等しくセットする。
【0048】
しかし、ステップ248に戻り、「開始バケット」が部分バケットでないと判定された場合、ルックアヘッド状態機械98は、「開始バケット」をフリー・リストに戻させる、ステップ254。次に、ルックアヘッド状態機械98は、以前の第1バケットでEOPが検出されたかどうかを判定する、ステップ256。判定結果が肯定である場合、ルックアヘッド状態機械98は、部分ポインタ90を前の次ポインタ86に等しくセットし、維持されたリンケージ情報を使って新規第1ポインタ84のアドレス値を調べる。一方、判定結果が否定である場合、ルックアヘッド状態機械98は、部分オフセット92をゼロに、第1ポインタ84を前の次ポインタ86と等しくセットする、ステップ260。
【0049】
図14に示されるように、「開始ATMバケットの最後」の事例に対しステップ262において、ルックアヘッド状態機械98は正規化前新規部分オフセット92から1×CSを除算することにより正規化された新規部分オフセット92を計算させる。その後、ルックアヘッド状態機械98は、「開始バケット」が部分バケットであるかどうかを判定する、ステップ264。「開始バケット」が部分バケットである場合は、ルックアヘッド状態機械98は、「開始部分バケット」をフリー・リストに戻させる、ステップ266。その後、ルックアヘッド状態機械98は、部分バケット・ポインタ90をゼロに等しく、第1バケット・ポインタ84を前の次バケット・ポインタ86に等しくセットする。一方、ステップ264に戻ると、状態機械98が開始第1バケットを、フリー・リストに戻させるステップ270のように判定されている。その後、ルックアヘッド状態機械98は、第1バケット・ポインタ84を前の次バケット・ポインタ86に等しくセットする。
【0050】
最後に、図15に示されるように、「開始バケット内」の事例に対して、ルックアヘッド状態機械98は、「開始バケット」が部分バケットであるかどうか判定する、ステップ274。判定結果が肯定である場合、これ以上の動作はとられない、すなわち、あらゆるポインタおよび部分オフセットは変更されない。一方判定結果が否定である場合は、ルックアヘッド状態機械98は、部分バケット・ポインタ90を前の第1ポインタ84と等しく、第1ポインタを前の次ポインタ86と等しくセットする、ステップ276。
【0051】
以上、ATMパケット・ヘッダおよびデータをホスト・コンピュータにバースト転送するための方法および装置について記述してきた。本発明の方法および装置を例示的な実施の形態に関して述べたが、記載された実施の形態に本発明を限定するものではないことを、当業者なら理解するであろう。本発明は、冒頭の請求範囲の精神および範囲から逸脱することなく変更および修正を加えて実施することができる。したがって、この説明は本発明を限定するものではなく例示的なものとして見なされる。
【図面の簡単な説明】
【図1】 本発明の教示を組込むコンピュータ・システムのネットワークの例を示す図である。
【図2】 図1のNICの1つの実施の形態を示す図である。
【図3】 図2のシステムおよびATM層コアを示す図である。
【図4】 図3の受信ブロックを示す図である。
【図5】 ATMパケットを示す図である。
【図6】 ホスト・システム上のヘッダおよびデータ・バッファを示す図である。
【図7】 ホスト・システムへのヘッダ/データのバースト転送のための、セル境界にそろえない手法を示す図である。
【図8】 ホスト・システムへのヘッダ/データのバースト転送のための、セル境界にそろえない手法を示す図である。
【図9】 図4のアンロード・ブロックの1つの実施形態を示す図である。
【図10】 所望の方法でATMヘッダおよびデータのバースト転送を行うための関連制御ポインタおよびカウンタを維持するための、図9のルックアヘッド・状態機械に組込まれた論理フローの1つの実施形態を示す図である。
【図11】 所望の方法でATMヘッダおよびデータのバースト転送を行うための関連制御ポインタおよびカウンタを維持するための、図9のルックアヘッド・状態機械に組込まれた論理フローの1つの実施形態を示す図である。
【図12】 所望の方法でATMヘッダおよびデータのバースト転送を行うための関連制御ポインタおよびカウンタを維持するための、図9のルックアヘッド・状態機械に組込まれた論理フローの1つの実施形態を示す図である。
【図13】 所望の方法でATMヘッダおよびデータのバースト転送を行うための関連制御ポインタおよびカウンタを維持するための、図9のルックアヘッド・状態機械に組込まれた論理フローの1つの実施形態を示す図である。
【図14】 所望の方法でATMヘッダおよびデータのバースト転送を行うための関連制御ポインタおよびカウンタを維持するための、図9のルックアヘッド・状態機械に組込まれた論理フローの1つの実施形態を示す図である。
【図15】 所望の方法でATMヘッダおよびデータのバースト転送を行うための関連制御ポインタおよびカウンタを維持するための、図9のルックアヘッド・状態機械に組込まれた論理フローの1つの実施形態を示す図である。
【符号の説明】
10 コンピュータ・システム・ネットワーク
12 ATM NIC
14 ローカルATM交換機
15 ローカル・エリア・ネットワーク・エミュレーション
16 公衆ATM交換機
20 システム・バス・インタフェース
22 ATM層コア
24 GIO(汎用入/出力)インタフェース
26 ローカル・スレーブ・インタフェース
28 TX(送信)FIFO
30 RX(受信)FIFO
32 セル・インタフェース・ブロック
34 外部バッファ・メモリ・インタフェース
36 クロック合成回路
38 システム・バス
40 ATMセル・インタフェース
42 外部バッファ・メモリ
44 記憶ブロック
45 RXバッファ・メモリ
46 TXバッファ・メモリ
48 ホスト・コンピュータ
Claims (3)
- (a)それぞれのパケットがパケット・ヘッダおよびパケット・データを有する複数のチャネルの複数のパケットの複数の非同期転送モード(ATM)セルを保存する複数のリンクされた記憶バケットのための複数の制御データを保存するメモリ・ユニットと、
(b)リンクされた記憶バケットへのATMセルの受信を管理し、リンクされた記憶バケットからパケット・ヘッダおよびパケット・データを、パケット・ヘッダおよびデータが共にヘッダ・バッファにバースト転送される複数の所定の例外を除き、インタフェース・バスを介して装置に接続されたホスト・コンピュータ・システム上の様々なチャネルの別個のヘッダ・バッファおよびデータ・バッファにバースト転送するためのメモリ・ユニットに接続され、パケット・ヘッダおよびデータが固定サイズ・ブロックでバースト転送され、各ブロックがインタフェース・バスと相補的であるが必ずしもセル境界とそろう必要はないブロック・サイズを有する受信ブロックであって、各バースト転送がヘッダ・バースト転送であるかまたはデータ・バースト転送であるか、バースト転送がヘッダ・バースト転送である場合は、全パケット・ヘッダが特定のバースト転送の終わりに完全に転送されているか、そしてさらにパケットが例外的に処理されるべきかどうかを考慮して、制御データを維持するための論理を含む受信ブロックとを備える装置。 - コンピュータ・システムにおいて、システムのネットワーク・インタフェース回路からパケットのヘッダおよびデータをシステムのバッファにバースト転送する方法において、
(a) メモリ・ユニット内にチャネル・ベースでパケットの複数の非同期転送モード(ATM)セルを保存するための複数のリンクされた記憶バケットのための複数の制御データを保存するステップと、
(b) リンクされた記憶バケットへのATMセルの受信を管理し、リンクされた記憶バケットからパケット・ヘッダおよびパケット・データを、パケット・ヘッダおよびデータが共にヘッダ・バッファにバースト転送される複数の所定の例外を除き、インタフェース・バスを介して様々なチャネルの別個のヘッダ・バッファおよびデータ・バッファにバースト転送するステップであって、パケット・ヘッダおよびデータが固定サイズ・ブロックでバースト転送され、各ブロックがインタフェース・バスと相補的であるが必ずしもセル境界とそろう必要はないブロック・サイズを有するステップと、
(c) 各バースト転送がヘッダ・バースト転送であるかまたはデータ・バースト転送であるか、バースト転送がヘッダ・バースト転送である場合は、全パケット・ヘッダが特定のバースト転送の終わりに完全に転送されているか、そしてさらにパケットが例外的に処理されるべきかどうかを考慮して、制御データを維持するステップとを含む方法。 - (a) 複数のチャネルの複数のパケットの複数のヘッダおよびデータを保存する第1のメモリ・ユニットと、
(b) パケットの複数の非同期転送モード(ATM)セルを保存する複数のリンクされた記憶バケットを保存する第2のメモリ・ユニットと、
(c) リンクされた記憶バケットのための複数の制御データを保存する第3のメモリ・ユニットと、
(d) リンクされた記憶バケットへのATMセルの受信を管理し、リンクされた記憶バケットからパケット・ヘッダおよびパケット・データを、パケット・ヘッダおよびデータが共にヘッダ・バッファにバースト転送される複数の所定の例外を除き、第1および第2のメモリ・ユニットに接続されたインタフェース・バスを介してヘッダ・バッファおよびデータ・バッファにバースト転送するためのメモリ・ユニットに接続され、パケット・ヘッダおよびデータが固定サイズ・ブロックでバースト転送され、各ブロックがインタフェース・バスと相補的であるが必ずしもセル境界とそろう必要はないブロック・サイズを有する受信ブロックであって、各バースト転送がヘッダ・バースト転送であるかまたはデータ・バースト転送であるか、バースト転送がヘッダ・バースト転送である場合は、全パケット・ヘッダが特定のバースト転送の終わりに完全に転送されているか、そしてさらにパケットが例外的に処理されるべきかどうかを考慮して、制御データを維持するための論理を含む受信ブロックとを備えるコンピュータ・システム。
Applications Claiming Priority (2)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| US08/552,342 | 1995-11-02 | ||
| US08/552,342 US5758089A (en) | 1995-11-02 | 1995-11-02 | Method and apparatus for burst transferring ATM packet header and data to a host computer system |
Publications (3)
| Publication Number | Publication Date |
|---|---|
| JPH09266485A JPH09266485A (ja) | 1997-10-07 |
| JPH09266485A5 JPH09266485A5 (ja) | 2004-11-04 |
| JP4205181B2 true JP4205181B2 (ja) | 2009-01-07 |
Family
ID=24204932
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP30754596A Expired - Lifetime JP4205181B2 (ja) | 1995-11-02 | 1996-11-05 | Atmパケット・ヘッダおよびデータをホスト・コンピュータ・システムにバースト転送するための方法および装置 |
Country Status (3)
| Country | Link |
|---|---|
| US (1) | US5758089A (ja) |
| EP (1) | EP0772368A3 (ja) |
| JP (1) | JP4205181B2 (ja) |
Families Citing this family (64)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP4181645B2 (ja) * | 1996-02-29 | 2008-11-19 | 富士通株式会社 | データ処理装置 |
| US6591302B2 (en) | 1997-10-14 | 2003-07-08 | Alacritech, Inc. | Fast-path apparatus for receiving data corresponding to a TCP connection |
| US8621101B1 (en) | 2000-09-29 | 2013-12-31 | Alacritech, Inc. | Intelligent network storage interface device |
| US7284070B2 (en) * | 1997-10-14 | 2007-10-16 | Alacritech, Inc. | TCP offload network interface device |
| US6697868B2 (en) * | 2000-02-28 | 2004-02-24 | Alacritech, Inc. | Protocol processing stack for use with intelligent network interface device |
| US6687758B2 (en) * | 2001-03-07 | 2004-02-03 | Alacritech, Inc. | Port aggregation for network connections that are offloaded to network interface devices |
| US6389479B1 (en) | 1997-10-14 | 2002-05-14 | Alacritech, Inc. | Intelligent network interface device and system for accelerated communication |
| US7185266B2 (en) | 2003-02-12 | 2007-02-27 | Alacritech, Inc. | Network interface device for error detection using partial CRCS of variable length message portions |
| US6226680B1 (en) | 1997-10-14 | 2001-05-01 | Alacritech, Inc. | Intelligent network interface system method for protocol processing |
| US7167927B2 (en) | 1997-10-14 | 2007-01-23 | Alacritech, Inc. | TCP/IP offload device with fast-path TCP ACK generating and transmitting mechanism |
| US6658480B2 (en) * | 1997-10-14 | 2003-12-02 | Alacritech, Inc. | Intelligent network interface system and method for accelerated protocol processing |
| US6427171B1 (en) | 1997-10-14 | 2002-07-30 | Alacritech, Inc. | Protocol processing stack for use with intelligent network interface device |
| US7174393B2 (en) | 2000-12-26 | 2007-02-06 | Alacritech, Inc. | TCP/IP offload network interface device |
| US7076568B2 (en) * | 1997-10-14 | 2006-07-11 | Alacritech, Inc. | Data communication apparatus for computer intelligent network interface card which transfers data between a network and a storage device according designated uniform datagram protocol socket |
| US7133940B2 (en) * | 1997-10-14 | 2006-11-07 | Alacritech, Inc. | Network interface device employing a DMA command queue |
| US7089326B2 (en) * | 1997-10-14 | 2006-08-08 | Alacritech, Inc. | Fast-path processing for receiving data on TCP connection offload devices |
| US7237036B2 (en) * | 1997-10-14 | 2007-06-26 | Alacritech, Inc. | Fast-path apparatus for receiving data corresponding a TCP connection |
| US8782199B2 (en) | 1997-10-14 | 2014-07-15 | A-Tech Llc | Parsing a packet header |
| US6757746B2 (en) * | 1997-10-14 | 2004-06-29 | Alacritech, Inc. | Obtaining a destination address so that a network interface device can write network data without headers directly into host memory |
| US6470415B1 (en) | 1999-10-13 | 2002-10-22 | Alacritech, Inc. | Queue system involving SRAM head, SRAM tail and DRAM body |
| US8539112B2 (en) | 1997-10-14 | 2013-09-17 | Alacritech, Inc. | TCP/IP offload device |
| US7042898B2 (en) | 1997-10-14 | 2006-05-09 | Alacritech, Inc. | Reducing delays associated with inserting a checksum into a network message |
| US6434620B1 (en) | 1998-08-27 | 2002-08-13 | Alacritech, Inc. | TCP/IP offload network interface device |
| US6427173B1 (en) | 1997-10-14 | 2002-07-30 | Alacritech, Inc. | Intelligent network interfaced device and system for accelerated communication |
| JPH11145987A (ja) * | 1997-11-12 | 1999-05-28 | Nec Corp | Atmスイッチにおけるセル選択廃棄システム |
| US7664883B2 (en) * | 1998-08-28 | 2010-02-16 | Alacritech, Inc. | Network interface device that fast-path processes solicited session layer read commands |
| JP3494042B2 (ja) * | 1998-10-27 | 2004-02-03 | セイコーエプソン株式会社 | データ転送制御装置及び電子機器 |
| 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 |
| US6480489B1 (en) | 1999-03-01 | 2002-11-12 | Sun Microsystems, Inc. | Method and apparatus for data re-assembly with a high performance network interface |
| US6483804B1 (en) | 1999-03-01 | 2002-11-19 | Sun Microsystems, Inc. | Method and apparatus for dynamic packet batching with a high performance network interface |
| US6356951B1 (en) | 1999-03-01 | 2002-03-12 | Sun Microsystems, Inc. | System for parsing a packet for conformity with a predetermined protocol using mask and comparison values included in a parsing instruction |
| US6606301B1 (en) | 1999-03-01 | 2003-08-12 | Sun Microsystems, Inc. | Method and apparatus for early random discard of packets |
| US6389468B1 (en) | 1999-03-01 | 2002-05-14 | Sun Microsystems, Inc. | Method and apparatus for distributing network traffic processing on a multiprocessor computer |
| US6453360B1 (en) | 1999-03-01 | 2002-09-17 | Sun Microsystems, Inc. | High performance network interface |
| CA2265346A1 (en) | 1999-03-17 | 2000-09-17 | Pmc-Sierra Ltd. | Pos-phy interface for interconnection of physical layer devices and link layer devices |
| KR100291173B1 (ko) * | 1999-04-06 | 2001-05-15 | 서평원 | 에이티엠 교환 시스템에서의 트래픽 관리 장치 및 방법 |
| GB2349717A (en) * | 1999-05-04 | 2000-11-08 | At & T Lab Cambridge Ltd | Low latency network |
| US8346971B2 (en) | 1999-05-04 | 2013-01-01 | At&T Intellectual Property I, Lp | Data transfer, synchronising applications, and low latency networks |
| US6360278B1 (en) * | 1999-05-27 | 2002-03-19 | 3Com Corporation | FIFO queued entry point circuit for a network interface card |
| CA2313087A1 (en) | 2000-06-29 | 2001-12-29 | Pmc-Sierra, Inc. | A bus interface for cell and/or packet data transfer |
| US8019901B2 (en) * | 2000-09-29 | 2011-09-13 | Alacritech, Inc. | Intelligent network storage interface system |
| US6720074B2 (en) * | 2000-10-26 | 2004-04-13 | Inframat Corporation | Insulator coated magnetic nanoparticulate composites with reduced core loss and method of manufacture thereof |
| US6842837B1 (en) * | 2001-02-13 | 2005-01-11 | Digeo, Inc. | Method and apparatus for a burst write in a shared bus architecture |
| DE60218240T2 (de) * | 2001-04-18 | 2007-11-22 | Olympus Corporation | Chirurgisches Instrument |
| US20030061431A1 (en) * | 2001-09-21 | 2003-03-27 | Intel Corporation | Multiple channel interface for communications between devices |
| US20030121835A1 (en) * | 2001-12-31 | 2003-07-03 | Peter Quartararo | Apparatus for and method of sieving biocompatible adsorbent beaded polymers |
| US7543087B2 (en) * | 2002-04-22 | 2009-06-02 | Alacritech, Inc. | Freeing transmit memory on a network interface device prior to receiving an acknowledgement that transmit data has been received by a remote device |
| US7496689B2 (en) * | 2002-04-22 | 2009-02-24 | Alacritech, Inc. | TCP/IP offload device |
| KR100490898B1 (ko) * | 2002-07-12 | 2005-05-24 | 한국전자통신연구원 | 에이티엠적응계층1에서의 구조화 데이터 전달을 위한포인터 생성장치 및 그 방법 |
| US7337241B2 (en) * | 2002-09-27 | 2008-02-26 | Alacritech, Inc. | Fast-path apparatus for receiving data corresponding to a TCP connection |
| US7191241B2 (en) * | 2002-09-27 | 2007-03-13 | Alacritech, Inc. | Fast-path apparatus for receiving data corresponding to a TCP connection |
| US20040088262A1 (en) * | 2002-11-06 | 2004-05-06 | Alacritech, Inc. | Enabling an enhanced function of an electronic device |
| US7400627B2 (en) * | 2003-06-05 | 2008-07-15 | Brooktree Broadband Holding, Inc. | ATM header compression using hash tables |
| US6996070B2 (en) * | 2003-12-05 | 2006-02-07 | Alacritech, Inc. | TCP/IP offload device with reduced sequential processing |
| US8248939B1 (en) | 2004-10-08 | 2012-08-21 | Alacritech, Inc. | Transferring control of TCP connections between hierarchy of processing mechanisms |
| US7738500B1 (en) | 2005-12-14 | 2010-06-15 | Alacritech, Inc. | TCP timestamp synchronization for network connections that are offloaded to network interface devices |
| EP1853014B1 (en) * | 2006-05-02 | 2017-08-02 | Samsung Electronics Co., Ltd. | Method and apparatus for transmitting/receiving packet in mobile communication system |
| EP2061191A1 (en) * | 2007-11-13 | 2009-05-20 | STMicroelectronics (Grenoble) SAS | Buffering architecture for packet injection and extraction in on-chip networks. |
| US8539513B1 (en) | 2008-04-01 | 2013-09-17 | Alacritech, Inc. | Accelerating data transfer in a virtual computer system with tightly coupled TCP connections |
| CN101625625B (zh) * | 2008-07-11 | 2011-11-30 | 鸿富锦精密工业(深圳)有限公司 | 信号中继装置及利用该装置访问外部存储器的方法 |
| US8341286B1 (en) | 2008-07-31 | 2012-12-25 | Alacritech, Inc. | TCP offload send optimization |
| US9306793B1 (en) | 2008-10-22 | 2016-04-05 | Alacritech, Inc. | TCP offload device that batches session layer headers to reduce interrupts as well as CPU copies |
| JP2012231445A (ja) * | 2011-04-11 | 2012-11-22 | Toshiba Corp | パケット配信装置およびパケット配信方法 |
| CN111510394B (zh) * | 2019-01-31 | 2022-04-12 | 华为技术有限公司 | 一种报文调度方法、相关设备及计算机存储介质 |
Family Cites Families (11)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US5241541A (en) * | 1990-03-15 | 1993-08-31 | International Business Machines Corporation | Burst time division multiplex interface for integrated data link controller |
| US5136584A (en) * | 1990-07-11 | 1992-08-04 | At&T Bell Laboratories | Hardware interface to a high-speed multiplexed link |
| US5379297A (en) * | 1992-04-09 | 1995-01-03 | Network Equipment Technologies, Inc. | Concurrent multi-channel segmentation and reassembly processors for asynchronous transfer mode |
| US5303302A (en) * | 1992-06-18 | 1994-04-12 | Digital Equipment Corporation | Network packet receiver with buffer logic for reassembling interleaved data packets |
| US5446726A (en) * | 1993-10-20 | 1995-08-29 | Lsi Logic Corporation | Error detection and correction apparatus for an asynchronous transfer mode (ATM) network device |
| US5459723A (en) * | 1994-03-08 | 1995-10-17 | Advanced Micro Devices | Packet management device for fast-packet network |
| CA2143495A1 (en) * | 1994-03-21 | 1995-09-22 | Rasoul M. Oskouy | Method and apparatus for reordering incoming interleaved asynchronous transfer mode cells |
| US5604867A (en) * | 1994-07-22 | 1997-02-18 | Network Peripherals | System for transmitting data between bus and network having device comprising first counter for providing transmitting rate and second counter for limiting frames exceeding rate |
| US5625625A (en) * | 1995-07-07 | 1997-04-29 | Sun Microsystems, Inc. | Method and apparatus for partitioning data load and unload functions within an interface system for use with an asynchronous transfer mode system |
| US5600650A (en) * | 1995-07-07 | 1997-02-04 | Sun Microsystems, Inc. | Method and apparatus for synthesizing clock signals for use with an asynchronous transfer mode system having selectable data transmission rates |
| US5633870A (en) * | 1995-07-07 | 1997-05-27 | Sun Microsystems, Inc. | Method and apparatus for controlling data flow through an ATM interface |
-
1995
- 1995-11-02 US US08/552,342 patent/US5758089A/en not_active Expired - Lifetime
-
1996
- 1996-10-23 EP EP96117003A patent/EP0772368A3/en not_active Withdrawn
- 1996-11-05 JP JP30754596A patent/JP4205181B2/ja not_active Expired - Lifetime
Also Published As
| Publication number | Publication date |
|---|---|
| US5758089A (en) | 1998-05-26 |
| EP0772368A2 (en) | 1997-05-07 |
| EP0772368A3 (en) | 1999-09-15 |
| JPH09266485A (ja) | 1997-10-07 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| JP4205181B2 (ja) | Atmパケット・ヘッダおよびデータをホスト・コンピュータ・システムにバースト転送するための方法および装置 | |
| JP2990345B2 (ja) | ネットワークインターフェース | |
| US5875352A (en) | Method and apparatus for multiple channel direct memory access control | |
| EP0772130B1 (en) | Method and apparatus for transmission and processing of virtual commands | |
| US5606559A (en) | System and method for an efficient ATM adapter/device driver interface | |
| JP3808548B2 (ja) | 非同期転送モード・システムとともに使用するインタフェース・システム内でデータ・ロード機能とアンロード機能を分割する方法および装置 | |
| US5446726A (en) | Error detection and correction apparatus for an asynchronous transfer mode (ATM) network device | |
| US5838904A (en) | Random number generating apparatus for an interface unit of a carrier sense with multiple access and collision detect (CSMA/CD) ethernet data network | |
| US6438613B1 (en) | Method and apparatus for allowing packet data to be separated over multiple bus targets | |
| US5668809A (en) | Single chip network hub with dynamic window filter | |
| US20020176430A1 (en) | Buffer management for communication systems | |
| EP0774717A1 (en) | Apparatus and method for providing a generic interface between a host system and an asynchronous transfer mode core functional block | |
| EP0891116A2 (en) | Mechanism for reducing interrupt overhead in device drivers | |
| US6970921B1 (en) | Network interface supporting virtual paths for quality of service | |
| JPH09321828A (ja) | 保護メモリ・オペレーティング・システムにおけるデータ・コピー・オーバーヘッドを削減する機構 | |
| US20020013821A1 (en) | Method and network device for creating buffer structures in shared memory | |
| JPH09160870A (ja) | ハードウェアとソフトウェアの間でデータ転送を報告する方法および装置 | |
| EP0752796A2 (en) | Buffering of data for transmission in a computer communications system interface | |
| US7266083B2 (en) | Method and apparatus for implementing queue pair connection protection over infiniband | |
| US7860120B1 (en) | Network interface supporting of virtual paths for quality of service with dynamic buffer allocation | |
| JPH07297842A (ja) | 着信インタリーブ非同期転送モード・セルを再配列する方法および装置 | |
| US6279052B1 (en) | Dynamic sizing of FIFOs and packets in high speed serial bus applications | |
| US5930525A (en) | Method and apparatus for network interface fetching initial and data burst blocks and segmenting blocks and scheduling blocks compatible for transmission over multiple virtual circuits | |
| US20060120405A1 (en) | Method and apparatus for intermediate buffer segmentation and reassembly | |
| EP0771129A2 (en) | Method and apparatus for asynchronously segmenting packets of multiple channels into ATM cells |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20060202 |
|
| A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20060207 |
|
| A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20060530 |
|
| A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 |
|
| A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20081016 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20111024 Year of fee payment: 3 |
|
| 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: 20121024 Year of fee payment: 4 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20131024 Year of fee payment: 5 |
|
| 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 |
|
| R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
| EXPY | Cancellation because of completion of term |