(57)【要約】【課題】低速メモリ技術の平均アクセス時間を短縮する。【解決手段】不揮発性バッファ化メモリインターフェースを提供するメモリデバイス及び方法が開示される。一実施形態では、メモリデバイスは、不揮発性メモリアレイ(302)と、メモリアレイ(302)と共に基板上に集積された不揮発性バッファ化メモリインターフェースとを備えることができる。メモリインターフェースは、読み出し動作のためにデータをバッファリングするように構成された１つ又は複数の揮発性バッファ(422)と、１つ又は複数の揮発性バッファ(422)にバッファリングされたデータに関連付けられた１つ又は複数のアドレスを示すように構成されたテーブルメモリ(426)とを備えることができる。【選択図】図４
2005018976.tif 000002
【特許請求の範囲】
【請求項１】
集積されたメモリデバイスであって、
不揮発性メモリアレイ（３０２）と、
前記メモリアレイ（３０２）と共に基板上に集積された不揮発性バッファ化メモリインターフェース
とを備え、
前記メモリインターフェースは、
読み出し動作のためにデータをバッファリングするように構成された１つ又は複数の揮発性バッファ（４２２）と、
前記１つ又は複数の揮発性バッファ（４２２）にバッファリングされたデータに関連付けられた１つ又は複数のアドレスを示すように構成されたテーブルメモリ（４２６）とを含むことからなる、デバイス。
【請求項２】
前記テーブルメモリ（４２６）は揮発性であり、前記メモリインターフェースは電力が提供されない間は、不揮発性メモリ（４２８）内に前記テーブルメモリ（４２６）のコンテンツを保存するように構成されることからなる、請求項１に記載のデバイス。
【請求項３】
前記メモリインターフェースは、電力が復旧した時に、前記不揮発性メモリ（４２８）からテーブルメモリ（４２６）の前記コンテンツを復元するように更に構成される、請求項２に記載のデバイス。
【請求項４】
電力が復旧した時に、前記メモリインターフェースは、前記１つ又は複数の揮発性バッファ（４２２）を、前記電力が提供されない状態の直前の状態に復元するように更に構成される、請求項１に記載のデバイス。
【請求項５】
前記１つ又は複数の揮発性バッファ（４２２）は、複数の読み出しバッファを備え、該複数の読み出しバッファは、各々が前記メモリアレイの異なる領域に関連付けられ、関連付けられた領域上の読み出し動作のためのデータのみをバッファリングするように構成されることからなる、請求項１に記載のデバイス。
【請求項６】
前記メモリアレイは、磁気ランダムアクセスメモリ（ＭＲＡＭ）セルを含む、請求項１に記載のデバイス。
【請求項７】
格納されたデータに対するアクセスを提供する方法であって、
電力が提供されない間に、１つ又は複数の読み出しバッファ（４２２）内のデータを示す情報を保存するステップと、
電力が復旧した時に、前記データを、前記１つ又は複数の読み出しバッファ（４２２）に復元するステップ
とを含む、方法。
【請求項８】
前記保存するステップは、
これから起ろうとしているパワーダウンを検出するステップと、
前記１つ又は複数の読み出しバッファ（４２２）の各々に関して、前記読み出しバッファ内のデータに関連付けられた開始アドレスを、不揮発性メモリ（４２８）内に格納するステップ
とを含む、請求項７に記載の方法。
【請求項９】
前記復元するステップは、前記１つ又は複数の読み出しバッファの各々に関して、
前記読み出しバッファ（４２２）に関連付けられた前記開始アドレスを検索するために、前記不揮発性メモリ（４２８）にアクセスするステップと、
前記開始アドレスに関連付けられたデータから開始されるメモリアレイ（３０２）からのデータで前記読み出しバッファ（４２２）を満たすステップ
とを含む、請求項８に記載の方法。
【請求項１０】
前記検出するステップの前に、
読み出しアドレスを含む読み出しコマンドを受け取るステップと、
前記読み出しアドレスからのデータが、読み出しバッファ（４２２）にバッファリングされているかどうかを判定するステップと、
前記データがバッファリングされていない場合には、前記読み出しアドレスに関連付けられたメモリアレイ（３０２）内の位置からデータを検索するステップと、
前記データがバッファリングされている場合には、前記複数の読み出しバッファ（４２２）のうちの１つからのデータによって前記読み出しコマンドに応答するステップ
とを更に含む、請求項８に記載の方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、不揮発性バッファ化メモリインターフェース（バッファリングされた不揮発性メモリのインターフェース）に関し、特に不揮発性バッファ化メモリインターフェースを提供するデバイス及び方法に関する。
【背景技術】
【０００２】
多くの発展する技術は、情報へのアクセス可能性（又は情報の利用し易さ）を増加させることから、受け入れられてきた。このような技術の例としては、マイクロフィルム、磁気テープ、磁気ディスク媒体、光ディスク媒体、及び集積されたメモリ（又は集積化メモリ）を含む。特に集積されたメモリは、高度なアクセス可能性を提供する。
【０００３】
集積化メモリは、情報をディジタル形式で格納(又は記憶)するように構成された電気回路である。この情報、すなわち「データ」には、集積化メモリに適切に結合された任意のディジタル装置が容易にアクセス可能である。用いられる特定の技術に依存して、データを真に驚異的な速度でアクセスすることが可能である。
【０００４】
集積化メモリは、多くの場合、揮発性、又は不揮発性のものとして分類される。揮発性集積化メモリは、電力が無いと格納されたデータに損失を受けるが、この欠点は、情報密度及びアクセス速度における利点により相殺することができる。不揮発性メモリは、電力が無くても格納された情報を保持するが、情報密度の低下、アクセス速度の低下、及び／又はプログラマビリティの欠如の影響を受ける可能性がある。
【０００５】
プログラマビリティ、不揮発性、高い情報密度、及びそこそこのアクセス速度を提供することができる新しい集積化メモリ技術が開発されてきている。本明細書で用いられる語句としての磁気集積化メモリとは、データを格納するために磁界を使用する集積されたメモリのことである。このような磁界を、データを保持するために電力を継続して存在させることに頼らない磁性材料に埋め込むことができる。これらのメモリ内の磁界を検出するために、及びこれらの磁界が表すデータを決定するために、様々な感知技術を用いることが可能である。
【０００６】
【特許文献１】米国特許出願 第10／384,053号明細書（HP200208167）
【特許文献２】米国特許出願 第10／044,542号明細書
【特許文献３】米国特許出願 第09／766,354号明細書
【発明の開示】
【発明が解決しようとする課題】
【０００７】
磁気メモリ及び他の不揮発性メモリのアクセス速度は徐々に改善されてきているが、それでもなお、特定の揮発性メモリ技術（例えば、スタティックランダムアクセスメモリ（ＳＲＡＭ」）によって提供されるアクセス速度に及ばない可能性がある。従って低速メモリ技術の平均アクセス時間を短縮するための方法が有利であろう。
【課題を解決するための手段】
【０００８】
従って、不揮発性バッファ化メモリインターフェースを提供するメモリデバイス及び方法を本明細書において開示する。一実施形態では、メモリデバイスは、不揮発性メモリアレイと、メモリアレイと共に基板上に集積された不揮発性バッファ化メモリインターフェースとを備えることができる。メモリインターフェースは、読み出し動作のためにデータをバッファリングするように構成された１つ又は複数の揮発性バッファと、１つ又は複数の揮発性バッファ内にバッファリングされたデータに関連付けられた１つ又は複数のアドレスを示すように構成されたテーブルメモリとを備えることができる。
【発明の効果】
【０００９】
低速メモリ技術の平均アクセス時間を短縮する。
【実施例】
【００１０】
本発明の各種実施形態を詳細に説明するために、添付図面に対して参照がなされる。
【００１１】
特定のシステム構成要素を参照するために、後述の説明及び特許請求の範囲を通して、特定の用語が使用される。当業者は理解されるように、異なる企業は構成要素を、異なる名前で参照する可能性がある。本明細書は、機能ではなく名称の異なる構成要素間を区別する意図はない。後述の考察及び特許請求の範囲では、「含む（including）」及び「備える（comprising）」という語句は、オープンエンド式に（又は拡張可能な方式で）使用されるため、従って、「〜を含むが、これらに限定されない」ことを意味するものと解釈されるべきである。同様に、「結合する（couple 又は couples）」という語句も、間接的な電気的接続、又は直接的な電気的接続のどちらかを意味することが意図されている。従って第１の装置が第２の装置に結合される場合には、その接続は、直接的な電気的接続を介したものとすることができ、もしくは他の装置及び接続を介した間接的な電気的接続を通したものとすることができる。
【００１２】
後述の考察は、本発明の様々な実施形態を対象としている。これらの実施形態の１つ又は複数は、好適なものであり得るが、開示された実施形態は、特許請求の範囲を含めて、本開示の範囲を限定するものとして解釈されるべきでなく、あるいは使用されるべきではない。更に当業者は、後述の説明は広い用途を有し、どの実施形態の考察もその実施形態の単なる例示的なものを意味し、特許請求の範囲を含めた開示の範囲が、その実施形態に限定されることを示唆する意図がないことを理解するであろう。
【００１３】
図１は、例示的なディジタル装置１００としてデスクトップコンピュータを示す。ユーザと対話するために、ディジタル装置１００を、テキスト又はグラフィックディスプレイ１０２に、及び入力装置１０４に結合することができる。ディスプレイ１０２及び入力装置１０４は共に、ユーザとディジタル装置１００との間のインターフェースとして動作することができる。ディジタル装置１００は、入力装置１０４のユーザの操作によって促される特定の動作を実行し、ディスプレイ１０２を介して応答をユーザに提供することができる。ディジタル装置１００は、適切な動作、及び／又は、ユーザへの応答を決定するために、集積化メモリを組み込むことができる。ディジタル装置１００はデスクトップコンピュータとして示されるが、１つ又は複数の集積化メモリを組み込むことが可能な全ての他のディジタル装置も意図されており、ディジタル装置としては、ディジタルカメラ、個人情報端末、携帯電話、ディジタル音楽プレーヤ、ディジタルマルチメディアシステム、及びディジタルシステムコントローラが含まれるが、それらに限定されない。
【００１４】
図２は、ディジタル装置１００に関するブロック図の一例を示す。装置１００は、ブリッジ２０４によってシステムメモリ２０６に結合された中央処理装置（ＣＰＵ）２０２を備えることができる。ＣＰＵ２０２を、ブリッジ２０４により、ビデオカード２０３にもまた結合することができる。ビデオカード２０３は同様にディスプレイ１０２に結合される。ＣＰＵ２０２を、ブリッジ２０４によって拡張バス２０８に更に結合することができる。拡張バス２０８を、記憶装置２１０、及び入力／出力インターフェース２１２にも結合することができる。入力装置１０４を、入力／出力インターフェース２１２を介して装置１００に結合することができる。
【００１５】
ＣＰＵ２０２は、メモリ２０６内か、及び／又は、記憶装置２１０内に格納されたソフトウェアに従って動作することが可能である。ソフトウェアの指示下で、ＣＰＵ２０２はキーボード又は所定の代替の入力装置１０４を介して操作者からのコマンドを受け取ることができ、且つ、ディスプレイ１０２又は所定の代替の出力装置を介して操作者に対して所望の情報を表示することができる。ＣＰＵ２０２は、データを検索、転送、及び格納するために、他のシステム構成要素の動作を制御することができる。
【００１６】
ブリッジ２０４は、構成要素間のデータの流れを調整する。ブリッジ２０４は、専用の広帯域のポイントツーポイントバスを、ＣＰＵ２０２、メモリ２０６、及びビデオカード２０３に対して提供することができる。実施形態によっては、ブリッジを除くことができ、ＣＰＵ２０２をメモリ２０６に直接結合することができる。このような実施形態では、プロセッサを拡張バス２０８にもまた直接結合することができる。
【００１７】
メモリ２０６は、高速にアクセスするために、ソフトウェアとデータとを格納することができる。メモリ２０６は集積化メモリモジュールを含めることができ、集積化メモリモジュールのうちの１つ又は複数を不揮発性とすることができる。
【００１８】
ビデオカード２０３は、グラフィックスのためのカスタマイズされた処理と、メモリベースのフォーマットからディスプレイ１０２に適した信号フォーマットへのデータ変換とを提供することができる。ディスプレイ１０２は、操作者によって使用されるためのデータを提供することができる。
【００１９】
拡張バス２０８は、ブリッジ２０４と複数の他のコンピュータ構成要素との間の通信をサポートすることができる。バス２０８は、取り外し可能なモジュール式の構成要素、及び／又は、ブリッジ２０４と共に回路基板上に集積された構成要素（例えば、オーディオカード、ネットワークインターフェース、データ取得モジュール、モデム）に結合することができる。
【００２０】
記憶装置２１０は、ソフトウェア及びデータを長期間保存するために格納することができる。記憶装置２１０は可搬式のものであっても良く、又は取り外し可能な媒体を収容しても良く、又は設置された構成要素であっても良く、又は回路基板上の集積された構成要素であっても良い。記憶装置２１０は、メモリカードのような取り外し可能なメモリ装置であっても良い。代替として、記憶装置２１０は、不揮発性集積化メモリ、磁気媒体記憶装置、光学媒体記憶装置、又は所定の他の形態の長期に情報を記憶する装置であっても良い。
【００２１】
入力／出力インターフェース２１２は、レガシー構成要素、及び広帯域接続を必要としない装置の通信をサポートすることができる。入力／出力インターフェース２１２は、リアルタイムクロックを更に含めることができ、システムの低レベルのテストのためにスキャンチェーンとの通信をサポートすることができる。
【００２２】
入力装置１０４は、操作者の操作に応答してデータをインターフェース２１２に提供することができる。入力装置１０４は、キーボード、又は所定の他の入力装置（例えば、ポインティングデバイス、ボタン、センサ）とすることができる。操作者の操作に応答してデータを提供するために、複数の入力装置を、入力／出力インターフェース２１２に結合することができる。操作者に情報を伝送するために、出力装置（例えば、パラレルポート、シリアルポート、プリンタ、スピーカ、ライト）を、入力／出力インターフェース２１２に結合することもできる。
【００２３】
メモリ２０６及び記憶装置２１０は、主要なデータ格納リソースであり得るため、従って、メモリ２０６及び記憶装置２１０は、おそらくは、比較的少数の大容量の集積化メモリデバイスの形態、あるいは多数の比較的小容量の集積化メモリデバイスの形態のうちどちらかの、大量の集積化メモリを備えることができる。しかしながら、ディジタル装置１００の他の構成要素もまた、集積化メモリデバイスを含めることができる。例えば、ビデオカード２０３は、画像を格納して処理するための１つ又は複数の集積化メモリデバイスを含めることができる。同様に、入力／出力インターフェース２１２は、コンフィギュレーションパラメータと、基本入力／出力システム（ＢＩＯＳ）ルーチンとを長期間格納するための集積化メモリデバイスを含めることができる。
【００２４】
図３は、バッファ化メモリインターフェースが無い集積化メモリデバイス３００の一例を示す。デバイス３００は、参照により本明細書に組み込まれる関連する特許文献１によって開示されるような、アシストされたメモリデバイスとすることができる。アシストされたメモリデバイスとは、データの格納又は復元における潜在的なエラーに対処するための誤り訂正技術を組み込んだメモリデバイスのことである。このようなエラーは、メモリセル内における絶縁製造不良、予想不可能なセル間結合不良、読み出し動作中、又は書き込み動作中の行ライン及び列ラインにおける一時的な信号不良によって生じる可能性があり、あるいはこのようなエラーは他の原因を有する可能性がある。
【００２５】
集積化メモリデバイス３００は、メモリアレイ３０２、サポートモジュール３０４、読み出し・書き込みモジュール３０６、及び誤り訂正符号（ＥＣＣ）モジュール３０８を含む。メモリアレイ３０２は、少なくとも１ビットのデータをそれぞれが格納可能な複数のメモリセル又はメモリ素子を含む。メモリアレイ３０２は、ダイナミックＲＡＭ（ＤＲＡＭ）、拡張データ出力ＲＡＭ（ＥＤＯ  ＲＡＭ）、ビデオＲＡＭ（ＶＲＡＭ）、スタティックＲＡＭ（ＳＲＡＭ）、シンクロナスＤＲＡＭ（ＳＤＲＡＭ）、磁気抵抗又は磁気ＲＡＭ（ＭＲＡＭ）、電気的にプログラム可能なＲＯＭ（ＥＰＲＯＭ）、及びフラッシュＲＯＭを含めた任意のランダムアクセスメモリ（ＲＡＭ）又は読み出し専用メモリ（ＲＯＭ）のような任意のメモリ技術によるものであっても良い。後述の説明は、主にＭＲＡＭに関してなされるが、開示された構造及び技法は、ＭＲＡＭに限定されず、他のメモリ格納技術に対しても適用可能である。
【００２６】
アレイ３０２内の各メモリセル又は素子は、メモリアドレスに関連付けられているが、各メモリアドレスを、複数のメモリセルに関連付けることが可能である。サポートモジュール３０４はアドレス信号を受け取ることができ、これに応答して、メモリアレイ３０２内の関連付けられたメモリセルへのアクセスを提供することができる。選択されたメモリセルへのアクセスは、読み出し・書き込みモジュール３０６を介してなされる。
【００２７】
読み出し・書き込みモジュール３０６は、サポートモジュール３０４によってアクセス可能にされたメモリセル内に格納されたデータ値を検出する（「読み出す」）ためのセンス増幅器を備える。モジュール３０６は、新しいデータ値をメモリセル内に格納する（「書き込む」）ための書き込みドライバを更に備えることができる。モジュール３０６の動作を、コマンド信号によって制御することが可能である。コマンド信号は、読み出し動作が望まれている時と、書き込み動作が望まれている時とを単に示すことができる。書き込み動作が示されている時には、読み出し・書き込みモジュール３０６は、モジュール３０８からデータを受け取って、選択されたメモリセルにそのデータを格納することができる。反対に、読み出し動作が示されている時には、モジュール３０６は、選択されたメモリセルからデータを検索し、モジュール３０８にそのデータを提供することができる。コマンド信号は、メモリデバイス３００がイネーブルにされている時か、又はディセーブルにされている時かを更に示すことができ、コンフィギュレーション情報がメモリデバイス３００に提供されている時もまた示すことができることに留意されたい。
【００２８】
ＥＣＣモジュール３０８は、メモリデバイス３００に発生するデータエラーを検出して修正するように動作することが可能である。格納のためにデータを受け取ると、ＥＣＣモジュール３０８はデータをエンコードし、データワードをコードワードに変換する。例として、書き込み動作中、（７，４，３）ハミング符号を用いるＥＣＣモジュールは、４ビットのデータワードを７ビットのコードワードに変換することができる。次に、コードワードは、指定されたメモリアドレスに関連付けられたメモリセルに格納される。反対に、読み出し動作中、７ビットワードが、指定されたメモリアドレスに関連付けられたメモリセルから検索される。７ビットワードはコードワードであり得るが、又はビットエラーを含んでいる可能性がある。どちらの場合でも、ＥＣＣモジュール３０８は、エラーを含んだ７ビットワードが検索された場合であっても７ビットワードをデコードし、適切な４ビットデータワードへと変換する。次に、データワードが出力データとして提供される。
【００２９】
もちろん、他の誤り訂正符号を使用しても良い。適切な誤り訂正符号の例には、ハミング符号、ゴッパ符号、ゴーレイ符号、リードソロモン符号、及び畳み込み符号が含まれる。符号化は、前述のようにワード単位をベースになされることができる。代替として、又は追加として、符号化は、グループ内での誤りを含むワードを修正することができるように、ワードのグループ単位でなされても良い。ＥＣＣモジュールはデコード処理中にかなりの処理時間を要するかもしれないが、高スループットレートを維持するためにパイプライン技術を用いることが可能である。
【００３０】
図４は、バッファ化メモリインターフェースを有する集積化メモリデバイス４００を示す。バッファ化メモリインターフェースは、好ましくは「先読みすること」によって、すなわち、より高速にアクセスするために、以前に読み出されたメモリ位置に続くメモリ位置からデータを検索して、１つ又は複数のバッファ内にそのデータを格納することによって、平均読み出し待ち時間を短縮するように動作する。メモリの異なる領域内における参照の場所を利用するために、複数のバッファを使用することができる。
【００３１】
メモリデバイス４００は、メモリアレイ３０２と、行デコーダ４０２、列デコーダ４０４、及びアドレスマッピングモジュール４０６を含むサポートモジュールと、センス増幅器４１０、及び書き込みドライバ４１２を含む読み出し・書き込みモジュールと、ＥＣＣデコーダ４１８、及びＥＣＣエンコーダ４２０を含むＥＣＣモジュールと、インターフェース制御部４１４、１つ又は複数の読み出しバッファ４２２、及びオプションの書き込みバッファ４２４を含めることができるバッファ化メモリインターフェースとを備える。インターフェース制御部４１４は、バッファ４２２、４２４を制御するために使用されるテーブル４２６のためのレジスタ又はメモリを備えることができ、電力が無い状態でテーブル４２６を保存するための不揮発性メモリ４２８を更に備えることができる。
【００３２】
メモリアレイ３０２は、アレイ内に配置されたメモリセルを有するＭＲＡＭのような、少なくとも１つのメモリデバイスを含む。各々の磁気メモリ記憶素子は、データ格納層と参照層（reference layer）とを含めることができる。磁気メモリ素子の論理状態は、データ格納層及び参照層における相対的な磁化の向きに依存する。各メモリ素子の磁化は、任意の所与の時間において、２つの安定した向きのうちの１つの向きにあるとみなせる。これら２つの安定した向き、平行と反平行とにより、論理値「０」と「１」とを表すことができる。
【００３３】
アレイ３０２のメモリセルは、一般に行及び列に配置され、行は１つの軸に沿って拡張し、列は垂直軸に沿って拡張している。理解を助けるために、比較的少数のメモリセルのみが示されている。実際には、１０２４×１０２４のメモリセルのアレイ、又はこれよりも大規模なものが見込まれるが、特許請求の範囲はそのようには限定されない。
【００３４】
図４は、水平方向に拡張する行ラインと、垂直方向に拡張する列ラインとを示す。一実施形態では、メモリセルの各行毎に１つの行ラインがあり、メモリセルの各列毎に１つの列ラインがある。各メモリセルは、対応する行ラインと列ラインとの交点に配置されて示される。一実施形態では、メモリセルは、行デコーダ４０２が対応する行ラインをアサートし、且つ、列デコーダ４０４が対応する列ラインをセンス増幅器４１０又は書き込みドライバ４１２に結合する時に、アクセス可能にされる。読み出し動作中は、メモリセルの抵抗を、センス増幅器によって検出することができ、書き込み動作中は、メモリセルの磁化を、書き込みドライバ４１２によって設定することができる。
【００３５】
行デコーダ４０２を、行アドレスＡＲに応答して行ラインを選択するために動作可能にすることができ、複数の列デコーダ４０４を、列アドレスＡＣ４０８に応答して列ラインをそれぞれ選択するために動作可能にすることができる。行アドレスＡＲに応答して、行デコーダ４０２は、対応する行ラインを接地のような既知の電圧レベルへと結合することができる。列アドレスＡＣ４０８に応答して、列デコーダ４０２は、対応する列ラインをセンス増幅器４１０及び／又は書き込みドライバ４１２へと結合することができる。選択された複数のメモリセルは、選択された行ラインと列ラインとの交点に存在する。
【００３６】
行アドレスＡＲと列アドレスＡＣとを、アドレスマッピングモジュール４０６によって、行デコーダ４０２と列デコーダ４０４とに、それぞれ提供することができる。一実施形態では、アドレスマッピングモジュール４０６は、インターフェース制御部４１４からメモリアドレスを受け取り、欠陥のあるメモリセルをアレイ内の「予備（spare）」のメモリセルに置き換えることができる内部マッピング方法に基づいて、受け取ったメモリアドレスを物理アドレスに変換する。アドレスマッピングモジュール４０６の様々な実施形態についての更なる詳細は、2002年1月11日に出願されたSelf-Healing MRAMと題する、共通に譲渡された特許文献２と、2001年１月19日に出願されたSelf-Healing Memoryと題する特許文献３とに見い出すことができ、これら両方を参照により本明細書に組み込む。行デコーダ４０２及び列デコーダ４０４は、マッピングモジュール４０６によって提供された物理アドレスを使用して、メモリアドレスに関連するメモリセルを選択することができる。
【００３７】
書き込みドライバ４１２は、選択されたメモリセルの論理状態の設定と並列に動作することができる。論理状態は、データワードに応答してＥＣＣエンコーダ４２０によって提供されるコードワードのビットとすることができる。コードワードは、好ましくは冗長性を、すなわちエラーが発生した時に正しいデータワードの決定を助けるための追加情報を、提供するように設計される。
【００３８】
センス増幅器４１０は、選択されたメモリセルの論理状態の検出と並列に動作することができる。ＥＣＣデコーダ４１８は、センス増幅器４１０からのデータを組み合わせて（エラー有り、又はエラー無しの）コードワードを形成することが可能であり、コードワードを処理して、エラーの無いデータワードを抜き出すことが可能である。理想的には、ＥＣＣデコーダは一時的なエラーを訂正するために動作することができ、一方で、アドレスマッピングモジュール４０６は、メモリセル内における永久的な欠陥よって生じるエラーを防ぐために動作することができる。
【００３９】
高速組み合わせロジックから、シーケンシャルステートマシンベースの実施形態まで、多くのＥＣＣデコーダの実施形態が存在する可能性がある。所定サイズのデータブロックに基づいたＥＣＣコードワードを生成するために、ハミング符号、リードソロモン符号、二進ゴーレイ符号、二進ゴッパ符号、ビタビ符号、又は他のアルゴリズムを、使用することができる。より大きなデータブロックサイズ、より強力なＥＣＣアルゴリズムを使用して、高められた誤り訂正能力及びデータ効率を達成することができるが、回路の複雑性が増す。このように追加される複雑性は、バッファ化メモリインターフェースが使用される場合には、克服不可能とは限らない。
【００４０】
メモリデバイス４００は、インターフェース制御部４１４、１つ又は複数の読み出しバッファ４２２、及びオプションの書き込みバッファ４２４の形態で、バッファ化メモリインターフェースを備えることができる。１つ又は複数の読み出しバッファ４２２は、インターフェース制御部４１４の制御下で、ＥＣＣデコーダ４１８からデータを受け取るように、そして双方向データバス上に出力データを提供するように、動作することが可能である。オプションの書き込みバッファ４２４は、双方向データバスからの入力データをバッファリングすることができ、そのデータをＥＣＣエンコーダ４２０に提供することができる。
【００４１】
インターフェース制御部４１４の動作を探る前に、「局所性の原理」について考察することが有益であろう。局所性の原理は、「所与のメモリ位置にアクセスする確率は、近くのメモリ位置が最近アクセスされていた時には、平均よりも十分に高い」というように明言することができる。長い待ち時間のメモリアレイに関しては、要求されたメモリアドレスからのデータのみならず、後の読み出し要求を予期して、近くのメモリアドレスからのデータをも格納するためにメモリから検索することによって、この原理を利用することができる。近くのメモリ位置からのデータを、高速バッファに格納することができ、予期された読み出し要求が発生した場合には、待ち時間を零（ゼロ）にすることができる。
【００４２】
局所性の原理は、ディジタル装置によって実行されているソフトウェア処理、ファームウェア処理、及び／又は、ハードウェア処理に、ある程度依存する。多くの処理は、分散されたパターン内において、局所性の原理を示すことができる。例えば、ソフトウェア処理は、メモリの１つの領域から、実行するための命令を検索し、メモリの別の領域から、処理されるデータを検索することができる。これら各エリア内で、局所性の原理が当てはまるが、これらのアクセスが点在することは、単一のバッファが効率的に動作することを妨げる可能性がある。
【００４３】
インターフェース制御部４１４は、読み出しコマンド及び書き込みコマンドを示すコマンド信号を受け取り、読み出しコマンド及び書き込みコマンドに関連付けられたメモリアドレスを示すアドレス信号を更に受け取る。コマンドの受け取り、及びデータの提供の際の、インターフェースの設計を簡易化するために、コマンド信号の一部としてクロック信号を含めることができる。インターフェース制御部４１４は、データがバッファリングされ、データライン上で利用可能であることをプロセッサに示すために、「データレディ」信号を更に提供することができる。
【００４４】
１つ又は複数の読み出し／書き込みコマンドに応答して、インターフェース制御部４１４は、コマンドの要求を満たすために、一連の読み出し／書き込み動作をメモリアレイ３０２上に生成するが、将来発生するコマンドを予期して、１つ又は複数の読み出しバッファ４２２の用意もする。データがすでに検索されて読み出しバッファ４２２内にある（又は、データがまだオプションの書き込みバッファ４２４内にある）アドレスに対する読み出しコマンドが受け取られた場合、インターフェース制御部４１４は、待ち時間がほとんど無しに、又は待ち時間が全く無しに、バッファにコマンドの要求を満たさせる。
【００４５】
バッファ化メモリインターフェースが、複数の読み出しバッファを備える時は、インターフェース制御部４１４は、図５ａに示されるようなコンフィギュレーションテーブルを使用することができる。テーブルは外部でプログラム可能であっても良い。その場合には、インターフェース制御部４１４は、コマンド信号がインターフェース制御動作のパラメータの設定（コンフィギュレーション）のためのコンフィギュレーションモードを示す時に、テーブルのためのエントリを受け取る。
【００４６】
図５ａのテーブルは、読み出しバッファにメモリアドレス領域を関連付ける。テーブルの列５０２はメモリ領域の開始アドレスを指定し、列５０４はメモリ領域の終了アドレスを指定し、列５０６はメモリ領域と関連付けられるバッファを指定する。テーブルは予め設定され、ハードウェアで実施されることができ、また代替として、様々な形態で表現されることができることに留意されたい。例えば、列５０４を排除することができ、メモリ領域を列５０２内のアドレス間の間隔によって定義することができる。代替の実施形態では、ハードワイヤードマッピングアルゴリズム、例えば、バッファ容量の倍数をベースとして有するモジュロ関数（又はMOD関数）を優先することで、テーブルを排除することができる。
【００４７】
インターフェース制御部４１４は、データが現在バッファリングされていないアドレスに対する読み出しコマンドを受け取ると、要求されたアドレス及び付近のアドレスブロックに対するメモリアレイ３０２上の一連の読み出し動作を開始する。インターフェース制御部４１４は、データブロックが中に格納される読み出しバッファを決定するために、図５ａのテーブルを使用することができる。この手法では、読み出しバッファを戦略的に使用して、不必要なバッファの上書き及びデータの再読み出しを最小限にすることができる。
【００４８】
図５ｂは、インターフェース制御部４１４が読み出しバッファ４４２のコンテンツの追跡のために使用することができるテーブルを示す。テーブルの列は、第１のメモリアドレス５１０及び領域５１２である。各バッファは、バッファリングされたデータブロックのメモリアドレスと、データブロック内のデータワード数とを示すための対応する行をテーブル内に有する。読み出しコマンドをまず受け取ると、インターフェース制御部４１４はこのテーブルを使用して、要求されたアドレスが任意の読み出しバッファにバッファリングされているかどうかを判定することができる。代替として、列５１２を、構成における固定された一定のものとして取り扱うことができ、排除することができる。
【００４９】
図５ａ及び図５ｂのテーブルを、図４内のテーブル４２６によって示されるように、インターフェース制御部４１４内のレジスタ又はメモリに格納することができる。一実施形態では、テーブルメモリを不揮発性とすることができるが、代替の実施形態では、テーブルメモリを揮発性とすることができる。これら代替の実施形態では、電力が無い状態でテーブルコンテンツを保存するために、個別の不揮発性メモリ４２４を提供することができる。個別の不揮発性メモリ４２４を、インターフェース制御部４１４内に含めることができ、又は代替として、個別の不揮発性メモリ４２４を、アレイ３０２内の予備エリアとすることができる。
【００５０】
電力がメモリデバイスに復旧すると、インターフェース制御部４１４は、テーブル４２６のコンテンツと、及び読み出しバッファ４２２の対応するコンテンツとを復元することができる。この処理は、バッファ化メモリインターフェースを、任意の外部装置に対して不揮発性に見せることを可能にする。
【００５１】
図６は、インターフェース制御部４１４の可能な実施形態の構造、機能、及び動作を示すことができる流れ図である。この点に関して、各ブロックは、指定された論理機能（単数又は複数）を実施するための１つ又は複数の実行可能な命令を含むモジュール、セグメント、又はソフトウェア（又はファームウェア）コードの一部を表すことができる。しかしながら、これら流れ図は所望のデータレートをサポートするためにハードウェア内で実施される可能性が高い。ハードウェアでの実施は、ハードウェアステートマシンの形態をとることができる。所定の代替の実施形態では、ブロックに記された機能が、記された順序とは異なる順序で実行されることが可能なことにも留意されるべきである。例えば、図６に連続して示される２つのブロック６１２及び６１６を、実質的に同時に、又は逆の順序で実際には実行することができる。
【００５２】
まず最初に、メモリデバイスに電源が投入されると、インターフェース制御部４１４がブロック６０２において動作を開始し、復元動作を阻止するかどうかを判定するためのチェックをすることができる。例えば、復元動作を、適切な信号線（例えば、インターフェース制御部４１４へのコマンド信号のアサート）、又は不揮発性レジスタにおける適切なフラグの設定によって阻止することができる。このような阻止は、デバイスをより高速に開始するために望まれる可能性がある。阻止しない場合には、インターフェース制御部４１４はブロック６０４を開始し、メモリ４２４から格納されているテーブルコンテンツを検索し、読み出しバッファ４２２を満たし、プロセス内においてテーブル４２６を復元する。
【００５３】
特定の実施形態では、インターフェース制御部は、メモリデバイスがビジーであることをプロセッサに示すために、「ビジー」信号をアサートするか、又は「レディ」信号のアサートを遅らせることができる。代替の実施形態では、復元動作をデフォルトで阻止することができ、「復元」コマンドを受け取った時にのみ復元動作を実行することができる。
【００５４】
ブロック６０４から、又は復元動作が阻止される場合にはブロック６０２から、インターフェース制御部４１４はブロック６０６を開始する。インターフェース制御部４１４は、ブロック６０６において、メモリ処理コマンドを受け取るために待つことができる。コマンドを受け取ると、ブロック６０８において、インターフェース制御部４１４は、コマンドがパワーダウンコマンドであるかどうかを判定することができる（このコマンドは、パワーロスが起ろうとしている場合を示すアサートされた信号線の形態をとることができる）。代替の実施形態では、インターフェース制御部４１４は、パワーロス検出回路、及びパワーロスが検出された後にデバイスに情報を格納することを可能にするための十分な内蔵キャパシタンスを備えることができる。
【００５５】
パワーダウンコマンドを受け取る（又はパワーロスが検出される）場合、ブロック６１０において、インターフェース制御部４１４は、図５ｂにおける少なくともテーブルの列５１０を不揮発性メモリ内に格納することができる。他のテーブルコンテンツを格納することもでき、任意の他の保留中の書き込み動作を、メモリデバイスの動作を停止する前に完了することができる。
【００５６】
ブロック６０８において、インターフェース制御部４１４が、コマンドがパワーダウンコマンドではないと決定する場合には、次にブロック６１２において、インターフェース制御部は、コマンドが書き込みコマンドであるかどうかを判定することができる。書き込みコマンドであるならば、ブロック６１４において、インターフェース制御部４１４は、おそらくオプションの書き込みバッファ４２４に書き込みデータを受け取らせることによって書き込み動作を開始することができる。インターフェース制御部４１４内の個別のステートマシンが、書き込みバッファ内においてデータが存在することを検出し、順にＥＣＣエンコーダ、行及び列デコーダ、及び書き込みドライバをトリガすることができる。インターフェース制御部は、別のコマンドを受け取るための準備ができると、ブロック６０６に戻ることができる。
【００５７】
ブロック６１２において、受け取られたコマンドが書き込みコマンドではないと決定された場合には、制御はブロック６１６に渡され、そこでインターフェース制御部４１４が、受け取られたコマンドが読み出しコマンドであるかどうかを判定することができる。読み出しコマンドであるならば、ブロック６１８において、インターフェース制御部４１４は、図５ａのテーブルを使用して、どの読み出しバッファが（もしあれば）読み出しコマンドによってアクセスされているメモリのエリアに関連するのかを判定することができる。ブロック６２０において、インターフェース制御部４１４は、図５ｂのテーブルを使用して、適切な読み出しバッファが、要求されたバッファリングされたアドレスからのデータを有するかどうかを判定することができる。データがバッファリングされていない場合には、ブロック６２２において、インターフェース制御部４１４は、一連の読み出し動作を開始して、要求されたアドレス及び付近のアドレスからのデータを取り込むことができる。インターフェース制御部４１４は更に、適切な読み出しバッファにデータを、ＥＣＣデコーダによってデコードされたものとして受け取らせることができる。
【００５８】
ブロック６２４において、インターフェース制御部４１４は、読み出しコマンドに応答して、読み出しバッファに、要求されたアドレスからのデータを出力データ信号として提供させることができる。インターフェース制御部４１４は、別のコマンドを受け取るための準備ができると、制御はブロック６０６に戻る。
【００５９】
受け取られたコマンドが読み出しコマンドでもなければ、書き込みコマンドでもない場合、ブロック６２６において、インターフェース制御部４１４は、受け取られたコマンドがコンフィギュレーションコマンドであるかどうかを判定することができる。このようなコマンドを、インターフェース制御部４１４の様々な動作パラメータを設定するために使用することができる。調整可能なパラメータの例には、バッファとメモリ領域との関連付け、バッファ動作のイネーブル又はディセーブル、読み出し待ち時間を含めることができる。ブロック６２８において、インターフェース制御部４１４は、コンフィギュレーションデータを、対応するレジスタ内、又はテーブルエントリ内に受け取ることができる。インターフェース制御部４１４は、別のコマンドを受け取るための準備ができると、制御はブロック６０６に戻る。
【００６０】
このように、効果的な不揮発性バッファ化メモリインターフェースを有する集積化メモリデバイスを説明してきた。バッファ化メモリインターフェースを、集積化メモリデバイスの一部として集積することができる。インターフェースは、比較的長い待ち時間を有するメモリ技術において、短縮された平均待ち時間を有利に提供することができる。このような短縮された平均待ち時間を、インターフェース内で用いられるＥＣＣデコーダによるいくつかのアシストされたメモリ構造において見い出すことができる。アシストされたメモリ構造と併用することで、短縮された平均待ち時間は、初期段階にあるメモリ技術の商品化の可能性を高め、それによって新技術の更なる発展を促進することができる。
【００６１】
上記考察は、本発明の原理及び様々な実施形態の例示であることが意図されている。上記開示が完全に理解された場合に、多くの変更及び修正が当業者に明らかになろう。特許請求の範囲は、全てのそのような変更及び修正を含むよう解釈されることを意図するものである。
【図面の簡単な説明】
【００６２】
【図１】様々な開示された実施形態による、メモリを有する例示的なディジタルシステムの外観図である。
【図２】図１のディジタルシステムのブロック図である。
【図３】バッファ化メモリインターフェース無しで、アシストされたメモリのブロック図である。
【図４】様々な開示された実施形態による、アシストされたメモリのブロック図である。
【図５ａ】バッファ管理テーブルの例である。
【図５ｂ】バッファ管理テーブルの例である。
【図６】様々な開示された実施形態による、集積されたメモリ制御の例示的な流れ図である。
【符号の説明】
【００６３】
３０２  メモリアレイ
４２２  揮発性バッファ、読み出しバッファ
４２６  テーブルメモリ
４２８  不揮発性メモリ
【図１】
2005018976.tif 000003
【図２】
2005018976.tif 000004
【図３】
2005018976.tif 000005
【図４】
2005018976.tif 000006
【図５ａ】
2005018976.tif 000007
【図５ｂ】
2005018976.tif 000008
【図６】
2005018976.tif 000009