(57)【要約】【課題】本発明は、フラッシュメモリとの間でのデータの転送を迅速、効率的にすることが可能なメモリコントローラ、及び当該メモリコントローラを備えるフラッシュメモリシステムを提供することを目的とする。【解決手段】コントローラの圧縮伸長ブロック９は、ホストシステム４がフラッシュメモリ２に格納しようとするデータを受け取り、受け取ったデータにロスレス圧縮を施してフラッシュメモリ２に格納する。また、ホストシステム４が取得しようとするデータにロスレス圧縮が施されたものに相当するデータをフラッシュメモリ２より読み出し、読み出したデータを伸張して、ホストシステム４へと出力する。【選択図】図４
2007094639.tif 000002
【特許請求の範囲】
【請求項１】
フラッシュメモリを記憶媒体として利用するホストシステムからの命令に応答して前記フラッシュメモリへのアクセスを制御するメモリコントローラであって、
前記ホストシステムが前記フラッシュメモリに格納しようとするデータを受け取り、該受け取ったデータにロスレス圧縮を施して前記フラッシュメモリに格納する圧縮手段と、
前記ホストシステムが取得しようとするデータにロスレス圧縮が施されたものに相当するデータを前記フラッシュメモリより読み出し、該読み出したデータを伸張して、前記ホストシステムへと出力する伸張手段と、を備える、
ことを特徴とするメモリコントローラ。
【請求項２】
前記圧縮手段は、前記ロスレス圧縮が施されたデータに所定の値を有するデータ１個以上を付加して所定長のデータとし、当該所定長のデータのエラー訂正符号を生成して前記フラッシュメモリに格納する手段を備える、
ことを特徴とする請求項１に記載のメモリコントローラ。
【請求項３】
前記伸張手段は、
前記ホストシステムが取得しようとするデータにロスレス圧縮が施されたものに相当する圧縮データ、及び当該圧縮データに基づいて生成されたエラー訂正符号を前記フラッシュメモリより読み出す手段と、
前記フラッシュメモリより読み出した圧縮データに所定の値を有するデータ１個以上を付加して所定長のデータとし、当該所定長のデータのエラー訂正を、前記読み出したエラー訂正符号に基づいて行う手段と、を備える、
ことを特徴とする請求項２に記載のメモリコントローラ。
【請求項４】
請求項１から３のいずれか１項に記載のメモリコントローラと、フラッシュメモリと、から構成される、
ことを特徴とするフラッシュメモリシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、メモリコントローラ及び当該メモリコントローラを備えるフラッシュメモリシステムに関する。
【背景技術】
【０００２】
近年、不揮発性の記録媒体であるフラッシュメモリの開発が盛んに行われ、デジタルカメラ等の情報機器（ホストシステム）の記憶媒体として普及している。
【０００３】
このような機器によるフラッシュメモリへのアクセスを制御するために、メモリコントローラが用いられる。フラッシュメモリへのデータの書き込み又はフラッシュメモリからのデータの読み出しを円滑化するために、データを一時的に格納するバッファ（例えばＦＩＦＯメモリ等）を備えるメモリコントローラが開発されている（例えば特許文献１を参照）。多くの場合、バッファは、複数セクタ（１セクタは５１２バイト）分のデータを格納できるような構成になっている。
【特許文献１】特開２００４−３２６５７４号公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
しかし、フラッシュメモリへ書き込むデータ又はフラッシュメモリから読み出すデータが大量であると、フラッシュメモリとメモリコントローラとの間でデータの転送にかかる時間が増大する。また、両者間を接続するバスのバス幅が狭いと、全データを転送するために必要な転送の処理の回数も増大する。従って、データの転送が遅く、非効率になるという問題が生じる。
【０００５】
本発明は上記の実情に鑑みてなされたもので、フラッシュメモリとの間でのデータの転送を迅速、効率的にすることが可能なメモリコントローラ、及び当該メモリコントローラを備えるフラッシュメモリシステムを提供することを目的とする。
【課題を解決するための手段】
【０００６】
上記目的を達成するため、本発明の第１の観点に係るメモリコントローラは、
フラッシュメモリを記憶媒体として利用するホストシステムからの命令に応答して前記フラッシュメモリへのアクセスを制御するメモリコントローラであって、
前記ホストシステムが前記フラッシュメモリに格納しようとするデータを受け取り、該受け取ったデータにロスレス圧縮を施して前記フラッシュメモリに格納する圧縮手段と、
前記ホストシステムが取得しようとするデータにロスレス圧縮が施されたものに相当するデータを前記フラッシュメモリより読み出し、該読み出したデータを伸張して、前記ホストシステムへと出力する伸張手段と、を備える、
ことを特徴とする。
【０００７】
前記圧縮手段は、前記ロスレス圧縮が施されたデータに所定の値を有するデータ１個以上を付加して所定長のデータとし、当該所定長のデータのエラー訂正符号を生成して前記フラッシュメモリに格納する手段を備えていてもよい。
【０００８】
前記伸張手段は、
前記ホストシステムが取得しようとするデータにロスレス圧縮が施されたものに相当する圧縮データ、及び当該圧縮データに基づいて生成されたエラー訂正符号を前記フラッシュメモリより読み出す手段と、
前記フラッシュメモリより読み出した圧縮データに所定の値を有するデータ１個以上を付加して所定長のデータとし、当該所定長のデータのエラー訂正を、前記読み出したエラー訂正符号に基づいて行う手段と、を備えていてもよい。
【０００９】
また、本発明の第２の観点に係るフラッシュメモリシステムは、上記のいずれかの特徴を有するメモリコントローラと、フラッシュメモリと、から構成されることを特徴とする。
【発明の効果】
【００１０】
本発明によれば、フラッシュメモリとの間でのデータの転送を迅速、効率的にすることが可能なメモリコントローラ、及び当該メモリコントローラを備えるフラッシュメモリシステムが実現される。
【発明を実施するための最良の形態】
【００１１】
以下、図面に基づき、本発明の実施の形態について詳細に説明する。
【００１２】
図１は、本発明に係るフラッシュメモリシステム１を概略的に示すブロック図である。図１に示すように、フラッシュメモリシステム１は、フラッシュメモリ２と、それを制御するコントローラ３で構成されている。
【００１３】
なお、フラッシュメモリシステム１は、外部バス１３を介してホストシステム４と接続される。ホストシステム４は、ホストシステム４の全体の動作を制御するためのＣＰＵ（Central Processing Unit）、フラッシュメモリシステム１との情報の授受を担うコンパニオンチップ等から構成される。ホストシステム４は、例えば、文字、音声、あるいは画像情報等の種々の情報を処理するパーソナルコンピュータやデジタルスチルカメラをはじめとする各種情報処理装置であってもよい。
【００１４】
フラッシュメモリ２は、不揮発性メモリであり、レジスタと、メモリセルアレイと、から構成される。フラッシュメモリ２は、レジスタとメモリセルとの間でデータの複写を行って、データの書き込み又は読み出しを行う。
【００１５】
メモリセルアレイは、複数のメモリセル群と、ワード線と、を備える。各メモリセル群は、複数のメモリセルが直列に接続されたものである。ワード線は、メモリセル群の特定のメモリセルを選択するためのものである。このワード線を介して選択されたメモリセルとレジスタとの間で、データの複写、即ち、レジスタから選択されたメモリセルへの複写又は選択されたメモリセルからレジスタへのデータの複写が行われる。
【００１６】
メモリセルアレイを構成するメモリセルは、２つのゲートを備えたＭＯＳトランジスタによって構成される。ここで、上側のゲート、下側のゲートは、それぞれ、コントロールゲート、フローティングゲートと呼ばれており、フローティングゲートに電荷（電子）を注入若しくはフローティングゲートから電荷（電子）を排出することによって、データの書き込み若しくはデータの消去が行われる。
【００１７】
このフローティングゲートは、周囲を絶縁体で囲まれているので、注入された電子は長期間にわたって保持される。なお、フローティングゲートに電子を注入するときは、コントロールゲートが高電位側となる高電圧を印加して電子が注入される。また、フローティングゲートから電子を排出するときは、コントロールゲートが低電位側となる高電圧を印加して電子が排出される。
【００１８】
ここで、フローティングゲートに電子が注入されている状態が書き込み状態であり、論理値「０」に対応する。また、フローティングゲートから電子が排出されている状態が消去状態であり、論理値「１」に対応する。
【００１９】
このようなフラッシュメモリ２のアドレス空間を図２に示す。フラッシュメモリ２のアドレス空間は、“ページ”と“ブロック”に基づいて分割されている。
【００２０】
ページは、フラッシュメモリ２にて行われるデータ読み出し動作及びデータ書き込み動作における処理単位である。ブロックは、フラッシュメモリ２にて行われるデータ消去動作における処理単位である。
【００２１】
図２に示したフラッシュメモリでは、１つのページは、１セクタ（５１２バイト）のユーザ領域２５と、１６バイトの冗長領域２６とを含んでいる。又、一つのページが４セクタのユーザー領域と６４バイトの冗長領域で構成されているフラッシュメモリもある。ユーザ領域２５は、ホストシステム４から供給されるユーザデータを格納する。
【００２２】
冗長領域２６は、エラーコレクションコード、対応論理ブロックアドレス、ブロックステータス（フラグ）等の付加データを記憶するための領域である。
【００２３】
エラーコレクションコードは、ユーザ領域２５に記憶されているデータに含まれる誤りを検出し、訂正するためのデータである。
【００２４】
対応論理ブロックアドレスは、１つのブロックに含まれている少なくとも１つのユーザ領域２５に有効なデータが格納されているとき、そのブロックが対応付けられている論理ブロックのアドレスを示す。
【００２５】
論理ブロックアドレスは、ホストシステム４から与えられるホストアドレスに基づいて決定されるブロックのアドレスである。一方、フラッシュメモリ２内における実際のブロックのアドレスは、物理ブロックアドレスと称される。
【００２６】
１つのブロックに含まれているいずれのユーザ領域２５にも有効なデータが格納されていないときには、そのブロックに含まれている冗長領域２６に、対応論理ブロックアドレスは格納されていない。
【００２７】
従って、冗長領域２６に対応論理ブロックアドレスが格納されているか否かを判定することにより、その冗長領域２６が含まれているブロックのデータが消去されているか否かを判定することができる。冗長領域２６に対応論理ブロックアドレスが格納されていないとき、そのブロックは、データが消去された状態となっている。
【００２８】
１つのブロックは、複数のページを含んでいる。フラッシュメモリ２では、データの上書きができない。このため、１つのページに格納されたデータのみを書き換えるときであっても、そのページが含まれたブロック内の全ページに格納されたデータを、再度書き込まなければならない。
【００２９】
つまり、通常のデータ書き換えでは、書き換えるページが含まれるブロックの全ページに格納されたデータが、別の消去されているブロックに書き込まれる。この際、データが変更されないページに格納されているデータは、以前に格納されていたデータがそのまま再度書き込まれる。
【００３０】
上記のようにデータを書き換えるにあたっては、書き換えられたデータは、以前に格納されていたブロックとは異なるブロックに書き込まれる。このため、論理ブロックアドレスと物理ブロックアドレスの間の対応関係は、フラッシュメモリ２にてデータが書き換えられる毎に、動的に変化する。
【００３１】
従って、論理ブロックアドレスと物理ブロックアドレスとの対応関係を管理する必要があり、通常、この対応関係は、アドレス変換テーブルによって管理される。このアドレス変換テーブルは、各ページの冗長領域２６に記憶されている対応論理ブロックアドレスに基づいて作成される。なお、このような動的なアドレス管理手法は、フラッシュメモリを用いたメモリシステムでは一般的に行われている手法である。
【００３２】
ブロックステータスは、ブロックの良否を示すフラグである。正常にデータの書き込み等を行うことができないブロックは、不良ブロックと判別され、冗長領域２６には、不良ブロックであることを示すブロックステータスが書き込まれる。
【００３３】
このようなフラッシュメモリ２は、コントローラ３から、データ、アドレス情報、ステータス情報、内部コマンド等を受信して、データの読み出し処理、書き込み処理、ブロック消去処理、転送処理等の各処理を行う。
【００３４】
ここで、内部コマンドとは、コントローラ３がフラッシュメモリ２に処理の実行を指示するためのコマンドであり、フラッシュメモリ２は、コントローラ３から与えられる内部コマンドに従って動作する。これに対して、外部コマンドとは、ホストシステム４がフラッシュメモリシステム１に対して処理の実行を指示するためのコマンドである。
【００３５】
コントローラ３は、図１に示すように、マイクロプロセッサ６と、ホストインターフェースブロック７と、ワークエリア８と、圧縮伸張ブロック９と、フラッシュメモリインターフェースブロック１０と、ＲＯＭ（Read Only Memory）１２と、から構成される。これら機能ブロックによって構成されるコントローラ３は、一つの半導体チップ上に集積される。以下に各機能ブロックについて説明する。
【００３６】
マイクロプロセッサ６は、ＲＯＭ１２に記憶されているプログラムに従って、コントローラ３の全体の動作を制御する。例えば、マイクロプロセッサ６は、各種処理等を定義したコマンドセットをＲＯＭ１２から読み出してフラッシュメモリインターフェースブロック１０に供給し、フラッシュメモリインターフェースブロック１０に処理を実行させる。
【００３７】
ホストインターフェースブロック７は、図３に示すようにコマンドレジスタＲ１、セクタ数レジスタＲ２、ＬＢＡレジスタＲ３、を備えており、ホストシステム４との間で、データ、アドレス情報、ステータス情報、外部コマンド等の授受を行なう。すなわち、フラッシュメモリシステム１とホストシステム４は、外部バス１３を介して相互に接続される。かかる状態において、ホストシステム４よりフラッシュメモリシステム１に供給されるデータ等は、ホストインターフェースブロック７を入口としてフラッシュメモリシステム１の内部（例えば、圧縮伸張ブロック９）に取り込まれる。また、フラッシュメモリシステム１からホストシステム４に供給されるデータ等は、ホストインターフェースブロック７を出口としてホストシステム４に供給される。
【００３８】
ワークエリア８は、フラッシュメモリ２の制御に必要なデータが一時的に格納される作業領域であり、複数のＳＲＡＭ（Static Random Access Memory）セルによって構成される。
【００３９】
圧縮伸張ブロック９は、図４に示すように、フラッシュメモリ２に書き込むデータを保持するためのＦＩＦＯ（First In First Out）型メモリ（以下、書込用ＦＩＦＯと呼ぶ）９０１と、圧縮ブロック９０２と、書込用バッファ９０３と、選択ブロック９０４と、エラーコレクションコード生成ブロック９０５と、読出用バッファ９０６と、誤り訂正ブロック９０７と、伸張ブロック９０８と、選択ブロック９０９と、ホストシステム４に供給するデータを保持するためのＦＩＦＯ型のメモリ（以下、読出用ＦＩＦＯと呼ぶ）９１０と、より構成されている。なお、１個のＦＩＦＯ型メモリが書込用ＦＩＦＯ９０１及び読出用ＦＩＦＯ９１０の機能を兼ねていてもよい。また、１個のバッファが書込用バッファ９０３及び読出用バッファ９０６の機能を兼ねていてもよい。
【００４０】
書込用ＦＩＦＯ９０１は、フラッシュメモリ２に書き込むべきデータをホストインターフェースブロック７を介して取得、蓄積し、古いデータから順に圧縮ブロック９０２及び選択ブロック９０４に供給する。
【００４１】
圧縮ブロック９０２は、書込用ＦＩＦＯ９０１が供給したデータを取得して、このデータに適応型ロスレスデータ圧縮（ＡＤＬＣ）を施し、得られたデータ（圧縮データ）を書込用バッファ９０３に供給する。
【００４２】
書込用バッファ９０３は、圧縮ブロック９０２が供給した圧縮データを一時的に蓄積する。すなわち、圧縮ブロック９０２が供給した圧縮データは、フラッシュメモリ２が書き込み可能な状態となるまで書込用バッファ９０３に保持され、フラッシュメモリ２が書き込み可能な状態となると、選択ブロック９０４に供給される。
【００４３】
選択ブロック９０４は、書込用ＦＩＦＯ９０１が供給したデータ（非圧縮データ）、又は、書込用バッファ９０３が供給した圧縮データのうち、たとえば外部から供給される命令等により特定されるいずれか一方を、エラーコレクションコード生成ブロック９０５へ供給する。
【００４４】
エラーコレクションコード生成ブロック９０５は、圧縮データ又は非圧縮データを選択ブロック９０４より供給されると、供給されたデータに、例えばリードソロモン符号化を施すことにより、エラーコレクションコードを生成する。
【００４５】
ただし、供給されたデータが圧縮データであった場合、エラーコレクションコード生成ブロック９０５は、まずこの圧縮データにパディングを施してから、エラーコレクションコードの生成を行う。すなわち、この圧縮データに所定の値（例えば、値が“１”であるビットの連続）を付加して、データ長を所定の長さ（例えば、５１２バイト）にし、この所定の長さのデータのエラーコレクションコードを生成する。また、供給されたデータが圧縮データであった場合、エラーコレクションコード生成ブロック９０５は、パディングされていない状態の圧縮データのデータ長を特定する。
【００４６】
そして、エラーコレクションコード生成ブロック９０５は、非圧縮データ又はパディングされていない状態の圧縮データと、エラーコレクションコードとを、フラッシュメモリインターフェースブロック１０に供給する。また、圧縮データを供給する場合は、この圧縮データのデータ長を示すデータも供給する。
【００４７】
読出用バッファ９０６は、フラッシュメモリ２から読み出された圧縮データ又は非圧縮データ（圧縮データの場合はさらに当該圧縮データのデータ長を示すデータも）と、エラーコレクションコードとを一時的に蓄積する。すなわち、フラッシュメモリ２から読み出されたこれらのデータは、読出用ＦＩＦＯ９１０が受け取り可能な状態となるまで読出用バッファ９０６に保持され、読出用ＦＩＦＯ９１０が受け取り可能な状態となると、誤り訂正ブロック９０７に供給される。
【００４８】
誤り訂正ブロック９０７は、圧縮データ又は非圧縮データ（圧縮データの場合はさらに当該圧縮データのデータ長を示すデータも）と、エラーコレクションコードとを読出用バッファ９０６より供給されると、エラーコレクションコードを用いて、この圧縮データ又は非圧縮データの誤り訂正を行う。そして、誤り訂正を経た圧縮データを伸張ブロック９０８に供給し、又は、誤り訂正を経た非圧縮データを選択ブロック９０９に供給する。
【００４９】
ただし、誤り訂正ブロック９０７は、圧縮データを供給された場合は、この圧縮データに、エラーコレクションコードの生成時に付加した値と同一の値を付加する形でパディングを施し、パディングされた圧縮データの誤り訂正を行った上、パディングを除去することにより、伸張ブロック９０８に供給すべき圧縮データを得るものとする。
【００５０】
伸張ブロック９０８は、誤り訂正ブロック９０７が供給した圧縮データを取得してこの圧縮データを伸張し、得られたデータ、すなわち非圧縮データを選択ブロック９０９に供給する。
【００５１】
選択ブロック９０９は、誤り訂正ブロック９０７より供給された非圧縮データ、又は伸長ブロック９０８より供給された非圧縮データを、読出用ＦＩＦＯ９１０に供給する。
【００５２】
読出用ＦＩＦＯ９１０は、選択ブロック９０９より供給された非圧縮データを蓄積し、古い非圧縮データから順に、ホストインターフェースブロック７を介してホストシステム４に供給する。
【００５３】
フラッシュメモリインターフェースブロック１０は、内部バス１４を介して、フラッシュメモリ２とデータ、アドレス情報、ステータス情報、内部コマンド等の授受を行う。より詳細には、フラッシュメモリインターフェースブロック１０は、アドレスレジスタ、コマンドレジスタ、命令処理ブロック等から構成される。
【００５４】
アドレスレジスタは、アクセス先の物理ブロックアドレスを格納するためのレジスタである。物理ブロックアドレスは、フラッシュメモリインターフェースブロック１０が実行する一連の制御処理でアクセスするフラッシュメモリ２内のブロックを指定するためのアドレス情報である。
【００５５】
コマンドレジスタは、コマンドセットを構成するシーケンスコマンドを格納するためのレジスタである。このコマンドセットには、コントローラ３内での処理を指示するコマンドや、フラッシュメモリ２への内部コマンド、アドレス情報等の供給を指示するコマンドが含まれている。
【００５６】
命令処理ブロックは、コマンドレジスタに格納されているシーケンスコマンドに従って、フラッシュメモリ２を制御するための内部コマンド、アドレス情報等を出力する。
【００５７】
フラッシュメモリインターフェースブロック１０は、命令処理ブロックによって出力される内部コマンド、アドレス情報等をフラッシュメモリ２に供給することにより、フラッシュメモリ２に読み出し、書き込み等を実行させる。
【００５８】
ＲＯＭ１２は、マイクロプロセッサ６による処理の手順を定義するプログラムを格納する不揮発性の記憶素子である。具体的には、ＲＯＭ１２は、例えば、アドレス変換テーブルの作成等の処理手順を定義するプログラムを格納する。
【００５９】
このように構成されるフラッシュメモリシステム１において、ホストシステム４がフラッシュメモリ２にデータを書き込む場合、ホストシステム４は、ホストインターフェースブロック７のセクタ数レジスタＲ２に、書き込むデータのサイズを設定し、ＬＢＡレジスタＲ３に、書き込みを行うデータの論理アドレスを設定し、その後、コマンドレジスタＲ１に、書き込み処理を指示する外部コマンドを設定する。
【００６０】
コントローラ３は、書き込み処理を指示する外部コマンドが、コマンドレジスタＲ１に設定されると、書き込み処理を開始する。
【００６１】
書き込み処理が開始されると、書き込むデータがホストシステム４から順次ホストインターフェースブロック７に供給され、このデータは、ホストインターフェースブロック７から、圧縮伸張ブロック９によって読み出される。
【００６２】
ホストインターフェースブロック７から圧縮伸張ブロック９に読み出されたデータは、圧縮伸長ブロック９によってロスレス圧縮データへと圧縮され、このロスレス圧縮データと、このロスレス圧縮データのデータ長を示すデータと、エラーコレクションコードは、フラッシュメモリ２が書き込み可能な状態になると、フラッシュメモリインターフェースブロック１０及び内部バス１４を介してフラッシュメモリ２の所望のページのユーザ領域２５及び冗長領域２６に書き込まれる。なお、圧縮データを書き込む場合、コントローラ３は、各々のページのユーザ領域２５には、１セクタ分の非圧縮データを圧縮して得られる分のみの圧縮データを書き込むものとし、この圧縮データを書き込んだ残りの部分には、データを書き込まないものする。
【００６３】
一方、フラッシュメモリシステム１において、ホストシステム４がフラッシュメモリ２からデータを読み出す場合、ホストシステム４は、ホストインターフェースブロック７のセクタ数レジスタＲ２に、読み出すデータのセクタ数を設定し、ＬＢＡレジスタＲ３に、読み出すデータの論理アドレスを設定し、その後、コマンドレジスタＲ１に、読み出し処理を指示する外部コマンドを設定する。
【００６４】
コントローラ３は、読み出し処理を指示する外部コマンドが、コマンドレジスタＲ１に設定されると、読み出し処理を開始する。
【００６５】
読み出し処理では、マイクロプロセッサ６は、論理アドレスを物理アドレスへと変換する。そして、フラッシュメモリ２の該物理アドレスに格納されたデータは、フラッシュメモリインターフェースブロック１０及び内部バス１４を介して圧縮伸張ブロック９に読み出される。
【００６６】
なお、圧縮データを読み出す場合、コントローラ３は、１個のセクタから、エラーコレクションコード、非圧縮データ１セクタ分に相当する圧縮データ、及びこの圧縮データのデータ長を示すデータとを読み出すと、当該セクタのユーザ領域２５の空白部分の読み出しは行わず、直ちに次のセクタの読み出しに移るものとする。
【００６７】
圧縮伸張ブロック９に読み出されたデータが非圧縮データからなる場合、この非圧縮データは、同じく読み出されたエラーコレクションコードを用いて誤り訂正を施された上、圧縮伸張ブロック９から、ホストインターフェースブロック７を介してホストシステム４に供給される。
【００６８】
一方、圧縮伸張ブロック９に読み出されたデータが圧縮データからなる場合、この圧縮データは、同じく読み出されたエラーコレクションコードを用いて誤り訂正を施され、次いで伸張される。伸張により得られた非圧縮データは、圧縮伸張ブロック９から、ホストインターフェースブロック７を介してホストシステム４に供給される。
【００６９】
以上で説明したように、本実施の形態のフラッシュメモリシステム１では、ホストシステム４から供給されたデータがロスレス圧縮された上でフラッシュメモリ２に書き込まれ、また、フラッシュメモリ２から読み出されたデータは伸張された上でホストシステム４に供給される。このため、フラッシュメモリ２とコントローラ３との間でのデータの転送量が減少し、転送が迅速、効率的になる。また、フラッシュメモリ２へのデータの書き込みの処理、及び、フラッシュメモリ２からのデータの読み出しの処理が短縮される。
【図面の簡単な説明】
【００７０】
【図１】本発明に係るフラッシュメモリシステムを概略的に示すブロック図である。
【図２】フラッシュメモリのアドレス空間の構造を概略的に示す図である。
【図３】ホストインターフェースブロックの構成を示すブロック図である。
【図４】圧縮伸張ブロックの構成を示すブロック図である。
【符号の説明】
【００７１】
１    フラッシュメモリシステム
２    フラッシュメモリ
３    コントローラ
４    ホストシステム
６    マイクロプロセッサ
７    ホストインターフェースブロック
８    ワークエリア
９    圧縮伸長ブロック
１０  フラッシュメモリインターフェースブロック
１２  ＲＯＭ
１３  外部バス
１４  内部バス
２５  ユーザ領域
２６  冗長領域
【図１】
2007094639.tif 000003
【図２】
2007094639.tif 000004
【図３】
2007094639.tif 000005
【図４】
2007094639.tif 000006