JP2017033384A - 情報処理システム、情報処理方法、情報処理プログラムおよび情報処理装置 - Google Patents

情報処理システム、情報処理方法、情報処理プログラムおよび情報処理装置 Download PDF

Info

Publication number
JP2017033384A
JP2017033384A JP2015154137A JP2015154137A JP2017033384A JP 2017033384 A JP2017033384 A JP 2017033384A JP 2015154137 A JP2015154137 A JP 2015154137A JP 2015154137 A JP2015154137 A JP 2015154137A JP 2017033384 A JP2017033384 A JP 2017033384A
Authority
JP
Japan
Prior art keywords
data
arithmetic processing
cpu
command
unit
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
Application number
JP2015154137A
Other languages
English (en)
Other versions
JP6551024B2 (ja
Inventor
仁 ▲高▼橋
仁 ▲高▼橋
Hitoshi Takahashi
誠之 岡田
Masayuki Okada
誠之 岡田
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.)
Fujitsu Ltd
Original Assignee
Fujitsu 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 Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP2015154137A priority Critical patent/JP6551024B2/ja
Priority to US15/221,633 priority patent/US10210094B2/en
Publication of JP2017033384A publication Critical patent/JP2017033384A/ja
Application granted granted Critical
Publication of JP6551024B2 publication Critical patent/JP6551024B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0893Caches characterised by their organisation or structure
    • G06F12/0895Caches characterised by their organisation or structure of parts of caches, e.g. directory or tag array
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0706Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment
    • G06F11/0721Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment within a central processing unit [CPU]
    • G06F11/0724Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment within a central processing unit [CPU] in a multiprocessor or a multi-core unit
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0766Error or fault reporting or storing
    • G06F11/0772Means for error signaling, e.g. using interrupts, exception flags, dedicated error registers
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0806Multiuser, multiprocessor or multiprocessing cache systems
    • G06F12/0815Cache consistency protocols
    • G06F12/0817Cache consistency protocols using directory methods

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Quality & Reliability (AREA)
  • Memory System Of A Hierarchy Structure (AREA)
  • Software Systems (AREA)

Abstract

【課題】共有メモリシステムにおいて、キャッシュコヒーレンシの異常状態から回復する。【解決手段】それぞれのメモリおよびキャッシュを管理する演算処理装置を1または2以上有するノードが複数接続される情報処理システムである。第1の演算処理装置は、第2の演算処理装置が管理するメモリ上のデータにアクセスをしてエラーを検出した場合、該データに対する前記状態管理情報の更新を、第2の演算処理装置に指示し、第2の演算処理装置は、自ノードまたは他ノードの他の演算処理装置に対して、持ち出した該データの破棄を指示するコマンドを発行し、該データを持ち出している演算処理装置は、該データの破棄を指示するコマンドを受け取ると、持ち出したデータを破棄し、破棄の結果を第2の演算処理装置に送信し、第2の演算処理装置は、該データを持ち出している演算処理装置から受け取った破棄の結果に基づいて、該データの状態管理情報を更新する。【選択図】図9

Description

