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

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

Info

Publication number
JP2003511777A
JP2003511777A JP2001530282A JP2001530282A JP2003511777A JP 2003511777 A JP2003511777 A JP 2003511777A JP 2001530282 A JP2001530282 A JP 2001530282A JP 2001530282 A JP2001530282 A JP 2001530282A JP 2003511777 A JP2003511777 A JP 2003511777A
Authority
JP
Japan
Prior art keywords
storage device
service
network
request
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.)
Granted
Application number
JP2001530282A
Other languages
English (en)
Other versions
JP5220974B2 (ja
JP2003511777A5 (ja
Inventor
バレル、ジェフリー・エス
ウィリス、トレバー
ベンハム、サイモン
クーパー、マイケル
マイヤー、ジョナサン
アストン、クリストファー・ジェイ
ウィンフィールド、ジョン
Original Assignee
ブルーアーク・ユーケー・リミテッド
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by ブルーアーク・ユーケー・リミテッド filed Critical ブルーアーク・ユーケー・リミテッド
Publication of 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

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]

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Theoretical Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Mobile Radio Communication Systems (AREA)
  • Computer And Data Communications (AREA)
  • Control Of Position Or Direction (AREA)
  • Communication Control (AREA)
  • Circuits Of Receivers In General (AREA)

Abstract

(57)【要約】 一実施の形態における装置は、ネットワークを介してサービス要求を処理する。そこでは、ネットワークは、プロトコルを利用する。この態様では、装置は、a)ネットワークプロトコルを用いるネットワークサービス要求を送受信するためのネットワークサブシステムと、b)ネットワークサービス要求に応ずるための、ネットワークサブシステムに接続されたサービスサブシステムとを含む。また、この態様では、ネットワークサブシステムとサービスサブシステムの少なくとも一つは、ハードウェアで実行される。ネットワークサブシステムとサービスサブシステムの他方は、随意にハードウェアで加速されてもよい。ファイルサービス及びウェブサービスを含む種々の関連する実施の形態も提供される。

Description

