(57)【要約】【課題】コマンドに迅速に応答するメモリシステムを提供する。【解決手段】メモリシステム１００は、メモリコントローラ１０４と、メモリコントローラ１０４に結合されたアドレスＲＡＭ１０６と、メモリコントローラ１０４に結合された不揮発性メモリ１０８とを備える。不揮発性メモリ１０８は、アドレス部とデータ部を有する。不揮発性メモリ１０８のアドレス部は、有効データのデータ部アドレスとデータ部アドレスをメモリコントローラ１０４に供給する。メモリコントローラ１０４は、データ部アドレスをロードしてアドレスＲＡＭ１０８にてデータ部アドレスを有効データのデータ部アドレスによって定義されるアドレスＲＡＭ１０６内のロケーションに記憶する。メモリコントローラ１０４は、アドレスＲＡＭ１０６内のデータ部アドレスおよびデータブロックのロケーションを使用して不揮発性メモリ１０８のデータ部内のデータブロックを位置特定する。【選択図】図１
2014006902.tif 000002
【特許請求の範囲】
【請求項１】
メモリシステムであって、
メモリコントローラと、
前記メモリコントローラに結合されたアドレス・ランダム・アクセス・メモリ（ＲＡＭ）と、
前記メモリコントローラに結合された不揮発性メモリ（ＮＶＭ）とを備え、
前記不揮発性メモリは、アドレス部とデータ部とを有し、
前記不揮発性メモリの前記アドレス部は、有効データのデータ部アドレスおよびルックアップアドレスを前記メモリコントローラに供給し、
前記メモリコントローラは、前記データ部アドレスをロードして、前記有効データのルックアップアドレスによって定義される前記アドレスＲＡＭ内のロケーションに前記データ部アドレスを記憶し、
前記メモリコントローラは、前記アドレスＲＡＭ内の前記データ部アドレス、およびデータ・ブロック・アドレスのロケーションを使用して前記不揮発性メモリのデータ部内のデータブロックを位置特定する、メモリシステム。
【請求項２】
前記不揮発性メモリの前記データ部に結合されたプロセッサをさらに備え、
前記プロセッサによって供給されたシステムアドレスに応答して、前記アドレスＲＡＭは、ルックアップアドレスによって選択された前記アドレスＲＡＭ内のロケーションからのデータ部アドレスを前記不揮発性メモリに供給する、請求項１に記載のメモリシステム。
【請求項３】
前記システムアドレスは、前記アドレスＲＡＭ内のロケーションを識別する前記ルックアップアドレスを含む、請求項２に記載のメモリシステム。
【請求項４】
前記システムアドレスは、データ部アドレスをさらに含み、
前記メモリシステムは、前記アドレスＲＡＭから供給されたデータ部アドレスを、前記データブロック内の前記ロケーションと組み合わせて前記データ部から有効データを選択する論理ゲートをさらに備える、請求項２に記載のメモリシステム。
【請求項５】
不揮発性メモリ（ＮＶＭ）を有するメモリシステムを動作させる方法であって、
前記ＮＶＭ内の第１のＮＶＭロケーションを識別することであって、該第１のＮＶＭロケーションは第１の有効データを有する、前記識別すること、
アドレス・ランダム・アクセス・メモリ（ＲＡＭ）の第１のＲＡＭロケーションにおいて、前記第１のＮＶＭロケーションのアドレスをロードすること、
前記第１のＲＡＭロケーションを選択するためのシステムアドレスを供給すること、
前記第１のＲＡＭロケーションを選択するための前記システムアドレスに応答して、前記第１のＮＶＭロケーションの前記アドレスを前記アドレスＲＡＭから前記ＮＶＭに供給すること、
前記アドレスＲＡＭからの前記第１のＮＶＭロケーションの前記アドレスの受信に応答して、前記第１のＮＶＭロケーションから前記第１の有効データを供給することを備える、方法。
【請求項６】
前記第１のＮＶＭロケーションを前記識別することは、
前記第１のＮＶＭロケーションが追加の有効データを有することをさらに特徴とし、
前記システムアドレスを前記提供することは、前記システムアドレスが、前記第１のＲＡＭロケーションを選択するための第１の部分と、前記第１の有効データおよび前記追加の有効データの中から前記第１の有効データを選択するための第２の部分とを有することをさらに特徴とする、請求項５に記載の方法。
【請求項７】
バースト動作の一部として、前記第１の有効データおよび前記追加の有効データを前記ＮＶＭロケーション内に書き込むことをさらに含む、請求項６に記載の方法。
【請求項８】
無効データを含むセクタからの前記有効データを、前記有効データのみを含む１つまたは複数のセクタ内にコピーすることによって、前記ＮＶＭ内の有効データを圧縮すること、
前記無効データのみを含む前記セクタの各々に対するステータス識別子を変更することをさらに含む、請求項７に記載の方法。
【請求項９】
前記ＮＶＭに書き込まれることになる第２の有効データを、対応するシステムアドレスを用いて前記メモリコントローラに供給すること、
前記ＮＶＭのアドレスシステムを使用して、前記第２の有効データを前記ＮＶＭのデータ部内の第２のＮＶＭロケーション内に書き込むことをさらに含む、請求項５に記載の方法。
【請求項１０】
前記アドレスＲＡＭに、前記第２の有効データの前記ロケーションをロードすることをさらに含む、請求項９に記載の方法。
【請求項１１】
前記第２の有効データに対応する前記アドレスを供給すること、
前記アドレスＲＡＭから前記第２の有効データの前記ロケーションを取得すること、
前記ＮＶＭから前記第２の有効データを取得するために、前記アドレスＲＡＭから取得された前記第２の有効データの前記ロケーションを前記ＮＶＭに供給することをさらに含む、請求項１０に記載の方法。
【請求項１２】
前記第２の有効データは、前記ＮＶＭのデータ部から取得される、請求項１１に記載の方法。
【請求項１３】
前記データ部はステータス情報を含む、請求項１２に記載の方法。
【請求項１４】
前記データ部はデータブロックを備え、
特定のロケーションに対するアクセスは、前記データブロックおよび前記データブロック内のロケーションの識別の組み合わせである、請求項１３に記載の方法。
【請求項１５】
読み出しの間、前記データブロック内の前記ロケーションが、前記システムアドレスによって供給され、前記データブロックの識別情報が、前記アドレスＲＡＭから供給される、請求項１４に記載の方法。
【請求項１６】
メモリシステムであって、
データ部およびアドレスシステムを有する不揮発性メモリと、
システムアドレスに従ってデータを前記データ部に書き込むデータプロセッサと、
前記不揮発性メモリおよび前記プロセッサに結合されて、前記システムアドレスおよび前記データを受信するメモリコントローラと、
前記メモリコントローラに結合され、且つシステムアドレスに対応するルックアップアドレスを供給するアドレス・ランダム・アクセス・メモリ（ＲＡＭ）とを備え、
前記メモリコントローラは、前記ルックアップアドレスを前記アドレスシステムに供給し、前記ルックアップアドレスによって選択される前記データ部内のロケーションにデータを書き込む、メモリシステム。
【請求項１７】
前記データ部は、ステータス情報を記憶する、請求項１６に記載のメモリシステム。
【請求項１８】
前記データ部は、セクタＩＤ情報を記憶する、請求項１７に記載のメモリシステム。
【請求項１９】
前記データプロセッサは、システムアドレスに従って前記データ部からデータを読み出し、
前記メモリコントローラは、システムアドレスに対応する前記アドレスＲＡＭからデータ部アドレスを取得し、前記データ部アドレスを前記アドレスシステムに供給して読み出しのために前記データ部内のロケーションを識別し、
前記データ部は、前記データ部アドレスに対応するロケーションからデータを前記プロセッサに供給する、請求項１６に記載のメモリシステム。
【請求項２０】
前記データ部は、データブロックを有し、
前記アドレスは各々、データブロック部分およびデータブロック部分内のロケーションを有する、請求項１９に記載のメモリシステム。
【請求項２１】
読み出しの間、前記不揮発性メモリは、前記システムアドレスからの前記データブロック内のロケーションと前記ＲＡＭアドレスからの前記データブロック部分との組み合わせである選択アドレスを受信する、請求項２０に記載のメモリシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示は、一般的にはメモリシステムに関し、より具体的には、エミュレート電気的消去可能（ＥＥＥ）メモリに関する。
【背景技術】
【０００２】
エミュレート電気的消去可能（Emulated electrically erasable:ＥＥＥ）メモリは一般的に、ランダム・アクセス・メモリ（ＲＡＭ）と同等のサイズの標準的な不揮発性メモリの改善された耐久性を有するメモリシステムを提供するように組み合わされたＲＡＭと、電気的に消去可能であるフラッシュメモリのような不揮発性メモリとを使用する。これは、ＲＡＭよりもはるかに大規模な不揮発性メモリを使用して達成されるが、ＥＥＥメモリはあたかもＲＡＭのサイズしかないように動作する。したがって、ＥＥＥメモリは、ＥＥＥメモリによって使用されるものからサイズが低減されているが耐久性は向上している電気的消去可能メモリをエミュレートする。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】米国特許出願公開第２００７／０１４０００７号明細書
【特許文献２】米国特許出願公開第２００７／０１４３５２８号明細書
【特許文献３】米国特許出願公開第２００９／０１０６４８７号明細書
【特許文献４】米国特許出願公開第２０１０／００１１１５５号明細書
【特許文献５】米国特許出願公開第２０１０／０３０６６０４号明細書
【特許文献６】米国特許出願公開第２０１１／０１０７００９号明細書
【特許文献７】米国特許出願公開第２０１１／０１７３３７３号明細書
【特許文献８】米国特許第５７８４６１１号明細書
【特許文献９】米国特許第６９０４４００号明細書
【特許文献１０】米国特許第７０５８７５５号明細書
【特許文献１１】米国特許第７６０００９０号明細書
【発明の概要】
【発明が解決しようとする課題】
【０００４】
ＥＥＥメモリは、ＲＡＭを使用してエミュレートされたメモリの内容を示すが、対象のエミュレートされたＥＥｐｒｏｍが大きくなると非競合的になる。ＲＡＭがなくなるということは、検索ベースの手順を介してアクセス時間が遅くなることを意味する。
【０００５】
したがって、不揮発性フラッシュメモリが電気的消去可能プログラマブル読み出し専用メモリ（ＥＥＰＲＯＭ）と競合可能にするために、上記の問題を改善するＥＥＥメモリを提供することが必要とされている。
【課題を解決するための手段】
【０００６】
本発明の一側面は、メモリシステムである。メモリシステムは、メモリコントローラと、前記メモリコントローラに結合されたアドレス・ランダム・アクセス・メモリ（ＲＡＭ）と、前記メモリコントローラに結合された不揮発性メモリ（ＮＶＭ）とを備え、前記不揮発性メモリは、アドレス部とデータ部とを有し、前記不揮発性メモリの前記アドレス部は、有効データのデータ部アドレスおよびルックアップアドレスを前記メモリコントローラに供給し、前記メモリコントローラは、前記データ部アドレスをロードして、前記有効データのルックアップアドレスによって定義される前記アドレスＲＡＭ内のロケーションに前記データ部アドレスを記憶し、前記メモリコントローラは、前記アドレスＲＡＭ内の前記データ部アドレス、およびデータ・ブロック・アドレスのロケーションを使用して前記不揮発性メモリのデータ部内のデータブロックを位置特定する。
【図面の簡単な説明】
【０００７】
【図１】フラッシュ・メモリ・アレイからデータを読み出すのに有用なシステムの一実施形態を示すブロック図。
【図２】図１のシステム内で使用されることができるフルアドレスのレコードの一実施形態を示す図。
【図３】図１のシステム内で使用されることができるアドレス・システム・レコードの一実施形態を示す図。
【図４】図１のシステム内で使用されることができるアドレス・ランダム・アクセス・メモリの一実施形態を示す図。
【図５】図１のシステム内で使用されることができるフラッシュ・メモリ・アレイのデータ部の一実施形態を示す図。
【図６】図５のフラッシュ・メモリ・アレイのデータ部内で使用されることができるレコード・ステータス・フォーマットの一実施形態を示す図。
【図７】図５のフラッシュ・メモリ・アレイのデータ部内で使用されることができるデータブロックのためのフォーマットの一実施形態を示す図。
【図８】フラッシュ・メモリ・アレイへデータを書き込むのに有用なシステムの別の実施形態を示すブロック図。
【図９】図８のシステムを使用して書き込み動作を実行するための方法の一実施形態を示す流れ図。
【発明を実施するための形態】
【０００８】
本発明は例として示されており、添付の図面によって限定されない。図面において、同様の参照符号は類似の要素を示す。図面内の要素は簡潔かつ明瞭にするために示されており、必ずしも原寸に比例して描かれてはいない。
【０００９】
一態様では、エミュレート電気的消去可能（ＥＥＥ）メモリは、複数のセクタに分割された不揮発性メモリ（ＮＶＭ）と、ＮＶＭのためのアドレス情報を記憶するためのランダム・アクセス・メモリ（ＲＡＭ）とを有する。アドレス情報は、２クロックサイクルにおいてＮＶＭ内に保持されているデータレコードにアクセスすることを可能にするタイプのＲＡＭメモリ内に記憶される。ＮＶＭおよびアドレスＲＡＭは協働して、レコード作成（record creation）中の電源のサージおよび電源の降下の間に発生する可能性があるデータの損失に対して保護する。コマンドに迅速に応答することを可能にするために、バースト・プログラム・モードと併せて、分散圧縮／消去動作が実施されることができる。これは、図面および以下の記載を参照することによってより良好に理解される。
【００１０】
一実施形態では、フラッシュメモリがＮＶＭとして使用される。一例では、本明細書において使用された場合、プログラミングとは、ビットセルに論理レベル０を記憶することを指し、消去とは、ビットセルに論理レベル１を記憶することを指す。しかしながら、代替の実施形態では、プログラミングがビットセルに論理レベル１を記憶することを指してもよく、消去がビットセルに論理レベル０を記憶することを指してもよい。論理レベル０は論理ローと称される場合もあり、論理レベル１は論理ハイと称される場合もある。
【００１１】
「アサート」または「セット」および「ネゲート」（または「アサート停止」もしくは「クリア」）という用語は、本明細書においては、信号、ステータスビット、または類似の装置をそれぞれ、その論理的に真または論理的に偽の状態にレンダリングすることを指す場合に使用される。論理的に真の状態が論理レベル１である場合、論理的に偽の状態は論理レベル０である。そして、論理的に真の状態が論理レベル０である場合、論理的に偽の状態は論理レベル１である。
【００１２】
図１は、プロセッサ１０２と、不揮発性フラッシュ・メモリ・アレイ１０８およびアドレスＲＡＭ１０６を使用するＥＥＥメモリシステム１１４とを含み、フラッシュメモリ１０８からデータを読み出すのに有用な処理システム１００の一実施形態をブロック図形式で示す。ＥＥＥメモリシステム１１４は、メモリコントローラ１０４と、アドレスＲＡＭ１０６と、フラッシュアレイ１０８（ＮＶＭアレイと称される場合もあり、任意のタイプのＮＶＭがフラッシュメモリの代わりに使用されてよい）とを含む。フラッシュアレイ１０８は、１つまたは複数のデータセクション（data section）１１０と、１つまたは複数のアドレスシステム１１２とを含むことができる。揮発性メモリとみなされ得るＲＡＭ１０６は、メモリコントローラ１０４に双方向的に結合される。メモリコントローラ１０４は、プロセッサ１０２からフルアドレス（full address）のレコード（record）を受信するように、且つアドレスシステム１１２から更新されたデータ・ブロック・アドレスを受信するように結合される。メモリコントローラ１０４は、ルックアップアドレス（lookup address）をアドレスＲＡＭ１０６に供給するように、且つ対応するデータ部ロケーション（data portion location）をゲート１１６に供給するようにさらに結合される。リセット信号が、プロセッサ１０２およびメモリコントローラ１０４に供給される。このリセット信号は、たとえば、システム１００に対する全体的なリセット信号であり得る。ゲート１１６は、アドレスＲＡＭ１０６からデータ部アドレス（data portion address）を受信し、データ部アドレスをデータブロック内の対応するロケーションと組み合わせて、結合アドレス／ブロックロケーション信号を送信して、データセクション１１０内の対応するデータブロック、および指定されるデータブロック内のロケーションにアクセスする。
【００１３】
プロセッサ１０２は、マイクロプロセッサ、デジタル信号プロセッサなどのような任意のタイプのプロセッサであってもよく、または、ＥＥＥメモリシステム１１４にアクセスすることができる任意の他のタイプの相互接続マスタであってもよい。システム１００は、システムバス、もしくは、たとえば、クロスバー、二地点間接続、ならびに光および無線伝送構成要素のような他の形態の相互接続、他のメモリ、１つまたは複数の追加のプロセッサ、１つまたは複数の周辺機器、１つまたは複数の入出力（Ｉ／Ｏ）デバイスなどのような、図１に示されていない構成要素も含むことができる。代替的には、他のモジュールまたは構成要素はシステム１００内に存在しなくてもよい。
【００１４】
動作時、プロセッサ１０２は、アクセス要求（読み出しまたは書き込みアクセス要求）をメモリシステム１１４に送信することができる。プロセッサ１０２からのアクセス要求は、フルアドレスを含み、書き込み要求の場合には関連書き込みデータを含み、メモリコントローラ１０４に供給される。フルアドレスは、ルックアップアドレス、および、ルックアップアドレスに関連付けられるデータブロック内の対応するロケーションを含む。アドレスＲＡＭ１０６は、ルックアップアドレスを対応するデータ部アドレスに変換するテーブルを含む。読み出しアクセスの場合、データセクション１１０は、フルアドレスによって指定されるロケーションに対応するデータをプロセッサ１０２に供給する。書き込みアクセスの場合には、データセクション１１０は、受信された書き込みデータを新たなレコード（record）として受信されたアドレスのロケーションに記憶する。書き込みアクセスの場合、メモリコントローラ１０４は、フラッシュアレイ１０８の更新を検出して、アドレスシステム１１２から更新されたデータ・ブロック・アドレスをアドレスＲＡＭ１０６に供給する。
【００１５】
アドレスシステム１１２が３２ビットのレコードを使用する例として、上位１６ビットが１２８ｋのＥＥＥイメージ（ＥＥＥ  ｉｍａｇｅ）内の６４バイトのロケーションを保持することができる。下位１６ビットがデータ部１１０内の６４バイトのブロックの物理ロケーションを指し示す。６４バイトのブロックを有する１２８ｋのＥＥＥイメージに関して、８ｋのフラッシュメモリは、アドレスシステム１１２内のアドレスロケーションのための２ｋを含むことになる。システム全体は２つ以上のＥＥＥイメージを含むことができ、各ＥＥＥイメージに対して８ｋのフラッシュメモリを必要とすることになる。
【００１６】
全部で６４バイトのブロックの物理アドレスが、上位ワード内の６４バイトのオフセットに対応するアドレスにおいてアドレスＲＡＭ内に転送される。転送プロセスは、８ｋのアドレスシステム１１２内でレコードあたり１サイクルのオーバヘッドを有するテストロジックを使用して自動化されることができる。したがって、８ｋのアドレスシステム１１２を有するシステムに関してアドレスＲＡＭ１０６を更新するには、２５ｍＨｚのクロック速度で１０μｓが必要になることになる。
【００１７】
データ部１１０内のブロックは、（１）ルックアップアドレスから上位アドレスビットを除去してアドレスＲＡＭ１０６内のデータ部アドレスを判定するステップと、（２）データ部アドレスをデータセクション１１０内のデータのロケーションと組み合わせてデータセクション１１０内の特定のデータにアクセスするステップとを含む２つの自動ステップにおいて標準的な電気的消去可能プログラマブル読み出し専用メモリとして読み出されることができる。自動ステップは各々１クロックサイクルを必要とする。
【００１８】
図２は、図１のシステム１００内で使用されることができるフルアドレス２００の一実施形態を示す。フルアドレス２００はプロセッサ１０２から読み出し要求または書き込み要求とともにメモリコントローラ１０４に送信され、ルックアップアドレス、およびアクセス先のデータブロック内のロケーションを含む。ルックアップアドレスは、アドレスＲＡＭ１０６においてデータ部アドレスに変換される。データ部アドレスとデータブロック内のロケーションとはゲート１１６によって組み合わされて、フラッシュアレイ１０８のデータセクション１１０内のデータブロック内の特定のロケーションにアクセスするために使用される。
【００１９】
図３は、図１のシステム１００内で使用されることができるアドレス・システム・レコード３００の一実施形態を示す。アドレス・システム・レコード３００は、アドレスシステム１１２（図１）内に実装されることができる複数のアドレス・システム・レコード３００のうちの１つであり、ルックアップ・アドレス・フィールド、データ部アドレスフィールド、ステータスフィールド、およびブロック選択フィールドを含むことができる。ルックアップ・アドレス・フィールドおよびデータブロック内のロケーションからの情報がアドレスＲＡＭ１０６によって提供され、レコード３００内のルックアップアドレスおよびデータ部アドレスフィールドにデータ投入される。レコード３００内のステータスフィールドおよびデータ部アドレスフィールドに対する情報はメモリコントローラ１０４によって提供される。限定ステータスビット（ｑｕａｌｉｆｙｉｎｇ  ｓｔａｔｕｓ  ｂｉｔ）は、アドレスシステム１１２内にレコードが存在するかどうかを判定するのに使用されることができ、したがって、すべて０であるとレコードがないことを指示することができる。
【００２０】
図４は、ルックアップアドレス（０）〜（ｎ）および対応するデータ部アドレス（０）〜（ｎ）のテーブルを含む、図１のシステム内で使用されることができるアドレスＲＡＭ１０６の一実施形態を示す。アドレスＲＡＭ１０６がメモリコントローラ１０４からルックアップアドレスを受信すると、アドレスＲＡＭ１０６は対応するデータ部アドレスを取り出し、当該データ部アドレスをゲート１１６に送信する。なお、データ部アドレスおよびデータブロック内のロケーションは、ゲート１１６を介する代わりに別個にデータセクション１１０に送信されることができる。ルックアップアドレスおよびデータ部アドレスの数およびサイズは、フラッシュアレイ１１０のサイズに基づくことができる。
【００２１】
図５は、ステータスレコード５００およびデータブロック（０）〜（ｎ）を含み、図１のシステム１００内で使用されることができるフラッシュ・メモリ・アレイ１０８のデータ部１１０の一実施形態を示す。ステータスレコード５００は、セクタ識別フィールド５０２と、レコード・ステータス・フィールド５０４〜５０８と、未使用バイト５１０とを含むことができる。セクタ識別フィールド５０２は、フラッシュ・メモリ・アレイ１０８内のセクタを識別する。レコード・ステータス・フィールド５０４〜５０８は、フラッシュ・メモリ・アレイ１０８内の対応するブロックへの書き込みが開始または完了したか否かに関する情報を含む。
【００２２】
図６は、図５に示されるフラッシュ・メモリ・アレイのデータ部１１０内で使用されることができるレコード・ステータス・フィールド５０４〜５０８のためのフォーマットの一実施形態を示す。一例として、レコード・ステータス・フィールド５０８は４ビットを有することができ、２ビットは書き込みコマンドのような動作が開始したか否かを指示するために確保され、もう２ビットは動作が完了したか否かを指示するために確保される。レコード・ステータス・フィールド５０４〜５０８のための他の適切なフォーマットが使用されることができる。
【００２３】
未使用バイト５１０は、データ部１１０のサイズに応じて、セクタ消去カウントを追跡する追加のブロックのためのレコード・ステータス・フィールドとして使用されるか、または、未使用のままにすることができる。
【００２４】
図７は、図５のフラッシュ・メモリ・アレイ１０８のデータ部１１０内で使用されることができるデータブロック（０）のためのフォーマットの一実施形態を示す。なお、データブロック（１）〜（ｎ）に同じフォーマットを使用することができる。データブロック（０）はデータ部アドレスを使用してアクセスされ、データブロック（０）内の各バイトは、ゲート１１６（図１）または他の適切な方法またはメカニズムによって提供されるような、データブロック（０）内のロケーションを使用してアクセスされることができる。データブロック（０）は６４バイトを有するものとして図示されているが、データブロック（０）、ならびにデータブロック（１）〜（ｎ）は、任意の適切なバイト数を有することができる。
【００２５】
図８は、フラッシュメモリ１０８へデータを書き込むのに有用なシステム１００の別の実施形態をブロック図形式で示す。プロセッサ１０２は、メモリコントローラ１０４にデータを書き込むように、書き込まれることになるデータをアドレスとともに供給する。メモリコントローラ１０４は、データをフラッシュアレイ１０８内のデータ部１１０の所望のアドレスに送信する。特定のデータブロックに関する書き込みが開始または完了したか否かのようなステータス情報も、データ部１１０に送信される。データ部１１０の経過を追うために、ルックアップおよびデータ部アドレスならびにステータス情報は、フラッシュアレイ１０８のアドレスシステム１１２にも送信されることができる。メモリコントローラ１０４は、アドレスＲＡＭ１０６とも通信して、システムリセット、または、１つまたは複数のルックアップアドレスおよび／もしくは対応するデータ部アドレスの更新を必要とする他の事象の後に、更新されたデータ・ブロック・アドレスを供給することができる。
【００２６】
図９は、図８のシステム１００を使用して書き込み動作を実行するための方法９００の一実施形態のフロー図を示す。プロセス９０２は、フラッシュ・メモリ・アレイ１０８へのデータの書き込みを含むレコードコマンドを生成することを含むことができる。レコードコマンドは、データおよびアドレスとともにプロセッサ１０２からメモリコントローラ１０４へコマンドを送信することによって生成されることができる。
【００２７】
プロセス９０４は、書き込み動作が進行中であることを指示するためにレコード・ステータス・フィールド５０４〜５０８（図５）に関する設定を決定することを含み、書き込み動作が完了すると、対応するブロック内で更新されたデータが利用可能になる。
【００２８】
プロセス９０６は、データブロックに対するプログラミングまたは書き込みを含むことができる。なお、データはフラッシュアレイ内の単一のビットに書き込まれることができるか、または、バースト・プログラム・モードを使用して一群のビットに書き込むことができ、アドレスは、アドレスによって識別されるブロック内で書き込まれるべき開始ビットを与える。対応するレコード・ステータス・フィールド５０２〜５０８も、プロセス９０６の一部としてデータ部１１０内に書き込まれることができる。単一の書き込み動作は、バースト書き込みモードとは対照的に、レコード・ステータス・フィールド５０２〜５０８のうちの１つに書き込むように使用されることができる。
【００２９】
プロセス９０８は、データ部アドレスおよびデータブロック内のロケーションをアドレスシステム１１２に書き込むことを含むことができる。データ部アドレスおよびデータブロック内のロケーションは、データ部１１０に書き込まれているデータに対応する。なお、データ部アドレスはアドレスシステム１１２においてルックアップアドレスを使用して容易に決定されるため、この情報を決定するために検索は必要ない。
【００３０】
プロセス９０９において、メモリコントローラ１０４はレコードステータスを完了に変更し、更新されたレコードステータスをフラッシュアレイ１０８に送信する。
プロセス９１０は、圧縮動作が実行されるべきか否か、または消去動作が実行されるべきか否かを判定することを含むことができる。プロセス９１０における圧縮動作が実行されることになるという判定に従って、プロセス９１２は、所定の圧縮アルゴリズムに従って入力データを圧縮することができ、それによって、メモリブロック内に記憶されるデータのサイズが低減される。プロセス９１０における消去動作が実行されることになるという判定に従って、プロセス９１４は消去動作を実行し、その間に、単一のブロック内の１つまたは複数のページ内に記憶されているデータが順次消去される。
【００３１】
プロセス９１２もしくは９１４が実行された後、または、プロセス９１０が書き込み動作によって圧縮動作も消去動作も実行されるべきでないと判定した後、プロセス９１６は、アドレスシステム１１２からの更新されたルックアップアドレスを用いてメモリコントローラ１０４およびアドレスＲＡＭ１０６を更新することを含む。
【００３２】
一例として、下記の表１は方法９００を実行するのに必要とされる時間を示す。
【００３３】
【表１】
2014006902.tif 000003
システム１００がコピーダウンプロセス（ｃｏｐｙ  ｄｏｗｎ  ｐｒｏｃｅｓｓ）に使用された場合、データ部アドレスおよび対応するルックアップアドレスがアドレスＲＡＭ１０６に供給される必要があり、これは、アドレスシステム１１２内のアクティブなセクタ内のレコードをアドレスＲＡＭ１０６にコピーすることのみによって達成されることができる。データレコードのロケーションはアドレスＲＡＭ１０６から取得することができるため、検索は必要ない。アドレスレコードは一意であり、したがって、圧縮中に容易に追加および区別されることができる。
【００３４】
ここまでで、データ部１１０内のＥＥＥイメージ（複数の場合もあり）を管理するためにアドレスおよびデータに対して別個の記録システムを使用するシステムおよび方法が提供されたことを理解されたい。データ部１１０に対する読み出しアクセスはアドレスＲＡＭ１０６を介して実行され、それによって、より大きなＥＥスペースが、大規模なＲＡＭを用いることなくエミュレートされるとともに、依然として高速の読み出しアクセスを有することが可能になる。レコード・ステータス・フィールド５０４〜５０８が、電力サージまたは降下の間にデータ部１１０が確実に破壊されないようにするのを助ける。加えて、リセット時にアドレスレコードをコピーする必要があるのみであるため、データに関するコピーダウンがなくなる。１つまたは複数のＥＥＥイメージ内の最近のデータを求める検索は、システム１００においていかなる時点においても行われる必要がない。したがって、システム１００は、既知のＥＥＰＲＯＭアレイを上回って性能を向上しながら、既に可能なよりもはるかに大規模なＥＥＥシステムをエミュレートする。
【００３５】
いくつかの実施形態では、メモリシステムは、メモリコントローラ１０４と、メモリコントローラ１０４に結合されたアドレスＲＡＭ１０６と、メモリコントローラに結合された不揮発性メモリ１０８とを備える。不揮発性メモリは、アドレス部１１２とデータ部１１０とを有する。不揮発性メモリ１０８のアドレス部１１２は、有効データのデータ部アドレスおよびルックアップアドレスをメモリコントローラに供給する。メモリコントローラは、データ部アドレスをロードして、アドレスＲＡＭにおいてデータ部アドレスを有効データのデータ部アドレスによって定義されるアドレスＲＡＭ内のロケーションに記憶する。メモリコントローラは、アドレスＲＡＭ内のデータ部アドレス、およびデータブロックのロケーションを使用して不揮発性メモリのデータ部内のデータブロックを位置特定する。
【００３６】
別の態様では、メモリシステムは、不揮発性メモリのデータ部に結合されたプロセッサをさらに備えることができる。プロセッサによって提供されるシステムアドレスに応答して、アドレスＲＡＭは、不揮発性メモリに、システムアドレスによって選択されるアドレスＲＡＭ内のロケーションからのデータ部アドレスを供給する。
【００３７】
別の態様では、システムアドレスは、アドレスＲＡＭ内のロケーションを識別するルックアップアドレスを含むことができる。
別の態様では、システムアドレスはデータ部アドレスをさらに含み、メモリシステムは、アドレスＲＡＭから提供されるデータ部アドレスを、上記データ部アドレスと組み合わせてデータ部１１０から有効データを選択する論理ゲート１１６をさらに備えることができる。
【００３８】
他の実施形態では、不揮発性メモリ（ＮＶＭ）を有するメモリシステム１００を動作させる方法は、ＮＶＭ内の第１のＮＶＭロケーションを識別することであって、第１のＮＶＭロケーションは第１の有効データを有する、前記識別すること、アドレスＲＡＭ１０６の第１のＲＡＭロケーションにおいて、第１のＮＶＭロケーションのアドレスをロードすること、第１のＲＡＭロケーションを選択するためのシステムアドレスを供給すること、第１のＲＡＭロケーションを選択するためのシステムアドレスに応答して、第１のＮＶＭロケーションのアドレスをアドレスＲＡＭからＮＶＭに提供すること、アドレスＲＡＭからの第１のＮＶＭロケーションのアドレスの受信に応答して、第１のＮＶＭロケーションから第１の有効データを提供することを含むことができる。
【００３９】
別の態様では、第１のＮＶＭロケーションを識別することは、第１のＮＶＭロケーションが追加の有効データを有することをさらに特徴とし、システムアドレスを提供することは、システムアドレスが、第１のＲＡＭロケーションを選択するための第１の部分と、第１の有効データおよび追加の有効データの中から第１の有効データを選択するための第２の部分とを有することをさらに特徴とする。
【００４０】
別の態様では、方法は、バースト動作の一部として、第１の有効データおよび追加の有効データをＮＶＭロケーション内に書き込むことをさらに含むことができる。
別の態様では、方法は、無効データを含むセクタからの有効データを、有効データのみを含む１つまたは複数のセクタ内にコピーすることによって、ＮＶＭ内の有効データを圧縮すること、無効データのみを含むセクタの各々に対するステータス識別子を変更することをさらに含むことができる。
【００４１】
別の態様では、方法は、ＮＶＭに書き込まれることになる第２の有効データを、対応するシステムアドレスを用いてメモリコントローラに供給すること、ＮＶＭのアドレスシステムを使用して、第２の有効データをＮＶＭのデータ部内の第２のＮＶＭロケーション内に書き込むことをさらに含むことができる。
【００４２】
別の態様では、方法は、アドレスＲＡＭに、第２の有効データのロケーションをロードすることをさらに含むことができる。
別の態様では、方法は、第２の有効データに対応するアドレスを提供すること、アドレスＲＡＭから第２の有効データのロケーションを取得すること、ＮＶＭから第２の有効データを取得するために、アドレスＲＡＭから取得された第２の有効データのロケーションをＮＶＭに提供することをさらに含むことができる。
【００４３】
別の態様では、第２の有効データは、ＮＶＭのデータ部１１０から取得されることができる。
別の態様では、データ部はステータス情報を含むことができる。
【００４４】
別の態様では、データ部はデータブロックを備えることができ、特定のロケーションに対するアクセスは、データブロックおよびデータブロック内のロケーションの識別の組み合わせを含む。
【００４５】
別の態様では、読み出しの間、データブロック内のロケーションはシステムアドレスによって供給され、データブロックの識別情報はアドレスＲＡＭから供給される。
また他の実施形態では、メモリシステム１００は、データ部１１０およびアドレスシステム１１２を有する不揮発性メモリ１０８と、システムアドレスに従ってデータをデータ部に書き込むデータプロセッサ１０２と、不揮発性メモリおよびプロセッサに結合されてシステムアドレスおよびデータを受信するメモリコントローラ１０４と、メモリコントローラに結合され、且つシステムアドレスに対応するルックアップアドレスを供給するアドレスＲＡＭ１０６とを備える。メモリコントローラは、ルックアップアドレスをアドレスシステムに供給することができ、ルックアップアドレスによって選択されるデータ部内のロケーションにデータを書き込む。
【００４６】
別の態様では、データ部はステータス情報を記憶することができる。
別の態様では、データ部はセクタＩＤ情報を記憶する。
別の態様では、データプロセッサは、システムアドレスに従ってデータ部からデータを読み出すことができ、メモリコントローラは、システムアドレスに対応するアドレスＲＡＭからデータ部アドレスを取得することができ、データ部アドレスをアドレスシステムに供給して読み出しのためにデータ部内のロケーションを識別し、データ部は、データ部アドレスに対応するロケーションからデータをプロセッサに供給することができる。
【００４７】
別の態様では、データ部はデータブロックを有することができ、アドレスは各々、データブロック部分およびデータブロック部分内のロケーションを有することができる。
別の態様では、読み出しの間、不揮発性メモリは、システムアドレスからのデータブロック内のロケーションとＲＡＭアドレスからのデータブロック部分との組み合わせ１１６である選択アドレスを受信することができる。
【００４８】
本発明を実装する装置は、大部分について、当業者に既知の電子コンポーネントおよび回路から成っているため、本発明の基礎となる概念の理解および評価のために、ならびに本発明の教示を分かりにくくせず当該教示から注意を逸らさせないために、回路の詳細は上記で例示されているように必要と考えられる範囲を超えては説明されない。
【００４９】
上記の実施形態のうちのいくつかは、規定通り、さまざまな異なる情報処理システムを使用して実装することができる。たとえば、図１およびその説明は、例示的な情報処理アーキテクチャを記載しているが、この例示的なアーキテクチャは本発明のさまざまな態様の説明における有用な参照を提供するためにのみ提示されている。無論、このアーキテクチャの記載は説明の目的のために簡略化されており、これは、本発明に従って使用することができる多くの異なる種類の適切なアーキテクチャのうちのほんの１つにすぎない。論理ブロック間の境界は例示にすぎないこと、および、代替的な実施形態は、論理ブロックもしくは回路要素を融合し、またはさまざまな論理ブロックもしくは回路要素に対する代替的な機能の分解を課してもよいことを、当業者は認識しよう。
【００５０】
本明細書において、具体的な実施形態を参照して本発明を説明したが、添付の特許請求の範囲に明記されているような本発明の範囲から逸脱することなくさまざまな改変および変更を為すことができる。したがって、本明細書および図面は限定的な意味ではなく例示とみなされるべきであり、すべてのこのような改変が本発明の範囲内に含まれることが意図されている。本明細書において具体的な実施形態に関して記載されているいかなる利益、利点、または問題に対する解決策も、任意のまたはすべての請求項の重要な、必要とされる、または基本的な特徴または要素として解釈されるようには意図されていない。
【００５１】
本明細書において使用される場合、「結合されている」という用語は、直接結合または機械的結合に限定されるようには意図されていない。
別途記載されない限り、「第１の」および「第２の」のような用語は、そのような用語が説明する要素間で適宜区別するように使用される。したがって、これらの用語は必ずしも、このような要素の時間的なまたは他の優先順位付けを示すようには意図されていない。
【符号の説明】
【００５２】
１００…メモリシステム、１０４…メモリコントローラ、１０６…アドレス・ランダム・アクセス・メモリ、１０８…不揮発性メモリ。
【図１】
2014006902.tif 000004
【図２】
2014006902.tif 000005
【図３】
2014006902.tif 000006
【図４】
2014006902.tif 000007
【図５】
2014006902.tif 000008
【図６】
2014006902.tif 000009
【図７】
2014006902.tif 000010
【図８】
2014006902.tif 000011
【図９】
2014006902.tif 000012