本発明は、情報処理システム、情報処理方法、情報処理プログラムおよび情報処理装置に関する。
複数の演算処理装置が主記憶装置を共有する技術として、Symmetric Multi-Processor
(SMP)が知られている。SMPの技術が適用された情報処理システムは、例えば、演算処理装置と主記憶装置とを有する複数のノードを同一のバスで接続し、バスを介して、各演算処理装置が各主記憶装置を共有する。
情報処理システムは、主記憶装置(以下、メモリともいう)の共有により各ノードの演算処理装置がキャッシュしたデータのコヒーレンシを保持するため、ディレクトリ方式を用いることができる。ディレクトリ方式は、自身の演算処理装置のデータが他のどの演算処理装置にキャッシュされているかを示す情報を自身のメモリ内に保持し、キャッシュされたデータの情報処理システム内におけるコヒーレンシを保持する方式である。コヒーレンシは、複数キャッシュ間での共有リソースの一貫性を意味する。
SMPでは、複数ノード間でメモリを共有するため、一つのノードの故障は他のノードの停止につながる。ノードの故障による影響範囲を抑える手段として、メモリを共有メモリとローカルメモリとに区分し、他のノードの演算処理装置からは、ローカルメモリを参照できないようにする共有メモリシステムが知られている。共有メモリシステムは、共有メモリを、ノード間のデータの通信手段として使用する。
共有メモリシステムにおいて、エラーの検出およびエラー発生時の処理として、以下のような技術が知られている。複数のノードをクロスバスイッチ等のノード間接続装置により接続したシステムにおいて、パケットの通信の滞留が発生した場合、通信経路を変更して処理が継続される。クロスバスイッチは、複数の演算処理装置やメモリの間でデータをやり取りする際に、複数の通信路間の交点にスイッチを設け、これらのスイッチ群を制御することで、経路を選択する装置である。ノードが送信したリクエストは、クロスバスイッチから自身のノードおよび他のノードへ送信される。リクエストを送信したノードは、リクエストを送信してから受信するまでの時間を計測し、タイムアウトを検出することで、パケットの通信の滞留に起因するエラーが検出される。
また、エラーを検出した場合、エラーが発生したキャッシュラインを利用しないために、ディレクトリにエラーマークを設定する技術が知られる。キャッシュラインは、キャッシュに保持するデータの単位である。複数のCentral Processing Unit(CPU)が、デ
ィレクトリ方式によってキャッシュメモリを制御する共有メモリシステムにおいて、あるCPUがエラーで停止した時、タイムアウトやディレクトリのエラーマークにより、エラーが検出される。また、ディレクトリ方式において経路故障によりデータのコヒーレンシが保持されなくなった場合にも、エラーが検出される。
特開2014−197402号公報
しかしながら、ノードの異常や経路故障によってエラーが検出されても、キャッシュされたデータは破棄されず、ディレクトリは正常化されないため、コヒーレンシの異常状態は回復されない。エラーの原因となったデータに再度アクセスされるまでに、キャッシュの破棄とディレクトリの正常化がされなければ、再びエラーが検出される。以上のように、従来の技術では、コヒーレンシが保持されなくなった場合、キャッシュコヒーレンシの異常状態は検出されるが、システムが再起動されなければ異常状態は回復されない。
本発明の一態様は、共有メモリシステムにおいて、キャッシュコヒーレンシの異常状態から回復する技術を提供することを目的とする。
本発明の態様の一つは、それぞれのメモリおよびキャッシュを管理する演算処理装置を1または2以上有するノードが複数接続される情報処理システムによって例示される。演算処理装置は、検出したエラーへの対応を指示するリクエスト生成部と、メモリ上の所定単位のデータごとに管理される状態管理情報を更新するディレクトリ制御部と、状態管理情報に応じて、自身の演算処理装置以外の演算処理装置に対するコマンドを発行するコマンド実行部と、自身の演算処理装置以外の演算処理装置のコマンド実行部から発行されたコマンドを実行するキャッシュ制御部と、をそれぞれ備え、第1の演算処理装置のリクエスト生成部は、第2の演算処理装置が管理するメモリ上のデータにアクセスをしてエラーを検出した場合、該データに対する前記状態管理情報の更新を、第2の演算処理装置のディレクトリ制御部に指示し、第2の演算処理装置のコマンド実行部は、自ノードまたは他ノードの他の演算処理装置に対して、持ち出した該データの破棄を指示するコマンドを発行し、該データを持ち出している演算処理装置のキャッシュ制御部は、該データの破棄を指示するコマンドを受け取ると、持ち出した該データを破棄し、破棄の結果を第2の演算処理装置に送信し、第2の演算処理装置のディレクトリ制御部は、該データを持ち出している演算処理装置から受け取った破棄の結果に基づいて、該データの状態管理情報を更新する。
本発明の一態様によれば、共有メモリシステムにおいて、キャッシュコヒーレンシの異常状態から回復することが可能となる。
共有メモリを有する情報処理システムの構成例を示す図である。 共有メモリを有する情報処理システムの機能構成の例を示す図である。 他のノードのデータが持ち出された例を示す図である。 データを持ち出したCPUを含むノードが故障した例を示す図である。 データが持ち出されたCPUを含むノードが故障した例を示す図である。 ノード間の経路故障の例を示す図である。 複数のCPUにデータが持ち出された例を示す図である。 複数のCPUにデータが持ち出され、データを持ち出したCPUを含むノードの一つが故障した例を示す図である。 ディレクトリの正常化の処理例を示す図である。 リクエスターCPUの回路を例示する図である。 実施形態1におけるHome CPUおよびキャッシュCPUの回路を例示する図である。 アドレス指定レジスタのレジスタフォーマットの例を示す図である。 コマンド指定レジスタのレジスタフォーマットの例を示す図である。 実施形態1におけるステータス表示レジスタのレジスタフォーマットの例を示す図である。 実施形態2におけるHome CPUおよびキャッシュCPUの回路を例示する図である。 実施形態2におけるディレクトリ制御部の動作判定条件の例を示す図である。 実施形態2におけるステータス表示レジスタのレジスタフォーマット例を示す図である。 データを持ち出したCPUを含むノードが故障した場合の動作フローの例を示す図である。 経路故障の場合の動作フローの例を示す図である。 キャッシュの誤り訂正ができないエラーが発生した場合の動作フローの例を示す図である。
以下、図面に基づいて、本発明の実施の形態を説明する。以下の実施形態の構成は例示であり、本発明は実施形態の構成に限定されない。
〔実施形態1〕
実施形態1において、情報処理システムは、エラーが検出された場合に、エラーの原因となったデータを持ち出したCPUのキャッシュから、持ち出されたデータを破棄し、当該データのディレクトリを正常化する。ディレクトリの情報は、メモリから持ち出されるデータの所定単位(以下、キャッシュラインともいう)ごとに管理される情報である。ディレクトリの正常化は、データが持ち出されたCPUのディレクトリにおいて、あるキャッシュラインに対してエラーマークが設定されていた場合、当該キャッシュラインのデータが正常であることを示す値を設定する処理である。
<システム構成>
図1は、共有メモリを有する情報処理システム1の構成例を示す図である。情報処理システム1は、共有メモリシステムである。複数のビルディングブロック4(以下、ノード4ともいう)は、XB(クロスバスイッチ)5により接続される。情報処理システム1は、複数のビルディングブロック4を備える情報処理装置1であってもよい。
ノード4は、1または2以上のCPU 2、および各CPU 2に対応するメモリ3を含む。各CPU 2は、複数のXB chip 41を介して、クロスバスイッチ5に接続される。
CPU 2は、メモリコントローラ21、キャッシュ22、機能レジスタ23および外部Interface(IF)24を含む。メモリコントローラ21は、メモリ3とのデータの受け渡しおよびディレクトリ33の更新等を制御する。
キャッシュ22は、処理に利用するためにメモリから読み出したデータを一時的に保持する。機能レジスタ23は、データのアドレス、ソフトウェアからのコマンド、コマンドの指示による処理結果を記憶する。外部IF 24は、CPU 2の外部とのインタフェースである。
メモリ3は、共有メモリ31、Localメモリ32およびディレクトリ33を含む。共有メモリ31は、同じノード4内の他のCPU 2、または他のノード4のCPU 2との間で、相互に参照可能なメモリ領域である。
Localメモリ32は、同じノード4内の他のCPU 2との間で、相互に参照可能
なメモリ領域である。Localメモリ32は、他のノード4のCPU 2からは参照されない。
ディレクトリ33は、持ち出される所定単位のデータごとに、データの状態、およびデータを持ち出したCPU 2の情報等を記憶する。データへのアクセスによりエラーが検出されると、対応するディレクトリ33にはエラーマークが設定される。ディレクトリ33は、「状態管理情報」の一例である。
なお、情報処理システム1または情報処理装置1の構成は一例であり、上記に限られない。実施の形態に応じて適宜構成要素の省略、置換または追加が可能である。例えば、情報処理システム1において、各ノード4は、クロスバスイッチ5によって接続されるのではなく、直結していてもよい。また、情報処理システム1は、複数のCPU 2を備え、各CPU 2がノード4として動作してもよい。
<機能構成>
図2は、共有メモリを有する情報処理システム1の機能構成の例を示す図である。情報処理システム1は、リクエスターCPU 2A、Home CPU 2BおよびキャッシュCPU 2Cを含む。リクエスターCPU 2A、Home CPU 2BおよびキャッシュCPU 2Cは、それぞれ異なるノード4に含まれるCPU 2であってもよく、同じノード4に含まれるCPU 2であってもよい。また、リクエスターCPU 2A、Home CPU 2BおよびキャッシュCPU 2Cは、互いに同じCPU 2であってもよい。
リクエスターCPU 2A、Home CPU 2BおよびキャッシュCPU 2Cは、互いに異なるノード4に含まれるCPU 2である場合には、外部バスInterface(I/F)部90を介して接続される。
リクエスターCPU 2Aは、ソフトウェアInterface(I/F)部60、リクエスト生成部61およびリクエスト回収部62を含む。リクエスターCPU 2Aは、「第1の演算処理装置」の一例である。
ソフトウェアI/F部60は、ソフトウェアからのコマンドを受け付ける。ソフトウェアI/F部60は、リクエスト生成部61に対し、受け付けたコマンドに基づくリクエストの発行を指示する。また、ソフトウェアI/F部60は、リクエスト回収部62から、コマンドに対する処理結果を受け取り、受け取った結果に応じた状態を、ソフトウェアから参照されるレジスタに書き込む。
リクエスト生成部61は、ソフトウェアI/F部60から、コマンドの対象となるデータに対するリクエスト生成の指示を受け付ける。リクエスト生成部61は、コマンドの対象となるデータを管理するHome CPU 2Bのディレクトリ制御部70に対し、生成されたリクエストを発行する。
リクエスト回収部62は、Home CPU 2Bのディレクトリ制御部70から、リクエスト生成部61が生成したリクエストに対する結果を回収し、リクエストの結果をソフトウェアI/F部60に通知する。
Home CPU 2Bは、ディレクトリ制御部70、コマンド実行部71およびメモリコントローラ21を含む。Home CPU 2Bは、「第2の演算処理装置」の一例である。
ディレクトリ制御部70は、リクエスト生成部61から発行されたリクエストを受け付けると、ディレクトリ33をチェックする。ディレクトリ制御部70は、ディレクトリ33のエラーマークの有無等に応じて、コマンド実行部71に対し、持ち出されたデータの破棄を指示するコマンドの発行を依頼する。また、ディレクトリ制御部70は、コマンド実行部71から、コマンドの実行結果を受け取る。ディレクトリ制御部70は、受け取った実行結果に基づき、ディレクトリ33を更新する。ディレクトリ制御部70は、リクエスト回収部62に、受け取った実行結果を通知する。
コマンド実行部71は、ディレクトリ制御部70から、コマンド発行の依頼を受け付ける。コマンド実行部71は、キャッシュCPU 2Cに対し、キャッシュされたデータの破棄等のコマンドを発行する。また、コマンド実行部71は、コマンドを発行した各キャッシュCPU 2Cからの応答を受信する。コマンド実行部71は、ディレクトリ制御部70に対し、各キャッシュCPU 2Cからの応答の結果を通知する。
メモリコントローラ21は、メモリ3のディレクトリ33の内容を取得し、ディレクトリ制御部70に通知する。メモリコントローラ21は、ディレクトリ制御部70の指示により、メモリ3のディレクトリ33を更新する。
キャッシュCPU 2Cは、キャッシュ制御部80を含む。キャッシュ制御部80は、コマンド実行部71から、コマンドを受け付け、持ち出されたデータを破棄する。また、キャッシュCPU 2Cは、コマンドの実行結果をコマンド実行部71に通知する。
<エラー検出時の対処>
図3から図8は、エラー検出時の対処方法について説明するための図である。なお、図3から図8において、ノード#0、ノード#1およびノード#2は、図1に示すノード4の例であり、共通する構成についての説明は省略される。また、ノード#0、ノード#1およびノード#2の構成の一部は、図示が省略される。
ノード#0、ノード#1、ノード#2は、それぞれリクエスターCPU 2A、Home CPU 2B、キャッシュCPU 2Cを含み、それぞれリクエスターノード、Homeノード、持ち出しノードとも称される。
また、図3から図8において、CPU#00、CPU#10およびCPU#20は、それぞれ図2に示すリクエスターCPU 2A、Home CPU 2B、キャッシュCPU 2Cの例であり、共通する機能構成についての説明は省略される。
図3は、他のノードのデータが持ち出された例を示す図である。図3において、ノード#0およびノード#1は、ノード間接続経路5(例えば、クロスバスイッチ)を介して接続される。
ノード#0のCPU#00は、ノード#1のCPU#10の共有メモリ31のデータを持ち出している。ノード#1のメモリ3上のディレクトリ33は、CPU#00にデータが持ち出されたことを記録する。
図4は、データを持ち出したCPU 2を含むノード4が故障した例を示す図である。ノード#0が故障した後、他のノード4のCPU2が、ノード#0のCPU#00がデータを持ち出しているキャッシュラインのアドレスにアクセスすると、ディレクトリ制御部70は、持ち出されたデータをノード#0から回収しようとする。ディレクトリ制御部70は、ノード#0の故障によりデータを回収できないため、ノード#1のディレクトリ33に、当該キャッシュラインが異常であることを示すエラーマーク(図中“Unknow
n”と示される)を設定する。
エラーマークが設定されたキャッシュラインを再利用するためには、ディレクトリ制御部70に対して、ディレクトリ33の正常化が指示されればよい。ディレクトリ制御部70は、ディレクトリ33に、当該キャッシュラインが正常であることを示すマーク(図中“No Error”と示される)を設定する。
図5は、データが持ち出されたCPU 2を含むノード4が故障した例を示す図である。ノード#1が故障すると、CPU#00に対し、ノード#1のCPU#10から持ち出されたデータの削除が指示されればよい。CPU#00は、キャッシュ22内のCPU#10のデータを削除する。
図6は、ノード間の経路故障の例を示す図である。図6は、CPU#00がCPU#10からデータを持ち出した後、ノード#0とノード#1との間のいずれかの経路で故障が発生した例を示す。
図4の例と同様に、CPU#00がデータを持ち出しているキャッシュラインのアドレスがアクセスされると、ディレクトリ制御部70は、ディレクトリ33に、当該キャッシュラインが異常であることを示すエラーマークを設定する。
エラーマークが設定されたキャッシュラインを再利用するためには、CPU#00のキャッシュ22内のCPU#10のデータの削除およびディレクトリ33の正常化がされればよい。キャッシュ22内のデータの削除およびディレクトリ33の正常化は、データのコヒーレンシを保持するため、同時に実施されることが望ましい。具体的には、キャッシュ22内のデータの削除およびディレクトリ33の正常化は、アドレスロックにより、当該キャッシュラインに対して新規にアクセスされるのを止めている間に実施されればよい。
図7は、複数のCPU 2にデータが持ち出された例を示す図である。図4において、ノード#0、ノード#1およびノード#2は、ノード間接続経路5を介して、相互に接続される。
ノード#0のCPU#00およびノード#2のCPU#20は、ノード#1のCPU#10の共有メモリ31のデータを持ち出している。ノード#1のメモリ3上のディレクトリ33は、CPU#00およびCPU#20にデータが持ち出されたことを記録する。
図8は、複数のCPU 2にデータが持ち出され、データを持ち出したCPU 2を含むノード4の一つが故障した例を示す図である。エラーが検出されると、ディレクトリ制御部70は、ディレクトリ33に、当該キャッシュラインが異常であることを示すエラーマークを設定する。
エラーマークが設定されたキャッシュラインを再利用するためには、CPU#00のキャッシュ22内のCPU#10のデータの削除およびディレクトリ33の正常化がされればよい。CPU#00のキャッシュ22内のデータの削除およびディレクトリ33の正常化は、データのコヒーレンシを保持するため、同時に実施されることが望ましい。具体的には、キャッシュ22内のデータの削除およびディレクトリ33の正常化は、アドレスロックにより、当該キャッシュラインに対して新規にアクセスされるのを止めている間に実施されればよい。
<処理例>
図9は、ディレクトリ33の正常化の処理例を示す図である。情報処理システム1は、ノード#0、ノード#1およびノード#2を含む。ノード#0のCPU#00およびノード#2のCPU#20は、ノード#1の共有メモリ31のデータを持ち出している。何等かの故障要因により、ディレクトリ33に、エラーマークが設定された場合のディレクトリ33の正常化の処理例が示される。
エラーが検出されると、ソフトウェアは、ノード#1(Homeノード)のディレクトリ制御部70に指示を出す、ノード#0の機能レジスタ23のコマンド指定レジスタに、ディレクトリ正常化のコマンドに対応する値を書き込む(A1)。
機能レジスタ23にコマンドが書き込まれると、CPU#00は、ノード#1のCPU#10のディレクトリ制御部70に、ディレクトリ正常化を要求する(A2)。ディレクトリ制御部70は、CPU#00およびCPU#20に持ち出されたデータのアドレスに対し、他のCPU 2からアクセスされないようにロックする(A3)。ディレクトリ制御部70は、Cache Coherent NonUniform Memory Access(ccNUMA)の機構を利用
して当該アドレスをロックすることができる。
ディレクトリ制御部70は、ディレクトリ33にエラーマークされていることを確認する。エラーマークの設定により、データを持ち出したCPU 2は、不明となっている。このため、ディレクトリ制御部70は、キャッシュ制御要求回路71に、情報処理システム1内の他のCPU 2に持ち出された当該アドレスのデータを破棄させるように指示を出す(A4)。なお、キャッシュ制御要求回路71は、コマンド実行部71として、その処理の一部を実行する。
キャッシュ制御要求回路71は、情報処理システム1内の他のCPU 2に対し、持ち出された当該アドレスのデータを破棄するよう指示する(A5)。指示を受けた各CPU
2は、当該アドレスのデータを持ち出しているか否かを確認し、持ち出している場合には削除する(A6)。
指示を受けた各CPU 2は、持ち出したデータの削除が正常に完了した場合、または持ち出しをしていない場合、ノード#1のCPU#10のキャッシュ制御要求回路71に完了を通知する(A7)。一方、指示を受けた各CPU 2は、何等かの故障が発生している場合には、キャッシュ制御要求回路71にエラーを通知する(A7)。
キャッシュ制御要求回路71は、A5で指示をした各CPU 2から、完了またはエラーの通知を待つ(A8)。キャッシュ制御要求回路71は、各CPU 2から完了の通知を受信した場合、ディレクトリ制御部70に完了を通知する(A9)。一方、キャッシュ制御要求回路71は、何れかのCPU 2からエラーの通知を受信した場合、または応答がなくタイムアウトとなった場合には、ディレクトリ制御部70にエラーを通知する(A9)。
ディレクトリ制御部70は、完了の通知を受信した場合、ディレクトリ33を正常化する(A10)。一方、ディレクトリ制御部70は、エラーの通知を受信した場合、ディレクトリ33をエラーマークのままとする(A10)。
ディレクトリ制御部70は、ディレクトリ正常化を要求したCPU#00に対し、ディレクトリ正常化の処理結果を通知する(A11)。CPU#00は、機能レジスタ23のステータス表示レジスタに、処理結果に対応する値を書き込む(A12)。
A1においてディレクトリ正常化のコマンドを書き込んだソフトウェアは、機能レジス
タ23のステータス表示レジスタを監視し、ディレクトリ正常化の処理が正常に終了したか否かを認識する。
図9の例は、ノード#0、ノード#1およびノード#2以外のノード4で故障が発生した場合、経路故障の場合等の処理例を示す。これに対し、ノード#1が故障した場合、CPU#00のディレクトリ制御部70およびキャッシュ制御要求回路71が、A3、A4、A5、A11等の処理をすればよい。なお、図9では図示が省略されるが、CPU#00、CPU#10、CPU#20は、いずれもキャッシュ22、機能レジスタ23、ディレクトリ制御部70、キャッシュ制御要求回路71を備える。また、ノード#1が故障した場合、ディレクトリ33の正常化(A10)は実行されない。
<回路例>
図10から図12Cは、リクエスターCPU 2A、Home CPU 2BおよびキャッシュCPU 2Cの回路を説明するための図である。図10および図11は、リクエスターCPU 2A、Home CPU 2BおよびキャッシュCPU 2Cの回路を例示する。図12Aから図12Cは、リクエスターCPU 2Aの機能レジスタ23のフォーマットを例示する。
図10は、リクエスターCPU 2Aの回路を例示する図である。リクエスターCPU
2Aは、ソフトウェアからのコマンドを受け付ける。リクエスターCPU 2Aは、ソフトウェアI/F部60、リクエスト生成部61およびリクエスト回収部62により、Home CPU 2Bにディレクトリ正常化を指示し、結果を回収する。
ソフトウェアI/F部60は、アドレス指定レジスタ(ADRS)601、コマンド指定レジスタ(CMD)602およびステータス表示レジスタ(Status)603を備える。
ソフトウェアがエラーを検出すると、エラーハンドラ100は、アドレス指定レジスタ601にコマンドの対象となるキャッシュラインのアドレスを書き込む。また、エラーハンドラ100は、コマンド指定レジスタ602にコマンドを指定する値を書き込む。
ソフトウェアI/F部60は、アドレス指定レジスタ601およびコマンド指定レジスタ602に値が書き込まれると、ディレクトリ正常化の処理を開始し、リクエスト生成部61にリクエストの発行を指示する。
ソフトウェアI/F部60は、リクエスト回収部62からコマンド実行の結果を受け取る。ソフトウェアI/F部60は、受け取った結果に応じて、ステータス表示レジスタ603の値を更新する。エラーハンドラ100は、アドレス指定レジスタ601およびコマンド指定レジスタ602に値を書き込んだ後、ステータス表示レジスタ603の値の更新を監視する。
リクエスト生成部61は、ソフトウェアI/F部60からの指示や他のリクエストを優先度に従って処理する。リクエスト生成部61は、アドレス指定レジスタ601に指定された対象アドレスをチェックし、コマンドの実行に使用する資源を確保する。リクエスト生成部61は、リクエストを生成し、対象アドレスを管理するHome CPU 2Bに生成したリクエストを発行する。
対象アドレスを管理するHome CPU 2BがリクエスターCPU 2Aを含むリクエスターノードと異なるノード4内のCPU 2である場合、リクエスト生成部61は、外部バスI/F部90を介してHome CPU 2Bのディレクトリ制御部70にリ
クエストを発行する。Home CPU 2Bがリクエスターノード内のCPU 2である場合、リクエスト生成部61は、外部バスI/F部90を介さずに、Home CPU
2Bのディレクトリ制御部70にリクエストを発行する。
リクエスト回収部62は、Home CPU 2Bからコマンド実行の結果を回収する。Home CPU 2BがリクエスターCPU 2Aを含むリクエスターノードと異なるノード4内のCPU 2である場合、リクエスト回収部62は、外部バスI/F部90を介して結果を回収する。Home CPU 2Bがリクエスターノード内のCPU 2である場合、リクエスト回収部62は、外部バスI/F部90を介さずに結果を回収する。
リクエスト回収部62は、リクエスト生成部61に、資源の解放を指示する。リクエスト回収部62は、ソフトウェアI/F部60に回収した結果を通知する。リクエスト回収部62は、時間を監視し、Home CPU 2Bから所定時間応答がない場合には、ソフトウェアI/F部60に失敗を通知する。
図11は、実施形態1におけるHome CPU 2BおよびキャッシュCPU 2Cの回路を例示する図である。Home CPU 2Bは、リクエスターCPU 2Aからのリクエストを受け付ける。Home CPU 2Bは、ディレクトリ制御部70、コマンド実行部71およびメモリコントローラ21により、キャッシュCPU 2Cに対してキャッシュされたデータの破棄を指示し、結果を回収する。キャッシュCPU 2Cは、キャッシュ制御部80により、キャッシュされたデータを破棄し、結果をHome CPU 2Bに通知する。
Home CPU 2Bのディレクトリ制御部70は、リクエスターCPU 2Aからのリクエストを受け付けると、メモリコントローラ21を介して、ディレクトリ33のエラーマークをチェックする。ディレクトリ33にエラーマークが設定されていない場合、ディレクトリ制御部70は、リクエスターCPU 2Aに正常の結果応答をする。エラーマークが設定されている場合、ディレクトリ制御部70は、コマンド実行部71に、キャッシュされたデータの破棄を指示するコマンド(以下、キャッシュ破棄コマンドともいう)を生成させる。
Home CPU 2Bのコマンド実行部71は、キャッシュCPU 2Cに対し、キャッシュ破棄コマンドを発行する。キャッシュCPU 2Cは、情報処理システム1内の各CPU 2である。コマンド実行部71は、データを持ち出したCPU 2が特定できる場合は、特定されたCPU 2をキャッシュCPU 2Cとして、キャッシュ破棄コマンドを発行する。
コマンド実行部71は、情報処理システム1の起動時にサービスプロセッサ101に設定される構成制御レジスタ102を参照し、情報処理システム1内の各CPU 2の宛先を取得する。サービスプロセッサ101は、情報処理システム1の電源制御、クロック制御、FAN制御、プロセッサ立ち上げシーケンス等を管理するプロセッサである。構成制御レジスタ102は、システムの構成によって設定を変えるために使用される。例えば、情報処理システム1においてノード数は固定ではなく、1〜16のノード4を有する場合がある。構成制御レジスタ102の宛先指定レジスタは、存在するノード4だけをEnableに設定する。
キャッシュCPU 2CがHome CPU 2Bを含むHomeノードと異なるノード4内のCPU 2である場合、コマンド実行部71は、外部バスI/F部90を介してキャッシュCPU 2Cのキャッシュ制御部80にキャッシュ破棄コマンドを発行する。
キャッシュCPU 2CがHomeノード内のCPU 2である場合、コマンド実行部71は、外部バスI/F部90を介さずに、キャッシュCPU 2Cのキャッシュ制御部80にキャッシュ破棄コマンドを発行する。
キャッシュCPU 2Cのキャッシュ制御部80は、キャッシュ破棄コマンドを受信すると、対象アドレスのデータがキャッシュされているか否かを判定する。対象アドレスのデータがキャッシュされている場合、キャッシュ制御部80は、キャッシュされたデータを破棄し、コマンド実行部71に破棄したことの応答をする。エラーが発生した場合には、キャッシュ制御部80は、コマンド実行部71にエラーの応答をする。
キャッシュCPU 2CがHome CPU 2Bを含むHomeノードと異なるノード4内のCPU 2である場合、キャッシュ制御部80は、外部バスI/F部90を介して、Home CPU 2Bのコマンド実行部71に応答する。キャッシュCPU 2CがHomeノード内のCPU 2である場合、キャッシュ制御部80は、外部バスI/F部90を介さずに、Home CPU 2Bのコマンド実行部71に応答する。
Home CPU 2Bのコマンド実行部71は、コマンドを発行した各キャッシュCPU 2Cから応答があったか否かをチェックする。応答の受信を完了すると、コマンド実行部71は、ディレクトリ制御部70に完了を通知する。コマンド実行部71は、時間を監視し、キャッシュCPU 2Cから所定時間応答がない場合には、ディレクトリ制御部70に失敗を通知する。
Home CPU 2Bのディレクトリ制御部70は、コマンド実行部71から、コマンド実行の結果を受け取る。ディレクトリ制御部70は、完了の通知を受け取ると、メモリコントローラ21を介して、ディレクトリ33を正常化し、持ち出し無しの設定をする。ディレクトリ制御部70は、失敗の通知を受け取ると、ディレクトリ33にはエラーマークが設定された状態のまま、結果をリクエスターCPU 2Aに通知する。
図11の例では、ディレクトリ33にエラーマークが設定されている場合、Home CPU 2Bから、キャッシュCPU2Cに対して、キャッシュされたデータの破棄を指示するコマンドが発行される。これに対し、Home CPU 2Bは、リクエスターCPU 2Aにエラーの結果応答をし、リクエスターCPU 2Aのコマンド実行部71が、キャッシュCPU2Cに対して、キャッシュされたデータの破棄を指示するコマンドを発行してもよい。
図11の例は、Home CPU 2Bが、ディレクトリ33の正常化およびキャッシュCPU2Cに対するキャッシュ破棄の指示をする例を示す。これに対し、図11の変形例として、Home CPU 2Bが故障した場合、情報処理システム1内でキャッシュされたデータの破棄を行う場合には、リクエスターCPU 2Aのコマンド実行部71が、キャッシュCPU2Cに対して、キャッシュされたデータの破棄を指示するコマンドを発行してもよい。
図12Aは、アドレス指定レジスタ601のレジスタフォーマットの例を示す図である。0〜6ビットおよび47〜63ビットは予約ビットである。7〜46ビットは、コマンドの対象となるキャッシュラインのアドレスを指定するPAフィールドである。
図12Bは、コマンド指定レジスタ602のレジスタフォーマットの例を示す図である。4〜7ビットおよび11〜63ビットは予約ビットである。0〜3ビットは、コマンドを指定するCommandフィールドである。例えば、“0000”は、No Operation(NOP)、即ち処理を行わないことを指示するコマンドを示す。また、“0
001”は、ディレクトリ正常化を指示するコマンドを示す。“0010”は、Home
CPU 2Bが故障した場合等に、キャッシュ破棄を指示するコマンドを示す。
図12Cは、実施形態1におけるステータス表示レジスタ603のレジスタフォーマットの例を示す図である。1〜7ビットおよび9〜63ビットは予約ビットである。0ビットは、実行したコマンドがエラー終了したか否かを示すErrorフィールドである。“0”は、コマンドが正常に終了したことを示す。また、“1”は、コマンドがエラー終了したことを示す。8ビットは、コマンドの実行中であるか否かを示すBusyフィールドである。“0”は、コマンドの実行が完了したことを示す。また、“1”は、コマンドの実行中であることを示す。
<実施形態1の作用効果>
情報処理システム1において、ノード間のデータ転送に関わるエラーの発生により、キャッシュコヒーレンシが保持されなくなる場合がある。実施形態1では、情報処理システム1は、エラーを検出すると、エラーの原因となったアドレスのデータについて、情報処理システム1内の各CPU 2に対し、持ち出された当該データの削除を指示し、ディレクトリ33を正常化する。これにより、キャッシュコヒーレンシの異常状態から回復することができる。
情報処理システム1は、エラーを検出すると、エラーの原因となったアドレスのデータを持ち出したCPU 2がディレクトリ33の情報から特定できる場合には、特定された各CPU 2に対し、持ち出された当該データの削除を指示する。また、情報処理システム1は、ノード4の故障に起因するエラーを検出すると、故障したノード4以外のノード4に含まれるCPU 2に対し、持ち出された当該データの削除を指示する。これにより、当該データを持ち出していないCPU 2の負荷が軽減される。
〔実施形態2〕
実施形態2において、情報処理システム1は、エラーが検出された場合、実施形態1におけるディレクトリ正常化の処理の前に、コヒーレンシを調査する。コヒーレンシの調査では、情報処理システム1は、持ち出されたデータが正常か否かを判定する。情報処理システム1は、エラーの原因が経路故障等であって持ち出されたデータにエラーマークが設定されていなければ、持ち出されたデータを書き戻して、異常状態から回復する。実施形態2におけるシステム構成および機能構成は、実施形態1と同じであるため、説明は省略される。
<回路例>
図13から図15は、実施形態2におけるHome CPU 2BおよびキャッシュCPU 2Cの回路を説明するための図である。リクエスターCPU 2Aの回路は実施形態1と同じであるため、説明は省略される。図13から図15における実施形態2の構成は、実施形態1との共通点を含むため、主として相違点が説明され、共通点についての説明は省略される。
図13は、実施形態2におけるHome CPUおよびキャッシュCPUの回路を例示する図である。Home CPU 2Bのディレクトリ制御部70およびコマンド実行部71、並びにキャッシュCPU 2Cのキャッシュ制御部80の動作が説明される。
Home CPU 2Bのディレクトリ制御部70は、リクエスターCPU 2Aからディレクトリ正常化またはコヒーレンシ調査のリクエストを受け付ける。ディレクトリ正常化のリクエストを受け付けた場合、ディレクトリ制御部70、コマンド実行部71およびキャッシュ制御部80は、実施形態1と同じ動作をする。
ディレクトリ制御部70は、リクエスターCPU 2Aからのリクエストを受け付けると、メモリコントローラ21を介して、ディレクトリ33のエラーマークおよびデータの持ち出しの有無をチェックする。ディレクトリ制御部70は、ディレクトリ33をチェックすると、コマンドの内容、エラーマークの有無、データの持ち出しの有無の条件の組み合わせに基づいて、コマンドを発行するか、結果を応答するかの処理を決定する。
ディレクトリ制御部70は、コヒーレンシ調査のリクエストを受け付け、ディレクトリ33にエラーマークが設定されていない場合、ディレクトリ制御部70は、コマンド実行部71に、特定されたCPU 2にキャッシュされたデータの書き戻しを指示するコマンド(以下、キャッシュ書き戻しコマンドともいう)を生成させる。ディレクトリ制御部70は、ディレクトリ33を参照して、データを持ち出したCPU 2を特定できる場合には、特定されたCPU 2に対するキャッシュ書き戻しコマンドを生成させる。
ディレクトリ制御部70は、コヒーレンシ調査のリクエストを受け付け、ディレクトリ33にエラーマークが設定されている場合、リクエスターCPU 2Aにエラーの結果応答をする。
Home CPU 2Bのコマンド実行部71は、ディレクトリ33にエラーマークが設定されていない場合、ディレクトリ制御部70から指示により生成したキャッシュ書き戻しコマンドを、データを持ち出したCPU 2に発行する。エラーマークが設定されている場合は、コマンド実行部71は、実施形態1と同じ動作をする。
キャッシュCPU 2Cのキャッシュ制御部80は、キャッシュ書き戻しコマンドを受けると、キャッシュされたデータをコマンド実行部71に送信する。エラーが発生した場合には、キャッシュ制御部80は、コマンド実行部71にエラーの応答をする。
ディレクトリ制御部70は、ディレクトリ33にエラーマークが設定されていない場合に、コマンド実行部71からエラーの通知を受けると、ディレクトリ33にエラーマークを設定する。
図13の例では、ディレクトリ33にエラーマークが設定されていない場合、データを持ち出したCPU 2に対して、キャッシュを書き戻すコマンドが発行される。書き戻しの処理は、ディレクトリ33で管理される持ち出し先のCPU 2の数と、実際に当該データを持ち出したCPU 2の数との整合性を取るための処理である。データが書き戻されない場合、Home CPU 2Bは、実際に当該データを持ち出したCPU 2の数をカウントすることで、ディレクトリ33で管理される持ち出し先のCPU 2の数との整合性を確認してもよい。コヒーレンシ調査において、キャッシュされたデータの書き戻しをすることで、持ち出し先のCPU 2の管理は、簡易化される。
図14は、実施形態2におけるディレクトリ制御部70の動作判定条件の例を示す図である。ディレクトリ制御部70は、コマンドの内容、エラーマークの有無、データの持ち出しの有無の条件の組み合わせに基づいて、コマンドを発行するか、結果を応答するかの処理を決定する。
ディレクトリ制御部70は、「コマンドがディレクトリ正常化、エラーマーク有り」、「コマンドがコヒーレンシ調査、エラーマーク無し、データ持ち出し有り」の場合、コマント実行部71にコマンド発行を指示する。一方、ディレクトリ制御部70は、「コマンドがディレクトリ正常化、エラーマーク無し」、「コマンドがコヒーレンシ調査、エラーマーク無し、データ持ち出し無し」、「コマンドがコヒーレンシ調査、エラーマーク有り
」の場合、リクエスターCPU 2Aに結果を応答する。
実施形態2におけるアドレス指定レジスタ601およびコマンド指定レジスタ602のレジスタフォーマットは実施形態1と同じであるため、説明は省略される。ただし、コマンド指定レジスタ602のCommandフィールドにおいて、実施形態1と同様に“0000”はNOP、“0001”はディレクトリ正常化を指示するコマンドを示す。また、“0010”は、Home CPU 2Bが故障した場合等に、キャッシュ破棄を指示するコマンドを示す。さらに“0011”は、コヒーレンシ調査を指示するコマンドを示す。
図15は、実施形態2におけるステータス表示レジスタ603のレジスタフォーマット例を示す図である。2〜7ビットおよび9〜63ビットは予約ビットである。0〜1ビットは、コマンドの実行結果のステータスを示すErrorフィールドである。“00”は、コマンドが正常に終了したことを示す。“01”は、コヒーレンシ異常を検出し、新たにディレクトリ33にエラーマークを設定したことを示す。“10”は、Home CPU 2Bがエラーを検出し、キャッシュ破棄に失敗したことを示す。“11”は、Home CPU 2Bからの応答がなかったことを示す。8ビットは、実施形態1と同様にコマンドの実行中であるか否かを示すBusyフィールドである。“0”は、コマンドの実行が完了したことを示す。また、“1”は、コマンドの実行中であることを示す。
<動作フロー1>
図16は、データを持ち出したCPU 2を含むノードが故障した場合の動作フローの例を示す図である。図16は、リクエスターノード、Homeノード、持ち出しノード、他ノード間の動作フローを示す。
リクエスターノードは、ソフトウェアが検出したエラーに対し、コヒーレンシ調査およびディレクトリ正常化のリクエストをHomeノードに発行するノード4であり、リクエスターCPU 2Aを備える。Homeノードは、持ち出されたデータを記憶するメモリを管理するノード4であり、Home CPU 2Bを備える。持ち出しノードは、Homeノードからデータを持ち出したノードであり、キャッシュCPU 2Cを備える。他ノードは、情報処理システム1内に含まれるリクエスターノード、Homeノード、持ち出しノード以外のノード4である。
S1からS20までの動作のうち、S1からS8は、ユーザプロセス実行中の動作である。S9からS20は、エラーハンドラ実行中の動作である。また、S9からS20までの動作のうち、S9からS12は、コヒーレンシ調査コマンドに対する動作であり、S13からS20は、ディレクトリ正常化コマンドに対する動作である。
S1では、キャッシュCPU 2Cは、Home CPU 2Bの共有メモリ31からデータを持ち出す。Home CPU 2Bは、持ち出されたデータに対するディレクトリ33に、データの持ち出し有り、エラーマーク無し(正常)の設定をする。図中、ディレクトリ33は、“DIR”と示される(以下同様)。
S2では、持ち出しノードが故障する。ディレクトリ33は、コヒーレンシ異常状態となる。S3では、ソフトウェアは、持ち出しノードがHome CPU 2Bから持ち出したデータへのアクセスを、リクエスターCPU 2Aに依頼する。
S4では、リクエスターCPU 2Aは、Home CPU 2Bに、持ち出されたデータへのアクセスのリクエストを発行する。S5では、Home CPU 2Bは、持ち出されたデータの回収をキャッシュCPU 2Cに依頼する。キャッシュCPU 2Cを
含む持ち出しノードが故障しているため、Home CPU 2Bにおいて、タイムアウトが発生する。
S6では、Home CPU 2Bは、ディレクトリ33に、“Unknown”のエラーマークを設定する。S7では、Home CPU 2Bは、リクエスターCPU 2Aに、エラーの応答をする。S8では、リクエスターCPU 2Aは、ソフトウェアに割込みでエラーの発生およびエラーが発生したキャッシュラインのアドレスを通知する。
S9では、ソフトウェアは、リクエスターCPU 2Aのコマンド指示レジスタ602に、コヒーレンシ調査コマンドを書き込む。また、ソフトウェアは、リクエスターCPU
2Aのアドレス指定レジスタ601に、調査対象のキャッシュラインのアドレスとして、エラーが発生したキャッシュラインのアドレスを書き込む。S10では、リクエスターCPU 2Aは、Home CPU 2Bに、持ち出されたデータの調査のリクエストを発行する。このとき、ディレクトリ33には、エラーマークが設定されている。
S11では、Home CPU 2Bは、リクエスターCPU 2Aに、エラーの応答をする。リクエスターCPU 2Aは、ステータス表示レジスタ603に、コヒーレンシ調査コマンドの実行結果を設定する。具体的には、リクエスターCPU 2Aは、図15のレジスタフォーマットのErrorフィールドに、実行結果に応じた値を設定する。
S12では、ソフトウェアは、ステータス表示レジスタ603を読み込む。S13では、ソフトウェアは、ステータス表示レジスタ603が正常以外の値を示す場合には、リクエスターCPU 2Aのコマンド指示レジスタ602に、ディレクトリ正常化コマンドを書き込む。また、ソフトウェアは、リクエスターCPU 2Aのアドレス指定レジスタ601に、ディレクトリ正常化の対象であるキャッシュラインのアドレスとして、エラーが発生したキャッシュラインのアドレスを書き込む。なお、ソフトウェアは、アドレス指定レジスタ601がS10からS13までの間に変更されていなければ、アドレス指定レジスタ601に当該アドレスを書き込まなくても良い。
S14では、リクエスターCPU 2Aは、Home CPU 2Bに、ディレクトリ正常化のリクエストを発行する。S15では、Home CPU 2Bは、リクエスターCPU 2Aも含め、データを持ち出した可能性のあるCPU 2に、キャッシュに持ち出されたデータの破棄を指示する。
S16では、キャッシュ破棄の指示を受けた各CPU 2は、キャッシュされたデータを破棄したことを、Home CPU 2Bに応答する。S17では、Home CPU
2Bは、ディレクトリ33に、データの持ち出し無し、エラーマーク無し(正常)の設定をする。
S18では、Home CPU 2Bは、リクエスターCPU 2Aに、キャッシュ破棄の結果を応答する。リクエスターCPU 2Aは、ステータス表示レジスタ603に、ディレクトリ正常化コマンドの実行結果を設定する。
S19では、ソフトウェアは、ステータス表示レジスタ603を読み込む。S20では、ソフトウェアは、ステータス表示レジスタ603が正常の値を示す場合には、ディレクトリ正常化が完了したことを認識し、リカバリ処理をする。リカバリ処理は、ソフトウェアのユーザプロセスが、エラーで中断したことに対するロールバック等の処理である。
<動作フロー2>
図17は、経路故障の場合の動作フローの例を示す図である。図17は、図16と同様
に、リクエスターノード、Homeノード、持ち出しノード、他ノード間の動作フローを示す。各ノードの説明は、図16と同じであるため省略される。
S31からS54までの動作のうち、S31からS39は、ユーザプロセス実行中の動作である。S40からS54は、エラーハンドラ実行中の動作である。また、S40からS54までの動作のうち、S40からS46は、コヒーレンシ調査コマンドに対する動作であり、S47からS54は、ディレクトリ正常化コマンドに対する動作である。
S31では、キャッシュCPU 2Cは、Home CPU 2Bの共有メモリ31からデータを持ち出す。Home CPU 2Bは、持ち出されたデータに対するディレクトリ33に、データの持ち出し有り、エラーマーク無し(正常)の設定をする。
S32では、ソフトウェアは、持ち出しノードがHome CPU 2Bから持ち出したデータへのアクセスを、リクエスターCPU 2Aに依頼する。S33では、リクエスターCPU 2Aは、Home CPU 2Bに、持ち出されたデータへのアクセスのリクエストを発行する。
S34では、Home CPU 2Bは、持ち出されたデータの回収をキャッシュCPU 2Cに依頼する。S35では、キャッシュCPU 2Cは、Home CPU 2Bに持ち出したデータを送信する。
S36では、Home CPU 2Bは、リクエスターCPU 2Aに正常の応答をする。S37では、キャッシュCPU 2Cは、リクエスターCPU 2Aに持ち出したデータを転送する。S38では、キャッシュCPU 2CとリクエスターCPU 2Aとの間で経路故障が発生し、リクエスターCPU 2Aは、タイムアウトを検出する。S39では、リクエスターCPU 2Aは、ソフトウェアに割込みでエラーの発生およびエラーが発生したキャッシュラインのアドレスを通知する。
S40では、ソフトウェアは、リクエスターCPU 2Aのコマンド指示レジスタ602に、コヒーレンシ調査コマンドを書き込む。また、ソフトウェアは、リクエスターCPU 2Aのアドレス指定レジスタ601に、調査対象のキャッシュラインのアドレスとして、エラーが発生したキャッシュラインのアドレスを書き込む。S41では、リクエスターCPU 2Aは、Home CPU 2Bに、持ち出されたデータの調査のリクエストを発行する。
S42では、Home CPU 2Bは、リクエスターCPU 2AおよびキャッシュCPU 2Cも含め、データを持ち出した可能性のあるCPU 2に、データの調査を指示する。
S43では、データの調査の指示を受けた各CPU 2は、調査の結果をHome CPU 2Bに応答する。データを持ち出したCPU 2は、Home CPU 2Bに持ち出したデータを書き戻す。
データの書き戻しにより、処理が正常に完了した場合、Home CPU 2Bは、ディレクトリ33にエラーマークを設定しない。この場合、Home CPU 2Bは、リクエスターCPU 2Aに、正常の応答をする。リクエスターCPU 2Aは、ステータス表示レジスタ603に、正常完了の値を設定する。ソフトウェアは、ステータス表示レジスタ603を読み込み、コヒーレンシの異常がないことを認識する。この場合、ディレクトリ正常化のコマンドは実行されない。
一方、S43の処理において、コヒーレンシの異常が検出された場合、以下のようにディレクトリ正常化のコマンドが実行される。S44では、Home CPU 2Bは、ディレクトリ33に、“Unknown”のエラーマークを設定する。
S45では、Home CPU 2Bは、リクエスターCPU 2Aに、エラーの応答をする。リクエスターCPU 2Aは、ステータス表示レジスタ603に、エラーに応じた値を設定する。S46では、ソフトウェアは、ステータス表示レジスタ603を読み込む。S47では、ソフトウェアは、リクエスターCPU 2Aのコマンド指示レジスタ602に、ディレクトリ正常化コマンドを書き込む。また、ソフトウェアは、リクエスターCPU 2Aのアドレス指定レジスタ601に、ディレクトリ正常化の対象であるキャッシュラインのアドレスとして、エラーが発生したキャッシュラインのアドレスを書き込む。なお、ソフトウェアは、アドレス指定レジスタ601がS41からS47までの間に変更されていなければ、アドレス指定レジスタ601に当該アドレスを書き込まなくても良い。
S48では、リクエスターCPU 2Aは、Home CPU 2Bに、ディレクトリ正常化のリクエストを発行する。S49では、Home CPU 2Bは、リクエスターCPU 2Aも含め、データを持ち出した可能性のあるCPU 2に、キャッシュに持ち出されたデータの破棄を指示する。
S50では、キャッシュ破棄の指示を受けた各CPU 2は、キャッシュされたデータを破棄したことを、Home CPU 2Bに応答する。S51では、Home CPU
2Bは、ディレクトリ33に、データの持ち出し無し、エラーマーク無しの設定をする。
S52では、Home CPU 2Bは、リクエスターCPU 2Aに、キャッシュ破棄の結果を応答する。リクエスターCPU 2Aは、ステータス表示レジスタ603に、ディレクトリ正常化コマンドの実行結果を設定する。
S53では、ソフトウェアは、ステータス表示レジスタ603を読み込む。S54では、ソフトウェアは、ステータス表示レジスタ603が正常の値を示す場合には、ディレクトリ正常化が完了したことを認識し、リカバリ処理をする。
<動作フロー3>
図18は、キャッシュの誤り訂正ができないエラーが発生した場合の動作フローの例を示す図である。図18は、リクエスターノード、Homeノード、他ノード間の動作フローを示す。図18の例において、リクエスターノードは、持ち出しノードとしても動作する。各ノードの説明は、図16と同じであるため省略される。
S61からS83までの動作のうち、S61からS71は、ユーザプロセス実行中の動作である。S72からS83は、エラーハンドラ実行中の動作である。また、S72からS83までの動作のうち、S72からS75は、コヒーレンシ調査コマンドに対する動作であり、S76からS83は、ディレクトリ正常化コマンドに対する動作である。
S61では、ソフトウェアは、アクセスするデータのロードを、リクエスターCPU 2Aに依頼する。S62では、リクエスターCPU 2Aは、Home CPU 2Bに、当該データへのアクセスのリクエストを発行する。
S63では、リクエスターCPU 2Aは、Home CPU 2Bの共有メモリ31からデータを持ち出す。Home CPU 2Bは、持ち出されたデータに対するディレ
クトリ33に、データの持ち出し有り、エラーマーク無し(正常)の設定をする。
S64では、ソフトウェアは、持ち出されたデータのストアを、リクエスターCPU 2Aに依頼する。S65では、リクエスターCPU 2Aは、キャッシュのUncorrectable Error(UE)を検出する。
S66では、リクエスターCPU 2Aは、Home CPU 2Bに、UEが発生したことを通知し、キャッシュされたデータの破棄を指示する。S67では、Home CPU 2Bは、ディレクトリ33に、“Unknown”のエラーマークを設定する。
S68では、ソフトウェアは、S61でアクセスしたデータのロードを、リクエスターCPU 2Aに依頼する。S69では、リクエスターCPU 2Aは、Home CPU
2Bに、当該データへのアクセスのリクエストを発行する。このとき、ディレクトリ33には、エラーマークが設定されている。
S70では、Home CPU 2Bは、リクエスターCPU 2Aに、エラーの応答をする。S71では、リクエスターCPU 2Aは、ソフトウェアに割込みでエラーの発生およびエラーが発生したキャッシュラインのアドレスを通知する。
S72では、ソフトウェアは、リクエスターCPU 2Aのコマンド指示レジスタ602に、コヒーレンシ調査コマンドを書き込む。また、ソフトウェアは、リクエスターCPU 2Aのアドレス指定レジスタ601に、調査対象のキャッシュラインのアドレスとして、エラーが発生したキャッシュラインのアドレスを書き込む。S73では、リクエスターCPU 2Aは、Home CPU 2Bに、持ち出されたデータの調査のリクエストを発行する。このとき、ディレクトリ33には、エラーマークが設定されている。
S74では、Home CPU 2Bは、リクエスターCPU 2Aに、エラーの応答をする。リクエスターCPU 2Aは、ステータス表示レジスタ603に、コヒーレンシ調査コマンドの実行結果を設定する。
S75では、ソフトウェアは、ステータス表示レジスタ603を読み込む。S76では、ソフトウェアは、ステータス表示レジスタ603が正常以外の値を示す場合には、リクエスターCPU 2Aのコマンド指示レジスタ602に、ディレクトリ正常化コマンドを書き込む。また、ソフトウェアは、リクエスターCPU 2Aのアドレス指定レジスタ601に、ディレクトリ正常化の対象であるキャッシュラインのアドレスとして、エラーが発生したキャッシュラインのアドレスを書き込む。なお、ソフトウェアは、アドレス指定レジスタ601がS73からS76までの間に変更されていなければ、アドレス指定レジスタ601に当該アドレスを書き込まなくても良い。
S77では、リクエスターCPU 2Aは、Home CPU 2Bに、ディレクトリ正常化のリクエストを発行する。S78では、Home CPU 2Bは、リクエスターCPU 2Aも含め、データを持ち出した可能性のあるCPU 2に、キャッシュに持ち出されたデータの破棄を指示する。
S79では、キャッシュ破棄の指示を受けた各CPU 2は、キャッシュされたデータを破棄したことを、Home CPU 2Bに応答する。S80では、Home CPU
2Bは、ディレクトリ33に、データの持ち出し無し、エラーマーク無し(正常)の設定をする。
S81では、Home CPU 2Bは、リクエスターCPU 2Aに、キャッシュ破
棄の結果を応答する。リクエスターCPU 2Aは、ステータス表示レジスタ603に、ディレクトリ正常化コマンドの実行結果を設定する。
S82では、ソフトウェアは、ステータス表示レジスタ603を読み込む。S83では、ソフトウェアは、ステータス表示レジスタ603が正常の値を示す場合には、ディレクトリ正常化が完了したことを認識し、リカバリ処理をする。
<実施形態2の作用効果>
実施形態2では、情報処理システム1は、エラーが検出された場合、実施形態1におけるディレクトリ正常化の処理の前に、コヒーレンシを調査する。コヒーレンシを調査により、コヒーレンシの異常が検出されなければ、ディレクトリ正常化の処理は実行されない。これにより、情報処理システム1は、経路故障やノードの故障等、エラーの状況に応じてコヒーレンシの異常状態から回復することができる。
コヒーレンシ調査において、調査対象のデータの状態が正常である場合には、持ち出されたデータは、Home CPU 2Bのメモリに書き戻される。これにより、ディレクトリ33で管理する持ち出し先のCPU 2の数は初期化され、持ち出し先のCPU 2の管理は簡易化される。
<記録媒体>
コンピュータその他の機械、装置(以下、コンピュータ等)に上記いずれかの機能を実現させるプログラムをコンピュータ等が読み取り可能な記録媒体に記録することができる。そして、コンピュータ等に、この記録媒体のプログラムを読み込ませて実行させることにより、その機能を提供させることができる。
ここで、コンピュータ等が読み取り可能な記録媒体とは、データやプログラム等の情報を電気的、磁気的、光学的、機械的、または化学的作用によって蓄積し、コンピュータ等から読み取ることができる記録媒体をいう。このような記録媒体のうちコンピュータ等から取り外し可能なものとしては、例えばフレキシブルディスク、光磁気ディスク、CD−ROM、CD−R/W、DVD、ブルーレイディスク、DAT、8mmテープ、フラッシュメモリなどのメモリカード等がある。また、コンピュータ等に固定された記録媒体としてハードディスクやROM(リードオンリーメモリ)等がある。さらに、Solid State Drive(SSD)はコンピュータ等から取り外し可能な記録媒体としても、コンピュータ等
に固定された記録媒体としても利用可能である。
1 情報処理システム、情報処理装置
2 CPU
2A リクエスターCPU
2B Home CPU
2C キャッシュCPU
21 メモリコントローラ
22 キャッシュ
23 機能レジスタ
3 メモリ
31 共有メモリ
32 Localメモリ
33 ディレクトリ
4 ノード
5 XB(クロスバスイッチ)
60 ソフトウェアI/F
601 アドレス指定レジスタ
602 コマンド指定レジスタ
603 ステータス表示レジスタ
61 リクエスト生成部
62 リクエスト回収部
70 ディレクトリ制御部
71 コマンド実行部
80 キャッシュ制御部
90 外部バスI/F部

