(57)【要約】複数チャネルのメモリを有するコンピュータで使用するための書き込みまたは読み出し方法は、メモリ内の１つのチャネルにデータを書き込む、または、当該１つのチャネルからデータを読み出すことと、同時に並行して、データに対応するエラー訂正コードを、メモリ内の異なるチャネルに書き込む、または、当該異なるチャネルから読み出すことと、を含む。【選択図】なし【特許請求の範囲】
【請求項１】
データを複数チャネルのメモリモジュールに書き込むための方法であって、
複数のチャネルを有する前記メモリモジュールを提供することと、
第１のデータを前記メモリモジュールの第１のチャネルに書き込み、並行して同時に、前記第１のデータに対応する第１のエラー訂正コードを、前記メモリモジュールの第２のチャネルに書き込むことと、
第２のデータを前記第２のチャネルに書き込み、並行して同時に、前記第２のデータに対応する第２のエラー訂正コードを、前記メモリモジュールの第３のチャネルに書き込むことと、
を含む、方法。
【請求項２】
前記第３のチャネルは、前記第１のチャネルを含む、請求項１に記載の方法。
【請求項３】
前記メモリモジュールは、シリコン貫通電極ダイナミックランダムアクセスメモリモジュールである、請求項１に記載の方法。
【請求項４】
複数チャネルのメモリモジュールからデータを読み出すための方法であって、
複数のチャネルを有する前記メモリモジュールを提供することと、
前記メモリモジュールの第１のチャネルから第１のデータを読み出し、並行して同時に、前記メモリモジュールの第２のチャネルから第１のエラー訂正コードを読み出すことと、
前記メモリモジュールの前記第２のチャネルから第２のデータを読み出し、並行して同時に、前記メモリモジュールの第３のチャネルから、前記第２のデータに対応する第２のエラー訂正コードを読み出すことと、
を含む、方法。
【請求項５】
前記第３のチャネルは、前記第１のチャネルを含む、請求項４に記載の方法。
【請求項６】
前記メモリモジュールは、シリコン貫通電極ダイナミックランダムアクセスメモリモジュールである、請求項４に記載の方法。
【請求項７】
データを複数チャネルのメモリモジュールに書き込むための方法であって、
（ａ）ｍチャネルを含む前記メモリモジュールに対して、ｎ（０≦ｎ≦ｍ）の開始値を設定するステップであって、ｎおよびｍはゼロ以上の整数であり、ｍはｎよりも少なくとも１大きい、ステップと、
（ｂ）データＤＡＴｎを前記メモリモジュールのチャネルＣＨｎに書き込むステップと、
（ｃ）ｎ＝ｍ−１の場合に、同時に並行して、ＤＡＴｎに対応するエラー訂正コードＥＣＣｎを、前記メモリモジュールの別のチャネルＣＨ（ｓｔａｒｔ）に書き込むステップと、
（ｃ１）前記データの書き込みが完了した場合に、終了するステップと、
（ｃ２）前記データの書き込みが未完了である場合に、ｎを異なる開始値に再設定して、ステップ（ｂ）に戻るステップと、
（ｄ）ｎ≠ｍ−１の場合に、同時に並行して、ＤＡＴｎに対応するエラー訂正コードＥＣＣｎを、前記メモリモジュールの別のチャネルＣＨ（ｎ＋１）に書き込むステップと、
（ｅ）ｎ＝ｎ＋１をインクリメントするステップと、
（ｆ）ステップ（ｂ）に戻るステップと、
を含む、方法。
【請求項８】
前記メモリモジュールは、シリコン貫通電極ダイナミックランダムアクセスメモリモジュールである、請求項７に記載の方法。
【請求項９】
複数チャネルのメモリモジュールからデータを読み出すための方法であって、
（ａ）ｍチャネルを含む前記メモリモジュールに対して、０≦ｎ≦ｍを設定するステップであって、ｎおよびｍはゼロ以上の整数であり、ｍはｎよりも少なくとも１大きい、ステップと、
（ｂ）前記メモリモジュールのチャネルＣＨｎからデータＤＡＴｎを読み出すステップと、
（ｃ）ｎ＝ｍ−１の場合に、同時に並行して、前記メモリモジュールの別のチャネルＣＨ（０）から、ＤＡＴｎに対応するエラー訂正コードＥＣＣｎを読み出すステップと、
（ｃ１）前記データの読み出しが完了した場合に、終了するステップと、
（ｃ２）前記データの読み出しが未完了である場合に、ｎを異なる開始値に再設定して、ステップ（ｂ）に戻るステップと、
（ｄ）ｎ≠ｍ−１の場合に、同時に並行して、前記メモリモジュールの別のチャネルＣＨ（ｎ＋１）から、ＤＡＴｎに対応するエラー訂正コードＥＣＣｎを読み出すステップと、
（ｅ）ｎ＝ｎ＋１をインクリメントするステップと、
（ｆ）ステップ（ｂ）に戻るステップと、
を含む、方法。
【請求項１０】
前記メモリモジュールは、シリコン貫通電極ダイナミックランダムアクセスメモリモジュールである、請求項９に記載の方法。
【請求項１１】
コンピュータプログラム製品であって、
コンピュータ可読プログラムコードを有するコンピュータ可読記憶媒体を備え、前記コンピュータ可読プログラムコードは、データを、コンピュータ内の複数チャネルのメモリモジュールに書き込むためのものであって、前記コードは、
第１のデータをメモリモジュールの第１のチャネルに書き込み、並行して同時に、前記第１のデータに対応する第１のエラー訂正コードを、前記メモリモジュールの第２のチャネルに書き込むことと、
第２のデータを前記第２のチャネルに書き込み、並行して同時に、前記第２のデータに対応する第２のエラー訂正コードを、前記メモリモジュールの第３のチャネルに書き込むことと、
を含む、
コンピュータプログラム製品。
【請求項１２】
前記命令は、前記第１のデータを書き込むことと、前記第２のデータを書き込むこととを実行するように適合されたプロセッサによって実行される、請求項１１に記載のコンピュータ可読プログラム製品。
【請求項１３】
前記命令は、実行されると、集積回路を製造するように製造プロセッサを適合し、前記集積回路は、前記第１のデータを書き込むことと、前記第２のデータを書き込むこととを実行するように適合される、請求項１１に記載のコンピュータ可読プログラム製品。
【請求項１４】
前記命令は、ＧＤＳＩＩ、Ｖｅｒｉｌｏｇ、ＨＤＬ、ＲＴＬなどを含む、請求項１３に記載のコンピュータ可読プログラム製品。
【請求項１５】
コンピュータプログラム製品であって、
コンピュータ可読プログラムコードを有するコンピュータ可読記憶媒体を備え、前記コンピュータ可読プログラムコードは、コンピュータ内の複数チャネルのメモリモジュールからデータを読み出すためのものであって、前記コードは、
メモリモジュールの第１のチャネルから第１のデータを読み出し、並行して同時に、前記メモリモジュールの第２のチャネルから、第１のエラー訂正コードを読み出すことと、
前記メモリモジュールの前記第２のチャネルから第２のデータを読み出し、並行して同時に、前記メモリモジュールの第３のチャネルから前記第２のデータに対応する第２のエラー訂正コードを読み出すことと、
を含む、
コンピュータプログラム製品。
【請求項１６】
前記命令は、前記第１のデータを書き込むことと、前記第２のデータを書き込むこととを実行するように適合されたプロセッサによって実行される、請求項１５に記載のコンピュータ可読プログラム製品。
【請求項１７】
前記命令は、実行されると、集積回路を製造するように製造プロセッサを適合し、前記集積回路は、前記第１のデータを書き込むことと、前記第２のデータを書き込むこととを実行するように適合される、請求項１５に記載のコンピュータ可読プログラム製品。
【請求項１８】
前記命令は、ＧＤＳＩＩ、Ｖｅｒｉｌｏｇ、ＨＤＬ、ＲＴＬなどを含む、請求項１７に記載のコンピュータ可読プログラム製品。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、概して、メモリモジュールへの書き込み、および、メモリモジュールからの読み出し動作中に、デジタルメモリエラーの検出および訂正を提供および制御する方法に関し、より具体的には、メモリへの書き込み、および、メモリからの読み出し動作中に、エラー訂正動作を処理することに関する。
【背景技術】
【０００２】
コンピュータシステムは、例えば、ランダムアクセスメモリ（ＲＡＭ）、ダイナミックランダムアクセスメモリ（ＤＲＡＭ）、スタティックランダムアクセスメモリ（ＳＲＡＭ）などであるがこれらに限定されないメモリデバイスにおいて、データを操作および転送する。
【０００３】
ＤＲＡＭなどのエラー訂正コード（ＥＣＣ）メモリは、最も一般的な種類の内部データ破損を検出および訂正することができる。ＥＣＣメモリは、シングルビットエラーが事実上ない状態でメモリシステムを維持し、この場合には、例えば、シングルビットが誤った状態で記憶されているか、または、場合によっては誤った状態に変えられている場合であっても、各ワードからのデータ読み出しは、メモリに書き込まれているデータと常に同一である。
【０００４】
あるコンピュータシステムでは、システム内の高レベルのデータの完全性を有するメモリの大規模アレイに対する要件を満たすように設計されている。これらのシステムに対し、ＥＣＣを有する標準的なＤＲＡＭメモリは、多くの場合には、高コスト、設計制限および／またはメモリモジュール内のエラー訂正の使用不可などの制約によって、最良の選択ではない。
【０００５】
コンピュータシステム設計における別の問題は、例えば、デジタル通信ネットワークにわたる、または、コンピュータ内のメモリチャネルへのもしくはメモリチャネルからの、純ビットレート、チャネル容量または通信路の最大スループットを一般に定義する、チャネル帯域幅である。大量のデータを伝送および受信するためには、大きな帯域幅が望ましく、時には必要である。
【０００６】
コンピュータシステムで使用される現在利用可能なＤＲＡＭメモリは、エラー訂正コード能力を含むので、データパケットがネットワーク上で転送され、コンピュータで受信される場合には、当該コンピュータがデータの完全性を確実にするために、ＥＣＣを有するＤＲＡＭメモリを有する可能性が最も高くなる。しかしながら、上述したように、高い記憶容量および帯域幅を必要とする一部のコンピュータでは、ＴＳＶ−ＤＲＡＭメモリを使用することでより良好に機能される。当然のことながら、任意のコンピュータシステムに関して、何らかの形態のデータ訂正が、正確なデータ記憶および再現のために不可欠である。
【０００７】
高レベルのデータの完全性を必要とする一部のコンピュータシステムでは、メモリの大規模アレイに対するエラー検出および訂正の使用を必要とする。しかしながら、システム設計において、コスト、設計制限または利用可能性により、ＥＣＣロジックを有するＤＲＡＭを利用することができない場合には、データの完全性を確実にするために、他の方法が使用されなければならない。
【０００８】
標準ＤＲＡＭ−ＥＣＣメモリチップおよびロジック以外のものを使用するコンピュータシステムにおいてデータ訂正を実装する１つの方法は、メモリコントローラ内にＥＣＣロジックを実装し、データとエラー訂正コードとをＤＲＡＭモジュールに記憶することである。しかしながら、この方法では、あらゆる書き込みおよび読み出しにおいて、データを書き込むまたは読み出すための第１のアクセスと、ＥＣＣ値を書き込むまたは読み出すための第２のアクセスと、の２つのアクセスを必要とする。この二重の書き込み／読み出し要件は、事実上、ＤＲＡＭチャネルの帯域幅を半減させるという悪影響を及ぼす。
【発明の概要】
【発明が解決しようとする課題】
【０００９】
本発明の目的は、改善されたエラー訂正と、改善された帯域幅とを有するコンピュータシステムを提供することである。本発明の別の目的は、標準のＤＲＡＭ−ＥＣＣメモリチップおよびロジック以外のものを使用するコンピュータシステムにデータ訂正を実装するための改善された方法およびシステムを提供することである。本発明のさらに別の目的は、広帯域幅能力を維持するコンピュータシステムを提供することである。
【課題を解決するための手段】
【００１０】
一態様によれば、メモリの複数のチャネルを有するコンピュータで使用するための一般的な読み書き方法は、メモリの１つのチャネルへまたは当該１つのチャネルからデータを書き込むまたは読み出すことと、同時に並行して、前記メモリの異なるチャネルへまたは当該異なるチャネルから前記データに対応するエラー訂正コードを書き込むまたは読み出すことと、を含む。
【００１１】
一態様によれば、データをマルチチャネルメモリモジュールに書き込むための方法は、（ａ）ｍチャネルを含むマルチチャネルメモリモジュールに対して、０≦ｎ≦（ｍ−１）のｎの開始値を設定するステップであって、ｎおよびｍはゼロ以上の整数であり、ｍはｎよりも少なくとも１大きい、ステップと、（ｂ）データＤＡＴｎをメモリモジュールのチャネルＣＨｎに書き込むステップと、（ｃ）ｎ＝ｍ−１の場合に、同時に並行して、ＤＡＴｎに対応するエラー訂正コードＥＣＣｎを、メモリモジュールの別のチャネルＣＨ（ｓｔａｒｔ）に書き込むステップと、（ｃ１）データの書き込みが完了した場合に終了するステップと、（ｃ２）データの書き込みが未完了である場合に、ｎを異なる開始値に再設定して、ステップ（ｂ）に戻るステップと、（ｄ）ｎ≠ｍ−１の場合に、同時に並行して、ＤＡＴｎに対応するエラー訂正コードＥＣＣｎを、メモリモジュールの別のチャネルＣＨ（ｎ＋ｌ）に書き込むステップと、（ｅ）ｎ＝ｎ＋１をインクリメントする工程と、（ｆ）ステップ（ｂ）に戻るステップと、を含む。
【００１２】
一態様によれば、複数のチャネルメモリモジュールからデータを読み出すための方法は、（ａ）ｍチャネルを含むマルチチャネルメモリモジュールに対して、０≦ｎ≦（ｍ−１）を設定するステップであって、ｎおよびｍはゼロ以上の整数であり、ｍはｎよりも少なくとも１大きい、ステップと、（ｂ）メモリモジュールのチャネルＣＨｎからデータＤＡＴｎを読み出すステップと、（ｃ）ｎ＝ｍ−１の場合に、同時に並行して、メモリモジュールの別のチャネルＣＨ（０）から、ＤＡＴｎに対応するエラー訂正コードＥＣＣｎを読み出すステップと、（ｃ１）データの読み出しが完了した場合に終了するステップと、（ｃ２）データの読み出しが未完了である場合に、ｎを異なる開始値に再設定して、工程（ｂ）に戻るステップと、（ｄ）ｎ≠ｍ−１の場合に、同時に並行して、メモリモジュールの別のチャネルＣＨ（ｎ＋ｌ）から、ＤＡＴｎに対応するエラー訂正コードＥＣＣｎを読み出すステップと、（ｅ）ｎ＝ｎ＋１をインクリメントするステップと、（ｆ）ステップ（ｂ）に戻るステップと、を含む。
【００１３】
本発明の上記およびさらなる利点は、添付の図面と併せて以下の記載を参照することによってよりよく理解することができ、種々の図面における同様の番号は同様の構造要素および特徴を示している。図面は必ずしも縮尺通りではなく、むしろ本発明の原理を例示することに重点が置かれる。
【図面の簡単な説明】
【００１４】
【図１】従来のデジタルネットワークの図である。
【図２】本発明の原理による、ＴＳＶ−ＤＲＡＭマルチチャネルメモリモジュールの一部を表す図である。
【図３】本発明の原理による、マルチチャネルメモリへの書き込み動作中に、デジタルメモリエラー検出および訂正を制御するための方法の第１の好ましい書き込み実施形態のフローチャートである。
【図４】本発明の原理による、マルチチャネルメモリからの読み出し動作中に、デジタルメモリエラー検出および訂正を制御するための方法の第１の好ましい読み出し実施形態のフローチャートである。
【図５】本発明の原理による、マルチチャネルメモリへの書き込み動作中に、デジタルメモリエラー検出および訂正を制御するための方法の第２の好ましい書き込み実施形態のフローチャートである。
【図６】本発明の原理による、マルチチャネルメモリからの読み出し動作中に、デジタルメモリエラー検出および訂正を制御するための方法の第２の好ましい読み出し実施形態のフローチャートである。
【発明を実施するための形態】
【００１５】
図１は、コンピュータ２０を含む標準的なデジタル通信ネットワーク１０の図である。ネットワーク１０は、インターネット、イーサネット（登録商標）またはローカルエリアネットワークＬＡＮなどの任意のデジタル通信ネットワークを表す。ネットワーク１０に接続されているコンピュータ２０の各々は、ＲＡＭ、ＤＲＡＭ、ＳＲＡＭ、ＴＳＶ−ＤＲＡＭなどの何らかの種類のメモリを有する。
【００１６】
（エラー訂正コードを含まない）ＤＲＡＭメモリなどの増加した帯域幅を有するメモリの大規模アレイで使用するためのコンピュータシステムおよび方法は、図２〜６と併せて以下に説明される。図２では、複数のメモリチャネル６０，６２，６４，６６を有するＤＲＡＭメモリモジュール７０の一部が示されている。４つのメモリチャネルのみが図示されているが、実際には、メモリモジュール７０は、８個、１６個、３２個、または、設計または特定のアプリケーション制限によってのみ制限された任意の数のメモリチャネルを有してもよい。エラー訂正コードは、ＥＣＣ０，ＥＣＣ１，ＥＣＣ２，ＥＣＣ３に分類されている。ペイロードまたはデータ領域は、ＤＡＴ０，ＤＡＴ１，ＤＡＴ２，ＤＡＴ３に分類されている。ＤＲＡＭメモリモジュール７０は、ダイスタックメモリを含んでもよく、一実施形態では、シリコン貫通電極（ＴＳＶ）の使用によって、積層されたメモリダイ間の通信を可能にし得る。例示的な実施形態では、かかるダイスタックＤＲＡＭメモリは、ＴＳＶ−ＤＲＡＭと称されるが、他のＤＲＡＭメモリが採用されてもよい。
【００１７】
図３は、マルチチャネルメモリへの書き込み動作中に、デジタルメモリエラー検出および訂正を制御するための方法の第１の好ましい書き込み実施形態のフローチャートである。本実施例では、ｎおよびｍは０を含む整数値であり、ｍは、ＴＳＶ−ＤＲＡＭメモリモジュールなどのメモリデバイスのメモリチャネルの数に等しく、ｎは、０に等しく初期設定されている。ｎ＝０およびｍ＝３について図２と併せてこの方法を使用する場合、３つのメモリチャネルがあり、デフォルト開始値はｎ＝０である。
【００１８】
第１のデータＤＡＴ０は、対応する第１のエラー訂正コードＥＣＣ０を有し、第２のデータＤＡＴ１は、対応する第２のエラー訂正コードＥＣＣ１を有し、第３のデータＤＡＴ２は、対応する第３のエラー訂正コードＥＣＣ２を有し、第４のデータＤＡＴ３は、対応する第４のエラー訂正コードＥＣＣ３を有する。第１のデータＤＡＴ０は、第１のチャネル６０（ＣＨ０）に書き込まれ、第１のエラー訂正コードＥＣＣ１は、第２のチャネル６２（ＣＨ１）に書き込まれることに留意されたい。同様に、第２のデータＤＡＴ１は、第２のチャネル６２（ＣＨ１）に書き込まれ、第２のエラー訂正コードＥＣＣ１は、第３のチャネル６４（ＣＨ２）に書き込まれ、第３のデータＤＡＴ２は、第３のチャネル６６（ＣＨ２）に書き込まれ、第３のエラー訂正コードＥＣＣ２は、第４のチャネル６８（ＣＨ３）に書き込まれる。最後に、第４のデータＤＡＴ３は、第４のチャネル６８（ＣＨ３）に書き込まれ、第４のエラー訂正コードＥＣＣ３は、第１のチャネル６０（ＣＨ０）に書き込まれる。
【００１９】
図３では、ｎ＝０のデフォルト値で開始するデータを書き込むことに関する。データを書き込むためのデフォルト開始値ｎ＝０は、第１のチャネルＣＨ（０）に対応して、ステップ１００において選択される。ステップ１０２において、ＤＡＴｎは、チャネルＣＨ（ｎ）に書き込まれ、次いで、ＤＡＴｎに対応するエラー訂正コードは、並行して同時に、別のチャネルＣＨ（ｎ＋１）に書き込まれる（ステップ１０４）。ステップ１０６は、書き込みプロセスが完了したかどうかをクエリする。ステップ１０６で「はい」の場合には、プロセスはステップ１１２において終了する。ステップ１０６で「いいえ」の場合には、ステップ１０８において、ｎ＝ｍ−１であるかどうかを判別する。ｎがｍ−１に等しい場合には、プロセスは、ステップ１００に戻り、当該ステップにおいてｎは０に初期化される。ｎがｍ−１に等しくない場合には、ｎは、ステップ１１０においてインクリメントされ、書き込みプロセスは、ステップ１０２に移行する。
【００２０】
図４は、マルチチャネルメモリへの読み出し動作中に、デジタルメモリエラー検出および訂正を制御するための方法の第１の好ましい読み出し実施形態のフローチャートである。データを読み出すための開始値は、第１のチャネルＣＨ（０）に対応するｎ＝０として、ステップ１５０において選択される。ステップ１５２において、ＤＡＴｎは、チャネルＣＨ（ｎ）から読み出され、次いで、ＤＡＴｎに対応するエラー訂正コードが、並行して同時に、別のチャネルＣＨ（ｎ＋１）から読み出される（ステップ１５４）。ステップ１５６は、読み出しプロセスが完了したかどうかをクエリする。ステップ１５６で「はい」の場合には、プロセスはステップ１６２において終了する。ステップ１５６で「いいえ」の場合には、ステップ１５８において、ｎ＝ｍ−１であるかどうかを判別する。ｎがｍ−１に等しい場合には、プロセスは、ステップ１５０に戻り、当該ステップにおいてｎは０に初期化される。ｎがｍ−１に等しくない場合には、ｎは、ステップ１６０においてインクリメントされ、読み出しプロセスは、ステップ１５２に移行する。
【００２１】
書き込み動作中に、デジタルメモリエラー検出および訂正を制御するための第２の書き込み実施形態が、図５のフローチャートによって概説される。多くの場合、摩耗を防止するため、帯域幅を改善するため、かつ、より良好なデータ編成のために、メモリ内の異なるチャネルにおいて書き込みを開始することが有益となり得る。図５において、メモリのｍ−１チャネルを有するマルチチャネルメモリモジュールを有しており、ここでｎは、任意の開始値「ｓｔａｒｔ」に等しく、ｓｔａｒｔ≠０で開始する。メモリに書き込みするための開始値ｎは、ｎに対するデフォルト開始値が常に０である図３の書き込みプロセスとは対照的に、各書き込みサイクルで変化する。
【００２２】
ステップ２００は、開始値ｓｔａｒｔ＝ｎ（０≦ｎ≦（ｍ−１））を設定し、ここでｎおよびｍは０以上の整数値であり、ｍは、ｎよりも少なくとも１大きい。ステップ２０２において、ＤＡＴｎは、メモリチャネルＣＨ（ｎ）に書き込まれる。ｎがｍ−１に等しいかどうかが、ステップ２０４において判別される。ステップ２０４において「はい」の場合には、ＤＡＴｎに対応するエラー訂正コードＥＣＣｎは、同時に並行して、ステップ２０６において、チャネルＣＨ（ｓｔａｒｔ）に書き込まれ、ここでｓｔａｒｔは、この書き込みサイクルに対するｎの初期値である。ステップ２０４において「いいえ」の場合には、エラー訂正コードは、ステップ２０８において、チャネルＣＨ（ｎ＋１）に書き込まれる。工程２０２，２０４，２０６，２０８の動作は、フローチャート上で順次行われるように見えるが、実際には、これらの動作が同時に行われ、任意の所与の書き込み動作中に、２つの別々のチャネルへの同時並行の書き込みが行われるように、アルゴリズムが構築されることに留意されたい。書き込み動作の一部は、データを１つのチャネルに書き込み、同一の書き込み動作の他の部分が同時に、そのデータに対応するＥＣＣコードを別のチャネルに書き込む。
【００２３】
ステップ２０６においてＥＣＣｎがＣＨ（ｓｔａｒｔ）に書き込まれた場合に、ステップ２１０おいて、書き込み動作が完了したかを判別する。ステップ２１０において「はい」の場合、プロセスは、ステップ２１４において終了する。ステップ２１０において、書き込み動作が未完了である場合（「いいえ」の場合）には、ｎは、ステップ２１６において、別の任意または所定の開始値に再設定され、書き込みプロセスは、ステップ２０２に移行する。ステップ２０８において、ＥＣＣｎが、同時に並行して、ＣＨ（ｎ＋１）に書き込まれた場合には、ｎは、ステップ２１８において、インクリメントされ、書き込み動作は同様に、ステップ２０２に移行する。
【００２４】
各追加の書き込みシーケンスに対するｎの開始値「ｓｔａｒｔ」の変化は、開始値が書き込みサイクル間で変化する限り、任意であってもよいし、特定のアルゴリズムまたはパターンに従った特定のシーケンスに従ってもよい。一般的に、ｎの開始値を変更する理由は、メモリチャネルのより均等な使用を提供すると同時に、チャネル帯域幅を維持および拡大するためである。単一のチャネル帯域幅と比較して、複数のチャネル帯域幅の使用は、メモリへ／からのデータの転送の改善された通信速度を提供する。
【００２５】
読み出し動作中に、デジタルメモリエラー検出および訂正を制御するための第２の読み出し実施形態が、図６のフローチャートによって概説される。ここでも同様に、メモリのｍ−１チャネルを有するマルチチャネルメモリモジュールを有しており、ここでｎは、開始値「ｓｔａｒｔ」に等しく、ｓｔａｒｔ≠０で開始する。メモリから読み出すための開始値ｎは、ｎに対するデフォルト開始値が常に０である図４の読み出しプロセスとは対照的に、各読み出しサイクルで変化する。
【００２６】
ステップ２５０は、開始値ｓｔａｒｔ＝ｎ（０≦ｎ≦（ｍ−１））を設定し、ここでｎおよびｍは、０以上の整数値であり、ｍは、ｎよりも少なくとも１大きい。ステップ２５２において、ＤＡＴｎは、メモリチャネルＣＨ（ｎ）から読み出される。ｎがｍ−１に等しいかどうかが、ステップ２５４において判別される。ステップ２５４において「はい」の場合には、ＤＡＴｎに対応するエラー訂正コードＥＣＣｎは、同時に並行して、ステップ２５６において、チャネルＣＨ（ｓｔａｒｔ）から読み出され、ここで「ｓｔａｒｔ」は、この読み出しサイクルに対するｎの初期値である。ステップ２５４において「いいえ」の場合には、エラー訂正コードは、同時に並行して、ステップ２５８において、チャネルＣＨ（ｎ＋１）から読み出される。ステップ２５２，２５４，２５６，２５８の動作がフローチャート上で順次行われるように見えるが、実際には、これらの動作が同時に生じ、任意の所与の読み出し動作中に、２つの別々のチャネルからの同時並行な読み出しが行われるように、アルゴリズムが構築されることに留意されたい。読み出し動作の一部は、データを１つのチャネルに読み出し、同一の読み出し動作の他の部分が同時に、そのデータに対応するＥＣＣコードを別のチャネルから読み出す。
【００２７】
ステップ２５６においてＥＣＣｎがＣＨ（ｓｔａｒｔ）から読み出された場合には、ステップ２６０において、読み出し動作が完了したかを判別する。ステップ２５４において「いいえ」の場合には、ｎは、ステップ２６８においてｎ＝ｎ＋１にインクリメントされ、読み出しプロセスは、ステップ２５２に移行する。ステップ２６０において読み出し動作が完了したと見なされた場合（ステップ２６０において「はい」の場合）には、プロセスは、ステップ２６４において終了する。ステップ２５８においてＥＣＣｎがＣＨ（ｎ＋１）から読み出された場合には、ｎは、ステップ２６８においてインクリメントされ、読み出し動作は、ステップ２５２に移行する。
【００２８】
上記の書き込み動作と同様に、各追加の読み出しシーケンスに対するｎの開始値の変化は、開始値が各読み出しサイクルで変化する限り、任意であってもよいし、所定のアルゴリズムに従った特定のシーケンスに従ってもよい。この場合も同様に、ｎの開始値を変更する理由は、メモリチャネルのより均等な使用を提供すると同時に、チャネル帯域幅を維持および拡大するためである。単一のチャネル帯域幅と比較して、複数のチャネル帯域幅の使用は、メモリへ／からのデータの転送の通信速度を改善する。
【００２９】
本発明は、プロセッサの一部をなし得るメモリコントローラ（例えば、ＣＰＵ、ＧＰＵ、ＤＳＰ、ＦＰＧＡなど）に統合され得る。また、本発明の態様は、コンピュータ可読コードに統合され得る。場合によっては、そのコンピュータ可読コードは、本明細書に記載される方法および動作を実施するために、プロセッサによって実行可能であってもよい。ＧＤＳＩＩ、ＲＴＬなどのコードは、実行されたときに、本発明の態様を統合する集積回路（プロセッサまたはメモリなど）を製造するための製造施設（半導体製造施設など）を構成するように利用され得る。
【００３０】
本発明が特定の実施形態を参照して図示および記載されてきたが、本明細書の方法は、任意の既知のコンピュータシステムまたは複数のチャネルメモリのタイプに適用され、本発明の範囲から逸脱することなく、形態および詳細の種々の変更がその中で行われ得ることが、当業者によって理解されるべきである。
【図１】
2015531509.tif 000002
【図２】
2015531509.tif 000003
【図３】
2015531509.tif 000004
【図４】
2015531509.tif 000005
【図５】
2015531509.tif 000006
【図６】
2015531509.tif 000007
【国際調査報告】
2015531509.tif 000008
2015531509.tif 000009
2015531509.tif 000010
2015531509.tif 000011