(57)【特許請求の範囲】
【請求項１】
フラッシュメモリにおけるデータアクセス方法であって、
フラッシュメモリコントローラを用いてホスト端末から第１のデータを受け取るステップと、
前記第１のデータを、前記フラッシュメモリコントローラから前記フラッシュメモリのシングルレベルセルに転送して書き込むステップと、
前記フラッシュメモリコントローラが前記ホスト端末から第２のデータを受け取ったときに、前記フラッシュメモリコントローラを用いてコピーバックプログラムを実行するステップであり、前記シングルレベルセルに格納された前記第１のデータの少なくとも一部を、マルチレベルセルにマージする、ステップとを有し、
前記フラッシュメモリコントローラを用いてコピーバックプログラムを実行するステップは、前記シングルレベルセルに格納された前記第１のデータの少なくとも一部を、前記フラッシュメモリのバッファにコピーするステップと、前記第１のデータの少なくとも一部を、前記フラッシュメモリのバッファから読み出し、前記マルチレベルセルに書き込むステップとを有する、
データアクセス方法。
【請求項２】
前記フラッシュメモリコントローラを用いてコピーバックプログラムを実行するステップの間、前記第１のデータの少なくとも一部は前記フラッシュメモリコントローラのバッファを占有しない、
請求項１に記載のデータアクセス方法。
【請求項３】
前記シングルレベルセルに格納された第１のデータの少なくとも一部を前記マルチレベルセルにマージした後、前記ホスト端末から受け取った第２のデータを、前記フラッシュメモリコントローラから前記シングルレベルセルに書き込むステップをさらに有する、
請求項１に記載のデータアクセス方法。
【請求項４】
前記マルチレベルセルはトリプルレベルセルであり、前記第１のデータの少なくとも一部は、前記第１のデータの最下位ビット（ＬＳＢ）、中位ビット（ＣＳＢ）、及び最上位ビット（ＭＳＢ）のうちの少なくとも一である、
請求項３に記載のデータアクセス方法。
【請求項５】
前記マルチレベルセルはトリプルレベルセルであり、前記シングルレベルセルに格納された第１のデータの少なくとも一部を前記マルチレベルセルにマージするステップは、
前記シングルレベルセルに格納された前記第１のデータの最下位ビット、中位ビット、及び最上位ビットのうち少なくとも一を、前記トリプルレベルセルにマージするステップを有する、
請求項１に記載のデータアクセス方法。
【請求項６】
前記フラッシュメモリコントローラが前記ホスト端末から前記第２のデータに関する書き込みコマンドを受け取った時に、前記第１のデータを、前記フラッシュメモリコントローラから前記フラッシュメモリの前記シングルレベルセルに転送して書き込み、前記フラッシュメモリコントローラを用いて前記シングルレベルセルに格納された前記第１のデータの少なくとも一部を、前記マルチレベルセルにマージするステップをさらに有する、
請求項１に記載のデータアクセス方法。
【請求項７】
前記フラッシュメモリコントローラが前記ホスト端末から第２のデータを受け取る時点は、前記フラッシュメモリコントローラが前記コピーバックプログラムを実行して前記シングルレベルセルに格納された前記第１のデータの少なくとも一部を前記マルチレベルセルにマージする時点と実質的に等しい、
請求項１に記載のデータアクセス方法。
【請求項８】
前記第１のデータと前記第２のデータは、それぞれ前記ホスト端末の異なる書き込みコマンドに対応する、
請求項１に記載のデータアクセス方法。
【請求項９】
データを格納するように構成されたフラッシュメモリと、
前記フラッシュメモリに結合したフラッシュメモリコントローラであって、ホスト端末から第１のデータを受け取り、前記第１のデータを、前記フラッシュメモリコントローラから前記フラッシュメモリのシングルレベルセルに転送して書き込むように構成されたフラッシュメモリコントローラとを有し、
前記フラッシュメモリコントローラは、前記ホスト端末から第２のデータを受け取ったときに、コピーバックプログラムを実行して前記シングルレベルセルに格納された前記第１のデータの少なくとも一部を、マルチレベルセルにマージし、
前記フラッシュメモリコントローラは、前記シングルレベルセルに格納された前記第１のデータの少なくとも一部を前記フラッシュメモリのバッファにコピーし、前記フラッシュメモリのバッファから前記第１のデータの少なくとも一部を読み出し、前記マルチレベルセルに書き込む、
フラッシュメモリ装置。
【請求項１０】
前記フラッシュメモリコントローラが前記コピーバックプログラムを実行する間、前記第１のデータの少なくとも一部は前記フラッシュメモリコントローラのバッファを占有しない、
請求項９に記載のフラッシュメモリ装置。
【請求項１１】
前記シングルレベルセルに格納された第１のデータの少なくとも一部を前記マルチレベルセルにマージした後、前記コピーバックプログラムがすぐに、前記ホスト端末から受け取った第２のデータを、前記シングルレベルセルに書き込む、
請求項９に記載のフラッシュメモリ装置。
【請求項１２】
前記マルチレベルセルはトリプルレベルセルであり、前記第１のデータの少なくとも一部は、前記第１のデータの最下位ビット（ＬＳＢ）、中位ビット（ＣＳＢ）、及び最上位ビット（ＭＳＢ）のうちの少なくとも一である、
請求項１１に記載のフラッシュメモリ装置。
【請求項１３】
前記マルチレベルセルはトリプルレベルセルであり、前記フラッシュメモリコントローラは、前記コピーバックプログラムを実行して、前記シングルレベルセルに格納された前記第１のデータの最下位ビット、中位ビット、及び最上位ビットのうち少なくとも一を前記トリプルレベルセルにマージする、
請求項９に記載のフラッシュメモリ装置。
【請求項１４】
前記フラッシュメモリコントローラは、前記ホスト端末から前記第２のデータに関する書き込みコマンドを受け取った時に、前記第１のデータを、前記フラッシュメモリの前記シングルレベルセルに転送して書き込み、前記シングルレベルセルに格納された前記第１のデータの少なくとも一部を、前記マルチレベルセルにマージする、
請求項９に記載のフラッシュメモリ装置。
【請求項１５】
前記フラッシュメモリコントローラが前記ホスト端末から第２のデータを受け取る時点は、前記フラッシュメモリコントローラが前記コピーバックプログラムを実行して前記シングルレベルセルに格納された前記第１のデータの少なくとも一部を前記マルチレベルセルにマージする時点と実質的に等しい、
請求項９に記載のフラッシュメモリ装置。
【請求項１６】
前記第１のデータと前記第２のデータは、それぞれ前記ホスト端末の異なる書き込みコマンドに対応する、
請求項９に記載のフラッシュメモリ装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明の開示の実施形態は、フラッシュメモリのデータアクセス機構に関し、より具体的には、フラッシュメモリのデータアクセス方法とこれに関連するフラッシュメモリ装置とに関する。
【背景技術】
【０００２】
一般的に、記憶容量を増やすために、従来技術ではマルチレベル記憶コンポーネントを用いてフラッシュメモリを作ることが多い。マルチレベル記憶コンポーネントは、例えば、マルチレベルセル（ＭＬＣ）やトリプルレベルセル（ＴＬＣ）である。しかし、マルチレベル記憶コンポーネントを使うと、記憶容量が大きくなるとの利益はあるが、相対的に見てデータの読み書き時間が長くなる。言い換えると、マルチレベル記憶コンポーネントを用いるフラッシュメモリでは、全体的な効率が下がる。フラッシュメモリのデータアクセス効率が低いと、ホスト端末は、ユーザがフラッシュメモリコントローラを介してフラッシュメモリにデータを書き込むたびに、メモリ書き込みプロセスが終わるのを待たなければならない。ホスト端末は、その後でなければ、次のメモリ書き込みプロセスを実行できない。それゆえ、ユーザは、一連のデータをフラッシュメモリに書き込む必要がある場合、非常に長い時間待たなければならない。すなわち、マルチレベル記憶コンポーネントを用いると、記憶容量は大きくできるが、データアクセス効率が低くなり、データアクセス時間が長くなるという欠点がある。
［関連出願への相互参照］
本出願は、２０１２年６月４日に出願し、ここに参照援用する米国仮出願第６１／６５４，９６４号の利益を主張するものである。
【発明の概要】
【０００３】
それゆえ、本発明の複数の目的のうちの一目的は、上記の問題を解決する、フラッシュメモリのデータアクセス方法と、これに関連するフラッシュメモリ装置とを提供することである。
【０００４】
本発明の一実施形態による、フラッシュメモリにおけるデータアクセス方法を開示する。該データアクセス方法は、フラッシュメモリコントローラを用いてホスト端末から第１のデータを受け取るステップと、前記第１のデータを、前記フラッシュメモリコントローラから前記フラッシュメモリのシングルレベルセルに転送して書き込むステップと、前記フラッシュメモリコントローラが前記ホスト端末から第２のデータを受け取ったとき、前記フラッシュメモリコントローラを用いてコピーバックプログラムを実行して前記シングルレベルセルに格納された前記第１のデータの少なくとも一部を、マルチレベルセルにマージするステップとを有する。
【０００５】
本発明の他の一実施形態による、フラッシュメモリ装置を開示する。該フラッシュメモリ装置は、フラッシュメモリとフラッシュメモリコントローラとを含む。フラッシュメモリはデータを格納するように構成されている。該フラッシュメモリコントローラは、フラッシュメモリに結合され、ホスト端末から第１のデータを受け取り、第１のデータをフラッシュメモリコントローラからフラッシュメモリのシングルレベルセルに転送して書き込むように構成されている。フラッシュメモリコントローラがホスト端末から第２のデータを受け取ったとき、フラッシュメモリコントローラを用いてコピーバックプログラムを実行して前記シングルレベルセルに格納された前記第１のデータの少なくとも一部を、マルチレベルセルにマージする。
【０００６】
当業者には、様々な図面に示した好ましい実施形態の詳細な説明を読めば、本発明の上記その他の目的が明らかにあるであろう。
【図面の簡単な説明】
【０００７】
【図１】本発明の好ましい一実施形態によるフラッシュメモリ装置を示す図である。
【図２】本発明の第１の実施形態による、図１に示したフラッシュメモリ装置のデータ書込プロセスを示すタイミング図である。
【図３】本発明の第２の実施形態による、図１に示したフラッシュメモリ装置のデータ書込プロセスを示すタイミング図である。
【図４】本発明の第３の実施形態による、図１に示したフラッシュメモリ装置のデータ書込プロセスを示すタイミング図である。
【図５】本発明の第４の実施形態による、図１に示したフラッシュメモリ装置のデータ書込プロセスを示すタイミング図である。
【図６】本発明の第５の実施形態による、図１に示したフラッシュメモリ装置のデータ書込プロセスを示すタイミング図である。
【図７】本発明の他の一実施形態による、図５に示したフラッシュメモリ装置のデータ書込プロセスを示すタイミング図である。
【図８Ａ】本発明の一実施形態による、データキャッシュプロセス無しにデータを書き込む、図１に示したフラッシュメモリ装置のデータ書込プロセスを示すタイミング図である。
【図８Ｂ】本発明の一実施形態による、データキャッシュプロセスによりデータを書き込む、図１に示したフラッシュメモリ装置のデータ書込プロセスを示すタイミング図である。
【図９】本発明の一実施形態による、図１に示したフラッシュメモリ装置のデータ書込プロセスを示すタイミング図である。
【図１０】本発明の他の一実施形態による、図１に示したフラッシュメモリ装置のデータ書込プロセスを示すタイミング図である。
【図１１】本発明のさらに別の一実施形態による、図１に示したフラッシュメモリ装置のデータ書込プロセスを示すタイミング図である。
【発明を実施するための形態】
【０００８】
発明の詳細な説明と特許請求の範囲では、特定のコンポーネントを指す一定の用語を用いる。当業者には言うまでもないが、生産者は同じコンポーネントを異なる名前で呼ぶことがある。本文献では、名前は違うが機能が同じであるコンポーネントを区別しない。以下の説明及び特許請求の範囲では、「含む（include）」、「有する（comprise）」との用語はオープンエンドとして用い、何かを「含むが、それに限定されない」ことを意味するものとして解釈すべきである。また、「結合（couple）」との用語は、間接的な又は直接的な電気的接続を意味するものとする。したがって、あるデバイスが他のデバイスに電気的に接続されている場合、その接続は直接的な電気的接続であっても、他のデバイスとの接続を介した間接的な電気的接続であってもよい。
【０００９】
図１を参照するに、本発明の好ましい一実施形態によるフラッシュメモリ装置１００を示す図である。フラッシュメモリ装置１００は、フラッシュメモリコントローラ１０５とフラッシュメモリ１１０とを含む。フラッシュメモリ装置１００は、外部のホスト端末１１５に接続されている。フラッシュメモリコントローラ１０５はバッファ１０５１を含む。フラッシュメモリ１１０は、複数のシングルレベルセル（ＳＬＣ）１１０１Ａ−１１０１Ｃと、複数のマルチレベルセル（ＭＬＣ）１１０２（図１には代表として一セルのみを示した）と、バッファ１１０３（データキャッシュメカニズムが組み込まれていてもよい）とを含む。データは、フラッシュメモリ１１０に格納される時、複数のＭＬＣ１１０２に格納される。この実施形態では、各ＭＬＣ１１０２は、トリプルレベルセル（ＴＬＣ）であり、３つのＳＬＣ１１０１Ａ−１１０１Ｃと協働して高速データアクセスを実現する。しかし、これは本発明の限定ではない。他の実施形態では、各ＭＬＣ１１０２は、２レベルのマルチレベルセルであり、２つのＳＬＣ１１０１Ａ−１１０１Ｂと協働して高速データアクセスを実現する。言い換えると、本発明はＳＬＣの数や各ＭＬＣのレベルには限定されない。実現可能な設計はすべて本発明の範囲に属する。
【００１０】
データ書込プロセスの場合、ホスト端末１１５は、まず、フラッシュメモリコントローラ１０５にデータ書込プロセスを実行することを知らせるため、フラッシュメモリコントローラ１０５に書き込みコマンドを送る。一方、ホスト端末１１５は、フラッシュメモリコントローラ１０５に、書き込むデータを送る。フラッシュメモリコントローラ１０５では、データは一時的にバッファ１０５１にバッファされる。その後、フラッシュメモリコントローラ１０５は、バッファにバッファされたデータをフラッシュメモリ１１０に送る。本発明の上記実施形態では、フラッシュメモリコントローラ１０５のデータ書込時間を短縮して効率を上げるため、フラッシュメモリコントローラ１０５がバッファ１０５１に一時的にバッファされたデータをフラッシュメモリ１１０に書き込む時、データは最初にＳＬＣ１１０１Ａ−１１０１Ｃに書き込まれ、次にＴＬＣ１１０２にマージ（merge）される。フラッシュメモリコントローラ１０５がフラッシュメモリ１１０にマージ操作（merging  operation）を行うと、データはＳＬＣ１１０１Ａ−１１０１Ｃから読み出され、フラッシュメモリ１１０のバッファ１１０３に一時的に格納される。次に、データはバッファ１１０３からＴＬＣ１１０２に転送される。言い換えると、データ書き込みプロセスのマージ操作は、フラッシュメモリコントローラ１０５のバッファ１０５１の記憶容量を占有せずに、フラッシュメモリ１１０のバッファ１１０３を用いて実現される。それゆえ、データ書き込みプロセスの前記マージ操作が行われている間に、フラッシュメモリコントローラ１０５は、バッファ１０５１により、ホスト端末１１５から来る次のデータをバッファし一時的に格納できる。よって、フラッシュメモリコントローラ１０５は、ＴＬＣ１１０２にデータ書き込みが終わるのを待つのに時間を費やさない。その替わりに、フラッシュメモリコントローラ１０５は、ＴＬＣ１１０２のデータ書き込みをアクティブにするのと同時に、次のデータをバッファする。それゆえ、フラッシュメモリコントローラ１０５は全体的な効率が高く、それによりフラッシュメモリ１００は、データの読み出し／書き込みレートが４ＭＢ／ｓであるフラッシュメモリクラス４標準などの高いレベルの転送仕様を満たすことができる。
【００１１】
本発明の提案の方法の実施を次に説明する。例えば、ホスト端末１１５は、第１の書き込みデータ、第２の書き込みデータ、第３の書き込みデータを、フラッシュメモリコントローラ１０５に順次送る。フラッシュメモリコントローラ１０５は、各書き込みデータに対して、まず書き込みデータを受け取り、受け取った書き込みデータをフラッシュメモリ１１０のＳＬＣに書き込む。例えば、フラッシュメモリコントローラ１０５は、第１の書き込みデータをＳＬＣ（ＳＬＣ１１０１Ａ−１１０１Ｃのうちのひとつ）に書き込む。その後、フラッシュメモリコントローラ１０５は第２の書き込みデータを受け取る。フラッシュメモリコントローラ１０５は、第２の書き込みデータを受け取りつつ、フラッシュメモリ１１０のコピーバックプログラムを実行し、ＳＬＣに格納されている第１の書き込みデータの少なくとも一部をフラッシュメモリ１１０のＭＬＣ１１０２にマージ（merge）することを開始する。コピーバックプログラムは、バッファ１１０３を用いたマージ操作（merging  operation）を実現する。すなわち、フラッシュメモリコントローラ１０５のバッファ１０５１は、データ書き込みプロセスのマージ操作には関与せず、占有されない。留意点として、この実施形態では、フラッシュメモリ１１０の記憶セルはＴＬＣであり、第１の書き込みデータの少なくとも一部とは、第１の書き込みデータの最下位ビット（ＬＳＢ）、中位ビット（central  significant  bit、ＣＳＢ）、又は最上位ビット（ＭＳＢ）のうちの少なくともひとつである。言い換えると、書き込みデータの一部にはＬＳＢ、ＣＳＢ、又はＭＳＢのデータが含まれる。ＬＳＢ、ＣＳＢ、及びＭＳＢデータをマージする操作は、第１の、第２の、及び第３のマージ操作と見なせることに留意されたい。しかし、データ書き込み順序に関して、上記の操作は、マージされたデータ（merged  data）を同じワードラインに書き込むのではなく、データマージの順序に基づく。これは本発明がフォーカスする点ではないので、説明の簡略化のため、ここではその詳細は省略する。
【００１２】
図２を参照されたい。図２は、本発明の第１の実施形態による、図１に示したフラッシュメモリ装置１００のデータ書込プロセスを示すタイミング図である。図２に示したように、斜線で示した（marked）領域Ｒ１−Ｒ３は、ホスト端末１１５が、データ書き込みコマンドにより、フラッシュメモリコントローラ１０５のバッファ１０５１にデータを一時的に格納する時間を表す。例えば、データは１６ＫＢデータがふたつである。言い換えると、ホスト端末１１５は、データ書き込みコマンドを実行することにより、３２ＫＢデータをバッファ１０５１に送る（move）。ドットで示した領域Ｙ１−Ｙ３は、フラッシュメモリコントローラ１０５が、一時的にバッファされたデータを、フラッシュメモリ１１０のＳＬＣに転送して書き込むのに必要な時間（time  periods）である。クロスラインで示した領域は、それぞれフラッシュメモリ１１０がコピーバックプログラム（copy  back  program）を開始して、データ書き込みプロセスを実行するのに必要な時間である。Ｂ０，Ｂ１，Ｂ２は（ＬＳＢを書き込む）第１のマージ操作に必要な時間である。Ｂ０’，Ｂ１’，Ｂ２’は（ＣＳＢを書き込む）第２のマージ操作に必要な時間である。Ｂ０”，Ｂ１”，Ｂ２”は（ＭＳＢを書き込む）第３のマージ操作に必要な時間である。図２に示したように、時点ｔ１において、ホスト端末１１５は、データ書き込みコマンドにより３２ＫＢデータ書き込みプロセスを実行し、３２ＫＢデータＲ１をフラッシュメモリコントローラ１０５に転送する。同時に、フラッシュメモリ１１０のコピーバックプログラムが開始され、ＳＬＣに格納された前のデータがＴＬＣにマージされるように、データ書き込みプロセスの３つのマージ操作が実行される。Ｂ０，Ｂ０’、Ｂ０”は、ＳＬＣからの前のデータをＴＬＣにマージするのに必要な時間である（すなわち、ＬＳＢ、ＣＳＢ、及びＭＳＢをそれぞれ書き込むのに必要な時間である）。ＭＳＢデータが完全にマージ（merge）されると、フラッシュメモリコントローラ１０５は、バッファされた３２ＫＢデータをフラッシュメモリ１１５に転送する。Ｙ１はデータを転送して書き込むのに必要な時間である。Ｙ１の終了後、ホスト端末１１５は、時点ｔ２において、次のデータ書き込みコマンドにより、次のデータＲ２をバッファ１０５１に転送して書き込む。一方、フラッシュメモリ１１０のコピーバックプログラム（copy  back  program）が開始され、ＳＬＣに格納された前のデータがＴＬＣにマージされるように、データ書き込みプロセスの３つのマージ操作が実行される。Ｂ０，Ｂ０’，Ｂ０”は、ＳＬＣからの前のデータをＴＬＣにマージするのに必要な時間であり、以下同様である。以上の説明から分かるように、図２に示した実施形態では、ホスト端末１１５がデータ書き込みコマンドによりデータをバッファ１０５１に転送して書き込む時間は、３つのマージ操作の時間とそれぞれ重なる。すなわち、バッファ１０５１にデータが転送され書き込まれる時、マージ及び書き込みの操作が同時に実行される。留意点として、図２に示した実施形態では、フラッシュメモリ１１０において３つのコピーバックプログラムが完了してから、ＳＬＣデータ書き込みプロセスが実行される。しかし、これは本発明を限定するものではない。さらに、時間Ｒ１と時間Ｒ２に受け取られたデータがそれぞれ第１のデータと第２のデータとすると、フラッシュメモリコントローラ１０５がホスト端末１１５から第２のデータを受け取り始める時点（Ｒ２の開始時点）は、フラッシュメモリコントローラ１０５がＳＬＣに格納された第１のデータの少なくとも一部をＭＬＣにマージして書き込むコピーバックプログラムの実行を開始する時点（Ｂ１の開始時点）に実質的に等しい。
【００１３】
また、他の実施形態では、ホスト端末１１５がデータ書き込みコマンドにより３２ＫＢデータをバッファ１０５１に転送して書き込む時間は、２つのマージ及び書き込みプロセスのみの時間と重なっても良い。例えば、バッファ１０５１にデータが転送され書き込まれる時、ＬＳＢデータとＣＳＢデータを書き込む第１と第２のマージ及び書き込みプロセスが実行される。バッファ１０５１に次の３２ＫＢデータが転送され書き込まれた時、（ＭＳＢデータを書き込む）第３のマージプロセスが実行される。
【００１４】
図３を参照されたい。図３は、本発明の第２の実施形態による、図１に示したフラッシュメモリ装置１００のデータ書込プロセスを示すタイミング図である。図３に示したように、時点ｔ１において、ホスト端末１１５は、フラッシュメモリコントローラ１０５に３２ＫＢデータＲ１を転送するように、データ書き込みコマンドにより３２ＫＢデータ書き込みプロセスを実行する。同時に、フラッシュメモリ１１０のコピーバックプログラムが開始され、データ書き込みプロセスの２つのマージ操作が実行される。ＳＬＣに格納された前のＬＳＢデータとＣＳＢデータがＴＬＣにマージされる。Ｂ０とＢ０’は、ＳＬＣからの前の３２ＫＢデータをＴＬＣにマージするのに必要な時間である。この例では、２つのマージ及び書き込みプロセスに必要な時間はＲ１より短い。それゆえ、フラッシュメモリコントローラ１０５は、Ｒ１の後に、バッファ１０５１に一時的に格納された３２ＫＢデータをフラッシュメモリ１１０に転送して書き込む。Ｙ１はデータを転送して書き込むのに必要な時間である。ホスト端末１１５は、Ｙ１の後に、次のデータ書き込みコマンドにより時間Ｒ２内に、次の３２ＫＢデータをバッファ１０５１に転送して書き込む。一方、フラッシュメモリ１１０のコピーバックプログラムが再び開始され、データ書き込みプロセスの第３のマージ操作が実行される。ＳＬＣに格納された前のＭＳＢデータはＴＬＣにマージされる。Ｂ０”は、ＳＬＣからの前のデータをＴＬＣにマージするのに必要な時間である。フラッシュメモリコントローラ１０５は、Ｂ０”＞Ｒ２なので、Ｂ０”の終了後に、時間Ｒ２中に転送された３２ＫＢデータをバッファ１０５１からフラッシュメモリ１１０に転送して書き込むことができる。以下同様である。上記の説明から分かるように、図３に示した実施形態では、３つのマージ及び書き込みプロセスに必要な時間は、それぞれ２つのマージ及び書き込みプロセスの時間と重なる。留意点として、ＳＬＣデータ書き込みプロセスは、図３に示した実施形態によりフラッシュメモリ１１０において２つのコピーバックプログラム（すなわち、第１と第２のマージ及び書き込みプロセス）が完了した後に、ＳＬＣデータ書き込みプロセスが実行され、次に第３のマージ及び書き込みプロセスが実行される。しかし、これは本発明を限定するものではない。
【００１５】
図４を参照されたい。図４は、本発明の第３の実施形態による、図１に示したフラッシュメモリ装置１００のデータ書込プロセスを示すタイミング図である。図３と図４に示した実施形態の違いは、図４では、第３のマージ及び書き込みプロセスを実行するフラッシュメモリ１１０のコピーバックプログラムに必要な時間が短いことである。図４に示すように、時間Ｂ０”は転送時間Ｒ２より短い。それゆえ、転送時間Ｒ２が過ぎると、フラッシュメモリコントローラ１０５は、時間Ｒ２中に転送された３２ＫＢデータを、バッファ１０５１からフラッシュメモリ１１０に、転送及び書き込みできる（要する時間はＹ２で示した）。以下同様である。留意点として、ＳＬＣデータ書き込みプロセスは、図４に示した実施形態によりフラッシュメモリ１１０において２つのコピーバックプログラム（すなわち、第１と第２のマージ及び書き込みプロセス）が完了した後に、ＳＬＣデータ書き込みプロセスが実行され、次に第３のマージ及び書き込みプロセスが実行される。しかし、これは本発明を限定するものではない。
【００１６】
さらに、本発明においては、一データのサイズに限定はない。他の実施形態では、一データのサイズは３２ＫＢでなく１６ＫＢであってもよい。それゆえ、ホスト端末１１５からフラッシュメモリコントローラ１０５にデータ書き込みコマンドが送られると、１６ＫＢデータ書き込みプロセスが実行される。  例えば、図５を参照されたい。図５は、本発明の第４の実施形態による、図１に示したフラッシュメモリ装置１００のデータ書込プロセスを示すタイミング図である。図５に示したように、ホスト端末１１５は、時間Ｒ１中に、データをバッファ１０５１に転送し書き込む。一方、フラッシュメモリ１１０は、時間Ｂ０中に、第１のマージ及び書き込みプロセスを開始して、前のデータのＬＳＢデータを、ＳＬＣからＴＬＣにコピーバック（copy  back）する。時間Ｒ１の経過後、フラッシュメモリコントローラ１０５は、（時間Ｒ１に転送されたデータに対応する）一時的に格納されたデータを、フラッシュメモリ１１０のＳＬＣに書き込む。Ｙ１はこのデータを転送し書き込むのに要する時間である。同時に、フラッシュメモリコントローラ１０５は、次の１６ＫＢデータを受け取りバッファする（対応する転送時間はＲ２で示した）。Ｙ１が終わると、フラッシュメモリ１１０は、コピーバックプロセス（copy  back  process）を開始して、第２のマージ及び書き込みプロセスを実行し、前のデータのＣＳＢをＳＬＣに書き込む。要する時間はＢ０’で示した。Ｂ０’が終わると、フラッシュメモリコントローラ１０５からの一データが、フラッシュメモリ１１０のＳＬＣに格納される。データの転送及び書き込み時間はＹ２で示した。Ｙ２が終わると、ホスト端末１１５は、時間Ｒ３中に、次の１６ＫＢデータをバッファ１０５１に転送して書き込む。一方、フラッシュメモリ１１０は、時間Ｂ０”において、コピーバックプログラムを開始し、第３のマージ及び書き込みプロセスを実行する。Ｂ０”が終わると、フラッシュメモリ１１０のＳＬＣは、フラッシュメモリコントローラ１０５から来る１６ＫＢデータを受け取り格納する。言い換えると、この実施形態では、ホスト端末１１５がデータ書き込みコマンドを送って１６ＫＢデータ書き込みプロセスを行う時、フラッシュメモリ１１０は、実質的に同時に、マージ及び書き込みプロセスを実行し、全体的なデータ転送及び書き込み時間を節約する。例えば、フラッシュメモリ１１０は、マージ及び書き込みプロセスを同時に実行できる。あるいは他の場合には、フラッシュメモリ１１０は、マージ及び書き込みプロセスを少し後で実行できる。また、フラッシュメモリコントローラ１０５は、それに一時的に格納されている前のデータ（previous  data）を、フラッシュメモリ１１０に書き込み、同時にホスト端末１１５から来る次のデータ（next  data）を受け取りバッファする。これによってもデータ転送及び書き込み時間が短縮される。例えば、フラッシュメモリコントローラ１０５は、時間Ｒ２に、ホスト端末１１５から次のデータを受け取り、実質的に同時に（同時に又は少し後で）、時間Ｙ１に、現在バッファされているデータをフラッシュメモリ１１０のＳＬＣに転送し書き込む。留意点として、図５に示した実施形態では、フラッシュメモリ１１０がひとつ��マージ及び書き込みプロセスを実行した後に、ＳＬＣデータ書き込みプロセスが実行される。その後、次のマージ及び書き込みプロセスが行われる。しかし、これは本発明を限定するものではない。
【００１７】
図６を参照されたい。図６は、本発明の第５の実施形態による、図１に示したフラッシュメモリ装置１００のデータ書込プロセスを示すタイミング図である。図６に示したように、ホスト端末１１５が１６ＫＢデータをフラッシュメモリコントローラ１０５に転送し書き込む時、フラッシュメモリ１１０は、コピーバックプログラムを開始し、同時に最初の２つのマージ及び書き込みプロセスを実行し、ＬＳＢデータとＣＳＢデータをＳＬＣからＴＬＣに書き込むようにする。ＣＳＢデータのマージ及び書き込みプロセスが終わると、フラッシュメモリ１１０のＳＬＣは、フラッシュメモリ１０５から来るデータを受け取る（これに要する時間はＹ１で示した）。Ｙ１が終わると、フラッシュメモリコントローラ１０５は、ホスト端末１１５から来る次の１６ＫＢデータを受け取り一時的に格納する（データの転送及び書き込みに要する時間はＲ２で示した）。一方、フラッシュメモリコントローラ１０５は、フラッシュメモリ１１０のコピーバックプログラムを開始し、ＭＳＢデータをＳＬＣからＴＬＣにマージし書き込む第３のマージ及び書き込みプロセスを実行する。ＭＳＢデータのマージ及び書き込みプロセスが終わると、フラッシュメモリ１１０のＳＬＣは、フラッシュメモリコントローラ１０５から来るデータを受け取る（これに要する時間はＹ２で示した）。Ｙ２が終わると、フラッシュメモリコントローラ１０５は、ホスト端末１１５から来る次の１６ＫＢデータを受け取り一時的に格納する（データの転送と書き込みに要する時間はＲ３で示した）。以下同様である。留意点として、ＳＬＣデータ書き込みプロセスは、図６に示した実施形態によりフラッシュメモリ１１０において２つのコピーバックプログラム（すなわち、第１と第２のマージ及び書き込みプロセス）が完了した後に、ＳＬＣデータ書き込みプロセスが実行され、次に第３のマージ及び書き込みプロセスが実行される。しかし、これは本発明を限定するものではない。
【００１８】
図７を参照されたい。図７は、本発明の第６の実施形態による、図１に示したフラッシュメモリ装置１００のデータ書込プロセスを示すタイミング図である。図７に示したように、ホスト端末１１５が、時間Ｒ１に、一データをフラッシュメモリコントローラ１０５に転送し書き込む時、フラッシュメモリ１１０は、時間Ｂ０の前に、同時に第１のマージ及び書き込みプロセスを開始し、前のデータのＬＳＢデータを、ＳＬＣからＴＬＣにコピーして書き込む。Ｒ１が終わると、フラッシュメモリコントローラ１０５は、（Ｒ１に対応する時間に転送され）格納されたデータを、フラッシュメモリ１１０のＳＬＣに書き込む。これに要する時間はＹ１で示した。一方、Ｒ１が終わると、フラッシュメモリコントローラ１０５は、ホスト端末１１５から来る次の１６ＫＢデータを受け取り一時的に格納する（データの転送と書き込みに要する時間はＲ２で示した）。Ｙ１が終わると、フラッシュメモリ１１０は、コピーバックプログラム（copy  back  program）を開始して、第２のマージ及び書き込みプロセスを実行し、前のデータのＣＳＢを、ＴＬＣにマージして書き込む。これに要する時間はＢ０’で示した。Ｂ０’が終わると、フラッシュメモリ１１０のＳＬＣは、フラッシュメモリコントローラ１０５から来る一データを格納する。このデータを転送して書き込むのに要する時間はＹ２で示した。Ｙ２が終わると、ホスト端末１１５は、次の１６ＫＢデータをバッファ１０５１に転送して書き込む。一方、フラッシュメモリ１１０は、時間Ｂ０”において、コピーバックプログラムを開始し、第３のマージ及び書き込みプロセスを実行する。Ｂ０”が終わると、フラッシュメモリコントローラ１０５から来る一１６ＫＢデータが受け取られ、フラッシュメモリ１１０のＳＬＣに格納される。これに要する時間はＹ３で示した。同時に、フラッシュメモリコントローラ１０５は、バッファ１０５１を用いて、時間Ｒ４にホスト端末１１５から来る次の１６ＫＢデータを受け取り一時的に格納する。時間Ｒ４は時間Ｒ３と一部重なる。留意点として、図７に示した実施形態では、フラッシュメモリ１１０において１つのコピーバックプログラムが完了してから、ＳＬＣデータ書き込みプロセスが実行され、その後に次のマージ及び書き込みプロセスが実行される。しかし、これは本発明を限定するものではない。
【００１９】
さらに、上記の実施形態では、フラッシュメモリ１１０は、データキャッシュプロセス及び機能を有していてもよい。データキャッシュプロセスを利用することにより、マージ及び書き込みプロセスを実行でき、同時に、ＳＬＣを利用して、フラッシュメモリコントローラ１０５から来る次のデータを受け取って一時的に格納することができる。図８Ａと図８Ｂを参照されたい。図８Ａは、本発明の一実施形態による、データキャッシュプロセス無しにデータを書き込む、図１に示したフラッシュメモリ装置１００のデータ書込プロセスを示すタイミング図である。図８Ｂは、本発明の一実施形態による、データキャッシュプロセスによりデータを書き込む、図１に示したフラッシュメモリ装置１００のデータ書込プロセスを示すタイミング図である。図８Ａに示したように、ホスト端末１１５が、時間Ｒ１に、一データをフラッシュメモリコントローラ１０５に転送し書き込む時、フラッシュメモリ１１０は、時間Ｂ０の前に、同時に第１のマージ及び書き込みプロセスを開始し、前のデータのＬＳＢデータを、ＳＬＣからＴＬＣにコピーして書き込む。Ｒ１が終わると、フラッシュメモリコントローラ１０５は、（Ｒ１に対応する時間に転送され）格納されたデータを、フラッシュメモリ１１０のＳＬＣに書き込む。これに要する時間はＹ１で示した。一方、Ｒ１が終わると、フラッシュメモリコントローラ１０５は、ホスト端末１１５から来る次の１６ＫＢデータを受け取り一時的に格納する（データの転送と書き込みに要する時間はＲ２で示した）。Ｙ１が終わると、フラッシュメモリ１１０は、コピーバックプログラム（copy  back  program）を開始して、第２のマージ及び書き込みプロセスを実行し、前のデータのＣＳＢを、ＴＬＣにマージして書き込む。これに要する時間はＢ０’で示した。Ｂ０’が終わると、フラッシュメモリ１１０のＳＬＣは、フラッシュメモリコントローラ１０５から来る一データを格納する。このデータを転送して書き込むのに要する時間はＹ２で示した。Ｙ２が終わると、ホスト端末１１５は、次の１６ＫＢデータをバッファ１０５１に転送して書き込む。一方、フラッシュメモリ１１０は、時間Ｂ０”において、コピーバックプログラムを開始し、第３のマージ及び書き込みプロセスを実行する。Ｂ０”が終わると、フラッシュメモリコントローラ１０５から来る一１６ＫＢデータが受け取られ、フラッシュメモリ１１０のＳＬＣに格納される。図８Ｂに示した実施形態では、フラッシュメモリ１１０のＳＬＣがフラッシュメモリコントローラ１０５から来る一データを格納する時間Ｙ２は、フラッシュメモリ１１０がコピーバックプログラムを実行して第２のマージ及び書き込みプロセスを行うのに要する時間Ｂ０’の一部と重なる。また、フラッシュメモリ１１０のＳＬＣがフラッシュメモリコントローラ１０５から来る一データを格納する時間Ｙ３は、フラッシュメモリ１１０がコピーバックプログラムを実行して第３のマージ及び書き込みプロセスを行うのに要する時間Ｂ０”の一部と重なる。それに続く時間Ｙ５も、第２のマージ及び書き込みプロセスに要する時間Ｂ１’の一部と重なる。言い換えると、フラッシュメモリ１１０は、データキャッシュ操作により、第２のマージ及��書き込みプロセスのコピーバックプログラムを実行することにより得たデータをキャッシュし、実質的に同時に（同時に又は少し後に）、フラッシュメモリ１１０のＳＬＣにデータを格納できる。このように、時間Ｙ２は時間Ｂ０’の一部と重なる。同様に、フラッシュメモリ１１０は、データキャッシュ操作により、第３のマージ及び書き込みプロセスのコピーバックプログラムを実行することにより得たデータをキャッシュし、実質的に同時に（同時に又は少し後に）、フラッシュメモリ１１０のＳＬＣにデータを格納できる。このように、時間Ｙ３は時間Ｂ０”の一部と重なる。同様に、時間Ｙ５は時間Ｂ１’の一部と重なる。処理時間は互いに部分的に重なっても良い。それゆえ、データアクセス全体として、全体的な処理時間が短縮され、全体的なデータアクセス効率が改善される。
【００２０】
上記の実施形態では、データキャッシュプロセスは、コピーバックプログラムの第２と第３のマージ及び書き込みプロセスを実行することにより得られるデータをキャッシュして、フラッシュメモリ１１０のＳＬＣにおいて、データ格納プロセスとコピーバックプログラムが実質的に同時に（同時に又は少し後に）実行できるようにするものである。しかし、これは本発明を限定するものではない。他の一実施形態では、コピーバックプログラムの第１のマージ及び書き込みプロセスを実行することにより得られるデータをキャッシュして、フラッシュメモリ１１０のＳＬＣにおいて、データ格納プロセスとコピーバックプログラムが実質的に同時に（同時に又は少し後に）実行できるようにするものである。さらに、上記のデータキャッシュ操作により、フラッシュメモリ１１０の実装の違いにより、データ書き込みプロセスのタイミング図が異なることになる。  例えば、図９乃至図１１を参照されたい。図９乃至図１１は、本発明の異なる実施形態による、図１に示したフラッシュメモリ装置１００のデータ書込プロセスを示すタイミング図である。図９乃至図１１に示された実施形態に示すように、データキャッシュプロセスは、コピーバックプログラムの第２または第３のマージ及び書き込みプロセスを実行することにより得られるデータをキャッシュして、フラッシュメモリ１１０のＳＬＣにおいて、データ格納プロセスとコピーバックプログラムが実質的に同時に（同時に又は少し後に）実行できるようにするものである。それゆえ、図９の実施形態で示したように、フラッシュメモリ１１０のＳＬＣのデータ書き込み時間Ｙ１，Ｙ３，Ｙ５，Ｙ７は、コピーバックプログラムの異なるマージ及び書き込みプロセスに要する時間Ｂ０’、Ｂ０”、Ｂ１’、Ｂ１”と、それぞれ重なる。図１０の実施形態で示したように、フラッシュメモリ１１０のＳＬＣのデータ書き込み時間Ｙ１，Ｙ３，Ｙ５，Ｙ７は、コピーバックプログラムの異なるマージ及び書き込みプロセスに要する時間Ｂ０’、Ｂ０”、Ｂ１’、Ｂ１”とも、それぞれ重なる。図９と図１０の実施形態の違いは、図１０に示した実施形態により用いられる第３のマージ及び書き込みプロセスに要する時間が、図９に示した実施形態のそれより長いことである。図１１の実施形態で示したように、フラッシュメモリ１１０のＳＬＣのデータ書き込み時間Ｙ１，Ｙ２，Ｙ３，Ｙ４，Ｙ５，Ｙ６は、コピーバックプログラムの異なるマージ及び書き込みプロセスに要する時間Ｂ０’、Ｂ０”、Ｂ１’、Ｂ１”、Ｂ２’、Ｂ２”とも、それぞれ重なる。
【００２１】
当業者には言うまでもないが、本発明の教示を保持しつつ、上記のデバイスと方法について、多数の修正や変更をすることができる。したがって、上記の開示は添付した特許請求の範囲によってのみ限定されると解釈すべきである。
【図１】
0005536255.tif 000002
【図２】
0005536255.tif 000003
【図３】
0005536255.tif 000004
【図４】
0005536255.tif 000005
【図５】
0005536255.tif 000006
【図６】
0005536255.tif 000007
【図７】
0005536255.tif 000008
【図８Ａ】
0005536255.tif 000009
【図８Ｂ】
0005536255.tif 000010
【図９】
0005536255.tif 000011
【図１０】
0005536255.tif 000012
【図１１】
0005536255.tif 000013