(58)【調査した分野】(Int.Cl.,DB名)
前記ワンタイムプログラミングを適用するステップが、前記ワンタイムプログラミングの第1の反復であり、前記ワンタイムプログラミングの前記第1の反復が、前記ターゲット領域の少なくとも第1の部分をプログラムし、前記方法が、
前記ワンタイムプログラミングの第2の反復を、前記冗長回路の前記ターゲット領域の少なくとも第2の部分に適用するステップをさらに備える、請求項2に記載の方法。
前記ワンタイムプログラミングが、前記不良アドレスの少なくとも一部に対応する前記冗長回路の少なくとも一部をプログラムするワンタイムプログラミングの反復であり、前記方法が、
前記不良アドレスの少なくとも別の部分に対応する前記冗長回路の少なくとも別の部分をプログラムするワンタイムプログラミングの別の反復を適用するステップをさらに備える、請求項1に記載の方法。
前記RAMの前記内容を有効な状態に維持しながら、終了条件が満たされるまで、前記冗長回路に前記ワンタイムプログラミングの別の反復を適用する前記ステップを繰り返すステップをさらに備える、請求項5に記載の方法。
前記不良アドレスに対応する前記冗長回路のすべての部分に前記ワンタイムプログラミングが適用されたと決定すると、前記プログラミング完了の条件が満たされる、請求項7に記載の方法。
前記冗長回路への別のワンタイムプログラミングの各適用を検証するステップをさらに備え、前記終了条件が、検証する前記ステップの失敗を検出するステップをさらに備える、請求項6に記載の方法。
前記RAMから前記メモリコントローラに前記エラーの前記通知を送信するステップが、前記RAMと前記メモリコントローラとの間のバックチャネルを介する、請求項17に記載の方法。
前記エラー情報に少なくとも部分的に基づいて、前記ワンタイムプログラミングを完了するために必要な反復の数を計算するステップをさらに備え、前記ワンタイムプログラミングを適用するステップが、
前記ワンタイムプログラミングを完了するために必要な反復の前記数にわたって繰り返すステップと、ワンタイムプログラミングの別の反復を適用するステップとを含み、各繰返しが、前記不良アドレスの少なくとも別の部分に対応する前記冗長回路の少なくとも別の部分をプログラムする、請求項1に記載の方法。
前記エラー情報に応じて前記冗長回路に前記ワンタイムプログラミングを適用する手段が、前記冗長回路の少なくとも一部をプログラムするワンタイムプログラミングの反復を適用する手段と、前記冗長回路の少なくとも別の部分をプログラムするワンタイムプログラミングの別の反復を適用する手段とを備える、請求項25に記載の装置。
前記ワンタイムプログラミングが、前記不良アドレスの少なくとも一部に対応する前記冗長回路の少なくとも一部をプログラムするワンタイムプログラミングの反復を備え、前記ワンタイムプログラミングが、終了条件が満たされるまで、前記ワンタイムプログラミングの別の反復を前記冗長回路に適用することを繰り返す手段をさらに備え、各繰返しが、前記RAMの前記内容を前記有効な状態に維持しながら、前記不良アドレスの少なくとも別の部分に対応する前記冗長回路の少なくとも別の部分をプログラムする、請求項25に記載の装置。
プロセッサによって実行されると、前記プロセッサに、メモリデバイス内の有効な内容を維持しながら、冗長回路を有する前記メモリデバイスを修復するための動作を実行させるコードを備えるコンピュータ可読記憶媒体であって、前記プロセッサに、
エラー情報を受信することであって、前記エラー情報が、ランダムアクセスメモリ(RAM)の不良アドレスを特定する、受信することと、
前記エラー情報に応じて、前記冗長回路にワンタイムプログラミングを適用することと、前記冗長回路に前記ワンタイムプログラミングを適用しながら、前記RAMの内容を有効な状態に維持することと
を実行させるためのコードをさらに備え、
前記RAMの内容を有効な状態に維持することが、前記RAMに複数のリフレッシュバーストを適用することであって、前記複数のリフレッシュバーストのうちの各リフレッシュバーストが、前記複数のリフレッシュバーストのうちのあるリフレッシュバーストの終了とその次のリフレッシュバーストの開始とを含む非リフレッシュ間隔によって離間される、適用することを含み、前記プロセッサに前記ワンタイムプログラミングを適用することを実行させるためのコードが、前記リフレッシュバーストの前記終了と前記次のリフレッシュバーストの前記開始との間に前記ワンタイムプログラミングを適用させるためのコードを含み、前記ワンタイムプログラミングが、前記非リフレッシュ間隔の持続時間未満の持続時間を有する、コンピュータ可読記憶媒体。
【発明を実施するための形態】
【0012】
本発明の態様は、特定の例示的な態様を対象とする以下の説明および関連する図面に開示される。本発明の範囲から逸脱することなしに、代替の態様が考案され得る。いくつかの説明された例示的な実装形態では、様々な構成要素の構造および動作の部分が知られている従来技法から得られ、次いで1つまたは複数の態様に従って配置される場合に実例が特定される。そのような実例では、知られている従来の構成要素構造および/または動作の部分の内部詳細は、本発明の概念の潜在的な不明瞭化の回避に役立つべく省略されている。
【0013】
本明細書において使用される用語は、特定の態様を説明するためだけのものであり、本発明の範囲を限定することが意図されるものではない。
【0014】
本明細書において使用される「例示的な」という語は、「例、実例、または例証として働く」ことを意味する。したがって、本明細書において使用される「例示的な態様」という用語は、例、実例、または例証として働く態様を意味するが、必ずしも他の態様よりも好ましい、または有利とは限らない。同様に、特徴、利点、または動作モードに関して本明細書において使用される「本発明の態様」という用語は、本発明のすべての態様が、説明された特徴、利点、または動作モードを含むことを意味しないことが理解されよう。
【0015】
本明細書において使用されるように、単数形「a」、「an」、および「the」は、文脈がそうでないことを明確に示さない限り、複数形も含むことが意図される。「備える」、「備えている」、「含む」、および/または「含んでいる」という用語は、本明細書において使用される場合、言及されている特徴、完全体、ステップ、動作、要素および/または構成要素の存在を明示しているが、1つまたは複数の他の特徴、完全体、ステップ、動作、要素、構成要素および/またはそれらのグループの存在または追加を排除するものではない。
【0016】
いくつかの態様が、たとえば、設計および製造の様々なプロセスにおける、またはそれに関連する動作およびステップに関して説明される。実例において明示的に別途記載されている場合、または特定の文脈から明らかな場合を除いて、そのような動作およびステップの記載された順序は例示の目的に過ぎず、様々な例示的な態様による実施において適用され得る動作またはステップの順序を必ずしも限定するものではないことが理解されよう。
【0017】
また、流れ図を参照して、様々なプロセスにおける動作が説明される。流れ図は、必ずしも1つのブロックによって示される動作が終了することを意味するものではなく、別のブロックによって示される動作の開始時に継続できないことを意味するものでもないことが理解されよう。
【0018】
いくつかの態様は、たとえば、コンピューティングデバイスまたはコンピューティングデバイスの要素によって実行されるか、またはその制御下で実行され得る、例示的な動作、ステップ、動作のアクションおよびシーケンス、ステップ、ならびにアクションに関して説明される。本開示を読めば、そのような動作、ステップ、アクション、シーケンス、およびそれらの他の組合せは、特定の回路(たとえば、特定用途向け集積回路(ASIC))によって、またはその制御下で、1つまたは複数のプロセッサによって実行されるプログラム命令によって、あるいは両方の組合せによって実行され得ることが当業者によって理解されよう。
【0019】
したがって、動作、ステップ、アクション、シーケンス、およびそれらの他の組合せは、実行されると、関連するプロセッサに、本明細書において説明されている動作、ステップ、アクション、シーケンスおよび他の組合せを直接または間接的に実行させることができる対応するセットのコンピュータ命令が記憶された任意の形態のコンピュータ可読記憶媒体内で完全に具体化され得ることが、そのような当業者には理解されよう。したがって本発明の様々な態様は、多くの異なる形態で具体化され得、それらのすべては、特許請求される主題の範囲内であることが企図されている。
【0020】
図1は、1つまたは複数の例示的な態様に従って構成された、1つのプロセッサシステム100の機能ブロック概略図を示す。プロセッサシステムは、たとえば、CPU104およびメモリコントローラ106を有し、プロセッサ102の外部にDRAMデバイス108を有するプロセッサ102を備え得る。ある態様では、プロセッサ102は、システムオンチップ(SOC)プロセッサデバイスとして実装され得る。
図1を参照すると、DRAMデバイス108は、DRAMローカル制御ロジック110などのローカル制御ロジックを含み得る。DRAMローカル制御ロジック110は、
図1にラベル付けされて示されている例などの機能ブロックまたは論理ブロックを提供する、または含むことができ、これらは本開示において後に詳細に説明される。
【0021】
図1を参照すると、DRAMデバイス108は、たとえば、DRAMセルアレイ112を含み得る。DRAMセルアレイ112は、従来の行-列の、アドレス指定可能なセルアレイ(
図1では別個には見えない)技法に従って構造化され配置されたセルアレイを含み得る。知られている従来の行-列の、アドレス指定可能なセルアレイ技法に従って、DRAMセルアレイ112は、たとえば、知られている従来のDRAMワード線およびビット線デコーダ(
図1では別個には見えない)、従来のDRAM読出し回路、たとえば、センス増幅器(
図1では明示的には見えない)、および従来のDRAM書込み回路(
図1では明示的には見えない)を含み得る。
【0022】
ある態様では、DRAMセルアレイ112は、公称アクティブDRAM領域112-Aと、「冗長性」112-Rとラベル付けされた冗長DRAMセルのリソースとを備え得る。冗長性112-Rは、知られている従来のDRAM冗長技法に従って構造化され配置され得る。たとえば、冗長性112-Rは、冗長行(
図1では明示的には見えない)、および冗長列(
図1では明示的には見えない)などのグループまたはブロックに配置され得る。ある態様では、そのようなブロックまたは冗長性112-Rのそのようなブロックの一部は、本開示において後に詳細に説明されるように、たとえば、ブロックまたはブロックの一部、たとえば公称アクティブDRAM領域112-Aの行(
図1では別個には見えない)、列(
図1では明示的には見えない)、行の一部、および/または列の一部を置換するために選択的にアクティブ化され得る。 ある態様では、プロセッサ102は、例示的な態様によるプロセスへの様々な動作をさらに可能にするために、メモリコントローラ106にローカルなランダムアクセスメモリ107(以下、「RAM107」と称する)をさらに含み得る。
【0023】
ある態様では、冗長性112-Rに関連付けられるワンタイムプログラマブル回路は、本開示において後に詳細に説明されるように、一連のパルスワンタイムプログラミング(OTP)反復においてプログラムされ得る。さらなる態様では、反復は、定期的なバーストリフレッシュの間に発生し得る非リフレッシュ間隔(NRI)と同期され得、各反復は、ワンタイムプログラマブル回路の別の部分をプログラムし得る。例を説明する際の便宜のために、バーストリフレッシュとタイミングを合わせるか、またはバーストリフレッシュと同期させるそのようなパルスOTP動作は、代替的に、本開示において「継続的リフレッシュを伴うパルスOTP」または「パルスOTP-WCR修復」と呼ばれる。本開示において使用される「WCR」は、「継続的リフレッシュを伴う(with continuing refresh)」の略語であり、追加的または固有の意味を有さず、本開示に外的意味を導入しないことが理解されよう。
【0024】
引き続き
図1を参照すると、「DQ」とラベル付けされた例などのDRAMアクセス線またはバスは、メモリコントローラ106をDRAMローカル制御ロジック110の読出し-書込み制御ブロック(RD_WT_BLK)114に接続し得る。バックチャネル116などの専用制御線は、メモリコントローラ106をDRAMローカル制御ロジック110のエラー制御コード論理ブロック(ECC_BLK)118に直接接続し得る。ある態様では、ECC_BLK118は、公称アクティブDRAM領域112-Aから読み出されたデータ内のビットエラーをチェックするように構成され得る。ECC_BLK118は、所与の基準または複数の所与の基準のうちの1つを満たすエラーの検出に応答して、エラー検出信号、たとえば「ECC_Flag」を生成するように構成され得る。基準は、検出されたエラーがDRAMデバイス108の修復の呼出しに適格となるように設定され得る。DRAMデバイス108内の検出されたエラーが修復の呼出しに適格となるために設定され得る1つの例示的な基準は、検出されたビットエラーが訂正不能であり、したがってDRAMデバイス108内の不良アドレスを示すことであり得る。図示のように、DRAMローカル制御ロジック110内のECC_BLK118または他の回路は、DRAMセルアレイ112から読み出されたデータ内の単一のビットエラーを訂正するように構成され得るが、2ビットエラーを検出するためだけであり、訂正するためではない。そのような例示的な構成において、ECC_BLK118は、2ビットエラーを検出するとECC_Flagを生成するようにさらに構成され得る。別の例示的な基準は、DRAM領域112-A内の特定のアドレスまたはアドレス範囲からの繰返しエラーであり得る。ECC_BLK118の上述の例示的な構成、すなわち単一のビットエラーを訂正し、2ビットエラーを検出するが、訂正せず、およびECC_Flagまたは等価物を生成することは、例示の目的に過ぎず、例示的な態様のうちのいずれかの範囲を限定することが意図されるものではないことが理解されるであろう。
【0025】
図1を参照すると、DRAMローカル制御ロジック110は、拡張モードレジスタセットブロック120(以下、「MRS_BLK_RP」120と称する)をさらに含み得る。MRS_BLK_RP120は、本開示において後に詳細に説明されるように、不良アドレスを修復する際に使用するための情報(
図1では別個には見えない)に加えて、従来のモードレジスタ技法に従ってDRAM制御情報を保持するためのモードレジスタ(
図1では別個には見えない)で構成され得る。ある態様では、DRAMローカル制御ロジック110は、DRAM制御ブロック122(以下、「DRAM_CTRL_BLK122」と称する)を含み得る。DRAM_CTRL_BLK122は、たとえば、DRAMセルアレイ112内のデータ内容の有効性を維持する従来のDRAMリフレッシュ動作を制御するように構成され得る。DRAM_CTRL_BLK122によるそのような動作は、少なくとも部分的に、MRS_BLK_RP120の内容に基づき得る。例示的な態様によるパルスOTP-WCR修復動作に特有の動作の制御以外のDRAM_CTRL_BLK122の特徴は、知られている従来のDRAM制御技法に従い得るので、そのような特徴のさらなる詳細な説明は省略される。
【0026】
図1を参照すると、ある態様では、DRAMローカル制御ロジック110はまた、たとえばアドレス情報をリフレッシュ同期パルスOTP制御ブロック126(以下、「OTP-WCR_CTL126」と称する)に提供するように構成され得るコマンドアドレスブロック124(以下、「CMD_ADD_BLK124」と称する)を含み得る。OTP-WCR_CTL126は、次に、OTPヒューズブロック128(以下、「OTP_FUSE_BLK128」と称する)内でヒューズをプログラムする、すなわち選択的にヒューズを飛ばすように構成され得る。
【0027】
ある態様では、様々な例示的な態様によるパルスOTP-WCR修復の1つのプロセスにおける例示的な動作は、コントローラがDRAM不良アドレスの通知を受信することから開始し得る。たとえば、
図1を参照すると、DRAMローカル制御ロジック110のECC_BLK118は、DRAMセルアレイ112から読み出されたデータ内のビットエラー、たとえば2ビットエラーを検出し得る。ECC_BLK118は、それに応答してECC_FLAGまたは等価物をプロセッサ102のメモリコントローラ106に送信し得る。
【0028】
図1を参照すると、例示のためにプロセッサシステム100上で実行される、1つのパルスOTP-WCRプロセスにおける例示的な動作が説明される。例示的な動作は、ECC_BLK118がDRAMセルアレイ112内の不良アドレスを検出することと、これに応答して、ECC_Flagなどの不良アドレス信号をプロセッサ102内のメモリコントローラ106に送信することとを含み得る。ある態様では、ECC_BLK118は、バックチャネル116を介してECC_Flagを送信し得る。ECC_BLK118は、不良アドレスを検出することに関連して、MRS_BLK_RP120に修復パラメータ(別々に示されていない)をロードし得る。メモリコントローラ106は、ECC_Flagの受信に応答して、コマンド信号、たとえば、パルスOTP-WCRプログラムモード制御信号(
図1では別個には見えないが、
図2を参照してさらに詳細に説明される)をDRAMローカル制御ロジック110に送信する。DRAMローカル制御ロジック110は、DRAMデバイス108をパルスOTP-WCRプログラミングモードに切り替えることによって、パルスOTP-WCRプログラムモード制御信号に応答するように構成され得る。DRAMローカル制御ロジック110は、デフォルトとして、またはメモリコントローラ106からの情報の追加として、それ自体のプログラミング情報も提供するように構成され得る。
【0029】
ある態様では、DRAMローカル制御ロジック110のOTP-WCR_CTLブロック126は、メモリコントローラ106からプログラミング情報を受信する前に、またはそれに関連して、ECC_BLK118によって特定された不良アドレスの修復を達成するようにプログラムするために、OTP_FUSE_BLK128内のヒューズのターゲット領域を決定し得る。OTP_FUSE_BLK128内のヒューズのターゲット領域は、アクティブ化されると、ECC_BLK118によって特定された不良アドレスを置換し得る、冗長性112-Rにおける領域(
図1では別個には見えない)に対応し得る。
【0030】
図1を参照すると、OTP-WCR_CTLブロック126がOTP_FUSE_BLK128内のヒューズのターゲット領域を決定した後、OTP_FUSE_BLK128上でパルスOTP-WCR動作の第1の反復が実行され得る。第1の反復は、OTP_FUSE_BLK128内のヒューズのターゲット領域の第1の部分上にあり得る。第1の部分(および残りの部分)のサイズに関して、様々な例示的な実施形態によるパルスOTP-WCR修復における動作は、最大バーストプログラミング部分を決定することを含み得る。簡潔にするために、「最大バーストプログラミング部分」という語句は、代替で「MBP」と略記される。MBPは、最大数のアドレス、または所与のNRIの間にプログラムされ得るヒューズであり得る。さらなる態様では、MBPは、NRIの長さ、およびアドレスごと(またはヒューズごと)のプログラミング時間に基づいて決定され得る。ある態様では、MBPは、NRIをアドレスごと(またはヒューズごと)のプログラミング時間で除算することに基づいて決定され得る。例として、1つの時間単位の正規化されたアドレスごと(またはヒューズごと)のプログラミング時間、およびNRIの100個の時間単位長を割り当てると、MBPは100となる。ある態様では、MBPは、DRAMが、様々な例示的な実施形態によるパルスOTP修復のためのパルスOTP修復モードに切り替わるたびに再計算されるのとは対照的に、あらかじめ決定され得る。
【0031】
図1を参照すると、様々な例示的な態様によれば、パルスOTP-WCR動作(および、その後のすべての反復)の第1の反復は、DRAMセルアレイ112上のバーストリフレッシュに続くように同期され得る。パルスOTP-WCR動作の第1の反復が後に続くDRAMセルアレイ112上のバーストリフレッシュは、「DRAM第1のバーストリフレッシュ」と呼ばれ得る。パルスOTP-WCR動作の第1の反復後、第2のバーストリフレッシュがDRAMセルアレイ112に適用され得る。第1のバーストリフレッシュの終了と第2のバーストリフレッシュの開始との間の時間間隔は、本開示において先に説明されたNRI(非リフレッシュ間隔)であり得ることが理解されよう。したがって、MBP値、すなわちパルスOTP-WCR動作の第1の反復によってプログラムされたOTP_FUSE_BLK128内のヒューズの数は、パルスOTP-WCRの第1の反復がNRI未満になるように設定され得る。
【0032】
第1の部分がOTP_FUSE_BLK128内のヒューズのターゲット領域よりも小さいと仮定すると、パルスOTP-WCR動作の第2の反復が実行され得る。ある態様では、不良アドレス範囲は、所与のNRIおよび所与のMBPについて、OTP_FUSE_BLK128内のターゲット領域ヒューズ全体をプログラムするために追加の反復が必要とされ得るようなものであり得る。必要な反復の総量は、「K」とラベル付けされ得る。K回の反復の各々は、DRAMセルアレイ112上で別のバーストリフレッシュに続くことができる。反復は、パルスOTP-WCR動作のK回の反復が、DRAMセルアレイ112上のK回の連続バーストリフレッシュと、たとえばインターリーブされた方法で同期されるように連結され得る。
【0033】
図1を参照すると、量「K」は、たとえば、メモリコントローラ106によって計算され得る。ある態様では、上述の反復は、カウントがKに達するまでカウントされ得る。Kに達するカウントのイベントは、パルスOTP-WCR動作を終了させるための終了条件と見なされ得る。別の態様では、反復をカウントする代わりに、OTP_FUSE_BLK128のターゲット領域のプログラミングが完了したかどうかに関して、パルスOTP-WCR動作の各反復の後に決定が行われ得る。答えが「いいえ」である場合、パルスOTP-WCR動作の別の反復が適用され得る。
【0034】
ある態様では、OTP_FUSE_BLK128内のターゲット領域ヒューズのプログラミングが完了すると、プログラミングの検証が実行され得る。検証は、冗長回路内のヒューズのワンタイムプログラミングを検証するための従来技法を利用し得る。そのような従来の検証技法は、当業者には知られており、その態様に従って実施するために、本開示を読むそのような当業者によって容易に適合され得、したがって、さらなる詳細な説明は省略される。
【0035】
図2は、1つまたは複数の態様による、例示的なイベントシーケンス、および1つのOTPバースト修復プロセスにおける関連する動作の
図200を示す。
図200における例示的なイベントおよび例示的な動作は、集合的に「修復シーケンス200」と呼ばれる。修復シーケンス200に関連付けられる例示的な動作は、
図1の処理システム100を参照して説明される。修復シーケンス200における例示的な動作の説明は、不良アドレスが、たとえば
図1のECC_BLK118によって検出され、また、たとえば
図1のメモリコントローラ106などのパルスOTP-WCR修復コントローラが不良アドレスを通知されたと仮定する。
【0036】
図2を参照すると、修復シーケンス200における動作は202で開始し得、DRAMをパルスOTP-WCRモードに切り替えるために「プログラム開始コマンド」(PGM ST CMD)がDRAMに送信される。PGM ST CMDは、たとえば、
図1のメモリコントローラ106からDRAMローカル制御ロジック110に送信され得る。次に、204-1において、第1のバーストリフレッシュ204-1がDRAMセルアレイ112に適用され得る。第1のバーストリフレッシュ204-1は、持続時間tBSTを有し得る。「第1のバーストリフレッシュ204-1」の文脈における「第1の」は、202におけるPGM ST CMDの後の第1のバーストリフレッシュを単に意味することが理解されよう。言い換えれば、
図2で見られるK+1バーストリフレッシュ(204-1…204-(K+1))は、単に修復シーケンス200に先行し、スパンし、そして修復シーケンス200の後に続く、バーストリフレッシュの連続シーケンスのK+1のウィンドウであり得る。
【0037】
図2を参照すると、第1のバーストリフレッシュ204-1の後に、第1のパルスOTP-WCR動作206-1が実行され得る。
図1および
図2を参照すると、第1のパルスOTP-WCR動作206-1は、OTP_FUSE_BLK128内のヒューズのターゲット領域の第1の部分をプログラムし得る。第1のパルスOTP-WCR動作206-1は、時間間隔tPMPを有し得る。次に、204-2において、第2のバーストリフレッシュ204-2がDRAMセルアレイ112に適用され得る。第2のバーストリフレッシュ204-2は、第1のバーストリフレッシュ204-1と同じ持続時間tBSTを有し得る。すべてのバーストリフレッシュ(たとえば、204-1…204-(K+1))が同じ持続時間tBSTを有すると仮定され得る。また、バーストリフレッシュ(たとえば、204-1…204-(K+1))が周期的であり、周期がtREFで一定のままであり得ると仮定され得る。したがって、第2のバーストリフレッシュ204-2の開始は、第1のバーストリフレッシュ204-1の開始後にtREFで発生し得る。したがって、tREFとtBSTとの間の差は、本開示において先に説明されたNRIの例であり得る。したがって、第1のパルスOTP-WCR動作の持続時間であるtPMPは、tREFとtBSTとの間の差よりも小さくなければならないことが理解されよう。
【0038】
引き続き
図2を参照すると、第2のバーストリフレッシュ204-1の後に、第2のパルスOTP-WCR動作206-2が実行され得る。
図1および
図2を参照すると、第2のパルスOTP-WCR動作206-2は、OTP_FUSE_BLK128内のヒューズのターゲット領域の第2の部分をプログラムし得る。第1のパルスOTP-WCR動作206-1および第2のパルスOTP-WCR動作206-2は、OTP_FUSE_BLK128内のヒューズのターゲット領域のプログラミングを完了するために十分ではないと仮定すると、追加のパルスOTP-WCR動作206-3...206-Kが実行され得る。本明細書では、「パルスOTP-WCR動作の反復206」(
図2には別個に示されていない)という用語は、パルスOTP-WCR動作206-1...206-Kへの一般的な参照として導入される。本明細書では、「バーストリフレッシュ204」(
図2には別個に示されていない)という用語は、バーストリフレッシュ204-1...204-(K+1)への一般的な参照として導入される。パルスOTP-WCR動作206-3からパルスOTP-WCR動作206-KへのパルスOTP-WCR動作の各反復206は、対応するバーストリフレッシュ204の直後にタイミングを合わせられ得る。たとえば、第3のパルスOTP-WCR動作206-3は、第3のバーストリフレッシュ204-3の直後にタイミングを合わせられ得る。同様に、K番目のパルスOTP-WCR動作206-Kは、K番目のバーストリフレッシュ204-Kの直後にタイミングを合わせられ得る。
【0039】
図2を参照すると、パルスOTP-WCR動作の反復206は、終了条件が満たされるまで継続し得る。本開示において先に説明されたように、終了条件は、あらかじめ計算されたカウント、たとえばKを満たす反復のカウントであり得る。あるいは、終了条件は、OTP_FUSE_BLK128内のヒューズのターゲット領域のすべての部分がプログラムされたという決定であり得る。ある態様では、終了条件が満たされると、パルスOTP-WCRプログラムモードを終了するために、たとえばDRAMローカル制御ロジック110に「プログラムモードを終了」(EXT PGM MD)コマンドが送信され得る。ある態様では、DRAMデバイス108は、パルスOTP-WCRプログラムモードを終了した後に、DRAMセルアレイ112に別のバーストリフレッシュ204-(K+1)を適用し得る。次に、210において、修復シーケンスはDRAMデバイス108を通常の動作に戻し得る。修復シーケンスの合計時間は、tPGMであり得る。任意で、210で通常の動作状態に戻る前に、冗長性112-Rの現在はアクティブであるターゲット部分の成功した動作を検証するために、検証(
図2では明示的には見えない)が適用され得る。
【0040】
1つの代替的な態様では、プロセッサ102内のメモリコントローラ106などのコントローラは、バーストオートリフレッシュを使用してバーストOTP-WCR修復シーケンスを制御し得る。
【0041】
図3は、1つまたは複数の例示的な態様による、1つの代替的なOTPバースト修復プロセスにおける例示的な動作の例示的なイベントシーケンスの
図300を示す。
図300内の例示的なイベントおよび例示的な動作は、集合的に「修復シーケンス300」と呼ばれる。修復シーケンス300における記述される例示的な動作は、不良アドレスが検出されたと仮定し、パルスOTP-WCR修復コントローラ、たとえば、
図1のメモリコントローラ106は、不良アドレスを通知されている。
【0042】
図3を参照すると、修復シーケンス300における動作は、第1のバーストリフレッシュ302-1の後に、第1のパルスOTP-WCR動作304-1を含み得る。第1のパルスOTP-WCR動作304-1は、OTP_FUSE_BLK128内のヒューズのターゲット領域の第1の部分をプログラムするためにコマンドをDRAMデバイス108に送信するコントローラ、たとえばメモリコントローラ106を含み得る。第1のバーストリフレッシュ302-1、および修復シーケンス300における(および、その前後の)他のすべてのバーストリフレッシュは、本開示において先に説明された時間間隔tBSTを有し得る。また、第1のパルスOTP-WCR動作304-1、および修復シーケンス300における他のすべてのパルスOTP-WCR動作304は、本開示において先に説明された時間間隔tPMPを有し得る。第1のパルスOTP-WCR動作304-1の後、第2のバーストリフレッシュ302-2がDRAMセルアレイ112に適用され得る。第2のバーストリフレッシュ302-2の後、第2のパルスOTP-WCR動作304-2が実行され得る。第2のパルスOTP-WCR動作304-2は、OTP_FUSE_BLK128内のヒューズのターゲット領域の第2の部分をプログラムし得る。
【0043】
図3を参照すると、第1のパルスOTP-WCR動作304-1および第2のパルスOTP-WCR動作304-2は、OTP_FUSE_BLK128内のヒューズのターゲット領域のプログラミングを完了するために十分ではないと仮定される。したがって、追加のパルスOTP-WCR動作304-3...304-Lが実行され得る。「パルスOTP-WCR動作の反復304」(
図3には別個に示されていない)という用語は、パルスOTP-WCR動作304-1...304-Lへの一般的な参照として導入される。パルスOTP-WCR動作304-3からパルスOTP-WCR動作304-LへのパルスOTP-WCR動作の各反復304は、対応するバーストリフレッシュ302の直後にタイミングを合わせられ得る。パルスOTP-WCR動作の反復304は、終了条件が満たされるまで、たとえば、反復のカウントがあらかじめ計算されたカウントを満たすまで、またはOTP_FUSE_BLK128内のヒューズのターゲット領域のすべての部分がプログラムされたという決定まで継続し得る。DRAMデバイス108は、終了条件が満たされた後に、DRAMセルアレイ112に別のバーストリフレッシュ302-(L+1)を適用し得る。次に、306において、修復シーケンス300はDRAMデバイス108を通常の動作に戻し得る。任意で、306で通常の動作状態に戻る前に、冗長性112-Rの現在はアクティブであるターゲット部分の成功した動作を検証するために、検証(
図3では明示的には見えない)が適用され得る。
【0044】
図4は、上述のように、
図1のプロセッサシステム100を参照して説明した機能および特徴をサポートまたは提供するように構成され得る、パーソナル通信およびコンピューティングデバイス400の一例を示す。
図4を参照すると、パーソナル通信およびコンピューティングデバイス400は、システムバス402と、システムバス402に結合された1つまたは複数のCPU404とを含み得る。CPU404は、たとえば、1つまたは複数のプロセッサ406と、1つまたは複数のキャッシュメモリ408と備え得る。CPU406は、たとえば、限定ではなく、1つまたは複数のARM型処理デバイス(
図4では別個には見えない)などの、1つまたは複数のプログラマブルコンピューティングデバイスによって実装され得る。CPU406は、マスタデバイスとして実行することが可能であり得る。CPU406は、たとえば、システムバス402を通じて、様々なマスタデバイスおよびスレーブデバイスに相互結合され得る。CPU404は、従来の通信プロトコルに従って、システムバス402を介してアドレス情報、制御情報、およびデータ情報を交換することによって、これらの他のデバイスと通信し得る。
図4には示されていないが、複数のシステムバス402が提供され得る。複数のシステムバス402を有する例では、各システムバス402は異なる構造を構成し得る。
【0045】
図4を参照すると、CPU404は、スレーブデバイスの一例として、システムメモリ412のメモリコントローラ410にバストランザクション要求を通信し得る。
【0046】
ある態様では、システムバス402、CPU404、およびシステムメモリ412のうちの1つまたは複数は、メモリコントローラ410または等価物を、
図1のDRAMローカル制御ロジック110のECC_BLK118などの機能を有するエラー制御コード論理ブロック(
図4では明示的には見えない)に直接接続するために、
図1のバックチャネル116などの専用の制御線(
図4では明示的には見えない)を含むか、またはサポートし得る。一態様では、CPU404およびメモリコントローラ410は、
図1のプロセッサ102に対応し得、システムメモリ412は、DRAMデバイス108に対応し得る。しかしながら、当業者であれば、
図1の様々な要素が、
図5を参照してさらに詳細に説明されるように、本開示の趣旨から逸脱することなしに、他の構成ではコンピューティングデバイス400全体に分散され得ることを理解するであろう。
【0047】
図4を参照すると、他のマスタデバイスおよびスレーブデバイスの例は、1つまたは複数の入力デバイス414、1つまたは複数の出力デバイス416、1つまたは複数のネットワークインターフェースデバイス418、ならびに1つまたは複数のディスプレイコントローラ420を含み得る。入力デバイス414は、使用される場合、これらに限定されないが、入力キー、スイッチ、音声プロセッサなどを含む任意の種類の入力デバイスを含み得る。出力デバイス416は、使用される場合、これらに限定されないが、オーディオ、ビデオ、他の視覚インジケータなどを含む任意の種類の出力デバイスを含み得る。ネットワークインターフェースデバイス418は、使用される場合、ネットワーク422への、またはそこからのデータの交換を可能にするように構成された任意の種類のネットワークインターフェースデバイスであり得る。ネットワーク422は、これらに限定されないが、ワイヤードまたはワイヤレスネットワーク、プライベートまたはパブリックネットワーク、ローカルエリアネットワーク(LAN)、ワイドエリアネットワーク(WLAN)、およびインターネットを含む任意の種類のネットワークであり得る。ネットワークインターフェースデバイス418は、所望の任意の種類の通信プロトコルをサポートするように構成され得る。
【0048】
引き続き
図4を参照すると、CPU404はまた、1つまたは複数のディスプレイ424に送信される情報を制御するために、システムバス402を介してディスプレイコントローラ420にアクセスするように構成され得る。ディスプレイコントローラ420は、たとえば、1つまたは複数のビデオプロセッサ426を介して表示されるべき情報をディスプレイ424に送信し得る。ビデオプロセッサ426は、たとえば、ディスプレイ424に適したフォーマットに表示されるべき情報を処理し得る。ディスプレイ424は、使用される場合、たとえば、アクティブまたはパッシブ液晶ディスプレイ(LCD)、プラズマディスプレイ、およびブラウン管(CRT)などの任意の種類のディスプレイを含み得る。
【0049】
図5は、1つまたは複数の例示的な態様に従って構成された、システム内エラー管理メモリを有する1つの例示的な装置500の機能モジュール概略図を示す。
図5を参照すると、装置500は、相互接続502およびDRAM504を含み得る。DRAM504は、公称セル領域504-Aおよび冗長セル領域504-Bを有する冗長性を備えたDRAMであり得る。冗長セル領域504-Bは、代替的に、「冗長リソース」504-Bと呼ばれ得る。DRAM504は、たとえば、全体的または部分的に
図1のDRAMデバイス108によって実装され得る。ある態様では、装置500は、プログラマブル冗長回路506を含み得る。プログラマブル冗長回路506は、冗長リソース504-B内の対応するメモリセルへの、公称セル領域504-A内の冗長メモリセル(たとえば、行、列、行の一部、列の一部)のワンタイムプログラマブルマッピングアドレスのための、選択的に飛ばすことが可能なヒューズ(
図5では別個には見えない)を含み得る。
図1および
図5を参照すると、プログラマブル冗長回路506は、たとえばOTP_FUSE_BLK128によって実装され得る。
【0050】
図5を参照すると、装置500は、DRAM504をバーストリフレッシュするためのモジュール508を含み得る。
図1および
図5を参照すると、モジュール508の例示的な実装形態は、MRS_BLK_RP120のいくつかの機能的側面と組み合わせてDRAM_CTRL_BLK122を含み得る。
図1、
図4、および
図5を参照すると、モジュール508を実装するためにバーストリフレッシュを実行する際の上述のDRAM_CTRL_BLK122およびMRS_BLK_RP120などの回路の機能は、たとえばメモリコントローラ410、またはシステムメモリ412の内部の回路(
図4では明示的には見えない)によって提供され得る。
【0051】
装置500は、DRAM504のアクセスにおけるエラーを検出し、それに応答してエラー情報を生成するためのモジュール510を含み得る。エラー情報は、たとえば、冗長DRAM504の不良アドレスを特定し得る。
図1および
図5を参照すると、モジュール510の1つの例示的な実装形態は、DRAMローカル制御ロジック110のECC_BLK(エラー制御コード論理ブロック)118でもよく、それを含んでもよい。
図1、
図4、および
図5を参照すると、モジュール510を実装するためのエラー検出における上述のECC_BLK118などの回路の機能は、たとえばメモリコントローラ410、またはシステムメモリ412の内部の回路(
図4では明示的には見えない)によって提供され得る。
【0052】
図5を参照すると、装置500は、冗長DRAM504の内容を有効に維持しながら、モジュール510からのエラー情報の受信に応答して、ワンタイムプログラミング動作をプログラマブル冗長回路504-Bに適用するためのモジュール512を含み得る。ある態様では、モジュール512は、たとえば、
図1〜
図3を参照して説明されるK回またはL回の反復として、ワンタイムプログラミングを反復的に適用するように構成され得る。ある態様では、ワンタイムプログラミング動作をプログラマブル冗長回路に適用しながら、DRAM504の内容の有効性を維持することに関連して、モジュール512およびモジュール508は、モジュール512がワンタイムプログラミングの反復をDRAM504のモジュール508バーストリフレッシュと同期させることを可能にする情報を交換するように構成され得る。ある態様では、モジュール512は、たとえば、終了条件が満たされるまで反復を繰り返すループ方式でプログラミングを冗長回路506に適用するように構成され得る。
【0053】
図1および
図5を参照すると、モジュール512の上述の機能の実装形態は、メモリコントローラ106およびDRAMローカル制御ロジック110の記載された特徴によって提供され得る。たとえば、モジュール512の上述の機能は、ECC_BLK118によって特定される不良アドレスの修復するためにプログラムするためにOTP_FUSE_BLK128内のヒューズのターゲット領域を決定する際に、およびOTP_FUSE_BLK128上の反復プログラミングを制御する際に、
図1のOTP-WCR_CTLブロック126によって提供され得る。
図1、
図4、および
図5を参照すると、モジュール510を実装するためにそのOTP-WCR_CTLブロックを含む、上述のメモリコントローラ106およびDRAMローカル制御ロジック110などの回路の機能は、たとえばメモリコントローラ410、またはシステムメモリ412の内部の回路(
図4では明示的には見えない)によって提供され得る。
【0054】
図5を参照すると、ある態様では、装置500は、たとえば、プログラミングが成功したかどうかを、モジュール512による反復のプログラミングの後に検証するためのモジュール514を含み得る。
図1および
図5を参照すると、モジュール514の1つの例示的な実装形態は、メモリコントローラ106およびDRAMローカル制御ロジック110でもよく、それを含んでもよい。
図1、
図4、および
図5を参照すると、モジュール514を実装するための回路の機能は、たとえばメモリコントローラ410、またはシステムメモリ412の内部の回路(
図4では明示的には見えない)によって提供され得る。
【0055】
上述のように、
図5のモジュールの機能は、
図4の例示的なパーソナル通信デバイスプロセッサシステム400などの処理システムとして実装され得る。この開示と一致する様々な代替的な、および追加の実装形態がある。ある態様では、
図4のモジュールの機能は、たとえば、1つまたは複数の集積回路(たとえば、ASIC)の少なくとも一部を使用して実装され得る。所与のサブセット(たとえば、集積回路の、および/またはソフトウェアモジュールのセットの)が、2つ以上のモジュールの機能の少なくとも一部を提供し得ることは、当業者には理解されるであろう。1つの特定の例として、装置500は、単一のデバイス(たとえば、冗長DRAM504、プログラマブル冗長回路506、およびASICの異なるセクションを備えるモジュール508〜512)を備え得る。別の特定の例として、装置500は、いくつかのデバイス(たとえば、あるASICを備える冗長DRAM504、別のASICを備えるモジュール508、さらに別のASICを備えるモジュール510、512、および514)を備え得る。
【0056】
たとえば、
図1〜
図5のいずれか1つまたは複数を参照して説明されたような、上記で開示されたデバイスおよび機能は、コンピュータ可読媒体に記憶されたコンピュータファイル(たとえば、RTL、GDSII、GERBERなど)に設計および構成され得る。いくつかまたはすべてのそのようなファイルは、そのようなファイルに基づいてデバイスを製造する製造者に提供され得る。結果として得られる製品は、半導体ウェハを含み、次いで、半導体ウェハは半導体ダイに切断され、半導体チップにパッケージングされる。次いで、半導体チップは、上記で説明したようなデバイスに使用される。
【0057】
図6は、様々な例示的な態様による、1つまたは複数のパルスOTP-WCR修復プロセスにおける、およびそれに関連付けられる、例示的な動作の流れ
図600を示す。
【0058】
図6を参照すると、例示的な動作は602で開始することができ、ここでDRAMの不良アドレスが検出される。図示されるように、
図1および
図6を参照すると、602における例示的な動作は、ECC_BLK118が、修復の呼出しに適格なエラーを検出し、それに応答してECC_Flagなどの通知を送信することを含み得る。
図5および
図6を参照すると、602における例示的な動作は、モジュール510が、DRAM504のアクセスにおけるエラーを検出し、それに応答してモジュール512にエラー情報を送信することによって実行され得る。
【0059】
図6を参照すると、ある態様では、602におけるDRAM不良アドレスの検出に応答して、DRAM(たとえば、DRAM504)は、本明細書で先に説明したように、604においてそれ自体をパルスOTP-WCR修復モードに切り替える。別の態様では、604の代わりに、DRAMの外部のコントローラ、たとえば、
図1のメモリコントローラ106は、たとえば
図3を参照して説明したように、パルスOTP-WCR修復を実行するようにDRAMを制御し得る。切替え後、またはパルスOTP-WCR修復モードに切り替えると、DRAM冗長性およびワンタイムプログラミングのためのヒューズの対応するターゲット領域が決定され得る。
図1および
図6を参照すると、606における例示的な動作は、不良アドレスを置換し得る冗長性112-R内の領域に対応するOAD_FUSE_BLK128内のターゲット領域を決定する、DRAMローカル制御ロジック110、たとえばCMD_ADD_BLK124を含み得る。
図5および
図6を参照すると、606における例示的な動作は、プログラマブル冗長回路506内のターゲット領域を決定するモジュール512を含み得る。
【0060】
図6を参照すると、プログラマブル回路内のターゲット領域を決定した後、動作は、608において、バーストリフレッシュをDRAMに適用することを含み得る。「バーストリフレッシュを適用すること」は、必ずしも602においてDRAM不良アドレスを検出することに特有とは限らないことが理解されよう。「バーストリフレッシュ」は、たとえば、602においてDRAM不良アドレスを検出した後に発生する通常のスケジューリングされたバーストリフレッシュであり得る。
図2および
図6を参照すると、608におけるある例示的なバーストリフレッシュは、
図2の第1のバーストリフレッシュ204-1であり得る。
図3および
図6を参照すると、608における別の例示的なバーストリフレッシュは、
図3の第1のバーストリフレッシュ302-1であり得る。
図5および
図6を参照すると、608におけるバーストリフレッシュは、たとえば、DRAM504の定期的なバーストリフレッシュ中にモジュール508によって実行され得る。
【0061】
再び
図6を参照すると、608におけるバーストリフレッシュの後、606において特定されたターゲットヒューズ領域の一部をプログラムするために、610において、第1のパルスOTP-WCR動作が適用され得る。
図2、
図3、および
図6を参照すると、610における第1のパルスOTP-WCR動作の例は、
図2の第1のパルスOTP-WCR動作206-1、および
図3の第1のパルスOTP-WCR動作304-1を含み得る。
図5および
図6を参照すると、610における第1のパルスOTP-WCR動作は、たとえば、モジュール512によって実行され得る。ある態様では、モジュール512は、608において第1のバーストリフレッシュと干渉しないように第1のパルスOTP-WCR動作を同期させるために、モジュール508から情報を取得し得る。
図6を参照すると、610における第1のパルスOTP-WCR動作の後、終了条件、たとえばプログラミングの完了が満たされているかどうかの決定が612で行われる。
図2および
図6を参照すると、反復206-3...206-Kに関連付けられる説明した動作は、終了条件が満たされているかどうかを決定することを含み、したがって、612における決定の例であり得る。同様に、
図3および
図6を参照すると、反復304-3...304-Lに関連付けられる説明した動作は、終了条件が満たされているかどうかを決定することを含み、したがって、やはり612における決定の例であり得る。
図5および
図6を参照すると、612における、終了条件、たとえば、ヒューズのターゲット領域のプログラミングの完了が満たされているかどうかを決定する例示的な動作が、たとえばモジュール512によって実行され得る。
【0062】
図6を参照すると、ある態様では、612で「YES」になると、動作は直接614に進み、通常のDRAM動作を再開する。この態様によれば、610におけるプログラミングは必ずしも検証されない。別の態様では、612でYESになると、動作は616に進み、別のバーストリフレッシュを実行し、次いで、618において、DRAMはそのパルスOTP-WCR修復モードを終了し得る。ある態様では、618においてパルスOTP-WCRプログラミングモードを終了した後、動作は614に進み、通常の動作を再開し得る。
【0063】
図6を参照すると、ある態様では、612で「NO」になると、動作は608にループバックしてDRAMのバーストリフレッシュを繰り返し、次いで610に進み、ヒューズのターゲット領域の別の部分をプログラムする。608から610へ、および612への第1の反復において、610におけるパルスOTP-WCRプログラミングは、ターゲット領域の第1の部分をプログラムし得る。612における決定が、プログラミングが完了したことである場合、その第1の部分は完全な部分であり得る。612における決定が、プログラミングが完了していないことである場合、608への第1のループバックは、ターゲット領域の第2の部分の610におけるOTP-WCRプログラミングをもたらす。
【0064】
別の態様では、612においてパルスOTP-WCRプログラミングモードを終了した後、または616での追加のバーストリフレッシュの直後に、動作は620で、プログラミングの成功を検証し得る。決定ブロック622からのYES分岐として示されるように、620における検証が成功を示す場合、614において、通常の動作が再開され得る。620における検証が、決定ブロック622からのNO分岐として示されるようにエラーを示す場合、624における動作が、修復プロセスの報告または失敗、および終了を含めて実行され得る。
図4および
図6を参照すると、610の反復によって実行されるプログラミングの成功を検証する620および622における例示的な動作は、たとえば、モジュール514によって実行され得る。
【0065】
例示的な態様、およびそれらのそれぞれの例示的な態様が、冗長リソースを有するDRAMデバイスのシステム内修復を参照して上記で説明された。例示的な態様は、DRAMデバイスに関連する実施に限定されないことが理解されるであろう。反対に、他のメモリデバイス、たとえばスタティックRAMの新規なシステム内修復を提供し得る様々な例示的な態様が企図される。
【0066】
当業者であれば、情報および信号は、様々な異なる技術および技法のいずれかを使用して表され得ることを理解するであろう。たとえば、上記の説明全体にわたって参照される場合があるデータ、命令、コマンド、情報、信号、ビット、シンボル、およびチップは、電圧、電流、電磁波、磁場もしくは磁性粒子、光場もしくは光学粒子、またはそれらの任意の組合せによって表される場合がある。
【0067】
さらに、当業者であれば、本明細書で説明される様々な例示的な論理ブロック、モジュール、回路、およびアルゴリズムステップは、ハードウェアに直接、プロセッサによって実行されるソフトウェアモジュールに、またはその2つの組合せに具体化され得ることを理解するであろう。ハードウェアおよびソフトウェアのこの互換性を示すために、様々な例示的な構成要素、ブロック、モジュール、回路、およびステップは、一般にそれらの機能に関して上記で説明されている。そのような機能がハードウェアまたはソフトウェアとして実装されるかどうかは、システム全体に課される特定のアプリケーションおよび設計の制約に依存する。当業者は、説明されている機能を特定のアプリケーションごとに様々な方法で実装することができるが、そのような実施形態の決定は、本発明の範囲を逸脱させるものとして解釈されるべきではない。
【0068】
ソフトウェアモジュールに関して、ソフトウェアモジュールは、RAMメモリ、フラッシュメモリ、ROMメモリ、EPROMメモリ、EEPROMメモリ、レジスタ、ハードディスク、リムーバブルディスク、CD-ROM、または、当該技術分野で知られている任意の他の形態の記憶媒体内に存在し得る。例示的な記憶媒体は、プロセッサが記憶媒体から情報を読み取ることができ、記憶媒体に情報を書き込むことができるように、プロセッサに結合される。代替形態では、記憶媒体は、プロセッサと一体化され得る。
【0069】
上記の開示が本発明の例示的な態様を示す一方で、添付される請求項により規定されるような、本発明の範囲から逸脱することなしに、本明細書に様々な変形および変更を行うことができることに留意されたい。本明細書に記載される本発明の態様に従う方法クレームの機能、ステップ、および/またはアクションは、任意の特定の順序で実行される必要はない。さらに、本発明の要素は、単数形で記載され、特許請求される場合があるが、単数形への制限が明示的に言及されない限り、複数形が企図される。
ランダムアクセスメモリ(RAM)の修復において、エラー情報が受信され、RAMの不良アドレスが特定され、RAMの内容が有効である間に冗長回路の一部にワンタイムプログラミングが適用される。任意で、RAMはダイナミックアクセスRAM(DRAM)であり、DRAMにリフレッシュバーストが適用され、非リフレッシュ間隔が続き、非リフレッシュ間隔の間にワンタイムプログラミングが実行される。