JP2001142789A - ローエンドサーバまたはワークステーション用のチップキル - Google Patents
ローエンドサーバまたはワークステーション用のチップキルInfo
- Publication number
- JP2001142789A JP2001142789A JP2000320318A JP2000320318A JP2001142789A JP 2001142789 A JP2001142789 A JP 2001142789A JP 2000320318 A JP2000320318 A JP 2000320318A JP 2000320318 A JP2000320318 A JP 2000320318A JP 2001142789 A JP2001142789 A JP 2001142789A
- Authority
- JP
- Japan
- Prior art keywords
- memory
- bits
- low
- chip kill
- chip
- 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.)
- Withdrawn
Links
Classifications
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/08—Error detection or correction by redundancy in data representation, e.g. by using checking codes
- G06F11/10—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
- G06F11/1008—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
- G06F11/1012—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices using codes or arrangements adapted for a specific type of error
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Quality & Reliability (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Probability & Statistics with Applications (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
- Detection And Correction Of Errors (AREA)
Abstract
(57)【要約】
【課題】非標準のコンホ゜ーネントや追加のメモリテ゛ハ゛イスを必要と
せずに、ローエント゛サーハ゛にチッフ゜キルエラー検出機能を実装するた
めのフ゜ロセス及びメモリ構成を提供する。 【解決手段】一般的には、チッフ゜キル機能に必要なエラー訂正ヒ
゛ットの数は、訂正されるメモリチッフ゜のテ゛ータ幅と使用されるCR
Cアルコ゛リス゛ムに依存する。エラー訂正に必要な数のヒ゛ットがメモリシ
ステムによって提供されない場合は、本発明による別のオフ゜
ションによって、単一のDIMMモシ゛ュールにおける連続するメモリロケ
ーションに対してタ゛フ゛ルワート゛オヘ゜レーションが実行される。メモリモシ゛ュ
ールをタ゛フ゛ルワート゛で読み出すことによって、本質的に、テ゛ー
タ転送毎のECCビットの数が以前の2倍であるシステムが提供
される。一般に、これらのローエント゛システムは、チッフ゜キルオヘ゜レーシ
ョンを行うために必要な数のエラー訂正ヒ゛ットを有していない
ため、このタ゛フ゛ルワート゛技法により、通常は、チッフ゜キルオヘ゜レー
ションを実行することができないローエント゛システムにおいて、チッフ
゜キルオヘ゜レーションを実施することが可能となる。
せずに、ローエント゛サーハ゛にチッフ゜キルエラー検出機能を実装するた
めのフ゜ロセス及びメモリ構成を提供する。 【解決手段】一般的には、チッフ゜キル機能に必要なエラー訂正ヒ
゛ットの数は、訂正されるメモリチッフ゜のテ゛ータ幅と使用されるCR
Cアルコ゛リス゛ムに依存する。エラー訂正に必要な数のヒ゛ットがメモリシ
ステムによって提供されない場合は、本発明による別のオフ゜
ションによって、単一のDIMMモシ゛ュールにおける連続するメモリロケ
ーションに対してタ゛フ゛ルワート゛オヘ゜レーションが実行される。メモリモシ゛ュ
ールをタ゛フ゛ルワート゛で読み出すことによって、本質的に、テ゛ー
タ転送毎のECCビットの数が以前の2倍であるシステムが提供
される。一般に、これらのローエント゛システムは、チッフ゜キルオヘ゜レーシ
ョンを行うために必要な数のエラー訂正ヒ゛ットを有していない
ため、このタ゛フ゛ルワート゛技法により、通常は、チッフ゜キルオヘ゜レー
ションを実行することができないローエント゛システムにおいて、チッフ
゜キルオヘ゜レーションを実施することが可能となる。
Description
【0001】
【発明の属する技術分野】本発明は、コンピュータシス
テムにおいて単一のメモリモジュールでメモリオペレー
ションを実行する方法、および少なくとも1つのメモリ
モジュールを有するメモリ構成に関する。
テムにおいて単一のメモリモジュールでメモリオペレー
ションを実行する方法、および少なくとも1つのメモリ
モジュールを有するメモリ構成に関する。
【0002】
【従来の技術】利用可能なメモリシステムは、時の経過
と共にサイズを拡大し続けており、ハイエンドサーバの
場合、現サーバメモリシステムは、しばしば64Gバイ
トまで(おおよそ1/2兆記憶ビット)またはそれ以上
の範囲にある。顧客は、自身の要求に応じて、ローエン
ドサーバかまたはハイエンドサーバかを購入するよう選
択することができる。現ローエンドサーバシステムは、
一般に、1〜4のデュアルインラインメモリモジュール
(DIMM)を含み、ハイエンドサーバは、一般に、4
以上のDIMMを含む。また、一般にハイエンドサーバ
は、メモリチップ冗長性、ホットスワッピングおよびチ
ップキル(chipkill)エラー訂正を行う能力等の有用性
の高い特徴を有している。
と共にサイズを拡大し続けており、ハイエンドサーバの
場合、現サーバメモリシステムは、しばしば64Gバイ
トまで(おおよそ1/2兆記憶ビット)またはそれ以上
の範囲にある。顧客は、自身の要求に応じて、ローエン
ドサーバかまたはハイエンドサーバかを購入するよう選
択することができる。現ローエンドサーバシステムは、
一般に、1〜4のデュアルインラインメモリモジュール
(DIMM)を含み、ハイエンドサーバは、一般に、4
以上のDIMMを含む。また、一般にハイエンドサーバ
は、メモリチップ冗長性、ホットスワッピングおよびチ
ップキル(chipkill)エラー訂正を行う能力等の有用性
の高い特徴を有している。
【0003】図1Aを参照すると、ローエンドサーバシ
ステム100のメモリシステムの側面図が示されてい
る。メモリシステムは、マザーボード106に取付けら
れたCPUまたはメモリコントローラ102と、2つの
デュアルインラインメモリモジュール108a、108
bと、を有している。示されている2つのメモリモジュ
ール108a、108bは、各々、並列に接続されたN
個のメモリデバイス112を含んでいる。説明のため
に、Nは18に等しいものとする。各メモリモジュール
108a、108b上の18個のメモリデバイス112
a〜112Nは、データバス114によってメモリコン
トローラ102に接続されている。なお、データバス1
14には、基板トレース部116、コネクタ118およ
びモジュールトレース部120が含まれる。
ステム100のメモリシステムの側面図が示されてい
る。メモリシステムは、マザーボード106に取付けら
れたCPUまたはメモリコントローラ102と、2つの
デュアルインラインメモリモジュール108a、108
bと、を有している。示されている2つのメモリモジュ
ール108a、108bは、各々、並列に接続されたN
個のメモリデバイス112を含んでいる。説明のため
に、Nは18に等しいものとする。各メモリモジュール
108a、108b上の18個のメモリデバイス112
a〜112Nは、データバス114によってメモリコン
トローラ102に接続されている。なお、データバス1
14には、基板トレース部116、コネクタ118およ
びモジュールトレース部120が含まれる。
【0004】図1Bは、図1Aに示すローエンドサーバ
のメモリモジュールのメモリ構成のブロック図を示す。
図1Bに示す実施の形態では、データバスは72ビット
幅であり、データ用に64ビット使用され、エラー訂正
用に8ビット使用される。メモリモジュール108a、
108b上の18個のメモリデバイスの各々は、4ビッ
ト幅であり、256Mバイトシステムの場合、18×4
のSDRAMの各々は32Mバイトである。18×4の
メモリデバイスは、各メモリオペレーションに対し、デ
ータバス114上への出力が72ビット幅となるよう
に、並列に接続されている。
のメモリモジュールのメモリ構成のブロック図を示す。
図1Bに示す実施の形態では、データバスは72ビット
幅であり、データ用に64ビット使用され、エラー訂正
用に8ビット使用される。メモリモジュール108a、
108b上の18個のメモリデバイスの各々は、4ビッ
ト幅であり、256Mバイトシステムの場合、18×4
のSDRAMの各々は32Mバイトである。18×4の
メモリデバイスは、各メモリオペレーションに対し、デ
ータバス114上への出力が72ビット幅となるよう
に、並列に接続されている。
【0005】図1Cを参照すると、図1Aに示すローエ
ンドサーバのメモリロケーションに対する読出しまたは
書込み用のクロックパルスが示されている。メモリコン
トローラは、1つのメモリモジュールから1度に1つの
ワードまたはメモリロケーションを読出す。シングルデ
ータレート(SDR)システムであって読出しオペレー
ションの場合、クロックエッジt1において、メモリモ
ジュール108のアドレス000000を有するメモリ
ロケーションが読出される。メモリロケーションの内容
は、72ビット幅である。クロックエッジt2では、い
かなるメモリオペレーションも発生しない。クロックエ
ッジt3では、メモリモジュール108のアドレスロケ
ーション000001を有する第2のメモリロケーショ
ンが読出しされる。
ンドサーバのメモリロケーションに対する読出しまたは
書込み用のクロックパルスが示されている。メモリコン
トローラは、1つのメモリモジュールから1度に1つの
ワードまたはメモリロケーションを読出す。シングルデ
ータレート(SDR)システムであって読出しオペレー
ションの場合、クロックエッジt1において、メモリモ
ジュール108のアドレス000000を有するメモリ
ロケーションが読出される。メモリロケーションの内容
は、72ビット幅である。クロックエッジt2では、い
かなるメモリオペレーションも発生しない。クロックエ
ッジt3では、メモリモジュール108のアドレスロケ
ーション000001を有する第2のメモリロケーショ
ンが読出しされる。
【0006】図2Aは、8個のDIMMモジュールを有
する従来からのハイエンドサーバシステム200用のメ
モリシステムの側面図を示す。図1Aに示すローエンド
サーバ構成と同様に、図2Aに示すメモリシステムは、
マザーボード206に取付けられたCPUまたはメモリ
コントローラ202を有しているが、ハイエンド構成
は、図1Aに示す2個のDIMM108a、108bの
代りに8個のデュアルインラインメモリモジュール20
8a〜208hを有する。メモリコントローラ202
は、基板トレース部216、コネクタ218およびモジ
ュールトレース部220を含むデータバス214によっ
て、8個のメモリモジュール208a〜208hに接続
されている。
する従来からのハイエンドサーバシステム200用のメ
モリシステムの側面図を示す。図1Aに示すローエンド
サーバ構成と同様に、図2Aに示すメモリシステムは、
マザーボード206に取付けられたCPUまたはメモリ
コントローラ202を有しているが、ハイエンド構成
は、図1Aに示す2個のDIMM108a、108bの
代りに8個のデュアルインラインメモリモジュール20
8a〜208hを有する。メモリコントローラ202
は、基板トレース部216、コネクタ218およびモジ
ュールトレース部220を含むデータバス214によっ
て、8個のメモリモジュール208a〜208hに接続
されている。
【0007】図2Bは、図2Aに示すハイエンドサーバ
のメモリ構成のブロック図を示す。図示のハイエンドサ
ーバでは、データバスは、144ビット幅であり、12
8ビットはデータ用に使用され、16ビットはエラー訂
正用に使用される。好ましくは、各メモリモジュール
は、18個のメモリデバイス(N=18)を有し、各メ
モリデバイスは、4ビット幅である。各メモリモジュー
ルに対し、18×4のメモリデバイスが並列に接続され
ている。データは、各メモリオペレーション対して、デ
ータバス114への出力が144ビット幅であるよう
に、2つのメモリモジュールから同時に読出される。
のメモリ構成のブロック図を示す。図示のハイエンドサ
ーバでは、データバスは、144ビット幅であり、12
8ビットはデータ用に使用され、16ビットはエラー訂
正用に使用される。好ましくは、各メモリモジュール
は、18個のメモリデバイス(N=18)を有し、各メ
モリデバイスは、4ビット幅である。各メモリモジュー
ルに対し、18×4のメモリデバイスが並列に接続され
ている。データは、各メモリオペレーション対して、デ
ータバス114への出力が144ビット幅であるよう
に、2つのメモリモジュールから同時に読出される。
【0008】図2Cには、図2Aに示すハイエンドサー
バのメモリロケーションに対する読出しまたは書込み用
のクロックパルスが示されている。メモリコントローラ
は、1つのメモリモジュールから1度に1つのワードま
たはメモリロケーションを読出す。ダブルデータレート
(DDR)システムであってメモリ読出しオペレーショ
ンの場合、クロックエッジt1において、メモリモジュ
ール208aのアドレス000000を有するメモリロ
ケーションと、メモリモジュール208eのアドレス0
00000を有するメモリロケーションの両方が、同時
に読出される。クロックエッジt2では、メモリモジュ
ール208aのアドレスロケーション000001を有
する第2のメモリロケーションと、メモリモジュール2
08eのアドレス000001を有する第2のメモリロ
ケーションの両方が、共に同時に読出される。
バのメモリロケーションに対する読出しまたは書込み用
のクロックパルスが示されている。メモリコントローラ
は、1つのメモリモジュールから1度に1つのワードま
たはメモリロケーションを読出す。ダブルデータレート
(DDR)システムであってメモリ読出しオペレーショ
ンの場合、クロックエッジt1において、メモリモジュ
ール208aのアドレス000000を有するメモリロ
ケーションと、メモリモジュール208eのアドレス0
00000を有するメモリロケーションの両方が、同時
に読出される。クロックエッジt2では、メモリモジュ
ール208aのアドレスロケーション000001を有
する第2のメモリロケーションと、メモリモジュール2
08eのアドレス000001を有する第2のメモリロ
ケーションの両方が、共に同時に読出される。
【0009】メモリサイズが増大する最近の傾向は、継
続していく可能性が高い。マイクロプロセッサメーカ
は、より高速のCPUを提供し続けている。CPU速度
が増大するに従い、CPUバスおよびサポートしている
I/Oシステムの速度が増大し、CPU毎により多くの
ユーザをサポートすることができるため、対応してCP
U毎のサーバメモリサイズが増大する。メモリシステム
のサイズが増大すると、メモリビット障害、従って、メ
モリシステム障害の可能性が増大する。顧客は、ローエ
ンドシステムに対してであっても、これら増大するメモ
リ障害を処理するために改良されたエラー訂正機能を必
要としている。
続していく可能性が高い。マイクロプロセッサメーカ
は、より高速のCPUを提供し続けている。CPU速度
が増大するに従い、CPUバスおよびサポートしている
I/Oシステムの速度が増大し、CPU毎により多くの
ユーザをサポートすることができるため、対応してCP
U毎のサーバメモリサイズが増大する。メモリシステム
のサイズが増大すると、メモリビット障害、従って、メ
モリシステム障害の可能性が増大する。顧客は、ローエ
ンドシステムに対してであっても、これら増大するメモ
リ障害を処理するために改良されたエラー訂正機能を必
要としている。
【0010】従来、ローエンドサーバでサポートされて
いなかったエラー訂正機能の1つは、業界においてチッ
プキル(chipkill)として知られているものである。従
来、チップキルという用語は、メモリ内の複数のビット
エラーを訂正する機能を言い、複数のビットエラーは、
メモリデバイスの幅である。例えば、4ビット幅の32
MビットSDRAMに対し、チップキル機能をサポート
するシステムは、メモリデバイスにおける4ビット幅エ
ラーを訂正することができる。このため、チップキルを
サポートするシステムにおいて×4構成で編成されたS
DRAMチップ全体の障害によって、システムに障害が
発生することはない。
いなかったエラー訂正機能の1つは、業界においてチッ
プキル(chipkill)として知られているものである。従
来、チップキルという用語は、メモリ内の複数のビット
エラーを訂正する機能を言い、複数のビットエラーは、
メモリデバイスの幅である。例えば、4ビット幅の32
MビットSDRAMに対し、チップキル機能をサポート
するシステムは、メモリデバイスにおける4ビット幅エ
ラーを訂正することができる。このため、チップキルを
サポートするシステムにおいて×4構成で編成されたS
DRAMチップ全体の障害によって、システムに障害が
発生することはない。
【0011】チップキルは、例えば、2つのDIMMを
結合して、128データビットと16ECCビット(E
CCは、エラー訂正コード、すなわち、エラーチェック
および訂正コードを表す)とを含む144ビットバスに
することにより、ハイエンドチップセットに提供され
る。一般に、訂正することができるビットの数は、シス
テムがサポートするECCビットの数によって決まる。
ECCすなわちエラー訂正コードとは、一般にCRC
(巡回冗長検査)アルゴリズムに基づく、通常使用され
るエラー検出および訂正プロセスのことを言う。CRC
アルゴリズムは、データを受取った時にCRCチェッカ
によって完全なデータシーケンス(データフィールドの
終端部に付加されたCRCビットを含む)が読出される
ように作用する。完全なデータシーケンスは、CRC多
項式によってきっかりと割切れなければならない。完全
なデータシーケンスがCRC多項式によって割切れない
場合、エラーが発生したと考えられる。
結合して、128データビットと16ECCビット(E
CCは、エラー訂正コード、すなわち、エラーチェック
および訂正コードを表す)とを含む144ビットバスに
することにより、ハイエンドチップセットに提供され
る。一般に、訂正することができるビットの数は、シス
テムがサポートするECCビットの数によって決まる。
ECCすなわちエラー訂正コードとは、一般にCRC
(巡回冗長検査)アルゴリズムに基づく、通常使用され
るエラー検出および訂正プロセスのことを言う。CRC
アルゴリズムは、データを受取った時にCRCチェッカ
によって完全なデータシーケンス(データフィールドの
終端部に付加されたCRCビットを含む)が読出される
ように作用する。完全なデータシーケンスは、CRC多
項式によってきっかりと割切れなければならない。完全
なデータシーケンスがCRC多項式によって割切れない
場合、エラーが発生したと考えられる。
【0012】一般に、ECCプロセスに基づくチップキ
ル機能をサポートするためには、追加のエラー訂正ビッ
トが必要である。訂正されるビットの数は、システムが
サポートするECCビットの数によって決まる。例え
ば、一般に、4ビット幅のメモリ編成に対して訂正する
ために使用されるCRCアルゴリズムには、図1Aに示
すローエンドサーバによって提供される8エラー訂正ビ
ットより多くのビットが必要である。従って、×4編成
に対してチップキル機能を実行するために、ローエンド
サーバには、要求されたCRCアルゴリズムを実行する
ために必要な追加のECCビットを提供する追加のメモ
リモジュールまたはデバイス(または装置)が必要であ
る。しかしながら、4ビット幅メモリ編成の訂正のため
に一般に使用されるCRCアルゴリズムでは、図2Aに
示すハイエンドサーバがサポートする16エラー訂正ビ
ットより多くのビットは必要ではないので、ハイエンド
サーバはチップキル機能をサポートすることができる。
ル機能をサポートするためには、追加のエラー訂正ビッ
トが必要である。訂正されるビットの数は、システムが
サポートするECCビットの数によって決まる。例え
ば、一般に、4ビット幅のメモリ編成に対して訂正する
ために使用されるCRCアルゴリズムには、図1Aに示
すローエンドサーバによって提供される8エラー訂正ビ
ットより多くのビットが必要である。従って、×4編成
に対してチップキル機能を実行するために、ローエンド
サーバには、要求されたCRCアルゴリズムを実行する
ために必要な追加のECCビットを提供する追加のメモ
リモジュールまたはデバイス(または装置)が必要であ
る。しかしながら、4ビット幅メモリ編成の訂正のため
に一般に使用されるCRCアルゴリズムでは、図2Aに
示すハイエンドサーバがサポートする16エラー訂正ビ
ットより多くのビットは必要ではないので、ハイエンド
サーバはチップキル機能をサポートすることができる。
【0013】
【発明が解決しようとする課題】チップキルによるエラ
ー訂正機能を機能を付加することを望むローエンドサー
バシステムに使用可能な代替的な実現例は、現在、IB
M社によって市販されているような、専用ロジックを提
供するカスタムASICを使用することである。カスタ
ムASICは、専用コントローラと、72ビットより大
きい、すなわち80ビットのメモリを使用して16EC
Cビットを提供し、高速SDRAMを使用する。通常必
要なECCメモリの数の2倍であるのは、ECCメモリ
に対して追加のメモリが必要とされるからである。これ
によって最大メモリサイズが制限される。カスタムAS
ICがチップキル機能を提供するが、それは比較的高価
であり、使用可能であれば標準のコンポーネントを使用
することが好ましい。更に、現在入手可能なASIC
は、使用可能なメモリサイズが制限されており、次世代
のバスシステムに必要な133MHz速度で動作しない
可能性がある。
ー訂正機能を機能を付加することを望むローエンドサー
バシステムに使用可能な代替的な実現例は、現在、IB
M社によって市販されているような、専用ロジックを提
供するカスタムASICを使用することである。カスタ
ムASICは、専用コントローラと、72ビットより大
きい、すなわち80ビットのメモリを使用して16EC
Cビットを提供し、高速SDRAMを使用する。通常必
要なECCメモリの数の2倍であるのは、ECCメモリ
に対して追加のメモリが必要とされるからである。これ
によって最大メモリサイズが制限される。カスタムAS
ICがチップキル機能を提供するが、それは比較的高価
であり、使用可能であれば標準のコンポーネントを使用
することが好ましい。更に、現在入手可能なASIC
は、使用可能なメモリサイズが制限されており、次世代
のバスシステムに必要な133MHz速度で動作しない
可能性がある。
【0014】要求されるCRCアルゴリズムを実行する
ために必要な追加のECCビットを提供するために、コ
ストのかかるカスタムASICチップあるいは追加のメ
モリモジュールまたは装置を必要としない、ローエンド
サーバシステムにおけるチップキルによるエラー検出
(以下、チップキルエラー検出)を提供するメモリシス
テム構成およびプロセスが必要とされている。
ために必要な追加のECCビットを提供するために、コ
ストのかかるカスタムASICチップあるいは追加のメ
モリモジュールまたは装置を必要としない、ローエンド
サーバシステムにおけるチップキルによるエラー検出
(以下、チップキルエラー検出)を提供するメモリシス
テム構成およびプロセスが必要とされている。
【0015】
【課題を解決するための手段】本発明は、非標準コンポ
ーネントまたは追加のメモリデバイスを必要とすること
なく、ローエンドサーバにおいてチップキルエラー検出
を提供するプロセスおよびメモリ構成を提供する。一般
に、半導体メモリデバイスに対し、エラー検出および訂
正は、ECCエラー訂正を用いて実行される。ECC訂
正を実行するためには、指定されたメモリデバイスにお
いて予め決められた数のビットが、エラー訂正のために
使用可能でなければならない。一般に、チップキル機能
に必要なエラー訂正ビットの数は、訂正されるメモリチ
ップの幅と使用されるCRCアルゴリズムに依存する。
必要とされる数のエラー訂正ビットが、メモリシステム
によって提供されない場合は、本発明による別のオプシ
ョンは、1つのDIMMモジュールにおける連続したメ
モリロケーションに対しダブルワードオペレーションを
実行することである。ダブルワード(または、2ワー
ド:doubleword)でメモリモジュールを読出すことによ
り、基本的に、データ転送毎の使用可能なECCビット
の数が以前の2倍であるシステムが提供される。一般
に、これらローエンドシステムがチップキルオペレーシ
ョンを行うために必要な数のエラー訂正ビットを有して
いないため、このダブルワード技術により、通常チップ
キルオペレーションを実行することができないローエン
ドシステムにおいて、チップキルをサポートすることが
可能となる。
ーネントまたは追加のメモリデバイスを必要とすること
なく、ローエンドサーバにおいてチップキルエラー検出
を提供するプロセスおよびメモリ構成を提供する。一般
に、半導体メモリデバイスに対し、エラー検出および訂
正は、ECCエラー訂正を用いて実行される。ECC訂
正を実行するためには、指定されたメモリデバイスにお
いて予め決められた数のビットが、エラー訂正のために
使用可能でなければならない。一般に、チップキル機能
に必要なエラー訂正ビットの数は、訂正されるメモリチ
ップの幅と使用されるCRCアルゴリズムに依存する。
必要とされる数のエラー訂正ビットが、メモリシステム
によって提供されない場合は、本発明による別のオプシ
ョンは、1つのDIMMモジュールにおける連続したメ
モリロケーションに対しダブルワードオペレーションを
実行することである。ダブルワード(または、2ワー
ド:doubleword)でメモリモジュールを読出すことによ
り、基本的に、データ転送毎の使用可能なECCビット
の数が以前の2倍であるシステムが提供される。一般
に、これらローエンドシステムがチップキルオペレーシ
ョンを行うために必要な数のエラー訂正ビットを有して
いないため、このダブルワード技術により、通常チップ
キルオペレーションを実行することができないローエン
ドシステムにおいて、チップキルをサポートすることが
可能となる。
【0016】上述したメモリ構成と組合わせてダブルワ
ード読出しおよび/または書込みを使用することによ
り、システム性能への影響を最小限にし、かつ、コスト
の影響を受けやすいローエンドサーバまたはワークステ
ーションのアプリケーションに対しシステムコストを増
大させることなく、チップキルオペレーションを実行す
ることができる。本発明による実施例では、今日市販さ
れているカスタムASICのように、カスタムメモリモ
ジュールが必要とせず、かつ、所定のメモリモジュール
サイズが制限されることもない。
ード読出しおよび/または書込みを使用することによ
り、システム性能への影響を最小限にし、かつ、コスト
の影響を受けやすいローエンドサーバまたはワークステ
ーションのアプリケーションに対しシステムコストを増
大させることなく、チップキルオペレーションを実行す
ることができる。本発明による実施例では、今日市販さ
れているカスタムASICのように、カスタムメモリモ
ジュールが必要とせず、かつ、所定のメモリモジュール
サイズが制限されることもない。
【0017】サーバアプリケーションに対し、ダブルワ
ードを実施する場合、他の場合では無駄にされるDDR
の余分の帯域幅を使用して、チップキルオペレーション
のためのオーバヘッドを「隠す」。ローエンドサーバア
プリケーションで使用される場合、ダブルワード(16
バイト(または16B)のデータ、2バイト(または2
B)のECC)読出しの性能ペナルティは、システムバ
ス帯域幅の2倍であるメモリシステムの帯域幅によって
最小化される。PCまたはワークステーションでは、こ
の帯域幅は、メモリに対する非キャッシュ・コヒーレン
トAGPアクセス(non-cache coherent AGP access)
に対して使用されるが、これは、サーバでは適用できな
い。従って、バイト書込みオペレーションで使用される
R−M−Wに対するオーバヘッドが隠され、他の場合で
は無駄にされるであろう帯域幅が使用される。さらに、
本発明は、追加の部品またはカスタム部品を必要とする
ことなく、メモリコントローラを小変更したPCチップ
セットを用いて、サーバシステムで提供されるのと同じ
チップキル機能を提供することができる。
ードを実施する場合、他の場合では無駄にされるDDR
の余分の帯域幅を使用して、チップキルオペレーション
のためのオーバヘッドを「隠す」。ローエンドサーバア
プリケーションで使用される場合、ダブルワード(16
バイト(または16B)のデータ、2バイト(または2
B)のECC)読出しの性能ペナルティは、システムバ
ス帯域幅の2倍であるメモリシステムの帯域幅によって
最小化される。PCまたはワークステーションでは、こ
の帯域幅は、メモリに対する非キャッシュ・コヒーレン
トAGPアクセス(non-cache coherent AGP access)
に対して使用されるが、これは、サーバでは適用できな
い。従って、バイト書込みオペレーションで使用される
R−M−Wに対するオーバヘッドが隠され、他の場合で
は無駄にされるであろう帯域幅が使用される。さらに、
本発明は、追加の部品またはカスタム部品を必要とする
ことなく、メモリコントローラを小変更したPCチップ
セットを用いて、サーバシステムで提供されるのと同じ
チップキル機能を提供することができる。
【0018】ダブルワード読出しを実施するか否かを決
定する際、システムを実現するシステムユーザは、ま
ず、チップキルが所望とされている機能であるか否かを
決定しなければならない。チップキル機能が望まれてい
る場合、対象とするチップのメモリ幅をサポートするの
に必要なエラー訂正ビットの数が、単一のメモリアドレ
スにおけるエラー訂正ビットによりすでに提供されてい
るか否かを決定しなければならない。必要とされるエラ
ービットの数がすでに提供されている場合、ダブルワー
ドオペレーションは必要ではない。提供されていない場
合、単一のメモリモジュールにおけるメモリロケーショ
ンに対し、ダブルワードで読出しまたは書込みを行うこ
とができる。ダブルワードでメモリモジュールを読出す
ことにより、基本的に、データ転送毎のECCの数が以
前の2倍であるシステムが提供される。この増加した数
のエラー訂正ビットは、対象とする(または、目的とす
る)チップ幅に対してチップキルオペレーションを実行
するのに十分なものである。
定する際、システムを実現するシステムユーザは、ま
ず、チップキルが所望とされている機能であるか否かを
決定しなければならない。チップキル機能が望まれてい
る場合、対象とするチップのメモリ幅をサポートするの
に必要なエラー訂正ビットの数が、単一のメモリアドレ
スにおけるエラー訂正ビットによりすでに提供されてい
るか否かを決定しなければならない。必要とされるエラ
ービットの数がすでに提供されている場合、ダブルワー
ドオペレーションは必要ではない。提供されていない場
合、単一のメモリモジュールにおけるメモリロケーショ
ンに対し、ダブルワードで読出しまたは書込みを行うこ
とができる。ダブルワードでメモリモジュールを読出す
ことにより、基本的に、データ転送毎のECCの数が以
前の2倍であるシステムが提供される。この増加した数
のエラー訂正ビットは、対象とする(または、目的とす
る)チップ幅に対してチップキルオペレーションを実行
するのに十分なものである。
【0019】本発明の特徴および利点については、明細
書の他の部分および添付図面を参照することにより更に
理解されよう。
書の他の部分および添付図面を参照することにより更に
理解されよう。
【0020】
【発明の実施の形態】本発明は、メモリコントローラと
少なくとも1つのメモリモジュールとを備えるメモリ構
成に対しチップキル機能を提供するための方法を提供す
る。メモリモジュールは、好ましくは、目的とする幅を
有する複数のメモリデバイスを含む。本発明によると、
適切な(または、十分な)数のエラー訂正ビットを提供
してチップキル機能を提供するために、メモリコントロ
ーラによりダブルワードメモリオペレーションが起動さ
れる。
少なくとも1つのメモリモジュールとを備えるメモリ構
成に対しチップキル機能を提供するための方法を提供す
る。メモリモジュールは、好ましくは、目的とする幅を
有する複数のメモリデバイスを含む。本発明によると、
適切な(または、十分な)数のエラー訂正ビットを提供
してチップキル機能を提供するために、メモリコントロ
ーラによりダブルワードメモリオペレーションが起動さ
れる。
【0021】図3Aを参照すると、2つのメモリモジュ
ールを含むローエンドサーバシステム300用のメモリ
システムの側面図が示されている。メモリシステムは、
マザーボード306に取付けられたCPUまたはメモリ
コントローラ302と、2つのデュアルインラインメモ
リモジュール308a、308bとを有している。2つ
のメモリモジュール308a、308bは各々、好まし
くは並列に接続されたN個のメモリデバイス312を含
んでいる。ここでは、説明のために、Nは18に等しい
ものとする。メモリモジュール308a、308b上の
18個のメモリデバイス312a〜312Nは、データ
バス314によってメモリコントローラ302に接続さ
れている。データバス314には、基板トレース部31
6と、コネクタ318と、モジュールトレース部320
が含まれる。
ールを含むローエンドサーバシステム300用のメモリ
システムの側面図が示されている。メモリシステムは、
マザーボード306に取付けられたCPUまたはメモリ
コントローラ302と、2つのデュアルインラインメモ
リモジュール308a、308bとを有している。2つ
のメモリモジュール308a、308bは各々、好まし
くは並列に接続されたN個のメモリデバイス312を含
んでいる。ここでは、説明のために、Nは18に等しい
ものとする。メモリモジュール308a、308b上の
18個のメモリデバイス312a〜312Nは、データ
バス314によってメモリコントローラ302に接続さ
れている。データバス314には、基板トレース部31
6と、コネクタ318と、モジュールトレース部320
が含まれる。
【0022】図3Bは、図3Aに示すローエンドサーバ
のメモリモジュールのメモリ構成のブロック図を示す。
図3Bに示す実施形態では、各DIMMモジュールは7
2ビット幅であるが、ダブルワードオペレーションによ
り、データバスは144ビット幅の有効幅を有するよう
になる。ここで、128ビットはデータに使用され、1
6ビットはエラー訂正に使用される。メモリモジュール
308a、308b上の18個のメモリデバイスの各々
は4ビット幅であり、256Mビットシステムの場合、
18×4のSDRAMの各々は32Mバイトである。
のメモリモジュールのメモリ構成のブロック図を示す。
図3Bに示す実施形態では、各DIMMモジュールは7
2ビット幅であるが、ダブルワードオペレーションによ
り、データバスは144ビット幅の有効幅を有するよう
になる。ここで、128ビットはデータに使用され、1
6ビットはエラー訂正に使用される。メモリモジュール
308a、308b上の18個のメモリデバイスの各々
は4ビット幅であり、256Mビットシステムの場合、
18×4のSDRAMの各々は32Mバイトである。
【0023】図3Cに、図3Aに示すローエンドサーバ
のメモリロケーションに対する読出しまたは書込み用の
クロックパルスを示す。メモリコントローラ302は、
単一のメモリモジュールからダブルワードを同時に読出
す。ダブルデータレート(DDR)システムであって、
読出しオペレーションの場合、クロックエッジt1にお
いて、メモリモジュール308のアドレス000000
を有するメモリロケーションが読出される。メモリアド
レス000000の内容は72ビット幅である。本発明
はダブルワードで動作するため、次に、クロックエッジ
t2において、同じメモリモジュール308aにおける
アドレスロケーション000001を有する第2のメモ
リロケーションの内容が読出される。また、メモリロケ
ーション000001の内容も72ビット幅である。従
って、クロックエッジt2において、データバスから
(メモリロケーション000000からの72ビットと
メモリロケーション000001からの72ビットの)
合計144ビットが読出される。
のメモリロケーションに対する読出しまたは書込み用の
クロックパルスを示す。メモリコントローラ302は、
単一のメモリモジュールからダブルワードを同時に読出
す。ダブルデータレート(DDR)システムであって、
読出しオペレーションの場合、クロックエッジt1にお
いて、メモリモジュール308のアドレス000000
を有するメモリロケーションが読出される。メモリアド
レス000000の内容は72ビット幅である。本発明
はダブルワードで動作するため、次に、クロックエッジ
t2において、同じメモリモジュール308aにおける
アドレスロケーション000001を有する第2のメモ
リロケーションの内容が読出される。また、メモリロケ
ーション000001の内容も72ビット幅である。従
って、クロックエッジt2において、データバスから
(メモリロケーション000000からの72ビットと
メモリロケーション000001からの72ビットの)
合計144ビットが読出される。
【0024】上述したメモリ構成と組合せてダブルワー
ド読出しおよび/または書込みを用いることにより、シ
ステム性能への影響を最小限にし、かつコストの影響を
受けやすいローエンドサーバまたはワークステーション
への適用に対しシステムコストを増大させることなく、
チップキルオペレーションを実行することができる。本
発明の実施例では、今日市販されているカスタムASI
Cのように、カスタムメモリモジュールが必要ではな
く、かつ、所定のメモリモジュールサイズも制限されな
い。
ド読出しおよび/または書込みを用いることにより、シ
ステム性能への影響を最小限にし、かつコストの影響を
受けやすいローエンドサーバまたはワークステーション
への適用に対しシステムコストを増大させることなく、
チップキルオペレーションを実行することができる。本
発明の実施例では、今日市販されているカスタムASI
Cのように、カスタムメモリモジュールが必要ではな
く、かつ、所定のメモリモジュールサイズも制限されな
い。
【0025】サーバアプリケーションの場合、ダブルワ
ードアクセスを実施すると、ダブルワードを適用しない
場合には無駄にされることになるDDRの余分の帯域幅
が使用され、チップキルオペレーションに対するオーバ
ヘッドが「隠される」。ローエンドサーバアプリケーシ
ョンで使用される場合、ダブルワード(16バイト(ま
たは16B)のデータ、2バイト(または2B)のEC
C)の読出しによる性能ペナルティは、システムバス帯
域幅の2倍であるメモリシステムの帯域幅によって最小
化される。PCまたはワークステーションでは、この帯
域幅は、サーバでは適用できない、メモリに対する非キ
ャッシュ・コヒーレントAGPアクセスに対して使用さ
れる。従って、バイト書込みオペレーションで使用され
るR−M−Wに対するオーバヘッドが隠され、他の場合
には無駄にされることになるであろう帯域幅が使用され
る。さらに、本発明は、追加の部品またはカスタム部品
を必要とすることなく、メモリコントローラに小変更を
施したPCチップセットを用いて、サーバシステムにお
いて提供されるものと同じチップキル機能を提供するこ
とができる。
ードアクセスを実施すると、ダブルワードを適用しない
場合には無駄にされることになるDDRの余分の帯域幅
が使用され、チップキルオペレーションに対するオーバ
ヘッドが「隠される」。ローエンドサーバアプリケーシ
ョンで使用される場合、ダブルワード(16バイト(ま
たは16B)のデータ、2バイト(または2B)のEC
C)の読出しによる性能ペナルティは、システムバス帯
域幅の2倍であるメモリシステムの帯域幅によって最小
化される。PCまたはワークステーションでは、この帯
域幅は、サーバでは適用できない、メモリに対する非キ
ャッシュ・コヒーレントAGPアクセスに対して使用さ
れる。従って、バイト書込みオペレーションで使用され
るR−M−Wに対するオーバヘッドが隠され、他の場合
には無駄にされることになるであろう帯域幅が使用され
る。さらに、本発明は、追加の部品またはカスタム部品
を必要とすることなく、メモリコントローラに小変更を
施したPCチップセットを用いて、サーバシステムにお
いて提供されるものと同じチップキル機能を提供するこ
とができる。
【0026】提供されるチップキルの全機能は、性能ま
たはコストの不利益を受けないハイエンドシステムのも
のに類似している。しかしながら、ダブルワードの実施
は、性能およびシステムコストに関してシステムに対し
て実質的に透過的(トランスペアレント)であるが、そ
の実施により、シングル(単一)ワードオペレーション
が発生する場合と比較すると、システムの出力が変更さ
れる場合がある。例えば、DIMMコネクタデータピン
障害の場合、本発明を実施すると、ダブルリード(読出
し)オペレーションによりダブルビットエラーが生じう
る。しかし、これは、CRCエラー訂正法によって訂正
することができる。
たはコストの不利益を受けないハイエンドシステムのも
のに類似している。しかしながら、ダブルワードの実施
は、性能およびシステムコストに関してシステムに対し
て実質的に透過的(トランスペアレント)であるが、そ
の実施により、シングル(単一)ワードオペレーション
が発生する場合と比較すると、システムの出力が変更さ
れる場合がある。例えば、DIMMコネクタデータピン
障害の場合、本発明を実施すると、ダブルリード(読出
し)オペレーションによりダブルビットエラーが生じう
る。しかし、これは、CRCエラー訂正法によって訂正
することができる。
【0027】DIMMモジュールの置換に関しては、一
般に、ローエンドシステムの場合、ホットスペアモジュ
ールおよび基本的なエラー訂正技術を実装することは現
実的でなく、障害の発生したDIMMを置き換えるため
のサービスダウンタイム期間まで、あるいは、ホットス
ペアを提供することができるようになるまで、障害に対
する基本的な耐性に頼ることになる。使用されるCRC
多項式およびSDRAM編成にもよるが、メモリ内の障
害を訂正しその後ホットスペアで再構築することができ
るか、または、単純に訂正した後、次の1年のサーバダ
ウンタイム期間でDIMMを置換することができる。
「再構築」を処理する複雑さが最小化されている場合、
3〜4のDIMMのPCサーバシステムの場合、ホット
スペア用に1つのDIMMを使用することができる。
般に、ローエンドシステムの場合、ホットスペアモジュ
ールおよび基本的なエラー訂正技術を実装することは現
実的でなく、障害の発生したDIMMを置き換えるため
のサービスダウンタイム期間まで、あるいは、ホットス
ペアを提供することができるようになるまで、障害に対
する基本的な耐性に頼ることになる。使用されるCRC
多項式およびSDRAM編成にもよるが、メモリ内の障
害を訂正しその後ホットスペアで再構築することができ
るか、または、単純に訂正した後、次の1年のサーバダ
ウンタイム期間でDIMMを置換することができる。
「再構築」を処理する複雑さが最小化されている場合、
3〜4のDIMMのPCサーバシステムの場合、ホット
スペア用に1つのDIMMを使用することができる。
【0028】図4Aに、ローエンドサーバにおいてチッ
プキルを実施するか否かを決定するステップのフローチ
ャート400を示す。ダブルワード読出しを実施するか
否かを決定する際に、まず、システムを実施する者によ
り、チップキルが所望の機能であるか否かが判断されな
ければならない(ステップ404)。チップキル機能が
所望されていない場合は(ステップ406)、従来技術
によるシステムで使用されるシングルワードオペレーシ
ョンを行うことができる(ステップ408)。
プキルを実施するか否かを決定するステップのフローチ
ャート400を示す。ダブルワード読出しを実施するか
否かを決定する際に、まず、システムを実施する者によ
り、チップキルが所望の機能であるか否かが判断されな
ければならない(ステップ404)。チップキル機能が
所望されていない場合は(ステップ406)、従来技術
によるシステムで使用されるシングルワードオペレーシ
ョンを行うことができる(ステップ408)。
【0029】チップキル機能が所望されている場合は
(ステップ410)、メモリモジュールの単一のメモリ
ロケーションによって提供されるエラー訂正ビットの数
が、メモリデバイスの所望の(データまたはバスの)幅
についてチップキルをサポートするために十分であるか
否かが判断される(ステップ414)。チップキルを実
行するための種々のアルゴリズムが周知であり、選択さ
れる特定のアルゴリズムにより、要求されるエラー訂正
ビットの数が決定される。要求されるエラー訂正ビット
の数がすでに提供されている場合(ステップ416)、
シングルワードオペレーションがチップキル機能をサポ
ートするため、ダブルワードオペレーションを行う必要
はない。また、倍の数のビットが十分な数のエラー訂正
ビットを提供するか否かの判断を行うことができる(ス
テップ420)。十分な数を提供しない場合は(ステッ
プ422)、本発明のダブルワードアクセスを実施して
チップキルを行うことはできない(ステップ424)。
十分な数を提供する場合は、単一のメモリモジュールに
おけるメモリロケーションに対してダブルワードで読出
したり書込むことができる(ステップ428)。メモリ
モジュールをダブルワードで読出すことにより、基本的
に、データ転送毎のECCの数が以前の倍であるシステ
ムが提供される。
(ステップ410)、メモリモジュールの単一のメモリ
ロケーションによって提供されるエラー訂正ビットの数
が、メモリデバイスの所望の(データまたはバスの)幅
についてチップキルをサポートするために十分であるか
否かが判断される(ステップ414)。チップキルを実
行するための種々のアルゴリズムが周知であり、選択さ
れる特定のアルゴリズムにより、要求されるエラー訂正
ビットの数が決定される。要求されるエラー訂正ビット
の数がすでに提供されている場合(ステップ416)、
シングルワードオペレーションがチップキル機能をサポ
ートするため、ダブルワードオペレーションを行う必要
はない。また、倍の数のビットが十分な数のエラー訂正
ビットを提供するか否かの判断を行うことができる(ス
テップ420)。十分な数を提供しない場合は(ステッ
プ422)、本発明のダブルワードアクセスを実施して
チップキルを行うことはできない(ステップ424)。
十分な数を提供する場合は、単一のメモリモジュールに
おけるメモリロケーションに対してダブルワードで読出
したり書込むことができる(ステップ428)。メモリ
モジュールをダブルワードで読出すことにより、基本的
に、データ転送毎のECCの数が以前の倍であるシステ
ムが提供される。
【0030】また、図4Aにおいて説明した方法は、メ
モリコントローラが、シングルワードメモリオペレーシ
ョンを実施するか、ダブルワードメモリオペレーション
を実施するか否かを決定するために使用することができ
る。好ましい実施形態では、メモリコントローラが、シ
ステム初期化中に、シングルワードオペレーションが実
施されるか、ダブルワードオペレーションが実施される
か否かを決定する。1実施形態では、いずれが実施され
るかは、スイッチインジケータに基づいて選択される。
この場合、スイッチインジケータは、シングルワード構
成においてチップキルアルゴリズムを実行するのに十分
なビットが存在するか否かを示す。代替的には、メモリ
コントローラが、スイッチインジケータに従って、シン
グルワードメモリオペレーションとダブルワードメモリ
オペレーションとを自動的に切替えることができる。
モリコントローラが、シングルワードメモリオペレーシ
ョンを実施するか、ダブルワードメモリオペレーション
を実施するか否かを決定するために使用することができ
る。好ましい実施形態では、メモリコントローラが、シ
ステム初期化中に、シングルワードオペレーションが実
施されるか、ダブルワードオペレーションが実施される
か否かを決定する。1実施形態では、いずれが実施され
るかは、スイッチインジケータに基づいて選択される。
この場合、スイッチインジケータは、シングルワード構
成においてチップキルアルゴリズムを実行するのに十分
なビットが存在するか否かを示す。代替的には、メモリ
コントローラが、スイッチインジケータに従って、シン
グルワードメモリオペレーションとダブルワードメモリ
オペレーションとを自動的に切替えることができる。
【0031】図4Bは、シングルワードメモリオペレー
ションを利用する場合にチップキルをサポートしないロ
ーエンドサーバに、チップキルを実施するためのステッ
プのフローチャートを示す。まず、ダブルワードメモリ
オペレーションの実施が所望されているか否かが決定さ
れる(ステップ450)。好ましくは、このステップ
は、図4Aに示す方法のステップ404〜426を使用
してシステム初期化の前に実行される。次に、ダブルワ
ードメモリオペレーションの実施が所望されている場合
は、ダブルワードメモリオペレーションが実行される
(ステップ452)。要求されたデータを収集するため
にダブルワードメモリオペレーションが実行された後、
チップキルアルゴリズムが実行される(ステップ45
4)。
ションを利用する場合にチップキルをサポートしないロ
ーエンドサーバに、チップキルを実施するためのステッ
プのフローチャートを示す。まず、ダブルワードメモリ
オペレーションの実施が所望されているか否かが決定さ
れる(ステップ450)。好ましくは、このステップ
は、図4Aに示す方法のステップ404〜426を使用
してシステム初期化の前に実行される。次に、ダブルワ
ードメモリオペレーションの実施が所望されている場合
は、ダブルワードメモリオペレーションが実行される
(ステップ452)。要求されたデータを収集するため
にダブルワードメモリオペレーションが実行された後、
チップキルアルゴリズムが実行される(ステップ45
4)。
【0032】上記説明は、例示的なものであって、限定
することを意図したものではない。例えば、本明細書で
説明したのと同じ原理を、144ビットバス(128ビ
ットがデータ、16ビットがECC)を有するミッドレ
ンジのシステムに適用することができる。この場合、こ
のシステムは、上述した実施例と異なり、32ECCビ
ットおよび128バイトのキャッシュラインを備える2
88ビットシステムを必要とする。ダブルワードは、2
56ビットのデータと32ビットのECCであり、バー
スト長は8である。ここで、1999年10月28日に出願され
た、発明者がMichael B.RaynhamとJames G. Mathiosで
ある「Self-Healing Memory System forHigh Availabil
ity Srver」と題された出願(HP整理番号第10991629
号)と、1999年10月28日に出願された、発明者がMichae
l B.RaynhamとHans Wiggersである「Radial Arm Memory
Bus for a High Availability Computer System」と題
された出願(HP整理番号第10991678号)とは、本同時
係属出願に関連する主題を含んでおり、これらに開示さ
れた内容は参照により本明細書に組み込まれている。本
発明は、これらに開示された構成またはプロセスと組み
合わせて使用することもできる。従って、本発明の範囲
は、上記説明に関して決定されるべきではなく、特許請
求の範囲及び、それに記載された発明の均等物の全範囲
に関して決定されるべきである。
することを意図したものではない。例えば、本明細書で
説明したのと同じ原理を、144ビットバス(128ビ
ットがデータ、16ビットがECC)を有するミッドレ
ンジのシステムに適用することができる。この場合、こ
のシステムは、上述した実施例と異なり、32ECCビ
ットおよび128バイトのキャッシュラインを備える2
88ビットシステムを必要とする。ダブルワードは、2
56ビットのデータと32ビットのECCであり、バー
スト長は8である。ここで、1999年10月28日に出願され
た、発明者がMichael B.RaynhamとJames G. Mathiosで
ある「Self-Healing Memory System forHigh Availabil
ity Srver」と題された出願(HP整理番号第10991629
号)と、1999年10月28日に出願された、発明者がMichae
l B.RaynhamとHans Wiggersである「Radial Arm Memory
Bus for a High Availability Computer System」と題
された出願(HP整理番号第10991678号)とは、本同時
係属出願に関連する主題を含んでおり、これらに開示さ
れた内容は参照により本明細書に組み込まれている。本
発明は、これらに開示された構成またはプロセスと組み
合わせて使用することもできる。従って、本発明の範囲
は、上記説明に関して決定されるべきではなく、特許請
求の範囲及び、それに記載された発明の均等物の全範囲
に関して決定されるべきである。
【0033】以下においては、本発明の種々の構成要件
の組み合わせからなる例示的な実施態様を示す。 1.単一のメモリモジュールにおけるエラー訂正専用の
ビット数が、コンピュータシステムによってサポートさ
れるチップキル訂正アルゴリズムの実行に必要なビット
数より少ない場合において、該コンピュータシステムの
単一のメモリモジュールにおいてメモリオペレーション
を実行するための方法であって、単一のメモリモジュー
ルにおいてダブルワードメモリオペレーションを実行す
るステップと、前記コンピュータシステムによってサポ
ートされる所望のチップキルアルゴリズムを実行するた
めに、前記ダブルワードメモリオペレーションによって
提供される追加のエラー訂正ビットを使用するステップ
を含む、方法。 2.ダブルワードメモリオペレーションの実施が望まれ
ているか否かを決定するステップを更に含み、ダブルワ
ードメモリオペレーションの実施が望まれているか否か
を決定するこのステップを、ダブルワードメモリオペレ
ーションを実行する前記ステップより前に実行する、上
項1の方法。 3.コンピュータシステムのユーザが前記チップキルア
ルゴリズムの実行を望んでいるか否かを判定するステッ
プを更に含む、上項2の方法。 4.前記単一のメモリモジュールが、該単一のメモリモ
ジュールのメモリデバイスに対してチップキルアルゴリ
ズムを実行するために必要な数のエラー訂正ビットを有
しているか否か、を判定するステップを更に含む、上項
3の方法。 5.チップキルアルゴリズムを実行するために前記コン
ピュータシステムによって必要とされるビットの数が、
前記単一のメモリモジュールにおいて使用可能なエラー
訂正ビットの数の2倍以下であるか否かを判定するステ
ップを更に含む、上項3の方法。 6.前記コンピュータシステムが、シングルワードメモ
リ(オペレーション)の実施とダブルワードメモリ(オ
ペレーション)の実施とを切り替える能力を有する、上
項2の方法。 7.メモリコントローラと、データバスと、前記データ
バスにより前記メモリコントローラに電気的に結合さ
れ、少なくとも1つのメモリデバイスを有する少なくと
も1つのメモリモジュールを具備し、コンピュータシス
テムの単一のメモリモジュールにおけるエラー訂正専用
のビット数が、該コンピュータシステムによってサポー
トされるチップキル訂正アルゴリズムを実行するために
必要なビット数より少ない場合、前記メモリコントロー
ラによってダブルワードメモリオペレーションが実行さ
れることからなる、メモリ構成。
の組み合わせからなる例示的な実施態様を示す。 1.単一のメモリモジュールにおけるエラー訂正専用の
ビット数が、コンピュータシステムによってサポートさ
れるチップキル訂正アルゴリズムの実行に必要なビット
数より少ない場合において、該コンピュータシステムの
単一のメモリモジュールにおいてメモリオペレーション
を実行するための方法であって、単一のメモリモジュー
ルにおいてダブルワードメモリオペレーションを実行す
るステップと、前記コンピュータシステムによってサポ
ートされる所望のチップキルアルゴリズムを実行するた
めに、前記ダブルワードメモリオペレーションによって
提供される追加のエラー訂正ビットを使用するステップ
を含む、方法。 2.ダブルワードメモリオペレーションの実施が望まれ
ているか否かを決定するステップを更に含み、ダブルワ
ードメモリオペレーションの実施が望まれているか否か
を決定するこのステップを、ダブルワードメモリオペレ
ーションを実行する前記ステップより前に実行する、上
項1の方法。 3.コンピュータシステムのユーザが前記チップキルア
ルゴリズムの実行を望んでいるか否かを判定するステッ
プを更に含む、上項2の方法。 4.前記単一のメモリモジュールが、該単一のメモリモ
ジュールのメモリデバイスに対してチップキルアルゴリ
ズムを実行するために必要な数のエラー訂正ビットを有
しているか否か、を判定するステップを更に含む、上項
3の方法。 5.チップキルアルゴリズムを実行するために前記コン
ピュータシステムによって必要とされるビットの数が、
前記単一のメモリモジュールにおいて使用可能なエラー
訂正ビットの数の2倍以下であるか否かを判定するステ
ップを更に含む、上項3の方法。 6.前記コンピュータシステムが、シングルワードメモ
リ(オペレーション)の実施とダブルワードメモリ(オ
ペレーション)の実施とを切り替える能力を有する、上
項2の方法。 7.メモリコントローラと、データバスと、前記データ
バスにより前記メモリコントローラに電気的に結合さ
れ、少なくとも1つのメモリデバイスを有する少なくと
も1つのメモリモジュールを具備し、コンピュータシス
テムの単一のメモリモジュールにおけるエラー訂正専用
のビット数が、該コンピュータシステムによってサポー
トされるチップキル訂正アルゴリズムを実行するために
必要なビット数より少ない場合、前記メモリコントロー
ラによってダブルワードメモリオペレーションが実行さ
れることからなる、メモリ構成。
【0034】
【発明の効果】本発明によれば、ローエンドサーバシス
テムにおいて、コストのかかるカスタムASICチップ
や追加のメモリモジュール等を必要とせずに、チップキ
ルによるエラー検出を実行可能なメモリシステム構成お
よびプロセスが提供される。
テムにおいて、コストのかかるカスタムASICチップ
や追加のメモリモジュール等を必要とせずに、チップキ
ルによるエラー検出を実行可能なメモリシステム構成お
よびプロセスが提供される。
【図1A】2つのDIMMモジュールを有するローエン
ドサーバシステム用のメモリシステムの側面図を示す。
ドサーバシステム用のメモリシステムの側面図を示す。
【図1B】図1Aに示すローエンドサーバのメモリモジ
ュールのメモリ構成のブロック図を示す。
ュールのメモリ構成のブロック図を示す。
【図1C】図1Aに示すローエンドサーバのメモリロケ
ーションに対する読出しまたは書込み用のクロック信号
を示す。
ーションに対する読出しまたは書込み用のクロック信号
を示す。
【図2A】8つのDIMMモジュールを有する従来のハ
イエンドサーバシステム200用のメモリシステムの側
面図を示す。
イエンドサーバシステム200用のメモリシステムの側
面図を示す。
【図2B】図2Aに示すハイエンドサーバのメモリ構成
のブロック図を示す。
のブロック図を示す。
【図2C】図2Aに示すハイエンドサーバのメモリロケ
ーションに対する読出しまたは書込み用のクロック信号
を示す。
ーションに対する読出しまたは書込み用のクロック信号
を示す。
【図3A】本発明による2つのメモリモジュールを有す
るローエンドサーバ用のメモリシステムの側面図を示
す。
るローエンドサーバ用のメモリシステムの側面図を示
す。
【図3B】図3Aに示すローエンドサーバのメモリモジ
ュールのメモリ構成のブロック図を示す。
ュールのメモリ構成のブロック図を示す。
【図3C】図3Aに示すローエンドサーバのメモリロケ
ーションに対する読出しまたは書込み用のクロック信号
を示す。
ーションに対する読出しまたは書込み用のクロック信号
を示す。
【図4A】ローエンドサーバにおいてチップキルを実施
するか否かを決定するためのステップのフローチャート
を示す。
するか否かを決定するためのステップのフローチャート
を示す。
【図4B】シングルワードメモリオペレーションを利用
している時にチップキルをサポートしないローエンドサ
ーバでチップキルを実施するためのステップのフローチ
ャートを示す。
している時にチップキルをサポートしないローエンドサ
ーバでチップキルを実施するためのステップのフローチ
ャートを示す。
300 ローエンドサーバシステム 302 コントローラ 306 マザーボード 308a、308b メモリモジュール 312 メモリデバイス 314 デーババス 316 基板トレース部 318 コネクタ 320 モジュールトレース部
Claims (1)
- 【請求項1】単一のメモリモジュールにおけるエラー訂
正専用のビット数が、コンピュータシステムによってサ
ポートされるチップキル訂正アルゴリズムの実行に必要
なビット数より少ない場合に、該コンピュータシステム
の単一のメモリモジュールにおいてメモリオペレーショ
ンを実行するための方法であって、 単一のメモリモジュールにおいてダブルワードメモリオ
ペレーションを実行するステップと、 前記コンピュータシステムによってサポートされる所望
のチップキルアルゴリズムを実行するために、前記ダブ
ルワードメモリオペレーションによって提供される追加
のエラー訂正ビットを使用するステップを含む、方法。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US09/429,749 US6493843B1 (en) | 1999-10-28 | 1999-10-28 | Chipkill for a low end server or workstation |
US09/429749 | 1999-10-28 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2001142789A true JP2001142789A (ja) | 2001-05-25 |
JP2001142789A5 JP2001142789A5 (ja) | 2005-03-17 |
Family
ID=23704584
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2000320318A Withdrawn JP2001142789A (ja) | 1999-10-28 | 2000-10-20 | ローエンドサーバまたはワークステーション用のチップキル |
Country Status (2)
Country | Link |
---|---|
US (1) | US6493843B1 (ja) |
JP (1) | JP2001142789A (ja) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108701090A (zh) * | 2016-01-19 | 2018-10-23 | 美光科技公司 | 用以支持存储器错误校正的非易失性存储器模块架构 |
JP2021509499A (ja) * | 2018-01-03 | 2021-03-25 | インターナショナル・ビジネス・マシーンズ・コーポレーションInternational Business Machines Corporation | メモリ・コントローラを動作させる方法、デュアル・チャネル・モードからシングル・チャネル・モードに切り替える方法、およびメモリ・コントローラ |
Families Citing this family (23)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6370668B1 (en) * | 1999-07-23 | 2002-04-09 | Rambus Inc | High speed memory system capable of selectively operating in non-chip-kill and chip-kill modes |
US7051166B2 (en) * | 2003-04-21 | 2006-05-23 | Hewlett-Packard Development Company, L.P. | Directory-based cache coherency scheme for reducing memory bandwidth loss |
US7065697B2 (en) * | 2003-07-29 | 2006-06-20 | Hewlett-Packard Development Company, L.P. | Systems and methods of partitioning data to facilitate error correction |
US7051265B2 (en) * | 2003-07-29 | 2006-05-23 | Hewlett-Packard Development Company, L.P. | Systems and methods of routing data to facilitate error correction |
US7143236B2 (en) * | 2003-07-30 | 2006-11-28 | Hewlett-Packard Development Company, Lp. | Persistent volatile memory fault tracking using entries in the non-volatile memory of a fault storage unit |
US7331010B2 (en) * | 2004-10-29 | 2008-02-12 | International Business Machines Corporation | System, method and storage medium for providing fault detection and correction in a memory subsystem |
US7577890B2 (en) | 2005-01-21 | 2009-08-18 | Hewlett-Packard Development Company, L.P. | Systems and methods for mitigating latency associated with error detection and correction |
US7546514B2 (en) | 2005-04-11 | 2009-06-09 | Hewlett-Packard Development Company, L.P. | Chip correct and fault isolation in computer memory systems |
US7360132B1 (en) * | 2005-05-19 | 2008-04-15 | Sun Microsystems, Inc. | System and method for memory chip kill |
US7734980B2 (en) * | 2005-06-24 | 2010-06-08 | Intel Corporation | Mitigating silent data corruption in a buffered memory module architecture |
US7227797B2 (en) * | 2005-08-30 | 2007-06-05 | Hewlett-Packard Development Company, L.P. | Hierarchical memory correction system and method |
US7307902B2 (en) * | 2005-08-30 | 2007-12-11 | Hewlett-Packard Development Company, L.P. | Memory correction system and method |
US7685392B2 (en) | 2005-11-28 | 2010-03-23 | International Business Machines Corporation | Providing indeterminate read data latency in a memory system |
US7975205B2 (en) * | 2007-01-26 | 2011-07-05 | Hewlett-Packard Development Company, L.P. | Error correction algorithm selection based upon memory organization |
US8706914B2 (en) * | 2007-04-23 | 2014-04-22 | David D. Duchesneau | Computing infrastructure |
US8848470B2 (en) | 2012-08-29 | 2014-09-30 | International Business Machines Corporation | Memory operation upon failure of one of two paired memory devices |
US8996935B2 (en) | 2012-12-07 | 2015-03-31 | International Business Machines Corporation | Memory operation of paired memory devices |
US9632862B2 (en) | 2014-12-20 | 2017-04-25 | Intel Corporation | Error handling in transactional buffered memory |
US9697884B2 (en) | 2015-10-08 | 2017-07-04 | Rambus Inc. | Variable width memory module supporting enhanced error detection and correction |
KR20190062908A (ko) * | 2017-11-29 | 2019-06-07 | 에스케이하이닉스 주식회사 | 에러 정정 방법 및 칩 킬 감지 방법 |
KR20210147131A (ko) | 2020-05-27 | 2021-12-07 | 삼성전자주식회사 | 반도체 메모리 모듈을 액세스하는 방법 |
US11404136B2 (en) | 2020-12-16 | 2022-08-02 | Micron Technology, Inc. | Memory device protection using interleaved multibit symbols |
US11409601B1 (en) | 2021-01-26 | 2022-08-09 | Micron Technology, Inc. | Memory device protection |
Family Cites Families (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US3585378A (en) * | 1969-06-30 | 1971-06-15 | Ibm | Error detection scheme for memories |
US5058116A (en) * | 1989-09-19 | 1991-10-15 | International Business Machines Corporation | Pipelined error checking and correction for cache memories |
US5335234A (en) * | 1990-06-19 | 1994-08-02 | Dell Usa, L.P. | Error correction code pipeline for interleaved memory system |
US5481552A (en) * | 1993-12-30 | 1996-01-02 | International Business Machines Corporation | Method and structure for providing error correction code for 8-byte data words on SIMM cards |
US5465262A (en) * | 1994-01-28 | 1995-11-07 | International Business Machines Corporation | Method and structure for providing error correction code and automatic parity sensing |
US5379304A (en) * | 1994-01-28 | 1995-01-03 | International Business Machines Corporation | Method and structure for providing error correction code and parity for each byte on SIMM's |
US5623506A (en) * | 1994-01-28 | 1997-04-22 | International Business Machines Corporation | Method and structure for providing error correction code within a system having SIMMs |
US6003144A (en) * | 1997-06-30 | 1999-12-14 | Compaq Computer Corporation | Error detection and correction |
US6233716B1 (en) * | 1998-09-24 | 2001-05-15 | Sun Microsystems, Inc. | Technique for partitioning data to correct memory part failures |
US6304992B1 (en) * | 1998-09-24 | 2001-10-16 | Sun Microsystems, Inc. | Technique for correcting single-bit errors in caches with sub-block parity bits |
-
1999
- 1999-10-28 US US09/429,749 patent/US6493843B1/en not_active Expired - Fee Related
-
2000
- 2000-10-20 JP JP2000320318A patent/JP2001142789A/ja not_active Withdrawn
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108701090A (zh) * | 2016-01-19 | 2018-10-23 | 美光科技公司 | 用以支持存储器错误校正的非易失性存储器模块架构 |
US11461042B2 (en) | 2016-01-19 | 2022-10-04 | Micron Technology, Inc. | Non-volatile memory module architecture to support memory error correction |
CN108701090B (zh) * | 2016-01-19 | 2022-11-04 | 美光科技公司 | 用以支持存储器错误校正的非易失性存储器模块架构 |
US11797225B2 (en) | 2016-01-19 | 2023-10-24 | Lodestar Licensing Group, Llc | Non-volatile memory module architecture to support memory error correction |
JP2021509499A (ja) * | 2018-01-03 | 2021-03-25 | インターナショナル・ビジネス・マシーンズ・コーポレーションInternational Business Machines Corporation | メモリ・コントローラを動作させる方法、デュアル・チャネル・モードからシングル・チャネル・モードに切り替える方法、およびメモリ・コントローラ |
JP7146920B2 (ja) | 2018-01-03 | 2022-10-04 | インターナショナル・ビジネス・マシーンズ・コーポレーション | メモリ・コントローラを動作させる方法、デュアル・チャネル・モードからシングル・チャネル・モードに切り替える方法、およびメモリ・コントローラ |
Also Published As
Publication number | Publication date |
---|---|
US6493843B1 (en) | 2002-12-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP2001142789A (ja) | ローエンドサーバまたはワークステーション用のチップキル | |
KR100379812B1 (ko) | 하드웨어에의해메모리의ecc에러를자동적으로스크러빙하는방법및장치 | |
JP5135348B2 (ja) | メモリ装置の信頼性、可用性、およびサービス性の改善 | |
US6754858B2 (en) | SDRAM address error detection method and apparatus | |
EP2266116B1 (en) | Systems, methods, and apparatuses to save memory self-refresh power | |
EP1984822B1 (en) | Memory transaction replay mechanism | |
US6052818A (en) | Method and apparatus for ECC bus protection in a computer system with non-parity memory | |
US5452429A (en) | Error correction code on add-on cards for writing portions of data words | |
US8132074B2 (en) | Reliability, availability, and serviceability solutions for memory technology | |
US20190034270A1 (en) | Memory system having an error correction function and operating method of memory module and memory controller | |
US8886892B2 (en) | Memory module and method employing a multiplexer to replace a memory device | |
US20080270717A1 (en) | Memory module and method for mirroring data by rank | |
US7975205B2 (en) | Error correction algorithm selection based upon memory organization | |
JPH0757496A (ja) | 記憶装置の誤り検出装置及び記憶装置の誤り検出と訂正をおこなう方法 | |
US20030163767A1 (en) | Memory subsystem including an error detection mechanism for address and control signals | |
US20040237001A1 (en) | Memory integrated circuit including an error detection mechanism for detecting errors in address and control signals | |
US20080189481A1 (en) | Methods and systems for storing data based on a reliability requirement | |
US20040225944A1 (en) | Systems and methods for processing an error correction code word for storage in memory components | |
US6681299B1 (en) | Cache-tag control method in information processing apparatus having cache, with error checking mechanism in cache tag, and information processing apparatus using this control method | |
US7392347B2 (en) | Systems and methods for buffering data between a coherency cache controller and memory | |
JP3786418B2 (ja) | メモリバンド幅損失を低減するディレクトリベースのコヒーレンシ方式 | |
US20030163769A1 (en) | Memory module including an error detection mechanism for address and control signals | |
JP2006085704A (ja) | Eccメモリモジュール | |
US20080183916A1 (en) | Using Extreme Data Rate Memory Commands to Scrub and Refresh Double Data Rate Memory | |
US20040003165A1 (en) | Memory subsystem including error correction |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20040408 |
|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20040408 |
|
A761 | Written withdrawal of application |
Free format text: JAPANESE INTERMEDIATE CODE: A761 Effective date: 20060719 |