(57)【要約】 【課題】予期せぬ電源喪失時でも、バックアップ電源を用いることなく、また高価な不揮発メモリの使用量をできるだけ少なくしながら、メインメモリからまだ書き戻されていないデータを正常に書き戻す。【解決手段】メモリシステムは、揮発性の第１記憶部と、第１記憶部よりも記憶容量が小さく、不揮発性の第２記憶部と、プロセッサからの書込命令に応じて、第１記憶部に書き込むべき又は書き込まれたデータと、第１記憶部内の書込先を示すアドレス情報と、第１記憶部に書き込まれたデータが書き戻される不揮発性の第３記憶部内の書込先を示すアドレス情報とを含むデータセットを第２記憶部に記憶する制御を行う記憶制御部と、を備える。【選択図】図１
2019121195.tif 000002
【特許請求の範囲】
【請求項１】
揮発性の第１記憶部と、
前記第１記憶部よりも記憶容量が小さく、不揮発性の第２記憶部と、
プロセッサからの書込命令に応じて、前記第１記憶部に書き込むべき又は書き込まれたデータと、前記第１記憶部内の書込先を示すアドレス情報と、前記第１記憶部に書き込まれたデータが書き戻される不揮発性の第３記憶部内の書込先を示すアドレス情報とを含むデータセットを前記第２記憶部に記憶する制御を行う記憶制御部と、を備える、メモリシステム。
【請求項２】
前記記憶制御部は、前記第１記憶部内のデータを前記第３記憶部に書き戻す前に、前記第１記憶部内のデータが失われた場合には、前記第２記憶部内に記憶された前記データセットに基づいて、書き戻されるべきデータを前記第３記憶部に書き戻す、請求項１に記載のメモリシステム。
【請求項３】
前記第１記憶部、前記第２記憶部及び前記記憶制御部が実装された第１部材を備え、
前記第３記憶部は、前記第１部材とは別個の第２部材に設けられる、請求項１または２に記載のメモリシステム。
【請求項４】
前記第２記憶部に記憶された前記データセットの少なくとも一部を記憶する、不揮発性の第４記憶部を備え、
前記記憶制御部は、前記プロセッサが書込命令を実行してから次の書込命令を実行するまでの間に、前記第２記憶部に記憶された前記データセットの少なくとも一部を前記第４記憶部に記憶する制御を行い、かつ前記第２記憶部に記憶された前記データセットのうち、前記第４記憶部への記憶が完了したデータセットの上書きを許可する、請求項１または２に記載のメモリシステム。
【請求項５】
前記第１記憶部、前記第２記憶部、前記第４記憶部及び前記記憶制御部が実装された第１部材を備え、
前記第３記憶部は、前記第１部材とは別個の第２部材に設けられる、請求項４に記載のメモリシステム。
【請求項６】
前記第２記憶部に記憶された前記データセットの少なくとも一部を記憶する、不揮発性の第４記憶部を備え、
前記記憶制御部は、前記第１記憶部内のデータを前記第３記憶部に書き戻す前に、前記第１記憶部内のデータが失われた場合には、前記第２記憶部内に記憶された前記データセットを前記第４記憶部に書き戻す、請求項１に記載のメモリシステム。
【請求項７】
前記第１記憶部が実装された第１部材と、
前記第２記憶部、前記第４記憶部及び前記記憶制御部が実装された第２部材と、を備え、
前記第３記憶部は、前記第１部材及び前記第２部材とは別個の第３部材に設けられる、請求項６に記載のメモリシステム。
【請求項８】
前記第２記憶部への書込速度は、前記第４記憶部への書込速度よりも速い、請求項４乃至７のいずれか一項に記載のメモリシステム。
【請求項９】
前記記憶制御部は、前記第４記憶部に書き込まれた前記データセットに基づいて、書き戻されるべきデータを前記第３記憶部に書き戻す、請求項４乃至８のいずれか一項に記載のメモリシステム。
【請求項１０】
前記第１記憶部がそれぞれ実装された複数の第１部材と、
前記複数の第１部材のそれぞれに実装された前記第１記憶部に対応する前記データセットをそれぞれ記憶する複数の前記第２記憶部と、前記記憶制御部と、が実装された第２部材と、を備え、
前記第３記憶部は、前記第１部材及び前記第２部材とは別個の第３部材に設けられる、請求項１に記載のメモリシステム。
【請求項１１】
前記データセットはさらに前記第１記憶部に書き込むべき又は書き込まれたデータの属性情報を含み、前記記憶制御部は、当該データセットを前記第２記憶部に記憶する制御を行う、請求項１乃至１０のいずれか一項に記載のメモリシステム。
【請求項１２】
前記第２記憶部への書込レーテンシは１００ｎｓ以下である、請求項１乃至１１のいずれか一項に記載のメモリシステム。
【請求項１３】
前記第２記憶部は、ＭＲＡＭ（Magnetoresistive Random Access Memory）である、請求項１乃至１２のいずれか一項に記載のメモリシステム。
【請求項１４】
前記第１記憶部、前記第２記憶部及び前記記憶制御部が実装されるＤＩＭＭ（Dual Inline Memory Module）を備える、請求項１乃至１３のいずれか一項に記載のメモリシステム。
【請求項１５】
プロセッサと、
前記プロセッサによりアクセスされるメモリシステムと、を備え、
前記メモリシステムは、
揮発性の第１記憶部と、
前記第１記憶部よりも記憶容量が小さく、不揮発性の第２記憶部と、
プロセッサからの書込命令に応じて、前記第１記憶部に書き込むべき又は書き込まれたデータと、前記第１記憶部内の書込先を示すアドレス情報と、前記第１記憶部に書き込まれたデータが書き戻される不揮発性の第３記憶部内の書込先を示すアドレス情報とを含むデータセットを前記第２記憶部に記憶する制御を行う記憶制御部と、を備える、プロセッサシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明の実施形態は、メモリシステム及びプロセッサシステムに関する。
【背景技術】
【０００２】
予期せぬ電源喪失時でもメインメモリのデータを安全に保持する高信頼性メインメモリは、一般にパーシスタントメモリ（Persistent Memory）と呼ばれている。この種のメモリに関する標準規格として、ＮＶＤＩＭＭ（Non-Volatile Dual Inline Memory Module）が策定されている。
【０００３】
ＮＶＤＩＭＭは、メインメモリとして用いられるＤＲＡＭ（Dynamic Random Access Memory）と、ＤＲＡＭ用のバックアップ電源と、ＮＡＮＤフラッシュメモリと、ＮＶＤＩＭＭ用のメモリコントローラとを備えている。ＮＶＤＩＭＭの電源が喪失すると、バックアップ電源を用いてＤＲＡＭ内のデータをＮＡＮＤフラッシュメモリに待避させる。バックアップ電源は、電池やスーパーキャパシタなどで構成されるが、バックアップ電源の実装面積がシステムの小型化を妨げ、またバックアップ電源を設けることで部品コストが上昇する。
【０００４】
メインメモリを、ＤＲＡＭではなく、ＭＲＡＭ（Magnetoresistive RAM）等の高速の不揮発メモリにすれば、バックアップ電源が不要になるが、高速の不揮発メモリはメモリセルの微細化が困難であり、ＤＲＡＭよりもビット単価が高いことから、汎用的な用途には向かない。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２０１７−７３１２９号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
本発明が解決しようとする課題は、予期せぬ電源喪失時でも、メインメモリからまだ書き戻されていないデータを良好な信頼性で書き戻すことができるメモリシステム及びプロセッサシステムを提供するものである。
【課題を解決するための手段】
【０００７】
本実施形態によれば、揮発性の第１記憶部と、
前記第１記憶部よりも記憶容量が小さく、不揮発性の第２記憶部と、
プロセッサからの書込命令に応じて、前記第１記憶部に書き込むべき又は書き込まれたデータと、前記第１記憶部内の書込先を示すアドレス情報と、前記第１記憶部に書き込まれたデータが書き戻される不揮発性の第３記憶部内の書込先を示すアドレス情報とを含むデータセットを前記第２記憶部に記憶する制御を行う記憶制御部と、を備える、メモリシステムが提供される。
【図面の簡単な説明】
【０００８】
【図１】第１の実施形態によるメモリシステムを備えたプロセッサシステムの概略構成を示すブロック図。
【図２】第２メモリコントローラの動作を説明する図。
【図３】第２記憶部内のデータ構成を示す図。
【図４】メインメモリが１日当たりに第３記憶部に書き戻すデータ総量を示すグラフ。
【図５】メインメモリへの書き戻し頻度を示すグラフ。
【図６】第２の実施形態によるメモリシステムを備えたプロセッサの概略構成を示すブロック図。
【図７】第３の実施形態によるメモリシステムを備えたプロセッサの概略構成を示すブロック図。
【図８】第４の実施形態によるメモリシステムを備えたプロセッサの概略構成を示すブロック図。
【発明を実施するための形態】
【０００９】
以下、図面を参照して本発明の実施形態を説明する。以下の実施形態では、メモリシステム１及びプロセッサシステム２内の特徴的な構成および動作を中心に説明するが、メモリシステム１及びプロセッサシステム２には以下の説明で省略した構成および動作が存在しうる。以下では、メモリシステム１及びプロセッサシステム２の特徴的な構成及び動作を主に説明する。
【００１０】
（第１の実施形態）
図１は第１の実施形態によるメモリシステム１を備えたプロセッサシステム２の概略構成を示すブロック図である。図１のプロセッサシステム２は、プロセッサ３とメモリシステム１とを備えている。プロセッサ３の内部には、キャッシュメモリ４と、第１メモリコントローラ５とが設けられている。なお、キャッシュメモリ４は、２段階以上に階層化されていてもよい。また、第１メモリコントローラ５は、プロセッサ３とは別に設けられてもよい。第１メモリコントローラ５は、メモリシステム１に対するプロセッサのアクセスを制御する。ここで、アクセスとは、メモリシステム１へのデータの書込とメモリシステム１からのデータの読出である。
【００１１】
メモリシステム１は、例えばＪＥＤＥＣ（Joint Electron Device Engineering Council）で標準化されたＤＩＭＭソケットに嵌装されるＤＩＭＭ６を備えていてもよいし、ＤＩＭＭ６以外のメモリボード（部材）を備えていてもよい。また、ＤＩＭＭ６等のメモリボードは、１枚だけ設けられてもよいし、複数枚設けられてもよい。以下では、メモリシステム１がＤＩＭＭ６を備える例を説明する。
【００１２】
ＤＩＭＭ６上には、第１記憶部７と、第２記憶部８と、第２メモリコントローラ（記憶制御部）９とが実装されている。第１記憶部７は、例えばＤＲＡＭ１０等の揮発メモリである。図１では、第１記憶部７としてＤＲＡＭ１０を用いる例を示している。プロセッサ３は、第１記憶部７をメインメモリとしてアクセスする。プロセッサ３が第１記憶部７にアクセスする際には、物理アドレスにてアクセス場所を指定する。
【００１３】
第２記憶部８は、ＭＲＡＭ等の高速の不揮発メモリ（ｈＮＶＭ）１１である。第２記憶部８は、少なくともＤＲＡＭ１０と同程度あるいはそれ以上の速度で書込を行えるのが望ましい。より望ましくは、第２記憶部８は、１００ｎｓ以下の書込レーテンシを持っている。第２記憶部８は、１００ｎｓ以下の書込レーテンシを持っていればよいため、必ずしもＭＲＡＭで構成する必要はなく、他の不揮発メモリで構成してもよい。第２記憶部８は、第１記憶部７よりも記憶容量が小さい。第２記憶部８は、第１記憶部７よりも、単位ビット当たりのコストが高い。しかし、本実施形態では、第２記憶部８の記憶容量を第１記憶部７よりも大幅に小さくすることにより、部品コストの過度な上昇を抑制し、バックアップ電源が不要になることにより、総コストの低減を実現することができる。
【００１４】
第２メモリコントローラ９は、プロセッサ３からの書込命令に応じて、第１記憶部７に書き込むべき又は書き込まれたデータと、第１記憶部７内の書込先を示すアドレス情報と、第１記憶部７に書き込まれたデータが書き戻される不揮発性の第３記憶部１２内の書込先を示すアドレス情報とを含むデータセットを第２記憶部８に記憶する。
【００１５】
第３記憶部１２は、第１記憶部７と第２記憶部８とは別個に設けられるＳＳＤ（Solid State Disk）１３等の不揮発メモリ、あるいはＨＤＤ（Hard Disk Drive）等の不揮発性の記憶装置である。図１では、第３記憶部１２としてＳＳＤ１３を用いる例を示している。本実施形態では、第３記憶部１２の記憶容量を、第１記憶部７と第２記憶部８の記憶容量よりも大きくすることを想定している。一例として、第１記憶部７は１６Ｇバイト、第２記憶部８は１Ｇバイト、第３記憶部１２は１Ｔバイトである。図１では、ＳＳＤ１３からなる第３記憶部１２をメモリボード１４に実装する例を示している。メモリボード１４は、ＤＩＭＭ６であってもよいし、ＰＣＩｅ（Peripheral Component Interconnect express）等の標準規格のインターフェースを持つものでもよいし、標準規格でない独自のインタフェースを持つメモリボードでもよい。
【００１６】
図２は第２メモリコントローラ９の動作を説明する図である。図２に示すように、第１メモリコントローラ５は、第１記憶部７（例えばＤＲＡＭ１０）に対して、データと、アドレス信号と、クロック信号と、各種制御信号とを出力する。アドレス信号には、ＣＡＳとＲＡＳの２種類がある。制御信号には、バンクセレクトＢＳ、チップセレクトＣＳ、ライトイネーブルＷＥなどがある。これらの信号は、第１メモリコントローラ５のインタフェース部から外部バスを通って第１記憶部７のインタフェース部に出力される。そこで、これらの信号を外部バスから分岐させて、第２メモリコントローラ９に取り込む。第２メモリコントローラ９は、取り込まれた各信号に基づいて、第１記憶部７に書き込むべき又は書き込まれたデータと、第１記憶部７内の書込先を示すアドレス情報と、第１記憶部７に書き込まれたデータが書き戻される第３記憶部１２内の書込先を示すアドレス情報とを含むデータセットを第２記憶部８に記憶する。第３記憶部１２内の書込先を示すアドレス情報は、例えばＯＳ（Operating System)に問い合わせることで検出できる。また、第２メモリコントローラ９は、他の属性情報をデータセットに含めて第２記憶部８に記憶してもよい。属性情報は、例えばデータが有効か無効か、そのデータがＳＳＤやＨＤＤに既に書き戻しされているかどうか、等を示す情報などである。なお、この属性情報を第２の記憶部８に記憶するかどうかは、オプションとして選択できる。第２記憶部８は、第１の記憶部７とは別の独自アドレスを持たせて書き込みの物理的な場所を制御してもいいし、独自アドレス無しに単純に時系列的に順番に書き込んでいくのでもよい。
上記データセットの情報を使って、第２メモリコントローラ９は、電源復帰時に、第３記憶部１２へデータを書き戻すことができる。また、電源正常時にはＯＳが自動的に、第３記憶部１２へデータを順次書き戻していく。第２メモリコントローラ９は、この情報をＯＳから拾い上げ、相当するデータセットの属性に、それぞれデータ書き戻しが完了したことを書き込んでおくこともできる。このデータは、いつでも消去可能なデータとなる。
【００１７】
図３は第２記憶部８内のデータ構成を示す図である。図示のように、第２記憶部８は、第１記憶部７（メインメモリ）内の書込アドレスと、第３記憶部１２（ＳＳＤ１３）内の書込アドレスと、書込データと、属性とを含むデータセットを記憶している。
【００１８】
図４はSpec2006というプロセッサベンチマークソフト群の一部を使ったシミュレーション結果で、それぞれのソフトを１日中連続動作させた場合の、一般的なメインメモリへの書込回数、すなわちメインメモリが１日当たりに第３記憶部１２に書き戻すデータ総量を示すグラフである。図４の横軸はアプリケーションソフトウェアの種類、縦軸は１日当たりに書き戻すデータ総量である。図４の計算結果は、３．２ＧＨｚの動作速度でプロセッサ３を動作させ、キャッシュ構成を３２ｋバイトの１次キャッシュと１Ｍバイトの２次キャッシュとし、メインメモリの容量を１６Ｇバイトとした場合のシミュレーション結果を示している。
【００１９】
図４からわかるように、アプリケーションソフトウェアによって、メインメモリに書き戻すデータ総量は大きく異なるが、最もデータ総量が多いアプリケーション・ソフトウェアであっても、１Ｇバイト未満である。
【００２０】
本実施形態による第２記憶部８は、第１記憶部７内のデータのうち、更新したデータに関するデータセットを記憶するものである。よって、図４の結果から、第１記憶部７の記憶容量が１６Ｇバイトの場合には、一日に一回ＳＳＤやＨＤＤにバックアップを取れば、第２記憶部８の記憶容量は１Ｇバイトあれば十分である。図４の縦軸のデータ総量は、メインメモリの記憶容量に比例して変化すると考えられる。したがって、第１記憶部７の記憶容量が３２Ｇバイトの場合には、第２記憶部８の記憶容量は２Ｇバイト程度必要となる。これらの容量を用意しておき、第２記憶部８に全てデータセットが書き込まれた後には、新しいデータセットを古いデータセットの上に順番に上書きすればよい。
【００２１】
図５はメインメモリへの書き戻し頻度を示すグラフである。図５は、代表的な複数のアプリケーションソフトウェアのそれぞれごとに、書き戻し頻度をシミュレーションにより計算した結果を示している。メインメモリへの書き戻しは、６４バイトを単位として行われるが、６４バイトの書き戻し頻度は平均で２００〜３００ｎｓ（すなわち、約２〜３Ｇバイト／ｓ）、速いものでは２０〜３０ｎｓ間隔である。よって、第２記憶部８としては、数十ｎｓでの高速の書込が可能な不揮発メモリが必要となる。数十ｎｓでの高速書込ができない不揮発メモリを第２記憶部８として用いた場合には、プロセッサ３が第１記憶部７に対して書込指令を行ったデータに関するデータセットを第２記憶部８に書き込むのに時間がかかるため、第２記憶部８への書込が完了するまでプロセッサ３は待機しなければならず、プロセッサ３の処理性能が低下してしまう。現状では、数十ｎｓでの高速書込が可能な不揮発メモリは、ＳＴＴ（Spin Transfer Torque）−ＭＲＡＭくらいしかない。第２メモリコントローラ９のインタフェース部分に高速のバッファを設けることで、第２記憶部８への書込速度に対する要求が多少緩和されるが、プロセッサ３の処理性能の維持が要求される場合には、望ましい書込レーテンシは１００ｎｓ以下である。
【００２２】
次に、図１のメモリシステム１の動作を説明する。プロセッサ３は、第１記憶部７をメインメモリとして、データの書き込みと読み出しを行う。より具体的には、プロセッサ３がメインメモリに対するアクセス要求を行うと、第１メモリコントローラ５は、プロセッサ３のアクセス要求に応じて、データ、アドレス信号、クロック信号、各種の制御信号を第１記憶部７に送って、第１記憶部７に対するデータの書き込みと読み出しを行う。
【００２３】
第１メモリコントローラ５が第１記憶部７に送ったデータ、アドレス信号、クロック信号、各種の制御信号は、第２メモリコントローラ９にも送られる。第２メモリコントローラ９は、これらの信号に基づいて、プロセッサ３がメインメモリである第１記憶部７への書込指令を出したか否かを監視し、書込指令を出した場合には、第１記憶部７に書き込むべき又は書き込まれたデータと、第１記憶部７内の書込先を示すアドレス情報と、第１記憶部７に書き込まれたデータが書き戻される第３記憶部１２内の書込先を示すアドレス情報とを含むデータセットを第２記憶部８に記憶する。
【００２４】
ここで、停電等の意図しない電源喪失により、第１記憶部７内のデータが消去されてしまった場合でも、第２記憶部８には、第１記憶部７内の最新のデータに関するデータセットが記憶されている。よって、その後に電源が復旧した後に、第２メモリコントローラ９は、第２記憶部８内のデータセットに基づいて、本来書き戻すべきであったデータを第３記憶部１２に書き戻す制御を行う。これにより、第１記憶部７内のデータが意図せず消去されてしまった場合でも、第３記憶部１２には必要なすべてのデータを書き込むことができる。
【００２５】
図１において、複数のＤＩＭＭ６が設けられる場合には、複数のＤＩＭＭ６で一つの第３記憶部１２を共有してもよいし、各ＤＩＭＭ６ごとに第３記憶部１２を設けてもよい。また、第３記憶部１２とは別個に、第３記憶部１２よりも大容量のＨＤＤなどを設けて、第３記憶部１２が満杯になる前にＨＤＤにデータを待避させてもよい。
【００２６】
図１では、第１メモリコントローラ５をプロセッサ３の内部に設け、第２メモリコントローラ９をＤＩＭＭ６等のメモリボードに設ける例を示したが、第２メモリコントローラ９はプロセッサ３の内部に設けてもよいし、あるいは第３記憶部１２が実装される別のメモリボードに設けてもよい。
【００２７】
このように、第１の実施形態では、揮発性の第１記憶部７より記憶容量が小さく不揮発性の第２記憶部８を設け、プロセッサ３が第１記憶部７に書込指令を出した場合には、第１記憶部７に書き込むべき又は書き込まれたデータと、第１記憶部７内の書込先を示すアドレス情報と、第１記憶部７に書き込まれたデータが書き戻される第３記憶部１２内の書込先を示すアドレス情報とを含むデータセットを第２記憶部８に記憶する。これにより、意図しない電源喪失等により第１記憶部７内のデータが消去されてしまった場合でも、第２記憶部８には、第３記憶部１２に書き戻されるべきデータに関するデータセットが保持されているため、電源復旧後に、第２記憶部８から第３記憶部１２に必要なデータを書き戻すことができる。
【００２８】
本実施形態によれば、第１記憶部７よりも値段が高い高速の不揮発メモリである第２記憶部８の記憶容量が小さくても、プロセッサ３が第１記憶部７に書込指令を出したデータに関するデータセットすべてを第２記憶部８に記憶できる。また、本実施形態では、メモリシステム１の意図しない電源喪失のためのバックアップ電源が不要となるため、コストをそれほどかけることなく、かつバックアップ電源のような大きなスペースを要することなく、第１記憶部７の意図しないデータ消去のための対策を行うことができる。
【００２９】
（第２の実施形態）
図６は第２の実施形態によるメモリシステム１を備えたプロセッサ３の概略構成を示すブロック図である。図６のメモリシステム１は、ＤＩＭＭ６等のメモリボードを備えている。メモリボードは、複数あっても構わない。図６では、メモリボードとしてＤＩＭＭ６を設ける例を示している。
【００３０】
ＤＩＭＭ６上には、第１記憶部７と、第２記憶部８と、第２メモリコントローラ９とが実装される他に、不揮発性の第４記憶部１５も実装されている。第４記憶部１５は、例えばＮＡＮＤフラッシュメモリ１６である。第４記憶部１５は、第２記憶部８よりも記憶容量が大きく、第３記憶部１２よりは記憶容量が小さいことを想定している。なお、図６の第２メモリコントローラ９は、プロセッサ３内に設けてもよい。
【００３１】
図６のメモリシステム１では、プロセッサ３がメインメモリである第１記憶部７に書込指令を出した場合、第２メモリコントローラ９は、第１記憶部７に書き込むべき又は書き込まれたデータと、第１記憶部７内の書込先を示すアドレス情報と、第１記憶部７に書き込まれたデータが書き戻される第３記憶部１２内の書込先を示すアドレス情報とを含むデータセットを第２記憶部８に記憶する。ここまでは、第１の実施形態と同様であるが、第２の実施形態による第２メモリシステム１は、第１記憶部７に電源が供給されている間でも、プロセッサ３の処理の合間、すなわちプロセッサ３が書込命令を実行してから次の書込命令を実行するまでの間に、第２記憶部８内のデータセットを第４記憶部１５にコピーする処理を行う。第４記憶部１５にコピーされたデータセットは、第２記憶部８内に保持し続ける必要はないため、その後にプロセッサ３が第１記憶部７に書込指令を出すと、書き戻されるべき新たなデータに関するデータセットを第２記憶部８に上書きする。このように、第２記憶部８内のデータセットは、第４記憶部１５にコピーされた後は、プロセッサ３が新たに第１記憶部７に書き込んだデータに関するデータセットに上書きされる。これにより、第２記憶部８の記憶容量を第１の実施形態よりも大幅に削減できる。
【００３２】
第４記憶部１５は、第１記憶部７や第２記憶部８と同じＤＩＭＭ６上に実装されるため、第２記憶部８内のデータセットを高速にコピーすることができる。なお、第４記憶部１５へのデータ書込は、プロセッサ３の処理の合間、すなわちプロセッサ３が書込命令を実行してから次の書込命令を実行するまでの間にバックグランド処理で行われるため、第４記憶部１５の書込速度は第２記憶部８ほど高速である必要はない。よって、汎用のＮＡＮＤフラッシュメモリ１６で十分である。
【００３３】
第２メモリコントローラ９は、電源の喪失により第１記憶部７内のデータが失われた後、再び電源が復旧した時点で、第４記憶部１５内のデータセットに基づいて、第３記憶部１２へのデータの書き戻しを行う。
【００３４】
このように、第２の実施形態では、第１記憶部７に電源が供給されている間に、プロセッサ３の処理の合間、すなわちプロセッサ３が書込命令を実行してから次の書込命令を実行するまでの間を利用して、第２記憶部８内のデータセットを第４記憶部１５にコピーする処理をこまめに行うため、高価な高速の不揮発メモリからなる第２記憶部８の記憶容量を第１の実施形態よりも削減できる。これにより、本実施形態による第２記憶部８は、第１の実施形態の第２記憶部８と比較して、１／１０以下の記憶容量で済む。したがって、本実施形態によれば、第１の実施形態よりもコスト削減が図れる。
【００３５】
（第３の実施形態）
第３の実施形態によるメモリシステム１は、メインメモリ用のＤＩＭＭ６とは別個に、高速の不揮発メモリが実装されるＤＩＭＭ６を設けるものである。
【００３６】
図７は第３の実施形態によるメモリシステム１を備えたプロセッサ３の概略構成を示すブロック図である。図７のメモリシステム１は、ＤＲＡＭ１０等の第１記憶部７が実装されるＤＩＭＭ６とは別個に、第２記憶部８と第４記憶部１５が実装されるＤＩＭＭ６を設ける点で、図６のメモリシステム１とは異なっている。図７の第２記憶部８の記憶容量は、図６の第２記憶部８の記憶容量よりも大きい。第２の実施形態では、第１記憶部７に電源が供給されている間も、プロセッサ３の処理の合間、すなわちプロセッサ３が書込命令を実行してから次の書込命令を実行するまでの間を利用して、第２記憶部８内のデータセットを第４記憶部１５にコピーしたが、第３の実施形態では、第１記憶部７が電源を喪失した場合に限って、第２記憶部８内のデータセットを第４記憶部１５にコピーする。このため、第３の実施形態による第２記憶部８は、第２の実施形態による第２記憶部８よりも、より多くの記憶容量を必要とする。より具体的には、第３の実施形態による第２記憶部８は、第１の実施形態による第２記憶部８と同程度の記憶容量を必要とする。第２メモリコントローラ９は、電源が復旧した後に、第４記憶部１５にコピーされたデータセットに基づいて、第３記憶部１２へのデータの書き戻しを行う。
【００３７】
このように、第３の実施形態によるメモリシステム１は、プロセッサ３が第１記憶部７に書込指令を行ったデータに関するデータセットを第２記憶部８に書き込んでおき、電源喪失により第１記憶部７内のデータが失われると、第２記憶部８内のデータセットを第４記憶部１５にコピーする。これにより、第２メモリコントローラ９は、第４記憶部１５内のデータに基づいて第３記憶部１２へのデータの書き戻しを正常に行うことができる。なお、第３の実施形態においても、第２メモリコントローラ９は、プロセッサ３内に設けてもよい。
【００３８】
（第４の実施形態）
第４の実施形態は、従来と同様のＤＩＭＭ６を設ける他に、第２記憶部８と第２メモリコントローラ９が実装された別のＤＩＭＭ６等のメモリボードを設けるものである。
【００３９】
図８は第４の実施形態によるメモリシステム１を備えたプロセッサ３の概略構成を示すブロック図である。図８のメモリシステム１は、それぞれが第１記憶部７を実装した複数のＤＩＭＭ６（複数の第１部材）の他に、第２記憶部８及び第２メモリコントローラ９を実装したＤＩＭＭ６（第２部材）を備えている。図８は４枚のＤＩＭＭ６と１枚のＤＩＭＭ６を設ける例を示しているが、各ＤＩＭＭ６の枚数は任意である。
【００４０】
プロセッサ３が複数のＤＩＭＭ６のいずれかの第１記憶部７に書込指令を出した場合、第２メモリコントローラ９は、第１記憶部７に書き込むべき又は書き込まれたデータと、第１記憶部７内の書込先を示すアドレス情報と、第１記憶部７に書き込まれたデータが書き戻される第３記憶部１２内の書込先を示すアドレス情報とを含むデータセットを第２記憶部８に記憶する。
【００４１】
このように、第４の実施形態では、ＤＲＡＭ１０等の第１記憶部７を実装する汎用のＤＩＭＭ６をそのまま利用できるとともに、第２記憶部８及び第２メモリコントローラ９を実装する別のＤＩＭＭ６を設けるため、電源の喪失により汎用のＤＩＭＭ６内のデータが失われた場合であっても、データが失われる前に、書き込まれるべきデータに関するデータセットを第２記憶部８に記憶することができる。よって、電源復旧後に、書き戻されるべきデータを第３記憶部１２に書き戻すことができる。
【００４２】
本発明の態様は、上述した個々の実施形態に限定されるものではなく、当業者が想到しうる種々の変形も含むものであり、本発明の効果も上述した内容に限定されない。すなわち、特許請求の範囲に規定された内容およびその均等物から導き出される本発明の概念的な思想と趣旨を逸脱しない範囲で種々の追加、変更および部分的削除が可能である。
【符号の説明】
【００４３】
１  メモリシステム、２  プロセッサシステム、３  プロセッサ、４  キャッシュメモリ、５  第１メモリコントローラ、６  ＤＩＭＭ、７  第１記憶部、８  第２記憶部、９  第２メモリコントローラ、１０  ＤＲＡＭ、１１  ｈＮＶＭ、１２  第３記憶部、１３  ＳＳＤ、１４  メモリボード（部材）、１５  第４記憶部、１６  ＮＡＮＤフラッシュメモリ
【図１】
2019121195.tif 000003
【図２】
2019121195.tif 000004
【図３】
2019121195.tif 000005
【図４】
2019121195.tif 000006
【図５】
2019121195.tif 000007
【図６】
2019121195.tif 000008
【図７】
2019121195.tif 000009
【図８】
2019121195.tif 000010