JPH1021203A - I/o装置のアクセス方法およびそのためのマルチプロセッサシステム - Google Patents

I/o装置のアクセス方法およびそのためのマルチプロセッサシステム

Info

Publication number
JPH1021203A
JPH1021203A JP8176863A JP17686396A JPH1021203A JP H1021203 A JPH1021203 A JP H1021203A JP 8176863 A JP8176863 A JP 8176863A JP 17686396 A JP17686396 A JP 17686396A JP H1021203 A JPH1021203 A JP H1021203A
Authority
JP
Japan
Prior art keywords
processing element
command
access
data
designation information
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.)
Pending
Application number
JP8176863A
Other languages
English (en)
Inventor
Toshiaki Tarui
俊明 垂井
Katsuyoshi Kitai
克佳 北井
Frederico Mashel
マシエル・フレデリコ
Tatsuo Higuchi
達雄 樋口
Hideki Murahashi
英樹 村橋
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Hitachi Ltd
Original Assignee
Hitachi Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Hitachi Ltd filed Critical Hitachi Ltd
Priority to JP8176863A priority Critical patent/JPH1021203A/ja
Publication of JPH1021203A publication Critical patent/JPH1021203A/ja
Pending legal-status Critical Current

Links

Abstract

(57)【要約】 (修正有) 【課題】他のPEのOSの介入を経ないでそのPE内の
I/O装置をアクセスする。 【解決手段】アクセス元PEのファイルシステムが、I
/Oコントロールレコードを指定するI/O命令を発行
し、デバイスドライバは、その命令が要求するI/O装
置が他のPEにあるときには、その命令が要求するI/
O動作の実行を要求するコマンドをネットワーク900
を介してアクセス先のPEに送信する。アクセス先のP
Eでは、受信コマンド処理回路101とI/O起動回路
103とが、この要求に応答してこのI/O動作を実行
するためのI/OコントロールレコードをOSの介入を
得ないで作成し、I/Oインタフェース回路120を起
動する。このコマンドの実行後に、送信コマンド処理回
路102はこのコマンドに対する返信コマンドを返送す
る。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明はI/O装置のアクセ
ス方法およびそのためのマルチプロセッサシステムに関
する。
【0002】
【従来の技術】計算機性能の飛躍的向上に関して、多数
台のプロセッシングエレメントを並列動作させる、並列
計算機が有望視されている。以下ではプロセッシングエ
レメントを略してPEと呼ぶ。とくに、独立した主記憶
を持つPEをプロセッサ間ネットワークにより接続した
疎結合並列計算機が、その台数拡張性により、注目され
ている。
【0003】ここで、疎結合の並列計算機においては、
ディスクなどのI/O装置は各PEに分割して配置され
るシェアードナシングアーキテクチャが主流である。し
たがって、ある各PEがI/O装置への入出力アクセス
(以下ではI/Oアクセスと呼ぶ)を行う場合、アクセ
スしようとするI/O装置が他のPEにおかれている場
合がある。したがって、何らかの方法で他のPEにI/
Oを依頼しなければならない。
【0004】I/Oの一般的な動作は以下の通りであ
る。アプリケーションプログラムが、ファイルへのアク
セスを発行すると、アクセス要求は、まずOSの一部で
あるファイルシステムに伝えられる。ファイルシステム
では、ファイルの論理名を物理的なファイルの位置に変
換する。それと同時にファイルシステムは、論理的なフ
ァイルに対するロック操作などのファイルの論理的な整
合性を保持するための処理を行う。ファイルシステムの
処理が行われた後、アクセス要求は、OSの下位の機構
である、デバイスドライバに伝えられる。デバイスドラ
イバは、ファイルの物理的な記憶位置を入力として、実
際に物理的なディスク装置をアクセスするためのプログ
ラムである。ここで、デバイスドライバは、実際の装置
をアクセスするために、物理的なI/O装置の機種に依
存するのに対し、ファイルシステムの部分はI/O装置
の機種に依存しない論理的な処理を行う。
【0005】従来の代表的なI/Oアーキテクチャは、
「IBM:System 370Principle
of Operation」において述べられているチ
ャネル方式がある。I/O装置へのアクセスは、CPU
とは独立したI/O専用のプロセッサであるチャネル
(I/Oインタフェース回路)により行われる。 チャ
ネル方式においては、CPUからチャネルへの命令の伝
達は、物理的なファイルの位置を指定してアクセスが行
わなければならない。従って、チャネル装置はデバイス
ドライバにより起動される。 CPUからチャネルへの
命令の伝達は以下の手順で行われる。プログラムがファ
イルをアクセスすると、ファイルシステムは、ファイル
の物理的な記憶位置(データアドレス等)を求める。そ
の後、デバイスドライバは、主記憶上にチャネルコント
ロールワード(CCW)と呼ばれる構造体を作成し、I
/Oアクセスの種類、データアドレス、データサイズ等
の、チャネルにI/Oアクセスを指示するための命令を
書き込む。その後、デバイスドライバはI/Oアクセス
命令を発行し、チャネルをトリガする。チャネルは、C
CW上のアクセスパラメータを読み出し、その指示に基
づいて、データの入出力を行う。アクセスが終了すると
チャネルはI/Oの終了状態を主記憶上の固定領域に出
力するとともに、CPUに割込を掛け、I/Oの終了を
知らせる。このチャネルによる入出力方式は、CPUの
処理と独立にI/Oアクセスを行うことができるため、
広く用いられている。
【0006】現在のパソコン、ワークステーション等に
おけるI/Oアクセスの多くも、基本的にはチャネルの
方式を踏襲しており、以下の手順で行われる。
【0007】(イ)ファイルシステムが論理的なファイ
ル名より、物理的なファイルの位置を求める。
【0008】(ロ)デバイスドライバが主記憶上にI/
Oを指示するためのコントロールレコード(上記のCC
Wに相当する)を作成する。以下ではこのコントロール
レコードをICR(I/O Control Reco
rd)と呼ぶ。
【0009】(ハ)デバイスドライバがI/Oインタフ
ェース回路(SCSIインタフェース回路等、上記のチ
ャネルに相当する)をトリガする。
【0010】(ニ)I/Oインタフェース回路が主記憶
上のコントロールレコードを読み出し、実際にI/O装
置をアクセスする。
【0011】(ホ)デバイスドライバはI/O終了割り
込みを受け、アクセス結果をファイルシステムを介して
アプリケーションに戻す。
【0012】従来の疎結合の並列計算機において、他の
PEの持つI/O装置に対してアクセスを行なおうとす
る場合、アクセス元のCPUで動作するデバイスドライ
バは、アクセス先のI/Oインタフェース回路に対して
直接指示を与えることはできない。よって、I/O装置
を持つPEに対してI/O装置をアクセスすることをデ
バイスドライバの間の、プロセッサ間通信を用いて依頼
しなければならない。
【0013】したがって、以下の手順でアクセスを行う
必要がある。
【0014】A ファイルシステムの処理 (A1)アクセス元のPEのファイルシステムで、ファ
イルの論理的な名前より、物理的な記憶位置を求めよう
とした結果、ファイルは他のPEの持つディスク上に存
在すると判断される。
【0015】(A2)アクセス元のPEのファイルシス
テムは、I/O装置を持つPEのファイルシステムとプ
ロセッサ間通信を用いて相談を行い、ファイルの物理的
な記憶位置を教えてもらうとともに、ファイルのアクセ
ス権を獲得する。
【0016】(A3)アクセス元のPEのファイルシス
テムは、デバイスドライバに対して、(A2)で得られ
たファイルの位置などの情報を用いて、他のPEの持つ
ファイルをアクセスすることを依頼する。
【0017】(A4)アクセス元のPEのデバイスドラ
イバは、I/O装置を持つPEのデバイスドライバに対
して、プロセッサ間通信を用いて、ファイルの物理的な
記憶位置を指定して、ファイルをアクセスすることを依
頼する。
【0018】B I/O動作の実行 (B1)I/O装置を持つPEのOSは、処理(A4)
のプロセッサ通信を受け取ると、メッセージ受信割込処
理の中で、他のPEのデバイスドライバからI/Oアク
セスを依頼されたことを検出する。そこで、依頼された
I/Oアクセスを処理するために、プロセッサ間通信で
送られてきたファイルの物理的位置などの情報を用い
て、デバイスドライバを起動する。
【0019】(B2) I/O装置を持つPEのデバイ
スドライバは、、主記憶上にI/Oを指示するためのコ
ントロールレコード(ICR)を作成する。
【0020】(B3) I/O装置を持つPEのデバイ
スドライバがI/Oインタフェース回路をトリガする。
【0021】(B4) I/O装置を持つPEのI/O
インタフェース回路が主記憶上のコントロールレコード
を読み出し、実際にI/O装置をアクセスする。
【0022】(B5)I/Oアクセスが終了し、I/O
終了割り込みを受けた、I/O装置を持つPEのデバイ
スドライバは、プロセッサ間通信を用いて、I/Oアク
セス結果を、アクセス元のPEに送る。
【0023】C I/O実行結果の取り込み (C1)アクセス元のプロセッサのデバイスドライバは
(B59)で送られた結果を、ファイルシステムを介し
てて、アプリケーションに戻す。
【0024】以上の手順により、任意のPEが、任意の
I/O装置をアクセスすることが可能になり、データの
位置を意識しない柔軟なプログラミングが実現できる。
但し、同じファイルを何回もアクセスした場合には、フ
ァイルシステム管理のための処理(A1)(A2)は省
くことができ、実際にデータをアクセスするためのデバ
イスドライバ間の処理(A3)〜(C1)のみを行えば
よい。
【0025】
【発明が解決しようとする課題】上記従来技術では、他
のPEへのI/Oアクセスが行われた場合、I/O装置
を持つPEのOSは、上記処理(B1)から(B3)お
よび処理(B5C)という二つの中継処理を実行しなけ
ればならない。このため、このPEが本来実行していた
仕事が滞るという問題点が有る。
【0026】さらに、これらの処理はメッセージの到着
割込、I/Oの終了割込という非同期な割込を契機にO
Sが実行しなければならないため、上記の処理のオーバ
ヘッドの他に、割込によるアプリケーションプログラム
からOSへの空間切替の非常に重いオーバヘッドも発生
する。
【0027】従来の科学技術用の並列計算機において
は、プログラムの挙動は予め予想することができる、定
型的な処理が中心である。したがって、上記の問題に対
しては、I/O装置のデータをあらかじめアクセスを行
うPEに割り振ることにより他のPEの持つI/O装置
へのアクセスをなるべく抑えたり、他のPEのI/O装
置へのアクセスをなるべく大きな単位でまとめて行う等
の工夫を行い、他PEのI/O装置へのアクセス回数を
極力おさえることが可能であった。
【0028】しかし、近年実用化されている、データベ
ースなどのプログラムを並列マシンで実行する場合、I
/O装置へのアクセスはデータベースの内容、データベ
ースへの検索条件により大きく変化するため、予想する
ことはできない。したがって、科学技術計算で行われて
いたような、データの分割、アクセスのブロック化など
の手法で、他PEへのI/Oアクセスを削減することは
不可能である。従って、他のPEの持つI/O装置への
アクセスが頻発してしまうと考えられる。特に、特定の
PEへのI/Oアクセスが集中すると、アクセスされた
PEのCPUがほとんど他PEのI/Oの中継処理のた
めに使われてしまい、プログラムの実行効率が大幅に低
下する。
【0029】従って、本発明の目的は、あるPEが他の
PEの持つI/O装置をアクセスする際に、当該他のP
EのOSの介入を得ないでそのI/O装置をアクセスで
きるマルチプロセッサシステムを提供することである。
【0030】
【課題を解決するための手段】上記目的を達成するため
に、本発明では、アクセス先のPEのOSが行っていた
中継処理を、そのOSの介入を得ないで直接ハードウエ
アで実行させる。
【0031】すなわち、本発明によるI/O装置アクセ
ス方法では、アクセス元のPEのOSが、他のPE内の
I/O装置へのアクセスを要求する前に、アクセス元の
OSからアクセス先のPE内のI/O装置をアクセスす
る許可を、アクセス元のOSが、アクセス先のOSとの
間で上記ネットワークを介したメッセージパッシングに
より取得する。
【0032】このアクセス許可の取得後に、アクセス先
のPE内のI/O装置におけるI/O動作を要求するコ
マンドをアクセスも元のPEからアクセス先のPEに、
これらのPEを結ぶネットワークを介して転送する。ア
クセス先のPEにおいては、上記コマンドに応答して、
そのPE内のI/O装置に上記コマンドにより要求され
たI/O動作の実行をアクセス先のPE内のOSの介入
を得ないで起動する。さらに、より望ましくは、読み出
されたデータ等のアクセス結果を、アクセス先のPEの
OSの介入を得ないで起動する。
【0033】さらに、本発明による他の望ましい態様で
は、アクセス元のPEのOSから発行されたI/O装置
へのアクセス要求が、他のPE内のI/O装置へのアク
セスを要求するとき、アクセス先のPE内のI/O装置
におけるI/O動作を要求するコマンドをアクセスも元
のPEからアクセス先のPEに、これらのPEを結ぶネ
ットワークを介して転送する。アクセス先のPEにおい
ては、上記コマンドに応答して、そのPE内のI/O制
御装置に指示するためのI/O動作指定情報を、そのP
E内のOSを介さないで直接生成し、生成されたI/O
動作指定情報を用いてこのI/O制御装置を起動する。
【0034】さらに、本発明によるマルチプロセッサシ
ステムでは、アクセス元のPEは、そのPE内のOSか
ら発行された、アクセス先のPE内のI/O装置におけ
るI/O動作を要求するアクセス要求に応答して、その
I/O動作の実行を要求する少なくとも一つのコマンド
を生成し、アクセス先のPEにネットワークを介して転
送する回路有し、アクセス先のPEは、アクセス元のP
Eから上記コマンドが転送されたときに、アクセス先の
PE内のI/O装置に上記コマンドが要求するI/O動
作を実行させるためのI/O動作指定情報を、このコマ
ンドに基づいて、かつ、このアクセス先のPEのOSの
介入を得ないで生成し、生成されたI/O動作指定情報
を用いて上記I/O制御装置を起動する回路を有する。
【0035】
【発明の実施の形態】以下、本発明に係るマルチプロセ
ッサシステムを図面に示した実施の形態を参照してさら
に詳細に説明する。
【0036】<発明の実施の形態> (1)装置の概要 図1aは本発明に係るプロセッサ間通信方法を適用する
ためのマルチプロセッサシステムの概略ブロック図であ
る。本システムは、複数のプロセッシングエレメント
(以下、PEと呼ぶことがある)、例えば100、20
0(これらはPE0、PE15と呼ぶことがある)が、
ネットワーク900により接続され、各PEは同じ構造
を有する。すなわち、各PEは、CPU110及び主記
憶130、I/Oインタフェース回路120、I/O装
置121を持つ。各PE内の主記憶130は、このシス
テムに共通の主記憶の一部を構成し、そのPEで実行さ
れるプログラムおよびデータを保持するもので、このシ
ステムはいわゆる分散メモリ型の並列計算機システムで
ある。I/O装置121は、本実施の形態ではディスク
記憶装置などの記憶装置であるが他の入出力装置でもよ
い。なお、図にはI/O装置は一つしか図示していない
が、I/Oインタフェース回路120には複数のI/O
装置が接続されていてもよい。I/Oインタフェース回
路120は、CPUでのI/O命令が実行されたとき
に、I/O装置121へのアクセスコマンドを発行する
回路で、ここでは、バス121aは、SCSIバスであ
り、I/Oインタフェース回路120はSCSIインタ
フェース回路上に形成されたディスク制御装置である。
102は、送信コマンド処理回路、101は受信コマン
ド処理回路、103は受信したコマンドに応答してI/
O装置121への起動を要求する回路であり、いずれも
本実施の形態に特有の回路であり、各PEが他のPE内
のI/O装置をアクセスするときに、当該他のPE内の
CPUを介さないで直接I/Oインタフェース回路12
0を介してI/O装置121をアクセスするのに使用さ
れる。
【0037】(2)入出力動作の概要 この並列計算機システムの複数のPE内のI/O装置1
21は、データベースを分散して保持し、各PE内の主
記憶130は、このデータベースを利用するためのアプ
リケーションプログラムと、オペレーティングシステム
およびそれらが使用するデータを保持する。オペレーテ
ィングシステムには、アプリケーションプログラムから
の入出力装置へのアクセス要求を処理するファイルシス
テムと、そのファイルシステムからの入出力要求を処理
するデバイスドライバとが含まれる。
【0038】本実施の態様における入出力動作の概要は
以下の通りである。
【0039】(a)アクセス元のPE内のデバイスドラ
イバの起動 アクセス元のPE内のファイルシステムは、アプリケー
ションプログラムから発行された入出力要求に応答し
て、I/O命令(ファイルシステムレベルのI/O命
令)を発行して、アクセス元PE内のデバイスドライバ
を起動する。
【0040】(b)アクセス元PE内のI/O装置のア
クセス アクセス元OS内のデバイスドライバは、起動される
と、上記I/O命令が指定するファイルがアクセス元の
I/O装置121内にあるか否かを判別し、そのファイ
ルがアクセス元のI/O装置121内にあるときには、
デバイスドライバでは、このI/O命令が指定する、そ
のファイルの物理的な記憶位置を用いて、I/Oインタ
フェース回路120を起動するI/O命令(デバイスド
ライバレベルのI/O命令)を発行し、この回路120
がI/O装置121内のこの記憶位置をアクセスする。
【0041】(c)他のPE内のI/O装置のアクセス 上記ファイルシステムレベルのI/O命令が指定するフ
ァイルがアクセス元のI/O装置121内にないときに
は、アクセス元のPEのデバイスドライバは、以下のよ
うにして、他のアクセス先のPE内のI/O装置を、ア
クセス先のPE内のOSを介さないでアクセスするため
のネットワーク起動命令を発行する。以下では、以上の
処理の詳細を述べる。
【0042】(3)アクセス元のPEのファイルシステ
ムの動作の詳細 (a1)アクセス元PE内のファイルシステムは、アプ
リケーションプログラムから発行された入出力要求に応
答して、主記憶130上に、読み出しデータあるいは書
き込みデータを格納するためのバッファ領域を確保す
る。
【0043】(a2)アプリケーションプログラムが指
定した、ファイルの論理的な名前より、そのファイルの
物理的な記憶位置を求める。
【0044】(a3)その物理的な記憶位置から、その
ファイルがアクセス元のI/O装置121内にあるか否
かを判別する。そのファイルがアクセス元のI/O装置
121内にあるときには、さらに、ファイルのロック処
理などのファイル管理を行う。
【0045】(a4)そのファイルがアクセス元のI/
O装置121内にないときには、アクセス元のファイル
システムは、そのファイルを保持するI/O装置を有す
る他のPEのファイルシステムとの間で、プロセッサ間
通信を用いて交信し、そのファイルの物理的な位置を教
えて貰うとともに、そのファイルのアクセス権を当該他
のPE内のファイルシステムより確保する。
【0046】アクセス元のファイルシステムとアクセス
先のファイルシステムの間のプロセッサ間通信は、アク
セス元のデバイスドライバとアクセス先のデバイスドラ
イバとを介して、メッセージパッシングにより実行され
る。このとき、アクセス元PEおよびアクセス先PE内
の送信コマンド処理回路コマンド102と受信コマンド
処理回路101、I/O起動回路103が使用される。
この時の装置動作の詳細は後に説明する。
【0047】(a5)そのファイルをアクセスするため
のI/O命令を発行し、アクセス元OS内のデバイスド
ライバを起動する。
【0048】すなわち、アクセス元のPE内のファイル
システムは、読み出しアクセスあるいは書き込みアクセ
スの動作を指定するI/O動作指定情報(以下では、I
/Oコントロールレコード(ICR)と呼ぶ)を作成
し、主記憶130上のあらかじめ定められたレコード格
納領域に格納する。その後、このレコード格納領域のア
ドレスを指定するI/O命令を発行し、アクセス元のO
S内のデバイスドライバを起動する。
【0049】読み出しアクセスのためのI/Oコントロ
ールレコードは、図10に示されるように、フィールド
4001にコマンド、フィールド4002内に先に確保
された読み出し用のバッファのアドレス、フィールド4
003に、読み出すべきデータの長さ、フィールド40
04に、アクセスすべきI/O装置の番号及びその装置
内のアクセスすべきデータの記憶位置を含む。フィール
ド4001内のコマンドは、読み出すべきファイルが自
PE内にあるか否かにより、読み出しコマンドRあるい
はリモート読み出しコマンドRRとなる。
【0050】書き込みアクセスのためのI/Oコントロ
ールレコードは、図11に示されるように、フィールド
4001にコマンドを含み、フィールド4002は、先
に確保された書き込み用のバッファ内に書き込まれた書
き込みデータのアドレスを保持する。他のフィールド
は、読み出しアクセスのためのI/Oコントロールレコ
ードと同じ内容を含む。フィールド4001内のコマン
ドは、アクセスすべきファイルが自PE内にあるか否か
により、書き込みコマンドWあるいはリモート書き込み
コマンドRWとなる。
【0051】読み出しアクセスのためのI/Oコントロ
ールレコード(図10)および書き込みアクセスのため
のI/Oコントロールレコード(図11)のいずれの場
合にも、フィールド4004に保持されたI/O装置番
号は、全てのPE内の複数のI/O装置に対してユニー
クに定められた番号であり、アクセス元PEのデバイス
ドライバは、このI/O装置番号から、その番号のI/
O装置が属するPEを判別する。
【0052】(4)アクセス元PE内のI/O装置のア
クセスの詳細 アクセスすべきファイルがアクセス元のPE内にあると
きには、アクセス元PEは上記処理(b)を実行する。
ここでは、以下の処理が実行される。
【0053】(b1)アクセス元PE内のデバイスドラ
イバは、上記I/O命令に応答して、この命令が指定す
るI/OコントロールレコードのアドレスをCPUIC
Rアドレスレジスタ125に書き込む命令を発行した
後、I/Oインタフェース回路120を起動するデバイ
スレベルのI/O命令を発行する。CPUは、上記書き
込み命令に応答して、このアドレスをレジスタ125に
バス115を介して書き込み、さらに、上記デバイスレ
ベルのI/O命令に応答して線110a、ORゲート1
22を介してI/Oインタフェース回路120を起動す
る。線110a上の起動信号は、さらに直接I/Oイン
タフェース回路120に供給され、I/Oインタフェー
ス回路120の起動元を識別するのに使用される。
【0054】(b2)I/Oインタフェース回路120
は、線110a上の起動信号により起動されると、信号
123sを通じてセレクタ123を切り換えて、CPU
ICRアドレスレジスタ125からI/Oコントロール
レコードのアドレスを読み出し、主記憶130からバス
115を介してI/Oコントロールレコードをフェッチ
する。その後、このレコードが読み出しコマンドRを含
むときには、I/O装置121からデータを読み出し、
このレコードにより指定された、主記憶内130内の読
み出しバッファに書き込む。さらに、I/Oの終了状態
信号120aを終了書込回路126に出力する。このレ
コードが書き込みコマンドWを含むときには、主記憶内
のバッファ領域から書き込みデータを読み出し、このレ
コードにより指定された、I/O装置121内の記憶位
置に書き込む。さらに、I/Oの終了状態信号120a
を終了書込回路126に出力する。
【0055】(b3)終了書込回路126は、マイクロ
コンピュータにより構成され、図16のフローを有する
プログラムを実行する。すなわち、実行したコマンド
が、自PE内のI/O装置への読み出しコマンドRある
いは書き込みコマンドWのいずれかであるか否かを判定
する(ステップ5401)する。今の場合には、実行し
たコマンドは読み出しコマンドRまたは書き込みコマン
ドWと仮定しているので、主記憶130上の、I/O終
了状態を書き込むための固定のI/O終了状態領域に終
了状態を書き込み(ステップ5402)、その後線12
7sを通じてマルチプレクサ127をCPU側に切り換
え、完了信号126aをマルチプレクサ127、線12
7a、ORゲート111、線111aを通じてCPUに
I/O終了割込として送出する(ステップ5403)。
【0056】(b4)この後は従来と同様に、ファイル
システムがこの割り込みに応答して、読み出されたデー
タを要求元のアプリケーションプログラムに引き渡す。
【0057】(5)他PE内のI/O装置へのアクセス
の詳細 アクセスすべきファイルがアクセス元のPE以外の他の
PE内にあるときには、上記処理(c)は以下のように
して実行される。
【0058】(c1)ネットワーク起動命令の発行 アクセス元のPE内のデバイスドライバは、アクセス元
PE内のファイルシステムが発行した上記I/O命令が
指定するI/O動作の実行を要求するために、アクセス
先PEに以下のようにして一組のネットワークコマンド
を送信することを要求する。すなわち、各ネットワーク
コマンドを指定するトランスファーコントロールワード
(以下、TCWとよぶ)を主記憶130上に作成した後
に、このTCWをCPUTCWアドレスレジスタ193
に書き込む命令を発行する。その後、ネットワーク起動
命令を発行し、そのTCWが指定するコマンドの送信を
要求する。この動作を異なるネットワークコマンドに関
して順次行う。
【0059】(c2)ネットワークコマンドの送信 アクセス元PE内のCPUは、各TCWに対する書き込
み命令を実行すると、そのTCWのアドレスをCPUT
CWアドレスレジスタ193(図1C)にバス115を
介して書き込み、その後にネットワーク起動命令を実行
すると、送信起動信号を、線110b、ORゲート12
7bを通じて送信コマンド処理回路102を起動する。
すなわち、リモートコマンド組立送信回路190は、信
号192sを通じてセレクタ192を切り換え、CPU
TCWアドレスレジスタ193からTCWアドレスを読
み出し、このアドレスを使用して主記憶130からTC
Wを読み出し、そのTCWに従い、送信すべきコマンド
パケットを作成し、ネットワーク900に送出する。こ
うして、一つのネットワークのコマンドの送信を終える
と、同じ動作を他のTCWに関して行う。
【0060】(c3)ネットワークコマンドの処理 アクセス先のPEでは、受信コマンド処理回路101
と、I/Oアクセス起動要求回路103がネットワーク
900から転送された一組のネットワークコマンドを、
アクセス先のPEのOSを介さないで直接処理し、アク
セス先のPE内のI/Oインタフェース回路120を起
動する。この一組のネットワークコマンドが、データの
書き込みに対するものであるときには、これらの一組の
ネットワークコマンドの一つは、書き込みデータを含
み、I/Oインタフェース回路120はこの一つのネッ
トワークコマンドに含まれた書き込みデータをI/O装
置121に書き込む。また、この一組のネットワークコ
マンドが、データの読み出しに対するものであるときに
は、I/Oインタフェース回路120はこの一組のネッ
トワークコマンドにより要求されるデータをI/O装置
121から読み出す。読み出したデータを含むネットワ
ークコマンドをネットワーク900を介してアクセス元
PEに転送する。
【0061】(c4)返信用コマンドの送信 アクセス先のPEでの上記コマンドの実行結果をアクセ
ス元のPEに通知するコマンドをパケットの形で返送す
る。
【0062】(c5)返信用コマンドの処理 アクセス元のPEでは返送されたコマンドを実行する。
【0063】(5A)他のPE内のI/O装置へのデー
タの書き込み動作の詳細 アクセス元のファイルシステムが発行したI/O命令が
データの書き込み命令である時には、上記処理(c)は
以下のように実行される。この場合には、アクセス元の
デバイスドライバは、データ書き込みコマンドWDおよ
びI/O装置書き込みコマンドIOWを送ることを要求
する。
【0064】(c1A1)データ書き込みコマンドWD
用TCWの作成 先ず、データ書き込みコマンドWDを送信するためのT
CWを主記憶130上に作成する。このTCWは、図4
に示すフォーマットを有し、宛先フィールド2001は
アクセスすべきI/O装置を持つPEの番号を示す。フ
ィールド2002は、データ書き込みコマンドWDを含
み、データアドレス2004は、主記憶130上の書込
データの先頭アドレスを指し、フィールド200522
05は、そのデータのデータ長を指す。
【0065】(c2A1)データ書き込みコマンドWD
用パケットの送信 リモートコマンド組立送信回路190は、このTCWが
作成された後にデバイスドライバから発行されたネット
ワーク起動命令に応答して、このTCWのアドレスを先
に述べた方法で読み出し、データ書込コマンドWD用の
パケット(図5)を作成し、ネットワーク900を介し
て宛先フィールド3001のPEに送信する。ここで、
フィールド3002は、送り元PEの番号を含み、この
番号はレジスタ191から与えられる。フィールド30
03はコマンドWDを含み、む。ここで、3001〜3
006をパケットヘッダと呼ぶ。フィールド3007か
ら3008は転送すべき書き込みデータを含む。このデ
ータは、リモートコマンド組立送信回路190がTCW
に従い主記憶130から読み出す。その他のフィールド
は図4のものと同様である。
【0066】(c3A1)受信データの主記憶への格納 アクセス先PE内の受信コマンド処理回路101では、
リモートコマンドパケット受信分解回路170(図1
b)がこのデータ書き込みコマンドWD用のパケットを
分解し、データ書き込みコマンドWDを線170dにお
よびパケットのヘッダ情報を線170hに、書き込みデ
ータを線170gにそれぞれ出力する。受信コマンド処
理回路101では、バッファアドレスポインタ185
は、受信した書き込みデータを格納するための、主記憶
130上にあらかじめ定められたバッファ領域内の空き
領域の先頭アドレスを保持する。このアドレスポインタ
の内容は、リモートデータ書き込み回路180および後
に説明するICR作成回路140により更新されるよう
になっている。なお、このバッファ領域は以下の述べる
読み出しデータその他の、リモートからのI/Oアクセ
ス関連するデータを主記憶に保持するのにも使用され
る。なお、バッファ領域は、PE間の通信のためにあら
かじめ主記憶上に確保されるバッファ領域とは別のバッ
ファ領域を使用することが望ましい。
【0067】リモートデータ書込回路180はマイクロ
コンピュータにより構成され、リモートコマンドパケッ
ト受信分解回路170から受信したコマンドが入力され
るごとに、図12に示すフローを有するプログラムを実
行する。すなわち、受信したコマンドがデータ読み出し
コマンドRDか否かを判定する(ステップ5001)。
今の場合、受信したコマンドはデータ書き込みコマンド
WDであるため、バッファアドレスポインタ185内の
ポインタを線185aを介して読み出し、主記憶130
内にこのアドレスから始まるバッファ領域をアロケート
した後(ステップ5004)、受信した書き込みデータ
(170g)をこのバッファに書き込む(ステップ50
05)。その後、線181sを通じてマルチプレクサ1
81を切り換え、ステップ5004でアロケートしたバ
ッファのアドレスを線180aを介してWDデータアド
レスレジスタ182に書込む(ステップ5007)。さ
らに、線185aを介して、バッファアドレスポインタ
185を受信したデータの長さだけ更新する。以上の処
理により、データ書き込みコマンドWD用のパケットの
送信及び処理が終了する。
【0068】(c1A2)I/O装置書き込みコマンド
IOW用TCWの作成 アクセス元のデバイスドライバは、次に、I/O装置書
き込みコマンドIOWを送信するためのTCWを主記憶
130上に作成する。このTCWは、図6に示すフォー
マットを有し、フィールド2002は、コマンドIOW
を含み、フィールド2004は、上記I/O命令が措定
した前記のI/OコントロールレコードICRのアドレ
スを含み、フィールド2005はこのレコードの長さを
含む。アクセス元のデバイスドライバは、このTCWに
対する前述の書き込み命令とネットワーク起動命令を発
行する。
【0069】(c2A2)I/O装置書き込みコマンド
IOW用パケットの送信 アクセス元のCPUは、この書き込み命令とネットワー
ク起動命令を前述した方法で実行して、このTCWのア
ドレスをCPUTCWアドレスレジスタ193に書き込
み、リモートコマンド組立送信回路190をトリガす
る。リモートコマンド組立送信回路190は、データ書
き込みコマンドの場合と同様にして、図7に示すフォー
マットの、I/O装置書き込みコマンドIOW用のパケ
ットを作成し、ネットワーク900に送信する。このパ
ケットのフィールド3007から3008は、上記TC
Wが指定したI/OコントロールレコードICRを含
む。
【0070】(c3A2)I/O装置へのアクセスの実
行 アクセス先PE内のリモートコマンドパケット受信分解
回路170は、このパケットを分解し、IOWコマンド
解読信号を線170bに、パケットのヘッダ情報を線1
70hに、I/OコントロールレコードICRを線17
0gに出力する。
【0071】ICR作成回路140は、マイクロコンピ
ュータにより構成され、リモートコマンドパケット受信
分解回路170からI/O装置書き込みコマンドIOW
あるいは後述するI/O装置読み出しコマンドIORの
解読信号が線170bあるいは170cから入力される
ごとに、図14に示すフローを有するプログラムを実行
し、I/Oインタフェース回路120に与えるべき新た
なI/OコントロールレコードICRを作成し、このI
/Oインタフェース回路120を起動する。この新たな
I/OコントロールレコードICRは、リモートコマン
ドパケット受信分解回路170から線170gを介して
与えられる受信したI/OコントロールレコードICR
を使用して作成され、受信したI/Oコントロールレコ
ードICRがデータ読み出し用(図11)かあるいはデ
ータ書き込み用(図12)かにより、図11あるいは図
12のフォーマットを有する。今の例では、図11のフ
ォーマットのI/OコントロールレコードICRを作成
する。
【0072】すなわち、まず、バッファアドレスポイン
タ185より、作成されるI/Oコントロールレコード
ICRを格納するための領域をアロケートした後(ステ
ップ5201)、受信したコマンドがI/O装置書き込
みコマンドIOWか否かを判定(ステップ5202)す
る。今の場合には、受信したコマンドがI/O装置書き
込みコマンドIOWであるので、ステップ5203にお
いて以下のようにしてI/OコントロールレコードIC
Rを作成する。まず、このレコードのフィールド400
1には、リモートデータ書き込みコマンドRWを格納
し、書込バッファアドレスフィールド4002には、先
に送信されたデータ書き込みコマンドWDを受信したと
きに、WDデータアドレスレジスタ182に記憶された
アドレスを使用する。このアドレスは、受信した書込デ
ータが書き込まれた主記憶内のバッファ領域のアドレス
である。従って、受信したパケット(図7)内のフィー
ルド3007から3008に含まれていたI/Oコント
ロールレコードICR(図11)内の書き込みアドレス
バッファ4002は使用されないことが分かる。さら
に、ステップ5203において作成されるI/Oコント
ロールレコードICRのフィールド4003、4004
には、受信したI/Oコントロールレコード内のデータ
長およびI/O装置番号、アクセスデータの物理的な記
憶位置をそのまま使用する。この様に、作成されたI/
Oコントロールレコードは、アクセス先のPE内のファ
イルシステムがデータ書き込みのためのI/O命令を発
行する前に生成するI/Oコントロールレコードと同じ
データ構造を有する。作成された新たなI/Oコントロ
ールレコードを主記憶装置130に格納し、リモートI
CRアドレスレジスタ124(図1A)に線140bを
介してその格納アドレスをセットした後(ステップ52
04)、完了信号140aを出力し(ステップ520
5)、ORゲート122を介してI/Oインタフェース
回路120を起動する。完了信号140aは、さらに直
接I/Oインタフェース回路120に供給され、I/O
インタフェース回路120の起動元を識別するのに使用
される。
【0073】I/Oインタフェース回路120は、完了
信号140aにより起動されると、信号123sを通じ
てセレクタ123を切り換え、リモートICRアドレス
レジスタ124に保持されたアドレスを使用した、作成
されたI/OコントロールレコードICRを主記憶13
0から読み出す。その読み出されたレコードにより指定
された書込データバッファアドレスを使用して、先に受
信した書き込みデータを主記憶130から読み出して、
I/O装置121へ書き込む。I/O装置121へのア
クセスが終了すると、I/O終了状態信号120aを出
力する。
【0074】(c4A)ステータスコマンドストアコマ
ンド用パケットの返送 返信用TCW作成回路150は、マイクロコンピュータ
により構成され、先にリモートコマンドパケット受信分
解回路170により線170bあるいは170cにI/
O装置書き込みコマンドIOWの解読信号あるいはI/
O装置読み出しコマンドIORの解読信号が出力された
ときに、それらのコマンドの実行と並行して、図15に
示すフローを有するプログラムを実行し、それらのコマ
ンドの実行後に送信されるべき返信用パケットの作成に
使用される返信用TCWを作成する。すなわち、図15
に示すフローにおいて、先ず、バッファアドレスポイン
タ185を用いて返送用TCWを格納するための領域を
アロケートした後(ステップ5301)、受信したコマ
ンドがI/O装置書き込みコマンドIOWか否かを判別
する(ステップ5302)。今の場合には、受信したコ
マンドがI/O装置書き込みコマンドIOWであるの
で、図8で示すステータスコマンドストアコマンドST
を送付するためのTCWを作成する(ステップ530
3)。すなわち、TCWの宛先領域2001には、信号
170hを通じて送られてきたI/O装置書き込みコマ
ンドIOWの送り元PE番号を格納し、フィールド20
02には、このアクセス先PEの番号を格納し、フィー
ルド2003には、ステータスコマンドストアコマンド
STを格納し、フィールド2005にはデータ長として
値0を格納する。その後、この作成したTCWを主記憶
130に格納し、その格納アドレスを返信用TCWレジ
スタ194にセットする(ステップ5304)。
【0075】終了書込回路126は、マイクロコンピュ
ータにより構成されI/O装置121へのアクセスが終
了したことに伴いI/Oインタフェース回路120がI
/O終了状態信号120aを出力したときに起動され、
図16に示されたフローを有するプログラムを実行す
る。すなわち、ステップ5401において、今回実行さ
れたコマンドが、読み出しコマンドあるいは書き込みコ
マンドWではなく、リモート書き込みコマンドであると
判断すると、信号126bを通じて、実行されたコマン
ドが正常に終了したか否かを表す終了状態を終了状態レ
ジスタ195に書き込む(ステップ5404)。さら
に、信号127sを通じてマルチプレクサ127を送信
コマンド処理回路102側に切り換えると同時に完了信
号126aを出力し、線127b、ORゲート196、
線196aを通じて送信コマンド処理回路102内のリ
モートコマンド組立送信回路190をトリガする(ステ
ップ5405)。線127a上の起動信号は、また、起
動元を識別するための信号として直接リモートコマンド
組立送信回路190に供給される。
【0076】リモートコマンド組立送信回路190は、
線127b上の起動信号により起動されると、信号19
2sを通じてセレクタ192を切り換え、返信用TCW
アドレスレジスタ194内のアドレスを読み出し、この
アドレスを使用して主記憶130から、先に作成された
返信用TCWを読み出す。さらに、終了状態レジスタ1
95から終了状態を読み出し、このTCWと終了状態と
から、返送すべきステータスコマンドストアコマンドS
T用のパケット(図9)を完成し、アクセス元のPEに
送出する。
【0077】(c5A)ステータスコマンドストアコマ
ンドの実行 アクセス元のPEでは、リモートコマンドパケット受信
分解回路170により、このコマンドST用のパケット
を分解し、STコマンド解読信号を線170fに、パケ
ットのヘッダ情報を線170hに出力する。
【0078】状態書込回路160は、マイクロコンピュ
ータにより構成され、ステータスコマンドストアコマン
ドSTの解読信号あるいは後に述べるリードコマンドR
Dの解読信号が線170fあるいは線170eから供給
される度に、図13に示すフローを有するプログラムを
実行する。すなわち、線170fに出力された、パケッ
トのフィールド3006内の終了状態を主記憶130上
のI/O終了状態領域に書き込み(ステップ510
1)、受信したコマンドがステータスコマンドストアコ
マンドSTか否かを判定し(ステップ5102)、今の
場合のように受信したコマンドがステータスコマンドス
トアコマンドSTの場合、完了信号160aを出力し、
ORゲート111a経由で、CPUにI/O終了割込を
かける(ステップ5103)。その後は、この割り込み
に応答して、アクセス元のファイルシステムが、従来と
同様に、上記I/O終了状態領域に書き込まれた終了状
態を読み出し、先に発行したI/O命令の実行が完了し
たか否かを判別する。
【0079】以上の処理により、アクセス元のPEは、
リモートPEの持つI/O装置へ、そのPEのOSの介
入を得ないで、直接データを書き込むことができる。
【0080】(5B)他のPE内のI/O装置からのデ
ータの読み出し動作の詳細 次に、他PEの持つI/O装置への読出アクセスのとき
に実行される上記処理(c)を、上記書き込みアクセス
時にとの相違点を中心に説明する。
【0081】(c1B)I/O装置読み出しコマンドI
OR用TCWの作成 この読み出し動作のために、アクセス元のPE内のファ
イルシステムが上記処理(a)で作成するI/Oコント
ロールレコードは、図10に示すフォーマットを有し、
フィールド4001内にリモート読み出しコマンドRR
を含む。アクセス元のPE内のデバイスドライバは、作
成上記処理(c1)において、このI/Oコントロール
レコードを使用して、図6に示すI/O装置読み出しコ
マンドIOR用のTCWを作成する。このTCWは、I
/O装置書き込みコマンドIOW用のTCWと同じフォ
ーマットであり、そのTCWと同様に作成される。
【0082】(c2B)I/O装置読み出しコマンドI
OR用パケットの送信 その後、アクセス元のCPUはネットワーク900にこ
のコマンド用のパケットを送出する。このパケットは、
図7に示すように、I/O装置書き込みコマンドIOW
用のパケットと同じフォーマットを有し、パケットの送
出手順もそのパケットの場合と全く同じである。
【0083】(c3B)I/O装置読み出しコマンドI
ORの実行 アクセス先PEでは、リモートコマンドパケット受信分
解回路170により、このパケットを分解し、I/O装
置読み出しコマンドIORの解読信号を線170cに、
パケットのヘッダ情報を線170hに、I/Oコントロ
ールレコードICRを線170gを出力する。ICR作
成回路140は、図14に示すフローに基づき、送付さ
れたI/OコントロールレコードICRを使用してI/
Oインタフェース回路120を起動する。
【0084】すなわち、まず、バッファアドレスポイン
タ185より、ICRを受信するための領域をアロケー
トした後(ステップ5201)、受信したコマンドがI
/O装置書き込みコマンドIOWでないと判定する(ス
テップ5202)と、バッファアドレスポインタ185
より、I/OコントロールレコードICRのデータ長フ
ィールド(図10、4003)の値の大きさのバッファ
をアロケートする(ステップ5206)。このバッファ
は、I/O装置121から読み出されたデータを一時的
に格納するために用いられる。その後、このバッファの
アドレスを示すRDアドレス信号を線140cを介して
返信用TCW作成回路150に出力する(ステップ52
07)。このRDアドレス信号は、後で説明する返信用
TCWを作成するために用いられる。さらに、ステップ
5208において、受信したコマンドを実行するため
に、図10に示すフォーマットを有する、リモート読み
出しコマンドRR用の新たなI/Oコントロールレコー
ドICRを作成する。すなわち、上記バッファのアドレ
スを、この新たなレコードの読出バッファアドレスフィ
ールド4002として使用し、送付されたI/Oコント
ロールレコードICRのデータ長(4003)、I/O
装置番号及びアクセスデータの物理的な記憶位置(40
04)も使用する(ステップ5208)。この新たなI
/OコントロールレコードICRは、アクセス先のPE
内のファイルシステムがデータ読み出しのためのI/O
命令を発行する前に作成するものと同じ構造を有する。
その後リモートICRアドレスレジスタ124に作成し
たレコードのアドレスをセットした後(ステップ520
4)、完了信号140aを出力し(ステップ520
5)、I/Oインタフェース回路120を起動する。
【0085】I/Oインタフェース回路120は、I/
O装置書き込みコマンドIOWの場合と同様にして、I
/O装置への読出アクセスを行い、I/O装置から読み
出されたデータを、主記憶130に保持された、先に作
成されたI/OコントロールワードICR内の読出バッ
ファアドレスフィールド4002を使用して主記憶13
0上のバッファ領域に書き込む。その後の動作はI/O
装置書き込みコマンドIOWの場合と同様である。
【0086】(c4B)リードコマンド用パケットの返
送 返信用TCW作成回路150では、図15に示すフロー
に基づいて、先ず、バッファアドレスポインタ185を
用いて返送用TCWを格納するための領域をアロケート
した後(ステップ5301)、実行されたコマンドが、
I/O装置書き込みコマンドIOWでないことを判定す
る(ステップ5302)と、図2で示すデータ読み出し
コマンドRDを送付するためのTCWを作成する(ステ
ップ5305)。すなわち、リモート書込アドレス20
03には、このコマンドにより送られてきた後に、信号
170gを通じてリモートコマンド受信分解回路170
より伝達された、受信したI/Oコントロールレコード
(図10)内の読出バッファアドレス4002が含まれ
る。このアドレスは、アクセス元PEにおいて、I/O
装置から読み出されたデータを格納するための主記憶内
アドレスである。さらにデータアドレス2004は、R
Dアドレス信号140cで送られてきたI/O装置12
1から先に読み出されたデータを格納したバッファのア
ドレスが格納される。その他のフィールドは、実行され
たコマンドが、I/O装置書き込みコマンドIOWの場
合に作成されるTCW(図4)と同じである。その後、
返信用TCWレジスタ194に作成したTCWのアドレ
スをセットする(ステップ5304)。
【0087】リモートコマンド組立送信回路190は、
I/O装置書き込みコマンドIOWの場合と同様にし
て、I/Oアクセスの終了により送信が起動されると、
I/O装置書き込みコマンドIOWの場合と同様にし
て、データ読み出しコマンドRD用のパケット(図3)
を作成し、アクセス元のPEに送出する。但し、I/O
装置書き込みコマンドIOWの場合と異なり、このパケ
ットには、I/O装置121から主記憶130に読み出
されたデータが含められる。
【0088】(c5B)データ読み出しストアコマンド
の実行 アクセス元のPEでは、リモートコマンドパケット受信
分解回路170により、このパケットを分解し、データ
読み出しコマンドRDの解読信号を線170eに出力
し、パケット内の読み出しデータを線170gに出力す
る。パケットのヘッダ情報を線170hに出力する。R
D信号を受け取った状態書込回路160では、図13に
示すフローに基づき、主記憶130上のI/O終了状態
領域にパケットの状態領域3006の値を書き込む(ス
テップ5101)。さらに、受信したコマンドがステー
タスコマンドストアコマンドSTでないことを判定し
(ステップ5102)、処理を終了する。
【0089】リモートデータ書込回路180では、RD
コマンド解読信号に応答して、図12に示すフローに基
づき、受信したコマンドがデータ読み出しコマンドRD
であることを判定し(ステップ5001)、受信したパ
ケットのリモート書込アドレスフィールド3004の示
す主記憶130上の領域に、受信したパケットのデータ
フィールド内の読み出しデータを書き込んだ後(ステッ
プ5002)、完了信号180bを出力し、信号111
a経由でCPUにI/O終了割込をかける。その後は、
この割り込みに応答して、アクセス元のファイルシステ
ムが、従来と同様に、上記I/O終了状態領域に書き込
まれた終了状態を読み出し、先に発行したI/O命令の
実行が完了したか否かを判別する。完了した場合には、
読み出されたデータを要求もとのアプリケーションプロ
グラムに引き渡す。
【0090】以上の処理により、アクセス元のPEのフ
ァイルシステムは、リモートPEの持つI/O装置か
ら、そのPEのOSの介入を得ないで自PEのバッファ
領域に直接データを読み出すことができる。
【0091】(6)メッセージパッシング 上記処理(a)で、プロセッサ間通信に使用される、メ
ッセージパッシング用のコマンドMPとその処理につい
て説明する。先ず、アクセス元のファイルシステムは、
主記憶130上に他のPEに転送したいデータを主記憶
130上に作成した後に、コマンドMPのためのTCW
(図4)を作成した後、TCWのアドレスをCPUTC
Wアドレスレジスタ193に書き込む命令を発行する。
ここで、データアドレス2004は転送するデータの先
頭アドレスである。さらに、ネットワーク起動命令を発
行する。CPUは上記書き込み命令を実行してレジスタ
193にTCWのアドレスを書き込み、ネットワーク起
動命令を実行したときに、送信起動信号を線110b、
ORゲート196、線196aを通じて送信コマンド処
理回路102内のを通じリモートコマンド組立送信回路
190をトリガする。線110b上の起動信号は、ま
た、起動元を識別するための信号として直接リモートコ
マンド組立送信回路190に供給される。その後は、前
述のデータ書き込みコマンドWDの場合と同様にして、
このコマンドを含む図5のパケットを送信先PEに転送
する。
【0092】送信先PEでは、このパケットを受信する
と、リモートデータ書込回路180では、図12に示す
フローに基づき、前述のデータ書き込みコマンドWDの
場合と同様にして、受信したデータを主記憶130に書
き込む(ステップ5001から5005)。その後は、
前述のデータ書き込みコマンドWDの場合とは異なり、
信号181sを通じてセレクタ181を切り換え、ステ
ップ5004でアロケートしたバッファのアドレスを信
号180aを介してMP受信データアドレスレジスタ1
83に書込んだ後(ステップ5008)、完了信号18
0bを介してCPUにメッセージ受信割込をかける(ス
テップ5009)。
【0093】割込を受け取ったCPUは、MP受信デー
タアドレスレジスタ183を読み出すことにより、メッ
セージを受信したバッファアドレスを知り、受信メッセ
ージの内容を読み出すことができる。
【0094】以上述べたように、本実施の形態では、他
のPEの持つI/O装置への、書込、読出アクセスを他
のPE内のOSを介さないで行うことが可能になる。こ
れにより、他のPEのOSの介入を得ないで、当該他の
PEのI/O装置へのアクセスを行うことが可能にな
り、各PE内のCPUの実行効率を大幅に向上させるこ
とができる。
【0095】<変形例> 本発明は以上の実施の形態に限定されるのではなくいろ
いろの変形例にも適用可能である。例えば、 (1)以上においては、他のPE内のI/O装置へのデ
ータの書き込みを要求するI/O命令が実行されたとき
には、書き込みデータコマンドとI/O装置書き込みコ
マンドとをアクセス先のPEに送信した。しかし、これ
らのコマンドの内容を一つのコマンドに含ませて送るこ
とも可能である。
【0096】(2)また、以上においては、OSのファ
イルシステムがファイルの物理的な位置を求めたり、フ
ァイルのロック処理などのファイル管理を行う。しか
し、アプリケーションプログラムが直接ファイルを管理
し、デバイスドライバがアプリケーションプログラムか
ら直接呼ばれる計算機システムもある。このようなI/
O動作はraw I/Oと呼ばれる。本発明はそのよう
なシステムにも適用可能である。
【0097】(3)上記実施の形態において、計算機間
ネットワーク等の通信機構への入出力インタフェース回
路をこのI/Oインタフェース回路120に付加してあ
るいはその代わりに使用するシステムにも本発明を適用
することができる。
【0098】(4)上記実施の形態で使用したリモート
データ書き込み回路等のいくつかの回路は、マイクロコ
ンピュータで形成されているが、これらを専用の論理回
路により構成することも可能である。
【0099】(5)上記の実施の形態では、PE内のC
PUの数は1個であるが、PE内が複数のCPUを持つ
主記憶共有型のマルチプロセッサで構成されていても良
い。
【0100】(6)上記の実施の形態では、I/O装置
をアクセスするのは、該当するマルチプロセッサシステ
ム内の他のPEのCPUであったが、計算機間のネット
ワークにつながった他の計算機からのアクセス要求に関
しても、本発明は適用可能である。
【0101】ここで、該当する外部の計算機が接続され
ているのは、I/O装置を持つPEそのものでも、他の
PEでも良い。
【0102】(7)(6)において他のPEに接続され
た計算機間ネットワークの先の計算機からアクセスされ
る場合、内部ネットワーク900を通じてI/O装置を
持つPEにアクセス要求を転送する必要があるが、その
際の内部ネットワークと外部ネットワークの乗り換えに
も本発明の技術を使用することができる。
【0103】
【発明の効果】本発明によれば、複数のプロセッシング
エレメントからなる計算機システムにおいて、他のPE
の持つI/O装置にアクセスする際に、他PEのI/O
インタフェース回路に対してI/O装置を持つPEのC
PUの助けをかりずにハードウェアで直接起動できる。
【図面の簡単な説明】
【図1a】本発明のI/Oアクセス方式を実現する計算
機システムの概略ブロック図である。
【図1b】図1aのシステムに使用する受信コマンド処
理回路の概略ブロック図である。
【図1c】図1aのシステムに使用する送信コマンド処
理回路の概略ブロック図である。
【図2】ネットワークへRDコマンドを出すためのTC
Wのフォーマットである。
【図3】ネットワーク上のRDコマンドのパケットフォ
ーマットである。
【図4】ネットワークへMPもしくはWDコマンドを出
すためのTCWのフォーマットである。
【図5】ネットワーク上のMPもしくはWDコマンドの
パケットフォーマットである。
【図6】ネットワークへIORもしくはIOWコマンド
を出すためのTCWのフォーマットである。
【図7】ネットワーク上のIORもしくはIOWコマン
ドのパケットフォーマットである。
【図8】ネットワークへSTコマンドを出すためのTC
Wのフォーマットである。
【図9】ネットワーク上のSTコマンドのパケットフォ
ーマットである。
【図10】I/Oインタフェース回路にRもしくはRR
コマンドを出すためのICRのフォーマットである。
【図11】I/Oインタフェース回路にWもしくはRW
コマンドを出すためのICRのフォーマットである。
【図12】リモートデータ書込回路180の動作のフロ
ーチャートである。
【図13】状態書込回路160の動作のフローチャート
である。
【図14】ICR作成回路140の動作の動作のフロー
チャートである。
【図15】返信用TCW作成回路150の動作の動作の
フローチャートである。
【図16】終了書込回路126の動作の動作のフローチ
ャートである。
【符号の説明】
100、200……プロセッシングエレメント(PE)
フロントページの続き (72)発明者 樋口 達雄 東京都国分寺市東恋ケ窪一丁目280番地 株式会社日立製作所中央研究所内 (72)発明者 村橋 英樹 東京都国分寺市東恋ケ窪一丁目280番地 株式会社日立製作所中央研究所内

