JPH02259944A - 記憶負荷分散方法 - Google Patents
記憶負荷分散方法Info
- Publication number
- JPH02259944A JPH02259944A JP32860889A JP32860889A JPH02259944A JP H02259944 A JPH02259944 A JP H02259944A JP 32860889 A JP32860889 A JP 32860889A JP 32860889 A JP32860889 A JP 32860889A JP H02259944 A JPH02259944 A JP H02259944A
- Authority
- JP
- Japan
- Prior art keywords
- memory
- load
- command
- 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.)
- Granted
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5011—Allocation 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/5016—Allocation 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
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/16—Handling requests for interconnection or transfer for access to memory bus
- G06F13/1605—Handling requests for interconnection or transfer for access to memory bus based on arbitration
- G06F13/1652—Handling requests for interconnection or transfer for access to memory bus based on arbitration in a multiprocessor architecture
- G06F13/1657—Access to multiple memories
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/16—Handling requests for interconnection or transfer for access to memory bus
- G06F13/1605—Handling requests for interconnection or transfer for access to memory bus based on arbitration
- G06F13/1652—Handling requests for interconnection or transfer for access to memory bus based on arbitration in a multiprocessor architecture
- G06F13/1663—Access to shared memory
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)
Abstract
(57)【要約】本公報は電子出願前の出願データであるた
め要約のデータは記録されません。
め要約のデータは記録されません。
Description
【発明の詳細な説明】
A、産業上の利用分野
本発明は、複数のユーザが、個別にアクセス可能な複数
のメモリ・モジュール(メモリ・バンク)からなる共通
のまたは共用のメモリにアクセスできるというシステム
に関し、より詳細には、全メモリ・モジュール間で負荷
、すなわち記憶装置利用度の均衡をとる方法に関する。
のメモリ・モジュール(メモリ・バンク)からなる共通
のまたは共用のメモリにアクセスできるというシステム
に関し、より詳細には、全メモリ・モジュール間で負荷
、すなわち記憶装置利用度の均衡をとる方法に関する。
B、従来の技術
プロセッサ、入出力装置、バッファ等、複数の共用資源
を有するシステムでは、システムの性能を最適化するた
め、資源相互用の負荷すなわち利用度の均衡をとること
が重要である。複数の装置間で利用度の均衡をとるため
の解決策は、下記の特許明細書及び発表論文のリストに
反映されているように、いくつも提案されている。
を有するシステムでは、システムの性能を最適化するた
め、資源相互用の負荷すなわち利用度の均衡をとること
が重要である。複数の装置間で利用度の均衡をとるため
の解決策は、下記の特許明細書及び発表論文のリストに
反映されているように、いくつも提案されている。
米国特許第3702006号「入出力装置の利用度の均
衡をとる方法(Method for Balanci
ngthe IJtilization of
Inputloutput Devices) J
;米国特許第4403288号「データ処理作業負
荷の均衡化(Balancing Data−Proc
essingWorkloads) J ;米国特許第
4(333387号「複数ユニット・システムにおける
負荷の均衡化(Load Balancing in
a Multiunit System) JIBMテ
クニカル・ディスクロージャ・プルテンの発表論文:J
、A、 ?クローリン(McLoughlin)「緩衝
周辺サブシステムの負荷の均衡化(LoadBalan
cing Buffered Peripheral
5ubsystes) J %Vo1.24.No、I
B (1981年6月)、1)I)、707〜709、
D、C:I−ル(Cole)他、(緩衝周辺システムの
再較正(Reca l 1brat ingBuffe
r Peripheral 5yste+*s)J
N V o l 、 2 41No、2
(1981年7月)、pp、1041〜1042:G
、Aマツクレーン(McClain)他、「入出力用多
重利用度閾値制御(MultipleUtilizat
ion Threshold Control for
l10)1J :Vol、24、No、3 (198
1年8月)、p。
衡をとる方法(Method for Balanci
ngthe IJtilization of
Inputloutput Devices) J
;米国特許第4403288号「データ処理作業負
荷の均衡化(Balancing Data−Proc
essingWorkloads) J ;米国特許第
4(333387号「複数ユニット・システムにおける
負荷の均衡化(Load Balancing in
a Multiunit System) JIBMテ
クニカル・ディスクロージャ・プルテンの発表論文:J
、A、 ?クローリン(McLoughlin)「緩衝
周辺サブシステムの負荷の均衡化(LoadBalan
cing Buffered Peripheral
5ubsystes) J %Vo1.24.No、I
B (1981年6月)、1)I)、707〜709、
D、C:I−ル(Cole)他、(緩衝周辺システムの
再較正(Reca l 1brat ingBuffe
r Peripheral 5yste+*s)J
N V o l 、 2 41No、2
(1981年7月)、pp、1041〜1042:G
、Aマツクレーン(McClain)他、「入出力用多
重利用度閾値制御(MultipleUtilizat
ion Threshold Control for
l10)1J :Vol、24、No、3 (198
1年8月)、p。
1406;D、W、ポルトン(Bolton)他、「共
用記憶装置における実/仮想組合せ固定サイズ緩衝機構 (Combined Real−Virtual Fi
xed−Size BufferMechanism
in 5hared Storage)J N V o
l 、 271No、4B (1984年9月)、p
p、2855〜2880゜ これらの既知のすべての解決策では、負荷または利用度
状況に関する情報を保持するために中央で保管するレコ
ードが必要であり、あるいは必要な情報を獲得し、負荷
均衡化のために制御を行なうための中央処理が実施され
ており、その上、負荷状況または関係する制御情報ある
いはその両方を収集または分配するために、特別の転送
を実施しなければならない。
用記憶装置における実/仮想組合せ固定サイズ緩衝機構 (Combined Real−Virtual Fi
xed−Size BufferMechanism
in 5hared Storage)J N V o
l 、 271No、4B (1984年9月)、p
p、2855〜2880゜ これらの既知のすべての解決策では、負荷または利用度
状況に関する情報を保持するために中央で保管するレコ
ードが必要であり、あるいは必要な情報を獲得し、負荷
均衡化のために制御を行なうための中央処理が実施され
ており、その上、負荷状況または関係する制御情報ある
いはその両方を収集または分配するために、特別の転送
を実施しなければならない。
均衡化情報を中央で記憶または処理すると、同時に多数
のトランザクションが行なわれるとき、混雑が生じる恐
れがあり、また当該の装置が故障した場合は害があり、
また追加のデータ転送が必要なために性能が低下する。
のトランザクションが行なわれるとき、混雑が生じる恐
れがあり、また当該の装置が故障した場合は害があり、
また追加のデータ転送が必要なために性能が低下する。
さらに、所与の構成に対して集中更新手段が設計されて
いる場合には、システムのモジュール式拡張が不可能に
なることもある。
いる場合には、システムのモジュール式拡張が不可能に
なることもある。
C0発明が解決しようとする課題
本発明の主目的は、複数のユーザ用の共用記憶装置を形
成する複数の記憶モジュール間の負荷を、完全に分散式
に均衡をとるための技術を考案することにある。
成する複数の記憶モジュール間の負荷を、完全に分散式
に均衡をとるための技術を考案することにある。
本発明の他の目的は、負荷状況情報を交換するために特
別のデータ転送を必要としない、共用のモジュール式メ
モリ用の負荷均衡化技術を提供することにある。
別のデータ転送を必要としない、共用のモジュール式メ
モリ用の負荷均衡化技術を提供することにある。
本発明の他の目的は、ユーザの装置、そのインターフェ
ースと接続機構、または共通に使用される装置に変更や
修正を加える必要なしに、メモリ・モジュールまたはメ
モリ・バンクの数をモジュール式に拡張できる、メモリ
負荷均衡化機構を考案することにある。
ースと接続機構、または共通に使用される装置に変更や
修正を加える必要なしに、メモリ・モジュールまたはメ
モリ・バンクの数をモジュール式に拡張できる、メモリ
負荷均衡化機構を考案することにある。
01課題を解決するための手段
上記の目的は、前記の特許請求の範囲に定義する共用メ
モリ負荷均衡化の方法によって達成される。
モリ負荷均衡化の方法によって達成される。
本発明は、各ユーザ装置にメモリ負荷状況マツプを設け
ることにより、最小の追加動作で追加の情報転送なしに
、記憶装置の負荷の均衡をとることができる。更新の際
には、メモリ・バンクからユーザ装置へ何らかの方法で
頻繁に転送されるコマンド回答をキャリアとして使用す
ることにより、個々の情報の転送は不要である。
ることにより、最小の追加動作で追加の情報転送なしに
、記憶装置の負荷の均衡をとることができる。更新の際
には、メモリ・バンクからユーザ装置へ何らかの方法で
頻繁に転送されるコマンド回答をキャリアとして使用す
ることにより、個々の情報の転送は不要である。
E、実施例
1)システムの概要
第1図に、本発明が適用されるシステムの構成を示す。
原理的には、これは、複数のユーザが、全ユーザ用の共
通(または共用)メモリとして機能する複数のメモリ・
バンク(メモリ・モジュール)に接続されているシステ
ムである。こうした装置は、例えば通信制御装置で使用
されている。
通(または共用)メモリとして機能する複数のメモリ・
バンク(メモリ・モジュール)に接続されているシステ
ムである。こうした装置は、例えば通信制御装置で使用
されている。
各メモリ・ユーザMU (11A111B、・・・II
N)は、それ自身のメモリ・インタフェースMI (1
3A113B、・・・13N)を介して共通の相互接続
ネットワークNW(15)に接続されている。メモリ・
バンクMB (17A117B1・・・17N)は同じ
装置であり、相互接続ネットワークに個別に接続されて
いる。
N)は、それ自身のメモリ・インタフェースMI (1
3A113B、・・・13N)を介して共通の相互接続
ネットワークNW(15)に接続されている。メモリ・
バンクMB (17A117B1・・・17N)は同じ
装置であり、相互接続ネットワークに個別に接続されて
いる。
相互接続ネットワークは、複数ポート・パケット交換機
であり、そのポートの1つにデータ・パケットが入るの
に応答して、それらのパケットを必要とされる出力ポー
トに経路指定することができる。こうしたネットワーク
は既知であり、例えば下記の発表論文及びその中に引用
されている参照文献に記載されている。T、フェン(F
eng)「相互接続ネットワークの調査(A 5erv
ey ofInterconnection Net
works) J 1 IEEE Comput
er。
であり、そのポートの1つにデータ・パケットが入るの
に応答して、それらのパケットを必要とされる出力ポー
トに経路指定することができる。こうしたネットワーク
は既知であり、例えば下記の発表論文及びその中に引用
されている参照文献に記載されている。T、フェン(F
eng)「相互接続ネットワークの調査(A 5erv
ey ofInterconnection Net
works) J 1 IEEE Comput
er。
1981年12月号%p1)、12〜30;V、P。
フマル(にumar)他「増補シャフル交換多段相互接
続ネットワーク (Augmented Shuffl
e−ExchangeMultistage Inte
rconnection Networks) J、I
EEE Compuerz 1987年6月号、pp、
30〜40゜ この全体配置の利点は、(相互接続ネットワークが十分
な容量とボートを有する限り)モジュール式に拡張でき
ることである。ユーザの数及びその必要記憶容量に合わ
せて、メモリ・バンクの数を変えることができる。
続ネットワーク (Augmented Shuffl
e−ExchangeMultistage Inte
rconnection Networks) J、I
EEE Compuerz 1987年6月号、pp、
30〜40゜ この全体配置の利点は、(相互接続ネットワークが十分
な容量とボートを有する限り)モジュール式に拡張でき
ることである。ユーザの数及びその必要記憶容量に合わ
せて、メモリ・バンクの数を変えることができる。
メモリ・アクセス用のコマンド及び制御hi報(7)全
体的流れを、第2図に概略図として示す。
体的流れを、第2図に概略図として示す。
メモリ・ユーザMUは、所望の動作を指定しパラメータ
を含む、メモリ制御ワードMCWを作成する。MCWは
メモリ・インタフェースMIに転送される。MIは、コ
マンド要求を処理し、メモリ・バンクMBの1つにコマ
ンドを送る。コマンドはMBで実行(データの記憶、デ
ータの読取り等)され、コマンド応答がMIに戻される
。MIは、MBから受け取った応答を反映する状況デー
タと、恐らくはメモリ動作がどのように完了したかを反
映する追加の状況データを作成し、これらの状況データ
は、メモリ状況ワードMSW中でMUに転送される。
を含む、メモリ制御ワードMCWを作成する。MCWは
メモリ・インタフェースMIに転送される。MIは、コ
マンド要求を処理し、メモリ・バンクMBの1つにコマ
ンドを送る。コマンドはMBで実行(データの記憶、デ
ータの読取り等)され、コマンド応答がMIに戻される
。MIは、MBから受け取った応答を反映する状況デー
タと、恐らくはメモリ動作がどのように完了したかを反
映する追加の状況データを作成し、これらの状況データ
は、メモリ状況ワードMSW中でMUに転送される。
以下の説明では、「コマンド」の語は、実際にはメモリ
のユーザ/メモリーインタフェースからメモリ・バンク
に送られる、メモリ動作の要求(CREATEコマンド
、PUTコマンド等)を七すものとする。
のユーザ/メモリーインタフェースからメモリ・バンク
に送られる、メモリ動作の要求(CREATEコマンド
、PUTコマンド等)を七すものとする。
MCW及びMSWのコマンド及びコマンド応答のフォー
マットについては、後で第3図及び第4図に関して説明
する。
マットについては、後で第3図及び第4図に関して説明
する。
コマンドの処理は、(MI中の)論理層によって行なわ
れる。論理層は、下方にMUのローカル・メモリへの読
取り/書込みアクセスを可能にするメモリ・ユーザとの
インタフェースを有し、上方に相互接続ネットワークN
Wとの別のインタフェースを有する。MI論理層とその
動作の詳細については、後で第5図及び第6図に関して
説明する。
れる。論理層は、下方にMUのローカル・メモリへの読
取り/書込みアクセスを可能にするメモリ・ユーザとの
インタフェースを有し、上方に相互接続ネットワークN
Wとの別のインタフェースを有する。MI論理層とその
動作の詳細については、後で第5図及び第6図に関して
説明する。
本システムに関して仮定する1つの原理は、メモリ・バ
ンク間でのユーザ・データの分配が任意であることであ
る。すなわち、メモリ・バンクとユーザの間に固定した
関連あるいは事前割当てはない。この原理から生じる1
つの問題は、メモリ・バンクの利用(負荷)が不均等に
なる恐れのあることである。すなわち、少数のメモリ・
バンクがデータで完全に一杯になっているのに、他のバ
ンクはまったく使用されないことがある。その結果、混
雑や不要な待ち時間や平行性の喪失が生じるが、それら
は、利用可能な全記憶空間がすべてのデータを記憶する
のに十分である限り、避けることができるはずである。
ンク間でのユーザ・データの分配が任意であることであ
る。すなわち、メモリ・バンクとユーザの間に固定した
関連あるいは事前割当てはない。この原理から生じる1
つの問題は、メモリ・バンクの利用(負荷)が不均等に
なる恐れのあることである。すなわち、少数のメモリ・
バンクがデータで完全に一杯になっているのに、他のバ
ンクはまったく使用されないことがある。その結果、混
雑や不要な待ち時間や平行性の喪失が生じるが、それら
は、利用可能な全記憶空間がすべてのデータを記憶する
のに十分である限り、避けることができるはずである。
本発明は、すべてのメモリ・バンク間で負荷の均衡をと
ることにより、この問題を解決するものである。
ることにより、この問題を解決するものである。
2)負荷の均衡をとるための技法
この説明では、「負荷」という語は、次の意味で使用す
る。メモリ・バンクの負荷とは、当該のメモリ・バンク
内に現存するレコードに実際に割り当てられている記憶
空間の(バイト、ワード、あるいは256バイトのブロ
ック等の単位で表した)量である。
る。メモリ・バンクの負荷とは、当該のメモリ・バンク
内に現存するレコードに実際に割り当てられている記憶
空間の(バイト、ワード、あるいは256バイトのブロ
ック等の単位で表した)量である。
メモリ・バンクの「負荷状況」とは、メモリ・バンクの
現負荷と所定の閾値との比較の結果である。この閾・値
は、たとえば当該のメモリ・バンクで利用可能な全記憶
空間の70%である。この負荷状況は、2進「負荷状況
標識」で表すことができる。(希望するなら、もちろん
数段階の負荷状況を定義することも可能である。すなわ
ち、実際の負荷を異なる3つの閾値と比較すると、異な
る4つの負荷状況標識が得られ、それを2ビツトで表す
ことができる。) 設定されているすべてのメモリ・バンク間で負荷(記憶
域利用度)の均衡をとるための本発明の解決策は、次の
ように要約できる。
現負荷と所定の閾値との比較の結果である。この閾・値
は、たとえば当該のメモリ・バンクで利用可能な全記憶
空間の70%である。この負荷状況は、2進「負荷状況
標識」で表すことができる。(希望するなら、もちろん
数段階の負荷状況を定義することも可能である。すなわ
ち、実際の負荷を異なる3つの閾値と比較すると、異な
る4つの負荷状況標識が得られ、それを2ビツトで表す
ことができる。) 設定されているすべてのメモリ・バンク間で負荷(記憶
域利用度)の均衡をとるための本発明の解決策は、次の
ように要約できる。
a)各ユーザの所に(例えばメモリ・インタフェース中
に)ζ導入されている各メモリ・バンクの負荷状況に関
するテーブル(マツプ)を設ける。
に)ζ導入されている各メモリ・バンクの負荷状況に関
するテーブル(マツプ)を設ける。
b)ユーザが共用メモリ中に新しいレコードを作成した
いときは、負荷状況テーブルを照会(して可能なら低負
荷のメモリ・バンクを選択)することにより、メモリ・
バンクの1つを選択する。
いときは、負荷状況テーブルを照会(して可能なら低負
荷のメモリ・バンクを選択)することにより、メモリ・
バンクの1つを選択する。
C)メモリ・バンクからユーザに何らかの形で戻される
各情報ブロック(例えばそのユーザから受け取りそのユ
ーザのために実行されたメモリ・コマンドの肯定応答)
に、当該のメモリ・バンクの負荷状況に関する若干の情
報を含める。
各情報ブロック(例えばそのユーザから受け取りそのユ
ーザのために実行されたメモリ・コマンドの肯定応答)
に、当該のメモリ・バンクの負荷状況に関する若干の情
報を含める。
d)受け取った負荷状況情報を入力することにより、ユ
ーザの所(またはメモリ・インタフェース)に設けた負
荷状況テーブルを更新する。
ーザの所(またはメモリ・インタフェース)に設けた負
荷状況テーブルを更新する。
この新規な技法を用いることにより、負荷状況情報が、
何らかの形で転送される情報ブロック中で運ばれるため
、最小限の追加動作で、追加のデータ転送を必要とせず
に、すべてのメモリ・バンク間に負荷を均等に分配させ
ることが可能となる。
何らかの形で転送される情報ブロック中で運ばれるため
、最小限の追加動作で、追加のデータ転送を必要とせず
に、すべてのメモリ・バンク間に負荷を均等に分配させ
ることが可能となる。
3)メモリ・インタフェースの機能とコマンドのフォー
マット メモリ・インタフェースMIの機能は、各メモリ・ユー
ザMUへの標準的な分散メモリ・インタフェースを提供
することにある。MIは、メモリ・ユーザMUから提示
されるメモリ・コマンドを次のように処理する。MIは
、(本発明の負荷均衡化技法を用いて)適切なメモリ・
バンクMBを選択し、相互接続ネットワークNWを介し
てそのMBへの接続をセットアツプし、コマンド(デー
タを含むこともある)を作成しその接続を介して送出し
、コマンド応答(場合によっては、やはりデータを含む
こともある)を待ち、接続を解除し、メモリ・ユーザM
U向けの完了状況データを作成する。
マット メモリ・インタフェースMIの機能は、各メモリ・ユー
ザMUへの標準的な分散メモリ・インタフェースを提供
することにある。MIは、メモリ・ユーザMUから提示
されるメモリ・コマンドを次のように処理する。MIは
、(本発明の負荷均衡化技法を用いて)適切なメモリ・
バンクMBを選択し、相互接続ネットワークNWを介し
てそのMBへの接続をセットアツプし、コマンド(デー
タを含むこともある)を作成しその接続を介して送出し
、コマンド応答(場合によっては、やはりデータを含む
こともある)を待ち、接続を解除し、メモリ・ユーザM
U向けの完了状況データを作成する。
各コマンドは12バイトのヘッダと、その後に続く任意
選択のデータ・フィールドから構成される。各コマンド
応答は、任意選択のデータ・フィールドと、その後に続
く5バイトのトレーラから構成される。
選択のデータ・フィールドから構成される。各コマンド
応答は、任意選択のデータ・フィールドと、その後に続
く5バイトのトレーラから構成される。
異なる4種のメモリ・コマンドとそれに関連するコマン
ド応答が設けられている。そのフォーマットを第3図に
示し、それらのコマンドについて以下に簡単に説明する
。
ド応答が設けられている。そのフォーマットを第3図に
示し、それらのコマンドについて以下に簡単に説明する
。
CREATE (フォーマット: Cmdのみ)このコ
マンドは、共用メモリ中にレコード(記憶域の論理単位
)を作成させ、それに論理レコード・アドレス(LRA
)を割り当てさせるものである。LRAは、システム特
をの参照であり、共用メモリ中のメモリ・レコードを取
り出せるようにする。本明細書で開示する新しい負荷均
衡化技法に従って、メモリ・バンクMBが選択される。
マンドは、共用メモリ中にレコード(記憶域の論理単位
)を作成させ、それに論理レコード・アドレス(LRA
)を割り当てさせるものである。LRAは、システム特
をの参照であり、共用メモリ中のメモリ・レコードを取
り出せるようにする。本明細書で開示する新しい負荷均
衡化技法に従って、メモリ・バンクMBが選択される。
(データがまだ記憶されていない間は)新しいレコード
に記憶空間が割り振られない。
に記憶空間が割り振られない。
コマンド応答は、LRAを当該のメモリ・インタフェー
スMIに戻す。
スMIに戻す。
PUT (フォーマット: CmcL LRA% Ds
データ) PUTコマンドは、それが運ぶデータを指定されたレコ
ード(LRA)の指定された変位りの所に書き込ませる
ものである。(PUTコマンドが実行されるとき)デー
タが記憶できるように十分な記憶空間がそのレコードに
割り振られる。
データ) PUTコマンドは、それが運ぶデータを指定されたレコ
ード(LRA)の指定された変位りの所に書き込ませる
ものである。(PUTコマンドが実行されるとき)デー
タが記憶できるように十分な記憶空間がそのレコードに
割り振られる。
コマンド応答は、(各コマンド応答に含まれる戻りコー
ドRC以外には)特定のデータをメモリ・インタフェー
スMlに戻さない。
ドRC以外には)特定のデータをメモリ・インタフェー
スMlに戻さない。
GET (フォーマット:CmdlLRI D)N)
GETコマンドは、指定されたレコード(LRA)の指
定された変位りからNデータ・バイトを読み取らせるも
のである。
定された変位りからNデータ・バイトを読み取らせるも
のである。
コマンド応答は、Nデータ・バイトをメモリ・インタフ
ェースMIに戻す。
ェースMIに戻す。
RELEASE (フォーマット: Cmd、LRA)
RELEASEコマンドは、指定されたレコード(LR
A)を取り消させ、それに関連する記憶空間を解放させ
るものである。
A)を取り消させ、それに関連する記憶空間を解放させ
るものである。
コマンド応答は、(戻りコード以外には)特定のデータ
を含まない。
を含まない。
戻りコードの構造と負荷状況標識
戻すコード(RC)は、メモリ・バンクから戻される各
コマンド応答の一部分で、次の構造をもつ8ビツト・バ
イトである。最初の4ビツトRRRRは、当該のメモリ
・コマンドの完了状況を示す特定のコードである。5番
目のビットLは、負荷状況標識(LSI)であり、その
2進値は当該のメモリ・バンクの負荷状況を示す。1は
(所与の閾値より低い)低負荷を表し、0は高負荷を示
す。
コマンド応答の一部分で、次の構造をもつ8ビツト・バ
イトである。最初の4ビツトRRRRは、当該のメモリ
・コマンドの完了状況を示す特定のコードである。5番
目のビットLは、負荷状況標識(LSI)であり、その
2進値は当該のメモリ・バンクの負荷状況を示す。1は
(所与の閾値より低い)低負荷を表し、0は高負荷を示
す。
RCの最後の3ビツトは、この例では使用しない。しか
し、いくつかの記憶域の負荷段階を区別するのにこれら
を使用することができる。(上記の1ビツトの代りに)
2ビツトの負荷状況標aLを使用する場合、利用度また
は負荷の4つの段階を区別することができる。
し、いくつかの記憶域の負荷段階を区別するのにこれら
を使用することができる。(上記の1ビツトの代りに)
2ビツトの負荷状況標aLを使用する場合、利用度また
は負荷の4つの段階を区別することができる。
コマンド応答中で戻されるLSIは、MBにより、「空
き記憶空間」と「空き記憶空間閾値」の2つの量の比較
に基づいて生成される。空き記憶空間とは、そのレコー
ドにも割り当てられていないMB中の記憶位置の量であ
る。この量は、コマンドの実行中、MB制御ブロックに
よって維持される。CREATEコマンドとGETコマ
ンドは空き記憶空間を消費しないので、この量は変化し
ない。PUTコマンドは記憶空間を消費するので、空き
記憶空間が減少する。RELEASEコマンドは、空き
記憶空間を増加させる。空き記憶空間閾値とは、各MB
中で初期設定されている値である。
き記憶空間」と「空き記憶空間閾値」の2つの量の比較
に基づいて生成される。空き記憶空間とは、そのレコー
ドにも割り当てられていないMB中の記憶位置の量であ
る。この量は、コマンドの実行中、MB制御ブロックに
よって維持される。CREATEコマンドとGETコマ
ンドは空き記憶空間を消費しないので、この量は変化し
ない。PUTコマンドは記憶空間を消費するので、空き
記憶空間が減少する。RELEASEコマンドは、空き
記憶空間を増加させる。空き記憶空間閾値とは、各MB
中で初期設定されている値である。
MBの動作は、本発明の主型ではないので、これ以上説
明しない。
明しない。
4)メモリ・ユーザとメモリ制御ブロックメモリ・ユー
ザは、、MUコロ−ル・メモリと呼ばれる主記憶装置を
備えたマイクロプロセッサと見なすことができる。メモ
リ・コマンドは、共用メモリ(全メモリ・バンクMBの
全体)とMUコロ−ル・メモリの間でデータを移動させ
る。
ザは、、MUコロ−ル・メモリと呼ばれる主記憶装置を
備えたマイクロプロセッサと見なすことができる。メモ
リ・コマンドは、共用メモリ(全メモリ・バンクMBの
全体)とMUコロ−ル・メモリの間でデータを移動させ
る。
メモリ・ユーザM’Uとそのメモリ・インタフェースM
Iの間の情報交換は、メモリ制御ブロックを用いて行な
われる。メモリ制御ブロックのフォーマットを第4図に
示す。
Iの間の情報交換は、メモリ制御ブロックを用いて行な
われる。メモリ制御ブロックのフォーマットを第4図に
示す。
メモリ・コマンドは、メモリ・ユーザMUにより、「メ
モリ・コマンド・ワードj (MCW)と呼ばれる制御
ブロックとして提示され、メモリ・ユーザMUのローカ
ル・メモリ中でセットアツプされる。MCWは、メモリ
・コマンドの種類(CREATElGET、PtJT、
RELEASE)、論理レコード・アドレス(LRA)
、レコード内でのデータの変位(D)、データ・カウ
ント(N) 、及びMUコロ−ル・メモリ内のデータ域
のアドレス(ローカル・メモリ・ポインタLMP)を指
定する制御情報である。
モリ・コマンド・ワードj (MCW)と呼ばれる制御
ブロックとして提示され、メモリ・ユーザMUのローカ
ル・メモリ中でセットアツプされる。MCWは、メモリ
・コマンドの種類(CREATElGET、PtJT、
RELEASE)、論理レコード・アドレス(LRA)
、レコード内でのデータの変位(D)、データ・カウ
ント(N) 、及びMUコロ−ル・メモリ内のデータ域
のアドレス(ローカル・メモリ・ポインタLMP)を指
定する制御情報である。
完了状況データは、メモリ・インタフェースMIからメ
モリ・ユーザMUにMUコロ−ル・メモリ中の制御ブロ
ック「メモリ状況ワードJ (MSW)として提示さ
れる。完了状況データは、コマンドの実行が溝足できる
ものであったか否かに関する情報(CC)を含む。CR
EATEコマンドの場合は、MSWは作成されるレコー
ドの論理レコード・アドレス(LRA)も含む。
モリ・ユーザMUにMUコロ−ル・メモリ中の制御ブロ
ック「メモリ状況ワードJ (MSW)として提示さ
れる。完了状況データは、コマンドの実行が溝足できる
ものであったか否かに関する情報(CC)を含む。CR
EATEコマンドの場合は、MSWは作成されるレコー
ドの論理レコード・アドレス(LRA)も含む。
5)メモリ・インタフェース論理回路
メモリ・インタフェース論理回路の構成図を第5図に示
す。その要素及び構造は、次の通りである。
す。その要素及び構造は、次の通りである。
MIは、基本的に中心部分31、相互接続ネットワーク
(NW)ボー)33、DMA部分またはユーザ・ボート
35、及び制御部37を含む。
(NW)ボー)33、DMA部分またはユーザ・ボート
35、及び制御部37を含む。
中心部分31は、演算論理機構(ALU)41、アキエ
ムレータ・レジスタ(ACCU)43、ローカル記憶機
構LS45、及びローカル記憶アドレス・レジスタLS
AR47を含む。Aバス49とBバス51がALUの入
力端に接続され、結果バス53がALUの出力端に接続
されている。LSに入力されたデータは線55.57.
59を介して転送され、LSから出力されたデータは線
61を介して転送される。
ムレータ・レジスタ(ACCU)43、ローカル記憶機
構LS45、及びローカル記憶アドレス・レジスタLS
AR47を含む。Aバス49とBバス51がALUの入
力端に接続され、結果バス53がALUの出力端に接続
されている。LSに入力されたデータは線55.57.
59を介して転送され、LSから出力されたデータは線
61を介して転送される。
NWポート33は、レジスタ4個とカウンタ1個を含む
。NW入カデータ(NWD I )レジスタ63は、L
Sの出力線61と双方向NWデータ・バス65の間に接
続されている。NW出力データ(NWDO)レジスタ8
7は、LSのデータ入力線55とNWデータ・バス65
の間に接続されている。NW入力制御(NWCI )レ
ジスタ69は、ALUの結果バス53とNW制御入力線
71の間に接続されている。NW出力制御(NWCO)
レジスタ73は、Aバス49とNW制御出力線75の間
に接続されている。NWカウンタ(NWCT)77は、
ALU結果バス53からその入力を受け取る。ネットワ
ークからバイトを受け取ったとき(またはネットワーク
にバイトが送られたとき)、NWカウント77の内容が
1だけ増分(または減分)され、Oかどうかテストされ
る。
。NW入カデータ(NWD I )レジスタ63は、L
Sの出力線61と双方向NWデータ・バス65の間に接
続されている。NW出力データ(NWDO)レジスタ8
7は、LSのデータ入力線55とNWデータ・バス65
の間に接続されている。NW入力制御(NWCI )レ
ジスタ69は、ALUの結果バス53とNW制御入力線
71の間に接続されている。NW出力制御(NWCO)
レジスタ73は、Aバス49とNW制御出力線75の間
に接続されている。NWカウンタ(NWCT)77は、
ALU結果バス53からその入力を受け取る。ネットワ
ークからバイトを受け取ったとき(またはネットワーク
にバイトが送られたとき)、NWカウント77の内容が
1だけ増分(または減分)され、Oかどうかテストされ
る。
ユーザ・ポート35は、レジスタ3個とカウンタ1個を
含む。MU入力データ(MUD I )レジスタ79は
、LS入力線57と双方向ユーザ・データ・バス81の
間に接続されている。MU出力データ(MUDO)レジ
スタ83は、LS出力線61とユーザ・データ・バス8
1の間に接続されている。MUアドレス(MUA)レジ
スタ85は、ALU出力バス53とユーザ・アドレス線
87の間に接続されている。MUカウンタ(MUCT)
89は、ALU結果バス53からその入力を受け取る。
含む。MU入力データ(MUD I )レジスタ79は
、LS入力線57と双方向ユーザ・データ・バス81の
間に接続されている。MU出力データ(MUDO)レジ
スタ83は、LS出力線61とユーザ・データ・バス8
1の間に接続されている。MUアドレス(MUA)レジ
スタ85は、ALU出力バス53とユーザ・アドレス線
87の間に接続されている。MUカウンタ(MUCT)
89は、ALU結果バス53からその入力を受け取る。
ユーザからバイトを受け取ったとき(またはユーザにバ
イトが提供されたとき)、その内容が1だけ減分され、
0かどうかテストされる。
イトが提供されたとき)、その内容が1だけ減分され、
0かどうかテストされる。
制御部37は、次のデータまたは制御信号を供給する。
1F = 即値フィールド(LSオペランドま
たはLSアドレス) ALUOP= ALU命令コード(ADDlSUBT
RACTlANDloR,X 0R1ROTATE等) ABS=Aバス・ソース BBS=Bバス・ソース LSOP = LS命令コード(READ、WRI
TE、N0OP) LSA=LSアドレス制御 MISC= レジスタへの書込み、DMAの起動など
のための雑制御 Ml論理回路は、次の機能を有する。
たはLSアドレス) ALUOP= ALU命令コード(ADDlSUBT
RACTlANDloR,X 0R1ROTATE等) ABS=Aバス・ソース BBS=Bバス・ソース LSOP = LS命令コード(READ、WRI
TE、N0OP) LSA=LSアドレス制御 MISC= レジスタへの書込み、DMAの起動など
のための雑制御 Ml論理回路は、次の機能を有する。
1、Ml論理回路は、2個のオペランドに対して算術演
算とプール演算を行なうことができる。
算とプール演算を行なうことができる。
その1つは制御部が生成する即値(IF)であり、もう
1つはLS位置または制御レジスタの内容である。
1つはLS位置または制御レジスタの内容である。
2、MI論理回路はMUローカル・メモリに読取り/書
込みアクセスを行なうことができ、ローカル・メモリ・
アドレス及びバイト・カウントはそれぞれMUアドレス
・レジスタ(MUA)とMUカウント・レジスタ(MU
CT)中で指定される。書込み中のデータのソース(ま
たは読取り中のデータの宛先)は、LSアドレス・レジ
スタ(LSAR)によってアドレスされるLSである。
込みアクセスを行なうことができ、ローカル・メモリ・
アドレス及びバイト・カウントはそれぞれMUアドレス
・レジスタ(MUA)とMUカウント・レジスタ(MU
CT)中で指定される。書込み中のデータのソース(ま
たは読取り中のデータの宛先)は、LSアドレス・レジ
スタ(LSAR)によってアドレスされるLSである。
3、MI論理回路は、「NW入力制御レジスタ(NWC
I)に接続要求とMBアドレス(識別子)をロードし、
「NW出力制御レジスタ(NWCO)」中で接続許可が
戻されるのを待つことにより、相互接続ネットワークN
Wを介してメモリ・バンクMBへの接続を確立すること
ができる。同様に、NWCIに接続解除要求をロードし
、NWCO中で接続許可が戻されるのを待つことにより
、その接続が解放できる。相互接続ネットワークNWは
本発明の主題ではないので、これ以上詳しくは説明しな
い(相互接続ネットワークについて記載した文献は、第
1節に挙げた)。メモリ・バンクMBへの接続が確立さ
れると、MI論理回路はその接続を介して双方向データ
転送を行なうことができる。LSARが値Aに初期設定
され、NWカウント・レジスタ(NWCT)が値Nに初
期設定されていると仮定すると、LS (A)にあるN
バイトが読み出されてMBに送られる。このインバウン
ド・データ転送は、NWCT=O及びLSAR=A+N
のとき終了する。次いで、MBはバイト・ストリングを
戻し、それが受け取られて、LSのアドレスA+Nから
始まるアドレスの所に記憶される。受け取ったバイトの
数は、アウトバウンド転送の完了時にNWCT中で得ら
れる。このようにして、コマンド及びコマンド応答がメ
モリ拳インタフェースMIとメモリ・バンクMBの間で
交換される。
I)に接続要求とMBアドレス(識別子)をロードし、
「NW出力制御レジスタ(NWCO)」中で接続許可が
戻されるのを待つことにより、相互接続ネットワークN
Wを介してメモリ・バンクMBへの接続を確立すること
ができる。同様に、NWCIに接続解除要求をロードし
、NWCO中で接続許可が戻されるのを待つことにより
、その接続が解放できる。相互接続ネットワークNWは
本発明の主題ではないので、これ以上詳しくは説明しな
い(相互接続ネットワークについて記載した文献は、第
1節に挙げた)。メモリ・バンクMBへの接続が確立さ
れると、MI論理回路はその接続を介して双方向データ
転送を行なうことができる。LSARが値Aに初期設定
され、NWカウント・レジスタ(NWCT)が値Nに初
期設定されていると仮定すると、LS (A)にあるN
バイトが読み出されてMBに送られる。このインバウン
ド・データ転送は、NWCT=O及びLSAR=A+N
のとき終了する。次いで、MBはバイト・ストリングを
戻し、それが受け取られて、LSのアドレスA+Nから
始まるアドレスの所に記憶される。受け取ったバイトの
数は、アウトバウンド転送の完了時にNWCT中で得ら
れる。このようにして、コマンド及びコマンド応答がメ
モリ拳インタフェースMIとメモリ・バンクMBの間で
交換される。
6)メモリ・インタフェース論理回路でのコマンド処理
第6図の流れ図は、メモリ・インタフェース間工論理回
路でのコマンド処理の間に実行される諸ステップを示す
。具体的には、この図は、本発明の負荷均衡化技法の重
要な部分であるメモリ利用度(メモリ負荷状況)情報が
、メモリ・コマンドの処理時にどのように扱われるかを
示している。
路でのコマンド処理の間に実行される諸ステップを示す
。具体的には、この図は、本発明の負荷均衡化技法の重
要な部分であるメモリ利用度(メモリ負荷状況)情報が
、メモリ・コマンドの処理時にどのように扱われるかを
示している。
ステップA: MIが、(DMA技法を用いてユーザ
のローカル・メモリからメモリ制御ワードM C’Wを
読み取り、MCWを自分のローカル記憶装置LSに記憶
する。次いで、コマンドを復号する。コマンドがCRE
ATEコマンドか否かに応じて、次に2つのステップの
どちらかをとる。
のローカル・メモリからメモリ制御ワードM C’Wを
読み取り、MCWを自分のローカル記憶装置LSに記憶
する。次いで、コマンドを復号する。コマンドがCRE
ATEコマンドか否かに応じて、次に2つのステップの
どちらかをとる。
ステップBl (Cmd=CREATE): 負荷均
衡化技法(第7図に関して第7節で説明する選択)に応
じて、メモリ・バンクの一つが選択される。現メモリ・
バンクを指定するCMB変数(下記で説明する)がセッ
トアツプされる。
衡化技法(第7図に関して第7節で説明する選択)に応
じて、メモリ・バンクの一つが選択される。現メモリ・
バンクを指定するCMB変数(下記で説明する)がセッ
トアツプされる。
ステラB2 (Cmd=CREATE以外):このコマ
ンド用に使用するメモリ・バンクMBがMCWのLRA
フィールドによって決定される。
ンド用に使用するメモリ・バンクMBがMCWのLRA
フィールドによって決定される。
下記第7節すの注記を参照のこと。(現メモリ・バンク
を指定する)CMB変数がセットアツプされる。
を指定する)CMB変数がセットアツプされる。
ステップC: Mlが、相互接続ネットワークNWを
介して現CMBで指定されるメモリ・バンクに至る接続
を確立する。コマンドがローカル記憶装置中でセットア
ツプされる(これは負荷均衡化技法にとって重要ではな
いので、詳細は示さない)。LS中のコマンドの開始ア
ドレスがLSARに入力され、コマンドのバイト・カウ
ントがレジスタNWCTにロードされる。次いでにコマ
ンドが選択されたメモリ・バンクMBに送られる。
介して現CMBで指定されるメモリ・バンクに至る接続
を確立する。コマンドがローカル記憶装置中でセットア
ツプされる(これは負荷均衡化技法にとって重要ではな
いので、詳細は示さない)。LS中のコマンドの開始ア
ドレスがLSARに入力され、コマンドのバイト・カウ
ントがレジスタNWCTにロードされる。次いでにコマ
ンドが選択されたメモリ・バンクMBに送られる。
MBからコマンド応答が戻されるのを待つ。
ステップD: MI中でコマンド応答を受け取ると、
それが処理される(これは負荷均衡化技法にとって重要
ではないので、詳細は示さない)。
それが処理される(これは負荷均衡化技法にとって重要
ではないので、詳細は示さない)。
戻りコードのLビットが、負荷状況標識LSIとして保
持される。
持される。
ステップE: LSIビットをテストして、今使用し
たMBの負荷状況を決定する。その結果に応じて、次に
2つのステップのどちらかをとる。
たMBの負荷状況を決定する。その結果に応じて、次に
2つのステップのどちらかをとる。
ステラFl (LSI=1): 選択されたMBが低
負荷状態にある。(下記で説明する、すべての低負荷メ
モリ・バンクを識別する)LL変数と、(現メモリ・バ
ンクを指定する)CMB変数が、OR演算によって組み
合わされて、その最後に使用した(コマンド応答によっ
てその負荷状況を報告したばかりの)メモリ・バンクが
低負荷状態になるように、LLを更新する。
負荷状態にある。(下記で説明する、すべての低負荷メ
モリ・バンクを識別する)LL変数と、(現メモリ・バ
ンクを指定する)CMB変数が、OR演算によって組み
合わされて、その最後に使用した(コマンド応答によっ
てその負荷状況を報告したばかりの)メモリ・バンクが
低負荷状態になるように、LLを更新する。
ステップF2 (LSI=O): 選択されたMBが
高負荷状況にある。(すべての低負荷メモリ・バンクを
識別する)LL変数と、(現メモリ・バンクを測定する
)CMB変数が、AND演算によって組み合わされて、
当該のMBの高負荷状況を反映するように、LLを更新
する。
高負荷状況にある。(すべての低負荷メモリ・バンクを
識別する)LL変数と、(現メモリ・バンクを測定する
)CMB変数が、AND演算によって組み合わされて、
当該のMBの高負荷状況を反映するように、LLを更新
する。
ステップG: ここでMIがそのローカル記憶装置LS
内のメモリ状況ワードMSWを(コマンド応答と一緒に
受け取った情報を使って)セットアツプする。次いで、
MSWが開始するLSアドレスをLSARにロードし、
MSWのバイト・カウントをカウンタMUCTにロード
し、LSからのMSWをユーザのローカル・メモリにコ
ピーする。最後に、相互接続ネットワークを介するMB
への接続が解除される。
内のメモリ状況ワードMSWを(コマンド応答と一緒に
受け取った情報を使って)セットアツプする。次いで、
MSWが開始するLSアドレスをLSARにロードし、
MSWのバイト・カウントをカウンタMUCTにロード
し、LSからのMSWをユーザのローカル・メモリにコ
ピーする。最後に、相互接続ネットワークを介するMB
への接続が解除される。
メモリ・バンクの選択及び負荷状況のマツピング用のM
I内のプール変数 この処理では、4個のプール変数CMB1RR。
I内のプール変数 この処理では、4個のプール変数CMB1RR。
TLlLLを使用する。これらの変数はメモリ・インタ
フェースMIのローカル記憶域(LS)内にあり、下記
のように定義される。この4個の変数は、現在当該のM
Iが使用中のメモリ・バンクMB、ラウンド・ロビン変
数、導入済みのすべてのメモリ・バンクの統合リスト、
及び現在低負荷状況にある(すなわち、もつとCREA
TE要求を受けることができる)メモリ・バンクのリス
トを提供する。下記の例では、メモリ・バンクの最大数
は8であると仮定する。9個以上のメモリ・バンクが設
けられる場合は、この3つの変数は、下記で仮定するよ
うにただの1バイトではなく、2バイト(以上)でなけ
ればならない。
フェースMIのローカル記憶域(LS)内にあり、下記
のように定義される。この4個の変数は、現在当該のM
Iが使用中のメモリ・バンクMB、ラウンド・ロビン変
数、導入済みのすべてのメモリ・バンクの統合リスト、
及び現在低負荷状況にある(すなわち、もつとCREA
TE要求を受けることができる)メモリ・バンクのリス
トを提供する。下記の例では、メモリ・バンクの最大数
は8であると仮定する。9個以上のメモリ・バンクが設
けられる場合は、この3つの変数は、下記で仮定するよ
うにただの1バイトではなく、2バイト(以上)でなけ
ればならない。
現メモリ・バンク(CMB)
Oから7までの番号をつけた8ビツト変数。
現コマンドに関係する選択されたメモリ・バンクMBを
示す位置の1ビツト以外の全ビットはゼロである。
示す位置の1ビツト以外の全ビットはゼロである。
例: CMB=OO100000
この例では、MB番号2が選択されている。
ラウンド・ロビン変数(RR):
0から7までの番号をつけた8ビ・ソト変数。
a後のcREATEコマンドの間に選択されたメモリ・
バンクMBを示す位置の1ビツト以外の全ビットがゼロ
である。
バンクMBを示す位置の1ビツト以外の全ビットがゼロ
である。
例: RR=OOO10000
この例では、MIが出した最後のCREATEコマンド
の間に、MB番号3が選択された。
の間に、MB番号3が選択された。
総合リスト(TL):
0から7までの番号をつけた8ビツト変数。
TL中のビット位置が導入済みメモリ・バンクMBにマ
ツプされる。
ツプされる。
例: TL=11110000
この例では、4つのMBが位置0.1.2.3に導入さ
れている。
れている。
定負荷リスト(LL):
0から7までの番号をつけた8ビツト変数。
有意ビットは、TL中で指定された導入済みメモリ・バ
ンクMBに対応する。
ンクMBに対応する。
1の有意ビットは、関連するMBが低負荷状態にあるこ
とを示す。
とを示す。
0の有意ビットは、関連するMBが高負荷状態にあるこ
とを示す。
とを示す。
例: LL=xxxxOO00
この例では、関連するMBが高負荷状態の場合はx=0
、関連するMBが低負荷状態の場合はX=1である。
、関連するMBが低負荷状態の場合はX=1である。
7)メモリ・インタフェースによるメモリ・バンクの選
択 メモリ・コマンドを実行するためにメモリ・インタフェ
ースMlがメモリ・バンクMBを選択しなければならな
い状況には次の2つがある。(a)CREATEコマン
ドでは、本発明の負荷均衡化技法に従って、新しいメモ
リ・バンクを選択しなければならない。(b)他のすべ
てのメモリ・コマンドでは、メモリ・バンクは(LRA
パラメータから)わかっており、MIは直ちにこのMB
を識別することができる。
択 メモリ・コマンドを実行するためにメモリ・インタフェ
ースMlがメモリ・バンク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の選択は、負荷均衡化技法を用いて
、各メモリ・インタフェースで利用できるメモリ負荷状
況に関する知識を利用して行なう。低負荷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 % M Bの最大数
)。これは、ROTATEI ALU演算によって行
なわれる。
の流れ図に示す。まず最初に、LLがすべて0かどうか
テストして、セットLL(低負荷MB)が空かどうか調
べる。(1)LLがすべて0ではない場合、すなわち低
負荷状況のMBが少な(とも1個ある場合、RRの値が
1だけ増加される(モジューロm % M Bの最大数
)。これは、ROTATEI ALU演算によって行
なわれる。
次に、変数RRとLLがANDされる。結果がすべてO
の場合、新しいRRは低負荷MBをヒツトせず、このス
テップを繰り返さなければならない。
の場合、新しいRRは低負荷MBをヒツトせず、このス
テップを繰り返さなければならない。
結果がすべて0ではない場合、新しいRRは低負荷MB
をヒツトし、したがって、それを使って、CREATE
コマンド実行用のMBを選択することができる。(2)
LLがすべて0の場合、低負荷MBはなく、どのMBで
も使える。この場合も、現RRが1だけ増加される(モ
ジューロm)。次に、新しいRRと変数TLがANDさ
れる。その結果がすべてOの場合、新しいRRは利用可
能なMBをヒツトせず、このステップを繰り返さなけれ
ばならない。結果がすべて0ではない場合、新しいRR
は利用可能なMBをヒツトし、それを使って、新しいレ
コード作成のためにアクセスすべき次のMBを選択する
ことができる。
をヒツトし、したがって、それを使って、CREATE
コマンド実行用のMBを選択することができる。(2)
LLがすべて0の場合、低負荷MBはなく、どのMBで
も使える。この場合も、現RRが1だけ増加される(モ
ジューロm)。次に、新しいRRと変数TLがANDさ
れる。その結果がすべてOの場合、新しいRRは利用可
能なMBをヒツトせず、このステップを繰り返さなけれ
ばならない。結果がすべて0ではない場合、新しいRR
は利用可能なMBをヒツトし、それを使って、新しいレ
コード作成のためにアクセスすべき次のMBを選択する
ことができる。
選択されたMBは、RRの内容によって識別される。次
にこのRRの内容が、後続の処理のためCMBにロード
される。
にこのRRの内容が、後続の処理のためCMBにロード
される。
b’)LRAが既知のときのMBの選択CREATEコ
マンド上でMBから戻されるLRAは32ビツトの識別
子であり、そのビット8.9.10は、MBを指定する
フードを含む(000はMB番号0を識別し、001は
MB番号1を識別し、以下同様)。
マンド上でMBから戻されるLRAは32ビツトの識別
子であり、そのビット8.9.10は、MBを指定する
フードを含む(000はMB番号0を識別し、001は
MB番号1を識別し、以下同様)。
したがって、MI論理回路は、どのMBへの接続を確立
しなければならないかを知っている。
しなければならないかを知っている。
CREATE以外のコマンドのためのMBを選択するに
は、(LS内にコピーされたばかりの)MCW内のLR
Aフィールドを識別し、それからビット8〜10を抜き
出し、この3ビツト・コードをCMBで使用する8ビツ
ト・フォーマットに変換し、得られた値をCMBにロー
ドする。
は、(LS内にコピーされたばかりの)MCW内のLR
Aフィールドを識別し、それからビット8〜10を抜き
出し、この3ビツト・コードをCMBで使用する8ビツ
ト・フォーマットに変換し、得られた値をCMBにロー
ドする。
第1図は、本発明で使用される共用記憶装置を備えた複
数ユーザ・システムの全体構成の構成図である。 第2図は、第1図のシステム内での情報流れとメモリ・
アクセスの順序を示す概略図である。 第3図は、第1図のシステム内での記憶動作に使用され
るコマンドとコマンド応答のフォーマットを示す図であ
る。 第4図は、ユーザのローカル・メモリに記憶され、ユー
ザとそのメモリ・インタフェースの間での情報転送に使
われるメモリ制御ブロックのフォーマットを示す図であ
る。 第5図は、第1図のシステム内でユーザと共用記憶装置
を相互接続するメモリ・インタフェース(MI)の構成
図である。 第6図は、メモリ・インタフェース論理回路内でのメモ
リ・コマンドの処理の流れ図である。 第7図は、メモリ・インタフェースにより本発明の負荷
均衡化技法を使って行なわれる、メモリ・バンク選択の
流れ図である。 11・・・・メモリ・ユーザ(MU)、13・・・・メ
モリ・インタフェース(MI)、15・・・・相互接続
ネットワーク(MW)、17・・・・メモリ・バンク(
MB)。 共用メモリ 篤1 図 全体壜威 冨 3 口 コマンドのフォーマ−/1−とコマノド応答リフオー1
71−コマンド コマンド応答 メモリ・インク人−スmaメジ 算 回 第4図 MCWビMSWのフォーマリド MI#5!ビじを匈l゛のコマノドの々jIMI*3里
田ヲ各nこのコマ、ドの辷理纂 6 図
数ユーザ・システムの全体構成の構成図である。 第2図は、第1図のシステム内での情報流れとメモリ・
アクセスの順序を示す概略図である。 第3図は、第1図のシステム内での記憶動作に使用され
るコマンドとコマンド応答のフォーマットを示す図であ
る。 第4図は、ユーザのローカル・メモリに記憶され、ユー
ザとそのメモリ・インタフェースの間での情報転送に使
われるメモリ制御ブロックのフォーマットを示す図であ
る。 第5図は、第1図のシステム内でユーザと共用記憶装置
を相互接続するメモリ・インタフェース(MI)の構成
図である。 第6図は、メモリ・インタフェース論理回路内でのメモ
リ・コマンドの処理の流れ図である。 第7図は、メモリ・インタフェースにより本発明の負荷
均衡化技法を使って行なわれる、メモリ・バンク選択の
流れ図である。 11・・・・メモリ・ユーザ(MU)、13・・・・メ
モリ・インタフェース(MI)、15・・・・相互接続
ネットワーク(MW)、17・・・・メモリ・バンク(
MB)。 共用メモリ 篤1 図 全体壜威 冨 3 口 コマンドのフォーマ−/1−とコマノド応答リフオー1
71−コマンド コマンド応答 メモリ・インク人−スmaメジ 算 回 第4図 MCWビMSWのフォーマリド MI#5!ビじを匈l゛のコマノドの々jIMI*3里
田ヲ各nこのコマ、ドの辷理纂 6 図
Claims (1)
- 【特許請求の範囲】 ユーザ装置から記憶装置に送られるコマンドによって
記憶動作が引き起こされ、各コマンドに応答して記憶装
置からユーザ装置にコマンド応答が戻されるシステム内
で、複数のユーザ装置が共通に使用する複数の記憶装置
間で記憶負荷を均等に分配する記憶負荷分配方法であっ
て、 記憶装置からユーザ装置に戻される各コマンド応答中に
、当該の記憶装置の記憶装置利用状況を反映する負荷状
況標識を挿入するステップと、各ユーザ装置のもとで、
システムのすべての導入済み記憶装置の記憶負荷状況を
反映する負荷状況テーブルを確立するステップと、 コマンド応答と一緒に受け取った各負荷状況標識に応答
して上記負荷状況テーブルを更新するステップと、 新しい記憶レコードを何れかの記憶装置内で作成するこ
とを要求するコマンドをユーザ装置から送る前に、上記
負荷状況テーブルに照会して、上記テーブル中で低負荷
状況であると指示されている記憶装置を、記憶レコード
の作成を要求する上記コマンドの受取り先として選択す
るステップを含む記憶負荷方法。
Applications Claiming Priority (2)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| EP88480101.0 | 1988-12-23 | ||
| EP19880480101 EP0374337B1 (en) | 1988-12-23 | 1988-12-23 | Load balancing technique in shared memory with distributed structure |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| JPH02259944A true JPH02259944A (ja) | 1990-10-22 |
| JPH0581939B2 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) |
Cited By (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JPWO2012172683A1 (ja) * | 2011-06-17 | 2015-02-23 | 富士通株式会社 | 演算処理装置、情報処理装置および演算処理装置の制御方法 |
Families Citing this family (10)
| 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 |
| ATE494694T1 (de) | 2001-05-17 | 2011-01-15 | Alcatel Lucent | Paketvermittlung mit verteiltem gemeinsam benutztem speicher |
| DE60232519D1 (de) | 2001-07-17 | 2009-07-16 | Alcatel Internetworking Inc | Inband-nachrichtensynchronisierung für eine verteilte paketvermittlung mit gemeinsam benutztem speicher |
| CA2382718C (en) | 2002-04-12 | 2007-02-13 | Ibm Canada Limited-Ibm Canada Limitee | Memory balancing and optimization services |
| WO2003088047A1 (en) * | 2002-04-12 | 2003-10-23 | Bay Microsystems, Inc. | System and method for memory management within a network processor architecture |
| US8627021B2 (en) * | 2011-08-31 | 2014-01-07 | Qualcomm Incorporated | Method and apparatus for load-based prefetch access |
| EP2754050B1 (en) | 2011-09-05 | 2016-12-07 | Huawei Technologies Co., Ltd. | A method and apparatus for storing data |
| 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)
| 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 |
-
1988
- 1988-12-23 DE DE19883853363 patent/DE3853363T2/de not_active Expired - Fee Related
- 1988-12-23 EP EP19880480101 patent/EP0374337B1/en not_active Expired - Lifetime
-
1989
- 1989-12-20 JP JP32860889A patent/JPH02259944A/ja active Granted
Cited By (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JPWO2012172683A1 (ja) * | 2011-06-17 | 2015-02-23 | 富士通株式会社 | 演算処理装置、情報処理装置および演算処理装置の制御方法 |
Also Published As
| Publication number | Publication date |
|---|---|
| DE3853363T2 (de) | 1995-09-28 |
| EP0374337A1 (en) | 1990-06-27 |
| DE3853363D1 (de) | 1995-04-20 |
| EP0374337B1 (en) | 1995-03-15 |
| JPH0581939B2 (ja) | 1993-11-16 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US5924097A (en) | Balanced input/output task management for use in multiprocessor transaction processing system | |
| US5261059A (en) | Crossbar interface for data communication network | |
| US4128882A (en) | Packet memory system with hierarchical structure | |
| US6971098B2 (en) | Method and apparatus for managing transaction requests in a multi-node architecture | |
| US6105085A (en) | Lock mechanism for shared resources having associated data structure stored in common memory include a lock portion and a reserve portion | |
| US5148527A (en) | Interface for independently establishing a link and transmitting high level commands including logical addresses from dedicated microprocessor to shared intelligent memory | |
| JP2002510079A (ja) | メモリ・インタフェース間で読み書きの順序付けられた実行を強制する方法と装置 | |
| JPH09223089A (ja) | 複数バス・ターゲットへのパケット・データの分割を可能にする方法および装置 | |
| JPH02259944A (ja) | 記憶負荷分散方法 | |
| JPH03118649A (ja) | メモリーサブシステム入力キュー | |
| CN113190353B (zh) | 一种将队列读写管理整合的软件实现方法 | |
| US7796624B2 (en) | Systems and methods for providing single-packet and multi-packet transactions in an integrated circuit | |
| EP0551789A1 (en) | Apparatus for recovering lost buffers in a data processing system | |
| US6240482B1 (en) | Host adapter having a plurality of register sets and corresponding operating nodes | |
| JPS61101851A (ja) | バツフア記憶域の動的資源管理方式 | |
| US9703739B2 (en) | Return available PPI credits command | |
| EP0936778A1 (en) | Digital data transfer apparatus | |
| JPH0887478A (ja) | プロセス間メッセージ通信方法 | |
| US9699107B2 (en) | Packet engine that uses PPI addressing | |
| US6629229B1 (en) | Message index descriptor | |
| JPH02294755A (ja) | データ処理装置 | |
| US20160057058A1 (en) | Cpp bus transaction value having a pam/lam selection code field | |
| US20160057079A1 (en) | Ppi allocation request and response for accessing a memory system | |
| CN116088753A (zh) | 一种基于ppi分配请求和响应的分组数据存储系统 | |
| Reghbati | An efficient time-shared link processor for supporting communication in parallel systems with dynamic structure |