JP2931490B2 - 並列処理方式 - Google Patents

並列処理方式

Info

Publication number
JP2931490B2
JP2931490B2 JP4339093A JP33909392A JP2931490B2 JP 2931490 B2 JP2931490 B2 JP 2931490B2 JP 4339093 A JP4339093 A JP 4339093A JP 33909392 A JP33909392 A JP 33909392A JP 2931490 B2 JP2931490 B2 JP 2931490B2
Authority
JP
Japan
Prior art keywords
transfer
address
data
user
main storage
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP4339093A
Other languages
English (en)
Other versions
JPH06187299A (ja
Inventor
正幸 池田
茂 長沢
直樹 新庄
照雄 内海
正実 出羽
治彦 上埜
和重 小早川
賢一 石坂
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Fujitsu Ltd
Original Assignee
Fujitsu 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 Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP4339093A priority Critical patent/JP2931490B2/ja
Priority to DE69330548T priority patent/DE69330548T2/de
Priority to EP93309866A priority patent/EP0602890B1/en
Priority to CA002111600A priority patent/CA2111600C/en
Publication of JPH06187299A publication Critical patent/JPH06187299A/ja
Priority to US08/520,231 priority patent/US5623688A/en
Application granted granted Critical
Publication of JP2931490B2 publication Critical patent/JP2931490B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • G06F15/163Interprocessor communication
    • G06F15/173Interprocessor communication using an interconnection network, e.g. matrix, shuffle, pyramid, star, snowflake
    • G06F15/17356Indirect interconnection networks
    • G06F15/17368Indirect interconnection networks non hierarchical topologies
    • G06F15/17375One dimensional, e.g. linear array, ring
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • G06F15/163Interprocessor communication
    • G06F15/17Interprocessor communication using an input/output type connection, e.g. channel, I/O port

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Multi Processors (AREA)
  • Memory System (AREA)

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は並列処理方式に係り、特
に複数の処理装置が接続された構成の並列計算機システ
ムなどに適用するマルチユーザ並列処理方式に関する。
【0002】
【従来の技術】複数の処理装置が接続された構成の並列
計算機システムでは、第1の処理装置内の主記憶部に格
納されているデータを第2の処理装置へ転送するデータ
転送が比較的頻繁に行われる。この様な第2の処理装置
に対するデータ転送のキューイングの管理は、従来第1
の処理装置のスーパバイザプログラム(オペレーティン
グシステム:OS)が管理していた。従って、ユーザが
第1の処理装置のスーパバイザプログラムに対してデー
タ転送要求を行う場合、ユーザプログラムがスーパバイ
ザプログラムに対して割込みを発生し、スーパバイザプ
ログラムが割込みに応じてデータ転送の指示を行ってい
た。
【0003】しかし、この従来の方法では、データ転送
要求による割込みが多発してしまい、オーバーヘッドが
大きくなってしまう。又、ユーザが複数の場合の対処に
ついては一切考慮されていなかった。
【0004】そこで、データ転送要求がある毎にスーパ
バイザプログラムが介入することによりオーバーヘッド
が大きくなることを防止する方法が考えられる。この考
えられる方法によれば、データ転送要求のキューに書込
みポインタ及び読出しポインタを設けて、これらのポイ
ンタをユーザプログラムに直接管理させると共に、各処
理装置の主記憶部に対して1つの仮想空間を用いてアク
セスを行う。尚、データ転送は、ヘッダとボディデータ
のとからなるパケット単位で転送され、ヘッダにはデー
タの転送先やデータの長さなどが含まれる。データ転送
要求のキューとは、ヘッダをリスト形式に並べたもので
あり、ポインタはリスト中の位置を示す。
【0005】
【発明が解決しようとする課題】しかし、上記の考えら
れる方法では、ユーザプログラムがアクセス可能な仮想
空間が1つであるため、各処理装置のOSが管理してお
り、論理アドレスを実アドレスへ変換するためのアドレ
ス変換テーブルを、ユーザが変わりユーザプログラムが
切替わる毎に書替えなければならない。つまり、ユーザ
プログラムが切替わる毎にアドレス変換テーブルをロー
ドすると共に、データ転送に関係する処理装置のOS間
でユーザプログラムの切替えに伴う情報のやりとりを行
う必要もある。更に、ユーザプログラムが切替わる毎に
アドレス変換テーブルを書替える必要上、1つのユーザ
プログラムに関係する全てのデータ転送処理を終了して
からでなくてはユーザプログラムの切替えは行えない。
【0006】これらの理由により、この考えられる方法
では、ユーザプログラムの切替えに伴うオーバーヘッド
が大きく、システムの処理性能が低下してしまうという
問題点があった。これは、従来は並列計算機システムで
複数のユーザがユーザプログラムを切替えて実行するこ
とを前提とせず、単一ユーザによる単一ユーザプログラ
ムの実行を前提としていたことにも起因する。
【0007】
【課題を解決するための手段】本発明になる並列処理方
式は、各々が命令及びデータを格納する主記憶部(1
3)と、主記憶部から命令を読出して実行する命令処理
部(12)と、少なくともデータの転送先と主記憶部へ
のメモリアクセスの属性とデータの長さとに関する情報
を含むヘッダ及びボディデータからなるパケットを単位
としてデータ転送を行う転送処理部(11)とからなる
複数の処理装置(11 〜1n )と、パケットのヘッダに
含まれる情報に基づいてデータ転送を行うべき2つの処
理装置を接続するネットワーク(2)とからなり、転送
処理部(11)は主記憶部(13)とネットワーク
(2)との間でメモリアクセスの属性に応じたデータ転
送をパケット単位で行うことにより並列処理を行う並列
計算機システムにおいて用いられる。
【0008】本発明では、少なくとも任意の1つの処理
装置の転送処理部(11)が、管理手段(111〜11
4,212〜214)とアドレス変換手段(115)と
を有する。
【0009】
【作用】管理手段(111〜114,212〜214)
は、主記憶部(13)上の転送キューの先頭アドレスを
示す転送キューベースアドレスと、命令処理部(12)
が転送キューのどこまでのデータ転送要求をエンキュー
したかを示す転送キュー書込みポインタと、転送処理部
が転送キューのどこまでのデータ転送要求に関するデー
タ転送処理を終了したかを示す転送キュー読出しポイン
タと、メモリアクセス仮想空間とをユーザ毎に管理す
る。又、アドレス変換手段(115)は、パケットのヘ
ッダに含まれる情報により指定されたメモリアクセス仮
想空間に応じてアドレス変換を行って主記憶部(13)
に対するアクセスアドレスを発行する。
【0010】ここで、転送キューとは、ヘッダをリスト
形式に並べたものである。
【0011】従って、ユーザプログラムの切替時にもそ
のユーザプログラムに関係するデータ転送を終了させる
必要もなく、ユーザプログラム切替えのオーバーヘッド
を最小限に抑えられるので、複数のユーザプログラムを
効率良く並列に実行可能である。
【0012】
【実施例】図1は、本発明になる並列処理方式の一実施
例を適用し得る並列計算機システム(マルチプロセッサ
システム)を示し、図2は処理装置の構成を示す。
【0013】図1中、並列計算機システムは大略複数の
処理装置11 n と、これらの処理装置11 〜1n に接
続するネットワーク2とからなる。
【0014】各処理装置1i (i=1〜n)は、図2に
示す如く、転送処理部11と、命令処理部12と、主記
憶部13とからなる。主記憶部13は、命令(プログラ
ム)とデータとを格納する。命令処理部12は、主記憶
部13から命令(プログラム)を読出して実行する。転
送処理部11は、主記憶部13とネットワーク2との間
でデータ転送をパケット単位で行う。
【0015】各パケットは、ヘッダとボディデータとか
らなり、ヘッダには少なくともデータの転送先、主記憶
部13へのメモリアクセスの属性及びデータの長さなど
が含まれる。従って、ネットワーク2は、パケットのヘ
ッダ内の転送先を認識して切替えを行うことにより、デ
ータ転送を行う2つの処理装置を接続する。ネットワー
ク2としては、複数のスイッチ回路(図示せす)を有す
る公知のネットワークを使用し得る。この場合、ネット
ワーク2は、パケットのヘッダ内の転送先(即ち、受信
側処理装置)に応じてスイッチ回路を切替えることによ
り、転送元(即ち、送信側処理装置)からのボディデー
タの量がゼロでなければヘッダに含まれるデータ転送に
おけるメモリアクセスの属性(後述するアクセスID)
を示す情報を参照してボディデータを転送先へ転送す
る。つまり、ボディデータが送信側処理装置の主記憶部
13から読出されてネットワーク2を介して受信側処理
装置の主記憶部13へ書込まれる。
【0016】図3は、転送処理部11の一実施例を示
す。転送処理部11は、ネットワーク転送制御部111
と、レジスタ部112,113と、主記憶アクセス制御
部114と、アドレス変換部115と、データバッファ
116とからなる。
【0017】レジスタ部112,113は夫々転送キュ
ーベースアドレス、転送キュー書込みポインタ及び転送
キュー読出しポインタを格納する。転送キューベースア
ドレスは、主記憶部13上の転送キューの先頭アドレス
を示す。転送キュー書込みポインタは、命令処理部12
が転送キューのどこまでのデータ転送要求をエンキュー
したかを示す。又、転送キュー読出しポインタは、転送
処理部11が転送キューのどこまでのデータ転送要求に
関するデータ転送処理を終了したかを示す。レジスタ部
112,113は夫々命令処理部12から参照/更新可
能である。尚、レジスタ部の数は2つに限定されるもの
ではなく、並列に処理するべきユーザプログラムの数に
対応させた数だけ設ければ良い。本実施例では、説明の
便宜上、レジスタ部112がユーザUSER0に対して
設けられ、レジスタ部113ユーザUSER1に対して
設けられているものとする。
【0018】図4は、上記転送キューの構成の一実施例
を示す。図4には1パケット分のヘッダを示し、このヘ
ッダには受信処理装置を指定する情報、データ転送モー
ドが読出し/書込み(R/W)であるかを示す情報、ボ
ディデータ長を示す情報、送信空間IDを示す情報、送
信アドレスを示す情報、受信空間IDを示す情報、受信
アドレスを示す情報などが含まれる。
【0019】図3中、ネットワーク転送制御部(以下、
転送制御部と言う)111は、命令処理部12からの指
令によって起動され、転送キュー読出しポインタ及び転
送キュー書込みポインタの値に応じてデータ転送処理を
開始する。又、転送制御部111は、転送パケットのヘ
ッダ及びボディデータの読出しのために主記憶アクセス
制御部114へ主記憶アクセス要求を発行すると共に、
ネットワーク2とのインタフェースを制御し、データバ
ッファ116からネットワーク2へのデータの送出を制
御する。
【0020】主記憶アクセス制御部(以下、アクセス制
御部と言う)114は、転送制御部111からの指令に
よって主記憶部13に対してアクセスを行い、主記憶部
13とデータバッファ116との間のデータ転送を制御
する。
【0021】アドレス変換部115は、ヘッダに含まれ
る情報により指定されたアクセスの空間IDの値に応じ
てアドレス変換を行い、主記憶部13に対するアクセス
アドレスを発行する。
【0022】データバッファ116は、主記憶部13と
ネットワーク2との間でデータ転送を行う際に、一時的
にデータをバッファリングする。又、データバッファ1
16は、転送制御部111及びアクセス制御部114が
必要とする主記憶部13上のデータの読み書きを行う際
に、一時的にデータをバッファリングする。
【0023】図5は、アドレス変換部115の一実施例
を示す。アドレス変換部115は、命令処理部12から
その内容が書込み可能なアドレス変換テーブル115A
と、アドレス変換テーブル115Aの内容を検索するた
めの選択部115Bとからなる。選択部115Bは1以
上の選択回路からなり、本実施例では2つの選択回路1
15B1 ,115B2 とからなる。
【0024】アドレス変換テーブル115Aは、送信空
間ID=0に対応するローカルアドレス変換テーブル1
15A1 と、送信空間ID=1に対応するグローバルア
ドレス変換テーブル115A2 とからなる。ローカルア
ドレス及びグローバルアドレスは、夫々メモリアクセス
仮想空間の種別である。アクセス制御部114から得ら
れる仮想アドレスによってアドレス変換テーブル115
Aの内容を検索することにより、ローカルアドレス変換
テーブル115A1 のエントリと、グローバルアドレス
変換テーブル115A2 のエントリとが読出される。
【0025】転送制御部111又はヘッダで指定された
空間IDは、アクセス制御部114を介して選択回路1
15B1 へ供給される。空間IDはアドレスの種別、即
ち、ローカルアドレスであるかグローバルアドレスであ
るかを示すので、選択回路115B1 は空間IDに応答
してアドレス変換テーブル115Aから出力されるロー
カルアドレス及びグローバルアドレスのうち一方のみを
選択出力する。他方、選択回路115B2 には転送制御
部111よりアクセス制御部114を介してアドレス変
換制御信号が供給される。選択回路115B2 は、この
アドレス変換制御信号に応答して、選択回路115B1
より出力される変換済のアドレス及びアクセス制御部1
14からの無変換のアドレス(仮想アドレス)のうち一
方のみを選択出力する。選択回路115B2 の出力アド
レスは、主記憶部13をアクセスする際の実アドレスと
して主記憶部13へ供給される。
【0026】尚、ローカルアドレス変換テーブル115
1 及びグローバルアドレス変換テーブル115A
2 は、本実施例では夫々32エントリで構成されてい
る。ユーザの数が1である1ユーザモードでは、アドレ
ス変換テーブル115A1 ,115A2 は夫々1ユーザ
当たり32エントリで使用される。又、ユーザの数が2
である2ユーザモードでは、アドレス変換テーブル11
5A1 ,115A2 は夫々1ユーザ当たり16エントリ
で使用される。この様にして、ユーザの数が3以上であ
る場合であっても、1ユーザ当たりのエントリ数を調節
することにより、ユーザの数分だけアドレス変換テーブ
ルを別々に設ける場合に比べてアドレス変換テーブルの
物理量を軽減することができる。上記ユーザモードは、
転送制御部111からアクセス制御部114を介して得
られるプログラムIDにより指示される。
【0027】図6は、アドレス変換テーブル115A1
(又は115A2 )の一実施例を示す。同図中、RAは
アクセス制御部114からの仮想アドレスを変換して得
られる実アドレス、Pはエントリに対応する領域に書込
みアクセスを行った場合に例外を検出するためのアクセ
ス保護ビット、Iはエントリに対応する領域にアクセス
を行った場合に例外を検出するための無効ビット、SA
は入力された仮想アドレスの上位ビットとこれらのビッ
トとが不一致である場合に例外を検出するためのセクシ
ョンアドレスである。
【0028】次に、ページサイズが2MBである場合の
ローカルアドレス変換テーブル115A1 によるアドレ
ス変換について、図7〜図10と共に説明する。
【0029】図7は、ページサイズが2MBで転送モー
ドが1プロセスモードの場合のアドレス変換テーブル1
15A1 ,115A2 の構成を示す。又、図8は、この
場合のローカルアドレスの変換過程を説明する図であ
る。グローバルアドレスの変換過程は、ローカルアドレ
スの変換過程より容易に理解できるので、以下の説明で
はその図示及び説明は省略する。
【0030】ページサイズが2MBで転送モードが1プ
ロセスモードの場合、図8に示す如く、ローカル仮想ア
ドレスのビット06〜10の5ビットが32エントリの
内の1つを検索するのに使用される。1つのエントリ
は、11ビットのページ番号PNと、1ビットの保護ビ
ットPと、1ビットの無効ビットIと、6ビットのセク
ションアドレスSAとで構成されている。読出されたエ
ントリの11ビットのページ番号PNは、実アドレスビ
ット00〜10として使用され、その後にローカル仮想
アドレスビット11〜31が接続されることにより4バ
イトのローカル実アドレスとなる。
【0031】保護ビットPが「1」であり、かつ、主記
憶部13に対するアクセスが書込みアクセスである場合
は、例外が検出されて書込みは抑止される。無効ビット
Iが「1」の場合には、主記憶部13に対するアクセス
が読出しであっても書込みであっても例外が検出されて
アクセスが抑止される。他方、セクションアドレスSA
はローカル仮想アドレスのビット00〜05と比較さ
れ、一致している場合には主記憶部13に対するアクセ
スが許可され、不一致の場合には例外が検出されてアク
セスが抑止される。尚、図8中、ATR−VALIDは
アドレス変換テーブル有効を表わす。
【0032】図9は、ページサイズが2MBで転送モー
ドが2プロセスモードの場合のアドレス変換テーブル1
15A1 ,115A2 の構成を示す。又、図10は、こ
の場合のローカルアドレスの変換過程を説明する図であ
る。
【0033】ページサイズが2MBで転送モードが2プ
ロセスモードの場合、図10に示す如く、1ビットのプ
ロセスID及びローカル仮想アドレスのビット07〜1
0の4ビットが連結されて32エントリの内の1つを検
索するのに使用される。1つのエントリは、11ビット
のページ番号PNと、1ビットの保護ビットPと、1ビ
ットの無効ビットIと、7ビットのセクションアドレス
SAとで構成されている。読出されたエントリの11ビ
ットのページ番号PNは、実アドレスビット00〜10
として使用され、その後にローカル仮想アドレスビット
11〜31が接続されることにより4バイトのローカル
実アドレスとなる。
【0034】保護ビットPが「1」であり、かつ、主記
憶部13に対するアクセスが書込みアクセスである場合
には、例外が検出されて書込みは抑止される。無効ビッ
トIが「1」の場合には、主記憶部13に対するアクセ
スが読出しであっても書込みであっても例外が検出され
てアクセスが抑止される。他方、セクションアドレスS
Aはローカル仮想アドレスのビット00〜06と比較さ
れ、一致している場合には主記憶部13に対するアクセ
スが許可され、不一致の場合には例外が検出されてアク
セスが抑止される。
【0035】図11及び図12は、ページサイズが8M
Bで転送モードが夫々1プロセスモード及び2プロセス
モードの場合のローカルアドレスの変換過程を説明する
図である。又、図13及び図14は、ページサイズが3
2MBで転送モードが夫々1プロセスモード及び2プロ
セスモードの場合のローカルアドレスの変換過程を説明
する図である。図11〜図14中、図8及び図10と同
一部分には同一符号を付し、その説明は省略する。
【0036】図8,図10及び図11〜図14より明ら
かな如く、本実施例によれば、任意の固定のページサイ
ズに対してプロセス数に応じて1ユーザ当たりのエント
リ数を可変設定するので、ユーザの数分だけアドレス変
換テーブルを別々に設ける場合に比べてアドレス変換テ
ーブル115A1 ,115A2 の物理量を軽減すること
ができる。
【0037】次に、図3の説明に戻ると、スーパバイザ
プログラム(OS)は、ユーザプログラムの実行に先立
って、或いはユーザプログラムの要求に従って動的に、
アドレス変換部115内のアドレス変換テーブル115
Aにアドレス変換情報を格納する。ユーザプログラム
は、データ転送要求の受信処理装置の指定、ボディデー
タ長、送信アドレス、受信アドレス、送信空間ID、受
信空間IDなどの制御情報を、(転送キューベースアド
レス)+(転送キュー書込みポインタ)×(ヘッダ長)
で示される主記憶部13上の位置に、パケットのヘッダ
の形式で書込む。次に、ユーザプログラムは、転送キュ
ー書込みポインタをインクリメントする。その後、ユー
ザプログラムは、転送キューへのデータ転送要求の制御
情報の書込みと転送キュー書込みポインタのインクリメ
ントとを繰り返し行い、エンキュー処理を終了する。
【0038】図15は、アクセス制御部114の要部の
一実施例を示す。アクセス制御部114は、大略レジス
タ141〜145と、加算器146と、カウンタ151
と、レジスタ152と、比較器153と、データバッフ
ァ制御部161とからなる。レジスタ141は、データ
バッファ116(又は転送制御部111)からの空間I
Dをアドレス変換部115へ供給する。レジスタ14
2,143及び144は夫々転送制御部111からのア
ドレス変換制御信号、プロセスID及びアドレス変換制
御信号をアドレス変換部115へ供給する。レジスタ1
45及び加算器146は、転送キューベースアドレス及
び転送キュー読出しポインタから最も古い未処理のデー
タ転送要求に関するパケットヘッダの主記憶部13上の
実アドレスを得るための仮想アドレスを求め、この仮想
アドレスをアドレス変換部115へ供給する。
【0039】カウンタ151と、レジスタ152と比較
器153とは、データバッファ116から得たボディデ
ータ長に基づいてボディ読出し終了信号を転送制御部1
11へ供給する。従って、転送制御部111は、ボディ
読出し終了信号よりボディデータの転送が完了したかを
判断できる。
【0040】データバッファ制御部161は、データバ
ッファ116からの主記憶読出し応答信号に基づいてデ
ータバッファ書込み信号及びヘッダ読出し信号を生成す
る。データバッファ書込み信号は、データバッファ11
6へ供給され、データバッファ116への書込みを制御
する。他方、ヘッダ読出し終了信号は、転送制御部11
1へ供給され、ヘッダの読出しの終了を通知する。
【0041】次に、図3の転送処理部11の全体の動作
を説明する。
【0042】転送制御部111は、命令処理部12から
の指令によって起動された状態で、データ転送要求のエ
ンキューを待っている。転送制御部111は、ユーザU
SER0又はUSER1の転送キュー読出しポインタと
転送キュー書込みポインタとが一致しなくなると、未処
理のデータ転送要求があるものとみなしてデータ転送処
理を開始し、転送パケットのヘッダを読出すためにアク
セス制御部114へ主記憶アクセス要求を発行する。
【0043】アクセス制御部114は、主記憶アクセス
要求に応答して、レジスタ部112又は113の転送キ
ューベースアドレスと転送キュー読出しポインタとから
最も古い未処理のデータ転送要求のパケットヘッダの主
記憶部13上の実アドレスをアドレス変換部115に求
めさせる。又、アクセス制御部114は、アドレス変換
部15を介して主記憶部13に対してアクセス要求を発
行する。
【0044】主記憶部13からパケットヘッダが読出さ
れて来ると、アクセス制御部114はこのパケットヘッ
ダをデータバッファ116に格納させると共に、転送制
御部111へヘッダ読出し終了信号を供給してパケット
ヘッダの読出しの終了を通知する。これに引き続き、ア
クセス制御部114はデータバッファ116から転送モ
ード、送信空間ID及び受信空間IDを読出して、ユー
ザに対応した転送制御部111から許可フラグLLによ
り図16の如きテーブルを参照してデータ転送が可能で
あるか否かを検査する。
【0045】図16は、仮想空間間のデータ転送の可否
を決定するテーブルを示す。同図中、(A)はユーザU
SER0用の許可フラグLLが「0」の場合のユーザU
SER0による転送の可否を示すテーブル、(B)はユ
ーザUSER0用の許可フラグLLが「1」の場合のユ
ーザUSER0による転送の可否を示すテーブル、
(C)はユーザUSER1用の許可フラグLLが「0」
の場合のユーザUSER1による転送の可否を示すテー
ブル、(D)はユーザUSER1用の許可フラグLLが
「1」の場合のユーザUSER1による転送の可否を示
すテーブルである。アクセス制御部114での検査の結
果、データ転送が許可されていない組合せであると、転
送制御部111は転送を抑止して命令処理部12へ割込
みを発生することによりその旨を通知する。他方、デー
タ転送が許可されている組合せであると、アクセス制御
部114は引き続きデータバッファ116より更に送信
アドレスや受信アドレスなどのデータ転送のための制御
情報を読出してアドレス変換部115にパケットボディ
の主記憶部13上の実アドレスを求めさせると共に、ア
ドレス変換部115を介して主記憶部13に対して読出
しアクセスを発行する。
【0046】主記憶部13よりパケットボディが順次読
出されて来ると、アクセス制御部114はこのパケット
ボディを順次データバッファ116に格納させると共
に、転送制御部111へパケットボディの読出し量を順
次通知する。アクセス制御部114は、転送制御部11
1にボディ読出し終了信号を供給することによりパケッ
トボディの読出しの終了を通知する。
【0047】転送制御部111は、ボディ読出し終了信
号に応答してデータバッファ116からデータ転送要求
の制御情報を読出し、この制御情報に対して所定の検査
を行い所定の変更を加えてからデータバッファ116へ
書戻す。これに引き続き、転送制御部111は、パケッ
トヘッダをデータバッファ116からネットワーク2へ
送出する。更に、転送制御部111は、アクセス制御部
114からパケットボディの読出し量を順次通知される
と、データバッファ116に格納された分のパケットボ
ディを順次ネットワーク2へ送出する。
【0048】この様にしてネットワーク2へのパケット
の送出を終了すると、転送制御部111はレジスタ部1
12又は113の転送キュー読出しポインタをインクリ
メントする。これに引き続き、転送制御部111はレジ
スタ部112又は113の転送キュー読出しポインタ及
び転送キュー書込みポインタの値を検査して、未処理の
データ転送要求が残っていれば次のデータ転送処理を開
始する。上記の如きデータ転送処理は、転送キュー読出
しポインタ及び転送キュー書込みポインタの値が等しく
なるまで繰り返される。
【0049】この様に、本実施例によれば、各ユーザプ
ログラムに対応して転送キューのベースアドレス及び各
ポインタ、及びアドレス変換テーブルが設けられるの
で、転送処理部11は命令処理部12が実行中のプロセ
スIDとは独立したプロセスIDに対応するデータ転送
を行うことが可能である。又、転送処理部11は、命令
処理部12とは非同期に動作することもできる。このた
め、データ転送を命令処理部12からオフロードして実
行することにより、システムの運用効率の向上も可能で
ある。
【0050】尚、図16のテーブルでは、デバギングの
しやすさ等を考慮して、1つの処理装置のローカルアド
レス空間から他の処理装置のローカルアドレス空間への
データ転送は許可されていないが、本実施例ではこの条
件が不可欠なわけではない。つまり、プログラムを最適
化して高速に実行する場合、ローカルアドレス空間から
ローカルアドレス空間へのデータ転送の禁止がプログラ
ムの高速実行の妨げになることもある。そこで、その様
な場合には、ユーザを限定して許可フラグLLを「1」
にすることにより、ローカルアドレスからローカルアド
レス空間へのデータ転送が可能となる。この場合、デー
タ転送のオーバーヘッドが削減され、プログラムの高速
実行が可能となる。
【0051】上記説明では、許可フラグLLがユーザU
SER0及びユーザUSER1に対応させて2つ用いて
いるが、許可フラグLLがユーザの数(即ち、ユーザプ
ログラムの数)に対応させて設けられていることは言う
までもない。
【0052】図3において、転送制御部111及びアク
セス制御部114の機能は、ソフトウェアで実現できる
ものであり、図17はその場合の転送制御部111及び
アクセス制御部114に対応する動作フローを示す。
【0053】図17において、ステップS1はレジスタ
部112を参照してユーザUSER0の転送キュー読出
しポインタと転送キュー書込みポインタとの値が等しい
か否かを判定し、判定結果がNOであると、ステップS
2がアクセス制御部114に対してヘッダ読出し要求を
発行する。ステップS3は、転送モード、送信空間I
D、受信空間ID及び許可フラグLLをチェックして、
データ転送が可能であるか否かを判定する。
【0054】ステップS3の判定結果がNOであると、
ステップS4がデータ転送ができない旨を割込みの発生
により命令処理部12へ通知する。又、ステップS5は
レジスタ部112内の転送キュー読出しポインタをイン
クリメントし、処理はステップS1へ戻る。
【0055】他方、ステップS3の判定結果がYESで
あると、ステップS6はパケットのヘッダ部分をデータ
バッファ116からネットワーク2へ送出する。又、ス
テップS7は、ボディアドレスを計算する。ステップS
8は、ボディアドレスが正常であるか否かを判定し、判
定結果がNOであると処理がステップS4へ進む。
【0056】ステップS8の判定結果がYESである
と、ステップS9がアクセス制御部114に対してボデ
ィ読出し要求を発行する。ステップS10は、ボディを
データバッファに格納する。又、ステップS11は、ボ
ディの転送が完了したか否かを判定する。ステップS1
1の判定結果がNOであると、処理はステップS7へ戻
るが、YESであるとステップS5へ進む。
【0057】ステップS1での判定結果がYESである
と、ステップS21がレジスタ部113を参照してユー
ザUSER1の転送キュー読出しポインタと転送キュー
書込みポインタとの値が等しいか否かを判定する。ステ
ップS21の判定結果がNOであると処理はステップS
2へ進むが、YESであるとステップS22へ進む。ス
テップS22は、ネットワーク2から受信したパケット
のヘッダ部分が全てデータバッファ116に格納された
か否かを判定し、判定結果がNOであると処理がステッ
プS1へ戻る。
【0058】他方、ステップS22の判定結果がYES
であると、ステップS23がアクセス制御部114に対
してヘッダ読出し要求を発行する。ステップS24は、
ヘッダをチェックして誤りがないか否かを判定する。ス
テップS24の判定結果がNOであると、ステップS2
5が以降の当該パケットのボディを捨て、ステップS2
6が命令処理部12に対して割込みを発生してこれを通
知する。ステップS26の終了後、処理はステップS1
へ戻る。
【0059】ステップS24の判定結果がYESである
と、ステップS27がパケットのヘッダ部分をデータバ
ッファ116から主記憶部13へ格納する。ステップS
28は、ボディアドレスを計算し、ステップS29はボ
ディアドレスが正常か否かを判定する。ステップS29
の判定結果がNOであれば、処理がステップS25へ進
む。
【0060】ステップS29の判定結果がYESである
と、ステップS30がアクセス制御部114に対してボ
ディ読出し要求を発行する。又、ステップS31はボデ
ィをデータバッファ116に格納する。ステップS32
は、ボディの転送が完了したか否かを判定する。ステッ
プS32の判定結果がNOであれば処理はステップS2
8へ戻り、YESであればステップS1へ戻る。
【0061】次に、転送処理部11の他の実施例を図1
8と共に説明する。図18中、図3と同一部分には同一
符号を付し、その説明は省略する。
【0062】図18では、レジスタ部212,213が
夫々転送キュー読出しポインタ及び転送キュー書込みポ
インタのみを格納している。又、レジスタ214は、転
送キューベースポインタを格納している。本実施例で
は、ユーザUSER0用の転送キューベースアドレス及
びユーザUSER1用の転送キューベースアドレスは夫
々主記憶部13内に格納されており、転送キューポイン
タは図19に示す如くこれらの転送キューベースアドレ
スの格納位置を指すものである。転送処理部11の他の
部分の構成及び動作は図3の場合と同じであり、その説
明は省略する。
【0063】以上、本発明の実施例を説明したが、本発
明はこれらの実施例に限定されることなく、種々の変形
及び改良が可能であることは言うまでもない。
【0064】
【発明の効果】本発明によれば、転送キューのベースア
ドレスと、ポインタと、メモリアクセス仮想空間とをユ
ーザ毎に管理してアドレス変換を行うので、ユーザプロ
グラムの切替時にもそのユーザプログラムに関係するデ
ータ転送を終了させる必要もなく、ユーザプログラム切
替えのオーバーヘッドを最小限に抑えられ、複数のユー
ザプログラムを効率良く並列に実行可能であり、実用的
には極めて有用である。
【図面の簡単な説明】
【図1】本発明になる並列処理方式の一実施例を適用し
得る並列計算機システムを示すブロック図である。
【図2】並列計算機システムの処理装置の構成を示すブ
ロック図である。
【図3】処理装置の転送処理部の一実施例を示すブロッ
ク図である。
【図4】転送キューの構成の一実施例を示す図である。
【図5】転送処理部のアドレス変換部の一実施例を示す
ブロック図である。
【図6】アドレス変換テーブルの一実施例を示す図であ
る。
【図7】ページサイズが2MBで転送モードが1プロセ
スモードの場合のアドレス変換テーブルの構成を示す図
である。
【図8】ページサイズが2MBで転送モードが1プロセ
スモードの場合のローカルアドレス変換過程を説明する
図である。
【図9】ページサイズが2MBで転送モードが2プロセ
スモードの場合のアドレス変換テーブルの構成を示す図
である。
【図10】ページサイズが2MBで転送モードが2プロ
セスモードの場合のローカルアドレス変換過程を説明す
る図である。
【図11】ページサイズが8MBで転送モードが1プロ
セスモードの場合のローカルアドレス変換過程を説明す
る図である。
【図12】ページサイズが8MBで転送モードが2プロ
セスモードの場合のローカルアドレス変換過程を説明す
る図である。
【図13】ページサイズが32MBで転送モードが1プ
ロセスモードの場合のローカルアドレス変換過程を説明
する図である。
【図14】ページサイズが32MBで転送モードが2プ
ロセスモードの場合のローカルアドレス変換過程を説明
する図である。
【図15】転送処理部のアクセス制御部の一実施例を示
すブロック図である。
【図16】空間転送の可否を決定するテーブルを示す図
である。
【図17】転送処理部の転送制御部及びアクセス制御部
の動作を説明するフローチャートである。
【図18】処理装置の転送処理部の他の実施例を示すブ
ロック図である。
【図19】主記憶部内の転送キューベースアドレスを説
明する図である。
【符号の説明】
1 〜1n 処理装置 2 ネットワーク 11 転送処理部 12 命令処理部 13 主記憶部 111 転送制御部 112,113 レジスタ部 114 アクセス制御部 115 アドレス変換部 116 データバッファ 212,213 レジスタ部 214 レジスタ
───────────────────────────────────────────────────── フロントページの続き (72)発明者 内海 照雄 神奈川県川崎市中原区上小田中1015番地 富士通株式会社内 (72)発明者 出羽 正実 神奈川県川崎市中原区上小田中1015番地 富士通株式会社内 (72)発明者 上埜 治彦 神奈川県川崎市中原区上小田中1015番地 富士通株式会社内 (72)発明者 小早川 和重 神奈川県川崎市中原区上小田中1015番地 富士通株式会社内 (72)発明者 石坂 賢一 神奈川県川崎市中原区上小田中1015番地 富士通株式会社内 (56)参考文献 特開 昭59−40744(JP,A) 特開 平4−117742(JP,A) 特開 平6−19856(JP,A) (58)調査した分野(Int.Cl.6,DB名) G06F 15/177 672 G06F 12/00 571

Claims (6)

    (57)【特許請求の範囲】
  1. 【請求項1】 各々が命令及びデータを格納する主記憶
    部(13)と、該主記憶部から命令を読出して実行する
    命令処理部(12)と、少なくともデータの転送先と該
    主記憶部へのメモリアクセスの属性とデータの長さとに
    関する情報を含むヘッダ及びボディデータからなるパケ
    ットを単位としてデータ転送を行う転送処理部(11)
    とからなる複数の処理装置(11 〜1n )と、パケット
    のヘッダに含まれる情報に基づいてデータ転送を行うべ
    き2つの処理装置を接続するネットワーク(2)とから
    なり、該転送処理部(11)は該主記憶部と該ネットワ
    ークとの間でメモリアクセスの属性に応じたデータ転送
    をパケット単位で行うことにより並列処理を行う並列計
    算機システムにおいて、 少なくとも任意の1つの処理装置の転送処理部(11)
    は、主記憶部(13)上の転送キューの先頭アドレスを
    示す転送キューベースアドレスと、命令処理部(12)
    が転送キューのどこまでのデータ転送要求をエンキュー
    したかを示す転送キュー書込みポインタと、転送処理部
    が転送キューのどこまでのデータ転送要求に関するデー
    タ転送処理を終了したかを示す転送キュー読出しポイン
    タと、メモリアクセス仮想空間とをユーザ毎に管理する
    管理手段(111〜114,212〜214)と、 パケットのヘッダに含まれる情報により指定されたメモ
    リアクセス仮想空間に応じてアドレス変換を行って主記
    憶部(13)に対するアクセスアドレスを発行するアド
    レス変換手段(115)とを有し、 該転送キューとは、ヘッダをリスト形式に並べたもので
    あることを特徴とする並列処理方式。
  2. 【請求項2】 前記管理手段(111〜114,212
    〜214)は、転送キューベースアドレスと、転送キュ
    ー書込みポインタと、転送キュー読出しポインタとをユ
    ーザ毎に管理するレジスタ部(112,113)を有す
    ることを特徴とする請求項1の並列処理方式。
  3. 【請求項3】 ユーザ毎の転送キューベースアドレスは
    該主記憶部(13)に格納されており、前記管理手段
    (111〜114,212〜124)は、転送キュー書
    込みポインタと転送キュー読出しポインタとをユーザ毎
    に管理するレジスタ部(212,213)と、該主記憶
    部内でのユーザ毎の転送キューベースアドレスの格納位
    置を示すポインタを管理するレジスタ(211)とを有
    することを特徴とする請求項1の並列処理方式。
  4. 【請求項4】 前記アドレス変換手段(115)は、任
    意の固定のページサイズに対してユーザの数に応じて1
    ユーザ当たりのエントリ数が可変設定されたアドレス変
    換テーブルに基づいてアドレス変換を行うことを特徴と
    する請求項1〜3のうちいずれか1項の並列処理装置。
  5. 【請求項5】 前記管理手段(111〜114,212
    〜214)は、メモリアクセス仮想空間として複数の種
    別の仮想空間を設け、送信側及び受信側処理装置の仮想
    空間の種別に応じてユーザ毎にデータ転送の許可/不許
    可を制御することを特徴とする請求項1〜4のうちいず
    れか1項の並列処理方式。
  6. 【請求項6】 前記管理手段(111〜114,212
    〜214)は、各ユーザに対応する許可フラグ(LL)
    と、仮想空間間のデータ転送の可否を決定するテーブル
    とを有し、パケットのヘッダに含まれアクセスの種別を
    示す転送モードと送信側及び受信側の処理装置の仮想空
    間の種別とに応じて該テーブルを参照することによりデ
    ータ転送の許可/不許可を制御することを特徴とする請
    求項5の並列処理方式。
JP4339093A 1992-12-18 1992-12-18 並列処理方式 Expired - Fee Related JP2931490B2 (ja)

Priority Applications (5)

Application Number Priority Date Filing Date Title
JP4339093A JP2931490B2 (ja) 1992-12-18 1992-12-18 並列処理方式
DE69330548T DE69330548T2 (de) 1992-12-18 1993-12-08 Datentransfereinheit zur Benutzung in parallelen Verarbeitungssystemen
EP93309866A EP0602890B1 (en) 1992-12-18 1993-12-08 Transfer processing circuitry for use in parallel processing systems
CA002111600A CA2111600C (en) 1992-12-18 1993-12-16 Parallel processing system
US08/520,231 US5623688A (en) 1992-12-18 1995-08-28 Parallel processing system including instruction processor to execute instructions and transfer processor to transfer data for each user program

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP4339093A JP2931490B2 (ja) 1992-12-18 1992-12-18 並列処理方式

Publications (2)

Publication Number Publication Date
JPH06187299A JPH06187299A (ja) 1994-07-08
JP2931490B2 true JP2931490B2 (ja) 1999-08-09

Family

ID=18324198

Family Applications (1)

Application Number Title Priority Date Filing Date
JP4339093A Expired - Fee Related JP2931490B2 (ja) 1992-12-18 1992-12-18 並列処理方式

Country Status (5)

Country Link
US (1) US5623688A (ja)
EP (1) EP0602890B1 (ja)
JP (1) JP2931490B2 (ja)
CA (1) CA2111600C (ja)
DE (1) DE69330548T2 (ja)

Families Citing this family (23)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3560662B2 (ja) * 1994-12-06 2004-09-02 富士通株式会社 並列プロセッサ装置
US5752078A (en) * 1995-07-10 1998-05-12 International Business Machines Corporation System for minimizing latency data reception and handling data packet error if detected while transferring data packet from adapter memory to host memory
US5796954A (en) * 1995-10-13 1998-08-18 Apple Computer, Inc. Method and system for maximizing the use of threads in a file server for processing network requests
US6145038A (en) * 1997-10-31 2000-11-07 International Business Machines Corporation Method and system for early slave forwarding of strictly ordered bus operations
US6112270A (en) * 1997-10-31 2000-08-29 International Business Machines Corporation Method and system for high speed transferring of strictly ordered bus operations by reissuing bus operations in a multiprocessor system
US6721329B1 (en) * 1997-11-04 2004-04-13 Koninklijke Philips Electronics N.V. Communication network using different transmission properties
EP0983669B1 (en) * 1997-11-04 2006-07-26 Koninklijke Philips Electronics N.V. Communication network with increased routing flexibility
US7102999B1 (en) * 1999-11-24 2006-09-05 Juniper Networks, Inc. Switching device
US6853382B1 (en) * 2000-10-13 2005-02-08 Nvidia Corporation Controller for a memory system having multiple partitions
WO2003005210A1 (en) * 2001-07-02 2003-01-16 Intel Corporation Method, apparatus, and system for parallel processing of user requests
US7324220B1 (en) 2001-07-09 2008-01-29 Lexmark International, Inc. Print performance under the windows® operating system
GB2395308B (en) * 2002-11-18 2005-10-19 Quadrics Ltd Command scheduling in computer networks
US7420568B1 (en) 2003-12-17 2008-09-02 Nvidia Corporation System and method for packing data in different formats in a tiled graphics memory
US7286134B1 (en) 2003-12-17 2007-10-23 Nvidia Corporation System and method for packing data in a tiled graphics memory
US6999088B1 (en) 2003-12-23 2006-02-14 Nvidia Corporation Memory system having multiple subpartitions
US7227548B2 (en) * 2004-05-07 2007-06-05 Valve Corporation Method and system for determining illumination of models using an ambient cube
US8572349B2 (en) * 2006-01-31 2013-10-29 Agere Systems Llc Processor with programmable configuration of logical-to-physical address translation on a per-client basis
US8270404B2 (en) 2008-02-13 2012-09-18 International Business Machines Corporation System, method, and computer program product for improved distribution of data
US8330766B1 (en) 2008-12-19 2012-12-11 Nvidia Corporation Zero-bandwidth clears
US8319783B1 (en) 2008-12-19 2012-11-27 Nvidia Corporation Index-based zero-bandwidth clears
US9558143B2 (en) 2014-05-09 2017-01-31 Micron Technology, Inc. Interconnect systems and methods using hybrid memory cube links to send packetized data over different endpoints of a data handling device
US10691558B1 (en) * 2016-09-22 2020-06-23 Amazon Technologies, Inc. Fault tolerant data export using snapshots
US20190114195A1 (en) 2018-08-22 2019-04-18 Intel Corporation Virtual device composition in a scalable input/output (i/o) virtualization (s-iov) architecture

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4768190A (en) * 1986-04-30 1988-08-30 Og Corporation Packet switching network
CA1262274A (en) * 1986-06-20 1989-10-10 Randall D. Kun Isdn d channel handler
US5136718A (en) 1987-09-04 1992-08-04 Digital Equipment Corporation Communications arrangement for digital data processing system employing heterogeneous multiple processing nodes
EP0326164B1 (en) 1988-01-29 1997-07-16 Hitachi, Ltd. Parallel computer comprised of processor elements having a local memory and an enhanced data transfer mechanism
US4942574A (en) * 1988-03-31 1990-07-17 American Telephone And Telegraph Company, At&T Bell Laboratories Concurrent resource request resolution mechanism
US5212778A (en) * 1988-05-27 1993-05-18 Massachusetts Institute Of Technology Message-driven processor in a concurrent computer
JP3369580B2 (ja) * 1990-03-12 2003-01-20 ヒューレット・パッカード・カンパニー 直接メモリアクセスを行うためのインターフェース装置及び方法
US5121390A (en) * 1990-03-15 1992-06-09 International Business Machines Corporation Integrated data link controller with synchronous link interface and asynchronous host processor interface
WO1993004429A2 (en) * 1991-08-13 1993-03-04 Board Of Regents Of The University Of Washington Method of generating multidimensional addresses in an imaging and graphics processing system
US5414840A (en) * 1992-06-25 1995-05-09 Digital Equipment Corporation Method and system for decreasing recovery time for failed atomic transactions by keeping copies of altered control structures in main memory
US5434975A (en) * 1992-09-24 1995-07-18 At&T Corp. System for interconnecting a synchronous path having semaphores and an asynchronous path having message queuing for interprocess communications

Also Published As

Publication number Publication date
DE69330548T2 (de) 2001-11-22
EP0602890A3 (en) 1996-01-31
EP0602890B1 (en) 2001-08-08
DE69330548D1 (de) 2001-09-13
JPH06187299A (ja) 1994-07-08
CA2111600A1 (en) 1994-06-19
EP0602890A2 (en) 1994-06-22
US5623688A (en) 1997-04-22
CA2111600C (en) 1998-11-03

Similar Documents

Publication Publication Date Title
JP2931490B2 (ja) 並列処理方式
JP2977688B2 (ja) マルチプロセッシング装置、方法、及びこれらに使用するプロセッサ
US11226820B2 (en) Data transfer bus communication using single request to perform command and return data to destination indicated in context to allow thread context switch
JP3098344B2 (ja) データ転送処理方法及びデータ転送処理装置
US6813653B2 (en) Method and apparatus for implementing PCI DMA speculative prefetching in a message passing queue oriented bus system
US5625846A (en) Transfer request queue control system using flags to indicate transfer request queue validity and whether to use round-robin system for dequeuing the corresponding queues
JP2974526B2 (ja) データ転送処理方法及びデータ転送処理装置
US6901451B1 (en) PCI bridge over network
EP1741023B1 (en) Communicating protected data within locking messages
JPH08297626A (ja) ネットワーク・インタフェースおよびネットワーク・インタフェースにおけるパケット処理方法
JP2768503B2 (ja) 仮想記憶アドレス空間アクセス制御方式
US6108694A (en) Memory disk sharing method and its implementing apparatus
US20070079077A1 (en) System, method, and computer program product for shared memory queue
US7130936B1 (en) System, methods, and computer program product for shared memory queue
JP3088303B2 (ja) キャッシュ・メモリ・バンク制御装置
US6694417B1 (en) Write pipeline and method of data transfer that sequentially accumulate a plurality of data granules for transfer in association with a single address
US6308147B1 (en) Data structure synthesis in hardware using memory transaction translation techniques
US6961837B2 (en) Method and apparatus for address translation pre-fetch
JPH0887478A (ja) プロセス間メッセージ通信方法
KR100648065B1 (ko) 입출력 가속 기술이 적용된 하드웨어용 파일 시스템 및 그파일 시스템에서의 데이터 처리 방법
JPH0553914A (ja) デイスクキヤツシユ方式
JPH0148574B2 (ja)
JP2742245B2 (ja) 並列計算機
JPS5960547A (ja) インタ−フエイス変換装置
JPH07210433A (ja) ファイルサーバ

Legal Events

Date Code Title Description
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 19990511

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

Free format text: PAYMENT UNTIL: 20080521

Year of fee payment: 9

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

Free format text: PAYMENT UNTIL: 20090521

Year of fee payment: 10

LAPS Cancellation because of no payment of annual fees