説明

マルチプロセッサシステム及びメモリコントロール/コヒーレンシ制御装置並びにコヒーレンシ保証方法

【課題】キャッシュを搭載したCPUを複数備えたマルチプロセッサシステムにおいて、タグメモリのエントリに訂正不可能障害が発生した場合であっても、データのコヒーレンシを保証し、動作を継続できるようにする。
【解決手段】タグ部13内のタグメモリには、各キャッシュ15に格納されているデータの上位アドレスと、そのデータが最新データであるか否かを示すステータスとが、上記データの下位アドレスに対応するエントリに格納されている。トランザクションの下位アドレスによってタグメモリから索引されたタグ索引結果に訂正不可能障害があることが検出されると、コヒーレンシ制御部107は、各CPU11に対して、キャッシュ15に格納されているデータの内の、下位アドレスがタグ索引時に用いられた下位アドレスと一致する全てのデータを主記憶装置14に掃き出すことを指示する。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、キャッシュメモリを搭載したCPUを複数備えた分散共有メモリ型マルチプロセッサシステム等のマルチプロセッサシステムに関し、特に、データのコヒーレンシを保証するために設けられているタグメモリから読み出されたタグ索引結果に訂正不可能障害がある場合であっても、システムダウンに陥らないようにすることができるタグ障害時のコヒーレンシ保証技術に関する。
【背景技術】
【0002】
従来からキャッシュメモリが搭載されたCPUを複数備えたマルチプロセッサシステムでは、データのコヒーレンシを保証するためにタグメモリが利用されている(例えば、特許文献1参照)。特許文献1では、複数のノードを備え、且つ各ノードがキャッシュメモリを搭載したCPUと各ノードによって共有される主記憶装置とを備えた分散共有メモリ型系列計算機におけるデータのコヒーレンシを保証するために、各ノードにタグメモリを設けている。この特許文献1に記載されているタグメモリは、主記憶装置のブロック毎のエントリを有し、各エントリには、対応するブロックの最新データが主記憶装置上にあるのか、キャッシュメモリ上にあるのか、キャッシュメモリ上にあり且つ更新されているのかを示す状態情報と、データを保持しているCPUのIDとが登録されている。そして、自CPU上のキャッシュメモリに存在しないデータをアクセスする際、タグメモリを引けば、最新データが、主記憶装置上に存在するのか、他のCPU内のキャッシュメモリ上に存在するのかが分かるので、最新データをアクセスすることができ、データのコヒーレンシを保証することができる。
【0003】
一方、キャッシュメモリのアドレスアレイに登録するデータにECC(error correcting code)等の誤り訂正符号を付加し、アドレスアレイから読み出されたデータに障害があった場合、アドレスアレイの上記データを読み出したエントリを無効化すると共に、訂正したデータを利用して、無効化したエントリに対応するキャッシュメモリ上のデータを主記憶装置に書き戻す技術も従来から知られている(例えば、特許文献2参照)。
【0004】
【特許文献1】特開2002−24198号公報
【特許文献2】特開平9−146836号公報
【発明の開示】
【発明が解決しようとする課題】
【0005】
ところで、特許文献1に記載されている従来の技術によれば、タグメモリを参照することにより、最新データの所在が分かるので、データのコヒーレンシを保証することができる。しかし、タグメモリに障害が発生し、タグ索引結果に誤りが発生した場合には、どこに最新データが存在するのか分からなくなってしまうため、データのコヒーレンシを保証することができなくなり、システムダウンとなってしまう。
【0006】
そこで、特許文献2に記載されている従来の技術を、特許文献1に記載されている従来の技術に適用するということが考えられる。このようにすることにより、検出された障害が1ビットエラー等の訂正可能障害である場合は、訂正されたタグ索引結果を利用して動作を継続することが可能になる。しかし、検出された障害が2ビットエラー等の訂正不可能障害である場合には、最新データがどこに存在するのかが分からなくなってしまうため、システムダウンとなってしまう。
【0007】
〔発明の目的〕
そこで、本発明の目的は、タグメモリから読み出されたタグ索引結果に訂正不可能障害がある場合であっても、動作を継続できるようにすることにある。
【課題を解決するための手段】
【0008】
本発明にかかる第1のマルチプロセッサシステムは、
主記憶装置と、
該主記憶装置に格納されているデータの一部の写しが格納されたキャッシュメモリを搭載した複数のCPUと、
前記各キャッシュメモリ内のデータの状態を管理するタグメモリを有し、該タグメモリを用いてデータのコヒーレンシを保証するメモリコントロール/コヒーレンシ制御装置とを備え、
該メモリコントロール/コヒーレンシ制御装置が、前記タグメモリから索引されたタグ索引結果に訂正不可能障害を検出した場合、前記各CPUに対して、前記訂正不可能障害が検出されたタグ索引結果に関連する可能性がある全てのデータを主記憶装置に掃き出すように指示することを特徴とする。
【0009】
本発明にかかる第2のマルチプロセッサシステムは、第1のマルチプロセッサシステムにおいて、
前記メモリコントロール/コヒーレンシ制御装置が、
前記各キャッシュメモリに格納されているデータの上位アドレスと、そのデータが最新データであるか否かを示すステータスとが、前記データの下位アドレスに対応するエントリに格納されたタグメモリと、
トランザクションの下位アドレスによって前記タグメモリから索引されたタグ索引結果に訂正不可能障害があるか否かをチェックする障害チェック回路と、
該障害チェック回路で前記タグ索引結果に訂正不可能障害があると判断された場合、前記各CPUに対して、キャッシュメモリに格納されているデータの内の、下位アドレスがタグ索引時に用いられた下位アドレスと一致する全てのデータを主記憶装置に掃き出すことを指示するコヒーレンシ制御部とを備えたことを特徴とする。
【0010】
本発明にかかる第3のマルチプロセッサシステムは、第2のマルチプロセッサシステムにおいて、
前記コヒーレンシ制御部が、全ての上位アドレスについて、その上位アドレスと前記タグ索引時に使用された下位アドレスとを含むスワップトランザクションを生成し、該生成したスワップトランザクションを前記各CPUに対して発行することを特徴とする。
【0011】
本発明にかかる第4のマルチプロセッサシステムは、第2のマルチプロセッサシステムにおいて、
前記コヒーレンシ制御部が、全ての上位アドレスについて、その上位アドレスと前記タグ索引時に使用された下位アドレスとを含むスワップトランザクションを生成し、該生成したスワップトランザクションを前記各CPUが通常処理を行っていないときに、前記各CPUに対して発行することを特徴とする。
【0012】
本発明にかかる第5のマルチプロセッサシステムは、第2のマルチプロセッサシステムにおいて、
サービスプロセッサを備え、前記障害チェック回路で前記タグ索引結果に訂正不可能障害があると判断された場合、前記サービスプロセッサが前記コヒーレンシ制御部の代わりに、前記各CPUに対して、キャッシュメモリに格納されているデータの内の、下位アドレスがタグ索引時に用いられた下位アドレスと一致する全てのデータを主記憶装置に掃き出すように指示することを特徴とする。
【0013】
本発明にかかる第6のマルチプロセッサシステムは、第2のマルチプロセッサシステムにおいて、
前記コヒーレンシ制御部が、
前記障害チェック回路で前記タグ索引結果に訂正不可能障害があると判断され、且つ前記タグメモリの内容に基づいてキャッシュメモリ上に前記トランザクションがアクセス対象にしている最新データが存在すると確定できない場合は、直ちに、前記トランザクションのフルアドレスを含むスワップトランザクションを前記各CPUに対して発行し、その後、全ての上位アドレスについて、その上位アドレスと前記トランザクションの下位アドレスとを含むスワップトランザクションを生成し、前記各CPUが通常処理を行っていないとき、前記生成したスワップトランザクションを前記各CPUに対して発行し、前記障害チェック回路で前記タグ索引結果に訂正不可能障害があると判断され、且つ前記タグメモリの内容に基づいてキャッシュメモリ上に前記トランザクションがアクセス対象にしている最新データが存在すると確定できた場合は、全ての上位アドレスについて、その上位アドレスと前記トランザクションの下位アドレスとを含むスワップトランザクションを生成し、前記各CPUが通常処理を行っていないとき、前記生成したスワップトランザクションを前記各CPUに対して発行することを特徴とする。
【0014】
本発明にかかる第1のメモリコントロール/コヒーレンシ制御装置は、
主記憶装置と、該主記憶装置に格納されているデータの一部の写しが格納されたキャッシュメモリを搭載した複数のCPUとを備えたマルチプロセッサシステムにおけるデータのコヒーレンシを、前記各キャッシュメモリ内のデータの状態を管理するタグメモリを利用して保証するメモリコントロール/コヒーレンシ制御装置であって、
前記タグメモリから索引されたタグ索引結果に訂正不可能障害を検出した場合、前記各CPUに対して、前記訂正不可能障害が検出されたタグ索引結果に関連する可能性がある全てのデータを主記憶装置に掃き出すことを指示する構成を有する。
【0015】
本発明にかかる第2のメモリコントロール/コヒーレンシ制御装置は、第1のメモリコントロール/コヒーレンシ制御装置において、
前記各キャッシュメモリに格納されているデータの上位アドレスと、そのデータが最新データであるか否かを示すステータスとが、前記データの下位アドレスに対応するエントリに格納されたタグメモリと、
トランザクションの下位アドレスによって前記タグメモリから索引されたタグ索引結果に訂正不可能障害があるか否かをチェックする障害チェック回路と、
該障害チェック回路で前記タグ索引結果に訂正不可能障害があると判断された場合、前記各CPUに対して、キャッシュメモリに格納されているデータの内の、下位アドレスがタグ索引時に用いられた下位アドレスと一致する全てのデータを主記憶装置に掃き出すことを指示するコヒーレンシ制御部とを備えたことを特徴とする。
【0016】
本発明にかかる第3のメモリコントロール/コヒーレンシ制御装置は、第2のメモリコントロール/コヒーレンシ制御装置において、
前記コヒーレンシ制御部が、全ての上位アドレスについて、その上位アドレスと前記タグ索引時に使用された下位アドレスとを含むスワップトランザクションを生成し、該生成したスワップトランザクションを前記各CPUに対して発行することを特徴とする。
【0017】
本発明にかかる第4のメモリコントロール/コヒーレンシ制御装置は、第2のメモリコントロール/コヒーレンシ制御装置において、
前記コヒーレンシ制御部が、全ての上位アドレスについて、その上位アドレスと前記タグ索引時に使用された下位アドレスとを含むスワップトランザクションを生成し、該生成したスワップトランザクションを前記各CPUが通常処理を行っていないときに、前記各CPUに対して発行することを特徴とする。
【0018】
本発明にかかる第5のメモリコントロール/コヒーレンシ制御装置は、第2のメモリコントロール/コヒーレンシ制御装置において、
前記コヒーレンシ制御部が、
前記障害チェック回路で前記タグ索引結果に訂正不可能障害があると判断され、且つ前記タグメモリの内容に基づいてキャッシュメモリ上に前記トランザクションがアクセス対象にしている最新データが存在すると確定できない場合は、直ちに、前記トランザクションのフルアドレスを含むスワップトランザクションを前記各CPUに対して発行し、その後、全ての上位アドレスについて、その上位アドレスと前記トランザクションの下位アドレスとを含むスワップトランザクションを生成し、前記各CPUが通常処理を行っていないとき、前記生成したスワップトランザクションを前記各CPUに対して発行し、前記障害チェック回路で前記タグ索引結果に訂正不可能障害があると判断され、且つ前記タグメモリの内容に基づいてキャッシュメモリ上に前記トランザクションがアクセス対象にしている最新データが存在すると確定できた場合は、全ての上位アドレスについて、その上位アドレスと前記トランザクションの下位アドレスとを含むスワップトランザクションを生成し、前記各CPUが通常処理を行っていないとき、前記生成したスワップトランザクションを前記各CPUに対して発行することを特徴とする。
【0019】
本発明にかかる第1のコヒーレンシ保証方法は、
主記憶装置と、該主記憶装置に格納されているデータの一部の写しが格納されたキャッシュメモリを搭載した複数のCPUとを備えたマルチプロセッサシステムにおけるデータのコヒーレンシを保証するコヒーレンシ保証方法であって、
前記各キャッシュメモリ内のデータの状態を管理するタグメモリから索引されたタグ索引結果に訂正不可能障害を検出した場合、前記各CPUに対して、前記訂正不可能障害が検出されたタグ索引結果に関連する可能性がある全てのデータを主記憶装置に掃き出すように指示することを特徴とする。
【0020】
本発明にかかる第2のコヒーレンシ保証方法は、
主記憶装置と、該主記憶装置に格納されているデータの一部の写しが格納されたキャッシュメモリを搭載した複数のCPUとを備えたマルチプロセッサシステムにおけるデータのコヒーレンシを保証するコヒーレンシ保証方法であって、
各キャッシュメモリに格納されているデータの上位アドレスと、そのデータが最新データであるか否かを示すステータスとが前記データの下位アドレスに対応するエントリに格納されたタグメモリを、トランザクションの下位アドレスによって索引することにより得られたタグ索引結果に訂正不可能障害が検出された場合、前記各CPUに対して、キャッシュメモリに格納されているデータの内の、下位アドレスがタグ索引時に用いられた下位アドレスと一致する全てのデータを主記憶装置に掃き出すことを指示し、該指示に従って前記各CPUが該当するデータを前記主記憶装置に掃き出すことを特徴とする。
【0021】
〔作用〕
メモリコントロール/コヒーレンシ制御装置は、各キャッシュメモリ内のデータの状態を管理するタグメモリから索引されたタグ索引結果に訂正不可能障害を検出した場合、各CPUに対して、訂正不可能障害が検出されたタグ索引結果に関連する可能性がある全てのデータを主記憶装置に掃き出すように指示する。より具体的には、各CPU上のキャッシュメモリに格納されているデータの上位アドレスと、そのデータが最新データであるか否かを示すステータスとが、データの下位アドレスに対応するエントリに格納されたタグメモリを、トランザクションの下位アドレスによって索引することにより得られたタグ索引結果に訂正不可能障害が検出された場合、メモリコントロール/コヒーレンシ制御装置は、各CPUに対して、キャッシュメモリに格納されているデータの内の、下位アドレスがタグ索引時に用いられた下位アドレスと一致する全てのデータを主記憶装置に掃き出すことを指示する。この指示に従って各CPUは、自CPU上のキャッシュメモリに格納されている該当データを主記憶装置に掃き出す。タグメモリの或るエントリに訂正不可能障害が発生すると、そのエントリによって最新データがキャッシュメモリ上であるのか否かが管理されていたデータについては、最新データがキャッシュメモリ上にあるのか主記憶装置上にあるのかが分からなくなってしまうが、上記したように、各CPUのキャッシュメモリに格納されているデータの内の、下位アドレスがタグ索引時に用いられた下位アドレスと一致する全てのデータを主記憶装置に掃き出すようにすることにより、最新データは、必ず主記憶装置上に存在することになるので、データのコヒーレンシを保証することができる。
【発明の効果】
【0022】
本発明によれば、タグメモリから読み出されたタグ索引結果に訂正不可能障害が検出された場合であっても、データのコヒーレンシを保証することができるので、動作を継続することが可能になる。その理由は、タグメモリから索引されたタグ索引結果に訂正不可能障害を検出した場合、各CPUに対して、訂正不可能障害が検出されたタグ索引結果に関連する可能性がある全てのデータを主記憶装置に掃き出すことを指示するメモリコントロール/コヒーレンシ制御装置を備えているからである。
【発明を実施するための最良の形態】
【0023】
次に、発明を実施するための最良の形態について図面を参照して詳細に説明する。
【0024】
〔第1の実施の形態の構成の説明〕
図1は本発明にかかる分散共有メモリ型マルチプロセッサシステムの第1の実施の形態の構成例を示すブロック図である。図1を参照すると、本実施の形態の分散共有メモリ型マルチプロセッサシステムは、複数のセル(ノード)10を備え、それらは第二、第三インタフェース21、22を介して相互に接続されている。
【0025】
各セル10は、それぞれストアイン方式のキャッシュメモリ(キャッシュ)15が搭載された複数のCPU(中央処理装置)11と、タグ部13を有するメモリコントロール/コヒーレンシ制御装置12と、主記憶装置14とを備えており、CPU11とメモリコントロール/コヒーレンシ制御装置12とは第一インタフェース20を介して相互に接続されている。各セル10内の主記憶装置14は、全てのセル10からアクセス可能になっている。
【0026】
各セル10内のメモリコントロール/コヒーレンシ制御装置12に設けられているタグ部13には、そのセル10内のキャッシュ15に格納されているデータが最新データであるか否かを示すステータスが登録されている。
【0027】
図2にタグ部13の構成例を示す。同図を参照すると、タグ部13は、タグメモリ131と、ECCチェック&訂正回路132と、比較回路133とを備えている。
【0028】
タグメモリ131は、データの下位アドレス毎のエントリを複数レベル有しており、各エントリには、そのエントリが使用可能であるか否かを示すエントリ使用不可フラグFと、キャッシュ15に格納されているデータの上位アドレスと、上記データが最新データであるか否かを示すステータスと、ECCとが登録されている。そして、アクセス対象データの下位アドレスが入力されることにより、上記下位アドレスによって選択されたエントリに格納されている情報をタグ索引結果として出力する。
【0029】
ECCチェック&訂正回路132は、タグメモリ131の各レベル毎に存在し、対応するレベルのタグ索引結果に対するECCチェック及び訂正を行う。より具体的には、各レベルのECCチェック&訂正回路132は、それぞれタグメモリ131から読み出された対応するレベルのタグ索引結果に対してECCチェックを行う。そして、エラーが無い場合は、タグメモリ131から読み出されたタグ索引結果を出力し、訂正可能なエラーを検出した場合には、訂正後のタグ索引結果と訂正可能情報(索引時に使用されたアクセス対象データの下位アドレスと、自回路132のレベルとを含む)とを出力し、訂正不可能なエラーを検出した場合には、訂正不可能情報(索引時に使用されたアクセス対象データの下位アドレスと、自回路132のレベルとを含む)を出力する。
【0030】
比較回路133は、各レベルのECCチェック&訂正回路132から出力されたタグ索引結果中の上位アドレスと、タグ索引時に使用したアクセス対象データの上位アドレスとを比較し、両者が等しいタグ索引結果があれば、それを第三インタフェース22に出力する。但し、ECCチェック&訂正回路132の出力の中に訂正不可能情報が存在する場合は、訂正不可能情報も第三インタフェース22に出力し、訂正可能情報が存在する場合は、訂正可能情報と訂正後のタグ索引結果との対も第三インタフェース22に出力する。なお、第三インタフェース22は、各セル10毎に、使用するビット位置が決められており、そのビット位置に基づいてどのセル10が出力した情報なのかを特定できるようになっている。
【0031】
図3は、メモリコントロール/コヒーレンシ制御装置12の構成例を示すブロック図である。同図を参照すると、メモリコントロール/コヒーレンシ制御装置12は、第二インタフェース出力調停部101と、タグ部13及びメイン制御部103を有するメインパイプ102と、タグスワップ制御部104と、比較回路105と、タグ書き戻し制御部106と、コヒーレンシ制御部107と、主記憶アクセス制御部108とを備えている。なお、図3において、他の図1と同一符号は、同一部分を表している。
【0032】
第二インタフェース出力調停部101は、その内部にCPU11や図示を省略した入出力装置から送られてきたトランザクション(ライト命令やリード命令などの命令)を複数個格納できるレジスタ(図示せず)を備えており、上記レジスタに格納されたトランザクションを順次第二インタフェース21に出力する。但し、メイン制御部103からパス220を介してスワップ処理中であることを示すスワップ処理中信号が入力されている間は、現在出力中のトランザクション(レジスタの先頭部分にセットされているトランザクション)を第二インタフェース21に出力し続ける。また、各セル10は、第二インタフェース21を時分割して使用しており、各セル10内の第二インタフェース出力調停部101は、自セルに割り当てられたタイミングにおいてトランザクションを第二インタフェース21に出力する。
【0033】
第二インタフェース21には、分散共有メモリ型マルチプロセッサシステムを構成する全てのセル10が接続されており、各セル10内のメインパイプ102は、パス212を介して第二インタフェース21上のトランザクションを同時に受信する。このパス212を介して受信したトランザクションは、タグ部13及びメイン制御部103に供給される。
【0034】
メインパイプ102内のタグ部13は、パス212を介してトランザクションが入力されると、前述したように、上位アドレスが一致したタグ索引結果、訂正可能情報と訂正後のタグ索引結果との対、訂正不可能情報などを第三インタフェース22に出力する。
【0035】
第三インタフェース22にも、分散共有メモリ型マルチプロセッサシステムを構成する全てのセル10が接続されており、各セル10内のメインパイプ102は、パス214を介して第三インタフェース22上のタグ索引結果、訂正可能情報と訂正後のタグ索引結果との対、訂正不可能情報などを同時に受信する。
【0036】
メインパイプ102内のメイン制御部103は、パス214を介して第三インタフェース22から受信した情報に基づいて、既にパス212を介して受け付けているトランザクションに対する処理を、次のように決定する。
【0037】
・パス214を介して第三インタフェース22から受信した情報に基づいて、自セル10内のタグ部13が正常であり、且つ、パス212を介して既に受信しているトランザクションがアクセス対象にしているデータ(最新データ)を格納しているキャッシュ15が存在しないと判断した場合は、上記トランザクションを自セル10内の主記憶アクセス制御部108に送る。これにより、主記憶アクセス制御部108は、上記トランザクションがアクセス対象にしているデータが、自セル10内の主記憶装置14に存在する場合は、上記データをアクセスする。即ち、上記トランザクションがライトトランザクションであれば、それに従ってデータを書き換え、リードトランザクションであれば、該当データを図示を省略したデータバスに出力する。
・パス214を介して第三インタフェース22から受信した情報に基づいて、自セル10内のタグ部13が正常であり、且つ、パス212を介して既に受信しているトランザクションがアクセス対象にしているデータが、自セル10内のキャッシュ15上に存在すると判断した場合は、コヒーレンシ制御部107を介して、自セル10内の各CPU11に、上記トランザクションを送信する。各CPU11は、自CPU11内のキャッシュ15にアクセス対象にしているデータが存在する場合は、上記データをアクセスする。
・パス214を介して第三インタフェース22から受信した情報に基づいて、自セル10内のタグ部13に訂正可能障害が発生していると判断した場合、即ち、第三インタフェース22の自セル10に割り当てられているビットを介して訂正可能情報と訂正後のタグ索引結果との対を受信した場合は、タグスワップ制御部104に対して上記訂正可能情報に含まれていたアクセス対象データの下位アドレス(タグ索引時に使用したトランザクションの下位アドレス)を登録する処理と、タグ書き戻し制御部106に対して上記訂正可能情報に含まれていた下位アドレスと障害を検出したECCチェック&訂正回路132のレベルとを登録する処理と、コヒーレンシ制御部107に対して上記訂正可能情報に含まれていた下位アドレスと上記訂正後のタグ索引結果に含まれていた上位アドレスとを登録してスワップトランザクションの発行を指示する処理とを行う。
・パス214を介して第三インタフェース22から受信した情報に基づいて、自セル10内のタグ部13に訂正不可能障害が発生していると判断した場合、即ち、第三インタフェース22の自セル10に割り当てられているビットを介して訂正不可能情報を受信した場合は、タグスワップ制御部104に対して上記訂正不可能情報に含まれていたアクセス対象データの下位アドレスを登録する処理と、タグ書き戻し制御部106に対して上記訂正不可能情報に含まれていた下位アドレスと障害を検出したECCチェック&訂正回路132のレベルとを登録する処理と、コヒーレンシ制御107に対して訂正不可能情報に含まれていた下位アドレスを登録してスワップトランザクションの発行を指示する処理とを行う。
【0038】
また、メイン制御部103は、訂正可能情報または訂正不可能情報に含まれていた下位アドレスをタグスワップ制御部104に登録すると、後述するスワップ処理が完了するまで、次のような処理を行う。タグスワップ制御部104に登録されている下位アドレスと、第二インタフェース21に出力されたトランザクションの下位アドレスとを比較する比較回路105により、両者が一致することが検出され、且つ、上記トランザクションの発行元が自セル10である場合は、パス220を介して第二インタフェース出力調停部101にスワップ処理中信号を送る。また、上記トランザクションの発行元が他のセル10であった場合は、第三インタフェース22を介して発行元のセル10にトランザクションをキャンセルしたことを示すキャンセル信号を送る。これは、スワップ処理中に、下位アドレスがタグスワップ制御部104に登録されている下位アドレスと同一のトランザクションが発行された場合にもコヒーレンシを保証できるようにするためである。
【0039】
コヒーレンシ制御部107は、メイン制御部103からスワップトランザクションの発行が指示されると、パス219を介して自セル10内の各CPU11にスワップトランザクションを発行する。その際、メイン制御部103により、下位アドレス及び上位アドレスが登録されている場合(タグ部13に発生した障害が訂正可能障害の場合)は、上記下位アドレスと上位アドレスとを含むスワップトランザクションを発行し、下位アドレスしか登録されていない場合(タグ部13に発生した障害が訂正不可能障害の場合)は、全ての上位アドレスそれぞれについて、その上位アドレスと上記下位アドレスとを含むスワップトランザクションを生成し、生成した各スワップトランザクションを発行する。例えば、上位アドレスがkビットであるとすると、2k個のスワップトランザクションを発行することになる。
【0040】
各CPU11は、スワップトランザクションを受け取ると、キャッシュ15内に該当するデータが存在するか否かを調べ、存在しない場合には、パス210→パス211→第二インタフェース21→パス212の経路でメインパイプ102に該当するデータが存在しなかったことを示すリプライトランザクションを返す。これに対して、キャッシュ15内に該当するデータが存在していた場合は、キャッシュ掃き出し処理を行い、キャッシュ15に格納されていた該当するデータを主記憶装置14に書き戻すと共に、上記した経路でメインパイプ102に対してキャッシュ掃き出し処理が完了したことを示すリプライトランザクションを返す。
【0041】
これらのリプライトランザクションを契機にして、メイン制御部103は、タグスワップ制御部104に登録した下位アドレスを消去する。これにより、メインパイプ102上でキャンセルされていた同一アドレストランザクションはキャンセル状態から開放され通常動作に戻ることができる。また、メイン制御部103は、CPU11からのリプライトランザクションを契機にしてタグ書き戻し制御部106に対してエントリ使用不可フラグの生成を指示する。これにより、タグ書き戻し制御部106は、メイン制御部103によって登録されている下位アドレスとレベルとによって特定される、タグメモリ131の障害エントリのエントリ使用不可フラグに“1”(使用不可を示す)をセットする。これ以後のタグ索引トランザクションがタグ索引した場合に、エントリ使用不可フラグ=“1”のレベルを参照するとそのレベルは無効であると判断し使用しない。
【0042】
〔第1の実施の形態の動作の説明〕
次に、図1〜図5を参照して本実施の形態の動作について詳細に説明する。なお、図4は主にタグメモリ131に訂正可能障害が発生したときの処理例を示すフローチャート、図5は主にタグメモリ131に訂正不可能障害が発生したときの処理例を示すフローチャートである。
【0043】
各セル10内の各CPU11は、データアクセス時、自CPU11内のキャッシュ15にアクセス対象データが存在しない場合は、アクセス対象データのアドレスを含むトランザクションを、第二インタフェース出力調停部101を介して第二インタフェース21に出力する。
【0044】
各セル10では、第二インタフェース21を介して上記トランザクションを受け取ると、それに含まれているアドレスの下位アドレスでタグ索引を行う(図4のステップ4−1)。これにより、タグメモリ131の上記下位アドレスに対応する各レベルのエントリからタグ索引結果が読み出され、ECCチェック&訂正回路132において障害チェックが行われる。ECCチェック&訂正回路132は、障害が無いと判断した場合は、タグ索引結果をそのまま出力し、訂正可能な障害があると判断した場合は、訂正後のタグ索引結果と訂正可能情報(下位アドレスとレベルとを含む)との対を出力し、訂正不可能な障害があると判断した場合は、訂正不可能情報(下位アドレスとレベルとを含む)を出力する。比較回路133は、各レベルのタグ索引結果の内の、上位アドレスがアクセス対象データの上位アドレスと一致するタグ索引結果を第三インタフェース22に出力する。また、各レベルのECCチェック&訂正回路132の出力の中に、訂正可能情報が含まれている場合は、訂正可能情報と訂正後のタグ索引結果との対も第三インタフェース22に出力し、訂正不可能信号が含まれている場合は、それも第三インタフェース22に出力する。
【0045】
各セル10内のメイン制御部103は、第三インタフェース22を介して受信した情報に基づいて自セル10内のタグ部13に障害がないと判断した場合、通常動作を行う(ステップ4−2がNO、4−3)。また、自セル10内のタグ部13に訂正不可能障害が発生したと判断した場合(ステップ4−2がYES、4−4がNO)は、ステップ4−16の処理に進む。また、自セル10内のタグ部13に訂正可能障害が発生したと判断した場合(ステップ4−2がYES、4−4がYES)は、以下の処理を行う。
【0046】
メイン制御部103は、訂正可能情報と訂正後のタグ索引結果を受信すると、訂正可能情報に含まれている下位アドレス(タグ索引時に使用された下位アドレス)をタグスワップ制御部104に登録する処理(ステップ4−5)と、訂正可能情報に含まれている下位アドレス及びレベルをタグ書き戻し制御部106に登録する処理(ステップ4−7)と、訂正可能情報に含まれている下位アドレスと訂正後のタグ索引結果に含まれている上位アドレスとをコヒーレンシ制御部107に登録してスワップトランザクションの発行を指示する処理(ステップ4−10)とを行う。なお、ステップ4−7の処理は行わないようにしても良い。当然この場合は、ステップ4−8、4−9の処理も行わない。
【0047】
ステップ4−5でタグスワップ制御部104に下位アドレスを登録した後、比較回路105の出力が比較一致を示すものになると、メイン制御部103は、第二インタフェース21上のトランザクションの発行元が自セル10であれば、パス220を介して第二インタフェース出力調停部101にスワップ処理中信号を出力し、発行元が他セル10であれば、第三インタフェース22を介して発行元のセル10にキャンセル情報を送る(ステップ4−14)。なお、タグ部13は、比較回路105に出力が比較一致を示している間は、タグ索引を行わない。
【0048】
一方、コヒーレンシ制御部107は、ステップ4−10において、下位アドレス及び上位アドレスが登録され、スワップトランザクションの発行が指示されると、上記下位アドレス及び上記上位アドレスを含んだスワップトランザクションを自セル10内の各CPU11に発行する(ステップ4−11)。各CPU11は、スワップトランザクションを受け付けると、キャッシュ掃き出し処理を行い、リプライトランザクションを第二インタフェース21に出力する(ステップ4−12)。
【0049】
メインパイプ102内のメイン制御部103は、キャッシュ掃き出し処理が完了した旨のリプライトランザクションを受け付けると(ステップ4−13)、タグスワップ制御部104に登録している下位アドレスを削除すると共に、スワップ処理中信号の出力を停止する(ステップ4−6)。これによりメインパイプ102でキャンセルされていたトランザクションのキャンセル状態は解除される(ステップ4−15)。また、メイン制御部103は、上記リプライトランザクションを受け付けると(ステップ4−13)、タグ書き戻し制御部106に対してエントリ使用不可フラグをタグメモリ131の障害エントリにセットすることを指示する。これにより、タグ書き戻し制御部106は、タグメモリ131の障害エントリ(ステップ4−7で登録された下位アドレス及びレベルによって特定されるエントリ)にエントリ使用不可フラグをセットする(ステップ4−8)。このエントリ使用不可フラグが点灯しているエントリはこれ以後使われなくなる(ステップ4−9)。これによりタグの障害エントリのレベルのみ動的に縮退が完了し継続動作が可能となる。
【0050】
次に、メイン制御部103が、ステップ4−4において自セル10内のタグ部13に訂正不可能障害が発生したと判断した場合の動作を説明する。タグ部13に訂正不可能障害が発生した場合は、ECCチェック&訂正回路132によりエラー訂正を行うことができないため、正しい上位アドレスが何であったか分からない。そこで、全ての上位アドレスそれぞれについて、その上位アドレスとタグ索引時に使用した下位アドレスとを含むスワップトランザクションを生成し、生成した各スワップトランザクションを自セル10内の各CPU11に対して発行することで、上記下位アドレスを持つキャッシュ情報を全て主記憶装置14に書き戻せるようにしている。
【0051】
メイン制御部103は、第三インタフェース22を介して受け取った訂正不可能情報により、自セル10内のタグ部13に訂正不可能障害が発生したと判断すると(ステップ4−4がNO)、訂正不可能情報に含まれている下位アドレス(タグ索引時に使用された下位アドレス)をタグスワップ制御部104に登録する処理(図5のステップ5−1)と、訂正不可能情報に含まれている下位アドレス及びレベルをタグ書き戻し制御部106に登録する処理(ステップ5−3)と、訂正不可能情報に含まれている下位アドレスをコヒーレンシ制御部107に登録してスワップトランザクションの発行を指示する処理(ステップ5−6)とを行う。
【0052】
ステップ5−1でタグスワップ制御部104に下位アドレスを登録した後、比較回路105の出力が比較一致を示すものになると、メイン制御部103は、第二インタフェース21上のトランザクションの発行元が自セル10であれば、パス220を介して第二インタフェース出力調停部101に対してスワップ処理中信号を出力し、発行元が他のセル10であれば、第三インタフェース22を介して発行元のセル10にキャンセル情報を送信する(ステップ5−10)。このような処理は、スワップ処理が完了し、タグスワップ制御部104に登録されている下位アドレスが消去されるまで継続される。
【0053】
一方、コヒーレンシ制御部107は、ステップ5−6において、下位アドレスだけが登録され、スワップトランザクションの発行が指示されると、全ての上位アドレスそれぞれについて、その上位アドレスと上記下位アドレスとを含むスワップトランザクションを生成し、生成したスワップトランザクションを小さなアドレスから昇順に、自セル10内の各CPU11に発行する(ステップ5−7)。これにより、コヒーレンシ制御部107がビジー状態となるため、コヒーレンシ制御部107を使用する後続トランザクションはキャンセルされ、ビジー状態が解消されるまで(ステータス処理が完了するまで)、待たされることになる。CPU11はスワップトランザクションを受け付けるとキャッシュ掃き出し処理を行い、リプライトランザクションをメイン制御部103に返す(ステップ5−8)。
【0054】
メイン制御部103は、自セル10内の全てのCPU11から最も大きなアドレスについてのリプライトランザクションを受け付けると(ステップ5−9)、タグスワップ制御部104に登録しておいた下位アドレスを削除すると共に、スワップ処理中信号の出力を停止する(ステップ5−2)。これによりメインパイプ102でキャンセルされていたトランザクションのキャンセル状態は解除される(ステップ5−11)。また、メイン制御部103は、全てのCPU11から最も大きなアドレスについてのリプライトランザクションを受け付けると(ステップ5−9)、タグ書き戻し制御部106に対してエントリ使用不可フラグをタグメモリ131の障害エントリにセットすることを指示する。これにより、タグ書き戻し制御部106は、タグメモリ131の障害エントリにエントリ使用不可フラグをセットすると共に、障害エントリと同じ下位アドレスを有する各エントリ中のステータスを、最新データが主記憶装置14上に存在することを示すものに書き換える(ステップ5−4)。このエントリ使用不可フラグが点灯しているエントリはこれ以後使われなくなる(ステップ5−5)。これによりタグの障害エントリのレベルのみ動的に縮退が完了し継続動作が可能となる。
【0055】
〔第1の実施の形態の効果〕
本実施の形態によれば、タグメモリ131から読み出されたタグ索引結果に訂正不可能障害が検出された場合であっても、データのコヒーレンシを保証することができるので、動作を継続することが可能になる。その理由は、タグメモリ131から索引されたタグ索引結果に訂正不可能障害を検出した場合、各CPU11に対して、訂正不可能障害が検出されたタグ索引結果に関連する可能性がある全てのデータを主記憶装置14に掃き出すことを指示するメモリコントロール/コヒーレンシ制御装置12を備えているからである。
【0056】
〔第2の実施の形態〕
次に、本発明にかかる分散共有メモリ型マルチプロセッサシステムの第2の実施の形態について説明する。本実施の形態は、タグメモリに訂正不可能障害が発生した際、コヒーレンシ制御部がビジー状態となるのを防ぐことにより、コヒーレンシ制御部を使用する後続トランザクションが待たされないようにすることを特徴とする。
【0057】
図6は本実施の形態にかかる分散共有メモリ型マルチプロセッサシステムの構成例を示すブロック図である。本実施の形態と図1に示した第1の実施の形態との相違点は、サービスプロセッサ112が追加されている点、及びセル10の代わりにセル10aを備えている点である。セル10aは、メモリコントロール/コヒーレンシ制御装置12の代わりにメモリコントロール/コヒーレンシ制御装置12aを備えている点が、セル10と相違している。
【0058】
図7はメモリコントロール/コヒーレンシ制御装置12aの構成例を示すブロック図である。図3に示したメモリコントロール/コヒーレンシ制御装置12との相違点は、キャッシュ掃き出し完了レジスタ111が追加されている点、タグ部13の代わりにタグ部13aを備えている点、及びメイン制御部103の代わりにメイン制御部103aを備えている点である。
【0059】
キャッシュ掃き出し完了レジスタ111には、キャッシュ掃き出し処理が完了したか否かを示す掃き出し完了フラグが格納される。この掃き出し完了フラグは、キャッシュ掃き出し処理が完了したとき、サービスプロセッサ112によって“1”にされ、キャッシュ掃き出し処理が完了したことを表示する。
【0060】
タグ部13aは、訂正不可能情報(タグ索引時の下位アドレスと、障害エントリのレベルとを含む)を第三インタフェース22だけでなく、パス222を介してサービスプロセッサ112にも出力する点が、第1の実施の形態のタグ部13と相違している。
【0061】
メイン制御部103aは、自セル10a内の各CPU11におけるキャッシュ掃き出し処理が完了したことを、キャッシュ掃き出し完了レジスタ111に格納されている掃き出し完了フラグに基づいて認識する点(掃き出し完了フラグの値が“1”になった場合、キャッシュ掃き出し処理が完了したと認識する)、及びキャッシュ掃き出し処理の完了を認識した後、掃き出し完了フラグを“0”にする点が、第1の実施の形態のメイン制御部103と相違している。
【0062】
サービスプロセッサ112内のファームウェア(FW)は、タグ部13aからパス222を介して訂正不可能情報を受け取ったとき、全ての上位アドレスそれぞれについて、その上位アドレスと訂正不可能情報中の下位アドレスとを含むスワップトランザクションを生成し、生成したスワップトランザクションをアドレスが小さいものから昇順に自セル10a内の各CPU11に発行する機能を有する。なお、上記スワップトランザクションは、第一インタフェース20とは別のパス223を介して各CPU11に送る。更に、サービスプロセッサ112は、各CPU11からのリプライトランザクションに基づいて、キャッシュ掃き出し処理が完了したと判断したとき、キャッシュ掃き出し完了レジスタ111中の掃き出し完了フラグを“1”にする機能も有する。
【0063】
〔第2の実施の形態の動作〕
次に、本実施の形態の動作について説明する。なお、タグ部13aに障害が発生していない場合及びタグ部13aに訂正可能障害が発生している場合の動作は、図4のフローチャートを用いて説明した通りであるので、ここでは、タグ部13aに訂正不可能障害が発生した場合の動作について説明する。
【0064】
メイン制御部103aは、第三インタフェース22を介して受信した訂正不可能情報と、そのビット位置とに基づいて、自セル10a内のタグ部13aに訂正不可能な障害が発生したと判断すると(図4のステップ4−2がYES、4−4がNO)、図8のフローチャートに示すように、訂正不可能情報に含まれている下位アドレス(タグ索引時に使用された下位アドレス)をタグスワップ制御部104に登録する処理(ステップ8−1)と、訂正不可能情報に含まれている下位アドレス及びレベルをタグ書き戻し制御部106に登録する処理(ステップ8−3)とを行う。
【0065】
また、サービスプロセッサ112のファームウェアは、タグ部13aからパス222を介して訂正不可能情報が送られてくると(ステップ8−6)、全ての上位アドレスそれぞれについて、その上位アドレスと上記訂正不可能情報中の下位アドレスとを含むスワップトランザクションを生成し、生成したスワップトランザクションを小さなアドレスから昇順に、パス223を介して自セル10a内の各CPU11に発行する(ステップ8−7)。各CPU11は、スワップトランザクションに従ってキャッシュ掃き出し処理を行い、リプライトランザクションをパス223を介してサービスプロセッサ112に返す(ステップ8−8)。
【0066】
ステップ8−1でタグスワップ制御部104に下位アドレスを登録した後、比較回路105の出力が比較一致を示すものになると、メイン制御部103aは、第二インタフェース21上のトランザクションの発行元が自セル10aであれば、パス220を介して第二インタフェース出力調停部101に対してスワップ処理中信号を出力し、発行元が他のセル10aであれば、第三インタフェース22を介して発行元のセル10aにキャンセル情報を送信する(ステップ8−10)。このような処理は、スワップ処理が完了し、タグスワップ制御部104に登録されている下位アドレスが消去されるまで継続される。
【0067】
一方、サービスプロセッサ112は、自セル10a内の全てのCPU11から最も大きなアドレスについてのリプライトランザクションを受け付けると、キャッシュ掃き出し完了レジスタ111中の掃き出し完了フラグを“1”とし、キャッシュ掃き出し処理が完了したことを表示する(ステップ8−9)。
【0068】
メイン制御部103aは、掃き出し完了フラグが“1”となると、キャッシュ掃き出し処理が完了したと認識し、タグスワップ制御部104に登録しておいた下位アドレスを削除すると共に、スワップ処理中信号の出力を停止する(ステップ8−2)。これによりメインパイプ102でキャンセルされていたトランザクションのキャンセル状態は解除される(ステップ8−11)。更に、ステップ8−2において、メイン制御部103aは、キャッシュ掃き出し完了レジスタ111中の掃き出し完了フラグを“0”に変更する処理も行う。
【0069】
また、メイン制御部103aは、掃き出し完了フラグが“1”となると、タグ書き戻し制御部106に対してエントリ使用不可フラグをタグメモリ131の障害エントリにセットすることを指示する。これにより、タグ書き戻し制御部106は、タグメモリ131の障害エントリにエントリ使用不可フラグをセットすると共に、障害エントリと同じ下位アドレスを有する各エントリ中のステータスを、最新データが主記憶装置14上に存在することを示すものに書き換える(ステップ8−4)。このエントリ使用不可フラグが点灯しているエントリはこれ以後使われなくなる(ステップ8−5)。これによりタグの障害エントリのレベルのみ動的に縮退が完了し継続動作が可能となる。
【0070】
〔第2の実施の形態の効果〕
本実施の形態では、タグメモリ131に訂正不可能障害があった場合、サービスプロセッサ112を用いてスワップトランザクションを発行するようにしているので、第1の実施の形態のように、訂正不可能障害発生時にコヒーレンシ制御部107がビジー状態となることがない。このため、コヒーレンシ制御部107を使用する後続のトランザクションがキャンセルされることがなくなり、第1の実施の形態に比較して性能が向上する。
【0071】
〔第3の実施の形態〕
次に、本発明にかかる分散共有メモリ型マルチプロセッサシステムの第3の実施の形態について説明する。本実施の形態は、タグメモリに訂正不可能障害が発生した場合、CPUが行っている通常処理にほとんど影響を与えることなく、タグメモリの障害エントリを動的に縮退できるようにしたことを特徴とする。
【0072】
本実施の形態は、図1に示すような分散共有メモリ型マルチプロセッサシステムの構成要素である各セル10(図3に示す構成を有する)において、タグ部13に訂正不可能障害が発生した場合、図9、図10のフローチャートに示す処理を行うことにより実現される。なお、タグ部13に障害が発生していない場合及びタグ部13に訂正可能障害が発生している場合の動作は、図4のフローチャートを用いて説明した通りであるので、ここでは、タグ部13に訂正不可能障害が発生した場合の動作について説明する。
【0073】
メイン制御部103は、第三インタフェース22を介して受信した訂正不可能情報と、そのビット位置とに基づいて、自セル10内のタグ部13に訂正不可能な障害が発生したと判断すると(図4のステップ4−2がYES、4−4がNO)、図9のフローチャートに示すように、自セル10、他セル10が第三インタフェース22に出力したタグ索引結果の中にPヒットが存在するか否かを調べる(ステップ9−0)。即ち、ステータスが、最新データがキャッシュ上にあることを示しているタグ索引結果が存在するか否かを調べる。
【0074】
そして、Pヒットがあった場合(ステップ9−0がYES)、即ちアクセス対象データがキャッシュ15上に存在する場合は、ステップ9−15に進む。これに対して、Pヒットがなかった場合(ステップ9−0がNO)、即ちアクセス対象データがキャッシュ15上に存在すると確定できなかった場合は、タグ索引に使用したトランザクションのフルアドレスをタグスワップ制御部104に登録する処理(ステップ9−1)と、タグ索引時に使用した下位アドレスと障害エントリのレベルとをタグ書き戻し制御部106に登録する処理(ステップ9−3)と、コヒーレンシ制御部107に上記フルアドレスを登録してスワップトランザクションの発行を指示する処理(ステップ9−6)とを行う。
【0075】
ステップ9−1でタグスワップ制御部104にフルアドレスを登録した後、比較回路105の出力が比較一致を示すものになると(この場合、比較回路105はフルアドレスが一致した場合、その出力を比較一致を示すものにする)、メイン制御部103は、第二インタフェース21上のトランザクションの発行元が自セル10であれば、パス220を介して第二インタフェース出力調停部101に対してスワップ処理中信号を出力し、発行元が他のセル10であれば、第三インタフェース22を介して発行元のセル10にキャンセル情報を送信する(ステップ9−13)。このような処理は、スワップ処理が完了し、タグスワップ制御部104に登録されているフルアドレスが消去されるまで継続される。
【0076】
また、コヒーレンシ制御部107は、ステップ9−6においてスワップトランザクションの発行が指示されると、登録されているフルアドレスを含んだスワップトランザクションを自セル10内の各CPU11に対して発行する(ステップ9−7)。各CPU11は、フルアドレスを含んだスワップトランザクションを受け付けると、それに従ってキャッシュ掃き出し処理を行い、リプライトランザクションをメインパイプ102内のメイン制御部103に返す(ステップ9−8)。メイン制御部103では、自セル10内の何れかのCPU11からの上記フルアドレスに対応するキャッシュ掃き出し処理が完了した旨のリプライトランザクションを受け付けると(ステップ9−9)、タグスワップ制御部104に登録したフルアドレスを削除すると共に、スワップ処理中信号の出力を停止する(ステップ9−2)。これによりメインパイプ102でキャンセルされていたトランザクションのキャンセル状態は解除される(ステップ9−14)。CPU11のキャッシュ15に最新データがあった場合は主記憶装置14に対してデータが書き戻され、無かった場合は元々主記憶装置14のデータが最新であったことになるので、メインパイプ102上でキャンセルされていたタグ索引トランザクションは主記憶装置14にアクセスすることで最新データを得ることができる。
【0077】
メイン制御部103は、ステップ9−6の処理が完了すると、タグ索引時に使用した下位アドレスをコヒーレンシ制御部107に登録し、第一インタフェース20が通常処理で使用されていないタイミングで、スワップトランザクションを発行することを指示する。これにより、コヒーレンシ制御部107は、先ず、全ての上位アドレスについて、その上位アドレスと登録された下位アドレスとを含むスワップトランザクションを生成する。その後、コヒーレンシ制御部107は、第一インタフェース20の空き状況を監視し、CPU11が通常処理に第一インタフェース20を使用していないタイミングで、上記生成したスワップトランザクションを、アドレスが小さい順に自セル10内の各CPUに対して発行する(ステップ9−10)。
【0078】
各CPU11は、スワップトランザクションを受け付けると、キャッシュ掃き出し処理を行い、リプライトランザクションをメイン制御部103に返す(ステップ9−11)。メイン制御部103は、自セル10内の全てのCPU11から最も大きなアドレスについてのリプライトランザクションを受け付けると(ステップ9−12)、タグ書き戻し制御部106に対してエントリ使用不可フラグをタグメモリ131の障害エントリにセットすることを指示する。これにより、タグ書き戻し制御部106は、タグメモリ131の障害エントリにエントリ使用不可フラグをセットすると共に、障害エントリと同じ下位アドレスを有する各エントリ中のステータスを、最新データが主記憶装置14上に存在することを示すものに書き換える(ステップ9−4)。このエントリ使用不可フラグが点灯しているエントリはこれ以後使われなくなる(ステップ9−5)。これによりタグの障害エントリのレベルのみ動的に縮退が完了し継続動作が可能となる。
【0079】
次に、ステップ9−0でPヒット有りと判断された場合の動作を、図10のフローチャートを参照して説明する。自セル10または他セル10のタグ索引結果の中にPヒットがあった場合は、メイン制御部103はPヒットセルのCPU11のキャッシュ15をアクセスするための処理を行う(ステップ10−8)。本実施の形態ではタグ障害があっても、その故障レベルを含めてPヒットがあった場合はPヒット処理を優先する。そのため、メイン制御部103は、タグスワップ制御部104にタグ索引時に使用した下位アドレスを登録する処理は行わず(ステップ10−1)、タグ書き戻し制御部106にタグ索引時に使用した下位アドレス及び障害の発生したレベルを登録する処理(ステップ10−2)と、コヒーレンシ制御部107にタグ索引時に使用した下位アドレスを登録してスワップトランザクションの発行を指示する処理を行う。これにより、コヒーレンシ制御部107は、先ず、全ての上位アドレスについて、その上位アドレスと登録された下位アドレスとを含むスワップトランザクションを生成する。その後、コヒーレンシ制御部107は、第一インタフェース20の空き状況を監視し、CPU11が通常処理に第一インタフェース20を使用していないタイミングで、上記生成したスワップトランザクションを、アドレスが小さい順に自セル10内の各CPUに対して発行する。
【0080】
各CPU11は、スワップトランザクションを受け付けると、キャッシュ掃き出し処理を行い、リプライトランザクションをメイン制御部103に返す(ステップ10−6)。メイン制御部103は、自セル10内の全てのCPU11から最も大きなアドレスについてのリプライトランザクションを受け付けると(ステップ10−7)、タグ書き戻し制御部106に対してエントリ使用不可フラグをタグメモリ131の障害エントリにセットすることを指示する。これにより、タグ書き戻し制御部106は、タグメモリ131の障害エントリにエントリ使用不可フラグをセットすると共に、障害エントリと同じ下位アドレスを有する各エントリ中のステータスを、最新データが主記憶装置14上に存在することを示すものに書き換える(ステップ10−3)。このエントリ使用不可フラグが点灯しているエントリはこれ以後使われなくなる(ステップ10−4)。これによりタグの障害エントリのレベルのみ動的に縮退が完了し継続動作が可能となる。
【0081】
なお、第1の実施の形態において、図5のステップ5−7の代わりに、第3の実施の形態において説明した、図9のステップ9−10の処理を行うようにしても良い。
【0082】
〔第3の実施の形態の効果〕
本実施の形態ではタグメモリ131に訂正不可能障害が発生した場合、キャッシュ掃き出し処理よりもCPU11が行う通常処理を優先して行い、キャッシュ掃き出し処理は、CPU11の通常処理の隙間を狙って行う。これにより処理性能をほとんど劣化させることなく、データのコヒーレンシを保証することが可能になる。
【産業上の利用可能性】
【0083】
本発明は、分散共有メモリ型マルチプロセッサシステム等のようにキャッシュメモリを有する複数のCPUを備え、データのコヒーレンシを保証することが必要になるマルチプロセッサシステムに適用することができる。
【図面の簡単な説明】
【0084】
【図1】本発明にかかる分散共有メモリ型マルチプロセッサシステムの第1の実施の形態の構成例を示すブロック図である。
【図2】タグ部13の構成例を示すブロック図である。
【図3】メモリコントロール/コヒーレンシ制御装置12の構成例を示すブロック図である。
【図4】主にタグメモリ131に訂正可能障害が発生したときの、第1の実施の形態の処理例を示すフローチャートである。
【図5】主にタグメモリ131に訂正不可能障害が発生したときの、第1の実施の形態の処理例を示すフローチャートである。
【図6】本発明にかかる分散共有メモリ型マルチプロセッサシステムの第2の実施の形態の構成例を示すブロック図である。
【図7】第2の実施の形態で使用するメモリコントロール/コヒーレンシ制御装置12aの構成例を示すブロック図である。
【図8】主にタグメモリ131に訂正不可能障害が発生したときの、第2の実施の形態の処理例を示すフローチャートである。
【図9】主にタグメモリ131に訂正不能障害が発生し、且つPヒットがなかったときの、第3の実施の形態の処理例を示すフローチャートである。
【図10】主にタグメモリ131に訂正不可能が発生し、且つPヒットがあったときの、第3の実施の形態の処理例を示すフローチャートである。
【符号の説明】
【0085】
10、10a…セル
11…CPU
12、12a…メモリコントロール/コヒーレンシ制御装置
101…第二インタフェース出力調停部
102…メインパイプ
103、103a…メイン制御部
104…タグスワップ制御部
105…比較回路
106…タグ書き戻し制御部
107…コヒーレンシ制御部
108…主記憶アクセス制御部
111…キャッシュ掃き出し完了レジスタ
112…サービスプロセッサ
13、13a…タグ部
131…タグメモリ
132…ECCチェック&訂正回路
133…比較回路
14…主記憶装置
15…キャッシュ(キャッシュメモリ)
20…第一インタフェース
21…第二インタフェース
22…第三インタフェース

