(57)【特許請求の範囲】
【請求項１】
記憶装置に対するアクセスが、予め定められたデータサイズのブロック単位で行われ、記憶装置に対するアクセスが完了していないアクセス要求に係るブロック数であるアクセス負荷量を管理するアクセス管理方法であって、
記憶装置とそれを管理する管理装置の組が複数存在し、管理装置の間で記憶装置のアクセス負荷量を相互通知するとき、アクセス負荷量を問い合わせるべき相手を予め選定したうえで前記相互通知を行うことを特徴とするアクセス負荷管理方法。
【請求項２】
各管理装置は、複数の記憶装置の空き領域に関する情報に基づいて前記相手を選定する請求項１に記載の方法。
【請求項３】
実際にアクセス要求が発生したとき、前記問合せの結果、アクセス負荷量の少ない記憶装置を管理している管理装置に前記アクセス要求を転送する請求項１、２のいずれかに記載の方法。
【請求項４】
複数の記憶装置と、それらへのアクセスを管理する複数の管理装置と、複数の管理装置のいずれかを介して複数の記憶装置のいずれかにアクセスする演算装置とを含むとともに、各記憶装置に対するアクセスが、予め定められたデータサイズのブロック単位で行われ、各記憶装置に対するアクセスが完了していないアクセス要求に係るブロック数であるアクセス負荷量を管理するシステムにおいて、
各管理装置は、演算装置から自己にアクセス要求が発行されたときそのアクセス要求を転送する候補となる他の管理装置をアクセス要求の発生前に予め選定したうえで、前記他の管理装置が管理している記憶装置のアクセス負荷量を前記他の管理装置に予め問い合せておくことを特徴とする並列二次記憶システム。
【請求項５】
各管理装置は、複数の管理装置がそれぞれ管理している複数の記憶装置の空き領域に関する情報に基づいて前記他の管理装置を予め選定する請求項４に記載のシステム。
【請求項６】
実際にアクセス要求が発生したとき、前記問合せの結果、前記他の管理装置のうち、それが管理する記憶装置のアクセス負荷量が少ないものに前記アクセス要求を転送する請求項４、５のいずれかに記載のシステム。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
この発明は並列二次記憶システム、とくに、複数の記憶装置と、それらに対するアクセスを管理する複数の管理装置と、複数の記憶装置のいずれかにアクセスする演算装置とを含む並列二次記憶システムに関する。この発明はまた、そのシステムにて利用可能なアクセス負荷の管理方法に関する。
【０００２】
【従来の技術】
半導体技術やＩＣの内部構造の改良に伴い、プロセッサなどの演算装置の処理性能が飛躍的に向上した。演算装置の処理する大量のデータは磁気ディスク装置等の二次記憶装置（以下、単に記憶装置という）に格納されることが多いが、こうした記憶装置の性能の向上は、現在のところ演算装置のそれに追いついていない。記憶装置に対するデータの入出力がシステム全体のボトルネックになることもしばしばである。
【０００３】
こうした状況に鑑み、従来より並列二次記憶システムが知られている。そのシステムは、ディスクアレイなどと呼ばれる、並列に接続された複数の記憶装置をもち、複数のアクセス要求が平行して処理される。その結果、記憶装置全体としての処理速度を改善することができる。
【０００４】
【発明が解決しようとする課題】
並列二次記憶システムでは、各記憶装置に対するアクセスの負荷量がある程度均一であれば、記憶装置の台数に見合った処理速度改善効果が期待できる。しかし、いずれかの記憶装置に対するアクセスが集中したとき、つまりいずれかの記憶装置のアクセス負荷量が大きすぎるとき、その記憶装置へのアクセスによって全体の処理速度が決まってしまう。
【０００５】
そうした事態を回避するために、各記憶装置のアクセス負荷量を互いに通知しあうことにより、データの書込をアクセス負荷量の小さな記憶装置に振り分ける技術も知られている。しかしその場合、記憶装置のアクセス負荷量が変化するたびに、すなわち相当頻繁にアクセス負荷量を相互通知する必要がある。記憶装置がｎ台存在すれば、相互通知の回数はｎ2のオーダーである。したがって、システムの規模が大きくなるほど通信オーバヘッドが大きくなり、システムのスケーラビリティが阻害されることになる。
【０００６】
本発明はこうした課題に鑑みてなされたものであり、その目的は、アクセス負荷量の相互通知の回数を低減することによって通信オーバヘッドを低減し、システム全体の処理性能を改善するアクセス負荷管理方法、およびその方法を用いた並列二次記憶システムの提供にある。
【０００７】
【課題を解決するための手段】
本発明のアクセス負荷管理方法は、記憶装置とそれを管理する管理装置の組が複数存在し、管理装置の間で記憶装置のアクセス負荷量を相互通知することを前提とする。その前提において本発明は、アクセス負荷量を問い合わせるべき相手を予め選定したうえで相互通知を行う。その結果、相互通知の合計回数を低減することができる。
【０００８】
その際、各管理装置は、複数の記憶装置の空き領域に関する情報に基づいて前記相手を選定してもよい。一例として、空き領域が多い記憶装置を検出し、そうした記憶装置を管理する管理装置を選定する方法がある。ここでいう相手とは、例えば記憶装置に対するアクセス要求が出されたとき、そのアクセス要求を受け入れてくれる可能性のある管理装置と考えることができる。したがって、そうした相手のアクセス負荷量を把握しておけば、実際にアクセス要求を受け入れてもらうことが適切か否かの判断が容易になる。
【０００９】
本発明では、実際にアクセス要求が発生したとき、前記問合せの結果、アクセス負荷量の少ない記憶装置を管理している管理装置に前記アクセス要求を転送してもよい。
【００１０】
一方、本発明の並列二次記憶システムは、複数の記憶装置と、それらへのアクセスを管理する複数の管理装置と、複数の管理装置のいずれかを介して複数の記憶装置のいずれかにアクセスする演算装置とを含む。この構成において、各管理装置は、演算装置から自己にアクセス要求が発行されたときそのアクセス要求を転送する候補となる他の管理装置をアクセス要求の発生前に予め選定する。そのうえで、前記他の管理装置が管理している記憶装置のアクセス負荷量を前記他の管理装置に予め問い合せておく。アクセス要求を転送する候補のアクセス負荷量を把握することで、実際にアクセス要求を転送してよいか否か、または候補のいずれにアクセス要求を転送することが妥当か、などの判断ができる。
【００１１】
本発明の並列二次記憶システムでも、各管理装置は、複数の管理装置がそれぞれ管理している複数の記憶装置の空き領域に関する情報に基づいて前記他の管理装置を予め選定してもよい。また、実際にアクセス要求が発生したとき、前記問合せの結果、前記他の管理装置のうち、それが管理する記憶装置のアクセス負荷量が少ないものに前記アクセス要求を転送してもよい。
【００１２】
【発明の実施の形態】
本発明の好適な実施の形態を適宜図面を参照しながら説明する。
【００１３】
図１は本発明に係る並列二次記憶システムの構成図である。このシステムは本発明に係るアクセス負荷管理方法を利用している。このシステムは、例えば複数のプロセッサからなる並列演算装置１と、複数の記憶装置２と、記憶装置２のそれぞれに対応して設けられた複数のアクセス負荷管理装置３およびデータ位置管理装置４と、並列演算装置１とアクセス負荷管理装置３を接続する通信ネットワーク５を含む。以下、あるアクセス負荷管理装置３に対応する（すなわち、図１において接続されている）記憶装置２とデータ位置管理装置４をそれぞれ「対応記憶装置２」、「対応データ位置管理装置４」ともよぶ。
【００１４】
まず、このシステムの動作原理を概説する。いま、アクセス負荷管理装置３がｎ台（したがって、記憶装置２やデータ位置管理装置４もｎ台）あるとする。このシステムは以下の要領で記憶装置２へのアクセスを制御する。
【００１５】
１．複数の記憶装置２に分割して格納すべきファイルの大きさをｎ等分し、アクセス負荷管理装置３がそれぞれｎ等分された部分（これを単に「ファイル部分」という）をひとつずつ管理する。ファイルの大きさをＡとすれば、ファイル部分の大きさはＡ／ｎである。ここで管理とは、
ｉ）自己の管理するファイル部分、より正確には、そのファイル部分をさらに細分化して得られる各ブロックのデータをいずれの記憶装置２に格納すべきか、または自己の管理する各ブロックのデータがいずれの記憶装置２に格納されているかを責任をもって常時把握していること、および、
ii）自己の管理する各ブロックのデータが、対応記憶装置２に格納すべきものであるとき、またはそのデータがすでに対応記憶装置２に格納されていてそこから読み出すべきとき、実際にそのアクセスを実行すること、
をいう。
【００１６】
２．並列演算装置１が、あるファイル部分に含まれるあるブロック（ブロックｘと表記）にアクセスしたいとき、並列演算装置１はとりあえずブロックｘ（より正確にはブロックｘを含むファイル部分）を管理しているアクセス負荷管理装置３に対してアクセス要求を発行する。アクセス要求を受けたアクセス負荷管理装置３は、対応データ位置管理装置４を参照し、ブロックｘがいずれの記憶装置２に格納されているか判断する。対応データ位置管理装置４は、そのアクセス負荷管理装置３が管理しているファイル部分に含まれる各ブロックのデータがいずれの記憶装置２のいずれの位置に記憶されているかをテーブルとして保持している。
【００１７】
３．並列演算装置１からのアクセス要求が記憶装置２からのデータの読出要求であれば、アクセス要求を受けたアクセス負荷管理装置３は実際にブロックｘを記憶している記憶装置２に対応するアクセス負荷管理装置３に対してアクセス要求を転送する。転送を受けたアクセス負荷管理装置３は対応記憶装置２からブロックｘのデータを読み出し、並列演算装置１に渡す。
【００１８】
４．並列演算装置１からのアクセス要求が記憶装置２に対するデータの書込要求であれば、アクセス要求を受けたアクセス負荷管理装置３は、その時点でアクセス負荷量が少なく、かつ適当な空き領域が存在する記憶装置２を探し、その記憶装置２に対応するアクセス負荷管理装置３に対してアクセス要求を転送する。アクセス要求を受けたアクセス負荷管理装置３は、対応記憶装置２の空き領域にブロックｘのデータを格納する。本システムでは、それまでブロックｘのデータが格納されていた記憶装置２の当該部分にブロックｘのデータをオーバーライトするのではなく、いずれかの記憶装置２の空き領域にブロックｘのデータを書き込み、それ以前にブロックｘのデータが格納されていた記憶領域を無効化（つまり新たな空き領域として登録）する。
【００１９】
以上が基本動作である。本システムでは、４．の処理のためにアクセス負荷量の相互通知が必要になるが、アクセス負荷量を問い合わせる相手として、空き領域の多いもののみを選定する。このため相互通知の回数が減り、本発明の目的が達成される。
【００２０】
図２は複数の記憶装置２に、あるファイルのデータが格納される状態を概念的に示している。同図では簡単のため記憶装置２の台数を４としている。各記憶装置２の記憶領域は、ブロックまたはストライプサイズなどと呼ばれるデータ量に対応する多数の単位領域に分割されており、各単位領域の位置がオフセットで表現される。一方、格納すべきファイルもブロックに分割し、これらのブロックのデータを先頭から１、２、…で示す。同図のごとく、まず第一の記憶装置２であるＤ１のオフセット１にブロック１のデータが格納され、第二の記憶装置２であるＤ２のオフセット１にブロック２のデータが格納される。以下、同様に第三の記憶装置２であるＤ３、第四の記憶装置２であるＤ４という順に、データが格納されていく。連続するブロックを異なる記憶装置２の似かよったオフセットに格納していくのは、ストライピングとよればる既知の負荷分散手法による。
【００２１】
同図において、いくつかの単位領域に「Ｒ」（reserved）の記号が付されている。これらの単位領域は有効なデータが存在しない空き領域である。この実施の形態では、データの書込は空き領域に対して行われるため、ブロックのデータは完全に詰めずに、予めある程度空き領域が存在するよう格納しておく。システムの初期状態では、数ブロックを格納するたびにひとつ空き領域を挿入していくなどの配慮をなす。
【００２２】
いま、アクセス負荷管理装置３、記憶装置２、データ位置管理装置４がすべて１０台であると仮定し、それらをそれぞれＭ１〜Ｍ１０、Ｄ１〜１０、Ｌ１〜１０と略記する。同一のｉに対し、Ｍｉ、Ｄｉ、Ｌｉが対応しあう。また、取り扱うファイル、すなわち複数の記憶装置２に分割して格納すべきファイルの大きさを１０００ブロックと仮定する。ここでは、このファイルを１０等分したうえで、各ファイル部分（それぞれ１００ブロックの大きさ）を各アクセス負荷管理装置３が管理する。具体的には、Ｍ１はブロック１〜１００、Ｍ２はブロック１０１〜２００を管理し、一般にＭｉはブロック１００（ｉ−１）＋１〜１００ｉを管理する。すなわち、Ｍｉは番号１００（ｉ−１）＋１〜１００ｉのブロックをＤ１〜Ｄ１０のいずれのオフセットに格納すべきかを決定する。また、現在それらのブロックがいずれの位置に格納されているかについては、Ｌｉが把握している。以下一例として、対応しあう（Ｍ３，Ｌ３，Ｄ３）の組を中心に説明する。
【００２３】
図３はアクセス負荷管理装置３であるＭ３の内部構成図である。同図のごとくＭ３は、他のアクセス負荷管理装置３（以下、Ｍｘと表記）から送信されてきたアクセス負荷量２０を受信し、受信内容３０を負荷量管理部１８へ伝える負荷量受信部１０と、ＭｘからＭ３へ対して発せられたアクセス負荷量の問合せ２２を受信し、問合せを行ったＭｘを問合せ元３２として出力する問合せ受信部１２と、負荷量管理部１８から出力されたＤ３に関するアクセス負荷量３１を問合せ元３２へ問合せ応答２１として送信する負荷量送信部１１と、データ位置管理装置４から与えられた空き領域情報４０を参照してアクセス負荷量を問い合わせるべきＭｘを選定する問合せ先選定部１６と、選定された問合せ先３３を受けて実際に問合せ２３を送信する問合せ送信部１３と、Ｍ３に対して並列演算装置１から発せられたアクセス要求２４を受信するアクセス要求受信部１４と、そこで受信したアクセス要求３４を受け、前記空き領域情報４０、負荷量情報３６およびデータ位置情報４１をもとにアクセス先を決定するアクセス先決定部１７と、決定されたアクセス先がＤ３以外の記憶装置２（以下、Ｄｘと表記）であるとき、アクセス先決定部１７から出力されたアクセス先情報３５をもとに、アクセス要求２５をアクセス先であるＤｘに対応するＭｘに転送するアクセス要求送信部１５と、逆に、決定されたアクセス先がＤ３であるとき、アクセス先情報３５をもとに、Ｄ３の所期のオフセットに対して実際にアクセス３９を行うアクセス実行部１９と、負荷量受信部１０の受信内容３０をもとにＤ３およびＤｘのアクセス負荷量を保持する負荷量管理部１８を含む。負荷量管理部１８はＤ３のアクセス負荷量を知るために、アクセス先決定部１７においてアクセス先がＤ３と決定された場合にはその旨の報告３７を受け、Ｄ３の負荷量を増加させる。アクセス先決定部１７は、アクセス先を決める際、アクセス負荷量の少ない記憶装置２を見い出すべく、負荷量管理部１８から負荷量情報３６を受ける。データ位置および空き領域に関するテーブル（後述）の更新のために、アクセス先情報３５はデータ位置管理装置４にも通知される。
【００２４】
この構成による処理を説明する前に、システムが利用する各種テーブルを示す。図４は、データ位置管理装置４であるＬ３の内部に設けられるデータ位置テーブルである。Ｍ３はブロック２０１〜３００を管理するため、このデータ位置テーブルは、これらのブロックのデータがいずれの記憶装置２のいずれのオフセットに格納されているかを保持している。例えば、ブロック２０１はＤ３のオフセット２２、ブロック２０２はＤ４のオフセット２２に存在する。ストライピングの効果により、比較的近いブロックは比較的近いオフセット位置に集まっている。
【００２５】
図５は同様に、Ｌ３の内部に設けられた空き領域位置テーブルである。本来空き領域はいずれのブロックにも関係するものではないが、ここではやはりオフセットが近いものどうしのブロックを近づける配慮から、ブロックの番号と空き領域の位置関係に緩やかな拘束を設ける。その上で、ブロック２０１〜３００の範囲に対応づけられた空き領域をＭ３が管理する。図５のごとく、例えばブロック２０１〜２２０には、ふたつの空き領域であるＤ１のオフセット２３とＤ２のオフセット２２が割り当てられている。並列演算装置１から例えばブロック２１０に対するデータの書込要求がくれば、これらふたつのいずれかの空き領域に対して当該データが書き込まれる。その際、この実施の形態に特徴的な処理として、よりアクセス負荷量の少ない記憶装置２が選ばれる。ブロック２１０のデータが空き領域に書き込まれれば、それまでブロック２１０のデータを記憶していた記憶領域（いずれかの記憶装置２のいずれかのオフセット）が代わりに空き領域になり、図４のデータ位置テーブルおよび図５の空き領域位置テーブルが更新される。
【００２６】
図６は図３の問合せ先選定部１６の内部に設けられる問合せ先リストである。この実施の形態では、Ｄｘのうち空き領域を多くもつ５つを問合せ先としてリストアップする。各記憶装置２の空き領域の数は図５の空き領域位置テーブルのＤｎの欄を記憶装置２ごとに計数していけば判明する。Ｄ１、Ｄ２、Ｄ５、Ｄ６、Ｄ９の空き領域が多いとき、図６のごとくＭ１、Ｍ２、Ｍ５、Ｍ６、Ｍ９が問合せ先３３となる。これら５つのＭｘに対し、問合せ送信部１３から「アクセス負荷量を通知せよ」という指令が発せられる。以降、指令を出したＭ３に対し、５つのＭｘのみからアクセス負荷量の通知がなされるため、相互通知の回数が減る。ここではアクセス負荷管理装置３の数を１０としているため、相互通知の回数は約１／２となるが、仮にアクセス負荷管理装置３が１００台あり、問合せ先が５つのままであれば、相互通知の回数は約１／２０と激減する。
【００２７】
図７は図３の問合せ受信部１２の内部に設けられた問合せ元リストである。このリストは、Ｍ３に対してアクセス負荷量の問合せを行ったＭｘが順次登録されていく。同図の「−」は未登録である。Ｍ３に対して問合せを行いうるＭｘは最大９台であるため、このリストは９台のＭｘが登録可能である。同図ではＭ２、Ｍ４、Ｍ６、Ｍ８、Ｍ９の５台のＭｘがＭ３に対して問合せを行っており、後述のごとくＭ３は、Ｄ３のアクセス負荷量が変化したとき、これら５台のＭｘに対してＤ３のアクセス負荷量を問合せ応答２１として送信する。
【００２８】
図８は図３の負荷量管理部１８の内部に設けられたアクセス負荷量管理テーブルである。このテーブルは、Ｍ３がアクセス負荷量を問い合わせた結果、Ｍｘから得られたＤｘのアクセス負荷量、およびＭ３自身が把握しているＤ３のアクセス負荷量を保持している。同図で○が付されたアクセス負荷量がＤ３のそれである。アクセス先決定部１７はこのテーブルをもとに、アクセス要求、より正確には書込要求があった時点でアクセス負荷量が少ない記憶装置２をアクセス先に選定する。このとき、図５の空き領域位置テーブルを参照することにより、書き込むべきデータの量よりも空き領域が多い記憶装置２を選ぶものとする。なお、図８で○を付されたＤ３に関するアクセス負荷量３１は、負荷量送信部１１から図７の問合せ元リストに載っている５つのＭｘに送信される。
【００２９】
以上の構成によるアクセス処理動作を図９〜１１のフローチャートを用いて説明する。図９はＭ３からＭｘに対してアクセス負荷量の問合せを行う手順を示している。この手順を、例えば並列演算装置１から記憶装置２へのアクセスが開始される前に実行する。アクセスが開始された後は、一定期間ごと、またはＭｘが管理するＤｘの空き領域の状況がある程度変化したときなどに再度実行する。
【００３０】
同図のごとく、Ｍ３はアクセス負荷量の問合せ先を選定する（Ｓ１）。具体的には、図３の問合せ先選定部１６がデータ位置管理装置４から空き領域情報４０（図５の空き領域位置テーブル）を取得し、空き領域の多いＤｘに対応するＭｘを５つ選定する。図６の問合せ先リストはそうして選定されたＭｘを示しており、これらのＭｘが問合せ先３３として問合せ送信部１３に通知される。これを受け、問合せ送信部１３は５つのＭｘにアクセス負荷量の問合せ２３を送信する（Ｓ２）。
【００３１】
一方、図１０はＭ３がいずれかのＭｘからアクセス負荷量の問合せ２２を受けたときの応答手順を示している。問合せ２２はまず問合せ受信部１２で受信され（Ｓ１０）、問合せ元のＭｘが図７の問合せ元リストに登録されていく。このリストに載ったＭｘは問合せ元３２として負荷量送信部１１に送られる。負荷量管理部１８はＭ３が管理するＤ３のアクセス負荷量３１を図８のアクセス負荷量管理テーブル内に保持しており、その数値が変化したとき、新たなアクセス負荷量３１を負荷量送信部１１に通知する（Ｓ１１）。通知を受けた負荷量送信部１１は、問合せ元３２に対してＤ３のアクセス負荷量３１を問合せ応答２１として送信する（Ｓ１２）。
【００３２】
図１１は、並列演算装置１が実際に記憶装置２にアクセスする手順を示している。図９、図１０の手順は図１１の手順と独立して並列に行われることもあるし、図１１の中の適当なタイミングで行われることもある。
【００３３】
図１１では、並列演算装置１がブロック２０１〜３００のいずれかのブロックにアクセスすると仮定する。並列演算装置１がアクセス要求を出したとき、この要求はまず上記ブロック範囲を管理するＭ３によって受信される（Ｓ２０）。具体的には、Ｍ３のアクセス要求受信部１４がアクセス要求３４を受ける。受信したアクセス要求３４はアクセス先決定部１７へ送られる。アクセス先決定部１７は、アクセス要求のタイプにより、以下の手順でアクセス先を決定する（Ｓ２１）。
【００３４】
１．読出要求の場合
例えばブロック２０３の読出が要求されたとする。アクセス先決定部１７はデータ位置情報４１、すなわち図４のデータ位置テーブルをもとにブロック２０３の存在箇所を特定する。図４の場合、「Ｄ７のオフセット２４」に所望のデータがある。これをアクセス先と決める。
【００３５】
２．書込要求の場合
例えばブロック２０３への書込が要求されたとする。アクセス先決定部１７は図５の空き領域位置テーブルの内容を空き領域情報４０として受けとり、まず書込先の候補を把握する。ブロック２０３はブロック２０１〜２２０の範囲にあるため、図５の場合、「Ｄ１のオフセット２３」および「Ｄ２のオフセット２２」が候補である。つづいて、これらふたつの候補のうちアクセス負荷量が少ないほうを負荷量情報３６をもとに判断する。図８の場合、Ｄ１、Ｄ２のアクセス負荷量がそれぞれ５、０であるため、「Ｄ２のオフセット２２」が書込先と決まる。
【００３６】
読出、書込のいずれ場合でも、アクセス先決定部１７は自ら決定したアクセス先がＭ３に対応するＤ３であるかどうか、つまりＭ３の対応記憶装置２であるかどうかを判定する（Ｓ２２）。いまの例ではＤ３ではないため、読出の場合はＤ７に対応するＭ７に、書込の場合はＤ２に対応するＭ２に、それぞれアクセス要求を転送する（Ｓ２３）。このためにアクセス先決定部１７はアクセス先情報３５をアクセス要求送信部１５へ通知する。アクセス要求送信部１５はアクセス先情報３５にしたがい、転送すべきアクセス要求２５をＭ７またはＭ２に送信する。仮にアクセス先がＭ３に対応するＤ３であった場合、アクセス実行部１９によるＤ３へのアクセスが必要になるため、アクセス先情報３５はアクセス実行部１９にも送られる。
【００３７】
データ位置管理装置４は、アクセス先情報３５にしたがって図４のデータ位置テーブル、および図５の空き領域位置テーブルに対して必要な更新を行う（Ｓ２４）。アクセスが読出の場合、データの位置も空き領域の位置も変化しないため、Ｓ２４はＮＯＰ（ノーオペレーション）になる。書込の場合、新たに「Ｄ２のオフセット２２」が利用されるため、図４のブロック２０３に対応するデータ位置が「Ｄ２のオフセット２２」に変更され、図５のブロック２０１〜２２０に対応する空き領域「Ｄ２のオフセット２２」がそれまでブロック２０３を格納していた「Ｄ７のオフセット２４」に変更される。
【００３８】
つづいて、図８の負荷量管理テーブルが更新される（Ｓ２５）。読出の場合、Ｄ７へのアクセスが発生するため、図８のＤ７に関するアクセス負荷量（図示せず）に例えば＋１をする。書込の場合は同様にＤ２に関するアクセス負荷量に＋１をする。仮にアクセス先がＭ３に対応するＤ３であれば、図８で○の付されたアクセス負荷量に＋１をする。ここでアクセス負荷量に変化があったため、図１１の手順とは別に進行可能な図１０の手順におけるＳ１１で処理がＹに進み、新たなアクセス負荷量が問合せ元のＭｘに送信される。
【００３９】
こうしてアクセスの準備が完了する。つぎに実際のアクセスが行われる（Ｓ２６）。アクセスは、読出の場合はＭ７で、書込の場合はＭ２で実行されるため、Ｓ２４、Ｓ２５が完了した後にＳ２６が行われるよう、タイミングを調整してもよい。仮にアクセスがＭ３内部で行われる（つまりＤ３がアクセス先である）場合、アクセス先情報３５を受けたアクセス実行部１９が、Ｄ３の所定オフセットにアクセスする。
【００４０】
アクセスが完了すれば、アクセスが行われていた記憶装置２のアクセス負荷量をもとに戻す必要がある。このため、再び図８の負荷量管理テーブルを更新する（Ｓ２７）。読出の場合、Ｄ７に関するアクセス負荷量を−１する。書込の場合も同様に考えればよい。ここでも図１０のＳ１１で処理がＹに進み、新たなアクセス負荷量が問合せ元のＭｘに送信される。以降、各Ｍｘにおいて最新のアクセス負荷量に基づくアクセス先の決定が行われる。
【００４１】
以上が本実施の形態の構成と動作である。なお、本実施の形態について、例えば以下のような応用または変形技術も考えられる。
【００４２】
（１）図１０のＳ１１では、アクセス負荷量が変化するたびにそれを送信したが、アクセス負荷量が所定のしきい値を超えて変化したときのみ送信する構成としてもよい。その場合、さらに相互通知の回数が減る。
【００４３】
（２）この実施の形態ではアクセスされるデータの単位としてブロックを考えたが、もちろんそれよりも大きい単位や小さい単位を考えてもよい。例えば、ブロックを細分化してサブブロックを作り、「サブブロック１０個分」や「サブブロック１５個分」というようなアクセスを認めてもよい。その場合、アクセスに必要なサブブロック数に相当する空き領域をもつＤｘがアクセスの対象になる。また、アクセス負荷量の調整も、単に±１などの整数値だけではなく、±１／３、±１／４など、細分化することができる。
【図面の簡単な説明】
【図１】  本発明に係る並列二次記憶システムの構成図である。
【図２】  記憶装置にファイルデータが格納される状態を示す図である。
【図３】  アクセス負荷管理装置（Ｍ３）の内部構成図である。
【図４】  データ位置管理装置内部に設けられるデータ位置テーブルを示す図である。
【図５】  データ位置管理装置内部に設けられた空き領域位置テーブルを示す図である。
【図６】  図３の問合せ先選定部の内部に設けられる問合せ先リストを示す図である。
【図７】  図３の問合せ受信部の内部に設けられた問合せ元リストを示す図である。
【図８】  図３の負荷量管理部の内部に設けられたアクセス負荷量管理テーブルを示す図である。
【図９】  Ｍ３からＭｘに対してアクセス負荷量の問合せを行う手順を示すフローチャートである。
【図１０】  Ｍ３がいずれかのＭｘからアクセス負荷量の問合せを受けたときの応答手順を示すフローチャートである。
【図１１】  並列演算装置が実際に記憶装置にアクセスする手順を示すフローチャートである。
【符号の説明】
１  並列演算装置、２  記憶装置、３  アクセス負荷管理装置、４  データ位置管理装置、５  通信ネットワーク、１０  負荷量受信部、１１  負荷量送信部、１２  問合せ受信部、１３  問合せ送信部、１４  アクセス要求受信部、１５アクセス要求送信部、１６  問合せ先選定部、１７  アクセス先決定部、１８負荷量管理部、１９  アクセス実行部、２０  Ｍｘから送信されてきたアクセス負荷量、２１  問合せ応答、２２  アクセス負荷量の問合せ、２３  問合せ、２４  並列演算装置１から発せられたアクセス要求、２５  転送すべきアクセス要求、３０  負荷量受信部１０の受信内容、３１  Ｄ３に関するアクセス負荷量、３２  問合せ元、３３  問合せ先、３４  アクセス要求受信部１４で受信したアクセス要求、３５  アクセス先情報、３６  負荷量情報、３７  アクセス先がＤ３と決定された場合の報告、３９  アクセス、４０  空き領域情報、４１  データ位置情報、Ｍ１〜Ｍ１０  アクセス負荷管理装置、Ｄ１〜１０  記憶装置、Ｌ１〜１０  データ位置管理装置。
【図１】
0003709262.tif 000002
【図２】
0003709262.tif 000003
【図３】
0003709262.tif 000004
【図４】
0003709262.tif 000005
【図５】
0003709262.tif 000006
【図６】
0003709262.tif 000007
【図７】
0003709262.tif 000008
【図８】
0003709262.tif 000009
【図９】
0003709262.tif 000010
【図１０】
0003709262.tif 000011
【図１１】
0003709262.tif 000012