Claims (10)

  1. それぞれのメモリおよびキャッシュを管理する演算処理装置を1または2以上有するノードが複数接続される情報処理システムにおいて、
    前記演算処理装置は、
    検出したエラーへの対応を指示するリクエスト生成部と、
    前記メモリ上の所定単位のデータごとに管理される状態管理情報を更新するディレクトリ制御部と、
    前記状態管理情報に応じて、自身の演算処理装置以外の演算処理装置に対するコマンドを発行するコマンド実行部と、
    自身の演算処理装置以外の演算処理装置のコマンド実行部から発行されたコマンドを実行するキャッシュ制御部と、をそれぞれ備え、
    第1の演算処理装置のリクエスト生成部は、
    第2の演算処理装置が管理するメモリ上の前記データにアクセスをしてエラーを検出した場合、前記データに対する前記状態管理情報の更新を、前記第2の演算処理装置の前記ディレクトリ制御部に指示し、
    前記第2の演算処理装置の前記コマンド実行部は、自ノードまたは他ノードの他の演算処理装置に対して、持ち出した前記データの破棄を指示するコマンドを発行し、
    前記データを持ち出している演算処理装置の前記キャッシュ制御部は、前記データの破棄を指示するコマンドを受け取ると、持ち出した前記データを破棄し、破棄の結果を前記第2の演算処理装置に送信し、
    前記第2の演算処理装置の前記ディレクトリ制御部は、前記データを持ち出している演算処理装置から受け取った前記破棄の結果に基づいて、前記データに対する前記状態管理情報を更新する、
    情報処理システム。
  2. 前記第2の演算処理装置の前記コマンド実行部は、
    前記状態管理情報から前記データを持ち出した演算処理装置を特定できる場合には、前記特定された演算処理装置に対して、前記データの破棄を指示するコマンドを発行する、
    請求項1に記載の情報処理システム。
  3. 前記第2の演算処理装置の前記コマンド実行部は、
    あるノードの故障によりエラーを検出した場合に、故障したノード以外のノードが有する演算処理装置に対して、前記データの破棄を指示するコマンドを発行する、
    請求項1に記載の情報処理システム。
  4. 前記第2の演算処理装置の前記ディレクトリ制御部は、前記破棄の結果が、正常に破棄された旨の通知である場合には、前記データに対する前記状態管理情報を、前記データが正常であることを示す情報に更新する、
    請求項1から3のいずれか一項に記載の情報処理システム。
  5. 前記第1の演算処理装置の前記リクエスト生成部は、前記データに対する前記状態管理情報の更新を指示する前に、前記データの状態が正常か否かの判定を、前記第2の演算処理装置に指示し、
    前記第2の演算処理装置の前記ディレクトリ制御部は、前記第1の演算処理装置からの指示を受け付け、前記状態管理情報から前記データの状態が正常か否かを判定し、
    前記第1の演算処理装置は、前記データの状態が正常でないと判定された場合に、前記データに対する前記状態管理情報の更新を、前記第2の演算処理装置の前記ディレクトリ制御部に指示する、
    請求項1から4のいずれか一項に記載の情報処理システム。
  6. 前記第2の演算処理装置のコマンド実行部は、前記データの状態が正常であると判定された場合に、前記データを持ち出している演算処理装置に前記データの書き戻しを指示するコマンドを発行し、
    前記データの書き戻しを指示するコマンドを受け取った演算処理装置の前記キャッシュ制御部は、持ち出した前記データを前記第2の演算処理装置に送信する、
    請求項5に記載の情報処理システム。
  7. コンピュータが、
    それぞれのメモリおよびキャッシュを管理する演算処理装置を1または2以上有するノードが複数接続される情報処理システムの第1の演算処理装置が、第2の演算処理装置が管理するメモリ上の所定単位のデータにアクセスをしてエラーを検出した場合、前記所定単位のデータ毎に管理される状態管理情報の更新を、前記第2の演算処理装置に指示し、
    自ノードまたは他ノードの他の演算処理装置に対して、持ち出した前記データの破棄を指示するコマンドを発行し、
    前記データの破棄を指示するコマンドを受け取ると、持ち出した前記データを破棄し、
    破棄の結果を前記第2の演算処理装置に送信し、
    前記破棄の結果に基づいて、前記データに対する前記状態管理情報を更新する、
    情報処理方法。
  8. コンピュータに、
    それぞれのメモリおよびキャッシュを管理する演算処理装置を1または2以上有するノードが複数接続される情報処理システムの第1の演算処理装置が、第2の演算処理装置が管理するメモリ上の所定単位のデータにアクセスをしてエラーを検出した場合、前記所定単位のデータ毎に管理される状態管理情報の更新を、前記第2の演算処理装置に指示させ、
    自ノードまたは他ノードの他の演算処理装置に対して、持ち出した前記データの破棄を指示するコマンドを発行させ、
    前記データの破棄を指示するコマンドを受け取ると、持ち出した前記データを破棄させ、
    破棄の結果を前記第2の演算処理装置に送信させ、
    前記破棄の結果に基づいて、前記データに対する前記状態管理情報を前記第1の演算処理装置に更新させる、
    ための情報処理プログラム。
  9. それぞれのメモリおよびキャッシュを管理する演算処理装置を1または2以上有するノードを複数備える情報処理装置において、
    前記演算処理装置は、
    検出したエラーへの対応を指示するリクエスト生成部と、
    前記メモリ上の所定単位のデータごとに管理される状態管理情報を更新するディレクトリ制御部と、
    前記状態管理情報に応じて、自身の演算処理装置以外の演算処理装置に対するコマンドを発行するコマンド実行部と、
    自身の演算処理装置以外の演算処理装置のコマンド実行部から発行されたコマンドを実行するキャッシュ制御部と、をそれぞれ備え、
    第1の演算処理装置のリクエスト生成部は、
    第2の演算処理装置が管理するメモリ上の前記データにアクセスをしてエラーを検出した場合、前記データに対する前記状態管理情報の更新を、前記第2の演算処理装置に指示し、
    前記第2の演算処理装置のコマンド実行部は、自ノードまたは他ノードの他の演算処理
    装置に対して、持ち出した前記データの破棄を指示するコマンドを発行し、
    前記データを持ち出している演算処理装置の前記キャッシュ制御部は、前記データの破棄を指示するコマンドを受け取ると、持ち出した前記データを破棄し、破棄の結果を前記第2の演算処理装置に送信し、
    前記第2の演算処理装置の前記ディレクトリ制御部は、前記データを持ち出している演算処理装置から受け取った前記破棄の結果に基づいて、前記データに対する前記状態管理情報を更新する、
    情報処理装置。
  10. それぞれのメモリおよびキャッシュを管理する演算処理装置を複数備える情報処理システムにおいて、
    前記演算処理装置は、
    検出したエラーへの対応を指示するリクエスト生成部と、
    前記メモリ上の所定単位のデータごとに管理される状態管理情報を更新するディレクトリ制御部と、
    前記状態管理情報に応じて、自身の演算処理装置以外の演算処理装置に対するコマンドを発行するコマンド実行部と、
    自身の演算処理装置以外の演算処理装置のコマンド実行部から発行されたコマンドを実行するキャッシュ制御部と、をそれぞれ備え、
    第1の演算処理装置のリクエスト生成部は、
    第2の演算処理装置が管理するメモリ上の前記データにアクセスをしてエラーを検出した場合、前記データに対する前記状態管理情報の更新を、前記第2の演算処理装置に指示し、
    前記第2の演算処理装置のコマンド実行部は、自身の演算処理装置以外の演算処理装置に対して、持ち出した前記データの破棄を指示するコマンドを発行し、
    前記データを持ち出している演算処理装置の前記キャッシュ制御部は、前記データの破棄を指示するコマンドを受け取ると、持ち出した前記データを破棄し、破棄の結果を前記第2の演算処理装置に送信し、
    前記第2の演算処理装置の前記ディレクトリ制御部は、前記データを持ち出している演算処理装置から受け取った前記破棄の結果に基づいて、前記データに対する状態管理情報を更新する、
    情報処理システム。