【特許請求の範囲】
【請求項1】
主記憶装置と、
該主記憶装置に格納されているデータの一部の写しが格納されたキャッシュメモリを搭載した複数のCPUと、
前記各キャッシュメモリ内のデータの状態を管理するタグメモリを有し、該タグメモリを用いてデータのコヒーレンシを保証するメモリコントロール/コヒーレンシ制御装置とを備え、
該メモリコントロール/コヒーレンシ制御装置が、前記タグメモリから索引されたタグ索引結果に訂正不可能障害を検出した場合、前記各CPUに対して、前記訂正不可能障害が検出されたタグ索引結果に関連する可能性がある全てのデータを主記憶装置に掃き出すことを指示することを特徴とするマルチプロセッサシステム。
【請求項2】
請求項1記載のマルチプロセッサシステムにおいて、
前記メモリコントロール/コヒーレンシ制御装置が、
前記各キャッシュメモリに格納されているデータの上位アドレスと、そのデータが最新データであるか否かを示すステータスとが、前記データの下位アドレスに対応するエントリに格納されたタグメモリと、
トランザクションの下位アドレスによって前記タグメモリから索引されたタグ索引結果に訂正不可能障害があるか否かをチェックする障害チェック回路と、
該障害チェック回路で前記タグ索引結果に訂正不可能障害があると判断された場合、前記各CPUに対して、キャッシュメモリに格納されているデータの内の、下位アドレスがタグ索引時に用いられた下位アドレスと一致する全てのデータを主記憶装置に掃き出すことを指示するコヒーレンシ制御部とを備えたことを特徴とするマルチプロセッサシステム。
【請求項3】
請求項2記載のマルチプロセッサシステムにおいて、
前記コヒーレンシ制御部が、全ての上位アドレスについて、その上位アドレスと前記タグ索引時に使用された下位アドレスとを含むスワップトランザクションを生成し、該生成したスワップトランザクションを前記各CPUに対して発行することを特徴とするマルチプロセッサシステム。
【請求項4】
請求項2記載のマルチプロセッサシステムにおいて、
前記コヒーレンシ制御部が、全ての上位アドレスについて、その上位アドレスと前記タグ索引時に使用された下位アドレスとを含むスワップトランザクションを生成し、該生成したスワップトランザクションを前記各CPUが通常処理を行っていないときに、前記各CPUに対して発行することを特徴とするマルチプロセッサシステム。
【請求項5】
請求項2記載のマルチプロセッサシステムにおいて、
サービスプロセッサを備え、前記障害チェック回路で前記タグ索引結果に訂正不可能障害があると判断された場合、前記サービスプロセッサが前記コヒーレンシ制御部の代わりに、前記各CPUに対して、キャッシュメモリに格納されているデータの内の、下位アドレスがタグ索引時に用いられた下位アドレスと一致する全てのデータを主記憶装置に掃き出すように指示することを特徴とするマルチプロセッサシステム。
【請求項6】
請求項2記載のマルチプロセッサシステムにおいて、
前記コヒーレンシ制御部が、
前記障害チェック回路で前記タグ索引結果に訂正不可能障害があると判断され、且つ前記タグメモリの内容に基づいてキャッシュメモリ上に前記トランザクションがアクセス対象にしている最新データが存在すると確定できない場合は、直ちに、前記トランザクションのフルアドレスを含むスワップトランザクションを前記各CPUに対して発行し、その後、全ての上位アドレスについて、その上位アドレスと前記トランザクションの下位アドレスとを含むスワップトランザクションを生成し、前記各CPUが通常処理を行っていないとき、前記生成したスワップトランザクションを前記各CPUに対して発行し、前記障害チェック回路で前記タグ索引結果に訂正不可能障害があると判断され、且つ前記タグメモリの内容に基づいてキャッシュメモリ上に前記トランザクションがアクセス対象にしている最新データが存在すると確定できた場合は、全ての上位アドレスについて、その上位アドレスと前記トランザクションの下位アドレスとを含むスワップトランザクションを生成し、前記各CPUが通常処理を行っていないとき、前記生成したスワップトランザクションを前記各CPUに対して発行することを特徴とするマルチプロセッサシステム。
【請求項7】
主記憶装置と、該主記憶装置に格納されているデータの一部の写しが格納されたキャッシュメモリを搭載した複数のCPUとを備えたマルチプロセッサシステムにおけるデータのコヒーレンシを、前記各キャッシュメモリ内のデータの状態を管理するタグメモリを利用して保証するメモリコントロール/コヒーレンシ制御装置であって、
前記タグメモリから索引されたタグ索引結果に訂正不可能障害を検出した場合、前記各CPUに対して、前記訂正不可能障害が検出されたタグ索引結果に関連する可能性がある全てのデータを主記憶装置に掃き出すことを指示する構成を有するメモリコントロール/コヒーレンシ制御装置。
【請求項8】
請求項7記載のメモリコントロール/コヒーレンシ制御装置において、
前記各キャッシュメモリに格納されているデータの上位アドレスと、そのデータが最新データであるか否かを示すステータスとが、前記データの下位アドレスに対応するエントリに格納されたタグメモリと、
トランザクションの下位アドレスによって前記タグメモリから索引されたタグ索引結果に訂正不可能障害があるか否かをチェックする障害チェック回路と、
該障害チェック回路で前記タグ索引結果に訂正不可能障害があると判断された場合、前記各CPUに対して、キャッシュメモリに格納されているデータの内の、下位アドレスがタグ索引時に用いられた下位アドレスと一致する全てのデータを主記憶装置に掃き出すことを指示するコヒーレンシ制御部とを備えたことを特徴とするメモリコントロール/コヒーレンシ制御装置。
【請求項9】
請求項8記載のメモリコントロール/コヒーレンシ制御装置において、
前記コヒーレンシ制御部が、全ての上位アドレスについて、その上位アドレスと前記タグ索引時に使用された下位アドレスとを含むスワップトランザクションを生成し、該生成したスワップトランザクションを前記各CPUに対して発行することを特徴とするメモリコントロール/コヒーレンシ制御装置。
【請求項10】
請求項8記載のメモリコントロール/コヒーレンシ制御装置において、
前記コヒーレンシ制御部が、全ての上位アドレスについて、その上位アドレスと前記タグ索引時に使用された下位アドレスとを含むスワップトランザクションを生成し、該生成したスワップトランザクションを前記各CPUが通常処理を行っていないときに、前記各CPUに対して発行することを特徴とするメモリコントロール/コヒーレンシ制御装置。
【請求項11】
請求項8記載のメモリコントロール/コヒーレンシ制御装置において、
前記コヒーレンシ制御部が、
前記障害チェック回路で前記タグ索引結果に訂正不可能障害があると判断され、且つ前記タグメモリの内容に基づいてキャッシュメモリ上に前記トランザクションがアクセス対象にしている最新データが存在すると確定できない場合は、直ちに、前記トランザクションのフルアドレスを含むスワップトランザクションを前記各CPUに対して発行し、その後、全ての上位アドレスについて、その上位アドレスと前記トランザクションの下位アドレスとを含むスワップトランザクションを生成し、前記各CPUが通常処理を行っていないとき、前記生成したスワップトランザクションを前記各CPUに対して発行し、前記障害チェック回路で前記タグ索引結果に訂正不可能障害があると判断され、且つ前記タグメモリの内容に基づいてキャッシュメモリ上に前記トランザクションがアクセス対象にしている最新データが存在すると確定できた場合は、全ての上位アドレスについて、その上位アドレスと前記トランザクションの下位アドレスとを含むスワップトランザクションを生成し、前記各CPUが通常処理を行っていないとき、前記生成したスワップトランザクションを前記各CPUに対して発行することを特徴とするメモリコントロール/コヒーレンシ制御装置。
【請求項12】
主記憶装置と、該主記憶装置に格納されているデータの一部の写しが格納されたキャッシュメモリを搭載した複数のCPUとを備えたマルチプロセッサシステムにおけるデータのコヒーレンシを保証するコヒーレンシ保証方法であって、
前記各キャッシュメモリ内のデータの状態を管理するタグメモリから索引されたタグ索引結果に訂正不可能障害を検出した場合、前記各CPUに対して、前記訂正不可能障害が検出されたタグ索引結果に関連する可能性がある全てのデータを主記憶装置に掃き出すように指示することを特徴とするコヒーレンシ保証方法。
【請求項13】
主記憶装置と、該主記憶装置に格納されているデータの一部の写しが格納されたキャッシュメモリを搭載した複数のCPUとを備えたマルチプロセッサシステムにおけるデータのコヒーレンシを保証するコヒーレンシ保証方法であって、
各キャッシュメモリに格納されているデータの上位アドレスと、そのデータが最新データであるか否かを示すステータスとが前記データの下位アドレスに対応するエントリに格納されたタグメモリを、トランザクションの下位アドレスによって索引することにより得られたタグ索引結果に訂正不可能障害が検出された場合、前記各CPUに対して、キャッシュメモリに格納されているデータの内の、下位アドレスがタグ索引時に用いられた下位アドレスと一致する全てのデータを主記憶装置に掃き出すことを指示し、該指示に従って前記各CPUが該当するデータを前記主記憶装置に掃き出すことを特徴とするコヒーレンシ保証方法。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate


【公開番号】特開2008−52550(P2008−52550A)
【公開日】平成20年3月6日(2008.3.6)
【国際特許分類】
【出願番号】特願2006−229070(P2006−229070)
【出願日】平成18年8月25日(2006.8.25)
【出願人】(000168285)エヌイーシーコンピュータテクノ株式会社 (572)
【Fターム(参考)】