(57)【要約】      （修正有）【課題】選択的メモリアクセスに関連するデバイス、システム、方法を提供する。【解決手段】フラッシュメモリにおける速いアクセスページをプログラムまたは遅いアクセスページのどちらをプログラムするかを示す表示を検出する。表示の検出に応じて、データは、揮発性メモリから（１）フラッシュメモリの遅いアクセスページはスキップして速いアクセスページにプログラムされるか、または、（２）速いアクセスページはスキップして遅いアクセスページにプログラムされる。【選択図】図５
2010067263.tif 000002
【特許請求の範囲】
【請求項１】
マルチレベルセルフラッシュメモリ（ＭＬＣフラッシュメモリ）における速いアクセスページおよび遅いアクセスページのいずれをプログラムするかを示す表示を検出する段階と、
検出された前記表示に応じて、データを、揮発性メモリから（１）前記ＭＬＣフラッシュメモリの前記遅いアクセスページはスキップして前記速いアクセスページにプログラムするか、または、（２）前記速いアクセスページはスキップして前記遅いアクセスページにプログラムする段階と、
を備え、
前記速いアクセスページは、前記遅いアクセスページより速くプログラムされる、
方法。
【請求項２】
前記データを前記揮発性メモリから前記ＭＬＣフラッシュメモリにプログラムする段階が実行されることにより、前記データは、速いアクセスページアドレスが大きくなる順に前記速いアクセスページにプログラムされ、前記遅いアクセスページはスキップされる、請求項１に記載の方法。
【請求項３】
前記検出する段階は、前記揮発性メモリに関連する電力品質が閾値条件を満たすことを検出する段階と、
前記閾値条件を満たすことを検出する段階に応じて、前記遅いアクセスページをスキップすることにより、前記データを前記揮発性メモリから前記速いアクセスページに再プログラムする段階と、
を有する、請求項１に記載の方法。
【請求項４】
前記データは、少なくとも２つの異なる速いアクセスページに、少なくとも一部並行してプログラムされる、請求項１に記載の方法。
【請求項５】
期間を決定する段階をさらに備え、前記期間は、連続するメモリページのアクセス速度に基づき、前記データは、前記期間の関数として前記速いアクセスページにプログラムされる、請求項１に記載の方法。
【請求項６】
一のページのアドレスに関連するモジュロ演算結果を算出し、アクセスが速いアクセスページかどうかを決定する段階をさらに備える、請求項５に記載の方法。
【請求項７】
前記揮発性メモリに関連する前記電力品質が前記閾値条件を満たすことを検出する段階は、電圧レベル、電流のアンペア数、または、ワットレベルのうちの１つを分析する段階を有する、請求項３に記載の方法。
【請求項８】
前記プログラムする段階は、
前記データのブロックを前記ＭＬＣフラッシュメモリの前記速いアクセスページにプログラムする要求の検出に応じて、前記データのブロックを前記速いアクセスページにプログラムする段階と、
前記速いアクセスページに前記データをプログラムする明示の要求がない場合、アクセス速度に関係なく、前記速いアクセスページに存在する前記データのブロックを前記ＭＬＣフラッシュメモリにおける他の使用可能なページに選択的に再プログラムする段階と、
を有する、請求項１に記載の方法。
【請求項９】
前記速いアクセスページから、再プログラムされた前記データのブロックを消去する段階をさらに備える、請求項８に記載の方法。
【請求項１０】
前記データのブロックを前記速いアクセスページにプログラムする前記要求を検出する段階は、
前記要求に関連する速いアクセスビットを検出する段階をさらに有する、請求項８に記載の方法。
【請求項１１】
マルチレベルメモリセルデバイス（ＭＬＭＣＤ）にアクセスするために使用可能なＮ個のアクセス速度を識別するフラッシュ決定ロジックと、
メモリコマンドの受信に応じて、前記ＭＬＭＣＤにアクセスするフラッシュ制御ロジックと、
を備え、
前記ＭＬＭＣＤは、前記Ｎ個のアクセス速度のうちの１つの速度を用いてアクセスされ、前記Ｎ個のアクセス速度のうちの前記１つの速度は、前記メモリコマンドにおける少なくとも１つのパラメータに基づき選択される、
装置。
【請求項１２】
前記Ｎ個のアクセス速度は、クロックサイクル数を示す整数に対応する、請求項１１に記載の装置。
【請求項１３】
前記Ｎ個のアクセス速度は、ＭＬＭＣＤアクセスタイプに基づく、請求項１１に記載の装置。
【請求項１４】
前記ＭＬＭＣＤアクセスタイプは、プログラミングおよび読み取りを含む、請求項１３に記載の装置。
【請求項１５】
前記Ｎ個のアクセス速度は、遅いアクセス速度のグループおよび速いアクセス速度のグループからなり、前記遅いアクセス速度のグループは、前記速いアクセス速度のグループより遅く前記ＭＬＭＣＤにアクセスし、前記フラッシュ制御ロジックは、アプリケーションソフトウェアからクリティカル電力表示信号を受信した場合、前記遅いアクセス速度のグループによって前記ＭＬＭＣＤにアクセスする、請求項１１に記載の装置。
【請求項１６】
動作電力レベルを示す信号を受信する電力表示入力と、
速いアクセスページおよび遅いアクセスページを有するマルチレベルセル（ＭＬＣ）フラッシュメモリと、
揮発性メモリに関連する電力品質が閾値条件を満たすことの検出に応じて、前記揮発性メモリから前記速いアクセスページにデータをプログラムするプログラムロジックと、
を備え、
前記速いアクセスページは、前記遅いアクセスページより速くプログラムされるよう設定される、
装置。
【請求項１７】
前記閾値は、電流レベル、電圧レベル、および、ワットレベルのうちの１つである、請求項１６に記載の装置。
【請求項１８】
前記プログラムロジックは、前記電力表示入力にクリティカル電力表示がある間は、前記データを前記遅いアクセスページにプログラムするよう設定される、請求項１６に記載の装置。
【請求項１９】
前記遅いアクセスページに存在するデータを、アクセス速度に依らずに他の使用可能なページに選択的にプログラムする転送ロジックをさらに備え、前記データは、前記プログラムロジックがアイドル状態であるとの決定に応じてプログラムされる、請求項１６に記載の装置。
【発明の詳細な説明】
【関連出願】
【０００１】
本出願は、２００８年７月１８日に出願された米国特許仮出願番号第６１／０８２，１３５号の優先権を主張し、その全体の開示内容は、参照によりここに組み込まれる。
【背景技術】
【０００２】
デジタルデータは、多くの場合、メモリに格納され、メモリから読み出される。一般的に、メモリは、シリコンチップを用いて製造される。シリコン上でエッチングされた半導体材料は、チップ内に数多くのトランジスタを実装できるようにし、高密度メモリを実現しうる。トランジスタは、ＮＡＮＤゲート、インバータ、および、メモリを実装するのに用いられる他の機能を形成するよう構成されうる。
【０００３】
１つのメモリセルに２以上のビットを格納すると、メモリセル内に格納できるデータ密度が増す。しかしながら、データセルのアクセスおよび書き込み時間は不均一になる。例えば、メモリセルの４つの状態がそれぞれ１１、１０、００、０１で表される２ビット／セルの場合、メモリセルの最上位ビット（ＭＳＢ）は、最下位ビット（ＬＳＢ）より速くアクセスされる場合がある。これは、ＭＳＢが中間閾値を上回るかどうかを決定するのに必要な比較は１つだけだからである。２つめの比較は、ＬＳＢが低い閾値（ＭＳＢが中間閾値をより低い場合）を上回るかどうか、または、高い閾値（ＭＳＢが中間閾値より高い場合）を上回るかどうかを決定するのに必要とされる。
【０００４】
フラッシュメモリは、多くの場合、ライン（別名ワードライン）構造により設計されており、その場合、ワードラインに接続されるすべてのセルが同時にアクセス（読み出しおよびプログラム）されることが可能である。マルチレベルセル（ＭＬＣ）メモリセルの場合、ワードラインにおけるすべてのセルのＭＳＢビットは、第１のデータページを形成し、ＬＳＢビットは第２のデータページを形成する。ＭＳＢとＬＳＢとは異なるアクセス時間を有するので、２つのデータページのアクセス時間も異なってくる。したがって、複数の可能なアクセス時間が存在する場合、特定のメモリアクセスにかかるアクセス時間は、さまざまになる。いくつかのアプリケーションでは、メモリアクセス時間がさまざまであることは容認できない場合もある。より優れたメモリアクセス方法が望まれる。
【発明の概要】
【０００５】
一実施形態では、方法は、マルチレベルセル（ＭＬＣ）フラッシュメモリにおける速いアクセスページまたは遅いアクセスページのどちらをプログラムするかを示す表示を検出する段階を備え、速いアクセスページは、遅いアクセスページより速くプログラムされる。表示の検出に応じて、揮発性メモリからのデータを（１）遅いアクセスページはスキップして、マルチレベルセル（ＭＬＣ）フラッシュメモリの速いアクセスページにプログラムするか、または、（２）速いアクセスページはスキップして遅いアクセスページにプログラムする段階を備える。
【０００６】
他の実施形態では、検出する段階は、揮発性メモリに関連した電力品質が閾値条件を満たすことを検出し、それに応じて、遅いアクセスページをスキップすることにより、揮発性メモリからのデータを速いアクセスページに再プログラムする。
【０００７】
他の実施形態では、動作をプログラムする段階は、速いアクセスページにデータのブロックをプログラムする要求を検出するに応じて、データのブロックをＭＬＣフラッシュメモリの速いアクセスページにプログラムする段階を有する。その後、速いアクセスページにデータをプログラムする明示の要求がない場合、アクセス速度に関係なく（例えば速度に依らず）、速いアクセスページに存在するデータのブロックをＭＬＣフラッシュメモリの他の使用可能なページに再プログラムする。
【０００８】
他の実施形態では、装置は、マルチレベルメモリセルデバイス（ＭＬＭＣＤ）のアクセスに使用されうるＮ個のアクセス速度を識別するフラッシュ決定ロジックを有する。フラッシュ制御ロジックは、メモリコマンドの受信に応じてＭＬＭＣＤにアクセスするよう機能する。ＭＬＭＣＤは、Ｎ個のアクセス速度のうちの１つの測度を用いてアクセスされ、当該１つのアクセス測度は、メモリコマンドにおける少なくとも１つのパラメータに基づき選択される。
【０００９】
他の実施形態では、装置は、動作電力レベルを示す信号を受信するよう設定された電力表示入力を有する。マルチレベルセル（ＭＬＣ）フラッシュメモリは、速いアクセスページと遅いアクセスページとを有し、速いアクセスページは、遅いアクセスページより速くプログラムされるよう設定される。プログラムロジックは、揮発性メモリに関連した電力品質が閾値条件を満たすことの検出に応じて、揮発性メモリからのデータを速いアクセスページにプログラムするよう機能する。
【００１０】
システムの一実施形態では、システムは、メモリにおける速いアクセスページと遅いアクセスページとを有するフラッシュメモリとインターフェースする。速いアクセスページは、遅いアクセスページより速くアクセスされるよう設定される。ある状況では、システムは、電力がまもなく失われる可能性があることを検出する。電力が失われる可能性の検出に応じて、システムは、揮発性メモリに格納されたデータを移動／コピーし、データがフラッシュメモリの遅いアクセスページではなく速いアクセスページに書き込まれるよう制御する。遅いアクセスページではなく速いアクセスページを用いることにより、電源異常の前に揮発性データがバックアップされる良好な機会を提供する。
【００１１】
他の実施形態では、システムは、メモリ要求に応じるよう設定される。例えば、システムは、速いアクセスページに格納されたデータを要求するアプリケーションからメモリ要求を受信してよい。例えば、ストリーミングビデオデータが受信され、受信に応じて格納されるよう要求される。ストリーミングビデオデータは、速いアクセスメモリに格納される。システムは、その後必要に応じて、後処理およびビデオ圧縮のために遅いアクセスページにビデオデータを転送してよい。
【００１２】
さらなる他の実施形態では、システムは、電力クリティカルアプリケーションを実行するよう設定される。システムは、電力クリティカルアプリケーションから、システムが低電力モードで稼働していることの表示を受信してよい。表示を受信すると、システムは、速いアクセスページではなく遅いアクセスページの使用を支持し始めるよう設定される。このように、システムは、データ記憶の制御を修正して遅いアクセスページを用い、速いアクセスページの使用を避けるかまたは少なくとも減らす。
【図面の簡単な説明】
【００１３】
本願明細書に組み込まれ、その一部をなす添付の図面は、システム、方法のさまざまな例、および、本発明のさまざまな側面の実施形態の他の例を示すことを理解されたい。図示される構成要素の境界（ボックス、ボックス群、または、他の形状）は、境界の一例を表すと理解できよう。当業者であれば、いくつかの例における一構成要素は、多数の構成要素として設計されてよく、多数の構成要素は、一構成要素として設計されてよいことが理解できよう。いくつかの例では、他の構成要素の内部コンポーネントとして示される構成要素は、外部コンポーネントとして実装されてよく、その逆でもよい。さらに、構成要素は、同じ尺度で描かれていない場合もある。
【００１４】
【図１Ａ】選択的なメモリアクセスに関連するメモリマップの一実施形態を示す。
【００１５】
【図１Ｂ】フローティングゲートトランジスタで起きうる充電レベルの例によるグラフの一例を示す。
【００１６】
【図２】選択的なメモリアクセスに関連するメモリシステムの一実施形態を示す。
【００１７】
【図３】選択的なメモリアクセスに関連する装置の一実施形態を示す。
【００１８】
【図４】選択的なメモリアクセスに関連する装置の他の実施形態を示す。
【００１９】
【図５】選択的なメモリアクセスに関連する方法の一実施形態を示す。
【００２０】
【図６】選択的なメモリアクセスに関連する方法の他の実施形態を示す。
【００２１】
【図７】選択的なメモリアクセスに関連する方法の他の実施形態を示す。
【００２２】
【図８】選択的なメモリアクセスに関連する方法の他の実施形態を示す。
【００２３】
【図９】選択的なメモリアクセスに関連する方法の他の実施形態を示す。
【００２４】
【図１０】選択的なメモリアクセスに関連するシステム、方法、および、等価物の例が動作しうるコンピューティング環境の一実施形態を示す。
【発明を実施するための形態】
【００２５】
本願明細書中における記載は、メモリの制御および選択的アクセスに関連するシステム、方法の例、および、他の実施形態である。
【００２６】
以下は、本願明細書中で用いられる選択的用語の定義を含む。定義は、用語の範囲内に収まり、実施態様に用いられうるコンポーネントのさまざまな例および／または形態を含む。例は、限定の意味合いはない。用語の単数形および複数形は、いずれも範囲内に収まりうる。
【００２７】
「１つの実施形態」、「一実施形態」「１つの例」および「一例」などという表現は、そのように記載される１つまたは複数の実施形態、あるいは、１つまたは複数の例が特定の特徴、構造、特性、属性、要素、または、限定を含むが、すべての実施形態または例が必ずしも特定の特徴、構造、特性、属性、要素、または、限定を含むわけではないことを示す。さらに、繰り返し用いられる「一実施形態では」というフレーズは、必ずしも同じ実施形態を指しても指さなくてもよい。
【００２８】
本願明細書中に用いられるような「コンピュータ可読媒体」とは、信号、命令、および／または、データを格納する媒体のことを指す。コンピュータ可読媒体は、不揮発性媒体および揮発性媒体を含む形態を取ってよいがそれらに限定されない。不揮発性媒体は、例えば、光ディスク、磁気ディスクなどを含んでよい。揮発性媒体は、例えば、半導体メモリ、ダイナミックメモリなどを含んでよい。コンピュータ可読媒体の一般的な形態は、フロッピーディスク（登録商標）、フレキシブルディスク、ハードディスク、磁気テープ、他の磁気媒体、特定用途向け集積回路（ＡＳＩＣ）、プログラマブル論理装置、ＣＤ（コンパクトディスク）、他の光媒体、ＲＡＭ（ランダムアクセスメモリ）、ＲＯＭ（リードオンリーメモリ）、メモリチップまたはカード、メモリスティック、および、コンピュータ、プロセッサ、または、他の電子デバイスによって読み取られることができる他の媒体を含んでよいが、これらに限定されない。
【００２９】
本願明細書中で用いられる「ロジック」は、機能または動作を実行し、および／または、他のロジック、方法、および／または、システムから機能または動作を生じさせる、機械に格納されるかまたは機械で実行されるハードウェア、ファームウェア、ソフトウェア、および／または、それらの組合せを含んでよいがそれらに限定されない。ロジックは、ソフトウェアに制御されるマイクロプロセッサ、個別ロジック（ＡＳＩＣなど）、アナログ回路、デジタル回路、プログラムされた論理装置、命令を含むメモリ装置などを含んでよい。ロジックは、１つ以上のゲート、ゲートの組合せ、または、他の回路部品を含んでよい。複数のロジックが記載される場合、複数のロジックは、１つの物理的ロジックに統合されることができる。同様に、単一のロジックが記載される場合、単一のロジックを複数の物理的ロジックに分散させることができる。
【００３０】
本願明細書中で用いられる「メモリアクセス」とは、書き込み、読み取り、連想メモリ（ＣＡＭ）マッチング、および、メモリセルまたはメモリ位置群のプログラミングを含むがこれらに限定されない。メモリアクセスは、２つの読み出しポートを用いた同じメモリへのデュアル読み出しを含む。メモリアクセスは、当業者であれば理解できるような、メモリとの他のタイプのやりとりを含む。
【００３１】
図１Ａは、同時メモリアクセスを選択的にスケジューリングすることに関連したメモリマップ１００の一実施形態を示す。一実施形態では、メモリマップ１００は、マルチレベルメモリセルデバイス（ＭＬＭＣＤ）と共に実装されるメモリデバイス用である。図１Ａは、最上位ビット（ＭＳＢ）および最下位ビット（ＬＳＢ）のような値を格納する４０９６個のＭＬＣ（例えばセル数は０から４０９５まで）のアレイによるＭＬＭＣＤを示す。異なるＭＬＭＣＤのＬＳＢ群が組み合わされてメモリの第１のページ（ページ０）を形成する。ＭＳＢが組み合わされてメモリの第２のページ（ページ１）を形成する。一実施形態では、ＭＬＭＣＤは、ＬＳＢおよびＭＳＢビットの両方をフローティングゲートトランジスタの充電レベルとして格納する。
【００３２】
図１Ｂを参照すると、２つのビットＭＬＣ閾値電圧が表されうる値範囲でのグラフの例が示されている。このグラフの例は、フローディングゲートトランジスタにおけるレベルでありうる充電レベルの例を示す。Ｖｒ値は、電圧基準値を表し、Ｖｔ値は、電圧閾値を表す。１１、１０、００、および、０１は、特定の電圧閾値Ｖｔに対応するビット値を表す。ＬＳＢの読み出しは、ＭＳＢの読み出しより長くかかる場合がある。例えば、ＬＳＢまたはＭＳＢを読み出す場合、ライン１５０に沿って示される閾値電圧（Ｖｔ）が媒体の電圧閾値を上回るか下回るかを決定するために電圧が比較される。ＶｔがＶｒ２を上回る場合、ＭＳＢが高くなり、ＶｔがＶｒ２を下回る場合は、ＭＳＢが低くなる。１つの比較の後にＭＳＢがわかる。そして、ＬＳＢを決定するために追加の比較がなされる。追加の比較は、ＬＳＢのアクセス時間を長くする。ＭＳＢが低い場合、ＬＳＢも低く、ＶｔとＶｒ１との間の第２の電圧比較によって閾値Ｖｔ電圧が第２の電圧閾値Ｖｒ２を下回ることが決定される。ＭＳＢが高い場合、ＬＳＢも高く、第２の電圧比較により、Ｖｔが第２の電圧閾値Ｖｒ２を上回ることが決定される。図１ＡのＬＳＢページ０は、ページ１のアクセス時間より長くなるだろう。
【００３３】
図２は、メモリの制御およびアクセスに関連したシステム２００の一実施形態を示す。システム２００は、フラッシュデバイス１−Ｎに対するページ要求をスケジューリングするコントローラ２１０を有する。一実施形態では、フラッシュデバイス１−Ｎは、コントローラ２１０がフラッシュデバイス１−Ｎに新たなページ要求を発する前にページアクセスを終了する。コントローラ２１０は、２つ以上のフラッシュデバイス１−Ｎが少なくとも一部並行してページアクセスを終了するようスケジューリングされる。
【００３４】
一実施形態では、システム２００は、メモリの速いアクセスページと遅いアクセスページとを有するフラッシュデバイス１−Ｎとインターフェースする。上述のごとく、速いアクセスページは、遅いアクセスページより速くアクセスされる。システム２００の電力がまもなく失われることをシステム２００が検出した場合、コントローラ２１０は、揮発性メモリ２３０に格納されている揮発性データ２２０をフラッシュデバイス１−Ｎの遅いアクセスページではなく速いアクセスページに移すよう動作を開始して制御する。遅いアクセスページではなく速いアクセスページを用いることにより、突然の電源異常の前に揮発性データ２２０がバックアップされる可能性が高まる。
【００３５】
他の実施形態では、システム２００は、受信データを速いアクセスページに格納することを要求するアプリケーションからのメモリ要求を受信してよい。例えば、ストリーミングビデオデータは、受信と同時に（例えば時間遅延ほとんどなく）格納されるよう要求されてよい。コントローラ２１０は、フラッシュデバイス１−Ｎの速いアクセスメモリにストリーミングビデオデータを格納することにより、リアルタイムストリームに対応する。システム２００は、その後、もう急ぎのタイミングでなくなったら、後処理およびビデオ圧縮のためにビデオデータを遅いアクセスページに転送してよい。これは、データによってフラッシュメモリを再プログラムすることにより、ページをスキップせずに速いページと遅いページとの両方を用いることを含んでよい。このように、メモリ容量はより完全に利用される。
【００３６】
他の実施形態では、システム２００は、電力クリティカルアプリケーションを実行するよう設定される。コントローラ２１０は、電力クリティカルアプリケーションからクリティカル電力表示を受信すると仮定する。クリティカル電力表示は、システム２００が低電力モードで動作することを示す。それに応じて、システム２００は、速いアクセスページではなく遅いアクセスページを用いることを支持するよう、メモリ使用状況の制御を修正する。例えば、メモリセルビットラインは速いアクセスのときは駆動されず、少ない電力で駆動されるので、遅いアクセスページは、速いアクセスページより電力の使用量が少ない。
【００３７】
このように、一般的には、システム２００は、フラッシュメモリにおける速いアクセスページまたは遅いアクセスページのどちらをプログラムするかを示す表示を検出するよう機能する。この表示は、上記の条件のうちの１つ、または、速いまたは遅いページを用いる根拠となる他の条件を表してよい。その後、システム２００は、揮発性メモリからの検出に応じ、（１）マルチレベルセル（ＭＬＣ）フラッシュメモリの遅いアクセスページをスキップして（遅いアクセスページにプログラムしない）速いアクセスページにデータをプログラムするか、または、（２）速いアクセスページをスキップして遅いアクセスページにデータをプログラムする。
【００３８】
図３は、選択的なメモリアクセスに関連する装置３００の一実施形態を示す。一実施形態では、装置３００は、フラッシュメモリチップにおけるフラッシュメモリのページにアクセスするよう実装される。他の実施形態では、装置３００は、チップ内にメモリコントローラを実装する。メモリコントローラは、メモリのページ（例えば上記のようなメモリの速いアクセスページ、および、メモリの遅いアクセスページ）を制御して選択的にアクセスする。メモリアクセスは、決定されたアクセス速度に少なくとも一部基づいて、速いアクセスページまたは遅いアクセスページに対してコントローラにより行われる。アクセス速度を決定するプロセスは、以下に説明する。
【００３９】
一実施形態では、装置３００は、フラッシュ決定ロジック３１０およびフラッシュ制御ロジック３２０と共に実装される。装置３００の外部にあるマルチレベルメモリセルデバイス（ＭＬＭＣＤ）３３０は、装置３００に接続される。ＭＬＭＣＤ３３０は、フラッシュメモリであってよい。他の実施形態では、ＭＬＭＣＤ３３０は、装置３００に含まれてよい。ＭＬＭＣＤ３３０は、ＲＡＭ（ランダムアクセスメモリ）、固体メモリなどの他のタイプのメモリデバイスであってよい。
【００４０】
ＭＬＭＣＤ３３０は、マルチレベルセル（ＭＬＣ）からなる。単一のＭＬＣは、２ビットを記憶する。他の実施形態では、ＭＬＣは、異なるビット数を記憶するよう実装されてよい。ビット値は、図１Ａを参照して説明したようなセル内の閾値電圧レベルによって表される。結果として速いアクセスページおよび遅いアクセスページを有する他の記憶手段が用いられてよいのは言うまでもない。
【００４１】
一実施形態では、フラッシュ決定ロジック３１０は、ＭＬＭＣＤ３３０がアクセスされうる速度を識別する。ＭＬＭＣＤ３３０のアクセスに使用されうるアクセス速度はＮ個あってよい。一実施形態では、Ｎ個のアクセス速度は、クロックサイクル数を示す整数に対応する。ＭＬＭＣＤ３３０は速いアクセスページと遅いアクセスページとを含むので、異なるアクセス速度が存在する。２ビット／セルの場合、速いアクセスページはＭＬＣのＭＳＢに対応し、遅いアクセスページはＭＬＣのＬＳＢに対応する。ＭＳＢページは、図１Ａを参照して上述したようにＬＳＢページより速くアクセスされる。いくつかのデバイスでは、ＬＳＢページは、ＭＳＢページより速くアクセスされてよい。
【００４２】
ＭＬＭＣＤ３３０が速いアクセスページと遅いアクセスページとを有する場合、Ｎの値は２に等しい。ＭＬＭＣＤ３３０が２以上のアクセスレートのメモリページを有する場合、Ｎの値は、２より大きくなりうる。例えば、ＭＬＭＣＤ３３０が異なるプログラムおよび読み取り時間を有する場合、Ｎは４に等しい。４つのアクセス速度は、速いプログラム速度、遅いプログラム速度、速い読み取り速度、および、遅い読み取り速度である。ＭＬＭＣＤ３３０またはフラッシュデバイスのプログラミングは、従来のＲＡＭメモリ位置の書き込みと同様である。
【表１】
2010067263.tif 000003
【００４３】
一実施形態では、Ｎ個のアクセス速度は、ＭＬＭＣＤ３３０のＭＬＭＣＤ３３０ページアドレス（またはメモリページ）の関数である。表１は、一例のＭＬＭＣＤ３３０の典型的なアクセス時間を示す。この例では、アクセス時間が４ページごとに繰り返されるので、アドレス期間は４つとなる。ページ０および１にかかるプログラム時間は、２００マイクロ秒であり、ページ２および３にかかるプログラム時間は８００マイクロ秒である。プログラム時間のこのパターンは、４つの期間である４ページごとに繰り返される。ページ０および１にかかる読み出し時間は、２０マイクロ秒であり、ページ２および３にかかる読み出し時間は４０マイクロ秒である。読み出し時間のこのパターンも４つの期間である４ページごとに繰り返される。当業者であれば、読み出し時間およびプログラム時間の他のパターンも可能であり、アクセス時間は、４ページおき以外のインターバルで繰り返されてよいことを理解できよう。
【００４４】
一実施形態では、フラッシュ制御ロジック３２０は、メモリコマンドの受信に応じてＭＬＭＣＤ３３０にアクセスし、ＭＬＭＣＤ３３０の１つ以上のページにアクセスする。ＭＬＭＣＤ３３０には決定されたＮ個のアクセス速度のうちの１つでアクセスする。ＭＬＭＣＤ３３０にアクセスするために用いられるアクセス速度は、メモリコマンドにおけるパラメータの関数である。上述のごとく、アクセス速度は、アクセスされるメモリアドレス、および、ＭＬＭＣＤ３３０メモリアクセスタイプの関数であってよい。ＭＬＭＣＤ３３０のアクセスタイプは、メモリ位置のプログラミング、読み出し、または、消去を含んでよい。
【００４５】
一実施形態では、ＭＬＭＣＤ３３０は、並行してアクセスされうるメモリブロックと共に実装される。この構成では、フラッシュ制御ロジック３２０は、受信したメモリコマンドを可能性のある並行実行のために待ち行列に入れる。例えば、フラッシュ制御ロジック３２０は２つのメモリコマンド（例えば第１のメモリコマンドおよび第２のメモリコマンド）を受信すると仮定する。フラッシュ制御ロジック３２０は、コマンドを制御して第１のメモリコマンドと第２のメモリコマンドとが少なくとも一部並行してＭＬＭＣＤ３３０の異なるページにアクセスするようスケジューリングする。
【００４６】
一実施形態では、Ｎ個のアクセス速度は、アクセス速度の遅いグループとアクセス速度の速いグループとをなして用いられる。遅いグループは、速いグループよりＭＬＭＣＤ３３０に遅くアクセスする。フラッシュ制御ロジック３２０がメモリへのアクセスをどのように実行するかは、特定の検出された条件に依存しうる。例えば、フラッシュ制御ロジック３２０は、アプリケーションソフトウェアからクリティカル電力表示を受信した場合は、アクセス速度の遅いグループによってＭＬＭＣＤ３３０にアクセスするよう設定される。一例として、ソフトウェアアプリケーションは、装置３００を含むチップにおけるいくつかのマイクロプロセッサを用いて暗号解読操作を実行すると仮定する。マイクロプロセッサは、数学的命令を集中的に用いる暗号解読アルゴリズムを実行し、それによってチップの温度が上昇する可能性がある。チップの温度を下げるよう、アプリケーションソフトウェアは、フラッシュ制御ロジック３２０にクリティカル電力表示を提供してよい。それに応じて、フラッシュ制御ロジック３２０は、クリティカル電力表示がアサートされている間は遅いアクセスページを使用する。メモリセルビットラインは、速いアクセスページのときは駆動せず、駆動するのに電力をほとんど使わないので、遅いアクセスページは、速いアクセスページより電力を用いない。
【００４７】
一実施形態では、フラッシュ決定ロジック３１０は、ＭＬＭＣＤ３３０のアドレスのモジュロ演算結果を算出する。モジュロ演算結果は、どのアドレスが速いアクセスページにマップされ、どのアドレスが遅いアクセスページにマップされるかを示す。例えば、モジュロ演算結果が０または１であるアドレスは、速いアクセスページに対応し、モジュロ演算結果が２または３であるアドレスは、遅いアクセスページに対応してよい。上述のごとく、アクセス時間は、メモリ動作のタイプに依存しうる。例えば、プログラミングメモリ動作は、同じアドレスに対する読み出しメモリ動作より遅いアクセス時間を有してよい。
【００４８】
一実施形態では、フラッシュ決定ロジック３１０は、ＭＬＭＣＤ３３０アドレス期間に少なくとも一部基づき、モジュロ演算を実行してモジュロ結果を生成する。Ｎ個のアクセス速度は、ＭＬＭＣＤ３３０のアドレスに基づいて繰り返される。フラッシュ制御ロジック３２０がＭＬＭＣＤ３３０にアクセスするために用いるアクセス速度は、モジュロ結果の関数である。
【００４９】
一実施形態では、フラッシュ決定ロジック３１０は、メモリアクセスアドレスが速いアクセスページまたは遅いアクセスページのどちらにマップされるかを決定する。この決定は、ハッシュ関数またはテーブルルックアップの少なくとも一部に基づく。速いアクセスページおよび遅いアクセスページへのアドレスのマッピングは、決定論的である。例えば、ハッシュ関数は、速いページおよび遅いページにアドレスをマップする一対一のマッピング関数であってよい。ハッシュ関数は、メモリアクセスを完了するために必要なクロック数をアドレスごとに決定してよい。
【００５０】
図４は、メモリへの選択的なアクセスに関連する装置４００の他の実施形態を示す。装置４００は、固体フラッシュメモリを含むチップに実装されてよい。チップは、半導体材料上に形成された一組の超小型電子回路である。
【００５１】
一実施形態では、装置４００は、ＭＬＣフラッシュメモリ４１０および電力表示入力４２０と共に実装される。ＭＬＣフラッシュメモリ４１０は、メモリの速いアクセスページ４３０および遅いアクセスページ４４０と共に実装される。速いアクセスページ４３０は、遅いアクセスページ４４０より速くプログラムされる。速いアクセスページ４３０および遅いアクセスページ４４０は、少なくとも一部並行してアクセスされてよい。同様に、異なる速いアクセスページ４３０も少なくとも一部並行してアクセスされてよい。ＭＬＣフラッシュメモリ４１０は、マルチレベルセルＮＡＮＤフラッシュメモリデバイスと共に実装されてよい。ＭＬＣフラッシュメモリ４１０のデータパスは、プログラムロジック４５０および転送ロジック４６０によって制御される。
【００５２】
一実施形態では、電力表示入力４２０は、ＭＬＣフラッシュメモリ４１０が下記のように動作する電力レベルを示す信号を受信する。アプリケーションは、装置４００におけるいくつかのマイクロプロセッサを同時に稼働させてよい。多数の回路をオンオフさせるいくつかのプロセッサは、かなりの熱を生じる。熱による温度を下げるべく、アプリケーションは、電力表示入力４２０にクリティカル電力表示信号を提供するだろう。プログラムロジック４５０は、クリティカル電力表示信号を検出するよう実装される。この信号に応答し、ＭＬＣフラッシュメモリ４１０により受信されるプログラムデータは、遅いアクセスページ４４０に格納される。
【００５３】
一実施形態では、プログラムロジック４５０は、揮発性メモリ４７０に関連する電力品質が閾値条件を少なくとも満たすことを検出したことに応じて、外部の揮発性メモリ４７０からのデータを速いアクセスページ４３０にプログラムする。この条件は、可能性のある電源異常を示すよう設定されうる。他の実施形態では、揮発性メモリ４７０は、ＭＬＣフラッシュメモリ４１０と同じチップに存在してよい。閾値レベルは、電流レベル、電圧レベル、および／または、ワットレベルであってよい。
【００５４】
プログラムロジック４５０は、電力品質が閾値条件を満たすことをさまざまな方法で検出するよう設定されうることは明らかであろう。例えば、プログラムロジック４５０は、センサと共に実装されて装置４００の電流レベル、電圧レベル、および／または、ワットレベルをモニタしてよい。本願明細書において用いられるように、閾値レベルは、それらのレベルのうちの１つの値が設定された閾値条件を満たす（例えば等しい）かまたはそれを上回る場合に条件を満たす。あるいは、プログラムロジック４５０は、電流、電圧、および、ワットレベルの１つ以上の二乗平均平方根（ＲＭＳ）値を計算してよい。プログラムロジック４５０は、ＲＭＳ値の１つ以上が閾値条件を満たす場合、外部揮発性メモリ４７０からのデータを速いアクセスページ４３０にプログラムする。データをプログラムする動作は、データの移動／書き込み、または、データのコピーおよび書き込みを含んでよい。他の実施形態では、ピーク電流および電圧、力率、電流および電圧の増減、高調波歪などがプログラムロジック４５０により用いられることにより、揮発性メモリ４７０に関連する電力品質が閾値条件を満たすか（例えば閾値条件を満たすかまたはそれを上回るか）が検出されてよい。
【００５５】
転送ロジック４６０は、速いアクセスページ４３０にあるデータを使用可能な遅いアクセスページ４４０に選択的にプログラムしてもよい。プログラムロジック４５０がアイドル状態であることの決定に応じて、データは遅いアクセスページ４４０にプログラムされる。例えば、装置４００は、メモリにすばやく格納されなければならないストリーミングビデオデータを受信してよい。データを速いメモリ位置に格納することにより、装置４００は、ストリーミングビデオデータの受信に追いつくのに十分なスループットを有する。転送ロジック４６０は、メモリアクセスの速度がクリティカルでない場合、ストリーミングビデオデータの一部を遅いアクセスページ４４０に移動させる。ストリーミングビデオデータは、メモリアクセスの速度がクリティカルでない場合、遅いアクセスページから解凍されて後処理されてよい。
【００５６】
一実施形態では、ＭＬＣフラッシュメモリ４１０は、フラッシュシリコンダイと共に実装されてよい。フラッシュシリコンダイは、メモリのブロックと共に実装されてよい。メモリブロックは、速いアクセスページ４３０のうちの少なくとも１つ、および、遅いアクセスページ４４０のうちの少なくとも１つと共に実装される。
【００５７】
図５は、選択的なメモリアクセスに関連する方法５００の一実施形態を示す。方法５００は、タイムクリティカルメモリアプリケーションがメモリの遅いアクセスページにアクセスせずにメモリの速いアクセスページにアクセスできるようにすることにより、記憶システムのメモリアクセスを向上させる。
【００５８】
一実施形態では、方法５００は、５１０において、速いアクセスページまたは遅いアクセスページの使用を可能にする条件が存在するかどうかを検出する。例えば、マルチレベルセル（ＭＬＣ）フラッシュメモリの速いアクセスページまたは遅いアクセスページのどちらをプログラムするかどうかを示す表示が検出される。検出された表示に応じて、揮発性メモリからのデータは、（１）  遅いアクセスページをスキップしてマルチレベルセル（ＭＬＣ）フラッシュメモリの速いアクセスページにプログラムされるか、または、（２）速いアクセスページをスキップして遅いアクセスページにプログラムされる。
【００５９】
一実施形態では、検出される条件／表示は、閾値条件を満たす、揮発性メモリに関連する電力品質である。検出は、電力品質が閾値条件を満たすことを図４の装置４００が検出したのと同じ方法で実行されてよい。例えば、選択された条件／値は、モニタされてよい（例えば、電流レベル、電圧レベル、および／または、ワットレベル）。モニタされた条件から１つ以上の値が閾値と比較されることにより、閾値条件を満たすかどうかが決定される。あるいは、方法５００は、電流、電圧、および／または、ワット数値のうちの１つ以上の二乗平均平方根（ＲＭＳ）値を計算してよい。方法５００は、５１０において、ＲＭＳ値の１つ以上が閾値条件を満たす場合、閾値条件を満たすことを決定する。他の実施形態では、ピーク電流および電圧、力率、電流および電圧の増減、高調波歪などが用いられることにより、揮発性メモリに関連する電力品質が閾値条件を満たすことが５１０において検出されてよい。
【００６０】
閾値条件を満たす場合、方法５００は、５２０において、揮発性メモリからのデータをマルチレベルセル（ＭＬＣ）フラッシュメモリにプログラムする。閾値条件を満たすということは、揮発性メモリにおける電源異常のリスクが高く、データを失う可能性があることを意味してよい。可能性のある電源異常が起きる前に揮発性メモリからできるだけ多くのデータをフラッシュメモリに転送すべく、５２０において、データは速いアクセスページにプログラムされる。閾値条件を満たさないかまたは電源異常のおそれが少ない場合、データは遅いアクセスページにプログラムされてよい。
【００６１】
一実施形態では、５２０でプログラムされたデータは、少なくとも２つの異なる速いアクセスページにプログラムされる。データは、少なくとも一部並行してプログラムされてよい。一実施形態では、５２０において揮発性メモリからのデータがＭＬＣフラッシュメモリにプログラムされるので、データは、速いアクセスページアドレスが大きくなる順に速いアクセスページにプログラムされる。データが速いアクセスページにプログラムされているときは遅いアクセスページはスキップされる。他の実施形態では、データは、５２０において、速いアクセスページにおいて速いアクセスページアドレスが大きくなる順に揮発性メモリからＭＬＣフラッシュメモリにプログラムされる。
【００６２】
図６は、メモリの制御および選択的アクセスに関連する方法６００の他の実施形態を示す。方法６００は、タイムクリティカルメモリアプリケーションにメモリの遅いアクセスページをプログラムさせる代わりに、メモリの速いアクセスページをプログラムさせることよって、記憶システムのメモリアクセスを向上させる。方法６００は、フラッシュメモリにおける選択的アクセスメモリとして説明される。
【００６３】
一実施形態では、方法６００は、６１０において期間を決定することから始まる。期間は、図３を参照して先に述べたメモリページの連続する文字列のアクセス速度に基づく。例えば、表１に示されるアドレスの期間は４つである。以下に説明するように、揮発性メモリに関連する電力品質が閾値条件を満たす場合、６５０において、揮発性メモリデータは、以下に説明するように、期間の関数として速いアクセスページにプログラムされてよい。
【００６４】
ブロック６２０において、方法は、モジュラスを決定する。モジュラスは、メモリページのアドレスに対応する。例えば、表１に示されるフラッシュメモリのアドレスは、４つの連続したアドレスのインターバルで繰り返されるメモリアクセス時間を有する。したがって、モジュラスは、４として決定される。６５０における、以下に説明するような揮発性メモリからＭＬＣフラッシュメモリへのデータのプログラミングは、モジュラスの関数である。
【００６５】
一実施形態では、方法は、６３０においてモジュロ演算結果を決定する。モジュロ演算結果は、６２０において決定されたモジュロを用いた演算の結果なので、モジュラスに基づいている。モジュロ演算結果は、速いアクセスページおよび遅いアクセスページのアドレスに関連する。モジュラスは、期間に一部基づく。６５０において、以下に説明するように、データはモジュロ演算結果の関数として速いアクセスページにプログラムされてよい。
【００６６】
一実施形態では、方法６００は、揮発性メモリに関連する電力品質が閾値条件を満たすかどうかを６４０において検出する。閾値条件を満たす値は、揮発性メモリには電源異常の高いリスクが存在することを示してよい。６４０における検出動作は、電力品質が閾値条件を満たすことを図４の装置４００が検出した方法と同様に実行されてよい。
【００６７】
閾値条件を満たす場合、方法６００は、６５０において、揮発性メモリからのデータをＭＬＣフラッシュメモリにプログラムする。可能性のある電源異常が起こる前に揮発性メモリからできるだけ多くのデータをフラッシュメモリに確実に転送すべく、方法６００は、揮発性メモリからのデータを速いアクセスページに書き込み、データが遅いアクセスページに書き込まれないようにする。
【００６８】
図７は、メモリの制御および選択的アクセスに関連する方法７００の他の実施形態を示す。方法７００は、タイムクリティカルメモリアプリケーションにメモリの遅いアクセスページをプログラムさせる代わりに、メモリの速いアクセスページをプログラムさせることよって、記憶システムのメモリアクセスを向上させる。例えば、ストリーミングビデオデータは速いアクセスページに書き込まれるだろうから、ストリーミングビデオデータが受信されたとき（例えば受信と書き込みが同時に実行されたときなど）、データが欠落するということがない。
【００６９】
方法７００は、７１０において、データを速いアクセスページにプログラムする要求を検出する。要求の検出は多数の方法で行われてよい。例えば、ファームウェアがストリーミングビデオデータを受信することは、ストリーミングビデオデータを速いアクセスページに配置するという要求であってよい。あるいは、要求におけるフィールド値は、要求に関連するデータが速いアクセスメモリに配置される予定であることを示してよい。当業者であれば、データを速いアクセスページにプログラムする要求を検出する他の方法も理解できよう。上述のごとく、７２０において、データは速いアクセスページにプログラムされる。
【００７０】
他の実施形態では、方法７００は、メモリにおけるデータを選択的に再プログラムするので、フラッシュメモリにおける速いアクセスページと遅いアクセスページとの両方が決定された条件の下で用いられる（７３０）。再プログラムすることにより、メモリをさらに完全に利用することができる。例えば、コピー／プログラミング動作が実行されることにより、７３０において、現在速いアクセスページにのみ格納されているデータを速いアクセスページおよび遅いアクセスページの両方に格納されるよう再プログラムされる。一実施形態では、この動作は、データを速いアクセスページにプログラムする目だった要求がない場合に起きる。速いメモリにアクセスするペンディングの要求がなくなるまで待つことにより、タイムクリティカルデータは、フラッシュメモリに到着したときに、失われずに受信される可能性がより高くなる。遅いアクセスメモリにおけるデータは、時間が許すときに処理される。他の例では、半導体チップは、計算量の多い命令を処理するときに温度が上昇しうる。チップは、遅いアクセスメモリとの間でのデータアクセスによってクールダウンされてよい。
【００７１】
図８は、メモリの制御および選択的アクセスに関連する方法８００の他の実施形態を示す。方法８００は、タイムクリティカルメモリアプリケーションにメモリの遅いアクセスページをプログラムさせる代わりに、メモリの速いアクセスページをプログラムさせることにより、記憶システムのメモリアクセスを向上させる。
【００７２】
方法８００は、８１０において速いアクセスビットを検出する。速いアクセスビットは、速いアクセスページにデータをプログラムする要求を表すよう予め設定されている。速いアクセスビットは、メモリ要求命令のビットフィールドの一部であってよい。要求命令は、ビットがＨｉｇｈレベルである場合に速いアクセスメモリにアクセスする要求である。
【００７３】
速いアクセスビットが設定される場合、８２０において、データは、速いアクセスページにプログラムされる。上述のように、８２０において、データは速いアクセスページにプログラムされてよい。予め決められた条件が検出された場合、方法８００は、速いアクセスページに存在するデータを、速いアクセスページと遅いアクセスページとの両方に存在するように選択的に再プログラムしてよい（８３０）。一実施形態では、予め決められた条件とは、速いアクセスページにデータをプログラムする明示の要求がない場合である。８４０において、遅いアクセスページのみを使用するのであれば、速いアクセスページにおけるデータは、遅いアクセスページにデータが転送されることに応じて速いアクセスページから消去されてよい。速いアクセスページを用いるための次の条件が検出される場合、データを消去することにより、次の使用のための速いアクセスページは開き状態になる。
【００７４】
図７および８、および／または、他の実施形態では、メモリを再プログラムする後処理動作は、メモリにおけるデータのいくらかまたはすべてを再プログラムすることを含むことが理解できよう。上述のごとく、データが速いアクセスページにのみ格納される場合、データは、速いページと遅いページとの両方に再プログラムされてよい。このようにしてメモリはさらに完全に利用される。
【００７５】
図９は、メモリ制御および選択的アクセスに関連する方法９００の他の実施形態を示す。方法９００は、タイムクリティカルメモリアプリケーションにメモリの遅いアクセスページをプログラムさせる代わりにメモリの速いアクセスページをプログラムさせることにより記憶システムのメモリアクセスを向上させる。
【００７６】
方法９００は、９１０においてメモリに書き込む要求を受信することから始まる。９２０において、要求はフラッシュメモリの速いページに書き込まれるかどうかが決定される。メモリへの速い書き込みを要求しない場合、９３０において通常の書き込み動作が実行される。通常の書き込みは、メモリの遅いページになされてよい。書き込み動作は、フラッシュメモリの１つのプログラミング形式である。
【００７７】
書き込み要求がメモリの速いページに書き込むことである場合、方法９００は、メモリにおける次に使用可能なページは速いページであるかどうかを９４０において決定する。方法９００は、次に使用可能なページがメモリの速いページである場合、９５０において、速いページへの速い書き込みを実行する。使用可能なメモリの次のページが速いページでない場合、方法は、９６０において次に使用可能なページにスキップする。
【００７８】
一実施形態では、本願明細書における方法は、コンピュータ可読媒体に組み込まれかつ格納されたコンピュータ実行可能命令として実装されてよいことが理解できよう。機械（プロセッサ、デバイスなど）により実行されると、命令は、機械に本願明細書における方法またはそれに相当するものを実行させる。一実施形態において、本願明細書に記載される方法またはそれに相当するものは、１つのチップまたは別々の回路に実装されうることが理解できよう。
【００７９】
図１０は、本願明細書中に記載される例としてのシステム、方法、および、それに相当するものが実装されるコンピュータ１０００の一例を示す。一例としてのコンピュータ１０００は、バス１０４０によって有効に接続されるプロセッサ１０１０、メモリ１０２０、および、入力／出力ポート１０３０を有する。一例では、コンピュータ１０００は、メモリに選択的にアクセスするためのメモリアクセスロジック１０５０を有する。
【００８０】
メモリアクセスロジック１０５０は、フラッシュメモリにおけるデータに選択的にアクセスする手段（ハードウェア、格納されたソフトウェア、ファームウェアなど）、固体メモリであるメモリ１０２０、または、他のメモリを提供する。メモリアクセスロジック１０５０は、装置３００および４００と同様に実装されてよく、および／または、それらの特徴の組合せであってよい。メモリアクセスロジック１０５０は、例えば、ＡＳＩＣまたは他のタイプの回路のように実装されるロジックを含んでよい。
【００８１】
コンピュータ１０００の構成の一例を概略的に説明すると、プロセッサ１０１０は、デュアルマイクロプロセッサおよび他のマルチプロセッサアーキテクチャを含む多種多様なプロセッサであってよい。メモリ１０２０は、揮発性メモリおよび／または不揮発性メモリを含んでよい。不揮発性メモリは、例えば、ＲＯＭ（リードオンリーメモリ）、ＰＲＯＭ（プログラマブルリードオンリーメモリ）、ＥＰＲＯＭ（消去可能ＰＲＯＭ）、ＥＥＰＲＯＭ（登録商標）（電気的消去可能ＰＲＯＭ）などを含んでよい。揮発性メモリは、例えば、ＲＡＭ（ランダムアクセスメモリ）、ＳＲＡＭ（スタティックＲＡＭ）、ＤＲＡＭ（ダイナミックＲＡＭ）などを含んでよい。
【００８２】
ディスク１０６０は、例えば、入力／出力インターフェース（カード、デバイスなど）１０７０、および、入力／出力ポート１０３０を介し、コンピュータ１０００に有効に接続されてよい。ディスク１０６０は、例えば、磁気ディスクドライブ、固体ディスクドライブ、フロッピーディスク（登録商標）ドライブ、テープドライブ、Ｚｉｐドライブ、フラッシュメモリカード、メモリディスクなどであってよい。さらに、ディスク１０６０は、ＣＤ−ＲＯＭドライブ、ＣＤ−Ｒドライブ、ＣＤ−ＲＷドライブ、ＤＶＤ  ＲＯＭなどであってよい。メモリ１０２０は、例えば、プロセス１０８０および／またはデータ１０９０を格納してよい。ディスク１０６０および／またはメモリ１０２０は、コンピュータ１０００の資源を制御しかつ割り当てるオペレーティングシステムを格納してよい。
【００８３】
バス１０４０は、単一の内部バスインターコネクトアーキテクチャ、および／または、他のバスまたはメッシュアーキテクチャであってよい。単一のバスが図示されているが、コンピュータ１０００は、他のバス（ＰＣＩＥ（ｐｅｒｉｐｈｅｒａｌ  ｃｏｍｐｏｎｅｎｔ  ｉｎｔｅｒｃｏｎｎｅｃｔ  ｅｘｐｒｅｓｓ、１３９４、ＵＳＢ（ｕｎｉｖｅｒｓａｌ  ｓｅｒｉａｌ  ｂｕｓ）、イーサネット（登録商標）など）を用いてさまざまなデバイス、ロジック、および、周辺機器と通信してよい。バス１０４０は、例えば、メモリバス、メモリコントローラ、周辺バス、外部バス、クリスバースイッチ、および／または、ローカルバスを含むタイプであってよい。
【００８４】
コンピュータ１０００は、メモリアクセスロジック１０５０および入力／出力ポート１０３０を含む入力／出力（Ｉ／Ｏ）インターフェース１０７０を介して入力／出力デバイスとやりとりしてよい。入力／出力デバイスは、例えば、キーボード、マイクロフォン、ポインティングおよび選択デバイス、カメラ、ビデオカード、ディスプレイ、ディスク１０６０、ネットワークデバイス１０９９などであってよい。入力／出力ポート１０３０は、例えば、シリアルポート、パラレルポート、およびＵＳＢポートを含んでよい。
【００８５】
コンピュータ１０００は、ネットワーク環境において動作することができ、したがって、Ｉ／Ｏインターフェース１０７０および／または入力／出力ポート１０３０を介してネットワークデバイス１０９９に接続されてよい。ネットワークデバイス１０９９を介し、コンピュータ１０００は、ネットワークとやりとりしてよい。ネットワークを介し、コンピュータ１０００は、リモートコンピュータと論理的に接続してよい。コンピュータ１０００とやりとりするネットワークは、ＬＡＮ（ローカルエリアネットワーク）、ＷＬＡＮ（無線ＬＡＮ）、ＷＡＮ（広域ネットワーク）、および、他のネットワークを含んでよいが、これらに限定されない。
【００８６】
システム、方法などを例示して説明してきたが、多くの詳細は例であって、本出願を制限するかあるいはいかなる方法で添付の請求項をこのような詳細に制限する意図はない。ここに記載されるシステム、方法などを説明するために構成要素および手順の考えられる組合せすべてを記載することは不可能であることは言うまでもない。したがって、本発明は、図示され説明された特定の詳細、代表的な装置、および、例示的実施形態に限定されない。このように、本出願は、添付の請求項の範囲に収まる改作、修正、変更を包含することが意図される。
【図１Ａ】
2010067263.tif 000004
【図１Ｂ】
2010067263.tif 000005
【図２】
2010067263.tif 000006
【図３】
2010067263.tif 000007
【図４】
2010067263.tif 000008
【図５】
2010067263.tif 000009
【図６】
2010067263.tif 000010
【図７】
2010067263.tif 000011
【図８】
2010067263.tif 000012
【図９】
2010067263.tif 000013
【図１０】
2010067263.tif 000014
【手続補正書】
【提出日】平成21年10月14日(2009.10.14)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
マルチレベルセルフラッシュメモリ（ＭＬＣフラッシュメモリ）における速いアクセスページおよび遅いアクセスページのいずれをプログラムするかを示す表示を検出する段階と、
検出された前記表示に応じて、データを、揮発性メモリから（１）前記ＭＬＣフラッシュメモリの前記遅いアクセスページはスキップして前記速いアクセスページにプログラムするか、または、（２）前記速いアクセスページはスキップして前記遅いアクセスページにプログラムする段階と、
を備え、
前記速いアクセスページは、前記遅いアクセスページより速くプログラムされる、
方法。
【請求項２】
前記データを前記揮発性メモリから前記ＭＬＣフラッシュメモリにプログラムする段階が実行されることにより、前記データは、速いアクセスページアドレスが大きくなる順に前記速いアクセスページにプログラムされ、前記遅いアクセスページはスキップされる、請求項１に記載の方法。
【請求項３】
前記検出する段階は、前記揮発性メモリに関連する電力品質が閾値条件を満たすことを検出する段階と、
前記閾値条件を満たすことを検出する段階に応じて、前記遅いアクセスページをスキップすることにより、前記データを前記揮発性メモリから前記速いアクセスページに再プログラムする段階と、
を有する、請求項１または２に記載の方法。
【請求項４】
前記データは、少なくとも２つの異なる速いアクセスページに、少なくとも一部並行してプログラムされる、請求項１から３のいずれか１つに記載の方法。
【請求項５】
期間を決定する段階をさらに備え、前記期間は、連続するメモリページのアクセス速度に基づき、前記データは、前記期間の関数として前記速いアクセスページにプログラムされる、請求項１から４のいずれか１つに記載の方法。
【請求項６】
一のページのアドレスに関連するモジュロ演算結果を算出し、アクセスが速いアクセスページかどうかを決定する段階をさらに備える、請求項５に記載の方法。
【請求項７】
前記揮発性メモリに関連する前記電力品質が前記閾値条件を満たすことを検出する段階は、電圧レベル、電流のアンペア数、または、ワットレベルのうちの１つを分析する段階を有する、請求項３に記載の方法。
【請求項８】
前記プログラムする段階は、
前記データのブロックを前記ＭＬＣフラッシュメモリの前記速いアクセスページにプログラムする要求の検出に応じて、前記データのブロックを前記速いアクセスページにプログラムする段階と、
前記速いアクセスページに前記データをプログラムする明示の要求がない場合、アクセス速度に関係なく、前記速いアクセスページに存在する前記データのブロックを前記ＭＬＣフラッシュメモリにおける他の使用可能なページに選択的に再プログラムする段階と、
を有する、請求項１から７のいずれか１つに記載の方法。
【請求項９】
前記速いアクセスページから、再プログラムされた前記データのブロックを消去する段階をさらに備える、請求項８に記載の方法。
【請求項１０】
前記データのブロックを前記速いアクセスページにプログラムする前記要求を検出する段階は、
前記要求に関連する速いアクセスビットを検出する段階をさらに有する、請求項８または９に記載の方法。
【請求項１１】
マルチレベルメモリセルデバイス（ＭＬＭＣＤ）にアクセスするために使用可能なＮ個のアクセス速度を識別するフラッシュ決定ロジックと、
メモリコマンドの受信に応じて、前記ＭＬＭＣＤにアクセスするフラッシュ制御ロジックと、
を備え、
前記ＭＬＭＣＤは、前記Ｎ個のアクセス速度のうちの１つの速度を用いてアクセスされ、前記Ｎ個のアクセス速度のうちの前記１つの速度は、前記メモリコマンドにおける少なくとも１つのパラメータに基づき選択される、
装置。
【請求項１２】
前記Ｎ個のアクセス速度は、クロックサイクル数を示す整数に対応する、請求項１１に記載の装置。
【請求項１３】
前記Ｎ個のアクセス速度は、ＭＬＭＣＤアクセスタイプに基づく、請求項１１に記載の装置。
【請求項１４】
前記ＭＬＭＣＤアクセスタイプは、プログラミングおよび読み取りを含む、請求項１３に記載の装置。
【請求項１５】
前記Ｎ個のアクセス速度は、遅いアクセス速度のグループおよび速いアクセス速度のグループからなり、前記遅いアクセス速度のグループは、前記速いアクセス速度のグループより遅く前記ＭＬＭＣＤにアクセスし、前記フラッシュ制御ロジックは、アプリケーションソフトウェアからクリティカル電力表示信号を受信した場合、前記遅いアクセス速度のグループによって前記ＭＬＭＣＤにアクセスする、請求項１１から１４のいずれか１つに記載の装置。
【請求項１６】
動作電力レベルを示す信号を受信する電力表示入力と、
速いアクセスページおよび遅いアクセスページを有するマルチレベルセル（ＭＬＣ）フラッシュメモリと、
揮発性メモリに関連する電力品質が閾値条件を満たすことの検出に応じて、前記揮発性メモリから前記速いアクセスページにデータをプログラムするプログラムロジックと、
を備え、
前記速いアクセスページは、前記遅いアクセスページより速くプログラムされるよう設定される、
装置。
【請求項１７】
前記閾値は、電流レベル、電圧レベル、および、ワットレベルのうちの１つである、請求項１６に記載の装置。
【請求項１８】
前記プログラムロジックは、前記電力表示入力にクリティカル電力表示がある間は、前記データを前記遅いアクセスページにプログラムするよう設定される、請求項１６または１７に記載の装置。
【請求項１９】
前記遅いアクセスページに存在するデータを、アクセス速度に依らずに他の使用可能なページに選択的にプログラムする転送ロジックをさらに備え、前記データは、前記プログラムロジックがアイドル状態であるとの決定に応じてプログラムされる、請求項１６から１８のいずれか１つに記載の装置。
【外国語明細書】
2010067263.tif 000015
2010067263.tif 000016
2010067263.tif 000017
2010067263.tif 000018
2010067263.tif 000019
2010067263.tif 000020
2010067263.tif 000021
2010067263.tif 000022
2010067263.tif 000023
2010067263.tif 000024
2010067263.tif 000025
2010067263.tif 000026
2010067263.tif 000027
2010067263.tif 000028
2010067263.tif 000029
2010067263.tif 000030
2010067263.tif 000031
2010067263.tif 000032
2010067263.tif 000033
2010067263.tif 000034
2010067263.tif 000035
2010067263.tif 000036
2010067263.tif 000037
2010067263.tif 000038
2010067263.tif 000039
2010067263.tif 000040
2010067263.tif 000041
2010067263.tif 000042
2010067263.tif 000043
2010067263.tif 000044
2010067263.tif 000045
2010067263.tif 000046
2010067263.tif 000047
2010067263.tif 000048
2010067263.tif 000049
2010067263.tif 000050
2010067263.tif 000051
2010067263.tif 000052