JP2001167001A - 自己回復するメモリ構成 - Google Patents

自己回復するメモリ構成

Info

Publication number
JP2001167001A
JP2001167001A JP2000312778A JP2000312778A JP2001167001A JP 2001167001 A JP2001167001 A JP 2001167001A JP 2000312778 A JP2000312778 A JP 2000312778A JP 2000312778 A JP2000312778 A JP 2000312778A JP 2001167001 A JP2001167001 A JP 2001167001A
Authority
JP
Japan
Prior art keywords
memory
data
memory module
module
dimm
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
JP2000312778A
Other languages
English (en)
Inventor
B Reihamu Michael
マイケル・ビー・レイハム
G Matthias James
ジェームス・ジー・マティオス
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.)
HP Inc
Original Assignee
Hewlett Packard Co
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 Hewlett Packard Co filed Critical Hewlett Packard Co
Publication of JP2001167001A publication Critical patent/JP2001167001A/ja
Pending legal-status Critical Current

Links

Abstract

(57)【要約】 【課題】 複雑なデータ修復方法を必要とせず、複数チ
ャネル上の複数エラーに対するエラー検出および訂正を
行うと共に、障害の発生したメモリのホットスワッピン
グもサポートする、メモリシステム構成を提供する。 【解決手段】 本メモリ構成には、メモリコントローラ
に電気的に結合されているCPUバスと、スイッチング
手段に接続されたメモリコントローラと、複数のメモリ
モジュールに電気的に接続されたスイッチとを含む。複
数のメモリモジュールは、少なくとも一つのデータ用の
メモリモジュールと、少なくとも一つのデータ訂正用の
メモリモジュールと、少なくとも一つのホットスペアモ
ジュールとを含む。データ用メモリモジュールと、エラ
ー訂正用メモリモジュールと、ホットスペアメモリモジ
ュールとは並列に接続されている。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、メモリ障害後に自
己回復することができるサーバ用のメモリシステムに関
する。
【0002】
【従来の技術】利用可能なサーバメモリシステムのサイ
ズは、時と共に増大し続けており、現サーバメモリシス
テムは、64ギガバイト以上であることも多い。メモリ
システムのサイズが増大するに従い、メモリビットの障
害、すなわちメモリシステムに障害が発生する可能性も
増加している。メモリシステム障害は、一時的エラーま
たは永続的エラーの両方で起こり得る。一時的エラー
は、一般に、アルファ粒子によって起こる。永続的エラ
ーには、一般に、メモリセルウォール障害、行または列
デコーダ障害、状態機械障害、またはデュアルインライ
ンメモリモジュール(以下、「DIMM」とする)の印
刷回路基板とシステム印刷回路基板間の機械的インタフ
ェースの故障といった他の破局故障などがある。
【0003】メモリシステムの障害を防止するために、
種々の形態のメモリ検出および訂正プロセスが開発され
ている。一般的に使用されているシステムのうちの1つ
では、エラーを検出するパリティビットを使用する。デ
ータを受信すると、予期される値に対してデータのパリ
ティがチェックされる。データが予期されるパリティ値
(奇数または偶数)と一致しない場合は、エラーが発生
したと判断される。この方法は単一のビットエラーを判
断するには機能するが、複数のビットエラーを判断する
には必ずしも適切に作用するものではない。更に、最も
簡単なパリティシステムは、データエラーを訂正する仕
組みを有していない。
【0004】Gaskinsらに対する米国特許第5,463,643号
は、複数エラーを検出できるパリティシステムを提供す
る。Gaskinsらの構成は、データエラーを訂正する機構
を含むRAMBUSメモリシステムと共に動作するよう
設計されている。RAMBUS仕様には、16ビットデ
ータパスとパリティビットと種々の制御信号、電源信号
および接地信号とを含むメモリチャネル仕様が含まれ
る。
【0005】図1は、直列に接続された複数のメモリモ
ジュールを有する一般的なRAMBUSメモリ構成10
0の高レベル部分ブロック図を示す。図1には、メモリ
チャネル112およびCPUバス114に電気的に接続
されたメモリI/Oコントローラ110が示されてい
る。メモリチャネル112は、RAMBUS構成仕様に
従って直列に接続された複数のメモリモジュール116
a,116b,…116nに電気的に接続されている。
【0006】Gaskinsらによって述べられているRAM
BUS仕様に起こり得る問題の1つとして、パリティチ
ェックがメモリエラーの検出用にのみ供されており、エ
ラー訂正用には限定的な提供しかされていない、という
ことがある。Gaskinsらの構成はデータエラーの訂正は
できるが、そのエラー訂正能力は限定的である。図2を
参照すると、4つのデータチャネル210a〜210d
および1つのパリティチャネル210eを有する、Gask
insらのデータチャネルおよびパリティチャネルの高レ
ベル部分ブロック図が示されている。Gaskinsらの構成
は単一チャネル上の単一または複数のエラーを訂正する
ことができるが、出願人は、この構成では複数チャネル
上で2つ以上のエラーを検出することができないと考え
ている。例えば、チャネル210aで完全な(すべての
ビット)障害が発生した場合は、データを再構成するこ
とができる。しかしながら、異なるチャネル上で2つの
ビット障害が発生した(例えば、チャネル210a上で
1つのビット障害が発生し、チャネル210b上で1つ
のビット障害が発生する)場合、エラーの検出はでき
ず、データを再構成できない。
【0007】Gaskinsらの構成における更なる問題は、
メモリI/Oコントローラ上のI/Oピン数に関連す
る。メモリ記憶要件の増加につれ、メモリコントローラ
に接続されたメモリモジュールの数も増加する。直列ア
ーキテクチャ構成では、メモリチャネルの数を1つ増や
すと、メモリコントローラに直接接続されたメモリチャ
ネルの数も1つ増える。各メモリチャネルを追加するご
とに入力ピンを追加する必要があり、システムピン数が
増加するので、これは問題となる。この問題は、特に大
容量のメモリを有するメモリ記憶システムにおいて顕著
となる。
【0008】通常使用される他のエラー検出プロセス
は、エラー訂正またはエラーチェックおよびエラー訂正
コード(以下、ECCと呼称する)である。一般に、E
CCは、CRC(巡回冗長検査)アルゴリズムに基づい
ている。ECCコードは、原則としてCRCコードであ
り、その冗長度は十分に高いので、エラーが破局的でな
ければ、オリジナルデータを復元することができる。C
RCアルゴリズムは、データを受信したときに完全なデ
ータシーケンス(データフィールドの終端に付加された
CRCビットを含む)がCRCチェッカによって読み出
されるように動作する。完全なデータシーケンスは、C
RC多項式によって余りなく割切れなければならない。
完全なデータシーケンスがCRC多項式によって割切れ
ない場合、エラーが発生していると判断される。
【0009】
【発明が解決しようとする課題】パリティに基づく従来
からのエラー訂正プロセスと異なり、ECCコードに基
づくシステムは、一般に、複数のビットエラーを検出す
るために使用できる。例えば、単一ビット訂正を持つE
CCメモリシステムは、一般的に、二重ビットエラーを
検出し単一ビットエラーを訂正することができる。4ま
たは8ビットエラー訂正を持つECCメモリは、一般的
に、4ビットまたは8ビットエラーを検出し訂正するこ
とができる。従って、×4または×8構成で編成された
SDRAMチップ全体の障害により、システムに障害が
発生することはない。ECCシステムは容易に複数エラ
ービットの検出を行うが、従来からのECCシステムの
問題は、一般に、それらが訂正不可能なエラーを報告す
る場合にシステムを停止させてしまうということであ
る。このため、最初の停止をしないで、ECCメモリシ
ステム中の障害部分を置き換えて、システムの障害耐力
(immunity:イミュニティ)を回復することはできな
い。
【0010】ECCおよびパリティプロセスは、一般
に、週7日、24時間の動作を要求される、半導体メモ
リを用いるコンピュータシステムにおいて使用されてい
る。コンピュータシステムが半導体メモリに要求されて
いる速度を必要としない場合か、または半導体メモリを
用いた、対コスト上有効でさらに大容量の記憶装置を利
用することができない場合は、ディスクドライブメモリ
が使用される。ディスクドライブメモリによってサポー
トされるコンピュータシステムは、一般に、ハードウェ
アによって複数のディスクドライブを互いにリンクさせ
て、廉価ディスク冗長アレイ(redundant array of ine
xpensive disks)すなわちRAIDとして周知の、ドラ
イブアレイを形成する。アレイ中のドライブは、互いに
協調しており、データはそれらの間に特別な方法で割り
振られる。ディスクドライブおよびディスクドライブを
読み出す機械的インタフェースは、半導体メモリより信
頼性が低いので、ディスクドライブシステムにおける永
続的または一時的なデータ障害のデータ回復プロセス
は、一般に、より多くの冗長性とより複雑なデータ回復
手順を有している。
【0011】従来のRAIDシステムにおいては、デー
タはドライブ間でビットまたはバイトレベルで分割され
る。例えば、4ドライブシステムにおいて、各バイトの
2ビットは第1のハードディスクからもたらされ、次の
2ビットは第2のハードディスクからもたらされる、と
いうようにである。従って、4つのドライブは、ドライ
ブを直列にしたときより4倍の速度で単一バイトのデー
タストリームを出力する。すなわち、1つのドライブが
2ビットを転送するために必要な時間と同じ時間しかか
からないで、1バイトで構成された情報のすべてが転送
される。いくつかのドライブ間でデータを分割するこの
技術は、データストライピングと呼ばれ、ドライブ毎の
実際のブロックサイズは1000バイト程度の大きさに
することができる。RAIDメモリにより、各ディスク
を独立して動作させる場合よりも信頼性が向上し、エラ
ーに対してより大きな抵抗力を持たせることができる。
信頼性および障害耐性(fault-tolerance)の向上は、
ミラリングおよびパリティの実施を含む種々の冗長方法
によって達成される。
【0012】複雑なデータ回復方法論を必要とせず、複
数チャネル上の複数エラーに対する自動的なエラー検出
および訂正機能を備えると共に、障害メモリのホットス
ワッピングもサポートする、メモリシステム構成が必要
とされている。
【0013】
【課題を解決するための手段】本発明は、メモリ障害の
後に自己回復(self heal)し、システムのシャットダ
ウンまたはオペレータの介入無しで障害耐力を正常レベ
ルに回復できる、サーバ用の自己回復メモリシステムを
提供する。このメモリシステムは、「自己リカバリ」、
つまり、アルファ粒子またはSDRAMのビットセルウ
ォール障害によってより頻発する単一ビット障害と同様
に、DIMMにおけるSDRAM障害、DIMMコネク
タ障害の回復が可能である。
【0014】本発明の自己回復メモリ構成は、SDRA
M(SDRまたはDDR)のような並列メモリ技術また
はRAMBUSのような直列メモリ技術と共に使用する
ことができる。好ましい実施の形態では、メモリ構成
は、メモリコントローラに電気的に結合されたCPUバ
スと、スイッチング手段に接続されたメモリコントロー
ラと、複数のメモリモジュールに電気的に接続されたス
イッチング手段と、を備えている。ここで、複数のメモ
リモジュールは、複数のデータメモリモジュールと、複
数のECCメモリモジュールと、ホットスペアメモリモ
ジュールと、を含み、これら複数のデータメモリモジュ
ールとECCメモリモジュールとホットスペアメモリモ
ジュールとは、並列に接続されている。1または4ビッ
トの訂正可能なハードエラーに対して、エラーが発生し
たデータメモリモジュールに格納されたデータは、ホッ
トスペアメモリモジュールにマップされる。複数のデー
タ、ECCおよびスペアメモリモジュールの並列構成に
より、CPUのローディングの低減が容易になり、また
必要な場合には、障害が発生したメモリコンポーネント
のホットスワッピングが容易となる。
【0015】好ましい実施の形態は、ホットスペアメモ
リモジュールを含む。ECC DIMMおよびホットス
ペアを使用するSDRAMメモリシステムは、SDRA
Mの障害またはDIMMコネクタの障害を原因とする、
障害が発生したDIMMからのデータの再構築を提供す
る。そして、障害の発生したDIMMを、オンライン
で、あるいはそのシステムがホットスワップをサポート
していない場合は年一度のダウンタイムのうちの数分間
に、置換することができる。その後、置換されたDIM
Mメモリモジュールは、メモリシステムのホットスペア
となる。
【0016】本発明の特性および利点は、明細書の残り
の部分および添付図面とに関連して更に理解されよう。
【0017】
【発明の実施の形態】図3は、本発明による自己回復並
列メモリ構成300の部分ブロック図を示す。好ましい
実施の形態では、メモリ構成は、メモリコントローラ3
14に電気的に結合されたCPUバス310と、スイッ
チング手段320に電気的に結合されたメモリコントロ
ーラ314と、を備えており、スイッチング手段320
は、複数のメモリモジュール324に電気的に接続され
ている。複数のメモリモジュール324は、好ましく
は、複数のデータメモリモジュール330と、複数のE
CCメモリモジュール334と、複数のスペアメモリモ
ジュール338と、を有している。好ましい実施の形態
では、データメモリモジュール330とECCメモリモ
ジュール334とホットスペアメモリモジュール338
とは、並列に接続されている。
【0018】図3に示す実施の形態では、データメモリ
構成は、144ビットのデータメモリチャネル340
と、36のメモリモジュールと、を有する自己回復DD
Rシステムであり、好ましくは、データメモリモジュー
ル330用に32のDDR DIMM、ECCメモリモ
ジュール334用に8つのDIMM、および4つのDD
RホットスペアDIMM338を備えている。144ビ
ット幅チャネル340には、128のデータビットと1
6のECCビットとが含まれる。144ビットデータバ
ス340は、4つの別々の72ビットバスセグメントに
分割される。各バスセグメントは、データに使用される
8つのデータメモリモジュール330と、ECCに使用
される2つのECCメモリモジュール334と、1つの
ホットスペアメモリモジュール338と、を有している
のが好ましい。ECCメモリモジュール334は、各チ
ャネル346a〜346dにおいて16のデータモジュ
ールと4つのECCモジュールとに渡ってデータストラ
イピングが可能であるように設けられている。
【0019】データバス、すなわちデータメモリチャネ
ル340は、少なくとも1つのスイッチング手段32
0、好ましくは1:2FETに電気的に結合されてお
り、メモリコントローラ314を介してCPUバス31
0に電気的に結合されている。1:2FETスイッチで
あるスイッチング手段320は、144ビットバスを2
つの144ビットバスセグメントに分割する。72ビッ
ト幅DRAMの場合、2つの144ビットバスセグメン
トの各々が、2つの別々の72ビットバスチャネルに分
割される。72ビットメモリチャネルの各々は、複数の
72ビットメモリモジュール330,334,338に
並列に接続されている。
【0020】図3に示す実施の形態において、各メモリ
チャネルは、2ECC DIMMの幅および36DIM
Mの深さであり、各々18のDIMMを持つ2つのバス
セグメント(1:2FETスイッチによって分離されて
いる)を使用している。各メモリチャネルは、8つのデ
ータDIMMと、2つのECC DIMMと、1つのホ
ットスペアDIMMと、を有している。従って、メモリ
コントローラチャネルデータI/Oピンにおける最大ロ
ーディングは、9DIMMである。これにより、4つの
バスセグメントの各々において、1GBのDIMMを用
いれば32GB、または2GBのDIMMを用いれば6
4GBの最大容量およびホットスペアDIMMが可能と
なる。
【0021】図3に示すメモリ構成は、ストライピング
を使用する場合、容易に拡大縮小することができない。
図3に示すDIMMの構成および数は、ハイエンドシス
テムでは一般的であるが、データバスに接続されたDI
MMモジュールの数は、データ記憶用のメモリモジュー
ル1つとホットスペアメモリモジュール1つとであって
もよい。データ記憶用メモリモジュールが1つだけ使用
される場合は、DIMMは、エラー訂正専用の少なくと
も1つのメモリ装置またはメモリ装置のビットを有して
いなければならない。
【0022】図4は、好ましい実施の形態の自己回復並
列メモリ構成の部分ブロック図を示す。図4に示す好ま
しい実施の形態は、図3に示す実施の形態を縮小したバ
ージョンである。ここに示すメモリ構成は、データまた
はECCのいずれかを格納するために使用できる複数の
メモリモジュール330と、ホットスペアメモリモジュ
ール338a,338bと、を有している。図3に示す
実施の形態とは対照的に、専用のECC装置は無く、代
りに、メモリ装置におけるビットがデータまたはECC
に対して専用化されている。図4に示す実施の形態で
は、好ましくは、各72ビットバス360aまたは36
0bに提供される単一のホットスペアメモリモジュール
がある。メモリモジュール330の1つに障害が発生し
た場合、データはその対応するホットスペアモジュール
にマップされる。図4に示す実施の形態では、データス
トライピングは使用されず、従って、システムは拡大縮
小可能である。図4に示す実施の形態では、最低2つの
データメモリモジュールと2つのスペアメモリモジュー
ルとが必要である。
【0023】図4に示す実施の形態では、データメモリ
チャネル340は、メモリコントローラ314を、少な
くとも1つのスイッチング手段320、好ましくはFE
Tスイッチに電気的に結合する。FETスイッチ320
は、メモリバスからの信号を分割して、メモリコントロ
ーラにおけるローディングを低減する。好ましい実施の
形態では、スイッチング手段は、1:2FETスイッチ
である。しかしながら、代替的な実施の形態では、スイ
ッチング手段は、クロスバータイプスイッチとすること
ができる。しかしながら、システム要件により、特にメ
モリ構成におけるメモリモジュールの数により、1:2
または1:4FETを使用することができる。FETの
サイズの比率が増加するということは、バスセグメント
の数が増加することを意味する。
【0024】図4に示す好ましい実施の形態では、各7
2ビットバス360aまたは360bに対し、FETス
イッチが使用されている。代替的な実施の形態では、メ
モリコントローラとCPUバスとの間にスイッチング手
段が接続されていない。一般に、わずかな数のメモリモ
ジュールしか必要でない小さいメモリシステム(例え
ば、1GBレンジ)では、メモリ構成の一部としてスイ
ッチング手段は含まれない。
【0025】好ましい実施の形態では、メモリモジュー
ル324は、JEDEC準拠を満たすために、72ビッ
ト幅のDRAM、好ましくはDIMMである。しかしな
がら、システム要件を満たす限りは、いかなるタイプの
読出し書込み可能メモリコンポーネントを使用してもよ
い。メモリモジュール324は、スペアであっても稼動
中であってもよい。従って、バンク選択、RAS等の制
御ラインは、可変であり、好ましくは各スロットに対し
てハードワイヤード(hardwired)されていないことが
必要である。
【0026】好ましい実施の形態では、メモリ構成の各
メモリチャネルは、少なくとも1つのデータ訂正用メモ
リモジュールと、少なくとも1つのホットスペアとして
使用されるメモリモジュールと、を有している。少なく
とも1つのデータ訂正用メモリモジュールおよび少なく
とも1つのホットスペアとして使用されるメモリモジュ
ールは、データバスに並列に電気的に結合されている。
好ましくは、メモリモジュールはSDRAMであり、シ
ステムは、SDRAM障害全体について訂正を行うこと
ができると共に、ホットスペアにおける再構築プロセス
中に発生する可能性のある、追加的なソフトエラーにつ
いても訂正を行うことができる。また、制御またはアド
レスが冗長な接点を有する場合は、DIMMソケット障
害についても訂正を行うことができる。
【0027】メモリ構成は、各メモリチャネルに対し、
2つのECCメモリモジュール334を有している。し
かしながら、ECCモジュールの好ましい数は、使用さ
れるCRC多項式のタイプに限定されず、データエラー
の数およびデータエラーが訂正されるチャネルの数を含
む、複数の要素によって決まる。メモリコントローラ3
14は、メモリエラーに対しデータ訂正を提供するEC
Cロジック342を含む。ECCロジック342の実現
には従来からの技術を用い、それは、使用されるデータ
訂正要件およびアルゴリズムによって変更可能である。
【0028】使用されるCRC多項式とECCメモリモ
ジュールの数とは、メモリ構成のデータ訂正要件によっ
て変化する。好ましいECCの実現では、SDRAM4
つの障害によるエラーを訂正するために16のECCビ
ットが必要であり、同時に再構築プロセス中に1つのラ
ンダムエラーが許容される。これにより、ビットエラー
訂正の数は合計5つとなる。
【0029】図3に示す実施の形態において、各メモリ
チャネル346a〜346dは、ホットスペアメモリモ
ジュール338を有している。メモリ部分にホットスペ
アが存在することを宣言するために、構成ユーティリテ
ィプログラムが使用される。DRAM障害全体がDIM
M(デュアルインラインモジュール)で検出された場
合、それは訂正されるが、その後、メモリコントローラ
314がホットスペアDIMM上にデータを再構築す
る。データビットに対する冗長ビットの割合は、1:8
であるが、システムにおける冗長DIMM対DIMMの
総数の割合により低減される。ホットスペアDIMM
は、少なくとも最大のDIMMと同程度に大きくなけれ
ばならない。一般に、ホットスペアメモリモジュール
は、他のデータメモリモジュールと同じメモリサイズお
よびDRAM編成を有している。
【0030】システム動作中、特定のメモリ位置におい
て十分なエラーが発生した場合、データは、ホットスペ
アモジュールのメモリ位置に移動される。これにより、
不良のデータメモリモジュールか、または異なるデータ
メモリモジュールの不良のデータメモリ位置が使用不可
能となった場合、不良のデータメモリモジュールからの
データは、ホットスペアメモリモジュールに転送され
る。データメモリモジュール全体またはデータメモリモ
ジュールの大部分が不良となった場合、そのデータメモ
リモジュールは、最終的にスワップアウトされ、データ
の完全性が向上しているホットスペアメモリモジュール
と交換される。
【0031】図5から図7は、本発明の自己回復メモリ
で起こるステップを表す、高レベルブロック図を示す。
訂正可能なハードエラーを有するコンピュータシステム
に対し障害耐力のレベルを復元するために実行されるス
テップは、メモリモジュールにおける訂正可能エラーを
検出することと、訂正可能エラーが検出されたメモリモ
ジュールからのデータをスペアメモリモジュールに移動
して再構築することとを含む。
【0032】図5は、メモリエラーが第1のメモリモジ
ュールにおいて発生している、図3および図4に示す構
成を表す高レベルブロック図を示す。図5を参照する
と、第1のメモリモジュール330aにおいて陰を付け
た領域で表された4ビットエラーが示されている。4ビ
ットエラーは、メモリモジュールを読み出す際に検出さ
れ複数アドレスで発生する、訂正可能なハードエラーま
たは永続的エラーである。また、図5に示すブロック図
には、スペアモジュール338aが示されている。
【0033】図6は、図3および図4に示す構成に対し
データをスペアメモリモジュールに移動して再構築する
ステップを表す高レベルブロック図を示す。図6を参照
すると、矢印380は、データメモリモジュール330
aからスペアメモリモジュール338aへのデータの移
動を表している。移動および再構築プロセス中、データ
は第1のデータメモリモジュール330aからスペアメ
モリモジュール338aに転送される。移動および再構
築プロセス中は、メモリコントローラによる第1のデー
タメモリモジュール330aへの新規な書込みはすべ
て、データメモリモジュール330aとスペアメモリモ
ジュール338aとの両方に対して行われる。矢印38
2は、この二重書込みプロセスを表す。移動および再構
築プロセスが完了するまで、読出し動作は第1のデータ
メモリモジュール330aからのみである。示されてい
る移動および再構築プロセス中は、アルファ粒子により
起こるような、一時的な1ビットエラーを訂正すること
ができる。
【0034】図7は、第1のメモリモジュールからスペ
アメモリモジュールへのデータの移動および再構築のス
テップ後の、図3および図4に示す構成を表す高レベル
ブロック図を示す。図7を参照すると、以前はホットス
ペアモジュールであったモジュール5は、データモジュ
ールになっている。古い第1のモジュールは、今では第
1のモジュールからのオリジナルデータに新たな書込み
を足したデータを有している。システムユーザにとって
有用である場合には、第1のメモリモジュールは、置換
されるべきであり、古い第1のメモリモジュール330
aはスペアメモリモジュールとなる。
【0035】ホットスペアメモリモジュールにデータを
移動するために、メモリコントローラにより、不良のメ
モリ位置とホットスペアのメモリマッピングが行われ
る。メモリコントローラのデータメモリモジュールへの
マッピングを変更することにより(すなわち、不良のD
RAMを有するDIMMを検出した後の、アドレスまた
は制御のルーティングにより)、ホットスペアデータメ
モリモジュールまたはDIMMは、書込みおよびメモリ
更新のためのホットスペアメモリモジュールと対となる
が、読出しは不良のデータメモリモジュールのみから行
われるように、設定される。
【0036】次に、CPU、メモリコントローラまたは
管理コントローラは、不良のデータメモリモジュールの
内容をホットスペアデータモジュールにコピーする。こ
のプロセス中、不良のデータメモリモジュールへのシス
テム書込みもすべて、ホットスペアメモリモジュールに
書き込まれる。従って、コピーが行われると、不良のデ
ータメモリモジュールのイメージに再構築プロセス中に
発生したあらゆる書込みを足したものを、ホットスペア
は有している。なお、DIMMからDIMMへの転送を
行うときは初期化をしないのに対して、すべてのロケー
ションをコピーする場合は、訂正されたデータを有する
ホットスペアデータメモリモジュールを初期化すること
に留意してほしい。
【0037】エラー訂正方式は、同時に発生する複数の
エラーを訂正することができなければならない。このた
め、例えば、DIMM再構築プロセス中に単一のビット
ソフトエラーが発生した場合、不良のDIMMに対し、
新たなホットスペアとしてマップアウトする(そしてス
ワップアウトされるまで不良としてマークする)ことが
できなければならない。そして、新たなホットスペアD
IMMがメモリ構成内にマップされることにより、不良
のDIMMが完全に置換される。スワップされるべきま
たはエラーのロギングのためのDIMMを識別する際、
実際の物理的なDIMM位置を計算するためにDIMM
マッパ機能が使用される。
【0038】例えば、図3において、システムがまだ実
行中である時に、不良のデータメモリモジュールをホッ
トスワップアウトするかまたは取出すようにしてもよ
い。データ転送が行われた後、新たなデータメモリモジ
ュールにより不良のDIMMを置換することができるよ
うに、電源および不良DIMMを接続するバス(または
取除くべきDIMM)がオフにされる。ホットスワッピ
ングが好ましいが、サーバによっては、パッケージング
は非常にアクセス密度が高いため、ホットスワッピング
が提供されないかまたは実行不可能である場合がある。
これらの場合、次に予定されたダウンタイム中に、不良
のデータメモリモジュールをメモリ構成からコールドス
ワップすることができる。
【0039】好ましい実施の形態では、本発明の実現の
ために別々のスペアメモリモジュールが必要とされる。
スペアメモリモジュールは、メモリ構成においてサポー
トされなければならない。一般的に、このスペアメモリ
サポートは、ホットスペアメモリモジュールによって受
信されるコマンドおよびアドレスバスが、データモジュ
ールおよびECCメモリモジュールに送信される信号と
は異なっていることが必要である。これは、一般に、デ
ータモジュールまたはECCメモリモジュールにおいて
エラーが発生しない限り、ホットスペアメモリモジュー
ルは選択されないためである。訂正可能なハードエラー
が発生する場合にのみ、ホットスペアメモリモジュール
は起動されることになり、訂正不可能なエラーを有する
メモリモジュールは休止状態になる。さらに、このスペ
アメモリモジュールサポートには、好ましくはメモリコ
ントローラにおいて実現されるか、または代替的ににメ
モリコントローラ外部の論理回路において実現される、
追加ロジックが含まれる。
【0040】再構築プロセスに対して最も柔軟な方式
は、メモリコントローラが、障害の発生したDIMMを
読出し、同時にデータのバーストブロックを(メモリコ
ントローラを経由して)ホットスペアDIMMに転送す
る、というものである。障害の発生したDIMMとホッ
トスペアDIMMとは、同じメモリサイズおよび編成で
あるのが好ましいが、障害の発生したDIMMとホット
スペアDIMMとは、メモリサイズが異なってもよく、
異なるSDRAM編成を使用してもよい。再構築プロセ
ス中、システム読出しは障害が発生したDIMMから行
われ、システム書込みは、別々のバーストサイクルで、
障害が発生したDIMMとホットスペアDIMMとの両
方に対して行われる。
【0041】本発明の1つの実施の形態においては、メ
モリモジュールに対してデータを書込むために、ジャグ
ラ(juggler)アルゴリズムが使用される。「ジャグ
ラ」アルゴリズムは、同じ棍棒のセットを交互に空中で
巧みに操る2人の曲芸師(juggler)に例えてそう名づ
けられている。DIMMデータは、正常なシステムメモ
リのトランザクションが継続している間に、「オンライ
ンで」不良DIMMからホットスペアDIMMに徐々に
移動されるかまたは交互に行われる(juggle)。好まし
い実施の形態について、図4に示すメモリ書込みパター
ンの各ブロックは、8ビットのデータを表しているが、
ビットの数は実際のメモリ構成によって変えることがで
きる。例えば、本発明の図3に示す構成における8ビッ
トDIMMを16ビットDIMMモジュールで置換する
場合、図4に示す各ブロックは、16ビットのデータを
表すことになる。
【0042】DIMMにおけるDDR DRAMチップ
の破局故障か、またはDIMMコネクタ自体(データピ
ン)の障害の後、システムは、サーバをシャットダウン
する必要なく、自身をオンラインで修復し障害耐力の正
常レベルに戻る。ジャグラアルゴリズムを用いること
で、本発明のメモリ構成は、以下のサーバアプリケーシ
ョンに適する。すなわち、1)オペレータの居ない遠隔
サーバロケーション、2)オンラインでホットスワッピ
ングを行うにはアクセス不可能な程、非常に密度高くパ
ッケージされたメモリシステムを有するサーバ、3)何
百または何千のサーバを含むことができる大規模集中型
「サーバファーム」において使用されるよう設計され、
I/O、CPUおよびメモリサブシステムのホットスワ
ッピングに対し最適化されたサーバ、4)障害のあるサ
ーバを修復のためにシャットダウンすることができ、そ
れゆえ個々のサブシステムにホットスワッピングを提供
するという複雑さを要しない、冗長なサーバのペア、で
ある。
【0043】本発明のメモリ構成において、JEDEC
DDR DIMM仕様に準拠するように、×4および
×8SDRAMに対し133MHzの周波数でエラー訂
正が動作する必要がある。DDRを100MHzで使用
するデュアルチャネルのバースト帯域幅は、3.2GB
/秒であり、133MHzの場合は4.2GB/秒であ
る。従って、サーバまたはワークステーションのメモリ
システムが、3.2GB/秒のバースト帯域幅で3:4
の割合で100MHz4×CPUバスと共に使用される
場合、非キャッシュコヒーレント4×AGPメモリアク
セスに対し、ワークステーションで追加の帯域幅を使用
することができる。あるいはまた、ホットスペアDIM
M再構築プロセス中に、キャッシュライン転送、I/O
バースト転送、またはメモリコントローラのオーバヘッ
ドに要する、全待ち時間を短縮するため、サーバに帯域
幅を追加して使用することができる。CPUバスが13
3MHzで動作する場合、メモリは166MHzで動作
することができる。DDRバースト毎に転送されるデー
タ(バースト長が4とする)は、64バイトのキャッシ
ュラインまたはCPUバスバーストに対応する。
【0044】好ましい実施の形態では、検出されたエラ
ーは訂正され記録(ログ)される。イベントログはすべ
てのエラーを記録し、エラーログは異なるエラークラス
に対しておよび特定のDIMMロケーションに対して行
われるのが好ましい。なお、ソフトエラーは一時的な障
害であり、ハードエラーは、永続的な障害を表す。この
ため、ニブル境界における4ビットハードエラーの検出
により、ホットスペア上のデータの「再構築」が起動さ
れる。同様に、DIMMコネクタ障害が検出された場
合、優良なDIMMソケットを有するホットスペア上の
データの再構築を起動するためにそれを使用することが
でき、あるいは、データを単に訂正することができる。
【0045】スパイラルな書込みパターンを書込むため
には、図3の構成に示すデータメモリモジュールはすべ
て存在しなければならない。メモリコントローラが異な
るメモリアドレスを通過するに従い、データがスパイラ
ルな形式または書込みパターンでデータモジュールおよ
びECCメモリモジュールに書込まれる。ECCとラベ
ル付けされているが、スパイラル書込みパターンの場
合、ECCモジュールはデータ用にも使用され、データ
モジュールは書込みサイクルの場所によりECCデータ
の書込みにも使用される。
【0046】複雑な方法ではあるが、スパイラル書込み
パターンより単純な再構築アルゴリズムを有する代替的
な自己回復方法は、非ECC DIMMを使用し、EC
C用に付加された2DIMMを含む16バイトブロック
のメモリチャネルに渡ってデータをストライプするとい
うものである。それぞれ2つのホットスペアDIMMが
含まれる場合、これには最低20のDIMMが必要であ
る。従って、データビットに対する冗長データビットの
割合は、ホットスペアを含んで1:4である。RAID
システムと同様、DIMMはすべて同じサイズでなけれ
ばならない。
【0047】データがアレイの各DIMMにストライプ
されると、ブロックサイズが1ニブルかまたは1バイト
幅である場合、障害が発生したDIMMを、障害が発生
した時に取り除き置換することができ、また、システム
をクラッシュさせることなくDIMMを取除くことがで
きる。その結果、不良DIMMのホットスワップ後、新
たなDIMMは有効なデータを含まなくなり、メモリア
クセスが行われるときに再構築することができ、結果と
して生じるニブルエラーに対する訂正が行われる。ある
いはまた、全アドレス空間を、CPU、管理コントロー
ラまたはメモリコントローラによってシーケンシャルに
読出すことができる。これにより、再構築プロセスが行
われるまで,データと共に書込まれる正しいECCビッ
トを有する新たなDIMMの各ロケーションに対し、R
−M−W(Read-Modify-Write)が行われる。
【0048】図8は、本発明のメモリモジュールに対し
てデータを書込むかまたはストライプする第1の方法を
示す。図9は、本発明に従ってメモリモジュールに対し
てデータを書込むかまたはストライプする第2の方法を
示す。図8に示す書込みパターンは72ビット幅のメモ
リモジュールに適用され、図3に示す実施の形態では、
メモリチャネル毎に少なくとも9つのDIMMと1つの
スペアメモリモジュールが必要となる。対照的に、図9
に示す書込みパターンは、64ビット幅のメモリモジュ
ールに適用される。それは、一般的に、図8に示す方法
と同じ数のDIMMが必要であるが、データメモリの容
量が少ないため、ストライピングパターンが図8のパタ
ーンとは異なっている。
【0049】データストライピングという代替方法は、
(1)ホットスワップ再構築アルゴリズムの複雑さを低
減する(不良DIMMをいつでもスワップすることがで
きるため)こと、および(2)メモリコントローラとN
OSが独立していることが魅力であるが、好ましくない
かまたはシステム構成の柔軟性を低下させる可能性のあ
る制約がいくつか追加される。第1に、メモリアレイ
は、同じサイズのDIMM内で完全に占有されなければ
ならない。第2に、必要なDIMMの数は、4または1
8に分割されるDIMMデータ幅に等しい。これは、ベ
ースシステムにおけるアレイサイズが非常に大きいが、
メモリアレイサイズを8ビットチップキルを用いること
によって9トータルに縮小することができる、というこ
とを意味する。この代替的な自己回復方式の問題は、デ
ータストライピングプロセスがメモリ制御およびアドレ
ス指定の複雑さを増大させるのと同様に電力の消失を増
大させる可能性がある、ということである。更に、OL
Xによる追加にホットスワップ方式が使用される場合、
システムをパワーダウンしメモリアレイデータ全体を再
構築することなく、アレイに新たなDIMMを追加する
ことが複雑になる。これら同じ問題は、RAIMと呼ぶ
この方式に比較して、ディスクドライブを用いるRAI
Dシステムにも存在する。このため、この代替方法は、
多くのDIMMソケットを備えた非常に大容量のメモリ
を有するハイエンドサーバにより適している。
【0050】図10は、RAMBUSメモリ構成と共に
使用することができる本発明の第2の代替的な実施の形
態の部分ブロック図を示す。図3に示す実施の形態に比
べて、図10に示す代替的な実施の形態は好ましくな
い。図10に示すデイジーチェーン直列アーキテクチャ
の基本的な問題は、システムの実行中には、データメモ
リモジュールをバスから取除くこともパワーダウンする
こともできず、そのため、ホットスワッピングを行うこ
とができない、ということである。更に、ECCビット
は直列である。従って、1つのコネクタピン障害によ
り、デイジーチェーンにおける16のバースト的な複数
エラーによりシステムに障害がもたらされることとな
る。
【0051】図10を参照すると、メモリコントローラ
412に電気的に接続されたCPUバス410が示され
ている。メモリコントローラ412は、複数のメモリチ
ャネル416a,416b,416cに電気的に接続さ
れている。メモリチャネル416aは、ホットスペアメ
モリモジュールを含んでいる。メモリチャネル416b
は、8つのデータメモリモジュールを含む。好ましく
は、メモリチャネル416cは、3つのECCメモリモ
ジュールを含む。
【0052】図10に示すメモリ構成は、2バイト幅の
非ECCメモリチャネルを使用する。従って、RAMB
USモジュールの1チャネル分を有するPCBを、シス
テムから取り除くことができる。すなわち、8つのメモ
リチャネル、2つのECCメモリチャネルおよび1つの
ホットスペアチャネルである。ECCビットの数は、2
バイトのチャネル障害を訂正するために十分大きくなけ
ればならない。データビットに対する冗長ビットの割合
は小さい。従って、図10に示すメモリ構成は、非常に
ハイエンドなシステムに対してのみ適している。
【0053】上記説明は、例示のために示されており、
限定することを意図しているのではないことが理解され
る。例えば、データメモリモジュールからのデータのマ
ッピングを行うためにジャグラアルゴリズムおよびデー
タストライピングアルゴリズムが示されているが、デー
タをマッピングするために、RAIDメモリ構成におい
て一般的に使用されるアルゴリズム等の、他のアルゴリ
ズムを使用してもよい。従って、発明の範囲は、上記説
明に関して決定されるべきではなく、添付の特許請求の
範囲とかかる請求の範囲が権利を与えている同等物の全
範囲に関して決定されるべきである。
【0054】本発明は例として次の実施態様を含む。
【0055】(1) メモリコントローラに電気的に結
合されたCPUバスと、メモリコントローラに電気的に
結合されたデータバスと、少なくとも1つのデータ記憶
用メモリモジュールと、少なくとも1つのスペアメモリ
モジュールと、を具備し、前記少なくとも1つのデータ
記憶用メモリモジュールおよび前記少なくとも一つのス
ペアメモリモジュールは、前記データバスに並列に電気
的に結合されており、前記少なくとも1つのデータ記憶
用メモリモジュールで発生する訂正可能なエラーに応答
して、前記少なくとも1つのデータ記憶用メモリモジュ
ールからのデータが前記スペアメモリモジュールにマッ
プされるメモリ構成。
【0056】(2) 前記データ記憶用メモリモジュー
ルは、複数のメモリ装置を含み、前記複数のメモリ装置
の少なくとも一部は、エラー訂正に使用される、上記
(1)に記載のメモリ構成。
【0057】(3) 前記少なくとも1つのデータ記憶
用モジュールからのデータの前記スペアメモリモジュー
ルへの前記マッピングは、ユーザの介入無しに自動的に
発生する、上記(1)に記載のメモリ構成。
【0058】(4) 少なくとも1つのエラー訂正用メ
モリモジュールを含み、前記少なくとも1つのエラー訂
正用メモリモジュールは、前記少なくとも1つのデータ
記憶用メモリモジュールおよび前記少なくとも1つのス
ペアメモリモジュールに並列に電気的に結合されてい
る、上記(1)に記載のメモリ構成。
【0059】(5) 前記データバスを少なくとも第1
のバスセグメントと第2のバスセグメントとに分割する
少なくとも1つのスイッチを含む、上記(1)に記載の
メモリ構成。
【0060】(6) 前記データバスを少なくとも第1
のバスセグメントと第2のバスセグメントとに分割する
前記少なくとも1つのスイッチがFETスイッチであ
る、上記(1)に記載のメモリ構成。
【0061】(7) ジャグラアルゴリズムを使用し
て、前記少なくとも1つのデータ記憶用メモリモジュー
ルから前記スペアメモリモジュールにデータがマップさ
れる、上記(1)に記載のメモリ構成。
【0062】(8) データストライピングアルゴリズ
ムを使用して、データがデータ記憶用メモリモジュール
に書込まれる、上記(1)に記載のメモリ構成。
【図面の簡単な説明】
【図1】 DIMMモジュールが直列に接続されている
RAMBUSメモリ構成の高レベル部分ブロック図。
【図2】 エラー訂正機能を提供するRAMBUSメモ
リ構成のデータおよびパリティチャネルの高レベル部分
ブロック図。
【図3】 本発明による自己回復並列メモリ構成の部分
ブロック図。
【図4】 本発明の好ましい実施の形態による代替的な
実施の形態の自己回復並列メモリ構成の部分ブロック
図。
【図5】 第1のメモリモジュールでメモリエラーが発
生している、図3および図4に示す構成を表す高レベル
ブロック図。
【図6】 図3および図4に示す構成についてスペアメ
モリモジュールにデータを移動し再構築するステップを
表す高レベルブロック図。
【図7】 第1のメモリモジュールからスペアメモリモ
ジュールへデータを移動し再構築するステップの後の、
図3および図4に示す構成を表す高レベルブロック図。
【図8】 本発明による自己回復メモリ構成のメモリモ
ジュールへのデータの書込みまたはストライピングの第
1の方法。
【図9】 本発明による自己回復メモリ構成のメモリモ
ジュールへのデータの書込みまたはストライピングの第
2の方法。
【図10】 RAMBUSメモリ構成と共に使用するこ
とができる本発明の代替的な実施の形態の部分ブロック
図。

