JPH02238552A - プロセツサ相互接続装置 - Google Patents

プロセツサ相互接続装置

Info

Publication number
JPH02238552A
JPH02238552A JP1299885A JP29988589A JPH02238552A JP H02238552 A JPH02238552 A JP H02238552A JP 1299885 A JP1299885 A JP 1299885A JP 29988589 A JP29988589 A JP 29988589A JP H02238552 A JPH02238552 A JP H02238552A
Authority
JP
Japan
Prior art keywords
memory
command
data
lra
record
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
JP1299885A
Other languages
English (en)
Other versions
JPH0587854B2 (ja
Inventor
Claude Basso
クロード・バツソ
Gerald Lebizay
ジエラール・ルビゼー
Jean-Marie Munier
ジヤン・マリー・ミユニエ
Andre Pauporte
アンドレ・ポポルト
Poiraud Clement
クレマン・ポアロ
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 JPH02238552A publication Critical patent/JPH02238552A/ja
Publication of JPH0587854B2 publication Critical patent/JPH0587854B2/ja
Granted legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/544Buffers; Shared memory; Pipes
    • 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/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/1605Handling requests for interconnection or transfer for access to memory bus based on arbitration
    • G06F13/1652Handling requests for interconnection or transfer for access to memory bus based on arbitration in a multiprocessor architecture
    • 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/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/1605Handling requests for interconnection or transfer for access to memory bus based on arbitration
    • G06F13/1652Handling requests for interconnection or transfer for access to memory bus based on arbitration in a multiprocessor architecture
    • G06F13/1663Access to shared memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/546Message passing systems or structures, e.g. queues

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Computer And Data Communications (AREA)
  • Multi Processors (AREA)
  • Memory System (AREA)

Abstract

(57)【要約】本公報は電子出願前の出願データであるた
め要約のデータは記録されません。

Description

【発明の詳細な説明】 A.産業上の利用分野 本発明は、複数のプロセッサまたはユーザが、共通のメ
モリ、または個別にアクセスできる複数のメモリ・モジ
ュール(メモリ・バンク)からなる共用メモリにアクセ
スできるシステムに関し、詳しくは、複数のプロセッサ
またはユーザにメモリ・スペースを動的に割り振ること
ができる共用知能メモリに関するものである。
B.従来技術及びその問題点 メモリ、入出力装置、バッファなどの複数の共用資源を
有するシステムでは、前記共用資源に同時アクセスでき
ることが重要であり、物理的システム構成に対しユーザ
またはマルチプロセッサにとって透過的な形でそれを行
なうことが好ましい。
複数のユーザが同時アクセスできるような共用メモリ・
コンピュータ装置は、ヨーロッパ特許出願第00232
13−Bl号に記載されている。
そこで扱われている問題は、アクセス数及びメモリ・モ
ジュール数が増加したときに性能を損なわずに共用メモ
リ・モジュールに競合なしにアクセスできるようにする
ことである。この結果を得るため、アクセス要求を受け
取り、前記要求と共に受け取ったアドレスをメモリ装置
に関してランダムに分散されたアドレスに変換するため
の手段が、そのように接続されたランダム・アクセス・
ジェネレータという形で提供される。
ただし、この従来技術のシステムでは、メモリ・モジュ
ール内の情報の実際の、すなわち物理的アドレスに対す
る、ユーザにとっての透過性が十分ではない。これは、
前記の従来技術のシステムでは、アドレス・ランダム化
のために論理的アドレッシングだけを使用するためであ
る。さらに、共用メモリにアクセスするためにプロセッ
サで使用するコマンドは、通常のWRITE,READ
及びTESTコマンドであり、メモリ・レコードが動的
に拡張できない。
C.問題点を解決するための手段 したがって、本発明の1つの目的は、メモリ内の情報の
物理的位置に対する透過性が最適のレベルで、ユーザま
たはマルチプロセッサが共用メモリを介して通信を行な
えるような形で、マルチプロセッサ環境で単純かつ融通
性のあるメモリ・アクセスを行なえるような、共用知能
メモリを考案することである。
本発明の別の目的は、メモリ・スペースがユーザの要求
に応じて自動的に割り振られるという、共用メモリ内の
スペース管理の問題を解決するための手段を提供するこ
とにある。
本発明のもう1つの目的は、関連するハードウェア即ち
装置が物理的に分散されている場合でも、各ユーザには
、共用メモリが論理的には集中化された機構に見えると
いう、共用メモリにアクセスするための1組の高水準コ
マンドをユーザまたはプロセッサに提供することにある
これらの目的は、本発明による共用知能メモリによって
実現される。
本発明によれば、パケット・メモリ(PM)と呼ぶ共用
メモリを介して、複数のプロセッサを相互接続してマル
チプロセッサ複合体を形成するための手段が提供される
複数のメモリ・ユーザ(MU)が、PM内のレコードを
共用する。PMは、単一の記憶装置によって構成するこ
ともできるが、本明細書で想定されているように、複数
の独立したメモリ・バンク(MB)で構成することが好
ましい。相互に通信するため、MUは、適切なコマンド
を使って、PM内に配置されているレコードの待ち行列
を用いてメッセージを交換する。
各MUごとに、分散されたメモリ・インターフェース(
MI)が設けられる。これは、MUによって発行される
高水準コマンドをメモリ・バンクに提示できるようにす
る論理層を含む。
MBに送られた高水準コマンド(PUT1GET・・・
)は、好ましくは各MBに組み込まれた、パケット・メ
モリ・コマンド・エグゼキュータ(PMCE)によって
MB内で実行される。
したがってPMは、ユーザには、論理アドレス(例、論
理レコード・アドレスすなわちLRA)によってすべて
定義されているレコードに対して作業を行なう論理的に
集中された機構に見えるが、関連する装置は物理的に分
散することができ、性能、容量及びコストに関して細分
性が得られる。
本発明によるPMは、MB内の連鎖された複数のバッフ
ァからなるレコードが、PMCEによって動的に生成さ
れ(かつ関連するメモリ・スペースが割り振られ)、M
Uからの要求に応じて解放されるので、スペース管理の
問題も解決する。
本発明によるPMの構造では、MUによるMBの負荷ま
たは利用度の均衡を取ることが重要である。この問題は
、本特許出願で解決される問題とは無関係であり、「分
散構造を有する共用メモリ内での負荷均衡化技法(Lo
ad balancingtechnique in 
shared memory with distri
butedstructure ) Jと題する関連ヨ
ーロッパ特許出願第88480101.0号にその解決
策が出ている。
本発明のさらに詳しい特徴と利点については、添付の図
面を参照しながら好ましい実施例についての下記の詳細
な説明を読めば明らかになるはず6一 である。
D.実施例 1.システムの概要 第1図は、本発明が適用されるシステムの機器構成図で
ある。原則として、これは、複数のユーザが、ユーザ集
団全体のための共通(または共用)メモリとして働く複
数のメモリ・バンク(メモリ・モジュール)に接続され
ているシステムである。
このような配置はたとえば通信制御装置で使用され、本
発明が有利に使用される。
各メモリ・ユーザMU (1 1A1 1 1B1・・
・11N)は、それ自体のメモリ・インターフx一スM
I (13A1 13B,・・・、13N)を介して共
通の相互接続ネットワークNW15に接続される。メモ
リ・バンクMB (17A1 17B1・・・、17N
)は、同じ装置であり、それぞれ相互接続ネットワーク
に接続されている。
本発明のあまり有利ではない実施態様では、メモリ・バ
ンクMB (17A1 17B,・・・、17N)をす
べて点線で示した単一の共用メモリ10内でグループ化
することができるが、この解決策は、信頼性の点であま
り好ましくなく、本発明では考慮しないことにする。単
一のメモリ・インターフェースとは違って、区分された
メモリ・インターフェースMI (13A,13B,・
・・、13N)に関しても同じことが言える。第1図に
はさらに、メモリ・ユーザによって提示される高水準コ
マンドを実行するための、各メモリ・バンク内に組み込
まれたパケット・メモリ・コマンド・エグゼキュータP
MCE (12A.12B,・・・ 12N)が示され
ている。その構造については後で説明する。
相互接続ネットワークは、その1つのボートで入力され
たデータ・パケットに応答して、前記データ・パケット
を要求された出力ポートに経路指定することができる、
複数ボート・パケット交換機である。このようなネット
ワークはすでに知られており、次の文献に記載されてい
る。
T. Feng r相互接続ネットワークに関する調査
(A Survey of Interconnect
ion networks) J NComputer
 (IEEE)、1981年12月号、pp.12〜3
0. V. P. Kumar等「増補シャフル交換多段相互
接続ネットワーク(Augmented Shuffl
e−ExchangeMultistage Inte
rconnection networks) J N
Compu t e r (I EEE)、1987年
6月号、pp.30〜40。
この全体配置の利点は、(相互接続ネットワークが十分
な容量と十分なボートを備えている限り)モジュール式
に拡張することができるという点にある。メモリ・バン
クの数は、ユーザの数とユーザのもつ記憶装置要件に合
わせて増減することができる。本発明の適用範囲を制限
することなく、メモリ・バンクの数はN=8であると想
定する。
メモリ・アクセスに関するコマンド及び制御情報の全体
的流れ図を第2図に概略的に示す。
メモリ・ユーザMUは、所期の動作を指定し、パラメー
タを含むメモリ制御ワードMCWを作成する。MCWは
、メモリ・インターフェースMIに転送される。メモリ
・インタフェースMIは、一9− コマンド要求を処理し、メモリ・バンクMBの1つにコ
マンドを送信する。コマンドはMBのPMCEによって
実行され(データの記憶、データの読取りなど)、コマ
ンド応答がMIに戻される。
MIは、MBから受け取った応答を反映した状況データ
と、必要ならばメモリの動作がどのように完了したかを
反映した追加の状況データを作成する。これらの状況デ
ータは、メモリ状況ワードMSW中でMUに転送される
「コマンド」という言葉は、下記の説明ではメモリの高
水準動作に関する要求を表す。この要求は、メモリ・ユ
ーザ/メモリ・インターフェースからメモリ・バンクに
送られ(CREATE,PUT/GET,RELEAS
E,ENQUEUE,DEQUEUEなど)、周知のメ
モリ読取り/書込み動作とは基本的に異なる。
MCWとMSWのコマンド及びコマンド応答のフォーマ
ットについては、後で第4図及び第5図に関して詳しく
説明する。
コマンド処理(提示、フォーマット化など)は、(MI
内の)論理層によって行なわれる。この論理層は、下方
とはMUローカル・メモリに対する読取り/書込みアク
セスを可能にするメモリ・ユーザMUへのインターフェ
ースを有し、上方とは相互接続ネットワークNWへのも
う1つのインターフェースを有する。MI論理及びその
動作の詳細については、後で第6図及び第7図に関して
説明する。
本システムに関して想定されている原理の1つは、記憶
バンク間でのユーザ・データの分散が任意であること、
すなわちメモリ・バンクとユーザとの間の固定した関連
づけや事前割振りは存在しないことに留意されたい。物
理的メモリ割振りは、ユーザにとって透過的である。た
だしこの原理から生じる1つの問題は、メモリ・バンク
が不均等に利用される(負荷される)可能性があること
である。したがって、いくつかのメモリ・バンクが完全
にデータで充填され、他のメモリ・バンクはまったく使
用されないことがあり得る。これは、過密状態、不必要
な待ち時間、並行性の欠如といった結果をもたらす。こ
れらの問題は、記憶すべきすべてのデータに十分な総メ
モリ・スペースが利用できるならば、避けることができ
る。この特定の問題は、前記の関連特許出願第8848
0101.0号で、すべてのメモリ・バンク間での負荷
の均衡を取ることによって解決されているので、本明細
書ではこれ以上は考察しない。
2.パケット・メモリの動作原理 パケット・メモリに含まれているデータ・オブジェクト
及び前記オブジェクトを使って作業を行なう高水準コマ
ンドについて以下に説明する。
パケット・メモリには、レコード(R)と待ち行列(Q
)の2種類のデータ・オブジェクトが含まれる。
レコードは、アドレス可能な内容を持つ、名前をつけら
れた記憶域である。これらの内容は、後で説明する1組
のコマンドを使ってユーザが生成、取消し、書込み及び
読取りを行なう。
レコードは、論理レコード・アドレス(LRA)によっ
て識別される。これは、レコード作成時にメモリ・ユー
ザによって割り振られる。物理的アドレス・スペースは
、第11A図に関して説明する方法でLRAに割り振ら
れる。データ・バイトはレコード内で変位Dの所にある
。レコードの内容は、その所有者が管理する。その内部
のデータが何であるか、及びどこにあるかを知る手がか
りとなるものはPM内には存在しない。レコードの非書
込み区域には、予期しない内容が含まれる。
本発明の特定の実施例では、容量、アクセス時間及びス
ペース所要量が異なる3クラスのレコードがある。クラ
スOのレコードは、最大512バイトまで含むことがで
き、アクセス時間が最短でしかもスペース所要量も最小
でよい。クラス1のレコードは、最大64Kバイトまで
含むことができ、アクセス時間及びスペース所要量は中
程度である。クラス2のレコードは、最大8Mバイトま
で含むことができ、アクセス時間及びスペース所要量が
大きい。レコードのクラスは、その作成時にユーザが指
定する。これは、レコードが最初から512バイト、6
4Mバイトまたは8Mバイトの記憶域を占めることを意
味するわけではない。
メモリ・スペースは、データがレコードに充填されると
きに必要に応じて配分される。
レコードに対して、ユーザは、たとえば512バイトの
固定サイズを持つ物理的データ・バッファの1バイトの
論理アドレスを表す変位Dで指定される論理アドレスの
直線的な連続として認識する。
したがって、ユーザには見えないが、レコードは、第1
0図に関して説明する方式に従ってアセンブルされた、
(たとえば、それぞれ512バイトの)バッファから構
成される。
レコードは、一時データ(すなわち短期間しか存在しな
いデータ)を記憶したり、TPパケット交換などのシス
テム機能を実現するのに使用されるだけでなく、経路指
定表、制御ブロックなどの永続データを記憶するのにも
使用される。
論理レコード・アドレス(LRA)は、4バイトの論理
名で、パケット・メモリ内のレコードを一義的に識別す
る。そのフォーマットは第3A図のとおりである。
レコードを含む物理的PMバンクを識別するサブフィー
ルドがASID(アドレス・スペース識別子)中に存在
する。これは、メモリ・インターフェースMIが適切な
バンクを選択するために使用する。
変位Dは、レコード内のデータ・バイトの位置を決める
。そのフォーマットは第3B図のとおりである。当然、
レコードが長ければ長いほど(そのクラスに応じて)、
変位Dを定義するのに必要なビット数も多くなる。
前述の待ち行列は、複数のレコードにわたって構成され
、したがってそれらのレコードと同じ属性、すなわち名
称、最大サイズを持つ。待ち行列は、8、16、32、
64、128または256バイトの固定サイズ要素で構
成される。要素のサイズは、待ち行列作成時に定義する
。待ち行列のサイズは、レコードのサイズによって制限
される。
本明細書では、待ち行列トークンQTで待ち行列を表す
ことにする。これは実際には基礎レコードの論理レコー
ド・アドレスLARである。
待ち行列へのアクセスは、先入れ先出し方式であり、タ
スク間通信時に特に使用される、後で説明するENQ及
びDEQコマンドを使って行なわれる。
待ち行列を作成するには、基礎レコードを作成し、待ち
行列制御ブロック(QCB)を待ち行列化ポインタ、待
ち行列解除ポインタの初期値、及び待ち行列に入れられ
る要素のサイズに対応する値と共にそこに書き込まなく
てはならない。MUが待ち行列内の現在の要素の数を知
ろうとする場合、GETコマンドを使ってその待ち行列
制御ブロックを読み取ることができる。待ち行列の解除
は、後で説明するRELEASEコマンドを使って基礎
レコードを解放することによって行なう。
QCBのフォーマットは第4B図のとおりである。これ
は、そのアドレスが4バイトを表す待ち行列化ポインタ
E1同様に4バイトのアドレスを持つ待ち行列解除ポイ
ンタD1及び待ち行列内で使用される各要素のサイズ(
8、16、32、64、128、256バイト)が含ま
れる。前記サイズの選択は、最高1バイトを使って指定
する。
ENQ及びDEQコマンドの使用については、第8図を
参照するとよく理解できる。この図は、第1のメモリ・
ユーザMU1が、同じメモリ・バンクMB17に接続さ
れている第2のメモリ・ユーザMU2に、相互接続ネッ
トワーク(図示せず)を介して通信しようとする状況を
設定している。
したがってMU1は、PUTコマンド(ステップ1)を
使ってMB内のレコード(R)にメッセージM1を入れ
る。ただしこの段階では、MU2は、メッセージM1が
MB内に保持されている論理レコード・アドレスの基準
を知ることができない。
したがってMUIは、自分でENQコマンドを使って(
ステップ2) 、MU2にこの標識を与える必要がある
。このコマンドを使用すると、固定サイズ要素m1が、
待ち行列Qの、待ち行列化ポインタEで指示される場所
に入れられる。
他のメッセージM2、M3、・・・がMUIによってM
Bに送られる場合、対応する待ち行列要素m2、m3が
先入れ先出し方式で待ち行列に入れられ(後で解除され
る)、それに応じて待ち行列化ポインタが第9図に示す
ように位置が変わることに留意されたい。
MU2は、待ち行列Qの内容を検査するとき(たとえば
従来のポーリング手法を使って)待ち行列要素m1を待
ち行列から解除し(ステッフ3)、メッセージ・レコー
ドM1の論理アドレスを与える。次に(ステップ4)、
MU2がGETコマンドを実行すると、MU2はレコー
ドM1をすべて読み取ることができる。
このような前述のメモリ・ユーザMUIまたはMU2の
間の通信方式は、特に、前記メモリ・ユーザ間のタスク
間通信に適している。
ENQ/DEQコマンドは待ち行列要素m1、m2、・
・・に関して先入れ先出し方式であるため、前記ENQ
/DEQコマンドによって指定する変位は存在しないこ
とにも留意されたい。
第9図はさらに、待ち行列制御ブロックQCB1及び待
ち行列に入れられているレコードまたはメッセージM1
、M2、・・・の総論理レコード・アドレス(m 1 
、m 2、・・・)のサイズに対応する所定の論理アド
レス・スペース(A,B)を含む待ち行列の構造を示し
ている。
待ち行列化ポインタEの連続する位置E1、E2、・・
・、Enと、連続的に待ち行列化されてb)る対応する
待ち行列要素m1、m2、・・・、mnも示されている
DEQコマンドは、DEQポインタDの後ろにある待ち
行列要素mの削除を行なう。待ち行列のアドレス・スペ
ースは(A,B)によって制限されるので、待ち行列化
ポインタEが位置E,,+一こ達すると、待ち行列化さ
れている待ち行列要素m(n+1)が位置Aの直後の待
ち行列の一番前に置かれる。
一定の時間にわたってENQコマンドよりDEQコマン
ドの方が多く実行された場合、待ち行列解除ポインタD
が待ち行列化ポインタEの現在の位置に達する可能性が
あることに留意されたし)。
これは、QCBによって構成される最小の内容を別にす
れば、その待ち行列が空であるということを意味する。
当然、Eポインタ及びDポインタの位置は、パケット・
メモリ・コマンド・エグゼキュータだけが知っており、
メモリ・ユーザは知らない。したがってメモリ・ユーザ
にとってENQ/DEQコマンドは、CREATE/P
UT/GET/RELEASE高水準コマンドと同様に
透過的である。
最後に、待ち行列の基礎となるレコードは必要に応じて
増えるので、メモリ・ユーザ間で伝送されるメッセージ
の数によって決まる待ち行列のサイズと同じであること
に留意されたい。
さらに、ENQ/DEQコマンドは、基本的CREAT
E/PUT/GET/RELEASEコマンドより精巧
なステップを使用し、やはり高水準コマンドであること
に留意されたい。基本コマンドのフォーマットについて
は以下に説明する。
3.メモリ・インターフェースの諸機能とコマンドのフ
ォーマット メモリ・インターフェースMIの役割は、各メモリ・ユ
ーザMUに対する標準の分散メモリ・イ冫ターフェース
を提供することにある。メモリ・インターフェースMI
は、メモリ・ユーザMUから提示されるメモリ・コマン
ドを次のように取り扱う。(たとえば、負荷均衡化技法
を用いて)適切なメモリ・バンクMBを選択し、相互接
続ネットワークNWを介してそのMBに対する接続をセ
ットアップし、コマンド(データを含むこともある)を
作成してその接続を介して送り、コマンド応答(MBか
らのデータを含む場合もある)を待ち、接続を解除し、
メモリ・ユーザMUに関する完了状況データを生成する
各コマンドは、12バイトのヘッダ(第4A図を参照)
とその後に続く任意選択のデータ・フィールドからなる
。各コマンド応答は、任意のデータ・フィールドとその
後に続く5バイトのトレイラからなる。
コマンドの前には開始区切り文字(SD)がつくことが
あり、後ろにはコマンドの終り区切り文字(EOC)が
つくことがある(図示せず)。
全部で6個のメモリ・コマンドと関連するコマンド応答
が設けられている。これらについて以下に簡単に説明す
る。PMCFによるそれらの実施については、後で第1
0図及び第11図に関して説明する。
CREATE (フォーマット: Cmdのみ)このコ
マンドが所与のMUによって発行されると、共用メモリ
内にRECORD (論理記憶単位)が生成され、それ
に対して論理レコード・アドレス(LRA)が割り振ら
れる。LRAは、共用メモリ内のメモリ・レコードの検
索を可能にするシステム固有の基準である。
このコマンドによって、新しいレコードにメモリ・スペ
ースは割り振られない(まだ記憶すべきデータがない場
合)。
コマンド応答は、LRAを当該のメモリ・インターフェ
ースMIに戻す。
PUT (フォーマット: Cmd,LRA,D,デー
タ) PUTコマンドは、そのコマンドと共に送られたデータ
をそのLRAによって指定されたレコードの指定された
変位Dの所に書き込ませる。(PUTコマンドが実行さ
れるとき)レコードにデータを記憶するのに十分なメモ
リ・スペースが動的に割り振られる。
コマンド応答は、メモリ・インターフェースMIに特定
のデータを戻さない(各コマンド応答内に含まれるリタ
ーン・コードRCは除く)。
GET (フォーマット: Cm+:L  LRA.+
  D+N) GETコマンドは、Nデータのバイトをその(LRA)