【発明の詳細な説明】
【0001】 発明の技術分野 本発明は、オペレーティングシステム機能及びハードウェア実行、あるいは、
そのような機能の加速に関する。
【0002】 発明の背景技術 コンピュータのオペレーティングシステムは、コンピュータが外部供給源と通
信することを可能にする。オペレーティングシステムは、典型的に、キーボード
、ディスプレイ、ディスク記憶装置、ネットワーク設備、プリンタ、モデムなど
を含むコンピュータ使用法に結び付けられたアイテムの直接制御を扱う。コンピ
ュータのオペレーティングシステムは、典型的に、中央演算処理装置(CPU)
にローカル及びネットワークファイルシステム、メモリ、周辺装置ドライバ、及
びアプリケーション処理を含む処理を管理することを含むタスクを実行させるよ
うに設計される。これらのすべての機能に対する責任をCPU上に置くことは、
特に、オペレーティングシステムが例えば、Windows NT(登録商標)(ワシント
ン州レドモンドのマイクロソフト社から入手可能)、Unix(登録商標)(カリフ
ォルニア州サンタクルーズのSCO Softwareから、及びマサチューセッツ州ケンブ
リッジのRed Hat Softwareの「Linux」と呼ばれるバージョンを含む多くの供給
源から利用可能)、及びNetWare(ユタ州プロヴォのNovellから利用可能)のよ
うに高性能であるとき、重大な処理負担を強要する。負担がアプリケーション結
び付けられた以外の処理を実行するCPU上に置かれると、アプリケーションの
パフォーマンスが低下し得る結果となり、アプリケーションを実行するのに利用
可能なCPU時間が益々小さくなる。それに加えて、CPUの外部装置のスルー
プットは、オペレーティングシステムがこれらの装置を管理する責任をCPU上
に置くとき、CPUによって強要される制限を受けやすい。さらに、CPUを含
み、オペレーティングシステムを実行し、装置に結び付けられるソフトウェア−
ハードウェアシステム全体の信頼性は、とりわけ、オペレーティングシステムに
依存する。オペレーティングシステムに内在する複雑さに起因して、ソフトウェ
ア−ハードウェアシステム全体の安定性を害する不測の状態が発生し得る。
【0003】 発明の概要 この概要で列挙される本発明のある態様は、これより同日に提出された他の出
願の目的である。本発明の一態様では、ネットワークを介してサービス要求を扱
うための装置が提供され、ネットワークはプロトコルを利用する。この態様では
、該装置は、 a.ネットワークプロトコルを用いてネットワークサービス要求を送受信する
ためのネットワークサブシステムと、 b.前記ネットワークサービス要求を満たすための、前記ネットワークサブシ
ステムに接続されるサービスサブシステムとを含む。
【0004】 同じく、この態様では、ネットワークサブシステムとサービスサブシステムの
少なくとも一つは、ハードウェアで実行され、ネットワークサブシステムとサー
ビスサブシステムの他方は、任意的にハードウェアで加速されてもよい。その代
わりに、又はそれに加えて、サービスサブシステムは、ハードウェアで加速され
てもよい。
【0005】 関連する実施の形態では、サービス要求は、長期の電子記憶装置へのデータの
読み込み及び書込みの一つを含み、追加的に、ネットワークサブシステムはハー
ドウェアで加速される。同じく、追加的に、長期の記憶装置は、ネットワークを
介してコンピュータにアクセス可能なネットワークディスク記憶装置である。そ
の代わりに、長期の記憶装置は、ローカルコンピュータにアクセス可能であるが
、ネットワークを介して他のあらゆるコンピュータにはアクセス不可能なローカ
ルディスク記憶装置である。同じく追加的に、長期の記憶装置は、ネットワーク
を介して電子メールの供給に関連し、あるいは、それはネットワーク上のウェブ
ページへのアクセスを供給してもよい。
【0006】 同様に、サービス要求は、記憶装置システムのデータのアクセスを含んでもよ
く、サービスサブシステムもまた、記憶装置システムのデータの記憶を管理する
ためのハードウェアで実行されたモジュールを含んでもよい。したがって、一実
施の形態では、そのような装置がファイルサーバーであって、記憶装置システム
のデータがファイルに配列され、サービス要求は、記憶装置システムのファイル
への要求を含み、サービスサブシステムもまた、記憶装置システムに関連したフ
ァイルシステムを管理するためのハードウェアで実行されたモジュールを含む。
【0007】 もう一つの関連する態様では、プロトコルは、ファイルシステムプロトコルを
含み、ファイルシステムプロトコルは、ファイル読み込み及びファイル書込みを
含む操作を定義する。装置がウェブサーバーであってもよく、記憶装置システム
のデータがウェブページを含んでもよく、サービス要求は、記憶装置システム内
のウェブページのための要求を含んでもよい。同様に、プロトコルがIPを含ん
でもよい。さらなる関連する態様では、記憶装置システムが記憶装置プロトコル
を有し、サービスサブシステムは、記憶装置システムと相互接続するためのハー
ドウェアで実行されたモジュールを含む。
【0008】 もう一つの態様では、ネットワークを介してデータを送受信するためのサブシ
ステムであって、ネットワークは層3及び4の少なくとも一つを有するプロトコ
ルを用い、サブシステムは、 ネットワークからカプセル収納データを受信し、プロトコルに従ってそのよう
なデータをカプセルから出す受信器と、 プロトコルに従ってデータをカプセルに収納し、ネットワークを介してカプセ
ル収納データを送信する送信器とを含む。
【0009】 受信器及び送信器の少なくとも一つはハードウェアで実行され、その代わりに
、又はそれに加えて、受信器及び送信器の少なくとも一つはハードウェアで加速
される。さらなる実施の形態では、ネットワークは、TCP/IPプロトコルを用いる
。関連する実施の形態では、データは、ネットワークを介してパケットで受信さ
れ、各パケットはプロトコルヘッダを有し、サブシステムは、また、受信器によ
って受信される各パケットのプロトコルヘッダ内に含まれる情報から独特な接続
を決定する接続識別子を含む。もう一つの関連する実施の形態では、カプセル収
納データは、ネットワーク接続に関連し、サブシステムは、接続の状態を格納す
る、ネットワーク接続に関連したメモリ領域をさらに含む。
【0010】 もう一つの関連する態様では、記憶装置アクセス要求を生成し得るネットワー
クと記憶装置配置を相互接続するためのサービスサブシステムが提供される。こ
の態様のサービスサブシステムは、 a.ネットワークサービス要求を受信し、そのようなサービス要求を満たし、
そうして、データ記憶装置アクセス要求を発することができるサービスモジュー
ルと、 b.前記サービスモジュールからデータ記憶装置アクセス要求を受信し、その
ような記憶装置アクセス要求を満たし、そうして、記憶装置配置アクセス要求を
発することができる、該サービスモジュールに接続されたファイルシステムモジ
ュールと、 c.前記ファイルシステムモジュールから記憶装置配置アクセス要求を受信し
、そのような記憶装置配置アクセス要求を満たすために、記憶装置配置を制御す
る、該ファイルシステムモジュールに接続された記憶装置モジュールとを含む。
【0011】 モジュールの少なくとも一つはハードウェアで実行され、その代わりに、又は
それに加えて、モジュールの少なくとも一つは、ハードウェアで加速される。関
連する実施の形態では、サービスモジュールは、 i. ネットワークサービス要求を受信し、そのような要求が適切な否か決定し
、もし適切ならば、情報が利用可能か否か応答し、さもなければ、データ記憶装
置アクセス要求を発する、受信制御エンジンと、 ii. 前記受信制御エンジンからの命令に基づいて、ネットワークサービス応
答を生成し、前記データ記憶装置アクセス要求へのデータ記憶装置アクセス応答
がある場合、該データ記憶装置アクセス応答を処理する、送信制御エンジンとを
含む。
【0012】 エンジンの少なくとも一つはハードウェアで実行され、その代わりに、又はそ
れに加えて、エンジンの少なくとも一つはハードウェアで加速される。他の関連
する実施の形態では、サービスサブシステムは、コンピュータのマザーボードに
直接統合され、又は、コンピュータに接続され得るアダプタカードに統合される
【0013】 もう一つの態様では、ネットワークサービス要求を受信し、そのようなサービ
ス要求を満たすサービスモジュールが提供される。そのサービスモジュールは、 a.ネットワークサービスを受信し、そのような要求が適切であるか否かを決
定し、もし適切ならば、情報が利用可能であるか否かを応答し、さもなければ、
データ記憶装置アクセス要求を発する、受信制御エンジンと、 b.前記受信制御エンジンからの命令に基づいて、ネットワークサービス応答
を受信し、前記データ記憶装置アクセス要求へのデータ記憶装置アクセス応答が
ある場合、該データ記憶装置アクセス応答を処理する、送信制御エンジンとを含
む。
【0014】 エンジンの少なくとも一つはハードウェアで実行され、その代わりに、又はそ
れに加えて、エンジンの少なくとも一つはハードウェアで加速される。関連する
実施の形態では、ネットワークサービス要求は、CIFSプロトコル、SMBプ
ロトコル、HTTPプロトコル、NFSプロトコル、FCPプロトコル、又はS
MTPプロトコルである。さらに関連する実施の形態では、サービスモジュール
は、受信器によって受信されたネットワーク要求が該要求を発する権限を有する
情報源から発せられたか否かを決定する認証エンジンを含む。まださらなる実施
の形態では、認証エンジンは、受信器によって受信されたネットワーク要求が要
求された動作を実行する権限を有する情報源から発せられたか否かを決定する。
同じく、サービスモジュールは、コンピュータのマザーボードに直接統合され、
又は、コンピュータに接続され得るアダプタカードに統合される。
【0015】 もう一つの態様では、データ記憶装置アクセス要求を受信し、そのようなデー
タ記憶装置アクセス要求を満たすファイルシステムモジュールが提供される。そ
のファイルシステムモジュールは、 そのようなデータ記憶装置アクセス要求を受信し、それを翻訳し、そうして、
記憶装置アクセス要求を発し得る、受信器と、 データ記憶装置アクセス応答を構築し、それを発する、前記受信器に接続され
る送信器であって、前記記憶装置アクセス要求への応答に基づいて適切なとき、
そのような応答が情報を含む、前記送信器とを含む。
【0016】 受信器及び送信器の少なくとも一つは、ハードウェアで実行され、その代わり
に、又はそれに加えて、受信器及び送信器の少なくとも一つは、ハードウェアで
加速される。さらなる実施の形態では、記憶装置アクセス要求は、前記モジュー
ルが接続され得る記憶装置によって用いられるプロトコルに矛盾がない。まださ
らなる実施の形態では、プロトコルは、NTFS、HPFS、FAT、FAT1
6、又はFAT32である。もう一つの関連する実施の形態では、ファイルシス
テムモジュールは、また、モジュールが接続され得る記憶装置におけるファイル
の物理的位置を画定するテーブルを格納する、前記受信器に接続されるファイル
テーブルキャッシュを含む。種々の実施の形態では、プロトコルは、記憶装置内
の連続的な物理定位置に置かれるべきファイルを要求しない。他の実施の形態で
は、ファイルシステムモジュールは、コンピュータのマザーボードに直接統合さ
れ、又はコンピュータに接続され得るアダプタカードに統合される。
【0017】 もう一つの態様では、要求情報源から記憶装置アクセス要求を受信し、そのよ
うな記憶装置アクセス要求を満たすために、記憶装置制御部と通信する記憶装置
モジュールが提供される。その記憶装置モジュールは、 a.そのような記憶装置アクセス要求を受信し、それらを前記記憶装置制御部
に適したフォーマットに変換する記憶装置要求インターフェースと、 b.前記記憶装置制御部からの応答を取得し、そのような応答を前記要求情報
源に適したフォーマットに変換する記憶装置承認インターフェースとを含む。
【0018】 記憶装置要求インターフェースと記憶装置承認インターフェースの少なくとも
一つはハードウェアで実行され、その代わりに、又はそれに加えて、記憶装置要
求インターフェースと記憶装置承認インターフェースの少なくとも一つはハード
ウェアで加速される。さらなる実施の形態では、記憶装置モジュールは、また、
データの部分への高速読込アクセスを可能にするために前記記憶装置に含まれる
データの一部のローカルコピーを保持するキャッシュ制御部を含む。他の関連す
る実施の形態では、記憶装置要求インターフェースと記憶装置承認インターフェ
ースは、ポートに接続され、そのポートは、光ファイバチャネルを介して、ある
いはSCSI関連のプロトコルを利用する前記記憶装置制御部との通信を可能に
する。さらなる実施の形態では、記憶装置モジュールは、コンピュータのマザー
ボードに直接統合され、又は、コンピュータに接続され得るアダプタカードに統
合される。
【0019】 もう一つの態様では、記憶装置アクセス要求を置かれ得るラインと記憶装置配
置を相互接続するためのシステムが提供される。この態様のシステムは、 a.前記記憶装置アクセス要求を処理し、前記記憶装置配置へのアクセスに必
要なところを生成し、応答の生成をさせる、前記記憶装置配置に接続されるサー
ビス受信ブロックと、 b.前記記憶装置配置内のファイルの物理的位置を画定するテーブルを格納す
る、前記受信ブロックに接続されるファイルテーブルキャッシュと、 c.前記応答を送信するための、前記サービス受信ブロックに接続されるサー
ビス送信ブロックとを含む。
【0020】 サービス受信ブロックとサービス送信ブロックの少なくとも一つは、ハードウ
ェアで実行され、その代わりに、又はそれに加えて、サービス受信ブロックとサ
ービス送信ブロックの少なくとも一つは、ハードウェアで加速される。さらなる
実施の形態では、システムは、また、サービス受信ブロックとサービス送信ブロ
ックのそれぞれに接続される応答情報メモリであって、該メモリは前記要求に関
連したヘッダに存在する情報を格納し、該情報は前記応答を構築する前記サービ
ス送信ブロックによって使用される、応答情報メモリを含む。もう一つの関連す
る実施の形態では、記憶装置アクセス要求は、ネットワーク要求である。まだも
う一つの実施の形態では、記憶装置アクセス要求は、前記ラインが接続されるロ
ーカルプロセッサによって生成される。
【0021】 もう一つの態様では、多数のクライアントからの記憶装置アクセス要求を扱う
ための処理が提供される。その処理は、 前記クライアントのいずれかからの記憶装置アクセス要求の受信をテストする
ステップと、 あらゆる未決定の要求に従って記憶装置へのアクセスの完了をテストするステ
ップとを含む。
【0022】 この実施の形態では、記憶装置アクセス要求の受信テストと記憶装置へのアク
セスの完了テストは、クライアントの数から独立して、多数のスレッドで実行さ
れる。さらなる実施の形態では、その処理は、また、要求の受信テストからの肯
定的な決定を条件付けられ、該肯定的な決定を生じさせる要求を処理し、そのよ
うな要求に従って記憶装置アクセスを始めるステップを含む。関連する実施の形
態では、前記処理は、また、未決定の要求に従って記憶装置へのアクセスの完了
テストから肯定的な決定を条件付けられ、そのような未決定の要求を発するクラ
イアントに応答を送るステップを含む。まだもう一つの関連する実施の形態では
、スレッドの数が3よりも小さい。実際には、全処理は、単一のスレッドで具体
化されてもよい。
【0023】 もう一つの態様では、ネットワークを介してサービス要求を扱うための拡大縮
小可能な装置であって、ネットワークはプロトコルを利用する拡大縮小可能な装
置が提供される。この態様の装置は、 前記ネットワークプロトコルを用いるネットワークサービス要求を送受信する
ための第1の複数のネットワークサブシステムと、 前記ネットワークサービス要求を満たすための第2の複数のサービスサブシス
テムとを含む。
【0024】 該ネットワークサブシステムと該サービスサブシステムのそれぞれ一つがハー
ドウェアで実行され、あるいはハードウェアで加速されるものである。それに加
えて、装置は、第1の複数のネットワークサブシステムのそれぞれを第2の複数
のサービスサブシステムのそれぞれに接続するインタコネクトを含む。関連する
実施の形態では、インタコネクトはスイッチであり、あるいはインタコネクトは
バスである。
【0025】 関連する態様では、記憶装置アクセス要求を生成され得るネットワークと記憶
装置配置を相互接続するための拡大縮小可能なサービスサブシステムが提供され
る。サービスサブシステムは、 ネットワークサービス要求を受信し、そのようなサービス要求を満たし、そう
して、データ記憶装置アクセス要求を発する第1の複数のサービスモジュールと
、 データ記憶装置アクセス要求を受信し、そのような記憶装置アクセス要求を満
たし、そうして、記憶装置配置アクセス要求を発する第2の複数のファイルシス
テムモジュールとを含む。
【0026】 該サービスモジュールと該ファイルシステムモジュールのそれぞれ一つがハー
ドウェアで実行され、あるいはハードウェアで加速されるものである。サービス
サブシステムは、また、第1の複数のサービスモジュールのそれぞれを第2の複
数のファイルシステムモジュールのそれぞれに接続するインタコネクトを含む。
関連する実施の形態では、インタコネクトはスイッチであり、あるいはインタコ
ネクトはバスである。さらなる実施の形態では、拡大縮小可能サービスサブシス
テムは、記憶装置配置アクセス要求を受信し、そのような記憶装置配置アクセス
要求を満たすために該記憶装置配置を制御する第3の複数の記憶装置モジュール
を含み、該記憶装置モジュールのそれぞれ一つはハードウェアで実行され、ある
いはハードウェアで加速されるものである。同じく、サービスサブシステムは、
前記ファイルシステムモジュールのそれぞれを前記記憶装置モジュールのそれぞ
れと接続する第2のインタコネクトを含む。同様に、関連する実施の形態では、
インタコネクト及び第2のインタコネクトのそれぞれは、スイッチであり、ある
いはインタコネクト及び第2のインタコネクトのそれぞれは、バスである。
【0027】 好ましい実施の形態の詳細な記述 本発明の前述の特徴は、添付図面を参照するとともに、次の詳細な説明を参照
することによっていっそう容易に理解されるだろう。
【0028】 本記述と添付の特許請求の範囲の目的のために、次の用語は、文脈が別の方法
で必要としないならば、示された意味を有する。
【0029】 「ハードウェア実行(hardware-implemented)」サブシステムは、主なサブシ
ステム機能がソフトウェアプログラムの直接の制御外で駆動する専用ハードウェ
アで実行されるサブシステムを意味する。そのようなサブシステムがソフトウェ
アの制御下にあるプロセッサと相互作用するが、サブシステム自体がソフトウェ
アによって直接的に制御されていないことに注意されたい。「主な」機能は、最
も頻繁に使用されるものである。
【0030】 「ハードウェア加速(hardware-accelerated)」サブシステムは、主なサブシ
ステム機能が専用プロセッサ又は専用メモリを用いて実行され、それに加えて、
(あるいはその代わりに)特別な用途ハードウェア、すなわち、専用プロセッサ
及びメモリがCPUに組み込まれるあらゆる中央演算処理装置(CPU)及びメ
モリと性質が異なるものを意味する。
【0031】 「TCP/IP」は、他の場所間でwww.ietf.orgにおけるインターネット管理委員会
のウェブサイト上に定義されるプロトコルである。それは、参照によってここに
組み込まれる。「IP」は、同じ場所で定義されるインターネットプロトコルで
ある。
【0032】 「ファイル(file)」は、データの論理的結合である。
【0033】 プロトコル「ヘッダ(header)」は、プロトコルのユーザーと結び付けられた
データの輸送のためにプロトコルによって指定されたフォーマットにおける情報
である。
【0034】 「SCSI関連(SCSI-related)」プロトコルは、SCSI、SCSI-2、SCSI-3、Wi
de SCSI、Fast SCSI、Fast Wide SCSI、Ultra SCSI、Ultra2 SCSI、Wide Ultra2
SCSI、又はあらゆる類似の若しくは後継のプロトコルを含む。SCSIは、「
小型コンピュータシステムインターフェース(Small Computer System Interfac
e)」であり、www.ansi.orgにウェブURLアドレスを持つ米国規格協会(AN
SI)に従うコンピュータ周辺機器のパラレル接続の標準である。
【0035】 「層3及び4(layers 3 and 4)」への言及は、ISO標準である開放型シス
テム間相互接続(「OSI」)7層モデルの層3及び4を意味する。ISO(国
際標準化機構)は、www.iso.chにウェブURLアドレスを有する。
【0036】 図1は、ネットワークを介してサービス要求を処理するように配置された本発
明の一実施の形態の概略表示である。したがって、この実施の形態は、ファイル
サーバー又はウェブサーバーが提供される配列を含む。本発明の実施の形態11
は、ネットワークインターフェース13を介してネットワーク10に接続される
。ネットワーク10は、例えば、複数のワークステーションへの通信リンクを含
んでもよい。ここで、実施の形態11は、また、記憶装置内部接続14を介して
複数の記憶装置に接続される。実施の形態11は、ハードウェアで実行され、あ
るいは、ハードウェアで加速され(又はハードウェア実行及びハードウェア加速
を組み合わせて利用され)てもよい。
【0037】 図2は、図1に示された実施の形態のブロック図である。ネットワークサブシ
ステム21は、ネットワークサービス要求及び応答を送受信する。ネットワーク
サブシステム21は、ネットワークサービス要求に応ずるサービスサブシステム
22に接続される。ネトワークサブシステム21、サービスサブシステム22、
あるいは両サブシステムは、ハードウェアで実行されるかハードウェアで加速さ
れるかのいずれかであってよい。
【0038】 図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の出力を変換する。
【0039】 図4は、図3に類似しており、ウェブサーバーとして配置される図1の実施の
形態のブロック図である。ネットワークサーバー41は、ネットワークサービス
要求及び応答を送受信する。ネットワークサブシステム41は、サービスサブシ
ステム42に接続される。サービスサブシステムは、3つのモジュール、すなわ
ち、サービスモジュール43、ファイルシステムモジュール44、及び記憶モジ
ュール45を含む。サービスモジュール43は、サービスサブシステム42に通
過したネットワークサービス要求を解析し、適切であるとき、対応する記憶アク
セス要求を発する。ここで、ネットワークサービス要求は、典型的に、HTTP
プロトコルである。サービスモジュールは、記憶モジュール45に接続されるフ
ァイルシステムモジュール44に接続される。ファイルシステムモジュール44
及び記憶モジュール45は、図3に関連して上述された、対応するモジュール3
4及び35に類似する方法で駆動する。
【0040】 図5は、図2〜4の実施の形態のネットワークサブシステム及びサービスサブ
システムである。ネットワークサブシステム51は、ネットワーク受信インター
フェース54からカプセル収納データを受信し、TCP/IP又は他のプロトコルバス
53に従ってそのデータをカプセルから出す。ネットワークサブシステム51は
、また、ネットワークを介してデータにアクセスする(同じく、PCIバスに接
続される)ローカルプロセッサに供給するために、PCIバス53に接続される
。ネットワークサブシステム51は、また、サービスサブシステム52にデータ
を送信し、送信されたデータは、PCIバス53を介してネットワーク受信イン
ターフェース54又はローカルプロセッサから来てもよい。サービスサブシステ
ム52は、また、それぞれ図2、3、及び4のサービスサブシステム22、32
、及び42に類似の方法で駆動する。
【0041】 図6は、図5のネットワークサブシステム51の詳細なブロック図である。図
6のネットワークサブシステムは、(受信器601、受信バッファメモリ603
、及び受信制御メモリ604を含む)受信器モジュール614、並びに、(送信
器602、送信バッファメモリ605、及び送信制御メモリ606を含む)送信
器モジュール613を含む。プロセッサ611は、受信器モジュール614と送
信器モジュール613の両方に使用される。受信器601は、ネットワーク受信
インターフェース607からカプセル収納データを受信し、それを翻訳処理する
。受信器601は、受信制御メモリ604及び送信制御メモリ606に含まれる
制御情報を用いてそのデータをカプセルから出し、受信バッファメモリ605に
そのカプセルから出されたデータを格納する。それは、受信バッファメモリ60
5からPCIバス613を介してプロセッサ611によって取り出されるか、受
信高速パス(fast path)インターフェース605に出力される。メモリ612
は、データと命令の貯蔵のためにプロセッサ611に用いられる。送信器602
は、送信後続パスインターフェース610かあるいはPCIバス613を介して
プロセッサ611から送信要求を受ける。
【0042】 送信器602は、送信バッファメモリ605にそのデータを格納する。送信器
602は、送信制御メモリ606に含まれる制御情報を用いて送信データをカプ
セル収納し、ネットワーク送信インターフェース609を介してネットワーク上
のカプセル収納されたデータを送信する。
【0043】 図7は、図6のネットワークサブシステムの受信モジュール614のブロック
図である。パケットは、ネットワーク受信インターフェース607から受信エン
ジン701によって受信される。受信エンジン701は、パケットを解析し、そ
のパケットがエラーを含むか否か、TCP/IPパケットか、あるいは、TCP/IPパケッ
トでないかを決定する。パケットは、パケット内に含まれるネットワークプロト
コルヘッダの検査によってTCP/IPパケットかそうでないかを決定される。もしパ
ケットがエラーを含むならば、それは落とされる。
【0044】 もし、パケットがTCP/IPパケットでないならば、そのパケットは、受信バッフ
ァメモリアービタ709を介して受信バッファメモリ603に格納される。パケ
ットが受信されたという表示は、プロセッサイベント待ち行列702に書き込ま
れる。プロセッサ715は、PCIバス704と受信PCIインターフェースブ
ロック703を用いて受信バッファメモリ603からパケットを受信することが
できる。
【0045】 もし、パケットがTCP/IPパケットならば、受信エンジン701は、パケットの
プロトコルヘッダ内に含まれるネットワークアドレスとポートナンバーをこのパ
ケットが属する接続、すなわち接続同定を特有の方法で識別する数に変換しよう
と試みるために、受信制御メモリ604に含まれるハッシュテーブルを用いる。
もし、これが新しい接続道程ならば、パケットは、受信バッファメモリアービタ
708を介して受信バッファメモリ603に格納される。パケットが受信された
という表示は、プロセッサイベント待ち行列702に書き込まれる。プロセッサ
713は、PCIバス704と受信PCIインターフェースブロック703を用
いて受信バッファメモリ603からパケットを受け取る。プロセッサは、TCP/IP
プロトコルで指定されるように要求されるならば、新しい接続を確立することが
でき、あるいは他の適切なアクションをとり得る。
【0046】 もし、接続同定が既に存在するならば、受信エンジン701は、各接続状態に
ついての情報を含むデータのテーブルへのインデックスとしてこの接続同定を用
いる。この情報は、「TCP制御ブロック」(「TCB」)と呼ばれる。各接続
のためのTCBは、送信制御メモリ606に格納される。受信エンジン701は
、受信器TCBアクセスインターフェース710を介してこの接続のためのTC
Bにアクセスする。それは、TCP/IPプロトコルに従ってこのパケットを処理し、
受信バッファメモリ605のこの接続のための受信されたバイトストリームに結
果として生じるバイトを加える。もし、この接続におけるデータがプロセッサ7
13のために予定されているならば、幾らかのバイトが受信されたという表示は
、プロセッサイベント待ち行列702に書き込まれる。プロセッサは、PCIバ
ス704と受信PCIインターフェースブロック703を用いて受信バッファメ
モリ603からバイトを受け取る。もし、この接続におけるデータが高速パスイ
ンターフェース608のために予定されているならば、幾らかのバイトが受信さ
れたという表示は、高速パスイベント待ち行列705に書き込まれる。受信DM
Aエンジン706は、受信バッファメモリ603からバイトを受け取り、高速パ
スインターフェース608にそれらを出力する。
【0047】 受信エンジン701によって受信されたいくつかのパケットは、IPパケット
のフラグメントであり得る。もし、これがその場合ならば、フラグメントは、最
初に受信バッファメモリ603で新たに組み立てられる。完全なIPパケットが
新たに組み立てられたとき、通常のパケット処理が上述のように適用される。
【0048】 TCPプロトコルによれば、接続は、SYN_SENT、SYN_RECEIVED、及びESTABLIS
HEDを含む多くの異なる状態で存在し得る。ネットワークノードがネットワーク
サブシステムとの接続を確立することを望むとき、それは、最初にSYNフラグセ
ットを持つTCP/IPパケットを送信する。このパケットは、新しい接続同定を有す
るので、プロセッサ713によって検索される。プロセッサ713は、SYN_RECE
IVEDへのこの接続のためにTCB内に接続状態を設定することを含むすべての要
求される初期化を実行する。SYN_RECEIVEDからESTABLISHEDへの移行は、TCP/IP
プロトコルに従って受信エンジン701によって実行される。プロセッサ713
がネットワークサブシステムを介してネットワークノードへの接続を確立するこ
とを望むとき、最初にSYN_SENTへのこの接続のためにTCB内に接続状態を設定
することを含むすべての要求される初期化を実行する。それは、それから、SYN
フラグセットを持つTCP/IPパケットを送信する。SYN_SENTからESTABLISHEDへの
移行は、TCP/IPプロトコルに従って受信エンジン701によって実行される。
【0049】 もし、プロトコルヘッダ内にSYNフラグ又はFINフラグあるいはRSTフラグセッ
トを有するパケットが受信され、そして、これがプロセッサ713によるアクシ
ョンを要求するならば、受信エンジン701は、プロセッサイベント待ち行列7
02へのエントリを書き込むことによって、このイベントをそのプロセッサに通
知する。プロセッサ713は、TCP/IPプロトコルによって要求されるように適切
なアクションをとり得る。
【0050】 受信されたパケットにTCP/IPプロトコルを適用する結果として、1以上のパケ
ットが今この接続で送信されるべきことが可能になる。例えば、受信データの承
認が送信される必要があってもよく、あるいは、受信パケットは、そのようなデ
ータが送信のために適用可能であるならば、より多くのデータがこの接続で送信
されることを可能にする増加されたウィンドウサイズを示してもよい。受信エン
ジン701は、それに応じてTCBを変更し、それから、受信器送信待ち行列要
求インターフェース711を介して図8の送信待ち行列802に接続同定を書き
込むことによって送信試みを要求することによって、このことを達成する。
【0051】 受信データは、受信バッファメモリ603内の別々のユニット(バッファ)に
格納される。バッファ内のすべてのデータがプロセッサ713によって検索され
るか、高速パスインターフェース605に出力されるとすぐに、バッファは、解
放、すなわち、新しいデータを格納するために再利用され得る。類似のシステム
は、送信バッファメモリ605のために駆動するが、しかしながら、送信の場合
、そのバッファは、その中のすべてのデータがTCP/IPプロトコルを用いて、送信
データを受信するネットワークノードによって完全に承認されるときのみ解放さ
れる。送信されたデータが承認されたことをパケットのプロトコルヘッダが示す
とき、受信エンジン701は、受信器フリー送信バッファ要求インターフェース
712を介して図8のフリー送信バッファブロック805にこのことを示す。
【0052】 さらに、受信エンジン701がTCP/IP自身と同様にTCP/IPをうまく処理する上
部層プロトコル(ULP)を処理することを可能にする。この場合、完全なUL
Pプロトコルデータユニット(PDU)が受信されたときのみ、イベント待ち行
列エントリは、処理又はイベント待ち行列702と高速パスイベント待ち行列7
05に書き込まれる。完全なULPのPDUのみがプロセッサ713によって受
信され、高速パスインターフェース608に出力される。ULPの一例はNetBIO
Sである。ULP処理を可能にすることは、接続毎に基づいてなされてもよい、
すなわち、いくつかの接続は、ULP処理を可能にし、その他のものはそうでな
くてもよい。
【0053】 図8は、図6のネットワークサブシステムの送信モジュール613のブロック
図である。TCP/IPを用いてネットワーク上で送信されるべきデータは、送信DM
Aエンジン807に入力される。このデータは、送信高速パスインターフェース
610か、PCIバス704と送信PCIインターフェース808を介してプロ
セッサ713からのいずれかからの入力である。それぞれの場合、TCP/IP接続が
データを送信するために用いられるべきか否かを決定する接続同定は、同じく入
力される。上述のように、各接続は、接続状態についての情報を含む、組み合わ
されたTCBを有する。
【0054】 送信DMAエンジンは、この接続のために格納されたバイトストリームに入力
されたバイトを加えて、送信バッファメモリ605内にそのデータを格納する。
入力の終わりに、それは、それに応じて接続のためにTCBを変更し、同じく、
接続同定を送信待ち行列802に書き込む。
【0055】 送信行列802は、3つの情報源、すなわち、受信器送信待ち行列要求インタ
ーフェース711、タイマー機能ブロック806、及び送信DMAエンジン80
7から接続同定の形式で送信要求を受け取る。要求が受信されるので、それらは
待ち行列に置かれる。待ち行列がからであるときはいつも、待ち行列の前におけ
る接続同定のための送信要求は、送信エンジン801へ通過される。送信エンジ
ン801が送信要求の処理を完了すると、この接続同定は、待ち行列の前から取
り除かれ、その処理が繰り返す。
【0056】 送信エンジン801は、送信待ち行列802から送信行列を受け取る。各要求
のために、送信エンジン801は、その接続と要求される送信パケットにTCP/IP
プロトコルを適用する。これをするために、それは、送信制御メモリアービタ8
05を介して送信制御メモリ606内の接続のためにTCBにアクセスし、送信
バッファメモリアービタ804を介して送信バッファメモリ605から接続のた
めの格納されたバイトストリームを検索する。
【0057】 接続のための格納されたバイトストリームは、送信バッファメモリ605内の
別々のユニット(バッファ)に格納される。上述のように、各バッファは、TCP/
IPプロトコルを用いて、送信データを受信するネットワークノードによってその
中のすべてのデータが完全に承認されたときのみ解放され得る。送信されたデー
タが承認されたことをパケットのプロトコルヘッダが示すとき、受信エンジン7
01は、受信器フリー送信バッファ要求インターフェース712を介してフリー
送信バッファブロック805にこのことを示す。フリー送信バッファブロック8
05は、完全に承認されたすべてのバッファを解放し、これらのバッファは、新
しいデータを格納するために再利用され得る。
【0058】 TCP/IPは、ある条件が満たされるならば一定間隔で実行されるべきある動作を
要求する多くのタイマー機能を有する。これらの機能は、タイマー機能ブロック
806によって実行される。一定間隔で、タイマー機能ブロック806は、送信
制御メモリアービタ803を介して各接続のためのTCBにアクセスする。もし
、あらゆる操作が特定の接続のために実行される必要があるならば、その接続の
ためのTCBは、それに応じて変更され、接続同定は、送信待ち行列802に書
き込まれる。
【0059】 そのうえ、送信DMAエンジン807がTCP/IPをうまく処理する上部層プロト
コルを処理することができる。この場合、完全なULPプロトコルデータユニッ
トのみは、プロセッサ713か、送信高速パスインターフェース610のいずれ
かから送信DMAエンジン807に入力される。送信DMAエンジン807は、
それから、PDUの前にULPヘッダを添付し、接続のための格納されたバイト
ストリームに「前に添付された」ULPヘッダと入力されたバイトを加える。図
2に関連して上述されるように、ULPの一例はNetBIOSである。ULP処理を
可能にすることは、接続毎に基づいてなされてもよい。すなわち、いくつかの接
続がULP処理可能であり、そのたのものがそうでなくてもよい。
【0060】 もし、プロセッサ713が生のパケットを送信すること、すなわち、TCP/IPを
用いてデータのハードウェアの自動送信することなく、データを送信することを
望むならば、プロセッサ713が送信DMAエンジン807にデータを入力する
とき、それは、特定の接続同定を用いる。この特定の接続同定は、送信エンジン
801に、プロセッサ713によって送信DMAエンジン807に入力として正
確に生のパケットを送信させる。
【0061】 図9は、ワークステーション又はサーバーのようなネットワークノードで使用
するネットワークインターフェースアダプタとして図5のネットワークサブシス
テムの使用を示すブロック図である。この実施の形態では、ネットワークサブシ
ステム901は、コンピュータに接続されるアダプタカード900に統合される
。アダプタカード900は、ネットワークインターフェース904を介してネッ
トワークに接続される。アダプタカード900はまた、PCIバス907とPC
Iブリッジ912を介してコンピュータのマイクロプロセッサに接続される。P
CIバス907はまた、ビデオシステム913のような周辺装置にアクセスする
ためにコンピュータによって用いられてもよい。受信モジュール902と送信モ
ジュール903は、図6の受信モジュール614と送信モジュール613と類似
の方法で動作する。その代わりに又はそれに加えて、アダプタカード900は、
ネットワーク上のリモートノード又はマイクロプロセッサ10によって記憶装置
配列への高速アクセスを提供するために、単一プロトコル高速受信パイプ906
と単一プロトコル高速送信パイプ905を介して、図2、3、4、又は5のアイ
テム22、32、43、又は52のそれぞれのいずれかに相当するサービスモジ
ュールに接続されてもよい。
【0062】 図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を介してホストシステムと選択的に通信する。供給されるとき
、そのような通信は、伝統的なオペレーティングシステムの範囲外に高速で、ハ
ードウェアで実行されるファイルシステムアクセスをホストシステムに与えるよ
うに、ホストシステムがネットワークを介する代わりに実施の形態と直接通信す
ることを可能にする。
【0063】 図11は、図3に示されるような一実施の形態において使用する図3のSMB
サービスモジュール33とファイルシステムモジュール34のハードウェアで加
速される組み合わせのブロック図である。動作は、同じく番号を付されたブロッ
ク及びライン105、107、108、及び106に関して図10に関連して上
述されたものに類似している。しかしながら、専用のファイルシステムプロセッ
サ110は、専用バス112を介して動作する専用メモリ111に関連して、ブ
ロック101及び102の処理を制御する。それに加えて、これらのアイテムは
、ソフトウェアで変更され得るので、そのような処理の取扱いに柔軟性を提供す
る。
【0064】 図12Aは、それぞれ図3又は図4のアイテム33又は43のようなハードウ
ェアで実行されるサービスモジュールのブロック図である。サービスモジュール
1200は、ネットワークサービス要求を受信し、そのようなサービス要求を実
現し、データ記憶アクセス要求を発してもよい。サービスモジュール1200は
、送信器1202に接続された受信器1201と、受信器1201及び送信器1
202の両方に接続されたデータ記憶アクセスインターフェース1203とを含
む。受信器1201は、ネットワークサービス要求を受信し、それを解釈する。
サービス要求を受信し次第、受信器1201は、データ記憶アクセスインターフ
ェース1203にその要求を送るか、あるいは、ネットワークサービス要求を満
たす情報を送信器1202に送る。もし、その要求がデータ記憶アクセスインタ
ーフェース1203に送られるならば、データ記憶アクセスインターフェース1
203は、データ記憶アクセス要求を構成し、それを発する。データ記憶アクセ
スインターフェースは、また、データ記憶アクセス要求への応答を受信し、オリ
ジナルのネットワークサービス要求を満たすために必要とされる情報を抽出する
。その情報は、それから送信器1202に送られる。送信器1202は、受信器
1202又はデータ記憶アクセスインターフェース1203からそれに送られる
情報を処理し、ネットワークサービス応答を構築し、それを発する。
【0065】 図12Bは、それぞれ図3又は図4のアイテム34又は44のようなハードウ
ェアで実行されるファイルモジュールのブロック図である。ファイルシステムモ
ジュール1210は、データ記憶アクセス要求を受信し、そのようなデータサー
ビスアクセス要求を実現し、記憶装置アクセス要求を発してもよい。ファイルシ
ステムモジュール1210は、送信器1212に接続された受信器1211と、
受信器1211及び送信器1212の両方に接続されたデータ記憶装置アクセス
インターフェース1213とを含む。受信器1211は、データ記憶アクセス要
求を受信して解釈し、データ記憶装置アクセスインターフェース1213へその
要求を送るか、あるいは、データ記憶アクセス要求を満たす情報を送信器121
2に送る。もし、その要求がデータ記憶装置アクセスインターフェース1213
に送られるならば、データ記憶装置アクセスインターフェース1213は、デー
タ記憶装置アクセス要求を構築し、それを発する。データ記憶装置アクセスイン
ターフェース1213は、また、データ記憶装置アクセス要求への応答を受信し
、オリジナルのデータ記憶アクセス要求を満たすために必要とされる情報を抽出
する。その情報は、それから送信器1212に送られる。送信器1212は、受
信器1211又はデータ記憶装置アクセスインターフェースモジュール1213
からそれに送られた情報を処理し、データ記憶アクセス応答を構築し、それを発
する。
【0066】 図12Cは、結合されたサービスモジュール及びファイルモジュールを提供す
る、図10のハードウェアで実行されるサービスサブシステムの詳細なブロック
図である。図12C内の点線129は、この実行の機能間の分割を示す。ライン
129の左側にはサービスモジュール部があり、ライン129の右側にはファイ
ルシステムモジュール部がある。(しかしながら、SMB受信制御エンジン12
1とSMB送信制御エンジン122を結ぶ二頭の矢がサービスモジュール部とフ
ァイルシステムモジュール部のそれぞれのためのエンジン121及び122間の
2方向通信を適切に供給することを理解されるだろう。)
【0067】 図12Cでは、SMBフレームは、ネットワーク受信インターフェース121
fを介してネットワークサブシステムから受信され、SMBフレーム翻訳エンジ
ン121bに送られる。ここで、フレームは解析され、多くのタスクが実行され
る。ヘッダの最初のセクションは、SMB応答の接続基礎毎に適切な情報をメモ
リ103に格納する、SMB応答情報制御123にコピーされる。完全なフレー
ムは、受信バッファメモリ121C内のバッファに書き込まれ、受信制御メモリ
121dは更新される。SMBフレームヘッダの適切な部分は、SMB受信制御
エンジン121に送られる。
【0068】 図12CのSMB受信制御エンジン121は、ヘッダからその情報を解剖し、
適切な場合には、批准エンジン124からファイルアクセス許可を要求する。フ
ァイルアクセスが要求されるSMBフレームのために、SMB受信制御エンジン
121は、SMBフレームヘッダからファイルパス情報かファイル同定のいずれ
かを抽出し、MFT制御エンジン125に要求されたファイルデータの物理的位
置を要求する。
【0069】 MFT制御エンジン125は、SMB受信制御エンジン121からの要求を待
ち行列に入れることができ、同様に、SMB受信制御エンジン121は、MFT
制御エンジン125からの要求を待ち行列に入れることができる。これは、2つ
のエンジンが互いに非同期に動作することを可能にし、従ってMFT要求が顕著
な間入ってくるSMBフレームが処理されることを可能にする。
【0070】 MFT制御エンジン125は、SMB受信制御エンジン121からの要求を処
理する。典型的に、SMB OPENコマンドのために、要求は、必要な物理的ファイル
位置情報を得るためのディスクアクセスが必要である。これが必要な場合、MF
T制御エンジン125は、必要な圧縮SCSI要求を生成する圧縮SCSIフレ
ーム生成エンジン121aに要求を送る。圧縮SCSIプロトコル(「CSP」
)は、SCSIコマンドが図17Aと他の図に関連して以下に記述される方法で
生成され得るデータフォーマットに関する。圧縮SCSIデータがSCSIから
得られないが、むしろSCSIデータが得られ得る情報源であるので、我々は、
時々圧縮されたSCSIデータを「プロト−SCSI」データとして言及する。
適切なプロト−SCSI応答は、それが処理されるMFT制御エンジン125に
送り返され、MFTキャッシュ104は更新され、物理的ファイル情報は、SM
B受信制御エンジン121に送り返さる。
【0071】 典型的に、最近アクセスされた小さなファイルに関してSMB READ又はWRITEコ
マンドのために、ファイル情報は、MFTキャッシュ104内に存在する。した
がって、ディスクアクセスは要求されない。
【0072】 SMB受信制御エンジン121がMFT要求からその応答を受信し、ファイル
データのためのディスクアクセスが要求されるとき、典型的なREAD又はWRITEコ
マンドに必要であるように、1以上のプロト−SCSI要求は、プロト−SCS
Iフレーム生成エンジン121aに送られる。
【0073】 プロト−SCSIフレーム生成エンジン121aは、プロト−SCSIヘッダ
を構築し、必要な場合、例えば、WRITEコマンドのために、受信バッファメモリ
121cからファイルデータを引くために、ファイルデータDMAエンジン12
1eをプログラムする。プロト−SCSIフレームは、プロト−SCSI送信イ
ンターフェース121gを介してプロト−SCSIモジュールに送られる。ディ
スクアクセスが要求されない場合、SMB応答要求は、直接SMB送信制御エン
ジン122に送られる。
【0074】 プロト−SCSIフレームは、プロト−SCSIモジュールから受信され、プ
ロト−SCSI受信インターフェース122fを介してプロト−SCSIフレー
ム翻訳エンジン122bに送られる。ここで、そのフレームは解析され、多くの
タスクが実行される。MFT応答は、MFT制御エンジン125に送り返される
。他のすべてのフレームは、受信バッファメモリ121c内のバッファに書き込
まれ、受信制御メモリ121dは更新される。プロト−SCSIフレームヘッダ
の適切な部分は、SMB送信制御エンジン122に送られる。
【0075】 各SMB接続は、独特な同定を以前に割り当てられた。すべてのプロト−SC
SIフレームは、この同定を含み、SMB送信制御エンジン122は、SMB受
信制御エンジン121からの状態情報を要求し、必要な場合これを更新するため
に、この独特な同定を用いる。SMB応答のための必要な情報がプロト−SCS
Iモジュールから受信されたとき、SMB送信制御エンジン122は、SMBフ
レーム生成エンジン121aに要求を送る。
【0076】 SMBフレーム生成エンジン121aは、SMB応答情報メモリ103内に含
まれるデータ及びSMB送信バッファメモリ122cに格納されたファイルデー
タからSMB応答フレームを構築する。それは、結果としてそれをネットワーク
サブシステムに転送するSMB送信インターフェース106にそのフレームを送
る。
【0077】 図13は、図11のハードウェア加速サービスサブシステムの詳細なブロック
図である。入力105を越えて供給されるIPブロックから入ってくるSMBフ
レームは、SMB受信FIFO1317を介して、SMB受信バッファメモリ1
21C内のフリーバッファに書き込まれる。SMB受信バッファメモリ121c
は、一実施の形態では、2Kbの長さであり、一つのSMBフレームが多くの受
信バッファにまたがり得る一連の受信バッファを含む。フレームがSMB受信バ
ッファメモリ121cに書き込まれるので、SMB受信バッファ記述子は、SM
B受信制御メモリ121dで更新される。
【0078】 32ビット接続同定及び32ビットフレームバイトカウントは、フレームの始
まりでIPブロックからSMBブロックに送られる。これら2つのフィールドは
、受信バッファメモリ121cの受信バッファの始めの2つの位置に書き込まれ
る。
【0079】 フレームが格納されるが、SMBヘッダもまた、SMB送信処理による後の使
用のためにSMB応答情報メモリ103に書き込まれる。IPブロックによって
SMBブロックに送られる独特な接続同定は、SMB応答情報メモリ103内の
適切な情報フィールドへのポインタとして用いられる。このメモリは、16ワー
ドのブロックで、各独特な接続同定のために一つのブロックとして配置される。
128MbのSDRAMで適合させて、これは2Mの接続を可能にする。目下、
SMBフレームの最初の32バイトは各情報フィールドに書き込まれる。
【0080】 完全なフレームが受信バッファメモリ121cに書き込まれたとき、SMBバ
ッファロケータは、SMB受信イベント待ち行列1314に書き込まれ、ホスト
プロセッサ1301への割り込みが生成される。SMBバッファロケータは、バ
ッファポインタと「最後の」ビットを含むSMBフレームに関する情報を含む。
バッファポインタは、SMBフレームの始まりを含む受信バッファメモリ121
cを指し示す。「最後の」ビットは、このバッファがSMBフレームの終わりも
含むか否か(すなわち、SMBフレームが2Kbの長さより小さいか否か、)を
示す。
【0081】 ホストプロセッサ1301は、イベント待ち行列1314に結び付けられた適
切なSMB受信イベントレジスタを読むことによってSMB受信待ち行列131
4内のSMBバッファロケータを読むことができる。SMBバッファロケータか
ら読み取られたバッファポインタから、ホストプロセッサ1301は、受信バッ
ファメモリ121c内のSMBフレームの最初のバッファのアドレスを決定する
ことができ、従ってSMBヘッダとフレームの最初の部分を読むことができる。
【0082】 もし、SMBフレームが2Kbよりも長く、SMBフレームの最初の2Kb以
上を読む必要があるならば、この受信バッファに結び付けられた受信バッファ記
述子は、受信制御メモリ121dから読まれるべきである。この受信バッファ記
述子は、SMBフレームの次のバッファへのポインタを含む。受信バッファがS
MBフレームの終わりを含むことを指摘することを示す「最後の」ビットを前の
バッファの記述子が含まなければ、この次のバッファは、同様に、それに結び付
けられた受信バッファ記述子を有する。
【0083】 受信されたSMBフレームを呼んだ後、もし、フレーム内に含まれるデータが
さらに使用されるできではないならば、受信されたフレームのバッファは、受信
バッファ制御メモリ121dに含まれる受信フリーバッファ待ち行列にポインタ
を書き込むことによって、結び付けられた受信返却フリーバッファレジスタに書
き込むことによって、再び使用するために利用可能にされる。
【0084】 プロト−SCSIフレームを送信するために、ホストプロセッサ1301は、
受信フェッチフリーバッファレジスタから読み込むことによってフリーSMB受
信バッファへのポインタを最初に得る。このアクションは、受信制御メモリ12
1dに含まれるフリーバッファ待ち行列からフリーバッファへのポインタを持っ
てくる。このバッファでは、プロト−SCSI要求フレームの始まりが構築され
得る。
【0085】 プロト−SCSIフレームをプロト−SCSIエンティティーに移すようにプ
ロト−SCSI送信エンティティーに要求するために、ホストプロセッサ130
1は、プロト−SCSI送信イベント待ち行列1315に結び付けられた受信プ
ロト−SCSIイベントレジスタにそれらを書き込むことによって、プロト−S
CSI送信イベント待ち行列1315にバッファロケータとバッファオフセット
対を書き込む。
【0086】 バッファロケータは、プロト−SCSIフレームのためのデータを含むバッフ
ァへのポインタを含む。バッファオフセットは、バッファと長さフィールドの中
のデータの始まりに対するオフセットを含む。バッファロケータは、また、さら
なるバッファロケータ/バッファオフセット対が、このプロト−SCSIフレー
ムのためのより多くのデータへのポインタを含むプロト−SCSI送信イベント
待ち行列1315に書き込まれるか否かを示すためのさごのビットを含む。
【0087】 もし、プロト−SCSIフレームがもう一つのSMB受信バッファからのデー
タを含むべきならば、SMB WRITEコマンドのために典型的であるように、ホスト
プロセッサ1301は、このSMB受信バッファを記述するもう一つのバッファ
ロケータ/バッファオフセット対をプロト−SCSI送信イベント待ち行列13
15に書き込まなければならない。もし、プロト−SCSIフレームに含まれる
べきデータが一つのSMB受信バッファ以上にまたがるならば、プロト−SCS
I送信エンティティーは、データにともにリンクするために、受信制御メモリ1
21dに位置される結び付けられたSMB受信バッファ記述子内のバッファポイ
ンタを用いることができる。もし、余分なデータがSMB受信フレームからのも
のであるならば、これらの記述子は、SMB受信エンティティーによって予め満
たされたであろう。
【0088】 SMB受信バッファからのデータが一つ以上のプロト−SCSIフレームのた
めに用いられ得るので、それらが用いられた後のSMB受信バッファを自由化す
ることは単純な処理ではない。プロト−SCSI送信に含まれない受信SMBフ
レームのセクションを含むSMB受信バッファは、関連付けられた受信戻りフリ
ーバッファレジスタを介して受信制御メモリに含まれるフリーバッファ待ち行列
にそれらを書き戻すことによって自由にされ得る。プロト−SCSIフレームに
含まれるべきデータを含むSMB受信バッファは、それらの中のデータが送信さ
れるまで自由にされないような同一の方法で自由にされ得ない。
【0089】 それで、SMBデータを含む種々のプロト−SCSIフレームに対するバッフ
ァロケータ/バッファオフセット対がプロト−SCSI送信イベント待ち行列1
315に書き込まれた後、オリジナルのSMB受信バッファへのポインタも同じ
く、プロト−SCSIに書き込まれる。これらのポインタは、受信制御メモリに
含まれるフリーバッファ待ち行列に戻されて自由にされるべきであることを示す
ために記録される。プロト−SCSI送信が次々と処理されるので、SMB受信
バッファは、それらの中のあらゆるデータが送信された後にのみ自由にされる。
【0090】 IPブロックから入ってくるプロト−SCSIフレームは、プロト−SCSI
受信FIFO1327を介してSMB送信バッファメモリ122c内のフリーバ
ッファに書き込まれる。SMB送信バッファは2Kb長であり、一つのプロト−
SCSIフレームは、多くの送信バッファにまたがってもよい。フレームがSM
B送信バッファメモリ122cに書き込まれるので、SMB送信バッファ記述子
は、SMB送信制御メモリ122d内で更新される。
【0091】 完全なフレームがSMB送信バッファメモリ122cに書き込まれるとき、S
MBバッファロケータは、プロト−SCSI受信イベント待ち行列1324に書
き込まれ、ホストプロセッサ1301への割り込みが生成される。SMBバッフ
ァロケータは、バッファポインタと「最後の」ビットを含むプロト−SCSIフ
レームに関する情報を含む。バッファポインタは、プロト−SCSIフレームの
始まりを含む送信バッファメモリ121c内のバッファを指し示す。「最後の」
ビットは、このバッファが同じくプロト−SCSIフレームの終わりを含むか否
か(すなわち、フレームが長さで2Kbより小さいか否か)を示す。
【0092】 ホストプロセッサ1301は、イベント待ち行列1324に関連した適切なプ
ロト−SCSI受信イベント待ち行列1324を読むことによって、プロト−S
CSI受信イベント待ち行列のバッファロケータを読むことができる。バッファ
ロケータから読まれたバッファポインタから、ホストプロセッサ1301は、送
信バッファメモリ122c内のプロト−SCSIフレームの最初のバッファのア
ドレスを決定することができ、従ってヘッダとそのフレームの最初の部分を読む
ことができる。
【0093】 もし、プロト−SCSIフレームが2Kbより長く、フレームの最初の2Kb
より多くを読む必要があるならば、この送信バッファに関連した送信記述子は、
受信制御メモリ121dから読まれるべきである。バッファがプロト−SCSI
フレームの終わりを含むことを指摘することを示す「最後の」ビットを前のバッ
ファの記述子が含まないならば、記述子は、プロト−SCSIフレームの次のバ
ッファへのポインタを含む。この次のバッファは、同様に、それに関連した送信
記述子を有する。
【0094】 受信されたプロト−SCSIフレームを読んだ後、もし、そのフレーム内に含
まれるデータが更に用いられるべきでないならば、受信されたフレームのバッフ
ァは、それに関連した送信戻りフリーバッファレジスタに書き込むことによって
、送信制御メモリ122dに含まれる送信フリーバッファ待ち行列に戻されるべ
きである。
【0095】 SMBフレームを送信するために、ホストプロセッサは、関連したレジスタか
ら読むことによって、送信制御メモリ122dに含まれる送信フリーバッファ待
ち行列から送信バッファメモリ122c内のフリーSMB送信バッファへのポイ
ンタを最初に得る。このバッファでは、SMB応答フレームの始まりが構築され
得る。
【0096】 32ビット接続道程と32ビットSMB送信制御フィールドは、バッファ内の
SMBフレーム前に置かれる。SMB送信制御フィールドは、24ビットフレー
ムバイトカウントと前置ヘッダビットを含む。もし、前置ヘッダビットが設定さ
れるならば、接続同定とSMB送信制御フィールドがIPブロックに送られた後
に、応答情報メモリ103に格納されたSMBヘッダは、自動的に挿入される。
【0097】 SMB送信エンティティーにSMBフレームをSMBエンティティーに移すこ
とを要求するために、ホストプロセッサ1301は、関連した送信SMB送信イ
ベントレジスタにそれらを書き込むことによって、バッファロケータとバッファ
オフセット対をSMB送信イベント待ち行列1325に書き込む。
【0098】 バッファロケータは、SMBフレームのためのデータを含むバッファへのポイ
ンタを含む。バッファオフセットは、バッファと長さフィールド内のデータの始
まりに対するオフセットを含む。バッファロケータは、また、バッファロケータ
/バッファオフセット対がさらにこのSMBフレームのためのより多くのデータ
へのポインタを含んで書き込まれるか否かを示す最後のビットを含む。
【0099】 もし、SMBフレームがバッファメモリ122c内のもう一つのSMB送信バ
ッファからのデータを含むべきであるならば、ホストプロセッサは、SMB送信
イベント待ち行列1325にこのSMB送信バッファを記述するもう一つのバッ
ファロケータ/バッファオフセット対を書き込まなければならない。もし、SM
Bフレームに含まれるべきデータが一つ以上のSMB送信バッファにまたがるな
らば、SMB送信エンティティーは、データをともにリンクするために、関連し
た送信バッファ記述子内のバッファポインタを用い得る。もし、余分なデータが
プロト−SCSI受信フレームからのものであるならば、これらの記述子は、プ
ロト−SCSI受信エンティティーによって以前に満たされたであろう。
【0100】 送信バッファメモリ122cのSMB送信バッファからのデータが一つ以上の
SMBフレームのために用いられ得るので、それらが用いられた後にSMB送信
バッファを自由化することは、単純な処理ではない。SMB送信に含まれない受
信されたプロト−SCSIフレームのセクションを含むSMB送信バッファは、
関連した送信戻りフリーバッファレジスタを介して、送信制御メモリに含まれる
送信フリーバッファ待ち行列にそれらを書き戻すことによって自由にされ得る。
SMBフレームに含まれるべきデータを含むSMB送信バッファは、その中のデ
ータが送信されるまでそれらが自由にされ得ないので、同一の方法で自由にされ
得ない。
【0101】 それで、プロト−SCSIデータを含む種々のSMBフレームへのバッファロ
ケータ/バッファオフセット対がSMB送信イベント待ち行列1325に書き込
まれた後、オリジナルのSMB送信バッファへのポインタは、また、SMB送信
イベント待ち行列1325に書き込まれる。これらのポインタは、送信フリーバ
ッファ待ち行列に戻って自由化されるべきことを示すことを記録する。SMB送
信イベント待ち行列1325が次々に処理されるので、SMB送信バッファは、
その中のあらゆるデータが送信された後にのみ自由にされる。
【0102】 図14は、多数のサービス要求を多数のスレッドとして扱うための、ソフトウ
ェアで実行された典型的な先行技術のアプローチを表すフローチャートである。
伝統的な多数スレッドの構成では、典型的に各クライアントにサービスを提供す
るための少なくとも一つのスレッドがある。スレッドは、クライアントがサーバ
ーに接続詞、それから分離するように、始められ、終了させられる。各クライア
ントは、サービス要求を処理するためのサーバー上のスレッドとディスク要求を
処理するためのスレッドとを有してもよい。サービス処理1400は、ボックス
1401でクライアント接続要求の存在をテストする繰り返しループを含み、も
し、テストが肯定的であるならば、処理は、ボックス1402、クライアント処
理1430を始める。クライアント処理1430がボックス1435でディスク
アクセスを要求するとき、それは最初にディスクへアクセスするための適切なデ
ィスク処理を要求し、それから、ディスクアクセスが完了するまでボックス14
36で待機する。ディスク処理1402は、それがサービス要求を発するクライ
アントにボックス1437で応答を送信することを可能にするために、クライア
ント処理1430を目覚めさせる。それで、ディスクアクセスを要求する各クラ
イアント要求のための少なくとも二つの処理スイッチがある。これらの多数のス
レッド処理をハードウェアで実行することは、問題である。なぜならば、通常、
それらはマルチタスク処理オペレーティングシステムによって扱われるからであ
る。
【0103】 図15は、図2のサービスサブシステムと、例えば、図12及び13の実施の
形態とを関連して使用するために、多数のサービス要求の処理を示すフローチャ
ートである。単純なスレッドアーキテクチャでは、一つのサービス処理1500
が単一のスレッドで多数のクライアントからの要求を扱い、一つのディスク処理
1502がサービス処理1500からのすべての要求を扱う。要求をなす各クラ
イアントのために別々の処理を用いる先行技術のアプローチは無視され、その機
能は、一つのサービス処理1500によってここで扱われた。それに加えて、こ
れら2つの処理、サービス処理とディスク処理は、示されるように、同一のスレ
ッド内に含まれてもよく、あるいは、ロードバランシングを容易にするために2
つの別々のスレッド間に分担されてもよい。
【0104】 図15の単一スレッドサービス処理は、同時に傑出した多数のクライアントか
らのディスク要求を有することができる。単一スレッドは、2つのテストを持つ
メインループを含む。ボックス1501の第1のテストは、クライアントからの
要求を受信したか否かである。ボックス1508の第2のテストは、前に始めら
れたディスクアクセス要求が完了したか否かである。その結果、ディスクアクセ
スが完了させられるべきボックス1508で決定されたので、ボックス1507
でサービス処理は、クライアントに適切な応答を送り返す。サービス処理150
0がボックス1501を介してディスクアクセス要求を扱い、要求をボックス1
502で処理させ、ボックス1504でディスクアクセスの開始を起こすとすぐ
に、サービス処理は、前のディスクアクセスが完了するまで停止し及び待つこと
なく、ボックス1501を介してもう一つのクライアントからのもう一つの要求
を扱うために自由である。ディスクアクセスが完了されたボックス1508での
決定において、ボックス1507のディスク処理は、結果のサービス処理を通知
し、クライアントに応答を送信する。従って、サービス及びディスク処理は、ク
ライアントから送られる要求がある限り、絶えず走っている。
【0105】 図16は、ファイル記憶装置を有するコンピュータシステムに関連して、図3
に示されるようなファイルシステムモジュールの使用を示すブロック図である。
(図16のものに類似する実行は、ファイル記憶装置を有するコンピュータシス
テムに関連して、図3に示されるような記憶装置モジュールを提供するために用
いられてもよい。)この実施の形態では、ファイルシステムモジュール1601
は、マイクロプロセッサ1605、メモリ1606、及び、ここでは従来のディ
スクドライブ制御部であるディスクサブシステム1602を介してアクセスされ
るディスクドライブ1610と同様に、ビデオ1609のような周辺機器を含む
コンピュータシステムに統合化される。ファイルシステムモジュール1601は
、また、PCIバス1607上のPCIブリッジ1604を介してコンピュータ
マルチプロセッサ1605とコンピュータメモリ1606に接続される。PCI
バス1607は、また、マイクロプロセッサ1605をコンピュータ周辺機器1
609に接続する。ファイルシステムモジュールの受信エンジン1610は、図
10、11、12B、及び13に関連して上述された方法と類似の方法で、マイ
クロプロセッサ1605からのディスクアクセス要求を処理する。同じく、送信
エンジン1611は、図10、11、12B、及び13に関連して上述された方
法と類似の方法で、そのようなディスクアクセス要求に対する応答を供給する。
【0106】 図17Aは、図3の記憶装置モジュールにおけるデータフローのブロック図で
ある。図17Aと17Bにおけるカリフォルニア州パロアルトのヒューレットパ
ッカード社(Hewlett Packard Co., Palo Alto, California)から利用可能なタ
キオンXL光ファイバチャネル制御部がI/O装置として用いられ得、本発明の
実施の形態が他のI/O装置を等しく用い得ることに気付かれたい。プロト−S
CSI要求は、プロト−SCSI要求プロセッサ1702によってプロト−SC
SI入力を越えて受信される。この要求に関する情報はSEST情報テーブルに格納
され、もし、これがWRITE要求ならば、同じくプロト−SCSI入力1700を
介して供給されるWRITEデータは、WRITEバッファメモリ1736に格納される。
【0107】 交換要求(ERQ)発生器1716は、WRITEバッファメモリ1736からの
情報を取得する。もし、書き込まれるべきすべてのバッファが現在蓄えられ、あ
るいは書き込まれるべきデータが書き込まれるべきバッファを完全に満たすなら
ば、WRITEは、すぐに実行され得る。書き込まれるべきデータは、キャッシュメ
モリ1740の適切な領域にWRITEバッファメモリ1736からコピーされる。
ファイバチャネルI/O制御部1720は、その制御部1720と通信するディ
スク記憶装置の適切な領域にそのデータを書き込むように構成される。さもなけ
れば、ディスクからのREADは、適切なディスクから要求されるデータを得るため
に、WIRTEの前になされなくてはならない。
【0108】 プロト−SCSI承認発生器1730は、プロト−SCSI要求を生成する責
任を負う。プロト−SCSI応答を生成することができる3つの情報源、プロセ
ッサ1738、ファイバチャネルI/O制御部1720、及びキャッシュメモリ
1740があり、そのそれぞれは、SESTインデックスを供給する。すべての移動
のために、ステータス情報とともに、プロト−SCSI要求が承認に関連付けら
れることを可能にする同定は、プロト−SCSI承認インターフェース1734
に戻される。
【0109】 図17Bは、図3の記憶装置モジュールの制御フローを示す詳細なブロック図
である。プロト−SCSI要求がプロト−SCSI要求プロセッサ1702によ
ってプロト−SCSI入力1700を越えて受信されるとき、それは、独特な識
別子(SESTインデックスと呼ばれる)を割り当てられる。この要求に関する情報
は、SEST情報テーブルに格納され、もし、これがWRITE要求ならば、プロト−S
CSI入力1700に同じく供給されるWRITEデータは、WRITEバッファメモリ1
736に格納される。SESTインデックスは、それからプロト−SCSI要求待ち
行列1704に書き込まれる。
【0110】 キャッシュ制御部1706は、プロト−SCSI要求待ち行列1704と使用
されたバッファ待ち行列1708からのエントリを取得する。エントリがプロト
−SCSI要求待ち行列1704から取得されるとき、このSESTインデックスに
関する情報は、SEST情報テーブルから読み込まれる。キャッシュ制御部1706
は、どのディスクブロックがこの転送のために要求されるかを計算し、ディスク
ブロック番号とアクセスされるべきディスク装置のハッシュルックアップを用い
るキャッシュバッファ位置にこれを翻訳する。もし、この転送のために要求され
る書込みバッファメモリ1736のいずれのバッファも現在他の転送によって使
用されているならば、SESTインデックスは、他の転送の完了を持つ顕著な要求待
ち行列1710に入れられる。さもなければ、もし、これがREAD転送であり、要
求されたバッファのすべてがキャッシュにあるならば、SESTインデックスは、蓄
えられたREAD待ち行列1712に入れられる。さもなければ、SESTインデックス
は、記憶装置要求待ち行列1714に書き込まれる。このアルゴリズムに対する
可能な高度化は、バッファが現在蓄えられているとすれば、同一のバッファの多
数のREADが進行中であることを可能にするべきである。
【0111】 エントリが使用されたバッファ待ち行列1708から取得されるとき、チェッ
クは、いずれの要求が利用可能になるためにこのバッファを待っているか否かに
ついてなされる。これは、最も古い要求で始まる顕著な要求待ち行列を探すこと
によってなされる。もし、利用可能になるためにこのバッファを待っていた要求
が見出されるならば、バッファは、その要求に割り当てられる。もし、その要求
がこの転送のために要求されたすべてのバッファを有するならば、SESTインデッ
クスは、記憶装置要求待ち行列1714に書き込まれ、この要求は、顕著な要求
待ち行列1710から取り除かれる。さもなければ、その要求は、顕著な要求待
ち行列1710に残されたままにされる。
【0112】 交換要求(ERQ)発生器1716は、記憶装置要求待ち行列1714と部分
的なWRITE待ち行列1718からのエントリを取得する。SESTインデックスがい
ずれかの待ち行列から読み出されるとき、このSESTインデックスに関する情報は
、SEST情報テーブルから読み出される。もし、それがREAD転送ならば、ファイバ
チャネルI/O制御部1720は、適切なディスクからのデータを読み込むよう
に構成される。もし、それがWRITE転送であり、書き込まれるべきすべてのバッ
ファが現在蓄えられているか、あるいは、書き込まれるべきデータが書き込まれ
るべきバッファを完全に満たしているならば、WRITEは、すぐに実行され得る。
書き込まれるべきデータは、WRITEバッファメモリ1736からキャッシュバッ
ファの適切な領域にコピーされる。ファイバチャネルI/O制御部1720は、
適切なディスクにデータを書き込むように構成される。さもなければ、図17A
に関連して上述したように、我々は、適切なディスクからの要求されたデータの
READ を始めるためにWRITEをする前に、ディスクからのREADをする必要がある。
【0113】 IMQプロセッサ1722は、入ってくるメッセージ待ち行列1724からの
メッセージを取得する。これは、ファイバチャネルI/O制御部1720が完了
した変換、または問題に遭遇した変換の待ち行列である。もし、ファイバチャネ
ル変換に問題があったならば、IMQプロセッサ1722は、適切なエラー回復
を可能にするために、プロセッサメッセージ待ち行列1726を介してプロセッ
サにメッセージを送る。もし、変換が許容できたならば、SEST情報は、このSEST
インデックスのために読み出される。もし、この変換がWRITE変換の始まりにお
けるREAD変換であったならば、SESTインデックスは、部分的なWRITE待ち行列1
718に書き込まれる。さもなければ、それは、記憶装置承認待ち行列1728
に書き込まれる。
【0114】 図17Aに関連して上述されるように、プロト−SCSI承認発生器1730
は、プロト−SCSI要求を生成する責任を負う。再び、プロト−SCSI応答
を生成することができ、それぞれがSESTインデックスを供給する3つの可能な情
報源がある。
【0115】 プロセッサ承認待ち行列1732は、エラーを発生し、エラーが解決されると
すぐにハードウェアに戻ってプロセッサ1738によって解決されなければなら
ない要求を送るために、プロセッサ1738によって用いられる。記憶装置承認
待ち行列1728は、通常完了したファイバチャネル要求に送り戻すために用い
られる。
【0116】 これらの待ち行列のいずれかにエントリがあるとき、SESTインデックスは、読
み出される。このインデックスのためのSEST情報はそれから読み込まれる。転送
のために、ステータス情報に沿って、プロト−SCSI要求が承認を関連付ける
のを可能にする同定は、プロト−SCSI承認インターフェース1734の向こ
う側に戻される。READのために、読まれたデータは、また、プロト−SCSI承
認インターフェース1734の向こう側へ戻される。
【0117】 プロト−SCSI転送が完了されるとすぐに、この転送に関連したすべてのバ
ッファのアドレスは、使用されたバッファ待ち行列1708に書き込まれる。こ
の転送に用いられるあらゆるWRITEバッファメモリは、また、フリーWRITEバッフ
ァメモリのプールに戻される。
【0118】 図18は、ファイル記憶装置を有するコンピュータシステムに関連して、図3
に示されるような記憶装置モジュールの使用を示すブロック図である。ここで、
記憶装置モジュール1801は、マイクロプロセッサ1802、メモリ1803
、ビデオシステム1805のような周辺機器、並びに、記憶装置1809、18
10、及び1811を含むコンピュータシステムのためのファイバチャネルホス
トバスアダプタ及びドライバとして行動する。記憶装置モジュール1801は、
PCIバス1807上でPCIブリッジ1804を介してマイクロプロセッサ1
802とコンピュータメモリ1803に接続される。記憶装置モジュール180
1は、PCIバスから要求を受信し、図17A及び17Bに関連して上述された
方法でその要求を処理する。記憶装置モジュール1801は、記憶装置アクセス
インターフェース1808を介して記憶装置1809、1810、及び1811
にアクセスする。
【0119】 図19は、本発明の実施の形態、特に、複数のネットワークサブシステムとサ
ービスサブシステムが連続するサブシステム及び/又はモジュールのポート間で
通信を確立するために拡張スイッチを利用して使用される一実地の形態の拡大縮
小可能性を示すブロック図である。余分なネットワーク接続がユニットの帯域幅
能力を増加し、より多くの記憶要素をサポートすることを可能にするために、こ
の実施の形態では、拡張スイッチ1901、1902、1903は、多くのモジ
ュールとともに相互接続するために用いられる。拡張スイッチは、拡張スイッチ
の一面におけるモジュールから他面におけるあらゆるモジュールまでのあらゆる
接続の経路を定める。拡張スイッチは、非ブロック化であり、多数の入力を取得
し、特定の接続のために最良なルートを決定する情報処理能力を持つ拡張スイッ
チ制御モジュールによって制御されてもよい。
【0120】 図19の実施の形態では、示された全システムは、ネットワークサブシステム
1904と類似のサブシステム1908及び1912を含むコラム1921に示
される複数のネットワークサブシステムを利用する。それは、ここでは(コラム
1922の)ファイルアクセスモジュール、(コラム1923の)ファイルシス
テムモジュール、及び(コラム1924の)記憶装置モジュールの組み合わせと
して実行される複数のサービスサブシステムである。モジュールの各コラム間(
及びネットワークサブシステムコラムとファイルアクセスモジュールコラムの間
)にスイッチ配置があり、ファイルアクセスプロトコル拡張スイッチ1901、
記憶装置アクセス拡張スイッチ1902、及びプロト−SCSIプロトコル拡張
スイッチ1903として実行される。ファイルアクセスプロトコルレベルでは、
拡張スイッチ1901は、各ファイルアクセスモジュール1905の存在する家
業負荷を含む基準に依存して、ネットワークサブシステム1904から特定のフ
ァイルアクセスモジュール1905に入ってくるネットワーク接続を動的に割り
当てる。
【0121】 記憶装置アクセスプロトコルレベルでは、拡張スイッチ1902は、ファイル
システムモジュール1906の存在する作業負荷を含む基準に依存して、ファイ
ルアクセスモジュール1905から特定のファイルシステムモジュール1906
に入ってくるファイルアクセス接続を動的に割り当てる。
【0122】 プロト−SCSIプロトコルレベルでは、拡張スイッチ1903は、記憶要素
の物理的位置を含む基準に依存して、特定の記憶装置モジュール1907へ入っ
てくるファイルシステム接続を動的に割り当てる。
【0123】 その代わりに、アイテム1901、1902、及び1903は、バスとして実
装されてもよい。この場合、入力信号を受けるコラム内の各モジュールは、信号
の重複処理を避けるためにコラム内の他のモジュールと通信し、それによって、
他の信号を扱うために他のモジュールを自由にする。アイテム1901、190
2、及び1903がバスまたはスイッチのいずれとして実現されるとしても、フ
ァイル要求への応答が含められるとき、対応する要求からの適切なヘッダ情報が
応答ヘッダの便利なフォーマット化を許すために利用可能であるように、システ
ムを通して信号処理パスを追跡することは本発明の範囲内である。
【図面の簡単な説明】
【図1】 図1は、ファイルサーバーやウェブサーバーのようなネットワークサービスを
提供するために配置された本発明の一実施の形態の概略表示である。
【図2】 図2は、図1に示された実施の形態のブロック図である。
【図3】 図3は、ファイルサーバーとして配置される実施の形態のブロック図である。
【図4】 図4は、ウェブサーバーとして配置される実施の形態のブロック図である。
【図5】 図5は、図2〜4の実施の形態のネットワークサブシステムである。
【図6】 図6は、図5のネットワークサブシステムのブロック図である。
【図7】 図7は、図6のネットワークサブシステムの受信モジュールのブロック図であ
る。
【図8】 図8は、図6のネットワークサブシステムの送信モジュールのブロック図であ
る。
【図9】 図9は、ワークステーション又はサーバーのようなネットワークノードで使用
するネットワークインターフェースアダプタとして、図5のネットワークサブシ
ステムの使用を例証するブロック図である。
【図10】 図10は、図3に例証されるような一実施の形態で使用する図3のSMBサー
ビスモジュール33とファイルシステムモジュール34のハードウェアで実行さ
れる組み合わせのブロック図である。
【図11】 図11は、図3に例証されるような一実施の形態で使用する図3のSMBサ
ービスモジュール33とファイルシステムモジュール34のハードウェア加速の
組み合わせのブロック図である。
【図12】 図12Aは、それぞれ図3又は図4のアイテム33又は34のようなハードウ
ェアで実行されるサービルモジュールのブロック図である。 図12Bは、それぞれ図3又は図4のアイテム34又は44のようなハードウ
ェアで実行されるファイルモジュールのブロック図である。 図12Cは、組み合わされたサービスモジュールとファイルモジュールを提供
する図10のハードウェアで実行されるサービスサブシステムの詳細なブロック
図である。
【図13】 図13は、図11のハードウェア加速サービスサブシステムの詳細なブロック
図である。
【図14】 図14は、多数のサービス要求を多数のスレッドとして扱うために、ソフトウ
ェアで実行される典型的な先行技術アプローチを表すフローチャートである。
【図15】 図15は、図2のサービスサブシステムと、例えば、図12及び13の実施の
形態とを関連して使用するために、多数のサービス要求の処理を示すフローチャ
ートである。
【図16】 図16は、ファイル記憶装置を有するコンピュータシステムに関連して、図3
に示されるようなファイルシステムモジュールの使用を示すブロック図である。
【図17】 図17Aは、図3の記憶装置モジュールにおけるデータフローのブロック図で
ある。 図17Bは、図3の記憶装置モジュールにおける制御フローのブロック図であ
る。
【図18】 図18は、ファイル記憶装置を有するコンピュータシステムに関連して、図3
に示されるような記憶装置モジュールの使用を示すブロック図である。
【図19】 図19は、本発明の実施の形態、特に、複数のネットワークサブシステムとサ
ービスサブシステムが連続するサブシステム及び/又はモジュールのポート間で
通信するための拡張スイッチを利用して使用される一実地の形態の拡大縮小可能
性を示すブロック図である。
───────────────────────────────────────────────────── フロントページの続き (72)発明者 ウィリス、トレバー 英国、バッキンガムシャー・エイチピー 22・6エイチジー、エイリズベリー、イク フィールド・クロース 9 (72)発明者 ベンハム、サイモン 英国、バークシャー・アールジー12・2エ ヌエイ、ブラックネル、ロックバイ・クロ ース 4 (72)発明者 クーパー、マイケル 英国、バークシャー・アールジー1・3ピ ーキュー、リーディング、リバプール・ロ ード 102 (72)発明者 マイヤー、ジョナサン 英国、サリー・ジーユー10・3エヌジー、 ファーナム、ホワイト・ローズ・レーン 2エイ (72)発明者 アストン、クリストファー・ジェイ 英国、バッキンガムシャー・エイチピー 13・6ジェイアール、ウィカム、ザ・クレ セント 40 (72)発明者 ウィンフィールド、ジョン 英国、バークシャー・アールジー2・0ビ ーエヌ、リーディング、エルガー・ロード 126 Fターム(参考) 5B089 JA11 KA06

