JP2009054116A - メモリシステムおよび情報処理装置 - Google Patents

メモリシステムおよび情報処理装置 Download PDF

Info

Publication number
JP2009054116A
JP2009054116A JP2007222928A JP2007222928A JP2009054116A JP 2009054116 A JP2009054116 A JP 2009054116A JP 2007222928 A JP2007222928 A JP 2007222928A JP 2007222928 A JP2007222928 A JP 2007222928A JP 2009054116 A JP2009054116 A JP 2009054116A
Authority
JP
Japan
Prior art keywords
memory
memory module
processing unit
arithmetic processing
work area
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.)
Pending
Application number
JP2007222928A
Other languages
English (en)
Inventor
Takashi Ishidoshiro
敬 石徹白
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.)
Buffalo Inc
Original Assignee
Buffalo Inc
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 Buffalo Inc filed Critical Buffalo Inc
Priority to JP2007222928A priority Critical patent/JP2009054116A/ja
Publication of JP2009054116A publication Critical patent/JP2009054116A/ja
Pending legal-status Critical Current

Links

Images

Landscapes

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

Abstract

【課題】メモリシステムにおいて、予備のメモリモジュールを必要とせず、メモリエラー発生時にメモリ交換を迅速に行えるようにする。
【解決手段】メモリモジュールの動作にエラーが発生したか否かを判断するエラー判断手段と、前記エラーが発生したと判断されたとき、前記キャッシュメモリのみを作業領域として使用する前記演算処理装置の制御により前記メモリモジュールに格納されたデータを所定の記憶媒体に退避させ、前記メモリモジュールの交換を検知すると前記キャッシュメモリのみを作業領域として使用する前記演算処理装置の制御により前記記憶媒体に退避したデータを交換後のメモリモジュールに格納し、前記キャッシュメモリに加えて前記交換後のメモリモジュールを前記演算処理装置の作業領域として使用可能とする交換処理手段と、を備えさせる。
【選択図】図5

Description

