(57)【要約】メモリモジュール上にあるメモリ装置の不良メモリ部分をテストおよび修復するために用いられるコンピュータシステムおよび方法である。コンピュータシステムは、複数のメモリモジュールに結合されたメモリハブコントローラを含み、各メモリモジュールは、メモリハブと、複数のメモリ装置とを含む。メモリハブは、メモリ装置の不良メモリ箇所の位置を決定する自己テストモジュールを備える。同じくメモリハブに含まれる修復モジュールは、不良メモリ部分の位置を用いて、再マッピングテーブルを作成する。再マッピングテーブルは、メモリ装置の不良箇所に対するアクセスを、不良でないメモリ箇所へ向け直す。メモリハブがメモリアクセス装置からのメモリ要求を受信する度に、メモリハブは、アクセスが向けられたメモリ箇所をチェックして、必要であれば、メモリアクセスを不良でない箇所に向け直す。
2005535978.tif 000002
【特許請求の範囲】
【請求項１】
メモリモジュールであって、
複数のメモリ装置と、
メモリハブとを備え、メモリハブは、
少なくとも１つのメモリ装置に結合された自己テストモジュールであって、少なくとも１つのメモリ装置をテストするための要求に応答し、さらにメモリ装置の不良メモリ箇所を識別するように動作可能である自己テストモジュールと、
自己テストモジュールおよび少なくとも１つのメモリ装置に結合された修復モジュールであって、メモリ装置の不良メモリ箇所に対するメモリ要求に応答して、当該メモリ要求をメモリ装置の不良でないメモリ箇所に向け直す修復モジュールとを備える、メモリモジュール。
【請求項２】
自己テストモジュールは、メモリ装置にアクセスするためのシーケンサをさらに備え、シーケンサは、自己テストモジュールからのメモリ要求に含まれる、メモリ装置のメモリ箇所をアクセスするためのアドレスを出力するように動作可能である、請求項１に記載のメモリモジュール。
【請求項３】
メモリモジュールは、
少なくとも１つのメモリ装置に対するメモリ要求を受信するためのリンクインターフェイスと、
メモリ装置に結合されたメモリ装置インターフェイスであって、メモリ要求をメモリ装置につなぐように動作可能なメモリ装置インターフェイスと、
リンクインターフェイスおよびメモリ装置インターフェイスに結合されたメモリコントローラであって、修復モジュールを用いることによって、メモリ要求を生成してリンクインターフェイスからメモリ装置インターフェイスへつないで、メモリ装置の不良箇所に対するメモリ要求をメモリ装置の不良でない箇所に向け直すメモリコントローラとをさらに備える、請求項１に記載のメモリモジュール。
【請求項４】
メモリコントローラは、メモリ装置にアクセスするためのシーケンサをさらに備え、シーケンサは、自己テストルーチンからのメモリ要求に含まれる、メモリ装置のメモリ箇所をアクセスするためのアドレスを出力するように動作可能である、請求項３に記載のメモリモジュール。
【請求項５】
メモリ装置インターフェイスは、メモリコントローラから受信されたメモリ要求を受信および記憶して、記憶されたメモリ要求を受信した順で少なくとも１つのメモリ装置に対して転送するように動作可能な先入れ先出しバッファをさらに備える、請求項３に記載のメモリモジュール。
【請求項６】
リンクインターフェイスは、メモリコントローラから受信されたメモリ要求を受信および記憶して、記憶されたメモリ要求を受信した順でメモリコントローラに対して転送するように動作可能な先入れ先出しバッファをさらに備える、請求項３に記載のメモリモジュール。
【請求項７】
メモリ装置の不良メモリ箇所を識別する情報が、自己テストモジュールから修復モジュールへ転送される、請求項１に記載のメモリモジュール。
【請求項８】
自己テストモジュールは、少なくとも１つのメモリアクセス装置に結合され、メモリ装置の不良メモリの箇所は、少なくとも１つのメモリアクセス装置に転送される、請求項１に記載のメモリモジュール。
【請求項９】
修復モジュールは、メモリ装置の不良メモリの箇所を記憶するエラーマップをさらに備え、修復モジュールは、エラーマップを用いて、メモリ要求がメモリ装置の不良メモリ箇所に対するものかどうかを判断する、請求項１に記載のメモリモジュール。
【請求項１０】
修復モジュールは、エラーマップを用いてメモリ装置の不良メモリ箇所をメモリモジュール上にあるメモリの不良でないメモリ箇所に対して割り当てる再マッピングテーブルをさらに備え、修復モジュールは、再マッピングテーブルを用いて、メモリ装置の不良メモリ箇所に対するメモリ要求をメモリ装置の不良でないメモリ箇所に向け直す、請求項９に記載のメモリモジュール。
【請求項１１】
メモリ装置は、ダイナミックランダムアクセスメモリ装置を備える、請求項１に記載のメモリモジュール。
【請求項１２】
メモリモジュールであって、
複数のメモリ装置と、
メモリハブとを備え、メモリハブは、
少なくとも１つのメモリ装置に結合されたメモリコントローラであって、メモリ装置に対するメモリ要求に応答するメモリコントローラと、
メモリコントローラに結合された自己テストモジュールであって、少なくとも１つのメモリ装置をテストするための要求に応答し、さらにメモリ装置の不良メモリ箇所を識別するように動作可能である自己テストモジュールと、
メモリコントローラに結合された修復モジュールであって、メモリ装置の不良メモリ箇所に対するメモリ要求に応答して、当該メモリ要求をメモリ装置の不良でないメモリ箇所に向け直す修復モジュールとを備える、メモリモジュール。
【請求項１３】
メモリコントローラは、メモリ装置にアクセスするためのシーケンサをさらに備え、シーケンサは、自己テストモジュールからのメモリ要求に含まれる、メモリ装置のメモリ箇所をアクセスするためのアドレスを出力するように動作可能である、請求項１２に記載のメモリモジュール。
【請求項１４】
メモリモジュールは、
メモリコントローラに結合され、少なくとも１つのメモリ装置に対するメモリ要求を受信するためのリンクインターフェイスと、
メモリコントローラおよびメモリ装置に結合されたメモリ装置インターフェイスであって、メモリ要求をメモリ装置につなぐように動作可能なメモリ装置インターフェイスとをさらに備える、請求項１２に記載のメモリモジュール。
【請求項１５】
メモリコントローラは、修復モジュールを用いることによって、メモリ要求を生成してリンクインターフェイスからメモリ装置インターフェイスへつないで、メモリ装置の不良箇所に対するメモリ要求をメモリ装置の不良でない箇所に向け直す、請求項１４に記載のメモリモジュール。
【請求項１６】
メモリ装置インターフェイスは、メモリコントローラから受信されたメモリ要求を受信および記憶して、記憶されたメモリ要求を受信した順で少なくとも１つのメモリ装置に対して転送するように動作可能な先入れ先出しバッファをさらに備える、請求項１４に記載のメモリモジュール。
【請求項１７】
リンクインターフェイスは、メモリコントローラから受信されたメモリ要求を受信および記憶して、記憶されたメモリ要求を受信した順でメモリコントローラに対して転送するように動作可能な先入れ先出しバッファをさらに備える、請求項１４に記載のメモリモジュール。
【請求項１８】
メモリ装置の不良メモリ箇所を識別する情報が、自己テストモジュールから修復モジュールへ転送される、請求項１２に記載のメモリモジュール。
【請求項１９】
自己テストモジュールは、少なくとも１つのメモリアクセス装置に結合され、メモリ装置の不良メモリの箇所は、少なくとも１つのメモリアクセス装置に転送される、請求項１２に記載のメモリモジュール。
【請求項２０】
修復モジュールは、メモリ装置の不良メモリの箇所を記憶するエラーマップをさらに備え、修復モジュールは、エラーマップを用いて、メモリ要求がメモリ装置の不良メモリ箇所に対するものかどうかを判断する、請求項１２に記載のメモリモジュール。
【請求項２１】
修復モジュールは、エラーマップを用いてメモリ装置の不良メモリ箇所をメモリモジュール上にあるメモリの不良でないメモリ箇所に対して割り当てる再マッピングテーブルをさらに備え、修復モジュールは、再マッピングテーブルを用いて、メモリ装置の不良メモリ箇所に対するメモリ要求をメモリ装置の不良でないメモリ箇所に向け直す、請求項２０に記載のメモリモジュール。
【請求項２２】
修復モジュールのエラーマップをさらに備え、エラーマップは、メモリ要求がメモリ装置の不良メモリ箇所に対するものかどうかを判断するように動作可能である、請求項２１に記載のメモリモジュール。
【請求項２３】
メモリコントローラは、修復モジュールの再マッピングテーブルをさらに備え、再マッピングテーブルは、メモリ装置の不良メモリ箇所に対するメモリ要求をメモリ装置の不良でないメモリ箇所に向け直すように動作可能である、請求項２２に記載のメモリモジュール。
【請求項２４】
メモリ装置は、ダイナミックランダムアクセスメモリ装置を備える、請求項１２に記載のメモリモジュール。
【請求項２５】
コンピュータシステムであって、
中央処理装置（「ＣＰＵ」）と、
ＣＰＵに結合され、入力ポートおよび出力ポートを有するシステムコントローラと、
システムコントローラを介してＣＰＵに結合された入力装置と、
システムコントローラを介してＣＰＵに結合された出力装置と、
システムコントローラを介してＣＰＵに結合された記憶装置と、
複数のメモリモジュールとを備え、各メモリモジュールは、
複数のメモリ装置と、
メモリハブとを備え、メモリハブは、
少なくとも１つのメモリ装置に結合された自己テストモジュールであって、少なくとも１つのメモリ装置をテストするための要求に応答し、メモリ装置の不良メモリ箇所を識別するようにさらに動作可能な自己テストモジュールと、
自己テストモジュールおよび少なくとも１つのメモリ装置に結合された修復モジュールであって、メモリ装置の不良メモリ箇所に対するメモリ要求に応答して、当該メモリ要求をメモリ装置の不良でないメモリ箇所へ向け直す修復モジュールと、
各メモリモジュールにおけるメモリハブの入力ポートにシステムコントローラの出力ポートをつなぎ、各メモリモジュールにおけるメモリハブの出力ポートにシステムコントローラの入力ポートをつなぐ通信リンクとを備える、コンピュータシステム。
【請求項２６】
自己テストモジュールは、メモリ装置にアクセスするためのシーケンサをさらに備え、シーケンサは、自己テストモジュールからのメモリ要求に含まれる、メモリ装置のメモリ箇所をアクセスするためのアドレスを出力するように動作可能である、請求項２５に記載のコンピュータシステム。
【請求項２７】
メモリモジュールは、
少なくとも１つのメモリ装置に対するメモリ要求を受信するためのリンクインターフェイスと
メモリ装置に結合され、メモリ要求をメモリ装置につなぐように動作可能なメモリ装置インターフェイスと、
リンクインターフェイスおよび修復モジュールに結合され、修復モジュールを用いることによって、リンクインターフェイスからのメモリ要求を生成してメモリ装置インターフェイスにつないで、メモリ装置の不良箇所に対するメモリ要求をメモリ装置の不良でない箇所に向け直すように動作可能であるメモリコントローラとをさらに備える、請求項２５に記載のコンピュータシステム。
【請求項２８】
メモリコントローラは、メモリ装置にアクセスするためのシーケンサをさらに備え、シーケンサは、自己テストルーチンからのメモリ要求に含まれる、メモリ装置のメモリ箇所をアクセスするためのアドレスを出力するように動作可能である、請求項２７に記載のコンピュータシステム。
【請求項２９】
メモリ装置インターフェイスは、メモリコントローラから受信されたメモリ要求を受信および記憶して、記憶されたメモリ要求を受信した順で少なくとも１つのメモリ装置に対して転送するように動作可能な先入れ先出しバッファをさらに備える、請求項２７に記載のコンピュータシステム。
【請求項３０】
リンクインターフェイスは、メモリコントローラから受信されたメモリ要求を受信および記憶して、記憶されたメモリ要求を受信した順でメモリコントローラに対して転送するように動作可能な先入れ先出しバッファをさらに備える、請求項２７に記載のコンピュータシステム。
【請求項３１】
メモリ装置の不良メモリ箇所を識別する情報が、自己テストモジュールから修復モジュールへ転送される、請求項２５に記載のコンピュータシステム。
【請求項３２】
自己テストモジュールは、少なくとも１つのメモリアクセス装置に結合され、メモリ装置の不良メモリの箇所は、少なくとも１つのメモリアクセス装置に転送される、請求項２５に記載のコンピュータシステム。
【請求項３３】
修復モジュールは、メモリ装置の不良メモリの箇所を記憶するエラーマップをさらに備え、修復モジュールは、エラーマップを用いて、メモリ要求がメモリ装置の不良メモリ箇所に対するものかどうかを判断する、請求項２５に記載のコンピュータシステム。
【請求項３４】
修復モジュールは、エラーマップを用いてメモリ装置の不良メモリ箇所をメモリモジュール上にあるメモリの不良でないメモリ箇所に対して割り当てる再マッピングテーブルをさらに備え、修復モジュールは、再マッピングテーブルを用いて、メモリ装置の不良メモリ箇所に対するメモリ要求をメモリ装置の不良でないメモリ箇所に向け直す、請求項３３に記載のコンピュータシステム。
【請求項３５】
メモリ装置は、ダイナミックランダムアクセスメモリ装置を備える、請求項２５に記載のコンピュータシステム。
【請求項３６】
メモリハブコントローラの入力および出力ポートは、通信リンクに結合された複合入出力ポートを備え、各メモリハブの入力および出力ポートは、通信リンクに結合された複合入出力ポートを備える、請求項２５に記載のコンピュータシステム。
【請求項３７】
通信リンクは、光学通信リンクであって、メモリハブコントローラの入力および出力ポートは、光学通信リンクに結合された光学入出力ポートを備え、各メモリハブの入出力ポートは、光学通信リンクに結合された各光学入出力ポートを備える、請求項３６に記載のコンピュータシステム。
【請求項３８】
コンピュータシステムであって、
中央処理装置（ＣＰＵ）と、
ＣＰＵに結合され、入力ポートおよび出力ポートを有するシステムコントローラと、
システムコントローラを介してＣＰＵに結合された入力装置と、
システムコントローラを介してＣＰＵに結合された出力装置と、
システムコントローラを介してＣＰＵに結合された記憶装置と、
複数のメモリモジュールとを備え、各メモリモジュールは、
複数のメモリ装置と、
メモリハブとを備え、メモリハブは、
少なくとも１つのメモリ装置に結合され、メモリ装置に対するメモリ要求に応答するメモリコントローラと、
メモリコントローラに結合された自己テストモジュールであって、少なくとも１つのメモリ装置をテストするための要求に応答し、モリ装置の不良メモリ箇所を識別するようにさらに動作可能な自己テストモジュールと、
メモリコントローラに結合された修復モジュールであって、メモリ装置の不良メモリ箇所に対するメモリ要求に応答して、当該メモリ要求をメモリ装置の不良でないメモリ箇所へ向け直す修復モジュールと、
各メモリモジュールにおけるメモリハブの入力ポートにシステムコントローラの出力ポートをつなぎ、各メモリモジュールにおけるメモリハブの出力ポートにシステムコントローラの入力ポートをつなぐ通信リンクとを備える、コンピュータシステム。
【請求項３９】
メモリコントローラは、メモリ装置にアクセスするためのシーケンサをさらに備え、シーケンサは、自己テストモジュールからのメモリ要求に含まれる、メモリ装置のメモリ箇所をアクセスするためのアドレスを出力するように動作可能である、請求項３８に記載のコンピュータシステム。
【請求項４０】
メモリモジュールは、
メモリコントローラに結合され、少なくとも１つのメモリ装置に対するメモリ要求を受信するためのリンクインターフェイスと、
メモリコントローラおよびメモリ装置に結合されたメモリ装置インターフェイスであって、メモリ要求をメモリ装置につなぐように動作可能なメモリ装置インターフェイスとをさらに備える、請求項３８に記載のコンピュータシステム。
【請求項４１】
メモリコントローラは、修復モジュールを用いることによって、メモリ要求を生成してリンクインターフェイスからメモリ装置インターフェイスへつないで、メモリ装置の不良箇所に対するメモリ要求をメモリ装置の不良でない箇所に向け直す、請求項４０に記載のコンピュータシステム。
【請求項４２】
メモリ装置インターフェイスは、メモリコントローラから受信されたメモリ要求を受信および記憶して、記憶されたメモリ要求を受信した順で少なくとも１つのメモリ装置に対して転送するように動作可能な先入れ先出しバッファをさらに備える、請求項４０に記載のコンピュータシステム。
【請求項４３】
リンクインターフェイスは、メモリコントローラから受信されたメモリ要求を受信および記憶して、記憶されたメモリ要求を受信した順でメモリコントローラに対して転送するように動作可能な先入れ先出しバッファをさらに備える、請求項４０に記載のコンピュータシステム。
【請求項４４】
メモリ装置の不良メモリ箇所を識別する情報が、自己テストモジュールから修復モジュールへ転送される、請求項３８に記載のコンピュータシステム。
【請求項４５】
自己テストモジュールは、少なくとも１つのメモリアクセス装置に結合され、メモリ装置の不良メモリの箇所は、少なくとも１つのメモリアクセス装置に転送される請求項３８に記載のコンピュータシステム。
【請求項４６】
修復モジュールは、メモリ装置の不良メモリの箇所を記憶するエラーマップをさらに備え、修復モジュールは、エラーマップを用いて、メモリ要求がメモリ装置の不良メモリ箇所に対するものかどうかを判断する、請求項３８に記載のコンピュータシステム。
【請求項４７】
修復モジュールは、エラーマップを用いてメモリ装置の不良メモリ箇所をメモリモジュール上にあるメモリの不良でないメモリ箇所に対して割り当てる再マッピングテーブルをさらに備え、修復モジュールは、再マッピングテーブルを用いて、メモリ装置の不良メモリ箇所に対するメモリ要求をメモリ装置の不良でないメモリ箇所に向け直す、請求項４６に記載のコンピュータシステム。
【請求項４８】
メモリコントローラは、修復モジュールのエラーマップをさらに備え、エラーマップは、メモリ要求がメモリ装置の不良メモリ箇所に対するものかどうかを判断するように動作可能である、請求項４７に記載のコンピュータシステム。
【請求項４９】
メモリコントローラは、修復モジュールの再マッピングテーブルをさらに備え、再マッピングテーブルは、メモリ装置の不良メモリ箇所に対するメモリ要求をメモリ装置の不良でないメモリ箇所に向け直すように動作可能である、請求項４８に記載のコンピュータシステム。
【請求項５０】
メモリ装置は、ダイナミックランダムアクセスメモリ装置を備える、請求項３８に記載のコンピュータシステム。
【請求項５１】
メモリハブコントローラの入力および出力ポートは、通信リンクに結合された複合入出力ポートを備え、各メモリハブの入力および出力ポートは、通信リンクに結合された複合入出力ポートを備える請求項３８に記載のコンピュータシステム。
【請求項５２】
通信リンクは、光学通信リンクであって、メモリハブコントローラの入力および出力ポートは、光学通信リンクに結合された光学入出力ポートを備え、各メモリハブの入出力ポートは、光学通信リンクに結合された各光学入出力ポートを備える、請求項５１に記載のコンピュータシステム。
【請求項５３】
メモリハブをそれぞれ有する各複数のメモリモジュール上の複数のメモリ装置をテストおよび修復する方法であって、
少なくとも１つのメモリモジュールにおけるメモリハブを用いて、自己テストルーチンを生成し、
生成された自己テストルーチンを用いて、メモリモジュールにおける少なくとも１つのメモリ装置をテストして、当該少なくとも１つのメモリ装置の不良メモリ箇所を識別し、
メモリ要求をメモリハブにおいて受信して、少なくとも１つのメモリ装置にアクセスし、
メモリハブにおいて、受信されたメモリ要求が不良メモリ箇所であると識別されたメモリ箇所に向けられているかどうかを判断し、
受信されたメモリ要求が不良メモリ箇所であると識別されたメモリ箇所に向けられている場合、メモリモジュール上のメモリの不良箇所に対するメモリ要求を向けなおし、
受信されたメモリ要求が不良メモリ箇所であると識別されなかったメモリ箇所に向けられている場合、当該少なくとも１つのメモリ装置におけるメモリ要求が向けられていた箇所にアクセスする、方法。
【請求項５４】
メモリ装置の不良メモリ箇所を識別する情報をメモリマップに記憶することをさらに備える、請求項５３に記載の方法。
【請求項５５】
メモリ装置の不良メモリ箇所をメモリ装置の不良でないメモリ箇所に割り当てるエラーマップから再マッピングテーブルを作成することをさらに含み、再マッピングテーブルは、メモリ装置の不良メモリ箇所に向けられたメモリ要求をメモリ装置の不良でないメモリ箇所に向け直すために用いられる、請求項５４に記載の方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、コンピュータシステムに関し、より特定的には、メモリハブが数個のメモリ装置をプロセッサまたは他のメモリアクセス装置に結合しているメモリモジュールを有するコンピュータシステムに関する。
【背景技術】
【０００２】
発明の背景
コンピュータシステムは、ダイナミックランダムアクセスメモリ（「ＤＲＡＭ」）装置などのメモリ装置を用いて、プロセッサによってアクセスされる命令およびデータを記憶する。これらのメモリ装置は、通常、コンピュータシステムにおけるシステムメモリとして用いられる。典型的なコンピュータシステムにおいて、プロセッサは、プロセッサバスおよびメモリコントローラを介してシステムメモリと通信を行う。プロセッサは、読み出しコマンドなどのメモリコマンドを含むメモリ要求と、データまたは命令が読み出されるべき箇所を指定するアドレスとを発行する。メモリコントローラは、コマンドおよびアドレスを用いて、適切なコマンド信号と、システムメモリに適用される行および列アドレスとを生成する。コマンドおよびアドレスに応答して、データがシステムメモリおよびプロセッサ間で転送される。メモリコントローラは、システムコントローラの一部であることが多く、また、プロセッサバスをＰＣＩバスなどの拡張バスに結合させるためのバスブリッジ回路を含む。
【０００３】
メモリ装置の動作速度が連続して上昇しても、動作速度のこの上昇は、プロセッサの動作速度の上昇と一致していたわけではない。それどころか、プロセッサをメモリ装置に結合させるメモリコントローラの動作速度の上昇は、より遅かった。メモリコントローラおよびメモリ装置の比較的遅い速度により、プロセッサおよびメモリ装置間のデータ帯域幅が制限される。
【０００４】
プロセッサおよびメモリ装置間のデータ帯域幅が制限されていることに加えて、コンピュータシステムの性能は、システムメモリ装置からデータを読み出すのに必要な時間を増加させる待ち時間の問題によっても制限される。より具体的には、メモリ装置読み出しコマンドが同期ＤＲＡＭ（「ＳＤＲＡＭ」）装置などのシステムメモリ装置につながれる場合、読み出しデータがＳＤＲＡＭ装置から出力されるのは、数クロック期間遅れた後である。したがって、ＳＤＲＡＭ装置がバーストデータを高いデータ速度で同期出力できても、最初にデータを与える際の遅れが、そのようなＳＤＲＡＭ装置を用いるコンピュータシステムの動作速度を大幅に遅らせることがある。
【０００５】
メモリ待ち時間問題を緩和する取り組みとして、メモリハブを介してプロセッサに結合された複数のメモリ装置を用いることが挙げられる。メモリハブアーキテクチャにおいて、システムコントローラまたはメモリハブコントローラがいくつかのメモリモジュールに結合され、各メモリモジュールは、いくつかのメモリ装置に結合されたメモリハブを含む。メモリハブは、コントローラおよびメモリ装置間のメモリ要求および応答を効率的に経路設定する。このアーキテクチャを用いるコンピュータシステムは、より高い大域幅を有することができる。なぜなら、プロセッサは、あるメモリ装置に対するアクセスを、他のメモリ装置が以前のメモリアクセスに応答している間に行うことができるからである。例えば、プロセッサは、書き込みデータをシステム内のメモリ装置のうちの１つに出力することを、システム内の他のメモリ装置が読み出しデータをプロセッサに提供する準備をしている間に行うことができる。メモリハブアーキテクチャを用いるコンピュータシステムの動作効率によって、コンピュータシステムにおけるメモリ容量の大幅な増加をより実用化することができる。
【０００６】
メモリ装置にアクセスするためのメモリハブを用いる利点にもかかわらず、メモリ装置による半導体技術は、不良メモリ箇所を生じさせることが多く、それにより、メモリ装置の信頼性が失われている。メモリ装置における不良箇所がそのような装置を用いるコンピュータシステムの性能を低下させる程度は、コンピュータシステムの性質およびそれが実行しているアプリケーションに依存する。コンピュータシステムは、電話の留守番録音装置に含まれているような単純なコンピュータから、複雑な科学プロジェクト用に用いられる非常に複雑なスーパーコンピュータまで様々であろう。例えば、電話の留守番録音装置用に用いられる単純なコンピュータにおいて、メモリの１つ以上のメモリ箇所におけるエラーは、致命的でないかもしれない。例えば、電話の留守番録音装置のメモリにおける誤りは、メモリに記憶された合成音声をわずかに変えるだけであると考えられる。しかしながら、科学的計算を実行するために用いられるコンピュータのメモリにおける１つ以上の不良メモリ箇所は、重要な問題を生じさせることがある。
【０００７】
現在の生産技術により、不良メモリ箇所の数は大幅に減少しているが、コンピュータメモリは、いまだそのような不良メモリ箇所の影響を受けやすい。そのような不良メモリ箇所は、メモリチップの製造中に取られる数多くのあらゆるステップ、半導体結晶不良、電気コネクタの不連続性などによって生じうる。そのような不良メモリ箇所を有するメモリチップは、典型的には、生産されるメモリチップの総合計のうちの小さな部分（１％未満）を占めるものの、そのような不良メモリチップの実際の数は、かなりある。
【０００８】
過去においては、「冗長行」として知られるメモリセルの追加行を設けて、不良なメモリセルを有する行を交換していた。冗長行の利用は、ともすれば不良メモリチップとなるチップを救出するのには成功を収めているが、交換可能な不良行の数は、メモリチップ上に設けられる冗長行の数に限定される。不良行の数は、時には、利用可能な冗長行の数を上回るので、不良行の中には修復されないものもある。場合によっては、そのような不良メモリチップが、電話の留守番録音装置などの、完全なメモリを必要としないアプリケーション用として、非常に低価格で販売されることもある。しかしながら、そのようなメモリチップを、パーソナルコンピュータにおけるような、より重要なアプリケーションにおいて用いることができれば、有益であろう。
【０００９】
そのような不良メモリチップをパーソナルコンピュータに搭載することができるようにするやり方として、誤り訂正方法を用いて、不良メモリ箇所を補償することが挙げられる。誤り訂正方法は、データワード内に誤りデータビットがある場合に、データワードを再構成することを可能にする複数の誤り訂正ビットを各データワードに追加する。しかしながら、そのような先行技術の誤り訂正方法は、典型的には、データワードの単一のビットのみに誤りがある場合に、データを再構成するだけである。さらに、そのような誤り訂正方法は、数個の追加のデータビットを各データワードに追加することによって、高いメモリオーバヘッドを生じさせる。加えて、そのような誤り訂正方法を拡張して、複数の誤りデータビットを検出するようにすることができるが、生じるであろうメモリオーバヘッドは許容できない。
【００１０】
不良メモリビットの他の訂正方法は、再マッピング方法として一般に知られるものを通して行われる。再マッピングは、あらかじめ定義されたエラーマップおよび再マッピングテーブルを用いて、不良メモリ箇所を向け直す。エラーマップは、通常、メモリブロックのどのメモリ箇所が不良であるかを決定する周知のテストに基づいて工場において作成される。これらの再マッピング方法は、二重ビットエラー問題および高いメモリオーバヘッドに対応しているが、様々な欠点がある。例えば、エラーマップを向上で作成すると、将来の不良箇所を修正することができず、生産処理に余分な時間および資金が加わる。システムコントローラにおけるエラーマップを作成することは、各コンピュータ生産者に対して、コンピュータシステムによってアクセスされるメモリ装置の各型毎の独自のテストシステムを開発することを要求する。
【００１１】
用いられるメモリ修復または修正手法の型に関わらず、不良メモリセルの箇所を検出することが通常必要である。不良メモリセルの検出は、一般に、１および０のチェッカー盤のパターンなどの既知のデータのパターンをメモリセルのアレイに書き込み、その後メモリセルからデータを読み出して、読み出しデータが書き込みデータと一致するかどうかを決定することによって行われる。このほう名やり方によるメモリ装置のテストは、通常、メモリ装置の生産中のいくつかの段階において、コンピュータおよびメモリ装置を用いる他のシステムによって行われる。例えば、コンピュータシステムは、通常、コンピュータシステムのパワーアップ時において、システムメモリ装置をテストし、システムメモリ装置は、通常、ダイナミックランダムアクセス（「ＤＲＡＭ」）メモリ装置である。
【００１２】
既知のデータをメモリ装置に書き込み、メモリ装置からデータを読み出し、読み出しデータを書き込みデータと比較することによってメモリ装置をテストするために用いられる時間は、主にメモリ装置の記憶容量の関数となる。例えば、メモリ装置のメモリセルの数を２倍にすると、通常、メモリ装置をテストする時間が２倍となる。従来のメモリアーキテクチャにおいて用いられるメモリ装置をテストするのに必要な時間は、許容できるほど短いものの、他のアーキテクチャを用いるメモリ装置をテストするのに必要な時間は、許容できないほどに長い。例えば、メモリハブアーキテクチャが提供可能な極めて大きなメモリ容量によって、メモリハブアーキテクチャシステムにおけるメモリ装置をプロセッサがテスト時間が許容できないほど長くなってしまうことがある。
【００１３】
読み出しデータを書き込みデータと比較することによってメモリ装置をテストするのに必要な時間を削減するやり方として、メモリ装置における自己テスト回路を組み込むことによって、「チップ上での」のメモリテスト機能を移動させることが挙げられる。このやり方は、メモリ装置をテストするのに必要な時間を削減できるものの、それにもかかわらず、各メモリ装置の合否状態をプロセッサまたは他のメモリアクセス装置に対して報告しなければならない。多くの数のメモリ装置を用いるメモリハブアーキテクチャにおいては、すべてのメモリ装置が自身の合否状態を報告するのにかなりの時間を必要とするであろう。
【００１４】
したがって、メモリハブアーキテクチャの利点をメモリモジュール上のメモリ装置をテストおよび修復する利点と組み合わせるメモリモジュールが必要とされている。
【発明の開示】
【課題を解決するための手段】
【００１５】
発明の概要
本発明は、メモリモジュール上にあるメモリ装置の不良メモリ箇所をテストおよび修復するために用いられるコンピュータシステムおよび方法に向けられている。コンピュータシステムは、メモリハブコントローラに結合された複数のメモリモジュールを含む。各メモリモジュールは、複数のメモリ装置と、メモリハブとを含む。メモリハブは、自己テストモジュールと、修復モジュールとを含む。自己テストモジュールは、メモリ装置に結合されて、メモリ装置をテストする要求に応答して、自己テストモジュールは、１つ以上の自己テストルーチンを実行する。自己テストルーチンは、メモリ装置上の不良メモリの箇所を決定する。修復モジュールは、不良メモリの箇所を用いて、再マッピングテーブルを作成する。再マッピングテーブルは、メモリ装置の不良メモリ箇所を、メモリ装置内またはメモリハブ内にあるキャッシュメモリまたはスクラッチメモリ内などのメモリモジュール上にあるメモリの不良でないメモリ箇所に向け直す。
【００１６】
明らかなように、本発明は、本発明の精神および範囲から逸脱せずに、様々な自明の局面において修正を施すことが可能である。したがって、図面および詳細な説明は、その性質上、例示的であり、限定的なものではないとみなされるべきである。
【発明を実施するための最良の形態】
【００１７】
発明の詳細な説明
本実施形態の一実施形態に係るコンピュータシステム１００を図１に示す。コンピュータシステム１００は、特定のソフトウェアを実行して特定の計算またはタスクを行うなどの、様々な計算機能を行うためのプロセッサ１０４を含む。プロセッサ１０４は、アドレスバス、コントロールバス、およびデータバスを通常含むプロセッサバス１０６を含む。プロセッサバス１０６は、典型的にはキャッシュメモリ１０８に結合され、キャッシュメモリ１０８は、典型的には静的ランダムアクセスメモリ（「ＳＲＡＭ」）である。最後に、プロセッサバス１０６は、システムコントローラ１１０に結合され、システムコントローラ１１０は、時には「ノースブリッジ」または「メモリコントローラ」と呼ばれることもある。
【００１８】
システムコントローラ１１０は、様々な他の構成要素に対して、プロセッサ１０４への通信路としての役割を果たす。より特定的には、システムコントローラ１１０は、典型的にはグラフィックスコントローラ１１２に結合されたグラフィックスポートを含み、グラフィックスコントローラ１１２は、さらにビデオ端子１１４に結合されている。また、システムコントローラ１１０は、キーボードまたはマウスなどの１つ以上の入力装置１１８に結合されて、オペレータがコンピュータシステム１００に接続できるようにする。典型的には、また、コンピュータシステム１００は、システムコントローラ１１０を通じてプロセッサ１０４に結合されたプリンタなどの１つ以上の出力装置１２０を含む。また、１つ以上のデータ記憶装置１２４が、典型的にはシステムコントローラ１１０を通じてプロセッサ１０４に結合され、内外の記憶媒体（図示せず）からのデータをプロセッサ１０４が記憶または取り出すことができるようにしている。典型的な記憶装置１２４の例には、ハードおよびフロッピー（登録商標）ディスク、テープカセット、およびコンパクトディスク読み出し専用メモリ（ＣＤ−ＲＯＭ）がある。
【００１９】
システムコントローラ１１０は、コンピュータシステム１００のためのシステムメモリとしての役割を果たす数個のメモリモジュール１３０ａ，ｂ…ｎに結合されたメモリハブコントローラ１２８を含む。メモリモジュール１３０は、好ましくは、光または電気通信路または他の種類の通信路などの高速リンク１３４を通じてメモリハブコントローラ１２８に結合されている。高速リンク１３４が光通信路によって実施される場合には、光通信路は、１つ以上の光ファイバの形態であってもよい。そのような場合、メモリハブコントローラ１２８およびメモリモジュールは、光通信路に結合された入出力ポートまたは別個の入力および出力ポートを含むであろう。メモリモジュール１３０は、メモリハブコントローラ１２８に結合されて、単一の高速リンク１３４がメモリモジュール１３０のすべてに結合されているようなマルチドロップ配置であるように示されている。しかしながら、別の高速リンク（図示せず）を用いて各メモリモジュール１３０をメモリハブコントローラ１２８に結合させる、二地点間結合配置などの他の配置を用いてもよいことが理解されるであろう。また、メモリハブコントローラ１２８がスイッチ（図示せず）を介して各メモリモジュール１３０に選択的に結合される、切り替え配列を用いてもよい。用いられうる他の配列は、当業者にとっては明らかであろう。
【００２０】
各メモリモジュール１３０は、図１に示す例においては同期ダイナミックランダムアクセスメモリ（「ＳＤＲＡＭ」）装置である６つのメモリ装置１４８に対するアクセスを制御するためのメモリハブ１４０を含む。しかしながら、それより少ないまたは多い数のメモリ装置１４８を用いてもよく、また、ＳＤＲＡＭ装置以外のメモリ装置を用いてもよい。メモリハブ１４０は、各システムメモリ装置１４８にバスシステム１５０を介して結合され、バスシステム１５０は、通常、コントロールバス、アドレスバス、およびデータバスを含む。
【００２１】
図１のメモリモジュール１３０において用いられうるメモリハブ１４０の一例を図２に示す。メモリハブ１４０は、好ましくは、メモリコントローラ１５２と、リンクインターフェイス１５４と、およびメモリ装置インターフェイス１５６とを含むが、それに限定されない。リンクインターフェイス１５４は、アドレス、コマンド、および書き込みデータ信号をメモリハブコントローラ１２８（図１）から受信し、読み出しデータ信号をメモリハブコントローラ１２８へ送信するための高速リンク１３４に結合されている。リンクインターフェイス１５４の性質は、高速リンク１３４の特性に依存するであろう。例えば、高速リンク１３４が光通信路を用いて実施される場合には、リンクインターフェイス１５４は、光入出力ポートを含み、光通信路を介して入力される光信号を電気信号に変換するであろう。いずれの場合も、リンクインターフェイス１５４は、好ましくは、先入れ先出しバッファ１６０などの、高速リンク１３４を介して受信されるメモリ要求を受信および記憶するためのバッファを含む。メモリ要求は、メモリハブ１４０によって処理できるまでは、バッファ１６０に記憶される。
【００２２】
メモリハブ１４０がメモリ要求を処理可能である場合、バッファ１６０に記憶されたメモリ要求のうちの１つがメモリコントローラ１５２へ転送される。メモリコントローラ１５２は、メモリ要求をメモリハブコントローラ１２８から出力されたフォーマットからメモリ装置１４８によって用いられうるフォーマットへ変換するシーケンサ１５８を含んでもよい。これらの再フォーマットされた要求信号は、通常、メモリ要求に含まれるメモリコマンドから派生するメモリコマンド信号と、メモリ要求に含まれるアドレスから派生する行および列アドレス信号とを含む。メモリ要求のうちの１つが書き込みメモリ要求である場合、再フォーマットされた要求信号は、通常、メモリハブ１４０によって受信されたメモリ要求に含まれる書き込みコマンドから派生する書き込みデータ信号を含む。例えば、メモリ装置１４８は、従来のＤＲＡＭ装置である場合には、メモリシーケンサ１５８は、行アドレス信号と、行アドレスストローブ（「ＲＡＳ」）信号と、ハイでアクティブとなる書き込みおよびローでアクティブとなる読み出し信号（「Ｗ／Ｒ＊」）と、列アドレス信号と、列アドレスストローブ（「ＣＡＳ」）とを出力するであろう。
【００２３】
シーケンサ１５８は、再フォーマットされたメモリ要求の信号を、メモリ装置１４８によって要求されたシーケンスにおけるメモリ装置インターフェイス１５６に対して適用する。メモリ装置インターフェイス１５６の性質は、メモリ装置１４８の特性に依存するであろう。例えば、シーケンサ１５８は、行アドレス信号、続いてＲＡＳ信号、続いて列アドレス信号、続いてＣＡＳ信号を、メモリ装置インターフェイスに適用してもよい。いずれの場合も、メモリ装置インターフェイス１５６は、好ましくは、１つ以上のメモリ要求を受信して、シーケンサ１５８から受信するように記憶する、先入れ先出し（ＦＩＦＯ）バッファ１６２などのバッファを含む。メモリ要求は、メモリ装置１４８によって処理できるまでは、バッファ１６２に記憶される。メモリ装置インターフェイス１５６が数個のメモリ要求を記憶する場合に、メモリ装置インターフェイス１５６は、メモリ装置１４８に対して他の順番で適用されるメモリ要求を整理し直してもよい。
【００２４】
メモリ要求は、メモリ装置１４８に対して適用されるメモリ要求のフォーマットとは異なるフォーマットで、メモリハブ１４０によって受信されるものとして上述した。しかしながら、代わりに、メモリハブコントローラ１２８は、プロセッサ１０４からのメモリ要求を、メモリ装置１４８によって用いられうるフォーマットへ再フォーマットしてもよい。その後、シーケンサ１５８は、メモリ装置１４８によって用いるのに必要な順番で、再フォーマットされた要求信号に対して、単にスケジュール設定を行う。その後、１つ以上のメモリ要求のためのメモリ要求信号は、メモリ装置インターフェイス１５６に転送され、後にメモリ装置１４８に対して適用することができるようになる。
【００２５】
図２をさらに参照して、メモリハブ１４０は、自己テストモジュール１６４と、修復モジュール１６６とをさらに含む。自己テストモジュール１６４は、シーケンサ１６８を含み、修復モジュール１６６は、エラーマップ１７４と、再マッピングテーブル１７６とを含む。また、図示していないが、メモリモジュール１４０は、上述のように、メモリハブコントローラ１２８およびメモリ装置１４８のインターフェイスとなるための他の構成要素を含んでもよい。
【００２６】
上述したように、メモリモジュールの問題として、不良メモリの存在がある。メモリモジュールの信頼性を保証するためには、追加の時間と資金とを費やして、工場およびオンボードでのコンピュータのいずれかにおいて各モジュールをテストおよび／または修復する。しかしながら、工場でのメモリのテストおよび修復は、将来生じるかもしれないメモリ不良を解決するものではない。同様に、オンボードでのコンピュータでのメモリのテストは、コンピュータに電源を投入する度にコンピュータがテストルーチンを実行する時間を必要とする。メモリハブアーキテクチャを有するメモリを用いるコンピュータシステムでは、各電源投入中にメモリ装置をテストするのに必要な時間は、許容できないほど長くなりうる。さらに、コンピュータシステムにインストールした後のメモリ装置のテストでは、メモリ不良の存在を識別するだけである。一般的に、上述の手法を用いてこのような不良を修復することなどによっては、このような不良をどうすることもできない。
【００２７】
図２に示すメモリモジュール１３０は、メモリモジュール１３０に実装される自己テストおよび修復の能力を提供する。よって、メモリモジュール１３０は、コンピュータシステム１００または他のシステムにインストールされた後に、継続的に自身をテストおよび修復することができる。テストおよび修復システムは、メモリモジュール１３０に必須の部分であり、メモリモジュール１３０に実装されたメモリ装置１４８の型のために特に設計される。これにより、コンピュータシステムによって用いられるメモリ装置１４８の各型用に特化されたテストおよび修復システムを各コンピュータ製造者が開発する必要がなくなる。加えて、自己テストモジュール１６４および修復モジュール１６６をメモリハブ１４０上に置くことによって、メモリモジュール１３０は、メモリハブコントローラ１２８およびメモリ装置１４８間のメモリ要求および応答を効率的に経路設定するメモリハブの能力といった、メモリハブ１４０のメモリ取り扱い能力を利用する。これにより、メモリモジュール１３０は、自身をより一貫して即座にテストおよび修復することができる。
【００２８】
図２に示す自己テストモジュール１６４は、シーケンサ１６８を通じて直接メモリ装置１４８にアクセスする自己テストシステムを提供する。テストモジュール１６４は、自己テストモジュール１６４は、メモリモジュール１３０のメモリ装置１４８を試験するための数多くの組み込み自己テスト（ＢＩＳＴ）ルーチン（図示せず）を実行してもよい。自己テストルーチンは、論理回路またはプログラムされたプロセッサで実行されてもよい。自己テストルーチンは、自己テストモジュール１６４に記憶されてもよいし、メモリモジュール１３０の不揮発性メモリまたはその他の場所に記憶されてもよく、その後、必要に応じて、自己テストモジュール１６４にロードされる。自己テストルーチンは、一連のメモリ装置テストを実行し、不良メモリ箇所を識別する。例えば、あるルーチンは、メモリ装置１４８のメモリ箇所にデータを書き込み、その後、メモリ装置１４８からデータを読み出そうとしてもよい。メモリ箇所からの読み出したデータがメモリ箇所へ書き込まれたデータと一致しない場合には、メモリ箇所は不良であると判断される。自己テストルーチンは、すべてのメモリ箇所をテストして、不良かどうかを判断してもよく、その場合、エラータグが不良メモリ箇所に作成される。代わりに、自己テストルーチンは、メモリ箇所の４キロバイトのグループなどの、より大きなメモリ箇所をテストして、４キロバイトのメモリ箇所が不良かどうかを判断してもよい。
【００２９】
図２に示す実施形態において、シーケンサ１６８は、自己テストモジュール１６４に内蔵されている。シーケンサ１６８は、自己テストモジュール１６４がメモリ装置インターフェイス１５６を通じて各メモリ装置１４８にアクセスすることを可能にする。自己テストモジュール１６４の自己テストルーチンは、一連のメモリ要求をシーケンサ１６８に送ることによって実行される。シーケンサ１６８は、メモリ要求を、自己テストモジュール１６４から出力されたフォーマットから、メモリ装置１４８によって用いることが可能なフォーマットを有するメモリ要求に変換する。シーケンサ１６８は、再フォーマットされたメモリ要求をメモリ装置インターフェイス１５６に適用する。
【００３０】
自己テストモジュール１６４の自己テストルーチンの起動には、多くのやり方がある。図２に示すように、テスト信号１７０は自己テストモジュール１６４につながれて、自己テストモジュール１６４のテスト手順を起動する。この信号は、テスト手順がコンピュータシステムの電源投入時にいつも実行されるように、コンピュータシステム１００に電源が投入される度に与えられてもよい。また、電源投入検出回路（図示せず）が、メモリモジュール１３０上に設置されてもよく、コンピュータシステム１００に電源投入される度に、電源投入検出回路が電源投入を検出して、自己テストモジュール１６４の自己テストルーチンを起動するようにしてもよい。加えて、自己テストルーチンは、プロセッサ１０４がテスト信号１７０を提供することによって起動されてもよいし、高速リンク１３４から起動されてもよい。より特定的には、高速リンク１３４を用いて、自己テストモジュール１１６の自己テストルーチンを起動する信号を提供してもよい。テスト手順の起動は、本技術で一般的に理解される他の方法によって行われることもでき、上述のものに限らない。
【００３１】
メモリテストの結果を用いて、メモリ装置１４８の不良メモリ箇所を識別および好ましくは修復する。結果は、プロセッサ１０４またはコンピュータシステム１００の他のメモリアクセス装置に直接に報告されてもよい。図２に示すように、結果は、テスト結果リンク１７２Ａまたはリンクデータ出力１３４を介して送られてもよい。これにより、各メモリアクセス装置は、不良メモリ箇所を個別に扱うことができる。しかしながら、結果は、修復モジュール１６６によって、オンボードでメモリハブ１４０で用いられるのが好ましい。図２に示すように、結果は、テスト結果リンク１７２Ｂを介して、修復モジュール１６６に送られる。
【００３２】
メモリ装置１４８の不良メモリ箇所の識別は、組み合わされてエラーマップ１７４に記憶される。エラーマップ１７４は、自己テストモジュール１６４によって作成されてから、修復モジュール１６６に転送されてもよく、または、代わりに、エラーマップ１７４が修復モジュール１６６によって作成されるように、自己テストルーチンの結果を修復モジュール１６６に転送してもよい。好適な実施形態においては、エラーマップ１７４は修復モジュール１６６に記憶されるが、エラーマップ１７４は、自己テストモジュール１６４によって記憶およびアクセスされるか、またはメモリハブ１４０またはメモリ装置１４８などによって他の箇所に記憶されてもよい。エラーマップ１７４を記憶するために用いられるメモリの種類は、典型的には、不揮発性メモリである。不揮発性メモリに対するアクセスは、典型的には揮発性メモリに対するアクセスよりも遅いので、エラーマップ１７４は、不揮発性メモリに記憶されてから、揮発性メモリに転送されて、修復モジュール１６６によるより高速のアクセスが行われてもよい。
【００３３】
エラーマップ１７４は、メモリ装置１４８の各不良揮発性メモリ箇所についてのエラータグを含む。好ましくは、エラーマップ１７４は、不良揮発性メモリ部分にエラータグを関連付け、不良でない揮発性メモリ部分に非エラータグを関連付けることによって実施される。例えば、エラータグは、メモリ部分が不良であれば、０などの第１の論理値のタグビットであってもよく、非エラータグは、メモリ部分が不良でなければ、１などの第２の論理値のタグビットであってもよい。代わりに、エラーマップ１７４は、不良メモリ箇所のアドレスを単に含んでもよく、列挙されていないアドレスは不良でないとされる。
【００３４】
修復モジュール１６６は、メモリモジュール１３０上にあるメモリを用いて、メモリ装置１４８の不良メモリ箇所を再マッピングする。一旦メモリマップ１７４が作成されると、修復モジュール１６４は再マッピングテーブル１７６を作成する。再マッピングテーブル１７６は、メモリ装置１４８の各不良メモリ箇所を、不良でないとして知られるメモリ装置１４８の部分に向け直す。言い換えれば、メモリ装置１４８の各不良部分について、再マッピングテーブル１７６は、メモリ装置１４８の不良でない部分を示す指標を含む。不良メモリ箇所がマッピングされている箇所は、プロセッサ１０４によって直接アクセスできないように、メモリモジュール１３０のメモリ装置１４８の予備領域にあるのが好ましい。プロセッサ１０４による直接のアクセスから予備のメモリ領域を保護することによって、コンピュータシステム１００は、不良箇所がマッピングされメモリ箇所によって占められた箇所をプロセッサ１０４が上書きしてしまうと生じるであろうメモリアクセス衝突を防止する。再マッピングテーブル１７６は、不良メモリ箇所を、メモリハブ１４０上にあるキャッシュメモリおよびスクラッチメモリなどのメモリモジュール１３０上の他の不良でない箇所に向け直すことができる。
【００３５】
エラーマップ１７４と同様に、再マッピングテーブル１７６は、多くのメモリ箇所に記憶されてもよい。コンピュータシステム１００に電源が投入される度に再マッピングテーブルが再作成される場合には、再マッピングテーブル１７６はメモリ装置１４８にあってもよい。しかしながら、再マッピングテーブル１７６は、不揮発性メモリに記憶されてもよい。例えば、再マッピングテーブル１７６が周期的に作成されるだけである場合には、再マッピングテーブル１７６は不揮発性メモリに記憶されるのが好ましい。再マッピングテーブル１７６が不揮発性メモリに記憶される場合には、再マッピングテーブル１７６に対するアクセス時間は、テーブル１７６を揮発性メモリに転送することによって、増加することがある。図２に示すように、再マッピングテーブル１７６は、修復モジュール１６６上にあるメモリに記憶されるが、この箇所に限定されないものではない。再マッピングテーブル１７６は、メモリハブ１４０上の他のメモリにあってもよい。再マッピングテーブルは、メモリ装置１４８に格納されるのが好ましい。なぜならば、修復モジュール１６６またはメモリハブ１４０において利用可能なメモリ量は限られていることがあり、一方、メモリ装置１４８では、より多くの空間が利用可能であろうからである。再マッピングテーブル１７６がメモリ装置１４８に記憶される場合には、予備のメモリ領域に記憶されるのが好ましい。
【００３６】
エラーマップ１７４および再マッピングテーブル１７６がメモリ内の適切な箇所に記憶された後に、メモリモジュール１３０は、メモリ装置１４８に対するアクセスのためのメモリ要求を受信する準備が整う。メモリハブ１４０のリンクインターフェイス１５４は、メモリ装置１４８の１つ以上のアドレス指定された箇所に対するアクセスのための各メモリ要求をメモリハブコントローラ１２８から受信する。リンクインターフェイス１５４は、メモリハブ１４０のメモリコントローラ１５２にメモリ要求をつなぐ。メモリコントローラ１５２は、修復モジュール１６４にアクセスすることによって応答して、メモリのアドレス指定された箇所が不良かどうかをエラーマップ１７６から決定する。アドレス指定されたメモリ箇所が不良でないとエラーマップ１７６が示す場合には、メモリコントローラ１５２は、メモリ装置インターフェイス１５６を介して、単にメモリ要求をメモリ装置１４８のアドレス指定された箇所につなぐ。アドレス指定されたメモリ箇所が不良であるとエラーマップ１７６が示す場合には、メモリ修復モジュール１６４が再マッピングテーブル１７６にアクセスする。その後、メモリコントローラ１５２は、再マッピングテーブル１７６から決定された不良でないメモリ箇所にメモリ要求をつなぎ、メモリ装置インターフェイス１５６を介して、メモリ装置１４８にメモリ要求をつなぐ。その後、メモリ装置インターフェイス１５６は、メモリ要求によって要求された機能を実行する。例えば、メモリアクセス要求が、アドレス指定されたメモリ箇所からデータを読み出す要求であった場合には、メモリ装置インターフェイス１５６は、アドレス指定されたメモリ箇所がマッピングされた不良でないメモリ箇所からデータを読み出し、メモリハブ１４０は、高速リンク１３４を介して、データをメモリハブコントローラ１２８に返す。
【００３７】
図３は、図１のメモリハブ１４０の第２の実施形態である。本実施形態において、メモリハブ１４０は、図２の自己テストモジュール１６４と修復モジュール１６６とを含む。修復モジュール１６６は、同様に、エラーマップ１７４と、再マッピングテーブル１７６とを含む。簡潔化のために、そのような共通の構成要素には同一の参照番号が付されており、その動作説明は繰り返さない。
【００３８】
図３におけるメモリハブ１４０は、エラーマップ１７４のコピーであるエラーマップ１８０と、再マッピングテーブル１７６のコピーである再マッピングテーブル１８２とを含むメモリコントローラ１７８を用いる点で、図２に示すメモリハブ１４０と異なっている。また、図３のメモリハブ１４０は、メモリコントローラ１７８がシーケンサ１８４を含み、自己テストモジュール１６４が図２の実施形態で用いられたシーケンサ１６８を含まないという点でも、図２に示すメモリハブと異なっている。その結果、自己テストモジュール１６４は、図２のオンボードのシーケンサ１６８からメモリ装置１４８に対して直接アクセスしないが、その代わりに、メモリコントローラ１７８上にあるシーケンサ１８４を通じてメモリ装置にアクセスする。エラーマップ１８０および再マッピングテーブル１８２をメモリコントローラ１７８に置くことによって、メモリコントローラ１７８は、メモリ要求毎に修復モジュール１６４をアクセスする必要なく、不良メモリ箇所を識別および修復することが可能となる。メモリコントローラ１７８内のシーケンサ１８４を用いてメモリ装置１４８にアクセスすることによって、図３のメモリハブ１４０は、メモリコントローラ１７８の既存の昨日を用いてメモリ装置１４８にアクセスすることができる。
【００３９】
好ましくは、新たなマップ１７４およびテーブル１７６が作成されるたびに、メモリコントローラ１７８は、エラーマップ１７４および再マッピングテーブル１７６をメモリコントローラ１７８に転送する。代わりに、エラーマップ１７４および再マッピングテーブル１７６が、それぞれエラーマップ１８０および再マッピングテーブル１８２に送られる必要なく直接アクセス可能であるように、修復モジュール１６４をメモリコントローラ１７８に置いてもよい。図２および３に示す実施形態で用いた構成と異なるメモリハブ１４０の構成要素の構成を用いてもよい。
【００４０】
メモリ装置１４８の不良メモリ箇所のテストおよび修復の処理全体は、メモリハブコントローラ１２８、またはより特定的には、プロセッサ１０４および他のメモリアクセス装置には透過的である。その結果、ソフトウェアをプロセッサ１０４によって実行させるか、またはメモリハブコントローラ１２８の機能を修正して、メモリモジュール１３０のメモリ装置１４８と組み合わせて動作させるようにする必要はない。よって、メモリハブコントローラ１２８は、メモリ装置１４８をテストする必要も、不良メモリ箇所を修復する必要もないが、その代わりに、従来の方法でメモリハブ１４０と通信できる。
【００４１】
本発明を好適な実施形態を参照して説明してきたが、本発明の精神および範囲から逸脱せずに、形式および詳細を変更してもよいことを当業者は理解するであろう。したがって、本発明は、添付の請求項による以外は制限されない。
【図面の簡単な説明】
【００４２】
【図１】図１は、メモリハブが複数のメモリモジュールにそれぞれ含まれている、本発明の一実施形態のコンピュータシステムのブロック図である。
【図２】図２は、図１のコンピュータシステムに用いられるメモリモジュールの一実施形態のブロック図である。
【図３】図３は、図２のメモリモジュールに用いられるメモリハブの一実施形態のブロック図である。
【図１】
2005535978.tif 000003
【図２】
2005535978.tif 000004
【図３】
2005535978.tif 000005
【国際調査報告】
2005535978.tif 000006