Claims (77)

    【特許請求の範囲】
  1. 【請求項1】 ネットワークを介してサービス要求を扱うための装置であっ
    て、該ネットワークはプロトコルを利用し、該装置は、 a.ネットワークプロトコルを用いてネットワークサービス要求を送受信する
    ためのネットワークサブシステムと、 b.前記ネットワークサービス要求を満たすための、前記ネットワークサブシ
    ステムに接続されるサービスサブシステムとを備え、 前記ネットワークサブシステム及びサービスサブシステムの少なくとも一つは
    、ハードウェアで実行されていることを特徴とする装置。
  2. 【請求項2】 ネットワークを介してサービス要求を扱うための装置であっ
    て、該ネットワークはプロトコルを利用し、該装置は、 a.ネットワークプロトコルを用いてネットワークサービス要求を送受信する
    ためのネットワークサブシステムと、 b.前記ネットワークサービス要求を満たすための、前記ネットワークサブシ
    ステムに接続されるサービスサブシステムとを備え、 前記ネットワークサブシステム及びサービスサブシステムの少なくとも一つは
    、ハードウェアで実行され、前記ネットワークサブシステム及びサービスサブシ
    ステムの他方はハードウェアで加速されていることを特徴とする装置。
  3. 【請求項3】 ネットワークを介してサービス要求を扱うための装置であっ
    て、該ネットワークはプロトコルを利用し、該装置は、 a.ネットワークプロトコルを用いてネットワークサービス要求を送受信する
    ためのハードウェアで実行されたネットワークサブシステムと、 b.前記ネットワークサービス要求を満たすための、前記ネットワークサブシ
    ステムに接続されるハードウェアで実行されたサービスサブシステムとを備え、 を備えることを特徴とする装置。
  4. 【請求項4】 ネットワークを介してサービス要求を扱うための装置であっ
    て、該ネットワークはプロトコルを利用し、該装置は、 a.ネットワークプロトコルを用いてネットワークサービス要求を送受信する
    ためのネットワークサブシステムと、 b.前記ネットワークサービス要求を満たすための、前記ネットワークサブシ
    ステムに接続されるハードウェアで加速されたサービスサブシステムと を備えることを特徴とする装置。
  5. 【請求項5】 ネットワークを介してサービス要求を扱うための装置であっ
    て、該ネットワークはプロトコルを利用し、該装置は、 a.ネットワークプロトコルを用いてネットワークサービス要求を送受信する
    ためのハードウェアで加速されたネットワークサブシステムと、 b.前記ネットワークサービス要求を満たすための、前記ネットワークサブシ
    ステムに接続されるサービスサブシステムとを備え、 前記サービス要求は、長期の電子記憶装置へのデータの読み込み及び書込みの
    一つを含むことを特徴とする装置。
  6. 【請求項6】 前記サービス要求は、長期の電子記憶装置へのデータの読み
    込み及び書込みの一つを含むことを特徴とする請求項1乃至4記載の装置。
  7. 【請求項7】 前記長期の記憶装置は、ネットワークを介してコンピュータ
    にアクセス可能なネットワークディスク記憶装置であることを特徴とする請求項
    5又は6記載の装置。
  8. 【請求項8】 前記長期の記憶装置は、ローカルコンピュータにアクセス可
    能であるが、ネットワークを介して他のあらゆるコンピュータにはアクセス不可
    能なローカルディスク記憶装置であることを特徴とする請求項5又は6記載の装
    置。
  9. 【請求項9】 前記長期の記憶装置は、ネットワークを介して電子メールの
    供給に関連していることを特徴とする請求項5又は6記載の装置。
  10. 【請求項10】 前記長期の記憶装置は、ネットワーク上のウェブページへ
    のアクセスを供給することを特徴とする請求項5又は6記載の装置。
  11. 【請求項11】 前記サービス要求は、記憶装置システムのデータのアクセ
    スを含んでもよく、前記サービスサブシステムもまた、該記憶装置システムのデ
    ータの記憶を管理するためのハードウェアで実行されたモジュールを含むことを
    特徴とする請求項1乃至5記載の装置。
  12. 【請求項12】 そのような装置がファイルサーバーであって、前記記憶装
    置システムの前記データがファイルに配列され、前記サービス要求は、該記憶装
    置システムのファイルへの要求を含み、前記サービスサブシステムもまた、該記
    憶装置システムに関連したファイルシステムを管理するためのハードウェアで実
    行されたモジュールを含むことを特徴とする請求項11記載の装置。
  13. 【請求項13】 前記プロトコルは、ファイルシステムプロトコルを含んで
    もよく、該ファイルシステムプロトコルは、ファイル読み込み及びファイル書込
    みを含む操作を定義することを特徴とする請求項12記載の装置。
  14. 【請求項14】 そのような装置がウェブサーバーであって、前記記憶装置
    システムの前記データがウェブページを含んでもよく、前記サービス要求は、該
    記憶装置システム内のウェブページのための要求を含み得ることを特徴とする請
    求項11記載の装置。
  15. 【請求項15】 前記プロトコルがIPを含むことを特徴とする請求項1、
    2、3、4、5、11、12、又は14のいずれかに記載の装置。
  16. 【請求項16】 前記記憶装置システムが記憶装置プロトコルを有し、前記
    サービスサブシステムは、該記憶装置システムと相互接続するためのハードウェ
    アで実行されたモジュールを含むことを特徴とする請求項11又は12記載の装
    置。
  17. 【請求項17】 ネットワークを介してデータを送受信するためのサブシス
    テムであって、該ネットワークは層3及び4の少なくとも一つを有するプロトコ
    ルを用い、該サブシステムは、 a.前記ネットワークからカプセル収納データを受信し、前記プロトコルに従
    ってそのようなデータをカプセルから出す受信器と、 b.前記プロトコルに従ってデータをカプセルに収納し、前記ネットワークを
    介してカプセル収納データを送信する送信器とを備え、 前記受信器及び送信器の少なくとも一つはハードウェアで実行されていること
    を特徴とするサブシステム。
  18. 【請求項18】 ネットワークを介してデータを送受信するためのサブシス
    テムであって、該ネットワークは層3及び4の少なくとも一つを有するプロトコ
    ルを用い、該サブシステムは、 a.前記ネットワークからカプセル収納データを受信し、前記プロトコルに従
    ってそのようなデータをカプセルから出す受信器と、 b.前記プロトコルに従ってデータをカプセルに収納し、前記ネットワークを
    介してカプセル収納データを送信する送信器とを備え、 前記受信器及び送信器の少なくとも一つはハードウェアで加速されていること
    を特徴とするサブシステム。
  19. 【請求項19】 前記プロトコルがTCP/IPであることを特徴とする請求項1
    7又は18記載のサブシステム。
  20. 【請求項20】 前記データは、ネットワークを介してパケットで受信され
    、各パケットはプロトコルヘッダを有し、該サブシステムは、 前記受信器によって受信される各パケットの該プロトコルヘッダ内に含まれる
    情報から独特な接続を決定する接続識別子をさらに備えることを特徴とする請求
    項19記載のサブシステム。
  21. 【請求項21】 カプセル収納データは、ネットワーク接続に関連し、該サ
    ブシステムは、 前記接続の状態を格納する、前記ネットワーク接続に関連したメモリ領域をさ
    らに備えることを特徴とする請求項19又は20記載のサブシステム。
  22. 【請求項22】 記憶装置アクセス要求を生成し得るネットワークと記憶装
    置配置を相互接続するためのサービスサブシステムであって、 a.ネットワークサービス要求を受信し、そのようなサービス要求を満たし、
    そうして、データ記憶装置アクセス要求を発することができるサービスモジュー
    ルと、 b.前記サービスモジュールからデータ記憶装置アクセス要求を受信し、その
    ような記憶装置アクセス要求を満たし、そうして、記憶装置配置アクセス要求を
    発することができる、該サービスモジュールに接続されたファイルシステムモジ
    ュールと、 c.前記ファイルシステムモジュールから記憶装置配置アクセス要求を受信し
    、そのような記憶装置配置アクセス要求を満たすために、記憶装置配置を制御す
    る、該ファイルシステムモジュールに接続された記憶装置モジュールとを備え、 前記モジュールの少なくとも一つはハードウェアで実行されることを特徴とす
    るサービスサブシステム。
  23. 【請求項23】 記憶装置アクセス要求を生成し得るネットワークと記憶装
    置配置システムを相互接続するためのサービスサブシステムであって、 a.ネットワークサービス要求を受信し、そのようなサービス要求を満たし、
    そうして、データ記憶装置アクセス要求を発することができるサービスモジュー
    ルと、 b.前記サービスモジュールからデータ記憶装置アクセス要求を受信し、その
    ような記憶装置アクセス要求を満たし、そうして、記憶装置配置アクセス要求を
    発することができる、該サービスモジュールに接続されたファイルシステムモジ
    ュールと、 c.前記ファイルシステムモジュールから記憶装置配置アクセス要求を受信し
    、そのような記憶装置配置アクセス要求を満たすために、記憶装置配置を制御す
    る、該ファイルシステムモジュールに接続された記憶装置モジュールとを備え、 前記モジュールの少なくとも一つはハードウェアで加速されることを特徴とす
    るサービスサブシステム。
  24. 【請求項24】 前記サービスモジュールは、 i. ネットワークサービス要求を受信し、そのような要求が適切な否か決定し
    、もし適切ならば、情報が利用可能か否か応答し、さもなければ、データ記憶装
    置アクセス要求を発する、受信制御エンジンと、 ii. 前記受信制御エンジンからの命令に基づいて、ネットワークサービス応
    答を生成し、前記データ記憶装置アクセス要求へのデータ記憶装置アクセス応答
    がある場合、該データ記憶装置アクセス応答を処理する、送信制御エンジンとを
    備え、 前記エンジンの少なくとも一つはハードウェアで実行されることを特徴とする
    請求項22又は23に記載のサービスサブシステム。
  25. 【請求項25】 前記サービスモジュールは、 i. ネットワークサービス要求を受信し、そのような要求が適切な否か決定し
    、もし適切ならば、情報が利用可能か否か応答し、さもなければ、データ記憶装
    置アクセス要求を発する、受信制御エンジンと、 ii. 前記受信制御エンジンからの命令に基づいて、ネットワークサービス応
    答を生成し、前記データ記憶装置アクセス要求へのデータ記憶装置アクセス応答
    がある場合、該データ記憶装置アクセス応答を処理する、送信制御エンジンとを
    備え、 前記エンジンの少なくとも一つはハードウェアで加速されることを特徴とする
    請求項22又は23に記載のサービスサブシステム。
  26. 【請求項26】 前記サービスサブシステムは、コンピュータのマザーボー
    ドに直接統合されることを特徴とする請求項22又は23記載のサービスサブシ
    ステム。
  27. 【請求項27】 前記サービスサブシステムは、コンピュータに接続され得
    るアダプタカードに統合されることを特徴とする請求項22又は23記載のサー
    ビスサブシステム。
  28. 【請求項28】 ネットワークサービス要求を受信し、そのようなサービス
    要求を満たすサービスモジュールであって、 a.ネットワークサービスを受信し、そのような要求が適切であるか否かを決
    定し、もし適切ならば、情報が利用可能であるか否かを応答し、さもなければ、
    データ記憶装置アクセス要求を発する、受信制御エンジンと、 b.前記受信制御エンジンからの命令に基づいて、ネットワークサービス応答
    を受信し、前記データ記憶装置アクセス要求へのデータ記憶装置アクセス応答が
    ある場合、該データ記憶装置アクセス応答を処理する、送信制御エンジンとを備
    え、 前記エンジンの少なくとも一つはハードウェアで実行されることを特徴とする
    サービスモジュール。
  29. 【請求項29】 ネットワークサービス要求を受信し、そのようなサービス
    要求を満たすサービスモジュールであって、 a.ネットワークサービスを受信し、そのような要求が適切であるか否かを決
    定し、もし適切ならば、情報が利用可能であるか否かを応答し、さもなければ、
    データ記憶装置アクセス要求を発する、受信制御エンジンと、 b.前記受信制御エンジンからの命令に基づいて、ネットワークサービス応答
    を受信し、前記データ記憶装置アクセス要求へのデータ記憶装置アクセス応答が
    ある場合、該データ記憶装置アクセス応答を処理する、送信制御エンジンとを備
    え、 前記エンジンの少なくとも一つはハードウェアで加速されることを特徴とする
    サービスモジュール。
  30. 【請求項30】 前記ネットワークサービス要求は、CIFSプロトコルで
    あることを特徴とする請求項28又は29記載のサービスモジュール。
  31. 【請求項31】 前記ネットワークサービス要求は、SMBプロトコルであ
    ることを特徴とする請求項28又は29記載のサービスモジュール。
  32. 【請求項32】 前記ネットワークサービス要求は、HTTPプロトコルで
    あることを特徴とする請求項28又は29記載のサービスモジュール。
  33. 【請求項33】 前記ネットワークサービス要求は、NFSプロトコルであ
    ることを特徴とする請求項28又は29記載のサービスモジュール。
  34. 【請求項34】 前記ネットワークサービス要求は、FTPプロトコルであ
    ることを特徴とする請求項28又は29記載のサービスモジュール。
  35. 【請求項35】 前記ネットワークサービス要求は、SMTPプロトコルで
    あることを特徴とする請求項28又は29記載のサービスモジュール。
  36. 【請求項36】 受信器によって受信されたネットワーク要求が該要求を発
    する権限を有する情報源から発せられたか否かを決定する認証エンジンをさらに
    備えることを特徴とする請求項28又は29記載のサービスモジュール。
  37. 【請求項37】 前記認証エンジンは、受信器によって受信されたネットワ
    ーク要求が要求された動作を実行する権限を有する情報源から発せられたか否か
    を決定することを特徴とする請求項28乃至36記載のサービスモジュール。
  38. 【請求項38】 前記サービスモジュールは、コンピュータのマザーボード
    に直接統合されることを特徴とする請求項28乃至37記載のサービスモジュー
    ル。
  39. 【請求項39】 前記サービスモジュールは、コンピュータに接続され得る
    アダプタカードに統合されることを特徴とする請求項28乃至37記載のサービ
    スモジュール。
  40. 【請求項40】 データ記憶装置アクセス要求を受信し、そのようなデータ
    記憶装置アクセス要求を満たすファイルシステムモジュールであって、 a.そのようなデータ記憶装置アクセス要求を受信し、それを翻訳し、そうし
    て、記憶装置アクセス要求を発し得る、受信器と、 b.データ記憶装置アクセス応答を構築し、それを発する、前記受信器に接続
    される送信器であって、前記記憶装置アクセス要求への応答に基づいて適切なと
    き、そのような応答が情報を含む、前記送信器とを備え、 前記受信器及び送信器の少なくとも一つは、ハードウェアで実行されることを
    特徴とするファイルシステムモジュール。
  41. 【請求項41】 データ記憶装置アクセス要求を受信し、そのようなデータ
    記憶装置アクセス要求を満たすファイルシステムモジュールであって、 a.そのようなデータ記憶装置アクセス要求を受信し、それを翻訳し、そうし
    て、記憶装置アクセス要求を発し得る、受信器と、 b.データ記憶装置アクセス応答を構築し、それを発する、前記受信器に接続
    される送信器であって、前記記憶装置アクセス要求への応答に基づいて適切なと
    き、そのような応答が情報を含む、前記送信器とを備え、 前記受信器及び送信器の少なくとも一つは、ハードウェアで加速されることを
    特徴とするファイルシステムモジュール。
  42. 【請求項42】 前記記憶装置アクセス要求は、前記モジュールが接続され
    得る記憶装置によって用いられるプロトコルに矛盾がないことを特徴とする請求
    項40又は41記載のファイルシステムモジュール。
  43. 【請求項43】 前記プロトコルはNTFSであることを特徴とする請求項
    42記載のファイルシステムモジュール。
  44. 【請求項44】 前記プロトコルはHPFSであることを特徴とする請求項
    42記載のファイルシステムモジュール。
  45. 【請求項45】 前記プロトコルはFATであることを特徴とする請求項4
    2記載のファイルシステムモジュール。
  46. 【請求項46】 前記プロトコルはFAT16であることを特徴とする請求
    項42記載のファイルシステムモジュール。
  47. 【請求項47】 前記プロトコルはFAT32であることを特徴とする請求
    項42記載のファイルシステムモジュール。
  48. 【請求項48】 前記モジュールが接続され得る記憶装置におけるファイル
    の物理的位置を画定するテーブルを格納する、前記受信器に接続されるファイル
    テーブルキャッシュをさらに備えることを特徴とする請求項42記載のファイル
    システムモジュール。
  49. 【請求項49】 前記プロトコルは、記憶装置内の連続的な物理定位置に置
    かれるべきファイルを要求しないことを特徴とする請求項48記載のファイルシ
    ステムモジュール。
  50. 【請求項50】 前記ファイルシステムモジュールは、コンピュータのマザ
    ーボードに直接統合されることを特徴とする請求項42記載のファイルシステム
    モジュール。
  51. 【請求項51】 前記ファイルシステムモジュールは、コンピュータに接続
    され得るアダプタカードに統合されることを特徴とする請求項42記載のファイ
    ルシステムモジュール。
  52. 【請求項52】 要求情報源から記憶装置アクセス要求を受信し、そのよう
    な記憶装置アクセス要求を満たすために、記憶装置制御部と通信する記憶装置モ
    ジュールであって、 a.そのような記憶装置アクセス要求を受信し、それらを前記記憶装置制御部
    に適したフォーマットに変換する記憶装置要求インターフェースと、 b.前記記憶装置制御部からの応答を取得し、そのような応答を前記要求情報
    源に適したフォーマットに変換する記憶装置承認インターフェースとを備え、 前記記憶装置要求インターフェースと記憶装置承認インターフェースの少なく
    とも一つはハードウェアで実行されることを特徴とする記憶装置モジュール。
  53. 【請求項53】 要求情報源から記憶装置アクセス要求を受信し、そのよう
    な記憶装置アクセス要求を満たすために、記憶装置制御部と通信する記憶装置モ
    ジュールであって、 a.そのような記憶装置アクセス要求を受信し、それらを前記記憶装置制御部
    に適したフォーマットに変換する記憶装置要求インターフェースと、 b.前記記憶装置制御部からの応答を取得し、そのような応答を前記要求情報
    源に適したフォーマットに変換する記憶装置承認インターフェースとを備え、 前記記憶装置要求インターフェースと記憶装置承認インターフェースの少なく
    とも一つはハードウェアで加速されることを特徴とする記憶装置モジュール。
  54. 【請求項54】 データの部分への高速読込アクセスを可能にするために前
    記記憶装置に含まれるデータの一部のローカルコピーを保持するキャッシュ制御
    部をさらに備えることを特徴とする請求項52又は53記載の記憶装置モジュー
    ル。
  55. 【請求項55】 前記記憶装置要求インターフェースと記憶装置承認インタ
    ーフェースは、光ファイバチャネルを介して前記記憶装置制御部との通信を可能
    にするポートに接続されることを特徴とする請求項52又は53記載の記憶装置
    モジュール。
  56. 【請求項56】 前記記憶装置要求インターフェースと記憶装置承認インタ
    ーフェースは、SCSI関連のプロトコルを利用する記憶装置制御部との通信を
    可能にするポートに接続されることを特徴とする請求項52又は53記載の記憶
    装置モジュール。
  57. 【請求項57】 前記記憶装置モジュールは、コンピュータのマザーボード
    に直接統合されることを特徴とする請求項52又は53記載の記憶装置モジュー
    ル。
  58. 【請求項58】 前記記憶装置モジュールは、コンピュータに接続され得る
    アダプタカードに統合されることを特徴とする請求項52又は53記載の記憶装
    置モジュール。
  59. 【請求項59】 記憶装置アクセス要求を置かれ得るラインと記憶装置配置
    を相互接続するためのシステムであって、 a.前記記憶装置アクセス要求を処理し、前記記憶装置配置へのアクセスに必
    要なところを生成し、応答の生成をさせる、前記記憶装置配置に接続されるサー
    ビス受信ブロックと、 b.前記記憶装置配置内のファイルの物理的位置を画定するテーブルを格納す
    る、前記受信ブロックに接続されるファイルテーブルキャッシュと、 c.前記応答を送信するための、前記サービス受信ブロックに接続されるサー
    ビス送信ブロックとを備え、 前記サービス受信ブロックとサービス送信ブロックの少なくとも一つは、ハー
    ドウェアで実行されることを特徴とするシステム。
  60. 【請求項60】 記憶装置アクセス要求を置かれるラインと記憶装置配置を
    相互接続するためのシステムであって、 a.前記記憶装置アクセス要求を処理し、前記記憶装置配置へのアクセスに必
    要なところを生成する、前記記憶装置配置に接続されるサービス受信ブロックと
    、 b.前記記憶装置配置内のファイルの物理的位置を画定するテーブルを格納す
    る、前記受信ブロックに接続されるファイルテーブルキャッシュと、 c.前記応答を構築して、それを送信するための、前記サービス受信ブロック
    及び前記記憶装置配置に接続されるサービス送信ブロックとを備え、 前記サービス受信ブロックとサービス送信ブロックの少なくとも一つは、ハー
    ドウェアで加速されることを特徴とするシステム。
  61. 【請求項61】 前記サービス受信ブロックとサービス送信ブロックのそれ
    ぞれに接続される応答情報メモリであって、該メモリは前記要求に関連したヘッ
    ダに存在する情報を格納し、該情報は前記応答を構築する前記サービス送信ブロ
    ックによって使用される、応答情報メモリをさらに備えることを特徴とする請求
    項59又は60記載のシステム。
  62. 【請求項62】 前記記憶装置アクセス要求は、ネットワーク要求であるこ
    とを特徴とする請求項59又は60記載のシステム。
  63. 【請求項63】 前記記憶装置アクセス要求は、前記ラインが接続されるロ
    ーカルプロセッサによって生成されることを特徴とする請求項59又は60記載
    のシステム。
  64. 【請求項64】 多数のクライアントからの記憶装置アクセス要求を扱うた
    めの処理であって、 a.前記クライアントのいずれかからの記憶装置アクセス要求の受信をテスト
    するステップと、 b.あらゆる未決定の要求に従って記憶装置へのアクセスの完了をテストする
    ステップとを含み、 記憶装置アクセス要求の受信テストと記憶装置へのアクセスの完了テストは、
    クライアントの数から独立して、多数のスレッドで実行されることを特徴とする
    処理。
  65. 【請求項65】 前記処理は、また、 要求の受信テストからの肯定的な決定を条件付けられ、該肯定的な決定を生じ
    させる要求を処理し、そのような要求に従って記憶装置アクセスを始めるステッ
    プを含むことを特徴とする請求項64記載の処理。
  66. 【請求項66】 前記処理は、また、 未決定の要求に従って記憶装置へのアクセスの完了テストから肯定的な決定を
    条件付けられ、そのような未決定の要求を発するクライアントに応答を送るステ
    ップを含むことを特徴とする請求項64または65記載の処理。
  67. 【請求項67】 スレッドの数が3よりも小さいことを特徴とする請求項6
    4、65、又は66のいずれかに記載の処理。
  68. 【請求項68】 スレッドの数が1であることを特徴とする請求項67記載
    の処理。
  69. 【請求項69】 ネットワークを介してサービス要求を扱うための拡大縮小
    可能な装置であって、ネットワークはプロトコルを利用し、該装置は、 a.前記ネットワークプロトコルを用いるネットワークサービス要求を送受信
    するための第1の複数のネットワークサブシステムと、 b.前記ネットワークサービス要求を満たすための第2の複数のサービスサブ
    システムと、 ここで、該ネットワークサブシステムと該サービスサブシステムのそれぞれ一つ
    がハードウェアで実行され、あるいはハードウェアで加速されるものであり、 c.第1の複数のネットワークサブシステムのそれぞれを第2の複数のサービ
    スサブシステムのそれぞれに接続するインタコネクトと、 を備えることを特徴とする装置。
  70. 【請求項70】 前記インタコネクトはスイッチであることを特徴とする請
    求項69記載の装置。
  71. 【請求項71】 前記インタコネクトはバスであることを特徴とする請求項
    69記載の装置。
  72. 【請求項72】 記憶装置アクセス要求を生成され得るネットワークと記憶
    装置配置を相互接続するための拡大縮小可能なサービスサブシステムであって、 a.ネットワークサービス要求を受信し、そのようなサービス要求を満たし、
    そうして、データ記憶装置アクセス要求を発する第1の複数のサービスモジュー
    ルと、 b.データ記憶装置アクセス要求を受信し、そのような記憶装置アクセス要求
    を満たし、そうして、記憶装置配置アクセス要求を発する第2の複数のファイル
    システムモジュールと、 ここで、該サービスモジュールと該ファイルシステムモジュールのそれぞれ一つ
    がハードウェアで実行され、あるいはハードウェアで加速されるものであり、 c.第1の複数のサービスモジュールのそれぞれを第2の複数のファイルシス
    テムモジュールのそれぞれに接続するインタコネクトと、 を備えることを特徴とする拡大縮小可能サービスサブシステム。
  73. 【請求項73】 前記インタコネクトはスイッチであることを特徴とする請
    求項72記載の拡大縮小可能サービスサブシステム。
  74. 【請求項74】 前記インタコネクトはバスであることを特徴とする請求項
    72記載の拡大縮小可能サービスサブシステム。
  75. 【請求項75】 d.記憶装置配置アクセス要求を受信し、そのような記憶
    装置配置アクセス要求を満たすために該記憶装置配置を制御する第3の複数の記
    憶装置モジュールと、 ここで、該記憶装置モジュールのそれぞれ一つはハードウェアで実行され、あ
    るいはハードウェアで加速されるものであり、 e.前記ファイルシステムモジュールのそれぞれを前記記憶装置モジュールの
    それぞれと接続する第2のインタコネクトと、 をさらに備えることを特徴とする請求項72記載の拡大縮小可能サービスサブ
    システム。
  76. 【請求項76】 前記インタコネクト及び第2のインタコネクトのそれぞれ
    は、スイッチであることを特徴とする請求項72記載の拡大縮小可能サービスサ
    ブシステム。
  77. 【請求項77】 前記インタコネクト及び第2のインタコネクトのそれぞれ
    は、バスであることを特徴とする請求項72記載の拡大縮小可能サービスサブシ
    ステム。
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 true JP2003511777A (ja) 2003-03-25
JP2003511777A5 JP2003511777A5 (ja) 2007-12-06
JP5220974B2 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)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006505069A (ja) * 2002-11-01 2006-02-09 ブルアーク ユーケー リミテッド ハードウェアベースのファイルシステムのための装置および方法