Claims (1)

    【特許請求の範囲】
  1. 【請求項1】 メモリコントローラに電気的に結合され
    たCPUバスと、 前記メモリコントローラに電気的に結合されたデータバ
    スと、 少なくとも1つのデータ記憶用メモリモジュールと、 少なくとも1つのスペアメモリモジュールと、を具備
    し、 前記少なくとも1つのデータ記憶用メモリモジュールお
    よび前記少なくとも一つのスペアメモリモジュールは、
    前記データバスに並列に電気的に結合されており、前記
    少なくとも1つのデータ記憶用メモリモジュールで発生
    する訂正可能なエラーに応答して、前記少なくとも1つ
    のデータ記憶用メモリモジュールからのデータが前記ス
    ペアメモリモジュールにマップされるメモリ構成。
JP2000312778A 1999-10-28 2000-10-13 自己回復するメモリ構成 Pending JP2001167001A (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US43036399A 1999-10-28 1999-10-28
US09/430363 1999-10-28

Publications (1)

Publication Number Publication Date
JP2001167001A true JP2001167001A (ja) 2001-06-22

Family

ID=23707233

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2000312778A Pending JP2001167001A (ja) 1999-10-28 2000-10-13 自己回復するメモリ構成

Country Status (1)

Country Link
JP (1) JP2001167001A (ja)

Cited By (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006048688A (ja) * 2004-07-30 2006-02-16 Internatl Business Mach Corp <Ibm> セグメント・レベルの予備化を実現するシステム、方法、およびプログラム
US7185166B2 (en) 2002-12-13 2007-02-27 Samsung Electronics Co., Ltd. Computer system and method for determining operation in a multi-channel mode
JP2007516494A (ja) * 2003-08-22 2007-06-21 モトローラ・インコーポレイテッド 固体メモリに対する読取及び書込方法並びに装置
US7636867B2 (en) 2005-03-24 2009-12-22 Nec Corporation Memory system with hot swapping function and method for replacing defective memory module
US7752490B2 (en) 2005-03-25 2010-07-06 Nec Corporation Memory system having a hot-swap function
JP2014515145A (ja) * 2011-08-31 2014-06-26 華為技術有限公司 コンピュータシステムのメモリを管理する方法、メモリ管理ユニット及びコンピュータシステム
JP2014194795A (ja) * 2005-09-02 2014-10-09 Metallum Inc Dramをスタックする方法及び装置
US9507739B2 (en) 2005-06-24 2016-11-29 Google Inc. Configurable memory circuit system and method
US10013371B2 (en) 2005-06-24 2018-07-03 Google Llc Configurable memory circuit system and method
CN109388975A (zh) * 2017-08-03 2019-02-26 Arm有限公司 针对安全性和可靠性的存储器组织
JP2021509499A (ja) * 2018-01-03 2021-03-25 インターナショナル・ビジネス・マシーンズ・コーポレーションInternational Business Machines Corporation メモリ・コントローラを動作させる方法、デュアル・チャネル・モードからシングル・チャネル・モードに切り替える方法、およびメモリ・コントローラ

Cited By (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7185166B2 (en) 2002-12-13 2007-02-27 Samsung Electronics Co., Ltd. Computer system and method for determining operation in a multi-channel mode
JP2007516494A (ja) * 2003-08-22 2007-06-21 モトローラ・インコーポレイテッド 固体メモリに対する読取及び書込方法並びに装置
JP2006048688A (ja) * 2004-07-30 2006-02-16 Internatl Business Mach Corp <Ibm> セグメント・レベルの予備化を実現するシステム、方法、およびプログラム
US7636867B2 (en) 2005-03-24 2009-12-22 Nec Corporation Memory system with hot swapping function and method for replacing defective memory module
US7752490B2 (en) 2005-03-25 2010-07-06 Nec Corporation Memory system having a hot-swap function
US9507739B2 (en) 2005-06-24 2016-11-29 Google Inc. Configurable memory circuit system and method
US10013371B2 (en) 2005-06-24 2018-07-03 Google Llc Configurable memory circuit system and method
JP2014194795A (ja) * 2005-09-02 2014-10-09 Metallum Inc Dramをスタックする方法及び装置
JP2014515145A (ja) * 2011-08-31 2014-06-26 華為技術有限公司 コンピュータシステムのメモリを管理する方法、メモリ管理ユニット及びコンピュータシステム
CN109388975A (zh) * 2017-08-03 2019-02-26 Arm有限公司 针对安全性和可靠性的存储器组织
CN109388975B (zh) * 2017-08-03 2024-01-30 Arm有限公司 针对安全性和可靠性的存储器组织
JP2021509499A (ja) * 2018-01-03 2021-03-25 インターナショナル・ビジネス・マシーンズ・コーポレーションInternational Business Machines Corporation メモリ・コントローラを動作させる方法、デュアル・チャネル・モードからシングル・チャネル・モードに切り替える方法、およびメモリ・コントローラ
JP7146920B2 (ja) 2018-01-03 2022-10-04 インターナショナル・ビジネス・マシーンズ・コーポレーション メモリ・コントローラを動作させる方法、デュアル・チャネル・モードからシングル・チャネル・モードに切り替える方法、およびメモリ・コントローラ

Similar Documents

Publication Publication Date Title
TWI710892B (zh) 動態隨機存取記憶體的錯誤更正方法
US8086783B2 (en) High availability memory system
JP5874119B2 (ja) Dramをスタックする方法及び装置
US6754858B2 (en) SDRAM address error detection method and apparatus
US5267242A (en) Method and apparatus for substituting spare memory chip for malfunctioning memory chip with scrubbing
US7599235B2 (en) Memory correction system and method
US6418068B1 (en) Self-healing memory
JP3129732B2 (ja) コピーバックキャッシュを有する記憶装置アレイ
US6430702B1 (en) Fault tolerant memory
US7292950B1 (en) Multiple error management mode memory module
US20080010435A1 (en) Memory systems and memory modules
US10409677B2 (en) Enhanced memory reliability in stacked memory devices
JPH08502137A (ja) 故障許容メモリシステム
US7380198B2 (en) System and method for detecting write errors in a storage device
US20160139989A1 (en) Global error correction
US7873895B2 (en) Memory subsystems with fault isolation
JP2001167001A (ja) 自己回復するメモリ構成
US20030159092A1 (en) Hot swapping memory method and system
KR20230121611A (ko) 시스템 메모리 신뢰성, 가용성 및 서비스 가능성(ras)을개선하기 위한 적응형 오류 정정
JPS61131147A (ja) 記憶装置