JPH0816495A - 複数プロトコル装置のインターフェース・サブシステムおよびその方法 - Google Patents

複数プロトコル装置のインターフェース・サブシステムおよびその方法

Info

Publication number
JPH0816495A
JPH0816495A JP7074775A JP7477595A JPH0816495A JP H0816495 A JPH0816495 A JP H0816495A JP 7074775 A JP7074775 A JP 7074775A JP 7477595 A JP7477595 A JP 7477595A JP H0816495 A JPH0816495 A JP H0816495A
Authority
JP
Japan
Prior art keywords
protocol
buffer
interface
adapter
different
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
JP7074775A
Other languages
English (en)
Other versions
JP3033935B2 (ja
Inventor
Robert A Reynolds
ロバート・アレン・レイノルズ
David W Sheffield
デビッド・ウィリアム・シェフィールド
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
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 International Business Machines Corp filed Critical International Business Machines Corp
Publication of JPH0816495A publication Critical patent/JPH0816495A/ja
Application granted granted Critical
Publication of JP3033935B2 publication Critical patent/JP3033935B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/382Information transfer, e.g. on bus using universal interface adapter
    • G06F13/387Information transfer, e.g. on bus using universal interface adapter for adaptation of different data processing systems to different peripheral devices, e.g. protocol converters for incompatible systems, open system
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/10Program control for peripheral devices
    • G06F13/102Program control for peripheral devices where the programme performs an interfacing function, e.g. device driver

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer And Data Communications (AREA)
  • Communication Control (AREA)

Abstract

(57)【要約】 【目的】 複数プロトコルを単一のアダプタを通じて最
低限の費用により同時に実行可能なサブシステムおよび
方法を提供する。 【構成】 媒体および通信装置への第1インターフェー
ス構造は、DMA用の各々のバッファをマッピングする
ためのバッファ・アドレス、バッファ長さ、クロス・メ
モリ記述子のそれぞれ類似の構成要素特性を有すると定
義される。この第1構造はチェーン可能であり、データ
は単一操作用の複数の隣接しないデータ・バッファから
集められるか、それに分散させられる。プロトコル・ヘ
ッドが第1インターフェース構造のチェーンに対しポイ
ンタを用いて完成するように共通の構造が設けられる。
このアーキテクチャは、各制御要素用に複数のバッファ
記述子を設けて種々のユーザのバッファに記述するよう
に構成される。

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明はコンピュータに使用され
るサブシステムに関し、特に、複数プロトコル環境にあ
る装置のインターフェース・サブシステムに関する。
【0002】
【従来の技術】最近のコンピュータ・システムでは、様
々の異なったアプリケーションやプロトコルを有する広
範囲の環境にそのシステムを拡張して使用することが当
たり前になってきている。例えば、IPI−3およびS
CSIあるいはTCP/IPをそれぞれサポートするフ
ァイバ・チャンネル・サブシステムのような媒体アプリ
ケーションおよび通信アプリケーションおよびプロトコ
ルをサポートするシステムが求められている。
【0003】こうした常に増大する要求に対応させるた
めにコンピュータの役割が拡大すると同時に、産業界に
厳しい束縛を持続的に課すことにもなる。ユーザは融通
性と機能性が増大することを望んでいるが、同時に、よ
り低価格でそれを手に入れたいと望んでいる。
【0004】こうしたことで起こり得る問題の代表的な
例として、あるアプリケーションでは媒体アプリケーシ
ョンと通信アプリケーションの両方をサポート可能な単
独のアダプタを設ける必要がある。しかし、これはコス
ト的な面での対処例であり、媒体、通信、および他のア
プリケーションにたいして別々のアダプタを設けること
を単純に実現できるものではない。むしろ、異なったア
プリケーションおよび関連のプロトコルをサポートでき
る複数目的用の単一のアダプタを提供する必要がある。
しかし、媒体アプリケーションと通信アプリケーション
のように2つ以上の大きく異なったアプリケーションや
プロトコルのタイプをサポートできる単一のアダプタ用
の単一装置ドライバ・インターフェースを提供するに
は、極めて困難な問題が存在する。
【0005】ちなみに、媒体プロトコルと通信プロトコ
ル間の相違の重要点をまとめることは、複数のプロトコ
ルを扱う発明の重要性およびそうしたプロトコルの大き
な変化や特性に関連した問題を理解するうえで有益と思
われる。
【0006】媒体プロトコルは通常、書込みと読取りが
出会う、例えば、書込みコマンドが送信され一定量のデ
ータが戻ると期待される同じブロックとリンク・サイズ
を有する送信データを含んでいる。逆に、通信プロトコ
ルは通常、データの受信が量的に不確定で、唐突かつ時
間的に不確定、例えば非同時性であるという特性を有す
る。ここに説明のインプリメンテーションは関連のBU
FおよびMBUF構造を有する媒体プロトコルと通信プ
ロトコルである異なったプロトコルに関するものである
が、本発明はこれに限定するものではない。本発明は、
前記した3つの共通リンク、つまりデータのポインタ、
データの長さ、DMAをセット・アップするためのクロ
ス/メモリ記述子等を有するインターフェースの異なっ
た構造を利用する複数のプロトコルのアプリケーション
を認めるものである。従って、前記3つの要素が存在す
る限り、異なった構造を利用する本発明の教示に従い同
じドライバと通信するために、経路における異なった構
造を使用するいかなるプロトコルも組み合わることがで
きる。
【0007】より一般的な感覚では、媒体プロトコルと
通信プロトコルは非同期あるいは同期データを扱ってい
るか、また、固定データ・ブロックのサイズか可変デー
タ・ブロックのサイズであるかにより識別されるようで
ある。異なったプロトコルは、可変の特性を有するデー
タの管理を効率よく制御するため異なった構造を提供す
る必要性から生じ、BUF構造を用いる媒体プロトコル
と、MBUF構造を用いる通信プロトコルを生じさせ
る。
【0008】複数のプロトコルをサポートするこうした
問題にたいする従来のアプローチは、単一のデータ構造
に対して設けることと、ソフトウェア層間でデータをコ
ピーすることであった。しかし、当業界で公知のよう
に、高能力のインターフェースを実現する鍵は(例え
ば、媒体アプリケーションおよび通信アプリケーション
で求められるように)その反対、つまりソフトウェア層
間でのデータのコピーを避けることである。
【0009】データの再コピーに関連した能力上の不利
をさけるために従来技術で取られた別の方法は、装置ド
ライバがその核に存在しない異なったアーキテクチャを
設けることであった。この例はシステム制御ブロック
(SCB)アーキテクチャであった。データはSCBフ
ォーマット内で設けられ、そのインターフェースとして
図2に示した方法で順次伝えた。このシステムで取られ
た方法はプロトコル・スタック・コードを書き換えて単
一の装置ドライバに作用することであった。この方法は
コードの本質的な部分の再インプリメンテーションを必
要とするという重大な欠点をもつばかりではなく、その
パフォーマンスのヒットはデータのコピーの例から得ら
れたものと合致させれないままであった。
【0010】例えば(IBM社製造のPS/2コンピュ
ータ用のSCBにより提供されるような)媒体プロトコ
ルおよび通信プロトコル用に、共通の装置ドライバのイ
ンターフェース構造に対する基盤の形で設けるため幾つ
かの試みがなされているが、他の環境においてはその問
題は未だに全く取り組まれていない。したがって、媒体
および通信のような複数のプロトコルに対する共通の装
置ドライバのインターフェース構造はUNIXベースの
システムについて現在のところ存在していない。
【0011】
【発明が解決しようとする課題】上述のように、ソフト
ウェア層間でデータをコピーする必要性がない複数プロ
トコルの装置インターフェース・サブシステムを遂行す
るためのシステムおよび方法が望まれている。
【0012】本発明の別の目的は、媒体およびアプリケ
ーション・プログラムの処理環境で単一のアダプタを用
いることの可能な低コストでインプリメンテーションが
容易なサブシステムを提供することである。
【0013】本発明の他の目的は、前から存在するコア
構造を利用でき、装置ドライバ・コードを新しい構造用
に書き変える必要がない複数プロトコル環境で使用可能
な装置ドライバのサブシステム・インターフェースを提
供することである。
【0014】さらに、本発明の他の目的は、従来のデー
タ・コピー技術で得るのが困難である高能力な多目的イ
ンターフェースを提供することである。
【0015】
【課題を解決するための手段】本発明によるシステムお
よび方法は、媒体および通信を含む複数のプロトコルを
最小の経費で単一のアダプタで同時に処理可能とするも
のである。
【0016】媒体および通信装置への第1インターフェ
ース構造は、DMA用の各々のバッファをマッピングす
るためのバッファ・アドレス、バッファ長さ、クロス・
メモリ記述子のそれぞれ類似の構成要素特性を有すると
定義される。この第1構造はチェーン可能であり、デー
タは単一操作用の複数の隣接しないデータ・バッファか
ら集められるか、それに分散させられる。プロトコル・
ヘッドが第1インターフェース構造のチェーンに対しポ
インタを用いて完成するように共通の構造が設けられ
る。このアーキテクチャは、各制御要素用に複数のバッ
ファ記述子を設けて種々のユーザのバッファに記述する
ように構成される。
【0017】複数バッファ構造のチェーンは、第1構造
あるいはサポートすべき他の構造に対するポインタを含
み、この情報はそのアダプタに対するバッファをマップ
し、かつDMAアドレスを得るようにアダプタ・ドライ
バに採用される。この方法では、積層アーキテクチャの
利点が得られると同時に、現在のインターフェースを利
用できるという柔軟性も合わせ持つ。従って、単一のア
ダプタ・ドライバを通じて処理する複数のプロトコルに
対する使い易さを実現でき、その単一アダプタではその
インターフェースをサポートする異なったアダプタで同
じプロトコル・ヘッド・コードが処理できる。
【0018】本発明のシステムおよび方法は、既存のア
ーキテクチャへの統合を提供するものである。従って、
バッファおよびDMAのマネージメント、およびアダプ
タの取り扱いもアダプタ・ドライバに集中させ、この機
能の分散により得られるものよりシステム資源のより効
果的な配列を可能にする。ハードウェア・インターフェ
ースもアダプタ・ドライバ内で孤立させ、集中アダプタ
への変更はコードの1セクションに限定させることが可
能となる。
【0019】
【実施例】図1は、本発明の操作を実施するための装置
ドライバ・サブシステム(図3、図4、表1)に関連し
て操作するコンピュータ・システムの望ましい実施例を
示す。このシステムは、CPU10、読取専用メモリ
(ROM)16、ランダム・アクセス・メモリ(RA
M)14、I/Oアダプタ18、ユーザ・インターフェ
ース・アダプタ22、通信アダプタ34、ディスプレイ
・アダプタ36、それら全てを相互接続する共通アドレ
ス/データ/制御パスあるいはバス12から構成され
る。前記構成要素の各々は当業界で公知の技術を使用し
て共通バスにアクセスし、また、CPUをバス・マスタ
としてこのシステム内の各構成要素に特定のアドレス・
レンジを専用としてあたえるような方法を有する。図1
のシステムに使用された当業界で公知の他の技術は、D
ASD20あるいはデータ処理システムのRAM14に
見られるネットワークのような外部装置から高速でデー
タを転送するために使用したダイレクト・メモリ・アク
セス(DMA)などがある。図1に示すように、これら
DASD20のような外部装置はI/0アダプタ18の
ような各々のアダプタを通じて共通バス12にインター
フェースする。ディスプレイ38のような他の外部装置
も、ディスプレイ・アダプタのようなそれぞれのアダプ
タを同様に用い、バス12とディスプレイ38あるいは
他の装置とのデータの流れを得る。種々のユーザ側イン
ターフェース手段は相互接続用に設けられ、ユーザ側イ
ンターフェース・アダプタ22を伴い、図ではジョイ・
スティク32、マウス26、キーボード24、スピーカ
28などのような代表的なユーザ入力装置をそのアダプ
タに接続している。それらは公知のものであり、その詳
細な説明は省略する。
【0020】詳細は後述するが、表1および図3、図4
を参照にして説明するようにプログラム・コードのイン
プリメンテーションの際、図1のシステムは本発明によ
る複数プロトコル環境用の単一装置ドライバに対する設
備を効果的にするためプログラムを実行する。
【0021】初めに、高レベルな説明を本発明の全体的
な操作について行い、図2から図4を参照にしてより詳
細な説明を行う。ここで説明するのは、図示する実施例
ではSCBインターフェースをサポートする複数プロト
コル装置と共に使用する独特の装置ドライバ・サブシス
テムのインターフェースである。SCBアーキテクチャ
(IBMコーポレーションによるSCB Architecture Sup
plement To The IBM Personal System/2 Hardware Inte
rface Technical Reference Architecturesに定義され
ており、この文献は本願の引例として開示)は、一般的
な待ち行列制御ブロック・インターフェースをアダプタ
に与え、同じインターフェースを使用するアダプタを通
じ複数タイプのプロトコルを実行可能とする。ファイバ
・チャンネル・アダプタは、TCP/IPのような通信
プロトコルおよびIPI−3あるいはSCSIのような
媒体プロトコルをサポートするためにこのインターフェ
ースを採用するように設けることも可能である。ここで
説明するインプリメンテーションはSCBアーキテクチ
ャおよびファイバ・チャンネル・サブシステムに関する
ものであるが、本発明はそうしたことに限定されるもの
ではなく、他のアーキテクチャおよびサブシステムへの
応用も可能である。本発明の主眼は、媒体と通信の両方
を含む複数のプロトコルを可能とする独特なインターフ
ェースであり、最小の経費で同一のアダプタを通じて実
行するものである。従って、例えば、ファイバ・チャン
ネルが利用され、インターフェースが他のSCB装置に
拡張可能であり、基本的にそのコンセプトはどの装置の
インターフェースにも拡張可能である。
【0022】図示の実施例では、基本構造はSCBアダ
プタ装置を最下層に設けるようにしたものであり、SC
B制御要素を実際に待ち行列としたり、待ち行列解除と
し、またアダプタから全ての割込みを処理するものであ
る。アダプタ・ドライバも入力してくる求められてない
データに対するバッファ・マネージメントを処理し、さ
らにDMAに対するバッファの全てのマッピングを処理
する。アダプタ・ドライバはアダプタ特定のものであ
り、異なったアダプタ間のSCBインプリメンテーショ
ンにおける相違を処理するように作られる。これはハー
ドウェアに影響を受ける唯一の層である。この構造その
ものは固有の物ではなく、例えば、IBMコーポレーシ
ョンにより提示されたAIX(IBMの商標)処理シス
テムのSCSIサブシステムに基づいている。このサブ
システムSCSIでは、装置ヘッド(ディスク、テー
プ、およびCD−ROM装置ドライバ)は、いろいろな
装置に特定のアダプタ・ドライバ を通して走行しても
よい。
【0023】本発明で取り扱う問題は、SCBアダプタ
のような複数プロトコル・アダプタを通じて前記システ
ムのサポートに関する、それは例えば、通信プロトコル
および媒体プロトコルをサポートするものである。媒体
装置および通信装置への標準インターフェースは後述す
るBUFおよびMBUF構造である。構造が異なって
も、その両方は後述する共通の特性を幾つか有する。両
構造の重要な部分はバッファ・アドレス、バッファ長、
DMAに対しバッファをマッピングするため必要とされ
るクロス・メモリ記述子である。さらに、両構造はチェ
ーン化可能であり、複数の隣接しないデータ・バッファ
あるいは分散した複数のディスク隣接データ・バッファ
から単一操作に対する入力データ用にデータを集めるこ
とができる。
【0024】高能力なインターフェースを得るための鍵
は、ソフトウェア層間でのデータのコピーを避けること
である。本発明では、プロトコル・ヘッド(通信あるい
はIPI−3あるいはSCSIのような)をBUFある
いはMBUF構造のチェーンにたいするポインタで記入
するという共通のCTL_ELEM_BLK構造を設け
ることにより達成される。ここで説明するファイバ・チ
ャンネルのインプリメンテーションはそれら2つのタイ
プのバッファをサポートするが、前記した基本要素を有
する他の種類も同様に可能である。CTL_ELEM_
BLK構造の定義は表1に示してあり、以下に詳細に説
明する。
【0025】 表 1 (表中に現れる英文字の列はコマンドなどを表す記号であり、翻訳できない) struct ctl_elem_blk{ struct ctl_elem_blk *next; struct ctl_elem_blk *prev; uchar flags; /*このctl_elem_blkに対するフラッグ*/ int key; /*プロトコル・ヘッドにより使用 */ int status; /*制御要素状態 */ int num_pd_info; /*pd_info構造の数 */ int pds_data_len; /*pd_infosにおけるデータの長さ */ caddr_t reply_elem; /*回答要素 */ int reply_elem_len; /*回答要素バッファの長さ */ caddr_t ctl_elem; /*ctl elemへのポインタ */ struct pd_info *pd_info; /*PD-1情報 */ }; struct pd_info{ struct pd_info *next; uint buf_type; /*p_buf_listのバッファのタイプ */ uint pd_ctl_info; /*PD-1の初めの語 */ uint mapped_addr; /*バス・アドレス */ int total_len; /*PDの全長 */ int num_tcws; /*TCWsの数 */ caddr_t p_buf_list; /*このPD用のバッファのリスト */ ;
【0026】SCBアーキテクチャは、各制御要素に対
し、種々のユーザ側バッファを記述するために利用され
る複数のバッファ記述子(「タイプ1パラメータ記述
子」として識別される)が存在しえるように構成する。
このPD_INFO構造のチェーンはBUFあるいはM
BUF構造(あるいは、サポートするための特定なアダ
プタ・ドライバに適した他の構造)に対するポインタを
含む。アダプタ・ドライバはこの情報を利用してバッフ
ァをマップし、かつ、アダプタ用のDMAアドレスを得
る。
【0027】従って、前記サブシステムは現在のインタ
ーフェースを利用できる柔軟性を有し、同時に積層アー
キテクチャの利点を提供する。これは、また、複数プロ
トコルが単一のアダプタ・ドライバを通じて実行可能で
あり、同じプロトコル・ヘッドがこのインターフェース
をサポートする異なったアダプタを通じて実行可能であ
ることを意味する。
【0028】本発明のインターフェース・サブシステム
から他にも利点が得られる。それは既存のアーキテクチ
ャに一体化できることである。例えば、既存のSCSI
アダプタ装置ドライバを通じて実行するSCSI装置ヘ
ッドを利用して、SCSIプロトコル・ヘッドを通じて
実行し、また、SCSIプロトコル・ヘッドもこのSC
Bインターフェースを有するSCSIプロトコルをサポ
ートするどのアダプタを通じて実行する。
【0029】さらに、バッファ・マネージメント、DM
Aマネージメント、およびアダプタ操作は全てアダプタ
・ドライバに集中させることができる。これは、分散に
より得られるものよりシステム資源の効果的な配列を可
能とする。さらに、ハードウェア・インターフェースも
アダプタ・ドライバ内で隔離でき、統合アダプタにおけ
る変動をコードの一片に隔離させるようにする。
【0030】図2には、従来の複数プロトコル・スタッ
クを示す機能ブロック図が示されている。この図は縦線
53で二つに分けられている。左の部分は、通常、ディ
スク、テープ、あるいは同様な装置を通じて実行する媒
体アプリケーション40の典型的なプロトコル・スタッ
クを示している。右の部分は、TCP/IP、NFS等
を通じて実行する通信アプリケーション52の典型的な
プロトコル・スタックを示している。また、水平線55
は媒体あるいは通信スタックのソフトウェアおよびハー
ドウェア間を分けるためのものである。図3の説明でよ
り明らかになるが、本発明は図2のインターフェース層
42、54に主眼をおいている。
【0031】ここで使用の「スタック」という用語は、
例えばアプリケーション40に起因するハードウェアで
の所望の結果をもたらすための一連の機能呼出しの概念
を意味し、従って、このスタックという用語はプロセス
機能呼出しスタックに関する。従来の操作では、ユーザ
・アプリケーション40は通常、システム呼出しを発
し、このシステム呼出しも図1のコンピュータ・システ
ムを用いた処理システムの核における装置ドライバを呼
出し、そしてその核は所望の結果が得られるようにハー
ドウェアに対する呼出しを最終的に発する。図2はこれ
らの装置ドライバとハードウェアの種々の層を示したも
のである。特に、代表的なSCSIテープ装置ドライバ
44とSCSIディスク装置ドライバ46が示されてお
り、これらは後に詳細を説明するBUF構造を有するイ
ンターフェース42によって特定のアプリケーション4
0にインターフェースを行う。このために、インターフ
ェース42のBUF構造は3つの主たる構成要素、つま
り、読取りあるいは書込みをするデータのポインタ、こ
のデータのサイズ、そして直接メモリ・アクセスに利用
されるクロス・メモリ記述子等を有する。
【0032】図2では、従来のシステムはSCSIアダ
プタ装置ドライバ48を有し、これは通過した装置ドラ
イバ44、46とは別の構造を有する。装置ドライバ4
8の機能は図2ではSCSIアダプタ50のようなハー
ドウェアに直接インターフェースすることであり、SC
SIアダプタ50はソフトウェア・ハードウェア境界線
55より下にあるので、この装置ドライバ48が実際の
ハードウェアにインターフェースを行うことを示してい
る。
【0033】図2では、プロトコル・スタックの代表的
セットはSCSIについて示されているが、本発明はそ
れに限定するものではないことに注意すべきである。す
なわち、別の標準媒体プロトコルは当業界で公知のIP
I−3のような同じように使用することが可能である。
【0034】複数の個別SCSI装置51が図2に示さ
れており、これはディスク・ドライブ、テープ・ドライ
ブ、CD−ROMドライブ等、の形をとり、その各々の
SCSIアダプタ50に物理的に相互接続させてある。
前記により、ソフトウェア・ハードウェア・チェーンあ
るいは媒体スタックが設けられ、それにより装置51で
所望の結果を図1のシステムで実行する媒体アプリケー
ション40と同じ機能となることが分かるであろう。
【0035】図2の縦線53の右側では、通信アプリケ
ーション52の相関プロトコル・スタックが示されてお
り、媒体アプリケーション・スタックに関する前述の説
明に類似したものである。媒体アプリケーションと同様
に、通信アプリケーション52がイーサネット装置ドラ
イバ56あるいはトークン・リング装置ドライバ58の
ようなそれぞれの装置ドライバと通信する。これらの装
置ドライバと通信アプリケーション間のインターフェー
ス54は、詳細は後述するMBUF構造を有するように
設ける。そのために、このMBUF構造は媒体スタック
に関するBUF構造とは異なっている(例えば、フィー
ルドを異なった名にするなど)。しかし、また3つの構
成要素はBUF構造のものと共通にMBUF構造に設け
る。すなわち、MBUF構造がデータのポインタ、この
データのサイズ、そしてDMA用のクロス・メモリ記述
子等を有するようにする。SCSI装置ドライバ44、
46の場合のように、通信装置ドライバ56、58はイ
ンターフェース54のMBUF構造の情報を採用し、ソ
フトウェア・ハードウェア線55を越えて各々のハード
ウェア・アダプタ、つまり、イーサネット装置ドライバ
56はイーサネット・アダプタ60とトークン・リング
装置ドライバ58はトークン・リング・アダプタ62に
それぞれつながる。これは、装置ドライバとその装置と
の間に1:1の対応がある。
【0036】本発明が取り組んだ異なった構造およびプ
ロトコルの3つの共通した特徴(データのポインタ、こ
のデータのサイズ、そしてDMA用のクロス・メモリ記
述子)の重要性のために、その重要性を簡単に説明す
る。装置ドライバは全体の機能に基づき「通信」ドライ
バあるいは「媒体」ドライバと特徴づけることが可能で
ある。しかし、そのように特徴づけることより、その利
用する構造のためそれらは本来的に異なっており、異な
った方法でデータをマネージメントすることを単純に認
識することがより重要である。
【0037】例えば、テレタイプあるいはTTYドライ
バが通信ドライバと考えることができるが、実際には通
信ドライバの機能に、その機能を実行する独自の特性構
造を有するスクリーン・エミュレーションなどのような
別の機能を追加して行う。同様に、マウス・ドライバや
キーボード・ドライバも従来の通信ドライバと同様の機
能を使用する。
【0038】しかし、これは中央部には無関係であり、
他のドライバとは異なった方法でデータを管理しなくて
はならないという事実により、それらは単純に識別され
る。つまり、その下のアダプタと通信する方法、および
そのデータを管理するため利用したデータ構造が実質的
に異なっており、これが本発明が取り組んだ問題を起こ
している。オペレーティング・システムからアダプタ
へ、例えば、グラフィック・ディスプレイ・アダプタの
場合にデータを得るため、異なったアプリケーションが
異なったデータの必要性を持っている。どのようにデー
タが書かれ、アダプタに転送され、そしてアプリケーシ
ョン、装置ドライバおよびデータがどのように送られる
かにより異なっている。このデータを全てコピーし、ホ
スト・オペレーティング・システムから所望のアダプタ
・メモリにバスを通じて送られる(この機能は従来から
DMAにより行われている)。従って、異なった構造を
採用する異なった全ての装置はあるメカニズムを持たな
くてはならず、それにより、一度、最低レベルの装置ド
ライバにアクセスしており、DMAがセット・アップさ
れてアダプタに送られ、そしてアダプタがそのデータを
DMAすることができる。この機能はデータのポイン
タ、データの長さ、そしてクロス・メモリ記述子を要す
る。従って、本発明の利点を享受するためになぜ前述の
3つの要因、つまり、データのポインタ、このデータの
サイズ、そしてクロス・メモリ記述子が装置ドライバ構
造に存在しなくてはならないか理解できるだろう。
【0039】図3には、複数プロトコル装置インターフ
ェース・サブシステムを提供する本発明のシステムのブ
ロック図が示されている。ソフトウェア・ハードウェア
分割線75(図2の線55と類似)より下にハードウェ
アがあり、SCSI装置、通信リンク、あるいは図1の
システムで操作する他のハードウェア等を有する。さら
に、分割線75より上には種々の装置ドライバ、アプリ
ケーション、および図1のシステムで操作する後述のソ
フトウェアでインプリメンテーションを行う他のコード
・モジュールが示されている。
【0040】図2と図3の比較は、複数プロトコル・ア
プリケーション、たとえば、媒体アプリケーション64
および通信アプリケーション72にたいする条項のよう
な従来システムといくつかの類似を示すことになる。別
の類似点も、SCSIディスク装置ドライバ66および
SCSIテープ装置ドライバ68、また図2のSCSI
装置51と類似のSCSI装置80のようなハードウェ
ア装置にたいする図3の条項内にある。一般的なハード
ウェア・ブロック78が、それから延長するSCSI装
置80および通信リンク82を伴って分割線75より下
に示されている。この延長は、ハードウェア・ブロック
78がどのハードウェアにたいする一般的なアダプタで
あることを表しており、またSCSI装置80あるいは
通信リンク82のような種々の装置に接続させることも
可能である。
【0041】続いて、図3のシステムからは、媒体プロ
トコルと通信プロトコルのような複数のプロトコルをサ
ポートするために図1のシステムが採用しなくてはなら
ないアダプタを設けてあると想定される。しかし、本発
明によれば、図2の従来システムにない別の構成要素が
図3に設けられている。SCSIプロトコル・ヘッド7
0は装置ドライバ66、68と媒体アプリケーション6
4間のインターフェースを行うように設けられている。
このインターフェースは、今までと同様に図2のインタ
ーフェース42のBUF構造インターフェースである。
同様に、通信プロトコル・ヘッド74は図2のインター
フェース54に関係したMBUFインターフェースおよ
び通信アプリケーション52を行うように設けられてい
る。SCSIプロトコル・アダプタ・ヘッド70および
通信プロトコル・アダプタ・ヘッド74を使用して後述
する新しい構造(図3には示してない、制御要素ブロッ
ク)を構築する。
【0042】アダプタ・ドライバ76(例えば、ハード
ウェア・ブロック78として示されたハードウェア・ア
ダプタに直接接続する装置ドライバ)は、前述の新規な
制御要素ブロック構造を実行するインターフェースを有
する。制御要素ブロック構造に含まれるのはバッファ記
述子(P_BUF_LIST)に対する一般的なポイン
タである。それは後述するバッファ・ポインタのリスト
に対するポインタである。このポインタは幾つかの方法
でインプリメンテーションできるが、望ましい実施例で
はBUF構造のチェーンあるいはMBUF構造のチェー
ンに対するポインタである。BUF構造(プロトコル・
ヘッド70の場合)またMBUF構造(プロトコル・ヘ
ッド74の場合)に対するポインタをセットすることに
よりプロトコル・ヘッド70、74がこの制御要素ブロ
ックを作ることがキー・ポイントである。そうすること
により、データをコピーする必要がなく、上述したよう
に、データのコピーは媒体データや通信データを必要と
する高能力のインターフェースに逆効果となる。従っ
て、本発明のシステムのみがそのチェーンへのポインタ
をセットアップするために必要である。詳細は後述する
が、フラッグを用いるBUFあるいはMBUF構造に対
するポインタの2つの異なったタイプを区別するため
に、アダプタ・ドライバ76に論理を与えてある。プロ
トコル・ヘッド70あるいは74によりセットされたフ
ラッグがポインタのタイプを示し、BUFあるいはMB
UF構造に対するポインタであるかを識別する。
【0043】前記のように、前記3つの主な特性が設け
られるかぎり、例えばデータのポイント、このデータの
サイズ、そしてDMA目的のクロス・メモリ記述子のた
めにポインタをもうける限り、本発明は複数の異なった
ポインタあるいは構造の採用を認めている。従って、こ
れらの特徴に合致するどの構造も、(あるインプリメン
テーション中に、アダプタ・ドライバ76が関連のポイ
ンタのタイプを認識する限り)どのタイプのポインタで
あるかを示すフラッグを有するP_BUF_LISTの
リスト・ポインタ内にある。 本発明は特定のバッファ
記述子あるいはMBUFあるいはBUF構造のような構
造に限定されるものではない。
【0044】より明白にするために、コンピュータ業界
の従来の技術用語によれば、バッファ記述子はデータ・
バッファを記述するために使用したBUFおよびMBU
Fのような構造にたいする単なる一般的な名称である。
データそのものはページあるいは他の長さのバッファで
あり、バッファ記述子は単にこうしたデータ(前記のデ
ータ長、クロス・メモリ記述子、および必要におうじて
他の情報を含む)に対するポインタを含むものである。
【0045】また、「クロス・メモリ記述子」という語
は公知の翻訳メカニズムに対する単に従来の名称である
が、さらに詳細な説明をおこなう。UNIXベースのシ
ステムにおいて公知のように、2つの基本メモリ領域が
設けられている。すなわち、核メモリとユーザ・メモリ
であり、ユーザ・アプリケーションはユーザ・メモリを
用い、核アプリケーションはこの核メモリを用いる。ユ
ーザ・メモリに対しDMAで例えばアダプタ・カードに
対しパス・データが望ましいなら、この例ではクロス・
メモリ生成を行う必要があり、たとえば、翻訳機構にこ
のユーザ・メモリが核メモリのように見えるように依頼
する。というのは、アドレス機構が核メモリとユーザメ
モリで異なっているので必要とされる。この方法では、
アダプタ・カードがフェッチを必要とすると、そのシス
テムがユーザ・メモリの正しいデータにアクセスするこ
とができる。クロス・メモリ記述子は単にデータがどこ
にあるか示すだけである。
【0046】従って、核メモリがパスされると、このク
ロス・メモリ記述子は単にそれが核メモリであり、翻訳
は必要ないことを示す。一方、それがユーザ・メモリで
あるなら、クロス・メモリ記述子を用いることにより実
行される翻訳機構がこのメモリがユーザ・メモリ(DM
A論理とサービスにより実行される)内にあることを示
す。クロス・メモリ記述子はDMAがセット・アップさ
れるとパスされ、従ってユーザあるいは核メモリに直接
のDMAに使用される。
【0047】前述のように、図3のハードウェア78
は、典型的なインプリメンテーションにおいて、ファイ
バ・チャンネルFCSあるいはHIPPIに採用された
もののような実アダプタ・カードを表している。このフ
ァイバ・チャンネルは通信リンク82により示されたネ
ットワークとして表示され、マルチプル・スイッチ、直
接接続等の形を取ることができる。リンク82のような
ネットワークを通じての接続は必要に応じてSCSIあ
るいは他の装置80がある。リンク82は、通信が行わ
れているなら、通信中の別のファイバ・チャンネル・ア
ダプタをも有することが可能な目的マシーンを示してい
る。
【0048】制御要素ブロック(CTL_ELEM_B
LK)および、それに含まれる構造(PD_INFO)
をCTL_ELEM_BLKおよびPD_INFO構造
の定義を示した表1を参照にして詳細に説明する。
【0049】表1の内容の説明を続けると、PD_IN
FO構造はPD_INFOに含まれたバッファをリスト
化するP_BUF_LISTポインタを有している。ま
た、PD_INFO構造は、P_BUF_LISTが位
置決めするバッファのタイプを記述するセットを得るフ
ラッグを含んでいる。PD_INFOのBUF_TYP
Eパラメータは、P_BUF_LISTにより位置決め
されるバッファのタイプを定義する。表1で説明した構
造は、前述したMBUFおよびBUF構造のようなアプ
リケーションによりサポートさせなければならないバッ
ファのタイプを説明するさいの、一般的であり、かつイ
ンプリメンテーション特定であることが本発明の特徴で
ある。
【0050】ここで説明した代表的なインプリメンテー
ションでは、装置ドライバ・サブシステム・インターフ
ェースは通信プロトコルと媒体プロトコルの両方をサポ
ートする複数プロトコルSCBアダプタ用に設けられ
る。本発明はこのSCBアーキテクチャに限定されない
が、理解を容易にするためにこれを簡単に説明する。こ
のサブシステム制御ブロック(SCB)アーキテクチャ
は、装置に対するインターフェースの一般的アーキテク
チャを提供することにより、拡大するコンピュータ・シ
ステムのコストおよび制御の単純さを維持するという問
題に対応するため考案したものである。従って、CTL
_ELEM_BLKおよびPD_INFO構造のあるフ
ィールドはSCBアーキテクチャで特に扱うSCB特定
(例えば、REPLY_ELEM、REPLY_ELE
M_LEN、CTL_ELEM、PD_CTL_INF
O)である。しかし、前記より、本発明はSCB特定で
ある必要はなく、これらのフィールドは本発明のインプ
リメンテーションに必要ではないことは容易に分かるで
あろう。すなわち、本発明はSCBアーキテクチャに特
定したものではなく、ここに説明したインプリメンテー
ションにのみ特定され、他のアーキテクチャに対するア
プリケーションを有効とする。
【0051】表1に関する前述の説明で、フラッグがバ
ッファのタイプ(例えば、BUF、MBUF)を記述す
るセットであり、ある時間内に採用されることを述べ
た。これはデータを図3の上部レベルのドライバから下
部レベルのドライバを介して、1度以上のコピー(従来
技術のシステムでの場合)をすることなく底部のハード
ウェア78に流すことが可能である。これにより、制御
要素ブロックはBUFおよびMBUFのような既存の構
造を採用するように作る必要があることが明らかであ
る。この制御要素ブロックはドライバ66、68、7
0、74等により作り、図3のアダプタ・ドライバ76
に提供されなければならない。ドライバ76はどちらの
タイプの構造がパスされてきたのか認識し、その構造に
よるデータを適切にハードウェア装置78に転送する。
明らかに、前述のように、図3のシステムのハードウェ
ア78は、本発明の長所を得るために複数のプロトコル
をサポートしなくてはならない。
【0052】図4には本発明の一続きの操作が示されて
おり、第1ステップではプロトコル・ヘッド70あるい
は74が入力として、プロトコル・スタック(媒体スタ
ック64あるいは通信スタック72等)、データに対す
るポインタ、データ長、クロス・メモリ記述子の3要素
を有する構造(代表的なBUFあるいはMBUF等)か
らパスされる。
【0053】次のステップとして、CTL_ELEM_
BLKが表1に示されたように作られる。このブロック
は前にパスした構造(例えば、ここで説明した特定のイ
ンプリメンテーションの場合にはBUFあるいはMBU
F)に対するポインタを含む。このポインタは表1のP
_BUE_LISTポインタとして認識される。
【0054】一度、この制御要素ブロックが作られる
と、制御要素ブロックのデータを使いその構造が作ら
れ、その後、必要に応じてデータをアクセスし、ハード
ウェア・アダプタ78にそれをコピーする。
【0055】前記のように、従来技術のシステムに存在
しない本発明による独特のステップのインプリメンテー
ションが行われることが分かる。初めに、例えば、前記
の制御要素構造が作られる。さらに、データの再コピー
の必要性なく、装置データ・チェーンを通じてデータを
ハードウェアに伝えるために、2つの異なった予め存在
する構造を組合せ、それを同じ共通の制御要素構造内で
利用させる。つまり、単一のアダプタ・ドライバ用に機
能を設け、そのドライバは複数のプロトコル・タイプか
らの情報を扱う。データを記述するための制御要素ブロ
ックをカードに転送し、その制御要素構造内のデータ・
ポインタは、データがどのようにフォーマットされてい
るのか記述するようにフラッグを単にセットできるとい
う意味で、一般的である。
【0056】従来技術のシステムにおいてシステムの各
ハードウェア装置は1つの構造のみと通信し、それのみ
を認識するということであった。しかし、本発明によれ
ば、途中データが一般的方法でCTL_ELEM_BL
K内に書き込まれるので、CTL_ELEM_BLK構
造を採用することにより同じ装置ドライバに複数個の異
なった構造を送ることが容易になる。CTL_ELEM
_BLKは、真にデータ・ポインタであるか、あるいは
装置ドライバに送るべきいくつかの異なった構造の一つ
にたいするポインタなのか識別する。従って、このポイ
ンタは特定の定義を持たず、どちらかと言えば真に一般
的であり、あるタイプのポインタは前述のプロトコル・
ヘッドによりセットしたフラッグにより定義される。従
って、アダプタ・ドライバ76は、インプリメンテーシ
ョンを行う必要がある際に送るべき異なった構造に対応
する多くの異なったフラッグとして認識可能である。
【0057】PD_INFOSに関して、前述したよう
に集合位置を記述するために、これらは互いにチェーン
化させる。プロトコル・チェーンに送る必要があるデー
タの1単位は、必要あればメモリの異なったエリアに分
割することができる。そこでは、各PD_INFOSが
互いにリンクした異なったメモリ位置を含んでいる。つ
まり、CTL_ELEM_BLK構造は複数のPD_I
NFOSを提供可能で、異なったバッファ・タイプの各
々は関連の異なった位置を有する。従って、はじめのP
D_INFO内のバッファ・タイプはAタイプとするこ
とが可能で(つまり、P_BUF_LISTはこの構造
Aを位置決めできる)、一方、このチェーンの次のPD
_INFOは同様な方法で、異なった構造Bを位置決め
可能である。
【0058】本発明の柔軟性を設ける際、データの各ユ
ニットは複数の位置として分散させ、一方をBUF構造
および他方をMBUF構造とすることができる。さら
に、1ユニットを作るデータの各部品は異なったタイプ
とし、細分化が進んだ複数の構造をサポートすることが
可能である。表記法が同じ制御要素ブロックでの異なっ
たタイプのバッファのチェーンをパスすることなので、
本発明は特別なタイプあるいはグループのバッファをパ
スすることに限定されるものではない。
【0059】図4には、表1に関して説明した種々のイ
ンターフェース構造に図3の構成要素を相互関連づける
混成した説明を示してある。ソフトウェア/ハードウェ
ア境界線75が図示されており、線より上は前述した媒
体データおよび通信データに関連したプロトコル・スタ
ックが示されている。
【0060】さらに詳細には、SCSIディスク・ドラ
イバ66およびSCSIテープ・ドライバ68が示され
ており、それらは従来の方法でSCBUF構造のインタ
ーフェース100を採用するSCSIアダプタ48を介
してSCSIハードウェア80にインターフェースを行
う。図3の場合のように、前述の媒体アプリケーション
用のSCSIプロトコル・ヘッド70および通信アプリ
ケーション用の通信プロトコル・ヘッド74が示されて
いる。媒体アプリケーションおよび通信アプリケーショ
ンの各々はそれぞれ対応のデータ構造、つまり、BUF
構造(媒体の場合)およびMBUF構造(通信の場合)
に組み合わされている。媒体SCSIドライバ66、6
8の共通インターフェースがBUF構造インターフェー
ス98として示されており、そのインターフェースはS
CBUF構造インターフェース102を介してSCSI
媒体プロトコル・ヘッド70にインターフェースを行
う。同様に、通信プロトコル・ヘッド74がMBUF構
造インターフェース104と組み合わされている。
【0061】本発明の特徴を思い起こすと、種々のプロ
トコル・ヘッド(図4に示した通信ヘッドあるいは媒体
ヘッドのような)がBUF構造あるいはMBUF構造の
ような異なった構造のチェーンにポインタを書きいれる
ことができる共通のCTL_ELEM_BLK構造を設
けることである。従って、プロトコル・ヘッド70、7
4が書きいれることになるこの共通の構造を設けるよう
に、このCTL_ELEM_BLK構造のインターフェ
ース106(詳細は表1)が図4に示されている。そし
て、この共通のCTL_ELEM_BLK構造は前述の
方法により、FCSアダプタ・ドライバ90のような種
々のハードウェア・ドライバ、およびSCBアダプタ・
ドライバ92のような他のアダプタ・ドライバに採用さ
れ、それぞれのハードウェア(同様な例として図4に示
された対応のFCSハードウェア94および他のSCB
ハードウェア96)を駆動する。
【0062】制御要素ブロックはパラメータ記述子情報
のチェーン化したリストを有し、MBUFおよびBUF
構造のような構造の前述のチェーン化したリストに対応
することを述べた。このシステムは1パケットのデータ
を転送することを要求されていると考えられる。また、
このデータはメモリの異なったエリアに分散されている
と考えられる。このPD_INFOの各々はこのエリア
の1つを表示するために採用され、これにより全てのP
D_INFOはひとまとめにして、どのシステムが転送
の要求を出しているかというデータのユニットあるいは
パケットを定義する。BUFおよびMBUF構造の定義
は従来技術で公知であり、BUF.HファイルおよびM
BUF.Hファイルに含まれる従来の形でUNIXシス
テム内で提供される。従って、ここでは詳細な説明は省
略する。
【0063】ここで説明したアプリケーションはDMA
をインプリメンテーションする実施例に関連したもので
あるが、本発明はそれに限定されるものではない。当業
界で公知のように、バスを通じてアダプタにデータを転
送する別の従来の方法はプログラムしたIO(PIO)
による、これは単にチャンネルを通じてデータをコピー
する異なった方法であり、CPUをバイパスしメモリか
らデータを直接得る装置に代わりバスを通じてコピーす
ることをCPUが制御する。本発明はDMA環境と同様
にこのPIOでも操作するので、DMA環境に限定され
るものではないことは明らかである。(PIOインプリ
メンテーションにおいては差があり、前記クロス・メモ
リ記述子は不要である。)
【0064】まとめとして、本発明の構成に関して以下
の事項を開示する。
【0065】(1)複数プロトコルのコンピュータ・シ
ステム環境において、複数の異なったプロトコル・スタ
ックから2つ以上の異なった構造を対応のプロトコル・
ヘッドにパスするステップと、前記構造に対するポイン
タを含む前記プロトコル・ヘッドで共通の構造を生成す
るステップと、前記共通構造を前記アダプタ・ハードウ
ェアにパスするステップを有することを特徴とするアダ
プタ・ハードウェアへのインターフェース方法。 (2)前記2つ以上の異なった構造の各々はバッファ・
アドレスに対するポインタを有することを特徴とする前
記(1)に記載の方法。 (3)前記2つ以上の異なった構造の各々はバッファ長
に対するポインタを有することを特徴とする前記(1)
に記載の方法。 (4)前記2つ以上の異なった構造の各々はクロス・メ
モリ記述子を有することを特徴とする前記(1)に記載
の方法。 (5)前記共通の構造は制御要素ブロックであることを
特徴とする前記(1)に記載の方法。 (6)前記アダプタ・ハードウェアへの前記共通構造の
前記パスステップに応じて前記アダプタ・ハードウェア
を作動させるステップを有することを特徴とする前記
(5)に記載の方法。 (7)前記2つ以上の異なった構造は、第1インターフ
ェース用の構造と第2インターフェース用の構造を有す
ることを特徴とする前記(1)に記載の方法。 (8)前記第1インターフェースは、前記アダプタ・ハ
ードウェアを有する通信装置に対するものであることを
特徴とする前記(7)に記載の方法。 (9)前記第2インターフェースは、前記アダプタ・ハ
ードウェアを有する媒体装置に対するものであることを
特徴とする前記(7)に記載の方法。 (10)前記2つの異なった構造は、BUF構造とMB
UF構造を有することを特徴とする前記(1)に記載の
方法。 (11)複数の制御要素を生成するステップと、対応の
ユーザ・バッファを記述する、各制御要素に対する複数
のバッファ・パラメータ記述子を生成するステップと、
をさらに有することを特徴とする前記(5)に記載の方
法。 (12)前記複数のバッファ・パラメータ記述子はパラ
メータ記述子情報構造のチェーンを有することを特徴と
する前記(11)に記載の方法。 (13)前記パラメータ記述子情報構造の各々は前記2
つ以上の異なった構造に対するポインタを有することを
特徴とする前記(12)に記載の方法。 (14)前記複数のプロトコル・スタックは媒体スタッ
クおよび通信スタックを有することを特徴とする前記
(1)に記載の方法。 (15)複数プロトコル環境において、前記プロトコル
のそれぞれ1つに関連した異なったバッファ構造をそれ
ぞれ定義する複数のプロトコル・ヘッド手段と、前記異
なったバッファ構造のチェーンを位置決めするための前
記プロトコル・ヘッド手段に応じる制御要素ブロック手
段とを有する複数プロトコル環境下で使用するための装
置ドライバ・システム。 (16)前記制御要素ブロックは複数の制御要素を有す
ることを特徴とする前記(15)に記載のシステム。 (17)前記制御要素の各々は、前記異なったバッファ
構造を定義するそれぞれ関連の対応する複数のバッファ
記述子を有することを特徴とする前記(16)に記載の
システム。 (18)前記複数のバッファ記述子はパラメータ記述子
情報構造のチェーンを有することを特徴とする前記(1
7)に記載のシステム。 (19)前記パラメータ記述子情報構造は前記異なった
バッファ構造に対するポインタを有することを特徴とす
る前記(18)に記載のシステム。 (20)前記複数のプロトコルは、媒体プロトコルおよ
び通信プロトコルを有することを特徴とする前記(1
9)に記載のシステム。
【0066】
【発明の効果】積層アーキテクチャの利点が得られると
同時に、現在のインターフェースを利用できるという柔
軟性も合わせ持つ。従って、単一のアダプタ・ドライバ
を通じて処理する複数のプロトコルに対する使い易さを
実現でき、その単一アダプタではそのインターフェース
をサポートする異なったアダプタで同じプロトコル・ヘ
ッド・コードが処理できる。
【図面の簡単な説明】
【図1】本発明の装置ドライバ・サブシステムに関連し
て操作するコンピュータ・システムを示す説明図であ
る。
【図2】従来技術の装置ドライバ・インターフェース・
サブシステムのブロック図である。
【図3】本発明の装置ドライバ・インターフェース・サ
ブシステムのブロック図である。
【図4】本発明の装置インターフェース・サブシステム
の別のブロック図である。
【符号の説明】
10 CPU 12 バス 14 RAM 16 ROM 18 I/Oアダプタ 20 外部装置 22 ユーザ側インターフェース・アダプタ 24 キーボード 26 マウス 28 スピーカ 32 ジョイ・スティク 34 通信アダプタ 36 ディスプレイ・アダプタ 38 ディスプレイ
───────────────────────────────────────────────────── フロントページの続き (72)発明者 デビッド・ウィリアム・シェフィールド アメリカ合衆国78728 テキサス州、オー スチン、クリスタル・ショア・ドライブ 2010

Claims (20)

    【特許請求の範囲】
  1. 【請求項1】複数プロトコルのコンピュータ・システム
    環境において、 複数の異なったプロトコル・スタックから2つ以上の異
    なった構造を対応のプロトコル・ヘッドにパスするステ
    ップと、 上記構造に対するポインタを含む上記プロトコル・ヘッ
    ドで共通の構造を生成するステップと、 上記共通構造を上記アダプタ・ハードウェアにパスする
    ステップと、を有することを特徴とするアダプタ・ハー
    ドウェアへのインターフェース方法。
  2. 【請求項2】前記2つ以上の異なった構造の各々はバッ
    ファ・アドレスに対するポインタを有することを特徴と
    する請求項1に記載の方法。
  3. 【請求項3】前記2つ以上の異なった構造の各々はバッ
    ファ長に対するポインタを有することを特徴とする請求
    項1に記載の方法。
  4. 【請求項4】前記2つ以上の異なった構造の各々はクロ
    ス・メモリ記述子を有することを特徴とする請求項1に
    記載の方法。
  5. 【請求項5】前記共通の構造は制御要素ブロックである
    ことを特徴とする請求項1に記載の方法。
  6. 【請求項6】前記アダプタ・ハードウェアへの前記共通
    構造の前記パスステップに応じて前記アダプタ・ハード
    ウェアを作動させるステップを有することを特徴とする
    請求項5に記載の方法。
  7. 【請求項7】前記2つ以上の異なった構造は、第1イン
    ターフェース用の構造と第2インターフェース用の構造
    を有することを特徴とする請求項1に記載の方法。
  8. 【請求項8】前記第1インターフェースは、前記アダプ
    タ・ハードウェアを有する通信装置に対するものである
    ことを特徴とする請求項7に記載の方法。
  9. 【請求項9】前記第2インターフェースは、前記アダプ
    タ・ハードウェアを有する媒体装置に対するものである
    ことを特徴とする請求項7に記載の方法。
  10. 【請求項10】前記2つの異なった構造は、BUF構造
    とMBUF構造を有することを特徴とする請求項1に記
    載の方法。
  11. 【請求項11】複数の制御要素を生成するステップと、 対応のユーザ・バッファを記述する、各制御要素に対す
    る複数のバッファ・パラメータ記述子を生成するステッ
    プと、をさらに有することを特徴とする請求項5に記載
    の方法。
  12. 【請求項12】前記複数のバッファ・パラメータ記述子
    はパラメータ記述子情報構造のチェーンを有することを
    特徴とする請求項11に記載の方法。
  13. 【請求項13】前記パラメータ記述子情報構造の各々は
    前記2つ以上の異なった構造に対するポインタを有する
    ことを特徴とする請求項12に記載の方法。
  14. 【請求項14】前記複数のプロトコル・スタックは媒体
    スタックおよび通信スタックを有することを特徴とする
    請求項1に記載の方法。
  15. 【請求項15】複数プロトコル環境において、 前記プロトコルのそれぞれ1つに関連した異なったバッ
    ファ構造をそれぞれ定義する複数のプロトコル・ヘッド
    手段と、 前記異なったバッファ構造のチェーンを位置決めするた
    めの前記プロトコル・ヘッド手段に応じる制御要素ブロ
    ック手段とを有する複数プロトコル環境下で使用するた
    めの装置ドライバ・システム。
  16. 【請求項16】前記制御要素ブロックは複数の制御要素
    を有することを特徴とする請求項15に記載のシステ
    ム。
  17. 【請求項17】前記制御要素の各々は、前記異なったバ
    ッファ構造を定義するそれぞれ関連の対応する複数のバ
    ッファ記述子を有することを特徴とする請求項16に記
    載のシステム。
  18. 【請求項18】前記複数のバッファ記述子はパラメータ
    記述子情報構造のチェーンを有することを特徴とする請
    求項17に記載のシステム。
  19. 【請求項19】前記パラメータ記述子情報構造は前記異
    なったバッファ構造に対するポインタを有することを特
    徴とする請求項18に記載のシステム。
  20. 【請求項20】前記複数のプロトコルは、媒体プロトコ
    ルおよび通信プロトコルを有することを特徴とする請求
    項19に記載のシステム。
JP7074775A 1994-06-30 1995-03-31 アダプタ・ハードウェアへのインターフェース方法 Expired - Fee Related JP3033935B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US08/269,338 US5590313A (en) 1994-06-30 1994-06-30 Multiple protocol device interface subsystem and method
US269338 2002-10-11

Publications (2)

Publication Number Publication Date
JPH0816495A true JPH0816495A (ja) 1996-01-19
JP3033935B2 JP3033935B2 (ja) 2000-04-17

Family

ID=23026832

Family Applications (1)

Application Number Title Priority Date Filing Date
JP7074775A Expired - Fee Related JP3033935B2 (ja) 1994-06-30 1995-03-31 アダプタ・ハードウェアへのインターフェース方法

Country Status (3)

Country Link
US (1) US5590313A (ja)
EP (1) EP0690388A3 (ja)
JP (1) JP3033935B2 (ja)

Families Citing this family (29)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2757832B2 (ja) * 1995-08-14 1998-05-25 日本電気株式会社 端末装置
US5778180A (en) * 1995-11-06 1998-07-07 Sun Microsystems, Inc. Mechanism for reducing data copying overhead in protected memory operating systems
US5893926A (en) * 1995-12-08 1999-04-13 International Business Machines Corporation Data buffering technique in computer system
US5754788A (en) * 1995-12-28 1998-05-19 Attachmate Corporation Method and system for reconfiguring a communications stack
US5758099A (en) * 1996-05-29 1998-05-26 International Business Machines Corporation Plug and play protocol for bus adapter card
US5832238A (en) * 1996-10-18 1998-11-03 Advanced Micro Devices, Inc. Enabling PCI configuration space for multiple functions
US6651104B1 (en) * 1996-11-12 2003-11-18 Ericsson Inc. Multi-layered interface for interconnecting application programs to system bus lines for electronic devices
US5956723A (en) * 1997-03-21 1999-09-21 Lsi Logic Corporation Maintaining identifier information in a memory using unique identifiers as a linked list
US6115771A (en) * 1998-03-31 2000-09-05 Lsi Logic Corporation Method and system for converting computer peripheral equipment to SCSI-compliant devices
US6631484B1 (en) 1998-03-31 2003-10-07 Lsi Logic Corporation System for packet communication where received packet is stored either in a FIFO or in buffer storage based on size of received packet
US6272400B1 (en) * 1998-07-13 2001-08-07 Helix Technology Corporation Vacuum network controller
US6148278A (en) * 1998-09-24 2000-11-14 International Business Machines Corporation Emulating the S/390 read backwards tape operation on SCSI attached tape devices
US6473824B1 (en) * 1998-10-14 2002-10-29 International Business Machines Corporation Dynamic association of input/output device with application programs
US6725189B2 (en) * 1999-04-22 2004-04-20 Unisys Corporation Adapter for coupling a legacy operating system to a driver of an I/O channel which has an incompatible native operating system interface
US7392256B2 (en) * 2000-03-02 2008-06-24 International Business Machines Corporation Data gather scatter—redistribution machine
US8554896B2 (en) * 2000-03-02 2013-10-08 Dearborn Group, Inc. Protocol adapter for transferring diagnostic signals between in-vehicle networks and a computer
US7895342B2 (en) 2000-03-02 2011-02-22 Dearborn Group, Inc. Multi-protocol adapter for in-vehicle and industrial communications networks
WO2002003744A1 (en) * 2000-06-30 2002-01-10 Hughes Electronics Corporation Residential broadband communications device, and method of operating same
US7630398B2 (en) * 2000-09-27 2009-12-08 Intel Corporation Subnet independent transparent bridge
US7007151B1 (en) * 2000-10-04 2006-02-28 Nortel Networks Limited System, device, and method for controlling access to a memory
US20030217184A1 (en) * 2000-12-30 2003-11-20 Govindan Nair Method and apparatus for allocating buffers shared among protocol layers in a protocol stack
KR100480277B1 (ko) * 2002-09-10 2005-04-07 삼성전자주식회사 통신 시스템에서 통합 유지보수 서버 운용 장치
US7249208B2 (en) * 2004-05-27 2007-07-24 International Business Machines Corporation System and method for extending the cross-memory descriptor to describe another partition's memory
US20060106911A1 (en) * 2004-10-29 2006-05-18 Chapple James S Concurrent PCI express with sDVO
US7734832B2 (en) * 2004-11-10 2010-06-08 Microsoft Corporation Method and system for structured programmed input/output transactions
US8079036B2 (en) 2004-11-10 2011-12-13 Microsoft Corporation Method and system for structured DMA transactions
US8793117B1 (en) * 2008-04-16 2014-07-29 Scalable Network Technologies, Inc. System and method for virtualization of networking system software via emulation
WO2020252763A1 (en) * 2019-06-21 2020-12-24 Intel Corporation Adaptive pipeline selection for accelerating memory copy operations
US20240004823A1 (en) * 2022-06-30 2024-01-04 Advanced Micro Devices, Inc. Dynamic topology discovery and management

Family Cites Families (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4493021A (en) * 1981-04-03 1985-01-08 The United States Of America As Represented By The Administrator Of The National Aeronautics And Space Administration Multicomputer communication system
US4631666A (en) * 1982-10-25 1986-12-23 Burroughs Corporation Data transfer network for variable protocol management
US4701848A (en) * 1984-11-19 1987-10-20 Clyde, Inc. System for effectively paralleling computer terminal devices
US4805090A (en) * 1985-09-27 1989-02-14 Unisys Corporation Peripheral-controller for multiple disk drive modules having different protocols and operating conditions
US4975829A (en) * 1986-09-22 1990-12-04 At&T Bell Laboratories Communication interface protocol
US4914653A (en) * 1986-12-22 1990-04-03 American Telephone And Telegraph Company Inter-processor communication protocol
US4803481A (en) * 1987-03-30 1989-02-07 Peaktronics, Inc. Asynchronous communications system
US4975828A (en) * 1987-08-05 1990-12-04 Cirrus Logic, Inc. Multi-channel data communications controller
US4945480A (en) * 1988-02-10 1990-07-31 International Business Machines Corporation Data domain switching on program address space switching and return
US5210874A (en) * 1988-03-22 1993-05-11 Digital Equipment Corporation Cross-domain call system in a capability based digital data processing system
US5063494A (en) * 1989-04-12 1991-11-05 Unisys Corporation Programmable data communications controller
US5058110A (en) * 1989-05-03 1991-10-15 Ultra Network Technologies Protocol processor
US5249279A (en) * 1989-11-03 1993-09-28 Compaq Computer Corporation Method for controlling disk array operations by receiving logical disk requests and translating the requests to multiple physical disk specific commands
US5179666A (en) * 1990-06-07 1993-01-12 Unisys Corporation Block oriented peripheral device interface
FR2679352B1 (fr) * 1991-07-15 1996-12-13 Bull Sa Dispositif universel de couplage d'un bus d'ordinateur a un controleur d'un groupe de peripheriques.
US5264958A (en) * 1991-11-12 1993-11-23 International Business Machines Corp. Universal communications interface adaptable for a plurality of interface standards
JP2802700B2 (ja) * 1992-04-30 1998-09-24 国際電信電話株式会社 プロトコルデータの処理装置

Also Published As

Publication number Publication date
JP3033935B2 (ja) 2000-04-17
US5590313A (en) 1996-12-31
EP0690388A3 (en) 1996-07-17
EP0690388A2 (en) 1996-01-03

Similar Documents

Publication Publication Date Title
JPH0816495A (ja) 複数プロトコル装置のインターフェース・サブシステムおよびその方法
CN101849230B (zh) 在多主机环境中共享遗留设备
CA2432113C (en) Method and apparatus for multilevel translation and protection table
KR960003413B1 (ko) 데이타 처리 시스템
US9996484B1 (en) Hardware acceleration for software emulation of PCI express compliant devices
CN100382069C (zh) 在逻辑分区之间共享网络i/o适配器的装置与方法
US8645605B2 (en) Sharing multiple virtual functions to a host using a pseudo physical function
JP5175483B2 (ja) ストレージ装置及びその制御方法
US7818459B2 (en) Virtualization of I/O adapter resources
JP2677343B2 (ja) 手順呼出しシステム及び方法
KR100372492B1 (ko) 네트워크 프로세서를 사용하는 서버 클러스터 접속
CN1432149A (zh) 转换保护表和使用该表验证访问请求的方法
KR20050021874A (ko) 물리적 기억 장치의 소프트웨어-이용 기억 장치 에뮬레이션
TW200539628A (en) Method and apparatus for shared I/O in a load/store fabric
JP5469081B2 (ja) 制御パス入出力仮想化方法
US7624156B1 (en) Method and system for communication between memory regions
CN110532208A (zh) 一种数据处理方法、接口转换结构及设备
WO2024113985A1 (zh) 存储系统、数据处理方法及装置、非易失性存储介质及电子设备
KR100372915B1 (ko) 네트워크에 직접 부착 가능한 디스크 시스템
US7185120B2 (en) Apparatus for period promotion avoidance for hubs
US7251248B2 (en) Connection device
JP2901882B2 (ja) 計算機システムおよび入出力命令の発行方法
Yin et al. A reconfigurable rack-scale interconnect architecture based on PCIe fabric
CN117971135B (zh) 存储设备的访问方法、装置、存储介质和电子设备
TW528958B (en) Distributed network system of application program

Legal Events

Date Code Title Description
LAPS Cancellation because of no payment of annual fees