によって指定されたレコードの指定された変位Dの所か
ら読み取らせる。
コマンド応答は、メモリ・バンクからメモリ・インター
フェースMIにNデータ・バイトを戻す。
RELEASE (フォーマット: Cmd,LRA) RELEASEコマンドは、LRAによって指定された
レコードを取り消させ、MBの関連メモリ・スペースを
解放させる。
コマンド応答は、特定のデータを含まない(リターン・
コードを除く)。
リターン・コードの構造とロード状況標識リターン・コ
ード(RC)はメモリ・バンクによって戻される各コマ
ンド応答の一部であり、次の構造を有する8ビット・バ
イトである。最初の4ビットRRRRは、当該のメモリ
・コマンドの完了状況を示す特定のコードである。
残りのビットは空で、あるいは所与のメモリ・バンクの
ロード状況を表す標識として使用できる。
ENQ (QT,データ) この高水準言語の効果については、先に第8図及び第9
図に関して説明した。QTは、待ち行列トークンを表す
。これは実際には、待ち行列が作成されるレコードの論
理レコード・アドレスである。
ENQコマンドは、PMCEによって実行されるGET
及びPUTの両コマンドから構成されるいくつかのステ
ップを含む。したがって、メモリ・ユーザMUによって
実行されるPUTコマンドまたはGETコマンドによっ
て、前記コマンドの実行中にPMCFを配布することが
できない。ENQコマンドの各ステップは次のとおりで
ある。
1.PMCEは、GETコマンドを生成する。この場合
、LRAは待ち行列トークンQTに等しく、指定された
変位は、QCB内のEポインタの変位に対応する。
2.PMCEは、PUTコマンドを生成する。この場合
、LRAはQTに等しく、DはQCB内のEの変位に等
し<、PUTされるデータは待ち行列化される待ち行列
要素(m1、m2、・・・)である。
3.PMCEは、PUTコマンドを実行する。この場合
、LRA=QT1D=QCB内のEの変位、データ:E
+32 (待ち行列要素のサイズが32の場合)である
。これはENQコマンド後に待ち行列化ポインタEを更
新させる。
DEQ (QT) このコマンドは、待ち行列から要素mを外すのに使用さ
れる。このコマンドも、パラメータト共に以下に要約し
て示すGET1PUTコマンドを使用する高水準コマン
ドである。
1.GET (LRA=QT;D=0、N=9):全Q
CBの読取りを行なわせる。
2.GET (LRA=QT;D=待ち行列解除ポイン
タの変位;N=32) 3.PUT (LRA=QT ; D=待ち行列解除ポ
インタの変位; D+32) 4.メモリ・スペースの特定バッファの解放:待ち行列
解除されたばかりの要素を含んでいたバツファ0 4.メモリ・ユーザとメモリ制御ブロックメモリ・ユー
ザMUは、主記憶装置を有するマイクロプロセッサとみ
なすことができる。その主記憶装置は、MUローカル・
メモリLM9 1と呼ばれ、第6図に示されている。メ
モリ・コマンドは、共用メモリ(全メモリ・バンクMB
の全セット)とMUローカル・メモリ91の間でデータ
を移動させる。
メモリ・ユーザMUとそのメモリ・インター26一 フェースMIの間の情報交換は、メモリ制御ブロックを
用いて行なわれる。メモリ制御ブロックのフォーマット
は第5図に示されている。
メモリ・コマンドは、メモリ・ユーザMUによって、「
メモリ・コマンド・ワードJ  (MCW)と呼ばれる
制御ブロックとして提示され、メモリ・ユーザMUのロ
ーカル・メモリ内でセットアップされる。MCWは、メ
モリ・コマンドの種類(CREATEX GET,・・
・)を表す制御情報、論理レコード・アドレス(LRA
) 、レコード内のデータ変位(D)、データ・カウン
ト(N)、及びMUローカル・メモリ内のデータ域のア
ドレス(ローカル・メモリ・ポインタLMP)を含む。
完了状況データは、メモリ・ユーザMUに対するメモリ
・インターフェースMIによって、MUローカル・メモ
リ内の制御ブロックとして提示される。状況データは、
コマンドの実行が首尾よくいったか否かに関する情報(
CC)を含む。CREATEコマンドの場合、MSWは
作成されたレコードの論理レコード・アドレスLRAも
含む。
5.メモリ・インターフェース論理回路メモリ・インタ
ーフェース論理回路のプロ・ソク・ダイヤグラムを第6
図に示す。その要素及び構造は次のとおりてある。
MIは基本的に、中央部31、相互接続ネ・ソトワーク
(NW)ポート33、DMA部またはユーザ・ボート3
5、及び制御部37を含む。
中央部31は、ALU41、アキュムレータ・レジスタ
(ACCU)43、ローカル記憶装置L845及びロー
カル記憶アドレス・レジスタLSAR47を含む。Aバ
ス49とBバス51がALUの入力部に接続されており
、結果バス53がALUの出力部に接続されている。L
Sへの入力データは、線55、57及び59を介して転
送され、LSからの出力データは、線61を介して転送
される。
NWボート33は、4個のレジスタと1個のカウンタを
含む。NWデータ入力(NWD I )レジスタ63が
、LS出力線61と両方向NWデータ・バス65の間に
接続されている。LWデータ出力(NWDO)レジスタ
67が、LSデータ入力線55とNWデータ・バス65
の間に接続されている。NW制御入力(NWC I )
レジスタ69が、ALU結果バス53とNW制御入力線
71の間に接続されている。NW制御出力(NWCO)
レジスタ73が、Aバス49とNW出力制御線75の間
に接続されている。NWカウンタ(NWCT)77は、
ALU結果バス53からその入力を受け取る。その内容
は、ネットワークからバイトを受け取ったときに(また
はネットワークにバイトを供給したときに)1だけ増分
(または減分)することができ、またそれがゼロである
かどうか検査することができる。
ユーザ・ボート35は、3個のレジスタと1個のカウン
タを含む。MUデータ入力(MUD I )レジスタ7
9が、LS入力線57と両方向ユーザ・データ・バス8
1の間に接続されている。MUデータ出力(MUDO)
レジスタ83が、LS出力線61とユーザ・データ・バ
ス81の間に接続されている。MUアドレス(MUA)
レジスタ85が、ALU出力バス53とユーザ・アドレ
ス線87の間に接続されている。MUカウンタ(MUC
T)89は、ALU結果バス53からその入力を受け取
る。その内容は、ユーザから1バイト受け取ったときに
(またはユーザへ1バイト供給したときに)1だけ減分
することができ、またそれがゼロかどうか検査すること
ができる。
制御部37は、次のデータまたは制御信号を供給する。
IF=直接フィールド(LSオペランドまたはLSアド
レス) ALUOP=ALU命令コード(Δdd,Subtra
ct1And)Or)Xor)Rotate)・・・) ABS=Aバス発信元 BBS=Bバス発信元 LSOP=LS命令コード(Read, Write1
NOOP) LSA=LSアドレス制御 MI SC−レジスタへの書込み、DMA開始などのた
めのその他の制御。
MI論理回路は次の能力をもつ。
1)MI論理回路は、制御部で生成される直接値(IF
)と、LS位置または制御レジスタの内容の2つのオペ
ランドで算術演算とプール代数演算を行なうことができ
る。
2)MI論理回路は、MUローカル・メモリLM(91
)に対し読取り/書込みアクセスを行なうことができる
。論理メモリ・アドレスとバイト・カウントは、それぞ
れMUアドレス・レジスタ(MUA)及びMUカウント
・レジスタ(MU CT)内で指定される。書込み中の
データ発信元(または読取り中の宛先)は、LSアドレ
ス・レジスタ(LSAR)によってアドレスされるLS
である。
3)MI論理回路は、接続要求とMBアドレス(識別子
)をrNW制御入カレジスタJ  CNWC1)にロー
ドし、「NW制御出力レジスタJ  (NWCO)に戻
される接続許可を待つことによって、相互接続ネットワ
ークNWを介するメモリ・バンクMBへの接続を確立す
ることができる。この接続は、同様にしてNWC Iに
接続解除要求をロードし、NWCOに許可が戻されるの
を待つことによって解除することができる。相互接続ネ
ットワークNWは本発明の主題ではないのでこれ以上は
説明しない(相互接続ネットワークについて記載した文
献については上記の第1節で述べた)。メモリ・バンク
MBに対する接続が確立されると、M1論理回路は、そ
の接続を介して両方向データ転送を行なうことができる
。LSARが値Aに、NWカウント・レジスタ(NWC
T)が値Nにそれぞれ初期設定されていると仮定した場
合、LS(A)にあるNバイトが読み出され、MBに送
られる。このインバウンド・データ転送は、NWCT=
O及びLSAR=A+Nで終了する。次いでMBが、受
信されてアドレスA+Nで始まるLSに記憶されるバイ
ト・ストリングを戻すと考えられる。受け取ったバイト
数は、アウトバウンド転送の完了時にNWCTで利用で
きる。このようにして、コマンド及びコマンド応答が、
メモリ・インターフェースMIとメモリ・バンクMBの
間で交換される。
6.メモリ・インターフェース論理回路によるコマンド
処理 第7図の流れ図は、メモリ・インターフェース(MI)
論理回路内でのコマンド処理中に実行される各ステップ
を示す。具体的にいうと、これは、負荷均衡化技法の重
要な部分であるメモリ利用度(メモリ負荷状況)情報が
メモリ・コマンドの処理中にどのように扱われるかを示
すが、これは本発明にとって重要ではない。
ステップA:MIは、(DMA技法を用いて)ユーザの
ローカル・メモリLM(91)がらメモリ制御ワードM
CWを読み取り、それ自体のローカル記憶装置LS内に
MCWを記憶する。次にMIはそのコマンドを復号する
。コマンドがCREATEコマンドか否かに応じて、次
に2つの異なるステップのうちの一方がとられる。
ステップB 1 (Cmd=CREATE):負荷均衡
化技法に応じてメモリ・バンクの1つが選択される(第
7節で説明する選択)。現メモリ・バンクを表すCMB
変数(以下で説明)がセットアップされる。
ステップB2 (Cmd=CREATE以外のコマンド
):このコマンドに使用されるメモリ・バンクMBは、
MCWのLRAフィールドによって決定される(以下の
第7b節参照)。(現メモリ・バンクを表す)CMB変
数がセットアップされる。
ステップC:MIは、相互接続ネットワークNWを介す
る現CMBによって表されるメモリ・バンクへの接続を
確立する。コマンドはローカル記憶装置LSでセットア
ップされる(これは本発明にとって重要ではないのでこ
こでは詳しく説明しない)。LS内のコマンドの開始ア
ドレスがLSARに入力され、コマンドのバイト・カウ
ントがレジスタNWCTにロードされる。次にコマンド
が選択されたメモリ・バンクMBに送られる。MBから
コマンド応答が戻されるのを待つ。
ステップD:コマンド応答がMI内で受け取られると処
理される(これは本発明にとって重要ではないので詳し
くは説明しない)。
ステップE:次にMIは(コマンド応答と共に受け取っ
た情報を使って)そのローカル記憶装置LS内でメモリ
状況ワードMSWをセットアップする。次にMIは、M
SWが開始するLSアドレスをLSARにロードし、M
SWのバイト・カウントをカウンタMUCTにロードし
、LSからのMSWをユーザのローカル・メモリにコピ
ーする。
最後に、相互接続ネットワークを介するMBへの接続が
解除される。
7.メモリ・インターフェースによるメモリ・バンクの
選択 メモリ・インターフェースMIがメモリ・コマンドを実
行するためにメモリ・バンクMBを選択しなくてはなら
ない状況が2つある。(a)CREATEコマンドの場
合、新しいメモリ・バンクを選択しな《ではならない。
(b)その他のすべてのメモリ・コマンドの場合、メモ
リ・バンクが(LRAパラメータから)わかっており、
MIはこのMBをただちに識別することができる。
a)負荷均衡化技法によるMBの選択 新しいレコードを作成するためのメモリ・バンクMBの
選択は、負荷均衡化技法によって行なうことが好ましい
。この技法は、前に説明したように各メモリ・インター
フェースMI内で利用できるメモリ負荷状況に関する知
識を利用するものである。負荷均衡化技法は、関連特許
出願第88480101.0号の対象であるので、ここ
ではこれ以上説明しないことにする。
CREATEコマンドでMBによって戻されるLRAは
32ビット識別子である。その識別子のビット8、9及
び10に、MBを指定するコードが含まれる(000は
MB番号Oを表し、OO1はMB番号工を表し、以下同
様である)。
したがって、MI論理回路は、どのMBに対して接続を
確立すべきかを知っている。
CREATE以外のコマンドの場合にMBを選択するに
は、(前のCREATEコマンド中にLS内でコピーさ
れたばかりの”)MCW内のLRAフィールドを識別し
、そのうちビット8ないし10を抽出し、この3ビット
・コードをCMB内で使用される8ビット・フォーマッ
トに変換し、得られた値をCMBにロードする。これは
きわめて簡単な装置によって行なわれるので、これ以上
は説明しない。
8.PMCEの構造 第10図は、メモリ・バンクのPMCE12及びデータ
・メモリ103部RAW  MEMORYの全体構造を
示す。
メモリ・ユーザ11、メモリ・インターフェースMI1
3、相互接続ネットワークNW15及び第6図に関して
説明したものと類似のネットワーク・ボート33も、デ
ータ・メモリ103、PMCE12及び第1図に示され
ている残りの装置との間の連結を示すために概略的に表
してある。
PMCEは基本的に、メモリ・ユーザによって供給され
る高水準コマンドを処理するためのマイクロプロセッサ
101を含む。高水準コマンドの処理は、プログラム・
メモリ117に内蔵されているマイクロプログラムによ
って行なわれる。コマンド依存マイクロプログラムの各
ステップについては後で説明する。
PMCE12は、さらにマイクロプロセッサのデータ・
バス104、アドレス・バス106及び制御バス108
に接続されたローカル記憶装置LS113を含む。それ
らのバスはデータ・メモリ103及びネットワーク・ボ
ート33と並列に設けられる。ローカル記憶装置LS1
13は実際には2ボート・メモリであり、その第2ポー
トによリ、テータ・バス110、アドレス・バス112
及び読取り/書込みコマンド・リード114を介してネ
ットワーク・ボート33に接続されている。
最後に、NWポート33には、入力アドレス・カウンタ
IAC119が含まれる。カウンタIACの状況は、リ
ード116を介して、マイクロプロセッサ101によっ
て読み取られる。
この構造に関して、次にPMCE 1 2の動作を説明
する。
9.PMCEの動作原理 メモリ・ユーザMU11がMI13、MW15及びNW
ボート33を介してローカル記憶装置113に高水準コ
マンドを送るとき、このコマンドはデータ・バス110
に供給され、LSのアドレス・バス112で指定される
アドレスに書き込まれる。伝送された高水準コマンドが
、たとえば12バイトのコマンド・ヘッダとデータ・メ
モリ103に転送されるNバイトのデータを含むPUT
コマンドである場合、コマンド識別コードを含むヘッダ
がバス102を介して直接マイクロプロセッサ101に
送られる。したがって、マイクロプロセッサ101は、
処理すべき高水準言語があることを通知され、どの高水
準言語を受け取ったか判定するために前記コマンド・ヘ
ッダが復号される。
それがPUTである場合、NバイトのデータがNWボー
ト33及びバス102及び104によってローカル記憶
装置LS113に送られる。NWボート33は、第6図
に関して説明したNWボートとは異なり、従属ボートと
して働く。
その間に、LS113が受け取ったバイト数が、入力ア
ドレス・カウンタIAC119によってカウントされ、
データ・メモリ・バッファ115が満杯になるのに十分
な所定のバイト数が送信された場合には、コマンド・リ
ード118を介してマイクロプロセッサ101が通知を
受ける。そうすると、マイクロプロセッサは、データ・
メモリ103に向けて、LS113に記憶されている受
信済データ・バイトの転送を開始する。高水準コマンド
がたとえばPUTの場合、マイクロプロセッサは、バス
104、106、108を介してLS113からPUT
コマンドに付随するNバイトのデータを読み取り、デー
タ・メモリ内のPUTコマンド内で指定された論理レコ
ード・アドレスに対応するアドレスにデータを転送する
。データ・バイトがデータ・メモリ103に記憶される
バッファ115の物理アドレスは、論理レコード・アド
レスの知識からスタートして物理バッファ・アドレスを
決定するアドレス変換機構によって決定される。この変
換機構についてはさらに詳しく説明する。
コマンドの終り(EOC)区切り文字を待ち、入力アド
レス・カウンタIAC119がデータ・バッファが満杯
になるのに十分なバイトをカウントし終える前にNWボ
ート内でEOCが復号されても、LS113内に記憶さ
れているコマンドのデータ・バイトは、マイクロプロセ
・ソサ101によってデータ・メモリ103に転送され
る。マイクロプロセッサは、リード118を介してNW
ボート33によってEOCの到着を通知される。IAC
119によってリード118が正常に活動される前にE
OCが検出された場合は、512/’イトのデータ・メ
モリ103のデータ・ノく・ソファ115が満杯になる
のに十分なデータ・バイトがPUTコマンド(LS内に
記憶される)に存在しないことを意味するにすぎない。
PUTコマンド内のデータ・バイトがデータ・メモリ1
03に送られた後、マイクロプロセ・ンサは、LS11
3にコマンド応答(そのフオーマ・ソトは第4A図に示
す)を記憶し、メモリ・ユーザMU11に、(制御バス
103、116を介して)ローカル記憶装置LS113
からコマンド応答を得るよう要求する。
PUTコマンドに関して説明したPMCE 1 2要素
の動作はGETコマンドの場合に酷似していることに留
意されたい。このコマンドの場合、データ・バイトの流
れが逆になる。したがって、GETコマンドの場合のP
MCEの動作については完全な説明を行なわないが、P
UTコマンドに関する説明を読めば容易に推測できる。
さらに、データ・バイトの転送を含まないCREATE
コマンドまたはRELEASEコマンドの場合のPMC
B動作については後で要約する(第11節)。
10.データ・メモリの構造 データ・メモリ103には、データ・バッファを含む第
1のセクション103a (たとえば512バイトの内
容を含むバッファ1個)と、メモリ管理表107、10
9、111を含む第2のセクシロン103bが含まれる
。前記メモリ管理表に42一 は、各LRAにつき1個のエントリがある論理レコード
・ディレクトリ107が含まれ、このエントリ内に、レ
コード内の変位値に対応する物理アドレスを指示するの
に必要なすべての情報が供給される。メモリ管理表には
また、空きバッファ・リスト109と空きトークン・リ
ストFTL111が含まれる。これらはすべてRAMメ
モリによって実現される。本発明の典型的な実施態様で
は、LRAディレクトリ107、FBL109及びFT
L111に使用されるメモリ・スペースは、大域データ
・メモリ103の約5%である。
次にLRAディレクトリ107、FBL109及びFT
L 1 1 1の構造と使い方について、前記装置を使
用する関連する高水準コマンドに関して説明する。
第11A図に示すようなLRAディレクトリ107は論
理/物理アドレス変換に使用される。
最大64キロバイトのデータまたは512バイトのバッ
ファ128個を含むクラス1レコードの場合、LRAデ
ィレクトリ(107)は、各LRAごとに1つのポイン
タPTRを含む。このポインタPTRは、それぞれ1バ
イトの128個の基本ポインタPOないしP127から
なる。これらの基本ポインタは、バッファBOないしB
127の物理アドレスをもたらす。これは実際にはそれ
らの最初のバイトの物理アドレスである。
したがって、バッファBOに対応する第1のポインタP
O(第10図を参照)はまた、論理レコード・アドレス
LRA内の変位D=OないしD=511に対応し、第2
のポインタP1は、LRA内の変位D512ないし10
23に対応し、以下同様である。
したがって、論理レコード・アドレスLRA及び変位D
によって高水準コマンド内で定義される1バイトの情報
に関して、バッファ内の情報バイトの物理アドレスは、
変位Dを512(バ、ソファの長さ)で割った余りによ
って与えられる。この被除数はバッファ・ポインタPO
ないしP127のランクである。
さらに、バッファ・ポインタPi (i=oないし12
7)がooooooooバイトに等しい場合は、対応す
る変位をサポートできるだけのバッファが割り振られて
いないことを意味することに留意されたい。
空きバッファ・リストFBL109は、バッファの割振
りに使用され、第11B図に関して説明する。メモリ・
バンクの内容が4メガバイトで、512バイトのバッフ
ァに区分されている場合、空きバッファ・リストは、初
期設定時に8000個の空きバッファを含むことになる
。これら8000個のバッファのアドレスは、4バイト
のアドレス・ワードによって与えられ、FBLは動作中
に32キロバイトのサイズとなる。
第1の空きバッファのアドレスは、空キバッファ・ポイ
ンタFBPによって与えられる。これは、次のバッファ
割振りによってレコードに割り振られるバッファのアド
レスを指示する。このバッファが割り振られると、ポイ
ンタはFBP ’の位置に移動し、データ・メモリ10
3内の次の空きバッファのアドレスを指示する。したが
って、以一45 前に割り振られた(現在使用中の)バッファのアドレス
は、すでにFBL内には存在せず、したがって所与のバ
ッファが2度割り振られることはない。
本発明によれば、所与の高水準コマンドに対応する物理
データ・バッファB1、B2、B3、・・・は、テータ
・バッファ・セクション103の任意の場所に置くこと
ができる。ただし、前記バッファは、決められたユーザ
に割り振られるときには必ず空き状態でなくてはならな
い。
空きトークン・リストFTLIIIは、レコードに論理
アドレス(すなわちトークン)を割り振るのに使用され
、これについては第11C図に関して説明する。FTL
111は所与の瞬間に空いている4バイトの論理レコー
ド・アドレスの集合を含むメモリ要素である。FTL1
11のバイト単位で表したサイズは、バンク・サイズ(
バイト単位)をレコード内の最小バイト数(512バイ
トまたは1バッファ・サイズ)で割り、4を掛けた結果
によって与えられる。4を掛けるのはLRAが4バイト
にわたっているためである。
一46 論理レコード・アドレスのスタックの最初の空きLRA
は、空きトークン・リスト・ポインタ(FTLP)によ
って指示される。たとえばCREATEコマンド用に新
しいLRAが必要になると、FTLPによって指示され
るLRAが読み取られ、新しいレコードの作成に用いら
れる。次にFTLPがFTLP“で更新され、LRAの
スタックの一番上に移される。
所与のLRAが複数の物理レコードに与えられないよう
に、LRAは共用メモリ全体に対して一義的なものでな
くてはならないことに留意されたい。したがってFTL
111内に記憶されている各空きLRAの最初の3ビッ
トは、メモリ・バンク番号(8つのうちの1つ)を示し
、4バイトの残り部分は、所与のバンク内の論理レコー
ド・アドレスを識別する。
11.PMCEによる高水準コマンドの実行前述のよう
なPMCE12及びデータ・メモリ103の構造に関し
て、高水準コマンドを実行するためマイクロプロセッサ
101によって実行されるルーチンの各ステップを次に
要約する。
CREATEコマンド 1.メモリに記憶するレコードに論理レコード・アドレ
スLRAを割り振る。
2.前記LRAを含む応答ワード(第4A図を参照)を
セットアップし、これをネットワーク・ボート33に伝
送する。
3.応答ワードをメモリ・ユーザMUに送信させるネッ
トワーク・ボート33を始動する。
4.脱出する。
RELEASEコマンド RELEASEコマンドは、LRA自体及びその影響を
受ける物理メモリ・バッファのすべてを解除しなくては
ならない。第11A図に関して説明したように、使用中
のバッファは、バイトO(たとえば8つのゼロを含む)
とは異なるポインタPi(i二〇ないし127)によっ
て認識される。したがって、すべてのバッファを解放す
るには、LRAによってアドレスされる128バイトの
ポインタのすべてのポインタPiに0バイトを書き込む
必要がある。さらに、LRAを解放するには、空きトー
クン・リスト111(第11C図を参照)の一番上に前
記LRAを加えなくてはならない。以下にそのステップ
を要約する。
1.解放すべきLRAを使ってLRAディレクトリにア
クセスする。
2.LRAディレクトリのLRAで指示されるアドレス
に、すべてのPiについてPi=Oを書き込んで、LR
Aに割り振られたすべてのバッファを解放する。
3.空きトークン・リスト111の一番上にLRAを書
き込む。これにより、目的とするLRAが解放され、新
しいレコードに使用できるようになる。
PUTコマンド これは、LRA,変位、及びNバイトのデータを転送さ
せる。そのステップを次に要約する。
1.LRA及びDを物理アドレスに変換する。
2.LRAにバッファが割り振られているかどうか検査
する。
(たとえば:Pi7!すべて0) 2.a.ノーの場合はLRAにバッファを割り振る。
2.b.イエスの場合は、IAC119またはEOCを
検査する。
これは、LS113内に十分なデータが存在しているか
(IAC)、またはPUTコマンドに対応するすべての
データ・バイトがそこに存在するか(EOC)を検査す
る。
3,すべてのデータ・バイトをLS113がら以前に割
り振られたバッファに移す。
4.DをD′に更新する。ただしD ’ =LRAによ
って指定されるレコードの次のバッファの最初のバイト
の変位である。
5.EOCを受信したかどうか検査する。
5.a.ノーの場合、1に戻って(LRA,D“)を物
理アドレスに変換する。
6.b. イエスの場合、PUTコマンドへの5バイト
の応答ワードをLS113 内で生成する。
50 一 6.メモリ・ユーザへの応答を送るためNWボート33
を始動する。
7.脱出する。
GETコマンド これは、LRA,変位D1及びN個のバイトをデータ・
メモリ103から獲得させる。実行されるステップは次
のとおりである。
1。LRA1Dを物理アドレスに変換する。
2.物理アドレスが、少なくとも1つの割り振られたバ
ッファに対応しているかどうか検査する。
2.a.ノーの場合、エラー標識を生成する。
これは、前のCREATEコマンド によってバッファが割り振られてい なくてはならないからである。
2.b.イエスの場合、3へ進む。
3.データ・メモリから1バッファをローカル記憶装置
LS113へ移す。
4.変位DをD“に更新する。
5.データ・バイト・カウントがすべてなくなったかど
うか検査する。
5.a.ノーの場合、1へ戻る(D’を物理アドレスに
変換しなくてはならな い。) 5.b.イエスの場合、GETコマンドへの5バイトの
コマンド応答ワードを生 成する。
6.メモリ・ユーザに応答を送るためNWボート33を
始動する。
7.脱山する。
E.発明の効果 本発明により、メモリ内の情報の物理的位置に対する透
過性が最適のレベルで、ユーザまたはマルチプロセッサ
が共用メモリを介して通信を行なえるような形で、マル
チプロセッサ環境で単純かつ融通性のあるメモリ・アク
セスを行なえる共用知能メモリが実現された。
【図面の簡単な説明】
第1図は、本発明が使用される、共用記憶装置を備えた
複数ユーザ・システムの全機器構成のブロック図である
。 第2図は、第1図のシステムにおけるメモリ・アクセス
に関する情報の流れ及びステップ・シーケンスを示す説
明図である。 第3A図は、論理レコード・アドレス(LRA)のフォ
ーマットを示す説明図である。 第3B図は、レコード内の変位Dのフォーマットを示す
説明図である。 第4A図は、第1図のシステムで記憶動作に使用される
コマンド及びコマンド応答のフォーマットを示す説明図
である。 第4B図は、第4A図に示したコマンドの一部で使用さ
れる待ち行列制御ブロックのフォーマットを示す説明図
である。 第5図は、ユーザのローカル・メモリに記憶され、ユー
ザとそのメモリ・インターフェースの間での情報転送に
使用される、メモリ制御ブロックのフォーマットを示す
説明図である。 第6図は、第1図のシステム内でユーザと共用メモリを
相互接続するメモリ・インターフェース(MI)のブロ
ック図である。 第7図は、メモリ・インターフェース論理回路内でのメ
モリ・コマンド処理の流れ図である。 第8図は、ENQまたはDEQコマンドの動作原理の概
略説明図である。 第9図は、第8図のENQ/DEQコマンドが実行され
る待ち行列の概略説明図である。 第10図は、パケット・メモリ・コマンド・エグゼキュ
ータとメモリ・バンク内のデータ・メモリのブロック図
である。 第11A図は、論理/物理アドレス変換に使用されるL
RAディレクトリの概略説明図である。 第11B図は、第10図に示す空きバッファ・リストF
BLの概略説明図である。 第11C図は、第10図に示す空きトークン・リストF
TLの概略説明図である。 11・・・・メモリ・ユーザ(MU)、12・・・・パ
ケット・メモリ・コマンド・エグゼキュータ(PMCE
)、13・・・・メモリ・インターフェース(MI)、
15・・・・相互接続ネットワーク(N一54= W) 17・・・・共用メモリ (PM) 17A〜1 7N・・・・メモリ バンク (MB)

