JP3761980B2 - 加法によるデータパッキングのための装置及びその方法 - Google Patents
加法によるデータパッキングのための装置及びその方法 Download PDFInfo
- Publication number
- JP3761980B2 JP3761980B2 JP19527996A JP19527996A JP3761980B2 JP 3761980 B2 JP3761980 B2 JP 3761980B2 JP 19527996 A JP19527996 A JP 19527996A JP 19527996 A JP19527996 A JP 19527996A JP 3761980 B2 JP3761980 B2 JP 3761980B2
- Authority
- JP
- Japan
- Prior art keywords
- data
- sequence
- data words
- circuit
- word
- 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 - Fee Related
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
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
- Bus Control (AREA)
- Information Transfer Systems (AREA)
Description
【0001】
【発明が属する技術分野】
本発明は、データ転送の分野に関する。更に詳細には、本発明は、システム全体の性能を改良するために加法によってデータをパッキングするための装置およびその方法に関する。
【0002】
【従来の技術】
コンピュータシステム並びに他の「インテリジェント(知能)」システムにホストメモリーが含まれることは公知である。一般に、ホストメモリは、所定のアドレスレンジ(範囲)内に所在する任意のバイトサイズの多数のデータバッファを有する。これらのデータバッファは、後続する処理または伝送用としてデータバッファ内に記憶されたデータに選択的にアクセスすることを可能にするために、所定のアドレスレンジ内において一意的にアドレスされる。データバッファのバイトサイズ及び当該バイトの可用性に応じて、データのブロック(「データブロック」)は、1つのデータバッファ内に順次に記入することも可能であるが、一般には、複数のデータブロックに分断され、そして、図1に示すように、複数のデータバッファ内に非順次に記入されることが多い。例えば、40バイトのデータは、それぞれ06H、104H、及び、309Hのデータブロックアドレスから開始して、3つのデータバッファ内に非順次に記憶される。ここに、「H」は16進アドレスを示す。
【0003】
ホストメモリからネットワークシステムを介してデータブロックを転送する必要がある場合には、一般に、データブロックの各バイトが順次にアドレスされる(即ち、「バイトパックされる」)ことが望ましい。これは、通常、ホストメモリからデータブロックをアドレス可能な隣接バッファへ転送することによって達成される。このタイプのバイトパッキングを用いる主要な理由の1つは、ネットワークは、通常、性能最適化のために、データバイトの連続的なストリームとしてデータを伝達するということである。従って、無効情報を含むバイトを伝達するようにネットワークが構成されている場合には、ネットワークの性能が低下する。
【0004】
現在、状態マシンは、異なるデータバッファからのデータを、必要に応じて、単一隣接バッファに組み合わせるために用いられている。「状態マシン」は、異なるデータバッファからのデータ組合わせを「知能的に」制御するためにマシンの自立状態情報と組合わされた入力を受け取る従来のロジック又は応用特定集積回路(ASIC)の集合体である。ただし、データ組合わせを制御するために状態マシンを使用すると、多数の欠点が提起される。
【0005】
【発明が解決しようとする課題】
多数の欠点のうちの1つは、この状態マシンが非常に複雑なことであり、従って、設計が困難なことである。その理由は、この種状態マシンの設計に際しては、適合可能な全てのデータバッファが、(i)所定のアドレスレンジ内のあらゆるアドレスが始動アドレスでありうること、及び、(ii)バイトサイズが任意であることという条件に適合する構造であるように配慮しなくてはならないからである。別の欠点は、状態マシンを著しく改変して益々複雑化することなしに、更に大きいビット幅をサポートするデータバッファに適合するように、状態マシンは改修可能(即ち、基準化可能)ではないことである。従って、上記の欠点を克服するようなオペレーション(動作)の可能な装置およびそれに対応する方法を提供することが渇望される。
【0006】
【課題を解決するための手段】
それぞれネットワークインタフェース回路(NIC)を介してネットワークに結合された多数のシステムを有するネットワーク全体の性能を最適化するために、NIC内にパッキング回路が設けられる。パッキング回路構成は、ワードパッキング回路、及び、バイトパッキング回路からなり、これらの回路は、両方共、関係するホストシステム又は送信(TX)バッファメモリのあらゆる必要ビット幅の入力/出力(I/O)バスに適合するように、設計段階において基準化可能である。ワード、及び、バイトパッキング回路は、複雑な状態マシン回路の支援なしに、必要なデータパッキングを実施するために共同して作動する。
【0007】
ホストシステムのI/Oバスと結合された「N」ビット幅のワードパッキング回路は、そのデータブロックと関連した全てのデータが読取られるまで、データブロックの「N」ビットを並列に(「N‐ビットデータワード」として)受け取る。ワードパッキング回路は、有効データを含むN‐ビットデータワードで構成されたこれらのワードのみをバイトパッキング回路に伝送する責任を有する。従って、第1N‐ビットデータワードの1番目のワードが有効データを一切含まない場合には、ワードパッキング回路は、この1番目のワードがバイトパッキング回路に伝送されることを防止することが出来る。更に、当該データブロックの最後のN‐ビットデータワードの最後のワードが有効データを一切含まない場合には、ワードパッキング回路は、前記の最後のワードが伝送されることを防止することが出来る。ワードパッキング回路がこれらのオペレーションを実施するにつれて、このワードパッキング回路は、並列のデータの「R」ビットをバイトパッキング回路に直列に出力する。ここに、「R」はTXバッファメモリのビット幅に等しい。「N」のサイズが「R」のサイズよりも2倍以上大きい場合には、各N‐ビットデータワードにとって複数のR‐ビットデータワードが必要である。
【0008】
バイトパッキング回路は、R‐ビットデータワード(単数または複数)を受け取り、そして、データの無効バイトを伝送することを回避するために、入力記憶エレメント、及び/又は、セーブ記憶エレメント内に一時的に記憶されているR‐ビットデータワード(単数または複数)のバイトをセレクタを介して出力記憶エレメントに選択的にルートするように、ワードパッキング回路に結合される。バイト循環回路は、第1R‐ビットデータワード内の有効データのバイト位置に基づいて、前記のルーチングを選択する。
【0009】
【発明の実施の形態】
以下に示す詳細な説明において、本発明は、好ましくは加法によるが、ただし、必ずしも非同期トランスファモード(ATM)ネットワークのネットワークインタフェース回路(NIC)内において実現されることを必要としない、バイトパッキングのための装置および方法について記述する。或る種の制御回路および2進表現を記述するために頻繁に用いられる多数の用語について次に定義することとする。「セレクタ」は、複数の多重ビット入力の中の1つを集合的に出力するために、並列配置された従来の1つ又は複数の多重論理ゲートとして定義される。「記憶エレメント」は、データの多重ビットを集合的に出力するために並列配列された一連のレジスタとして定義される。「データ」とは、別の意味であることが明確に表示される場合を除き、2進データ、及び/又は、2進インストラクションを意味する。「データブロック」は、データバッファに蓄えられる連続してアドレスされたビットのグループとして定義される。最後に、「データワード」とは、ホストメモリからNICへ並列伝達される「データブロック」の一部分を意味する。一般に、データワードは、長さが4バイト(32ビット)であることが好ましいが、x≧0である場合に、長さが任意の「2」バイトであっても差し支えない多数の「ワード」を含む。
【0010】
本発明のネットワークインタフェース回路(NIC)が組み込まれた一例としてのネットワークを図2に示す。ネットワーク100は、例えばコンピュータシステム(図示せず)のようなそれぞれホストメモリを有する種々のシステム及びNIC120を含む。NIC120は、直接的に、或いは、ローカルATMスイッチ140を介して間接的に、公開ATMスイッチ150に結合可能である。同様に、局所(ローカル)および公開スイッチ140及び150は、2つ又はそれ以上のシステム間の通信経路を供給するために、選定された任意のスキームに結合可能である。これらの局所および公開ATMスイッチ140及び150は、相互に遠隔配置されたシステムにおいて実行中のアプリケーションの間における転送を非同期的にサポートするために、必要なサービスの品質(即ち、ビットレート、許容タイミングロス、等々)に応じて、データの転送経路を決定する。更に図2に示すように、ネットワーク100は、例えば、サポート用フレームワークとしてATMを使用するイーサネットまたはトークンリング・ネットワーク160のような、他のネットワークを接続する出入口として役立つ構内通信網(LAN)エミュレーション130を利用するシステムを含んでいても差し支えない。
【0011】
図2のシステムのうちの1つ(以後、「ホストシステム」と称する)として用いられるNICのアーキテクチャを示す簡素化された図を図3に示す。NIC120は、ATMプロトコルに従って作動するネットワークメディア400に入力/出力(「I/O」)バス(例えば、システムバス)380を介して結合されるホストシステム390をインターフェイスする。NIC120は、システムバスインタフェース200、包括入/出力(「GIO」)インタフェース240を介してシステムバスインタフェース200に結合されるシステム及びATMレイヤ(層)コア220、局所スレーブインタフェース260、一連の送信(「TX」)FIFO280、一連の受信(「RX」)FIFO300、メディアインタフェース320、外部バッファメモリインタフェース340、及び、クロック合成回路360を有する。
【0012】
NIC120のコンポネント(構成部品)200−360は、統括的に、多重バンド幅グループにおける動的に割当てられた多重チャネルを介して、ホストシステム390とネットワーク内の他のシステムとの間において、非同期的にデータを転送するように協同で動作する。換言すれば、NIC120のコンポネントは、ホストシステム390のシステムバス380に結合された多重チャネルインテリジェント直接メモリアクセス(DMA)コントローラとして集合的に機能する。好ましい実施形態において、多重送信および受信チャネルは、全二重155/622Mbps物理的リンクを利用する仮想チャネルとして用いられる。NIC120の外に所在する外部バッファメモリ420に外部バッファメモリインタフェース340を経て接続され、システムバス380を通るそれぞれ異なるチャネルにサブスクライブされる(割り当てられる)データの多重パケットは、システム及びATMレイヤコア220における回路によって、メディアインタフェース320を介してメディア400に伝送するための送信セルに分割される。外部バッファメモリ420は、RXバッファメモリ440及び複数のFIFOであることが好ましいTXバッファメモリ460を有する。この場合、それぞれ異なったデータ転送速度をサポートするために、1つのFIFOはそれぞれネットワークの各チャネルに対応する。
【0013】
図3に示すように、システム及びATMレイヤコア220は、送信および受信データセルの非同期セル化(セリフィケーション)及び再組み立て(リアセンブリ)をそれぞれ容易にするために、分離されたセル化及び再組み立てロジック(図示せず)を有する。セル化ロジックは、他の事柄の中の1つとして、送信データセル内において用いられるデータのバイトをパックするための回路を有する。
【0014】
システム及びATMレイヤコア220とメディヤインタフェース320との間において結合された一連のTX及びRX FIFO280及び300は、送信および受信データセルの送信および受信セルペイロードをそれぞれステージするために用いられる。メディアインタフェース320は、クロック合成回路360によって供給されるクロック信号によってドライブされるネットワークのメディア400に、これらのデータセルを送信および受信する。メディア400、従ってメディアインタフェース320は、ATMフォームアドホック仕様に規定されているように、汎用テストと、ATM(UTOPIA)のためのオペレーション物理的インタフェース規格に適合することが好ましい。UTOPIA仕様に適合するために、クロック合成回路360は20MHz又は40MHzいずれかのクロック信号を供給し、メディアインタフェース320をイネイブルにして、20MHzのバイトストリームを155Mbpsに関して、または、40MHzの16ビットストリームを622Mbpsデータストリームに関してサポートさせる。
【0015】
本実施形態において、メディアインタフェース320は、それぞれ1つの4バイトセルヘッダと1つの48バイトペイロードによって構成される52バイトデータセルをTX FIFO280から受信する。メディアインタフェース320は、メディア400に53バイトデータセルを供給する以前に、セルヘッダに対する第5番目のバイトとして、各送信セルにチェックサムを挿入する。逆に、メディアインタフェース320がメディア400からセルを受信する場合には、メディアインタフェースは、チェックサムが正しいかどうかを判定するために、それぞれ受信したセルの第5番目のバイトにおけるチェックサムを調査する。チェックサムが正しい場合には、チェックサムを表すバイトは受信セルから除去され、受信セルはRX FIFO300に送られる。チェックサムが正しくない場合には、受信セル全体が無視される。
【0016】
システムバスインタフェース200及びGIOインタフェース240は、メディア400への転送に関するスペシフィックス(詳細な規定条件)からホストシステム390を分離する。更に、システム及びATMレイヤコア220は、システムバス380及びホストスペシフィックスから分離される。ここに示す好ましい実施形態においては、システムバスは、電気・電子工学会(IEEE)規格1496仕様規定によるS−Busである。システムバスインタフェース200は、システムバス、即ちこの図の場合は、前記S−Busの仕様に従って通信するように構成される。システムバスインタフェース200は、異なるホストシステムバスに適合するように構成可能であるものと考察される。更に、システムバスインタフェース200は、GIOインターフェイス240によって規定されたプロトコルに従って、データを送信および受信するように構成される。GIOインタフェース240は、システム及びATMレイヤコア220がホストシステムと通信するために用いられ、従って、異なるホストシステム及びバスに対してインタフェースするNIC120の実施形態が異なっても変化することのない単数のインタフェースを提供する。
【0017】
ホストシステム390は、データパケット、及び、送信および受信中のパケットに対するポインタを含むホストメモリ395を有する。既に述べたように、NIC120は、更に、ホストシステム390において実行中のアプリケーションから、非同期転送に関するセル記述詳細事項をシールドする。現行目的に関しては、ホストシステム390において実行中のアプリケーションは、当該技術分野において公知であるように、送信および受信リングの周りをパケットインタフェースによって包むことによって、送信および受信データを管理するものと仮定する。ただし、本発明は、他のデータ構造を用いて送信および受信データを管理するホストシステムにおいて実行中のソフトウェアアプリケーションを用いて実行することも可能である。
【0018】
データ伝送に用いられるホストメモリの好ましいデータ構造の全体的な概観を図4に示す。ホストメモリには、送信(「TX」)データバッファ470a−470m、TXデータ記述子リング480a−480m、及び、TX完成リング490が含まれる。転送されるべきデータを記憶するためのTXデータバッファ470a−470mは、既に述べたデータバッファと同じである。
【0019】
TXデータ記述子リング480a−480mは、(i)通常、NICによってサポートされ、転送データレートが異なる多重チャネル、及び、(ii)TXデータバッファ470a−470mに数において対応するデータ構造である。各TXデータ記述子リング480a−480mには、ソフトウェアによって順次にアクセスされる「1」番から「K」番までの複数「K」個のリングエントリが含まれる。「K」の値は、少なくとも64に等しい整数であることが好ましい。各リングエントリは、所要データブロックの部分が配置される当該データ記述子のそれぞれのTXデータバッファにおける場所に対する少なくとも1つのポインタを含む「データ記述子」を記憶するに十分なサイズ(例えば64バイト)である。データ記述子がリングエントリへ直列的に入力され、そして、NICのTX DMAエンジン(後で検討)によって続いて読み取られるようにキューに入れられた場合、ソフトウェアは、I/OコマンドをNICに伝送する。このI/Oコマンドは、データ記述子を受信するために、パラメータとして、使用中TXデータ記述子リングの数、及び、当該TXデータ記述子リングの最後のリングエントリを含む。これは、NICによってTXデータ記述子リングがポーリングされることを回避するために行われるが、大抵のパソコンプラットホームにおいては、これを採用することは経費がかさみ、しかも、データ伝達が必要でない場合にはこれの使用は不必要である。NICは、処理済みの最後のデータ記述子のトラックをTXデータ記述子リング別に保持する。
【0020】
TX完成リング490は、TXデータ記述子リング480a−480mとは異なり、ポインタに依存することなしに、リングエントリ内に全ての必要な情報を含む複数のデータエントリを有するデータ構造である。TX完成リング490は、どのデータワードが分割(セグメンテーション)用TXバッファメモリに転送済みであるかをソフトウェアに通知するために用いられる。好ましい実施形態においては、TX完成リング490は、任意の構成を選定しても差し支えないが、配列された64バイトで構成される最大1,024リングエントリによる64キロバイトのホストメモリを占有する。TX完成リング490は、NICがTX完成リング490の所有権を持つ場合にセットされる各記述子内のOWNビットを必要とするソフトウェア及びハードウェアの両方によってアクセス可能である。
【0021】
再度図3において、システム及びATMレイヤコア220の主要機能の一つは、ホストメモリからデータを検索し、パック用回路、即ち、1つのワードパッキング回路および1つのバイトパッキング回路を経てTXバッファメモリ内にデータを一時的に記憶する以前に、データに対してパッキング操作を実施することである。その後で、データを、セルに分割し、一連のTX FIFOに転送することが可能である。これは、セル化ロジックの特定の構成部品の集合的な調停済み動作を介して達成される。この場合のロジックは、好ましくは図5に示すインタフェースを備えた、TX DMAエンジン500、TXセグメンテーションエンジン510、及び、TX制御RAM520である。
【0022】
TX DMAエンジン500は、ホストメモリからデータを検索し、バイトパッキング回路650によってTXバッファメモリ内に記憶するためにデータをパックするバイトを検索する責任を有する。これによって、ATMスイッチへの伝達に先立ってTXセグメンテーションエンジン510が、図3に示すTXバッファメモリ440に記憶されているデータを送信データセルのペイロードに分割することが更に容易になる。ただし、この種のバイトパッキングは、任意のタイプのネットワークを通って情報を伝達するために、任意の回路によって使用可能であるものと考察される。TX制御ラム520は、TX DMAエンジン500及びTXセグメンテーション回路510によって使用するための情報の内部記憶装置を提供する。TXデータバッファからTXバッファメモリへのデータ転送を統合する際のTX制御RAM520の動作については、譲受人によって同時出願された「ハードウェアとソフトウェアとの間におけるデータ転送を統合するための方法およびその装置」と題し、参考文書として本明細書に組込み済みの願書(代理人事件番号No.82225.P0934)において詳細に検討されている。
【0023】
図6及び7は、1つのワードパッキング回路650及び1つのバイトパッキング回路600を含む上記のパッキング回路の実施形態を示す。ワードパッキング回路はバイトパッキング回路650に先立って作動する任意のNIC構成部品において実現可能であるものと考察されるが、この場合のワードパッキング回路は、図3に示すシステムバスインタフェース200内において用いられ、その出力はGIOインタフェース240を介して伝播する。ワードパッキング回路600は、2つの必要な機能を遂行する。1つの機能は、「N‐ビット」データワードを「R‐ビット」ワード内に転送することである。この場合、「N」及び「R」の値は、それぞれ、システムバス及びTXバッファメモリのビット幅に対応する整数である。第2の機能は、N‐ビットデータワード内の無効ワードがバイトパッキング回路650に転送されることを防止することである。他方、バイトパッキング回路650は、無効バイトがTXバッファメモリに転送されることを防止することにより、データのバイトをパックする。この「バイトパッキング」は、選択的加法によって達成される。
【0024】
説明し易くするために、本実施形態においては、32ビットのデータとして扱われるワード、及び、システムバス及びTXバッファメモリの幅は、それぞれのビット幅が64ビット及び32ビットであるように構成されるものとする。従って、図6に示すワードパッキング回路600は、幅が最大64ビットまでのデータワードをサポートするように構成され、他方、図7−11に示すバイトパッキング回路は、幅が最大32ビットまでのデータワードをサポートするように構成されるはずである。ただし、本発明は、任意のビット幅のシステムバス、又はTXバッファメモリをサポートするように容易に基準化可能であることが考察される。
【0025】
図6において、ワードパッキング回路600は、ラッチエレメント605、第1及び第2入力セレクタ610及び615、読取り記憶エレメント(例えばFIFO)620、出力セレクタ625、及び、出力制御回路630を有する。64ビットデータワードは、図3に示すシステムバスから獲得され、2つの32ビットデータワード、即ち、最下位32ビットの64ビットデータワードを持つ小文字データワード、及び、大文字データワードに分離される。
【0026】
図に示すように、第1転送サイクル期間中に、小文字データワードは、(i)ラッチエレメント605、(ii)第1入力セレクタ610の最初のポート、及び、(iii)入力第2セレクタ615の最初のポートに転送される。大文字データワードは、第2入力セレクタ610の2番目のポートに入力される。これら第1および第2入力セレクタ610及び615は、Select1を論理「1」に等しくなるようにセットし、Select0をホストメモリの関連TXデータバッファ内における有効データの始動アドレスのビット2の値に等しくなるようにセットすることによって、無効ワード(32ビット)が読取り記憶エレメント620内に記入されることを阻止するように不能化されるべく構成される。Select0およびSelect1ラインの構成(コンフィギュレーション)は、システムバスの全サイズ(例えば、32ビットシステムバスの場合には「00」)に適合するように導き出されることが可能であると考察される。
【0027】
データが読取り記憶エレメント620に転送されるにつれて、出力制御回路630は、TXバッファメモリがデータを受信可能であることを示す外部バッファメモリインタフェース内におけるローカルコントローラ(図示せず)によって生成されるバスライン651を介して作動状態にあるREAD_ENABLE信号を受信した際にバイトをパッキングするために、読取り記憶エレメント620の32ビット部分をバイトパッキング回路650にパスするように、出力セレクタ625の第1および第2の部分を交互に選定する。その後で、出力制御回路630は、更に情報を獲得するために、読取り記憶エレメント「PTR」のポインタをインクレメントする。出力制御回路630は、更に、ワードパッキング回路によってバイトパッキング回路に転送された各32ビットデータワード毎にデクリメント(減分)する減分カウンタ(図示せず)からのバスライン652を介して、LAST_READ信号を入力として受信する。データ転送開始に先立って、カウンタは、データ記述子によって供給されたデータブロック内の有効ワードの個数となるようにリセットされる。LAST_READ信号は、作動化状態にある場合、読取られつつある読取り記憶エレメント620の部分が多数のTXデータバッファの中の1つから獲得されたデータの最後のデータバイトを含むことを示す。これは、最後の有効ワードを後続させている無効ワードを除去するために用いられる。
【0028】
図7において、バイトパッキング回路650は、バイト循環回路655、入力記憶エレメント660、セーブ記憶エレメント665、出力記憶エレメント670、及び、セレクタ675を有する。入力記憶エレメント660は、ワードパッキング回路600からデータ[31:0]を受信し、データ[31:0]をセーブ記憶エレメント665及びセレクタ675の両方にルートする。セーブ記憶エレメント665は、データ[31:0]を1つの単一サイクルだけ遅延させ、そして、データ(「SData[31:0]」と称する)をセレクタ675内に出力する。従って、セレクタ670は、入力記憶エレメント660及びセーブ記憶エレメント665両方からのデータ入力を受信する。
【0029】
セレクタ675は、図8−11に示すように、データ「PData[31:0]」の中のパックされた1つのワードを一時に集合的に出力するために相互に平行に方向付けられた、4つのマルチプレクサグループ、即ち、「MUX(0)―(3)」680、685、690、及び、695を有する。これらのマルチプレクサグループ680、685、690、及び、695は、状態マシンを必要とすることなしにバイトパッキングを実施するために、32ビット幅のバイトパッキングに従い、図に示すようにルートされる。更に、64ビット以上の幅の場合をサポートするために、マルチプレクサは、下の表Bに示すように、特定のシステム構成(コンフィギュレーション)を達成するように容易に修正される際に基準化することが可能である。これらのマルチプレクサグループ680、685、690、及び、695は、一般に、確実にバイトパッキングするためにデータをワードパッキング回路から通過させるために各マルチプレクサグループ680、685、690、及び、695のどの入力を選定するかを実行するバイト循環選択ライン656を介してバイト循環回路655によって選定される。この選択動作は、パイプライン「PIPE COUNT」における有効バイトの個数(即ち、データバッファの読み取りを新規に開始する時点における、入力、セーブ、及び、出力記憶エレメント内のバイト数)、及び、最初のデータワード「BUFFER ADDR」の最初の有効バイトの始動アドレスに基づく。バイトパッキングは32ビット(4バイト)幅に関して実施されるので、図に示すように、BUFFER ADDRは2ビットである。BUFFER ADDRのビット数は、受信したデータワードのサイズに応じて増大可能であることが考察される。バイト循環回路655は、バイト循環選択ライン656を介して伝播されるべき選定値を計算する。選定値は、次に示す方程式1の値に等しい:
【数1】
ここに、「R」/8=TXバッファメモリのバイト幅である。
【0030】
上記の識別済み方程式から求められる32ビット実施形態における可能なデータパスを次の表Aに示す。
【表1】
【0031】
一般に、TXメモリバッファのビット幅に対応するサイズ「R」のあらゆるデータパケットに関して、バイトパッキングは、例えば、上記のバイト、又は、あらゆる所定のビット幅のような所定量(「T」)のパックされたデータをそれぞれ出力するために、次の表Bに基づいて、複数のマルチプレクサグループを構成することによって遂行される。マルチプレクサグループは、あらゆるビットサイズをサポートするように構成可能であるが、各マルチプレクサグループは、8ビットのデータを出力し、したがって、「T」が「8」に等しくなるように選定される。
【表2】
【0032】
本発明のオペレーションを明瞭にするために、加法技法を用いたバイトパッキングを説明することを唯一の目的として作成された特定の例を図12−20に示す。この特定例は、いかなる点においても本発明の適用範囲に関する制限を意味するものと解釈されてはならない。
【0033】
ワードパッキング回路は、図1に示すデータバッファを用いて、有効データバイト1及び2を含む最初の32ビットデータワードに先行する無効ワード、並びに、最初のTXデータバッファのデータと関連した最後の32ビットデータワードの直前を先行するアドレス14Hにおける無効ワードを除去するにつれて、バイトパッキング回路は、TXバッファメモリに記憶する前に、更に、データをパックし続ける。図12に示すように、ワードパッキング回路がデータブロックの32ビットデータワードの最初のシーケンスをバイトパッキング回路へ転送し始める直前に、バイト循環回路は、セレクタ675(図示せず)に出力されるべき選定値を計算する。この選定値は、この場合においては、「2」(即ち、(4−0+2)mod4)に等しい。従って、有効バイトデータ1−2は、第1サイクルにおいて、入力記憶エレメント660に転送される(図13参照)。その次のサイクルにおいて、バイト1−2は、セーブ記憶エレメント665に転送され、他方、バイト3−6は、入力記憶エレメント660に転送される(図14参照)。入力記憶エレメント660からのバイト1−2、及び、入力セーブ記憶エレメント660からのバイト3−4は、出力記憶エレメント670に転送され、他方、バイト3−6はセーブ記憶エレメント665に転送され、バイト7−10は入力記憶エレメント660に転送される(図15参照)。このプロセスは、出力記憶エレメント670内にバイト13のみが所在する状態になるまで継続する(図16参照)。ただし、バイトパッキングを維持するために、出力記憶エレメントが満杯になるまで、或いは、当該データが、LAST_READ信号によって示されるように、TXバッファメモリに転送されるべきデータの最後の有効バイトでない限り、バイト13は出力記憶エレメント670からTXバッファメモリへは転送されない。
【0034】
2番目のTXデータバッファと関連したデータワードの2番目のシーケンスに関しては、バイト循環回路は、図17に示すように、3(即ち(4−1+0)mod 4)に等しい選定値を再計算する。従って、第1サイクル期間中においては、バイト14−17は、入力記憶エレメント660に転送される(図18参照)。その次のサイクルにおいては、バイト14−17はセーブ記憶エレメント665に入力され、バイト14−16は出力記憶エレメント670に転送され、バイト18−21は入力記憶エレメント660に転送される(図19参照)。その次のサイクルにおいては、セーブ記憶エレメント665からのバイト17が出力記憶エレメント270に転送され、バイト18−21はセーブ記憶エレメント665に転送され、バイト23−25は入力記憶エレメント660に転送される。同じプロセスは、バイト29−32が出力記憶エレメント670に転送される時まで継続する。
【0035】
これ以降においては、第3TXデータバッファからのデータを構成した後に、図20に示すように、バイト循環回路630は、「1」(即ち(4−0+1) mod 4)であるべき選定値を再計算する。プロセスは、上記のプロセス同様に継続する。ただし、この場合には、データワードの第1及び第2シーケンスに関して図に示すように、3つのバイト値は、「2」及び「1」バイトの代わりにセーブ記憶エレメント665から転送される。
【0036】
図7−11のワードパッキング及びバイトパッキング回路の集合的動作(オペレーション)を示すフローチャートを図21に示す。ステップ105において、ワードパッキング回路は、1番目のビット幅を持つデータワードの最初のシーケンスをホストメモリから受信する。これらのデータワードは、1つの単一TXデータバッファに記憶されているデータブロックの部分である。ステップ110において、ワードパッキング回路は、もし無効ワードが含まれている場合には、ワードパッキング回路を経て無効ワードが伝播することを抑制することにより、有効データに先行する第1データワード内における無効ワードを除去する。
【0037】
次に、ステップ115において、ワードパッキング回路のデータ送信準備が整っていることを検出した場合、バイトパッキング回路内のバイト循環回路は、入力、セーブ、及び、出力記憶エレメント660、665、及び、670の間において適切なデータパスを構成する選定値を計算する。このデータパスは、TXバッファメモリに転送された出力データパケットを「バイトパック」するために、1つのワードからのデータのバイトを他の1つのワードに効果的に加えるために用いられる(ステップ120)。次に、ステップ125において、ワードパッキング回路は、ポインタを読取り記憶エレメントに増分(インクレメント)することにより、データワードの第1シーケンスの最後のデータワード内における無効ワードを除去する。最終的に、ステップ130において、出力記憶エレメントに残っているあらゆるバイトをTXバッファメモリに転送する以前に、データワードの第1シーケンスの転送動作によってデータブロックのデータ転送が完成されるかどうかに関する判定が行われる。完成される場合には、データ転送は完了である。完成されない場合には、ワード及びバイトパッキング回路は、他のTXデータバッファと関連した後続データブロックに対してパッキング動作(オペレーション)を継続する。 ここで説明した本発明は、多くの異なる方法において、また、多くの異なる構成(コンフィギュレーション)を用いて設計可能である。本発明は、種々の実施形態を用いて説明されたが、当該技術分野における熟練者であれば、本発明の精神及び適用範囲から逸脱することなしに他の実施形態を考案できるはずである。当該技術分野における熟達者にとって、これら特定の詳細事項を組み込むことなしに本発明を実現することが可能であることは明白であるが、多数の特定詳細事項について説明した。ただし、場合によっては、本発明を不必要に理解し難くすること避けるために、公知の回路及びこれに類する事柄については説明しなかった。従って、本発明は、次に示す特許請求の範囲項に関して評価されなければならない。
【図面の簡単な説明】
【図1】 任意に選定された開始データブロックアドレス06H、104H、及び、309Hに情報を記憶する多重データバッファの構成図である。
【図2】 スイッチング回路および専用ネットワークインタフェース回路を介して一緒に結合されたホストメモリを有するシステムを含むATMネットワークの説明図的な構成図である。
【図3】 システム及びATMレイヤコアを含む図2に示すネットワークインタフェース回路の説明図的な構成図である。
【図4】 データ伝送において、図2に示すネットワークインタフェース回路によって使用されるホストメモリの特定なデータ構造の説明図的な構成図である。
【図5】 ネットワークインターフェイス回路のシステム及びATMレイヤコア内にセル化用として設けられた構成部品の説明図的な構成図である。
【図6】 図3及び5に示すシステムバスインタフェースを用いて実現されたワードパッキング回路の説明図的な構成図である。
【図7】 図5に示すTX DMAエンジンを用いて実現されたバイトパッキング回路の説明図的な構成図である。
【図8】 図7に示すバイトパッキング回路のセレクタの説明図的な構成図である。
【図9】 図7に示すバイトパッキング回路のセレクタの説明図的な構成図である。
【図10】 図7に示すバイトパッキング回路のセレクタの説明図的な構成図である。
【図11】 図7に示すバイトパッキング回路のセレクタの説明図的な構成図である。
【図12】 図1に示すデータブロックをバイトパックするために、図7に示すバイトパッキング回路の入力、セーブ、及び、出力記憶エレメントが引き受けるデータパスの説明図である。
【図13】 図1に示すデータブロックをバイトパックするために、図7に示すバイトパッキング回路の入力、セーブ、及び、出力記憶エレメントが引き受けるデータパスの説明図である。
【図14】 図1に示すデータブロックをバイトパックするために、図7に示すバイトパッキング回路の入力、セーブ、及び、出力記憶エレメントが引き受けるデータパスの説明図である。
【図15】 図1に示すデータブロックをバイトパックするために、図7に示すバイトパッキング回路の入力、セーブ、及び、出力記憶エレメントが引き受けるデータパスの説明図である。
【図16】 図1に示すデータブロックをバイトパックするために、図7に示すバイトパッキング回路の入力、セーブ、及び、出力記憶エレメントが引き受けるデータパスの説明図である。
【図17】 図1に示すデータブロックをバイトパックするために、図7に示すバイトパッキング回路の入力、セーブ、及び、出力記憶エレメントが引き受けるデータパスの説明図である。
【図18】 図1に示すデータブロックをバイトパックするために、図7に示すバイトパッキング回路の入力、セーブ、及び、出力記憶エレメントが引き受けるデータパスの説明図である。
【図19】 図1に示すデータブロックをバイトパックするために、図7に示すバイトパッキング回路の入力、セーブ、及び、出力記憶エレメントが引き受けるデータパスの説明図である。
【図20】 図1に示すデータブロックをバイトパックするために、図7に示すバイトパッキング回路の入力、セーブ、及び、出力記憶エレメントが引き受けるデータパスの説明図である。
【図21】 図6及び7に示すワード及びバイトパッキング回路の作動ステップを示すフローチャートである。
【符号の説明】
200 システムバスインタフェース
220 システム及びATMレイヤコア
340 外部バッファメモリインタフェース
380 システムバス
395 ホストメモリ
600 ワードパッキング回路
650 バイトパッキング回路
【発明が属する技術分野】
本発明は、データ転送の分野に関する。更に詳細には、本発明は、システム全体の性能を改良するために加法によってデータをパッキングするための装置およびその方法に関する。
【0002】
【従来の技術】
コンピュータシステム並びに他の「インテリジェント(知能)」システムにホストメモリーが含まれることは公知である。一般に、ホストメモリは、所定のアドレスレンジ(範囲)内に所在する任意のバイトサイズの多数のデータバッファを有する。これらのデータバッファは、後続する処理または伝送用としてデータバッファ内に記憶されたデータに選択的にアクセスすることを可能にするために、所定のアドレスレンジ内において一意的にアドレスされる。データバッファのバイトサイズ及び当該バイトの可用性に応じて、データのブロック(「データブロック」)は、1つのデータバッファ内に順次に記入することも可能であるが、一般には、複数のデータブロックに分断され、そして、図1に示すように、複数のデータバッファ内に非順次に記入されることが多い。例えば、40バイトのデータは、それぞれ06H、104H、及び、309Hのデータブロックアドレスから開始して、3つのデータバッファ内に非順次に記憶される。ここに、「H」は16進アドレスを示す。
【0003】
ホストメモリからネットワークシステムを介してデータブロックを転送する必要がある場合には、一般に、データブロックの各バイトが順次にアドレスされる(即ち、「バイトパックされる」)ことが望ましい。これは、通常、ホストメモリからデータブロックをアドレス可能な隣接バッファへ転送することによって達成される。このタイプのバイトパッキングを用いる主要な理由の1つは、ネットワークは、通常、性能最適化のために、データバイトの連続的なストリームとしてデータを伝達するということである。従って、無効情報を含むバイトを伝達するようにネットワークが構成されている場合には、ネットワークの性能が低下する。
【0004】
現在、状態マシンは、異なるデータバッファからのデータを、必要に応じて、単一隣接バッファに組み合わせるために用いられている。「状態マシン」は、異なるデータバッファからのデータ組合わせを「知能的に」制御するためにマシンの自立状態情報と組合わされた入力を受け取る従来のロジック又は応用特定集積回路(ASIC)の集合体である。ただし、データ組合わせを制御するために状態マシンを使用すると、多数の欠点が提起される。
【0005】
【発明が解決しようとする課題】
多数の欠点のうちの1つは、この状態マシンが非常に複雑なことであり、従って、設計が困難なことである。その理由は、この種状態マシンの設計に際しては、適合可能な全てのデータバッファが、(i)所定のアドレスレンジ内のあらゆるアドレスが始動アドレスでありうること、及び、(ii)バイトサイズが任意であることという条件に適合する構造であるように配慮しなくてはならないからである。別の欠点は、状態マシンを著しく改変して益々複雑化することなしに、更に大きいビット幅をサポートするデータバッファに適合するように、状態マシンは改修可能(即ち、基準化可能)ではないことである。従って、上記の欠点を克服するようなオペレーション(動作)の可能な装置およびそれに対応する方法を提供することが渇望される。
【0006】
【課題を解決するための手段】
それぞれネットワークインタフェース回路(NIC)を介してネットワークに結合された多数のシステムを有するネットワーク全体の性能を最適化するために、NIC内にパッキング回路が設けられる。パッキング回路構成は、ワードパッキング回路、及び、バイトパッキング回路からなり、これらの回路は、両方共、関係するホストシステム又は送信(TX)バッファメモリのあらゆる必要ビット幅の入力/出力(I/O)バスに適合するように、設計段階において基準化可能である。ワード、及び、バイトパッキング回路は、複雑な状態マシン回路の支援なしに、必要なデータパッキングを実施するために共同して作動する。
【0007】
ホストシステムのI/Oバスと結合された「N」ビット幅のワードパッキング回路は、そのデータブロックと関連した全てのデータが読取られるまで、データブロックの「N」ビットを並列に(「N‐ビットデータワード」として)受け取る。ワードパッキング回路は、有効データを含むN‐ビットデータワードで構成されたこれらのワードのみをバイトパッキング回路に伝送する責任を有する。従って、第1N‐ビットデータワードの1番目のワードが有効データを一切含まない場合には、ワードパッキング回路は、この1番目のワードがバイトパッキング回路に伝送されることを防止することが出来る。更に、当該データブロックの最後のN‐ビットデータワードの最後のワードが有効データを一切含まない場合には、ワードパッキング回路は、前記の最後のワードが伝送されることを防止することが出来る。ワードパッキング回路がこれらのオペレーションを実施するにつれて、このワードパッキング回路は、並列のデータの「R」ビットをバイトパッキング回路に直列に出力する。ここに、「R」はTXバッファメモリのビット幅に等しい。「N」のサイズが「R」のサイズよりも2倍以上大きい場合には、各N‐ビットデータワードにとって複数のR‐ビットデータワードが必要である。
【0008】
バイトパッキング回路は、R‐ビットデータワード(単数または複数)を受け取り、そして、データの無効バイトを伝送することを回避するために、入力記憶エレメント、及び/又は、セーブ記憶エレメント内に一時的に記憶されているR‐ビットデータワード(単数または複数)のバイトをセレクタを介して出力記憶エレメントに選択的にルートするように、ワードパッキング回路に結合される。バイト循環回路は、第1R‐ビットデータワード内の有効データのバイト位置に基づいて、前記のルーチングを選択する。
【0009】
【発明の実施の形態】
以下に示す詳細な説明において、本発明は、好ましくは加法によるが、ただし、必ずしも非同期トランスファモード(ATM)ネットワークのネットワークインタフェース回路(NIC)内において実現されることを必要としない、バイトパッキングのための装置および方法について記述する。或る種の制御回路および2進表現を記述するために頻繁に用いられる多数の用語について次に定義することとする。「セレクタ」は、複数の多重ビット入力の中の1つを集合的に出力するために、並列配置された従来の1つ又は複数の多重論理ゲートとして定義される。「記憶エレメント」は、データの多重ビットを集合的に出力するために並列配列された一連のレジスタとして定義される。「データ」とは、別の意味であることが明確に表示される場合を除き、2進データ、及び/又は、2進インストラクションを意味する。「データブロック」は、データバッファに蓄えられる連続してアドレスされたビットのグループとして定義される。最後に、「データワード」とは、ホストメモリからNICへ並列伝達される「データブロック」の一部分を意味する。一般に、データワードは、長さが4バイト(32ビット)であることが好ましいが、x≧0である場合に、長さが任意の「2」バイトであっても差し支えない多数の「ワード」を含む。
【0010】
本発明のネットワークインタフェース回路(NIC)が組み込まれた一例としてのネットワークを図2に示す。ネットワーク100は、例えばコンピュータシステム(図示せず)のようなそれぞれホストメモリを有する種々のシステム及びNIC120を含む。NIC120は、直接的に、或いは、ローカルATMスイッチ140を介して間接的に、公開ATMスイッチ150に結合可能である。同様に、局所(ローカル)および公開スイッチ140及び150は、2つ又はそれ以上のシステム間の通信経路を供給するために、選定された任意のスキームに結合可能である。これらの局所および公開ATMスイッチ140及び150は、相互に遠隔配置されたシステムにおいて実行中のアプリケーションの間における転送を非同期的にサポートするために、必要なサービスの品質(即ち、ビットレート、許容タイミングロス、等々)に応じて、データの転送経路を決定する。更に図2に示すように、ネットワーク100は、例えば、サポート用フレームワークとしてATMを使用するイーサネットまたはトークンリング・ネットワーク160のような、他のネットワークを接続する出入口として役立つ構内通信網(LAN)エミュレーション130を利用するシステムを含んでいても差し支えない。
【0011】
図2のシステムのうちの1つ(以後、「ホストシステム」と称する)として用いられるNICのアーキテクチャを示す簡素化された図を図3に示す。NIC120は、ATMプロトコルに従って作動するネットワークメディア400に入力/出力(「I/O」)バス(例えば、システムバス)380を介して結合されるホストシステム390をインターフェイスする。NIC120は、システムバスインタフェース200、包括入/出力(「GIO」)インタフェース240を介してシステムバスインタフェース200に結合されるシステム及びATMレイヤ(層)コア220、局所スレーブインタフェース260、一連の送信(「TX」)FIFO280、一連の受信(「RX」)FIFO300、メディアインタフェース320、外部バッファメモリインタフェース340、及び、クロック合成回路360を有する。
【0012】
NIC120のコンポネント(構成部品)200−360は、統括的に、多重バンド幅グループにおける動的に割当てられた多重チャネルを介して、ホストシステム390とネットワーク内の他のシステムとの間において、非同期的にデータを転送するように協同で動作する。換言すれば、NIC120のコンポネントは、ホストシステム390のシステムバス380に結合された多重チャネルインテリジェント直接メモリアクセス(DMA)コントローラとして集合的に機能する。好ましい実施形態において、多重送信および受信チャネルは、全二重155/622Mbps物理的リンクを利用する仮想チャネルとして用いられる。NIC120の外に所在する外部バッファメモリ420に外部バッファメモリインタフェース340を経て接続され、システムバス380を通るそれぞれ異なるチャネルにサブスクライブされる(割り当てられる)データの多重パケットは、システム及びATMレイヤコア220における回路によって、メディアインタフェース320を介してメディア400に伝送するための送信セルに分割される。外部バッファメモリ420は、RXバッファメモリ440及び複数のFIFOであることが好ましいTXバッファメモリ460を有する。この場合、それぞれ異なったデータ転送速度をサポートするために、1つのFIFOはそれぞれネットワークの各チャネルに対応する。
【0013】
図3に示すように、システム及びATMレイヤコア220は、送信および受信データセルの非同期セル化(セリフィケーション)及び再組み立て(リアセンブリ)をそれぞれ容易にするために、分離されたセル化及び再組み立てロジック(図示せず)を有する。セル化ロジックは、他の事柄の中の1つとして、送信データセル内において用いられるデータのバイトをパックするための回路を有する。
【0014】
システム及びATMレイヤコア220とメディヤインタフェース320との間において結合された一連のTX及びRX FIFO280及び300は、送信および受信データセルの送信および受信セルペイロードをそれぞれステージするために用いられる。メディアインタフェース320は、クロック合成回路360によって供給されるクロック信号によってドライブされるネットワークのメディア400に、これらのデータセルを送信および受信する。メディア400、従ってメディアインタフェース320は、ATMフォームアドホック仕様に規定されているように、汎用テストと、ATM(UTOPIA)のためのオペレーション物理的インタフェース規格に適合することが好ましい。UTOPIA仕様に適合するために、クロック合成回路360は20MHz又は40MHzいずれかのクロック信号を供給し、メディアインタフェース320をイネイブルにして、20MHzのバイトストリームを155Mbpsに関して、または、40MHzの16ビットストリームを622Mbpsデータストリームに関してサポートさせる。
【0015】
本実施形態において、メディアインタフェース320は、それぞれ1つの4バイトセルヘッダと1つの48バイトペイロードによって構成される52バイトデータセルをTX FIFO280から受信する。メディアインタフェース320は、メディア400に53バイトデータセルを供給する以前に、セルヘッダに対する第5番目のバイトとして、各送信セルにチェックサムを挿入する。逆に、メディアインタフェース320がメディア400からセルを受信する場合には、メディアインタフェースは、チェックサムが正しいかどうかを判定するために、それぞれ受信したセルの第5番目のバイトにおけるチェックサムを調査する。チェックサムが正しい場合には、チェックサムを表すバイトは受信セルから除去され、受信セルはRX FIFO300に送られる。チェックサムが正しくない場合には、受信セル全体が無視される。
【0016】
システムバスインタフェース200及びGIOインタフェース240は、メディア400への転送に関するスペシフィックス(詳細な規定条件)からホストシステム390を分離する。更に、システム及びATMレイヤコア220は、システムバス380及びホストスペシフィックスから分離される。ここに示す好ましい実施形態においては、システムバスは、電気・電子工学会(IEEE)規格1496仕様規定によるS−Busである。システムバスインタフェース200は、システムバス、即ちこの図の場合は、前記S−Busの仕様に従って通信するように構成される。システムバスインタフェース200は、異なるホストシステムバスに適合するように構成可能であるものと考察される。更に、システムバスインタフェース200は、GIOインターフェイス240によって規定されたプロトコルに従って、データを送信および受信するように構成される。GIOインタフェース240は、システム及びATMレイヤコア220がホストシステムと通信するために用いられ、従って、異なるホストシステム及びバスに対してインタフェースするNIC120の実施形態が異なっても変化することのない単数のインタフェースを提供する。
【0017】
ホストシステム390は、データパケット、及び、送信および受信中のパケットに対するポインタを含むホストメモリ395を有する。既に述べたように、NIC120は、更に、ホストシステム390において実行中のアプリケーションから、非同期転送に関するセル記述詳細事項をシールドする。現行目的に関しては、ホストシステム390において実行中のアプリケーションは、当該技術分野において公知であるように、送信および受信リングの周りをパケットインタフェースによって包むことによって、送信および受信データを管理するものと仮定する。ただし、本発明は、他のデータ構造を用いて送信および受信データを管理するホストシステムにおいて実行中のソフトウェアアプリケーションを用いて実行することも可能である。
【0018】
データ伝送に用いられるホストメモリの好ましいデータ構造の全体的な概観を図4に示す。ホストメモリには、送信(「TX」)データバッファ470a−470m、TXデータ記述子リング480a−480m、及び、TX完成リング490が含まれる。転送されるべきデータを記憶するためのTXデータバッファ470a−470mは、既に述べたデータバッファと同じである。
【0019】
TXデータ記述子リング480a−480mは、(i)通常、NICによってサポートされ、転送データレートが異なる多重チャネル、及び、(ii)TXデータバッファ470a−470mに数において対応するデータ構造である。各TXデータ記述子リング480a−480mには、ソフトウェアによって順次にアクセスされる「1」番から「K」番までの複数「K」個のリングエントリが含まれる。「K」の値は、少なくとも64に等しい整数であることが好ましい。各リングエントリは、所要データブロックの部分が配置される当該データ記述子のそれぞれのTXデータバッファにおける場所に対する少なくとも1つのポインタを含む「データ記述子」を記憶するに十分なサイズ(例えば64バイト)である。データ記述子がリングエントリへ直列的に入力され、そして、NICのTX DMAエンジン(後で検討)によって続いて読み取られるようにキューに入れられた場合、ソフトウェアは、I/OコマンドをNICに伝送する。このI/Oコマンドは、データ記述子を受信するために、パラメータとして、使用中TXデータ記述子リングの数、及び、当該TXデータ記述子リングの最後のリングエントリを含む。これは、NICによってTXデータ記述子リングがポーリングされることを回避するために行われるが、大抵のパソコンプラットホームにおいては、これを採用することは経費がかさみ、しかも、データ伝達が必要でない場合にはこれの使用は不必要である。NICは、処理済みの最後のデータ記述子のトラックをTXデータ記述子リング別に保持する。
【0020】
TX完成リング490は、TXデータ記述子リング480a−480mとは異なり、ポインタに依存することなしに、リングエントリ内に全ての必要な情報を含む複数のデータエントリを有するデータ構造である。TX完成リング490は、どのデータワードが分割(セグメンテーション)用TXバッファメモリに転送済みであるかをソフトウェアに通知するために用いられる。好ましい実施形態においては、TX完成リング490は、任意の構成を選定しても差し支えないが、配列された64バイトで構成される最大1,024リングエントリによる64キロバイトのホストメモリを占有する。TX完成リング490は、NICがTX完成リング490の所有権を持つ場合にセットされる各記述子内のOWNビットを必要とするソフトウェア及びハードウェアの両方によってアクセス可能である。
【0021】
再度図3において、システム及びATMレイヤコア220の主要機能の一つは、ホストメモリからデータを検索し、パック用回路、即ち、1つのワードパッキング回路および1つのバイトパッキング回路を経てTXバッファメモリ内にデータを一時的に記憶する以前に、データに対してパッキング操作を実施することである。その後で、データを、セルに分割し、一連のTX FIFOに転送することが可能である。これは、セル化ロジックの特定の構成部品の集合的な調停済み動作を介して達成される。この場合のロジックは、好ましくは図5に示すインタフェースを備えた、TX DMAエンジン500、TXセグメンテーションエンジン510、及び、TX制御RAM520である。
【0022】
TX DMAエンジン500は、ホストメモリからデータを検索し、バイトパッキング回路650によってTXバッファメモリ内に記憶するためにデータをパックするバイトを検索する責任を有する。これによって、ATMスイッチへの伝達に先立ってTXセグメンテーションエンジン510が、図3に示すTXバッファメモリ440に記憶されているデータを送信データセルのペイロードに分割することが更に容易になる。ただし、この種のバイトパッキングは、任意のタイプのネットワークを通って情報を伝達するために、任意の回路によって使用可能であるものと考察される。TX制御ラム520は、TX DMAエンジン500及びTXセグメンテーション回路510によって使用するための情報の内部記憶装置を提供する。TXデータバッファからTXバッファメモリへのデータ転送を統合する際のTX制御RAM520の動作については、譲受人によって同時出願された「ハードウェアとソフトウェアとの間におけるデータ転送を統合するための方法およびその装置」と題し、参考文書として本明細書に組込み済みの願書(代理人事件番号No.82225.P0934)において詳細に検討されている。
【0023】
図6及び7は、1つのワードパッキング回路650及び1つのバイトパッキング回路600を含む上記のパッキング回路の実施形態を示す。ワードパッキング回路はバイトパッキング回路650に先立って作動する任意のNIC構成部品において実現可能であるものと考察されるが、この場合のワードパッキング回路は、図3に示すシステムバスインタフェース200内において用いられ、その出力はGIOインタフェース240を介して伝播する。ワードパッキング回路600は、2つの必要な機能を遂行する。1つの機能は、「N‐ビット」データワードを「R‐ビット」ワード内に転送することである。この場合、「N」及び「R」の値は、それぞれ、システムバス及びTXバッファメモリのビット幅に対応する整数である。第2の機能は、N‐ビットデータワード内の無効ワードがバイトパッキング回路650に転送されることを防止することである。他方、バイトパッキング回路650は、無効バイトがTXバッファメモリに転送されることを防止することにより、データのバイトをパックする。この「バイトパッキング」は、選択的加法によって達成される。
【0024】
説明し易くするために、本実施形態においては、32ビットのデータとして扱われるワード、及び、システムバス及びTXバッファメモリの幅は、それぞれのビット幅が64ビット及び32ビットであるように構成されるものとする。従って、図6に示すワードパッキング回路600は、幅が最大64ビットまでのデータワードをサポートするように構成され、他方、図7−11に示すバイトパッキング回路は、幅が最大32ビットまでのデータワードをサポートするように構成されるはずである。ただし、本発明は、任意のビット幅のシステムバス、又はTXバッファメモリをサポートするように容易に基準化可能であることが考察される。
【0025】
図6において、ワードパッキング回路600は、ラッチエレメント605、第1及び第2入力セレクタ610及び615、読取り記憶エレメント(例えばFIFO)620、出力セレクタ625、及び、出力制御回路630を有する。64ビットデータワードは、図3に示すシステムバスから獲得され、2つの32ビットデータワード、即ち、最下位32ビットの64ビットデータワードを持つ小文字データワード、及び、大文字データワードに分離される。
【0026】
図に示すように、第1転送サイクル期間中に、小文字データワードは、(i)ラッチエレメント605、(ii)第1入力セレクタ610の最初のポート、及び、(iii)入力第2セレクタ615の最初のポートに転送される。大文字データワードは、第2入力セレクタ610の2番目のポートに入力される。これら第1および第2入力セレクタ610及び615は、Select1を論理「1」に等しくなるようにセットし、Select0をホストメモリの関連TXデータバッファ内における有効データの始動アドレスのビット2の値に等しくなるようにセットすることによって、無効ワード(32ビット)が読取り記憶エレメント620内に記入されることを阻止するように不能化されるべく構成される。Select0およびSelect1ラインの構成(コンフィギュレーション)は、システムバスの全サイズ(例えば、32ビットシステムバスの場合には「00」)に適合するように導き出されることが可能であると考察される。
【0027】
データが読取り記憶エレメント620に転送されるにつれて、出力制御回路630は、TXバッファメモリがデータを受信可能であることを示す外部バッファメモリインタフェース内におけるローカルコントローラ(図示せず)によって生成されるバスライン651を介して作動状態にあるREAD_ENABLE信号を受信した際にバイトをパッキングするために、読取り記憶エレメント620の32ビット部分をバイトパッキング回路650にパスするように、出力セレクタ625の第1および第2の部分を交互に選定する。その後で、出力制御回路630は、更に情報を獲得するために、読取り記憶エレメント「PTR」のポインタをインクレメントする。出力制御回路630は、更に、ワードパッキング回路によってバイトパッキング回路に転送された各32ビットデータワード毎にデクリメント(減分)する減分カウンタ(図示せず)からのバスライン652を介して、LAST_READ信号を入力として受信する。データ転送開始に先立って、カウンタは、データ記述子によって供給されたデータブロック内の有効ワードの個数となるようにリセットされる。LAST_READ信号は、作動化状態にある場合、読取られつつある読取り記憶エレメント620の部分が多数のTXデータバッファの中の1つから獲得されたデータの最後のデータバイトを含むことを示す。これは、最後の有効ワードを後続させている無効ワードを除去するために用いられる。
【0028】
図7において、バイトパッキング回路650は、バイト循環回路655、入力記憶エレメント660、セーブ記憶エレメント665、出力記憶エレメント670、及び、セレクタ675を有する。入力記憶エレメント660は、ワードパッキング回路600からデータ[31:0]を受信し、データ[31:0]をセーブ記憶エレメント665及びセレクタ675の両方にルートする。セーブ記憶エレメント665は、データ[31:0]を1つの単一サイクルだけ遅延させ、そして、データ(「SData[31:0]」と称する)をセレクタ675内に出力する。従って、セレクタ670は、入力記憶エレメント660及びセーブ記憶エレメント665両方からのデータ入力を受信する。
【0029】
セレクタ675は、図8−11に示すように、データ「PData[31:0]」の中のパックされた1つのワードを一時に集合的に出力するために相互に平行に方向付けられた、4つのマルチプレクサグループ、即ち、「MUX(0)―(3)」680、685、690、及び、695を有する。これらのマルチプレクサグループ680、685、690、及び、695は、状態マシンを必要とすることなしにバイトパッキングを実施するために、32ビット幅のバイトパッキングに従い、図に示すようにルートされる。更に、64ビット以上の幅の場合をサポートするために、マルチプレクサは、下の表Bに示すように、特定のシステム構成(コンフィギュレーション)を達成するように容易に修正される際に基準化することが可能である。これらのマルチプレクサグループ680、685、690、及び、695は、一般に、確実にバイトパッキングするためにデータをワードパッキング回路から通過させるために各マルチプレクサグループ680、685、690、及び、695のどの入力を選定するかを実行するバイト循環選択ライン656を介してバイト循環回路655によって選定される。この選択動作は、パイプライン「PIPE COUNT」における有効バイトの個数(即ち、データバッファの読み取りを新規に開始する時点における、入力、セーブ、及び、出力記憶エレメント内のバイト数)、及び、最初のデータワード「BUFFER ADDR」の最初の有効バイトの始動アドレスに基づく。バイトパッキングは32ビット(4バイト)幅に関して実施されるので、図に示すように、BUFFER ADDRは2ビットである。BUFFER ADDRのビット数は、受信したデータワードのサイズに応じて増大可能であることが考察される。バイト循環回路655は、バイト循環選択ライン656を介して伝播されるべき選定値を計算する。選定値は、次に示す方程式1の値に等しい:
【数1】
ここに、「R」/8=TXバッファメモリのバイト幅である。
【0030】
上記の識別済み方程式から求められる32ビット実施形態における可能なデータパスを次の表Aに示す。
【表1】
【0031】
一般に、TXメモリバッファのビット幅に対応するサイズ「R」のあらゆるデータパケットに関して、バイトパッキングは、例えば、上記のバイト、又は、あらゆる所定のビット幅のような所定量(「T」)のパックされたデータをそれぞれ出力するために、次の表Bに基づいて、複数のマルチプレクサグループを構成することによって遂行される。マルチプレクサグループは、あらゆるビットサイズをサポートするように構成可能であるが、各マルチプレクサグループは、8ビットのデータを出力し、したがって、「T」が「8」に等しくなるように選定される。
【表2】
【0032】
本発明のオペレーションを明瞭にするために、加法技法を用いたバイトパッキングを説明することを唯一の目的として作成された特定の例を図12−20に示す。この特定例は、いかなる点においても本発明の適用範囲に関する制限を意味するものと解釈されてはならない。
【0033】
ワードパッキング回路は、図1に示すデータバッファを用いて、有効データバイト1及び2を含む最初の32ビットデータワードに先行する無効ワード、並びに、最初のTXデータバッファのデータと関連した最後の32ビットデータワードの直前を先行するアドレス14Hにおける無効ワードを除去するにつれて、バイトパッキング回路は、TXバッファメモリに記憶する前に、更に、データをパックし続ける。図12に示すように、ワードパッキング回路がデータブロックの32ビットデータワードの最初のシーケンスをバイトパッキング回路へ転送し始める直前に、バイト循環回路は、セレクタ675(図示せず)に出力されるべき選定値を計算する。この選定値は、この場合においては、「2」(即ち、(4−0+2)mod4)に等しい。従って、有効バイトデータ1−2は、第1サイクルにおいて、入力記憶エレメント660に転送される(図13参照)。その次のサイクルにおいて、バイト1−2は、セーブ記憶エレメント665に転送され、他方、バイト3−6は、入力記憶エレメント660に転送される(図14参照)。入力記憶エレメント660からのバイト1−2、及び、入力セーブ記憶エレメント660からのバイト3−4は、出力記憶エレメント670に転送され、他方、バイト3−6はセーブ記憶エレメント665に転送され、バイト7−10は入力記憶エレメント660に転送される(図15参照)。このプロセスは、出力記憶エレメント670内にバイト13のみが所在する状態になるまで継続する(図16参照)。ただし、バイトパッキングを維持するために、出力記憶エレメントが満杯になるまで、或いは、当該データが、LAST_READ信号によって示されるように、TXバッファメモリに転送されるべきデータの最後の有効バイトでない限り、バイト13は出力記憶エレメント670からTXバッファメモリへは転送されない。
【0034】
2番目のTXデータバッファと関連したデータワードの2番目のシーケンスに関しては、バイト循環回路は、図17に示すように、3(即ち(4−1+0)mod 4)に等しい選定値を再計算する。従って、第1サイクル期間中においては、バイト14−17は、入力記憶エレメント660に転送される(図18参照)。その次のサイクルにおいては、バイト14−17はセーブ記憶エレメント665に入力され、バイト14−16は出力記憶エレメント670に転送され、バイト18−21は入力記憶エレメント660に転送される(図19参照)。その次のサイクルにおいては、セーブ記憶エレメント665からのバイト17が出力記憶エレメント270に転送され、バイト18−21はセーブ記憶エレメント665に転送され、バイト23−25は入力記憶エレメント660に転送される。同じプロセスは、バイト29−32が出力記憶エレメント670に転送される時まで継続する。
【0035】
これ以降においては、第3TXデータバッファからのデータを構成した後に、図20に示すように、バイト循環回路630は、「1」(即ち(4−0+1) mod 4)であるべき選定値を再計算する。プロセスは、上記のプロセス同様に継続する。ただし、この場合には、データワードの第1及び第2シーケンスに関して図に示すように、3つのバイト値は、「2」及び「1」バイトの代わりにセーブ記憶エレメント665から転送される。
【0036】
図7−11のワードパッキング及びバイトパッキング回路の集合的動作(オペレーション)を示すフローチャートを図21に示す。ステップ105において、ワードパッキング回路は、1番目のビット幅を持つデータワードの最初のシーケンスをホストメモリから受信する。これらのデータワードは、1つの単一TXデータバッファに記憶されているデータブロックの部分である。ステップ110において、ワードパッキング回路は、もし無効ワードが含まれている場合には、ワードパッキング回路を経て無効ワードが伝播することを抑制することにより、有効データに先行する第1データワード内における無効ワードを除去する。
【0037】
次に、ステップ115において、ワードパッキング回路のデータ送信準備が整っていることを検出した場合、バイトパッキング回路内のバイト循環回路は、入力、セーブ、及び、出力記憶エレメント660、665、及び、670の間において適切なデータパスを構成する選定値を計算する。このデータパスは、TXバッファメモリに転送された出力データパケットを「バイトパック」するために、1つのワードからのデータのバイトを他の1つのワードに効果的に加えるために用いられる(ステップ120)。次に、ステップ125において、ワードパッキング回路は、ポインタを読取り記憶エレメントに増分(インクレメント)することにより、データワードの第1シーケンスの最後のデータワード内における無効ワードを除去する。最終的に、ステップ130において、出力記憶エレメントに残っているあらゆるバイトをTXバッファメモリに転送する以前に、データワードの第1シーケンスの転送動作によってデータブロックのデータ転送が完成されるかどうかに関する判定が行われる。完成される場合には、データ転送は完了である。完成されない場合には、ワード及びバイトパッキング回路は、他のTXデータバッファと関連した後続データブロックに対してパッキング動作(オペレーション)を継続する。 ここで説明した本発明は、多くの異なる方法において、また、多くの異なる構成(コンフィギュレーション)を用いて設計可能である。本発明は、種々の実施形態を用いて説明されたが、当該技術分野における熟練者であれば、本発明の精神及び適用範囲から逸脱することなしに他の実施形態を考案できるはずである。当該技術分野における熟達者にとって、これら特定の詳細事項を組み込むことなしに本発明を実現することが可能であることは明白であるが、多数の特定詳細事項について説明した。ただし、場合によっては、本発明を不必要に理解し難くすること避けるために、公知の回路及びこれに類する事柄については説明しなかった。従って、本発明は、次に示す特許請求の範囲項に関して評価されなければならない。
【図面の簡単な説明】
【図1】 任意に選定された開始データブロックアドレス06H、104H、及び、309Hに情報を記憶する多重データバッファの構成図である。
【図2】 スイッチング回路および専用ネットワークインタフェース回路を介して一緒に結合されたホストメモリを有するシステムを含むATMネットワークの説明図的な構成図である。
【図3】 システム及びATMレイヤコアを含む図2に示すネットワークインタフェース回路の説明図的な構成図である。
【図4】 データ伝送において、図2に示すネットワークインタフェース回路によって使用されるホストメモリの特定なデータ構造の説明図的な構成図である。
【図5】 ネットワークインターフェイス回路のシステム及びATMレイヤコア内にセル化用として設けられた構成部品の説明図的な構成図である。
【図6】 図3及び5に示すシステムバスインタフェースを用いて実現されたワードパッキング回路の説明図的な構成図である。
【図7】 図5に示すTX DMAエンジンを用いて実現されたバイトパッキング回路の説明図的な構成図である。
【図8】 図7に示すバイトパッキング回路のセレクタの説明図的な構成図である。
【図9】 図7に示すバイトパッキング回路のセレクタの説明図的な構成図である。
【図10】 図7に示すバイトパッキング回路のセレクタの説明図的な構成図である。
【図11】 図7に示すバイトパッキング回路のセレクタの説明図的な構成図である。
【図12】 図1に示すデータブロックをバイトパックするために、図7に示すバイトパッキング回路の入力、セーブ、及び、出力記憶エレメントが引き受けるデータパスの説明図である。
【図13】 図1に示すデータブロックをバイトパックするために、図7に示すバイトパッキング回路の入力、セーブ、及び、出力記憶エレメントが引き受けるデータパスの説明図である。
【図14】 図1に示すデータブロックをバイトパックするために、図7に示すバイトパッキング回路の入力、セーブ、及び、出力記憶エレメントが引き受けるデータパスの説明図である。
【図15】 図1に示すデータブロックをバイトパックするために、図7に示すバイトパッキング回路の入力、セーブ、及び、出力記憶エレメントが引き受けるデータパスの説明図である。
【図16】 図1に示すデータブロックをバイトパックするために、図7に示すバイトパッキング回路の入力、セーブ、及び、出力記憶エレメントが引き受けるデータパスの説明図である。
【図17】 図1に示すデータブロックをバイトパックするために、図7に示すバイトパッキング回路の入力、セーブ、及び、出力記憶エレメントが引き受けるデータパスの説明図である。
【図18】 図1に示すデータブロックをバイトパックするために、図7に示すバイトパッキング回路の入力、セーブ、及び、出力記憶エレメントが引き受けるデータパスの説明図である。
【図19】 図1に示すデータブロックをバイトパックするために、図7に示すバイトパッキング回路の入力、セーブ、及び、出力記憶エレメントが引き受けるデータパスの説明図である。
【図20】 図1に示すデータブロックをバイトパックするために、図7に示すバイトパッキング回路の入力、セーブ、及び、出力記憶エレメントが引き受けるデータパスの説明図である。
【図21】 図6及び7に示すワード及びバイトパッキング回路の作動ステップを示すフローチャートである。
【符号の説明】
200 システムバスインタフェース
220 システム及びATMレイヤコア
340 外部バッファメモリインタフェース
380 システムバス
395 ホストメモリ
600 ワードパッキング回路
650 バイトパッキング回路
Claims (6)
- 1番目のメモリエレメントと2番目のメモリエレメントとの間において転送されるデータをパッキングするための回路において、
それぞれ1番目のビット幅を有するデータワードの1番目のシーケンスを受け取り、そして、それぞれ2番目のビット幅を有するデータワードの2番目のシーケンスを直列に転送するように構成されたワードパッキング回路と、
(i)データワードの第2シーケンスを直列に受け取り、そして、(ii)それぞれのデータワードが第2メモリエレメントに記憶されるための第2ビット幅を有するデータワードの3番目のシーケンスを生成するように構成され、前記ワードパッキング回路に結合したバイトパッキング回路とを有し、前記データワードの第3シーケンスが、データワードの第2シーケンスによって供給された有効データのみを有する、
ことを特徴とする回路。 - ホストシステムをネットワークメディアに結合するネットワークインタフェース回路において、
2番目のビット幅を持つように構成された送信バッファメモリと、
ホストシステムのデータバスとの接続を設定するように構成されたシステムバスインタフェースとを有し、前記のデータバスが1番目のビット幅を有し、
データバスに配置されたデータワードの1番目のシーケンスを受け取り、そして、前記の送信バッファメモリ内にデータを記憶する以前にデータワードの第1シーケンスによって供給される有効データをパックするように構成され、送信バッファメモリ及びシステムバスインタフェースに結合されたシステム及びATMレイヤコアを有し、前記のシステム及びATMレイヤコアにおいて、
データワードの第1シーケンスを受け取り、そして、それぞれ第2ビット幅を有するデータワードの2番目のシーケンスを直列転送するように構成されたワードパッキング回路と、
(i)データワードの第2シーケンスを直列に受け取り、そして、(ii)それぞれ送信バッファメモリ内に記憶されるべき第2ビット幅を有するデータワードの第3シーケンスを生成するように構成され、前記ワードパッキング回路に結合されたバイトパッキング回路とを有し、データワードの第3シーケンスが、データワードの第2シーケンスによって供給された有効データのみを有する、
ことを特徴とする回路。 - 請求項2記載のネットワークインタフェース回路における、ワードパッキング回路において、
読取り記憶エレメントと、
データワードの第1シーケンスを前記の読取り記憶エレメントに転送するように構成され、前記の読取り記憶エレメントに結合された複数の入力セレクタと、データワードの第1シーケンスを出力セレクタに順次転送するために前記読取り記憶エレメントを制御するように構成され、前記の読取り記憶エレメントに結合された制御回路とを有し、
前記読取り記憶エレメント及び前記制御回路に結合された前記の出力セレクタはデータワードの第2シーケンスを前記バイトパッキング回路に転送するように構成され、データワードの第2シーケンスはデータワードの第1シーケンスと同じである、
ことを特徴とする回路。 - データパッキングの方法において、
それぞれ1番目のビット幅を有するデータワードの第1シーケンスを受け取り、そして、それぞれ2番目のビット幅を有するデータワードの2番目のシーケンスを直列に転送するためのワードパッキング回路を提供する過程を有し、この場合、データワードの第2シーケンスの各データワードは有効ワードを含み、
データワードの第2シーケンスを直列に受け取り、そして次に、それぞれ第2メモリエレメントに記憶されるべき第2ビット幅を有するデータワードの第3シーケンスを生成するためにワードパッキング回路に結合されたバイトパッキング回路を提供するステップを有し、データワードの第3シーケンスが有効バイトのみを含む、
ことを特徴とする方法。 - ネットワークにおいて、
ネットワークメディアと、
前記ネットワークメディアを介してデータを転送するために前記ネットワークメディアに結合されたホストシステムとを有し、前記ホストシステムが伝送のためにデータをパッキングする回路を有し、前記回路において、
データワードの1番目のシーケンスを受け取り、そして、それぞれ2番目のビット幅を有するデータワードの2番目のシーケンスを直列に転送するように構成されたワードパッキング回路と、
(i)データワードの2番目のシーケンスを直列に受け取り、そして、
(ii)それぞれ2番目のビット幅を有するデータワードの3番目のシーケンスを生成するように構成され、ワードパッキング回路に結合されたバイトパッキング回路とを有し、データワードの第3シーケンスが、データワードの第2シーケンスによって供給される有効データのみを含む、
ことを特徴とするネットワーク。 - ネットワークインタフェース回路において、
2番目のビット幅を持つように構成されたローカルバッファメモリと、
それぞれ1番目のビット幅を有するデータワードの1番目のシーケンスを受け取り、そして、データワードの第1シーケンスの有効データを前記のローカルバッファメモリ内に記憶するように構成され、前記ローカルバッファメモリに結合されたコア回路とを有し、前記コア回路において、
データワードの第1シーケンスを受け取り、そして、それぞれ第2ビット幅を有するデータワードの2番目のシーケンスを直列転送するように構成されたワードパッキング回路と、
(i)データワードの第2シーケンスを直列に受け取り、そして、(ii)それぞれ送信バッファメモリに記憶されるべき第2ビット幅を有するデータワードの3番目のシーケンスを生成するように構成され、ワードパッキング回路に結合されたバイトパッキング回路とを有し、データワードの第3シーケンスが、データワードの第2シーケンスによって供給された有効データのみを含む、
ことを特徴とする回路。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US08/498620 | 1995-07-07 | ||
US08/498,620 US5638367A (en) | 1995-07-07 | 1995-07-07 | Apparatus and method for data packing through addition |
Publications (2)
Publication Number | Publication Date |
---|---|
JPH09224041A JPH09224041A (ja) | 1997-08-26 |
JP3761980B2 true JP3761980B2 (ja) | 2006-03-29 |
Family
ID=23981817
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP19527996A Expired - Fee Related JP3761980B2 (ja) | 1995-07-07 | 1996-07-08 | 加法によるデータパッキングのための装置及びその方法 |
Country Status (4)
Country | Link |
---|---|
US (1) | US5638367A (ja) |
EP (1) | EP0752800B1 (ja) |
JP (1) | JP3761980B2 (ja) |
DE (1) | DE69631226D1 (ja) |
Families Citing this family (19)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5982772A (en) * | 1995-11-06 | 1999-11-09 | Sun Microsystems, Inc. | Cell interface block partitioning for segmentation and re-assembly engine |
DE19603296C2 (de) * | 1996-01-30 | 1998-09-24 | Weidmueller Interface | Verfahren und Feldbussystem zur seriellen Datenübertragung in objektorientierten Anwendungen |
US5870628A (en) * | 1996-06-11 | 1999-02-09 | International Business Machines Corporation | Adaptor for receiving and processing asynchronous transfer mode cells within a computer network |
DE69715588T2 (de) * | 1997-02-28 | 2003-01-23 | Alcatel Sa | Schnittstellenvorrichtung zur Ersetzung von M Sätzen von Bits aus N Sätzen von Bits, mit Steuereinrichtung und logischer Zelle |
EP0862348A1 (en) * | 1997-02-28 | 1998-09-02 | Alcatel | Interfacing device to extract M sets of bits out of N sets of bits, control unit and logical cell |
US7272703B2 (en) | 1997-08-01 | 2007-09-18 | Micron Technology, Inc. | Program controlled embedded-DRAM-DSP architecture and methods |
JP3016381B2 (ja) * | 1997-10-28 | 2000-03-06 | 日本電気株式会社 | バイト入替え演算器 |
US6868091B1 (en) * | 1997-10-31 | 2005-03-15 | Stmicroelectronics Asia Pacific Pte. Ltd. | Apparatus and method for depacketizing and aligning packetized input data |
US6311239B1 (en) * | 1998-10-29 | 2001-10-30 | Cypress Semiconductor Corp. | Architecture, circuitry and method for transmitting n-bit wide data over m-bit wide media |
US6567902B1 (en) * | 2000-08-15 | 2003-05-20 | Juniper Networks. Inc. | Systems and methods for packing data into a destination register |
US20020061107A1 (en) * | 2000-09-25 | 2002-05-23 | Tham Terry K. | Methods and apparatus for implementing a cryptography engine |
US20020078342A1 (en) * | 2000-09-25 | 2002-06-20 | Broadcom Corporation | E-commerce security processor alignment logic |
US6813734B1 (en) | 2001-01-26 | 2004-11-02 | Catamaran Communications Incorporated | Method and apparatus for data alignment |
US6965606B2 (en) * | 2001-01-26 | 2005-11-15 | Exar Corporation | Method and apparatus for byte rotation |
WO2002060101A2 (en) * | 2001-01-26 | 2002-08-01 | Infineon Technologies Catamaran, Inc. | Method and apparatus for data alignment |
US6952738B1 (en) * | 2001-08-17 | 2005-10-04 | Juniper Networks, Inc. | Systems and methods for removing intrapacket gaps from streams of different bandwidths |
US7733878B2 (en) * | 2002-07-08 | 2010-06-08 | Brooktree Broadband Holdings, Inc. | System and method for packet transmission from fragmented buffer |
US7484049B1 (en) * | 2003-07-18 | 2009-01-27 | Emc Corporation | Data storage system packer/depacker |
US8032669B2 (en) * | 2008-01-20 | 2011-10-04 | Oracle America, Inc. | Universal DMA (direct memory access) architecture |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US3602896A (en) * | 1969-06-30 | 1971-08-31 | Ibm | Random access memory with flexible data boundaries |
JPH03106127A (ja) * | 1989-09-20 | 1991-05-02 | Fujitsu Ltd | 可変長符号化回路 |
US5168561A (en) * | 1990-02-16 | 1992-12-01 | Ncr Corporation | Pipe-line method and apparatus for byte alignment of data words during direct memory access transfers |
JPH0548638A (ja) * | 1991-08-15 | 1993-02-26 | Fujitsu Ltd | Atm網におけるエンド・エンド間輻輳対処制御処理方式 |
US5471632A (en) * | 1992-01-10 | 1995-11-28 | Digital Equipment Corporation | System for transferring data between a processor and a system bus including a device which packs, unpacks, or buffers data blocks being transferred |
EP0571683A1 (en) * | 1992-05-26 | 1993-12-01 | International Business Machines Corporation | High performance data re-alignment mechanism with multiple buffers in a memory access control device |
US5446726A (en) * | 1993-10-20 | 1995-08-29 | Lsi Logic Corporation | Error detection and correction apparatus for an asynchronous transfer mode (ATM) network device |
-
1995
- 1995-07-07 US US08/498,620 patent/US5638367A/en not_active Expired - Fee Related
-
1996
- 1996-07-03 EP EP96110753A patent/EP0752800B1/en not_active Expired - Lifetime
- 1996-07-03 DE DE69631226T patent/DE69631226D1/de not_active Expired - Lifetime
- 1996-07-08 JP JP19527996A patent/JP3761980B2/ja not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
EP0752800B1 (en) | 2004-01-02 |
US5638367A (en) | 1997-06-10 |
EP0752800A2 (en) | 1997-01-08 |
JPH09224041A (ja) | 1997-08-26 |
DE69631226D1 (de) | 2004-02-05 |
EP0752800A3 (en) | 1999-09-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP3761980B2 (ja) | 加法によるデータパッキングのための装置及びその方法 | |
JP3819484B2 (ja) | Mpegパケットをパケット化およびセグメント化する装置および方法 | |
US5875352A (en) | Method and apparatus for multiple channel direct memory access control | |
US5664116A (en) | Buffering of data for transmission in a computer communication system interface | |
US5778180A (en) | Mechanism for reducing data copying overhead in protected memory operating systems | |
EP0772130B1 (en) | Method and apparatus for transmission and processing of virtual commands | |
US5751951A (en) | Network interface | |
US7782849B2 (en) | Data switch and switch fabric | |
JP4205181B2 (ja) | Atmパケット・ヘッダおよびデータをホスト・コンピュータ・システムにバースト転送するための方法および装置 | |
JP2788577B2 (ja) | フレーム変換方法及び装置 | |
US5828903A (en) | System for performing DMA transfer with a pipeline control switching such that the first storage area contains location of a buffer for subsequent transfer | |
US5784370A (en) | Method and apparatus for regenerating a control signal at an asynchronous transfer mode (ATM) layer or a physical (PHY) layer | |
EP0772369B1 (en) | Cell interface block partitioning for segmentation and re-assembly engine | |
JPH09265439A (ja) | ホスト・システムと非同期転送モード・コア機能ブロックとの間の汎用インタフェースを行う装置および方法 | |
JP2003508954A (ja) | ネットワーク・スイッチ及びコンポーネント及び操作方法 | |
JP2000503828A (ja) | データネットワーク上でデータパケットをスイッチングする方法および装置 | |
JP2000101651A (ja) | 順応性のある電気通信交換ネットワ―ク | |
JPH07321824A (ja) | セル・スイッチ・ファブリック用チップ | |
JP3802166B2 (ja) | ネットワーキング環境におけるネットワーク・トランスポータの検証 | |
Hobson et al. | A parallel embedded-processor architecture for ATM reassembly | |
US7515598B2 (en) | Configurable transmit and receive system interfaces for a network device | |
US7492790B2 (en) | Real-time reassembly of ATM data | |
KR970002748B1 (ko) | 에이티엠(atm) 교환기의 내부셀 생성장치 | |
JPH08102761A (ja) | プロトコル変換装置およびプロトコル変換方法 | |
JPH06303240A (ja) | レピータベースのシステムにおける属性記憶のためのカウンタ |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20051124 |
|
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: 20051213 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20060112 |
|
R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
LAPS | Cancellation because of no payment of annual fees |