JP4090510B2 - アプリケーションデータのダイレクトマッピングのためのコンピュータインターフェース - Google Patents

アプリケーションデータのダイレクトマッピングのためのコンピュータインターフェース Download PDF

Info

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
Application number
JP52587198A
Other languages
English (en)
Other versions
JP2001505694A (ja
Inventor
フォレット,デイビッド,アール
グティエレス,マリア,シー
プロハスカ,リチャード,エフ
Original Assignee
エミュレックス デザイン アンド マニュファクチャリング コーポレイション
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by エミュレックス デザイン アンド マニュファクチャリング コーポレイション filed Critical エミュレックス デザイン アンド マニュファクチャリング コーポレイション
Publication of JP2001505694A publication Critical patent/JP2001505694A/ja
Application granted granted Critical
Publication of JP4090510B2 publication Critical patent/JP4090510B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/546Message passing systems or structures, e.g. queues
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/10Address translation
    • G06F12/1081Address translation for peripheral access to main memory, e.g. direct memory access [DMA]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04QSELECTING
    • H04Q11/00Selecting arrangements for multiplex systems
    • H04Q11/04Selecting arrangements for multiplex systems for time-division multiplexing
    • H04Q11/0428Integrated services digital network, i.e. systems for transmission of different types of digitised signals, e.g. speech, data, telecentral, television signals
    • H04Q11/0478Provisions for broadband connections
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/54Store-and-forward switching systems 
    • H04L12/56Packet switching systems
    • H04L12/5601Transfer mode dependent, e.g. ATM
    • H04L2012/5614User Network Interface
    • H04L2012/5616Terminal equipment, e.g. codecs, synch.
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/54Store-and-forward switching systems 
    • H04L12/56Packet switching systems
    • H04L12/5601Transfer mode dependent, e.g. ATM
    • H04L2012/5638Services, e.g. multimedia, GOS, QOS
    • H04L2012/5646Cell characteristics, e.g. loss, delay, jitter, sequence integrity
    • H04L2012/5652Cell construction, e.g. including header, packetisation, depacketisation, assembly, reassembly
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/54Store-and-forward switching systems 
    • H04L12/56Packet switching systems
    • H04L12/5601Transfer mode dependent, e.g. ATM
    • H04L2012/5678Traffic aspects, e.g. arbitration, load balancing, smoothing, buffer management
    • H04L2012/5681Buffer or queue management

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Computer And Data Communications (AREA)
  • Devices For Executing Special Programs (AREA)
  • Stored Programmes (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のメインメモリを備える第1のコンピュータ上で動作している送信アプリケーションから、第2のコンピュータ上で動作している受信アプリケーションへの転送を実行するためのコンピュータインターフェースであって、前記送信アプリケーションは、前記受信アプリケーションに送信するデータの前記メインメモリ内の送信仮想アドレスをオペレーティングシステムに提供し、前記インターフェースが、
    A.マッピングメモリと、
    B.送信ワークキューメモリと、
    C.1.前記マッピングメモリに、前記送信仮想アドレスに対応する送信物理アドレスをロードし、及び、
    2.前記送信ワークキューメモリに、各データ送信の仕様値を入力するための前記オペレーティングシステム内の手段であって、
    該仕様値は、転送の識別子と前記データの宛先の識別子を備え、該転送の識別子は、また、前記マッピングメモリ内の前記送信仮想アドレスのそれぞれの位置の識別子を含むことからなる手段と、
    D.前記マッピングメモリに収容されている前記物理アドレスに従って、前記第1のメインメモリをアクセスして、そこから前記データを取り出すための手段と、
    E.前記取り出したデータを前記第2のアプリケーションに送信するための手段
    とからなること。
  2. 請求項1のインターフェースが、さらに、
    A.受信ワークキューメモリと、
    B.前記第1のメインメモリ内の受信仮想アドレスを特定するために、前記第1のコンピュータ上で動作している受信アプリケーションに問い合わせるための前記オペレーティングシステム内の手段であって、前記第2のコンピュータ上の送信アプリケーションからこの受信アプリケーションに転送される受信データが、前記第1のメインメモリにロードされることからなる手段と、
    C.1.前記マッピングメモリに、前記受信仮想アドレスに対応する前記第1のメモリ内の受信物理アドレスをロードし、及び、
    2.前記受信ワークキューメモリに、各データ送信の仕様値を入力するための前記オペレーティングシステム内の手段であって、
    該仕様値は、転送の識別子と前記データの宛先の識別子を備え、該転送の識別子は、また、前記マッピングメモリ内の前記受信仮想アドレスのそれぞれの位置の識別子を含むことからなる手段と、
    D.前記第2のコンピュータから、前記転送識別子によって特定されるデータを受信するための手段と、
    E.前記マッピングメモリに収容されている前記受信物理アドレスによって、前記第1のメインメモリをアクセスして、前記第2のコンピュータ上の前記送信アプリケーションから受信されたデータをそれらのアドレスにロードするための手段
    とからなること。
  3. 送信手段が、予め決定された通信規格に基づいて前記第2のコンピュータに送信するために、データをフレーム化するフレーミング及びデフレーミングユニットを備える、請求項1のインターフェース。
  4. 各データ転送の識別子が、各仮想チャンネルの識別子によって特定される仮想回線接続を規定し、及び、送信ワークキューメモリが、各仮想回線接続に対応する位置を含むことからなる請求項のインターフェース。
  5. 受信ワークキューメモリが、各仮想回線接続に対応するエントリを含む、請求項のインターフェース。
  6. マッピングメモリが、各送信物理アドレスを記憶するための各仮想回線接続に対応する位置を含む、請求項のインターフェース。
  7. 各マッピングメモリ、送信ワークキューメモリ、及び受信ワークキューメモリが、システムバスのアドレス空間にある、請求項2のインターフェース。
  8. システムバスから受信されるデータを選択的に記憶し、該システムバスに送信するための記憶されたデータを取り出すためのバッファメモリからさらになり、前記バッファメモリが、時分割方式で、各仮想回線接続に対してデータを記憶し、及び取り出すように該バッファメモリを動作させるバッファコントローラを含むことからなる請求項のインターフェース。
  9. バッファメモリが、通信リンクを介して第2のコンピュータから受信されたデータを選択的に記憶すると共に、該第2のコンピュータに送信するためのデータを取り出すように構築、及び構成され、バッファコントローラが、該バッファメモリに、時分割方式で、各仮想回線接続に対して前記第2のコンピュータから受信されたデータを記憶させるように構築、構成されることからなる請求項のインターフェース。
  10. さらに、ヘッドエントリとテールエントリ間の複数のエントリを規定するスレッドを含むスレッドメモリであって、該エントリの各々が、各仮想回線接続、及びセグメントアドレスのリンクされたリストを規定するエントリに対応するバッファメモリ内のアクティブなメモリセグメントを表すアドレスを構成することからなるスレッドメモリと、前記バッファメモリの対応するメモリセグメントへのロード、及びそこからの取り出しにそれぞれ基づいて、前記スレッドメモリにエントリを加え、及び、前記スレッドメモリからエントリを削除するための、バッファコントローラ内の手段とからさらになる請求項のインターフェース。
  11. 記憶されたデータの無い、バッファメモリ内の占有されていないセグメントにそれぞれが対応する複数のエントリを有するフリーリストメモリからさらに構成され、前記フリーリストメモリから予め決定されたセグメントアドレスを有するエントリを除去し、同時に、前記スレッドメモリ内の前記予め決定されたセグメントアドレスを有するエントリを構築するための、バッファコントローラ内の手段からさらになる、請求項10のインターフェース。
  12. 複数のエントリを記憶するための、前記バッファメモリ及びシステムバスに相互接続されたコンテキストメモリからさらになり、前記各エントリは、予め決定された仮想回線接続に対応し、前記各エントリは、前記各仮想回線接続のために、データ転送優先順位を規定する情報、前記バッファメモリ内のセグメントアドレスのスレッドの先頭位置と最後の位置、及び、前記バッファメモリ内に格納されているデータ量とを収容することからなる、請求項11のインターフェース。
  13. 仕様値が、送信ワークキューメモリ及び受信ワークキューメモリの少なくとも1つに収容される各データ転送を識別するエントリを記憶する、システムバスに相互接続された、アクティブ回線接続メモリからさらになり、該アクティブな回線接続メモリが、新しいデータ転送が開始されるときには、新しいエントリを連続的に記憶し、既存のデータ転送が完了するときには、既存のエントリを削除するための手段を備えることからなる、請求項2のインターフェース。
  14. 前記アクティブ回線接続メモリ内の各エントリが、それぞれのデータ転送の優先順位の識別子を含む、請求項13のインターフェース。
  15. 前記送信ワークキューメモリ及び受信ワークキューメモリのそれぞれが、それぞれのポインタレジスタを備え、各ポインタレジスタが、各送信ワークキューメモリ及び受信ワークキューメモリ内の各仕様値に対応するエントリを有し、各エントリが、次に起こるデータ転送のために、仕様値の各送信ワークキューメモリ及び受信ワークキューメモリ内の位置を表すポインタを含むことからなる請求項2のインターフェース。
  16. システムバスと該システムバスに接続された第1のメインメモリを有する第1のコンピュータ上で動作している送信アプリケーションから、第2のコンピュータ上で動作している受信アプリケーションへの転送を実行するための方法であって、前記送信アプリケーションは、前記受信アプリケーションに送信するデータの前記メインメモリ内の送信仮想アドレスをオペレーティングシステムに提供し、前記方法が、
    A.マッピングメモリを設けるステップと、
    B.送信ワークキューメモリを設けるステップと、
    C.前記第1のコンピュータ上で動作するソフトウエアによって、
    1.前記マッピングメモリに、前記送信仮想アドレスに対応する送信物理アドレスをロードし、及び、
    2.前記送信ワークキューメモリに、各データ送信の仕様値を入力するステップであって、
    該仕様値は、転送の識別子と前記データの宛先の識別子を備え、該転送の識別子は、また、前記マッピングメモリ内の前記送信仮想アドレスのそれぞれの位置の識別子を含むことからなるステップと、
    D.前記マッピングメモリに収容されている前記物理アドレスに従って、前記第1のメインメモリをアクセスして、そこから前記データを取り出すステップと、
    E.前記取り出したデータを前記第2のアプリケーションに送信するステップ
    とからなること。
  17. A.受信ワークキューメモリを設けるステップと、
    B.前記第1のメインメモリ内の受信仮想アドレスを特定するために、前記第1のコンピュータ上で動作している受信アプリケーションに、該第1のコンピュータ上で動作するソフトウエアによって問い合わせるステップであって、前記第2のコンピュータ上の送信アプリケーションからこの受信アプリケーションに転送される受信データが、前記第1のメインメモリにロードされることになる、ステップと、
    C.前記ソフトウエアシステムによって、
    1.前記受信仮想アドレスに対応する前記第1のメモリ内の受信物理アドレスを、前記マッピングメモリにロードするステップと、
    2.前記受信ワークキューメモリに、各データ送信の仕様値を入力するステップであって、該仕様値は、転送の識別子、及び前記データの宛先の識別子を含み、前記転送の識別子が、さらに、前記マッピングメモリ内の前記受信仮想アドレスのそれぞれの位置の識別子を含むことからなる、ステップと、
    D.前記第2のコンピュータから、前記転送識別子によって特定されるデータを受信するステップと、
    E.前記マッピングメモリに収容された前記受信物理アドレスにより前記第1のメインメモリをアクセスして、前記第2のコンピュータ上の前記送信アプリケーションから受信されたデータをそれらのアドレスにロードするステップ
    とからさらになる、請求項16の方法。
  18. 前記送信するステップと、前記アクセスするステップのそれぞれが、各データ転送毎に仮想的なチャンネル識別子を構築することを含む、ATM通信規格に従ってデータをフレーム化することを含む、請求項17の方法。
  19. バッファメモリにデータを記憶し、及びバッファメモリからデータを取り出すことをさらに含み、前記記憶し、転送するステップが、各データ転送に対応する仮想チャンネル識別子に基づいており、さらに、各対応する仮想チャンネル識別子に関連する優先条件に基づいて、前記記憶し、転送するステップに優先順位をつけることを含む請求項18の方法。
JP52587198A 1996-12-04 1997-12-03 アプリケーションデータのダイレクトマッピングのためのコンピュータインターフェース Expired - Lifetime JP4090510B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
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
US08/762,186 1996-12-04
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)

* Cited by examiner, † Cited by third party
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
US6912580B1 (en) * 1999-01-27 2005-06-28 International Business Machines Corporation Virtual shadow briefcase in servers supporting moving embedded clients
US6515963B1 (en) * 1999-01-27 2003-02-04 Cisco Technology, Inc. Per-flow dynamic buffer management
US6891837B1 (en) * 1999-10-05 2005-05-10 Veritas Operating Corporation Virtual endpoint
US7210147B1 (en) 1999-10-05 2007-04-24 Veritas Operating Corporation IP virtualization
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
AU2002307418A1 (en) * 2001-04-27 2002-11-11 The Boeing Company Using virtual identifiers to route data and process data routed through a network
US20040004966A1 (en) * 2001-04-27 2004-01-08 Foster Michael S. Using virtual identifiers to route transmitted data 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
US20030127185A1 (en) * 2002-01-04 2003-07-10 Bakly Walter N. Method for applying retroreflective target to a surface
US7895239B2 (en) * 2002-01-04 2011-02-22 Intel Corporation Queue arrays in network devices
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
WO2005089236A2 (en) * 2004-03-13 2005-09-29 Cluster Resources, Inc. System and method for providing intelligent pre-staging of data 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
US8271980B2 (en) 2004-11-08 2012-09-18 Adaptive Computing Enterprises, 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
ES2614751T3 (es) 2005-04-07 2017-06-01 Iii Holdings 12, Llc Acceso bajo demanda a recursos informáticos
ATE462264T1 (de) * 2005-06-15 2010-04-15 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 珠海汇金科技股份有限公司 一种基于指纹密码锁的自助设备安全管理方法
US9483410B1 (en) 2015-11-20 2016-11-01 International Business Machines Corporation Utilization based multi-buffer dynamic adjustment management
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
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)