Claims (1)

  1. 【特許請求の範囲】 大域共用メモリ・スペースを定義する複数のメモリ・バ
    ンクを含む、相互接続ネットワークを介して共用メモリ
    に連結された複数のメモリ・ユーザのプロセッサを相互
    接続するための装置であって、 *前記メモリ・スペースにレコードを記憶し、またはそ
    こからレコードを検索するためにメモリ・ユーザによっ
    て発行され、前記レコードの論理アドレスのみを使用す
    る1組の高水準コマンドを、前記ネットワークを介して
    前記メモリ・バンクに提示するための手段と、 *各メモリ・バンクに組み込まれた、論理アドレスに応
    じて前記レコードの物理アドレスを検索し、前記高水準
    コマンドを実行するための手段とを含むプロセッサ相互
    接続装置。
JP1299885A 1988-12-23 1989-11-20 プロセツサ相互接続装置 Granted JPH02238552A (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
EP88480102.8 1988-12-23
EP88480102A EP0374338B1 (en) 1988-12-23 1988-12-23 Shared intelligent memory for the interconnection of distributed micro processors

Publications (2)

Publication Number Publication Date
JPH02238552A true JPH02238552A (ja) 1990-09-20
JPH0587854B2 JPH0587854B2 (ja) 1993-12-20

Family

ID=8200509

Family Applications (1)

Application Number Title Priority Date Filing Date
JP1299885A Granted JPH02238552A (ja) 1988-12-23 1989-11-20 プロセツサ相互接続装置

Country Status (4)

Country Link
US (1) US5148527A (ja)
EP (1) EP0374338B1 (ja)
JP (1) JPH02238552A (ja)
DE (1) DE3853162T2 (ja)

Families Citing this family (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5251097A (en) * 1990-06-11 1993-10-05 Supercomputer Systems Limited Partnership Packaging architecture for a highly parallel multiprocessor system
US5404511A (en) * 1992-06-26 1995-04-04 U.S. Philips Corporation Compact disc player with fragment memory management
US5465351A (en) * 1992-08-14 1995-11-07 Noblenet Inc. Client-side memory management process for client-server computing
EP0622922B1 (en) * 1993-04-29 2000-11-29 International Business Machines Corporation Method and device of multicasting data in a communications system
US5787300A (en) * 1993-11-10 1998-07-28 Oracle Corporation Method and apparatus for interprocess communications in a database environment
US5613068A (en) * 1994-06-17 1997-03-18 International Business Machines Corporation Method for transferring data between processors on a network by establishing an address space for each processor in each other processor's
US5915131A (en) * 1995-05-05 1999-06-22 Apple Computer, Inc. Method and apparatus for handling I/O requests utilizing separate programming interfaces to access separate I/O services
US5794033A (en) * 1995-10-24 1998-08-11 International Business Machines Corporation Method and system for in-site and on-line reprogramming of hardware logics with remote loading in a network device
US6041379A (en) * 1996-10-04 2000-03-21 Northrop Grumman Corporation Processor interface for a distributed memory addressing system
US6094699A (en) * 1998-02-13 2000-07-25 Mylex Corporation Apparatus and method for coupling devices to a PCI-to-PCI bridge in an intelligent I/O controller
EP1067461B1 (en) * 1999-07-08 2013-04-24 Texas Instruments France Unified memory management system for multi process heterogeneous architecture
FR2797970A1 (fr) * 1999-08-31 2001-03-02 Koninkl Philips Electronics Nv Adressage d'une memoire
US7509391B1 (en) 1999-11-23 2009-03-24 Texas Instruments Incorporated Unified memory management system for multi processor heterogeneous architecture
US6981027B1 (en) 2000-04-10 2005-12-27 International Business Machines Corporation Method and system for memory management in a network processing system
AU2001258545A1 (en) * 2000-05-19 2001-11-26 Neale Bremner Smith Distributed processing multi-processor computer
US7047370B1 (en) * 2003-01-14 2006-05-16 Cisco Technology, Inc. Full access to memory interfaces via remote request
US9727452B2 (en) * 2007-12-14 2017-08-08 Virident Systems, Llc Distributing metadata across multiple different disruption regions within an asymmetric memory system
CN103034544B (zh) * 2012-12-04 2015-08-05 杭州迪普科技有限公司 一种用户态与内核态共享内存的管理方法和装置
US11513799B2 (en) * 2019-11-04 2022-11-29 Apple Inc. Chained buffers in neural network processor

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3718005A (en) * 1970-03-25 1973-02-27 Airco Inc Reactivated low temperature adsorber system with a non-adsorbing cold accumulator
US4074254A (en) * 1976-07-22 1978-02-14 International Business Machines Corporation Xy addressable and updateable compressed video refresh buffer for digital tv display
US4707781A (en) * 1979-01-09 1987-11-17 Chopp Computer Corp. Shared memory computer method and apparatus
JPS60181942A (ja) * 1984-02-29 1985-09-17 Fujitsu Ltd メモリ制御装置
GB8408444D0 (en) * 1984-04-02 1984-05-10 Hemdal G Computer systems
US4710868A (en) * 1984-06-29 1987-12-01 International Business Machines Corporation Interconnect scheme for shared memory local networks
US4754395A (en) * 1985-05-06 1988-06-28 Computer X, Inc. Network interface module with minimized data paths
US4694396A (en) * 1985-05-06 1987-09-15 Computer X, Inc. Method of inter-process communication in a distributed data processing system
US5014192A (en) * 1985-05-06 1991-05-07 Motorola Computer X, Inc. System for locating a file in a logical ring by sequentially forwarding access request with file system name and file name
CA1292078C (en) * 1987-01-05 1991-11-12 Gabor Simor Process traps in a distributed message-based operating system

Also Published As

Publication number Publication date
DE3853162T2 (de) 1995-08-17
JPH0587854B2 (ja) 1993-12-20
EP0374338B1 (en) 1995-02-22
DE3853162D1 (de) 1995-03-30
EP0374338A1 (en) 1990-06-27
US5148527A (en) 1992-09-15

Similar Documents

Publication Publication Date Title
JPH02238552A (ja) プロセツサ相互接続装置
US4128882A (en) Packet memory system with hierarchical structure
US4354232A (en) Cache memory command buffer circuit
US6622193B1 (en) Method and apparatus for synchronizing interrupts in a message passing queue oriented bus system
US6631462B1 (en) Memory shared between processing threads
US20060064508A1 (en) Method and system to store and retrieve message packet data in a communications network
JPH11175454A (ja) 自動直接メモリ・アクセス機能を備えたコンピュータ・システム
JPH11175455A (ja) コンピュータ・システムにおける通信方法及び装置
JPH06187298A (ja) データ転送処理方法及びデータ転送処理装置
US5446844A (en) Peripheral memory interface controller as a cache for a large data processing system
JPS5938620B2 (ja) メモリ−コントロ−ラ用優先順位指定装置
US8661223B1 (en) Buffer management architecture
US5572697A (en) Apparatus for recovering lost buffer contents in a data processing system
US5944788A (en) Message transfer system and control method for multiple sending and receiving modules in a network supporting hardware and software emulated modules
CN114827048A (zh) 一种动态可配高性能队列调度方法、系统、处理器及协议
EP0374337B1 (en) Load balancing technique in shared memory with distributed structure
US10740256B2 (en) Re-ordering buffer for a digital multi-processor system with configurable, scalable, distributed job manager
US9804959B2 (en) In-flight packet processing
US9703739B2 (en) Return available PPI credits command
US5999969A (en) Interrupt handling system for message transfers in network having mixed hardware and software emulated modules
US5983266A (en) Control method for message communication in network supporting software emulated modules and hardware implemented modules
TWI696070B (zh) 記憶體系統及在網路裝置中實施該記憶體系統之方法,以及網路裝置
JP2001067298A (ja) ハブ及びポート・アーキテクチャーを有する転送制御装置における低速ポートについての障害を防止するための書込み要求キューの使用
JPH0887478A (ja) プロセス間メッセージ通信方法
US5842003A (en) Auxiliary message arbitrator for digital message transfer system in network of hardware modules

Legal Events

Date Code Title Description
R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

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

Free format text: PAYMENT UNTIL: 20071220

Year of fee payment: 14

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

Free format text: PAYMENT UNTIL: 20081220

Year of fee payment: 15

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

Free format text: PAYMENT UNTIL: 20091220

Year of fee payment: 16

EXPY Cancellation because of completion of term