Claims (14)

    【特許請求の範囲】
  1. 【請求項1】第1、第2のプロセッシングエレメント
    と、該第1、第2のプロセッシングエレメントを結ぶデ
    ータ転送用のネットワークを有し、 該第1、第2のプロセッシングエレメントの各々は、主
    記憶と、少なくとも一つの処理装置と、少なくとも一つ
    のI/O装置とを有するマルチプロセッサシステムにお
    いて、 上記第1のプロセッシングエレメントのOSが、上記第
    2のプロセッシングエレメント内のI/O装置へのアク
    セスを要求する前に、該第1のプロセッシングエレメン
    トのそのOSが、該第2のプロセッシングエレメントの
    OSとの間でメッセージを上記ネットワークを介して交
    換することにより、上記第2のプロセッシングエレメン
    ト内の上記I/O装置のアクセス許可を取得し、 そのアクセス許可の取得後に上記第1のプロセッシング
    エレメントのOSが、上記第2のプロセッシングエレメ
    ント内のI/O装置へのアクセスを要求し、 該第1のプロセッシングエレメントのOSによる上記要
    求に応答して、該第2のプロセッシングエレメント内の
    上記I/O装置におけるI/O動作を要求するコマンド
    を上記第1のプロセッシングエレメントから上記第2の
    プロセッシングエレメントに上記ネットワークを介して
    転送し、 上記第2のプロセッシングエレメントにおいて、上記コ
    マンドに応答して、その第2のプロセッシングエレメン
    ト内の上記I/O装置に上記コマンドにより要求された
    上記I/O動作の実行を、該第2のプロセッシングエレ
    メント内の上記OSを介さないで直接指示するI/O装
    置のアクセス方法。
  2. 【請求項2】上記第2のプロセッシングエレメントにお
    いて、上記I/O動作の実行結果を表す返信用コマンド
    を、該第2のプロセッシングエレメント内のOSの介入
    を得ないで作成し、 作成されたコマンドを上記第2のプロセッシングエレメ
    ントから該第1のプロセッシングエレメントに上記ネッ
    トワークを介して転送するステップをさらに有する請求
    項1記載のI/O装置のアクセス方法。
  3. 【請求項3】第1、第2のプロセッシングエレメント
    と、該第1、第2のプロセッシングエレメントを結ぶデ
    ータ転送用のネットワークを有し、 該第1、第2のプロセッシングエレメントの各々は、 主記憶と、少なくとも一つの処理装置と、少なくとも一
    つのI/O装置と、そのプロセッシングエレメントを制
    御するOSから発行された、該I/O装置へのアクセス
    要求に応答して、該アクセス要求が指定するI/O動作
    指定情報に基づいて、該I/O装置をアクセスするI/
    O制御装置とを有するマルチプロセッサシステムにおい
    て、 上記第1のプロセッシングエレメント内のOSから発行
    された、上記第2のプロセッシングエレメント内のI/
    O装置へのアクセス要求に応答して、該I/O動作の実
    行を要求するコマンドを上記第1のプロセッシングエレ
    メントから上記第2のプロセッシングエレメントに上記
    ネットワークを介して転送し、 上記第2のプロセッシングエレメントにおいて、上記コ
    マンドに応答して、その第2のプロセッシングエレメン
    ト内の上記I/O装置に上記I/O動作の実行を指示す
    るためのI/O動作指定情報を、該第2のプロセッシン
    グエレメント内の上記OSを介さないで直接生成し、 生成されたI/O動作指定情報を用いて該第2のプロセ
    ッシングエレメント内の該I/O制御装置を上記OSを
    介さないで直接起動するI/O装置のアクセス方法。
  4. 【請求項4】上記第2のプロセッシングエレメントにお
    いて、上記I/O動作の実行結果を表す返信用コマンド
    を、該第2のプロセッシングエレメント内のOSの介入
    を得ないで作成し、 作成されたコマンドを上記第2のプロセッシングエレメ
    ントから該第1のプロセッシングエレメントに上記ネッ
    トワークを介して転送するステップをさらに有する請求
    項3記載のI/O装置のアクセス方法。
  5. 【請求項5】第1、第2のプロセッシングエレメント
    と、 該第1、第2のプロセッシングエレメントを結ぶデータ
    転送用のネットワークを有し、 該第1、第2のプロセッシングエレメントの各々は、 主記憶と、 少なくとも一つの処理装置と、 少なくとも一つのI/O装置と、 そのプロセッシングエレメントを制御するOSから発行
    された、該I/O装置へのアクセス要求に応答して、該
    アクセス要求が指定するI/O動作指定情報に基づい
    て、該I/O装置をアクセスするI/O制御装置とを有
    し、 該第1のプロセッシングエレメントは、 該第1のプロセッシングエレメントのOSから発行され
    た、該第2のプロセッシングエレメント内の該I/O装
    置に対するアクセス要求に応答して、そのアクセス要求
    が指定するI/O動作の実行を該第2のプロセッシング
    エレメントに要求する少なくとも一つのコマンドを生成
    するコマンド生成回路と、 該コマンドを該第2のプロセッシングエレメントに該ネ
    ットワークを介して送信する回路とをさらに有し、 該第2のプロセッシングエレメントは、該第1のプロセ
    ッシングエレメントから上記コマンドが転送されたとき
    に、該第2のプロセッシングエレメント内の上記I/O
    装置に上記コマンドが要求するI/O動作を実行させる
    ためのI/O動作指定情報を、該コマンドに基づいて、
    かつ、該OSの介入を得ないで生成し、該生成されたI
    /O動作指定情報を用いて該第2のプロセッシングエレ
    メント内の上記I/O制御装置を起動するI/O動作指
    定情報作成回路をさらに有するマルチプロセッサシステ
    ム。
  6. 【請求項6】該第2のプロセッシングエレメントは、 上記作成されたI/O動作指定情報に基づいて該第2の
    プロセッシングエレメント内の該I/O制御装置が、該
    第2のプロセッシングエレメント内の該I/O装置にお
    けるI/O動作が完了した時点で、該I/O動作の実行
    結果を該第1のプロセッシングエレメントに通知するた
    めの返信用コマンドを作成する返信用コマンド作成回路
    と、 該作成された返信用コマンドを該第1のプロセッシング
    エレメントに該ネットワークを介して送信する回路とを
    さらに有する請求項5記載のマルチプロセッサシステ
    ム。
  7. 【請求項7】上記返信用コマンドは、上記第1のプロセ
    ッシングエレメントから転送された上記コマンドが書き
    込み動作を要求するとき、その要求された書き込み動作
    が正常に終了したか否かの終了状態情報を含み、上記第
    1のプロセッシングエレメントから転送された上記コマ
    ンドが読み出し動作を要求するとき、その要求された読
    み出し動作が正常に終了したか否かの終了状態情報とそ
    の要求された読み出し動作が正常に終了したときにはそ
    のコマンドで要求されたデータとを含む請求項6記載の
    マルチプロセッサシステム。
  8. 【請求項8】上記コマンドは、上記第1のプロセッシン
    グエレメントのOSが発行した上記アクセス要求が指定
    したI/O動作指定情報を含み、 上記I/O動作指定情報作成回路は、上記転送されたコ
    マンドに含まれた上記I/O動作指定情報を用いて、上
    記コマンドが要求するI/O動作を実行させるためのI
    /O動作指定情報を作成する回路を有する請求項5記載
    のマルチプロセッサシステム。
  9. 【請求項9】上記I/O動作指定情報作成回路により生
    成される上記I/O動作指定情報は、該第2のプロセッ
    シングエレメント内のOSが発行するI/O装置へのア
    クセス要求が指定するI/O動作指定情報と同じ種類の
    複数の項目を含む請求項8記載のマルチプロセッサシス
    テム。
  10. 【請求項10】該第1、第2のプロセッシングエレメン
    トの各々内のOSは、ファイルシステムとデバイスドラ
    イバを含み、該ファイルシステムがファイルシステムレ
    ベルのI/O命令を発行し、該デバイスドライバは、こ
    のファイルシステムレベルのI/O命令が指定するI/
    O装置が、そのプロセッシングエレメント内にあるとき
    には、このI/O命令が要求するI/O動作をそのプロ
    セッシングエレメント内の上記I/O制御装置に指示す
    るための、デバイスドライバレベルのI/O命令を発行
    するように構成され、さらにこのデバイスドライバは、
    上記ファイルシステムレベルのI/O命令が指定するI
    /O装置が、他のプロセッシングエレメント内にあると
    きには、このI/O命令が要求するI/O動作を指定す
    るI/O動作指定情報を指定し、そのI/O動作の実行
    を当該他のプロセッシングエレメント内の上記I/O制
    御装置に要求するためのアクセス要求を発行するように
    構成され、 上記I/O動作指定情報作成回路により生成される上記
    I/O動作指定情報は、該第2のプロセッシングエレメ
    ント内のOSのデバイスドライバレベルのI/O命令が
    指定するI/O動作指定情報と同じ種類の複数の項目を
    含み、かつ、該デバイスドライバレベルのI/O命令が
    指定するI/O動作指定情報と同じデータ構造を有する
    請求項8記載のマルチプロセッサシステム。
  11. 【請求項11】該第1のプロセッシングエレメント内の
    OSが発行するアクセス要求が指定するI/O動作指定
    情報は、データの読み出しとデータの書き込みの一方を
    指定する動作種別情報と、アクセスすべきI/O装置内
    のアドレスを指定するアクセス位置情報と、書き込むべ
    きデータあるいは読み出されたデータを格納すべき、バ
    ッファ領域のアドレスを指定するバッファアドレス情報
    とを含み、 該生成されるコマンドは、上記アクセス要求が指定する
    上記I/O動作指定情報の内の上記動作種別指定情報
    と、上記アクセス位置情報を少なくとも含み、 該第2のプロセッシングエレメントは、上記第1のプロ
    セッシングエレメントから要求されたI/O動作に使用
    する書き込みデータあるいは読み出しデータを一時的に
    格納するためのバッファ領域をさらに有し、 上記I/O動作指定情報作成回路により作成される上記
    I/O動作指定情報は、上記転送されたコマンドに含ま
    れた上記動作種別指定情報と、上記アクセス位置情報
    と、上記バッファ領域のアドレスを含む請求項8記載の
    マルチプロセッサシステム。
  12. 【請求項12】該第1のプロセッシングエレメントは、
    上記I/O命令がデータの書き込みを要求するときに、
    上記コマンドとは別に上記I/O命令が要求する書き込
    みデータを含む他のコマンドを該第2のプロセッシング
    エレメントに転送する回路をさらに有し、 該第2のプロセッシングエレメントは、 該他のコマンドが転送されたときに該バッファ領域を確
    保し、そのバッファ領域に該転送された他のコマンド内
    の書き込みデータを転送する回路をさらに有し、 該I/O動作指定情報作成回路は、該確保されたバッフ
    ァ領域のアドレスをさらに使用して上記I/O動作指定
    情報を作成する回路を有する請求項11記載のマルチプ
    ロセッサシステム。
  13. 【請求項13】該第2のプロセッシングエレメントは、
    該転送されたコマンドがデータの読み出しを要求すると
    きに、読み出すべきデータを保持する領域として上記バ
    ッファ領域を確保する回路をさらに有し、 該I/O動作指定情報作成回路は、該確保されたバッフ
    ァ領域のアドレスをさらに使用して上記I/O動作指定
    情報を作成する回路を有する請求項11記載のマルチプ
    ロセッサシステム。
  14. 【請求項14】該第2のプロセッシングエレメントは、
    該データ読み出しのI/Oアクセスが終了した際に、該
    確保されたバッファ上に読み出されたデータを、該第1
    のプロセッサに返送するためのネットワークコマンドを
    作成する回路をさらに有する請求項13記載のマルチプ
    ロセッサシステム。