Families Citing this family (90)

* 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
EP1912124B8 (en) * 1999-10-14 2013-01-09 Bluearc UK Limited Apparatus and system for implementation of service functions
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
US7043563B2 (en) * 2000-04-17 2006-05-09 Circadence Corporation Method and system for redirection to arbitrary front-ends in a communication system
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
US20020116397A1 (en) 2000-12-21 2002-08-22 Berg Mitchell T. Method and system for communicating an information packet through multiple router devices
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
US7546369B2 (en) * 2000-12-21 2009-06-09 Berg Mitchell T Method and system for communicating a request packet in response to a state
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
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
WO2003021452A1 (en) * 2001-08-31 2003-03-13 Adaptec, Inc. Systems and methods for high speed data transmission using tcp/ip
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
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
US7934021B2 (en) 2002-08-29 2011-04-26 Broadcom Corporation System and method for network interfacing
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
US7957409B2 (en) 2003-01-23 2011-06-07 Cisco Technology, Inc. Methods and devices for transmitting data between storage area networks
ATE381836T1 (de) * 2003-01-23 2008-01-15 Cisco Tech Inc Verfahren und vorrichtungen zur datenübertragung zwischen speichernetzwerken
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
US8667184B2 (en) 2005-06-03 2014-03-04 Qnx Software Systems Limited Distributed kernel operating system
US7840682B2 (en) 2005-06-03 2010-11-23 QNX Software Systems, GmbH & Co. KG 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
US20080155051A1 (en) * 2006-12-23 2008-06-26 Simpletech, Inc. Direct file transfer system and method for a computer network
US20090043776A1 (en) * 2006-12-23 2009-02-12 Simpletech, Inc. System and method for direct file transfer in 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
WO2011114256A1 (en) * 2010-03-15 2011-09-22 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
US9131011B1 (en) 2011-08-04 2015-09-08 Wyse Technology L.L.C. Method and apparatus for communication via fixed-format packet frame
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
US10691636B2 (en) 2014-01-24 2020-06-23 Hitachi Vantara Llc 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
US10198193B2 (en) 2014-03-11 2019-02-05 Hitachi Data Systems Engineering UK Limited Computer program product, method, apparatus and data storage system for controlling write operations in the data storage system
US10277678B2 (en) 2014-05-14 2019-04-30 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
US10691637B2 (en) 2015-02-05 2020-06-23 Hitachi Vantara Llc Management of cloned objects in file systems
WO2016204790A1 (en) 2015-06-19 2016-12-22 Hitachi Data Systems Engineering UK Limited Deleting a 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

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH03273350A (ja) * 1990-02-23 1991-12-04 Hitachi Ltd プロトコル高速処理装置
JPH0926970A (ja) * 1994-12-20 1997-01-28 Sun Microsyst Inc 情報を検索するコンピュータによる実行方法及び装置
JPH10232788A (ja) * 1996-12-17 1998-09-02 Fujitsu Ltd 信号処理装置及びソフトウェア
JPH11203308A (ja) * 1998-01-13 1999-07-30 Ntt Communication Ware Kk 地図表示装置、地図データベース装置、地図表示方法、および、地図表示プログラムを記録した記録媒体