JP2015154137A 2015-08-04 2015-08-04 情報処理システム、情報処理方法、情報処理プログラムおよび情報処理装置 Active JP6551024B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2015154137A JP6551024B2 (ja) 2015-08-04 2015-08-04 情報処理システム、情報処理方法、情報処理プログラムおよび情報処理装置
US15/221,633 US10210094B2 (en) 2015-08-04 2016-07-28 Information processing system, information processing method and information processing apparatus

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2015154137A JP6551024B2 (ja) 2015-08-04 2015-08-04 情報処理システム、情報処理方法、情報処理プログラムおよび情報処理装置

Publications (2)

Publication Number Publication Date
JP2017033384A true JP2017033384A (ja) 2017-02-09
JP6551024B2 JP6551024B2 (ja) 2019-07-31

Family

ID=57988161

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2015154137A Active JP6551024B2 (ja) 2015-08-04 2015-08-04 情報処理システム、情報処理方法、情報処理プログラムおよび情報処理装置

Country Status (2)

Country Link
US (1) US10210094B2 (ja)
JP (1) JP6551024B2 (ja)

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH1055313A (ja) * 1996-08-08 1998-02-24 Fujitsu Ltd マルチプロセッサ装置,マルチプロセッサ装置のメモリアクセス方法,データ転送システムにおける送信装置及び受信装置,データ転送システム並びにデータ転送システムのバス制御方法
JP2008046701A (ja) * 2006-08-11 2008-02-28 Nec Computertechno Ltd マルチプロセッサシステム及びその動作方法
JP2009116681A (ja) * 2007-11-07 2009-05-28 Nec Corp マルチプロセッサシステム、マイクロプロセッサ、及びマイクロプロセッサの障害処理方法
US20130170334A1 (en) * 2011-12-28 2013-07-04 Fujitsu Limited Information processing apparatus, computer-readable recording medium, and control method

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6031992A (en) * 1996-07-05 2000-02-29 Transmeta Corporation Combining hardware and software to provide an improved microprocessor
US6415364B1 (en) * 1997-12-31 2002-07-02 Unisys Corporation High-speed memory storage unit for a multiprocessor system having integrated directory and data storage subsystems
US6272662B1 (en) * 1998-08-04 2001-08-07 International Business Machines Corporation Distributed storage system using front-end and back-end locking
US7779148B2 (en) * 2008-02-01 2010-08-17 International Business Machines Corporation Dynamic routing based on information of not responded active source requests quantity received in broadcast heartbeat signal and stored in local data structure for other processor chips
JP5404804B2 (ja) * 2009-05-25 2014-02-05 株式会社日立製作所 ストレージサブシステム
JP5573829B2 (ja) 2011-12-20 2014-08-20 富士通株式会社 情報処理装置およびメモリアクセス方法
US8799710B2 (en) * 2012-06-28 2014-08-05 International Business Machines Corporation 3-D stacked multiprocessor structures and methods to enable reliable operation of processors at speeds above specified limits
JP5800058B2 (ja) 2014-05-26 2015-10-28 富士通株式会社 情報処理装置、制御方法および制御プログラム

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH1055313A (ja) * 1996-08-08 1998-02-24 Fujitsu Ltd マルチプロセッサ装置,マルチプロセッサ装置のメモリアクセス方法,データ転送システムにおける送信装置及び受信装置,データ転送システム並びにデータ転送システムのバス制御方法
US6038674A (en) * 1996-08-08 2000-03-14 Fujitsu Limited Multiprocessor, memory accessing method for multiprocessor, transmitter and receiver in data transfer system, data transfer system, and bus control method for data transfer system
JP2008046701A (ja) * 2006-08-11 2008-02-28 Nec Computertechno Ltd マルチプロセッサシステム及びその動作方法
JP2009116681A (ja) * 2007-11-07 2009-05-28 Nec Corp マルチプロセッサシステム、マイクロプロセッサ、及びマイクロプロセッサの障害処理方法
US20130170334A1 (en) * 2011-12-28 2013-07-04 Fujitsu Limited Information processing apparatus, computer-readable recording medium, and control method
JP2013140445A (ja) * 2011-12-28 2013-07-18 Fujitsu Ltd 情報処理装置、制御方法および制御プログラム

