JP4985512B2 - 分散共有メモリ型マルチプロセッサシステム及びマルチプロセッサシステムにおける負荷分散方法 - Google Patents

分散共有メモリ型マルチプロセッサシステム及びマルチプロセッサシステムにおける負荷分散方法 Download PDF

Info

Publication number
JP4985512B2
JP4985512B2 JP2008080540A JP2008080540A JP4985512B2 JP 4985512 B2 JP4985512 B2 JP 4985512B2 JP 2008080540 A JP2008080540 A JP 2008080540A JP 2008080540 A JP2008080540 A JP 2008080540A JP 4985512 B2 JP4985512 B2 JP 4985512B2
Authority
JP
Japan
Prior art keywords
memory
control unit
routing
node
nodes
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP2008080540A
Other languages
English (en)
Other versions
JP2009237709A (ja
Inventor
恒志 仙洞田
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
NEC Computertechno Ltd
Original Assignee
NEC Computertechno Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by NEC Computertechno Ltd filed Critical NEC Computertechno Ltd
Priority to JP2008080540A priority Critical patent/JP4985512B2/ja
Publication of JP2009237709A publication Critical patent/JP2009237709A/ja
Application granted granted Critical
Publication of JP4985512B2 publication Critical patent/JP4985512B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Multi Processors (AREA)
  • Memory System (AREA)

Description

本発明は、マルチプロセッサシステムに関し、特に、分散共有メモリ型マルチプロセッサシステムに関する。
分散メモリによるスケーラビリティと、共有メモリによる並列プログラミングを両立させた分散共有メモリ(DSM:Distributed Shared Memory)型マルチプロセッサシステムが注目されている。分散共有メモリ型マルチプロセッサは、1つ以上のプロセッサとメモリ(主記憶装置)とで構成されるノードを複数備える。各ノードは、メモリへのアクセスを制御するメモリコントローラを備える。メモリコントローラは、自ノード又は他ノードにおけるプロセッサからのトランザクションに応じて、自身が管理するメモリへのアクセスを制御する。
このような分散共有メモリ型マルチプロセッサシステムでは、複数のプロセッサが発行するメモリアクセスリクエストが、ある1つのメモリコントローラが管理するメモリに集中的にアクセスされる場合がある。このような場合、当該メモリコントローラにおける負荷が増大するため、システム全体におけるメモリコントローラの作業負荷が不均一となり、システム全体における性能が低下する恐れがある。
このような負荷の集中を防止するため、負荷を分散させることは有効である。例えば、負荷分散に関連する技術が、特開2000−137692号公報(特許文献1参照)、特開2004−013567号公報(特許文献2参照)、特開平07−271736号公報(特許文献3参照)に記載されている。これらの技術では、ソフトウェアによるメモリ空間の割り当て変更や、プログラムを実行するプロセスの割り当てを変更することによって、コントローラに集中した作業負荷を分散化している。
しかし、上述の特許文献に記載の技術では、分散共有メモリ型マルチプロセッサシステムにおいて負荷分散するために、ソフトウェア(OS)によってシステムで使用するメモリ領域を変更している。すなわち、負荷分散を行うため、各ノードのプロセッサによるアドレス変換やマッピングの再割り当てが必要となる。
又、ハードウェアの持つ性能測定機構においてメモリアクセスの偏りを特定し、ソフトウェア的な性能チューニングやアドレスインタリーブ方式へのモード変更によりメモリアクセスの偏りを均等化することで性能改善を図る方法が、特開2006−235761号公報に記載されている(特許文献4参照)。しかしながら、このような動作モードの変更にはシステムをリブートさせる必要がある。
以上のように、特許文献に記載の技術では、ソフトウェアによるプログラムの最適化が行われ、あるいは一般的なメモリのアクセス方式として利用されているスタックモードやアドレスインタリーブモードを切り替えることで性能改善を図っている。しかし、メモリへのアクセス量に基づいて動的にこれらのモード切り替えを行うことは困難であるため、モードを切り替える際にはシステムのリブートが必要である。又、ソフトウェアによって負荷分散を行うため、プロセッサに対する処理負荷が増大するとともに、負荷分散処理のため、大幅なプログラムの追加や変更が必要となる。
一方、特開2006−243852号公報には、運用系のメモリに何らかの障害が発生した場合、運用系メモリの全データを待機系のメモリにコピーし、次後、待機系メモリを運用系のメモリとして使用する技術が記載されている(特許文献5参照)。又、特開平09−179834号公報には、メモリの使用状況を監視し、監視結果に応じてメモリの確保/開放を行う技術が記載されている(特許文献6参照)。しかし、これらの特許文献にも、システムのリブートを必要とせず、プロセッサの処理負荷が少ない負荷分散方法は記載されていない。
特開2000−137692号公報 特開2004−013567号公報 特開平07−271736号公報 特開2006−235761号公報 特開2006−243852号公報 特開平09−179834号公報
本発明の目的は、システムのリブートを必要せずに負荷分散が行える分散共有メモリ型マルチプロセッサシステム、それに用いられるノード、及び負荷分散方法を提供することにある。
本発明の他の目的は、分散共有メモリ型マルチプロセッサシステムにおいて負荷分散を行うプロセッサの処理負荷を軽減することにある。
本発明による分散共有メモリ型マルチプロセッサシステムは、複数のノードを具備する。複数のノードの各々は、アクセス量が閾値を超えた第1メモリの一部のデータを、他のノードの第2メモリに移動し、第1メモリと第2メモリとでインタリーブを行うメモリ制御部を備える。
又、本発明によるノードは、上述の分散共有メモリ型マルチプロセッサシステムにおいて第1メモリを備える現用ノードである。あるいは、本発明によるノードは、上述の分散共有メモリ型マルチプロセッサシステムにおいて第2メモリを備える予備ノードである。
更に、本発明による負荷分散方法は、複数のノードを具備する分散共有メモリ型マルチプロセッサシステムにおける負荷分散方法である。本発明による負荷分散方法は、アクセス量が閾値を超えた第1メモリの一部のデータを、他のノードの第2メモリに移動するステップと、第1メモリと第2メモリとでインタリーブを行うステップとを具備する。
本発明による分散共有メモリ型マルチプロセッサシステム、それに用いられるノード、及び負荷分散方法によれば、システムをリブートせずに負荷分散を行うことができる。
又、分散共有メモリ型マルチプロセッサシステムにおいて負荷分散を行うプロセッサの処理負荷を軽減することができる。
以下、添付図面を参照して、本発明による分散共有メモリ型マルチプロセッサシステム及び負荷分散方法の実施の形態を説明する。図面において同一、又は類似の参照符号は、同一、類似、又は等価な構成要素を示している。
(概要)
分散配置されたある1つのメモリコントローラが管理するメモリに対して、複数のプロセッサから集中的にアクセスされると、当該メモリコントローラが管理するメモリアクセスレイテンシやスループットが悪化し、システム全体の処理能力低下の要因となる。
本発明による分散共有メモリマルチプロセッサでは、システム内のメモリに対するアクセス量をソフトウェアにより監視する。そして、この監視によって負荷が集中していると特定されたメモリの内容の一部を、ハードウェアによって他のメモリコントローラが管理するメモリへ移動させる。その後、移動したメモリの内容に対応するメモリアドレスにアクセスするリクエストは、移動後のメモリにアクセスするように制御することで、ある1つのメモリコントローラが管理するメモリへの集中したアクセスを、他のメモリコントローラが管理するメモリへのアクセスとして分散させる。
本発明では、ハードウェアによってメモリの一部のデータを他のメモリに移動させる。このため、システム運用中にメモリの一部を移動させることが可能であり、システムのリブートを行うことなく、動的に負荷分散させることが可能である。又、メモリ移動後もハードウェアにより、使用するメモリへの経路を変更するため、アドレス変換やメモリマッピングの再割り当てが不要であり、OSやソフトウェアに影響を及ぼすことなく、運用が可能となる。
(構成)
図1は、本発明による分散共有メモリ型マルチプロセッサシステムの実施の形態における構成図である。図1を参照して、本発明による分散共有メモリ型マルチプロセッサシステムは、ノード間インタフェース300を介して相互に接続された複数のノード100〜102、200を具備する。ここで、ノード100〜102、200のそれぞれは、1つ以上のCPUとメモリ(主記憶装置)を備えるコンピュータ装置である。ノード100〜102、200のそれぞれにおけるメモリは、それぞれが備えるメモリコントローラ(メモリ制御部115)によって管理される。ここで、ノード100〜102は、現用系のノードとして使用され、ノード200は、現用系のノードに何らかの障害が発生した場合に当該現用系ノードの代わりに処理を行う予備系のノードである。現用系のノード100〜102のそれぞれにおける複数のCPUは、分散共有しているそれぞれのメモリ123に対してアクセスすることができる。予備系として用いられるノード200に対するアクセスは行われていない。しかし、ノード200が現用系の替わりに用いられる場合、ノード100〜102と同様に動作するため、ノード200の構成はノード100〜102と同様な構成となっている。
ノード100〜102のそれぞれは、メモリ123及びメモリ123を管理するメモリ制御部115を備える。ノード100〜102のそれぞれは、自ノード内のメモリ123のみならず、他のノードのメモリ123にもアクセスすることができる。予備系として用いられるノード200は、メモリ223及びメモリ223を管理するメモリ制御部215を備える。ノード100〜102のいずれかメモリ123に対するアクセス量が閾値を超える場合、当該メモリ123の一部の領域に格納されたデータは、ノード200のメモリ223に移される。そして、メモリ123に対するアクセス量が閾値以下に減少するまで当該メモリ123の一部の領域に対するアクセスは、メモリ223に対するアクセスに変更される。
図2を参照して、本発明によるノード100の実施の形態における構成の詳細を説明する。上述のように、ノード101、102、200の構成は、ノード100と同様であるため、その説明は省略する。ただし、予備系として使用されるノード200において、現用系と異なる動作については後述する。以下では、自ノード(ノード100)の構成について説明する場合、単に名称のみで説明する。例えば、「ノード100のメモリ123にアクセスする」と説明する場合、単に「メモリ123にアクセスする」とし、「ノード100のメモリ123から他ノードのメモリ123にデータを移動させる」と説明する場合、「メモリ123から他ノードのメモリ123にデータを移動する」とする。
ノード100は、1つ以上のCPUを含むCPU群103、CPU群103を管理するCPU制御部109、メモリ(Memory)123、メモリ123を管理するメモリ制御部115、メモリ負荷監視部125を備える。本実施の形態におけるCPU群103は、4つのCPU105〜108を備える。又、ノード100〜102、200のそれぞれにおけるCPU群103が備えるCPUの数や処理能力は、同じでも異なってもどちらでも良い。
CPU制御部109は、CPUトランザクション制御部(CPU TXN制御部)110、ルーティング制御部111、セレクタ112、113、トランザクション受信制御部(TXN受信制御部)114を備える。
CPU TXN制御部110は、CPU105〜108のいずれか(CPU群103)から発行されるリクエストや、CPU105〜108のいずれか(CPU群103)へのリプライを制御する。詳細には、CPU TXN制御部110は、CPU103からのリクエスト及びリプライを処理し、セレクタ112へ出力する。あるいは、ルーティング制御部111から受け付けるCPU群103へのリクエスト及びリプライの処理を行い、CPU群103への出力を制御する。
ルーティング制御部111は、他ノードから自ノードへ受け付けたリクエスト及びリプライのルーティングを行う。メモリ123へのリクエストであればセレクタ112へ出力し、CPU群103へのリクエスト及びリプライであれば、CPU TXN制御部110へ出力する。
セレクタ112は、CPU TXN制御部110から受け付けたリクエスト及びリプライと、ルーティング制御部111から受け付けたリクエストの一方を選択し、メモリ制御部115(後述するトランザクション実行管理部116)へ出力する。
セレクタ113は、メモリ制御部115(後述するメモリトランザクションルーティング制御部119)から受け付けたCPU群103へのリプライと、TXN受信制御部114において他ノードから受け付けたCPU群103へのリクエスト及びリプライの一方を選択して、ルーティング制御部111へ出力する。
TXN受信制御部114は、他ノードから受け付けた自ノードへのリクエスト及びリプライを制御し、セレクタ113へ出力する。
メモリ制御部115は、トランザクション実行管理部(TXN実行管理部)116、メモリコピー実行制御部(MemCopy実行制御部)117、セレクタ118、122、メモリトランザクションルーティング制御部(MemTXNルーティング制御部)119、メモリアクセス制御部(MemAccess制御部)120、メモリライト生成部(MemWrite生成部)121を備える。
TXN実行管理部116は、CPU制御部109(セレクタ112)から受け付けたトランザクション(リクエスト及びリプライ、略称:TXN)の実行制御を行う。TXN実行管理部116は、メモリ123の一部の領域のデータをノード200のメモリ223にコピーしている間、セレクタ112からのトランザクションの待ち合わせを行う。通常モード時、TXN実行管理部116は、セレクタ112からのトランザクションをセレクタ118に出力する。TXN実行管理部116は、MemCopy実行制御部117からの待ち合わせ指示(待機指示)に応じて、セレクタ112から受け付けたトランザクションの実行を待ち合わせる。この際、コピー対象となるアドレス範囲(以下、コピー領域300と称す)に対するトランザクションのみを待ち合わせることが好ましい。データのコピーが終了し、トランザクションの実行が可能となる場合、すなわち、MemCopy実行制御部117から待ち合わせ解除の指示(解除指示)を受け付けると、TXN実行管理部116は、待ち合わせていたトランザクションをセレクタ118に出力する。これにより、メモリ123においてコピー中のアドレス範囲(コピー領域300)に対するリクエストを停止し、メモリ123におけるデータの一貫性を保証することができる。
MemCopy実行制御部117は、メモリ123のアクセス量や使用率が閾値を超えた高負荷状態である場合、メモリ123の一部又は全てを物理的に移動させるために、メモリ123における所定のアドレス範囲(コピー領域300)内のデータを、予備系のノード200のメモリ223にコピーさせる制御を行う。詳細には、MemCopy実行制御部117は、メモリ負荷監視部125からのコピー動作開始指示(メモリコピー開始指示)に応じて、メモリ123におけるコピー領域300からデータをリードするためのメモリリードリクエスト(以下メモリコピーリクエストと称す)を生成し、セレクタ118に出力する。ここで、MemCopy実行制御部117はメモリ負荷監視部125から、メモリコピー開始指示に先んじて、予備系のメモリ223に移動させるメモリブロック(コピー領域300)のアドレス範囲と、コピー先となるメモリ223のメモリブロック(コピー領域400)のアドレス範囲を特定するための情報が設定される。この情報は、例えば、メモリ123において高負荷状態として検出された高負荷領域10のアドレス範囲を示す情報である。
又、MemCopy実行制御部117は、コピー領域300からメモリ223にデータをコピーしている間、メモリ123のデータ一貫性を保証するため、TXN実行管理部116に対し待機指示を通知する。この際、MemCopy実行制御部117は、コピー領域300となるアドレス範囲をTXN実行管理部116に通知する。メモリコピーが完了すると、MemCopy実行制御部117は、ソフトウェアに対して終了通知を行う。この通知方法は、割り込みであっても、ソフトウェアにより、フラグをポーリングさせる方法でも良い。この際、MemCopy実行制御部117は、TXN実行管理部116に対し、待ち合わせを解除するための解除指示を通知する。
セレクタ118は、TXN実行管理部116から出力されるリクエスト及びリプライ(通常のトランザクション)と、MemCopy実行制御部117より発行されるメモリコピーリクエストの一方を選択し、MemTXNルーティング制御部119に出力する。セレクタ118は、メモリコピー動作が行われていない通常モード時は、TXN実行管理部116からの出力を選択する。
MemTXNルーティング制御部119は、セレクタ118より出力されるリクエスト及びリプライのルーティングを行う。メモリ123へのアクセスであれば、MemAccess制御部120へ出力し、他ノードのメモリ123又はメモリ223へのアクセスであれば、セレクタ122へ出力する。又、MemTXNルーティング制御部119は、メモリ123から読み出したリプライがCPU群103行きであれば、MemAccess制御部120から受け付けたリプライをセレクタ113へ出力し、他のノードのCPU群103行きであれば、セレクタ122に出力する。
又、MemTXNルーティング制御部119は、アクセス先のメモリを決定するルーティングレジスタを備える。ルーティングレジスタには、フレームヘッダに付与される宛先アドレスとメモリ上のアドレスが対応付けて設定される。MemTXNルーティング制御部119は、ルーティングレジスタを参照して、宛先アドレスに対応するメモリ上のアドレスをトランザクションの宛先アドレスとして決定し、当該メモリに出力する。
MemAccess制御部120は、メモリ123に対するアクセス制御を行う。MemTXNルーティング制御部119からメモリ123へのリクエストを受け付け、メモリ123に対するライト制御又はリード制御を行う。MemAccess制御部120は、MemTXNルーティング制御部119より受け付けたリクエストを実行し、リプライを生成してMemTXNルーティング制御部119へ返却する。又、MemAccess制御部120は、メモリコピーリクエストを受け付けると、メモリ123のコピー領域からデータを読み出し、この結果をMemWrite生成部121へ出力する。
MemWrite生成部121は、予備系のノード200内のメモリ223にデータをコピーするため、MemAccess制御部120から受け付けたメモリコピーリクエストのリード結果をライトデータとしてセレクタ122に出力する。この際、MemWrite生成部121は、メモリ223に対するメモリライトリクエストを生成し、ライトデータとともにセレクタ122に出力する。又、MemWrite生成部121は、メモリライトリクエストを生成後、アドレスインクリメント指示をMemCopy実行制御部117へ出力する。
セレクタ122は、MemWrite生成部121で生成されたメモリライトリクエストと、MemTXNルーティング制御部119より受け付けた他ノード行きのリクエスト及びリプライの一方を選択し、ノード間インタフェース300に出力する。
ノード間インタフェース300は、ノード100〜102、200を接続するインタフェースであり、本インタフェースの接続により分散共有メモリ型マルチプロセッサシステムが構成される。各ノードのセレクタ122より出力されるリクエスト及びリプライは他ノードのTXN受信制御部114へ出力される。この際、セレクタ122の出力先のノード(メモリ)は、コピー領域300内のデータをノード200のメモリ223にコピーする間(コピーモード時)では、MemWrite生成部121によって設定され、通常モードや、コピーモードと通常モードとの間の負荷分散モード時においては、MemTXNルーティング制御部119によって設定される。
メモリ負荷監視部125はCPUによって実行されることで負荷管理部1、負荷測定部2、負荷検出部3、及びルーティング設定部4の各機能を実現するプログラム(ソフトウェア)である。負荷検出部3は、システム運用中における情報処理量やプロセスの稼働時間等を検出する。負荷測定部2は、検出された情報処理量やプロセスの稼働時間からCPU群103(CPU105〜108のそれぞれ)やメモリ123の使用量や使用率を算出する。
負荷管理部1は、負荷測定部2における測定結果と、予め設定された閾値(基準値)とに基づいてメモリ123が高負荷状態となっているかどうかを判定する。例えば、メモリ123の使用率(単位時間のアクセス量)が閾値を超える場合、メモリ123が高負荷状態であると判定される。負荷管理部1は、メモリ123の監視結果(負荷状態の判定結果)に基づいた指示をメモリ制御部115に発行する。詳細には、負荷管理部1は、メモリ123が高負荷状態と判定すると、コピー動作の開始指示(メモリコピー開始指示)をMemCopy実行制御部117に発行する。又、負荷管理部1は、メモリ123が高負荷状態から回復したと判定すると、メモリ復旧指示をルーティング設定部4及びMemCopy実行制御部117に発行する。
負荷管理部1は、メモリ123が高負荷状態である判定し、MemCopy実行制御部117からコピー完了通知を受け付けると、ルーティング設定指示をルーティング設定部4、及びシステム内の全てのノード(ノード101、102、200)に通知する。又、負荷管理部1は、他のノードからルーティング設定指示を受け取ると、当該ルーティング指示に基づいた指示をルーティング設定部4に発行する。更に、負荷管理部1は、負荷測定部2で測定されたメモリ123の使用量や使用率等のメモリ123の負荷状態を図示しない記憶装置に履歴として記録することが好ましい。又、負荷管理部1は、メモリ123の負荷状態のみならず他のノードから通知された他ノードのメモリ123の負荷状態を図示しない記憶装置に記録することが好ましい。
ルーティング設定部4は、負荷管理部1から発行されるルーティング設定指示に基づいてMemTXNルーティング制御部119内のルーティングレジスタの設定を変更する。ルーティング設定指示には、予備系のメモリ223に移動させるメモリブロック(コピー領域300)のアドレス範囲と、コピー先となるメモリ223のメモリブロック(コピー領域400)のアドレス範囲を特定する情報が含まれる。ルーティング設定部4は、ルーティング設定指示に従い、コピー領域300宛ての宛先アドレスと、コピー領域400のアドレスとを対応付けてルーティングレジスタに設定する。
メモリ123の監視結果に基づいたルーティングレジスタの設定処理は、システム内の全てのノード100〜102、200において実施される。
メモリ負荷監視部125によるメモリ監視処理は、定期的に行われても任意の時期の行われてもどちらでも良い。又、メモリ負荷監視部125におけるメモリ監視処理は、上述の方法の他、例えば特許文献1〜3に記載の方法でも構わない。ただし、これらの方法をソフトウェアで実現することが好ましい。
(動作)
次に、図2から図7を参照して、本発明による分散共有メモリ型マルチプロセッサシステムの動作の詳細を説明する。以下では、(1)通常モード時の監視動作、(2)通常モードから負荷分散モードへの切り替え時におけるリソース移動動作、(3)負荷分散モード時の監視動作、(4)負荷分散モードから通常モードへの切り替え時におけるリソース復旧動作、(5)トランザクション処理動作について説明する。又、以下では、複数のプロセッサから発行されたメモリアクセスリクエストが、ノード101のメモリ制御部115が管理するメモリ123に対し、集中してアクセスされた場合について説明する。
(1)通常モード時における監視動作
図2及び図3を参照して、通常モード時におけるメモリ123の負荷状態を監視する動作の詳細を説明する。通常モード時では、図3におけるステップS101〜S105の処理が行われる。
システム運用中、メモリ負荷監視部125によってメモリ123に対する負荷状態が監視されている。詳細には、メモリ負荷監視部125は、稼働システムにおける情報処理量やプロセス稼働時間やメモリブロックのアクセス遅延時間等によりメモリ123の負荷状態を検出する。メモリ負荷監視部125は、メモリ123のリソースの移動及び負荷状態を確認する(ステップS101、S102)。通常モード時、メモリ123内のリソースは、メモリ223に移動されていない(ステップS101No)。この間、メモリ123の高負荷状態が検出されない場合、メモリ負荷監視部125は監視処理を継続し、通常モードを維持する(ステップS102No)。
メモリ123へは、CPU105〜108や他ノードにおけるCPU105〜108がアクセスしている。メモリ123へのアクセスが増大し、アクセス量が基準値を超える場合、メモリ負荷監視部125は、メモリ123に対するアクセスが過負荷状態(高負荷状態)であることを検出する(ステップS102Yes)。メモリ123の高負荷状態が検出されると、メモリ負荷監視部125は、メモリ使用量の高いリソースを高負荷領域として特定する(ステップS103)。例えば、負荷管理部1は、メモリ使用量が閾値以上の領域を高負荷領域10として特定する。負荷管理部1は、特定した高負荷領域10を示すアドレス範囲をMemCopy実行制御部117に設定する(ステップS104)。
又、負荷管理部1は、MemCopy実行制御部117に対する高負荷領域10の設定を終了すると、メモリコピー開始指示をMemCopy実行制御部117に発行する(ステップS105)。
以上のように、本発明では、ソフトウェアによってメモリ123の高負荷状態が検出され、高負荷領域10を特定するアドレス範囲がハードウェアであるメモリ制御部115に設定される。又、高負荷状態の検出に応じて、ソフトウェアは、この高負荷メモリ領域を負荷分散させるためのメモリコピー開始指示を発行する。後述するが、メモリコピー開始指示に基づき、メモリ制御部115は高負荷状態のメモリ123内のデータを、予備系のメモリ223に移動し、移動完了後、システム全体が負荷分散モードに切り替えらる。
(2)通常モードから負荷分散モードへの切り替え時におけるリソース移動動作
図2、図4及び図5を参照して、通常モードから負荷分散モードへの切り替え時におけるリソース移動動作(メモリコピー動作)の詳細を説明する。MemCopy実行制御部117で実施するメモリコピー動作は、ソフトウェア(メモリ負荷監視部125)により設定されたMemoryブロックに対して、現用ノード100内のメモリ123と移動先の予備ノード200内のメモリ223とでアドレスインタリーブされるような構成に切り替わる。例えば、図5に示すように、メモリ123におけるデータのLine Sizeを128Bとした場合、アドレスのbit(7)をEven/Odd判定として行い、bit(7)=1bであるLineをコピー領域300とし、メモリ223のコピー領域400にコピー領域300内のデータがコピーされる。又、bit(7)=0bであれば、メモリコピーは実施されず、bit(7)=1bとなるように次Lineのアドレスにインクリメントされる。
図4を参照して、メモリ負荷監視部125からのメモリコピー開始指示に応じて、メモリ制御部115は、メモリ123における高負荷領域10の一部を予備系のノード200(メモリ223)に移動するリソース移動処理(メモリコピー)を開始する(ステップS201)。ここで、MemCopy実行制御部117は、メモリコピー開始指示に応じてメモリ123における高負荷領域10の一部を予備系のメモリ223に移動するためのメモリコピーリクエストを生成し、セレクタ118に出力する。又、MemCopy実行制御部117は、メモリコピー開始指示に応じてTXN実行管理部116に対し、高負荷領域10(又はコピー領域300)に対するアクセスを待ち合わせるための待機指示を発行する。この際、MemCopy実行制御部117は、TXN実行管理部116に対して、待機指示として、コピー領域300のレンジ情報と実行中であることを示す情報を通知する。TXN実行管理部116は、MemCopy実行制御部117に指定された領域(高負荷領域10又はコピー領域300)に対してアクセスを要求するリクエストの出力を待ち合わせる。ここでは、コピー領域300へのアクセスを待ち合わせる様にMemCopy実行制御部117から指示されるものとする。
当初、MemCopy実行制御部117は、高負荷領域10の先頭アドレス範囲を指定したメモリコピーリクエストを生成し、セレクタ118を介してMemTXNルーティング制御部119に出力する。MemTXNルーティング制御部119は、メモリコピーリクエストから自ノードに対するメモリリードリクエストであることを判定するとともに、MemAccess制御部120へルーティングする。
MemCopy実行制御部117からのメモリコピーリクエストがコピー領域300と異なる領域へのアクセスである場合(ステップS202No)、MemAccess制御部120は、メモリコピーリクエストのリプライをMemWrite生成部121へ出力する。MemWrite生成部121は、MemAccess制御部120から受け付けたリプライに応じて、アドレスインクリメント指示をMemCopy実行制御部117へ出力する(ステップS206)。MemCopy実行制御部117は、アドレスインクリメント指示に従い、次のラインのアドレス範囲を指定したメモリコピーリクエストを生成し、セレクタ118を介してMemTXNルーティング制御部119に出力する。
MemCopy実行制御部117からのメモリコピーリクエストがコピー領域300へのアクセスである場合(ステップS202Yes)、MemAccess制御部120は、メモリ123(コピー領域300)からデータをリードし、予備系のメモリ223にコピーする(ステップS203、S204)。詳細には、MemAccess制御部120は、メモリコピーリクエストを受け付けると、メモリ123のコピー領域300からデータを読み出し、この結果をMemWrite生成部121へ出力する。MemWrite生成部121は、MemAccess制御部120から受け付けたメモリコピーリクエストのリード結果をライトデータとしてメモリライトリクエストとともにセレクタ122を介してノード200のメモリ223に出力する。メモリライトリクエストを受け付けたノード200のMemAccess制御部120は、コピー領域300からリードされたデータをメモリ223のコピー領域400に書き込む。
MemWrite生成部121は、メモリライトリクエストを生成後、インクリメント指示をMemCopy実行制御部117へ出力する(ステップS205No、S206)。MemCopy実行制御部117は、アドレスインクリメント指示に従い、次のラインのアドレス範囲を指定したメモリコピーリクエストを生成し、セレクタ118を介してMemTXNルーティング制御部119に出力しステップS202に移行する。
メモリ制御部115は、ステップS202からステップS206の処理を、高負荷領域10の全アドレス範囲が終了するまで繰り返す。全アドレス範囲に対するメモリコピーリクエストの出力が完了すると、メモリ制御部115は、リソース移動処理を終了し、メモリ負荷監視部125にコピー完了を通知する(ステップS207)。コピー完了の通知方法については、割り込み方式であっても、ソフトウェアによってフラグをポーリングする方法でも良い。
以上のようにして、本発明によれば、ソフトウェアとの連携により、高負荷状態検出以降、メモリアクセスが集中している現用系のノード100内のメモリ123の一部を予備系のノード200に移動させることができる。尚、MemCopy実行制御部117で行われるメモリコピー動作は、ソフトウェアによるメモリコピー開始指示以降、ハードウェアによって全領域のコピーが自動的に行われる。
現用系のノード100と予備系のノード200との間でリソース移動が行われた結果、移動後のメモリ割り当て状態は図5に示すような構成になる。尚、本例で示したインタリーブの設定は、上述のようなアルゴリズムに限定されず、設定により、アドレスインタリーブのbit判定位置やLine Sizeを変更可能なようにしておいても良い。
メモリ制御部115からコピー完了通知を受け付けた負荷管理部1は、ルーティング設定部4及び他のノード101、102、200に対してルーティング設定指示を発行する。システム内全てのノード100〜102、200のルーティング設定部4は、ルーティング設定指示に含まれる高負荷領域10を示すアドレス範囲に基づいて、リソース移動したコピー領域300、400を特定し、MemTXNルーティング制御部119(ルーティングレジスタ)の設定を変更する。詳細には、ルーティングレジスタ(ハードウェア側)において、リソース移動の対象となるコピー領域300宛ての宛先アドレスと、移動先となるコピー領域400のアドレスとが紐つけられる。これにより、分散共有メモリ型マルチプロセッサシステムは、負荷分散モードとなる。
詳細は後述するが、負荷分散モードとなったシステムでは、コピー領域300宛てのアクセスは、コピー領域400宛てのアクセスに変更されるため、高負荷状態となったメモリ123へのアクセス集中が緩和される。
(3)負荷分散モード時の監視動作
負荷分散後もソフトウェアは定期的(又は任意の時期)に負荷状態を監視している。図2及び図3を参照して、負荷分散モード時におけるメモリ123の負荷状態を監視する動作の詳細を説明する。負荷分散モード時では、図3におけるステップS101、S106〜S108の処理が行われる。ただし、負荷分散モード時においても、通常モード時と同様に高負荷状態の監視処理が並行して行われても良い。
メモリ負荷監視部125は、メモリ制御部115からのコピー完了通知によって、リソースが予備系のメモリ223に移動済みであることを確認する(ステップS101Yes)。コピー領域300へのアクセスの転送が行われる負荷分散モード時においても、通常モード時と同様に、システム運用中、メモリ負荷監視部125によってメモリ123に対する負荷状態が監視されている。この間、メモリ123の高負荷状態が解消されない場合、すなわち負荷状態回復が検出されない場合、メモリ負荷監視部125は監視処理を継続し、負荷分散モードを維持する(ステップS106No)。
コピー領域300へのアクセスがコピー領域400に転送されることでメモリ123に対するアクセスが減少し、そのアクセス量が基準値以下となる場合、メモリ負荷監視部125は、メモリ123の高負荷状態が解消されたと判定する(負荷状態回復の検出)(ステップS106Yes)。メモリ123の負荷状態回復が検出されると、負荷管理部1は、ルーティング設定部4及び他のノードに対しメモリ復旧指示を発行する(ステップS107、S108)。詳細には、メモリ負荷監視部125は、負荷状態が回復した高負荷領域10を特定し、リソースの移動元のコピー領域300と、移動先のコピー領域400を復旧対象領域としてMemCopy実行制御部117に設定する(ステップS107)。そして、負荷管理部1は、MemCopy実行制御部117に対する復旧対象領域の設定を終了すると、予備系のメモリ223におけるコピー領域400からメモリ123のコピー領域300にデータをコピーするためのメモリコピー開始指示(メモリ復旧指示)をMemCopy実行制御部117に発行する(ステップS108)。
以上のように、本発明では、ソフトウェアによってメモリ123の負荷状態回復が検出され、復旧対象領域を特定するアドレス範囲がハードウェアであるメモリ制御部115に設定される。又、負荷状態回復の検出に応じて、ソフトウェアは、この復旧対象領域を復旧させるためのメモリ復旧指示を発行する。後述するが、メモリ復旧指示に基づき、予備系のメモリ223から負荷状態が回復したメモリ123にデータが移動され、システム全体が通常モードに切り替えらる。ここで、負荷状態回復を検出したメモリ負荷監視部125は、他のノード101、102、200に対して、メモリ123の負荷状態が回復したことを通知するとともに、コピー領域300、400のアドレスを特定するための情報を通知する。他のノード101、102、200のそれぞれのメモリ負荷監視部125は、ノード100から負荷状態回復の通知を受け取ると、ノード100から通知されたコピー領域300、400を示す情報に基づいて、それぞれのルーティングレジスタを設定する。
(4)負荷分散モードから通常モードへの切り替え時におけるリソース復旧動作
図2、図5及び図6を参照して、負荷分散モードから通常モードへの切り替え時におけるリソース移動動作(メモリ復旧動作)の詳細を説明する。MemCopy実行制御部117で実施するメモリ復旧動作は、ソフトウェア(メモリ負荷監視部125)により設定されたMemoryブロックに対して、予備ノード200内のメモリ223と移動先のメモリ123とでアドレスインタリーブされるような構成に切り替わる。例えば、図5に示すように、メモリ223におけるデータのLine Sizeを128Bとした場合、アドレスのbit(7)をEven/Odd判定として行い、bit(7)=1bであるLineをコピー領域400とし、メモリ123のコピー領域300にコピー領域400内のデータがコピーされる。又、bit(7)=0bであれば、メモリコピーは実施されず、bit(7)=1bとなるように次Lineのアドレスにインクリメントされる。
図6を参照して、メモリ負荷監視部125からのメモリ復旧指示に応じて、予備系のノード200におけるメモリ制御部115は、メモリ223におけるコピー領域400内のデータをノード100(メモリ123)に移動するリソース移動処理(メモリ復旧)を開始する(ステップS301)。ここでは、ステップS201〜S207の処理と同様に、ノード200において、メモリ223からメモリ123にデータがコピーされる。ノード200のMemCopy実行制御部117は、メモリ復旧指示に応じてメモリ223におけるコピー領域400内のデータをノード100に移動するためのメモリコピーリクエストを生成し、ノード200のセレクタ118に出力する。又、ノード200のMemCopy実行制御部117は、メモリ復旧指示に応じてノード200のTXN実行管理部116に対し、コピー領域400に対するアクセスを待ち合わせるための待機指示を発行する。TXN実行管理部116は、MemCopy実行制御部117に指定されたコピー領域400に対してアクセスを要求するリクエストの出力を待ち合わせる。
当初、ノード200のMemCopy実行制御部117は、メモリ223の所定の領域における先頭アドレス範囲を指定したメモリコピーリクエストを生成し、セレクタ118を介してMemTXNルーティング制御部119に出力する。MemTXNルーティング制御部119は、メモリコピーリクエストをMemAccess制御部120に出力する。
MemCopy実行制御部117からのメモリコピーリクエストがコピー領域400と異なる領域へのアクセスである場合(ステップS302No)、MemAccess制御部120は、メモリコピーリクエストのリプライをMemWrite生成部121へ出力する。MemWrite生成部121は、MemAccess制御部120から受け付けたリプライに応じて、アドレスインクリメント指示をMemCopy実行制御部117へ出力する(ステップS306)。MemCopy実行制御部117は、アドレスインクリメント指示に従い、次のラインのアドレス範囲を指定したメモリコピーリクエストを生成し、セレクタ118を介してMemTXNルーティング制御部119に出力する。
MemCopy実行制御部117からのメモリコピーリクエストがコピー領域400へのアクセスである場合(ステップS302Yes)、MemAccess制御部120は、メモリ223(コピー領域400)からデータをリードし、ノード100のメモリ123にコピーする(ステップS303、S304)。詳細には、MemAccess制御部120は、メモリコピーリクエストを受け付けると、メモリ223のコピー領域400からデータを読み出し、この結果をMemWrite生成部121へ出力する。MemWrite生成部121は、MemAccess制御部120から受け付けたメモリコピーリクエストのリード結果をライトデータとしてメモリライトリクエストとともにセレクタ122を介してノード100のメモリ123に出力する。メモリライトリクエストを受け付けたノード100のMemAccess制御部120は、コピー領域400からリードされたデータをメモリ123のコピー領域300に書き込む。
ノード200のMemWrite生成部121は、メモリライトリクエストを生成後、インクリメント指示をノード200のMemCopy実行制御部117へ出力する(ステップS305No、S306)。MemCopy実行制御部117は、アドレスインクリメント指示に従い、次のラインのアドレス範囲を指定したメモリコピーリクエストを生成し、セレクタ118を介してMemTXNルーティング制御部119に出力しステップS302に移行する。
ノード200のメモリ制御部115は、ステップS302からステップS306の処理を、メモリ223の所定の領域の全アドレス範囲が終了するまで繰り返す。全アドレス範囲に対するメモリコピーリクエストの出力が完了すると、メモリ制御部115は、リソース移動処理を終了し、ノード200のメモリ負荷監視部125にコピー完了(復旧完了)を通知する(ステップS307)。復旧完了の通知方法については、割り込み方式であっても、ソフトウェアによってフラグをポーリングする方法でも良い。
予備系のノード200と現用系のノード100との間でリソース移動が行われた結果、移動後のメモリ割り当て状態は通常モード時の状態に復旧する。尚、本例で示したインタリーブの設定は、上述のようなアルゴリズムに限定されず、設定により、アドレスインタリーブのbit判定位置やLine Sizeを変更可能なようにしておいても良い。
ノード200において、メモリ制御部115からコピー完了通知を受け付けた負荷管理部1は、ルーティング設定部4及び他のノード100〜102に対してルーティング設定解除指示を発行する。システム内全てのノード100〜102、200のルーティング設定部4は、ルーティング設定解除指示に応じてコピー領域300、400を特定し、MemTXNルーティング制御部119(ルーティングレジスタ)の設定を変更する。詳細には、ノード100〜102、200のルーティングレジスタ(ハードウェア側)において、コピー領域300宛ての宛先アドレスに紐付けられたコピー領域400のアドレスは解除され、コピー領域300宛ての宛先アドレスとコピー領域300上のアドレスとが紐つけられる。すなわち、負荷分散されていた領域が、予備系のノード200から負荷分散前のノード100へ戻されたルーティングとなるようにルーティング設定が現用状態に戻される。その結果、各ノード100〜102は、負荷分散時の予備ノード200行きのルーティングから現用ノード100へのルーティングに戻された状態に移行する。これにより、分散共有メモリ型マルチプロセッサシステムは、通常モードに復帰する。
以上のようにして、本発明によれば、ソフトウェアとの連携により、高負荷状態からの回復を検出すると、負荷分散のためコピー領域300の替わりにアクセス先となっていたノード200内のメモリ223を、元のノード100に移動させることができる。尚、MemCopy実行制御部117で行われるメモリコピー動作は、ソフトウェアによる復旧指示以降、ハードウェアによって全領域のコピーが自動的に行われる。
(5)トランザクション処理動作
図2及び図7を参照して、本発明による分散共有メモリ型マルチプロセッサシステムにおけるトランザクション処理の動作の詳細を説明する。以下では、ノード100におけるトランザクション処理について説明する。
CPU制御部109は、通常モード時、データコピー時、負荷分散モード時のいずれにおいても同様な動作を行う。すなわち、CPU群103又は他のノードのCPU群103からのトランザクションを選択的にメモリ制御部115に出力する(ステップS401)。本発明による分散共有メモリマルチプロセッサシステムは、各現用ノードのメモリ123に対してアクセスが集中せず、高負荷状態が検出されていない間、通常モードとして動作する。この場合、CPUからのトランザクションは、その宛先アドレスどおりの領域(メモリ123)に出力される(ステップS402Yes、S407)。ステップS407における処理の詳細を以下に示す。
TXN実行管理部116は、CPU制御部109(セレクタ112)からのトランザクションをセレクタ118に出力する。セレクタ118は、TXN実行管理部116からのトランザクションをMemTXNルーティング制御部119に出力する。MemTXNルーティング制御部119は、セレクタ118(CPU制御部109)からのトランザクションが要求するアクセス先に応じて当該トランザクションの出力先を決定する。
トランザクションが要求するアクセス先が自ノードのメモリ123である場合、MemTXNルーティング制御部119は、トランザクションをMemAccess制御部120に出力する。MemAccess制御部120はMemTXNルーティング制御部119から受け取ったトランザクションに応じてメモリ123に対するアクセス制御を行い、メモリ123からのリプライ(リードデータ)をMemTXNルーティング制御部119に出力する。
一方、トランザクションが要求するアクセス先が、他ノードのメモリ123である場合、MemTXNルーティング制御部119は、トランザクションをセレクタ122に出力する。セレクタ122は、トランザクションをノード間インタフェースを介して宛先となる他のノード(ノード101、102)に出力する。
他のノード101、102も同様に動作し、ノード間でメモリ123を共有する。予備系のノード200は、動作せずに待機しているが、ノード100〜102のいずれかで障害が発生した場合、障害が発生したノードの替わりに現用系ノードとして動作する。この場合、上述と同様に動作する。
一方、トランザクションを受け付けた際、通常モードではない場合、すなわち、データコピー時又は負荷分散モード時の場合についてのトランザクション処理について説明する(ステップS402No)。
トランザクションがコピー領域300以外の領域へのアクセスを要求する場合、トランザクションは、その宛先アドレスどおりの領域(メモリ123)に出力される(ステップS403No、S407)。詳細には、トランザクションが要求するアクセス先が自ノードのメモリ123で、且つコピー領域300以外の領域である場合、MemTXNルーティング制御部119は、トランザクションをMemAccess制御部120に出力する。MemAccess制御部120はMemTXNルーティング制御部119から受け取ったトランザクションに応じてメモリ123に対するアクセス制御を行い、メモリ123からのリプライ(リードデータ)をMemTXNルーティング制御部119に出力する。一方、トランザクションが要求するアクセス先が、他ノードのメモリ123である場合、MemTXNルーティング制御部119は、トランザクションをセレクタ122に出力する。セレクタ122は、トランザクションをノード間インタフェースを介して宛先となる他のノード(ノード101、102)に出力する。
ノード100において、高負荷状態が検出され、ステップS201〜S207のコピー処理が実行されている間にトランザクションを受け付け、当該トランザクションがコピー領域300へのアクセスを要求する場合、TXN実行管理部116は、当該トランザクションの出力を待ち合わせる(ステップS403Yes、S404Yes、S405)。すなわち、コピー領域300のデータを移動中TXN実行管理部116は、コピー領域300に対するトランザクションを待機させ、コピー完了通知に応じて、当該トランザクションをセレクタ118に出力する。コピー完了後に出力されたコピー領域300宛てのトランザクションは、MemTXNルーティング制御部119によって、メモリ200のコピー領域400へのアクセスとして処理される。
TXN実行管理部116は、コピー時においても通常系の動作としてのリクエストやリプライに対する処理を行っている。リソース移動時や復旧時におけるコピーの実行中、あるいはコピーが完了していない間において、コピー領域300とアドレス競合するトランザクションの入力があり得る。このため、上述のようにコピー領域300に対するトランザクションを待機させることで、メモリ123のデータの一貫性を保証することができる。
負荷分散モード時、すなわちルーティングレジスタの設定後に、コピー領域300へのアクセスを要求するトランザクションを受け付けた場合、当該トランザクションは、ルーティングレジスタの設定に従ったメモリ223のコピー領域400に出力される(S403Yes、S404No、S406)。詳細には、負荷分散モード時、MemTXNルーティング制御部119は、ルーティング設定部4によって設定されたルーティングレジスタに従って、トランザクションのルーティングを行う。例えば、トランザクションに付与された宛先アドレス範囲(フレームヘッダ内のアドレス)がコピー領域300宛である場合、当該宛先アドレスに対応付けられたコピー領域400に対し、当該フレーム(トランザクション)を出力する。
以上のように、本発明によれば、負荷分散モード時、高負荷状態と判定されたメモリ123の一部(コピー領域300)に対するアクセスは、ハードウェアによって自動的に、予備系のノード200に対するアクセスに変更される。又、コピー領域300のデータの移動している最中に、CPUからの当該コピー領域300にアクセス要求がある場合、当該アクセスを待機させ、コピー完了後、アクセス先を予備系のノード200に変更することができる。これにより、メモリ123におけるデータの一貫性を保つことができる。
本発明では、Memory制御部115が管理するメモリ123に対して集中してアクセスされた場合、負荷集中しているメモリ123の内容を物理的に移動させ、過負荷状態であるメモリへのアクセスを動的に変更することで負荷分散させることができる。この負荷分散の結果、過負荷状態であるメモリへのアクセスが低減されると、元のシステム稼働時の運用状態に復旧される。
又、メモリのアクセス方式としてスタックモードやアドレスインタリーブモードが採用されるが、一般的に分散共有メモリ型マルチプロセッサシステムでは、レイテンシ重視のため、低負荷状態ではスタックモードが有効であり、高負荷状態ではレイテンシが悪化する可能性があるため、連続したアドレスに同時にアクセスするためにアドレスインタリーブモードが有効である。しかし、動的にこの2つのモードを切り替えることは困難であり、モード変更のためにリブートが必要とされる。本発明では、本来保守対象として使用する予備系のノード200内のメモリ223を高負荷状態時に一時的に利用し、動的に負荷分散させることで、負荷集中したリソースの使用率を低減することができる。このため、本発明では、システムをリブートすることなく高負荷時の性能低下を抑えることができる。
更に、ハードウェアによってアクセス先を変更することによって動的負荷分散を行っているため、リソース移動したメモリは、OSやソフトウェア見えには現用メモリに組み込まれた状態のままである。このため、OSやソフトウェアが論理的に使用するアドレスを変換することなく、予備系のノード200の物理メモリ(メモリ223)をそのまま使用することが可能となる。
以上、本発明の実施の形態を詳述してきたが、具体的な構成は上記実施の形態に限られるものではなく、本発明の要旨を逸脱しない範囲の変更があっても本発明に含まれる。
図1は、本発明による分散共有メモリ型マルチプロセッサシステムの実施の形態における構成を示す図である。 図2は、本発明によるノードの実施の形態における構成を示すブロック図である。 図3は、本発明による負荷状態監視処理の実施の形態における動作を示すフロー図である。 図4は、本発明によるリソース移動処理の実施の形態における動作を示すフロー図である。 図5は、本発明によるリソース移動後の使用メモリ領域の状態を示す概略図である。 図6は、本発明によるリソース復旧処理の実施の形態における動作を示すフロー図である。 図7は、本発明によるトランザクション処理の実施の形態における動作を示すフロー図である。
符号の説明
100〜102、200:ノード
103:CPU群
105〜108:CPU
109:CPU制御部
110:CPUトランザクション制御部
111:ルーティング制御部
112、113、118、122:セレクタ
114:トランザクション受信制御部
115:メモリ制御部
116:トランザクション実行管理部
117:メモリコピー実行制御部
119:メモリトランザクションルーティング制御部
120:メモリアクセス制御部
121:メモリライト生成部
123、223:メモリ
125:メモリ負荷監視部
1:負荷管理部
2:負荷測定部
3:負荷検出部
4:ルーティング制御部
300:ノード間インタフェース

Claims (13)

  1. 複数のノードを具備する分散共有メモリ型マルチプロセッサシステムにおいて、
    前記複数のノードの各々は、
    アクセス量が閾値を超えた第1メモリの一部のデータを、他のノードの第2メモリに移動し、前記第1メモリと前記第2メモリとでインタリーブを行うメモリ制御部を備え
    前記複数のノードは、前記第1メモリを備える第1ノードと、前記第2メモリを備える第2ノードを含み、
    前記第1ノードは現用ノードであり、前記第2ノードは、障害が発生した現用ノードの代わりに用いられる予備ノードである
    分散共有メモリ型マルチプロセッサシステム。
  2. 請求項1に記載の分散共有メモリ型マルチプロセッサシステムにおいて、
    前記複数のノードの各々は、
    フレームに付与される宛先アドレスと、移動先のメモリ上のアドレスとを対応付けて保持するルーティングレジスタと、
    前記複数のノードのいずれかのメモリに対するアクセス量に基づいて、前記ルーティングレジスタの設定を変更するルーティング設定部と、
    前記ルーティングレジスタに基づいて、入力したフレームの宛先アドレスに対応するメモリに前記フレームを出力するトランザクションルーティング制御部と、
    を備え、
    前記第1メモリに対するアクセス量が閾値を超える場合、前記複数のノードの各々の前記ルーティング設定部は、各々の前記ルーティングレジスタにおいて第1宛先アドレスに対応付けられているメモリを、前記第1メモリから前記第2メモリに変更し、
    前記複数のノードの各々の前記トランザクションルーティング制御部は、設定が変更された前記ルーティングレジスタに基づいて、前記第1宛先アドレスが付与されたフレームを前記第2メモリに出力する
    分散共有メモリ型マルチプロセッサシステム。
  3. 請求項2に記載の分散共有メモリ型マルチプロセッサシステムにおいて、
    前記第1メモリに対するアクセス量が閾値を超えた状態から閾値以下に変化した場合、前記複数のノードの各々の前記ルーティング設定部は、各々の前記ルーティングレジスタにおいて第1宛先アドレスに対応付けられている前記第2メモリ上のアドレスを、前記第1メモリ上のアドレスに変更し、
    前記複数のノードの各々の前記トランザクションルーティング制御部は、設定が変更された前記ルーティングレジスタに基づいて、前記第1宛先アドレスが付与されたフレームを前記第1メモリに出力する
    分散共有メモリ型マルチプロセッサシステム。
  4. 請求項1から3のいずれか1項に記載の分散共有メモリ型マルチプロセッサシステムにおいて、
    前記第1ノードは、
    前記第1メモリに対するアクセス量が閾値を超える場合、前記第1メモリ上の所定のアドレスに対応する第1領域へのトランザクションを待機させ、前記第1領域内のデータを前記第2メモリ上の第2領域にコピーする第1メモリコピー実行制御部を更に具備する
    分散共有メモリ型マルチプロセッサシステム。
  5. 請求項に記載の分散共有メモリ型マルチプロセッサシステムにおいて、
    前記第2ノードは、
    前記第1メモリに対するアクセス量が閾値を超えた状態から閾値以下に変化した場合、前記第2領域へのトランザクションを待機させ、前記第2領域内のデータを前記第1領域にコピーする第2メモリコピー実行制御部を更に具備する
    分散共有メモリ型マルチプロセッサシステム。
  6. 請求項1から5のいずれか1項に記載の分散共有メモリ型マルチプロセッサシステムにおいて、
    前記第1ノードは、
    前記第1メモリに対するアクセス量を監視する監視部を更に具備し、
    前記複数のノードの各々のルーティング設定部は、前記監視部における監視結果に基づいて、各々の前記ルーティングレジスタの設定を変更する
    分散共有メモリ型マルチプロセッサシステム。
  7. 請求項1から6のいずれか1項に記載の分散共有メモリ型マルチプロセッサシステムで利用される前記第1ノードである
    ノード。
  8. 請求項1から6のいずれか1項に記載の分散共有メモリ型マルチプロセッサシステムで利用される前記第2ノードである
    ノード。
  9. 複数のノードを具備する分散共有メモリ型マルチプロセッサシステムにおける負荷分散方法において、
    メモリ制御部が、アクセス量が閾値を超えた現用ノードの第1メモリの一部のデータを、障害が発生した現用ノードの代わりに用いられる予備ノードの第2メモリに移動するステップと、
    前記メモリ制御部が、前記第1メモリと前記第2メモリとでインタリーブを行うステップと、
    を具備する負荷分散方法。
  10. 請求項に記載の負荷分散方法において、
    ルーティングレジスタ、フレームに付与される宛先アドレスと、移動先のメモリ上のアドレスとを対応付けて保持するステップと、
    ルーティング設定部が、前記複数のノードのいずれかのメモリに対するアクセス量に基づいて、前記ルーティングレジスタの設定を変更するステップと、
    トランザクションルーティング制御部が、前記ルーティングレジスタに基づいて、入力したフレームの宛先アドレスに対応するメモリに前記フレームを出力するステップと、
    を備え、
    前記設定を変更するステップは、前記第1メモリに対するアクセス量が閾値を超える場合、前記ルーティング設定部が、前記複数のノードの各々の前記ルーティングレジスタにおいて第1宛先アドレスに対応付けられているメモリを、前記第1メモリから前記第2メモリに変更するステップを備え、
    前記フレームを出力するステップは、前記トランザクションルーティング制御部が、前記設定が変更されたルーティングレジスタに基づいて、前記第1宛先アドレスが付与されたフレームを前記第2メモリに出力するステップを備える
    負荷分散方法。
  11. 請求項10に記載の負荷分散方法において、
    前記設定を変更するステップは、前記第1メモリに対するアクセス量が閾値を超えた状態から閾値以下に変化した場合、前記ルーティング設定部が、前記複数のノードの各々の前記ルーティングレジスタにおいて第1宛先アドレスに対応付けられている前記第2メモリ上のアドレスを、前記第1メモリ上のアドレスに変更するステップを備え、
    前記フレームを出力するステップは、前記トランザクションルーティング制御部が、前記設定が変更されたルーティングレジスタに基づいて、前記第1宛先アドレスが付与されたフレームを前記第1メモリに出力するステップを備える
    負荷分散方法。
  12. 請求項9から11のいずれか1項に記載の負荷分散方法において、
    前記第1メモリに対するアクセス量が閾値を超える場合、第1メモリコピー実行制御部が、前記第1メモリ上の所定のアドレスに対応する第1領域へのトランザクションを待機させ、前記第1領域内のデータを前記第2メモリ上の第2領域にコピーするステップを更に具備する
    負荷分散方法。
  13. 請求項12に記載の負荷分散方法において、
    前記第1メモリに対するアクセス量が閾値を超えた状態から閾値以下に変化した場合、第2メモリコピー実行制御部が、前記第2領域へのトランザクションを待機させ、前記第2領域内のデータを前記第1領域にコピーするステップを更に具備する
    負荷分散方法。
JP2008080540A 2008-03-26 2008-03-26 分散共有メモリ型マルチプロセッサシステム及びマルチプロセッサシステムにおける負荷分散方法 Expired - Fee Related JP4985512B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2008080540A JP4985512B2 (ja) 2008-03-26 2008-03-26 分散共有メモリ型マルチプロセッサシステム及びマルチプロセッサシステムにおける負荷分散方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2008080540A JP4985512B2 (ja) 2008-03-26 2008-03-26 分散共有メモリ型マルチプロセッサシステム及びマルチプロセッサシステムにおける負荷分散方法

Publications (2)

Publication Number Publication Date
JP2009237709A JP2009237709A (ja) 2009-10-15
JP4985512B2 true JP4985512B2 (ja) 2012-07-25

Family

ID=41251609

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2008080540A Expired - Fee Related JP4985512B2 (ja) 2008-03-26 2008-03-26 分散共有メモリ型マルチプロセッサシステム及びマルチプロセッサシステムにおける負荷分散方法

Country Status (1)

Country Link
JP (1) JP4985512B2 (ja)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6155723B2 (ja) * 2013-03-18 2017-07-05 富士通株式会社 レーダ装置及びプログラム
US9921754B2 (en) * 2015-07-28 2018-03-20 Futurewei Technologies, Inc. Dynamic coding algorithm for intelligent coded memory system
US10437480B2 (en) 2015-12-01 2019-10-08 Futurewei Technologies, Inc. Intelligent coded memory architecture with enhanced access scheduler
JP6991446B2 (ja) * 2018-05-18 2022-01-12 日本電信電話株式会社 パケット処理装置及びそのメモリアクセス制御方法

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3808373B2 (ja) * 2002-01-24 2006-08-09 エヌイーシーコンピュータテクノ株式会社 分散共有メモリ装置及び分散処理方法
JP2004205577A (ja) * 2002-12-24 2004-07-22 Toshiba Corp 表示制御方法および表示制御装置
JP4725130B2 (ja) * 2005-02-22 2011-07-13 日本電気株式会社 分散共有メモリ装置およびメモリアクセス方法

Also Published As

Publication number Publication date
JP2009237709A (ja) 2009-10-15

Similar Documents

Publication Publication Date Title
JP6328134B2 (ja) クラスタ化されたコンピュータ・システムで通信チャネルのフェイルオーバを実行する方法、装置、およびプログラム
US6976140B2 (en) Computer system and a method of replication
JP5225515B2 (ja) プロセッサ装置及びプログラム
US8261249B2 (en) Distributed schemes for deploying an application in a large parallel system
JP4902501B2 (ja) 電力制御方法、計算機システム、及びプログラム
US8051325B2 (en) Multiprocessor system and failure recovering system
JP5360061B2 (ja) マルチプロセッサシステム及びその制御方法
JP6477266B2 (ja) ダンプ管理装置、ダンプ管理プログラム及びダンプ管理方法
JP4609521B2 (ja) 情報処理装置、および情報処理方法、並びにコンピュータ・プログラム
JP4985512B2 (ja) 分散共有メモリ型マルチプロセッサシステム及びマルチプロセッサシステムにおける負荷分散方法
JP2009199478A (ja) メモリミラーリング自動構成制御方式
JP5082479B2 (ja) データ一貫性制御システム及びデータ一貫性制御方法
US8356205B2 (en) Disk array device, disk control device and load distribution method in disk array device
JP5408620B2 (ja) データ分散管理システム及びデータ分散管理方法
JP2009069963A (ja) マルチプロセッサシステム
JP2006053896A (ja) コンピュータシステムの複数の処理ノードを接続するファブリック数のソフトウェアトランスペアレントな拡張
JP5516411B2 (ja) 情報処理システム
JP2005339300A (ja) データベース処理方法およびシステム並びにその処理プログラム
JP2009037273A (ja) マルチプロセッサシステム
JPWO2012101759A1 (ja) プロセッサ処理方法、およびプロセッサシステム
JP2010211506A (ja) 不均一メモリアクセス機構を備えるコンピュータ、コントローラ、及びデータ移動方法
JP4295815B2 (ja) マルチプロセッサシステムおよびマルチプロセッサシステムの動作方法
US20170017549A1 (en) Node, arithmetic processing device, and arithmetic processing method
JP2005339079A (ja) データベース管理システムにおける処理代行方法
JP2005122229A (ja) 計算機システム

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20110616

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20110627

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20110822

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20120403

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20120416

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

Ref document number: 4985512

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

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

Free format text: PAYMENT UNTIL: 20150511

Year of fee payment: 3

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313111

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

LAPS Cancellation because of no payment of annual fees