(57)【要約】【課題】メモリ・システム内のビットの効率的かつ選択的スペアリングを提供する。【解決手段】データを格納するためのメモリ・システムが開示され、このメモリ・システムは、データを格納するように構成された複数のメモリ・デバイスであって、各メモリ・デバイスが複数のビットを含み、これらのメモリ・デバイスが、ランクとして連携して要求に応答するように構成され、関連付けられる、メモリ・デバイスと、複数のメモリ・デバイスに関連付けられ、コマンドおよび制御信号を複数のメモリ・デバイスに出力するように構成されたメモリ制御回路と、動作においてビット・エラーを検出するための検出器と、検出器がビット・エラーを検出したことに応答して、ビット・エラーをスペア・ビット・レーンに再マッピングするためのコントローラとを含む。【選択図】図７
2021510897.tif 000002
【特許請求の範囲】
【請求項１】
データを格納するためのメモリ・システムであって、
データを格納するように構成された複数のメモリ・デバイスであって、各メモリ・デバイスが複数のビットを含み、前記メモリ・デバイスが連携して要求に応答するように構成され、関連付けられている、前記複数のメモリ・デバイスと、
前記複数のメモリ・デバイスに関連付けられ、コマンドおよび制御信号を前記複数のメモリ・デバイスに出力するように構成されたメモリ制御回路と、
動作中にビット・エラーを検出するための検出器と、
前記検出器が前記ビット・エラーを検出したことに応答して、前記ビット・エラーをスペア・ビット・レーンに再マッピングするためのコントローラと
を備えている、メモリ・システム。
【請求項２】
前記検出器、コントローラ、およびメモリ制御回路が同じチップ上にある、請求項１に記載のメモリ・システム。
【請求項３】
前記複数のメモリ・デバイスがデュアル・インライン・メモリ・モジュール（ＤＩＭＭ）上にあり、前記メモリ制御回路が前記ＤＩＭＭ上にあり、前記ＤＩＭＭが複数のデータ・バッファ回路をさらに備えている、請求項１に記載のメモリ・システム。
【請求項４】
前記ＤＩＭＭが複数のメモリ・デバイスを備えており、前記メモリ・デバイスの第１のサブセットが第１のランクを形成し、メモリ・デバイスの第２のサブセットが第２のランクを形成し、さらに、データを格納するためにランクごとに３２ビットが使用される、請求項３に記載のメモリ・システム。
【請求項５】
少なくとも１つのビット・レーンが前記ビット・エラーの再マッピングに使用される、請求項４に記載のメモリ・システム。
【請求項６】
前記スペア・ビットに再び書き込まれる情報が、前記エラーが検出された前記ビットの前記データと、前記エラーが検出された前記ビットの位置と、前記エラーが検出された前記ビットの前記スペア・ビットおよび前記位置のエラー訂正符号とを含んでいる、請求項４に記載のメモリ・システム。
【請求項７】
ビット・エラーを再マッピングするために、前記複数のメモリ・デバイスが複数のスペア・ビット・レーンを提供する、請求項１に記載のメモリ・システム。
【請求項８】
前記メモリ制御回路が、前記スペア・ビット・レーン内の前記スペア・ビットの前記データ、および前記スペア・ビット・レーン内の位置情報を読み取って、前記スペア・ビット・レーン内の前記スペア・ビットの前記データをどこで使用するべきかを識別するように構成されている、請求項１に記載のメモリ・システム。
【請求項９】
データを格納するためのメモリ・システムであって、
データを格納するように構成された複数のメモリ・デバイスであって、各メモリ・デバイスが複数のビットを含み、前記メモリ・デバイスが連携して動作を実行するように構成され、関連付けられている、前記複数のメモリ・デバイスと、
前記複数のメモリ・デバイスに関連付けられ、信号を前記複数のメモリ・デバイスに出力するように構成されたメモリ制御回路であって、（ｉ）動作中に欠陥ビットを検出すること、（ｉｉ）データを前記欠陥ビットから単一のスペア・ビット・レーンに再び書き込むこと、および（ｉｉｉ）前記欠陥ビットに関する前記スペア・ビット・レーンに再び書き込まれた前記データを読み取ることを実行するように構成された論理回路を含んでいる、前記メモリ制御回路と
を備えている、メモリ・システム。
【請求項１０】
前記メモリ制御回路が、前記欠陥ビットの位置アドレスを前記スペア・ビット・レーンに書き込むように構成されている、請求項９に記載のメモリ・システム。
【請求項１１】
前記スペア・ビット・レーンに書き込まれた前記データおよび位置情報のＥＣＣをさらに含んでいる、請求項９に記載のメモリ・システム。
【請求項１２】
メモリ・サブシステム内のビット・エラーを管理するための方法であって、
第１の動作において複数のメモリ・デバイス内の第１のメモリ・ビット位置でエラーを検出することと、
前記第１のエラーが検出された前記メモリ・ビット位置に格納されるデータをスペア・ビット・レーンに再マッピングすることと
を含んでいる、方法。
【請求項１３】
前記第１のエラーが検出された前記メモリ・ビット位置に格納されるデータが、前記スペア・ビット・レーン内のスペア・ビットに再マッピングされる、請求項１２に記載の方法。
【請求項１４】
前記再マッピングすることが、前記検出されたビット・エラーの前記位置を識別する位置情報および前記スペア・ビットのエラー訂正符号を前記スペア・ビット・レーンに格納することを含んでいる、請求項１２に記載の方法。
【請求項１５】
第１の動作における単一のエラーが単一のビット・レーンに書き込まれる、請求項１２に記載の方法。
【請求項１６】
第１の動作が読み取り動作であり、前記読み取り動作中にエラーが検出され、前記方法が、メモリ・コントローラが、前記スペア・ビット・レーン内の情報を、前記スペア・ビット・レーンに含まれている位置情報によって識別された前記メモリ・ビット位置に書き込む、書き込み動作を実行することをさらに含んでいる、請求項１２に記載の方法。
【請求項１７】
読み取り動作中に有効なデータが前記スペア・ビット・レーンから読み取られ、前記有効なデータが、１ビットのデータ、前記１ビットのデータに関する１つまたは複数のビットの位置情報、ならびにデータ・ビットおよび位置ビットを保護する１つまたは複数のビットのエラー訂正符号を含んでいる、請求項１２に記載の方法。
【請求項１８】
読み取り動作中に有効なデータが前記スペア・ビット・レーンから読み取られ、前記有効なデータが１つのスペア・ビットを含んでおり、元のスペアリングされていないデータを再構築するために、前記スペア・ビットが、前記スペア・ビット・レーンに格納された位置情報を使用して、メモリ・コントローラによって前記読み取られたデータに再マッピングされる、請求項１２に記載の方法。
【請求項１９】
異なる動作においてビット・メモリ位置で第２のエラーを検出することであって、前記第２のエラーが前記第１のビット・エラーと同じメモリ・ビット位置および異なるメモリ・ビット位置から成るグループのうちの少なくとも１つに発生する、検出することと、
その異なる動作において、前記第２のエラーが検出された前記メモリ・ビット位置に格納される前記データを単一のスペア・ビット・レーンに再マッピングすることと
をさらに含んでいる、請求項１２に記載の方法。
【請求項２０】
複数のメモリ・デバイスを提供することをさらに含んでおり、複数のビットが、データを格納するように構成されており、複数のビットがエラー訂正符号用であり、少なくとも１つのビットがエラー訂正を管理するためにある、請求項１２に記載の方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、コンピュータのアーキテクチャ、処理、およびメモリ・システムに関しており、より詳細には、メモリ・システム／サブシステム内のビットの効率的かつ選択的スペアリングを含む、回復可能性、可用性、および保守性（ＲＡＳ：Recoverability, Availability and Serviceability）の必要性に関している。
【背景技術】
【０００２】
情報技術の最近の進歩および情報を格納して処理するためのインターネットの幅広い使用に伴って、コンピューティング・システムによる情報の取得、処理、格納、および普及に対する要求が、ますます高まっている。コンピューティング・システムは、ビジネス、個人的利用、および娯楽のためのますます複雑化するアプリケーションをコンピュータが実行できる速度を向上させるように、開発されている。コンピュータ・システムの全体的性能は、プロセッサ、メモリ・キャシュ、入出力（Ｉ／Ｏ：input/output）サブシステムの性能／構造、メモリ制御機能の効率、メモリ・デバイスとメモリ・システムの性能、および関連するメモリ・インターフェイス要素、ならびにメモリ相互接続インターフェイスの種類および構造を含む、コンピュータ構造の主要な要素の各々による影響を受ける。
【０００３】
ますます複雑化するアプリケーションを実行するプロセッサの速度の絶え間ない向上は、アプリケーションの動作中にデータが何度も格納され、アクセスされ、更新されるメモリ・サブシステムを含む、コンピュータ内の他のサブシステムのすべてに対して、より厳しい性能の要求を課す。メモリの読み取り動作／書き込み動作によって消費される時間は、コンピュータ・システムの最終的な速度および効率における主要な要因である。ほとんどのコンピュータのメモリ・サブシステムは、通常、メモリ・コントローラによって操作される。メモリ・コントローラの役割は、コンピュータのメモリ・サブシステムと１つまたは複数のプロセッサの間で、できるだけ高速かつ効率的にデータを移動することである。多くのメモリ・サブシステムでは、メモリ・コントローラは、複数のメモリ・デバイスを制御することができる。メモリ・デバイスは、ランクまたはチャネルあるいはその両方に配置されることがある。コンピュータのメモリ・サブシステムは、多くの場合、メモリ・モジュール（通常は、複数のメモリ・デバイス（例えば、ダイナミック・ランダム・アクセス・メモリ（ＤＲＡＭ：dynamic random access memory）デバイス）を含んでいる１つまたは複数のデュアル・インライン・メモリ・モジュール（ＤＩＭＭ：dual in-line memory modules））を備えている。ＤＩＭＭは、メモリ・デバイスの１つまたは複数のランクおよびチャネルを含むことがある。
【０００４】
計算要求は、ますます速いアクセス速度で、増大する数のより高密度のメモリ・デバイスにアクセスする能力を必要とする。メモリ・システム／サブシステムの設計または構造あるいはその両方およびメモリ・システム／サブシステムが動作する方法を改善することによって、システム性能全体を最大化するように、改良された解決策または革新的解決策あるいはその両方を作り出すために、産業界による広範囲な研究および開発の取り組みへの投資が行われた。そのような取り組みは、メモリ性能の向上を実現する、分散メモリ・システム、分散バッファ・メモリ・システム、レジスタードＤＩＭＭ（ＲＤＩＭＭ：registered DIMM）、ロード・リデューストＤＩＭＭ（ＬＲＤＩＭＭ：load reduced DIMM）、ならびにその他のシステム、仕様、および規格（例えば、ＤＤＲ４およびＤＤＲ５など）の開発をもたらした。
【０００５】
１つの例では、分散メモリ・システムは、複数のメモリ・デバイス、１つまたは複数のアドレス・チップ（ＡＣ：Address Chips）（メモリ制御回路とも呼ばれる）、および複数のデータ回路（データ・バッファ回路またはＤＣチップ（ＤＣ：DC chips）とも呼ばれる）を含むことがある。ホスト・プロセッサと、メモリ制御回路およびデータ・バッファ回路との間には、通信リンクまたは通信バスが存在する。メモリ制御回路とデータ・バッファ回路の間にも、通信リンクまたは通信バスが存在する。メモリ・デバイス（例えば、ＤＲＡＭ）と、メモリ制御回路およびデータ・バッファ回路との間にも、通信リンクが存在する。通信リンクに対する帯域幅制限が、メモリ・システムの性能に影響を与える可能性がある。
【０００６】
メモリ・システムの性能（例えば、速度および容量）が向上するにつれて、回復可能性、可用性、および保守性（ＲＡＳ）も重要な検討事項になる。ハイエンドのサーバまたはメインフレーム・コンピュータのＲＡＳの必要性は、ローエンドのパーソナル・コンピュータとは非常に異なっている。信頼性を向上させるため、およびコンピュータの故障のリスクを防ぐか、または少なくとも低くするために、さまざまな形態のエラー検出プロセスおよびエラー修正プロセスが開発された。エラー検出に一般的に使用される１つのシステムは、エラーを検出するためのパリティ・ビットの使用である。パリティ・ビットのチェックは、シングルビット・エラーを決定するよう機能するが、マルチビット・エラーを決定するのに常に役立つとは限らず、パリティ・チェック・システムには、データ・エラーを修正するためのメカニズムがない。
【発明の概要】
【発明が解決しようとする課題】
【０００７】
したがって、当技術分野において、前述の問題に対処する必要がある。
【課題を解決するための手段】
【０００８】
データを格納およびフェッチするメモリ・システム、アーキテクチャ構造、および方法の理解を助けるために、本開示または本発明を制限するよう意図せずに、本開示の概要が提供される。本開示は、当業者を対象にする。本開示のさまざまな態様および特徴が、一部の例では個別に、または他の例では本開示の他の態様および特徴と組み合わせて、有利に使用されてよいということが、理解されるべきである。したがって、さまざまな効果を実現するためのメモリ・システム、アーキテクチャ構造、および動作方法に対する変形および変更が行われてよい。
【０００９】
１つの実施形態では、データを格納するためのメモリ・システムが開示され、このメモリ・システムは、データを格納するように構成された複数のメモリ・デバイスであって、各メモリ・デバイスが複数のビットを含み、これらのメモリ・デバイスが、好ましくはランクとして連携して要求に応答するように構成され、関連付けられる、メモリ・デバイスと、複数のメモリ・デバイスに関連付けられ、コマンドおよび制御信号を複数のメモリ・デバイスに出力するように構成されたメモリ制御回路と、動作においてビット・エラーを検出するための検出器と、検出器がビット・エラーを検出したことに応答して、ビット・エラーをスペア・ビット・レーンに再マッピングするためのコントローラとを含む。
【００１０】
別の実施形態では、データを格納するためのメモリ・システムが開示され、このメモリ・システムは、データを格納するように構成された複数のメモリ・デバイスであって、各メモリ・デバイスが複数のビットを含み、これらのメモリ・デバイスが、連携して動作するように構成され、関連付けられる、メモリ・デバイスと、複数のメモリ・デバイスに関連付けられ、信号を複数のメモリ・デバイスに出力するように構成されたメモリ制御回路であって、（ｉ）動作中に欠陥ビットを検出すること、（ｉｉ）データを欠陥ビットから、一実施形態では、単一のスペア・ビット・レーンに再び書き込むこと、および（ｉｉｉ）欠陥ビットに関するスペア・ビット・レーンに再び書き込まれたデータを読み取ることを実行するように構成された論理回路を含んでいる、メモリ制御回路とを含む。１つの態様では、メモリ制御回路は、欠陥ビットの位置をスペア・ビット・レーンに書き込むように構成されたメモリ・コントローラを含み、さらに別の態様では、データおよび位置情報のＥＣＣが、スペア・ビット・レーンに書き込まれてよい。
【００１１】
メモリ・サブシステム内のビット・エラーを管理するための方法も開示され、この方法は、第１の動作において複数のメモリ・デバイス内の第１のメモリ・ビット位置でエラーを検出することと、第１のエラーが検出されたメモリ・ビット位置に格納されるデータをスペア・ビット・レーンに再マッピングすることとを含む。１つの態様では、第１のエラーが検出されたメモリ・ビット位置に格納されるデータは、スペア・ビット・レーン内のスペア・ビットに再マッピングされる。この再マッピングは、検出されたビット・エラーの位置を識別する位置情報およびスペア・ビットのエラー訂正符号をスペア・ビット・レーンに格納することを含んでよい。１つの態様では、第１の動作が読み取り動作であり、読み取り動作中にエラーが検出された場合、この方法は、システム（好ましくは、メモリ・コントローラ）が、エラーが検出されたビット位置からスペア・ビット・レーンに情報／データを書き込む、書き込み動作を実行することをさらに含む。別の態様では、この方法は、読み取り動作を含み、１ビットのデータ、この１ビットのデータに関する１つまたは複数のビットの位置情報、ならびにデータ・ビットおよび位置ビットを保護する１つまたは複数のビットのエラー訂正符号を含んでいる有効なデータが、スペア・ビット・レーンから読み取られる。別の態様では、この方法は、読み取り動作を含み、１つのスペア・ビットを含んでいる有効なデータがスペア・ビット・レーンから読み取られ、元のスペアリングされていないデータを再構築するために、このビットが、スペア・ビット・レーンに格納された位置情報を使用して、システム（好ましくは、メモリ・コントローラ）によって読み取られたデータに再マッピングされる。さらに別の態様では、欠陥ビットをスペア・ビット・レーンに再マッピングした後、およびシステムまたはプロセスがスペア・ビットを読み出した後に、システムが、必要に応じてデータを修復できる。
【００１２】
メモリ・システム、アーキテクチャ構造、および動作方法のさまざまな態様、特徴、および実施形態は、提供された図面と併せて読んだ場合に、よく理解されるであろう。各図では、メモリ・システム、アーキテクチャ構造、および動作方法の態様、特徴、またはさまざまな実施形態、あるいはその組み合わせを示す目的で、実施形態が提供されているが、特許請求の範囲は、示された正確な配置、構造、特徴、態様、実施形態、またはデバイスに限定されるべきではなく、示された配置、構造、部分組み立て品、特徴、態様、実施形態、方法、およびデバイスは、単独で使用されるか、または他の配置、構造、部分組み立て品、特徴、態様、実施形態、方法、およびデバイスと組み合わせて使用されてよい。
【図面の簡単な説明】
【００１３】
【図１】一般的なコンピューティング・システムまたはデータ処理システムを示す図である。
【図２】一実施形態に従って、メモリ・サブシステムを含んでいるコンピューティング・システムまたは処理システムを示す図である。
【図３】一実施形態に従って、バッファ付きＤＩＭＭを含んでいるメモリ・サブシステムを示す図である。
【図４】別の実施形態に従って、デュアル・チャネルＤＩＭＭを示す図である。
【図５】一実施形態に従って、スペア・ビット・レーンに再び書き込まれる動作におけるビット故障の図式表現を示す図である。
【図６】一実施形態に従って、スペア・ビット・レーンに再び書き込まれる異なるその後の動作における異なるビット故障の図式表現を示す図である。
【図７】メモリの動作において失敗したビットを管理する方法のフロー図である。
【発明を実施するための形態】
【００１４】
以下の説明は、本発明の一般的原理を説明するために行われるのであり、本明細書において請求される本発明の概念を制限するように意図されていない。以下の詳細な説明では、メモリ・システム、アーキテクチャ構造、および動作方法を理解できるようにするために、多くの詳細が示されているが、メモリ・システム、アーキテクチャ構造、および動作方法のさまざまな多くの実施形態が、それらの特定の詳細なしで実践されてよいということ、および特許請求の範囲および本発明が、本明細書において具体的に説明され、示された実施形態、部分組み立て品、特徴、プロセス、方法、態様、特徴、または詳細に限定されるべきでないということが、当業者によって理解されるであろう。さらに、本明細書に記載された特定の特徴を、さまざまな可能な組み合わせおよび並べ替えの各々において、その他の説明された特徴と組み合わせて使用することができる。
【００１５】
本明細書では、特に具体的に定義されない限り、すべての用語には、本明細書から示される意味、および当業者によって理解される意味、または辞書、論文などにおいて定義された意味、あるいはその両方を含む、最も広い可能な解釈が与えられる。本明細書および添付の特許請求の範囲において使用されるとき、単数形「ａ」、「ａｎ」、および「ｔｈｅ」が、特に規定されない限り、複数の指示対象を含むということにも注意しなければならない。
【００１６】
プログラム・コードを格納することまたは実行することあるいはその両方に適しているコンピューティング・システムまたはデータ処理システム１００は、さまざまな形態をとることができ、一実施形態では、少なくとも１つのプロセッサ１０２を含んでよく、プロセッサ１０２は、図１に示されているように、システム・バス１０６を介してメモリ・デバイスまたはメモリ素子に直接的または間接的に結合されたコントローラであるか、またはコントローラの一部であってよい。図１のコンピューティング・システム１００は、プロセッサ１０２、ランダム・アクセス・メモリ（ＲＡＭ：Random Access Memory）１０３、不揮発性メモリ１０４、デバイス固有の回路１０１、およびＩ／Ｏインターフェイス１０５と共に示されている。代替として、ＲＡＭ１０３または不揮発性メモリ１０４あるいはその両方は、プロセッサ１０２に含まれてよく、デバイス固有の回路１０１およびＩ／Ｏインターフェイス１０５も同様である。プロセッサ１０２は、例えば、既製のマイクロプロセッサ、カスタム・プロセッサ、フィールド・プログラマブル・ゲート・アレイ（ＦＰＧＡ：Field Programmable Gate Array）、特定用途向け集積回路（ＡＳＩＣ：Application Specific Integrated Circuit）、個別の論理などを備えてよい。ＲＡＭ１０３は、通常、可変データ、スタック・データ、実行可能命令などを保持するために使用され、ダイナミック・ランダム・アクセス・メモリ（ＤＲＡＭ：Dynamic Random Access Memory）を含んでよい。一実施形態では、ＲＡＭ１０３は、ダブル・データ・レート（ＤＤＲ：Double Data Rate）シンクロナスＤＲＡＭ（ＳＤＲＡＭ：synchronous DRAM）を含んでよい。ＲＡＭは、例えばデュアル・インライン・メモリ・モジュール（ＤＩＭＭ（Dual Inline Memory Modules）とも呼ばれる）などの、モジュール上に配置されたメモリ・デバイスを含んでよい。
【００１７】
さまざまな方法によれば、不揮発性メモリ１０４は、電気的消去可能プログラマブル読み取り専用メモリ（ＥＥＰＲＯＭ：Electrically Erasable Programmable Read Only Memory）、フラッシュ・プログラマブル読み取り専用メモリ（ＰＲＯＭ：Programmable Read Only Memory）、バッテリー・バックアップＲＡＭ、ハード・ディスク・ドライブなどの、ただしこれらに限定されない、任意の種類の不揮発性メモリを含んでよい。不揮発性メモリ１０４は、通常、プロセッサ１０２に特定の機能を実行させるために実行され得るプログラミング命令を含んでいる、実行可能なファームウェアおよび不揮発性データを保持するために使用される。
【００１８】
一部の実施形態では、Ｉ／Ｏインターフェイス１０５は、プロセッサ１０２がコントローラの外部のデバイスと通信できるようにする通信インターフェイスを含んでよい。通信インターフェイスの例は、ＲＳ−２３２、ユニバーサル・シリアル・バス（ＵＳＢ：Universal Serial Bus）、小型コンピュータ・システム・インターフェイス（ＳＣＳＩ：Small Computer Systems Interface）、ＲＳ−４２２などのシリアル・インターフェイス、あるいはＷｉ−Ｆｉ、Ｂｌｕｅｔｏｏｔｈ、近距離無線通信（ＮＦＣ：near-field communication）またはその他の無線インターフェイスなどの無線通信インターフェイスを含んでよいが、これらに限定されない。コンピューティング・システム１００は、ＡＤＩ（Automation/Drive Interface）などの任意の通信プロトコルで、通信インターフェイス１０５を介して外部デバイスと通信してよい。
【００１９】
図２は、より大きいコンピュータ・システムの構造またはネットワークの一部であってよい例示的な処理システム２００を示している。処理システム２００は、制御プロセッサ・システムまたはプロセッサ２０２を含んでおり、制御プロセッサ・システムまたはプロセッサ２０２は、メモリ制御ユニット（ＭＣＵ：Memory Control Unit）２１０とインターフェイスをとるように構成されてよい少なくとも１つのプロセッサ・ユニット（ＣＰＵ）またはマイクロプロセッサ２０６を含んでいる処理サブシステムである。プロセッサまたはＣＰＵ２０６は、システム・コントローラ（図示されていない）からの読み取り要求、書き込み要求、および構成要求を処理するモジュールであってよい。プロセッサ２０６は、マルチコア・プロセッサであってよい。ＭＣＵ２１０は、メモリ・サブシステム２２０内の１つまたは複数のメモリ・デバイス２５０（図１に示されていない）との通信を制御する同期メモリ・コントローラ（ＭＣＳ：memory controller synchronous）２０８（メモリ・コントローラとも呼ばれる）を含んでよい。ＭＣＵ２１０およびＭＣＳ２０８は、１つまたは複数の処理回路を含んでよく、あるいは処理は、プロセッサ２０６によって、またはプロセッサ２０６と連動して実行されてよい。制御プロセッサ・システム２０２は、通信バス２１５を介してメモリ・サブシステム２２０と通信する。制御プロセッサ・システム２０２、プロセッサまたはＣＰＵ２０６、メモリ制御ユニット２１０、およびＭＣＳ２０８は、本明細書では個別に、および集合的に、ホストと呼ばれてよい。ホストは、本明細書において使用されるとき、メモリ・システムまたはメモリ・サブシステムとの間でコマンドまたは制御信号あるいはその両方を送受信する、プロセッサ、コントローラ、またはデバイスのことを指すように幅広く使用される。ホストは、メモリ・システムまたはメモリ・サブシステムとの間でデータ信号を送受信してもよい。
【００２０】
メモリ・システムまたはメモリ・サブシステム内のエラーを管理するシステム、アーキテクチャ、または方法、あるいはその組み合わせが開示される。一実施形態では、ＲＡＳ能力（例えば、エラー訂正符号（ＥＣＣ：error correction code））用のメモリ・デバイスを含む、メモリのチャネルまたはランク内の未使用のビットまたはスペア・ビットを使用するシステム、アーキテクチャ構造、または方法、あるいはその組み合わせが開示される。１つの態様では、システム、アーキテクチャ構造、または方法、あるいはその組み合わせは、トランザクションまたは動作（例えば、読み取り動作または書き込み動作）において、任意のビットがスペア・ビット・レーンにマッピングされる再マッピングを可能にする。一実施形態では、すべてのトランザクション（例えば、読み取り動作または書き込み動作）において、ビットを、スペア・ビット・レーンにマッピングするか、または再び書き込むことができ、このビットの選択は、各トランザクションまたは動作で同じままであるか、または変化することができる。例えばビット・エラーまたはビット故障のため、スペアに再マッピングするために選択されたビットは、バースト・トランザクションまたはバースト動作と無関係であることができる。一実施形態では、再マッピング情報（例えば、不良ビットまたは欠陥ビットのデータおよび位置）が、エラー訂正符号（ＥＣＣ）の対象であってよい。ビットをスペア・ビット・レーンにマッピングするシステム、アーキテクチャ、および方法は、複数のメモリ・デバイスにわたって、メモリのチャネルがさまざまなビットの欠陥を含んでいる場合に有利であり、これは多くの場合に当てはまる。ビットをスペア・ビット・レーンに再マッピングするシステム、アーキテクチャ、および方法は、データ・ライン（ＤＱ）全体をスペア・データ・ライン（ＤＱ）に再マッピングする現在のスペアリング手法より効率的でもある。
【００２１】
一実施形態に従ってビットを未使用のビット・レーンにスペアリングするシステム、アーキテクチャ、および方法は、単純な論理を使用してメモリ・コントローラによって制御され、実行されてよい。１つの態様では、メモリのチャネルを変更せずに、または最小限に変更して、プロセスおよびシステムが実装されてよい。方法、システム、およびアーキテクチャは、メモリの動作（例えば、読み取り動作または書き込み動作）中に機能し、どのポスト・パッケージ・リペア（ＰＰＲ：Post Package Repair）モードも必要としなくてよい。加えて、方法、システム、およびアーキテクチャは、実施形態ではＤＤＲ５デュアル・チャネルＤＩＭＭが追加ビットを各チャネルにすでに含んでいるため、エラー訂正符号（ＥＣＣ）付きの標準的なＤＤＲ５  ＤＩＭＭがより高いレベルのＲＡＳを有することができるようにしてよい。この設計の利点が、追加ビットをバスに含む任意のシステムに適用されてよく、この手法および開示がＤＤＲ５に限定されないということは、当業者にとって明らかである。方法、システム、およびアーキテクチャは、本明細書における開示および内容から明らかであるように、その他の構成および実施形態において実装され、採用され得る。
【００２２】
コンピュータのメモリ・サブシステムは、多くの場合、メモリ・モジュール（通常は、複数のメモリ・デバイス（例えば、ダイナミック・ランダム・アクセス・メモリ（ＤＲＡＭ）デバイス）を含んでいる１つまたは複数のデュアル・インライン・メモリ・モジュール（ＤＩＭＭ））を備えている。一実施形態では、メモリ・システムは、複数のメモリ・デバイス、１つまたは複数のメモリ制御回路、および１つまたは複数のデータ・バッファ回路を含んでよく、これらすべてがＤＩＭＭとしてモジュール上に配置されるのが好ましい。一実施形態では、メモリ制御回路は、ホスト・プロセッサから信号を受信し、コマンドおよび制御信号を出力する。一実施形態では、メモリ・システムは、メモリ・デバイスとの間で行き来するデータの流れを制御するためのメモリ・コントローラを含んでよい。メモリ・コントローラは、メモリ・デバイスへのアクセスを管理してもよい。ホスト（例えば、プロセッサ）によって生成されたアクセス要求の場合、メモリ・コントローラは、要求に応えるために、１つまたは複数のアクセス・コマンドを生成してメモリ・デバイスに送信する。メモリ・コントローラは、メモリ・リソースへのアクセスを管理することに関連して、メモリ・デバイスの構成および状態も管理してよい。メモリ・コントローラは、メモリ・デバイスの帯域幅利用を最大化する方法で、コマンドを生成し、データ・リソース（例えば、メモリ・デバイス）へのアクセスを管理するのが好ましい。一実施形態では、メモリ制御回路は、１つまたは複数のレジスタード・クロック・ドライバ（ＲＣＤ：registered clock driver）を含んでよい。一実施形態では、メモリ制御回路は、回路の形態であってよいスケジューラを含んでよい。
【００２３】
メモリ制御回路（例えば、スケジューラ）は、動作および命令の順序を最適化してよく、コマンド信号（例えば、命令）をデータ・バッファ回路またはメモリ・デバイスあるいはその両方に送信する。一実施形態では、メモリ・コントローラ、スケジューラ、または回路、あるいはその組み合わせは、システム性能を最適化するために、フェッチ（読み取り）動作、格納（書き込み）動作、およびメモリ・デバイス（例えば、ＤＲＡＭ）の定期的動作（例えば、リフレッシュ動作など）をスケジューリングする。ホスト（プロセッサ）、メモリ・デバイス、データ・バッファ回路、またはメモリ制御回路、あるいはその組み合わせの間でデータ、コマンド、応答、または信号を転送するための通信リンクまたはバスが存在してよい。一実施形態では、メモリ制御回路とデータ・バッファ回路の間に、通信バスまたは通信リンクが存在する。一実施形態では、ホストとメモリ制御回路の間に通信バスおよび通信リンクが存在し、ホストとデータ・バッファ回路の間に別個の通信バスまたは通信リンクが存在してもよい。別の実施形態では、プロセッサまたはメモリ制御回路あるいはその両方の一部であってよいメモリ・コントローラと、メモリ・デバイスの間に、通信バスおよび通信リンクが存在してよい。メモリ・システムまたはアーキテクチャ構造あるいはその両方は、メモリ・デバイスと、メモリ制御回路またはデータ・バッファ回路あるいはその両方との間に、通信リンクまたは通信バスをさらに含んでよい。説明を簡単にするために、図では通信リンクの多くが除去されている。
【００２４】
図３および４は、メモリ・サブシステム３２０を含んでいるプロセッサメモリ・システム３００の例を示している。図３は、複数のメモリ・モジュール３２５ａ〜ｃ（例えば、デュアル・インライン・メモリ・モジュール（ＤＩＭＭ））を含むメモリ・システム３２０を示しているが、メモリ・サブシステム３２０がさらに多いか、または少ないＤＩＭＭ３２５（例えば、図４を参照）を含んでよいということが理解されるであろう。図３の例は３つのメモリ・モジュール３２５を示しているが、図４の例は１つのメモリ・モジュール３２５を示している。図３は、ＤＤＲ４と一致するシステムおよびアーキテクチャを示しており、図４は、ＤＤＲ５と一致するシステムおよびアーキテクチャを示している。図４は、２つのＲＣＤを含むデュアル・チャネルＤＩＭＭを示しているが、示されている２つのＲＣＤの機能は、１つのＲＣＤまたは複数のデバイスに含まれてよい。ＤＩＭＭ３２５上の複数のメモリ・デバイスは、チャネルおよびランクに配置されてよく、ＤＩＭＭ３２５上または複数のＤＩＭＭ３２５上に、１つまたは複数のランクまたはチャネルが存在する。例えば、図４は、ＤＩＭＭ３２５上の２つのチャネルを示している。各ＤＩＭＭ３２５は、１つまたは複数の揮発性メモリ・デバイス（例えば、ＤＲＡＭ３５０）を含んでよい。ＤＲＡＭは、ダブル・データ・レート（ＤＤＲ）シンクロナスＤＲＡＭであるのが好ましい。
【００２５】
メモリ・デバイス３５０は、集積回路またはチップであってよく、情報のビットを保持する基本メモリ・セルを形成してよい。メモリ・デバイス（例えば、ＤＲＡＭ）内のメモリ・セル（ビット）は、通常、バンクに配置され、各バンクは行と列のアレイである。通常、メモリ・デバイス（例えば、ＤＲＡＭ）内には複数のバンクが存在する。メモリ・デバイスは、通常、記号ｘ４、ｘ８、またはｘ１６によって示される４、８、または１６のビット幅を有する。例えば、ｘ４メモリ・デバイスの場合、ｘ４メモリ・デバイスの動作（例えば、読み取りまたは書き込み）中の１拍（beat）または１サイクルで、４ビットにアクセスする。ｘ８メモリ・デバイスの場合、ｘ８メモリ・デバイスの動作中の１拍または１サイクルで、８ビットにアクセスする。ｘ１６メモリ・デバイスの場合、ｘ１６メモリ・デバイスの動作（例えば、読み取りまたは書き込み）中の１拍または１サイクルで、１６ビットにアクセスする。
【００２６】
多くの場合、１サイクルで、そのサイクル中に複数のメモリ・デバイスに対して読み取りおよび書き込みを行うように、複数のメモリ・デバイスがランクに配置される。ランクは、通常、要求されたデータの異なる部分を使用して同じコマンドおよび同じアドレスに同時に応答する、メモリ・デバイスのセットである。例えば、４つのｘ８メモリ・デバイスがランクとして配置されている場合、１拍または１サイクルで、メモリ・デバイスに対して３２ビットの読み取りおよび書き込みを行う。加えて、動作（例えば、読み取りまたは書き込み）は、複数の拍を含んでよい。例えば、動作（例えば、読み取りまたは書き込み）は、動作（トランザクション）中の１６拍または１６サイクルを示す１６のバースト長（ＢＬ：burst length）（ＢＬ  １６）を有してよい。１つの例では、１６のバースト長（ＢＬ  １６）用に配置されて構成された４つのｘ８メモリ・デバイスの読み取り動作は、各拍で３２ビットを読み取る１６拍を含む。別の例では、８のバースト長（ＢＬ  ８）用に構成された８つのｘ８メモリ・デバイスを含んでいるＤＤＲ４構成における動作（読み取りまたは書き込み）は、各拍で６４ビットにアクセスする８拍を含む。
【００２７】
メモリ・サブシステムは、１つまたは複数のメモリ制御回路３３０（アドレス・チップ（ＡＣ）とも呼ばれる）、および１つまたは複数のデータ・バッファまたはデータ回路（ＤＣ：data circuits）３４０（ＤＣチップとも呼ばれる）を含んでもよい。他の例では、ＡＣチップおよびＤＣチップが１つのチップに結合されてよい。代替として、一実施形態では、メモリ・システムが、ＤＣチップを含まずに１つまたは複数のＡＣチップのみを含んでよく、またはＡＣチップを含まずに１つまたは複数のＤＣチップのみを含んでよい。メモリ制御回路３３０は、メモリ・デバイス３５０との間で行き来するデータの流れを管理し、メモリ・デバイス３５０にアクセスする。メモリ制御回路は、通常、コマンドおよび制御信号などの信号をホスト（例えば、プロセッサ）から受信する。制御信号は、メモリ・デバイスまたはデータ・バッファ回路あるいはその両方においてデータを格納するアドレス位置またはタグを含んでよい。メモリ制御回路３３０は、コマンドおよび制御信号をメモリ・デバイスに出力してよい。参照を容易にするために、メモリ制御回路３３０は、アドレスおよびコマンド回路、ＡＣ回路、またはＡＣチップと呼ばれてもよい。メモリ制御回路３３０は、レジスタード・クロック・ドライバ（ＲＣＤ）３３２を含んでも含まなくてもよい。各メモリ・モジュール３２５は、図３に示されているような１つのＲＣＤ３３２、または図４に示されているような複数のＲＣＤ３３２を含んでよい。一実施形態では、メモリ制御回路３３０はメモリ・コントローラを含んでよい。
【００２８】
メモリ制御回路３３０またはメモリ・コントローラは、スケジューラ３３８を含んでよい。メモリ制御回路３３０、メモリ・コントローラ、またはスケジューラ３３８、あるいはその組み合わせは、動作および命令の順序を最適化してよく、信号をデータ・バッファ回路およびメモリ・デバイスに送信する。メモリ制御回路３３０／メモリ・コントローラ／メモリ・スケジューラ３３８は、動作のシーケンスの順序を変更してよい。メモリ制御回路３３０は、メモリ・デバイスと共に基板またはモジュール（例えば、ＤＩＭＭ）の上に位置しても位置しなくてもよい。実施形態では、図３および４に示されているように、メモリ制御回路３３０が集積回路またはチップとして形成され、メモリ・デバイス３５０と共にモジュール３２５上に位置している。図３の実施形態では、１つのメモリ制御回路３３０が、各ＤＩＭＭ３２５上にあり、ＤＩＭＭ３２５上のメモリ・デバイス３５０を制御し、管理する。図４の実施形態では、２つのメモリ制御回路３３０が、２つのＲＣＤ３３２と共に、モジュール３２５上に示されている。１つのメモリ制御回路３３０および１つまたは複数のＲＣＤ３３２がメモリ・モジュール３２５に含まれてよいということが、理解されるであろう。具体的には、図４のメモリ・モジュール３２５が、１つのＲＣＤ３３２を含むように構成されてよい。
【００２９】
データ・バッファ回路３４０は、ホスト（例えば、プロセッサ３０２）とメモリ・デバイス３５０の間で、データのバッファリング、受信、送信、または転送、あるいはその組み合わせを実行する。データ・バッファ回路は、データ回路、ＤＣ回路、またはＤＣチップ、あるいはその組み合わせと呼ばれてもよい。データ・バッファ回路３４０は、メモリ・デバイスまたはメモリ制御回路あるいはその組み合わせと同じ基板またはモジュール（例えば、ＤＩＭＭ）の上に位置しても位置しなくてもよい。一実施形態では、図３に示されているように、データ・バッファ回路３４０は、集積回路またはチップとしても形成され、メモリ・デバイス３５０と共にモジュール３２５上に位置する。図４に示されていないが、データ・バッファ回路はメモリ・モジュール上に位置してよく、モジュール上のメモリ・デバイスごとに１つのデータ・バッファ回路、またはランク内のメモリ・デバイスごとに１つのデータ・バッファ回路、またはチャネル内のメモリ・デバイスごとに１つのデータ・バッファ回路、あるいはその組み合わせが、存在してよい。その他の構成も企図される。
【００３０】
メモリまたはデータ・ストレージ・システム３２０は、データを格納し、ストレージ・サービスを１つまたは複数のホスト（例えば、プロセッサ）に提供するように構成されてよく、これらのホストは、直接的に、またはネットワークを介して（例えば、インターネットを経由して）、ストレージ・システム３２０に接続され得る。ストレージ・システムは、ホストとの通信をサポートするためのインターフェイスを含んでよい。図３および４の説明を簡単にするために、メモリ・デバイス、メモリ制御回路、およびデータ・バッファ回路の間の通信バスが除去されている。
【００３１】
図３のメモリ・システム３２０では、各メモリ・モジュール３２５は、ＤＩＭＭとして構成され、１つのメモリ制御回路またはＡＣチップ３３０、９つのデータ・バッファ回路またはＤＣチップ３４０、および３６個のメモリ・デバイス３５０（例えば、ＤＲＡＭ）（それぞれの側に１８個のメモリ・デバイス３５０）を含んでいる。メモリ制御回路３３０は、コマンドおよび制御信号をデータ・バッファ回路３４０およびメモリ・デバイス３５０に送信するように構成され、プログラムされる。この例では、各メモリ制御チップまたはＡＣチップ３３０が、モジュール３２５上のメモリ・デバイス３５０との間でのデータの流れを管理する。この例では、各データ・バッファ回路またはＤＣチップ３４０が、４つのメモリ・デバイス３５０と情報をやりとりし、それらのメモリ・デバイス３５０間でデータをバッファリングする。ＤＩＭＭは、複数のメモリ・デバイス（例えば、ＤＲＡＭ）を含んでよく、これらのメモリ・デバイスは、９個（例えば、９、１８、２７、３６など）のグループまたはランクに任意選択的に配置されてよいが、その他の構成も企図される。
【００３２】
メモリ・モジュール３２５およびメモリ・サブシステム３２０に関して、その他の構成も企図される。メモリ・システム・アーキテクチャは、ＤＤＲ４規格およびＤＤＲ５規格をサポートするように形成され、構造化されてよく、ＲＤＩＭＭおよびＬＲＤＩＭＭを含んでよいが、開示されて説明された方法、システム、およびアーキテクチャは、将来の規格を含むその他の構成に適用可能である。
【００３３】
図３は、ＤＤＲ４規格と一致しており、データを格納するための８つのｘ８メモリ・デバイスおよびＥＣＣ用の１つのｘ８メモリ・デバイスを含んでおり、１拍または１サイクルごとに６４ビットのデータが転送される。すなわち、データ転送用のランク内に８つのｘ８メモリ・デバイスが存在し、各メモリ・デバイスが１サイクルまたは１拍ごとに８ビットにアクセスし、合計で、１サイクルごとに６４ビットのデータがアクセスされる。メモリ・デバイスの幅が４ビット（ｘ４メモリ・デバイス）である場合、１サイクルごとに６４データ・ビットにアクセスするには、１６個のｘ４メモリ・デバイスが必要であり、６４ビットのデータをカバーするために８ビットのＥＣＣを提供するには、２つのｘ４メモリ・デバイスが必要である。本開示は、説明を簡単にするために、メモリ・デバイスがＥＣＣ用に指定されていることを参照しているが、ＥＣＣが複数のメモリ・デバイスにわたって分散され得るということが認識されるであろう。
【００３４】
図４は、ＤＤＲ５規格と一致しており、ＤＩＭＭまたはメモリ・モジュールが、２つのランク／チャネルに配置された１０個のメモリ・デバイスを含んでおり、データを格納するための４つのｘ８メモリ・デバイスおよびＥＣＣ用の１つのｘ８メモリ・デバイスが、第１のランク（およびチャネル）内で構成されており、データを格納するための４つのｘ８メモリ・デバイスおよびＥＣＣ用の１つのｘ８メモリ・デバイスが、第２のランク（およびチャネル）内で構成されている。各ランク（およびチャネル）内の５つのメモリ・デバイス（例えば、ＤＤＲ  ＤＲＡＭ）の各々は、図４に示されているように、８ビット幅のインターフェイス（ｘ８）を有している。各ランクおよびチャネルの幅は、４０ビットをサポートし、１サイクルまたは１拍ごとに転送されるデータは、３２ビットである。メモリ・モジュール上で４ビット幅または１６ビット幅のメモリ・デバイス（例えば、ｘ４またはｘ１６ＤＲＡＭ）が使用される場合、１つのランクおよび１つのチャネルごとのメモリ・デバイスの数は、１サイクルごとの３２ビット幅のデータ転送、および１サイクルごとまたはバーストごとの対応するＥＣＣを満たすように、変化してよい。例えば、４ビット幅のメモリ・デバイス（例えば、ｘ４メモリ・デバイス）が使用される場合、８つのｘ４メモリ・デバイスがデータに使用され、２つのｘ４メモリ・デバイスがＥＣＣに使用される。１６ビット幅のメモリ・デバイスが使用される場合、２つのｘ１６メモリ・デバイスがデータに使用され、１つのｘ１６メモリ・デバイスがＥＣＣに使用される。１つの例では、代替として、３２ビットのデータをカバーするために７ビットのＥＣＣのみが必要であるため、２つのｘ４メモリ・デバイスまたは１つのｘ８メモリ・デバイスがＥＣＣに使用され得る。
【００３５】
図３〜６のメモリ構成は、メモリのチャネルまたはランクあるいはその両方ごとに、１つのｘ８ＥＣＣメモリ・デバイスを含んでいる。ＥＣＣメモリ・デバイスの数は、使用されるエラー・チェックおよびエラー訂正符号（ＥＣＣ）の種類およびチェックされるデータの量、ならびにデータ・エラーの数を含むが、これらに限定されない、複数の要因に依存する。メモリ・コントローラは、メモリのエラーに対してデータ修正を実行するＥＣＣ論理を含む。ＥＣＣ論理は、従来の技術を使用する。通常、１拍でＥＣＣが３２ビットのデータをカバーするには、７ビットが必要であり、１拍でＥＣＣが６４ビットのデータをカバーするには、８ビットが必要である。
【００３６】
図５は、図４に示されたように構成されたメモリ・デバイスのランクを示しており、不良または欠陥データ・ビット１２１がスペア・ビット・レーンにマッピングされている。図５の列の見出しｂ００〜ｂ３１は、１サイクルまたは１拍で読み取られる３２ビットのデータを識別し、列の見出しｅ００〜ｅ０６は、１サイクルまたは１拍でＥＣＣに使用される７ビットを識別する。１サイクルまたは１拍ごとにアクセスされるデータが３２ビットであるため、ランク（および、この説明ではチャネル）内でＥＣＣを処理するために７ビットが必要であり、そのため追加のｘ８メモリ・デバイスがＥＣＣに必要である。したがって、ランクまたはチャネルあるいはその両方は、４０ビット幅である。より詳細には、図５は、動作（例えば、読み取りまたは書き込み）中の５つのメモリ・デバイスのランク内のビットの表現を示しており、各メモリ・デバイスが８ビット幅のデータ・パス（例えば、ｘ８メモリ・デバイス）を含んでおり、４つのメモリ・デバイスが、データを格納するためのランク（およびチャネル）として関連付けられ、配置されており、１つのｘ８メモリ・デバイスがＥＣＣに使用され、システムが、１６のバースト長（ＢＬ  １６）用に構成されている。説明を簡単にするために、ＥＣＣが１つのメモリ・デバイスまたはチップ上にあるとして参照され、説明されているが、ＥＣＣが１つのメモリ・デバイスまたはチップ上にあることに制限されないということ、およびＥＣＣが複数のメモリ・デバイスまたはチップにわたって分散され得るということが、当業者によって認識されるはずである。
【００３７】
各サイクルまたは各拍で３２ビットのデータが転送され、ＥＣＣをカバーするために７ビットが必要であるため、４０ビット幅のランク／チャネル内で１ビットが余る。すなわち、１拍または１サイクルでデータにもＥＣＣにも使用されない余分なビットが、チャネルに残される。図５の列の見出しｓ００は、余分なビットをスペア・ビット・レーンとして示している。図５の列の見出し「拍」は、バースト動作中の拍（拍の数）を識別し、この例では、動作（例えば、読み取りまたは書き込み）中の１６のバースト長（ＢＬ  １６）を示しており、１６個の拍が１６進数（０〜９およびＡ〜Ｆ）でラベル付けされている。図５で、ビット１２１が欠陥として検出され、スペア・ビット・レーンｓ００に再マッピングされる。バーストにおけるｂ１２１用の値、情報、またはデータ（拍３におけるビットｂ２５として示されている）が、スペア・ビット・レーンｓ００内のビットＳに書き込まれるか、または再マッピングされる。すなわち、バーストにおいてビット１２１に書き込まれるはずだった値、情報、またはデータ（例えば、拍３におけるビットｂ２５）が、ここで、ビットＳ（拍０におけるビットｓ００）に再び書き込まれるか、またはマッピングされる。不良ビットまたはエラーを識別する位置が、スペア・ビット・レーンｓ００内のビットＬ０〜Ｌ８に書き込まれる。バーストにおけるビット番号（例えば、ビット１２１）を参照すること、またはビットおよび拍番号（例えば、拍３におけるビットｂ２５）を指定することを含む、欠陥ビットまたは誤りビットの位置を識別する多くの方法が存在する。図５の例では、ビット１２１の位置（例えば、拍３におけるビットｂ２５）が、スペア・ビット・レーンｓ００内のビットＬ８：Ｌ０（Ｌ８：Ｌ０＝０，０１１１，１００１  Ｓ＝ｂ１２１の正しい値）に書き込まれる。
【００３８】
加えて、欠陥ビットのデータおよび位置をカバーするためのＥＣＣも、スペア・ビット・レーンｓ００内で処理される（図５のＥ０：Ｅ５として示されている）。したがって、拍Ａ：Ｆにおけるスペア・ビット・レーンｓ００内のビットは、拍０におけるデータ・ビットＳおよび拍１〜９におけるビットＬ８：Ｌ０の位置情報に対するＥＣＣの適用を提供する。６つのＥＣＣビットは、スペア・ビット・レーンｓ００内の１６ビットのデータ／情報をカバーできる。したがって、不良ビットまたは欠陥ビットが検出された場合、その値および位置情報がスペア・ビット・レーンｓ００に書き込まれる。その後の動作において、メモリ・コントローラが、スペア・ビットＳの情報／データを、不良ビットまたは欠陥ビットに使用する。メモリ・コントローラは、スペア・ビット・レーンｓ００内のビットＬ８：Ｌ０（例えば、拍１〜９におけるビットｓ００）の情報を使用して、不良ビットの位置およびスペア・ビットＳからの値をいつ／どこで使用するべきかを識別する。図５の例では、ビット１２１を読み取るときに、メモリ・コントローラはビットＳの値を使用する。メモリ・コントローラは、スペア・ビット・レーンｓ００内のビットＬ８：Ｌ０の位置情報を使用して、ビットＳ（０拍におけるビットｓ００）にある値、データ、または情報をいつ／どこで使用するべきかを知る。言い換えると、メモリ・コントローラが、スペア・ビット・レーンｓ００内のビットＬ８：Ｌ０によって識別されたメモリ・デバイスのアドレスにアクセスするときに、メモリ・コントローラは、スペア・ビット・レーンｓ００内のビットＳのデータを使用する。
【００３９】
図６は、１６拍のトランザクションにおける別の動作（例えば、読み取り動作）を示している。図６は、図５と同じに配置されたランク／チャネル内のその後の動作に関するものであり、ｂ００〜ｂ３１がデータ・ビットを表し、ｅ００〜ｅ０６が３２ビットのデータのＥＣＣを表し、ｓ００が、５つのｘ８メモリ・デバイス（例えば、データ用の４つのｘ８メモリ・デバイス、およびＥＣＣの要件をカバーするための７ビット用の１つのｘ８メモリ・デバイス）を含んでいるランク／チャネル内に残されたスペア・ビット・レーンを表す。動作中の各拍およびサイクルは、エラー（例えば、不良ビットまたは欠陥ビット）からの情報を再び書き込むために使用されるスペア・ビットを含んでいる。図６は、その後の動作において検出され、スペア・ビット・レーンｓ００に再び書き込まれる不良ビット５１１を表し、ビット５１１用のデータ、情報、または値がスペア・ビット・レーン内のビットＳに再び書き込まれ、不良ビット５１１の位置情報がビットＬ０：Ｌ８（Ｌ８：Ｌ０＝１，１１１，１１１１，Ｓ＝ｂ５１１の正しい値）に書き込まれ、スペア・ビット・レーンＳ００内のＥ０〜Ｅ５によって、ビットＳおよび位置ビットＬ８：Ｌ０に対するＥＣＣの適用が提供される。
【００４０】
スペア・ビット・レーンｓ００に再び書き込まれる不良ビットまたは欠陥ビット（例えば、エラー）が、異なる動作において同じビット（位置）であることがあり、または異なる動作において異なるビット（位置）であることがあるということが、理解されるであろう。すなわち、各動作でメモリ・デバイス内のエラーが発生するビットは、同じビットである（すなわち、各動作でメモリ・デバイス内の同じ位置にある）か、または異なるビットである（すなわち、異なる位置にある）ことがある。不良ビットは、位置に関わらず、その後の動作において、スペア・ビット・レーンに再び書き込まれ、マッピングされ得る。図５および図６が、３２ビットのデータにＥＣＣが適用される、３２ビット幅のデータ・パス（インターフェイス）を含んでいるＤＤＲ５  ＢＬ  １６（バースト長１６）の動作に適用可能であってよい例であるということも、理解されるであろう。
【００４１】
１つまたは複数のスペア・ビット・レーンを提供できる他の構成が、本明細書で開示されたビット・スペアリングのシステム、アーキテクチャ、および手法に利用されてよい。１つの例として、１０個のｘ８メモリ・デバイスが１拍または１サイクルごとに６４ビットのデータを含んでいる動作に使用されるように、図４の２つのチャネルがロックされるか、または組み合わせられるシステムまたは構成では、６４データ・ビットをカバーするために、１６ビットがＥＣＣメモリに使用可能である。この例では、不良ビット、欠陥ビット、または誤りビットを再マッピングするか、または再び書き込むための複数のスペア・ビット・レーンを残して、６４ビットのデータをカバーするために、８ビットのＥＣＣのみが必要である。他の例は、余分なデバイスを追加することを含んでよい。図５および６の例はｘ８メモリ・デバイスを示しているが、この方法および開示が、ｘ４またはｘ１６メモリ・デバイスへの適用を含むということも、理解されるであろう。
【００４２】
図７は、本開示の一実施形態に従って、メモリ・デバイスまたはメモリ・モジュール（例えば、ＤＩＭＭなど）あるいはその両方を含む、メモリ・システム内のビット・エラーを管理する方法を示して説明する、一実施形態に従う例示的なフローチャートである。方法７００は便宜のために説明されており、一連のステップまたは複数のステップあるいはその両方を含んでいるとして本開示を制限することを意図しておらず、プロセスが一連のステップとして実行される必要がないか、または図７に関して示され、説明された順序でステップが実行される必要がないか、あるいはその両方であり、プロセスが統合されてよいか、または１つまたは複数のステップがまとめて同時に実行されてよいか、あるいはその両方であり、あるいはステップが、開示された順序または別の順序で実行されてよいということが、理解されるべきである。
【００４３】
メモリ・システム内のビット・エラーを管理する方法７００は、７１０で、好ましくはランクとして関連付けられたか、グループ化されたか、または配置された複数のメモリ・デバイスにおける動作（例えば、読み取り動作または書き込み動作）中に、第１のビット・メモリ位置でエラーを検出することを含む。図４に示されているように、複数のメモリ・デバイスがチャネルとして配置されてもよい。１つの例では、ビット・エラーを検出するために検出器回路が使用されてよい。この検出器回路は、メモリ制御回路またはメモリ・コントローラの一部であってよい。代替として、この検出器回路は、システム内の他の位置にあるか、または他の回路の一部であることができる。エラーを検出するための１つの実施形態は、ある拍のデータに対して、その拍のＥＣＣ符号をチェックすることである。ＥＣＣ符号化は、１ビット・エラー訂正および２ビット・エラー検出（ＳＥＣＤＥＤ：single error correction and dual error detection）を可能にすることができる。ＥＣＣ符号化を使用してビットが不正として検出された場合、そのビットが修正され、スペア・レーンに再マッピングされる。このアルゴリズムは、不良ビットをスペアリングすることによって、既知の不良ビットがスペア・レーン上で複製され、ＳＥＣＤＥＤ  ＥＣＣ符号化が、不良ビットを修正する必要がなく、他の欠陥ビットを修正するために使用されてよいという、ＳＥＣＤＥＤ  ＥＣＣ符号のより適切な適用を可能にする。
【００４４】
７２０で、第１の動作中に、第１のエラーが検出されたビット・メモリ位置に格納されるデータが、スペア・ビット・レーン内のスペア・ビットに書き込まれるか、または再マッピングされてよい。エラー応答を管理するための論理が、メモリ制御回路またはメモリ・コントローラに含まれてよい。エラー応答を管理するための論理が、検出器または検出器回路に含まれてよい。７３０で、検出された第１のビット・エラーの位置を識別するアドレス位置情報がスペア・ビット・レーンに格納されてもよい。７４０で、スペア・ビットに含まれる情報のエラー訂正符号、および好ましくは欠陥または検出されたビット・エラーを識別する位置情報のエラー訂正符号が、スペア・ビット・レーンに書き込まれ（格納され）てもよい。その後の動作において、メモリ・コントローラは、不良ビットにアクセスするときにスペア・ビットの値にアクセスし（例えば、読み取り）、スペア・ビット・レーンのビットＬ８：Ｌ０に書き込まれた位置情報を使用して不良ビットの位置を識別する。一実施形態では、この方法は、データが、メモリの欠陥領域（例えば、失敗したビット）から移動され、新しいメモリ位置または領域（例えば、スペア・ビット）に格納され、そのデータに対するその後のアクセスが、失敗した位置からではなく新しい位置から取り出される、スペアリング手法またはプロセスを提供する。
【００４５】
７５０で、第１の動作の後の第２の異なる動作において、メモリ・ビット位置で第２のエラーが検出されてよい。第１のエラーと同じメモリ・ビット位置で、または異なるメモリ・ビット位置で、第２のエラーが発生することがある。７６０で、この動作中に、第２のビット・エラーが発生したメモリ・ビット位置に格納されるデータが、スペア・ビット・レーン内のスペア・ビットに書き込まれるか、または再マッピングされてよい。
【００４６】
７７０で、この第２の異なる動作中に、第２のビット・エラーの位置がスペア・ビット・レーンに格納されてよい。７８０で、第２の異なる動作中にスペア・ビット・レーンに再マッピングされたスペア・ビットのエラー訂正符号、および好ましくは欠陥または検出されたエラー・ビットを識別する位置のエラー訂正符号が、スペア・ビット・レーンに格納されてもよい。その後の動作において、メモリ・コントローラは、不良ビットに読み取るときにスペア・ビットの値にアクセスし（例えば、読み取り）、スペア・ビット・レーンのビットＬ８：Ｌ０に書き込まれた位置情報を使用して不良ビットの位置を識別する。
【００４７】
特定の拍（例示的な図に示された行）において複数のビット故障が存在する場合、その拍でスペア・ビット・レーンを使用して１つまたは複数のビット故障を処理できるため、開示されたシステム、アーキテクチャ、およびプロセスが使用されてよいということが、理解されるであろう。
【００４８】
データを格納するためのメモリ・システムが開示され、このメモリ・システムは、データを格納するように構成された複数のメモリ・デバイスであって、各メモリ・デバイスが複数のビットを含み、これらのメモリ・デバイスが、ランクとして連携して要求に応答するように構成され、関連付けられる、メモリ・デバイスと、複数のメモリ・デバイスに関連付けられ、コマンドおよび制御信号を複数のメモリ・デバイスに出力するように構成されたメモリ制御回路と、動作においてビット・エラーを検出するための検出器と、検出器がビット・エラーを検出したことに応答して、ビット・エラーをスペア・ビット・レーンに再マッピングするためのコントローラとを含む。１つの態様では、検出器、コントローラ、およびメモリ制御回路が、同じチップ上にある。複数のメモリ・デバイスが、デュアル・インライン・メモリ・モジュール（ＤＩＭＭ）上にあってよく、メモリ制御回路がＤＩＭＭ上にある。一実施形態では、ＤＩＭＭは、データ・バッファ回路をさらに含んでよい。
【００４９】
１つの態様では、システムは、複数のメモリ・デバイス（例えば、少なくとも１０個のメモリ・デバイス）を含んでいる少なくとも１つのＤＩＭＭを含んでよく、５つメモリ・デバイスが第１のランクを形成し、５つのメモリ・デバイス第２のランクを形成し、さらに、データを格納するためにランクごとに３２ビットが使用される。一実施形態では、ランクごとに７ビットがエラー訂正符号に使用され、少なくとも１ビットがエラーの再マッピングに使用される。一実施形態に従って、第１のランクの５つのメモリ・デバイスが、４０ビット幅であるチャネルを形成する。スペア・ビット（またはスペア・ビット・レーンあるいはその両方）に再び書き込まれる情報は、エラーが検出されたビットのデータと、エラーが検出されたビットの位置（例えば、バーストにおけるビット番号、または拍におけるビット番号および拍番号）と、エラーが検出されたビットのスペア・ビットおよび位置のエラー訂正符号とを含んでよい。
【００５０】
１つの態様では、ビット・エラーを再マッピングするために、複数のメモリ・デバイスが複数のスペア・ビット・レーンを提供する。一実施形態では、メモリ制御回路は、スペア・ビット・レーン内のスペア・ビットのデータ、およびスペア・ビット・レーン内の位置情報を読み取って、スペア・ビット・レーン内のスペア・ビットに保持されたデータを使用するためのビットを識別するように、構成されてよい。
【００５１】
別の実施形態では、データを格納するためのメモリ・システムが開示され、このメモリ・システムは、データを格納するように構成された複数のメモリ・デバイスであって、各メモリ・デバイスが複数のビットを含み、これらのメモリ・デバイスが、ランクとして連携して動作を実行するように構成され、関連付けられる、メモリ・デバイスと、ランクとして構成された複数のメモリ・デバイスに関連付けられ、信号を複数のメモリ・デバイスに出力するように構成されたメモリ制御回路であって、（ｉ）動作中に欠陥ビットを検出すること、（ｉｉ）動作中にデータを欠陥ビットから単一のスペア・ビット・レーンに再び書き込むこと、および（ｉｉｉ）欠陥ビットに関するスペア・ビット・レーンに再び書き込まれたデータを読み取ることを実行するように構成された論理回路を含んでいる、メモリ制御回路とを備える。メモリ制御回路は、欠陥ビットの位置アドレスをスペア・ビット・レーンに書き込むように構成されたメモリ・コントローラを含んでよく、さらに別の態様では、スペア・ビット・レーンに書き込まれデータおよび位置情報のＥＣＣをさらに含んでよい。
【００５２】
さらに別の実施形態では、メモリ・サブシステム内のビット・エラーを管理するための方法が開示され、この方法は、第１の動作において複数のメモリ・デバイス内の第１のメモリ・ビット位置でエラーを検出することと、第１のエラーが検出されたメモリ・ビット位置に格納されるデータをスペア・ビット・レーンに再マッピングすることとを含む。この方法の１つの態様では、第１のエラーが検出されたメモリ・ビット位置に格納されるデータは、スペア・ビット・レーン内のスペア・ビットに再マッピングされる。この再マッピングは、検出されたビット・エラーの位置を識別する位置情報およびスペア・ビットのエラー訂正符号をスペア・ビット・レーンに格納することを含んでよい。第１の動作における単一のエラーが、単一のビット・レーンに書き込まれてよい。１つの態様では、第１の動作が読み取り動作であり、読み取り動作中にエラーが検出された場合、この方法は、システム（好ましくは、メモリ・コントローラ）が、エラーが検出されたビット位置からスペア・ビット・レーンに情報／データを書き込む、書き込み動作を実行することをさらに含む。別の態様では、この方法は、読み取り動作を含み、１ビットのデータ、この１ビットのデータに関する１つまたは複数のビットの位置情報、ならびにデータ・ビットおよび位置ビットを保護する１つまたは複数のビットのエラー訂正符号を含んでいる有効なデータが、スペア・ビット・レーンから読み取られる。別の態様では、この方法は、読み取り動作を含み、１つのスペア・ビットを含んでいる有効なデータがスペア・ビット・レーンから読み取られ、元のスペアリングされていないデータを再構築するために、このビットが、スペア・ビット・レーンに格納された位置情報を使用して、システム（好ましくは、メモリ・コントローラ）によって読み取られたデータに再マッピングされる。
【００５３】
実施形態では、この方法は、異なる動作においてビット・メモリ位置で第２のエラーを検出することであって、第２のエラーが第１のビット・エラーと同じメモリ・ビット位置および異なるメモリ・ビット位置から成るグループのうちの少なくとも１つに発生する、検出することと、その異なる動作において、第２のエラーが検出されたメモリ・ビット位置に格納されるデータを単一のスペア・ビット・レーンに再マッピングすることとをさらに含んでよい。１つの態様では、この方法は、複数のメモリ・デバイス（例えば、５つのメモリ・デバイス）を含んでいるメモリ・ランクを含んでよく、３２ビットがデータを格納するように構成され、７ビットがエラー訂正符号用であり、１ビットがエラーを管理するため、または再マッピングするため、あるいはその両方のためにある。
【００５４】
さらに別の実施形態では、メモリ・システム内のエラーを管理するためのコンピュータ・プログラム製品が開示され、このコンピュータ・プログラム製品が、プログラム命令が具現化されているコンピュータ可読記憶媒体を備えており、これらのプログラム命令が、メモリ・システムに方法を実行させるようにメモリ・システムによって実行可能であり、このメモリ・システムがメモリ制御回路および複数のメモリ・デバイスを備えており、この方法が、複数のメモリ・デバイス内の第１のメモリ・ビットでエラーを検出すること、および第１のエラーが検出されたメモリ・ビットからスペア・ビット・レーンにデータを再マッピングすることを含む。
【００５５】
上で説明された例示的な実施形態は、プロセッサの機能ユニットなどのハードウェアにおいて実装されるのが好ましいが、例示的な実施形態のさまざまな態様は、ソフトウェアにおいて実装されてもよい。例えば、図７のフローチャート図の各ブロック、およびフローチャート図内のブロックの組み合わせが、コンピュータ・プログラム命令によって実装され得るということが理解されるであろう。これらのコンピュータ・プログラム命令は、プロセッサまたはその他のプログラム可能なデータ処理装置上で実行される命令が、フローチャートの１つまたは複数のブロックに指定される機能を実施するための手段を作り出すべく、プロセッサまたはその他のプログラム可能なデータ処理装置に提供されてマシンを作り出すものであってよい。これらのコンピュータ可読プログラム命令は、コンピュータ可読メモリまたは記憶媒体に格納され、コンピュータ可読メモリまたは記憶媒体に格納された命令がフローチャートの１つまたは複数のブロックに指定された機能を実施する命令の手段を含んでいる製品を作り出すように、プロセッサまたはその他のプログラム可能なデータ処理装置に特定の方式で機能するように指示できるものであってもよい。したがって、フローチャート図のブロックは、指定された機能を実行するための手段の組み合わせ、指定された機能を実行するためのステップの組み合わせ、および指定された機能を実行するためのプログラム命令の手段をサポートする。フローチャート図の各ブロック、およびフローチャート図内のブロックの組み合わせは、指定された機能またはステップを実行する専用ハードウェアベースのコンピュータ・システムによって、または専用ハードウェアとコンピュータ命令の組み合わせによって実装され得るということも理解されるであろう。
【００５６】
本発明は、システム、方法、またはコンピュータ・プログラム製品、あるいはその組み合わせであってよい。コンピュータ・プログラム製品は、プロセッサに本発明の態様を実行させるためのコンピュータ可読プログラム命令を含んでいるコンピュータ可読記憶媒体を含んでよい。
【００５７】
コンピュータ可読記憶媒体は、命令実行デバイスによって使用するための命令を保持および格納できる有形のデバイスであることができる。コンピュータ可読記憶媒体は、例えば、電子ストレージ・デバイス、磁気ストレージ・デバイス、光ストレージ・デバイス、電磁ストレージ・デバイス、半導体ストレージ・デバイス、またはこれらの任意の適切な組み合わせであってよいが、これらに限定されない。コンピュータ可読記憶媒体のさらに具体的な例の非網羅的リストは、ポータブル・フロッピー（Ｒ）・ディスク、ハード・ディスク、ランダム・アクセス・メモリ（ＲＡＭ：random access memory）、読み取り専用メモリ（ＲＯＭ：read-only memory）、消去可能プログラマブル読み取り専用メモリ（ＥＰＲＯＭ：erasable programmable read-only memoryまたはフラッシュ・メモリ）、スタティック・ランダム・アクセス・メモリ（ＳＲＡＭ：static random access memory）、ポータブル・コンパクト・ディスク読み取り専用メモリ（ＣＤ−ＲＯＭ：compact disc read-only memory）、デジタル多用途ディスク（ＤＶＤ：digital versatile disk）、メモリ・スティック、フロッピー（Ｒ）・ディスク、パンチカードまたは命令が記録されている溝の中の隆起構造などの機械的にエンコードされるデバイス、およびこれらの任意の適切な組み合わせを含む。本明細書において使用されるとき、コンピュータ可読記憶媒体は、それ自体が、電波またはその他の自由に伝搬する電磁波、導波管またはその他の送信媒体を伝搬する電磁波（例えば、光ファイバ・ケーブルを通過する光パルス）、あるいはワイヤを介して送信される電気信号などの一過性の信号であると解釈されるべきではない。
【００５８】
本明細書に記載されたコンピュータ可読プログラム命令は、コンピュータ可読記憶媒体から各コンピューティング・デバイス／処理デバイスへ、またはネットワーク（例えば、インターネット、ローカル・エリア・ネットワーク、広域ネットワーク、または無線ネットワーク、あるいはその組み合わせ）を介して外部コンピュータまたは外部ストレージ・デバイスへダウンロードされ得る。このネットワークは、銅伝送ケーブル、光伝送ファイバ、無線送信、ルータ、ファイアウォール、スイッチ、ゲートウェイ・コンピュータ、またはエッジ・サーバ、あるいはその組み合わせを備えてよい。各コンピューティング・デバイス／処理デバイス内のネットワーク・アダプタ・カードまたはネットワーク・インターフェイスは、コンピュータ可読プログラム命令をネットワークから受信し、それらのコンピュータ可読プログラム命令を各コンピューティング・デバイス／処理デバイス内のコンピュータ可読記憶媒体に格納するために転送する。
【００５９】
本発明の動作を実行するためのコンピュータ可読プログラム命令は、アセンブラ命令、命令セット・アーキテクチャ（ＩＳＡ：instruction-set-architecture）命令、マシン命令、マシン依存命令、マイクロコード、ファームウェア命令、状態設定データ、あるいは、Ｓｍａｌｌｔａｌｋ、Ｃ＋＋などのオブジェクト指向プログラミング言語、および「Ｃ」プログラミング言語または同様のプログラミング言語などの従来の手続き型プログラミング言語を含む１つまたは複数のプログラミング言語の任意の組み合わせで記述されたソース・コードまたはオブジェクト・コードであってよい。コンピュータ可読プログラム命令は、ユーザのコンピュータ上で全体的に実行すること、ユーザのコンピュータ上でスタンドアロン・ソフトウェア・パッケージとして部分的に実行すること、ユーザのコンピュータ上およびリモート・コンピュータ上でそれぞれ部分的に実行すること、あるいはリモート・コンピュータ上またはサーバ上で全体的に実行することができる。後者のシナリオでは、リモート・コンピュータは、ローカル・エリア・ネットワーク（ＬＡＮ：local area network）または広域ネットワーク（ＷＡＮ：wide area network）を含む任意の種類のネットワークを介してユーザのコンピュータに接続されてよく、または接続は、（例えば、インターネット・サービス・プロバイダを使用してインターネットを介して）外部コンピュータに対して行われてよい。一部の実施形態では、本発明の態様を実行するために、例えばプログラマブル論理回路、フィールドプログラマブル・ゲート・アレイ（ＦＰＧＡ：field-programmable gate arrays）、またはプログラマブル・ロジック・アレイ（ＰＬＡ：programmable logic arrays）を含む電子回路は、コンピュータ可読プログラム命令の状態情報を利用することによって、電子回路をカスタマイズするためのコンピュータ可読プログラム命令を実行してよい。
【００６０】
本発明の態様は、本明細書において、本発明の実施形態に従って、方法、装置（システム）、およびコンピュータ・プログラム製品のフローチャート図またはブロック図あるいはその両方を参照して説明される。フローチャート図またはブロック図あるいはその両方の各ブロック、ならびにフローチャート図またはブロック図あるいはその両方に含まれるブロックの組み合わせが、コンピュータ可読プログラム命令によって実装され得るということが理解されるであろう。
【００６１】
これらのコンピュータ可読プログラム命令は、コンピュータまたはその他のプログラム可能なデータ処理装置のプロセッサを介して実行される命令が、フローチャートまたはブロック図あるいはその両方の１つまたは複数のブロックに指定される機能／動作を実施する手段を作り出すべく、汎用コンピュータ、専用コンピュータ、または他のプログラム可能なデータ処理装置のプロセッサに提供されてマシンを作り出すものであってよい。これらのコンピュータ可読プログラム命令は、命令が格納されたコンピュータ可読記憶媒体がフローチャートまたはブロック図あるいはその両方のブロックに指定される機能／動作の態様を実施する命令を含んでいる製品を備えるように、コンピュータ可読記憶媒体に格納され、コンピュータ、プログラム可能なデータ処理装置、または他のデバイス、あるいはその組み合わせに特定の方式で機能するように指示できるものであってもよい。
【００６２】
コンピュータ可読プログラム命令は、コンピュータ上、その他のプログラム可能な装置上、またはその他のデバイス上で実行される命令が、フローチャートまたはブロック図あるいはその両方の１つまたは複数のブロックに指定される機能／動作を実施するように、コンピュータ、その他のプログラム可能なデータ処理装置、またはその他のデバイスに読み込まれてもよく、それによって、一連の動作可能なステップを、コンピュータ上、その他のプログラム可能な装置上、またはコンピュータ実装プロセスを生成するその他のデバイス上で実行させる。
【００６３】
図内のフローチャートおよびブロック図は、本発明のさまざまな実施形態に従って、システム、方法、およびコンピュータ・プログラム製品の可能な実装のアーキテクチャ、機能、および動作を示す。これに関連して、フローチャートまたはブロック図内の各ブロックは、規定された論理機能を実装するための１つまたは複数の実行可能な命令を備える、命令のモジュール、セグメント、または部分を表してよい。一部の代替の実装では、ブロックに示された機能は、図に示された順序とは異なる順序で発生してよい。例えば、連続して示された２つのブロックは、含まれている機能に応じて、実質的に同時に実行されるか、または場合によっては逆の順序で実行されてよい。ブロック図またはフローチャート図あるいはその両方の各ブロック、ならびにブロック図またはフローチャート図あるいはその両方に含まれるブロックの組み合わせは、規定された機能または動作を実行するか、または専用ハードウェアとコンピュータ命令の組み合わせを実行する専用ハードウェアベースのシステムによって実装され得るということにも注意する。
【００６４】
さらに、さまざまな実施形態に従うシステムは、プロセッサ、およびプロセッサに統合された論理またはプロセッサによって実行可能な論理あるいはその両方を含んでよく、この論理は、本明細書において列挙された処理ステップのうちの１つまたは複数を実行するように構成される。統合されるということは、つまり、プロセッサに論理が、特定用途向け集積回路（ＡＳＩＣ）、フィールド・プログラマブル・ゲート・アレイ（ＦＰＧＡ）などのハードウェア論理として組み込まれるということである。プロセッサによって実行可能であるということは、つまり、論理が、プロセッサによってアクセス可能なハードウェア論理、ソフトウェア論理（ファームウェア、オペレーティング・システムの一部、アプリケーション・プログラムの一部など）など、またはハードウェア論理とソフトウェア論理の何らかの組み合わせであり、プロセッサによって実行されたときに何らかの機能をプロセッサに実行させるように構成されているということである。ソフトウェア論理は、従来技術において知られた任意のメモリ・タイプの、ローカルまたはリモートあるいはその両方のメモリに格納されてよい。ＡＳＩＣ、ＦＰＧＡ、中央処理装置（ＣＰＵ：central processing unit）、集積回路（ＩＣ：integrated circuit）、グラフィック処理装置（ＧＰＵ：graphics processing unit）といった、ソフトウェア・プロセッサ・モジュールまたはハードウェア・プロセッサあるいはその両方などの、従来技術において知られた任意のプロセッサが使用されてよい。
【００６５】
上で提示された説明から複数の組み合わせを作成して、前述のシステムまたは方法あるいはその両方のさまざまな特徴が任意の方法で組み合わせられてよいということは、明らかである。
【００６６】
本発明の実施形態が、サービスをオンデマンドで提供するように顧客のために展開されるサービスの形態で提供されてよいということがさらに理解されるであろう。
【００６７】
本発明のさまざまな実施形態の説明は、例示の目的で提示されているが、網羅的であることは意図されておらず、開示された実施形態に制限されない。記載された実施形態の範囲および思想を逸脱することなく多くの変更および変形が可能であることは、当業者にとって明らかであろう。本明細書で使用された用語は、実施形態の原理、実際の適用、または市場で見られる技術を超える技術的改良を最も適切に説明するため、または他の当業者が本明細書で開示された実施形態を理解できるようにするために選択されている。
【図１】
2021510897.tif 000003
【図２】
2021510897.tif 000004
【図３】
2021510897.tif 000005
【図４】
2021510897.tif 000006
【図５】
2021510897.tif 000007
【図６】
2021510897.tif 000008
【図７】
2021510897.tif 000009
【国際調査報告】
2021510897.tif 000010
2021510897.tif 000011