JP2005316793A - フラッシュメモリシステム及びフラッシュメモリの制御方法 - Google Patents
フラッシュメモリシステム及びフラッシュメモリの制御方法 Download PDFInfo
- Publication number
- JP2005316793A JP2005316793A JP2004135045A JP2004135045A JP2005316793A JP 2005316793 A JP2005316793 A JP 2005316793A JP 2004135045 A JP2004135045 A JP 2004135045A JP 2004135045 A JP2004135045 A JP 2004135045A JP 2005316793 A JP2005316793 A JP 2005316793A
- Authority
- JP
- Japan
- Prior art keywords
- flash memory
- memory
- data
- block
- management information
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Abstract
【課題】 フラッシュメモリに書替えが発生した場合でも、アクセス時間が長くなることを防止する。
【解決手段】 フラッシュメモリ2を備えるフラッシュメモリシステム1に、重ね書き可能な不揮発性メモリのFRAM4を設け、フラッシュメモリ2のアクセスの管理で用いる管理情報をFRAM4に保存している。ホストシステム20から与えられる論理アドレスとフラッシュメモリ2上の物理アドレスとを変換するアドレス変換テーブルをFRAM4に保存することにより、FRAM4上のアドレス変換テーブルの一部を書替えるだけでよくなり、フラッシュメモリ2のアクセス時間が長くならない。
【選択図】 図1
【解決手段】 フラッシュメモリ2を備えるフラッシュメモリシステム1に、重ね書き可能な不揮発性メモリのFRAM4を設け、フラッシュメモリ2のアクセスの管理で用いる管理情報をFRAM4に保存している。ホストシステム20から与えられる論理アドレスとフラッシュメモリ2上の物理アドレスとを変換するアドレス変換テーブルをFRAM4に保存することにより、FRAM4上のアドレス変換テーブルの一部を書替えるだけでよくなり、フラッシュメモリ2のアクセス時間が長くならない。
【選択図】 図1
Description
本発明は、フラッシュメモリシステム及びフラッシュメモリの制御方法に関する。
近年、メモリーカードやシリコンディスク等の形態でメモリシステムに使用される半導体メモリとして、フラッシュメモリが広く採用されている。フラッシュメモリに格納されたデータは、電力が供給されていないときでも保持されていることが要求される。
NAND型フラッシュメモリは、上記のメモリシステムで特に多く用いられるフラッシュメモリである。
NAND型フラッシュメモリに含まれている複数のメモリセルのそれぞれは、消去状態のときに論理値“1”を示し、書込み状態の時に“0”を示す。そして、複数のメモリセルは、他のメモリセルとは独立して消去状態から書込状態へと変化することができる。
NAND型フラッシュメモリに含まれている複数のメモリセルのそれぞれは、消去状態のときに論理値“1”を示し、書込み状態の時に“0”を示す。そして、複数のメモリセルは、他のメモリセルとは独立して消去状態から書込状態へと変化することができる。
これとは対照的に、書込状態から消去状態へと変化させるときには、各メモリセルは他のメモリセルと独立して変化させることができない。この書込状態から消去状態に変化させるときには、ブロックと称される予め定められた所定数のメモリセルを全て同時に消去状態にする。この一括消去動作は、一般的に、「ブロック消去」と称されている。NAND型フラッシュメモリに対する書込処理若しくは読出処理は、ページと称される予め定められた数のメモリセル単位に処理が行なわれる。消去処理の単位であるブロックは複数のページで構成されている。
NAND型フラッシュメモリは、上記ような特徴を有するため、データの書替を行なう場合には、ブロック消去されている消去済ブロックに新たなデータ(書替後のデータ)を書込み、古いデータ(書替前のデータ)が書込まれていたブロックを消去するという処理を行なっている。
従って、ホストシステム側から与えられるアドレスに基づく論理ブロックアドレスと、フラッシュメモリ内でのブロックアドレスである物理ブロックアドレスとの対応関係は、データを書替える毎に動的に変化する。この論理ブロックアドレスと物理ブロックアドレスとの対応関係は、通常、その対応関係を示したアドレス変換テーブルによって管理されている。
下記特許文献1では、このアドレス変換テーブルを、フラッシュメモリ内に保存し、必要なアドレス変換テーブルをランダムアクセスメモリ(以下、RAMという)にコピーして使用している。つまり、アドレス変換テーブルをRAMにコピーし、論理ブロックアドレスを物理ブロックアドレスに変換する処理を、そのRAM上で行っている。
特開2001−142774号公報
アドレス変換テーブルは、フラッシュメモリのアクセスを管理するために必要な管理情報の1つである。特許文献1では、必要なアドレス変換テーブルをその都度RAMにコピーしなければならなかった。
又、上記論理ブロックアドレスと物理ブロックアドレスとの対応関係は、データを書替える毎に変化するため、その変化に対応してアドレス変換テーブルも更新しなければならない。ところが、フラッシュメモリはデータの重ね書きができないので、ブロックごとにアドレス変換テーブルの全データを再度書込まなければならない。これらの理由により、アドレス変換テーブルに対するアクセス時間や更新処理時間が長くなり、フラッシュメモリに対するアクセス時間も長くなっていた。
又、上記論理ブロックアドレスと物理ブロックアドレスとの対応関係は、データを書替える毎に変化するため、その変化に対応してアドレス変換テーブルも更新しなければならない。ところが、フラッシュメモリはデータの重ね書きができないので、ブロックごとにアドレス変換テーブルの全データを再度書込まなければならない。これらの理由により、アドレス変換テーブルに対するアクセス時間や更新処理時間が長くなり、フラッシュメモリに対するアクセス時間も長くなっていた。
本発明は、このような従来の問題を解決し、フラッシュメモリに対するアクセス時間を短くすることができると共に、管理情報の更新も早くできるフラッシュメモリシステム及びフラッシュメモリの制御方法を提供することを目的とする。
上記目的を達成するために、本発明の第1の観点に係るフラッシュメモリシステムは、
ホストシステムから供給されるユーザデータを記憶するフラッシュメモリと、
前記フラッシュメモリに対する前記ユーザデータの書込み及び読出しを管理するための管理情報を作成する情報作成手段と、
前記管理情報を記憶する重ね書き可能な不揮発性メモリと、
前記重ね書き可能な不揮発性メモリに記憶された前記管理情報に基づき、前記フラッシュメモリに対するアクセスを制御するアクセス制御手段と、
を備えることを特徴とする。
ホストシステムから供給されるユーザデータを記憶するフラッシュメモリと、
前記フラッシュメモリに対する前記ユーザデータの書込み及び読出しを管理するための管理情報を作成する情報作成手段と、
前記管理情報を記憶する重ね書き可能な不揮発性メモリと、
前記重ね書き可能な不揮発性メモリに記憶された前記管理情報に基づき、前記フラッシュメモリに対するアクセスを制御するアクセス制御手段と、
を備えることを特徴とする。
このような構成を採用したことにより、フラッシュメモリに対するユーザデータの書込み及び読出しを管理するための管理情報が情報作成手段により、作成されて不揮発性メモリに記憶される。そして、不揮発性メモリに記憶された管理情報に基づき、フラッシュメモリに対するアクセスが制御される。したがって、フラッシュメモリに対するアクセス時間を短くすることができる。
なお、前記管理情報には、前記ホストシステム側から前記アクセス時に与えられる論理アドレスを前記フラッシュメモリ上のアドレスに変換するアドレス変換テーブルが含まれてもよい。
また、前記管理情報には、前記フラッシュメモリの所定数のメモリセルでそれぞれ構成されてデータの消去単位となる複数のブロックのうちの該データが消去されている消去済みブロックを検索するためのテーブルが含まれていてもよい。
また、前記管理情報には、前記フラッシュメモリの所定数のメモリセルでそれぞれ構成されてデータの消去単位となる複数のブロックの該データの消去回数或いは書換回数をそれぞれ示す情報が含まれてもよい。
また、前記重ね書き可能な不揮発性メモリは、強誘電体メモリで構成されてもよい。
また、前記重ね書き可能な不揮発性メモリは、前記管理情報を記憶するスタティックランダムアクセスメモリと、当該スタティックランダムアクセスメモリに記憶された管理情報をバックアップするバックアップ手段と、
を備えてもよい。
また、前記重ね書き可能な不揮発性メモリは、前記管理情報を記憶するスタティックランダムアクセスメモリと、当該スタティックランダムアクセスメモリに記憶された管理情報をバックアップするバックアップ手段と、
を備えてもよい。
上記目的を達成するために、本発明の第2の観点に係るフラッシュメモリの制御方法は、
フラッシュメモリに対するユーザデータの書込み及び読出しを管理するための管理情報を重ね書き可能な不揮発性メモリに記憶させる処理と、
前記重ね書き可能な不揮発性メモリに記憶された前記管理情報に基づき、前記フラッシュメモリに対するアクセスを制御する処理と、
を行なうことを特徴とする。
フラッシュメモリに対するユーザデータの書込み及び読出しを管理するための管理情報を重ね書き可能な不揮発性メモリに記憶させる処理と、
前記重ね書き可能な不揮発性メモリに記憶された前記管理情報に基づき、前記フラッシュメモリに対するアクセスを制御する処理と、
を行なうことを特徴とする。
この場合、前記管理情報には、前記アクセス時に与えられる論理アドレスを前記フラッシュメモリ上のアドレスに変換するアドレス変換テーブルが含まれてもよい。
また、前記管理情報には、前記フラッシュメモリの所定数のメモリセルでそれぞれ構成されてデータの消去単位となる複数のブロックのうちの該データが消去されている消去済みブロックを検索するためのテーブルが含まれてもよい。
また、前記管理情報には、前記フラッシュメモリの所定数のメモリセルでそれぞれ構成されてデータの消去単位となる複数のブロックの該データの消去回数或いは書替回数をそれぞれ示す情報が含まれてもよい。
また、前記重ね書き可能な不揮発性メモリは、強誘電体メモリで構成されてもよい。
また、前記重ね書き可能な不揮発性メモリは、前記管理情報を記憶するスタティックランダムアクセスメモリと、当該スタティックランダムアクセスメモリに記憶された管理情報をバックアップするバックアップ手段と、
を備えてもよい。
を備えてもよい。
本発明によれば、フラッシュメモリに対するユーザデータの書込み及び読出しを管理するための管理情報が不揮発性メモリに記憶される。そして、不揮発性メモリに記憶された管理情報に基づき、フラッシュメモリに対するアクセスが制御される。そのため、管理情報をフラッシュメモリから読出す必要もなく、その管理情報の更新を早く行なうことができる。したがって、フラッシュメモリにおけるアクセス時間を短縮できる。
以下、図面に基づき、本発明の実施形態について説明する。
図1は、本発明の実施形態に係るフラッシュメモリシステム1を概略的に示す機能ブロック図である。
図1は、本発明の実施形態に係るフラッシュメモリシステム1を概略的に示す機能ブロック図である。
図1に示したようにフラッシュメモリシステム1は、NAND型フラッシュメモリで構成されたフラッシュメモリ2と、フラッシュメモリ2を制御するメモリコントローラ3と、フラッシュメモリ2を制御するための管理情報を保存する強誘電体メモリ(Ferroelectric RAM:以下、FRAMという)4とで構成されている。
フラッシュメモリシステム1は、ホストシステム20に着脱可能に装着されて使用され、ホストシステム20の一種の外部記憶装置として用いられる。ホストシステム20から与えられたユーザデータが、フラッシュメモリ2に格納される。フラッシュメモリ2のユーザデータの書込み及び読出しを管理するための管理情報がFRAM4に記憶される。
尚、ホストシステム20としては、文字、音声、或いは画像情報等の種々の情報を処理するパーソナルコンピュータやデジタルスチルカメラをはじめとする各種情報処理装置が挙げられる。
フラッシュメモリ2は、ページ単位で読出し又は書込みを実行し、ブロック単位で消去を実行するデバイスである。
メモリコントローラ3は、ホストインターフェース制御ブロック5と、マイクロプロセッサ6と、ホストインターフェースブロック7と、ワークエリア8と、バッファ9と、内部インターフェースブロック10と、ECC(エラー・コレクション・コード)ブロック11と、フラッシュメモリシーケンサブロック12とから構成される。
これら機能ブロックによって構成されるメモリコントローラ3は、一つの半導体チップ上に集積されている。以下に各ブロックの機能を説明する。
マイクロプロセッサ6は、メモリコントローラ3を構成する各機能ブロック全体の動作を制御する機能ブロックである。
マイクロプロセッサ6は、メモリコントローラ3を構成する各機能ブロック全体の動作を制御する機能ブロックである。
ホストインターフェース制御ブロック5は、ホストインターフェースブロック7の動作を制御する機能ブロックである。ここで、ホストインターフェース制御ブロック5は、ホストインターフェースブロック7の動作を設定する動作設定レジスタ(図示せず)を備えており、この動作設定レジスタに基づきホストインターフェースブロック7は動作する。
ホストインターフェースブロック7は、ホストシステム20とデータ、アドレス情報、ステータス情報及び外部コマンド情報の授受を行なう機能ブロックである。すなわち、フラッシュメモリシステム1がホストシステム20に装着されると、フラッシュメモリシステム1とホストシステム20とは、外部バス13を介して相互に接続される。この状態において、ホストシステム20よりフラッシュメモリシステム1に供給されるデータ等は、ホストインターフェースブロック7を入口としてメモリコントローラ3の内部に取り込まれる。フラッシュメモリシステム1からホストシステム20に供給されるデータ等は、ホストインターフェースブロック7を出口としてホストシステム20に供給される。
さらに、ホストインターフェースブロック7は、ホストシステム20より供給されるアドレス情報及び外部コマンドを一時的に保持するタスクファイルレジスタ(図示せず)及びエラーが発生した場合にセットされるエラーレジスタ(図示せず)等を有している。
ワークエリア8は、フラッシュメモリ2の制御に必要なデータが一時的に格納される作業領域であり、複数のスタティックランダムアクセスメモリ(Static Random Access Memory:以下、SRAMという)によって構成される機能ブロックである。
バッファ9は、フラッシュメモリ2から読出したデータ及びフラッシュメモリ2に書込むデータを一時的に保持する機能ブロックである。すなわち、フラッシュメモリ2から読出したデータは、ホストシステム20の受取準備ができるまでバッファ9に保持され、フラッシュメモリ2に書込むデータは、フラッシュメモリ2の書込み準備ができるまでバッファ9に保持される。
フラッシュメモリシーケンサブロック12は、内部コマンドに基づきフラッシュメモリ2の動作を制御する機能ブロックである。フラッシュメモリシーケンサブロック12は、複数のレジスタ(図示せず)を備え、この複数のレジスタに内部コマンドを実行する際に必要な情報が設定される。この複数のレジスタに内部コマンドを実行する際に必要な情報が設定されると、フラッシュメモリシーケンサブロック12は、その情報に基づいて処理を実行する。
ここで、「内部コマンド」とは、メモリコントローラ3からフラッシュメモリ2に与えられるコマンドであり、ホストシステム20からフラッシュメモリシステム1に与えられるコマンドである「外部コマンド」とは区別される。
内部インターフェースブロック10は、内部バス14を介して、フラッシュメモリ2或いはFRAM4とデータ、アドレス情報、ステータス情報、内部コマンド情報及びデバイスID情報等の授受を行なう機能ブロックである。尚、フラッシュメモリ2用のバスとFRAM4用のバスについては、一部を共用(例えば、データバスを共用)しても、別々に設けてもよい。
ECCブロック11は、フラッシュメモリ2に書込むデ―タに付加されるエラーコレクションコードを生成するとともに、フラッシュメモリ2から読出したデータに付加されたエラーコレクションコードに基づいて、読出したデータに含まれる誤りを検出・訂正する機能ブロックである。
次に、フラッシュメモリ2について説明する。
フラッシュメモリシステム1で、フラッシュメモリ2を構成するNAND型フラッシュメモリは、ストレージデバイスへの用途として(ハードディスクの代わりになるものとして)開発された不揮発性メモリである。このNAND型フラッシュメモリは、ランダムアクセスを行なうことができず、書込みと読出しはページ単位で、消去はブロック単位で行なわれる。又、データの上書きができないので、データを書込むときは、消去されている領域にデータの書込みを行なう。
フラッシュメモリシステム1で、フラッシュメモリ2を構成するNAND型フラッシュメモリは、ストレージデバイスへの用途として(ハードディスクの代わりになるものとして)開発された不揮発性メモリである。このNAND型フラッシュメモリは、ランダムアクセスを行なうことができず、書込みと読出しはページ単位で、消去はブロック単位で行なわれる。又、データの上書きができないので、データを書込むときは、消去されている領域にデータの書込みを行なう。
フラッシュメモリ2は、このような特徴を有するため、通常、データの書替を行なう場合には、ブロック消去されている消去済ブロックに新たなデータ(書替後のデータ)を書込み、古いデータ(書替前のデータ)が書込まれていたブロックを消去するという処理を行なっている。このようなデータの書替えを行なった場合、書替後のデータは、書替前のデータと異なるブロックに書込まれる。
そのため、ホストシステム20側から与えられるアドレスに基づく論理ブロックアドレスと、フラッシュメモリ2内でのブロックアドレスである物理ブロックアドレスとの対応関係は、データを書替える毎に動的に変化する。この論理ブロックアドレスと物理ブロックアドレスとの対応関係は、通常、その対応関係を示したアドレス変換テーブルによって管理されており、アドレス変換テーブルは、後述する対応論理ブロックアドレスに基づいて作成される。
上記ブロックの構成は、NAND型フラッシュメモリの仕様によって異なる。
図2(a),(b)は、ブロックとページの関係を示す説明図である。
一般的なNAND型フラッシュメモリでは、図2(a)に示したように、1ブロックが32ページ(P00〜P31)で構成され、各ページが512バイトのユーザ領域と16バイトの冗長領域で構成されている。
又、記憶容量の増加に伴い、図2(b)に示したように、1ブロックが64ページ(P00〜P63)で構成され、各ページが2048バイトのユーザ領域と64バイトの冗長領域で構成されているものも提供されている。
この実施形態のフラッシュメモリ2では、1ブロックが32ページ(P00〜P31)で構成され、各ページを512バイトのユーザ領域と16バイトの冗長領域で構成したものを用いる。
図2(a),(b)は、ブロックとページの関係を示す説明図である。
一般的なNAND型フラッシュメモリでは、図2(a)に示したように、1ブロックが32ページ(P00〜P31)で構成され、各ページが512バイトのユーザ領域と16バイトの冗長領域で構成されている。
又、記憶容量の増加に伴い、図2(b)に示したように、1ブロックが64ページ(P00〜P63)で構成され、各ページが2048バイトのユーザ領域と64バイトの冗長領域で構成されているものも提供されている。
この実施形態のフラッシュメモリ2では、1ブロックが32ページ(P00〜P31)で構成され、各ページを512バイトのユーザ領域と16バイトの冗長領域で構成したものを用いる。
ユーザ領域は、主に、ホストシステム20から供給されるデ―タが記憶される領域であり、冗長領域は、エラーコレクションコード、対応論理ブロックアドレス及びブロックステータス等の付加データが記憶される領域である。
エラ―コレクションコードとは、ユーザ領域に記憶されているデータに含まれる誤りを検出、訂正するための付加データであり、外部のECCブロック11によって生成される。
対応論理ブロックアドレスは、そのブロックにデータが格納されている場合に、そのブロックがどの論理ブロックアドレスに対応するかを示している。尚、そのブロックにデータが格納されていない場合は、対応論理ブロックアドレスも格納されていないので、対応論理ブロックアドレスが格納されているか否かで、そのブロックが消去済ブロックであるか否かを判断することもできる。つまり、対応論理ブロックアドレスが格納されていない場合は、消去済ブロックであると判断される。
ブロックステータスは、そのブロックが不良ブロック(正常にデータの書込み等を行なうことができないブロック)であるか否かを示すフラグであり、そのブロックが不良ブロックであると判断された場合には、不良ブロックであることを示すフラグが設定される。
一般的なNAND型フラッシュメモリと同様に、フラッシュメモリ2は、書込みデータ若しくは読出しデータを保持するためのレジスタと、データを記憶するメモリセルアレイによって構成されている。メモリセルアレイは、複数のメモリセルが直列に接続されたメモリセル群を複数備えており、ワード線によってメモリセル群の特定のメモリセルが選択される。このワード線によって選択されたメモリセルとレジスタとの間で、データの複写(レジスタからメモリセルへの複写、若しくはメモリセルからレジスタへの複写)が行なわれる。
メモリセルアレイを構成するメモリセルは、2つのゲートを備えたMOSトランジスタで構成されている。ここで、上側のゲートはコントロールゲートと呼ばれ、下側のゲートはフローティングゲートと呼ばれている。フローティングゲートに電荷(電子)を注入若しくはフローティングゲートから電荷(電子)を排出することによって、データの書込み若しくはデータの消去を行なっている。
このフローティングゲートは周囲を絶縁体で囲まれているので、注入された電子は長期間にわたって保持される。尚、フローティングゲートに電子を注入するときは、コントロールゲートが高電位側となる高電圧を印加して電子を注入し、フローティングゲートから電子を排出するときは、コントロールゲートが低電位側となる高電圧を印加して電子を排出する。
フローティングゲートに電子が注入されている状態(書込状態)が、論理値の“0”のデータに対応し、フローティングゲートから電子が排出されている状態(消去状態)が、論理値の“1”のデータに対応する。
次に、FRAM4について説明する。
FRAM4は、強誘電体膜の自発分極現象を利用したメモリであり、印加電界方向により反転する分極方向により、データを記憶している。メモリセルに強誘電体膜を採用することによって、データの不揮発特性を確保している。このFRAM4には、フラッシュメモリ2にアクセスするための管理情報として、後述するアドレス変換テーブルや、消去済ブロック検索用テーブルや、ブロックの消去回数等が情報が保存される。マイクロプロセッサ6は、ワークエリア8を利用して管理情報を作成してFRAM4に保存すると共に、その更新を適宜に実施する。
FRAM4は、強誘電体膜の自発分極現象を利用したメモリであり、印加電界方向により反転する分極方向により、データを記憶している。メモリセルに強誘電体膜を採用することによって、データの不揮発特性を確保している。このFRAM4には、フラッシュメモリ2にアクセスするための管理情報として、後述するアドレス変換テーブルや、消去済ブロック検索用テーブルや、ブロックの消去回数等が情報が保存される。マイクロプロセッサ6は、ワークエリア8を利用して管理情報を作成してFRAM4に保存すると共に、その更新を適宜に実施する。
次に、フラッシュメモリ2に対するアクセスについて説明する。
フラッシュメモリ2内の複数のブロックでゾーンを構成し、フラッシュメモリ2に対するアクセスを制御する場合について説明する。
フラッシュメモリ2内の複数のブロックでゾーンを構成し、フラッシュメモリ2に対するアクセスを制御する場合について説明する。
図3は、ゾーンの説明図であり、例えば、1024のブロックでゾーンを構成した例を示している。
フラッシュメモリ2では、例えば1024のブロックB0000〜B1023で1つのゾーンを構成している。各ブロックは、32ページP00〜P31で構成されている。前述したように、ブロックは消去処理の単位であり、ページは読出し及び書込み処理の単位である。尚、各ブロックの記憶容量や、各ブロックのページ数はフラッシュメモリ2の仕様によって異なる。
フラッシュメモリ2では、例えば1024のブロックB0000〜B1023で1つのゾーンを構成している。各ブロックは、32ページP00〜P31で構成されている。前述したように、ブロックは消去処理の単位であり、ページは読出し及び書込み処理の単位である。尚、各ブロックの記憶容量や、各ブロックのページ数はフラッシュメモリ2の仕様によって異なる。
このゾーンは、一定範囲の論理ブロックアドレス空間に割当てられている。図4に示した例では、1024のブロックで構成されたゾーンを、1000ブロック分の論理ブロックアドレスの空間に割当てている。ここで、ゾーンを構成するブロックが、24ブロック分余計に割当てられているのは、不良ブロックの発生を考慮したためである。但し、データ書替の際に一旦別のブロックに新データを書込み、その後、旧データが書込まれていたブロックをブロック消去する場合には、新データを書込むための予備ブロックが必要なので、実質的には23ブロック分が余計に割当てられていることになる。尚、ゾーンを構成するブロックの数は、フラッシュメモリシステム1の用途やフラッシュメモリ2の仕様に応じて適宜設定される。
各ゾーンに割当てられている1000ブロック分の論理ブロックアドレスと、ゾーンを構成する各ブロックとの対応関係、つまり、論理ブロックアドレスと物理ブロックアドレスの対応関係を管理するため、各ブロックの冗長領域には、対応論理ブロックアドレスが書込まれる。この対応論理ブロックアドレスは、ホストシステム20側から与えられる論理ブロックアドレスをそのまま書込んでもよいが、各ゾーンに割当てられた論理ブロックアドレス空間内での通番(各ゾーンを1000ブロック分の論理ブロックアドレスの空間に割当てた場合は0〜999までの通番)を書込んでもよい(以下、各ゾーンに割当てられた論理ブロックアドレス空間内での通番を論理通番と言う)。
図4は、論理ブロックアドレスとゾーンを示す説明図である。
ここで、論理通番は、各ゾーンに応じたオフセットを加えれば、実際の論理ブロックアドレスに変換することができる。
例えば図4で、ゾーン0に割当てられた論理ブロックアドレス空間の先頭アドレスがADD0の場合、各ゾーンには下記のようなオフセットが割当てられる。
ここで、論理通番は、各ゾーンに応じたオフセットを加えれば、実際の論理ブロックアドレスに変換することができる。
例えば図4で、ゾーン0に割当てられた論理ブロックアドレス空間の先頭アドレスがADD0の場合、各ゾーンには下記のようなオフセットが割当てられる。
次に、アドレス変換テーブルについて図面を参照して説明する。
フラッシュメモリシステム1のマイクロプロセッサ6は、ホストシステム20側から与えられるアドレス情報に基づく論理ブロックアドレスを、フラッシュメモリ2内のブロックアドレスである物理ブロックアドレスに変換し、得られた物理ブロックアドレスに基づいてフラッシュメモリ2にアクセスしている。この際、論理ブロックアドレスから物理ブロックアドレスへの変換は、FRAM4に格納されたアドレス変換テーブルを用いて行なわれる。
フラッシュメモリシステム1のマイクロプロセッサ6は、ホストシステム20側から与えられるアドレス情報に基づく論理ブロックアドレスを、フラッシュメモリ2内のブロックアドレスである物理ブロックアドレスに変換し、得られた物理ブロックアドレスに基づいてフラッシュメモリ2にアクセスしている。この際、論理ブロックアドレスから物理ブロックアドレスへの変換は、FRAM4に格納されたアドレス変換テーブルを用いて行なわれる。
アドレス変換テーブルは、各ゾーンに割当てられている論理ブロックアドレスとゾーンを構成するブロックとの対応関係を示したテーブルであり、マイクロプロセッサ6が、ワークエリア8を利用してゾーンごとに作成し、内部インターフェースブロック10を介してFRAM4の記憶領域に記憶(保存)させる。
図5は、アドレス変換テーブルの説明図である。
このアドレス変換テーブルでは、1000ブロック分の論理ブロックアドレスに対応するブロックが、物理通番で示されている。物理通番とは、各ゾーン内で物理ブロックアドレスの順番で付けた通番(2進数:000 0000 0000b〜111 1111 1111b)であり、各ゾーンに応じたオフセットを加えることにより、フラッシュメモリ内での実際の物理ブロックアドレスに変換することができる。
このアドレス変換テーブルでは、1000ブロック分の論理ブロックアドレスに対応するブロックが、物理通番で示されている。物理通番とは、各ゾーン内で物理ブロックアドレスの順番で付けた通番(2進数:000 0000 0000b〜111 1111 1111b)であり、各ゾーンに応じたオフセットを加えることにより、フラッシュメモリ内での実際の物理ブロックアドレスに変換することができる。
このアドレス変換テーブルを用いて論理ブロックアドレスを物理ブロックアドレスに変換するときは、ホストシステム20側から与えられる論理ブロックアドレスの割当てられているゾーン(ゾーン0〜Nのいずれかのゾーン)を求め、そのゾーンに対応するアドレス変換テーブルを用いてアドレス変換処理を行なう。
このアドレス変換処理では、ホストシステム20側から与えられる論理ブロックアドレスから求めた論理通番に対応する物理通番をアドレス変換テーブルから読出し、読出した物理通番を物理ブロックアドレスに変換する。
例えば、図5の例では、ホストシステム20側から与えられた論理ブロックアドレスから求めた論理通番が“0”であれば、この論理通番に対応する物理通番は“9”(000 0000 1001b(2進数))になる。同様に、論理ブロックアドレスから求めた論理通番が“1”であれば、この論理通番に対応する物理通番は“2”(000 0000 0010b(2進数))になる。この物理通番に、各ゾーンに割当てられているオフセットを加えることにより、論理ブロックアドレスを物理ブロックアドレスに変換することができる。
図5に示したアドレス変換テーブルを作成する場合、例えば、1000ブロック分の物理通番を記述できる領域をFRAM4上に確保する。この際、1000ブロック分の領域を、論理通番の順番で、各論理通番に対応する物理通番を記述する領域として割当てる。ここで、更に、各論理通番に対応するデータが記憶されているか否かを判断するために、データが記憶されているか否かを示す情報を設定できるようにすることが好ましい。
例えば、特定のビットを、データが記憶されているか否かを示す情報に割当て、そのビットの論理値によってデータが記憶されているか否かを示すようにしてもよい。
このデータが記憶されているか否かを示す情報は、テーブル作成開始時に、データが記憶されていないことを示す値に初期設定される。その後、アドレス変換テーブルを作成するゾーン内の各ブロックの冗長領域を順次読出していき、冗長領域に論理通番が記述されていた場合には、アドレス変換テーブルにおいてその論理通番に対応する部分に、その論理通番が記述されていたブロックの物理通番を記述し、更に、データが記憶されていないことを示す情報を、データが記憶されていることを示す値に変更する。この処理を、ゾーンを構成する1024の各ブロックについて順次行なっていき、この処理が完了するとアドレス変換テーブルが完成する。
フラッシュメモリシステム1におけるデータの書替処理では、ブロック消去されている消去済ブロックに新たなデータ(書替後のデータ)を書込み、その後、古いデータ(書替前のデータ)が書込まれていたブロックを消去する。従って、論理ブロックアドレスと物理ブロックアドレスの対応関係(論理通番と物理通番の対応関係)は、データの書替処理を行なう毎に変化する。
データの書替処理が発生した場合、マイクロプロセッサ6は、アドレス変換テーブル上で対応関係が変化した部分をその都度、更新しなければならない。ここで、フラッシュメモリシステム1では、アドレス変換テーブルを重ね書き可能な不揮発性メモリであるFRAM4上に作成しているので、対応関係が変化した部分だけを書換えることにより、アドレス変換テーブルを早く更新することができる。
次に、フラッシュメモリシステム1の信頼性を向上させるために行なわれるウェアレベリング(書換え回数平準化)について説明する。
このウェアレベリングでは、ある一定の書換回数に至ると、自動的に書換え回数の少ないフラッシュメモリ2の領域とデータ及びアドレスを入れ替え、局所的に書き込みが集中してフラッシュメモリチップが壊れやすくなることを回避する。従って、ウェアレベリングを行なう場合には、各ブロックの書替回数或いは消去回数を管理しなければならない。
このウェアレベリングでは、ある一定の書換回数に至ると、自動的に書換え回数の少ないフラッシュメモリ2の領域とデータ及びアドレスを入れ替え、局所的に書き込みが集中してフラッシュメモリチップが壊れやすくなることを回避する。従って、ウェアレベリングを行なう場合には、各ブロックの書替回数或いは消去回数を管理しなければならない。
フラッシュメモリシステム1では、フラッシュメモリ2内の各ブロックの消去回数を、重ね書き可能な不揮発性メモリであるFRAM4上で記憶して管理している。
図6は、FRAM4に記憶された消去回数管理テーブルを示す説明図である。
図6は、FRAM4に記憶された消去回数管理テーブルを示す説明図である。
フラッシュメモリ2内の各ブロックの消去回数を管理する消去回数管理テーブルには、各ブロックの消去回数が物理ブロックアドレスの順番で記述される。この消去回数管理テーブルは、各ブロックに対する消去処理が行なわれる毎に更新される。例えば、物理ブロックアドレス0のブロックに対して消去処理が行なわれた場合には、消去回数を000000FFh(16進数)から00000100h(16進数)に更新する。
次に、消去済ブロックを検索するためのテーブルである消去済ブロック検索用テーブルについて説明する。
図7(a),(b)は、消去済ブロック検索用テーブルの説明図である。
書替処理では、この消去済ブロック検索用テーブルで検索した消去済ブロックに、新たなデータ(書替後のデータ)が書込まれる。フラッシュメモリシステム1では、この消去済ブロック検索用テーブルを、重ね書き可能な不揮発性メモリであるFRAM4上に作成している。
次に、消去済ブロックを検索するためのテーブルである消去済ブロック検索用テーブルについて説明する。
図7(a),(b)は、消去済ブロック検索用テーブルの説明図である。
書替処理では、この消去済ブロック検索用テーブルで検索した消去済ブロックに、新たなデータ(書替後のデータ)が書込まれる。フラッシュメモリシステム1では、この消去済ブロック検索用テーブルを、重ね書き可能な不揮発性メモリであるFRAM4上に作成している。
消去済ブロック検索用テーブルでは、ゾーンを構成する各ブロックをFRAM4上の各ビットに対応させ、各ビットの論理値の“0”又は“1”で、データが書込まれている状態、又はデータが書込まれていない状態をそれぞれ示している。
ゾーンを構成する各ブロックとFRAM4上の各ビットとの対応関係については、消去済ブロック検索用テーブル上のビットを、若番側から順に(図7(a)のように上の行から下の行へ、各行を左から右へ)物理通番の順番に対応させている。従って、消去済ブロック検索用テーブルの左上のビットが、物理通番0のブロックに対応し、右下のビットが、物理通番1023のブロックに対応する。各ビットの論理値については、データが書込まれている場合(又は不良ブロックであることを示すブロックステータスが記述されている場合)は、そのビットに“0”を、データが書込まれていない場合(消去済ブロックの場合)は、そのビットに“1”を設定している。
この消去済ブロック検索用テーブルは、アドレス変換テーブルを作成する際に一緒に作成することができる。
例えば、消去済ブロック検索用テーブルを作成するFRAM4上の領域に“0”を設定しておき、各ブロックの冗長領域に対応論理ブロックアドレスも不良ブロックであることを示すブロックステータスも記述されていないときに、そのブロックに対応するビットに“1”を設定するようにすれば、アドレス変換テーブルを作成する際に一緒に作成することができる。
例えば、消去済ブロック検索用テーブルを作成するFRAM4上の領域に“0”を設定しておき、各ブロックの冗長領域に対応論理ブロックアドレスも不良ブロックであることを示すブロックステータスも記述されていないときに、そのブロックに対応するビットに“1”を設定するようにすれば、アドレス変換テーブルを作成する際に一緒に作成することができる。
又、この消去済ブロック検索用テーブルの更新については、消去済ブロックにデータを書込んだときに、そのブロックに対応するビットを“1”から“0”に変更し、データが書込まれているブロックをブロック消去したときに、そのブロックに対応するビットを“0”から“1”に変更する。
この消去済ブロック検索用テーブルを用いて、消去済ブロックを検索する場合、物理通番0に対応するビット(図7(b)の一番上の行の一番左のビット)から、物理通番1023に対応するビット(図7(b)の一番下の行の一番右のビット)までを走査していき、消去済ブロックに対応する“1”のビットを検索する。
その結果、例えば走査の途中でテーブルで消去済ブロックに対応する“1”のビットが検出された場合、そこで検索を終了し、そのビットに対応する物理通番のブロックが、新たなデータ(書替後のデータ)が書込まれるブロックになる。次回の検索は、消去済ブロックとして検出された“1”のビットの次のビットから走査が開始される。その後も、同様の検索を続けていき、最期のブロックに相当するビットまで走査が進んだときは、最初のブロックに相当するビットに戻る。
以上説明したように、本実施形態に係るフラッシュメモリシステム1では、アドレス変換テーブル、消去回数管理テーブル及び消去済ブロック検索用テーブル等の管理情報を、重ね書き可能な不揮発性メモリのFRAM4上に作成し、保存している。フラッシュメモリ2に対するアクセスは、これらの管理情報に基づいて行なわれる。管理情報の更新は、FRAM4上で直接行なうことができるので、管理情報の更新処理時間を短くすることができる。
尚、上記の説明では、重ね書き可能な不揮発性メモリとしてFRAM4を用いている。FRAMは、DRAMセルにおいて電荷を保持されている誘電体キャパシタを強誘電体とすることで不揮発性を強化したものである。重ね書き可能な不揮発性メモリとしてFRAM以外にも、熱によりアモルファス状態と結晶状態を切替えて抵抗値を変化させることで“1”と“0”とを記憶するOUM(Ovonic Unified Memory)や、強磁性トンネル磁気抵抗効果(TMR:Tunnel Magneto Resistance)素子を用いて抵抗値の変化を論理値の“1”と“0”とに対応させるMRAM(Magnetic RAM)等が、使用できる。
さらに、FRAM4は、SRAMにデータバックアップ用EEPROM(Electrically Erasable Programmable ROM)を搭載したものや、SRAMのデータを電池でバックアップしたもの(Battery Back Up SRAM)であってもよい。
1 フラッシュメモリシステム
2 フラッシュメモリ
3 メモリコントローラ
4 FRAM
5 ホストインターフェース制御ブロック
6 マイクロプロセッサ
7 ホストインターフェースブロック
8 ワークエリア
9 バッファ
10 内部インターフェースブロック
11 ECCブロック
12 フラッシュメモリシーケンサブロック
13 外部バス
14 内部バス
20 ホストシステム
2 フラッシュメモリ
3 メモリコントローラ
4 FRAM
5 ホストインターフェース制御ブロック
6 マイクロプロセッサ
7 ホストインターフェースブロック
8 ワークエリア
9 バッファ
10 内部インターフェースブロック
11 ECCブロック
12 フラッシュメモリシーケンサブロック
13 外部バス
14 内部バス
20 ホストシステム
Claims (12)
- ホストシステムから供給されるユーザデータを記憶するフラッシュメモリと、
前記フラッシュメモリに対する前記ユーザデータの書込み及び読出しを管理するための管理情報を作成する情報作成手段と、
前記管理情報を記憶する重ね書き可能な不揮発性メモリと、
前記重ね書き可能な不揮発性メモリに記憶された前記管理情報に基づき、前記フラッシュメモリに対するアクセスを制御するアクセス制御手段と、
を備えることを特徴とするフラッシュメモリシステム。 - 前記管理情報には、前記ホストシステム側から前記アクセス時に与えられる論理アドレスを前記フラッシュメモリ上のアドレスに変換するアドレス変換テーブルが含まれていることを特徴とする請求項1に記載のフラッシュメモリシステム。
- 前記管理情報には、前記フラッシュメモリの所定数のメモリセルでそれぞれ構成されてデータの消去単位となる複数のブロックのうちの該データが消去されている消去済みブロックを検索するためのテーブルが含まれていることを特徴とする請求項1又は2に記載のフラッシュメモリシステム。
- 前記管理情報には、前記フラッシュメモリの所定数のメモリセルでそれぞれ構成されてデータの消去単位となる複数のブロックの該データの消去回数或いは書換回数をそれぞれ示す情報が含まれることを特徴とする請求項1乃至3のいずれか1項に記載のフラッシュメモリシステム。
- 前記重ね書き可能な不揮発性メモリは、強誘電体メモリで構成されていることを特徴とする請求項1乃至4のいずれか1項に記載のフラッシュメモリシステム。
- 前記重ね書き可能な不揮発性メモリは、前記管理情報を記憶するスタティックランダムアクセスメモリと、当該スタティックランダムアクセスメモリに記憶された管理情報をバックアップするバックアップ手段と、
を備えることを特徴とする請求項1乃至4のいずれか1項に記載のフラッシュメモリシステム。 - フラッシュメモリに対するユーザデータの書込み及び読出しを管理するための管理情報を重ね書き可能な不揮発性メモリに記憶させる処理と、
前記重ね書き可能な不揮発性メモリに記憶された前記管理情報に基づき、前記フラッシュメモリに対するアクセスを制御する処理と、
を行なうことを特徴とするフラッシュメモリの制御方法。 - 前記管理情報には、前記アクセス時に与えられる論理アドレスを前記フラッシュメモリ上のアドレスに変換するアドレス変換テーブルが含まれていることを特徴とする請求項7に記載のフラッシュメモリの制御方法。
- 前記管理情報には、前記フラッシュメモリの所定数のメモリセルでそれぞれ構成されてデータの消去単位となる複数のブロックのうちの該データが消去されている消去済みブロックを検索するためのテーブルが含まれていることを特徴とする請求項7又は8に記載のフラッシュメモリの制御方法。
- 前記管理情報には、前記フラッシュメモリの所定数のメモリセルでそれぞれ構成されてデータの消去単位となる複数のブロックの該データの消去回数或いは書換回数をそれぞれ示す情報が含まれることを特徴とする請求項7乃至9のいずれか1項に記載のフラッシュメモリの制御方法。
- 前記重ね書き可能な不揮発性メモリは、強誘電体メモリで構成されていることを特徴とする請求項7乃至10のいずれか1項に記載のフラッシュメモリの制御方法。
- 前記重ね書き可能な不揮発性メモリは、前記管理情報を記憶するスタティックランダムアクセスメモリと、当該スタティックランダムアクセスメモリに記憶された管理情報をバックアップするバックアップ手段と、
を備えることを特徴とする請求項7乃至10のいずれか1項に記載のフラッシュメモリの制御方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2004135045A JP2005316793A (ja) | 2004-04-30 | 2004-04-30 | フラッシュメモリシステム及びフラッシュメモリの制御方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2004135045A JP2005316793A (ja) | 2004-04-30 | 2004-04-30 | フラッシュメモリシステム及びフラッシュメモリの制御方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2005316793A true JP2005316793A (ja) | 2005-11-10 |
Family
ID=35444138
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2004135045A Pending JP2005316793A (ja) | 2004-04-30 | 2004-04-30 | フラッシュメモリシステム及びフラッシュメモリの制御方法 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2005316793A (ja) |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2007164318A (ja) * | 2005-12-12 | 2007-06-28 | Renesas Technology Corp | 記憶装置 |
JP2010198171A (ja) * | 2009-02-24 | 2010-09-09 | Renesas Electronics Corp | Usbホストコントローラ、及びusbホストコントローラの制御方法 |
JP2013235531A (ja) * | 2012-05-11 | 2013-11-21 | Sony Corp | 制御装置、記憶装置、記憶制御方法 |
JP2015026379A (ja) * | 2013-07-26 | 2015-02-05 | アバランチ テクノロジー, インコーポレイテッド | 磁気ランダムアクセスメモリ(mram)を使用する記憶デバイスのメモリアレイのコントローラ管理 |
US9448923B2 (en) | 2012-12-17 | 2016-09-20 | Nec Corporation | Information processing device for synchronizing update information between a solid state drive and a backup storage |
WO2022064302A1 (ja) * | 2020-09-22 | 2022-03-31 | 株式会社半導体エネルギー研究所 | 記憶装置 |
-
2004
- 2004-04-30 JP JP2004135045A patent/JP2005316793A/ja active Pending
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2007164318A (ja) * | 2005-12-12 | 2007-06-28 | Renesas Technology Corp | 記憶装置 |
JP2010198171A (ja) * | 2009-02-24 | 2010-09-09 | Renesas Electronics Corp | Usbホストコントローラ、及びusbホストコントローラの制御方法 |
JP2013235531A (ja) * | 2012-05-11 | 2013-11-21 | Sony Corp | 制御装置、記憶装置、記憶制御方法 |
US9448923B2 (en) | 2012-12-17 | 2016-09-20 | Nec Corporation | Information processing device for synchronizing update information between a solid state drive and a backup storage |
JP2015026379A (ja) * | 2013-07-26 | 2015-02-05 | アバランチ テクノロジー, インコーポレイテッド | 磁気ランダムアクセスメモリ(mram)を使用する記憶デバイスのメモリアレイのコントローラ管理 |
WO2022064302A1 (ja) * | 2020-09-22 | 2022-03-31 | 株式会社半導体エネルギー研究所 | 記憶装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP4129381B2 (ja) | 不揮発性半導体記憶装置 | |
US7330995B2 (en) | Nonvolatile memory apparatus which prevents destruction of write data caused by power shutdown during a writing process | |
JP5035636B2 (ja) | フラッシュメモリ内のブロックにおける移動セクタ | |
JP4834676B2 (ja) | オンチップ不揮発性メモリ書き込みキャッシュを使用するシステムおよび方法 | |
US7818492B2 (en) | Source and shadow wear-leveling method and apparatus | |
US7315870B2 (en) | Memory controller, flash memory system, and method for recording data on flash memory | |
JP2006031696A (ja) | バッドブロック管理部を含むフラッシュメモリシステム | |
JP2003030993A (ja) | 半導体記憶装置 | |
JP4177360B2 (ja) | メモリコントローラ、フラッシュメモリシステム及びフラッシュメモリの制御方法 | |
KR100837273B1 (ko) | 플래시 메모리 장치 | |
JP4661369B2 (ja) | メモリコントローラ | |
TWI758888B (zh) | 記憶體系統 | |
JP2005316793A (ja) | フラッシュメモリシステム及びフラッシュメモリの制御方法 | |
JP4661191B2 (ja) | メモリコントローラ、フラッシュメモリシステム及びフラッシュメモリの制御方法 | |
JP2007094571A (ja) | メモリコントローラ、フラッシュメモリシステム及びフラッシュメモリの制御方法 | |
JP4433792B2 (ja) | メモリコントローラ及びメモリコントローラを備えるフラッシュメモリシステム、並びに、フラッシュメモリの制御方法 | |
JP4177292B2 (ja) | メモリンコントローラ、フラッシュメモリシステム及びフラッシュメモリの制御方法 | |
JP4000124B2 (ja) | メモリコントローラ及びメモリコントローラを備えるフラッシュメモリシステム、並びに、フラッシュメモリの制御方法 | |
JP3934659B1 (ja) | メモリコントローラ及びフラッシュメモリシステム | |
JP2005292925A (ja) | メモリコントローラ、フラッシュメモリシステム、並びに、フラッシュメモリの制御方法 | |
JP2008097339A (ja) | メモリコントローラ、メモリコントローラを備えるフラッシュメモリシステム、並びに、フラッシュメモリの制御方法 | |
JP4304167B2 (ja) | メモリコントローラ、フラッシュメモリシステム及びフラッシュメモリの制御方法 | |
JP4419525B2 (ja) | メモリコントローラ及びメモリコントローラを備えるフラッシュメモリシステム、並びに、フラッシュメモリの制御方法 | |
JP4332108B2 (ja) | メモリコントローラ、フラッシュメモリシステム及びフラッシュメモリの制御方法 | |
JP4177301B2 (ja) | メモリコントローラ、フラッシュメモリシステム及びフラッシュメモリの制御方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20060313 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20081111 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20081118 |
|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20090407 |