(57)【要約】【課題】メモリシステムにおいて、予備のメモリモジュールを必要とせず、メモリエラー発生時にメモリ交換を迅速に行えるようにする。【解決手段】メモリモジュールの動作にエラーが発生したか否かを判断するエラー判断手段と、前記エラーが発生したと判断されたとき、前記キャッシュメモリのみを作業領域として使用する前記演算処理装置の制御により前記メモリモジュールに格納されたデータを所定の記憶媒体に退避させ、前記メモリモジュールの交換を検知すると前記キャッシュメモリのみを作業領域として使用する前記演算処理装置の制御により前記記憶媒体に退避したデータを交換後のメモリモジュールに格納し、前記キャッシュメモリに加えて前記交換後のメモリモジュールを前記演算処理装置の作業領域として使用可能とする交換処理手段と、を備えさせる。【選択図】図５
2009054116.tif 000002
【特許請求の範囲】
【請求項１】
メモリシステムの動作を制御する演算処理装置と、該演算処理装置の作業領域となるキャッシュメモリと、を有し、前記演算処理装置の作業領域として使用可能なメモリモジュールが着脱可能に接続されるメモリシステムであって、
前記メモリモジュールの動作にエラーが発生したか否かを判断するエラー判断手段と、
前記エラーが発生したと判断されたとき、前記キャッシュメモリのみを作業領域として使用する前記演算処理装置の制御により前記メモリモジュールに格納されたデータを所定の記憶媒体に退避させ、前記メモリモジュールが交換されると前記キャッシュメモリのみを作業領域として使用する前記演算処理装置の制御により前記記憶媒体に退避したデータを交換後のメモリモジュールに格納し、前記キャッシュメモリに加えて前記交換後のメモリモジュールを前記演算処理装置の作業領域として使用可能とする交換処理手段と、
を備えたことを特徴とするメモリシステム。
【請求項２】
前記キャッシュメモリは、前記演算処理装置と一体に形成された内部キャッシュメモリである請求項１に記載のメモリシステム。
【請求項３】
前記交換処理手段は、前記エラーが発生したと判断されたときに前記キャッシュメモリにプログラムを読み込む手段を備え、該キャッシュメモリに読み込まれたプログラムに従って前記メモリモジュールに格納されたデータを所定の記憶媒体に退避させ、前記メモリモジュールが交換されると前記記憶媒体に退避したデータを交換後のメモリモジュールに格納し、該メモリモジュールを前記演算処理装置の作業領域として使用可能とする請求項１または請求項２に記載のメモリシステム。
【請求項４】
前記交換処理手段は、前記エラーが発生したと判断されたときに所定の記憶媒体からプログラムを実行する手段を備え、該所定の記憶媒体に記憶されたプログラムに従って前記メモリモジュールに格納されたデータを所定の記憶媒体に退避させ、前記メモリモジュールが交換されると前記記憶媒体に退避したデータを交換後のメモリモジュールに格納し、該メモリモジュールを前記演算処理装置の作業領域として使用可能とする請求項１または請求項２に記載のメモリシステム。
【請求項５】
前記交換処理手段は、前記演算処理装置における割込処理の発生を防止する割込防止手段を備える請求項１〜請求項４のいずれか一項に記載のメモリシステム。
【請求項６】
メモリシステムの動作を制御する演算処理装置と、該演算処理装置の作業領域となるキャッシュメモリと、を有し、前記演算処理装置の作業領域として使用可能なメモリモジュールが着脱可能に接続される情報処理装置であって、
前記メモリモジュールの動作にエラーが発生したか否かを判断するエラー判断手段と、
前記エラーが発生したと判断されたとき、前記キャッシュメモリのみを作業領域として使用する前記演算処理装置の制御により前記メモリモジュールに格納されたデータを所定の記憶媒体に退避させ、前記メモリモジュールが交換されると前記キャッシュメモリのみを作業領域として使用する前記演算処理装置の制御により前記記憶媒体に退避したデータを交換後のメモリモジュールに格納し、前記キャッシュメモリに加えて前記交換後のメモリモジュールを前記演算処理装置の作業領域として使用可能とする交換処理手段と、
を備えたことを特徴とする情報処理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、メモリシステムおよび情報処理装置に関し、特に、メモリシステムの動作を制御する演算処理装置と、該演算処理装置の作業領域となるキャッシュメモリと、を有し、前記演算処理装置の作業領域として使用可能なメモリモジュールが着脱可能に接続されるメモリシステムおよび情報処理装置に関する。
【背景技術】
【０００２】
メモリセルに蓄えた電荷によりデジタル表現を行って情報を記憶するメモリにおいては、放射線に起因する電荷変動のために記憶されていた情報が失われることが知られている。無論、電荷で情報を表現するメモリのみならず、磁気や光学的形状により情報を記憶するメモリであっても、不測の要因により情報が失われることがある。このようにして失われる情報は大半が１〜数ビット程度であり、パリティ付メモリモジュールであれば１ビットまでであれば検出可能であるし、ＥＣＣ（Error Correct Code）メモリモジュールであれば訂正も可能である。また、２ビットまでであればＥＣＣメモリモジュールで検出可能である。しかし、２ビットを超える情報が失われるとＥＣＣメモリモジュールでも対応不可能となる。
【０００３】
２ビットを超える大量の情報が失われる状況の発生する可能性は、長時間にわたる使用と膨大な量の計算とを行うコンピュータ、すなわちサーバや大型計算機等において高くなり、また、誤った情報の入力に伴う誤計算やハングアップ等による影響も多大なものとなる。従って、サーバや大型計算機等においては、情報が失われるようになったメモリは早急に交換する必要がある。そこで、障害の発生したメモリモジュールを切り離して予備メモリモジュールと交換するシステムが知られている（例えば特許文献２，３参照）。但し、予備メモリモジュールを準備した場合、システム規模が大きくなるという問題点も指摘されていた。
【０００４】
そこで、メモリモジュールに格納された情報を定期的にハードディスクにミラーリングし、メモリ交換が選択されると、交換が選択されたメモリに対するアクセス要求がある場合にはミラーリングされたデータにアクセスするように制御し、ホットスワップを実現する技術が提案されている（例えば特許文献１参照）。
【特許文献１】特開２００６−２６８５５６号公報
【特許文献２】特開２００６−２６８６８３号公報
【特許文献３】特開２００４−１８５１９９号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
但し、前述の特許文献１の技術では、メモリモジュールに対するアクセスが生じたときにはＨＤＤへミラーリングされたデータにアクセスすることになるため、処理速度が大幅に低下することになる。さらに、処理速度が低下した条件下で、メモリエラー発生前に実行していたメインの処理を継続しつつホットスワップ処理を行うため、メインの処理とホットスワップ処理との双方においてレスポンスがさらに悪くなる。
【０００６】
本発明は前記課題に鑑みてなされたもので、予備のメモリモジュールを必要とせず、メモリエラー発生時にメモリ交換を迅速に行えるメモリシステムおよび情報処理装置の提供を目的とする。
【課題を解決するための手段】
【０００７】
上記課題を解決するために、本発明のメモリシステムは、メモリシステムの動作を制御する演算処理装置と、該演算処理装置の作業領域となるキャッシュメモリと、を有し、前記演算処理装置の作業領域として使用可能なメモリモジュールが着脱可能に接続されている。ここで、エラー判断手段は、前記メモリモジュールの動作にエラーが発生したか否かを判断する。そして、前記エラーが発生したと判断されると、交換処理手段が、前記演算処理装置の制御を前記キャッシュメモリのみを作業領域として使用する動作に切り換える。そして、該動作の下で、交換処理手段は、前記メモリモジュールに格納されたデータを所定の記憶媒体に退避させ、前記メモリモジュールが交換されると前記記憶媒体に退避したデータを交換後のメモリモジュールに格納し、前記キャッシュメモリに加えて前記交換後のメモリモジュールを前記演算処理装置の作業領域として使用可能な動作に切り換える。
作業領域としてのキャッシュメモリやメモリモジュールには、該演算処理装置の演算処理の過程において発生する命令や各種データが記憶される。前記演算処理装置としては、入力された命令に従って処理対象となるデータの演算を行って演算結果を出力するものであり、例えばＣＰＵ（Central Processing Unit）やＭＰＵ（Micro Processing Unit）等が該当するが、無論、中央処理や小型であることに限定されるものではないし、キャッシュメモリと一体でもよいし別体でもよい。
演算処理装置とキャッシュメモリとの間は、演算処理装置とメモリモジュールとの間に比べて、高速・広帯域での通信が可能になっている。また、演算処理装置やキャッシュメモリは、例えば集積回路で実現されており、この場合、演算処理装置とキャッシュメモリとが一体の集積回路で実現されても良いし、各々別体の集積回路にて作成された上で高速・広帯域のバスで接続されることで実現されてもよい。
【０００８】
すなわち、前記エラー判断手段がエラー検出すると、前記交換処理手段により前記メモリモジュールや外部記憶装置（ＨＤＤ、ＵＳＢメモリ、ネットワークドライブ等）よりも高速なキャッシュメモリのみを使用する制御が開始される。このようにメモリエラー発生時の交換処理を高速化することにより、メモリ交換に要する時間を短縮し、該メモリシステムを備えた情報処理装置の復旧を早めることが出来る。
【０００９】
また、本発明の選択的な他の一態様として、前記キャッシュメモリは、前記演算処理装置と一体に形成された内部キャッシュメモリである構成とする。該構成によれば、演算処理装置の内部で、演算処理部と内部キャッシュメモリとが高速・広帯域な内部バスを介して通信できるため、処理速度が向上する。
【００１０】
また、本発明の選択的な他の一態様として、前記交換処理手段は、前記エラーが発生したと判断されたときに前記キャッシュメモリにプログラムをロードする（読み込む）手段を備え、該キャッシュメモリにロードされたプログラムに従って前記メモリモジュールに格納されたデータを所定の記憶媒体に退避させ、前記メモリモジュールが交換されると前記記憶媒体に退避したデータを交換後のメモリモジュールに格納し、該メモリモジュールを前記演算処理装置の作業領域として使用可能とする構成とする。
所定の記憶媒体とは、メモリシステムの稼動中にプログラムデータを保持可能な記憶媒体であればよく、例えば、通電中にデータが消失しないＳＲＡＭや不揮発性の記憶媒体等が該当する。仮にＳＲＡＭにプログラムデータを記憶させる場合は、メモリシステムを起動する都度、他の不揮発性の記憶媒体からＳＲＡＭにプログラムデータのコピーが行われる。但し、所定の記憶媒体から前記メモリモジュールは除くものとする。
該構成によれば、エラー発生時のみ前記プログラムが前記キャッシュメモリにロードされる。すなわち、メモリ交換プログラムは必要に応じてキャッシュメモリにロードされるものであり、予めキャッシュメモリに記憶させておく必要が無いため、キャッシュメモリを圧迫することがない。
【００１１】
また、本発明の選択的な他の一態様として、前記交換処理手段は、前記エラーが発生したと判断されたときに所定の記憶媒体からプログラムを実行する手段を備え、該所定の記憶媒体に記憶されたプログラムに従って前記メモリモジュールに格納されたデータを所定の記憶媒体に退避させ、前記メモリモジュールが交換されると前記記憶媒体に退避したデータを交換後のメモリモジュールに格納し、該メモリモジュールを前記演算処理装置の作業領域として使用可能とする構成とする。
所定の記憶媒体とは、メモリシステムの稼動中にプログラムデータを保持可能な記憶媒体であればよく、例えば、通電中にデータが消失しないＳＲＡＭや不揮発性の記憶媒体等が該当する。仮にＳＲＡＭにプログラムデータを記憶させる場合は、メモリシステムを起動する都度、他の不揮発性の記憶媒体からＳＲＡＭにプログラムデータのコピーが行われる。但し、所定の記憶媒体から前記メモリモジュールは除くものとする。
該構成によれば、プログラム実行時にプログラムをキャッシュメモリにロードする必要が無い。そのため、キャッシュメモリの容量を超えるプログラムサイズであったとしても、キャッシュメモリに該プログラム実行時に発生するデータや変数を保持できるだけの容量があれば実行可能となる。すなわちプログラムサイズがキャッシュメモリの容量に制限されなくなる。
【００１２】
また、本発明の選択的な他の一態様として、前記交換処理手段は、前記演算処理装置における割込処理の発生を防止する割込防止手段を備える構成とする。該構成によれば、前記交換処理の最中に交換処理を中断させるような割込処理が発生したり交換対象のメモリモジュールに対するアクセスが発生したりすることを防止できる。このような割込処理は、ハードウェア割込やソフトウェア割込によって発生する。ソフトウェア割込の防止は、交換処理において他の記憶媒体に対するアクセスが発生しないように交換処理手段を構成することにより実現される。一方、ハードウェア割込の防止は、外部から前記演算処理装置に対して入力される割込信号をシャットアウトさせる手段を備えさせたり、割込信号が入力されても割込処理を発生させない手段を備えさせたりすることにより実現可能である。
【００１３】
上述したメモリシステムは、他の機器に組み込まれた状態で実施されたり他の方法とともに実施されたりする等の各種の態様を含む。また、本発明は前記メモリシステムを備える情報処理装置、上述したシステムの構成に対応した工程を有する制御方法、上述したシステムの構成に対応した機能をコンピュータに実現させるプログラム、該プログラムを記録したコンピュータ読み取り可能な記録媒体、等としても実現可能である。これら情報処理装置、メモリ制御方法、メモリ制御プログラム、該プログラムを記録した媒体、の発明も、上述した作用、効果を奏する。むろん、請求項２〜５に記載した構成も、前記システムや前記方法や前記プログラムや前記記録媒体に適用可能である。
【発明の効果】
【００１４】
以上説明したように本発明によれば、メモリ交換に要する時間を短縮し、メモリシステムを備えた情報処理装置の復旧を早めることが可能なメモリシステムを提供することができる。
また請求項２にかかる発明によれば、より高速な処理が可能となる。
また請求項３にかかる発明によれば、メモリ交換処理のプログラムでキャッシュメモリが圧迫されない。
そして請求項４にかかる発明によれば、メモリ交換処理を実行するためのプログラムサイズがキャッシュメモリの容量に制限されなくなる。
さらに請求項５にかかる発明によれば、交換処理の最中に交換処理を中断させるような割込処理が発生したり交換対象のメモリモジュールに対するアクセスが発生したりすることを防止できる。
また請求項６にかかる発明によれば、メモリ交換に要する時間を短縮し、メモリシステムを備えた情報処理装置の復旧を早めることが可能になる。
【発明を実施するための最良の形態】
【００１５】
以下、下記の順序に従って本発明の実施形態を説明する。
（１）メモリシステムのハードウェア構成：
（２）メモリ交換処理：
（３）メモリ交換処理の変形例：
【００１６】
（１）メモリシステムのハードウェア構成： 
以下、本発明の実施形態を図１〜図５を参照して説明する。まず、図１，２を参照して本実施形態のハードウェア構成について説明する。図１は本発明にかかるメモリシステムを備えたコンピュータの概略ブロック構成図、図２はメモリシステムの要部を示したブロック構成図である。
【００１７】
図１において、コンピュータ１００は、ＣＰＵ１０（演算処理装置）と、メモリコントローラ１２と、メモリコントローラに接続されたメモリモジュール１４ａ〜１４ｄ等の一次記憶装置と、ＢＩＯＳ（Basic Input/Output System）等の各種プログラムが記憶されたＲＯＭ１６と、ディスプレイ３０が接続されたディスプレイコントローラ２０と、ＨＤＤ２２（Hard Disk Drive）等の二次記憶装置と、マウス４０ａやキーボード４０ｂ等の操作入力機器４０が接続されたＵＳＢＩ／Ｆ１８（Interface）と、で構成されている。該構成において、各部１０，１２．１６，１８，２０，２２，２４はシステムバスに接続されており、互いに通信可能になっている。前記メモリモジュール１４ａ〜１４ｄはコンピュータ１００の主記憶装置を構成する。
【００１８】
図２に示すように、ＣＰＵ１０は、データの演算を行う演算ユニット１０ａと、外部記憶媒体（主記憶装置、ＨＤＤ、ＲＯＭ等）から読み込んだ命令を一時的に蓄える命令フェッチユニット１０ｆと、命令フェッチユニットから順次送られてくる命令を解釈して必要な動作を演算ユニット１０ａに指示する命令デコードユニット１０ｅと、外部記憶媒体から読み込んだ命令を保持する命令キャッシュ１０ｇ１と、外部記憶媒体から読み込んだデータや演算ユニットの演算結果を保持するデータキャッシュ１０ｇ２と、論理アドレスと物理アドレスとの変換を行うＭＭＵ１０ｃ（Memory Management Unit）と、外部から所定の信号が入力されると所定の割込処理を発生させるイベント回路１０ｄと、ＣＰＵ１０全体の動作を制御するドライバ１０ｂと、を備えている。但し、命令フェッチユニット１０ｆは、プログラムの同一箇所が実行される場合、外部記憶媒体からではなく、外部記憶媒体よりも高速な命令キャッシュ１０ｇ１に保持された命令を読み込む。命令キャッシュとデータキャッシュはＣＰＵ１０の作業領域となるキャッシュメモリ１０ｇを構成する。
【００１９】
本実施形態では、キャッシュメモリ１０ｇはＣＰＵ１０の内部に備えられた内部キャッシュとして記載してあるが、無論、ＣＰＵとは別体に構成されてもよい。すなわち演算処理装置としてのＣＰＵ１０は、集積回路（Integrated Circuit）にて構成されており、例えば、キャッシュメモリと一体に集積されたり、ＣＰＵ１０とキャッシュメモリとが別体に集積されたりする。ＣＰＵ１０とキャッシュメモリとが別体に集積される場合は、これらの間は高速・広帯域のバスで接続される。高速・広帯域とは、メモリモジュール１４とＣＰＵ１０との間の通信環境と比較してのことである。キャッシュメモリとＣＰＵ１０とが別体である場合は、ＣＰＵ１０の中でも特に、命令フェッチユニット１０ｆと、演算ユニット１０ａと、命令デコードユニット１０ｅと、ＭＭＵ１０ｃと、が演算処理装置に該当する。
【００２０】
キャッシュメモリ１０ｇと主記憶装置との間ではライトバックキャッシュ方式が採用されており、特定の場合にのみキャッシュメモリ１０ｇの内容を主記憶装置に反映させる書き戻しが発生する。特定の場合とは、キャッシュメモリ１０ｇがいっぱいになってキャッシュの内容を破棄する必要がある時、主記憶装置とキャッシュメモリ１０ｇを同期させる命令が実行された時、他のデバイスが計算結果のデータを必要としている時、等である。
以上の各ユニットを備えるＣＰＵ１０は、ＨＤＤやＲＯＭに書き込まれたプログラムを、適宜、主記憶装置やキャッシュメモリ１０ｇに読み込み、主記憶装置やキャッシュメモリ１０ｇを作業領域（Work Area）として利用しつつ、コンピュータ１００全体を制御することになる。
【００２１】
メモリモジュール１４ａ〜１４ｄ（主記憶装置）においては、各々、複数の半導体メモリ素子と、各メモリモジュールでユニークなＩＤが記録された不揮発性半導体メモリ（例えば、ＳＰＤ（Serial Presence Detect）等）とが基板上に配置されている。半導体メモリ素子の１部（例えばメモリモジュールが９つのチップにより構成されている場合は、９番目のチップ）には、パリティやＥＣＣ等のエラー訂正情報が記憶される。メモリモジュール１４ａ〜１４ｄは、所定の基板（例えばマザーボード等）上に配置されたメモリスロットにそれぞれ着脱可能に装着され、同じく所定の基板上に配置されたメモリコントローラを介してシステムバスに接続される。本実施形態では、メモリモジュールとメモリスロットとは、それぞれ４つ備えられているが、無論、任意の数を採用可能である。
【００２２】
メモリコントローラは、ＣＰＵ１０の制御に従って、半導体メモリ素子のメモリ制御（データ読み出し、書き出し、メモリのリフレッシュ等）を行う。このときメモリコントローラは、メモリエラーを検出するとエラー訂正情報を利用してエラーを訂正する。また、エラー訂正情報を利用しても訂正不可能なエラーを検出した場合は、所定の信号ラインを介してＣＰＵ１０に対してエラー検出信号（メモリ交換信号）を出力する。訂正不可能なエラーとは、例えば、メモリモジュールがＥＣＣ付メモリであれば連続するマルチビットエラーや連続していないダブルビットエラーであり、前記メモリモジュールがパリティ付メモリであればシングルビットエラーである。
【００２３】
ディスプレイコントローラは、ＣＰＵ１０からバスを介して提供された表示情報を元にＲＧＢで表現される映像信号を生成し、ディスプレイに出力する。表示情報とは、例えば文字表示を行わせるのであれば表示座標とフォントデータで構成されるものであり、画像表示を行わせるのであれば、ビットマップデータや、始点座標と終点座標とライン描画命令との組み合わせ、等で構成されることになる。
【００２４】
ＲＯＭには、後述するメモリ交換処理を実行するプログラムが記憶されている。このプログラムは、前記イベント回路にメモリ交換信号が入力されたときにキャッシュメモリ１０ｇに読み込まれてＣＰＵ１０で実行される。また、このプログラムは、プログラム実行中に発生する各種データや変数、命令等を含めて前記ＣＰＵ１０のキャッシュサイズに収まるサイズとなるように作成されている。該プログラムにおいて指定される論理アドレスには、前記ＣＰＵ１０のキャッシュメモリ１０ｇの物理アドレスのみが指定されるようになっている。無論、プログラムの記憶場所は必ずしもＲＯＭである必要は無く、不揮発性の記憶媒体であればいかなるものであっても利用可能である。
【００２５】
ここで、物理アドレスと論理アドレスについて説明する。論理アドレスとは実体のある対象を指定するアドレスではなく、プログラム内部で発生する情報を仮想的に管理するためのアドレスである。より具体的には、例えば、論理アドレスは、ＨＤＤ等の補助記憶装置に形成された仮想メモリ（例えば、スワップ領域）を指定対象とするアドレスを指す。一方、物理アドレスは、主記憶装置やキャッシュメモリ１０ｇ等の記憶領域を所定数のビット毎（例えば１バイト毎）に指定するアドレスである。
【００２６】
図３は、論理アドレスと物理アドレスについて説明する図である。同図においては、論理アドレス１〜１０にそれぞれ対応する命令１〜１０で構成されるプログラムがあり、そのうち命令１〜５を主記憶装置にロードし、さらに命令１〜５のうち命令１，２を命令キャッシュにロードしている場合を例示してある。このとき、ＣＰＵ１０のＭＭＵ１０ｃの制御レジスタ（セグメントレジスタ）には、主記憶装置に記憶されている命令が論理アドレス１〜５であり、命令キャッシュに記憶されている命令が命令１，２であるという領域情報が記憶される。従って、ＣＰＵ１０で実行されるプログラムにおいて次に読み出す命令の論理アドレスが生成されると、該命令を制御レジスタの領域情報と比較し、生成された論理アドレスが領域情報に記憶されているものに該当するか否かを判断することになる。
【００２７】
この判断の結果、論理アドレス１，２に当たる命令が生成された場合は、命令キャッシュから命令を読み出し、論理アドレス３〜５のいずれかが生成された場合は、ＣＰＵ１０は内部的に割込信号を発生して命令１，２のいずれか使用頻度の低い方（若しくは実行済みの方）を主記憶装置に退避させると共に、指定された命令を主記憶装置からキャッシュメモリ１０ｇにロードする。また、論理アドレス６〜１０が生成された場合は、ＣＰＵは内部的に割込信号を発生してＯＳの機能を起動し、すでに実行済みの命令１〜５を主記憶装置から退避させると共に命令６〜１０を主記憶装置の物理アドレス１〜５にロードし、さらに生成された論理アドレスに対応する命令を命令キャッシュにロードする。これらのロードが終了すると、プログラムは制御レジスタの領域情報を書き換える。ただし、本実施形態では、後述のメモリ交換プログラムが実施されると、論理アドレスにキャッシュメモリ１０ｇのアドレスのみが対応付けられてＭＭＵ１０ｃの領域情報に記憶されることになる。
【００２８】
このようにしてＣＰＵ１０内部で発生した割込信号は、イベント回路に入力される。また、このような内部的なソフトウェア割り込みによる割込信号に加えて、イベント回路には外部的な要因により発生するハードウェア割り込みによる割込信号も入力される。外部的な割込信号としては、メモリコントローラ１２の出力するエラー検出信号や、操作入力機器からの操作入力信号等が該当する。エラー検出信号は、メモリコントローラから出力され、所定の信号ラインを介してＣＰＵ１０に入力されている。
【００２９】
メモリコントローラとＣＰＵ１０とを接続してエラー検出信号を伝送する信号ラインには、ＣＰＵ１０の制御に従って該ラインの接続／切断を選択可能なスイッチ回路６０が設けられる。スイッチ回路６０は、電気的にラインを遮断できればよく、例えば、ＦＥＴ，トランジスタ，サイリスタ等の半導体スイッチング素子が採用可能である。但し、ＣＰＵ１０における割込処理の発生を停止させるための設定を行うレジスタが予めＣＰＵ１０に備わっている場合は、スイッチ回路６０を設けなくともよい。割込処理を制御するレジスタが備わっているのであれば、該レジスタの値の変更によってスイッチ回路６０の切り換えと代替可能になるためである。
【００３０】
図４は、ＦＥＴを用いたスイッチ回路６０の例である。図４（ａ）のように、信号ラインの一部がＦＥＴのソース−ドレインで接続（中継）されるように構成した場合は、ゲート電圧を印加することでＣＰＵ１０をキャッシュメモリ１０ｇとメモリモジュール１４ａ〜１４ｄの双方を作業領域とする動作とし、ゲート電圧を抜くことでキャッシュメモリ１０ｇのみを作業領域とする動作に切り換えることになる。一方、図４（ｂ）のように、信号ラインとグランドとの間がＦＥＴのソース−ドレインで接続されるように構成すると、ゲート電圧を抜くことでＣＰＵ１０をキャッシュメモリ１０ｇとメモリモジュール１４ａ〜１４ｄの双方を作業領域とする動作とし、ゲート電圧を印加することでキャッシュメモリ１０ｇのみを作業領域とする動作に切り換えることになる。
【００３１】
また、このスイッチ回路６０は、エラー検出信号の信号ラインのみならず、ＣＰＵ１０のイベント回路に割込信号を伝送するその他の信号ラインにも設けられる。従って、これらのスイッチ回路６０を切断すると、ＣＰＵ１０には外部から割込信号が入力されないため、外部要因に基づく割り込み処理が発生しなくなる。
【００３２】
（２）メモリ交換処理： 
次に、図５のフローチャートを参照してメモリ交換処理について説明する。本実施形態においては、メモリエラーが発生すると、まず、割り込み処理でユーザへの通知が行われる。通知を受けたユーザは、メモリを交換するか否かを判断し、メモリ交換を行う場合には所定の操作入力を行う。そして、この操作入力を検知するとメモリ交換処理が開始されることになる。以下、図５の各ステップについて説明を行う。
【００３３】
ステップＳ１０では、割込要求がメモリエラーであるか否かを判断する。メモリモジュールに記録された情報に訂正不可能なエラー（データ誤り）が発見されると、メモリコントローラがイベント回路にエラー検出信号を出力する。無論、データ誤り以外にも、マザーボードやＢＩＯＳや他のメモリモジュールとの相性によるエラーをメモリエラーとして検出しても構わない。
【００３４】
イベント回路は、何らかの信号入力があると、いずれの割込要求であるかを判断し、入力信号に対応する割り込み処理を発生させる。すなわち、ステップＳ１０においては、入力信号がエラー検出信号に一致するか否かを判断し、エラー検出信号であればステップＳ１１に進み、エラー検出信号でなければ入力信号に対応する割込処理の実行もしくは、既存の処理を継続する。このステップＳ１０の処理を実行するＣＰＵ１０がエラー判断手段を構成する。
【００３５】
ステップＳ１１では、エラーの発生したメモリモジュールを特定する。メモリモジュールの特定には、公知の様々な技術が利用できるが、例えば、エラーが発生した物理アドレスがいずれのメモリモジュールに該当するかによって特定したり、メモリコントローラと通信してエラーの発生したメモリモジュールを特定する情報を得たりすることにより実現できる。
【００３６】
続くステップＳ１２では、エラーが発生した旨をユーザに通知する。同時に何れのメモリモジュールでエラーが発生したかを通知してもよい。通知は、例えば、ディスプレイコントローラ２０に所定のメッセージを表示させる表示情報を出力することにより行われる。無論、ＬＥＤ等の警告灯やスピーカを備えさせて、これらを制御することにより、警告灯の点灯やビープ音等による通知を行ってもよい。通知を終了すると、割り込み処理は終了される。
【００３７】
次に、前記ステップＳ１０〜Ｓ１２の割込処理とは別個に、ステップＳ１３〜Ｓ２０のメモリ交換処理が行われる。本処理は、例えば、ＯＳ上で実行されるアプリケーションが所定の操作入力を検出すると開始される。アプリケーションが所定の操作入力を検出すると、該アプリケーションの制御によりＲＯＭ１６からＣＰＵ１０のキャッシュメモリ１０ｇにメモリ交換プログラムがロードされる（読み込まれる）。前述したように、このプログラムではソフトウェア割り込みが発生しない。以後の処理は、このメモリ交換プログラムにより実行される。
【００３８】
続くステップＳ１４では、ＣＰＵ１０の動作をキャッシュメモリ１０ｇのみを作業領域として利用する動作に切り換える。具体的には、スイッチ回路６０を切り換えてＣＰＵ外部から各種割込信号をＣＰＵ１０に入力するラインを電気的に切断する。すなわち、ハードウェア割り込みが発生しなくなる。すると、ＣＰＵ１０では内部的にも外部的にも割込処理が発生しなくなり、イベント回路が本プログラムの実行を中断させることが無くなる。以上、ステップＳ１３でソフトウェア割り込みが発生しないメモリ交換プログラムをロードするＣＰＵ１０と、ステップＳ１４でスイッチ回路６０を制御して切断させるＣＰＵ１０とが割込防止手段を構成する。
【００３９】
続くステップＳ１５では、交換対象となるメモリモジュールのデータを退避（バックアップ）させる。すなわち、前記ステップＳ１１で判定されたスロットに装着されているメモリモジュールに記憶されているデータを、他の記憶媒体にコピー（もしくは移動）させる。退避先はＨＤＤ２２、ネットワークＮＷに接続されている他のコンピュータ２００、等、ＣＰＵ１０の制御に従ってメモリモジュール１４ａ〜１４ｄからアクセス可能な不揮発性の記憶媒体であればいかなるものであっても構わない。
【００４０】
続くステップＳ１６では、ユーザにメモリモジュールの交換を指示する。すなわちディスプレイコントローラに所定の表示情報を出力して、メモリモジュールの交換が可能である旨をユーザに通知する。通知を受けたユーザは、コンピュータ１００の電源を切断したり実行中のプログラムを終了したりすることなく、コンピュータ１００の筐体を開けてエラー発生したメモリモジュールをメモリソケットから取り外し、空いたメモリソケットに新しいメモリモジュールを装着する。
【００４１】
続くステップＳ１７では、メモリモジュールの交換が完了したか否かを判断する。この判断は、前記ＳＰＤに記録されているＩＤ等、メモリモジュールを一意に判別可能な識別情報により行われる。すなわちステップＳ１６でメモリ交換指示を行う前に、交換前のメモリモジュールから識別情報を取得しておき、本ステップＳ１７で取得した識別情報と一致するか否かを判断する。一致した場合は未交換としてステップＳ１７を繰り返し、不一致の場合は交換完了としてステップＳ１８に進む。
【００４２】
ステップＳ１８では、ステップＳ１５において退避させたデータを、交換後のメモリモジュールに退避させる以前と同じように書き込む。
【００４３】
続くステップＳ１９およびステップＳ２０で、ＣＰＵ１０を通常の動作に戻す、まずステップＳ１９では、キャッシュメモリ１０ｇに加えてメモリモジュール１４ａ〜１４ｄを作業領域として利用する動作へとＣＰＵ１０の動作を切り換える。より具体的には、スイッチ回路６０を切り換えてＣＰＵ１０に入力する信号ラインを電気的に接続し、ＣＰＵ外部からイベント回路に各種割り込み要求を入力可能な状態にする。
【００４４】
そしてステップＳ２０では、キャッシュメモリ１０ｇをリセットして本処理を終了する。すなわち、前記ステップＳ１４でロードされたメモリ交換プログラムをキャッシュメモリ１０ｇから削除する命令と、メモリ交換プログラムの開始前に実行されていたプログラムの再開命令とを、命令フェッチユニット１０ｆに送り込んで処理を終了する。よってＣＰＵ１０内部でソフトウェア割り込みが発生するようになる。以上、ステップＳ１３〜Ｓ２０の処理を実行するＣＰＵ１０が交換処理手段を構成する。
【００４５】
以下、上記構成からなる本実施形態の動作を説明する。
何れかのメモリモジュールにおいてデータ誤りが検出されると、メモリコントローラ１２からＣＰＵ１０にエラー信号が入力される。するとイベント回路１０ｄがこのエラー信号を検出して、割込処理を発生させる。この割込処理においてはデータ誤りの発生したメモリモジュールの特定と、データ誤りが発生した旨のユーザに対する通知と、が行われる。
【００４６】
この通知を受けたユーザは、メモリモジュールの交換を行うか否かを判断し、交換する場合は、所定の操作入力を行い、ＲＯＭ１６からＣＰＵ１０のキャッシュメモリ１０ｇに交換処理プログラムをロードさせる。交換処理プログラムが実行されると、スイッチ回路６０が切断されてＣＰＵ１０に対して割込信号が入力されなくなる。さらに交換処理プログラムにより、交換対象となるメモリモジュールからデータが読み出されて、ＨＤＤ２２にバックアップされる。スイッチ回路６０の切断とデータのバックアップとが終了すると、ディスプレイ３０に交換可能である旨の表示が為される。このとき、交換対象となるメモリモジュールのＳＰＤから該メモリモジュールを識別するＩＤを取得して、キャッシュメモリ１０ｇの所定のアドレスに記憶しておく。
【００４７】
この表示を確認したユーザは、メモリシステムが搭載されたコンピュータ１００の筐体を開け、メモリモジュールをソケットから取り外す。このときコンピュータ１００の電源は投入されたままであり、メモリモジュールには通電されたままである。
【００４８】
メモリモジュールの交換が完了すると、ＳＰＤのＩＤからメモリモジュールが交換されたことを検知し、ＨＤＤ２２にバックアップしておいたデータを交換後のメモリモジュールに書き込む。そしてスイッチ回路６０を接続させると共に、交換処理プログラムおよび該プログラムにてキャッシュメモリ１０ｇ内に記憶されたデータを消去する。するとＣＰＵ１０は、交換されたメモリモジュールを含むメモリモジュール１４ａ〜１４ｄを作業領域として使用しつつ、メモリエラー発生前に実行されていた処理を再開する。
【００４９】
（３）メモリ交換処理の変形例： 
前述した実施形態では、割り込み処理でメモリエラーの発生をユーザに通知後、ユーザからの操作入力を待ってメモリ交換処理を実行した。しかし、仮に、メモリエラー発生から実際にメモリ交換が開始されるまでの間に、メモリエラーによって入力された誤った情報に基づいて計算が行われていた場合、計算が進めば進むほど正しい計算結果からはかけ離れたものとなる。そこで、ユーザの操作入力を待たずにメモリ交換処理が実行されるようにしても構わない。
図６は、メモリ交換処理の第一の変形例にかかるフローチャートである。本第一の変形例では、メモリ交換処理においてステップＳ１２で一旦処理を終了することなく、ステップＳ１２に続いてステップＳ１４が実行されるようなっている。このようにユーザからのメモリ交換プログラムの開始指示を待つことなくメモリ交換可能な状態にすることにより、誤計算の拡大を防止できる。
【００５０】
図７は、メモリ交換処理の第二の変形例にかかるフローチャートである。本第二の変形例においては、メモリ交換処理がメモリエラーにより開始されるのではなく、例えば、ステップＳ１００のように、メモリモジュールがメモリソケットから取り外されたか否かの判定から開始される。無論、完全にメモリモジュールが取り外されてしまってはメモリのデータ退避が不可能になるので、例えば、メモリモジュールをソケットに対して固定するためのロック機構などを設けておき、該ロック機構を解除する際に所定のエラー信号がイベント回路に入力されるように構成すればよい。このエラー信号に基づいて取り外しの検知が可能になる。そしてロック機構の解除を検知すると、前記実施形態のステップＳ１１，Ｓ１４〜Ｓ２０を実行する。
【００５１】
その他、メモリエラーを検出しなくとも、例えば、ユーザが所定の操作入力を行って交換を希望するメモリモジュールを特定することにより、交換処理プログラムを実行しても良い。
【００５２】
なお、本発明は上述した実施形態や変形例に限られず、上述した実施形態および変形例の中で開示した各構成を相互に置換したり組み合わせを変更したりした構成、公知技術並びに上述した実施形態および変形例の中で開示した各構成を相互に置換したり組み合わせを変更したりした構成、等も含まれる。
【図面の簡単な説明】
【００５３】
【図１】本発明のメモリシステムを備えたコンピュータのブロック構成図である。
【図２】本発明のメモリシステムの要部を示したブロック構成図である。
【図３】論理アドレスと物理アドレスについて説明する図である。
【図４】ＦＥＴを用いたスイッチ回路の例である。
【図５】メモリ交換処理のフローチャートである。
【図６】メモリ交換処理の第一の変形例にかかるフローチャートである。
【図７】メモリ交換処理の第二の変形例にかかるフローチャートである。
【符号の説明】
【００５４】
１０…ＣＰＵ、１０ａ…演算ユニット、１０ｂ…ドライバ、１０ｃ…ＭＭＵ、１０ｄ…イベント回路、１０ｅ…命令デコードユニット、１０ｆ…命令フェッチユニット、１０ｇ…キャッシュメモリ、１０ｇ１…命令キャッシュ、１０ｇ２…データキャッシュ、１２…メモリコントローラ、１４…メモリモジュール、１４ａ〜１４ｄ…メモリモジュール、１６…ＲＯＭ、１８…ＵＳＢＩ／Ｆ、２０…ディスプレイコントローラ、２２…ＨＤＤ、２４…ＬＡＮＩ／Ｆ、３０…ディスプレイ、４０…操作入力機器、４０ａ…マウス、４０ｂ…キーボード、１００…コンピュータ
【図１】
2009054116.tif 000003
【図２】
2009054116.tif 000004
【図３】
2009054116.tif 000005
【図４】
2009054116.tif 000006
【図５】
2009054116.tif 000007
【図６】
2009054116.tif 000008
【図７】
2009054116.tif 000009