* Cited by examiner, † Cited by third party
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

Also Published As

Publication number Publication date
WO1998025210A3 (en) 1998-11-19
CA2274031A1 (en) 1998-06-11
AU726992B2 (en) 2000-11-30
AU5376798A (en) 1998-06-29
JP2001505694A (ja) 2001-04-24
EP1012712A2 (en) 2000-06-28
EP1012712B1 (en) 2015-08-26
WO1998025210A2 (en) 1998-06-11
US6094712A (en) 2000-07-25
CA2274031C (en) 2005-02-08

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
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
AU660259B2 (en) A queueing system for switches having "fast-circuit" properties
JP2000349790A (ja) Atm通信装置およびそのセル処理方法
JPH0818567A (ja) データの交換処理方法及び装置
US7313146B2 (en) Transparent data format within host device supporting differing transaction types
US20040081158A1 (en) Centralized switching fabric scheduler supporting simultaneous updates
US20020089981A1 (en) Expandable self-route multi-memory packet switch with a configurable multicast mechanism
JP2953362B2 (ja) Lanのスイッチング装置
JPH0693685B2 (ja) フレーム選択受信方法
KR0159365B1 (ko) 바이패싱 기능을 갖는 에이티엠 셀 분배 및 집속장치
KR20020021226A (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