(57)【要約】【課題】メモリエラーと冗長を提供する。【解決手段】  メモリセルの追加ロウ、及び/又は、カラムを含む冗長がメモリに加えられ、EECパリティはエラーの検出に用いられる。エラーがある位置で、一度発生する場合、ソフトエラーであると見なし、データはこの位置で校正され、失効セルのアドレス（失効アドレス）はリストに保存される。別のエラーが発生する時、その失効アドレスが保存リスト上にあるか判断する。ない場合、エラーは、再度、ソフトエラーであると見なされ、この位置のデータが校正され、失効アドレスが保存アドレスリストに加えられる。しかし、失効アドレスが既に、保存失効アドレス中にある場合、エラーは、潜在エラーかVTRであると見なされ、オンチップ冗長を用いて修復される。【選択図】  図１
2011054263.tif 000002
【特許請求の範囲】
【請求項１】
方法であって、
メモリ中で、失効位置のアドレスを捕捉するステップと、
前記アドレスに基づいて、エラー形態を判断するステップと、
前記エラー形態がソフトエラーを含まない場合、冗長により、前記エラーを修復するステップと、
を有することを特徴とする方法。
【請求項２】
前記エラー形態の決定は、前記失効位置の前記アドレスとアドレスのリストを比較するステップを含むことを特徴とする請求項１に記載の方法。
【請求項３】
更に、前記エラー形態が前記ソフトエラーを含む場合、前記失効位置への次のアクセスの前に、前記失効位置を上書きするステップを含むことを特徴とする請求項１に記載の方法。
【請求項４】
前記失効位置の上書きは、前記メモリを用いたアプリケーションにより実行されるか、或いは、前記上書きを手配する前記メモリを用いたシステムにより実行されることを特徴とする請求項３に記載の方法。
【請求項５】
更に、前記エラー形態が前記ソフトエラーを含む場合、正確なデータを前記失効位置に上書きするステップを含むことを特徴とする請求項１に記載の方法。
【請求項６】
更に、前記エラー形態が前記ソフトエラーを含む場合、前記アドレスをリストに保存するステップを含むことを特徴とする請求項１に記載の方法。
【請求項７】
冗長の利用は、メモリバンク中のメモリセルの少なくとも一つの冗長ロウを提供すること、冗長バンク中のメモリセルの少なくとも一つの冗長ロウを提供すること、及び、メモリセルの少なくとも一つの冗長カラムと関連するカラム回路を提供すること、の一つ、或いは、組み合わせを含むことを特徴とする請求項１に記載の方法。
【請求項８】
冗長の利用は、冗長ロウに対する前記失効位置を含むロウを代替するステップを含むことを特徴とする請求項１に記載の方法。
【請求項９】
前記失効位置と前記冗長ロウを含む前記ロウは同じバンクにあるとことを特徴とする請求項８に記載の方法。
【請求項１０】
冗長の利用は、冗長ワードの前記失効位置を含むワードを代替するステップを含むことを特徴とする請求項１に記載の方法。
【請求項１１】
前記失効位置を含む前記ワードは、前記冗長ワードを含むバンクと同じバンク中にあることを特徴とする請求項１０に記載の方法。
【請求項１２】
前記失効位置を含む前記ワードは、前記冗長ワードを含むバンクと異なるバンク中にあることを特徴とする請求項１０に記載の方法。
【請求項１３】
冗長の利用は、メモリセルの冗長カラムと関連回路の前記失効位置を含むメモリセルのカラムと関連回路を代替するステップを含むことを特徴とする請求項１０に記載の方法。
【請求項１４】
冗長により前記エラーを修復するのは、オンザフライで実行されることを特徴とする請求項１０に記載の方法。
【請求項１５】
方法であって、
メモリ位置でエラーを検出するステップと、
前記エラーがソフトエラーであると識別し、前記エラーが、前記メモリ位置で始めて発生する場合、前記メモリ位置のアドレスをリストに加えるステップと、
前記エラーが、前記メモリ位置で、少なくとも二回発生する場合、冗長位置により、前記メモリ位置を代替するステップと、
を有することを特徴とする方法。
【請求項１６】
更に、前記メモリ位置と同一のメモリバンク中に、少なくとも一つの冗長ロウを提供するステップを含むことを特徴とする請求項１５に記載の方法。
【請求項１７】
冗長位置により、前記メモリ位置を代替するのは、
前記メモリ位置を含むロウと、前記冗長位置を含む冗長ロウを対応させるステップと、
前記メモリ位置を含む前記ロウから前記冗長ロウにデータを複製するステップと、
正確なデータを前記冗長位置に書き込むステップと、
前記メモリ位置にアクセスする時、前記冗長位置へのアクセスをリダイレクトするステップと、
を有することを特徴とする請求項１６に記載の方法。
【請求項１８】
冗長位置により、前記メモリ位置を代替するのは、
前記メモリ位置を含むワードと、前記冗長位置を含む冗長ワードを対応させるステップと、
前記メモリ位置を含む前記ワードから前記冗長ワードにデータを複製するステップと、
正確なデータを前記冗長位置に書き込むステップと、
前記メモリ位置にアクセスする時、前記冗長位置へのアクセスをリダイレクトするステップと、
を有することを特徴とする請求項１６に記載の方法。
【請求項１９】
更に、
前記メモリ位置のメモリバンクから分離した冗長バンク中に、少なくとも一つの冗長ロウを提供するステップと、
冗長位置を用いて、前記メモリ位置を代替するステップと、
からなり、前記メモリ位置を代替する前記ステップは、
前記メモリ位置を含むワードと、前記冗長位置を含む冗長ワードを対応させるステップと、
前記メモリ位置を含む前記ワードから前記冗長ワードにデータを複製するステップと、
正確なデータを前記冗長位置に書き込むステップと、
前記メモリ位置にアクセスする時、前記冗長位置へのアクセスをリダイレクトするステップと、
を有することを特徴とする請求項１５に記載の方法。
【請求項２０】
更に、
少なくとも一つの冗長カラムを提供するステップと、
冗長位置を用いて、前記メモリ位置を代替するステップと、
からなり、前記メモリ位置を代替する前記ステップは、
前記メモリ位置を含むカラムと、前記冗長位置を含む冗長カラムを対応させるステップと、
前記メモリ位置を含む前記カラムから前記冗長カラムにデータを複製するステップと、
正確なデータを前記冗長位置に書き込むステップと、
前記メモリ位置にアクセスする時、前記冗長位置へのアクセスをリダイレクトするステップと、
を有することを特徴とする請求項１５に記載の方法。
【請求項２１】
前記冗長位置に正確なデータを書き込むのは、前記冗長位置中のデータを、前記ソフトエラーに対応するデータと見なすステップを含むことを特徴とする請求項２０に記載の方法。
【請求項２２】
前記エラーが、前記メモリ位置で、少なくとも二回発生するかは、前記メモリ位置の前記アドレスと前記リストに基づいて判断されることを特徴とする請求項１５に記載の方法。
【請求項２３】
（１）読み取りアクセスの前に、メモリのアプリケーションを用いて、前記メモリ位置を上書きする、
（２）読み取りアクセスの前に、前記メモリの処理ユニットを用いて、前記メモリ位置の書き込みを手配する、
（３）前記エラーがソフトエラーであると見なされる場合、前記メモリ位置を上書きする、
からなる群から選択される方法を実行するステップを含むことを特徴とする請求項１５に記載の方法。
【請求項２４】
冗長により前記メモリ位置を代替するのは、オンザフライで実行されることを特徴とする請求項１５に記載の方法。
【請求項２５】
方法であって、
メモリ中で、失効位置のアドレスを捕捉するステップと、
前記アドレスがソフトエラーアドレスのリストにない場合、ソフトエラー校正を実行するステップと、
前記アドレスがソフトエラーアドレスのリストにある場合、ハードエラー校正を実行するステップと、
を有し、
前記ソフトエラー校正は、
前記アドレスを前記リストに加えるステップと、
前記失効位置へのアクセスの前に、前記メモリのアプリケーションを用いて、前記失効位置を上書きするステップと、
前記失効位置へのアクセスの前に、前記メモリの処理ユニットを用いて、前記失効位置に上書きするように手配するステップと、
前記失効位置を上書きするステップと、からなる群から選択される方法により、前記失効位置を修復し、
前記ハードエラー校正は、
冗長ロウにより、前記失効位置を含むロウを代替するステップと、
冗長ロウにより、前記失効位置を含むワードを代替するステップと、
冗長ロウにより、前記失効位置を含むカラムを代替するステップと、からなる群から選択される方法により、前記失効位置を修復することを特徴とする方法。
【請求項２６】
冗長ロウにより、前記失効位置を含むロウを代替する時、前記冗長ロウは、前記失効位置を含む前記ロウと同じバンクにあることを特徴とする請求項２５に記載の方法。
【請求項２７】
冗長ワードにより、前記失効位置を含むワードを代替する時、前記冗長ロウは、前記失効位置を含む前記ロウと同じバンクにあることを特徴とする請求項２５に記載の方法。
【請求項２８】
冗長ワードにより、前記失効位置を含むロウを代替する時、前記冗長ロウは、前記失効位置を含むバンクと異なるバンクにあることを特徴とする請求項２５に記載の方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、メモリエラーに関するものである。各実施例は、ECC (Error Checking and Correcting）と冗長ロウ（redundancy row）と冗長カラム（redundancy column）を用いて、潜在エラーとVRTを修復する。
【背景技術】
【０００２】
メモリは、よく、各種エラーを発生する。ソフトエラー（Soft error）は、通常、半導体パッケージ中のアルファ粒子（alpha particle）、及び、環境中の中性子(neutron)に起因する。VRT は、一ビットが、時に弱いビット(失敗等)、時に強いビット (パス等)である時発生し、この現象は、装置が最終テストをパスしたとしても(装置が半導体メーカーから発送される前のテスト)、後に断続的に失効する。VRT は、通常、メモリの同一アドレスで再発する以外、ソフトエラーと相似する現象がある。一ビットを保存するトランジスタのゲート酸化物とドレイン間の電気的短絡（electrical short）により、半導体回路中のパフォーマンスは、時間と共に減衰する。メモリ中で発生するこの縮退エラー（stuck-at error）は、潜在失効（latent failure）を生じ、潜在失効は、装置がテストを適切にパスして、製造業者から離れた後（例えば、５〜１０年後）に失効が生じる。ソフトエラーは不規則に発生し、且つ、相同の位置で発生する可能性は極めて低く、VRTと潜在エラーは同じ位置で、何度も発生する。バーンインテスト（Burn-in test）は潜在エラーを改善することができるが、費用が高い。
【０００３】
エラー発生時、コンテント・アドレッサブル・メモリ(content addressable memory、CAM) に関する幾つかのアプローチは、シャドウメモリ（shadow memory）を用いて、内部DRAMから外部SRAMへ、メモリをリダイレクトするが、外部回路とレイアウト面積のせいで、シャドウメモリは価格が高い。
【０００４】
エラー検出と訂正は、ネットワークシステムを含む電子回路に幅広く用いられている。へミングコード（Hemming code）で、32 ビットが用いられる場合、6 追加ビットを加えて、単一誤り訂正（single error correction）を実行し、7 追加ビットが加えられて、単一誤り訂正と二重誤り検出（double error detection）を実行する。追加ビットはECC 、或いは、パリティビット（parity bit）と称される。
【図面の簡単な説明】
【０００５】
【図１】本発明の実施例が採用する例示的なシステム100を示す図である。
【図２】eDRAM 120-1-1の第一実施例を説明するeDRAM 200 を示す図である。
【図３】eDRAM 120-1-1の第二実施例を説明するeDRAM 300 を示す図である。
【図４】eDRAM 120-1-1の第三実施例を説明するeDRAM 400 を示す図である。
【図５】本発明の実施例による決定木 500である。
【発明を実施するための形態】
【０００６】
図1は、本発明によるシステム100を示す図である。システム100は、SoC (system-on-chip) 120、SoC120外部に位置するASIC (application specific integrated circuit) 130、及び、ソフトウェアを含む回路（簡潔にするため、図示されない）からなる。実施例中、システム100 は、ネットワークルーターかネットワークスイッチを含むが、本発明のその他の実施例は、このようなアプリケーションに限定されず、別のシステム中に応用することもできる。実施例に基づくと、システム100は、エラーの修復、或いは、その他のユニット、例えば、SoC 120、ASIC 130等のエラー修復に用いることができる。この他、エラーが最初に発見された時、或いは、その他の適当な時間で、エラー修復をスケジュールする時、システム100 はエラーを修復する。エラー修復方法は、ECC エンジン 120-1-3により計算、並びに、提供されるデータによりデータを重ね書きするか、或いは、失効領域中に存在するデータのロジックレベルをフリッピングすることを含む。
【０００７】
SoC 120 は、eDRAM 120-1-1を用いたサブシステムを示し、修復が必要なエラーを含む。一般に、SoC 120 は、複合電子、或いは、コンピュータシステムを含み、チップに整合されるサブシステムを有する。SoC 120の範例素子は、CPU (central processing unit)、 データストレージユニット (メモリ等)、IO コントローラー、デジタル、及び/又は、アナログ回路を含み、全て、図示されていない。実施例中、 SoC 120 は、ネットワークパッケージバッファ（network package buffer）を含み、データパケットを保存、処理、並びに、適時に提供する。例えば、本文中のシステム、或いは、サブシステムは、インテリジェント能力(処理、演算等の能力)を有する演算器を含む。
【０００８】
IP-マクロ120-1は、一般に、機能ブロック（functional block）、サブシステム等である。図1の実施例で、IP-マクロ 120-1は eDRAM 120-1-1 (例えば、メモリ等)を含むので、IP-マクロ 120-1 は、メモリサブシステムと称される。
【０００９】
eDRAM 120-1-1 は、一般に、メモリセルの複数のバンクを含む。各バンクは、数個のロウ、数個のカラム、及び、相関回路（センス増幅器、ワードライン、ビットライン等)を含む。eDRAM 120-1-1の容量は、アプリケーションに基づいて変化し、例えば、容量は1、2、4 Mbである。メモリセルのロウはワードと称される。本発明の様々な実施例は、それぞれ、各種メカニズムを提供して、eDRAM 120-1-1で発生するエラー(ソフトエラー、潜在エラー、VRT等)を即時に修正する。本文中のeDRAM 120-1-1 は、説明しやすくするため、その他のメモリ装置、例えば、SRAM、フラッシュ、ワンタイムプログラム(OTP)、マルチタイムプログラム (MTP)等は、どれも、本発明の範囲内である。eDRAM 120-1-1 は、適時に、パリティビットにより、データをASIC 130 に伝送することができる。
【００１０】
冗長エンジン120-1-2 は、eDRAM 120-1-1にアクセスするアドレスと、メモリ中の既知の失効位置を比較するのに用いられ、目的は、アクセス位置をその他の冗長、或いは、スペア位置にリダイレクトして、既知の失効メモリ領域を代替することである。通常、製造段階中の最終テスト時、全ての冗長位置は、既にプログラム化され、発送されている。各実施例中、数個のスペア位置が保留されて、潜在エラー、或いは、VRTエラーが発見された時に、代替作業を行う。
【００１１】
各実施例中、冗長エンジン120-1-2は失効位置のアドレスを保存する。エラーがこの領域で発生する時、例えば、冗長エンジン120-1-2は、失効アドレスエンジン 120-2-2により提供される情報に基づいて、失効位置を識別し、失効位置を修復するのに用いられる対応する冗長位置を制御、認証する。失効位置が一旦修復されると、冗長エンジン 120-1-2は、適時に、失効領域へのアクセスを冗長（修復）位置にリダイレクトする。一般に、エラーが発生すると、次のアクセス前に、エラーの修復をする十分な時間がない。ハードエラーの場合、 ECCエンジン 120-1-3 が継続して、シングルビットエラーをカバーし、修復されるまで、データを保護する。この方法は、発見と修復作業の時間が十分にある。
【００１２】
アプリケーションに基づいて、eDRAM 120-1-1中のエラーは、異なる方法で修復される。例えば、 データがeDRAM 120-1-1中で、かなり長い間、スタティックである場合、冗長エンジン 120-1-2 は、暫く経って、修復スケジュールを組む(例えば、ECCエンジン 120-1-3、SoC 120、或いは、システム100により修復を実行する等) が、データが過渡である場合、アプリケーション自身は、新しいデータにより失効位置を上書きし、上書きや校正の必要を否定する。例えば、eDRAM 120-1-1 が循環FIFO 入力クロックから出力クロックドメインアラインメントとして実行されるアプリケーション中、FIFOを利用するアプリケーションは、次のデータのアクセス前に、データを失効位置に書き込み、各実施例中、FIFOを用いたアプリケーションはデータを上書きし、実質的に、エラーデータを修復する。その結果、エラーデータは、いかなる追加動作なしに修復される。
【００１３】
一般に、ECCエンジン120-1-3 は、他の回路（eDRAM 120-1-1、 ASIC 130等）と通信する時、インバウンドデータ（inbound data）をエンコードして保存し、アウトバンドデータ（outbound data）をデコード、並びに、校正する。ECCエンジン 120-1-3は、インバウンドデータを識別し、必要なパリティビットをデータに加える。eDRAM 120-1-1 がアクセスされる時、ECCエンジン120-1-3 がエラーを発見するかに基づいて、データと関連するパリティビットがECCエンジン120-1-3に伝送される。一般に、eDRAM 120-1-1中にエラーが発生する時、ECCエンジン 120-1-3は、データと関連するパリティビットに基づいて、エラー発生を識別し、失効ビットのアドレスを確認し、そのエラーを表示する。実施例で、ECCエンジン 120-1-3 は、６個のパリティビットを用いて、32ビットのデータワード中の単一誤りを校正し、７個のパリティビットを用いて、単一誤りを校正し、二重誤りを検出する。各実施例中、ECCエンジン 120-1-3 は、SoC 設計者により設定され、よって、各種設計規格下の異なるデータ幅に適合し、メモリブロックインスタンスに組み込まれる時、ECCエンジンが、データ幅に制限されるその他の方法において長所を有する。この柔軟性は、本発明のある実施例に、更に、メモリコンパイラの設計と製造との互換性を有させる。本発明の各実施例は、公知のECCエンジン 120-1-3 を用いることができる。
【００１４】
公知のRTL 120-2は、一般に、各種機能ブロックにより実行される標準のASIC セルを有する。一般に、ビルトイン自己冗長試験BISTR (built-in self test with redundancy) エンジン 120-2-1 が、修復アルゴリズムを有する顧客に提供され、エラーを適時に修復する時、顧客はRTL-120-2を生成する。実施例中、BISTR エンジン 120-2-1 は、他の実体（SoC 120、 eDRAM 120-1-1等）により用いられる失効アドレスを捕捉し提供する能力を有する。BISTR 120-2-1 は、更に、失効位置を修復する能力も有する。実施例中、BISTR エンジン 120-2-1は、失効アドレスエンジン 120-2-2と共に使用し、SoC 120のBISTR エンジン 120-2-1中に既に存在する修復演算法を運用して、各処理されたアドレスを取得すると共に、修復を待つアドレスを識別する。ある実施例中、BISTR 120-2-1中にある回路を用いるので、回路配置空間を省略することができる。
【００１５】
失効アドレスエンジン 120-2-2は、失効の歴史(記録された失効アドレスのリスト)に基づき、失効の形態と取るべき行動と判断する。ソフトエラーは不規則に発生し、且つ、相同の位置で反復する可能性は極めて低いので、エラーが同じ位置で一度発生する場合（例えば、第一回）、失効アドレスエンジン 120-2-2 は、それをソフトエラーであると見なす。しかし、エラーが同じ位置で二回以上発生する場合 (例えば、第二回、第三回等)、失効アドレスエンジン 120-2-2 は、潜在エラーかVRTであると見なす。説明を便利にするため、本文中の潜在エラーやVRTは、“ハードエラー”と称する。各実施例中、失効アドレスエンジン 120-2-2 は失効アドレスのリストを保存する。エラーが発生する時、失効アドレスエンジン 120-2-2 は、失効アドレスと保存された失効アドレスを比較する。適合しない場合、失効アドレスエンジン 120-2 は、エラーをソフトエラーと仮定する。しかし、適合する場合、失効アドレスエンジン 120-2-2 は、そのエラーをハードエラーと見なす。失効アドレスエンジン 120-2-2、 は、ECCエンジン 120-1-3により提供される情報に基づいて、失効位置中の正確なデータを計算し、そのデータを冗長エンジン 120-1-2に提供する。失効アドレスエンジン 120-2-2は、適時に、失効アドレスを修復する要求を冗長エンジン 120-1-2に伝送し、スペアの冗長により修復することができる。異なる実施例中、CAM (content-addressable memory)を用いて、失効アドレスエンジン 120-2-2 とするか、或いは、BISTR エンジン 120-2-1 中で捕捉、比較された機能を失効アドレスエンジン 120-2-2 の一部として、エラー形態を判断する。
【００１６】
ASIC 130 は、一般に、特定のアプリケーション設計を有し、図1の実施例中、NPU (network processing unit)を含む。ASIC 130 は、システム100の中枢部と見なされる。各実施例中、 ASIC 130 は ECC フラッグを監視し、データが正確か、修復の必要があるか判断する。フラッグが検出されれば(エラーが識別される)、ASIC 130 は、フラッグアドレス (失効セルのアドレス)を保存する。ASIC 110が修復の必要なデータを発見した時、アドレスを特定し、失効アドレスエンジン 120-2-2に伝送する。実施例中、ASIC 130 は、修復時間を遅延させることができ、システム100 は、エラー修復のよい時期を決定する。アプリケーションに基づくと、SoC 120 はこれらの機能を実行することができる。
【００１７】
eDRAMの第一実施例
図２は、eDRAM 120-1-1の第一実施例であるeDRAM 300を示す図である。eDRAM 200 は複数のメモリバンクからなるが、説明を簡潔にするため、本文では、メモリバンク245 と 冗長エンジン 120-1-2だけを例とする。
【００１８】
eDRAM 200 の各メモリバンクは、複数のメモリセルのロウとカラム、関連回路からなり、複数の冗長ロウ210は、eDRAM 200中のエラー修復に用いられる。冗長ロウ210の数量は、アプリケーションの応用と設計によって変化し、異なる要素によって考慮し、例えば、eDRAM 200の期待する寿命、及び、この寿命中の推定失効回数を含む。説明を簡潔にするため、失効セル 240-5 を含むロウは失効ロウと称され、メモリバンク245は、失効ロウ240と、失効ロウ240を代替する冗長ロウ210を有する。冗長ロウ210は、失効位置240-5に対応する冗長位置210-5を有する。
【００１９】
“ハードエラー” のために、失効ロウ240を代替する前に、冗長エンジン 120-1-2 は、冗長ロウ 210 を識別して、失効ロウ 240を代替する。一般に、eDRAM 200は、BIST エンジン 120-2-1中の修復アルゴリズム、或いは、冗長エンジン 120-1-2で指定される専用領域により、失効アドレスエンジン 120-2-2 から、失効位置240-5のアドレスを受信し、失効アドレスは、修復される失効ロウ 240に対応する。実施例中、冗長エンジン 120-1-2 は、ローカルセンス増幅器220中の失効ロウ 240 のデータを捕捉し、冗長エンジン 120-1-2のグローバル書き込みドライバ（global write drivers）により、正確なデータをローカルセンス増幅器220に書き込む。その後、冗長エンジン 120-1-2 は、失効ロウ 240 を代替する冗長ロウ 210 を駆動し、ローカルセンス増幅器220から冗長ロウ 210にデータを書き込む。実施例中、ロウ240全体のメモリセルデータは、失効ロウ 240から冗長ロウ 210に平行に転移され、直列にデータを転移するよりも時間を節約できる。実施例中、ロウ240全部ではなく、失効位置 240-5を含むワードが修復、つまり、冗長ロウ 210に複製される。一旦、エラーが完全に修復されると、冗長エンジン 120-1-2 は、将来の失効ロウ 240 中の失効アドレス 240-5 に対するアクセスを、冗長ロウ 210中の対応する修復アドレス210-5にリダイレクトする。実施例中、失効アドレスエンジン 120-2-2 は、失効位置240-5 と対応する冗長位置を冗長エンジン 120-1-2のレジスタ中にプログラム化する。eDRAM 120-1-1 がアクセスされると、アクセスアドレスは、レジスタによりこのアドレスを確認し、適合する場合、冗長エンジン 120-1-2 は、このアクセスを、レジスタ中に保存された正確な冗長位置210-1 にリダイレクトする。
【００２０】
各実施例中、回路中の全センス増幅器は、バンクの上下間に挟まれ、グローバルビットラインを共用する。実施例中、データは、一周期内で、エラーロウから冗長ロウに転移することができないが、2 、或いは、それ以上の周期内で完成することができる。
【００２１】
ある実施例、一個、或いは、二個の NOP 指令で、エラーを修復することができる（エラービットを含むロウをスワッピングする）。よって、これらの実施例は、システム操作に対する不良影響が小さい。
【００２２】
eDRAMの第二実施例
図3は、eDRAM 120-1-1の第二実施例であるeDRAM 300を示す図である。本実施例中、eDRAM 200と比較すると、各メモリバンク(メモリバンク245) は冗長ロウ210を含んでいない。しかし、eDRAM 300中の冗長ロウ210は、分離冗長バンク、例えば、冗長バンク255に含まれている。各種実施例により提供される冗長バンク255 と冗長バンク255中の冗長ロウ210の数量は、異なるアプリケーションと設計によって変化し、例えば、eDRAM 400の所望の寿命、 寿命での推定失効回数等である。
【００２３】
ある実施例中、冗長バンク255を含む各種メモリバンク 245は、グローバルビットライン、或いは、グローバルデータラインにより接続され、ローカルセンス増幅器(図2のローカルセンス増幅器)の出力端を、グローバルセンス増幅器 (図示しない)に接続する。ECCエンジン 120-1-3 により提供される情報に基づくと、冗長エンジン120-1-2 は、失効位置240-5 、及び/又は、失効ワード 240-1 を識別し、例えば、グローバルビットラインにより、失効位置240-5中の失効データを反転する等の適当な動作を採取する。例えば、失効アドレスエンジン 120-1-2 は、ECCエンジン 120-1-3 により提供されるデータを用いて、正確なワードデータを形成し、このデータを冗長ワード 210-1 中に書き込む。
【００２４】
実施例中、冗長エンジン 120-1-2 は、修復される失効ロウ240をプログラム化し、失効ワード240-1中のデータを対応する冗長ワード210-1に複製する。実施例中、冗長エンジン 120-1-2 は書き込みのスケジュールを組んで、正確なデータを冗長位置210-5に書き込むか、或いは、遅延書き込みを次のキューサイクルにキューし、NOP操作を必要としない。実施例中、冗長エンジン 120-1-2 は、失効位置240-5中の正確なデータを、次の自由周期で、冗長位置210-5に書き込む。
【００２５】
失効位置240-5を含む失効ワード240-1が一旦、完全に修復されると、 冗長エンジン 120-1-2 は、失効位置240-5へのデータアクセスを、正確な冗長位置210-5にリダイレクトする。
【００２６】
冗長バンク245中の冗長ロウ 210 は、失効位置240-5 、及び/又は、異なるメモリバンク中の失効ワード240-1 を修復するのに用いることができるので、図3のある実施例は多くの長所がある。
【００２７】
eDRAMの第三実施例
図4 は、eDRAM 120-1-1の第三実施例であるeDRAM 400 を示す図で、eDRAM 200 や 300と比べると、複数の冗長セルとビットライン、センス増幅器等の関連回路を含み、ビットライン、及び/又は、ビットラインセンス増幅器上のエラーを修復するのに用いられる。説明を便利にするため、失効位置 240-5 を含むカラムは、失効カラム440と称され、メモリバンク 245は、失効カラム 440 と冗長カラム 410を有することを示し、失効位置 240-5に対応する冗長位置 210-5 を含む。各種実施例により提供される冗長カラム410 の数量は、アプリケーションと設計に基づいて変化し、異なる要素によって決定され、例えば、eDRAM 400の期待する寿命、及び、この寿命中の推定失効回数を含む。
【００２８】
この例中、ハードエラーは、センス増幅器中で発見され、失効カラム 440中の全セルに影響する。冗長エンジン 120-1-2 は、失効カラム 440中の各セルと冗長カラム 410中の各セルを交換する。一旦、失効カラム 440 が 冗長カラム (メモリセル、 センス増幅器等)により代替されると、冗長カラム 410中の全セルは、正確で、適切なデータが書き込まれる。実施例中、それらの冗長セルはソフトエラーを有すると見なし、各種実施例の精神と一致する正確なソフトエラーに校正する。例えば、冗長カラム 410中のセルへのアクセスがある時、ECCエンジン 120-1-3 はエラーを検出し、これが、その位置の第一エラーなので、ECCエンジン 120-12 は、それをソフトエラーと見なし、適当な方式で修復する。
【００２９】
或いは、冗長エンジン 120-1-2 は、冗長カラム 410中に、正確なデータを書き込む時間を手配し、例えば、冗長エンジン 120-1-2 は数個の周期を待つか、或いは、NOP 指令を要求し (システム100から、SoC 120から、ASIC 130から等) 、データを書き込む。例えば、冗長カラム 410中に128個のセルがある場合、冗長エンジン 120-1-2 は 128セルを書き込み (128 回)、256個のセルがある場合、冗長エンジン 120-1-2 は 256セルを書き込む。
【００３０】
決定木の一例
図5 は、本発明の実施例による決定木 500を示す図である。実施例中、決定木500は、有限状態機械（finite state machine）で実行され、例えば、ソフトウェアにより、プロセッサ上で運転するハードウェアロジック等を含む。決定木 500は、システム100、SoC 120、ASIC 130等、異なる位置で運転する。本文中、決定500は、失効アドレスエンジン 120-2-2で実行される。
【００３１】
ブロック510中、eDRAM 120-1-1 がアクセスされる。この時、ECCエンジン 120-1-3 はエラーを監視する。エラーが発生する場合、アドレスエンジン120-2-2 は、ECCエラーにより生じるエラーフラッグにより示される失効アドレスを捕捉する。
【００３２】
ブロック 520中、失効アドレスエンジン 120-2-2 は、ECCエンジン 120-1-3 がエラーをフラッグしたか判断する。ECCエンジン 120-1-3 がエラーをフラッグしていない場合、ブロック530中、失効アドレスエンジン 120-2-2は通常運転し、システム100 は正常運転を継続する。
【００３３】
しかし、ECCエンジン 120-1-3 はエラーをフラッグし、失効位置 240-5の失効アドレスを捕捉する場合、ブロック540中、失効アドレスエンジン 120-2-2は、ECCエンジン 120-1から失効アドレス位置240-5 を受信し、失効アドレス位置 240-5 と前の失効アドレスのリストを比較し、失効アドレスのリストは、実質的に、ソフトエラー（SER)アドレスのリストを含む。
【００３４】
符合しない場合 (失効アドレス位置 240-5 が保存されたSERアドレスリスト中にない)、失効アドレスエンジン 120-2-2は、新しい失効位置を識別し、ソフトエラーと見なし、ブロック 560中、失効アドレス位置240-5をSERアドレスのリストに保存する。
【００３５】
ブロック570中、失効アドレスエンジン 120-2-2 はSER 失効を校正する。実施例中、失効アドレスエンジン 120-2-2は、この失効SER位置240-5 が正確なデータに上書きされるのを待つ。或いは、失効アドレスエンジン 120-2-2 は、正確なデータとECCエンジン 120-2-3により提供される失効位置 240-5 を用いて、失効位置 240-5に現在保存されている誤ったデータを反転させる。各種実施例中、 失効アドレスエンジン 120-2-2 は、eDRAM 120-1-1を用いて、失効位置を上書きすることができる。一般に、失効アドレスエンジン120-2-2が、次の読み取りアクセス前に、データが上書きされると認識する場合、これが実行される。定義により、失効位置 はエラーを修復する。
【００３６】
ブロック 580中、一旦、失効位置 240-5 が完全に修復されると (正確なデータを書き込む)、失効アドレスエンジン 120-2-2 は、失効アドレス位置240-5にタグをつけて、失効が修復されたことを示し、失効位置 240-5 は正常な機能のセルと見なされる。
【００３７】
しかし、ブロック540の判断後、適合を発見する時（失効アドレス240-5 が失効アドレスのリスト中にある）、失効アドレスエンジン 120-2-2 はこれがソフトエラーでないとみなし、失効が同じ位置240-5で少なくとも二回発生するので、このエラーはハードエラーと見なされる。
【００３８】
ハードエラーが未修復の場合、ブロック590中、失効アドレスエンジン 120-2-2 は、冗長エンジン 120-1-2 がハードエラーを修復するのを待つ。実施例中、失効アドレスエンジン 120-2-2 と冗長エンジン 120-1-2 は、冗長ロウ 210 を識別して、失効ロウ 240を代替し、冗長ワード 210-1を識別して、失効ワード240-1を代替するか、或いは、冗長カラム 410 を識別して、失効カラム 440を代替する。
【００３９】
各種実施例中、一旦、冗長ロウ 210、冗長ワード210-1、或いは、冗長カラム 410が確認されると、冗長位置 210-5は正確なデータを含まなくてもよい。ブロック 595中、失効アドレスエンジン 120-2-2 は、冗長位置 210-5中のデータを校正する。実施例中、冗長エンジン120-1-2は、冗長位置 210-5の上書きを待つか、或いは、冗長エンジン120-1-2は、適時に、冗長位置 210-5中のデータを上書きする。図4のカラム交換の実施例中、冗長エンジン 120-1-2 は、冗長カラム 410中の全セルを上書きする。或いは、冗長エンジン 120-1-2 は、ECCエンジン120-1-3により提供される正確なデータと失効位置 240-5 のアドレスを用いて、冗長位置 210-5中のデータのロジック状態を反転させる。
【００４０】
冗長位置 210-5 は、一旦、正確なデータが書き込まれる（エラーが完全に修復される）と、 ブロック598中、失効アドレスエンジン 120-2-2は失効位置 240-5 を完全に修復されたと表示する。
【００４１】
しかし、ブロック540の判断後、失効位置 240-5 がソフトエラーでなく、一度、修復されているが、また、失効する場合、ブロック550中、システム100 は修復不能と見なし、継続して、正常作動する。
【００４２】
本発明の実施例は、多種の長所があり、エラー処理（error handling）、及び/或いは、修復は、サブシステム(SoC 120、 ASIC 130、 システム100等)中に含まれ、他の回路とのハンドシェーキング（handshaking）が不要で、よって、単一チップソリューションと見なされる。例えば、図1の実施例中、SoC 120 はエラー処理し、冗長エンジン 120-1-2、 ECCエンジン 120-1-3、 及び、失効アドレスエンジン 120-2-2、 は、全て、単一SoC 120中に含まれ、システム100 は、SoC 120 と ASIC 130間のエラーハンドシェーキングを必要とせず、エラーが発生したか、及び/又は、修復されたかを判断する必要もない。
【００４３】
本文は、本発明の数個の実施例を説明した。理解できることは、当該技術を熟知する者なら誰でも、本発明の精神と領域を脱しない範囲内で各種の変動や潤色を加えることができることである。例えば、 図1で、ECCエンジン 120-1-3 が IP-マクロ 120-1 中に位置しているが、ECCエンジン 120-1-3 は、その他の位置、例えば、RTL 120-2、ASIC 130に位置してもよい。ECCエンジン 120-1-3の位置の選択は、設計上の考慮、顧客選好により調整し、本発明の実施例中、ECCエンジン 120-1-3の位置を限定するものではない。失効アドレスエンジン 120-2-2 は、 RTL 120-2で独立し、即ち、RTL 120-2の外側、 或いは、SoC 120、ASIC 130中に位置し、本発明の実施例は、失効アドレスエンジン 120-2-2の位置を限定するものではない。上述の実施例は、システム100、 SoC 120、 ASIC 130、失効アドレスエンジン 120-2-2 の機能 (エラーの修復、エラーのスケジューリング、NOP 指令の発布等)を説明しているが、これらの機能は、他の回路により代替でき、本発明は、特定回路の特定機能により実施することに限定されない。SoC 120がシステム100 や ASIC 130を代替して、eDRAM 120-1-1の失効アドレスを修復する時間を手配することができる。
【００４４】
本発明では好ましい実施例を前述の通り開示したが、これらは決して本発明に限定するものではなく、当該技術を熟知する者なら誰でも、本発明の精神と領域を脱しない範囲内で各種の変動や潤色を加えることができ、従って本発明の保護範囲は、特許請求の範囲で指定した内容を基準とする。
【図１】
2011054263.tif 000003
【図２】
2011054263.tif 000004
【図３】
2011054263.tif 000005
【図４】
2011054263.tif 000006
【図５】
2011054263.tif 000007
【手続補正書】
【提出日】平成22年10月5日(2010.10.5)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
方法であって、
メモリ中で、失効位置のアドレスを捕捉するステップと、
前記アドレスに基づいて、エラー形態を判断するステップと、
前記エラー形態がソフトエラーを含まない場合、冗長により、前記エラーを修復するステップと、
を有することを特徴とする方法。
【請求項２】
方法であって、
メモリ位置でエラーを検出するステップと、
前記エラーがソフトエラーであると識別し、前記エラーが、前記メモリ位置で始めて発生する場合、前記メモリ位置のアドレスをリストに加えるステップと、
前記エラーが、前記メモリ位置で、少なくとも二回発生する場合、冗長位置により、前記メモリ位置を代替するステップと、
を有することを特徴とする方法。
【請求項３】
更に、前記メモリ位置と同一のメモリバンク中に、少なくとも一つの冗長ロウを提供するステップを含むことを特徴とする請求項２に記載の方法。
【請求項４】
冗長位置により、前記メモリ位置を代替するのは、
前記メモリ位置を含むロウと、前記冗長位置を含む冗長ロウを対応させるステップと、
前記メモリ位置を含む前記ロウから前記冗長ロウにデータを複製するステップと、
正確なデータを前記冗長位置に書き込むステップと、
前記メモリ位置にアクセスする時、前記冗長位置へのアクセスをリダイレクトするステップと、
を有することを特徴とする請求項３に記載の方法。
【請求項５】
冗長位置により、前記メモリ位置を代替するのは、
前記メモリ位置を含むワードと、前記冗長位置を含む冗長ワードを対応させるステップと、
前記メモリ位置を含む前記ワードから前記冗長ワードにデータを複製するステップと、
正確なデータを前記冗長位置に書き込むステップと、
前記メモリ位置にアクセスする時、前記冗長位置へのアクセスをリダイレクトするステップと、
を有することを特徴とする請求項３に記載の方法。
【請求項６】
更に、
前記メモリ位置のメモリバンクから分離した冗長バンク中に、少なくとも一つの冗長ロウを提供するステップと、
冗長位置を用いて、前記メモリ位置を代替するステップと、
からなり、前記メモリ位置を代替する前記ステップは、
前記メモリ位置を含むワードと、前記冗長位置を含む冗長ワードを対応させるステップと、
前記メモリ位置を含む前記ワードから前記冗長ワードにデータを複製するステップと、
正確なデータを前記冗長位置に書き込むステップと、
前記メモリ位置にアクセスする時、前記冗長位置へのアクセスをリダイレクトするステップと、
を有することを特徴とする請求項２に記載の方法。
【請求項７】
更に、
少なくとも一つの冗長カラムを提供するステップと、
冗長位置を用いて、前記メモリ位置を代替するステップと、
からなり、前記メモリ位置を代替する前記ステップは、
前記メモリ位置を含むカラムと、前記冗長位置を含む冗長カラムを対応させるステップと、
前記メモリ位置を含む前記カラムから前記冗長カラムにデータを複製するステップと、
正確なデータを前記冗長位置に書き込むステップと、
前記メモリ位置にアクセスする時、前記冗長位置へのアクセスをリダイレクトするステップと、
を有することを特徴とする請求項２に記載の方法。
【請求項８】
前記冗長位置に正確なデータを書き込むのは、前記冗長位置中のデータを、前記ソフトエラーに対応するデータと見なすステップを含むことを特徴とする請求項７に記載の方法。
【請求項９】
前記エラーが、前記メモリ位置で、少なくとも二回発生するかは、前記メモリ位置の前記アドレスと前記リストに基づいて判断されることを特徴とする請求項２に記載の方法。
【請求項１０】
（１）読み取りアクセスの前に、メモリのアプリケーションを用いて、前記メモリ位置を上書きする、
（２）読み取りアクセスの前に、前記メモリの処理ユニットを用いて、前記メモリ位置の書き込みを手配する、
（３）前記エラーがソフトエラーであると見なされる場合、前記メモリ位置を上書きする、
からなる群から選択される方法を実行するステップを含むことを特徴とする請求項２に記載の方法。
【請求項１１】
冗長により前記メモリ位置を代替するのは、オンザフライで実行されることを特徴とする請求項２に記載の方法。
【請求項１２】
方法であって、
メモリ中で、失効位置のアドレスを捕捉するステップと、
前記アドレスがソフトエラーアドレスのリストにない場合、ソフトエラー校正を実行するステップと、
前記アドレスがソフトエラーアドレスのリストにある場合、ハードエラー校正を実行するステップと、
を有し、
前記ソフトエラー校正は、
前記アドレスを前記リストに加えるステップと、
前記失効位置へのアクセスの前に、前記メモリのアプリケーションを用いて、前記失効位置を上書きするステップと、
前記失効位置へのアクセスの前に、前記メモリの処理ユニットを用いて、前記失効位置に上書きするように手配するステップと、
前記失効位置を上書きするステップと、からなる群から選択される方法により、前記失効位置を修復し、
前記ハードエラー校正は、
冗長ロウにより、前記失効位置を含むロウを代替するステップと、
冗長ロウにより、前記失効位置を含むワードを代替するステップと、
冗長ロウにより、前記失効位置を含むカラムを代替するステップと、からなる群から選択される方法により、前記失効位置を修復することを特徴とする方法。
【手続補正２】
【補正対象書類名】明細書
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、メモリエラーに関するものである。各実施例は、ECC (Error Checking and Correcting）と冗長ロウ（redundancy row）と冗長カラム（redundancy column）を用いて、潜在エラーとVRTを修復する。
【背景技術】
【０００２】
メモリは、よく、各種エラーを発生する。ソフトエラー（Soft error）は、通常、半導体パッケージ中のアルファ粒子（alpha particle）、及び、環境中の中性子(neutron)に起因する。VRT は、一ビットが、時に弱いビット(失敗等)、時に強いビット (パス等)である時発生し、この現象は、装置が最終テストをパスしたとしても(装置が半導体メーカーから発送される前のテスト)、後に断続的に失効する。VRT は、通常、メモリの同一アドレスで再発する以外、ソフトエラーと相似する現象がある。一ビットを保存するトランジスタのゲート酸化物とドレイン間の電気的短絡（electrical short）により、半導体回路中のパフォーマンスは、時間と共に減衰する。メモリ中で発生するこの縮退エラー（stuck-at error）は、潜在失効（latent failure）を生じ、潜在失効は、装置がテストを適切にパスして、製造業者から離れた後（例えば、５〜１０年後）に失効が生じる。ソフトエラーは不規則に発生し、且つ、相同の位置で発生する可能性は極めて低く、VRTと潜在エラーは同じ位置で、何度も発生する。バーンインテスト（Burn-in test）は潜在エラーを改善することができるが、費用が高い。
【０００３】
エラー発生時、コンテント・アドレッサブル・メモリ(content addressable memory、CAM) に関する幾つかのアプローチは、シャドウメモリ（shadow memory）を用いて、内部DRAMから外部SRAMへ、メモリをリダイレクトするが、外部回路とレイアウト面積のせいで、シャドウメモリは価格が高い。
【０００４】
エラー検出と訂正は、ネットワークシステムを含む電子回路に幅広く用いられている。へミングコード（Hemming code）で、32 ビットが用いられる場合、6 追加ビットを加えて、単一誤り訂正（single error correction）を実行し、7 追加ビットが加えられて、単一誤り訂正と二重誤り検出（double error detection）を実行する。追加ビットはECC 、或いは、パリティビット（parity bit）と称される。
【発明の概要】
【発明が解決しようとする課題】
【０００５】
本発明は、メモリエラー処理方法を提供し、上述の問題を解決することを目的とする。
【課題を解決するための手段】
【０００６】
上述の目的を達成するため、本発明のメモリエラー処理方法は、メモリ中で、失効領域のアドレスを捕捉するステップと、前記アドレスに基づいて、エラー形態を判断するステップと、エラー形態がソフトエラーを含まない場合、冗長により、エラーを修復するステップとを有する。
【発明の効果】
【０００７】
他の回路とのハンドシェーキングが不要で、単一チップソリューションと見なされる。
【図面の簡単な説明】
【０００８】
【図１】本発明の実施例が採用する例示的なシステム100を示す図である。
【図２】eDRAM 120-1-1の第一実施例を説明するeDRAM 200 を示す図である。
【図３】eDRAM 120-1-1の第二実施例を説明するeDRAM 300 を示す図である。
【図４】eDRAM 120-1-1の第三実施例を説明するeDRAM 400 を示す図である。
【図５】本発明の実施例による決定木 500である。
【発明を実施するための形態】
【０００９】
図1は、本発明によるシステム100を示す図である。システム100は、SoC (system-on-chip) 120、SoC120外部に位置するASIC (application specific integrated circuit) 130、及び、ソフトウェアを含む回路（簡潔にするため、図示されない）からなる。実施例中、システム100 は、ネットワークルーターかネットワークスイッチを含むが、本発明のその他の実施例は、このようなアプリケーションに限定されず、別のシステム中に応用することもできる。実施例に基づくと、システム100は、エラーの修復、或いは、その他のユニット、例えば、SoC 120、ASIC 130等のエラー修復に用いることができる。この他、エラーが最初に発見された時、或いは、その他の適当な時間で、エラー修復をスケジュールする時、システム100 はエラーを修復する。エラー修復方法は、ECC エンジン 120-1-3により計算、並びに、提供されるデータによりデータを重ね書きするか、或いは、失効領域中に存在するデータのロジックレベルをフリッピングすることを含む。
【００１０】
SoC 120 は、eDRAM 120-1-1を用いたサブシステムを示し、修復が必要なエラーを含む。一般に、SoC 120 は、複合電子、或いは、コンピュータシステムを含み、チップに整合されるサブシステムを有する。SoC 120の範例素子は、CPU (central processing unit)、 データストレージユニット (メモリ等)、IO コントローラー、デジタル、及び/又は、アナログ回路を含み、全て、図示されていない。実施例中、 SoC 120 は、ネットワークパッケージバッファ（network package buffer）を含み、データパケットを保存、処理、並びに、適時に提供する。例えば、本文中のシステム、或いは、サブシステムは、インテリジェント能力(処理、演算等の能力)を有する演算器を含む。
【００１１】
IP-マクロ120-1は、一般に、機能ブロック（functional block）、サブシステム等である。図1の実施例で、IP-マクロ 120-1は eDRAM 120-1-1 (例えば、メモリ等)を含むので、IP-マクロ 120-1 は、メモリサブシステムと称される。
【００１２】
eDRAM 120-1-1 は、一般に、メモリセルの複数のバンクを含む。各バンクは、数個のロウ、数個のカラム、及び、相関回路（センス増幅器、ワードライン、ビットライン等)を含む。eDRAM 120-1-1の容量は、アプリケーションに基づいて変化し、例えば、容量は1、2、4 Mbである。メモリセルのロウはワードと称される。本発明の様々な実施例は、それぞれ、各種メカニズムを提供して、eDRAM 120-1-1で発生するエラー(ソフトエラー、潜在エラー、VRT等)を即時に修正する。本文中のeDRAM 120-1-1 は、説明しやすくするため、その他のメモリ装置、例えば、SRAM、フラッシュ、ワンタイムプログラム(OTP)、マルチタイムプログラム (MTP)等は、どれも、本発明の範囲内である。eDRAM 120-1-1 は、適時に、パリティビットにより、データをASIC 130 に伝送することができる。
【００１３】
冗長エンジン120-1-2 は、eDRAM 120-1-1にアクセスするアドレスと、メモリ中の既知の失効位置を比較するのに用いられ、目的は、アクセス位置をその他の冗長、或いは、スペア位置にリダイレクトして、既知の失効メモリ領域を代替することである。通常、製造段階中の最終テスト時、全ての冗長位置は、既にプログラム化され、発送されている。各実施例中、数個のスペア位置が保留されて、潜在エラー、或いは、VRTエラーが発見された時に、代替作業を行う。
【００１４】
各実施例中、冗長エンジン120-1-2は失効位置のアドレスを保存する。エラーがこの領域で発生する時、例えば、冗長エンジン120-1-2は、失効アドレスエンジン 120-2-2により提供される情報に基づいて、失効位置を識別し、失効位置を修復するのに用いられる対応する冗長位置を制御、認証する。失効位置が一旦修復されると、冗長エンジン 120-1-2は、適時に、失効領域へのアクセスを冗長（修復）位置にリダイレクトする。一般に、エラーが発生すると、次のアクセス前に、エラーの修復をする十分な時間がない。ハードエラーの場合、 ECCエンジン 120-1-3 が継続して、シングルビットエラーをカバーし、修復されるまで、データを保護する。この方法は、発見と修復作業の時間が十分にある。
【００１５】
アプリケーションに基づいて、eDRAM 120-1-1中のエラーは、異なる方法で修復される。例えば、 データがeDRAM 120-1-1中で、かなり長い間、スタティックである場合、冗長エンジン 120-1-2 は、暫く経って、修復スケジュールを組む(例えば、ECCエンジン 120-1-3、SoC 120、或いは、システム100により修復を実行する等) が、データが過渡である場合、アプリケーション自身は、新しいデータにより失効位置を上書きし、上書きや校正の必要を否定する。例えば、eDRAM 120-1-1 が循環FIFO 入力クロックから出力クロックドメインアラインメントとして実行されるアプリケーション中、FIFOを利用するアプリケーションは、次のデータのアクセス前に、データを失効位置に書き込み、各実施例中、FIFOを用いたアプリケーションはデータを上書きし、実質的に、エラーデータを修復する。その結果、エラーデータは、いかなる追加動作なしに修復される。
【００１６】
一般に、ECCエンジン120-1-3 は、他の回路（eDRAM 120-1-1、 ASIC 130等）と通信する時、インバウンドデータ（inbound data）をエンコードして保存し、アウトバンドデータ（outbound data）をデコード、並びに、校正する。ECCエンジン 120-1-3は、インバウンドデータを識別し、必要なパリティビットをデータに加える。eDRAM 120-1-1 がアクセスされる時、ECCエンジン120-1-3 がエラーを発見するかに基づいて、データと関連するパリティビットがECCエンジン120-1-3に伝送される。一般に、eDRAM 120-1-1中にエラーが発生する時、ECCエンジン 120-1-3は、データと関連するパリティビットに基づいて、エラー発生を識別し、失効ビットのアドレスを確認し、そのエラーを表示する。実施例で、ECCエンジン 120-1-3 は、６個のパリティビットを用いて、32ビットのデータワード中の単一誤りを校正し、７個のパリティビットを用いて、単一誤りを校正し、二重誤りを検出する。各実施例中、ECCエンジン 120-1-3 は、SoC 設計者により設定され、よって、各種設計規格下の異なるデータ幅に適合し、メモリブロックインスタンスに組み込まれる時、ECCエンジンが、データ幅に制限されるその他の方法において長所を有する。この柔軟性は、本発明のある実施例に、更に、メモリコンパイラの設計と製造との互換性を有させる。本発明の各実施例は、公知のECCエンジン 120-1-3 を用いることができる。
【００１７】
公知のRTL 120-2は、一般に、各種機能ブロックにより実行される標準のASIC セルを有する。一般に、ビルトイン自己冗長試験BISTR (built-in self test with redundancy) エンジン 120-2-1 が、修復アルゴリズムを有する顧客に提供され、エラーを適時に修復する時、顧客はRTL-120-2を生成する。実施例中、BISTR エンジン 120-2-1 は、他の実体（SoC 120、 eDRAM 120-1-1等）により用いられる失効アドレスを捕捉し提供する能力を有する。BISTR 120-2-1 は、更に、失効位置を修復する能力も有する。実施例中、BISTR エンジン 120-2-1は、失効アドレスエンジン 120-2-2と共に使用し、SoC 120のBISTR エンジン 120-2-1中に既に存在する修復演算法を運用して、各処理されたアドレスを取得すると共に、修復を待つアドレスを識別する。ある実施例中、BISTR 120-2-1中にある回路を用いるので、回路配置空間を省略することができる。
【００１８】
失効アドレスエンジン 120-2-2は、失効の歴史(記録された失効アドレスのリスト)に基づき、失効の形態と取るべき行動と判断する。ソフトエラーは不規則に発生し、且つ、相同の位置で反復する可能性は極めて低いので、エラーが同じ位置で一度発生する場合（例えば、第一回）、失効アドレスエンジン 120-2-2 は、それをソフトエラーであると見なす。しかし、エラーが同じ位置で二回以上発生する場合 (例えば、第二回、第三回等)、失効アドレスエンジン 120-2-2 は、潜在エラーかVRTであると見なす。説明を便利にするため、本文中の潜在エラーやVRTは、“ハードエラー”と称する。各実施例中、失効アドレスエンジン 120-2-2 は失効アドレスのリストを保存する。エラーが発生する時、失効アドレスエンジン 120-2-2 は、失効アドレスと保存された失効アドレスを比較する。適合しない場合、失効アドレスエンジン 120-2 は、エラーをソフトエラーと仮定する。しかし、適合する場合、失効アドレスエンジン 120-2-2 は、そのエラーをハードエラーと見なす。失効アドレスエンジン 120-2-2、 は、ECCエンジン 120-1-3により提供される情報に基づいて、失効位置中の正確なデータを計算し、そのデータを冗長エンジン 120-1-2に提供する。失効アドレスエンジン 120-2-2は、適時に、失効アドレスを修復する要求を冗長エンジン 120-1-2に伝送し、スペアの冗長により修復することができる。異なる実施例中、CAM (content-addressable memory)を用いて、失効アドレスエンジン 120-2-2 とするか、或いは、BISTR エンジン 120-2-1 中で捕捉、比較された機能を失効アドレスエンジン 120-2-2 の一部として、エラー形態を判断する。
【００１９】
ASIC 130 は、一般に、特定のアプリケーション設計を有し、図1の実施例中、NPU (network processing unit)を含む。ASIC 130 は、システム100の中枢部と見なされる。各実施例中、 ASIC 130 は ECC フラッグを監視し、データが正確か、修復の必要があるか判断する。フラッグが検出されれば(エラーが識別される)、ASIC 130 は、フラッグアドレス (失効セルのアドレス)を保存する。ASIC 110が修復の必要なデータを発見した時、アドレスを特定し、失効アドレスエンジン 120-2-2に伝送する。実施例中、ASIC 130 は、修復時間を遅延させることができ、システム100 は、エラー修復のよい時期を決定する。アプリケーションに基づくと、SoC 120 はこれらの機能を実行することができる。
【００２０】
eDRAMの第一実施例
図２は、eDRAM 120-1-1の第一実施例であるeDRAM 300を示す図である。eDRAM 200 は複数のメモリバンクからなるが、説明を簡潔にするため、本文では、メモリバンク245 と 冗長エンジン 120-1-2だけを例とする。
【００２１】
eDRAM 200 の各メモリバンクは、複数のメモリセルのロウとカラム、関連回路からなり、複数の冗長ロウ210は、eDRAM 200中のエラー修復に用いられる。冗長ロウ210の数量は、アプリケーションの応用と設計によって変化し、異なる要素によって考慮し、例えば、eDRAM 200の期待する寿命、及び、この寿命中の推定失効回数を含む。説明を簡潔にするため、失効セル 240-5 を含むロウは失効ロウと称され、メモリバンク245は、失効ロウ240と、失効ロウ240を代替する冗長ロウ210を有する。冗長ロウ210は、失効位置240-5に対応する冗長位置210-5を有する。
【００２２】
“ハードエラー” のために、失効ロウ240を代替する前に、冗長エンジン 120-1-2 は、冗長ロウ 210 を識別して、失効ロウ 240を代替する。一般に、eDRAM 200は、BIST エンジン 120-2-1中の修復アルゴリズム、或いは、冗長エンジン 120-1-2で指定される専用領域により、失効アドレスエンジン 120-2-2 から、失効位置240-5のアドレスを受信し、失効アドレスは、修復される失効ロウ 240に対応する。実施例中、冗長エンジン 120-1-2 は、ローカルセンス増幅器220中の失効ロウ 240 のデータを捕捉し、冗長エンジン 120-1-2のグローバル書き込みドライバ（global write drivers）により、正確なデータをローカルセンス増幅器220に書き込む。その後、冗長エンジン 120-1-2 は、失効ロウ 240 を代替する冗長ロウ 210 を駆動し、ローカルセンス増幅器220から冗長ロウ 210にデータを書き込む。実施例中、ロウ240全体のメモリセルデータは、失効ロウ 240から冗長ロウ 210に平行に転移され、直列にデータを転移するよりも時間を節約できる。実施例中、ロウ240全部ではなく、失効位置 240-5を含むワードが修復、つまり、冗長ロウ 210に複製される。一旦、エラーが完全に修復されると、冗長エンジン 120-1-2 は、将来の失効ロウ 240 中の失効アドレス 240-5 に対するアクセスを、冗長ロウ 210中の対応する修復アドレス210-5にリダイレクトする。実施例中、失効アドレスエンジン 120-2-2 は、失効位置240-5 と対応する冗長位置を冗長エンジン 120-1-2のレジスタ中にプログラム化する。eDRAM 120-1-1 がアクセスされると、アクセスアドレスは、レジスタによりこのアドレスを確認し、適合する場合、冗長エンジン 120-1-2 は、このアクセスを、レジスタ中に保存された正確な冗長位置210-1 にリダイレクトする。
【００２３】
各実施例中、回路中の全センス増幅器は、バンクの上下間に挟まれ、グローバルビットラインを共用する。実施例中、データは、一周期内で、エラーロウから冗長ロウに転移することができないが、2 、或いは、それ以上の周期内で完成することができる。
【００２４】
ある実施例、一個、或いは、二個の NOP 指令で、エラーを修復することができる（エラービットを含むロウをスワッピングする）。よって、これらの実施例は、システム操作に対する不良影響が小さい。
【００２５】
eDRAMの第二実施例
図3は、eDRAM 120-1-1の第二実施例であるeDRAM 300を示す図である。本実施例中、eDRAM 200と比較すると、各メモリバンク(メモリバンク245) は冗長ロウ210を含んでいない。しかし、eDRAM 300中の冗長ロウ210は、分離冗長バンク、例えば、冗長バンク255に含まれている。各種実施例により提供される冗長バンク255 と冗長バンク255中の冗長ロウ210の数量は、異なるアプリケーションと設計によって変化し、例えば、eDRAM 400の所望の寿命、 寿命での推定失効回数等である。
【００２６】
ある実施例中、冗長バンク255を含む各種メモリバンク 245は、グローバルビットライン、或いは、グローバルデータラインにより接続され、ローカルセンス増幅器(図2のローカルセンス増幅器)の出力端を、グローバルセンス増幅器 (図示しない)に接続する。ECCエンジン 120-1-3 により提供される情報に基づくと、冗長エンジン120-1-2 は、失効位置240-5 、及び/又は、失効ワード 240-1 を識別し、例えば、グローバルビットラインにより、失効位置240-5中の失効データを反転する等の適当な動作を採取する。例えば、失効アドレスエンジン 120-1-2 は、ECCエンジン 120-1-3 により提供されるデータを用いて、正確なワードデータを形成し、このデータを冗長ワード 210-1 中に書き込む。
【００２７】
実施例中、冗長エンジン 120-1-2 は、修復される失効ロウ240をプログラム化し、失効ワード240-1中のデータを対応する冗長ワード210-1に複製する。実施例中、冗長エンジン 120-1-2 は書き込みのスケジュールを組んで、正確なデータを冗長位置210-5に書き込むか、或いは、遅延書き込みを次のキューサイクルにキューし、NOP操作を必要としない。実施例中、冗長エンジン 120-1-2 は、失効位置240-5中の正確なデータを、次の自由周期で、冗長位置210-5に書き込む。
【００２８】
失効位置240-5を含む失効ワード240-1が一旦、完全に修復されると、 冗長エンジン 120-1-2 は、失効位置240-5へのデータアクセスを、正確な冗長位置210-5にリダイレクトする。
【００２９】
冗長バンク245中の冗長ロウ 210 は、失効位置240-5 、及び/又は、異なるメモリバンク中の失効ワード240-1 を修復するのに用いることができるので、図3のある実施例は多くの長所がある。
【００３０】
eDRAMの第三実施例
図4 は、eDRAM 120-1-1の第三実施例であるeDRAM 400 を示す図で、eDRAM 200 や 300と比べると、複数の冗長セルとビットライン、センス増幅器等の関連回路を含み、ビットライン、及び/又は、ビットラインセンス増幅器上のエラーを修復するのに用いられる。説明を便利にするため、失効位置 240-5 を含むカラムは、失効カラム440と称され、メモリバンク 245は、失効カラム 440 と冗長カラム 410を有することを示し、失効位置 240-5に対応する冗長位置 210-5 を含む。各種実施例により提供される冗長カラム410 の数量は、アプリケーションと設計に基づいて変化し、異なる要素によって決定され、例えば、eDRAM 400の期待する寿命、及び、この寿命中の推定失効回数を含む。
【００３１】
この例中、ハードエラーは、センス増幅器中で発見され、失効カラム 440中の全セルに影響する。冗長エンジン 120-1-2 は、失効カラム 440中の各セルと冗長カラム 410中の各セルを交換する。一旦、失効カラム 440 が 冗長カラム (メモリセル、 センス増幅器等)により代替されると、冗長カラム 410中の全セルは、正確で、適切なデータが書き込まれる。実施例中、それらの冗長セルはソフトエラーを有すると見なし、各種実施例の精神と一致する正確なソフトエラーに校正する。例えば、冗長カラム 410中のセルへのアクセスがある時、ECCエンジン 120-1-3 はエラーを検出し、これが、その位置の第一エラーなので、ECCエンジン 120-12 は、それをソフトエラーと見なし、適当な方式で修復する。
【００３２】
或いは、冗長エンジン 120-1-2 は、冗長カラム 410中に、正確なデータを書き込む時間を手配し、例えば、冗長エンジン 120-1-2 は数個の周期を待つか、或いは、NOP 指令を要求し (システム100から、SoC 120から、ASIC 130から等) 、データを書き込む。例えば、冗長カラム 410中に128個のセルがある場合、冗長エンジン 120-1-2 は 128セルを書き込み (128 回)、256個のセルがある場合、冗長エンジン 120-1-2 は 256セルを書き込む。
【００３３】
決定木の一例
図5 は、本発明の実施例による決定木 500を示す図である。実施例中、決定木500は、有限状態機械（finite state machine）で実行され、例えば、ソフトウェアにより、プロセッサ上で運転するハードウェアロジック等を含む。決定木 500は、システム100、SoC 120、ASIC 130等、異なる位置で運転する。本文中、決定500は、失効アドレスエンジン 120-2-2で実行される。
【００３４】
ブロック510中、eDRAM 120-1-1 がアクセスされる。この時、ECCエンジン 120-1-3 はエラーを監視する。エラーが発生する場合、アドレスエンジン120-2-2 は、ECCエラーにより生じるエラーフラッグにより示される失効アドレスを捕捉する。
【００３５】
ブロック 520中、失効アドレスエンジン 120-2-2 は、ECCエンジン 120-1-3 がエラーをフラッグしたか判断する。ECCエンジン 120-1-3 がエラーをフラッグしていない場合、ブロック530中、失効アドレスエンジン 120-2-2は通常運転し、システム100 は正常運転を継続する。
【００３６】
しかし、ECCエンジン 120-1-3 はエラーをフラッグし、失効位置 240-5の失効アドレスを捕捉する場合、ブロック540中、失効アドレスエンジン 120-2-2は、ECCエンジン 120-1から失効アドレス位置240-5 を受信し、失効アドレス位置 240-5 と前の失効アドレスのリストを比較し、失効アドレスのリストは、実質的に、ソフトエラー（SER)アドレスのリストを含む。
【００３７】
符合しない場合 (失効アドレス位置 240-5 が保存されたSERアドレスリスト中にない)、失効アドレスエンジン 120-2-2は、新しい失効位置を識別し、ソフトエラーと見なし、ブロック 560中、失効アドレス位置240-5をSERアドレスのリストに保存する。
【００３８】
ブロック570中、失効アドレスエンジン 120-2-2 はSER 失効を校正する。実施例中、失効アドレスエンジン 120-2-2は、この失効SER位置240-5 が正確なデータに上書きされるのを待つ。或いは、失効アドレスエンジン 120-2-2 は、正確なデータとECCエンジン 120-2-3により提供される失効位置 240-5 を用いて、失効位置 240-5に現在保存されている誤ったデータを反転させる。各種実施例中、 失効アドレスエンジン 120-2-2 は、eDRAM 120-1-1を用いて、失効位置を上書きすることができる。一般に、失効アドレスエンジン120-2-2が、次の読み取りアクセス前に、データが上書きされると認識する場合、これが実行される。定義により、失効位置 はエラーを修復する。
【００３９】
ブロック 580中、一旦、失効位置 240-5 が完全に修復されると (正確なデータを書き込む)、失効アドレスエンジン 120-2-2 は、失効アドレス位置240-5にタグをつけて、失効が修復されたことを示し、失効位置 240-5 は正常な機能のセルと見なされる。
【００４０】
しかし、ブロック540の判断後、適合を発見する時（失効アドレス240-5 が失効アドレスのリスト中にある）、失効アドレスエンジン 120-2-2 はこれがソフトエラーでないとみなし、失効が同じ位置240-5で少なくとも二回発生するので、このエラーはハードエラーと見なされる。
【００４１】
ハードエラーが未修復の場合、ブロック590中、失効アドレスエンジン 120-2-2 は、冗長エンジン 120-1-2 がハードエラーを修復するのを待つ。実施例中、失効アドレスエンジン 120-2-2 と冗長エンジン 120-1-2 は、冗長ロウ 210 を識別して、失効ロウ 240を代替し、冗長ワード 210-1を識別して、失効ワード240-1を代替するか、或いは、冗長カラム 410 を識別して、失効カラム 440を代替する。
【００４２】
各種実施例中、一旦、冗長ロウ 210、冗長ワード210-1、或いは、冗長カラム 410が確認されると、冗長位置 210-5は正確なデータを含まなくてもよい。ブロック 595中、失効アドレスエンジン 120-2-2 は、冗長位置 210-5中のデータを校正する。実施例中、冗長エンジン120-1-2は、冗長位置 210-5の上書きを待つか、或いは、冗長エンジン120-1-2は、適時に、冗長位置 210-5中のデータを上書きする。図4のカラム交換の実施例中、冗長エンジン 120-1-2 は、冗長カラム 410中の全セルを上書きする。或いは、冗長エンジン 120-1-2 は、ECCエンジン120-1-3により提供される正確なデータと失効位置 240-5 のアドレスを用いて、冗長位置 210-5中のデータのロジック状態を反転させる。
【００４３】
冗長位置 210-5 は、一旦、正確なデータが書き込まれる（エラーが完全に修復される）と、 ブロック598中、失効アドレスエンジン 120-2-2は失効位置 240-5 を完全に修復されたと表示する。
【００４４】
しかし、ブロック540の判断後、失効位置 240-5 がソフトエラーでなく、一度、修復されているが、また、失効する場合、ブロック550中、システム100 は修復不能と見なし、継続して、正常作動する。
【００４５】
本発明の実施例は、多種の長所があり、エラー処理（error handling）、及び/或いは、修復は、サブシステム(SoC 120、 ASIC 130、 システム100等)中に含まれ、他の回路とのハンドシェーキング（handshaking）が不要で、よって、単一チップソリューションと見なされる。例えば、図1の実施例中、SoC 120 はエラー処理し、冗長エンジン 120-1-2、 ECCエンジン 120-1-3、 及び、失効アドレスエンジン 120-2-2、 は、全て、単一SoC 120中に含まれ、システム100 は、SoC 120 と ASIC 130間のエラーハンドシェーキングを必要とせず、エラーが発生したか、及び/又は、修復されたかを判断する必要もない。
【００４６】
本文は、本発明の数個の実施例を説明した。理解できることは、当該技術を熟知する者なら誰でも、本発明の精神と領域を脱しない範囲内で各種の変動や潤色を加えることができることである。例えば、 図1で、ECCエンジン 120-1-3 が IP-マクロ 120-1 中に位置しているが、ECCエンジン 120-1-3 は、その他の位置、例えば、RTL 120-2、ASIC 130に位置してもよい。ECCエンジン 120-1-3の位置の選択は、設計上の考慮、顧客選好により調整し、本発明の実施例中、ECCエンジン 120-1-3の位置を限定するものではない。失効アドレスエンジン 120-2-2 は、 RTL 120-2で独立し、即ち、RTL 120-2の外側、 或いは、SoC 120、ASIC 130中に位置し、本発明の実施例は、失効アドレスエンジン 120-2-2の位置を限定するものではない。上述の実施例は、システム100、 SoC 120、 ASIC 130、失効アドレスエンジン 120-2-2 の機能 (エラーの修復、エラーのスケジューリング、NOP 指令の発布等)を説明しているが、これらの機能は、他の回路により代替でき、本発明は、特定回路の特定機能により実施することに限定されない。SoC 120がシステム100 や ASIC 130を代替して、eDRAM 120-1-1の失効アドレスを修復する時間を手配することができる。
【００４７】
本発明では好ましい実施例を前述の通り開示したが、これらは決して本発明に限定するものではなく、当該技術を熟知する者なら誰でも、本発明の精神と領域を脱しない範囲内で各種の変動や潤色を加えることができ、従って本発明の保護範囲は、特許請求の範囲で指定した内容を基準とする。
【外国語明細書】
2011054263000001.pdf