Family Cites Families (254)

* 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
US4685125A (en) 1982-06-28 1987-08-04 American Telephone And Telegraph Company Computer system with tasking
US4500960A (en) * 1982-06-28 1985-02-19 At&T Bell Laboratories Geographically distributed multiprocessor time-shared communication processing system
US4614841A (en) 1982-06-29 1986-09-30 At&T Bell Laboratories Geographically distributed multiprocessor time-shared communication processing system
US4527232A (en) 1982-07-02 1985-07-02 Sun Microsystems, Inc. High-speed memory and memory management system
US4550368A (en) 1982-07-02 1985-10-29 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
US5113523A (en) 1985-05-06 1992-05-12 Ncube Corporation High performance computer system
US4694396A (en) 1985-05-06 1987-09-15 Computer X, Inc. Method of inter-process communication in a distributed data processing 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
JPH0644700B2 (ja) * 1986-05-20 1994-06-08 三菱電機株式会社 波形等化回路
US4727538A (en) 1986-05-20 1988-02-23 American Telephone And Telegraph Company, At&T Bell Laboratories Information transfer method and arrangement
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
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
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
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
CA1301294C (en) * 1987-08-21 1992-05-19 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
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
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
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
US4875206A (en) 1988-03-31 1989-10-17 American Telephone And Telegraph Comopany, At&T Bell Laboratories High bandwidth interleaved buffer memory and control
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
US5210824A (en) 1989-03-03 1993-05-11 Xerox Corporation Encoding-format-desensitized methods and means for interchanging electronic document as appearances
JPH02297229A (ja) 1989-03-03 1990-12-07 Xerox Corp データベース・システム
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
US5058110A (en) 1989-05-03 1991-10-15 Ultra Network Technologies Protocol processor
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
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
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
EP0490980B1 (en) 1989-09-08 1999-05-06 Auspex Systems, Inc. Multiple facility operating system architecture
US5163131A (en) 1989-09-08 1992-11-10 Auspex Systems, Inc. Parallel i/o network file server architecture
JPH05502526A (ja) 1989-09-08 1993-04-28 オースペックス システムズ インコーポレイテッド 擬似同期ハンドシェイキングおよびブロックモードデータ転送を利用したエンハンストvmeバスプロトコル
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
ATE119732T1 (de) * 1990-06-26 1995-03-15 Siemens Ag Programmgesteuerte kommunikationsanlage.
CA2045799C (en) 1990-07-11 1999-03-23 Kenneth L. Thompson File system with read/write and read only storage
WO1992001990A1 (en) 1990-07-20 1992-02-06 Temple University - Of The Commonwealth System Of Higher Education 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
EP0630499A4 (en) 1992-03-09 1996-07-24 Auspex Systems Inc ACCELERATION SYSTEM WITH NON-VOLATILE, PROTECTED, WRITABLE RAM CACHE.
JP3213766B2 (ja) 1992-03-16 2001-10-02 株式会社日立製作所 レプリケートファイル更新システム
US5319752A (en) * 1992-09-18 1994-06-07 3Com Corporation Device with host indication combination
EP0820008A3 (en) * 1992-12-01 2006-05-24 Microsoft Corporation A method and system for in-place interaction with embedded objects
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
DE69329709D1 (de) 1993-04-29 2001-01-04 Ibm Verfahren und Gerät für Mehrfachübertragung von Daten in einem Kommunikationssystem
US6604118B2 (en) 1998-07-31 2003-08-05 Network Appliance, Inc. File system image transfer
WO1994029807A1 (en) 1993-06-03 1994-12-22 Network Appliance Corporation Write anywhere file-system layout
WO1994029796A1 (en) 1993-06-03 1994-12-22 Network Appliance Corporation A method for allocating files in a file system integrated with a raid disk sub-system
US5963962A (en) * 1995-05-31 1999-10-05 Network Appliance, Inc. Write anywhere file-system layout
US7174352B2 (en) 1993-06-03 2007-02-06 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
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
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
US5987506A (en) 1996-11-22 1999-11-16 Mangosoft Corporation Remote access and geographically distributed computers in a globally addressable storage environment
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
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
CA2287413A1 (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
US5931920A (en) 1997-08-05 1999-08-03 Adaptec, Inc. Command interpreter system in an I/O controller
US6088740A (en) 1997-08-05 2000-07-11 Adaptec, Inc. Command queuing system for a hardware accelerated command interpreter engine
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
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
US6427173B1 (en) * 1997-10-14 2002-07-30 Alacritech, Inc. Intelligent network interfaced device and system for accelerated communication
US6591302B2 (en) 1997-10-14 2003-07-08 Alacritech, Inc. Fast-path apparatus for receiving data corresponding to a TCP connection
US6389479B1 (en) * 1997-10-14 2002-05-14 Alacritech, Inc. Intelligent network interface device and system for accelerated communication
US6434620B1 (en) 1998-08-27 2002-08-13 Alacritech, Inc. TCP/IP offload network interface device
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
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
US6604236B1 (en) 1998-06-30 2003-08-05 Iora, Ltd. System and method for generating file updates for files stored on read-only media
US6263445B1 (en) * 1998-06-30 2001-07-17 Emc Corporation Method and apparatus for authenticating connections to a storage system coupled to a network
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
EP1912124B8 (en) 1999-10-14 2013-01-09 Bluearc UK Limited Apparatus and system for implementation of service functions
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
US6910154B1 (en) * 2000-08-18 2005-06-21 Network Appliance, Inc. Persistent and reliable delivery of event messages
US6751635B1 (en) * 2000-08-18 2004-06-15 Network Appliance, Inc. File deletion and truncation using a zombie file space
US6640233B1 (en) 2000-08-18 2003-10-28 Network Appliance, Inc. Reserving file system blocks
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
US20020174295A1 (en) 2001-01-29 2002-11-21 Ulrich Thomas R. Enhanced file system failure tolerance
EP1370947A4 (en) * 2001-02-13 2009-05-27 Candera Inc STORAGE VIRTUALIZATION SERVER SILICON BASE
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
US7039828B1 (en) * 2002-02-28 2006-05-02 Network Appliance, Inc. System and method for clustered failover without network support
US6748510B1 (en) 2002-02-28 2004-06-08 Network Appliance, Inc. System and method for verifying disk configuration
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

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH03273350A (ja) * 1990-02-23 1991-12-04 Hitachi Ltd プロトコル高速処理装置
JPH0926970A (ja) * 1994-12-20 1997-01-28 Sun Microsyst Inc 情報を検索するコンピュータによる実行方法及び装置
JPH10232788A (ja) * 1996-12-17 1998-09-02 Fujitsu Ltd 信号処理装置及びソフトウェア
JPH11203308A (ja) * 1998-01-13 1999-07-30 Ntt Communication Ware Kk 地図表示装置、地図データベース装置、地図表示方法、および、地図表示プログラムを記録した記録媒体

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006505069A (ja) * 2002-11-01 2006-02-09 ブルアーク ユーケー リミテッド ハードウェアベースのファイルシステムのための装置および方法

Also Published As

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

Similar Documents

Publication Publication Date Title
JP2003511777A (ja) ハードウェア実行又はオペレーティングシステム機能の加速のための装置及び方法
US8423529B1 (en) System, device, and method for running third-party data processing applications virtualized on a NAS server
US20040210584A1 (en) Method and apparatus for increasing file server performance by offloading data path processing
US5931918A (en) Parallel I/O network file server architecture
US6615282B1 (en) Adaptive messaging
EP0889623A2 (en) System and method for efficient remote disk I/O
US20080155051A1 (en) Direct file transfer system and method for a computer network
US7953878B1 (en) Multi-threaded internet small computer system interface (iSCSI) socket layer
JP4317365B2 (ja) 周辺デバイスからホスト・コンピュータ・システムに割込みを転送する方法および装置
US20010052061A1 (en) Apparatus And Method For Managing Data Storage
US11095626B2 (en) Secure in-line received network packet processing
US7460531B2 (en) Method, system, and program for constructing a packet
US7404040B2 (en) Packet data placement in a processor cache
US6108694A (en) Memory disk sharing method and its implementing apparatus
US11038856B2 (en) Secure in-line network packet transmittal
GB2363551A (en) Sending fibre channel response frames from an interface controller to a host only when an I/O operation is unsuccessful
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
US20090043776A1 (en) System and method for direct file transfer in a computer network
JP4786115B2 (ja) 計算機システム
US7920489B1 (en) Simultaneous receiving and transmitting of data over a network
US7284075B2 (en) Inbound packet placement in host memory
CA2565596A1 (en) Semantic processor storage server architecture
JPH1115718A (ja) 分散ファイルシステムおよびその分散ファイルシステムで用いられるゲートウェイ計算機
JP2000293316A (ja) 通信ディスク装置
US20080228895A1 (en) Direct file transfer host 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