本発明は、メモリシステムおよび情報処理装置に関し、特に、メモリシステムの動作を制御する演算処理装置と、該演算処理装置の作業領域となるキャッシュメモリと、を有し、前記演算処理装置の作業領域として使用可能なメモリモジュールが着脱可能に接続されるメモリシステムおよび情報処理装置に関する。
メモリセルに蓄えた電荷によりデジタル表現を行って情報を記憶するメモリにおいては、放射線に起因する電荷変動のために記憶されていた情報が失われることが知られている。無論、電荷で情報を表現するメモリのみならず、磁気や光学的形状により情報を記憶するメモリであっても、不測の要因により情報が失われることがある。このようにして失われる情報は大半が1〜数ビット程度であり、パリティ付メモリモジュールであれば1ビットまでであれば検出可能であるし、ECC(Error Correct Code)メモリモジュールであれば訂正も可能である。また、2ビットまでであればECCメモリモジュールで検出可能である。しかし、2ビットを超える情報が失われるとECCメモリモジュールでも対応不可能となる。
2ビットを超える大量の情報が失われる状況の発生する可能性は、長時間にわたる使用と膨大な量の計算とを行うコンピュータ、すなわちサーバや大型計算機等において高くなり、また、誤った情報の入力に伴う誤計算やハングアップ等による影響も多大なものとなる。従って、サーバや大型計算機等においては、情報が失われるようになったメモリは早急に交換する必要がある。そこで、障害の発生したメモリモジュールを切り離して予備メモリモジュールと交換するシステムが知られている(例えば特許文献2,3参照)。但し、予備メモリモジュールを準備した場合、システム規模が大きくなるという問題点も指摘されていた。
そこで、メモリモジュールに格納された情報を定期的にハードディスクにミラーリングし、メモリ交換が選択されると、交換が選択されたメモリに対するアクセス要求がある場合にはミラーリングされたデータにアクセスするように制御し、ホットスワップを実現する技術が提案されている(例えば特許文献1参照)。
特開2006−268556号公報 特開2006−268683号公報 特開2004−185199号公報
但し、前述の特許文献1の技術では、メモリモジュールに対するアクセスが生じたときにはHDDへミラーリングされたデータにアクセスすることになるため、処理速度が大幅に低下することになる。さらに、処理速度が低下した条件下で、メモリエラー発生前に実行していたメインの処理を継続しつつホットスワップ処理を行うため、メインの処理とホットスワップ処理との双方においてレスポンスがさらに悪くなる。
本発明は前記課題に鑑みてなされたもので、予備のメモリモジュールを必要とせず、メモリエラー発生時にメモリ交換を迅速に行えるメモリシステムおよび情報処理装置の提供を目的とする。
上記課題を解決するために、本発明のメモリシステムは、メモリシステムの動作を制御する演算処理装置と、該演算処理装置の作業領域となるキャッシュメモリと、を有し、前記演算処理装置の作業領域として使用可能なメモリモジュールが着脱可能に接続されている。ここで、エラー判断手段は、前記メモリモジュールの動作にエラーが発生したか否かを判断する。そして、前記エラーが発生したと判断されると、交換処理手段が、前記演算処理装置の制御を前記キャッシュメモリのみを作業領域として使用する動作に切り換える。そして、該動作の下で、交換処理手段は、前記メモリモジュールに格納されたデータを所定の記憶媒体に退避させ、前記メモリモジュールが交換されると前記記憶媒体に退避したデータを交換後のメモリモジュールに格納し、前記キャッシュメモリに加えて前記交換後のメモリモジュールを前記演算処理装置の作業領域として使用可能な動作に切り換える。
作業領域としてのキャッシュメモリやメモリモジュールには、該演算処理装置の演算処理の過程において発生する命令や各種データが記憶される。前記演算処理装置としては、入力された命令に従って処理対象となるデータの演算を行って演算結果を出力するものであり、例えばCPU(Central Processing Unit)やMPU(Micro Processing Unit)等が該当するが、無論、中央処理や小型であることに限定されるものではないし、キャッシュメモリと一体でもよいし別体でもよい。
演算処理装置とキャッシュメモリとの間は、演算処理装置とメモリモジュールとの間に比べて、高速・広帯域での通信が可能になっている。また、演算処理装置やキャッシュメモリは、例えば集積回路で実現されており、この場合、演算処理装置とキャッシュメモリとが一体の集積回路で実現されても良いし、各々別体の集積回路にて作成された上で高速・広帯域のバスで接続されることで実現されてもよい。
すなわち、前記エラー判断手段がエラー検出すると、前記交換処理手段により前記メモリモジュールや外部記憶装置(HDD、USBメモリ、ネットワークドライブ等)よりも高速なキャッシュメモリのみを使用する制御が開始される。このようにメモリエラー発生時の交換処理を高速化することにより、メモリ交換に要する時間を短縮し、該メモリシステムを備えた情報処理装置の復旧を早めることが出来る。
また、本発明の選択的な他の一態様として、前記キャッシュメモリは、前記演算処理装置と一体に形成された内部キャッシュメモリである構成とする。該構成によれば、演算処理装置の内部で、演算処理部と内部キャッシュメモリとが高速・広帯域な内部バスを介して通信できるため、処理速度が向上する。
また、本発明の選択的な他の一態様として、前記交換処理手段は、前記エラーが発生したと判断されたときに前記キャッシュメモリにプログラムをロードする(読み込む)手段を備え、該キャッシュメモリにロードされたプログラムに従って前記メモリモジュールに格納されたデータを所定の記憶媒体に退避させ、前記メモリモジュールが交換されると前記記憶媒体に退避したデータを交換後のメモリモジュールに格納し、該メモリモジュールを前記演算処理装置の作業領域として使用可能とする構成とする。
所定の記憶媒体とは、メモリシステムの稼動中にプログラムデータを保持可能な記憶媒体であればよく、例えば、通電中にデータが消失しないSRAMや不揮発性の記憶媒体等が該当する。仮にSRAMにプログラムデータを記憶させる場合は、メモリシステムを起動する都度、他の不揮発性の記憶媒体からSRAMにプログラムデータのコピーが行われる。但し、所定の記憶媒体から前記メモリモジュールは除くものとする。
該構成によれば、エラー発生時のみ前記プログラムが前記キャッシュメモリにロードされる。すなわち、メモリ交換プログラムは必要に応じてキャッシュメモリにロードされるものであり、予めキャッシュメモリに記憶させておく必要が無いため、キャッシュメモリを圧迫することがない。
また、本発明の選択的な他の一態様として、前記交換処理手段は、前記エラーが発生したと判断されたときに所定の記憶媒体からプログラムを実行する手段を備え、該所定の記憶媒体に記憶されたプログラムに従って前記メモリモジュールに格納されたデータを所定の記憶媒体に退避させ、前記メモリモジュールが交換されると前記記憶媒体に退避したデータを交換後のメモリモジュールに格納し、該メモリモジュールを前記演算処理装置の作業領域として使用可能とする構成とする。
所定の記憶媒体とは、メモリシステムの稼動中にプログラムデータを保持可能な記憶媒体であればよく、例えば、通電中にデータが消失しないSRAMや不揮発性の記憶媒体等が該当する。仮にSRAMにプログラムデータを記憶させる場合は、メモリシステムを起動する都度、他の不揮発性の記憶媒体からSRAMにプログラムデータのコピーが行われる。但し、所定の記憶媒体から前記メモリモジュールは除くものとする。
該構成によれば、プログラム実行時にプログラムをキャッシュメモリにロードする必要が無い。そのため、キャッシュメモリの容量を超えるプログラムサイズであったとしても、キャッシュメモリに該プログラム実行時に発生するデータや変数を保持できるだけの容量があれば実行可能となる。すなわちプログラムサイズがキャッシュメモリの容量に制限されなくなる。
また、本発明の選択的な他の一態様として、前記交換処理手段は、前記演算処理装置における割込処理の発生を防止する割込防止手段を備える構成とする。該構成によれば、前記交換処理の最中に交換処理を中断させるような割込処理が発生したり交換対象のメモリモジュールに対するアクセスが発生したりすることを防止できる。このような割込処理は、ハードウェア割込やソフトウェア割込によって発生する。ソフトウェア割込の防止は、交換処理において他の記憶媒体に対するアクセスが発生しないように交換処理手段を構成することにより実現される。一方、ハードウェア割込の防止は、外部から前記演算処理装置に対して入力される割込信号をシャットアウトさせる手段を備えさせたり、割込信号が入力されても割込処理を発生させない手段を備えさせたりすることにより実現可能である。
上述したメモリシステムは、他の機器に組み込まれた状態で実施されたり他の方法とともに実施されたりする等の各種の態様を含む。また、本発明は前記メモリシステムを備える情報処理装置、上述したシステムの構成に対応した工程を有する制御方法、上述したシステムの構成に対応した機能をコンピュータに実現させるプログラム、該プログラムを記録したコンピュータ読み取り可能な記録媒体、等としても実現可能である。これら情報処理装置、メモリ制御方法、メモリ制御プログラム、該プログラムを記録した媒体、の発明も、上述した作用、効果を奏する。むろん、請求項2〜5に記載した構成も、前記システムや前記方法や前記プログラムや前記記録媒体に適用可能である。
以上説明したように本発明によれば、メモリ交換に要する時間を短縮し、メモリシステムを備えた情報処理装置の復旧を早めることが可能なメモリシステムを提供することができる。
また請求項2にかかる発明によれば、より高速な処理が可能となる。
また請求項3にかかる発明によれば、メモリ交換処理のプログラムでキャッシュメモリが圧迫されない。
そして請求項4にかかる発明によれば、メモリ交換処理を実行するためのプログラムサイズがキャッシュメモリの容量に制限されなくなる。
さらに請求項5にかかる発明によれば、交換処理の最中に交換処理を中断させるような割込処理が発生したり交換対象のメモリモジュールに対するアクセスが発生したりすることを防止できる。
また請求項6にかかる発明によれば、メモリ交換に要する時間を短縮し、メモリシステムを備えた情報処理装置の復旧を早めることが可能になる。
以下、下記の順序に従って本発明の実施形態を説明する。
(1)メモリシステムのハードウェア構成:
(2)メモリ交換処理:
(3)メモリ交換処理の変形例:
(1)メモリシステムのハードウェア構成:
以下、本発明の実施形態を図1〜図5を参照して説明する。まず、図1,2を参照して本実施形態のハードウェア構成について説明する。図1は本発明にかかるメモリシステムを備えたコンピュータの概略ブロック構成図、図2はメモリシステムの要部を示したブロック構成図である。
図1において、コンピュータ100は、CPU10(演算処理装置)と、メモリコントローラ12と、メモリコントローラに接続されたメモリモジュール14a〜14d等の一次記憶装置と、BIOS(Basic Input/Output System)等の各種プログラムが記憶されたROM16と、ディスプレイ30が接続されたディスプレイコントローラ20と、HDD22(Hard Disk Drive)等の二次記憶装置と、マウス40aやキーボード40b等の操作入力機器40が接続されたUSBI/F18(Interface)と、で構成されている。該構成において、各部10,12.16,18,20,22,24はシステムバスに接続されており、互いに通信可能になっている。前記メモリモジュール14a〜14dはコンピュータ100の主記憶装置を構成する。
図2に示すように、CPU10は、データの演算を行う演算ユニット10aと、外部記憶媒体(主記憶装置、HDD、ROM等)から読み込んだ命令を一時的に蓄える命令フェッチユニット10fと、命令フェッチユニットから順次送られてくる命令を解釈して必要な動作を演算ユニット10aに指示する命令デコードユニット10eと、外部記憶媒体から読み込んだ命令を保持する命令キャッシュ10g1と、外部記憶媒体から読み込んだデータや演算ユニットの演算結果を保持するデータキャッシュ10g2と、論理アドレスと物理アドレスとの変換を行うMMU10c(Memory Management Unit)と、外部から所定の信号が入力されると所定の割込処理を発生させるイベント回路10dと、CPU10全体の動作を制御するドライバ10bと、を備えている。但し、命令フェッチユニット10fは、プログラムの同一箇所が実行される場合、外部記憶媒体からではなく、外部記憶媒体よりも高速な命令キャッシュ10g1に保持された命令を読み込む。命令キャッシュとデータキャッシュはCPU10の作業領域となるキャッシュメモリ10gを構成する。
本実施形態では、キャッシュメモリ10gはCPU10の内部に備えられた内部キャッシュとして記載してあるが、無論、CPUとは別体に構成されてもよい。すなわち演算処理装置としてのCPU10は、集積回路(Integrated Circuit)にて構成されており、例えば、キャッシュメモリと一体に集積されたり、CPU10とキャッシュメモリとが別体に集積されたりする。CPU10とキャッシュメモリとが別体に集積される場合は、これらの間は高速・広帯域のバスで接続される。高速・広帯域とは、メモリモジュール14とCPU10との間の通信環境と比較してのことである。キャッシュメモリとCPU10とが別体である場合は、CPU10の中でも特に、命令フェッチユニット10fと、演算ユニット10aと、命令デコードユニット10eと、MMU10cと、が演算処理装置に該当する。
キャッシュメモリ10gと主記憶装置との間ではライトバックキャッシュ方式が採用されており、特定の場合にのみキャッシュメモリ10gの内容を主記憶装置に反映させる書き戻しが発生する。特定の場合とは、キャッシュメモリ10gがいっぱいになってキャッシュの内容を破棄する必要がある時、主記憶装置とキャッシュメモリ10gを同期させる命令が実行された時、他のデバイスが計算結果のデータを必要としている時、等である。
以上の各ユニットを備えるCPU10は、HDDやROMに書き込まれたプログラムを、適宜、主記憶装置やキャッシュメモリ10gに読み込み、主記憶装置やキャッシュメモリ10gを作業領域(Work Area)として利用しつつ、コンピュータ100全体を制御することになる。
メモリモジュール14a〜14d(主記憶装置)においては、各々、複数の半導体メモリ素子と、各メモリモジュールでユニークなIDが記録された不揮発性半導体メモリ(例えば、SPD(Serial Presence Detect)等)とが基板上に配置されている。半導体メモリ素子の1部(例えばメモリモジュールが9つのチップにより構成されている場合は、9番目のチップ)には、パリティやECC等のエラー訂正情報が記憶される。メモリモジュール14a〜14dは、所定の基板(例えばマザーボード等)上に配置されたメモリスロットにそれぞれ着脱可能に装着され、同じく所定の基板上に配置されたメモリコントローラを介してシステムバスに接続される。本実施形態では、メモリモジュールとメモリスロットとは、それぞれ4つ備えられているが、無論、任意の数を採用可能である。
メモリコントローラは、CPU10の制御に従って、半導体メモリ素子のメモリ制御(データ読み出し、書き出し、メモリのリフレッシュ等)を行う。このときメモリコントローラは、メモリエラーを検出するとエラー訂正情報を利用してエラーを訂正する。また、エラー訂正情報を利用しても訂正不可能なエラーを検出した場合は、所定の信号ラインを介してCPU10に対してエラー検出信号(メモリ交換信号)を出力する。訂正不可能なエラーとは、例えば、メモリモジュールがECC付メモリであれば連続するマルチビットエラーや連続していないダブルビットエラーであり、前記メモリモジュールがパリティ付メモリであればシングルビットエラーである。
ディスプレイコントローラは、CPU10からバスを介して提供された表示情報を元にRGBで表現される映像信号を生成し、ディスプレイに出力する。表示情報とは、例えば文字表示を行わせるのであれば表示座標とフォントデータで構成されるものであり、画像表示を行わせるのであれば、ビットマップデータや、始点座標と終点座標とライン描画命令との組み合わせ、等で構成されることになる。
ROMには、後述するメモリ交換処理を実行するプログラムが記憶されている。このプログラムは、前記イベント回路にメモリ交換信号が入力されたときにキャッシュメモリ10gに読み込まれてCPU10で実行される。また、このプログラムは、プログラム実行中に発生する各種データや変数、命令等を含めて前記CPU10のキャッシュサイズに収まるサイズとなるように作成されている。該プログラムにおいて指定される論理アドレスには、前記CPU10のキャッシュメモリ10gの物理アドレスのみが指定されるようになっている。無論、プログラムの記憶場所は必ずしもROMである必要は無く、不揮発性の記憶媒体であればいかなるものであっても利用可能である。
ここで、物理アドレスと論理アドレスについて説明する。論理アドレスとは実体のある対象を指定するアドレスではなく、プログラム内部で発生する情報を仮想的に管理するためのアドレスである。より具体的には、例えば、論理アドレスは、HDD等の補助記憶装置に形成された仮想メモリ(例えば、スワップ領域)を指定対象とするアドレスを指す。一方、物理アドレスは、主記憶装置やキャッシュメモリ10g等の記憶領域を所定数のビット毎(例えば1バイト毎)に指定するアドレスである。
図3は、論理アドレスと物理アドレスについて説明する図である。同図においては、論理アドレス1〜10にそれぞれ対応する命令1〜10で構成されるプログラムがあり、そのうち命令1〜5を主記憶装置にロードし、さらに命令1〜5のうち命令1,2を命令キャッシュにロードしている場合を例示してある。このとき、CPU10のMMU10cの制御レジスタ(セグメントレジスタ)には、主記憶装置に記憶されている命令が論理アドレス1〜5であり、命令キャッシュに記憶されている命令が命令1,2であるという領域情報が記憶される。従って、CPU10で実行されるプログラムにおいて次に読み出す命令の論理アドレスが生成されると、該命令を制御レジスタの領域情報と比較し、生成された論理アドレスが領域情報に記憶されているものに該当するか否かを判断することになる。
この判断の結果、論理アドレス1,2に当たる命令が生成された場合は、命令キャッシュから命令を読み出し、論理アドレス3〜5のいずれかが生成された場合は、CPU10は内部的に割込信号を発生して命令1,2のいずれか使用頻度の低い方(若しくは実行済みの方)を主記憶装置に退避させると共に、指定された命令を主記憶装置からキャッシュメモリ10gにロードする。また、論理アドレス6〜10が生成された場合は、CPUは内部的に割込信号を発生してOSの機能を起動し、すでに実行済みの命令1〜5を主記憶装置から退避させると共に命令6〜10を主記憶装置の物理アドレス1〜5にロードし、さらに生成された論理アドレスに対応する命令を命令キャッシュにロードする。これらのロードが終了すると、プログラムは制御レジスタの領域情報を書き換える。ただし、本実施形態では、後述のメモリ交換プログラムが実施されると、論理アドレスにキャッシュメモリ10gのアドレスのみが対応付けられてMMU10cの領域情報に記憶されることになる。
このようにしてCPU10内部で発生した割込信号は、イベント回路に入力される。また、このような内部的なソフトウェア割り込みによる割込信号に加えて、イベント回路には外部的な要因により発生するハードウェア割り込みによる割込信号も入力される。外部的な割込信号としては、メモリコントローラ12の出力するエラー検出信号や、操作入力機器からの操作入力信号等が該当する。エラー検出信号は、メモリコントローラから出力され、所定の信号ラインを介してCPU10に入力されている。
メモリコントローラとCPU10とを接続してエラー検出信号を伝送する信号ラインには、CPU10の制御に従って該ラインの接続/切断を選択可能なスイッチ回路60が設けられる。スイッチ回路60は、電気的にラインを遮断できればよく、例えば、FET,トランジスタ,サイリスタ等の半導体スイッチング素子が採用可能である。但し、CPU10における割込処理の発生を停止させるための設定を行うレジスタが予めCPU10に備わっている場合は、スイッチ回路60を設けなくともよい。割込処理を制御するレジスタが備わっているのであれば、該レジスタの値の変更によってスイッチ回路60の切り換えと代替可能になるためである。
図4は、FETを用いたスイッチ回路60の例である。図4(a)のように、信号ラインの一部がFETのソース−ドレインで接続(中継)されるように構成した場合は、ゲート電圧を印加することでCPU10をキャッシュメモリ10gとメモリモジュール14a〜14dの双方を作業領域とする動作とし、ゲート電圧を抜くことでキャッシュメモリ10gのみを作業領域とする動作に切り換えることになる。一方、図4(b)のように、信号ラインとグランドとの間がFETのソース−ドレインで接続されるように構成すると、ゲート電圧を抜くことでCPU10をキャッシュメモリ10gとメモリモジュール14a〜14dの双方を作業領域とする動作とし、ゲート電圧を印加することでキャッシュメモリ10gのみを作業領域とする動作に切り換えることになる。
また、このスイッチ回路60は、エラー検出信号の信号ラインのみならず、CPU10のイベント回路に割込信号を伝送するその他の信号ラインにも設けられる。従って、これらのスイッチ回路60を切断すると、CPU10には外部から割込信号が入力されないため、外部要因に基づく割り込み処理が発生しなくなる。
(2)メモリ交換処理:
次に、図5のフローチャートを参照してメモリ交換処理について説明する。本実施形態においては、メモリエラーが発生すると、まず、割り込み処理でユーザへの通知が行われる。通知を受けたユーザは、メモリを交換するか否かを判断し、メモリ交換を行う場合には所定の操作入力を行う。そして、この操作入力を検知するとメモリ交換処理が開始されることになる。以下、図5の各ステップについて説明を行う。
ステップS10では、割込要求がメモリエラーであるか否かを判断する。メモリモジュールに記録された情報に訂正不可能なエラー(データ誤り)が発見されると、メモリコントローラがイベント回路にエラー検出信号を出力する。無論、データ誤り以外にも、マザーボードやBIOSや他のメモリモジュールとの相性によるエラーをメモリエラーとして検出しても構わない。
イベント回路は、何らかの信号入力があると、いずれの割込要求であるかを判断し、入力信号に対応する割り込み処理を発生させる。すなわち、ステップS10においては、入力信号がエラー検出信号に一致するか否かを判断し、エラー検出信号であればステップS11に進み、エラー検出信号でなければ入力信号に対応する割込処理の実行もしくは、既存の処理を継続する。このステップS10の処理を実行するCPU10がエラー判断手段を構成する。
ステップS11では、エラーの発生したメモリモジュールを特定する。メモリモジュールの特定には、公知の様々な技術が利用できるが、例えば、エラーが発生した物理アドレスがいずれのメモリモジュールに該当するかによって特定したり、メモリコントローラと通信してエラーの発生したメモリモジュールを特定する情報を得たりすることにより実現できる。
続くステップS12では、エラーが発生した旨をユーザに通知する。同時に何れのメモリモジュールでエラーが発生したかを通知してもよい。通知は、例えば、ディスプレイコントローラ20に所定のメッセージを表示させる表示情報を出力することにより行われる。無論、LED等の警告灯やスピーカを備えさせて、これらを制御することにより、警告灯の点灯やビープ音等による通知を行ってもよい。通知を終了すると、割り込み処理は終了される。
次に、前記ステップS10〜S12の割込処理とは別個に、ステップS13〜S20のメモリ交換処理が行われる。本処理は、例えば、OS上で実行されるアプリケーションが所定の操作入力を検出すると開始される。アプリケーションが所定の操作入力を検出すると、該アプリケーションの制御によりROM16からCPU10のキャッシュメモリ10gにメモリ交換プログラムがロードされる(読み込まれる)。前述したように、このプログラムではソフトウェア割り込みが発生しない。以後の処理は、このメモリ交換プログラムにより実行される。
続くステップS14では、CPU10の動作をキャッシュメモリ10gのみを作業領域として利用する動作に切り換える。具体的には、スイッチ回路60を切り換えてCPU外部から各種割込信号をCPU10に入力するラインを電気的に切断する。すなわち、ハードウェア割り込みが発生しなくなる。すると、CPU10では内部的にも外部的にも割込処理が発生しなくなり、イベント回路が本プログラムの実行を中断させることが無くなる。以上、ステップS13でソフトウェア割り込みが発生しないメモリ交換プログラムをロードするCPU10と、ステップS14でスイッチ回路60を制御して切断させるCPU10とが割込防止手段を構成する。
続くステップS15では、交換対象となるメモリモジュールのデータを退避(バックアップ)させる。すなわち、前記ステップS11で判定されたスロットに装着されているメモリモジュールに記憶されているデータを、他の記憶媒体にコピー(もしくは移動)させる。退避先はHDD22、ネットワークNWに接続されている他のコンピュータ200、等、CPU10の制御に従ってメモリモジュール14a〜14dからアクセス可能な不揮発性の記憶媒体であればいかなるものであっても構わない。
続くステップS16では、ユーザにメモリモジュールの交換を指示する。すなわちディスプレイコントローラに所定の表示情報を出力して、メモリモジュールの交換が可能である旨をユーザに通知する。通知を受けたユーザは、コンピュータ100の電源を切断したり実行中のプログラムを終了したりすることなく、コンピュータ100の筐体を開けてエラー発生したメモリモジュールをメモリソケットから取り外し、空いたメモリソケットに新しいメモリモジュールを装着する。
続くステップS17では、メモリモジュールの交換が完了したか否かを判断する。この判断は、前記SPDに記録されているID等、メモリモジュールを一意に判別可能な識別情報により行われる。すなわちステップS16でメモリ交換指示を行う前に、交換前のメモリモジュールから識別情報を取得しておき、本ステップS17で取得した識別情報と一致するか否かを判断する。一致した場合は未交換としてステップS17を繰り返し、不一致の場合は交換完了としてステップS18に進む。
ステップS18では、ステップS15において退避させたデータを、交換後のメモリモジュールに退避させる以前と同じように書き込む。
続くステップS19およびステップS20で、CPU10を通常の動作に戻す、まずステップS19では、キャッシュメモリ10gに加えてメモリモジュール14a〜14dを作業領域として利用する動作へとCPU10の動作を切り換える。より具体的には、スイッチ回路60を切り換えてCPU10に入力する信号ラインを電気的に接続し、CPU外部からイベント回路に各種割り込み要求を入力可能な状態にする。
そしてステップS20では、キャッシュメモリ10gをリセットして本処理を終了する。すなわち、前記ステップS14でロードされたメモリ交換プログラムをキャッシュメモリ10gから削除する命令と、メモリ交換プログラムの開始前に実行されていたプログラムの再開命令とを、命令フェッチユニット10fに送り込んで処理を終了する。よってCPU10内部でソフトウェア割り込みが発生するようになる。以上、ステップS13〜S20の処理を実行するCPU10が交換処理手段を構成する。
以下、上記構成からなる本実施形態の動作を説明する。
何れかのメモリモジュールにおいてデータ誤りが検出されると、メモリコントローラ12からCPU10にエラー信号が入力される。するとイベント回路10dがこのエラー信号を検出して、割込処理を発生させる。この割込処理においてはデータ誤りの発生したメモリモジュールの特定と、データ誤りが発生した旨のユーザに対する通知と、が行われる。
この通知を受けたユーザは、メモリモジュールの交換を行うか否かを判断し、交換する場合は、所定の操作入力を行い、ROM16からCPU10のキャッシュメモリ10gに交換処理プログラムをロードさせる。交換処理プログラムが実行されると、スイッチ回路60が切断されてCPU10に対して割込信号が入力されなくなる。さらに交換処理プログラムにより、交換対象となるメモリモジュールからデータが読み出されて、HDD22にバックアップされる。スイッチ回路60の切断とデータのバックアップとが終了すると、ディスプレイ30に交換可能である旨の表示が為される。このとき、交換対象となるメモリモジュールのSPDから該メモリモジュールを識別するIDを取得して、キャッシュメモリ10gの所定のアドレスに記憶しておく。
この表示を確認したユーザは、メモリシステムが搭載されたコンピュータ100の筐体を開け、メモリモジュールをソケットから取り外す。このときコンピュータ100の電源は投入されたままであり、メモリモジュールには通電されたままである。
メモリモジュールの交換が完了すると、SPDのIDからメモリモジュールが交換されたことを検知し、HDD22にバックアップしておいたデータを交換後のメモリモジュールに書き込む。そしてスイッチ回路60を接続させると共に、交換処理プログラムおよび該プログラムにてキャッシュメモリ10g内に記憶されたデータを消去する。するとCPU10は、交換されたメモリモジュールを含むメモリモジュール14a〜14dを作業領域として使用しつつ、メモリエラー発生前に実行されていた処理を再開する。
(3)メモリ交換処理の変形例:
前述した実施形態では、割り込み処理でメモリエラーの発生をユーザに通知後、ユーザからの操作入力を待ってメモリ交換処理を実行した。しかし、仮に、メモリエラー発生から実際にメモリ交換が開始されるまでの間に、メモリエラーによって入力された誤った情報に基づいて計算が行われていた場合、計算が進めば進むほど正しい計算結果からはかけ離れたものとなる。そこで、ユーザの操作入力を待たずにメモリ交換処理が実行されるようにしても構わない。
図6は、メモリ交換処理の第一の変形例にかかるフローチャートである。本第一の変形例では、メモリ交換処理においてステップS12で一旦処理を終了することなく、ステップS12に続いてステップS14が実行されるようなっている。このようにユーザからのメモリ交換プログラムの開始指示を待つことなくメモリ交換可能な状態にすることにより、誤計算の拡大を防止できる。
図7は、メモリ交換処理の第二の変形例にかかるフローチャートである。本第二の変形例においては、メモリ交換処理がメモリエラーにより開始されるのではなく、例えば、ステップS100のように、メモリモジュールがメモリソケットから取り外されたか否かの判定から開始される。無論、完全にメモリモジュールが取り外されてしまってはメモリのデータ退避が不可能になるので、例えば、メモリモジュールをソケットに対して固定するためのロック機構などを設けておき、該ロック機構を解除する際に所定のエラー信号がイベント回路に入力されるように構成すればよい。このエラー信号に基づいて取り外しの検知が可能になる。そしてロック機構の解除を検知すると、前記実施形態のステップS11,S14〜S20を実行する。
その他、メモリエラーを検出しなくとも、例えば、ユーザが所定の操作入力を行って交換を希望するメモリモジュールを特定することにより、交換処理プログラムを実行しても良い。
なお、本発明は上述した実施形態や変形例に限られず、上述した実施形態および変形例の中で開示した各構成を相互に置換したり組み合わせを変更したりした構成、公知技術並びに上述した実施形態および変形例の中で開示した各構成を相互に置換したり組み合わせを変更したりした構成、等も含まれる。
本発明のメモリシステムを備えたコンピュータのブロック構成図である。 本発明のメモリシステムの要部を示したブロック構成図である。 論理アドレスと物理アドレスについて説明する図である。 FETを用いたスイッチ回路の例である。 メモリ交換処理のフローチャートである。 メモリ交換処理の第一の変形例にかかるフローチャートである。 メモリ交換処理の第二の変形例にかかるフローチャートである。
符号の説明
10…CPU、10a…演算ユニット、10b…ドライバ、10c…MMU、10d…イベント回路、10e…命令デコードユニット、10f…命令フェッチユニット、10g…キャッシュメモリ、10g1…命令キャッシュ、10g2…データキャッシュ、12…メモリコントローラ、14…メモリモジュール、14a〜14d…メモリモジュール、16…ROM、18…USBI/F、20…ディスプレイコントローラ、22…HDD、24…LANI/F、30…ディスプレイ、40…操作入力機器、40a…マウス、40b…キーボード、100…コンピュータ

