JPH0581939B2 - - Google Patents

Info

Publication number
JPH0581939B2
JPH0581939B2 JP32860889A JP32860889A JPH0581939B2 JP H0581939 B2 JPH0581939 B2 JP H0581939B2 JP 32860889 A JP32860889 A JP 32860889A JP 32860889 A JP32860889 A JP 32860889A JP H0581939 B2 JPH0581939 B2 JP H0581939B2
Authority
JP
Japan
Prior art keywords
memory
command
load
storage
user
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 - Lifetime
Application number
JP32860889A
Other languages
English (en)
Other versions
JPH02259944A (ja
Inventor
Hohorute Andore
Toranngia Hyuotsuku
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 JPH02259944A publication Critical patent/JPH02259944A/ja
Publication of JPH0581939B2 publication Critical patent/JPH0581939B2/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/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5011Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
    • G06F9/5016Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals the resource being the memory
    • 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/1657Access to multiple memories
    • 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

Description

【発明の詳細な説明】 A 産業上の利用分野 本発明は、複数のユーザが、個別にアクセス可
能な複数のメモリ・モジユール(メモリ・バン
ク)からなる共通のまたは共用のメモリにアクセ
スできるというシステムに関し、より詳細には、
全メモリ・モジユール間で負荷、すなわち記憶装
置利用度の均衡をとる方法に関する。
B 従来の技術 プロセツサ、入出力装置、バツフア等、複数の
共用資源を有するシステムでは、システムの性能
を最適化するため、資源相互用の負荷すなわち利
用度の均衡をとることが重要である。複数の装置
間で利用度の均衡をとるための解決策は、下記の
特許明細書及び発表論文のリストに反映されてい
るように、いくつも提案されている。
米国特許第3702006号「入出力装置の利用度の
均衡をとる方法(Method for Balancing the
Utilization of Input/Output Devices)」;米国
特許第4403286号「データ処理作業負荷の均衡化
(Balancing Data−Processing Workloads)」;
米国特許第4633387号「複数ユニツト・システム
における負荷の均衡化(Load Balancing in a
Multiunit System)」 IBMテクニカル・デイスクロージヤ・ブルテ
ンの発表論文:J.A.マクローリン(McLoughlin)
「緩衝周辺サブシステムの負荷の均衡化(Load
Balancing Buffered Peripheral Subsystem)」、
Vol.24、No.1B(1981年6月)、pp.707〜709、D.C
コール(Cole)他、(緩衝周辺システムの再較正
(Recalibrating Buffer Peripheral Systems)」、
Vol.24、No.2(1981年7月)、pp.1041〜1042;G.
Aマツクレーン(McClain)他、「入出力用多重
利用度閾値制御(Multiple Utilization
Threshold Control for I/O)、」;Vol.24、No.
3(1981年8月)、P.1406;D.W.ボルトン
(Bolton)他、「共用記憶装置における実/仮想
組合せ固定サイズ緩衝機構 (Combined Real−Virtual Fixed−Size
Buffer Mechanism in Shared Storage)」、
Vol.27、No.4B(1984年9月)、pp.2655〜2660。
これらの既知のすべての解決策では、負荷また
は利用度状況に関する情報を保持するために中央
で保管するレコードが必要であり、あるいは必要
な情報を獲得し、負荷均衡化のために制御を行な
うための中央処理が実施されており、その上、負
荷状況または関係する制御情報あるいはその両方
を収集または分配するために、特別の転送を実施
しなければならない。
均衡化情報を中央で記憶または処理すると、同
時に多数のトランザクシヨンが行なわれるとき、
混雑が生じる恐れがあり、また当該の装置が故障
した場合は害があり、また追加のデータ転送が必
要なために性能が低下する。さらに、所与の構成
に対して集中更新手段が設計されている場合に
は、システムのモジユール式拡張が不可能になる
こともある。
C 発明が解決しようとする課題 本発明の主目的は、複数のユーザ用の共用記憶
装置を形成する複数の記憶モジユール間の負荷
を、完全に分散式に均衡をとるための技術を考案
することにある。
本発明の他の目的は、負荷状況情報を交換する
ために特別のデータ転送を必要としない、共用の
モジユール式メモリ用の負荷均衡化技術を提供す
ることにある。
本発明の他の目的は、ユーザの装置、そのイン
ターフエースと接続機構、または共通に使用され
る装置に変更や修正を加える必要なしに、メモ
リ・モジユールまたはメモリ・バンクの数をモジ
ユール式に拡張できる、メモリ負荷均衡化機構を
考案することにある。
D 課題を解決するための手段 上記の目的は、前記の特許請求の範囲に定義す
る共用メモリ負荷均衡化の方法によつて達成され
る。
本発明は、各ユーザ装置にメモリ負荷状況マツ
プを設けることにより、最小の追加動作で追加の
情報転送なしに、記憶装置の負荷の均衡をとるこ
とができる。更新の際には、メモリ・バンクから
ユーザ装置へ何らかの方法で頻繁に転送されるコ
マンド回答をキヤリアとして使用することによ
り、個々の情報の転送は不要である。
E 実施例 1 システムの概要 第1図に、本発明が適用されるシステムの構成
を示す。原理的には、これは、複数のユーザが、
全ユーザ用の共通(または共用)メモリとして機
能する複数のメモリ・バンク(メモリ・モジユー
ル)に接続されているシステムである。こうした
装置は、例えば通信制御装置で使用されている。
各メモリ・ユーザMU11A,11B,…11
Nは、それ自身のメモリ・インタフエースMI1
3A,13B,…13Nを介して共通の相互接続
ネツトワークNW15に接続されている。メモ
リ・バンクMB17A,17B,…17Nは同じ
装置であり、相互接続ネツトワークに個別に接続
されている。
相互接続ネツトワークは、複数ポート・パケツ
ト交換機であり、そのポートの1つにデータ・パ
ケツトが入るのに応答して、それらのパケツトを
必要とされる出力ポートに経路指定することがで
きる。こうしたネツトワークは既知であり、例え
ば下記の発表論文及びその中に引用されている参
照文献に記載されている。T.フエン(Feng)「相
互接続ネツトワークの調査(A Servey of
Interconnection Networks)」、IEEE
Computer、1981年12月号、pp.12〜30;V.P.クマ
ル(Kumar)他「増補シヤフル交換多段相互接
続ネツトワーク(Augmented shuffle−
Exchange Multistage Interconnection
Networks)」、IEEE Compuer、1987年6月号、
pp.30〜40。
この全体配置の利点は、(相互接続ネツトワー
クが十分な容量とポートを有する限り)モジユー
ル式に拡張できることである。ユーザの数及びそ
の必要記憶容量に合わせて、メモリ・バンクの数
を変えることができる。
メモリ・アクセス用のコマンド及び制御情報の
全体的流れを、第2図に概略図として示す。
メモリ、ユーザMUは、所望の動作を指定しパ
ラメータを含む、メモリ制御ワードMCWを作成
する。MCWはメモリ・インタフエースMIに転
送される。MIは、コマンド要求を処理し、メモ
リ・バンクMBの1つにコマンドを送る。コマン
ドはMBで実行(データの記憶、データの読取り
等)され、コマンド応答がMIに戻される。MI
は、MBから受け取つた応答を反映する状況デー
タと、恐らくはメモリ動作がどのように完了した
かを反映する追加の状況データを作成し、これら
の状況データは、メモリ状況ワードMSW中で
MUに転送される。
以下の説明では、「コマンド」の語は、実際に
はメモリ・ユーザ/メモリ・インタフエースから
メモリ・バンクに送られる、メモリ動作の要求
(CREATEコマンド、PUTコマンド等)を指す
ものとする。
MCW及びMSWのコマンド及びコマンド応答
のフオーマツトについては、後で第3図及び第4
図に関して説明する。
コマンドの処理は、(MI中の)論理層によつて
行なわれる。論理層は、下方にMUのローカル・
メモリへの読取り/書込みアクセスを可能にする
メモリ・ユーザとのインタフエースを有し、上方
に相互接続ネツトワークNWとの別のインタフエ
ースを有する。MI論理層とその動作の詳細につ
いては、後で第5図及び第6図に関して説明す
る。
本システムに関して仮定する1つの原理は、メ
モリ・バンク間でのユーザ・データの分配が任意
であることである。すなわち、メモリ・バンクと
ユーザの間に固定した関連あるいは事前割当ては
ない。この原理から生じる1つの問題は、メモ
リ・バンクの利用(負荷)が不均等になる恐れの
あることである。すなわち、少数のメモリ・バン
クがデータで完全に一杯になつているのに、他の
バンクはまつたく使用されないことがある。その
結果、混雑や不要な待ち時間や平行性の喪失が生
じるが、それらは、利用可能な全記憶空間がすべ
てのデータを記憶するのに十分である限り、避け
ることができるはずである。本発明は、すべての
メモリ・バンク間で負荷の均衡をとることによ
り、この問題を解決するものである。
2 負荷の均衡をとるための技法 この説明では、「負荷」という語は、次の意味
で使用する。メモリ・バンクの負荷とは、当該の
メモリ・バンク内に現存するレコードに実際に割
り当てられている記憶空間の(バイト、ワード、
あるいは256バイトのブロツク等の単位で表した)
量である。
メモリ・バンクの「負荷状況」とは、メモリ・
バンクの現負荷と所定の閾値との比較の結果であ
る。この閾値は、たとえば当該のメモリ・バンク
で利用可能な全記憶空間の70%である。この負荷
状況は、2進「負荷状況標識」で表すことができ
る。(希望するなら、もちろん数段階の負荷状況
を定義することも可能である。すなわち、実際の
負荷を異なる3つの閾値と比較すると、異なる4
つの負荷状況標識が得られ、それを2ビツトで表
すことができる。) 設定されているすべてのメモリ・バンク間で負
荷(記憶域利用度)の均衡をとるための本発明の
解決策は、次のように要約できる。
a 各ユーザの所に(例えばメモリ・インタフエ
ース中に)、導入されている各メモリ・バンク
の負荷状況に関するテーブル(マツプ)を設け
る。
b ユーザが共用メモリ中に新しいレコードを作
成したいときは、負荷状況テーブルを照会(し
て可能なら低負荷のメモリ・バンクを選択)す
ることにより、メモリ・バンクの1つを選択す
る。
c メモリ・バンクからユーザに何らかの形で戻
される各情報ブロツク(例えばそのユーザから
受け取りそのユーザのために実行されたメモ
リ・コマンドの肯定応答)に、当該のメモリ・
バンクの負荷状況に関する若干の情報を含め
る。
d 受け取つた負荷状況情報を入力することによ
り、ユーザの所(またはメモリ・インタフエー
ス)に設けた負荷状況テーブルを更新する。
この新規な技法を用いることにより、負荷状況
情報が、何らかの形で転送される情報ブロツク中
で運ばれるため、最小限の追加動作で、追加のデ
ータ転送を必要とせずに、すべてのメモリ・バン
ク間に負荷を均等に分配させることが可能とな
る。
3 メモリ・インターフエースの機能とコマンド
のフオーマツト メモリ・インタフエースMIの機能は、各メモ
リ・ユーザMUへの標準的な分散メモリ・インタ
フエースを提供することにある。MIは、メモ
リ・ユーザMUから提示されるメモリ・コマンド
を次のように処理する。MIは、(本発明の負荷均
衡化技法を用いて)適切なメモリ・バンクMBを
選択し、相互接続ネツトワークNWを介してその
MBへの接続をセツトアツプし、コマンド(デー
タを含むこともある)を作成しその接続を介して
送出し、コマンド応答(場合によつては、やはり
データを含むこともある)を待ち、接続を解除
し、メモリ・ユーザMU向けの完了状況データを
作成する。
各コマンドは12バイトのヘツダと、その後に続
く任意選択のデータ・フイールドから構成され
る。各コマンド応答は、任意選択のデータ・フイ
ールドと、その後に続く5バイトのトレーラから
構成される。
異なる4種のメモリ・コマンドとそれに関連す
るコマンド応答が設けられている。そのフオーマ
ツトを第3図に示し、それらのコマンドについて
以下に簡単に説明する。
CREATE(フオーマツト:Cmdのみ) このコマンドは、共用メモリ中にレコード(記
憶域の論理単位)を作成させ、それに論理レコー
ド・アドレス(LRA)を割り当てさせるもので
ある。LRAは、システム特有の参照であり、共
用メモリ中のメモリ・レコードを取り出せるよう
にする。本明細書で開示する新しい負荷均衡化技
法に従つて、メモリ・バンクMBが選択される。
(データがまだ記憶されていない間は)新しい
レコードに記憶空間が割り振られない。
コマンド応答は、LRAを当該のメモリ・イン
タフエースMIに戻す。
PUT(フオーマツト:Cmd,LRA,D、データ) PUTコマンドは、それが運ぶデータを指定さ
れたレコード(LRA)の指定された変位Dの所
に書き込ませるものである。(PUTコマンドが実
行されるとき)データが記憶できるように十分な
記憶空間がそのレコードに割り振られる。
コマンド応答は、(各コマンド応答に含まれる
戻りコードRC以外には)特定のデータをメモ
リ・インタフエースMIに戻さない。
GET(フオーマツト:Cmd,LRA,D,N) GETコマンドは、指定されたレコード
(LRA)の指定された変位DからNデータ・バイ
トを読み取らせるものである。
コマンド応答は、Nデータ・バイトをメモリ・
インタフエースMIに戻す。
RELEASE(フオーマツト:Cmd,LRA) RELEASEコマンドは、指定されたレコード
(LRA)を取り消させ、それに関連する記憶空間
を解放させるものである。
コマンド応答は、(戻りコード以外には)特定
のデータを含まない。
戻りコードの構造と負荷状況標識 戻りコード(RC)は、メモリ・バンクから戻
される各コマンド応答の一部分で、次の構造をも
つ8ビツト・バイトである。最初の4ビツト
RRRRは、当該のメモリ・コマンドの完了状況
を示す特定のコードである。5番目のビツトL
は、負荷状況標識(LSI)であり、その2進値は
当該のメモリ・バンクの負荷状況を示す。1は
(所与の閾値より低い)低負荷を表し、0は高負
荷を示す。
RCの最後の3ビツトは、この例では使用しな
い。しかし、いくつかの記憶域の負荷段階を区別
するのにこれらを使用することができる。(上記
の1ビツトの代りに)2ビツトの負荷状況標識L
を使用する場合、利用度または負荷の4つの段階
を区別することができる。
コマンド応答中で戻されるLSIは、MBにより、
「空き記憶空間」と「空き記憶空間閾値」の2つ
の量の比較に基づいて生成される。空き記憶空間
とは、そのレコードにも割り当てられていない
MB中の記憶位置の量である。この量は、コマン
ドの実行中、MB制御ブロツクによつて維持され
る。CREATEコマンドとGETコマンドは空き記
憶空間を消費しないので、この量は変化しない。
PUTコマンドは記憶空間を消費するので、空き
記憶空間が減少する。RELEASEコマンドは、空
き記憶空間を増加させる。空き記憶空間閾値と
は、各MB中で初期設定されている値である。
MBの動作は、本発明の主題ではないので、こ
れ以上説明しない。
4 メモリ・ユーザとメモリ制御ブロツク メモリ・ユーザは、MUローカル・メモリと呼
ばれる主記憶装置を備えたマイクロプロセツサと
見なすことができる。メモリ・コマンドは、共用
メモリ(全メモリ・バンクMBの全体)とMUロ
ーカル・メモリの間でデータを移動させる。
メモリ・ユーザMUとそのメモリ・インタフエ
ースMIの間の情報交換は、メモリ制御ブロツク
を用いて行なわれる。メモリ制御ブロツクのフオ
ーマツトを第4図に示す。
メモリ・コマンドは、メモリ・ユーザMUによ
り、「メモリ・コマンド・ワード」(MCW)と呼
ばれる制御ブロツクとして提示され、メモリ・ユ
ーザMUのローカル・メモリ中でセツトアツプさ
れる。MCWは、メモリ・コマンドの種類
(CREATE,GET,PUT,RELEASE)、論理レ
コード・アドレス(LRA)、レコード内でのデー
タの変位(D)、データ・カウント(N)、及び
MUローカル・メモリ内のデータ域のアドレス
(ローカル・メモリ・ポインタLMP)を指定する
制御情報である。
完了状況データは、メモリ・インタフエース
MIからメモリ・ユーザMUにMUローカル・メ
モリ中の制御ブロツク「メモリ状況ワード」
(MSW)として提示される。完了状況データは、
コマンドの実行が満足できるものであつたか否か
に関する情報(CC)を含む。CREATEコマンド
の場合は、MSWは作成されるレコードの論理レ
コード・アドレス(LRA)も含む。
5 メモリ・インタフエース論理回路 メモリ・インタフエース論理回路の構成図を第
5図に示す。その要素及び構造は、次の通りであ
る。
MIは、基本的に中心部分31、相互接続ネツ
トワークNWポート33、DMA部分またはユー
ザ・ポート35、及び制御部37を含む。
中心部分31は、演算論理機構ALU41、ア
キユムレータ・レジスタACCU43、ローカル記
憶機構LS45、及びローカル記憶アドレス・レ
ジスタLSAR47を含む。Aバス49とBバス5
1がALUの入力端に接続され、結果バス53が
ALUの出力端に接続されている。LSに入力され
たデータは線55,57,59を介して転送さ
れ、LSから出力されたデータは線61を介して
転送される。
NWポート33は、レジスタ4個とカウンタ1
個を含む。NW入力データNWDIレジスタ63
は、LSの出力線61と双方向NWデータ・バス
65の間に接続されている。NW出力データ
NWDOレジスタ67は、LSのデータ入力線55
とNWデータ・バス65の間に接続されている。
NW入力制御NWCIレジスタ69は、ALUの結
果バス53とNW制御入力線71の間に接続され
ている。NW出力制御NWCOレジスタ73は、
Aバス49とNW制御出力線75の間に接続され
ている。NWカウンタNWCT77は、ALU結果
バス53からその入力を受け取る。ネツトワーク
からバイトを受け取つたとき(またはネツトワー
クにバイトが送られたとき)、NWカウント77
の内容が1だけ増分(または減分)され、0かど
うかテストされる。
ユーザ・ポート35は、レジスタ3個とカウン
タ1個を含む。MU入力データMUDIレジスタ7
9は、LS入力線57と双方向ユーザ・データ・
バス81の間に接続されている。MU出力データ
MUDOレジスタ83は、LS出力線61とユー
ザ・データ・バス81の間に接続されている。
MUアドレスMUAレジスタ85は、ALU出力バ
ス53とユーザ・アドレス線87の間に接続され
ている。MUカウンタMUCT89は、ALU結果
バス53からその入力を受け取る。ユーザからバ
イトを受け取つたとき(またはユーザにバイトが
提供されたとき)、その内容が1だけ減分され、
0かどうかテストされる。
制御部37は、次のデータまたは制御信号を供
給する。
IF=即値フイールド(LSオペランドまたはLSア
ドレス) ALUOP=ALU命令コード(ADD,
SUBTRACT,AND,OR,XOR,
ROTATE等) ABS=Aバス・ソース BBS=Bバス・ソース LSOP=LS命令コード(READ,WRITE,
NOOP) LSA=LSアドレス制御 MISC=レジスタへの書込み、DMAの起動など
のための雑制御 MI論理回路は、次の機能を有する。
1 MI論理回路は、2個のオペランドに対して
算術演算とブール演算を行なうことができる。
その1つは制御部が生成する即値(IF)であ
り、もう1つはLS位置または制御レジスタの
内容である。
2 MI論理回路はMUローカル・メモリに読取
り/書込みアクセスを行なうことができ、ロー
カル・メモリ・アドレス及びバイト・カウント
はそれぞれMUアドレス・レジスタMUAと
MUカウント・レジスタMUCT中で指定され
る。書込み中のデータのソース(または読取り
中のデータの宛先)は、LSアドレス・レジス
タLSARによつてアドレスされるLSである。
3 MI論理回路は、「NW入力制御レジスタ
NWCIに接続要求とMBアドレス(識別子)を
ロードし、「NW出力制御レジスタ(MWCO)」
中で接続許可が戻されるのを待つことにより、
相互接続ネツトワークNWを介してメモリ・バ
ンクMBへの接続を確立することができる。同
様に、NWCIに接続解除要求をロードし、
NWCO中で接続許可が戻されるのを待つこと
により、その接続が解放できる。相互接続ネツ
トワークNWは本発明の主題ではないので、こ
れ以上詳しくは説明しない(相互接続ネツトワ
ークについて記載した文献は、第1節に挙げ
た)。メモリ・バンクMBへの接続が確立され
ると、MI論理回路はその接続を介して双方向
データ転送を行なうことができる。LSARが値
Aに初期設定され、NWカウント・レジスタ
(NWCT)が値Nに初期設定されていると仮定
すると、LS(A)にあるNバイトが読み出され
てMBに送られる。このインバウンド・データ
転送は、NWCT=0及びLSAR=A+Nのと
き終了する。次いで、MBはバイト・ストリン
グを戻し、それが受け取られて、LSのアドレ
スA+Nから始まるアドレスの所に記憶され
る。受け取つたバイトの数は、アウトバウンド
転送の完了時にNWCT中で得られる。このよ
うにして、コマンド及びコマンド応答がメモ
リ・インタフエースMIとメモリ・バンクMB
の間で交換される。
6 メモリ・インタフエース論理回路でのコマン
ド処理 第6図の流れ図は、メモリ・インタフエース
MI論理回路でのコマンド処理の間に実行される
諸ステツプを示す。具体的には、この図は、本発
明の負荷均衡化技法の重要な部分であるメモリ利
用度(メモリ負荷状況)情報が、メモリ・コマン
ドの処理時にどのように扱われるかを示してい
る。
ステツプA: MIが、(DMA技法を用いてユ
ーザのローカル・メモリからメモリ制御ワー
ドMCWを読み取り、MCWを自分のローカ
ル記憶装置LSに記憶する。次いで、コマン
ドを復号する。コマンドがCREATEコマン
ドか否かに応じて、次に2つのステツプのど
ちらかをとる。
ステツプB1(Cmd=CREATE): 負荷均衡化
技法(第7図に関して第7節で説明する選
択)に応じて、メモリ・バンクの一つが選択
される。現メモリ・バンクを指定するCMB
変数(下記で説明する)がセツトアツプされ
る。
ステツB2(Cmd=CREATE以外): このコマ
ンド用に使用するメモリ・バンクMBが
MCWのLRAフイールドによつて決定され
る。下記第7節bの注記を参照のこと。(現
メモリ・バンクを指定する)CMB変数がセ
ツトアツプされる。
ステツプC: MIが、相互接続ネツトワーク
NWを介して現CMBで指定されるメモリ・
バンクに至る接続を確立する。コマンドがロ
ーカル記憶装置中でセツトアツプされる(こ
れは負荷均衡化技法にとつて重要ではないの
で、詳細は示さない)。LS中のコマンドの開
始アドレスがLSARに入力され、コマンドの
バイト・カウントがレジスタNWCTにロー
ドされる。次いで、コマンドが選択されたメ
モリ・バンクMBに送られる。MBからコマ
ンド応答が戻されるのを待つ。
ステツプD: MI中でコマンド応答を受け取
ると、それが処理される(これは負荷均衡化
技法にとつて重要ではないので、詳細は示さ
ない)。戻りコードのLビツトが、負荷状況
標識LSIとして保持される。
ステツプE: LSIビツトをテストして、今使
用したMBの負荷状況を決定する。その結果
に応じて、次に2つのステツプのどちらかを
とる。
ステツプF1(LSI=1): 選択されたMBが低
負荷状態にある。(下記で説明する、すべて
の低負荷メモリ・バンクを識別する)LL変
数と、(現メモリ・バンクを指定する)CMB
変数が、OR演算によつて組み合わされて、
その最後に使用した(コマンド応答によつて
その負荷状況を報告したばかりの)メモリ・
バンクが低負荷状態になるように、LLを更
新する。
ステツプF2(LSI=0): 選択されたMBが高
負荷状況にある。(すべての低負荷メモリ・
バンクを識別する)LL変数と、(現メモリ・
バンクを測定する)CMB変数が、AND演算
によつて組み合わされて、当該のMBの高負
荷状況を反映するように、LLを更新する。
ステツプG: ここでMIがそのローカル記憶
装置LS内のメモリ状況ワードMSWを(コマ
ンド応答と一緒に受け取つた情報を使つて)
セツトアツプする。次いで、MSWが開始す
るLSアドレスをLSARにロードし、MSWの
バイト・カウントをカウンタMUCTにロー
ドし、LSからのMSWをユーザのローカル・
メモリにコピーする。最後に、相互接続ネツ
トワークを介するMBへの接続が解除され
る。
メモリ・バンクの選択及び負荷状況のマツピング
用のMI内のブール変数 この処理では、4個のブール変数CMB,RR,
TL,LLを使用する。これらの変数はメモリ・イ
ンタフエースMIのローカル記憶域(LS)内にあ
り、下記のように定義される。この4個の変数
は、現在当該のMIが使用中のメモリ・バンク
MB、ラウンド・ロビン変数、導入済みのすべて
のメモリ・バンクの統合リスト、及び現在低負荷
状況にある(すなわち、もつとCREATE要求を
受けることができる)メモリ・バンクのリストを
提供する。下記の例では、メモリ・バンクの最大
数は8であると仮定する。9個以上のメモリ・バ
ンクが設けられる場合は、この3つの変数は、下
記で仮定するようにただの1バイトではなく、2
バイト(以上)でなければならない。
現メモリ・バンク(CMB) 0から7までの番号をつけた8ビツト変数。
現コマンドに関係する選択されたメモリ・バン
クMBを示す位置の1ビツト以外の全ビツトはゼ
ロである。
例: CMB=00100000 この例では、MB番号2が選択されている。
ラウンド・ロビン変数(RR): 0から7までの番号をつけた8ビツト変数。
最後のCREATEコマンドの間に選択されたメ
モリ・バンクMBを示す位置の1ビツト以外の全
ビツトがゼロである。
例: RR=00010000 この例では、MIが出した再度のCREATEコマ
ンドの間に、MB番号3が選択された。
総合リスト(TL): 0から7までの番号をつけた8ビツト変数。
TL中のビツト位置が導入済みメモリ・バンク
MBにマツプされる。
例: TL=11110000 この例では、4つのMBが位置0,1,2,3
に導入されている。
定負荷リスト(LL): 0から7までの番号をつけた8ビツト変数。
有意ビツトは、TL中で指定された導入済みメ
モリ・バンクMBに対応する。
1の有意ビツトは、関連するMBが低負荷状態
にあることを示す。
0の有意ビツトは、関連するMBが高負荷状態
にあることを示す。
例: LL=xxxx0000 この例では、関連するMBが高負荷状態の場合
はx=0、関連するMBが低負荷状態の場合はx
=1である。
7 メモリ・インタフエースによるメモリ・バン
クの選択 メモリ・コマンドを実行するためにメモリ・イ
ンタフエースMIがメモリ・バンクMBを選択し
なければならない状況には次の2つがある。(a)
CREATEコマンドでは、本発明の負荷均衡化技
法に従つて、新しいメモリ・バンクを選択しなけ
ればならない。(b)他のすべてのメモリ・コマンド
では、メモリ・バンクは(LRAパラメータから)
わかつており、MIは直ちにこのMBを識別する
ことができる。
a 負荷均衡化技法によるMBの選択 最初に説明した通り、新しいレコードを作成す
るためのメモリ・バンクMBの選択は、負荷均衡
化技法を用いて、各メモリ・インタフエースで利
用できるメモリ負荷状況に関する知識を利用して
行なう。低負荷MBがある場合、MIは、当該の
MIが出した最後のCREATEコマンドの間に選択
されたMB(MI内にこの最後に使用したMBを識
別する標識RRがある)から順に循環して次の
MBを選択する。もう低負荷MBがない(すなわ
ち、すべてのMBが既に高負荷状態である)場
合、MIは導入済みのすべてのMBのうちから選
択を行なわなければならず、やはり同じ循環機構
によつてそれを行なう。
MBを選択するためにMIが実行すべき動作を、
第7図の流れ図に示す。まず最初に、LLがすべ
て0かどうかテストして、セツトLL(低負荷
MB)が空かどうか調べる。(1)LLがすべて0で
はない場合、すなわち低負荷状況のMBが少なく
とも1個ある場合、RRの値が1だけ増加される
(モジユーロm、MBの最大数)。これは、
ROTATE1 ALU演算によつて行なわれる。次
に、変数RRとLLがANDされる。結果がすべて
0の場合、新しいRRは低負荷MBをヒツトせず、
このステツプを繰り返さなければならない。結果
がすべて0ではない場合、新しいRRは低負荷
MBをヒツトし、したがつて、それを使つて、
CREATEコマンド実行用のMBを選択すること
ができる。(2)LLがすべて0の場合、低負荷MB
はなく、どのMBでも使える。この場合も、現
RRが1だけ増加される(モジユーロm)。次に、
新しいRRと変数TLがANDされる。その結果が
すべて0の場合、新しいRRは利用可能なMBを
ヒツトせず、このステツプを繰り返さなければな
らない。結果がすべて0ではない場合、新しい
RRは利用可能なMBをヒツトし、それを使つて、
新しいレコード作成のためにアクセスすべき次の
MBを選択することができる。
選択されたMBは、RRの内容によつて識別さ
れる。次にこのRRの内容が、後続の処理のため
CMBにロードされる。
b LRAが既知のときのMBの選択 CREATEコマンド上でMBから戻されるLRA
は32ビツトの識別子であり、そのビツト8,9,
10は、MBを指定するコードを含む(000はMB
番号0を識別し、001はMB番号1を識別し、以
下同様)。
したがつて、MI論理回路は、どのMBへの接
続を確立しなければならないかを知つている。
CREATE以外のコマンドのためのMBを選択
するには、(LS内にコピーされたばかりの)
MCW内のLRAフイールドを識別し、それからビ
ツト8〜10を抜き出し、この3ビツト・コードを
CMBで使用する8ビツト・フオーマツトに変換
し、得られた値をCMBにロードする。
【図面の簡単な説明】
第1図は、本発明で使用される共用記憶装置を
備えた複数ユーザ・システムの全体構成の構成図
である。第2図は、第1図のシステム内での情報
流れとメモリ・アクセスの順序を示す概略図であ
る。第3図は、第1図のシステム内での記憶動作
に使用されるコマンドとコマンド応答のフオーマ
ツトを示す図である。第4図は、ユーザのローカ
ル・メモリに記憶され、ユーザとそのメモリ・イ
ンタフエースの間での情報転送に使われるメモリ
制御ブロツクのフオーマツトを示す図である。第
5図は、第1図のシステム内でユーザと共用記憶
装置を相互接続するメモリ・インタフエース
(MI)の構成図である。第6図は、メモリ・イン
タフエース論理回路内でのメモリ・コマンドの処
理の流れ図である。第7図は、メモリ・インタフ
エースにより本発明の負荷均衡化技法を使つて行
なわれる、メモリ・バンク選択の流れ図である。 11……メモリ・ユーザ(MU)、13……メ
モリ・インタフエース(MI)、15……相互接続
ネツトワーク(NW)、17……メモリ・バンク
(MB)。

Claims (1)

  1. 【特許請求の範囲】 1 ユーザ装置から記憶装置に送られるコマンド
    によつて記憶動作が引き起こされ、各コマンドに
    応答して記憶装置からユーザ装置にコマンド応答
    が戻されるシステム内で、複数のユーザ装置が共
    通に使用する複数の記憶装置間で記憶負荷を均等
    に分配する記憶負荷分配方法であつて、 記憶装置からユーザ装置に戻される各コマンド
    応答中に、当該の記憶装置の記憶装置利用状況を
    反映する負荷状況標識を挿入するステツプと、 各ユーザ装置のもとで、システムのすべての導
    入済み記憶装置の記憶負荷状況を反映する負荷状
    況テーブルを確立するステツプと、 コマンド応答と一緒に受け取つた各負荷状況標
    識に応答して上記負荷状況テーブルを更新するス
    テツプと、 新しい記憶レコードを何れかの記憶装置内で作
    成することを要求するコマンドをユーザ装置から
    送る前に、上記負荷状況テーブルに照会して、上
    記テーブル中で低負荷状況であると指示されてい
    る記憶装置を、記憶レコードの作成を要求する上
    記コマンドの受取り先として選択するステツプ を含む記憶負荷方法。
JP32860889A 1988-12-23 1989-12-20 記憶負荷分散方法 Granted JPH02259944A (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
EP19880480101 EP0374337B1 (en) 1988-12-23 1988-12-23 Load balancing technique in shared memory with distributed structure
EP88480101.0 1988-12-23

Publications (2)

Publication Number Publication Date
JPH02259944A JPH02259944A (ja) 1990-10-22
JPH0581939B2 true JPH0581939B2 (ja) 1993-11-16

Family

ID=8200508

Family Applications (1)

Application Number Title Priority Date Filing Date
JP32860889A Granted JPH02259944A (ja) 1988-12-23 1989-12-20 記憶負荷分散方法

Country Status (3)

Country Link
EP (1) EP0374337B1 (ja)
JP (1) JPH02259944A (ja)
DE (1) DE3853363T2 (ja)

Families Citing this family (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6295571B1 (en) * 1999-03-19 2001-09-25 Times N Systems, Inc. Shared memory apparatus and method for multiprocessor systems
US7006505B1 (en) 2000-10-23 2006-02-28 Bay Microsystems, Inc. Memory management system and algorithm for network processor architecture
US6532185B2 (en) * 2001-02-23 2003-03-11 International Business Machines Corporation Distribution of bank accesses in a multiple bank DRAM used as a data buffer
JP4105955B2 (ja) 2001-05-17 2008-06-25 アルカテル・インターネツトワーキング・インコーポレイテツド 分散型共有メモリパケットスイッチ
ATE433239T1 (de) 2001-07-17 2009-06-15 Alcatel Internetworking Inc Inband-nachrichtensynchronisierung für eine verteilte paketvermittlung mit gemeinsam benutztem speicher
AU2002307270A1 (en) * 2002-04-12 2003-10-27 Bay Microsystems, Inc. System and method for memory management within a network processor architecture
CA2382718C (en) 2002-04-12 2007-02-13 Ibm Canada Limited-Ibm Canada Limitee Memory balancing and optimization services
JPWO2012172683A1 (ja) * 2011-06-17 2015-02-23 富士通株式会社 演算処理装置、情報処理装置および演算処理装置の制御方法
US8627021B2 (en) 2011-08-31 2014-01-07 Qualcomm Incorporated Method and apparatus for load-based prefetch access
CN103827836B (zh) 2011-09-05 2017-02-01 华为技术有限公司 存储数据的方法和装置
US20160357456A1 (en) * 2015-06-03 2016-12-08 Kabushiki Kaisha Toshiba Memory device that divides write data into a plurality of data portions for data writing

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4393459A (en) * 1980-07-17 1983-07-12 International Business Machines Corp. Status reporting with ancillary data
US4925311A (en) * 1986-02-10 1990-05-15 Teradata Corporation Dynamically partitionable parallel processors

Also Published As

Publication number Publication date
DE3853363T2 (de) 1995-09-28
EP0374337B1 (en) 1995-03-15
JPH02259944A (ja) 1990-10-22
DE3853363D1 (de) 1995-04-20
EP0374337A1 (en) 1990-06-27

Similar Documents

Publication Publication Date Title
US4128882A (en) Packet memory system with hierarchical structure
US6032179A (en) Computer system with a network interface which multiplexes a set of registers among several transmit and receive queues
JP2002510079A (ja) メモリ・インタフェース間で読み書きの順序付けられた実行を強制する方法と装置
US5148527A (en) Interface for independently establishing a link and transmitting high level commands including logical addresses from dedicated microprocessor to shared intelligent memory
CN102918515B (zh) 将数据存储在存储器控制器中的多个缓冲器的任何中
JPH0581939B2 (ja)
US6105080A (en) Host adapter DMA controller with automated host reply capability
US4639862A (en) Computer system
JPS5938620B2 (ja) メモリ−コントロ−ラ用優先順位指定装置
JP2561261B2 (ja) バッファ記憶アクセス方法
JPH05282166A (ja) データ処理システムで脱落したバッファを回復する装置
US9703739B2 (en) Return available PPI credits command
JPS61101851A (ja) バツフア記憶域の動的資源管理方式
CN100573489C (zh) 经由流动id方法的dmac发布机制
JPS6027976A (ja) 先入先出メモリ装置
US9548947B2 (en) PPI de-allocate CPP bus command
US6976142B1 (en) Method and system to provide simultaneous access by multiple pipelines to a table
US9413665B2 (en) CPP bus transaction value having a PAM/LAM selection code field
US9559988B2 (en) PPI allocation request and response for accessing a memory system
US5953343A (en) Digital information transfer system and method
JPH0410050A (ja) 計算機システム
JP2731743B2 (ja) 通信レジスタ付並列計算機
JPH06187227A (ja) 記憶装置とメモリ管理方法
JPH0314073A (ja) ベクトル処理方式
JPH0229835A (ja) メモリ素子