(57)【要約】【課題】エラー情報を記憶装置に書き込めない場合であってもエラー情報を記録可能にする。【解決手段】ＣＰＵ１０とメモリ２０との間に備えられ、ＣＰＵ１０からメモリ２０へのアクセスを制御するメモリコントローラ３０において、データ格納領域３１と制御部３２とを備える。制御部３２は、ＣＰＵ１０からメモリ２０への書込みデータに、エラーが発生したことを示すエラー情報が含まれる場合、書込みデータを、書込み先アドレスに対応付けてデータ格納領域３１に格納する。【選択図】図１
2015064770.tif 000002
【特許請求の範囲】
【請求項１】
演算処理装置と記憶装置との間に備えられ、前記演算処理装置から前記記憶装置へのアクセスを制御するメモリ制御装置であって、
データ格納領域と、
前記演算処理装置から前記記憶装置への第１書込みデータに、エラーが発生したことを示すエラー情報が含まれる場合、前記第１書込みデータを、前記第１書込みデータの書込み先アドレスに対応付けて前記データ格納領域に格納する制御部と、を有するメモリ制御装置。
【請求項２】
前記データ格納領域には、複数の前記第１書込みデータをそれぞれ格納する複数の領域が備えられ、
前記領域毎に、前記領域に格納される前記第１書込みデータの有効／無効を示すビットが設けられ、
前記制御部は、前記複数の領域のうち前記ビットが無効を示す領域に、前記第１書込みデータを前記書込み先アドレスに対応付けて格納する、請求項１記載のメモリ制御装置。
【請求項３】
前記制御部は、前記第１書込みデータを書き込む、前記ビットが無効を示す領域が無い場合、前記演算処理装置に対しエラー通知を行なう、請求項２記載のメモリ制御装置。
【請求項４】
前記演算処理装置から前記記憶装置への第２書込みデータに前記エラー情報が含まれていない場合、前記第２書込みデータの書込み先アドレスと、前記複数の領域のうち前記ビットが有効を示す領域における前記第１書込みデータの書込み先アドレスとを比較する第１アドレス比較部を有し、
前記第１アドレス比較部による比較の結果、前記第２書込みデータの書込み先アドレスと前記第１書込みデータの書込み先アドレスとが一致する場合、前記制御部は、前記第１書込みデータを格納する前記領域の前記ビットを無効にするとともに、前記第２書込みデータを前記記憶装置における前記第２書込みデータの書込み先アドレスに書き込む、請求項２または請求項３に記載のメモリ制御装置。
【請求項５】
前記第１アドレス比較部による比較の結果、前記第２書込みデータの書込み先アドレスと前記第１書込みデータの書込み先アドレスとが不一致である場合、前記制御部は、前記第２書込みデータを前記記憶装置における前記第２書込みデータの書込み先アドレスに書き込む、請求項４記載のメモリ制御装置。
【請求項６】
前記演算処理装置から前記記憶装置への読出し要求を受けた場合、前記読出し要求の読出しアドレスと、前記複数の領域のうち前記ビットが有効を示す領域における前記第１書込みデータの書込み先アドレスとを比較する第２アドレス比較部と、
前記第２アドレス比較部による比較の結果、前記読出しアドレスと前記第１書込みデータの書込み先アドレスとが一致する場合、前記データ格納領域の、前記第１書込みデータの書込み先アドレスに対応する領域から、前記第１書込みデータを選択して読み出し、前記読出し要求に対する読出しデータとして前記演算処理装置に返信するデータ選択部と、を有する、請求項２〜請求項５のいずれか一項に記載のメモリ制御装置。
【請求項７】
前記第２アドレス比較部による比較の結果、前記読出しアドレスと前記第１書込みデータの書込み先アドレスとが不一致である場合、前記データ選択部は、前記記憶装置の前記読出しアドレスからデータを選択して読み出し、前記読出し要求に対する読出しデータとして前記演算処理装置に返信する、請求項６記載のメモリ制御装置。
【請求項８】
前記データ格納領域に格納される前記第１書込みデータは、前記エラー情報としてのエラー原発情報を含むデータ部分と、前記エラーが発生したことを示すコードを前記エラー情報として埋め込まれた、当該データ部分についてのＥＣＣ（Error Correcting Code）とを含む、請求項１〜請求項７のいずれか一項に記載のメモリ制御装置。
【請求項９】
演算処理装置と、
記憶装置と、
前記演算処理装置と前記記憶装置との間に備えられ、前記演算処理装置から前記記憶装置へのアクセスを制御するメモリ制御装置と、を有し、
前記メモリ制御装置は、
データ格納領域と、
前記演算処理装置から前記記憶装置への第１書込みデータに、エラーが発生したことを示すエラー情報が含まれる場合、前記第１書込みデータを、前記第１書込みデータの書込み先アドレスに対応付けて前記データ格納領域に格納する制御部と、を有する、情報処理装置。
【請求項１０】
演算処理装置と記憶装置との間において前記演算処理装置から前記記憶装置へのアクセスを制御するメモリ制御装置を有する情報処理装置の制御方法であって、
前記演算処理装置から前記記憶装置への書込みデータを受け、
前記第１書込みデータに、エラーが発生したことを示すエラー情報が含まれる場合、前記書込みデータを、前記書込みデータの書込み先アドレスに対応付けて前記メモリ制御装置におけるデータ格納領域に格納する、情報処理装置の制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、メモリ制御装置、情報処理装置、及び情報処理装置の制御方法に関する。
【背景技術】
【０００２】
例えばＣＰＵ（Central Processing Unit）等のプロセッサとＤＩＭＭ（Dual Inline Memory Module）等のメモリとを含むシステムにおいて扱われるデータは、一般に、ＥＣＣ（Error Correcting Code）などのコードによって保護されている。データに１ビットのエラーが生じた場合は当該エラーを前記コードによって修正することができる。しかし、２ビット以上のエラーは、前記コードによって修正することができず、修正不可能なエラー（Uncorrectable Error；以下ＵＥという）となる。
【０００３】
ＤＩＭＭ等のメモリには、データを格納するデータ領域とは別にＥＣＣを格納するＥＣＣ領域が備えられ、このＥＣＣ領域にメモリコントローラがＥＣＣ等の情報を直接書き込むことができる。そこで、プロセッサからメモリへの書込みデータにＵＥが発生した場合には、プロセッサがメモリコントローラ経由でＥＣＣ領域に特殊なコードを書き込むことにより、書込みデータに発生したエラーをMarked-ＵＥとして他のエラーと明確に区別できるようにしている。
【０００４】
例えば、３ビットエラーを表す特殊なシンドローム（0x7f）が、Marked-ＵＥを示す特殊なコードとしてＥＣＣ領域に書き込まれ、通常のＥＣＣコードと区別されている。また、当該ＥＣＣ領域に対応するデータ領域には、Marked-ＵＥの発生箇所を特定可能な情報（エラーＩＤ（IDentification），エラー原発情報）も記録される。
【０００５】
これにより、プロセッサは、メモリからデータを読み出す際に、読み出したデータに対応するＥＣＣ領域に特殊なコードが書き込まれていれば当該データがＵＥの発生したデータであると認識することができる。したがって、プロセッサの処理に必要のないデータがＵＥの発生したデータである場合、システムをそのまま運用できる一方、ＵＥの発生したデータが読み出された場合、そのデータがＵＥの発生したデータであると認識されプロセッサはＵＥについて何らかの対応を採ることができる。
【０００６】
なお、メモリにおいて、Marked-ＵＥの発生したデータ領域が、Marked-ＵＥの発生していないデータによって上書きされた場合、当該データ領域はMarked-ＵＥの状態ではなくなるので、システムの運用が続けられる。
【先行技術文献】
【特許文献】
【０００７】
【特許文献１】特公昭６２−２２１９９号公報
【特許文献２】特表２０１０−５２２３７４号公報
【発明の概要】
【発明が解決しようとする課題】
【０００８】
ところで、近年、メモリとして、ＤＲＡＭ（Dynamic Random Access Memory）チップを三次元化しＴＳＶ（Through Silicon Via）で接続して処理の高速化を図ったＨＭＣ（Hybrid Memory Cube）が提案されている。上述したように、ＤＩＭＭ等のメモリのＥＣＣ領域には、プロセッサ（メモリコントローラ）がＥＣＣコード以外のMarked-ＵＥ等の任意の情報を直接書き込むことができる。これに対し、上記ＨＭＣ等のメモリのＥＣＣ領域には、ＥＣＣコードが自動的に書き込まれるため、プロセッサ（メモリコントローラ）がＥＣＣコード以外のMarked-ＵＥ等の任意の情報を直接書き込むことができない。
【０００９】
上述のようにメモリへの書込み時に上流側（プロセッサ側）で発生するエラー（例えばＵＥ）に関する情報をメモリに記録できない場合、プロセッサがメモリにおけるデータにＵＥが発生しているか否かを認識できなくなる。そのため、エラー発生時に、ＯＳ（Operating System）によってエラーの発生したページ全体をシステムから切り離すことが考えられる。
【００１０】
しかし、ページ全体をシステムから切り離す場合、緊急度の高い処理の実行中にエラーが発生すると、切離し処理が終わるまで、上記緊急度の高い処理を中断せざるを得ないという課題がある。
【００１１】
また、エラーの発生した領域をページ単位でしか切り離すことができないため、ラージページ採用時には切り離す必要のある範囲が広くなる。したがって、エラーの発生した領域とともに切り離される、エラーの発生していない領域の範囲が広くなり、メモリのデータ領域の使用効率が低くなるという課題もある。
【００１２】
一つの側面で、本発明は、エラー情報を記憶装置に書き込めない場合であってもエラー情報を記録可能にすることを目的とする。
なお、前記目的に限らず、後述する発明を実施するための最良の形態に示す各構成により導かれる作用効果であって、従来の技術によっては得られない作用効果を奏することも本件の他の目的の一つとして位置付けることができる。
【課題を解決するための手段】
【００１３】
本件のメモリ制御装置は、演算処理装置と記憶装置との間に備えられ、前記演算処理装置から前記記憶装置へのアクセスを制御するメモリ制御装置であって、データ格納領域と、前記演算処理装置から前記記憶装置への第１書込みデータに、エラーが発生したことを示すエラー情報が含まれる場合、前記第１書込みデータを、前記第１書込みデータの書込み先アドレスに対応付けて前記データ格納領域に格納する制御部と、を有する。
【発明の効果】
【００１４】
一実施形態によれば、エラー情報を記憶装置に書き込めない場合であってもエラー情報を記録することができる。
【図面の簡単な説明】
【００１５】
【図１】本実施形態のメモリ制御装置を含む情報処理装置のハードウェア構成および機能構成を示すブロック図である。
【図２】図１に示すメモリ制御装置におけるデータ格納領域の内容を示す図である。
【図３】図１に示すメモリ制御装置の詳細な構成を示すブロック図である。
【図４】本実施形態におけるMarked-ＵＥの発生した書込みデータの構成例を示す図である。
【図５】図１および図３に示すメモリ制御装置のライトリクエスト受信時の動作を説明するフローチャートである。
【図６】図１および図３に示すメモリ制御装置のリードリクエスト受信時の動作を説明するフローチャートである。
【発明を実施するための形態】
【００１６】
以下、図面を参照して実施の形態を説明する。
〔１〕本実施形態のメモリ制御装置を含む情報処理装置の構成
まず、図１〜図４を参照しながら、本実施形態のメモリ制御装置３０を含む情報処理装置１のハードウェア構成および機能構成について説明する。なお、図１は、本実施形態のメモリ制御装置３０を含む情報処理装置１のハードウェア構成および機能構成を示すブロック図、図２は、図１に示すメモリ制御装置３０におけるデータ格納領域３１の内容を示す図である。また、図３は、図１に示すメモリ制御装置３０の詳細な構成を示すブロック図、図４は、本実施形態におけるMarked-ＵＥの発生した書込みデータの構成例を示す図である。
【００１７】
図１に示すように、情報処理装置１は、例えば、ＣＰＵ（演算処理装置）１０，メモリ（主記憶装置）２０およびメモリコントローラ（メモリ制御装置）３０を有するサーバである。
【００１８】
本実施形態において、メモリ２０は、データ領域２０ａおよびＥＣＣ領域２０ｂを有する、例えば前述したＨＭＣ（Hybrid Memory Cube）等のメモリである。このようなメモリ２０のＥＣＣ領域２０ｂには、ＥＣＣコードが自動的に書き込まれる。このため、ＣＰＵ１０が、メモリコントローラ３０経由で、ＥＣＣコード以外のMarked-ＵＥ等の任意の情報、例えば、図４を参照しながら後述するようなエラー情報を埋め込まれたＥＣＣを直接書き込むことができない。
【００１９】
メモリコントローラ３０は、図１および図３に示すように、ＣＰＵ１０とメモリ２０との間に備えられ、ＣＰＵ１０からメモリ２０へのアクセスを制御するもので、記憶部３０ａおよび処理部３０ｂを有している。
【００２０】
記憶部３０ａは、例えばＲＡＭ（Random Access Memory），ＦＦ（Flip-Flop），レジスタ等によって構成され、本実施形態では、エラー情報格納領域（データ格納領域）３１を有している。エラー情報格納領域３１は、図２および図３に示すように、例えば４つの領域（レコード）を有し、各領域（各レコード）は、アドレス領域３１ａ，データ領域３１ｂ，ＥＣＣ領域３１ｃおよび有効ビット領域３１ｄを有している。
【００２１】
エラー情報格納領域３１の各領域（各レコード）には、Marked-ＵＥ（エラー）が発生したことを示すエラー情報を含む、ＣＰＵ１０からメモリ２０へのライトデータ（第１書込みデータ）が、書込み先アドレス（アドレス０〜３）に対応付けられて格納される。
【００２２】
ここで、エラー情報を含むライトデータ（Marked-ＵＥの発生した書込みデータ）は、例えば図４に示すように、６４ビットのWord部分（データ部分）Data [63:0]と、当該Word部分についての８ビットのＥＣＣ [7:0]とを含む。Word部分のData [15:0]には、エラー情報としてのエラー原発情報（エラーＩＤ）が設定されている。Word部分におけるData 63, 35, 22の３ビットのデータは、反転もしくは不定状態となっている。これに対応し、ＥＣＣ [7:0]には、Data 63, 35, 22の３箇所にエラーがありシンドロームが7fになる値が設定されている。つまり、ＥＣＣ [7:0]には、３ビットエラーを表す特殊なシンドローム（0x7f）が、Marked-ＵＥを示す特殊なコードとして埋め込まれている。
【００２３】
そして、エラー情報格納領域３１において、アドレス領域３１ａには、書込み先アドレス（アドレス０〜３）が格納される。データ領域３１ｂには、エラー情報としてのエラー原発情報（エラーＩＤ）を含むライトデータのWord部分Data [63:0]（図４参照）が格納される。エラー原発情報（エラーＩＤ）は、Marked-ＵＥの発生箇所を特定可能な情報である。
【００２４】
また、ＥＥＣ領域３１ｃには、ＥＣＣ [7:0]（図４参照）が格納される。さらに、有効ビット領域３１ｄには、エラー情報格納領域３１の４つの領域（レコード）のそれぞれに格納されている情報（第１書込みデータ）が有効であるか無効であるかを示す値（１ビット情報）が格納される。有効ビット領域３１ｄには、例えば、上記情報が有効である場合に“１”が設定され、上記情報が無効である場合に“０”が設定される。
【００２５】
処理部３０ｂは、例えば、所定のプログラムを実行することにより、図１および図３に示すように、Marked-ＵＥコントローラ３２，アドレス比較部３３（第１アドレス比較部３３−１および第２アドレス比較部３３−２），データセレクタ３４としての機能を果たす。上記所定のプログラムは、記憶部３０ａに保存されていてもよいし、メモリコントローラ３０外の記憶領域から読み込まれてもよい。
【００２６】
Marked-ＵＥコントローラ（制御部）３２は、ＣＰＵ１０からメモリ２０へのライトデータ（第１書込みデータ）に、Marked-ＵＥが発生したことを示すエラー情報が含まれる場合、当該ライトデータを、メモリ２０に書き込むことなく、当該ライトデータの書込み先アドレスに対応付けてエラー情報格納領域３１（領域３１ａ〜３１ｃ）に格納する。
【００２７】
このとき、Marked-ＵＥコントローラ３２は、複数の領域のうち有効ビット領域３１ｄが無効を示す領域（領域３１ｄに“０”を設定された領域）の有無を判定することで、エラー情報格納領域３１に空きが有るか否かを判定する。領域３１ｄに“０”を設定されたエラー情報格納領域３１が有る場合つまりエラー情報格納領域３１に空きがある場合、Marked-ＵＥコントローラ３２は、当該ライトデータを書込み先アドレスに対応付けて格納するとともに、有効ビット領域３１ｄに有効を示す“１”を設定する。
【００２８】
一方、Marked-ＵＥコントローラ３２は、領域３１ｄに“０”を設定されたエラー情報格納領域３１が無い場合、つまりエラー情報格納領域３１に空きが無い場合、当該ライトデータをエラー情報格納領域３１に書き込むことができないので、ＣＰＵ１０に対しエラー通知を行なう。
【００２９】
第１アドレス比較部３３−１は、ＣＰＵ１０からメモリ２０への第２書込みデータ（ライトデータ）に上述したエラー情報が含まれていない場合、つまり第２書込みデータがMarked-ＵＥの生じていない正常なデータである場合、以下の比較を行なう。つまり、第１アドレス比較部３３−１は、第２書込みデータの書込み先アドレスと、エラー情報格納領域３１において、有効ビット領域３１ｄに有効を示す“１”を設定されたアドレス領域３１ａに格納される書込み先アドレスとを比較する。
【００３０】
第１アドレス比較部３３−１による比較の結果、第２書込みデータの書込み先アドレスとエラー情報格納領域３１における第１書込データの書込み先アドレスとが一致する場合、Marked-ＵＥコントローラ３２は、以下の処理を行なう。つまり、Marked-ＵＥコントローラ３２は、第１書込みデータを格納する領域に対応する有効ビット領域３１ｄに、無効を示す“０”を設定する。そして、Marked-ＵＥコントローラ３２は、Marked-ＵＥの生じていない正常なライトデータ（第２書込みデータ）を、メモリ２０における第２書込みデータの書込み先アドレス（第１書込みデータの書込み先アドレスと同じ）に書き込む。
【００３１】
一方、第１アドレス比較部３３−１による比較の結果、第２書込みデータの書込み先アドレスとエラー情報格納領域３１における第１書込みデータの書込み先アドレスとが不一致である場合、Marked-ＵＥコントローラ３２は、第２書込みデータを、メモリ２０における第２書込みデータの書込み先アドレスにそのまま書き込む。
【００３２】
第２アドレス比較部３３−２は、ＣＰＵ１０からメモリ２０への読出し要求（リード命令）を受けた場合、以下の比較を行なう。つまり、第２アドレス比較部３３−２は、当該読出し要求の読出しアドレスと、エラー情報格納領域３１において、有効ビット領域３１ｄに有効を示す“１”を設定されたアドレス領域３１ａにおける書込み先アドレスとを比較する。
【００３３】
データセレクタ（データ選択部）３４は、第２アドレス比較部３３−２による比較の結果、読出しアドレスとエラー情報格納領域３１における第１書込みデータの書込み先アドレスとが一致する場合、つまり当該読出し要求の読出し対象データがエラー情報格納領域３１に格納されている場合、以下の処理を行なう。つまり、データセレクタ３４は、エラー情報格納領域３１の、第１書込みデータの書込み先アドレスに対応する領域３１ｂ，３１ｃから、エラー情報を含む第１書込みデータを選択して読み出し、当該読出し要求に応じた読出しデータ（リードデータ）としてＣＰＵ１０に返信する。一般に、ＣＰＵ１０のアクセスは、キャッシュ単位（１２８バイトや２５６バイト等)で行なわれる。これに対し、データセレクタ３４は、ＣＰＵ１０にリードデータを返す際、リードデータを、Marked-ＵＥ情報を含むWord部分のデータ（８バイト；領域３１ｂ，３１ｃに格納されたデータ）に差し替える。
【００３４】
第２アドレス比較部３３−２による比較の結果、読出しアドレスとエラー情報格納領域３１における第１書込みデータの書込み先アドレスとが一致しない場合、つまり当該読出し要求の読出し対象データがエラー情報格納領域３１に格納されておらずメモリ２０に格納されている場合、データセレクタ３４は、以下の処理を行なう。つまり、データセレクタ３４は、メモリ２０の読出しアドレスからデータを選択して読み出し、読出し要求に応じたリードデータとしてＣＰＵ１０に返信する。
【００３５】
なお、本実施形態において、上述した第１アドレス比較部３３−１および第２アドレス比較部３３−２としての機能は、図３に示すように、一つのアドレス比較部３３によって実現されてもよい。
【００３６】
〔２〕本実施形態のメモリ制御装置を含む情報処理装置の動作
次に、図５および図６を参照しながら、上述のごとく構成された本実施形態のメモリコントローラ３０を含むサーバ１の動作について説明する。
【００３７】
〔２−１〕ライトリクエスト受信時の動作
まず、図５に示すフローチャート（ステップＳ１１〜Ｓ１８）に従って、図１および図３に示すメモリコントローラ３０のライトリクエスト受信時の動作について説明する。
【００３８】
Marked-ＵＥコントローラ３２によって、ＣＰＵ１０からライトデータを伴うライトリクエスト（書込み要求／書込み命令）が受信されると（ステップＳ１１）、ライトデータがMarked-ＵＥ情報を含むか否かが判断される（ステップＳ１２）。なお、Marked-ＵＥ情報を含むライトデータ（第１書込データ）は、図４に示すように構成されている。
【００３９】
ライトデータがMarked-ＵＥ情報を含んでいる場合（ステップＳ１２のＹＥＳルート；ライトデータが上記第１書込みデータである場合）、Marked-ＵＥコントローラ３２によって、エラー情報格納領域３１に空きが有るか否かが判定される。つまり、エラー情報格納領域３１における全ての有効ビット領域３１ｄに、“１”が設定されているか否かが判定される（ステップＳ１３）。
【００４０】
全ての有効ビット領域３１ｄに“１”が設定されていない場合（ステップＳ１３のＮＯルート）、つまり“０”を設定された有効ビット領域３１ｄが有りエラー情報格納領域３１に空きがある場合、Marked-ＵＥコントローラ３２によって、ステップＳ１４の処理が実行される。つまり、無効を示す“０”を設定された有効ビット領域３１ｄに対応するアドレス領域３１ａに、書込み先アドレス（ライトアドレス）がセットされ、当該有効ビット領域３１ｄに有効を示す“１”が設定される。そして、ライトデータおよびＥＣＣが、メモリ２０に書き込まれることなく、当該有効ビット領域３１ｄに対応する領域３１ｂおよび３１ｃに、書込み先アドレスに対応付けて格納される（ステップＳ１４）。
【００４１】
全ての有効ビット領域３１ｄに“１”が設定されている場合（ステップＳ１３のＹＥＳルート）、つまり“０”を設定された有効ビット領域３１ｄが無くエラー情報格納領域３１に空きが無い場合、Marked-ＵＥコントローラ３２によって、ステップＳ１５の処理が実行される。つまり、ライトデータをエラー情報格納領域３１に書き込むことができないので、エラーの割り込みがアサートされ、ＣＰＵ１０に対しエラー通知が行なわれる（ステップＳ１５）。
【００４２】
ライトデータがMarked-ＵＥ情報を含んでいない場合（ステップＳ１２のＮＯルート；ライトデータがMarked-ＵＥの生じていない正常なデータ（上記第２書込みデータ）である場合）、第１アドレス比較部３３−１によって、ステップＳ１６の処理が実行される。つまり、第２書込みデータの書込み先アドレスと、エラー情報格納領域３１において、有効ビット領域３１ｄに有効を示す“１”を設定されたアドレス領域３１ａに格納される書込み先アドレスとが比較される（ステップＳ１６）。
【００４３】
第１アドレス比較部３３−１による比較の結果、第２書込みデータの書込み先アドレスと同じアドレスが、エラー情報格納領域３１における有効領域に格納されている場合（ステップＳ１６のＹＥＳルート）、Marked-ＵＥコントローラ３２によって、ステップＳ１７の処理が実行される。つまり、第２書込みデータの書込み先アドレスと同じアドレスが格納されている領域についての有効ビット領域３１ｄに、無効を示す“０”が設定される。これにより、エラー情報格納領域３１に保存されている、Marked-ＵＥの生じたライトデータ（第１書込みデータ）は実質的に消去される。そして、Marked-ＵＥの生じていない正常なライトデータ（第２書込みデータ）は、メモリ２０へのライト処理によって、メモリ２０における第２書込みデータの書込み先アドレス（第１書込みデータの書込み先アドレスと同じ）に書き込まれる（ステップＳ１７）。
【００４４】
このようにして、エラー情報格納領域３１においてエラー情報（Marked-ＵＥ情報）が格納されているアドレスに対し、Marked-ＵＥの生じていない正常なライトデータの書込み要求があった場合、対応する有効ビット領域３１ｄに無効を示す“０”が設定され、正常なライトデータがメモリ２０の対応アドレスに書き込まれる。
【００４５】
一方、第１アドレス比較部３３−１による比較の結果、第２書込みデータの書込み先アドレスと同じアドレスが、エラー情報格納領域３１における有効領域に格納されていない場合（ステップＳ１６のＮＯルート）、Marked-ＵＥコントローラ３２によってステップＳ１８の処理（メモリ２０への通常のライト処理）が実行される。つまり、第２書込みデータは、エラー情報格納領域３１に格納されることなく、メモリ２０における第２書込みデータの書込み先アドレスにそのまま書き込まれる（ステップＳ１８）。
【００４６】
〔２−２〕リードリクエスト受信時の動作
ついで、図６に示すフローチャート（ステップＳ２１〜Ｓ２４）に従って、図１および図３に示すメモリコントローラ３０のリードリクエスト受信時の動作について説明する。
【００４７】
メモリコントローラ３０によって、ＣＰＵ１０からメモリ２０へのリードリクエスト（読出し要求／読出し命令）が受信されると（ステップＳ２１）、第２アドレス比較部３３−２によって、ステップＳ２２の処理が実行される。つまり、つまり、リードリクエストのリードアドレス（読出しアドレス）と、エラー情報格納領域３１において、有効ビット領域３１ｄに有効を示す“１”を設定されたアドレス領域３１ａにおける書込み先アドレスとが比較される（ステップＳ２２）。
【００４８】
第２アドレス比較部３３−２による比較の結果、リードリクエストのリードアドレスと同じアドレスが、エラー情報格納領域３１における有効領域に格納されている場合（ステップＳ２２のＹＥＳルート）、データセレクタ３４によって、ステップＳ２３の処理が実行される。つまり、エラー情報格納領域３１の、リードアドレスと同じアドレスに対応する領域３１ｂ，３１ｃから、エラー情報を含む第１書込みデータ（ＤＡＴＡ＋ＥＣＣ）が読み出され、リードリクエストに応じたリードデータとしてＣＰＵ１０に返信される（ステップＳ２３）。したがって、ＣＰＵ１０へのリードデータは、メモリ２０からのデータではなく、エラー情報格納領域３１からのMarked-ＵＥ情報を含むWord部分のデータ（領域３１ｂ，３１ｃに格納されたデータ）に差し替えられる。
【００４９】
一方、第２アドレス比較部３３−２による比較の結果、リードリクエストのリードアドレスと同じアドレスが、エラー情報格納領域３１における有効領域に格納されていない場合（ステップＳ２２のＮＯルート）、データセレクタ３４によって、ステップＳ２４の処理が実行される。つまり、メモリからの通常のリード処理が実行され、メモリ２０のリードアドレスからデータが読み出され、リードリクエストに応じたリードデータとしてＣＰＵ１０に返信される（ステップＳ２４）。
【００５０】
〔３〕本実施形態のメモリ制御装置を含む情報処理装置の効果
本実施形態のメモリコントローラ３０およびサーバ１によれば、メモリ２０のＥＣＣ領域２０ｂにプロセッサメモリシステムがエラー情報（Marked-ＵＥ）を直接書き込むことのできないメモリ（例えばＨＭＣ）を採用する場合であっても、エラー情報をメモリコントローラ３０のエラー情報格納領域３１に記録することが可能になる。
【００５１】
これにより、Marked-ＵＥの発生したデータはメモリコントローラ３０のエラー情報格納領域３１から読み出される。そして、ＣＰＵ１０は、読み出されたデータに対応するＥＣＣ領域に特殊なコードが書き込まれていれば当該データがＵＥの発生したデータであると認識することができる。したがって、ＣＰＵ１０の処理に必要のないデータがＵＥの発生したデータである場合、システムをそのまま運用できる一方、ＵＥの発生したデータが読み出された場合、そのデータがＵＥの発生したデータであると認識されＣＰＵ１０はＵＥについて何らかの対応を採ることができる。
【００５２】
また、Marked-ＵＥの発生頻度は高くはないため、メモリコントローラ３０のエラー情報格納領域３１として確保すべき記憶領域は少容量でよい。さらに、一つのエラーについて格納すべきデータは、アドレス情報，エラー原発情報（例えば８バイト），ＥＣＣおよび有効ビットを組み合わせた情報で、少容量で済む。このため、本実施形態の機能は、小規模な回路で構成し実現することができる。
【００５３】
一方、前述したように、エラー発生時には、ＯＳによってエラーの発生したページ全体をシステムから切り離すことが考えられ、この場合、緊急度の高い処理の実行中にエラーが発生すると、切離し処理が終わるまで、上記緊急度の高い処理を中断せざるを得なかった。また、エラーの発生した領域をページ単位でしか切り離すことができないため、ラージページ採用時には切り離す必要のある範囲が広くなっていた。
【００５４】
これに対し、本実施形態のメモリコントローラ３０を採用した場合、緊急度の高い処理の実行中にエラーが発生しても、エラー発生時点で最低限の処理（エラー情報の領域３１への格納）を行ない、後で残りの処理を行なうことが可能になる。したがって、上記緊急度の高い処理をほとんど中断することなく、ＵＥ等のエラーに対応することができる。
【００５５】
また、本実施形態のメモリコントローラ３０を採用した場合、ページ全体を切り離す必要がなくなり、エラーの発生した領域を含む処理単位（データブロック）だけを使用しないようにしてエラーに対応することができる。したがって、メモリのデータ領域の使用効率を低下させることなく、ＵＥ等のエラーに対応することができる。
【００５６】
〔４〕その他
以上、本発明の好ましい実施形態について詳述したが、本発明は、係る特定の実施形態に限定されるものではなく、本発明の趣旨を逸脱しない範囲内において、種々の変形、変更して実施することができる。
【００５７】
上述した実施形態では、エラー情報格納領域（データ格納領域）３１における領域（レコード）の数が４である場合について説明したが、本発明はこれに限定されるものではない。
【００５８】
また、上述したMarked-ＵＥコントローラ（制御部）３２，アドレス比較部３３（第１アドレス比較部３３−１および第２アドレス比較部３３−２），データセレクタ（データ選択部）３４としての機能を含む、メモリコントローラ（メモリ制御装置）３０の機能の全部もしくは一部は、コンピュータ（ＭＰＵ（Micro-Processing Unit），ＣＰＵ，各種端末を含む）が所定のプログラムを実行することによって実現されてもよい。
【００５９】
そのプログラムは、例えばフレキシブルディスク，ＣＤ（ＣＤ−ＲＯＭ，ＣＤ−Ｒ，ＣＤ−ＲＷなど），ＤＶＤ（ＤＶＤ−ＲＯＭ，ＤＶＤ−ＲＡＭ，ＤＶＤ−Ｒ，ＤＶＤ−ＲＷ，ＤＶＤ＋Ｒ，ＤＶＤ＋ＲＷなど），ブルーレイディスク等のコンピュータ読取可能な記録媒体に記録された形態で提供される。この場合、コンピュータはその記録媒体からプログラムを読み取って内部記憶装置または外部記憶装置に転送し格納して用いる。
【００６０】
〔５〕付記
以上の実施形態に関し、さらに以下の付記を開示する。
（付記１）
演算処理装置と記憶装置との間に備えられ、前記演算処理装置から前記記憶装置へのアクセスを制御するメモリ制御装置であって、
データ格納領域と、
前記演算処理装置から前記記憶装置への第１書込みデータに、エラーが発生したことを示すエラー情報が含まれる場合、前記第１書込みデータを、前記第１書込みデータの書込み先アドレスに対応付けて前記データ格納領域に格納する制御部と、を有するメモリ制御装置。
【００６１】
（付記２）
前記データ格納領域には、複数の前記第１書込みデータをそれぞれ格納する複数の領域が備えられ、
前記領域毎に、前記領域に格納される前記第１書込みデータの有効／無効を示すビットが設けられ、
前記制御部は、前記複数の領域のうち前記ビットが無効を示す領域に、前記第１書込みデータを前記書込み先アドレスに対応付けて格納する、付記１記載のメモリ制御装置。
【００６２】
（付記３）
前記制御部は、前記第１書込みデータを書き込む、前記ビットが無効を示す領域が無い場合、前記演算処理装置に対しエラー通知を行なう、付記２記載のメモリ制御装置。
【００６３】
（付記４）
前記演算処理装置から前記記憶装置への第２書込みデータに前記エラー情報が含まれていない場合、前記第２書込みデータの書込み先アドレスと、前記複数の領域のうち前記ビットが有効を示す領域における前記第１書込みデータの書込み先アドレスとを比較する第１アドレス比較部を有し、
前記第１アドレス比較部による比較の結果、前記第２書込みデータの書込み先アドレスと前記第１書込みデータの書込み先アドレスとが一致する場合、前記制御部は、前記第１書込みデータを格納する前記領域の前記ビットを無効にするとともに、前記第２書込みデータを前記記憶装置における前記第２書込みデータの書込み先アドレスに書き込む、付記２または付記３に記載のメモリ制御装置。
【００６４】
（付記５）
前記第１アドレス比較部による比較の結果、前記第２書込みデータの書込み先アドレスと前記第１書込みデータの書込み先アドレスとが不一致である場合、前記制御部は、前記第２書込みデータを前記記憶装置における前記第２書込みデータの書込み先アドレスに書き込む、付記４記載のメモリ制御装置。
【００６５】
（付記６）
前記演算処理装置から前記記憶装置への読出し要求を受けた場合、前記読出し要求の読出しアドレスと、前記複数の領域のうち前記ビットが有効を示す領域における前記第１書込みデータの書込み先アドレスとを比較する第２アドレス比較部と、
前記第２アドレス比較部による比較の結果、前記読出しアドレスと前記第１書込みデータの書込み先アドレスとが一致する場合、前記データ格納領域の、前記第１書込みデータの書込み先アドレスに対応する領域から、前記第１書込みデータを選択して読み出し、前記読出し要求に対する読出しデータとして前記演算処理装置に返信するデータ選択部と、を有する、付記２〜付記５のいずれか一項に記載のメモリ制御装置。
【００６６】
（付記７）
前記第２アドレス比較部による比較の結果、前記読出しアドレスと前記第１書込みデータの書込み先アドレスとが不一致である場合、前記データ選択部は、前記記憶装置の前記読出しアドレスからデータを選択して読み出し、前記読出し要求に対する読出しデータとして前記演算処理装置に返信する、付記６記載のメモリ制御装置。
【００６７】
（付記８）
前記データ格納領域に格納される前記第１書込みデータは、前記エラー情報としてのエラー原発情報を含むデータ部分と、前記エラーが発生したことを示すコードを前記エラー情報として埋め込まれた、当該データ部分についてのＥＣＣ（Error Correcting Code）とを含む、付記１〜付記７のいずれか一項に記載のメモリ制御装置。
【００６８】
（付記９）
前記記憶装置は、前記第１書込みデータについてのＥＣＣ（Error Correcting Code）領域に対し前記エラー情報を埋め込まれた前記ＥＣＣを書き込むことのできないメモリである、付記８記載のメモリ制御装置。
【００６９】
（付記１０）
前記メモリは、ＨＭＣ（Hybrid Memory Cube）である、付記９記載のメモリ制御装置。
【００７０】
（付記１１）
演算処理装置と、
記憶装置と、
前記演算処理装置と前記記憶装置との間に備えられ、前記演算処理装置から前記記憶装置へのアクセスを制御するメモリ制御装置と、を有し、
前記メモリ制御装置は、
データ格納領域と、
前記演算処理装置から前記記憶装置への第１書込みデータに、エラーが発生したことを示すエラー情報が含まれる場合、前記第１書込みデータを、前記第１書込みデータの書込み先アドレスに対応付けて前記データ格納領域に格納する制御部と、を有する、情報処理装置。
【００７１】
（付記１２）
前記データ格納領域には、複数の前記第１書込みデータをそれぞれ格納する複数の領域が備えられ、
前記領域毎に、前記領域に格納される前記第１書込みデータの有効／無効を示すビットが設けられ、
前記制御部は、前記複数の領域のうち前記ビットが無効を示す領域に、前記第１書込みデータを前記書込み先アドレスに対応付けて格納する、付記１１記載の情報処理装置。
【００７２】
（付記１３）
前記制御部は、前記第１書込みデータを書き込む、前記ビットが無効を示す領域が無い場合、前記演算処理装置に対しエラー通知を行なう、付記１２記載の情報処理装置。
【００７３】
（付記１４）
前記メモリ制御装置は、
前記演算処理装置から前記記憶装置への第２書込みデータに前記エラー情報が含まれていない場合、前記第２書込みデータの書込み先アドレスと、前記複数の領域のうち前記ビットが有効を示す領域における前記第１書込みデータの書込み先アドレスとを比較する第１アドレス比較部を有し、
前記第１アドレス比較部による比較の結果、前記第２書込みデータの書込み先アドレスと前記第１書込みデータの書込み先アドレスとが一致する場合、前記制御部は、前記第１書込みデータを格納する前記領域の前記ビットを無効にするとともに、前記第２書込みデータを前記記憶装置における前記第２書込みデータの書込み先アドレスに書き込む、付記１２または付記１３に記載の情報処理装置。
【００７４】
（付記１５）
前記第１アドレス比較部による比較の結果、前記第２書込みデータの書込み先アドレスと前記第１書込みデータの書込み先アドレスとが不一致である場合、前記制御部は、前記第２書込みデータを前記記憶装置における前記第２書込みデータの書込み先アドレスに書き込む、付記１４記載の情報処理装置。
【００７５】
（付記１６）
前記メモリ制御装置は、
前記演算処理装置から前記記憶装置への読出し要求を受けた場合、前記読出し要求の読出しアドレスと、前記複数の領域のうち前記ビットが有効を示す領域における前記第１書込みデータの書込み先アドレスとを比較する第２アドレス比較部と、
前記第２アドレス比較部による比較の結果、前記読出しアドレスと前記第１書込みデータの書込み先アドレスとが一致する場合、前記データ格納領域の、前記第１書込みデータの書込み先アドレスに対応する領域から、前記第１書込みデータを選択して読み出し、前記読出し要求に対する読出しデータとして前記演算処理装置に返信するデータ選択部と、を有する、付記１２〜付記１５のいずれか一項に記載の情報処理装置。
【００７６】
（付記１７）
前記第２アドレス比較部による比較の結果、前記読出しアドレスと前記第１書込みデータの書込み先アドレスとが不一致である場合、前記データ選択部は、前記記憶装置の前記読出しアドレスからデータを選択して読み出し、前記読出し要求に対する読出しデータとして前記演算処理装置に返信する、付記１６記載の情報処理装置。
【００７７】
（付記１８）
前記データ格納領域に格納される前記第１書込みデータは、前記エラー情報としてのエラー原発情報を含むデータ部分と、前記エラーが発生したことを示すコードを前記エラー情報として埋め込まれた、当該データ部分についてのＥＣＣ（Error Correcting Code）とを含む、付記１１〜付記１７のいずれか一項に記載の情報処理装置。
【００７８】
（付記１９）
前記記憶装置は、前記第１書込みデータについてのＥＣＣ（Error Correcting Code）領域に対し前記エラー情報を埋め込まれた前記ＥＣＣを書き込むことのできないメモリである、付記１８記載の情報処理装置。
【００７９】
（付記２０）
演算処理装置と記憶装置との間において前記演算処理装置から前記記憶装置へのアクセスを制御するメモリ制御装置を有する情報処理装置の制御方法であって、
前記演算処理装置から前記記憶装置への書込みデータを受け、
前記第１書込みデータに、エラーが発生したことを示すエラー情報が含まれる場合、前記書込みデータを、前記書込みデータの書込み先アドレスに対応付けて前記メモリ制御装置におけるデータ格納領域に格納する、情報処理装置の制御方法。
【符号の説明】
【００８０】
１    サーバ（情報処理装置）
１０    ＣＰＵ（演算処理装置）
２０    メモリ（主記憶装置；ＨＭＣ）
２０ａ    データ領域
２０ｂ    ＥＣＣ領域
３０    メモリコントローラ（メモリ制御装置）
３０ａ    記憶部（ＲＡＭ，ＦＦ，レジスタ）
３０ｂ    処理部
３１    エラー情報格納領域（データ格納領域）
３１ａ    アドレス領域
３１ｂ    データ領域
３１ｃ    ＥＣＣ領域
３１ｄ    有効ビット領域
３２    Marked-ＵＥコントローラ（制御部）
３３    アドレス比較部
３３−１    第１アドレス比較部
３３−２    第２アドレス比較部
３４    データセレクタ（データ選択部）
【図１】
2015064770.tif 000003
【図２】
2015064770.tif 000004
【図３】
2015064770.tif 000005
【図４】
2015064770.tif 000006
【図５】
2015064770.tif 000007
【図６】
2015064770.tif 000008