Claims (6)

  1. メモリシステムの動作を制御する演算処理装置と、該演算処理装置の作業領域となるキャッシュメモリと、を有し、前記演算処理装置の作業領域として使用可能なメモリモジュールが着脱可能に接続されるメモリシステムであって、
    前記メモリモジュールの動作にエラーが発生したか否かを判断するエラー判断手段と、
    前記エラーが発生したと判断されたとき、前記キャッシュメモリのみを作業領域として使用する前記演算処理装置の制御により前記メモリモジュールに格納されたデータを所定の記憶媒体に退避させ、前記メモリモジュールが交換されると前記キャッシュメモリのみを作業領域として使用する前記演算処理装置の制御により前記記憶媒体に退避したデータを交換後のメモリモジュールに格納し、前記キャッシュメモリに加えて前記交換後のメモリモジュールを前記演算処理装置の作業領域として使用可能とする交換処理手段と、
    を備えたことを特徴とするメモリシステム。
  2. 前記キャッシュメモリは、前記演算処理装置と一体に形成された内部キャッシュメモリである請求項1に記載のメモリシステム。
  3. 前記交換処理手段は、前記エラーが発生したと判断されたときに前記キャッシュメモリにプログラムを読み込む手段を備え、該キャッシュメモリに読み込まれたプログラムに従って前記メモリモジュールに格納されたデータを所定の記憶媒体に退避させ、前記メモリモジュールが交換されると前記記憶媒体に退避したデータを交換後のメモリモジュールに格納し、該メモリモジュールを前記演算処理装置の作業領域として使用可能とする請求項1または請求項2に記載のメモリシステム。
  4. 前記交換処理手段は、前記エラーが発生したと判断されたときに所定の記憶媒体からプログラムを実行する手段を備え、該所定の記憶媒体に記憶されたプログラムに従って前記メモリモジュールに格納されたデータを所定の記憶媒体に退避させ、前記メモリモジュールが交換されると前記記憶媒体に退避したデータを交換後のメモリモジュールに格納し、該メモリモジュールを前記演算処理装置の作業領域として使用可能とする請求項1または請求項2に記載のメモリシステム。
  5. 前記交換処理手段は、前記演算処理装置における割込処理の発生を防止する割込防止手段を備える請求項1〜請求項4のいずれか一項に記載のメモリシステム。
  6. メモリシステムの動作を制御する演算処理装置と、該演算処理装置の作業領域となるキャッシュメモリと、を有し、前記演算処理装置の作業領域として使用可能なメモリモジュールが着脱可能に接続される情報処理装置であって、
    前記メモリモジュールの動作にエラーが発生したか否かを判断するエラー判断手段と、
    前記エラーが発生したと判断されたとき、前記キャッシュメモリのみを作業領域として使用する前記演算処理装置の制御により前記メモリモジュールに格納されたデータを所定の記憶媒体に退避させ、前記メモリモジュールが交換されると前記キャッシュメモリのみを作業領域として使用する前記演算処理装置の制御により前記記憶媒体に退避したデータを交換後のメモリモジュールに格納し、前記キャッシュメモリに加えて前記交換後のメモリモジュールを前記演算処理装置の作業領域として使用可能とする交換処理手段と、
    を備えたことを特徴とする情報処理装置。
