JP4892746B2 - 分散共有メモリ型マルチプロセッサシステム及びプレーンデグレード方法 - Google Patents

分散共有メモリ型マルチプロセッサシステム及びプレーンデグレード方法 Download PDF

Info

Publication number
JP4892746B2
JP4892746B2 JP2008088288A JP2008088288A JP4892746B2 JP 4892746 B2 JP4892746 B2 JP 4892746B2 JP 2008088288 A JP2008088288 A JP 2008088288A JP 2008088288 A JP2008088288 A JP 2008088288A JP 4892746 B2 JP4892746 B2 JP 4892746B2
Authority
JP
Japan
Prior art keywords
plane
transaction
level
directory cache
directory
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
JP2008088288A
Other languages
English (en)
Other versions
JP2009244994A (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 JP2008088288A priority Critical patent/JP4892746B2/ja
Publication of JP2009244994A publication Critical patent/JP2009244994A/ja
Application granted granted Critical
Publication of JP4892746B2 publication Critical patent/JP4892746B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Memory System Of A Hierarchy Structure (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)
  • Debugging And Monitoring (AREA)

Description

本発明は、アドレスでインタリーブされている複数のプレーンを有するディレクトリ方式の分散共有メモリ型マルチプロセッサシステムにおいて、1つのプレーンを動的にデグレードするときにそのプレーン上のディレクトリの内容を他の運用プレーン上のディレクトリにコピーするときにロック処理を少ない回数で行う制御方法と、デグレードしたプレーンを復旧する復旧方法、等に関する。
分散共有メモリ型マルチプロセッサシステムが、例えば、特許文献1に開示されている。この種の分散共有メモリ型マルチプロセッサシステムにおいて、動的にプレーンをデグレードする場合、チップセットは、まず、ロック処理を行いプロセッサやIO装置等からのトランザクションを受け付けないように設定し、チップセット内に仕掛かり中トランザクションがいない状態を作る。チップセットは、仕掛かり中トランザクションがなくなると、デグレード対象のプレーン上のディレクトリを別の運用プレーン上のディレクトリにコピーする。
特開平8−320827号公報
ディレクトリ容量が大きくなると、プレーンをデグレードする際にコピーする情報量が多くなる。このため、ロック時間が長くなり、プロセッサやIO装置、ソフトウエアがタイムアウトを検出してしまうことがある。タイムアウト検出を避けるためにディレクトリの管理容量を予め縮退させたり一度に行うコピー容量を減らすためにコピーを分割してコピー1回当たりのロック時間を短縮したりしている。しかし、このような手法では、制御方法や制御回路が複雑になってしまう。
また、ロック処理はプロセッサやIO装置の処理を一時的に停止させるため、ディレクトリを分割してコピーすると、ロック回数が増加し、性能が低下してしまう。同様の問題は、一旦デグレードしたプレーンを復旧する際にも同様に発生する。
この発明は上記実情に鑑みてなされたものであり、簡単な構成で、性能劣化の小さいプレーンデグレード、復旧方法、分散共有メモリ型マルチプロセッサシステム等を提供することを目的とする。
また、この発明はプレーンのデグレードや復旧が容易なマルチプレーンを有するシステムや方法を提供することを他の目的とする。
上記目的を達成するため、この発明の第1の観点に係る分散共有メモリ型マルチプロセッサシステムは、
それぞれがプロセッサを備えデータを処理実行する単位構成であるセルを複数備え、セルとセルとを接続する複数のプレーンを有し、各プレーンが複数のディレクトリレベルを有するディレクトリキャッシュを有する分散共有メモリ型マルチプロセッサシステムであって、
第1のプレーンをデグレードする指示に応答して、前記第1のプレーンのディレクトリキャッシュの複数のレベルのうちの一部のレベルの記憶情報を掃き出す掃出手段と、
前記掃出手段による記憶情報の掃き出し後、前記第1のプレーンへのトランザクションのパスルートを前記第1のプレーンとは異なる第2のプレーンに変更するパスルート制御手段と、
前記パスルート制御手段によるパスルートの変更後、前記第1のプレーンのディレクトリキャッシュの複数のレベルのうちの前記一部のレベル以外の他のレベルの記憶情報を前記第2のプレーンのディレクトリキャッシュに転送する転送手段と、
を備える。
また、この発明の第2の観点に係る分散共有メモリ型マルチプロセッサシステム用のチップセットは、
複数のディレクトリレベルを有するディレクトリキャッシュと、
デグレード指示に応答して、ディレクトリキャッシュの複数のレベルの一部のレベルの記憶情報を読み出し、読み出した記憶情報により特定されるキャッシュメモリの内容をメモリに出力させるトランザクションを発行する掃出手段と、
前記掃出手段による情報の掃き出し後、前記第1のプレーンへのトランザクションのパスルートを前記第1のプレーンとは異なる第2のプレーンに変更するパスルート制御手段と、
前記パスルート制御手段によるパスルートの変更後、ディレクトリキャッシュの残りのレベルの記憶情報を前記第2のプレーンのディレクトリキャッシュに転送する転送手段と、
を備える。
また、この発明の第3の観点に係るプレーンデグレード方法は、
デグレードの指示に応答して、デグレード対象の第1のプレーンのディレクトリキャッシュの複数のレベルのうちの一部のレベルの記憶情報を読み出し、読み出した記憶情報に基づいて、最新のデータをメモリに掃き出す掃き出しステップと、
データの掃き出し後、第1のプレーンへのトランザクションのパスルートを運用系の第2のプレーンに変更するステップと、
パスルートの変更後、前記第1のプレーンのディレクトリキャッシュの複数のレベルのうちの前記一部のレベル以外の他のレベルの記憶情報を第2のプレーンのディレクトリキャッシュに転送するステップと、
を備える。
また、この発明の第4の観点に係る分散共有メモリ型マルチプロセッサシステムは、
各プレーンが複数のディレクトリレベルを有するディレクトリキャッシュと、プロセッサとを備え、複数のプレーンのプロセッサが相互に接続された構成を有する分散共有メモリ型マルチプロセッサシステムにおいて、
デグレードされた第1のプレーンを復旧する場合に、運用系の第2のプレーンのディレクトリキャッシュの複数のレベルのうちの一部のレベルに関し、復旧する第1のプレーン用のトランザクションにより登録された情報を掃き出す掃出手段と、
前記掃出手段による情報の掃き出し後、前記第1のプレーンへのトランザクションのパスルートを復旧するパスルート制御手段と、
前記パスルート制御手段によるパスルートの復旧後、前記第2のプレーンの複数のディレクトリキャッシュのうちの前記一部のレベル以外の他のレベルに記憶されている情報であって、復旧する第1のプレーンのトランザクションにより登録された情報を第1のプレーンのディレクトリキャッシュに転送する転送手段と、
を備える。
この発明の第5の観点に係る分散共有メモリ型マルチプロセッサシステム用のチップセットは、
複数のディレクトリレベルを有するディレクトリキャッシュと、
デグレードした第1のプレーンの復旧の指示に応答して、第2のプレーンに配置されているディレクトリキャッシュの複数のレベルのうち、デグレードしたプレーンのトランザクション用のn個のレベルのうちのm個のレベルの記憶情報を読み出し、読み出した記憶情報で特定されるキャッシュメモリの内容をメモリに出力させるトランザクションを発行する掃出手段と、
復旧が指示された第1のプレーンへのトランザクションのパスルートを復旧するパスルート制御手段と、
前記パスルート制御手段による第1のプレーンへのパスルートの復旧後、前記第2のプレーンのディレクトリキャッシュの前記n個のレベルのうちのm個以外の(n−m)個のレベルの記憶情報を第1のプレーンのディレクトリキャッシュに転送する転送手段と、
を備える。
また、この発明の第6の観点に係る分散共有メモリ型マルチプロセッサシステム用におけるプレーン復旧制御装置は、
第1のプレーンをデグレードされた状態で第2のプレーンを運用している状態から第1のプレーンを復旧して、第1と第2のプレーンを運用する状態に復帰させるプレーン復旧制御装置において、
第2のプレーンのディレクトリキャッシュの複数のレベルのうちの一部のレベルの記憶情報であって、復旧対象の第1のプレーンのトランザクションにより生成されたものを読み出し、読み出した記憶情報に基づいて、最新データを所有しているコンポーネントに、キャッシュからメモリに最新データを掃き出させるトランザクションを発行するように指示する手段と、
前記第1のプレーンへのトランザクションのパスルートを復旧するように指示する手段と、
第1のプレーンへのパスルートを復旧した後、前記第2のプレーンのディレクトリキャッシュの前記一部のレベル以外の他のレベルの記憶情報のうち復旧対象の第1のプレーンのトランザクションにより生成されたものを前記第1のプレーンのディレクトリキャッシュに転送するように指示する手段と、
を備える。
この発明の第7の観点に係るプレーンデグレード方法は、
デグレードされた第1のプレーンを復旧するとの指示に応答して、
運用中の第2のプレーンのディレクトリキャッシュの複数のレベルのうちの一部のレベルの記憶情報であって、第1のプレーンのトランザクションにより登録されたものを読み出し、読み出した記憶情報に基づいて、最新のデータをメモリに掃き出す掃き出しステップと、
データの掃き出し後、第1のプレーンへのトランザクションのパスルートを復旧する復旧ステップと、
パスルートの復旧後、前記第2のプレーンのディレクトリキャッシュの前記一部のレベル以外の他のレベルの記憶情報であって第1のプレーンのトランザクションにより登録されたものを第1のプレーンのディレクトリキャッシュに転送するステップと、
を備える。
また、この発明の第8の観点に係るプレーンデグレード・復旧方法は、
デグレード指示に応答して、デグレード対象のプレーンのディレクトリキャッシュの複数のレベルの一部のレベルの記憶情報を読み出し、読み出した記憶情報に基づいて、最新のデータをメモリに掃き出し、デグレード対象の第1のプレーンへのトランザクションのパスルートを運用系の第2のプレーンへのパスルートに変更し、前記デグレード対象のプレーンのディレクトリキャッシュの残りのレベルの記憶情報を第2のプレーンのディレクトリキャッシュに転送することにより、第1のプレーンをデグレードし、
第1のプレーンがデグレードした状態で運用中の第2のプレーンのディレクトリキャッシュの複数のレベルのうちの一部のレベルの記憶情報であって、第1のプレーンのトランザクションにより登録されたものを読み出し、読み出した記憶情報に基づいて、最新のデータをメモリに掃き出し、第1のプレーンへのトランザクションのパスルートを復旧し、前記第2のプレーンのディレクトリキャッシュの前記一部のレベル以外の残りのレベルの記憶情報であって第1のプレーンのトランザクションにより登録されたものを第1のプレーンのディレクトリキャッシュに転送することにより、第1のプレーンを復旧する、
ことを特徴とする。
本発明によれば、ディレクトリ容量が大きくなっても、容易に動的にプレーンデグレードや復旧を行うことができる。
以下、本発明の実施の形態に係る分散共有メモリ型マルチプロセッサシステムを説明する。
(第1の実施の形態)
本実施形態の分散共有メモリ型マルチプロセッサシステム1は、図1に示すように、複数のセル#0と、セル#1とから構成されている。
セル#0とセル#1とは、それぞれ、制御部、記憶部、バス等を含む構成単位であり、論理的又は物理的な基板である。
セル#0とセル#1は、2つ経路で互いに接続されている。この経路上にあるチップセットやインタフェースをプレーン#0とプレーン#1と呼ぶ。
セル#0には、2つのディレクトリキャッシュ(メモリ)#00、#01を含むチップセットと、2つの制御部#00、#01が搭載されている。理解を容易にするために図示しないが、I/O装置、メモリ等も配置されている。
同様に、セル#1には、ディレクトリキャッシュ(メモリ)#10、#11を含むチップセットと、2つの制御部#10、#11等が搭載されている。
セル#0のディレクトリキャッシュ#00とセル#1のディレクトリキャッシュ#10とは相互に接続されており、プレーン#0に属す。
また、セル#0のディレクトリキャッシュ#01とセル#1のディレクトリキャッシュ#11とは相互に接続されており、プレーン#1に属している。
セル#0の制御部#00は、ディレクトリキャッシュ#00に接続されており、制御部#01はディレクトリキャッシュ#10に接続されている。セル#1の制御部#10は、ディレクトリキャッシュ#10に接続されており、制御部#11はディレクトリキャッシュメモリ#11に接続されている。
また、セル#0の制御部#00と#01、セル#1の制御部#10と#11は、それぞれ、バス#0と#1により相互に接続されている。
ディレクトリキャッシュ#00、#01、#10、#11は、互いに同一の構成を有する。
ディレクトリキャッシュ#00、#01、#10、#11は、それぞれ、複数のレベル(図では、L0〜L3の4レベル)に分割されており、レベル毎にデグレードできる構造を有する。
制御部#00、#01、#10、#11は、それぞれ、掃出機能部SMと、パスルート変更機能部PMと、データ転送機能部DMを備える。各機能部は、プロセッサ等のハードウエアとソフトウエアとの協働により実現される。
次に、上記構成の分散共有メモリ型マルチプロセッサシステム1において、プレーンを動的にデグレードする処理について説明する。
理解を容易にするため、プレーン#1をデグレードするときの動作を説明する。
プレーンを動的にデグレードする処理は、図2に示すように、デグレード対象のプレーン上にあるディレクトリキャッシュの一部のレベルの内容を掃き出す処理(ステップS11)、デグレード対象プレーンにルーティングされていたトランザクションを運用(継続)プレーンにルーティングする処理(ステップS12)、デグレード対象プレーン上のデグレードしなかったディレクトリキャッシュレベルの内容を運用継続プレーン上のディレクトリキャッシュにコピーする処理(ステップS13)、から構成される。
まず、ステップS11の掃出処理について説明する。
この掃出処理は、各制御部#00〜#11の掃出部SMが主に実行するものである。この掃出処理は、デグレード対象プレーンのディレクトリキャッシュの内容を、本来の記憶場所(図示せぬメモリ、図示せぬIO装置内のレジスタ、制御部内のレジスタ等)に掃き出して(書き戻して)、これらのメモリやレジスタの内容を最新の状態に更新すると共にディレクトリキャッシュの内容を無効にする処理である。ただし、デグレードする対象のプレーンのディレクトリキャッシュ全体を掃き出すのではなく、一部のレベルの内容のみを掃き出す。
以下、理解を容易にするため、セル#0の制御部#00が、この分散共有メモリ型マルチプロセッサシステム1全体を管理するマスタ制御部に設定されていると仮定して説明する。
また、各ディレクトリキャッシュのL1〜L3が掃き出しの対象として予定されているものとする。
マスタ制御部#00は、デグレード対象のプレーン#1に直接接続されている制御部#01,#11の掃出機能部SMに、プレーン#1に属すディレクトリキャッシュ#01,#11のレベルL1〜L3を掃き出す旨を通知する。
この通知に応答し、制御部#01及び制御部#11の掃出部SMは、各ディレクトリキャッシュ#01,#11のディレクトリレベルL1〜L3への新規登録を禁止する。ただし、ディレクトリレベルL0への登録は可能に維持し、また、既存のトランザクションの処理は継続される。
制御部#01と#11は、それぞれ、掃き出し対象のディレクトリレベルL1〜L3の記憶情報に基づいて、キャッシュからメモリに最新データを掃き出させる。
ディレクトリキャッシュ#01,#11の各ディレクトリレベルL1〜L3には、データが登録出来ないように制御されている。このため、各コンポーネントは、ディレクトリキャッシュ#01,#11に情報を登録する必要がある場合は、デグレードしないディレクトリレベルL0に登録する。
ディレクトリキャッシュ#01,#11のデグレード対象のレベルL1〜L3の全エントリが掃き出されると、デグレード対象のレベルL1〜L3に有効データが無くなる。
次に、第2段階のルーティング変更処理(ステップS12)を説明する。
ここでは、デグレード対象プレーン(プレーン#1)にルーティングされていたトランザクションを運用継続プレーン(プレーン#0)にルーティングする。
まず、マスタ制御部#00は、ロックトランザクションを全セルのプロセッサ#00〜#11に対して発行する。各制御部#00〜#11は、ロックトランザクションに応答し、新たなトランザクションの発行を停止する。
マスタ制御部#00は、システム内の仕掛かり中トランザクションの有無を周期的に判別し、システム内に仕掛かり中のトランザクションが無くなったと判別すると、トランザクションをプレーン#0に導くように、トランザクションのルーティングを切り替えるトランザクションを各制御部#00〜#11に発行する。各制御部#00〜#11は、受信したトランザクションをプレーン#0に導くように設定する。
続いて、マスタ制御部#00は、ロック状態の解除を各制御部#00〜#11に指示する。
続いて手順3(ステップS13)の処理を説明する。
まず、マスタ制御部#00は、制御部#01,#11に指示し、デグレード対象プレーン#1上のデグレードしなかったディレクトリキャッシュレベルL0の内容を運用継続プレーン#0上のディレクトリキャッシュにコピーすることを指示する。
指示に応答して、制御部#01は、ディレクトリキャッシュ#01のレベルL0の内容を順次読み出し、バス#0を介して制御部#00に提供する。制御部#00は、提供されたデータをディレクトリキャッシュ#00のいずれかのレベルに書き込む。また、制御部#11は、ディレクトリキャッシュ#11のレベルL0の内容を順次読み出し、制御部#10に提供する。制御部#10は、提供された情報をディレクトリキャッシュ#10のいずれかのレベルに書き込む。
以上の処理により、プレーン#1のデグレードが完了する。以後、プレーン#0のみで運用される。
以上説明したように、本実施の形態のキャッシュレベルのデグレード方式では、ディレクトリキャッシュのコピー中に運用系処理を止める必要がない。このため処理時間に制限されない。これによりディレクトリ容量が大きくなってもOS(オペレーティングシステム)などのソフトウエアに依存せず、かつ複雑な制御回路を作り込む必要なく動的にプレーンデグレードを行うことができる。また、キャッシュメモリをロックする回数が1回だけで済むため、ロックによる性能低下も最小限に抑えることができる。
(第2の実施形態)
上記実施の形態においては、2プレーンで動作していたシステムを1プレーンに動的にデグレードする動作を説明した。本発明は、動的にプレーンをデグレードするだけではなく、片プレーンで運用していたシステムを動的に2つのプレーンに復旧することも可能である。
以下、デグレードプレーンを動的に復旧する実施の形態について説明する。
なお、システムの構成は、図1に示す第1の実施の形態の分散共有メモリ型マルチプロセッサシステム1の構成と同一である。
ここでは、理解を容易にするため、第1の実施形態でデグレードしたプレーン#1を復旧するときの動作を説明する。
前提として、プレーン#0のみで運用しているディレクトリキャッシュ#00と#10のディレクトリキャッシュレベルL0〜L3のうち、ディレクトリキャッシュレベルL0とL1は旧プレーン#0のトランザクションに割り付けられていて、ディレクトリキャッシュレベルL2とL3はデグレードされた旧プレーン#1のトランザクションに割り付けられているものとする。
復旧の手順は大まかには、図3に示すように、旧プレーン#1のトランザクションに割り付けられている2つのディレクトリキャッシュレベルL2とL3の内の1つを掃き出す手順(手順11:ステップS51)、
全ての通常動作トランザクションがプレーン#0にルーティングされている状態から、復旧するプレーン#1にルーティングを戻す手順(手順12:ステップS52)、
運用系プレーン上の、ステップS51で掃き出しの対象としなかったディレクトリキャッシュレベルの内容を、復旧プレーン上のディレクトリキャッシュにコピーする手順(手順13:ステップS53)と、から構成される。
まず、手順11の、旧プレーン#1のトランザクションに割り付けられている2つのディレクトリキャッシュレベルの内の1つを掃き出す方法を説明する。
まず、マスタ制御部#00は、掃き出したいレベルの掃き出しを対応する制御部#00と#10に指示する。ここでは、旧プレーン#1のトランザクションに割り付けられているディレクトリキャッシュ#00と#10のレベルL2とL3のうち、ディレクトリキャッシュレベルL3を掃き出しの対象とする。
制御部#00と#01の掃出機能部SMは、それぞれ、ディレクトリキャッシュ#00,#10の掃き出し対象のレベルL3の内の情報を読み出し、読み出した情報に基づいて、キャッシュからメモリに最新データを掃き出させるトランザクションを発行する。これにより、最新のデータがメモリに記録される。
このとき通常トランザクションは運用されている状態のままである。ただし、ディレクトリキャッシュレベルのデグレードのためにアクセスされたエントリには登録出来ないように、ライトディスエイブル状態に制御し、ディレクトリキャッシュに登録する必要がある場合は復旧対象プレーンに対応するデグレードしない1つのレベルに登録させる。ここではディレクトリキャッシュレベルL2を登録対象に設定する。
また、アクセスされたエントリに、無効データを書き込む。
このようにして、デグレード対象レベルL3の全エントリが掃き出されたところで、有効データがなくなり復旧対象プレーン#1に対応するディレクトリキャッシュの1つの有効レベルL2を残しデグレードすることが可能となる。
次に、手順12の、全ての通常動作トランザクションがプレーン#0にルーティングされている状態から、復旧するプレーン#1にルーティングを戻す処理について説明する。
マスタ制御部#00は、全ての制御部#00〜#11や、IO装置に対して発行する。全てのプロセッサとIO装置とは、ロックトランザクションを受け取るとトランザクションの発行を停止する。
マスタ制御部#00は、システム内の仕掛かり中トランザクションの有無を判別し、トランザクションの処理が終了したことを確認すると、例えば、アドレスインタリーブにより、プレーン#1用のトランザクションをプレーン#1に転送するルートを設定する。
続いて、マスタ制御部#00は、ロック状態を解除するアンロックトランザクションを全制御部#00〜#11とI/O装置に発行する。
これにより、これまでアドレスインタリーブなしでプレーン#0にルーティングしていたトランザクションを、アドレスインタリーブに従い、プレーン#1のチップセットでも受け付けるようになる。
続いて、マスタ制御部#00は、復旧されたプレーンにルーティングされるトランザクションが、そのプレーン上の特定のディレクトリレベルを使用するよう制御する。これは、後述するコピー処理用に空きのレベルを確保するためである。例えば、制御部11は、新しくプレーン#1にルーティングされるトランザクションはプレーン#1上のディレクトリレベルL1〜L3を使用するよう制御する。ディレクトリレベルL0については、空き状態を維持する。
続いて、手順13の、運用系プレーン上のデグレードしなかったディレクトリキャッシュレベル内容を復旧プレーン上のディレクトリキャッシュにコピーする。
まず、マスタ制御部#00は、プレーン#0のディレクトリキャッシュに掃き出されずに残っているレベルを指定する。ここでは、プレーン#0上のディレクトリキャッシュ#00と#10のディレクトリキャッシュレベルL2を指定する。
制御部#00,#10は、プレーン#0のディレクトリキャッシュ#00,#10のレベルL2内の情報を順次読み出し、読み出した情報を、プレーン間ディレクトリコピー制御トランザクションとして、バス#0,#1を介して、制御部復旧対象のプレーン#1に対してプロセッサを経由した経路で順次発行する。復旧対象プレーンにルーティングされたディレクトリコピートランザクションのデータは、対応するディレクトリキャッシュ#01,#11の、先に空けておいたレベルL0に書き込まれる。
制御部#01,#11は、ディレクトリキャッシュ#01と#11のレベルL0のエントリうち、コピーが完了したエントリをアクセス可能とする。
また、コピー元のディレクトリキャッシュ#00と#10では、コピー完了後に自プレーン(#0)に対応するトランザクションに使用させるため、コピーが完了したエントリに情報を無効化するための無効データを書き込む。
コピーが終了すると、プレーン#1の復旧が完了する。一方、プレーン#0ではディレクトリキャッシュL2、L3を自プレーンに対応するトランザクションに使用を許可する。以後、プレーン#0とプレーン#1で運用される。
以上説明したように、この実施の形態のプレーン復旧方法によれば、ディレクトリキャッシュのコピー中にシステムを停止する必要がない。このため処理時間に制限されない。これによりディレクトリ容量が大きくなってもOS(オペレーティングシステム)などのソフトウエアに依存せず、かつ複雑な制御回路を作り込む必要なく動的にプレーンデグレードを行うことができる。また、キャッシュメモリをロックする回数が1回で済むため、ロックによる性能低下も最小限に抑えることができる。
(第3の実施の形態)
以下、第1の実施の形態をより具体化した、第3の実施の形態に係る分散共有メモリ型マルチプロセッサシステム21について図面を参照して説明する。 本実施の形態の分散共有メモリ型マルチプロセッサシステム21は、図4に示すように、セル#0と、セル#1と、制御部11とから構成されている。
セル#0とセル#1とは、それぞれ、プロセッサと、メモリと、バスとを含む構成単位であり、論理的又は物理的な基板である。
セル#0とセル#1とは、2つ経路で接続されている。実際にはチップセットに複数のセル間インタフェースを設けることで複数のセルが接続可能である。この2つの経路はアドレスによりインタリーブされている。アドレスによるインタリーブとは、アドレスの固定ビットの値により経路を割り付けることである。この経路、即ち、セルとセルとを繋ぐ経路上にあるチップセットやインタフェースをプレーンと呼ぶ。この分散共有メモリ型マルチプロセッサシステムでは、システム内に2つのプレーン(プレーン#0、プレーン#1)を持ち、これらもアドレスによるインタリーブで動作する。
また、制御部11は、セル#0とセル#1の各内部回路に接続されている。
セル#0には、2つのチップセットLSI(チップセット#000、#100)と、2つのプロセッサ(プロセッサ#00,#01)と、2つのメモリ(メモリ#00,#01)と、2つのIO装置(IO装置#00,#01)、が搭載されている。
同様に、セル#1には、2つのチップセットLSI(チップセット#010、#110)と、2つのプロセッサ(プロセッサ#10,#11)と、2つのメモリ(メモリ#10,#11)と、2つのIO装置(IO装置#10,#11)と、が搭載されている。
セル#0のチップセット#000とセル#1のチップセット#010とは、プレーン#0に属し、セル#0のチップセット#100とセル#1のチップセット#110とはプレーン#1に属している。
セル#0のプロセッサ#00は、チップセット#000と、メモリ#00と、IO装置#00とに接続されており、プロセッサ#01はチップセット#100と、メモリ#01と、IO装置#01とに接続されている。また、セル#1のプロセッサ#10はチップセット#010と、メモリ#10と、IO装置#10とに接続されており、プロセッサ#11はチップセット#110と、メモリ#11と、IO装置#11とに接続されている。
また、セル#0のプロセッサ#00と#01、セル#1のプロセッサ#10と#11は、それぞれ、バス21と22により相互に接続されている。
なお、プロセッサ#00、#01、#10、#11と、IO装置#00、#01、#10、#11と、チップセット#000、#100、#010、#110と、の間のインタフェースは同一のプロトコルのインタフェースで接続されている。図4ではセル#0と#1に、プロセッサとIO装置とが2つずつ搭載しているが、それぞれは同一のプロトコルのインタフェースを使用しているためプロセッサやIO装置の数を増やすことは可能である。
制御部11は、セル#0とセル#1とに接続され、セル#0とセル#1との並行動作を制御する。
次に、図5を参照して、チップセット#000、#100、#010、#110の構成について説明する。
チップセット#000、#100、#010、#110は、互いに同一の構成を有し、ディレクトリキャッシュ1000と、ディレクトリ掃き出しレベルバリッド部100と、ディレクトリ掃き出し制御部200と、ロックトランザクション発行機能部300と、ルーティングテーブル書き換え機能部400と、コヒーレンシ制御機能部500と、ルーティングテーブル600とを備える。
ディレクトリキャッシュ1000は、複数のレベルに分割されていてレベル毎にデグレードできる構造を有する。本実施形態では、4つのレベルDIR#000、DIR#001、DIR#002、DIR#003に分割されている。ディレクトリキャッシュ1000はセットアソシアティブの構成で、索引アドレスは通常のメモリアクセスに使うトランザクションが持ち回るアドレスの下位アドレスに相当する。
図6に模式的に示すように、ディレクトリキャッシュ1000の各エントリには、そのエントリが有効か無効かを示す有効フラグF、トランザクションが持ち回るアドレスの上位アドレス、ステートメント情報、等が格納されている。索引アドレスと該索引アドレスが指定するエントリに格納されている上位アドレスとを結合(上位アドレス:索引アドレス)することでメモリアドレスが得られる。各エントリのステートメント情報は、このメモリアドレスの最新データをキャッシングしているプロセッサやIO装置を特定する。
ディレクトリ掃き出しレベルバリッド部100は、制御部11の指示に応答して、ディレクトリキャッシュ1000のどのレベルを掃き出すかを制御する。
ディレクトリ掃き出し制御部200は、制御部11の指示に応答して、ディレクトリキャッシュ1000の各レベルを索引するためのアドレス(索引アドレス)を発行する。
ロックトランザクション発行機能部300は、各プロセッサ#01〜#11,IO装置#00〜#11にトランザクションの新規受け付けを停止させるロックトランザクションを発行する。
ルーティングテーブル書き換え機能部400は、ルーティングテーブル600の内容を後述するように書き替える。
コヒーレンシ制御機能部500は、通常トランザクションのコヒーレンシ制御を実行すると共にディレクトリキャッシュレベルのデグレードを行う際のプロセッサやIO装置のキャッシュ掃き出しトランザクションの生成やアクセスしたディレクトリエントリの無効化処理を行う。また、プレーン間でディレクトリキャッシュの内容をコピーするトランザクションを生成する機能を有する。
ルーティングテーブル600は、対象トランザクションをどこのコンポーネントにルーティングするか決定する情報が設定されているテーブルである。例えば、セル0のチップセット#100のルーティングテーブル600を例にとると、例えば、プロセッサ#11にトランザクションを送信する際に、1)チップセット#100→チップセット#110→プロセッサ#11というルート、2)チップセット#100→プロセッサ#01→プロセッサ#00→チップセット#000→チップセット#010→プロセッサ#10→プロセッサ#11というルート、のいずれを取るかを示す情報が設定されている。
プロセッサ#00,#01,#10,#11は、様々なトランザクションを処理するものである。プロセッサ#00,#01,#10,#11は、それぞれ、ルーティングテーブル#00,#01,#10,#11とキャッシュメモリ#00,#01,#10,#11とを備える。
ルーティングテーブル#00,#01,#10,#11は、ルーティングテーブル600と同様にトランザクションの転送ルートを指定する情報を格納する。
キャッシュメモリ#00,#01,#10,#11は、メモリ#00,#01,#10,#11#の記憶データの写し等を記憶する高速メモリである。
IO装置#00,#01,#10,#11は、外部装置と対応するプロセッサ#00,#01,#10,#11との間のデータ通信を仲介するものである。IO装置#00,#01,#10,#11は、それぞれ、ルーティングテーブル#00,#01,#10,#11と、キャッシュメモリ#00,#01,#10,#11と、を備える。
なお、ルーティングテーブル600及び700の内容を変更するにはプロセッサやIO装置にロックをかけ、システム内に仕掛かり中のトランザクションがない状態にしてテーブル書き換え指示トランザクションを発行する必要がある。
なお、プロセッサ#00、#01、#10、#11と、IO装置#00、#01、#10、#11と、チップセット#000、#100、#010、#110との間のインタフェースは、同一のプロトコルのインタフェースで接続されている。従って、プロセッサやIO装置の数を増やすことは可能である。
また、図4の構成では、IO装置をプロセッサに接続しているが、チップセットにインタフェースポートを設け、このインタフェースポートにIO装置を接続することも可能である。メモリ#00、#01、#10、#11はプロセッサ#00、#01、#10、#11に接続されていて、プロセッサ、IO装置やチップセット内にあるルーティングテーブルによってどのメモリにアクセスするか決定され、途中の経路も決定される。
(デグレードの処理)
次に、図2,図7乃至13を参照して、上述した構成の分散共有メモリ型マルチプロセッサシステムにおいて、プレーンを動的にデグレードする処理について説明する。
理解を容易にするため、プレーン#1をデグレードするときの動作を説明する。
プレーンを動的にデグレードする処理は、図2に示すように、各チップセットのディレクトリキャッシュ1000の一部のレベルの内容を掃き出す処理(ステップS11)、デグレード対象プレーンにルーティングされていたトランザクションを運用(継続)プレーンにルーティングする処理(ステップS12)、デグレード対象プレーン上のデグレードしなかったディレクトリキャッシュレベルの内容を運用継続プレーン上のディレクトリキャッシュにコピーする処理(ステップS13)、から構成される。
ます、ステップS11の掃出処理について説明する。
この掃出処理は、デグレードする対象のプレーンのディレクトリキャッシュの内容を、本来の記憶場所(メモリ、IO装置内のレジスタ、プロセッサ内のレジスタ等)に掃き出して(書き戻して)、これらのメモリ・レジスタの内容を最新の状態に更新する共にディレクトリキャッシュ1000の内容を無効にする処理である。ただし、デグレードする対象のプレーンのディレクトリキャッシュ全体を掃き出すのではなく、一部のレベルの内容のみを掃き出す。
ここでは、効率的にプレーンをデグレードするため、各チップセット#000,#100,#010,#110内のディレクトリキャッシュ1000のレベルを1つ残して、残りの3つのレベルを掃き出す方法を説明する。
制御部11にオペレータの指示等により、プレーンデグレードが指示があると、制御部11は、各セル#0及び#1のデグレード対象の各プレーン(#0,#1)のチップセット#000,#100、#010、#110のディレクトリ掃き出しレベルバリッド部100に、掃き出したいレベルのバリッドをセットする(ステップS111)。
ここではチップセット#000〜#110内のディレクトリキャッシュ1000の、1つのレベルだけ残して他の3つのレベルに格納されている情報を掃き出させるものとする。一例として、制御部11は、図10に模式的に示すように、ディレクトリレベルDIR#001、DIR#002、DIR#003、DIR#101、DIR#102、DIR#103、DIR#011、DIR#012、DIR#013、DIR#111、DIR#112、DIR#113を指定する。即ち、制御部11は、チップセット#000のディレクトリ掃き出しレベルバリッド部100に、ディレクトリレベル#001、#002、#003をバリッドとして指定し、チップセット#100のディレクトリ掃き出しレベルバリッド部100に、DIR#101、DIR#102、DIR#103をバリッドとして指定し、チップセット#010のディレクトリ掃き出しレベルバリッド部100に、ディレクトリレベルDIR#011、DIR#012、DIR#013をバリッドとして指定し、チップセット#000のディレクトリ掃き出しレベルバリッド部100に、ディレクトリレベルDIR#111、DIR#112、DIR#113をバリッドとして指定する。
続いて、ディレクトリキャッシュ1000のうち、デグレードが指定されたレベルへの登録を禁止する(ステップS112)。上述の例では、ディレクトリレベルDIR#001、DIR#002、DIR#003、DIR#101、DIR#102、DIR#103、DIR#011、DIR#012、DIR#013、DIR#111、DIR#112、DIR#113への登録が禁止される。ただし、ディレクトリレベルDIR#000、DIR#100、DIR#010、DIR#110への登録は可能であり、トランザクションの処理は順次継続される。
制御部11は、ディレクトリ掃き出しレベルバリッド部100へのディレクトリレベルの指定に連動して、ディレクトリ掃き出し制御部200に、索引アドレスのスキャンを指示する。この指示に応答して、ディレクトリ掃き出し制御部200は、バリッドをセットされたディレクトリレベルに対して、索引アドレスを最下位アドレス(0)に設定し(ステップS113)、アドレス0の各エントリ内の情報を読み出す(ステップS114)。
前述のように、ディレクトリキャッシュ1000はセットアソシアティブの構成で、索引アドレスは通常のメモリアクセスに使うトランザクションが持ち回るアドレスの下位アドレスに相当する。ディレクトリキャッシュ1000の各エントリにはトランザクションが持ち回るアドレスの上位アドレスが格納されており、この上位アドレスとディレクトリ索引アドレス(0〜N)と結合することでメモリアドレス(上位アドレス:0〜上位アドレス:N)を得る。また、各エントリには対応するメモリアドレスの最新データをキャッシングしているプロセッサやIO装置がステータスとして管理されており、ディレクトリキャッシュ1000は、これらの情報をコヒーレンシ制御部500に供給する。
コヒーレンシ制御機能部500は、最新データを所有しているコンポーネント(即ち、ディレクトリキャッシュ100から読み出されたステータスが示すコンポーネント)に、メモリアドレスを指定して、キャッシュからメモリに最新データを掃き出させるトランザクションを発行する(ステップS115)。
各コンポーネントは、トランザクションを実行し、指定されたアドレス位置のキャッシュからメモリに最新データを掃き出す。例えば、上位アドレスが「111」,下位アドレスが「000」とし、ステータスがIO装置#11を示しているとすれば、IO装置#11が有するキャッシュメモリのメモリアドレス「111000」の位置のデータをメモリに出力させる。
ステップS112で、レベルデグレードのためにアクセスされた各レベルには、データが登録出来ないように制御されている。このため、各コンポーネントは、ディレクトリキャッシュに登録する必要がある場合は、デグレードしない1つのレベル(ここではディレクトリレベルDIR#000、DIR#100、DIR#010、DIR#110)の何れかに登録する。
続いて、索引アドレスが最終アドレス(N)に達しているか否かを判別し(ステップS116)、最終アドレスに達していれなければ(ステップS116;No)、索引アドレスを更新(+1)して(ステップS117)、ステップS114に戻り、次のエントリについて同様の処理を実行する。
索引アドレスの更新が進み、ディレクトリキャッシュ1000のデグレード対象のあるレベルの全エントリが掃き出されると(ステップS116;Yes)、全てのデグレード対象レベルの処理が終了したか否かを判別し(ステップS118)、終了していない即ち他のレベルが残っている場合(ステップS118;No)、掃き出し対象のレベルを更新し(ステップS118)、ステップS113にリターンし、同様の処理を実行する。
掃き出し対象の全てのレベルの全てのエントリの情報が読み出されて掃き出しが終了し(ステップS118;Yes)、対応するトランザクションが実行されると、デグレード対象のレベルに有効データが無くなり、1つの有効なレベルを残しデグレードが可能となる。
次に、第2段階(ステップS12)の、デグレード対象プレーン(プレーン#1)にルーティングされていたトランザクションを運用継続プレーン(プレーン#0)にルーティングする方法を図8を参照して説明する。
制御部11は、複数あるチップセットのうち、ロックトランザクションを発行するものを所定のセル(マスターセルと呼ぶ)の所定のチップセットに設定している。ここでは、セル#0のチップセット#000とする。
制御部11は、このマスターセル(セル#0)のチップセット#000のロックトランザクション発行機能部300に、ロックトランザクションを全セルのプロセッサ#00〜#11とIO装置#00〜#11に対して発行させる(ステップS121)。
なお、制御部11自身が、全セルのプロセッサとIO装置にロックトランザクションを発行してもよい。
全てのプロセッサとIO装置はロックトランザクションに応答し、新たなトランザクションの発行を停止する。一方、チップセット#000〜#110は、動作を継続し、供給されたトランザクションを順次処理する。
制御部11は、チップセット#000〜#110のトランザクション入力バッファメモリを周期的にチェックする等して、システム内の仕掛かり中トランザクションの有無を判別する(ステップS122)。制御部11は、システム内に仕掛かり中のトランザクションが無くなったと判別すると(ステップS122;Yes)、プロセッサ、IO装置、及びチップセットが持つルーティングテーブルをプレーン#0にルーティングするように書き換えるため、マスターセルのルーティングテーブル書き換え機能部400にルーティングテーブル書き換えトランザクションの発行を指示する。この指示に応答して、マスターセル(セル#0)のチップセット#000のルーティングテーブル書き換え機能部400に、ルーティングテーブル書き換えトランザクションの発行を指示する。
この指示に応答して、マスターセルのルーティングテーブル書き換え機能部400はルーティングテーブル書き換えトランザクションを各プロセッサ、IO装置、及びチップセットに発行する(ステップS123)。各プロセッサ、各IO装置,及びチップセットのルーティングテーブル書き換え機能部400は、受信したルーティングテーブル書き換えトランザクションを実行し、各ルーティングテーブルを、例えば、チップセット#010→プロセッサ#11→プロセッサ#10→チップセット#010とルートに書き換え、受信したトランザクションをプレーン#0のチップセットに導くように設定する。これにより、図11に模式的に示すように、デグレード対象のプレーン#1のチップセット#100、#110へのトランザクションのパスルートが停止(×)され、一方、運用維持プレーン#1のチップセット#000と#010へのパスルートは維持される。
続いて、制御部11は、マスターセルのロックトランザクション発行機能部300に、ロック状態を解除するアンロックトランザクションを各プロセッサとIO装置に発行させる(ステップS124)。各プロセッサとIO装置はアンロックトランザクションを受け取ると、停止していた通常トランザクションを発行する。
続いて、制御部11は、a)各セルのデグレード対象ではないプレーン#0上のチップセット#000、#010にアドレスインタリーブの解除を指示して、これまでプレーン#1にルーティングしていたトランザクションを受け付け、b)、それまでプレーン#1にルーティングされていたトランザクションがプレーン#0上のチップセットのディレクトリキャッシュレベル#003と#013を使用し、c)それまでプレーン#0にルーティングされていたトランザクションはプレーン#0上のチップセットのディレクトリレベル#000、#001または#010、#011を使用するように制御する(ステップS125)。
なお、プレーン#1上のデグレードしなかった1つのディレクトリキャッシュレベルDIR#100、DIR#110の内容はプレーン#0にまだコピーされていない。このため、ロックが解除されて新たなトランザクションが発行され、元々プレーン#1にルーティングされていたトランザクションがプレーン#0にルーティングされてもコヒーレンシを保つことができない。このため、チップセット#000と#010は、それぞれ、コピーが完了したエントリのアドレスを把握し、プロセッサやIO装置が発行したトランザクションについて、該トランザクションがコピー前のアドレスにアクセスするか否かを判別し、アクセスすると判別した場合には、全プロセッサと全IO装置に対してスヌープトランザクションを発行するよう制御する。
スヌープトランザクションとは通常はディレクトリキャッシュを索引して最新データの所在を確認しそのコンポーネントのキャッシュに対して最新データを取りに行くトランザクションである。ただし、このケースではディレクトリキャッシュがまだコピーされていないため全てのプロセッサやIO装置のキャッシュに対して最新データを持っているかの確認を行うトランザクションである。確認してどのプロセッサやIO装置も最新データを持っていなかった場合はメモリが最新データとなる。
続いて手順3(ステップS13)のコピー処理を図9を参照して説明する。
デグレード対象プレーン#1上のデグレードしなかったディレクトリキャッシュレベルDIR#100,#110の内容をもう一つの運用継続プレーン#0上のディレクトリキャッシュ1000にコピーする(ステップS13)。このコピーの手順を、図12を参照して説明する。ここでは、前述のように、デグレード対象プレーン#1から運用継続プレーン#0にコピーすることになる。
まず、制御部11は、ディレクトリ掃き出し制御部200にプレーン#1上のチップセット#100,#110内にまだデグレードせずに残っているディレクトリキャッシュレベル(ディレクトリレベルDIR#100とDIR#110)を指定し、そのうちの1つを処理対象として特定すると共にその全エントリの索引を指示する(ステップS131)。
この指示に応答して、ディレクトリ掃き出し制御部200は、特定されたディレクトリレベルの下位アドレス「0」を出力して索引し、アドレス「0」のエントリに格納されている情報(エントリ情報)を読み出し、コヒーレンシ制御機能部500に供給する(ステップS132)。
さらに、制御部11は、コヒーレンシ制御機能部500に、ディレクトリキャッシュ1000から読み出されたエントリ情報を、運用継続プレーン#0にプロセッサ経路で送信することを指示する。
指示に応答して、コヒーレンシ制御機能部500は、ディレクトリキャッシュ1000から読み出されたエントリ情報を、プレーン間ディレクトリコピー制御トランザクションとして運用継続プレーン#0に対してプロセッサを経由した経路で発行する(ステップS133)。
具体的に説明すると、図12に模式的に示すように、チップセット#100は、ディレクトリキャッシュレベル#100から読み出されたエントリ情報を、プレーン間ディレクトリコピー制御トランザクションとして、ルート情報を付してプロセッサ#01に提供する。プロセッサ#01は、ルート情報に従って、このトランザクションをプロセッサ#00に供給し、さらに、プロセッサ#00は、これをプレーン0のチップセット#000に供給する。同様に、チップセット#110は、ディレクトリキャッシュレベル#110から読み出されたエントリ情報を、プロセッサ#11を介して、プロセッサ#10に供給し、さらに、プロセッサ#10は、これをチップセット#010に供給する。
プレーン0のチップセット#000,#010は、プレーン#0にルーティングされたディレクトリコピートランザクションのデータを、チップセット#000,#010内の任意のディレクトリキャッシュレベルにライトする。例えば、チップセット#000は、プロセッサ#00を介して供給されたディレクトリコピートランザクションのデータを何れかのディレクトリレベルに書き込む。前述のように、プレーン#1から転送されたトランザクション用にディレクトリレベルDIR#002とDIR#003、及びDIR#012とDIR#013とが設定されている。このため、例えば、これら2つのディレクトリキャッシュレベルのうちの1つ、例えば、DIR#002とDIR#012にライトする。
可動継続プレーン#0のディレクトリキャッシュ1000のコピーが完了したエントリはアクセス可能となる。このため、通常トランザクションのアクセスを許可する(ステップS134)。即ち、そのエントリへのアクセスがあった際に、スヌープトランザクションを発行する対象から除外する。
デグレード対象(コピー元)プレーン#1のディレクトリキャッシュ1000のレベルDIR#100とDIR#110ではデグレードプレーンの復旧に備えてコピー完了エントリの情報無効化のため無効データ(無効フラグ)を書き込む(ステップS135)。
続いて、索引アドレスが最終アドレス(N)に達しているか否かを判別し(ステップS136)、最終アドレスに達していれなければ(ステップS136;No)、索引アドレスを更新(+1)して、ステップS134に戻り、次のエントリについて同様の処理を実行する。
索引アドレスの更新が進み、特定されたレベルの全エントリのコピーが終了すると(ステップS136;Yes)、コピー処理が終了したか否かを判別し(ステップS138)、終了していない(コピー対象の他のレベルが残っている)場合(ステップS138;No)、掃き出し対象(コピー対象)のレベルを更新し(ステップS139)、ステップS132にリターンし、同様の処理を実行する。
以上で、プレーン#1のデグレードが完了する。以後、図13に模式的に示すように、プレーン#0のみで運用される。
以上説明したように、本実施の形態のキャッシュレベルのデグレード方式では、ディレクトリキャッシュのコピー中に運用系処理を止める必要がない。このため処理時間に制限されない。これによりディレクトリ容量が大きくなってもOS(オペレーティングシステム)などのソフトウエアに依存せず、かつ複雑な制御回路を作り込む必要なく動的にプレーンデグレードを行うことができる。
また、キャッシュメモリをロックする回数が1回だけで済むため、ロックによる性能低下も最小限に抑えることができる。
(第4の実施形態)
次に、第2の実施の形態をより具体化した第4の実施の形態に係るデグレードプレーンを動的に復旧する方法を説明する。
なお、システムの構成は、図4〜図6を参照して説明した第3実施形態と同一である。
ここでは、理解を容易にするため、デグレードしたプレーン#1を復旧するときの動作を説明する。
前提として、片プレーンで運用しているチップセット#000内のディレクトリキャッシュ1000の各レベルは、ディレクトリキャッシュレベルDIR#000とDIR#001は旧プレーン#0のトランザクションに割り付けられていて、ディレクトリキャッシュレベルDIR#002とDIR003#はデグレードされた旧プレーン#1のトランザクションに割り付けられているものとする。同様に、チップセット#010のディレクトリキャッシュ1000の各レベルは、ディレクトリキャッシュレベルDIR#010とDIR#011は旧プレーン#0のトランザクションに割り付けられていて、ディレクトリキャッシュレベルDIR#012とDIR#013#はデグレードされた旧プレーン#1のトランザクションに割り付けられているものとする。
復旧の手順は大まかには、図3に示すように、旧プレーン#1トランザクションに割り付けられている2つのディレクトリキャッシュレベルDIR#002とDIR#003、#012とDIR#013、の内1つを掃き出す手順(手順11:ステップS51)、
次に、全ての通常動作トランザクションがプレーン#0にルーティングされている状態からこれから復旧するプレーン#1にルーティングを戻す手順(手順12:ステップS52)、
続いて、運用系プレーン上の、ステップS51で掃き出しの対象としなかったディレクトリキャッシュレベルの内容を、復旧プレーン上のディレクトリキャッシュにコピーする手順(手順13:ステップS53)と、から構成される。
次に、手順11の、旧プレーン#1のトランザクションに割り付けられている2つのディレクトリキャッシュレベルの内1つを掃き出す方法を図14を参照して説明する。
まず、制御部11は、ディレクトリ掃き出しレベルバリッド部100に掃き出したいレベルのバリッドをセットする(ステップS511)。ここでは、図17に模式的に示すように、現在運用しているプレーン#0上のチップセット#000と#010のディレクトリキャッシュレベルDIR#003とDIR#013とを掃き出しの対象とする。
これに連動して、ディレクトリ掃き出し制御部200は、バリッドをセットされたディレクトリレベルに対して索引アドレスを最下位アドレス(0)に設定し(ステップS512)、掃き出し対象のレベルDIR#003とDIR#013の索引アドレスで指定されるエントリ内の情報を読み出す(ステップS513)。
コヒーレンシ制御機能部500は、ステップS513で情報を読み出した各エントリのデータに基づいて、最新データを所有しているコンポーネントに対して、キャッシュからメモリに最新データを掃き出させるトランザクションを発行する。これにより、最新のデータがメモリに記録される。
このとき通常トランザクションは運用されている状態のままである。ただし、ディレクトリキャッシュレベルのデグレードのためにアクセスされたエントリには登録出来ないように、エントリ単位でライトディスエイブル状態に制御し(ステップS514)、ディレクトリキャッシュ1000に登録する必要がある場合は復旧対象プレーンに対応するデグレードしない1つのレベルに登録させる。ここではディレクトリキャッシュレベル#003、#013を登録対象に設定する。
また、アクセスされたエントリに、無効データを書き込む(ステップS515)。次に、索引アドレスが終了したか否かを判別し(ステップS516)、終了していなければ(ステップS516;No)、索引アドレスを更新し(ステップS517)、ステップS513にリターンして、次のエントリについて同様の処理を行う。
一方、ステップS516で、索引アドレスが終了している(最大値)であると判別された場合(ステップS516;Yes)、1レベルについての処理が終了したので、掃き出し処理が終了したか否かを判別する(ステップS518)。未処理のレベルが残っていれば、ステップS518でNoと判別され、掃き出し対象のレベルを更新して(ステップS519)、ステップS512に戻り、同様の処理を行う。本例の場合、掃き出し対象のレベルが、チップセット#000と#010でそれぞれ1個だけなので、1つのレベルについて処理が終了すると、ステップS519でYesと判別され、処理は終了する。
このようにして、デグレード対象レベルの全エントリが掃き出されたところで、有効データがなくなり復旧対象プレーンに対応するディレクトリキャッシュの1つの有効レベルを残しデグレードすることが可能となる。
次に、手順12の、全ての通常動作トランザクションがプレーン#0にルーティングされている状態から、復旧するプレーン#1にルーティングを戻す方法を図15を参照して説明する。
制御部11は、マスターセル(セル#0)に指示し、このセルのチップセット(#000)のロックトランザクション発行機能部300にロックトランザクションを全セルのプロセッサとIO装置に対して発行することを指示する。この指示に応答して、ロックトランザクション発行機能部300は、全てのプロセッサとIO装置にロックトランザクションを発行する(ステップS521)。全てのプロセッサとIO装置とは、ロックトランザクションを受け取るとトランザクションの発行を停止する。
制御部11は、システム内の仕掛かり中トランザクションの有無を判別し(ステップS522)、トランザクションの処理が終了したことを確認すると(ステップS522;Yes)、プロセッサとIO装置とチップセットが持つルーティングテーブル600,700をアドレスインタリーブに従い、プレーン#1にルーティングするように書き換えるため、マスターセルのルーティングテーブル書き換え機能部400に、ルーティングテーブル書き換えトランザクションを発行する(ステップS523)。これにより、各ルーティングテーブルには、アドレスにより、プレーン#1用のトランザクションをプレーン#1に転送するルートが設定される。
続いて、マスターセルのロックトランザクション発行機能部300は、ロック状態を解除するアンロックトランザクションを発行する(ステップS524)。各プロセッサとIO装置はアンロックトランザクションを受け取ると、停止していた通常トランザクションを新しいルーティングテーブルに従い発行する。
これにより、図18に模式的に示すように、これまでアドレスインタリーブなしでプレーン#0にルーティングしていたトランザクションを、アドレスインタリーブに従い、プレーン#1のチップセット#100,#110でも受け付けるようになる。
続いて、制御部11は、復旧されたプレーンにルーティングされるトランザクションが、そのプレーン上のチップセットの特定のディレクトリレベルを使用するよう制御する(ステップS524)。これは、後述するコピー処理用に空きのレベルを確保するためである。本例の場合、制御部11は、図18に模式的に示すように、新しくプレーン#1にルーティングされるトランザクションはプレーン#1上のチップセット#100と#110のディレクトリレベル#101、#102、#103またはディレクトリレベル#111、#112、#113を使用するよう制御する。ディレクトリレベル#100、#110については、空き状態を維持する。
なお、この段階では、プレーン#0上のデグレードしなかったプレーン#1対応の1つのディレクトリキャッシュレベルDIR#002とDIR#012の内容はプレーン#1上のディレクトリキャッシュにまだコピーされていない。このため、そのままでは、復旧前にプレーン#0にルーティングされていたトランザクションがプレーン#1にルーティングされてもコヒーレンシを保つことができない。そこで、プレーン#1のチップセット#100と#110は、プロセッサやIO装置からの各トランザクションが、コピー前のアドレスにアクセスするか否かを判別し、アクセスすると判別した場合には、全プロセッサとIO装置に対してスヌープトランザクションを発行するよう制御する。
続いて、手順13の、運用系プレーン上のデグレードしなかったディレクトリキャッシュレベル内容を復旧プレーン上のディレクトリキャッシュにコピーする方法を図16を参照して説明する。
この手順では、まず、制御部11は、プレーン#0のディレクトリキャッシュに掃き出されずに残っているレベルを指定する(ステップS531)。ここでは、プレーン#0上のチップセット#000と#010のディレクトリキャッシュレベルDIR#002とDIR#012を指定する。
続いて、索引アドレスを最小値(0)に設定し(ステップS532)、レベルDIR#002とDIR#012の索引アドレスで指定されるエントリ内の情報を読み出す(ステップS533)。
コヒーレンシ制御機能部500は、読み出されたエントリ情報を、プレーン間ディレクトリコピー制御トランザクションとして、復旧対象のプレーン#1に対してプロセッサを経由した経路で順次発行する。復旧対象プレーンにルーティングされたディレクトリコピートランザクションのデータは、対応するチップセット内のディレクトリキャッシュレベルに書き込まれる。
具体的に説明すると、図19に模式的に示すように、セル#0のチップセット#000のコヒーレンシ制御機能部500は、ディレクトリレベル#002の該当エントリから読み出した情報をディレクトリコピートランザクションとして、プロセッサ#00を介してプロセッサ#01に送る。プロセッサ#01は、プレーン#1にルーティングされたディレクトリコピートランザクションのデータを、チップセット#100内のディレクトリキャッシュレベルDIR#100にライトする。同様に、ディレクトリレベルDIR#012から読み出された情報は、プロセッサ#10と#11を介して、チップセット#110内のディレクトリレベルDIR#110にライトされる。
コピーが完了したエントリはアクセス可能となる。このため、各チップセット#000,#100,#010,#110は、コピーが完了したエントリへの通常トランザクションのアクセスを許可する(ステップS534)。
また、コピー元のディレクトリキャッシュでは、コピー完了後に自プレーン(#0)に対応するトランザクションに使用させるため、コピー完了エントリの情報無効化のため無効データを書き込む(フラグFを無効を示す値とする)(ステップS535)。
次に、索引アドレスが終了したか否かを判別し(ステップS536)、終了していなければ(ステップS536;No)、索引アドレスを更新し(ステップS537)、ステップS533にリターンして、次のエントリについて同様の処理を行う。
一方、ステップS536で、索引アドレスが終了している(最大値=N)であると判別された場合(ステップS536;Yes)、1個のディレクトリレベルについての処理が終了したので、コピー処理が終了したか否かを判別する(ステップS538)。未処理のディレクトリレベルが残っていれば、ステップS538でNoと判別され、コピー対象のレベルを更新して(ステップS539)、ステップS532に戻り、同様の処理を行う。本例の場合、コピー対象のディレクトリレベルが、チップセット#000と#010でそれぞれレベルDIR#002とDIR#012の1個ずつなので、1つのレベルについて処理が終了すると、ステップS539でYesと判別され、処理は終了する。
対象レベルの全てのエントリを索引してコピーが終了すると、プレーン#1の復旧が完了する。一方、プレーン#0ではディレクトリキャッシュ#002、#003、#012、#013を自プレーンに対応するトランザクションに使用を許可する。以後、図20に模式的に示すように、プレーン#0とプレーン#1で運用される。
以上説明したように、この第2の実施の形態のプレーン復旧方法によれば、ディレクトリキャッシュのコピー中にシステムを停止する必要がない。このため処理時間に制限されない。これによりディレクトリ容量が大きくなってもOS(オペレーティングシステム)などのソフトウエアに依存せず、かつ複雑な制御回路を作り込む必要なく動的にプレーンデグレードを行うことができる。
また、キャッシュメモリをロックする回数が1回で済むため、ロックによる性能低下も最小限に抑えることができる。
なお、この発明は、上記実施の形態に限定されず、種々の変形及び応用が可能である。
例えば、上記実施の形態では、ディレクトリキャッシュのレベル数を4としたが、ディレクトリキャッシュのレベル数は任意であり、例えば、8,16等でもよい。
また、プレーンをデグレードする際に、掃き出しの対象とするディレクトリキャッシュのレベル数とコピーの対象とするレベル数も任意である。ただし、レベル数をnとすれば、掃き出しの対象レベルをn−1個とし、コピーの対象を1個とすることが望ましい。
また、プレーンをデグレードする際に、全てのチップセットについて、3つのディレクトリレベルを掃き出しの対象としたが、デグレードする対象のプレーン#1のチップセットのディレクトリレベルのみ掃き出しの対象としてもよい。
また、プレーン数を2としたが、プレーン数は2に限定されず、3以上でもよい。
また、本発明は、アドレスインタリーブによる2プレーン構成ではなくプロセッサ固定割り付けの2プレーン構成の装置にも適用可能である。
本発明の第1及び第2の実施の形態に係る分散共有メモリ型マルチプロセッサシステムの構成を示すブロック図である。 第1と第3の実施の形態において、プレーンデグレード処理全体の手順を説明するためのフローチャートである。 第1と第3の実施の形態において、デグレードしたプレーンを復旧する処理全体の手順を説明するためのフローチャートである。 本発明の実施形態に係る分散共有メモリ型マルチプロセッサシステムの構成を示すブロック図である。 チップセットの構成例を示すブロック図である。 ディレクトリキャッシュの構成例を示す図である。 図2に示す掃出処理の詳細を説明するためのフローチャートである。 図2に示すルーティング変更処理の詳細を説明するためのフローチャートである。 図2に示すコピー処理の詳細を説明するためのフローチャートである。 掃き出し処理を説明するための概念図である。 ルーティング変更処理を説明するための概念図である。 コピー処理を説明するための概念図である。 プレーン#1のデグレードが完了した状態を説明するための概念図である。 図3に示す掃出処理の詳細を説明するためのフローチャートである。 図3に示すルーティング変更処理の詳細を説明するためのフローチャートである。 図3に示すコピー処理の詳細を説明するためのフローチャートである。 掃き出し処理を説明するための概念図である。 ルーティング変更処理を説明するための概念図である。 コピー処理を説明するための概念図である。 プレーン#1を復旧した2プレーン状態を説明するための図である。
符号の説明
1 分散共有メモリ型マルチプロセッサシステム
100 ディレクトリレベル掃き出しレベルバリッド部
200 ディレクトリ掃き出し制御部
300 ロックトランザクション発行機能部
400 ルーティングテーブル書き換え機能部
500 コヒーレンシ制御機能部
600,700 ルーティングテーブル
1000 ディレクトリキャッシュ

Claims (33)

  1. それぞれがプロセッサを備えデータを処理実行する単位構成であるセルを複数備え、セルとセルとを接続する複数のプレーンを有し、各プレーンが複数のディレクトリレベルを有するディレクトリキャッシュを有する分散共有メモリ型マルチプロセッサシステムであって、
    第1のプレーンをデグレードする指示に応答して、前記第1のプレーンのディレクトリキャッシュの複数のレベルのうちの一部のレベルの記憶情報を掃き出す掃出手段と、
    前記掃出手段による記憶情報の掃き出し後、前記第1のプレーンへのトランザクションのパスルートを前記第1のプレーンとは異なる第2のプレーンに変更するパスルート制御手段と、
    前記パスルート制御手段によるパスルートの変更後、前記第1のプレーンのディレクトリキャッシュの複数のレベルのうちの前記一部のレベル以外の他のレベルの記憶情報を前記第2のプレーンのディレクトリキャッシュに転送する転送手段と、
    を備える、ことを特徴とする分散共有メモリ型マルチプロセッサシステム。
  2. 前記掃き出し手段は、前記第1のプレーンのディレクトリキャッシュの複数のレベルの少なくとも前記一部のレベルへのアクセスを受け付けた状態で、前記他のレベルの記憶情報を掃き出す、
    ことを特徴とする請求項1に記載の分散共有メモリ型マルチプロセッサシステム。
  3. 前記掃き出し手段は、前記第1のプレーンのディレクトリキャッシュの前記一部のレベルに関し、掃き出しが終了したエントリへのアクセスを禁止する、
    ことを特徴とする請求項1又は2に記載の分散共有メモリ型マルチプロセッサシステム。
  4. 前記第1のプレーンのディレクトリキャッシュはn(nは2以上の自然数)個のレベルを有し、
    前記掃出手段は、(n−1)個のレベルの情報を掃き出す、
    ことを特徴とする請求項1、2又は3に記載の分散共有メモリ型マルチプロセッサシステム。
  5. 前記掃出手段は、
    前記第1のプレーンのディレクトリキャッシュの前記一部のレベルのアドレスを更新しつつ索引し、前記一部のレベルの各エントリから読み出した情報で特定されるキャッシュメモリが格納する最新情報をメモリに掃き出させるトランザクションを発行するトランザクション発行手段を備える、
    ことを特徴とする請求項1乃至4の何れか1項に記載の分散共有メモリ型マルチプロセッサシステム。
  6. 前記掃出手段は、記憶情報の掃き出しが終了したエントリに、無効データを書き込む、ことを特徴とする請求項1乃至5の何れか1項に記載の分散共有メモリ型マルチプロセッサシステム。
  7. 前記パスルート制御手段は、トランザクションを発行する装置にロックをかけた状態で、デグレード対象の第1のプレーンへのトランザクションのパスルートを運用系の第2のプレーンに変更する、
    ことを特徴とする請求項1乃至6の何れか1項に記載の分散共有メモリ型マルチプロセッサシステム。
  8. パスルートを特定するためのデータを格納するルーティングテーブルを備え、
    前記パスルート制御手段は、ルーティングテーブルに格納されているデータを変更することにより、デグレード対象の第1のプレーンへのトランザクションのパスルートを運用系の第2のプレーンへのパスルートに変更する、
    ことを特徴とする請求項1乃至7の何れか1項に記載の分散共有メモリ型マルチプロセッサシステム。
  9. 前記パスルート制御手段は、デグレードしない運用系の第2のプレーンに、デグレードする第1のプレーンのトランザクションを受け付けさせる、
    ことを特徴とする請求項1乃至8の何れか1項に記載の分散共有メモリ型マルチプロセッサシステム。
  10. 前記パスルート制御手段は、
    デグレードする第1のプレーンのトランザクションに、運用系の第2のプレーンのディレクトリキャッシュの特定のレベルを使用させ、
    運用系の第2のプレーンにルーティングされていたトランザクションに、運用系の第2のディレクトリレベルの前記特定のレベル以外のレベルを使用させる、
    ことを特徴とする請求項1乃至9の何れか1項に記載の分散共有メモリ型マルチプロセッサシステム。
  11. 前記転送手段は、
    転送の進行状況を管理する進行状況管理手段と、
    転送が終了していないエントリへのアクセスを伴うトランザクションが発生する場合に、スヌープトランザクションを発行する手段と、
    を備える、ことを特徴とする請求項1乃至10の何れか1項に記載の分散共有メモリ型マルチプロセッサシステム。
  12. 前記転送手段は、記憶情報の転送が終了したエントリへのアクセスを許可する、
    ことを特徴とする請求項1乃至11の何れか1項に記載の分散共有メモリ型マルチプロセッサシステム。
  13. 前記転送手段は、記憶情報の転送が終了したエントリに、無効データを書き込む、ことを特徴とする請求項1乃至12の何れか1項に記載の分散共有メモリ型マルチプロセッサシステム。
  14. 複数のディレクトリレベルを有するディレクトリキャッシュと、
    デグレード指示に応答して、ディレクトリキャッシュの複数のレベルの一部のレベルの記憶情報を読み出し、読み出した記憶情報により特定されるキャッシュメモリの内容をメモリに出力させるトランザクションを発行する掃出手段と、
    前記掃出手段による情報の掃き出し後、前記第1のプレーンへのトランザクションのパスルートを前記第1のプレーンとは異なる第2のプレーンに変更するパスルート制御手段と、
    前記パスルート制御手段によるパスルートの変更後、ディレクトリキャッシュの残りのレベルの記憶情報を前記第2のプレーンのディレクトリキャッシュに転送する転送手段と、
    を備える、ことを特徴とする分散共有メモリ型マルチプロセッサシステム用のチップセット。
  15. デグレードの指示に応答して、デグレード対象の第1のプレーンのディレクトリキャッシュの複数のレベルのうちの一部のレベルの記憶情報を読み出し、読み出した記憶情報に基づいて、最新のデータをメモリに掃き出す掃き出しステップと、
    データの掃き出し後、第1のプレーンへのトランザクションのパスルートを運用系の第2のプレーンに変更するステップと、
    パスルートの変更後、前記第1のプレーンのディレクトリキャッシュの複数のレベルのうちの前記一部のレベル以外の他のレベルの記憶情報を第2のプレーンのディレクトリキャッシュに転送するステップと、
    を備える、ことを特徴とするプレーンデグレード方法。
  16. 各プレーンが複数のディレクトリレベルを有するディレクトリキャッシュと、プロセッサとを備え、複数のプレーンのプロセッサが相互に接続された構成を有する分散共有メモリ型マルチプロセッサシステムにおいて、
    デグレードされた第1のプレーンを復旧する場合に、運用系の第2のプレーンのディレクトリキャッシュの複数のレベルのうちの一部のレベルに関し、復旧する第1のプレーン用のトランザクションにより登録された情報を掃き出す掃出手段と、
    前記掃出手段による情報の掃き出し後、前記第1のプレーンへのトランザクションのパスルートを復旧するパスルート制御手段と、
    前記パスルート制御手段によるパスルートの復旧後、前記第2のプレーンの複数のディレクトリキャッシュのうちの前記一部のレベル以外の他のレベルに記憶されている情報であって、復旧する第1のプレーンのトランザクションにより登録された情報を第1のプレーンのディレクトリキャッシュに転送する転送手段と、
    を備える、ことを特徴とする分散共有メモリ型マルチプロセッサシステム。
  17. この分散共有メモリ型マルチプロセッサシステムは、
    デグレードされた第1のプレーンのトランザクションによる情報を、前記第2のプレーンのディレクトリキャッシュの複数のレベルのうちの所定数の第1のレベルに登録し、運用系の第2のプレーンのトランザクションによる情報を、前記第2のプレーンの複数のレベルのうちの前記第1のレベルとは異なる複数個の第2のレベルに登録し、
    前記掃出手段は、前記第1のプレーンのディレクトリキャッシュの第1のレベルのうちの一部のレベルに登録されている情報を掃き出す、
    ことを特徴とする請求項16に記載の分散共有メモリ型マルチプロセッサシステム。
  18. 前記掃出手段は、前記第2のプレーンのディレクトリキャッシュの複数のレベルのうちの前記第1のレベルのうち前記一部のレベル以外の他のレベルへのアクセスを受け付けた状態で、前記第1のレベルのうちの前記一部のレベルの記憶情報を掃き出す、
    ことを特徴とする請求項17に記載の分散共有メモリ型マルチプロセッサシステム。
  19. 前記掃出手段は、前記第2のプレーンのディレクトリキャッシュの第1のレベル内の前記一部のレベルに関し、掃き出しが終了したエントリへのアクセスを禁止する、
    ことを特徴とする請求項17又は18に記載の分散共有メモリ型マルチプロセッサシステム。
  20. 前記第2のプレーンの前記ディレクトリキャッシュの前記第1のレベルはnレベルを有し、
    前記掃出手段は、前記第2のプレーンの前記ディレクトリキャッシュの第1のレベルのうちの(n−1)レベルの情報を掃き出す、
    ことを特徴とする請求項17,18又は19に記載の分散共有メモリ型マルチプロセッサシステム。
  21. 前記掃出手段は、前記第2のプレーンのディレクトリキャッシュの第1のレベルのうちの前記一部のレベルをアドレスを更新しつつ索引し、各エントリから読み出した情報で特定されるキャッシュメモリが格納する最新情報をメモリに掃き出させるトランザクションを発行するトランザクション発行手段を備える、
    ことを特徴とする請求項17乃至20の何れか1項に記載の分散共有メモリ型マルチプロセッサシステム。
  22. 前記掃出手段は、前記第2のプレーンのディレクトリキャッシュの前記一部のレベルに関し、記憶情報の掃き出しが終了したエントリに、無効データを書き込む、ことを特徴とする請求項17乃至21の何れか1項に記載の分散共有メモリ型マルチプロセッサシステム。
  23. 前記パスルート制御手段は、トランザクションを発行する装置にロックをかけた状態で、復旧対象の第1のプレーンへのパスルートを復旧する、
    ことを特徴とする請求項17乃至22の何れか1項に記載の分散共有メモリ型マルチプロセッサシステム。
  24. パスルートを特定するためのデータを格納するルーティングテーブルを備え、
    前記パスルート制御手段は、ルーティングテーブルに格納されているデータを変更することにより、前記第1のプレーンへのトランザクションのパスルートを復旧する、
    ことを特徴とする請求項17乃至23の何れか1項に記載の分散共有メモリ型マルチプロセッサシステム。
  25. 前記パスルート制御手段は、前記第1のプレーンへのパスルートの復旧後、第1のプレーンのトランザクションに割り当てられていた第1のレベルにトランザクションを受け付けさせる、
    ことを特徴とする請求項17乃至24の何れか1項に記載の分散共有メモリ型マルチプロセッサシステム。
  26. 前記転送手段は、
    転送の進行状況を管理する進行状況管理手段と、
    転送が終了していないエントリへのアクセスを伴うトランザクションが発生する場合に、スヌープトランザクションを発行する手段と、
    を備える、ことを特徴とする請求項17乃至25の何れか1項に記載の分散共有メモリ型マルチプロセッサシステム。
  27. 前記転送手段は、転送が終了したエントリへのアクセスを許可する、
    ことを特徴とする請求項17乃至26の何れか1項に記載の分散共有メモリ型マルチプロセッサシステム。
  28. 前記転送手段は、記憶情報の転送が終了したエントリに、無効データを書き込む、ことを特徴とする請求項17乃至27の何れか1項に記載の分散共有メモリ型マルチプロセッサシステム。
  29. 複数のディレクトリレベルを有するディレクトリキャッシュと、
    デグレードした第1のプレーンの復旧の指示に応答して、第2のプレーンに配置されているディレクトリキャッシュの複数のレベルのうち、デグレードしたプレーンのトランザクション用のn個のレベルのうちのm個のレベルの記憶情報を読み出し、読み出した記憶情報で特定されるキャッシュメモリの内容をメモリに出力させるトランザクションを発行する掃出手段と、
    復旧が指示された第1のプレーンへのトランザクションのパスルートを復旧するパスルート制御手段と、
    前記パスルート制御手段による第1のプレーンへのパスルートの復旧後、前記第2のプレーンのディレクトリキャッシュの前記n個のレベルのうちのm個以外の(n−m)個のレベルの記憶情報を第1のプレーンのディレクトリキャッシュに転送する転送手段と、
    を備える、ことを特徴とする分散共有メモリ型マルチプロセッサシステム用のチップセット。
  30. 第1のプレーンをデグレードされた状態で第2のプレーンを運用している状態から第1のプレーンを復旧して、第1と第2のプレーンを運用する状態に復帰させるプレーン復旧制御装置において、
    第2のプレーンのディレクトリキャッシュの複数のレベルのうちの一部のレベルの記憶情報であって、復旧対象の第1のプレーンのトランザクションにより生成されたものを読み出し、読み出した記憶情報に基づいて、最新データを所有しているコンポーネントに、キャッシュからメモリに最新データを掃き出させるトランザクションを発行するように指示する手段と、
    前記第1のプレーンへのトランザクションのパスルートを復旧するように指示する手段と、
    第1のプレーンへのパスルートを復旧した後、前記第2のプレーンのディレクトリキャッシュの前記一部のレベル以外の他のレベルの記憶情報のうち復旧対象の第1のプレーンのトランザクションにより生成されたものを前記第1のプレーンのディレクトリキャッシュに転送するように指示する手段と、
    を備える、ことを特徴とする分散共有メモリ型マルチプロセッサシステム用におけるプレーン復旧制御装置。
  31. デグレードされた第1のプレーンを復旧するとの指示に応答して、
    運用中の第2のプレーンのディレクトリキャッシュの複数のレベルのうちの一部のレベルの記憶情報であって、第1のプレーンのトランザクションにより登録されたものを読み出し、読み出した記憶情報に基づいて、最新のデータをメモリに掃き出す掃き出しステップと、
    データの掃き出し後、第1のプレーンへのトランザクションのパスルートを復旧する復旧ステップと、
    パスルートの復旧後、前記第2のプレーンのディレクトリキャッシュの前記一部のレベル以外の他のレベルの記憶情報であって第1のプレーンのトランザクションにより登録されたものを第1のプレーンのディレクトリキャッシュに転送するステップと、
    を備える、ことを特徴とするプレーンデグレード方法。
  32. 請求項1乃至13の何れか1項に記載の前記掃き出し手段とパスルート制御手段と転送手段と、請求項16乃至28の何れか1項に記載の前記掃き出し手段とパスルート制御手段と転送手段とを備え、
    請求項1乃至13の何れか1項に記載の前記掃出手段とパスルート制御手段と転送手段によりデグレードされたプレーンを、請求項16乃至28の何れか1項に記載の前記掃出手段とパスルート制御手段と転送手段とにより復旧する、
    ことを特徴とする分散共有メモリ型マルチプロセッサシステム。
  33. デグレード指示に応答して、デグレード対象のプレーンのディレクトリキャッシュの複数のレベルの一部のレベルの記憶情報を読み出し、読み出した記憶情報に基づいて、最新のデータをメモリに掃き出し、デグレード対象の第1のプレーンへのトランザクションのパスルートを運用系の第2のプレーンへのパスルートに変更し、前記デグレード対象のプレーンのディレクトリキャッシュの残りのレベルの記憶情報を第2のプレーンのディレクトリキャッシュに転送することにより、第1のプレーンをデグレードし、
    第1のプレーンがデグレードした状態で運用中の第2のプレーンのディレクトリキャッシュの複数のレベルのうちの一部のレベルの記憶情報であって、第1のプレーンのトランザクションにより登録されたものを読み出し、読み出した記憶情報に基づいて、最新のデータをメモリに掃き出し、第1のプレーンへのトランザクションのパスルートを復旧し、前記第2のプレーンのディレクトリキャッシュの前記一部のレベル以外の残りのレベルの記憶情報であって第1のプレーンのトランザクションにより登録されたものを第1のプレーンのディレクトリキャッシュに転送することにより、第1のプレーンを復旧する、
    ことを特徴とするプレーンデグレード・復旧方法。
JP2008088288A 2008-03-28 2008-03-28 分散共有メモリ型マルチプロセッサシステム及びプレーンデグレード方法 Expired - Fee Related JP4892746B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2008088288A JP4892746B2 (ja) 2008-03-28 2008-03-28 分散共有メモリ型マルチプロセッサシステム及びプレーンデグレード方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2008088288A JP4892746B2 (ja) 2008-03-28 2008-03-28 分散共有メモリ型マルチプロセッサシステム及びプレーンデグレード方法

Publications (2)

Publication Number Publication Date
JP2009244994A JP2009244994A (ja) 2009-10-22
JP4892746B2 true JP4892746B2 (ja) 2012-03-07

Family

ID=41306836

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2008088288A Expired - Fee Related JP4892746B2 (ja) 2008-03-28 2008-03-28 分散共有メモリ型マルチプロセッサシステム及びプレーンデグレード方法

Country Status (1)

Country Link
JP (1) JP4892746B2 (ja)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5614419B2 (ja) * 2012-02-29 2014-10-29 富士通株式会社 情報処理装置、制御方法および制御プログラム
US20210055878A1 (en) * 2019-08-20 2021-02-25 Micron Technology, Inc. Data compaction within the same plane of a memory component

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008046685A (ja) * 2006-08-10 2008-02-28 Fujitsu Ltd 二重化システム及び系切り換え方法
JP4860403B2 (ja) * 2006-08-25 2012-01-25 エヌイーシーコンピュータテクノ株式会社 マルチプロセッサシステム及びメモリコントロール/コヒーレンシ制御装置並びにコヒーレンシ保証方法
JP2008171058A (ja) * 2007-01-09 2008-07-24 Fujitsu Ltd システムコントローラ、プロセッサ、情報処理システムおよび情報処理プログラム

Also Published As

Publication number Publication date
JP2009244994A (ja) 2009-10-22

Similar Documents

Publication Publication Date Title
US7904665B2 (en) Multiprocessor system and its operational method
KR100491435B1 (ko) 다수의 시스템 버스를 가지는 컴퓨터 시스템 내의 메모리 일관성을 유지하기 위한 시스템 및 방법
JP5116418B2 (ja) マルチプロセッサ・データ処理システムにおいて、データを処理する方法、マルチプロセッサ・データ処理システムのための処理ユニット、およびデータ処理システム
US9208092B2 (en) Coherent attached processor proxy having hybrid directory
US10782917B2 (en) Storage device
US20140250276A1 (en) Selection of post-request action based on combined response and input from the request source
US20140201468A1 (en) Accelerated recovery for snooped addresses in a coherent attached processor proxy
US10579527B2 (en) Remote node broadcast of requests in a multinode data processing system
US10169236B2 (en) Cache coherency
US20120203976A1 (en) Memory coherence directory supporting remotely sourced requests of nodal scope
US20180276133A1 (en) Locking a cache line for write operations on a bus
US20140201460A1 (en) Data recovery for coherent attached processor proxy
US20130339623A1 (en) Cache coherency protocol for allowing parallel data fetches and eviction to the same addressable index
US20060080506A1 (en) Data replication in multiprocessor NUCA systems to reduce horizontal cache thrashing
US11409656B2 (en) Semiconductor device
JP2007533014A (ja) ライトバックキャッシュにおいてスヌーププッシュ処理やスヌープキル処理が同時発生しているときのライトバック処理をキャンセルするためのシステムおよび方法
JP4892746B2 (ja) 分散共有メモリ型マルチプロセッサシステム及びプレーンデグレード方法
US7669013B2 (en) Directory for multi-node coherent bus
JP2003512673A (ja) マルチプロセッサシステムおよびデータアクセス方法
US7725660B2 (en) Directory for multi-node coherent bus
US9983994B2 (en) Arithmetic processing device and method for controlling arithmetic processing device
JPH09128346A (ja) 階層バスシステム
US11157408B2 (en) Cache snooping mode extending coherence protection for certain requests
US10387310B2 (en) Remote node broadcast of requests in a multinode data processing system
JP2008047029A (ja) ストレージシステム及びキャッシュの冗長化方法とコンピュータプログラム

Legal Events

Date Code Title Description
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: 20111122

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: 20111201

R150 Certificate of patent or registration of utility model

Ref document number: 4892746

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

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

Free format text: PAYMENT UNTIL: 20150106

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