(57)【要約】【課題】不揮発性メモリの書き込み及び消去のためのコンピュータ実施方法を提供すること。【解決手段】不揮発性メモリの書き込み及び消去のための方法が説明される。この方法は、不揮発性メモリのｎ個の書き込みオペレーションに使用するためのコマンドウインドウのサイズを決定することを含み、各書き込みオペレーションは、同じ期間を有する。長い待ち時間の消去コマンドがｎのファクタでスライスされて、同じ期間を各々有する複数の消去スライスが与えられる。この方法は、更に、不揮発性メモリへのｎ個のコマンドを実行することを含み、各コマンドは、ｎ個の書き込みオペレーションの１つ及び消去スライスの１つの組合せより成る。１つの消去スライスの期間を１つの書き込みオペレーションの期間に加算した合計は、コマンドウインドウのサイズ以下である。【選択図】図１
2010250932.tif 000002
【特許請求の範囲】
【請求項１】
不揮発性メモリの書き込み及び消去のためのコンピュータ実施方法において、
不揮発性メモリのｎ個の書き込みオペレーションに使用するためのコマンドウインドウのサイズを決定するステップであって、各書き込みオペレーションが同じ期間を有するようなステップと、
長い待ち時間の消去コマンドをｎのファクタでスライスして、同じ期間を各々有する複数の消去スライスを与えるステップと、
不揮発性メモリへのｎ個のコマンドを実行するステップであって、各コマンドは、ｎ個の書き込みオペレーションの１つ及び消去スライスの１つの組合せより成り、１つの消去スライスの期間を１つの書き込みオペレーションの期間に加算した合計がコマンドウインドウのサイズ以下であるようなステップと、
を備えたコンピュータ実施方法。
【請求項２】
１つの消去スライスの期間を１つの書き込みオペレーションの期間に加算した合計がコマンドウインドウのサイズ未満である、請求項１に記載のコンピュータ実施方法。
【請求項３】
前記不揮発性メモリは、ＮＯＲフラッシュメモリである、請求項１に記載のコンピュータ実施方法。
【請求項４】
ｎは、１０に等しく、コマンドウインドウのサイズは、約７２ミリ秒であり、１つの消去スライスの期間は、約７０ミリ秒であり、そして１つの書き込みオペレーションの期間は、約２ミリ秒である、請求項１に記載のコンピュータ実施方法。
【請求項５】
不揮発性メモリの書き込み及び消去のためのコンピュータ実施方法において、
不揮発性メモリのｎ個の書き込みオペレーションに使用するためのコマンドウインドウのサイズを動的に決定するステップであって、各書き込みオペレーションは、同じ期間を有し、そして動的に決定することは、動的な待ち時間の消去コマンドに基づいて行われるステップと、
動的な長い待ち時間の消去コマンドをｎのファクタでスライスして、同じ期間を各々有する複数の消去スライスを与えるステップであって、動的な長い待ち時間の消去コマンドは、不揮発性メモリの実際の状態に基づくようなステップと、
不揮発性メモリへのｎ個のコマンドを実行するステップであって、各コマンドは、ｎ個の書き込みオペレーションの１つ及び消去スライスの１つの組合せより成り、１つの消去スライスの期間を１つの書き込みオペレーションの期間に加算した合計がコマンドウインドウのサイズ以下であるようなステップと、
を備えたコンピュータ実施方法。
【請求項６】
１つの消去スライスの期間を１つの書き込みオペレーションの期間に加算した合計がコマンドウインドウのサイズ未満である、請求項５に記載のコンピュータ実施方法。
【請求項７】
前記不揮発性メモリは、ＮＯＲフラッシュメモリである、請求項５に記載のコンピュータ実施方法。
【請求項８】
ｎは、１０に等しく、コマンドウインドウのサイズは、約５２ミリ秒であり、１つの消去スライスの期間は、約５０ミリ秒であり、そして１つの書き込みオペレーションの期間は、約２ミリ秒である、請求項５に記載のコンピュータ実施方法。
【請求項９】
ｎは、１０に等しく、コマンドウインドウのサイズは、約１５２ミリ秒であり、１つの消去スライスの期間は、約１５０ミリ秒であり、そして１つの書き込みオペレーションの期間は、約２ミリ秒である、請求項５に記載のコンピュータ実施方法。
【請求項１０】
不揮発性メモリの実際の状態は、小さな消去バックログを含み、そして動的な待ち時間の消去コマンドは、約５００ミリ秒である、請求項５に記載のコンピュータ実施方法。
【請求項１１】
不揮発性メモリの実際の状態は、大きな消去バックログを含み、そして動的な待ち時間の消去コマンドは、約１５００ミリ秒である、請求項５に記載のコンピュータ実施方法。
【請求項１２】
不揮発性メモリの書き込み及び消去のための方法をデータ処理システムが遂行するようにさせるインストラクションを記憶しているマシンアクセス可能な記憶媒体において、前記方法は、
不揮発性メモリのｎ個の書き込みオペレーションに使用するためのコマンドウインドウのサイズを決定し、各書き込みオペレーションが同じ期間を有するものであり、
長い待ち時間の消去コマンドをｎのファクタでスライスして、同じ期間を各々有する複数の消去スライスを与え、
不揮発性メモリへのｎ個のコマンドを実行し、各コマンドは、ｎ個の書き込みオペレーションの１つ及び消去スライスの１つの組合せより成り、１つの消去スライスの期間を１つの書き込みオペレーションの期間に加算した合計がコマンドウインドウのサイズ以下である、
ことを含むマシンアクセス可能な記憶媒体。
【請求項１３】
１つの消去スライスの期間を１つの書き込みオペレーションの期間に加算した合計がコマンドウインドウのサイズ未満である、請求項１２に記載のマシンアクセス可能な記憶媒体。
【請求項１４】
前記不揮発性メモリは、ＮＯＲフラッシュメモリである、請求項１２に記載のマシンアクセス可能な記憶媒体。
【請求項１５】
ｎは、１０に等しく、コマンドウインドウのサイズは、約７２ミリ秒であり、１つの消去スライスの期間は、約７０ミリ秒であり、そして１つの書き込みオペレーションの期間は、約２ミリ秒である、請求項１２に記載のマシンアクセス可能な記憶媒体。
【請求項１６】
前記コマンドウインドウのサイズの決定は、動的な待ち時間の消去コマンドに基づいて動的に遂行され、前記長い待ち時間の消去コマンドのスライシングは、動的な長い待ち時間の消去コマンドをスライシングすることを含み、前記動的な長い待ち時間の消去コマンドは、不揮発性メモリの実際の状態に基づく、請求項１２に記載のマシンアクセス可能な記憶媒体。
【請求項１７】
１つの消去スライスの期間を１つの書き込みオペレーションの期間に加算した合計がコマンドウインドウのサイズ未満である、請求項１６に記載のマシンアクセス可能な記憶媒体。
【請求項１８】
前記不揮発性メモリは、ＮＯＲフラッシュメモリである、請求項１６に記載のマシンアクセス可能な記憶媒体。
【請求項１９】
ｎは、１０に等しく、コマンドウインドウのサイズは、約５２ミリ秒であり、１つの消去スライスの期間は、約５０ミリ秒であり、そして１つの書き込みオペレーションの期間は、約２ミリ秒である、請求項１６に記載のマシンアクセス可能な記憶媒体。
【請求項２０】
ｎは、１０に等しく、コマンドウインドウのサイズは、約１５２ミリ秒であり、１つの消去スライスの期間は、約１５０ミリ秒であり、そして１つの書き込みオペレーションの期間は、約２ミリ秒である、請求項１６に記載のマシンアクセス可能な記憶媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、不揮発性メモリの分野に係り、より詳細には、不揮発性メモリの書き込み及び消去のためのコンピュータ実施方法に係る。
【背景技術】
【０００２】
多くの不揮発性メモリ用途、例えば、高密度加入者アイデンティティモジュール（ＨＤ−ＳＩＭ）カードは、典型的なフラッシュデバイス、例えば、「ノットＯＲ」（ＮＯＲ）デバイスの消去動作の時間より著しく短い厳格なコマンドタイミングを有している。更に、幾つかの用途では、関連フラッシュデバイスへの電力がフラッシュコマンド間に除去され、多くの用途で慣習的に行われたようにバックグランド消去動作を遂行するための機会がほとんど又は全く残されていない。ＨＤ−ＳＩＭカードのような用途に対してＮＯＲメモリをより実際的なものにするためにＮＯＲの消去時間を減少する試みがなされている。しかしながら、ＮＯＲフラッシュメモリのような不揮発性メモリに書き込み及び消去する方法の発展には付加的な改良が必要である。
【図面の簡単な説明】
【０００３】
【図１】本発明の一実施形態により不揮発性メモリに書き込み及び消去するためのコンピュータ実施方法におけるオペレーションを表すフローチャートである。
【図２】本発明の一実施形態により不揮発性メモリに書き込み及び消去するためのコンピュータ実施方法を概念的に示すブロック図である。
【図３】本発明の一実施形態により不揮発性メモリに動的に書き込み及び消去するためのコンピュータ実施方法におけるオペレーションを表すフローチャートである。
【図４】本発明の一実施形態により不揮発性メモリに動的に書き込み及び消去するためのコンピュータ実施方法を概念的に示すブロック図である。
【図５】本発明の一実施形態により、不揮発性メモリに書き込み及び消去し、又は不揮発性メモリに動的に書き込み及び消去するように構成されたコンピュータシステムを例示するブロック図である。
【発明を実施するための形態】
【０００４】
不揮発性メモリに書き込み及び消去する方法が、ここに開示される。以下の説明では、本発明の実施形態を完全に理解するために、特定消去スライス時間のような多数の特定の細部について述べる。当業者であれば、本発明の実施形態は、これら特定の細部がなくても実施できることが明らかであろう。他の点において、不揮発性メモリにおけるクリーン対ダーティスペース(clean versus dirty space)を決定するような良く知られた処理オペレーションは、本発明の実施形態を不必要に不明瞭にしないために詳細に説明しない。更に、図示された種々の実施形態は、例示に過ぎず、必ずしも正しいスケールで描かれていないことを理解されたい。
【０００５】
ここに開示されるのは、不揮発性メモリの書き込み及び消去のためのコンピュータ実施方法である。一実施形態において、この方法は、不揮発性メモリのｎ個の書き込みオペレーションに使用するためのコマンドウインドウのサイズを決定することを含み、各書き込みオペレーションは、同じ期間を有する。長い待ち時間の消去コマンドがｎのファクタでスライスされて、同じ期間を各々有する複数の消去スライスが与えられる。この方法は、更に、不揮発性メモリへのｎ個のコマンドを実行することを含み、各コマンドは、ｎ個の書き込みオペレーションの１つ及び消去スライスの１つの組合せより成る。１つの消去スライスの期間を１つの書き込みオペレーションの期間に加算した合計は、コマンドウインドウのサイズ以下である。別の実施形態では、不揮発性メモリの書き込み及び消去のためのコンピュータ実施方法は、不揮発性メモリのｎ個の書き込みオペレーションに使用するためのコマンドウインドウのサイズを動的に決定することを含む。各書き込みオペレーションは、同じ期間を有し、そして動的に決定することは、動的な待ち時間の消去コマンドに基づく。動的な長い待ち時間の消去コマンドは、ｎのファクタでスライスされて、同じ期間を各々有する複数の消去スライスが与えられる。動的な長い待ち時間の消去コマンドは、不揮発性メモリの実際の状態に基づく。この方法は、更に、不揮発性メモリへのｎ個のコマンドを実行することを含み、各コマンドは、ｎ個の書き込みオペレーションの１つ及び消去スライスの１つの組合せより成る。１つの消去スライスの期間を１つの書き込みオペレーションの期間に加算した合計は、コマンドウインドウのサイズ以下である。
【０００６】
本発明の実施形態によれば、不揮発性メモリの書き込み及び消去のためのコンピュータ実施方法は、長い待ち時間の消去オペレーションを短い読み取り及び書き込みオペレーション内に隠し又は置き換える。一実施形態では、消去オペレーションの待ち時間は、消去オペレーションを、一般的な書き込みコマンドのタイミング包絡線内に適合させるために複数の書き込みコマンドに追加できる時間スライスへ分割することによって克服される。一実施形態では、書き込みコマンドは、追加消去時間のために長時間を要するが、実際には、典型的な厳格なコマンド時間よりはまだ短い。従って、複数の書き込みコマンドの後に完全な消去オペレーションが完了し、潜在消去コマンドをドロップする能力を与える。
【０００７】
一実施形態では、消去スライスの解決策を適用することにより、従来の長い消去時間のために受け容れられない用途にＮＯＲフラッシュを使用することができる。例えば、ＮＯＲ、及びより程度は小さいが、「ノットＡＮＤ」（ＮＡＮＤ）の消去時間は、典型的に、書き込み時間より非常に長い。このような消去待ち時間を取り扱いできない幾つかの用途がある。従来の解決策では、消去は、バックグランドへプッシュされて、完了まで実行することが許される。しかしながら、このような解決策では、装置を電源オンしてアイドル状態にすることが要求される。本発明の実施形態によれば、消去スライスの解決策を適用することにより、アイドルバックグランド時間も与えず、又、アイドル中に電力も与えない用途にＮＯＲフラッシュを使用することができる。他の実施形態では、消去スライスの解決策を適用することにより、従来の消去サイクルの待ち時間をサポートしないコマンド時間切れに厳密なタイミング制約を課するシステムにおいてあるフラッシュメモリ構成を具現化することができる。一実施形態では、従来のように動作されるフラッシュが受け容れられない電力及びコマンドタイミングを積極的に制御する用途においてＮＯＲフラッシュが具現化される。
【０００８】
不揮発性メモリの書き込み及び消去のためのコンピュータ実施方法を実行することができる。図１は、本発明の実施形態による不揮発性メモリの書き込み及び消去のためのコンピュータ実施方法のオペレーションを表すフローチャート１００である。
【０００９】
フローチャート１００のオペレーション１０２を参照すれば、不揮発性メモリの書き込み及び消去のためのコンピュータ実施方法は、不揮発性メモリのｎ個の書き込みオペレーションに使用するためのコマンドウインドウのサイズを決定することを含む。一実施形態では、各書き込みオペレーションは、同じ期間を有する。本発明の実施形態によれば、不揮発性メモリは、ＮＯＲフラッシュメモリである。
【００１０】
フローチャート１００のオペレーション１０４を参照すれば、この方法は、長い待ち時間の消去コマンドをｎのファクタでスライスして、複数の消去スライスを与えることを含む。一実施形態では、各消去スライスは、同じ期間を有する。
【００１１】
フローチャート１００のオペレーション１０６を参照すれば、この方法は、不揮発性メモリへのｎ個のコマンドを実行することを含み、各コマンドは、ｎ個の書き込みオペレーションの１つ及び消去スライスの１つの組合せより成る。一実施形態では、１つの消去スライスの期間を１つの書き込みオペレーションの期間に加算した合計は、コマンドウインドウのサイズ以下である。一実施形態では、１つの消去スライスの期間を１つの書き込みオペレーションの期間に加算した合計は、コマンドウインドウのサイズ未満である。本発明の実施形態によれば、ｎは、１０に等しく、コマンドウインドウのサイズは、約７２ミリ秒であり、１つの消去スライスの期間は、約７０ミリ秒であり、そして１つの書き込みオペレーションの期間は、約２ミリ秒である。しかしながら、スライシング解決策は、これらの特定のパラメータに限定されないことを理解されたい。更に、コマンドは、書き込みオペレーションに限定されず、消去スライスを、例えば、読み取りコマンドに追加できることを理解されたい。
【００１２】
消去ウインドウスライシング解決策は、時間線に対して可視化することができる。図２は、本発明の一実施形態により不揮発性メモリに書き込み及び消去するためのコンピュータ実施方法を概念的に示すブロック図である。
【００１３】
図２を参照すれば、ブロック図の時間線２００は、従来のコピーコマンド２０４及びそれに続く従来の潜在消去コマンド２０６に対するおおよその相対的絶対時間を表す直線的時間線２０２を含む。一実施形態では、従来の潜在消去コマンドは、再利用のための長い待ち時間のオペレーションであり、典型的に、バックグランドアイドル時間に遂行される。しかしながら、本発明の一実施形態によれば、消去スライシング解決策が具現化され、消去スライシングは、従来の潜在消去コマンド２０６の長い待ち時間の再利用オペレーションを行いそしてそれを複数のマルチ書き込み（プログラム）オペレーション２０８にわたってスライスする。従って、一実施形態では、長い待ち時間の消去コマンド２０６を排除する方法は、消去時間を消去スライスへ分割することによって遂行され、消去スライスは、次いで、書き込みオペレーションに追加される。一実施形態では、書き込み（プログラム）コマンドウインドウは、例えば、１００ミリ秒であり、従って、例えば、７００ミリ秒の従来の消去コマンドは、単一書き込み（プログラム）コマンドウインドウに適合しない。従って、一実施形態では、７００ミリ秒の消去時間が、各々７０ミリ秒の１０個のスライスに分割される。この実施形態では、各７０ミリ秒の消去スライスを、１０個のそれに対応する２ミリ秒書き込み（プログラム）期間に追加することができ、図２に示すように、コマンドごとに合計７２ミリ秒の時間となる。各書き込み（プログラム）コマンドに対する合計７２ミリ秒の時間は、１００ミリ秒のコマンドウインドウに適合する。
【００１４】
上述したように、例えば、ＮＯＲフラッシュに関連した長い待ち時間の消去時間を取り扱うことのできないシステムが幾つかある。例えば、ＮＯＲを使用するＨＤ−ＳＩＭカードは、ＨＤ−ＳＩＭ型アプリケーションとの互換性を許すために、上述した消去スライシング解決策を使用する必要がある。一実施形態では、消去スライシングは、長い待ち時間の消去オペレーションを複数のセグメントへ分割し、これらセグメントが書き込みコマンドに追加される。この実施形態では、消去時間が実際上見えないようにされる。しかしながら、この点まで述べた消去スライシングは、固定サイズの消去スライシングに焦点を当てたものであることに注意されたい。このような実施形態では、同じ消去時間巾が各書き込みコマンドに追加される。本発明の他の実施形態では、以下に述べるように、消去バックログ時間に一致するように消去時間スライスサイズを変化させる方法が具現化される。一実施形態では、このような動的な解決策は、システムの特定の実際の状態、消去時間スライスに対するリアルタイム解決策の形式に対してより敏感に反応する。
【００１５】
本発明の一実施形態によれば、動的な消去スライシングは、ダーティスペース（消去を必要とするスペース）が増加するにつれて消去スライスに割り当てられる消去時間を増加することにより具現化される。一実施形態では、動的な解決策は、動的な消去時間スライシングを遂行するように構成された不揮発性メモリを合体する特定のシステムの性能を高める。一実施形態では、動的な解決策は、消去時間スライスのサイズを変化させる技術に基づくものであり、この技術は、例えば、条件が保証するとき消去に割り当てられる時間をホストが長くできるようにするか、消去バックログが増加するときに消去時間を自動的に長くするか、又は消去バックログが増加するときに消去時間を長くするためにホストに推薦を与えるものであるが、これらに限定されない。一実施形態では、上述した固定サイズの消去スライシングは、全ての書き込みコマンドに同じ消去時間を追加するように構成される。しかしながら、動的な解決策のもとでは、以下に詳細に述べるように、ホストは、消去バックログが増加又は減少するときに消去スライスの期間のサイズを増加又は減少するか、或いは自動的に増加又は減少することができる。
【００１６】
一実施形態において、不揮発性メモリの管理されたエリアの密度に対して著しい量の空きスペースがあるときは、システムは、消去スライスサイズに割り当てられる時間を短くして、書き込みコマンドの見掛け上の性能を改善することができる。対照的に、別の実施形態において、不揮発性メモリの管理されたエリアの密度に対する空きスペースの量が少ないときは、システムは、フラッシュフル状態を防止する上で助けとなるように消去スライスサイズに割り当てられる時間を長くすることができる。従って、一実施形態では、上述した固定消去時間スライシングとは異なり、動的な消去時間スライスングは、システムが、ＮＯＲフラッシュメモリのような不揮発性メモリの実際の状態に応答できるようにする。一実施形態では、動的な消去時間スライスングは、フラッシュメモリの状態に基づいて消去スライス時間を長く又は短くできるようにする。特定の実施形態において、フラッシュメモリの状態が著しい空きスペースを有する場合には、消去時間スライスを減少して、システムの性能を改善することができる。対照的に、別の特定の実施形態では、フラッシュメモリの状態が著しいダーティスペースを有する場合に、消去時間スライスを増加して、より長い消去時間を許すことができる。一実施形態では、動的な消去時間スライスングを具現化することは、コマンドオペレーションのための非常に厳密なウインドウを有するＨＤ−ＳＩＭカードのような用途において消去オペレーションがエラーを生じるのを防止する上で助けとなる。一実施形態では、消去オペレーションの長い待ち時間に関連したエラーを防止する上で助けとすることにより、ＮＯＲフラッシュは、それがなければ適当でない用途に向けて具現化できる。
【００１７】
従って、不揮発性メモリの動的書き込み及び消去のためのコンピュータ実施方法を実行することができる。図３は、本発明の一実施形態により不揮発性メモリに動的に書き込み及び消去するためのコンピュータ実施方法におけるオペレーションを表すフローチャート３００である。
【００１８】
フローチャート３００のオペレーション３０２を参照すれば、不揮発性メモリの書き込み及び消去のためのコンピュータ実施方法は、不揮発性メモリのｎ個の書き込みオペレーションに使用するためのコマンドウインドウのサイズを動的に決定することを含む。一実施形態では、各書き込みオペレーションは、同じ期間を有し、そして動的に決定することは、動的な待ち時間の消去コマンドに基づいて行われる。本発明の一実施形態によれば、不揮発性メモリは、ＮＯＲフラッシュメモリである。
【００１９】
フローチャート３００のオペレーション３０４を参照すれば、この方法は、動的な長い待ち時間の消去コマンドをｎのファクタでスライスして、複数の消去スライスを与えることを含む。一実施形態では、各消去スライスは、同じ期間を有し、そして動的な長い待ち時間の消去コマンドは、不揮発性メモリの実際の状態に基づく。本発明の一実施形態によれば、不揮発性メモリの実際の状態は、小さな消去バックログより成り、そして動的な待ち時間の消去コマンドは、約５００ミリ秒である。本発明の別の実施形態によれば、不揮発性メモリの実際の状態は、大きな消去バックログより成り、そして動的な待ち時間の消去コマンドは、約１５００ミリ秒である。一実施形態では、不揮発性メモリのどのセクターがダーティであるか決定するのにアクセスアレイが使用され、従って、不揮発性メモリの実際の状態を決定するように具現化される。特定の実施形態では、アクセスアレイは、関連ランダムアクセスメモリ（ＲＡＭ）に記憶されたテーブルに設けられる。しかしながら、別の特定の実施形態では、アクセスアレイは、関連ＲＡＭではなく、関連装置又は領域に記憶されたテーブルに設けられる。
【００２０】
フローチャート３００のオペレーション３０６を参照すれば、この方法は、不揮発性メモリへのｎ個のコマンドを実行することを含み、各コマンドは、ｎ個の書き込みオペレーションの１つ及び消去スライスの１つの組合せより成る。一実施形態において、１つの消去スライスの期間を１つの書き込みオペレーションの期間に加算した合計は、コマンドウインドウのサイズ以下である。一実施形態では、１つの消去スライスの期間を１つの書き込みオペレーションの期間に加算した合計は、コマンドウインドウのサイズ未満である。本発明の実施形態によれば、ｎは、１０に等しく、コマンドウインドウのサイズは、約５２ミリ秒であり、１つの消去スライスの期間は、約５０ミリ秒であり、そして１つの書き込みオペレーションの期間は、約２ミリ秒である。別の実施形態では、ｎは、１０に等しく、コマンドウインドウのサイズは、約１５２ミリ秒であり、１つの消去スライスの期間は、約１５０ミリ秒であり、そして１つの書き込みオペレーションの期間は、約２ミリ秒である。しかしながら、スライシング解決策は、いずれかの実施形態に設けられる特定のパラメータに限定されないことを理解されたい。更に、コマンドは、書き込みオペレーションに限定されず、例えば、読み取りコマンドに消去スライスを追加できることを理解されたい。
【００２１】
動的消去ウインドウスライシング解決策は、時間線に対して可視化することができる。図４は、本発明の一実施形態により不揮発性メモリに動的に書き込み及び消去するためのコンピュータ実施方法を概念的に示すブロック図である。
【００２２】
図４を参照すれば、ブロック図の時間線４００は、２つの異なる動的スライシング具現化４１０及び４２０に対するおおよその相対的絶対時間を表す直線的時間線４０２を含む。図２から、本発明の一実施形態において、消去スライシング解決策は、従来の潜在消去コマンドの長い待ち時間の再利用オペレーションを行いそしてそれを複数のマルチ書き込み（プログラム）オペレーションにわたってスライスする、ことを想起されたい。ここに示す実施形態では、スライスのサイズは、動的に決定され、そして種々の状態において、不揮発性メモリの実際の状態（例えば、ダーティスペースの量）に基づいて相違する。しかしながら、いずれの実施形態においても、長い待ち時間の消去コマンドを排除する方法は、依然として、消去時間を消去スライスへと分割し、次いで、消去スライスを書き込みオペレーションへ追加することにより、遂行される。
【００２３】
一実施形態では、５００ミリ秒の消去時間（あまりダーティでない不揮発性メモリ）が各々５０ミリ秒の１０個のスライスへと分割される。この実施形態では、各５０ミリ秒の消去スライスを１０個のそれに対応する２ミリ秒書き込み（プログラム）期間に追加することができ、図４の複数のコマンドウインドウ４１０に示すように、コマンドごとに合計５２ミリ秒の時間となる。異なる実施形態では、１５００ミリ秒の消去時間（よりダーティな不揮発性メモリ）が各々１５０ミリ秒の１０個のスライスへと分割される。この実施形態では、各１５０ミリ秒の消去スライスを１０個のそれに対応する２ミリ秒書き込み（プログラム）期間に追加することができ、図４の複数のコマンドウインドウ４２０に示すように、コマンドごとに合計１５２ミリ秒の時間となる。従って、本発明の実施形態によれば、複数のプログラムウインドウの各々のサイズは、複数のプログラムコマンドが与えられるところの不揮発性メモリの実際の状態に基づいて動的に決定される。例えば、一実施形態では、小さな消去バックログがあり、プログラムコマンドの性能の認知できる改善を与えるようにスライス時間を短くすることができる。別の実施形態では、大きな消去バックログがあり、フォアグランド消去事象の機会を減少するようにスライス時間を長くすることができる。
【００２４】
一実施形態において、本発明は、本発明の実施形態による方法を遂行するようにコンピュータシステム（又は他の電子装置）をプログラムするのに使用されるインストラクションが記憶されたマシン読み取り可能な媒体を含むコンピュータプログラム製品又はソフトウェア製品として提供される。マシン読み取り可能な媒体は、マシン（例えば、コンピュータ）で読み取り可能な形態の情報を記憶又は送信するためのメカニズムを含む。例えば、一実施形態では、マシン読み取り可能な（例えば、コンピュータ読み取り可能な）媒体は、マシン（例えば、コンピュータ）読み取り可能な記憶媒体（例えば、リードオンリメモリ（ＲＯＭ）、ランダムアクセスメモリ（ＲＡＭ）、磁気ディスク記憶媒体、光学記憶媒体、フラッシュメモリ媒体、等）、マシン（例えば、コンピュータ）読み取り可能な送信媒体（電気的、光学的、音響的又は他の形態の伝播信号（例えば、搬送波、赤外線信号、デジタル信号、等））、等々を含む。一実施形態において、「コンピュータ実施」という語をここで使用するときは、プロセッサ実施を意味する。一実施形態において、ここに述べる方法の１つは、コンピュータそれ自体を有していないがプロセッサを有するセルラー電話のようなポータブル装置において実施される。
【００２５】
図５は、ここに述べる方法の１つ以上を遂行させるインストラクションのセットを実行するコンピュータシステム５００の形態のマシンの概略図である。例えば、本発明の一実施形態によれば、図５は、不揮発性メモリに書き込み及び消去するか、又は不揮発性メモリに動的に書き込み及び消去するように構成されたコンピュータシステムを例示するブロック図である。別の実施形態では、マシンは、ローカルエリアネットワーク（ＬＡＮ）、イントラネット、エクストラネット、又はインターネットにおける他のマシンに接続される（例えば、ネットワーク化される）。一実施形態では、マシンは、クライアント／サーバーネットワーク環境においてサーバー又はクライアントマシンの能力で動作するか、或いはピア・ツー・ピア（又は分散）ネットワーク環境においてピアマシンとして動作する。一実施形態では、マシンは、パーソナルコンピュータ（ＰＣ）、タブレットＰＣ、セットトップボックス（ＳＴＢ）、パーソナルデジタルアシスタント（ＰＤＡ）、セルラー電話、ウェブ機器、サーバー、ネットワークルーター、スイッチ又はブリッジ、或いはマシンにより行われるアクションを指定するインストラクションのセットを（順次に又はその他で）実行できるマシンである。更に、１つのマシンしか示されていないが、「マシン」という語は、ここに述べる方法の１つ以上を遂行するためのインストラクションのセット（又は複数セット）を個々に又は一緒に実行するマシン（例えば、コンピュータ又はプロセッサ）の集合も含むと考えねばならない。
【００２６】
コンピュータシステム５００は、例えば、プロセッサ５０２と、メインメモリ５０４（例えば、リードオンリメモリ（ＲＯＭ）、フラッシュメモリ、ダイナミックランダムアクセスメモリ（ＤＲＡＭ）、例えば、同期ＤＲＡＭ（ＳＤＲＡＭ）又はＲａｍｂｕｓＤＲＡＭ（ＲＤＲＡＭ）、等）と、スタティックメモリ５０６（例えば、フラッシュメモリ、スタティックランダムアクセスメモリ（ＳＲＡＭ）、等）と、二次メモリ５１８（例えば、データ記憶装置）とを含み、これらは、バス５３０を経て互いに通信する。
【００２７】
プロセッサ５０２は、１つ以上の汎用処理装置、例えば、マイクロプロセッサ、中央処理ユニット、等を表す。より詳細には、一実施形態において、プロセッサ５０２は、複合インストラクションセットコンピューティング（ＣＩＳＣ）マイクロプロセッサ、縮小インストラクションセットコンピューティング（ＲＩＳＣ）マイクロプロセッサ、超長インストラクションワード（ＶＬＩＷ）マイクロプロセッサ、他のインストラクションセットを具現化するプロセッサ、又はインストラクションセットの組合せを具現化するプロセッサである。一実施形態において、プロセッサ５０２は、１つ以上の特殊目的処理装置、例えば、特定用途向け集積回路（ＡＳＩＣ）、フィールドプログラマブルゲートアレイ（ＦＰＧＡ）、デジタル信号プロセッサ（ＤＳＰ）、ネットワークプロセッサ、等である。プロセッサ５０２は、ここに述べるオペレーションを遂行するための処理ロジック５２６を実行する。
【００２８】
一実施形態では、コンピュータシステム５００は、更に、ネットワークインターフェイス装置５０８を備えている。１つの実施形態では、コンピュータシステム５００は、ビデオディスプレイユニット５１０（例えば、液晶ディスプレイ（ＬＣＤ）又は陰極線管（ＣＲＴ））、アルファニューメリック入力装置５１２（例えば、キーボード）、カーソル制御装置５１４（例えば、マウス）、及び信号発生装置５１６（例えば、スピーカ）も含む。
【００２９】
一実施形態では、二次メモリ５１８は、ここに述べる方法又は機能の１つ以上を実施する１セット以上のインストラクション（例えば、ソフトウェア５２２）が記憶されたマシンアクセス可能な記憶媒体（又はより詳細には、コンピュータ読み取り可能な記憶媒体）５３１を含む。一実施形態では、ソフトウェア５２２は、メインメモリ５０４内に完全に又は少なくとも部分的に存在するか、或いはコンピュータシステム５００によるその実行中にはプロセッサ５０２内に存在し、メインメモリ５０４及びプロセッサ５０２は、マシン読み取り可能な媒体も構成する。一実施形態では、ソフトウェア５２２は、更に、ネットワーク５２０を経て、ネットワークインターフェイス装置５０８を経て送信される。
【００３０】
マシンアクセス可能な記憶媒体５３１は、一実施形態では、単一の媒体として示されているが、「マシン読み取り可能な記憶媒体」という語は、１セット以上のインストラクションを記憶する単一媒体又は複数媒体（例えば、集中型又は分散型データベース、或いは関連キャッシュ及びサーバー）を含むものと考えるべきである。又、「マシン読み取り可能な記憶媒体」という語は、マシンにより実行するためのインストラクションのセットを記憶し又はエンコードすることができ且つ本発明の実施形態の方法の１つ以上をマシンが遂行するようにさせる任意の媒体を含むものと考えるべきである。従って、「マシン読み取り可能な記憶媒体」という語は、これに限定されないが、ソリッドステートメモリ、光学媒体及び磁気媒体を含むものと考えるべきである。
【００３１】
本発明の実施形態によれば、ソフトウェアレイヤは、書き込みコマンドを管理し、消去スライスを各書き込みコマンドに追加する。又、一実施形態では、ソフトウェアレイヤは、消去状態及びその進行を追跡する。従って、一実施形態では、ここに述べるいずれの方法も、消去スライスを書き込みコマンドに追加し、次いで、消去状態及びその進行を追跡することにより機能する。その実施形態では、方法は、長い待ち時間の消去時間を、管理できるスライスへと分割して、書き込みオペレーションに追加することにより、その消去時間を排除する。動的な消去スライシングに関連した実施形態では、ソフトウェアレイヤは、消去時間スライスに割り当てられる時間を管理するように具現化される。一実施形態では、ソフトウェアレイヤは、消去時間を長くしたり短くしたりすることができる。特定の実施形態では、ソフトウェアレイヤは、空き対ダーティスペースの現在フラッシュ状態に基づいて消去スライスを自動的に増加又は減少する。この実施形態では、ソフトウェアレイヤは、フラッシュにおける空き対ダーティスペースを指示し、そして消去スライス時間をセットするための推薦を発生する。一実施形態では、スライシングインストラクションは、スライシングが適用されるフラッシュメモリに記憶され、このフラッシュメモリにおいてスライシングインストラクションが実行される。別の実施形態では、スライシングインストラクションは、スライシングが適用されるフラッシュメモリに記憶され、このフラッシュメモリに関連したホストプロセッサのＲＡＭにおいてスライシングインストラクションが実行される。
【００３２】
本発明の一実施形態によれば、マシンアクセス可能な記憶媒体は、不揮発性メモリの書き込み及び消去のための方法をデータ処理システムが遂行するようにさせるインストラクションを記憶している。一実施形態では、この方法は、不揮発性メモリのｎ個の書き込みオペレーションに使用するためのコマンドウインドウのサイズを決定することを含み、各書き込みオペレーションは、同じ期間を有する。この方法は、更に、長い待ち時間の消去コマンドをｎのファクタでスライスして、同じ期間を各々有する複数の消去スライスを与えることも含む。この方法は、更に、不揮発性メモリへのｎ個のコマンドを実行することも含み、各コマンドは、ｎ個の書き込みオペレーションの１つ及び消去スライスの１つの組合せより成り、１つの消去スライスの期間を１つの書き込みオペレーションの期間に加算した合計は、コマンドウインドウのサイズ以下である。
【００３３】
マシンアクセス可能な記憶媒体の一実施形態では、１つの消去スライスの期間を１つの書き込みオペレーションの期間に加算した合計は、コマンドウインドウのサイズ未満である。マシンアクセス可能な記憶媒体の一実施形態では、関連不揮発メモリは、ＮＯＲフラッシュメモリである。マシンアクセス可能な記憶媒体の一実施形態では、ｎは、１０に等しく、コマンドウインドウのサイズは、約７２ミリ秒であり、１つの消去スライスの期間は、約７０ミリ秒であり、そして１つの書き込みオペレーションの期間は、約２ミリ秒である。マシンアクセス可能な記憶媒体の一実施形態では、コマンドウインドウのサイズの決定が、動的な待ち時間の消去コマンドに基づいて動的に遂行され、そして長い待ち時間の消去コマンドのスライシングは、動的な長い待ち時間の消去コマンドをスライシングすることを含み、動的な長い待ち時間の消去コマンドは、不揮発性メモリの実際の状態に基づく。動的な待ち時間の消去コマンドを含む１つのこのような実施形態では、１つの消去スライスの期間を１つの書き込みオペレーションの期間に加算した合計がコマンドウインドウのサイズ未満である。動的な待ち時間の消去コマンドを含む別のこのような実施形態では、不揮発性メモリがＮＯＲフラッシュメモリである。一実施形態では、ｎは、１０に等しく、コマンドウインドウのサイズは、約５２ミリ秒であり、１つの消去スライスの期間は、約５０ミリ秒であり、そして１つの書き込みオペレーションの期間は、約２ミリ秒である。別の実施形態では、ｎは、１０に等しく、コマンドウインドウのサイズは、約１５２ミリ秒であり、１つの消去スライスの期間は、約１５０ミリ秒であり、そして１つの書き込みオペレーションの期間は、約２ミリ秒である。従って、本発明の一実施形態によれば、複数のプログラムウインドウの各々のサイズは、複数のプログラムコマンドが与えられる不揮発性メモリの実際の状態に基づいて動的に決定される。例えば、一実施形態では、小さな消去バックログがあり、プログラムコマンドの性能の認知できる改善を与えるようにスライス時間を短くすることができる。別の実施形態では、大きな消去バックログがあり、フォアグランド消去事象の機会を減少するようにスライス時間を長くすることができる。
【００３４】
本発明の一実施形態によれば、ここに述べる方法又は解決策は、長い待ち時間の消去コマンドを排除するためにＮＯＲフラッシュのような不揮発性メモリに関連して具現化することができる。一実施形態では、消去スライシングで動作するように構成されたＮＯＲフラッシュは、小さなコマンドウインドウを有し、積極的な電力管理を行い、或いはバックグランドオペレーションの時間がないか又は制限されている用途に、このようなフラッシュメモリを使用できるようにする。一実施形態では、固定時間スライスが具現化される。しかしながら、別の実施形態では、消去時間スライスをフラッシュメモリの状態に一致し易くする動的なスライシングが具現化される。この実施形態では、消去時間スライスのサイズ（絶対的時間での）が必要に応じて増加又は減少される。一実施形態では、消去時間スライスを増加すると、より多くの時間を消去に割り当てることができ、そしてシステムは、固定時間スライスより多くのスペースをクリーンにすることができる。別の実施形態では、時間スライスを減少すると、システムは、固定時間スライスよりシステムに対するより大きな反応を見せることができる。
【００３５】
従って、不揮発性メモリの書き込み及び消去のためのコンピュータ実施方法が開示された。本発明の実施形態によれば、この方法は、不揮発性メモリのｎ個の書き込みオペレーションに使用するためのコマンドウインドウのサイズを決定することを含み、各書き込みオペレーションは、同じ期間を有する。長い待ち時間の消去コマンドをｎのファクタでスライスして、同じ期間を各々有する複数の消去スライスを与える。この方法は、更に、不揮発性メモリへのｎ個のコマンドを実行することも含み、各コマンドは、ｎ個の書き込みオペレーションの１つ及び消去スライスの１つの組合せより成る。１つの消去スライスの期間を１つの書き込みオペレーションの期間に加算した合計は、コマンドウインドウのサイズ以下である。一実施形態では、１つの消去スライスの期間を１つの書き込みオペレーションの期間に加算した合計がコマンドウインドウのサイズ未満である。一実施形態では、不揮発性メモリは、ＮＯＲフラッシュメモリである。
【符号の説明】
【００３６】
２００：時間線
２０２：直線的時間線
２０４：コピーコマンド
２０６：潜在消去コマンド
２０８：書き込みオペレーション
４００：時間線
４０２：直線的時間線
４１０、４２０：動的スライシング具現化
５０２：プロセッサ
５０４：メインメモリ
５０６：スタティックメモリ
５０８：ネットワークインターフェイス装置
５１０：ビデオディスプレイ
５１２：アルファニューメリック入力装置
５１４：カーソル制御装置
５１６：信号発生装置
５１８：二次メモリ
５２０：ネットワーク
５２２：ソフトウェア
５２６：処理ロジック
５３０：バス
５３１：マシンアクセス可能な記憶媒体
【図１】
2010250932.tif 000003
【図２】
2010250932.tif 000004
【図３】
2010250932.tif 000005
【図４】
2010250932.tif 000006
【図５】
2010250932.tif 000007
【外国語明細書】
2010250932.tif 000008
2010250932.tif 000009
2010250932.tif 000010
2010250932.tif 000011
2010250932.tif 000012
2010250932.tif 000013
2010250932.tif 000014
2010250932.tif 000015
2010250932.tif 000016
2010250932.tif 000017
2010250932.tif 000018
2010250932.tif 000019
2010250932.tif 000020
2010250932.tif 000021
2010250932.tif 000022
2010250932.tif 000023
2010250932.tif 000024
2010250932.tif 000025
2010250932.tif 000026
2010250932.tif 000027
2010250932.tif 000028
2010250932.tif 000029
2010250932.tif 000030
2010250932.tif 000031
2010250932.tif 000032
2010250932.tif 000033
2010250932.tif 000034
2010250932.tif 000035
2010250932.tif 000036