Also Published As

Publication number Publication date
US20170039096A1 (en) 2017-02-09
JP6551024B2 (ja) 2019-07-31
US10210094B2 (en) 2019-02-19

Similar Documents

Publication Publication Date Title
JP6328134B2 (ja) クラスタ化されたコンピュータ・システムで通信チャネルのフェイルオーバを実行する方法、装置、およびプログラム
US9065706B2 (en) Information processing apparatus, computer-readable recording medium, and control method
US8286031B2 (en) Highly reliable storage system and internal network thereof
JP6882662B2 (ja) マイグレーションプログラム、情報処理装置およびマイグレーション方法
TWI782487B (zh) 利用索引物件來進行簡易儲存服務無縫遷移的方法、主裝置以及儲存伺服器
JP2017227969A (ja) 制御プログラム、システム、及び方法
TW201337938A (zh) 資訊處理裝置及控制方法
JP2008269142A (ja) ディスクアレイ装置
JP2014044472A (ja) ガーベジコレクションのための情報処理方法、プログラム及び装置
US9632934B2 (en) Maintaining coherence when removing nodes from a directory-based shared memory system
US20050102477A1 (en) Multiprocessor system
US20050198438A1 (en) Shared-memory multiprocessor
JP2005122453A (ja) ストレージ装置のディスクコントローラ制御方式およびストレージ装置
US20160196087A1 (en) Node Controller and Method for Responding to Request Based on Node Controller
JP6551024B2 (ja) 情報処理システム、情報処理方法、情報処理プログラムおよび情報処理装置
CN104050093A (zh) 用于追踪统一虚拟存储器系统中的页面故障的故障缓冲区
JP6337607B2 (ja) 情報処理装置、共有メモリ管理方法及び共有メモリ管理プログラム
JP4259390B2 (ja) 並列演算処理装置
CN104049904A (zh) 用于管理统一虚拟存储器的页面状态目录
JP7299724B2 (ja) メモリシステム及びその動作方法
US20120159087A1 (en) Ensuring Forward Progress of Token-Required Cache Operations In A Shared Cache
JP2016012278A (ja) 情報処理システムの試験方法、情報処理システム、および試験プログラム
TWI805380B (zh) 利用索引物件來進行簡易儲存服務無縫遷移的方法、主裝置以及儲存伺服器
JP2005208972A (ja) コンピュータ装置及びシステム
JP2013206395A (ja) 演算処理装置、演算処理装置の制御方法及び情報処理装置

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20180413

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20180928

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20181023

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20181220

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20190617

R150 Certificate of patent or registration of utility model

Ref document number: 6551024

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150