(57)【要約】  方法は、第1のアドレスに関連するデータにおいてビットエラーが検出される読取り動作のカウントを示す第1の値をカウンタにおいて記憶するステップを含む。この方法は、第1の値が第1のしきい値を超えたことに応答して、メモリアレイに結合されるコントローラを使用して、第1のアドレスを第2のアドレスに再マッピングするステップをさらに含む。第1のアドレスは、メモリアレイの第1の要素に対応する。第2のアドレスは、コントローラ内のメモリに含まれる第2の要素に対応する。第1のアドレスを再マッピングすることが、第1のアドレスにあるデータの第1の読取り要求を受信することに応答して、第1の要素から読み取られた第1の値を第2の要素から読み取られた第2の値と置き換えることを含む。
2017502419.tif 000002
【特許請求の範囲】
【請求項１】
第1のアドレスに関連するデータにおいてビットエラーが検出される読取り動作のカウントを示す第1の値をカウンタにおいて記憶するステップと、
前記第1の値が第1のしきい値を超えたことに応答して、メモリアレイに結合されるコントローラを使用して、前記第1のアドレスを第2のアドレスに再マッピングするステップとを含み、前記第1のアドレスが、前記メモリアレイの第1の要素に対応し、前記第2のアドレスが、前記コントローラ内のメモリに含まれる第2の要素に対応し、前記第1のアドレスを再マッピングするステップが、前記第1のアドレスにあるデータの第1の読取り要求を受信することに応答して、修正されたデータを生成するために、前記第1の要素から読み取られた第1の値を前記第2の要素から読み取られた第2の値と置き換えるステップを含む、方法。
【請求項２】
前記第1の値を記憶するステップが、読取り動作および前記第1のアドレスに関連して前記データにおいて前記ビットエラーを検出することに応答して、前記第1の値をインクリメントするステップを含む、請求項1に記載の方法。
【請求項３】
前記第1のアドレスを再マッピングするステップが、前記第1の読取り要求を受信する前に、前記コントローラにおいて、外部メモリデバイス、または誤り訂正符号(ECC)エンジンからの書込み命令から前記第2のビット値を受信することに応答して、前記第2のセルにおいて前記第2のビット値を書き込むステップをさらに含む、請求項1に記載の方法。
【請求項４】
前記カウンタが、前記メモリアレイにおいて検出された訂正可能なビットエラーに対応する読取り動作を示す、請求項1に記載の方法。
【請求項５】
第3のアドレスに関連するデータにおいて検出された訂正不可能なビットエラーを含む読取り動作のカウントを示す第2の値を前記カウンタにおいて記憶するステップと、
前記第2の値が第2のしきい値を超えたことに応答して、前記コントローラを使用して、前記第3のアドレスを第4のアドレスに再マッピングするステップとをさらに含み、前記第3のアドレスが、前記メモリアレイの第1のセルブロックに対応し、前記第4のアドレスが、前記コントローラ内の前記メモリに含まれる第2のセルブロックに対応し、前記第3のアドレスを再マッピングするステップが、前記第3のアドレスにあるデータの第2の読取り要求を受信することに応答して、前記第1のセルブロックから読み取られた第1の複数のビット値を前記第2のセルブロックから読み取られた第2の複数のビット値と置き換えるステップを含む、請求項4に記載の方法。
【請求項６】
前記第3のアドレスが前記第1のアドレスに一致する、請求項5に記載の方法。
【請求項７】
第2のカウンタが、前記メモリアレイにおいて検出された訂正不可能なビットエラーに対応する読取り動作を示す、請求項1に記載の方法。
【請求項８】
前記第1の要素が、前記メモリアレイの第1のブロックであり、前記第2の要素が、前記コントローラ内の前記メモリに含まれる第2のブロックである、請求項7に記載の方法。
【請求項９】
前記第1の読取り要求を受信することに応答して、前記第1のブロックから読み取られた第1の複数のビット値を前記第2のブロックから読み取られた第2の複数のビット値と置き換えるステップをさらに含む、請求項8に記載の方法。
【請求項１０】
前記第2のカウンタが、前記カウンタ内の第2のメモリに含まれる、請求項7に記載の方法。
【請求項１１】
前記第1のアドレスが、メモリアドレスとオフセット値とを含む、請求項1に記載の方法。
【請求項１２】
前記第1のアドレスが、前記メモリアレイにおける複数のメモリセルに対応する、請求項1に記載の方法。
【請求項１３】
前記メモリアレイが、メモリ内誤り訂正符号(ECC)エンジンを含む、請求項1に記載の方法。
【請求項１４】
前記カウンタにおいて前記第1の値を記憶する前に、前記第1のアドレスに関連する前記データにおける前記ビットエラーの検出を示す1つまたは複数のECCフラグを前記メモリアレイから受信するステップをさらに含み、前記第1の値が、前記ECCフラグに基づく、請求項13に記載の方法。
【請求項１５】
前記コントローラが、システム内誤り訂正符号(ECC)エンジンを含む、請求項1に記載の方法。
【請求項１６】
前記修正されたデータを生成することに応答して、前記修正されたデータにおいてECC動作を実行するステップをさらに含む、請求項15に記載の方法。
【請求項１７】
前記ECC動作を実行するステップが、前記修正されたデータにおける訂正可能なビットエラーを修正するステップを含む、請求項16に記載の方法。
【請求項１８】
前記第1の値を記憶し、前記第1のアドレスを再マッピングするステップが、電子デバイスに組み込まれたプロセッサによって開始される、請求項1に記載の方法。
【請求項１９】
メモリアレイに結合されるように構成されたコントローラを備え、前記コントローラが、
第1のアドレスに関連するデータにおいてビットエラーが検出される読取り動作のカウントを示す値を記憶するように構成されたカウンタであり、前記第1のアドレスが、前記メモリアレイの第1の要素に対応する、カウンタと、
前記カウンタにおける前記値が第1のしきい値を超えたことに応答して、前記第1のアドレスを第2のアドレスに再マッピングするように構成された再マッピングデバイスであり、前記第2のアドレスが、前記コントローラ内のメモリに含まれる第2の要素に対応する、再マッピングデバイスとを備え、前記第1のアドレスにあるデータの読取り要求を受信することに応答して、前記再マッピングデバイスが、修正されたデータを生成するために、前記第1の要素から読み取られた第1の値を前記第2の要素から読み取られた第2の値と置き換えさせるように構成される、装置。
【請求項２０】
前記メモリアレイの位置からのデータの第1の部分を前記コントローラ内の前記メモリの対応する位置からのデータの第2の部分とマージするように構成されたマージャユニットと、
データの第3の部分を前記位置に送信し、データの第4の部分を前記対応する位置に送信するように構成されたスプリッタユニットと
をさらに備える請求項19に記載の装置。
【請求項２１】
前記第1のビット値を前記第2のビット値と置き換えるように構成され、前記第1のセルのための書込みデータを前記第2のセルに移動させるように構成されたマルチプレクサをさらに備える、請求項19に記載の装置。
【請求項２２】
前記メモリアレイが、ダイナミックランダムアクセスメモリ(DRAM)を含む、請求項19に記載の装置。
【請求項２３】
前記コントローラ内の前記メモリが、スタティックランダムアクセスメモリ(SRAM)を含む、請求項19に記載の装置。
【請求項２４】
少なくとも1つのダイに組み込まれた、請求項19に記載の装置。
【請求項２５】
前記コントローラが組み込まれているモバイルフォン、タブレット、コンピュータ、通信デバイス、セットトップボックス、音楽プレーヤ、ビデオプレーヤ、エンターテイメントユニット、ナビゲーションデバイス、携帯情報端末(PDA)、および固定位置データユニットから選択される電子デバイスをさらに備える、請求項19に記載の装置。
【請求項２６】
メモリアレイに結合されるように構成された制御手段を備え、前記制御手段が、
第1のアドレスに関連するデータにおいてビットエラーが検出される読取り動作のカウントを示す値を記憶するための手段であり、前記第1のアドレスが、前記メモリアレイの第1の要素に対応する、手段と、
記憶するための前記手段における前記値がしきい値を超えたことに応答して、前記第1のアドレスを第2のアドレスに再マッピングすることであり、前記第2のアドレスが前記制御手段内のデータを記憶するための手段に含まれる第2の要素に対応する、再マッピングすることと、前記第1のアドレスにあるデータの読取り要求を受信することに応答して、修正されたデータを生成するために、前記第1の要素から読み取られた第1の値を前記第2の要素から読み取られた第2の値と置き換えさせることとを行うための手段と
を備える、装置。
【請求項２７】
少なくとも1つのダイに組み込まれた、請求項26に記載の装置。
【請求項２８】
前記制御手段が組み込まれているモバイルフォン、タブレット、コンピュータ、通信デバイス、セットトップボックス、音楽プレーヤ、ビデオプレーヤ、エンターテイメントユニット、ナビゲーションデバイス、携帯情報端末(PDA)、および固定位置データユニットから選択される電子デバイスをさらに備える、請求項26に記載の装置。
【請求項２９】
命令を記憶する非一時的コンピュータ可読媒体であって、前記命令が、プロセッサによって実行されると、前記プロセッサに、
第1のアドレスに関連するデータにおいてビットエラーが検出される読取り動作のカウントを示す値をカウンタにおいて記憶させ、
前記第1の値が第1のしきい値を超えたことに応答して、メモリアレイに結合されるコントローラを使用して、前記第1のアドレスを第2のアドレスに再マッピングさせ、前記第1のアドレスが、前記メモリアレイの第1の要素に対応し、前記第2のアドレスが、前記コントローラ内のメモリに含まれる第2の要素に対応し、前記第1のアドレスを再マッピングすることが、前記第1のアドレスにあるデータの読取り要求を受信することに応答して、前記第1の要素から読み取られた第1の値を前記第2の要素から読み取られた第2の値と置き換えることを含む、非一時的コンピュータ可読媒体。
【請求項３０】
前記非一時的コンピュータ可読媒体が組み込まれているモバイルフォン、タブレット、コンピュータ、通信デバイス、セットトップボックス、音楽プレーヤ、ビデオプレーヤ、エンターテイメントユニット、ナビゲーションデバイス、携帯情報端末(PDA)、および固定位置データユニットから選択される電子デバイスをさらに備える、請求項29に記載の非一時的コンピュータ可読媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
関連出願の相互参照
本出願は、参照によりその内容全体が本明細書に明確に組み込まれる、同一出願人が所有する2014年1月2日に出願の米国非仮特許出願第14/146,628号の優先権を主張する。
【０００２】
本開示は概して、ビット再マッピングシステムに関する。
【背景技術】
【０００３】
技術が進歩した結果、コンピューティングデバイスがより小型に、そしてより強力になった。たとえば、小型、軽量で、ユーザによって容易に携帯されるポータブルワイヤレス電話、携帯情報端末(PDA)、およびページングデバイスなどのワイヤレスコンピューティングデバイスを含む、種々のポータブルパーソナルコンピューティングデバイスが現存している。より具体的には、セルラー電話、インターネットプロトコル(IP)電話などのポータブルワイヤレス電話は、ワイヤレスネットワークを介して音声およびデータパケットを通信することができる。さらに、多くのそのようなワイヤレス電話は、その内部に組み込まれた他のタイプのデバイスを含む。たとえば、ワイヤレス電話は、デジタルスチールカメラ、デジタルビデオカメラ、デジタルレコーダ、およびオーディオファイルプレーヤも含むこともできる。また、そのようなワイヤレス電話は、インターネットにアクセスするために使用され得るウェブブラウザアプリケーションなどのソフトウェアアプリケーションを含む実行可能命令を処理することができる。したがって、これらのワイヤレス電話は、著しいコンピューティング能力を含むことができる。
【０００４】
半導体プロセスの規模につれて、半導体デバイスは、信頼性が低下し、たとえば不良品、または「機能不全の」構成要素などの、ハードウェアエラーをより起こしやすい傾向がある。ハードウェアエラーを補償するために、メモリデバイス(たとえば、ダイナミックランダムアクセスメモリ(DRAM)デバイス)は、メモリアレイと、メモリアレイの他のメモリセルが、「ハード」エラー(たとえば、再発するエラー)を示すとき、または(たとえば特定のプロセス変動または別の物理的な障害のため)物理的に失敗したと決定されたときにアクセスすることができるメモリセルの「余剰」または冗長行とを含み得る。例示のために、メモリデバイスの製造またはテストの間にメモリアレイの行xにおいて障害のあるメモリセルが検出された場合、行xを、(たとえば、メモリデバイスで受信された要求を行xから冗長行aに再ルーティングするように、電子ヒューズを設定することによって)メモリアレイの冗長行に再マッピングすることができる。別の例として、メモリアレイの行yにおける障害のあるメモリセルが「現場で」検出された場合(たとえば、メモリデバイスの動作の間に)、行yは、メモリアレイの冗長行bに再マッピングされ得る。しかしながら、冗長行は、メモリデバイスの大きいエリアを使う可能性があり、これは、いくつかの用途において、コストがかかり得る、または実現不可能であり得る。
【発明の概要】
【課題を解決するための手段】
【０００５】
本開示は、ビット再マッピングシステムの実施形態を提示する。ビット再マッピングシステムは、メモリアレイに結合されたコントローラを含み得る。コントローラは、カウンタと再マッピングデバイスとを含む。カウンタは、メモリアレイのアドレスに関連するデータにおいてビットエラーが検出される読取り動作のカウントを示す値を記憶することができる。ビットエラーは、訂正可能な(たとえば、単一ビットエラー)メモリエラー、訂正不可能な(たとえば、マルチビットエラー)メモリエラー、または両方に対応し得る。再マッピングデバイスは、値がしきい値を超えたことに応答して、メモリアレイのアドレスを、コントローラ内のメモリにあるアドレスに再マッピングすることができる。再マッピングは、メモリアレイのアドレスにあるデータの読取り要求を受信することに応答して、メモリアレイから読み取られた値をメモリから読み取られた値と置き換えることを含み得る。ビット再マッピングシステムを含む電子デバイスは、メモリエラーを訂正するために、メモリアレイにおける冗長行(または列)を使用するデバイスよりもあまり冗長でないメモリ(たとえば、単一メモリセルまたはメモリセルのブロック)を使用することができる。電子デバイスは、さらに、メモリアレイが冗長行(または列)を含まないとき、メモリエラーを訂正するために、ビット再マッピングシステムを使用することができる。
【０００６】
特定の実施形態では、方法は、第1のアドレスに関連するデータにおいてビットエラーが検出される読取り動作のカウントを示す第1の値をカウンタにおいて記憶するステップを含む。この方法は、第1の値が第1のしきい値を超えたことに応答して、メモリアレイに結合されるコントローラを使用して、第1のアドレスを第2のアドレスに再マッピングするステップをさらに含む。第1のアドレスは、メモリアレイの第1の要素に対応する。第2のアドレスは、コントローラ内のメモリに含まれる第2の要素に対応する。第1のアドレスを再マッピングするステップは、第1のアドレスにあるデータの第1の読取り要求を受信することに応答して、修正されたデータを生成するために、第1の要素から読み取られた第1の値を第2の要素から読み取られた第2の値と置き換えるステップを含む。
【０００７】
別の特定の実施形態では、装置は、メモリアレイに結合されるように構成されたコントローラを含む。コントローラは、第1のアドレスに関連するデータにおいてビットエラーが検出される読取り動作のカウントを示す値を記憶するように構成されたカウンタを含む。第1のアドレスは、メモリアレイの第1の要素に対応する。コントローラは、カウンタにおける値が第1のしきい値を超えたことに応答して、第1のアドレスを第2のアドレスに再マッピングするように構成された再マッピングデバイスをさらに含む。第2のアドレスは、コントローラ内のメモリに含まれる第2の要素に対応する。第1のアドレスにあるデータの第1の読取り要求を受信することに応答して、再マッピングデバイスは、修正されたデータを生成するために、第1の要素から読み取られた第1のビット値を第2の要素から読み取られた第2のビット値と置き換えさせるように構成される。
【０００８】
別の特定の実施形態では、装置は、メモリアレイに結合されるように構成された制御手段を含む。制御手段は、第1のアドレスに関連するデータにおいてビットエラーが検出される読取り動作のカウントを示す値を記憶するための手段を含む。第1のアドレスは、メモリアレイの第1の要素に対応する。制御手段は、記憶するための手段における値がしきい値を超えたことに応答して、第1のアドレスを第2のアドレスに再マッピングすることであり、第2のアドレスが制御手段内のデータを記憶するための手段に含まれる第2の要素に対応する、再マッピングすることと、第1のアドレスにあるデータの読取り要求を受信することに応答して、修正されたデータを生成するために、第1の要素から読み取られた第1の値を第2の要素から読み取られた第2の値と置き換えさせることとを行うための手段をさらに含む。
【０００９】
別の特定の実施形態では、非一時的コンピュータ可読媒体は、プロセッサによって実行されると、プロセッサに、第1のアドレスに関連するデータにおいてビットエラーが検出される読取り動作のカウントを示す値をカウンタにおいて記憶させる命令を記憶する。非一時的コンピュータ可読媒体は、プロセッサによって実行されると、プロセッサに、第1の値が第1のしきい値を超えたことに応答して、メモリアレイに結合されたコントローラを使用して、第1のアドレスを第2のアドレスに再マッピングさせる命令をさらに記憶する。第1のアドレスは、メモリアレイの第1の要素に対応する。第2のアドレスは、コントローラ内のメモリに含まれる第2の要素に対応する。第1のアドレスを再マッピングするステップは、第1のアドレスにあるデータの読取り要求を受信することに応答して、修正されたデータを生成するために、第1の要素から読み取られた第1の値を第2の要素から読み取られた第2の値と置き換えるステップを含む。
【００１０】
開示する実施形態のうちの少なくとも1つによって提供される1つの特定の利点は、ビット再マッピングシステムを含む電子デバイスは、メモリエラーを訂正するために、メモリアレイにおける冗長行を使用するデバイスよりもあまり冗長でないメモリ(たとえば、単一メモリセルまたはメモリセルのブロック)を使用することができることである。電子デバイスは、さらに、メモリアレイが冗長行を含まないとき、メモリエラーを訂正するために、ビット再マッピングシステムを使用することができる。
【００１１】
本開示の他の態様、利点、および特徴は、以下の段落、図面の簡単な説明、発明を実施するための形態、および特許請求の範囲を含む本出願全体の検討後に明らかになるであろう。
【図面の簡単な説明】
【００１２】
【図１】ビット再マッピングシステムの第1の特定の実施形態を表す図である。
【図２】ビット再マッピングシステムの第2の特定の実施形態を表す図である。
【図３】ビット再マッピングシステムの第3の特定の実施形態を表す図である。
【図４】ビット再マッピングシステムの第4の特定の実施形態を表す図である。
【図５】ビットを再マッピングする方法を示すフローチャートである。
【図６】ビット再マッピングシステムを含む通信デバイスを示すブロック図である。
【図７】ビット再マッピングシステムを含む電子デバイスを製造するための製造プロセスのある特定の例示的な実施形態を示すデータ流れ図である。
【発明を実施するための形態】
【００１３】
図1は、メモリデバイス102に結合されたメモリコントローラ118を含むビット再マッピングシステム100の特定の実施形態を示す。メモリデバイス102は、メモリアレイ104(たとえば、ダイナミックランダムアクセスメモリ(DRAM)デバイス)と、誤り訂正符号(ECC)エンジン114(たとえば、メモリ内ECCエンジン)とを含む。メモリコントローラ118は、プロトコルエンジン120と、ビット操作デバイス122(たとえば、マージャユニットおよび/またはスプリッタユニットを含む)と、再マッピングデバイス124とを含み得る。再マッピングデバイス124は、メモリ126(たとえば、スタティックランダムアクセスメモリ(SRAM)デバイス)と、カウンタ136とを含む。メモリ126およびカウンタ136は、単一のデバイスの一部でもよく、または、別個のデバイスでもよい。
【００１４】
メモリコントローラ118は、カウンタ136において、メモリアレイ104の特定のアドレスに関連するデータにおいてビットエラーが検出される読取り動作のカウントを示すデータを記憶することができる。カウンタ136は、関連のビットエラーを有する複数のアドレスの追跡を可能にするために、複数のカウンタを含むことができる。ビットエラーは、訂正可能なビットエラー(たとえば、対応するECCデータを使用してECCエンジン114によって識別され、訂正され得る1ビットエラー)に対応し得る。読取り動作の特定のカウントがしきい値を超えたとき、メモリコントローラ118は、ビットエラーに関連するアドレスに対応する1つまたは複数の特定のメモリセルのためのデータをメモリ126に再マッピングするように構成される。ビット操作デバイス122は、ホストデバイス(たとえば、外部プロセッサ)からの読取り要求に応答して、修正されたデータを生成するために、メモリ126からのデータ(たとえば、再マッピングされたデータ)をメモリデバイス102から受信された対応するデータと結合するように構成され得る。修正されたデータは、ホストデバイスに提供される出力データ148に対応し得る。ビット操作デバイス122は、ホストデバイスからの書込み要求に応答して、メモリ126に書き込まれるべきデータを抽出するように、さらに構成され得る。たとえば、ビット操作デバイス122は、ホストデバイスからの書込み要求の一部として受信されたデータからメモリ126に書き込まれるべきビットを送信することができる。さらに、ビット操作デバイス122は、メモリデバイス102に書込み要求の一部として受信されたデータを送信することができる。メモリ126における再マッピングされたデータ(たとえば、後述するように、メモリアドレス、ビットオフセット、およびビット値)は、メモリアレイ104におけるメモリの冗長行(たとえば、256ビット)よりも少ない空間(たとえば、135ビット)を占め得る。さらに、再マッピングされたデータは、メモリアレイ104が冗長行を含まないとき、メモリアレイ104におけるビットエラーを修復するために使用され得る。
【００１５】
動作中、ホストデバイスからの読取り要求に応答して、メモリコントローラ118は、メモリアレイ104から読み取られるべき要求されたデータに対応するアドレス146を受信することができる。特定の実施形態では、アドレス146は、再マッピングデバイス124、およびプロトコルエンジン120に並行して提供される。別の特定の実施形態では、アドレス146は、再マッピングデバイス124、およびプロトコルエンジン120に連続的に提供される。
【００１６】
アドレス146が再マッピングデバイス124に提供されると、再マッピングデバイス124は、アドレス146がメモリ126に記憶されたデータに対応するかどうかを決定する。たとえば、アドレス146は、行128に対応し得る。行128は、メモリアドレス130(たとえば、アドレス146に対応する物理アドレス)、ビットオフセット132(たとえば、識別されたビットエラーに対応するメモリアドレス130からのオフセット)、およびデータブロック134(たとえば、データ値を記憶するメモリブロック)を識別するデータを含み得る。行128がアドレス146に対応すると識別されると、信号は、メモリ126からビット操作デバイス122に送信され得る。信号は、データブロック134およびビットオフセット132から読み取られた値を示し得る。アドレス146がメモリ126に記憶されたいかなるデータにも対応しないとき、アドレス146がメモリ126に記憶されたデータに対応しないことを示す信号が、ビット操作デバイス122に送信され得る。
【００１７】
プロトコルエンジン120は、メモリアレイ104にアクセスする際に使用されるべきアドレス146をメモリデバイス102に提供することができる。特定の実施形態では、行106のデータ入力108は、アドレス146に対応する。データ入力108に対応するデータ値は、メモリデバイス102から取り出され、メモリコントローラ118に(たとえば、ビット操作デバイス122に)送信され得る(たとえば、後述するように、ECCエンジン114によってチェックされた後)。データ入力108に対応するデータ値は、訂正可能なビットエラー(たとえば、メモリセル110から取り出されたデータに対応する)を含み得る。アドレス146がメモリ126に記憶されたデータに対応するとき(たとえば、アドレス146が行128に対応する場合)、データブロック134に対応するビット値は、ビットオフセット132によって示される位置におけるデータ入力108のデータ値とマージされ得る。たとえば、(たとえば、データ入力108の第6のビットなど)データ入力108内のメモリセル110の位置に対応する位置を識別する、ビットオフセット132によって示される位置におけるデータ入力108に対応するビット値は、修正されたデータを生成するために、(たとえば、ビット操作デバイス122におけるマージャユニットを使用して)データブロック134に対応するビット値によって置き換えられ得る。修正されたデータは、メモリコントローラ118からの出力データ148として、ホストデバイスに送信され得る。アドレス146がメモリ126に記憶されたデータに対応していないとき、データ入力108のデータ値は、メモリコントローラ118からの出力データ148としてホストデバイスに送信される。
【００１８】
読取り要求に応答して、データ入力108のデータ値は、ECCブロック112に対応するデータとともに、メモリアレイ104からECCエンジン114に送信され得る。ECCエンジン114は、データ入力108に対応するデータおよびECCブロック112に対応するデータが1つまたは複数の訂正可能なビットエラーを示すかどうかを決定することができる。たとえば、ECCエンジン114は、データ入力108のメモリセル110において訂正可能なビットエラーが発生したことを決定し得る。ECCエンジン114がメモリセル110において訂正可能なビットエラーが発生したことを決定すると、ECCエンジン114は、ECCフラグ116を再マッピングデバイス124に送信することができる。ECCフラグ116は、訂正可能なビットエラーが発生したことを示し、訂正可能なビットエラーのアドレスを示すことができる。特定の実施形態では、ECCフラグ116は、訂正可能なビットエラーに対応する訂正済みデータ値を含む。ECCエンジン114は、訂正済みデータ値をメモリコントローラ118に送信することができる。
【００１９】
ECCフラグ116がカウンタ136の行に対応しないとき、カウンタ136において新しい行が作られ得る。新しい行は、検出された訂正可能なビットエラーのビット位置に対応し得る。たとえば、新しい行は、メモリセル110に対応し得る。ECCフラグ116がカウンタ136の行に対応しているとき、カウンタ136における対応する読取り動作エラーカウント値がインクリメントされ得る。たとえば、ECCフラグ116は、行138に対応し得るし、これは、カウンタアドレス140(たとえば、アドレス146に対応する)と、ビットオフセット142と、読取り動作エラーカウント値144とを含む。この例では、読取り動作エラーカウント値144は、ECCフラグ116を受信することに応答してインクリメントされ得る。読取り動作エラーカウント値144をインクリメントすることに応答して、読取り動作エラーカウント値144は、しきい値と比較され得る。読取り動作エラーカウント値144がしきい値を超えたとき、再マッピングデバイス124は、メモリセル110に対応するメモリ126において(たとえば、行128において)新しいデータ入力を作り得る。新しいデータ入力は、アドレス146を記憶するメモリアドレス130フィールドと、訂正可能なビットエラーに対応するオフセットを記憶するビットオフセット132フィールドと、メモリアドレス130およびビットオフセット132に対応する訂正済み値を記憶するデータブロック134とを含み得る。特定の実施形態では、データブロック134は、ECCエンジン114によって生成された訂正済み値を記憶する。別の特定の実施形態では、メモリコントローラ118は、外部メモリデバイスにデータブロック134に対応するデータ値を要求することができ、データブロック134において外部メモリデバイスから受信された値を記憶することができる。別の特定の実施形態では、メモリコントローラ118は、後述するように、アドレス146に対応する書込み要求がメモリコントローラ118で受信されるまで、データブロック134から読み取られた値が有効でないことを示し得る。
【００２０】
動作中、ホストデバイスからの書込み要求に応答して、メモリコントローラ118は、メモリアレイ104に書き込まれるべきデータ150と、メモリアレイ104においてデータ150を記憶するために要求された位置に対応するアドレス146とを受信することができる。特定の実施形態では、アドレス146は、再マッピングデバイス124、およびプロトコルエンジン120に並行して提供される。別の特定の実施形態では、アドレス146は、再マッピングデバイス124、およびプロトコルエンジン120に連続的に提供される。データ150は、ビット操作デバイス122に転送され得る。特定の実施形態では、ビット操作デバイス122は、データ150を、再マッピングデバイス124、およびプロトコルエンジン120に並行して提供する。別の特定の実施形態では、ビット操作デバイス122は、データ150を、再マッピングデバイス124、およびプロトコルエンジン120に連続的に提供する。
【００２１】
アドレス146が再マッピングデバイス124に提供されると、再マッピングデバイス124は、アドレス146がメモリ126に記憶されたデータに対応するかどうかを決定する。たとえば、アドレス146は、アドレス146がメモリアドレス130に一致する場合、行128に対応し得る。アドレス146に対応する行128がメモリ126において識別されるとき、データ150の一部(たとえば、ビットオフセット132に対応するデータ)がデータブロック134において記憶されるよう要求する信号が、メモリ126からビット操作デバイス122に送信され得る。ビット操作デバイス122(たとえば、スプリッタユニットを使用する)は、データ150の一部を再マッピングデバイス124に送信するように構成され得る。たとえば、ビット操作デバイス122は、メモリアドレス130、およびビットオフセット132に対応するデータ150の一部を抽出し、データ150の一部を再マッピングデバイス124に送信することができる。再マッピングデバイス124は、メモリ126の対応する行(たとえば、行128)のデータブロック(たとえば、データブロック134)においてデータ150の一部を記憶することができる。
【００２２】
アドレス146がプロトコルエンジン120に提供されると、プロトコルエンジン120は、メモリデバイス102にアドレス146を転送することができる。メモリコントローラ118(たとえば、ビット操作デバイス122のスプリッタユニット)は、メモリデバイス102にデータ150(たとえば、再マッピングデバイス124に送信されるデータ150の任意の部分を含む)を転送することができる。メモリデバイス102は、メモリアレイ104にアドレス146およびデータ150を提供することができる。特定の実施形態では、行106のデータ入力108は、アドレス146およびデータ150に対応する。データ150のデータ部分は、データ入力108において記憶され得る。データ150がECCデータ(たとえば、パリティビット)を含む一実施形態では、データ150のECC部分は、ECCブロック112において記憶され得る。データ150がECC部分を含まない別の実施形態では、ECCエンジン114は、データ150に対応するECC部分を生成することができ、生成されたECC部分は、ECCブロック112において記憶される。
【００２３】
ビット再マッピングシステム100を含む電子デバイスは、メモリアレイにおける冗長行を使用することと比較して、訂正可能なビットエラーを訂正するために、あまり冗長でないメモリ(たとえば、単一メモリセル)を使用することができる。電子デバイスは、さらに、メモリアレイが冗長行を含まないとき、メモリエラーを訂正するために、ビット再マッピングシステム100を使用することができる。
【００２４】
図2は、メモリデバイス202に結合されたメモリコントローラ218を含むビット再マッピングシステム200の特定の実施形態を示す。メモリコントローラ218は、図1のメモリコントローラ118に対応し得るし、メモリデバイス202は、図1のメモリデバイス202に対応し得る。ビット再マッピングシステム200は、図1のビット再マッピングシステム100と同じように動作し得る。しかしながら、カウンタ236は、(たとえば、図1のカウンタアドレス140およびビットオフセット142によって識別される)特定のビットのエラーのインスタンスをカウントするのではなく、訂正不可能なビットエラー(たとえば、ECCエンジン214によってデータ入力208内に配置できないマルチビットエラー)を含む読取り動作のインスタンスをカウントすることができる。
【００２５】
メモリ226は、結果としてアドレス246に対応するデータにおいて訂正不可能なビットエラーが検出されるアドレス246に対応する読取り動作のカウントがしきい値を超えたとき、(たとえば、図1のような、オフセットおよびビット値ではなく)アドレス246に対応するデータのブロック(すなわち複数ビット)を記憶することができる。メモリコントローラ218がメモリ226に記憶されたデータに対応するアドレス246を含む読取り要求を受信すると、ビット操作デバイス222は、(図1のように、メモリデバイス102から受信されたデータをメモリ126からのデータとマージするのではなく)メモリデバイス202から受信されたデータを、メモリ226からのデータと置き換える(たとえば、1つまたは複数のマルチプレクサを使用して)。
【００２６】
特定の実施形態では、(たとえば、訂正可能なビットエラーおよび/または訂正不可能なビットエラーが検出された読取り動作をカウントすることによって、および、ビットエラーが検出された読取り動作の数がしきい値を超えたとき、アドレスに対応するデータ位置を再マッピングすることによって)図1の再マッピングデバイス124とともに、再マッピングデバイス224が使用され得る。しきい値は、訂正可能なビットエラーおよび訂正不可能なビットエラーについて同じでもよく、または異なるしきい値が使用されてもよい。あるアドレスにおける訂正可能なビットエラーに対応する読取り動作は、訂正不可能なビットエラーに対応する読取り動作とともにカウントされてもよく、または、訂正可能なビットエラーに関する読取り動作は、訂正不可能なビットエラーに対応する読取り動作とは別にカウントされてもよい。
【００２７】
図3は、メモリアレイ304(たとえば、ダイナミックランダムアクセスメモリ(DRAM)デバイスなど)を含むメモリデバイス302に結合されるメモリコントローラ318を含むビット再マッピングシステム300の特定の実施形態を示す。メモリコントローラ318およびメモリデバイス302は、図1のメモリコントローラ118およびメモリデバイス102に対応し得るし、図1に関して説明したのと実質的に同様の方法で動作することができる。図1のメモリデバイス102におけるECCエンジン114と比較すると、システム300は、メモリコントローラ318にECCエンジン352を含む。
【００２８】
ECCエンジン352は、メモリアレイ304の行306にアドレス346に対応するデータ350を記憶することに関連してメモリアレイ304におけるECCデータ位置312に記憶されるECCデータを生成するように構成される。ECCエンジン352は、読取り命令に応答して、メモリアレイ304の行306から読み取られたデータおよびECCデータにおいてECC復号動作を実行するようにも構成される。
【００２９】
メモリアレイ304から読み取られたデータが(たとえば、メモリアドレス330に一致する)メモリ326に含まれるアドレスに対応する場合、ビット操作デバイス322は、読み取られたデータを、オフセット332によって識別されるビット値334とマージすることによって、読取りデータを修正することができ、修正されたデータは、ECCエンジン352に提供され得る。その結果、再発するビットエラー(たとえば、ハードエラー)を含むデータは、ECCエンジン352による復号前に訂正され得るし、ECCエンジン352の有効な誤り訂正能力を増加させる。たとえば、メモリアレイ304から読み取られたデータがメモリ326において追跡されるハードエラー、およびメモリ326において追跡されないソフトエラーを含む場合、ビット操作デバイス322がハードエラーを訂正した後、ECCエンジン352は、データ内に留まるソフトエラーを訂正することができる。ECCエンジン352は、たとえば図1のECCフラグ116に関して記載されているものなど、検出されたビットエラーを示すために、ECCフラグを再マッピングデバイス324に提供することができる。ECCフラグは、カウンタ336にエントリを追加し、(たとえば、カウンタ336の行338によって追跡されるビットエラーの別の発生を検出することに応答して、カウンタアドレス340およびオフセット342に関連するカウント値344をインクリメントするために)エントリに関連するカウントを更新するためのインジケータとして使用され得る。
【００３０】
図4は、(たとえば、ダイナミックランダムアクセスメモリ(DRAM)デバイスなど)メモリアレイ404を含むメモリデバイス402に結合されるビット操作デバイス422を有するメモリコントローラ418を含むビット再マッピングシステム400の特定の実施形態を示す。メモリコントローラ418およびメモリデバイス402は、図2のメモリコントローラ218およびメモリデバイス202に対応し得るし、図2に関して説明したのと実質的に同様の方法で動作することができる。図2のメモリデバイス202におけるECCエンジン214と比較すると、システム400は、メモリコントローラ418にECCエンジン452を含む。
【００３１】
ECCエンジン452は、メモリアレイ404の行406にアドレス446に対応するデータ450を記憶することに関連してメモリアレイ404におけるECCデータ位置412に記憶されるECCデータを生成するように構成される。ECCエンジン452は、読取り命令に応答して、メモリアレイ404の行406から読み取られたデータおよびECCデータにおいてECC復号動作を実行するようにも構成される。
【００３２】
メモリアレイ404から読み取られたデータが(たとえば、メモリアドレス430に一致する)メモリ426に含まれるアドレスに対応する場合、ビット操作デバイス422は、読み取られたデータの一部(たとえば、一部408)またはすべてを、データブロック434から取り出された値と置き換えることによって、読み取られたデータを修正することができる。更新された読み取られたデータは、ECCエンジン452に与えられ得る。その結果、再発するマルチビットエラー(たとえば、複数のハードエラー)を含むデータは、ECCエンジン452による復号前に訂正され得る。ECCエンジン452は、たとえば図1のECCフラグ116に関して記載されているものなど、検出されたビットエラーを示すために、ECCフラグを再マッピングデバイス424に提供することができる。ECCフラグは、カウンタ446にエントリを追加し、(たとえば、カウンタ446の行448によって追跡されるビットエラーの別の発生を検出することに応答して、カウンタアドレス440およびオフセット442に関連するカウント値444をインクリメントするために)エントリに関連するカウントを更新するためのインジケータとして使用され得る。
【００３３】
図5は、ビットを再マッピングする方法500の特定の実施形態を示すフローチャートである。方法は、502で、第1のアドレスに関連するデータにおいてエラーが検出される読取り動作のカウントを示す第1の値をカウンタにおいて記憶するステップを含む。たとえば、図1の再マッピングデバイス124は、カウンタ136の読取り動作エラーカウント値144において、アドレス146に関連するデータにおいて訂正可能なビットエラーが検出される読取り動作のカウントを示す値を記憶することができる。別の例として、図3の再マッピングデバイス324は、カウンタ336の訂正不可能なビットエラーカウント値344において、アドレス346に関連するデータにおいてビットエラーが検出される読取り動作のカウントを示す値を記憶することができる。
【００３４】
この方法は、504で、第1の値が第1のしきい値を超えたことに応答して、メモリアレイに結合されるコントローラを使用して、第1のアドレスを第2のアドレスに再マッピングするステップも含む。第1のアドレスは、メモリアレイの第1の要素(たとえば、セルまたはブロック)に対応する。第2のアドレスは、コントローラ内のメモリに含まれる第2の要素に対応する。第1のアドレスを再マッピングすることは、第1のアドレスにあるデータの第1の読取り要求を受信することに応答して、修正されたデータを生成するために、第1の要素から読み取られた第1の値(たとえば、ビット値またはブロック値)を第2の要素から読み取られた第2の値と置き換えることを含む。たとえば、図1の読取り動作エラーカウント値144における値がしきい値を超えたことに応答して、メモリデバイス102に結合されたメモリコントローラ118は、メモリセル110をメモリ126の行128に再マッピングすることができる。再マッピングは、データ入力108にあるデータの読取り要求を受信することに応答して、修正されたデータを生成するために、メモリセル110から読み取られたデータを、メモリ126のデータブロック134から読み取られたデータと置き換えることを含み得る。別の例として、図4のデータ入力444における値がしきい値を超えたことに応答して、メモリデバイス402に結合されたメモリコントローラ418は、データ入力408をメモリ426の行428に再マッピングすることができる。再マッピングは、データ入力408にあるデータの読取り要求を受信することに応答して、修正されたデータを生成するために、データ入力408から読み取られたデータを、メモリ426のデータブロック434から読み取られたデータと置き換えることを含み得る。
【００３５】
図5の方法500は、中央処理ユニット(CPU)、フィールドプログラマブルゲートアレイ(FPGA)デバイス、特定用途向け集積回路(ASIC)、コントローラ、別のハードウェアデバイス、ファームウェアデバイス、またはそれらの任意の組合せなどの処理ユニットによって開始され、および/または実行され得る。一例として、図5の方法500は、図6を参照してさらに説明するように、命令を実行する1つまたは複数のプロセッサによって実施され得る。
【００３６】
方法500に従って動作する電子デバイスは、メモリアレイにおける冗長行を使用することと比較して、ビットエラー(たとえば、訂正可能なビットエラーおよび/または訂正不可能なビットエラー)を訂正するために、あまり冗長でないメモリ(たとえば、メモリセルのブロック)を使用することができる。電子デバイスは、さらに、メモリアレイが冗長行を含まないとき、メモリエラーを訂正するために、方法500を使用することができる。
【００３７】
図6を参照すると、ブロック図は、カウンタ604および再マッピングデバイス606を含むコントローラ602と、メモリアレイ608とを含むモバイルデバイス600の特定の例示的な実施形態を示す。モバイルデバイス600、またはその構成要素は、通信デバイス、モバイルフォン、セルラー電話、コンピュータ、ポータブルコンピュータ、タブレット、アクセスポイント、セットトップボックス、エンターテイメントユニット、ナビゲーションデバイス、携帯情報端末(PDA)、固定位置データユニット、移動体位置データユニット、デスクトップコンピュータ、モニタ、コンピュータモニタ、テレビジョン、チューナ、ラジオ、衛星ラジオ、音楽プレーヤ、デジタル音楽プレーヤ、ポータブル音楽プレーヤ、ビデオプレーヤ、デジタルビデオプレーヤ、デジタルビデオディスク(DVD)プレーヤ、またはポータブルデジタルビデオプレーヤなどのデバイスを含むことができる、デバイスを実装することができる、またはデバイス内に含まれ得る。
【００３８】
モバイルデバイス600は、デジタル信号プロセッサ(DSP)などのプロセッサ612を含んでよい。プロセッサ612は、メモリ632(たとえば、非一時的コンピュータ可読媒体)に結合され得る。メモリ632は、メモリアレイ608を含んでいてもよく、またはメモリアレイ608とは別でもよい。プロセッサ612は、コントローラ602にさらに結合され得る。コントローラ602は、カウンタ604と、再マッピングデバイス606とを含み得る。メモリアレイ608は、データ値およびデータ値に関連付けられた誤り訂正符号(ECC)データを記憶するように構成することができる。メモリアレイ608は、図1および図3に関して上述したように、ECCエンジンを含むメモリデバイスの一部でもよい。コントローラ602は、図2および図4に関して上述したように、ECCエンジンを含み得る。カウンタ604は、メモリアレイ608の1つまたは複数のメモリセルに関連するいくつかの検出されたビットエラーを示す値を記憶するように構成され得る。再マッピングデバイス606は、カウンタ604における値がしきい値を超えたことに応答して、1つまたは複数のメモリセルに対応するアドレスをコントローラ602内のメモリに再マッピングするように構成され得る。再マッピングデバイス606およびカウンタ604は、単一のデバイスの一部でもよく、または、別個のデバイスでもよい。たとえば、コントローラ602は、図1のメモリコントローラ118、図2のメモリコントローラ218、図3のメモリコントローラ318、または図4のメモリコントローラ418に対応し得る。カウンタ604は、図1のカウンタ136、図2のカウンタ236、図3のカウンタ336、または図4のカウンタ436に対応し得る。再マッピングデバイス606は、図1の再マッピングデバイス124、図2の再マッピングデバイス224、図3の再マッピングデバイス324、または図4の再マッピングデバイス424に対応し得る。メモリアレイ608は、図1のメモリアレイ104、図2のメモリアレイ204、図3のメモリアレイ304、または図4のメモリアレイ404に対応し得る。
【００３９】
図6は、プロセッサ612とディスプレイ628とに結合されたディスプレイコントローラ626も示す。コーダ/デコーダ(CODEC)634は、また、プロセッサ612に結合され得る。スピーカ636およびマイクロフォン638が、コーデック634に結合され得る。ワイヤレスコントローラ640が、プロセッサ612に結合されてよく、アンテナ642にさらに結合されてよい。
【００４０】
特定の実施形態では、プロセッサ612、ディスプレイコントローラ626、メモリ632、コーデック634、ワイヤレスコントローラ640、コントローラ602、およびメモリアレイ608が、システムインパッケージまたはシステムオンチップデバイス622内に含まれる。入力デバイス630および電源644は、システムオンチップデバイス622に結合されてよい。その上、特定の実施形態では、図6に示されるように、ディスプレイ628、入力デバイス630、スピーカ636、マイクロフォン638、アンテナ642および電源644は、システムオンチップデバイス622の外部に存在している。しかしながら、ディスプレイ628、入力デバイス630、スピーカ636、マイクロフォン638、アンテナ642、および電源644の各々は、インターフェースまたはコントローラなどのシステムオンチップデバイス622の構成要素に結合されてよい。コントローラ602および/またはメモリアレイ608は、図6に示すように、システムオンチップデバイス622に含まれてよく、または1つもしくは複数の別々の構成要素に含まれてよい。
【００４１】
記載した実施形態とともに、装置(たとえばモバイルデバイス600など)は、メモリアレイ(たとえば、図1のメモリアレイ104、図2のメモリアレイ204、図3のメモリアレイ304、図4のメモリアレイ404、または図6のメモリアレイ608)に結合されるように構成された制御手段(たとえば、図1のメモリコントローラ118、図2のメモリコントローラ218、図3のメモリコントローラ318、図4のメモリコントローラ418、または図6のコントローラ602)を含み得る。制御手段は、第1のアドレスに関連するデータにおいてビットエラーが検出される読取り動作のカウントを示す値を記憶するための手段(たとえば、図1のカウンタ136、図2のカウンタ236、図3のカウンタ336、図4のカウンタ436、または図6のカウンタ604)を含み得る。第1のアドレスは、メモリアレイの第1のセルに対応し得る。制御手段は、記憶するための手段における値がしきい値を超えたことに応答して、第1のアドレスを第2のアドレスに再マッピングすることであり、第2のアドレスが制御手段内のデータを記憶するための手段(たとえば、図1のメモリ126、図2のメモリ226、図3のメモリ326、または図4のメモリ426)に含まれる第2のセルに対応し得る、再マッピングすることと、第1のアドレスにあるデータの読取り要求を受信することに応答して、修正されたデータを生成するために、第1のセルから読み取られた第1のビット値を第2のセルから読み取られた第2のビット値と置き換えさせることとを行うための手段(たとえば、図1の再マッピングデバイス124、図2の再マッピングデバイス224、図3の再マッピングデバイス324、図4の再マッピングデバイス424、または図6の再マッピングデバイス606)をさらに含み得る。
【００４２】
上記の開示されるデバイスおよび機能は、コンピュータ可読媒体上に格納されたコンピュータファイル(たとえばRTL、GDSII、GERBERなど)内に設計および構成され得る。一部のまたはすべてのそのようなファイルは、そのようなファイルに基づいてデバイスを作製するように作製ハンドラに供給されてよい。得られる生成物は、次いで、ダイに切断され、チップにパッケージされるウェハを含む。チップは、次いで、上記で説明したデバイスにおいて使用される。図7は、電子デバイス製造プロセス700の特定の例示的な実施形態を示す。
【００４３】
物理デバイス情報702が、製造プロセス700、たとえば、研究コンピュータ706において受信される。物理デバイス情報702は、コントローラ(たとえば、図1のメモリコントローラ118、図2のメモリコントローラ218、図3のメモリコントローラ318、図4のメモリコントローラ418、または図6のコントローラ602に対応する)、カウンタ(たとえば、図1のカウンタ136、図2のカウンタ236、図3のカウンタ336、図4のカウンタ436、または図6のカウンタ604に対応する)、および/または再マッピングデバイス(たとえば、図1の再マッピングデバイス124、図2の再マッピングデバイス224、図3の再マッピングデバイス324、図4の再マッピングデバイス424、または図6の再マッピングデバイス606に対応する)を含む電子デバイスの少なくとも1つの物理的特性を表す設計情報を含み得る。たとえば、物理的デバイス情報702は、研究コンピュータ706に結合されたユーザインターフェース704を介して入力される、物理的なパラメータ、材料の特徴、および構造情報を含んでもよい。研究コンピュータ706は、メモリ710などのコンピュータ可読媒体に結合された、1つまたは複数の処理コアなどのプロセッサ708を含む。メモリ710は、プロセッサ708に、ファイルフォーマットに従うように物理デバイス情報702を変換させ、ライブラリファイル712を生成させるために実行可能なコンピュータ可読命令を記憶することができる。
【００４４】
特定の実施形態では、ライブラリファイル712は、変換された設計情報を含む少なくとも1つのデータファイルを含む。たとえば、ライブラリファイル712は、電子設計自動化(EDA)ツール720とともに使用するために提供された、コントローラ(たとえば、図1のメモリコントローラ118、図2のメモリコントローラ218、図3のメモリコントローラ318、図4のメモリコントローラ418、または図6のコントローラ602に対応する)、カウンタ(たとえば、図1のカウンタ136、図2のカウンタ236、図3のカウンタ336、図4のカウンタ436、または図6のカウンタ604に対応する)、および/または再マッピングデバイス(たとえば、図1の再マッピングデバイス124、図2の再マッピングデバイス224、図3の再マッピングデバイス324、図4の再マッピングデバイス424、または図6の再マッピングデバイス606に対応する)を含む電子デバイス(たとえば、半導体素子)のライブラリを含み得る。
【００４５】
ライブラリファイル712は、メモリ718に結合された、1つまたは複数の処理コアなどのプロセッサ716を含む設計コンピュータ714において、EDAツール720とともに使用することができる。EDAツール720は、ライブラリファイル712を使用して、コントローラ(たとえば、図1のメモリコントローラ118、図2のメモリコントローラ218、図3のメモリコントローラ318、図4のメモリコントローラ418、または図6のコントローラ602に対応する)、カウンタ(たとえば、図1のカウンタ136、図2のカウンタ236、図3のカウンタ336、図4のカウンタ436、または図6のカウンタ604に対応する)、および/または再マッピングデバイス(たとえば、図1の再マッピングデバイス124、図2の再マッピングデバイス224、図3の再マッピングデバイス324、図4の再マッピングデバイス424、または図6の再マッピングデバイス606に対応する)を含む回路を、設計コンピュータ714のユーザが設計できるようにするために、メモリ718においてプロセッサ実行可能命令として記憶され得る。たとえば、設計コンピュータ714のユーザは、設計コンピュータ714に結合されたユーザインターフェース724を介して回路設計情報722を入力することができる。回路設計情報722は、コントローラ(たとえば、図1のメモリコントローラ118、図2のメモリコントローラ218、図3のメモリコントローラ318、図4のメモリコントローラ418、または図6のコントローラ602に対応する)、カウンタ(たとえば、図1のカウンタ136、図2のカウンタ236、図3のカウンタ336、図4のカウンタ436、または図6のカウンタ604に対応する)、および/または再マッピングデバイス(たとえば、図1の再マッピングデバイス124、図2の再マッピングデバイス224、図3の再マッピングデバイス324、図4の再マッピングデバイス424、または図6の再マッピングデバイス606に対応する)を含む電子デバイスの少なくとも1つの物理的特性を表す設計情報を含み得る。例示のために、回路設計特性は、特定の回路の識別情報および回路設計内の他の要素との関係、位置決め情報、フィーチャサイズ情報、配線情報、または電子デバイスの物理的特性を表す他の情報を含み得る。
【００４６】
設計コンピュータ714は、回路設計情報722を含む設計情報を、ファイルフォーマットに適合するように変換するように構成され得る。例示するために、ファイルフォーマットは、回路レイアウトについての平面幾何形状、テキストラベル、および他の情報をグラフィックデータシステム(GDSII)ファイルフォーマットなどの階層フォーマットにおいて表すデータベースバイナリファイルフォーマットを含むことができる。設計コンピュータ714は、コントローラ(たとえば、図1のメモリコントローラ118、図2のメモリコントローラ218、図3のメモリコントローラ318、図4のメモリコントローラ418、または図6のコントローラ602に対応する)、カウンタ(たとえば、図1のカウンタ136、図2のカウンタ236、図3のカウンタ336、図4のカウンタ436、または図6のカウンタ604に対応する)、および/または再マッピングデバイス(たとえば、図1の再マッピングデバイス124、図2の再マッピングデバイス224、図3の再マッピングデバイス324、図4の再マッピングデバイス424、または図6の再マッピングデバイス606に対応する)を記述する情報を含み、SOC内の追加の電子回路および構成要素も含む、GDSIIファイル726など、変換された設計情報を含むデータファイルを生成するように構成され得る。
【００４７】
GDSIIファイル726は、GDSIIファイル726における変換された情報に従って、コントローラ(たとえば、図1のメモリコントローラ118、図2のメモリコントローラ218、図3のメモリコントローラ318、図4のメモリコントローラ418、または図6のコントローラ602に対応する)、カウンタ(たとえば、図1のカウンタ136、図2のカウンタ236、図3のカウンタ336、図4のカウンタ436、または図6のカウンタ604に対応する)、および/または再マッピングデバイス(たとえば、図1の再マッピングデバイス124、図2の再マッピングデバイス224、図3の再マッピングデバイス324、図4の再マッピングデバイス424、または図6の再マッピングデバイス606に対応する)を製造するための製造プロセス728において受信され得る。たとえば、デバイス製造プロセスは、GDSIIファイル726を、代表的なマスク732として図7に例示するフォトリソグラフィ処理で使用されるマスクなどの、1つまたは複数のマスクを作成するマスク製造業者730に提供することを含み得る。マスク732は、試験されて代表的なダイ736などのダイに分離され得る、1つまたは複数のウェハ733を生成するために製造プロセスの間に使用され得る。ダイ736は、コントローラ(たとえば、図1のメモリコントローラ118、図2のメモリコントローラ218、図3のメモリコントローラ318、図4のメモリコントローラ418、または図6のコントローラ602に対応する)、カウンタ(たとえば、図1のカウンタ136、図2のカウンタ236、図3のカウンタ336、図4のカウンタ436、または図6のカウンタ604に対応する)、および/または再マッピングデバイス(たとえば、図1の再マッピングデバイス124、図2の再マッピングデバイス224、図3の再マッピングデバイス324、図4の再マッピングデバイス424、または図6の再マッピングデバイス606に対応する)を含む回路を含む。
【００４８】
特定の実施形態では、製造プロセス728は、プロセッサ734によって開始され得る、またはプロセッサ734によって制御され得る。プロセッサ734は、コンピュータ可読命令またはプロセッサ可読命令などの実行可能命令を含むメモリ735にアクセスすることができる。実行可能命令は、プロセッサ734などのコンピュータによって実行可能な1つまたは複数の命令を含むことができる。
【００４９】
製造プロセス728は、完全に自動化された、または部分的に自動化された製造システムによって実施され得る。たとえば、製造プロセス728は、自動化されてもよく、スケジュールに従って処理ステップを実行することができる。製造システムは、電子デバイスを形成するために1つまたは複数の動作を実行するための作製機器(たとえば、処理ツール)を含み得る。たとえば、製造機器は、集積回路製造プロセス(たとえば、ウェットエッチング、ドライエッチング、堆積、平坦化、リソグラフィ、またはそれらの組合せ)を使って集積回路要素を形成するように構成することができる。
【００５０】
製造システムは、分散型アーキテクチャ(たとえば、階層)を有し得る。たとえば、製造システムは、分散型アーキテクチャに従って分散された、プロセッサ734などの1つもしくは複数のプロセッサ、メモリ735などの1つもしくは複数のメモリ、および/またはコントローラを含むことができる。分散型アーキテクチャは、1つまたは複数の低レベルシステムの動作を制御または開始する高レベルプロセッサを含むことができる。たとえば、製造プロセス728の高レベル部分は、プロセッサ734などの1つまたは複数のプロセッサを含むことができ、低レベルシステムは、各々、1つもしくは複数の対応するコントローラを含むことができ、または、1つもしくは複数の対応するコントローラによって制御され得る。特定の低レベルシステムの特定のコントローラは、高レベルシステムから1つまたは複数の命令(たとえば、コマンド)を受信することができ、サブコマンドを下位のモジュールまたはプロセスツールに発行することができ、高レベルシステムに状態データを通信し戻すことができる。1つまたは複数の低レベルシステムの各々は、製造機器の1つまたは複数の対応する部分(たとえば、処理ツール)に関連し得る。特定の実施形態では、製造システムは、製造システム内に分散された複数のプロセッサを含むことができる。たとえば、製造システムの低レベルシステム構成要素のコントローラは、プロセッサ734などのプロセッサを含むことができる。
【００５１】
代替的には、プロセッサ734は、製造システムの高レベルシステム、サブシステム、または構成要素の一部であり得る。別の実施形態では、プロセッサ734は、製造システムの様々なレベルおよび構成要素での分散処理を含む。
【００５２】
したがって、メモリ735は、プロセッサ734によって実行されると、プロセッサ734に、コントローラ(たとえば、図1のメモリコントローラ118、図2のメモリコントローラ218、図3のメモリコントローラ318、図4のメモリコントローラ418、または図6のコントローラ602に対応する)、カウンタ(たとえば、図1のカウンタ136、図2のカウンタ236、図3のカウンタ336、図4のカウンタ436、または図6のカウンタ604に対応する)、および/または再マッピングデバイス(たとえば、図1の再マッピングデバイス124、図2の再マッピングデバイス224、図3の再マッピングデバイス324、図4の再マッピングデバイス424、または図6の再マッピングデバイス606に対応する)の形成を開始または制御させるプロセッサ実行可能命令を含み得る。
【００５３】
ダイ736は、パッケージ化プロセス738に提供され得るし、ここで、ダイ736は、代表的なパッケージ740に組み込まれる。たとえば、パッケージ740は、システムインパッケージ(SiP)配置などの、単一のダイ736または複数のダイを含むことができる。パッケージ740は、合同電子デバイスエンジニアリング評議会(JEDEC)規格などの1つまたは複数の規格または仕様に準拠するように構成され得る。
【００５４】
パッケージ740に関する情報は、コンピュータ746において記憶されるコンポーネントライブラリを介するなど、様々な製品設計者に配布され得る。コンピュータ746は、メモリ750に結合された1つまたは複数の処理コアなどのプロセッサ748を含むことができる。プリント回路基板(PCB)ツールは、ユーザインターフェース744を介してコンピュータ746のユーザから受信されたPCB設計情報742を処理するために、メモリ750にプロセッサ実行可能命令として記憶され得る。PCB設計情報742は、コントローラ(たとえば、図1のメモリコントローラ118、図2のメモリコントローラ218、図3のメモリコントローラ318、図4のメモリコントローラ418、または図6のコントローラ602に対応する)、カウンタ(たとえば、図1のカウンタ136、図2のカウンタ236、図3のカウンタ336、図4のカウンタ436、または図6のカウンタ604に対応する)、および/または再マッピングデバイス(たとえば、図1の再マッピングデバイス124、図2の再マッピングデバイス224、図3の再マッピングデバイス324、図4の再マッピングデバイス424、または図6の再マッピングデバイス606に対応する)を含むパッケージ740に対応する、回路板上のパッケージ化された電子デバイスの物理的測位情報を含み得る。
【００５５】
コンピュータ746は、トレースおよびビアなどの電子的な接続のレイアウトとともに、回路板上のパッケージ化された電子デバイスの物理的な測位情報を含むデータを含むGERBERファイル752などのデータファイルを生成するために、PCB設計情報742を変換するように構成され得るし、パッケージ化された電子デバイスは、コントローラ(たとえば、図1のメモリコントローラ118、図2のメモリコントローラ218、図3のメモリコントローラ318、図4のメモリコントローラ418、または図6のコントローラ602に対応する)、カウンタ(たとえば、図1のカウンタ136、図2のカウンタ236、図3のカウンタ336、図4のカウンタ436、または図6のカウンタ604に対応する)、および/または再マッピングデバイス(たとえば、図1の再マッピングデバイス124、図2の再マッピングデバイス224、図3の再マッピングデバイス324、図4の再マッピングデバイス424、または図6の再マッピングデバイス606に対応する)を含むパッケージ740に対応する。別の実施形態では、変換されたPCB設計情報によって生成されるデータファイルは、GERBERフォーマット以外のフォーマットを有することができる。
【００５６】
GERBERファイル752は、基板組立てプロセス754において受信される場合があり、GERBERファイル752内に記憶される設計情報に従って製造される、代表的なPCB756などのPCBを作製するために使用される場合がある。たとえば、GERBERファイル752は、PCB生産プロセスの様々なステップを実行するために、1つまたは複数の機械にアップロードされ得る。PCB756には、パッケージ740を含む電子構成要素が実装され、代表的なプリント回路アセンブリ(PCA)758を形成することができる。
【００５７】
PCA758は、製品製造業者760において受け取られ、第1の代表的な電子デバイス762および第2の代表的な電子デバイス764のような、1つまたは複数の電子デバイスに組み込まれる。例示的な非限定的な例として、第1の代表的な電子デバイス762、第2の代表的な電子デバイス764、または両方は、モバイルフォン、タブレット、コンピュータ、通信デバイス、セットトップボックス、音楽プレーヤ、ビデオプレーヤ、娯楽ユニット、ナビゲーションデバイス、携帯情報端末(PDA)、および固定位置データユニットから選択され得るし、その中に、コントローラ(たとえば、図1のメモリコントローラ118、図2のメモリコントローラ218、図3のメモリコントローラ318、図4のメモリコントローラ418、または図6のコントローラ602に対応する)、カウンタ(たとえば、図1のカウンタ136、図2のカウンタ236、図3のカウンタ336、図4のカウンタ436、または図6のカウンタ604に対応する)、および/または再マッピングデバイス(たとえば、図1の再マッピングデバイス124、図2の再マッピングデバイス224、図3の再マッピングデバイス324、図4の再マッピングデバイス424、または図6の再マッピングデバイス606に対応する)が組み込まれる。別の例示的な非限定的な例として、電子デバイス762および764のうちの1つまたは複数は、モバイルフォン、ハンドヘルドパーソナル通信システム(PCS)ユニット、携帯情報端末などのポータブルデータユニット、全地球測位システム(GPS)対応デバイス、ナビゲーションデバイス、メータ検針機器などの固定位置データユニット、または、データもしくはコンピュータ命令を記憶するもしくは引き出す任意の他のデバイス、またはそれらの任意の組合せなどの、遠隔ユニットであり得る。図7は、本開示の教示による遠隔ユニットを示しているが、本開示は、これらの例示されたユニットに限定されない。本開示の実施形態は、メモリおよびオンチップ回路を含む能動集積回路を含む任意のデバイスにおいて適切に使用することができる。
【００５８】
コントローラ(たとえば、図1のメモリコントローラ118、図2のメモリコントローラ218、図3のメモリコントローラ318、図4のメモリコントローラ418、または図6のコントローラ602に対応する)、カウンタ(たとえば、図1のカウンタ136、図2のカウンタ236、図3のカウンタ336、図4のカウンタ436、または図6のカウンタ604に対応する)、および/または再マッピングデバイス(たとえば、図1の再マッピングデバイス124、図2の再マッピングデバイス224、図3の再マッピングデバイス324、図4の再マッピングデバイス424、または図6の再マッピングデバイス606に対応する)を含むデバイスは、例示的な製造プロセス700で説明したように、製造され、処理され、電子デバイスに組み込まれ得る。図1〜図6に関して開示される実施形態の1つまたは複数の態様は、ライブラリファイル712、GDSIIファイル726、およびGERBERファイル752内など、様々な処理ステージにおいて含まれ、ならびに、研究コンピュータ706のメモリ710、設計コンピュータ714のメモリ718、コンピュータ746のメモリ750、基板アセンブリプロセス754においてなど様々なステージにおいて使用される1つまたは複数の他のコンピュータまたはプロセッサ(図示せず)のメモリにおいて格納され、また、マスク732、ダイ736、パッケージ740、PCA758、プロトタイプ回路もしくはデバイス(図示せず)などの他の製品、またはその任意の組合せなどの1つまたは複数の他の物理実施形態に組み込まれ得る。様々な代表的なステージが、図1〜図6を参照して示されているが、他の実施形態では、より少ないステージが使用され得る、または、追加のステージが含まれ得る。同様に、図7のプロセス700は、製造プロセス700の様々なステージを実行する、単一のエンティティによって、または1つもしくは複数のエンティティによって実行され得る。
【００５９】
記載した実施形態とともに、非一時的コンピュータ可読媒体は、プロセッサによって実行されると、プロセッサに、第1のアドレスに関連するデータにおいてビットエラーが検出される読取り動作のカウントを示す値をカウンタにおいて記憶させる命令を記憶する。非一時的コンピュータ可読媒体は、プロセッサによって実行されると、プロセッサに、第1の値が第1のしきい値を超えたことに応答して、メモリアレイに結合されたコントローラを使用して、第1のアドレスを第2のアドレスに再マッピングさせる命令をさらに記憶し得る。第1のアドレスは、メモリアレイの第1のセルに対応し得る。第2のアドレスは、コントローラ内のメモリに含まれる第2のセルに対応し得る。第1のアドレスを再マッピングすることは、第1のアドレスにあるデータの読取り要求を受信することに応答して、修正されたデータを生成するために、第1のセルから読み取られた第1のビット値を第2のセルから読み取られた第2のビット値と置き換えることを含み得る。
【００６０】
非一時的コンピュータ可読媒体は、図1のメモリデバイス102、図2のメモリデバイス202、図3のメモリデバイス302、図4のメモリデバイス402、および図6のメモリメモリ632に対応することができる。プロセスは、図6のプロセッサ612に対応し得る。コントローラは、図1のメモリコントローラ118、図2のメモリコントローラ218、図3のメモリコントローラ318、図4のメモリコントローラ418、または図6のメモリコントローラ602に対応し得る。カウンタは、図1のカウンタ136、図2のカウンタ236、図3のカウンタ336、図4のカウンタ436、または図6のカウンタ604に対応し得る。メモリアレイは、図1のメモリアレイ104、図2のメモリアレイ204、図3のメモリアレイ304、図4のメモリアレイ404、または図6のメモリアレイ608に対応し得る。
【００６１】
当業者はさらに、本明細書において開示される実施形態に関連して説明された種々の例示的な論理ブロック、構成、モジュール、回路、およびアルゴリズムステップが、電子ハードウェア、プロセッサによって実行されるコンピュータソフトウェア、または両方の組合せとして実現できることは理解されよう。種々の例示的な構成要素、ブロック、構成、モジュール、回路、およびステップは、これまで、それらの機能の観点から包括的に説明されてきた。そのような機能が、ハードウェアとして実現されるか、プロセッサ実行可能命令として実現されるかは、特定のアプリケーションと、システム全体に課される設計制約とによって決まる。当業者は、説明された機能を特定のアプリケーションごとに種々の方法で実現することができるが、そのような実施態様の決定は、本開示の範囲からの逸脱を引き起こすと解釈されるべきではない。
【００６２】
本明細書において開示される実施形態との関連において説明された方法またはアルゴリズムのステップは、ハードウェアにおいて直接に、または、プロセッサによって実行されるソフトウェアモジュールにおいて、またはこの2つの組合せにおいて具現される場合がある。ソフトウェアモジュールは、ランダムアクセスメモリ(RAM)、フラッシュメモリ、読取り専用メモリ(ROM)、プログラマブル読取り専用メモリ(PROM)、消去可能プログラマブル読取り専用メモリ(EPROM)、電気的消去可能プログラマブル読取り専用メモリ(EEPROM)、レジスタ、ハードディスク、リムーバブルディスク、コンパクトディスク読取り専用メモリ(CD-ROM)などのメモリに存在し得る。メモリは、当業者に知られている任意の形態の非一時的記憶媒体を含んでよい。例示的な記憶媒体(たとえば、メモリ)は、プロセッサが記憶媒体から情報を読み取り、そこに情報を書き込めるようにプロセッサに結合される。代替として、記憶媒体はプロセッサと一体化されてよい。プロセッサおよび記憶媒体は特定用途向け集積回路(ASIC)内に存在することができる。ASICは、コンピューティングデバイスまたはユーザ端末内にあり得る。代替形態では、プロセッサおよび記憶媒体は、コンピューティングデバイスまたはユーザ端末内に別個の構成要素として存在することができる。
【００６３】
開示される実施形態のこれまでの説明は、当業者が開示される実施形態を作製または使用できるようにするために提供される。これらの実施形態に対する種々の変更は、当業者には容易に明らかになり、本明細書において規定された原理は、本開示の範囲から逸脱することなく、他の実施形態に適用することができる。したがって、本開示は、本明細書に示される実施形態に限定されることを意図するものではなく、以下の特許請求の範囲によって規定される原理および新規な特徴と一致する、取り得る最も広い範囲を与えられるべきである。
【符号の説明】
【００６４】
100  ビット再マッピングシステム
102  メモリデバイス
104  メモリアレイ
106  行
108  データ入力
110  メモリセル
114  誤り訂正符号(ECC)エンジン
116  ECCフラグ
118  メモリコントローラ
120  プロトコルエンジン
122  ビット操作デバイス
124  再マッピングデバイス
126  メモリ
128  行
130  メモリアドレス
132  ビットオフセット
134  データブロック
136  カウンタ
140  カウンタアドレス
142  ビットオフセット
144  読取り動作エラーカウント値
146  アドレス
148  データ
150  データ
200  ビット再マッピングシステム
202  メモリデバイス
204  メモリアレイ
208  データ入力
214  ECCエンジン
218  メモリコントローラ
224  再マッピングデバイス
226  メモリ
236  カウンタ
246  アドレス
300  システム
302  メモリデバイス
304  メモリアレイ
306  行
312  ECCデータ位置
318  メモリコントローラ
322  ビット操作デバイス
324  再マッピングデバイス
326  メモリ
330  メモリアドレス
332  オフセット
334  ビット値
336  カウンタ
338  行
340  カウンタアドレス
342  オフセット
344  カウント値
346  アドレス
350  データ
352  ECCエンジン
400  ビット再マッピングシステム
402  メモリデバイス
404  メモリアレイ
408  部分
418  メモリコントローラ
422  ビット操作デバイス
424  再マッピングデバイス
426  メモリ
430  メモリアドレス
434  データブロック
436  カウンタ
440  カウンタアドレス
442  オフセット
444  カウント値
446  カウンタ
448  行
450  データ
452  ECCエンジン
600  モバイルデバイス
602  コントローラ
604  カウンタ
606  再マッピングデバイス
608  メモリアレイ
612  プロセッサ
622  システムオンチップデバイス
626  ディスプレイコントローラ
628  ディスプレイ
630  入力デバイス
632  メモリ
634  コーダ/デコーダ(CODEC)
636  スピーカ
638  マイクロフォン
640  ワイヤレスコントローラ
642  アンテナ
644  電源
700  電子デバイス製造プロセス
702  物理デバイス情報
704  ユーザインターフェース
706  研究コンピュータ
708  プロセッサ
710  メモリ
712  ライブラリファイル
714  設計コンピュータ
716  プロセッサ
718  メモリ
720  電子設計自動化(EDA)ツール
722  回路設計情報
724  ユーザインターフェース
726  GDSIIファイル
728  製造プロセス
730  マスク製造業者
732  マスク
733  ウェハ
734  プロセッサ
735  メモリ
736  ダイ
740  パッケージ
742  PCB設計情報
744  ユーザインターフェース
746  コンピュータ
748  プロセッサ
750  メモリ
752  GERBERファイル
758  プリント回路アセンブリ(PCA)
760  製品製造業者
762  電子デバイス
764  電子デバイス
【図１】
2017502419.tif 000003
【図２】
2017502419.tif 000004
【図３】
2017502419.tif 000005
【図４】
2017502419.tif 000006
【図５】
2017502419.tif 000007
【図６】
2017502419.tif 000008
【図７】
2017502419.tif 000009
【手続補正書】
【提出日】平成28年7月5日(2016.7.5)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
メモリアレイの第1のアドレスに関連するデータにおいてビットエラーが検出される読取り動作のカウントを示す第1の値をカウンタにおいて記憶するステップと、
前記第1の値が第1のしきい値を超えたことに応答して、前記メモリアレイに結合されるコントローラを使用して、前記第1のアドレスを第2のアドレスに再マッピングするステップとを含み、前記第1のアドレスが、前記メモリアレイの第1の要素に対応し、前記第2のアドレスが、前記コントローラ内のメモリに含まれる第2の要素に対応し、前記第1のアドレスを再マッピングするステップが、前記第1のアドレスにあるデータの第1の読取り要求を受信することに応答して、前記第1の要素からの複数のビット値と第2のビット値とを含む修正されたデータを生成するために、前記第1の要素から読み取られた第1のビット値を前記第2の要素から読み取られた前記第2のビット値と置き換えるステップを含む、方法。
【請求項２】
前記第1の値を記憶するステップが、読取り動作および前記第1のアドレスに関連して前記データにおいて前記ビットエラーを検出することに応答して、前記第1の値をインクリメントするステップを含む、請求項1に記載の方法。
【請求項３】
前記第1のアドレスを再マッピングするステップが、前記第1の読取り要求を受信する前に、前記コントローラにおいて、外部メモリデバイス、または誤り訂正符号(ECC)エンジンからの書込み命令から前記第2のビット値を受信することに応答して、前記第2の要素において前記第2のビット値を書き込むステップをさらに含む、請求項1に記載の方法。
【請求項４】
前記カウンタが、前記メモリアレイにおいて検出された訂正可能なビットエラーに対応する読取り動作を示す、請求項1に記載の方法。
【請求項５】
第3のアドレスに関連するデータにおいて検出された訂正不可能なビットエラーを含む読取り動作のカウントを示す第2の値を前記カウンタにおいて記憶するステップと、
前記第2の値が第2のしきい値を超えたことに応答して、前記コントローラを使用して、前記第3のアドレスを第4のアドレスに再マッピングするステップとをさらに含み、前記第3のアドレスが、前記メモリアレイの第1のセルブロックに対応し、前記第4のアドレスが、前記コントローラ内の前記メモリに含まれる第2のセルブロックに対応し、前記第3のアドレスを再マッピングするステップが、前記第3のアドレスにあるデータの第2の読取り要求を受信することに応答して、前記第1のセルブロックから読み取られた第1の複数のビット値を前記第2のセルブロックから読み取られた第2の複数のビット値と置き換えるステップを含む、請求項4に記載の方法。
【請求項６】
前記第3のアドレスが前記第1のアドレスに一致する、請求項5に記載の方法。
【請求項７】
第2のカウンタが、前記メモリアレイにおいて検出された訂正不可能なビットエラーに対応する読取り動作を示す、請求項1に記載の方法。
【請求項８】
前記第1の要素が、前記メモリアレイの第1のブロックであり、前記第2の要素が、前記コントローラ内の前記メモリに含まれる第2のブロックである、請求項7に記載の方法。
【請求項９】
前記第1の読取り要求を受信することに応答して、前記第1のブロックからの第3の複数のビット値と前記第2のビット値とを含む修正されたデータを生成するために、前記第1のブロックから読み取られた第1の複数のビット値を前記第2のブロックから読み取られた第2の複数のビット値と置き換えるステップをさらに含む、請求項8に記載の方法。
【請求項１０】
前記第2のカウンタが、前記カウンタ内の第2のメモリに含まれる、請求項7に記載の方法。
【請求項１１】
前記第1のアドレスが、メモリアドレスとオフセット値とを含む、請求項1に記載の方法。
【請求項１２】
前記第1のアドレスが、前記メモリアレイにおける複数のメモリセルに対応する、請求項1に記載の方法。
【請求項１３】
前記メモリアレイが、メモリ内誤り訂正符号(ECC)エンジンを含む、請求項1に記載の方法。
【請求項１４】
前記カウンタにおいて前記第1の値を記憶する前に、前記第1のアドレスに関連する前記データにおける前記ビットエラーの検出を示す1つまたは複数のECCフラグを前記メモリアレイから受信するステップをさらに含み、前記第1の値が、前記ECCフラグに基づく、請求項13に記載の方法。
【請求項１５】
前記コントローラが、システム内誤り訂正符号(ECC)エンジンを含む、請求項1に記載の方法。
【請求項１６】
前記修正されたデータを生成することに応答して、前記修正されたデータにおいてECC動作を実行するステップをさらに含む、請求項15に記載の方法。
【請求項１７】
前記ECC動作を実行するステップが、前記修正されたデータにおける訂正可能なビットエラーを修正するステップを含む、請求項16に記載の方法。
【請求項１８】
前記第1の値を記憶し、前記第1のアドレスを再マッピングするステップが、電子デバイスに組み込まれたプロセッサによって開始される、請求項1に記載の方法。
【請求項１９】
メモリアレイに結合されるように構成されたコントローラを備え、前記コントローラが、
第1のアドレスに関連するデータにおいてビットエラーが検出される読取り動作のカウントを示す値を記憶するように構成されたカウンタであり、前記第1のアドレスが、前記メモリアレイの第1の要素に対応する、カウンタと、
前記カウンタにおける前記値が第1のしきい値を超えたことに応答して、前記第1のアドレスを第2のアドレスに再マッピングするように構成された再マッピングデバイスであり、前記第2のアドレスが、前記コントローラ内のメモリに含まれる第2の要素に対応する、再マッピングデバイスとを備え、前記第1のアドレスにあるデータの読取り要求を受信することに応答して、前記再マッピングデバイスが、修正されたデータを生成するために、前記第1の要素から読み取られた第1のビット値を前記第2の要素から読み取られた第2のビット値と置き換えさせるように構成され、前記修正されたデータが、前記第1のブロックからの複数のビット値と前記第2のビット値とを含む、再マッピングデバイスと
を備える
装置。
【請求項２０】
前記メモリアレイの位置からの前記データの第1の部分を前記コントローラ内の前記メモリの対応する位置からの前記データの第2の部分とマージするように構成されたマージャユニットと、
前記データの第3の部分を前記位置に送信し、前記データの第4の部分を前記対応する位置に送信するように構成されたスプリッタユニットと
をさらに備える請求項19に記載の装置。
【請求項２１】
前記第1のビット値を前記第2のビット値と置き換えるように構成され、前記第1の要素のための書込みデータを前記第2の要素に移動させるように構成されたマルチプレクサをさらに備える、請求項19に記載の装置。
【請求項２２】
前記メモリアレイが、ダイナミックランダムアクセスメモリ(DRAM)を含む、請求項19に記載の装置。
【請求項２３】
前記コントローラ内の前記メモリが、スタティックランダムアクセスメモリ(SRAM)を含む、請求項19に記載の装置。
【請求項２４】
少なくとも1つのダイに組み込まれた、請求項19に記載の装置。
【請求項２５】
前記コントローラが組み込まれているモバイルフォン、タブレット、コンピュータ、通信デバイス、セットトップボックス、音楽プレーヤ、ビデオプレーヤ、エンターテイメントユニット、ナビゲーションデバイス、携帯情報端末(PDA)、および固定位置データユニットから選択される電子デバイスをさらに備える、請求項19に記載の装置。
【請求項２６】
メモリアレイに結合されるように構成された制御手段を備え、前記制御手段が、
第1のアドレスに関連するデータにおいてビットエラーが検出される読取り動作のカウントを示す値を記憶するための手段であり、前記第1のアドレスが、前記メモリアレイの第1の要素に対応する、手段と、
記憶するための前記手段における前記値がしきい値を超えたことに応答して、前記第1のアドレスを第2のアドレスに再マッピングすることであり、前記第2のアドレスが前記制御手段内のデータを記憶するための手段に含まれる第2の要素に対応する、再マッピングすることと、前記第1のアドレスにあるデータの読取り要求を受信することに応答して、前記第1の要素からの複数のビット値と第2のビット値とを含む修正されたデータを生成するために、前記第1の要素から読み取られた第1のビット値を前記第2の要素から読み取られた前記第2のビット値と置き換えさせることとを行うための手段と
を備える、装置。
【請求項２７】
少なくとも1つのダイに組み込まれた、請求項26に記載の装置。
【請求項２８】
前記制御手段が組み込まれているモバイルフォン、タブレット、コンピュータ、通信デバイス、セットトップボックス、音楽プレーヤ、ビデオプレーヤ、エンターテイメントユニット、ナビゲーションデバイス、携帯情報端末(PDA)、および固定位置データユニットから選択される電子デバイスをさらに備える、請求項26に記載の装置。
【請求項２９】
命令を記憶する非一時的コンピュータ可読媒体であって、前記命令が、プロセッサによって実行されると、前記プロセッサに、
第1のアドレスに関連するデータにおいてビットエラーが検出される読取り動作のカウントを示す第1の値をカウンタにおいて記憶させ、
前記第1の値が第1のしきい値を超えたことに応答して、メモリアレイに結合されるコントローラを使用して、前記第1のアドレスを第2のアドレスに再マッピングさせ、前記第1のアドレスが、前記メモリアレイの第1の要素に対応し、前記第2のアドレスが、前記コントローラ内のメモリに含まれる第2の要素に対応し、前記第1のアドレスを再マッピングすることが、前記第1のアドレスにあるデータの読取り要求を受信することに応答して、前記第1の要素からの複数のビット値と第2のビット値とを含む修正されたデータを生成するために、前記第1の要素から読み取られた第1のビット値を前記第2の要素から読み取られた前記第2のビット値と置き換えることを含む、非一時的コンピュータ可読媒体。
【請求項３０】
モバイルフォン、タブレット、コンピュータ、通信デバイス、セットトップボックス、音楽プレーヤ、ビデオプレーヤ、エンターテイメントユニット、ナビゲーションデバイス、携帯情報端末(PDA)、および固定位置データユニットから選択される電子デバイスをさらに備える、請求項29に記載の非一時的コンピュータ可読媒体。
【手続補正書】
【提出日】平成28年8月18日(2016.8.18)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
第1のアドレスに関連するデータにおいてビットエラーが検出される読取り動作のカウントを示す第1の値をカウンタにおいて記憶するステップであって、前記第1のアドレスが、メモリアレイの第1のセットの要素に対応する、ステップと、
前記第1の値が第1のしきい値を超えたことに応答して、前記メモリアレイに結合されるコントローラによって、前記第1のアドレスを前記コントローラ内のメモリに含まれる第2の要素にマッピングするステップであって、前記第1のアドレスを前記第2の要素にマッピングするステップが、前記コントローラ内の前記メモリにおける前記第1のアドレスと第2のビット値とを含むマッピングデータを記憶するステップを含む、ステップと、
前記第1のアドレスにあるデータの第1の読取り要求を受信することに応答して、修正されたデータを生成するために、前記第1のセットの要素から読み取られた第1のビット値を前記第2の要素から読み取られた前記第2のビット値と置き換えるステップとを含む、ビットリカバリのための方法。
【請求項２】
前記第1の値を記憶するステップが、読取り動作および前記第1のアドレスに関連して前記データにおいて前記ビットエラーを検出することに応答して、前記第1の値をインクリメントするステップを含む、請求項1に記載のビットリカバリのための方法。
【請求項３】
前記第1のアドレスをマッピングするステップが、前記第1の読取り要求を受信する前に、前記コントローラにおいて、外部メモリデバイス、または誤り訂正符号(ECC)エンジンからの書込み命令から前記第2のビット値を受信することに応答して、前記第2の要素において前記第2のビット値を書き込むステップをさらに含む、請求項1に記載のビットリカバリのための方法。
【請求項４】
第3のアドレスに関連するデータにおいて検出された訂正不可能なビットエラーを含む読取り動作のカウントを示す第2の値を前記カウンタにおいて記憶するステップであって、前記第3のアドレスが、前記メモリアレイの第1のセルブロックに対応する、ステップと、
前記第2の値が第2のしきい値を超えたことに応答して、前記第3のアドレスを前記コントローラ内の前記メモリの第2のセルブロックにマッピングするステップと、
前記第3のアドレスにあるデータの第2の読取り要求を受信することに応答して、前記第1のセルブロックから読み取られた第1の複数のビット値を前記第2のセルブロックから読み取られた第2の複数のビット値と置き換えるステップとを含む、請求項1に記載のビットリカバリのための方法。
【請求項５】
前記第3のアドレスが前記第1のアドレスに一致する、請求項4に記載のビットリカバリのための方法。
【請求項６】
第2のカウンタが、前記メモリアレイにおいて検出された訂正不可能なビットエラーに対応する読取り動作を示し、前記第1のセットの要素が、前記メモリアレイの第1のブロックであり、前記第2の要素が、前記コントローラ内の前記メモリに含まれる第2のブロックである、請求項1に記載のビットリカバリのための方法。
【請求項７】
前記第1の読取り要求を受信することに応答して、前記第1のブロックから読み取られた第1の複数のビット値を前記第2のブロックから読み取られた第2の複数のビット値と置き換えるステップをさらに含む、請求項6に記載のビットリカバリのための方法。
【請求項８】
第2のカウンタが、前記メモリアレイにおいて検出された訂正不可能なビットエラーに対応する読取り動作を示し、前記第2のカウンタが、前記カウンタ内の第2のメモリに含まれる、請求項1に記載のビットリカバリのための方法。
【請求項９】
前記第1のアドレスを前記第2の要素にマッピングするステップが、前記マッピングデータを生成するステップを含み、前記マッピングデータが、前記第1のセットの要素の特定の要素の位置を示すオフセット値を含み、前記特定の要素が、前記第1のビット値を記憶する、請求項1に記載のビットリカバリのための方法。
【請求項１０】
前記カウンタにおいて前記第1の値を記憶する前に、前記第1のアドレスに関連する前記データにおける前記ビットエラーの検出を示す1つまたは複数の誤り訂正符号(ECC)フラグを前記メモリアレイから受信するステップをさらに含み、前記第1の値が、前記ECCフラグに基づく、請求項1に記載のビットリカバリのための方法。
【請求項１１】
前記修正されたデータを生成することに応答して、前記修正されたデータにおいて誤り訂正符号(ECC)動作を実行するステップをさらに含み、前記ECC動作を実行するステップが、前記修正されたデータにおける訂正可能なビットエラーを修正するステップを含む、請求項1に記載のビットリカバリのための方法。
【請求項１２】
前記第1の値を記憶し、前記第1のアドレスをマッピングするステップが、電子デバイスに組み込まれたプロセッサによって開始される、請求項1に記載のビットリカバリのための方法。
【請求項１３】
前記第1のアドレスにあるデータの前記第1の読取り要求を受信することに応答して、
前記第1のアドレスに基づいて前記メモリアレイから第1のデータを読み取るステップと、
前記コントローラ内のメモリにアクセスするステップをさらに含む、請求項1に記載のビットリカバリのための方法。
【請求項１４】
前記第1のアドレスに基づいて前記コントローラ内の前記メモリに記憶された前記マッピングデータを識別するステップと、
前記第2のビット値を含む前記マッピングデータを読み取るステップとをさらに含む、請求項13に記載のビットリカバリのための方法。
【請求項１５】
前記マッピングデータを記憶するステップが、前記コントローラ内の前記メモリのエントリに前記マッピングデータを記憶するステップを含む、請求項1に記載のビットリカバリのための方法。
【請求項１６】
前記エントリは単一のエントリである、請求項15に記載のビットリカバリのための方法。
【請求項１７】
前記第1のアドレスにあるデータの前記第1の読取り要求を受信することに応答して、前記コントローラ内の前記メモリにおける前記第1のアドレスと前記第2のビット値とを含む前記マッピングデータを読み取るステップをさらに含む、請求項1に記載のビットリカバリのための方法。
【請求項１８】
前記マッピングデータを読み取るステップが、前記マッピングデータを読み取るために単一のアクセス動作を実行するステップを含む、請求項17に記載のビットリカバリのための方法。
【請求項１９】
前記第1の読取り要求を受信する前に、前記コントローラにおいて、外部メモリデバイスからの書込み命令から前記第2のビット値を受信することに応答して、前記第2の要素において前記第2のビット値を書き込むステップをさらに含む、請求項1に記載のビットリカバリのための方法。
【請求項２０】
前記第2の要素において前記第2のビット値を書き込むステップが、前記マッピングデータを前記メモリに書き込むために単一の書き込み動作を実行するステップを含む、請求項19に記載のビットリカバリのための方法。
【請求項２１】
前記第1のアドレスと前記第2のビット値とが、前記コントローラ内の前記メモリの同一の行に記憶される、請求項1に記載のビットリカバリのための方法。
【請求項２２】
メモリアレイに結合されるように構成されたコントローラを備え、前記コントローラが、
メモリと、
第1のアドレスに関連するデータにおいてビットエラーが検出される読取り動作のカウントを示す値を記憶するように構成されたカウンタであって、前記第1のアドレスが、前記メモリアレイの第1のセットの要素に対応する、カウンタと、
前記カウンタにおける前記値が第1のしきい値を超えたことに応答して、前記第1のアドレスを前記メモリに含まれる第2の要素にマッピングするために前記メモリにおいてマッピングデータを記憶するように構成されたマッピングデバイスであって、前記マッピングデータが、前記第1のアドレスと第2のビット値とを含み、前記第1のアドレスにあるデータの読取り要求を受信することに応答して、前記マッピングデバイスが、修正されたデータを生成するために、前記第1のセットの要素の第1の要素から読み取られた第1のビット値を前記第2の要素から読み取られた前記第2のビット値と置き換えさせるように構成される、マッピングデバイスと
を備える、
装置。
【請求項２３】
前記メモリアレイの位置からのデータの第1の部分を前記コントローラ内の前記メモリの対応する位置からの前記データの第2の部分とマージするように構成されたマージャユニットをさらに備える、請求項22に記載の装置。
【請求項２４】
前記データの第3の部分を前記位置に送信し、前記データの第4の部分を前記対応する位置に送信するように構成されたスプリッタユニットをさらに備える、請求項23に記載の装置。
【請求項２５】
前記第1のビット値を前記第2のビット値と置き換えるように構成され、前記第1のセットの要素のための書込みデータを前記第2の要素に移動させるように構成されたマルチプレクサをさらに備える、請求項22に記載の装置。
【請求項２６】
前記カウンタが、前記メモリアレイにおいて検出された訂正可能なビットエラーに対応する読取り動作を示すように構成され、前記メモリアレイが、ダイナミックランダムアクセスメモリ(DRAM)を含み、前記メモリが、スタティックランダムアクセスメモリ(SRAM)を含む、請求項22に記載の装置。
【請求項２７】
前記コントローラが、システム内誤り訂正符号(ECC)エンジンをさらに備え、前記メモリアレイが、メモリ内ECCエンジンを備える、請求項22に記載の装置。
【請求項２８】
メモリアレイに結合されるように構成された制御手段を備え、前記制御手段が、
第1のアドレスに関連するデータにおいてビットエラーが検出される読取り動作のカウントを示す値を記憶するための手段であって、前記第1のアドレスが、前記メモリアレイの第1の要素に対応する、手段と、
記憶するための前記手段における前記値がしきい値を超えたことに応答して、前記第1のアドレスを第2の要素にマッピングするためにマッピングデータを生成するための手段であって、第2の要素が、前記制御手段内のデータを記憶するための手段に含まれ、前記マッピングデータが、前記第1のアドレスと第2のビット値とを含む、生成するための手段と、
前記第1のアドレスにあるデータの読取り要求を受信することに応答して、修正されたデータを生成するために、前記第1の要素から読み取られた第1のビット値を前記第2の要素から読み取られた前記第2のビット値と置き換えさせることとを行うための手段と
を備える、装置。
【請求項２９】
プロセッサによって実行されると、
第1のアドレスに関連するデータにおいてビットエラーが検出される読取り動作のカウントを示す第1の値をカウンタにおいて記憶することであって、前記第1のアドレスが、メモリアレイの第1のセットの要素に対応する、ことと、
前記値が第1のしきい値を超えたことに応答して、前記第1のアドレスをコントローラ内のメモリに含まれる第2の要素にマッピングために前記コントローラ内の前記メモリにおいてマッピングデータを記憶することであって、前記マッピングデータが、前記第1のアドレスと第2のビット値とを含む、ことと、
前記第1のアドレスにあるデータの読取り要求を受信することに応答して、修正されたデータを生成するために、前記第1の要素から読み取られた第1のビット値を前記第2の要素から読み取られた前記第2のビット値と置き換えることと
を前記プロセッサにさせる命令を記憶する、非一時的コンピュータ可読媒体。
【請求項３０】
モバイルフォン、タブレット、コンピュータ、通信デバイス、セットトップボックス、音楽プレーヤ、ビデオプレーヤ、エンターテイメントユニット、ナビゲーションデバイス、携帯情報端末(PDA)、または固定位置データユニットを含む電子デバイスをさらに備える、請求項29に記載の非一時的コンピュータ可読媒体。
【国際調査報告】
2017502419.tif 000010
2017502419.tif 000011
2017502419.tif 000012