(57)【特許請求の範囲】
【請求項１】
メイン領域とスペア領域とに大別されるフラッシュメモリと、
前記フラッシュメモリに書き込まれる又は前記フラッシュメモリから読み出されるデータを臨時に貯蔵し、そして前記フラッシュメモリと同一なアドレス構造を有するようにメイン領域とスペア領域とに大別されるバッファメモリと、
ホストから印加されたアドレスを前記バッファメモリに適していたアドレスにマッピングし、そして前記バッファメモリのデータが前記フラッシュメモリに貯蔵されるように又は前記フラッシュメモリのデータが前記バッファメモリに貯蔵されるように前記フラッシュメモリとバッファメモリとを制御する制御手段とを含み、
前記ホストで割り当てられたバッファアドレスが内部的に割り当てられたバッファアドレスと一致しない場合には、前記制御手段は、前記ホストで割り当てられたバッファアドレスを内部的に割り当てられたバッファアドレスへと変更するマッピング動作を遂行し、前記マッピング動作において、前記ホストで割り当てられたバッファアドレスが主領域（ｍａｉｎ  ｒｅｇｉｏｎ）と予備領域（ｓｐａｒｅ  ｒｅｇｉｏｎ）とに分割され、
前記制御手段は、前記バッファコントローラから印加されるアドレスをマッピングするデコーダを、さらに含む
ことを特徴とするフラッシュメモリ装置。
【請求項２】
前記フラッシュメモリ、前記バッファメモリ、そして前記制御手段は、単一チップより成る
ことを特徴とする請求項１に記載のフラッシュメモリ装置。
【請求項３】
前記ホストから印加される制御信号、アドレス、そしてデータを前記フラッシュメモリ装置を動作させるための内部信号に変更するホストインターフェースを、さらに含む
ことを特徴とする請求項１に記載のフラッシュメモリ装置。
【請求項４】
前記バッファメモリは、ランダムアクセスが可能なメモリである
ことを特徴とする請求項１に記載のフラッシュメモリ装置。
【請求項５】
前記メモリは、ＳＲＡＭである
ことを特徴とする請求項４に記載のフラッシュメモリ装置。
【請求項６】
前記メモリは、ＤＲＡＭである
ことを特徴とする請求項４に記載のフラッシュメモリ装置。
【請求項７】
前記制御手段は、前記フラッシュメモリのアドレス、前記バッファメモリのアドレス、そしてコマンドを貯蔵するレジスタと、
前記バッファメモリの読み取り及び書き取り動作を制御するバッファコントローラと、
前記フラッシュメモリの読み取り及び書き取り動作を制御するフラッシュコントローラと、
前記レジスタに貯蔵された値により前記バッファメモリのデータが前記フラッシュメモリに貯蔵されるように又は前記フラッシュメモリのデータが前記バッファメモリに貯蔵されるように、前記バッファコントローラと前記フラッシュコントローラとを制御するステートマシンとを含む
ことを特徴とする請求項１に記載のフラッシュメモリ装置。
【請求項８】
前記制御手段は、前記ステートマシンにより制御され、
前記バッファメモリと前記フラッシュメモリとの間で伝送されるデータのエラーを訂正するエラー訂正及びデータ入出力回路を、さらに含む
ことを特徴とする請求項７に記載のフラッシュメモリ装置。
【請求項９】
ホストと、
前記ホストの要求に応じてデータを貯蔵するか、或いは貯蔵されたデータを出力するフラッシュメモリ装置とを含み、
前記フラッシュメモリ装置は、メイン領域とスペア領域とに大別されるフラッシュメモリと、
前記フラッシュメモリに書き込まれる又は前記フラッシュメモリから読み出されるデータを臨時に貯蔵し、そして前記フラッシュメモリと同一なアドレス構造を有するようにメイン領域とスペア領域とに大別されるバッファメモリと、
ホストから印加されたアドレスを前記バッファメモリに適していたアドレスにマッピングし、そして前記バッファメモリのデータが前記フラッシュメモリに貯蔵されるように又は前記フラッシュメモリのデータが前記バッファメモリに貯蔵されるように前記フラッシュメモリとバッファメモリとを制御する制御手段とを含む
前記ホストで割り当てられたバッファアドレスが内部的に割り当てられたバッファアドレスと一致しない場合には、前記制御手段は、前記ホストで割り当てられたバッファアドレスを内部的に割り当てられたバッファアドレスへと変更するマッピング動作を遂行し、前記マッピング動作において、前記ホストで割り当てられたバッファアドレスが主領域（ｍａｉｎ  ｒｅｇｉｏｎ）と予備領域（ｓｐａｒｅ  ｒｅｇｉｏｎ）とに分割され、
前記制御手段は、前記バッファコントローラから印加されるアドレスをマッピングするデコーダを、さらに含む
ことを特徴とするフラッシュメモリシステム。
【請求項１０】
前記フラッシュメモリ、前記バッファメモリ、そして前記制御手段は単一チップより成る
ことを特徴とする請求項９に記載のフラッシュメモリシステム。
【請求項１１】
前記ホストから印加される制御信号、アドレス、そしてデータを前記フラッシュメモリ装置を動作させるための内部信号に変更するホストインターフェースを、さらに含む
ことを特徴とする請求項９に記載のフラッシュメモリシステム。
【請求項１２】
前記バッファメモリは、ランダムアクセスが可能なメモリである
ことを特徴とする請求項９に記載のフラッシュメモリシステム。
【請求項１３】
前記メモリは、ＳＲＡＭである
ことを特徴とする請求項１２に記載のフラッシュメモリシステム。
【請求項１４】
前記メモリは、ＤＲＡＭである
ことを特徴とする請求項１２に記載のフラッシュメモリシステム。
【請求項１５】
前記制御手段は、前記フラッシュメモリのアドレス、前記バッファメモリのアドレス、そしてコマンドを貯蔵するレジスタと、
前記バッファメモリの読み取り及び書き取り動作を制御するバッファコントローラと、
前記フラッシュメモリの読み取り及び書き取り動作を制御するフラッシュコントローラと、
前記レジスタに貯蔵された値により前記バッファメモリのデータが前記フラッシュメモリに貯蔵されるように又は前記フラッシュメモリのデータが前記バッファメモリに貯蔵されるように、前記バッファコントローラと前記フラッシュコントローラとを制御するステートマシンとを含む
ことを特徴とする請求項９に記載のフラッシュメモリシステム。
【請求項１６】
前記制御手段は、前記ステートマシンにより制御され、前記バッファメモリと前記フラッシュメモリとの間で伝送されるデータのエラーを訂正するエラー訂正及びデータ入出力回路を、さらに含む
ことを特徴とする請求項１５に記載のフラッシュメモリシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、フラッシュメモリ装置に関するものであり、より詳しくは、フラッシュメモリと同一なアドレス構造を有するバッファメモリを内蔵したフラッシュメモリ装置及びフラッシュメモリシステムに関するものである。
【背景技術】
【０００２】
フラッシュメモリ（Ｆｌａｓｈ  Ｍｅｍｏｒｙ）は、高集積が可能な不揮発性メモリ（ｎｏｎ−ｖｏｌａｔｉｌｅ  ｍｅｍｏｒｙ）である。フラッシュメモリは、データ保存性に優れるので、システム内でメインメモリとして使用される。フラッシュメモリは、ＤＲＡＭ（Ｄｙｎａｍｉｃ  ＲＡＭ）又はＳＲＡＭ（Ｓｔａｔｉｃ  ＲＡＭ）インターフェース方式にも適用可能である。
【０００３】
フラッシュメモリは、高集積及び大容量が可能なため、既存のハードディスク及びフロッピー（登録商標）ディスクを代替する素子としてメモリ市場で急激に注目を帯びている。現在フラッシュメモリは、携帯電話、ディジタルカメラ、ＭＰ３プレーヤー、カムコーダー、ＰＤＡなど携帯型ディジタル電子機器の貯蔵媒体として広く用いられている。
【０００４】
しかしながら、高集積及び大容量の情報貯蔵が可能なフラッシュメモリは、ＲＡＭに比べてデータを読み取り書き取る時間が長く、ランダムアクセスが不可能であるという短所がある。ランダムアクセスが不可能なフラッシュメモリの短所を克服するためにフラッシュメモリ装置内にバッファメモリを置いてランダムアクセスを支援する新しい方法が開発されている。バッファメモリは、ランダムアクセスが可能なメモリ（例えば、ＤＲＡＭやＳＲＡＭ）である。
【０００５】
データをホストから直接フラッシュメモリに貯蔵せず、ランダムアクセスが可能なバッファメモリに先ず貯蔵する。その後に、バッファメモリに貯蔵されたデータをフラッシュメモリに貯蔵する。同様に、フラッシュメモリに貯蔵されたデータを直接ホストに伝送せず、バッファメモリに先ず貯蔵する。その後に、バッファメモリに貯蔵されたデータをホストに伝送する。
【０００６】
フラッシュメモリ装置がランダムアクセスを支援するためには、フラッシュメモリにデータを書き取る前に又はホストにデータを伝送する前にデータを臨時的に貯蔵するためのバッファメモリが必要である。従って、フラッシュメモリを使用してデータをランダムにアクセスしようとするシステムでバッファメモリの存在は必須である。
【０００７】
しかしながら、フラッシュメモリとバッファメモリは、それぞれ不揮発性メモリと揮発性メモリとしてアドレス構造を異にする。フラッシュメモリは、書き取り及び読み取りの基本単位であるページから構成されている。ページは、メイン領域とスペア領域とに大別される。一般に、一つのページのメモリ容量は５２８Ｂｙｔｅである。この中でメイン領域は５１２Ｂｙｔｅであり、スペア領域は１６Ｂｙｔｅである。
【０００８】
しかしながら、バッファメモリは、ページの区分がなく、メイン領域とスペア領域とに大別されていない。従って、バッファメモリを効率的に使用するためには、バッファメモリの構造をフラッシュメモリの構造と一致させる必要がある。
【発明の開示】
【発明が解決しようとする課題】
【０００９】
上記背景に鑑みて、本発明の目的は、フラッシュメモリと同一なアドレス構造を有するバッファメモリを内蔵することによって、ランダムアクセスが効率的に実行されるフラッシュメモリ装置及びフラッシュメモリシステムを提供することにある。
【課題を解決するための手段】
【００１０】
このような目的を達成するために、本発明に従うフラッシュメモリ装置は、メイン領域とスペア領域とに大別されるフラッシュメモリと、フラッシュメモリに書き込まれる又はフラッシュメモリから読み出されるデータを臨時に貯蔵し、そしてフラッシュメモリと同一なアドレス構造を有するようにメイン領域とスペア領域とに大別されるバッファメモリと、ホストから印加されたアドレスをバッファメモリに適していたアドレスにマッピングし、そしてバッファメモリのデータがフラッシュメモリに貯蔵されるように又はフラッシュメモリのデータがバッファメモリに貯蔵されるようにフラッシュメモリとバッファメモリとを制御する制御手段とを含むことを特徴とする。
【００１１】
この実施の形態において、フラッシュメモリ、バッファメモリ、そして制御手段は、単一チップより成ることを特徴とする。
【００１２】
この実施の形態において、ホストから印加される制御信号、アドレス、そしてデータをフラッシュメモリ装置を動作させるための内部信号に変更するホストインターフェースを、さらに含むことを特徴とする。
【００１３】
この実施の形態において、バッファメモリは、ランダムアクセスが可能なメモリであることを特徴とする。
【００１４】
この実施の形態において、メモリは、ＳＲＡＭ又はＤＲＡＭであることを特徴とする。
【００１５】
この実施の形態において、制御手段は、ホストから伝送されるデータをフラッシュメモリのアドレス、バッファメモリのアドレス、そしてコマンドとして臨時貯蔵するレジスタと、バッファメモリの読み取り及び書き取り動作を制御するバッファコントローラと、フラッシュメモリの読み取り及び書き取り動作を制御するフラッシュコントローラと、レジスタに貯蔵された値によりバッファメモリに貯蔵されたデータが読み取られるようにそして読み取られたデータがフラッシュメモリに貯蔵されるようにバッファコントローラとフラッシュコントローラとを制御するステートマシンとを含むことを特徴とする。
【００１６】
この実施の形態において、ステートマシンにより制御され、バッファメモリとフラッシュメモリとの間で伝送されるデータのエラーを訂正するエラー訂正及びデータ入出力回路を、さらに含むことを特徴とする。
【００１７】
この実施の形態において、制御手段は、バッファコントローラから印加されるアドレスをマッピングするデコーダを、さらに含むことを特徴とする。
【００１８】
この実施の形態において、デコーダは、バッファメモリへ入力されるアドレスがメイン領域とスペア領域とに分離されるようにマッピングすることを特徴とする。
【００１９】
本発明に従うメモリシステムは、ホストと、ホストの要求に応じてデータを貯蔵するか、或いは貯蔵されたデータを出力するフラッシュメモリ装置とを含む。ここで、フラッシュメモリ装置は、メイン領域とスペア領域とに大別されるフラッシュメモリと、フラッシュメモリに書き込まれる又はフラッシュメモリから読み出されるデータを臨時に貯蔵し、そしてフラッシュメモリと同一なアドレス構造を有するようにメイン領域とスペア領域とに大別されるバッファメモリと、ホストから印加されたアドレスをバッファメモリに適していたアドレスにマッピングし、そしてバッファメモリのデータがフラッシュメモリに貯蔵されるように又はフラッシュメモリのデータがバッファメモリに貯蔵されるようにフラッシュメモリとバッファメモリとを制御する制御手段とを含むことを特徴とする。
【００２０】
この実施の形態において、フラッシュメモリ、バッファメモリ、そして制御手段は単一チップより成ることを特徴とする。
【００２１】
この実施の形態において、ホストから印加される制御信号、アドレス、データをフラッシュメモリ装置を動作させるための内部信号に変更するホストインターフェースを、さらに含むことを特徴とする。
【００２２】
この実施の形態において、バッファメモリは、ランダムアクセスが可能なメモリであることを特徴とする。
【００２３】
この実施の形態において、メモリは、ＳＲＡＭ又はＤＲＡＭであることを特徴とする。
【００２４】
この実施の形態において、制御手段は、ホストから伝送されるデータをフラッシュメモリのアドレス、バッファメモリのアドレス、コマンドとして臨時貯蔵するレジスタと、バッファメモリの読み取り及び書き取り動作を制御するバッファコントローラと、フラッシュメモリの読み取り及び書き取り動作を制御するフラッシュコントローラと、レジスタに貯蔵された値によりバッファメモリに貯蔵されたデータが読み取られるようにそして読み取られたデータがフラッシュメモリに貯蔵されるようにバッファコントローラとフラッシュコントローラとを制御するステートマシンとを含むことを特徴とする。
【００２５】
この実施の形態において、ステートマシンにより制御され、バッファメモリとフラッシュメモリとの間で伝送されるデータのエラーを訂正するエラー訂正及びデータ入出力回路を、さらに含むことを特徴とする。
【００２６】
この実施の形態において、制御手段は、バッファコントローラから印加されるアドレスをマッピングするデコーダを、さらに含むことを特徴とする。
【００２７】
この実施の形態において、デコーダは、バッファメモリへ入力されるアドレスがメイン領域とスペア領域とに分離されるようにマッピングすることを特徴とする。
【発明の効果】
【００２８】
前述したように、本発明によれば、バッファメモリのアドレス構造とメモリ容量をフラッシュメモリの特性に適しているように調節することによって、フラッシュメモリ装置の動作制御が容易になる。
【発明を実施するための最良の形態】
【００２９】
以下、本発明の属する技術分野で当業者が本発明の技術的思想を容易に実施することができる程度で詳細に説明するために、本発明の好適な実施の形態について添付図面を参照して詳細に説明する。
【００３０】
図１は、ランダムアクセスが可能なバッファメモリを内蔵したフラッシュメモリ装置のブロック図である。本発明に従うフラッシュメモリ装置２００は、バスを通じてホスト１００と連結される。フラッシュメモリ装置２００は、ホスト１００の制御によりデータをフラッシュメモリ２６０に入力するか、或いはフラッシュメモリ２６０に貯蔵されたデータを出力する。
【００３１】
ホストインターフェース２１０は、ホスト１００と直接的に連結される。ホストインターフェース２１０は、ホスト１００からバスを通じて入った信号を入力される。ホスト１００から入力される信号は、制御信号、アドレス、データである。ホスト１００から入力された信号は、ホストインターフェース２１０でフラッシュメモリ装置２００を動作させる内部信号に変更される。内部信号は、フラッシュメモリ装置２００の内部にあるレジスタ２２０とバッファコントローラ２７０に印加される。
【００３２】
ホストインターフェース２１０は、多様なインターフェース方式で具現することができる。例えば、ホストインターフェース２１０は、ＳＲＡＭインターフェース方式で具現することができる。また、ホストインターフェース２１０は、ＳＲＡＭインターフェース方式と類似したＮＯＲフラッシュメモリインターフェース方式でも具現することができる。
【００３３】
フラッシュメモリ装置２００は、フラッシュメモリ２６０とバッファメモリ２９０とを含む。ホスト１００は、フラッシュメモリ２６０に貯蔵されるデータをバスを通じてフラッシュメモリ装置２００に伝送する。フラッシュメモリ装置２００は、伝送されたデータをフラッシュメモリ２６０に入力する前にバッファメモリ２９０に臨時的に貯蔵する。
【００３４】
逆に、フラッシュメモリ２６０に貯蔵されたデータは、ホスト１００へ伝送される前にバッファメモリ２９０に臨時的に貯蔵される。バッファメモリ２９０に貯蔵されたデータは内部的に読み取られる。読み取られたデータは、ホスト１００へ伝送される。フラッシュメモリ装置２００は、バッファメモリ２９０を用いたデータの読み取り及び書き取り動作により外部的にランダムアクセスが可能となる。
【００３５】
フラッシュメモリ２６０は、書き取り及び読み取りの基本単位であるページから構成される。ページは、メイン領域とスペア領域とに大別される。例として、一つのページのメモリ容量は５２８Ｂｙｔｅである。この中でメイン領域は、５１２Ｂｙｔｅであり、スペア領域は、１６Ｂｙｔｅである。
【００３６】
バッファメモリ２９０は、フラッシュメモリ２６０のデータを臨時的に貯蔵する。バッファメモリ２９０は、ランダムアクセスが可能なメモリである。バッファメモリ２９０は、ランダムアクセスが可能なＳＲＡＭやＤＲＡＭなどを用いて具現することができる。この場合、ホストインターフェース方式は、バッファメモリ２９０で採択されたＲＡＭのインターフェース方式により決定される。
【００３７】
フラッシュメモリ装置２００が効率的に動作するためには、バッファメモリ２９０とフラッシュメモリ２６０のアドレス構造が同一にしなければならない。すなわち、バッファメモリ２９０は、フラッシュメモリ２６０のようにページ単位で構成され、それぞれのページ単位は、メイン領域とスペア領域とに大別されるように形成されなければならない。また、バッファメモリ２９０のページ容量は、フラッシュメモリ２６０のページ容量と同一にしなければならない。
【００３８】
例として、バッファメモリ２９０は、ページ当たり５２８Ｂｙｔｅのメモリ容量を有する。この中でメイン領域は、５１２Ｂｙｔｅであり、スペア領域は１６Ｂｙｔｅである。もしバッファメモリ２９０のページが５２８Ｂｙｔｅより小さいか、５２８Ｂｙｔｅの整数倍でなければ、５２８Ｂｙｔｅ単位に読み取り及び書き取り動作が遂行されるフラッシュメモリ装置２００のバッファメモリとして効率的に使用することができない。
【００３９】
続けて、図１を参照すると、フラッシュメモリ装置２００は、レジスタ２２０と、ステートマシン２３０と、バッファコントローラ２７０と、エラー訂正及びデータ入出力ブロック（Ｅｒｒｏｒ  Ｃｏｒｒｅｃｔｉｏｎ  ａｎｄ  Ｄａｔａ  Ｉ／Ｏ  Ｂｌｏｃｋ；以下、“ＥＣＣ＆ＤＱ”という。）と、そしてフラッシュコントローラ２５０とを含む。
【００４０】
レジスタ２２０は、ホストインターフェース２１０からレジスタ制御信号ＲＥＧ＿ＣＴＲＬ、レジスタアドレスＲＥＧ＿ＡＤＤＲ、そしてレジスタデータＲＥＧ＿ＤＡＴＡを入力される。レジスタ制御信号は、レジスタ２２０の全般的な動作を制御する信号である。レジスタ２２０は、アドレス毎に担当している役割が異なる。アドレスの役割は予め定義されている。
【００４１】
レジスタデータは、対応するレジスタアドレスに入力される。レジスタデータは、フラッシュメモリのアドレス（以下、“フラッシュアドレス”という。）、バッファメモリのアドレス（以下、“バッファアドレス”という。）、コマンドを含む。フラッシュアドレスは、データが貯蔵されるフラッシュメモリ２６０のアドレスを意味する。バッファアドレスは、フラッシュメモリ２６０にデータが貯蔵される前に又はホスト１００にデータが伝送される前にデータを臨時的に貯蔵するバッファメモリ２９０のアドレスを意味する。コマンドは、読み取り又は書き取り動作などを命ずるコマンドを意味する。
【００４２】
図２は、レジスタのアドレスと役割を示す図表である。例として、レジスタ２２０は、Ｆ０００ｈ番地からＦ００３ｈ番地までのアドレスを有する。アドレスには特定データが書き取られる。図２で、Ｆ０００ｈ番地に貯蔵されたデータ値は、フラッシュメモリ装置に関する製品説明を示すデバイスＩＤである。Ｆ００１ｈ番地に貯蔵されたデータ値は、データを最終的に貯蔵するか、或いは貯蔵されたデータを読み取るためのフラッシュメモリ２６０のアドレスを意味する。Ｆ００２ｈ番地に貯蔵されたデータ値は、データを臨時的に貯蔵するか、或いは貯蔵されたデータを読み取るためのバッファメモリ２９０のアドレスを意味する。Ｆ００３ｈ番地に貯蔵されたデータ値は、フラッシュメモリ２６０の動作コマンドを示す。
【００４３】
図３は、Ｆ００３番地に貯蔵されたデータ値とそれによる動作を示す図表である。図３で、００００ｈは、フラッシュメモリ２６０の読み取る動作を命ずるコマンドである。０００１ｈは、フラッシュメモリ２６０の書き取り動作を命ずるコマンドである。０００２ｈは、フラッシュメモリ２６０の消去動作を命ずるコマンドである。０００３ｈは、フラッシュメモリ２６０のリセット動作を命ずるコマンドである。
【００４４】
レジスタ２２０のＦ００３ｈ番地に００００ｈ値が入力される場合にフラッシュメモリ装置２００は、次の通りの動作が遂行される。Ｆ００３ｈ番地は、フラッシュメモリ２６０の動作コマンドを示し、Ｆ００３ｈ番地に入力される００００ｈ値は、フラッシュメモリ２６０の読み取り動作を命ずるコマンドである。従って、Ｆ００１ｈ番地に該当するフラッシュアドレスのデータについての読み取り動作が遂行される。その後に、フラッシュメモリ２６０から読み取られたデータは、Ｆ００２ｈ番地に該当するバッファアドレスに貯蔵される。
【００４５】
レジスタ２２０のＦ００３ｈ番地に０００１ｈ値が入力された場合には、先ずＦ００２ｈ番地に該当するバッファアドレスのデータについての読み取り動作が遂行される。その後に、バッファメモリ２９０から読み取られたデータは、Ｆ００１ｈに該当するフラッシュアドレスに順次的に貯蔵される。
【００４６】
レジスタ２２０のＦ００３ｈ番地に０００２ｈ値が入力されれば、Ｆ００１ｈ番地に該当するフラッシュアドレスのデータについての消去動作が遂行される。Ｆ００３ｈ番地に０００３ｈ値が入力されれば、Ｆ００１ｈ番地に該当するフラッシュアドレスのデータについてのリセット動作が遂行される。
【００４７】
続けて、図１を参照すると、ステートマシン２３０は、レジスタ２２０に貯蔵されたデータ値を参照して動作する。ステートマシン２３０は、データ値によりバッファコントローラ２７０と、ＥＣＣ＆ＤＱブロック２４０と、そしてフラッシュコントローラ２５０とを制御する。
【００４８】
バッファコントローラ２７０は、ステートマシン２３０及びホストインターフェース２１０から信号を入力されて動作する。バッファコントローラ２７０は、バッファメモリ２９０のデータ読み取り又はデータ書き取り動作を制御する。
【００４９】
バッファコントローラ２７０は、ホストインターフェース２１０から制御信号ＢＵＦ＿ＣＴＲＬ１、アドレスＢＵＦ＿ＡＤＤＲ１、そしてデータＢＵＦ＿ＤＡＴＡ１を入力される。制御信号ＢＵＦ＿ＣＴＲＬ１は、バッファコントローラ２７０の動作を制御するための信号である。アドレスＢＵＦ＿ＡＤＤＲ１は、バッファメモリ２９０にデータＢＵＦ＿ＤＡＴＡ１を臨時的に貯蔵するため入力されるアドレスである。アドレスＢＵＦ＿ＡＤＤＲ１は、ホストインターフェース２１０を通じてホスト１００から直接入力される。
【００５０】
一方、バッファコントローラ２７０は、ステートマシン２３０から制御信号ＢＵＦ＿ＣＴＲＬ２、アドレスＢＵＦ＿ＡＤＤＲ２を入力される。制御信号ＢＵＦ＿ＣＴＲＬ２は、バッファコントローラ２７０を制御するための信号である。アドレスＢＵＦ＿ＡＤＤＲ２は、フラッシュメモリ装置２００で内部的に割り当てられたバッファアドレスである。また、バッファコントローラ２７０は、ステートマシン２３０からコマンドフラグ信号ＣＭＤ＿ＦＬＡＧを入力される。例えば、コマンドフラグ信号は、バッファメモリ２９０からデータ読み取るためのコマンド信号である。
【００５１】
バッファコントローラ２７０は、ホスト１００から印加された制御信号、アドレス、そしてデータをバッファメモリ２９０に伝達する役割をする。また、ステートマシン２３０から印加された制御信号とアドレスをバッファメモリ２９０に選択的に伝達する役割を果たす。バッファコントローラ２７０は、ホスト１００から印加されたアドレス ＢＵＦ＿ＡＤＤＲ１とステートマシン２３０から印加されたアドレス ＢＵＦ＿ＡＤＤＲ２を入力されて選択的に後端に位置したデコーダ２８０に伝達する。
【００５２】
バッファコントローラ２７０は、ステートマシン２３０の制御によりフラッシュメモリ２６０からデータを読み取ってバッファメモリ２９０に書き取り動作を遂行している中にホスト１００からバッファメモリ読み取りコマンドが入ると、両側の動作を同時に遂行することができるようにスイッチングする役割を担当する。
【００５３】
続けて、図１を参照すると、フラッシュメモリ装置２００は、バッファメモリ前端に位置したデコーダ２８０を、さらに含む。デコーダ２８０は、ホスト１００で印加されたアドレスＢＵＦ＿ＡＤＤＲ１を内部的に割り当てられたバッファアドレスに変更する役割を担当する。一般にホスト１００から印加されるバッファアドレスとフラッシュメモリ装置２００の内部で割り当てられたバッファアドレスは一致しない。
【００５４】
図４は、ホストで割り当てられたバッファメモリのアドレスがメモリの内部で割り当てられたバッファアドレスでマッピングされたことを示す図表である。
【００５５】
図４の（ａ）は、ホストで割り当てられたバッファアドレスを示す。図４の（ａ）を参照すると、ホスト１００から印加されるアドレスの中で００００ｈ乃至０５ＦＦｈは、バッファメモリ２９０のメインデータ領域を示す。８０００ｈ乃至８０２Ｆｈは、スペアデータ領域を示す。そしてメイン及びスペアデータ領域を除外した残り領域は、ホスト１００の必要に応じて保存される領域（０６００ｈ〜７ＦＦＦ又は８０５０ｈ〜ＥＦＦＦｈ）とレジスタ領域（Ｆ０００ｈ〜Ｆ００３ｈ）である。ホスト１００から印加されたアドレスＢＵＦ＿ＡＤＤＲ１は１６ビットのアドレスである。
【００５６】
図４の（ｂ）は、バッファメモリに適しているように内部的に割り当てられたバッファアドレスを示す。図４の（ｂ）を参照すると、メモリの内部で割り当てられたアドレスの中で０００ｈ乃至５ＦＦＦｈは、バッファメモリ２９０のメインデータ領域を示す。６００ｈ乃至６２Ｆｈは、スペアデータ領域を示す。ホスト１００から割り当てられた１６ビットのアドレスは、フラッシュメモリ装置２００で内部的に割り当てられた１２ビットのアドレスでマッピングされる。
【００５７】
デコーダ２８０は、１６ビットのアドレスを１２ビットのアドレスにマッピングする役割をする。デコーダ２８０は、図４の（ｂ）で示されたようにメインデータ領域とスペアデータ領域とを分離してマッピングする。しかしながら、メインデータ領域とスペアデータ領域とを分離せず連続的にマッピングすることも可能なものは自明な事実である。
【００５８】
一方、ステートマシン２３０から印加されたアドレスＢＵＦ＿ＡＤＤＲ２は、バッファメモリ２９０に適するように内部的に割り当てられた１２ビットのアドレスである。１２ビットのアドレスは、内部的に割り当てられたアドレスであるためデコーダ２８０でマッピングされずバッファメモリ２９０に伝達される。
【００５９】
続けて、図１を参照すると、フラッシュコントローラ２５０は、ステートマシン２３０から制御信号Ｆ＿ＣＴＲＬを入力されてフラッシュメモリ２６０のデータ読み取り又は書き取り動作などを制御する制御信号ＣＴＲＬを発生する。
【００６０】
ＥＣＣ＆ＤＱブロック２４０は、ステートマシン２３０から制御信号ＥＣＣ＿ＣＴＲＬ，ＤＱ＿ＣＴＲＬとアドレスＦ＿ＡＤＤＲを入力される。制御信号ＥＣＣ＿ＣＴＲＬ，ＤＱ＿ＣＴＲＬは、ＥＣＣ＆ＤＱブロック２４０の動作を制御するための信号である。アドレスＦ＿ＡＤＤＲは、データを貯蔵するためのフラッシュメモリ２６０のアドレスである。アドレスＦ＿ＡＤＤＲは、ＥＣＣ＆ＤＱブロック２４０を通じてフラッシュメモリ２６０に伝達される。
【００６１】
ＥＣＣ＆ＤＱブロック２４０は、バッファコントローラ２７０から入力されたデータをフラッシュメモリ２６０に伝達する。そしてフラッシュメモリ２６０から入力されたデータをバッファコントローラ２７０に伝達する。ＥＣＣ＆ＤＱブロック２４０は、バッファコントローラ２７０とフラッシュメモリ２６０との間で伝送されるデータのエラーを訂正する。
【００６２】
以上のフラッシュメモリ装置２００を構成する要素は、単一チップに形成することができるだけではなく、フラッシュメモリ装置２００が多重チップ技術を用いて具現することもできることは、この技術分野の当業者に自明な事実である。
【００６３】
以下、本発明に従うフラッシュメモリ装置の動作が図１を参照して詳細に説明される。
【００６４】
ホスト１００は、バスを通じて制御信号、アドレス、そしてデータをフラッシュメモリ装置２００へ伝送する。ホストインターフェース２１０は、制御信号、アドレス、そしてデータを内部信号に変更した後に、レジスタ２２０又はバッファコントローラ２７０へ伝送する。
【００６５】
レジスタ２２０は、ホストインターフェース２１０からレジスタ制御信号ＲＥＧ＿ＣＴＲＬ、レジスタアドレスＲＥＧ＿ＡＤＤＲ、そしてレジスタデータＲＥＧ＿ＤＡＴＡを入力される。レジスタアドレス ＲＥＧ＿ＡＤＤＲに貯蔵されるレジスタデータＲＥＧ＿ＤＡＴＡは、フラッシュアドレス、バッファアドレス、そしてコマンドである。
【００６６】
ステートマシン２３０は、レジスタ２２０に貯蔵された値によりＥＣＣ＆ＤＱブロック２４０、フラッシュコントローラ２５０、そしてバッファコントローラ２７０を制御する。
【００６７】
バッファコントローラ２７０は、ホストインターフェース２１０から制御信号ＢＵＦ＿ＣＴＲＬ１、アドレスＢＵＦ＿ＡＤＤＲ１、そしてデータＢＵＦ＿ＤＡＴＡ１を入力される。アドレスＢＵＦ＿ＡＤＤＲ１は、ホスト１００で割り当てられたバッファアドレスである。アドレスＢＵＦ＿ＡＤＤＲ１は、フラッシュメモリにデータが貯蔵される前に臨時的にデータを貯蔵して置くバッファメモリ２９０のアドレスである。アドレスＢＵＦ＿ＡＤＤＲ１にデータＢＵＦ＿ＤＡＴＡ１が貯蔵される。
【００６８】
一方、バッファコントローラ２５０は、ステートマシン２３０から制御信号ＢＵＦ＿ＣＴＲＬ２、アドレスＢＵＦ＿ＡＤＤＲ２を入力される。アドレスＢＵＦ＿ＡＤＤＲ２は内部的に割り当てられたバッファアドレスである。
【００６９】
バッファコントローラ２５０は、アドレスＢＵＦ＿ＡＤＤＲ１とアドレスＢＵＦ＿ＡＤＤＲ２とを入力されて、選択的にバッファメモリ２９０に伝達する。バッファコントローラ２５０でアドレスＢＵＦ＿ＡＤＤＲ１が選択されれば、アドレスＢＵＦ＿ＡＤＤＲ１は、内部で割り当てられたアドレスにマッピングする動作が遂行される。マッピング動作は、デコーダ２８０により遂行される。マッピングされたアドレスは、バッファメモリ２９０に印加される。
【００７０】
一方、レジスタ２２０にレジスタ制御信号ＲＥＧ＿ＣＴＲＬ、レジスタアドレスＲＥＧ＿ＡＤＤＲ 、そしてレジスタデータＲＥＧ＿ＤＡＴＡが印加される動作は、バッファコントローラ２７０に制御信号ＢＵＦ＿ＣＴＲＬ１、アドレスＢＵＦ＿ＡＤＤＲ１、そしてデータＢＵＦ＿ＤＡＴＡ１が印加される前に遂行することもできる。
【００７１】
ステートマシン２３０は、レジスタ２２０に貯蔵された値によりバッファメモリ２９０に貯蔵されたデータが読み取られるように、そしてそのように読み取られたデータがフラッシュメモリ２６０に貯蔵されるようにバッファコントローラ２７０、ＥＣＣ＆ＤＱブロック２４０、そしてフラッシュコントローラ２５０を制御する。
【００７２】
例えば、ステートマシン２３０は、読み取り動作を知らせるコマンドフラグ信号ＣＭＤ＿ＦＬＡＧ、制御信号ＢＵＦ＿ＣＴＲＬ２、そしてアドレスＢＵＦ＿ＡＤＤＲ２を出力する。コマンドフラグ信号が読み取り動作を示すと、バッファコントローラ２７０は、アドレスＢＵＦ＿ＡＤＤＲ２に対応するバッファメモリ領域でデータが読み取られるように制御する。そのように読み取られたデータは、ＥＣＣ＆ＤＱブロック２４０に伝達される。
【００７３】
その後に、ステートマシン２３０は、レジスタ２２０に貯蔵されたフラッシュアドレス値を参照してアドレスＦ＿ＡＤＤＲを発生する。ＥＣＣ＆ＤＱブロック２４０は、ステートマシン２３０から制御信号ＥＣＣ＿ＣＴＲＬ，ＤＱ＿ＣＴＲＬと、アドレスＦ＿ＡＤＤＲとを入力される。ＥＣＣ＆ＤＱブロック２４０は、フラッシュメモリ２６０とバッファメモリ２９０とで間に伝送されるデータのエラー訂正機能を遂行し、決められたタイミングによりコマンド、アドレス、そしてデータをフラッシュメモリ２６０に出力する。
【００７４】
フラッシュコントローラ２５０は、ステートマシン２３０からの制御信号Ｆ＿ＣＴＲＬをフラッシュメモリ２６０に適していた制御信号ＣＴＲＬに変換して出力する。以後よく知られた方法によりフラッシュメモリ２６０のデータ読み取り又はデータ書き取り動作が遂行される。
【００７５】
フラッシュメモリ２６０は、読み取り及び書き取り動作の基本単位であるページより成る。ページは、メイン領域とスペア領域とに大別される。フラッシュメモリ２６０は、ランダムアクセス動作を支援しない。フラッシュメモリ２６０がランダムアクセスを支援するためにはバッファメモリ２９０を必要とする。バッファメモリ２９０はランダムアクセスが可能なメモリである。
【００７６】
バッファメモリ２９０は、フラッシュメモリ２６０と同一なアドレス構造を有するようにする。すなわち、バッファメモリ２９０がページより成るようにする。ページは、メイン領域とスペア領域とに大別されるようにする。そしてバッファメモリ２９０のページの容量がフラッシュメモリ２６０と同一であるようにする。
【００７７】
一方、ホスト１００で割り当てられたバッファアドレスと内部的に割り当てられたバッファアドレスが一致しなくてもよい。一致しない場合には、ホスト１００で割り当てられたバッファアドレスを内部的に割り当てられたバッファアドレスに変更するマッピング動作が遂行される。マッピング動作はデコーダ２８０で実行される。
【００７８】
図４で示されたようにホスト１００で割り当てられたバッファアドレスをメイン領域とスペア領域とに分離してマッピングする。メイン領域とスペア領域とにアドレスを分離してマッピングすることによって、スペアデータのみにバースト読み取り動作が可能となる。また、メイン領域とスペア領域を分離してマッピングすることによってアドレス制御が簡便となる。
【００７９】
一方、本発明の詳細な説明では、具体的な実施の形態に関して説明したが、本発明の範囲から外れない限度内で様々な変形が可能なものは勿論である。したがって、本発明の範囲は前述した実施の形態に局限されて決められるべきではなく、特許請求の範囲だけではなく、この発明の特許請求の範囲と均等なものにより決められるべきである。
【図面の簡単な説明】
【００８０】
【図１】本発明に従うフラッシュメモリ装置及びフラッシュメモリシステムを示すブロック図である。
【図２】図１のレジスタのアドレスと役割を示す図表である。
【図３】図２のコマンドレジスタの値とそれによる動作を示す図表である。
【図４】ホストで割り当てられたバッファメモリのアドレスがメモリの内部で割り当てられたバッファメモリのアドレスでマッピングされたことを示す図表である。
【符号の説明】
【００８１】
１００…ホスト
２００…フラッシュメモリ装置
２１０…ホストインターフェース
２２０…レジスタ
２３０…ステートマシン
２４０…エラー訂正及びデータ入出力ブロック
２５０…フラッシュコントローラ
２６０…フラッシュメモリ
２７０…バッファコントローラ
２８０…デコーダ
２９０…バッファメモリ
【図１】
0004628750.tif 000002
【図２】
0004628750.tif 000003
【図３】
0004628750.tif 000004
【図４】
0004628750.tif 000005