(57)【要約】【課題】  複数のＯＳが稼動するデータ処理システムにおいて、複数のＯＳから共用できるチャネル装置を提供する。さらに、今後導入される多ポート化に対応したチャネル装置においても複数のＯＳからの共用を可能とする。【解決手段】  単一のチャネル装置に該チャネル装置が入出力処理を行う媒体であることを示す複数のＩＤと、前記ＩＤの各々に対して一つのＯＳを割り当て、該ＩＤ毎に独立してデータ転送を制御し、複数のデータ転送を制御する一つの入出力処理制御手段を備える。さらに、複数のポートを備えたチャネル装置において、前記ポートの各々に対してＯＳを割り当て、該ポート毎に独立してデータ転送を行ない、前記複数のポートを制御する一つの入出力処理制御手段を備える。【選択図】  図１
2008262566.tif 000002
【特許請求の範囲】
【請求項１】
中央処理装置上で制御プログラムが動作し、該制御プログラムの制御下で複数のＯＳの動作が可能であり、データを送受信するポートを複数備えたチャネル装置を具備したデータ処理システムにおいて、前記制御プログラムは前記複数のポートの各々に対して前記システム上の１つのＯＳを割り当てる手段を備え、あるＯＳから起動される入出力処理に対して該ＯＳが割り当てられた前記ポート毎に独立してデータの送受信を行ない、前記複数のポートを制御する入出力処理制御手段を前記チャネル装置に備えることを特徴とするデータ処理システム。
【請求項２】
プロセッサと主記憶とチャネル装置を備え、制御プログラムの制御下で複数のＯＳが稼動するデータ処理システムにおいて、前記チャネル装置は主記憶とのデータ転送を行う複数のバッファとチャネル装置をＯＳ対応に制御するための複数の制御レジスタと複数のデータ転送を制御する入出力処理制御手段とを備え、各制御レジスタには入出力装置とのデータの送受信を行うためのチャネル装置識別子が格納され、前記入出力処理制御手段は各ＯＳと前記チャネル識別子と前記バッファとの対応関係に従って複数のＯＳに対するデータ転送制御を行うことを特徴とするデータ処理システム。
【請求項３】
各ＯＳから前記チャネル装置内の制御レジスタへのアクセスを前記制御プログラムが制御することを特徴とする請求項２記載のデータ処理システム。
【請求項４】
各ＯＳは前記チャネル装置内の所定の制御レジスタへ直接アクセスすることを特徴とする請求項３記載のデータ処理システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、データ転送を行うデータ処理システムに関するものであり、特に、一つのシステム上にて複数のＯＳが稼動し、一つのチャネル装置にて複数のＯＳに対する処理を同時に行うコンピュータ装置に関するものである。
【背景技術】
【０００２】
これまで、メインフレームでは、一つのシステム上において制御プログラムの下で複数のＯＳを動作させるＬＰＡＲ（Logical Partition）機能をサポートしてきた。
【０００３】
近年、該ＬＰＡＲ機能をメインフレームだけではなく、オープン系サーバもサポートするようになってきている。オープン系サーバにて該ＬＰＡＲ機能をサポートするにあたり、入出力処理を行うチャネル装置を搭載できるスロット数に制限があるため、一つのチャネル装置を複数のＯＳから共用することが求められている。しかし、上記のようにチャネル装置を複数のＯＳによる共用を実現しているメインフレームの場合、サポートしているチャネル装置がメインフレームベンダの固有仕様によるものが多く、業界標準規格のチャネル装置をサポートしているオープン系サーバでは実現が困難である。
【０００４】
上記のようにオープン系サーバがサポートしている業界標準規格のチャネル装置として、ＡＮＳＩ（American National Standards Institute）によって規格が作成され、幾つかのベンダによって開発されているファイバチャネルがある。ファイバチャネルにおいて数多く使用されているものとして、ＳＣＳＩ（Small Computer System Interface）アーキテクチャをサポートしているＦＣＰ（Fibre Channel Protocol）がある。ＦＣＰのプロトコルにおいて、フレーム中にＬＰＡＲ番号、あるいはＯＳを識別できるデータはなく、複数のＯＳによって共用することが困難であった。また、ファイバチャネルのようなチャネル装置をオープン系サーバのスロットに挿入し、ホスト・プロセッサと接続する業界標準規格の手段として、ＰＣＩ？ＳＩＧにて策定されたＰＣＩ（Peripheral Component Interchange）バスを用いる構成が広く用いられている。ＰＣＩバスの場合、チャネル装置のような媒体一つに対して、標準的に所持しているＰＣＩコンフィギュレーションレジスタを含み、該媒体を制御するための制御レジスタを一つしか保持しておらず、該理由からも複数のＯＳによって共用することは困難であった。
【０００５】
上記のような業界標準規格のチャネル装置に対して、複数のＯＳによる共用をサポートした例として非特許文献１がある。該チャネル装置はファイバチャネルとしてのチャネル装置識別子として一つのＷＷＰＮ（Worldwide unique Port Name）を持っているだけで、ファイバチャネルネットワークの中で一つのポートとしてのみ見えるものである。この制限により複数のＯＳが一つの該チャネル装置を共用できるが、ある任意の時間において、ＬＵＮ（Logical Unit Number）によって識別される一つのファイバチャネルデバイスへは一つのＯＳしかアクセスすることができない。また、該チャネル装置はＰＣＩバスのスロットに挿入するものではなく、ベンダ固有仕様のバス・スロットに挿入するものである。
【０００６】
さらに、近年、サーバのスロットを有効に利用する手段として、一つのスロット上に複数のポートを接続する多ポート化の技術がある。しかし、上記従来技術は多ポート化を実現したチャネル装置に対するものではない。
【０００７】
【非特許文献１】「FCP for the IBM eServer zSeries systems:Access to distributed storage」（IBM J. Res. & Dev. 46, No. 4/5 487-502）
【発明の開示】
【発明が解決しようとする課題】
【０００８】
上記従来技術の場合、複数のＯＳが一つのチャネル装置を共用できても、ある任意の時間において、ＬＵＮによって識別される一つのファイバチャネルデバイスへは一つのＯＳしかアクセスすることができないという制限があり、また、オープン系サーバにてサポートされているＰＣＩバスのような標準仕様のバス・スロットに挿入しているものではない。
【０００９】
即ち、第一の課題として、ある任意の時間において、複数のＯＳがＬＵＮによって識別される一つのファイバチャネルデバイスへアクセスすることができるようにすることにある。又、第二の課題として、ＰＣＩのような標準仕様のバスにも対応し、複数のＯＳにて一つのチャネル装置を共用できるようにすることにある。さらに、第三の課題として、上記にて既に述べたように、サーバのスロットを有効に利用する手段として、一つのスロット上に複数のポートを接続する多ポート化の技術があり、この多ポート化の技術に対しても、複数のＯＳによる共用を実現することにある。
【課題を解決するための手段】
【００１０】
本願のチャネル装置は、単一のチャネル装置において、該チャネル装置が入出力処理を行うための物理的な媒体であることを示すためのＩＤを複数備え、前記ＩＤの各々に対して一つのＯＳを割り当て、該ＩＤ毎に独立してデータの送受信を制御し、複数の前記データの送受信を制御する一つの入出力制御手段を備える。
【００１１】
さらに、ＯＳとチャネル装置との間で入出力処理を行うためにＯＳが該チャネル装置を制御できるようにＯＳが読み書きできる制御レジスタを複数備え、また、前記制御レジスタの各々を一つのＯＳに割り当てる手段を備える。
【００１２】
さらに、データの送受信を行うポートを複数備えたチャネル装置において、前記ポートの各々に対して一つのＯＳを割り当て、複数のポートを制御する一つの入出力処理制御手段を備える。
【発明の効果】
【００１３】
本発明によれば、複数のＯＳからのＩ／Ｏ処理を同時に実行できるチャネル装置を提供できる。
【００１４】
さらに、複数ＯＳからの共用を多ポート化にも対応させたチャネル装置も提供できる。
【発明を実施するための最良の形態】
【００１５】
以下、本願の一実施例について、図面を用いて説明する。
【００１６】
図２はデータ処理システムの構成例を示す。メモリアクセス制御チップ２０３はプロセッサ２０４、２０５、あるいはチャネル装置２０６からの主記憶２００（ＭＳ）に対するメモリアクセスを主に制御し、メモリアクセス制御チップ２０３とチャネル装置２０６はＰＣＩバスにて接続し、メモリアクセス制御チップ２０３とプロセッサ２０４、２０５はシステム固有仕様のホストバスにて接続している。チャネル装置２０６はポートを１つ持ち、ハブ２０７を介して、Ｉ／Ｏデバイス２０８と接続する。ＬＰＡＲ機能をサポートしている該データ処理システムは、１つのＭＳ２００を、例えば各ＬＰＡＲに２ＭＢずつメモリを割り当て、各ＬＰＡＲ上のＯＳは該割り当てられた２ＭＢのメモリを使用してオペレーションを行う。
【００１７】
図１は本発明の特徴を示した、一実施例である。なお、本実施例では、２つのＯＳが１つのチャネル装置を共用する場合について説明する。
【００１８】
図１で示したデータ処理システム中のチャネル装置１００は、ＳＣＳＩアーキテクチャをサポートしたＦＣＰであり、ファイバチャネルとしてのリンク上インタフェースは、ハブ（Hub）接続にてＩ／Ｏ処理を行う標準インタフェース、ＦＣ−ＡＬ（Fibre Channel-Arbitrated Loop）とする。
【００１９】
図1のデータ処理システム上にて、ＬＰＡＲ制御プログラム１０９の制御の下でＬＰＡＲ＃１とＬＰＡＲ＃２の２つのＬＰＡＲが立ち上がり、ＬＰＡＲ＃１においてＯＳ１が稼動し、ＬＰＡＲ＃２においてＯＳ２が稼動することを示す。また、チャネル装置１００は２つのデータ転送用バッファ１、及びデータ転送用バッファ２を備え、該データ転送用バッファ１と２はそれぞれ、ｗｒｉｔｅあるいはｒｅａｄ用データのためのデータバッファ、ＳＣＳＩコマンドのためのコマンドバッファ、更に、ＳＣＳＩコマンドに対する応答フレーム用のレスポンスバッファを備え、各データ転送用バッファがＩ／Ｏ処理としてのデータ転送処理を行うために必要なバッファ容量を備えているものとする。また、該チャネル装置１００は、入出力処理を行うファイバチャネルであることを示すチャネル装置識別子として、ＷＷＰＮ＃１（例えば０ｘ１００）とＷＷＰＮ＃２（例えば、０ｘ２００）の２つを備えている。
【００２０】
入出力処理制御手段１０６が複数のデータ転送処理を制御する。該入出力処理制御手段１０６はデータ転送用バッファ１をチャネル装置識別子ＷＷＰＮ＃１用に使用し、データ転送用バッファ２をチャネル装置識別子ＷＷＰＮ＃２用に使用するように制御し、更に、データ転送のためのＦＣＰプロトコル制御も行う。さらに、入出力処理制御手段１０６は前記複数のデータ転送用バッファに対するメモリアクセス処理を制御する。図４にメモリリクエストフォーマットの例を示す。リクエストタイプ４００はストア、あるいはフェッチ等のリクエストタイプを示し、データサイズ４０１はストアあるいはフェッチするデータサイズ長（バイト）を示す。メモリアクセス処理において、各データ転送用バッファに対するデータバッファ、ＳＣＳＩコマンド等のメモリリクエスト時に、ＤＭＡ（Direct Memory Access）用アドレスをデータアドレス４０３にセットし、データ転送用バッファ１、あるいは２に対するものであることを示すメモリアクセス情報に対して、該入出力処理制御手段１０６は、データ転送用バッファ１に対するリクエストでは、上記メモリアクセス情報を‘１’にセットし、データ転送用バッファ２に対するリクエストでは、上記メモリアクセス情報を‘２’にセットする。ストアリクエストの場合、ストアするデータをデータ４０５に付加する。該チャネル装置中のメモリアクセス制御回路１０５は、メモリアクセス情報が‘１’のメモリリクエストならば該メモリリクエストに対するデータがデータ転送用バッファ１に返ってくることを論理にて実現し、同様に、上記メモリアクセス情報が‘２’のメモリリクエストならば該メモリリクエストに対するデータがデータ転送用バッファ２に返ってくることを論理にて実現しているものとする。
【００２１】
該チャネル装置は、ホストシステムに対して、ＰＣＩバスにて接続する。ここで、メモリアクセス制御回路１０５は上記メモリリクエストをＰＣＩバス仕様フォーマットに変換してメモリアクセスを行う。
【００２２】
ＰＣＩバス接続するデバイスとして標準的に所有しているＰＣＩコンフィギュレーションレジスタを含み、該チャネル装置を制御するための制御レジスタとしてチャネル制御レジスタ１と２の２面を持っている。図３にチャネル制御レジスタを示す。ここで、チャネル制御レジスタ内のＷＷＰＮ＃３０２は、チャネル制御レジスタ１においては、ＷＷＰＮ＃１（０ｘ１００）を保持しており、チャネル制御レジスタ２においてはＷＷＰＮ＃２（０ｘ２００）を保持している。Ｉ／Ｏ処理ベースアドレスレジスタ３０３とＩ／Ｏ処理イネーブルレジスタ３０４については後述する。
【００２３】
前記ＬＰＡＲ制御プログラム１０９は、該チャネル制御レジスタをＬＰＡＲに割り当てる処理を行う。人手操作等によりＬＰＡＲ番号とチャネル装置の対応を設定できる手段を設け、たとえば、該チャネル装置をＬＰＡＲ＃１とＬＰＡＲ＃２から使用できるように設定する。該操作により該データ処理システムは図７に示すチャネル装置と該チャネル装置を使用するＬＰＡＲ番号の対応テーブルを作成する。図７において、ＬＰＡＲ番号の下の値‘１’が、該当するチャネル装置を使用するように設定されたことを示す。図７では、チャネル装置１はＬＰＡＲ１とＬＰＡＲ２から使用するように設定されていることを示し、同様に、チャネル装置２はＬＰＡＲ１から使用するように設定され、チャネル装置３はＬＰＡＲ２から使用するように設定されていることを示している。実施例で示すチャネル装置は1番とする。該ＬＰＡＲ制御プログラム１０９は、若番のＬＰＡＲを若番のチャネル制御レジスタに割り当てるアルゴリズムをサポートしているものとし、図７で示すテーブル情報をもとに、前記チャネル制御レジスタ１をＬＰＡＲ＃１へ割り当て、チャネル制御レジスタ２をＬＰＡＲ＃２へ割り当てる。ＬＰＡＲ＃１上のＯＳ１が該チャネル装置のチャネル制御レジスタに対してＯＳ規定の関数使用によってｒｅａｄあるいはｗｒｉｔｅを行う場合、ＬＰＡＲ制御プログラム１０９は該関数をインターセプトし、前記チャネル制御レジスタ１のｒｅａｄあるいはｗｒｉｔｅを実行するように該関数を制御する。同様に、ＬＰＡＲ＃２上のＯＳ２が該チャネル装置のチャネル制御レジスタをＯＳ規定の関数使用によってｒｅａｄあるいはｗｒｉｔｅを行う場合、該ＬＰＡＲ制御プログラム１０９は該関数をインターセプトし、前記チャネル制御レジスタ２のｒｅａｄあるいはｗｒｉｔｅを実行するように該関数を制御する。該ＬＰＡＲ制御プログラム１０９の制御により、ＯＳ１は該チャネル装置に対して、チャネル制御レジスタ１のみアクセスし、ＯＳ２は該チャネル装置に対して、チャネル制御レジスタ２のみアクセスし、複数のＯＳがそれぞれ独立して該チャネル装置を制御するようにする。以上より、ＯＳ１に対する入出力処理は前記ＷＷＰＮ＃１のチャネル装置によって行われるように見え、ＯＳ２に入出力処理は前記ＷＷＰＮ＃２のチャネル装置によって行われるように見える。
【００２４】
なお、上記のＬＰＡＲ制御プログラム１０９がＯＳ規定の関数をインターセプトする方法の他に、該ＬＰＡＲ制御プログラムがＯＳに対して、使用可能なチャネル制御レジスタ番号を教え、該ＯＳは指定されたチャネル制御レジスタに対して直接アクセスする方法もある。
【００２５】
続いて、リンク初期化処理からＩ／Ｏ処理までについて説明する。
【００２６】
リンク初期化処理において、該チャネル装置１００はＦＣ−ＡＬのプロトコルに基づき、リンク上にてデータ転送を行う際チャネル装置の識別子となるＡＬ−ＰＡ（Arbitrated Loop-Physical Address）を２つ獲得する。ここで、リンク初期化処理の結果としてＡＬ−ＰＡ：０ｘ０１と０ｘ０２を獲得したものとし、上記入出力処理制御手段１０６はＡＬ−ＰＡ ０ｘ０１をデータ転送用バッファ１へ割り当て、ＡＬ−ＰＡ ０ｘ０２をデータ転送用バッファ２へ割り当て、データ転送用バッファとＡＬ−ＰＡの関係をデータとして保持する。図８が本実施例におけるチャネル制御レジスタ、データ転送用バッファ、ＬＰＡＲ番号、ＡＬ−ＰＡの対応を示すテーブルであり、上記入出力処理制御手段１０６は該テーブル情報を作成し、保持する。
【００２７】
リンク初期化処理に続いて、該チャネル装置１００はログイン処理を行う。ここで、２つのＡＬ−ＰＡを取得しているので、まずＡＬ−ＰＡ ０ｘ０１を使用してログインを実行し、ファイバチャネルネットワーク上にて接続されているＩ／Ｏデバイスの情報を得る。続いてＡＬ−ＰＡ ０ｘ０２を使用して同様に接続されているＩ／Ｏデバイスの情報を得る。例えば、該ファイバチャネルネットワークに接続されているＩ／ＯデバイスのポートがＡＬ−ＰＡ ０ｘｃｅ、ＷＷＰＮ＃３（例えば ０ｘ３００）ならば、上記ログイン処理にて、ＡＬ−ＰＡ ０ｘ０１、及び ０ｘ０２に対して、Ｉ／Ｏデバイスのポートとログインがそれぞれ成功したことにより、相手先ポートのＡＬ−ＰＡが ０ｘｃｅであり、また、相手先ポートの識別子がＷＷＰＮ＃３である等の情報を得る。これら情報を入出力処理制御手段１０６は保持する。上記チャネル装置１００は、上記リンク初期化処理、及びログイン処理により、ＡＬ−ＰＡ ０ｘｃｅの接続相手に対してＩ／Ｏ処理を実行することが可能となる。
【００２８】
続いて、Ｉ／Ｏ処理について述べる。Ｉ／Ｏ処理において、各ＯＳは図５に示すデータ構造にてチャネル装置との間でＳＣＳＩのＩ／Ｏ処理を行うものとする。図５において、ＤＡ＿ＡＤ５００は１６バイトの領域とし、ＢＵ＿ＡＤ５０３とＦＬＡＧ５０４から成るデータ領域を指す８バイトの物理アドレスと、ｒｅａｄあるいはｗｒｉｔｅ処理を示す１バイトのＲ／Ｗ情報バイトを含んでいるものとし、Ｒ／Ｗ情報バイトが‘０’のときはｒｅａｄ、‘１’のときはｗｒｉｔｅ動作を要求していることを示し、本実施例では‘１’、ｗｒｉｔｅを示しているものとする。上記データ領域内のＢＵ＿ＡＤ５０３はデータバッファアドレス領域の先頭アドレスを示す８バイトの領域から成り、ＦＬＡＧ５０４は、該データバッファアドレス領域の有効性、Ｉ/Ｏ処理が正常終了したかあるいはエラーにて終了したかを示す情報、エラー発生時のエラーの種類示すエラー情報、及び、データバッファの先頭アドレスを示す８バイト長のセグメント：ＤＢ＿ＡＤの集合からなるデータバッファアドレス領域内のセグメント数を示す情報を含む。なお、セグメントの先頭ＤＢ＿ＡＤ０はＳＣＳＩコマンド領域を示し、ＤＢ＿ＡＤ１以降がｗｒｉｔｅ、あるいはｒｅａｄ用のデータバッファを示すものとする。
【００２９】
Ｉ／Ｏ処理における起動方法として、ここではＯＳが、前記チャネル制御レジスタ内に定義されたＩ／Ｏ処理ベースアドレスレジスタ３０３にＤＡ＿ＡＤ５００の先頭アドレスをｗｒｉｔｅした後、Ｉ／Ｏ処理イネーブルレジスタ３０４に‘１’をｗｒｉｔｅすることにより該チャネル装置にＩ／Ｏ起動を指示するものとする。
【００３０】
Ｉ／Ｏ処理を行うとき、ＯＳはＤＡ＿ＡＤ５００、ＢＵ＿ＡＤ５０３、及びＤＡ＿ＡＤ０、１内に物理アドレスをセットする。本実施例では上記データバッファアドレス領域内のセグメント数は２、つまりＤＢ＿ＡＤ０とＤＢ＿ＡＤ１が有効であるとし、ＦＬＡＧ５０４内のセグメント数を２にセットし、更に上記データバッファアドレス領域内のＤＢ＿ＡＤ０の指しているところにＳＣＳＩコマンド（２５６バイト）領域５０１をセットする。該ＳＣＳＩコマンド領域は、ＳＣＳＩコマンドの他に、Ｉ／Ｏ処理を行なう相手先ポートを示すターゲットＩＤ、及び該ポート配下に存在するファイバチャネルデバイスを示すＬＵＮ等の情報も含む。本実施例では、相手先ポート ＷＷＰＮ＃３（０ｘ３００）に対するターゲットＩＤを‘０’とし、図９に示すようなターゲットＩＤと相手先ポートのＷＷＰＮ＃の対応を示すテーブルをユーザがシステムを立ち上げる前に設定するものとする。ＷＷＰＮ＃３のＩ／ＯデバイスとＩ／Ｏ処理を行う場合、ＯＳはターゲットＩＤ‘０’を使用して相手先を指定する。なお、ＳＣＳＩコマンド領域２５６バイトに引き続く２５６バイトの領域をＳＣＳＩコマンドに対する応答フレームをストアする応答情報領域とする。また、ＤＢ＿ＡＤ１のアドレスが示すところにｗｒｉｔｅ用のデータバッファが存在する。データバッファを可変長にする場合は、セグメントＤＢ＿ＡＤ内にデータ長を示す情報を含めれば良いが、本実施例では説明簡略化のためデータバッファのサイズを４Ｋバイト固定長とし、データ長をセットしない。ＯＳはＦＬＡＧ５０４内のデータバッファアドレス領域の有効性を示すビットをセットし、Ｉ／Ｏ処理を起動する。以下に、ＯＳ１からのＩ／Ｏ処理に対する動作概要を述べる。
【００３１】
上記ＯＳ１がＩ／Ｏ処理のため、ターゲットＩＤ‘０’、ＬＵＮ＝‘１’に対する上記データ情報をセットし、該チャネル装置のチャネル制御レジスタ内のＩ／Ｏ処理ベースアドレスレジスタにＯＳ規定のｗｒｉｔｅ関数を使用してＤＡ＿ＡＤの先頭アドレス設定後、Ｉ／Ｏ処理イネーブルレジスタに‘１’をｗｒｉｔｅする。ここで、上記の通り、該ＯＳ規定のｗｒｉｔｅ関数をＬＰＡＲ制御プログラム１０９がインタセプトし、該ＬＰＡＲ制御プログラム１０９がチャネル制御レジスタ１内のＩ／Ｏ処理ベースアドレスレジスタ、さらにＩ／Ｏ処理イネーブルレジスタにｗｒｉｔｅするように該ＯＳ規定のｗｒｉｔｅ関数を実行する。
【００３２】
該チャネル装置１００はＯＳ１からのＩ／Ｏ処理起動を認識すると、チャネル装置１００内の入出力処理制御手段１０６は、上記チャネル制御レジスタ１内のＩ／Ｏ処理ベースアドレスレジスタにセットされた該データ情報のＤＡ＿ＡＤ５００の先頭アドレスを使用することによって、該データ情報のＤＡ＿ＡＤ５００、ＢＵ＿ＡＤ５０３、ＦＬＡＧ５０４、及びＤＢ＿ＡＤ０、ＤＢ＿ＡＤ１のフェッチ処理を行ない、フェッチしたデータ情報からＳＣＳＩコマンド５０１のフェッチを行う。フェッチ処理の結果、該ＳＣＳＩコマンド５０１のデータがデータ転送用バッファ１内のコマンドバッファにストアされる。入出力処理制御手段１０６は送信元のＩＤとしてＡＬ−ＰＡ ０ｘ０１を使用する。また、ターゲットＩＤ‘０’から転送先のＩＤとしてＡＬ−ＰＡ ０ｘｃｅを使用する。図１０が本実施例におけるＩ／Ｏデバイスのポートに対するターゲットＩＤ、ＷＷＰＮ＃、ＡＬ−ＰＡの対応を示す。入出力処理制御手段１０６は、送信元ＩＤ：ＡＬ−ＰＡ ０ｘ０１と転送先ＩＤ：ＡＬ−ＰＡ ０ｘｃｅを反映させ、ファイバチャネルプロトコルに対応したフレームの生成、及びフレーム送信を実行する。前記ＳＣＳＩコマンドに対するフレーム送信に続いて、ＤＢ＿ＡＤ１が指すところのｗｒｉｔｅ用データをフェッチし、該データをデータ転送用バッファ１のデータバッファにストアし、上記と同様に、フレームを生成し、送信する。相手先のＩ／ＯデバイスはＡＬ−ＰＡ ０ｘｃｅのポートにてフレームを受信し、該フレーム中のＬＵＮにて示されるファイバチャネルデバイスに対してデータのｗｒｉｔｅ処理を実行し、処理終了を示す応答フレームを返す。該チャネル装置１００は、受信バッファ１０８にて該応答フレームを一旦受信する。入出力処理制御手段１０６は該応答フレーム中のデスティネーションＩＤ、ＡＬ−ＰＡ ０ｘ０１をデコードすることにより、該応答フレームをデータ転送用バッファ１のレスポンスバッファにて受信する。入出力処理制御手段１０６は受信した該応答フレームを前記ＳＣＳＩコマンド応答情報領域にストアする。該応答フレームのストアを完了した後、Ｉ／Ｏ処理終了を示すＩ／Ｏ割り込みをＯＳ１に対して上げる。なお、エラー発生時はＦＬＡＧ５０４にエラー情報をセットした後にＩ／Ｏ処理終了のＩ／Ｏ割り込みを上げる。該ＯＳ１は該Ｉ／Ｏ割り込みを認識することによってチャネル装置１００に対して起動したＩ／Ｏ処理の終了処理を行う。以上がリンク初期化からＯＳ１におけるＩ／Ｏ処理終了までの動作概要である。ＯＳ２からＩ／Ｏ起動が発行された場合、入出力処理制御手段１０６はデータ転送用バッファ２を使用し、送受信するフレーム中の送信元のＩＤとしてＡＬ−ＰＡ０ｘ０２を使用してＩ／Ｏ処理を実行する。データ転送用バッファ、及びＩＤをそれぞれ2個所持しているため、一度に２つのＯＳに対するＩ／Ｏ処理が可能であり、また、異なるＯＳであるＯＳ１とＯＳ２から同じＬＵＮのファイバチャネルデバイスに対してＩ／Ｏ処理を実行できる。
【００３３】
なお、チャネル装置の識別子、及び上記データ転送用バッファの数を増やし、上記メモリアクセス情報も上記データ転送用バッファに対応させることによって同時に処理できるＯＳの数の拡張も可能である。
【００３４】
図６は多ポートのチャネル装置６００を搭載したデータ処理システムを示す。ＯＳ１、ＯＳ２をはじめ、ＬＰＡＲ制御プログラム６０９、メモリアクセス制御回路６０５、データ転送用バッファ１、２、入出力処理制御手段６０６の機能、及び動作は図１にて説明したものと基本的に同じである。図１との違いはデータ転送用バッファ１とポート１が対応付けされ、データ転送用バッファ１から送信するフレームはポート１、及びリンク６０７を介して転送され、ポート１にて受信したｒｅａｄデータ、及びＳＣＳＩコマンドに対する応答フレームはデータ転送用バッファ１内のデータバッファ、あるいはレスポンスバッファにてそれぞれ受信する。同様に、データ転送用バッファ２から送信するフレームはポート２、及びリンク６０８を介して転送され、ポート２にて受信したｒｅａｄデータ、及びＳＣＳＩコマンドに対する応答フレームはデータ転送用バッファ２内のデータバッファ、あるいはレスポンスバッファにてそれぞれ受信する。
【００３５】
ＬＰＡＲ番号とチャネル装置の対応付けを行う時、ＬＰＡＲ番号をポート単位に対応付けを行う。例えば、ＬＰＡＲ＃１をポート１に対応させ、ＬＰＡＲ＃２をポート２に対応させるように設定する。該設定情報から、ＬＰＡＲ制御プログラム６０９は、チャネル制御レジスタ１をＬＰＡＲ＃１に割り当て、チャネル制御レジスタ２をＬＰＡＲ＃２に割り当てる。その他の処理は図１で述べたものと同じである。以上より、多ポートのチャネル装置においても複数のＯＳから共用が可能である。
【００３６】
以上、本発明にかかわる実施例を説明してきたが、複数のＯＳから共用できるチャネル装置を提供できる。また、多ポートを備えたチャネル装置においても複数のＯＳからの共用が可能となる。
【図面の簡単な説明】
【００３７】
【図１】本発明の一実施例を適用したデータ処理システムの構成図である。
【図２】データ処理システムの構成例である。
【図３】チャネル装置内のチャネル制御レジスタを示す図である。
【図４】メモリリクエストフォーマットを示す図である。
【図５】本発明の一実施例で用いたＩ／Ｏ処理のためのデータ情報を示す図である。
【図６】本発明の一実施例を適用したデータ処理システムの構成図である。
【図７】チャネル装置番号と該チャネル装置を使用するＬＰＡＲ番号の対応を示すテーブルである。
【図８】チャネル制御レジスタ、データ転送用バッファ番号、ＬＰＡＲ番号、ＡＬ−ＰＡの対応テーブルである。
【図９】ターゲットＩＤと相手先のＷＷＰＮ＃の対応テーブルである。
【図１０】ターゲットＩＤと相手先のＷＷＰＮ＃、ＡＬ−ＰＡの対応を示す図である。
【符号の説明】
【００３８】
１００  チャネル装置
１０１、１０２  データ転送用バッファ
１０３、１０４  データ処理システム上のＬＰＡＲ＃１及びＬＰＡＲ＃２
１０５  メモリアクセス制御回路
１０６  入出力処理制御手段
１０７  フレームの送受信を行うリンク
１０８  受信バッファ
１０９  ＬＰＡＲ制御プログラム
１１０  チャネル制御レジスタ
２００  主記憶（ＭＳ）
２０１  チャネル装置のポート
２０２  ケーブル
２０３  メモリアクセス制御チップ
２０４、２０５  プロセッサ
２０６  チャネル装置
２０７  ハブ（Ｈｕｂ）
２０８  Ｉ／Ｏデバイス
３００  チャネル制御レジスタ
３０１  ＰＣＩコンフィギュレーションレジスタ
３０２  ＷＷＰＮ＃レジスタ
３０３  Ｉ／Ｏ処理ベースアドレスレジスタ
３０４  Ｉ／Ｏ処理イネーブルレジスタ
５００  データ領域を示すアドレスを含むＤＡ＿ＡＤ
５０１  ＳＣＳＩコマンドを含む領域
５０２  ＳＣＳＩコマンドに対する応答フレームストア領域
５０３  データバッファアドレス領域を示すアドレスを含むＢＵ＿ＡＤ
５０４  データバッファアドレス領域の有効性等の情報を含むＦＬＡＧ
５０５  ＳＣＳＩコマンド領域のアドレスＤＢ＿ＡＤ０
５０６  データバッファ領域のアドレスＤＢ＿ＡＤ１
５０７  データバッファ領域
６００  チャネル装置
６０１、６０２  データ転送用バッファ
６０３、６０４  データ処理システム上のＬＰＡＲ＃１及びＬＰＡＲ＃２
６０５  メモリアクセス制御回路
６０６  入出力処理制御手段
６０７、６０８  フレームの送受信を行うリンク
６０９  ＬＰＡＲ制御プログラム
６１０  チャネル制御レジスタ
６１１、６１２  フレームの送受信を行うポート１及びポート２
【図１】
2008262566.tif 000003
【図２】
2008262566.tif 000004
【図３】
2008262566.tif 000005
【図４】
2008262566.tif 000006
【図５】
2008262566.tif 000007
【図６】
2008262566.tif 000008
【図７】
2008262566.tif 000009
【図８】
2008262566.tif 000010
【図９】
2008262566.tif 000011
【図１０】
2008262566.tif 000012