JP8176863A 1996-07-05 1996-07-05 I/o装置のアクセス方法およびそのためのマルチプロセッサシステム Pending JPH1021203A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP8176863A JPH1021203A (ja) 1996-07-05 1996-07-05 I/o装置のアクセス方法およびそのためのマルチプロセッサシステム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP8176863A JPH1021203A (ja) 1996-07-05 1996-07-05 I/o装置のアクセス方法およびそのためのマルチプロセッサシステム

Publications (1)

Publication Number Publication Date
JPH1021203A true JPH1021203A (ja) 1998-01-23

Family

ID=16021138

Family Applications (1)

Application Number Title Priority Date Filing Date
JP8176863A Pending JPH1021203A (ja) 1996-07-05 1996-07-05 I/o装置のアクセス方法およびそのためのマルチプロセッサシステム

Country Status (1)

Country Link
JP (1) JPH1021203A (ja)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007141240A (ja) * 2005-11-14 2007-06-07 Fujitsu Ltd コンピュータシステム及びコンピュータシステムにおけるインタラプトを処理するための方法
JP2009265687A (ja) * 2008-04-21 2009-11-12 Sony Corp 情報処理装置、および情報処理方法、並びにコンピュータ・プログラム
US8661458B2 (en) 2008-03-11 2014-02-25 Nec Corporation Multiprocessor system, and method for shared use of devices among operating systems of multiprocessor system

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007141240A (ja) * 2005-11-14 2007-06-07 Fujitsu Ltd コンピュータシステム及びコンピュータシステムにおけるインタラプトを処理するための方法
JP4709728B2 (ja) * 2005-11-14 2011-06-22 富士通株式会社 コンピュータシステム及びコンピュータシステムにおけるインタラプトを処理するための方法
US8661458B2 (en) 2008-03-11 2014-02-25 Nec Corporation Multiprocessor system, and method for shared use of devices among operating systems of multiprocessor system
JP5516398B2 (ja) * 2008-03-11 2014-06-11 日本電気株式会社 マルチプロセッサシステム、マルチプロセッサシステムのos間デバイス共有方法
JP2009265687A (ja) * 2008-04-21 2009-11-12 Sony Corp 情報処理装置、および情報処理方法、並びにコンピュータ・プログラム
JP4609521B2 (ja) * 2008-04-21 2011-01-12 ソニー株式会社 情報処理装置、および情報処理方法、並びにコンピュータ・プログラム
US8166339B2 (en) 2008-04-21 2012-04-24 Sony Corporation Information processing apparatus, information processing method, and computer program

