優先権の主張
[35U.S.C.§119の下の優先権の主張]
本特許出願は、本特許出願の譲渡人に譲渡され、かつ、参照によって明示的に本特許出願に組み込まれている、2007年12月17日に出願された米国特許仮出願第61/014,257号「APPARATUS AND METHOD FOR ADAPTING WORD LINE PULSE WIDTHS IN MEMORY SYSTEMS」の優先権を主張するものである。
開示の分野
本発明の実施形態は、メモリシステムに関する。より詳細には、本発明の実施形態は、メモリシステムにおいて使用されるワード線パルス幅を適応させることに関する。
CMOS技術は、より小さな寸法へと絶えず縮小されるので、プロセス制御限界ならびに基本的物理的限界に起因したプロセス変動は、増大する傾向にある。内蔵SRAMなどの内蔵メモリは、他のデジタルロジックに比べて積極的な設計ルールと、それらの小さなサイズとのために、大きなプロセス変動の影響を特に受けやすい。プロセス変動におけるこの大きな増大に取り組むために、メモリ回路設計者は、一般的に、高いパラメータの、そして機能の歩留まりを達成するために、あまりにも保守的な設計アプローチを使用する。
例えば、設計者は、ローカル変動(各IC内)とグローバル変動(複数のICの間)との両方を含めて、プロセス変動の広い範囲にわたって機能するように特定の集積回路(IC)を設計することにより、歩留まりについて性能(例えば、速度)および/または電力消費をトレードオフすることができる。これは、使用できる生産されるICのより大きなパーセンテージ(すなわち、増大された歩留まり)をもたらすが、性能および/または電力消費における犠牲は、プロセス変動の全範囲の影響を受けないこれらのICにおいては、実質的なものとすることができる。プロセス変動の統計的性質に起因して、実質的な性能および/または電力消費の悪化を経験するICの実際の数は非常に高いものとなる可能性がある。
図1は、ワード線(WL)パルスに従ってデータを読み出す/書き込む従来のメモリシステム100を示す概略図である。メモリシステム100は、メモリ110と、ビルトインセルフテスト(built-in self-test:BIST)回路120と、パルス幅セットモジュール130と、を含む。BIST120は、メモリ110の内部機能のすべてまたは一部分をテストする。パルス幅セットモジュール130は、メモリ110におけるリード/ライトサイクルのために使用されるようにWLパルス幅を設定する。パルス幅セットモジュール130は、システムコントローラなどから外部のn−ビットコードを受け取ることができ、望ましいWLパルス幅を示す。
当技術分野においてよく知られているように、WLパルス幅は、おのおののリードまたはライトの動作が完了するために必要とする時間の長さを決定し、これは、そのメモリの性能と電力消費との両方に直接に影響を及ぼす。一般に、増大させられたWLパルス幅は、より正確なリード/ライト動作を保証するが、よりゆっくりと動作し、そしてより多くの電力を必要とする。対照的に、減少させられたWLパルス幅は、プロセス変動の特に広い範囲にわたって、あまり正確でない可能性があるが、より高速に動作することができ、そしてより少ない電力を必要とする。したがって、望ましいWLパルス幅を設定することは、多くの場合にメモリ性能と歩留まりとの間の設計トレードオフである。
メモリシステム100をインプリメントするICの1バッチが、生産されるときに、メモリ性能を最適化するために、そして歩留まりを増大させるために使用される従来のポスト製造技法のうちの1つは、ポストシリコンデジタルトリミングを使用することである。一般的に、WLパルス幅を制御するために使用される外部デジタルコード(WLパルス幅コード)は、ある種のメモリについての目標歩留まりを達成するために設定される。測定が、メモリの大きなサンプル上で実行され、そして歩留まりは、異なるWLパルス幅に対して決定される。最適なWLパルス幅は、目標歩留まりに基づいて決定され、そしてすべてのメモリについて固定される。
このアプローチは、いくつかの制限を有する。1つの制限は、WLパルス幅が、極端なプロセス変動に基づいてすべてのICについて固定されることである。上記に論じられるように、ICのうちの、大部分ではないにせよ、多くは、そのような極端なプロセス変動を経験することはない。それ故に、大きな性能損失と追加の電力消費とは、生産されるICの大部分に影響を及ぼす可能性がある。別の制限は、与えられた目標歩留まりのために最適なWLパルス幅の値を正確に決定するために必要とされる大きなサンプルサイズを測定するために、長いテスト時間が必要とされることである。
本発明の例示の実施形態は、メモリシステムにおいて使用されるWLパルス幅を適応させるためのシステム、回路、および方法を対象としている。
本発明の一実施形態は、メモリシステムを備える装置を対象にしている。メモリシステムは、関連するワード線(WL)パルス幅を有するWLパルスに応じて動作するメモリと、メモリとインターフェースで接続し、メモリの内部機能のセルフテストを実行するように、そしてメモリがそのセルフテストに合格したか、または失敗したかを示す信号を供給するように、構成されたビルトインセルフテスト(BIST)ユニットと、BISTユニットおよびメモリとインターフェースで接続し、BISTユニットによって供給される信号に基づいてメモリのWLパルス幅を調整するように構成された適応WL制御回路と、を備える。
本発明の別の実施形態は、ワード線(WL)パルスに応じて動作するメモリを含むメモリシステムにおいて、WLパルス幅を調整する方法を対象としている。本方法は、現在のWLパルス幅の下でメモリの内部機能をテストするためにメモリシステム上でセルフテストを実行することと、オンチップ適応WL制御回路を使用したセルフテストの結果に基づいてメモリのWLパルス幅を調整することと、を備える。
本発明の別の実施形態は、ワード線(WL)パルスに応じて動作するメモリを含むメモリシステムにおいてWLパルス幅を調整するための装置を対象としている。本装置は、現在のWLパルス幅の下でメモリの内部機能をテストするためにメモリシステム上でセルフテストを実行するための手段と、セルフテストの結果に基づいてメモリのWLパルス幅を調整するためのオンチップ手段と、を備える。
本発明の別の実施形態は、ワード線(WL)パルスに応じて動作するメモリを含むメモリシステムにおいてWLパルス幅を調整するようにプロセッサによって実行可能な命令の組を含むコンピュータ可読媒体を対象としている。コンピュータ可読媒体は、現在のWLパルス幅の下でメモリの内部機能をテストするためにメモリシステム上でセルフテストを実行するようにプロセッサによって実行可能な第1の組の命令と、セルフテストの結果に基づいてメモリのWLパルス幅を調整するようにプロセッサによって実行可能な第2の組の命令と、を備える。
図1は、ワード線(WL)パルスに従ってデータを読み出す/書き込む従来のメモリシステムを説明する概略図である。
図2は、メモリシステムを説明している。
図3は、適応WL制御ループのオペレーションを説明する流れ図である。
図4は、n−ビットカウンタを使用した、図2のパルス幅コントローラの一例のインプリメンテーションを説明している。
図5は、ワイヤレス通信システムにおけるワイヤレス通信デバイスの一設計のブロック図を示している。
詳細な説明
添付図面は、本発明の実施形態の説明において助けとなるように提示され、そして実施形態の例示のためだけに提供され、そしてそれについての限定ではない。
本発明の実施形態の態様は、本発明の特定の実施形態を対象とする以下の説明および関連した図面の中で開示される。代替実施形態は、本発明の範囲を逸脱することなく案出可能である。さらに、本発明のよく知られている要素は、詳細には説明されないことになり、あるいは本発明の関連のある詳細をあいまいにしないように省略されることになる。
「例示的」という言葉は、ここにおいて「例、インスタンス、または例証としての役割を果たすこと」を意味するために使用される。ここにおいて「例示的」として説明されるどのような実施形態も、必ずしも他の実施形態よりも好ましい、または有利であるとして解釈されるべきであるとは限らない。同様に、用語「本発明の実施形態」は、本発明の必ずしもすべての実施形態が、論じられた特徴、利点、または動作のモードを含むことを必要とするとは限らない。
背景技術に論じられるように、集積回路(IC)の与えられた1バッチの中のメモリシステムについてのワード線(WL)パルス幅を最適化することに対する従来のアプローチは、全体の歩留まりを増大させるために個々のICにおける性能および/または電力消費をトレードオフすることにより、プロセス変動の広い範囲を明らかにする。しかしながら、このアプローチは、一般的に、ICの中のメモリシステムの大部分ではないにせよ、多くについてあまりにも保守的すぎる。全体の歩留まりを依然として維持しながら、そして潜在的に増大させながら、性能を向上させ、そして電力消費を低減させるために、本発明の実施形態は、各ICについて個別にWLパルス幅を調整する。従来のアプローチが、ICの1群についての平均の測定値に基づいて、各ICにおけるWLパルス幅を保守的な値に制限するのに対して、本発明の実施形態は、そのICによって経験される実際のプロセス変動を考慮して、性能と電力消費とを最適化するためにWLパルス幅が、各ICに対して個別に適応させられることを可能にする。
図2は、本発明の一実施形態によるメモリシステム200を説明している。メモリシステム200は、背景技術において説明される従来のメモリ100と同様に、メモリ210と、ビルトインセルフテスト(BIST)回路220と、パルス幅セットモジュール230と、を含む。しかしながら、メモリシステム200は、適応WLパルス制御モジュール240と、パルス幅コントローラ250と、デコーダ260と、コード再プログラミングモジュール270と、を追加し、これらは、以下でさらに詳細に説明されるように、1つまたは複数のICの中で各メモリについてWLパルス幅を個別に制御する適応WL制御ループ280を形成するために、メモリ210と、BIST220と、パルス幅セットモジュール230と、を含めて、前から存在している従来のメモリシステムインフラストラクチャとインターフェースで接続する。
適応WLパルス制御モジュール240は、一連の制御信号を使用してBIST220と、パルス幅コントローラ250と、コード再プログラミングモジュール270とに直接にインターフェースする。図2に示されるように、適応WLパルス制御モジュール240は、システムコントローラなど(図示されず)から、ロード_コード信号と、イネーブル信号と、CLK信号とを受け取る。ロード_コード信号は、初期WLパルス幅コードが、ロードされるべきであることを示す。イネーブル信号は、最適WLパルス幅決定プロシージャを開始するように適応WLパルス制御モジュール240に指示する。CLK信号は、単に適応WLパルス制御モジュール240にシステムクロックを供給する。
適応WLパルス制御モジュール240は、メモリ210上でセルフテストを実行するようにBIST220に指示するen_bist信号をBIST220に対して送る。en_bistは、例えば、「1」が、セルフテストを実行するようにBIST220に指示し、そして「0」が、セルフテストを実行しないようにBIST220に指示する単一ビットとして、あるいはもっと精巧なスキームを使用することにより、簡単にインプリメントされることができる。それに応じて、BIST220は、適応WLパルス制御モジュール240に対して合格信号と完了信号とを送る。合格信号は、メモリ210が、セルフテストに合格した(すなわち、メモリ210が、満足に使用できる)かどうか、あるいはメモリ210が、セルフテストに失敗した(すなわち、メモリ210が、満足に使用できない)かどうか、を示す。合格信号は、例えば、「1」が、「合格」を示し、そして「0」が、「失敗」を示す単一ビットとして、あるいはもっと精巧なスキームを使用することにより、簡単にインプリメントされることができる。完了信号は、BIST220が、メモリ210上でセルフテストを実行することを完了していることを示す。完了信号は、例えば、「1」が、セルフテストが完了していることを示し、そして「0」が、セルフテストが完了していないことを示す単一ビットとして、あるいはもっと精巧なスキームを使用することにより、簡単にインプリメントされることができる。
適応WLパルス制御モジュール240は、ロード信号と、アップ/ダウン信号とを送信することにより、パルス幅コントローラ250と通信する。ロード信号は、初期WLパルス幅コードをロードするようにパルス幅コントローラ250に指示する。初期WLパルス幅コードは、例えばシステムコントローラによってパルス幅コントローラ250に供給されることができる。初期WLパルス幅コード値は、例えば、プロセス変動の範囲などを考慮に入れて、シミュレーションに基づいて決定されることができる。初期WLパルス幅コードは、最初に最適でないこともある(すなわち、あまりにも大きすぎ、またはあまりにも小さすぎる)WLパルス幅を示す可能性があるので、アップ/ダウン信号は、WLパルス幅コードを初期値から増大させるように、または減少させるようにパルス幅コントローラ250に指示する。アップ/ダウン信号は、例えば、「1」が、WLパルス幅コード値を増大させるようにパルス幅コントローラ250に指示し、「0」が、WLパルス幅コード値を減少させるようにパルス幅コントローラ250に指示する単一ビットとして、あるいはもっと精巧なスキームを使用することにより、簡単にインプリメントされることができる。さらに、適応WLパルス制御モジュール240はまた、パルス幅コントローラ250にクロックclk_cout信号を供給する。clk_cout信号は、例えば、パルス幅コントローラ250が、WLパルス幅コードを増大させること、または減少させることを容易にする、CLK信号のダウンコンバートされたバージョンとすることができる。
適応WLパルス制御モジュール240はまた、WLパルス幅コードが、その最大値に増大されているか、あるいはその最小値に減少されているかを示すオーバーロード信号をパルス幅コントローラ250から受け取る。オーバーロード信号は、例えば、「1」が、最大値または最小値が到達されていることを示し、そして「0」が、最大値または最小値が到達されていないことを示す単一ビットとして、あるいは、「10」が、最大値が到達されていることを示し、「01」が、最小値が到達されていることを示し、そして「00」が、最大値または最小値が到達されていないことを示す2ビット信号など、もっと精巧なスキームを使用することにより、簡単にインプリメントされることができる。
最終コードが、選択されているときに、パルス幅コントローラ250は、その最終コードをコード再プログラミングモジュール270に対して出力し、そして適応WLパルス制御モジュール240は、最適化された最終WLパルス幅コードをそれに含まれるメモリへとプログラムするように指示するライト_コード信号をコード再プログラミングモジュール270に対して送る。ライト_コードは、例えば、「1」が、最終コードをプログラムするようにコード再プログラミングモジュール270に指示し、そして「0」が、最終コードをプログラムしないようにコード再プログラミングモジュール270に指示する単一ビットとして、あるいはもっと精巧なスキームを使用することにより、簡単にインプリメントされることができる。コード再プログラミングモジュール270は、メモリシステム100の動的なリアルタイムの再プログラミングと、最適化された最終WLパルス幅コードの恒久的な記憶とを可能にする。いくつかのアプリケーションにおいては、コード再プログラミングモジュール270の中のメモリは、最適化された最終WLパルスコードを無期限に記憶することができる不揮発性メモリとすることができる。例えば、コード再プログラミングモジュール270は、eFUSEメモリ、または他のよく知られている任意のプログラマブル不揮発性メモリを用いてインプリメントされることができる。しかしながら、他のアプリケーションにおいては、ICが電源投入されるたびに、WLパルスコードを最適化することが望ましい可能性がある。そのようなアプリケーションにおいては、揮発性メモリが、使用されることができる。
デコーダ260は、WLパルス幅決定中にはパルス幅コントローラ250から、あるいはひとたびWLパルス幅コードが最終決定された後にはコード再プログラミングモジュール270から、WLパルス幅コードを受け取る。WLパルス幅コードは、必ずしも実際のWLパルス幅に対して単調な関係を有する可能性があるとは限らないので、デコーダ260は、各WLパルス幅コードをマッピングし、または復号するために使用され、その結果、パルス幅セットモジュール230からの出力WLパルス幅は、あらかじめ復号されたWLパルス幅コードと共に単調に増大する/減少する。パルス幅セットモジュール230は、順に、メモリ210から読み出すために、あるいはメモリ210に書き込むために使用されるWLパルス幅を設定する。
デコーダ260は、適応WL制御ループ280が、どのコードが単一の増大する/減少する方向に探索することにより探索されているか、について追跡することなく最適化されたコードについて可能性のあるWLパルス幅コードをサーチすることを可能にすることが、当業者によって理解されるであろう。しかしながら、デコーダ260の使用は、本発明の様々な実施形態の範囲を限定するようには意図されず、これは、代案として、どのコードがテストされているかについて追跡するために、メモリなどを使用することができる。
図3は、本発明の一実施形態による適応WL制御ループの動作を説明する流れ図である。メモリシステム200のWLパルス幅を最適化する動作は、次に、図2および3を参照して、そして上記に説明される制御信号に関連して以下で説明されることになる。
本発明の実施形態によれば、各ICは、それ自体のWLパルス幅を独立に設定する。これは、例えば、初期の電源投入時に、あるいは必要とされるときにいつでも、行われることができる。例えば、ホットキャリア効果、負バイアス温度不安定性(negative bias temperature instability:NBTI)効果など、よく知られている経年依存のメモリ悪化効果は、時間にわたってメモリの性能を低減させる可能性がある。それ故に、劣化したIC特性の観点からメモリオペレーションを最適化するために、初期だけでなく後からも本発明の実施形態によるメモリのWLパルス幅を調整することが望ましいこともある。
ひとたびシステムコントローラが、イネーブル信号を使用して適応WL制御ループ280をイネーブルにした後に、それは、ロード_コード信号を使用して初期WLパルス幅コードをロードするように適応WLパルス制御モジュール240に指示する。適応WLパルス制御モジュール240は、順に、ロード信号を使用して初期WLパルス幅コードをロードするようにパルス幅コントローラ250に指示する。パルス幅コントローラ250は、初期WLパルス幅コードをデコーダ260に対して出力し、これは、その後にパルス幅セットモジュール230を通してWLパルス幅を初期値に設定する。
ひとたびWLパルス幅が、設定された後に、適応WLパルス制御モジュール240は、en_bist信号を使用してメモリ210上でセルフテストを実行するようにBIST220に指示する(ブロック310)。BIST220は、セルフテストを実行し、そして完了信号を使用して適応WLパルス制御モジュール240に対して完了を示す。BIST220はまた、合格信号を使用してセルフテストの結果を適応WLパルス制御モジュール240に渡す(ブロック320)。
合格が、合格信号によって示される場合、ICは、少なくとも最小限の設計仕様を満たしている。したがって、適応WLパルス制御モジュール240は、この特定のICの性能を向上させ、そして電力消費を低減させようと試みることになる。そのようにするために、適応WLパルス制御モジュール240は、最適化モードに入る(ブロックグループ330)。このモードにおいては、適応WLパルス制御モジュール240は、アップ/ダウン信号を使用してWLパルス幅コードを減少させるようにパルス幅コントローラ250に指示する(ブロック332)。WLパルス幅コードを、そして対応してWLパルス幅を減少させることは、ICが、向上された性能と低減された電力消費と共に機能することを可能にすることができる。現在のWLパルス幅は、初期WLパルス幅コードについて上記に説明されるようにして、現在のWLパルス幅コードからメモリ210に対して適用される。
ひとたびWLパルス幅が、アップデートされた後に、適応WLパルス制御モジュール240は、メモリ210が現在のWLパルス幅値の下で使用できるかどうかをテストするために、en_bist信号を使用してメモリ210上で後続のセルフテストを実行するようにBIST220に指示する(ブロック334)。以前のように、BIST220は、セルフテストを実行し、そして完了信号を使用して適応WLパルス制御モジュール240に対して完了を示す。BIST220はまた、合格信号を使用してセルフテストの結果を適応WLパルス制御モジュール240に対して渡す(ブロック336)。メモリ210が、この後続のセルフテストに合格する場合、それは、減少されたWLパルス幅から生ずる増大された機能要件の下でさえ、依然として使用できる。次いで、適応WLパルス制御モジュール240は、メモリ210が、後続のセルフテストに失敗するまで反復するように上記オペレーション(ブロック332ないし336)を反復することにより、さらに性能を向上させようと、そして電力消費を低減させようと試みることになる。
ひとたび失敗が、後続のセルフテストによって示された後に、メモリ210の使用できる限界が到達されている。したがって、適応WLパルス制御モジュール240は、合格のセルフテストをもたらした最後のWLパルス幅コード(すなわち、このモードにおける以前のWLパルス幅コード)をプログラムするようにライト_コード信号を使用してコード再プログラミングモジュール270に指示する(ブロック338)。最小のWLパルス幅コードが到達される場合、パルス幅コントローラ250は、オーバーロード信号を使用してこれについて適応WLパルス制御モジュール240に警告することになる。メモリ210が、依然として、最小のWLパルス幅を用いて後続のセルフテストに合格する場合、最小のWLパルス幅コードは、コード再プログラミングモジュール270へとプログラムされることになる。
したがって、最適化モードに入ることにより、本発明の実施形態による適応WL制御ループは、潜在的に、特定のICの性能を向上させ、そして電力消費を低減させることができる。
次に初期のBIST合格/失敗(ブロック320)へと戻ると、失敗が、合格信号によって示される場合、ICは、最小限の設計仕様を満たしていない。従来のメモリシステム100においては、これは、この特定のICが、欠陥があり、そして切り捨てられる必要があることになることを意味するであろう。しかしながら、本発明の実施形態によれば、この特定のICは、それにもかかわらず救済されることができる。例えば、BIST故障は、リードマージンを増大させること(すなわち、WLパルス幅を増大させること)により、潜在的に軽減されることができる。そのようにするために、適応WLパルス制御モジュール240は、回復モード(ブロックグループ340)に入る。このモードにおいては、適応WLパルス制御モジュール240は、アップ/ダウン信号を使用してWLパルス幅コードを増大させるようにパルス幅コントローラ250に指示する(ブロック341)。WLパルス幅コードを、そして対応してWLパルス幅を増大させることは、ICが、低減された性能で、そしてより高い電力消費を伴うにもかかわらず、安定的に機能することを可能にすることができる。現在のWLパルス幅は、初期WLパルス幅コードについて上記で説明されるようにして現在のWLパルス幅コードからメモリ210に対して適用される。
ひとたびWLパルス幅が、アップデートされた後に、適応WLパルス制御モジュール240は、メモリ210が現在のWLパルス幅値の下で使用できるかどうかをテストするために、en_bist信号を使用してメモリ210上で後続のセルフテストを実行するようにBIST220に指示する(ブロック343)。以前のように、BIST220は、セルフテストを実行し、そして完了信号を使用して適応WLパルス制御モジュール240に対して完了を示す。BIST220はまた、合格信号を使用してセルフテストの結果を適応WLパルス制御モジュール240に渡す(ブロック345)。メモリ210が、後続のセルフテストに失敗する場合、それは、増大されたWLパルス幅から生ずる低減された機能要件の下でさえ依然として使用できない。最大の許容可能なWLパルス幅が、到達されていない限り(ブロック347)、適応WLパルス制御モジュール240は、次いで、メモリ210が後続のセルフテストに合格するまで反復するようにして上記オペレーション(ブロック341ないし345)を反復することにより、さらに機能要件を低減させようとさえ試みることになる。
ひとたび合格が、後続のセルフテストによって示された後には、メモリ210の使用できる限界が、到達されている。したがって、適応WLパルス制御モジュール240は、合格するセルフテストをもたらした最後のWLパルス幅コード(すなわち、このモードにおける現在のWLパルス幅コード)をプログラムするようにライト_コード信号を使用してコード再プログラミングモジュール270に指示する(ブロック350)。最大のWLパルス幅コードが到達され、そしてメモリ210が依然として後続のセルフテストに失敗する場合、パルス幅コントローラ250は、オーバーロード信号を使用してこれについて適応WLパルス制御モジュール240に警告することになる(ブロック347)。この場合には、この特定のメモリは、回復に失敗しており、そして使用不可能と考えられる(ブロック349)。
したがって、回復モードに入ることによって、本発明の実施形態によるメモリシステムは、最小限の元の設計要件を満たさないが、何らかのレベルの受け入れ可能なオペレーションを提供する低減された要件の下に依然として機能することができるICを回復することにより潜在的に歩留まりを増大させることができる。
ひとたび最終WLパルス幅コードが、プログラムされた後に、システムイネーブル信号は、非アクティブにされ、そして適応WL制御ループ280は、ディスエーブルにされることができる。このポイントにおいて、最適化された最終WLパルス幅コードは、コード再プログラミングモジュール270に記憶され、そしてメモリ210における使用のためにデコーダ260に渡される。
上記に説明される増分探索アルゴリズム(incremental searching algorithm)は、図示するために示され、そして本発明の様々な実施形態に応じてインプリメントされることができる探索アルゴリズムの範囲を限定するようには意図されないことが、当業者によって理解されるであろう。例えば、当技術分野においてよく知られているツリー探索アルゴリズム、ランダム探索アルゴリズム、または他の探索アルゴリズムはまた、本発明の様々な実施形態に応じて使用されることもできる。
図4は、n−ビットカウンタを使用した、図2のパルス幅コントローラの一例のインプリメンテーションを示している。
図に示されるように、n−ビットカウンタ410は、ロード信号と、アップ/ダウン信号と、clk_cout信号とを受け取る。図2を参照して上記に説明されるように、これらの制御信号は、適応WLパルス制御モジュール240から出力されることができる。n−ビットカウンタ410はまた、システムコントローラなどからn−ビットの初期WLパルス幅コードを受け取る。n−ビットカウンタ410は、n−ビットの現在のWLパルス幅コードと、オーバーロード信号とを出力する。図2を参照して上記に説明されるように、オーバーロード信号は、適応WLパルス制御モジュール240によって受け取られることができ、そしてn−ビットの現在のWLパルス幅コードは、デコーダ260および/またはコード再プログラミングモジュール270によって受け取られることができる。
n−ビットカウンタ410は、図2および3を参照して上記に説明されるオペレーションに従って初期WLパルス幅コードを増大させ、そして減少させるための回路を含んでいる。ロード信号が、受け取られるときに、n−ビットカウンタ410は、初期のWLパルス幅コード値b0ないしbnを一連のビットストレージデバイス(例えば、フリップフロップ)へとロードする。アップ/ダウン信号が、受け取られるときに、n−ビットカウンタ410は、当技術分野においてよく知られているカウンタ回路を使用してclk_cout信号に従って、記憶されたWLパルス幅コードを増分し、または減分し、そしてそのさらなる説明は、ここでは省略されることになる。
ひとたび現在のWLパルス幅コードが、アップデートされた後に、それは、WLパルス幅などを調整するために使用されることができる現在のWLパルス幅コード値Q0〜Qnとして出力される。カウントオペレーションはまた、計算からの生成された任意のオーバーフロービットを追跡する。オーバーフロービットは、最大値または最小値が到達されていることを示すためにオーバーロード信号を使用して出力される。上記に論じられるように、これは、最大または最小の機能が到達されているかどうかを決定する際に有用である。
ここにおいて説明される技法は、ワイヤレス通信デバイス、ハンドヘルドデバイス、ゲーミングデバイス、コンピューティングデバイス、コンピュータ、ラップトップコンピュータ、大衆消費電子デバイスなど、様々な電子デバイスのために使用されることができる。ワイヤレス通信デバイスについての技法の例示の使用は、以下で説明される。
図5は、ワイヤレス通信システムにおけるワイヤレス通信デバイス500の一設計のブロック図を示している。ワイヤレスデバイス500は、携帯電話、端末、ハンドセット、携帯情報端末(PDA)などとすることができる。ワイヤレス通信システムは、符号分割多元接続(CDMA)システム、GSM(Global System for Mobile Communications)システムなどとすることができる。
ワイヤレスデバイス500は、受信経路と送信経路とを経由して双方向通信を提供することができる。受信経路上では、基地局(図示されず)によって送信される信号は、アンテナ512によって受信され、そしてレシーバ(RCVR)514に対して供給される。レシーバ514は、受信信号を調整し、そしてアナログ入力信号を特定用途向け集積回路(ASIC)520に対して供給する。送信経路上で、トランスミッタ(TMTR)516は、ASIC520からのアナログ出力信号を受信し、調整し、そして被変調信号を生成し、この被変調信号は、アンテナ512を経由して基地局へと送信される。
ASIC520は、例えば、受信ADC(Rx ADC)522、送信DAC(Tx DAC)524、モデムプロセッサ526、縮小命令セットコンピューティング(RISC)プロセッサ528、コントローラ/プロセッサ530、内部メモリ532、外部バスインターフェース534、入出力(I/O)ドライバ536,オーディオDAC/ドライバ538、ビデオDAC/ドライバ540など、様々な処理ユニットと、インターフェースユニットと、メモリユニットとを含むことができる。Rx ADC522は、レシーバ514からのアナログ入力信号をデジタル化し、そしてサンプルをモデムプロセッサ526へと供給する。Tx DAC524は、モデムプロセッサ526からの出力チップをデジタルからアナログへと変換し、そしてアナログ出力信号をトランスミッタ516へと供給する。モデムプロセッサ526は、データの送信および受信のための処理、例えば、符号化、変調、復調、復号化などを実行する。RISCプロセッサ528は、ワイヤレスデバイス500についての様々なタイプの処理、例えば、ビデオアプリケーション、グラフィックスアプリケーション、より高いレイヤのアプリケーションについての処理を実行することができる。コントローラ/プロセッサ530は、ASIC520内の様々な処理ユニットとインターフェースユニットとのオペレーションを方向づけることができる。内部メモリ532は、ASIC520内の様々なユニットについてのデータおよび/または命令を記憶する。
EBI534は、ASIC520とメインメモリ544との間のデータの転送を容易にする。I/Oドライバ536は、アナログインターフェースまたはデジタルインターフェースを経由してI/Oデバイス546を駆動する。オーディオDAC/ドライバ538は、スピーカ、ヘッドセット、イヤホーンなどのオーディオデバイス548を駆動する。ビデオDAC/ドライバ540は、液晶ディスプレイ(LCD)などのディスプレイユニット550を駆動する。
内部メモリ532、メインメモリ544、および/または他のユニットは、ここにおいて説明される技法をインプリメントすることができる。例えば、メモリのうちの任意のものが、図2に示されるように生成されることができる。
上記を考慮して、本発明の実施形態はまた、ここにおいて説明される機能、アクションのシーケンス、および/またはアルゴリズムを実行するための方法を含むこともできることが、理解されるであろう。例えば、メモリシステムの中で使用されるWLパルス幅を適応させる方法は、図3に示される流れ図に従って実行されることができる。
本発明の実施形態による方法は、ハードウェアおよび/またはソフトウェアの形でインプリメントされることができることも理解されるであろう。ハードウェア/ソフトウェアのインプリメンテーションは、プロセッサ(単数または複数)と製造の物品(単数または複数)との組合せを含むことができる。例えば、RISCプロセッサ528は、内部メモリ532および/またはメインメモリ544のオペレーションを最適化するためにここにおいて説明されるWLパルス幅を適応させるための技法をインプリメントするように構成されていることができる。製造の物品(単数または複数)は、ストレージ媒体と、実行可能なコンピュータプログラム(単数または複数)、例えば、コンピュータ可読媒体上に記憶されるコンピュータプログラムプロダクト、とをさらに含むことができる。実行可能なコンピュータプログラム(単数または複数)は、説明された動作または機能を実行する命令の組を含むことができる。ここにおいて使用されるように、命令の組は、1つまたは複数の命令を含むことができることが、理解されるであろう。
上記に説明される本発明の実施形態は、従来の技法より優るいくつかの利点を提供する。例えば、ここにおいて説明される技法は、元の設計仕様を満たさないこともあるICの回復を提供し、そしてそれ故に全体の歩留まりにおける向上を提供する。さらに、生産されるICは、最悪ケースシナリオのプロセス変動を仮定してはおらず、例えば、セル反転の確率を低下させることにより、セル安定性を改善するのと同様に、性能特性および電力消費の特性を改善することができる、WLパルス幅の減少をもたらす。異なるIC上での電力消費のより緊密な分布のために、総IC電力のよりよい予測が存在することができる。さらに、より大部分の製造されたICが、より低い電力消費を有する可能性があるので、すべての製造されたICについての平均電力消費が、低減されることができる。センスマージンは、メモリが失敗しない限り、低減されることもでき、これは、より高速なセンスマージン応答をもたらす。センスマージンは、メモリが正しく動作するために必要に応じて、個別に各メモリについて最適化されることもできる。ここにおいて説明される技法は、WLパルス幅を適応させるために、追加の外部のテストを必要としないオンチップBISTを使用するので、テスト時間に対する影響もまた、無視可能である。
上記の開示は、本発明の例示の実施形態を示しているが、様々な変更および修正は、添付の特許請求の範囲によって定義されるように、本発明の範囲を逸脱することなくここにおいて行われることができることに注意すべきである。例えば、上記に説明される増分探索アルゴリズムは、最適化されたWLパルス幅コードを見出すためにインプリメントされることができる多数の探索アルゴリズムのうちの1つにすぎないことが、当業者によって理解されるであろう。当技術分野においてよく知られているツリー探索アルゴリズム、ランダム探索アルゴリズム、あるいは他の探索アルゴリズムもまた、本発明の様々な実施形態に応じて使用されることができる。ここにおいて説明される本発明の実施形態に従う方法請求項の機能、ステップ、および/またはアクションは、特定のどの順序でも実行される必要はない。さらに、本発明の要素は、単数形で説明され、または請求される可能性があるが、単数形への限定が、明示的に述べられていない限り、複数形も考えられる。