JP5220974B2 - ハードウェア実行又はオペレーティングシステム機能の加速のための装置及び方法 - Google Patents

ハードウェア実行又はオペレーティングシステム機能の加速のための装置及び方法 Download PDF

Info

Publication number
JP5220974B2
JP5220974B2 JP2001530282A JP2001530282A JP5220974B2 JP 5220974 B2 JP5220974 B2 JP 5220974B2 JP 2001530282 A JP2001530282 A JP 2001530282A JP 2001530282 A JP2001530282 A JP 2001530282A JP 5220974 B2 JP5220974 B2 JP 5220974B2
Authority
JP
Japan
Prior art keywords
request
network
storage device
service
subsystem
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
Application number
JP2001530282A
Other languages
English (en)
Other versions
JP2003511777A5 (ja
JP2003511777A (ja
Inventor
バレル、ジェフリー・エス
ウィリス、トレバー
ベンハム、サイモン
クーパー、マイケル
マイヤー、ジョナサン
アストン、クリストファー・ジェイ
ウィンフィールド、ジョン
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Hitachi Data Systems Engineering UK Ltd
Original Assignee
Hitachi Data Systems Engineering UK Ltd
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 Hitachi Data Systems Engineering UK Ltd filed Critical Hitachi Data Systems Engineering UK Ltd
Publication of JP2003511777A publication Critical patent/JP2003511777A/ja
Publication of JP2003511777A5 publication Critical patent/JP2003511777A5/ja
Application granted granted Critical
Publication of JP5220974B2 publication Critical patent/JP5220974B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/18File system types
    • G06F16/182Distributed file systems
    • G06F16/1824Distributed file systems implemented using Network-attached Storage [NAS] architecture
    • G06F16/183Provision of network file services by network file servers, e.g. by using NFS, CIFS
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/40Network security protocols
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/12Protocol engines
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/08Protocols for interworking; Protocol conversion
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/30Definitions, standards or architectural aspects of layered protocol stacks
    • H04L69/32Architecture of open systems interconnection [OSI] 7-layer type protocol stacks, e.g. the interfaces between the data link level and the physical level
    • H04L69/322Intralayer communication protocols among peer entities or protocol data unit [PDU] definitions
    • H04L69/329Intralayer communication protocols among peer entities or protocol data unit [PDU] definitions in the application layer [OSI layer 7]

Description

発明の技術分野
本発明は、オペレーティングシステム機能及びハードウェア実行、あるいは、そのような機能の加速に関する。
発明の背景技術
コンピュータのオペレーティングシステムは、コンピュータが外部供給源と通信することを可能にする。オペレーティングシステムは、典型的に、キーボード、ディスプレイ、ディスク記憶装置、ネットワーク設備、プリンタ、モデムなどを含むコンピュータ使用法に結び付けられたアイテムの直接制御を扱う。コンピュータのオペレーティングシステムは、典型的に、中央演算処理装置(CPU)にローカル及びネットワークファイルシステム、メモリ、周辺装置ドライバ、及びアプリケーション処理を含む処理を管理することを含むタスクを実行させるように設計される。これらのすべての機能に対する責任をCPU上に置くことは、特に、オペレーティングシステムが例えば、Windows NT(登録商標)(ワシントン州レドモンドのマイクロソフト社から入手可能)、Unix(登録商標)(カリフォルニア州サンタクルーズのSCO Softwareから、及びマサチューセッツ州ケンブリッジのRed Hat Softwareの「Linux」と呼ばれるバージョンを含む多くの供給源から利用可能)、及びNetWare(ユタ州プロヴォのNovel1から利用可能)のように高性能であるとき、重大な処理負担を強要する。負担がアプリケーション結び付けられた以外の処理を実行するCPU上に置かれると、アプリケーションのパフォーマンスが低下し得る結果となり、アプリケーションを実行するのに利用可能なCPU時間が益々小さくなる。それに加えて、CPUの外部装置のスループットは、オペレーティングシステムがこれらの装置を管理する責任をCPU上に置くとき、CPUによって強要される制限を受けやすい。さらに、CPUを含み、オペレーティングシステムを実行し、装置に結び付けられるソフトウエア−ハードウェアシステム全体の信頼性は、とりわけ、オペレーティングシステムに依存する。オペレーティングシステムに内在する複雑さに起因して、ソフトウエア−ハードウェアシステム全体の安定性を害する不測の状態が発生し得る。
発明の概要
この概要で列挙される本発明のある態様は、これより同日に提出された他の出願の目的である。本発明の一態様では、ネットワークを介してサービス要求を扱うための装置が提供され、ネットワークはプロトコルを利用する。この態様では、該装置は、
a.ネットワークプロトコルを用いてネットワークサービス要求を送受信するためのネットワークサブシステムと、
b.前記ネットワークサービス要求を満たすための、前記ネットワークサブシステムに接続されるサービスサブシステムとを含む。
同じく、この態様では、ネットワークサブシステムとサービスサブシステムの少なくとも一つは、ハードウェアで実行され、ネットワークサブシステムとサービスサブシステムの他方は、任意的にハードウェアで加速されてもよい。その代わりに、又はそれに加えて、サービスサブシステムは、ハードウェアで加速されてもよい。
関連する実施の形態では、サービス要求は、長期の電子記憶装置へのデータの読み込み及び書込みの一つを含み、追加的に、ネットワークサブシステムはハードウェアで加速される。同じく、追加的に、長期の記憶装置は、ネットワークを介してコンピュータにアクセス可能なネットワークディスク記憶装置である。その代わりに、長期の記憶装置は、ローカルコンピュータにアクセス可能であるが、ネットワークを介して他のあらゆるコンピュータにはアクセス不可能なローカルディスク記憶装置である。同じく追加的に、長期の記憶装置は、ネットワークを介して電子メールの供給に関連し、あるいは、それはネットワーク上のウェブページへのアクセスを供給してもよい。
同様に、サービス要求は、記憶装置システムのデータのアクセスを含んでもよく、サービスサブシステムもまた、記憶装置システムのデータの記憶を管理するためのハードウェアで実行されたモジュールを含んでもよい。したがって、一実施の形態では、そのような装置がファイルサーバーであって、記憶装置システムのデータがファイルに配列され、サービス要求は、記憶装置システムのファイルへの要求を含み、サービスサブシステムもまた、記憶装置システムに関連したファイルシステムを管理するためのハードウェアで実行されたモジュールを含む。
もう一つの関連する態様では、プロトコルは、ファイルシステムプロトコルを含み、ファイルシステムプロトコルは、ファイル読み込み及びファイル書込みを含む操作を定義する。装置がウェブサーバーであってもよく、記憶装置システムのデータがウェブページを含んでもよく、サービス要求は、記憶装置システム内のウェブページのための要求を含んでもよい。同様に、プロトコルがIPを含んでもよい。さらなる関連する態様では、記憶装置システムが記憶装置プロトコルを有し、サービスサブシステムは、記憶装置システムと相互接続するためのハードウェアで実行されたモジュールを含む。
もう一つの態様では、ネットワークを介してデータを送受信するためのサブシステムであって、ネットワークは層3及び4の少なくとも一つを有するプロトコルを用い、サブシステムは、
ネットワークからカプセル収納データを受信し、プロトコルに従ってそのようなデータをカプセルから出す受信器と、
プロトコルに従ってデータをカプセルに収納し、ネットワークを介してカプセル収納データを送信する送信器とを含む。
受信器及び送信器の少なくとも一つはハードウェアで実行され、その代わりに、又はそれに加えて、受信器及び送信器の少なくとも一つはハードウェアで加速される。さらなる実施の形態では、ネットワークは、TCP/IPプロトコルを用いる。関連する実施の形態では、データは、ネットワークを介してパケットで受信され、各パケットはプロトコルヘッダを有し、サブシステムは、また、受信器によって受信される各パケットのプロトコルヘッダ内に含まれる情報から独特な接続を決定する接続識別子を含む。もう一つの関連する実施の形態では、カプセル収納データは、ネットワーク接続に関連し、サブシステムは、接続の状態を格納する、ネットワーク接続に関連したメモリ領域をさらに含む。
もう一つの関連する態様では、記憶装置アクセス要求を生成し得るネットワークと記憶装置配置を相互接続するためのサービスサブシステムが提供される。この態様のサービスサブシステムは、
a.ネットワークサービス要求を受信し、そのようなサービス要求を満たし、そうして、データ記憶装置アクセス要求を発することができるサービスモジュールと、
b.前記サービスモジュールからデータ記憶装置アクセス要求を受信し、そのような記憶装置アクセス要求を満たし、そうして、記憶装置配置アクセス要求を発することができる、該サービスモジュールに接続されたファイルシステムモジュールと、
c.前記ファイルシステムモジュールから記憶装置配置アクセス要求を受信し、そのような記憶装置配置アクセス要求を満たすために、記憶装置配置を制御する、該ファイルシステムモジュールに接続された記憶装置モジュールとを含む。
モジュールの少なくとも一つはハードウェアで実行され、その代わりに、又はそれに加えて、モジュールの少なくとも一つは、ハードウェアで加速される。関連する実施の形態では、サービスモジュールは、
i. ネットワークサービス要求を受信し、そのような要求が適切な否か決定し、もし適切ならば、情報が利用可能か否か応答し、さもなければ、データ記憶装置アクセス要求を発する、受信制御エンジンと、
ii. 前記受信制御エンジンからの命令に基づいて、ネットワークサービス応答を生成し、前記データ記憶装置アクセス要求へのデータ記憶装置アクセス応答がある場合、該データ記憶装置アクセス応答を処理する、送信制御エンジンとを含む。
エンジンの少なくとも一つはハードウェアで実行され、その代わりに、又はそれに加えて、エンジンの少なくとも一つはハードウェアで加速される。他の関連する実施の形態では、サービスサブシステムは、コンピュータのマザーボードに直接統合され、又は、コンピュータに接続され得るアダプタカードに統合される。
もう一つの態様では、ネットワークサービス要求を受信し、そのようなサービス要求を満たすサービスモジュールが提供される。そのサービスモジュールは、
a.ネットワークサービスを受信し、そのような要求が適切であるか否かを決定し、もし適切ならば、情報が利用可能であるか否かを応答し、さもなければ、データ記憶装置アクセス要求を発する、受信制御エンジンと、
b.前記受信制御エンジンからの命令に基づいて、ネットワークサービス応答を受信し、前記データ記憶装置アクセス要求へのデータ記憶装置アクセス応答がある場合、該データ記憶装置アクセス応答を処理する、送信制御エンジンとを含む。
エンジンの少なくとも一つはハードウェアで実行され、その代わりに、又はそれに加えて、エンジンの少なくとも一つはハードウェアで加速される。関連する実施の形態では、ネットワークサービス要求は、CIFSプロトコル、SMBプロトコル、HTTPプロトコル、NFSプロトコル、FCPプロトコル、又はSMTPプロトコルである。さらに関連する実施の形態では、サービスモジュールは、受信器によって受信されたネットワーク要求が該要求を発する権限を有する情報源から発せられたか否かを決定する認証エンジンを含む。まださらなる実施の形態では、認証エンジンは、受信器によって受信されたネットワーク要求が要求された動作を実行する権限を有する情報源から発せられたか否かを決定する。同じく、サービスモジュールは、コンピュータのマザーボードに直接統合され、又は、コンピュータに接続され得るアダプタカードに統合される。
もう一つの態様では、データ記憶装置アクセス要求を受信し、そのようなデータ記憶装置アクセス要求を満たすファイルシステムモジュールが提供される。そのファイルシステムモジュールは、
そのようなデータ記憶装置アクセス要求を受信し、それを翻訳し、そうして、記憶装置アクセス要求を発し得る、受信器と、
データ記憶装置アクセス応答を構築し、それを発する、前記受信器に接続される送信器であって、前記記憶装置アクセス要求への応答に基づいて適切なとき、そのような応答が情報を含む、前記送信器とを含む。
受信器及び送信器の少なくとも一つは、ハードウェアで実行され、その代わりに、又はそれに加えて、受信器及び送信器の少なくとも一つは、ハードウェアで加速される。さらなる実施の形態では、記憶装置アクセス要求は、前記モジュールが接続され得る記憶装置によって用いられるプロトコルに矛盾がない。まださらなる実施の形態では、プロトコルは、NTFS、HPFS、FAT、FAT16、又はFAT32である。もう一つの関連する実施の形態では、ファイルシステムモジュールは、また、モジュールが接続され得る記憶装置におけるファイルの物理的位置を画定するテーブルを格納する、前記受信器に接続されるファイルテーブルキャッシュを含む。種々の実施の形態では、プロトコルは、記憶装置内の連続的な物理定位置に置かれるべきファイルを要求しない。他の実施の形態では、ファイルシステムモジュールは、コンピュータのマザーボードに直接統合され、又はコンピュータに接続され得るアダプタカードに統合される。
もう一つの態様では、要求情報源から記憶装置アクセス要求を受信し、そのような記憶装置アクセス要求を満たすために、記憶装置制御部と通信する記憶装置モジュールが提供される。その記憶装置モジュールは、
a.そのような記憶装置アクセス要求を受信し、それらを前記記憶装置制御部に適したフォーマットに変換する記憶装置要求インターフェースと、
b.前記記憶装置制御部からの応答を取得し、そのような応答を前記要求情報源に適したフォーマットに変換する記憶装置承認インターフェースとを含む。
記憶装置要求インターフェースと記憶装置承認インターフェースの少なくとも一つはハードウェアで実行され、その代わりに、又はそれに加えて、記憶装置要求インターフェースと記憶装置承認インターフェースの少なくとも一つはハードウェアで加速される。さらなる実施の形態では、記憶装置モジュールは、また、データの部分への高速読込アクセスを可能にするために前記記憶装置に含まれるデータの一部のローカルコピーを保持するキャッシュ制御部を含む。他の関連する実施の形態では、記憶装置要求インターフェースと記憶装置承認インターフェースは、ポートに接続され、そのポートは、光ファイバチャネルを介して、あるいはSCSI関連のプロトコルを利用する前記記憶装置制御部との通信を可能にする。さらなる実施の形態では、記憶装置モジュールは、コンピュータのマザーボードに直接統合され、又は、コンピュータに接続され得るアダプタカードに統合される。
もう一つの態様では、記憶装置アクセス要求を置かれ得るラインと記憶装置配置を相互接続するためのシステムが提供される。この態様のシステムは、
a.前記記憶装置アクセス要求を処理し、前記記憶装置配置へのアクセスに必要なところを生成し、応答の生成をさせる、前記記憶装置配置に接続されるサービス受信ブロックと、
b.前記記憶装置配置内のファイルの物理的位置を画定するテーブルを格納する、前記受信ブロックに接続されるファイルテーブルキャッシュと、
c.前記応答を送信するための、前記サービス受信ブロックに接続されるサービス送信ブロックとを含む。
サービス受信ブロックとサービス送信ブロックの少なくとも一つは、ハードウェアで実行され、その代わりに、又はそれに加えて、サービス受信ブロックとサービス送信ブロックの少なくとも一つは、ハードウェアで加速される。さらなる実施の形態では、システムは、また、サービス受信ブロックとサービス送信ブロックのそれぞれに接続される応答情報メモリであって、該メモリは前記要求に関連したヘッダに存在する情報を格納し、該情報は前記応答を構築する前記サービス送信ブロックによって使用される、応答情報メモリを含む。もう一つの関連する実施の形態では、記憶装置アクセス要求は、ネットワーク要求である。まだもう一つの実施の形態では、記憶装置アクセス要求は、前記ラインが接続されるローカルプロセッサによって生成される。
もう一つの態様では、多数のクライアントからの記憶装置アクセス要求を扱うための処理が提供される。その処理は、
前記クライアントのいずれかからの記憶装置アクセス要求の受信をテストするステップと、
あらゆる未決定の要求に従って記憶装置へのアクセスの完了をテストするステップとを含む。
この実施の形態では、記憶装置アクセス要求の受信テストと記憶装置へのアクセスの完了テストは、クライアントの数から独立して、多数のスレッドで実行される。さらなる実施の形態では、その処理は、また、要求の受信テストからの肯定的な決定を条件付けられ、該肯定的な決定を生じさせる要求を処理し、そのような要求に従って記憶装置アクセスを始めるステップを含む。関連する実施の形態では、前記処理は、また、未決定の要求に従って記憶装置へのアクセスの完了テストから肯定的な決定を条件付けられ、そのような未決定の要求を発するクライアントに応答を送るステップを含む。まだもう一つの関連する実施の形態では、スレッドの数が3よりも小さい。実際には、全処理は、単一のスレッドで具体化されてもよい。
もう一つの態様では、ネットワークを介してサービス要求を扱うための拡大縮小可能な装置であって、ネットワークはプロトコルを利用する拡大縮小可能な装置が提供される。この態様の装置は、
前記ネットワークプロトコルを用いるネットワークサービス要求を送受信するための第1の複数のネットワークサブシステムと、
前記ネットワークサービス要求を満たすための第2の複数のサービスサブシステムとを含む。
該ネットワークサブシステムと該サービスサブシステムのそれぞれ一つがハードウェアで実行され、あるいはハードウェアで加速されるものである。それに加えて、装置は、第1の複数のネットワークサブシステムのそれぞれを第2の複数のサービスサブシステムのそれぞれに接続するインタコネクトを含む。関連する実施の形態では、インタコネクトはスイッチであり、あるいはインタコネクトはバスである。
関連する態様では、記憶装置アクセス要求を生成され得るネットワークと記憶装置配置を相互接続するための拡大縮小可能なサービスサブシステムが提供される。サービスサブシステムは、
ネットワークサービス要求を受信し、そのようなサービス要求を満たし、そうして、データ記憶装置アクセス要求を発する第1の複数のサービスモジュールと、
データ記憶装置アクセス要求を受信し、そのような記憶装置アクセス要求を満たし、そうして、記憶装置配置アクセス要求を発する第2の複数のファイルシステムモジュールとを含む。
該サービスモジュールと該ファイルシステムモジュールのそれぞれ一つがハードウェアで実行され、あるいはハードウェアで加速されるものである。サービスサブシステムは、また、第1の複数のサービスモジュールのそれぞれを第2の複数のファイルシステムモジュールのそれぞれに接続するインタコネクトを含む。関連する実施の形態では、インタコネクトはスイッチであり、あるいはインタコネクトはバスである。さらなる実施の形態では、拡大縮小可能サービスサブシステムは、記憶装置配置アクセス要求を受信し、そのような記憶装置配置アクセス要求を満たすために該記憶装置配置を制御する第3の複数の記憶装置モジュールを含み、該記憶装置モジュールのそれぞれ一つはハードウェアで実行され、あるいはハードウェアで加速されるものである。同じく、サービスサブシステムは、前記ファイルシステムモジュールのそれぞれを前記記憶装置モジュールのそれぞれと接続する第2のインタコネクトを含む。同様に、関連する実施の形態では、インタコネクト及び第2のインタコネクトのそれぞれは、スイッチであり、あるいはインタコネクト及び第2のインタコネクトのそれぞれは、バスである。
好ましい実施の形態の詳細な記述
本発明の前述の特徴は、添付図面を参照するとともに、次の詳細な説明を参照することによっていっそう容易に理解されるだろう。
本記述と添付の特許請求の範囲の目的のために、次の用語は、文脈が別の方法で必要としないならば、示された意味を有する。
「ハードウェア実行(hardware-implemented)」サブシステムは、主なサブシステム機能がソフトウェアプログラムの直接の制御外で駆動する専用ハードウェアで実行されるサブシステムを意味する。そのようなサブシステムがソフトウェアの制御下にあるプロセッサと相互作用するが、サブシステム自体がソフトウェアによって直接的に制御されていないことに注意されたい。「主な」機能は、最も頻繁に使用されるものである。
「ハードウェア加速(hardware-accelerated)」サブシステムは、主なサブシステム機能が専用プロセッサ又は専用メモリを用いて実行され、それに加えて、(あるいはその代わりに)特別な用途ハードウェア、すなわち、専用プロセッサ及びメモリがCPUに組み込まれるあらゆる中央演算処理装置(CPU)及びメモリと性質が異なるものを意味する。
「TCP/IP」は、他の場所間でwww.ietf.orgにおけるインターネット管理委員会のウェブサイト上に定義されるプロトコルである。それは、参照によってここに組み込まれる。「IP」は、同じ場所で定義されるインターネットプロトコルである。
「ファイル(file)」は、データの論理的結合である。
プロトコル「ヘッダ(header)」は、プロトコルのユーザーと結び付けられたデータの輸送のためにプロトコルによって指定されたフォーマットにおける情報である。
「SCSI関連(SCSI-related)」プロトコルは、SCSI、SCSI-2、SCSI-3、Wide SCSI、Fast SCSI、Fast Wide SCSI、Ultra SCSI、Ultra2 SCSI、Wide Ultra2 SCSI、又はあらゆる類似の若しくは後継のプロトコルを含む。SCSIは、「小型コンピュータシステムインターフェース(Small Computer System Interface)」であり、www.ansi.orgにウェブURLアドレスを持つ米国規格協会(ANSI)に従うコンピュータ周辺機器のパラレル接続の標準である。
「層3及び4(layers 3 and 4)」への言及は、ISO標準である開放型システム間相互接続(「OSI」)7層モデルの層3及び4を意味する。ISO(国際標準化機構)は、www.iso.chにウェブURLアドレスを有する。
図1は、ネットワークを介してサービス要求を処理するように配置された本発明の一実施の形態の概略表示である。したがって、この実施の形態は、ファイルサーバー又はウェブサーバーが提供される配列を含む。本発明の実施の形態11は、ネットワークインターフェース13を介してネットワーク10に接続される。ネットワーク10は、例えば、複数のワークステーションへの通信リンクを含んでもよい。ここで、実施の形態11は、また、記憶装置内部接続14を介して複数の記憶装置に接続される。実施の形態11は、ハードウエアで実行され、あるいは、ハードウェアで加速され(又はハードウェア実行及びハードウェア加速を組み合わせて利用され)てもよい。
図2は、図1に示された実施の形態のブロック図である。ネットワークサブシステム21は、ネットワークサービス要求及び応答を送受信する。ネットワークサブシステム21は、ネットワークサービス要求に応ずるサービスサブシステム22に接続される。ネトワークサブシステム21、サービスサブシステム22、あるいは両サブシステムは、ハードウェアで実行されるかハードウェアで加速されるかのいずれかであってよい。
図3は、より詳細にファイルサーバーとして配置された図1の実施の形態のブロック図である。ネットワークサブシステム31は、ネットワークサービス要求及び応答を送受信する。ネットワークサブシステム31は、サービスサブシステム32に接続される。サービスサブシステムは、3つのモジュール、すなわち、サービスモジュール33、ファイルシステムモジュール34、及び記憶モジュール35を含む。サービスモジュール33は、サービスサブシステム32を通過したネットワークサービス要求を解析し、適切であるとき、対応する記憶アクセス要求を発する。ネットワークサービス要求は、CIFS、SMB、NFS、又はFCPのような種々のプロトコルのいずれかで伝達されてもよい。サービスモジュール33は、ファイルシステムモジュール34に接続される。もし、ネットワークサービス要求が記憶アクセス要求を含むならば、ファイルシステムモジュール34は、その要求を記憶媒体によって利用されるファイル記憶プロトコル(例えば、HTFS、NTFS、FAT、FAT16、又はFAT32)と一致するフォーマットに変換することによって、記憶装置へのアクセスの要求を変換する。記憶モジュール35は、サービスサブシステムが接続され得る記憶媒体に直接アクセスするためのバス要求と一致する(SCSTのような)フォーマットにファイルシステムモジュール34の出力を変換する。
図4は、図3に類似しており、ウェブサーバーとして配置される図1の実施の形態のブロック図である。ネットワークサーバー41は、ネットワークサービス要求及び応答を送受信する。ネットワークサブシステム41は、サービスサブシステム42に接続される。サービスサブシステムは、3つのモジュール、すなわち、サービスモジュール43、ファイルシステムモジュール44、及び記憶モジュール45を含む。サービスモジュール43は、サービスサブシステム42に通過したネットワークサービス要求を解析し、適切であるとき、対応する記憶アクセス要求を発する。ここで、ネットワークサービス要求は、典型的に、HTTPプロトコルである。サービスモジュールは、記憶モジュール45に接続されるファイルシステムモジュール44に接続される。ファイルシステムモジュール44及び記憶モジュール45は、図3に関連して上述された、対応するモジュール34及び35に類似する方法で駆動する。
図5は、図2〜4の実施の形態のネットワークサブシステム及びサービスサブシステムである。ネットワークサブシステム51は、ネットワーク受信インターフェース54からカプセル収納データを受信し、TCP/IP又は他のプロトコルバス53に従ってそのデータをカプセルから出す。ネットワークサブシステム51は、また、ネットワークを介してデータにアクセスする(同じく、PCIバスに接続される)ローカルプロセッサに供給するために、PCIバス53に接続される。ネットワークサブシステム51は、また、サービスサブシステム52にデータを送信し、送信されたデータは、PCIバス53を介してネットワーク受信インターフェース54又なローカルプロセッサから来てもよい。サービスサブシステム52は、また、それぞれ図2、3、及び4のサービスサブシステム22、32、及び42に類似の方法で駆動する。
図6は、図5のネットワークサブシステム51の詳細なブロック図である。図6のネットワークサブシステムは、(受信器601、受信バッファメモリ603、及び受信制御メモリ604を含む)受信器モジュール614、並びに、(送信器602、送信バッファメモリ605、及び送信制御メモリ606を含む)送信器モジュール613を含む。プロセッサ611は、受信器モジュール614と送信器モジュール613の両方に使用される。受信器601は、ネットワーク受信インターフェース607からカプセル収納データを受信し、それを翻訳処理する。受信器601は、受信制御メモリ604及び送信制御メモリ606に含まれる制御情報を用いてそのデータをカプセルから出し、受信バッファメモリ605にそのカプセルから出されたデータを格納する。それは、受信バッファメモリ605からPCIバス613を介してプロセッサ611によって取り出されるか、受信高速パス(fast path)インターフェース605に出力される。メモリ612は、データと命令の貯蔵のためにプロセッサ611に用いられる。送信器602は、送信後続パスインターフェース610かあるいはPCIバス613を介してプロセッサ611から送信要求を受ける。
送信器602は、送信バッファメモリ605にそのデータを格納する。送信器602は、送信制御メモリ606に含まれる制御情報を用いて送信データをカプセル収納し、ネットワーク送信インターフェース609を介してネットワーク上のカプセル収納されたデータを送信する。
図7は、図6のネットワークサブシステムの受信モジュール614のブロック図である。パケットは、ネットワーク受信インターフェース607から受信エンジン701によって受信される。受信エンジン701は、パケットを解析し、そのパケットがエラーを含むか否か、TCP/IPパケットか、あるいは、TCP/IPパケットでないかを決定する。パケットは、パケット内に含まれるネットワークプロトコルヘッダの検査によってTCP/IPパケットかそうでないかを決定される。もしパケットがエラーを含むならば、それは落とされる。
もし、パケットがTCP/IPパケットでないならば、そのパケットは、受信バッファメモリアービタ709を介して受信バッファメモリ603に格納される。パケットが受信されたという表示は、プロセッサイベント待ち行列702に書き込まれる。プロセッサ715は、PCIバス704と受信PCIインターフェースブロック703を用いて受信バッファメモリ603からパケットを受信することができる。
もし、パケットがTCP/IPパケットならば、受信エンジン701は、パケットのプロトコルヘッダ内に含まれるネットワークアドレスとポートナンバーをこのパケットが属する接続、すなわち接続同定を特有の方法で識別する数に変換しようと試みるために、受信制御メモリ604に含まれるハッシュテーブルを用いる。もし、これが新しい接続道程ならば、パケットは、受信バッファメモリアービタ708を介して受信バッファメモリ603に格納される。パケットが受信されたという表示は、プロセッサイベント待ち行列702に書き込まれる。プロセッサ713は、PCIバス704と受信PCIインターフェースブロック703を用いて受信バッファメモリ603からパケットを受け取る。プロセッサは、TCP/IPプロトコルで指定されるように要求されるならば、新しい接続を確立することができ、あるいは他の適切なアクションをとり得る。
もし、接続同定が既に存在するならば、受信エンジン701は、各接続状態についての情報を含むデータのテーブルへのインデックスとしてこの接続同定を用いる。この情報は、「TCP制御ブロック」(「TCB」)と呼ばれる。各接続のためのTCBは、送信制御メモリ606に格納される。受信エンジン701は、受信器TCBアクセスインターフェース710を介してこの接続のためのTCBにアクセスする。それは、TCP/IPプロトコルに従ってこのパケットを処理し、受信バッファメモリ605のこの接続のための受信されたバイトストリームに結果として生じるバイトを加える。もし、この接続におけるデータがプロセッサ713のために予定されているならば、幾らかのバイトが受信されたという表示は、プロセッサイベント待ち行列702に書き込まれる。プロセッサは、PCIバス704と受信PCIインターフェースブロック703を用いて受信バッファメモリ603からバイトを受け取る。もし、この接続におけるデータが高速パスインターフェース608のために予定されているならば、幾らかのバイトが受信されたという表示は、高速パスイベント待ち行列705に書き込まれる。受信DMAエンジン706は、受信バッファメモリ603からバイトを受け取り、高速パスインターフェース608にそれらを出力する。
受信エンジン701によって受信されたいくつかのパケットは、IPパケットのフラグメントであり得る。もし、これがその場合ならば、フラグメントは、最初に受信バッファメモリ603で新たに組み立てられる。完全なIPパケットが新たに組み立てられたとき、通常のパケット処理が上述のように適用される。
TCPプロトコルによれば、接続は、SYN_SENT、SYN_RECEIVED、及びESTABLISHEDを含む多くの異なる状態で存在し得る。ネットワークノードがネットワークサブシステムとの接続を確立することを望むとき、それは、最初にSYNフラグセットを持つTCP/IPパケットを送信する。このパケットは、新しい接続同定を有するので、プロセッサ713によって検索される。プロセッサ713は、SYN_RECEIVEDへのこの接続のためにTCB内に接続状態を設定することを含むすべての要求される初期化を実行する。SYN_RECEIVEDからESTABLISHEDへの移行は、TCP/IPプロトコルに従って受信エンジン701によって実行される。プロセッサ713がネットワークサブシステムを介してネットワークノードへの接続を確立することを望むとき、最初にSYN_SENTへのこの接続のためにTCB内に接続状態を設定することを含むすべての要求される初期化を実行する。それは、それから、SYNフラグセットを持つTCP/IPパケットを送信する。SYN_SENTからESTABLISHEDへの移行は、TCP/IPプロトコルに従って受信エンジン701によって実行される。
もし、プロトコルヘッダ内にSYNフラグ又はFINフラグあるいはRSTフラグセットを有するパケットが受信され、そして、これがプロセッサ713によるアクシヨンを要求するならば、受信エンジン701は、プロセッサイベント待ち行列702へのエントリを書き込むことによって、このイベントをそのプロセッサに通知する。プロセッサ713は、TCP/IPプロトコルによって要求されるように適切なアクションをとり得る。
受信されたパケットにTCP/IPプロトコルを適用する結果として、1以上のパケットが今この接続で送信されるべきことが可能になる。例えば、受信データの承認が送信される必要があってもよく、あるいは、受信パケットは、そのようなデータが送信のために適用可能であるならば、より多くのデータがこの接続で送信されることを可能にする増加されたウィンドウサイズを示してもよい。受信エンジン701は、それに応じてTCBを変更し、それから、受信器送信待ち行列要求インターフェース711を介して図8の送信待ち行列802に接続同定を書き込むことによって送信試みを要求することによって、このことを達成する。
受信データは、受信バッファメモリ603内の別々のユニット(バッファ)に格納される。バッファ内のすべてのデータがプロセッサ713によって検索されるか、高速パスインターフェース605に出力されるとすぐに、バッファは、解放、すなわち、新しいデータを格納するために再利用され得る。類似のシステムは、送信バッファメモリ605のために駆動するが、しかしながら、送信の場合、そのバッファは、その中のすべてのデータがTCP/IPプロトコルを用いて、送信データを受信するネットワークノードによって完全に承認されるときのみ解放される。送信されたデータが承認されたことをパケットのプロトコルヘッダが示すとき、受信エンジン701は、受信器フリー送信バッファ要求インターフェース712を介して図8のフリー送信バッファブロック805にこのことを示す。
さらに、受信エンジン701がTCP/IP自身と同様にTCP/IPをうまく処理する上部層プロトコル(ULP)を処理することを可能にする。この場合、完全なULPプロトコルデータユニット(PDU)が受信されたときのみ、イベント待ち行列エントリは、処理又はイベント待ち行列702と高速パスイベント待ち行列705に書き込まれる。完全なULPのPDUのみがプロセッサ713によって受信され、高速パスインターフェース608に出力される。ULPの一例はNetBIOSである。ULP処理を可能にすることは、接続毎に基づいてなされてもよい、すなわち、いくつかの接続は、ULP処理を可能にし、その他のものはそうでなくてもよい。
図8は、図6のネットワークサブシステムの送信モジュール613のブロック図である。TCP/IPを用いてネットワーク上で送信されるべきデータは、送信DMAエンジン807に入力される。このデータは、送信高速パスインターフェース610か、PCIバス704と送信PCIインターフェース808を介してプロセッサ713からのいずれかからの入力である。それぞれの場合、TCP/IP接続がデータを送信するために用いられるべきか否かを決定する接続同定は、同じく入力される。上述のように、各接続は、接続状態についての情報を含む、組み合わされたTCBを有する。
送信DMAエンジンは、この接続のために格納されたバイトストリームに入力されたバイトを加えて、送信バッファメモリ605内にそのデータを格納する。入力の終わりに、それは、それに応じて接続のためにTCBを変更し、同じく、接続同定を送信待ち行列802に書き込む。
送信行列802は、3つの情報源、すなわち、受信器送信待ち行列要求インターフェース711、タイマー機能ブロック806、及び送信DMAエンジン807から接続同定の形式で送信要求を受け取る。要求が受信されるので、それらは待ち行列に置かれる。待ち行列がからであるときはいつも、待ち行列の前における接続同定のための送信要求は、送信エンジン801へ通過される。送信エンジン801が送信要求の処理を完了すると、この接続同定は、待ち行列の前から取り除かれ、その処理が繰り返す。
送信エンジン801は、送信待ち行列802から送信行列を受け取る。各要求のために、送信エンジン801は、その接続と要求される送信パケットにTCP/IPプロトコルを適用する。これをするために、それは、送信制御メモリアービタ805を介して送信制御メモリ606内の接続のためにTCBにアクセスし、送信バッファメモリアービタ804を介して送信バッファメモリ605から接続のための格納されたバイトストリームを検索する。
接続のための格納されたバイトストリームは、送信バッファメモリ605内の別々のユニット(バッファ)に格納される。上述のように、各バッファは、TCP/IPプロトコルを用いて、送信データを受信するネットワークノードによってその中のすべてのデータが完全に承認されたときのみ解放され得る。送信されたデータが承認されたことをパケットのプロトコルヘッダが示すとき、受信エンジン701は、受信器フリー送信バッファ要求インターフェース712を介してフリー送信バッファブロック805にこのことを示す。フリー送信バッファブロック805は、完全に承認されたすべてのバッファを解放し、これらのバッファは、新しいデータを格納するために再利用され得る。
TCP/IPは、ある条件が満たされるならば一定間隔で実行されるべきある動作を要求する多くのタイマー機能を有する。これらの機能は、タイマー機能ブロック806によって実行される。一定間隔で、タイマー機能ブロック806は、送信制御メモリアービタ803を介して各接続のためのTCBにアクセスする。もし、あらゆる操作が特定の接続のために実行される必要があるならば、その接続のためのTCBは、それに応じて変更され、接続同定は、送信待ち行列802に書き込まれる。
そのうえ、送信DMAエンジン807がTCP/IPをうまく処理する上部層プロトコルを処理することができる。この場合、完全なULPプロトコルデータユニットのみは、プロセッサ713か、送信高速パスインターフェース610のいずれかから送信DMAエンジン807に入力される。送信DMAエンジン807は、それから、PDUの前にULPヘッダを添付し、接続のための格納されたバイトストリームに「前に添付された」ULPヘッダと入力されたバイトを加える。図2に関連して上述されるように、ULPの一例はNetBIOSである。ULP処理を可能にすることは、接続毎に基づいてなされてもよい。すなわち、いくつかの接続がULP処理可能であり、そのたのものがそうでなくてもよい。
もし、プロセッサ713が生のパケットを送信すること、すなわち、TCP/IPを用いてデータのハードウェアの自動送信することなく、データを送信することを望むならば、プロセッサ713が送信DMAエンジン807にデータを入力するとき、それは、特定の接続同定を用いる。この特定の接続同定は、送信エンジン801に、プロセッサ713によって送信DMAエンジン807に入力として正確に生のパケットを送信させる。
図9は、ワークステーション又はサーバーのようなネットワークノードで使用するネットワークインターフェースアダプタとして図5のネットワークサブシステムの使用を示すブロック図である。この実施の形態では、ネットワークサブシステム901は、コンピュータに接続されるアダプタカード900に統合される。アダプタカード900は、ネットワークインターフェース904を介してネットワークに接続される。アダプタカード900はまた、PCIバス907とPCIブリッジ912を介してコンピュータのマイクロプロセッサに接続される。PCIバス907はまた、ビデオシステム913のような周辺装置にアクセスするためにコンピュータによって用いられてもよい。受信モジュール902と送信モジュール903は、図6の受信モジュール614と送信モジュール613と類似の方法で動作する。その代わりに又はそれに加えて、アダプタカード900は、ネットワーク上のリモートノード又はマイクロプロセッサ10によって記憶装置配列への高速アクセスを提供するために、単一プロトコル高速受信パイプ906と単一プロトコル高速送信パイプ905を介して、図2、3、4、又は5のアイテム22、32、43、又は52のそれぞれのいずれかに相当するサービスモジュールに接続されてもよい。
図10は、図3に示されるような一実施の形態で使用する図3のSMBサービスモジュール33とファイルシステムモジュール34のハードウェアで実行される組み合わせのブロック図である。図10の実施の形態では、SMB要求は、サービス受信ブロック101への入力105で受信される。最終的に、この実施の形態による処理は、出力106上の対応するSMB応答の送信を結果としてもたらす。この応答の一部はヘッダを含む。出力ヘッダを作るために、入力ヘッダは、SMB応答情報メモリ103に格納される。ブロック101は、SMB要求を処理し、応答を生成する。要求の性質に依存して、ブロック101は、ファイルテーブルキャッシュ104にアクセスし、ディスクアクセス要求を発してもよい。さもなければ、応答が送信ブロック102を直接中継される。サービス送信ブロック102は、出力106上にブロック101によって生成される応答を送信する。ディスクアクセス要求がブロック101によって発せられ、ディスク応答のライン108上で受信された場合、送信ブロック102は、ライン106上に適切なSMB応答を発する。受信及び送信の両モジュール101及び102は、PCIバス109を介してホストシステムと選択的に通信する。供給されるとき、そのような通信は、伝統的なオペレーティングシステムの範囲外に高速で、ハードウェアで実行されるファイルシステムアクセスをホストシステムに与えるように、ホストシステムがネットワークを介する代わりに実施の形態と直接通信することを可能にする。
図11は、図3に示されるような一実施の形態において使用する図3のSMBサービスモジュール33とファイルシステムモジュール34のハードウェアで加速される組み合わせのブロック図である。動作は、同じく番号を付されたブロック及びライン105、107、108、及び106に関して図10に関連して上述されたものに類似している。しかしながら、専用のファイルシステムプロセッサ110は、専用バス112を介して動作する専用メモリ111に関連して、ブロック101及び102の処理を制御する。それに加えて、これらのアイテムは、ソフトウェアで変更され得るので、そのような処理の取扱いに柔軟性を提供する。
図12Aは、それぞれ図3又は図4のアイテム33又は43のようなハードウェアで実行されるサービスモジュールのブロック図である。サービスモジュール1200は、ネットワークサービス要求を受信し、そのようなサービス要求を実現し、データ記憶アクセス要求を発してもよい。サービスモジュール1200は、送信器1202に接続された受信器1201と、受信器1201及び送信器1202の両方に接続されたデータ記憶アクセスインターフェース1203とを含む。受信器1201は、ネットワークサービス要求を受信し、それを解釈する。サービス要求を受信し次第、受信器1201は、データ記憶アクセスインターフェース1203にその要求を送るか、あるいは、ネットワークサービス要求を満たす情報を送信器1202に送る。もし、その要求がデータ記憶アクセスインターフェース1203に送られるならば、データ記憶アクセスインターフェース1203は、データ記憶アクセス要求を構成し、それを発する。データ記憶アクセスインターフェースは、また、データ記憶アクセス要求への応答を受信し、オリジナルのネットワークサービス要求を満たすために必要とされる情報を抽出する。その情報は、それから送信器1202に送られる。送信器1202は、受信器1202又はデータ記憶アクセスインターフェース1203からそれに送られる情報を処理し、ネットワークサービス応答を構築し、それを発する。
図12Bは、それぞれ図3又は図4のアイテム34又は44のようなハードウェアで実行されるファイルモジュールのブロック図である。ファイルシステムモジュール1210は、データ記憶アクセス要求を受信し、そのようなデータサービスアクセス要求を実現し、記憶装置アクセス要求を発してもよい。ファイルシステムモジュール1210は、送信器1212に接続された受信器1211と、受信器1211及び送信器1212の両方に接続されたデータ記憶装置アクセスインターフェース1213とを含む。受信器1211は、データ記憶アクセス要求を受信して解釈し、データ記憶装置アクセスインターフェース1213へその要求を送るか、あるいは、データ記憶アクセス要求を満たす情報を送信器1212に送る。もし、その要求がデータ記憶装置アクセスインターフェース1213に送られるならば、データ記憶装置アクセスインターフェース1213は、データ記憶装置アクセス要求を構築し、それを発する。データ記憶装置アクセスインターフェース1213は、また、データ記憶装置アクセス要求への応答を受信し、オリジナルのデータ記憶アクセス要求を満たすために必要とされる情報を抽出する。その情報は、それから送信器1212に送られる。送信器1212は、受信器1211又はデータ記憶装置アクセスインターフェースモジュール1213からそれに送られた情報を処理し、データ記憶アクセス応答を構築し、それを発する。
図12Cは、結合されたサービスモジュール及びファイルモジュールを提供する、図10のハードウェアで実行されるサービスサブシステムの詳細なブロック図である。図12C内の点線129は、この実行の機能間の分割を示す。ライン129の左側にはサービスモジュール部があり、ライン129の右側にはファイルシステムモジュール部がある。(しかしながら、SMB受信制御エンジン121とSMB送信制御エンジン122を結ぶ二頭の矢がサービスモジュール部とファイルシステムモジュール部のそれぞれのためのエンジン121及び122問の2方向通信を適切に供給することを理解されるだろう。)
図12Cでは、SMBフレームは、ネットワーク受信インターフェース121fを介してネットワークサブシステムから受信され、SMBフレーム翻訳エンジン121bに送られる。ここで、フレームは解析され、多くのタスクが実行される。ヘッダの最初のセクションは、SMB応答の接続基礎毎に適切な情報をメモリ103に格納する、SMB応答情報制御123にコピーされる。完全なフレームは、受信バッファメモリ121C内のバッファに書き込まれ、受信制御メモリ121dは更新される。SMBフレームヘッダの適切な部分は、SMB受信制御エンジン121に送られる。
図12CのSMB受信制御エンジン121は、ヘッダからその情報を解剖し、適切な場合には、批准エンジン124からファイルアクセス許可を要求する。ファイルアクセスが要求されるSMBフレームのために、SMB受信制御エンジン121は、SMBフレームヘッダからファイルパス情報かファイル同定のいずれかを抽出し、MFT制御エンジン125に要求されたファイルデータの物理的位置を要求する。
MFT制御エンジン125は、SMB受信制御エンジン121からの要求を待ち行列に入れることができ、同様に、SMB受信制御エンジン121は、MFT制御エンジン125からの要求を待ち行列に入れることができる。これは、2っのエンジンが互いに非同期に動作することを可能にし、従ってMFT要求が顕著な間入ってくるSMBフレームが処理されることを可能にする。
MFT制御エンジン125は、SMB受信制御エンジン121からの要求を処理する。典型的に、SMB OPENコマンドのために、要求は、必要な物理的ファイル位置情報を得るためのディスクアクセスが必要である。これが必要な場合、MFT制御エンジン125は、必要な圧縮SCSI要求を生成する圧縮SCSIフレーム生成エンジン121aに要求を送る。圧縮SCSIプロトコル(「CSP」)は、SCSIコマンドが図17Aと他の図に関連して以下に記述される方法で生成され得るデータフォーマットに関する。圧縮SCSIデータがSCSIから得られないが、むしろSCSIデータが得られ得る情報源であるので、我々は、時々圧縮されたSCSIデータを「プロトーSCSI」データとして言及する。適切なプロトーSCSI応答は、それが処理されるMFT制御エンジン125に送り返され、MFTキャッシュ104は更新され、物理的ファイル情報は、SMB受信制御エンジン121に送り返さる。
典型的に、最近アクセスされた小さなファイルに関してSMB READ又はWRITEコマンドのために、ファイル情報は、MFTキャッシュ104内に存在する。したがって、ディスクアクセスは要求されない。
SMB受信制御エンジン121がMFT要求からその応答を受信し、ファイルデータのためのディスクアクセスが要求されるとき、典型的なREAD又はWRITEコマンドに必要であるように、1以上のプロト−SCSI要求は、プロト−SCSIフレーム生成エンジン121aに送られる。
プロト−SCSIフレーム生成エンジン121aは、プロト−SCSIヘッダを構築し、必要な場合、例えば、WRITEコマンドのために、受信バッファメモリ121cからファイルデータを引くために、ファイルデータDMAエンジン121eをプログラムする。プロト−SCSIフレームは、プロト−SCSI送信インターフェース121gを介してプロト−SCSIモジュールに送られる。ディスクアクセスが要求されない場合、SMB応答要求は、直接SMB送信制御エンジン122に送られる。
プロト−SCSIフレームは、プロト−SCSIモジュールから受信され、プロト−SCSI受信インターフェース122fを介してプロト−SCSIフレーム翻訳エンジン122bに送られる。ここで、そのフレームは解析され、多くのタスクが実行される。MFT応答は、MFT制御エンジン125に送り返される。他のすべてのフレームは、受信バッファメモリ121c内のバッファに書き込まれ、受信制御メモリ121dは更新される。プロト−SCSIフレームヘッダの適切な部分は、SMB送信制御エンジン122に送られる。
各SMB接続は、独特な同定を以前に割り当てられた。すべてのプロト−SCSIフレームは、この同定を含み、SMB送信制御エンジン122は、SMB受信制御エンジン121からの状態情報を要求し、必要な場合これを更新するために、この独特な同定を用いる。SMB応答のための必要な情報がプロト−SCSIモジュールから受信されたとき、SMB送信制御エンジン122は、SMBフレーム生成エンジン121aに要求を送る。
SMBフレーム生成エンジン121aは、SMB応答情報メモリ103内に含まれるデータ及びSMB送信バッファメモリ122cに格納されたファイルデータからSMB応答:フレームを構築する。それは、結果としてそれをネットワークサブシステムに転送するSMB送信インターフェース106にそのフレームを送る。
図13は、図11のハードウェア加速サービスサブシステムの詳細なブロック図である。入力105を越えて供給されるIPブロックから入ってくるSMBフレームは、SMB受信FIFO1317を介して、SMB受信バッファメモリ121C内のフリーバッファに書き込まれる。SMB受信バッファメモリ121cは、一実施の形態では、2Kbの長さであり、一つのSMBフレームが多くの受信バッファにまたがり得る一連の受信バッファを含む。フレームがSMB受信バッファメモリ121cに書き込まれるので、SMB受信バッファ記述子は、SMB受信制御メモリ121dで更新される。
32ビット接続同定及び32ビットフレームバイトカウントは、フレームの始まりでIPブロックからSMBブロックに送られる。これら2つのフィールドは、受信バッファメモリ121cの受信バッファの始めの2つの位置に書き込まれる。
フレームが格納されるが、SMBヘッダもまた、SMB送信処理による後の使用のためにSMB応答情報メモリ103に書き込まれる。IPブロックによってSMBブロックに送られる独特な接続同定は、SMB応答情報メモリ103内の適切な情報フィールドへのポインタとして用いられる。このメモリは、16ワードのブロックで、各独特な接続同定のために一つのブロックとして配置される。128MbのSDRAMで適合させて、これは2Mの接続を可能にする。目下、SMBフレームの最初の32バイトは各情報フィールドに書き込まれる。
完全なフレームが受信バッファメモリ121cに書き込まれたとき、SMBバッファロケータは、SMB受信イベント待ち行列1314に書き込まれ、ホストプロセッサ1301への割り込みが生成される。SMBバッファロケータは、バッファポインタと「最後の」ビットを含むSMBフレームに関する情報を含む。バッファポインタは、SMBフレームの始まりを含む受信バッファメモリ121cを指し示す。「最後の」ビットは、このバッファがSMBフレームの終わりも含むか否か(すなわち、SMBフレームが2Kbの長さより小さいか否か、)を示す。
ホストプロセッサ1301は、イベント待ち行列1314に結び付けられた適切なSMB受信イベントレジスタを読むことによってSMB受信待ち行列1314内のSMBバッファロケータを読むことができる。SMBバッファロケータから読み取られたバッファポインタから、ホストプロセッサ1301は、受信バッファメモリ121c内のSMBフレームの最初のバッファのアドレスを決定することができ、従ってSMBヘッダとフレームの最初の部分を読むことができる。
もし、SMBフレームが2Kbよりも長く、SMBフレームの最初の2Kb以上を読む必要があるならば、この受信バッファに結び付けられた受信バッファ記述子は、受信制御メモリ121dから読まれるべきである。この受信バッファ記述子は、SMBフレームの次のバッファへのポインタを含む。受信バッファがSMBフレームの終わりを含むことを指摘することを示す「最後の」ビットを前のバッファの記述子が含まなければ、この次のバッファは、同様に、それに結び付けられた受信バッファ記述子を有する。
受信されたSMBフレームを呼んだ後、もし、フレーム内に含まれるデータがさらに使用されるできではないならば、受信されたフレームのバッファは、受信バッファ制御メモリ121dに含まれる受信フリーバッファ待ち行列にポインタを書き込むことによって、結び付けられた受信返却フリーバッファレジスタに書き込むことによって、再び使用するために利用可能にされる。
プロト−SCSIフレームを送信するために、ホストプロセッサ1301は、受信フェッチフリーバッファレジスタから読み込むことによってフリーSMB受信バッファへのポインタを最初に得る。このアクションは、受信制御メモリ121dに含まれるフリーバッファ待ち行列からフリーバッファへのポインタを持ってくる。このバッファでは、プロト−SCSI要求フレームの始まりが構築され得る。
プロト−SCSIフレームをプロト−SCSIエンティティーに移すようにプロト−SCSI送信エンティティーに要求するために、ホストプロセッサ1301は、プロト−SCSI送信イベント待ち行列1315に結び付けられた受信プロト−SCSIイベントレジスタにそれらを書き込むことによって、プロト−SCSI送信イベント待ち行列1315にバッファロケータとバッファオフセット対を書き込む。
バッファロケータは、プロト−SCSIフレームのためのデータを含むバッファへのポインタを含む。バッファオフセットは、バッファと長さフィールドの中のデータの始まりに対するオフセットを含む。バッファロケータは、また、さらなるバッファロケータ/バッファオフセット対が、このプロト−SCSIフレームのためのより多くのデータへのポインタを含むプロト−SCSI送信イベント待ち行列1315に書き込まれるか否かを示すためのさごのビットを含む。
もし、プロト−SCSIフレームがもう一つのSMB受信バッファからのデータを含むべきならば、SMB WRITEコマンドのために典型的であるように、ホストプロセッサ1301は、このSMB受信バッファを記述するもう一つのバッファロケータ/バッファオフセット対をプロト−SCSI送信イベント待ち行列1315に書き込まなければならない。もし、プロト−SCSIフレームに含まれるべきデータが一つのSMB受信バッファ以上にまたがるならば、プロト−SCSI送信エンティティーは、データにともにリンクするために、受信制御メモリ121dに位置される結び付けられたSMB受信バッファ記述子内のバッファポインタを用いることができる。もし、余分なデータがSMB受信フレームからのものであるならば、これらの記述子は、SMB受信エンティティーによって予め満たされたであろう。
SMB受信バッファからのデータが一つ以上のプロト−SCSIフレームのために用いられ得るので、それらが用いられた後のSMB受信バッファを自由化することは単純な処理ではない。プロト−SCSI送信に含まれない受信SMBフレームのセクションを含むSMB受信バッファは、関連付けられた受信戻りフリーバッファレジスタを介して受信制御メモリに含まれるフリーバッファ待ち行列にそれらを書き戻すことによって自由にされ得る。プロト−SCSIフレームに含まれるべきデータを含むSMB受信バッファは、それらの中のデータが送信されるまで自由にされないような同一の方法で自由にされ得ない。
それで、SMBデータを含む種々のプロト−SCSIフレームに対するバッファロケータ/バッファオフセット対がプロト−SCSI送信イベント待ち行列1315に書き込まれた後、オリジナルのSMB受信バッファへのポインタも同じく、プロト−SCSIに書き込まれる。これらのポインタは、受信制御メモリに含まれるフリーバッファ待ち行列に戻されて自由にされるべきであることを示すために記録される。プロト−SCSI送信が次々と処理されるので、SMB受信バッファは、それらの中のあらゆるデータが送信された後にのみ自由にされる。
IPブロックから入ってくるプロト−SCSIフレームは、プロト−SCSI受信FIFO1327を介してSMB送信バッファメモリ122c内のフリーバッファに書き込まれる。SMB送信バッファは2Kb長であり、一つのプロト−SCSIフレームは、多くの送信バッファにまたがってもよい。フレームがSMB送信バッファメモリ122cに書き込まれるので、SMB送信バッファ記述子は、SMB送信制御メモリ122d内で更新される。
完全なフレームがSMB送信バッファメモリ122cに書き込まれるとき、SMBバッファロケータは、プロト−SCSI受信イベント待ち行列1324に書き込まれ、ホストプロセッサ1301への割り込みが生成される。SMBバッファロケータは、バッファポインタと「最後の」ビットを含むプロト−SCSIフレームに関する情報を含む。バッファポインタは、プロト−SCSIフレームの始まりを含む送信バッファメモリ121c内のバッファを指し示す。「最後の」ビットは、このバッファが同じくプロト−SCSIフレームの終わりを含むか否か(すなわち、フレームが長さで2Kbより小さいか否か)を示す。
ホストプロセッサ1301は、イベント待ち行列1324に関連した適切なプロト−SCSI受信イベント待ち行列1324を読むことによって、プロト−SCSI受信イベント待ち行列のバッファロケータを読むことができる。バッファロケータから読まれたバッファポインタから、ホストプロセッサ1301は、送信バッファメモリ122c内のプロト−SCSIフレームの最初のバッファのアドレスを決定することができ、従ってヘッダとそのフレームの最初の部分を読むことができる。
もし、プロト−SCSIフレームが2Kbより長く、フレームの最初の2Kbより多くを読む必要があるならば、この送信バッファに関連した送信記述子は、受信制御メモリ121dから読まれるべきである。バッファがプロト−SCSIフレームの終わりを含むことを指摘することを示す「最後の」ビットを前のバッファの記述子が含まないならば、記述子は、プロト−SCSIフレームの次のバッファへのポインタを含む。この次のバッファは、同様に、それに関連した送信記述子を有する。
受信されたプロト−SCSIフレームを読んだ後、もし、そのフレーム内に含まれるデータが更に用いられるべきでないならば、受信されたフレームのバッファは、それに関連した送信戻りフリーバッファレジスタに書き込むことによって、送信制御メモリ122dに含まれる送信フリーバッファ待ち行列に戻されるべきである。
SMBフレームを送信するために、ホストプロセッサは、関連したレジスタから読むことによって、送信制御メモリ122dに含まれる送信フリーバッファ待ち行列から送信バッファメモリ122c内のフリーSMB送信バッファへのポインタを最初に得る。このバッファでは、SMB応答フレームの始まりが構築され得る。
32ビット接続道程と32ビットSMB送信制御フィールドは、バッファ内のSMBフレーム前に置かれる。SMB送信制御フィールドは、24ビットフレームバイトカウントと前置ヘッダビットを含む。もし、前置ヘッダビットが設定されるならば、接続同定とSMB送信制御フィールドがIPブロックに送られた後に、応答情報メモリ103に格納されたSMBヘッダは、自動的に挿入される。
SMB送信エンティティーにSMBフレームをSMBエンティティーに移すことを要求するために、ホストプロセッサ1301は、関連した送信SMB送信イベントレジスタにそれらを書き込むことによって、バッファロケータとバッファオフセット対をSMB送信イベント待ち行列1325に書き込む。
バッファロケータは、SMBフレームのためのデータを含むバッファへのポインタを含む。バッファオフセットは、バッファと長さフィールド内のデータの始まりに対するオフセットを含む。バッファロケータは、また、バッファロケータ/バッファオフセット対がさらにこのSMBフレームのためのより多くのデータへのポインタを含んで書き込まれるか否かを示す最後のビットを含む。
もし、SMBフレームがバッファメモリ122c内のもう一つのSMB送信バッファからのデータを含むべきであるならば、ホストプロセッサは、SMB送信イベント待ち行列1325にこのSMB送信バッファを記述するもう一つのバッファロケータ/バッファオフセット対を書き込まなければならない。もし、SMBフレームに含まれるべきデータが一つ以上のSMB送信バッファにまたがるならば、SMB送信エンティティーは、データをともにリンクするために、関連した送信バッファ記述子内のバッファポインタを用い得る。もし、余分なデータがプロト−SCSI受信フレームからのものであるならば、これらの記述子は、プロト−SCSI受信エンティティーによって以前に満たされたであろう。
送信バッファメモリ122cのSMB送信バッファからのデータが一つ以上のSMBフレームのために用いられ得るので、それらが用いられた後にSMB送信バッファを自由化することは、単純な処理ではない。SMB送信に含まれない受信されたプロト−SCSIフレームのセクションを含むSMB送信バッファは、関連した送信戻りフリーバッファレジスタを介して、送信制御メモリに含まれる送信フリーバッファ待ち行列にそれらを書き戻すことによって自由にされ得る。SMBフレームに含まれるべきデータを含むSMB送信バッファは、その中のデータが送信されるまでそれらが自由にされ得ないので、同一の方法で自由にされ得ない。
それで、プロト−SCSIデータを含む種々のSMBフレームへのバッファロケータ/バッファオフセット対がSMB送信イベント待ち行列1325に書き込まれた後、オリジナルのSMB送信バッファへのポインタは、また、SMB送信イベント待ち行列1325に書き込まれる。これらのポインタは、送信フリーバッファ待ち行列に戻って自由化されるべきことを示すことを記録する。SMB送信イベント待ち行列1325が次々に処理されるので、SMB送信バッファは、その中のあらゆるデータが送信された後にのみ自由にされる。
図14は、多数のサービス要求を多数のスレッドとして扱うための、ソフトウェアで実行された典型的な先行技術のアプローチを表すフローチャートである。伝統的な多数スレッドの構成では、典型的に各クライアントにサービスを提供するための少なくとも一つのスレッドがある。スレッドは、クライアントがサーバーに接続詞、それから分離するように、始められ、終了させられる。各クライアントは、サービス要求を処理するためのサーバー上のスレッドとディスク要求を処理するためのスレッドとを有してもよい。サービス処理1400は、ボックス1401でクライアント接続要求の存在をテストする繰り返しループを含み、もし、テストが肯定的であるならば、処理は、ボックス1402、クライアント処理1430を始める。クライアント処理1430がボックス1435でディスクアクセスを要求するとき、それは最初にディスクヘアクセスするための適切なディスク処理を要求し、それから、ディスクアクセスが完了するまでボックス1436で待機する。ディスク処理1402は、それがサービス要求を発するクライアントにボックス1437で応答を送信することを可能にするために、クライアント処理1430を目覚めさせる。それで、ディスクアクセスを要求する各クライアント要求のための少なくとも二つの処理スイッチがある。これらの多数のスレッド処理をハードウェアで実行することは、問題である。なぜならば、通常、それらはマルチタスク処理オペレーティングシステムによって扱われるからである。
図15は、図2のサービスサブシステムと、例えば、図12及び13の実施の形態とを関連して使用するために、多数のサービス要求の処理を示すフローチャートである。単純なスレッドアーキテクチャでは、一つのサービス処理1500が単一のスレッドで多数のクライアントからの要求を扱い、一つのディスク処理1502がサービス処理1500からのすべての要求を扱う。要求をなす各クライアントのために別々の処理を用いる先行技術のアプローチは無視され、その機能は、一つのサービス処理1500によってここで扱われた。それに加えて、これら2つの処理、サービス処理とディスク処理は、示されるように、同一のスレッド内に含まれてもよく、あるいは、ロードバランシングを容易にするために2つの別々のスレッド間に分担されてもよい。
図15の単一スレッドサービス処理は、同時に傑出した多数のクライアントからのディスク要求を有することができる。単一スレッドは、2つのテストを持つメインループを含む。ボックス1501の第1のテストは、クライアントからの要求を受信したか否かである。ボックス1508の第2のテストは、前に始められたディスクアクセス要求が完了したか否かである。その結果、ディスクアクセスが完了させられるべきボックス1508で決定されたので、ボックス1507でサービス処理は、クライアントに適切な応答を送り返す。サービス処理1500がボックス1501を介してディスクアクセス要求を扱い、要求をボックス1502で処理させ、ボックス1504でディスクアクセスの開始を起こすとすぐに、サービス処理は、前のディスクアクセスが完了するまで停止し及び待つことなく、ボックス1501を介してもう一つのクライアントからのもう一つの要求を扱うために自由である。ディスクアクセスが完了されたボックス1508での決定において、ボックス1507のディスク処理は、結果のサービス処理を通知し、クライアントに応答を送信する。従って、サービス及びディスク処理は、クライアントから送られる要求がある限り、絶えず走っている。
図16は、ファイル記憶装置を有するコンピュータシステムに関連して、図3に示されるようなファイルシステムモジュールの使用を示すブロック図である。(図16のものに類似する実行は、ファイル記憶装置を有するコンピュータシステムに関連して、図3に示されるような記憶装置モジュールを提供するために用いられてもよい。)この実施の形態では、ファイルシステムモジュール1601は、マイクロプロセッサ1605、メモリ1606、及び、ここでは従来のディスクドライブ制御部であるディスクサブシステム1602を介してアクセスされるディスクドライブ1610と同様に、ビデオ1609のような周辺機器を含むコンピュータシステムに統合化される。ファイルシステムモジュール1601は、また、PCIバス1607上のPCIブリッジ1604を介してコンピュータマルチプロセッサ1605とコンピュータメモリ1606に接続される。PCIバス1607は、また、マイクロプロセッサ1605をコンピュータ周辺機器1609に接続する。ファイルシステムモジュールの受信エンジン1610は、図10、11、12B、及び13に関連して上述された方法と類似の方法で、マイクロプロセッサ1605からのディスクアクセス要求を処理する。同じく、送信エンジン1611は、図10、11、12B、及び13に関連して上述された方法と類似の方法で、そのようなディスクアクセス要求に対する応答を供給する。
図17Aは、図3の記憶装置モジュールにおけるデータフローのブロック図である。図17Aと17Bにおけるカリフォルニア州パロアルトのヒューレットパッカード社(Hewlett Packard Co.,Palo Alto, California)から利用可能なタキオンXL光ファイバチャネル制御部が1/O装置として用いられ得、本発明の実施の形態が他の1/O装置を等しく用い得ることに気付かれたい。プロト−SCSI要求は、プロト−SCSI要求プロセッサ1702によってプロト−SCSI入力を越えて受信される。この要求に関する情報はSEST情報テーブルに格納され、もし、これがWRITE要求ならば、同じくプロト−SCSI入力1700を介して供給されるWRITEデータは、WRITEバッファメモリ1736に格納される。
交換要求(ERQ)発生器1716は、WRITEバッファメモリ1736からの情報を取得する。もし、書き込まれるべきすべてのバッファが現在蓄えられ、あるいは書き込まれるべきデータが書き込まれるべきバッファを完全に満たすならば、WRITEは、すぐに実行され得る。書き込まれるべきデータは、キャッシュメモリ1740の適切な領域にWRITEバッファメモリ1736からコピーされる。ファイバチャネルI/O制御部1720は、その制御部1720と通信するディスク記憶装置の適切な領域にそのデータを書き込むように構成される。さもなければ、ディスクからのREADは、適切なディスクから要求されるデータを得るために、WIRTEの前になされなくてはならない。
プロト−SCSI承認発生器1730は、プロト−SCSI要求を生成する責任を負う。プロト−SCSI応答を生成することができる3つの情報源、プロセッサ1738、ファイバチャネルI/O制御部1720、及びキャッシュメモリ1740があり、そのそれぞれは、SESTインデックスを供給する。すべての移動のために、ステータス情報とともに、プロト−SCSI要求が承認に関連付けられることを可能にする同定は、プロト−SCSI承認インターフェース1734に戻される。
図17Bは、図3の記憶装置モジュールの制御フローを示す詳細なブロック図である。プロト−SCSI要求がプロト−SCSI要求プロセッサ1702によってプロトーSCSI入力1700を越えて受信されるとき、それは、独特な識別子(SESTインデックスと呼ばれる)を割り当てられる。この要求に関する情報は、SEST情報テーブルに格納され、もし、これがWRITE要求ならば、プロト−SCSI入力1700に同じく供給されるWRITEデータは、WRITEバッファメモリ1736に格納される。SESTインデックスは、それからプロト−SCSI要求待ち行列1704に書き込まれる。
キャッシュ制御部1706は、プロト−SCSI要求待ち行列1704と使用されたバッファ待ち行列1708からのエントリを取得する。エントリがプロト−SCSI要求待ち行列1704から取得されるとき、このSESTインデックスに関する情報は、SEST情報テーブルから読み込まれる。キャッシュ制御部1706は、どのディスクブロックがこの転送のために要求されるかを計算し、ディスクブロック番号とアクセスされるべきディスク装置のハッシュルックアップを用いるキャッシュバッファ位置にこれを翻訳する。もし、この転送のために要求される書込みバッファメモリ1736のいずれのバッファも現在他の転送によって使用されているならば、SESTインデックスは、他の転送の完了を持つ顕著な要求待ち行列1710に入れられる。さもなければ、もし、これがREAD転送であり、要求されたバッファのすべてがキャッシュにあるならば、SESTインデックスは、蓄えられたREAD待ち行列1712に入れられる。さもなければ、SESTインデックスは、記憶装置要求待ち行列1714に書き込まれる。このアルゴリズムに対する可能な高度化は、バッファが現在蓄えられているとすれば、同一のバッファの多数のREADが進行中であることを可能にするべきである。
エントリが使用されたバッファ待ち行列1708から取得されるとき、チェックは、いずれの要求が利用可能になるためにこのバッファを待っているか否かについてなされる。これは、最も古い要求で始まる顕著な要求待ち行列を探すことによってなされる。もし、利用可能になるためにこのバッファを待っていた要求が見出されるならば、バッファは、その要求に割り当てられる。もし、その要求がこの転送のために要求されたすべてのバッファを有するならば、SESTインデックスは、記憶装置要求待ち行列1714に書き込まれ、この要求は、顕著な要求待ち行列1710から取り除かれる。さもなければ、その要求は、顕著な要求待ち行列1710に残されたままにされる。
交換要求(ERQ)発生器1716は、記憶装置要求待ち行列1714と部分的なWRITE待ち行列1718からのエントリを取得する。SESTインデックスがいずれかの待ち行列から読み出されるとき、このSESTインデックスに関する情報は、SEST情報テーブルから読み出される。もし、それがREAD転送ならば、ファイバチャネル1/O制御部1720は、適切なディスクからのデータを読み込むように構成される。もし、それがWRITE転送であり、書き込まれるべきすべてのバッファが現在蓄えられているか、あるいは、書き込まれるべきデータが書き込まれるべきバッファを完全に満たしているならば、WRITEは、すぐに実行され得る。書き込まれるべきデータは、WRITEバッファメモリ1736からキャッシュバッファの適切な領域にコピーされる。ファイバチャネルI/O制御部1720は、適切なディスクにデータを書き込むように構成される。さもなければ、図17Aに関連して上述したように、我々は、適切なディスクからの要求されたデータのREADを始めるためにWRITEをする前に、ディスクからのREADをする必要がある。
IMQプロセッサ1722は、入ってくるメッセージ待ち行列1724からのメッセージを取得する。これは、ファイバチャネルI/O制御部1720が完了した変換、または問題に遭遇した変換の待ち行列である。もし、ファイバチャネル変換に問題があったならば、IMQプロセッサ1722は、適切なエラー回復を可能にするために、プロセッサメッセージ待ち行列1726を介してプロセッサにメッセージを送る。もし、変換が許容できたならば、SEST情報は、このSESTインデックスのために読み出される。もし、この変換がWRITE変換の始まりにおけるREAD変換であったならば、SESTインデックスは、部分的なWRITE待ち行列1718に書き込まれる。さもなければ、それは、記憶装置承認待ち行列1728に書き込まれる。
図17Aに関連して上述されるように、プロト−SCSI承認発生器1730は、プロト−SCSI要求を生成する責任を負う。再び、プロト−SCSI応答を生成することができ、それぞれがSESTインデックスを供給する3つの可能な情報源がある。
プロセッサ承認待ち行列1732は、エラーを発生し、エラーが解決されるとすぐにハードウェアに戻ってプロセッサ1738によって解決されなければならない要求を送るために、プロセッサ1738によって用いられる。記憶装置承認待ち行列1728は、通常完了したファイバチャネル要求に送り戻すために用いられる。
これらの待ち行列のいずれかにエントリがあるとき、SESTインデックスは、読み出される。このインデックスのためのSEST情報はそれから読み込まれる。転送のために、ステータス情報に沿って、プロト−SCSI要求が承認を関連付けるのを可能にする同定は、プロト−SCSI承認インターフェース1734の向こう側に戻される。READのために、読まれたデータは、また、プロト−SCSI承認インターフェース1734の向こう側へ戻される。
プロト−SCSI転送が完了されるとすぐに、この転送に関連したすべてのバッファのアドレスは、使用されたバッファ待ち行列1708に書き込まれる。この転送に用いられるあらゆるWRITEバッファメモリは、また、フリーWRITEバッファメモリのプールに戻される。
図18は、ファイル記憶装置を有するコンピュータシステムに関連して、図3に示されるような記憶装置モジュールの使用を示すブロック図である。ここで、記憶装置モジュール1801は、マイクロプロセッサ1802、メモリ1803、ビデオシステム1805のような周辺機器、並びに、記憶装置1809、1810、及び1811を含むコンピュータシステムのためのファイバチャネルホストバスアダプタ及びドライバとして行動する。記憶装置モジュール1801は、PCIバス1807上でPCIブリッジ1804を介してマイクロプロセッサ1802とコンピュータメモリ1803に接続される。記憶装置モジュール1801は、PCIバスから要求を受信し、図17A及び17Bに関連して上述された方法でその要求を処理する。記憶装置モジュール1801は、記憶装置アクセスインターフェース1808を介して記憶装置1809、1810、及び1811にアクセスする。
図19は、本発明の実施の形態、特に、複数のネットワークサブシステムとサービスサブシステムが連続するサブシステム及び/又はモジュールのポート間で通信を確立するために拡張スイッチを利用して使用される一実地の形態の拡大縮小可能性を示すブロック図である。余分なネットワーク接続がユニットの帯域幅能力を増加し、より多くの記憶要素をサポートすることを可能にするために、この実施の形態では、拡張スイッチ1901、1902、1903は、多くのモジュールとともに相互接続するために用いられる。拡張スイッチは、拡張スイッチの一面におけるモジュールから他面におけるあらゆるモジュールまでのあらゆる接続の経路を定める。拡張スイッチは、非ブロック化であり、多数の入力を取得し、特定の接続のために最良なルートを決定する情報処理能力を持つ拡張スイッチ制御モジュールによって制御されてもよい。
図19の実施の形態では、示された全システムは、ネットワークサブシステム1904と類似のサブシステム1908及び1912を含むコラム1921に示される複数のネットワークサブシステムを利用する。それは、ここでは(コラム1922の)ファイルアクセスモジュール、(コラム1923の)ファイルシステムモジュール、及び(コラム1924の)記憶装置モジュールの組み合わせとして実行される複数のサービスサブシステムである。モジュールの各コラム間(及びネットワークサブシステムコラムとファイルアクセスモジュールコラムの間)にスイッチ配置があり、ファイルアクセスプロトコル拡張スイッチ1901、記憶装置アクセス拡張スイッチ1902、及びプロト−SCSIプロトコル拡張スイッチ1903として実行される。ファイルアクセスプロトコルレベルでは、拡張スイッチ1901は、各ファイルアクセスモジュール1905の存在する家業負荷を含む基準に依存して、ネットワークサブシステム1904から特定のファイルアクセスモジュール1905に入ってくるネットワーク接続を動的に割り当てる。
記憶装置アクセスプロトコルレベルでは、拡張スイッチ1902は、ファイルシステムモジュール1906の存在する作業負荷を含む基準に依存して、ファイルアクセスモジュール1905から特定のファイルシステムモジュール1906に入ってくるファイルアクセス接続を動的に割り当てる。
プロト−SCSIプロトコルレベルでは、拡張スイッチ1903は、記憶要素の物理的位置を含む基準に依存して、特定の記憶装置モジュール1907へ入ってくるファイルシステム接続を動的に割り当てる。
その代わりに、アイテム1901、1902、及び1903は、バスとして実装されてもよい。この場合、入力信号を受けるコラム内の各モジュールは、信号の重複処理を避けるためにコラム内の他のモジュールと通信し、それによって、他の信号を扱うために他のモジュールを自由にする。アイテム1901、1902、及び1903がバスまたはスイッチのいずれとして実現されるとしても、ファイル要求への応答が含められるとき、対応する要求からの適切なヘッダ情報が応答ヘッダの便利なフォーマット化を許すために利用可能であるように、システムを通して信号処理パスを追跡することは本発明の範囲内である。
図1は、ファイルサーバーやウェブサーバーのようなネットワークサービスを提供するために配置された本発明の一実施の形態の概略表示である。 図2は、図1に示された実施の形態のブロック図である。 図3は、ファイルサーバーとして配置される実施の形態のブロック図である。 図4は、ウェブサーバーとして配置される実施の形態のブロック図である。 図5は、図2〜4の実施の形態のネットワークサブシステムである。 図6は、図5のネットワークサブシステムのブロック図である。 図7は、図6のネットワークサブシステムの受信モジュールのブロック図である。 図8は、図6のネットワークサブシステムの送信モジュールのブロック図である。 図9は、ワークステーション又はサーバーのようなネットワークノードで使用するネットワークインターフェースアダプタとして、図5のネットワークサブシステムの使用を例証するブロック図である。 図10は、図3に例証されるような一実施の形態で使用する図3のSMBサービスモジュール33とファイルシステムモジュール34のハードウェアで実行される組み合わせのブロック図である。 図11は、図3に例証されるような一実施の形態で使用する図3のSMBサービスモジュール33とファイルシステムモジュール34のハードウェア加速の組み合わせのブロック図である。 図12Aは、それぞれ図3又は図4のアイテム33又は34めようなハードウェアで実行されるサービルモジュールのブロック図である。図12Bは、それぞれ図3又は図4のアイテム34又は44のようなハードウェアで実行されるファイルモジュールのブロック図である。図12Cは、組み合わされたサービスモジュールとファイルモジュールを提供する図10のハードウェアで実行されるサービスサブシステムの詳細なブロック図である。 図13は、図11のハードウェア加速サービスサブシステムの詳細なブロック図である。 図14は、多数のサービス要求を多数のスレッドとして扱うために、ソフトウェアで実行される典型的な先行技術アプローチを表すフローチャートである。 図15は、図2のサービスサブシステムと、例えば、図12及び13の実施の形態とを関連して使用するために、多数のサービス要求の処理を示すフローチャートである 図16は、ファイル記憶装置を有するコンピュータシステムに関連して、図3に示されるようなファイルシステムモジュールの使用を示すブロック図である。 図17Aは、図3の記憶装置モジュールにおけるデータフローのブロック図である。図17Bは、図3の記憶装置モジュールにおける制御フローのブロック図である。 図18は、ファイル記憶装置を有するコンピュータシステムに関連して、図3に示されるような記憶装置モジュールの使用を示すブロック図である。 図19は、本発明の実施の形態、特に、複数のネットワークサブシステムとサービスサブシステムが連続するサブシステム及び/又はモジュールのポート間で通信するための拡張スイッチを利用して使用される一実地の形態の拡大縮小可能性を示すブロック図である。

Claims (1)

  1. ネットワークノードからネットワークを介してネットワークサービス要求を受信し、前記ネットワークサービス要求を扱って、記憶装置に記憶装置アクセス要求を送信する要求処理装置であって、
    ソフトウェアプログラムの制御下にありシステムバスに接続されたプロセッサと
    前記ネットワークサービス要求を受信するネットワークサブシステムと、
    前記ネットワークサブシステムに接続され前記記憶装置アクセス要求を前記記憶装置に送信するサービスサブシステムと
    を備え、
    前記ネットワークサブシステム及びサービスサブシステムは、前記システムバスから独立した受信高速パスインターフェース及び送信高速パスインターフェースにより接続され、
    前記ネットワークサブシステム及び前記サービスサブシステムは、それぞれ、前記ソフトウェアプログラムの直接の制御外で駆動する専用ハードウェアであり、
    前記ネットワークサブシステムは、
    前記システムバスと前記受信高速パスインターフェースとに接続されており、前記ネットワークサービス要求を前記サービスサブシステム或いは前記プロセッサに予定されているのかを決定し、前記サービスサブシステムに予定されているカプセルから取り出したネットワークサービス要求を、前記受信高速パスインターフェースを介して前記サービスサブシステムに送信する受信モジュールと、
    前記システムバスと前記送信高速パスインターフェースとに接続されており、前記ネットワークサービス要求のネットワークサービス応答を、前記サービスサブシステムから前記送信高速パスインターフェースを介して受信し、前記ネットワークサービス応答を前記ネットワークノードに送信する送信モジュールと
    を備え、
    前記サービスサブシステムは、
    前記ネットワークサービス要求を受信し前記記憶装置アクセス要求を発するサービス/ファイルシステムモジュールと、
    前記サービス/ファイルシステムモジュールから前記記憶装置アクセス要求を受信し、前記記憶装置アクセス要求を記憶装置に送信する記憶装置モジュールと
    を備え、
    前記サービス/ファイルシステムモジュールが、
    前記システムバスと前記受信高速パスインターフェースとに接続されており、前記受信高速パスインターフェースを介して前記ネットワークサービス要求を受信し、前記記憶装置アクセス要求を発する受信器と、
    前記システムバスと前記送信高速パスインターフェースとに接続されており、前記記憶装置アクセス要求の記憶装置アクセス応答を前記記憶装置モジュールから受信し、前記記憶装置アクセス応答に基づくネットワークサービス応答を生成し、前記ネットワークサービス応答を、前記送信高速パスインターフェースを介して前記ネットワークサブシステムの前記送信モジュールに送信する送信器と、
    前記システムバス、前記受信高速パスインターフェース及び前記送信高速パスインターフェースから独立しており前記受信器と前記送信器とを結ぶ専用バスと、
    前記システムバス、前記受信高速パスインターフェース及び前記送信高速パスインターフェースのいずれにも接続されておらず前記専用バスに接続されており前記受信器及び前記送信器の処理を制御する専用プロセッサと
    を備え、
    前記受信器が、
    前記ネットワークサービス要求で要求されたデータの物理的位置の要求を出し、その要求の応答を受けて、第1の待ち行列に入れ、第1の待ち行列内の応答を基に、アクセス要求を発する受信制御エンジンと、
    前記物理的位置の要求を受けて、その要求を第2の待ち行列に入れ、前記第2の待ち行列内の要求を処理することで、前記物理的位置を表す情報を発し、その要求の応答を前記受信制御エンジンに送る物理位置制御エンジンと、
    前記受信制御エンジンからの前記アクセス要求と前記物理位置制御エンジンからの前記物理的位置を表す情報とを基に前記記憶装置アクセス要求を生成する生成エンジンと、
    前記生成エンジンにより生成された前記記憶装置アクセス要求を発する要求送信インターフェースと
    を備え、
    前記記憶装置モジュールが、
    前記記憶装置アクセス要求を受信し、前記記憶装置アクセス要求を前記記憶装置に適したフォーマットに変換する要求インターフェースと、
    前記記憶装置からの応答を取得し、その応答を前記サービス/ファイルシステムモジュールに適したフォーマットに変換する承認インターフェースと、
    データの部分への高速読込アクセスを可能にするために前記記憶装置に含まれるデータの一部のローカルコピーを保持するキャッシュ制御部と
    を備え、
    前記ネットワークノードから前記ネットワークサービス要求を受信したか否かの判断を含んだ第1のループと、記憶装置アクセス要求が完了したか否かを含んだ第2のループとで構成された単一スレッドが実行されるようになっており、
    前記ネットワークサブシステムにおいて前記第1のループが実行され、前記サービスサブシステムにおいて前記第2のループが実行される、
    ことを特徴とする要求処理装置。
JP2001530282A 1999-10-14 2000-10-12 ハードウェア実行又はオペレーティングシステム機能の加速のための装置及び方法 Expired - Fee Related JP5220974B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US41855899A 1999-10-14 1999-10-14
US09/418,558 1999-10-14
PCT/EP2000/010277 WO2001028179A2 (en) 1999-10-14 2000-10-12 Apparatus and method for hardware implementation or acceleration of operating system functions

Publications (3)

Publication Number Publication Date
JP2003511777A JP2003511777A (ja) 2003-03-25
JP2003511777A5 JP2003511777A5 (ja) 2007-12-06
JP5220974B2 true JP5220974B2 (ja) 2013-06-26

Family

ID=23658637

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2001530282A Expired - Fee Related JP5220974B2 (ja) 1999-10-14 2000-10-12 ハードウェア実行又はオペレーティングシステム機能の加速のための装置及び方法

Country Status (6)

Country Link
US (3) US6826615B2 (ja)
EP (2) EP1912124B8 (ja)
JP (1) JP5220974B2 (ja)
AT (1) ATE390788T1 (ja)
DE (1) DE60038448T2 (ja)
WO (1) WO2001028179A2 (ja)

Families Citing this family (91)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2001013583A2 (en) 1999-08-16 2001-02-22 Iready Corporation Internet jack
US6983350B1 (en) 1999-08-31 2006-01-03 Intel Corporation SDRAM controller for parallel processor architecture
JP5220974B2 (ja) * 1999-10-14 2013-06-26 ブルアーク ユーケー リミテッド ハードウェア実行又はオペレーティングシステム機能の加速のための装置及び方法
US6532509B1 (en) 1999-12-22 2003-03-11 Intel Corporation Arbitrating command requests in a parallel multi-threaded processing system
US6694380B1 (en) 1999-12-27 2004-02-17 Intel Corporation Mapping requests from a processing unit that uses memory-mapped input-output space
US6661794B1 (en) 1999-12-29 2003-12-09 Intel Corporation Method and apparatus for gigabit packet assignment for multithreaded packet processing
US7155539B2 (en) * 2000-04-17 2006-12-26 Circadence Corporation Conductor gateway buffer prioritization
US20020116397A1 (en) 2000-12-21 2002-08-22 Berg Mitchell T. Method and system for communicating an information packet through multiple router devices
US7546369B2 (en) * 2000-12-21 2009-06-09 Berg Mitchell T Method and system for communicating a request packet in response to a state
US7418522B2 (en) * 2000-12-21 2008-08-26 Noatak Software Llc Method and system for communicating an information packet through multiple networks
US7287090B1 (en) * 2000-12-21 2007-10-23 Noatak Software, Llc Method and system for identifying a computing device in response to a request packet
US7512686B2 (en) * 2000-12-21 2009-03-31 Berg Mitchell T Method and system for establishing a data structure of a connection with a client
US7421505B2 (en) * 2000-12-21 2008-09-02 Noatak Software Llc Method and system for executing protocol stack instructions to form a packet for causing a computing device to perform an operation
US7200696B2 (en) * 2001-04-06 2007-04-03 International Business Machines Corporation System method structure in network processor that indicates last data buffer of frame packet by last flag bit that is either in first or second position
US7428636B1 (en) * 2001-04-26 2008-09-23 Vmware, Inc. Selective encryption system and method for I/O operations
US7260820B1 (en) 2001-04-26 2007-08-21 Vm Ware, Inc. Undefeatable transformation for virtual machine I/O operations
US6834307B2 (en) * 2001-06-26 2004-12-21 Intel Corporation Event-based application layer switching for high-speed protocol processing
JP2003030018A (ja) * 2001-07-13 2003-01-31 Sony Corp データ通信装置および方法、データ通信システム、情報処理装置および方法、記録媒体、並びにプログラム
US20030033354A1 (en) * 2001-08-08 2003-02-13 Schulz Kenneth Joseph System and method for caching entitlement sets
WO2003021443A1 (en) * 2001-08-31 2003-03-13 Adaptec, Inc. Systems and methods for implementing host-based security in a computer network
US7126952B2 (en) * 2001-09-28 2006-10-24 Intel Corporation Multiprotocol decapsulation/encapsulation control structure and packet protocol conversion method
US20030065856A1 (en) * 2001-10-03 2003-04-03 Mellanox Technologies Ltd. Network adapter with multiple event queues
US6941425B2 (en) * 2001-11-12 2005-09-06 Intel Corporation Method and apparatus for read launch optimizations in memory interconnect
US20030093632A1 (en) * 2001-11-12 2003-05-15 Intel Corporation Method and apparatus for sideband read return header in memory interconnect
JP2003264596A (ja) * 2002-03-07 2003-09-19 Mitsubishi Electric Corp 通信デバイス、携帯端末、通信方法を実現するためのプログラム
US7584279B1 (en) * 2002-07-02 2009-09-01 Netapp, Inc. System and method for mapping block-based file operations to file level protocols
US7934021B2 (en) 2002-08-29 2011-04-26 Broadcom Corporation System and method for network interfacing
US7346701B2 (en) * 2002-08-30 2008-03-18 Broadcom Corporation System and method for TCP offload
US8631162B2 (en) * 2002-08-30 2014-01-14 Broadcom Corporation System and method for network interfacing in a multiple network environment
US8214531B2 (en) * 2002-10-24 2012-07-03 Emulex Design & Manufacturing Corporation Network configuration synchronization for hardware accelerated network protocol
US8041735B1 (en) 2002-11-01 2011-10-18 Bluearc Uk Limited Distributed file system and method
US7457822B1 (en) 2002-11-01 2008-11-25 Bluearc Uk Limited Apparatus and method for hardware-based file system
EP1826968B1 (en) * 2003-01-23 2017-07-26 Cisco Technology, Inc. Methods and devices for transmitting data between storage area networks
US7957409B2 (en) 2003-01-23 2011-06-07 Cisco Technology, Inc. Methods and devices for transmitting data between storage area networks
US7738493B2 (en) 2003-01-23 2010-06-15 Cisco Technology, Inc. Methods and devices for transmitting data between storage area networks
US7353299B2 (en) 2003-05-29 2008-04-01 International Business Machines Corporation Method and apparatus for managing autonomous third party data transfers
US7356622B2 (en) * 2003-05-29 2008-04-08 International Business Machines Corporation Method and apparatus for managing and formatting metadata in an autonomous operation conducted by a third party
US7873110B2 (en) * 2003-06-17 2011-01-18 Broadcom Corporation MPEG smart video transport processor with different transport packet handling
US20050055604A1 (en) * 2003-09-04 2005-03-10 Chih-Wei Chen Batch processing wakeup/sleep mode switching control method and system
US20050165932A1 (en) * 2004-01-22 2005-07-28 International Business Machines Corporation Redirecting client connection requests among sockets providing a same service
JP4521206B2 (ja) * 2004-03-01 2010-08-11 株式会社日立製作所 ネットワークストレージシステム、コマンドコントローラ、及びネットワークストレージシステムにおけるコマンド制御方法
DE102004041823B4 (de) * 2004-08-27 2014-03-20 Robert Bosch Gmbh Kommunikationsbaustein mit einem Kommunikationsschnittstellenelement und Kommunikationsschnittstellenelement
KR100619057B1 (ko) * 2004-11-19 2006-08-31 삼성전자주식회사 팩스 데이터 송수신 방법 및 장치
DE102004057410B4 (de) * 2004-11-26 2015-11-12 Robert Bosch Gmbh Anordnung mit einem Schnittstellenmodul und Schnittstellenmodul
US7840682B2 (en) 2005-06-03 2010-11-23 QNX Software Systems, GmbH & Co. KG Distributed kernel operating system
US8667184B2 (en) 2005-06-03 2014-03-04 Qnx Software Systems Limited Distributed kernel operating system
US7653836B1 (en) * 2005-06-10 2010-01-26 American Megatrends, Inc Logging metadata modifications in a data storage system
US8898452B2 (en) * 2005-09-08 2014-11-25 Netapp, Inc. Protocol translation
US20070067488A1 (en) * 2005-09-16 2007-03-22 Ebay Inc. System and method for transferring data
KR100862659B1 (ko) * 2006-01-04 2008-10-10 삼성전자주식회사 인터넷 스토리지에 접근하는 방법 및 장치
US20080098120A1 (en) * 2006-10-23 2008-04-24 Microsoft Corporation Authentication server auditing of clients using cache provisioning
US20080155050A1 (en) * 2006-12-23 2008-06-26 Simpletech, Inc. Direct file transfer host processor
US20090043776A1 (en) * 2006-12-23 2009-02-12 Simpletech, Inc. System and method for direct file transfer in a computer network
US20080155051A1 (en) * 2006-12-23 2008-06-26 Simpletech, Inc. Direct file transfer system and method for a computer network
US9110920B1 (en) * 2007-05-03 2015-08-18 Emc Corporation CIFS access to NFS files and directories by translating NFS file handles into pseudo-pathnames
KR100889670B1 (ko) * 2007-08-08 2009-03-19 삼성에스디에스 주식회사 모바일 디바이스상에서 tcp 기반의 서비스거부 공격의 차단 방법
US7925794B2 (en) * 2007-08-17 2011-04-12 At&T Intellectual Property I, L.P. Systems and methods for localizing a network storage device
US7937449B1 (en) * 2007-10-08 2011-05-03 Empirix, Inc. System and method for enabling network stack processes in user mode and kernel mode to access kernel memory locations
JP5132417B2 (ja) * 2008-05-13 2013-01-30 キヤノン株式会社 データ処理装置、データ処理方法、及びコンピュータプログラム
US8327014B2 (en) * 2008-06-30 2012-12-04 Cisco Technology, Inc. Multi-layer hardware-based service acceleration (MHSA)
WO2010045089A1 (en) * 2008-10-08 2010-04-22 Sourcefire, Inc. Target-based smb and dce/rpc processing for an intrusion detection system or intrusion prevention system
US7987162B2 (en) 2009-03-06 2011-07-26 Bluearc Uk Limited Data compression in a file storage system
US8489685B2 (en) 2009-07-17 2013-07-16 Aryaka Networks, Inc. Application acceleration as a service system and method
US8335820B1 (en) * 2009-12-15 2012-12-18 Emc Corporation Techniques for persistence of connections
US9235531B2 (en) 2010-03-04 2016-01-12 Microsoft Technology Licensing, Llc Multi-level buffer pool extensions
US8712984B2 (en) * 2010-03-04 2014-04-29 Microsoft Corporation Buffer pool extension for database server
US20120330455A1 (en) * 2010-03-15 2012-12-27 Cimatron Ltd. Distributed cnc toolpath calculations
US20120054362A1 (en) * 2010-08-31 2012-03-01 Canon Kabushiki Kaisha Mechanism for autotuning mass data transfer from a sender to a receiver over parallel connections
US8732357B2 (en) * 2010-10-28 2014-05-20 International Business Machines Corporation Apparatus and method for dynamically enabling and disabling write XFR—RDY
US20120179874A1 (en) * 2011-01-07 2012-07-12 International Business Machines Corporation Scalable cloud storage architecture
EP2678769B1 (en) 2011-02-23 2017-01-04 ST-Ericsson SA A device controller for a memory device
US8990342B2 (en) * 2011-08-04 2015-03-24 Wyse Technology L.L.C. System and method for client-server communication facilitating utilization of network-based procedure call
US9448846B2 (en) 2011-12-13 2016-09-20 International Business Machines Corporation Dynamically configurable hardware queues for dispatching jobs to a plurality of hardware acceleration engines
US9465632B2 (en) 2012-02-04 2016-10-11 Global Supercomputing Corporation Parallel hardware hypervisor for virtualizing application-specific supercomputers
EP2898424B8 (en) 2012-09-19 2019-08-21 Hitachi Vantara Corporation System and method for managing deduplication using checkpoints in a file storage system
US9141287B2 (en) * 2013-03-15 2015-09-22 Novell, Inc. Remote enabling of storage
WO2015110171A1 (en) 2014-01-24 2015-07-30 Hitachi Data Systems Engineering UK Limited Method, system and computer program product for replicating file system objects from a source file system to a target file system and for de-cloning snapshot-files in a file system
WO2015135574A1 (en) 2014-03-11 2015-09-17 Hitachi Data Systems Engineering UK Limited Computer program product, method, apparatus and data storage system for controlling write operations in the data storage system
WO2015174972A1 (en) 2014-05-14 2015-11-19 Hitachi Data Systems Engineering UK Limited Method and an apparatus, and related computer-program products, for managing access request to one or more file systems
US10318194B2 (en) 2014-10-02 2019-06-11 Hitachi Vantara Corporation Method and an apparatus, and related computer-program products, for managing access request in multi-tenancy environments
AT516564A1 (de) * 2014-12-09 2016-06-15 Omicron Electronics Gmbh Entmagnetisierungsvorrichtung und Verfahren zum Entmagnetisieren eines Wandlerkerns
WO2016124959A1 (en) 2015-02-05 2016-08-11 Hitachi Data Systems Engineering UK Limited Management of cloned objects in file systems
US10515054B2 (en) 2015-06-19 2019-12-24 Hitachi Vantara Corporation Fast and efficient multi-threaded algorithm for deleting an arbitrarily wide and deep directory tree using limited system resources
US10049078B1 (en) * 2015-06-25 2018-08-14 Amazon Technologies, Inc. Accessing a memory location using a two-stage hash scheme
US10942815B2 (en) 2015-07-09 2021-03-09 Hitachi, Ltd. Storage control system managing file-level and block-level storage services, and methods for controlling such storage control system
CN105068766B (zh) * 2015-08-14 2017-10-31 上海红神信息技术有限公司 一种基于fpga高速读取磁盘阵列中文件的方法
US10416928B2 (en) 2017-06-15 2019-09-17 Hitachi, Ltd. Data storage system and process for data compression of distributed data in a scalable cluster system and computer program for such data storage system
US11025663B1 (en) * 2018-01-08 2021-06-01 United Services Automobile Association (Usaa) Automated network policy management
CN108717420B (zh) * 2018-04-20 2022-04-15 北京鲸鲨软件科技有限公司 一种分布式文件系统中提高小文件读取效率的方法
US10725931B2 (en) 2018-08-22 2020-07-28 Western Digital Technologies, Inc. Logical and physical address field size reduction by alignment-constrained writing technique
US20210019069A1 (en) * 2019-10-21 2021-01-21 Intel Corporation Memory and storage pool interfaces

Family Cites Families (258)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3702462A (en) 1967-10-26 1972-11-07 Delaware Sds Inc Computer input-output system
US3588831A (en) * 1968-11-13 1971-06-28 Honeywell Inf Systems Input/output controller for independently supervising a plurality of operations in response to a single command
US3699532A (en) 1970-04-21 1972-10-17 Singer Co Multiprogramming control for a data handling system
CS164932B2 (ja) * 1971-09-07 1975-11-28
US4075691A (en) * 1975-11-06 1978-02-21 Bunker Ramo Corporation Communication control unit
JPS6038740B2 (ja) * 1976-04-19 1985-09-03 株式会社東芝 デ−タ処理装置
US4074072A (en) * 1976-05-24 1978-02-14 Bell Telephone Laboratories, Incorporated Multiprocessor control of a partitioned switching network by control communication through the network
US4079452A (en) * 1976-06-15 1978-03-14 Bunker Ramo Corporation Programmable controller with modular firmware for communication control
US4096567A (en) 1976-08-13 1978-06-20 Millard William H Information storage facility with multiple level processors
US4228496A (en) * 1976-09-07 1980-10-14 Tandem Computers Incorporated Multiprocessor system
US4080649A (en) * 1976-12-16 1978-03-21 Honeywell Information Systems Inc. Balancing the utilization of I/O system processors
US4156907A (en) * 1977-03-02 1979-05-29 Burroughs Corporation Data communications subsystem
US4101960A (en) * 1977-03-29 1978-07-18 Burroughs Corporation Scientific processor
US4156906A (en) * 1977-11-22 1979-05-29 Honeywell Information Systems Inc. Buffer store including control apparatus which facilitates the concurrent processing of a plurality of commands
JPS54111726A (en) 1978-02-22 1979-09-01 Hitachi Ltd Control unit for multiplex virtual memory
US4399503A (en) 1978-06-30 1983-08-16 Bunker Ramo Corporation Dynamic disk buffer control unit
US4253144A (en) 1978-12-21 1981-02-24 Burroughs Corporation Multi-processor communication network
US4240143A (en) 1978-12-22 1980-12-16 Burroughs Corporation Hierarchical multi-processor network for memory sharing
US4377843A (en) * 1979-04-19 1983-03-22 Wescom Switching, Inc. Data distribution interface
FR2472234A1 (fr) 1979-12-21 1981-06-26 Philips Ind Commerciale Protocoles de communication geres par les modules de communication utilises dans un systeme de traitement de donnees reparti
US4333144A (en) * 1980-02-05 1982-06-01 The Bendix Corporation Task communicator for multiple computer system
US4323967A (en) 1980-04-15 1982-04-06 Honeywell Information Systems Inc. Local bus interface for controlling information transfers between units in a central subsystem
US4488231A (en) 1980-09-29 1984-12-11 Honeywell Information Systems Inc. Communication multiplexer having dual microprocessors
US4414624A (en) 1980-11-19 1983-11-08 The United States Of America As Represented By The Secretary Of The Navy Multiple-microcomputer processing
US4385206A (en) * 1980-12-16 1983-05-24 Stromberg-Carlson Corporation Programmable port sense and control signal preprocessor for a central office switching system
FR2500659B1 (fr) 1981-02-25 1986-02-28 Philips Ind Commerciale Dispositif pour l'allocation dynamique des taches d'un ordinateur multiprocesseur
JPS57155666A (en) * 1981-03-20 1982-09-25 Fujitsu Ltd Instruction controlling system of vector processor
ZA821999B (en) 1981-03-31 1983-05-25 British Telecomm Computor or processor control systems
US4445174A (en) * 1981-03-31 1984-04-24 International Business Machines Corporation Multiprocessing system including a shared cache
US4412285A (en) 1981-04-01 1983-10-25 Teradata Corporation Multiprocessor intercommunication system and method
JPS57164340A (en) 1981-04-03 1982-10-08 Hitachi Ltd Information processing method
US4394727A (en) * 1981-05-04 1983-07-19 International Business Machines Corporation Multi-processor task dispatching apparatus
US4456957A (en) 1981-09-28 1984-06-26 Ncr Corporation Apparatus using a decision table for routing data among terminals and a host system
US4442487A (en) * 1981-12-31 1984-04-10 International Business Machines Corporation Three level memory hierarchy using write and share flags
US4448419A (en) 1982-02-24 1984-05-15 Telnaes Inge S Electronic gaming device utilizing a random number generator for selecting the reel stop positions
US4500960A (en) * 1982-06-28 1985-02-19 At&T Bell Laboratories Geographically distributed multiprocessor time-shared communication processing system
US4685125A (en) 1982-06-28 1987-08-04 American Telephone And Telegraph Company Computer system with tasking
US4614841A (en) 1982-06-29 1986-09-30 At&T Bell Laboratories Geographically distributed multiprocessor time-shared communication processing system
US4550368A (en) 1982-07-02 1985-10-29 Sun Microsystems, Inc. High-speed memory and memory management system
US4527232A (en) 1982-07-02 1985-07-02 Sun Microsystems, Inc. High-speed memory and memory management system
US4608631A (en) 1982-09-03 1986-08-26 Sequoia Systems, Inc. Modular computer system
US4626634A (en) 1982-09-30 1986-12-02 At&T Bell Laboratories Multiprocessor computing system featuring shared global control
US4590556A (en) * 1983-01-17 1986-05-20 Tandy Corporation Co-processor combination
US4654654A (en) * 1983-02-07 1987-03-31 At&T Bell Laboratories Data network acknowledgement arrangement
US4536874A (en) 1983-07-21 1985-08-20 Stoffel James C Bandwidth efficient multipoint data communication system
JPS6054052A (ja) 1983-09-02 1985-03-28 Nec Corp 処理継続方式
US4558413A (en) 1983-11-21 1985-12-10 Xerox Corporation Software version management system
US4633245A (en) 1983-12-30 1986-12-30 International Business Machines Corporation Local area network interconnect switching system
US5255369A (en) 1984-03-10 1993-10-19 Encore Computer U.S., Inc. Multiprocessor system with reflective memory data transfer device
US4638427A (en) * 1984-04-16 1987-01-20 International Business Machines Corporation Performance evaluation for an asymmetric multiprocessor system
JP2539352B2 (ja) 1984-06-20 1996-10-02 株式会社日立製作所 階層型多重計算機システム
US4710868A (en) 1984-06-29 1987-12-01 International Business Machines Corporation Interconnect scheme for shared memory local networks
US4604683A (en) 1984-12-10 1986-08-05 Advanced Computer Communications Communication controller using multiported random access memory
US5067071A (en) 1985-02-27 1991-11-19 Encore Computer Corporation Multiprocessor computer system employing a plurality of tightly coupled processors with interrupt vector bus
US4769772A (en) 1985-02-28 1988-09-06 Honeywell Bull, Inc. Automated query optimization method using both global and parallel local optimizations for materialization access planning for distributed databases
US4754395A (en) * 1985-05-06 1988-06-28 Computer X, Inc. Network interface module with minimized data paths
US4694396A (en) 1985-05-06 1987-09-15 Computer X, Inc. Method of inter-process communication in a distributed data processing system
US5113523A (en) 1985-05-06 1992-05-12 Ncube Corporation High performance computer system
US4649473A (en) 1985-06-17 1987-03-10 International Business Machines Corporation Flexible data transmission for message based protocols
US4714995A (en) 1985-09-13 1987-12-22 Trw Inc. Computer integration system
US4719569A (en) * 1985-10-11 1988-01-12 Sun Microsystems, Inc. Arbitrator for allocating access to data processing resources
US4825354A (en) 1985-11-12 1989-04-25 American Telephone And Telegraph Company, At&T Bell Laboratories Method of file access in a distributed processing computer network
JPS62192820A (ja) 1986-02-20 1987-08-24 Mitsubishi Electric Corp マン・マシン・インタフェイス管理方式
US4783705A (en) 1986-02-27 1988-11-08 Quantum Corporation High capacity disk file with embedded sector servo and SCSI interface
US4809169A (en) 1986-04-23 1989-02-28 Advanced Micro Devices, Inc. Parallel, multiple coprocessor computer architecture having plural execution modes
US4727538A (en) 1986-05-20 1988-02-23 American Telephone And Telegraph Company, At&T Bell Laboratories Information transfer method and arrangement
JPH0644700B2 (ja) * 1986-05-20 1994-06-08 三菱電機株式会社 波形等化回路
US4803621A (en) * 1986-07-24 1989-02-07 Sun Microsystems, Inc. Memory access system
US4845609A (en) 1986-07-25 1989-07-04 Systech Corporation Computer communications subsystem using an embedded token-passing network
US4780821A (en) 1986-07-29 1988-10-25 International Business Machines Corp. Method for multiple programs management within a network having a server computer and a plurality of remote computers
US4819159A (en) 1986-08-29 1989-04-04 Tolerant Systems, Inc. Distributed multiprocess transaction processing system and method
US4783730A (en) 1986-09-19 1988-11-08 Datapoint Corporation Input/output control technique utilizing multilevel memory structure for processor and I/O communication
US4766534A (en) 1986-10-16 1988-08-23 American Telephone And Telegraph Company, At&T Bell Laboratories Parallel processing network and method
JPS63100562A (ja) 1986-10-17 1988-05-02 Hitachi Ltd フアイルシステム管理方式
US5764922A (en) 1986-11-04 1998-06-09 Unisys Corporation I/O system for off-loading operating system functions
JPH0821926B2 (ja) 1987-01-12 1996-03-04 株式会社東芝 情報通信ネツトワ−ク
US4887204A (en) 1987-02-13 1989-12-12 International Business Machines Corporation System and method for accessing remote files in a distributed networking environment
US4897781A (en) 1987-02-13 1990-01-30 International Business Machines Corporation System and method for using cached data at a local node after re-opening a file at a remote node in a distributed networking environment
US5001628A (en) * 1987-02-13 1991-03-19 International Business Machines Corporation Single system image uniquely defining an environment for each user in a data processing system
US5133053A (en) 1987-02-13 1992-07-21 International Business Machines Corporation Interprocess communication queue location transparency
US4914657A (en) * 1987-04-15 1990-04-03 Allied-Signal Inc. Operations controller for a fault tolerant multiple node processing system
US5201040A (en) 1987-06-22 1993-04-06 Hitachi, Ltd. Multiprocessor system having subsystems which are loosely coupled through a random access storage and which each include a tightly coupled multiprocessor
US5113496A (en) 1987-08-04 1992-05-12 Mccalley Karl W Bus interconnection structure with redundancy linking plurality of groups of processors, with servers for each group mounted on chassis
US4903258A (en) * 1987-08-21 1990-02-20 Klaus Kuhlmann Modularly structured digital communications system
US5109515A (en) 1987-09-28 1992-04-28 At&T Bell Laboratories User and application program transparent resource sharing multiple computer interface architecture with kernel process level transfer of user requested services
JPH01108675A (ja) 1987-10-21 1989-04-25 Hitachi Ltd 電子伝票処理システム
JP2644780B2 (ja) 1987-11-18 1997-08-25 株式会社日立製作所 処理依頼機能を持つ並列計算機
IL88165A (en) 1987-12-21 1993-01-31 Honeywell Bull Apparatus and method for a data processing system having a peer relationship among a plurality of central processing units
US5050070A (en) 1988-02-29 1991-09-17 Convex Computer Corporation Multi-processor computer system having self-allocating processors
US4993017A (en) * 1988-03-15 1991-02-12 Siemens Aktiengesellschaft Modularly structured ISDN communication system
US4875206A (en) 1988-03-31 1989-10-17 American Telephone And Telegraph Comopany, At&T Bell Laboratories High bandwidth interleaved buffer memory and control
US4872159A (en) 1988-03-31 1989-10-03 American Telephone And Telegraph Company At&T Bell Laboratories Packet network architecture for providing rapid response time
US4899333A (en) 1988-03-31 1990-02-06 American Telephone And Telegraph Company At&T Bell Laboratories Architecture of the control of a high performance packet switching distribution network
US4872157A (en) 1988-03-31 1989-10-03 American Telephone And Telegraph Company, At&T Bell Laboratories Architecture and organization of a high performance metropolitan area telecommunications packet network
US4922486A (en) 1988-03-31 1990-05-01 American Telephone And Telegraph Company User to network interface protocol for packet communications networks
US4914583A (en) 1988-04-13 1990-04-03 Motorola, Inc. Method of indicating processes resident within a cell of a data processing system
US5008814A (en) 1988-08-15 1991-04-16 Network Equipment Technologies, Inc. Method and apparatus for updating system software for a plurality of data processing units in a communication network
US4991133A (en) * 1988-10-07 1991-02-05 International Business Machines Corp. Specialized communications processor for layered protocols
US5262965A (en) 1988-10-31 1993-11-16 Bts-Broadcast Television Systems, Inc. System and method for high speed computer graphics image computation using a parallel connected, asynchronous multiprocessor ring coupled to a synchronous special purpose video processing ring
EP0367182A3 (en) 1988-10-31 1992-07-22 Bts Broadcast Television Systems Gmbh High-speed digital computing system
IT1227360B (it) 1988-11-18 1991-04-08 Honeywell Bull Spa Sistema multiprocessore di elaborazione dati con replicazione di dati globali.
US5073852A (en) 1988-12-16 1991-12-17 Cayman Systems, Inc. Network protocol translator including method and apparatus for reducing interprocess communication and data exchange overhead
JPH02297229A (ja) 1989-03-03 1990-12-07 Xerox Corp データベース・システム
US5210824A (en) 1989-03-03 1993-05-11 Xerox Corporation Encoding-format-desensitized methods and means for interchanging electronic document as appearances
US5036459A (en) 1989-03-09 1991-07-30 U.S. Philips Corporation Multi-processor computer system with distributed memory and an interprocessor communication mechanism, and method for operating such mechanism
US5303344A (en) * 1989-03-13 1994-04-12 Hitachi, Ltd. Protocol processing apparatus for use in interfacing network connected computer systems utilizing separate paths for control information and data transfer
JP2993728B2 (ja) * 1990-02-23 1999-12-27 株式会社日立製作所 プロトコル高速処理装置
US5058110A (en) 1989-05-03 1991-10-15 Ultra Network Technologies Protocol processor
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
US5283868A (en) * 1989-05-17 1994-02-01 International Business Machines Corp. Providing additional system characteristics to a data processing system through operations of an application program, transparently to the operating system
US5113522A (en) 1989-05-17 1992-05-12 International Business Machines Corporation Data processing system with system resource management for itself and for an associated alien processor
US5359713A (en) 1989-06-01 1994-10-25 Legato Systems, Inc. Method and apparatus for enhancing synchronous I/O in a computer system with a non-volatile memory and using an acceleration device driver in a computer operating system
US5557798A (en) 1989-07-27 1996-09-17 Tibco, Inc. Apparatus and method for providing decoupling of data exchange details for providing high performance communication between software processes
US5113500A (en) 1989-08-23 1992-05-12 Unisys Corporation Multiple cooperating and concurrently operating processors using individually dedicated memories
US5371885A (en) 1989-08-29 1994-12-06 Microsoft Corporation High performance file system
US5163131A (en) 1989-09-08 1992-11-10 Auspex Systems, Inc. Parallel i/o network file server architecture
EP0490988A4 (en) 1989-09-08 1993-05-12 Auspex Systems, Inc. Enhanced vmebus protocol utilizing pseudosynchronous handshaking and block mode data transfer
DE69033092D1 (de) 1989-09-08 1999-06-10 Auspex Systems Inc Santa Clara Betriebssystemaufbau mit mehreren verarbeitungseinheiten
US5185857A (en) 1989-12-13 1993-02-09 Rozmanith A Martin Method and apparatus for multi-optional processing, storing, transmitting and retrieving graphical and tabular data in a mobile transportation distributable and/or networkable communications and/or data processing system
US5276860A (en) 1989-12-19 1994-01-04 Epoch Systems, Inc. Digital data processor with improved backup storage
US5179702A (en) 1989-12-29 1993-01-12 Supercomputer Systems Limited Partnership System and method for controlling a highly parallel multiprocessor using an anarchy based scheduler for parallel execution thread scheduling
US5175825A (en) 1990-02-02 1992-12-29 Auspex Systems, Inc. High speed, flexible source/destination data burst direct memory access controller
US5118975A (en) 1990-03-05 1992-06-02 Thinking Machines Corporation Digital clock buffer circuit providing controllable delay
US5218697A (en) * 1990-04-18 1993-06-08 Microsoft Corporation Method and system for networking computers having varying file architectures
EP0463207B1 (de) * 1990-06-26 1995-03-08 Siemens Aktiengesellschaft Programmgesteuerte Kommunikationsanlage
CA2045799C (en) 1990-07-11 1999-03-23 Kenneth L. Thompson File system with read/write and read only storage
CA2087735A1 (en) 1990-07-20 1992-01-21 Yuan Shi System for high-level virtual computer with heterogeneous operating systems
JP2888958B2 (ja) 1990-10-20 1999-05-10 富士通株式会社 部分書き換え可能な記憶媒体におけるファイル管理方式
US5673394A (en) 1990-10-31 1997-09-30 Microsoft Corporation Method of sharing memory between an operating system and an application program
US5102824A (en) * 1990-11-05 1992-04-07 California Institute Of Technology Method of manufacturing a distributed light emitting diode flat-screen display for use in televisions
US5367698A (en) 1991-10-31 1994-11-22 Epoch Systems, Inc. Network file migration system
US5243699A (en) 1991-12-06 1993-09-07 Maspar Computer Corporation Input/output system for parallel processing arrays
US6256642B1 (en) 1992-01-29 2001-07-03 Microsoft Corporation Method and system for file system management using a flash-erasable, programmable, read-only memory
GB2264843B (en) * 1992-02-28 1995-09-20 Texas Instruments Ltd An interface device for coupling a host device having a network interface to a computer network having a predetermined communications medium
JPH07504527A (ja) 1992-03-09 1995-05-18 オースペックス システムズ インコーポレイテッド 高性能の不揮発性ram保護式の書き込みキャッシュアクセラレータシステム
JP3213766B2 (ja) 1992-03-16 2001-10-02 株式会社日立製作所 レプリケートファイル更新システム
US5319752A (en) * 1992-09-18 1994-06-07 3Com Corporation Device with host indication combination
JP3181592B2 (ja) * 1992-12-01 2001-07-03 マイクロソフト コーポレイション 埋め込まれたオブジェクトとイン・プレース対話するための方法及びシステム
GB9300913D0 (en) * 1993-01-19 1993-03-10 Madge Networks Ltd Interface apparatus
US5519853A (en) 1993-03-11 1996-05-21 Legato Systems, Inc. Method and apparatus for enhancing synchronous I/O in a computer system with a non-volatile memory and using an acceleration device driver in a computer operating system
EP0622922B1 (en) 1993-04-29 2000-11-29 International Business Machines Corporation Method and device of multicasting data in a communications system
DE69425658T2 (de) 1993-06-03 2001-04-19 Network Appliance Inc Anordnung eines dateisystems zum beschreiben beliebiger bereiche
US7174352B2 (en) 1993-06-03 2007-02-06 Network Appliance, Inc. File system image transfer
US5963962A (en) 1995-05-31 1999-10-05 Network Appliance, Inc. Write anywhere file-system layout
EP0701716B1 (en) 1993-06-03 2002-08-14 Network Appliance, Inc. Method and file system for allocating blocks of files to storage space in a RAID disk system
US6604118B2 (en) 1998-07-31 2003-08-05 Network Appliance, Inc. File system image transfer
DE69434381T2 (de) 1993-06-04 2006-01-19 Network Appliance, Inc., Sunnyvale Verfahren zur Paritätsdarstellung in einem Raid-Untersystem unter Verwendung eines nichtflüchtigen Speichers
US5613105A (en) * 1993-06-30 1997-03-18 Microsoft Corporation Efficient storage of objects in a file system
US5699518A (en) 1993-11-29 1997-12-16 Microsoft Corporation System for selectively setting a server node, evaluating to determine server node for executing server code, and downloading server code prior to executing if necessary
JPH07175710A (ja) * 1993-12-20 1995-07-14 Canon Inc データ管理方法及び装置
US5701462A (en) 1993-12-29 1997-12-23 Microsoft Corporation Distributed file system providing a unified name space with efficient name resolution
US5608909A (en) * 1994-04-15 1997-03-04 Microsoft Corporation Method and system for caching presentation data of a source object in a presentation cache
US5657455A (en) 1994-09-07 1997-08-12 Adaptec, Inc. Status indicator for a host adapter
US5960180A (en) 1994-09-07 1999-09-28 Adaptec, Inc. Host adapter integrated circuit having autoaccess pause
US5835953A (en) 1994-10-13 1998-11-10 Vinca Corporation Backup system that takes a snapshot of the locations in a mass storage device that has been identified for updating prior to updating
JP3531074B2 (ja) * 1994-11-28 2004-05-24 富士通株式会社 記憶装置制御システム
US5745752A (en) * 1994-12-13 1998-04-28 Microsoft Corporation Dual namespace client having long and short filenames
JPH0926970A (ja) * 1994-12-20 1997-01-28 Sun Microsyst Inc 情報を検索するコンピュータによる実行方法及び装置
JPH08180006A (ja) * 1994-12-22 1996-07-12 Hitachi Ltd ネットワークインタフェースおよび計算機ネットワークシステム
CA2167790A1 (en) * 1995-01-23 1996-07-24 Donald S. Maier Relational database system and method with high data availability during table data restructuring
US5513314A (en) 1995-01-27 1996-04-30 Auspex Systems, Inc. Fault tolerant NFS server system and mirroring protocol
US5630059A (en) * 1995-02-06 1997-05-13 International Business Machines Corporation Expedited message transfer in a multi-nodal data processing system
US5819306A (en) 1995-02-14 1998-10-06 General Magic Shadow mechanism for a modifiable object oriented system
US5930831A (en) 1995-02-23 1999-07-27 Powerquest Corporation Partition manipulation architecture supporting multiple file systems
JP3123012B2 (ja) * 1995-03-02 2001-01-09 松下電器産業株式会社 マルチメディアサーバー
US5701491A (en) 1995-05-31 1997-12-23 Microsoft Corporation, Inc. Method and system for transitioning the network mode of a workstation
US5675782A (en) 1995-06-06 1997-10-07 Microsoft Corporation Controlling access to objects on multiple operating systems
US5761669A (en) * 1995-06-06 1998-06-02 Microsoft Corporation Controlling access to objects on multiple operating systems
US5628005A (en) * 1995-06-07 1997-05-06 Microsoft Corporation System and method for providing opportunistic file access in a network environment
US6275867B1 (en) * 1995-09-12 2001-08-14 International Business Machines Corporation Operation-partitioned off-loading of operations in a distributed environment
US5845280A (en) 1995-09-25 1998-12-01 Microsoft Corporation Method and apparatus for transmitting a file in a network using a single transmit request from a user-mode process to a kernel-mode process
US5892917A (en) * 1995-09-27 1999-04-06 Microsoft Corporation System for log record and log expansion with inserted log records representing object request for specified object corresponding to cached object copies
US5802288A (en) * 1995-10-26 1998-09-01 International Business Machines Corporation Integrated communications for pipelined computers
US5923846A (en) 1995-11-06 1999-07-13 Microsoft Corporation Method of uploading a message containing a file reference to a server and downloading a file from the server using the file reference
US5742818A (en) * 1995-12-15 1998-04-21 Microsoft Corporation Method and system of converting data from a source file system to a target file system
US5754771A (en) * 1996-02-12 1998-05-19 Sybase, Inc. Maximum receive capacity specifying query processing client/server system replying up to the capacity and sending the remainder upon subsequent request
US5794230A (en) 1996-03-15 1998-08-11 Microsoft Corporation Method and system for creating and searching directories on a server
US5907703A (en) * 1996-05-08 1999-05-25 Mijenix Corporation Device driver for accessing computer files
US6901509B1 (en) 1996-05-14 2005-05-31 Tumbleweed Communications Corp. Apparatus and method for demonstrating and confirming the status of a digital certificates and other data
US5867657A (en) * 1996-06-06 1999-02-02 Microsoft Corporation Distributed scheduling in a multiple data server system
US5958061A (en) 1996-07-24 1999-09-28 Transmeta Corporation Host microprocessor with apparatus for temporarily holding target processor state
US5889952A (en) * 1996-08-14 1999-03-30 Microsoft Corporation Access check system utilizing cached access permissions
US5832205A (en) 1996-08-20 1998-11-03 Transmeta Corporation Memory controller for a microprocessor for detecting a failure of speculation on the physical nature of a component being addressed
US5926832A (en) 1996-09-26 1999-07-20 Transmeta Corporation Method and apparatus for aliasing memory data in an advanced microprocessor
US6034963A (en) 1996-10-31 2000-03-07 Iready Corporation Multiple network protocol encoder/decoder and data processor
US5987506A (en) 1996-11-22 1999-11-16 Mangosoft Corporation Remote access and geographically distributed computers in a globally addressable storage environment
US6487644B1 (en) * 1996-11-22 2002-11-26 Veritas Operating Corporation System and method for multiplexed data back-up to a storage tape and restore operations using client identification tags
US6006228A (en) 1996-12-11 1999-12-21 Ncr Corporation Assigning security levels to particular documents on a document by document basis in a database
JPH10232788A (ja) * 1996-12-17 1998-09-02 Fujitsu Ltd 信号処理装置及びソフトウェア
SG77151A1 (en) * 1997-01-09 2000-12-19 Sun Microsystems Inc Full-featured special purpose network server
US5905855A (en) * 1997-02-28 1999-05-18 Transmeta Corporation Method and apparatus for correcting errors in computer systems
US5950225A (en) 1997-02-28 1999-09-07 Network Appliance, Inc. Fly-by XOR for generating parity for data gleaned from a bus
US5929655A (en) 1997-03-25 1999-07-27 Adaptec, Inc. Dual-purpose I/O circuit in a combined LINK/PHY integrated circuit
WO1998050852A1 (en) 1997-05-08 1998-11-12 Iready Corporation Hardware accelerator for an object-oriented programming language
US6012107A (en) 1997-05-22 2000-01-04 Adaptec, Inc. Hardware control block delivery queues for host adapters and other devices with onboard processors
US6044438A (en) * 1997-07-10 2000-03-28 International Business Machiness Corporation Memory controller for controlling memory accesses across networks in distributed shared memory processing systems
US6088740A (en) 1997-08-05 2000-07-11 Adaptec, Inc. Command queuing system for a hardware accelerated command interpreter engine
US5931920A (en) 1997-08-05 1999-08-03 Adaptec, Inc. Command interpreter system in an I/O controller
US6105075A (en) 1997-08-05 2000-08-15 Adaptec, Inc. Scatter gather memory system for a hardware accelerated command interpreter engine
US6230200B1 (en) * 1997-09-08 2001-05-08 Emc Corporation Dynamic modeling for resource allocation in a file server
US6192408B1 (en) * 1997-09-26 2001-02-20 Emc Corporation Network file server sharing local caches of file access information in data processors assigned to respective file systems
US6434620B1 (en) 1998-08-27 2002-08-13 Alacritech, Inc. TCP/IP offload network interface device
US6591302B2 (en) 1997-10-14 2003-07-08 Alacritech, Inc. Fast-path apparatus for receiving data corresponding to a TCP connection
US6427173B1 (en) * 1997-10-14 2002-07-30 Alacritech, Inc. Intelligent network interfaced device and system for accelerated communication
US6389479B1 (en) * 1997-10-14 2002-05-14 Alacritech, Inc. Intelligent network interface device and system for accelerated communication
US6427171B1 (en) 1997-10-14 2002-07-30 Alacritech, Inc. Protocol processing stack for use with intelligent network interface device
US6470415B1 (en) 1999-10-13 2002-10-22 Alacritech, Inc. Queue system involving SRAM head, SRAM tail and DRAM body
US6226680B1 (en) * 1997-10-14 2001-05-01 Alacritech, Inc. Intelligent network interface system method for protocol processing
US5941969A (en) 1997-10-22 1999-08-24 Auspex Systems, Inc. Bridge for direct data storage device access
US5937169A (en) * 1997-10-29 1999-08-10 3Com Corporation Offload of TCP segmentation to a smart adapter
US6516351B2 (en) 1997-12-05 2003-02-04 Network Appliance, Inc. Enforcing uniform file-locking for diverse file-locking protocols
US6081883A (en) 1997-12-05 2000-06-27 Auspex Systems, Incorporated Processing system with dynamically allocatable buffer memory
JPH11203308A (ja) * 1998-01-13 1999-07-30 Ntt Communication Ware Kk 地図表示装置、地図データベース装置、地図表示方法、および、地図表示プログラムを記録した記録媒体
US6457130B2 (en) 1998-03-03 2002-09-24 Network Appliance, Inc. File access control in a multi-protocol file server
US6317844B1 (en) 1998-03-10 2001-11-13 Network Appliance, Inc. File server storage arrangement
US6269252B1 (en) * 1998-05-27 2001-07-31 Motorola, Inc. Programmable bridging apparatus to connect multiple networks of different protocols
US6070200A (en) * 1998-06-02 2000-05-30 Adaptec, Inc. Host adapter having paged data buffers for continuously transferring data between a system bus and a peripheral bus
US6085278A (en) 1998-06-02 2000-07-04 Adaptec, Inc. Communications interface adapter for a computer system including posting of system interrupt status
US6765901B1 (en) 1998-06-11 2004-07-20 Nvidia Corporation TCP/IP/PPP modem
US6279011B1 (en) 1998-06-19 2001-08-21 Network Appliance, Inc. Backup and restore for heterogeneous file server environment
US6263445B1 (en) * 1998-06-30 2001-07-17 Emc Corporation Method and apparatus for authenticating connections to a storage system coupled to a network
US6604236B1 (en) 1998-06-30 2003-08-05 Iora, Ltd. System and method for generating file updates for files stored on read-only media
US6192375B1 (en) * 1998-07-09 2001-02-20 Intel Corporation Method and apparatus for managing files in a storage medium
US6119244A (en) 1998-08-25 2000-09-12 Network Appliance, Inc. Coordinating persistent status information with multiple file servers
US6425034B1 (en) 1998-10-30 2002-07-23 Agilent Technologies, Inc. Fibre channel controller having both inbound and outbound control units for simultaneously processing both multiple inbound and outbound sequences
US6871224B1 (en) 1999-01-04 2005-03-22 Cisco Technology, Inc. Facility to transmit network management data to an umbrella management system
US6324581B1 (en) * 1999-03-03 2001-11-27 Emc Corporation File server system using file system storage, data movers, and an exchange of meta data among data movers for file locking and direct access to shared file systems
US6564252B1 (en) * 1999-03-11 2003-05-13 Microsoft Corporation Scalable storage system with unique client assignment to storage server partitions
US6446141B1 (en) 1999-03-25 2002-09-03 Dell Products, L.P. Storage server system including ranking of data source
US6442617B1 (en) * 1999-03-31 2002-08-27 3Com Corporation Method and system for filtering multicast packets in a peripheral component environment
US6961749B1 (en) 1999-08-25 2005-11-01 Network Appliance, Inc. Scalable file server with highly available pairs
US6785822B1 (en) 1999-09-16 2004-08-31 International Business Machines Corporation System and method for role based dynamic configuration of user profiles
JP5220974B2 (ja) 1999-10-14 2013-06-26 ブルアーク ユーケー リミテッド ハードウェア実行又はオペレーティングシステム機能の加速のための装置及び方法
US6484177B1 (en) * 2000-01-13 2002-11-19 International Business Machines Corporation Data management interoperability methods for heterogeneous directory structures
US6894976B1 (en) * 2000-06-15 2005-05-17 Network Appliance, Inc. Prevention and detection of IP identification wraparound errors
US6728897B1 (en) 2000-07-25 2004-04-27 Network Appliance, Inc. Negotiating takeover in high availability cluster
US6640233B1 (en) 2000-08-18 2003-10-28 Network Appliance, Inc. Reserving file system blocks
US6751635B1 (en) * 2000-08-18 2004-06-15 Network Appliance, Inc. File deletion and truncation using a zombie file space
US6910154B1 (en) * 2000-08-18 2005-06-21 Network Appliance, Inc. Persistent and reliable delivery of event messages
US6862648B2 (en) 2000-10-30 2005-03-01 Sun Microsystems, Inc. Interface emulation for storage devices
US7003780B2 (en) * 2000-12-11 2006-02-21 International Business Machines Corporation Method and an apparatus to extend the logic volume manager model to allow device management plug-ins
US20020161846A1 (en) 2001-01-29 2002-10-31 Ulrich Thomas R. Data path controller architecture
JP4457184B2 (ja) * 2001-02-13 2010-04-28 ネットアップ,インコーポレイテッド ストレージシステムにおけるフェイルオーバー処理
US6799284B1 (en) 2001-02-28 2004-09-28 Network Appliance, Inc. Reparity bitmap RAID failure recovery
US6728735B1 (en) 2001-03-12 2004-04-27 Network Appliance, Inc. Restartable dump that produces a consistent filesystem on tapes
US6668264B1 (en) 2001-04-03 2003-12-23 Network Appliance, Inc. Resynchronization of a target volume with a source volume
US6748380B2 (en) 2001-05-14 2004-06-08 International Business Machines Corporation Method, system, and program product for permission to access software
US6928478B1 (en) 2001-06-25 2005-08-09 Network Appliance, Inc. Method and apparatus for implementing a MAC address pool for assignment to a virtual interface aggregate
US6944785B2 (en) 2001-07-23 2005-09-13 Network Appliance, Inc. High-availability cluster virtual server system
US6920579B1 (en) 2001-08-20 2005-07-19 Network Appliance, Inc. Operator initiated graceful takeover in a node cluster
US7017084B2 (en) * 2001-09-07 2006-03-21 Network Appliance Inc. Tracing method and apparatus for distributed environments
US6895429B2 (en) * 2001-12-28 2005-05-17 Network Appliance, Inc. Technique for enabling multiple virtual filers on a single filer to participate in multiple address spaces with overlapping network addresses
US6748510B1 (en) 2002-02-28 2004-06-08 Network Appliance, Inc. System and method for verifying disk configuration
US7039828B1 (en) * 2002-02-28 2006-05-02 Network Appliance, Inc. System and method for clustered failover without network support
US7007046B2 (en) * 2002-03-19 2006-02-28 Network Appliance, Inc. Format for transmission file system information between a source and a destination
US6983296B1 (en) * 2002-08-12 2006-01-03 Network Appliance, Inc. System and method for tracking modified files in a file system
US7080223B2 (en) 2002-10-15 2006-07-18 International Business Machines Corporation Apparatus and method to manage and copy computer files
US7373366B1 (en) * 2005-06-10 2008-05-13 American Megatrends, Inc. Method, system, apparatus, and computer-readable medium for taking and managing snapshots of a storage volume

Also Published As

Publication number Publication date
ATE390788T1 (de) 2008-04-15
US8028115B2 (en) 2011-09-27
US20090292850A1 (en) 2009-11-26
WO2001028179A2 (en) 2001-04-19
EP1188294A2 (en) 2002-03-20
US8180897B2 (en) 2012-05-15
EP1912124B1 (en) 2012-12-05
EP1188294B1 (en) 2008-03-26
JP2003511777A (ja) 2003-03-25
US6826615B2 (en) 2004-11-30
WO2001028179A9 (en) 2002-09-06
EP1912124B8 (en) 2013-01-09
US20020065924A1 (en) 2002-05-30
EP1912124A2 (en) 2008-04-16
WO2001028179A3 (en) 2001-12-20
DE60038448T2 (de) 2009-04-02
US20050021764A1 (en) 2005-01-27
DE60038448D1 (de) 2008-05-08
EP1912124A3 (en) 2008-05-14

Similar Documents

Publication Publication Date Title
JP5220974B2 (ja) ハードウェア実行又はオペレーティングシステム機能の加速のための装置及び方法
US20040210584A1 (en) Method and apparatus for increasing file server performance by offloading data path processing
US7664892B2 (en) Method, system, and program for managing data read operations on network controller with offloading functions
KR100437146B1 (ko) 지능망 인터페이스 장치 및 통신 가속 시스템
US5630059A (en) Expedited message transfer in a multi-nodal data processing system
US20050235072A1 (en) Data storage controller
US8423529B1 (en) System, device, and method for running third-party data processing applications virtualized on a NAS server
US20080155051A1 (en) Direct file transfer system and method for a computer network
US20090043886A1 (en) OPTIMIZING VIRTUAL INTERFACE ARCHITECTURE (VIA) ON MULTIPROCESSOR SERVERS AND PHYSICALLY INDEPENDENT CONSOLIDATED VICs
US7506080B2 (en) Parallel processing of frame based data transfers
JP2004510252A (ja) インテリジェントネットワークストレージインタフェースシステム及びデバイス
JP2001230833A (ja) フレーム処理方法
US7460531B2 (en) Method, system, and program for constructing a packet
US7404040B2 (en) Packet data placement in a processor cache
US7924859B2 (en) Method and system for efficiently using buffer space
US20060018330A1 (en) Method, system, and program for managing memory requests by devices
US6578096B1 (en) Method and system for efficient I/O operation completion in a fibre channel node
US6108694A (en) Memory disk sharing method and its implementing apparatus
US20090043776A1 (en) System and method for direct file transfer in a computer network
US6526458B1 (en) Method and system for efficient i/o operation completion in a fibre channel node using an application specific integration circuit and determining i/o operation completion status within interface controller
KR20070020289A (ko) 시맨틱 프로세서 저장 서버 구조
US20080228895A1 (en) Direct file transfer host processor
US20080155049A1 (en) Direct file transfer communication processor

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20071012

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20071012

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20100622

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20100915

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20100924

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20101015

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20101022

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20101118

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20101126

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20101222

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20110614

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20111013

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20111124

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A821

Effective date: 20111124

A911 Transfer to examiner for re-examination before appeal (zenchi)

Free format text: JAPANESE INTERMEDIATE CODE: A911

Effective date: 20111216

A912 Re-examination (zenchi) completed and case transferred to appeal board

Free format text: JAPANESE INTERMEDIATE CODE: A912

Effective date: 20120113

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20120606

RD02 Notification of acceptance of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7422

Effective date: 20120606

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20120704

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20120712

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20120731

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20120803

RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20120807

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20130201

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20130307

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20160315

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

S533 Written request for registration of change of name

Free format text: JAPANESE INTERMEDIATE CODE: R313533

R371 Transfer withdrawn

Free format text: JAPANESE INTERMEDIATE CODE: R371

S533 Written request for registration of change of name

Free format text: JAPANESE INTERMEDIATE CODE: R313533

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

LAPS Cancellation because of no payment of annual fees