Similar Documents

Publication Publication Date Title
US10997093B2 (en) NVME data processing method and NVME device
US4901232A (en) I/O controller for controlling the sequencing of execution of I/O commands and for permitting modification of I/O controller operation by a host processor
US6938253B2 (en) Multiprocessor communication system and method
US4939644A (en) Input/output controller for controlling the sequencing of the execution of input/output commands in a data processing system
US8370533B2 (en) Executing flash storage access requests
JPH0236969B2 (ja)
JP5909566B2 (ja) 計算機システム及びその制御方法
JPH0750456B2 (ja) 入出力制御システム
JP2002117002A (ja) 共用型ペリフェラルアーキテクチャ
JPH1185618A (ja) 仮想メモリ変換を制御する方法
US7818478B2 (en) Input/Output completion system for a data processing platform
US5764922A (en) I/O system for off-loading operating system functions
JP4168281B2 (ja) 並列処理システム、インタコネクションネットワーク、ノード及びネットワーク制御プログラム
JP5131269B2 (ja) マルチプロセッシングシステム
JP2008158710A (ja) 計算機システム
US20180011636A1 (en) Information processing apparatus and method of accessing a memory
JP4559958B2 (ja) マルチコアプロセッサにおけるマルチコア制御方法
JPH1021203A (ja) I/o装置のアクセス方法およびそのためのマルチプロセッサシステム
JPH1173365A (ja) データ移動操作を最適化する方法
JPH1083349A (ja) キャッシュ・メモリ・バンク制御装置
WO2007088582A1 (ja) 共有メモリ型マルチプロセッサにおける非同期遠隔手続き呼び出し方法、非同期遠隔手続き呼び出しプログラムおよび記録媒体
CN112711442A (zh) 一种主机命令写入方法、设备、系统及可读存储介质
JP4983133B2 (ja) 入出力制御装置およびその制御方法、並びにプログラム
JP2001222382A (ja) ディスク装置
EP0290533B1 (en) I/o system for off-loading operating system functions

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20040728

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20040810

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20041207