JP2007222928A 2007-08-29 2007-08-29 メモリシステムおよび情報処理装置 Pending JP2009054116A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2007222928A JP2009054116A (ja) 2007-08-29 2007-08-29 メモリシステムおよび情報処理装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2007222928A JP2009054116A (ja) 2007-08-29 2007-08-29 メモリシステムおよび情報処理装置

Publications (1)

Publication Number Publication Date
JP2009054116A true JP2009054116A (ja) 2009-03-12

Family

ID=40505113

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2007222928A Pending JP2009054116A (ja) 2007-08-29 2007-08-29 メモリシステムおよび情報処理装置

Country Status (1)

Country Link
JP (1) JP2009054116A (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2017157214A (ja) * 2016-03-03 2017-09-07 三星電子株式会社Samsung Electronics Co.,Ltd. インモジュール機能を遂行するメモリモジュール
US11397698B2 (en) 2016-03-03 2022-07-26 Samsung Electronics Co., Ltd. Asynchronous communication protocol compatible with synchronous DDR protocol

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH05265872A (ja) * 1992-03-17 1993-10-15 Fujitsu Ltd アクセス制御回路
JP2004227027A (ja) * 2003-01-17 2004-08-12 Murata Mach Ltd 画像形成装置におけるデータバックアップ装置
JP2005115720A (ja) * 2003-10-09 2005-04-28 Sony Corp 情報処理装置及びこれに用いるプログラム
JP2006302129A (ja) * 2005-04-22 2006-11-02 Elpida Memory Inc コンピュータシステム、及びメモリの不良救済方法

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH05265872A (ja) * 1992-03-17 1993-10-15 Fujitsu Ltd アクセス制御回路
JP2004227027A (ja) * 2003-01-17 2004-08-12 Murata Mach Ltd 画像形成装置におけるデータバックアップ装置
JP2005115720A (ja) * 2003-10-09 2005-04-28 Sony Corp 情報処理装置及びこれに用いるプログラム
JP2006302129A (ja) * 2005-04-22 2006-11-02 Elpida Memory Inc コンピュータシステム、及びメモリの不良救済方法

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2017157214A (ja) * 2016-03-03 2017-09-07 三星電子株式会社Samsung Electronics Co.,Ltd. インモジュール機能を遂行するメモリモジュール
US11397698B2 (en) 2016-03-03 2022-07-26 Samsung Electronics Co., Ltd. Asynchronous communication protocol compatible with synchronous DDR protocol

Similar Documents

Publication Publication Date Title
JP5724477B2 (ja) 移行プログラム、情報処理装置、移行方法、及び情報処理システム
US8266398B2 (en) Method and apparatus for preserving memory contents during a power outage
US20150089287A1 (en) Event-triggered storage of data to non-volatile memory
JP4041473B2 (ja) マルチクラスタ・ストレージ・サブシステムのための自律型パワー・ロス・リカバリ
US20130254457A1 (en) Methods and structure for rapid offloading of cached data in a volatile cache memory of a storage controller to a nonvolatile memory
US9507671B2 (en) Write cache protection in a purpose built backup appliance
US9448889B2 (en) BIOS failover update with service processor
JP6455132B2 (ja) 情報処理装置,処理方法及びプログラム
JP2007058419A (ja) Pld上のメモリ内の情報に従って構築される論理回路を備えたストレージシステム
JP2010086419A (ja) 情報処理装置
JP2008097105A (ja) 記憶装置及び起動方法
JP2011028430A (ja) 情報処理装置、情報処理装置の制御方法及びプログラム
JP2011170589A (ja) ストレージ制御装置、ストレージ装置およびストレージ制御方法
JP2005071303A (ja) プログラム起動装置
US6490668B2 (en) System and method for dynamically moving checksums to different memory locations
JP2012018626A (ja) メモリ制御装置、メモリ装置および停止制御方法
JP6599725B2 (ja) 情報処理装置およびログ管理方法、並びにコンピュータ・プログラム
US20160232066A1 (en) Information processing apparatus, control method for the information processing apparatus, and recording medium
JP2009054116A (ja) メモリシステムおよび情報処理装置
JP2009104369A (ja) ディスクサブシステム
US20220413962A1 (en) Detecting and recovering a corrupted non-volatile random-access memory
JP2010536112A (ja) 中断された書込みの回復のためのデータ記憶方法、機器およびシステム
JP2008059007A (ja) 半導体記憶装置
JP2006318105A (ja) 監視システム
JP5470124B2 (ja) 電子機器及び電子機器用プログラム

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20100826

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20120921

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20121002

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20121120

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20121218