JP4090510B2 - アプリケーションデータのダイレクトマッピングのためのコンピュータインターフェース - Google Patents
アプリケーションデータのダイレクトマッピングのためのコンピュータインターフェース Download PDFInfo
- Publication number
- JP4090510B2 JP4090510B2 JP52587198A JP52587198A JP4090510B2 JP 4090510 B2 JP4090510 B2 JP 4090510B2 JP 52587198 A JP52587198 A JP 52587198A JP 52587198 A JP52587198 A JP 52587198A JP 4090510 B2 JP4090510 B2 JP 4090510B2
- Authority
- JP
- Japan
- Prior art keywords
- memory
- data
- identifier
- computer
- work queue
- 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
- 238000013507 mapping Methods 0.000 title claims description 28
- 230000015654 memory Effects 0.000 claims description 190
- 238000012546 transfer Methods 0.000 claims description 50
- 230000005540 biological transmission Effects 0.000 claims description 28
- 230000006854 communication Effects 0.000 claims description 19
- 238000004891 communication Methods 0.000 claims description 19
- 238000000034 method Methods 0.000 claims description 13
- 238000009432 framing Methods 0.000 claims description 7
- 238000012545 processing Methods 0.000 description 15
- 230000006870 function Effects 0.000 description 5
- 238000010586 diagram Methods 0.000 description 4
- 238000005457 optimization Methods 0.000 description 4
- 238000004806 packaging method and process Methods 0.000 description 2
- 230000002093 peripheral effect Effects 0.000 description 2
- 241001522296 Erithacus rubecula Species 0.000 description 1
- 230000003044 adaptive effect Effects 0.000 description 1
- 238000007792 addition Methods 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- 230000007175 bidirectional communication Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 238000004883 computer application Methods 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 239000000835 fiber Substances 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 230000006855 networking Effects 0.000 description 1
- 230000008569 process Effects 0.000 description 1
- 230000011664 signaling Effects 0.000 description 1
- 208000037820 vascular cognitive impairment Diseases 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
- G06F9/546—Message passing systems or structures, e.g. queues
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/10—Address translation
- G06F12/1081—Address translation for peripheral access to main memory, e.g. direct memory access [DMA]
-
- 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/5638—Services, e.g. multimedia, GOS, QOS
- H04L2012/5646—Cell characteristics, e.g. loss, delay, jitter, sequence integrity
- H04L2012/5652—Cell construction, e.g. including header, packetisation, depacketisation, assembly, reassembly
-
- 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)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Networks & Wireless Communication (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
- Devices For Executing Special Programs (AREA)
- Stored Programmes (AREA)
- Computer And Data Communications (AREA)
Description
本発明は、異なるコンピュータ及びコンピュータサブシステム上で動作するアプリケーション間の通信に関連する。特に、1つのコンピュータ上のアプリケーションデータを他のコンピュータの物理メモリアドレスにダイレクトマッピングすることに関する。さらに具体的には、実質上オペレーティングシステムが介在することなく、少なくとも2つのネットワーク接続されたコンピュータ間のメモリアドレッシング機能を実行するスイッチ構成に関する。
発明の背景
クラスタまたはネットワーク内のデータ処理装置(データ処理デバイス)間のデータ及び命令の転送は、各デバイスに備わっているインターフェースユニットを使用して実行される。このようなデータ処理装置は、例えば、ディスクサーバのようなコンピュータ、及び外部ネットワークへの通信リンクのような共有I/Oデバイスを備えることができる。一般的には、これらのユニット間をシリアル形式でデータを転送するリンクが使用される。特に、3つ以上のデバイスがリンクされるときに、データを転送するためにスイッチを設けることができる。
常時、多くのデータ転送が、異なるコンピュータ上で動作しているアプリケーションプログラム間で発生している。多くのネットワーク構成が、これらの転送を実行するために実装されてきた。概して、このような従来のネットワーク化によるアプローチは、待ち時間を少なくし、より高速で低コストを実現する所望の構成を提供するものではない。
従って、本発明の目的は、リンク(接続)されたデータ処理装置間のデータ転送の待ち時間を大幅に低減し、及びその速度を高速化する低コストのコンピュータインターフェースシステムを提供することである。このインターフェースシステムは、ハードウエアのコストを可能な限り低くするために、ボード上のリソース(すなわち、コンピュータ内に組み込み済みのリソース)を効率的に使用すべきである。
発明の要約
本発明は、ホスト装置内のアプリケーションにかかわる稼働中の各通信回線接続(通信回線)に対して、マップを記憶するインターフェースユニットを有する各ホストデータ処理装置(例えば、コンピュータ)を提供することによって、従来技術の欠点を克服する。このマップは、ホストのメインメモリ内の対応する物理アドレスを有するアプリケーションによって指定される仮想アドレスを特定するものである。これらの物理アドレスは、このアプリケーションと別の装置上で動作している特定のアプリケーションとの間で転送されるデータのホスト装置内の場所である。データ転送は、コンピュータ間のデータのルーティングを容易にする固有の識別子をそれぞれが伝える仮想的な回線接続に沿って生じる。各インターフェースユニットは、回線接続識別子の面で、指示されるか、または「マッピング」される一連のレジスタまたは「メモリ」を含む。
従って、インターフェースユニットは、プロトコル処理のために、ホストオペレーティングシステムへの時間のかかる発呼を行うことなく、あるいは、アプリケーションによって提供される仮想メモリ位置をメインメモリ内の物理メモリアドレスに変換することなく、メインメモリ間とのデータ転送をすることができる。さらに、インターフェースユニット内のレジスタを、回線毎のプロトコル状態情報を保持するために使用することができる。これによって、プロトコルの高速化が容易になる。
本発明は、また、3つ以上のホストデータ処理装置が含まれる場合に使用される、インターフェースユニット内及びスイッチ内において新規なバッファ構成を提供する。バッファ空間は、インターフェース及びスイッチを通るデータ送信回線接続に動的に割り当てられる。これによって、バッファメモリに必要とされるサイズが最小限になると共に、ハードウエアのコストが低減する。この技法は、また、種々の「フェア(fair)」及び/または適応型スケジューリングアルゴリズムを使用することを可能とする。
【図面の簡単な説明】
本発明の上述の及び他の目的、利点は、添付の図面と共に以下の詳細な説明を参照することによって、明らかになるであろう。
図1は、本発明に従う、互いに通信接続されたコンピュータシステムネットワークのブロック図である。
図2は、本発明に従うネットワークインターフェースユニットのより詳細なブロック図である。
図3は、本発明に従う他のネットワークインターフェースユニットのより詳細なブロック図である。
図4は、本発明に従うスイッチのブロック図である。
詳細な説明
図1に、本発明に従って基本クラスタ化されたコンピュータシステムを示す。一例として、この図では、クラスタは3つのコンピュータを備えている。この例では、コンピュータが示されているが、1つ以上のコンピュータを、ディスクサーバや外部ネットワークへの通信リンクのような他のデータ処理装置とすることもできる。従って、そのようは他のデバイスと共にこのシステムを使用することが、明確に考慮されている。
本発明の説明のために、一般的にコンピュータ30aを参照する。コンピュータ30aは、コンピュータ30bとコンピュータ30cに相互接続されていると想定する。本明細書では、添え字「a」、「b」または「c」の付いた同じ参照番号によって、各コンピュータシステム30a、30b、及び30cにおけるそれぞれ同じコンポーネントを参照する。これらのホストコンピュータ30a、30b及び30cは、それらが、下記する方法における相互通信に適合する限り、アーキテクチャは異なったものとすることができるということが考慮されている。ディスクサーバ35もまた図示しており、さらに、本明細書において、「データ」という用語は、本発明のインターフェースユニットとの接続において発生するときには、制御データ(例えば、TCP/IPヘッダ情報)及び生データの両方を意味するものである。本発明のインターフェースは、データ処理装置間の転送のために、制御及びデータ列の両方をATMフレーム化データに変換するフレーミング機能を備える。このフレーム化されたデータは、同じ機能を使用する受信端末上で制御及びデータ列に再変換される。
コンピュータ30aは、並列システムバス42aによってメインメモリ44aに接続されたCPU、すなわち中央処理装置40aから構成される。メインメモリ44aには、オペレーティングシステム46a及び一連のコンピュータアプリケーションプログラム48aを収容する記憶ブロックがある。
I/Oセクタ50aは、すべてがシステムバス42aに接続された、ディスク及び他の周辺デバイス52a、さらに、本発明に従うネットワークインターフェースユニット54aを備えることができる。インターフェースユニット54aは、コンピュータ30b、30c、及びディスクサーバ35との通信を可能にする。コンピュータ30bは、システムバス42bに接続されたそれ自身のネットワークインターフェースユニット54bを備え、コンピュータ30cは、システムバス42cに接続されたネットワークインターフェースユニット54を備える。クラスタ内では2つのみのコンピュータ(例えば、コンピュータ30a及びコンピュータ30b)が接続されており、直接の相互接続80(点線で図示)を、インターフェースユニット54aと54bの間に設けることができる。逆に、多くの(例えば、3つ以上の)コンピュータが接続される場合には、スイッチ82が、クラスタ内の装置間で信号を経路指定するために設けられる。このディスクサーバ35は、また、スイッチ82を介してクラスタ内で接続される。これは、他のユニット54a、54b及び54cとアーキテクチャが同じであるそれ自身のネットワークインターフェースユニット55を備える。2つのコンピュータと、3つ以上のコンピュータ(及びディスクサーバ35)間の複数のリンク84、86、88及び89との間の直接接続80は、LVDS(低電圧差分信号方式)リンクまたは光ファイバリンクのような適切な形態をとることができる。
図2及び図3に、ネットワークインターフェースユニット54aと54bをより詳細に示す。ユニット54aは、直列リンク80によって相互接続されているということを最初に仮定して、以下にネットワークインターフェースユニットの動作をさらに詳細に説明する。
リンク80は、それぞれのトランシーバ/直並列変換器90a及び90bを介して、ネットワークインターフェースユニット54aと54bに動作可能に接続されている。トランシーバ90aと90bは、両方とも、リンク80を介して双方向通信のためにデータを送受信することができる。
ネットワークインターフェースユニット間の好ましいデータ転送モードは、周知の非同期転送モード(ATM)である。ATMでは、メッセージは、パケットすなわち「セル」で転送される。すべての通信は、ATM UNI(ユーザーネットワークインターフェース)規格においてフレーム化される。1つ以上の仮想回線接続が、別のデータ処理装置(例として、コンピュータ30a、30b及び30c、さらにディスクサーバ35)上で動作しているアプリケーションプログラム間でセットアップされる。ネットワークを送信される各データセルは、仮想回線接続の仮想回線接続識別子(VCI)を含むヘッダを有する。マルチリンクの回線接続では、各リンク毎に異なるVCIを含むことができる。各回線接続は、同じ回線接続識別子の下で生じるホスト装置間の双方向データ転送を具備して、全二重モードで構築される。仮想回線接続及びそれらの対応するVCIは、データ処理装置の各々に存在するアプリケーションの通信要件に基づいてシステムが立ち上がるときに、通常構築される。さらに、クラスタ内のアプリケーションプログラムによって、必要に応じて、動的に、仮想回線接続を構築し、及び既存の回線接続を中断することができる。
ATMは、本実施態様に従う好ましい通信規格として説明されているが、他の通信規格及びプロトコルを、本発明に従うインターフェースシステムと共に使用することができるということも明確に考慮されている。例えば、TCP/IPプロトコルを使用することができる。周知の及び商業上利用可能な適切なフレーミング/デフレーミング用モジュールを用いることにより、本発明のシステムと関連付けてこの通信規格を構築することができる。従って、本明細書では、ATM規格を図示し説明するが、TCP/IP、暗号化規格及び他の互換性のある通信プロトコルを代用することができ、以下では、これらの代替的なプロトコルも含むものとして説明する。
例えば、コンピュータ30a上で動作しているアプリケーション60aが、コンピュータ30b上で動作している特定のアプリケーション60bに回線接続を構築しようとする場合には、アプリケーション60aは、このアプリケーションにより使用される仮想メモリアドレスによって識別される、メモリ55aの記憶ブロック(または複数のブロック)の内容が、コンピュータ30b上で動作しているアプリケーション60bとの送受信に使用されることになることをオペレーティングシステム46aに通知する。アプリケーションは、また、回線接続の優先順位、プロトコル処理タイプ、関連するフロー制御パラメータ及び関連する転送最適化パラメータを、オペレーティングシステムに送信する。
コンピュータ30a上のソフトウエアアプリケーションとして実装することが好ましいスイッチコントローラ89は、仮想的な回線接続を構築するためにオペレーティングシステムから命令を受け取る。オペレーティングシステム46aから回線接続を構築するためのリクエストを受信したコントローラ89は、ターゲットコンピュータのオペレーティングシステム46bとの通信を開始する。コントローラは、また、後述する方法でスイッチ82と通信を行う。コントローラ89は、オペレーティングシステム46a及び46bのそれぞれに特定のVCIを使用するように命令する。
回線接続が構築されると、それぞれがVCIによって指示される、対応するポインタが、インターフェースユニット54aの送信ワークキュー(transmit work queue)ポインタレジスタ100aに設定される。各ポインタは、対応するVCIに対する送信ワークキュー情報を記憶するために予約されているホストのメインメモリ44a内の特定のアプリケーション60aに関連する送信ワークキュー101aを指示する。メインメモリに記憶された送信ワークキュー101aの各エントリは、制御(例えばTCP/IP)及びデータ情報の開始位置、及び転送すべきデータ量を含む。転送が完了すると、レジスタ100aのポインタは、インターフェースユニット54aによってレジスタ内の次のエントリに進められる。
オペレーティングシステム46aは、アプリケーション60aによって提供される仮想アドレスの、メモリ55a内の対応する物理メモリアドレスへのマップを、ユニット54a内のマッピングメモリ95aにロードする。マッピングされる物理アドレスは、コンピュータ30a上で動作している他のアプリケーションによって上書きされないように、通常、オペレーティングシステムによってホスト内でロックされる。メモリ95aは、インターフェースユニット54aを介して、各仮想回線接続毎に別々のマップを含む。各仮想回線接続毎に、ホストのメインメモリ44aに記憶された関連する送信ワークキュー101aと受信ワークキュー103a(下記)がある。マッピングメモリ95a、送信ワークキューポインタレジスタ100a及び受信ワークキューポインタレジスタ110a(これも下記)は、システムバス42aの「アドレス空間」にあり、従って、オペレーティングシステム46a及びアプリケーション60aのそれぞれによってこれらを直接アドレスすることができる。従って、アプリケーションは、任意の時間に、これらのレジスタへの書き込み、及びこれらのレジスタからの読み出しを直接行うことができる。
転送の受信端末では、ターゲットアプリケーション60bが、対象としている回線接続のデータを受信し送信することになるメモリ44b内の仮想アドレスを、オペレーティングシステム46bに供給している。オペレーティングシステム46bは、メインメモリ44b内の対応する物理アドレスへのこれらの仮想アドレスのマップを有するインターフェースユニット54b上のマッピングメモリ95bをロードし、不慮の上書きを防止するために、ホストオペレーティングシステム46b内の物理アドレスをロックする。各仮想回線接続毎に、関連する受信ワークキュー103bがある。ワークキュー内の各エントリは、制御及びデータが転送されることになるメモリ44b内の開始仮想アドレス、及びこれらのアドレスに続くメモリ空間のバイト数を含む。受信ワークキューポインタレジスタ110a内の関連するエントリは、インターフェースユニット54bに設けられる。このエントリは、その回線接続のワークキュー103b内の次のエントリへのポインタを含む。ポインタは、最初にアプリケーション60aによって設定され、次に、エントリ内で指定されたワークが完了した後に、インターフェース54bによって次のワークキューのエントリに進められる。アプリケーション60bに、制御情報及びデータの到着を知らせるために通知技法が使用される。この技法は、周知のポーリング及び/または割り込みルーチンを含むことができる。
それぞれの仮想的な回線接続は、例えば、アプリケーション60aからアプリケーション60bへの、及びアプリケーション60bからアプリケーション60aへの双方向におけるデータ転送を取り扱うので、逆のセットアップ手順もまた実施される。アプリケーション60aはまた、その受信ワークキューポインタレジスタ110a、受信ワークキュー103a及び送信ワークキューポインタレジスタ100aに、適切なエントリを設定する。アプリケーション60bは、必要であれば、送信ワークキュー101b及び関連するポインタレジスタ100aに適切なエントリを設定する。
スイッチ82は、インターフェースユニットと同時にコントローラ89によってセットアップされる。この手順を以下に説明する。リンク80〜86を介して送信されるデータは、それぞれ48データバイト及び5ヘッダバイトからなるATMセル内にある。データがインターフェースユニット54aに入る速度、及び、データがこのユニットから送信される速度の瞬間速度は、一般的にには異なるであろう。ホストメモリとの間でより大きなデータブロックを転送すること、及びネットワークリンクを介してより小さなセルを転送することもまた所望される。さらに、複数の仮想的な回線接続は、通常、任意の所定時間に開放されて、回線接続をリアルタイムで多重化し、及び多重分離するようにユニットに要求する。従って、バッファ構成がインターフェースユニットに含まれる。具体的には、バッファメモリ120aを含んでおり、このバッファメモリに入力データがロードされ、このバッファメモリから出力データが取り出される(検索される)。既知の従来の任意のバッファ構成を使用することができるが、以下で説明するダイナミックバッファ構成を使用することが好ましい。なぜなら、そのサイズを他の構成のサイズよりもかなり小さくすることができるからである。しかしながら、まず、本発明が別々のコンピュータ上で動作しているアプリケーション間のデータの転送を実行する方法について説明する。
コンテキストメモリ(context memories)140a、b、及びcが、インターフェースユニット54a、b、及びcに設けられる。コンテキストメモリ140aは、例えば、バッファメモリ120a内の空間を占有する各回線接続または潜在的な回線接続に対するエントリを収容する。各エントリは、それのVCIによって指示され、回線接続の優先順位、回線接続によって占有されるバッファメモリのバイト数、フロー制御パラメータ、ホスト転送最適化情報、プロトコル状態情報、スレッドメモリ130a内の回線接続データの送受信ヘッダアドレス(head addresses)及び送受信テールアドレス(tail addresses)、及びホスト通知メカニズム(例えば、割り込みまたはポーリングルーチン)を含む。
各ネットワークインターフェースユニット54a、54bまたは54cは、また、アクティブ回線接続メモリ160a、160b、または160cを備える。これらのメモリは、ダイナミックバッファメモリ120a、120b、または120c内のデータと共に全てのアクティブ回線接続のリストを含んでいる。すなわち、任意の入力データまたは出力データ(送信ワークキュー101aに現れる)は、アクティブ回線接続メモリ160a内にエントリを有する。メモリ160aは、メッセージのプライオリティ(優先順位)に従ってセクションに分割される。例えば、2つの優先順位、「高い優先順位」と「低い優先順位」がある場合には、各アクティブ回線接続メモリは、2つのセクション160(H)及び160(L)を有する。
バッファメモリへのロード及びバッファメモリからの検索を制御するコントローラ136aの一部であるスケジューラ135aの制御の下に、インターフェースユニット54のそれぞれは、アクティブ回線接続メモリ160a内のより高い優先順位のエントリを1つずつ巡回し、それらのエントリに対応する送信及び受信ワークキューによって指定された動作を実行する。従って、インターフェースユニット54aが、その送信ワークキュー100aからエントリを取り出すときには、それは、コンテキストメモリに、転送される情報のメインメモリ内の開始仮想アドレス、及び転送されるバイト数を入力する。次に、ユニット54aは、マッピングメモリ95aから、メインメモリ44a内の開始位置の物理アドレスを返す。ユニット54aは、次に、ホストのメインメモリ44aから、それらの位置(場所)にあるデータを取り出し、それを、バッファメモリ120a内の1組のセグメント(記憶場所のクラスタ)にロードする。次に、ユニット54aは、その回線接続のコンテキストメモリのエントリを更新する。具体的には、ユニット54aは、メインメモリ44aの仮想アドレスをデータが取り出されることになる次のアドレスに更新し、さらに、転送されることになるデータの量を、メモリ44aから取り出されるブロックのサイズだけ減少させる。
続いて、スケジューラ135aが、バッファメモリ120aに現在存在する制御及び/またはデータのブロックからセルを取り出し始める。セル及びフレーミング能力(フレーム化能力)を備えるパッケージングユニット138aが、取り出されたデータのATMセルを構築する。すなわち、周知の技法を使用してATMヘッダにデータを追加する。パッケージングユニットは、また、データの正確さを保証するためのチェックサムルーチンの実行を含む、必要な全てのネットワーク通信機能を実行する。フレームレベルでは、コンテキストメモリ140aは、ATM AAL−5、CRC及びフレームプロトコルのような状態情報を保持し、この情報をATM規格に準拠してフレームの後端部に追加する。フレームは、別の回線接続からのセルと混合することも、混合しないこともできる複数のセルに拡張することもできるし、また、拡張しないこともできる。
受信端末では、ユニット54b内のパーサー139bがセルのヘッダを解釈し、セルのデータ部をバッファメモリ120bにロードする。入力ATMセルは、1つずつバッファ120bに入力される。その後、データが検索されて、マッピングメモリ95b内で識別されるようにホストのメインメモリ44b内の特定の物理メモリ位置(記憶場所)に転送される。所定の仮想回線接続に対するすべての送信ワークキュー記述子が完了し、及び入力または出力データがバッファメモリ120a内にこれ以上存在しない場合には、アクティブな回線接続メモリ(アクティブ回線接続メモリ)160b内の対応するエントリが除去される。明らかに、上述の構成は効率が良い。なぜなら、メインメモリ44a及び44b内の物理メモリ位置を直接使用することによって、いずれのホストオペレーティングシステムも介入することなく、制御及びデータの転送が行われるからである。
好ましいバッファ構成において、メッセージデータは、各ダイナミックバッファ120a、120b、及び120cを介して、各ネットワークインターフェースユニット54a、54b、及び54cへ及びそれらから転送される。バッファのサイズは、コンピュータネットワークの要件及び速度に依存する。典型的には、RAMバッファのサイズは160ビット×4Kビットである。すなわち、640Kビットの容量があれば十分であろう。管理のために、メモリは、それぞれがたくさんの、例えば20個の連続するメモリ位置を備えるセグメントに分割される。本例では、各メモリ位置は1バイトのデータを収容する。
バッファ構成は、バッファメモリ120aに加えて、スレッドメモリ(thread memory)130a、フリーリストメモリ(free list memory)150a、及びコンテキストメモリ140aを備える。スレッドメモリは、バッファメモリ120aの空間を占有する送信回線リンク、及び受信回線リンクの各々に対して、回線接続によって占有されるバッファセグメントのスレッド、すなわちリンクされたリストを、データがこれらのセグメントに入力された順序で収容する。スレッド内の最初のエントリは、「ヘッド(head)」にあり、最後のものは「テール(tail)」にある。フリーリストメモリは、メモリ120a内で利用可能なセグメントのリストを含むFIFOメモリである。しかしながら、多重スレッドは、単一のメモリ内に同時に存在することができ、スレッドの各々は、コンテキストメモリ及びスレッドメモリにそれぞれ保持されているそれ自身の個別の一連のポインタ及びリンクを有する。バッファメモリ120a内に特定の回線接続に対するデータが無い場合には、バッファメモリまたはスレッドメモリのリソースはその回線接続には割り当てられず、コンテキストメモリ140a内のヘッド及びテールポインタはキャンセルされる。従って、この構成によれば、リソースをより効率良く割り当てることができ、さらに、一般的に、メモリサイズ全体をより小さいものにすることができる。
データが、メモリ120aにロードされることになる場合には、バッファコントロール136aが、必要に応じて、フリーリストメモリ150aからフリーのバッファメモリセグメントを取り出して、そのデータをそれらのバッファセグメントにロードする。それは、また、フリーリストメモリとスレッドメモリを更新する。具体的には、各セグメントが一杯になると、そのセグメントに関連するスレッドメモリは、フリーリストから割り当てられる利用可能な次のセグメントを指示するように更新される。それは、また、その回線接続用のコンテキストメモリ140aのエントリのヘッドアドレス及びバイトカウントを更新する。
データがバッファメモリ120aから取り出されると、逆の手順が次に行われる。すなわち、関連するスレッドのテール(末尾)アドレスにおいて取り出し(検索)が開始される。取り出し動作が完了すると、コンテキストメモリ140a内のテール及びバイトカウントが更新される。セグメントが開放されると、それらは、メモリ150a内のフリーリストに加え戻され、関連するスレッドメモリがクリアされる。
本実施態様では、コンテキストメモリ140aには、各回線リンクによって使用されるダイナミックバッファ120a内のバイト数が提供される。スレッドメモリ130aの動作は、それぞれの仮想接続に対するバイト数を取得するためにモニタされる。
本発明に従うインターフェースシステムは、データ転送のダイナミック(動的)な最適化を可能にする。すなわち、このシステムは、データの大きなバルク転送、及びより小さな転送に対して効率良く動作する。この最適化は、部分的には、優先順位の確立及びフロー制御規格に基づいている。
ダイナミックバッファ120aへの各書き込み動作の後には、一般的に、このバッファから情報を取り出す読み出し動作が続く。より高い優先順位の取り出し(読み出し)が最初に認識され、その後に、それより低い優先順位の取り出しが続く。優先順位内において、このシステムは、「ラウンドロビン」方式で、アクティブな回線接続エントリを連続的に巡回する。データ送信時には、1つのATMセルが、バッファメモリからネットワークリンク84aまで一度に転送される。受信データにおいて、可変データブロック(一般的には256バイト)がホストに転送され、待ち時間を最適化する。バッファが飽和し始めた場合には、データをより大きなブロックでホストコンピュータに転送することができ、転送効率を最適化して、メモリの過負荷を防止する。通常、これは、ホストの飽和の結果として生じるものであり、このために、システムバスへのアクセスが一時的に制限される。ホストのメインメモリへのより効率の良い転送モード、すなわち、より大きなブロックサイズを使用することによって、上述の構成が、オーバーフローの問題を適切に処理することは明らかである。
ネットワークインターフェースユニット54は、それぞれのホストコンピュータのシステムバスのバスマスタとして動作する。すなわち、それらは、これらのバス上で動作を開始することができる。ネットワークインターフェースユニット54aで使用されるメモリまたはレジスタ95a、100a、110a、130a、140a、150a、及び160aのそれぞれは、好ましくは、個別の物理メモリであり、そのため、これらの複数のメモリを同時にアクセスすることができるということにも注目すべきである。これによって、ネットワークインターフェースユニット54aの動作速度を高速化することができる。
上記の説明は、2つの個別のコンピュータ30aと30bの間のデータ転送に焦点をあてたものである。今度は、3つ以上のリンクされたコンピュータのクラスタ間のデータの転送について説明する。上記のプロセスは変わらない。
3つ以上のコンピュータ間の通信を経路指定するために、スイッチ82(図1)が使用される。スイッチ82の好ましい実施態様を図4に示す。スイッチは、1組の直並列変換器200を介して複数のコンピュータから入力信号を受信する。同様に、出力信号は、1連の出力用並直列変換器202を介してコンピュータに送られる。もちろん、入力及び出力信号を、コンピュータのすぐそばの種々のデータ処理装置から取得して、そこに送ることができる。例えばスイッチ82を、1つ以上の他のスイッチと相互接続することができる。さらに、これらの入力及び出力機能を、図2に詳細に示す回路90のような信号変換回路によって提供することができる。入力信号は、ダイナミックバッファ206への単一の入力を選択可能にするマルチプレクサ(MUX)204に送られる。同様に、出力信号は、適切な出力用変換器202を選択するデマルチプレクサ(DEMUX)208に送られる。MUX/DEMUX制御回路212は、ダイナミックバッファ制御回路210の動作に基づいてバッファへの、及びバッファからの信号の転送を制御する。ダイナミックバッファの動作は、ネットワークインターフェースユニット54aの動作とほぼ類似している。ダイナミックバッファ制御回路210は、図2及び図3のインターフェースユニットに関連して説明したメモリと同様な一連のメモリを含む。
具体的には、スイッチは、各入力VCIを、同じ回線接続の出力VCI、及び各出力VCI用の出力ポートにマッピングするマッピングメモリを備える。スレッドメモリ214、コンテキストメモリ218、及びアクティブ回線接続メモリは、入力VCIまたは出力VCIのいずれかに関して構成される。マッピングメモリ213は、コンテキストメモリに相互接続される。スイッチコントローラが各回線接続を確立するときには、それは、また、スイッチコンテキストメモリ(switch context memory)218、及びマッピングメモリ213に、対応するVCIによって指示される回線接続を確立するように命令する。コンテキスト/マッピングメモリ218、213は、ヘッドアドレス、テールアドレス、バイトカウント、フロー制御状態、及び送信優先順位の各VCIに関するエントリを含む。入力セルがバッファ206にロードされるべきときに、出力VCIの決定が行われると仮定する。入力VCIは、セルがダイナミックバッファ206に書き込まれる前に、メモリ213からマッピングされる出力VCIに置き換えられる。物理アドレスが所定のVCIと関連してマッピングされるデータ処理装置インターフェース54a、54b及び54cとは異なり、スイッチ82は、VCI−VCI間の直接のマッピングを担う。
図示していないが、スイッチ82と各インターフェースユニットは、システム内の種々のコンピュータ及びスイッチと通信して、過度のデータの流入を防止するフロー制御回路を備える。これらの回路は、周知の構成を使用して実施することができ、個別のデータフロー制御データラインを使用してリンクすることができる。
上記は、本発明の好ましい実施態様を詳細に説明したものである。本発明の思想及び範囲を逸脱することなく、さまざまな変更及び追加を行うことができる。例えば、説明したバッファ制御システムを変更することができ、また、それを種々の他の許容可能なバッファ制御プロトコルで代用することできる。そのようなプロトコルは、本発明に従う仮想回線接続及びそれらの対応する識別子の構築に基づいてデータを転送することができなければならない。
ATMは、利用することが可能な複数の通信規格のうちの1つに過ぎない。考慮されている他の規格に、TCP/IPがある。同様に、他のタイプのネットワークスイッチを、本発明のネットワークインターフェースユニットと共に使用することができる。最後に、「ネットワークインターフェースユニット」という用語を本明細書で使用したが、任意の許容可能なプラットフォームを本発明に従うインターフェースに対して利用することができること、及び、このインターフェースを、コンピュータ全体における常設システム、ディスク、周辺機器、あるいは他のデータ処理装置として提供することができるということを明確に考慮している。従って、上記説明は、1例に過ぎないものとして捉えられるべきものであり、本発明の範囲を限定することを意図するものではない。
Claims (19)
- システムバス及び該システムに接続された第1のメインメモリを備える第1のコンピュータ上で動作している送信アプリケーションから、第2のコンピュータ上で動作している受信アプリケーションへの転送を実行するためのコンピュータインターフェースであって、前記送信アプリケーションは、前記受信アプリケーションに送信するデータの前記メインメモリ内の送信仮想アドレスをオペレーティングシステムに提供し、前記インターフェースが、
A.マッピングメモリと、
B.送信ワークキューメモリと、
C.1.前記マッピングメモリに、前記送信仮想アドレスに対応する送信物理アドレスをロードし、及び、
2.前記送信ワークキューメモリに、各データ送信の仕様値を入力するための前記オペレーティングシステム内の手段であって、
該仕様値は、転送の識別子と前記データの宛先の識別子を備え、該転送の識別子は、また、前記マッピングメモリ内の前記送信仮想アドレスのそれぞれの位置の識別子を含むことからなる手段と、
D.前記マッピングメモリに収容されている前記物理アドレスに従って、前記第1のメインメモリをアクセスして、そこから前記データを取り出すための手段と、
E.前記取り出したデータを前記第2のアプリケーションに送信するための手段
とからなること。 - 請求項1のインターフェースが、さらに、
A.受信ワークキューメモリと、
B.前記第1のメインメモリ内の受信仮想アドレスを特定するために、前記第1のコンピュータ上で動作している受信アプリケーションに問い合わせるための前記オペレーティングシステム内の手段であって、前記第2のコンピュータ上の送信アプリケーションからこの受信アプリケーションに転送される受信データが、前記第1のメインメモリにロードされることからなる手段と、
C.1.前記マッピングメモリに、前記受信仮想アドレスに対応する前記第1のメモリ内の受信物理アドレスをロードし、及び、
2.前記受信ワークキューメモリに、各データ送信の仕様値を入力するための前記オペレーティングシステム内の手段であって、
該仕様値は、転送の識別子と前記データの宛先の識別子を備え、該転送の識別子は、また、前記マッピングメモリ内の前記受信仮想アドレスのそれぞれの位置の識別子を含むことからなる手段と、
D.前記第2のコンピュータから、前記転送識別子によって特定されるデータを受信するための手段と、
E.前記マッピングメモリに収容されている前記受信物理アドレスによって、前記第1のメインメモリをアクセスして、前記第2のコンピュータ上の前記送信アプリケーションから受信されたデータをそれらのアドレスにロードするための手段
とからなること。 - 送信手段が、予め決定された通信規格に基づいて前記第2のコンピュータに送信するために、データをフレーム化するフレーミング及びデフレーミングユニットを備える、請求項1のインターフェース。
- 各データ転送の識別子が、各仮想チャンネルの識別子によって特定される仮想回線接続を規定し、及び、送信ワークキューメモリが、各仮想回線接続に対応する位置を含むことからなる請求項2のインターフェース。
- 受信ワークキューメモリが、各仮想回線接続に対応するエントリを含む、請求項4のインターフェース。
- マッピングメモリが、各送信物理アドレスを記憶するための各仮想回線接続に対応する位置を含む、請求項5のインターフェース。
- 各マッピングメモリ、送信ワークキューメモリ、及び受信ワークキューメモリが、システムバスのアドレス空間にある、請求項2のインターフェース。
- システムバスから受信されるデータを選択的に記憶し、該システムバスに送信するための記憶されたデータを取り出すためのバッファメモリからさらになり、前記バッファメモリが、時分割方式で、各仮想回線接続に対してデータを記憶し、及び取り出すように該バッファメモリを動作させるバッファコントローラを含むことからなる請求項4のインターフェース。
- バッファメモリが、通信リンクを介して第2のコンピュータから受信されたデータを選択的に記憶すると共に、該第2のコンピュータに送信するためのデータを取り出すように構築、及び構成され、バッファコントローラが、該バッファメモリに、時分割方式で、各仮想回線接続に対して前記第2のコンピュータから受信されたデータを記憶させるように構築、構成されることからなる請求項8のインターフェース。
- さらに、ヘッドエントリとテールエントリ間の複数のエントリを規定するスレッドを含むスレッドメモリであって、該エントリの各々が、各仮想回線接続、及びセグメントアドレスのリンクされたリストを規定するエントリに対応するバッファメモリ内のアクティブなメモリセグメントを表すアドレスを構成することからなるスレッドメモリと、前記バッファメモリの対応するメモリセグメントへのロード、及びそこからの取り出しにそれぞれ基づいて、前記スレッドメモリにエントリを加え、及び、前記スレッドメモリからエントリを削除するための、バッファコントローラ内の手段とからさらになる請求項9のインターフェース。
- 記憶されたデータの無い、バッファメモリ内の占有されていないセグメントにそれぞれが対応する複数のエントリを有するフリーリストメモリからさらに構成され、前記フリーリストメモリから予め決定されたセグメントアドレスを有するエントリを除去し、同時に、前記スレッドメモリ内の前記予め決定されたセグメントアドレスを有するエントリを構築するための、バッファコントローラ内の手段からさらになる、請求項10のインターフェース。
- 複数のエントリを記憶するための、前記バッファメモリ及びシステムバスに相互接続されたコンテキストメモリからさらになり、前記各エントリは、予め決定された仮想回線接続に対応し、前記各エントリは、前記各仮想回線接続のために、データ転送優先順位を規定する情報、前記バッファメモリ内のセグメントアドレスのスレッドの先頭位置と最後の位置、及び、前記バッファメモリ内に格納されているデータ量とを収容することからなる、請求項11のインターフェース。
- 仕様値が、送信ワークキューメモリ及び受信ワークキューメモリの少なくとも1つに収容される各データ転送を識別するエントリを記憶する、システムバスに相互接続された、アクティブ回線接続メモリからさらになり、該アクティブな回線接続メモリが、新しいデータ転送が開始されるときには、新しいエントリを連続的に記憶し、既存のデータ転送が完了するときには、既存のエントリを削除するための手段を備えることからなる、請求項2のインターフェース。
- 前記アクティブ回線接続メモリ内の各エントリが、それぞれのデータ転送の優先順位の識別子を含む、請求項13のインターフェース。
- 前記送信ワークキューメモリ及び受信ワークキューメモリのそれぞれが、それぞれのポインタレジスタを備え、各ポインタレジスタが、各送信ワークキューメモリ及び受信ワークキューメモリ内の各仕様値に対応するエントリを有し、各エントリが、次に起こるデータ転送のために、仕様値の各送信ワークキューメモリ及び受信ワークキューメモリ内の位置を表すポインタを含むことからなる請求項2のインターフェース。
- システムバスと該システムバスに接続された第1のメインメモリを有する第1のコンピュータ上で動作している送信アプリケーションから、第2のコンピュータ上で動作している受信アプリケーションへの転送を実行するための方法であって、前記送信アプリケーションは、前記受信アプリケーションに送信するデータの前記メインメモリ内の送信仮想アドレスをオペレーティングシステムに提供し、前記方法が、
A.マッピングメモリを設けるステップと、
B.送信ワークキューメモリを設けるステップと、
C.前記第1のコンピュータ上で動作するソフトウエアによって、
1.前記マッピングメモリに、前記送信仮想アドレスに対応する送信物理アドレスをロードし、及び、
2.前記送信ワークキューメモリに、各データ送信の仕様値を入力するステップであって、
該仕様値は、転送の識別子と前記データの宛先の識別子を備え、該転送の識別子は、また、前記マッピングメモリ内の前記送信仮想アドレスのそれぞれの位置の識別子を含むことからなるステップと、
D.前記マッピングメモリに収容されている前記物理アドレスに従って、前記第1のメインメモリをアクセスして、そこから前記データを取り出すステップと、
E.前記取り出したデータを前記第2のアプリケーションに送信するステップ
とからなること。 - A.受信ワークキューメモリを設けるステップと、
B.前記第1のメインメモリ内の受信仮想アドレスを特定するために、前記第1のコンピュータ上で動作している受信アプリケーションに、該第1のコンピュータ上で動作するソフトウエアによって問い合わせるステップであって、前記第2のコンピュータ上の送信アプリケーションからこの受信アプリケーションに転送される受信データが、前記第1のメインメモリにロードされることになる、ステップと、
C.前記ソフトウエアシステムによって、
1.前記受信仮想アドレスに対応する前記第1のメモリ内の受信物理アドレスを、前記マッピングメモリにロードするステップと、
2.前記受信ワークキューメモリに、各データ送信の仕様値を入力するステップであって、該仕様値は、転送の識別子、及び前記データの宛先の識別子を含み、前記転送の識別子が、さらに、前記マッピングメモリ内の前記受信仮想アドレスのそれぞれの位置の識別子を含むことからなる、ステップと、
D.前記第2のコンピュータから、前記転送識別子によって特定されるデータを受信するステップと、
E.前記マッピングメモリに収容された前記受信物理アドレスにより前記第1のメインメモリをアクセスして、前記第2のコンピュータ上の前記送信アプリケーションから受信されたデータをそれらのアドレスにロードするステップ
とからさらになる、請求項16の方法。 - 前記送信するステップと、前記アクセスするステップのそれぞれが、各データ転送毎に仮想的なチャンネル識別子を構築することを含む、ATM通信規格に従ってデータをフレーム化することを含む、請求項17の方法。
- バッファメモリにデータを記憶し、及びバッファメモリからデータを取り出すことをさらに含み、前記記憶し、転送するステップが、各データ転送に対応する仮想チャンネル識別子に基づいており、さらに、各対応する仮想チャンネル識別子に関連する優先条件に基づいて、前記記憶し、転送するステップに優先順位をつけることを含む請求項18の方法。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US08/762,186 | 1996-12-04 | ||
US08/762,186 US6094712A (en) | 1996-12-04 | 1996-12-04 | Computer network interface for direct mapping of data transferred between applications on different host computers from virtual addresses to physical memory addresses application data |
PCT/US1997/022439 WO1998025210A2 (en) | 1996-12-04 | 1997-12-03 | Computer interface for direct mapping of application data |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2001505694A JP2001505694A (ja) | 2001-04-24 |
JP4090510B2 true JP4090510B2 (ja) | 2008-05-28 |
Family
ID=25064338
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP52587198A Expired - Lifetime JP4090510B2 (ja) | 1996-12-04 | 1997-12-03 | アプリケーションデータのダイレクトマッピングのためのコンピュータインターフェース |
Country Status (6)
Country | Link |
---|---|
US (1) | US6094712A (ja) |
EP (1) | EP1012712B1 (ja) |
JP (1) | JP4090510B2 (ja) |
AU (1) | AU726992B2 (ja) |
CA (1) | CA2274031C (ja) |
WO (1) | WO1998025210A2 (ja) |
Families Citing this family (37)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7284070B2 (en) * | 1997-10-14 | 2007-10-16 | Alacritech, Inc. | TCP offload network interface device |
US6795442B1 (en) * | 1998-04-23 | 2004-09-21 | Emulex Design & Manufacturing Corporation | System and method for scheduling message transmission and processing in a digital data network |
US6570850B1 (en) | 1998-04-23 | 2003-05-27 | Giganet, Inc. | System and method for regulating message flow in a digital data network |
US6515963B1 (en) * | 1999-01-27 | 2003-02-04 | Cisco Technology, Inc. | Per-flow dynamic buffer management |
US6912580B1 (en) * | 1999-01-27 | 2005-06-28 | International Business Machines Corporation | Virtual shadow briefcase in servers supporting moving embedded clients |
US7210147B1 (en) | 1999-10-05 | 2007-04-24 | Veritas Operating Corporation | IP virtualization |
WO2001025926A1 (en) * | 1999-10-05 | 2001-04-12 | Ejasent Inc. | Virtual network environment |
US6694959B1 (en) | 1999-11-19 | 2004-02-24 | Denso Corporation | Ignition and injection control system for internal combustion engine |
US7596784B2 (en) * | 2000-09-12 | 2009-09-29 | Symantec Operating Corporation | Method system and apparatus for providing pay-per-use distributed computing resources |
SE517816C2 (sv) * | 2000-10-27 | 2002-07-16 | Terraplay Systems Ab | Metod och anordning för en applikation |
US20020159468A1 (en) * | 2001-04-27 | 2002-10-31 | Foster Michael S. | Method and system for administrative ports in a routing device |
WO2002089384A2 (en) * | 2001-04-27 | 2002-11-07 | The Boeing Company | Using virtual identifiers to route data and process data routed through a network |
US6789143B2 (en) * | 2001-09-24 | 2004-09-07 | International Business Machines Corporation | Infiniband work and completion queue management via head and tail circular buffers with indirect work queue entries |
US7124198B2 (en) * | 2001-10-30 | 2006-10-17 | Microsoft Corporation | Apparatus and method for scaling TCP off load buffer requirements by segment size |
US7895239B2 (en) * | 2002-01-04 | 2011-02-22 | Intel Corporation | Queue arrays in network devices |
US20030127185A1 (en) * | 2002-01-04 | 2003-07-10 | Bakly Walter N. | Method for applying retroreflective target to a surface |
KR20030080443A (ko) * | 2002-04-08 | 2003-10-17 | (주) 위즈네트 | 하드웨어 프로토콜 프로세싱 로직으로 구현된 인터넷 통신프로토콜 장치 및 상기 장치를 통한 데이터 병렬 처리 방법 |
US7007103B2 (en) * | 2002-04-30 | 2006-02-28 | Microsoft Corporation | Method to offload a network stack |
US7181531B2 (en) * | 2002-04-30 | 2007-02-20 | Microsoft Corporation | Method to synchronize and upload an offloaded network stack connection with a network stack |
GB2395307A (en) * | 2002-11-15 | 2004-05-19 | Quadrics Ltd | Virtual to physical memory mapping in network interfaces |
US20050097242A1 (en) * | 2003-10-30 | 2005-05-05 | International Business Machines Corporation | Method and system for internet transport acceleration without protocol offload |
US9558042B2 (en) * | 2004-03-13 | 2017-01-31 | Iii Holdings 12, Llc | System and method providing object messages in a compute environment |
US20070266388A1 (en) | 2004-06-18 | 2007-11-15 | Cluster Resources, Inc. | System and method for providing advanced reservations in a compute environment |
WO2006053093A2 (en) | 2004-11-08 | 2006-05-18 | Cluster Resources, Inc. | System and method of providing system jobs within a compute environment |
US7783880B2 (en) * | 2004-11-12 | 2010-08-24 | Microsoft Corporation | Method and apparatus for secure internet protocol (IPSEC) offloading with integrated host protocol stack management |
US9231886B2 (en) | 2005-03-16 | 2016-01-05 | Adaptive Computing Enterprises, Inc. | Simple integration of an on-demand compute environment |
EP1872249B1 (en) | 2005-04-07 | 2016-12-07 | Adaptive Computing Enterprises, Inc. | On-demand access to compute resources |
DE602006013128D1 (de) | 2005-06-15 | 2010-05-06 | Solarflare Comm Inc | Empfangen von daten gemäss eines datentransferprotokolls von daten, die ein beliebiges einer mehrzahl von empgangsgeräten gerichtet sind |
US7904563B2 (en) * | 2006-03-31 | 2011-03-08 | Microsoft Corporation | Establishing and utilizing terminal server dynamic virtual channels |
US11720290B2 (en) | 2009-10-30 | 2023-08-08 | Iii Holdings 2, Llc | Memcached server functionality in a cluster of data processing nodes |
CN105701906B (zh) * | 2014-11-27 | 2018-07-24 | 珠海汇金科技股份有限公司 | 一种基于指纹密码锁的自助设备安全管理方法 |
US9442674B1 (en) | 2015-11-20 | 2016-09-13 | International Business Machines Corporation | Using a plurality of sub-buffers and a free segment list to allocate segments to a plurality of threads to use for writing data |
US9852075B2 (en) | 2015-11-20 | 2017-12-26 | International Business Machines Corporation | Allocate a segment of a buffer to each of a plurality of threads to use for writing data |
US9483410B1 (en) | 2015-11-20 | 2016-11-01 | International Business Machines Corporation | Utilization based multi-buffer dynamic adjustment management |
US9571578B1 (en) | 2015-11-20 | 2017-02-14 | International Business Machines Corporation | Utilization based multi-buffer self-calibrated dynamic adjustment management |
JPWO2023047436A1 (ja) * | 2021-09-21 | 2023-03-30 | ||
US20230133723A1 (en) * | 2021-11-02 | 2023-05-04 | Arteris, Inc. | System and method for event messages in a cache coherent interconnect |
Family Cites Families (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2880271B2 (ja) * | 1990-08-17 | 1999-04-05 | 株式会社日立製作所 | 帯域制御方法および回路 |
US5155809A (en) * | 1989-05-17 | 1992-10-13 | International Business Machines Corp. | Uncoupling a central processing unit from its associated hardware for interaction with data handling apparatus alien to the operating system controlling said unit and hardware |
US5233606A (en) * | 1991-08-02 | 1993-08-03 | At&T Bell Laboratories | Arrangement for controlling shared-buffer-memory overflow in a multi-priority environment |
US5426639A (en) * | 1991-11-29 | 1995-06-20 | At&T Corp. | Multiple virtual FIFO arrangement |
US5243596A (en) * | 1992-03-18 | 1993-09-07 | Fischer & Porter Company | Network architecture suitable for multicasting and resource locking |
JPH0619785A (ja) * | 1992-03-27 | 1994-01-28 | Matsushita Electric Ind Co Ltd | 分散共有仮想メモリーとその構成方法 |
US5825765A (en) * | 1992-03-31 | 1998-10-20 | Fore Systems, Inc. | Communication network based on ATM for general purpose computers |
JPH0637797A (ja) * | 1992-05-20 | 1994-02-10 | Xerox Corp | パケット交換網の予約リング機構 |
US5555387A (en) * | 1995-06-06 | 1996-09-10 | International Business Machines Corporation | Method and apparatus for implementing virtual memory having multiple selected page sizes |
US5623700A (en) * | 1994-04-06 | 1997-04-22 | Dell, Usa L.P. | Interface circuit having zero latency buffer memory and cache memory information transfer |
US5682553A (en) * | 1995-04-14 | 1997-10-28 | Mitsubishi Electric Information Technology Center America, Inc. | Host computer and network interface using a two-dimensional per-application list of application level free buffers |
US5659798A (en) * | 1996-02-02 | 1997-08-19 | Blumrich; Matthias Augustin | Method and system for initiating and loading DMA controller registers by using user-level programs |
US5749095A (en) * | 1996-07-01 | 1998-05-05 | Sun Microsystems, Inc. | Multiprocessing system configured to perform efficient write operations |
-
1996
- 1996-12-04 US US08/762,186 patent/US6094712A/en not_active Expired - Lifetime
-
1997
- 1997-12-03 AU AU53767/98A patent/AU726992B2/en not_active Ceased
- 1997-12-03 WO PCT/US1997/022439 patent/WO1998025210A2/en active IP Right Grant
- 1997-12-03 JP JP52587198A patent/JP4090510B2/ja not_active Expired - Lifetime
- 1997-12-03 EP EP97950879.3A patent/EP1012712B1/en not_active Expired - Lifetime
- 1997-12-03 CA CA002274031A patent/CA2274031C/en not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
WO1998025210A2 (en) | 1998-06-11 |
EP1012712A2 (en) | 2000-06-28 |
EP1012712B1 (en) | 2015-08-26 |
WO1998025210A3 (en) | 1998-11-19 |
JP2001505694A (ja) | 2001-04-24 |
CA2274031A1 (en) | 1998-06-11 |
US6094712A (en) | 2000-07-25 |
AU5376798A (en) | 1998-06-29 |
CA2274031C (en) | 2005-02-08 |
AU726992B2 (en) | 2000-11-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP4090510B2 (ja) | アプリケーションデータのダイレクトマッピングのためのコンピュータインターフェース | |
US5502719A (en) | Path allocation system and method having double link list queues implemented with a digital signal processor (DSP) for a high performance fiber optic switch | |
US5949785A (en) | Network access communications system and methodology | |
US5875352A (en) | Method and apparatus for multiple channel direct memory access control | |
CA2329542C (en) | System and method for scheduling message transmission and processing in a digital data network | |
US6137807A (en) | Dual bank queue memory and queue control system | |
JP4852194B2 (ja) | デジタルデータネットワークにおけるメッセージフローを調整するシステムおよび方法 | |
US5740448A (en) | Method and apparatus for exclusive access to shared data structures through index referenced buffers | |
US5751951A (en) | Network interface | |
US6072798A (en) | Network access communication switch | |
US6189053B1 (en) | Communication control system utilizing a shared buffer managed by high and low level protocols | |
US6414961B1 (en) | ATM switching with virtual circuit FIFO buffers | |
WO1995011554A1 (en) | Error detection and correction apparatus for an asynchronous transfer mode (atm) network device | |
JP2002520907A (ja) | ネットワークでのパケット交換のためのシステム及び方法 | |
EP0622739A1 (en) | System for cascading data switches in a communication node | |
US5732082A (en) | System and method for multi-frame received queuing with sorting in an asynchronous transfer mode (ATM) system | |
JPH0818567A (ja) | データの交換処理方法及び装置 | |
AU660259B2 (en) | A queueing system for switches having "fast-circuit" properties | |
JP2000349790A (ja) | Atm通信装置およびそのセル処理方法 | |
US7313146B2 (en) | Transparent data format within host device supporting differing transaction types | |
US20020089981A1 (en) | Expandable self-route multi-memory packet switch with a configurable multicast mechanism | |
JP2953362B2 (ja) | Lanのスイッチング装置 | |
JPH0693685B2 (ja) | フレーム選択受信方法 | |
CN118631766A (zh) | 一种交换机高效多端口并行共享缓存管理系统 | |
KR0159365B1 (ko) | 바이패싱 기능을 갖는 에이티엠 셀 분배 및 집속장치 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20041111 |
|
A711 | Notification of change in applicant |
Free format text: JAPANESE INTERMEDIATE CODE: A711 Effective date: 20041111 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20070313 |
|
A601 | Written request for extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A601 Effective date: 20070327 |
|
A602 | Written permission of extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A602 Effective date: 20070521 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20070829 |
|
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: 20080129 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20080227 |
|
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: 20110307 Year of fee payment: 3 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120307 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120307 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130307 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130307 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20140307 Year of fee payment: 6 |
|
RD02 | Notification of acceptance of power of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: R3D02 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
S111 | Request for change of ownership or part of ownership |
Free format text: JAPANESE INTERMEDIATE CODE: R313113 |
|
R350 | Written notification of registration of transfer |
Free format text: JAPANESE INTERMEDIATE CODE: R350 |
|
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 |